From b0ee8fffb3ed2f700c7837575a0c6c1136739f6d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 22:28:37 -0800 Subject: [PATCH 001/117] build(deps): bump actions/upload-artifact from 4 to 5 (#39207) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/_reusable-eng-tools-test.yaml | 2 +- .github/workflows/avocado-code.yaml | 2 +- .github/workflows/breaking-change-code.yaml | 2 +- .github/workflows/breaking-change-cross-version-code.yaml | 2 +- .github/workflows/github-test.yaml | 2 +- .github/workflows/lintdiff-code.yaml | 2 +- .github/workflows/summarize-checks.yaml | 2 +- .github/workflows/summarize-impact.yaml | 2 +- .github/workflows/swagger-modelvalidation-code.yaml | 2 +- .github/workflows/swagger-semanticvalidation-code.yaml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/_reusable-eng-tools-test.yaml b/.github/workflows/_reusable-eng-tools-test.yaml index 8f22a95c609f..0167d14955f5 100644 --- a/.github/workflows/_reusable-eng-tools-test.yaml +++ b/.github/workflows/_reusable-eng-tools-test.yaml @@ -67,7 +67,7 @@ jobs: working-directory: ./eng/tools/${{ inputs.package }} - name: Archive code coverage results - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: code-coverage-report-${{ matrix.os }}-${{ matrix.node-version }} path: ./eng/tools/${{ inputs.package }}/coverage diff --git a/.github/workflows/avocado-code.yaml b/.github/workflows/avocado-code.yaml index 4ca66cd58722..89406bb73442 100644 --- a/.github/workflows/avocado-code.yaml +++ b/.github/workflows/avocado-code.yaml @@ -92,7 +92,7 @@ jobs: # Used by other workflows like set-status - name: Set job-summary artifact if: ${{ always() && steps.generate-job-summary.outputs.summary }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: job-summary path: ${{ steps.generate-job-summary.outputs.summary }} diff --git a/.github/workflows/breaking-change-code.yaml b/.github/workflows/breaking-change-code.yaml index ccde1b7bf214..2a830b8b76c0 100644 --- a/.github/workflows/breaking-change-code.yaml +++ b/.github/workflows/breaking-change-code.yaml @@ -68,7 +68,7 @@ jobs: # Used by other workflows like set-status - name: Set job-summary artifact if: ${{ always() && steps.swagger-breaking-change-analyze-code.outputs.summary }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: job-summary path: ${{ steps.swagger-breaking-change-analyze-code.outputs.summary }} diff --git a/.github/workflows/breaking-change-cross-version-code.yaml b/.github/workflows/breaking-change-cross-version-code.yaml index 663907b42329..0e84fc53253b 100644 --- a/.github/workflows/breaking-change-cross-version-code.yaml +++ b/.github/workflows/breaking-change-cross-version-code.yaml @@ -69,7 +69,7 @@ jobs: # Used by other workflows like set-status - name: Set job-summary artifact if: ${{ always() && steps.breaking-change-cross-version-analyze-code.outputs.summary }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: job-summary path: ${{ steps.breaking-change-cross-version-analyze-code.outputs.summary }} diff --git a/.github/workflows/github-test.yaml b/.github/workflows/github-test.yaml index ad77eabc5840..b8e59fd7899f 100644 --- a/.github/workflows/github-test.yaml +++ b/.github/workflows/github-test.yaml @@ -79,7 +79,7 @@ jobs: - run: npm run test:ci - name: Archive code coverage results - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: code-coverage-report-${{ matrix.os }}-${{ fromJSON('{".github":"github", ".github/shared":"github-shared"}')[matrix.folder] }} path: ./${{ matrix.folder }}/coverage diff --git a/.github/workflows/lintdiff-code.yaml b/.github/workflows/lintdiff-code.yaml index e9f799588922..3c3d987f635f 100644 --- a/.github/workflows/lintdiff-code.yaml +++ b/.github/workflows/lintdiff-code.yaml @@ -80,7 +80,7 @@ jobs: # Used by other workflows like set-status - name: Set job-summary artifact if: ${{ always() && steps.run-lintdiff.outputs.summary }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: job-summary path: ${{ steps.run-lintdiff.outputs.summary }} diff --git a/.github/workflows/summarize-checks.yaml b/.github/workflows/summarize-checks.yaml index fc44f8fe3c75..cfc35b4551d9 100644 --- a/.github/workflows/summarize-checks.yaml +++ b/.github/workflows/summarize-checks.yaml @@ -84,7 +84,7 @@ jobs: # May be used by downstream workflows - name: Set job-summary artifact if: ${{ always() && steps.summarize-checks.outputs.summary }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: job-summary path: ${{ steps.summarize-checks.outputs.summary }} diff --git a/.github/workflows/summarize-impact.yaml b/.github/workflows/summarize-impact.yaml index 94f4e1a518c5..70516377e323 100644 --- a/.github/workflows/summarize-impact.yaml +++ b/.github/workflows/summarize-impact.yaml @@ -57,7 +57,7 @@ jobs: - name: Set job-summary artifact if: ${{ always() && steps.summarize-impact.outputs.summary }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: job-summary path: ${{ steps.summarize-impact.outputs.summary }} diff --git a/.github/workflows/swagger-modelvalidation-code.yaml b/.github/workflows/swagger-modelvalidation-code.yaml index 9f18b98f3876..d9ef7790b858 100644 --- a/.github/workflows/swagger-modelvalidation-code.yaml +++ b/.github/workflows/swagger-modelvalidation-code.yaml @@ -36,7 +36,7 @@ jobs: # Used by other workflows like set-status - name: Set job-summary artifact if: ${{ always() && steps.swagger-model-validation.outputs.summary }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: job-summary path: ${{ steps.swagger-model-validation.outputs.summary }} diff --git a/.github/workflows/swagger-semanticvalidation-code.yaml b/.github/workflows/swagger-semanticvalidation-code.yaml index dab1aa7b92f2..851271c1562d 100644 --- a/.github/workflows/swagger-semanticvalidation-code.yaml +++ b/.github/workflows/swagger-semanticvalidation-code.yaml @@ -36,7 +36,7 @@ jobs: # Used by other workflows like set-status - name: Set job-summary artifact if: ${{ always() && steps.swagger-semantic-validation.outputs.summary }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: job-summary path: ${{ steps.swagger-semantic-validation.outputs.summary }} From 7814c2326790d00adf456c5560f6a2491ed92c13 Mon Sep 17 00:00:00 2001 From: Xinni Tong Date: Fri, 12 Dec 2025 14:47:17 +0800 Subject: [PATCH 002/117] [TSP Migration][attestation] Migrate attestation to TypeSpec (#37548) * The first version of TSP * Fix errors and diff * run prettier check * Update example file, fix spell check error, run tsp format * Update main.tsp * Update tspconfig.yaml * update description * Fix comments * Update * update client Name * Add Python client name to AttestationManagementClient * disable fix-const-stuttering * Replace list operation templates and update properties with new decorators * add suppress * run tsp format command --------- Co-authored-by: v-xuto Co-authored-by: Pan Shao <97225342+pshao25@users.noreply.github.com> Co-authored-by: Jiao Di (MSFT) Co-authored-by: Jiao Di (MSFT) <80496810+v-jiaodi@users.noreply.github.com> Co-authored-by: Yuchao Yan Co-authored-by: Judy Liu --- .../Attestation/AttestationProvider.tsp | 126 ++ .../Attestation/PrivateEndpointConnection.tsp | 61 + .../Attestation/back-compatible.tsp | 32 + .../Attestation/client.tsp | 10 + ...oviderDeletePrivateEndpointConnection.json | 16 + ...nProviderGetPrivateEndpointConnection.json | 30 + ...roviderListPrivateEndpointConnections.json | 49 + ...ationProviderListPrivateLinkResources.json | 41 + ...nProviderPutPrivateEndpointConnection.json | 39 + .../Create_AttestationProvider.json | 64 + .../Delete_AttestationProvider.json | 22 + .../2021-06-01/Get_AttestationProvider.json | 32 + .../Get_AttestationProvidersList.json | 34 + ...testationProvidersListByResourceGroup.json | 35 + .../Get_DefaultProviderByLocation.json | 26 + .../2021-06-01/Get_DefaultProviders.json | 42 + .../examples/2021-06-01/Operations_List.json | 42 + .../Update_AttestationProvider.json | 43 + .../Attestation/main.tsp | 50 + .../Attestation/models.tsp | 453 ++++++ .../Attestation/routes.tsp | 42 + .../stable/2021-06-01/attestation.json | 1333 ++++++++++------- ...oviderDeletePrivateEndpointConnection.json | 14 +- ...nProviderGetPrivateEndpointConnection.json | 22 +- ...roviderListPrivateEndpointConnections.json | 32 +- ...ationProviderListPrivateLinkResources.json | 16 +- ...nProviderPutPrivateEndpointConnection.json | 28 +- .../examples/Create_AttestationProvider.json | 52 +- .../examples/Delete_AttestationProvider.json | 16 +- .../examples/Get_AttestationProvider.json | 26 +- .../Get_AttestationProvidersList.json | 12 +- ...testationProvidersListByResourceGroup.json | 12 +- .../Get_DefaultProviderByLocation.json | 14 +- .../examples/Get_DefaultProviders.json | 20 +- .../2021-06-01/examples/Operations_List.json | 62 +- .../examples/Update_AttestationProvider.json | 32 +- .../Attestation/suppressions.yaml | 3 - .../Attestation/tspconfig.yaml | 44 + 38 files changed, 2357 insertions(+), 670 deletions(-) create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/AttestationProvider.tsp create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/PrivateEndpointConnection.tsp create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/back-compatible.tsp create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/client.tsp create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderDeletePrivateEndpointConnection.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderGetPrivateEndpointConnection.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderListPrivateEndpointConnections.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderListPrivateLinkResources.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderPutPrivateEndpointConnection.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Create_AttestationProvider.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Delete_AttestationProvider.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_AttestationProvider.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_AttestationProvidersList.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_AttestationProvidersListByResourceGroup.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_DefaultProviderByLocation.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_DefaultProviders.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Operations_List.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Update_AttestationProvider.json create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/main.tsp create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/models.tsp create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/routes.tsp create mode 100644 specification/attestation/resource-manager/Microsoft.Attestation/Attestation/tspconfig.yaml diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/AttestationProvider.tsp b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/AttestationProvider.tsp new file mode 100644 index 000000000000..b64b7b4035c2 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/AttestationProvider.tsp @@ -0,0 +1,126 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Attestation; +/** + * Attestation service response message. + */ +model AttestationProvider + is Azure.ResourceManager.TrackedResource { + ...ResourceNameParameter< + Resource = AttestationProvider, + KeyName = "providerName", + SegmentName = "attestationProviders", + NamePattern = "^[a-zA-Z0-9-]{3,24}$" + >; +} + +@armResourceOperations +interface AttestationProvidersOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + }, + {}, + {} + > {} + +@armResourceOperations +interface AttestationProvidersResourceGroupOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + }, + {}, + {} + > {} + +@armResourceOperations +interface AttestationProviders { + /** + * Get the status of Attestation Provider. + */ + get is ArmResourceRead; + + /** + * Creates or updates an Attestation Provider. + */ + create is Azure.ResourceManager.Legacy.CreateOrUpdateSync< + AttestationProvider, + Request = AttestationServiceCreationParams, + Error = CloudError + >; + + /** + * Updates the Attestation Provider. + */ + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchSync< + AttestationProvider, + PatchModel = AttestationServicePatchParams, + Error = CloudError + >; + + /** + * Delete Attestation Service. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteSync< + AttestationProvider, + Response = ArmDeletedResponse | AcceptedResponse | ArmDeletedNoContentResponse, + Error = CloudError + >; + + /** + * Returns attestation providers list in a resource group. + */ + listByResourceGroup is AttestationProvidersResourceGroupOps.ListSinglePage< + AttestationProvider, + Response = ArmResponse, + OverrideErrorType = CloudError + >; + + /** + * Returns a list of attestation providers in a subscription. + */ + list is AttestationProvidersOps.ListSinglePage< + AttestationProvider, + Response = ArmResponse, + OverrideErrorType = CloudError + >; + + /** + * Gets the private link resources supported for the attestation provider. + */ + @get + @action("privateLinkResources") + listByProvider is ArmResourceActionSync< + AttestationProvider, + void, + ArmResponse>, + Error = CloudError + >; +} + +@@doc(AttestationProvider.name, "Name of the attestation provider."); +@@doc(AttestationProvider.properties, "Describes Attestation service status."); +@@doc(AttestationProviders.create::parameters.resource, + "Client supplied parameters." +); +@@doc(AttestationProviders.update::parameters.properties, + "Client supplied parameters." +); diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/PrivateEndpointConnection.tsp b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/PrivateEndpointConnection.tsp new file mode 100644 index 000000000000..00fb5751ae5f --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/PrivateEndpointConnection.tsp @@ -0,0 +1,61 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./AttestationProvider.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Attestation; +/** + * The Private Endpoint Connection resource. + */ +@parentResource(AttestationProvider) +model PrivateEndpointConnection is PrivateEndpointConnectionResource; +alias PrivateEndpointOperations = PrivateEndpoints; + +@armResourceOperations +interface PrivateEndpointConnections { + /** + * Gets the specified private endpoint connection associated with the attestation provider. + */ + get is PrivateEndpointOperations.Read< + AttestationProvider, + Error = CloudError + >; + + /** + * Update the state of specified private endpoint connection associated with the attestation provider. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + create is PrivateEndpointOperations.CreateOrReplaceSync< + AttestationProvider, + Response = ArmResourceUpdatedResponse, + Error = CloudError + >; + + /** + * Deletes the specified private endpoint connection associated with the attestation provider. + */ + delete is PrivateEndpointOperations.DeleteSync< + AttestationProvider, + Error = CloudError + >; + + /** + * List all the private endpoint connections associated with the attestation provider. + */ + list is PrivateEndpointOperations.ListByParent< + AttestationProvider, + Error = CloudError + >; +} + +@@doc(PrivateEndpointConnection.properties, "Resource properties."); +@@doc(PrivateEndpointConnections.create::parameters.resource, + "The private endpoint connection properties." +); diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/back-compatible.tsp b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/back-compatible.tsp new file mode 100644 index 000000000000..6e8e7f1fcb3d --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/back-compatible.tsp @@ -0,0 +1,32 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Microsoft.Attestation; + +@@clientName(JsonWebKey.x5c, "x5C"); + +@@clientName(AttestationProviders.create::parameters.resource, + "creationParams" +); +@@clientName(AttestationProviders.update::parameters.properties, + "updateParams" +); +@@clientLocation(AttestationProviders.listByProvider, "PrivateLinkResources"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(AttestationProvider.properties +); + +@@clientName(PrivateEndpointConnections.create::parameters.resource, + "properties" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(PrivateEndpointConnection.properties +); + +@@clientLocation(AttestationProvidersOperationGroup.listDefault, + AttestationProviders +); +@@clientLocation(AttestationProvidersOperationGroup.getDefaultByLocation, + AttestationProviders +); diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/client.tsp b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/client.tsp new file mode 100644 index 000000000000..aa3dbfe8400a --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/client.tsp @@ -0,0 +1,10 @@ +import "@azure-tools/typespec-client-generator-core"; +import "./main.tsp"; + +using Azure.ClientGenerator.Core; + +@@clientName(Microsoft.Attestation, + "AttestationManagementClient", + "javascript" +); +@@clientName(Microsoft.Attestation, "AttestationManagementClient", "python"); diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderDeletePrivateEndpointConnection.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderDeletePrivateEndpointConnection.json new file mode 100644 index 000000000000..080368c2e2ba --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderDeletePrivateEndpointConnection.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "api-version": "2021-06-01", + "monitor": "true", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", + "providerName": "sto2527", + "resourceGroupName": "res6977", + "subscriptionId": "{subscription-id}" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "PrivateEndpointConnections_Delete", + "title": "AttestationProviderDeletePrivateEndpointConnection" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderGetPrivateEndpointConnection.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderGetPrivateEndpointConnection.json new file mode 100644 index 000000000000..4be1d21a9711 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderGetPrivateEndpointConnection.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2021-06-01", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", + "providerName": "sto2527", + "resourceGroupName": "res6977", + "subscriptionId": "{subscription-id}" + }, + "responses": { + "200": { + "body": { + "name": "{privateEndpointConnectionName}", + "type": "Microsoft.Attestation/attestationProviders/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Attestation/attestationProviders/sto288/privateEndpointConnections/{privateEndpointConnectionName}", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "PrivateEndpointConnections_Get", + "title": "AttestationProviderGetPrivateEndpointConnection" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderListPrivateEndpointConnections.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderListPrivateEndpointConnections.json new file mode 100644 index 000000000000..fb2dbf5d52df --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderListPrivateEndpointConnections.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "api-version": "2021-06-01", + "monitor": "true", + "providerName": "sto2527", + "resourceGroupName": "res6977", + "subscriptionId": "{subscription-id}" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "{privateEndpointConnectionName}", + "type": "Microsoft.Attestation/attestationProviders/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Attestation/attestationProviders/sto288/privateEndpointConnections/{privateEndpointConnectionName}", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + }, + { + "name": "{privateEndpointConnectionName}", + "type": "Microsoft.Attestation/attestationProviders/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Attestation/attestationProviders/sto288/privateEndpointConnections/{privateEndpointConnectionName}", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest02" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + }, + "operationId": "PrivateEndpointConnections_List", + "title": "AttestationProviderListPrivateEndpointConnections" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderListPrivateLinkResources.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderListPrivateLinkResources.json new file mode 100644 index 000000000000..79a68f027093 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderListPrivateLinkResources.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2021-06-01", + "providerName": "myattestationprovider", + "resourceGroupName": "MyResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "tenant", + "type": "Microsoft.Attestation/attestationProviders/privateLinkResources", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider/privateLinkResources/tenant", + "properties": { + "groupId": "standard", + "requiredMembers": [ + "default" + ], + "requiredZoneNames": [ + "privatelink.attest.azure.net" + ] + } + } + ] + } + }, + "default": { + "body": { + "error": { + "code": "", + "message": "" + } + }, + "headers": {} + } + }, + "operationId": "PrivateLinkResources_ListByProvider", + "title": "AttestationProviderListPrivateLinkResources" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderPutPrivateEndpointConnection.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderPutPrivateEndpointConnection.json new file mode 100644 index 000000000000..51e6b53b7932 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/AttestationProviderPutPrivateEndpointConnection.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2021-06-01", + "monitor": "true", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", + "properties": { + "properties": { + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "status": "Approved" + } + } + }, + "providerName": "sto9699", + "resourceGroupName": "res7687", + "subscriptionId": "{subscription-id}" + }, + "responses": { + "200": { + "body": { + "name": "{privateEndpointConnectionName}", + "type": "Microsoft.Attestation/attestationProviders/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Attestation/attestationProviders/sto288/privateEndpointConnections/{privateEndpointConnectionName}", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "PrivateEndpointConnections_Create", + "title": "AttestationProviderPutPrivateEndpointConnection" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Create_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Create_AttestationProvider.json new file mode 100644 index 000000000000..ae3f2b007f2a --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Create_AttestationProvider.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "api-version": "2021-06-01", + "creationParams": { + "location": "East US", + "properties": { + "publicNetworkAccess": "Enabled", + "tpmAttestationAuthentication": "Enabled" + }, + "tags": { + "Property1": "Value1", + "Property2": "Value2", + "Property3": "Value3" + } + }, + "providerName": "myattestationprovider", + "resourceGroupName": "MyResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myattestationprovider", + "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", + "location": "East US", + "properties": { + "attestUri": "https://myattestationprovider.eus.attest.azure.net", + "publicNetworkAccess": "Enabled", + "status": "Ready", + "tpmAttestationAuthentication": "Enabled", + "trustModel": "AAD" + }, + "tags": { + "Property1": "Value1", + "Property2": "Value2", + "Property3": "Value3" + } + } + }, + "201": { + "body": { + "name": "myattestationprovider", + "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", + "location": "East US", + "properties": { + "attestUri": "https://myattestationprovider.eus.attest.azure.net", + "publicNetworkAccess": "Enabled", + "status": "Ready", + "tpmAttestationAuthentication": "Enabled", + "trustModel": "AAD" + }, + "tags": { + "Property1": "Value1", + "Property2": "Value2", + "Property3": "Value3" + } + } + } + }, + "operationId": "AttestationProviders_Create", + "title": "AttestationProviders_Create" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Delete_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Delete_AttestationProvider.json new file mode 100644 index 000000000000..e89159d57015 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Delete_AttestationProvider.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2021-06-01", + "providerName": "myattestationprovider", + "resourceGroupName": "sample-resource-group", + "serviceName": "sampleservicename", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "description": "Resource exists and was deleted successfully" + }, + "202": { + "description": "Request accepted for deletion of attestation service" + }, + "204": { + "description": "Resource does not exist" + } + }, + "operationId": "AttestationProviders_Delete", + "title": "AttestationProviders_Delete" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_AttestationProvider.json new file mode 100644 index 000000000000..c302dcf2ea0b --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_AttestationProvider.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "api-version": "2021-06-01", + "providerName": "myattestationprovider", + "resourceGroupName": "MyResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myattestationprovider", + "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", + "location": "East US", + "properties": { + "attestUri": "https://superservice.attestation.azure.net", + "publicNetworkAccess": "Enabled", + "status": "Ready", + "tpmAttestationAuthentication": "Enabled", + "trustModel": "Isolated" + }, + "tags": { + "Property1": "Value1", + "Property2": "Value2", + "Property3": "Value3" + } + } + } + }, + "operationId": "AttestationProviders_Get", + "title": "AttestationProviders_Get" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_AttestationProvidersList.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_AttestationProvidersList.json new file mode 100644 index 000000000000..0b355d991f0d --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_AttestationProvidersList.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2021-06-01", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myattestationprovider", + "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg1/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", + "location": "East US", + "properties": { + "status": "Ready" + } + }, + { + "name": "codes2", + "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg2/providers/Microsoft.Attestation/attestationProviders/codes2", + "location": "East US", + "properties": { + "status": "Ready" + } + } + ] + } + } + }, + "operationId": "AttestationProviders_List", + "title": "AttestationProviders_List" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_AttestationProvidersListByResourceGroup.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_AttestationProvidersListByResourceGroup.json new file mode 100644 index 000000000000..b5354157b875 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_AttestationProvidersListByResourceGroup.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2021-06-01", + "resourceGroupName": "testrg1", + "subscriptionId": "6c96b33e-f5b8-40a6-9011-5cb1c58b0915" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myattestationprovider", + "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg1/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", + "location": "East US", + "properties": { + "status": "Ready" + } + }, + { + "name": "codes2", + "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg1/providers/Microsoft.Attestation/attestationProviders/codes2", + "location": "East US", + "properties": { + "status": "Ready" + } + } + ] + } + } + }, + "operationId": "AttestationProviders_ListByResourceGroup", + "title": "AttestationProviders_ListByResourceGroup" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_DefaultProviderByLocation.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_DefaultProviderByLocation.json new file mode 100644 index 000000000000..e613b157b703 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_DefaultProviderByLocation.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2021-06-01", + "location": "Central US", + "subscriptionId": "6c96b33e-f5b8-40a6-9011-5cb1c58b0915" + }, + "responses": { + "200": { + "body": { + "name": "sharedcus", + "type": "Microsoft.Attestation/attestationProviders", + "id": "providers/Microsoft.Attestation/attestationProviders/sharedcus", + "location": "Central US", + "properties": { + "attestUri": "https://sharedcus.cus.attest.azure.net", + "publicNetworkAccess": "Enabled", + "status": "Ready", + "tpmAttestationAuthentication": "Enabled", + "trustModel": "AAD" + } + } + } + }, + "operationId": "AttestationProviders_GetDefaultByLocation", + "title": "AttestationProviders_GetDefaultWithLocation" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_DefaultProviders.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_DefaultProviders.json new file mode 100644 index 000000000000..1a6e957c2d84 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Get_DefaultProviders.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2021-06-01", + "subscriptionId": "6c96b33e-f5b8-40a6-9011-5cb1c58b0915" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "sharedcus", + "type": "Microsoft.Attestation/attestationProviders", + "id": "providers/Microsoft.Attestation/attestationProviders/sharedcus", + "location": "Central US", + "properties": { + "attestUri": "https://sharedcus.cus.attest.azure.net", + "publicNetworkAccess": "Enabled", + "status": "Ready", + "tpmAttestationAuthentication": "Enabled", + "trustModel": "AAD" + } + }, + { + "name": "shareduks", + "type": "Microsoft.Attestation/attestationProviders", + "id": "providers/Microsoft.Attestation/attestationProviders/shareduks", + "location": "UK South", + "properties": { + "attestUri": "https://shareduks.uks.attest.azure.net", + "publicNetworkAccess": "Enabled", + "status": "Ready", + "tpmAttestationAuthentication": "Enabled", + "trustModel": "AAD" + } + } + ] + } + } + }, + "operationId": "AttestationProviders_ListDefault", + "title": "AttestationProviders_GetDefault" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Operations_List.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Operations_List.json new file mode 100644 index 000000000000..45fc3207fec1 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Operations_List.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2021-06-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.Attestation/attestationProviders/attestation/read", + "display": { + "description": "Get status of attestation service.", + "operation": "Get status of attestation service", + "provider": "Microsoft Azure Attestation", + "resource": "Attestation" + } + }, + { + "name": "Microsoft.Attestation/attestationProviders/attestation/write", + "display": { + "description": "Adds attestation service.", + "operation": "Adds attestation service.", + "provider": "Microsoft Azure Attestation", + "resource": "Attestation" + } + }, + { + "name": "Microsoft.Attestation/attestationProviders/attestation/delete", + "display": { + "description": "Removes attestation service", + "operation": "Removes attestation service", + "provider": "Microsoft Azure Attestation", + "resource": "Attestation" + } + } + ] + } + } + }, + "operationId": "Operations_List", + "title": "Operations_List" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Update_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Update_AttestationProvider.json new file mode 100644 index 000000000000..b52506937b20 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/examples/2021-06-01/Update_AttestationProvider.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2021-06-01", + "providerName": "myattestationprovider", + "resourceGroupName": "MyResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "updateParams": { + "properties": { + "publicNetworkAccess": "Disabled", + "tpmAttestationAuthentication": "Disabled" + }, + "tags": { + "Property1": "Value1", + "Property2": "Value2", + "Property3": "Value3" + } + } + }, + "responses": { + "200": { + "body": { + "name": "myattestationprovider", + "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", + "location": "East US", + "properties": { + "attestUri": "https://superservice.attestation.azure.net", + "publicNetworkAccess": "Disabled", + "status": "Ready", + "tpmAttestationAuthentication": "Disabled", + "trustModel": "Isolated" + }, + "tags": { + "Property1": "Value1", + "Property2": "Value2", + "Property3": "Value3" + } + } + } + }, + "operationId": "AttestationProviders_Update", + "title": "AttestationProviders_Update" +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/main.tsp b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/main.tsp new file mode 100644 index 000000000000..9bd313fd8003 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/main.tsp @@ -0,0 +1,50 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.5 + * Date: 2025-09-17T06:50:27.946Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./AttestationProvider.tsp"; +import "./PrivateEndpointConnection.tsp"; +import "./routes.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * Various APIs for managing resources in attestation service. This primarily encompasses per-provider management. + */ +@armProviderNamespace +@service(#{ title: "AttestationManagementClient" }) +@versioned(Versions) +// FIXME: Common type version v1 is not supported for now. Set to v3. +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) +namespace Microsoft.Attestation; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2021-06-01 API version. + */ + v2021_06_01: "2021-06-01", +} + +interface Operations + extends Azure.ResourceManager.Legacy.Operations< + ArmResponse, + CloudError + > {} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/models.tsp b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/models.tsp new file mode 100644 index 000000000000..e8806c005d72 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/models.tsp @@ -0,0 +1,453 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; + +namespace Microsoft.Attestation; + +/** + * The type of identity that created the resource. + */ +union CreatedByType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + User: "User", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Application: "Application", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ManagedIdentity: "ManagedIdentity", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Key: "Key", +} + +/** + * Status of attestation service. + */ +union AttestationServiceStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Ready: "Ready", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NotReady: "NotReady", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Error: "Error", +} + +/** + * The public network access type for API calls to the Attestation Provider. + */ +union PublicNetworkAccessType { + string, + + /** + * Enables public network connectivity to the Attestation Provider REST APIs. + */ + Enabled: "Enabled", + + /** + * Disables public network connectivity to the Attestation Provider REST APIs. + */ + Disabled: "Disabled", +} + +/** + * The type for specifying the requirement of authentication for TPM Attestation REST APIs. + */ +union TpmAttestationAuthenticationType { + string, + + /** + * Enables the requirement of authentication for TPM Attestation REST APIs. + */ + Enabled: "Enabled", + + /** + * Disables the requirement of authentication for TPM Attestation REST APIs. + */ + Disabled: "Disabled", +} + +/** + * Definition object with the name and properties of an operation. + */ +model OperationsDefinition { + /** + * Name of the operation. + */ + name?: string; + + /** + * Display object with properties of the operation. + */ + display?: OperationsDisplayDefinition; + + /** + * Properties of the operation + */ + properties?: OperationProperties; +} + +/** + * Display object with properties of the operation. + */ +model OperationsDisplayDefinition { + /** + * Resource provider of the operation. + */ + provider?: string; + + /** + * Resource for the operation. + */ + resource?: string; + + /** + * Short description of the operation. + */ + operation?: string; + + /** + * Description of the operation. + */ + description?: string; +} + +/** + * Extra Operation properties + */ +model OperationProperties { + /** + * Service specifications of the operation + */ + serviceSpecification?: ServiceSpecification; +} + +/** + * Service specification payload + */ +model ServiceSpecification { + /** + * Specifications of the Log for Microsoft Azure Attestation + */ + @identifiers(#["name"]) + logSpecifications?: LogSpecification[]; +} + +/** + * Specifications of the Log for Microsoft Azure Attestation + */ +model LogSpecification { + /** + * Name of the log + */ + name?: string; + + /** + * Localized friendly display name of the log + */ + displayName?: string; +} + +/** + * An error response from Attestation. + */ +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@error +@Azure.ResourceManager.Legacy.armExternalType +model CloudError { + /** + * An error response from Attestation. + */ + error?: CloudErrorBody; +} + +/** + * An error response from Attestation. + */ +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@Azure.ResourceManager.Legacy.armExternalType +model CloudErrorBody { + /** + * An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + */ + code?: string; + + /** + * A message describing the error, intended to be suitable for displaying in a user interface. + */ + message?: string; +} + +/** + * Status of attestation service. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model StatusResult { + /** + * Trust model for the attestation provider. + */ + trustModel?: string; + + /** + * Status of attestation service. + */ + status?: AttestationServiceStatus; + + /** + * Gets the uri of attestation service + */ + attestUri?: string; + + /** + * Controls whether traffic from the public network is allowed to access the Attestation Provider APIs. + */ + publicNetworkAccess?: PublicNetworkAccessType = PublicNetworkAccessType.Enabled; + + /** + * List of private endpoint connections associated with the attestation provider. + */ + @visibility(Lifecycle.Read) + privateEndpointConnections?: PrivateEndpointConnection[]; + + /** + * The setting that controls whether authentication is enabled or disabled for TPM Attestation REST APIs. + */ + tpmAttestationAuthentication?: TpmAttestationAuthenticationType = TpmAttestationAuthenticationType.Enabled; +} + +/** + * Parameters for creating an attestation provider + */ +model AttestationServiceCreationParams { + /** + * The supported Azure location where the attestation provider should be created. + */ + location: string; + + /** + * The tags that will be assigned to the attestation provider. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record; + + /** + * Properties of the attestation provider + */ + properties: AttestationServiceCreationSpecificParams; +} + +/** + * Client supplied parameters used to create a new attestation provider. + */ +model AttestationServiceCreationSpecificParams { + /** + * Controls whether traffic from the public network is allowed to access the Attestation Provider APIs. + */ + publicNetworkAccess?: PublicNetworkAccessType = PublicNetworkAccessType.Enabled; + + /** + * JSON Web Key Set defining a set of X.509 Certificates that will represent the parent certificate for the signing certificate used for policy operations + */ + policySigningCertificates?: JsonWebKeySet; + + /** + * The setting that controls whether authentication is enabled or disabled for TPM Attestation REST APIs. + */ + tpmAttestationAuthentication?: TpmAttestationAuthenticationType = TpmAttestationAuthenticationType.Enabled; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model JsonWebKeySet { + /** + * The value of the "keys" parameter is an array of JWK values. By + * default, the order of the JWK values within the array does not imply + * an order of preference among them, although applications of JWK Sets + * can choose to assign a meaning to the order for their purposes, if + * desired. + */ + @identifiers(#[]) + keys?: JsonWebKey[]; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model JsonWebKey { + /** + * The "alg" (algorithm) parameter identifies the algorithm intended for + * use with the key. The values used should either be registered in the + * IANA "JSON Web Signature and Encryption Algorithms" registry + * established by [JWA] or be a value that contains a Collision- + * Resistant Name. + */ + alg?: string; + + /** + * The "crv" (curve) parameter identifies the curve type + */ + crv?: string; + + /** + * RSA private exponent or ECC private key + */ + d?: string; + + /** + * RSA Private Key Parameter + */ + dp?: string; + + /** + * RSA Private Key Parameter + */ + dq?: string; + + /** + * RSA public exponent, in Base64 + */ + e?: string; + + /** + * Symmetric key + */ + k?: string; + + /** + * The "kid" (key ID) parameter is used to match a specific key. This + * is used, for instance, to choose among a set of keys within a JWK Set + * during key rollover. The structure of the "kid" value is + * unspecified. When "kid" values are used within a JWK Set, different + * keys within the JWK Set SHOULD use distinct "kid" values. (One + * example in which different keys might use the same "kid" value is if + * they have different "kty" (key type) values but are considered to be + * equivalent alternatives by the application using them.) The "kid" + * value is a case-sensitive string. + */ + kid?: string; + + /** + * The "kty" (key type) parameter identifies the cryptographic algorithm + * family used with the key, such as "RSA" or "EC". "kty" values should + * either be registered in the IANA "JSON Web Key Types" registry + * established by [JWA] or be a value that contains a Collision- + * Resistant Name. The "kty" value is a case-sensitive string. + */ + kty: string; + + /** + * RSA modulus, in Base64 + */ + n?: string; + + /** + * RSA secret prime + */ + p?: string; + + /** + * RSA secret prime, with p < q + */ + q?: string; + + /** + * RSA Private Key Parameter + */ + qi?: string; + + /** + * Use ("public key use") identifies the intended use of + * the public key. The "use" parameter is employed to indicate whether + * a public key is used for encrypting data or verifying the signature + * on data. Values are commonly "sig" (signature) or "enc" (encryption). + */ + use?: string; + + /** + * X coordinate for the Elliptic Curve point + */ + x?: string; + + /** + * The "x5c" (X.509 certificate chain) parameter contains a chain of one + * or more PKIX certificates [RFC5280]. The certificate chain is + * represented as a JSON array of certificate value strings. Each + * string in the array is a base64-encoded (Section 4 of [RFC4648] -- + * not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value. + * The PKIX certificate containing the key value MUST be the first + * certificate. + */ + x5c?: string[]; + + /** + * Y coordinate for the Elliptic Curve point + */ + y?: string; +} + +/** + * Parameters for patching an attestation provider + */ +model AttestationServicePatchParams { + /** + * The tags that will be assigned to the attestation provider. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record; + + /** + * Properties of the attestation provider + */ + properties?: AttestationServicePatchSpecificParams; +} + +/** + * Client supplied parameters used to patch an existing attestation provider. + */ +model AttestationServicePatchSpecificParams { + /** + * Controls whether traffic from the public network is allowed to access the Attestation Provider APIs. + */ + publicNetworkAccess?: PublicNetworkAccessType = PublicNetworkAccessType.Enabled; + + /** + * The setting that controls whether authentication is enabled or disabled for TPM Attestation REST APIs. + */ + tpmAttestationAuthentication?: TpmAttestationAuthenticationType = TpmAttestationAuthenticationType.Enabled; +} + +/** + * Attestation Providers List. + */ +model AttestationProviderListResult { + /** + * The system metadata relating to this resource + */ + @visibility(Lifecycle.Read) + systemData?: SystemData; + + /** + * Attestation Provider array. + */ + @pageItems + value?: AttestationProvider[]; +} + +/** + * List of supported operations. + */ +model OperationList { + /** + * The system metadata relating to this resource + */ + @visibility(Lifecycle.Read) + systemData?: SystemData; + + /** + * List of supported operations. + */ + @pageItems + @identifiers(#["name"]) + value?: OperationsDefinition[]; +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/routes.tsp b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/routes.tsp new file mode 100644 index 000000000000..40ecfeb432e5 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/routes.tsp @@ -0,0 +1,42 @@ +// FIXME: Operations in this file are not detected as a resource operation, please confirm the conversion result manually + +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models.tsp"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using TypeSpec.OpenAPI; + +namespace Microsoft.Attestation; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface AttestationProvidersOperationGroup { + /** + * Get the default provider + */ + @autoRoute + @get + @action("defaultProviders") + listDefault is ArmProviderActionSync< + Response = AttestationProviderListResult, + Scope = SubscriptionActionScope, + Parameters = {}, + Error = CloudError + >; + /** + * Get the default provider by location. + */ + @autoRoute + @get + @action("defaultProvider") + getDefaultByLocation is ArmProviderActionSync< + Response = AttestationProvider, + Scope = SubscriptionActionScope, + Parameters = LocationParameter, + Error = CloudError + >; +} diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/attestation.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/attestation.json index 1ea2a4fd0084..ad08c6a5ca9d 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/attestation.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/attestation.json @@ -2,661 +2,1086 @@ "swagger": "2.0", "info": { "title": "AttestationManagementClient", + "version": "2021-06-01", "description": "Various APIs for managing resources in attestation service. This primarily encompasses per-provider management.", - "version": "2021-06-01" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, - "host": "management.azure.com", "schemes": [ "https" ], - "consumes": [ + "host": "management.azure.com", + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], "securityDefinitions": { "azure_auth": { "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "description": "Azure Active Directory OAuth2 Flow.", "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "scopes": { "user_impersonation": "impersonate your user account" } } }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "AttestationProviders" + }, + { + "name": "PrivateEndpointConnections" + } + ], "paths": { "/providers/Microsoft.Attestation/operations": { "get": { + "operationId": "Operations_List", "tags": [ "Operations" ], - "operationId": "Operations_List", - "description": "Lists all of the available Azure attestation operations.", + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OperationList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, "x-ms-examples": { "Operations_List": { "$ref": "./examples/Operations_List.json" } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/attestationProviders": { + "get": { + "operationId": "AttestationProviders_List", + "tags": [ + "AttestationProviders" + ], + "description": "Returns a list of attestation providers in a subscription.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/AttestationProviderListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "AttestationProviders_List": { + "$ref": "./examples/Get_AttestationProvidersList.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/defaultProviders": { + "get": { + "operationId": "AttestationProviders_ListDefault", + "description": "Get the default provider", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/AttestationProviderListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } }, + "x-ms-examples": { + "AttestationProviders_GetDefault": { + "$ref": "./examples/Get_DefaultProviders.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/locations/{location}/defaultProvider": { + "get": { + "operationId": "AttestationProviders_GetDefaultByLocation", + "description": "Get the default provider by location.", "parameters": [ { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" } ], "responses": { "200": { - "description": "List all the operations.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/OperationList" + "$ref": "#/definitions/AttestationProvider" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "AttestationProviders_GetDefaultWithLocation": { + "$ref": "./examples/Get_DefaultProviderByLocation.json" + } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders": { "get": { + "operationId": "AttestationProviders_ListByResourceGroup", "tags": [ "AttestationProviders" ], - "operationId": "AttestationProviders_Get", - "description": "Get the status of Attestation Provider.", - "x-ms-examples": { - "AttestationProviders_Get": { - "$ref": "./examples/Get_AttestationProvider.json" + "description": "Returns attestation providers list in a resource group.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/AttestationProviderListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } } }, + "x-ms-examples": { + "AttestationProviders_ListByResourceGroup": { + "$ref": "./examples/Get_AttestationProvidersListByResourceGroup.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}": { + "get": { + "operationId": "AttestationProviders_Get", + "tags": [ + "AttestationProviders" + ], + "description": "Get the status of Attestation Provider.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "providerName", "in": "path", + "description": "Name of the attestation provider.", "required": true, "type": "string", - "description": "Name of the attestation provider." - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { - "description": "The status of the specified attestation provider", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/AttestationProvider" } }, "default": { - "description": "Error result from Attestation service", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "AttestationProviders_Get": { + "$ref": "./examples/Get_AttestationProvider.json" + } } }, "put": { + "operationId": "AttestationProviders_Create", "tags": [ "AttestationProviders" ], - "operationId": "AttestationProviders_Create", "description": "Creates or updates an Attestation Provider.", - "x-ms-examples": { - "AttestationProviders_Create": { - "$ref": "./examples/Create_AttestationProvider.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "providerName", "in": "path", + "description": "Name of the attestation provider.", "required": true, "type": "string", - "description": "Name of the attestation provider." - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "creationParams", "in": "body", - "required": true, "description": "Client supplied parameters.", + "required": true, "schema": { "$ref": "#/definitions/AttestationServiceCreationParams" - }, - "x-ms-parameter-location": "method" + } } ], "responses": { "200": { - "description": "Created or updated attestation service", + "description": "Resource 'AttestationProvider' update operation succeeded", "schema": { "$ref": "#/definitions/AttestationProvider" } }, "201": { - "description": "Created or updated attestation service", + "description": "Resource 'AttestationProvider' create operation succeeded", "schema": { "$ref": "#/definitions/AttestationProvider" } }, "default": { - "description": "Error result from Attestation service", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "AttestationProviders_Create": { + "$ref": "./examples/Create_AttestationProvider.json" + } } }, "patch": { + "operationId": "AttestationProviders_Update", "tags": [ "AttestationProviders" ], - "operationId": "AttestationProviders_Update", "description": "Updates the Attestation Provider.", - "x-ms-examples": { - "AttestationProviders_Update": { - "$ref": "./examples/Update_AttestationProvider.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "providerName", "in": "path", + "description": "Name of the attestation provider.", "required": true, "type": "string", - "description": "Name of the attestation provider." - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { "name": "updateParams", "in": "body", - "required": true, "description": "Client supplied parameters.", + "required": true, "schema": { "$ref": "#/definitions/AttestationServicePatchParams" - }, - "x-ms-parameter-location": "method" + } } ], "responses": { "200": { - "description": "Updated attestation service", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/AttestationProvider" } }, "default": { - "description": "Error result from Attestation service", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "AttestationProviders_Update": { + "$ref": "./examples/Update_AttestationProvider.json" + } } }, "delete": { + "operationId": "AttestationProviders_Delete", "tags": [ "AttestationProviders" ], - "operationId": "AttestationProviders_Delete", "description": "Delete Attestation Service.", - "x-ms-examples": { - "AttestationProviders_Delete": { - "$ref": "./examples/Delete_AttestationProvider.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "providerName", "in": "path", + "description": "Name of the attestation provider.", "required": true, "type": "string", - "description": "Name of the attestation service" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { - "description": "Resource exists and was deleted successfully" + "description": "Resource deleted successfully." }, "202": { - "description": "Request accepted for deletion of attestation service" + "description": "The request has been accepted for processing, but processing has not yet completed." }, "204": { - "description": "Resource does not exist" + "description": "Resource does not exist." }, "default": { - "description": "Error result from Attestation service", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "AttestationProviders_Delete": { + "$ref": "./examples/Delete_AttestationProvider.json" + } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}/privateEndpointConnections": { "get": { + "operationId": "PrivateEndpointConnections_List", "tags": [ "PrivateEndpointConnections" ], - "operationId": "PrivateEndpointConnections_List", "description": "List all the private endpoint connections associated with the attestation provider.", - "x-ms-examples": { - "AttestationProviderListPrivateEndpointConnections": { - "$ref": "./examples/AttestationProviderListPrivateEndpointConnections.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ProviderName" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + "name": "providerName", + "in": "path", + "description": "Name of the attestation provider.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { - "description": "OK -- Successfully retrieved private endpoint connections.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v1/privatelinks.json#/definitions/PrivateEndpointConnectionListResult" + "$ref": "#/definitions/PrivateEndpointConnectionListResult" } }, "default": { - "description": "Error result from Attestation service", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, + "x-ms-examples": { + "AttestationProviderListPrivateEndpointConnections": { + "$ref": "./examples/AttestationProviderListPrivateEndpointConnections.json" + } + }, "x-ms-pageable": { - "nextLinkName": null + "nextLinkName": "nextLink" } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}/privateEndpointConnections/{privateEndpointConnectionName}": { "get": { + "operationId": "PrivateEndpointConnections_Get", "tags": [ "PrivateEndpointConnections" ], - "operationId": "PrivateEndpointConnections_Get", "description": "Gets the specified private endpoint connection associated with the attestation provider.", - "x-ms-examples": { - "AttestationProviderGetPrivateEndpointConnection": { - "$ref": "./examples/AttestationProviderGetPrivateEndpointConnection.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ProviderName" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + "name": "providerName", + "in": "path", + "description": "Name of the attestation provider.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { - "$ref": "../../../../../../common-types/resource-management/v1/privatelinks.json#/parameters/PrivateEndpointConnectionName" + "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/parameters/PrivateEndpointConnectionName" } ], "responses": { "200": { - "description": "OK -- Get the private endpoint connection properties successfully.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v1/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnection" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "AttestationProviderGetPrivateEndpointConnection": { + "$ref": "./examples/AttestationProviderGetPrivateEndpointConnection.json" + } } }, "put": { + "operationId": "PrivateEndpointConnections_Create", "tags": [ "PrivateEndpointConnections" ], - "operationId": "PrivateEndpointConnections_Create", "description": "Update the state of specified private endpoint connection associated with the attestation provider.", - "x-ms-examples": { - "AttestationProviderPutPrivateEndpointConnection": { - "$ref": "./examples/AttestationProviderPutPrivateEndpointConnection.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ProviderName" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/privatelinks.json#/parameters/PrivateEndpointConnectionName" + "name": "providerName", + "in": "path", + "description": "Name of the attestation provider.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/parameters/PrivateEndpointConnectionName" }, { "name": "properties", "in": "body", + "description": "The private endpoint connection properties.", "required": true, "schema": { - "$ref": "../../../../../../common-types/resource-management/v1/privatelinks.json#/definitions/PrivateEndpointConnection" - }, - "description": "The private endpoint connection properties." + "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnection" + } } ], "responses": { "200": { - "description": "OK -- Update the private endpoint connection properties successfully.", + "description": "Resource 'PrivateEndpointConnection' update operation succeeded", "schema": { - "$ref": "../../../../../../common-types/resource-management/v1/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnection" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "AttestationProviderPutPrivateEndpointConnection": { + "$ref": "./examples/AttestationProviderPutPrivateEndpointConnection.json" + } } }, "delete": { + "operationId": "PrivateEndpointConnections_Delete", "tags": [ "PrivateEndpointConnections" ], - "operationId": "PrivateEndpointConnections_Delete", "description": "Deletes the specified private endpoint connection associated with the attestation provider.", - "x-ms-examples": { - "AttestationProviderDeletePrivateEndpointConnection": { - "$ref": "./examples/AttestationProviderDeletePrivateEndpointConnection.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ProviderName" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + "name": "providerName", + "in": "path", + "description": "Name of the attestation provider.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { - "$ref": "../../../../../../common-types/resource-management/v1/privatelinks.json#/parameters/PrivateEndpointConnectionName" + "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/parameters/PrivateEndpointConnectionName" } ], "responses": { "200": { - "description": "OK -- Delete the private endpoint connection successfully." + "description": "Resource deleted successfully." }, "204": { - "description": "No Content -- The private endpoint connection does not exist." + "description": "Resource does not exist." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "AttestationProviderDeletePrivateEndpointConnection": { + "$ref": "./examples/AttestationProviderDeletePrivateEndpointConnection.json" + } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}/privateLinkResources": { "get": { + "operationId": "PrivateLinkResources_ListByProvider", "tags": [ - "PrivateLinkResources" + "AttestationProviders" ], - "operationId": "PrivateLinkResources_ListByProvider", "description": "Gets the private link resources supported for the attestation provider.", - "x-ms-examples": { - "AttestationProviderListPrivateLinkResources": { - "$ref": "./examples/AttestationProviderListPrivateLinkResources.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ProviderName" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + "name": "providerName", + "in": "path", + "description": "Name of the attestation provider.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { - "description": "OK - Successfully retrieved private link resources.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v1/privatelinks.json#/definitions/PrivateLinkResourceListResult" + "$ref": "#/definitions/PrivateLinkResourceListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "AttestationProviderListPrivateLinkResources": { + "$ref": "./examples/AttestationProviderListPrivateLinkResources.json" + } } } + } + }, + "definitions": { + "AttestationProvider": { + "type": "object", + "description": "Attestation service response message.", + "properties": { + "properties": { + "$ref": "#/definitions/StatusResult", + "description": "Describes Attestation service status.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/TrackedResource" + } + ] }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/attestationProviders": { - "get": { - "tags": [ - "AttestationProviders" - ], - "operationId": "AttestationProviders_List", - "description": "Returns a list of attestation providers in a subscription.", - "x-ms-examples": { - "AttestationProviders_List": { - "$ref": "./examples/Get_AttestationProvidersList.json" - } + "AttestationProviderListResult": { + "type": "object", + "description": "Attestation Providers List.", + "properties": { + "systemData": { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/systemData", + "description": "The system metadata relating to this resource", + "readOnly": true }, - "parameters": [ - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/AttestationProviderListResult" - } - }, - "default": { - "description": "Attestation service error result", - "schema": { - "$ref": "#/definitions/CloudError" - } + "value": { + "type": "array", + "description": "Attestation Provider array.", + "items": { + "$ref": "#/definitions/AttestationProvider" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders": { - "get": { - "tags": [ - "AttestationProviders" - ], - "operationId": "AttestationProviders_ListByResourceGroup", - "description": "Returns attestation providers list in a resource group.", - "x-ms-examples": { - "AttestationProviders_ListByResourceGroup": { - "$ref": "./examples/Get_AttestationProvidersListByResourceGroup.json" + "AttestationServiceCreationParams": { + "type": "object", + "description": "Parameters for creating an attestation provider", + "properties": { + "location": { + "type": "string", + "description": "The supported Azure location where the attestation provider should be created." + }, + "tags": { + "type": "object", + "description": "The tags that will be assigned to the attestation provider.", + "additionalProperties": { + "type": "string" } }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + "properties": { + "$ref": "#/definitions/AttestationServiceCreationSpecificParams", + "description": "Properties of the attestation provider" + } + }, + "required": [ + "location", + "properties" + ] + }, + "AttestationServiceCreationSpecificParams": { + "type": "object", + "description": "Client supplied parameters used to create a new attestation provider.", + "properties": { + "publicNetworkAccess": { + "type": "string", + "description": "Controls whether traffic from the public network is allowed to access the Attestation Provider APIs.", + "default": "Enabled", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "PublicNetworkAccessType", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Enables public network connectivity to the Attestation Provider REST APIs." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disables public network connectivity to the Attestation Provider REST APIs." + } + ] } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/AttestationProviderListResult" - } - }, - "default": { - "description": "Attestation service error result", - "schema": { - "$ref": "#/definitions/CloudError" - } + }, + "policySigningCertificates": { + "$ref": "#/definitions/JsonWebKeySet", + "description": "JSON Web Key Set defining a set of X.509 Certificates that will represent the parent certificate for the signing certificate used for policy operations" + }, + "tpmAttestationAuthentication": { + "type": "string", + "description": "The setting that controls whether authentication is enabled or disabled for TPM Attestation REST APIs.", + "default": "Enabled", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "TpmAttestationAuthenticationType", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Enables the requirement of authentication for TPM Attestation REST APIs." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disables the requirement of authentication for TPM Attestation REST APIs." + } + ] } } } }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/defaultProviders": { - "get": { - "tags": [ - "AttestationProviders" - ], - "operationId": "AttestationProviders_ListDefault", - "description": "Get the default provider", - "x-ms-examples": { - "AttestationProviders_GetDefault": { - "$ref": "./examples/Get_DefaultProviders.json" + "AttestationServicePatchParams": { + "type": "object", + "description": "Parameters for patching an attestation provider", + "properties": { + "tags": { + "type": "object", + "description": "The tags that will be assigned to the attestation provider.", + "additionalProperties": { + "type": "string" } }, - "parameters": [ + "properties": { + "$ref": "#/definitions/AttestationServicePatchSpecificParams", + "description": "Properties of the attestation provider" + } + } + }, + "AttestationServicePatchSpecificParams": { + "type": "object", + "description": "Client supplied parameters used to patch an existing attestation provider.", + "properties": { + "publicNetworkAccess": { + "type": "string", + "description": "Controls whether traffic from the public network is allowed to access the Attestation Provider APIs.", + "default": "Enabled", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "PublicNetworkAccessType", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Enables public network connectivity to the Attestation Provider REST APIs." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disables public network connectivity to the Attestation Provider REST APIs." + } + ] + } + }, + "tpmAttestationAuthentication": { + "type": "string", + "description": "The setting that controls whether authentication is enabled or disabled for TPM Attestation REST APIs.", + "default": "Enabled", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "TpmAttestationAuthenticationType", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Enables the requirement of authentication for TPM Attestation REST APIs." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disables the requirement of authentication for TPM Attestation REST APIs." + } + ] + } + } + } + }, + "AttestationServiceStatus": { + "type": "string", + "description": "Status of attestation service.", + "enum": [ + "Ready", + "NotReady", + "Error" + ], + "x-ms-enum": { + "name": "AttestationServiceStatus", + "modelAsString": true, + "values": [ { - "$ref": "#/parameters/ApiVersionParameter" + "name": "Ready", + "value": "Ready" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "Retrieved information about the default provider.", - "schema": { - "$ref": "#/definitions/AttestationProviderListResult" - } + "name": "NotReady", + "value": "NotReady" }, - "default": { - "description": "Attestation service error result", - "schema": { - "$ref": "#/definitions/CloudError" - } + { + "name": "Error", + "value": "Error" } - } + ] } }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/locations/{location}/defaultProvider": { - "get": { - "tags": [ - "AttestationProviders" - ], - "operationId": "AttestationProviders_GetDefaultByLocation", - "description": "Get the default provider by location.", - "x-ms-examples": { - "AttestationProviders_GetDefaultWithLocation": { - "$ref": "./examples/Get_DefaultProviderByLocation.json" - } + "CloudError": { + "type": "object", + "description": "An error response from Attestation.", + "properties": { + "error": { + "$ref": "#/definitions/CloudErrorBody", + "description": "An error response from Attestation." + } + }, + "x-ms-external": true + }, + "CloudErrorBody": { + "type": "object", + "description": "An error response from Attestation.", + "properties": { + "code": { + "type": "string", + "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." }, - "parameters": [ + "message": { + "type": "string", + "description": "A message describing the error, intended to be suitable for displaying in a user interface." + } + }, + "x-ms-external": true + }, + "CreatedByType": { + "type": "string", + "description": "The type of identity that created the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "CreatedByType", + "modelAsString": true, + "values": [ { - "name": "location", - "in": "path", - "required": true, - "type": "string", - "minLength": 1, - "description": "The location of the default provider." + "name": "User", + "value": "User" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "Application", + "value": "Application" }, { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + "name": "ManagedIdentity", + "value": "ManagedIdentity" + }, + { + "name": "Key", + "value": "Key" } - ], - "responses": { - "200": { - "description": "Retrieved information about the default provider.", - "schema": { - "$ref": "#/definitions/AttestationProvider" - } + ] + } + }, + "JsonWebKey": { + "type": "object", + "properties": { + "alg": { + "type": "string", + "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for\nuse with the key. The values used should either be registered in the\nIANA \"JSON Web Signature and Encryption Algorithms\" registry\nestablished by [JWA] or be a value that contains a Collision-\nResistant Name." + }, + "crv": { + "type": "string", + "description": "The \"crv\" (curve) parameter identifies the curve type" + }, + "d": { + "type": "string", + "description": "RSA private exponent or ECC private key" + }, + "dp": { + "type": "string", + "description": "RSA Private Key Parameter" + }, + "dq": { + "type": "string", + "description": "RSA Private Key Parameter" + }, + "e": { + "type": "string", + "description": "RSA public exponent, in Base64" + }, + "k": { + "type": "string", + "description": "Symmetric key" + }, + "kid": { + "type": "string", + "description": "The \"kid\" (key ID) parameter is used to match a specific key. This\nis used, for instance, to choose among a set of keys within a JWK Set\nduring key rollover. The structure of the \"kid\" value is\nunspecified. When \"kid\" values are used within a JWK Set, different\nkeys within the JWK Set SHOULD use distinct \"kid\" values. (One\nexample in which different keys might use the same \"kid\" value is if\nthey have different \"kty\" (key type) values but are considered to be\nequivalent alternatives by the application using them.) The \"kid\"\nvalue is a case-sensitive string." + }, + "kty": { + "type": "string", + "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm\nfamily used with the key, such as \"RSA\" or \"EC\". \"kty\" values should\neither be registered in the IANA \"JSON Web Key Types\" registry\nestablished by [JWA] or be a value that contains a Collision-\nResistant Name. The \"kty\" value is a case-sensitive string." + }, + "n": { + "type": "string", + "description": "RSA modulus, in Base64" + }, + "p": { + "type": "string", + "description": "RSA secret prime" + }, + "q": { + "type": "string", + "description": "RSA secret prime, with p < q" + }, + "qi": { + "type": "string", + "description": "RSA Private Key Parameter" + }, + "use": { + "type": "string", + "description": "Use (\"public key use\") identifies the intended use of\nthe public key. The \"use\" parameter is employed to indicate whether\na public key is used for encrypting data or verifying the signature\non data. Values are commonly \"sig\" (signature) or \"enc\" (encryption)." + }, + "x": { + "type": "string", + "description": "X coordinate for the Elliptic Curve point" + }, + "x5c": { + "type": "array", + "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one\nor more PKIX certificates [RFC5280]. The certificate chain is\nrepresented as a JSON array of certificate value strings. Each\nstring in the array is a base64-encoded (Section 4 of [RFC4648] --\nnot base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.\nThe PKIX certificate containing the key value MUST be the first\ncertificate.", + "items": { + "type": "string" + }, + "x-ms-client-name": "x5C" + }, + "y": { + "type": "string", + "description": "Y coordinate for the Elliptic Curve point" + } + }, + "required": [ + "kty" + ] + }, + "JsonWebKeySet": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "description": "The value of the \"keys\" parameter is an array of JWK values. By\ndefault, the order of the JWK values within the array does not imply\nan order of preference among them, although applications of JWK Sets\ncan choose to assign a meaning to the order for their purposes, if\ndesired.", + "items": { + "$ref": "#/definitions/JsonWebKey" }, - "default": { - "description": "Attestation service error result", - "schema": { - "$ref": "#/definitions/CloudError" - } - } + "x-ms-identifiers": [] } } - } - }, - "definitions": { + }, + "LogSpecification": { + "type": "object", + "description": "Specifications of the Log for Microsoft Azure Attestation", + "properties": { + "name": { + "type": "string", + "description": "Name of the log" + }, + "displayName": { + "type": "string", + "description": "Localized friendly display name of the log" + } + } + }, "OperationList": { + "type": "object", + "description": "List of supported operations.", "properties": { "systemData": { - "readOnly": true, + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/systemData", "description": "The system metadata relating to this resource", - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/definitions/systemData" + "readOnly": true }, "value": { "type": "array", @@ -668,8 +1093,17 @@ "name" ] } - }, - "description": "List of supported operations." + } + }, + "OperationProperties": { + "type": "object", + "description": "Extra Operation properties", + "properties": { + "serviceSpecification": { + "$ref": "#/definitions/ServiceSpecification", + "description": "Service specifications of the operation" + } + } }, "OperationsDefinition": { "type": "object", @@ -711,24 +1145,79 @@ } } }, - "OperationProperties": { - "description": "Extra Operation properties", + "PrivateEndpointConnectionListResult": { "type": "object", + "description": "The response of a PrivateEndpointConnection list operation.", "properties": { - "serviceSpecification": { - "$ref": "#/definitions/ServiceSpecification", - "description": "Service specifications of the operation" + "value": { + "type": "array", + "description": "The PrivateEndpointConnection items on this page", + "items": { + "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnection" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PrivateLinkResourceListResult": { + "type": "object", + "description": "The response of a PrivateLinkResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The PrivateLinkResource items on this page", + "items": { + "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateLinkResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" } + }, + "required": [ + "value" + ] + }, + "PublicNetworkAccessType": { + "type": "string", + "description": "The public network access type for API calls to the Attestation Provider.", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "PublicNetworkAccessType", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Enables public network connectivity to the Attestation Provider REST APIs." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disables public network connectivity to the Attestation Provider REST APIs." + } + ] } }, "ServiceSpecification": { - "description": "Service specification payload", "type": "object", + "description": "Service specification payload", "properties": { "logSpecifications": { - "description": "Specifications of the Log for Microsoft Azure Attestation", - "uniqueItems": false, "type": "array", + "description": "Specifications of the Log for Microsoft Azure Attestation", "items": { "$ref": "#/definitions/LogSpecification" }, @@ -738,41 +1227,6 @@ } } }, - "LogSpecification": { - "description": "Specifications of the Log for Microsoft Azure Attestation", - "type": "object", - "properties": { - "name": { - "description": "Name of the log", - "type": "string" - }, - "displayName": { - "description": "Localized friendly display name of the log", - "type": "string" - } - } - }, - "AttestationProvider": { - "description": "Attestation service response message.", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource" - } - ], - "properties": { - "systemData": { - "readOnly": true, - "description": "The system metadata relating to this resource", - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/definitions/systemData" - }, - "properties": { - "type": "object", - "$ref": "#/definitions/StatusResult", - "description": "Describes Attestation service status.", - "x-ms-client-flatten": true - } - } - }, "StatusResult": { "type": "object", "description": "Status of attestation service.", @@ -782,180 +1236,76 @@ "description": "Trust model for the attestation provider." }, "status": { - "type": "string", - "description": "Status of attestation service.", - "enum": [ - "Ready", - "NotReady", - "Error" - ], - "x-ms-enum": { - "name": "AttestationServiceStatus", - "modelAsString": true - } + "$ref": "#/definitions/AttestationServiceStatus", + "description": "Status of attestation service." }, "attestUri": { "type": "string", "description": "Gets the uri of attestation service" }, "publicNetworkAccess": { + "type": "string", "description": "Controls whether traffic from the public network is allowed to access the Attestation Provider APIs.", - "$ref": "#/definitions/PublicNetworkAccessType" + "default": "Enabled", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "PublicNetworkAccessType", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Enables public network connectivity to the Attestation Provider REST APIs." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disables public network connectivity to the Attestation Provider REST APIs." + } + ] + } }, "privateEndpointConnections": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "../../../../../../common-types/resource-management/v1/privatelinks.json#/definitions/PrivateEndpointConnection" - }, - "description": "List of private endpoint connections associated with the attestation provider." - }, - "tpmAttestationAuthentication": { - "description": "The setting that controls whether authentication is enabled or disabled for TPM Attestation REST APIs.", - "$ref": "#/definitions/TpmAttestationAuthenticationType" - } - } - }, - "CloudError": { - "x-ms-external": true, - "properties": { - "error": { - "$ref": "#/definitions/CloudErrorBody" - } - }, - "description": "An error response from Attestation." - }, - "CloudErrorBody": { - "x-ms-external": true, - "properties": { - "code": { - "type": "string", - "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." - }, - "message": { - "type": "string", - "description": "A message describing the error, intended to be suitable for displaying in a user interface." - } - }, - "description": "An error response from Attestation." - }, - "AttestationProviderListResult": { - "description": "Attestation Providers List.", - "properties": { - "systemData": { - "readOnly": true, - "description": "The system metadata relating to this resource", - "$ref": "../../../../../../common-types/resource-management/v1/types.json#/definitions/systemData" - }, - "value": { "type": "array", - "description": "Attestation Provider array.", + "description": "List of private endpoint connections associated with the attestation provider.", "items": { - "$ref": "#/definitions/AttestationProvider" - } - } - } - }, - "AttestationServicePatchParams": { - "description": "Parameters for patching an attestation provider", - "x-ms-azure-resource": true, - "properties": { - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" + "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnection" }, - "description": "The tags that will be assigned to the attestation provider." - }, - "properties": { - "$ref": "#/definitions/AttestationServicePatchSpecificParams", - "description": "Properties of the attestation provider" - } - } - }, - "AttestationServicePatchSpecificParams": { - "type": "object", - "description": "Client supplied parameters used to patch an existing attestation provider.", - "properties": { - "publicNetworkAccess": { - "description": "Controls whether traffic from the public network is allowed to access the Attestation Provider APIs.", - "$ref": "#/definitions/PublicNetworkAccessType" + "readOnly": true }, "tpmAttestationAuthentication": { - "description": "The setting that controls whether authentication is enabled or disabled for TPM Attestation REST APIs.", - "$ref": "#/definitions/TpmAttestationAuthenticationType" - } - } - }, - "AttestationServiceCreationParams": { - "description": "Parameters for creating an attestation provider", - "required": [ - "location", - "properties" - ], - "x-ms-azure-resource": true, - "properties": { - "location": { "type": "string", - "description": "The supported Azure location where the attestation provider should be created." - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "The tags that will be assigned to the attestation provider." - }, - "properties": { - "$ref": "#/definitions/AttestationServiceCreationSpecificParams", - "description": "Properties of the attestation provider" - } - } - }, - "AttestationServiceCreationSpecificParams": { - "description": "Client supplied parameters used to create a new attestation provider.", - "properties": { - "publicNetworkAccess": { - "description": "Controls whether traffic from the public network is allowed to access the Attestation Provider APIs.", - "$ref": "#/definitions/PublicNetworkAccessType" - }, - "policySigningCertificates": { - "description": "JSON Web Key Set defining a set of X.509 Certificates that will represent the parent certificate for the signing certificate used for policy operations", - "$ref": "../../../../../../common-types/rfcs/rfc7517.json#/definitions/JSONWebKeySet" - }, - "tpmAttestationAuthentication": { "description": "The setting that controls whether authentication is enabled or disabled for TPM Attestation REST APIs.", - "$ref": "#/definitions/TpmAttestationAuthenticationType" - } - } - }, - "PublicNetworkAccessType": { - "type": "string", - "description": "The public network access type for API calls to the Attestation Provider.", - "default": "Enabled", - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "PublicNetworkAccessType", - "modelAsString": true, - "values": [ - { - "value": "Enabled", - "description": "Enables public network connectivity to the Attestation Provider REST APIs." - }, - { - "value": "Disabled", - "description": "Disables public network connectivity to the Attestation Provider REST APIs." + "default": "Enabled", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "TpmAttestationAuthenticationType", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Enables the requirement of authentication for TPM Attestation REST APIs." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disables the requirement of authentication for TPM Attestation REST APIs." + } + ] } - ] + } } }, "TpmAttestationAuthenticationType": { "type": "string", "description": "The type for specifying the requirement of authentication for TPM Attestation REST APIs.", - "default": "Enabled", "enum": [ "Enabled", "Disabled" @@ -965,10 +1315,12 @@ "modelAsString": true, "values": [ { + "name": "Enabled", "value": "Enabled", "description": "Enables the requirement of authentication for TPM Attestation REST APIs." }, { + "name": "Disabled", "value": "Disabled", "description": "Disables the requirement of authentication for TPM Attestation REST APIs." } @@ -976,30 +1328,5 @@ } } }, - "parameters": { - "ApiVersionParameter": { - "name": "api-version", - "in": "query", - "required": true, - "type": "string", - "description": "Client API version. Current version is 2021-06-01" - }, - "PrivateEndpointConnectionName": { - "name": "privateEndpointConnectionName", - "in": "path", - "required": true, - "type": "string", - "description": "Name of the private endpoint connection associated with the attestation providers.", - "x-ms-parameter-location": "method" - }, - "ProviderName": { - "name": "providerName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$", - "description": "The name of the attestation provider.", - "x-ms-parameter-location": "method" - } - } + "parameters": {} } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderDeletePrivateEndpointConnection.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderDeletePrivateEndpointConnection.json index 5ee0f1f5cc70..080368c2e2ba 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderDeletePrivateEndpointConnection.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderDeletePrivateEndpointConnection.json @@ -1,14 +1,16 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", - "providerName": "sto2527", - "privateEndpointConnectionName": "{privateEndpointConnectionName}", "api-version": "2021-06-01", - "monitor": "true" + "monitor": "true", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", + "providerName": "sto2527", + "resourceGroupName": "res6977", + "subscriptionId": "{subscription-id}" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "PrivateEndpointConnections_Delete", + "title": "AttestationProviderDeletePrivateEndpointConnection" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderGetPrivateEndpointConnection.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderGetPrivateEndpointConnection.json index f4144fa98bd7..4be1d21a9711 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderGetPrivateEndpointConnection.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderGetPrivateEndpointConnection.json @@ -1,28 +1,30 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", - "providerName": "sto2527", + "api-version": "2021-06-01", "privateEndpointConnectionName": "{privateEndpointConnectionName}", - "api-version": "2021-06-01" + "providerName": "sto2527", + "resourceGroupName": "res6977", + "subscriptionId": "{subscription-id}" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Attestation/attestationProviders/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "name": "{privateEndpointConnectionName}", "type": "Microsoft.Attestation/attestationProviders/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Attestation/attestationProviders/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01" }, "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Auto-Approved" - } + "description": "Auto-Approved", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } } - } + }, + "operationId": "PrivateEndpointConnections_Get", + "title": "AttestationProviderGetPrivateEndpointConnection" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderListPrivateEndpointConnections.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderListPrivateEndpointConnections.json index 98311030ad40..fb2dbf5d52df 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderListPrivateEndpointConnections.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderListPrivateEndpointConnections.json @@ -1,47 +1,49 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", - "providerName": "sto2527", "api-version": "2021-06-01", - "monitor": "true" + "monitor": "true", + "providerName": "sto2527", + "resourceGroupName": "res6977", + "subscriptionId": "{subscription-id}" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Attestation/attestationProviders/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "name": "{privateEndpointConnectionName}", "type": "Microsoft.Attestation/attestationProviders/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Attestation/attestationProviders/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01" }, "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Auto-Approved" - } + "description": "Auto-Approved", + "status": "Approved" + }, + "provisioningState": "Succeeded" } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Attestation/attestationProviders/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "name": "{privateEndpointConnectionName}", "type": "Microsoft.Attestation/attestationProviders/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Attestation/attestationProviders/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest02" }, "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Auto-Approved" - } + "description": "Auto-Approved", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } ] } } - } + }, + "operationId": "PrivateEndpointConnections_List", + "title": "AttestationProviderListPrivateEndpointConnections" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderListPrivateLinkResources.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderListPrivateLinkResources.json index 18aeb9a5a654..79a68f027093 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderListPrivateLinkResources.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderListPrivateLinkResources.json @@ -1,18 +1,18 @@ { "parameters": { - "resourceGroupName": "MyResourceGroup", - "subscriptionId": "00000000-0000-0000-0000-000000000000", "api-version": "2021-06-01", - "providerName": "myattestationprovider" + "providerName": "myattestationprovider", + "resourceGroupName": "MyResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider/privateLinkResources/tenant", "name": "tenant", "type": "Microsoft.Attestation/attestationProviders/privateLinkResources", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider/privateLinkResources/tenant", "properties": { "groupId": "standard", "requiredMembers": [ @@ -27,13 +27,15 @@ } }, "default": { - "headers": {}, "body": { "error": { "code": "", "message": "" } - } + }, + "headers": {} } - } + }, + "operationId": "PrivateLinkResources_ListByProvider", + "title": "AttestationProviderListPrivateLinkResources" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderPutPrivateEndpointConnection.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderPutPrivateEndpointConnection.json index 0243da664687..51e6b53b7932 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderPutPrivateEndpointConnection.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/AttestationProviderPutPrivateEndpointConnection.json @@ -1,37 +1,39 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", - "providerName": "sto9699", - "privateEndpointConnectionName": "{privateEndpointConnectionName}", "api-version": "2021-06-01", "monitor": "true", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", "properties": { "properties": { "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Auto-Approved" + "description": "Auto-Approved", + "status": "Approved" } } - } + }, + "providerName": "sto9699", + "resourceGroupName": "res7687", + "subscriptionId": "{subscription-id}" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Attestation/attestationProviders/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "name": "{privateEndpointConnectionName}", "type": "Microsoft.Attestation/attestationProviders/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Attestation/attestationProviders/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01" }, "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Auto-Approved" - } + "description": "Auto-Approved", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } } - } + }, + "operationId": "PrivateEndpointConnections_Create", + "title": "AttestationProviderPutPrivateEndpointConnection" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Create_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Create_AttestationProvider.json index 14b053989ef2..ae3f2b007f2a 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Create_AttestationProvider.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Create_AttestationProvider.json @@ -1,62 +1,64 @@ { "parameters": { - "resourceGroupName": "MyResourceGroup", - "subscriptionId": "00000000-0000-0000-0000-000000000000", "api-version": "2021-06-01", - "providerName": "myattestationprovider", "creationParams": { "location": "East US", + "properties": { + "publicNetworkAccess": "Enabled", + "tpmAttestationAuthentication": "Enabled" + }, "tags": { "Property1": "Value1", "Property2": "Value2", "Property3": "Value3" - }, - "properties": { - "publicNetworkAccess": "Enabled", - "tpmAttestationAuthentication": "Enabled" } - } + }, + "providerName": "myattestationprovider", + "resourceGroupName": "MyResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", "name": "myattestationprovider", "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", "location": "East US", - "tags": { - "Property1": "Value1", - "Property2": "Value2", - "Property3": "Value3" - }, "properties": { + "attestUri": "https://myattestationprovider.eus.attest.azure.net", "publicNetworkAccess": "Enabled", - "trustModel": "AAD", "status": "Ready", "tpmAttestationAuthentication": "Enabled", - "attestUri": "https://myattestationprovider.eus.attest.azure.net" + "trustModel": "AAD" + }, + "tags": { + "Property1": "Value1", + "Property2": "Value2", + "Property3": "Value3" } } }, "201": { "body": { - "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", "name": "myattestationprovider", "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", "location": "East US", - "tags": { - "Property1": "Value1", - "Property2": "Value2", - "Property3": "Value3" - }, "properties": { + "attestUri": "https://myattestationprovider.eus.attest.azure.net", "publicNetworkAccess": "Enabled", - "trustModel": "AAD", "status": "Ready", "tpmAttestationAuthentication": "Enabled", - "attestUri": "https://myattestationprovider.eus.attest.azure.net" + "trustModel": "AAD" + }, + "tags": { + "Property1": "Value1", + "Property2": "Value2", + "Property3": "Value3" } } } - } + }, + "operationId": "AttestationProviders_Create", + "title": "AttestationProviders_Create" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Delete_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Delete_AttestationProvider.json index afb2a6cdbc24..e89159d57015 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Delete_AttestationProvider.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Delete_AttestationProvider.json @@ -1,20 +1,22 @@ { "parameters": { + "api-version": "2021-06-01", + "providerName": "myattestationprovider", "resourceGroupName": "sample-resource-group", "serviceName": "sampleservicename", - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "api-version": "2021-06-01", - "providerName": "myattestationprovider" + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { - "202": { - "description": "Request accepted for deletion of attestation service" - }, "200": { "description": "Resource exists and was deleted successfully" }, + "202": { + "description": "Request accepted for deletion of attestation service" + }, "204": { "description": "Resource does not exist" } - } + }, + "operationId": "AttestationProviders_Delete", + "title": "AttestationProviders_Delete" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_AttestationProvider.json index f41be122640c..c302dcf2ea0b 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_AttestationProvider.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_AttestationProvider.json @@ -1,30 +1,32 @@ { "parameters": { - "resourceGroupName": "MyResourceGroup", - "subscriptionId": "00000000-0000-0000-0000-000000000000", "api-version": "2021-06-01", - "providerName": "myattestationprovider" + "providerName": "myattestationprovider", + "resourceGroupName": "MyResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", "name": "myattestationprovider", "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", "location": "East US", - "tags": { - "Property1": "Value1", - "Property2": "Value2", - "Property3": "Value3" - }, "properties": { + "attestUri": "https://superservice.attestation.azure.net", "publicNetworkAccess": "Enabled", - "trustModel": "Isolated", "status": "Ready", "tpmAttestationAuthentication": "Enabled", - "attestUri": "https://superservice.attestation.azure.net" + "trustModel": "Isolated" + }, + "tags": { + "Property1": "Value1", + "Property2": "Value2", + "Property3": "Value3" } } } - } + }, + "operationId": "AttestationProviders_Get", + "title": "AttestationProviders_Get" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_AttestationProvidersList.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_AttestationProvidersList.json index 182a958bebba..0b355d991f0d 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_AttestationProvidersList.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_AttestationProvidersList.json @@ -1,25 +1,25 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "api-version": "2021-06-01" + "api-version": "2021-06-01", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg1/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", "name": "myattestationprovider", "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg1/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", "location": "East US", "properties": { "status": "Ready" } }, { - "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg2/providers/Microsoft.Attestation/attestationProviders/codes2", "name": "codes2", "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg2/providers/Microsoft.Attestation/attestationProviders/codes2", "location": "East US", "properties": { "status": "Ready" @@ -28,5 +28,7 @@ ] } } - } + }, + "operationId": "AttestationProviders_List", + "title": "AttestationProviders_List" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_AttestationProvidersListByResourceGroup.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_AttestationProvidersListByResourceGroup.json index c109b9302d5a..b5354157b875 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_AttestationProvidersListByResourceGroup.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_AttestationProvidersListByResourceGroup.json @@ -1,26 +1,26 @@ { "parameters": { + "api-version": "2021-06-01", "resourceGroupName": "testrg1", - "subscriptionId": "6c96b33e-f5b8-40a6-9011-5cb1c58b0915", - "api-version": "2021-06-01" + "subscriptionId": "6c96b33e-f5b8-40a6-9011-5cb1c58b0915" }, "responses": { "200": { "body": { "value": [ { - "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg1/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", "name": "myattestationprovider", "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg1/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", "location": "East US", "properties": { "status": "Ready" } }, { - "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg1/providers/Microsoft.Attestation/attestationProviders/codes2", "name": "codes2", "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/6c96b33e-f5b8-40a6-9011-5cb1c58b0915/resourceGroups/testrg1/providers/Microsoft.Attestation/attestationProviders/codes2", "location": "East US", "properties": { "status": "Ready" @@ -29,5 +29,7 @@ ] } } - } + }, + "operationId": "AttestationProviders_ListByResourceGroup", + "title": "AttestationProviders_ListByResourceGroup" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_DefaultProviderByLocation.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_DefaultProviderByLocation.json index 3103c902070f..e613b157b703 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_DefaultProviderByLocation.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_DefaultProviderByLocation.json @@ -1,24 +1,26 @@ { "parameters": { - "subscriptionId": "6c96b33e-f5b8-40a6-9011-5cb1c58b0915", "api-version": "2021-06-01", - "location": "Central US" + "location": "Central US", + "subscriptionId": "6c96b33e-f5b8-40a6-9011-5cb1c58b0915" }, "responses": { "200": { "body": { - "id": "providers/Microsoft.Attestation/attestationProviders/sharedcus", "name": "sharedcus", "type": "Microsoft.Attestation/attestationProviders", + "id": "providers/Microsoft.Attestation/attestationProviders/sharedcus", "location": "Central US", "properties": { + "attestUri": "https://sharedcus.cus.attest.azure.net", "publicNetworkAccess": "Enabled", - "trustModel": "AAD", "status": "Ready", "tpmAttestationAuthentication": "Enabled", - "attestUri": "https://sharedcus.cus.attest.azure.net" + "trustModel": "AAD" } } } - } + }, + "operationId": "AttestationProviders_GetDefaultByLocation", + "title": "AttestationProviders_GetDefaultWithLocation" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_DefaultProviders.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_DefaultProviders.json index 1f2c242ba7e1..1a6e957c2d84 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_DefaultProviders.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Get_DefaultProviders.json @@ -1,40 +1,42 @@ { "parameters": { - "subscriptionId": "6c96b33e-f5b8-40a6-9011-5cb1c58b0915", - "api-version": "2021-06-01" + "api-version": "2021-06-01", + "subscriptionId": "6c96b33e-f5b8-40a6-9011-5cb1c58b0915" }, "responses": { "200": { "body": { "value": [ { - "id": "providers/Microsoft.Attestation/attestationProviders/sharedcus", "name": "sharedcus", "type": "Microsoft.Attestation/attestationProviders", + "id": "providers/Microsoft.Attestation/attestationProviders/sharedcus", "location": "Central US", "properties": { + "attestUri": "https://sharedcus.cus.attest.azure.net", "publicNetworkAccess": "Enabled", - "trustModel": "AAD", "status": "Ready", "tpmAttestationAuthentication": "Enabled", - "attestUri": "https://sharedcus.cus.attest.azure.net" + "trustModel": "AAD" } }, { - "id": "providers/Microsoft.Attestation/attestationProviders/shareduks", "name": "shareduks", "type": "Microsoft.Attestation/attestationProviders", + "id": "providers/Microsoft.Attestation/attestationProviders/shareduks", "location": "UK South", "properties": { + "attestUri": "https://shareduks.uks.attest.azure.net", "publicNetworkAccess": "Enabled", - "trustModel": "AAD", "status": "Ready", "tpmAttestationAuthentication": "Enabled", - "attestUri": "https://shareduks.uks.attest.azure.net" + "trustModel": "AAD" } } ] } } - } + }, + "operationId": "AttestationProviders_ListDefault", + "title": "AttestationProviders_GetDefault" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Operations_List.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Operations_List.json index 989f0cdc9044..45fc3207fec1 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Operations_List.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Operations_List.json @@ -4,35 +4,39 @@ }, "responses": { "200": { - "body": [ - { - "name": "Microsoft.Attestation/attestationProviders/attestation/read", - "display": { - "provider": "Microsoft Azure Attestation", - "resource": "Attestation", - "operation": "Get status of attestation service", - "description": "Get status of attestation service." + "body": { + "value": [ + { + "name": "Microsoft.Attestation/attestationProviders/attestation/read", + "display": { + "description": "Get status of attestation service.", + "operation": "Get status of attestation service", + "provider": "Microsoft Azure Attestation", + "resource": "Attestation" + } + }, + { + "name": "Microsoft.Attestation/attestationProviders/attestation/write", + "display": { + "description": "Adds attestation service.", + "operation": "Adds attestation service.", + "provider": "Microsoft Azure Attestation", + "resource": "Attestation" + } + }, + { + "name": "Microsoft.Attestation/attestationProviders/attestation/delete", + "display": { + "description": "Removes attestation service", + "operation": "Removes attestation service", + "provider": "Microsoft Azure Attestation", + "resource": "Attestation" + } } - }, - { - "name": "Microsoft.Attestation/attestationProviders/attestation/write", - "display": { - "provider": "Microsoft Azure Attestation", - "resource": "Attestation", - "operation": "Adds attestation service.", - "description": "Adds attestation service." - } - }, - { - "name": "Microsoft.Attestation/attestationProviders/attestation/delete", - "display": { - "provider": "Microsoft Azure Attestation", - "resource": "Attestation", - "operation": "Removes attestation service", - "description": "Removes attestation service" - } - } - ] + ] + } } - } + }, + "operationId": "Operations_List", + "title": "Operations_List" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Update_AttestationProvider.json b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Update_AttestationProvider.json index c9c40aede575..b52506937b20 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Update_AttestationProvider.json +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/stable/2021-06-01/examples/Update_AttestationProvider.json @@ -1,41 +1,43 @@ { "parameters": { - "resourceGroupName": "MyResourceGroup", - "subscriptionId": "00000000-0000-0000-0000-000000000000", "api-version": "2021-06-01", "providerName": "myattestationprovider", + "resourceGroupName": "MyResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000", "updateParams": { + "properties": { + "publicNetworkAccess": "Disabled", + "tpmAttestationAuthentication": "Disabled" + }, "tags": { "Property1": "Value1", "Property2": "Value2", "Property3": "Value3" - }, - "properties": { - "publicNetworkAccess": "Disabled", - "tpmAttestationAuthentication": "Disabled" } } }, "responses": { "200": { "body": { - "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", "name": "myattestationprovider", "type": "Microsoft.Attestation/attestationProviders", + "id": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup/providers/Microsoft.Attestation/attestationProviders/myattestationprovider", "location": "East US", - "tags": { - "Property1": "Value1", - "Property2": "Value2", - "Property3": "Value3" - }, "properties": { + "attestUri": "https://superservice.attestation.azure.net", "publicNetworkAccess": "Disabled", - "trustModel": "Isolated", "status": "Ready", "tpmAttestationAuthentication": "Disabled", - "attestUri": "https://superservice.attestation.azure.net" + "trustModel": "Isolated" + }, + "tags": { + "Property1": "Value1", + "Property2": "Value2", + "Property3": "Value3" } } } - } + }, + "operationId": "AttestationProviders_Update", + "title": "AttestationProviders_Update" } diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/suppressions.yaml b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/suppressions.yaml index bccc88225abb..dc2c429b2a2e 100644 --- a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/suppressions.yaml +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/suppressions.yaml @@ -8,6 +8,3 @@ - tool: TypeSpecRequirement path: ./stable/2020-10-01/*.json reason: Brownfield service not ready to migrate -- tool: TypeSpecRequirement - path: ./stable/2021-06-01/*.json - reason: Brownfield service not ready to migrate diff --git a/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/tspconfig.yaml b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/tspconfig.yaml new file mode 100644 index 000000000000..60891dc95972 --- /dev/null +++ b/specification/attestation/resource-manager/Microsoft.Attestation/Attestation/tspconfig.yaml @@ -0,0 +1,44 @@ +parameters: + "service-dir": + default: "sdk/attestation" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + emitter-output-dir: "{project-root}" + azure-resource-provider-folder: "resource-manager" + arm-types-dir: "{project-root}/../../../../common-types/resource-management" + output-file: "{version-status}/{version}/attestation.json" + emit-lro-options: "all" + examples-dir: "{project-root}/examples" + "@azure-tools/typespec-python": + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-attestation" + namespace: "azure.mgmt.attestation" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-attestation" + namespace: "com.azure.resourcemanager.attestation" + service-name: "Attestation" # human-readable service name, whitespace allowed + flavor: azure + "@azure-tools/typespec-ts": + emitter-output-dir: "{output-dir}/{service-dir}/arm-attestation" + is-modular-library: true + flavor: "azure" + experimental-extensible-enums: true + package-details: + name: "@azure/arm-attestation" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/attestation" + emitter-output-dir: "{output-dir}/{service-dir}/armattestation" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armattestation" + fix-const-stuttering: false + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" From 5bcc36688023e01eb7d4d57dc4da36a368fb83d2 Mon Sep 17 00:00:00 2001 From: Xiaofei Cao <92354331+XiaofeiCao@users.noreply.github.com> Date: Fri, 12 Dec 2025 15:01:47 +0800 Subject: [PATCH 003/117] [TypeSpec-Migration] ManagementGroups (#38384) * initial convert * single swagger file compare * fix routes * fix managementgroups paths * fix * format * sdk configs * Revert "single swagger file compare" This reverts commit 5e729cbbb81bce82cfe22c4d5f4b4ae28a61c43d. * prettier * service-dir * fix cache-control and x-nullable * config * remove operation id * fix x-nullable * x-ms-parameter-location for subscriptionId * add code * add code * Add client customization for ManagementGroupsAPI * Rename client to ManagementGroupsMgmtClient * Revert "x-ms-parameter-location for subscriptionId" This reverts commit 997c275ac301ec7752c0dcd72aa95724586384ac. * make subscriptionId method level parameter * add clientlocation * test config * test config * update config * change code place * change code place * remove code * add usage for input model * update client name * fix pageable * Update back-compatible.tsp * Update flattenProperty call for EntityInfo * fix format and final state schema --------- Co-authored-by: Jiao Di (MSFT) <80496810+v-jiaodi@users.noreply.github.com> Co-authored-by: Judy Liu Co-authored-by: Yuchao Yan Co-authored-by: Jiao Di (MSFT) Co-authored-by: Pan Shao <97225342+pshao25@users.noreply.github.com> --- .../HierarchySettings.tsp | 83 + .../ManagementGroup.tsp | 189 ++ .../SubscriptionUnderManagementGroup.tsp | 109 + .../back-compatible.tsp | 213 ++ .../ManagementGroups.Management/client.tsp | 14 + .../AddManagementGroupSubscription.json | 27 + .../CheckManagementGroupNameAvailability.json | 21 + .../2023-04-01/DeleteHierarchySettings.json | 11 + .../2023-04-01/DeleteManagementGroup.json | 23 + ...etAllSubscriptionsFromManagementGroup.json | 30 + .../examples/2023-04-01/GetDescendants.json | 39 + .../examples/2023-04-01/GetEntities.json | 66 + .../2023-04-01/GetHierarchySettings.json | 22 + .../2023-04-01/GetManagementGroup.json | 32 + .../GetManagementGroupWithAncestors.json | 43 + .../GetManagementGroupWithExpand.json | 65 + ...etManagementGroupWithExpandAndRecurse.json | 64 + .../GetManagementGroupWithPath.json | 43 + .../GetSubscriptionFromManagementGroup.json | 27 + .../2023-04-01/ListHierarchySettings.json | 27 + .../2023-04-01/ListManagementGroups.json | 35 + .../examples/2023-04-01/ListOperations.json | 25 + .../2023-04-01/PatchHierarchySettings.json | 28 + .../2023-04-01/PatchManagementGroup.json | 36 + .../2023-04-01/PutHierarchySettings.json | 28 + .../2023-04-01/PutManagementGroup.json | 50 + .../RemoveManagementGroupSubscription.json | 14 + .../StartTenantBackfillRequest.json | 16 + .../TenantBackfillStatusRequest.json | 16 + .../ManagementGroups.Management/main.tsp | 50 + .../ManagementGroups.Management/models.tsp | 1079 ++++++++ .../ManagementGroups.Management/routes.tsp | 142 + .../tspconfig.yaml | 54 + .../AddManagementGroupSubscription.json | 10 +- .../CheckManagementGroupNameAvailability.json | 12 +- .../examples/DeleteHierarchySettings.json | 4 +- .../examples/DeleteManagementGroup.json | 18 +- ...etAllSubscriptionsFromManagementGroup.json | 10 +- .../2023-04-01/examples/GetDescendants.json | 16 +- .../2023-04-01/examples/GetEntities.json | 40 +- .../examples/GetHierarchySettings.json | 12 +- .../examples/GetManagementGroup.json | 26 +- .../GetManagementGroupWithAncestors.json | 34 +- .../GetManagementGroupWithExpand.json | 70 +- ...etManagementGroupWithExpandAndRecurse.json | 68 +- .../examples/GetManagementGroupWithPath.json | 34 +- .../GetSubscriptionFromManagementGroup.json | 10 +- .../examples/ListHierarchySettings.json | 16 +- .../examples/ListManagementGroups.json | 28 +- .../2023-04-01/examples/ListOperations.json | 14 +- .../examples/PatchHierarchySettings.json | 18 +- .../examples/PatchManagementGroup.json | 26 +- .../examples/PutHierarchySettings.json | 18 +- .../examples/PutManagementGroup.json | 30 +- .../RemoveManagementGroupSubscription.json | 8 +- .../examples/StartTenantBackfillRequest.json | 8 +- .../examples/TenantBackfillStatusRequest.json | 8 +- .../stable/2023-04-01/management.json | 2454 ++++++++--------- 58 files changed, 4227 insertions(+), 1486 deletions(-) create mode 100644 specification/managementgroups/ManagementGroups.Management/HierarchySettings.tsp create mode 100644 specification/managementgroups/ManagementGroups.Management/ManagementGroup.tsp create mode 100644 specification/managementgroups/ManagementGroups.Management/SubscriptionUnderManagementGroup.tsp create mode 100644 specification/managementgroups/ManagementGroups.Management/back-compatible.tsp create mode 100644 specification/managementgroups/ManagementGroups.Management/client.tsp create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/AddManagementGroupSubscription.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/CheckManagementGroupNameAvailability.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/DeleteHierarchySettings.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/DeleteManagementGroup.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetAllSubscriptionsFromManagementGroup.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetDescendants.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetEntities.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetHierarchySettings.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroup.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithAncestors.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithExpand.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithExpandAndRecurse.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithPath.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetSubscriptionFromManagementGroup.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListHierarchySettings.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListManagementGroups.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListOperations.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PatchHierarchySettings.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PatchManagementGroup.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PutHierarchySettings.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PutManagementGroup.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/RemoveManagementGroupSubscription.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/StartTenantBackfillRequest.json create mode 100644 specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/TenantBackfillStatusRequest.json create mode 100644 specification/managementgroups/ManagementGroups.Management/main.tsp create mode 100644 specification/managementgroups/ManagementGroups.Management/models.tsp create mode 100644 specification/managementgroups/ManagementGroups.Management/routes.tsp create mode 100644 specification/managementgroups/ManagementGroups.Management/tspconfig.yaml diff --git a/specification/managementgroups/ManagementGroups.Management/HierarchySettings.tsp b/specification/managementgroups/ManagementGroups.Management/HierarchySettings.tsp new file mode 100644 index 000000000000..8db4b1d44c2a --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/HierarchySettings.tsp @@ -0,0 +1,83 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; +import "./ManagementGroup.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; + +namespace Microsoft.Management; +/** + * Settings defined at the Management Group scope. + */ +@singleton("default") +@parentResource(ManagementGroup) +model HierarchySettings + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = HierarchySettings, + KeyName = "setting", + SegmentName = "settings", + NamePattern = "" + >; +} + +@armResourceOperations +interface HierarchySettingsOperationGroup { + /** + * Gets the hierarchy settings defined at the Management Group level. Settings can only be set on the root Management Group of the hierarchy. + * + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + get is Extension.Read; + + /** + * Creates or updates the hierarchy settings defined at the Management Group level. + * + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility" + createOrUpdate is Azure.ResourceManager.Legacy.Extension.CreateOrReplaceSync< + Extension.Tenant, + HierarchySettings, + Request = CreateOrUpdateSettingsRequest, + Response = ArmResourceUpdatedResponse + >; + + /** + * Updates the hierarchy settings defined at the Management Group level. + * + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @patch(#{ implicitOptionality: false }) + update is Extension.CustomPatchSync< + Extension.Tenant, + HierarchySettings, + PatchModel = CreateOrUpdateSettingsRequest + >; + + /** + * Deletes the hierarchy settings defined at the Management Group level. + * + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + delete is Extension.DeleteSync< + Extension.Tenant, + HierarchySettings, + Response = ArmDeletedResponse + >; +} + +@@doc(HierarchySettings.name, ""); +@@doc(HierarchySettings.properties, + "The generic properties of hierarchy settings." +); +@@doc(HierarchySettingsOperationGroup.createOrUpdate::parameters.resource, + "Tenant level settings request parameter." +); +@@doc(HierarchySettingsOperationGroup.update::parameters.properties, + "Tenant level settings request parameter." +); diff --git a/specification/managementgroups/ManagementGroups.Management/ManagementGroup.tsp b/specification/managementgroups/ManagementGroups.Management/ManagementGroup.tsp new file mode 100644 index 000000000000..35f1b448bd1c --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/ManagementGroup.tsp @@ -0,0 +1,189 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; + +namespace Microsoft.Management; +/** + * The management group details. + */ +model ManagementGroup + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = ManagementGroup, + KeyName = "groupId", + SegmentName = "managementGroups", + NamePattern = "" + >; +} + +@armResourceOperations +interface ManagementGroups { + /** + * Get the details of the management group. + * + */ + get is Extension.Read< + Extension.Tenant, + ManagementGroup, + Parameters = { + /** + * The $expand=children query string parameter allows clients to request inclusion of children in the response payload. $expand=path includes the path from the root group to the current group. $expand=ancestors includes the ancestor Ids of the current group. + */ + @query("$expand") + $expand?: ManagementGroupExpandType; + + /** + * The $recurse=true query string parameter allows clients to request inclusion of entire hierarchy in the response payload. Note that $expand=children must be passed up if $recurse is set to true. + */ + @query("$recurse") + $recurse?: boolean; + + /** + * A filter which allows the exclusion of subscriptions from results (i.e. '$filter=children.childType ne Subscription') + */ + @query("$filter") + $filter?: string; + + /** + * Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "For backward compatibility" + @header("Cache-Control") + `Cache-Control`?: string = "no-cache"; + } + >; + + /** + * Create or update a management group. + * If a management group is already created and a subsequent create request is issued with different properties, the management group properties will be updated. + * + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/response-schema-problem" "For backward compatibility" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is Azure.ResourceManager.Legacy.Extension.CreateOrReplaceAsync< + Extension.Tenant, + ManagementGroup, + Request = CreateManagementGroupRequest, + Parameters = { + /** + * Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "For backward compatibility" + @header("Cache-Control") + `Cache-Control`?: string = "no-cache"; + }, + Response = ArmResourceUpdatedResponse | (ArmAcceptedLroResponse> & { + @bodyRoot + _: AzureAsyncOperationResults; + }) + >; + + /** + * Update a management group. + * + */ + #suppress "@azure-tools/typespec-azure-core/response-schema-problem" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-patch" "For backward compatibility" + @patch(#{ implicitOptionality: false }) + update is Extension.CustomPatchSync< + Extension.Tenant, + ManagementGroup, + PatchModel = PatchManagementGroupRequest, + Parameters = { + /** + * Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "For backward compatibility" + @header("Cache-Control") + `Cache-Control`?: string = "no-cache"; + } + >; + + /** + * Delete management group. + * If a management group contains child resources, the request will fail. + * + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + @Azure.Core.useFinalStateVia("azure-async-operation") + delete is Extension.DeleteWithoutOkAsync< + Extension.Tenant, + ManagementGroup, + Parameters = { + /** + * Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "For backward compatibility" + @header("Cache-Control") + `Cache-Control`?: string = "no-cache"; + }, + Response = (ArmDeleteAcceptedLroResponse & { + @bodyRoot + _: AzureAsyncOperationResults; + }) | ArmDeletedNoContentResponse + >; + + /** + * List all entities that descend from a management group. + * + */ + @list + @get + @action("descendants") + getDescendants is Extension.ActionSync< + Extension.Tenant, + ManagementGroup, + void, + ArmResponse, + Parameters = { + /** + * Page continuation token is only used if a previous operation returned a partial result. + * If a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls. + * + */ + @query("$skiptoken") + $skiptoken?: string; + + /** + * Number of elements to return when retrieving results. Passing this in will override $skipToken. + */ + @query("$top") + $top?: int32; + } + >; + + /** + * Gets all the hierarchy settings defined at the Management Group level. Settings can only be set on the root Management Group of the hierarchy. + * + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @get + @action("settings") + list is Extension.ActionSync< + Extension.Tenant, + ManagementGroup, + void, + ArmResponse + >; +} + +@@doc(ManagementGroup.name, "Management Group ID."); +@@doc(ManagementGroup.properties, + "The generic properties of a management group." +); +@@doc(ManagementGroups.createOrUpdate::parameters.resource, + "Management group creation parameters." +); +@@doc(ManagementGroups.update::parameters.properties, + "Management group patch parameters." +); diff --git a/specification/managementgroups/ManagementGroups.Management/SubscriptionUnderManagementGroup.tsp b/specification/managementgroups/ManagementGroups.Management/SubscriptionUnderManagementGroup.tsp new file mode 100644 index 000000000000..e91efa97f422 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/SubscriptionUnderManagementGroup.tsp @@ -0,0 +1,109 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; +import "./ManagementGroup.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; + +namespace Microsoft.Management; +/** + * The details of subscription under management group. + */ +@parentResource(ManagementGroup) +model SubscriptionUnderManagementGroup + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = SubscriptionUnderManagementGroup, + KeyName = "subscriptionId", + SegmentName = "subscriptions", + NamePattern = "" + >; +} + +@armResourceOperations +interface SubscriptionUnderManagementGroups { + /** + * Retrieves details about given subscription which is associated with the management group. + * + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + getSubscription is Extension.Read< + Extension.Tenant, + SubscriptionUnderManagementGroup, + Parameters = { + /** + * Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "For backward compatibility" + @header("Cache-Control") + `Cache-Control`?: string = "no-cache"; + } + >; + + /** + * Associates existing subscription with the management group. + * + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility" + create is Azure.ResourceManager.Legacy.Extension.CreateOrReplaceSync< + Extension.Tenant, + SubscriptionUnderManagementGroup, + Request = void, + Parameters = { + /** + * Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "For backward compatibility" + @header("Cache-Control") + `Cache-Control`?: string = "no-cache"; + }, + Response = ArmResourceUpdatedResponse + >; + + /** + * De-associates subscription from the management group. + * + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + delete is Extension.DeleteSync< + Extension.Tenant, + SubscriptionUnderManagementGroup, + Parameters = { + /** + * Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "For backward compatibility" + @header("Cache-Control") + `Cache-Control`?: string = "no-cache"; + } + >; + + /** + * Retrieves details about all subscriptions which are associated with the management group. + * + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + getSubscriptionsUnderManagementGroup is Extension.ListByTarget< + Extension.Tenant, + SubscriptionUnderManagementGroup, + Parameters = { + /** + * Page continuation token is only used if a previous operation returned a partial result. + * If a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls. + * + */ + @query("$skiptoken") + $skiptoken?: string; + }, + Response = ArmResponse + >; +} + +@@doc(SubscriptionUnderManagementGroup.name, "Subscription ID."); +@@doc(SubscriptionUnderManagementGroup.properties, + "The generic properties of subscription under a management group." +); diff --git a/specification/managementgroups/ManagementGroups.Management/back-compatible.tsp b/specification/managementgroups/ManagementGroups.Management/back-compatible.tsp new file mode 100644 index 000000000000..f66818efb676 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/back-compatible.tsp @@ -0,0 +1,213 @@ +import "@azure-tools/typespec-client-generator-core"; +import "@azure-tools/typespec-azure-core"; + +using Azure.ClientGenerator.Core; +using Microsoft.Management; +using Http; +using Rest; + +@@clientName(ManagementGroupListResult.`@nextLink`, "NextLink"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(ManagementGroupInfo.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(CreateManagementGroupRequest.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(AzureAsyncOperationResults.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(DescendantInfo.properties, "!javascript"); + +@@clientName(HierarchySettingsList.`@nextLink`, "NextLink"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(HierarchySettingsInfo.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(CreateOrUpdateSettingsRequest.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(EntityInfo.properties, "!javascript"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(OperationResults.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(EntityHierarchyItem.properties); + +@@clientName(ManagementGroups.createOrUpdate::parameters.resource, + "createManagementGroupRequest" +); +@@clientName(ManagementGroups.update::parameters.properties, + "patchGroupRequest" +); +@@clientLocation(ManagementGroups.list, "HierarchySettings"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(ManagementGroup.properties); + +@@clientLocation(SubscriptionUnderManagementGroups.getSubscription, + "ManagementGroupSubscriptions" +); +@@clientLocation(SubscriptionUnderManagementGroups.create, + "ManagementGroupSubscriptions" +); +@@clientLocation(SubscriptionUnderManagementGroups.delete, + "ManagementGroupSubscriptions" +); +@@clientLocation(SubscriptionUnderManagementGroups.getSubscriptionsUnderManagementGroup, + "ManagementGroupSubscriptions" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(SubscriptionUnderManagementGroup.properties); + +@@clientLocation(HierarchySettingsOperationGroup.get, "HierarchySettings"); +@@clientLocation(HierarchySettingsOperationGroup.createOrUpdate, + "HierarchySettings" +); +@@clientName(HierarchySettingsOperationGroup.createOrUpdate::parameters.resource, + "CreateTenantSettingsRequest" +); +@@clientLocation(HierarchySettingsOperationGroup.update, "HierarchySettings"); +@@clientName(HierarchySettingsOperationGroup.update::parameters.properties, + "CreateTenantSettingsRequest" +); +@@clientLocation(HierarchySettingsOperationGroup.delete, "HierarchySettings"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(HierarchySettings.properties); + +@@clientLocation(ManagementGroupsOperationGroup.list, ManagementGroups); + +@@clientLocation(EntitiesOperationGroup.list, "Entities"); + +@@clientName(checkNameAvailability::parameters.body, + "checkNameAvailabilityRequest" +); + +// Customization to make subscriptionId a method parameter instead of the default client level parameter. +@@override(SubscriptionUnderManagementGroups.getSubscription, + getSubscriptionCustomized +); +@@override(SubscriptionUnderManagementGroups.create, putSubscriptionCustomized); +@@override(SubscriptionUnderManagementGroups.delete, + deleteSubscriptionCustomized +); + +@@clientLocation(GetSubscriptionId.subscriptionId, getSubscriptionCustomized); +@@clientLocation(PutSubscriptionId.subscriptionId, putSubscriptionCustomized); +@@clientLocation(DeleteSubscriptionId.subscriptionId, + deleteSubscriptionCustomized +); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "For customization only." +model SubscriptionIdParameter { + /** The subscription ID. */ + @path + @minLength(1) + @segment("subscriptions") + subscriptionId: string; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "For customization only." +model GetSubscriptionId is SubscriptionIdParameter; +#suppress "@azure-tools/typespec-azure-core/documentation-required" "For customization only." +model PutSubscriptionId is SubscriptionIdParameter; +#suppress "@azure-tools/typespec-azure-core/documentation-required" "For customization only." +model DeleteSubscriptionId is SubscriptionIdParameter; + +/** + * Retrieves details about given subscription which is associated with the management group. + * + */ +@get +op getSubscriptionCustomized is Azure.ResourceManager.Foundations.ArmReadOperation< + Azure.ResourceManager.Extension.ExtensionProviderNamespace & { + /** + * The management group ID. + */ + @path + @segment("managementGroups") + groupId: string; + } & GetSubscriptionId & + Azure.ResourceManager.ApiVersionParameter & { + /** + * Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "For backward compatibility" + @header("Cache-Control") + `Cache-Control`?: string = "no-cache"; + }, + Azure.ResourceManager.ArmResponse, + Azure.ResourceManager.CommonTypes.ErrorResponse +>; + +/** + * Associates existing subscription with the management group. + * + */ +@put +op putSubscriptionCustomized is Azure.ResourceManager.Legacy.CreateOperation< + Azure.ResourceManager.Extension.ExtensionProviderNamespace & { + /** + * The management group ID. + */ + @path + @segment("managementGroups") + groupId: string; + } & PutSubscriptionId & + Azure.ResourceManager.ApiVersionParameter & { + /** + * Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "For backward compatibility" + @header("Cache-Control") + `Cache-Control`?: string = "no-cache"; + }, + void, + Azure.ResourceManager.ArmResourceUpdatedResponse, + Azure.ResourceManager.CommonTypes.ErrorResponse +>; + +/** + * De-associates subscription from the management group. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "For overriding with custom operation." +@delete +op deleteSubscriptionCustomized is SubscriptionUnderManagementGroupOperations.ArmDeleteOperation< + Azure.ResourceManager.Extension.ExtensionProviderNamespace & { + /** + * The management group ID. + */ + @path + @segment("managementGroups") + groupId: string; + } & DeleteSubscriptionId & + Azure.ResourceManager.ApiVersionParameter & { + /** + * Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "For backward compatibility" + @header("Cache-Control") + `Cache-Control`?: string = "no-cache"; + }, + Azure.ResourceManager.ArmDeletedResponse, + Azure.ResourceManager.CommonTypes.ErrorResponse +>; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "For customization only." +interface SubscriptionUnderManagementGroupOperations { + /** + * @dev The base template for Azure Resource Manager DELETE Operations. + * @template Parameters The parameter object for the operation. + * @template Response The response or union of responses for success. + * @template ErrorResponse The error response. + */ + #suppress "@azure-tools/typespec-azure-core/documentation-required" "" + @Azure.ResourceManager.armResourceDelete(SubscriptionUnderManagementGroup) + ArmDeleteOperation< + Parameters extends {}, + Response extends {}, + ErrorResponse extends {} + >(...Parameters): Response | ErrorResponse; +} diff --git a/specification/managementgroups/ManagementGroups.Management/client.tsp b/specification/managementgroups/ManagementGroups.Management/client.tsp new file mode 100644 index 000000000000..3b81c82c6f75 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/client.tsp @@ -0,0 +1,14 @@ +import "@azure-tools/typespec-client-generator-core"; +import "./main.tsp"; + +using Azure.ClientGenerator.Core; +using Microsoft.Management; + +namespace ClientCustomizations; + +@@clientName(Microsoft.Management, "ManagementGroupsMgmtClient", "python"); + +@@clientLocation(checkNameAvailability, "API", "go"); +@@clientLocation(startTenantBackfill, "API", "go"); +@@clientLocation(tenantBackfillStatus, "API", "go"); +@@usage(CreateManagementGroupChildInfo, Usage.input, "javascript"); diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/AddManagementGroupSubscription.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/AddManagementGroupSubscription.json new file mode 100644 index 000000000000..1f4f2d1ee4a0 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/AddManagementGroupSubscription.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "Group", + "subscriptionId": "728bcbe4-8d56-4510-86c2-4921b8beefbc" + }, + "responses": { + "200": { + "body": { + "name": "728bcbe4-8d56-4510-86c2-4921b8beefbc", + "type": "Microsoft.Management/managementGroups/subscriptions", + "id": " /providers/Microsoft.Management/managementGroups/Group/subscriptions/728bcbe4-8d56-4510-86c2-4921b8beefbc", + "properties": { + "displayName": "Group", + "parent": { + "id": "/providers/Microsoft.Management/managementGroups/Group" + }, + "state": "Active", + "tenant": "e751ac82-623b-4913-8d74-22637c832373" + } + } + } + }, + "operationId": "ManagementGroupSubscriptions_Create", + "title": "AddSubscriptionToManagementGroup" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/CheckManagementGroupNameAvailability.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/CheckManagementGroupNameAvailability.json new file mode 100644 index 000000000000..d65833862c58 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/CheckManagementGroupNameAvailability.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "checkNameAvailabilityRequest": { + "name": "nameTocheck", + "type": "Microsoft.Management/managementGroups" + } + }, + "responses": { + "200": { + "body": { + "message": "Error message", + "nameAvailable": false, + "reason": "AlreadyExists" + } + } + }, + "operationId": "CheckNameAvailability", + "title": "CheckManagementGroupNameAvailability" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/DeleteHierarchySettings.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/DeleteHierarchySettings.json new file mode 100644 index 000000000000..7c42ed3c4994 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/DeleteHierarchySettings.json @@ -0,0 +1,11 @@ +{ + "parameters": { + "api-version": "2023-04-01", + "groupId": "root" + }, + "responses": { + "200": {} + }, + "operationId": "HierarchySettings_Delete", + "title": "GetGroupSettings" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/DeleteManagementGroup.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/DeleteManagementGroup.json new file mode 100644 index 000000000000..9874629ed1c9 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/DeleteManagementGroup.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "GroupToDelete" + }, + "responses": { + "202": { + "body": { + "name": "GroupToDelete", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/GroupToDelete", + "status": "NotStarted" + }, + "headers": { + "Location": "https://management.azure.com/providers/Microsoft.Management/managementGroups/GroupToDelete?api-version=2023-04-01" + } + }, + "204": {} + }, + "operationId": "ManagementGroups_Delete", + "title": "DeleteManagementGroup" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetAllSubscriptionsFromManagementGroup.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetAllSubscriptionsFromManagementGroup.json new file mode 100644 index 000000000000..33960ed68396 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetAllSubscriptionsFromManagementGroup.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2023-04-01", + "groupId": "Group" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "728bcbe4-8d56-4510-86c2-4921b8beefbc", + "type": "Microsoft.Management/managementGroups/subscriptions", + "id": "/providers/Microsoft.Management/managementGroups/Group/subscriptions/728bcbe4-8d56-4510-86c2-4921b8beefbc", + "properties": { + "displayName": "S5", + "parent": { + "id": "/providers/Microsoft.Management/managementGroups/Group" + }, + "state": "Active", + "tenant": "e751ac82-623b-4913-8d74-22637c832373" + } + } + ] + } + } + }, + "operationId": "ManagementGroupSubscriptions_GetSubscriptionsUnderManagementGroup", + "title": "GetAllSubscriptionsFromManagementGroup" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetDescendants.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetDescendants.json new file mode 100644 index 000000000000..064954aee38f --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetDescendants.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2023-04-01", + "groupId": "20000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", + "properties": { + "displayName": "Group 1", + "parent": { + "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000" + } + } + }, + { + "name": "20000000-0004-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups/subscriptions", + "id": "/subscriptions/20000000-0004-0000-0000-000000000000", + "properties": { + "displayName": "Subscription 4", + "parent": { + "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000" + } + } + } + ] + } + } + }, + "operationId": "ManagementGroups_GetDescendants", + "title": "GetDescendants" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetEntities.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetEntities.json new file mode 100644 index 000000000000..7f8add94bd43 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetEntities.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "api-version": "2023-04-01" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", + "properties": { + "displayName": "Group 1 Tenant 2", + "inheritedPermissions": "view", + "numberOfChildGroups": 1, + "numberOfChildren": 2, + "numberOfDescendants": 3, + "parent": { + "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000" + }, + "parentDisplayNameChain": [ + "Tenant Root Group", + "Group 1 Tenant 2 Parent" + ], + "parentNameChain": [ + "TenantRootGroup", + "Group1Tenant2Parent" + ], + "permissions": "view", + "tenantId": "20000000-0000-0000-0000-000000000000" + } + }, + { + "name": "20000000-0004-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0004-0000-0000-000000000000", + "properties": { + "displayName": "Group 4 Tenant 2", + "inheritedPermissions": "delete", + "numberOfChildGroups": 0, + "numberOfChildren": 0, + "numberOfDescendants": 0, + "parent": { + "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000" + }, + "parentDisplayNameChain": [ + "Tenant Root Group", + "Group 4 Tenant 2 Parent" + ], + "parentNameChain": [ + "TenantRootGroup", + "Group4 Tenant2Parent" + ], + "permissions": "delete", + "tenantId": "20000000-0000-0000-0000-000000000000" + } + } + ] + } + } + }, + "operationId": "Entities_List", + "title": "GetEntities" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetHierarchySettings.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetHierarchySettings.json new file mode 100644 index 000000000000..90f7479e9b29 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetHierarchySettings.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2023-04-01", + "groupId": "root" + }, + "responses": { + "200": { + "body": { + "name": "root", + "type": "Microsoft.Management/managementGroups/settings", + "id": "/providers/Microsoft.Management/managementGroups/root/settings/default", + "properties": { + "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/DefaultGroup", + "requireAuthorizationForGroupCreation": true, + "tenantId": "20000000-0000-0000-0000-000000000000" + } + } + } + }, + "operationId": "HierarchySettings_Get", + "title": "GetGroupSettings" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroup.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroup.json new file mode 100644 index 000000000000..41e8f254fc25 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroup.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "20000000-0001-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", + "properties": { + "displayName": "Group 1 Tenant 2", + "tenantId": "20000000-0000-0000-0000-000000000000", + "details": { + "parent": { + "name": "RootGroup", + "displayName": "RootGroup", + "id": "/providers/Microsoft.Management/managementGroups/RootGroup" + }, + "updatedBy": "16b8ef21-5c9f-420c-bcc9-e4f8c9f30b4b", + "updatedTime": "2018-01-01T00:00:00.00Z", + "version": 1 + } + } + } + } + }, + "operationId": "ManagementGroups_Get", + "title": "GetManagementGroup" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithAncestors.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithAncestors.json new file mode 100644 index 000000000000..2906ff2c8877 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithAncestors.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "$expand": "ancestors", + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "20000000-0001-0000-0000-00000000000" + }, + "responses": { + "200": { + "body": { + "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", + "properties": { + "displayName": "Group 1 Tenant 2", + "tenantId": "20000000-0000-0000-0000-000000000000", + "details": { + "managementGroupAncestorsChain": [ + { + "name": "20000000-0000-0000-0000-000000000001", + "displayName": "Parent display name" + }, + { + "name": "20000000-0000-0000-0000-000000000000", + "displayName": "Grandparent display name" + } + ], + "parent": { + "name": "20000000-0000-0000-0000-000000000001", + "displayName": "Parent display name", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000001" + }, + "updatedBy": "Test", + "updatedTime": "2018-01-01T00:00:00.00Z", + "version": 1 + } + } + } + } + }, + "operationId": "ManagementGroups_Get", + "title": "GetManagementGroupWithAncestors" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithExpand.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithExpand.json new file mode 100644 index 000000000000..83c613adce56 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithExpand.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "$expand": "children", + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "20000000-0001-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", + "properties": { + "children": [ + { + "name": "20000000-0002-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "displayName": "Group 2 Tenant 2", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0002-0000-0000-000000000000" + }, + { + "name": "20000000-0003-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "displayName": "Group 3 Tenant 2", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0003-0000-0000-000000000000" + }, + { + "name": "10000000-F004-0000-0000-000000000000", + "type": "/subscriptions", + "displayName": "Subscription 4 Tenant 1", + "id": "/subscriptions/10000000-F004-0000-0000-000000000000" + }, + { + "name": "20000000-F005-0000-0000-000000000000", + "type": "/subscriptions", + "displayName": "Subscription 5 Tenant 2", + "id": "/subscriptions/20000000-F005-0000-0000-000000000000" + }, + { + "name": "30000000-F003-0000-0000-000000000000", + "type": "/subscriptions", + "displayName": "Subscription 3 Tenant 3", + "id": "/subscriptions/30000000-F003-0000-0000-000000000000" + } + ], + "displayName": "Group 1 Tenant 2", + "tenantId": "20000000-0000-0000-0000-000000000000", + "details": { + "parent": { + "name": "20000000-0000-0000-0000-000000000000", + "displayName": "20000000-0000-0000-0000-000000000000", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000" + }, + "updatedBy": "Test", + "updatedTime": "2018-01-01T00:00:00.00Z", + "version": 1 + } + } + } + } + }, + "operationId": "ManagementGroups_Get", + "title": "GetManagementGroupWithExpand" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithExpandAndRecurse.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithExpandAndRecurse.json new file mode 100644 index 000000000000..fd875e466c67 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithExpandAndRecurse.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "$expand": "children", + "$recurse": true, + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "20000000-0001-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "RootGroup", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/RootGroup", + "properties": { + "children": [ + { + "name": "Child", + "type": "Microsoft.Management/managementGroups", + "children": [ + { + "name": "Leaf", + "type": "Microsoft.Management/managementGroups", + "children": [ + { + "name": "728bcbe4-8d56-4510-86c2-4921b8beefbc", + "type": "/subscriptions", + "displayName": "Pay-As-You-Go", + "id": "/subscriptions/728bcbe4-8d56-4510-86c2-4921b8beefbc" + } + ], + "displayName": "Leaf", + "id": "/providers/Microsoft.Management/managementGroups/Leaf" + } + ], + "displayName": "Child", + "id": "/providers/Microsoft.Management/managementGroups/Child" + }, + { + "name": "AnotherChild", + "type": "Microsoft.Management/managementGroups", + "displayName": "Leaf", + "id": "/providers/Microsoft.Management/managementGroups/AnotherChild" + } + ], + "displayName": "RootGroup", + "tenantId": "20000000-0000-0000-0000-000000000000", + "details": { + "parent": { + "name": "20000000-0000-0000-0000-000000000000", + "displayName": "20000000-0000-0000-0000-000000000000", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000" + }, + "updatedBy": "bd490e30-04cb-433e-b8c8-6066959a8bab", + "updatedTime": "2018-01-25T02:26:49.0022093Z", + "version": 2 + } + } + } + } + }, + "operationId": "ManagementGroups_Get", + "title": "GetManagementGroupsWithExpandAndRecurse" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithPath.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithPath.json new file mode 100644 index 000000000000..3261cf638522 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithPath.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "$expand": "path", + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "20000000-0001-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", + "properties": { + "displayName": "Group 1 Tenant 2", + "tenantId": "20000000-0000-0000-0000-000000000000", + "details": { + "path": [ + { + "name": "20000000-0000-0000-0000-000000000000", + "displayName": "Grandparent display name" + }, + { + "name": "20000000-0000-0000-0000-000000000001", + "displayName": "Parent display name" + } + ], + "parent": { + "name": "20000000-0000-0000-0000-000000000001", + "displayName": "Parent display name", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000001" + }, + "updatedBy": "Test", + "updatedTime": "2018-01-01T00:00:00.00Z", + "version": 1 + } + } + } + } + }, + "operationId": "ManagementGroups_Get", + "title": "GetManagementGroupWithPath" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetSubscriptionFromManagementGroup.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetSubscriptionFromManagementGroup.json new file mode 100644 index 000000000000..0b73d128fa52 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetSubscriptionFromManagementGroup.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "Group", + "subscriptionId": "728bcbe4-8d56-4510-86c2-4921b8beefbc" + }, + "responses": { + "200": { + "body": { + "name": "728bcbe4-8d56-4510-86c2-4921b8beefbc", + "type": "Microsoft.Management/managementGroups/subscriptions", + "id": " /providers/Microsoft.Management/managementGroups/Group/subscriptions/728bcbe4-8d56-4510-86c2-4921b8beefbc", + "properties": { + "displayName": "Group", + "parent": { + "id": "/providers/Microsoft.Management/managementGroups/Group" + }, + "state": "Active", + "tenant": "e751ac82-623b-4913-8d74-22637c832373" + } + } + } + }, + "operationId": "ManagementGroupSubscriptions_GetSubscription", + "title": "GetSubscriptionFromManagementGroup" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListHierarchySettings.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListHierarchySettings.json new file mode 100644 index 000000000000..b10607aa599a --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListHierarchySettings.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2023-04-01", + "groupId": "root" + }, + "responses": { + "200": { + "body": { + "@nextLink": null, + "value": [ + { + "name": "root", + "type": "Microsoft.Management/managementGroups/settings", + "id": "/providers/Microsoft.Management/managementGroups/root/settings/default", + "properties": { + "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/DefaultGroup", + "requireAuthorizationForGroupCreation": true, + "tenantId": "20000000-0000-0000-0000-000000000000" + } + } + ] + } + } + }, + "operationId": "HierarchySettings_List", + "title": "ListGroupSettings" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListManagementGroups.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListManagementGroups.json new file mode 100644 index 000000000000..8d5799580661 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListManagementGroups.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "Cache-Control": "no-cache", + "api-version": "2023-04-01" + }, + "responses": { + "200": { + "body": { + "@nextLink": null, + "value": [ + { + "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", + "properties": { + "displayName": "Group 1 Tenant 2", + "tenantId": "20000000-0000-0000-0000-000000000000" + } + }, + { + "name": "20000000-0004-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0004-0000-0000-000000000000", + "properties": { + "displayName": "Group 4 Tenant 2", + "tenantId": "20000000-0000-0000-0000-000000000000" + } + } + ] + } + } + }, + "operationId": "ManagementGroups_List", + "title": "ListManagementGroups" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListOperations.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListOperations.json new file mode 100644 index 000000000000..2903a79c9cba --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListOperations.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2023-04-01" + }, + "responses": { + "200": { + "body": { + "nextLink": "aaaaaaaaaaaaaaaaaaa", + "value": [ + { + "name": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "display": { + "description": "aaaaaaaaaaaaaaaaaaaaaa", + "operation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "provider": "aaaaaaaaaaaaaaaaaaaaa", + "resource": "aaaaaaaaaaaaa" + } + } + ] + } + } + }, + "operationId": "Operations_List", + "title": "List Operations" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PatchHierarchySettings.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PatchHierarchySettings.json new file mode 100644 index 000000000000..526fc6c08e3d --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PatchHierarchySettings.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "CreateTenantSettingsRequest": { + "properties": { + "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/DefaultGroup", + "requireAuthorizationForGroupCreation": true + } + }, + "api-version": "2023-04-01", + "groupId": "root" + }, + "responses": { + "200": { + "body": { + "name": "root", + "type": "Microsoft.Management/managementGroups/settings", + "id": "/providers/Microsoft.Management/managementGroups/root/settings/default", + "properties": { + "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/DefaultGroup", + "requireAuthorizationForGroupCreation": true, + "tenantId": "20000000-0000-0000-0000-000000000000" + } + } + } + }, + "operationId": "HierarchySettings_Update", + "title": "GetGroupSettings" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PatchManagementGroup.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PatchManagementGroup.json new file mode 100644 index 000000000000..b64a17346dca --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PatchManagementGroup.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "ChildGroup", + "patchGroupRequest": { + "displayName": "AlternateDisplayName", + "parentGroupId": "/providers/Microsoft.Management/managementGroups/AlternateRootGroup" + } + }, + "responses": { + "200": { + "body": { + "name": "ChildGroup", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/ChildGroup", + "properties": { + "displayName": "AlternateDisplayName", + "tenantId": "20000000-0000-0000-0000-000000000000", + "details": { + "parent": { + "name": "AlternateRootGroup", + "displayName": "AlternateRootGroup", + "id": "/providers/Microsoft.Management/managementGroups/AlternateRootGroup" + }, + "updatedBy": "bd490e30-04cb-433e-b8c8-6066959a8bab", + "updatedTime": "2018-01-25T02:46:59.0545645Z", + "version": 2 + } + } + } + } + }, + "operationId": "ManagementGroups_Update", + "title": "PatchManagementGroup" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PutHierarchySettings.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PutHierarchySettings.json new file mode 100644 index 000000000000..c673e37e6405 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PutHierarchySettings.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "CreateTenantSettingsRequest": { + "properties": { + "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/DefaultGroup", + "requireAuthorizationForGroupCreation": true + } + }, + "api-version": "2023-04-01", + "groupId": "root" + }, + "responses": { + "200": { + "body": { + "name": "root", + "type": "Microsoft.Management/managementGroups/settings", + "id": "/providers/Microsoft.Management/managementGroups/root/settings/default", + "properties": { + "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/DefaultGroup", + "requireAuthorizationForGroupCreation": true, + "tenantId": "20000000-0000-0000-0000-000000000000" + } + } + } + }, + "operationId": "HierarchySettings_CreateOrUpdate", + "title": "GetGroupSettings" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PutManagementGroup.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PutManagementGroup.json new file mode 100644 index 000000000000..25ad25dcf77c --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PutManagementGroup.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "createManagementGroupRequest": { + "properties": { + "displayName": "ChildGroup", + "details": { + "parent": { + "id": "/providers/Microsoft.Management/managementGroups/RootGroup" + } + } + } + }, + "groupId": "ChildGroup" + }, + "responses": { + "200": { + "body": { + "name": "ChildGroup", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/ChildGroup", + "properties": { + "displayName": "ChildGroup", + "tenantId": "20000000-0000-0000-0000-000000000000", + "details": { + "parent": { + "name": "RootGroup", + "displayName": "RootGroup", + "id": "/providers/Microsoft.Management/managementGroups/RootGroup" + }, + "updatedBy": "16b8ef21-5c9f-420c-bcc9-e4f8c9f30b4b", + "updatedTime": "2018-01-01T00:00:00.00Z", + "version": 1 + } + } + } + }, + "202": { + "body": { + "name": "ChildGroup", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/ChildGroup", + "status": "NotStarted" + } + } + }, + "operationId": "ManagementGroups_CreateOrUpdate", + "title": "PutManagementGroup" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/RemoveManagementGroupSubscription.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/RemoveManagementGroupSubscription.json new file mode 100644 index 000000000000..d2428f23aebf --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/RemoveManagementGroupSubscription.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "Group", + "subscriptionId": "728bcbe4-8d56-4510-86c2-4921b8beefbc" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "ManagementGroupSubscriptions_Delete", + "title": "DeleteSubscriptionFromManagementGroup" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/StartTenantBackfillRequest.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/StartTenantBackfillRequest.json new file mode 100644 index 000000000000..9792180a94e6 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/StartTenantBackfillRequest.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "api-version": "2023-04-01", + "startTenantBackfillRequest": {} + }, + "responses": { + "200": { + "body": { + "status": "Started", + "tenantId": "20000000-0000-0000-0000-000000000000" + } + } + }, + "operationId": "StartTenantBackfill", + "title": "StartTenantBackfill" +} diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/TenantBackfillStatusRequest.json b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/TenantBackfillStatusRequest.json new file mode 100644 index 000000000000..8fa389627587 --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/TenantBackfillStatusRequest.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "api-version": "2023-04-01", + "tenantBackfillStatusRequest": {} + }, + "responses": { + "200": { + "body": { + "status": "Started", + "tenantId": "20000000-0000-0000-0000-000000000000" + } + } + }, + "operationId": "TenantBackfillStatus", + "title": "TenantBackfillStatus" +} diff --git a/specification/managementgroups/ManagementGroups.Management/main.tsp b/specification/managementgroups/ManagementGroups.Management/main.tsp new file mode 100644 index 000000000000..067bed604f3c --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/main.tsp @@ -0,0 +1,50 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.12 + * Date: 2025-10-23T06:00:31.853Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./ManagementGroup.tsp"; +import "./SubscriptionUnderManagementGroup.tsp"; +import "./HierarchySettings.tsp"; +import "./routes.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * The Azure Management Groups API enables consolidation of multiple + * subscriptions/resources into an organizational hierarchy and centrally + * manage access control, policies, alerting and reporting for those resources. + * + */ +@armProviderNamespace +@service(#{ title: "Management Groups API" }) +@versioned(Versions) +// FIXME: Common type version not set. Set to v3. +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) +namespace Microsoft.Management; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2023-04-01 API version. + */ + v2023_04_01: "2023-04-01", +} + +interface Operations extends Azure.ResourceManager.Operations {} diff --git a/specification/managementgroups/ManagementGroups.Management/models.tsp b/specification/managementgroups/ManagementGroups.Management/models.tsp new file mode 100644 index 000000000000..55f6bf65e66c --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/models.tsp @@ -0,0 +1,1079 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.Core; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; + +namespace Microsoft.Management; + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" +union ManagementGroupExpandType { + string, + + /** + * children + */ + children: "children", + + /** + * path + */ + path: "path", + + /** + * ancestors + */ + ancestors: "ancestors", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" +union EntitySearchType { + string, + + /** + * AllowedParents + */ + AllowedParents: "AllowedParents", + + /** + * AllowedChildren + */ + AllowedChildren: "AllowedChildren", + + /** + * ParentAndFirstLevelChildren + */ + ParentAndFirstLevelChildren: "ParentAndFirstLevelChildren", + + /** + * ParentOnly + */ + ParentOnly: "ParentOnly", + + /** + * ChildrenOnly + */ + ChildrenOnly: "ChildrenOnly", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" +union EntityViewParameterType { + string, + + /** + * FullHierarchy + */ + FullHierarchy: "FullHierarchy", + + /** + * GroupsOnly + */ + GroupsOnly: "GroupsOnly", + + /** + * SubscriptionsOnly + */ + SubscriptionsOnly: "SubscriptionsOnly", + + /** + * Audit + */ + Audit: "Audit", +} + +/** + * The type of child resource. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "For backward compatibility" +enum ManagementGroupChildType { + /** + * Microsoft.Management/managementGroups + */ + `Microsoft.Management/managementGroups`, + + /** + * /subscriptions + */ + `/subscriptions`, +} + +/** + * Required if nameAvailable == false. Invalid indicates the name provided does not match the resource provider's naming requirements (incorrect length, unsupported characters, etc.) AlreadyExists indicates that the name is already in use and is therefore unavailable. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "For backward compatibility" +enum Reason { + /** + * Invalid + */ + Invalid, + + /** + * AlreadyExists + */ + AlreadyExists, +} + +/** + * The users specific permissions to this item. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "For backward compatibility" +enum Permissions { + /** + * noaccess + */ + noaccess, + + /** + * view + */ + view, + + /** + * edit + */ + edit, + + /** + * delete + */ + delete, +} + +/** + * The status of the Tenant Backfill + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "For backward compatibility" +enum Status { + /** + * NotStarted + */ + NotStarted, + + /** + * NotStartedButGroupsExist + */ + NotStartedButGroupsExist, + + /** + * Started + */ + Started, + + /** + * Failed + */ + Failed, + + /** + * Cancelled + */ + Cancelled, + + /** + * Completed + */ + Completed, +} + +/** + * Describes the result of the request to list management groups. + */ +model ManagementGroupListResult { + /** + * The list of management groups. + */ + @pageItems + value?: ManagementGroupInfo[]; + + /** + * The URL to use for getting the next set of results. + */ + @visibility(Lifecycle.Read) + @nextLink + `@nextLink`?: string; +} + +/** + * The management group resource. + */ +model ManagementGroupInfo { + /** + * The fully qualified ID for the management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + id?: string; + + /** + * The type of the resource. For example, Microsoft.Management/managementGroups + */ + @visibility(Lifecycle.Read) + type?: string; + + /** + * The name of the management group. For example, 00000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The generic properties of a management group. + */ + properties?: ManagementGroupInfoProperties; +} + +/** + * The generic properties of a management group. + */ +model ManagementGroupInfoProperties { + /** + * The AAD Tenant ID associated with the management group. For example, 00000000-0000-0000-0000-000000000000 + */ + tenantId?: string; + + /** + * The friendly name of the management group. + */ + displayName?: string; +} + +/** + * The error object. + */ +@error +model ErrorResponse { + /** + * The details of the error. + */ + error?: ErrorDetails; +} + +/** + * The details of the error. + */ +model ErrorDetails { + /** + * One of a server-defined set of error codes. + */ + code?: string; + + /** + * A human-readable representation of the error. + */ + message?: string; + + /** + * A human-readable representation of the error's details. + */ + details?: string; +} + +/** + * The generic properties of a management group. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "For backward compatibility" +model ManagementGroupProperties { + /** + * The AAD Tenant ID associated with the management group. For example, 00000000-0000-0000-0000-000000000000 + */ + tenantId?: string; + + /** + * The friendly name of the management group. + */ + displayName?: string; + + /** + * The details of a management group. + */ + details?: ManagementGroupDetails; + + /** + * The list of children. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + children?: ManagementGroupChildInfo[] | null; +} + +/** + * The details of a management group. + */ +model ManagementGroupDetails { + /** + * The version number of the object. + */ + version?: int32; + + /** + * The date and time when this object was last updated. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + updatedTime?: utcDateTime; + + /** + * The identity of the principal or process that updated the object. + */ + updatedBy?: string; + + /** + * (Optional) The ID of the parent management group. + */ + parent?: ParentGroupInfo; + + /** + * The path from the root to the current group. + */ + @identifiers(#["name"]) + path?: ManagementGroupPathElement[]; + + /** + * The ancestors of the management group. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + managementGroupAncestors?: string[] | null; + + /** + * The ancestors of the management group displayed in reversed order, from immediate parent to the root. + */ + @identifiers(#["name"]) + managementGroupAncestorsChain?: ManagementGroupPathElement[]; +} + +/** + * (Optional) The ID of the parent management group. + */ +model ParentGroupInfo { + /** + * The fully qualified ID for the parent management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 + */ + id?: string; + + /** + * The name of the parent management group + */ + name?: string; + + /** + * The friendly name of the parent management group. + */ + displayName?: string; +} + +/** + * A path element of a management group ancestors. + */ +model ManagementGroupPathElement { + /** + * The name of the group. + */ + name?: string; + + /** + * The friendly name of the group. + */ + displayName?: string; +} + +/** + * The child information of a management group. + */ +model ManagementGroupChildInfo { + /** + * The fully qualified resource type which includes provider namespace (e.g. Microsoft.Management/managementGroups) + */ + type?: ManagementGroupChildType; + + /** + * The fully qualified ID for the child resource (management group or subscription). For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 + */ + id?: string; + + /** + * The name of the child entity. + */ + name?: string; + + /** + * The friendly name of the child resource. + */ + displayName?: string; + + /** + * The list of children. + */ + children?: ManagementGroupChildInfo[]; +} + +/** + * Management group creation parameters. + */ +model CreateManagementGroupRequest { + /** + * The fully qualified ID for the management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + id?: string; + + /** + * The type of the resource. For example, Microsoft.Management/managementGroups + */ + @visibility(Lifecycle.Read) + type?: string; + + /** + * The name of the management group. For example, 00000000-0000-0000-0000-000000000000 + */ + name?: string; + + /** + * The generic properties of a management group used during creation. + */ + properties?: CreateManagementGroupProperties; +} + +/** + * The generic properties of a management group used during creation. + */ +model CreateManagementGroupProperties { + /** + * The AAD Tenant ID associated with the management group. For example, 00000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + tenantId?: string; + + /** + * The friendly name of the management group. If no value is passed then this field will be set to the groupId. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + displayName?: string | null; + + /** + * The details of a management group used during creation. + */ + details?: CreateManagementGroupDetails; + + /** + * The list of children. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @visibility(Lifecycle.Read) + children?: CreateManagementGroupChildInfo[] | null; +} + +/** + * The details of a management group used during creation. + */ +model CreateManagementGroupDetails { + /** + * The version number of the object. + */ + @visibility(Lifecycle.Read) + version?: int32; + + /** + * The date and time when this object was last updated. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + updatedTime?: utcDateTime; + + /** + * The identity of the principal or process that updated the object. + */ + @visibility(Lifecycle.Read) + updatedBy?: string; + + /** + * (Optional) The ID of the parent management group used during creation. + */ + parent?: CreateParentGroupInfo; +} + +/** + * (Optional) The ID of the parent management group used during creation. + */ +model CreateParentGroupInfo { + /** + * The fully qualified ID for the parent management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 + */ + id?: string; + + /** + * The name of the parent management group + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The friendly name of the parent management group. + */ + @visibility(Lifecycle.Read) + displayName?: string; +} + +/** + * The child information of a management group used during creation. + */ +model CreateManagementGroupChildInfo { + /** + * The fully qualified resource type which includes provider namespace (e.g. Microsoft.Management/managementGroups) + */ + @visibility(Lifecycle.Read) + type?: ManagementGroupChildType; + + /** + * The fully qualified ID for the child resource (management group or subscription). For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + id?: string; + + /** + * The name of the child entity. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The friendly name of the child resource. + */ + @visibility(Lifecycle.Read) + displayName?: string; + + /** + * The list of children. + */ + @visibility(Lifecycle.Read) + children?: CreateManagementGroupChildInfo[]; +} + +/** + * The results of Azure-AsyncOperation. + */ +model AzureAsyncOperationResults { + /** + * The fully qualified ID for the management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + id?: string; + + /** + * The type of the resource. For example, Microsoft.Management/managementGroups + */ + @visibility(Lifecycle.Read) + type?: string; + + /** + * The name of the management group. For example, 00000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The current status of the asynchronous operation performed . For example, Running, Succeeded, Failed + */ + @visibility(Lifecycle.Read) + status?: string; + + /** + * The generic properties of a management group. + */ + properties?: ManagementGroupInfoProperties; +} + +/** + * Management group patch parameters. + */ +model PatchManagementGroupRequest { + /** + * The friendly name of the management group. + */ + displayName?: string; + + /** + * (Optional) The fully qualified ID for the parent management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 + */ + parentGroupId?: string; +} + +/** + * The descendant. + */ +model DescendantInfo { + /** + * The fully qualified ID for the descendant. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 or /subscriptions/0000000-0000-0000-0000-000000000000 + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @visibility(Lifecycle.Read) + id?: string | null; + + /** + * The type of the resource. For example, Microsoft.Management/managementGroups or /subscriptions + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @visibility(Lifecycle.Read) + type?: string | null; + + /** + * The name of the descendant. For example, 00000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The generic properties of an descendant. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + properties?: DescendantInfoProperties | null; +} + +/** + * The generic properties of an descendant. + */ +model DescendantInfoProperties { + /** + * The friendly name of the management group. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + displayName?: string | null; + + /** + * The ID of the parent management group. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + parent?: DescendantParentGroupInfo | null; +} + +/** + * The ID of the parent management group. + */ +model DescendantParentGroupInfo { + /** + * The fully qualified ID for the parent management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 + */ + id?: string; +} + +/** + * The generic properties of subscription under a management group. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "For backward compatibility" +model SubscriptionUnderManagementGroupProperties { + /** + * The AAD Tenant ID associated with the subscription. For example, 00000000-0000-0000-0000-000000000000 + */ + tenant?: string; + + /** + * The friendly name of the subscription. + */ + displayName?: string; + + /** + * The ID of the parent management group. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + parent?: DescendantParentGroupInfo | null; + + /** + * The state of the subscription. + */ + state?: string; +} + +/** + * The details of all subscriptions under management group. + */ +model ListSubscriptionUnderManagementGroup + is Azure.Core.Page; + +/** + * Lists all hierarchy settings. + */ +model HierarchySettingsList { + /** + * The list of hierarchy settings. + */ + value?: HierarchySettingsInfo[]; + + /** + * The URL to use for getting the next set of results. + */ + @visibility(Lifecycle.Read) + `@nextLink`?: string; +} + +/** + * The hierarchy settings resource. + */ +model HierarchySettingsInfo { + /** + * The fully qualified ID for the settings object. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000/settings/default. + */ + @visibility(Lifecycle.Read) + id?: string; + + /** + * The type of the resource. For example, Microsoft.Management/managementGroups/settings. + */ + @visibility(Lifecycle.Read) + type?: string; + + /** + * The name of the object. In this case, default. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The generic properties of hierarchy settings. + */ + properties?: HierarchySettingsProperties; +} + +/** + * The generic properties of hierarchy settings. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "For backward compatibility" +model HierarchySettingsProperties { + /** + * The AAD Tenant ID associated with the hierarchy settings. For example, 00000000-0000-0000-0000-000000000000 + */ + tenantId?: string; + + /** + * Indicates whether RBAC access is required upon group creation under the root Management Group. If set to true, user will require Microsoft.Management/managementGroups/write action on the root Management Group scope in order to create new Groups directly under the root. This will prevent new users from creating new Management Groups, unless they are given access. + */ + requireAuthorizationForGroupCreation?: boolean; + + /** + * Settings that sets the default Management Group under which new subscriptions get added in this tenant. For example, /providers/Microsoft.Management/managementGroups/defaultGroup + */ + defaultManagementGroup?: string; +} + +/** + * Parameters for creating or updating Management Group settings + */ +model CreateOrUpdateSettingsRequest { + /** + * The properties of the request to create or update Management Group settings + */ + properties?: CreateOrUpdateSettingsProperties; +} + +/** + * The properties of the request to create or update Management Group settings + */ +model CreateOrUpdateSettingsProperties { + /** + * Indicates whether RBAC access is required upon group creation under the root Management Group. If set to true, user will require Microsoft.Management/managementGroups/write action on the root Management Group scope in order to create new Groups directly under the root. This will prevent new users from creating new Management Groups, unless they are given access. + */ + requireAuthorizationForGroupCreation?: boolean; + + /** + * Settings that sets the default Management Group under which new subscriptions get added in this tenant. For example, /providers/Microsoft.Management/managementGroups/defaultGroup + */ + defaultManagementGroup?: string; +} + +/** + * Operation supported by the Microsoft.Management resource provider. + */ +model Operation { + /** + * Operation name: {provider}/{resource}/{operation}. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The object that represents the operation. + */ + display?: OperationDisplayProperties; +} + +/** + * The object that represents the operation. + */ +model OperationDisplayProperties { + /** + * The name of the provider. + */ + @visibility(Lifecycle.Read) + provider?: string; + + /** + * The resource on which the operation is performed. + */ + @visibility(Lifecycle.Read) + resource?: string; + + /** + * The operation that can be performed. + */ + @visibility(Lifecycle.Read) + operation?: string; + + /** + * Operation description. + */ + @visibility(Lifecycle.Read) + description?: string; +} + +/** + * Management group name availability check parameters. + */ +model CheckNameAvailabilityRequest { + /** + * the name to check for availability + */ + name?: string; + + /** + * fully qualified resource type which includes provider namespace + */ + type?: "Microsoft.Management/managementGroups"; +} + +/** + * Describes the result of the request to check management group name availability. + */ +model CheckNameAvailabilityResult { + /** + * Required. True indicates name is valid and available. False indicates the name is invalid, unavailable, or both. + */ + @visibility(Lifecycle.Read) + nameAvailable?: boolean; + + /** + * Required if nameAvailable == false. Invalid indicates the name provided does not match the resource provider's naming requirements (incorrect length, unsupported characters, etc.) AlreadyExists indicates that the name is already in use and is therefore unavailable. + */ + @visibility(Lifecycle.Read) + reason?: Reason; + + /** + * Required if nameAvailable == false. Localized. If reason == invalid, provide the user with the reason why the given name is invalid, and provide the resource naming requirements so that the user can select a valid name. If reason == AlreadyExists, explain that is already in use, and direct them to select a different name. + */ + @visibility(Lifecycle.Read) + message?: string; +} + +/** + * The entity. + */ +model EntityInfo { + /** + * The fully qualified ID for the entity. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @visibility(Lifecycle.Read) + id?: string | null; + + /** + * The type of the resource. For example, Microsoft.Management/managementGroups + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @visibility(Lifecycle.Read) + type?: string | null; + + /** + * The name of the entity. For example, 00000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The generic properties of an entity. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + properties?: EntityInfoProperties | null; +} + +/** + * The generic properties of an entity. + */ +model EntityInfoProperties { + /** + * The AAD Tenant ID associated with the entity. For example, 00000000-0000-0000-0000-000000000000 + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + tenantId?: string | null; + + /** + * The friendly name of the management group. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + displayName?: string | null; + + /** + * (Optional) The ID of the parent management group. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + parent?: EntityParentGroupInfo | null; + + /** + * The users specific permissions to this item. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "For backward compatibility" + permissions?: Permissions | null; + + /** + * The users specific permissions to this item. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "For backward compatibility" + inheritedPermissions?: Permissions | null; + + /** + * Number of Descendants + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + numberOfDescendants?: int32 | null; + + /** + * Number of children is the number of Groups and Subscriptions that are exactly one level underneath the current Group. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + numberOfChildren?: int32 | null; + + /** + * Number of children is the number of Groups that are exactly one level underneath the current Group. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + numberOfChildGroups?: int32 | null; + + /** + * The parent display name chain from the root group to the immediate parent + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + parentDisplayNameChain?: string[] | null; + + /** + * The parent name chain from the root group to the immediate parent + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + parentNameChain?: string[] | null; +} + +/** + * (Optional) The ID of the parent management group. + */ +model EntityParentGroupInfo { + /** + * The fully qualified ID for the parent management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 + */ + id?: string; +} + +/** + * The tenant backfill status + */ +model TenantBackfillStatusResult { + /** + * The AAD Tenant ID associated with the management group. For example, 00000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + tenantId?: string; + + /** + * The status of the Tenant Backfill + */ + @visibility(Lifecycle.Read) + status?: Status; +} + +/** + * The results of an asynchronous operation. + */ +model OperationResults { + /** + * The fully qualified ID for the management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + id?: string; + + /** + * The type of the resource. For example, Microsoft.Management/managementGroups + */ + @visibility(Lifecycle.Read) + type?: string; + + /** + * The name of the management group. For example, 00000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The generic properties of a management group. + */ + properties?: ManagementGroupInfoProperties; +} + +/** + * The management group details for the hierarchy view. + */ +model EntityHierarchyItem { + /** + * The fully qualified ID for the management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + id?: string; + + /** + * The type of the resource. For example, Microsoft.Management/managementGroups + */ + @visibility(Lifecycle.Read) + type?: string; + + /** + * The name of the management group. For example, 00000000-0000-0000-0000-000000000000 + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The generic properties of a management group. + */ + properties?: EntityHierarchyItemProperties; +} + +/** + * The generic properties of a management group. + */ +model EntityHierarchyItemProperties { + /** + * The friendly name of the management group. + */ + displayName?: string; + + /** + * The users specific permissions to this item. + */ + permissions?: Permissions; + + /** + * The list of children. + */ + children?: EntityHierarchyItem[]; +} + +/** + * Describes the result of the request to view entities. + */ +model EntityListResult { + ...Azure.Core.Page; + + /** + * Total count of records that match the filter. + */ + count?: int32; +} + +model DescendantListResult is Azure.Core.Page; diff --git a/specification/managementgroups/ManagementGroups.Management/routes.tsp b/specification/managementgroups/ManagementGroups.Management/routes.tsp new file mode 100644 index 000000000000..67231f23565f --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/routes.tsp @@ -0,0 +1,142 @@ +// FIXME: Operations in this file are not detected as a resource operation, please confirm the conversion result manually + +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models.tsp"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; + +namespace Microsoft.Management; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "For backward compatibility" +interface ManagementGroupsOperationGroup { + /** + * List management groups for the authenticated user. + * + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @autoRoute + @get + @list + @action("managementGroups") + list is ArmProviderActionSync< + Response = ManagementGroupListResult, + Parameters = { + /** + * Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "For backward compatibility" + @header("Cache-Control") + `Cache-Control`?: string = "no-cache"; + + /** + * Page continuation token is only used if a previous operation returned a partial result. + * If a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls. + * + */ + @query("$skiptoken") + $skiptoken?: string; + } + >; +} + +/** + * Checks if the specified management group name is valid and unique + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "For backward compatibility" +@autoRoute +op checkNameAvailability is ArmProviderActionSync< + Request = CheckNameAvailabilityRequest, + Response = CheckNameAvailabilityResult +>; +/** + * Starts backfilling subscriptions for the Tenant. + */ +@autoRoute +op startTenantBackfill is ArmProviderActionSync; +/** + * Gets tenant backfill status + */ +@autoRoute +op tenantBackfillStatus is ArmProviderActionSync; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "For backward compatibility" +interface EntitiesOperationGroup { + /** + * List all entities (Management Groups, Subscriptions, etc.) for the authenticated user. + * + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @autoRoute + @list + @action("getEntities") + list is ArmProviderActionSync< + Response = EntityListResult, + Parameters = { + /** + * Page continuation token is only used if a previous operation returned a partial result. + * If a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls. + * + */ + @query("$skiptoken") + $skiptoken?: string; + + /** + * Number of entities to skip over when retrieving results. Passing this in will override $skipToken. + */ + @query("$skip") + $skip?: int32; + + /** + * Number of elements to return when retrieving results. Passing this in will override $skipToken. + */ + @query("$top") + $top?: int32; + + /** + * This parameter specifies the fields to include in the response. Can include any combination of Name,DisplayName,Type,ParentDisplayNameChain,ParentChain, e.g. '$select=Name,DisplayName,Type,ParentDisplayNameChain,ParentNameChain'. When specified the $select parameter can override select in $skipToken. + */ + @query("$select") + $select?: string; + + /** + * The $search parameter is used in conjunction with the $filter parameter to return three different outputs depending on the parameter passed in. + * With $search=AllowedParents the API will return the entity info of all groups that the requested entity will be able to reparent to as determined by the user's permissions. + * With $search=AllowedChildren the API will return the entity info of all entities that can be added as children of the requested entity. + * With $search=ParentAndFirstLevelChildren the API will return the parent and first level of children that the user has either direct access to or indirect access via one of their descendants. + * With $search=ParentOnly the API will return only the group if the user has access to at least one of the descendants of the group. + * With $search=ChildrenOnly the API will return only the first level of children of the group entity info specified in $filter. The user must have direct access to the children entities or one of it's descendants for it to show up in the results. + */ + @query("$search") + $search?: EntitySearchType; + + /** + * The filter parameter allows you to filter on the the name or display name fields. You can check for equality on the name field (e.g. name eq '{entityName}') and you can check for substrings on either the name or display name fields(e.g. contains(name, '{substringToSearch}'), contains(displayName, '{substringToSearch')). Note that the '{entityName}' and '{substringToSearch}' fields are checked case insensitively. + */ + @query("$filter") + $filter?: string; + + /** + * The view parameter allows clients to filter the type of data that is returned by the getEntities call. + */ + @query("$view") + $view?: EntityViewParameterType; + + /** + * A filter which allows the get entities call to focus on a particular group (i.e. "$filter=name eq 'groupName'") + */ + @query("groupName") + groupName?: string; + + /** + * Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "For backward compatibility" + @header("Cache-Control") + `Cache-Control`?: string = "no-cache"; + } + >; +} diff --git a/specification/managementgroups/ManagementGroups.Management/tspconfig.yaml b/specification/managementgroups/ManagementGroups.Management/tspconfig.yaml new file mode 100644 index 000000000000..622c7549489a --- /dev/null +++ b/specification/managementgroups/ManagementGroups.Management/tspconfig.yaml @@ -0,0 +1,54 @@ +parameters: + "service-dir": + default: "sdk/managementgroups" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + omit-unreachable-types: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/ManagementGroups/{version-status}/{version}/management.json" + emit-lro-options: "all" + examples-dir: "{project-root}/examples" + "@azure-tools/typespec-csharp": + flavor: azure + emitter-output-dir: "{output-dir}/{service-dir}/Azure.ResourceManager.ManagementGroups" + clear-output-folder: true + model-namespace: true + namespace: "Azure.ResourceManager.ManagementGroups" + "@azure-tools/typespec-python": + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-managementgroups" + namespace: "azure.mgmt.managementgroups" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-managementgroups" + namespace: "com.azure.resourcemanager.managementgroups" + service-name: "ManagementGroups" # human-readable service name, whitespace allowed + flavor: azure + rename-model: + CheckNameAvailabilityRequestType: Type + add-inner: HierarchySettingsInfo + "@azure-tools/typespec-ts": + emitter-output-dir: "{output-dir}/{service-dir}/arm-managementgroups" + flavor: azure + typespec-title-map: + ManagementClient: ManagementGroupsAPI + experimental-extensible-enums: true + package-details: + name: "@azure/arm-managementgroups" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/managementgroups" + emitter-output-dir: "{output-dir}/{service-dir}/armmanagementgroups" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armmanagementgroups" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/AddManagementGroupSubscription.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/AddManagementGroupSubscription.json index a63d3372d0b0..1f4f2d1ee4a0 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/AddManagementGroupSubscription.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/AddManagementGroupSubscription.json @@ -1,16 +1,16 @@ { "parameters": { + "Cache-Control": "no-cache", "api-version": "2023-04-01", "groupId": "Group", - "subscriptionId": "728bcbe4-8d56-4510-86c2-4921b8beefbc", - "Cache-Control": "no-cache" + "subscriptionId": "728bcbe4-8d56-4510-86c2-4921b8beefbc" }, "responses": { "200": { "body": { "name": "728bcbe4-8d56-4510-86c2-4921b8beefbc", - "id": " /providers/Microsoft.Management/managementGroups/Group/subscriptions/728bcbe4-8d56-4510-86c2-4921b8beefbc", "type": "Microsoft.Management/managementGroups/subscriptions", + "id": " /providers/Microsoft.Management/managementGroups/Group/subscriptions/728bcbe4-8d56-4510-86c2-4921b8beefbc", "properties": { "displayName": "Group", "parent": { @@ -21,5 +21,7 @@ } } } - } + }, + "operationId": "ManagementGroupSubscriptions_Create", + "title": "AddSubscriptionToManagementGroup" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/CheckManagementGroupNameAvailability.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/CheckManagementGroupNameAvailability.json index feae5214b37b..d65833862c58 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/CheckManagementGroupNameAvailability.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/CheckManagementGroupNameAvailability.json @@ -1,19 +1,21 @@ { "parameters": { + "Cache-Control": "no-cache", "api-version": "2023-04-01", "checkNameAvailabilityRequest": { "name": "nameTocheck", "type": "Microsoft.Management/managementGroups" - }, - "Cache-Control": "no-cache" + } }, "responses": { "200": { "body": { + "message": "Error message", "nameAvailable": false, - "reason": "AlreadyExists", - "message": "Error message" + "reason": "AlreadyExists" } } - } + }, + "operationId": "CheckNameAvailability", + "title": "CheckManagementGroupNameAvailability" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteHierarchySettings.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteHierarchySettings.json index b08651d8be5b..7c42ed3c4994 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteHierarchySettings.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteHierarchySettings.json @@ -5,5 +5,7 @@ }, "responses": { "200": {} - } + }, + "operationId": "HierarchySettings_Delete", + "title": "GetGroupSettings" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteManagementGroup.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteManagementGroup.json index 49bcd57bb1ff..9874629ed1c9 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteManagementGroup.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteManagementGroup.json @@ -1,21 +1,23 @@ { "parameters": { + "Cache-Control": "no-cache", "api-version": "2023-04-01", - "groupId": "GroupToDelete", - "Cache-Control": "no-cache" + "groupId": "GroupToDelete" }, "responses": { "202": { - "headers": { - "Location": "https://management.azure.com/providers/Microsoft.Management/managementGroups/GroupToDelete?api-version=2023-04-01" - }, "body": { - "id": "/providers/Microsoft.Management/managementGroups/GroupToDelete", - "type": "Microsoft.Management/managementGroups", "name": "GroupToDelete", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/GroupToDelete", "status": "NotStarted" + }, + "headers": { + "Location": "https://management.azure.com/providers/Microsoft.Management/managementGroups/GroupToDelete?api-version=2023-04-01" } }, "204": {} - } + }, + "operationId": "ManagementGroups_Delete", + "title": "DeleteManagementGroup" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetAllSubscriptionsFromManagementGroup.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetAllSubscriptionsFromManagementGroup.json index aebc08c7bc1b..33960ed68396 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetAllSubscriptionsFromManagementGroup.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetAllSubscriptionsFromManagementGroup.json @@ -6,11 +6,12 @@ "responses": { "200": { "body": { + "nextLink": null, "value": [ { "name": "728bcbe4-8d56-4510-86c2-4921b8beefbc", - "id": "/providers/Microsoft.Management/managementGroups/Group/subscriptions/728bcbe4-8d56-4510-86c2-4921b8beefbc", "type": "Microsoft.Management/managementGroups/subscriptions", + "id": "/providers/Microsoft.Management/managementGroups/Group/subscriptions/728bcbe4-8d56-4510-86c2-4921b8beefbc", "properties": { "displayName": "S5", "parent": { @@ -20,9 +21,10 @@ "tenant": "e751ac82-623b-4913-8d74-22637c832373" } } - ], - "nextLink": null + ] } } - } + }, + "operationId": "ManagementGroupSubscriptions_GetSubscriptionsUnderManagementGroup", + "title": "GetAllSubscriptionsFromManagementGroup" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetDescendants.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetDescendants.json index 1ac22f342b18..064954aee38f 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetDescendants.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetDescendants.json @@ -6,11 +6,12 @@ "responses": { "200": { "body": { + "nextLink": null, "value": [ { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", - "type": "Microsoft.Management/managementGroups", "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", "properties": { "displayName": "Group 1", "parent": { @@ -19,9 +20,9 @@ } }, { - "id": "/subscriptions/20000000-0004-0000-0000-000000000000", - "type": "Microsoft.Management/managementGroups/subscriptions", "name": "20000000-0004-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups/subscriptions", + "id": "/subscriptions/20000000-0004-0000-0000-000000000000", "properties": { "displayName": "Subscription 4", "parent": { @@ -29,9 +30,10 @@ } } } - ], - "nextLink": null + ] } } - } + }, + "operationId": "ManagementGroups_GetDescendants", + "title": "GetDescendants" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetEntities.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetEntities.json index bcc43c7183b0..7f8add94bd43 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetEntities.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetEntities.json @@ -5,19 +5,21 @@ "responses": { "200": { "body": { + "nextLink": null, "value": [ { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", - "type": "Microsoft.Management/managementGroups", "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", "displayName": "Group 1 Tenant 2", + "inheritedPermissions": "view", + "numberOfChildGroups": 1, + "numberOfChildren": 2, + "numberOfDescendants": 3, "parent": { "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000" }, - "permissions": "view", - "inheritedPermissions": "view", "parentDisplayNameChain": [ "Tenant Root Group", "Group 1 Tenant 2 Parent" @@ -26,23 +28,23 @@ "TenantRootGroup", "Group1Tenant2Parent" ], - "numberOfDescendants": 3, - "numberOfChildren": 2, - "numberOfChildGroups": 1 + "permissions": "view", + "tenantId": "20000000-0000-0000-0000-000000000000" } }, { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0004-0000-0000-000000000000", - "type": "Microsoft.Management/managementGroups", "name": "20000000-0004-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0004-0000-0000-000000000000", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", "displayName": "Group 4 Tenant 2", + "inheritedPermissions": "delete", + "numberOfChildGroups": 0, + "numberOfChildren": 0, + "numberOfDescendants": 0, "parent": { "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000" }, - "permissions": "delete", - "inheritedPermissions": "delete", "parentDisplayNameChain": [ "Tenant Root Group", "Group 4 Tenant 2 Parent" @@ -51,14 +53,14 @@ "TenantRootGroup", "Group4 Tenant2Parent" ], - "numberOfDescendants": 0, - "numberOfChildren": 0, - "numberOfChildGroups": 0 + "permissions": "delete", + "tenantId": "20000000-0000-0000-0000-000000000000" } } - ], - "nextLink": null + ] } } - } + }, + "operationId": "Entities_List", + "title": "GetEntities" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetHierarchySettings.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetHierarchySettings.json index bfce79467112..90f7479e9b29 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetHierarchySettings.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetHierarchySettings.json @@ -6,15 +6,17 @@ "responses": { "200": { "body": { - "id": "/providers/Microsoft.Management/managementGroups/root/settings/default", - "type": "Microsoft.Management/managementGroups/settings", "name": "root", + "type": "Microsoft.Management/managementGroups/settings", + "id": "/providers/Microsoft.Management/managementGroups/root/settings/default", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/DefaultGroup", - "requireAuthorizationForGroupCreation": true + "requireAuthorizationForGroupCreation": true, + "tenantId": "20000000-0000-0000-0000-000000000000" } } } - } + }, + "operationId": "HierarchySettings_Get", + "title": "GetGroupSettings" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroup.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroup.json index 90bb627fe186..41e8f254fc25 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroup.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroup.json @@ -1,30 +1,32 @@ { "parameters": { + "Cache-Control": "no-cache", "api-version": "2023-04-01", - "groupId": "20000000-0001-0000-0000-000000000000", - "Cache-Control": "no-cache" + "groupId": "20000000-0001-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", - "type": "Microsoft.Management/managementGroups", "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", "displayName": "Group 1 Tenant 2", + "tenantId": "20000000-0000-0000-0000-000000000000", "details": { - "version": 1, - "updatedTime": "2018-01-01T00:00:00.00Z", - "updatedBy": "16b8ef21-5c9f-420c-bcc9-e4f8c9f30b4b", "parent": { - "id": "/providers/Microsoft.Management/managementGroups/RootGroup", "name": "RootGroup", - "displayName": "RootGroup" - } + "displayName": "RootGroup", + "id": "/providers/Microsoft.Management/managementGroups/RootGroup" + }, + "updatedBy": "16b8ef21-5c9f-420c-bcc9-e4f8c9f30b4b", + "updatedTime": "2018-01-01T00:00:00.00Z", + "version": 1 } } } } - } + }, + "operationId": "ManagementGroups_Get", + "title": "GetManagementGroup" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithAncestors.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithAncestors.json index 68101b795296..2906ff2c8877 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithAncestors.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithAncestors.json @@ -1,28 +1,20 @@ { "parameters": { - "api-version": "2023-04-01", - "groupId": "20000000-0001-0000-0000-00000000000", "$expand": "ancestors", - "Cache-Control": "no-cache" + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "20000000-0001-0000-0000-00000000000" }, "responses": { "200": { "body": { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", - "type": "Microsoft.Management/managementGroups", "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", "displayName": "Group 1 Tenant 2", + "tenantId": "20000000-0000-0000-0000-000000000000", "details": { - "version": 1, - "updatedTime": "2018-01-01T00:00:00.00Z", - "updatedBy": "Test", - "parent": { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000001", - "name": "20000000-0000-0000-0000-000000000001", - "displayName": "Parent display name" - }, "managementGroupAncestorsChain": [ { "name": "20000000-0000-0000-0000-000000000001", @@ -32,10 +24,20 @@ "name": "20000000-0000-0000-0000-000000000000", "displayName": "Grandparent display name" } - ] + ], + "parent": { + "name": "20000000-0000-0000-0000-000000000001", + "displayName": "Parent display name", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000001" + }, + "updatedBy": "Test", + "updatedTime": "2018-01-01T00:00:00.00Z", + "version": 1 } } } } - } + }, + "operationId": "ManagementGroups_Get", + "title": "GetManagementGroupWithAncestors" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpand.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpand.json index 6434174c71c5..83c613adce56 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpand.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpand.json @@ -1,63 +1,65 @@ { "parameters": { - "api-version": "2023-04-01", - "groupId": "20000000-0001-0000-0000-000000000000", "$expand": "children", - "Cache-Control": "no-cache" + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "20000000-0001-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", - "type": "Microsoft.Management/managementGroups", "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", - "displayName": "Group 1 Tenant 2", - "details": { - "version": 1, - "updatedTime": "2018-01-01T00:00:00.00Z", - "updatedBy": "Test", - "parent": { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000", - "name": "20000000-0000-0000-0000-000000000000", - "displayName": "20000000-0000-0000-0000-000000000000" - } - }, "children": [ { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0002-0000-0000-000000000000", - "type": "Microsoft.Management/managementGroups", "name": "20000000-0002-0000-0000-000000000000", - "displayName": "Group 2 Tenant 2" + "type": "Microsoft.Management/managementGroups", + "displayName": "Group 2 Tenant 2", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0002-0000-0000-000000000000" }, { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0003-0000-0000-000000000000", - "type": "Microsoft.Management/managementGroups", "name": "20000000-0003-0000-0000-000000000000", - "displayName": "Group 3 Tenant 2" + "type": "Microsoft.Management/managementGroups", + "displayName": "Group 3 Tenant 2", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0003-0000-0000-000000000000" }, { - "id": "/subscriptions/10000000-F004-0000-0000-000000000000", - "type": "/subscriptions", "name": "10000000-F004-0000-0000-000000000000", - "displayName": "Subscription 4 Tenant 1" + "type": "/subscriptions", + "displayName": "Subscription 4 Tenant 1", + "id": "/subscriptions/10000000-F004-0000-0000-000000000000" }, { - "id": "/subscriptions/20000000-F005-0000-0000-000000000000", - "type": "/subscriptions", "name": "20000000-F005-0000-0000-000000000000", - "displayName": "Subscription 5 Tenant 2" + "type": "/subscriptions", + "displayName": "Subscription 5 Tenant 2", + "id": "/subscriptions/20000000-F005-0000-0000-000000000000" }, { - "id": "/subscriptions/30000000-F003-0000-0000-000000000000", - "type": "/subscriptions", "name": "30000000-F003-0000-0000-000000000000", - "displayName": "Subscription 3 Tenant 3" + "type": "/subscriptions", + "displayName": "Subscription 3 Tenant 3", + "id": "/subscriptions/30000000-F003-0000-0000-000000000000" } - ] + ], + "displayName": "Group 1 Tenant 2", + "tenantId": "20000000-0000-0000-0000-000000000000", + "details": { + "parent": { + "name": "20000000-0000-0000-0000-000000000000", + "displayName": "20000000-0000-0000-0000-000000000000", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000" + }, + "updatedBy": "Test", + "updatedTime": "2018-01-01T00:00:00.00Z", + "version": 1 + } } } } - } + }, + "operationId": "ManagementGroups_Get", + "title": "GetManagementGroupWithExpand" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpandAndRecurse.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpandAndRecurse.json index 9b024ff4520f..fd875e466c67 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpandAndRecurse.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpandAndRecurse.json @@ -1,62 +1,64 @@ { "parameters": { - "api-version": "2023-04-01", - "groupId": "20000000-0001-0000-0000-000000000000", "$expand": "children", "$recurse": true, - "Cache-Control": "no-cache" + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "20000000-0001-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/providers/Microsoft.Management/managementGroups/RootGroup", - "type": "Microsoft.Management/managementGroups", "name": "RootGroup", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/RootGroup", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", - "displayName": "RootGroup", - "details": { - "version": 2, - "updatedTime": "2018-01-25T02:26:49.0022093Z", - "updatedBy": "bd490e30-04cb-433e-b8c8-6066959a8bab", - "parent": { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000", - "name": "20000000-0000-0000-0000-000000000000", - "displayName": "20000000-0000-0000-0000-000000000000" - } - }, "children": [ { - "id": "/providers/Microsoft.Management/managementGroups/Child", - "type": "Microsoft.Management/managementGroups", "name": "Child", - "displayName": "Child", + "type": "Microsoft.Management/managementGroups", "children": [ { - "id": "/providers/Microsoft.Management/managementGroups/Leaf", - "type": "Microsoft.Management/managementGroups", "name": "Leaf", - "displayName": "Leaf", + "type": "Microsoft.Management/managementGroups", "children": [ { - "id": "/subscriptions/728bcbe4-8d56-4510-86c2-4921b8beefbc", - "type": "/subscriptions", "name": "728bcbe4-8d56-4510-86c2-4921b8beefbc", - "displayName": "Pay-As-You-Go" + "type": "/subscriptions", + "displayName": "Pay-As-You-Go", + "id": "/subscriptions/728bcbe4-8d56-4510-86c2-4921b8beefbc" } - ] + ], + "displayName": "Leaf", + "id": "/providers/Microsoft.Management/managementGroups/Leaf" } - ] + ], + "displayName": "Child", + "id": "/providers/Microsoft.Management/managementGroups/Child" }, { - "id": "/providers/Microsoft.Management/managementGroups/AnotherChild", - "type": "Microsoft.Management/managementGroups", "name": "AnotherChild", - "displayName": "Leaf" + "type": "Microsoft.Management/managementGroups", + "displayName": "Leaf", + "id": "/providers/Microsoft.Management/managementGroups/AnotherChild" } - ] + ], + "displayName": "RootGroup", + "tenantId": "20000000-0000-0000-0000-000000000000", + "details": { + "parent": { + "name": "20000000-0000-0000-0000-000000000000", + "displayName": "20000000-0000-0000-0000-000000000000", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000000" + }, + "updatedBy": "bd490e30-04cb-433e-b8c8-6066959a8bab", + "updatedTime": "2018-01-25T02:26:49.0022093Z", + "version": 2 + } } } } - } + }, + "operationId": "ManagementGroups_Get", + "title": "GetManagementGroupsWithExpandAndRecurse" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithPath.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithPath.json index 36374d7be9a6..3261cf638522 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithPath.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithPath.json @@ -1,28 +1,20 @@ { "parameters": { - "api-version": "2023-04-01", - "groupId": "20000000-0001-0000-0000-000000000000", "$expand": "path", - "Cache-Control": "no-cache" + "Cache-Control": "no-cache", + "api-version": "2023-04-01", + "groupId": "20000000-0001-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", - "type": "Microsoft.Management/managementGroups", "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", "displayName": "Group 1 Tenant 2", + "tenantId": "20000000-0000-0000-0000-000000000000", "details": { - "version": 1, - "updatedTime": "2018-01-01T00:00:00.00Z", - "updatedBy": "Test", - "parent": { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000001", - "name": "20000000-0000-0000-0000-000000000001", - "displayName": "Parent display name" - }, "path": [ { "name": "20000000-0000-0000-0000-000000000000", @@ -32,10 +24,20 @@ "name": "20000000-0000-0000-0000-000000000001", "displayName": "Parent display name" } - ] + ], + "parent": { + "name": "20000000-0000-0000-0000-000000000001", + "displayName": "Parent display name", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0000-0000-0000-000000000001" + }, + "updatedBy": "Test", + "updatedTime": "2018-01-01T00:00:00.00Z", + "version": 1 } } } } - } + }, + "operationId": "ManagementGroups_Get", + "title": "GetManagementGroupWithPath" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetSubscriptionFromManagementGroup.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetSubscriptionFromManagementGroup.json index a63d3372d0b0..0b73d128fa52 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetSubscriptionFromManagementGroup.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetSubscriptionFromManagementGroup.json @@ -1,16 +1,16 @@ { "parameters": { + "Cache-Control": "no-cache", "api-version": "2023-04-01", "groupId": "Group", - "subscriptionId": "728bcbe4-8d56-4510-86c2-4921b8beefbc", - "Cache-Control": "no-cache" + "subscriptionId": "728bcbe4-8d56-4510-86c2-4921b8beefbc" }, "responses": { "200": { "body": { "name": "728bcbe4-8d56-4510-86c2-4921b8beefbc", - "id": " /providers/Microsoft.Management/managementGroups/Group/subscriptions/728bcbe4-8d56-4510-86c2-4921b8beefbc", "type": "Microsoft.Management/managementGroups/subscriptions", + "id": " /providers/Microsoft.Management/managementGroups/Group/subscriptions/728bcbe4-8d56-4510-86c2-4921b8beefbc", "properties": { "displayName": "Group", "parent": { @@ -21,5 +21,7 @@ } } } - } + }, + "operationId": "ManagementGroupSubscriptions_GetSubscription", + "title": "GetSubscriptionFromManagementGroup" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListHierarchySettings.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListHierarchySettings.json index 06d37b87fc3e..b10607aa599a 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListHierarchySettings.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListHierarchySettings.json @@ -6,20 +6,22 @@ "responses": { "200": { "body": { + "@nextLink": null, "value": [ { - "id": "/providers/Microsoft.Management/managementGroups/root/settings/default", - "type": "Microsoft.Management/managementGroups/settings", "name": "root", + "type": "Microsoft.Management/managementGroups/settings", + "id": "/providers/Microsoft.Management/managementGroups/root/settings/default", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/DefaultGroup", - "requireAuthorizationForGroupCreation": true + "requireAuthorizationForGroupCreation": true, + "tenantId": "20000000-0000-0000-0000-000000000000" } } - ], - "@nextLink": null + ] } } - } + }, + "operationId": "HierarchySettings_List", + "title": "ListGroupSettings" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListManagementGroups.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListManagementGroups.json index a5053d5ade21..8d5799580661 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListManagementGroups.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListManagementGroups.json @@ -1,33 +1,35 @@ { "parameters": { - "api-version": "2023-04-01", - "Cache-Control": "no-cache" + "Cache-Control": "no-cache", + "api-version": "2023-04-01" }, "responses": { "200": { "body": { + "@nextLink": null, "value": [ { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", - "type": "Microsoft.Management/managementGroups", "name": "20000000-0001-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0001-0000-0000-000000000000", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", - "displayName": "Group 1 Tenant 2" + "displayName": "Group 1 Tenant 2", + "tenantId": "20000000-0000-0000-0000-000000000000" } }, { - "id": "/providers/Microsoft.Management/managementGroups/20000000-0004-0000-0000-000000000000", - "type": "Microsoft.Management/managementGroups", "name": "20000000-0004-0000-0000-000000000000", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/20000000-0004-0000-0000-000000000000", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", - "displayName": "Group 4 Tenant 2" + "displayName": "Group 4 Tenant 2", + "tenantId": "20000000-0000-0000-0000-000000000000" } } - ], - "@nextLink": null + ] } } - } + }, + "operationId": "ManagementGroups_List", + "title": "ListManagementGroups" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListOperations.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListOperations.json index b9f9d3ce26cc..2903a79c9cba 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListOperations.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListOperations.json @@ -5,19 +5,21 @@ "responses": { "200": { "body": { + "nextLink": "aaaaaaaaaaaaaaaaaaa", "value": [ { "name": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "display": { - "provider": "aaaaaaaaaaaaaaaaaaaaa", - "resource": "aaaaaaaaaaaaa", + "description": "aaaaaaaaaaaaaaaaaaaaaa", "operation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", - "description": "aaaaaaaaaaaaaaaaaaaaaa" + "provider": "aaaaaaaaaaaaaaaaaaaaa", + "resource": "aaaaaaaaaaaaa" } } - ], - "nextLink": "aaaaaaaaaaaaaaaaaaa" + ] } } - } + }, + "operationId": "Operations_List", + "title": "List Operations" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchHierarchySettings.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchHierarchySettings.json index 36c43ef1eef2..526fc6c08e3d 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchHierarchySettings.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchHierarchySettings.json @@ -1,26 +1,28 @@ { "parameters": { - "api-version": "2023-04-01", - "groupId": "root", "CreateTenantSettingsRequest": { "properties": { "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/DefaultGroup", "requireAuthorizationForGroupCreation": true } - } + }, + "api-version": "2023-04-01", + "groupId": "root" }, "responses": { "200": { "body": { - "id": "/providers/Microsoft.Management/managementGroups/root/settings/default", - "type": "Microsoft.Management/managementGroups/settings", "name": "root", + "type": "Microsoft.Management/managementGroups/settings", + "id": "/providers/Microsoft.Management/managementGroups/root/settings/default", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/DefaultGroup", - "requireAuthorizationForGroupCreation": true + "requireAuthorizationForGroupCreation": true, + "tenantId": "20000000-0000-0000-0000-000000000000" } } } - } + }, + "operationId": "HierarchySettings_Update", + "title": "GetGroupSettings" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchManagementGroup.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchManagementGroup.json index b0eb6600a182..b64a17346dca 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchManagementGroup.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchManagementGroup.json @@ -1,34 +1,36 @@ { "parameters": { + "Cache-Control": "no-cache", "api-version": "2023-04-01", "groupId": "ChildGroup", "patchGroupRequest": { "displayName": "AlternateDisplayName", "parentGroupId": "/providers/Microsoft.Management/managementGroups/AlternateRootGroup" - }, - "Cache-Control": "no-cache" + } }, "responses": { "200": { "body": { - "id": "/providers/Microsoft.Management/managementGroups/ChildGroup", - "type": "Microsoft.Management/managementGroups", "name": "ChildGroup", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/ChildGroup", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", "displayName": "AlternateDisplayName", + "tenantId": "20000000-0000-0000-0000-000000000000", "details": { - "version": 2, - "updatedTime": "2018-01-25T02:46:59.0545645Z", - "updatedBy": "bd490e30-04cb-433e-b8c8-6066959a8bab", "parent": { - "id": "/providers/Microsoft.Management/managementGroups/AlternateRootGroup", "name": "AlternateRootGroup", - "displayName": "AlternateRootGroup" - } + "displayName": "AlternateRootGroup", + "id": "/providers/Microsoft.Management/managementGroups/AlternateRootGroup" + }, + "updatedBy": "bd490e30-04cb-433e-b8c8-6066959a8bab", + "updatedTime": "2018-01-25T02:46:59.0545645Z", + "version": 2 } } } } - } + }, + "operationId": "ManagementGroups_Update", + "title": "PatchManagementGroup" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutHierarchySettings.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutHierarchySettings.json index 36c43ef1eef2..c673e37e6405 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutHierarchySettings.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutHierarchySettings.json @@ -1,26 +1,28 @@ { "parameters": { - "api-version": "2023-04-01", - "groupId": "root", "CreateTenantSettingsRequest": { "properties": { "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/DefaultGroup", "requireAuthorizationForGroupCreation": true } - } + }, + "api-version": "2023-04-01", + "groupId": "root" }, "responses": { "200": { "body": { - "id": "/providers/Microsoft.Management/managementGroups/root/settings/default", - "type": "Microsoft.Management/managementGroups/settings", "name": "root", + "type": "Microsoft.Management/managementGroups/settings", + "id": "/providers/Microsoft.Management/managementGroups/root/settings/default", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/DefaultGroup", - "requireAuthorizationForGroupCreation": true + "requireAuthorizationForGroupCreation": true, + "tenantId": "20000000-0000-0000-0000-000000000000" } } } - } + }, + "operationId": "HierarchySettings_CreateOrUpdate", + "title": "GetGroupSettings" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutManagementGroup.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutManagementGroup.json index 715dec6553e4..25ad25dcf77c 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutManagementGroup.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutManagementGroup.json @@ -1,7 +1,7 @@ { "parameters": { + "Cache-Control": "no-cache", "api-version": "2023-04-01", - "groupId": "ChildGroup", "createManagementGroupRequest": { "properties": { "displayName": "ChildGroup", @@ -12,37 +12,39 @@ } } }, - "Cache-Control": "no-cache" + "groupId": "ChildGroup" }, "responses": { "200": { "body": { - "id": "/providers/Microsoft.Management/managementGroups/ChildGroup", - "type": "Microsoft.Management/managementGroups", "name": "ChildGroup", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/ChildGroup", "properties": { - "tenantId": "20000000-0000-0000-0000-000000000000", "displayName": "ChildGroup", + "tenantId": "20000000-0000-0000-0000-000000000000", "details": { - "version": 1, - "updatedTime": "2018-01-01T00:00:00.00Z", - "updatedBy": "16b8ef21-5c9f-420c-bcc9-e4f8c9f30b4b", "parent": { - "id": "/providers/Microsoft.Management/managementGroups/RootGroup", "name": "RootGroup", - "displayName": "RootGroup" - } + "displayName": "RootGroup", + "id": "/providers/Microsoft.Management/managementGroups/RootGroup" + }, + "updatedBy": "16b8ef21-5c9f-420c-bcc9-e4f8c9f30b4b", + "updatedTime": "2018-01-01T00:00:00.00Z", + "version": 1 } } } }, "202": { "body": { - "id": "/providers/Microsoft.Management/managementGroups/ChildGroup", - "type": "Microsoft.Management/managementGroups", "name": "ChildGroup", + "type": "Microsoft.Management/managementGroups", + "id": "/providers/Microsoft.Management/managementGroups/ChildGroup", "status": "NotStarted" } } - } + }, + "operationId": "ManagementGroups_CreateOrUpdate", + "title": "PutManagementGroup" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/RemoveManagementGroupSubscription.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/RemoveManagementGroupSubscription.json index 920bcf508614..d2428f23aebf 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/RemoveManagementGroupSubscription.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/RemoveManagementGroupSubscription.json @@ -1,12 +1,14 @@ { "parameters": { + "Cache-Control": "no-cache", "api-version": "2023-04-01", "groupId": "Group", - "subscriptionId": "728bcbe4-8d56-4510-86c2-4921b8beefbc", - "Cache-Control": "no-cache" + "subscriptionId": "728bcbe4-8d56-4510-86c2-4921b8beefbc" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "ManagementGroupSubscriptions_Delete", + "title": "DeleteSubscriptionFromManagementGroup" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/StartTenantBackfillRequest.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/StartTenantBackfillRequest.json index d9cf7b97d4a7..9792180a94e6 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/StartTenantBackfillRequest.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/StartTenantBackfillRequest.json @@ -6,9 +6,11 @@ "responses": { "200": { "body": { - "tenantId": "20000000-0000-0000-0000-000000000000", - "status": "Started" + "status": "Started", + "tenantId": "20000000-0000-0000-0000-000000000000" } } - } + }, + "operationId": "StartTenantBackfill", + "title": "StartTenantBackfill" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/TenantBackfillStatusRequest.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/TenantBackfillStatusRequest.json index a8d1c036d7f7..8fa389627587 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/TenantBackfillStatusRequest.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/TenantBackfillStatusRequest.json @@ -6,9 +6,11 @@ "responses": { "200": { "body": { - "tenantId": "20000000-0000-0000-0000-000000000000", - "status": "Started" + "status": "Started", + "tenantId": "20000000-0000-0000-0000-000000000000" } } - } + }, + "operationId": "TenantBackfillStatus", + "title": "TenantBackfillStatus" } diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/management.json b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/management.json index f6e5e8a9dd9d..7474ab95a87f 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/management.json +++ b/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/management.json @@ -1,18 +1,23 @@ { "swagger": "2.0", - "host": "management.azure.com", "info": { - "version": "2023-04-01", "title": "Management Groups API", - "description": "The Azure Management Groups API enables consolidation of multiple \nsubscriptions/resources into an organizational hierarchy and centrally \nmanage access control, policies, alerting and reporting for those resources.\n" + "version": "2023-04-01", + "description": "The Azure Management Groups API enables consolidation of multiple\nsubscriptions/resources into an organizational hierarchy and centrally\nmanage access control, policies, alerting and reporting for those resources.", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, "schemes": [ "https" ], - "consumes": [ + "host": "management.azure.com", + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], "security": [ @@ -25,9 +30,9 @@ "securityDefinitions": { "azure_auth": { "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "scopes": { "user_impersonation": "impersonate your user account" } @@ -35,99 +40,360 @@ }, "tags": [ { - "name": "ManagementGroups", - "description": "A Management Group is a customer defined scope (grouping mechanism) that \nprovides access control (authorization), policy management and reporting. \nManagement Groups are organized in a strictly tree-based hierarchy.\n" + "name": "Operations" + }, + { + "name": "ManagementGroups" }, { - "name": "Operations", - "description": "Management operations supported by the Microsoft.Management resource provider.\n" + "name": "SubscriptionUnderManagementGroups" }, { - "name": "Entities", - "description": "A list of entities that belong to the Management Groups.\n" + "name": "HierarchySettingsOperationGroup" } ], "paths": { + "/providers/Microsoft.Management/checkNameAvailability": { + "post": { + "operationId": "CheckNameAvailability", + "description": "Checks if the specified management group name is valid and unique", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "checkNameAvailabilityRequest", + "in": "body", + "description": "The request body", + "required": true, + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "CheckManagementGroupNameAvailability": { + "$ref": "./examples/CheckManagementGroupNameAvailability.json" + } + } + } + }, + "/providers/Microsoft.Management/getEntities": { + "post": { + "operationId": "Entities_List", + "description": "List all entities (Management Groups, Subscriptions, etc.) for the authenticated user.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "$skiptoken", + "in": "query", + "description": "Page continuation token is only used if a previous operation returned a partial result.\nIf a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls.", + "required": false, + "type": "string" + }, + { + "name": "$skip", + "in": "query", + "description": "Number of entities to skip over when retrieving results. Passing this in will override $skipToken.", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$top", + "in": "query", + "description": "Number of elements to return when retrieving results. Passing this in will override $skipToken.", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$select", + "in": "query", + "description": "This parameter specifies the fields to include in the response. Can include any combination of Name,DisplayName,Type,ParentDisplayNameChain,ParentChain, e.g. '$select=Name,DisplayName,Type,ParentDisplayNameChain,ParentNameChain'. When specified the $select parameter can override select in $skipToken.", + "required": false, + "type": "string" + }, + { + "name": "$search", + "in": "query", + "description": "The $search parameter is used in conjunction with the $filter parameter to return three different outputs depending on the parameter passed in.\nWith $search=AllowedParents the API will return the entity info of all groups that the requested entity will be able to reparent to as determined by the user's permissions.\nWith $search=AllowedChildren the API will return the entity info of all entities that can be added as children of the requested entity.\nWith $search=ParentAndFirstLevelChildren the API will return the parent and first level of children that the user has either direct access to or indirect access via one of their descendants.\nWith $search=ParentOnly the API will return only the group if the user has access to at least one of the descendants of the group.\nWith $search=ChildrenOnly the API will return only the first level of children of the group entity info specified in $filter. The user must have direct access to the children entities or one of it's descendants for it to show up in the results.", + "required": false, + "type": "string", + "enum": [ + "AllowedParents", + "AllowedChildren", + "ParentAndFirstLevelChildren", + "ParentOnly", + "ChildrenOnly" + ], + "x-ms-enum": { + "name": "EntitySearchType", + "modelAsString": true, + "values": [ + { + "name": "AllowedParents", + "value": "AllowedParents", + "description": "AllowedParents" + }, + { + "name": "AllowedChildren", + "value": "AllowedChildren", + "description": "AllowedChildren" + }, + { + "name": "ParentAndFirstLevelChildren", + "value": "ParentAndFirstLevelChildren", + "description": "ParentAndFirstLevelChildren" + }, + { + "name": "ParentOnly", + "value": "ParentOnly", + "description": "ParentOnly" + }, + { + "name": "ChildrenOnly", + "value": "ChildrenOnly", + "description": "ChildrenOnly" + } + ] + } + }, + { + "name": "$filter", + "in": "query", + "description": "The filter parameter allows you to filter on the the name or display name fields. You can check for equality on the name field (e.g. name eq '{entityName}') and you can check for substrings on either the name or display name fields(e.g. contains(name, '{substringToSearch}'), contains(displayName, '{substringToSearch')). Note that the '{entityName}' and '{substringToSearch}' fields are checked case insensitively.", + "required": false, + "type": "string" + }, + { + "name": "$view", + "in": "query", + "description": "The view parameter allows clients to filter the type of data that is returned by the getEntities call.", + "required": false, + "type": "string", + "enum": [ + "FullHierarchy", + "GroupsOnly", + "SubscriptionsOnly", + "Audit" + ], + "x-ms-enum": { + "name": "EntityViewParameterType", + "modelAsString": true, + "values": [ + { + "name": "FullHierarchy", + "value": "FullHierarchy", + "description": "FullHierarchy" + }, + { + "name": "GroupsOnly", + "value": "GroupsOnly", + "description": "GroupsOnly" + }, + { + "name": "SubscriptionsOnly", + "value": "SubscriptionsOnly", + "description": "SubscriptionsOnly" + }, + { + "name": "Audit", + "value": "Audit", + "description": "Audit" + } + ] + } + }, + { + "name": "groupName", + "in": "query", + "description": "A filter which allows the get entities call to focus on a particular group (i.e. \"$filter=name eq 'groupName'\")", + "required": false, + "type": "string" + }, + { + "name": "Cache-Control", + "in": "header", + "description": "Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches.", + "required": false, + "type": "string", + "default": "no-cache" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/EntityListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetEntities": { + "$ref": "./examples/GetEntities.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, "/providers/Microsoft.Management/managementGroups": { "get": { - "tags": [ - "ManagementGroups" - ], "operationId": "ManagementGroups_List", - "description": "List management groups for the authenticated user.\n", + "description": "List management groups for the authenticated user.", "parameters": [ { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/CacheControlHeader" + "name": "Cache-Control", + "in": "header", + "description": "Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches.", + "required": false, + "type": "string", + "default": "no-cache" }, { - "$ref": "#/parameters/SkipTokenParameter" + "name": "$skiptoken", + "in": "query", + "description": "Page continuation token is only used if a previous operation returned a partial result.\nIf a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls.", + "required": false, + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/ManagementGroupListResult" } }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "@nextLink" - }, "x-ms-examples": { "ListManagementGroups": { "$ref": "./examples/ListManagementGroups.json" } + }, + "x-ms-pageable": { + "nextLinkName": "@nextLink" } } }, "/providers/Microsoft.Management/managementGroups/{groupId}": { "get": { + "operationId": "ManagementGroups_Get", "tags": [ "ManagementGroups" ], - "operationId": "ManagementGroups_Get", - "description": "Get the details of the management group.\n", + "description": "Get the details of the management group.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ExpandParameter" + "name": "$expand", + "in": "query", + "description": "The $expand=children query string parameter allows clients to request inclusion of children in the response payload. $expand=path includes the path from the root group to the current group. $expand=ancestors includes the ancestor Ids of the current group.", + "required": false, + "type": "string", + "enum": [ + "children", + "path", + "ancestors" + ], + "x-ms-enum": { + "name": "ManagementGroupExpandType", + "modelAsString": true, + "values": [ + { + "name": "children", + "value": "children", + "description": "children" + }, + { + "name": "path", + "value": "path", + "description": "path" + }, + { + "name": "ancestors", + "value": "ancestors", + "description": "ancestors" + } + ] + } }, { - "$ref": "#/parameters/RecurseParameter" + "name": "$recurse", + "in": "query", + "description": "The $recurse=true query string parameter allows clients to request inclusion of entire hierarchy in the response payload. Note that $expand=children must be passed up if $recurse is set to true.", + "required": false, + "type": "boolean" }, { - "$ref": "#/parameters/FilterParameter" + "name": "$filter", + "in": "query", + "description": "A filter which allows the exclusion of subscriptions from results (i.e. '$filter=children.childType ne Subscription')", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/CacheControlHeader" + "name": "Cache-Control", + "in": "header", + "description": "Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches.", + "required": false, + "type": "string", + "default": "no-cache" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ManagementGroup" } }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -135,67 +401,83 @@ "GetManagementGroup": { "$ref": "./examples/GetManagementGroup.json" }, - "GetManagementGroupWithPath": { - "$ref": "./examples/GetManagementGroupWithPath.json" - }, "GetManagementGroupWithAncestors": { "$ref": "./examples/GetManagementGroupWithAncestors.json" }, "GetManagementGroupWithExpand": { "$ref": "./examples/GetManagementGroupWithExpand.json" }, + "GetManagementGroupWithPath": { + "$ref": "./examples/GetManagementGroupWithPath.json" + }, "GetManagementGroupsWithExpandAndRecurse": { "$ref": "./examples/GetManagementGroupWithExpandAndRecurse.json" } } }, "put": { + "operationId": "ManagementGroups_CreateOrUpdate", "tags": [ "ManagementGroups" ], - "operationId": "ManagementGroups_CreateOrUpdate", - "description": "Create or update a management group.\nIf a management group is already created and a subsequent create request is issued with different properties, the management group properties will be updated.\n", + "description": "Create or update a management group.\nIf a management group is already created and a subsequent create request is issued with different properties, the management group properties will be updated.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/CacheControlHeader" + "name": "Cache-Control", + "in": "header", + "description": "Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches.", + "required": false, + "type": "string", + "default": "no-cache" }, { - "$ref": "#/parameters/CreateManagementGroupRequestParameter" + "name": "createManagementGroupRequest", + "in": "body", + "description": "Management group creation parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/CreateManagementGroupRequest" + } } ], "responses": { "200": { - "description": "OK", + "description": "Resource 'ManagementGroup' update operation succeeded", "schema": { "$ref": "#/definitions/ManagementGroup" } }, "202": { - "description": "Accepted", + "description": "The request has been accepted for processing, but processing has not yet completed.", "schema": { "$ref": "#/definitions/AzureAsyncOperationResults" }, "headers": { - "Location": { - "description": "URL for determining when an operation has completed. Send a GET request to the URL in Location header.\nThe URI should return a 202 until the operation reaches a terminal state and 200 once it reaches a terminal state.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#202-accepted-and-location-headers", - "type": "string" - }, "Azure-AsyncOperation": { - "description": "URL for checking the ongoing status of the operation.\nTo get the status of the asynchronous operation, send a GET request to the URL in Azure-AsyncOperation header value.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#asynchronous-operations", - "type": "string" + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." } } }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -204,42 +486,58 @@ "$ref": "./examples/PutManagementGroup.json" } }, - "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/ManagementGroup" + }, + "x-ms-long-running-operation": true }, "patch": { + "operationId": "ManagementGroups_Update", "tags": [ "ManagementGroups" ], - "operationId": "ManagementGroups_Update", - "description": "Update a management group.\n", + "description": "Update a management group.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/CacheControlHeader" + "name": "Cache-Control", + "in": "header", + "description": "Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches.", + "required": false, + "type": "string", + "default": "no-cache" }, { - "$ref": "#/parameters/PatchGroupRequestParameter" + "name": "patchGroupRequest", + "in": "body", + "description": "Management group patch parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/PatchManagementGroupRequest" + } } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ManagementGroup" } }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -250,46 +548,61 @@ } }, "delete": { + "operationId": "ManagementGroups_Delete", "tags": [ "ManagementGroups" ], - "operationId": "ManagementGroups_Delete", - "description": "Delete management group.\nIf a management group contains child resources, the request will fail.\n", + "description": "Delete management group.\nIf a management group contains child resources, the request will fail.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/CacheControlHeader" + "name": "Cache-Control", + "in": "header", + "description": "Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches.", + "required": false, + "type": "string", + "default": "no-cache" } ], "responses": { "202": { - "description": "Accepted", + "description": "The request has been accepted for processing, but processing has not yet completed.", "schema": { "$ref": "#/definitions/AzureAsyncOperationResults" }, "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, "Location": { - "description": "URL for determining when an operation has completed. Send a GET request to the URL in Location header.\nThe URI should return a 202 until the operation reaches a terminal state and 200 once it reaches a terminal state.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#202-accepted-and-location-headers", - "type": "string" + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." }, - "Azure-AsyncOperation": { - "description": "URL for checking the ongoing status of the operation.\nTo get the status of the asynchronous operation, send a GET request to the URL in Azure-AsyncOperation header value.\n\nFor more info: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#asynchronous-operations", - "type": "string" + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, "204": { - "description": "NoContent" + "description": "Resource does not exist." }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -298,556 +611,546 @@ "$ref": "./examples/DeleteManagementGroup.json" } }, - "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "azure-async-operation" - } + }, + "x-ms-long-running-operation": true } }, "/providers/Microsoft.Management/managementGroups/{groupId}/descendants": { "get": { + "operationId": "ManagementGroups_GetDescendants", "tags": [ "ManagementGroups" ], - "operationId": "ManagementGroups_GetDescendants", - "description": "List all entities that descend from a management group.\n", + "description": "List all entities that descend from a management group.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SkipTokenParameter" + "name": "$skiptoken", + "in": "query", + "description": "Page continuation token is only used if a previous operation returned a partial result.\nIf a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/TopParameter" + "name": "$top", + "in": "query", + "description": "Number of elements to return when retrieving results. Passing this in will override $skipToken.", + "required": false, + "type": "integer", + "format": "int32" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/DescendantListResult" } }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { "GetDescendants": { "$ref": "./examples/GetDescendants.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions/{subscriptionId}": { - "put": { + "/providers/Microsoft.Management/managementGroups/{groupId}/settings": { + "get": { + "operationId": "HierarchySettings_List", "tags": [ "ManagementGroups" ], - "operationId": "ManagementGroupSubscriptions_Create", - "description": "Associates existing subscription with the management group.\n", + "description": "Gets all the hierarchy settings defined at the Management Group level. Settings can only be set on the root Management Group of the hierarchy.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/CacheControlHeader" + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/SubscriptionUnderManagementGroup" + "$ref": "#/definitions/HierarchySettingsList" } }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "AddSubscriptionToManagementGroup": { - "$ref": "./examples/AddManagementGroupSubscription.json" + "ListGroupSettings": { + "$ref": "./examples/ListHierarchySettings.json" } } - }, - "delete": { + } + }, + "/providers/Microsoft.Management/managementGroups/{groupId}/settings/default": { + "get": { + "operationId": "HierarchySettings_Get", "tags": [ - "ManagementGroups" + "HierarchySettingsOperationGroup" ], - "operationId": "ManagementGroupSubscriptions_Delete", - "description": "De-associates subscription from the management group.\n", + "description": "Gets the hierarchy settings defined at the Management Group level. Settings can only be set on the root Management Group of the hierarchy.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/CacheControlHeader" + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK" - }, - "204": { - "description": "NoContent" + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/HierarchySettings" + } }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "DeleteSubscriptionFromManagementGroup": { - "$ref": "./examples/RemoveManagementGroupSubscription.json" + "GetGroupSettings": { + "$ref": "./examples/GetHierarchySettings.json" } } }, - "get": { + "put": { + "operationId": "HierarchySettings_CreateOrUpdate", "tags": [ - "ManagementGroups" + "HierarchySettingsOperationGroup" ], - "operationId": "ManagementGroupSubscriptions_GetSubscription", - "description": "Retrieves details about given subscription which is associated with the management group.\n", + "description": "Creates or updates the hierarchy settings defined at the Management Group level.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/CacheControlHeader" + "name": "CreateTenantSettingsRequest", + "in": "body", + "description": "Tenant level settings request parameter.", + "required": true, + "schema": { + "$ref": "#/definitions/CreateOrUpdateSettingsRequest" + } } ], "responses": { "200": { - "description": "OK", + "description": "Resource 'HierarchySettings' update operation succeeded", "schema": { - "$ref": "#/definitions/SubscriptionUnderManagementGroup" + "$ref": "#/definitions/HierarchySettings" } }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "GetSubscriptionFromManagementGroup": { - "$ref": "./examples/GetSubscriptionFromManagementGroup.json" + "GetGroupSettings": { + "$ref": "./examples/PutHierarchySettings.json" } } - } - }, - "/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions": { - "get": { + }, + "patch": { + "operationId": "HierarchySettings_Update", "tags": [ - "ManagementGroups" + "HierarchySettingsOperationGroup" ], - "operationId": "ManagementGroupSubscriptions_GetSubscriptionsUnderManagementGroup", - "description": "Retrieves details about all subscriptions which are associated with the management group.\n", + "description": "Updates the hierarchy settings defined at the Management Group level.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SkipTokenParameter" + "name": "CreateTenantSettingsRequest", + "in": "body", + "description": "Tenant level settings request parameter.", + "required": true, + "schema": { + "$ref": "#/definitions/CreateOrUpdateSettingsRequest" + } } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ListSubscriptionUnderManagementGroup" + "$ref": "#/definitions/HierarchySettings" } }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "GetAllSubscriptionsFromManagementGroup": { - "$ref": "./examples/GetAllSubscriptionsFromManagementGroup.json" + "GetGroupSettings": { + "$ref": "./examples/PatchHierarchySettings.json" } } - } - }, - "/providers/Microsoft.Management/managementGroups/{groupId}/settings": { - "get": { + }, + "delete": { + "operationId": "HierarchySettings_Delete", "tags": [ - "ManagementGroups" + "HierarchySettingsOperationGroup" ], - "operationId": "HierarchySettings_List", - "description": "Gets all the hierarchy settings defined at the Management Group level. Settings can only be set on the root Management Group of the hierarchy.\n", + "description": "Deletes the hierarchy settings defined at the Management Group level.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/HierarchySettingsList" - } + "description": "Resource deleted successfully." }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "ListGroupSettings": { - "$ref": "./examples/ListHierarchySettings.json" + "GetGroupSettings": { + "$ref": "./examples/DeleteHierarchySettings.json" } } } }, - "/providers/Microsoft.Management/managementGroups/{groupId}/settings/default": { + "/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions": { "get": { + "operationId": "ManagementGroupSubscriptions_GetSubscriptionsUnderManagementGroup", "tags": [ - "ManagementGroups" + "SubscriptionUnderManagementGroups" ], - "operationId": "HierarchySettings_Get", - "description": "Gets the hierarchy settings defined at the Management Group level. Settings can only be set on the root Management Group of the hierarchy.\n", + "description": "Retrieves details about all subscriptions which are associated with the management group.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" + }, + { + "name": "$skiptoken", + "in": "query", + "description": "Page continuation token is only used if a previous operation returned a partial result.\nIf a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls.", + "required": false, + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/HierarchySettings" + "$ref": "#/definitions/ListSubscriptionUnderManagementGroup" } }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "GetGroupSettings": { - "$ref": "./examples/GetHierarchySettings.json" + "GetAllSubscriptionsFromManagementGroup": { + "$ref": "./examples/GetAllSubscriptionsFromManagementGroup.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } - }, - "put": { + } + }, + "/providers/Microsoft.Management/managementGroups/{groupId}/subscriptions/{subscriptionId}": { + "get": { + "operationId": "ManagementGroupSubscriptions_GetSubscription", "tags": [ - "ManagementGroups" + "SubscriptionUnderManagementGroups" ], - "operationId": "HierarchySettings_CreateOrUpdate", - "description": "Creates or updates the hierarchy settings defined at the Management Group level.\n", + "description": "Retrieves details about given subscription which is associated with the management group.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/CreateOrUpdateManagementGroupSettingsRequestParameter" + "name": "Cache-Control", + "in": "header", + "description": "Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches.", + "required": false, + "type": "string", + "default": "no-cache" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/HierarchySettings" + "$ref": "#/definitions/SubscriptionUnderManagementGroup" } }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "GetGroupSettings": { - "$ref": "./examples/PutHierarchySettings.json" + "GetSubscriptionFromManagementGroup": { + "$ref": "./examples/GetSubscriptionFromManagementGroup.json" } } }, - "patch": { + "put": { + "operationId": "ManagementGroupSubscriptions_Create", "tags": [ - "ManagementGroups" + "SubscriptionUnderManagementGroups" ], - "operationId": "HierarchySettings_Update", - "description": "Updates the hierarchy settings defined at the Management Group level.\n", + "description": "Associates existing subscription with the management group.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/CreateOrUpdateManagementGroupSettingsRequestParameter" + "name": "Cache-Control", + "in": "header", + "description": "Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches.", + "required": false, + "type": "string", + "default": "no-cache" } ], "responses": { "200": { - "description": "OK", + "description": "Resource 'SubscriptionUnderManagementGroup' update operation succeeded", "schema": { - "$ref": "#/definitions/HierarchySettings" + "$ref": "#/definitions/SubscriptionUnderManagementGroup" } }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "GetGroupSettings": { - "$ref": "./examples/PatchHierarchySettings.json" + "AddSubscriptionToManagementGroup": { + "$ref": "./examples/AddManagementGroupSubscription.json" } } }, "delete": { + "operationId": "ManagementGroupSubscriptions_Delete", "tags": [ - "ManagementGroups" + "SubscriptionUnderManagementGroups" ], - "operationId": "HierarchySettings_Delete", - "description": "Deletes the hierarchy settings defined at the Management Group level.\n", + "description": "De-associates subscription from the management group.", "parameters": [ { - "$ref": "#/parameters/GroupIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "groupId", + "in": "path", + "description": "Management Group ID.", + "required": true, + "type": "string" + }, + { + "name": "subscriptionId", + "in": "path", + "description": "Subscription ID.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "Cache-Control", + "in": "header", + "description": "Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches.", + "required": false, + "type": "string", + "default": "no-cache" } ], "responses": { "200": { - "description": "OK" + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." }, "default": { - "description": "Error", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "GetGroupSettings": { - "$ref": "./examples/DeleteHierarchySettings.json" + "DeleteSubscriptionFromManagementGroup": { + "$ref": "./examples/RemoveManagementGroupSubscription.json" } } } }, "/providers/Microsoft.Management/operations": { "get": { + "operationId": "Operations_List", "tags": [ "Operations" ], - "operationId": "Operations_List", - "description": "Lists all of the available Management REST API operations.", + "description": "List the operations for the provider", "parameters": [ { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/OperationListResult" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/OperationListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { "List Operations": { "$ref": "./examples/ListOperations.json" } - } - } - }, - "/providers/Microsoft.Management/checkNameAvailability": { - "post": { - "tags": [ - "CheckNameAvailability" - ], - "operationId": "CheckNameAvailability", - "description": "Checks if the specified management group name is valid and unique", - "parameters": [ - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/CheckNameAvailabilityParameter" - } - ], - "responses": { - "200": { - "description": "OK. The request has succeeded.", - "schema": { - "$ref": "#/definitions/CheckNameAvailabilityResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "CheckManagementGroupNameAvailability": { - "$ref": "./examples/CheckManagementGroupNameAvailability.json" - } - } - } - }, - "/providers/Microsoft.Management/getEntities": { - "post": { - "tags": [ - "Entities" - ], - "operationId": "Entities_List", - "description": "List all entities (Management Groups, Subscriptions, etc.) for the authenticated user.\n", - "parameters": [ - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SkipTokenParameter" - }, - { - "$ref": "#/parameters/SkipParameter" - }, - { - "$ref": "#/parameters/TopParameter" - }, - { - "$ref": "#/parameters/SelectParameter" - }, - { - "$ref": "#/parameters/SearchParameter" - }, - { - "$ref": "#/parameters/EntityFilterParameter" - }, - { - "$ref": "#/parameters/EntityViewParameter" - }, - { - "$ref": "#/parameters/GroupNameParameter" - }, - { - "$ref": "#/parameters/CacheControlHeader" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/EntityListResult" - } - }, - "default": { - "description": "Error", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } }, "x-ms-pageable": { "nextLinkName": "nextLink" - }, - "x-ms-examples": { - "GetEntities": { - "$ref": "./examples/GetEntities.json" - } } } }, "/providers/Microsoft.Management/startTenantBackfill": { "post": { - "tags": [ - "TenantBackfill" - ], "operationId": "StartTenantBackfill", "description": "Starts backfilling subscriptions for the Tenant.", "parameters": [ { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TenantBackfillStatusResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -860,27 +1163,24 @@ }, "/providers/Microsoft.Management/tenantBackfillStatus": { "post": { - "tags": [ - "TenantBackfill" - ], "operationId": "TenantBackfillStatus", "description": "Gets tenant backfill status", "parameters": [ { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { - "description": "OK. The request has succeeded.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/TenantBackfillStatusResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -893,510 +1193,171 @@ } }, "definitions": { - "ErrorResponse": { - "description": "The error object.", - "properties": { - "error": { - "title": "Error", - "$ref": "#/definitions/ErrorDetails" - } - } - }, - "ErrorDetails": { - "description": "The details of the error.", - "properties": { - "code": { - "description": "One of a server-defined set of error codes.", - "type": "string" - }, - "message": { - "description": "A human-readable representation of the error.", - "type": "string" - }, - "details": { - "description": "A human-readable representation of the error's details.", - "type": "string" - } - } - }, - "Operation": { - "description": "Operation supported by the Microsoft.Management resource provider.", + "AzureAsyncOperationResults": { "type": "object", + "description": "The results of Azure-AsyncOperation.", "properties": { - "name": { - "description": "Operation name: {provider}/{resource}/{operation}.", + "id": { "type": "string", + "description": "The fully qualified ID for the management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000", "readOnly": true }, - "display": { - "title": "Display", - "$ref": "#/definitions/OperationDisplayProperties" - } - } - }, - "OperationDisplayProperties": { - "description": "The object that represents the operation.", - "properties": { - "provider": { - "description": "The name of the provider.", + "type": { "type": "string", + "description": "The type of the resource. For example, Microsoft.Management/managementGroups", "readOnly": true }, - "resource": { - "description": "The resource on which the operation is performed.", + "name": { "type": "string", + "description": "The name of the management group. For example, 00000000-0000-0000-0000-000000000000", "readOnly": true }, - "operation": { - "description": "The operation that can be performed.", + "status": { "type": "string", + "description": "The current status of the asynchronous operation performed . For example, Running, Succeeded, Failed", "readOnly": true }, - "description": { - "description": "Operation description.", - "type": "string", - "readOnly": true + "properties": { + "$ref": "#/definitions/ManagementGroupInfoProperties", + "description": "The generic properties of a management group.", + "x-ms-client-flatten": true } } }, - "OperationListResult": { - "description": "Describes the result of the request to list Microsoft.Management operations.", + "CheckNameAvailabilityRequest": { + "type": "object", + "description": "Management group name availability check parameters.", "properties": { - "value": { - "description": "List of operations supported by the Microsoft.Management resource provider.", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/Operation" - }, - "x-ms-identifiers": [ - "name" - ] + "name": { + "type": "string", + "description": "the name to check for availability" }, - "nextLink": { - "description": "URL to get the next set of operation list results if there are any.", + "type": { "type": "string", - "readOnly": true + "description": "fully qualified resource type which includes provider namespace", + "enum": [ + "Microsoft.Management/managementGroups" + ], + "x-ms-enum": { + "modelAsString": false + } } } }, "CheckNameAvailabilityResult": { + "type": "object", "description": "Describes the result of the request to check management group name availability.", "properties": { "nameAvailable": { - "description": "Required. True indicates name is valid and available. False indicates the name is invalid, unavailable, or both.", "type": "boolean", + "description": "Required. True indicates name is valid and available. False indicates the name is invalid, unavailable, or both.", "readOnly": true }, "reason": { + "$ref": "#/definitions/Reason", "description": "Required if nameAvailable == false. Invalid indicates the name provided does not match the resource provider's naming requirements (incorrect length, unsupported characters, etc.) AlreadyExists indicates that the name is already in use and is therefore unavailable.", - "type": "string", - "enum": [ - "Invalid", - "AlreadyExists" - ], - "x-ms-enum": { - "name": "Reason", - "modelAsString": false, - "values": [ - { - "value": "Invalid" - }, - { - "value": "AlreadyExists" - } - ] - }, "readOnly": true }, "message": { - "description": "Required if nameAvailable == false. Localized. If reason == invalid, provide the user with the reason why the given name is invalid, and provide the resource naming requirements so that the user can select a valid name. If reason == AlreadyExists, explain that is already in use, and direct them to select a different name.", "type": "string", + "description": "Required if nameAvailable == false. Localized. If reason == invalid, provide the user with the reason why the given name is invalid, and provide the resource naming requirements so that the user can select a valid name. If reason == AlreadyExists, explain that is already in use, and direct them to select a different name.", "readOnly": true } } }, - "TenantBackfillStatusResult": { - "description": "The tenant backfill status", + "CreateManagementGroupChildInfo": { + "type": "object", + "description": "The child information of a management group used during creation.", "properties": { - "tenantId": { + "type": { + "$ref": "#/definitions/ManagementGroupChildType", + "description": "The fully qualified resource type which includes provider namespace (e.g. Microsoft.Management/managementGroups)", + "readOnly": true + }, + "id": { "type": "string", - "description": "The AAD Tenant ID associated with the management group. For example, 00000000-0000-0000-0000-000000000000", + "description": "The fully qualified ID for the child resource (management group or subscription). For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000", "readOnly": true }, - "status": { - "description": "The status of the Tenant Backfill", + "name": { "type": "string", - "enum": [ - "NotStarted", - "NotStartedButGroupsExist", - "Started", - "Failed", - "Cancelled", - "Completed" - ], - "x-ms-enum": { - "name": "Status", - "modelAsString": false, - "values": [ - { - "value": "NotStarted" - }, - { - "value": "NotStartedButGroupsExist" - }, - { - "value": "Started" - }, - { - "value": "Failed" - }, - { - "value": "Cancelled" - }, - { - "value": "Completed" - } - ] - }, + "description": "The name of the child entity.", "readOnly": true - } - } - }, - "ManagementGroupListResult": { - "description": "Describes the result of the request to list management groups.", - "properties": { - "value": { - "description": "The list of management groups.", - "type": "array", - "items": { - "$ref": "#/definitions/ManagementGroupInfo" - } }, - "@nextLink": { - "description": "The URL to use for getting the next set of results.", + "displayName": { "type": "string", + "description": "The friendly name of the child resource.", + "readOnly": true + }, + "children": { + "type": "array", + "description": "The list of children.", + "items": { + "$ref": "#/definitions/CreateManagementGroupChildInfo" + }, "readOnly": true } } }, - "ManagementGroupInfo": { - "description": "The management group resource.", - "properties": { - "id": { - "type": "string", - "description": "The fully qualified ID for the management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000", - "readOnly": true - }, - "type": { - "type": "string", - "description": "The type of the resource. For example, Microsoft.Management/managementGroups", - "readOnly": true - }, - "name": { - "type": "string", - "description": "The name of the management group. For example, 00000000-0000-0000-0000-000000000000", - "readOnly": true - }, - "properties": { - "x-ms-client-flatten": true, - "title": "Properties", - "$ref": "#/definitions/ManagementGroupInfoProperties" - } - } - }, - "ManagementGroupInfoProperties": { - "description": "The generic properties of a management group.", + "CreateManagementGroupDetails": { "type": "object", + "description": "The details of a management group used during creation.", "properties": { - "tenantId": { - "type": "string", - "description": "The AAD Tenant ID associated with the management group. For example, 00000000-0000-0000-0000-000000000000" - }, - "displayName": { - "type": "string", - "description": "The friendly name of the management group." - } - } - }, - "ListSubscriptionUnderManagementGroup": { - "description": "The details of all subscriptions under management group.", - "properties": { - "value": { - "description": "The list of subscriptions.", - "type": "array", - "items": { - "$ref": "#/definitions/SubscriptionUnderManagementGroup" - } - }, - "nextLink": { - "description": "The URL to use for getting the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "SubscriptionUnderManagementGroup": { - "description": "The details of subscription under management group.", - "x-ms-azure-resource": true, - "properties": { - "id": { - "type": "string", - "description": "The fully qualified ID for the subscription. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000/subscriptions/0000000-0000-0000-0000-000000000001", + "version": { + "type": "integer", + "format": "int32", + "description": "The version number of the object.", "readOnly": true }, - "type": { + "updatedTime": { "type": "string", - "description": "The type of the resource. For example, Microsoft.Management/managementGroups/subscriptions", + "format": "date-time", + "description": "The date and time when this object was last updated.", "readOnly": true }, - "name": { + "updatedBy": { "type": "string", - "description": "The stringified id of the subscription. For example, 00000000-0000-0000-0000-000000000000", + "description": "The identity of the principal or process that updated the object.", "readOnly": true }, - "properties": { - "title": "Properties", - "x-ms-client-flatten": true, - "$ref": "#/definitions/SubscriptionUnderManagementGroupProperties" - } - } - }, - "SubscriptionUnderManagementGroupProperties": { - "description": "The generic properties of subscription under a management group.", - "type": "object", - "properties": { - "tenant": { - "type": "string", - "description": "The AAD Tenant ID associated with the subscription. For example, 00000000-0000-0000-0000-000000000000" - }, - "displayName": { - "type": "string", - "description": "The friendly name of the subscription." - }, "parent": { - "title": "Parent", - "$ref": "#/definitions/DescendantParentGroupInfo", - "x-nullable": true - }, - "state": { - "type": "string", - "description": "The state of the subscription." - } - } - }, - "ManagementGroup": { - "description": "The management group details.", - "x-ms-azure-resource": true, - "properties": { - "id": { - "type": "string", - "description": "The fully qualified ID for the management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000", - "readOnly": true - }, - "type": { - "type": "string", - "description": "The type of the resource. For example, Microsoft.Management/managementGroups", - "readOnly": true - }, - "name": { - "type": "string", - "description": "The name of the management group. For example, 00000000-0000-0000-0000-000000000000", - "readOnly": true - }, - "properties": { - "title": "Properties", - "x-ms-client-flatten": true, - "$ref": "#/definitions/ManagementGroupProperties" + "$ref": "#/definitions/CreateParentGroupInfo", + "description": "(Optional) The ID of the parent management group used during creation." } } }, - "ManagementGroupProperties": { - "description": "The generic properties of a management group.", + "CreateManagementGroupProperties": { "type": "object", + "description": "The generic properties of a management group used during creation.", "properties": { "tenantId": { "type": "string", - "description": "The AAD Tenant ID associated with the management group. For example, 00000000-0000-0000-0000-000000000000" + "description": "The AAD Tenant ID associated with the management group. For example, 00000000-0000-0000-0000-000000000000", + "readOnly": true }, "displayName": { "type": "string", - "description": "The friendly name of the management group." + "description": "The friendly name of the management group. If no value is passed then this field will be set to the groupId.", + "x-nullable": true }, "details": { - "title": "Details", - "$ref": "#/definitions/ManagementGroupDetails" + "$ref": "#/definitions/CreateManagementGroupDetails", + "description": "The details of a management group used during creation." }, "children": { - "description": "The list of children.", - "x-nullable": true, "type": "array", - "items": { - "$ref": "#/definitions/ManagementGroupChildInfo" - } - } - } - }, - "ManagementGroupDetails": { - "description": "The details of a management group.", - "type": "object", - "properties": { - "version": { - "type": "number", - "format": "int32", - "description": "The version number of the object." - }, - "updatedTime": { - "type": "string", - "format": "date-time", - "description": "The date and time when this object was last updated." - }, - "updatedBy": { - "type": "string", - "description": "The identity of the principal or process that updated the object." - }, - "parent": { - "title": "Parent", - "$ref": "#/definitions/ParentGroupInfo" - }, - "path": { - "description": "The path from the root to the current group.", - "x-nullable": true, - "type": "array", - "items": { - "$ref": "#/definitions/ManagementGroupPathElement" - }, - "x-ms-identifiers": [ - "name" - ] - }, - "managementGroupAncestors": { - "description": "The ancestors of the management group.", - "x-nullable": true, - "type": "array", - "items": { - "type": "string" - } - }, - "managementGroupAncestorsChain": { - "description": "The ancestors of the management group displayed in reversed order, from immediate parent to the root.", - "x-nullable": true, - "type": "array", - "items": { - "$ref": "#/definitions/ManagementGroupPathElement" - }, - "x-ms-identifiers": [ - "name" - ] - } - } - }, - "ManagementGroupChildInfo": { - "description": "The child information of a management group.", - "properties": { - "type": { - "title": "The type of child resource.", - "$ref": "#/definitions/ManagementGroupChildType", - "description": "The fully qualified resource type which includes provider namespace (e.g. Microsoft.Management/managementGroups)" - }, - "id": { - "type": "string", - "description": "The fully qualified ID for the child resource (management group or subscription). For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000" - }, - "name": { - "type": "string", - "description": "The name of the child entity." - }, - "displayName": { - "type": "string", - "description": "The friendly name of the child resource." - }, - "children": { "description": "The list of children.", - "type": "array", + "x-nullable": true, "items": { - "$ref": "#/definitions/ManagementGroupChildInfo" - } - } - } - }, - "ManagementGroupPathElement": { - "description": "A path element of a management group ancestors.", - "properties": { - "name": { - "type": "string", - "description": "The name of the group." - }, - "displayName": { - "type": "string", - "description": "The friendly name of the group." - } - } - }, - "ParentGroupInfo": { - "description": "(Optional) The ID of the parent management group.", - "properties": { - "id": { - "type": "string", - "description": "The fully qualified ID for the parent management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000" - }, - "name": { - "type": "string", - "description": "The name of the parent management group" - }, - "displayName": { - "type": "string", - "description": "The friendly name of the parent management group." - } - } - }, - "ManagementGroupChildType": { - "type": "string", - "enum": [ - "Microsoft.Management/managementGroups", - "/subscriptions" - ], - "x-ms-enum": { - "name": "ManagementGroupChildType", - "modelAsString": false, - "values": [ - { - "value": "Microsoft.Management/managementGroups" + "$ref": "#/definitions/CreateManagementGroupChildInfo" }, - { - "value": "/subscriptions" - } - ] - }, - "description": "The type of child resource." - }, - "OperationResults": { - "description": "The results of an asynchronous operation.", - "properties": { - "id": { - "type": "string", - "description": "The fully qualified ID for the management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000", - "readOnly": true - }, - "type": { - "type": "string", - "description": "The type of the resource. For example, Microsoft.Management/managementGroups", - "readOnly": true - }, - "name": { - "type": "string", - "description": "The name of the management group. For example, 00000000-0000-0000-0000-000000000000", "readOnly": true - }, - "properties": { - "title": "Properties", - "x-ms-client-flatten": true, - "$ref": "#/definitions/ManagementGroupInfoProperties" } } }, - "AzureAsyncOperationResults": { - "description": "The results of Azure-AsyncOperation.", + "CreateManagementGroupRequest": { + "type": "object", + "description": "Management group creation parameters.", "properties": { "id": { "type": "string", @@ -1410,55 +1371,19 @@ }, "name": { "type": "string", - "description": "The name of the management group. For example, 00000000-0000-0000-0000-000000000000", - "readOnly": true - }, - "status": { - "type": "string", - "description": "The current status of the asynchronous operation performed . For example, Running, Succeeded, Failed", - "readOnly": true - }, - "properties": { - "title": "Properties", - "x-ms-client-flatten": true, - "$ref": "#/definitions/ManagementGroupInfoProperties" - } - } - }, - "HierarchySettings": { - "description": "Settings defined at the Management Group scope.", - "x-ms-azure-resource": true, - "properties": { - "id": { - "type": "string", - "description": "The fully qualified ID for the settings object. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000/settings/default.", - "readOnly": true - }, - "type": { - "type": "string", - "description": "The type of the resource. For example, Microsoft.Management/managementGroups/settings.", - "readOnly": true - }, - "name": { - "type": "string", - "description": "The name of the object. In this case, default.", - "readOnly": true + "description": "The name of the management group. For example, 00000000-0000-0000-0000-000000000000" }, "properties": { - "title": "Properties", - "x-ms-client-flatten": true, - "$ref": "#/definitions/HierarchySettingsProperties" + "$ref": "#/definitions/CreateManagementGroupProperties", + "description": "The generic properties of a management group used during creation.", + "x-ms-client-flatten": true } } }, - "HierarchySettingsProperties": { - "description": "The generic properties of hierarchy settings.", + "CreateOrUpdateSettingsProperties": { "type": "object", + "description": "The properties of the request to create or update Management Group settings", "properties": { - "tenantId": { - "type": "string", - "description": "The AAD Tenant ID associated with the hierarchy settings. For example, 00000000-0000-0000-0000-000000000000" - }, "requireAuthorizationForGroupCreation": { "type": "boolean", "description": "Indicates whether RBAC access is required upon group creation under the root Management Group. If set to true, user will require Microsoft.Management/managementGroups/write action on the root Management Group scope in order to create new Groups directly under the root. This will prevent new users from creating new Management Groups, unless they are given access." @@ -1469,106 +1394,52 @@ } } }, - "HierarchySettingsList": { - "description": "Lists all hierarchy settings.", - "properties": { - "value": { - "description": "The list of hierarchy settings.", - "type": "array", - "items": { - "$ref": "#/definitions/HierarchySettingsInfo" - } - }, - "@nextLink": { - "description": "The URL to use for getting the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "HierarchySettingsInfo": { - "description": "The hierarchy settings resource.", - "properties": { - "id": { - "type": "string", - "description": "The fully qualified ID for the settings object. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000/settings/default.", - "readOnly": true - }, - "type": { - "type": "string", - "description": "The type of the resource. For example, Microsoft.Management/managementGroups/settings.", - "readOnly": true - }, - "name": { - "type": "string", - "description": "The name of the object. In this case, default.", - "readOnly": true - }, - "properties": { - "x-ms-client-flatten": true, - "title": "Properties", - "$ref": "#/definitions/HierarchySettingsProperties" - } - } - }, "CreateOrUpdateSettingsRequest": { - "description": "Parameters for creating or updating Management Group settings", "type": "object", - "x-ms-azure-resource": true, + "description": "Parameters for creating or updating Management Group settings", "properties": { "properties": { - "title": "Properties", - "x-ms-client-flatten": true, - "$ref": "#/definitions/CreateOrUpdateSettingsProperties" - } - } - }, - "CreateOrUpdateSettingsProperties": { - "description": "The properties of the request to create or update Management Group settings", - "type": "object", - "x-ms-azure-resource": true, - "properties": { - "requireAuthorizationForGroupCreation": { - "type": "boolean", - "description": "Indicates whether RBAC access is required upon group creation under the root Management Group. If set to true, user will require Microsoft.Management/managementGroups/write action on the root Management Group scope in order to create new Groups directly under the root. This will prevent new users from creating new Management Groups, unless they are given access." - }, - "defaultManagementGroup": { - "type": "string", - "description": "Settings that sets the default Management Group under which new subscriptions get added in this tenant. For example, /providers/Microsoft.Management/managementGroups/defaultGroup" + "$ref": "#/definitions/CreateOrUpdateSettingsProperties", + "description": "The properties of the request to create or update Management Group settings", + "x-ms-client-flatten": true } } }, - "DescendantListResult": { - "description": "Describes the result of the request to view descendants.", + "CreateParentGroupInfo": { + "type": "object", + "description": "(Optional) The ID of the parent management group used during creation.", "properties": { - "value": { - "description": "The list of descendants.", - "type": "array", - "items": { - "$ref": "#/definitions/DescendantInfo" - } + "id": { + "type": "string", + "description": "The fully qualified ID for the parent management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000" }, - "nextLink": { - "description": "The URL to use for getting the next set of results.", + "name": { + "type": "string", + "description": "The name of the parent management group", + "readOnly": true + }, + "displayName": { "type": "string", + "description": "The friendly name of the parent management group.", "readOnly": true } } }, "DescendantInfo": { + "type": "object", "description": "The descendant.", "properties": { "id": { "type": "string", "description": "The fully qualified ID for the descendant. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000 or /subscriptions/0000000-0000-0000-0000-000000000000", - "readOnly": true, - "x-nullable": true + "x-nullable": true, + "readOnly": true }, "type": { "type": "string", "description": "The type of the resource. For example, Microsoft.Management/managementGroups or /subscriptions", - "readOnly": true, - "x-nullable": true + "x-nullable": true, + "readOnly": true }, "name": { "type": "string", @@ -1576,16 +1447,16 @@ "readOnly": true }, "properties": { - "title": "Properties", - "x-ms-client-flatten": true, + "$ref": "#/definitions/DescendantInfoProperties", + "description": "The generic properties of an descendant.", "x-nullable": true, - "$ref": "#/definitions/DescendantInfoProperties" + "x-ms-client-flatten": true } } }, "DescendantInfoProperties": { - "description": "The generic properties of an descendant.", "type": "object", + "description": "The generic properties of an descendant.", "properties": { "displayName": { "type": "string", @@ -1593,57 +1464,58 @@ "x-nullable": true }, "parent": { - "title": "Parent", "$ref": "#/definitions/DescendantParentGroupInfo", + "description": "The ID of the parent management group.", "x-nullable": true } } }, - "DescendantParentGroupInfo": { - "description": "The ID of the parent management group.", - "properties": { - "id": { - "type": "string", - "description": "The fully qualified ID for the parent management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000" - } - } - }, - "EntityListResult": { - "description": "Describes the result of the request to view entities.", + "DescendantListResult": { + "type": "object", + "description": "Paged collection of DescendantInfo items", "properties": { "value": { - "description": "The list of entities.", "type": "array", + "description": "The DescendantInfo items on this page", "items": { - "$ref": "#/definitions/EntityInfo" + "$ref": "#/definitions/DescendantInfo" } }, - "count": { - "description": "Total count of records that match the filter", - "type": "integer", - "readOnly": true - }, "nextLink": { - "description": "The URL to use for getting the next set of results.", "type": "string", - "readOnly": true + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "DescendantParentGroupInfo": { + "type": "object", + "description": "The ID of the parent management group.", + "properties": { + "id": { + "type": "string", + "description": "The fully qualified ID for the parent management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000" } } }, "EntityInfo": { + "type": "object", "description": "The entity.", "properties": { "id": { "type": "string", "description": "The fully qualified ID for the entity. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000", - "readOnly": true, - "x-nullable": true + "x-nullable": true, + "readOnly": true }, "type": { "type": "string", "description": "The type of the resource. For example, Microsoft.Management/managementGroups", - "readOnly": true, - "x-nullable": true + "x-nullable": true, + "readOnly": true }, "name": { "type": "string", @@ -1651,16 +1523,16 @@ "readOnly": true }, "properties": { - "title": "Properties", - "x-ms-client-flatten": true, + "$ref": "#/definitions/EntityInfoProperties", + "description": "The generic properties of an entity.", "x-nullable": true, - "$ref": "#/definitions/EntityInfoProperties" + "x-ms-client-flatten": true } } }, "EntityInfoProperties": { - "description": "The generic properties of an entity.", "type": "object", + "description": "The generic properties of an entity.", "properties": { "tenantId": { "type": "string", @@ -1673,35 +1545,36 @@ "x-nullable": true }, "parent": { - "title": "Parent", "$ref": "#/definitions/EntityParentGroupInfo", + "description": "(Optional) The ID of the parent management group.", "x-nullable": true }, "permissions": { - "title": "Permissions", - "x-nullable": true, - "$ref": "#/definitions/Permissions" + "$ref": "#/definitions/Permissions", + "description": "The users specific permissions to this item.", + "x-nullable": true }, "inheritedPermissions": { - "title": "Inherited Permissions", - "x-nullable": true, - "$ref": "#/definitions/Permissions" + "$ref": "#/definitions/Permissions", + "description": "The users specific permissions to this item.", + "x-nullable": true }, "numberOfDescendants": { - "title": "Number of Descendants", "type": "integer", + "format": "int32", + "description": "Number of Descendants", "x-nullable": true }, "numberOfChildren": { - "title": "Number of Children", - "description": "Number of children is the number of Groups and Subscriptions that are exactly one level underneath the current Group.", "type": "integer", + "format": "int32", + "description": "Number of children is the number of Groups and Subscriptions that are exactly one level underneath the current Group.", "x-nullable": true }, "numberOfChildGroups": { - "title": "Number of Child Groups", - "description": "Number of children is the number of Groups that are exactly one level underneath the current Group.", "type": "integer", + "format": "int32", + "description": "Number of children is the number of Groups that are exactly one level underneath the current Group.", "x-nullable": true }, "parentDisplayNameChain": { @@ -1722,7 +1595,34 @@ } } }, + "EntityListResult": { + "type": "object", + "description": "Describes the result of the request to view entities.", + "properties": { + "value": { + "type": "array", + "description": "The EntityInfo items on this page", + "items": { + "$ref": "#/definitions/EntityInfo" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Total count of records that match the filter." + } + }, + "required": [ + "value" + ] + }, "EntityParentGroupInfo": { + "type": "object", "description": "(Optional) The ID of the parent management group.", "properties": { "id": { @@ -1731,74 +1631,230 @@ } } }, - "EntityHierarchyItem": { - "description": "The management group details for the hierarchy view.", - "x-ms-azure-resource": true, + "HierarchySettings": { + "type": "object", + "description": "Settings defined at the Management Group scope.", + "properties": { + "properties": { + "$ref": "#/definitions/HierarchySettingsProperties", + "description": "The generic properties of hierarchy settings.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ] + }, + "HierarchySettingsInfo": { + "type": "object", + "description": "The hierarchy settings resource.", "properties": { "id": { "type": "string", - "description": "The fully qualified ID for the management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000", + "description": "The fully qualified ID for the settings object. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000/settings/default.", "readOnly": true }, "type": { "type": "string", - "description": "The type of the resource. For example, Microsoft.Management/managementGroups", + "description": "The type of the resource. For example, Microsoft.Management/managementGroups/settings.", "readOnly": true }, "name": { "type": "string", - "description": "The name of the management group. For example, 00000000-0000-0000-0000-000000000000", + "description": "The name of the object. In this case, default.", "readOnly": true }, "properties": { - "title": "Properties", - "x-ms-client-flatten": true, - "$ref": "#/definitions/EntityHierarchyItemProperties" + "$ref": "#/definitions/HierarchySettingsProperties", + "description": "The generic properties of hierarchy settings.", + "x-ms-client-flatten": true } } }, - "EntityHierarchyItemProperties": { - "description": "The generic properties of a management group.", + "HierarchySettingsList": { "type": "object", + "description": "Lists all hierarchy settings.", "properties": { - "displayName": { + "value": { + "type": "array", + "description": "The list of hierarchy settings.", + "items": { + "$ref": "#/definitions/HierarchySettingsInfo" + } + }, + "@nextLink": { "type": "string", - "description": "The friendly name of the management group." + "description": "The URL to use for getting the next set of results.", + "readOnly": true, + "x-ms-client-name": "NextLink" + } + } + }, + "HierarchySettingsProperties": { + "type": "object", + "description": "The generic properties of hierarchy settings.", + "properties": { + "tenantId": { + "type": "string", + "description": "The AAD Tenant ID associated with the hierarchy settings. For example, 00000000-0000-0000-0000-000000000000" }, - "permissions": { - "title": "Permissions", - "$ref": "#/definitions/Permissions" + "requireAuthorizationForGroupCreation": { + "type": "boolean", + "description": "Indicates whether RBAC access is required upon group creation under the root Management Group. If set to true, user will require Microsoft.Management/managementGroups/write action on the root Management Group scope in order to create new Groups directly under the root. This will prevent new users from creating new Management Groups, unless they are given access." + }, + "defaultManagementGroup": { + "type": "string", + "description": "Settings that sets the default Management Group under which new subscriptions get added in this tenant. For example, /providers/Microsoft.Management/managementGroups/defaultGroup" + } + } + }, + "ListSubscriptionUnderManagementGroup": { + "type": "object", + "description": "The details of all subscriptions under management group.", + "properties": { + "value": { + "type": "array", + "description": "The SubscriptionUnderManagementGroup items on this page", + "items": { + "$ref": "#/definitions/SubscriptionUnderManagementGroup" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ManagementGroup": { + "type": "object", + "description": "The management group details.", + "properties": { + "properties": { + "$ref": "#/definitions/ManagementGroupProperties", + "description": "The generic properties of a management group.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ] + }, + "ManagementGroupChildInfo": { + "type": "object", + "description": "The child information of a management group.", + "properties": { + "type": { + "$ref": "#/definitions/ManagementGroupChildType", + "description": "The fully qualified resource type which includes provider namespace (e.g. Microsoft.Management/managementGroups)" + }, + "id": { + "type": "string", + "description": "The fully qualified ID for the child resource (management group or subscription). For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000" + }, + "name": { + "type": "string", + "description": "The name of the child entity." + }, + "displayName": { + "type": "string", + "description": "The friendly name of the child resource." }, "children": { "type": "array", "description": "The list of children.", - "x-nullable": true, "items": { - "$ref": "#/definitions/EntityHierarchyItem" + "$ref": "#/definitions/ManagementGroupChildInfo" } } } }, - "PatchManagementGroupRequest": { - "description": "Management group patch parameters.", + "ManagementGroupChildType": { + "type": "string", + "description": "The type of child resource.", + "enum": [ + "Microsoft.Management/managementGroups", + "/subscriptions" + ], + "x-ms-enum": { + "name": "ManagementGroupChildType", + "modelAsString": false, + "values": [ + { + "name": "Microsoft.Management/managementGroups", + "value": "Microsoft.Management/managementGroups", + "description": "Microsoft.Management/managementGroups" + }, + { + "name": "/subscriptions", + "value": "/subscriptions", + "description": "/subscriptions" + } + ] + } + }, + "ManagementGroupDetails": { "type": "object", + "description": "The details of a management group.", "properties": { - "displayName": { + "version": { + "type": "integer", + "format": "int32", + "description": "The version number of the object." + }, + "updatedTime": { "type": "string", - "description": "The friendly name of the management group.", - "x-nullable": true + "format": "date-time", + "description": "The date and time when this object was last updated." + }, + "updatedBy": { + "type": "string", + "description": "The identity of the principal or process that updated the object." + }, + "parent": { + "$ref": "#/definitions/ParentGroupInfo", + "description": "(Optional) The ID of the parent management group." + }, + "path": { + "type": "array", + "description": "The path from the root to the current group.", + "items": { + "$ref": "#/definitions/ManagementGroupPathElement" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "managementGroupAncestors": { + "type": "array", + "description": "The ancestors of the management group.", + "x-nullable": true, + "items": { + "type": "string" + } }, - "parentGroupId": { - "type": "string", - "description": "(Optional) The fully qualified ID for the parent management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000", - "x-nullable": true + "managementGroupAncestorsChain": { + "type": "array", + "description": "The ancestors of the management group displayed in reversed order, from immediate parent to the root.", + "items": { + "$ref": "#/definitions/ManagementGroupPathElement" + }, + "x-ms-identifiers": [ + "name" + ] } } }, - "CreateManagementGroupRequest": { - "description": "Management group creation parameters.", + "ManagementGroupInfo": { "type": "object", - "x-ms-azure-resource": true, + "description": "The management group resource.", "properties": { "id": { "type": "string", @@ -1807,112 +1863,97 @@ }, "type": { "type": "string", - "description": "The type of the resource. For example, Microsoft.Management/managementGroups", + "description": "The type of the resource. For example, Microsoft.Management/managementGroups", "readOnly": true }, "name": { "type": "string", - "description": "The name of the management group. For example, 00000000-0000-0000-0000-000000000000" + "description": "The name of the management group. For example, 00000000-0000-0000-0000-000000000000", + "readOnly": true }, "properties": { - "title": "Properties", - "x-ms-client-flatten": true, - "$ref": "#/definitions/CreateManagementGroupProperties" + "$ref": "#/definitions/ManagementGroupInfoProperties", + "description": "The generic properties of a management group.", + "x-ms-client-flatten": true } } }, - "CreateManagementGroupProperties": { - "description": "The generic properties of a management group used during creation.", + "ManagementGroupInfoProperties": { "type": "object", + "description": "The generic properties of a management group.", "properties": { "tenantId": { "type": "string", - "readOnly": true, "description": "The AAD Tenant ID associated with the management group. For example, 00000000-0000-0000-0000-000000000000" }, "displayName": { "type": "string", - "description": "The friendly name of the management group. If no value is passed then this field will be set to the groupId.", - "x-nullable": true - }, - "details": { - "title": "Details", - "$ref": "#/definitions/CreateManagementGroupDetails" - }, - "children": { - "description": "The list of children.", - "readOnly": true, - "x-nullable": true, + "description": "The friendly name of the management group." + } + } + }, + "ManagementGroupListResult": { + "type": "object", + "description": "Describes the result of the request to list management groups.", + "properties": { + "value": { "type": "array", + "description": "The list of management groups.", "items": { - "$ref": "#/definitions/CreateManagementGroupChildInfo" + "$ref": "#/definitions/ManagementGroupInfo" } + }, + "@nextLink": { + "type": "string", + "description": "The URL to use for getting the next set of results.", + "readOnly": true, + "x-ms-client-name": "NextLink" } } }, - "CreateManagementGroupDetails": { - "description": "The details of a management group used during creation.", + "ManagementGroupPathElement": { "type": "object", + "description": "A path element of a management group ancestors.", "properties": { - "version": { - "type": "number", - "readOnly": true, - "format": "int32", - "description": "The version number of the object." - }, - "updatedTime": { + "name": { "type": "string", - "readOnly": true, - "format": "date-time", - "description": "The date and time when this object was last updated." + "description": "The name of the group." }, - "updatedBy": { + "displayName": { "type": "string", - "readOnly": true, - "description": "The identity of the principal or process that updated the object." - }, - "parent": { - "title": "Parent", - "$ref": "#/definitions/CreateParentGroupInfo" + "description": "The friendly name of the group." } } }, - "CreateManagementGroupChildInfo": { - "description": "The child information of a management group used during creation.", + "ManagementGroupProperties": { + "type": "object", + "description": "The generic properties of a management group.", "properties": { - "type": { - "title": "The type of child resource.", - "readOnly": true, - "$ref": "#/definitions/ManagementGroupChildType", - "description": "The fully qualified resource type which includes provider namespace (e.g. Microsoft.Management/managementGroups)" - }, - "id": { - "type": "string", - "readOnly": true, - "description": "The fully qualified ID for the child resource (management group or subscription). For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000" - }, - "name": { + "tenantId": { "type": "string", - "readOnly": true, - "description": "The name of the child entity." + "description": "The AAD Tenant ID associated with the management group. For example, 00000000-0000-0000-0000-000000000000" }, "displayName": { "type": "string", - "readOnly": true, - "description": "The friendly name of the child resource." + "description": "The friendly name of the management group." + }, + "details": { + "$ref": "#/definitions/ManagementGroupDetails", + "description": "The details of a management group." }, "children": { - "description": "The list of children.", - "readOnly": true, "type": "array", + "description": "The list of children.", + "x-nullable": true, "items": { - "$ref": "#/definitions/CreateManagementGroupChildInfo" + "$ref": "#/definitions/ManagementGroupChildInfo" } } } }, - "CreateParentGroupInfo": { - "description": "(Optional) The ID of the parent management group used during creation.", + "ParentGroupInfo": { + "type": "object", + "description": "(Optional) The ID of the parent management group.", "properties": { "id": { "type": "string", @@ -1920,18 +1961,31 @@ }, "name": { "type": "string", - "readOnly": true, "description": "The name of the parent management group" }, "displayName": { "type": "string", - "readOnly": true, "description": "The friendly name of the parent management group." } } }, + "PatchManagementGroupRequest": { + "type": "object", + "description": "Management group patch parameters.", + "properties": { + "displayName": { + "type": "string", + "description": "The friendly name of the management group." + }, + "parentGroupId": { + "type": "string", + "description": "(Optional) The fully qualified ID for the parent management group. For example, /providers/Microsoft.Management/managementGroups/0000000-0000-0000-0000-000000000000" + } + } + }, "Permissions": { "type": "string", + "description": "The users specific permissions to this item.", "enum": [ "noaccess", "view", @@ -1943,237 +1997,155 @@ "modelAsString": false, "values": [ { - "value": "noaccess" + "name": "noaccess", + "value": "noaccess", + "description": "noaccess" }, { - "value": "view" + "name": "view", + "value": "view", + "description": "view" }, { - "value": "edit" + "name": "edit", + "value": "edit", + "description": "edit" }, { - "value": "delete" + "name": "delete", + "value": "delete", + "description": "delete" } ] - }, - "description": "The users specific permissions to this item." - }, - "CheckNameAvailabilityRequest": { - "description": "Management group name availability check parameters.", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "the name to check for availability" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Management/managementGroups" - ], - "x-ms-enum": { - "name": "Type", - "modelAsString": false, - "values": [ - { - "value": "Microsoft.Management/managementGroups" - } - ] - }, - "description": "fully qualified resource type which includes provider namespace" - } } - } - }, - "parameters": { - "GroupIdParameter": { - "name": "groupId", - "in": "path", - "required": true, - "type": "string", - "description": "Management Group ID.", - "x-ms-parameter-location": "method" - }, - "SubscriptionIdParameter": { - "name": "subscriptionId", - "in": "path", - "required": true, - "type": "string", - "description": "Subscription ID.", - "x-ms-parameter-location": "method" }, - "ApiVersionParameter": { - "name": "api-version", - "in": "query", - "required": true, - "type": "string", - "description": "Version of the API to be used with the client request. The current version is 2018-01-01-preview." - }, - "ExpandParameter": { - "name": "$expand", - "in": "query", - "required": false, + "Reason": { "type": "string", + "description": "Required if nameAvailable == false. Invalid indicates the name provided does not match the resource provider's naming requirements (incorrect length, unsupported characters, etc.) AlreadyExists indicates that the name is already in use and is therefore unavailable.", "enum": [ - "children", - "path", - "ancestors" + "Invalid", + "AlreadyExists" ], "x-ms-enum": { - "name": "ManagementGroupExpandType", - "modelAsString": true - }, - "x-ms-parameter-location": "method", - "description": "The $expand=children query string parameter allows clients to request inclusion of children in the response payload. $expand=path includes the path from the root group to the current group. $expand=ancestors includes the ancestor Ids of the current group." - }, - "RecurseParameter": { - "name": "$recurse", - "in": "query", - "required": false, - "type": "boolean", - "x-ms-parameter-location": "method", - "description": "The $recurse=true query string parameter allows clients to request inclusion of entire hierarchy in the response payload. Note that $expand=children must be passed up if $recurse is set to true." - }, - "CreateManagementGroupRequestParameter": { - "name": "createManagementGroupRequest", - "in": "body", - "required": true, - "description": "Management group creation parameters.", - "schema": { - "$ref": "#/definitions/CreateManagementGroupRequest" - }, - "x-ms-parameter-location": "method" - }, - "PatchGroupRequestParameter": { - "name": "patchGroupRequest", - "in": "body", - "required": true, - "description": "Management group patch parameters.", - "schema": { - "$ref": "#/definitions/PatchManagementGroupRequest" - }, - "x-ms-parameter-location": "method" - }, - "FilterParameter": { - "name": "$filter", - "in": "query", - "required": false, - "description": "A filter which allows the exclusion of subscriptions from results (i.e. '$filter=children.childType ne Subscription')", - "type": "string", - "x-ms-parameter-location": "method" - }, - "EntityFilterParameter": { - "name": "$filter", - "in": "query", - "required": false, - "description": "The filter parameter allows you to filter on the the name or display name fields. You can check for equality on the name field (e.g. name eq '{entityName}') and you can check for substrings on either the name or display name fields(e.g. contains(name, '{substringToSearch}'), contains(displayName, '{substringToSearch')). Note that the '{entityName}' and '{substringToSearch}' fields are checked case insensitively.", - "type": "string", - "x-ms-parameter-location": "method" - }, - "SelectParameter": { - "name": "$select", - "in": "query", - "required": false, - "description": "This parameter specifies the fields to include in the response. Can include any combination of Name,DisplayName,Type,ParentDisplayNameChain,ParentChain, e.g. '$select=Name,DisplayName,Type,ParentDisplayNameChain,ParentNameChain'. When specified the $select parameter can override select in $skipToken.", - "type": "string", - "x-ms-parameter-location": "method" + "name": "Reason", + "modelAsString": false, + "values": [ + { + "name": "Invalid", + "value": "Invalid", + "description": "Invalid" + }, + { + "name": "AlreadyExists", + "value": "AlreadyExists", + "description": "AlreadyExists" + } + ] + } }, - "SearchParameter": { - "name": "$search", - "in": "query", - "required": false, + "Status": { "type": "string", + "description": "The status of the Tenant Backfill", "enum": [ - "AllowedParents", - "AllowedChildren", - "ParentAndFirstLevelChildren", - "ParentOnly", - "ChildrenOnly" + "NotStarted", + "NotStartedButGroupsExist", + "Started", + "Failed", + "Cancelled", + "Completed" ], "x-ms-enum": { - "name": "EntitySearchType", - "modelAsString": true - }, - "x-ms-parameter-location": "method", - "description": "The $search parameter is used in conjunction with the $filter parameter to return three different outputs depending on the parameter passed in. \nWith $search=AllowedParents the API will return the entity info of all groups that the requested entity will be able to reparent to as determined by the user's permissions.\nWith $search=AllowedChildren the API will return the entity info of all entities that can be added as children of the requested entity.\nWith $search=ParentAndFirstLevelChildren the API will return the parent and first level of children that the user has either direct access to or indirect access via one of their descendants.\nWith $search=ParentOnly the API will return only the group if the user has access to at least one of the descendants of the group.\nWith $search=ChildrenOnly the API will return only the first level of children of the group entity info specified in $filter. The user must have direct access to the children entities or one of it's descendants for it to show up in the results." - }, - "GroupNameParameter": { - "name": "groupName", - "in": "query", - "required": false, - "description": "A filter which allows the get entities call to focus on a particular group (i.e. \"$filter=name eq 'groupName'\")", - "type": "string", - "x-ms-parameter-location": "method" - }, - "CreateOrUpdateManagementGroupSettingsRequestParameter": { - "name": "CreateTenantSettingsRequest", - "in": "body", - "required": true, - "description": "Tenant level settings request parameter.", - "schema": { - "$ref": "#/definitions/CreateOrUpdateSettingsRequest" - }, - "x-ms-parameter-location": "method" + "name": "Status", + "modelAsString": false, + "values": [ + { + "name": "NotStarted", + "value": "NotStarted", + "description": "NotStarted" + }, + { + "name": "NotStartedButGroupsExist", + "value": "NotStartedButGroupsExist", + "description": "NotStartedButGroupsExist" + }, + { + "name": "Started", + "value": "Started", + "description": "Started" + }, + { + "name": "Failed", + "value": "Failed", + "description": "Failed" + }, + { + "name": "Cancelled", + "value": "Cancelled", + "description": "Cancelled" + }, + { + "name": "Completed", + "value": "Completed", + "description": "Completed" + } + ] + } }, - "CheckNameAvailabilityParameter": { - "name": "checkNameAvailabilityRequest", - "in": "body", - "required": true, - "description": "Management group name availability check parameters.", - "schema": { - "$ref": "#/definitions/CheckNameAvailabilityRequest" + "SubscriptionUnderManagementGroup": { + "type": "object", + "description": "The details of subscription under management group.", + "properties": { + "properties": { + "$ref": "#/definitions/SubscriptionUnderManagementGroupProperties", + "description": "The generic properties of subscription under a management group.", + "x-ms-client-flatten": true + } }, - "x-ms-parameter-location": "method" - }, - "SkipParameter": { - "name": "$skip", - "in": "query", - "required": false, - "type": "integer", - "description": "Number of entities to skip over when retrieving results. Passing this in will override $skipToken.", - "x-ms-parameter-location": "method" - }, - "TopParameter": { - "name": "$top", - "in": "query", - "required": false, - "type": "integer", - "description": "Number of elements to return when retrieving results. Passing this in will override $skipToken.", - "x-ms-parameter-location": "method" - }, - "SkipTokenParameter": { - "name": "$skiptoken", - "in": "query", - "required": false, - "type": "string", - "description": "Page continuation token is only used if a previous operation returned a partial result. \nIf a previous response contains a nextLink element, the value of the nextLink element will include a token parameter that specifies a starting point to use for subsequent calls.\n", - "x-ms-parameter-location": "method" + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ] }, - "CacheControlHeader": { - "name": "Cache-Control", - "in": "header", - "default": "no-cache", - "description": "Indicates whether the request should utilize any caches. Populate the header with 'no-cache' value to bypass existing caches.", - "type": "string", - "x-ms-parameter-location": "method" + "SubscriptionUnderManagementGroupProperties": { + "type": "object", + "description": "The generic properties of subscription under a management group.", + "properties": { + "tenant": { + "type": "string", + "description": "The AAD Tenant ID associated with the subscription. For example, 00000000-0000-0000-0000-000000000000" + }, + "displayName": { + "type": "string", + "description": "The friendly name of the subscription." + }, + "parent": { + "$ref": "#/definitions/DescendantParentGroupInfo", + "description": "The ID of the parent management group.", + "x-nullable": true + }, + "state": { + "type": "string", + "description": "The state of the subscription." + } + } }, - "EntityViewParameter": { - "name": "$view", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "FullHierarchy", - "GroupsOnly", - "SubscriptionsOnly", - "Audit" - ], - "x-ms-enum": { - "name": "EntityViewParameterType", - "modelAsString": true - }, - "x-ms-parameter-location": "method", - "description": "The view parameter allows clients to filter the type of data that is returned by the getEntities call." + "TenantBackfillStatusResult": { + "type": "object", + "description": "The tenant backfill status", + "properties": { + "tenantId": { + "type": "string", + "description": "The AAD Tenant ID associated with the management group. For example, 00000000-0000-0000-0000-000000000000", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/Status", + "description": "The status of the Tenant Backfill", + "readOnly": true + } + } } - } + }, + "parameters": {} } From ceebad70d1efa8b6fac32e16bd702dae4b471af2 Mon Sep 17 00:00:00 2001 From: Zhonglei Ma Date: Fri, 12 Dec 2025 15:25:52 +0800 Subject: [PATCH 004/117] Add configuration to verify the new code generation (#39024) --- .../ews/SecretSyncController.Management/tspconfig.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/specification/ews/SecretSyncController.Management/tspconfig.yaml b/specification/ews/SecretSyncController.Management/tspconfig.yaml index 0f393756a179..a60376f3505d 100644 --- a/specification/ews/SecretSyncController.Management/tspconfig.yaml +++ b/specification/ews/SecretSyncController.Management/tspconfig.yaml @@ -45,6 +45,9 @@ options: generate-fakes: true head-as-boolean: true inject-spans: true + "@azure-typespec/http-client-csharp-mgmt": + namespace: "Azure.ResourceManager.SecretsStoreExtension" + emitter-output-dir: "{output-dir}/sdk/secretsstoreextension/{namespace}" linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" From 9259b9ba2f57f45f7d9c7233e4f33243c09176d2 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Fri, 12 Dec 2025 06:29:14 -0800 Subject: [PATCH 005/117] Add a step explicitly to verify setup (#39213) Co-authored-by: Praveen Kuttappan --- .../local-sdk-workflow.instructions.md | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/eng/common/instructions/azsdk-tools/local-sdk-workflow.instructions.md b/eng/common/instructions/azsdk-tools/local-sdk-workflow.instructions.md index 756c478f1282..507e9a6cce4b 100644 --- a/eng/common/instructions/azsdk-tools/local-sdk-workflow.instructions.md +++ b/eng/common/instructions/azsdk-tools/local-sdk-workflow.instructions.md @@ -14,7 +14,7 @@ High level steps involved: --- -## Part A: Generate SDK Locally +## Generate SDK Locally ### Step 1: Outline workflow @@ -26,9 +26,10 @@ High level steps involved: 2. Verify SDK repository 3. Validate repository path 4. Identify path to configuration file - 5. Generate SDK using `azsdk_package_generate_code` MCP tool - 6. Identify SDK project path - 7. Build/Compile SDK using `azsdk_package_build_code` MCP tool + 5. Verify setup for the selected language + 6. Generate SDK using `azsdk_package_generate_code` MCP tool + 7. Identify SDK project path + 8. Build/Compile SDK using `azsdk_package_build_code` MCP tool - Ask the user to confirm readiness to proceed. --- @@ -71,7 +72,6 @@ High level steps involved: - Check if the provided repository path exists and matches the selected SDK language repository. - If invalid → prompt user to re-enter a valid path. -- Verify setup to ensure all required tools are installed for the selected language. --- @@ -96,15 +96,20 @@ High level steps involved: --- -### Step 6: Generate SDK - +### Step 6: Verify setup for selected language **Actions**: +- Run `azsdk_verify_setup` MCP tool to ensure the local environment is correctly configured for the selected SDK language. + +--- +### Step 7: Generate SDK + +**Actions**: - Run `azsdk_package_generate_code` MCP tool to generate the SDK locally. --- -## Part B: Build / Compile SDK Locally +## Build / Compile SDK Locally ### Step 1: Identify SDK project path From 8ddf0b8379d711e33e9881f8e5cc0beb044c5b42 Mon Sep 17 00:00:00 2001 From: Praven Kuttappan <55455725+praveenkuttappan@users.noreply.github.com> Date: Fri, 12 Dec 2025 11:07:43 -0500 Subject: [PATCH 006/117] Restructure copilot instructions to move typespec and sdk generation to sub instruction files (#39171) * Restructure copilot instructions to move typespec and sdk generation instructions to sub file --- .github/copilot-instructions.md | 390 +----------------- .../github-codingagent.instructions.md | 18 + .../language-emitter.instructions.md | 35 ++ .../sdk-generation.instructions.md | 145 +++++++ .../typespec-project.instructions.md | 164 ++++++++ 5 files changed, 376 insertions(+), 376 deletions(-) create mode 100644 .github/instructions/github-codingagent.instructions.md create mode 100644 .github/instructions/language-emitter.instructions.md create mode 100644 .github/instructions/sdk-generation.instructions.md create mode 100644 .github/instructions/typespec-project.instructions.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index dc3ea24445f5..46ae46a10c58 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,171 +1,29 @@ # New TypeSpec projects -Before creating or initializing a TypeSpec project, you must know your org name, service name, and the type of service: data-plane or control-plane (ARM). +Refer to [new-typespec-project.instructions.md](./instructions/typespec-project.instructions.md) for detailed steps on: + - how to create a new TypeSpec project. + - converting a specification from swagger to typespec + - troubleshooting tsp compile errors -Then create a new project directory under the `specification//resource-manager//` or `specification//data-plane/` path, following the guidelines below. - -``` -specification/ -└── / - ├── cspell.yaml - └── resource-manager/ - ├── readme.md ß NOTE: For ARM schema validation; see bullet #2 below - └── / ß NOTE: Control-plane only (not data-plane) - └── / ß Customer-facing service name; each version gets Documentation & SDK package - ├── tspconfig.yaml ß TypeSpec files - ├── main.tsp - ├── models.tsp - ├── readme.md ß autorest readme with YAML blocks - └── examples/ ß TypeSpec example folder - └── / ß One folder per service version described in TypeSpec - └── - └── preview/ and stable/ - └── / ß One folder per service version described in OpenAPI. These folders are created and populated by compiling the TypeSpec folder for the service. - ├── - └── examples/ ß OpenAPI example folder - └── - └── / // Customer-facing service name; contents identical to above structure - └── data-plane/ - └── / // Customer-facing service name; contents identical to above structure -``` - -Use the `./specification/widget` directory as a reference for creating your own project directory. - -Only after the project directory is created according to the above guidelines may you run the `azsdk_init_typespec_project` tool to initialize the project. - -## Converting a specification from swagger to typespec - -Users can convert a specification from swagger to typespec by using `tsp-client` a CLI designed to help developers throughout various stages of typespec development. - -### Instructions for converting a specification from swagger to typespec - -1. Install the dependencies specified in the package.json at the root of this repository. Command: - -``` -npm ci -``` - -2. `tsp-client` is installed as part of the dependencies specified at the root of this repository. To convert a swagger to typespec, run the following command: `npx tsp-client convert --swagger-readme ` -3. Now that you have a newly converted typespec project, you should go through all files to verify the accuracy of the converted spec when compared to the original swagger definitions. -4. For both data plane and management plane specifications, you should update the implementation according to the information provided under the [Initial migration checklist](#initial-migration-checklist) section. - -### Initial migration checklist - -The swagger converter will not be able to accurately represent every part of every API in TypeSpec. This document outlines some common changes you may need to make to a converted TypeSpec to make it conform to your existing service API, pass validation checks, and follow best practices. - -- Avoid extensive refactoring of the converted spec. The goal is to get a working spec that can compile successfully and then iteratively improve it. - -- DO ensure your `@service` and `@server` definitions are correct in main.tsp -- DO use the built-in [url][url-type] for endpoint specification. Example: - -```tsp -@server( - "{endpoint}/widget", - "Contoso Widget APIs", - { - /** - * Supported Widget Services endpoints (protocol and hostname, for example: - * https://westus.api.widget.contoso.com). - */ - endpoint: url, - } -) -``` - -- DO ensure that you have a security definition (`@useAuth`) specified for your service. See: [Security definitions in TypeSpec][security-definitions]. The @useAuth decorator should only be defined ONCE in the entire specification above the @server definition. -- AVOID adding new namespaces. -- Make sure the versions enum is declared under the existing namespace defined in main.tsp. Avoid adding it anywhere else. Ensure the `@versioned` decorator is specified over the namespace in main.tsp. Pass the versions enum to the `@versioned` decorator. Example of a typical structure for versioning: - -```tsp -// this is the main.tsp file - - -@versioned(Versions) -namespace Contoso.WidgetManager; -/** Service api versions **/ -enum Versions { - /** The 2023-11-01 api version **/ - v2023_11_01: "2023-11-01", -} -``` - -- All models, enums, unions, and operations should be added under the main namespace declared in the project. -- Avoid having models, enums, unions, operations, and other types declared outside of a namespace. -- If any files are using any of the versioning decorators, such as `@added`, `@removed`, `@changedType`, make sure to import the `@typespec/versioning` library and add a using statement. Example: - -```tsp -import "@typespec/versioning"; - -using TypeSpec.Versioning; -``` - -- DO review all enum and union definitions and add documentation over each enum or union member. See: [Documentation in TypeSpec][docs]. Example of a properly documented enum: - -```tsp -/** The color of a widget. */ -union WidgetColor { - string, - - /** Red Widget Color */ - Red: "Red", - - /** Green Widget Color */ - Green: "Green", - - /** Blue Widget Color */ - Blue: "Blue", -} -``` - -- DO ensure that all models, properties, operations, parameters, enums, unions, and alias definitions have documentation over them. TypeSpec convention recommends using the doc comment format `/** */` to add documentation, example: - -```tsp -/** The color of a widget. */ -model Widget { - /** Widget name */ - name: string -} -``` - -- DO define your visibility decorators with the appropriate value from the Lifecycle class. -- Avoid suppressing warnings -- Operation names should be camel case -- DO use `union` instead of `enum` to define Azure enums. For more information about how to define enums for Azure services see the following documentation: [Defining enums for Azure services][no-enum]. -- DO make client customizations in a `client.tsp` file -- Avoid importing or using `@azure-tools/typespec-client-generator-core` in other files aside from client.tsp. -- DO run `tsp compile .` on your specification and make one attempt to address all warnings. Do not attempt to address warnings more than once even if they aren't resolved. -- Attempt to address any FIXME or TODO comments in the spec. If you are unable to address them, leave them untouched +# Adding Language Emitters to Existing TypeSpec Projects -#### Additional considerations +Refer to [language-emitter.instructions.md](./instructions/language-emitter.instructions.md) for detailed steps on how to add language emitters to an existing `tspconfig.yaml` file in a TypeSpec project. -- DO ensure you pull in the latest `main` from the Azure/azure-rest-api-specs repo to stay up to date with latest dependencies -- DO run `npm ci` to get a clean install of the package.json dependencies -- Avoid modifying the package.json or package-lock.json files at the root of the azure-rest-api-specs repo -- Avoid adding your own package.json or package-lock.json files in your project directory -- Avoid adding multiple tspconfig.yaml files for your service specification -- DO consult [ci-fix.md][ci-fix] for fixes to common CI errors reported +# SDK generation from TypeSpec -## Troubleshooting tsp compile errors and warnings +You must use Azure SDK MCP server to generate SDK from TypeSpec. -Examples of common errors and warnings that should be addressed after running the `tsp compile` command: +Refer to [sdk-generation.instructions.md](./instructions/sdk-generation.instructions.md) for additional instructions to generate SDK from TypeSpec. -- If you see an error with a message like: "referencing types from versioned namespace 'Azure.Core.Foundations' but didn't specify which versions with @useDependency", you should add the @useDependency decorator over each api version entry in your api versions enum. Example of a properly configured api versions enum: +# Instructions for GitHub coding agent to generate SDKs using GitHub.com -``` -/** Service api versions **/ -enum Versions { - /** The 2023-11-01 api version **/ - v2023_11_01: "2023-11-01", -} +Follow [github-codingagent.instructions.md](./instructions/github-codingagent.instructions.md) for instructions to run SDK generation using pipeline in GitHub coding agent. -``` +# Release readiness of SDK and information about the release pipeline -- If you see an invalid-ref or unknown identifier error you are most likely missing an import to the library that declares that decorator. To find supported libraries and decorators search through the documentation of the following sites: https://azure.github.io/typespec-azure/docs/intro/ and https://typespec.io/docs/ Search through the list of supported decorators, interfaces, and other types per library until you find the correct library to import and/or include a using statement in your typespec files. -- In order to address warnings raised by the @azure-tools/typespec-azure-core search through this page for relevant solutions to apply: https://azure.github.io/typespec-azure/docs/intro/ -- camelCase fixes only apply to the typespec property names, any corresponding string values you should left as is. -- String values in typespec files should be left untouched. +Run [check package readiness](../eng/common/instructions/azsdk-tools/check-package-readiness.instructions.md) to check the release readiness of an SDK package. This prompt will collect the required information from the user, execute the readiness check, and present the results. -## Up-to-date TypeSpec documentation +# Up-to-date TypeSpec documentation Follow [typespec docs](../eng/common/instructions/azsdk-tools/typespec-docs.instructions.md) to get the most up-to-date documentation for TypeSpec, including best practices for writing TypeSpec for Azure. @@ -180,223 +38,3 @@ Follow [typespec docs](../eng/common/instructions/azsdk-tools/typespec-docs.inst [url-type]: https://typespec.io/docs/language-basics/built-in-types#string-types [no-enum]: https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-enum [typespec-structure-guidelines]: ../documentation/typespec-structure-guidelines.md - -# Adding Language Emitters to Existing TypeSpec Projects - -Use this guidance whenever someone needs to add language emitters to an existing `tspconfig.yaml`, or when SDK generation fails because an emitter block is missing. - -- Decide whether the service is ARM or data-plane. -- Open the matching widget `tspconfig.yaml` template. -- Copy the entire emitter block for the requested language. -- Replace every `Widget`/`widget` token with the service name and drop the block under `options:`. - -## 1. Identify the service type - -- Path contains `/resource-manager/` or linter references `@azure-tools/typespec-azure-rulesets/resource-manager` → ARM -- Path contains `/data-plane/` or linter references `@azure-tools/typespec-azure-rulesets/data-plane` → Data plane - -## 2. Reference the official widget template - -- ARM: `specification/widget/resource-manager/Microsoft.Widget/Widget/tspconfig.yaml` -- Data plane: `specification/widget/data-plane/WidgetAnalytics/tspconfig.yaml` - -Always read the template before editing so you follow the canonical configuration. - -## 3. Copy and customize the emitter block - -- Select the entire block for the language. -- Only replace service-specific tokens (`Widget`, `widget`, namespaces, package names) with your service name. -- Leave the rest of the properties (`flavor`, boolean flags, `{service-dir}` placeholders, etc.) unchanged. - -## 4. Insert into the project config - -- Paste the customized block under `options:` in the target `tspconfig.yaml`, keeping YAML indentation intact. -- Confirm the `parameters:` section defines `"service-dir"` (for example `sdk/`); add it if missing. - -**Quick checks** - -- Do not mix ARM and data-plane templates. -- Do not cherry-pick individual properties—copy the whole block or errors will persist. -- If the SDK pipeline still reports missing configuration, re-open the template and verify every `Widget` reference was replaced. - -# SDK generation from TypeSpec - -## Agent context for TypeSpec and SDK process - -- Check all open files in the editor and check if `main.tsp` or `tspconfig.yaml` are open in the editor. If either of - these files are open, then use the parent path of the `main.tsp` or `tspconfig.yaml` as default TypeSpec project root - path. -- If `main.tsp` and `tspconfig.yaml` are not open in the editor, then check if there are any TypeSpec project paths in - the context. If there are no TypeSpec project paths in the context, then prompt user to select a TypeSpec project path - from the list of paths. If user does not have a TypeSpec project, then prompt user to create a new TypeSpec project. - -### Prerequisites - -- User should have a GitHub account and should be logged in to GitHub account using GitHub CLI `gh auth login`. -- run `npm ci` to install the dependencies -- To use Azure MCP tool calls, the user must have PowerShell installed. Provide [PowerShell installation instructions](https://learn.microsoft.com/powershell/scripting/install/installing-powershell) if not installed, and recommend restarting the IDE to start the MCP server. -- When using Copilot from Visual Studio or VS Code (not applicable when using Coding Agent on Github.com): - - **Always run** the [`azsdk_verify_setup`](../eng/common/instructions/azsdk-tools/verify-setup.instructions.md) tool first to validate the user's development environment for SDK MCP tools. - - **Do not proceed** with any other tool execution until this step is complete. - - **Skip this check only** for queries that do not require tool execution. - -### Basic Rules for SDK Generation from TypeSpec - -1. **User Guidance**: - - Assume the user is unfamiliar with the SDK release process. Provide clear, concise instructions for each step. - -2. **File Handling**: - - Do not overwrite `tspconfig.yaml` or `main.tsp`. Use existing files and suggest updates if necessary. - - Use the path of the `tspconfig.yaml` file already open in the editor or the `.tsp` file path as the project root. - - If no `.tsp` file or folder is in the current context, prompt the user to select a valid TypeSpec project root path. - -3. **Process Visibility**: - - Highlight all steps in the SDK generation process, showing completed and remaining steps. - - Do not skip any main steps. Ensure all steps are completed before moving to the next. - -4. **Git Operations**: - - Avoid using the `main` branch for pull requests. Prompt the user to create or switch to a new branch if necessary. - - Display git commands (e.g., `git checkout`, `git add`, `git commit`, `git push`) with a "Run" button instead of - asking the user to copy and paste. - - Do not run `git diff` - -5. **Azure-Specific Rules**: - - Always use `Azure` as the repo owner in MCP tool calls. - - Confirm with the user if they want to change the repo owner or target branch, and prompt for new values if needed. - -6. **Exclusions**: - - Exclude changes to the `.gitignore` file and contents within the `.github` and `.vscode` folders from API spec and SDK pull requests. - -7. **Working Branch Rule**: - - If the typespec pull request already exists or is merged stay on the `main` branch, otherwise ensure the TypeSpec project repository and the current working repository are not on the `main` branch: - - Check the current branch name for the cloned GitHub repository: - - If the current branch is `main`, prompt the user to create a new branch using - `git checkout -b `. - - If the current branch is not `main`, prompt the user to either select an existing branch or create a - new one. - - For branch switching: - - If a branch already exists and differs from the current branch, prompt the user to switch using - `git checkout `. - - GitHub pull requests cannot be created from the `main` branch. Ensure all changes are made on a non-`main` branch. - -8. **Language Exclusion Policy**: - - **CRITICAL**: Mark a language as excluded in a release plan **ONLY** when the language emitter configuration is intentionally missing or not configured in the `tspconfig.yaml` file. - - **DO NOT** mark a language as excluded if: - - SDK generation pipeline fails due to compilation errors, validation errors, or other technical issues - - The language emitter is configured in `tspconfig.yaml` but the pipeline encounters runtime errors - - There are temporary infrastructure or service issues causing pipeline failures - - **DO** mark a language as excluded if: - - The language emitter configuration is intentionally missing from `tspconfig.yaml` - - The service team has made a deliberate decision not to support a particular language - - The user provides explicit justification for not including a language in the release - - **When SDK generation fails**: - - Investigate the pipeline failure logs to identify the root cause - - Help the user fix compilation errors, configuration issues, or other problems - - Re-run the SDK generation pipeline after fixes are applied - - Only suggest language exclusion if the user explicitly states the language will not be supported - -By following these rules, the SDK release process will remain clear, structured, and user-friendly. - -## Steps to generate SDK from TypeSpec API specification - -Follow below steps to generate and release SDK from TypeSpec API specification. The process is divided into several steps, each with specific actions to ensure a smooth SDK generation and release process. -Do not skip the step that choose SDK generation method to ensure the user selects the appropriate method for SDK generation, either locally or using the SDK generation pipeline. Do not repeat the steps. Before using tools, check if user has Powershell installed. - -Your goal is to guide the user through the process of generating SDKs from TypeSpec projects. **Before starting**, show all the high level steps to the user and ask: - -> "Would you like to begin the SDK generation process now? (yes/no)" - -Wait for the user to respond with a confirmation before proceeding to Step 1. Use the provided tools to perform actions and gather information as needed. - -### Verify API spec -Step 1: Identify TypeSpec Project -**Goal**: Locate the TypeSpec project root path -**Actions**: -1. Check if `tspconfig.yaml` or `main.tsp` files are open in editor -2. If found, use the parent directory as project root -3. If not found, prompt user: "Please provide the path to your TypeSpec project root directory" -4. Validate the provided path contains required TypeSpec files main.tsp and tspconfig.yaml -5. Run `azsdk_typespec_check_project_in_public_repo` to verify repository -6. If not in public repo, inform: "Please make spec changes in Azure/azure-rest-api-specs public repo to generate SDKs" -**Success Criteria**: Valid TypeSpec project path identified - -Step 2: Identify API spec status -**Goal**: Determine if the TypeSpec spec is already merged or if it's being modified. -**Actions**: -1. Prompt user to confirm if the TypeSpec spec is already merged in the main branch of https://github.com/Azure/azure-rest-api-specs : "Is your TypeSpec specification already merged in the main branch of repository(https://github.com/Azure/azure-rest-api-specs)? (yes/no)" -2. If already merged, follow the steps in [typespec to sdk](../eng/common/instructions/azsdk-tools/typespec-to-sdk.instructions.md) to generate the SDK -3. If no, proceed to Step 3 to review and commit changes -**Success Criteria**: User decision on spec readiness obtained - -Step 3: Validate TypeSpec Specification -**Goal**: Ensure TypeSpec specification compiles without errors. Provide a complete summary after running the tool. Highlight any errors and help user fix them. -**Condition**: Only if the spec is not already merged (from Step 2) -**Message to user**: "TypeSpec validation takes around 20 - 30 seconds." -**Actions**: -1. Run `azsdk_run_typespec_validation` to validate the TypeSpec project. -2. If validation succeeds, proceed to Step 4 -3. If validation fails: - - Display all compilation errors to user - - Agent should provide suggestions to fix them and prompt the user to verify the fixes. If agent cannot resolve the errors, then prompt the user to fix compilation errors" - - Wait for user to fix errors and re-run validation. Provide detailed information about all the changes done by copilot and prompt the user before rerunning the validation. -**Success Criteria**: TypeSpec compilation passes without errors - -Step 4: Review and Commit Changes -**Goal**: Stage and commit TypeSpec modifications -**Condition**: Only if the TypeSpec validation succeeds (from Step 3) -**Actions**: -1. Run `azsdk_get_modified_typespec_projects` to identify changes -2. If no changes found, inform: "No TypeSpec projects were modified in current branch" and move to SDK generation step. -3. Display all modified files (excluding `.github` and `.vscode` folders) -4. Prompt user: "Please review the modified files. Do you want to commit these changes? (yes/no)" -5. If yes: - - If on main branch, prompt user: "You are currently on the main branch. Please create a new branch using `git checkout -b ` before proceeding." - - Wait for user confirmation before continuing - - Run `git add ` - - Prompt for commit message - - Run `git commit -m ""` - - Run `git push -u origin ` -**Success Criteria**: Changes committed and pushed to remote branch - -Step 5: Create Specification Pull Request -**Goal**: Create PR for TypeSpec changes if not already created -**Condition**: Only if there are committed changes (from Step 4) -**Actions**: -1. Prompt the user to confirm if a pull request already exists for API spec changes. If answer is no or unsure then check if spec PR already exists using `azsdk_get_pull_request_link_for_current_branch` -2. If PR exists, display PR details and proceed to next steps in SDK generation. -3. If no PR exists: - - Inform user: "No pull request found for the current branch. Proceeding to create a new pull request." - - Create a pull request using `azsdk_create_pull_request_for_current_branch` - - Prompt for PR title and description - - Display PR creation progress - - Wait for PR creation confirmation - - Display created PR details -**Success Criteria**: Specification pull request exists - -Follow the steps in [typespec to sdk](../eng/common/instructions/azsdk-tools/typespec-to-sdk.instructions.md) to generate the SDK. - -# Release readiness of SDK and information about the release pipeline - -Run [check package readiness](../eng/common/instructions/azsdk-tools/check-package-readiness.instructions.md) to check the release readiness of an SDK package. This prompt will collect the required information from the user, execute the readiness check, and present the results. - -## SDK customizations in TypeSpec projects - -TypeSpec supports making client-specific customizations to a TypeSpec project to change how an SDK is generated. When making client-specific changes, read the [typespec client customizations reference](../eng/common/knowledge/customizing-client-tsp.md) to understand the types of customizations supported and how to apply them. - -# Instructions for GitHub coding agent to generate SDKs using GitHub.com - -Run only SDK generation step and Update SDK details back in issue description and release plan. Do not run TypeSpec validation, or service label check. This is applicable only when GitHub copilot coding agent is used to generate SDK and if a Release Plan is available in the context. Run SDK generation tool even if release plan already has SDK generation pipeline URL to support regenerating SDK. -Coding agent must wait until all SDK generation pipeline are in completed status and then fetch the SDK details from pipeline run. This is applicable only when a GitHub issue is assigned to GitHub coding agent to generate SDK from a TypeSpec project. This is not applicable when running Copilot from Visual Studio and VS Code. - -## Additional instructions: - -- Run SDK generation pipeline for the given TypeSpec path for all languages mentioned in the description. -- Identify absolute path of TypeSpec project root path and send it to Run SDK generation MCP tool call. -- Keep checking the pipeline status until pipeline is in completed or failed status. -- Find SDK pull request links from the pipeline run. - -## Constraints: - -- Do not invoke other steps. -- Do not modify main.tsp file or any files in TypeSpec project. -- Do not add API version to an existing main.tsp if input API version is not present. diff --git a/.github/instructions/github-codingagent.instructions.md b/.github/instructions/github-codingagent.instructions.md new file mode 100644 index 000000000000..61cba66a770b --- /dev/null +++ b/.github/instructions/github-codingagent.instructions.md @@ -0,0 +1,18 @@ +# Run SDK generation using pipeline in GitHub coding agent + +Run only SDK generation using pipeline and do not run SDK generation using local SDK generation tools. This is applicable only when GitHub copilot coding agent is used to generate SDK and if a Release Plan is available in the context. Run SDK generation tool even if release plan already has SDK generation pipeline URL to support regenerating SDK. Coding agent must wait until all SDK generation pipeline are in completed status and then fetch the SDK details from pipeline run. This is applicable only when a GitHub issue is assigned to GitHub coding agent to generate SDK from a TypeSpec project. This is not applicable when running Copilot from Visual Studio and VS Code. + +## Additional instructions: + +- Run SDK generation pipeline for the given TypeSpec path for all languages mentioned in the description. +- Identify absolute path of TypeSpec project root path and send it to Run SDK generation MCP tool call. +- Keep checking the pipeline status every 10 minutes until pipeline is in completed or failed status. +- Find SDK pull request links from the pipeline run. +- Do not mark as language as excluded in the release plan just because SDK generation pipeline failed for that language. Inform user about the failure and suggest to check pipeline logs for more information. +- Do not run verify setup, TypeSpec validation, service label check and analyze pipeline tools when running SDK generation using GitHub coding agent. + +## Constraints: + +- Do not invoke other steps. +- Do not modify main.tsp file or any files in TypeSpec project. +- Do not add API version to an existing main.tsp if input API version is not present. diff --git a/.github/instructions/language-emitter.instructions.md b/.github/instructions/language-emitter.instructions.md new file mode 100644 index 000000000000..d61409eb626c --- /dev/null +++ b/.github/instructions/language-emitter.instructions.md @@ -0,0 +1,35 @@ +Use this guidance whenever someone needs to add language emitters to an existing `tspconfig.yaml`, or when SDK generation fails because an emitter block is missing. + +- Decide whether the service is ARM or data-plane. +- Open the matching widget `tspconfig.yaml` template. +- Copy the entire emitter block for the requested language. +- Replace every `Widget`/`widget` token with the service name and drop the block under `options:`. + +## 1. Identify the service type + +- Path contains `/resource-manager/` or linter references `@azure-tools/typespec-azure-rulesets/resource-manager` → ARM +- Path contains `/data-plane/` or linter references `@azure-tools/typespec-azure-rulesets/data-plane` → Data plane + +## 2. Reference the official widget template + +- ARM: `specification/widget/resource-manager/Microsoft.Widget/Widget/tspconfig.yaml` +- Data plane: `specification/widget/data-plane/WidgetAnalytics/tspconfig.yaml` + +Always read the template before editing so you follow the canonical configuration. + +## 3. Copy and customize the emitter block + +- Select the entire block for the language. +- Only replace service-specific tokens (`Widget`, `widget`, namespaces, package names) with your service name. +- Leave the rest of the properties (`flavor`, boolean flags, `{service-dir}` placeholders, etc.) unchanged. + +## 4. Insert into the project config + +- Paste the customized block under `options:` in the target `tspconfig.yaml`, keeping YAML indentation intact. +- Confirm the `parameters:` section defines `"service-dir"` (for example `sdk/`); add it if missing. + +**Quick checks** + +- Do not mix ARM and data-plane templates. +- Do not cherry-pick individual properties—copy the whole block or errors will persist. +- If the SDK pipeline still reports missing configuration, re-open the template and verify every `Widget` reference was replaced. diff --git a/.github/instructions/sdk-generation.instructions.md b/.github/instructions/sdk-generation.instructions.md new file mode 100644 index 000000000000..b9fb189a2cd5 --- /dev/null +++ b/.github/instructions/sdk-generation.instructions.md @@ -0,0 +1,145 @@ +## Prerequisites + +- run `npm ci` to install the dependencies +- To use Azure MCP tool calls, the user must have PowerShell installed. Provide [PowerShell installation instructions](https://learn.microsoft.com/powershell/scripting/install/installing-powershell) if not installed, and recommend restarting the IDE to start the MCP server. +- When using Copilot from Visual Studio or VS Code (not applicable when using Coding Agent on Github.com): + - **Always run** the [`azsdk_verify_setup`](../../eng/common/instructions/azsdk-tools/verify-setup.instructions.md) tool first to validate the user's development environment for SDK MCP tools. + - **Do not proceed** with any other tool execution until this step is complete. + - **Skip this check only** for queries that do not require tool execution. + +## Basic Rules for SDK Generation from TypeSpec + +1. **User Guidance**: + - Assume the user is unfamiliar with the SDK release process. Provide clear, concise instructions for each step. + +2. **File Handling**: + - Do not overwrite `tspconfig.yaml` or `main.tsp`. Use existing files and suggest updates if necessary. + - Use the path of the `tspconfig.yaml` file or the `.tsp` file path as the project root. + - If no `.tsp` file or folder is in the current context, prompt the user to select a valid TypeSpec project root path. + +3. **Process Visibility**: + - Highlight all steps in the SDK generation process, showing completed and remaining steps. + - Do not skip any main steps. Ensure all steps are completed before moving to the next. + +4. **Git Operations**: + - Avoid using the `main` branch for pull requests. Prompt the user to create or switch to a new branch if necessary. + - Display git commands (e.g., `git checkout`, `git add`, `git commit`, `git push`) with a "Run" button instead of + asking the user to copy and paste. + - Do not run `git diff` + +5. **Azure-Specific Rules**: + - Always use `Azure` as the repo owner in MCP tool calls. + - Confirm with the user if they want to change the repo owner or target branch, and prompt for new values if needed. + +6. **Exclusions**: + - Exclude changes to the `.gitignore` file and contents within the `.github` and `.vscode` folders from API spec and SDK pull requests. + +7. **Working Branch Rule**: + - If the typespec pull request already exists or is merged stay on the `main` branch, otherwise ensure the TypeSpec project repository and the current working repository are not on the `main` branch: + - Check the current branch name for the cloned GitHub repository: + - If the current branch is `main`, prompt the user to create a new branch using + `git checkout -b `. + - If the current branch is not `main`, prompt the user to either select an existing branch or create a + new one. + - For branch switching: + - If a branch already exists and differs from the current branch, prompt the user to switch using + `git checkout `. + - GitHub pull requests cannot be created from the `main` branch. Ensure all changes are made on a non-`main` branch. + +8. **Language Exclusion Policy**: + - **CRITICAL**: Mark a language as excluded in a release plan **ONLY** when the language emitter configuration is intentionally missing or not configured in the `tspconfig.yaml` file. + - **DO NOT** mark a language as excluded if: + - SDK generation pipeline fails due to compilation errors, validation errors, or other technical issues + - The language emitter is configured in `tspconfig.yaml` but the pipeline encounters runtime errors + - There are temporary infrastructure or service issues causing pipeline failures + - **DO** mark a language as excluded if: + - The language emitter configuration is intentionally missing from `tspconfig.yaml` + - The service team has made a deliberate decision not to support a particular language + - The user provides explicit justification for not including a language in the release + - **When SDK generation fails**: + - Investigate the pipeline failure logs to identify the root cause + - Help the user fix compilation errors, configuration issues, or other problems + - Re-run the SDK generation pipeline after fixes are applied + - Only suggest language exclusion if the user explicitly states the language will not be supported + +By following these rules, the SDK release process will remain clear, structured, and user-friendly. + +## Steps to generate SDK from TypeSpec API specification + +Follow below steps to generate and release SDK from TypeSpec API specification. The process is divided into several steps, each with specific actions to ensure a smooth SDK generation and release process. +Do not skip the step that choose SDK generation method to ensure the user selects the appropriate method for SDK generation, either locally or using the SDK generation pipeline. Do not repeat the steps. Before using tools, check if user has Powershell installed. + +Your goal is to guide the user through the process of generating SDKs from TypeSpec projects. **Before starting**, show all the high level steps to the user and ask: + +> "Would you like to begin the SDK generation process now? (yes/no)" + +Wait for the user to respond with a confirmation before proceeding to Step 1. Use the provided tools to perform actions and gather information as needed. + +### Verify API spec + +Step 1: Identify TypeSpec Project +**Goal**: Locate the TypeSpec project root path +**Actions**: + +1. Check if `tspconfig.yaml` or `main.tsp` files are open in editor +2. If found, use the parent directory as project root +3. If not found, prompt user: "Please provide the path to your TypeSpec project root directory" +4. Validate the provided path contains required TypeSpec files main.tsp and tspconfig.yaml +5. Run `azsdk_typespec_check_project_in_public_repo` to verify repository +6. If not in public repo, inform: "Please make spec changes in Azure/azure-rest-api-specs public repo to generate SDKs". User can still generate SDKs locally from private repo but they should not push the changes to public SDK repo. + **Success Criteria**: Valid TypeSpec project path identified + +Step 2: Identify API spec status +**Goal**: Determine if the TypeSpec spec is already merged or if it's being modified. +**Actions**: + +1. Prompt user to confirm if the TypeSpec spec is already merged in the main branch of https://github.com/Azure/azure-rest-api-specs : "Is your TypeSpec specification already merged in the main branch of repository(https://github.com/Azure/azure-rest-api-specs)? (yes/no)" +2. If already merged, follow the steps in [typespec to sdk](../../eng/common/instructions/azsdk-tools/typespec-to-sdk.instructions.md) to generate the SDK +3. If no, proceed to Step 3 to review and commit changes + **Success Criteria**: User decision on spec readiness obtained + +Step 3: Validate TypeSpec Specification +**Goal**: Ensure TypeSpec specification compiles without errors. Provide a complete summary after running the tool. Highlight any errors and help user fix them. +**Condition**: Only if the spec is not already merged (from Step 2) +**Message to user**: "TypeSpec validation takes around 20 - 30 seconds." +**Actions**: + +1. Run `azsdk_run_typespec_validation` to validate the TypeSpec project. +2. If validation succeeds, proceed to Step 4 +3. If validation fails: - Display all compilation errors to user - Agent should provide suggestions to fix them and prompt the user to verify the fixes. If agent cannot resolve the errors, then prompt the user to fix compilation errors" - Wait for user to fix errors and re-run validation. Provide detailed information about all the changes done by copilot and prompt the user before rerunning the validation. + **Success Criteria**: TypeSpec compilation passes without errors + +Step 4: Review and Commit Changes +**Goal**: Stage and commit TypeSpec modifications +**Condition**: Only if the TypeSpec validation succeeds (from Step 3) +**Actions**: + +1. Run `azsdk_get_modified_typespec_projects` to identify changes +2. If no changes found, inform: "No TypeSpec projects were modified in current branch" and go to SDK generation mentioned in [typespec to sdk](../../eng/common/instructions/azsdk-tools/typespec-to-sdk.instructions.md). +3. Display all modified files (excluding `.github` and `.vscode` folders) +4. Prompt user: "Please review the modified files. Do you want to commit these changes? (yes/no)" +5. If yes: - If on main branch, prompt user: "You are currently on the main branch. Please create a new branch using `git checkout -b ` before proceeding." - Wait for user confirmation before continuing - Run `git add ` - Prompt for commit message - Run `git commit -m ""` - Run `git push -u origin ` + **Success Criteria**: Changes committed and pushed to remote branch + +Step 5: Create Specification Pull Request +**Goal**: Create PR for TypeSpec changes if not already created +**Condition**: Only if there are committed changes (from Step 4) +**Actions**: + +1. Prompt the user to confirm if a pull request already exists for API spec changes. If answer is no or unsure then check if spec PR already exists using `azsdk_get_pull_request_link_for_current_branch` +2. If PR exists, display PR details and proceed to next steps in SDK generation. +3. If no PR exists: + - Inform user: "No pull request found for the current branch. Proceeding to create a new pull request." + - Create a pull request using `azsdk_create_pull_request_for_current_branch` + - Prompt for PR title and description + - Display PR creation progress + - Wait for PR creation confirmation + - Display created PR details +4. Inform the user to follow the instructions on spec PR to get approval from API reviewers and merge the spec PR. + **Success Criteria**: Specification pull request exists + +Follow the steps in [typespec to sdk](../../eng/common/instructions/azsdk-tools/typespec-to-sdk.instructions.md) to generate the SDK. + +## SDK customizations in TypeSpec projects + +TypeSpec supports making client-specific customizations to a TypeSpec project to change how an SDK is generated. When making client-specific changes, read the [typespec client customizations reference](../../eng/common/knowledge/customizing-client-tsp.md) to understand the types of customizations supported and how to apply them. diff --git a/.github/instructions/typespec-project.instructions.md b/.github/instructions/typespec-project.instructions.md new file mode 100644 index 000000000000..df90429c7727 --- /dev/null +++ b/.github/instructions/typespec-project.instructions.md @@ -0,0 +1,164 @@ +Before creating or initializing a TypeSpec project, you must know your org name, service name, and the type of service: data-plane or control-plane (ARM). + +Then create a new project directory under the `specification//resource-manager//` or `specification//data-plane/` path, following the guidelines below. + +``` +specification/ +└── / + ├── cspell.yaml + └── resource-manager/ + ├── readme.md ß NOTE: For ARM schema validation; see bullet #2 below + └── / ß NOTE: Control-plane only (not data-plane) + └── / ß Customer-facing service name; each version gets Documentation & SDK package + ├── tspconfig.yaml ß TypeSpec files + ├── main.tsp + ├── models.tsp + ├── readme.md ß autorest readme with YAML blocks + └── examples/ ß TypeSpec example folder + └── / ß One folder per service version described in TypeSpec + └── + └── preview/ and stable/ + └── / ß One folder per service version described in OpenAPI. These folders are created and populated by compiling the TypeSpec folder for the service. + ├── + └── examples/ ß OpenAPI example folder + └── + └── / // Customer-facing service name; contents identical to above structure + └── data-plane/ + └── / // Customer-facing service name; contents identical to above structure +``` + +Use the `./specification/widget` directory as a reference for creating your own project directory. + +Only after the project directory is created according to the above guidelines may you run the `azsdk_init_typespec_project` tool to initialize the project. + +## Converting a specification from swagger to typespec + +Users can convert a specification from swagger to typespec by using `tsp-client` a CLI designed to help developers throughout various stages of typespec development. + +### Instructions for converting a specification from swagger to typespec + +1. Install the dependencies specified in the package.json at the root of this repository. Command: + +``` +npm ci +``` + +2. `tsp-client` is installed as part of the dependencies specified at the root of this repository. To convert a swagger to typespec, run the following command: `npx tsp-client convert --swagger-readme ` +3. Now that you have a newly converted typespec project, you should go through all files to verify the accuracy of the converted spec when compared to the original swagger definitions. +4. For both data plane and management plane specifications, you should update the implementation according to the information provided under the [Initial migration checklist](#initial-migration-checklist) section. + +### Initial migration checklist + +The swagger converter will not be able to accurately represent every part of every API in TypeSpec. This document outlines some common changes you may need to make to a converted TypeSpec to make it conform to your existing service API, pass validation checks, and follow best practices. + +- Avoid extensive refactoring of the converted spec. The goal is to get a working spec that can compile successfully and then iteratively improve it. + +- DO ensure your `@service` and `@server` definitions are correct in main.tsp +- DO use the built-in [url][url-type] for endpoint specification. Example: + +```tsp +@server( + "{endpoint}/widget", + "Contoso Widget APIs", + { + /** + * Supported Widget Services endpoints (protocol and hostname, for example: + * https://westus.api.widget.contoso.com). + */ + endpoint: url, + } +) +``` + +- DO ensure that you have a security definition (`@useAuth`) specified for your service. See: [Security definitions in TypeSpec][security-definitions]. The @useAuth decorator should only be defined ONCE in the entire specification above the @server definition. +- AVOID adding new namespaces. +- Make sure the versions enum is declared under the existing namespace defined in main.tsp. Avoid adding it anywhere else. Ensure the `@versioned` decorator is specified over the namespace in main.tsp. Pass the versions enum to the `@versioned` decorator. Example of a typical structure for versioning: + +```tsp +// this is the main.tsp file + + +@versioned(Versions) +namespace Contoso.WidgetManager; +/** Service api versions **/ +enum Versions { + /** The 2023-11-01 api version **/ + v2023_11_01: "2023-11-01", +} +``` + +- All models, enums, unions, and operations should be added under the main namespace declared in the project. +- Avoid having models, enums, unions, operations, and other types declared outside of a namespace. +- If any files are using any of the versioning decorators, such as `@added`, `@removed`, `@changedType`, make sure to import the `@typespec/versioning` library and add a using statement. Example: + +```tsp +import "@typespec/versioning"; + +using TypeSpec.Versioning; +``` + +- DO review all enum and union definitions and add documentation over each enum or union member. See: [Documentation in TypeSpec][docs]. Example of a properly documented enum: + +```tsp +/** The color of a widget. */ +union WidgetColor { + string, + + /** Red Widget Color */ + Red: "Red", + + /** Green Widget Color */ + Green: "Green", + + /** Blue Widget Color */ + Blue: "Blue", +} +``` + +- DO ensure that all models, properties, operations, parameters, enums, unions, and alias definitions have documentation over them. TypeSpec convention recommends using the doc comment format `/** */` to add documentation, example: + +```tsp +/** The color of a widget. */ +model Widget { + /** Widget name */ + name: string +} +``` + +- DO define your visibility decorators with the appropriate value from the Lifecycle class. +- Avoid suppressing warnings +- Operation names should be camel case +- DO use `union` instead of `enum` to define Azure enums. For more information about how to define enums for Azure services see the following documentation: [Defining enums for Azure services][no-enum]. +- DO make client customizations in a `client.tsp` file +- Avoid importing or using `@azure-tools/typespec-client-generator-core` in other files aside from client.tsp. +- DO run `tsp compile .` on your specification and make one attempt to address all warnings. Do not attempt to address warnings more than once even if they aren't resolved. +- Attempt to address any FIXME or TODO comments in the spec. If you are unable to address them, leave them untouched + +#### Additional considerations + +- DO ensure you pull in the latest `main` from the Azure/azure-rest-api-specs repo to stay up to date with latest dependencies +- DO run `npm ci` to get a clean install of the package.json dependencies +- Avoid modifying the package.json or package-lock.json files at the root of the azure-rest-api-specs repo +- Avoid adding your own package.json or package-lock.json files in your project directory +- Avoid adding multiple tspconfig.yaml files for your service specification +- DO consult [ci-fix.md][ci-fix] for fixes to common CI errors reported + +## Troubleshooting tsp compile errors and warnings + +Examples of common errors and warnings that should be addressed after running the `tsp compile` command: + +- If you see an error with a message like: "referencing types from versioned namespace 'Azure.Core.Foundations' but didn't specify which versions with @useDependency", you should add the @useDependency decorator over each api version entry in your api versions enum. Example of a properly configured api versions enum: + +``` +/** Service api versions **/ +enum Versions { + /** The 2023-11-01 api version **/ + v2023_11_01: "2023-11-01", +} + +``` + +- If you see an invalid-ref or unknown identifier error you are most likely missing an import to the library that declares that decorator. To find supported libraries and decorators search through the documentation of the following sites: https://azure.github.io/typespec-azure/docs/intro/ and https://typespec.io/docs/ Search through the list of supported decorators, interfaces, and other types per library until you find the correct library to import and/or include a using statement in your typespec files. +- In order to address warnings raised by the @azure-tools/typespec-azure-core search through this page for relevant solutions to apply: https://azure.github.io/typespec-azure/docs/intro/ +- camelCase fixes only apply to the typespec property names, any corresponding string values you should left as is. +- String values in typespec files should be left untouched. From f2ddf93eb8f769070f4db2f318a2dae80a4f41c4 Mon Sep 17 00:00:00 2001 From: Osahumen Uyi Aghasomwan <65305780+osaghaso@users.noreply.github.com> Date: Fri, 12 Dec 2025 10:25:47 -0800 Subject: [PATCH 007/117] Update Chat event to include sequenceId (#39046) * Update Chat event to include sequenceId * running Tsp * updating sequence to use uint64 instead of int64 * undo commit - updating sequence to use uint64 instead of int64 --- .../AzureCommunicationServices.tsp | 6 ++++++ .../stable/2018-01-01/GeneratedSystemEvents.json | 10 ++++++++++ .../stable/2024-01-01/GeneratedSystemEvents.json | 10 ++++++++++ 3 files changed, 26 insertions(+) diff --git a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Communication/AzureCommunicationServices.tsp b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Communication/AzureCommunicationServices.tsp index 2aeca813322a..333ac3176184 100644 --- a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Communication/AzureCommunicationServices.tsp +++ b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Communication/AzureCommunicationServices.tsp @@ -1081,6 +1081,9 @@ model AcsChatMessageEventBaseProperties extends AcsChatEventBaseProperties { /** The display name of the sender */ senderDisplayName?: string; + /** The Sequence id of the message */ + sequenceId?: int64; + /** The original compose time of the message */ @madeRequired(ServiceApiVersions.v2024_01_01) composeTime: utcDateTime; @@ -1198,6 +1201,9 @@ model AcsChatMessageEventInThreadBaseProperties /** The display name of the sender */ senderDisplayName?: string; + /** The Sequence id of the message */ + sequenceId?: int64; + /** The original compose time of the message */ @madeRequired(ServiceApiVersions.v2024_01_01) composeTime: utcDateTime; diff --git a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json index 2c507293a174..b531cd1c78be 100644 --- a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json +++ b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2018-01-01/GeneratedSystemEvents.json @@ -457,6 +457,11 @@ "type": "string", "description": "The display name of the sender" }, + "sequenceId": { + "type": "integer", + "format": "int64", + "description": "The Sequence id of the message" + }, "composeTime": { "type": "string", "format": "date-time", @@ -499,6 +504,11 @@ "type": "string", "description": "The display name of the sender" }, + "sequenceId": { + "type": "integer", + "format": "int64", + "description": "The Sequence id of the message" + }, "composeTime": { "type": "string", "format": "date-time", diff --git a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json index b96ad6a64d81..005706ff932e 100644 --- a/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json +++ b/specification/eventgrid/data-plane/Microsoft.EventGrid/stable/2024-01-01/GeneratedSystemEvents.json @@ -466,6 +466,11 @@ "type": "string", "description": "The display name of the sender" }, + "sequenceId": { + "type": "integer", + "format": "int64", + "description": "The Sequence id of the message" + }, "composeTime": { "type": "string", "format": "date-time", @@ -510,6 +515,11 @@ "type": "string", "description": "The display name of the sender" }, + "sequenceId": { + "type": "integer", + "format": "int64", + "description": "The Sequence id of the message" + }, "composeTime": { "type": "string", "format": "date-time", From 1801af251aa5ca54f68dd939ff3ef305a0e30eab Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Fri, 12 Dec 2025 11:09:09 -0800 Subject: [PATCH 008/117] [dependabot.yml] Remove cooldown for github-actions (#39222) - We only pin actions major versions, so cooldown less useful - Cooldown also prevents creating PRs to update major versions, if the latest patch release is within the cooldown period --- .github/dependabot.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index e458c4eb8987..d7b408af39ca 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,8 +4,6 @@ updates: directory: "/" schedule: interval: "weekly" - cooldown: - default-days: 7 - package-ecosystem: "npm" directories: - "/" From ec3df311a63c6e653824b4018bb1a39d483bf9fc Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Sat, 13 Dec 2025 03:10:14 +0800 Subject: [PATCH 009/117] Migrate Storage from swagger to TypeSpec (#35403) * converted * update * update * run prettier * update * remove old example files * include new example files in TSP directory * update * update * update * Update models.tsp * recover readme.md * array element length constraint * recovery of previous spec files * Update tspconfig.yaml * update * update * update for {subscription-id} to 00000000-0000-0000-0000-000000000000 * update * update * etag mv fix * Update BlobContainersList.json * Update BlobContainersList.json * format uri fix * update * update * fix etag not eTag * fix optional body * update * update * fix for ProvisioningState * update * update * adopt the ErrorResponse with the local defined one. * update * fix AAO and location header for StorageTaskAssignments_Delete / StorageTaskAssignments_Update * fix for OverrideErrorType * fix optional body * Update ImmutabilityPolicy.tsp * Update tspconfig.yaml * Update ImmutabilityPolicy.tsp * update * update * remove @operationId decorate * update * fix warning for clientLocation * update * Update client.tsp * Update main.tsp * fix * deleted in the fix #36084 * fix * addted example files * update * formatted * update * update * update * update * Update Java service-dir after package split * fix as new pagination way * Fix: "x-ms-external": true * update * update * Revert "update" This reverts commit af8700be938e379a1affd8228506571122e74450. * Revert "update" This reverts commit b0d15e225e4bfd4269a9832207247bd620193b14. * Fix Request model * update for PR #36668 * update * resolve breaking * fix go * fix go * update * update * Update back-compatible.tsp * Update tspconfig.yaml * Update models.tsp * java configurations * update * update * Update client.tsp * Update tspconfig.yaml * update * etag for java * update client name for python * override for java * format * update * Update client.tsp * Update tspconfig.yaml * Update tspconfig.yaml * recovery of version 2025-01-01 * update * delete examples of xx.Management of 2025-01-01 * add examples to Tsp of 2025-06-01 * examples of swagger after run tsp compile . * Update models.tsp * Update openapi.json * resolve warnings * fix customAzureResource * update * rename common type Resource * update * update * update * update IntervalUnit * Revert "update IntervalUnit" This reverts commit 632da2f4827c410a14f2d429f161eab243e1716e. * Add Python to clientName for DeletedAccounts * fix: IntervalUnit * Update client.tsp * Update StorageTaskAssignment.tsp * add config for python * add config for python * add config for python * Update back-compatible.tsp --------- Co-authored-by: Pan Shao Co-authored-by: Weidong Xu Co-authored-by: Xiaofei Cao <92354331+XiaofeiCao@users.noreply.github.com> Co-authored-by: Jiao Di (MSFT) <80496810+v-jiaodi@users.noreply.github.com> Co-authored-by: tadelesh Co-authored-by: Chenjie Shi Co-authored-by: xiaofeicao Co-authored-by: Yuchao Yan Co-authored-by: Jiao Di (MSFT) Co-authored-by: Pan Shao <97225342+pshao25@users.noreply.github.com> --- .../Storage.Management/BlobContainer.tsp | 129 + .../BlobInventoryPolicy.tsp | 69 + .../BlobServiceProperties.tsp | 105 + .../Storage.Management/DeletedAccount.tsp | 43 + .../Storage.Management/EncryptionScope.tsp | 92 + .../FileServiceProperties.tsp | 106 + .../Storage.Management/FileServiceUsage.tsp | 56 + .../storage/Storage.Management/FileShare.tsp | 147 + .../Storage.Management/ImmutabilityPolicy.tsp | 176 + .../storage/Storage.Management/LocalUser.tsp | 108 + .../Storage.Management/ManagementPolicy.tsp | 60 + .../NetworkSecurityPerimeterConfiguration.tsp | 64 + .../ObjectReplicationPolicy.tsp | 72 + .../PrivateEndpointConnection.tsp | 69 + .../QueueServiceProperties.tsp | 92 + .../Storage.Management/StorageAccount.tsp | 349 + .../StorageAccountMigration.tsp | 48 + .../Storage.Management/StorageQueue.tsp | 74 + .../StorageTaskAssignment.tsp | 144 + .../storage/Storage.Management/Table.tsp | 126 + .../TableServiceProperties.tsp | 66 + .../Storage.Management/back-compatible.tsp | 387 + .../storage/Storage.Management/client.tsp | 83 + .../BlobContainersClearLegalHold.json | 27 + .../2025-06-01/BlobContainersDelete.json | 16 + ...lobContainersDeleteImmutabilityPolicy.json | 28 + ...lobContainersExtendImmutabilityPolicy.json | 32 + .../2025-06-01/BlobContainersGet.json | 83 + .../BlobContainersGetImmutabilityPolicy.json | 28 + ...sGetWithAllowProtectedAppendWritesAll.json | 91 + .../BlobContainersLease_Acquire.json | 26 + .../2025-06-01/BlobContainersLease_Break.json | 26 + .../2025-06-01/BlobContainersList.json | 48 + .../BlobContainersLockImmutabilityPolicy.json | 27 + .../2025-06-01/BlobContainersPatch.json | 37 + .../2025-06-01/BlobContainersPut.json | 29 + ...obContainersPutDefaultEncryptionScope.json | 42 + .../BlobContainersPutImmutabilityPolicy.json | 34 + ...tyPolicyAllowProtectedAppendWritesAll.json | 20 +- .../BlobContainersPutObjectLevelWorm.json | 45 + .../BlobContainersSetLegalHold.json | 31 + ...egalHoldAllowProtectedAppendWritesAll.json | 33 + .../2025-06-01/BlobRangesRestore.json | 66 + .../examples/2025-06-01/BlobServicesGet.json | 98 + .../examples/2025-06-01/BlobServicesList.json | 101 + .../examples/2025-06-01/BlobServicesPut.json | 173 + .../BlobServicesPutAllowPermanentDelete.json | 39 + ...ervicesPutLastAccessTimeBasedTracking.json | 43 + .../2025-06-01/DeletedAccountGet.json | 27 + .../2025-06-01/DeletedAccountList.json | 41 + .../2025-06-01/DeletedBlobContainersList.json | 52 + .../2025-06-01/DeletedFileSharesList.json | 44 + .../examples/2025-06-01/FileServicesGet.json | 88 + .../2025-06-01/FileServicesGetUsage.json | 63 + .../examples/2025-06-01/FileServicesList.json | 91 + .../2025-06-01/FileServicesListUsages.json | 66 + .../examples/2025-06-01/FileServicesPut.json | 153 + ...FileServicesPut_EnableSMBMultichannel.json | 45 + ...leServicesPut_EnableSecureSmbFeatures.json | 47 + ...rvicesPut_EncryptionInTransitRequired.json | 55 + .../2025-06-01/FileShareAclsPatch.json | 47 + .../2025-06-01/FileShareSnapshotsList.json | 41 + .../examples/2025-06-01/FileSharesDelete.json | 16 + .../examples/2025-06-01/FileSharesGet.json | 26 + .../FileSharesGet_PaidBursting.json | 31 + .../FileSharesGet_ProvisionedV2.json | 33 + .../2025-06-01/FileSharesGet_Stats.json | 28 + .../2025-06-01/FileSharesLease_Acquire.json | 26 + .../2025-06-01/FileSharesLease_Break.json | 26 + .../examples/2025-06-01/FileSharesList.json | 40 + .../FileSharesList_PaidBursting.json | 50 + .../FileSharesList_ProvisionedV2.json | 54 + .../examples/2025-06-01/FileSharesPatch.json | 33 + .../FileSharesPatch_PaidBursting.json | 37 + .../FileSharesPatch_ProvisionedV2.json | 38 + .../examples/2025-06-01/FileSharesPut.json | 29 + .../2025-06-01/FileSharesPut_AccessTier.json | 39 + .../2025-06-01/FileSharesPut_NFS.json | 39 + .../FileSharesPut_PaidBursting.json | 51 + .../FileSharesPut_ProvisionedV2.json | 49 + .../2025-06-01/FileSharesRestore.json | 19 + .../examples/2025-06-01/LocalUserCreate.json | 72 + .../LocalUserCreateNFSv3Enabled.json | 62 + .../examples/2025-06-01/LocalUserDelete.json | 16 + .../examples/2025-06-01/LocalUserGet.json | 49 + .../2025-06-01/LocalUserListKeys.json | 25 + .../LocalUserRegeneratePassword.json | 19 + .../examples/2025-06-01/LocalUserUpdate.json | 53 + .../examples/2025-06-01/LocalUsersList.json | 68 + .../LocalUsersListNFSv3Enabled.json | 80 + ...workSecurityPerimeterConfigurationGet.json | 64 + ...orkSecurityPerimeterConfigurationList.json | 56 + ...curityPerimeterConfigurationReconcile.json | 18 + .../2025-06-01/NfsV3AccountCreate.json | 65 + .../ObjectLevelWormContainerMigration.json | 21 + .../examples/2025-06-01/OperationsList.json | 475 + .../2025-06-01/QueueOperationDelete.json | 15 + .../2025-06-01/QueueOperationGet.json | 27 + .../2025-06-01/QueueOperationList.json | 42 + .../2025-06-01/QueueOperationPatch.json | 22 + .../2025-06-01/QueueOperationPut.json | 22 + .../QueueOperationPutWithMetadata.json | 35 + .../examples/2025-06-01/QueueServicesGet.json | 84 + .../2025-06-01/QueueServicesList.json | 87 + .../examples/2025-06-01/QueueServicesPut.json | 149 + .../examples/2025-06-01/SKUList.json | 6456 +++++++ .../2025-06-01/SKUListWithLocationInfo.json | 54 + ...ntAbortHierarchicalNamespaceMigration.json | 18 + .../StorageAccountCheckNameAvailability.json | 19 + .../2025-06-01/StorageAccountCreate.json | 157 + ...ageAccountCreateAllowedCopyScopeToAAD.json | 146 + ...ntCreateAllowedCopyScopeToPrivateLink.json | 146 + ...ountCreateDisallowPublicNetworkAccess.json | 150 + ...ntCreateDnsEndpointTypeToAzureDnsZone.json | 153 + ...ccountCreateDnsEndpointTypeToStandard.json | 153 + ...ccountCreateEnablePublicNetworkAccess.json | 150 + ...eObjectReplicationPolicyOnDestination.json | 69 + ...CreateObjectReplicationPolicyOnSource.json | 73 + ...eAccountCreatePremiumBlockBlobStorage.json | 91 + ...UserAssignedEncryptionIdentityWithCMK.json | 116 +- ...IdentityWithFederatedIdentityClientId.json | 122 +- ...geAccountCreateWithImmutabilityPolicy.json | 72 + .../StorageAccountCreate_placement.json | 160 + .../StorageAccountCreate_zones.json | 157 + .../2025-06-01/StorageAccountDelete.json | 15 + ...orageAccountDeleteBlobInventoryPolicy.json | 16 + .../StorageAccountDeleteManagementPolicy.json | 16 + ...eAccountDeleteObjectReplicationPolicy.json | 16 + ...ccountDeletePrivateEndpointConnection.json | 16 + .../2025-06-01/StorageAccountEnableAD.json | 77 + .../2025-06-01/StorageAccountEnableCMK.json | 96 + .../StorageAccountEnableSmbOAuth.json | 63 + .../StorageAccountEncryptionScopeList.json | 45 + .../2025-06-01/StorageAccountFailover.json | 19 + .../StorageAccountFailoverPlanned.json | 20 + ...ageAccountGetAsyncSkuConversionStatus.json | 36 + .../StorageAccountGetBlobInventoryPolicy.json | 67 + .../StorageAccountGetEncryptionScope.json | 27 + .../StorageAccountGetManagementPolicy.json | 61 + .../StorageAccountGetMigrationFailed.json | 27 + .../StorageAccountGetMigrationInProgress.json | 25 + ...rageAccountGetObjectReplicationPolicy.json | 55 + ...geAccountGetPrivateEndpointConnection.json | 32 + .../StorageAccountGetProperties.json | 108 + ...StorageAccountGetPropertiesCMKEnabled.json | 106 + ...GetPropertiesCMKVersionExpirationTime.json | 107 + ...esGeoReplicationStatscanFailoverFalse.json | 106 +- ...iesGeoReplicationStatscanFailoverTrue.json | 106 +- ...AccountHierarchicalNamespaceMigration.json | 19 + .../StorageAccountLeverageIPv6Ability.json | 87 + .../2025-06-01/StorageAccountList.json | 315 + .../StorageAccountListAccountSAS.json | 27 + ...StorageAccountListBlobInventoryPolicy.json | 70 + .../StorageAccountListByResourceGroup.json | 80 + .../2025-06-01/StorageAccountListKeys.json | 29 + .../StorageAccountListLocationUsage.json | 26 + ...eAccountListObjectReplicationPolicies.json | 43 + ...AccountListPrivateEndpointConnections.json | 51 + ...torageAccountListPrivateLinkResources.json | 103 + .../StorageAccountListServiceSAS.json | 24 + .../StorageAccountPatchEncryptionScope.json | 40 + .../StorageAccountPostMigration.json | 24 + .../StorageAccountPutEncryptionScope.json | 41 + ...tionScopeWithInfrastructureEncryption.json | 36 +- ...geAccountPutPrivateEndpointConnection.json | 40 + .../StorageAccountRegenerateKerbKey.json | 37 + .../StorageAccountRegenerateKey.json | 32 + ...torageAccountRevokeUserDelegationKeys.json | 13 + .../StorageAccountSetBlobInventoryPolicy.json | 162 + ...ncludeDeleteAndNewSchemaForHnsAccount.json | 74 +- ...udeDeleteAndNewSchemaForNonHnsAccount.json | 74 +- .../StorageAccountSetManagementPolicy.json | 182 + ...untSetManagementPolicyColdTierActions.json | 130 + ...anagementPolicyForBlockAndAppendBlobs.json | 102 + ...ountSetManagementPolicyHotTierActions.json | 100 + ...anagementPolicyWithSnapshotAndVersion.json | 136 + ...licy_BaseBlobDaysAfterCreationActions.json | 74 +- ...Policy_LastAccessTimeBasedBlobActions.json | 82 +- ...ementPolicy_LastTierChangeTimeActions.json | 82 +- .../2025-06-01/StorageAccountUpdate.json | 162 + ...ageAccountUpdateAllowedCopyScopeToAAD.json | 151 + ...countUpdateDisablePublicNetworkAccess.json | 151 + ...eObjectReplicationPolicyOnDestination.json | 79 + ...UpdateObjectReplicationPolicyOnSource.json | 81 + ...UserAssignedEncryptionIdentityWithCMK.json | 116 +- ...IdentityWithFederatedIdentityClientId.json | 122 +- ...geAccountUpdateWithImmutabilityPolicy.json | 52 + .../StorageAccountUpdate_placement.json | 165 + .../StorageAccountUpdate_zones.json | 162 + .../2025-06-01/TableOperationDelete.json | 15 + .../2025-06-01/TableOperationGet.json | 24 + .../2025-06-01/TableOperationList.json | 36 + .../2025-06-01/TableOperationPatch.json | 24 + .../2025-06-01/TableOperationPut.json | 24 + .../TableOperationPutOrPatchAcls.json | 64 + ...bleOperationPutOrPatchAclsTableCreate.json | 64 + .../examples/2025-06-01/TableServicesGet.json | 84 + .../2025-06-01/TableServicesList.json | 87 + .../examples/2025-06-01/TableServicesPut.json | 149 + .../DeleteStorageTaskAssignment.json | 19 + .../GetStorageTaskAssignment.json | 44 + .../PatchStorageTaskAssignment.json | 73 + .../PutStorageTaskAssignment.json | 105 + ...orageTaskAssignmentRequiredProperties.json | 39 +- ...eTaskAssignmentInstancesReportSummary.json | 46 +- .../ListStorageTaskAssignmentsForAccount.json | 34 +- ...TaskAssignmentsInstancesReportSummary.json | 46 +- .../storage/Storage.Management/main.tsp | 72 + .../storage/Storage.Management/models.tsp | 6050 +++++++ .../storage/Storage.Management/routes.tsp | 65 + .../storage/Storage.Management/tspconfig.yaml | 49 + .../stable/2025-06-01/blob.json | 1579 -- .../stable/2025-06-01/common.json | 368 - .../BlobContainersClearLegalHold.json | 18 +- .../examples/BlobContainersDelete.json | 12 +- ...lobContainersDeleteImmutabilityPolicy.json | 16 +- ...lobContainersExtendImmutabilityPolicy.json | 16 +- .../examples/BlobContainersGet.json | 62 +- .../BlobContainersGetImmutabilityPolicy.json | 16 +- ...sGetWithAllowProtectedAppendWritesAll.json | 70 +- .../examples/BlobContainersLease_Acquire.json | 14 +- .../examples/BlobContainersLease_Break.json | 14 +- .../examples/BlobContainersList.json | 38 +- .../BlobContainersLockImmutabilityPolicy.json | 16 +- .../examples/BlobContainersPatch.json | 26 +- .../examples/BlobContainersPut.json | 24 +- ...obContainersPutDefaultEncryptionScope.json | 22 +- .../BlobContainersPutImmutabilityPolicy.json | 20 +- ...tyPolicyAllowProtectedAppendWritesAll.json | 20 +- .../BlobContainersPutObjectLevelWorm.json | 22 +- .../examples/BlobContainersSetLegalHold.json | 18 +- ...egalHoldAllowProtectedAppendWritesAll.json | 26 +- .../examples/BlobRangesRestore.json | 64 +- .../2025-06-01/examples/BlobServicesGet.json | 70 +- .../2025-06-01/examples/BlobServicesList.json | 68 +- .../2025-06-01/examples/BlobServicesPut.json | 126 +- .../BlobServicesPutAllowPermanentDelete.json | 22 +- ...ervicesPutLastAccessTimeBasedTracking.json | 26 +- .../examples/DeletedAccountGet.json | 18 +- .../examples/DeletedAccountList.json | 24 +- .../examples/DeletedBlobContainersList.json | 42 +- .../examples/DeletedFileSharesList.json | 24 +- .../2025-06-01/examples/FileServicesGet.json | 56 +- .../examples/FileServicesGetUsage.json | 56 +- .../2025-06-01/examples/FileServicesList.json | 54 +- .../examples/FileServicesListUsages.json | 54 +- .../2025-06-01/examples/FileServicesPut.json | 98 +- ...FileServicesPut_EnableSMBMultichannel.json | 14 +- ...leServicesPut_EnableSecureSmbFeatures.json | 22 +- ...rvicesPut_EncryptionInTransitRequired.json | 22 +- .../examples/FileShareAclsPatch.json | 32 +- .../examples/FileShareSnapshotsList.json | 16 +- .../2025-06-01/examples/FileSharesDelete.json | 12 +- .../2025-06-01/examples/FileSharesGet.json | 14 +- .../examples/FileSharesGet_PaidBursting.json | 24 +- .../examples/FileSharesGet_ProvisionedV2.json | 26 +- .../examples/FileSharesGet_Stats.json | 16 +- .../examples/FileSharesLease_Acquire.json | 14 +- .../examples/FileSharesLease_Break.json | 14 +- .../2025-06-01/examples/FileSharesList.json | 18 +- .../examples/FileSharesList_PaidBursting.json | 38 +- .../FileSharesList_ProvisionedV2.json | 42 +- .../2025-06-01/examples/FileSharesPatch.json | 16 +- .../FileSharesPatch_PaidBursting.json | 24 +- .../FileSharesPatch_ProvisionedV2.json | 30 +- .../2025-06-01/examples/FileSharesPut.json | 24 +- .../examples/FileSharesPut_AccessTier.json | 22 +- .../examples/FileSharesPut_NFS.json | 22 +- .../examples/FileSharesPut_PaidBursting.json | 34 +- .../examples/FileSharesPut_ProvisionedV2.json | 42 +- .../examples/FileSharesRestore.json | 14 +- .../2025-06-01/examples/LocalUserCreate.json | 50 +- .../examples/LocalUserCreateNFSv3Enabled.json | 44 +- .../2025-06-01/examples/LocalUserDelete.json | 12 +- .../2025-06-01/examples/LocalUserGet.json | 48 +- .../examples/LocalUserListKeys.json | 16 +- .../examples/LocalUserRegeneratePassword.json | 12 +- .../2025-06-01/examples/LocalUserUpdate.json | 40 +- .../2025-06-01/examples/LocalUsersList.json | 56 +- .../examples/LocalUsersListNFSv3Enabled.json | 78 +- ...workSecurityPerimeterConfigurationGet.json | 48 +- ...orkSecurityPerimeterConfigurationList.json | 32 +- ...curityPerimeterConfigurationReconcile.json | 10 +- .../examples/NfsV3AccountCreate.json | 34 +- .../ObjectLevelWormContainerMigration.json | 12 +- .../2025-06-01/examples/OperationsList.json | 300 +- .../examples/QueueOperationDelete.json | 12 +- .../examples/QueueOperationGet.json | 14 +- .../examples/QueueOperationList.json | 18 +- .../examples/QueueOperationPatch.json | 16 +- .../examples/QueueOperationPut.json | 16 +- .../QueueOperationPutWithMetadata.json | 14 +- .../2025-06-01/examples/QueueServicesGet.json | 56 +- .../examples/QueueServicesList.json | 54 +- .../2025-06-01/examples/QueueServicesPut.json | 98 +- .../stable/2025-06-01/examples/SKUList.json | 3114 ++-- .../examples/SKUListWithLocationInfo.json | 42 +- ...ntAbortHierarchicalNamespaceMigration.json | 10 +- .../StorageAccountCheckNameAvailability.json | 10 +- .../examples/StorageAccountCreate.json | 166 +- ...ageAccountCreateAllowedCopyScopeToAAD.json | 160 +- ...ntCreateAllowedCopyScopeToPrivateLink.json | 160 +- ...ountCreateDisallowPublicNetworkAccess.json | 164 +- ...ntCreateDnsEndpointTypeToAzureDnsZone.json | 170 +- ...ccountCreateDnsEndpointTypeToStandard.json | 170 +- ...ccountCreateEnablePublicNetworkAccess.json | 164 +- ...eObjectReplicationPolicyOnDestination.json | 54 +- ...CreateObjectReplicationPolicyOnSource.json | 66 +- ...eAccountCreatePremiumBlockBlobStorage.json | 76 +- ...UserAssignedEncryptionIdentityWithCMK.json | 114 +- ...IdentityWithFederatedIdentityClientId.json | 120 +- ...geAccountCreateWithImmutabilityPolicy.json | 66 +- .../StorageAccountCreate_placement.json | 170 +- .../examples/StorageAccountCreate_zones.json | 178 +- .../examples/StorageAccountDelete.json | 10 +- ...orageAccountDeleteBlobInventoryPolicy.json | 12 +- .../StorageAccountDeleteManagementPolicy.json | 12 +- ...eAccountDeleteObjectReplicationPolicy.json | 12 +- ...ccountDeletePrivateEndpointConnection.json | 12 +- .../examples/StorageAccountEnableAD.json | 56 +- .../examples/StorageAccountEnableCMK.json | 72 +- .../StorageAccountEnableSmbOAuth.json | 24 +- .../StorageAccountEncryptionScopeList.json | 32 +- .../examples/StorageAccountFailover.json | 10 +- .../StorageAccountFailoverPlanned.json | 10 +- ...ageAccountGetAsyncSkuConversionStatus.json | 20 +- .../StorageAccountGetBlobInventoryPolicy.json | 36 +- .../StorageAccountGetEncryptionScope.json | 20 +- .../StorageAccountGetManagementPolicy.json | 46 +- .../StorageAccountGetMigrationFailed.json | 18 +- .../StorageAccountGetMigrationInProgress.json | 16 +- ...rageAccountGetObjectReplicationPolicy.json | 40 +- ...geAccountGetPrivateEndpointConnection.json | 22 +- .../examples/StorageAccountGetProperties.json | 100 +- ...StorageAccountGetPropertiesCMKEnabled.json | 104 +- ...GetPropertiesCMKVersionExpirationTime.json | 106 +- ...esGeoReplicationStatscanFailoverFalse.json | 104 +- ...iesGeoReplicationStatscanFailoverTrue.json | 104 +- ...AccountHierarchicalNamespaceMigration.json | 10 +- .../StorageAccountLeverageIPv6Ability.json | 58 +- .../examples/StorageAccountList.json | 212 +- .../StorageAccountListAccountSAS.json | 20 +- ...StorageAccountListBlobInventoryPolicy.json | 34 +- .../StorageAccountListByResourceGroup.json | 28 +- .../examples/StorageAccountListKeys.json | 10 +- .../StorageAccountListLocationUsage.json | 18 +- ...eAccountListObjectReplicationPolicies.json | 22 +- ...AccountListPrivateEndpointConnections.json | 30 +- ...torageAccountListPrivateLinkResources.json | 22 +- .../StorageAccountListServiceSAS.json | 14 +- .../StorageAccountPatchEncryptionScope.json | 30 +- .../examples/StorageAccountPostMigration.json | 10 +- .../StorageAccountPutEncryptionScope.json | 32 +- ...tionScopeWithInfrastructureEncryption.json | 34 +- ...geAccountPutPrivateEndpointConnection.json | 26 +- .../StorageAccountRegenerateKerbKey.json | 10 +- .../examples/StorageAccountRegenerateKey.json | 10 +- ...torageAccountRevokeUserDelegationKeys.json | 10 +- .../StorageAccountSetBlobInventoryPolicy.json | 74 +- ...ncludeDeleteAndNewSchemaForHnsAccount.json | 74 +- ...udeDeleteAndNewSchemaForNonHnsAccount.json | 74 +- .../StorageAccountSetManagementPolicy.json | 158 +- ...untSetManagementPolicyColdTierActions.json | 90 +- ...anagementPolicyForBlockAndAppendBlobs.json | 62 +- ...ountSetManagementPolicyHotTierActions.json | 58 +- ...anagementPolicyWithSnapshotAndVersion.json | 106 +- ...licy_BaseBlobDaysAfterCreationActions.json | 74 +- ...Policy_LastAccessTimeBasedBlobActions.json | 82 +- ...ementPolicy_LastTierChangeTimeActions.json | 82 +- .../examples/StorageAccountUpdate.json | 166 +- ...ageAccountUpdateAllowedCopyScopeToAAD.json | 158 +- ...countUpdateDisablePublicNetworkAccess.json | 158 +- ...eObjectReplicationPolicyOnDestination.json | 64 +- ...UpdateObjectReplicationPolicyOnSource.json | 66 +- ...UserAssignedEncryptionIdentityWithCMK.json | 114 +- ...IdentityWithFederatedIdentityClientId.json | 120 +- ...geAccountUpdateWithImmutabilityPolicy.json | 28 +- .../StorageAccountUpdate_placement.json | 178 +- .../examples/StorageAccountUpdate_zones.json | 164 +- .../examples/TableOperationDelete.json | 12 +- .../examples/TableOperationGet.json | 14 +- .../examples/TableOperationList.json | 18 +- .../examples/TableOperationPatch.json | 14 +- .../examples/TableOperationPut.json | 14 +- .../TableOperationPutOrPatchAcls.json | 50 +- ...bleOperationPutOrPatchAclsTableCreate.json | 64 + .../2025-06-01/examples/TableServicesGet.json | 56 +- .../examples/TableServicesList.json | 54 +- .../2025-06-01/examples/TableServicesPut.json | 98 +- .../DeleteStorageTaskAssignment.json | 11 +- .../GetStorageTaskAssignment.json | 22 +- .../PatchStorageTaskAssignment.json | 31 +- .../PutStorageTaskAssignment.json | 47 +- ...orageTaskAssignmentRequiredProperties.json | 35 +- ...eTaskAssignmentInstancesReportSummary.json | 46 +- .../ListStorageTaskAssignmentsForAccount.json | 34 +- ...TaskAssignmentsInstancesReportSummary.json | 46 +- .../stable/2025-06-01/file.json | 1509 -- .../2025-06-01/networkSecurityPerimeter.json | 447 - .../stable/2025-06-01/openapi.json | 14359 ++++++++++++++++ .../stable/2025-06-01/privatelinks.json | 174 - .../stable/2025-06-01/queue.json | 564 - .../stable/2025-06-01/storage.json | 6079 ------- .../2025-06-01/storageTaskAssignments.json | 802 - .../stable/2025-06-01/table.json | 570 - .../storage/resource-manager/readme.md | 10 +- 406 files changed, 47764 insertions(+), 18790 deletions(-) create mode 100644 specification/storage/Storage.Management/BlobContainer.tsp create mode 100644 specification/storage/Storage.Management/BlobInventoryPolicy.tsp create mode 100644 specification/storage/Storage.Management/BlobServiceProperties.tsp create mode 100644 specification/storage/Storage.Management/DeletedAccount.tsp create mode 100644 specification/storage/Storage.Management/EncryptionScope.tsp create mode 100644 specification/storage/Storage.Management/FileServiceProperties.tsp create mode 100644 specification/storage/Storage.Management/FileServiceUsage.tsp create mode 100644 specification/storage/Storage.Management/FileShare.tsp create mode 100644 specification/storage/Storage.Management/ImmutabilityPolicy.tsp create mode 100644 specification/storage/Storage.Management/LocalUser.tsp create mode 100644 specification/storage/Storage.Management/ManagementPolicy.tsp create mode 100644 specification/storage/Storage.Management/NetworkSecurityPerimeterConfiguration.tsp create mode 100644 specification/storage/Storage.Management/ObjectReplicationPolicy.tsp create mode 100644 specification/storage/Storage.Management/PrivateEndpointConnection.tsp create mode 100644 specification/storage/Storage.Management/QueueServiceProperties.tsp create mode 100644 specification/storage/Storage.Management/StorageAccount.tsp create mode 100644 specification/storage/Storage.Management/StorageAccountMigration.tsp create mode 100644 specification/storage/Storage.Management/StorageQueue.tsp create mode 100644 specification/storage/Storage.Management/StorageTaskAssignment.tsp create mode 100644 specification/storage/Storage.Management/Table.tsp create mode 100644 specification/storage/Storage.Management/TableServiceProperties.tsp create mode 100644 specification/storage/Storage.Management/back-compatible.tsp create mode 100644 specification/storage/Storage.Management/client.tsp create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersClearLegalHold.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersDelete.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersDeleteImmutabilityPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersExtendImmutabilityPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersGet.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersGetImmutabilityPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersGetWithAllowProtectedAppendWritesAll.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersLease_Acquire.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersLease_Break.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersLockImmutabilityPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPatch.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPut.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutDefaultEncryptionScope.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutImmutabilityPolicy.json rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json (70%) create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutObjectLevelWorm.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersSetLegalHold.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobContainersSetLegalHoldAllowProtectedAppendWritesAll.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobRangesRestore.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobServicesGet.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobServicesList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobServicesPut.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobServicesPutAllowPermanentDelete.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/BlobServicesPutLastAccessTimeBasedTracking.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/DeletedAccountGet.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/DeletedAccountList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/DeletedBlobContainersList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/DeletedFileSharesList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileServicesGet.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileServicesGetUsage.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileServicesList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileServicesListUsages.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut_EnableSMBMultichannel.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut_EnableSecureSmbFeatures.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut_EncryptionInTransitRequired.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileShareAclsPatch.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileShareSnapshotsList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesDelete.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet_PaidBursting.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet_ProvisionedV2.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet_Stats.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesLease_Acquire.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesLease_Break.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesList_PaidBursting.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesList_ProvisionedV2.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesPatch.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesPatch_PaidBursting.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesPatch_ProvisionedV2.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_AccessTier.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_NFS.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_PaidBursting.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_ProvisionedV2.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/FileSharesRestore.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/LocalUserCreate.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/LocalUserCreateNFSv3Enabled.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/LocalUserDelete.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/LocalUserGet.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/LocalUserListKeys.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/LocalUserRegeneratePassword.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/LocalUserUpdate.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/LocalUsersList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/LocalUsersListNFSv3Enabled.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/NetworkSecurityPerimeterConfigurationGet.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/NetworkSecurityPerimeterConfigurationList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/NetworkSecurityPerimeterConfigurationReconcile.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/NfsV3AccountCreate.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/ObjectLevelWormContainerMigration.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/OperationsList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/QueueOperationDelete.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/QueueOperationGet.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/QueueOperationList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/QueueOperationPatch.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/QueueOperationPut.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/QueueOperationPutWithMetadata.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/QueueServicesGet.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/QueueServicesList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/QueueServicesPut.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/SKUList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/SKUListWithLocationInfo.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountAbortHierarchicalNamespaceMigration.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCheckNameAvailability.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreate.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateAllowedCopyScopeToAAD.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateAllowedCopyScopeToPrivateLink.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateDisallowPublicNetworkAccess.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateDnsEndpointTypeToAzureDnsZone.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateDnsEndpointTypeToStandard.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateEnablePublicNetworkAccess.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateObjectReplicationPolicyOnDestination.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateObjectReplicationPolicyOnSource.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreatePremiumBlockBlobStorage.json rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json (82%) rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json (79%) create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateWithImmutabilityPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreate_placement.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreate_zones.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDelete.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeleteBlobInventoryPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeleteManagementPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeleteObjectReplicationPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeletePrivateEndpointConnection.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEnableAD.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEnableCMK.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEnableSmbOAuth.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEncryptionScopeList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountFailover.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountFailoverPlanned.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetAsyncSkuConversionStatus.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetBlobInventoryPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetEncryptionScope.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetManagementPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetMigrationFailed.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetMigrationInProgress.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetObjectReplicationPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPrivateEndpointConnection.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetProperties.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesCMKEnabled.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesCMKVersionExpirationTime.json rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json (80%) rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json (80%) create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountHierarchicalNamespaceMigration.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountLeverageIPv6Ability.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListAccountSAS.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListBlobInventoryPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListByResourceGroup.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListKeys.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListLocationUsage.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListObjectReplicationPolicies.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListPrivateEndpointConnections.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListPrivateLinkResources.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListServiceSAS.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPatchEncryptionScope.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPostMigration.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPutEncryptionScope.json rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json (77%) create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPutPrivateEndpointConnection.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountRegenerateKerbKey.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountRegenerateKey.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountRevokeUserDelegationKeys.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetBlobInventoryPolicy.json rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json (90%) rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json (90%) create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyColdTierActions.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyForBlockAndAppendBlobs.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyHotTierActions.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyWithSnapshotAndVersion.json rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json (85%) rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json (82%) rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json (84%) create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdate.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateAllowedCopyScopeToAAD.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateDisablePublicNetworkAccess.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateObjectReplicationPolicyOnDestination.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateObjectReplicationPolicyOnSource.json rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json (81%) rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json (79%) create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateWithImmutabilityPolicy.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdate_placement.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdate_zones.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/TableOperationDelete.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/TableOperationGet.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/TableOperationList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/TableOperationPatch.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/TableOperationPut.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/TableOperationPutOrPatchAcls.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/TableOperationPutOrPatchAclsTableCreate.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/TableServicesGet.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/TableServicesList.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/TableServicesPut.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/DeleteStorageTaskAssignment.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/GetStorageTaskAssignment.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/PatchStorageTaskAssignment.json create mode 100644 specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/PutStorageTaskAssignment.json rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json (82%) rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json (88%) rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json (83%) rename specification/storage/{resource-manager/Microsoft.Storage/stable/2025-01-01/examples => Storage.Management/examples/2025-06-01}/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json (88%) create mode 100644 specification/storage/Storage.Management/main.tsp create mode 100644 specification/storage/Storage.Management/models.tsp create mode 100644 specification/storage/Storage.Management/routes.tsp create mode 100644 specification/storage/Storage.Management/tspconfig.yaml delete mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/blob.json delete mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/common.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPutOrPatchAclsTableCreate.json delete mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/file.json delete mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/networkSecurityPerimeter.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/openapi.json delete mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/privatelinks.json delete mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/queue.json delete mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/storage.json delete mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/storageTaskAssignments.json delete mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/table.json diff --git a/specification/storage/Storage.Management/BlobContainer.tsp b/specification/storage/Storage.Management/BlobContainer.tsp new file mode 100644 index 000000000000..6a23713643f5 --- /dev/null +++ b/specification/storage/Storage.Management/BlobContainer.tsp @@ -0,0 +1,129 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./BlobServiceProperties.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * Properties of the blob container, including Id, resource name, resource type, Etag. + */ +@parentResource(BlobServiceProperties) +model BlobContainer + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = BlobContainer, + KeyName = "containerName", + SegmentName = "containers", + NamePattern = "" + >; + + /** + * Resource Etag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + etag?: string; +} + +@armResourceOperations +interface BlobContainers { + /** + * Gets properties of a specified container. + */ + get is ArmResourceRead; + + /** + * Creates a new container under the specified account as described by request body. The container resource includes metadata and properties for that container. It does not include a list of the blobs contained by the container. + */ + create is ArmResourceCreateOrReplaceSync< + BlobContainer, + Error = ErrorResponse + >; + + /** + * Updates container properties as specified in request body. Properties not mentioned in the request will be unchanged. Update fails if the specified container doesn't already exist. + */ + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchSync< + BlobContainer, + PatchModel = BlobContainer, + Error = ErrorResponse + >; + + /** + * Deletes specified container under its account. + */ + delete is ArmResourceDeleteSync; + + /** + * Sets legal hold tags. Setting the same tag results in an idempotent operation. SetLegalHold follows an append pattern and does not clear out the existing tags that are not specified in the request. + */ + setLegalHold is ArmResourceActionSync< + BlobContainer, + LegalHold, + ArmResponse, + Error = ErrorResponse + >; + + /** + * Clears legal hold tags. Clearing the same or non-existent tag results in an idempotent operation. ClearLegalHold clears out only the specified tags in the request. + */ + clearLegalHold is ArmResourceActionSync< + BlobContainer, + LegalHold, + ArmResponse, + Error = ErrorResponse + >; + + /** + * The Lease Container operation establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite. + */ + lease is ArmResourceActionSync< + BlobContainer, + LeaseContainerRequest, + ArmResponse, + Error = ErrorResponse, + OptionalRequestBody = true + >; + + /** + * This operation migrates a blob container from container level WORM to object level immutability enabled container. Prerequisites require a container level immutability policy either in locked or unlocked state, Account level versioning must be enabled and there should be no Legal hold on the container. + */ + @action("migrate") + objectLevelWorm is ArmResourceActionAsync< + BlobContainer, + void, + { + @body body: void; + }, + Error = CloudError, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmLroLocationHeader + >; +} + +@@maxLength(BlobContainer.name, 63); +@@minLength(BlobContainer.name, 3); +@@doc(BlobContainer.name, + "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number." +); +@@doc(BlobContainer.properties, "Properties of the blob container."); +@@doc(BlobContainers.create::parameters.resource, + "Properties of the blob container to create." +); +@@doc(BlobContainers.update::parameters.properties, + "Properties to update for the blob container." +); +@@doc(BlobContainers.setLegalHold::parameters.body, + "The LegalHold property that will be set to a blob container." +); +@@doc(BlobContainers.clearLegalHold::parameters.body, + "The LegalHold property that will be clear from a blob container." +); diff --git a/specification/storage/Storage.Management/BlobInventoryPolicy.tsp b/specification/storage/Storage.Management/BlobInventoryPolicy.tsp new file mode 100644 index 000000000000..072006014883 --- /dev/null +++ b/specification/storage/Storage.Management/BlobInventoryPolicy.tsp @@ -0,0 +1,69 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The storage account blob inventory policy. + */ +@parentResource(StorageAccount) +model BlobInventoryPolicy + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = BlobInventoryPolicy, + KeyName = "blobInventoryPolicyName", + SegmentName = "inventoryPolicies", + NamePattern = "", + Type = BlobInventoryPolicyName + >; +} + +@armResourceOperations +interface BlobInventoryPolicies { + /** + * Gets the blob inventory policy associated with the specified storage account. + */ + get is ArmResourceRead; + + /** + * Sets the blob inventory policy to the specified storage account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + createOrUpdate is ArmResourceCreateOrReplaceSync< + BlobInventoryPolicy, + Response = ArmResourceUpdatedResponse, + Error = CloudError + >; + + /** + * Deletes the blob inventory policy associated with the specified storage account. + */ + delete is ArmResourceDeleteSync; + + /** + * Gets the blob inventory policy associated with the specified storage account. + */ + list is ArmResourceListByParent< + BlobInventoryPolicy, + Response = ArmResponse, + Error = ErrorResponse + >; +} + +@@doc(BlobInventoryPolicy.name, + "The name of the storage account blob inventory policy. It should always be 'default'" +); +@@doc(BlobInventoryPolicy.properties, + "Returns the storage account blob inventory policy rules." +); +@@doc(BlobInventoryPolicies.createOrUpdate::parameters.resource, + "The blob inventory policy set to a storage account." +); diff --git a/specification/storage/Storage.Management/BlobServiceProperties.tsp b/specification/storage/Storage.Management/BlobServiceProperties.tsp new file mode 100644 index 000000000000..7b40cd51bf9a --- /dev/null +++ b/specification/storage/Storage.Management/BlobServiceProperties.tsp @@ -0,0 +1,105 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The properties of a storage account’s Blob service. + */ +@singleton("default") +@parentResource(StorageAccount) +model BlobServiceProperties + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = BlobServiceProperties, + KeyName = "blobService", + SegmentName = "blobServices", + NamePattern = "" + >; + + /** + * Sku name and tier. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + sku?: Sku; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armResourceOperations +interface BlobServices { + /** + * Gets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. + */ + getServiceProperties is ArmResourceRead< + BlobServiceProperties, + Error = ErrorResponse + >; + + /** + * Sets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + setServiceProperties is ArmResourceCreateOrReplaceSync< + BlobServiceProperties, + Response = ArmResourceUpdatedResponse, + Error = ErrorResponse + >; + + /** + * List blob services of storage account. It returns a collection of one object named default. + */ + list is ArmResourceListByParent< + BlobServiceProperties, + Response = ArmResponse, + Error = ErrorResponse + >; + + /** + * Lists all containers and does not support a prefix like data plane. Also SRP today does not return continuation token. + */ + @get + @list + @action("containers") + blobContainersList is ArmResourceActionSync< + BlobServiceProperties, + void, + ArmResponse, + Parameters = { + /** + * Optional. Specified maximum number of containers that can be included in the list. + */ + @query("$maxpagesize") + $maxpagesize?: string; + + /** + * Optional. When specified, only container names starting with the filter will be listed. + */ + @query("$filter") + $filter?: string; + + /** + * Optional, used to include the properties for soft deleted blob containers. + */ + @query("$include") + $include?: ListContainersInclude; + }, + Error = ErrorResponse + >; +} + +@@doc(BlobServiceProperties.name, ""); +@@doc(BlobServiceProperties.properties, + "The properties of a storage account’s Blob service." +); +@@doc(BlobServices.setServiceProperties::parameters.resource, + "The properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules." +); diff --git a/specification/storage/Storage.Management/DeletedAccount.tsp b/specification/storage/Storage.Management/DeletedAccount.tsp new file mode 100644 index 000000000000..48981e843405 --- /dev/null +++ b/specification/storage/Storage.Management/DeletedAccount.tsp @@ -0,0 +1,43 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * Deleted storage account + */ +@subscriptionResource +@parentResource(SubscriptionLocationResource) +model DeletedAccount + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = DeletedAccount, + KeyName = "deletedAccountName", + SegmentName = "deletedAccounts", + NamePattern = "" + >; +} + +@armResourceOperations +interface DeletedAccounts { + /** + * Get properties of specified deleted account resource. + */ + get is ArmResourceRead< + DeletedAccount, + BaseParameters = Azure.ResourceManager.Foundations.SubscriptionBaseParameters, + Error = ErrorResponse + >; +} + +@@maxLength(DeletedAccount.name, 24); +@@minLength(DeletedAccount.name, 3); +@@doc(DeletedAccount.name, "Name of the deleted storage account."); +@@doc(DeletedAccount.properties, "Properties of the deleted account."); diff --git a/specification/storage/Storage.Management/EncryptionScope.tsp b/specification/storage/Storage.Management/EncryptionScope.tsp new file mode 100644 index 000000000000..c0c7183eb000 --- /dev/null +++ b/specification/storage/Storage.Management/EncryptionScope.tsp @@ -0,0 +1,92 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The Encryption Scope resource. + */ +@parentResource(StorageAccount) +model EncryptionScope + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = EncryptionScope, + KeyName = "encryptionScopeName", + SegmentName = "encryptionScopes", + NamePattern = "" + >; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armResourceOperations +interface EncryptionScopes { + /** + * Returns the properties for the specified encryption scope. + */ + get is ArmResourceRead; + + /** + * Synchronously creates or updates an encryption scope under the specified storage account. If an encryption scope is already created and a subsequent request is issued with different properties, the encryption scope properties will be updated per the specified request. + */ + put is ArmResourceCreateOrReplaceSync; + + /** + * Update encryption scope properties as specified in the request body. Update fails if the specified encryption scope does not already exist. + */ + @patch(#{ implicitOptionality: false }) + patch is ArmCustomPatchSync< + EncryptionScope, + PatchModel = EncryptionScope, + Error = ErrorResponse + >; + + /** + * Lists all the encryption scopes available under the specified storage account. + */ + list is ArmResourceListByParent< + EncryptionScope, + Parameters = { + /** + * Optional, specifies the maximum number of encryption scopes that will be included in the list response. + */ + @maxValue(5000) + @minValue(1) + @query("$maxpagesize") + $maxpagesize?: int32; + + /** + * Optional. When specified, only encryption scope names starting with the filter will be listed. + */ + @query("$filter") + $filter?: string; + + /** + * Optional, when specified, will list encryption scopes with the specific state. Defaults to All + */ + @query("$include") + $include?: ListEncryptionScopesInclude; + }, + Error = ErrorResponse + >; +} + +@@maxLength(EncryptionScope.name, 63); +@@minLength(EncryptionScope.name, 3); +@@doc(EncryptionScope.name, + "The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number." +); +@@doc(EncryptionScope.properties, "Properties of the encryption scope."); +@@doc(EncryptionScopes.put::parameters.resource, + "Encryption scope properties to be used for the create or update." +); +@@doc(EncryptionScopes.patch::parameters.properties, + "Encryption scope properties to be used for the update." +); diff --git a/specification/storage/Storage.Management/FileServiceProperties.tsp b/specification/storage/Storage.Management/FileServiceProperties.tsp new file mode 100644 index 000000000000..7b4f21f21d45 --- /dev/null +++ b/specification/storage/Storage.Management/FileServiceProperties.tsp @@ -0,0 +1,106 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The properties of File services in storage account. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@singleton("default") +@parentResource(StorageAccount) +model FileServiceProperties + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = FileServiceProperties, + KeyName = "FileServicesName", + SegmentName = "fileServices", + NamePattern = "" + >; + + /** + * Sku name and tier. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + sku?: Sku; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armResourceOperations +interface FileServices { + /** + * Gets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules. + */ + getServiceProperties is ArmResourceRead< + FileServiceProperties, + Error = CloudError + >; + + /** + * Sets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + setServiceProperties is ArmResourceCreateOrReplaceSync< + FileServiceProperties, + Response = ArmResourceUpdatedResponse, + Error = CloudError + >; + + /** + * List all file services in storage accounts + */ + list is Azure.ResourceManager.Legacy.ArmListSinglePageByParent< + FileServiceProperties, + Response = ArmResponse, + Error = CloudError + >; + + /** + * Lists all shares. + */ + @get + @list + @action("shares") + fileSharesList is ArmResourceActionSync< + FileServiceProperties, + void, + ArmResponse, + Parameters = { + /** + * Optional. Specified maximum number of shares that can be included in the list. + */ + @query("$maxpagesize") + $maxpagesize?: string; + + /** + * Optional. When specified, only share names starting with the filter will be listed. + */ + @query("$filter") + $filter?: string; + + /** + * Optional, used to expand the properties within share's properties. Valid values are: deleted, snapshots. Should be passed as a string with delimiter ',' + */ + @query("$expand") + $expand?: string; + }, + Error = CloudError + >; +} + +@@doc(FileServiceProperties.name, ""); +@@doc(FileServiceProperties.properties, + "The properties of File services in storage account." +); +@@doc(FileServices.setServiceProperties::parameters.resource, + "The properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules." +); diff --git a/specification/storage/Storage.Management/FileServiceUsage.tsp b/specification/storage/Storage.Management/FileServiceUsage.tsp new file mode 100644 index 000000000000..a736b175081a --- /dev/null +++ b/specification/storage/Storage.Management/FileServiceUsage.tsp @@ -0,0 +1,56 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The usage of file service in storage account. + */ +@parentResource(FileServiceProperties) +@singleton("default") +model FileServiceUsage + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = FileServiceUsage, + KeyName = "fileServiceUsageName", + SegmentName = "usages", + NamePattern = "" + >; +} + +@armResourceOperations +interface FileServiceUsageOperationGroup { + /** + * Gets the usage of file service in storage account including account limits, file share limits and constants used in recommendations and bursting formula. + */ + getServiceUsage is ArmResourceRead; + + /** + * Gets the usages of file service in storage account. + */ + listServiceUsages is ArmResourceListByParent< + FileServiceUsage, + Parameters = { + /** + * Optional, specifies the maximum number of file service usages to be included in the list response. + */ + @query("$maxpagesize") + $maxpagesize?: int32; + }, + Response = ArmResponse, + Error = CloudError + >; +} + +@@doc(FileServiceUsage.name, ""); +@@doc(FileServiceUsage.properties, + "File service usage in storage account including account limits, file share limits and constants used in recommendations and bursting formula." +); diff --git a/specification/storage/Storage.Management/FileShare.tsp b/specification/storage/Storage.Management/FileShare.tsp new file mode 100644 index 000000000000..189f33e95d51 --- /dev/null +++ b/specification/storage/Storage.Management/FileShare.tsp @@ -0,0 +1,147 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./FileServiceProperties.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * Properties of the file share, including Id, resource name, resource type, Etag. + */ +@parentResource(FileServiceProperties) +model FileShare is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = FileShare, + KeyName = "shareName", + SegmentName = "shares", + NamePattern = "" + >; + + /** + * Resource Etag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + etag?: string; +} + +@armResourceOperations +interface FileShares { + /** + * Gets properties of a specified share. + */ + get is ArmResourceRead< + FileShare, + Parameters = { + /** + * Optional, used to expand the properties within share's properties. Valid values are: stats. Should be passed as a string with delimiter ','. + */ + @query("$expand") + $expand?: string; + + /** + * Optional, used to retrieve properties of a snapshot. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header + `x-ms-snapshot`?: string; + }, + Error = CloudError + >; + + /** + * Creates a new share under the specified account as described by request body. The share resource includes metadata and properties for that share. It does not include a list of the files contained by the share. + */ + create is ArmResourceCreateOrReplaceSync< + FileShare, + Parameters = { + /** + * Optional, used to expand the properties within share's properties. Valid values are: snapshots. Should be passed as a string with delimiter ',' + */ + @query("$expand") + $expand?: string; + }, + Error = CloudError + >; + + /** + * Updates share properties as specified in request body. Properties not mentioned in the request will not be changed. Update fails if the specified share does not already exist. + */ + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchSync< + FileShare, + PatchModel = FileShare, + Error = CloudError + >; + + /** + * Deletes specified share under its account. + */ + delete is ArmResourceDeleteSync< + FileShare, + Parameters = { + /** + * Optional, used to delete a snapshot. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header + `x-ms-snapshot`?: string; + + /** + * Optional. Valid values are: snapshots, leased-snapshots, none. The default value is snapshots. For 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains leased-snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its file share snapshots (leased/unleased). For 'none', the file share is deleted if it has no share snapshots. If the file share contains any snapshots (leased or unleased), the deletion fails. + */ + @query("$include") + $include?: string; + }, + Error = CloudError + >; + + /** + * Restore a file share within a valid retention days if share soft delete is enabled + */ + restore is ArmResourceActionSync< + FileShare, + DeletedShare, + OkResponse, + Error = CloudError + >; + + /** + * The Lease Share operation establishes and manages a lock on a share for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite. + */ + lease is ArmResourceActionSync< + FileShare, + LeaseShareRequest, + Parameters = { + /** + * Optional. Specify the snapshot time to lease a snapshot. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header + `x-ms-snapshot`?: string; + }, + Error = CloudError, + Response = ArmResponse & ETagHeader, + OptionalRequestBody = true + >; +} + +@@maxLength(FileShare.name, 63); +@@minLength(FileShare.name, 3); +@@doc(FileShare.name, + "The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number." +); +@@doc(FileShare.properties, "Properties of the file share."); +@@doc(FileShares.create::parameters.resource, + "Properties of the file share to create." +); +@@doc(FileShares.update::parameters.properties, + "Properties to update for the file share." +); +@@doc(FileShares.restore::parameters.body, ""); diff --git a/specification/storage/Storage.Management/ImmutabilityPolicy.tsp b/specification/storage/Storage.Management/ImmutabilityPolicy.tsp new file mode 100644 index 000000000000..5630f08fb2ee --- /dev/null +++ b/specification/storage/Storage.Management/ImmutabilityPolicy.tsp @@ -0,0 +1,176 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./BlobContainer.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag. + */ +@singleton("default") +@parentResource(BlobContainer) +model ImmutabilityPolicy + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = ImmutabilityPolicy, + KeyName = "immutabilityPolicy", + SegmentName = "immutabilityPolicies", + NamePattern = "" + >; + + /** + * Resource Etag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + etag?: string; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface CreateOrUpdateImmutabilityPolicyOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + + @doc("The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.") + @path + @segment("storageAccounts") + @minLength(3) + @maxLength(24) + @pattern("^[a-z0-9]+$") + accountName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @path + @segment("blobServices") + blobServicesDefault: "default", + + @doc("The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.") + @path + @segment("containers") + @minLength(3) + @maxLength(63) + containerName: string, + }, + { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @path + @segment("immutabilityPolicies") + immutabilityPoliciesDefault: "default", + }, + ErrorType = ErrorResponse + > {} + +@armResourceOperations +interface ImmutabilityPolicies { + /** + * Gets the existing immutability policy along with the corresponding ETag in response headers and body. + */ + getImmutabilityPolicy is ArmResourceRead< + ImmutabilityPolicy, + Parameters = { + /** + * The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header("If-Match") + `If-Match`?: string; + }, + Response = ArmResponse & ETagHeader, + Error = ErrorResponse + >; + + /** + * Creates or updates an unlocked immutability policy. ETag in If-Match is honored if given but not required for this operation. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility" + createOrUpdateImmutabilityPolicy is CreateOrUpdateImmutabilityPolicyOps.CreateOrUpdateSync< + ImmutabilityPolicy, + Parameters = { + /** + * The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header("If-Match") + `If-Match`?: string; + }, + Response = ArmResourceUpdatedResponse & ETagHeader, + OverrideErrorType = ErrorResponse, + OptionalRequestBody = true + >; + + /** + * Aborts an unlocked immutability policy. The response of delete has immutabilityPeriodSinceCreationInDays set to 0. ETag in If-Match is required for this operation. Deleting a locked immutability policy is not allowed, the only way is to delete the container after deleting all expired blobs inside the policy locked container. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + deleteImmutabilityPolicy is ArmResourceDeleteSync< + ImmutabilityPolicy, + Parameters = { + /** + * The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header("If-Match") + `If-Match`: string; + }, + Response = ArmResponse & ETagHeader, + Error = ErrorResponse + >; + + /** + * Sets the ImmutabilityPolicy to Locked state. The only action allowed on a Locked policy is ExtendImmutabilityPolicy action. ETag in If-Match is required for this operation. + */ + @action("lock") + lockImmutabilityPolicy is ArmResourceActionSync< + ImmutabilityPolicy, + void, + Parameters = { + /** + * The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header("If-Match") + `If-Match`: string; + }, + Response = ArmResponse & ETagHeader, + Error = ErrorResponse + >; + + /** + * Extends the immutabilityPeriodSinceCreationInDays of a locked immutabilityPolicy. The only action allowed on a Locked policy will be this action. ETag in If-Match is required for this operation. + */ + @action("extend") + extendImmutabilityPolicy is ArmResourceActionSync< + ImmutabilityPolicy, + ImmutabilityPolicy, + Parameters = { + /** + * The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header("If-Match") + `If-Match`: string; + }, + Response = ArmResponse & ETagHeader, + Error = ErrorResponse, + OptionalRequestBody = true + >; +} + +@@doc(ImmutabilityPolicy.name, ""); +@@doc(ImmutabilityPolicy.properties, + "The properties of an ImmutabilityPolicy of a blob container." +); +@@doc(ImmutabilityPolicies.createOrUpdateImmutabilityPolicy::parameters.resource, + "The ImmutabilityPolicy Properties that will be created or updated to a blob container." +); diff --git a/specification/storage/Storage.Management/LocalUser.tsp b/specification/storage/Storage.Management/LocalUser.tsp new file mode 100644 index 000000000000..26ee125c72fc --- /dev/null +++ b/specification/storage/Storage.Management/LocalUser.tsp @@ -0,0 +1,108 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The local user associated with the storage accounts. + */ +@parentResource(StorageAccount) +model LocalUser is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = LocalUser, + KeyName = "username", + SegmentName = "localUsers", + NamePattern = "" + >; +} + +@armResourceOperations +interface LocalUserOperationGroup { + /** + * Get the local user of the storage account by username. + */ + get is ArmResourceRead; + + /** + * Create or update the properties of a local user associated with the storage account. Properties for NFSv3 enablement and extended groups cannot be set with other properties. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility" + createOrUpdate is ArmResourceCreateOrReplaceSync< + LocalUser, + Response = ArmResourceUpdatedResponse, + Error = ErrorResponse + >; + + /** + * Deletes the local user associated with the specified storage account. + */ + delete is ArmResourceDeleteSync; + + /** + * List the local users associated with the storage account. + */ + list is ArmResourceListByParent< + LocalUser, + Parameters = { + /** + * Optional, specifies the maximum number of local users that will be included in the list response. + */ + @maxValue(5000) + @minValue(1) + @query("$maxpagesize") + $maxpagesize?: int32; + + /** + * Optional. When specified, only local user names starting with the filter will be listed. + */ + @query("$filter") + $filter?: string; + + /** + * Optional, when specified, will list local users enabled for the specific protocol. Lists all users by default. + */ + @query("$include") + $include?: ListLocalUserIncludeParam; + }, + Response = ArmResponse, + Error = ErrorResponse + >; + + /** + * List SSH authorized keys and shared key of the local user. + */ + listKeys is ArmResourceActionSync< + LocalUser, + void, + ArmResponse, + Error = ErrorResponse + >; + + /** + * Regenerate the local user SSH password. + */ + regeneratePassword is ArmResourceActionSync< + LocalUser, + void, + ArmResponse, + Error = ErrorResponse + >; +} + +@@maxLength(LocalUser.name, 64); +@@minLength(LocalUser.name, 3); +@@doc(LocalUser.name, + "The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account." +); +@@doc(LocalUser.properties, "Storage account local user properties."); +@@doc(LocalUserOperationGroup.createOrUpdate::parameters.resource, + "The local user associated with a storage account." +); diff --git a/specification/storage/Storage.Management/ManagementPolicy.tsp b/specification/storage/Storage.Management/ManagementPolicy.tsp new file mode 100644 index 000000000000..09604361fa10 --- /dev/null +++ b/specification/storage/Storage.Management/ManagementPolicy.tsp @@ -0,0 +1,60 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The Get Storage Account ManagementPolicies operation response. + */ +@parentResource(StorageAccount) +model ManagementPolicy + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = ManagementPolicy, + KeyName = "managementPolicyName", + SegmentName = "managementPolicies", + NamePattern = "", + Type = ManagementPolicyName + >; +} + +@armResourceOperations +interface ManagementPolicies { + /** + * Gets the managementpolicy associated with the specified storage account. + */ + get is ArmResourceRead; + + /** + * Sets the managementpolicy to the specified storage account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility" + createOrUpdate is ArmResourceCreateOrReplaceSync< + ManagementPolicy, + Response = ArmResourceUpdatedResponse, + Error = ErrorResponse + >; + + /** + * Deletes the managementpolicy associated with the specified storage account. + */ + delete is ArmResourceDeleteSync; +} + +@@doc(ManagementPolicy.name, + "The name of the Storage Account Management Policy. It should always be 'default'" +); +@@doc(ManagementPolicy.properties, + "Returns the Storage Account Data Policies Rules." +); +@@doc(ManagementPolicies.createOrUpdate::parameters.resource, + "The ManagementPolicy set to a storage account." +); diff --git a/specification/storage/Storage.Management/NetworkSecurityPerimeterConfiguration.tsp b/specification/storage/Storage.Management/NetworkSecurityPerimeterConfiguration.tsp new file mode 100644 index 000000000000..79a5ba39ab4f --- /dev/null +++ b/specification/storage/Storage.Management/NetworkSecurityPerimeterConfiguration.tsp @@ -0,0 +1,64 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The Network Security Perimeter configuration resource. + */ +@parentResource(StorageAccount) +model NetworkSecurityPerimeterConfiguration + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = NetworkSecurityPerimeterConfiguration, + KeyName = "networkSecurityPerimeterConfigurationName", + SegmentName = "networkSecurityPerimeterConfigurations", + NamePattern = "^.*$" + >; +} + +@armResourceOperations +interface NetworkSecurityPerimeterConfigurations { + /** + * Gets effective NetworkSecurityPerimeterConfiguration for association + */ + get is ArmResourceRead< + NetworkSecurityPerimeterConfiguration, + Error = ErrorResponse + >; + + /** + * Gets list of effective NetworkSecurityPerimeterConfiguration for storage account + */ + list is ArmResourceListByParent< + NetworkSecurityPerimeterConfiguration, + Response = ArmResponse, + Error = ErrorResponse + >; + + /** + * Refreshes any information about the association. + */ + reconcile is ArmResourceActionAsyncBase< + NetworkSecurityPerimeterConfiguration, + void, + ArmAcceptedLroResponse, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters, + Error = ErrorResponse + >; +} + +@@doc(NetworkSecurityPerimeterConfiguration.name, + "The name for Network Security Perimeter configuration" +); +@@doc(NetworkSecurityPerimeterConfiguration.properties, + "Properties of the Network Security Perimeter Configuration" +); diff --git a/specification/storage/Storage.Management/ObjectReplicationPolicy.tsp b/specification/storage/Storage.Management/ObjectReplicationPolicy.tsp new file mode 100644 index 000000000000..ad33eb6e5faf --- /dev/null +++ b/specification/storage/Storage.Management/ObjectReplicationPolicy.tsp @@ -0,0 +1,72 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The replication policy between two storage accounts. Multiple rules can be defined in one policy. + */ +@parentResource(StorageAccount) +model ObjectReplicationPolicy + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = ObjectReplicationPolicy, + KeyName = "objectReplicationPolicyId", + SegmentName = "objectReplicationPolicies", + NamePattern = "" + >; +} + +@armResourceOperations +interface ObjectReplicationPolicyOperationGroup { + /** + * Get the object replication policy of the storage account by policy ID. + */ + get is ArmResourceRead; + + /** + * Create or update the object replication policy of the storage account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + createOrUpdate is ArmResourceCreateOrReplaceSync< + ObjectReplicationPolicy, + Response = ArmResourceUpdatedResponse, + Error = ErrorResponse + >; + + /** + * Deletes the object replication policy associated with the specified storage account. + */ + delete is ArmResourceDeleteSync< + ObjectReplicationPolicy, + Error = ErrorResponse + >; + + /** + * List the object replication policies associated with the storage account. + */ + list is ArmResourceListByParent< + ObjectReplicationPolicy, + Response = ArmResponse, + Error = ErrorResponse + >; +} + +@@minLength(ObjectReplicationPolicy.name, 1); +@@doc(ObjectReplicationPolicy.name, + "For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file." +); +@@doc(ObjectReplicationPolicy.properties, + "Returns the Storage Account Object Replication Policy." +); +@@doc(ObjectReplicationPolicyOperationGroup.createOrUpdate::parameters.resource, + "The object replication policy set to a storage account. A unique policy ID will be created if absent." +); diff --git a/specification/storage/Storage.Management/PrivateEndpointConnection.tsp b/specification/storage/Storage.Management/PrivateEndpointConnection.tsp new file mode 100644 index 000000000000..777f6b5027dd --- /dev/null +++ b/specification/storage/Storage.Management/PrivateEndpointConnection.tsp @@ -0,0 +1,69 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The Private Endpoint Connection resource. + */ +@parentResource(StorageAccount) +model PrivateEndpointConnection + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = PrivateEndpointConnection, + KeyName = "privateEndpointConnectionName", + SegmentName = "privateEndpointConnections", + NamePattern = "" + >; +} + +@armResourceOperations +interface PrivateEndpointConnections { + /** + * Gets the specified private endpoint connection associated with the storage account. + */ + get is ArmResourceRead; + + /** + * Update the state of specified private endpoint connection associated with the storage account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + put is ArmResourceCreateOrReplaceSync< + PrivateEndpointConnection, + Response = ArmResourceUpdatedResponse, + Error = ErrorResponse + >; + + /** + * Deletes the specified private endpoint connection associated with the storage account. + */ + delete is ArmResourceDeleteSync< + PrivateEndpointConnection, + Error = ErrorResponse + >; + + /** + * List all the private endpoint connections associated with the storage account. + */ + list is ArmResourceListByParent< + PrivateEndpointConnection, + Response = ArmResponse, + Error = ErrorResponse + >; +} + +@@doc(PrivateEndpointConnection.name, + "The name of the private endpoint connection associated with the Azure resource" +); +@@doc(PrivateEndpointConnection.properties, "Resource properties."); +@@doc(PrivateEndpointConnections.put::parameters.resource, + "The private endpoint connection properties." +); diff --git a/specification/storage/Storage.Management/QueueServiceProperties.tsp b/specification/storage/Storage.Management/QueueServiceProperties.tsp new file mode 100644 index 000000000000..1dc6f29ac357 --- /dev/null +++ b/specification/storage/Storage.Management/QueueServiceProperties.tsp @@ -0,0 +1,92 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The properties of a storage account’s Queue service. + */ +@singleton("default") +@parentResource(StorageAccount) +model QueueServiceProperties + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = QueueServiceProperties, + KeyName = "queueService", + SegmentName = "queueServices", + NamePattern = "" + >; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armResourceOperations +interface QueueServices { + /** + * Gets the properties of a storage account’s Queue service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. + */ + getServiceProperties is ArmResourceRead< + QueueServiceProperties, + Error = CloudError + >; + + /** + * Sets the properties of a storage account’s Queue service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + setServiceProperties is ArmResourceCreateOrReplaceSync< + QueueServiceProperties, + Response = ArmResourceUpdatedResponse, + Error = CloudError + >; + + /** + * List all queue services for the storage account + */ + list is Azure.ResourceManager.Legacy.ArmListSinglePageByParent< + QueueServiceProperties, + Response = ArmResponse, + Error = CloudError + >; + + /** + * Gets a list of all the queues under the specified storage account + */ + @get + @list + @action("queues") + queueList is ArmResourceActionSync< + QueueServiceProperties, + void, + ArmResponse, + Parameters = { + /** + * Optional, a maximum number of queues that should be included in a list queue response + */ + @query("$maxpagesize") + $maxpagesize?: string; + + /** + * Optional, When specified, only the queues with a name starting with the given filter will be listed. + */ + @query("$filter") + $filter?: string; + }, + Error = CloudError + >; +} + +@@doc(QueueServiceProperties.name, ""); +@@doc(QueueServiceProperties.properties, + "The properties of a storage account’s Queue service." +); +@@doc(QueueServices.setServiceProperties::parameters.resource, + "The properties of a storage account’s Queue service, only properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules can be specified." +); diff --git a/specification/storage/Storage.Management/StorageAccount.tsp b/specification/storage/Storage.Management/StorageAccount.tsp new file mode 100644 index 000000000000..4dbd912ab8b6 --- /dev/null +++ b/specification/storage/Storage.Management/StorageAccount.tsp @@ -0,0 +1,349 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The storage account. + */ +model StorageAccount + is Azure.ResourceManager.TrackedResource { + ...ResourceNameParameter< + Resource = StorageAccount, + KeyName = "accountName", + SegmentName = "storageAccounts", + NamePattern = "^[a-z0-9]+$" + >; + + /** + * Gets the SKU. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + sku?: Sku; + + /** + * Gets the Kind. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + kind?: Kind; + + /** + * The identity of the resource. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + identity?: Identity; + + /** + * The extendedLocation of the resource. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + extendedLocation?: ExtendedLocation; + + ...Azure.ResourceManager.AvailabilityZonesProperty; + + /** + * Optional. Gets or sets the zonal placement details for the storage account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + placement?: Placement; +} + +@armResourceOperations +interface StorageAccounts { + /** + * Checks that the storage account name is valid and is not already in use. + */ + @autoRoute + checkNameAvailability is ArmProviderActionSync< + Request = StorageAccountCheckNameAvailabilityParameters, + Response = CheckNameAvailabilityResult, + Scope = SubscriptionActionScope, + Parameters = {}, + Error = ErrorResponse + >; + /** + * Returns the properties for the specified storage account including but not limited to name, SKU name, location, and account status. The ListKeys operation should be used to retrieve storage keys. + */ + getProperties is ArmResourceRead< + StorageAccount, + Parameters = { + /** + * May be used to expand the properties within account's properties. By default, data is not included when fetching properties. Currently we only support geoReplicationStats and blobRestoreStatus. + */ + @query("$expand") + $expand?: StorageAccountExpand; + }, + Error = ErrorResponse + >; + + /** + * Asynchronously creates a new storage account with the specified parameters. If an account is already created and a subsequent create request is issued with different properties, the account properties will be updated. If an account is already created and a subsequent create or update request is issued with the exact same set of properties, the request will succeed. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @armResourceCreateOrUpdate(StorageAccount) + @autoRoute + create is Azure.ResourceManager.Foundations.ArmCreateOperation< + ResourceInstanceParameters< + StorageAccount, + Azure.ResourceManager.Foundations.DefaultBaseParameters + >, + StorageAccountCreateParameters, + Response = ArmResourceUpdatedResponse | ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader>, + ErrorResponse = ErrorResponse + >; + + /** + * The update operation can be used to update the SKU, encryption, access tier, or tags for a storage account. It can also be used to map the account to a custom domain. Only one custom domain is supported per storage account; the replacement/change of custom domain is not supported. In order to replace an old custom domain, the old value must be cleared/unregistered before a new value can be set. The update of multiple properties is supported. This call does not change the storage keys for the account. If you want to change the storage account keys, use the regenerate keys operation. The location and name of the storage account cannot be changed after creation. + */ + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchSync< + StorageAccount, + PatchModel = StorageAccountUpdateParameters, + Error = ErrorResponse + >; + + /** + * Deletes a storage account in Microsoft Azure. + */ + delete is ArmResourceDeleteSync; + + /** + * Lists all the storage accounts available under the given resource group. Note that storage keys are not returned; use the ListKeys operation for this. + */ + listByResourceGroup is ArmResourceListByParent< + StorageAccount, + Error = ErrorResponse + >; + + /** + * Lists all the storage accounts available under the subscription. Note that storage keys are not returned; use the ListKeys operation for this. + */ + list is ArmListBySubscription; + + /** + * Lists the access keys or Kerberos keys (if active directory enabled) for the specified storage account. + */ + listKeys is ArmResourceActionSync< + StorageAccount, + void, + ArmResponse, + Parameters = { + /** + * Specifies type of the key to be listed. Possible value is kerb. + */ + @query("$expand") + $expand?: "kerb"; + }, + Error = ErrorResponse + >; + + /** + * Regenerates one of the access keys or Kerberos keys for the specified storage account. + */ + regenerateKey is ArmResourceActionSync< + StorageAccount, + StorageAccountRegenerateKeyParameters, + ArmResponse, + Error = ErrorResponse + >; + + /** + * List SAS credentials of a storage account. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @action("ListAccountSas") + listAccountSAS is ArmResourceActionSync< + StorageAccount, + AccountSasParameters, + ArmResponse, + Error = ErrorResponse + >; + + /** + * List service SAS credentials of a specific resource. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @action("ListServiceSas") + listServiceSAS is ArmResourceActionSync< + StorageAccount, + ServiceSasParameters, + ArmResponse, + Error = ErrorResponse + >; + + /** + * A failover request can be triggered for a storage account in the event a primary endpoint becomes unavailable for any reason. The failover occurs from the storage account's primary cluster to the secondary cluster for RA-GRS accounts. The secondary cluster will become primary after failover and the account is converted to LRS. In the case of a Planned Failover, the primary and secondary clusters are swapped after failover and the account remains geo-replicated. Failover should continue to be used in the event of availability issues as Planned failover is only available while the primary and secondary endpoints are available. The primary use case of a Planned Failover is disaster recovery testing drills. This type of failover is invoked by setting FailoverType parameter to 'Planned'. Learn more about the failover options here- https://learn.microsoft.com/azure/storage/common/storage-disaster-recovery-guidance + */ + failover is ArmResourceActionAsync< + StorageAccount, + void, + { + @body body: void; + }, + Parameters = { + /** + * The parameter is set to 'Planned' to indicate whether a Planned failover is requested. + */ + @query("failoverType") + failoverType?: "Planned"; + }, + Error = ErrorResponse, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmLroLocationHeader + >; + + /** + * Live Migration of storage account to enable Hns + */ + @action("hnsonmigration") + hierarchicalNamespaceMigration is ArmResourceActionAsync< + StorageAccount, + void, + { + @body body: void; + }, + Parameters = { + /** + * Required. Hierarchical namespace migration type can either be a hierarchical namespace validation request 'HnsOnValidationRequest' or a hydration request 'HnsOnHydrationRequest'. The validation request will validate the migration whereas the hydration request will migrate the account. + */ + @query("requestType") + requestType: string; + }, + Error = ErrorResponse, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmLroLocationHeader + >; + + /** + * Abort live Migration of storage account to enable Hns + */ + @action("aborthnsonmigration") + abortHierarchicalNamespaceMigration is ArmResourceActionAsync< + StorageAccount, + void, + { + @body body: void; + }, + Error = ErrorResponse, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmLroLocationHeader + >; + + /** + * Account Migration request can be triggered for a storage account to change its redundancy level. The migration updates the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region. + */ + @action("startAccountMigration") + customerInitiatedMigration is ArmResourceActionAsync< + StorageAccount, + StorageAccountMigration, + { + @body body: void; + }, + Error = ErrorResponse, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmLroLocationHeader + >; + + /** + * Restore blobs in the specified blob ranges + */ + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + restoreBlobRanges is ArmResourceActionAsyncBase< + StorageAccount, + BlobRestoreParameters, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters, + Response = ArmResponse | (ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> & { + @bodyRoot + _: BlobRestoreStatus; + }), + Error = ErrorResponse + >; + + /** + * Revoke user delegation keys. + */ + revokeUserDelegationKeys is ArmResourceActionSync< + StorageAccount, + void, + OkResponse, + Error = ErrorResponse + >; + + /** + * Gets the private link resources that need to be created for a storage account. + */ + @get + @action("privateLinkResources") + listByStorageAccount is ArmResourceActionSync< + StorageAccount, + void, + ArmResponse, + Error = ErrorResponse + >; + + /** + * Fetch the report summary of all the storage task assignments and instances in an account + */ + @get + @list + @action("reports") + storageTaskAssignmentsInstancesReportList is ArmResourceActionSync< + StorageAccount, + void, + ArmResponse, + Parameters = { + /** + * Optional, specifies the maximum number of storage task assignment instances to be included in the list response. + */ + @query("$maxpagesize") + $maxpagesize?: int32; + + /** + * Optional. When specified, it can be used to query using reporting properties. See [Constructing Filter Strings](https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#constructing-filter-strings) for details. + */ + @query("$filter") + $filter?: string; + }, + Error = ErrorResponse + >; +} + +@@maxLength(StorageAccount.name, 24); +@@minLength(StorageAccount.name, 3); +@@doc(StorageAccount.name, + "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only." +); +@@doc(StorageAccount.properties, "Properties of the storage account."); +@@doc(StorageAccounts.create::parameters.resource, + "The parameters to provide for the created account." +); +@@doc(StorageAccounts.update::parameters.properties, + "The parameters to provide for the updated account." +); +@@doc(StorageAccounts.regenerateKey::parameters.body, + "Specifies name of the key which should be regenerated -- key1, key2, kerb1, kerb2." +); +@@doc(StorageAccounts.listAccountSAS::parameters.body, + "The parameters to provide to list SAS credentials for the storage account." +); +@@doc(StorageAccounts.listServiceSAS::parameters.body, + "The parameters to provide to list service SAS credentials." +); +@@doc(StorageAccounts.customerInitiatedMigration::parameters.body, + "The request parameters required to perform storage account migration." +); +@@doc(StorageAccounts.restoreBlobRanges::parameters.body, + "The parameters to provide for restore blob ranges." +); diff --git a/specification/storage/Storage.Management/StorageAccountMigration.tsp b/specification/storage/Storage.Management/StorageAccountMigration.tsp new file mode 100644 index 000000000000..bbf56ff429eb --- /dev/null +++ b/specification/storage/Storage.Management/StorageAccountMigration.tsp @@ -0,0 +1,48 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The parameters or status associated with an ongoing or enqueued storage account migration in order to update its current SKU or region. + */ +@parentResource(StorageAccount) +model StorageAccountMigration + is Azure.ResourceManager.ProxyResource< + StorageAccountMigrationProperties, + false + > { + ...ResourceNameParameter< + Resource = StorageAccountMigration, + KeyName = "migrationName", + SegmentName = "accountMigrations", + NamePattern = "", + Type = MigrationName + >; +} + +@armResourceOperations +interface StorageAccountMigrations { + /** + * Gets the status of the ongoing migration for the specified storage account. + */ + getCustomerInitiatedMigration is ArmResourceRead< + StorageAccountMigration, + Error = ErrorResponse + >; +} + +@@doc(StorageAccountMigration.name, + "The name of the Storage Account Migration. It should always be 'default'" +); +@@doc(StorageAccountMigration.properties, + "The properties of a storage account’s ongoing or enqueued migration." +); diff --git a/specification/storage/Storage.Management/StorageQueue.tsp b/specification/storage/Storage.Management/StorageQueue.tsp new file mode 100644 index 000000000000..c084b1afbe3f --- /dev/null +++ b/specification/storage/Storage.Management/StorageQueue.tsp @@ -0,0 +1,74 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./QueueServiceProperties.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; + +@parentResource(QueueServiceProperties) +model StorageQueue is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = StorageQueue, + KeyName = "queueName", + SegmentName = "queues", + NamePattern = "^[a-z0-9]([a-z0-9]|(-(?!-))){1,61}[a-z0-9]$" + >; +} + +@armResourceOperations +interface StorageQueues { + /** + * Gets the queue with the specified queue name, under the specified account if it exists. + */ + get is ArmResourceRead; + + /** + * Creates a new queue with the specified queue name, under the specified account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + create is ArmResourceCreateOrReplaceSync< + StorageQueue, + Response = ArmResourceUpdatedResponse, + Error = CloudError + >; + + /** + * Creates a new queue with the specified queue name, under the specified account. + */ + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchSync< + StorageQueue, + PatchModel = StorageQueue, + Error = CloudError + >; + + /** + * Deletes the queue with the specified queue name, under the specified account if it exists. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteSync< + StorageQueue, + Response = ArmDeletedNoContentResponse, + Error = CloudError + >; +} + +@@maxLength(StorageQueue.name, 63); +@@minLength(StorageQueue.name, 3); +@@doc(StorageQueue.name, + "A queue name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an alphanumeric character and it cannot have two consecutive dash(-) characters." +); +@@doc(StorageQueue.properties, "Queue resource properties."); +@@doc(StorageQueues.create::parameters.resource, + "Queue properties and metadata to be created with" +); +@@doc(StorageQueues.update::parameters.properties, + "Queue properties and metadata to be created with" +); diff --git a/specification/storage/Storage.Management/StorageTaskAssignment.tsp b/specification/storage/Storage.Management/StorageTaskAssignment.tsp new file mode 100644 index 000000000000..e2347b789b79 --- /dev/null +++ b/specification/storage/Storage.Management/StorageTaskAssignment.tsp @@ -0,0 +1,144 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The storage task assignment. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@parentResource(StorageAccount) +@Http.Private.includeInapplicableMetadataInPayload(false) +model StorageTaskAssignment extends Resource { + ...ResourceNameParameter< + Resource = StorageTaskAssignment, + KeyName = "storageTaskAssignmentName", + SegmentName = "storageTaskAssignments", + NamePattern = "^[a-z][a-z0-9]{2,23}$" + >; + + /** + * Properties of the storage task assignment. + */ + properties: StorageTaskAssignmentProperties; +} + +@armResourceOperations +interface StorageTaskAssignments { + /** + * Get the storage task assignment properties + */ + get is ArmResourceRead; + + /** + * Asynchronously creates a new storage task assignment sub-resource with the specified parameters. If a storage task assignment is already created and a subsequent create request is issued with different properties, the storage task assignment properties will be updated. If a storage task assignment is already created and a subsequent create or update request is issued with the exact same set of properties, the request will succeed. + */ + @put + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrReplaceAsync< + StorageTaskAssignment, + Response = ArmResourceUpdatedResponse | ArmResourceCreatedResponse | ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader>, + Error = ErrorResponse + >; + + /** + * Update storage task assignment properties + */ + @patch(#{ implicitOptionality: false }) + @Azure.Core.useFinalStateVia("azure-async-operation") + update is ArmCustomPatchAsync< + StorageTaskAssignment, + StorageTaskAssignmentUpdateParameters, + Response = ArmResponse | ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader>, + Error = ErrorResponse + >; + + /** + * Delete the storage task assignment sub-resource + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @autoRoute + @armResourceDelete(StorageTaskAssignment) + @Azure.ResourceManager.Private.enforceConstraint( + StorageTaskAssignment, + Foundations.Resource + ) + @delete + delete is Azure.ResourceManager.ArmResourceDeleteAsyncBase< + Resource = StorageTaskAssignment, + Response = ArmAcceptedLroResponse | NoContentResponse, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters, + Error = ErrorResponse + >; + + /** + * List all the storage task assignments in an account + */ + list is ArmResourceListByParent< + StorageTaskAssignment, + Parameters = { + /** + * Optional, specifies the maximum number of storage task assignment Ids to be included in the list response. + */ + @query("$top") + $top?: int32; + }, + Response = ArmResponse, + Error = ErrorResponse + >; + + /** + * Fetch the report summary of a single storage task assignment's instances + */ + @get + @list + @action("reports") + storageTaskAssignmentInstancesReportList is ArmResourceActionSync< + StorageTaskAssignment, + void, + ArmResponse, + Parameters = { + /** + * Optional, specifies the maximum number of storage task assignment instances to be included in the list response. + */ + @query("$maxpagesize") + $maxpagesize?: int32; + + /** + * Optional. When specified, it can be used to query using reporting properties. See [Constructing Filter Strings](https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#constructing-filter-strings) for details. + */ + @query("$filter") + $filter?: string; + }, + Error = ErrorResponse + >; +} + +@@maxLength(StorageTaskAssignment.name, 24); +@@minLength(StorageTaskAssignment.name, 3); +@@doc(StorageTaskAssignment.name, + "The name of the storage task assignment within the specified resource group. Storage task assignment names must be between 3 and 24 characters in length and use numbers and lower-case letters only." +); +@@doc(StorageTaskAssignment.properties, + "Properties of the storage task assignment." +); +@@doc(StorageTaskAssignments.create::parameters.resource, + "The parameters to create a Storage Task Assignment." +); +@@doc(StorageTaskAssignments.update::parameters.properties, + "The parameters to update a Storage Task Assignment." +); +@@visibility(StorageTaskAssignment.name, Lifecycle.Read); diff --git a/specification/storage/Storage.Management/Table.tsp b/specification/storage/Storage.Management/Table.tsp new file mode 100644 index 000000000000..7d3a6ae546c7 --- /dev/null +++ b/specification/storage/Storage.Management/Table.tsp @@ -0,0 +1,126 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./TableServiceProperties.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * Properties of the table, including Id, resource name, resource type. + */ +@parentResource(TableServiceProperties) +model Table is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = Table, + KeyName = "tableName", + SegmentName = "tables", + NamePattern = "^[A-Za-z][A-Za-z0-9]{2,62}$" + >; +} + +@armResourceOperations +interface TablesCreateOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + }, + { + @path + @segment("storageAccounts") + @minLength(3) + @maxLength(24) + @pattern("^[a-z0-9]+$") + @doc("The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.") + accountName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @path + @segment("tableServices") + default: "default", + + @path + @segment("tables") + @minLength(3) + @maxLength(63) + @pattern("^[A-Za-z][A-Za-z0-9]{2,62}$") + @doc("A table name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of only alphanumeric characters and it cannot begin with a numeric character.") + tableName: string, + }, + KeysOf> + > {} + +@armResourceOperations +interface Tables { + /** + * Gets the table with the specified table name, under the specified account if it exists. + */ + get is ArmResourceRead; + + /** + * Creates a new table with the specified table name, under the specified account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + create is TablesCreateOps.CreateOrUpdateSync< + Table, + Response = ArmResourceUpdatedResponse, + OverrideErrorType = CloudError, + OptionalRequestBody = true + >; + /** + * Creates a new table with the specified table name, under the specified account. + */ + @patch(#{ implicitOptionality: false }) + update is TablesCreateOps.CustomPatchSync< + Table, + PatchModel = Table, + Response = ArmResourceUpdatedResponse
, + OverrideErrorType = CloudError, + OptionalRequestBody = true + >; + + /** + * Deletes the table with the specified table name, under the specified account if it exists. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteSync< + Table, + Response = ArmDeletedNoContentResponse, + Error = CloudError + >; + + /** + * Gets a list of all the tables under the specified storage account + */ + list is ArmResourceListByParent< + Table, + Response = ArmResponse, + Error = CloudError + >; +} + +@@maxLength(Table.name, 63); +@@minLength(Table.name, 3); +@@doc(Table.name, + "A table name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of only alphanumeric characters and it cannot begin with a numeric character." +); +@@doc(Table.properties, "Table resource properties."); +@@doc(Tables.create::parameters.resource, + "The parameters to provide to create a table." +); +@@doc(Tables.update::parameters.properties, + "The parameters to provide to create a table." +); diff --git a/specification/storage/Storage.Management/TableServiceProperties.tsp b/specification/storage/Storage.Management/TableServiceProperties.tsp new file mode 100644 index 000000000000..99f6f9021afd --- /dev/null +++ b/specification/storage/Storage.Management/TableServiceProperties.tsp @@ -0,0 +1,66 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./StorageAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; +/** + * The properties of a storage account’s Table service. + */ +@singleton("default") +@parentResource(StorageAccount) +model TableServiceProperties + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = TableServiceProperties, + KeyName = "tableService", + SegmentName = "tableServices", + NamePattern = "" + >; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armResourceOperations +interface TableServices { + /** + * Gets the properties of a storage account’s Table service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. + */ + getServiceProperties is ArmResourceRead< + TableServiceProperties, + Error = CloudError + >; + + /** + * Sets the properties of a storage account’s Table service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + setServiceProperties is ArmResourceCreateOrReplaceSync< + TableServiceProperties, + Response = ArmResourceUpdatedResponse, + Error = CloudError + >; + + /** + * List all table services for the storage account. + */ + list is Azure.ResourceManager.Legacy.ArmListSinglePageByParent< + TableServiceProperties, + Response = ArmResponse, + Error = CloudError + >; +} + +@@doc(TableServiceProperties.name, ""); +@@doc(TableServiceProperties.properties, + "The properties of a storage account’s Table service." +); +@@doc(TableServices.setServiceProperties::parameters.resource, + "The properties of a storage account’s Table service, only properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules can be specified." +); diff --git a/specification/storage/Storage.Management/back-compatible.tsp b/specification/storage/Storage.Management/back-compatible.tsp new file mode 100644 index 000000000000..60aaa1847d82 --- /dev/null +++ b/specification/storage/Storage.Management/back-compatible.tsp @@ -0,0 +1,387 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Azure.ClientGenerator.Core.Legacy; +using Microsoft.Storage; + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(ListContainerItem.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(ImmutabilityPolicyProperties.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(FileShareItem.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(ListQueue.properties); +@@clientName(ListQueue.properties, "QueueProperties"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(Operation.properties); +@@clientName(Operation.properties, "operationProperties"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(StorageAccountCreateParameters.properties); +@@clientName(StorageAccountPropertiesCreateParameters.isSftpEnabled, + "IsSftpEnabled" +); +@@clientName(StorageAccountPropertiesCreateParameters.isLocalUserEnabled, + "IsLocalUserEnabled" +); +@@clientName(StorageAccountPropertiesCreateParameters.isHnsEnabled, + "IsHnsEnabled" +); + +@@clientName(Encryption.keyvaultproperties, "KeyVaultProperties"); +@@clientName(Encryption.identity, "EncryptionIdentity"); +@@clientName(Encryption.requireInfrastructureEncryption, + "RequireInfrastructureEncryption" +); + +@@clientName(KeyVaultProperties.keyname, "KeyName"); +@@clientName(KeyVaultProperties.keyversion, "KeyVersion"); +@@clientName(KeyVaultProperties.keyvaulturi, "KeyVaultUri"); +@@clientName(KeyVaultProperties.currentVersionedKeyIdentifier, + "CurrentVersionedKeyIdentifier" +); +@@clientName(KeyVaultProperties.lastKeyRotationTimestamp, + "LastKeyRotationTimestamp" +); +@@clientName(KeyVaultProperties.currentVersionedKeyExpirationTimestamp, + "CurrentVersionedKeyExpirationTimestamp" +); + +@@clientName(EncryptionIdentity.userAssignedIdentity, + "EncryptionUserAssignedIdentity" +); +@@clientName(EncryptionIdentity.federatedIdentityClientId, + "EncryptionFederatedIdentityClientId" +); + +@@clientName(VirtualNetworkRule.id, "VirtualNetworkResourceId"); + +@@clientName(IPRule.value, "IPAddressOrRange", "!java, !javascript"); + +@@clientName(NetworkRuleSet.bypass, "Bypass"); + +@@clientName(StorageAccountProperties.supportsHttpsTrafficOnly, + "EnableHttpsTrafficOnly" +); +@@clientName(StorageAccountProperties.networkAcls, "NetworkRuleSet"); +@@clientName(StorageAccountProperties.isSftpEnabled, "IsSftpEnabled"); +@@clientName(StorageAccountProperties.isLocalUserEnabled, "IsLocalUserEnabled"); +@@clientName(StorageAccountProperties.isHnsEnabled, "IsHnsEnabled"); +@@clientName(StorageAccountProperties.isNfsV3Enabled, "EnableNfsV3"); +@@clientName(StorageAccountProperties.isSkuConversionBlocked, + "IsSkuConversionBlocked" +); +@@clientName(StorageAccountProperties.enableExtendedGroups, + "EnableExtendedGroups" +); +@@clientName(StorageAccountProperties.geoReplicationStats, + "GeoReplicationStats" +); +@@clientName(StorageAccountProperties.failoverInProgress, "FailoverInProgress"); +@@clientName(StorageAccountProperties.routingPreference, "RoutingPreference"); +@@clientName(StorageAccountProperties.blobRestoreStatus, "BlobRestoreStatus"); +@@clientName(StorageAccountProperties.allowBlobPublicAccess, + "AllowBlobPublicAccess" +); +@@clientName(StorageAccountProperties.immutableStorageWithVersioning, + "ImmutableStorageWithVersioning" +); +@@clientName(StorageAccountProperties.storageAccountSkuConversionStatus, + "StorageAccountSkuConversionStatus" +); +@@clientName(StorageAccountProperties.accountMigrationInProgress, + "AccountMigrationInProgress" +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(StorageAccountUpdateParameters.properties); + +@@clientName(StorageAccountPropertiesUpdateParameters.supportsHttpsTrafficOnly, + "EnableHttpsTrafficOnly" +); +@@clientName(StorageAccountPropertiesUpdateParameters.isSftpEnabled, + "IsSftpEnabled" +); +@@clientName(StorageAccountPropertiesUpdateParameters.isLocalUserEnabled, + "IsLocalUserEnabled" +); +@@clientName(StorageAccountPropertiesUpdateParameters.networkAcls, + "NetworkRuleSet" +); +@@clientName(StorageAccountPropertiesUpdateParameters.enableExtendedGroups, + "EnableExtendedGroups" +); +@@clientName(StorageAccountPropertiesUpdateParameters.routingPreference, + "RoutingPreference" +); +@@clientName(StorageAccountPropertiesUpdateParameters.allowBlobPublicAccess, + "AllowBlobPublicAccess" +); +@@clientName(StorageAccountPropertiesUpdateParameters.immutableStorageWithVersioning, + "ImmutableStorageWithVersioning" +); + +@@clientName(AccountSasParameters.signedServices, "Services"); +@@clientName(AccountSasParameters.signedResourceTypes, "ResourceTypes"); +@@clientName(AccountSasParameters.signedPermission, "Permissions"); +@@clientName(AccountSasParameters.signedIp, + "IPAddressOrRange", + "!java, !javascript" +); +@@clientName(AccountSasParameters.signedProtocol, "Protocols"); +@@clientName(AccountSasParameters.signedStart, "SharedAccessStartTime"); +@@clientName(AccountSasParameters.signedExpiry, "SharedAccessExpiryTime"); + +@@clientName(ServiceSasParameters.signedResource, "Resource"); +@@clientName(ServiceSasParameters.signedPermission, "Permissions"); +@@clientName(ServiceSasParameters.signedIp, + "IPAddressOrRange", + "!java, !javascript" +); +@@clientName(ServiceSasParameters.signedProtocol, "Protocols"); +@@clientName(ServiceSasParameters.signedStart, "SharedAccessStartTime"); +@@clientName(ServiceSasParameters.signedExpiry, "SharedAccessExpiryTime"); +@@clientName(ServiceSasParameters.signedIdentifier, "Identifier"); +@@clientName(ServiceSasParameters.startPk, "PartitionKeyStart"); +@@clientName(ServiceSasParameters.endPk, "PartitionKeyEnd"); +@@clientName(ServiceSasParameters.startRk, "RowKeyStart"); +@@clientName(ServiceSasParameters.endRk, "RowKeyEnd"); +@@clientName(ServiceSasParameters.rscc, "CacheControl"); +@@clientName(ServiceSasParameters.rscd, "ContentDisposition"); +@@clientName(ServiceSasParameters.rsce, "ContentEncoding"); +@@clientName(ServiceSasParameters.rscl, "ContentLanguage"); +@@clientName(ServiceSasParameters.rsct, "ContentType"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(PrivateLinkResource.properties); + +@@clientName(BlobServices.setServiceProperties::parameters.resource, + "parameters" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(BlobServiceProperties.properties); +@@clientName(BlobServiceProperties.properties, "BlobServiceProperties"); + +@@clientName(BlobContainers.create::parameters.resource, "blobContainer"); +@@clientName(BlobContainers.update::parameters.properties, "blobContainer"); +@@clientName(BlobContainers.setLegalHold::parameters.body, "LegalHold"); +@@clientName(BlobContainers.clearLegalHold::parameters.body, "LegalHold"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(BlobContainer.properties); +@@clientName(BlobContainer.properties, "ContainerProperties"); + +@@clientName(ContainerProperties.immutabilityPolicy, "ImmutabilityPolicy"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(ImmutabilityPolicy.properties); + +@@clientName(FileServices.setServiceProperties::parameters.resource, + "parameters" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(FileServiceProperties.properties); +@@clientName(FileServiceProperties.properties, "FileServiceProperties"); + +@@clientName(FileShares.create::parameters.resource, "fileShare"); +@@clientName(FileShares.update::parameters.properties, "fileShare"); +@@clientName(FileShares.restore::parameters.body, "deletedShare"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(FileShare.properties); +@@clientName(FileShare.properties, "FileShareProperties"); + +@@clientName(QueueServices.setServiceProperties::parameters.resource, + "parameters" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(QueueServiceProperties.properties); +@@clientName(QueueServiceProperties.properties, "QueueServiceProperties"); + +@@clientName(StorageQueues.create::parameters.resource, "queue"); +@@clientName(StorageQueues.update::parameters.properties, "queue"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(StorageQueue.properties); +@@clientName(StorageQueue.properties, "QueueProperties"); + +@@clientName(StorageAccounts.create::parameters.resource, "parameters"); +@@clientName(StorageAccounts.update::parameters.properties, "parameters"); +@@clientName(StorageAccounts.regenerateKey::parameters.body, "regenerateKey"); +@@clientName(StorageAccounts.listAccountSAS::parameters.body, "parameters"); +@@clientName(StorageAccounts.listServiceSAS::parameters.body, "parameters"); +@@clientName(StorageAccounts.customerInitiatedMigration::parameters.body, + "parameters" +); +@@clientName(StorageAccounts.restoreBlobRanges::parameters.body, "parameters"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(StorageAccount.properties); + +@@clientName(PrivateEndpointConnections.put::parameters.resource, "properties"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(PrivateEndpointConnection.properties); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(DeletedAccount.properties); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(StorageAccountMigration.properties); +@@clientName(StorageAccountMigration.properties, + "StorageAccountMigrationDetails" +); + +@@clientName(ManagementPolicies.createOrUpdate::parameters.resource, + "properties" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(ManagementPolicy.properties); + +@@clientName(BlobInventoryPolicies.createOrUpdate::parameters.resource, + "properties" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(BlobInventoryPolicy.properties); + +@@clientName(ObjectReplicationPolicyOperationGroup.createOrUpdate::parameters.resource, + "properties" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(ObjectReplicationPolicy.properties); + +@@clientName(LocalUserOperationGroup.createOrUpdate::parameters.resource, + "properties" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(LocalUser.properties); + +@@clientName(EncryptionScopes.put::parameters.resource, "encryptionScope"); +@@clientName(EncryptionScopes.patch::parameters.properties, "encryptionScope"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(EncryptionScope.properties); +@@clientName(EncryptionScope.properties, "EncryptionScopeProperties"); + +@@clientName(TableServices.setServiceProperties::parameters.resource, + "parameters" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(TableServiceProperties.properties); +@@clientName(TableServiceProperties.properties, "TableServiceProperties"); + +@@clientName(Tables.create::parameters.resource, "parameters"); +@@clientName(Tables.update::parameters.properties, "parameters"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(Table.properties); +@@clientName(Table.properties, "TableProperties"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(NetworkSecurityPerimeterConfiguration.properties); + +@@clientName(StorageTaskAssignments.create::parameters.resource, "parameters"); +@@clientName(StorageTaskAssignments.update::parameters.properties, + "parameters" +); +@@visibility(FileShareItems.value, Lifecycle.Read); +@@visibility(ListContainerItems.value, Lifecycle.Read); +@@visibility(ListQueueResource.value, Lifecycle.Read); +@@visibility(ListTableResource.value, Lifecycle.Read); +@@visibility(NetworkSecurityPerimeterConfigurationList.value, Lifecycle.Read); +@@visibility(FileServiceUsages.value, Lifecycle.Read); +@@visibility(StorageTaskReportSummary.value, Lifecycle.Read); + +@@clientName(StorageAccounts.checkNameAvailability::parameters.body, + "accountName" +); +@@clientName(ImmutabilityPolicies.createOrUpdateImmutabilityPolicy::parameters.resource, + "parameters" +); +@@clientName(StorageAccountPropertiesCreateParameters.enableExtendedGroups, + "EnableExtendedGroups" +); +@@clientName(StorageAccountPropertiesCreateParameters.routingPreference, + "RoutingPreference" +); +@@clientName(StorageAccountPropertiesCreateParameters.allowBlobPublicAccess, + "AllowBlobPublicAccess" +); +@@clientName(StorageAccountPropertiesCreateParameters.immutableStorageWithVersioning, + "ImmutableStorageWithVersioning" +); +@@clientName(StorageAccountPropertiesCreateParameters.networkAcls, + "NetworkRuleSet" +); +@@clientName(StorageAccountPropertiesCreateParameters.supportsHttpsTrafficOnly, + "EnableHttpsTrafficOnly" +); +@@clientName(StorageAccountPropertiesCreateParameters.isNfsV3Enabled, + "EnableNfsV3" +); +@@visibility(StorageTaskAssignmentsList.value, Lifecycle.Read); + +@@clientLocation(BlobServices.blobContainersList, BlobContainers); +@@clientName(BlobServices.blobContainersList, "List"); +@@clientName(BlobContainers.lease::parameters.body, "parameters"); +@@clientLocation(ImmutabilityPolicies.getImmutabilityPolicy, BlobContainers); +@@clientLocation(ImmutabilityPolicies.createOrUpdateImmutabilityPolicy, + BlobContainers +); +@@clientName(ImmutabilityPolicies.createOrUpdateImmutabilityPolicy::parameters.resource, + "parameters" +); +@@clientLocation(ImmutabilityPolicies.deleteImmutabilityPolicy, BlobContainers); +@@clientLocation(ImmutabilityPolicies.lockImmutabilityPolicy, BlobContainers); +@@clientLocation(ImmutabilityPolicies.extendImmutabilityPolicy, BlobContainers); +@@clientName(ImmutabilityPolicies.extendImmutabilityPolicy::parameters.body, + "parameters" +); +@@clientLocation(FileServices.fileSharesList, FileShares); +@@clientName(FileServices.fileSharesList, "List"); +@@clientLocation(FileServiceUsageOperationGroup.getServiceUsage, FileServices); +@@clientLocation(FileServiceUsageOperationGroup.listServiceUsages, + FileServices +); +@@clientName(FileShares.lease::parameters.body, "parameters"); +@@clientLocation(QueueServices.queueList, "Queue"); +@@clientName(QueueServices.queueList, "List"); +@@clientLocation(StorageQueues.get, "Queue"); +@@clientLocation(StorageQueues.create, "Queue"); +@@clientLocation(StorageQueues.update, "Queue"); +@@clientLocation(StorageQueues.delete, "Queue"); +@@clientLocation(StorageAccounts.listByStorageAccount, "PrivateLinkResources"); +@@clientLocation(StorageAccounts.storageTaskAssignmentsInstancesReportList, + "StorageTaskAssignmentsInstancesReport" +); +@@clientName(StorageAccounts.storageTaskAssignmentsInstancesReportList, "List"); +@@clientLocation(StorageAccountMigrations.getCustomerInitiatedMigration, + StorageAccounts +); +@@clientLocation(ObjectReplicationPolicyOperationGroup.get, + "ObjectReplicationPolicies" +); +@@clientLocation(ObjectReplicationPolicyOperationGroup.createOrUpdate, + "ObjectReplicationPolicies" +); +@@clientLocation(ObjectReplicationPolicyOperationGroup.delete, + "ObjectReplicationPolicies" +); +@@clientLocation(ObjectReplicationPolicyOperationGroup.list, + "ObjectReplicationPolicies" +); +@@clientLocation(LocalUserOperationGroup.get, "LocalUsers"); +@@clientLocation(LocalUserOperationGroup.createOrUpdate, "LocalUsers"); +@@clientLocation(LocalUserOperationGroup.delete, "LocalUsers"); +@@clientLocation(LocalUserOperationGroup.list, "LocalUsers"); +@@clientLocation(LocalUserOperationGroup.listKeys, "LocalUsers"); +@@clientLocation(LocalUserOperationGroup.regeneratePassword, "LocalUsers"); +@@clientLocation(Tables.get, "Table"); +@@clientLocation(Tables.create, "Table"); +@@clientLocation(Tables.update, "Table"); +@@clientLocation(Tables.delete, "Table"); +@@clientLocation(Tables.list, "Table"); +@@clientLocation(StorageTaskAssignments.storageTaskAssignmentInstancesReportList, + "StorageTaskAssignmentInstancesReport" +); +@@clientName(StorageTaskAssignments.storageTaskAssignmentInstancesReportList, + "List" +); +@@clientLocation(SkusOperationGroup.list, "Skus"); +@@clientLocation(DeletedAccountsOperationGroup.list, DeletedAccounts); +@@clientLocation(UsagesOperationGroup.listByLocation, "Usages"); diff --git a/specification/storage/Storage.Management/client.tsp b/specification/storage/Storage.Management/client.tsp new file mode 100644 index 000000000000..23ae6cb60a9c --- /dev/null +++ b/specification/storage/Storage.Management/client.tsp @@ -0,0 +1,83 @@ +import "@azure-tools/typespec-client-generator-core"; +import "./main.tsp"; + +using Azure.ClientGenerator.Core; +using Microsoft.Storage; + +@@clientName(ProvisioningState, "StorageProvisioningState", "csharp"); +@@clientName(Microsoft.Storage, "StorageManagementClient", "javascript"); +@@clientName(Microsoft.Storage, "StorageManagementClient", "python"); + +@@clientName(AccountType, "ActiveDirectoryPropertiesAccountType", "go, java"); +@@clientName(AllowedMethods, "CorsRuleAllowedMethodsItem", "go, java"); + +// Java customization for mitigating breaking changes +@@clientName(SKUCapability, "SkuCapability", "java"); +@@clientName(IPRule, "IpRule", "java"); +@@clientName(IPRule.value, "ipAddressOrRange", "java"); +@@clientName(IPRule.value, "$DO_NOT_NORMALIZE$iPAddressOrRange", "javascript"); +@@clientName(StorageAccounts.listAccountSAS, "listAccountSas", "java"); +@@clientName(StorageAccounts.listServiceSAS, "listServiceSas", "java"); +@@clientName(ImmutableStorageWithVersioning.timeStamp, "timestamp", "java"); +@@clientName(FileShareRecommendations.baseIOPS, "baseIops", "java"); +@@clientName(AccountSasParameters.signedIp, "ipAddressOrRange", "java"); +@@clientName(AccountSasParameters.signedIp, + "$DO_NOT_NORMALIZE$iPAddressOrRange", + "javascript" +); +@@clientName(AccountLimits.maxProvisionedIOPS, "maxProvisionedIops", "java"); +@@clientName(FileShareLimits.maxProvisionedIOPS, "maxProvisionedIops", "java"); +@@clientName(FileShareLimits.minProvisionedIOPS, "minProvisionedIops", "java"); +@@clientName(BurstingConstants.burstFloorIOPS, "burstFloorIops", "java"); +@@clientName(AccountUsageElements.provisionedIOPS, "provisionedIops", "java"); +@@clientName(ServiceSasParameters.signedIp, "ipAddressOrRange", "java"); +@@clientName(ServiceSasParameters.signedIp, + "$DO_NOT_NORMALIZE$iPAddressOrRange", + "javascript" +); + +// should only be used in Java +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum Action { + ALLOW: "Allow", +} +@@alternateType(IPRule.action, Action, "java"); +@@alternateType(VirtualNetworkRule.action, Action, "java"); + +@@alternateType(TriggerParameters.intervalUnit, IntervalUnit, "java"); +@@alternateType(TriggerParametersUpdate.intervalUnit, IntervalUnit, "java"); + +@@usage(StorageAccount, + Azure.ClientGenerator.Core.Usage.input | Azure.ClientGenerator.Core.Usage.output, + "java" +); + +@@clientName(ETagHeader.eTag, "etag", "java"); + +// Fix client parameter order. +/** + * Get properties of specified deleted account resource. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op getDeletedAccountCustomized( + apiVersion: string, + deletedAccountName: string, + location: Azure.Core.azureLocation, + provider: "Microsoft.ThisWillBeReplaced", + subscriptionId: Azure.Core.uuid, +): Azure.ResourceManager.ArmResponse | Microsoft.Storage.ErrorResponse; +@@override(DeletedAccounts.get, getDeletedAccountCustomized, "java,go,python"); +@@clientName(Azure.ResourceManager.CommonTypes.ProxyResource, + "ProxyResourceAutoGenerated", + "javascript" +); +@@clientName(Azure.ResourceManager.CommonTypes.Resource, + "ResourceAutoGenerated", + "javascript" +); +@@clientName(Azure.ResourceManager.CommonTypes.Resource, + "ResourceAutoGenerated", + "python" +); diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersClearLegalHold.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersClearLegalHold.json new file mode 100644 index 000000000000..c43444f72061 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersClearLegalHold.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "LegalHold": { + "tags": [ + "tag1", + "tag2", + "tag3" + ] + }, + "accountName": "sto7280", + "api-version": "2025-06-01", + "containerName": "container8723", + "monitor": "true", + "resourceGroupName": "res4303", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "hasLegalHold": false, + "tags": [] + } + } + }, + "operationId": "BlobContainers_ClearLegalHold", + "title": "ClearLegalHoldContainers" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersDelete.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersDelete.json new file mode 100644 index 000000000000..e0a06918dfbb --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersDelete.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "accountName": "sto4506", + "api-version": "2025-06-01", + "containerName": "container9689", + "monitor": "true", + "resourceGroupName": "res4079", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "BlobContainers_Delete", + "title": "DeleteContainers" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersDeleteImmutabilityPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersDeleteImmutabilityPolicy.json new file mode 100644 index 000000000000..75fe36a46ee0 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersDeleteImmutabilityPolicy.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "If-Match": "8d59f81a7fa7be0", + "accountName": "sto9621", + "api-version": "2025-06-01", + "containerName": "container4910", + "immutabilityPolicyName": "default", + "monitor": "true", + "resourceGroupName": "res1581", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies", + "etag": "\"8d59f81a87b40c0\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res1581/providers/Microsoft.Storage/storageAccounts/sto9621/blobServices/default/containers/container4910/immutabilityPolicies/default", + "properties": { + "immutabilityPeriodSinceCreationInDays": 0, + "state": "Unlocked" + } + } + } + }, + "operationId": "BlobContainers_DeleteImmutabilityPolicy", + "title": "DeleteImmutabilityPolicy" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersExtendImmutabilityPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersExtendImmutabilityPolicy.json new file mode 100644 index 000000000000..8879a39db8ff --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersExtendImmutabilityPolicy.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "If-Match": "8d59f830d0c3bf9", + "accountName": "sto232", + "api-version": "2025-06-01", + "containerName": "container5023", + "monitor": "true", + "parameters": { + "properties": { + "immutabilityPeriodSinceCreationInDays": 100 + } + }, + "resourceGroupName": "res6238", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies", + "etag": "\"8d57a8b2ff50332\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6238/providers/Microsoft.Storage/storageAccounts/sto232/blobServices/default/containers/container5023/immutabilityPolicies/default", + "properties": { + "immutabilityPeriodSinceCreationInDays": 100, + "state": "Locked" + } + } + } + }, + "operationId": "BlobContainers_ExtendImmutabilityPolicy", + "title": "ExtendImmutabilityPolicy" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersGet.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersGet.json new file mode 100644 index 000000000000..af6ef7e6f1b3 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersGet.json @@ -0,0 +1,83 @@ +{ + "parameters": { + "accountName": "sto6217", + "api-version": "2025-06-01", + "containerName": "container1634", + "monitor": "true", + "resourceGroupName": "res9871", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "container1634", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "etag": "\"0x8D592D74CC20EBA\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/blobServices/default/containers/container1634", + "properties": { + "hasImmutabilityPolicy": true, + "hasLegalHold": true, + "immutabilityPolicy": { + "etag": "\"8d592d74cb3011a\"", + "properties": { + "immutabilityPeriodSinceCreationInDays": 100, + "state": "Locked" + }, + "updateHistory": [ + { + "immutabilityPeriodSinceCreationInDays": 3, + "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:11.431403Z", + "update": "put" + }, + { + "immutabilityPeriodSinceCreationInDays": 3, + "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:13.0907641Z", + "update": "lock" + }, + { + "immutabilityPeriodSinceCreationInDays": 100, + "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:14.7097716Z", + "update": "extend" + } + ] + }, + "lastModifiedTime": "2018-03-26T05:06:14Z", + "leaseState": "Available", + "leaseStatus": "Unlocked", + "legalHold": { + "hasLegalHold": true, + "tags": [ + { + "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", + "tag": "tag1", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:09.6964643Z" + }, + { + "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", + "tag": "tag2", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:09.6964643Z" + }, + { + "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", + "tag": "tag3", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:09.6964643Z" + } + ] + }, + "publicAccess": "None" + } + } + } + }, + "operationId": "BlobContainers_Get", + "title": "GetContainers" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersGetImmutabilityPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersGetImmutabilityPolicy.json new file mode 100644 index 000000000000..a9141457911d --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersGetImmutabilityPolicy.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "accountName": "sto9177", + "api-version": "2025-06-01", + "containerName": "container3489", + "immutabilityPolicyName": "default", + "monitor": "true", + "resourceGroupName": "res5221", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies", + "etag": "\"8d59f828e64b75c\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res5221/providers/Microsoft.Storage/storageAccounts/sto9177/blobServices/default/containers/container3489/immutabilityPolicies/default", + "properties": { + "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 5, + "state": "Unlocked" + } + } + } + }, + "operationId": "BlobContainers_GetImmutabilityPolicy", + "title": "GetImmutabilityPolicy" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersGetWithAllowProtectedAppendWritesAll.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersGetWithAllowProtectedAppendWritesAll.json new file mode 100644 index 000000000000..a07febbe814b --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersGetWithAllowProtectedAppendWritesAll.json @@ -0,0 +1,91 @@ +{ + "parameters": { + "accountName": "sto6217", + "api-version": "2025-06-01", + "containerName": "container1634", + "monitor": "true", + "resourceGroupName": "res9871", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "container1634", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "etag": "\"0x8D592D74CC20EBA\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/blobServices/default/containers/container1634", + "properties": { + "hasImmutabilityPolicy": true, + "hasLegalHold": true, + "immutabilityPolicy": { + "etag": "\"8d592d74cb3011a\"", + "properties": { + "allowProtectedAppendWritesAll": true, + "immutabilityPeriodSinceCreationInDays": 100, + "state": "Locked" + }, + "updateHistory": [ + { + "allowProtectedAppendWritesAll": true, + "immutabilityPeriodSinceCreationInDays": 3, + "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:11.431403Z", + "update": "put" + }, + { + "allowProtectedAppendWritesAll": true, + "immutabilityPeriodSinceCreationInDays": 3, + "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:13.0907641Z", + "update": "lock" + }, + { + "allowProtectedAppendWritesAll": true, + "immutabilityPeriodSinceCreationInDays": 100, + "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:14.7097716Z", + "update": "extend" + } + ] + }, + "lastModifiedTime": "2018-03-26T05:06:14Z", + "leaseState": "Available", + "leaseStatus": "Unlocked", + "legalHold": { + "hasLegalHold": true, + "protectedAppendWritesHistory": { + "allowProtectedAppendWritesAll": true, + "timestamp": "2022-09-01T01:58:44.5044483Z" + }, + "tags": [ + { + "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", + "tag": "tag1", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:09.6964643Z" + }, + { + "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", + "tag": "tag2", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:09.6964643Z" + }, + { + "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", + "tag": "tag3", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:09.6964643Z" + } + ] + }, + "publicAccess": "None" + } + } + } + }, + "operationId": "BlobContainers_Get", + "title": "GetBlobContainersGetWithAllowProtectedAppendWritesAll" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersLease_Acquire.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersLease_Acquire.json new file mode 100644 index 000000000000..94720833036f --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersLease_Acquire.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "containerName": "container6185", + "monitor": "true", + "parameters": { + "action": "Acquire", + "breakPeriod": null, + "leaseDuration": -1, + "leaseId": null, + "proposedLeaseId": null + }, + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d" + } + } + }, + "operationId": "BlobContainers_Lease", + "title": "Acquire a lease on a container" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersLease_Break.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersLease_Break.json new file mode 100644 index 000000000000..48820eaf7a77 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersLease_Break.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "containerName": "container6185", + "monitor": "true", + "parameters": { + "action": "Break", + "breakPeriod": null, + "leaseDuration": null, + "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", + "proposedLeaseId": null + }, + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "leaseTimeSeconds": "0" + } + } + }, + "operationId": "BlobContainers_Lease", + "title": "Break a lease on a container" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersList.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersList.json new file mode 100644 index 000000000000..fd7d40d37e80 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersList.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "accountName": "sto1590", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://sto1590endpoint/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto1590/container5103", + "value": [ + { + "name": "container1644", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "etag": "\"0x8D589847D51C7DE\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container1644", + "properties": { + "hasImmutabilityPolicy": false, + "hasLegalHold": false, + "lastModifiedTime": "2018-03-14T08:20:47Z", + "leaseState": "Available", + "leaseStatus": "Unlocked", + "publicAccess": "Container" + } + }, + { + "name": "container4052", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container4052", + "properties": { + "hasImmutabilityPolicy": false, + "hasLegalHold": false, + "lastModifiedTime": "2018-03-14T08:20:47Z", + "leaseState": "Available", + "leaseStatus": "Unlocked", + "publicAccess": "None" + } + } + ] + } + } + }, + "operationId": "BlobContainers_List", + "title": "ListContainers" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersLockImmutabilityPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersLockImmutabilityPolicy.json new file mode 100644 index 000000000000..0fb88916bd81 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersLockImmutabilityPolicy.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "If-Match": "8d59f825b721dd3", + "accountName": "sto5009", + "api-version": "2025-06-01", + "containerName": "container1631", + "monitor": "true", + "resourceGroupName": "res2702", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies", + "etag": "\"8d57a8a5edb084a\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res2702/providers/Microsoft.Storage/storageAccounts/sto5009/blobServices/default/containers/container1631/immutabilityPolicies/default", + "properties": { + "immutabilityPeriodSinceCreationInDays": 3, + "state": "Locked" + } + } + } + }, + "operationId": "BlobContainers_LockImmutabilityPolicy", + "title": "LockImmutabilityPolicy" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPatch.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPatch.json new file mode 100644 index 000000000000..b56809ec17f4 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPatch.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "blobContainer": { + "properties": { + "metadata": { + "metadata": "true" + }, + "publicAccess": "Container" + } + }, + "containerName": "container6185", + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", + "properties": { + "hasImmutabilityPolicy": false, + "hasLegalHold": false, + "metadata": { + "metadata": "true" + }, + "publicAccess": "Container" + } + } + } + }, + "operationId": "BlobContainers_Update", + "title": "UpdateContainers" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPut.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPut.json new file mode 100644 index 000000000000..f84343e4640c --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPut.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "blobContainer": {}, + "containerName": "container6185", + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185" + } + }, + "201": { + "body": { + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185" + } + } + }, + "operationId": "BlobContainers_Create", + "title": "PutContainers" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutDefaultEncryptionScope.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutDefaultEncryptionScope.json new file mode 100644 index 000000000000..981c32eb7f3a --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutDefaultEncryptionScope.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "blobContainer": { + "properties": { + "defaultEncryptionScope": "encryptionscope185", + "denyEncryptionScopeOverride": true + } + }, + "containerName": "container6185", + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", + "properties": { + "defaultEncryptionScope": "encryptionscope185", + "denyEncryptionScopeOverride": true + } + } + }, + "201": { + "body": { + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", + "properties": { + "defaultEncryptionScope": "encryptionscope185", + "denyEncryptionScopeOverride": true + } + } + } + }, + "operationId": "BlobContainers_Create", + "title": "PutContainerWithDefaultEncryptionScope" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutImmutabilityPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutImmutabilityPolicy.json new file mode 100644 index 000000000000..487dd432a3ca --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutImmutabilityPolicy.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "accountName": "sto7069", + "api-version": "2025-06-01", + "containerName": "container6397", + "immutabilityPolicyName": "default", + "monitor": "true", + "parameters": { + "properties": { + "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 3 + } + }, + "resourceGroupName": "res1782", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies", + "etag": "\"8d59f830cb130e5\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res1782/providers/Microsoft.Storage/storageAccounts/sto7069/blobServices/default/containers/container6397/immutabilityPolicies/default", + "properties": { + "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 3, + "state": "Unlocked" + } + } + } + }, + "operationId": "BlobContainers_CreateOrUpdateImmutabilityPolicy", + "title": "CreateOrUpdateImmutabilityPolicy" +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json similarity index 70% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json rename to specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json index c7825b058a63..36be6565de0f 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json @@ -1,32 +1,34 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res1782", "accountName": "sto7069", + "api-version": "2025-06-01", "containerName": "container6397", "immutabilityPolicyName": "default", - "api-version": "2025-01-01", "monitor": "true", "parameters": { "properties": { - "immutabilityPeriodSinceCreationInDays": 3, - "allowProtectedAppendWritesAll": true + "allowProtectedAppendWritesAll": true, + "immutabilityPeriodSinceCreationInDays": 3 } - } + }, + "resourceGroupName": "res1782", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res1782/providers/Microsoft.Storage/storageAccounts/sto7069/blobServices/default/containers/container6397/immutabilityPolicies/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies", "etag": "\"8d59f830cb130e5\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res1782/providers/Microsoft.Storage/storageAccounts/sto7069/blobServices/default/containers/container6397/immutabilityPolicies/default", "properties": { - "immutabilityPeriodSinceCreationInDays": 3, "allowProtectedAppendWritesAll": true, + "immutabilityPeriodSinceCreationInDays": 3, "state": "Unlocked" } } } - } + }, + "operationId": "BlobContainers_CreateOrUpdateImmutabilityPolicy", + "title": "CreateOrUpdateImmutabilityPolicyWithAllowProtectedAppendWritesAll" } diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutObjectLevelWorm.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutObjectLevelWorm.json new file mode 100644 index 000000000000..9e1e11e36c61 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersPutObjectLevelWorm.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "blobContainer": { + "properties": { + "immutableStorageWithVersioning": { + "enabled": true + } + } + }, + "containerName": "container6185", + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", + "properties": { + "immutableStorageWithVersioning": { + "enabled": true + } + } + } + }, + "201": { + "body": { + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", + "properties": { + "immutableStorageWithVersioning": { + "enabled": true + } + } + } + } + }, + "operationId": "BlobContainers_Create", + "title": "PutContainerWithObjectLevelWorm" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersSetLegalHold.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersSetLegalHold.json new file mode 100644 index 000000000000..62ca87f17e31 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersSetLegalHold.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "LegalHold": { + "tags": [ + "tag1", + "tag2", + "tag3" + ] + }, + "accountName": "sto7280", + "api-version": "2025-06-01", + "containerName": "container8723", + "monitor": "true", + "resourceGroupName": "res4303", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "hasLegalHold": true, + "tags": [ + "tag1", + "tag2", + "tag3" + ] + } + } + }, + "operationId": "BlobContainers_SetLegalHold", + "title": "SetLegalHoldContainers" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersSetLegalHoldAllowProtectedAppendWritesAll.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersSetLegalHoldAllowProtectedAppendWritesAll.json new file mode 100644 index 000000000000..7d758ef598e4 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobContainersSetLegalHoldAllowProtectedAppendWritesAll.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "LegalHold": { + "allowProtectedAppendWritesAll": true, + "tags": [ + "tag1", + "tag2", + "tag3" + ] + }, + "accountName": "sto7280", + "api-version": "2025-06-01", + "containerName": "container8723", + "monitor": "true", + "resourceGroupName": "res4303", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "allowProtectedAppendWritesAll": true, + "hasLegalHold": true, + "tags": [ + "tag1", + "tag2", + "tag3" + ] + } + } + }, + "operationId": "BlobContainers_SetLegalHold", + "title": "SetLegalHoldContainersWithAllowProtectedAppendWritesAll" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobRangesRestore.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobRangesRestore.json new file mode 100644 index 000000000000..272a9a3434b8 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobRangesRestore.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "blobRanges": [ + { + "endRange": "container/blobpath2", + "startRange": "container/blobpath1" + }, + { + "endRange": "", + "startRange": "container2/blobpath3" + } + ], + "timeToRestore": "2019-04-20T15:30:00.0000000Z" + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "parameters": { + "blobRanges": [ + { + "endRange": "container/blobpath2", + "startRange": "container/blobpath1" + }, + { + "endRange": "", + "startRange": "container2/blobpath3" + } + ], + "timeToRestore": "2019-04-20T15:30:00.0000000Z" + }, + "restoreId": "{restore_id}", + "status": "Succeeded" + } + }, + "202": { + "body": { + "parameters": { + "blobRanges": [ + { + "endRange": "container/blobpath2", + "startRange": "container/blobpath1" + }, + { + "endRange": "", + "startRange": "container2/blobpath3" + } + ], + "timeToRestore": "2019-04-20T15:30:00.0000000Z" + }, + "restoreId": "{restore_id}", + "status": "InProgress" + }, + "headers": { + "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2022-09-01" + } + } + }, + "operationId": "StorageAccounts_RestoreBlobRanges", + "title": "BlobRangesRestore" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesGet.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesGet.json new file mode 100644 index 000000000000..665ee130e19f --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesGet.json @@ -0,0 +1,98 @@ +{ + "parameters": { + "BlobServicesName": "default", + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/blobServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", + "properties": { + "changeFeed": { + "enabled": true, + "retentionInDays": 7 + }, + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x -ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + }, + "defaultServiceVersion": "2017-07-29", + "deleteRetentionPolicy": { + "days": 300, + "enabled": true + }, + "isVersioningEnabled": true + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + } + } + } + }, + "operationId": "BlobServices_GetServiceProperties", + "title": "GetBlobServices" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesList.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesList.json new file mode 100644 index 000000000000..ca7b08c9744a --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesList.json @@ -0,0 +1,101 @@ +{ + "parameters": { + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/blobServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", + "properties": { + "changeFeed": { + "enabled": true, + "retentionInDays": 7 + }, + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x -ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + }, + "defaultServiceVersion": "2017-07-29", + "deleteRetentionPolicy": { + "days": 300, + "enabled": true + }, + "isVersioningEnabled": true + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + } + } + ] + } + } + }, + "operationId": "BlobServices_List", + "title": "ListBlobServices" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesPut.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesPut.json new file mode 100644 index 000000000000..7f781c9f633b --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesPut.json @@ -0,0 +1,173 @@ +{ + "parameters": { + "BlobServicesName": "default", + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "changeFeed": { + "enabled": true, + "retentionInDays": 7 + }, + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x -ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + }, + "defaultServiceVersion": "2017-07-29", + "deleteRetentionPolicy": { + "days": 300, + "enabled": true + }, + "isVersioningEnabled": true + } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/blobServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", + "properties": { + "changeFeed": { + "enabled": true, + "retentionInDays": 7 + }, + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x -ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + }, + "defaultServiceVersion": "2017-07-29", + "deleteRetentionPolicy": { + "days": 300, + "enabled": true + }, + "isVersioningEnabled": true + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + } + } + } + }, + "operationId": "BlobServices_SetServiceProperties", + "title": "PutBlobServices" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesPutAllowPermanentDelete.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesPutAllowPermanentDelete.json new file mode 100644 index 000000000000..e2715d42edd8 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesPutAllowPermanentDelete.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "BlobServicesName": "default", + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "deleteRetentionPolicy": { + "allowPermanentDelete": true, + "days": 300, + "enabled": true + }, + "isVersioningEnabled": true + } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/blobServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", + "properties": { + "deleteRetentionPolicy": { + "allowPermanentDelete": true, + "days": 300, + "enabled": true + }, + "isVersioningEnabled": true + } + } + } + }, + "operationId": "BlobServices_SetServiceProperties", + "title": "BlobServicesPutAllowPermanentDelete" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesPutLastAccessTimeBasedTracking.json b/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesPutLastAccessTimeBasedTracking.json new file mode 100644 index 000000000000..e95bab29be96 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/BlobServicesPutLastAccessTimeBasedTracking.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "BlobServicesName": "default", + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "lastAccessTimeTrackingPolicy": { + "name": "AccessTimeTracking", + "blobType": [ + "blockBlob" + ], + "enable": true, + "trackingGranularityInDays": 1 + } + } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/blobServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", + "properties": { + "lastAccessTimeTrackingPolicy": { + "name": "AccessTimeTracking", + "blobType": [ + "blockBlob" + ], + "enable": true, + "trackingGranularityInDays": 1 + } + } + } + } + }, + "operationId": "BlobServices_SetServiceProperties", + "title": "BlobServicesPutLastAccessTimeBasedTracking" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/DeletedAccountGet.json b/specification/storage/Storage.Management/examples/2025-06-01/DeletedAccountGet.json new file mode 100644 index 000000000000..7509950706e6 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/DeletedAccountGet.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2025-06-01", + "deletedAccountName": "sto1125", + "location": "eastus", + "monitor": "true", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto1125", + "type": "Microsoft.Storage/deletedAccounts", + "id": "/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/deletedAccounts/sto1125", + "properties": { + "creationTime": "2020-08-17T03:35:37.4588848Z", + "deletionTime": "2020-08-17T04:41:37.3442475Z", + "location": "eastus", + "restoreReference": "sto1125|2020-08-17T03:35:37.4588848Z", + "storageAccountResourceId": "/subscriptions/{subscription-id}/resourceGroups/sto/providers/Microsoft.Storage/storageAccounts/sto1125" + } + } + } + }, + "operationId": "DeletedAccounts_Get", + "title": "DeletedAccountGet" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/DeletedAccountList.json b/specification/storage/Storage.Management/examples/2025-06-01/DeletedAccountList.json new file mode 100644 index 000000000000..0ed27c445f09 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/DeletedAccountList.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2025-06-01", + "monitor": "true", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "sto1125", + "type": "Microsoft.Storage/deletedAccounts", + "id": "/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/deletedAccounts/sto1125", + "properties": { + "creationTime": "2020-08-17T03:35:37.4588848Z", + "deletionTime": "2020-08-17T04:41:37.3442475Z", + "location": "eastus", + "restoreReference": "sto1125|2020-08-17T03:35:37.4588848Z", + "storageAccountResourceId": "/subscriptions/{subscription-id}/resourceGroups/sto/providers/Microsoft.Storage/storageAccounts/sto1125" + } + }, + { + "name": "sto1126", + "type": "Microsoft.Storage/deletedAccounts", + "id": "/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/deletedAccounts/sto1126", + "properties": { + "creationTime": "2020-08-19T15:10:21.5902165Z", + "deletionTime": "2020-08-20T06:11:55.1957302Z", + "location": "eastus", + "restoreReference": "sto1126|2020-08-17T03:35:37.4588848Z", + "storageAccountResourceId": "/subscriptions/{subscription-id}/resourceGroups/sto/providers/Microsoft.Storage/storageAccounts/sto1126" + } + } + ] + } + } + }, + "operationId": "DeletedAccounts_List", + "title": "DeletedAccountList" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/DeletedBlobContainersList.json b/specification/storage/Storage.Management/examples/2025-06-01/DeletedBlobContainersList.json new file mode 100644 index 000000000000..c7b80a7021c9 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/DeletedBlobContainersList.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "$include": "deleted", + "accountName": "sto1590", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "container1644", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "etag": "\"0x8D589847D51C7DE\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container1644", + "properties": { + "hasImmutabilityPolicy": false, + "hasLegalHold": false, + "lastModifiedTime": "2018-03-14T08:20:47Z", + "leaseState": "Available", + "leaseStatus": "Unlocked", + "publicAccess": "Container" + } + }, + { + "name": "container4052", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container4052", + "properties": { + "deleted": true, + "deletedTime": "2019-12-14T08:20:47Z", + "hasImmutabilityPolicy": false, + "hasLegalHold": false, + "lastModifiedTime": "2018-03-14T08:20:47Z", + "leaseState": "Expired", + "leaseStatus": "Unlocked", + "publicAccess": "None", + "remainingRetentionDays": 30, + "version": "1234567890" + } + } + ] + } + } + }, + "operationId": "BlobContainers_List", + "title": "ListDeletedContainers" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/DeletedFileSharesList.json b/specification/storage/Storage.Management/examples/2025-06-01/DeletedFileSharesList.json new file mode 100644 index 000000000000..d0a3c46336be --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/DeletedFileSharesList.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "$expand": "deleted", + "accountName": "sto1590", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "share1644", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D589847D51C7DE\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share1644_1234567890", + "properties": { + "deleted": true, + "deletedTime": "2019-12-14T08:20:47Z", + "lastModifiedTime": "2019-05-14T08:20:47Z", + "remainingRetentionDays": 30, + "shareQuota": 1024, + "version": "1234567890" + } + }, + { + "name": "share4052", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", + "properties": { + "lastModifiedTime": "2019-05-14T08:20:47Z", + "shareQuota": 1024 + } + } + ] + } + } + }, + "operationId": "FileShares_List", + "title": "ListDeletedShares" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileServicesGet.json b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesGet.json new file mode 100644 index 000000000000..e747ff958200 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesGet.json @@ -0,0 +1,88 @@ +{ + "parameters": { + "FileServicesName": "default", + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/fileServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", + "properties": { + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + } + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + } + } + } + }, + "operationId": "FileServices_GetServiceProperties", + "title": "GetFileServices" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileServicesGetUsage.json b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesGetUsage.json new file mode 100644 index 000000000000..4f6195fc3712 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesGetUsage.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "FileServicesName": "default", + "accountName": "sto8607", + "api-version": "2025-06-01", + "fileServiceUsagesName": "default", + "monitor": "true", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-1111-2222-3333-444444444444" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/fileServices/usages", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default/usages/default", + "properties": { + "burstingConstants": { + "burstFloorIOPS": 10000, + "burstIOScalar": 3, + "burstTimeframeSeconds": 3600 + }, + "fileShareLimits": { + "maxProvisionedBandwidthMiBPerSec": 10340, + "maxProvisionedIOPS": 102400, + "maxProvisionedStorageGiB": 262144, + "minProvisionedBandwidthMiBPerSec": 125, + "minProvisionedIOPS": 3000, + "minProvisionedStorageGiB": 32 + }, + "fileShareRecommendations": { + "bandwidthScalar": 0.1, + "baseBandwidthMiBPerSec": 125, + "baseIOPS": 3000, + "ioScalar": 1 + }, + "storageAccountLimits": { + "maxFileShares": 50, + "maxProvisionedBandwidthMiBPerSec": 10340, + "maxProvisionedIOPS": 102400, + "maxProvisionedStorageGiB": 262144 + }, + "storageAccountUsage": { + "liveShares": { + "fileShareCount": 2, + "provisionedBandwidthMiBPerSec": 258, + "provisionedIOPS": 6064, + "provisionedStorageGiB": 64 + }, + "softDeletedShares": { + "fileShareCount": 1, + "provisionedBandwidthMiBPerSec": 125, + "provisionedIOPS": 3000, + "provisionedStorageGiB": 100 + } + } + } + } + } + }, + "operationId": "FileServices_GetServiceUsage", + "title": "GetFileServiceUsage" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileServicesList.json b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesList.json new file mode 100644 index 000000000000..55e364188f98 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesList.json @@ -0,0 +1,91 @@ +{ + "parameters": { + "accountName": "sto1590", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/fileServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", + "properties": { + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + } + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + } + } + ] + } + } + }, + "operationId": "FileServices_List", + "title": "ListFileServices" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileServicesListUsages.json b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesListUsages.json new file mode 100644 index 000000000000..12224cae8317 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesListUsages.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "FileServicesName": "default", + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-1111-2222-3333-444444444444" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/fileServices/usages", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default/usages/default", + "properties": { + "burstingConstants": { + "burstFloorIOPS": 10000, + "burstIOScalar": 3, + "burstTimeframeSeconds": 3600 + }, + "fileShareLimits": { + "maxProvisionedBandwidthMiBPerSec": 10340, + "maxProvisionedIOPS": 102400, + "maxProvisionedStorageGiB": 262144, + "minProvisionedBandwidthMiBPerSec": 125, + "minProvisionedIOPS": 3000, + "minProvisionedStorageGiB": 32 + }, + "fileShareRecommendations": { + "bandwidthScalar": 0.1, + "baseBandwidthMiBPerSec": 125, + "baseIOPS": 3000, + "ioScalar": 1 + }, + "storageAccountLimits": { + "maxFileShares": 50, + "maxProvisionedBandwidthMiBPerSec": 10340, + "maxProvisionedIOPS": 102400, + "maxProvisionedStorageGiB": 262144 + }, + "storageAccountUsage": { + "liveShares": { + "fileShareCount": 2, + "provisionedBandwidthMiBPerSec": 258, + "provisionedIOPS": 6064, + "provisionedStorageGiB": 64 + }, + "softDeletedShares": { + "fileShareCount": 1, + "provisionedBandwidthMiBPerSec": 125, + "provisionedIOPS": 3000, + "provisionedStorageGiB": 100 + } + } + } + } + ] + } + } + }, + "operationId": "FileServices_ListServiceUsages", + "title": "ListFileServiceUsages" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut.json b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut.json new file mode 100644 index 000000000000..8e78d672f54e --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut.json @@ -0,0 +1,153 @@ +{ + "parameters": { + "FileServicesName": "default", + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + } + } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/fileServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", + "properties": { + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + } + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + } + } + } + }, + "operationId": "FileServices_SetServiceProperties", + "title": "PutFileServices" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut_EnableSMBMultichannel.json b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut_EnableSMBMultichannel.json new file mode 100644 index 000000000000..1075d49e5d8e --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut_EnableSMBMultichannel.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "FileServicesName": "default", + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "protocolSettings": { + "smb": { + "multichannel": { + "enabled": true + } + } + } + } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/fileServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", + "properties": { + "protocolSettings": { + "smb": { + "multichannel": { + "enabled": true + } + } + } + }, + "sku": { + "name": "Premium_LRS", + "tier": "Premium" + } + } + } + }, + "operationId": "FileServices_SetServiceProperties", + "title": "PutFileServices_EnableSMBMultichannel" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut_EnableSecureSmbFeatures.json b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut_EnableSecureSmbFeatures.json new file mode 100644 index 000000000000..3c04af02dd9c --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut_EnableSecureSmbFeatures.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "FileServicesName": "default", + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "protocolSettings": { + "smb": { + "authenticationMethods": "NTLMv2;Kerberos", + "channelEncryption": "AES-128-CCM;AES-128-GCM;AES-256-GCM", + "kerberosTicketEncryption": "RC4-HMAC;AES-256", + "versions": "SMB2.1;SMB3.0;SMB3.1.1" + } + } + } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/fileServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", + "properties": { + "protocolSettings": { + "smb": { + "authenticationMethods": "NTLMv2;Kerberos", + "channelEncryption": "AES-128-CCM;AES-128-GCM;AES-256-GCM", + "kerberosTicketEncryption": "RC4-HMAC;AES-256", + "versions": "SMB2.1;SMB3.0;SMB3.1.1" + } + } + }, + "sku": { + "name": "Premium_LRS", + "tier": "Premium" + } + } + } + }, + "operationId": "FileServices_SetServiceProperties", + "title": "PutFileServices_EnableSecureSmbFeatures" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut_EncryptionInTransitRequired.json b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut_EncryptionInTransitRequired.json new file mode 100644 index 000000000000..3b3ac786a38b --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileServicesPut_EncryptionInTransitRequired.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "FileServicesName": "default", + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "protocolSettings": { + "nfs": { + "encryptionInTransit": { + "required": true + } + }, + "smb": { + "encryptionInTransit": { + "required": true + } + } + } + } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/fileServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", + "properties": { + "protocolSettings": { + "nfs": { + "encryptionInTransit": { + "required": true + } + }, + "smb": { + "encryptionInTransit": { + "required": true + } + } + } + }, + "sku": { + "name": "Premium_LRS", + "tier": "Premium" + } + } + } + }, + "operationId": "FileServices_SetServiceProperties", + "title": "PutFileServices_EncryptionInTransitRequired" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileShareAclsPatch.json b/specification/storage/Storage.Management/examples/2025-06-01/FileShareAclsPatch.json new file mode 100644 index 000000000000..a916e170b84a --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileShareAclsPatch.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "fileShare": { + "properties": { + "signedIdentifiers": [ + { + "accessPolicy": { + "expiryTime": "2021-05-01T08:49:37.0000000Z", + "permission": "rwd", + "startTime": "2021-04-01T08:49:37.0000000Z" + }, + "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI" + } + ] + } + }, + "monitor": "true", + "resourceGroupName": "res3376", + "shareName": "share6185", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "share6185", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", + "properties": { + "signedIdentifiers": [ + { + "accessPolicy": { + "expiryTime": "2021-05-01T08:49:37.0000000Z", + "permission": "rwd", + "startTime": "2021-04-01T08:49:37.0000000Z" + }, + "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI" + } + ] + } + } + } + }, + "operationId": "FileShares_Update", + "title": "UpdateShareAcls" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileShareSnapshotsList.json b/specification/storage/Storage.Management/examples/2025-06-01/FileShareSnapshotsList.json new file mode 100644 index 000000000000..644eac127bf7 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileShareSnapshotsList.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "$expand": "snapshots", + "accountName": "sto1590", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "share4052", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", + "properties": { + "lastModifiedTime": "2020-10-26T05:47:05.0000000Z", + "shareQuota": 1024 + } + }, + { + "name": "share4052", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", + "properties": { + "lastModifiedTime": "2020-10-26T05:47:05.0000000Z", + "shareQuota": 1024, + "snapshotTime": "2020-10-26T05:48:07.0000000Z" + } + } + ] + } + } + }, + "operationId": "FileShares_List", + "title": "ListShareSnapshots" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesDelete.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesDelete.json new file mode 100644 index 000000000000..a2773d297ace --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesDelete.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "accountName": "sto4506", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res4079", + "shareName": "share9689", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "FileShares_Delete", + "title": "DeleteShares" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet.json new file mode 100644 index 000000000000..37a6d5023ed6 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "accountName": "sto6217", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9871", + "shareName": "share1634", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "share1634", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D592D74CC20EBA\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/fileServices/default/shares/share1634", + "properties": { + "lastModifiedTime": "2019-05-26T05:06:14Z", + "shareQuota": 1024 + } + } + } + }, + "operationId": "FileShares_Get", + "title": "GetShares" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet_PaidBursting.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet_PaidBursting.json new file mode 100644 index 000000000000..fc52f0fbcab8 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet_PaidBursting.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "accountName": "sto6217", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9871", + "shareName": "share1634", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "share1634", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D592D74CC20EBA\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/fileServices/default/shares/share1634", + "properties": { + "fileSharePaidBursting": { + "paidBurstingEnabled": true, + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 + }, + "lastModifiedTime": "2019-05-26T05:06:14Z", + "shareQuota": 1024 + } + } + } + }, + "operationId": "FileShares_Get", + "title": "GetSharePaidBursting" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet_ProvisionedV2.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet_ProvisionedV2.json new file mode 100644 index 000000000000..49e5e693ae5c --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet_ProvisionedV2.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "accountName": "sto6217", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9871", + "shareName": "share1634", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "share1634", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D592D74CC20EBA\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/fileServices/default/shares/share1634", + "properties": { + "includedBurstIops": 15000, + "lastModifiedTime": "2024-10-25T01:50:50.0000000Z", + "maxBurstCreditsForIops": 36000000, + "nextAllowedProvisionedBandwidthDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", + "nextAllowedProvisionedIopsDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", + "nextAllowedQuotaDowngradeTime": "Sat, 26 Oct 2024 01:50:50 GMT", + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 + } + } + } + }, + "operationId": "FileShares_Get", + "title": "GetShareProvisionedV2" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet_Stats.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet_Stats.json new file mode 100644 index 000000000000..881504aed018 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesGet_Stats.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "$expand": "stats", + "accountName": "sto6217", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9871", + "shareName": "share1634", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "share1634", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D592D74CC20EBA\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/fileServices/default/shares/share1634", + "properties": { + "lastModifiedTime": "2019-05-26T05:06:14Z", + "shareQuota": 1024, + "shareUsageBytes": 652945 + } + } + } + }, + "operationId": "FileShares_Get", + "title": "GetShareStats" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesLease_Acquire.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesLease_Acquire.json new file mode 100644 index 000000000000..6300b32e5383 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesLease_Acquire.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "action": "Acquire", + "breakPeriod": null, + "leaseDuration": -1, + "leaseId": null, + "proposedLeaseId": null + }, + "resourceGroupName": "res3376", + "shareName": "share124", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d" + } + } + }, + "operationId": "FileShares_Lease", + "title": "Acquire a lease on a share" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesLease_Break.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesLease_Break.json new file mode 100644 index 000000000000..6bf71d5f6717 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesLease_Break.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "action": "Break", + "breakPeriod": null, + "leaseDuration": null, + "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", + "proposedLeaseId": null + }, + "resourceGroupName": "res3376", + "shareName": "share12", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "leaseTimeSeconds": "0" + } + } + }, + "operationId": "FileShares_Lease", + "title": "Break a lease on a share" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesList.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesList.json new file mode 100644 index 000000000000..75d500921c89 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesList.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "accountName": "sto1590", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://sto1590endpoint/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto1590/share5103", + "value": [ + { + "name": "share1644", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D589847D51C7DE\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share1644", + "properties": { + "lastModifiedTime": "2019-05-14T08:20:47Z", + "shareQuota": 1024 + } + }, + { + "name": "share4052", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", + "properties": { + "lastModifiedTime": "2019-05-14T08:20:47Z", + "shareQuota": 1024 + } + } + ] + } + } + }, + "operationId": "FileShares_List", + "title": "ListShares" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesList_PaidBursting.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesList_PaidBursting.json new file mode 100644 index 000000000000..e4a2eda13e73 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesList_PaidBursting.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "accountName": "sto1590", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://sto1590endpoint/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto1590/share5103", + "value": [ + { + "name": "share1644", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D589847D51C7DE\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share1644", + "properties": { + "fileSharePaidBursting": { + "paidBurstingEnabled": true, + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 + }, + "lastModifiedTime": "2019-05-14T08:20:47Z", + "shareQuota": 1024 + } + }, + { + "name": "share4052", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", + "properties": { + "fileSharePaidBursting": { + "paidBurstingEnabled": true, + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 + }, + "lastModifiedTime": "2019-05-14T08:20:47Z", + "shareQuota": 1024 + } + } + ] + } + } + }, + "operationId": "FileShares_List", + "title": "ListSharesPaidBursting" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesList_ProvisionedV2.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesList_ProvisionedV2.json new file mode 100644 index 000000000000..955ff0884305 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesList_ProvisionedV2.json @@ -0,0 +1,54 @@ +{ + "parameters": { + "accountName": "sto1590", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://sto1590endpoint/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto1590/share5103", + "value": [ + { + "name": "share1644", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D589847D51C7DE\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share1644", + "properties": { + "includedBurstIops": 15000, + "lastModifiedTime": "2024-10-25T01:50:50.0000000Z", + "maxBurstCreditsForIops": 36000000, + "nextAllowedProvisionedBandwidthDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", + "nextAllowedProvisionedIopsDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", + "nextAllowedQuotaDowngradeTime": "Sat, 26 Oct 2024 01:50:50 GMT", + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 + } + }, + { + "name": "share4052", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", + "properties": { + "includedBurstIops": 15000, + "lastModifiedTime": "2024-10-25T01:50:50.0000000Z", + "maxBurstCreditsForIops": 36000000, + "nextAllowedProvisionedBandwidthDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", + "nextAllowedProvisionedIopsDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", + "nextAllowedQuotaDowngradeTime": "Sat, 26 Oct 2024 01:50:50 GMT", + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 + } + } + ] + } + } + }, + "operationId": "FileShares_List", + "title": "ListSharesProvisionedV2" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPatch.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPatch.json new file mode 100644 index 000000000000..2f81fdc3c6fc --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPatch.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "fileShare": { + "properties": { + "metadata": { + "type": "image" + } + } + }, + "monitor": "true", + "resourceGroupName": "res3376", + "shareName": "share6185", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "share6185", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", + "properties": { + "metadata": { + "type": "image" + } + } + } + } + }, + "operationId": "FileShares_Update", + "title": "UpdateShares" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPatch_PaidBursting.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPatch_PaidBursting.json new file mode 100644 index 000000000000..a292d588ec57 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPatch_PaidBursting.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "fileShare": { + "properties": { + "fileSharePaidBursting": { + "paidBurstingEnabled": true, + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 + } + } + }, + "monitor": "true", + "resourceGroupName": "res3376", + "shareName": "share6185", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "share6185", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", + "properties": { + "fileSharePaidBursting": { + "paidBurstingEnabled": true, + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 + } + } + } + } + }, + "operationId": "FileShares_Update", + "title": "UpdateSharePaidBursting" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPatch_ProvisionedV2.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPatch_ProvisionedV2.json new file mode 100644 index 000000000000..a28bf77824b1 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPatch_ProvisionedV2.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "fileShare": { + "properties": { + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 + } + }, + "monitor": "true", + "resourceGroupName": "res3376", + "shareName": "share6185", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "share6185", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", + "properties": { + "includedBurstIops": 15000, + "maxBurstCreditsForIops": 36000000, + "nextAllowedProvisionedBandwidthDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", + "nextAllowedProvisionedIopsDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", + "nextAllowedQuotaDowngradeTime": "Sat, 26 Oct 2024 01:50:50 GMT", + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 + } + } + } + }, + "operationId": "FileShares_Update", + "title": "UpdateShareProvisionedV2" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut.json new file mode 100644 index 000000000000..68ee13e7f3cd --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "fileShare": {}, + "monitor": "true", + "resourceGroupName": "res3376", + "shareName": "share6185", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "share6185", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185" + } + }, + "201": { + "body": { + "name": "share6185", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185" + } + } + }, + "operationId": "FileShares_Create", + "title": "PutShares" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_AccessTier.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_AccessTier.json new file mode 100644 index 000000000000..60fbae8b00cd --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_AccessTier.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "accountName": "sto666", + "api-version": "2025-06-01", + "fileShare": { + "properties": { + "accessTier": "Hot" + } + }, + "monitor": "true", + "resourceGroupName": "res346", + "shareName": "share1235", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "share1235", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", + "properties": { + "accessTier": "Hot" + } + } + }, + "201": { + "body": { + "name": "share1235", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", + "properties": { + "accessTier": "Hot" + } + } + } + }, + "operationId": "FileShares_Create", + "title": "PutShares with Access Tier" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_NFS.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_NFS.json new file mode 100644 index 000000000000..9710c876b1b1 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_NFS.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "accountName": "sto666", + "api-version": "2025-06-01", + "fileShare": { + "properties": { + "enabledProtocols": "NFS" + } + }, + "monitor": "true", + "resourceGroupName": "res346", + "shareName": "share1235", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "share1235", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", + "properties": { + "enabledProtocols": "NFS" + } + } + }, + "201": { + "body": { + "name": "share1235", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", + "properties": { + "enabledProtocols": "NFS" + } + } + } + }, + "operationId": "FileShares_Create", + "title": "Create NFS Shares" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_PaidBursting.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_PaidBursting.json new file mode 100644 index 000000000000..48ed146bea43 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_PaidBursting.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "accountName": "sto666", + "api-version": "2025-06-01", + "fileShare": { + "properties": { + "fileSharePaidBursting": { + "paidBurstingEnabled": true, + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 + } + } + }, + "monitor": "true", + "resourceGroupName": "res346", + "shareName": "share1235", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "share1235", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", + "properties": { + "fileSharePaidBursting": { + "paidBurstingEnabled": true, + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 + } + } + } + }, + "201": { + "body": { + "name": "share1235", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", + "properties": { + "fileSharePaidBursting": { + "paidBurstingEnabled": true, + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 + } + } + } + } + }, + "operationId": "FileShares_Create", + "title": "PutShares with Paid Bursting" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_ProvisionedV2.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_ProvisionedV2.json new file mode 100644 index 000000000000..4e17db56e16e --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesPut_ProvisionedV2.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "accountName": "sto666", + "api-version": "2025-06-01", + "fileShare": { + "properties": { + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 + } + }, + "monitor": "true", + "resourceGroupName": "res346", + "shareName": "share1235", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "share1235", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", + "properties": { + "includedBurstIops": 15000, + "maxBurstCreditsForIops": 36000000, + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 + } + } + }, + "201": { + "body": { + "name": "share1235", + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", + "properties": { + "includedBurstIops": 15000, + "maxBurstCreditsForIops": 36000000, + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 + } + } + } + }, + "operationId": "FileShares_Create", + "title": "PutSharesProvisionedV2" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/FileSharesRestore.json b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesRestore.json new file mode 100644 index 000000000000..a076b07da2ec --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/FileSharesRestore.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "deletedShare": { + "deletedShareName": "share1249", + "deletedShareVersion": "1234567890" + }, + "monitor": "true", + "resourceGroupName": "res3376", + "shareName": "share1249", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {} + }, + "operationId": "FileShares_Restore", + "title": "RestoreShares" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/LocalUserCreate.json b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserCreate.json new file mode 100644 index 000000000000..57d20113fb42 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserCreate.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "properties": { + "properties": { + "allowAclAuthorization": true, + "groupId": 2000, + "hasSshPassword": true, + "homeDirectory": "homedirectory", + "permissionScopes": [ + { + "permissions": "rwd", + "resourceName": "share1", + "service": "file" + }, + { + "permissions": "rw", + "resourceName": "share2", + "service": "file" + } + ], + "sshAuthorizedKeys": [ + { + "description": "key name", + "key": "ssh-rsa keykeykeykeykey=" + } + ] + } + }, + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" + }, + "responses": { + "200": { + "body": { + "name": "user1", + "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", + "properties": { + "allowAclAuthorization": true, + "groupId": 2000, + "homeDirectory": "homedirectory", + "permissionScopes": [ + { + "permissions": "rwd", + "resourceName": "share1", + "service": "file" + }, + { + "permissions": "rw", + "resourceName": "share2", + "service": "file" + } + ], + "sid": "S-1-2-0-125132-153423-36235-1000", + "sshAuthorizedKeys": [ + { + "description": "key name", + "key": "ssh-rsa keykeykeykeykey=" + } + ], + "userId": 1000 + } + } + } + }, + "operationId": "LocalUsers_CreateOrUpdate", + "title": "CreateLocalUser" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/LocalUserCreateNFSv3Enabled.json b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserCreateNFSv3Enabled.json new file mode 100644 index 000000000000..5e7693b2c1dc --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserCreateNFSv3Enabled.json @@ -0,0 +1,62 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "properties": { + "properties": { + "extendedGroups": [ + 1001, + 1005, + 2005 + ], + "isNFSv3Enabled": true + } + }, + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" + }, + "responses": { + "200": { + "body": { + "name": "user1", + "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", + "properties": { + "allowAclAuthorization": true, + "extendedGroups": [ + 1001, + 1005, + 2005 + ], + "groupId": 2000, + "homeDirectory": "homedirectory", + "isNFSv3Enabled": true, + "permissionScopes": [ + { + "permissions": "rwd", + "resourceName": "share1", + "service": "file" + }, + { + "permissions": "rw", + "resourceName": "share2", + "service": "file" + } + ], + "sid": "S-1-2-0-125132-153423-36235-1000", + "sshAuthorizedKeys": [ + { + "description": "key name", + "key": "ssh-rsa keykeykeykeykey=" + } + ], + "userId": 1000 + } + } + } + }, + "operationId": "LocalUsers_CreateOrUpdate", + "title": "CreateNFSv3EnabledLocalUser" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/LocalUserDelete.json b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserDelete.json new file mode 100644 index 000000000000..b88fdafdfae9 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserDelete.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "LocalUsers_Delete", + "title": "DeleteLocalUser" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/LocalUserGet.json b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserGet.json new file mode 100644 index 000000000000..5208482cfddf --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserGet.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" + }, + "responses": { + "200": { + "body": { + "name": "user1", + "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", + "properties": { + "allowAclAuthorization": true, + "extendedGroups": [ + 1001, + 1005, + 2005 + ], + "groupId": 2000, + "hasSharedKey": true, + "hasSshKey": true, + "hasSshPassword": true, + "homeDirectory": "homedirectory", + "isNFSv3Enabled": true, + "permissionScopes": [ + { + "permissions": "rwd", + "resourceName": "share1", + "service": "file" + }, + { + "permissions": "rw", + "resourceName": "share2", + "service": "file" + } + ], + "sid": "S-1-2-0-125132-153423-36235-1000", + "userId": 1000 + } + } + } + }, + "operationId": "LocalUsers_Get", + "title": "GetLocalUser" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/LocalUserListKeys.json b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserListKeys.json new file mode 100644 index 000000000000..d7faacd1ff54 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserListKeys.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" + }, + "responses": { + "200": { + "body": { + "sharedKey": "", + "sshAuthorizedKeys": [ + { + "description": "key name", + "key": "ssh-rsa keykeykeykeykew=" + } + ] + } + } + }, + "operationId": "LocalUsers_ListKeys", + "title": "ListLocalUserKeys" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/LocalUserRegeneratePassword.json b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserRegeneratePassword.json new file mode 100644 index 000000000000..82df789df29f --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserRegeneratePassword.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" + }, + "responses": { + "200": { + "body": { + "sshPassword": "" + } + } + }, + "operationId": "LocalUsers_RegeneratePassword", + "title": "RegenerateLocalUserPassword" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/LocalUserUpdate.json b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserUpdate.json new file mode 100644 index 000000000000..937436bcf040 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/LocalUserUpdate.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "properties": { + "properties": { + "allowAclAuthorization": false, + "extendedGroups": [ + 1001, + 1005, + 2005 + ], + "groupId": 3000, + "hasSharedKey": false, + "hasSshKey": false, + "hasSshPassword": false, + "homeDirectory": "homedirectory2", + "isNFSv3Enabled": true + } + }, + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" + }, + "responses": { + "200": { + "body": { + "name": "user1", + "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", + "properties": { + "allowAclAuthorization": false, + "extendedGroups": [ + 1001, + 1005, + 2005 + ], + "groupId": 3000, + "hasSharedKey": false, + "hasSshKey": false, + "hasSshPassword": false, + "homeDirectory": "homedirectory2", + "isNFSv3Enabled": true, + "sid": "S-1-2-0-3528686663-1788730862-2791910117-1000", + "userId": 1000 + } + } + } + }, + "operationId": "LocalUsers_CreateOrUpdate", + "title": "UpdateLocalUser" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/LocalUsersList.json b/specification/storage/Storage.Management/examples/2025-06-01/LocalUsersList.json new file mode 100644 index 000000000000..cc754ec9e14b --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/LocalUsersList.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "user1", + "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", + "properties": { + "allowAclAuthorization": true, + "groupId": 2000, + "hasSharedKey": true, + "hasSshKey": true, + "hasSshPassword": true, + "homeDirectory": "homedirectory", + "permissionScopes": [ + { + "permissions": "rwd", + "resourceName": "share1", + "service": "file" + }, + { + "permissions": "rw", + "resourceName": "share2", + "service": "file" + } + ], + "sid": "S-1-2-0-125132-153423-36235-1000", + "userId": 1000 + } + }, + { + "name": "user2", + "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/loalUsers/user2", + "properties": { + "allowAclAuthorization": true, + "groupId": 2000, + "hasSharedKey": true, + "hasSshKey": false, + "hasSshPassword": true, + "permissionScopes": [ + { + "permissions": "rw", + "resourceName": "resourcename", + "service": "blob" + } + ], + "sid": "S-1-2-0-533672-235636-66334-1001", + "userId": 1001 + } + } + ] + } + } + }, + "operationId": "LocalUsers_List", + "title": "ListLocalUsers" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/LocalUsersListNFSv3Enabled.json b/specification/storage/Storage.Management/examples/2025-06-01/LocalUsersListNFSv3Enabled.json new file mode 100644 index 000000000000..5a1056dc40bd --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/LocalUsersListNFSv3Enabled.json @@ -0,0 +1,80 @@ +{ + "parameters": { + "$include": "nfsv3", + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "user1", + "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", + "properties": { + "allowAclAuthorization": true, + "extendedGroups": [ + 1001, + 1005, + 2005 + ], + "groupId": 2000, + "hasSharedKey": true, + "hasSshKey": true, + "hasSshPassword": true, + "homeDirectory": "homedirectory", + "isNFSv3Enabled": true, + "permissionScopes": [ + { + "permissions": "rwd", + "resourceName": "share1", + "service": "file" + }, + { + "permissions": "rw", + "resourceName": "share2", + "service": "file" + } + ], + "sid": "S-1-2-0-125132-153423-36235-1000", + "userId": 1000 + } + }, + { + "name": "user2", + "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/loalUsers/user2", + "properties": { + "allowAclAuthorization": true, + "extendedGroups": [ + 1001, + 1005, + 2005 + ], + "groupId": 2000, + "hasSharedKey": true, + "hasSshKey": false, + "hasSshPassword": true, + "isNFSv3Enabled": true, + "permissionScopes": [ + { + "permissions": "rw", + "resourceName": "resourcename", + "service": "blob" + } + ], + "sid": "S-1-2-0-533672-235636-66334-1001", + "userId": 1001 + } + } + ] + } + } + }, + "operationId": "LocalUsers_List", + "title": "ListNFSv3EnabledLocalUsers" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/NetworkSecurityPerimeterConfigurationGet.json b/specification/storage/Storage.Management/examples/2025-06-01/NetworkSecurityPerimeterConfigurationGet.json new file mode 100644 index 000000000000..f7a02db7d990 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/NetworkSecurityPerimeterConfigurationGet.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "accountName": "sto8607", + "api-version": "2025-06-01", + "networkSecurityPerimeterConfigurationName": "dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-1111-2222-3333-444444444444" + }, + "responses": { + "200": { + "body": { + "name": "dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", + "type": "Microsoft.Storage/storageAccounts/networkSecurityPerimeterConfigurations", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/networkSecurityPerimeterConfigurations/dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", + "properties": { + "networkSecurityPerimeter": { + "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774/resourceGroups/res4794/providers/Microsoft.Network/networkSecurityPerimeters/nsp1", + "location": "East US", + "perimeterGuid": "ce2d5953-5c15-40ca-9d51-cc3f4a63b0f5" + }, + "profile": { + "name": "profile1", + "accessRules": [ + { + "name": "allowedSubscriptions", + "properties": { + "direction": "Inbound", + "subscriptions": [ + { + "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774" + } + ] + } + } + ], + "accessRulesVersion": 10, + "diagnosticSettingsVersion": 5, + "enabledLogCategories": [ + "NspPublicInboundPerimeterRulesAllowed", + "NspPublicInboundPerimeterRulesDenied" + ] + }, + "provisioningIssues": [ + { + "name": "ConfigurationPropagationFailure", + "properties": { + "description": "Failed to update Network Security Perimeter association.", + "issueType": "ConfigurationPropagationFailure", + "severity": "Error" + } + } + ], + "provisioningState": "Succeeded", + "resourceAssociation": { + "name": "resourceAssociation1", + "accessMode": "Enforced" + } + } + } + } + }, + "operationId": "NetworkSecurityPerimeterConfigurations_Get", + "title": "NetworkSecurityPerimeterConfigurationGet" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/NetworkSecurityPerimeterConfigurationList.json b/specification/storage/Storage.Management/examples/2025-06-01/NetworkSecurityPerimeterConfigurationList.json new file mode 100644 index 000000000000..ac4d4ff494e7 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/NetworkSecurityPerimeterConfigurationList.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "accountName": "sto8607", + "api-version": "2025-06-01", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-1111-2222-3333-444444444444" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", + "type": "Microsoft.Storage/storageAccounts/networkSecurityPerimeterConfigurations", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/networkSecurityPerimeterConfigurations/dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", + "properties": { + "networkSecurityPerimeter": { + "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774/resourceGroups/res4794/providers/Microsoft.Network/networkSecurityPerimeters/nsp1", + "location": "East US", + "perimeterGuid": "ce2d5953-5c15-40ca-9d51-cc3f4a63b0f5" + }, + "profile": { + "name": "profile1", + "accessRules": [ + { + "name": "inVpnRule", + "properties": { + "addressPrefixes": [ + "148.0.0.0/8", + "152.4.6.0/24" + ], + "direction": "Inbound" + } + } + ], + "accessRulesVersion": 10, + "diagnosticSettingsVersion": 5, + "enabledLogCategories": [ + "NspPublicInboundPerimeterRulesAllowed", + "NspPublicInboundPerimeterRulesDenied" + ] + }, + "provisioningState": "Succeeded", + "resourceAssociation": { + "name": "association1", + "accessMode": "Enforced" + } + } + } + ] + } + } + }, + "operationId": "NetworkSecurityPerimeterConfigurations_List", + "title": "NetworkSecurityPerimeterConfigurationList" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/NetworkSecurityPerimeterConfigurationReconcile.json b/specification/storage/Storage.Management/examples/2025-06-01/NetworkSecurityPerimeterConfigurationReconcile.json new file mode 100644 index 000000000000..69de089deb3f --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/NetworkSecurityPerimeterConfigurationReconcile.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "accountName": "sto8607", + "api-version": "2025-06-01", + "networkSecurityPerimeterConfigurationName": "dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-1111-2222-3333-444444444444" + }, + "responses": { + "202": { + "headers": { + "Location": "https://endpoint:port/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Storage/locations/{location}/asyncoperations/{operationid}?monitor=true&api-version=2022-09-01" + } + } + }, + "operationId": "NetworkSecurityPerimeterConfigurations_Reconcile", + "title": "NetworkSecurityPerimeterConfigurationReconcile" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/NfsV3AccountCreate.json b/specification/storage/Storage.Management/examples/2025-06-01/NfsV3AccountCreate.json new file mode 100644 index 000000000000..4038967a5cbd --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/NfsV3AccountCreate.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "kind": "BlockBlobStorage", + "location": "eastus", + "properties": { + "enableExtendedGroups": true, + "isHnsEnabled": true, + "isNfsV3Enabled": true, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "virtualNetworkRules": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Network/virtualNetworks/net123/subnets/subnet12" + } + ] + }, + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Premium_LRS" + } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "BlockBlobStorage", + "location": "eastus", + "properties": { + "enableExtendedGroups": true, + "isHnsEnabled": true, + "isNfsV3Enabled": true, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "virtualNetworkRules": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Network/virtualNetworks/net123/subnets/subnet12" + } + ] + }, + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Premium_LRS", + "tier": "Premium" + } + } + }, + "202": {} + }, + "operationId": "StorageAccounts_Create", + "title": "NfsV3AccountCreate" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/ObjectLevelWormContainerMigration.json b/specification/storage/Storage.Management/examples/2025-06-01/ObjectLevelWormContainerMigration.json new file mode 100644 index 000000000000..dd2b78543220 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/ObjectLevelWormContainerMigration.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "accountName": "sto7069", + "api-version": "2025-06-01", + "containerName": "container6397", + "immutabilityPolicyName": "default", + "monitor": "true", + "resourceGroupName": "res1782", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Location": "https://endpoint:port/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/{location}/asyncoperations/{operationid}?monitor=true&api-version=2022-09-01" + } + } + }, + "operationId": "BlobContainers_ObjectLevelWorm", + "title": "VersionLevelWormContainerMigration" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/OperationsList.json b/specification/storage/Storage.Management/examples/2025-06-01/OperationsList.json new file mode 100644 index 000000000000..710825d16c7e --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/OperationsList.json @@ -0,0 +1,475 @@ +{ + "parameters": { + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.Storage/storageAccounts/write", + "display": { + "description": "Creates a storage account with the specified parameters or update the properties or tags or adds custom domain for the specified storage account.", + "operation": "Create/Update Storage Account", + "provider": "Microsoft Storage", + "resource": "Storage Accounts" + } + }, + { + "name": "Microsoft.Storage/storageAccounts/delete", + "display": { + "description": "Deletes an existing storage account.", + "operation": "Delete Storage Account", + "provider": "Microsoft Storage", + "resource": "Storage Accounts" + } + }, + { + "name": "Microsoft.Storage/storageAccounts/listkeys/action", + "display": { + "description": "Returns the access keys for the specified storage account.", + "operation": "List Storage Account Keys", + "provider": "Microsoft Storage", + "resource": "Storage Accounts" + } + }, + { + "name": "Microsoft.Storage/storageAccounts/regeneratekey/action", + "display": { + "description": "Regenerates the access keys for the specified storage account.", + "operation": "Regenerate Storage Account Keys", + "provider": "Microsoft Storage", + "resource": "Storage Accounts" + } + }, + { + "name": "Microsoft.Storage/checknameavailability/read", + "display": { + "description": "Checks that account name is valid and is not in use.", + "operation": "Check Name Availability", + "provider": "Microsoft Storage", + "resource": "Name Availability" + } + }, + { + "name": "Microsoft.Storage/storageAccounts/read", + "display": { + "description": "Returns the list of storage accounts or gets the properties for the specified storage account.", + "operation": "List/Get Storage Account(s)", + "provider": "Microsoft Storage", + "resource": "Storage Accounts" + } + }, + { + "name": "Microsoft.Storage/usages/read", + "display": { + "description": "Returns the limit and the current usage count for resources in the specified subscription", + "operation": "Get Subscription Usages", + "provider": "Microsoft Storage", + "resource": "Usage Metrics" + } + }, + { + "name": "Microsoft.Storage/storageAccounts/listAccountSas/action", + "display": { + "description": "Returns the Account SAS token for the specified storage account.", + "operation": "Returns Storage Account SAS Token", + "provider": "Microsoft Storage", + "resource": "Storage Account SAS Token" + } + }, + { + "name": "Microsoft.Storage/storageAccounts/listServiceSas/action", + "display": { + "description": "Storage Service SAS Token", + "operation": "Returns Storage Service SAS Token", + "provider": "Microsoft Storage", + "resource": "Returns the Service SAS token for the specified storage account." + } + }, + { + "name": "Microsoft.Storage/locations/deleteVirtualNetworkOrSubnets/action", + "display": { + "description": "Notifies Microsoft.Storage that virtual network or subnet is being deleted", + "operation": "Delete virtual network or subnets notifications", + "provider": "Microsoft Storage", + "resource": "Location" + } + }, + { + "name": "Microsoft.Storage/operations/read", + "display": { + "description": "Polls the status of an asynchronous operation.", + "operation": "Poll Asynchronous Operation", + "provider": "Microsoft Storage", + "resource": "Operations" + } + }, + { + "name": "Microsoft.Storage/register/action", + "display": { + "description": "Registers the subscription for the storage resource provider and enables the creation of storage accounts.", + "operation": "Registers the Storage Resource Provider", + "provider": "Microsoft Storage", + "resource": "Storage Resource Provider" + } + }, + { + "name": "Microsoft.Storage/skus/read", + "display": { + "description": "Lists the Skus supported by Microsoft.Storage.", + "operation": "List Skus", + "provider": "Microsoft Storage", + "resource": "Skus" + } + }, + { + "name": "Microsoft.Storage/storageAccounts/services/diagnosticSettings/write", + "display": { + "description": "Create/Update storage account diagnostic settings.", + "operation": "Create/Update Diagnostic Settings", + "provider": "Microsoft Storage", + "resource": "Storage Accounts" + } + }, + { + "name": "Microsoft.Storage/storageAccounts/providers/Microsoft.Insights/metricDefinitions/read", + "display": { + "description": "Get list of Microsoft Storage Metrics definitions.", + "operation": "Get list of Microsoft Storage Metrics definitions", + "provider": "Microsoft Storage", + "resource": "Storage Accounts" + }, + "origin": "system", + "properties": { + "serviceSpecification": { + "metricSpecifications": [ + { + "name": "UsedCapacity", + "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "Account used capacity", + "displayName": "Used capacity", + "fillGapWithZero": false, + "resourceIdDimensionNameOverride": "AccountResourceId", + "unit": "Bytes" + } + ] + } + } + }, + { + "name": "Microsoft.Storage/storageAccounts/providers/Microsoft.Insights/diagnosticSettings/read", + "display": { + "description": "Gets the diagnostic setting for the resource.", + "operation": "Read diagnostic setting", + "provider": "Microsoft Storage", + "resource": "Storage Accounts" + }, + "origin": "system" + }, + { + "name": "Microsoft.Storage/storageAccounts/providers/Microsoft.Insights/diagnosticSettings/write", + "display": { + "description": "Creates or updates the diagnostic setting for the resource.", + "operation": "Write diagnostic setting", + "provider": "Microsoft Storage", + "resource": "Storage Accounts" + }, + "origin": "system" + }, + { + "name": "Microsoft.Storage/storageAccounts/blobServices/providers/Microsoft.Insights/metricDefinitions/read", + "display": { + "description": "Get list of Microsoft Storage Metrics definitions.", + "operation": "Get list of Microsoft Storage Metrics definitions", + "provider": "Microsoft Storage", + "resource": "Blob service" + }, + "origin": "system", + "properties": { + "serviceSpecification": { + "metricSpecifications": [ + { + "name": "BlobCapacity", + "aggregationType": "Average", + "category": "Capacity", + "dimensions": [ + { + "name": "BlobType", + "displayName": "Blob type" + } + ], + "displayDescription": "The amount of storage used by the storage account’s Blob service in bytes.", + "displayName": "Blob Capacity", + "fillGapWithZero": false, + "unit": "Bytes" + }, + { + "name": "BlobCount", + "aggregationType": "Average", + "category": "Capacity", + "dimensions": [ + { + "name": "BlobType", + "displayName": "Blob type" + } + ], + "displayDescription": "The number of Blob in the storage account’s Blob service.", + "displayName": "Blob Count", + "fillGapWithZero": false, + "unit": "Count" + }, + { + "name": "ContainerCount", + "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The number of containers in the storage account’s Blob service.", + "displayName": "Blob Container Count", + "fillGapWithZero": false, + "unit": "Count" + }, + { + "name": "BlobProvisionedSize", + "aggregationType": "Average", + "category": "Capacity", + "dimensions": [ + { + "name": "BlobType", + "displayName": "Blob type" + } + ], + "displayDescription": "The amount of storage provisioned in the storage account’s Blob service in bytes.", + "displayName": "Blob Provisioned Size", + "fillGapWithZero": false, + "unit": "Bytes" + } + ] + } + } + }, + { + "name": "Microsoft.Storage/storageAccounts/blobServices/providers/Microsoft.Insights/diagnosticSettings/read", + "display": { + "description": "Gets the diagnostic setting for the resource.", + "operation": "Read diagnostic setting", + "provider": "Microsoft Storage", + "resource": "Blob service" + }, + "origin": "system" + }, + { + "name": "Microsoft.Storage/storageAccounts/blobServices/providers/Microsoft.Insights/diagnosticSettings/write", + "display": { + "description": "Creates or updates the diagnostic setting for the resource.", + "operation": "Write diagnostic setting", + "provider": "Microsoft Storage", + "resource": "Blob service" + }, + "origin": "system" + }, + { + "name": "Microsoft.Storage/storageAccounts/tableServices/providers/Microsoft.Insights/metricDefinitions/read", + "display": { + "description": "Get list of Microsoft Storage Metrics definitions.", + "operation": "Get list of Microsoft Storage Metrics definitions", + "provider": "Microsoft Storage", + "resource": "Table service" + }, + "origin": "system", + "properties": { + "serviceSpecification": { + "metricSpecifications": [ + { + "name": "TableCapacity", + "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The amount of storage used by the storage account’s Table service in bytes.", + "displayName": "Table Capacity", + "fillGapWithZero": false, + "unit": "Bytes" + }, + { + "name": "TableCount", + "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The number of table in the storage account’s Table service.", + "displayName": "Table Count", + "fillGapWithZero": false, + "unit": "Count" + }, + { + "name": "TableEntityCount", + "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The number of table entities in the storage account’s Table service.", + "displayName": "Table Entity Count", + "fillGapWithZero": false, + "unit": "Count" + } + ] + } + } + }, + { + "name": "Microsoft.Storage/storageAccounts/tableServices/providers/Microsoft.Insights/diagnosticSettings/read", + "display": { + "description": "Gets the diagnostic setting for the resource.", + "operation": "Read diagnostic setting", + "provider": "Microsoft Storage", + "resource": "Table service" + }, + "origin": "system" + }, + { + "name": "Microsoft.Storage/storageAccounts/tableServices/providers/Microsoft.Insights/diagnosticSettings/write", + "display": { + "description": "Creates or updates the diagnostic setting for the resource.", + "operation": "Write diagnostic setting", + "provider": "Microsoft Storage", + "resource": "Table service" + }, + "origin": "system" + }, + { + "name": "Microsoft.Storage/storageAccounts/queueServices/providers/Microsoft.Insights/metricDefinitions/read", + "display": { + "description": "Get list of Microsoft Storage Metrics definitions.", + "operation": "Get list of Microsoft Storage Metrics definitions", + "provider": "Microsoft Storage", + "resource": "Queue service" + }, + "origin": "system", + "properties": { + "serviceSpecification": { + "metricSpecifications": [ + { + "name": "QueueCapacity", + "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The amount of storage used by the storage account’s Queue service in bytes.", + "displayName": "Queue Capacity", + "fillGapWithZero": false, + "unit": "Bytes" + }, + { + "name": "QueueCount", + "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The number of queue in the storage account’s Queue service.", + "displayName": "Queue Count", + "fillGapWithZero": false, + "unit": "Count" + }, + { + "name": "QueueMessageCount", + "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The approximate number of queue messages in the storage account’s Queue service.", + "displayName": "Queue Message Count", + "fillGapWithZero": false, + "unit": "Count" + } + ] + } + } + }, + { + "name": "Microsoft.Storage/storageAccounts/queueServices/providers/Microsoft.Insights/diagnosticSettings/read", + "display": { + "description": "Gets the diagnostic setting for the resource.", + "operation": "Read diagnostic setting", + "provider": "Microsoft Storage", + "resource": "Queue service" + }, + "origin": "system" + }, + { + "name": "Microsoft.Storage/storageAccounts/queueServices/providers/Microsoft.Insights/diagnosticSettings/write", + "display": { + "description": "Creates or updates the diagnostic setting for the resource.", + "operation": "Write diagnostic setting", + "provider": "Microsoft Storage", + "resource": "Queue service" + }, + "origin": "system" + }, + { + "name": "Microsoft.Storage/storageAccounts/fileServices/providers/Microsoft.Insights/metricDefinitions/read", + "display": { + "description": "Get list of Microsoft Storage Metrics definitions.", + "operation": "Get list of Microsoft Storage Metrics definitions", + "provider": "Microsoft Storage", + "resource": "File service" + }, + "origin": "system", + "properties": { + "serviceSpecification": { + "metricSpecifications": [ + { + "name": "FileCapacity", + "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The amount of storage used by the storage account’s File service in bytes.", + "displayName": "File Capacity", + "fillGapWithZero": false, + "unit": "Bytes" + }, + { + "name": "FileProvisionedSize", + "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The amount of storage provisioned in the storage account’s File service in bytes.", + "displayName": "File Provisioned Size", + "fillGapWithZero": false, + "unit": "Bytes" + }, + { + "name": "FileCount", + "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The number of file in the storage account’s File service.", + "displayName": "File Count", + "fillGapWithZero": false, + "unit": "Count" + }, + { + "name": "FileShareCount", + "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The number of file shares in the storage account’s File service.", + "displayName": "File Share Count", + "fillGapWithZero": false, + "unit": "Count" + } + ] + } + } + }, + { + "name": "Microsoft.Storage/storageAccounts/fileServices/providers/Microsoft.Insights/diagnosticSettings/read", + "display": { + "description": "Gets the diagnostic setting for the resource.", + "operation": "Read diagnostic setting", + "provider": "Microsoft Storage", + "resource": "File service" + }, + "origin": "system" + }, + { + "name": "Microsoft.Storage/storageAccounts/fileServices/providers/Microsoft.Insights/diagnosticSettings/write", + "display": { + "description": "Creates or updates the diagnostic setting for the resource.", + "operation": "Write diagnostic setting", + "provider": "Microsoft Storage", + "resource": "File service" + }, + "origin": "system" + } + ] + } + } + }, + "operationId": "Operations_List", + "title": "OperationsList" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationDelete.json b/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationDelete.json new file mode 100644 index 000000000000..ca59dcab1e8d --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationDelete.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "queueName": "queue6185", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "204": {} + }, + "operationId": "Queue_Delete", + "title": "QueueOperationDelete" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationGet.json b/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationGet.json new file mode 100644 index 000000000000..015deeaf3fef --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationGet.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "queueName": "queue6185", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "queue6185", + "type": "Microsoft.Storage/storageAccounts/queueServices/queues", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185", + "properties": { + "metadata": { + "sample1": "meta1", + "sample2": "meta2" + } + } + } + } + }, + "operationId": "Queue_Get", + "title": "QueueOperationGet" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationList.json b/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationList.json new file mode 100644 index 000000000000..71c65fd67983 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationList.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://sto1590endpoint/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto328/queue6187", + "value": [ + { + "name": "queue6185", + "type": "Microsoft.Storage/storageAccounts/queueServices/queues", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185", + "properties": { + "metadata": { + "sample1": "meta1", + "sample2": "meta2" + } + } + }, + { + "name": "queue6186", + "type": "Microsoft.Storage/storageAccounts/queueServices/queues", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6186", + "properties": { + "metadata": { + "sample1": "meta1", + "sample2": "meta2" + } + } + } + ] + } + } + }, + "operationId": "Queue_List", + "title": "QueueOperationList" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationPatch.json b/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationPatch.json new file mode 100644 index 000000000000..5a425c699c25 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationPatch.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "queue": {}, + "queueName": "queue6185", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "queue6185", + "type": "Microsoft.Storage/storageAccounts/queueServices/queues", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185" + } + } + }, + "operationId": "Queue_Update", + "title": "QueueOperationPatch" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationPut.json b/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationPut.json new file mode 100644 index 000000000000..9e7bfa1175d0 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationPut.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "queue": {}, + "queueName": "queue6185", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "queue6185", + "type": "Microsoft.Storage/storageAccounts/queueServices/queues", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185" + } + } + }, + "operationId": "Queue_Create", + "title": "QueueOperationPut" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationPutWithMetadata.json b/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationPutWithMetadata.json new file mode 100644 index 000000000000..727e87e5a7e1 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/QueueOperationPutWithMetadata.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "queue": { + "properties": { + "metadata": { + "sample1": "meta1", + "sample2": "meta2" + } + } + }, + "queueName": "queue6185", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "queue6185", + "type": "Microsoft.Storage/storageAccounts/queueServices/queues", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185", + "properties": { + "metadata": { + "sample1": "meta1", + "sample2": "meta2" + } + } + } + } + }, + "operationId": "Queue_Create", + "title": "QueueOperationPutWithMetadata" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/QueueServicesGet.json b/specification/storage/Storage.Management/examples/2025-06-01/QueueServicesGet.json new file mode 100644 index 000000000000..cea446e1c490 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/QueueServicesGet.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "queueServiceName": "default", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/queueServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/queueServices/default", + "properties": { + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + } + } + } + } + }, + "operationId": "QueueServices_GetServiceProperties", + "title": "QueueServicesGet" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/QueueServicesList.json b/specification/storage/Storage.Management/examples/2025-06-01/QueueServicesList.json new file mode 100644 index 000000000000..173a857d8949 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/QueueServicesList.json @@ -0,0 +1,87 @@ +{ + "parameters": { + "accountName": "sto1590", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/queueServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/queueServices/default", + "properties": { + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + } + } + } + ] + } + } + }, + "operationId": "QueueServices_List", + "title": "QueueServicesList" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/QueueServicesPut.json b/specification/storage/Storage.Management/examples/2025-06-01/QueueServicesPut.json new file mode 100644 index 000000000000..d1110fec2e05 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/QueueServicesPut.json @@ -0,0 +1,149 @@ +{ + "parameters": { + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + } + } + }, + "queueServiceName": "default", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/queueServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/queueServices/default", + "properties": { + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + } + } + } + } + }, + "operationId": "QueueServices_SetServiceProperties", + "title": "QueueServicesPut" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/SKUList.json b/specification/storage/Storage.Management/examples/2025-06-01/SKUList.json new file mode 100644 index 000000000000..a66d5b286382 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/SKUList.json @@ -0,0 +1,6456 @@ +{ + "parameters": { + "api-version": "2025-06-01", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "true" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "eastus2(stage)" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "eastus2(stage)" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "eastus2(stage)" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastus2(stage)" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "eastus2(stage)" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "true" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastus2(stage)" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "true" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastus2(stage)" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "true" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastus2(stage)" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "westus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "westus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "westus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "westeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "westeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "westeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southeastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southeastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southeastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southeastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southeastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "southeastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "southeastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "southeastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "japaneast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "japaneast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "japaneast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "japaneast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "japaneast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "japaneast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "japaneast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "japaneast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "japanwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "japanwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "japanwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "japanwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "japanwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "japanwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "japanwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "japanwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "northcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "northcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "northcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "northcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "northcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "northcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "northcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "northcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "southcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "southcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "southcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "centralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "centralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "centralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "centralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "centralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "centralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "centralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "centralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "northeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "northeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "northeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "northeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "northeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "northeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "northeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "northeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "brazilsouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "brazilsouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "brazilsouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "brazilsouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "brazilsouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "brazilsouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "brazilsouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "brazilsouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "australiaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "australiaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "australiaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "australiaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "australiaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "australiaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "australiaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "australiaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "australiasoutheast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "australiasoutheast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "australiasoutheast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "australiasoutheast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "australiasoutheast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "australiasoutheast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "australiasoutheast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "australiasoutheast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "southindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "southindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "southindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "southindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "centralindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "centralindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "centralindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "centralindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "centralindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "centralindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "centralindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "centralindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "westindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "westindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "westindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "canadaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "canadaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "canadaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "canadaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "canadaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "canadaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "canadaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "canadaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "canadacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "canadacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "canadacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "canadacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "canadacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "canadacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "canadacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "canadacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "westus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "westus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "westus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "westcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "westcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "westcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "westcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "westcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "BlobStorage", + "locations": [ + "westcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "BlobStorage", + "locations": [ + "westcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "true" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "westcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uksouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uksouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uksouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uksouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uksouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "uksouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "uksouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "uksouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "ukwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "ukwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "ukwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "ukwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "ukwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "ukwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "ukwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "ukwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "koreacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "koreacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "koreacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "koreacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "koreacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "koreacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "koreacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "koreacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "koreasouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "koreasouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "koreasouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "koreasouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "koreasouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "koreasouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "koreasouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "koreasouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uknorth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uknorth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uknorth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uknorth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uknorth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "uknorth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "uknorth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "uknorth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uksouth2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uksouth2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uksouth2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uksouth2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "uksouth2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "uksouth2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "uksouth2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "false" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "uksouth2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "eastus2euap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "eastus2euap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "eastus2euap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "eastus2euap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "eastus2euap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "true" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastus2euap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "true" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastus2euap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "true" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "eastus2euap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "centraluseuap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "centraluseuap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "centraluseuap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "true" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "Storage", + "locations": [ + "centraluseuap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "Storage", + "locations": [ + "centraluseuap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", + "capabilities": [ + { + "name": "supportsarchivepreview", + "value": "false" + }, + { + "name": "supportschangenotification", + "value": "true" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "BlobStorage", + "locations": [ + "centraluseuap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "true" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "true" + } + ], + "kind": "BlobStorage", + "locations": [ + "centraluseuap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "true" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "BlobStorage", + "locations": [ + "centraluseuap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + } + ] + } + } + }, + "operationId": "Skus_List", + "title": "SkuList" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/SKUListWithLocationInfo.json b/specification/storage/Storage.Management/examples/2025-06-01/SKUListWithLocationInfo.json new file mode 100644 index 000000000000..3193c2b13ba0 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/SKUListWithLocationInfo.json @@ -0,0 +1,54 @@ +{ + "parameters": { + "api-version": "2025-06-01", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Premium_LRS", + "capabilities": [ + { + "name": "supportschangenotification", + "value": "true" + }, + { + "name": "supportsfileencryption", + "value": "false" + }, + { + "name": "supportshoeboxcapacitymetrics", + "value": "false" + }, + { + "name": "supportsnetworkacls", + "value": "false" + } + ], + "kind": "FileStorage", + "locationInfo": [ + { + "location": "centraluseuap", + "zones": [ + "1", + "2", + "3" + ] + } + ], + "locations": [ + "centraluseuap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + } + ] + } + } + }, + "operationId": "Skus_List", + "title": "SKUListWithLocationInfo" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountAbortHierarchicalNamespaceMigration.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountAbortHierarchicalNamespaceMigration.json new file mode 100644 index 000000000000..7cd98037e3de --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountAbortHierarchicalNamespaceMigration.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "accountName": "sto2434", + "api-version": "2025-06-01", + "resourceGroupName": "res4228", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Location": "https://endpoint:port/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/{location}/asyncoperations/{operationid}?monitor=true&api-version=2022-09-01" + } + } + }, + "operationId": "StorageAccounts_AbortHierarchicalNamespaceMigration", + "title": "StorageAccountAbortHierarchicalNamespaceMigration" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCheckNameAvailability.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCheckNameAvailability.json new file mode 100644 index 000000000000..08dbdbef223a --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCheckNameAvailability.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "accountName": { + "name": "sto3363", + "type": "Microsoft.Storage/storageAccounts" + }, + "api-version": "2025-06-01", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nameAvailable": true + } + } + }, + "operationId": "StorageAccounts_CheckNameAvailability", + "title": "StorageAccountCheckNameAvailability" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreate.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreate.json new file mode 100644 index 000000000000..04cc8cb4752e --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreate.json @@ -0,0 +1,157 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isHnsEnabled": true, + "isSftpEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "geoPriorityReplicationStatus": { + "isBlobEnabled": true + } + }, + "sku": { + "name": "Standard_GRS" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "isSftpEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "primaryEndpoints": { + "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "file": "https://sto4445.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto4445-microsoftrouting.file.core.windows.net/", + "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" + }, + "primaryLocation": "eastus2euap", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": true, + "geoPriorityReplicationStatus": { + "isBlobEnabled": true + } + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + }, + "202": {} + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreate" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateAllowedCopyScopeToAAD.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateAllowedCopyScopeToAAD.json new file mode 100644 index 000000000000..0ca48018e164 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateAllowedCopyScopeToAAD.json @@ -0,0 +1,146 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "allowedCopyScope": "AAD", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isHnsEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } + }, + "sku": { + "name": "Standard_GRS" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "allowedCopyScope": "AAD", + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "primaryEndpoints": { + "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "file": "https://sto4445.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto4445-microsoftrouting.file.core.windows.net/", + "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" + }, + "primaryLocation": "eastus2euap", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + }, + "202": {} + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateAllowedCopyScopeToAAD" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateAllowedCopyScopeToPrivateLink.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateAllowedCopyScopeToPrivateLink.json new file mode 100644 index 000000000000..64c3ad8c123b --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateAllowedCopyScopeToPrivateLink.json @@ -0,0 +1,146 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "allowedCopyScope": "PrivateLink", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isHnsEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } + }, + "sku": { + "name": "Standard_GRS" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "allowedCopyScope": "PrivateLink", + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "primaryEndpoints": { + "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "file": "https://sto4445.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto4445-microsoftrouting.file.core.windows.net/", + "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" + }, + "primaryLocation": "eastus2euap", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + }, + "202": {} + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateAllowedCopyScopeToPrivateLink" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateDisallowPublicNetworkAccess.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateDisallowPublicNetworkAccess.json new file mode 100644 index 000000000000..fc00bd1fff14 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateDisallowPublicNetworkAccess.json @@ -0,0 +1,150 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isHnsEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "publicNetworkAccess": "Disabled", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } + }, + "sku": { + "name": "Standard_GRS" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "primaryEndpoints": { + "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "file": "https://sto4445.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto4445-microsoftrouting.file.core.windows.net/", + "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" + }, + "primaryLocation": "eastus2euap", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + }, + "202": {} + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateDisallowPublicNetworkAccess" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateDnsEndpointTypeToAzureDnsZone.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateDnsEndpointTypeToAzureDnsZone.json new file mode 100644 index 000000000000..ac25729489d8 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateDnsEndpointTypeToAzureDnsZone.json @@ -0,0 +1,153 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "dnsEndpointType": "AzureDnsZone", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isHnsEnabled": true, + "isSftpEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } + }, + "sku": { + "name": "Standard_GRS" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "dnsEndpointType": "AzureDnsZone", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "isSftpEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "primaryEndpoints": { + "blob": "https://sto4445.z24.blob.storage.azure.net/", + "dfs": "https://sto4445.z24.dfs.storage.azure.net/", + "file": "https://sto4445.z24.file.storage.azure.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.z24.blob.storage.azure.net/", + "dfs": "https://sto4445-internetrouting.z24.dfs.storage.azure.net/", + "file": "https://sto4445-internetrouting.z24.file.storage.azure.net/", + "web": "https://sto4445-internetrouting.z24.web.storage.azure.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto4445-microsoftrouting.z24.blob.storage.azure.net/", + "dfs": "https://sto4445-microsoftrouting.z24.dfs.storage.azure.net/", + "file": "https://sto4445-microsoftrouting.z24.file.storage.azure.net/", + "queue": "https://sto4445-microsoftrouting.z24.queue.storage.azure.net/", + "table": "https://sto4445-microsoftrouting.z24.table.storage.azure.net/", + "web": "https://sto4445-microsoftrouting.z24.web.storage.azure.net/" + }, + "queue": "https://sto4445.z24.queue.storage.azure.net/", + "table": "https://sto4445.z24.table.storage.azure.net/", + "web": "https://sto4445.z24.web.storage.azure.net/" + }, + "primaryLocation": "eastus2euap", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + }, + "202": {} + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateDnsEndpointTypeToAzureDnsZone" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateDnsEndpointTypeToStandard.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateDnsEndpointTypeToStandard.json new file mode 100644 index 000000000000..a1b3c27ba10f --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateDnsEndpointTypeToStandard.json @@ -0,0 +1,153 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "dnsEndpointType": "Standard", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isHnsEnabled": true, + "isSftpEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } + }, + "sku": { + "name": "Standard_GRS" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "dnsEndpointType": "Standard", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "isSftpEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "primaryEndpoints": { + "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "file": "https://sto4445.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto4445-microsoftrouting.file.core.windows.net/", + "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" + }, + "primaryLocation": "eastus2euap", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + }, + "202": {} + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateDnsEndpointTypeToStandard" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateEnablePublicNetworkAccess.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateEnablePublicNetworkAccess.json new file mode 100644 index 000000000000..11337aa43e7f --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateEnablePublicNetworkAccess.json @@ -0,0 +1,150 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isHnsEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "publicNetworkAccess": "Enabled", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } + }, + "sku": { + "name": "Standard_GRS" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "primaryEndpoints": { + "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "file": "https://sto4445.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto4445-microsoftrouting.file.core.windows.net/", + "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" + }, + "primaryLocation": "eastus2euap", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + }, + "202": {} + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateEnablePublicNetworkAccess" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateObjectReplicationPolicyOnDestination.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateObjectReplicationPolicyOnDestination.json new file mode 100644 index 000000000000..e077d606a489 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateObjectReplicationPolicyOnDestination.json @@ -0,0 +1,69 @@ +{ + "parameters": { + "accountName": "dst112", + "api-version": "2025-06-01", + "monitor": "true", + "objectReplicationPolicyId": "default", + "properties": { + "properties": { + "destinationAccount": "dst112", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "rules": [ + { + "destinationContainer": "dcont139", + "filters": { + "prefixMatch": [ + "blobA", + "blobB" + ] + }, + "sourceContainer": "scont139" + } + ], + "sourceAccount": "src1122" + } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "2a20bb73-5717-4635-985a-5d4cf777438f", + "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/dst112/objectReplicationPolicies/2a20bb73-5717-4635-985a-5d4cf777438f", + "properties": { + "destinationAccount": "dst112", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "policyId": "2a20bb73-5717-4635-985a-5d4cf777438f", + "rules": [ + { + "destinationContainer": "destContainer1", + "filters": { + "prefixMatch": [ + "blobA", + "blobB" + ] + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "sourceContainer1" + } + ], + "sourceAccount": "src1122" + } + } + } + }, + "operationId": "ObjectReplicationPolicies_CreateOrUpdate", + "title": "StorageAccountCreateObjectReplicationPolicyOnDestination" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateObjectReplicationPolicyOnSource.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateObjectReplicationPolicyOnSource.json new file mode 100644 index 000000000000..257f3d732375 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateObjectReplicationPolicyOnSource.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "accountName": "src1122", + "api-version": "2025-06-01", + "monitor": "true", + "objectReplicationPolicyId": "2a20bb73-5717-4635-985a-5d4cf777438f", + "properties": { + "properties": { + "destinationAccount": "dst112", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "rules": [ + { + "destinationContainer": "dcont139", + "filters": { + "minCreationTime": "2020-02-19T16:05:00Z", + "prefixMatch": [ + "blobA", + "blobB" + ] + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "scont139" + } + ], + "sourceAccount": "src1122" + } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "2a20bb73-5717-4635-985a-5d4cf777438f", + "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/src1122/objectReplicationPolicies/2a20bb73-5717-4635-985a-5d4cf777438f", + "properties": { + "destinationAccount": "dst112", + "enabledTime": "2019-06-08T03:01:55.7168089Z", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "policyId": "2a20bb73-5717-4635-985a-5d4cf777438f", + "rules": [ + { + "destinationContainer": "destContainer1", + "filters": { + "minCreationTime": "2020-02-19T16:05:00Z", + "prefixMatch": [ + "blobA", + "blobB" + ] + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "sourceContainer1" + } + ], + "sourceAccount": "src1122" + } + } + } + }, + "operationId": "ObjectReplicationPolicies_CreateOrUpdate", + "title": "StorageAccountCreateObjectReplicationPolicyOnSource" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreatePremiumBlockBlobStorage.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreatePremiumBlockBlobStorage.json new file mode 100644 index 000000000000..ac7b8204d035 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreatePremiumBlockBlobStorage.json @@ -0,0 +1,91 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "kind": "BlockBlobStorage", + "location": "eastus", + "properties": { + "allowSharedKeyAccess": true, + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "minimumTlsVersion": "TLS1_2" + }, + "sku": { + "name": "Premium_LRS" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", + "properties": { + "accessTier": "Premium", + "allowBlobPublicAccess": false, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "minimumTlsVersion": "TLS1_2", + "primaryEndpoints": { + "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" + }, + "primaryLocation": "eastus2euap", + "provisioningState": "Succeeded", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Premium_LRS", + "tier": "Premium" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + }, + "202": {} + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreatePremiumBlockBlobStorage" +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json similarity index 82% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json rename to specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json index 208683170e64..547fd3a92b05 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json @@ -1,9 +1,7 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", - "api-version": "2025-01-01", + "api-version": "2025-06-01", "parameters": { "identity": { "type": "UserAssigned", @@ -11,108 +9,112 @@ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": {} } }, - "sku": { - "name": "Standard_LRS" - }, "kind": "Storage", "location": "eastus", "properties": { "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } + "identity": { + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "" }, - "keySource": "Microsoft.Keyvault", - "identity": { - "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } } } + }, + "sku": { + "name": "Standard_LRS" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", "identity": { + "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": { - "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7", - "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5" + "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5", + "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7" } - }, - "type": "UserAssigned" - }, - "sku": { - "name": "Standard_LRS", - "tier": "Standard" + } }, "kind": "StorageV2", - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "name": "sto4445", - "type": "Microsoft.Storage/storageAccounts", "location": "eastus", - "tags": {}, "properties": { - "privateEndpointConnections": [], - "networkAcls": { - "bypass": "AzureServices", - "virtualNetworkRules": [], - "ipRules": [], - "defaultAction": "Allow" - }, - "supportsHttpsTrafficOnly": true, + "accessTier": "Hot", + "creationTime": "2020-12-15T00:43:14.0839093Z", "encryption": { "identity": { "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "", - "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" }, "services": { - "file": { - "keyType": "Account", + "blob": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" }, - "blob": { - "keyType": "Account", + "file": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" } - }, - "keySource": "Microsoft.Keyvault" + } + }, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "virtualNetworkRules": [] }, - "accessTier": "Hot", - "provisioningState": "Succeeded", - "creationTime": "2020-12-15T00:43:14.0839093Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/" + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus", - "statusOfPrimary": "available" - } + "privateEndpointConnections": [], + "provisioningState": "Succeeded", + "statusOfPrimary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "tags": {} } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateUserAssignedEncryptionIdentityWithCMK" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json similarity index 79% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json rename to specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json index 5b7c15cdee86..b5841febb759 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json @@ -1,9 +1,7 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res131918", "accountName": "sto131918", - "api-version": "2025-01-01", + "api-version": "2025-06-01", "parameters": { "identity": { "type": "UserAssigned", @@ -11,110 +9,114 @@ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": {} } }, - "sku": { - "name": "Standard_LRS" - }, "kind": "Storage", "location": "eastus", "properties": { "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } + "identity": { + "federatedIdentityClientId": "f83c6b1b-4d34-47e4-bb34-9d83df58b540", + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "" }, - "keySource": "Microsoft.Keyvault", - "identity": { - "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}", - "federatedIdentityClientId": "f83c6b1b-4d34-47e4-bb34-9d83df58b540" + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } } } + }, + "sku": { + "name": "Standard_LRS" } - } + }, + "resourceGroupName": "res131918", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", "identity": { + "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": { - "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7", - "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5" + "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5", + "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7" } - }, - "type": "UserAssigned" - }, - "sku": { - "name": "Standard_LRS", - "tier": "Standard" + } }, "kind": "StorageV2", - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "name": "sto4445", - "type": "Microsoft.Storage/storageAccounts", "location": "eastus", - "tags": {}, "properties": { - "privateEndpointConnections": [], - "networkAcls": { - "bypass": "AzureServices", - "virtualNetworkRules": [], - "ipRules": [], - "defaultAction": "Allow" - }, - "supportsHttpsTrafficOnly": true, + "accessTier": "Hot", + "creationTime": "2020-12-15T00:43:14.0839093Z", "encryption": { "identity": { - "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}", - "federatedIdentityClientId": "f83c6b1b-4d34-47e4-bb34-9d83df58b540" + "federatedIdentityClientId": "f83c6b1b-4d34-47e4-bb34-9d83df58b540", + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "", - "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" }, "services": { - "file": { - "keyType": "Account", + "blob": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" }, - "blob": { - "keyType": "Account", + "file": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" } - }, - "keySource": "Microsoft.Keyvault" + } + }, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "virtualNetworkRules": [] }, - "accessTier": "Hot", - "provisioningState": "Succeeded", - "creationTime": "2020-12-15T00:43:14.0839093Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/" + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus", - "statusOfPrimary": "available" - } + "privateEndpointConnections": [], + "provisioningState": "Succeeded", + "statusOfPrimary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "tags": {} } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId." } diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateWithImmutabilityPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateWithImmutabilityPolicy.json new file mode 100644 index 000000000000..5ed909ed6f3b --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreateWithImmutabilityPolicy.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "kind": "Storage", + "location": "eastus", + "properties": { + "immutableStorageWithVersioning": { + "enabled": true, + "immutabilityPolicy": { + "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 15, + "state": "Unlocked" + } + } + }, + "sku": { + "name": "Standard_GRS" + } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", + "properties": { + "creationTime": "2017-05-24T13:25:33.4863236Z", + "immutableStorageWithVersioning": { + "enabled": true, + "immutabilityPolicy": { + "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 15, + "state": "Unlocked" + } + }, + "primaryEndpoints": { + "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "file": "https://sto4445.file.core.windows.net/", + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" + }, + "primaryLocation": "eastus2euap", + "provisioningState": "Succeeded" + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + } + } + }, + "202": {} + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateWithImmutabilityPolicy" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreate_placement.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreate_placement.json new file mode 100644 index 000000000000..e76b8a3d6cec --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreate_placement.json @@ -0,0 +1,160 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "kind": "Storage", + "location": "eastus", + "placement": { + "zonePlacementPolicy": "Any" + }, + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isHnsEnabled": true, + "isSftpEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } + }, + "sku": { + "name": "Standard_GRS" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", + "placement": { + "zonePlacementPolicy": "Any" + }, + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "isSftpEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "primaryEndpoints": { + "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "file": "https://sto4445.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto4445-microsoftrouting.file.core.windows.net/", + "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" + }, + "primaryLocation": "eastus2euap", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + }, + "zones": [ + "1" + ] + } + }, + "202": {} + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreate_placement" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreate_zones.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreate_zones.json new file mode 100644 index 000000000000..b5561bd54b72 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountCreate_zones.json @@ -0,0 +1,157 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isHnsEnabled": true, + "isSftpEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } + }, + "sku": { + "name": "Standard_GRS" + }, + "tags": { + "key1": "value1", + "key2": "value2" + }, + "zones": [ + "1" + ] + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" + }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "isSftpEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "primaryEndpoints": { + "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "file": "https://sto4445.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto4445-microsoftrouting.file.core.windows.net/", + "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" + }, + "primaryLocation": "eastus2euap", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + }, + "zones": [ + "1" + ] + } + }, + "202": {} + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreate_zones" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDelete.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDelete.json new file mode 100644 index 000000000000..f8dda7fe032b --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDelete.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "accountName": "sto2434", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res4228", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "StorageAccounts_Delete", + "title": "StorageAccountDelete" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeleteBlobInventoryPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeleteBlobInventoryPolicy.json new file mode 100644 index 000000000000..94e00b1b701f --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeleteBlobInventoryPolicy.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "blobInventoryPolicyName": "default", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "BlobInventoryPolicies_Delete", + "title": "StorageAccountDeleteBlobInventoryPolicy" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeleteManagementPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeleteManagementPolicy.json new file mode 100644 index 000000000000..d9bba76424fd --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeleteManagementPolicy.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "managementPolicyName": "default", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "ManagementPolicies_Delete", + "title": "StorageAccountDeleteManagementPolicies" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeleteObjectReplicationPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeleteObjectReplicationPolicy.json new file mode 100644 index 000000000000..cca882d45dae --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeleteObjectReplicationPolicy.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "objectReplicationPolicyId": "{objectReplicationPolicy-Id}", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "ObjectReplicationPolicies_Delete", + "title": "StorageAccountDeleteObjectReplicationPolicies" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeletePrivateEndpointConnection.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeletePrivateEndpointConnection.json new file mode 100644 index 000000000000..ea1ce748fe17 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountDeletePrivateEndpointConnection.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "PrivateEndpointConnections_Delete", + "title": "StorageAccountDeletePrivateEndpointConnection" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEnableAD.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEnableAD.json new file mode 100644 index 000000000000..ae90b658a61a --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEnableAD.json @@ -0,0 +1,77 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "azureFilesIdentityBasedAuthentication": { + "activeDirectoryProperties": { + "accountType": "User", + "azureStorageSid": "S-1-5-21-2400535526-2334094090-2402026252-0012", + "domainGuid": "aebfc118-9fa9-4732-a21f-d98e41a77ae1", + "domainName": "adtest.com", + "domainSid": "S-1-5-21-2400535526-2334094090-2402026252", + "forestName": "adtest.com", + "netBiosDomainName": "adtest.com", + "samAccountName": "sam12498" + }, + "directoryServiceOptions": "AD" + } + } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "kind": "Storage", + "location": "eastus2(stage)", + "properties": { + "azureFilesIdentityBasedAuthentication": { + "activeDirectoryProperties": { + "accountType": "User", + "azureStorageSid": "S-1-5-21-2400535526-2334094090-2402026252-0012", + "domainGuid": "aebfc118-9fa9-4732-a21f-d98e41a77ae1", + "domainName": "adtest.com", + "domainSid": "S-1-5-21-2400535526-2334094090-2402026252", + "forestName": "adtest.com", + "netBiosDomainName": "adtest.com", + "samAccountName": "sam12498" + }, + "directoryServiceOptions": "AD" + }, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "primaryEndpoints": { + "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountEnableAD" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEnableCMK.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEnableCMK.json new file mode 100644 index 000000000000..9eb6d840c72f --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEnableCMK.json @@ -0,0 +1,96 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "encryption": { + "keySource": "Microsoft.Keyvault", + "keyvaultproperties": { + "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyversion": "" + }, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + } + } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "identity": { + "type": "SystemAssigned", + "principalId": "911871cc-ffd1-4fc4-ac11-7a316433ea66", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + }, + "kind": "Storage", + "location": "eastus2(stage)", + "properties": { + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Keyvault", + "keyvaultproperties": { + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", + "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyversion": "", + "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" + }, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "primaryEndpoints": { + "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountEnableCMK" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEnableSmbOAuth.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEnableSmbOAuth.json new file mode 100644 index 000000000000..921e747077c0 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEnableSmbOAuth.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "azureFilesIdentityBasedAuthentication": { + "directoryServiceOptions": "None", + "smbOAuthSettings": { + "isSmbOAuthEnabled": true + } + } + } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "kind": "Storage", + "location": "eastus2(stage)", + "properties": { + "azureFilesIdentityBasedAuthentication": { + "directoryServiceOptions": "None", + "smbOAuthSettings": { + "isSmbOAuthEnabled": true + } + }, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "primaryEndpoints": { + "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountEnableSmbOAuth" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEncryptionScopeList.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEncryptionScopeList.json new file mode 100644 index 000000000000..f70aebe0a871 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountEncryptionScopeList.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "accountName": "accountname", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "scope-1", + "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/scope-1", + "properties": { + "creationTime": "2018-10-16T02:42:41.7633306Z", + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z", + "source": "Microsoft.Storage", + "state": "Enabled" + } + }, + { + "name": "scope-2", + "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/scope-2", + "properties": { + "creationTime": "2018-10-16T04:32:14.3355306Z", + "keyVaultProperties": { + "keyUri": "https://testvault.vault.core.windows.net/keys/key1/863425f1358359c" + }, + "lastModifiedTime": "2018-10-17T06:23:14.4513306Z", + "source": "Microsoft.KeyVault", + "state": "Enabled" + } + } + ] + } + } + }, + "operationId": "EncryptionScopes_List", + "title": "StorageAccountEncryptionScopeList" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountFailover.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountFailover.json new file mode 100644 index 000000000000..116d354dbee8 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountFailover.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "accountName": "sto2434", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res4228", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Location": "https://endpoint:port/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/{location}/asyncoperations/{operationid}?monitor=true&api-version=2022-09-01" + } + } + }, + "operationId": "StorageAccounts_Failover", + "title": "StorageAccountFailover" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountFailoverPlanned.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountFailoverPlanned.json new file mode 100644 index 000000000000..023230857ea3 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountFailoverPlanned.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "accountName": "sto2434", + "api-version": "2025-06-01", + "failoverType": "Planned", + "monitor": "true", + "resourceGroupName": "res4228", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Location": "https://endpoint:port/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/{location}/asyncoperations/{operationid}?monitor=true&api-version=2022-09-01" + } + } + }, + "operationId": "StorageAccounts_Failover", + "title": "StorageAccountFailoverPlanned" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetAsyncSkuConversionStatus.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetAsyncSkuConversionStatus.json new file mode 100644 index 000000000000..f302a6e376ae --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetAsyncSkuConversionStatus.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "kind": "StorageV2", + "location": "eastus", + "properties": { + "allowBlobPublicAccess": false, + "minimumTlsVersion": "TLS1_2", + "storageAccountSkuConversionStatus": { + "endTime": "2021-09-02T02:53:39.0932539Z", + "skuConversionStatus": "InProgress", + "startTime": "2022-09-01T02:53:39.0932539Z", + "targetSkuName": "Standard_GRS" + } + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + } + } + } + }, + "operationId": "StorageAccounts_GetProperties", + "title": "StorageAccountGetAsyncSkuConversionStatus" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetBlobInventoryPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetBlobInventoryPolicy.json new file mode 100644 index 000000000000..c9bd86e45ec3 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetBlobInventoryPolicy.json @@ -0,0 +1,67 @@ +{ + "parameters": { + "accountName": "sto9699", + "api-version": "2025-06-01", + "blobInventoryPolicyName": "default", + "monitor": "true", + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "DefaultInventoryPolicy", + "type": "Microsoft.Storage/storageAccounts/inventoryPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", + "properties": { + "lastModifiedTime": "2020-10-05T02:53:39.0932539Z", + "policy": { + "type": "Inventory", + "enabled": true, + "rules": [ + { + "name": "inventoryPolicyRule1", + "definition": { + "format": "Csv", + "filters": { + "blobTypes": [ + "blockBlob", + "appendBlob", + "pageBlob" + ], + "includeBlobVersions": true, + "includeSnapshots": true, + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] + }, + "objectType": "Blob", + "schedule": "Daily", + "schemaFields": [ + "Name", + "Creation-Time", + "Last-Modified", + "Content-Length", + "Content-MD5", + "BlobType", + "AccessTier", + "AccessTierChangeTime", + "Snapshot", + "VersionId", + "IsCurrentVersion", + "Metadata" + ] + }, + "destination": "container1", + "enabled": true + } + ] + } + } + } + } + }, + "operationId": "BlobInventoryPolicies_Get", + "title": "StorageAccountGetBlobInventoryPolicy" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetEncryptionScope.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetEncryptionScope.json new file mode 100644 index 000000000000..f9f62ece745d --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetEncryptionScope.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "accountName": "accountname", + "api-version": "2025-06-01", + "encryptionScopeName": "{encryption-scope-name}", + "monitor": "true", + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "{encyrption-scope-name}", + "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", + "properties": { + "creationTime": "2018-10-16T02:42:41.7633306Z", + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z", + "source": "Microsoft.Storage", + "state": "Enabled" + } + } + } + }, + "operationId": "EncryptionScopes_Get", + "title": "StorageAccountGetEncryptionScope" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetManagementPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetManagementPolicy.json new file mode 100644 index 000000000000..6663709d25e6 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetManagementPolicy.json @@ -0,0 +1,61 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "managementPolicyName": "default", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "DefaultManagementPolicy", + "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", + "properties": { + "lastModifiedTime": "2018-06-08T03:01:55.7168089Z", + "policy": { + "rules": [ + { + "name": "olcmtest", + "type": "Lifecycle", + "definition": { + "actions": { + "baseBlob": { + "delete": { + "daysAfterModificationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterModificationGreaterThan": 90 + }, + "tierToCool": { + "daysAfterModificationGreaterThan": 30 + } + }, + "snapshot": { + "delete": { + "daysAfterCreationGreaterThan": 30 + } + } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] + } + }, + "enabled": true + } + ] + } + } + } + } + }, + "operationId": "ManagementPolicies_Get", + "title": "StorageAccountGetManagementPolicies" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetMigrationFailed.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetMigrationFailed.json new file mode 100644 index 000000000000..cd8dbe9649bf --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetMigrationFailed.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "accountName": "accountname", + "api-version": "2025-06-01", + "migrationName": "default", + "monitor": "true", + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/accountMigrations", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/accountMigrations/default", + "properties": { + "migrationFailedDetailedReason": "ZRS is not supported for accounts with archive data.", + "migrationFailedReason": "ZrsNotSupportedForAccountWithArchiveData", + "migrationStatus": "Failed", + "targetSkuName": "Standard_ZRS" + } + } + } + }, + "operationId": "StorageAccounts_GetCustomerInitiatedMigration", + "title": "StorageAccountGetMigrationFailed" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetMigrationInProgress.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetMigrationInProgress.json new file mode 100644 index 000000000000..389ea9c0e8af --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetMigrationInProgress.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "accountName": "accountname", + "api-version": "2025-06-01", + "migrationName": "default", + "monitor": "true", + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/accountMigrations", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/accountMigrations/default", + "properties": { + "migrationStatus": "InProgress", + "targetSkuName": "Standard_ZRS" + } + } + } + }, + "operationId": "StorageAccounts_GetCustomerInitiatedMigration", + "title": "StorageAccountGetMigrationInProgress" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetObjectReplicationPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetObjectReplicationPolicy.json new file mode 100644 index 000000000000..98b9db87c307 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetObjectReplicationPolicy.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "objectReplicationPolicyId": "{objectReplicationPolicy-Id}", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "{objectReplicationPolicy-Id}", + "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/objectReplicationPolicies/{objectReplicationPolicy-Id}", + "properties": { + "destinationAccount": "destAccount1", + "enabledTime": "2019-06-08T03:01:55.7168089Z", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "policyId": "{objectReplicationPolicy-Id}", + "rules": [ + { + "destinationContainer": "destContainer1", + "filters": { + "prefixMatch": [ + "blobA", + "blobB" + ] + }, + "sourceContainer": "sourceContainer1" + }, + { + "destinationContainer": "destContainer1", + "filters": { + "prefixMatch": [ + "blobC", + "blobD" + ] + }, + "sourceContainer": "sourceContainer1" + } + ], + "sourceAccount": "sto2527" + } + } + } + }, + "operationId": "ObjectReplicationPolicies_Get", + "title": "StorageAccountGetObjectReplicationPolicies" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPrivateEndpointConnection.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPrivateEndpointConnection.json new file mode 100644 index 000000000000..282464545973 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPrivateEndpointConnection.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "{privateEndpointConnectionName}", + "type": "Microsoft.Storage/storageAccounts/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "PrivateEndpointConnections_Get", + "title": "StorageAccountGetPrivateEndpointConnection" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetProperties.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetProperties.json new file mode 100644 index 000000000000..d8718ecfedcd --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetProperties.json @@ -0,0 +1,108 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "kind": "Storage", + "location": "eastus2(stage)", + "properties": { + "accountMigrationInProgress": false, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "geoReplicationStats": { + "canFailover": true, + "lastSyncTime": "2018-10-30T00:25:34Z", + "status": "Live" + }, + "isHnsEnabled": true, + "isSkuConversionBlocked": false, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "resourceAccessRules": [ + { + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + } + ], + "virtualNetworkRules": [] + }, + "primaryEndpoints": { + "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto8596-microsoftrouting.file.core.windows.net/", + "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false, + "geoPriorityReplicationStatus": { + "isBlobEnabled": true + } + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + }, + "operationId": "StorageAccounts_GetProperties", + "title": "StorageAccountGetProperties" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesCMKEnabled.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesCMKEnabled.json new file mode 100644 index 000000000000..e44e2fff8b1a --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesCMKEnabled.json @@ -0,0 +1,106 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "identity": { + "type": "SystemAssigned", + "principalId": "911871cc-ffd1-4fc4-ac11-7a316433ea66", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + }, + "kind": "Storage", + "location": "eastus2(stage)", + "properties": { + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Keyvault", + "keyvaultproperties": { + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", + "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyversion": "", + "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" + }, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "geoReplicationStats": { + "canFailover": true, + "lastSyncTime": "2018-10-30T00:25:34Z", + "status": "Live" + }, + "isHnsEnabled": true, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "resourceAccessRules": [], + "virtualNetworkRules": [] + }, + "primaryEndpoints": { + "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto8596-microsoftrouting.file.core.windows.net/", + "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + }, + "operationId": "StorageAccounts_GetProperties", + "title": "StorageAccountGetPropertiesCMKEnabled" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesCMKVersionExpirationTime.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesCMKVersionExpirationTime.json new file mode 100644 index 000000000000..18abee0f7d1e --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesCMKVersionExpirationTime.json @@ -0,0 +1,107 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "identity": { + "type": "SystemAssigned", + "principalId": "911871cc-ffd1-4fc4-ac11-7a316433ea66", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + }, + "kind": "Storage", + "location": "eastus2(stage)", + "properties": { + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Keyvault", + "keyvaultproperties": { + "currentVersionedKeyExpirationTimestamp": "2019-12-13T20:36:23.7023290Z", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", + "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyversion": "", + "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" + }, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "geoReplicationStats": { + "canFailover": true, + "lastSyncTime": "2018-10-30T00:25:34Z", + "status": "Live" + }, + "isHnsEnabled": true, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "resourceAccessRules": [], + "virtualNetworkRules": [] + }, + "primaryEndpoints": { + "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto8596-microsoftrouting.file.core.windows.net/", + "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + }, + "operationId": "StorageAccounts_GetProperties", + "title": "StorageAccountGetPropertiesCMKVersionExpirationTime" +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json similarity index 80% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json rename to specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json index 625c45f18c4a..1d8f4c621f5c 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json @@ -1,96 +1,97 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", + "$expand": "geoReplicationStats", "accountName": "sto8596", - "api-version": "2025-01-01", + "api-version": "2025-06-01", "monitor": "true", - "$expand": "geoReplicationStats" + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { - "keyCreationTime": { - "key1": "2021-03-18T04:42:22.4322836Z", - "key2": "2021-03-18T04:42:22.4322836Z" + "accountMigrationInProgress": false, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, "geoReplicationStats": { - "status": "Live", - "lastSyncTime": "2018-10-30T00:25:34Z", "canFailover": false, "canPlannedFailover": false, + "lastSyncTime": "2018-10-30T00:25:34Z", "postFailoverRedundancy": "Standard_LRS", - "postPlannedFailoverRedundancy": "Standard_GRS" + "postPlannedFailoverRedundancy": "Standard_GRS", + "status": "Live" }, "isHnsEnabled": true, - "creationTime": "2017-06-01T02:42:41.7633306Z", + "isSkuConversionBlocked": false, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, "networkAcls": { "bypass": "AzureServices", "defaultAction": "Allow", "ipRules": [], - "virtualNetworkRules": [], "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } - ] + ], + "virtualNetworkRules": [] }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto8596-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "file": "https://sto8596-microsoftrouting.file.core.windows.net/", "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", - "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto8596-internetrouting.web.core.windows.net/", - "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", - "blob": "https://sto8596-internetrouting.blob.core.windows.net/", - "file": "https://sto8596-internetrouting.file.core.windows.net/" - } + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true - }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Storage" + "routingChoice": "MicrosoftRouting" }, "secondaryLocation": "northcentralus(stage)", "statusOfPrimary": "available", "statusOfSecondary": "available", - "supportsHttpsTrafficOnly": false, - "isSkuConversionBlocked": false, - "accountMigrationInProgress": false + "supportsHttpsTrafficOnly": false }, "sku": { "name": "Standard_GRS", @@ -99,9 +100,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_GetProperties", + "title": "StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json similarity index 80% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json rename to specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json index 4bf041fc25bf..ac678ed0de18 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json @@ -1,96 +1,97 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", + "$expand": "geoReplicationStats", "accountName": "sto8596", - "api-version": "2025-01-01", + "api-version": "2025-06-01", "monitor": "true", - "$expand": "geoReplicationStats" + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { - "keyCreationTime": { - "key1": "2021-03-18T04:42:22.4322836Z", - "key2": "2021-03-18T04:42:22.4322836Z" + "accountMigrationInProgress": false, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, "geoReplicationStats": { - "status": "Live", - "lastSyncTime": "2018-10-30T00:25:34Z", "canFailover": true, "canPlannedFailover": true, + "lastSyncTime": "2018-10-30T00:25:34Z", "postFailoverRedundancy": "Standard_LRS", - "postPlannedFailoverRedundancy": "Standard_GRS" + "postPlannedFailoverRedundancy": "Standard_GRS", + "status": "Live" }, "isHnsEnabled": true, - "creationTime": "2017-06-01T02:42:41.7633306Z", + "isSkuConversionBlocked": false, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, "networkAcls": { "bypass": "AzureServices", "defaultAction": "Allow", "ipRules": [], - "virtualNetworkRules": [], "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } - ] + ], + "virtualNetworkRules": [] }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto8596-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "file": "https://sto8596-microsoftrouting.file.core.windows.net/", "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", - "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto8596-internetrouting.web.core.windows.net/", - "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", - "blob": "https://sto8596-internetrouting.blob.core.windows.net/", - "file": "https://sto8596-internetrouting.file.core.windows.net/" - } + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true - }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Storage" + "routingChoice": "MicrosoftRouting" }, "secondaryLocation": "northcentralus(stage)", "statusOfPrimary": "available", "statusOfSecondary": "available", - "supportsHttpsTrafficOnly": false, - "isSkuConversionBlocked": false, - "accountMigrationInProgress": false + "supportsHttpsTrafficOnly": false }, "sku": { "name": "Standard_GRS", @@ -99,9 +100,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_GetProperties", + "title": "StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue" } diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountHierarchicalNamespaceMigration.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountHierarchicalNamespaceMigration.json new file mode 100644 index 000000000000..a71c5887c854 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountHierarchicalNamespaceMigration.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "accountName": "sto2434", + "api-version": "2025-06-01", + "requestType": "HnsOnValidationRequest", + "resourceGroupName": "res4228", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Location": "https://endpoint:port/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/{location}/asyncoperations/{operationid}?monitor=true&api-version=2022-09-01" + } + } + }, + "operationId": "StorageAccounts_HierarchicalNamespaceMigration", + "title": "StorageAccountHierarchicalNamespaceMigration" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountLeverageIPv6Ability.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountLeverageIPv6Ability.json new file mode 100644 index 000000000000..66c7ecadda11 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountLeverageIPv6Ability.json @@ -0,0 +1,87 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "dualStackEndpointPreference": { + "publishIpv6Endpoint": true + }, + "networkAcls": { + "defaultAction": "Deny", + "ipv6Rules": [ + { + "action": "Allow", + "value": "2001:0db8:85a3::/64" + } + ] + } + } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "kind": "Storage", + "location": "eastus2(stage)", + "properties": { + "creationTime": "2017-06-01T02:42:41.7633306Z", + "dualStackEndpointPreference": { + "publishIpv6Endpoint": true + }, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Deny", + "ipRules": [], + "ipv6Rules": [ + { + "action": "Allow", + "value": "2001:0db8:85a3::/64" + } + ], + "virtualNetworkRules": [] + }, + "primaryEndpoints": { + "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "ipv6Endpoints": { + "blob": "https://sto8596-ipv6.blob.core.windows.net/", + "dfs": "https://sto8596-ipv6.dfs.core.windows.net/", + "file": "https://sto8596-ipv6.file.core.windows.net/", + "queue": "https://sto8596-ipv6.queue.core.windows.net/", + "table": "https://sto8596-ipv6.table.core.windows.net/", + "web": "https://sto8596-ipv6.web.core.windows.net/" + }, + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "statusOfPrimary": "available" + }, + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdateEnableIpv6Features" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountList.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountList.json new file mode 100644 index 000000000000..7d310df5b421 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountList.json @@ -0,0 +1,315 @@ +{ + "parameters": { + "api-version": "2025-06-01", + "monitor": "true", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "sto1125", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res2627/providers/Microsoft.Storage/storageAccounts/sto1125", + "kind": "Storage", + "location": "eastus", + "properties": { + "creationTime": "2017-05-24T13:28:53.4540398Z", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "primaryEndpoints": { + "blob": "https://sto1125.blob.core.windows.net/", + "dfs": "https://sto1125.dfs.core.windows.net/", + "file": "https://sto1125.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto1125-internetrouting.blob.core.windows.net/", + "dfs": "https://sto1125-internetrouting.dfs.core.windows.net/", + "file": "https://sto1125-internetrouting.file.core.windows.net/", + "web": "https://sto1125-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto1125-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto1125-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto1125-microsoftrouting.file.core.windows.net/", + "queue": "https://sto1125-microsoftrouting.queue.core.windows.net/", + "table": "https://sto1125-microsoftrouting.table.core.windows.net/", + "web": "https://sto1125-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto1125.queue.core.windows.net/", + "table": "https://sto1125.table.core.windows.net/", + "web": "https://sto1125.web.core.windows.net/" + }, + "primaryLocation": "eastus", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + { + "name": "sto3699", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/testcmk3/providers/Microsoft.Storage/storageAccounts/sto3699", + "identity": { + "type": "SystemAssigned", + "principalId": "356d057d-cba5-44dd-8a30-b2e547bc416b", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + }, + "kind": "Storage", + "location": "eastus", + "properties": { + "creationTime": "2017-05-24T10:06:30.6093014Z", + "primaryEndpoints": { + "blob": "https://sto3699.blob.core.windows.net/", + "file": "https://sto3699.file.core.windows.net/", + "queue": "https://sto3699.queue.core.windows.net/", + "table": "https://sto3699.table.core.windows.net/" + }, + "primaryLocation": "eastus", + "provisioningState": "Succeeded", + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "identity": { + "type": "SystemAssigned", + "principalId": "911871cc-ffd1-4fc4-ac11-7a316433ea66", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + }, + "kind": "Storage", + "location": "eastus2(stage)", + "properties": { + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Keyvault", + "keyvaultproperties": { + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", + "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyversion": "", + "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" + }, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "geoReplicationStats": { + "canFailover": true, + "lastSyncTime": "2018-10-30T00:25:34Z", + "status": "Live" + }, + "isHnsEnabled": true, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "resourceAccessRules": [ + { + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + } + ], + "virtualNetworkRules": [] + }, + "primaryEndpoints": { + "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto8596-microsoftrouting.file.core.windows.net/", + "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + { + "name": "sto6637", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/testcmk3/providers/Microsoft.Storage/storageAccounts/sto6637", + "identity": { + "type": "SystemAssigned", + "principalId": "911871cc-ffd1-4fc4-ac11-7a316433ea66", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + }, + "kind": "Storage", + "location": "eastus", + "properties": { + "creationTime": "2017-05-24T10:09:39.5625175Z", + "primaryEndpoints": { + "blob": "https://sto6637.blob.core.windows.net/", + "file": "https://sto6637.file.core.windows.net/", + "queue": "https://sto6637.queue.core.windows.net/", + "table": "https://sto6637.table.core.windows.net/" + }, + "primaryLocation": "eastus", + "provisioningState": "Succeeded", + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + { + "name": "sto834", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res8186/providers/Microsoft.Storage/storageAccounts/sto834", + "kind": "Storage", + "location": "eastus", + "properties": { + "creationTime": "2017-05-24T13:28:20.8686541Z", + "primaryEndpoints": { + "blob": "https://sto834.blob.core.windows.net/", + "file": "https://sto834.file.core.windows.net/", + "queue": "https://sto834.queue.core.windows.net/", + "table": "https://sto834.table.core.windows.net/" + }, + "primaryLocation": "eastus", + "provisioningState": "Succeeded", + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + { + "name": "sto9174", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/testcmk3/providers/Microsoft.Storage/storageAccounts/sto9174", + "identity": { + "type": "SystemAssigned", + "principalId": "933e3ddf-1802-4a51-9469-18a33b576f88", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + }, + "kind": "Storage", + "location": "eastus", + "properties": { + "creationTime": "2017-05-24T09:46:19.6556989Z", + "primaryEndpoints": { + "blob": "https://sto9174.blob.core.windows.net/", + "file": "https://sto9174.file.core.windows.net/", + "queue": "https://sto9174.queue.core.windows.net/", + "table": "https://sto9174.table.core.windows.net/" + }, + "primaryLocation": "eastus", + "provisioningState": "Succeeded", + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + ] + } + } + }, + "operationId": "StorageAccounts_List", + "title": "StorageAccountList" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListAccountSAS.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListAccountSAS.json new file mode 100644 index 000000000000..191332f7433c --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListAccountSAS.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "accountName": "sto8588", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "keyToSign": "key1", + "signedExpiry": "2017-05-24T11:42:03.1567373Z", + "signedPermission": "r", + "signedProtocol": "https,http", + "signedResourceTypes": "s", + "signedServices": "b", + "signedStart": "2017-05-24T10:42:03.1567373Z" + }, + "resourceGroupName": "res7985", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "accountSasToken": "sv=2015-04-05&ss=b&srt=s&sp=r&st=2017-05-24T10%3A42%3A03Z&se=2017-05-24T11%3A42%3A03Z&spr=https,http&sig=Z0I%2BEpM%2BPPlTC8ApfUf%2BcffO2aahMgZim3U0iArqsS0%3D" + } + } + }, + "operationId": "StorageAccounts_ListAccountSAS", + "title": "StorageAccountListAccountSAS" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListBlobInventoryPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListBlobInventoryPolicy.json new file mode 100644 index 000000000000..822cf854321a --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListBlobInventoryPolicy.json @@ -0,0 +1,70 @@ +{ + "parameters": { + "accountName": "sto9699", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "DefaultInventoryPolicy", + "type": "Microsoft.Storage/storageAccounts/inventoryPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", + "properties": { + "lastModifiedTime": "2020-10-05T02:53:39.0932539Z", + "policy": { + "type": "Inventory", + "enabled": true, + "rules": [ + { + "name": "inventoryPolicyRule1", + "definition": { + "format": "Csv", + "filters": { + "blobTypes": [ + "blockBlob", + "appendBlob", + "pageBlob" + ], + "includeBlobVersions": true, + "includeSnapshots": true, + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] + }, + "objectType": "Blob", + "schedule": "Daily", + "schemaFields": [ + "Name", + "Creation-Time", + "Last-Modified", + "Content-Length", + "Content-MD5", + "BlobType", + "AccessTier", + "AccessTierChangeTime", + "Snapshot", + "VersionId", + "IsCurrentVersion", + "Metadata" + ] + }, + "destination": "container1", + "enabled": true + } + ] + } + } + } + ] + } + } + }, + "operationId": "BlobInventoryPolicies_List", + "title": "StorageAccountGetBlobInventoryPolicy" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListByResourceGroup.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListByResourceGroup.json new file mode 100644 index 000000000000..056218c1e2b9 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListByResourceGroup.json @@ -0,0 +1,80 @@ +{ + "parameters": { + "api-version": "2025-06-01", + "resourceGroupName": "res6117", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "sto4036", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6117/providers/Microsoft.Storage/storageAccounts/sto4036", + "kind": "Storage", + "location": "eastus", + "properties": { + "creationTime": "2017-05-24T13:24:47.818801Z", + "isHnsEnabled": true, + "primaryEndpoints": { + "blob": "https://sto4036.blob.core.windows.net/", + "dfs": "https://sto4036.dfs.core.windows.net/", + "file": "https://sto4036.file.core.windows.net/", + "queue": "https://sto4036.queue.core.windows.net/", + "table": "https://sto4036.table.core.windows.net/", + "web": "https://sto4036.web.core.windows.net/" + }, + "primaryLocation": "eastus", + "provisioningState": "Succeeded", + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + { + "name": "sto4452", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6117/providers/Microsoft.Storage/storageAccounts/sto4452", + "kind": "Storage", + "location": "eastus", + "properties": { + "creationTime": "2017-05-24T13:24:15.7068366Z", + "primaryEndpoints": { + "blob": "https://sto4452.blob.core.windows.net/", + "file": "https://sto4452.file.core.windows.net/", + "queue": "https://sto4452.queue.core.windows.net/", + "table": "https://sto4452.table.core.windows.net/" + }, + "primaryLocation": "eastus", + "provisioningState": "Succeeded", + "secondaryLocation": "centraluseuap", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + ] + } + } + }, + "operationId": "StorageAccounts_ListByResourceGroup", + "title": "StorageAccountListByResourceGroup" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListKeys.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListKeys.json new file mode 100644 index 000000000000..9a391d49482b --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListKeys.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "accountName": "sto2220", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res418", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "keys": [ + { + "keyName": "key1", + "permissions": "Full", + "value": "" + }, + { + "keyName": "key2", + "permissions": "Full", + "value": "" + } + ] + } + } + }, + "operationId": "StorageAccounts_ListKeys", + "title": "StorageAccountListKeys" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListLocationUsage.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListLocationUsage.json new file mode 100644 index 000000000000..bbb4d7f21653 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListLocationUsage.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2025-06-01", + "location": "eastus2(stage)", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": { + "localizedValue": "Storage Accounts", + "value": "StorageAccounts" + }, + "currentValue": 55, + "limit": 250, + "unit": "Count" + } + ] + } + } + }, + "operationId": "Usages_ListByLocation", + "title": "UsageList" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListObjectReplicationPolicies.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListObjectReplicationPolicies.json new file mode 100644 index 000000000000..84dfa7a90180 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListObjectReplicationPolicies.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "c6c23999-fd4e-433a-bcf9-1db69d27cd8a", + "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/objectReplicationPolicies/c6c23999-fd4e-433a-bcf9-1db69d27cd8a", + "properties": { + "destinationAccount": "destAccount1", + "sourceAccount": "sto2527" + } + }, + { + "name": "141d23dc-8958-4b48-b6e6-5a40bf1af116", + "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/objectReplicationPolicies/141d23dc-8958-4b48-b6e6-5a40bf1af116", + "properties": { + "destinationAccount": "destAccount2", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "sourceAccount": "sto2527" + } + } + ] + } + } + }, + "operationId": "ObjectReplicationPolicies_List", + "title": "StorageAccountListObjectReplicationPolicies" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListPrivateEndpointConnections.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListPrivateEndpointConnections.json new file mode 100644 index 000000000000..e3b89db57f32 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListPrivateEndpointConnections.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "{privateEndpointConnectionName}", + "type": "Microsoft.Storage/storageAccounts/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + }, + { + "name": "{privateEndpointConnectionName}", + "type": "Microsoft.Storage/storageAccounts/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest02" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + }, + "operationId": "PrivateEndpointConnections_List", + "title": "StorageAccountListPrivateEndpointConnections" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListPrivateLinkResources.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListPrivateLinkResources.json new file mode 100644 index 000000000000..d424531bfd51 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListPrivateLinkResources.json @@ -0,0 +1,103 @@ +{ + "parameters": { + "accountName": "sto2527", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "blob", + "type": "Microsoft.Storage/storageAccounts/privateLinkResources", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/blob", + "properties": { + "groupId": "blob", + "requiredMembers": [ + "blob" + ], + "requiredZoneNames": [ + "privatelink.blob.core.windows.net" + ] + } + }, + { + "name": "blob_secondary", + "type": "Microsoft.Storage/storageAccounts/privateLinkResources", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/blob_secondary", + "properties": { + "groupId": "blob_secondary", + "requiredMembers": [ + "blob_secondary" + ], + "requiredZoneNames": [ + "privatelink.blob.core.windows.net" + ] + } + }, + { + "name": "table", + "type": "Microsoft.Storage/storageAccounts/privateLinkResources", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/table", + "properties": { + "groupId": "table", + "requiredMembers": [ + "table" + ], + "requiredZoneNames": [ + "privatelink.table.core.windows.net" + ] + } + }, + { + "name": "table_secondary", + "type": "Microsoft.Storage/storageAccounts/privateLinkResources", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/table_secondary", + "properties": { + "groupId": "table_secondary", + "requiredMembers": [ + "table_secondary" + ], + "requiredZoneNames": [ + "privatelink.table.core.windows.net" + ] + } + }, + { + "name": "dfs", + "type": "Microsoft.Storage/storageAccounts/privateLinkResources", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/dfs", + "properties": { + "groupId": "dfs", + "requiredMembers": [ + "dfs" + ], + "requiredZoneNames": [ + "privatelink.dfs.core.windows.net" + ] + } + }, + { + "name": "dfs_secondary", + "type": "Microsoft.Storage/storageAccounts/privateLinkResources", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/dfs_secondary", + "properties": { + "groupId": "dfs_secondary", + "requiredMembers": [ + "dfs_secondary" + ], + "requiredZoneNames": [ + "privatelink.dfs.core.windows.net" + ] + } + } + ] + } + } + }, + "operationId": "PrivateLinkResources_ListByStorageAccount", + "title": "StorageAccountListPrivateLinkResources" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListServiceSAS.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListServiceSAS.json new file mode 100644 index 000000000000..f40388110412 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountListServiceSAS.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "accountName": "sto1299", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "canonicalizedResource": "/blob/sto1299/music", + "signedExpiry": "2017-05-24T11:32:48.8457197Z", + "signedPermission": "l", + "signedResource": "c" + }, + "resourceGroupName": "res7439", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "serviceSasToken": "sv=2015-04-05&sr=c&se=2017-05-24T11%3A32%3A48Z&sp=l&sig=PoF8yBUGixsjzwroLmw7vG3VbGz4KB2woZC2D4C2oio%3D" + } + } + }, + "operationId": "StorageAccounts_ListServiceSAS", + "title": "StorageAccountListServiceSAS" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPatchEncryptionScope.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPatchEncryptionScope.json new file mode 100644 index 000000000000..b7d1a2a60177 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPatchEncryptionScope.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "accountName": "accountname", + "api-version": "2025-06-01", + "encryptionScope": { + "properties": { + "keyVaultProperties": { + "keyUri": "https://testvault.vault.core.windows.net/keys/key1/863425f1358359c" + }, + "source": "Microsoft.KeyVault" + } + }, + "encryptionScopeName": "{encryption-scope-name}", + "monitor": "true", + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "{encryption-scope-name}", + "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", + "properties": { + "creationTime": "2018-10-16T02:42:41.7633306Z", + "keyVaultProperties": { + "currentVersionedKeyIdentifier": "https://testvault.vault.core.windows.net/keys/key1/863425f1358359c", + "keyUri": "https://testvault.vault.core.windows.net/keys/key1/863425f1358359c", + "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" + }, + "lastModifiedTime": "2018-10-17T06:23:14.4513306Z", + "source": "Microsoft.KeyVault", + "state": "Enabled" + } + } + } + }, + "operationId": "EncryptionScopes_Patch", + "title": "StorageAccountPatchEncryptionScope" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPostMigration.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPostMigration.json new file mode 100644 index 000000000000..2774916a0ece --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPostMigration.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "accountName": "accountname", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "targetSkuName": "Standard_ZRS" + } + }, + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2022-09-01" + } + } + }, + "operationId": "StorageAccounts_CustomerInitiatedMigration", + "title": "StorageAccountPostMigration" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPutEncryptionScope.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPutEncryptionScope.json new file mode 100644 index 000000000000..a47fd1b8dad5 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPutEncryptionScope.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "accountName": "accountname", + "api-version": "2025-06-01", + "encryptionScope": {}, + "encryptionScopeName": "{encryption-scope-name}", + "monitor": "true", + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "{encryption-scope-name}", + "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", + "properties": { + "creationTime": "2018-10-16T02:42:41.7633306Z", + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z", + "source": "Microsoft.Storage", + "state": "Enabled" + } + } + }, + "201": { + "body": { + "name": "{encryption-scope-name}", + "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", + "properties": { + "creationTime": "2018-10-16T02:42:41.7633306Z", + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z", + "source": "Microsoft.Storage", + "state": "Enabled" + } + } + } + }, + "operationId": "EncryptionScopes_Put", + "title": "StorageAccountPutEncryptionScope" +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json similarity index 77% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json rename to specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json index a6f79406ee5c..862a7c3d0e7a 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json @@ -1,45 +1,47 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "resource-group-name", "accountName": "accountname", - "encryptionScopeName": "{encryption-scope-name}", - "api-version": "2025-01-01", - "monitor": "true", + "api-version": "2025-06-01", "encryptionScope": { "properties": { "requireInfrastructureEncryption": true } - } + }, + "encryptionScopeName": "{encryption-scope-name}", + "monitor": "true", + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { - "201": { + "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "name": "{encryption-scope-name}", "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "properties": { + "creationTime": "2018-10-16T02:42:41.7633306Z", + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z", "requireInfrastructureEncryption": true, "source": "Microsoft.Storage", - "state": "Enabled", - "creationTime": "2018-10-16T02:42:41.7633306Z", - "lastModifiedTime": "2018-10-16T02:42:41.7633306Z" + "state": "Enabled" } } }, - "200": { + "201": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "name": "{encryption-scope-name}", "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "properties": { + "creationTime": "2018-10-16T02:42:41.7633306Z", + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z", "requireInfrastructureEncryption": true, "source": "Microsoft.Storage", - "state": "Enabled", - "creationTime": "2018-10-16T02:42:41.7633306Z", - "lastModifiedTime": "2018-10-16T02:42:41.7633306Z" + "state": "Enabled" } } } - } + }, + "operationId": "EncryptionScopes_Put", + "title": "StorageAccountPutEncryptionScopeWithInfrastructureEncryption" } diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPutPrivateEndpointConnection.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPutPrivateEndpointConnection.json new file mode 100644 index 000000000000..f35bd519e5bd --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountPutPrivateEndpointConnection.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "accountName": "sto9699", + "api-version": "2025-06-01", + "monitor": "true", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", + "properties": { + "properties": { + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "status": "Approved" + } + } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "{privateEndpointConnectionName}", + "type": "Microsoft.Storage/storageAccounts/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "PrivateEndpointConnections_Put", + "title": "StorageAccountPutPrivateEndpointConnection" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountRegenerateKerbKey.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountRegenerateKerbKey.json new file mode 100644 index 000000000000..ee3d68826b28 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountRegenerateKerbKey.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "accountName": "sto3539", + "api-version": "2025-06-01", + "monitor": "true", + "regenerateKey": { + "keyName": "kerb1" + }, + "resourceGroupName": "res4167", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "keys": [ + { + "keyName": "key1", + "permissions": "Full", + "value": "" + }, + { + "keyName": "key2", + "permissions": "Full", + "value": "" + }, + { + "keyName": "kerb1", + "permissions": "Full", + "value": "" + } + ] + } + } + }, + "operationId": "StorageAccounts_RegenerateKey", + "title": "StorageAccountRegenerateKerbKey" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountRegenerateKey.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountRegenerateKey.json new file mode 100644 index 000000000000..9197e89315d6 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountRegenerateKey.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "accountName": "sto3539", + "api-version": "2025-06-01", + "monitor": "true", + "regenerateKey": { + "keyName": "key2" + }, + "resourceGroupName": "res4167", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "keys": [ + { + "keyName": "key1", + "permissions": "Full", + "value": "" + }, + { + "keyName": "key2", + "permissions": "Full", + "value": "" + } + ] + } + } + }, + "operationId": "StorageAccounts_RegenerateKey", + "title": "StorageAccountRegenerateKey" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountRevokeUserDelegationKeys.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountRevokeUserDelegationKeys.json new file mode 100644 index 000000000000..6ae8cf75a66a --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountRevokeUserDelegationKeys.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "accountName": "sto3539", + "api-version": "2025-06-01", + "resourceGroupName": "res4167", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {} + }, + "operationId": "StorageAccounts_RevokeUserDelegationKeys", + "title": "StorageAccountRevokeUserDelegationKeys" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetBlobInventoryPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetBlobInventoryPolicy.json new file mode 100644 index 000000000000..9292bcea200a --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetBlobInventoryPolicy.json @@ -0,0 +1,162 @@ +{ + "parameters": { + "accountName": "sto9699", + "api-version": "2025-06-01", + "blobInventoryPolicyName": "default", + "monitor": "true", + "properties": { + "properties": { + "policy": { + "type": "Inventory", + "enabled": true, + "rules": [ + { + "name": "inventoryPolicyRule1", + "definition": { + "format": "Csv", + "filters": { + "blobTypes": [ + "blockBlob", + "appendBlob", + "pageBlob" + ], + "creationTime": { + "lastNDays": 1000 + }, + "includeBlobVersions": true, + "includeSnapshots": true, + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] + }, + "objectType": "Blob", + "schedule": "Daily", + "schemaFields": [ + "Name", + "Creation-Time", + "Last-Modified", + "Content-Length", + "Content-MD5", + "BlobType", + "AccessTier", + "AccessTierChangeTime", + "Snapshot", + "VersionId", + "IsCurrentVersion", + "Metadata" + ] + }, + "destination": "container1", + "enabled": true + }, + { + "name": "inventoryPolicyRule2", + "definition": { + "format": "Parquet", + "objectType": "Container", + "schedule": "Weekly", + "schemaFields": [ + "Name", + "Last-Modified", + "Metadata", + "LeaseStatus", + "LeaseState", + "LeaseDuration", + "PublicAccess", + "HasImmutabilityPolicy", + "HasLegalHold" + ] + }, + "destination": "container2", + "enabled": true + } + ] + } + } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "DefaultInventoryPolicy", + "type": "Microsoft.Storage/storageAccounts/inventoryPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", + "properties": { + "lastModifiedTime": "2020-10-05T02:53:39.0932539Z", + "policy": { + "type": "Inventory", + "enabled": true, + "rules": [ + { + "name": "inventoryPolicyRule1", + "definition": { + "format": "Csv", + "filters": { + "blobTypes": [ + "blockBlob", + "appendBlob", + "pageBlob" + ], + "creationTime": { + "lastNDays": 1000 + }, + "includeBlobVersions": true, + "includeSnapshots": true, + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] + }, + "objectType": "Blob", + "schedule": "Daily", + "schemaFields": [ + "Name", + "Creation-Time", + "Last-Modified", + "Content-Length", + "Content-MD5", + "BlobType", + "AccessTier", + "AccessTierChangeTime", + "Snapshot", + "VersionId", + "IsCurrentVersion", + "Metadata" + ] + }, + "destination": "container1", + "enabled": true + }, + { + "name": "inventoryPolicyRule2", + "definition": { + "format": "Parquet", + "objectType": "Container", + "schedule": "Weekly", + "schemaFields": [ + "Name", + "Last-Modified", + "Metadata", + "LeaseStatus", + "LeaseState", + "LeaseDuration", + "PublicAccess", + "HasImmutabilityPolicy", + "HasLegalHold" + ] + }, + "destination": "container2", + "enabled": true + } + ] + } + } + } + } + }, + "operationId": "BlobInventoryPolicies_CreateOrUpdate", + "title": "StorageAccountSetBlobInventoryPolicy" +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json similarity index 90% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json rename to specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json index 91c194a8a898..d8e36b3c1070 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json @@ -1,43 +1,39 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", + "api-version": "2025-06-01", "blobInventoryPolicyName": "default", - "api-version": "2025-01-01", "monitor": "true", "properties": { "properties": { "policy": { - "enabled": true, "type": "Inventory", + "enabled": true, "rules": [ { - "enabled": true, "name": "inventoryPolicyRule1", - "destination": "container1", "definition": { + "format": "Csv", "filters": { "blobTypes": [ "blockBlob", "appendBlob", "pageBlob" ], - "prefixMatch": [ - "inventoryprefix1", - "inventoryprefix2" - ], "excludePrefix": [ "excludeprefix1", "excludeprefix2" ], - "includeSnapshots": true, "includeBlobVersions": true, - "includeDeleted": true + "includeDeleted": true, + "includeSnapshots": true, + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] }, - "format": "Csv", - "schedule": "Daily", "objectType": "Blob", + "schedule": "Daily", "schemaFields": [ "Name", "Creation-Time", @@ -61,15 +57,16 @@ "DeletedTime", "RemainingRetentionDays" ] - } + }, + "destination": "container1", + "enabled": true }, { - "enabled": true, "name": "inventoryPolicyRule2", "definition": { "format": "Parquet", - "schedule": "Weekly", "objectType": "Container", + "schedule": "Weekly", "schemaFields": [ "Name", "Last-Modified", @@ -90,50 +87,51 @@ "RemainingRetentionDays" ] }, - "destination": "container2" + "destination": "container2", + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "name": "DefaultInventoryPolicy", "type": "Microsoft.Storage/storageAccounts/inventoryPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "properties": { "policy": { - "enabled": true, "type": "Inventory", + "enabled": true, "rules": [ { - "enabled": true, "name": "inventoryPolicyRule1", - "destination": "container1", "definition": { + "format": "Csv", "filters": { "blobTypes": [ "blockBlob", "appendBlob", "pageBlob" ], - "prefixMatch": [ - "inventoryprefix1", - "inventoryprefix2" - ], "excludePrefix": [ "excludeprefix1", "excludeprefix2" ], - "includeSnapshots": true, "includeBlobVersions": true, - "includeDeleted": true + "includeDeleted": true, + "includeSnapshots": true, + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] }, - "format": "Csv", - "schedule": "Daily", "objectType": "Blob", + "schedule": "Daily", "schemaFields": [ "Name", "Creation-Time", @@ -157,15 +155,16 @@ "DeletedTime", "RemainingRetentionDays" ] - } + }, + "destination": "container1", + "enabled": true }, { - "enabled": true, "name": "inventoryPolicyRule2", "definition": { "format": "Parquet", - "schedule": "Weekly", "objectType": "Container", + "schedule": "Weekly", "schemaFields": [ "Name", "Last-Modified", @@ -186,12 +185,15 @@ "RemainingRetentionDays" ] }, - "destination": "container2" + "destination": "container2", + "enabled": true } ] } } } } - } + }, + "operationId": "BlobInventoryPolicies_CreateOrUpdate", + "title": "StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json similarity index 90% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json rename to specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json index 0251e9ed4f09..1ac780df67c5 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json @@ -1,43 +1,39 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", + "api-version": "2025-06-01", "blobInventoryPolicyName": "default", - "api-version": "2025-01-01", "monitor": "true", "properties": { "properties": { "policy": { - "enabled": true, "type": "Inventory", + "enabled": true, "rules": [ { - "enabled": true, "name": "inventoryPolicyRule1", - "destination": "container1", "definition": { + "format": "Csv", "filters": { "blobTypes": [ "blockBlob", "appendBlob", "pageBlob" ], - "prefixMatch": [ - "inventoryprefix1", - "inventoryprefix2" - ], "excludePrefix": [ "excludeprefix1", "excludeprefix2" ], - "includeSnapshots": true, "includeBlobVersions": true, - "includeDeleted": true + "includeDeleted": true, + "includeSnapshots": true, + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] }, - "format": "Csv", - "schedule": "Daily", "objectType": "Blob", + "schedule": "Daily", "schemaFields": [ "Name", "Creation-Time", @@ -60,15 +56,16 @@ "Deleted", "RemainingRetentionDays" ] - } + }, + "destination": "container1", + "enabled": true }, { - "enabled": true, "name": "inventoryPolicyRule2", "definition": { "format": "Parquet", - "schedule": "Weekly", "objectType": "Container", + "schedule": "Weekly", "schemaFields": [ "Name", "Last-Modified", @@ -89,50 +86,51 @@ "RemainingRetentionDays" ] }, - "destination": "container2" + "destination": "container2", + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "name": "DefaultInventoryPolicy", "type": "Microsoft.Storage/storageAccounts/inventoryPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "properties": { "policy": { - "enabled": true, "type": "Inventory", + "enabled": true, "rules": [ { - "enabled": true, "name": "inventoryPolicyRule1", - "destination": "container1", "definition": { + "format": "Csv", "filters": { "blobTypes": [ "blockBlob", "appendBlob", "pageBlob" ], - "prefixMatch": [ - "inventoryprefix1", - "inventoryprefix2" - ], "excludePrefix": [ "excludeprefix1", "excludeprefix2" ], - "includeSnapshots": true, "includeBlobVersions": true, - "includeDeleted": true + "includeDeleted": true, + "includeSnapshots": true, + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] }, - "format": "Csv", - "schedule": "Daily", "objectType": "Blob", + "schedule": "Daily", "schemaFields": [ "Name", "Creation-Time", @@ -155,15 +153,16 @@ "Deleted", "RemainingRetentionDays" ] - } + }, + "destination": "container1", + "enabled": true }, { - "enabled": true, "name": "inventoryPolicyRule2", "definition": { "format": "Parquet", - "schedule": "Weekly", "objectType": "Container", + "schedule": "Weekly", "schemaFields": [ "Name", "Last-Modified", @@ -184,12 +183,15 @@ "RemainingRetentionDays" ] }, - "destination": "container2" + "destination": "container2", + "enabled": true } ] } } } } - } + }, + "operationId": "BlobInventoryPolicies_CreateOrUpdate", + "title": "StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount" } diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicy.json new file mode 100644 index 000000000000..401072cdb135 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicy.json @@ -0,0 +1,182 @@ +{ + "parameters": { + "accountName": "sto9699", + "api-version": "2025-06-01", + "managementPolicyName": "default", + "monitor": "true", + "properties": { + "properties": { + "policy": { + "rules": [ + { + "name": "olcmtest1", + "type": "Lifecycle", + "definition": { + "actions": { + "baseBlob": { + "delete": { + "daysAfterModificationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterModificationGreaterThan": 90 + }, + "tierToCool": { + "daysAfterModificationGreaterThan": 30 + } + }, + "snapshot": { + "delete": { + "daysAfterCreationGreaterThan": 30 + } + } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] + } + }, + "enabled": true + }, + { + "name": "olcmtest2", + "type": "Lifecycle", + "definition": { + "actions": { + "baseBlob": { + "delete": { + "daysAfterModificationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterModificationGreaterThan": 90 + }, + "tierToCool": { + "daysAfterModificationGreaterThan": 30 + } + } + }, + "filters": { + "blobIndexMatch": [ + { + "name": "tag1", + "op": "==", + "value": "val1" + }, + { + "name": "tag2", + "op": "==", + "value": "val2" + } + ], + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer2" + ] + } + }, + "enabled": true + } + ] + } + } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "DefaultManagementPolicy", + "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", + "properties": { + "lastModifiedTime": "2018-06-08T02:53:39.0932539Z", + "policy": { + "rules": [ + { + "name": "olcmtest1", + "type": "Lifecycle", + "definition": { + "actions": { + "baseBlob": { + "delete": { + "daysAfterModificationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterModificationGreaterThan": 90 + }, + "tierToCool": { + "daysAfterModificationGreaterThan": 30 + } + }, + "snapshot": { + "delete": { + "daysAfterCreationGreaterThan": 30 + } + } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] + } + }, + "enabled": true + }, + { + "name": "olcmtest2", + "type": "Lifecycle", + "definition": { + "actions": { + "baseBlob": { + "delete": { + "daysAfterModificationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterModificationGreaterThan": 90 + }, + "tierToCool": { + "daysAfterModificationGreaterThan": 30 + } + } + }, + "filters": { + "blobIndexMatch": [ + { + "name": "tag1", + "op": "==", + "value": "val1" + }, + { + "name": "tag2", + "op": "==", + "value": "val2" + } + ], + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer2" + ] + } + }, + "enabled": true + } + ] + } + } + } + } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicies" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyColdTierActions.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyColdTierActions.json new file mode 100644 index 000000000000..6ce0684e993b --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyColdTierActions.json @@ -0,0 +1,130 @@ +{ + "parameters": { + "accountName": "sto9699", + "api-version": "2025-06-01", + "managementPolicyName": "default", + "monitor": "true", + "properties": { + "properties": { + "policy": { + "rules": [ + { + "name": "olcmtest1", + "type": "Lifecycle", + "definition": { + "actions": { + "baseBlob": { + "delete": { + "daysAfterModificationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterModificationGreaterThan": 90 + }, + "tierToCold": { + "daysAfterModificationGreaterThan": 30 + }, + "tierToCool": { + "daysAfterModificationGreaterThan": 30 + } + }, + "snapshot": { + "delete": { + "daysAfterCreationGreaterThan": 30 + }, + "tierToCold": { + "daysAfterCreationGreaterThan": 30 + } + }, + "version": { + "delete": { + "daysAfterCreationGreaterThan": 30 + }, + "tierToCold": { + "daysAfterCreationGreaterThan": 30 + } + } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] + } + }, + "enabled": true + } + ] + } + } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "DefaultManagementPolicy", + "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", + "properties": { + "lastModifiedTime": "2021-06-08T02:53:39.0932539Z", + "policy": { + "rules": [ + { + "name": "olcmtest1", + "type": "Lifecycle", + "definition": { + "actions": { + "baseBlob": { + "delete": { + "daysAfterModificationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterModificationGreaterThan": 90 + }, + "tierToCold": { + "daysAfterModificationGreaterThan": 30 + }, + "tierToCool": { + "daysAfterModificationGreaterThan": 30 + } + }, + "snapshot": { + "delete": { + "daysAfterCreationGreaterThan": 30 + }, + "tierToCold": { + "daysAfterCreationGreaterThan": 30 + } + }, + "version": { + "delete": { + "daysAfterCreationGreaterThan": 30 + }, + "tierToCold": { + "daysAfterCreationGreaterThan": 30 + } + } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] + } + }, + "enabled": true + } + ] + } + } + } + } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicyColdTierActions" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyForBlockAndAppendBlobs.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyForBlockAndAppendBlobs.json new file mode 100644 index 000000000000..fa402aef6d4e --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyForBlockAndAppendBlobs.json @@ -0,0 +1,102 @@ +{ + "parameters": { + "accountName": "sto9699", + "api-version": "2025-06-01", + "managementPolicyName": "default", + "monitor": "true", + "properties": { + "properties": { + "policy": { + "rules": [ + { + "name": "olcmtest1", + "type": "Lifecycle", + "definition": { + "actions": { + "baseBlob": { + "delete": { + "daysAfterModificationGreaterThan": 90 + } + }, + "snapshot": { + "delete": { + "daysAfterCreationGreaterThan": 90 + } + }, + "version": { + "delete": { + "daysAfterCreationGreaterThan": 90 + } + } + }, + "filters": { + "blobTypes": [ + "blockBlob", + "appendBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] + } + }, + "enabled": true + } + ] + } + } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "DefaultManagementPolicy", + "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", + "properties": { + "lastModifiedTime": "2018-06-08T02:53:39.0932539Z", + "policy": { + "rules": [ + { + "name": "olcmtest1", + "type": "Lifecycle", + "definition": { + "actions": { + "baseBlob": { + "delete": { + "daysAfterModificationGreaterThan": 90 + } + }, + "snapshot": { + "delete": { + "daysAfterCreationGreaterThan": 90 + } + }, + "version": { + "delete": { + "daysAfterCreationGreaterThan": 90 + } + } + }, + "filters": { + "blobTypes": [ + "blockBlob", + "appendBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] + } + }, + "enabled": true + } + ] + } + } + } + } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicyForBlockAndAppendBlobs" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyHotTierActions.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyHotTierActions.json new file mode 100644 index 000000000000..a8e21e1af25b --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyHotTierActions.json @@ -0,0 +1,100 @@ +{ + "parameters": { + "accountName": "sto9699", + "api-version": "2025-06-01", + "managementPolicyName": "default", + "monitor": "true", + "properties": { + "properties": { + "policy": { + "rules": [ + { + "name": "olcmtest1", + "type": "Lifecycle", + "definition": { + "actions": { + "baseBlob": { + "tierToHot": { + "daysAfterModificationGreaterThan": 30 + } + }, + "snapshot": { + "tierToHot": { + "daysAfterCreationGreaterThan": 30 + } + }, + "version": { + "tierToHot": { + "daysAfterCreationGreaterThan": 30 + } + } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] + } + }, + "enabled": true + } + ] + } + } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "DefaultManagementPolicy", + "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", + "properties": { + "lastModifiedTime": "2021-06-08T02:53:39.0932539Z", + "policy": { + "rules": [ + { + "name": "olcmtest1", + "type": "Lifecycle", + "definition": { + "actions": { + "baseBlob": { + "tierToHot": { + "daysAfterModificationGreaterThan": 30 + } + }, + "snapshot": { + "tierToHot": { + "daysAfterCreationGreaterThan": 30 + } + }, + "version": { + "tierToHot": { + "daysAfterCreationGreaterThan": 30 + } + } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] + } + }, + "enabled": true + } + ] + } + } + } + } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicyHotTierActions" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyWithSnapshotAndVersion.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyWithSnapshotAndVersion.json new file mode 100644 index 000000000000..7688077535ca --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicyWithSnapshotAndVersion.json @@ -0,0 +1,136 @@ +{ + "parameters": { + "accountName": "sto9699", + "api-version": "2025-06-01", + "managementPolicyName": "default", + "monitor": "true", + "properties": { + "properties": { + "policy": { + "rules": [ + { + "name": "olcmtest1", + "type": "Lifecycle", + "definition": { + "actions": { + "baseBlob": { + "delete": { + "daysAfterModificationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterModificationGreaterThan": 90 + }, + "tierToCool": { + "daysAfterModificationGreaterThan": 30 + } + }, + "snapshot": { + "delete": { + "daysAfterCreationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterCreationGreaterThan": 90 + }, + "tierToCool": { + "daysAfterCreationGreaterThan": 30 + } + }, + "version": { + "delete": { + "daysAfterCreationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterCreationGreaterThan": 90 + }, + "tierToCool": { + "daysAfterCreationGreaterThan": 30 + } + } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] + } + }, + "enabled": true + } + ] + } + } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "DefaultManagementPolicy", + "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", + "properties": { + "lastModifiedTime": "2018-06-08T02:53:39.0932539Z", + "policy": { + "rules": [ + { + "name": "olcmtest1", + "type": "Lifecycle", + "definition": { + "actions": { + "baseBlob": { + "delete": { + "daysAfterModificationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterModificationGreaterThan": 90 + }, + "tierToCool": { + "daysAfterModificationGreaterThan": 30 + } + }, + "snapshot": { + "delete": { + "daysAfterCreationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterCreationGreaterThan": 90 + }, + "tierToCool": { + "daysAfterCreationGreaterThan": 30 + } + }, + "version": { + "delete": { + "daysAfterCreationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterCreationGreaterThan": 90 + }, + "tierToCool": { + "daysAfterCreationGreaterThan": 30 + } + } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] + } + }, + "enabled": true + } + ] + } + } + } + } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicyWithSnapshotAndVersion" +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json similarity index 85% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json rename to specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json index 02e9a9342d61..2f134b239bdf 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json @@ -1,90 +1,92 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", + "api-version": "2025-06-01", "managementPolicyName": "default", - "api-version": "2025-01-01", "monitor": "true", "properties": { "properties": { "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterCreationGreaterThan": 30 + "delete": { + "daysAfterCreationGreaterThan": 1000 }, "tierToArchive": { "daysAfterCreationGreaterThan": 90 }, - "delete": { - "daysAfterCreationGreaterThan": 1000 + "tierToCool": { + "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "name": "DefaultManagementPolicy", "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "properties": { + "lastModifiedTime": "2021-06-08T02:53:39.0932539Z", "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterCreationGreaterThan": 30 + "delete": { + "daysAfterCreationGreaterThan": 1000 }, "tierToArchive": { "daysAfterCreationGreaterThan": 90 }, - "delete": { - "daysAfterCreationGreaterThan": 1000 + "tierToCool": { + "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true } ] - }, - "lastModifiedTime": "2021-06-08T02:53:39.0932539Z" + } } } } - } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json similarity index 82% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json rename to specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json index 943e49e5e50c..8d3fe1505d23 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json @@ -1,102 +1,104 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", + "api-version": "2025-06-01", "managementPolicyName": "default", - "api-version": "2025-01-01", "monitor": "true", "properties": { "properties": { "policy": { "rules": [ { - "enabled": true, "name": "olcmtest", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterLastAccessTimeGreaterThan": 30 + "delete": { + "daysAfterLastAccessTimeGreaterThan": 1000 }, + "enableAutoTierToHotFromCool": true, "tierToArchive": { "daysAfterLastAccessTimeGreaterThan": 90 }, - "delete": { - "daysAfterLastAccessTimeGreaterThan": 1000 - }, - "enableAutoTierToHotFromCool": true + "tierToCool": { + "daysAfterLastAccessTimeGreaterThan": 30 + } }, "snapshot": { "delete": { "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] } - } + }, + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "name": "DefaultManagementPolicy", "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "properties": { + "lastModifiedTime": "2018-06-08T02:53:39.0932539Z", "policy": { "rules": [ { - "enabled": true, "name": "olcmtest", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterLastAccessTimeGreaterThan": 30 + "delete": { + "daysAfterLastAccessTimeGreaterThan": 1000 }, + "enableAutoTierToHotFromCool": true, "tierToArchive": { "daysAfterLastAccessTimeGreaterThan": 90 }, - "delete": { - "daysAfterLastAccessTimeGreaterThan": 1000 - }, - "enableAutoTierToHotFromCool": true + "tierToCool": { + "daysAfterLastAccessTimeGreaterThan": 30 + } }, "snapshot": { "delete": { "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] } - } + }, + "enabled": true } ] - }, - "lastModifiedTime": "2018-06-08T02:53:39.0932539Z" + } } } } - } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json similarity index 84% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json rename to specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json index a12452587acd..6960739f4406 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json @@ -1,39 +1,28 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", + "api-version": "2025-06-01", "managementPolicyName": "default", - "api-version": "2025-01-01", "monitor": "true", "properties": { "properties": { "policy": { "rules": [ { - "enabled": true, "name": "olcmtest", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterModificationGreaterThan": 30 + "delete": { + "daysAfterModificationGreaterThan": 1000 }, "tierToArchive": { - "daysAfterModificationGreaterThan": 90, - "daysAfterLastTierChangeGreaterThan": 120 + "daysAfterLastTierChangeGreaterThan": 120, + "daysAfterModificationGreaterThan": 90 }, - "delete": { - "daysAfterModificationGreaterThan": 1000 + "tierToCool": { + "daysAfterModificationGreaterThan": 30 } }, "snapshot": { @@ -48,47 +37,50 @@ "daysAfterLastTierChangeGreaterThan": 90 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] } - } + }, + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "name": "DefaultManagementPolicy", "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "properties": { + "lastModifiedTime": "2018-06-08T02:53:39.0932539Z", "policy": { "rules": [ { - "enabled": true, "name": "olcmtest", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterModificationGreaterThan": 30 + "delete": { + "daysAfterModificationGreaterThan": 1000 }, "tierToArchive": { - "daysAfterModificationGreaterThan": 90, - "daysAfterLastTierChangeGreaterThan": 120 + "daysAfterLastTierChangeGreaterThan": 120, + "daysAfterModificationGreaterThan": 90 }, - "delete": { - "daysAfterModificationGreaterThan": 1000 + "tierToCool": { + "daysAfterModificationGreaterThan": 30 } }, "snapshot": { @@ -103,14 +95,24 @@ "daysAfterLastTierChangeGreaterThan": 90 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] } - } + }, + "enabled": true } ] - }, - "lastModifiedTime": "2018-06-08T02:53:39.0932539Z" + } } } } - } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicy_LastTierChangeTimeActions" } diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdate.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdate.json new file mode 100644 index 000000000000..a5881e7e529c --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdate.json @@ -0,0 +1,162 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "enableExtendedGroups": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isLocalUserEnabled": true, + "isSftpEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "networkAcls": { + "defaultAction": "Allow", + "resourceAccessRules": [ + { + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + } + ] + }, + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "geoPriorityReplicationStatus": { + "isBlobEnabled": true + } + } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "kind": "Storage", + "location": "eastus2(stage)", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "enableExtendedGroups": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "isLocalUserEnabled": true, + "isSftpEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "resourceAccessRules": [ + { + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + } + ], + "virtualNetworkRules": [] + }, + "primaryEndpoints": { + "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto8596-microsoftrouting.file.core.windows.net/", + "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false, + "geoPriorityReplicationStatus": { + "isBlobEnabled": true + } + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdate" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateAllowedCopyScopeToAAD.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateAllowedCopyScopeToAAD.json new file mode 100644 index 000000000000..49f237e048a6 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateAllowedCopyScopeToAAD.json @@ -0,0 +1,151 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "allowedCopyScope": "AAD", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "networkAcls": { + "defaultAction": "Allow", + "resourceAccessRules": [ + { + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + } + ] + }, + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } + } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "kind": "Storage", + "location": "eastus2(stage)", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "allowedCopyScope": "AAD", + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "resourceAccessRules": [ + { + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + } + ], + "virtualNetworkRules": [] + }, + "primaryEndpoints": { + "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto8596-microsoftrouting.file.core.windows.net/", + "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdateAllowedCopyScopeToAAD" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateDisablePublicNetworkAccess.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateDisablePublicNetworkAccess.json new file mode 100644 index 000000000000..efaec700dd9e --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateDisablePublicNetworkAccess.json @@ -0,0 +1,151 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "networkAcls": { + "defaultAction": "Allow", + "resourceAccessRules": [ + { + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + } + ] + }, + "publicNetworkAccess": "Disabled", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } + } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "kind": "Storage", + "location": "eastus2(stage)", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "resourceAccessRules": [ + { + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + } + ], + "virtualNetworkRules": [] + }, + "primaryEndpoints": { + "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto8596-microsoftrouting.file.core.windows.net/", + "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdateDisablePublicNetworkAccess" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateObjectReplicationPolicyOnDestination.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateObjectReplicationPolicyOnDestination.json new file mode 100644 index 000000000000..db1b47306504 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateObjectReplicationPolicyOnDestination.json @@ -0,0 +1,79 @@ +{ + "parameters": { + "accountName": "dst112", + "api-version": "2025-06-01", + "monitor": "true", + "objectReplicationPolicyId": "2a20bb73-5717-4635-985a-5d4cf777438f", + "properties": { + "properties": { + "destinationAccount": "dst112", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "rules": [ + { + "destinationContainer": "dcont139", + "filters": { + "prefixMatch": [ + "blobA", + "blobB" + ] + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "scont139" + }, + { + "destinationContainer": "dcont179", + "sourceContainer": "scont179" + } + ], + "sourceAccount": "src1122" + } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "2a20bb73-5717-4635-985a-5d4cf777438f", + "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/dst112/objectReplicationPolicies/2a20bb73-5717-4635-985a-5d4cf777438f", + "properties": { + "destinationAccount": "dst112", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "policyId": "2a20bb73-5717-4635-985a-5d4cf777438f", + "rules": [ + { + "destinationContainer": "destContainer1", + "filters": { + "prefixMatch": [ + "blobA", + "blobB" + ] + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "sourceContainer1" + }, + { + "destinationContainer": "dcont179", + "ruleId": "cfbb4bc2-8b60-429f-b05a-d1e0942b33b2", + "sourceContainer": "scont179" + } + ], + "sourceAccount": "src1122" + } + } + } + }, + "operationId": "ObjectReplicationPolicies_CreateOrUpdate", + "title": "StorageAccountUpdateObjectReplicationPolicyOnDestination" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateObjectReplicationPolicyOnSource.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateObjectReplicationPolicyOnSource.json new file mode 100644 index 000000000000..850691c56d26 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateObjectReplicationPolicyOnSource.json @@ -0,0 +1,81 @@ +{ + "parameters": { + "accountName": "src1122", + "api-version": "2025-06-01", + "monitor": "true", + "objectReplicationPolicyId": "2a20bb73-5717-4635-985a-5d4cf777438f", + "properties": { + "properties": { + "destinationAccount": "dst112", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "rules": [ + { + "destinationContainer": "dcont139", + "filters": { + "prefixMatch": [ + "blobA", + "blobB" + ] + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "scont139" + }, + { + "destinationContainer": "dcont179", + "ruleId": "cfbb4bc2-8b60-429f-b05a-d1e0942b33b2", + "sourceContainer": "scont179" + } + ], + "sourceAccount": "src1122" + } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "2a20bb73-5717-4635-985a-5d4cf777438f", + "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/src1122/objectReplicationPolicies/2a20bb73-5717-4635-985a-5d4cf777438f", + "properties": { + "destinationAccount": "dst112", + "enabledTime": "2019-06-08T03:01:55.7168089Z", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "policyId": "2a20bb73-5717-4635-985a-5d4cf777438f", + "rules": [ + { + "destinationContainer": "destContainer1", + "filters": { + "prefixMatch": [ + "blobA", + "blobB" + ] + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "sourceContainer1" + }, + { + "destinationContainer": "dcont179", + "ruleId": "cfbb4bc2-8b60-429f-b05a-d1e0942b33b2", + "sourceContainer": "scont179" + } + ], + "sourceAccount": "src1122" + } + } + } + }, + "operationId": "ObjectReplicationPolicies_CreateOrUpdate", + "title": "StorageAccountUpdateObjectReplicationPolicyOnSource" +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json similarity index 81% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json rename to specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json index 2c932bb95594..cf7403f21c34 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json @@ -1,9 +1,7 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", - "api-version": "2025-01-01", + "api-version": "2025-06-01", "parameters": { "identity": { "type": "UserAssigned", @@ -11,106 +9,110 @@ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": {} } }, - "sku": { - "name": "Standard_LRS" - }, "kind": "Storage", "properties": { "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } + "identity": { + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "" }, - "keySource": "Microsoft.Keyvault", - "identity": { - "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } } } + }, + "sku": { + "name": "Standard_LRS" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", "identity": { + "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": { - "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7", - "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5" + "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5", + "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7" } - }, - "type": "UserAssigned" - }, - "sku": { - "name": "Standard_LRS", - "tier": "Standard" + } }, "kind": "StorageV2", - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "name": "sto4445", - "type": "Microsoft.Storage/storageAccounts", "location": "eastus", - "tags": {}, "properties": { - "privateEndpointConnections": [], - "networkAcls": { - "bypass": "AzureServices", - "virtualNetworkRules": [], - "ipRules": [], - "defaultAction": "Allow" - }, - "supportsHttpsTrafficOnly": true, + "accessTier": "Hot", + "creationTime": "2020-12-15T00:43:14.0839093Z", "encryption": { "identity": { "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "", - "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" }, "services": { - "file": { - "keyType": "Account", + "blob": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" }, - "blob": { - "keyType": "Account", + "file": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" } - }, - "keySource": "Microsoft.Keyvault" + } + }, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "virtualNetworkRules": [] }, - "accessTier": "Hot", - "provisioningState": "Succeeded", - "creationTime": "2020-12-15T00:43:14.0839093Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/" + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus", - "statusOfPrimary": "available" - } + "privateEndpointConnections": [], + "provisioningState": "Succeeded", + "statusOfPrimary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "tags": {} } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json similarity index 79% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json rename to specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json index db6501f9476a..0a450ac389dc 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json @@ -1,9 +1,7 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res131918", "accountName": "sto131918", - "api-version": "2025-01-01", + "api-version": "2025-06-01", "parameters": { "identity": { "type": "UserAssigned", @@ -11,108 +9,112 @@ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": {} } }, - "sku": { - "name": "Standard_LRS" - }, "kind": "Storage", "properties": { "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } + "identity": { + "federatedIdentityClientId": "3109d1c4-a5de-4d84-8832-feabb916a4b6", + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "" }, - "keySource": "Microsoft.Keyvault", - "identity": { - "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}", - "federatedIdentityClientId": "3109d1c4-a5de-4d84-8832-feabb916a4b6" + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } } } + }, + "sku": { + "name": "Standard_LRS" } - } + }, + "resourceGroupName": "res131918", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", "identity": { + "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": { - "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7", - "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5" + "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5", + "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7" } - }, - "type": "UserAssigned" - }, - "sku": { - "name": "Standard_LRS", - "tier": "Standard" + } }, "kind": "StorageV2", - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "name": "sto4445", - "type": "Microsoft.Storage/storageAccounts", "location": "eastus", - "tags": {}, "properties": { - "privateEndpointConnections": [], - "networkAcls": { - "bypass": "AzureServices", - "virtualNetworkRules": [], - "ipRules": [], - "defaultAction": "Allow" - }, - "supportsHttpsTrafficOnly": true, + "accessTier": "Hot", + "creationTime": "2020-12-15T00:43:14.0839093Z", "encryption": { "identity": { - "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}", - "federatedIdentityClientId": "3109d1c4-a5de-4d84-8832-feabb916a4b6" + "federatedIdentityClientId": "3109d1c4-a5de-4d84-8832-feabb916a4b6", + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "", - "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" }, "services": { - "file": { - "keyType": "Account", + "blob": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" }, - "blob": { - "keyType": "Account", + "file": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" } - }, - "keySource": "Microsoft.Keyvault" + } + }, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "virtualNetworkRules": [] }, - "accessTier": "Hot", - "provisioningState": "Succeeded", - "creationTime": "2020-12-15T00:43:14.0839093Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/" + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus", - "statusOfPrimary": "available" - } + "privateEndpointConnections": [], + "provisioningState": "Succeeded", + "statusOfPrimary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "tags": {} } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId" } diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateWithImmutabilityPolicy.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateWithImmutabilityPolicy.json new file mode 100644 index 000000000000..cae9d255e282 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdateWithImmutabilityPolicy.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "immutableStorageWithVersioning": { + "enabled": true, + "immutabilityPolicy": { + "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 15, + "state": "Locked" + } + } + } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "kind": "Storage", + "location": "eastus2(stage)", + "properties": { + "immutableStorageWithVersioning": { + "enabled": true, + "immutabilityPolicy": { + "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 15, + "state": "Locked" + } + } + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + } + } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdateWithImmutabilityPolicy" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdate_placement.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdate_placement.json new file mode 100644 index 000000000000..4e33e234c6f0 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdate_placement.json @@ -0,0 +1,165 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "placement": { + "zonePlacementPolicy": "Any" + }, + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "enableExtendedGroups": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isLocalUserEnabled": true, + "isSftpEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "networkAcls": { + "defaultAction": "Allow", + "resourceAccessRules": [ + { + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + } + ] + }, + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } + } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "kind": "Storage", + "location": "eastus2(stage)", + "placement": { + "zonePlacementPolicy": "Any" + }, + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "enableExtendedGroups": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "isLocalUserEnabled": true, + "isSftpEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "resourceAccessRules": [ + { + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + } + ], + "virtualNetworkRules": [] + }, + "primaryEndpoints": { + "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto8596-microsoftrouting.file.core.windows.net/", + "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + }, + "zones": [ + "1" + ] + } + } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdate_placement" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdate_zones.json b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdate_zones.json new file mode 100644 index 000000000000..a2f826cfb117 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/StorageAccountUpdate_zones.json @@ -0,0 +1,162 @@ +{ + "parameters": { + "accountName": "sto8596", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "enableExtendedGroups": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isLocalUserEnabled": true, + "isSftpEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "networkAcls": { + "defaultAction": "Allow", + "resourceAccessRules": [ + { + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + } + ] + }, + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } + }, + "zones": [ + "1" + ] + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "kind": "Storage", + "location": "eastus2(stage)", + "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "enableExtendedGroups": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, + "isLocalUserEnabled": true, + "isSftpEnabled": true, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "resourceAccessRules": [ + { + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + } + ], + "virtualNetworkRules": [] + }, + "primaryEndpoints": { + "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, + "microsoftEndpoints": { + "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", + "file": "https://sto8596-microsoftrouting.file.core.windows.net/", + "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" + }, + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + }, + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + }, + "zones": [ + "1" + ] + } + } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdate_zones" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/TableOperationDelete.json b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationDelete.json new file mode 100644 index 000000000000..5b990def5c90 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationDelete.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableName": "table6185" + }, + "responses": { + "204": {} + }, + "operationId": "Table_Delete", + "title": "TableOperationDelete" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/TableOperationGet.json b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationGet.json new file mode 100644 index 000000000000..3cbea1af9dc2 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationGet.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableName": "table6185" + }, + "responses": { + "200": { + "body": { + "name": "table6185", + "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", + "properties": { + "tableName": "table6185" + } + } + } + }, + "operationId": "Table_Get", + "title": "TableOperationGet" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/TableOperationList.json b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationList.json new file mode 100644 index 000000000000..3778d0a3be11 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationList.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://sto1590endpoint/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables?api-version=2022-09-01&NextTableName=1!40!bXl0YWJsZXNoYzU0OAEwMWQ2MTI5ZTJmYjVmODFh", + "value": [ + { + "name": "table6185", + "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", + "properties": { + "tableName": "table6185" + } + }, + { + "name": "table6186", + "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6186", + "properties": { + "tableName": "table6186" + } + } + ] + } + } + }, + "operationId": "Table_List", + "title": "TableOperationList" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/TableOperationPatch.json b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationPatch.json new file mode 100644 index 000000000000..83c9276ff3f4 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationPatch.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableName": "table6185" + }, + "responses": { + "200": { + "body": { + "name": "table6185", + "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", + "properties": { + "tableName": "table6185" + } + } + } + }, + "operationId": "Table_Update", + "title": "TableOperationPatch" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/TableOperationPut.json b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationPut.json new file mode 100644 index 000000000000..bb16aa4c0665 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationPut.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableName": "table6185" + }, + "responses": { + "200": { + "body": { + "name": "table6185", + "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", + "properties": { + "tableName": "table6185" + } + } + } + }, + "operationId": "Table_Create", + "title": "TableOperationPut" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/TableOperationPutOrPatchAcls.json b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationPutOrPatchAcls.json new file mode 100644 index 000000000000..02ade7079343 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationPutOrPatchAcls.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "signedIdentifiers": [ + { + "accessPolicy": { + "expiryTime": "2022-03-20T08:49:37.0000000Z", + "permission": "raud", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI" + }, + { + "accessPolicy": { + "expiryTime": "2022-03-20T08:49:37.0000000Z", + "permission": "rad", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "PTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODklMTI" + } + ] + } + }, + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableName": "table6185" + }, + "responses": { + "200": { + "body": { + "name": "table6185", + "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", + "properties": { + "signedIdentifiers": [ + { + "accessPolicy": { + "expiryTime": "2022-03-20T08:49:37.0000000Z", + "permission": "raud", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI" + }, + { + "accessPolicy": { + "expiryTime": "2022-03-20T08:49:37.0000000Z", + "permission": "rad", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "PTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODklMTI" + } + ], + "tableName": "table6185" + } + } + } + }, + "operationId": "Table_Update", + "title": "TableOperationPutOrPatchAcls" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/TableOperationPutOrPatchAclsTableCreate.json b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationPutOrPatchAclsTableCreate.json new file mode 100644 index 000000000000..eb7b6b037a6b --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/TableOperationPutOrPatchAclsTableCreate.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "signedIdentifiers": [ + { + "accessPolicy": { + "expiryTime": "2022-03-20T08:49:37.0000000Z", + "permission": "raud", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI" + }, + { + "accessPolicy": { + "expiryTime": "2022-03-20T08:49:37.0000000Z", + "permission": "rad", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "PTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODklMTI" + } + ] + } + }, + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableName": "table6185" + }, + "responses": { + "200": { + "body": { + "name": "table6185", + "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", + "properties": { + "signedIdentifiers": [ + { + "accessPolicy": { + "expiryTime": "2022-03-20T08:49:37.0000000Z", + "permission": "raud", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI" + }, + { + "accessPolicy": { + "expiryTime": "2022-03-20T08:49:37.0000000Z", + "permission": "rad", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "PTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODklMTI" + } + ], + "tableName": "table6185" + } + } + } + }, + "operationId": "Table_Create", + "title": "TableOperationPutOrPatchAcls" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/TableServicesGet.json b/specification/storage/Storage.Management/examples/2025-06-01/TableServicesGet.json new file mode 100644 index 000000000000..c50146ece9f7 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/TableServicesGet.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableServiceName": "default" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/tableServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/tableServices/default", + "properties": { + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + } + } + } + } + }, + "operationId": "TableServices_GetServiceProperties", + "title": "TableServicesGet" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/TableServicesList.json b/specification/storage/Storage.Management/examples/2025-06-01/TableServicesList.json new file mode 100644 index 000000000000..785059df5c64 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/TableServicesList.json @@ -0,0 +1,87 @@ +{ + "parameters": { + "accountName": "sto1590", + "api-version": "2025-06-01", + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/tableServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/tableServices/default", + "properties": { + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + } + } + } + ] + } + } + }, + "operationId": "TableServices_List", + "title": "TableServicesList" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/TableServicesPut.json b/specification/storage/Storage.Management/examples/2025-06-01/TableServicesPut.json new file mode 100644 index 000000000000..11ea3e940b6a --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/TableServicesPut.json @@ -0,0 +1,149 @@ +{ + "parameters": { + "accountName": "sto8607", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + } + } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableServiceName": "default" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Storage/storageAccounts/tableServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/tableServices/default", + "properties": { + "cors": { + "corsRules": [ + { + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "allowedMethods": [ + "GET", + "HEAD", + "POST", + "OPTIONS", + "MERGE", + "PUT" + ], + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], + "exposedHeaders": [ + "x-ms-meta-*" + ], + "maxAgeInSeconds": 100 + }, + { + "allowedHeaders": [ + "*" + ], + "allowedMethods": [ + "GET" + ], + "allowedOrigins": [ + "*" + ], + "exposedHeaders": [ + "*" + ], + "maxAgeInSeconds": 2 + }, + { + "allowedHeaders": [ + "x-ms-meta-12345675754564*" + ], + "allowedMethods": [ + "GET", + "PUT" + ], + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], + "exposedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" + ], + "maxAgeInSeconds": 2000 + } + ] + } + } + } + } + }, + "operationId": "TableServices_SetServiceProperties", + "title": "TableServicesPut" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/DeleteStorageTaskAssignment.json b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/DeleteStorageTaskAssignment.json new file mode 100644 index 000000000000..daa5a853d7a5 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/DeleteStorageTaskAssignment.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "resourceGroupName": "res4228", + "storageTaskAssignmentName": "myassignment1", + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-06-01" + } + }, + "204": {} + }, + "operationId": "StorageTaskAssignments_Delete", + "title": "DeleteStorageTaskAssignment" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/GetStorageTaskAssignment.json b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/GetStorageTaskAssignment.json new file mode 100644 index 000000000000..5367de0afc4a --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/GetStorageTaskAssignment.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "resourceGroupName": "res4228", + "storageTaskAssignmentName": "myassignment1", + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" + }, + "responses": { + "200": { + "body": { + "name": "myassignment1", + "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", + "properties": { + "description": "My Storage task assignment", + "enabled": true, + "executionContext": { + "target": { + "excludePrefix": [], + "prefix": [ + "prefix1", + "prefix2" + ] + }, + "trigger": { + "type": "RunOnce", + "parameters": { + "startOn": "2022-11-15T21:52:47.8145095Z" + } + } + }, + "provisioningState": "Succeeded", + "report": { + "prefix": "container1" + }, + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" + } + } + } + }, + "operationId": "StorageTaskAssignments_Get", + "title": "GetStorageTaskAssignment" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/PatchStorageTaskAssignment.json b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/PatchStorageTaskAssignment.json new file mode 100644 index 000000000000..ac4a86dc6e12 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/PatchStorageTaskAssignment.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "description": "My Storage task assignment", + "enabled": true, + "executionContext": { + "target": { + "excludePrefix": [], + "prefix": [ + "prefix1", + "prefix2" + ] + }, + "trigger": { + "type": "RunOnce", + "parameters": { + "startOn": "2022-11-15T21:52:47.8145095Z" + } + } + }, + "report": { + "prefix": "container1" + } + } + }, + "resourceGroupName": "res4228", + "storageTaskAssignmentName": "myassignment1", + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" + }, + "responses": { + "200": { + "body": { + "name": "myassignment1", + "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", + "properties": { + "description": "My Storage task assignment", + "enabled": true, + "executionContext": { + "target": { + "excludePrefix": [], + "prefix": [ + "prefix1", + "prefix2" + ] + }, + "trigger": { + "type": "RunOnce", + "parameters": { + "startOn": "2022-11-15T21:52:47.8145095Z" + } + } + }, + "provisioningState": "Succeeded", + "report": { + "prefix": "container1" + }, + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" + } + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-06-01" + } + } + }, + "operationId": "StorageTaskAssignments_Update", + "title": "PatchStorageTaskAssignment" +} diff --git a/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/PutStorageTaskAssignment.json b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/PutStorageTaskAssignment.json new file mode 100644 index 000000000000..4819345d72d9 --- /dev/null +++ b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/PutStorageTaskAssignment.json @@ -0,0 +1,105 @@ +{ + "parameters": { + "accountName": "sto4445", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "description": "My Storage task assignment", + "enabled": true, + "executionContext": { + "target": { + "excludePrefix": [], + "prefix": [ + "prefix1", + "prefix2" + ] + }, + "trigger": { + "type": "RunOnce", + "parameters": { + "startOn": "2022-11-15T21:52:47.8145095Z" + } + } + }, + "report": { + "prefix": "container1" + }, + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" + } + }, + "resourceGroupName": "res4228", + "storageTaskAssignmentName": "myassignment1", + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" + }, + "responses": { + "200": { + "body": { + "name": "myassignment1", + "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", + "properties": { + "description": "My Storage task assignment", + "enabled": true, + "executionContext": { + "target": { + "excludePrefix": [], + "prefix": [ + "prefix1", + "prefix2" + ] + }, + "trigger": { + "type": "RunOnce", + "parameters": { + "startOn": "2022-11-15T21:52:47.8145095Z" + } + } + }, + "provisioningState": "Succeeded", + "report": { + "prefix": "container1" + }, + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" + } + } + }, + "201": { + "body": { + "name": "myassignment1", + "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", + "properties": { + "description": "My Storage task assignment", + "enabled": true, + "executionContext": { + "target": { + "excludePrefix": [], + "prefix": [ + "prefix1", + "prefix2" + ] + }, + "trigger": { + "type": "RunOnce", + "parameters": { + "startOn": "2022-11-15T21:52:47.8145095Z" + } + } + }, + "provisioningState": "Succeeded", + "report": { + "prefix": "container1" + }, + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" + } + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-06-01" + } + } + }, + "operationId": "StorageTaskAssignments_Create", + "title": "PutStorageTaskAssignment" +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json similarity index 82% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json rename to specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json index f5a26e55f9f7..8d799a44e91e 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json @@ -1,15 +1,11 @@ { "parameters": { - "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", - "resourceGroupName": "res4228", "accountName": "sto4445", - "storageTaskAssignmentName": "myassignment1", - "api-version": "2025-01-01", + "api-version": "2025-06-01", "parameters": { "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "enabled": true, "description": "My Storage task assignment", + "enabled": true, "executionContext": { "trigger": { "type": "RunOnce", @@ -20,20 +16,23 @@ }, "report": { "prefix": "container1" - } + }, + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" } - } + }, + "resourceGroupName": "res4228", + "storageTaskAssignmentName": "myassignment1", + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" }, "responses": { "200": { "body": { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "name": "myassignment1", "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "enabled": true, "description": "My Storage task assignment", + "enabled": true, "executionContext": { "trigger": { "type": "RunOnce", @@ -42,22 +41,22 @@ } } }, + "provisioningState": "Succeeded", "report": { "prefix": "container1" }, - "provisioningState": "Succeeded" + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" } } }, "201": { "body": { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "name": "myassignment1", "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "enabled": true, "description": "My Storage task assignment", + "enabled": true, "executionContext": { "trigger": { "type": "RunOnce", @@ -66,18 +65,20 @@ } } }, + "provisioningState": "Succeeded", "report": { "prefix": "container1" }, - "provisioningState": "Succeeded" + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" } } }, "202": { "headers": { - "Azure-AsyncOperation": "https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/ActionsRPOperationStatuses/00000000-0000-0000-0000-000000000000*00000?api-version=2025-01-01", - "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-01-01" + "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-06-01" } } - } + }, + "operationId": "StorageTaskAssignments_Create", + "title": "PutStorageTaskAssignmentRequiredProperties" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json similarity index 88% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json rename to specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json index b966f8d6b3ef..bb225e6534ef 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json @@ -1,59 +1,61 @@ { "parameters": { - "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", - "resourceGroupName": "res4228", "accountName": "sto4445", + "api-version": "2025-06-01", + "resourceGroupName": "res4228", "storageTaskAssignmentName": "myassignment1", - "api-version": "2025-01-01" + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance1", "name": "instance1", "type": "Microsoft.Storage/storageAccounts/reports", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance1", "properties": { - "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", - "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", - "startTime": "2023-06-23T00:30:43.226744Z", "finishTime": "2023-06-23T00:40:10.2931264Z", - "objectsTargetedCount": "150", - "objectsOperatedOnCount": "150", "objectFailedCount": "0", + "objectsOperatedOnCount": "150", "objectsSucceededCount": "150", - "runStatusError": "0", + "objectsTargetedCount": "150", + "runResult": "Succeeded", "runStatusEnum": "Finished", + "runStatusError": "0", + "startTime": "2023-06-23T00:30:43.226744Z", + "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", "summaryReportPath": "https://acc123.blob.core.windows.net/result-container/{folderpath}/SummaryReport.json", + "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "taskVersion": "1", - "runResult": "Succeeded" + "taskVersion": "1" } }, { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance2", "name": "instance2", "type": "Microsoft.Storage/storageAccounts/reports", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance2", "properties": { - "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", - "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", - "startTime": "2023-06-23T00:30:43.226744Z", "finishTime": "2023-06-23T00:40:10.2931264Z", - "objectsTargetedCount": "150", - "objectsOperatedOnCount": "150", "objectFailedCount": "0", + "objectsOperatedOnCount": "150", "objectsSucceededCount": "150", - "runStatusError": "0", + "objectsTargetedCount": "150", + "runResult": "Succeeded", "runStatusEnum": "Finished", + "runStatusError": "0", + "startTime": "2023-06-23T00:30:43.226744Z", + "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", "summaryReportPath": "https://acc123.blob.core.windows.net/result-container/{folderpath}/SummaryReport.json", + "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "taskVersion": "1", - "runResult": "Succeeded" + "taskVersion": "1" } } ] } } - } + }, + "operationId": "StorageTaskAssignmentInstancesReport_List", + "title": "ListStorageTaskAssignmentInstancesReportSummary" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json similarity index 83% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json rename to specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json index f7ddde63dc56..2b082c5ee9ed 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json @@ -1,29 +1,28 @@ { "parameters": { - "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", - "resourceGroupName": "res4228", "accountName": "sto4445", - "api-version": "2025-01-01" + "api-version": "2025-06-01", + "resourceGroupName": "res4228", + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "name": "myassignment1", "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "enabled": true, "description": "My Storage task assignment #1", + "enabled": true, "executionContext": { "target": { + "excludePrefix": [], "prefix": [ "prefix1", "prefix2" - ], - "excludePrefix": [] + ] }, "trigger": { "type": "RunOnce", @@ -32,27 +31,27 @@ } } }, + "provisioningState": "Succeeded", "report": { "prefix": "container1" }, - "provisioningState": "Succeeded" + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" } }, { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment2", "name": "myassignment2", "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment2", "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask2", - "enabled": true, "description": "My Storage task assignment #2", + "enabled": true, "executionContext": { "target": { + "excludePrefix": [], "prefix": [ "prefix3", "prefix4" - ], - "excludePrefix": [] + ] }, "trigger": { "type": "RunOnce", @@ -61,14 +60,17 @@ } } }, + "provisioningState": "Succeeded", "report": { "prefix": "container2" }, - "provisioningState": "Succeeded" + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask2" } } ] } } - } + }, + "operationId": "StorageTaskAssignments_List", + "title": "ListStorageTaskAssignmentsForAccount" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json similarity index 88% rename from specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json rename to specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json index f4c3331110b4..980eec9914cb 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json +++ b/specification/storage/Storage.Management/examples/2025-06-01/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json @@ -1,58 +1,60 @@ { "parameters": { - "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", - "resourceGroupName": "res4228", "accountName": "sto4445", - "api-version": "2025-01-01" + "api-version": "2025-06-01", + "resourceGroupName": "res4228", + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance1", "name": "instance1", "type": "Microsoft.Storage/storageAccounts/reports", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance1", "properties": { - "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", - "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", - "startTime": "2023-06-23T00:30:43.226744Z", "finishTime": "2023-06-23T00:40:10.2931264Z", - "objectsTargetedCount": "150", - "objectsOperatedOnCount": "150", "objectFailedCount": "0", + "objectsOperatedOnCount": "150", "objectsSucceededCount": "150", - "runStatusError": "0", + "objectsTargetedCount": "150", + "runResult": "Succeeded", "runStatusEnum": "Finished", + "runStatusError": "0", + "startTime": "2023-06-23T00:30:43.226744Z", + "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", "summaryReportPath": "https://acc123.blob.core.windows.net/result-container/{folderpath}/SummaryReport.json", + "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "taskVersion": "1", - "runResult": "Succeeded" + "taskVersion": "1" } }, { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance2", "name": "instance2", "type": "Microsoft.Storage/storageAccounts/reports", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance2", "properties": { - "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment2", - "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", - "startTime": "2023-06-23T00:30:43.226744Z", "finishTime": "2023-06-23T00:40:10.2931264Z", - "objectsTargetedCount": "150", - "objectsOperatedOnCount": "150", "objectFailedCount": "0", + "objectsOperatedOnCount": "150", "objectsSucceededCount": "150", - "runStatusError": "0", + "objectsTargetedCount": "150", + "runResult": "Succeeded", "runStatusEnum": "Finished", + "runStatusError": "0", + "startTime": "2023-06-23T00:30:43.226744Z", + "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", "summaryReportPath": "https://acc123.blob.core.windows.net/result-container/{folderpath}/SummaryReport.json", + "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment2", "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "taskVersion": "1", - "runResult": "Succeeded" + "taskVersion": "1" } } ] } } - } + }, + "operationId": "StorageTaskAssignmentsInstancesReport_List", + "title": "ListStorageTaskAssignmentsInstancesReportSummary" } diff --git a/specification/storage/Storage.Management/main.tsp b/specification/storage/Storage.Management/main.tsp new file mode 100644 index 000000000000..01008a6646e1 --- /dev/null +++ b/specification/storage/Storage.Management/main.tsp @@ -0,0 +1,72 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.1 + * Date: 2025-06-24T07:05:39.182Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./BlobServiceProperties.tsp"; +import "./BlobContainer.tsp"; +import "./ImmutabilityPolicy.tsp"; +import "./FileServiceProperties.tsp"; +import "./FileServiceUsage.tsp"; +import "./FileShare.tsp"; +import "./QueueServiceProperties.tsp"; +import "./StorageQueue.tsp"; +import "./StorageAccount.tsp"; +import "./StorageAccountMigration.tsp"; +import "./DeletedAccount.tsp"; +import "./ManagementPolicy.tsp"; +import "./BlobInventoryPolicy.tsp"; +import "./PrivateEndpointConnection.tsp"; +import "./ObjectReplicationPolicy.tsp"; +import "./LocalUser.tsp"; +import "./EncryptionScope.tsp"; +import "./TableServiceProperties.tsp"; +import "./Table.tsp"; +import "./NetworkSecurityPerimeterConfiguration.tsp"; +import "./StorageTaskAssignment.tsp"; +import "./routes.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * The Azure Storage Management API. + */ +@armProviderNamespace +@service(#{ title: "StorageManagementClient" }) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) +namespace Microsoft.Storage; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2025-06-01 API version. + */ + v2025_06_01: "2025-06-01", +} + +interface Operations + extends Azure.ResourceManager.Legacy.Operations< + ArmResponse, + ErrorResponse + > {} + +@@doc(Operations.list, + "Lists all of the available Storage Rest API operations." +); diff --git a/specification/storage/Storage.Management/models.tsp b/specification/storage/Storage.Management/models.tsp new file mode 100644 index 000000000000..26f669729dd7 --- /dev/null +++ b/specification/storage/Storage.Management/models.tsp @@ -0,0 +1,6050 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.Core; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; + +namespace Microsoft.Storage; + +/** + * Run interval unit of task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce' + */ +union IntervalUnit { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + days: "Days", +} + +/** + * Common fields that are returned in the response for all Azure Resource Manager resources + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@Azure.ResourceManager.Legacy.customAzureResource(#{ isAzureResource: true }) +model Resource { + /** + * Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + */ + @visibility(Lifecycle.Read) + id?: string; + + /** + * The name of the resource + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + */ + @visibility(Lifecycle.Read) + type?: string; +} + +/** + * Geo Priority Replication enablement status for the storage account. + */ +model GeoPriorityReplicationStatus { + /** Indicates whether Blob Geo Priority Replication is enabled for the storage account. */ + isBlobEnabled?: boolean; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union AllowedMethods { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + DELETE: "DELETE", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GET: "GET", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + HEAD: "HEAD", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + MERGE: "MERGE", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + POST: "POST", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + OPTIONS: "OPTIONS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PUT: "PUT", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PATCH: "PATCH", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CONNECT: "CONNECT", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + TRACE: "TRACE", +} + +/** + * Name of the policy. The valid value is AccessTimeTracking. This field is currently read only + */ +union Name { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AccessTimeTracking: "AccessTimeTracking", +} + +/** + * The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. + */ +union SkuName { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard_LRS: "Standard_LRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard_GRS: "Standard_GRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard_RAGRS: "Standard_RAGRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard_ZRS: "Standard_ZRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Premium_LRS: "Premium_LRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Premium_ZRS: "Premium_ZRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard_GZRS: "Standard_GZRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard_RAGZRS: "Standard_RAGZRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + StandardV2_LRS: "StandardV2_LRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + StandardV2_GRS: "StandardV2_GRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + StandardV2_ZRS: "StandardV2_ZRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + StandardV2_GZRS: "StandardV2_GZRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PremiumV2_LRS: "PremiumV2_LRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PremiumV2_ZRS: "PremiumV2_ZRS", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union ListContainersInclude { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + deleted: "deleted", +} + +/** + * The lease status of the container. + */ +union LeaseStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Locked: "Locked", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Unlocked: "Unlocked", +} + +/** + * Lease state of the container. + */ +union LeaseState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Available: "Available", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Leased: "Leased", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Expired: "Expired", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Breaking: "Breaking", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Broken: "Broken", +} + +/** + * Specifies whether the lease on a container is of infinite or fixed duration, only when the container is leased. + */ +union LeaseDuration { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Infinite: "Infinite", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Fixed: "Fixed", +} + +/** + * The ImmutabilityPolicy state of a blob container, possible values include: Locked and Unlocked. + */ +union ImmutabilityPolicyState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Locked: "Locked", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Unlocked: "Unlocked", +} + +/** + * The ImmutabilityPolicy update type of a blob container, possible values include: put, lock and extend. + */ +union ImmutabilityPolicyUpdateType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + put: "put", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + lock: "lock", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + extend: "extend", +} + +/** + * This property denotes the container level immutability to object level immutability migration state. + */ +union MigrationState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + InProgress: "InProgress", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Completed: "Completed", +} + +/** + * Specifies the lease action. Can be one of the available actions. + */ +union LeaseContainerRequestAction { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Acquire: "Acquire", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Renew: "Renew", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Change: "Change", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Release: "Release", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Break: "Break", +} + +/** + * The authentication protocol that is used for the file share. Can only be specified when creating a share. + */ +union EnabledProtocols { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SMB: "SMB", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NFS: "NFS", +} + +/** + * The property is for NFS share only. The default is NoRootSquash. + */ +union RootSquashType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NoRootSquash: "NoRootSquash", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + RootSquash: "RootSquash", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AllSquash: "AllSquash", +} + +/** + * Access tier for specific share. GpV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. + */ +union ShareAccessTier { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + TransactionOptimized: "TransactionOptimized", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Hot: "Hot", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Cool: "Cool", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Premium: "Premium", +} + +/** + * Specifies the lease action. Can be one of the available actions. + */ +union LeaseShareAction { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Acquire: "Acquire", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Renew: "Renew", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Change: "Change", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Release: "Release", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Break: "Break", +} + +/** + * Indicates the type of storage account. + */ +union Kind { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Storage: "Storage", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + StorageV2: "StorageV2", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + BlobStorage: "BlobStorage", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + FileStorage: "FileStorage", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + BlockBlobStorage: "BlockBlobStorage", +} + +/** + * The reason for the restriction. As of now this can be "QuotaId" or "NotAvailableForSubscription". Quota Id is set when the SKU has requiredQuotas parameter as the subscription does not belong to that quota. The "NotAvailableForSubscription" is related to capacity at DC. + */ +union ReasonCode { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + QuotaId: "QuotaId", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NotAvailableForSubscription: "NotAvailableForSubscription", +} + +/** + * The type of extendedLocation. + */ +union ExtendedLocationTypes { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + EdgeZone: "EdgeZone", +} + +/** + * The availability zone pinning policy for the storage account. + */ +union ZonePlacementPolicy { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Any: "Any", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + None: "None", +} + +/** + * The identity type. + */ +union IdentityType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + None: "None", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SystemAssigned: "SystemAssigned", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + UserAssigned: "UserAssigned", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `SystemAssigned,UserAssigned`: "SystemAssigned,UserAssigned", +} + +/** + * Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet. + */ +union AllowedCopyScope { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PrivateLink: "PrivateLink", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AAD: "AAD", +} + +/** + * Allow, disallow, or let Network Security Perimeter configuration to evaluate public network access to Storage Account. Value is optional but if passed in, must be 'Enabled', 'Disabled' or 'SecuredByPerimeter'. + */ +union PublicNetworkAccess { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SecuredByPerimeter: "SecuredByPerimeter", +} + +/** + * The SAS Expiration Action defines the action to be performed when sasPolicy.sasExpirationPeriod is violated. The 'Log' action can be used for audit purposes and the 'Block' action can be used to block and deny the usage of SAS tokens that do not adhere to the sas policy expiration period. + */ +union ExpirationAction { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Log: "Log", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Block: "Block", +} + +/** + * Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. + */ +union KeyType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Service: "Service", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Account: "Account", +} + +/** + * The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault + */ +union KeySource { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `Microsoft.Storage`: "Microsoft.Storage", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `Microsoft.Keyvault`: "Microsoft.Keyvault", +} + +/** + * Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. + */ +union Bypass { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + None: "None", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Logging: "Logging", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Metrics: "Metrics", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureServices: "AzureServices", +} + +/** + * Gets the state of virtual network rule. + */ +union State { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Provisioning: "Provisioning", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Deprovisioning: "Deprovisioning", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NetworkSourceDeleted: "NetworkSourceDeleted", +} + +/** + * Indicates the directory service used. Note that this enum may be extended in the future. + */ +union DirectoryServiceOptions { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + None: "None", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AADDS: "AADDS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AD: "AD", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AADKERB: "AADKERB", +} + +/** + * Specifies the Active Directory account type for Azure Storage. If directoryServiceOptions is set to AD (AD DS authentication), this property is optional. If provided, samAccountName should also be provided. For directoryServiceOptions AADDS (Entra DS authentication) or AADKERB (Entra authentication), this property can be omitted. + */ +union AccountType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + User: "User", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Computer: "Computer", +} + +/** + * Default share permission for users using Kerberos authentication if RBAC role is not assigned. + */ +union DefaultSharePermission { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + None: "None", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + StorageFileDataSmbShareReader: "StorageFileDataSmbShareReader", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + StorageFileDataSmbShareContributor: "StorageFileDataSmbShareContributor", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + StorageFileDataSmbShareElevatedContributor: "StorageFileDataSmbShareElevatedContributor", +} + +/** + * Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled. + */ +union LargeFileSharesState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", +} + +/** + * Routing Choice defines the kind of network routing opted by the user. + */ +union RoutingChoice { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + MicrosoftRouting: "MicrosoftRouting", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + InternetRouting: "InternetRouting", +} + +/** + * Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property. + */ +union MinimumTlsVersion { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + TLS1_0: "TLS1_0", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + TLS1_1: "TLS1_1", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + TLS1_2: "TLS1_2", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + TLS1_3: "TLS1_3", +} + +/** + * The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. + */ +union AccountImmutabilityPolicyState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Unlocked: "Unlocked", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Locked: "Locked", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. + */ +union DnsEndpointType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard: "Standard", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureDnsZone: "AzureDnsZone", +} + +/** + * The status of the secondary location. Possible values are: - Live: Indicates that the secondary location is active and operational. - Bootstrap: Indicates initial synchronization from the primary location to the secondary location is in progress.This typically occurs when replication is first enabled. - Unavailable: Indicates that the secondary location is temporarily unavailable. + */ +union GeoReplicationStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Live: "Live", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Bootstrap: "Bootstrap", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Unavailable: "Unavailable", +} + +/** + * The redundancy type of the account after an account failover is performed. + */ +union PostFailoverRedundancy { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard_LRS: "Standard_LRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard_ZRS: "Standard_ZRS", +} + +/** + * The redundancy type of the account after a planned account failover is performed. + */ +union PostPlannedFailoverRedundancy { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard_GRS: "Standard_GRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard_GZRS: "Standard_GZRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard_RAGRS: "Standard_RAGRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard_RAGZRS: "Standard_RAGZRS", +} + +/** + * The private endpoint connection status. + */ +union PrivateEndpointServiceConnectionStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Pending: "Pending", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Approved: "Approved", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Rejected: "Rejected", +} + +/** + * The current provisioning state. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union PrivateEndpointConnectionProvisioningState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Creating: "Creating", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Deleting: "Deleting", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", +} + +/** + * The status of blob restore progress. Possible values are: - InProgress: Indicates that blob restore is ongoing. - Complete: Indicates that blob restore has been completed successfully. - Failed: Indicates that blob restore is failed. + */ +union BlobRestoreProgressStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + InProgress: "InProgress", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Complete: "Complete", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", +} + +/** + * This property indicates the current sku conversion status. + */ +union SkuConversionStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + InProgress: "InProgress", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", +} + +/** + * The signed services accessible with the account SAS. Possible values include: Blob (b), Queue (q), Table (t), File (f). + */ +union Services { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + b: "b", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + q: "q", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + t: "t", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + f: "f", +} + +/** + * The signed resource types that are accessible with the account SAS. Service (s): Access to service-level APIs; Container (c): Access to container-level APIs; Object (o): Access to object-level APIs for blobs, queue messages, table entities, and files. + */ +union SignedResourceTypes { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + s: "s", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + c: "c", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + o: "o", +} + +/** + * The signed permissions for the account SAS. Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p). + */ +union Permissions { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + r: "r", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + d: "d", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + w: "w", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + l: "l", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + a: "a", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + c: "c", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + u: "u", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + p: "p", +} + +/** + * The signed services accessible with the service SAS. Possible values include: Blob (b), Container (c), File (f), Share (s). + */ +union SignedResource { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + b: "b", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + c: "c", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + f: "f", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + s: "s", +} + +/** + * Current status of migration + */ +union migrationStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SubmittedForConversion: "SubmittedForConversion", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + InProgress: "InProgress", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Complete: "Complete", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union MigrationName { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + default: "default", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union ManagementPolicyName { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + default: "default", +} + +/** + * The valid value is Lifecycle + */ +union RuleType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Lifecycle: "Lifecycle", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union BlobInventoryPolicyName { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + default: "default", +} + +/** + * The valid value is Inventory + */ +union InventoryRuleType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Inventory: "Inventory", +} + +/** + * This is a required field, it specifies the format for the inventory files. + */ +union Format { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Csv: "Csv", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Parquet: "Parquet", +} + +/** + * This is a required field. This field is used to schedule an inventory formation. + */ +union Schedule { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Daily: "Daily", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Weekly: "Weekly", +} + +/** + * This is a required field. This field specifies the scope of the inventory created either at the blob or container level. + */ +union ObjectType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Blob: "Blob", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Container: "Container", +} + +/** + * The type of identity that created the resource. + */ +union CreatedByType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + User: "User", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Application: "Application", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ManagedIdentity: "ManagedIdentity", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Key: "Key", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union ListLocalUserIncludeParam { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + nfsv3: "nfsv3", +} + +/** + * The provider for the encryption scope. Possible values (case-insensitive): Microsoft.Storage, Microsoft.KeyVault. + */ +union EncryptionScopeSource { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `Microsoft.Storage`: "Microsoft.Storage", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `Microsoft.KeyVault`: "Microsoft.KeyVault", +} + +/** + * The state of the encryption scope. Possible values (case-insensitive): Enabled, Disabled. + */ +union EncryptionScopeState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union ListEncryptionScopesInclude { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + All: "All", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Provisioning state of Network Security Perimeter configuration propagation + */ +union NetworkSecurityPerimeterConfigurationProvisioningState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Accepted: "Accepted", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Deleting: "Deleting", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Canceled: "Canceled", +} + +/** + * Type of issue + */ +union IssueType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Unknown: "Unknown", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ConfigurationPropagationFailure: "ConfigurationPropagationFailure", +} + +/** + * Severity of the issue. + */ +union Severity { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Warning: "Warning", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Error: "Error", +} + +/** + * Access Mode of the resource association + */ +union ResourceAssociationAccessMode { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enforced: "Enforced", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Learning: "Learning", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Audit: "Audit", +} + +/** + * Direction of Access Rule + */ +union NspAccessRuleDirection { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Inbound: "Inbound", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Outbound: "Outbound", +} + +/** + * Represents the status of the execution. + */ +union RunStatusEnum { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + InProgress: "InProgress", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Finished: "Finished", +} + +/** + * Represents the overall result of the execution for the run instance + */ +union RunResult { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", +} + +/** + * The SKU tier. This is based on the SKU name. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum SkuTier { + Standard, + Premium, +} + +/** + * Specifies whether data in the container may be accessed publicly and the level of access. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum PublicAccess { + Container, + Blob, + None, +} + +/** + * Gets the reason that a storage account name could not be used. The Reason element is only returned if NameAvailable is false. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum Reason { + AccountNameInvalid, + AlreadyExists, +} + +/** + * Specifies the default action of allow or deny when no other rules match. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum DefaultAction { + Allow, + Deny, +} + +/** + * Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum AccessTier { + Hot, + Cool, + Premium, + Cold, +} + +/** + * Gets the status of the storage account at the time the operation was called. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum ProvisioningState { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Creating: "Creating", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ResolvingDNS: "ResolvingDNS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", +} +/** + * Gets the status of the storage account at the time the operation was called. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union StorageTaskAssignmentProvisioningState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ValidateSubscriptionQuotaBegin: "ValidateSubscriptionQuotaBegin", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ValidateSubscriptionQuotaEnd: "ValidateSubscriptionQuotaEnd", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Accepted: "Accepted", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Creating: "Creating", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Deleting: "Deleting", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Canceled: "Canceled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", +} + +/** + * Gets the status indicating whether the primary location of the storage account is available or unavailable. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum AccountStatus { + available, + unavailable, +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum StorageAccountExpand { + geoReplicationStats, + blobRestoreStatus, +} + +/** + * Permissions for the key -- read-only or full permissions. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum KeyPermission { + Read, + Full, +} + +/** + * Gets the unit of measurement. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum UsageUnit { + Count, + Bytes, + Seconds, + Percent, + CountsPerSecond, + BytesPerSecond, +} + +/** + * The protocol permitted for a request made with the account SAS. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum HttpProtocol { + `https,http`, + https, +} + +/** + * The trigger type of the storage task assignment execution + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union TriggerType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + RunOnce: "RunOnce", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + OnSchedule: "OnSchedule", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BlobServiceItems { + /** + * List of blob services returned. + */ + @visibility(Lifecycle.Read) + @pageItems + value?: BlobServiceProperties[]; + + @nextLink + nextLink?: string; +} + +/** + * The properties of a storage account’s Blob service. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BlobServicePropertiesProperties { + /** + * Specifies CORS rules for the Blob service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Blob service. + */ + cors?: CorsRules; + + /** + * DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request’s version is not specified. Possible values include version 2008-10-27 and all more recent versions. + */ + defaultServiceVersion?: string; + + /** + * The blob service properties for blob soft delete. + */ + deleteRetentionPolicy?: DeleteRetentionPolicy; + + /** + * Versioning is enabled if set to true. + */ + isVersioningEnabled?: boolean; + + /** + * Deprecated in favor of isVersioningEnabled property. + */ + automaticSnapshotPolicyEnabled?: boolean; + + /** + * The blob service properties for change feed events. + */ + changeFeed?: ChangeFeed; + + /** + * The blob service properties for blob restore policy. + */ + restorePolicy?: RestorePolicyProperties; + + /** + * The blob service properties for container soft delete. + */ + containerDeleteRetentionPolicy?: DeleteRetentionPolicy; + + /** + * The blob service property to configure last access time based tracking policy. + */ + lastAccessTimeTrackingPolicy?: LastAccessTimeTrackingPolicy; +} + +/** + * Sets the CORS rules. You can include up to five CorsRule elements in the request. + */ +model CorsRules { + /** + * The List of CORS rules. You can include up to five CorsRule elements in the request. + */ + #suppress "@azure-tools/typespec-client-generator-core/property-name-conflict" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @identifiers(#[]) + corsRules?: CorsRule[]; +} + +/** + * Specifies a CORS rule for the Blob service. + */ +model CorsRule { + /** + * Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains + */ + allowedOrigins: string[]; + + /** + * Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin. + */ + allowedMethods: AllowedMethods[]; + + /** + * Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response. + */ + maxAgeInSeconds: int32; + + /** + * Required if CorsRule element is present. A list of response headers to expose to CORS clients. + */ + exposedHeaders: string[]; + + /** + * Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request. + */ + allowedHeaders: string[]; +} + +/** + * The service properties for soft delete. + */ +model DeleteRetentionPolicy { + /** + * Indicates whether DeleteRetentionPolicy is enabled. + */ + enabled?: boolean; + + /** + * Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365. + */ + @maxValue(365) + @minValue(1) + days?: int32; + + /** + * This property when set to true allows deletion of the soft deleted blob versions and snapshots. This property cannot be used blob restore policy. This property only applies to blob service and does not apply to containers or file share. + */ + allowPermanentDelete?: boolean; +} + +/** + * The blob service properties for change feed events. + */ +model ChangeFeed { + /** + * Indicates whether change feed event logging is enabled for the Blob service. + */ + enabled?: boolean; + + /** + * Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed. + */ + @maxValue(146000) + @minValue(1) + retentionInDays?: int32; +} + +/** + * The blob service properties for blob restore policy + */ +model RestorePolicyProperties { + /** + * Blob restore is enabled if set to true. + */ + enabled: boolean; + + /** + * how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days. + */ + @maxValue(365) + @minValue(1) + days?: int32; + + /** + * Deprecated in favor of minRestoreTime property. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastEnabledTime?: utcDateTime; + + /** + * Returns the minimum date and time that the restore can be started. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + minRestoreTime?: utcDateTime; +} + +/** + * The blob service properties for Last access time based tracking policy. + */ +model LastAccessTimeTrackingPolicy { + /** + * When set to true last access time based tracking is enabled. + */ + enable: boolean; + + /** + * Name of the policy. The valid value is AccessTimeTracking. This field is currently read only + */ + name?: Name; + + /** + * The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1 + */ + trackingGranularityInDays?: int32; + + /** + * An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only + */ + blobType?: string[]; +} + +/** + * The SKU of the storage account. + */ +model Sku { + /** + * The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. + */ + name: SkuName; + + /** + * The SKU tier. This is based on the SKU name. + */ + @visibility(Lifecycle.Read) + tier?: SkuTier; +} + +/** + * Response schema. Contains list of blobs returned, and if paging is requested or required, a URL to next page of containers. + */ +model ListContainerItems is Azure.Core.Page; + +/** The resource model definition for an Azure Resource Manager resource with an etag. */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@summary("Entity Resource") +model AzureEntityResource extends Azure.ResourceManager.CommonTypes.Resource { + /** Resource Etag. */ + @visibility(Lifecycle.Read) + etag?: string; +} + +/** + * The blob container properties be listed out. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ListContainerItem extends AzureEntityResource { + /** + * The blob container properties be listed out. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: ContainerProperties; +} + +/** + * The properties of a container. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ContainerProperties { + /** + * The version of the deleted blob container. + */ + @visibility(Lifecycle.Read) + version?: string; + + /** + * Indicates whether the blob container was deleted. + */ + @visibility(Lifecycle.Read) + deleted?: boolean; + + /** + * Blob container deletion time. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + deletedTime?: utcDateTime; + + /** + * Remaining retention days for soft deleted blob container. + */ + @visibility(Lifecycle.Read) + remainingRetentionDays?: int32; + + /** + * Default the container to use specified encryption scope for all writes. + */ + defaultEncryptionScope?: string; + + /** + * Block override of encryption scope from the container default. + */ + denyEncryptionScopeOverride?: boolean; + + /** + * Specifies whether data in the container may be accessed publicly and the level of access. + */ + publicAccess?: PublicAccess; + + /** + * Returns the date and time the container was last modified. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastModifiedTime?: utcDateTime; + + /** + * The lease status of the container. + */ + @visibility(Lifecycle.Read) + leaseStatus?: LeaseStatus; + + /** + * Lease state of the container. + */ + @visibility(Lifecycle.Read) + leaseState?: LeaseState; + + /** + * Specifies whether the lease on a container is of infinite or fixed duration, only when the container is leased. + */ + @visibility(Lifecycle.Read) + leaseDuration?: LeaseDuration; + + /** + * A name-value pair to associate with the container as metadata. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + metadata?: Record; + + /** + * The ImmutabilityPolicy property of the container. + */ + @visibility(Lifecycle.Read) + immutabilityPolicy?: ImmutabilityPolicyProperties; + + /** + * The LegalHold property of the container. + */ + @visibility(Lifecycle.Read) + legalHold?: LegalHoldProperties; + + /** + * The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account. + */ + @visibility(Lifecycle.Read) + hasLegalHold?: boolean; + + /** + * The hasImmutabilityPolicy public property is set to true by SRP if ImmutabilityPolicy has been created for this container. The hasImmutabilityPolicy public property is set to false by SRP if ImmutabilityPolicy has not been created for this container. + */ + @visibility(Lifecycle.Read) + hasImmutabilityPolicy?: boolean; + + /** + * The object level immutability property of the container. The property is immutable and can only be set to true at the container creation time. Existing containers must undergo a migration process. + */ + immutableStorageWithVersioning?: ImmutableStorageWithVersioning; + + /** + * Enable NFSv3 root squash on blob container. + */ + enableNfsV3RootSquash?: boolean; + + /** + * Enable NFSv3 all squash on blob container. + */ + enableNfsV3AllSquash?: boolean; +} + +/** + * The properties of an ImmutabilityPolicy of a blob container. + */ +model ImmutabilityPolicyProperties { + /** + * The properties of an ImmutabilityPolicy of a blob container. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: ImmutabilityPolicyProperty; + + /** + * ImmutabilityPolicy Etag. + */ + @visibility(Lifecycle.Read) + etag?: string; + + /** + * The ImmutabilityPolicy update history of the blob container. + */ + @visibility(Lifecycle.Read) + @identifiers(#[]) + updateHistory?: UpdateHistoryProperty[]; +} + +/** + * The properties of an ImmutabilityPolicy of a blob container. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ImmutabilityPolicyProperty { + /** + * The immutability period for the blobs in the container since the policy creation, in days. + */ + immutabilityPeriodSinceCreationInDays?: int32; + + /** + * The ImmutabilityPolicy state of a blob container, possible values include: Locked and Unlocked. + */ + @visibility(Lifecycle.Read) + state?: ImmutabilityPolicyState; + + /** + * This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. + */ + allowProtectedAppendWrites?: boolean; + + /** + * This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive. + */ + allowProtectedAppendWritesAll?: boolean; +} + +/** + * An update history of the ImmutabilityPolicy of a blob container. + */ +model UpdateHistoryProperty { + /** + * The ImmutabilityPolicy update type of a blob container, possible values include: put, lock and extend. + */ + @visibility(Lifecycle.Read) + update?: ImmutabilityPolicyUpdateType; + + /** + * The immutability period for the blobs in the container since the policy creation, in days. + */ + @visibility(Lifecycle.Read) + immutabilityPeriodSinceCreationInDays?: int32; + + /** + * Returns the date and time the ImmutabilityPolicy was updated. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + timestamp?: utcDateTime; + + /** + * Returns the Object ID of the user who updated the ImmutabilityPolicy. + */ + @visibility(Lifecycle.Read) + objectIdentifier?: string; + + /** + * Returns the Tenant ID that issued the token for the user who updated the ImmutabilityPolicy. + */ + @visibility(Lifecycle.Read) + tenantId?: string; + + /** + * Returns the User Principal Name of the user who updated the ImmutabilityPolicy. + */ + @visibility(Lifecycle.Read) + upn?: string; + + /** + * This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. + */ + allowProtectedAppendWrites?: boolean; + + /** + * This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive. + */ + allowProtectedAppendWritesAll?: boolean; +} + +/** + * The LegalHold property of a blob container. + */ +model LegalHoldProperties { + /** + * The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account. + */ + @visibility(Lifecycle.Read) + hasLegalHold?: boolean; + + /** + * The list of LegalHold tags of a blob container. + */ + @identifiers(#[]) + tags?: TagProperty[]; + + /** + * Protected append blob writes history. + */ + protectedAppendWritesHistory?: ProtectedAppendWritesHistory; +} + +/** + * A tag of the LegalHold of a blob container. + */ +model TagProperty { + /** + * The tag value. + */ + @visibility(Lifecycle.Read) + tag?: string; + + /** + * Returns the date and time the tag was added. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + timestamp?: utcDateTime; + + /** + * Returns the Object ID of the user who added the tag. + */ + @visibility(Lifecycle.Read) + objectIdentifier?: string; + + /** + * Returns the Tenant ID that issued the token for the user who added the tag. + */ + @visibility(Lifecycle.Read) + tenantId?: string; + + /** + * Returns the User Principal Name of the user who added the tag. + */ + @visibility(Lifecycle.Read) + upn?: string; +} + +/** + * Protected append writes history setting for the blob container with Legal holds. + */ +model ProtectedAppendWritesHistory { + /** + * When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining legal hold protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. + */ + allowProtectedAppendWritesAll?: boolean; + + /** + * Returns the date and time the tag was added. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + timestamp?: utcDateTime; +} + +/** + * Object level immutability properties of the container. + */ +model ImmutableStorageWithVersioning { + /** + * This is an immutable property, when set to true it enables object level immutability at the container level. + */ + enabled?: boolean; + + /** + * Returns the date and time the object level immutability was enabled. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + timeStamp?: utcDateTime; + + /** + * This property denotes the container level immutability to object level immutability migration state. + */ + @visibility(Lifecycle.Read) + migrationState?: MigrationState; +} + +@minLength(3) +@maxLength(23) +scalar LimitedString extends string; + +/** + * The LegalHold property of a blob container. + */ +model LegalHold { + /** + * The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account. + */ + @visibility(Lifecycle.Read) + hasLegalHold?: boolean; + + /** + * Each tag should be 3 to 23 alphanumeric characters and is normalized to lower case at SRP. + */ + tags: LimitedString[]; + + /** + * When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining legal hold protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. + */ + allowProtectedAppendWritesAll?: boolean; +} + +/** + * Lease Container request schema. + */ +model LeaseContainerRequest { + /** + * Specifies the lease action. Can be one of the available actions. + */ + action: LeaseContainerRequestAction; + + /** + * Identifies the lease. Can be specified in any valid GUID string format. + */ + leaseId?: string; + + /** + * Optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60. + */ + breakPeriod?: int32; + + /** + * Required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. + */ + leaseDuration?: int32; + + /** + * Optional for acquire, required for change. Proposed lease ID, in a GUID string format. + */ + proposedLeaseId?: string; +} + +/** + * Lease Container response schema. + */ +model LeaseContainerResponse { + /** + * Returned unique lease ID that must be included with any request to delete the container, or to renew, change, or release the lease. + */ + leaseId?: string; + + /** + * Approximate time remaining in the lease period, in seconds. + */ + leaseTimeSeconds?: string; +} + +/** + * An error response from the Storage service. + */ +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@error +@Azure.ResourceManager.Legacy.armExternalType +model CloudError { + /** + * An error response from the Storage service. + */ + error?: CloudErrorBody; +} + +/** + * An error response from the Storage service. + */ +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@Azure.ResourceManager.Legacy.armExternalType +model CloudErrorBody { + /** + * An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + */ + code?: string; + + /** + * A message describing the error, intended to be suitable for display in a user interface. + */ + message?: string; + + /** + * The target of the particular error. For example, the name of the property in error. + */ + target?: string; + + /** + * A list of additional details about the error. + */ + @identifiers(#[]) + details?: CloudErrorBody[]; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model FileServiceItems { + /** + * List of file services returned. + */ + @pageItems + @visibility(Lifecycle.Read) + value?: FileServiceProperties[]; +} + +/** + * The properties of File services in storage account. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model FileServicePropertiesProperties { + /** + * Specifies CORS rules for the File service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the File service. + */ + cors?: CorsRules; + + /** + * The file service properties for share soft delete. + */ + shareDeleteRetentionPolicy?: DeleteRetentionPolicy; + + /** + * Protocol settings for file service + */ + protocolSettings?: ProtocolSettings; +} + +/** + * Protocol settings for file service + */ +model ProtocolSettings { + /** + * Setting for SMB protocol + */ + smb?: SmbSetting; + + /** + * Setting for NFS protocol + */ + nfs?: NfsSetting; +} + +/** + * Setting for SMB protocol + */ +model SmbSetting { + /** + * Multichannel setting. Applies to Premium FileStorage only. + */ + multichannel?: Multichannel; + + /** + * SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'. + */ + versions?: string; + + /** + * SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'. + */ + authenticationMethods?: string; + + /** + * Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';' + */ + kerberosTicketEncryption?: string; + + /** + * SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'. + */ + channelEncryption?: string; + + /** + * Encryption in transit setting. + */ + encryptionInTransit?: EncryptionInTransit; +} + +/** + * Multichannel setting. Applies to Premium FileStorage only. + */ +model Multichannel { + /** + * Indicates whether multichannel is enabled + */ + enabled?: boolean; +} + +/** + * Encryption in transit setting. + */ +model EncryptionInTransit { + /** + * Indicates whether encryption in transit is required + */ + required?: boolean; +} + +/** + * Setting for NFS protocol + */ +model NfsSetting { + /** + * Encryption in transit setting. + */ + encryptionInTransit?: EncryptionInTransit; +} + +/** + * List file service usages schema. + */ +model FileServiceUsages is Azure.Core.Page; + +/** + * File service usage in storage account including account limits, file share limits and constants used in recommendations and bursting formula. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model FileServiceUsageProperties { + /** + * Maximum provisioned storage, IOPS, bandwidth and number of file shares limits for the storage account. + */ + @visibility(Lifecycle.Read) + storageAccountLimits?: AccountLimits; + + /** + * Minimum and maximum provisioned storage, IOPS and bandwidth limits for a file share in the storage account. + */ + @visibility(Lifecycle.Read) + fileShareLimits?: FileShareLimits; + + /** + * Constants used for calculating recommended provisioned IOPS and bandwidth for a file share in the storage account. + */ + @visibility(Lifecycle.Read) + fileShareRecommendations?: FileShareRecommendations; + + /** + * Constants used for calculating included burst IOPS and maximum burst credits for IOPS for a file share in the storage account. + */ + @visibility(Lifecycle.Read) + burstingConstants?: BurstingConstants; + + /** + * Usage of provisioned storage, IOPS, bandwidth and number of file shares across all live shares and soft-deleted shares in the account. + */ + @visibility(Lifecycle.Read) + storageAccountUsage?: AccountUsage; +} + +/** + * Maximum provisioned storage, IOPS, bandwidth and number of file shares limits for the storage account. + */ +model AccountLimits { + /** + * The maximum number of file shares limit for the storage account. + */ + @visibility(Lifecycle.Read) + maxFileShares?: int32; + + /** + * The maximum provisioned storage quota limit in gibibytes for the storage account. + */ + @visibility(Lifecycle.Read) + maxProvisionedStorageGiB?: int32; + + /** + * The maximum provisioned IOPS limit for the storage account. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + maxProvisionedIOPS?: int32; + + /** + * The maximum provisioned bandwidth limit in mebibytes per second for the storage account. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + maxProvisionedBandwidthMiBPerSec?: int32; +} + +/** + * Minimum and maximum provisioned storage, IOPS and bandwidth limits for a file share in the storage account. + */ +model FileShareLimits { + /** + * The minimum provisioned storage quota limit in gibibytes for a file share in the storage account. + */ + @visibility(Lifecycle.Read) + minProvisionedStorageGiB?: int32; + + /** + * The maximum provisioned storage quota limit in gibibytes for a file share in the storage account. + */ + @visibility(Lifecycle.Read) + maxProvisionedStorageGiB?: int32; + + /** + * The minimum provisioned IOPS limit for a file share in the storage account. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + minProvisionedIOPS?: int32; + + /** + * The maximum provisioned IOPS limit for a file share in the storage account. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + maxProvisionedIOPS?: int32; + + /** + * The minimum provisioned bandwidth limit in mebibytes per second for a file share in the storage account. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + minProvisionedBandwidthMiBPerSec?: int32; + + /** + * The maximum provisioned bandwidth limit in mebibytes per second for a file share in the storage account. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + maxProvisionedBandwidthMiBPerSec?: int32; +} + +/** + * Constants used for calculating recommended provisioned IOPS and bandwidth for a file share in the storage account. + */ +model FileShareRecommendations { + /** + * The base IOPS in the file share provisioned IOPS recommendation formula. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + baseIOPS?: int32; + + /** + * The scalar for IO in the file share provisioned IOPS recommendation formula. + */ + @visibility(Lifecycle.Read) + ioScalar?: float64; + + /** + * The base bandwidth in the file share provisioned bandwidth recommendation formula. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + baseBandwidthMiBPerSec?: int32; + + /** + * The scalar for bandwidth in the file share provisioned bandwidth recommendation formula. + */ + @visibility(Lifecycle.Read) + bandwidthScalar?: float64; +} + +/** + * Constants used for calculating included burst IOPS and maximum burst credits for IOPS for a file share in the storage account. + */ +model BurstingConstants { + /** + * The guaranteed floor of burst IOPS for small file shares. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + burstFloorIOPS?: int32; + + /** + * The scalar against provisioned IOPS in the file share included burst IOPS formula. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + burstIOScalar?: float64; + + /** + * The time frame for bursting in seconds in the file share maximum burst credits for IOPS formula. + */ + @visibility(Lifecycle.Read) + burstTimeframeSeconds?: int32; +} + +/** + * Usage of provisioned storage, IOPS, bandwidth and number of file shares across all live shares and soft-deleted shares in the account. + */ +model AccountUsage { + /** + * Usage of provisioned storage, IOPS, bandwidth and number of file shares across all live shares or soft-deleted shares in the account. + */ + liveShares?: AccountUsageElements; + + /** + * Usage of provisioned storage, IOPS, bandwidth and number of file shares across all live shares or soft-deleted shares in the account. + */ + softDeletedShares?: AccountUsageElements; +} + +/** + * Usage of provisioned storage, IOPS, bandwidth and number of file shares across all live shares or soft-deleted shares in the account. + */ +model AccountUsageElements { + /** + * The total number of file shares. + */ + @visibility(Lifecycle.Read) + fileShareCount?: int32; + + /** + * The total provisioned storage quota in gibibytes. + */ + @visibility(Lifecycle.Read) + provisionedStorageGiB?: int32; + + /** + * The total provisioned IOPS. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + provisionedIOPS?: int32; + + /** + * The total provisioned bandwidth in mebibytes per second. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + provisionedBandwidthMiBPerSec?: int32; +} + +/** + * Response schema. Contains list of shares returned, and if paging is requested or required, a URL to next page of shares. + */ +model FileShareItems is Azure.Core.Page; + +/** + * The file share properties be listed out. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model FileShareItem extends AzureEntityResource { + /** + * The file share properties be listed out. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: FileShareProperties; +} + +/** + * The properties of the file share. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model FileShareProperties { + /** + * Returns the date and time the share was last modified. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastModifiedTime?: utcDateTime; + + /** + * A name-value pair to associate with the share as metadata. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + metadata?: Record; + + /** + * The provisioned size of the share, in gibibytes. Must be greater than 0, and less than or equal to 5TB (5120). For Large File Shares, the maximum size is 102400. For file shares created under Files Provisioned v2 account type, please refer to the GetFileServiceUsage API response for the minimum and maximum allowed provisioned storage size. + */ + shareQuota?: int32; + + /** + * The provisioned IOPS of the share. This property is only for file shares created under Files Provisioned v2 account type. Please refer to the GetFileServiceUsage API response for the minimum and maximum allowed value for provisioned IOPS. + */ + provisionedIops?: int32; + + /** + * The provisioned bandwidth of the share, in mebibytes per second. This property is only for file shares created under Files Provisioned v2 account type. Please refer to the GetFileServiceUsage API response for the minimum and maximum allowed value for provisioned bandwidth. + */ + provisionedBandwidthMibps?: int32; + + /** + * The calculated burst IOPS of the share. This property is only for file shares created under Files Provisioned v2 account type. + */ + @visibility(Lifecycle.Read) + includedBurstIops?: int32; + + /** + * The calculated maximum burst credits for the share. This property is only for file shares created under Files Provisioned v2 account type. + */ + @visibility(Lifecycle.Read) + maxBurstCreditsForIops?: int64; + + /** + * Returns the next allowed provisioned storage size downgrade time for the share. This property is only for file shares created under Files Provisioned v1 SSD and Files Provisioned v2 account type + */ + @visibility(Lifecycle.Read) + @encode(DateTimeKnownEncoding.rfc7231) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + nextAllowedQuotaDowngradeTime?: utcDateTime; + + /** + * Returns the next allowed provisioned IOPS downgrade time for the share. This property is only for file shares created under Files Provisioned v2 account type. + */ + @visibility(Lifecycle.Read) + @encode(DateTimeKnownEncoding.rfc7231) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + nextAllowedProvisionedIopsDowngradeTime?: utcDateTime; + + /** + * Returns the next allowed provisioned bandwidth downgrade time for the share. This property is only for file shares created under Files Provisioned v2 account type. + */ + @visibility(Lifecycle.Read) + @encode(DateTimeKnownEncoding.rfc7231) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + nextAllowedProvisionedBandwidthDowngradeTime?: utcDateTime; + + /** + * The authentication protocol that is used for the file share. Can only be specified when creating a share. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + enabledProtocols?: EnabledProtocols; + + /** + * The property is for NFS share only. The default is NoRootSquash. + */ + rootSquash?: RootSquashType; + + /** + * The version of the share. + */ + @visibility(Lifecycle.Read) + version?: string; + + /** + * Indicates whether the share was deleted. + */ + @visibility(Lifecycle.Read) + deleted?: boolean; + + /** + * The deleted time if the share was deleted. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + deletedTime?: utcDateTime; + + /** + * Remaining retention days for share that was soft deleted. + */ + @visibility(Lifecycle.Read) + remainingRetentionDays?: int32; + + /** + * Access tier for specific share. GpV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium. + */ + accessTier?: ShareAccessTier; + + /** + * Indicates the last modification time for share access tier. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + accessTierChangeTime?: utcDateTime; + + /** + * Indicates if there is a pending transition for access tier. + */ + @visibility(Lifecycle.Read) + accessTierStatus?: string; + + /** + * The approximate size of the data stored on the share. Note that this value may not include all recently created or recently resized files. + */ + @visibility(Lifecycle.Read) + shareUsageBytes?: int64; + + /** + * The lease status of the share. + */ + @visibility(Lifecycle.Read) + leaseStatus?: LeaseStatus; + + /** + * Lease state of the share. + */ + @visibility(Lifecycle.Read) + leaseState?: LeaseState; + + /** + * Specifies whether the lease on a share is of infinite or fixed duration, only when the share is leased. + */ + @visibility(Lifecycle.Read) + leaseDuration?: LeaseDuration; + + /** + * List of stored access policies specified on the share. + */ + signedIdentifiers?: SignedIdentifier[]; + + /** + * Creation time of share snapshot returned in the response of list shares with expand param "snapshots". + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + snapshotTime?: utcDateTime; + + /** + * File Share Paid Bursting properties. + */ + fileSharePaidBursting?: FileSharePropertiesFileSharePaidBursting; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model SignedIdentifier { + /** + * An unique identifier of the stored access policy. + */ + id?: string; + + /** + * Access policy + */ + accessPolicy?: AccessPolicy; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AccessPolicy { + /** + * Start time of the access policy + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + startTime?: utcDateTime; + + /** + * Expiry time of the access policy + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + expiryTime?: utcDateTime; + + /** + * List of abbreviated permissions. + */ + permission?: string; +} + +/** + * File Share Paid Bursting properties. + */ +model FileSharePropertiesFileSharePaidBursting { + /** + * Indicates whether paid bursting is enabled for the share. This property is only for file shares created under Files Provisioned v1 SSD account type. + */ + paidBurstingEnabled?: boolean; + + /** + * The maximum paid bursting IOPS for the share. This property is only for file shares created under Files Provisioned v1 SSD account type. The maximum allowed value is 102400 which is the maximum allowed IOPS for a share. + */ + paidBurstingMaxIops?: int32; + + /** + * The maximum paid bursting bandwidth for the share, in mebibytes per second. This property is only for file shares created under Files Provisioned v1 SSD account type. The maximum allowed value is 10340 which is the maximum allowed bandwidth for a share. + */ + paidBurstingMaxBandwidthMibps?: int32; +} + +/** + * The deleted share to be restored. + */ +model DeletedShare { + /** + * Required. Identify the name of the deleted share that will be restored. + */ + deletedShareName: string; + + /** + * Required. Identify the version of the deleted share that will be restored. + */ + deletedShareVersion: string; +} + +/** + * Lease Share request schema. + */ +model LeaseShareRequest { + /** + * Specifies the lease action. Can be one of the available actions. + */ + action: LeaseShareAction; + + /** + * Identifies the lease. Can be specified in any valid GUID string format. + */ + leaseId?: string; + + /** + * Optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60. + */ + breakPeriod?: int32; + + /** + * Required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. + */ + leaseDuration?: int32; + + /** + * Optional for acquire, required for change. Proposed lease ID, in a GUID string format. + */ + proposedLeaseId?: string; +} + +/** + * Lease Share response schema. + */ +model LeaseShareResponse { + /** + * Returned unique lease ID that must be included with any request to delete the share, or to renew, change, or release the lease. + */ + leaseId?: string; + + /** + * Approximate time remaining in the lease period, in seconds. + */ + leaseTimeSeconds?: string; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ListQueueServices { + /** + * List of queue services returned. + */ + @visibility(Lifecycle.Read) + @pageItems + value?: QueueServiceProperties[]; +} + +/** + * The properties of a storage account’s Queue service. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model QueueServicePropertiesProperties { + /** + * Specifies CORS rules for the Queue service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Queue service. + */ + cors?: CorsRules; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model QueueProperties { + /** + * A name-value pair that represents queue metadata. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + metadata?: Record; + + /** + * Integer indicating an approximate number of messages in the queue. This number is not lower than the actual number of messages in the queue, but could be higher. + */ + @visibility(Lifecycle.Read) + approximateMessageCount?: int32; +} + +/** + * Response schema. Contains list of queues returned + */ +model ListQueueResource is Azure.Core.Page; + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ListQueue extends Azure.ResourceManager.CommonTypes.Resource { + /** + * List Queue resource properties. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: ListQueueProperties; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ListQueueProperties { + /** + * A name-value pair that represents queue metadata. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + metadata?: Record; +} + +/** + * The list of available operations. + */ +model OperationListResult { + /** + * List of operations supported by the resource provider. + */ + @pageItems + value?: Operation[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "" + @nextLink + nextLink?: string; +} + +/** + * Storage REST API operation definition. + */ +model Operation { + /** + * Operation name: {provider}/{resource}/{operation} + */ + name?: string; + + /** + * Display metadata associated with the operation. + */ + display?: OperationDisplay; + + /** + * The origin of operations. + */ + origin?: string; + + /** + * Properties of operation, include metric specifications. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: OperationProperties; +} + +/** + * Display metadata associated with the operation. + */ +model OperationDisplay { + /** + * Service provider: Microsoft Storage. + */ + provider?: string; + + /** + * Resource on which the operation is performed etc. + */ + resource?: string; + + /** + * Type of operation: get, read, delete, etc. + */ + operation?: string; + + /** + * Description of the operation. + */ + description?: string; +} + +/** + * Properties of operation, include metric specifications. + */ +model OperationProperties { + /** + * One property of operation, include metric specifications. + */ + serviceSpecification?: ServiceSpecification; +} + +/** + * One property of operation, include metric specifications. + */ +model ServiceSpecification { + /** + * Metric specifications of operation. + */ + metricSpecifications?: MetricSpecification[]; +} + +/** + * Metric specification of operation. + */ +model MetricSpecification { + /** + * Name of metric specification. + */ + name?: string; + + /** + * Display name of metric specification. + */ + displayName?: string; + + /** + * Display description of metric specification. + */ + displayDescription?: string; + + /** + * Unit could be Bytes or Count. + */ + unit?: string; + + /** + * Dimensions of blobs, including blob type and access tier. + */ + dimensions?: Dimension[]; + + /** + * Aggregation type could be Average. + */ + aggregationType?: string; + + /** + * The property to decide fill gap with zero or not. + */ + fillGapWithZero?: boolean; + + /** + * The category this metric specification belong to, could be Capacity. + */ + category?: string; + + /** + * Account Resource Id. + */ + resourceIdDimensionNameOverride?: string; +} + +/** + * Dimension of blobs, possibly be blob type or access tier. + */ +model Dimension { + /** + * Display name of dimension. + */ + name?: string; + + /** + * Display name of dimension. + */ + displayName?: string; +} + +/** + * The response from the List Storage SKUs operation. + */ +model StorageSkuListResult { + /** + * Get the list result of storage SKUs and their properties. + */ + @visibility(Lifecycle.Read) + @pageItems + value?: SkuInformation[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @nextLink + nextLink?: string; +} + +/** + * Storage SKU and its properties + */ +model SkuInformation { + /** + * The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType. + */ + name: SkuName; + + /** + * The SKU tier. This is based on the SKU name. + */ + @visibility(Lifecycle.Read) + tier?: SkuTier; + + /** + * The type of the resource, usually it is 'storageAccounts'. + */ + @visibility(Lifecycle.Read) + resourceType?: string; + + /** + * Indicates the type of storage account. + */ + @visibility(Lifecycle.Read) + kind?: Kind; + + /** + * The set of locations that the SKU is available. This will be supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.). + */ + @visibility(Lifecycle.Read) + locations?: string[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @identifiers(#[]) + locationInfo?: SkuInformationLocationInfoItem[]; + + /** + * The capability information in the specified SKU, including file encryption, network ACLs, change notification, etc. + */ + @visibility(Lifecycle.Read) + capabilities?: SKUCapability[]; + + /** + * The restrictions because of which SKU cannot be used. This is empty if there are no restrictions. + */ + @identifiers(#[]) + restrictions?: Restriction[]; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model SkuInformationLocationInfoItem { + /** + * Describes the location for the product where storage account resource can be created. + */ + @visibility(Lifecycle.Read) + location?: string; + + /** + * Describes the available zones for the product where storage account resource can be created. + */ + @visibility(Lifecycle.Read) + zones?: string[]; +} + +/** + * The capability information in the specified SKU, including file encryption, network ACLs, change notification, etc. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model SKUCapability { + /** + * The name of capability, The capability information in the specified SKU, including file encryption, network ACLs, change notification, etc. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * A string value to indicate states of given capability. Possibly 'true' or 'false'. + */ + @visibility(Lifecycle.Read) + value?: string; +} + +/** + * The restriction because of which SKU cannot be used. + */ +model Restriction { + /** + * The type of restrictions. As of now only possible value for this is location. + */ + @visibility(Lifecycle.Read) + type?: string; + + /** + * The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted. + */ + @visibility(Lifecycle.Read) + values?: string[]; + + /** + * The reason for the restriction. As of now this can be "QuotaId" or "NotAvailableForSubscription". Quota Id is set when the SKU has requiredQuotas parameter as the subscription does not belong to that quota. The "NotAvailableForSubscription" is related to capacity at DC. + */ + reasonCode?: ReasonCode; +} + +/** + * The parameters used to check the availability of the storage account name. + */ +model StorageAccountCheckNameAvailabilityParameters { + /** + * The storage account name. + */ + name: string; + + /** + * The type of resource, Microsoft.Storage/storageAccounts + */ + type: "Microsoft.Storage/storageAccounts"; +} + +/** + * The CheckNameAvailability operation response. + */ +model CheckNameAvailabilityResult { + /** + * Gets a boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or is invalid and cannot be used. + */ + @visibility(Lifecycle.Read) + nameAvailable?: boolean; + + /** + * Gets the reason that a storage account name could not be used. The Reason element is only returned if NameAvailable is false. + */ + @visibility(Lifecycle.Read) + reason?: Reason; + + /** + * Gets an error message explaining the Reason value in more detail. + */ + @visibility(Lifecycle.Read) + message?: string; +} + +/** + * The parameters used when creating a storage account. + */ +model StorageAccountCreateParameters { + /** + * Required. Gets or sets the SKU name. + */ + sku: Sku; + + /** + * Required. Indicates the type of storage account. + */ + kind: Kind; + + /** + * Required. Gets or sets the location of the resource. This will be one of the supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.). The geo region of a resource cannot be changed once it is created, but if an identical geo region is specified on update, the request will succeed. + */ + location: string; + + /** + * Optional. Set the extended location of the resource. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location + */ + extendedLocation?: ExtendedLocation; + + /** + * Optional. Gets or sets the pinned logical availability zone for the storage account. + */ + zones?: string[]; + + /** + * Optional. Gets or sets the zonal placement details for the storage account. + */ + placement?: Placement; + + /** + * Gets or sets a list of key value pairs that describe the resource. These tags can be used for viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key with a length no greater than 128 characters and a value with a length no greater than 256 characters. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record; + + /** + * The identity of the resource. + */ + identity?: Identity; + + /** + * The parameters used to create the storage account. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: StorageAccountPropertiesCreateParameters; +} + +/** + * The complex type of the extended location. + */ +model ExtendedLocation { + /** + * The name of the extended location. + */ + name?: string; + + /** + * The type of the extended location. + */ + type?: ExtendedLocationTypes; +} + +/** + * The complex type of the zonal placement details. + */ +model Placement { + /** + * The availability zone pinning policy for the storage account. + */ + zonePlacementPolicy?: ZonePlacementPolicy; +} + +/** + * Identity for the resource. + */ +model Identity { + /** + * The principal ID of resource identity. + */ + @visibility(Lifecycle.Read) + principalId?: string; + + /** + * The tenant ID of resource. + */ + @visibility(Lifecycle.Read) + tenantId?: string; + + /** + * The identity type. + */ + type: IdentityType; + + /** + * Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + userAssignedIdentities?: Record; +} + +/** + * UserAssignedIdentity for the resource. + */ +model UserAssignedIdentity { + /** + * The principal ID of the identity. + */ + @visibility(Lifecycle.Read) + principalId?: string; + + /** + * The client ID of the identity. + */ + @visibility(Lifecycle.Read) + clientId?: string; +} + +/** + * The parameters used to create the storage account. + */ +model StorageAccountPropertiesCreateParameters { + /** + * Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet. + */ + allowedCopyScope?: AllowedCopyScope; + + /** + * Allow, disallow, or let Network Security Perimeter configuration to evaluate public network access to Storage Account. Value is optional but if passed in, must be 'Enabled', 'Disabled' or 'SecuredByPerimeter'. + */ + publicNetworkAccess?: PublicNetworkAccess; + + /** + * SasPolicy assigned to the storage account. + */ + sasPolicy?: SasPolicy; + + /** + * KeyPolicy assigned to the storage account. + */ + keyPolicy?: KeyPolicy; + + /** + * User domain assigned to the storage account. Name is the CNAME source. Only one custom domain is supported per storage account at this time. To clear the existing custom domain, use an empty string for the custom domain name property. + */ + customDomain?: CustomDomain; + + /** + * Encryption settings to be used for server-side encryption for the storage account. + */ + encryption?: Encryption; + + /** + * Network rule set + */ + networkAcls?: NetworkRuleSet; + + /** + * Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type. + */ + accessTier?: AccessTier; + + /** + * Provides the identity based authentication settings for Azure Files. + */ + azureFilesIdentityBasedAuthentication?: AzureFilesIdentityBasedAuthentication; + + /** + * Allows https traffic only to storage service if sets to true. The default value is true since API version 2019-04-01. + */ + supportsHttpsTrafficOnly?: boolean; + + /** + * Enables Secure File Transfer Protocol, if set to true + */ + isSftpEnabled?: boolean; + + /** + * Enables local users feature, if set to true + */ + isLocalUserEnabled?: boolean; + + /** + * Enables extended group support with local users feature, if set to true + */ + enableExtendedGroups?: boolean; + + /** + * Account HierarchicalNamespace enabled if sets to true. + */ + isHnsEnabled?: boolean; + + /** + * Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled. + */ + largeFileSharesState?: LargeFileSharesState; + + /** + * Maintains information about the network routing choice opted by the user for data transfer + */ + routingPreference?: RoutingPreference; + + /** + * Maintains information about the Internet protocol opted by the user. + */ + dualStackEndpointPreference?: DualStackEndpointPreference; + + /** + * Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is false for this property. + */ + allowBlobPublicAccess?: boolean; + + /** + * Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property. + */ + minimumTlsVersion?: MinimumTlsVersion; + + /** + * Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true. + */ + allowSharedKeyAccess?: boolean; + + /** + * NFS 3.0 protocol support enabled if set to true. + */ + isNfsV3Enabled?: boolean; + + /** + * Allow or disallow cross AAD tenant object replication. Set this property to true for new or existing accounts only if object replication policies will involve storage accounts in different AAD tenants. The default interpretation is false for new accounts to follow best security practices by default. + */ + allowCrossTenantReplication?: boolean; + + /** + * A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + defaultToOAuthAuthentication?: boolean; + + /** + * The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the new containers in the account by default. + */ + immutableStorageWithVersioning?: ImmutableStorageAccount; + + /** + * Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. + */ + dnsEndpointType?: DnsEndpointType; + + /** + * Status indicating whether Geo Priority Replication is enabled for the account. + */ + geoPriorityReplicationStatus?: GeoPriorityReplicationStatus; +} + +/** + * SasPolicy assigned to the storage account. + */ +model SasPolicy { + /** + * The SAS expiration period, DD.HH:MM:SS. + */ + sasExpirationPeriod: string; + + /** + * The SAS Expiration Action defines the action to be performed when sasPolicy.sasExpirationPeriod is violated. The 'Log' action can be used for audit purposes and the 'Block' action can be used to block and deny the usage of SAS tokens that do not adhere to the sas policy expiration period. + */ + expirationAction: ExpirationAction = ExpirationAction.Log; +} + +/** + * KeyPolicy assigned to the storage account. + */ +model KeyPolicy { + /** + * The key expiration period in days. + */ + keyExpirationPeriodInDays: int32; +} + +/** + * The custom domain assigned to this storage account. This can be set via Update. + */ +model CustomDomain { + /** + * Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source. + */ + name: string; + + /** + * Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates. + */ + useSubDomainName?: boolean; +} + +/** + * The encryption settings on the storage account. + */ +model Encryption { + /** + * List of services which support encryption. + */ + services?: EncryptionServices; + + /** + * The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault + */ + keySource?: KeySource = KeySource.`Microsoft.Storage`; + + /** + * A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. + */ + requireInfrastructureEncryption?: boolean; + + /** + * Properties provided by key vault. + */ + keyvaultproperties?: KeyVaultProperties; + + /** + * The identity to be used with service-side encryption at rest. + */ + identity?: EncryptionIdentity; +} + +/** + * A list of services that support encryption. + */ +model EncryptionServices { + /** + * The encryption function of the blob storage service. + */ + blob?: EncryptionService; + + /** + * The encryption function of the file storage service. + */ + file?: EncryptionService; + + /** + * The encryption function of the table storage service. + */ + table?: EncryptionService; + + /** + * The encryption function of the queue storage service. + */ + queue?: EncryptionService; +} + +/** + * A service that allows server-side encryption to be used. + */ +model EncryptionService { + /** + * A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled. + */ + enabled?: boolean; + + /** + * Gets a rough estimate of the date/time when the encryption was last enabled by the user. Data is encrypted at rest by default today and cannot be disabled. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastEnabledTime?: utcDateTime; + + /** + * Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + keyType?: KeyType; +} + +/** + * Properties of key vault. + */ +model KeyVaultProperties { + /** + * The name of KeyVault key. + */ + keyname?: string; + + /** + * The version of KeyVault key. + */ + keyversion?: string; + + /** + * The Uri of KeyVault. + */ + keyvaulturi?: string; + + /** + * The object identifier of the current versioned Key Vault Key in use. + */ + @visibility(Lifecycle.Read) + currentVersionedKeyIdentifier?: string; + + /** + * Timestamp of last rotation of the Key Vault Key. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastKeyRotationTimestamp?: utcDateTime; + + /** + * This is a read only property that represents the expiration time of the current version of the customer managed key used for encryption. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + currentVersionedKeyExpirationTimestamp?: utcDateTime; +} + +/** + * Encryption identity for the storage account. + */ +model EncryptionIdentity { + /** + * Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account. + */ + userAssignedIdentity?: string; + + /** + * ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account. + */ + federatedIdentityClientId?: string; +} + +/** + * Network rule set + */ +model NetworkRuleSet { + /** + * Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, "Logging, Metrics"), or None to bypass none of those traffics. + */ + bypass?: Bypass = Bypass.AzureServices; + + /** + * Sets the resource access rules + */ + @identifiers(#[]) + resourceAccessRules?: ResourceAccessRule[]; + + /** + * Sets the virtual network rules + */ + virtualNetworkRules?: VirtualNetworkRule[]; + + /** + * Sets the IP ACL rules + */ + @identifiers(#[]) + ipRules?: IPRule[]; + + /** + * Sets the IPv6 ACL rules. + */ + @identifiers(#[]) + ipv6Rules?: IPRule[]; + + /** + * Specifies the default action of allow or deny when no other rules match. + */ + defaultAction: DefaultAction = DefaultAction.Allow; +} + +/** + * Resource Access Rule. + */ +model ResourceAccessRule { + /** + * Tenant Id + */ + tenantId?: string; + + /** + * Resource Id + */ + resourceId?: string; +} + +/** + * Virtual Network rule. + */ +model VirtualNetworkRule { + /** + * Resource ID of a subnet, for example: /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}. + */ + id: string; + + /** + * The action of virtual network rule. + */ + action?: "Allow"; + + /** + * Gets the state of virtual network rule. + */ + state?: State; +} + +/** + * IP rule with specific IP or IP range in CIDR format. + */ +model IPRule { + /** + * Specifies the IP or IP range in CIDR format. + */ + value: string; + + /** + * The action of IP ACL rule. + */ + action?: "Allow"; +} + +/** + * Settings for Azure Files identity based authentication. + */ +model AzureFilesIdentityBasedAuthentication { + /** + * Indicates the directory service used. Note that this enum may be extended in the future. + */ + directoryServiceOptions: DirectoryServiceOptions; + + /** + * Additional information about the directory service. Required if directoryServiceOptions is AD (AD DS authentication). Optional for directoryServiceOptions AADDS (Entra DS authentication) and AADKERB (Entra authentication). + */ + activeDirectoryProperties?: ActiveDirectoryProperties; + + /** + * Default share permission for users using Kerberos authentication if RBAC role is not assigned. + */ + defaultSharePermission?: DefaultSharePermission; + + /** + * Required for Managed Identities access using OAuth over SMB. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + smbOAuthSettings?: SmbOAuthSettings; +} + +/** + * Settings properties for Active Directory (AD). + */ +model ActiveDirectoryProperties { + /** + * Specifies the primary domain that the AD DNS server is authoritative for. This property is required if directoryServiceOptions is set to AD (AD DS authentication). If directoryServiceOptions is set to AADDS (Entra DS authentication), providing this property is optional, as it will be inferred automatically if omitted. If directoryServiceOptions is set to AADKERB (Entra authentication), this property is optional; it is needed to support configuration of directory- and file-level permissions via Windows File Explorer, but is not required for authentication. + */ + domainName?: string; + + /** + * Specifies the NetBIOS domain name. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. Otherwise, it can be omitted. + */ + netBiosDomainName?: string; + + /** + * Specifies the Active Directory forest to get. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. Otherwise, it can be omitted. + */ + forestName?: string; + + /** + * Specifies the domain GUID. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. If directoryServiceOptions is set to AADDS (Entra DS authentication), this property can be omitted. If directoryServiceOptions is set to AADKERB (Entra authentication), this property is optional; it is needed to support configuration of directory- and file-level permissions via Windows File Explorer, but is not required for authentication. + */ + domainGuid?: string; + + /** + * Specifies the security identifier (SID) of the AD domain. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. Otherwise, it can be omitted. + */ + domainSid?: string; + + /** + * Specifies the security identifier (SID) for Azure Storage. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. Otherwise, it can be omitted. + */ + azureStorageSid?: string; + + /** + * Specifies the Active Directory SAMAccountName for Azure Storage. If directoryServiceOptions is set to AD (AD DS authentication), this property is optional. If provided, accountType should also be provided. For directoryServiceOptions AADDS (Entra DS authentication) or AADKERB (Entra authentication), this property can be omitted. + */ + samAccountName?: string; + + /** + * Specifies the Active Directory account type for Azure Storage. If directoryServiceOptions is set to AD (AD DS authentication), this property is optional. If provided, samAccountName should also be provided. For directoryServiceOptions AADDS (Entra DS authentication) or AADKERB (Entra authentication), this property can be omitted. + */ + accountType?: AccountType; +} + +/** + * Setting property for Managed Identity access over SMB using OAuth + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model SmbOAuthSettings { + /** + * Specifies if managed identities can access SMB shares using OAuth. The default interpretation is false for this property. + */ + isSmbOAuthEnabled?: boolean; +} + +/** + * Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user data, the default option is microsoft routing + */ +model RoutingPreference { + /** + * Routing Choice defines the kind of network routing opted by the user. + */ + routingChoice?: RoutingChoice; + + /** + * A boolean flag which indicates whether microsoft routing storage endpoints are to be published + */ + publishMicrosoftEndpoints?: boolean; + + /** + * A boolean flag which indicates whether internet routing storage endpoints are to be published + */ + publishInternetEndpoints?: boolean; +} + +/** + * Dual-stack endpoint preference defines whether IPv6 endpoints are going to be published. + */ +model DualStackEndpointPreference { + /** + * A boolean flag which indicates whether IPv6 storage endpoints are to be published. + */ + publishIpv6Endpoint?: boolean; +} + +/** + * This property enables and defines account-level immutability. Enabling the feature auto-enables Blob Versioning. + */ +model ImmutableStorageAccount { + /** + * A boolean flag which enables account-level immutability. All the containers under such an account have object-level immutability enabled by default. + */ + enabled?: boolean; + + /** + * Specifies the default account-level immutability policy which is inherited and applied to objects that do not possess an explicit immutability policy at the object level. The object-level immutability policy has higher precedence than the container-level immutability policy, which has a higher precedence than the account-level immutability policy. + */ + immutabilityPolicy?: AccountImmutabilityPolicyProperties; +} + +/** + * This defines account-level immutability policy properties. + */ +model AccountImmutabilityPolicyProperties { + /** + * The immutability period for the blobs in the container since the policy creation, in days. + */ + @maxValue(146000) + @minValue(1) + immutabilityPeriodSinceCreationInDays?: int32; + + /** + * The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted. + */ + state?: AccountImmutabilityPolicyState; + + /** + * This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. + */ + allowProtectedAppendWrites?: boolean; +} + +/** + * Properties of the storage account. + */ +model StorageAccountProperties { + /** + * Gets the status of the storage account at the time the operation was called. + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Gets the URLs that are used to perform a retrieval of a public blob, queue, or table object. Note that Standard_ZRS and Premium_LRS accounts only return the blob endpoint. + */ + @visibility(Lifecycle.Read) + primaryEndpoints?: Endpoints; + + /** + * Gets the location of the primary data center for the storage account. + */ + @visibility(Lifecycle.Read) + primaryLocation?: string; + + /** + * Gets the status indicating whether the primary location of the storage account is available or unavailable. + */ + @visibility(Lifecycle.Read) + statusOfPrimary?: AccountStatus; + + /** + * Gets the timestamp of the most recent instance of a failover to the secondary location. Only the most recent timestamp is retained. This element is not returned if there has never been a failover instance. Only available if the accountType is Standard_GRS or Standard_RAGRS. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastGeoFailoverTime?: utcDateTime; + + /** + * Gets the location of the geo-replicated secondary for the storage account. Only available if the accountType is Standard_GRS or Standard_RAGRS. + */ + @visibility(Lifecycle.Read) + secondaryLocation?: string; + + /** + * Gets the status indicating whether the secondary location of the storage account is available or unavailable. Only available if the SKU name is Standard_GRS or Standard_RAGRS. + */ + @visibility(Lifecycle.Read) + statusOfSecondary?: AccountStatus; + + /** + * Gets the creation date and time of the storage account in UTC. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + creationTime?: utcDateTime; + + /** + * Gets the custom domain the user assigned to this storage account. + */ + @visibility(Lifecycle.Read) + customDomain?: CustomDomain; + + /** + * SasPolicy assigned to the storage account. + */ + @visibility(Lifecycle.Read) + sasPolicy?: SasPolicy; + + /** + * KeyPolicy assigned to the storage account. + */ + @visibility(Lifecycle.Read) + keyPolicy?: KeyPolicy; + + /** + * Storage account keys creation time. + */ + @visibility(Lifecycle.Read) + keyCreationTime?: KeyCreationTime; + + /** + * Gets the URLs that are used to perform a retrieval of a public blob, queue, or table object from the secondary location of the storage account. Only available if the SKU name is Standard_RAGRS. + */ + @visibility(Lifecycle.Read) + secondaryEndpoints?: Endpoints; + + /** + * Encryption settings to be used for server-side encryption for the storage account. + */ + @visibility(Lifecycle.Read) + encryption?: Encryption; + + /** + * Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type. + */ + @visibility(Lifecycle.Read) + accessTier?: AccessTier; + + /** + * Provides the identity based authentication settings for Azure Files. + */ + azureFilesIdentityBasedAuthentication?: AzureFilesIdentityBasedAuthentication; + + /** + * Allows https traffic only to storage service if sets to true. + */ + supportsHttpsTrafficOnly?: boolean; + + /** + * Network rule set + */ + @visibility(Lifecycle.Read) + networkAcls?: NetworkRuleSet; + + /** + * Enables Secure File Transfer Protocol, if set to true + */ + isSftpEnabled?: boolean; + + /** + * Enables local users feature, if set to true + */ + isLocalUserEnabled?: boolean; + + /** + * Enables extended group support with local users feature, if set to true + */ + enableExtendedGroups?: boolean; + + /** + * Account HierarchicalNamespace enabled if sets to true. + */ + isHnsEnabled?: boolean; + + /** + * Geo Replication Stats + */ + @visibility(Lifecycle.Read) + geoReplicationStats?: GeoReplicationStats; + + /** + * If the failover is in progress, the value will be true, otherwise, it will be null. + */ + @visibility(Lifecycle.Read) + failoverInProgress?: boolean; + + /** + * Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled. + */ + largeFileSharesState?: LargeFileSharesState; + + /** + * List of private endpoint connection associated with the specified storage account + */ + @visibility(Lifecycle.Read) + privateEndpointConnections?: PrivateEndpointConnection[]; + + /** + * Maintains information about the network routing choice opted by the user for data transfer + */ + routingPreference?: RoutingPreference; + + /** + * Maintains information about the Internet protocol opted by the user. + */ + dualStackEndpointPreference?: DualStackEndpointPreference; + + /** + * Blob restore status + */ + @visibility(Lifecycle.Read) + blobRestoreStatus?: BlobRestoreStatus; + + /** + * Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is false for this property. + */ + allowBlobPublicAccess?: boolean; + + /** + * Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property. + */ + minimumTlsVersion?: MinimumTlsVersion; + + /** + * Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true. + */ + allowSharedKeyAccess?: boolean; + + /** + * NFS 3.0 protocol support enabled if set to true. + */ + isNfsV3Enabled?: boolean; + + /** + * Allow or disallow cross AAD tenant object replication. Set this property to true for new or existing accounts only if object replication policies will involve storage accounts in different AAD tenants. The default interpretation is false for new accounts to follow best security practices by default. + */ + allowCrossTenantReplication?: boolean; + + /** + * A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + defaultToOAuthAuthentication?: boolean; + + /** + * Allow, disallow, or let Network Security Perimeter configuration to evaluate public network access to Storage Account. + */ + publicNetworkAccess?: PublicNetworkAccess; + + /** + * The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the containers in the account by default. + */ + immutableStorageWithVersioning?: ImmutableStorageAccount; + + /** + * Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet. + */ + allowedCopyScope?: AllowedCopyScope; + + /** + * This property is readOnly and is set by server during asynchronous storage account sku conversion operations. + */ + storageAccountSkuConversionStatus?: StorageAccountSkuConversionStatus; + + /** + * Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. + */ + dnsEndpointType?: DnsEndpointType; + + /** + * This property will be set to true or false on an event of ongoing migration. Default value is null. + */ + @visibility(Lifecycle.Read) + isSkuConversionBlocked?: boolean; + + /** + * If customer initiated account migration is in progress, the value will be true else it will be null. + */ + @visibility(Lifecycle.Read) + accountMigrationInProgress?: boolean; + + /** + * Status indicating whether Geo Priority Replication is enabled for the account. + */ + geoPriorityReplicationStatus?: GeoPriorityReplicationStatus; +} + +/** + * The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object. + */ +model Endpoints { + /** + * Gets the blob endpoint. + */ + @visibility(Lifecycle.Read) + blob?: string; + + /** + * Gets the queue endpoint. + */ + @visibility(Lifecycle.Read) + queue?: string; + + /** + * Gets the table endpoint. + */ + @visibility(Lifecycle.Read) + table?: string; + + /** + * Gets the file endpoint. + */ + @visibility(Lifecycle.Read) + file?: string; + + /** + * Gets the web endpoint. + */ + @visibility(Lifecycle.Read) + web?: string; + + /** + * Gets the dfs endpoint. + */ + @visibility(Lifecycle.Read) + dfs?: string; + + /** + * Gets the microsoft routing storage endpoints. + */ + microsoftEndpoints?: StorageAccountMicrosoftEndpoints; + + /** + * Gets the internet routing storage endpoints + */ + internetEndpoints?: StorageAccountInternetEndpoints; + + /** + * Gets the IPv6 storage endpoints. + */ + ipv6Endpoints?: StorageAccountIpv6Endpoints; +} + +/** + * The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object via a microsoft routing endpoint. + */ +model StorageAccountMicrosoftEndpoints { + /** + * Gets the blob endpoint. + */ + @visibility(Lifecycle.Read) + blob?: string; + + /** + * Gets the queue endpoint. + */ + @visibility(Lifecycle.Read) + queue?: string; + + /** + * Gets the table endpoint. + */ + @visibility(Lifecycle.Read) + table?: string; + + /** + * Gets the file endpoint. + */ + @visibility(Lifecycle.Read) + file?: string; + + /** + * Gets the web endpoint. + */ + @visibility(Lifecycle.Read) + web?: string; + + /** + * Gets the dfs endpoint. + */ + @visibility(Lifecycle.Read) + dfs?: string; +} + +/** + * The URIs that are used to perform a retrieval of a public blob, file, web or dfs object via a internet routing endpoint. + */ +model StorageAccountInternetEndpoints { + /** + * Gets the blob endpoint. + */ + @visibility(Lifecycle.Read) + blob?: string; + + /** + * Gets the file endpoint. + */ + @visibility(Lifecycle.Read) + file?: string; + + /** + * Gets the web endpoint. + */ + @visibility(Lifecycle.Read) + web?: string; + + /** + * Gets the dfs endpoint. + */ + @visibility(Lifecycle.Read) + dfs?: string; +} + +/** + * The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object via an IPv6 endpoint. + */ +model StorageAccountIpv6Endpoints { + /** + * Gets the blob endpoint. + */ + @visibility(Lifecycle.Read) + blob?: string; + + /** + * Gets the queue endpoint. + */ + @visibility(Lifecycle.Read) + queue?: string; + + /** + * Gets the table endpoint. + */ + @visibility(Lifecycle.Read) + table?: string; + + /** + * Gets the file endpoint. + */ + @visibility(Lifecycle.Read) + file?: string; + + /** + * Gets the web endpoint. + */ + @visibility(Lifecycle.Read) + web?: string; + + /** + * Gets the dfs endpoint. + */ + @visibility(Lifecycle.Read) + dfs?: string; + + /** + * Gets the microsoft routing storage endpoints. + */ + microsoftEndpoints?: StorageAccountMicrosoftEndpoints; + + /** + * Gets the internet routing storage endpoints + */ + internetEndpoints?: StorageAccountInternetEndpoints; +} + +/** + * Storage account keys creation time. + */ +model KeyCreationTime { + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + key1?: utcDateTime; + + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + key2?: utcDateTime; +} + +/** + * Statistics related to replication for storage account's Blob, Table, Queue and File services. It is only available when geo-redundant replication is enabled for the storage account. + */ +model GeoReplicationStats { + /** + * The status of the secondary location. Possible values are: - Live: Indicates that the secondary location is active and operational. - Bootstrap: Indicates initial synchronization from the primary location to the secondary location is in progress.This typically occurs when replication is first enabled. - Unavailable: Indicates that the secondary location is temporarily unavailable. + */ + @visibility(Lifecycle.Read) + status?: GeoReplicationStatus; + + /** + * All primary writes preceding this UTC date/time value are guaranteed to be available for read operations. Primary writes following this point in time may or may not be available for reads. Element may be default value if value of LastSyncTime is not available, this can happen if secondary is offline or we are in bootstrap. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastSyncTime?: utcDateTime; + + /** + * A boolean flag which indicates whether or not account failover is supported for the account. + */ + @visibility(Lifecycle.Read) + canFailover?: boolean; + + /** + * A boolean flag which indicates whether or not planned account failover is supported for the account. + */ + @visibility(Lifecycle.Read) + canPlannedFailover?: boolean; + + /** + * The redundancy type of the account after an account failover is performed. + */ + @visibility(Lifecycle.Read) + postFailoverRedundancy?: PostFailoverRedundancy; + + /** + * The redundancy type of the account after a planned account failover is performed. + */ + @visibility(Lifecycle.Read) + postPlannedFailoverRedundancy?: PostPlannedFailoverRedundancy; +} + +/** + * Properties of the PrivateEndpointConnectProperties. + */ +model PrivateEndpointConnectionProperties { + /** + * The resource of private end point. + */ + privateEndpoint?: PrivateEndpoint; + + /** + * A collection of information about the state of the connection between service consumer and provider. + */ + privateLinkServiceConnectionState: PrivateLinkServiceConnectionState; + + /** + * The provisioning state of the private endpoint connection resource. + */ + @visibility(Lifecycle.Read) + provisioningState?: PrivateEndpointConnectionProvisioningState; +} + +/** + * The Private Endpoint resource. + */ +model PrivateEndpoint { + /** + * The ARM identifier for Private Endpoint + */ + @visibility(Lifecycle.Read) + id?: string; +} + +/** + * A collection of information about the state of the connection between service consumer and provider. + */ +model PrivateLinkServiceConnectionState { + /** + * Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + */ + status?: PrivateEndpointServiceConnectionStatus; + + /** + * The reason for approval/rejection of the connection. + */ + description?: string; + + /** + * A message indicating if changes on the service provider require any updates on the consumer. + */ + actionRequired?: string; +} + +/** + * Blob restore status. + */ +model BlobRestoreStatus { + /** + * The status of blob restore progress. Possible values are: - InProgress: Indicates that blob restore is ongoing. - Complete: Indicates that blob restore has been completed successfully. - Failed: Indicates that blob restore is failed. + */ + @visibility(Lifecycle.Read) + status?: BlobRestoreProgressStatus; + + /** + * Failure reason when blob restore is failed. + */ + @visibility(Lifecycle.Read) + failureReason?: string; + + /** + * Id for tracking blob restore request. + */ + @visibility(Lifecycle.Read) + restoreId?: string; + + /** + * Blob restore request parameters. + */ + @visibility(Lifecycle.Read) + parameters?: BlobRestoreParameters; +} + +/** + * Blob restore parameters + */ +model BlobRestoreParameters { + /** + * Restore blob to the specified time. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + timeToRestore: utcDateTime; + + /** + * Blob ranges to restore. + */ + @identifiers(#[]) + blobRanges: BlobRestoreRange[]; +} + +/** + * Blob range + */ +model BlobRestoreRange { + /** + * Blob start range. This is inclusive. Empty means account start. + */ + startRange: string; + + /** + * Blob end range. This is exclusive. Empty means account end. + */ + endRange: string; +} + +/** + * This defines the sku conversion status object for asynchronous sku conversions. + */ +model StorageAccountSkuConversionStatus { + /** + * This property indicates the current sku conversion status. + */ + @visibility(Lifecycle.Read) + skuConversionStatus?: SkuConversionStatus; + + /** + * This property represents the target sku name to which the account sku is being converted asynchronously. + */ + targetSkuName?: SkuName; + + /** + * This property represents the sku conversion start time. + */ + @visibility(Lifecycle.Read) + startTime?: string; + + /** + * This property represents the sku conversion end time. + */ + @visibility(Lifecycle.Read) + endTime?: string; +} + +/** + * The parameters that can be provided when updating the storage account properties. + */ +model StorageAccountUpdateParameters { + /** + * Gets or sets the SKU name. Note that the SKU name cannot be updated to Standard_ZRS, Premium_LRS or Premium_ZRS, nor can accounts of those SKU names be updated to any other value. + */ + sku?: Sku; + + /** + * Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater in length than 128 characters and a value no greater in length than 256 characters. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record; + + /** + * The identity of the resource. + */ + identity?: Identity; + + /** + * The parameters used when updating a storage account. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: StorageAccountPropertiesUpdateParameters; + + /** + * Optional. Indicates the type of storage account. Currently only StorageV2 value supported by server. + */ + kind?: Kind; + + /** + * Optional. Gets or sets the pinned logical availability zone for the storage account. + */ + zones?: string[]; + + /** + * Optional. Gets or sets the zonal placement details for the storage account. + */ + placement?: Placement; +} + +/** + * The parameters used when updating a storage account. + */ +model StorageAccountPropertiesUpdateParameters { + /** + * Custom domain assigned to the storage account by the user. Name is the CNAME source. Only one custom domain is supported per storage account at this time. To clear the existing custom domain, use an empty string for the custom domain name property. + */ + customDomain?: CustomDomain; + + /** + * Not applicable. Azure Storage encryption at rest is enabled by default for all storage accounts and cannot be disabled. + */ + encryption?: Encryption; + + /** + * SasPolicy assigned to the storage account. + */ + sasPolicy?: SasPolicy; + + /** + * KeyPolicy assigned to the storage account. + */ + keyPolicy?: KeyPolicy; + + /** + * Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type. + */ + accessTier?: AccessTier; + + /** + * Provides the identity based authentication settings for Azure Files. + */ + azureFilesIdentityBasedAuthentication?: AzureFilesIdentityBasedAuthentication; + + /** + * Allows https traffic only to storage service if sets to true. + */ + supportsHttpsTrafficOnly?: boolean; + + /** + * Enables Secure File Transfer Protocol, if set to true + */ + isSftpEnabled?: boolean; + + /** + * Enables local users feature, if set to true + */ + isLocalUserEnabled?: boolean; + + /** + * Enables extended group support with local users feature, if set to true + */ + enableExtendedGroups?: boolean; + + /** + * Network rule set + */ + networkAcls?: NetworkRuleSet; + + /** + * Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled. + */ + largeFileSharesState?: LargeFileSharesState; + + /** + * Maintains information about the network routing choice opted by the user for data transfer + */ + routingPreference?: RoutingPreference; + + /** + * Maintains information about the Internet protocol opted by the user. + */ + dualStackEndpointPreference?: DualStackEndpointPreference; + + /** + * Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is false for this property. + */ + allowBlobPublicAccess?: boolean; + + /** + * Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property. + */ + minimumTlsVersion?: MinimumTlsVersion; + + /** + * Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true. + */ + allowSharedKeyAccess?: boolean; + + /** + * Allow or disallow cross AAD tenant object replication. Set this property to true for new or existing accounts only if object replication policies will involve storage accounts in different AAD tenants. The default interpretation is false for new accounts to follow best security practices by default. + */ + allowCrossTenantReplication?: boolean; + + /** + * A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + defaultToOAuthAuthentication?: boolean; + + /** + * Allow, disallow, or let Network Security Perimeter configuration to evaluate public network access to Storage Account. Value is optional but if passed in, must be 'Enabled', 'Disabled' or 'SecuredByPerimeter'. + */ + publicNetworkAccess?: PublicNetworkAccess; + + /** + * The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the containers in the account by default. + */ + immutableStorageWithVersioning?: ImmutableStorageAccount; + + /** + * Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet. + */ + allowedCopyScope?: AllowedCopyScope; + + /** + * Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. + */ + dnsEndpointType?: DnsEndpointType; + + /** + * Status indicating whether Geo Priority Replication is enabled for the account. + */ + geoPriorityReplicationStatus?: GeoPriorityReplicationStatus; +} + +/** + * Attributes of a deleted storage account. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model DeletedAccountProperties { + /** + * Full resource id of the original storage account. + */ + @visibility(Lifecycle.Read) + storageAccountResourceId?: string; + + /** + * Location of the deleted account. + */ + @visibility(Lifecycle.Read) + location?: string; + + /** + * Can be used to attempt recovering this deleted account via PutStorageAccount API. + */ + @visibility(Lifecycle.Read) + restoreReference?: string; + + /** + * Creation time of the deleted account. + */ + @visibility(Lifecycle.Read) + creationTime?: string; + + /** + * Deletion time of the deleted account. + */ + @visibility(Lifecycle.Read) + deletionTime?: string; +} + +/** + * An error response from the storage resource provider. + */ +@error +model ErrorResponse { + /** + * Azure Storage Resource Provider error response body. + */ + error?: ErrorResponseBody; +} + +/** + * Error response body contract. + */ +model ErrorResponseBody { + /** + * An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + */ + code?: string; + + /** + * A message describing the error, intended to be suitable for display in a user interface. + */ + message?: string; +} + +/** + * The response from the ListKeys operation. + */ +model StorageAccountListKeysResult { + /** + * Gets the list of storage account keys and their properties for the specified storage account. + */ + @visibility(Lifecycle.Read) + @identifiers(#[]) + keys?: StorageAccountKey[]; +} + +/** + * An access key for the storage account. + */ +model StorageAccountKey { + /** + * Name of the key. + */ + @visibility(Lifecycle.Read) + keyName?: string; + + /** + * Base 64-encoded value of the key. + */ + @visibility(Lifecycle.Read) + value?: string; + + /** + * Permissions for the key -- read-only or full permissions. + */ + @visibility(Lifecycle.Read) + permissions?: KeyPermission; + + /** + * Creation time of the key, in round trip date format. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + creationTime?: utcDateTime; +} + +/** + * The parameters used to regenerate the storage account key. + */ +model StorageAccountRegenerateKeyParameters { + /** + * The name of storage keys that want to be regenerated, possible values are key1, key2, kerb1, kerb2. + */ + keyName: string; +} + +/** + * The response from the List Usages operation. + */ +model UsageListResult { + /** + * Gets or sets the list of Storage Resource Usages. + */ + @pageItems + value?: Usage[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @nextLink + nextLink?: string; +} + +/** + * Describes Storage Resource Usage. + */ +model Usage { + /** + * Gets the unit of measurement. + */ + @visibility(Lifecycle.Read) + unit?: UsageUnit; + + /** + * Gets the current count of the allocated resources in the subscription. + */ + @visibility(Lifecycle.Read) + currentValue?: int32; + + /** + * Gets the maximum count of the resources that can be allocated in the subscription. + */ + @visibility(Lifecycle.Read) + limit?: int32; + + /** + * Gets the name of the type of usage. + */ + @visibility(Lifecycle.Read) + name?: UsageName; +} + +/** + * The usage names that can be used; currently limited to StorageAccount. + */ +model UsageName { + /** + * Gets a string describing the resource name. + */ + @visibility(Lifecycle.Read) + value?: string; + + /** + * Gets a localized string describing the resource name. + */ + @visibility(Lifecycle.Read) + localizedValue?: string; +} + +/** + * The parameters to list SAS credentials of a storage account. + */ +model AccountSasParameters { + /** + * The signed services accessible with the account SAS. Possible values include: Blob (b), Queue (q), Table (t), File (f). + */ + signedServices: Services; + + /** + * The signed resource types that are accessible with the account SAS. Service (s): Access to service-level APIs; Container (c): Access to container-level APIs; Object (o): Access to object-level APIs for blobs, queue messages, table entities, and files. + */ + signedResourceTypes: SignedResourceTypes; + + /** + * The signed permissions for the account SAS. Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p). + */ + signedPermission: Permissions; + + /** + * An IP address or a range of IP addresses from which to accept requests. + */ + signedIp?: string; + + /** + * The protocol permitted for a request made with the account SAS. + */ + signedProtocol?: HttpProtocol; + + /** + * The time at which the SAS becomes valid. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + signedStart?: utcDateTime; + + /** + * The time at which the shared access signature becomes invalid. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + signedExpiry: utcDateTime; + + /** + * The key to sign the account SAS token with. + */ + keyToSign?: string; +} + +/** + * The List SAS credentials operation response. + */ +model ListAccountSasResponse { + /** + * List SAS credentials of storage account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/secret-prop" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + accountSasToken?: string; +} + +/** + * The parameters to list service SAS credentials of a specific resource. + */ +model ServiceSasParameters { + /** + * The canonical path to the signed resource. + */ + canonicalizedResource: string; + + /** + * The signed services accessible with the service SAS. Possible values include: Blob (b), Container (c), File (f), Share (s). + */ + signedResource?: SignedResource; + + /** + * The signed permissions for the service SAS. Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p). + */ + signedPermission?: Permissions; + + /** + * An IP address or a range of IP addresses from which to accept requests. + */ + signedIp?: string; + + /** + * The protocol permitted for a request made with the account SAS. + */ + signedProtocol?: HttpProtocol; + + /** + * The time at which the SAS becomes valid. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + signedStart?: utcDateTime; + + /** + * The time at which the shared access signature becomes invalid. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + signedExpiry?: utcDateTime; + + /** + * A unique value up to 64 characters in length that correlates to an access policy specified for the container, queue, or table. + */ + @maxLength(64) + signedIdentifier?: string; + + /** + * The start of partition key. + */ + startPk?: string; + + /** + * The end of partition key. + */ + endPk?: string; + + /** + * The start of row key. + */ + startRk?: string; + + /** + * The end of row key. + */ + endRk?: string; + + /** + * The key to sign the account SAS token with. + */ + keyToSign?: string; + + /** + * The response header override for cache control. + */ + rscc?: string; + + /** + * The response header override for content disposition. + */ + rscd?: string; + + /** + * The response header override for content encoding. + */ + rsce?: string; + + /** + * The response header override for content language. + */ + rscl?: string; + + /** + * The response header override for content type. + */ + rsct?: string; +} + +/** + * The List service SAS credentials operation response. + */ +model ListServiceSasResponse { + /** + * List service SAS credentials of specific resource. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/secret-prop" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + serviceSasToken?: string; +} + +/** + * The properties of a storage account's ongoing or enqueued migration. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model StorageAccountMigrationProperties { + /** + * Target sku name for the account + */ + targetSkuName: SkuName; + + /** + * Current status of migration + */ + @visibility(Lifecycle.Read) + migrationStatus?: migrationStatus; + + /** + * Error code for migration failure + */ + @visibility(Lifecycle.Read) + migrationFailedReason?: string; + + /** + * Reason for migration failure + */ + @visibility(Lifecycle.Read) + migrationFailedDetailedReason?: string; +} + +/** + * The Storage Account ManagementPolicy properties. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ManagementPolicyProperties { + /** + * Returns the date and time the ManagementPolicies was last modified. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastModifiedTime?: utcDateTime; + + /** + * The Storage Account ManagementPolicy, in JSON format. See more details in: https://learn.microsoft.com/azure/storage/blobs/lifecycle-management-overview. + */ + policy: ManagementPolicySchema; +} + +/** + * The Storage Account ManagementPolicies Rules. See more details in: https://learn.microsoft.com/azure/storage/blobs/lifecycle-management-overview. + */ +model ManagementPolicySchema { + /** + * The Storage Account ManagementPolicies Rules. See more details in: https://learn.microsoft.com/azure/storage/blobs/lifecycle-management-overview. + */ + rules: ManagementPolicyRule[]; +} + +/** + * An object that wraps the Lifecycle rule. Each rule is uniquely defined by name. + */ +model ManagementPolicyRule { + /** + * Rule is enabled if set to true. + */ + enabled?: boolean; + + /** + * A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. + */ + name: string; + + /** + * The valid value is Lifecycle + */ + type: RuleType; + + /** + * An object that defines the Lifecycle rule. + */ + definition: ManagementPolicyDefinition; +} + +/** + * An object that defines the Lifecycle rule. Each definition is made up with a filters set and an actions set. + */ +model ManagementPolicyDefinition { + /** + * An object that defines the action set. + */ + actions: ManagementPolicyAction; + + /** + * An object that defines the filter set. + */ + filters?: ManagementPolicyFilter; +} + +/** + * Actions are applied to the filtered blobs when the execution condition is met. + */ +model ManagementPolicyAction { + /** + * The management policy action for base blob + */ + baseBlob?: ManagementPolicyBaseBlob; + + /** + * The management policy action for snapshot + */ + snapshot?: ManagementPolicySnapShot; + + /** + * The management policy action for version + */ + version?: ManagementPolicyVersion; +} + +/** + * Management policy action for base blob. + */ +model ManagementPolicyBaseBlob { + /** + * The function to tier blobs to cool storage. + */ + tierToCool?: DateAfterModification; + + /** + * The function to tier blobs to archive storage. + */ + tierToArchive?: DateAfterModification; + + /** + * The function to tier blobs to cold storage. + */ + tierToCold?: DateAfterModification; + + /** + * The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts + */ + tierToHot?: DateAfterModification; + + /** + * The function to delete the blob + */ + delete?: DateAfterModification; + + /** + * This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan. + */ + enableAutoTierToHotFromCool?: boolean; +} + +/** + * Object to define the base blob action conditions. Properties daysAfterModificationGreaterThan, daysAfterLastAccessTimeGreaterThan and daysAfterCreationGreaterThan are mutually exclusive. The daysAfterLastTierChangeGreaterThan property is only applicable for tierToArchive actions which requires daysAfterModificationGreaterThan to be set, also it cannot be used in conjunction with daysAfterLastAccessTimeGreaterThan or daysAfterCreationGreaterThan. + */ +model DateAfterModification { + /** + * Value indicating the age in days after last modification + */ + @minValue(0) + daysAfterModificationGreaterThan?: float32; + + /** + * Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy + */ + @minValue(0) + daysAfterLastAccessTimeGreaterThan?: float32; + + /** + * Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterModificationGreaterThan to be set for baseBlobs based actions. The blob will be archived if both the conditions are satisfied. + */ + @minValue(0) + daysAfterLastTierChangeGreaterThan?: float32; + + /** + * Value indicating the age in days after blob creation. + */ + @minValue(0) + daysAfterCreationGreaterThan?: float32; +} + +/** + * Management policy action for snapshot. + */ +model ManagementPolicySnapShot { + /** + * The function to tier blob snapshot to cool storage. + */ + tierToCool?: DateAfterCreation; + + /** + * The function to tier blob snapshot to archive storage. + */ + tierToArchive?: DateAfterCreation; + + /** + * The function to tier blobs to cold storage. + */ + tierToCold?: DateAfterCreation; + + /** + * The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts + */ + tierToHot?: DateAfterCreation; + + /** + * The function to delete the blob snapshot + */ + delete?: DateAfterCreation; +} + +/** + * Object to define snapshot and version action conditions. + */ +model DateAfterCreation { + /** + * Value indicating the age in days after creation + */ + @minValue(0) + daysAfterCreationGreaterThan: float32; + + /** + * Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterCreationGreaterThan to be set for snapshots and blob version based actions. The blob will be archived if both the conditions are satisfied. + */ + @minValue(0) + daysAfterLastTierChangeGreaterThan?: float32; +} + +/** + * Management policy action for blob version. + */ +model ManagementPolicyVersion { + /** + * The function to tier blob version to cool storage. + */ + tierToCool?: DateAfterCreation; + + /** + * The function to tier blob version to archive storage. + */ + tierToArchive?: DateAfterCreation; + + /** + * The function to tier blobs to cold storage. + */ + tierToCold?: DateAfterCreation; + + /** + * The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts + */ + tierToHot?: DateAfterCreation; + + /** + * The function to delete the blob version + */ + delete?: DateAfterCreation; +} + +/** + * Filters limit rule actions to a subset of blobs within the storage account. If multiple filters are defined, a logical AND is performed on all filters. + */ +model ManagementPolicyFilter { + /** + * An array of strings for prefixes to be match. + */ + prefixMatch?: string[]; + + /** + * An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob. + */ + blobTypes: string[]; + + /** + * An array of blob index tag based filters, there can be at most 10 tag filters + */ + blobIndexMatch?: TagFilter[]; +} + +/** + * Blob index tag based filtering for blob objects + */ +model TagFilter { + /** + * This is the filter tag name, it can have 1 - 128 characters + */ + @maxLength(128) + @minLength(1) + name: string; + + /** + * This is the comparison operator which is used for object comparison and filtering. Only == (equality operator) is currently supported + */ + `op`: string; + + /** + * This is the filter tag value field used for tag based filtering, it can have 0 - 256 characters + */ + @maxLength(256) + @minLength(0) + value: string; +} + +/** + * The storage account blob inventory policy properties. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BlobInventoryPolicyProperties { + /** + * Returns the last modified date and time of the blob inventory policy. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastModifiedTime?: utcDateTime; + + /** + * The storage account blob inventory policy object. It is composed of policy rules. + */ + policy: BlobInventoryPolicySchema; +} + +/** + * The storage account blob inventory policy rules. + */ +model BlobInventoryPolicySchema { + /** + * Policy is enabled if set to true. + */ + enabled: boolean; + + /** + * Deprecated Property from API version 2021-04-01 onwards, the required destination container name must be specified at the rule level 'policy.rule.destination' + */ + @visibility(Lifecycle.Read) + destination?: string; + + /** + * The valid value is Inventory + */ + type: InventoryRuleType; + + /** + * The storage account blob inventory policy rules. The rule is applied when it is enabled. + */ + rules: BlobInventoryPolicyRule[]; +} + +/** + * An object that wraps the blob inventory rule. Each rule is uniquely defined by name. + */ +model BlobInventoryPolicyRule { + /** + * Rule is enabled when set to true. + */ + enabled: boolean; + + /** + * A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy. + */ + name: string; + + /** + * Container name where blob inventory files are stored. Must be pre-created. + */ + destination: string; + + /** + * An object that defines the blob inventory policy rule. + */ + definition: BlobInventoryPolicyDefinition; +} + +/** + * An object that defines the blob inventory rule. + */ +model BlobInventoryPolicyDefinition { + /** + * An object that defines the filter set. + */ + filters?: BlobInventoryPolicyFilter; + + /** + * This is a required field, it specifies the format for the inventory files. + */ + format: Format; + + /** + * This is a required field. This field is used to schedule an inventory formation. + */ + schedule: Schedule; + + /** + * This is a required field. This field specifies the scope of the inventory created either at the blob or container level. + */ + objectType: ObjectType; + + /** + * This is a required field. This field specifies the fields and properties of the object to be included in the inventory. The Schema field value 'Name' is always required. The valid values for this field for the 'Blob' definition.objectType include 'Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, AccessTierInferred, Tags, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime, Tags, Etag, ContentType, ContentEncoding, ContentLanguage, ContentCRC64, CacheControl, ContentDisposition, LeaseStatus, LeaseState, LeaseDuration, ServerEncrypted, Deleted, DeletionId, DeletedTime, RemainingRetentionDays, ImmutabilityPolicyUntilDate, ImmutabilityPolicyMode, LegalHold, CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime, CopyStatusDescription, CustomerProvidedKeySha256, RehydratePriority, ArchiveStatus, XmsBlobSequenceNumber, EncryptionScope, IncrementalCopy, TagCount'. For Blob object type schema field value 'DeletedTime' is applicable only for Hns enabled accounts. The valid values for 'Container' definition.objectType include 'Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold, Etag, DefaultEncryptionScope, DenyEncryptionScopeOverride, ImmutableStorageWithVersioningEnabled, Deleted, Version, DeletedTime, RemainingRetentionDays'. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, DeletionId' are valid only for Hns enabled accounts.Schema field values 'Tags, TagCount' are only valid for Non-Hns accounts. + */ + schemaFields: string[]; +} + +/** + * An object that defines the blob inventory rule filter conditions. For 'Blob' definition.objectType all filter properties are applicable, 'blobTypes' is required and others are optional. For 'Container' definition.objectType only prefixMatch is applicable and is optional. + */ +model BlobInventoryPolicyFilter { + /** + * An array of strings with maximum 10 blob prefixes to be included in the inventory. + */ + prefixMatch?: string[]; + + /** + * An array of strings with maximum 10 blob prefixes to be excluded from the inventory. + */ + excludePrefix?: string[]; + + /** + * An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. This field is required when definition.objectType property is set to 'Blob'. + */ + blobTypes?: string[]; + + /** + * Includes blob versions in blob inventory when value is set to true. The definition.schemaFields values 'VersionId and IsCurrentVersion' are required if this property is set to true, else they must be excluded. + */ + includeBlobVersions?: boolean; + + /** + * Includes blob snapshots in blob inventory when value is set to true. The definition.schemaFields value 'Snapshot' is required if this property is set to true, else it must be excluded. + */ + includeSnapshots?: boolean; + + /** + * For 'Container' definition.objectType the definition.schemaFields must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For 'Blob' definition.objectType and HNS enabled storage accounts the definition.schemaFields must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays' and for Hns disabled accounts the definition.schemaFields must include 'Deleted and RemainingRetentionDays', else it must be excluded. + */ + includeDeleted?: boolean; + + /** + * This property is used to filter objects based on the object creation time + */ + creationTime?: BlobInventoryCreationTime; +} + +/** + * This property defines the creation time based filtering condition. Blob Inventory schema parameter 'Creation-Time' is mandatory with this filter. + */ +model BlobInventoryCreationTime { + /** + * When set the policy filters the objects that are created in the last N days. Where N is an integer value between 1 to 36500. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @maxValue(36500) + @minValue(1) + lastNDays?: int32; +} + +/** + * List of blob inventory policies returned. + */ +model ListBlobInventoryPolicy { + /** + * List of blob inventory policies. + */ + @visibility(Lifecycle.Read) + @pageItems + value?: BlobInventoryPolicy[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @nextLink + nextLink?: string; +} + +/** + * List of private endpoint connection associated with the specified storage account + */ +model PrivateEndpointConnectionListResult { + /** + * Array of private endpoint connections + */ + @pageItems + value?: PrivateEndpointConnection[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @nextLink + nextLink?: string; +} + +/** + * A list of private link resources + */ +model PrivateLinkResourceListResult { + /** + * Array of private link resources + */ + value?: PrivateLinkResource[]; +} + +/** + * A private link resource + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model PrivateLinkResource extends Azure.ResourceManager.CommonTypes.Resource { + /** + * Resource properties. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: PrivateLinkResourceProperties; +} + +/** + * Properties of a private link resource. + */ +model PrivateLinkResourceProperties { + /** + * The private link resource group id. + */ + @visibility(Lifecycle.Read) + groupId?: string; + + /** + * The private link resource required member names. + */ + @visibility(Lifecycle.Read) + requiredMembers?: string[]; + + /** + * The private link resource Private link DNS zone name. + */ + requiredZoneNames?: string[]; +} + +/** + * List storage account object replication policies. + */ +model ObjectReplicationPolicies { + /** + * The replication policy between two storage accounts. + */ + @pageItems + value?: ObjectReplicationPolicy[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @nextLink + nextLink?: string; +} + +/** + * The Storage Account ObjectReplicationPolicy properties. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ObjectReplicationPolicyProperties { + /** + * A unique id for object replication policy. + */ + @visibility(Lifecycle.Read) + policyId?: string; + + /** + * Indicates when the policy is enabled on the source account. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + enabledTime?: utcDateTime; + + /** + * Required. Source account name. It should be full resource id if allowCrossTenantReplication set to false. + */ + sourceAccount: string; + + /** + * Required. Destination account name. It should be full resource id if allowCrossTenantReplication set to false. + */ + destinationAccount: string; + + /** + * The storage account object replication rules. + */ + @identifiers(#[]) + rules?: ObjectReplicationPolicyRule[]; + + /** + * Optional. The object replication policy metrics feature options. + */ + metrics?: ObjectReplicationPolicyPropertiesMetrics; + + /** + * Optional. The object replication policy priority replication feature options. + */ + priorityReplication?: ObjectReplicationPolicyPropertiesPriorityReplication; +} + +/** + * The replication policy rule between two containers. + */ +model ObjectReplicationPolicyRule { + /** + * Rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account. + */ + ruleId?: string; + + /** + * Required. Source container name. + */ + sourceContainer: string; + + /** + * Required. Destination container name. + */ + destinationContainer: string; + + /** + * Optional. An object that defines the filter set. + */ + filters?: ObjectReplicationPolicyFilter; +} + +/** + * Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters. + */ +model ObjectReplicationPolicyFilter { + /** + * Optional. Filters the results to replicate only blobs whose names begin with the specified prefix. + */ + prefixMatch?: string[]; + + /** + * Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z + */ + minCreationTime?: string; +} + +/** + * Optional. The object replication policy metrics feature options. + */ +model ObjectReplicationPolicyPropertiesMetrics { + /** + * Indicates whether object replication metrics feature is enabled for the policy. + */ + enabled?: boolean; +} + +/** + * Optional. The object replication policy priority replication feature options. + */ +model ObjectReplicationPolicyPropertiesPriorityReplication { + /** + * Indicates whether object replication priority replication feature is enabled for the policy. + */ + enabled?: boolean; +} + +/** + * List of local users requested, and if paging is required, a URL to the next page of local users. + */ +model LocalUsers is Azure.Core.Page; + +/** + * The Storage Account Local User properties. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model LocalUserProperties { + /** + * The permission scopes of the local user. + */ + @identifiers(#[]) + permissionScopes?: PermissionScope[]; + + /** + * Optional, local user home directory. + */ + homeDirectory?: string; + + /** + * Optional, local user ssh authorized keys for SFTP. + */ + @identifiers(#[]) + sshAuthorizedKeys?: SshPublicKey[]; + + /** + * A unique Security Identifier that is generated by the server. + */ + @visibility(Lifecycle.Read) + sid?: string; + + /** + * Indicates whether shared key exists. Set it to false to remove existing shared key. + */ + hasSharedKey?: boolean; + + /** + * Indicates whether ssh key exists. Set it to false to remove existing SSH key. + */ + hasSshKey?: boolean; + + /** + * Indicates whether ssh password exists. Set it to false to remove existing SSH password. + */ + hasSshPassword?: boolean; + + /** + * A unique Identifier that is generated by the server. + */ + @visibility(Lifecycle.Read) + userId?: int32; + + /** + * An identifier for associating a group of users. + */ + groupId?: int32; + + /** + * Indicates whether ACL authorization is allowed for this user. Set it to false to disallow using ACL authorization. + */ + allowAclAuthorization?: boolean; + + /** + * Supplementary group membership. Only applicable for local users enabled for NFSv3 access. + */ + extendedGroups?: int32[]; + + /** + * Indicates if the local user is enabled for access with NFSv3 protocol. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + isNFSv3Enabled?: boolean; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model PermissionScope { + /** + * The permissions for the local user. Possible values include: Read (r), Write (w), Delete (d), List (l), Create (c), Modify Ownership (o), and Modify Permissions (p). + */ + permissions: string; + + /** + * The service used by the local user, e.g. blob, file. + */ + service: string; + + /** + * The name of resource, normally the container name or the file share name, used by the local user. + */ + resourceName: string; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model SshPublicKey { + /** + * Optional. It is used to store the function/usage of the key + */ + description?: string; + + /** + * Ssh public key base64 encoded. The format should be: ' ', e.g. ssh-rsa AAAABBBB + */ + #suppress "@azure-tools/typespec-azure-resource-manager/secret-prop" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + key?: string; +} + +/** + * The Storage Account Local User keys. + */ +model LocalUserKeys { + /** + * Optional, local user ssh authorized keys for SFTP. + */ + @identifiers(#[]) + sshAuthorizedKeys?: SshPublicKey[]; + + /** + * Auto generated by the server for SMB authentication. + */ + @visibility(Lifecycle.Read) + @secret + sharedKey?: string; +} + +/** + * The secrets of Storage Account Local User. + */ +model LocalUserRegeneratePasswordResult { + /** + * Auto generated password by the server for SSH authentication if hasSshPassword is set to true on the creation of local user. + */ + @visibility(Lifecycle.Read) + @secret + sshPassword?: string; +} + +/** + * Properties of the encryption scope. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model EncryptionScopeProperties { + /** + * The provider for the encryption scope. Possible values (case-insensitive): Microsoft.Storage, Microsoft.KeyVault. + */ + source?: EncryptionScopeSource; + + /** + * The state of the encryption scope. Possible values (case-insensitive): Enabled, Disabled. + */ + state?: EncryptionScopeState; + + /** + * Gets the creation date and time of the encryption scope in UTC. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + creationTime?: utcDateTime; + + /** + * Gets the last modification date and time of the encryption scope in UTC. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastModifiedTime?: utcDateTime; + + /** + * The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'. + */ + keyVaultProperties?: EncryptionScopeKeyVaultProperties; + + /** + * A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest. + */ + requireInfrastructureEncryption?: boolean; +} + +/** + * The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'. + */ +model EncryptionScopeKeyVaultProperties { + /** + * The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope. + */ + keyUri?: string; + + /** + * The object identifier of the current versioned Key Vault Key in use. + */ + @visibility(Lifecycle.Read) + currentVersionedKeyIdentifier?: string; + + /** + * Timestamp of last rotation of the Key Vault Key. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastKeyRotationTimestamp?: utcDateTime; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ListTableServices { + /** + * List of table services returned. + */ + @visibility(Lifecycle.Read) + @pageItems + value?: TableServiceProperties[]; +} + +/** + * The properties of a storage account’s Table service. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model TableServicePropertiesProperties { + /** + * Specifies CORS rules for the Table service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Table service. + */ + cors?: CorsRules; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model TableProperties { + /** + * Table name under the specified account + */ + @visibility(Lifecycle.Read) + tableName?: string; + + /** + * List of stored access policies specified on the table. + */ + signedIdentifiers?: TableSignedIdentifier[]; +} + +/** + * Object to set Table Access Policy. + */ +model TableSignedIdentifier { + /** + * unique-64-character-value of the stored access policy. + */ + id: string; + + /** + * Access policy + */ + accessPolicy?: TableAccessPolicy; +} + +/** + * Table Access Policy Properties Object. + */ +model TableAccessPolicy { + /** + * Start time of the access policy + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + startTime?: utcDateTime; + + /** + * Expiry time of the access policy + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + expiryTime?: utcDateTime; + + /** + * Required. List of abbreviated permissions. Supported permission values include 'r','a','u','d' + */ + permission: string; +} + +/** + * Response schema. Contains list of tables returned + */ +model ListTableResource is Azure.Core.Page
; + +/** + * Result of the List Network Security Perimeter configuration operation. + */ +model NetworkSecurityPerimeterConfigurationList + is Azure.Core.Page; + +/** + * Properties of the Network Security Perimeter Configuration + */ +model NetworkSecurityPerimeterConfigurationProperties { + /** + * Provisioning state of Network Security Perimeter configuration propagation + */ + @visibility(Lifecycle.Read) + provisioningState?: NetworkSecurityPerimeterConfigurationProvisioningState; + + /** + * List of Provisioning Issues if any + */ + @visibility(Lifecycle.Read) + @identifiers(#["name"]) + provisioningIssues?: ProvisioningIssue[]; + + /** + * NetworkSecurityPerimeter related information + */ + @visibility(Lifecycle.Read) + networkSecurityPerimeter?: NetworkSecurityPerimeter; + + /** + * Information about resource association + */ + @visibility(Lifecycle.Read) + resourceAssociation?: NetworkSecurityPerimeterConfigurationPropertiesResourceAssociation; + + /** + * Network Security Perimeter profile + */ + @visibility(Lifecycle.Read) + profile?: NetworkSecurityPerimeterConfigurationPropertiesProfile; +} + +/** + * Describes provisioning issue for given NetworkSecurityPerimeterConfiguration + */ +model ProvisioningIssue { + /** + * Name of the issue + */ + name?: string; + + /** + * Properties of provisioning issue + */ + @visibility(Lifecycle.Read) + properties?: ProvisioningIssueProperties; +} + +/** + * Properties of provisioning issue + */ +model ProvisioningIssueProperties { + /** + * Type of issue + */ + issueType?: IssueType; + + /** + * Severity of the issue. + */ + severity?: Severity; + + /** + * Description of the issue + */ + description?: string; +} + +/** + * NetworkSecurityPerimeter related information + */ +model NetworkSecurityPerimeter { + /** + * The ARM identifier of the resource + */ + id?: string; + + /** + * Guid of the resource + */ + perimeterGuid?: string; + + /** + * Location of the resource + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + location?: string; +} + +/** + * Information about resource association + */ +model NetworkSecurityPerimeterConfigurationPropertiesResourceAssociation { + /** + * Name of the resource association + */ + name?: string; + + /** + * Access Mode of the resource association + */ + accessMode?: ResourceAssociationAccessMode; +} + +/** + * Network Security Perimeter profile + */ +model NetworkSecurityPerimeterConfigurationPropertiesProfile { + /** + * Name of the resource + */ + name?: string; + + /** + * Current access rules version + */ + accessRulesVersion?: float32; + + /** + * List of Access Rules + */ + @identifiers(#["name"]) + accessRules?: NspAccessRule[]; + + /** + * Diagnostic settings version + */ + diagnosticSettingsVersion?: float32; + + /** + * Enabled logging categories + */ + enabledLogCategories?: string[]; +} + +/** + * Information of Access Rule in Network Security Perimeter profile + */ +model NspAccessRule { + /** + * Name of the resource + */ + name?: string; + + /** + * Properties of Access Rule + */ + @visibility(Lifecycle.Read) + properties?: NspAccessRuleProperties; +} + +/** + * Properties of Access Rule + */ +model NspAccessRuleProperties { + /** + * Direction of Access Rule + */ + direction?: NspAccessRuleDirection; + + /** + * Address prefixes in the CIDR format for inbound rules + */ + addressPrefixes?: string[]; + + /** + * Subscriptions for inbound rules + */ + subscriptions?: NspAccessRulePropertiesSubscriptionsItem[]; + + /** + * NetworkSecurityPerimeters for inbound rules + */ + @visibility(Lifecycle.Read) + networkSecurityPerimeters?: NetworkSecurityPerimeter[]; + + /** + * FQDN for outbound rules + */ + @visibility(Lifecycle.Read) + fullyQualifiedDomainNames?: string[]; +} + +/** + * Subscription for inbound rule + */ +model NspAccessRulePropertiesSubscriptionsItem { + /** + * The ARM identifier of subscription + */ + id?: string; +} + +/** + * Properties of the storage task assignment. + */ +model StorageTaskAssignmentProperties { + /** + * Id of the corresponding storage task + */ + taskId: Azure.Core.armResourceIdentifier; + + /** + * Whether the storage task assignment is enabled or not + */ + enabled: boolean; + + /** + * Text that describes the purpose of the storage task assignment + */ + description: string; + + /** + * The storage task assignment execution context + */ + executionContext: StorageTaskAssignmentExecutionContext; + + /** + * The storage task assignment report + */ + report: StorageTaskAssignmentReport; + + /** + * Represents the provisioning state of the storage task assignment. + */ + @visibility(Lifecycle.Read) + provisioningState?: StorageTaskAssignmentProvisioningState; + + /** + * Run status of storage task assignment + */ + runStatus?: StorageTaskReportProperties; +} + +/** + * Execution context of the storage task assignment. + */ +model StorageTaskAssignmentExecutionContext { + /** + * Execution target of the storage task assignment + */ + target?: ExecutionTarget; + + /** + * Execution trigger of the storage task assignment + */ + trigger: ExecutionTrigger; +} + +/** + * Target helps provide filter parameters for the objects in the storage account and forms the execution context for the storage task + */ +model ExecutionTarget { + /** + * Required list of object prefixes to be included for task execution + */ + prefix?: string[]; + + /** + * List of object prefixes to be excluded from task execution. If there is a conflict between include and exclude prefixes, the exclude prefix will be the determining factor + */ + excludePrefix?: string[]; +} + +/** + * Execution trigger for storage task assignment + */ +model ExecutionTrigger { + /** + * The trigger type of the storage task assignment execution + */ + type: TriggerType; + + /** + * The trigger parameters of the storage task assignment execution + */ + parameters: TriggerParameters; +} + +/** + * The trigger parameters update for the storage task assignment execution + */ +model TriggerParameters { + /** + * When to start task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce' + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + startFrom?: utcDateTime; + + /** + * Run interval of task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce' + */ + @minValue(1) + interval?: int32; + + /** + * Run interval unit of task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce' + */ + intervalUnit?: IntervalUnit; + + /** + * When to end task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce' + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + endBy?: utcDateTime; + + /** + * When to start task execution. This is a required field when ExecutionTrigger.properties.type is 'RunOnce'; this property should not be present when ExecutionTrigger.properties.type is 'OnSchedule' + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + startOn?: utcDateTime; +} + +/** + * The storage task assignment report + */ +model StorageTaskAssignmentReport { + /** + * The container prefix for the location of storage task assignment report + */ + prefix: string; +} + +/** + * Storage task execution report for a run instance. + */ +model StorageTaskReportProperties { + /** + * Represents the Storage Task Assignment Id associated with the storage task that provided an execution context. + */ + @visibility(Lifecycle.Read) + taskAssignmentId?: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.Storage/storageAccounts/storageTaskAssignments"; + } + ]>; + + /** + * Represents the Storage Account Id where the storage task definition was applied and executed. + */ + @visibility(Lifecycle.Read) + storageAccountId?: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.Storage/storageAccounts"; + } + ]>; + + /** + * Start time of the run instance. Filter options such as startTime gt '2023-06-26T20:51:24.4494016Z' and other comparison operators can be used as described for DateTime properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators + */ + @visibility(Lifecycle.Read) + startTime?: string; + + /** + * End time of the run instance. Filter options such as startTime gt '2023-06-26T20:51:24.4494016Z' and other comparison operators can be used as described for DateTime properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators + */ + @visibility(Lifecycle.Read) + finishTime?: string; + + /** + * Total number of objects that meet the condition as defined in the storage task assignment execution context. Filter options such as objectsTargetedCount gt 50 and other comparison operators can be used as described for Numerical properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators + */ + @visibility(Lifecycle.Read) + objectsTargetedCount?: string; + + /** + * Total number of objects that meet the storage tasks condition and were operated upon. Filter options such as objectsOperatedOnCount ge 100 and other comparison operators can be used as described for Numerical properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators + */ + @visibility(Lifecycle.Read) + objectsOperatedOnCount?: string; + + /** + * Total number of objects where task operation failed when was attempted. Filter options such as objectFailedCount eq 0 and other comparison operators can be used as described for Numerical properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators + */ + @visibility(Lifecycle.Read) + objectFailedCount?: string; + + /** + * Total number of objects where task operation succeeded when was attempted.Filter options such as objectsSucceededCount gt 150 and other comparison operators can be used as described for Numerical properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators + */ + @visibility(Lifecycle.Read) + objectsSucceededCount?: string; + + /** + * Well known Azure Storage error code that represents the error encountered during execution of the run instance. + */ + @visibility(Lifecycle.Read) + runStatusError?: string; + + /** + * Represents the status of the execution. + */ + @visibility(Lifecycle.Read) + runStatusEnum?: RunStatusEnum; + + /** + * Full path to the verbose report stored in the reporting container as specified in the assignment execution context for the storage account. + */ + @visibility(Lifecycle.Read) + summaryReportPath?: string; + + /** + * Storage Task Arm Id. + */ + @visibility(Lifecycle.Read) + taskId?: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.StorageActions/storageTasks"; + } + ]>; + + /** + * Storage Task Version + */ + @visibility(Lifecycle.Read) + taskVersion?: string; + + /** + * Represents the overall result of the execution for the run instance + */ + @visibility(Lifecycle.Read) + runResult?: RunResult; +} + +/** + * Parameters of the storage task assignment update request + */ +model StorageTaskAssignmentUpdateParameters { + /** + * Properties of the storage task assignment. + */ + properties?: StorageTaskAssignmentUpdateProperties; +} + +/** + * Properties of the storage task update assignment. + */ +model StorageTaskAssignmentUpdateProperties { + /** + * Id of the corresponding storage task + */ + @visibility(Lifecycle.Read) + taskId?: string; + + /** + * Whether the storage task assignment is enabled or not + */ + enabled?: boolean; + + /** + * Text that describes the purpose of the storage task assignment + */ + description?: string; + + /** + * The storage task assignment execution context + */ + executionContext?: StorageTaskAssignmentUpdateExecutionContext; + + /** + * The storage task assignment report + */ + report?: StorageTaskAssignmentUpdateReport; + + /** + * Represents the provisioning state of the storage task assignment. + */ + @visibility(Lifecycle.Read) + provisioningState?: StorageTaskAssignmentProvisioningState; + + /** + * Run status of storage task assignment + */ + runStatus?: StorageTaskReportProperties; +} + +/** + * Execution context of the storage task assignment update. + */ +model StorageTaskAssignmentUpdateExecutionContext { + /** + * Execution target of the storage task assignment + */ + target?: ExecutionTarget; + + /** + * Execution trigger of the storage task assignment + */ + trigger?: ExecutionTriggerUpdate; +} + +/** + * Execution trigger update for storage task assignment + */ +model ExecutionTriggerUpdate { + /** + * The trigger type of the storage task assignment execution + */ + type?: TriggerType; + + /** + * The trigger parameters of the storage task assignment execution + */ + parameters?: TriggerParametersUpdate; +} + +/** + * The trigger parameters update for the storage task assignment execution + */ +model TriggerParametersUpdate { + /** + * When to start task execution. This is a mutable field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce' + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + startFrom?: utcDateTime; + + /** + * Run interval of task execution. This is a mutable field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce' + */ + @minValue(1) + interval?: int32; + + /** + * Run interval unit of task execution. This is a mutable field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce' + */ + intervalUnit?: IntervalUnit; + + /** + * When to end task execution. This is a mutable field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce' + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + endBy?: utcDateTime; + + /** + * When to start task execution. This is a mutable field when ExecutionTrigger.properties.type is 'RunOnce'; this property should not be present when ExecutionTrigger.properties.type is 'OnSchedule' + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + startOn?: utcDateTime; +} + +/** + * The storage task assignment report + */ +model StorageTaskAssignmentUpdateReport { + /** + * The prefix of the storage task assignment report + */ + prefix?: string; +} + +/** + * List of storage task assignments for the storage account + */ +model StorageTaskAssignmentsList is Azure.Core.Page; + +/** + * Fetch Storage Tasks Run Summary. + */ +model StorageTaskReportSummary is Azure.Core.Page; + +/** + * Storage Tasks run report instance + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model StorageTaskReportInstance + extends Azure.ResourceManager.CommonTypes.ProxyResource { + /** + * Storage task execution report for a run instance. + */ + properties?: StorageTaskReportProperties; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "Just for reference, not part of API" +alias ETagHeader = { + /** + * The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers. + */ + @header("ETag") + eTag: string; +}; diff --git a/specification/storage/Storage.Management/routes.tsp b/specification/storage/Storage.Management/routes.tsp new file mode 100644 index 000000000000..636b60fa60e0 --- /dev/null +++ b/specification/storage/Storage.Management/routes.tsp @@ -0,0 +1,65 @@ +// FIXME: Operations in this file are not detected as a resource operation, please confirm the conversion result manually + +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models.tsp"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using TypeSpec.OpenAPI; + +namespace Microsoft.Storage; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface SkusOperationGroup { + /** + * Lists the available SKUs supported by Microsoft.Storage for given subscription. + */ + @autoRoute + @get + @list + @action("skus") + list is ArmProviderActionSync< + Response = StorageSkuListResult, + Scope = SubscriptionActionScope, + Parameters = {}, + Error = ErrorResponse + >; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface DeletedAccountsOperationGroup { + /** + * Lists deleted accounts under the subscription. + */ + @autoRoute + @get + @list + @action("deletedAccounts") + list is ArmProviderActionSync< + Response = ResourceListResult, + Scope = SubscriptionActionScope, + Parameters = {}, + Error = ErrorResponse + >; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface UsagesOperationGroup { + /** + * Gets the current usage count and the limit for the resources of the location under the subscription. + */ + @autoRoute + @get + @list + @action("usages") + listByLocation is ArmProviderActionSync< + Response = UsageListResult, + Scope = SubscriptionActionScope, + Parameters = LocationParameter, + Error = ErrorResponse + >; +} diff --git a/specification/storage/Storage.Management/tspconfig.yaml b/specification/storage/Storage.Management/tspconfig.yaml new file mode 100644 index 000000000000..2f83f340fea1 --- /dev/null +++ b/specification/storage/Storage.Management/tspconfig.yaml @@ -0,0 +1,49 @@ +parameters: + "service-dir": + default: "sdk/storage" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + omit-unreachable-types: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/openapi.json" + examples-dir: "{project-root}/examples" + emit-lro-options: "all" + "@azure-tools/typespec-python": + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-storage" + namespace: "azure.mgmt.storage" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-storage-generated" + namespace: "com.azure.resourcemanager.storage.generated" + service-name: "Storage" # human-readable service name, whitespace allowed + flavor: azure + premium: false # TODO(change it to true when release) + rename-model: + FailoverRequestFailoverType: FailoverType + ListKeysRequestExpand: ListKeyExpand + enable-sync-stack: false + "@azure-tools/typespec-ts": + emitter-output-dir: "{output-dir}/{service-dir}/arm-storage" + service-dir: sdk/storage + flavor: "azure" + experimental-extensible-enums: true + package-details: + name: "@azure/arm-storage" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/storage" + emitter-output-dir: "{output-dir}/{service-dir}/armstorage" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armstorage" + fix-const-stuttering: false + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/blob.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/blob.json deleted file mode 100644 index 36c760c727cb..000000000000 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/blob.json +++ /dev/null @@ -1,1579 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-06-01", - "title": "StorageManagementClient", - "description": "The Azure Storage Management API." - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices": { - "get": { - "tags": [ - "BlobService" - ], - "operationId": "BlobServices_List", - "x-ms-examples": { - "ListBlobServices": { - "$ref": "./examples/BlobServicesList.json" - } - }, - "description": "List blob services of storage account. It returns a collection of one object named default.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- List blob services operation completed successfully.", - "schema": { - "$ref": "#/definitions/BlobServiceItems" - } - } - }, - "x-ms-pageable": { - "nextLinkName": null - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/{BlobServicesName}": { - "put": { - "tags": [ - "BlobService" - ], - "operationId": "BlobServices_SetServiceProperties", - "x-ms-examples": { - "PutBlobServices": { - "$ref": "./examples/BlobServicesPut.json" - }, - "BlobServicesPutLastAccessTimeBasedTracking": { - "$ref": "./examples/BlobServicesPutLastAccessTimeBasedTracking.json" - }, - "BlobServicesPutAllowPermanentDelete": { - "$ref": "./examples/BlobServicesPutAllowPermanentDelete.json" - } - }, - "description": "Sets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. ", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/BlobServicesName" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/BlobServiceProperties" - }, - "description": "The properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules." - } - ], - "responses": { - "200": { - "description": "OK -- Sets The properties of a storage account’s Blob service successfully.", - "schema": { - "$ref": "#/definitions/BlobServiceProperties" - } - } - } - }, - "get": { - "tags": [ - "BlobService" - ], - "operationId": "BlobServices_GetServiceProperties", - "x-ms-examples": { - "GetBlobServices": { - "$ref": "./examples/BlobServicesGet.json" - } - }, - "description": "Gets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/BlobServicesName" - } - ], - "responses": { - "200": { - "description": "OK -- returned the properties of a storage account’s Blob service.", - "schema": { - "$ref": "#/definitions/BlobServiceProperties" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers": { - "get": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_List", - "x-ms-examples": { - "ListContainers": { - "$ref": "./examples/BlobContainersList.json" - }, - "ListDeletedContainers": { - "$ref": "./examples/DeletedBlobContainersList.json" - } - }, - "description": "Lists all containers and does not support a prefix like data plane. Also SRP today does not return continuation token.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "$maxpagesize", - "in": "query", - "type": "string", - "description": "Optional. Specified maximum number of containers that can be included in the list." - }, - { - "name": "$filter", - "in": "query", - "type": "string", - "description": "Optional. When specified, only container names starting with the filter will be listed." - }, - { - "name": "$include", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "deleted" - ], - "x-ms-enum": { - "name": "ListContainersInclude", - "modelAsString": true - }, - "description": "Optional, used to include the properties for soft deleted blob containers." - } - ], - "responses": { - "200": { - "description": "OK -- List Container operation completed successfully.", - "schema": { - "$ref": "#/definitions/ListContainerItems" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}": { - "put": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_Create", - "x-ms-examples": { - "PutContainers": { - "$ref": "./examples/BlobContainersPut.json" - }, - "PutContainerWithDefaultEncryptionScope": { - "$ref": "./examples/BlobContainersPutDefaultEncryptionScope.json" - }, - "PutContainerWithObjectLevelWorm": { - "$ref": "./examples/BlobContainersPutObjectLevelWorm.json" - } - }, - "description": "Creates a new container under the specified account as described by request body. The container resource includes metadata and properties for that container. It does not include a list of the blobs contained by the container. ", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "blobContainer", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/BlobContainer" - }, - "description": "Properties of the blob container to create." - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "201": { - "description": "Created -- Create Container operation completed successfully.", - "schema": { - "$ref": "#/definitions/BlobContainer" - } - }, - "200": { - "description": "OK -- The Container is already created.", - "schema": { - "$ref": "#/definitions/BlobContainer" - } - } - } - }, - "patch": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_Update", - "x-ms-examples": { - "UpdateContainers": { - "$ref": "./examples/BlobContainersPatch.json" - } - }, - "description": "Updates container properties as specified in request body. Properties not mentioned in the request will be unchanged. Update fails if the specified container doesn't already exist. ", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ContainerName" - }, - { - "name": "blobContainer", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/BlobContainer" - }, - "description": "Properties to update for the blob container." - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- Update Container operation completed successfully.", - "schema": { - "$ref": "#/definitions/BlobContainer", - "description": "Properties of the updated blob container." - } - } - } - }, - "get": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_Get", - "x-ms-examples": { - "GetContainers": { - "$ref": "./examples/BlobContainersGet.json" - }, - "GetBlobContainersGetWithAllowProtectedAppendWritesAll": { - "$ref": "./examples/BlobContainersGetWithAllowProtectedAppendWritesAll.json" - } - }, - "description": "Gets properties of a specified container. ", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- Get Container operation completed successfully.", - "schema": { - "$ref": "#/definitions/BlobContainer" - } - } - } - }, - "delete": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_Delete", - "x-ms-examples": { - "DeleteContainers": { - "$ref": "./examples/BlobContainersDelete.json" - } - }, - "description": "Deletes specified container under its account.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- Delete Container operation completed successfully." - }, - "204": { - "description": "No Content -- The Container not exist." - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/setLegalHold": { - "post": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_SetLegalHold", - "x-ms-examples": { - "SetLegalHoldContainers": { - "$ref": "./examples/BlobContainersSetLegalHold.json" - }, - "SetLegalHoldContainersWithAllowProtectedAppendWritesAll": { - "$ref": "./examples/BlobContainersSetLegalHoldAllowProtectedAppendWritesAll.json" - } - }, - "description": "Sets legal hold tags. Setting the same tag results in an idempotent operation. SetLegalHold follows an append pattern and does not clear out the existing tags that are not specified in the request.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "LegalHold", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/LegalHold" - }, - "description": "The LegalHold property that will be set to a blob container." - } - ], - "responses": { - "200": { - "description": "OK -- Set legal hold tags for Container completed successfully.", - "schema": { - "$ref": "#/definitions/LegalHold" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/clearLegalHold": { - "post": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_ClearLegalHold", - "x-ms-examples": { - "ClearLegalHoldContainers": { - "$ref": "./examples/BlobContainersClearLegalHold.json" - } - }, - "description": "Clears legal hold tags. Clearing the same or non-existent tag results in an idempotent operation. ClearLegalHold clears out only the specified tags in the request.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "LegalHold", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/LegalHold" - }, - "description": "The LegalHold property that will be clear from a blob container." - } - ], - "responses": { - "200": { - "description": "OK -- Clear legal hold tags for Container completed successfully.", - "schema": { - "$ref": "#/definitions/LegalHold" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/{immutabilityPolicyName}": { - "put": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_CreateOrUpdateImmutabilityPolicy", - "x-ms-examples": { - "CreateOrUpdateImmutabilityPolicy": { - "$ref": "./examples/BlobContainersPutImmutabilityPolicy.json" - }, - "CreateOrUpdateImmutabilityPolicyWithAllowProtectedAppendWritesAll": { - "$ref": "./examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json" - } - }, - "description": "Creates or updates an unlocked immutability policy. ETag in If-Match is honored if given but not required for this operation.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/ImmutabilityPolicyName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "parameters", - "in": "body", - "schema": { - "$ref": "#/definitions/ImmutabilityPolicy" - }, - "description": "The ImmutabilityPolicy Properties that will be created or updated to a blob container." - }, - { - "name": "If-Match", - "in": "header", - "required": false, - "type": "string", - "description": "The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service." - } - ], - "responses": { - "200": { - "description": "OK -- Creates or updates container ImmutabilityPolicy operation completed successfully.", - "schema": { - "$ref": "#/definitions/ImmutabilityPolicy" - }, - "headers": { - "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" - } - } - } - } - }, - "get": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_GetImmutabilityPolicy", - "x-ms-examples": { - "GetImmutabilityPolicy": { - "$ref": "./examples/BlobContainersGetImmutabilityPolicy.json" - } - }, - "description": "Gets the existing immutability policy along with the corresponding ETag in response headers and body.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/ImmutabilityPolicyName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "If-Match", - "in": "header", - "required": false, - "type": "string", - "description": "The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service." - } - ], - "responses": { - "200": { - "description": "OK -- Gets container ImmutabilityPolicy operation completed successfully.", - "schema": { - "$ref": "#/definitions/ImmutabilityPolicy" - }, - "headers": { - "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" - } - } - } - } - }, - "delete": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_DeleteImmutabilityPolicy", - "x-ms-examples": { - "DeleteImmutabilityPolicy": { - "$ref": "./examples/BlobContainersDeleteImmutabilityPolicy.json" - } - }, - "description": "Aborts an unlocked immutability policy. The response of delete has immutabilityPeriodSinceCreationInDays set to 0. ETag in If-Match is required for this operation. Deleting a locked immutability policy is not allowed, the only way is to delete the container after deleting all expired blobs inside the policy locked container.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "#/parameters/ImmutabilityPolicyName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "If-Match", - "in": "header", - "required": true, - "type": "string", - "description": "The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service." - } - ], - "responses": { - "200": { - "description": "OK -- Deletes container ImmutabilityPolicy operation completed successfully.", - "schema": { - "$ref": "#/definitions/ImmutabilityPolicy" - }, - "headers": { - "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" - } - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/default/lock": { - "post": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_LockImmutabilityPolicy", - "x-ms-examples": { - "LockImmutabilityPolicy": { - "$ref": "./examples/BlobContainersLockImmutabilityPolicy.json" - } - }, - "description": "Sets the ImmutabilityPolicy to Locked state. The only action allowed on a Locked policy is ExtendImmutabilityPolicy action. ETag in If-Match is required for this operation.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "If-Match", - "in": "header", - "required": true, - "type": "string", - "description": "The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service." - } - ], - "responses": { - "200": { - "description": "OK -- Locks container ImmutabilityPolicy operation completed successfully.", - "schema": { - "$ref": "#/definitions/ImmutabilityPolicy" - }, - "headers": { - "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" - } - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/default/extend": { - "post": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_ExtendImmutabilityPolicy", - "x-ms-examples": { - "ExtendImmutabilityPolicy": { - "$ref": "./examples/BlobContainersExtendImmutabilityPolicy.json" - } - }, - "description": "Extends the immutabilityPeriodSinceCreationInDays of a locked immutabilityPolicy. The only action allowed on a Locked policy will be this action. ETag in If-Match is required for this operation.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "parameters", - "in": "body", - "schema": { - "$ref": "#/definitions/ImmutabilityPolicy" - }, - "description": "The ImmutabilityPolicy Properties that will be extended for a blob container." - }, - { - "name": "If-Match", - "in": "header", - "required": true, - "type": "string", - "description": "The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service." - } - ], - "responses": { - "200": { - "description": "OK -- Extends container ImmutabilityPolicy operation completed successfully..", - "schema": { - "$ref": "#/definitions/ImmutabilityPolicy" - }, - "headers": { - "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" - } - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/lease": { - "post": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_Lease", - "x-ms-examples": { - "Acquire a lease on a container": { - "$ref": "./examples/BlobContainersLease_Acquire.json" - }, - "Break a lease on a container": { - "$ref": "./examples/BlobContainersLease_Break.json" - } - }, - "description": "The Lease Container operation establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "parameters", - "in": "body", - "schema": { - "$ref": "#/definitions/LeaseContainerRequest" - }, - "description": "Lease Container request body." - } - ], - "responses": { - "200": { - "description": "OK -- Lease Container operation completed successfully.", - "schema": { - "$ref": "#/definitions/LeaseContainerResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/migrate": { - "post": { - "tags": [ - "BlobContainers" - ], - "operationId": "BlobContainers_ObjectLevelWorm", - "x-ms-examples": { - "VersionLevelWormContainerMigration": { - "$ref": "./examples/ObjectLevelWormContainerMigration.json" - } - }, - "description": "This operation migrates a blob container from container level WORM to object level immutability enabled container. Prerequisites require a container level immutability policy either in locked or unlocked state, Account level versioning must be enabled and there should be no Legal hold on the container.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ContainerName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- returned when the blob container migration to support object level immutability completes." - }, - "202": { - "description": "Accepted -- Blob Container migration to support object level immutability is accepted; operation will complete asynchronously." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - } - }, - "definitions": { - "ContainerProperties": { - "properties": { - "version": { - "type": "string", - "readOnly": true, - "description": "The version of the deleted blob container." - }, - "deleted": { - "type": "boolean", - "readOnly": true, - "description": "Indicates whether the blob container was deleted." - }, - "deletedTime": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Blob container deletion time." - }, - "remainingRetentionDays": { - "type": "integer", - "readOnly": true, - "description": "Remaining retention days for soft deleted blob container." - }, - "defaultEncryptionScope": { - "type": "string", - "description": "Default the container to use specified encryption scope for all writes." - }, - "denyEncryptionScopeOverride": { - "type": "boolean", - "description": "Block override of encryption scope from the container default." - }, - "publicAccess": { - "type": "string", - "enum": [ - "Container", - "Blob", - "None" - ], - "x-ms-enum": { - "name": "PublicAccess", - "modelAsString": false - }, - "description": "Specifies whether data in the container may be accessed publicly and the level of access." - }, - "lastModifiedTime": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Returns the date and time the container was last modified." - }, - "leaseStatus": { - "type": "string", - "readOnly": true, - "enum": [ - "Locked", - "Unlocked" - ], - "x-ms-enum": { - "name": "LeaseStatus", - "modelAsString": true - }, - "description": "The lease status of the container." - }, - "leaseState": { - "type": "string", - "readOnly": true, - "enum": [ - "Available", - "Leased", - "Expired", - "Breaking", - "Broken" - ], - "x-ms-enum": { - "name": "LeaseState", - "modelAsString": true - }, - "description": "Lease state of the container." - }, - "leaseDuration": { - "type": "string", - "readOnly": true, - "enum": [ - "Infinite", - "Fixed" - ], - "x-ms-enum": { - "name": "LeaseDuration", - "modelAsString": true - }, - "description": "Specifies whether the lease on a container is of infinite or fixed duration, only when the container is leased." - }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "A name-value pair to associate with the container as metadata." - }, - "immutabilityPolicy": { - "readOnly": true, - "$ref": "#/definitions/ImmutabilityPolicyProperties", - "x-ms-client-name": "ImmutabilityPolicy", - "description": "The ImmutabilityPolicy property of the container." - }, - "legalHold": { - "readOnly": true, - "$ref": "#/definitions/LegalHoldProperties", - "description": "The LegalHold property of the container." - }, - "hasLegalHold": { - "type": "boolean", - "readOnly": true, - "description": "The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account." - }, - "hasImmutabilityPolicy": { - "type": "boolean", - "readOnly": true, - "description": "The hasImmutabilityPolicy public property is set to true by SRP if ImmutabilityPolicy has been created for this container. The hasImmutabilityPolicy public property is set to false by SRP if ImmutabilityPolicy has not been created for this container." - }, - "immutableStorageWithVersioning": { - "$ref": "#/definitions/ImmutableStorageWithVersioning", - "description": "The object level immutability property of the container. The property is immutable and can only be set to true at the container creation time. Existing containers must undergo a migration process." - }, - "enableNfsV3RootSquash": { - "type": "boolean", - "description": "Enable NFSv3 root squash on blob container." - }, - "enableNfsV3AllSquash": { - "type": "boolean", - "description": "Enable NFSv3 all squash on blob container." - } - }, - "description": "The properties of a container." - }, - "BlobContainer": { - "properties": { - "properties": { - "$ref": "#/definitions/ContainerProperties", - "x-ms-client-flatten": true, - "x-ms-client-name": "ContainerProperties", - "description": "Properties of the blob container." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/AzureEntityResource" - } - ], - "description": "Properties of the blob container, including Id, resource name, resource type, Etag." - }, - "ImmutabilityPolicyProperty": { - "properties": { - "immutabilityPeriodSinceCreationInDays": { - "type": "integer", - "description": "The immutability period for the blobs in the container since the policy creation, in days." - }, - "state": { - "type": "string", - "readOnly": true, - "enum": [ - "Locked", - "Unlocked" - ], - "x-ms-enum": { - "name": "ImmutabilityPolicyState", - "modelAsString": true - }, - "description": "The ImmutabilityPolicy state of a blob container, possible values include: Locked and Unlocked." - }, - "allowProtectedAppendWrites": { - "type": "boolean", - "description": "This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API." - }, - "allowProtectedAppendWritesAll": { - "type": "boolean", - "description": "This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive." - } - }, - "description": "The properties of an ImmutabilityPolicy of a blob container." - }, - "ImmutabilityPolicyProperties": { - "properties": { - "properties": { - "$ref": "#/definitions/ImmutabilityPolicyProperty", - "x-ms-client-flatten": true, - "description": "The properties of an ImmutabilityPolicy of a blob container." - }, - "etag": { - "type": "string", - "readOnly": true, - "description": "ImmutabilityPolicy Etag." - }, - "updateHistory": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/UpdateHistoryProperty" - }, - "description": "The ImmutabilityPolicy update history of the blob container." - } - }, - "description": "The properties of an ImmutabilityPolicy of a blob container." - }, - "ImmutabilityPolicy": { - "properties": { - "properties": { - "$ref": "#/definitions/ImmutabilityPolicyProperty", - "x-ms-client-flatten": true, - "description": "The properties of an ImmutabilityPolicy of a blob container." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/AzureEntityResource" - } - ], - "required": [ - "properties" - ], - "description": "The ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag." - }, - "ImmutableStorageWithVersioning": { - "properties": { - "enabled": { - "type": "boolean", - "description": "This is an immutable property, when set to true it enables object level immutability at the container level." - }, - "timeStamp": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Returns the date and time the object level immutability was enabled." - }, - "migrationState": { - "type": "string", - "readOnly": true, - "enum": [ - "InProgress", - "Completed" - ], - "x-ms-enum": { - "name": "MigrationState", - "modelAsString": true - }, - "description": "This property denotes the container level immutability to object level immutability migration state." - } - }, - "description": "Object level immutability properties of the container." - }, - "UpdateHistoryProperty": { - "properties": { - "update": { - "type": "string", - "readOnly": true, - "enum": [ - "put", - "lock", - "extend" - ], - "x-ms-enum": { - "name": "ImmutabilityPolicyUpdateType", - "modelAsString": true - }, - "description": "The ImmutabilityPolicy update type of a blob container, possible values include: put, lock and extend." - }, - "immutabilityPeriodSinceCreationInDays": { - "type": "integer", - "readOnly": true, - "description": "The immutability period for the blobs in the container since the policy creation, in days." - }, - "timestamp": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Returns the date and time the ImmutabilityPolicy was updated." - }, - "objectIdentifier": { - "type": "string", - "readOnly": true, - "description": "Returns the Object ID of the user who updated the ImmutabilityPolicy." - }, - "tenantId": { - "type": "string", - "readOnly": true, - "description": "Returns the Tenant ID that issued the token for the user who updated the ImmutabilityPolicy." - }, - "upn": { - "type": "string", - "readOnly": true, - "description": "Returns the User Principal Name of the user who updated the ImmutabilityPolicy." - }, - "allowProtectedAppendWrites": { - "type": "boolean", - "description": "This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API." - }, - "allowProtectedAppendWritesAll": { - "type": "boolean", - "description": "This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive." - } - }, - "description": "An update history of the ImmutabilityPolicy of a blob container." - }, - "LegalHoldProperties": { - "properties": { - "hasLegalHold": { - "type": "boolean", - "readOnly": true, - "description": "The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account." - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/definitions/TagProperty" - }, - "description": "The list of LegalHold tags of a blob container." - }, - "protectedAppendWritesHistory": { - "$ref": "#/definitions/ProtectedAppendWritesHistory", - "description": "Protected append blob writes history." - } - }, - "description": "The LegalHold property of a blob container." - }, - "TagProperty": { - "properties": { - "tag": { - "type": "string", - "readOnly": true, - "description": "The tag value." - }, - "timestamp": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Returns the date and time the tag was added." - }, - "objectIdentifier": { - "type": "string", - "readOnly": true, - "description": "Returns the Object ID of the user who added the tag." - }, - "tenantId": { - "type": "string", - "readOnly": true, - "description": "Returns the Tenant ID that issued the token for the user who added the tag." - }, - "upn": { - "type": "string", - "readOnly": true, - "description": "Returns the User Principal Name of the user who added the tag." - } - }, - "description": "A tag of the LegalHold of a blob container." - }, - "ProtectedAppendWritesHistory": { - "type": "object", - "properties": { - "allowProtectedAppendWritesAll": { - "type": "boolean", - "description": "When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining legal hold protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted." - }, - "timestamp": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Returns the date and time the tag was added." - } - }, - "description": "Protected append writes history setting for the blob container with Legal holds." - }, - "LegalHold": { - "properties": { - "hasLegalHold": { - "type": "boolean", - "readOnly": true, - "description": "The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account." - }, - "tags": { - "type": "array", - "items": { - "type": "string", - "maxLength": 23, - "minLength": 3 - }, - "description": "Each tag should be 3 to 23 alphanumeric characters and is normalized to lower case at SRP." - }, - "allowProtectedAppendWritesAll": { - "type": "boolean", - "description": "When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining legal hold protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted." - } - }, - "required": [ - "tags" - ], - "description": "The LegalHold property of a blob container." - }, - "ListContainerItem": { - "properties": { - "properties": { - "$ref": "#/definitions/ContainerProperties", - "x-ms-client-flatten": true, - "description": "The blob container properties be listed out." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/AzureEntityResource" - } - ], - "description": "The blob container properties be listed out." - }, - "ListContainerItems": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/ListContainerItem" - }, - "description": "List of blobs containers returned.", - "readOnly": true - }, - "nextLink": { - "type": "string", - "description": "Request URL that can be used to query next page of containers. Returned when total number of requested containers exceed maximum page size.", - "readOnly": true - } - }, - "description": "Response schema. Contains list of blobs returned, and if paging is requested or required, a URL to next page of containers." - }, - "BlobServiceProperties": { - "properties": { - "properties": { - "properties": { - "cors": { - "$ref": "./common.json#/definitions/CorsRules", - "description": "Specifies CORS rules for the Blob service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Blob service." - }, - "defaultServiceVersion": { - "type": "string", - "description": "DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request’s version is not specified. Possible values include version 2008-10-27 and all more recent versions." - }, - "deleteRetentionPolicy": { - "$ref": "./common.json#/definitions/DeleteRetentionPolicy", - "description": "The blob service properties for blob soft delete." - }, - "isVersioningEnabled": { - "type": "boolean", - "description": "Versioning is enabled if set to true." - }, - "automaticSnapshotPolicyEnabled": { - "type": "boolean", - "description": "Deprecated in favor of isVersioningEnabled property." - }, - "changeFeed": { - "$ref": "#/definitions/ChangeFeed", - "description": "The blob service properties for change feed events." - }, - "restorePolicy": { - "$ref": "#/definitions/RestorePolicyProperties", - "description": "The blob service properties for blob restore policy." - }, - "containerDeleteRetentionPolicy": { - "$ref": "./common.json#/definitions/DeleteRetentionPolicy", - "description": "The blob service properties for container soft delete." - }, - "lastAccessTimeTrackingPolicy": { - "$ref": "#/definitions/LastAccessTimeTrackingPolicy", - "description": "The blob service property to configure last access time based tracking policy." - } - }, - "x-ms-client-flatten": true, - "x-ms-client-name": "BlobServiceProperties", - "description": "The properties of a storage account’s Blob service." - }, - "sku": { - "$ref": "./common.json#/definitions/Sku", - "readOnly": true, - "description": "Sku name and tier." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "description": "The properties of a storage account’s Blob service." - }, - "BlobServiceItems": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/BlobServiceProperties" - }, - "description": "List of blob services returned.", - "readOnly": true - } - } - }, - "ChangeFeed": { - "properties": { - "enabled": { - "type": "boolean", - "description": "Indicates whether change feed event logging is enabled for the Blob service." - }, - "retentionInDays": { - "type": "integer", - "minimum": 1, - "maximum": 146000, - "format": "int32", - "description": "Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed." - } - }, - "description": "The blob service properties for change feed events." - }, - "RestorePolicyProperties": { - "properties": { - "enabled": { - "type": "boolean", - "description": "Blob restore is enabled if set to true." - }, - "days": { - "type": "integer", - "minimum": 1, - "maximum": 365, - "description": "how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days." - }, - "lastEnabledTime": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Deprecated in favor of minRestoreTime property." - }, - "minRestoreTime": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Returns the minimum date and time that the restore can be started." - } - }, - "required": [ - "enabled" - ], - "description": "The blob service properties for blob restore policy" - }, - "LastAccessTimeTrackingPolicy": { - "properties": { - "enable": { - "type": "boolean", - "description": "When set to true last access time based tracking is enabled." - }, - "name": { - "type": "string", - "description": "Name of the policy. The valid value is AccessTimeTracking. This field is currently read only", - "enum": [ - "AccessTimeTracking" - ], - "x-ms-enum": { - "name": "name", - "modelAsString": true - } - }, - "trackingGranularityInDays": { - "type": "integer", - "format": "int32", - "description": "The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1" - }, - "blobType": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only" - } - }, - "required": [ - "enable" - ], - "description": "The blob service properties for Last access time based tracking policy." - }, - "LeaseContainerRequest": { - "properties": { - "action": { - "type": "string", - "enum": [ - "Acquire", - "Renew", - "Change", - "Release", - "Break" - ], - "x-ms-enum": { - "name": "LeaseContainerRequestAction", - "modelAsString": true - }, - "description": "Specifies the lease action. Can be one of the available actions." - }, - "leaseId": { - "type": "string", - "description": "Identifies the lease. Can be specified in any valid GUID string format." - }, - "breakPeriod": { - "type": "integer", - "description": "Optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60." - }, - "leaseDuration": { - "type": "integer", - "description": "Required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires." - }, - "proposedLeaseId": { - "type": "string", - "description": "Optional for acquire, required for change. Proposed lease ID, in a GUID string format." - } - }, - "required": [ - "action" - ], - "description": "Lease Container request schema." - }, - "LeaseContainerResponse": { - "properties": { - "leaseId": { - "type": "string", - "description": "Returned unique lease ID that must be included with any request to delete the container, or to renew, change, or release the lease." - }, - "leaseTimeSeconds": { - "type": "string", - "description": "Approximate time remaining in the lease period, in seconds." - } - }, - "description": "Lease Container response schema." - } - }, - "parameters": { - "ContainerName": { - "name": "containerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", - "maxLength": 63, - "minLength": 3, - "x-ms-parameter-location": "method" - }, - "ImmutabilityPolicyName": { - "name": "immutabilityPolicyName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'", - "enum": [ - "default" - ], - "x-ms-enum": { - "name": "ImmutabilityPolicyName", - "modelAsString": false - }, - "x-ms-parameter-location": "method" - }, - "BlobServicesName": { - "name": "BlobServicesName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the blob Service within the specified storage account. Blob Service Name must be 'default'", - "enum": [ - "default" - ], - "x-ms-enum": { - "name": "BlobServicesName", - "modelAsString": false - }, - "x-ms-parameter-location": "method" - } - }, - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ] -} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/common.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/common.json deleted file mode 100644 index 8a514b2a130d..000000000000 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/common.json +++ /dev/null @@ -1,368 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "StorageManagementClient", - "description": "Storage Resource Provider API Common Types", - "version": "2025-06-01" - }, - "paths": {}, - "definitions": { - "CorsRules": { - "properties": { - "corsRules": { - "type": "array", - "items": { - "description": "Specifies a CORS rule for the Blob service. ", - "$ref": "#/definitions/CorsRule" - }, - "description": "The List of CORS rules. You can include up to five CorsRule elements in the request. " - } - }, - "description": "Sets the CORS rules. You can include up to five CorsRule elements in the request. " - }, - "CorsRule": { - "properties": { - "allowedOrigins": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or \"*\" to allow all domains" - }, - "allowedMethods": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DELETE", - "GET", - "HEAD", - "MERGE", - "POST", - "OPTIONS", - "PUT", - "PATCH", - "CONNECT", - "TRACE" - ], - "x-ms-enum": { - "name": "AllowedMethods", - "modelAsString": true - } - }, - "description": "Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin." - }, - "maxAgeInSeconds": { - "type": "integer", - "description": "Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response." - }, - "exposedHeaders": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required if CorsRule element is present. A list of response headers to expose to CORS clients." - }, - "allowedHeaders": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request." - } - }, - "required": [ - "allowedOrigins", - "allowedMethods", - "maxAgeInSeconds", - "exposedHeaders", - "allowedHeaders" - ], - "description": "Specifies a CORS rule for the Blob service." - }, - "DeleteRetentionPolicy": { - "properties": { - "enabled": { - "type": "boolean", - "description": "Indicates whether DeleteRetentionPolicy is enabled." - }, - "days": { - "type": "integer", - "minimum": 1, - "maximum": 365, - "description": "Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365." - }, - "allowPermanentDelete": { - "type": "boolean", - "description": "This property when set to true allows deletion of the soft deleted blob versions and snapshots. This property cannot be used blob restore policy. This property only applies to blob service and does not apply to containers or file share." - } - }, - "description": "The service properties for soft delete." - }, - "Sku": { - "properties": { - "name": { - "$ref": "#/definitions/SkuName" - }, - "tier": { - "$ref": "#/definitions/Tier" - } - }, - "required": [ - "name" - ], - "description": "The SKU of the storage account." - }, - "SkuName": { - "type": "string", - "description": "The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType.", - "enum": [ - "Standard_LRS", - "Standard_GRS", - "Standard_RAGRS", - "Standard_ZRS", - "Premium_LRS", - "Premium_ZRS", - "Standard_GZRS", - "Standard_RAGZRS", - "StandardV2_LRS", - "StandardV2_GRS", - "StandardV2_ZRS", - "StandardV2_GZRS", - "PremiumV2_LRS", - "PremiumV2_ZRS" - ], - "x-ms-enum": { - "name": "SkuName", - "modelAsString": true - } - }, - "Tier": { - "readOnly": true, - "type": "string", - "description": "The SKU tier. This is based on the SKU name.", - "enum": [ - "Standard", - "Premium" - ], - "x-ms-enum": { - "name": "SkuTier", - "modelAsString": false - } - }, - "CloudError": { - "x-ms-external": true, - "properties": { - "error": { - "$ref": "#/definitions/CloudErrorBody" - } - }, - "description": "An error response from the Storage service." - }, - "CloudErrorBody": { - "x-ms-external": true, - "properties": { - "code": { - "type": "string", - "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." - }, - "message": { - "type": "string", - "description": "A message describing the error, intended to be suitable for display in a user interface." - }, - "target": { - "type": "string", - "description": "The target of the particular error. For example, the name of the property in error." - }, - "details": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudErrorBody" - }, - "description": "A list of additional details about the error." - } - }, - "description": "An error response from the Storage service." - }, - "SignedIdentifier": { - "properties": { - "id": { - "type": "string", - "description": "An unique identifier of the stored access policy." - }, - "accessPolicy": { - "$ref": "#/definitions/AccessPolicy", - "description": "Access policy" - } - } - }, - "AccessPolicy": { - "properties": { - "startTime": { - "type": "string", - "format": "date-time", - "description": "Start time of the access policy" - }, - "expiryTime": { - "type": "string", - "format": "date-time", - "description": "Expiry time of the access policy" - }, - "permission": { - "type": "string", - "description": "List of abbreviated permissions." - } - } - }, - "StorageTaskReportSummary": { - "type": "object", - "properties": { - "value": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/StorageTaskReportInstance" - }, - "x-ms-identifiers": [], - "description": "Gets storage tasks run result summary." - }, - "nextLink": { - "type": "string", - "description": "Request URL that can be used to query next page of storage task run results summary. Returned when the number of run instances and summary reports exceed maximum page size.", - "readOnly": true - } - }, - "description": "Fetch Storage Tasks Run Summary." - }, - "StorageTaskReportInstance": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/StorageTaskReportProperties" - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource" - } - ], - "description": "Storage Tasks run report instance" - }, - "StorageTaskReportProperties": { - "type": "object", - "properties": { - "taskAssignmentId": { - "readOnly": true, - "type": "string", - "format": "arm-id", - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments" - } - ] - }, - "description": "Represents the Storage Task Assignment Id associated with the storage task that provided an execution context." - }, - "storageAccountId": { - "readOnly": true, - "type": "string", - "format": "arm-id", - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.Storage/storageAccounts" - } - ] - }, - "description": "Represents the Storage Account Id where the storage task definition was applied and executed." - }, - "startTime": { - "readOnly": true, - "type": "string", - "description": "Start time of the run instance. Filter options such as startTime gt '2023-06-26T20:51:24.4494016Z' and other comparison operators can be used as described for DateTime properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators" - }, - "finishTime": { - "readOnly": true, - "type": "string", - "description": "End time of the run instance. Filter options such as startTime gt '2023-06-26T20:51:24.4494016Z' and other comparison operators can be used as described for DateTime properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators" - }, - "objectsTargetedCount": { - "readOnly": true, - "type": "string", - "description": "Total number of objects that meet the condition as defined in the storage task assignment execution context. Filter options such as objectsTargetedCount gt 50 and other comparison operators can be used as described for Numerical properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators" - }, - "objectsOperatedOnCount": { - "readOnly": true, - "type": "string", - "description": "Total number of objects that meet the storage tasks condition and were operated upon. Filter options such as objectsOperatedOnCount ge 100 and other comparison operators can be used as described for Numerical properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators" - }, - "objectFailedCount": { - "readOnly": true, - "type": "string", - "description": "Total number of objects where task operation failed when was attempted. Filter options such as objectFailedCount eq 0 and other comparison operators can be used as described for Numerical properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators" - }, - "objectsSucceededCount": { - "readOnly": true, - "type": "string", - "description": "Total number of objects where task operation succeeded when was attempted.Filter options such as objectsSucceededCount gt 150 and other comparison operators can be used as described for Numerical properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators" - }, - "runStatusError": { - "readOnly": true, - "type": "string", - "description": "Well known Azure Storage error code that represents the error encountered during execution of the run instance." - }, - "runStatusEnum": { - "readOnly": true, - "type": "string", - "enum": [ - "InProgress", - "Finished" - ], - "x-ms-enum": { - "name": "RunStatusEnum", - "modelAsString": true - }, - "description": "Represents the status of the execution." - }, - "summaryReportPath": { - "readOnly": true, - "type": "string", - "description": "Full path to the verbose report stored in the reporting container as specified in the assignment execution context for the storage account. " - }, - "taskId": { - "readOnly": true, - "type": "string", - "format": "arm-id", - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.StorageActions/storageTasks" - } - ] - }, - "description": "Storage Task Arm Id." - }, - "taskVersion": { - "readOnly": true, - "type": "string", - "description": "Storage Task Version" - }, - "runResult": { - "readOnly": true, - "type": "string", - "enum": [ - "Succeeded", - "Failed" - ], - "x-ms-enum": { - "name": "RunResult", - "modelAsString": true - }, - "description": "Represents the overall result of the execution for the run instance" - } - }, - "description": "Storage task execution report for a run instance." - } - } -} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersClearLegalHold.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersClearLegalHold.json index 9e943e50a97f..c43444f72061 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersClearLegalHold.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersClearLegalHold.json @@ -1,18 +1,18 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4303", - "accountName": "sto7280", - "containerName": "container8723", - "api-version": "2025-06-01", - "monitor": "true", "LegalHold": { "tags": [ "tag1", "tag2", "tag3" ] - } + }, + "accountName": "sto7280", + "api-version": "2025-06-01", + "containerName": "container8723", + "monitor": "true", + "resourceGroupName": "res4303", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -21,5 +21,7 @@ "tags": [] } } - } + }, + "operationId": "BlobContainers_ClearLegalHold", + "title": "ClearLegalHoldContainers" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersDelete.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersDelete.json index 3fb6e714b374..e0a06918dfbb 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersDelete.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersDelete.json @@ -1,14 +1,16 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4079", "accountName": "sto4506", - "containerName": "container9689", "api-version": "2025-06-01", - "monitor": "true" + "containerName": "container9689", + "monitor": "true", + "resourceGroupName": "res4079", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "BlobContainers_Delete", + "title": "DeleteContainers" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersDeleteImmutabilityPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersDeleteImmutabilityPolicy.json index 18e2e2ca7f84..75fe36a46ee0 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersDeleteImmutabilityPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersDeleteImmutabilityPolicy.json @@ -1,26 +1,28 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res1581", + "If-Match": "8d59f81a7fa7be0", "accountName": "sto9621", + "api-version": "2025-06-01", "containerName": "container4910", "immutabilityPolicyName": "default", - "If-Match": "8d59f81a7fa7be0", - "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res1581", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res1581/providers/Microsoft.Storage/storageAccounts/sto9621/blobServices/default/containers/container4910/immutabilityPolicies/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies", "etag": "\"8d59f81a87b40c0\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res1581/providers/Microsoft.Storage/storageAccounts/sto9621/blobServices/default/containers/container4910/immutabilityPolicies/default", "properties": { "immutabilityPeriodSinceCreationInDays": 0, "state": "Unlocked" } } } - } + }, + "operationId": "BlobContainers_DeleteImmutabilityPolicy", + "title": "DeleteImmutabilityPolicy" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersExtendImmutabilityPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersExtendImmutabilityPolicy.json index 4fa2accf8664..8879a39db8ff 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersExtendImmutabilityPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersExtendImmutabilityPolicy.json @@ -1,30 +1,32 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6238", - "accountName": "sto232", - "containerName": "container5023", "If-Match": "8d59f830d0c3bf9", + "accountName": "sto232", "api-version": "2025-06-01", + "containerName": "container5023", "monitor": "true", "parameters": { "properties": { "immutabilityPeriodSinceCreationInDays": 100 } - } + }, + "resourceGroupName": "res6238", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6238/providers/Microsoft.Storage/storageAccounts/sto232/blobServices/default/containers/container5023/immutabilityPolicies/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies", "etag": "\"8d57a8b2ff50332\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6238/providers/Microsoft.Storage/storageAccounts/sto232/blobServices/default/containers/container5023/immutabilityPolicies/default", "properties": { "immutabilityPeriodSinceCreationInDays": 100, "state": "Locked" } } } - } + }, + "operationId": "BlobContainers_ExtendImmutabilityPolicy", + "title": "ExtendImmutabilityPolicy" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersGet.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersGet.json index 4a7d0666c90e..af6ef7e6f1b3 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersGet.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersGet.json @@ -1,24 +1,22 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9871", "accountName": "sto6217", - "containerName": "container1634", "api-version": "2025-06-01", - "monitor": "true" + "containerName": "container1634", + "monitor": "true", + "resourceGroupName": "res9871", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/blobServices/default/containers/container1634", "name": "container1634", "type": "Microsoft.Storage/storageAccounts/blobServices/containers", "etag": "\"0x8D592D74CC20EBA\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/blobServices/default/containers/container1634", "properties": { - "publicAccess": "None", - "leaseStatus": "Unlocked", - "leaseState": "Available", - "lastModifiedTime": "2018-03-26T05:06:14Z", + "hasImmutabilityPolicy": true, + "hasLegalHold": true, "immutabilityPolicy": { "etag": "\"8d592d74cb3011a\"", "properties": { @@ -27,55 +25,59 @@ }, "updateHistory": [ { - "update": "put", "immutabilityPeriodSinceCreationInDays": 3, - "timestamp": "2018-03-26T05:06:11.431403Z", "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:11.431403Z", + "update": "put" }, { - "update": "lock", "immutabilityPeriodSinceCreationInDays": 3, - "timestamp": "2018-03-26T05:06:13.0907641Z", "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:13.0907641Z", + "update": "lock" }, { - "update": "extend", "immutabilityPeriodSinceCreationInDays": 100, - "timestamp": "2018-03-26T05:06:14.7097716Z", "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:14.7097716Z", + "update": "extend" } ] }, + "lastModifiedTime": "2018-03-26T05:06:14Z", + "leaseState": "Available", + "leaseStatus": "Unlocked", "legalHold": { "hasLegalHold": true, "tags": [ { - "tag": "tag1", - "timestamp": "2018-03-26T05:06:09.6964643Z", "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + "tag": "tag1", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:09.6964643Z" }, { - "tag": "tag2", - "timestamp": "2018-03-26T05:06:09.6964643Z", "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + "tag": "tag2", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:09.6964643Z" }, { - "tag": "tag3", - "timestamp": "2018-03-26T05:06:09.6964643Z", "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + "tag": "tag3", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:09.6964643Z" } ] }, - "hasImmutabilityPolicy": true, - "hasLegalHold": true + "publicAccess": "None" } } } - } + }, + "operationId": "BlobContainers_Get", + "title": "GetContainers" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersGetImmutabilityPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersGetImmutabilityPolicy.json index 50fd63b9771e..a9141457911d 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersGetImmutabilityPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersGetImmutabilityPolicy.json @@ -1,26 +1,28 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res5221", "accountName": "sto9177", + "api-version": "2025-06-01", "containerName": "container3489", "immutabilityPolicyName": "default", - "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res5221", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res5221/providers/Microsoft.Storage/storageAccounts/sto9177/blobServices/default/containers/container3489/immutabilityPolicies/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies", "etag": "\"8d59f828e64b75c\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res5221/providers/Microsoft.Storage/storageAccounts/sto9177/blobServices/default/containers/container3489/immutabilityPolicies/default", "properties": { - "immutabilityPeriodSinceCreationInDays": 5, "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 5, "state": "Unlocked" } } } - } + }, + "operationId": "BlobContainers_GetImmutabilityPolicy", + "title": "GetImmutabilityPolicy" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersGetWithAllowProtectedAppendWritesAll.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersGetWithAllowProtectedAppendWritesAll.json index 152aff0c95fe..a07febbe814b 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersGetWithAllowProtectedAppendWritesAll.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersGetWithAllowProtectedAppendWritesAll.json @@ -1,58 +1,59 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9871", "accountName": "sto6217", - "containerName": "container1634", "api-version": "2025-06-01", - "monitor": "true" + "containerName": "container1634", + "monitor": "true", + "resourceGroupName": "res9871", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/blobServices/default/containers/container1634", "name": "container1634", "type": "Microsoft.Storage/storageAccounts/blobServices/containers", "etag": "\"0x8D592D74CC20EBA\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/blobServices/default/containers/container1634", "properties": { - "publicAccess": "None", - "leaseStatus": "Unlocked", - "leaseState": "Available", - "lastModifiedTime": "2018-03-26T05:06:14Z", + "hasImmutabilityPolicy": true, + "hasLegalHold": true, "immutabilityPolicy": { "etag": "\"8d592d74cb3011a\"", "properties": { - "immutabilityPeriodSinceCreationInDays": 100, "allowProtectedAppendWritesAll": true, + "immutabilityPeriodSinceCreationInDays": 100, "state": "Locked" }, "updateHistory": [ { - "update": "put", - "immutabilityPeriodSinceCreationInDays": 3, "allowProtectedAppendWritesAll": true, - "timestamp": "2018-03-26T05:06:11.431403Z", + "immutabilityPeriodSinceCreationInDays": 3, "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:11.431403Z", + "update": "put" }, { - "update": "lock", - "immutabilityPeriodSinceCreationInDays": 3, "allowProtectedAppendWritesAll": true, - "timestamp": "2018-03-26T05:06:13.0907641Z", + "immutabilityPeriodSinceCreationInDays": 3, "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:13.0907641Z", + "update": "lock" }, { - "update": "extend", - "immutabilityPeriodSinceCreationInDays": 100, "allowProtectedAppendWritesAll": true, - "timestamp": "2018-03-26T05:06:14.7097716Z", + "immutabilityPeriodSinceCreationInDays": 100, "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:14.7097716Z", + "update": "extend" } ] }, + "lastModifiedTime": "2018-03-26T05:06:14Z", + "leaseState": "Available", + "leaseStatus": "Unlocked", "legalHold": { "hasLegalHold": true, "protectedAppendWritesHistory": { @@ -61,29 +62,30 @@ }, "tags": [ { - "tag": "tag1", - "timestamp": "2018-03-26T05:06:09.6964643Z", "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + "tag": "tag1", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:09.6964643Z" }, { - "tag": "tag2", - "timestamp": "2018-03-26T05:06:09.6964643Z", "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + "tag": "tag2", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:09.6964643Z" }, { - "tag": "tag3", - "timestamp": "2018-03-26T05:06:09.6964643Z", "objectIdentifier": "ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" + "tag": "tag3", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "timestamp": "2018-03-26T05:06:09.6964643Z" } ] }, - "hasImmutabilityPolicy": true, - "hasLegalHold": true + "publicAccess": "None" } } } - } + }, + "operationId": "BlobContainers_Get", + "title": "GetBlobContainersGetWithAllowProtectedAppendWritesAll" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersLease_Acquire.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersLease_Acquire.json index 4e175d8ca29e..94720833036f 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersLease_Acquire.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersLease_Acquire.json @@ -1,18 +1,18 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "containerName": "container6185", "api-version": "2025-06-01", + "containerName": "container6185", "monitor": "true", "parameters": { "action": "Acquire", - "leaseId": null, "breakPeriod": null, "leaseDuration": -1, + "leaseId": null, "proposedLeaseId": null - } + }, + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -20,5 +20,7 @@ "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d" } } - } + }, + "operationId": "BlobContainers_Lease", + "title": "Acquire a lease on a container" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersLease_Break.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersLease_Break.json index 7fcda2cd28fc..48820eaf7a77 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersLease_Break.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersLease_Break.json @@ -1,18 +1,18 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "containerName": "container6185", "api-version": "2025-06-01", + "containerName": "container6185", "monitor": "true", "parameters": { "action": "Break", - "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", "breakPeriod": null, "leaseDuration": null, + "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", "proposedLeaseId": null - } + }, + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -20,5 +20,7 @@ "leaseTimeSeconds": "0" } } - } + }, + "operationId": "BlobContainers_Lease", + "title": "Break a lease on a container" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersList.json index 8eb0116f4a1d..fd7d40d37e80 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersList.json @@ -1,46 +1,48 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9290", "accountName": "sto1590", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "nextLink": "https://sto1590endpoint/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto1590/container5103", "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container1644", "name": "container1644", "type": "Microsoft.Storage/storageAccounts/blobServices/containers", "etag": "\"0x8D589847D51C7DE\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container1644", "properties": { - "publicAccess": "Container", - "leaseStatus": "Unlocked", - "leaseState": "Available", - "lastModifiedTime": "2018-03-14T08:20:47Z", "hasImmutabilityPolicy": false, - "hasLegalHold": false + "hasLegalHold": false, + "lastModifiedTime": "2018-03-14T08:20:47Z", + "leaseState": "Available", + "leaseStatus": "Unlocked", + "publicAccess": "Container" } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container4052", "name": "container4052", "type": "Microsoft.Storage/storageAccounts/blobServices/containers", "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container4052", "properties": { - "publicAccess": "None", - "leaseStatus": "Unlocked", - "leaseState": "Available", - "lastModifiedTime": "2018-03-14T08:20:47Z", "hasImmutabilityPolicy": false, - "hasLegalHold": false + "hasLegalHold": false, + "lastModifiedTime": "2018-03-14T08:20:47Z", + "leaseState": "Available", + "leaseStatus": "Unlocked", + "publicAccess": "None" } } - ], - "nextLink": "https://sto1590endpoint/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto1590/container5103" + ] } } - } + }, + "operationId": "BlobContainers_List", + "title": "ListContainers" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersLockImmutabilityPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersLockImmutabilityPolicy.json index 9b5a86f84972..0fb88916bd81 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersLockImmutabilityPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersLockImmutabilityPolicy.json @@ -1,25 +1,27 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res2702", - "accountName": "sto5009", - "containerName": "container1631", "If-Match": "8d59f825b721dd3", + "accountName": "sto5009", "api-version": "2025-06-01", - "monitor": "true" + "containerName": "container1631", + "monitor": "true", + "resourceGroupName": "res2702", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res2702/providers/Microsoft.Storage/storageAccounts/sto5009/blobServices/default/containers/container1631/immutabilityPolicies/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies", "etag": "\"8d57a8a5edb084a\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res2702/providers/Microsoft.Storage/storageAccounts/sto5009/blobServices/default/containers/container1631/immutabilityPolicies/default", "properties": { "immutabilityPeriodSinceCreationInDays": 3, "state": "Locked" } } } - } + }, + "operationId": "BlobContainers_LockImmutabilityPolicy", + "title": "LockImmutabilityPolicy" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPatch.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPatch.json index e1d00d1ef659..b56809ec17f4 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPatch.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPatch.json @@ -1,35 +1,37 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "containerName": "container6185", "api-version": "2025-06-01", - "monitor": "true", "blobContainer": { "properties": { - "publicAccess": "Container", "metadata": { "metadata": "true" - } + }, + "publicAccess": "Container" } - } + }, + "containerName": "container6185", + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", "name": "container6185", "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", "properties": { + "hasImmutabilityPolicy": false, + "hasLegalHold": false, "metadata": { "metadata": "true" }, - "publicAccess": "Container", - "hasImmutabilityPolicy": false, - "hasLegalHold": false + "publicAccess": "Container" } } } - } + }, + "operationId": "BlobContainers_Update", + "title": "UpdateContainers" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPut.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPut.json index 2520c27ba48c..f84343e4640c 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPut.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPut.json @@ -1,27 +1,29 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "containerName": "container6185", "api-version": "2025-06-01", + "blobContainer": {}, + "containerName": "container6185", "monitor": "true", - "blobContainer": {} + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { - "201": { + "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", "name": "container6185", - "type": "Microsoft.Storage/storageAccounts/blobServices/containers" + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185" } }, - "200": { + "201": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", "name": "container6185", - "type": "Microsoft.Storage/storageAccounts/blobServices/containers" + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185" } } - } + }, + "operationId": "BlobContainers_Create", + "title": "PutContainers" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutDefaultEncryptionScope.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutDefaultEncryptionScope.json index fad12db3d556..981c32eb7f3a 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutDefaultEncryptionScope.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutDefaultEncryptionScope.json @@ -1,40 +1,42 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "containerName": "container6185", "api-version": "2025-06-01", - "monitor": "true", "blobContainer": { "properties": { "defaultEncryptionScope": "encryptionscope185", "denyEncryptionScopeOverride": true } - } + }, + "containerName": "container6185", + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { - "201": { + "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", "name": "container6185", "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", "properties": { "defaultEncryptionScope": "encryptionscope185", "denyEncryptionScopeOverride": true } } }, - "200": { + "201": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", "name": "container6185", "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", "properties": { "defaultEncryptionScope": "encryptionscope185", "denyEncryptionScopeOverride": true } } } - } + }, + "operationId": "BlobContainers_Create", + "title": "PutContainerWithDefaultEncryptionScope" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutImmutabilityPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutImmutabilityPolicy.json index 1ae68855f843..487dd432a3ca 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutImmutabilityPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutImmutabilityPolicy.json @@ -1,32 +1,34 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res1782", "accountName": "sto7069", + "api-version": "2025-06-01", "containerName": "container6397", "immutabilityPolicyName": "default", - "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { - "immutabilityPeriodSinceCreationInDays": 3, - "allowProtectedAppendWrites": true + "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 3 } - } + }, + "resourceGroupName": "res1782", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res1782/providers/Microsoft.Storage/storageAccounts/sto7069/blobServices/default/containers/container6397/immutabilityPolicies/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies", "etag": "\"8d59f830cb130e5\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res1782/providers/Microsoft.Storage/storageAccounts/sto7069/blobServices/default/containers/container6397/immutabilityPolicies/default", "properties": { - "immutabilityPeriodSinceCreationInDays": 3, "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 3, "state": "Unlocked" } } } - } + }, + "operationId": "BlobContainers_CreateOrUpdateImmutabilityPolicy", + "title": "CreateOrUpdateImmutabilityPolicy" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json index df40de45b011..36be6565de0f 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json @@ -1,32 +1,34 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res1782", "accountName": "sto7069", + "api-version": "2025-06-01", "containerName": "container6397", "immutabilityPolicyName": "default", - "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { - "immutabilityPeriodSinceCreationInDays": 3, - "allowProtectedAppendWritesAll": true + "allowProtectedAppendWritesAll": true, + "immutabilityPeriodSinceCreationInDays": 3 } - } + }, + "resourceGroupName": "res1782", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res1782/providers/Microsoft.Storage/storageAccounts/sto7069/blobServices/default/containers/container6397/immutabilityPolicies/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies", "etag": "\"8d59f830cb130e5\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res1782/providers/Microsoft.Storage/storageAccounts/sto7069/blobServices/default/containers/container6397/immutabilityPolicies/default", "properties": { - "immutabilityPeriodSinceCreationInDays": 3, "allowProtectedAppendWritesAll": true, + "immutabilityPeriodSinceCreationInDays": 3, "state": "Unlocked" } } } - } + }, + "operationId": "BlobContainers_CreateOrUpdateImmutabilityPolicy", + "title": "CreateOrUpdateImmutabilityPolicyWithAllowProtectedAppendWritesAll" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutObjectLevelWorm.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutObjectLevelWorm.json index 9abadb3e00df..9e1e11e36c61 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutObjectLevelWorm.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersPutObjectLevelWorm.json @@ -1,25 +1,25 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "containerName": "container6185", "api-version": "2025-06-01", - "monitor": "true", "blobContainer": { "properties": { "immutableStorageWithVersioning": { "enabled": true } } - } + }, + "containerName": "container6185", + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { - "201": { + "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", "name": "container6185", "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", "properties": { "immutableStorageWithVersioning": { "enabled": true @@ -27,11 +27,11 @@ } } }, - "200": { + "201": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", "name": "container6185", "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", "properties": { "immutableStorageWithVersioning": { "enabled": true @@ -39,5 +39,7 @@ } } } - } + }, + "operationId": "BlobContainers_Create", + "title": "PutContainerWithObjectLevelWorm" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersSetLegalHold.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersSetLegalHold.json index 37b997921ccd..62ca87f17e31 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersSetLegalHold.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersSetLegalHold.json @@ -1,18 +1,18 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4303", - "accountName": "sto7280", - "containerName": "container8723", - "api-version": "2025-06-01", - "monitor": "true", "LegalHold": { "tags": [ "tag1", "tag2", "tag3" ] - } + }, + "accountName": "sto7280", + "api-version": "2025-06-01", + "containerName": "container8723", + "monitor": "true", + "resourceGroupName": "res4303", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -25,5 +25,7 @@ ] } } - } + }, + "operationId": "BlobContainers_SetLegalHold", + "title": "SetLegalHoldContainers" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersSetLegalHoldAllowProtectedAppendWritesAll.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersSetLegalHoldAllowProtectedAppendWritesAll.json index 08399940b34a..7d758ef598e4 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersSetLegalHoldAllowProtectedAppendWritesAll.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobContainersSetLegalHoldAllowProtectedAppendWritesAll.json @@ -1,31 +1,33 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4303", - "accountName": "sto7280", - "containerName": "container8723", - "api-version": "2025-06-01", - "monitor": "true", "LegalHold": { + "allowProtectedAppendWritesAll": true, "tags": [ "tag1", "tag2", "tag3" - ], - "allowProtectedAppendWritesAll": true - } + ] + }, + "accountName": "sto7280", + "api-version": "2025-06-01", + "containerName": "container8723", + "monitor": "true", + "resourceGroupName": "res4303", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "allowProtectedAppendWritesAll": true, "hasLegalHold": true, "tags": [ "tag1", "tag2", "tag3" - ], - "allowProtectedAppendWritesAll": true + ] } } - } + }, + "operationId": "BlobContainers_SetLegalHold", + "title": "SetLegalHoldContainersWithAllowProtectedAppendWritesAll" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobRangesRestore.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobRangesRestore.json index 34adf822c8a0..272a9a3434b8 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobRangesRestore.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobRangesRestore.json @@ -1,64 +1,66 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { - "timeToRestore": "2019-04-20T15:30:00.0000000Z", "blobRanges": [ { - "startRange": "container/blobpath1", - "endRange": "container/blobpath2" + "endRange": "container/blobpath2", + "startRange": "container/blobpath1" }, { - "startRange": "container2/blobpath3", - "endRange": "" + "endRange": "", + "startRange": "container2/blobpath3" } - ] - } + ], + "timeToRestore": "2019-04-20T15:30:00.0000000Z" + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "status": "Succeeded", - "restoreId": "{restore_id}", "parameters": { - "timeToRestore": "2019-04-20T15:30:00.0000000Z", "blobRanges": [ { - "startRange": "container/blobpath1", - "endRange": "container/blobpath2" + "endRange": "container/blobpath2", + "startRange": "container/blobpath1" }, { - "startRange": "container2/blobpath3", - "endRange": "" + "endRange": "", + "startRange": "container2/blobpath3" } - ] - } + ], + "timeToRestore": "2019-04-20T15:30:00.0000000Z" + }, + "restoreId": "{restore_id}", + "status": "Succeeded" } }, "202": { - "headers": { - "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2022-09-01" - }, "body": { - "status": "InProgress", - "restoreId": "{restore_id}", "parameters": { - "timeToRestore": "2019-04-20T15:30:00.0000000Z", "blobRanges": [ { - "startRange": "container/blobpath1", - "endRange": "container/blobpath2" + "endRange": "container/blobpath2", + "startRange": "container/blobpath1" }, { - "startRange": "container2/blobpath3", - "endRange": "" + "endRange": "", + "startRange": "container2/blobpath3" } - ] - } + ], + "timeToRestore": "2019-04-20T15:30:00.0000000Z" + }, + "restoreId": "{restore_id}", + "status": "InProgress" + }, + "headers": { + "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2022-09-01" } } - } + }, + "operationId": "StorageAccounts_RestoreBlobRanges", + "title": "BlobRangesRestore" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesGet.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesGet.json index 1a5d939bce92..665ee130e19f 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesGet.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesGet.json @@ -1,25 +1,30 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", - "accountName": "sto8607", "BlobServicesName": "default", + "accountName": "sto8607", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/blobServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", "properties": { + "changeFeed": { + "enabled": true, + "retentionInDays": 7 + }, "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -29,62 +34,57 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x -ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] }, "defaultServiceVersion": "2017-07-29", "deleteRetentionPolicy": { - "enabled": true, - "days": 300 + "days": 300, + "enabled": true }, - "isVersioningEnabled": true, - "changeFeed": { - "enabled": true, - "retentionInDays": 7 - } + "isVersioningEnabled": true }, "sku": { "name": "Standard_GRS", @@ -92,5 +92,7 @@ } } } - } + }, + "operationId": "BlobServices_GetServiceProperties", + "title": "GetBlobServices" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesList.json index f227dc20ba9e..ca7b08c9744a 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesList.json @@ -1,26 +1,31 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", "accountName": "sto8607", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/blobServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", "properties": { + "changeFeed": { + "enabled": true, + "retentionInDays": 7 + }, "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -30,62 +35,57 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x -ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] }, "defaultServiceVersion": "2017-07-29", "deleteRetentionPolicy": { - "enabled": true, - "days": 300 + "days": 300, + "enabled": true }, - "isVersioningEnabled": true, - "changeFeed": { - "enabled": true, - "retentionInDays": 7 - } + "isVersioningEnabled": true }, "sku": { "name": "Standard_GRS", @@ -95,5 +95,7 @@ ] } } - } + }, + "operationId": "BlobServices_List", + "title": "ListBlobServices" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesPut.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesPut.json index 6dc856627f8c..7f781c9f633b 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesPut.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesPut.json @@ -1,19 +1,22 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", - "accountName": "sto8607", "BlobServicesName": "default", + "accountName": "sto8607", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { + "changeFeed": { + "enabled": true, + "retentionInDays": 7 + }, "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -23,78 +26,80 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x -ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] }, "defaultServiceVersion": "2017-07-29", "deleteRetentionPolicy": { - "enabled": true, - "days": 300 + "days": 300, + "enabled": true }, - "isVersioningEnabled": true, - "changeFeed": { - "enabled": true, - "retentionInDays": 7 - } + "isVersioningEnabled": true } - } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/blobServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", "properties": { + "changeFeed": { + "enabled": true, + "retentionInDays": 7 + }, "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -104,62 +109,57 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x -ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] }, "defaultServiceVersion": "2017-07-29", "deleteRetentionPolicy": { - "enabled": true, - "days": 300 + "days": 300, + "enabled": true }, - "isVersioningEnabled": true, - "changeFeed": { - "enabled": true, - "retentionInDays": 7 - } + "isVersioningEnabled": true }, "sku": { "name": "Standard_GRS", @@ -167,5 +167,7 @@ } } } - } + }, + "operationId": "BlobServices_SetServiceProperties", + "title": "PutBlobServices" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesPutAllowPermanentDelete.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesPutAllowPermanentDelete.json index 913c11918579..e2715d42edd8 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesPutAllowPermanentDelete.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesPutAllowPermanentDelete.json @@ -1,37 +1,39 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", - "accountName": "sto8607", "BlobServicesName": "default", + "accountName": "sto8607", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { "deleteRetentionPolicy": { - "enabled": true, + "allowPermanentDelete": true, "days": 300, - "allowPermanentDelete": true + "enabled": true }, "isVersioningEnabled": true } - } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/blobServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", "properties": { "deleteRetentionPolicy": { - "enabled": true, + "allowPermanentDelete": true, "days": 300, - "allowPermanentDelete": true + "enabled": true }, "isVersioningEnabled": true } } } - } + }, + "operationId": "BlobServices_SetServiceProperties", + "title": "BlobServicesPutAllowPermanentDelete" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesPutLastAccessTimeBasedTracking.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesPutLastAccessTimeBasedTracking.json index 64ce3121c7dd..e95bab29be96 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesPutLastAccessTimeBasedTracking.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/BlobServicesPutLastAccessTimeBasedTracking.json @@ -1,41 +1,43 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", - "accountName": "sto8607", "BlobServicesName": "default", + "accountName": "sto8607", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { "lastAccessTimeTrackingPolicy": { - "enable": true, "name": "AccessTimeTracking", - "trackingGranularityInDays": 1, "blobType": [ "blockBlob" - ] + ], + "enable": true, + "trackingGranularityInDays": 1 } } - } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/blobServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default", "properties": { "lastAccessTimeTrackingPolicy": { - "enable": true, "name": "AccessTimeTracking", - "trackingGranularityInDays": 1, "blobType": [ "blockBlob" - ] + ], + "enable": true, + "trackingGranularityInDays": 1 } } } } - } + }, + "operationId": "BlobServices_SetServiceProperties", + "title": "BlobServicesPutLastAccessTimeBasedTracking" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedAccountGet.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedAccountGet.json index f434ae2a63b5..7509950706e6 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedAccountGet.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedAccountGet.json @@ -1,25 +1,27 @@ { "parameters": { - "subscriptionId": "{subscription-id}", + "api-version": "2025-06-01", "deletedAccountName": "sto1125", "location": "eastus", - "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/deletedAccounts/sto1125", "name": "sto1125", "type": "Microsoft.Storage/deletedAccounts", + "id": "/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/deletedAccounts/sto1125", "properties": { - "storageAccountResourceId": "/subscriptions/{subscription-id}/resourceGroups/sto/providers/Microsoft.Storage/storageAccounts/sto1125", + "creationTime": "2020-08-17T03:35:37.4588848Z", + "deletionTime": "2020-08-17T04:41:37.3442475Z", "location": "eastus", "restoreReference": "sto1125|2020-08-17T03:35:37.4588848Z", - "creationTime": "2020-08-17T03:35:37.4588848Z", - "deletionTime": "2020-08-17T04:41:37.3442475Z" + "storageAccountResourceId": "/subscriptions/{subscription-id}/resourceGroups/sto/providers/Microsoft.Storage/storageAccounts/sto1125" } } } - } + }, + "operationId": "DeletedAccounts_Get", + "title": "DeletedAccountGet" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedAccountList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedAccountList.json index 133118bcb9e0..0ed27c445f09 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedAccountList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedAccountList.json @@ -1,39 +1,41 @@ { "parameters": { - "subscriptionId": "{subscription-id}", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/deletedAccounts/sto1125", "name": "sto1125", "type": "Microsoft.Storage/deletedAccounts", + "id": "/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/deletedAccounts/sto1125", "properties": { - "storageAccountResourceId": "/subscriptions/{subscription-id}/resourceGroups/sto/providers/Microsoft.Storage/storageAccounts/sto1125", + "creationTime": "2020-08-17T03:35:37.4588848Z", + "deletionTime": "2020-08-17T04:41:37.3442475Z", "location": "eastus", "restoreReference": "sto1125|2020-08-17T03:35:37.4588848Z", - "creationTime": "2020-08-17T03:35:37.4588848Z", - "deletionTime": "2020-08-17T04:41:37.3442475Z" + "storageAccountResourceId": "/subscriptions/{subscription-id}/resourceGroups/sto/providers/Microsoft.Storage/storageAccounts/sto1125" } }, { - "id": "/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/deletedAccounts/sto1126", "name": "sto1126", "type": "Microsoft.Storage/deletedAccounts", + "id": "/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/deletedAccounts/sto1126", "properties": { - "storageAccountResourceId": "/subscriptions/{subscription-id}/resourceGroups/sto/providers/Microsoft.Storage/storageAccounts/sto1126", + "creationTime": "2020-08-19T15:10:21.5902165Z", + "deletionTime": "2020-08-20T06:11:55.1957302Z", "location": "eastus", "restoreReference": "sto1126|2020-08-17T03:35:37.4588848Z", - "creationTime": "2020-08-19T15:10:21.5902165Z", - "deletionTime": "2020-08-20T06:11:55.1957302Z" + "storageAccountResourceId": "/subscriptions/{subscription-id}/resourceGroups/sto/providers/Microsoft.Storage/storageAccounts/sto1126" } } ] } } - } + }, + "operationId": "DeletedAccounts_List", + "title": "DeletedAccountList" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedBlobContainersList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedBlobContainersList.json index c52b2afb0fac..c7b80a7021c9 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedBlobContainersList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedBlobContainersList.json @@ -1,50 +1,52 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9290", - "accountName": "sto1590", "$include": "deleted", + "accountName": "sto1590", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container1644", "name": "container1644", "type": "Microsoft.Storage/storageAccounts/blobServices/containers", "etag": "\"0x8D589847D51C7DE\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container1644", "properties": { - "publicAccess": "Container", - "leaseStatus": "Unlocked", - "leaseState": "Available", - "lastModifiedTime": "2018-03-14T08:20:47Z", "hasImmutabilityPolicy": false, - "hasLegalHold": false + "hasLegalHold": false, + "lastModifiedTime": "2018-03-14T08:20:47Z", + "leaseState": "Available", + "leaseStatus": "Unlocked", + "publicAccess": "Container" } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container4052", "name": "container4052", "type": "Microsoft.Storage/storageAccounts/blobServices/containers", "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container4052", "properties": { - "publicAccess": "None", - "leaseStatus": "Unlocked", - "leaseState": "Expired", - "lastModifiedTime": "2018-03-14T08:20:47Z", - "hasImmutabilityPolicy": false, - "hasLegalHold": false, - "version": "1234567890", "deleted": true, "deletedTime": "2019-12-14T08:20:47Z", - "remainingRetentionDays": 30 + "hasImmutabilityPolicy": false, + "hasLegalHold": false, + "lastModifiedTime": "2018-03-14T08:20:47Z", + "leaseState": "Expired", + "leaseStatus": "Unlocked", + "publicAccess": "None", + "remainingRetentionDays": 30, + "version": "1234567890" } } ] } } - } + }, + "operationId": "BlobContainers_List", + "title": "ListDeletedContainers" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedFileSharesList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedFileSharesList.json index fc0cb69920d3..d0a3c46336be 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedFileSharesList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/DeletedFileSharesList.json @@ -1,35 +1,35 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9290", - "accountName": "sto1590", "$expand": "deleted", + "accountName": "sto1590", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share1644_1234567890", "name": "share1644", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D589847D51C7DE\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share1644_1234567890", "properties": { - "lastModifiedTime": "2019-05-14T08:20:47Z", - "shareQuota": 1024, - "version": "1234567890", "deleted": true, "deletedTime": "2019-12-14T08:20:47Z", - "remainingRetentionDays": 30 + "lastModifiedTime": "2019-05-14T08:20:47Z", + "remainingRetentionDays": 30, + "shareQuota": 1024, + "version": "1234567890" } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", "name": "share4052", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", "properties": { "lastModifiedTime": "2019-05-14T08:20:47Z", "shareQuota": 1024 @@ -38,5 +38,7 @@ ] } } - } + }, + "operationId": "FileShares_List", + "title": "ListDeletedShares" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesGet.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesGet.json index 2aed1ea6ce3d..e747ff958200 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesGet.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesGet.json @@ -1,25 +1,26 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", - "accountName": "sto8607", "FileServicesName": "default", + "accountName": "sto8607", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/fileServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", "properties": { "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -29,49 +30,48 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] } @@ -82,5 +82,7 @@ } } } - } + }, + "operationId": "FileServices_GetServiceProperties", + "title": "GetFileServices" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesGetUsage.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesGetUsage.json index e9e6d7f6c163..4f6195fc3712 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesGetUsage.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesGetUsage.json @@ -1,61 +1,63 @@ { "parameters": { - "subscriptionId": "00000000-1111-2222-3333-444444444444", - "resourceGroupName": "res4410", - "accountName": "sto8607", "FileServicesName": "default", - "fileServiceUsagesName": "default", + "accountName": "sto8607", "api-version": "2025-06-01", - "monitor": "true" + "fileServiceUsagesName": "default", + "monitor": "true", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-1111-2222-3333-444444444444" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default/usages/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/fileServices/usages", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default/usages/default", "properties": { - "storageAccountLimits": { - "maxFileShares": 50, - "maxProvisionedStorageGiB": 262144, - "maxProvisionedIOPS": 102400, - "maxProvisionedBandwidthMiBPerSec": 10340 + "burstingConstants": { + "burstFloorIOPS": 10000, + "burstIOScalar": 3, + "burstTimeframeSeconds": 3600 }, "fileShareLimits": { - "minProvisionedStorageGiB": 32, - "maxProvisionedStorageGiB": 262144, - "minProvisionedIOPS": 3000, + "maxProvisionedBandwidthMiBPerSec": 10340, "maxProvisionedIOPS": 102400, + "maxProvisionedStorageGiB": 262144, "minProvisionedBandwidthMiBPerSec": 125, - "maxProvisionedBandwidthMiBPerSec": 10340 + "minProvisionedIOPS": 3000, + "minProvisionedStorageGiB": 32 }, "fileShareRecommendations": { - "baseIOPS": 3000, - "ioScalar": 1, + "bandwidthScalar": 0.1, "baseBandwidthMiBPerSec": 125, - "bandwidthScalar": 0.1 + "baseIOPS": 3000, + "ioScalar": 1 }, - "burstingConstants": { - "burstFloorIOPS": 10000, - "burstIOScalar": 3, - "burstTimeframeSeconds": 3600 + "storageAccountLimits": { + "maxFileShares": 50, + "maxProvisionedBandwidthMiBPerSec": 10340, + "maxProvisionedIOPS": 102400, + "maxProvisionedStorageGiB": 262144 }, "storageAccountUsage": { "liveShares": { "fileShareCount": 2, - "provisionedStorageGiB": 64, + "provisionedBandwidthMiBPerSec": 258, "provisionedIOPS": 6064, - "provisionedBandwidthMiBPerSec": 258 + "provisionedStorageGiB": 64 }, "softDeletedShares": { "fileShareCount": 1, - "provisionedStorageGiB": 100, + "provisionedBandwidthMiBPerSec": 125, "provisionedIOPS": 3000, - "provisionedBandwidthMiBPerSec": 125 + "provisionedStorageGiB": 100 } } } } } - } + }, + "operationId": "FileServices_GetServiceUsage", + "title": "GetFileServiceUsage" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesList.json index 03554df45b3d..55e364188f98 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesList.json @@ -1,26 +1,27 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9290", "accountName": "sto1590", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/fileServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", "properties": { "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -30,49 +31,48 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] } @@ -85,5 +85,7 @@ ] } } - } + }, + "operationId": "FileServices_List", + "title": "ListFileServices" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesListUsages.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesListUsages.json index 608b26b1c0e3..12224cae8317 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesListUsages.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesListUsages.json @@ -1,58 +1,58 @@ { "parameters": { - "subscriptionId": "00000000-1111-2222-3333-444444444444", - "resourceGroupName": "res4410", - "accountName": "sto8607", "FileServicesName": "default", + "accountName": "sto8607", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-1111-2222-3333-444444444444" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default/usages/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/fileServices/usages", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default/usages/default", "properties": { - "storageAccountLimits": { - "maxFileShares": 50, - "maxProvisionedStorageGiB": 262144, - "maxProvisionedIOPS": 102400, - "maxProvisionedBandwidthMiBPerSec": 10340 + "burstingConstants": { + "burstFloorIOPS": 10000, + "burstIOScalar": 3, + "burstTimeframeSeconds": 3600 }, "fileShareLimits": { - "minProvisionedStorageGiB": 32, - "maxProvisionedStorageGiB": 262144, - "minProvisionedIOPS": 3000, + "maxProvisionedBandwidthMiBPerSec": 10340, "maxProvisionedIOPS": 102400, + "maxProvisionedStorageGiB": 262144, "minProvisionedBandwidthMiBPerSec": 125, - "maxProvisionedBandwidthMiBPerSec": 10340 + "minProvisionedIOPS": 3000, + "minProvisionedStorageGiB": 32 }, "fileShareRecommendations": { - "baseIOPS": 3000, - "ioScalar": 1, + "bandwidthScalar": 0.1, "baseBandwidthMiBPerSec": 125, - "bandwidthScalar": 0.1 + "baseIOPS": 3000, + "ioScalar": 1 }, - "burstingConstants": { - "burstFloorIOPS": 10000, - "burstIOScalar": 3, - "burstTimeframeSeconds": 3600 + "storageAccountLimits": { + "maxFileShares": 50, + "maxProvisionedBandwidthMiBPerSec": 10340, + "maxProvisionedIOPS": 102400, + "maxProvisionedStorageGiB": 262144 }, "storageAccountUsage": { "liveShares": { "fileShareCount": 2, - "provisionedStorageGiB": 64, + "provisionedBandwidthMiBPerSec": 258, "provisionedIOPS": 6064, - "provisionedBandwidthMiBPerSec": 258 + "provisionedStorageGiB": 64 }, "softDeletedShares": { "fileShareCount": 1, - "provisionedStorageGiB": 100, + "provisionedBandwidthMiBPerSec": 125, "provisionedIOPS": 3000, - "provisionedBandwidthMiBPerSec": 125 + "provisionedStorageGiB": 100 } } } @@ -60,5 +60,7 @@ ] } } - } + }, + "operationId": "FileServices_ListServiceUsages", + "title": "ListFileServiceUsages" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut.json index 522e989b8139..8e78d672f54e 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut.json @@ -1,9 +1,7 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", - "accountName": "sto8607", "FileServicesName": "default", + "accountName": "sto8607", "api-version": "2025-06-01", "monitor": "true", "parameters": { @@ -11,9 +9,10 @@ "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -23,68 +22,70 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] } } - } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/fileServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", "properties": { "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -94,49 +95,48 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] } @@ -147,5 +147,7 @@ } } } - } + }, + "operationId": "FileServices_SetServiceProperties", + "title": "PutFileServices" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut_EnableSMBMultichannel.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut_EnableSMBMultichannel.json index ed9a591487b5..1075d49e5d8e 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut_EnableSMBMultichannel.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut_EnableSMBMultichannel.json @@ -1,9 +1,7 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", - "accountName": "sto8607", "FileServicesName": "default", + "accountName": "sto8607", "api-version": "2025-06-01", "monitor": "true", "parameters": { @@ -16,14 +14,16 @@ } } } - } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/fileServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", "properties": { "protocolSettings": { "smb": { @@ -39,5 +39,7 @@ } } } - } + }, + "operationId": "FileServices_SetServiceProperties", + "title": "PutFileServices_EnableSMBMultichannel" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut_EnableSecureSmbFeatures.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut_EnableSecureSmbFeatures.json index 740161399d4d..3c04af02dd9c 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut_EnableSecureSmbFeatures.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut_EnableSecureSmbFeatures.json @@ -1,37 +1,37 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", - "accountName": "sto8607", "FileServicesName": "default", + "accountName": "sto8607", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { "protocolSettings": { "smb": { - "versions": "SMB2.1;SMB3.0;SMB3.1.1", "authenticationMethods": "NTLMv2;Kerberos", + "channelEncryption": "AES-128-CCM;AES-128-GCM;AES-256-GCM", "kerberosTicketEncryption": "RC4-HMAC;AES-256", - "channelEncryption": "AES-128-CCM;AES-128-GCM;AES-256-GCM" + "versions": "SMB2.1;SMB3.0;SMB3.1.1" } } } - } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/fileServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", "properties": { "protocolSettings": { "smb": { - "versions": "SMB2.1;SMB3.0;SMB3.1.1", "authenticationMethods": "NTLMv2;Kerberos", + "channelEncryption": "AES-128-CCM;AES-128-GCM;AES-256-GCM", "kerberosTicketEncryption": "RC4-HMAC;AES-256", - "channelEncryption": "AES-128-CCM;AES-128-GCM;AES-256-GCM" + "versions": "SMB2.1;SMB3.0;SMB3.1.1" } } }, @@ -41,5 +41,7 @@ } } } - } + }, + "operationId": "FileServices_SetServiceProperties", + "title": "PutFileServices_EnableSecureSmbFeatures" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut_EncryptionInTransitRequired.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut_EncryptionInTransitRequired.json index 1be8d01d9210..3b3ac786a38b 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut_EncryptionInTransitRequired.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileServicesPut_EncryptionInTransitRequired.json @@ -1,42 +1,42 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", - "accountName": "sto8607", "FileServicesName": "default", + "accountName": "sto8607", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { "protocolSettings": { - "smb": { + "nfs": { "encryptionInTransit": { "required": true } }, - "nfs": { + "smb": { "encryptionInTransit": { "required": true } } } } - } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/fileServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/fileServices/default", "properties": { "protocolSettings": { - "smb": { + "nfs": { "encryptionInTransit": { "required": true } }, - "nfs": { + "smb": { "encryptionInTransit": { "required": true } @@ -49,5 +49,7 @@ } } } - } + }, + "operationId": "FileServices_SetServiceProperties", + "title": "PutFileServices_EncryptionInTransitRequired" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileShareAclsPatch.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileShareAclsPatch.json index e81b8c1543f3..a916e170b84a 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileShareAclsPatch.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileShareAclsPatch.json @@ -1,45 +1,47 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "shareName": "share6185", "api-version": "2025-06-01", - "monitor": "true", "fileShare": { "properties": { "signedIdentifiers": [ { - "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI", "accessPolicy": { - "startTime": "2021-04-01T08:49:37.0000000Z", "expiryTime": "2021-05-01T08:49:37.0000000Z", - "permission": "rwd" - } + "permission": "rwd", + "startTime": "2021-04-01T08:49:37.0000000Z" + }, + "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI" } ] } - } + }, + "monitor": "true", + "resourceGroupName": "res3376", + "shareName": "share6185", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", "name": "share6185", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", "properties": { "signedIdentifiers": [ { - "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI", "accessPolicy": { - "startTime": "2021-04-01T08:49:37.0000000Z", "expiryTime": "2021-05-01T08:49:37.0000000Z", - "permission": "rwd" - } + "permission": "rwd", + "startTime": "2021-04-01T08:49:37.0000000Z" + }, + "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI" } ] } } } - } + }, + "operationId": "FileShares_Update", + "title": "UpdateShareAcls" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileShareSnapshotsList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileShareSnapshotsList.json index 7e2c26af995d..644eac127bf7 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileShareSnapshotsList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileShareSnapshotsList.json @@ -1,31 +1,31 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9290", - "accountName": "sto1590", "$expand": "snapshots", + "accountName": "sto1590", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", "name": "share4052", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", "properties": { "lastModifiedTime": "2020-10-26T05:47:05.0000000Z", "shareQuota": 1024 } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", "name": "share4052", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", "properties": { "lastModifiedTime": "2020-10-26T05:47:05.0000000Z", "shareQuota": 1024, @@ -35,5 +35,7 @@ ] } } - } + }, + "operationId": "FileShares_List", + "title": "ListShareSnapshots" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesDelete.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesDelete.json index bb380316097c..a2773d297ace 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesDelete.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesDelete.json @@ -1,14 +1,16 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4079", "accountName": "sto4506", - "shareName": "share9689", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res4079", + "shareName": "share9689", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "FileShares_Delete", + "title": "DeleteShares" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet.json index 5cbf6768ebd2..37a6d5023ed6 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet.json @@ -1,24 +1,26 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9871", "accountName": "sto6217", - "shareName": "share1634", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9871", + "shareName": "share1634", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/fileServices/default/shares/share1634", "name": "share1634", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D592D74CC20EBA\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/fileServices/default/shares/share1634", "properties": { "lastModifiedTime": "2019-05-26T05:06:14Z", "shareQuota": 1024 } } } - } + }, + "operationId": "FileShares_Get", + "title": "GetShares" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet_PaidBursting.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet_PaidBursting.json index 0c3a3371e68c..fc52f0fbcab8 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet_PaidBursting.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet_PaidBursting.json @@ -1,29 +1,31 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9871", "accountName": "sto6217", - "shareName": "share1634", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9871", + "shareName": "share1634", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/fileServices/default/shares/share1634", "name": "share1634", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D592D74CC20EBA\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/fileServices/default/shares/share1634", "properties": { - "lastModifiedTime": "2019-05-26T05:06:14Z", - "shareQuota": 1024, "fileSharePaidBursting": { "paidBurstingEnabled": true, - "paidBurstingMaxIops": 102400, - "paidBurstingMaxBandwidthMibps": 10340 - } + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 + }, + "lastModifiedTime": "2019-05-26T05:06:14Z", + "shareQuota": 1024 } } } - } + }, + "operationId": "FileShares_Get", + "title": "GetSharePaidBursting" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet_ProvisionedV2.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet_ProvisionedV2.json index c1ceb9ecfdab..49e5e693ae5c 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet_ProvisionedV2.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet_ProvisionedV2.json @@ -1,31 +1,33 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9871", "accountName": "sto6217", - "shareName": "share1634", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9871", + "shareName": "share1634", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/fileServices/default/shares/share1634", "name": "share1634", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D592D74CC20EBA\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/fileServices/default/shares/share1634", "properties": { - "lastModifiedTime": "2024-10-25T01:50:50.0000000Z", - "shareQuota": 100, - "provisionedIops": 5000, - "provisionedBandwidthMibps": 200, "includedBurstIops": 15000, + "lastModifiedTime": "2024-10-25T01:50:50.0000000Z", "maxBurstCreditsForIops": 36000000, - "nextAllowedQuotaDowngradeTime": "Sat, 26 Oct 2024 01:50:50 GMT", + "nextAllowedProvisionedBandwidthDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", "nextAllowedProvisionedIopsDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", - "nextAllowedProvisionedBandwidthDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT" + "nextAllowedQuotaDowngradeTime": "Sat, 26 Oct 2024 01:50:50 GMT", + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 } } } - } + }, + "operationId": "FileShares_Get", + "title": "GetShareProvisionedV2" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet_Stats.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet_Stats.json index 245fd09d9146..881504aed018 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet_Stats.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesGet_Stats.json @@ -1,20 +1,20 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9871", - "accountName": "sto6217", - "shareName": "share1634", "$expand": "stats", + "accountName": "sto6217", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9871", + "shareName": "share1634", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/fileServices/default/shares/share1634", "name": "share1634", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D592D74CC20EBA\"", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/fileServices/default/shares/share1634", "properties": { "lastModifiedTime": "2019-05-26T05:06:14Z", "shareQuota": 1024, @@ -22,5 +22,7 @@ } } } - } + }, + "operationId": "FileShares_Get", + "title": "GetShareStats" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesLease_Acquire.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesLease_Acquire.json index 0c1fa675975c..6300b32e5383 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesLease_Acquire.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesLease_Acquire.json @@ -1,18 +1,18 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "shareName": "share124", "api-version": "2025-06-01", "monitor": "true", "parameters": { "action": "Acquire", - "leaseId": null, "breakPeriod": null, "leaseDuration": -1, + "leaseId": null, "proposedLeaseId": null - } + }, + "resourceGroupName": "res3376", + "shareName": "share124", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -20,5 +20,7 @@ "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d" } } - } + }, + "operationId": "FileShares_Lease", + "title": "Acquire a lease on a share" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesLease_Break.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesLease_Break.json index 4aac1392ae3f..6bf71d5f6717 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesLease_Break.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesLease_Break.json @@ -1,18 +1,18 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "shareName": "share12", "api-version": "2025-06-01", "monitor": "true", "parameters": { "action": "Break", - "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", "breakPeriod": null, "leaseDuration": null, + "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", "proposedLeaseId": null - } + }, + "resourceGroupName": "res3376", + "shareName": "share12", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -20,5 +20,7 @@ "leaseTimeSeconds": "0" } } - } + }, + "operationId": "FileShares_Lease", + "title": "Break a lease on a share" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesList.json index 7fdffad60259..75d500921c89 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesList.json @@ -1,38 +1,40 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9290", "accountName": "sto1590", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "nextLink": "https://sto1590endpoint/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto1590/share5103", "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share1644", "name": "share1644", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D589847D51C7DE\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share1644", "properties": { "lastModifiedTime": "2019-05-14T08:20:47Z", "shareQuota": 1024 } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", "name": "share4052", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", "properties": { "lastModifiedTime": "2019-05-14T08:20:47Z", "shareQuota": 1024 } } - ], - "nextLink": "https://sto1590endpoint/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto1590/share5103" + ] } } - } + }, + "operationId": "FileShares_List", + "title": "ListShares" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesList_PaidBursting.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesList_PaidBursting.json index bb62bb4de2d0..e4a2eda13e73 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesList_PaidBursting.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesList_PaidBursting.json @@ -1,48 +1,50 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9290", "accountName": "sto1590", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "nextLink": "https://sto1590endpoint/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto1590/share5103", "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share1644", "name": "share1644", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D589847D51C7DE\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share1644", "properties": { - "lastModifiedTime": "2019-05-14T08:20:47Z", - "shareQuota": 1024, "fileSharePaidBursting": { "paidBurstingEnabled": true, - "paidBurstingMaxIops": 102400, - "paidBurstingMaxBandwidthMibps": 10340 - } + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 + }, + "lastModifiedTime": "2019-05-14T08:20:47Z", + "shareQuota": 1024 } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", "name": "share4052", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", "properties": { - "lastModifiedTime": "2019-05-14T08:20:47Z", - "shareQuota": 1024, "fileSharePaidBursting": { "paidBurstingEnabled": true, - "paidBurstingMaxIops": 102400, - "paidBurstingMaxBandwidthMibps": 10340 - } + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 + }, + "lastModifiedTime": "2019-05-14T08:20:47Z", + "shareQuota": 1024 } } - ], - "nextLink": "https://sto1590endpoint/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto1590/share5103" + ] } } - } + }, + "operationId": "FileShares_List", + "title": "ListSharesPaidBursting" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesList_ProvisionedV2.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesList_ProvisionedV2.json index 1d992ea47027..955ff0884305 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesList_ProvisionedV2.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesList_ProvisionedV2.json @@ -1,52 +1,54 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9290", "accountName": "sto1590", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "nextLink": "https://sto1590endpoint/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto1590/share5103", "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share1644", "name": "share1644", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D589847D51C7DE\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share1644", "properties": { - "lastModifiedTime": "2024-10-25T01:50:50.0000000Z", - "shareQuota": 100, - "provisionedIops": 5000, - "provisionedBandwidthMibps": 200, "includedBurstIops": 15000, + "lastModifiedTime": "2024-10-25T01:50:50.0000000Z", "maxBurstCreditsForIops": 36000000, - "nextAllowedQuotaDowngradeTime": "Sat, 26 Oct 2024 01:50:50 GMT", + "nextAllowedProvisionedBandwidthDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", "nextAllowedProvisionedIopsDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", - "nextAllowedProvisionedBandwidthDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT" + "nextAllowedQuotaDowngradeTime": "Sat, 26 Oct 2024 01:50:50 GMT", + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", "name": "share4052", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", "etag": "\"0x8D589847DAB5AF9\"", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares/share4052", "properties": { - "lastModifiedTime": "2024-10-25T01:50:50.0000000Z", - "shareQuota": 100, - "provisionedIops": 5000, - "provisionedBandwidthMibps": 200, "includedBurstIops": 15000, + "lastModifiedTime": "2024-10-25T01:50:50.0000000Z", "maxBurstCreditsForIops": 36000000, - "nextAllowedQuotaDowngradeTime": "Sat, 26 Oct 2024 01:50:50 GMT", + "nextAllowedProvisionedBandwidthDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", "nextAllowedProvisionedIopsDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", - "nextAllowedProvisionedBandwidthDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT" + "nextAllowedQuotaDowngradeTime": "Sat, 26 Oct 2024 01:50:50 GMT", + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 } } - ], - "nextLink": "https://sto1590endpoint/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/fileServices/default/shares?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto1590/share5103" + ] } } - } + }, + "operationId": "FileShares_List", + "title": "ListSharesProvisionedV2" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPatch.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPatch.json index 476898a5b5a1..2f81fdc3c6fc 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPatch.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPatch.json @@ -1,25 +1,25 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "shareName": "share6185", "api-version": "2025-06-01", - "monitor": "true", "fileShare": { "properties": { "metadata": { "type": "image" } } - } + }, + "monitor": "true", + "resourceGroupName": "res3376", + "shareName": "share6185", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", "name": "share6185", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", "properties": { "metadata": { "type": "image" @@ -27,5 +27,7 @@ } } } - } + }, + "operationId": "FileShares_Update", + "title": "UpdateShares" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPatch_PaidBursting.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPatch_PaidBursting.json index c749a242b563..a292d588ec57 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPatch_PaidBursting.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPatch_PaidBursting.json @@ -1,35 +1,37 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "shareName": "share6185", "api-version": "2025-06-01", - "monitor": "true", "fileShare": { "properties": { "fileSharePaidBursting": { "paidBurstingEnabled": true, - "paidBurstingMaxIops": 102400, - "paidBurstingMaxBandwidthMibps": 10340 + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 } } - } + }, + "monitor": "true", + "resourceGroupName": "res3376", + "shareName": "share6185", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", "name": "share6185", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", "properties": { "fileSharePaidBursting": { "paidBurstingEnabled": true, - "paidBurstingMaxIops": 102400, - "paidBurstingMaxBandwidthMibps": 10340 + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 } } } } - } + }, + "operationId": "FileShares_Update", + "title": "UpdateSharePaidBursting" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPatch_ProvisionedV2.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPatch_ProvisionedV2.json index 106b41cc95e4..a28bf77824b1 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPatch_ProvisionedV2.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPatch_ProvisionedV2.json @@ -1,36 +1,38 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "shareName": "share6185", "api-version": "2025-06-01", - "monitor": "true", "fileShare": { "properties": { - "shareQuota": 100, + "provisionedBandwidthMibps": 200, "provisionedIops": 5000, - "provisionedBandwidthMibps": 200 + "shareQuota": 100 } - } + }, + "monitor": "true", + "resourceGroupName": "res3376", + "shareName": "share6185", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", "name": "share6185", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", "properties": { - "shareQuota": 100, - "provisionedIops": 5000, - "provisionedBandwidthMibps": 200, "includedBurstIops": 15000, "maxBurstCreditsForIops": 36000000, - "nextAllowedQuotaDowngradeTime": "Sat, 26 Oct 2024 01:50:50 GMT", + "nextAllowedProvisionedBandwidthDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", "nextAllowedProvisionedIopsDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT", - "nextAllowedProvisionedBandwidthDowngradeTime": "Fri, 25 Oct 2024 01:48:09 GMT" + "nextAllowedQuotaDowngradeTime": "Sat, 26 Oct 2024 01:50:50 GMT", + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 } } } - } + }, + "operationId": "FileShares_Update", + "title": "UpdateShareProvisionedV2" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut.json index 085b06eeda65..68ee13e7f3cd 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut.json @@ -1,27 +1,29 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "shareName": "share6185", "api-version": "2025-06-01", + "fileShare": {}, "monitor": "true", - "fileShare": {} + "resourceGroupName": "res3376", + "shareName": "share6185", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { - "201": { + "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", "name": "share6185", - "type": "Microsoft.Storage/storageAccounts/fileServices/shares" + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185" } }, - "200": { + "201": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185", "name": "share6185", - "type": "Microsoft.Storage/storageAccounts/fileServices/shares" + "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/fileServices/default/shares/share6185" } } - } + }, + "operationId": "FileShares_Create", + "title": "PutShares" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_AccessTier.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_AccessTier.json index 9d57a4eb6681..60fbae8b00cd 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_AccessTier.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_AccessTier.json @@ -1,37 +1,39 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res346", "accountName": "sto666", - "shareName": "share1235", "api-version": "2025-06-01", - "monitor": "true", "fileShare": { "properties": { "accessTier": "Hot" } - } + }, + "monitor": "true", + "resourceGroupName": "res346", + "shareName": "share1235", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { - "201": { + "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "name": "share1235", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "properties": { "accessTier": "Hot" } } }, - "200": { + "201": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "name": "share1235", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "properties": { "accessTier": "Hot" } } } - } + }, + "operationId": "FileShares_Create", + "title": "PutShares with Access Tier" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_NFS.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_NFS.json index 2e2075292229..9710c876b1b1 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_NFS.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_NFS.json @@ -1,37 +1,39 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res346", "accountName": "sto666", - "shareName": "share1235", "api-version": "2025-06-01", - "monitor": "true", "fileShare": { "properties": { "enabledProtocols": "NFS" } - } + }, + "monitor": "true", + "resourceGroupName": "res346", + "shareName": "share1235", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { - "201": { + "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "name": "share1235", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "properties": { "enabledProtocols": "NFS" } } }, - "200": { + "201": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "name": "share1235", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "properties": { "enabledProtocols": "NFS" } } } - } + }, + "operationId": "FileShares_Create", + "title": "Create NFS Shares" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_PaidBursting.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_PaidBursting.json index 246ab7cd4421..48ed146bea43 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_PaidBursting.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_PaidBursting.json @@ -1,49 +1,51 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res346", "accountName": "sto666", - "shareName": "share1235", "api-version": "2025-06-01", - "monitor": "true", "fileShare": { "properties": { "fileSharePaidBursting": { "paidBurstingEnabled": true, - "paidBurstingMaxIops": 102400, - "paidBurstingMaxBandwidthMibps": 10340 + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 } } - } + }, + "monitor": "true", + "resourceGroupName": "res346", + "shareName": "share1235", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { - "201": { + "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "name": "share1235", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "properties": { "fileSharePaidBursting": { "paidBurstingEnabled": true, - "paidBurstingMaxIops": 102400, - "paidBurstingMaxBandwidthMibps": 10340 + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 } } } }, - "200": { + "201": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "name": "share1235", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "properties": { "fileSharePaidBursting": { "paidBurstingEnabled": true, - "paidBurstingMaxIops": 102400, - "paidBurstingMaxBandwidthMibps": 10340 + "paidBurstingMaxBandwidthMibps": 10340, + "paidBurstingMaxIops": 102400 } } } } - } + }, + "operationId": "FileShares_Create", + "title": "PutShares with Paid Bursting" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_ProvisionedV2.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_ProvisionedV2.json index 7983cd400ff4..4e17db56e16e 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_ProvisionedV2.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesPut_ProvisionedV2.json @@ -1,47 +1,49 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res346", "accountName": "sto666", - "shareName": "share1235", "api-version": "2025-06-01", - "monitor": "true", "fileShare": { "properties": { - "shareQuota": 100, + "provisionedBandwidthMibps": 200, "provisionedIops": 5000, - "provisionedBandwidthMibps": 200 + "shareQuota": 100 } - } + }, + "monitor": "true", + "resourceGroupName": "res346", + "shareName": "share1235", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { - "201": { + "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "name": "share1235", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "properties": { - "shareQuota": 100, - "provisionedIops": 5000, - "provisionedBandwidthMibps": 200, "includedBurstIops": 15000, - "maxBurstCreditsForIops": 36000000 + "maxBurstCreditsForIops": 36000000, + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 } } }, - "200": { + "201": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "name": "share1235", "type": "Microsoft.Storage/storageAccounts/fileServices/shares", + "id": "/subscriptions/{subscription-id}/resourceGroups/res346/providers/Microsoft.Storage/storageAccounts/sto666/fileServices/default/shares/share1235", "properties": { - "shareQuota": 100, - "provisionedIops": 5000, - "provisionedBandwidthMibps": 200, "includedBurstIops": 15000, - "maxBurstCreditsForIops": 36000000 + "maxBurstCreditsForIops": 36000000, + "provisionedBandwidthMibps": 200, + "provisionedIops": 5000, + "shareQuota": 100 } } } - } + }, + "operationId": "FileShares_Create", + "title": "PutSharesProvisionedV2" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesRestore.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesRestore.json index 427464cb4f54..a076b07da2ec 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesRestore.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/FileSharesRestore.json @@ -1,17 +1,19 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "shareName": "share1249", + "api-version": "2025-06-01", "deletedShare": { "deletedShareName": "share1249", "deletedShareVersion": "1234567890" }, - "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res3376", + "shareName": "share1249", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {} - } + }, + "operationId": "FileShares_Restore", + "title": "RestoreShares" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserCreate.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserCreate.json index 09f724a3d663..57d20113fb42 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserCreate.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserCreate.json @@ -1,70 +1,72 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "username": "user1", "api-version": "2025-06-01", + "monitor": "true", "properties": { "properties": { + "allowAclAuthorization": true, + "groupId": 2000, + "hasSshPassword": true, + "homeDirectory": "homedirectory", "permissionScopes": [ { "permissions": "rwd", - "service": "file", - "resourceName": "share1" + "resourceName": "share1", + "service": "file" }, { "permissions": "rw", - "service": "file", - "resourceName": "share2" + "resourceName": "share2", + "service": "file" } ], - "homeDirectory": "homedirectory", - "hasSshPassword": true, "sshAuthorizedKeys": [ { "description": "key name", "key": "ssh-rsa keykeykeykeykey=" } - ], - "groupId": 2000, - "allowAclAuthorization": true + ] } }, - "monitor": "true" + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", "name": "user1", "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", "properties": { + "allowAclAuthorization": true, + "groupId": 2000, + "homeDirectory": "homedirectory", "permissionScopes": [ { "permissions": "rwd", - "service": "file", - "resourceName": "share1" + "resourceName": "share1", + "service": "file" }, { "permissions": "rw", - "service": "file", - "resourceName": "share2" + "resourceName": "share2", + "service": "file" } ], - "homeDirectory": "homedirectory", + "sid": "S-1-2-0-125132-153423-36235-1000", "sshAuthorizedKeys": [ { "description": "key name", "key": "ssh-rsa keykeykeykeykey=" } ], - "sid": "S-1-2-0-125132-153423-36235-1000", - "userId": 1000, - "groupId": 2000, - "allowAclAuthorization": true + "userId": 1000 } } } - } + }, + "operationId": "LocalUsers_CreateOrUpdate", + "title": "CreateLocalUser" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserCreateNFSv3Enabled.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserCreateNFSv3Enabled.json index 127cf4f9ed2c..5e7693b2c1dc 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserCreateNFSv3Enabled.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserCreateNFSv3Enabled.json @@ -1,10 +1,8 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "username": "user1", "api-version": "2025-06-01", + "monitor": "true", "properties": { "properties": { "extendedGroups": [ @@ -15,46 +13,50 @@ "isNFSv3Enabled": true } }, - "monitor": "true" + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", "name": "user1", "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", "properties": { + "allowAclAuthorization": true, + "extendedGroups": [ + 1001, + 1005, + 2005 + ], + "groupId": 2000, + "homeDirectory": "homedirectory", + "isNFSv3Enabled": true, "permissionScopes": [ { "permissions": "rwd", - "service": "file", - "resourceName": "share1" + "resourceName": "share1", + "service": "file" }, { "permissions": "rw", - "service": "file", - "resourceName": "share2" + "resourceName": "share2", + "service": "file" } ], - "homeDirectory": "homedirectory", + "sid": "S-1-2-0-125132-153423-36235-1000", "sshAuthorizedKeys": [ { "description": "key name", "key": "ssh-rsa keykeykeykeykey=" } ], - "sid": "S-1-2-0-125132-153423-36235-1000", - "userId": 1000, - "groupId": 2000, - "allowAclAuthorization": true, - "extendedGroups": [ - 1001, - 1005, - 2005 - ], - "isNFSv3Enabled": true + "userId": 1000 } } } - } + }, + "operationId": "LocalUsers_CreateOrUpdate", + "title": "CreateNFSv3EnabledLocalUser" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserDelete.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserDelete.json index b3ff41c29b3d..b88fdafdfae9 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserDelete.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserDelete.json @@ -1,14 +1,16 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "username": "user1", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "LocalUsers_Delete", + "title": "DeleteLocalUser" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserGet.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserGet.json index beadf4760c47..5208482cfddf 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserGet.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserGet.json @@ -1,47 +1,49 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "username": "user1", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", "name": "user1", "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", "properties": { + "allowAclAuthorization": true, + "extendedGroups": [ + 1001, + 1005, + 2005 + ], + "groupId": 2000, + "hasSharedKey": true, + "hasSshKey": true, + "hasSshPassword": true, + "homeDirectory": "homedirectory", + "isNFSv3Enabled": true, "permissionScopes": [ { "permissions": "rwd", - "service": "file", - "resourceName": "share1" + "resourceName": "share1", + "service": "file" }, { "permissions": "rw", - "service": "file", - "resourceName": "share2" + "resourceName": "share2", + "service": "file" } ], - "homeDirectory": "homedirectory", "sid": "S-1-2-0-125132-153423-36235-1000", - "hasSharedKey": true, - "hasSshKey": true, - "hasSshPassword": true, - "userId": 1000, - "groupId": 2000, - "allowAclAuthorization": true, - "extendedGroups": [ - 1001, - 1005, - 2005 - ], - "isNFSv3Enabled": true + "userId": 1000 } } } - } + }, + "operationId": "LocalUsers_Get", + "title": "GetLocalUser" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserListKeys.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserListKeys.json index efe6558c35aa..d7faacd1ff54 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserListKeys.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserListKeys.json @@ -1,23 +1,25 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "username": "user1", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" }, "responses": { "200": { "body": { + "sharedKey": "", "sshAuthorizedKeys": [ { "description": "key name", "key": "ssh-rsa keykeykeykeykew=" } - ], - "sharedKey": "" + ] } } - } + }, + "operationId": "LocalUsers_ListKeys", + "title": "ListLocalUserKeys" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserRegeneratePassword.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserRegeneratePassword.json index 845d2d213f4f..82df789df29f 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserRegeneratePassword.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserRegeneratePassword.json @@ -1,11 +1,11 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "username": "user1", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" }, "responses": { "200": { @@ -13,5 +13,7 @@ "sshPassword": "" } } - } + }, + "operationId": "LocalUsers_RegeneratePassword", + "title": "RegenerateLocalUserPassword" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserUpdate.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserUpdate.json index 06dc77916239..937436bcf040 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserUpdate.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUserUpdate.json @@ -1,51 +1,53 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "username": "user1", "api-version": "2025-06-01", + "monitor": "true", "properties": { "properties": { - "homeDirectory": "homedirectory2", - "hasSharedKey": false, - "hasSshPassword": false, - "hasSshKey": false, - "groupId": 3000, "allowAclAuthorization": false, "extendedGroups": [ 1001, 1005, 2005 ], + "groupId": 3000, + "hasSharedKey": false, + "hasSshKey": false, + "hasSshPassword": false, + "homeDirectory": "homedirectory2", "isNFSv3Enabled": true } }, - "monitor": "true" + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "username": "user1" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", "name": "user1", "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", "properties": { - "homeDirectory": "homedirectory2", - "sid": "S-1-2-0-3528686663-1788730862-2791910117-1000", - "hasSharedKey": false, - "hasSshPassword": false, - "hasSshKey": false, - "userId": 1000, - "groupId": 3000, "allowAclAuthorization": false, "extendedGroups": [ 1001, 1005, 2005 ], - "isNFSv3Enabled": true + "groupId": 3000, + "hasSharedKey": false, + "hasSshKey": false, + "hasSshPassword": false, + "homeDirectory": "homedirectory2", + "isNFSv3Enabled": true, + "sid": "S-1-2-0-3528686663-1788730862-2791910117-1000", + "userId": 1000 } } } - } + }, + "operationId": "LocalUsers_CreateOrUpdate", + "title": "UpdateLocalUser" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUsersList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUsersList.json index 1d4fe4809132..cc754ec9e14b 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUsersList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUsersList.json @@ -1,66 +1,68 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "nextLink": null, "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", "name": "user1", "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", "properties": { + "allowAclAuthorization": true, + "groupId": 2000, + "hasSharedKey": true, + "hasSshKey": true, + "hasSshPassword": true, + "homeDirectory": "homedirectory", "permissionScopes": [ { "permissions": "rwd", - "service": "file", - "resourceName": "share1" + "resourceName": "share1", + "service": "file" }, { "permissions": "rw", - "service": "file", - "resourceName": "share2" + "resourceName": "share2", + "service": "file" } ], - "homeDirectory": "homedirectory", "sid": "S-1-2-0-125132-153423-36235-1000", - "hasSharedKey": true, - "hasSshKey": true, - "hasSshPassword": true, - "userId": 1000, - "groupId": 2000, - "allowAclAuthorization": true + "userId": 1000 } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/loalUsers/user2", "name": "user2", "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/loalUsers/user2", "properties": { + "allowAclAuthorization": true, + "groupId": 2000, + "hasSharedKey": true, + "hasSshKey": false, + "hasSshPassword": true, "permissionScopes": [ { "permissions": "rw", - "service": "blob", - "resourceName": "resourcename" + "resourceName": "resourcename", + "service": "blob" } ], "sid": "S-1-2-0-533672-235636-66334-1001", - "hasSharedKey": true, - "hasSshKey": false, - "hasSshPassword": true, - "userId": 1001, - "groupId": 2000, - "allowAclAuthorization": true + "userId": 1001 } } - ], - "nextLink": null + ] } } - } + }, + "operationId": "LocalUsers_List", + "title": "ListLocalUsers" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUsersListNFSv3Enabled.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUsersListNFSv3Enabled.json index e353b9ba44fe..5a1056dc40bd 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUsersListNFSv3Enabled.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/LocalUsersListNFSv3Enabled.json @@ -1,78 +1,80 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", + "$include": "nfsv3", "accountName": "sto2527", "api-version": "2025-06-01", - "$include": "nfsv3", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", "name": "user1", "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/loalUsers/user1", "properties": { + "allowAclAuthorization": true, + "extendedGroups": [ + 1001, + 1005, + 2005 + ], + "groupId": 2000, + "hasSharedKey": true, + "hasSshKey": true, + "hasSshPassword": true, + "homeDirectory": "homedirectory", + "isNFSv3Enabled": true, "permissionScopes": [ { "permissions": "rwd", - "service": "file", - "resourceName": "share1" + "resourceName": "share1", + "service": "file" }, { "permissions": "rw", - "service": "file", - "resourceName": "share2" + "resourceName": "share2", + "service": "file" } ], - "homeDirectory": "homedirectory", "sid": "S-1-2-0-125132-153423-36235-1000", - "hasSharedKey": true, - "hasSshKey": true, - "hasSshPassword": true, - "userId": 1000, - "groupId": 2000, - "allowAclAuthorization": true, - "extendedGroups": [ - 1001, - 1005, - 2005 - ], - "isNFSv3Enabled": true + "userId": 1000 } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/loalUsers/user2", "name": "user2", "type": "Microsoft.Storage/storageAccounts/localUsers", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/loalUsers/user2", "properties": { - "permissionScopes": [ - { - "permissions": "rw", - "service": "blob", - "resourceName": "resourcename" - } - ], - "sid": "S-1-2-0-533672-235636-66334-1001", - "hasSharedKey": true, - "hasSshKey": false, - "hasSshPassword": true, - "userId": 1001, - "groupId": 2000, "allowAclAuthorization": true, "extendedGroups": [ 1001, 1005, 2005 ], - "isNFSv3Enabled": true + "groupId": 2000, + "hasSharedKey": true, + "hasSshKey": false, + "hasSshPassword": true, + "isNFSv3Enabled": true, + "permissionScopes": [ + { + "permissions": "rw", + "resourceName": "resourcename", + "service": "blob" + } + ], + "sid": "S-1-2-0-533672-235636-66334-1001", + "userId": 1001 } } ] } } - } + }, + "operationId": "LocalUsers_List", + "title": "ListNFSv3EnabledLocalUsers" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NetworkSecurityPerimeterConfigurationGet.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NetworkSecurityPerimeterConfigurationGet.json index 4127422da457..f7a02db7d990 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NetworkSecurityPerimeterConfigurationGet.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NetworkSecurityPerimeterConfigurationGet.json @@ -1,41 +1,25 @@ { "parameters": { - "subscriptionId": "00000000-1111-2222-3333-444444444444", - "resourceGroupName": "res4410", "accountName": "sto8607", + "api-version": "2025-06-01", "networkSecurityPerimeterConfigurationName": "dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", - "api-version": "2025-06-01" + "resourceGroupName": "res4410", + "subscriptionId": "00000000-1111-2222-3333-444444444444" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/networkSecurityPerimeterConfigurations/dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", "name": "dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", "type": "Microsoft.Storage/storageAccounts/networkSecurityPerimeterConfigurations", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/networkSecurityPerimeterConfigurations/dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", "properties": { - "provisioningState": "Succeeded", - "provisioningIssues": [ - { - "name": "ConfigurationPropagationFailure", - "properties": { - "issueType": "ConfigurationPropagationFailure", - "severity": "Error", - "description": "Failed to update Network Security Perimeter association." - } - } - ], "networkSecurityPerimeter": { "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774/resourceGroups/res4794/providers/Microsoft.Network/networkSecurityPerimeters/nsp1", - "perimeterGuid": "ce2d5953-5c15-40ca-9d51-cc3f4a63b0f5", - "location": "East US" - }, - "resourceAssociation": { - "name": "resourceAssociation1", - "accessMode": "Enforced" + "location": "East US", + "perimeterGuid": "ce2d5953-5c15-40ca-9d51-cc3f4a63b0f5" }, "profile": { "name": "profile1", - "accessRulesVersion": 10, "accessRules": [ { "name": "allowedSubscriptions", @@ -49,14 +33,32 @@ } } ], + "accessRulesVersion": 10, "diagnosticSettingsVersion": 5, "enabledLogCategories": [ "NspPublicInboundPerimeterRulesAllowed", "NspPublicInboundPerimeterRulesDenied" ] + }, + "provisioningIssues": [ + { + "name": "ConfigurationPropagationFailure", + "properties": { + "description": "Failed to update Network Security Perimeter association.", + "issueType": "ConfigurationPropagationFailure", + "severity": "Error" + } + } + ], + "provisioningState": "Succeeded", + "resourceAssociation": { + "name": "resourceAssociation1", + "accessMode": "Enforced" } } } } - } + }, + "operationId": "NetworkSecurityPerimeterConfigurations_Get", + "title": "NetworkSecurityPerimeterConfigurationGet" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NetworkSecurityPerimeterConfigurationList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NetworkSecurityPerimeterConfigurationList.json index 152ae8cae456..ac4d4ff494e7 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NetworkSecurityPerimeterConfigurationList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NetworkSecurityPerimeterConfigurationList.json @@ -1,54 +1,56 @@ { "parameters": { - "subscriptionId": "00000000-1111-2222-3333-444444444444", - "resourceGroupName": "res4410", "accountName": "sto8607", - "api-version": "2025-06-01" + "api-version": "2025-06-01", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-1111-2222-3333-444444444444" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/networkSecurityPerimeterConfigurations/dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", "name": "dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", "type": "Microsoft.Storage/storageAccounts/networkSecurityPerimeterConfigurations", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/networkSecurityPerimeterConfigurations/dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", "properties": { - "provisioningState": "Succeeded", "networkSecurityPerimeter": { "id": "/subscriptions/dbedb4e0-40e6-4145-81f3-f1314c150774/resourceGroups/res4794/providers/Microsoft.Network/networkSecurityPerimeters/nsp1", - "perimeterGuid": "ce2d5953-5c15-40ca-9d51-cc3f4a63b0f5", - "location": "East US" - }, - "resourceAssociation": { - "name": "association1", - "accessMode": "Enforced" + "location": "East US", + "perimeterGuid": "ce2d5953-5c15-40ca-9d51-cc3f4a63b0f5" }, "profile": { "name": "profile1", - "accessRulesVersion": 10, "accessRules": [ { "name": "inVpnRule", "properties": { - "direction": "Inbound", "addressPrefixes": [ "148.0.0.0/8", "152.4.6.0/24" - ] + ], + "direction": "Inbound" } } ], + "accessRulesVersion": 10, "diagnosticSettingsVersion": 5, "enabledLogCategories": [ "NspPublicInboundPerimeterRulesAllowed", "NspPublicInboundPerimeterRulesDenied" ] + }, + "provisioningState": "Succeeded", + "resourceAssociation": { + "name": "association1", + "accessMode": "Enforced" } } } ] } } - } + }, + "operationId": "NetworkSecurityPerimeterConfigurations_List", + "title": "NetworkSecurityPerimeterConfigurationList" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NetworkSecurityPerimeterConfigurationReconcile.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NetworkSecurityPerimeterConfigurationReconcile.json index 1b81b03664a9..69de089deb3f 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NetworkSecurityPerimeterConfigurationReconcile.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NetworkSecurityPerimeterConfigurationReconcile.json @@ -1,10 +1,10 @@ { "parameters": { - "subscriptionId": "00000000-1111-2222-3333-444444444444", - "resourceGroupName": "res4410", "accountName": "sto8607", + "api-version": "2025-06-01", "networkSecurityPerimeterConfigurationName": "dbedb4e0-40e6-4145-81f3-f1314c150774.resourceAssociation1", - "api-version": "2025-06-01" + "resourceGroupName": "res4410", + "subscriptionId": "00000000-1111-2222-3333-444444444444" }, "responses": { "202": { @@ -12,5 +12,7 @@ "Location": "https://endpoint:port/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Storage/locations/{location}/asyncoperations/{operationid}?monitor=true&api-version=2022-09-01" } } - } + }, + "operationId": "NetworkSecurityPerimeterConfigurations_Reconcile", + "title": "NetworkSecurityPerimeterConfigurationReconcile" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NfsV3AccountCreate.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NfsV3AccountCreate.json index 3cf5ebe1a0d4..4038967a5cbd 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NfsV3AccountCreate.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/NfsV3AccountCreate.json @@ -1,20 +1,14 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { - "sku": { - "name": "Premium_LRS" - }, "kind": "BlockBlobStorage", "location": "eastus", "properties": { + "enableExtendedGroups": true, "isHnsEnabled": true, "isNfsV3Enabled": true, - "enableExtendedGroups": true, - "supportsHttpsTrafficOnly": false, "networkAcls": { "bypass": "AzureServices", "defaultAction": "Allow", @@ -24,22 +18,28 @@ "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Network/virtualNetworks/net123/subnets/subnet12" } ] - } + }, + "supportsHttpsTrafficOnly": false + }, + "sku": { + "name": "Premium_LRS" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", "kind": "BlockBlobStorage", "location": "eastus", - "name": "sto4445", "properties": { + "enableExtendedGroups": true, "isHnsEnabled": true, "isNfsV3Enabled": true, - "enableExtendedGroups": true, - "supportsHttpsTrafficOnly": false, "networkAcls": { "bypass": "AzureServices", "defaultAction": "Allow", @@ -49,15 +49,17 @@ "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Network/virtualNetworks/net123/subnets/subnet12" } ] - } + }, + "supportsHttpsTrafficOnly": false }, "sku": { "name": "Premium_LRS", "tier": "Premium" - }, - "type": "Microsoft.Storage/storageAccounts" + } } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "NfsV3AccountCreate" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/ObjectLevelWormContainerMigration.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/ObjectLevelWormContainerMigration.json index 9ffc530c18a8..dd2b78543220 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/ObjectLevelWormContainerMigration.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/ObjectLevelWormContainerMigration.json @@ -1,12 +1,12 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res1782", "accountName": "sto7069", + "api-version": "2025-06-01", "containerName": "container6397", "immutabilityPolicyName": "default", - "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res1782", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, @@ -15,5 +15,7 @@ "Location": "https://endpoint:port/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/{location}/asyncoperations/{operationid}?monitor=true&api-version=2022-09-01" } } - } + }, + "operationId": "BlobContainers_ObjectLevelWorm", + "title": "VersionLevelWormContainerMigration" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/OperationsList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/OperationsList.json index 4c2853ae4545..710825d16c7e 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/OperationsList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/OperationsList.json @@ -9,136 +9,136 @@ { "name": "Microsoft.Storage/storageAccounts/write", "display": { - "provider": "Microsoft Storage", - "resource": "Storage Accounts", + "description": "Creates a storage account with the specified parameters or update the properties or tags or adds custom domain for the specified storage account.", "operation": "Create/Update Storage Account", - "description": "Creates a storage account with the specified parameters or update the properties or tags or adds custom domain for the specified storage account." + "provider": "Microsoft Storage", + "resource": "Storage Accounts" } }, { "name": "Microsoft.Storage/storageAccounts/delete", "display": { - "provider": "Microsoft Storage", - "resource": "Storage Accounts", + "description": "Deletes an existing storage account.", "operation": "Delete Storage Account", - "description": "Deletes an existing storage account." + "provider": "Microsoft Storage", + "resource": "Storage Accounts" } }, { "name": "Microsoft.Storage/storageAccounts/listkeys/action", "display": { - "provider": "Microsoft Storage", - "resource": "Storage Accounts", + "description": "Returns the access keys for the specified storage account.", "operation": "List Storage Account Keys", - "description": "Returns the access keys for the specified storage account." + "provider": "Microsoft Storage", + "resource": "Storage Accounts" } }, { "name": "Microsoft.Storage/storageAccounts/regeneratekey/action", "display": { - "provider": "Microsoft Storage", - "resource": "Storage Accounts", + "description": "Regenerates the access keys for the specified storage account.", "operation": "Regenerate Storage Account Keys", - "description": "Regenerates the access keys for the specified storage account." + "provider": "Microsoft Storage", + "resource": "Storage Accounts" } }, { "name": "Microsoft.Storage/checknameavailability/read", "display": { - "provider": "Microsoft Storage", - "resource": "Name Availability", + "description": "Checks that account name is valid and is not in use.", "operation": "Check Name Availability", - "description": "Checks that account name is valid and is not in use." + "provider": "Microsoft Storage", + "resource": "Name Availability" } }, { "name": "Microsoft.Storage/storageAccounts/read", "display": { - "provider": "Microsoft Storage", - "resource": "Storage Accounts", + "description": "Returns the list of storage accounts or gets the properties for the specified storage account.", "operation": "List/Get Storage Account(s)", - "description": "Returns the list of storage accounts or gets the properties for the specified storage account." + "provider": "Microsoft Storage", + "resource": "Storage Accounts" } }, { "name": "Microsoft.Storage/usages/read", "display": { - "provider": "Microsoft Storage", - "resource": "Usage Metrics", + "description": "Returns the limit and the current usage count for resources in the specified subscription", "operation": "Get Subscription Usages", - "description": "Returns the limit and the current usage count for resources in the specified subscription" + "provider": "Microsoft Storage", + "resource": "Usage Metrics" } }, { "name": "Microsoft.Storage/storageAccounts/listAccountSas/action", "display": { - "provider": "Microsoft Storage", - "resource": "Storage Account SAS Token", + "description": "Returns the Account SAS token for the specified storage account.", "operation": "Returns Storage Account SAS Token", - "description": "Returns the Account SAS token for the specified storage account." + "provider": "Microsoft Storage", + "resource": "Storage Account SAS Token" } }, { "name": "Microsoft.Storage/storageAccounts/listServiceSas/action", "display": { - "provider": "Microsoft Storage", - "resource": "Returns the Service SAS token for the specified storage account.", + "description": "Storage Service SAS Token", "operation": "Returns Storage Service SAS Token", - "description": "Storage Service SAS Token" + "provider": "Microsoft Storage", + "resource": "Returns the Service SAS token for the specified storage account." } }, { "name": "Microsoft.Storage/locations/deleteVirtualNetworkOrSubnets/action", "display": { - "provider": "Microsoft Storage", - "resource": "Location", + "description": "Notifies Microsoft.Storage that virtual network or subnet is being deleted", "operation": "Delete virtual network or subnets notifications", - "description": "Notifies Microsoft.Storage that virtual network or subnet is being deleted" + "provider": "Microsoft Storage", + "resource": "Location" } }, { "name": "Microsoft.Storage/operations/read", "display": { - "provider": "Microsoft Storage", - "resource": "Operations", + "description": "Polls the status of an asynchronous operation.", "operation": "Poll Asynchronous Operation", - "description": "Polls the status of an asynchronous operation." + "provider": "Microsoft Storage", + "resource": "Operations" } }, { "name": "Microsoft.Storage/register/action", "display": { - "provider": "Microsoft Storage", - "resource": "Storage Resource Provider", + "description": "Registers the subscription for the storage resource provider and enables the creation of storage accounts.", "operation": "Registers the Storage Resource Provider", - "description": "Registers the subscription for the storage resource provider and enables the creation of storage accounts." + "provider": "Microsoft Storage", + "resource": "Storage Resource Provider" } }, { "name": "Microsoft.Storage/skus/read", "display": { - "provider": "Microsoft Storage", - "resource": "Skus", + "description": "Lists the Skus supported by Microsoft.Storage.", "operation": "List Skus", - "description": "Lists the Skus supported by Microsoft.Storage." + "provider": "Microsoft Storage", + "resource": "Skus" } }, { "name": "Microsoft.Storage/storageAccounts/services/diagnosticSettings/write", "display": { - "provider": "Microsoft Storage", - "resource": "Storage Accounts", + "description": "Create/Update storage account diagnostic settings.", "operation": "Create/Update Diagnostic Settings", - "description": "Create/Update storage account diagnostic settings." + "provider": "Microsoft Storage", + "resource": "Storage Accounts" } }, { "name": "Microsoft.Storage/storageAccounts/providers/Microsoft.Insights/metricDefinitions/read", "display": { - "provider": "Microsoft Storage", - "resource": "Storage Accounts", + "description": "Get list of Microsoft Storage Metrics definitions.", "operation": "Get list of Microsoft Storage Metrics definitions", - "description": "Get list of Microsoft Storage Metrics definitions." + "provider": "Microsoft Storage", + "resource": "Storage Accounts" }, "origin": "system", "properties": { @@ -146,13 +146,13 @@ "metricSpecifications": [ { "name": "UsedCapacity", - "displayName": "Used capacity", - "displayDescription": "Account used capacity", - "unit": "Bytes", "aggregationType": "Average", - "fillGapWithZero": false, "category": "Capacity", - "resourceIdDimensionNameOverride": "AccountResourceId" + "displayDescription": "Account used capacity", + "displayName": "Used capacity", + "fillGapWithZero": false, + "resourceIdDimensionNameOverride": "AccountResourceId", + "unit": "Bytes" } ] } @@ -161,30 +161,30 @@ { "name": "Microsoft.Storage/storageAccounts/providers/Microsoft.Insights/diagnosticSettings/read", "display": { - "provider": "Microsoft Storage", - "resource": "Storage Accounts", + "description": "Gets the diagnostic setting for the resource.", "operation": "Read diagnostic setting", - "description": "Gets the diagnostic setting for the resource." + "provider": "Microsoft Storage", + "resource": "Storage Accounts" }, "origin": "system" }, { "name": "Microsoft.Storage/storageAccounts/providers/Microsoft.Insights/diagnosticSettings/write", "display": { - "provider": "Microsoft Storage", - "resource": "Storage Accounts", + "description": "Creates or updates the diagnostic setting for the resource.", "operation": "Write diagnostic setting", - "description": "Creates or updates the diagnostic setting for the resource." + "provider": "Microsoft Storage", + "resource": "Storage Accounts" }, "origin": "system" }, { "name": "Microsoft.Storage/storageAccounts/blobServices/providers/Microsoft.Insights/metricDefinitions/read", "display": { - "provider": "Microsoft Storage", - "resource": "Blob service", + "description": "Get list of Microsoft Storage Metrics definitions.", "operation": "Get list of Microsoft Storage Metrics definitions", - "description": "Get list of Microsoft Storage Metrics definitions." + "provider": "Microsoft Storage", + "resource": "Blob service" }, "origin": "system", "properties": { @@ -192,57 +192,57 @@ "metricSpecifications": [ { "name": "BlobCapacity", - "displayName": "Blob Capacity", - "displayDescription": "The amount of storage used by the storage account’s Blob service in bytes.", - "unit": "Bytes", "aggregationType": "Average", + "category": "Capacity", "dimensions": [ { "name": "BlobType", "displayName": "Blob type" } ], + "displayDescription": "The amount of storage used by the storage account’s Blob service in bytes.", + "displayName": "Blob Capacity", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Bytes" }, { "name": "BlobCount", - "displayName": "Blob Count", - "displayDescription": "The number of Blob in the storage account’s Blob service.", - "unit": "Count", "aggregationType": "Average", + "category": "Capacity", "dimensions": [ { "name": "BlobType", "displayName": "Blob type" } ], + "displayDescription": "The number of Blob in the storage account’s Blob service.", + "displayName": "Blob Count", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Count" }, { "name": "ContainerCount", - "displayName": "Blob Container Count", - "displayDescription": "The number of containers in the storage account’s Blob service.", - "unit": "Count", "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The number of containers in the storage account’s Blob service.", + "displayName": "Blob Container Count", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Count" }, { "name": "BlobProvisionedSize", - "displayName": "Blob Provisioned Size", - "displayDescription": "The amount of storage provisioned in the storage account’s Blob service in bytes.", - "unit": "Bytes", "aggregationType": "Average", + "category": "Capacity", "dimensions": [ { "name": "BlobType", "displayName": "Blob type" } ], + "displayDescription": "The amount of storage provisioned in the storage account’s Blob service in bytes.", + "displayName": "Blob Provisioned Size", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Bytes" } ] } @@ -251,30 +251,30 @@ { "name": "Microsoft.Storage/storageAccounts/blobServices/providers/Microsoft.Insights/diagnosticSettings/read", "display": { - "provider": "Microsoft Storage", - "resource": "Blob service", + "description": "Gets the diagnostic setting for the resource.", "operation": "Read diagnostic setting", - "description": "Gets the diagnostic setting for the resource." + "provider": "Microsoft Storage", + "resource": "Blob service" }, "origin": "system" }, { "name": "Microsoft.Storage/storageAccounts/blobServices/providers/Microsoft.Insights/diagnosticSettings/write", "display": { - "provider": "Microsoft Storage", - "resource": "Blob service", + "description": "Creates or updates the diagnostic setting for the resource.", "operation": "Write diagnostic setting", - "description": "Creates or updates the diagnostic setting for the resource." + "provider": "Microsoft Storage", + "resource": "Blob service" }, "origin": "system" }, { "name": "Microsoft.Storage/storageAccounts/tableServices/providers/Microsoft.Insights/metricDefinitions/read", "display": { - "provider": "Microsoft Storage", - "resource": "Table service", + "description": "Get list of Microsoft Storage Metrics definitions.", "operation": "Get list of Microsoft Storage Metrics definitions", - "description": "Get list of Microsoft Storage Metrics definitions." + "provider": "Microsoft Storage", + "resource": "Table service" }, "origin": "system", "properties": { @@ -282,30 +282,30 @@ "metricSpecifications": [ { "name": "TableCapacity", - "displayName": "Table Capacity", - "displayDescription": "The amount of storage used by the storage account’s Table service in bytes.", - "unit": "Bytes", "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The amount of storage used by the storage account’s Table service in bytes.", + "displayName": "Table Capacity", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Bytes" }, { "name": "TableCount", - "displayName": "Table Count", - "displayDescription": "The number of table in the storage account’s Table service.", - "unit": "Count", "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The number of table in the storage account’s Table service.", + "displayName": "Table Count", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Count" }, { "name": "TableEntityCount", - "displayName": "Table Entity Count", - "displayDescription": "The number of table entities in the storage account’s Table service.", - "unit": "Count", "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The number of table entities in the storage account’s Table service.", + "displayName": "Table Entity Count", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Count" } ] } @@ -314,30 +314,30 @@ { "name": "Microsoft.Storage/storageAccounts/tableServices/providers/Microsoft.Insights/diagnosticSettings/read", "display": { - "provider": "Microsoft Storage", - "resource": "Table service", + "description": "Gets the diagnostic setting for the resource.", "operation": "Read diagnostic setting", - "description": "Gets the diagnostic setting for the resource." + "provider": "Microsoft Storage", + "resource": "Table service" }, "origin": "system" }, { "name": "Microsoft.Storage/storageAccounts/tableServices/providers/Microsoft.Insights/diagnosticSettings/write", "display": { - "provider": "Microsoft Storage", - "resource": "Table service", + "description": "Creates or updates the diagnostic setting for the resource.", "operation": "Write diagnostic setting", - "description": "Creates or updates the diagnostic setting for the resource." + "provider": "Microsoft Storage", + "resource": "Table service" }, "origin": "system" }, { "name": "Microsoft.Storage/storageAccounts/queueServices/providers/Microsoft.Insights/metricDefinitions/read", "display": { - "provider": "Microsoft Storage", - "resource": "Queue service", + "description": "Get list of Microsoft Storage Metrics definitions.", "operation": "Get list of Microsoft Storage Metrics definitions", - "description": "Get list of Microsoft Storage Metrics definitions." + "provider": "Microsoft Storage", + "resource": "Queue service" }, "origin": "system", "properties": { @@ -345,30 +345,30 @@ "metricSpecifications": [ { "name": "QueueCapacity", - "displayName": "Queue Capacity", - "displayDescription": "The amount of storage used by the storage account’s Queue service in bytes.", - "unit": "Bytes", "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The amount of storage used by the storage account’s Queue service in bytes.", + "displayName": "Queue Capacity", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Bytes" }, { "name": "QueueCount", - "displayName": "Queue Count", - "displayDescription": "The number of queue in the storage account’s Queue service.", - "unit": "Count", "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The number of queue in the storage account’s Queue service.", + "displayName": "Queue Count", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Count" }, { "name": "QueueMessageCount", - "displayName": "Queue Message Count", - "displayDescription": "The approximate number of queue messages in the storage account’s Queue service.", - "unit": "Count", "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The approximate number of queue messages in the storage account’s Queue service.", + "displayName": "Queue Message Count", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Count" } ] } @@ -377,30 +377,30 @@ { "name": "Microsoft.Storage/storageAccounts/queueServices/providers/Microsoft.Insights/diagnosticSettings/read", "display": { - "provider": "Microsoft Storage", - "resource": "Queue service", + "description": "Gets the diagnostic setting for the resource.", "operation": "Read diagnostic setting", - "description": "Gets the diagnostic setting for the resource." + "provider": "Microsoft Storage", + "resource": "Queue service" }, "origin": "system" }, { "name": "Microsoft.Storage/storageAccounts/queueServices/providers/Microsoft.Insights/diagnosticSettings/write", "display": { - "provider": "Microsoft Storage", - "resource": "Queue service", + "description": "Creates or updates the diagnostic setting for the resource.", "operation": "Write diagnostic setting", - "description": "Creates or updates the diagnostic setting for the resource." + "provider": "Microsoft Storage", + "resource": "Queue service" }, "origin": "system" }, { "name": "Microsoft.Storage/storageAccounts/fileServices/providers/Microsoft.Insights/metricDefinitions/read", "display": { - "provider": "Microsoft Storage", - "resource": "File service", + "description": "Get list of Microsoft Storage Metrics definitions.", "operation": "Get list of Microsoft Storage Metrics definitions", - "description": "Get list of Microsoft Storage Metrics definitions." + "provider": "Microsoft Storage", + "resource": "File service" }, "origin": "system", "properties": { @@ -408,39 +408,39 @@ "metricSpecifications": [ { "name": "FileCapacity", - "displayName": "File Capacity", - "displayDescription": "The amount of storage used by the storage account’s File service in bytes.", - "unit": "Bytes", "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The amount of storage used by the storage account’s File service in bytes.", + "displayName": "File Capacity", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Bytes" }, { "name": "FileProvisionedSize", - "displayName": "File Provisioned Size", - "displayDescription": "The amount of storage provisioned in the storage account’s File service in bytes.", - "unit": "Bytes", "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The amount of storage provisioned in the storage account’s File service in bytes.", + "displayName": "File Provisioned Size", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Bytes" }, { "name": "FileCount", - "displayName": "File Count", - "displayDescription": "The number of file in the storage account’s File service.", - "unit": "Count", "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The number of file in the storage account’s File service.", + "displayName": "File Count", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Count" }, { "name": "FileShareCount", - "displayName": "File Share Count", - "displayDescription": "The number of file shares in the storage account’s File service.", - "unit": "Count", "aggregationType": "Average", + "category": "Capacity", + "displayDescription": "The number of file shares in the storage account’s File service.", + "displayName": "File Share Count", "fillGapWithZero": false, - "category": "Capacity" + "unit": "Count" } ] } @@ -449,25 +449,27 @@ { "name": "Microsoft.Storage/storageAccounts/fileServices/providers/Microsoft.Insights/diagnosticSettings/read", "display": { - "provider": "Microsoft Storage", - "resource": "File service", + "description": "Gets the diagnostic setting for the resource.", "operation": "Read diagnostic setting", - "description": "Gets the diagnostic setting for the resource." + "provider": "Microsoft Storage", + "resource": "File service" }, "origin": "system" }, { "name": "Microsoft.Storage/storageAccounts/fileServices/providers/Microsoft.Insights/diagnosticSettings/write", "display": { - "provider": "Microsoft Storage", - "resource": "File service", + "description": "Creates or updates the diagnostic setting for the resource.", "operation": "Write diagnostic setting", - "description": "Creates or updates the diagnostic setting for the resource." + "provider": "Microsoft Storage", + "resource": "File service" }, "origin": "system" } ] } } - } + }, + "operationId": "Operations_List", + "title": "OperationsList" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationDelete.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationDelete.json index 90a46481f9ee..ca59dcab1e8d 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationDelete.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationDelete.json @@ -1,13 +1,15 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "queueName": "queue6185", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "queueName": "queue6185", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "204": {} - } + }, + "operationId": "Queue_Delete", + "title": "QueueOperationDelete" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationGet.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationGet.json index 0f3f26d80e73..015deeaf3fef 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationGet.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationGet.json @@ -1,18 +1,18 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "queueName": "queue6185", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "queueName": "queue6185", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185", "name": "queue6185", "type": "Microsoft.Storage/storageAccounts/queueServices/queues", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185", "properties": { "metadata": { "sample1": "meta1", @@ -21,5 +21,7 @@ } } } - } + }, + "operationId": "Queue_Get", + "title": "QueueOperationGet" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationList.json index f3cd874d85d0..71c65fd67983 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationList.json @@ -1,19 +1,20 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9290", "accountName": "sto328", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "nextLink": "https://sto1590endpoint/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto328/queue6187", "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185", "name": "queue6185", "type": "Microsoft.Storage/storageAccounts/queueServices/queues", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185", "properties": { "metadata": { "sample1": "meta1", @@ -22,9 +23,9 @@ } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6186", "name": "queue6186", "type": "Microsoft.Storage/storageAccounts/queueServices/queues", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6186", "properties": { "metadata": { "sample1": "meta1", @@ -32,9 +33,10 @@ } } } - ], - "nextLink": "https://sto1590endpoint/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues?api-version=2022-09-01&$maxpagesize=2&$skipToken=/sto328/queue6187" + ] } } - } + }, + "operationId": "Queue_List", + "title": "QueueOperationList" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationPatch.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationPatch.json index 6a6c0a48e4e3..5a425c699c25 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationPatch.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationPatch.json @@ -1,20 +1,22 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "queueName": "queue6185", "api-version": "2025-06-01", "monitor": "true", - "queue": {} + "queue": {}, + "queueName": "queue6185", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185", "name": "queue6185", - "type": "Microsoft.Storage/storageAccounts/queueServices/queues" + "type": "Microsoft.Storage/storageAccounts/queueServices/queues", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185" } } - } + }, + "operationId": "Queue_Update", + "title": "QueueOperationPatch" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationPut.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationPut.json index 6a6c0a48e4e3..9e7bfa1175d0 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationPut.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationPut.json @@ -1,20 +1,22 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "queueName": "queue6185", "api-version": "2025-06-01", "monitor": "true", - "queue": {} + "queue": {}, + "queueName": "queue6185", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185", "name": "queue6185", - "type": "Microsoft.Storage/storageAccounts/queueServices/queues" + "type": "Microsoft.Storage/storageAccounts/queueServices/queues", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185" } } - } + }, + "operationId": "Queue_Create", + "title": "QueueOperationPut" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationPutWithMetadata.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationPutWithMetadata.json index 4bf4702220b9..727e87e5a7e1 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationPutWithMetadata.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueOperationPutWithMetadata.json @@ -1,9 +1,6 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "queueName": "queue6185", "api-version": "2025-06-01", "monitor": "true", "queue": { @@ -13,14 +10,17 @@ "sample2": "meta2" } } - } + }, + "queueName": "queue6185", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185", "name": "queue6185", "type": "Microsoft.Storage/storageAccounts/queueServices/queues", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/queueServices/default/queues/queue6185", "properties": { "metadata": { "sample1": "meta1", @@ -29,5 +29,7 @@ } } } - } + }, + "operationId": "Queue_Create", + "title": "QueueOperationPutWithMetadata" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueServicesGet.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueServicesGet.json index 03f595d46081..cea446e1c490 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueServicesGet.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueServicesGet.json @@ -1,25 +1,26 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", "accountName": "sto8607", - "queueServiceName": "default", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "queueServiceName": "default", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/queueServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/queueServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/queueServices/default", "properties": { "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -29,54 +30,55 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] } } } } - } + }, + "operationId": "QueueServices_GetServiceProperties", + "title": "QueueServicesGet" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueServicesList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueServicesList.json index 778d8bff3a1e..173a857d8949 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueServicesList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueServicesList.json @@ -1,26 +1,27 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9290", "accountName": "sto1590", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/queueServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/queueServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/queueServices/default", "properties": { "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -30,49 +31,48 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] } @@ -81,5 +81,7 @@ ] } } - } + }, + "operationId": "QueueServices_List", + "title": "QueueServicesList" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueServicesPut.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueServicesPut.json index 87bd6816a50f..d1110fec2e05 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueServicesPut.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/QueueServicesPut.json @@ -1,9 +1,6 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", "accountName": "sto8607", - "queueServiceName": "default", "api-version": "2025-06-01", "monitor": "true", "parameters": { @@ -11,9 +8,10 @@ "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -23,68 +21,71 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] } } - } + }, + "queueServiceName": "default", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/queueServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/queueServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/queueServices/default", "properties": { "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -94,54 +95,55 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] } } } } - } + }, + "operationId": "QueueServices_SetServiceProperties", + "title": "QueueServicesPut" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/SKUList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/SKUList.json index 2bd5fcf158e8..a66d5b286382 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/SKUList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/SKUList.json @@ -1,20 +1,14 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "api-version": "2025-06-01" + "api-version": "2025-06-01", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "eastus" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -29,16 +23,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -53,16 +47,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -77,16 +71,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -101,16 +95,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "eastus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -125,16 +119,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "eastus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -157,16 +151,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "eastus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -185,16 +179,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "eastus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -213,16 +207,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "eastus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "eastus2" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -237,16 +231,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -261,16 +255,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -285,16 +279,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -309,16 +303,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "eastus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -333,16 +327,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "eastus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -365,16 +359,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "eastus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -393,16 +387,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "eastus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -421,16 +415,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "eastus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "eastus2(stage)" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -445,16 +439,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastus2(stage)" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -469,16 +463,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastus2(stage)" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -493,16 +487,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastus2(stage)" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -517,32 +511,32 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "eastus2(stage)" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsnetworkacls", "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "eastus2(stage)" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -565,16 +559,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "eastus2(stage)" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -593,16 +587,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "eastus2(stage)" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -621,16 +615,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "eastus2(stage)" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "westus" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -645,16 +639,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -669,16 +663,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -693,16 +687,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -717,16 +711,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "westus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -741,16 +735,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "westus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -773,16 +767,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "westus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -801,16 +795,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "westus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -829,16 +823,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "westus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "westeurope" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -853,16 +847,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -877,16 +871,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -901,16 +895,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -925,16 +919,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "westeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -949,16 +943,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "westeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -981,16 +975,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "westeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -1009,16 +1003,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "westeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -1037,16 +1031,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "westeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "eastasia" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -1061,16 +1055,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1085,16 +1079,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1109,16 +1103,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1133,16 +1127,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "eastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1157,16 +1151,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "eastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -1189,16 +1183,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "eastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -1217,16 +1211,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "eastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -1245,16 +1239,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "eastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "southeastasia" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -1269,16 +1263,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "southeastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1293,16 +1287,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "southeastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1317,16 +1311,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "southeastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1341,16 +1335,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "southeastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1365,16 +1359,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "southeastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -1397,16 +1391,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "southeastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -1425,16 +1419,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "southeastasia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -1453,16 +1447,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "southeastasia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "japaneast" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -1477,16 +1471,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "japaneast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1501,16 +1495,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "japaneast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1525,16 +1519,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "japaneast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1549,16 +1543,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "japaneast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1573,16 +1567,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "japaneast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -1605,16 +1599,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "japaneast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -1633,16 +1627,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "japaneast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -1661,16 +1655,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "japaneast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "japanwest" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -1685,16 +1679,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "japanwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1709,16 +1703,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "japanwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1733,16 +1727,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "japanwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1757,16 +1751,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "japanwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1781,16 +1775,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "japanwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -1813,16 +1807,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "japanwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -1841,16 +1835,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "japanwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -1869,16 +1863,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "japanwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "northcentralus" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -1893,16 +1887,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "northcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1917,16 +1911,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "northcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1941,16 +1935,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "northcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1965,16 +1959,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "northcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -1989,16 +1983,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "northcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -2021,16 +2015,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "northcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -2049,16 +2043,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "northcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -2077,16 +2071,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "northcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "southcentralus" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -2101,16 +2095,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "southcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2125,16 +2119,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "southcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2149,16 +2143,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "southcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2173,16 +2167,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "southcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2197,16 +2191,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "southcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -2229,16 +2223,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "southcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -2257,16 +2251,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "southcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -2285,16 +2279,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "southcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "centralus" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -2309,16 +2303,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "centralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2333,16 +2327,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "centralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2357,16 +2351,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "centralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2381,16 +2375,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "centralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2405,16 +2399,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "centralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -2437,16 +2431,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "centralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -2465,16 +2459,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "centralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -2493,16 +2487,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "centralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "northeurope" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -2517,16 +2511,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "northeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2541,16 +2535,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "northeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2565,16 +2559,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "northeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2589,16 +2583,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "northeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2613,16 +2607,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "northeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -2645,16 +2639,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "northeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -2673,16 +2667,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "northeurope" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -2701,16 +2695,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "northeurope" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "brazilsouth" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -2725,16 +2719,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "brazilsouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2749,16 +2743,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "brazilsouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2773,16 +2767,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "brazilsouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2797,16 +2791,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "brazilsouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2821,16 +2815,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "brazilsouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -2853,16 +2847,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "brazilsouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -2881,16 +2875,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "brazilsouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -2909,16 +2903,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "brazilsouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "australiaeast" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -2933,16 +2927,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "australiaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2957,16 +2951,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "australiaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -2981,16 +2975,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "australiaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3005,16 +2999,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "australiaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3029,16 +3023,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "australiaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -3061,16 +3055,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "australiaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -3089,16 +3083,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "australiaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -3117,16 +3111,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "australiaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "australiasoutheast" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -3141,16 +3135,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "australiasoutheast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3165,16 +3159,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "australiasoutheast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3189,16 +3183,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "australiasoutheast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3213,16 +3207,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "australiasoutheast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3237,16 +3231,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "australiasoutheast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -3269,16 +3263,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "australiasoutheast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -3297,16 +3291,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "australiasoutheast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -3325,16 +3319,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", + "kind": "BlobStorage", "locations": [ - "southindia" + "australiasoutheast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3349,16 +3343,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "southindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3373,16 +3367,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "southindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3397,16 +3391,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "southindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3421,16 +3415,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "southindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3445,16 +3439,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "southindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -3477,16 +3471,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "southindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -3505,16 +3499,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "southindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -3533,16 +3527,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "southindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "centralindia" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -3557,16 +3551,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "centralindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3581,16 +3575,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "centralindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3605,16 +3599,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "centralindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3629,16 +3623,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "centralindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3653,16 +3647,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "centralindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -3685,16 +3679,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "centralindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -3713,16 +3707,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "centralindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -3741,16 +3735,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "centralindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "westindia" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -3765,16 +3759,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3789,16 +3783,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3813,16 +3807,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3837,16 +3831,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "westindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3861,16 +3855,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "westindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -3893,16 +3887,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "westindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -3921,16 +3915,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "westindia" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -3949,16 +3943,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "westindia" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "canadaeast" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -3973,16 +3967,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "canadaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -3997,16 +3991,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "canadaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4021,16 +4015,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "canadaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4045,16 +4039,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "canadaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4069,16 +4063,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "canadaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -4099,18 +4093,18 @@ { "name": "supportsnetworkacls", "value": "false" - } - ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", + } + ], "kind": "BlobStorage", "locations": [ "canadaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -4129,16 +4123,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "canadaeast" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -4157,16 +4151,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "canadaeast" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "canadacentral" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -4181,16 +4175,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "canadacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4205,16 +4199,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "canadacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4229,16 +4223,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "canadacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4253,16 +4247,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "canadacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4277,16 +4271,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "canadacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -4309,16 +4303,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "canadacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -4337,16 +4331,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "canadacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -4365,16 +4359,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "canadacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "westus2" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -4389,16 +4383,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4413,16 +4407,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4437,16 +4431,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4461,16 +4455,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "westus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4485,16 +4479,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "westus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -4517,16 +4511,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "westus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -4545,16 +4539,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "westus2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -4573,16 +4567,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "westus2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "westcentralus" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -4597,16 +4591,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4621,16 +4615,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4645,16 +4639,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "westcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4669,16 +4663,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "westcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4693,16 +4687,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "westcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -4725,16 +4719,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "westcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -4753,16 +4747,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "westcentralus" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -4781,16 +4775,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "westcentralus" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "uksouth" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -4805,16 +4799,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "uksouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4829,16 +4823,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "uksouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4853,16 +4847,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "uksouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4877,16 +4871,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "uksouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -4901,16 +4895,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "uksouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -4933,16 +4927,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "uksouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -4961,16 +4955,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "uksouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -4989,16 +4983,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "uksouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "ukwest" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -5013,16 +5007,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "ukwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5037,16 +5031,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "ukwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5061,16 +5055,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "ukwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5085,16 +5079,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "ukwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5109,16 +5103,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "ukwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -5141,16 +5135,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "ukwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -5169,16 +5163,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "ukwest" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -5197,16 +5191,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "ukwest" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "koreacentral" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -5221,16 +5215,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "koreacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5245,16 +5239,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "koreacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5269,16 +5263,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "koreacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5293,16 +5287,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "koreacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5317,16 +5311,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "koreacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -5349,16 +5343,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "koreacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -5377,16 +5371,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "koreacentral" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -5405,16 +5399,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "koreacentral" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "koreasouth" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -5429,16 +5423,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "koreasouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5453,16 +5447,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "koreasouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5477,16 +5471,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "koreasouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5501,16 +5495,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "koreasouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5525,16 +5519,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "koreasouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -5557,16 +5551,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "koreasouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -5585,16 +5579,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "koreasouth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -5613,16 +5607,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "koreasouth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "uknorth" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -5637,16 +5631,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "uknorth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5661,16 +5655,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "uknorth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5685,16 +5679,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "uknorth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5709,16 +5703,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "uknorth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5733,16 +5727,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "uknorth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -5765,16 +5759,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "uknorth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -5793,16 +5787,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "uknorth" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -5821,16 +5815,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "uknorth" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "uksouth2" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -5845,16 +5839,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "uksouth2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5869,16 +5863,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "uksouth2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5893,16 +5887,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "uksouth2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5917,16 +5911,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "uksouth2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -5941,16 +5935,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "uksouth2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -5973,16 +5967,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "uksouth2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -6001,16 +5995,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "uksouth2" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -6029,16 +6023,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "uksouth2" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "eastus2euap" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -6053,16 +6047,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastus2euap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -6077,16 +6071,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastus2euap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -6101,16 +6095,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "eastus2euap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -6125,16 +6119,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "eastus2euap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -6149,16 +6143,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "eastus2euap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -6181,16 +6175,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "eastus2euap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -6209,16 +6203,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "eastus2euap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -6237,16 +6231,16 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "eastus2euap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" }, { - "resourceType": "storageAccounts", "name": "Standard_LRS", - "tier": "Standard", - "kind": "Storage", - "locations": [ - "centraluseuap" - ], "capabilities": [ { "name": "supportsfileencryption", @@ -6261,16 +6255,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_ZRS", - "tier": "Standard", "kind": "Storage", "locations": [ "centraluseuap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_ZRS", "capabilities": [ { "name": "supportsfileencryption", @@ -6285,16 +6279,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "Storage", "locations": [ "centraluseuap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportsfileencryption", @@ -6309,16 +6303,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "Storage", "locations": [ "centraluseuap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportsfileencryption", @@ -6333,16 +6327,16 @@ "value": "false" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Premium_LRS", - "tier": "Premium", "kind": "Storage", "locations": [ "centraluseuap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Premium_LRS", "capabilities": [ { "name": "supportsfileencryption", @@ -6357,16 +6351,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_LRS", - "tier": "Standard", - "kind": "BlobStorage", + "kind": "Storage", "locations": [ "centraluseuap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" + }, + { + "name": "Standard_LRS", "capabilities": [ { "name": "supportsarchivepreview", @@ -6389,16 +6383,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_GRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "centraluseuap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_GRS", "capabilities": [ { "name": "supportschangenotification", @@ -6417,16 +6411,16 @@ "value": "true" } ], - "restrictions": [] - }, - { - "resourceType": "storageAccounts", - "name": "Standard_RAGRS", - "tier": "Standard", "kind": "BlobStorage", "locations": [ "centraluseuap" ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" + }, + { + "name": "Standard_RAGRS", "capabilities": [ { "name": "supportschangenotification", @@ -6445,10 +6439,18 @@ "value": "false" } ], - "restrictions": [] + "kind": "BlobStorage", + "locations": [ + "centraluseuap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Standard" } ] } } - } + }, + "operationId": "Skus_List", + "title": "SkuList" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/SKUListWithLocationInfo.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/SKUListWithLocationInfo.json index 0e845016b9fa..3193c2b13ba0 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/SKUListWithLocationInfo.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/SKUListWithLocationInfo.json @@ -1,30 +1,14 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "api-version": "2025-06-01" + "api-version": "2025-06-01", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "resourceType": "storageAccounts", "name": "Premium_LRS", - "tier": "Premium", - "kind": "FileStorage", - "locations": [ - "centraluseuap" - ], - "locationInfo": [ - { - "location": "centraluseuap", - "zones": [ - "1", - "2", - "3" - ] - } - ], "capabilities": [ { "name": "supportschangenotification", @@ -43,10 +27,28 @@ "value": "false" } ], - "restrictions": [] + "kind": "FileStorage", + "locationInfo": [ + { + "location": "centraluseuap", + "zones": [ + "1", + "2", + "3" + ] + } + ], + "locations": [ + "centraluseuap" + ], + "resourceType": "storageAccounts", + "restrictions": [], + "tier": "Premium" } ] } } - } + }, + "operationId": "Skus_List", + "title": "SKUListWithLocationInfo" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountAbortHierarchicalNamespaceMigration.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountAbortHierarchicalNamespaceMigration.json index b3b6ffc14049..7cd98037e3de 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountAbortHierarchicalNamespaceMigration.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountAbortHierarchicalNamespaceMigration.json @@ -1,9 +1,9 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4228", "accountName": "sto2434", - "api-version": "2025-06-01" + "api-version": "2025-06-01", + "resourceGroupName": "res4228", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, @@ -12,5 +12,7 @@ "Location": "https://endpoint:port/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/{location}/asyncoperations/{operationid}?monitor=true&api-version=2022-09-01" } } - } + }, + "operationId": "StorageAccounts_AbortHierarchicalNamespaceMigration", + "title": "StorageAccountAbortHierarchicalNamespaceMigration" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCheckNameAvailability.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCheckNameAvailability.json index 784291eb9695..08dbdbef223a 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCheckNameAvailability.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCheckNameAvailability.json @@ -1,11 +1,11 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "api-version": "2025-06-01", "accountName": { "name": "sto3363", "type": "Microsoft.Storage/storageAccounts" - } + }, + "api-version": "2025-06-01", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -13,5 +13,7 @@ "nameAvailable": true } } - } + }, + "operationId": "StorageAccounts_CheckNameAvailability", + "title": "StorageAccountCheckNameAvailability" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreate.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreate.json index 038fe632d851..04cc8cb4752e 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreate.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreate.json @@ -1,135 +1,136 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { - "sku": { - "name": "Standard_GRS" + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" }, "kind": "Storage", "location": "eastus", - "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" - }, "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } }, "isHnsEnabled": true, "isSftpEnabled": true, - "allowBlobPublicAccess": false, - "defaultToOAuthAuthentication": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "geoPriorityReplicationStatus": { "isBlobEnabled": true } }, + "sku": { + "name": "Standard_GRS" + }, "tags": { "key1": "value1", "key2": "value2" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "kind": "Storage", - "location": "eastus", "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" + "name": "losangeles001", + "type": "EdgeZone" }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, + "isSftpEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "isHnsEnabled": true, - "isSftpEnabled": true, - "allowBlobPublicAccess": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-05-24T13:25:33.4863236Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", - "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto4445-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "file": "https://sto4445-microsoftrouting.file.core.windows.net/", "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", - "table": "https://sto4445-microsoftrouting.table.core.windows.net/" + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto4445-internetrouting.web.core.windows.net/", - "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", - "blob": "https://sto4445-internetrouting.blob.core.windows.net/", - "file": "https://sto4445-internetrouting.file.core.windows.net/" - } + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus2euap", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "secondaryLocation": "centraluseuap", "statusOfPrimary": "available", @@ -146,10 +147,11 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreate" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateAllowedCopyScopeToAAD.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateAllowedCopyScopeToAAD.json index 789470ab69c6..0ca48018e164 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateAllowedCopyScopeToAAD.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateAllowedCopyScopeToAAD.json @@ -1,132 +1,133 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { - "sku": { - "name": "Standard_GRS" - }, "kind": "Storage", "location": "eastus", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" - }, - "isHnsEnabled": true, "allowBlobPublicAccess": false, - "minimumTlsVersion": "TLS1_2", "allowSharedKeyAccess": true, "allowedCopyScope": "AAD", - "routingPreference": { - "routingChoice": "MicrosoftRouting", - "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true - }, "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, "services": { - "file": { - "keyType": "Account", - "enabled": true - }, "blob": { - "keyType": "Account", - "enabled": true + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + } + }, + "isHnsEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" } }, + "sku": { + "name": "Standard_GRS" + }, "tags": { "key1": "value1", "key2": "value2" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "kind": "Storage", - "location": "eastus", "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" + "name": "losangeles001", + "type": "EdgeZone" }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "allowedCopyScope": "AAD", + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "isHnsEnabled": true, - "allowBlobPublicAccess": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-05-24T13:25:33.4863236Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", - "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto4445-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "file": "https://sto4445-microsoftrouting.file.core.windows.net/", "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", - "table": "https://sto4445-microsoftrouting.table.core.windows.net/" + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto4445-internetrouting.web.core.windows.net/", - "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", - "blob": "https://sto4445-internetrouting.blob.core.windows.net/", - "file": "https://sto4445-internetrouting.file.core.windows.net/" - } + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus2euap", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "secondaryLocation": "centraluseuap", "statusOfPrimary": "available", "statusOfSecondary": "available", - "supportsHttpsTrafficOnly": true, - "allowedCopyScope": "AAD" + "supportsHttpsTrafficOnly": true }, "sku": { "name": "Standard_GRS", @@ -135,10 +136,11 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateAllowedCopyScopeToAAD" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateAllowedCopyScopeToPrivateLink.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateAllowedCopyScopeToPrivateLink.json index 8be902ea0cf1..64c3ad8c123b 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateAllowedCopyScopeToPrivateLink.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateAllowedCopyScopeToPrivateLink.json @@ -1,132 +1,133 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { - "sku": { - "name": "Standard_GRS" - }, "kind": "Storage", "location": "eastus", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" - }, - "isHnsEnabled": true, "allowBlobPublicAccess": false, - "minimumTlsVersion": "TLS1_2", "allowSharedKeyAccess": true, "allowedCopyScope": "PrivateLink", - "routingPreference": { - "routingChoice": "MicrosoftRouting", - "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true - }, "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, "services": { - "file": { - "keyType": "Account", - "enabled": true - }, "blob": { - "keyType": "Account", - "enabled": true + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + } + }, + "isHnsEnabled": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, + "minimumTlsVersion": "TLS1_2", + "routingPreference": { + "publishInternetEndpoints": true, + "publishMicrosoftEndpoints": true, + "routingChoice": "MicrosoftRouting" + }, + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" } }, + "sku": { + "name": "Standard_GRS" + }, "tags": { "key1": "value1", "key2": "value2" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "kind": "Storage", - "location": "eastus", "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" + "name": "losangeles001", + "type": "EdgeZone" }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "allowedCopyScope": "PrivateLink", + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "isHnsEnabled": true, - "allowBlobPublicAccess": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-05-24T13:25:33.4863236Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", - "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto4445-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "file": "https://sto4445-microsoftrouting.file.core.windows.net/", "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", - "table": "https://sto4445-microsoftrouting.table.core.windows.net/" + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto4445-internetrouting.web.core.windows.net/", - "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", - "blob": "https://sto4445-internetrouting.blob.core.windows.net/", - "file": "https://sto4445-internetrouting.file.core.windows.net/" - } + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus2euap", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "secondaryLocation": "centraluseuap", "statusOfPrimary": "available", "statusOfSecondary": "available", - "supportsHttpsTrafficOnly": true, - "allowedCopyScope": "PrivateLink" + "supportsHttpsTrafficOnly": true }, "sku": { "name": "Standard_GRS", @@ -135,10 +136,11 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateAllowedCopyScopeToPrivateLink" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateDisallowPublicNetworkAccess.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateDisallowPublicNetworkAccess.json index 33f5f25433fa..fc00bd1fff14 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateDisallowPublicNetworkAccess.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateDisallowPublicNetworkAccess.json @@ -1,136 +1,137 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { - "sku": { - "name": "Standard_GRS" + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" }, "kind": "Storage", "location": "eastus", - "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" - }, "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isHnsEnabled": true, "keyPolicy": { "keyExpirationPeriodInDays": 20 }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" - }, - "isHnsEnabled": true, - "allowBlobPublicAccess": false, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, "publicNetworkAccess": "Disabled", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" } }, + "sku": { + "name": "Standard_GRS" + }, "tags": { "key1": "value1", "key2": "value2" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "kind": "Storage", - "location": "eastus", "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" + "name": "losangeles001", + "type": "EdgeZone" }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "isHnsEnabled": true, - "allowBlobPublicAccess": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-05-24T13:25:33.4863236Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", - "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto4445-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "file": "https://sto4445-microsoftrouting.file.core.windows.net/", "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", - "table": "https://sto4445-microsoftrouting.table.core.windows.net/" + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto4445-internetrouting.web.core.windows.net/", - "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", - "blob": "https://sto4445-internetrouting.blob.core.windows.net/", - "file": "https://sto4445-internetrouting.file.core.windows.net/" - } + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus2euap", "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "secondaryLocation": "centraluseuap", "statusOfPrimary": "available", "statusOfSecondary": "available", - "supportsHttpsTrafficOnly": true, - "publicNetworkAccess": "Disabled" + "supportsHttpsTrafficOnly": true }, "sku": { "name": "Standard_GRS", @@ -139,10 +140,11 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateDisallowPublicNetworkAccess" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateDnsEndpointTypeToAzureDnsZone.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateDnsEndpointTypeToAzureDnsZone.json index 5f2d4479ecb1..ac25729489d8 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateDnsEndpointTypeToAzureDnsZone.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateDnsEndpointTypeToAzureDnsZone.json @@ -1,134 +1,135 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { - "sku": { - "name": "Standard_GRS" + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" }, "kind": "Storage", "location": "eastus", - "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" - }, "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" - }, + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, "dnsEndpointType": "AzureDnsZone", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, "isHnsEnabled": true, "isSftpEnabled": true, - "allowBlobPublicAccess": false, - "defaultToOAuthAuthentication": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" } }, + "sku": { + "name": "Standard_GRS" + }, "tags": { "key1": "value1", "key2": "value2" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "kind": "Storage", - "location": "eastus", "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" + "name": "losangeles001", + "type": "EdgeZone" }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "dnsEndpointType": "AzureDnsZone", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, + "isSftpEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "dnsEndpointType": "AzureDnsZone", - "isHnsEnabled": true, - "isSftpEnabled": true, - "allowBlobPublicAccess": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-05-24T13:25:33.4863236Z", "primaryEndpoints": { - "web": "https://sto4445.z24.web.storage.azure.net/", - "dfs": "https://sto4445.z24.dfs.storage.azure.net/", "blob": "https://sto4445.z24.blob.storage.azure.net/", + "dfs": "https://sto4445.z24.dfs.storage.azure.net/", "file": "https://sto4445.z24.file.storage.azure.net/", - "queue": "https://sto4445.z24.queue.storage.azure.net/", - "table": "https://sto4445.z24.table.storage.azure.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.z24.blob.storage.azure.net/", + "dfs": "https://sto4445-internetrouting.z24.dfs.storage.azure.net/", + "file": "https://sto4445-internetrouting.z24.file.storage.azure.net/", + "web": "https://sto4445-internetrouting.z24.web.storage.azure.net/" + }, "microsoftEndpoints": { - "web": "https://sto4445-microsoftrouting.z24.web.storage.azure.net/", - "dfs": "https://sto4445-microsoftrouting.z24.dfs.storage.azure.net/", "blob": "https://sto4445-microsoftrouting.z24.blob.storage.azure.net/", + "dfs": "https://sto4445-microsoftrouting.z24.dfs.storage.azure.net/", "file": "https://sto4445-microsoftrouting.z24.file.storage.azure.net/", "queue": "https://sto4445-microsoftrouting.z24.queue.storage.azure.net/", - "table": "https://sto4445-microsoftrouting.z24.table.storage.azure.net/" + "table": "https://sto4445-microsoftrouting.z24.table.storage.azure.net/", + "web": "https://sto4445-microsoftrouting.z24.web.storage.azure.net/" }, - "internetEndpoints": { - "web": "https://sto4445-internetrouting.z24.web.storage.azure.net/", - "dfs": "https://sto4445-internetrouting.z24.dfs.storage.azure.net/", - "blob": "https://sto4445-internetrouting.z24.blob.storage.azure.net/", - "file": "https://sto4445-internetrouting.z24.file.storage.azure.net/" - } + "queue": "https://sto4445.z24.queue.storage.azure.net/", + "table": "https://sto4445.z24.table.storage.azure.net/", + "web": "https://sto4445.z24.web.storage.azure.net/" }, "primaryLocation": "eastus2euap", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "secondaryLocation": "centraluseuap", "statusOfPrimary": "available", @@ -142,10 +143,11 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateDnsEndpointTypeToAzureDnsZone" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateDnsEndpointTypeToStandard.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateDnsEndpointTypeToStandard.json index fa63dba62abb..a1b3c27ba10f 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateDnsEndpointTypeToStandard.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateDnsEndpointTypeToStandard.json @@ -1,134 +1,135 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { - "sku": { - "name": "Standard_GRS" + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" }, "kind": "Storage", "location": "eastus", - "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" - }, "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" - }, + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, "dnsEndpointType": "Standard", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, "isHnsEnabled": true, "isSftpEnabled": true, - "allowBlobPublicAccess": false, - "defaultToOAuthAuthentication": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" } }, + "sku": { + "name": "Standard_GRS" + }, "tags": { "key1": "value1", "key2": "value2" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "kind": "Storage", - "location": "eastus", "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" + "name": "losangeles001", + "type": "EdgeZone" }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "dnsEndpointType": "Standard", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, + "isSftpEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "dnsEndpointType": "Standard", - "isHnsEnabled": true, - "isSftpEnabled": true, - "allowBlobPublicAccess": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-05-24T13:25:33.4863236Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", - "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto4445-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "file": "https://sto4445-microsoftrouting.file.core.windows.net/", "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", - "table": "https://sto4445-microsoftrouting.table.core.windows.net/" + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto4445-internetrouting.web.core.windows.net/", - "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", - "blob": "https://sto4445-internetrouting.blob.core.windows.net/", - "file": "https://sto4445-internetrouting.file.core.windows.net/" - } + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus2euap", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "secondaryLocation": "centraluseuap", "statusOfPrimary": "available", @@ -142,10 +143,11 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateDnsEndpointTypeToStandard" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateEnablePublicNetworkAccess.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateEnablePublicNetworkAccess.json index ccb095527e21..11337aa43e7f 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateEnablePublicNetworkAccess.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateEnablePublicNetworkAccess.json @@ -1,136 +1,137 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { - "sku": { - "name": "Standard_GRS" + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" }, "kind": "Storage", "location": "eastus", - "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" - }, "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isHnsEnabled": true, "keyPolicy": { "keyExpirationPeriodInDays": 20 }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" - }, - "isHnsEnabled": true, - "allowBlobPublicAccess": false, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, "publicNetworkAccess": "Enabled", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" } }, + "sku": { + "name": "Standard_GRS" + }, "tags": { "key1": "value1", "key2": "value2" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "kind": "Storage", - "location": "eastus", "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" + "name": "losangeles001", + "type": "EdgeZone" }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "isHnsEnabled": true, - "allowBlobPublicAccess": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-05-24T13:25:33.4863236Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", - "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto4445-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "file": "https://sto4445-microsoftrouting.file.core.windows.net/", "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", - "table": "https://sto4445-microsoftrouting.table.core.windows.net/" + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto4445-internetrouting.web.core.windows.net/", - "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", - "blob": "https://sto4445-internetrouting.blob.core.windows.net/", - "file": "https://sto4445-internetrouting.file.core.windows.net/" - } + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus2euap", "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "secondaryLocation": "centraluseuap", "statusOfPrimary": "available", "statusOfSecondary": "available", - "supportsHttpsTrafficOnly": true, - "publicNetworkAccess": "Enabled" + "supportsHttpsTrafficOnly": true }, "sku": { "name": "Standard_GRS", @@ -139,10 +140,11 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateEnablePublicNetworkAccess" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateObjectReplicationPolicyOnDestination.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateObjectReplicationPolicyOnDestination.json index 541e0082801b..e077d606a489 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateObjectReplicationPolicyOnDestination.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateObjectReplicationPolicyOnDestination.json @@ -1,67 +1,69 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "dst112", - "objectReplicationPolicyId": "default", "api-version": "2025-06-01", "monitor": "true", + "objectReplicationPolicyId": "default", "properties": { "properties": { - "sourceAccount": "src1122", "destinationAccount": "dst112", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, "rules": [ { - "sourceContainer": "scont139", "destinationContainer": "dcont139", "filters": { "prefixMatch": [ "blobA", "blobB" ] - } + }, + "sourceContainer": "scont139" } ], - "metrics": { - "enabled": true - }, - "priorityReplication": { - "enabled": true - } + "sourceAccount": "src1122" } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/dst112/objectReplicationPolicies/2a20bb73-5717-4635-985a-5d4cf777438f", "name": "2a20bb73-5717-4635-985a-5d4cf777438f", "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/dst112/objectReplicationPolicies/2a20bb73-5717-4635-985a-5d4cf777438f", "properties": { - "policyId": "2a20bb73-5717-4635-985a-5d4cf777438f", - "sourceAccount": "src1122", "destinationAccount": "dst112", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "policyId": "2a20bb73-5717-4635-985a-5d4cf777438f", "rules": [ { - "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", - "sourceContainer": "sourceContainer1", "destinationContainer": "destContainer1", "filters": { "prefixMatch": [ "blobA", "blobB" ] - } + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "sourceContainer1" } ], - "metrics": { - "enabled": true - }, - "priorityReplication": { - "enabled": true - } + "sourceAccount": "src1122" } } } - } + }, + "operationId": "ObjectReplicationPolicies_CreateOrUpdate", + "title": "StorageAccountCreateObjectReplicationPolicyOnDestination" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateObjectReplicationPolicyOnSource.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateObjectReplicationPolicyOnSource.json index ab527a448a3b..257f3d732375 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateObjectReplicationPolicyOnSource.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateObjectReplicationPolicyOnSource.json @@ -1,71 +1,73 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "src1122", - "objectReplicationPolicyId": "2a20bb73-5717-4635-985a-5d4cf777438f", "api-version": "2025-06-01", "monitor": "true", + "objectReplicationPolicyId": "2a20bb73-5717-4635-985a-5d4cf777438f", "properties": { "properties": { - "sourceAccount": "src1122", "destinationAccount": "dst112", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, "rules": [ { - "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", - "sourceContainer": "scont139", "destinationContainer": "dcont139", "filters": { + "minCreationTime": "2020-02-19T16:05:00Z", "prefixMatch": [ "blobA", "blobB" - ], - "minCreationTime": "2020-02-19T16:05:00Z" - } + ] + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "scont139" } ], - "metrics": { - "enabled": true - }, - "priorityReplication": { - "enabled": true - } + "sourceAccount": "src1122" } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/src1122/objectReplicationPolicies/2a20bb73-5717-4635-985a-5d4cf777438f", "name": "2a20bb73-5717-4635-985a-5d4cf777438f", "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/src1122/objectReplicationPolicies/2a20bb73-5717-4635-985a-5d4cf777438f", "properties": { - "policyId": "2a20bb73-5717-4635-985a-5d4cf777438f", - "enabledTime": "2019-06-08T03:01:55.7168089Z", - "sourceAccount": "src1122", "destinationAccount": "dst112", + "enabledTime": "2019-06-08T03:01:55.7168089Z", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "policyId": "2a20bb73-5717-4635-985a-5d4cf777438f", "rules": [ { - "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", - "sourceContainer": "sourceContainer1", "destinationContainer": "destContainer1", "filters": { + "minCreationTime": "2020-02-19T16:05:00Z", "prefixMatch": [ "blobA", "blobB" - ], - "minCreationTime": "2020-02-19T16:05:00Z" - } + ] + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "sourceContainer1" } ], - "metrics": { - "enabled": true - }, - "priorityReplication": { - "enabled": true - } + "sourceAccount": "src1122" } } } - } + }, + "operationId": "ObjectReplicationPolicies_CreateOrUpdate", + "title": "StorageAccountCreateObjectReplicationPolicyOnSource" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreatePremiumBlockBlobStorage.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreatePremiumBlockBlobStorage.json index cf268e015863..ac7b8204d035 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreatePremiumBlockBlobStorage.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreatePremiumBlockBlobStorage.json @@ -1,74 +1,75 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { - "sku": { - "name": "Premium_LRS" - }, "kind": "BlockBlobStorage", "location": "eastus", "properties": { - "minimumTlsVersion": "TLS1_2", "allowSharedKeyAccess": true, "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, "services": { - "file": { - "keyType": "Account", - "enabled": true - }, "blob": { - "keyType": "Account", - "enabled": true + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" - } + } + }, + "minimumTlsVersion": "TLS1_2" + }, + "sku": { + "name": "Premium_LRS" }, "tags": { "key1": "value1", "key2": "value2" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", "kind": "Storage", "location": "eastus", - "name": "sto4445", "properties": { + "accessTier": "Premium", "allowBlobPublicAccess": false, - "minimumTlsVersion": "TLS1_2", "creationTime": "2017-05-24T13:25:33.4863236Z", - "primaryEndpoints": { - "blob": "https://sto4445.blob.core.windows.net/", - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/" - }, - "primaryLocation": "eastus2euap", - "accessTier": "Premium", - "provisioningState": "Succeeded", "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, "services": { - "file": { - "keyType": "Account", + "blob": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" }, - "blob": { - "keyType": "Account", + "file": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + } + }, + "minimumTlsVersion": "TLS1_2", + "primaryEndpoints": { + "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, + "primaryLocation": "eastus2euap", + "provisioningState": "Succeeded", "statusOfPrimary": "available", "statusOfSecondary": "available", "supportsHttpsTrafficOnly": true @@ -80,10 +81,11 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreatePremiumBlockBlobStorage" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json index 94962cf09412..547fd3a92b05 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json @@ -1,7 +1,5 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { @@ -11,108 +9,112 @@ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": {} } }, - "sku": { - "name": "Standard_LRS" - }, "kind": "Storage", "location": "eastus", "properties": { "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } + "identity": { + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "" }, - "keySource": "Microsoft.Keyvault", - "identity": { - "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } } } + }, + "sku": { + "name": "Standard_LRS" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", "identity": { + "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": { - "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7", - "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5" + "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5", + "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7" } - }, - "type": "UserAssigned" - }, - "sku": { - "name": "Standard_LRS", - "tier": "Standard" + } }, "kind": "StorageV2", - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "name": "sto4445", - "type": "Microsoft.Storage/storageAccounts", "location": "eastus", - "tags": {}, "properties": { - "privateEndpointConnections": [], - "networkAcls": { - "bypass": "AzureServices", - "virtualNetworkRules": [], - "ipRules": [], - "defaultAction": "Allow" - }, - "supportsHttpsTrafficOnly": true, + "accessTier": "Hot", + "creationTime": "2020-12-15T00:43:14.0839093Z", "encryption": { "identity": { "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "", - "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" }, "services": { - "file": { - "keyType": "Account", + "blob": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" }, - "blob": { - "keyType": "Account", + "file": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" } - }, - "keySource": "Microsoft.Keyvault" + } + }, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "virtualNetworkRules": [] }, - "accessTier": "Hot", - "provisioningState": "Succeeded", - "creationTime": "2020-12-15T00:43:14.0839093Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/" + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus", - "statusOfPrimary": "available" - } + "privateEndpointConnections": [], + "provisioningState": "Succeeded", + "statusOfPrimary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "tags": {} } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateUserAssignedEncryptionIdentityWithCMK" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json index 5db21d90313b..b5841febb759 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json @@ -1,7 +1,5 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res131918", "accountName": "sto131918", "api-version": "2025-06-01", "parameters": { @@ -11,110 +9,114 @@ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": {} } }, - "sku": { - "name": "Standard_LRS" - }, "kind": "Storage", "location": "eastus", "properties": { "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } + "identity": { + "federatedIdentityClientId": "f83c6b1b-4d34-47e4-bb34-9d83df58b540", + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "" }, - "keySource": "Microsoft.Keyvault", - "identity": { - "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}", - "federatedIdentityClientId": "f83c6b1b-4d34-47e4-bb34-9d83df58b540" + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } } } + }, + "sku": { + "name": "Standard_LRS" } - } + }, + "resourceGroupName": "res131918", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", "identity": { + "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": { - "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7", - "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5" + "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5", + "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7" } - }, - "type": "UserAssigned" - }, - "sku": { - "name": "Standard_LRS", - "tier": "Standard" + } }, "kind": "StorageV2", - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "name": "sto4445", - "type": "Microsoft.Storage/storageAccounts", "location": "eastus", - "tags": {}, "properties": { - "privateEndpointConnections": [], - "networkAcls": { - "bypass": "AzureServices", - "virtualNetworkRules": [], - "ipRules": [], - "defaultAction": "Allow" - }, - "supportsHttpsTrafficOnly": true, + "accessTier": "Hot", + "creationTime": "2020-12-15T00:43:14.0839093Z", "encryption": { "identity": { - "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}", - "federatedIdentityClientId": "f83c6b1b-4d34-47e4-bb34-9d83df58b540" + "federatedIdentityClientId": "f83c6b1b-4d34-47e4-bb34-9d83df58b540", + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "", - "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" }, "services": { - "file": { - "keyType": "Account", + "blob": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" }, - "blob": { - "keyType": "Account", + "file": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" } - }, - "keySource": "Microsoft.Keyvault" + } + }, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "virtualNetworkRules": [] }, - "accessTier": "Hot", - "provisioningState": "Succeeded", - "creationTime": "2020-12-15T00:43:14.0839093Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/" + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus", - "statusOfPrimary": "available" - } + "privateEndpointConnections": [], + "provisioningState": "Succeeded", + "statusOfPrimary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "tags": {} } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId." } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateWithImmutabilityPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateWithImmutabilityPolicy.json index 6a8d25cfef53..5ed909ed6f3b 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateWithImmutabilityPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreateWithImmutabilityPolicy.json @@ -1,70 +1,72 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { - "sku": { - "name": "Standard_GRS" + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" }, "kind": "Storage", "location": "eastus", - "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" - }, "properties": { "immutableStorageWithVersioning": { + "enabled": true, "immutabilityPolicy": { - "immutabilityPeriodSinceCreationInDays": 15, "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 15, "state": "Unlocked" - }, - "enabled": true + } } + }, + "sku": { + "name": "Standard_GRS" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "kind": "Storage", - "location": "eastus", "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" + "name": "losangeles001", + "type": "EdgeZone" }, + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", "properties": { "creationTime": "2017-05-24T13:25:33.4863236Z", + "immutableStorageWithVersioning": { + "enabled": true, + "immutabilityPolicy": { + "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 15, + "state": "Unlocked" + } + }, "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/" + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus2euap", - "provisioningState": "Succeeded", - "immutableStorageWithVersioning": { - "immutabilityPolicy": { - "immutabilityPeriodSinceCreationInDays": 15, - "allowProtectedAppendWrites": true, - "state": "Unlocked" - }, - "enabled": true - } + "provisioningState": "Succeeded" }, "sku": { "name": "Standard_GRS", "tier": "Standard" - }, - "type": "Microsoft.Storage/storageAccounts" + } } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreateWithImmutabilityPolicy" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreate_placement.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreate_placement.json index 1885b34f6170..e76b8a3d6cec 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreate_placement.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreate_placement.json @@ -1,141 +1,139 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { - "sku": { - "name": "Standard_GRS" + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" }, "kind": "Storage", "location": "eastus", - "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" - }, "placement": { "zonePlacementPolicy": "Any" }, "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } }, "isHnsEnabled": true, "isSftpEnabled": true, - "allowBlobPublicAccess": false, - "defaultToOAuthAuthentication": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" } }, + "sku": { + "name": "Standard_GRS" + }, "tags": { "key1": "value1", "key2": "value2" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "kind": "Storage", - "location": "eastus", "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" + "name": "losangeles001", + "type": "EdgeZone" }, - "zones": [ - "1" - ], + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", "placement": { "zonePlacementPolicy": "Any" }, "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, + "isSftpEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "isHnsEnabled": true, - "isSftpEnabled": true, - "allowBlobPublicAccess": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-05-24T13:25:33.4863236Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", - "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto4445-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "file": "https://sto4445-microsoftrouting.file.core.windows.net/", "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", - "table": "https://sto4445-microsoftrouting.table.core.windows.net/" + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto4445-internetrouting.web.core.windows.net/", - "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", - "blob": "https://sto4445-internetrouting.blob.core.windows.net/", - "file": "https://sto4445-internetrouting.file.core.windows.net/" - } + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus2euap", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "secondaryLocation": "centraluseuap", "statusOfPrimary": "available", @@ -150,9 +148,13 @@ "key1": "value1", "key2": "value2" }, - "type": "Microsoft.Storage/storageAccounts" + "zones": [ + "1" + ] } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreate_placement" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreate_zones.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreate_zones.json index 6e14f4667a14..b5561bd54b72 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreate_zones.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountCreate_zones.json @@ -1,138 +1,136 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { - "sku": { - "name": "Standard_GRS" + "extendedLocation": { + "name": "losangeles001", + "type": "EdgeZone" }, "kind": "Storage", "location": "eastus", - "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" - }, - "zones": [ - "1" - ], "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } }, "isHnsEnabled": true, "isSftpEnabled": true, - "allowBlobPublicAccess": false, - "defaultToOAuthAuthentication": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" } }, + "sku": { + "name": "Standard_GRS" + }, "tags": { "key1": "value1", "key2": "value2" - } - } + }, + "zones": [ + "1" + ] + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "kind": "Storage", - "location": "eastus", "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", "extendedLocation": { - "type": "EdgeZone", - "name": "losangeles001" + "name": "losangeles001", + "type": "EdgeZone" }, - "zones": [ - "1" - ], + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "kind": "Storage", + "location": "eastus", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-05-24T13:25:33.4863236Z", + "encryption": { + "keySource": "Microsoft.Storage", + "requireInfrastructureEncryption": false, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, + "isSftpEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "isHnsEnabled": true, - "isSftpEnabled": true, - "allowBlobPublicAccess": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-05-24T13:25:33.4863236Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", - "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto4445-internetrouting.blob.core.windows.net/", + "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", + "file": "https://sto4445-internetrouting.file.core.windows.net/", + "web": "https://sto4445-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto4445-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto4445-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto4445-microsoftrouting.dfs.core.windows.net/", "file": "https://sto4445-microsoftrouting.file.core.windows.net/", "queue": "https://sto4445-microsoftrouting.queue.core.windows.net/", - "table": "https://sto4445-microsoftrouting.table.core.windows.net/" + "table": "https://sto4445-microsoftrouting.table.core.windows.net/", + "web": "https://sto4445-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto4445-internetrouting.web.core.windows.net/", - "dfs": "https://sto4445-internetrouting.dfs.core.windows.net/", - "blob": "https://sto4445-internetrouting.blob.core.windows.net/", - "file": "https://sto4445-internetrouting.file.core.windows.net/" - } + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus2euap", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "requireInfrastructureEncryption": false, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "secondaryLocation": "centraluseuap", "statusOfPrimary": "available", @@ -147,9 +145,13 @@ "key1": "value1", "key2": "value2" }, - "type": "Microsoft.Storage/storageAccounts" + "zones": [ + "1" + ] } }, "202": {} - } + }, + "operationId": "StorageAccounts_Create", + "title": "StorageAccountCreate_zones" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDelete.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDelete.json index fe75274cdc3e..f8dda7fe032b 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDelete.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDelete.json @@ -1,13 +1,15 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4228", "accountName": "sto2434", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res4228", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "StorageAccounts_Delete", + "title": "StorageAccountDelete" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeleteBlobInventoryPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeleteBlobInventoryPolicy.json index c3d439b1c92a..94e00b1b701f 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeleteBlobInventoryPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeleteBlobInventoryPolicy.json @@ -1,14 +1,16 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "blobInventoryPolicyName": "default", "api-version": "2025-06-01", - "monitor": "true" + "blobInventoryPolicyName": "default", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "BlobInventoryPolicies_Delete", + "title": "StorageAccountDeleteBlobInventoryPolicy" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeleteManagementPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeleteManagementPolicy.json index 80b783057ee1..d9bba76424fd 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeleteManagementPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeleteManagementPolicy.json @@ -1,14 +1,16 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "managementPolicyName": "default", "api-version": "2025-06-01", - "monitor": "true" + "managementPolicyName": "default", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "ManagementPolicies_Delete", + "title": "StorageAccountDeleteManagementPolicies" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeleteObjectReplicationPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeleteObjectReplicationPolicy.json index 634a3a3739b5..cca882d45dae 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeleteObjectReplicationPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeleteObjectReplicationPolicy.json @@ -1,14 +1,16 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "objectReplicationPolicyId": "{objectReplicationPolicy-Id}", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "objectReplicationPolicyId": "{objectReplicationPolicy-Id}", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "ObjectReplicationPolicies_Delete", + "title": "StorageAccountDeleteObjectReplicationPolicies" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeletePrivateEndpointConnection.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeletePrivateEndpointConnection.json index 46b2f8ebd44a..ea1ce748fe17 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeletePrivateEndpointConnection.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountDeletePrivateEndpointConnection.json @@ -1,14 +1,16 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "privateEndpointConnectionName": "{privateEndpointConnectionName}", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "PrivateEndpointConnections_Delete", + "title": "StorageAccountDeletePrivateEndpointConnection" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEnableAD.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEnableAD.json index 643add0af887..ae90b658a61a 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEnableAD.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEnableAD.json @@ -1,57 +1,58 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { "azureFilesIdentityBasedAuthentication": { - "directoryServiceOptions": "AD", "activeDirectoryProperties": { - "domainName": "adtest.com", - "netBiosDomainName": "adtest.com", - "forestName": "adtest.com", + "accountType": "User", + "azureStorageSid": "S-1-5-21-2400535526-2334094090-2402026252-0012", "domainGuid": "aebfc118-9fa9-4732-a21f-d98e41a77ae1", + "domainName": "adtest.com", "domainSid": "S-1-5-21-2400535526-2334094090-2402026252", - "azureStorageSid": "S-1-5-21-2400535526-2334094090-2402026252-0012", - "samAccountName": "sam12498", - "accountType": "User" - } + "forestName": "adtest.com", + "netBiosDomainName": "adtest.com", + "samAccountName": "sam12498" + }, + "directoryServiceOptions": "AD" } } - } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { - "creationTime": "2017-06-01T02:42:41.7633306Z", "azureFilesIdentityBasedAuthentication": { - "directoryServiceOptions": "AD", "activeDirectoryProperties": { - "domainName": "adtest.com", - "netBiosDomainName": "adtest.com", - "forestName": "adtest.com", + "accountType": "User", + "azureStorageSid": "S-1-5-21-2400535526-2334094090-2402026252-0012", "domainGuid": "aebfc118-9fa9-4732-a21f-d98e41a77ae1", + "domainName": "adtest.com", "domainSid": "S-1-5-21-2400535526-2334094090-2402026252", - "azureStorageSid": "S-1-5-21-2400535526-2334094090-2402026252-0012", - "samAccountName": "sam12498", - "accountType": "User" - } + "forestName": "adtest.com", + "netBiosDomainName": "adtest.com", + "samAccountName": "sam12498" + }, + "directoryServiceOptions": "AD" }, + "creationTime": "2017-06-01T02:42:41.7633306Z", "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/" + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", @@ -67,9 +68,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountEnableAD" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEnableCMK.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEnableCMK.json index 98f254d1c502..9eb6d840c72f 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEnableCMK.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEnableCMK.json @@ -1,76 +1,77 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } - }, "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "" + }, + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } } } } - } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "identity": { + "type": "SystemAssigned", "principalId": "911871cc-ffd1-4fc4-ac11-7a316433ea66", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "type": "SystemAssigned" + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" }, "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { "creationTime": "2017-06-01T02:42:41.7633306Z", "encryption": { + "keySource": "Microsoft.Keyvault", + "keyvaultproperties": { + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", + "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyversion": "", + "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" + }, "services": { - "file": { - "keyType": "Account", + "blob": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" }, - "blob": { - "keyType": "Account", + "file": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" } - }, - "keySource": "Microsoft.Keyvault", - "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", - "keyname": "wrappingKey", - "keyversion": "", - "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", - "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" } }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/" + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", @@ -86,9 +87,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountEnableCMK" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEnableSmbOAuth.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEnableSmbOAuth.json index 646344fe1f9d..921e747077c0 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEnableSmbOAuth.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEnableSmbOAuth.json @@ -1,7 +1,5 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", "monitor": "true", @@ -14,30 +12,33 @@ } } } - } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { - "creationTime": "2017-06-01T02:42:41.7633306Z", "azureFilesIdentityBasedAuthentication": { "directoryServiceOptions": "None", "smbOAuthSettings": { "isSmbOAuthEnabled": true } }, + "creationTime": "2017-06-01T02:42:41.7633306Z", "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/" + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", @@ -53,9 +54,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountEnableSmbOAuth" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEncryptionScopeList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEncryptionScopeList.json index e42691f42b27..f70aebe0a871 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEncryptionScopeList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountEncryptionScopeList.json @@ -1,43 +1,45 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "resource-group-name", "accountName": "accountname", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "nextLink": null, "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/scope-1", "name": "scope-1", "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/scope-1", "properties": { - "source": "Microsoft.Storage", - "state": "Enabled", "creationTime": "2018-10-16T02:42:41.7633306Z", - "lastModifiedTime": "2018-10-16T02:42:41.7633306Z" + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z", + "source": "Microsoft.Storage", + "state": "Enabled" } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/scope-2", "name": "scope-2", "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/scope-2", "properties": { - "source": "Microsoft.KeyVault", - "state": "Enabled", + "creationTime": "2018-10-16T04:32:14.3355306Z", "keyVaultProperties": { "keyUri": "https://testvault.vault.core.windows.net/keys/key1/863425f1358359c" }, - "creationTime": "2018-10-16T04:32:14.3355306Z", - "lastModifiedTime": "2018-10-17T06:23:14.4513306Z" + "lastModifiedTime": "2018-10-17T06:23:14.4513306Z", + "source": "Microsoft.KeyVault", + "state": "Enabled" } } - ], - "nextLink": null + ] } } - } + }, + "operationId": "EncryptionScopes_List", + "title": "StorageAccountEncryptionScopeList" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountFailover.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountFailover.json index fadd6cf02bae..116d354dbee8 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountFailover.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountFailover.json @@ -1,10 +1,10 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4228", "accountName": "sto2434", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res4228", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, @@ -13,5 +13,7 @@ "Location": "https://endpoint:port/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/{location}/asyncoperations/{operationid}?monitor=true&api-version=2022-09-01" } } - } + }, + "operationId": "StorageAccounts_Failover", + "title": "StorageAccountFailover" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountFailoverPlanned.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountFailoverPlanned.json index 6f1a726dece5..023230857ea3 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountFailoverPlanned.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountFailoverPlanned.json @@ -1,11 +1,11 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4228", "accountName": "sto2434", "api-version": "2025-06-01", + "failoverType": "Planned", "monitor": "true", - "failoverType": "Planned" + "resourceGroupName": "res4228", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, @@ -14,5 +14,7 @@ "Location": "https://endpoint:port/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/{location}/asyncoperations/{operationid}?monitor=true&api-version=2022-09-01" } } - } + }, + "operationId": "StorageAccounts_Failover", + "title": "StorageAccountFailoverPlanned" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetAsyncSkuConversionStatus.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetAsyncSkuConversionStatus.json index dbaaac744a21..f302a6e376ae 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetAsyncSkuConversionStatus.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetAsyncSkuConversionStatus.json @@ -1,34 +1,36 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "StorageV2", "location": "eastus", - "name": "sto8596", "properties": { "allowBlobPublicAccess": false, "minimumTlsVersion": "TLS1_2", "storageAccountSkuConversionStatus": { + "endTime": "2021-09-02T02:53:39.0932539Z", "skuConversionStatus": "InProgress", - "targetSkuName": "Standard_GRS", "startTime": "2022-09-01T02:53:39.0932539Z", - "endTime": "2021-09-02T02:53:39.0932539Z" + "targetSkuName": "Standard_GRS" } }, "sku": { "name": "Standard_GRS", "tier": "Standard" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_GetProperties", + "title": "StorageAccountGetAsyncSkuConversionStatus" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetBlobInventoryPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetBlobInventoryPolicy.json index ce787f11406b..c9bd86e45ec3 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetBlobInventoryPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetBlobInventoryPolicy.json @@ -1,44 +1,43 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", - "blobInventoryPolicyName": "default", "api-version": "2025-06-01", - "monitor": "true" + "blobInventoryPolicyName": "default", + "monitor": "true", + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "name": "DefaultInventoryPolicy", "type": "Microsoft.Storage/storageAccounts/inventoryPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "properties": { + "lastModifiedTime": "2020-10-05T02:53:39.0932539Z", "policy": { - "enabled": true, "type": "Inventory", + "enabled": true, "rules": [ { - "enabled": true, "name": "inventoryPolicyRule1", - "destination": "container1", "definition": { + "format": "Csv", "filters": { "blobTypes": [ "blockBlob", "appendBlob", "pageBlob" ], + "includeBlobVersions": true, + "includeSnapshots": true, "prefixMatch": [ "inventoryprefix1", "inventoryprefix2" - ], - "includeSnapshots": true, - "includeBlobVersions": true + ] }, - "format": "Csv", - "schedule": "Daily", "objectType": "Blob", + "schedule": "Daily", "schemaFields": [ "Name", "Creation-Time", @@ -53,13 +52,16 @@ "IsCurrentVersion", "Metadata" ] - } + }, + "destination": "container1", + "enabled": true } ] - }, - "lastModifiedTime": "2020-10-05T02:53:39.0932539Z" + } } } } - } + }, + "operationId": "BlobInventoryPolicies_Get", + "title": "StorageAccountGetBlobInventoryPolicy" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetEncryptionScope.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetEncryptionScope.json index 153a3126892a..f9f62ece745d 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetEncryptionScope.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetEncryptionScope.json @@ -1,25 +1,27 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "resource-group-name", "accountName": "accountname", - "encryptionScopeName": "{encryption-scope-name}", "api-version": "2025-06-01", - "monitor": "true" + "encryptionScopeName": "{encryption-scope-name}", + "monitor": "true", + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "name": "{encyrption-scope-name}", "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "properties": { - "source": "Microsoft.Storage", - "state": "Enabled", "creationTime": "2018-10-16T02:42:41.7633306Z", - "lastModifiedTime": "2018-10-16T02:42:41.7633306Z" + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z", + "source": "Microsoft.Storage", + "state": "Enabled" } } } - } + }, + "operationId": "EncryptionScopes_Get", + "title": "StorageAccountGetEncryptionScope" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetManagementPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetManagementPolicy.json index 305030f00bc2..6663709d25e6 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetManagementPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetManagementPolicy.json @@ -1,44 +1,36 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "managementPolicyName": "default", "api-version": "2025-06-01", - "monitor": "true" + "managementPolicyName": "default", + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "name": "DefaultManagementPolicy", "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "properties": { + "lastModifiedTime": "2018-06-08T03:01:55.7168089Z", "policy": { "rules": [ { - "enabled": true, "name": "olcmtest", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterModificationGreaterThan": 30 + "delete": { + "daysAfterModificationGreaterThan": 1000 }, "tierToArchive": { "daysAfterModificationGreaterThan": 90 }, - "delete": { - "daysAfterModificationGreaterThan": 1000 + "tierToCool": { + "daysAfterModificationGreaterThan": 30 } }, "snapshot": { @@ -46,14 +38,24 @@ "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] } - } + }, + "enabled": true } ] - }, - "lastModifiedTime": "2018-06-08T03:01:55.7168089Z" + } } } } - } + }, + "operationId": "ManagementPolicies_Get", + "title": "StorageAccountGetManagementPolicies" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetMigrationFailed.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetMigrationFailed.json index a88046ca34db..cd8dbe9649bf 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetMigrationFailed.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetMigrationFailed.json @@ -1,25 +1,27 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "resource-group-name", "accountName": "accountname", "api-version": "2025-06-01", "migrationName": "default", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/accountMigrations/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/accountMigrations", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/accountMigrations/default", "properties": { - "targetSkuName": "Standard_ZRS", - "migrationStatus": "Failed", + "migrationFailedDetailedReason": "ZRS is not supported for accounts with archive data.", "migrationFailedReason": "ZrsNotSupportedForAccountWithArchiveData", - "migrationFailedDetailedReason": "ZRS is not supported for accounts with archive data." + "migrationStatus": "Failed", + "targetSkuName": "Standard_ZRS" } } } - } + }, + "operationId": "StorageAccounts_GetCustomerInitiatedMigration", + "title": "StorageAccountGetMigrationFailed" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetMigrationInProgress.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetMigrationInProgress.json index ff4fc198264e..389ea9c0e8af 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetMigrationInProgress.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetMigrationInProgress.json @@ -1,23 +1,25 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "resource-group-name", "accountName": "accountname", "api-version": "2025-06-01", "migrationName": "default", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/accountMigrations/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/accountMigrations", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/accountMigrations/default", "properties": { - "targetSkuName": "Standard_ZRS", - "migrationStatus": "InProgress" + "migrationStatus": "InProgress", + "targetSkuName": "Standard_ZRS" } } } - } + }, + "operationId": "StorageAccounts_GetCustomerInitiatedMigration", + "title": "StorageAccountGetMigrationInProgress" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetObjectReplicationPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetObjectReplicationPolicy.json index 602871579b9d..98b9db87c307 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetObjectReplicationPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetObjectReplicationPolicy.json @@ -1,53 +1,55 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "objectReplicationPolicyId": "{objectReplicationPolicy-Id}", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "objectReplicationPolicyId": "{objectReplicationPolicy-Id}", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/objectReplicationPolicies/{objectReplicationPolicy-Id}", "name": "{objectReplicationPolicy-Id}", "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/objectReplicationPolicies/{objectReplicationPolicy-Id}", "properties": { - "policyId": "{objectReplicationPolicy-Id}", - "enabledTime": "2019-06-08T03:01:55.7168089Z", - "sourceAccount": "sto2527", "destinationAccount": "destAccount1", + "enabledTime": "2019-06-08T03:01:55.7168089Z", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "policyId": "{objectReplicationPolicy-Id}", "rules": [ { - "sourceContainer": "sourceContainer1", "destinationContainer": "destContainer1", "filters": { "prefixMatch": [ "blobA", "blobB" ] - } + }, + "sourceContainer": "sourceContainer1" }, { - "sourceContainer": "sourceContainer1", "destinationContainer": "destContainer1", "filters": { "prefixMatch": [ "blobC", "blobD" ] - } + }, + "sourceContainer": "sourceContainer1" } ], - "metrics": { - "enabled": true - }, - "priorityReplication": { - "enabled": true - } + "sourceAccount": "sto2527" } } } - } + }, + "operationId": "ObjectReplicationPolicies_Get", + "title": "StorageAccountGetObjectReplicationPolicies" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPrivateEndpointConnection.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPrivateEndpointConnection.json index c3604ebbc4d4..282464545973 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPrivateEndpointConnection.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPrivateEndpointConnection.json @@ -1,30 +1,32 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", - "privateEndpointConnectionName": "{privateEndpointConnectionName}", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "name": "{privateEndpointConnectionName}", "type": "Microsoft.Storage/storageAccounts/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-Approved", - "actionRequired": "None" - } + "actionRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } } - } + }, + "operationId": "PrivateEndpointConnections_Get", + "title": "StorageAccountGetPrivateEndpointConnection" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetProperties.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetProperties.json index a47aeada709d..d8718ecfedcd 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetProperties.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetProperties.json @@ -1,92 +1,93 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { - "keyCreationTime": { - "key1": "2021-03-18T04:42:22.4322836Z", - "key2": "2021-03-18T04:42:22.4322836Z" + "accountMigrationInProgress": false, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, "geoReplicationStats": { - "status": "Live", + "canFailover": true, "lastSyncTime": "2018-10-30T00:25:34Z", - "canFailover": true + "status": "Live" }, "isHnsEnabled": true, - "creationTime": "2017-06-01T02:42:41.7633306Z", + "isSkuConversionBlocked": false, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, "networkAcls": { "bypass": "AzureServices", "defaultAction": "Allow", "ipRules": [], - "virtualNetworkRules": [], "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } - ] + ], + "virtualNetworkRules": [] }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto8596-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "file": "https://sto8596-microsoftrouting.file.core.windows.net/", "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", - "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto8596-internetrouting.web.core.windows.net/", - "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", - "blob": "https://sto8596-internetrouting.blob.core.windows.net/", - "file": "https://sto8596-internetrouting.file.core.windows.net/" - } + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true - }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Storage" + "routingChoice": "MicrosoftRouting" }, "secondaryLocation": "northcentralus(stage)", "statusOfPrimary": "available", "statusOfSecondary": "available", "supportsHttpsTrafficOnly": false, - "isSkuConversionBlocked": false, - "accountMigrationInProgress": false, "geoPriorityReplicationStatus": { "isBlobEnabled": true } @@ -98,9 +99,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_GetProperties", + "title": "StorageAccountGetProperties" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesCMKEnabled.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesCMKEnabled.json index 17d5f45b0284..e44e2fff8b1a 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesCMKEnabled.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesCMKEnabled.json @@ -1,88 +1,89 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "identity": { + "type": "SystemAssigned", "principalId": "911871cc-ffd1-4fc4-ac11-7a316433ea66", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "type": "SystemAssigned" + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" }, "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Keyvault", + "keyvaultproperties": { + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", + "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyversion": "", + "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" + }, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, "geoReplicationStats": { - "status": "Live", + "canFailover": true, "lastSyncTime": "2018-10-30T00:25:34Z", - "canFailover": true + "status": "Live" }, "isHnsEnabled": true, - "creationTime": "2017-06-01T02:42:41.7633306Z", "networkAcls": { "bypass": "AzureServices", "defaultAction": "Allow", "ipRules": [], - "virtualNetworkRules": [], - "resourceAccessRules": [] + "resourceAccessRules": [], + "virtualNetworkRules": [] }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto8596-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "file": "https://sto8596-microsoftrouting.file.core.windows.net/", "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", - "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto8596-internetrouting.web.core.windows.net/", - "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", - "blob": "https://sto8596-internetrouting.blob.core.windows.net/", - "file": "https://sto8596-internetrouting.file.core.windows.net/" - } + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true - }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Keyvault", - "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", - "keyname": "wrappingKey", - "keyversion": "", - "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", - "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" - } + "routingChoice": "MicrosoftRouting" }, "secondaryLocation": "northcentralus(stage)", "statusOfPrimary": "available", @@ -96,9 +97,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_GetProperties", + "title": "StorageAccountGetPropertiesCMKEnabled" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesCMKVersionExpirationTime.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesCMKVersionExpirationTime.json index 35a5134c34d7..18abee0f7d1e 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesCMKVersionExpirationTime.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesCMKVersionExpirationTime.json @@ -1,89 +1,90 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "identity": { + "type": "SystemAssigned", "principalId": "911871cc-ffd1-4fc4-ac11-7a316433ea66", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "type": "SystemAssigned" + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" }, "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Keyvault", + "keyvaultproperties": { + "currentVersionedKeyExpirationTimestamp": "2019-12-13T20:36:23.7023290Z", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", + "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyversion": "", + "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" + }, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, "geoReplicationStats": { - "status": "Live", + "canFailover": true, "lastSyncTime": "2018-10-30T00:25:34Z", - "canFailover": true + "status": "Live" }, "isHnsEnabled": true, - "creationTime": "2017-06-01T02:42:41.7633306Z", "networkAcls": { "bypass": "AzureServices", "defaultAction": "Allow", "ipRules": [], - "virtualNetworkRules": [], - "resourceAccessRules": [] + "resourceAccessRules": [], + "virtualNetworkRules": [] }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto8596-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "file": "https://sto8596-microsoftrouting.file.core.windows.net/", "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", - "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto8596-internetrouting.web.core.windows.net/", - "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", - "blob": "https://sto8596-internetrouting.blob.core.windows.net/", - "file": "https://sto8596-internetrouting.file.core.windows.net/" - } + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true - }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Keyvault", - "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", - "keyname": "wrappingKey", - "keyversion": "", - "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", - "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z", - "currentVersionedKeyExpirationTimestamp": "2019-12-13T20:36:23.7023290Z" - } + "routingChoice": "MicrosoftRouting" }, "secondaryLocation": "northcentralus(stage)", "statusOfPrimary": "available", @@ -97,9 +98,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_GetProperties", + "title": "StorageAccountGetPropertiesCMKVersionExpirationTime" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json index b6c1c3d530dc..1d8f4c621f5c 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json @@ -1,96 +1,97 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", + "$expand": "geoReplicationStats", "accountName": "sto8596", "api-version": "2025-06-01", "monitor": "true", - "$expand": "geoReplicationStats" + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { - "keyCreationTime": { - "key1": "2021-03-18T04:42:22.4322836Z", - "key2": "2021-03-18T04:42:22.4322836Z" + "accountMigrationInProgress": false, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, "geoReplicationStats": { - "status": "Live", - "lastSyncTime": "2018-10-30T00:25:34Z", "canFailover": false, "canPlannedFailover": false, + "lastSyncTime": "2018-10-30T00:25:34Z", "postFailoverRedundancy": "Standard_LRS", - "postPlannedFailoverRedundancy": "Standard_GRS" + "postPlannedFailoverRedundancy": "Standard_GRS", + "status": "Live" }, "isHnsEnabled": true, - "creationTime": "2017-06-01T02:42:41.7633306Z", + "isSkuConversionBlocked": false, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, "networkAcls": { "bypass": "AzureServices", "defaultAction": "Allow", "ipRules": [], - "virtualNetworkRules": [], "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } - ] + ], + "virtualNetworkRules": [] }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto8596-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "file": "https://sto8596-microsoftrouting.file.core.windows.net/", "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", - "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto8596-internetrouting.web.core.windows.net/", - "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", - "blob": "https://sto8596-internetrouting.blob.core.windows.net/", - "file": "https://sto8596-internetrouting.file.core.windows.net/" - } + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true - }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Storage" + "routingChoice": "MicrosoftRouting" }, "secondaryLocation": "northcentralus(stage)", "statusOfPrimary": "available", "statusOfSecondary": "available", - "supportsHttpsTrafficOnly": false, - "isSkuConversionBlocked": false, - "accountMigrationInProgress": false + "supportsHttpsTrafficOnly": false }, "sku": { "name": "Standard_GRS", @@ -99,9 +100,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_GetProperties", + "title": "StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json index 8322cd88eb18..ac678ed0de18 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json @@ -1,96 +1,97 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", + "$expand": "geoReplicationStats", "accountName": "sto8596", "api-version": "2025-06-01", "monitor": "true", - "$expand": "geoReplicationStats" + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { - "keyCreationTime": { - "key1": "2021-03-18T04:42:22.4322836Z", - "key2": "2021-03-18T04:42:22.4322836Z" + "accountMigrationInProgress": false, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, "geoReplicationStats": { - "status": "Live", - "lastSyncTime": "2018-10-30T00:25:34Z", "canFailover": true, "canPlannedFailover": true, + "lastSyncTime": "2018-10-30T00:25:34Z", "postFailoverRedundancy": "Standard_LRS", - "postPlannedFailoverRedundancy": "Standard_GRS" + "postPlannedFailoverRedundancy": "Standard_GRS", + "status": "Live" }, "isHnsEnabled": true, - "creationTime": "2017-06-01T02:42:41.7633306Z", + "isSkuConversionBlocked": false, + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, "networkAcls": { "bypass": "AzureServices", "defaultAction": "Allow", "ipRules": [], - "virtualNetworkRules": [], "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } - ] + ], + "virtualNetworkRules": [] }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto8596-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "file": "https://sto8596-microsoftrouting.file.core.windows.net/", "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", - "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto8596-internetrouting.web.core.windows.net/", - "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", - "blob": "https://sto8596-internetrouting.blob.core.windows.net/", - "file": "https://sto8596-internetrouting.file.core.windows.net/" - } + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true - }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Storage" + "routingChoice": "MicrosoftRouting" }, "secondaryLocation": "northcentralus(stage)", "statusOfPrimary": "available", "statusOfSecondary": "available", - "supportsHttpsTrafficOnly": false, - "isSkuConversionBlocked": false, - "accountMigrationInProgress": false + "supportsHttpsTrafficOnly": false }, "sku": { "name": "Standard_GRS", @@ -99,9 +100,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_GetProperties", + "title": "StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountHierarchicalNamespaceMigration.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountHierarchicalNamespaceMigration.json index e077bac7236c..a71c5887c854 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountHierarchicalNamespaceMigration.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountHierarchicalNamespaceMigration.json @@ -1,10 +1,10 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4228", "accountName": "sto2434", "api-version": "2025-06-01", - "requestType": "HnsOnValidationRequest" + "requestType": "HnsOnValidationRequest", + "resourceGroupName": "res4228", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, @@ -13,5 +13,7 @@ "Location": "https://endpoint:port/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/{location}/asyncoperations/{operationid}?monitor=true&api-version=2022-09-01" } } - } + }, + "operationId": "StorageAccounts_HierarchicalNamespaceMigration", + "title": "StorageAccountHierarchicalNamespaceMigration" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountLeverageIPv6Ability.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountLeverageIPv6Ability.json index dca2c47fa755..66c7ecadda11 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountLeverageIPv6Ability.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountLeverageIPv6Ability.json @@ -1,70 +1,71 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { + "dualStackEndpointPreference": { + "publishIpv6Endpoint": true + }, "networkAcls": { + "defaultAction": "Deny", "ipv6Rules": [ { "action": "Allow", "value": "2001:0db8:85a3::/64" } - ], - "defaultAction": "Deny" - }, - "dualStackEndpointPreference": { - "publishIpv6Endpoint": true + ] } } - } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { + "creationTime": "2017-06-01T02:42:41.7633306Z", + "dualStackEndpointPreference": { + "publishIpv6Endpoint": true + }, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "creationTime": "2017-06-01T02:42:41.7633306Z", "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Deny", + "ipRules": [], "ipv6Rules": [ { "action": "Allow", "value": "2001:0db8:85a3::/64" } ], - "bypass": "AzureServices", - "defaultAction": "Deny", - "ipRules": [], "virtualNetworkRules": [] }, - "dualStackEndpointPreference": { - "publishIpv6Endpoint": true - }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", "ipv6Endpoints": { - "web": "https://sto8596-ipv6.web.core.windows.net/", - "dfs": "https://sto8596-ipv6.dfs.core.windows.net/", "blob": "https://sto8596-ipv6.blob.core.windows.net/", + "dfs": "https://sto8596-ipv6.dfs.core.windows.net/", "file": "https://sto8596-ipv6.file.core.windows.net/", "queue": "https://sto8596-ipv6.queue.core.windows.net/", - "table": "https://sto8596-ipv6.table.core.windows.net/" - } + "table": "https://sto8596-ipv6.table.core.windows.net/", + "web": "https://sto8596-ipv6.web.core.windows.net/" + }, + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", @@ -77,9 +78,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdateEnableIpv6Features" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountList.json index 24cfe7a8d4f5..7d310df5b421 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountList.json @@ -1,64 +1,65 @@ { "parameters": { - "subscriptionId": "{subscription-id}", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { + "name": "sto1125", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res2627/providers/Microsoft.Storage/storageAccounts/sto1125", "kind": "Storage", "location": "eastus", - "name": "sto1125", "properties": { - "isHnsEnabled": true, "creationTime": "2017-05-24T13:28:53.4540398Z", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, + "isHnsEnabled": true, "primaryEndpoints": { - "web": "https://sto1125.web.core.windows.net/", - "dfs": "https://sto1125.dfs.core.windows.net/", "blob": "https://sto1125.blob.core.windows.net/", + "dfs": "https://sto1125.dfs.core.windows.net/", "file": "https://sto1125.file.core.windows.net/", - "queue": "https://sto1125.queue.core.windows.net/", - "table": "https://sto1125.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto1125-internetrouting.blob.core.windows.net/", + "dfs": "https://sto1125-internetrouting.dfs.core.windows.net/", + "file": "https://sto1125-internetrouting.file.core.windows.net/", + "web": "https://sto1125-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto1125-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto1125-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto1125-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto1125-microsoftrouting.dfs.core.windows.net/", "file": "https://sto1125-microsoftrouting.file.core.windows.net/", "queue": "https://sto1125-microsoftrouting.queue.core.windows.net/", - "table": "https://sto1125-microsoftrouting.table.core.windows.net/" + "table": "https://sto1125-microsoftrouting.table.core.windows.net/", + "web": "https://sto1125-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto1125-internetrouting.web.core.windows.net/", - "dfs": "https://sto1125-internetrouting.dfs.core.windows.net/", - "blob": "https://sto1125-internetrouting.blob.core.windows.net/", - "file": "https://sto1125-internetrouting.file.core.windows.net/" - } + "queue": "https://sto1125.queue.core.windows.net/", + "table": "https://sto1125.table.core.windows.net/", + "web": "https://sto1125.web.core.windows.net/" }, "primaryLocation": "eastus", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true - }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Storage" + "routingChoice": "MicrosoftRouting" }, "secondaryLocation": "centraluseuap", "statusOfPrimary": "available", @@ -72,19 +73,19 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } }, { + "name": "sto3699", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/testcmk3/providers/Microsoft.Storage/storageAccounts/sto3699", "identity": { + "type": "SystemAssigned", "principalId": "356d057d-cba5-44dd-8a30-b2e547bc416b", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "type": "SystemAssigned" + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" }, "kind": "Storage", "location": "eastus", - "name": "sto3699", "properties": { "creationTime": "2017-05-24T10:06:30.6093014Z", "primaryEndpoints": { @@ -107,89 +108,89 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } }, { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "identity": { + "type": "SystemAssigned", "principalId": "911871cc-ffd1-4fc4-ac11-7a316433ea66", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "type": "SystemAssigned" + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" }, "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Keyvault", + "keyvaultproperties": { + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", + "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyversion": "", + "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" + }, + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } + }, "geoReplicationStats": { - "status": "Live", + "canFailover": true, "lastSyncTime": "2018-10-30T00:25:34Z", - "canFailover": true + "status": "Live" }, "isHnsEnabled": true, - "creationTime": "2017-06-01T02:42:41.7633306Z", "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } ], - "bypass": "AzureServices", - "defaultAction": "Allow", - "ipRules": [], "virtualNetworkRules": [] }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto8596-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "file": "https://sto8596-microsoftrouting.file.core.windows.net/", "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", - "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto8596-internetrouting.web.core.windows.net/", - "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", - "blob": "https://sto8596-internetrouting.blob.core.windows.net/", - "file": "https://sto8596-internetrouting.file.core.windows.net/" - } + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true - }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Keyvault", - "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", - "keyname": "wrappingKey", - "keyversion": "", - "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", - "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" - } + "routingChoice": "MicrosoftRouting" }, "secondaryLocation": "northcentralus(stage)", "statusOfPrimary": "available", @@ -203,19 +204,19 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } }, { + "name": "sto6637", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/testcmk3/providers/Microsoft.Storage/storageAccounts/sto6637", "identity": { + "type": "SystemAssigned", "principalId": "911871cc-ffd1-4fc4-ac11-7a316433ea66", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "type": "SystemAssigned" + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" }, "kind": "Storage", "location": "eastus", - "name": "sto6637", "properties": { "creationTime": "2017-05-24T10:09:39.5625175Z", "primaryEndpoints": { @@ -238,14 +239,14 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } }, { + "name": "sto834", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res8186/providers/Microsoft.Storage/storageAccounts/sto834", "kind": "Storage", "location": "eastus", - "name": "sto834", "properties": { "creationTime": "2017-05-24T13:28:20.8686541Z", "primaryEndpoints": { @@ -268,19 +269,19 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } }, { + "name": "sto9174", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/testcmk3/providers/Microsoft.Storage/storageAccounts/sto9174", "identity": { + "type": "SystemAssigned", "principalId": "933e3ddf-1802-4a51-9469-18a33b576f88", - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "type": "SystemAssigned" + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" }, "kind": "Storage", "location": "eastus", - "name": "sto9174", "properties": { "creationTime": "2017-05-24T09:46:19.6556989Z", "primaryEndpoints": { @@ -303,11 +304,12 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } ] } } - } + }, + "operationId": "StorageAccounts_List", + "title": "StorageAccountList" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListAccountSAS.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListAccountSAS.json index a2f7206b796b..191332f7433c 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListAccountSAS.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListAccountSAS.json @@ -1,19 +1,19 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7985", "accountName": "sto8588", "api-version": "2025-06-01", "monitor": "true", "parameters": { - "signedServices": "b", - "signedResourceTypes": "s", + "keyToSign": "key1", + "signedExpiry": "2017-05-24T11:42:03.1567373Z", "signedPermission": "r", "signedProtocol": "https,http", - "signedStart": "2017-05-24T10:42:03.1567373Z", - "signedExpiry": "2017-05-24T11:42:03.1567373Z", - "keyToSign": "key1" - } + "signedResourceTypes": "s", + "signedServices": "b", + "signedStart": "2017-05-24T10:42:03.1567373Z" + }, + "resourceGroupName": "res7985", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -21,5 +21,7 @@ "accountSasToken": "sv=2015-04-05&ss=b&srt=s&sp=r&st=2017-05-24T10%3A42%3A03Z&se=2017-05-24T11%3A42%3A03Z&spr=https,http&sig=Z0I%2BEpM%2BPPlTC8ApfUf%2BcffO2aahMgZim3U0iArqsS0%3D" } } - } + }, + "operationId": "StorageAccounts_ListAccountSAS", + "title": "StorageAccountListAccountSAS" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListBlobInventoryPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListBlobInventoryPolicy.json index 6597d2660f9f..822cf854321a 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListBlobInventoryPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListBlobInventoryPolicy.json @@ -1,45 +1,44 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "name": "DefaultInventoryPolicy", "type": "Microsoft.Storage/storageAccounts/inventoryPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "properties": { + "lastModifiedTime": "2020-10-05T02:53:39.0932539Z", "policy": { - "enabled": true, "type": "Inventory", + "enabled": true, "rules": [ { - "enabled": true, "name": "inventoryPolicyRule1", - "destination": "container1", "definition": { + "format": "Csv", "filters": { "blobTypes": [ "blockBlob", "appendBlob", "pageBlob" ], + "includeBlobVersions": true, + "includeSnapshots": true, "prefixMatch": [ "inventoryprefix1", "inventoryprefix2" - ], - "includeSnapshots": true, - "includeBlobVersions": true + ] }, - "format": "Csv", - "schedule": "Daily", "objectType": "Blob", + "schedule": "Daily", "schemaFields": [ "Name", "Creation-Time", @@ -54,15 +53,18 @@ "IsCurrentVersion", "Metadata" ] - } + }, + "destination": "container1", + "enabled": true } ] - }, - "lastModifiedTime": "2020-10-05T02:53:39.0932539Z" + } } } ] } } - } + }, + "operationId": "BlobInventoryPolicies_List", + "title": "StorageAccountGetBlobInventoryPolicy" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListByResourceGroup.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListByResourceGroup.json index 51c64237d4c1..056218c1e2b9 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListByResourceGroup.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListByResourceGroup.json @@ -1,28 +1,29 @@ { "parameters": { - "subscriptionId": "{subscription-id}", + "api-version": "2025-06-01", "resourceGroupName": "res6117", - "api-version": "2025-06-01" + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { + "name": "sto4036", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res6117/providers/Microsoft.Storage/storageAccounts/sto4036", "kind": "Storage", "location": "eastus", - "name": "sto4036", "properties": { - "isHnsEnabled": true, "creationTime": "2017-05-24T13:24:47.818801Z", + "isHnsEnabled": true, "primaryEndpoints": { - "web": "https://sto4036.web.core.windows.net/", - "dfs": "https://sto4036.dfs.core.windows.net/", "blob": "https://sto4036.blob.core.windows.net/", + "dfs": "https://sto4036.dfs.core.windows.net/", "file": "https://sto4036.file.core.windows.net/", "queue": "https://sto4036.queue.core.windows.net/", - "table": "https://sto4036.table.core.windows.net/" + "table": "https://sto4036.table.core.windows.net/", + "web": "https://sto4036.web.core.windows.net/" }, "primaryLocation": "eastus", "provisioningState": "Succeeded", @@ -38,14 +39,14 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } }, { + "name": "sto4452", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res6117/providers/Microsoft.Storage/storageAccounts/sto4452", "kind": "Storage", "location": "eastus", - "name": "sto4452", "properties": { "creationTime": "2017-05-24T13:24:15.7068366Z", "primaryEndpoints": { @@ -68,11 +69,12 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } ] } } - } + }, + "operationId": "StorageAccounts_ListByResourceGroup", + "title": "StorageAccountListByResourceGroup" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListKeys.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListKeys.json index 5ad35e3502a3..9a391d49482b 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListKeys.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListKeys.json @@ -1,10 +1,10 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res418", "accountName": "sto2220", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res418", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -23,5 +23,7 @@ ] } } - } + }, + "operationId": "StorageAccounts_ListKeys", + "title": "StorageAccountListKeys" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListLocationUsage.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListLocationUsage.json index 594b809e2a6a..bbb4d7f21653 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListLocationUsage.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListLocationUsage.json @@ -1,24 +1,26 @@ { "parameters": { - "subscriptionId": "{subscription-id}", + "api-version": "2025-06-01", "location": "eastus2(stage)", - "api-version": "2025-06-01" + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "unit": "Count", + "name": { + "localizedValue": "Storage Accounts", + "value": "StorageAccounts" + }, "currentValue": 55, "limit": 250, - "name": { - "value": "StorageAccounts", - "localizedValue": "Storage Accounts" - } + "unit": "Count" } ] } } - } + }, + "operationId": "Usages_ListByLocation", + "title": "UsageList" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListObjectReplicationPolicies.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListObjectReplicationPolicies.json index 4f897e27a18f..84dfa7a90180 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListObjectReplicationPolicies.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListObjectReplicationPolicies.json @@ -1,41 +1,43 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/objectReplicationPolicies/c6c23999-fd4e-433a-bcf9-1db69d27cd8a", "name": "c6c23999-fd4e-433a-bcf9-1db69d27cd8a", "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/objectReplicationPolicies/c6c23999-fd4e-433a-bcf9-1db69d27cd8a", "properties": { - "sourceAccount": "sto2527", - "destinationAccount": "destAccount1" + "destinationAccount": "destAccount1", + "sourceAccount": "sto2527" } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/objectReplicationPolicies/141d23dc-8958-4b48-b6e6-5a40bf1af116", "name": "141d23dc-8958-4b48-b6e6-5a40bf1af116", "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/objectReplicationPolicies/141d23dc-8958-4b48-b6e6-5a40bf1af116", "properties": { - "sourceAccount": "sto2527", "destinationAccount": "destAccount2", "metrics": { "enabled": true }, "priorityReplication": { "enabled": true - } + }, + "sourceAccount": "sto2527" } } ] } } - } + }, + "operationId": "ObjectReplicationPolicies_List", + "title": "StorageAccountListObjectReplicationPolicies" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListPrivateEndpointConnections.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListPrivateEndpointConnections.json index f394983bc594..e3b89db57f32 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListPrivateEndpointConnections.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListPrivateEndpointConnections.json @@ -1,49 +1,51 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "name": "{privateEndpointConnectionName}", "type": "Microsoft.Storage/storageAccounts/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-Approved", - "actionRequired": "None" - } + "actionRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "name": "{privateEndpointConnectionName}", "type": "Microsoft.Storage/storageAccounts/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest02" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-Approved", - "actionRequired": "None" - } + "actionRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } ] } } - } + }, + "operationId": "PrivateEndpointConnections_List", + "title": "StorageAccountListPrivateEndpointConnections" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListPrivateLinkResources.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListPrivateLinkResources.json index 0c402d1988a8..d424531bfd51 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListPrivateLinkResources.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListPrivateLinkResources.json @@ -1,19 +1,19 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res6977", "accountName": "sto2527", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res6977", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/blob", "name": "blob", "type": "Microsoft.Storage/storageAccounts/privateLinkResources", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/blob", "properties": { "groupId": "blob", "requiredMembers": [ @@ -25,9 +25,9 @@ } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/blob_secondary", "name": "blob_secondary", "type": "Microsoft.Storage/storageAccounts/privateLinkResources", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/blob_secondary", "properties": { "groupId": "blob_secondary", "requiredMembers": [ @@ -39,9 +39,9 @@ } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/table", "name": "table", "type": "Microsoft.Storage/storageAccounts/privateLinkResources", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/table", "properties": { "groupId": "table", "requiredMembers": [ @@ -53,9 +53,9 @@ } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/table_secondary", "name": "table_secondary", "type": "Microsoft.Storage/storageAccounts/privateLinkResources", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/table_secondary", "properties": { "groupId": "table_secondary", "requiredMembers": [ @@ -67,9 +67,9 @@ } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/dfs", "name": "dfs", "type": "Microsoft.Storage/storageAccounts/privateLinkResources", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/dfs", "properties": { "groupId": "dfs", "requiredMembers": [ @@ -81,9 +81,9 @@ } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/dfs_secondary", "name": "dfs_secondary", "type": "Microsoft.Storage/storageAccounts/privateLinkResources", + "id": "/subscriptions/{subscription-id}/resourceGroups/res6977/providers/Microsoft.Storage/storageAccounts/sto2527/privateLinkResources/dfs_secondary", "properties": { "groupId": "dfs_secondary", "requiredMembers": [ @@ -97,5 +97,7 @@ ] } } - } + }, + "operationId": "PrivateLinkResources_ListByStorageAccount", + "title": "StorageAccountListPrivateLinkResources" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListServiceSAS.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListServiceSAS.json index 76c02d84fd3b..f40388110412 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListServiceSAS.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountListServiceSAS.json @@ -1,16 +1,16 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7439", "accountName": "sto1299", "api-version": "2025-06-01", "monitor": "true", "parameters": { "canonicalizedResource": "/blob/sto1299/music", - "signedResource": "c", + "signedExpiry": "2017-05-24T11:32:48.8457197Z", "signedPermission": "l", - "signedExpiry": "2017-05-24T11:32:48.8457197Z" - } + "signedResource": "c" + }, + "resourceGroupName": "res7439", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -18,5 +18,7 @@ "serviceSasToken": "sv=2015-04-05&sr=c&se=2017-05-24T11%3A32%3A48Z&sp=l&sig=PoF8yBUGixsjzwroLmw7vG3VbGz4KB2woZC2D4C2oio%3D" } } - } + }, + "operationId": "StorageAccounts_ListServiceSAS", + "title": "StorageAccountListServiceSAS" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPatchEncryptionScope.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPatchEncryptionScope.json index 1edee68839f7..b7d1a2a60177 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPatchEncryptionScope.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPatchEncryptionScope.json @@ -1,38 +1,40 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "resource-group-name", "accountName": "accountname", - "encryptionScopeName": "{encryption-scope-name}", "api-version": "2025-06-01", - "monitor": "true", "encryptionScope": { "properties": { - "source": "Microsoft.KeyVault", "keyVaultProperties": { "keyUri": "https://testvault.vault.core.windows.net/keys/key1/863425f1358359c" - } + }, + "source": "Microsoft.KeyVault" } - } + }, + "encryptionScopeName": "{encryption-scope-name}", + "monitor": "true", + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "name": "{encryption-scope-name}", "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "properties": { - "source": "Microsoft.KeyVault", - "state": "Enabled", + "creationTime": "2018-10-16T02:42:41.7633306Z", "keyVaultProperties": { - "keyUri": "https://testvault.vault.core.windows.net/keys/key1/863425f1358359c", "currentVersionedKeyIdentifier": "https://testvault.vault.core.windows.net/keys/key1/863425f1358359c", + "keyUri": "https://testvault.vault.core.windows.net/keys/key1/863425f1358359c", "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" }, - "creationTime": "2018-10-16T02:42:41.7633306Z", - "lastModifiedTime": "2018-10-17T06:23:14.4513306Z" + "lastModifiedTime": "2018-10-17T06:23:14.4513306Z", + "source": "Microsoft.KeyVault", + "state": "Enabled" } } } - } + }, + "operationId": "EncryptionScopes_Patch", + "title": "StorageAccountPatchEncryptionScope" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPostMigration.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPostMigration.json index c86dac95832a..2774916a0ece 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPostMigration.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPostMigration.json @@ -1,7 +1,5 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "resource-group-name", "accountName": "accountname", "api-version": "2025-06-01", "monitor": "true", @@ -9,7 +7,9 @@ "properties": { "targetSkuName": "Standard_ZRS" } - } + }, + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {}, @@ -18,5 +18,7 @@ "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2022-09-01" } } - } + }, + "operationId": "StorageAccounts_CustomerInitiatedMigration", + "title": "StorageAccountPostMigration" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPutEncryptionScope.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPutEncryptionScope.json index 16ac02cf708c..a47fd1b8dad5 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPutEncryptionScope.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPutEncryptionScope.json @@ -1,39 +1,41 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "resource-group-name", "accountName": "accountname", - "encryptionScopeName": "{encryption-scope-name}", "api-version": "2025-06-01", + "encryptionScope": {}, + "encryptionScopeName": "{encryption-scope-name}", "monitor": "true", - "encryptionScope": {} + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { - "201": { + "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "name": "{encryption-scope-name}", "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "properties": { - "source": "Microsoft.Storage", - "state": "Enabled", "creationTime": "2018-10-16T02:42:41.7633306Z", - "lastModifiedTime": "2018-10-16T02:42:41.7633306Z" + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z", + "source": "Microsoft.Storage", + "state": "Enabled" } } }, - "200": { + "201": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "name": "{encryption-scope-name}", "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "properties": { - "source": "Microsoft.Storage", - "state": "Enabled", "creationTime": "2018-10-16T02:42:41.7633306Z", - "lastModifiedTime": "2018-10-16T02:42:41.7633306Z" + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z", + "source": "Microsoft.Storage", + "state": "Enabled" } } } - } + }, + "operationId": "EncryptionScopes_Put", + "title": "StorageAccountPutEncryptionScope" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json index 5a3c637ca316..862a7c3d0e7a 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json @@ -1,45 +1,47 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "resource-group-name", "accountName": "accountname", - "encryptionScopeName": "{encryption-scope-name}", "api-version": "2025-06-01", - "monitor": "true", "encryptionScope": { "properties": { "requireInfrastructureEncryption": true } - } + }, + "encryptionScopeName": "{encryption-scope-name}", + "monitor": "true", + "resourceGroupName": "resource-group-name", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { - "201": { + "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "name": "{encryption-scope-name}", "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "properties": { + "creationTime": "2018-10-16T02:42:41.7633306Z", + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z", "requireInfrastructureEncryption": true, "source": "Microsoft.Storage", - "state": "Enabled", - "creationTime": "2018-10-16T02:42:41.7633306Z", - "lastModifiedTime": "2018-10-16T02:42:41.7633306Z" + "state": "Enabled" } } }, - "200": { + "201": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "name": "{encryption-scope-name}", "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", "properties": { + "creationTime": "2018-10-16T02:42:41.7633306Z", + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z", "requireInfrastructureEncryption": true, "source": "Microsoft.Storage", - "state": "Enabled", - "creationTime": "2018-10-16T02:42:41.7633306Z", - "lastModifiedTime": "2018-10-16T02:42:41.7633306Z" + "state": "Enabled" } } } - } + }, + "operationId": "EncryptionScopes_Put", + "title": "StorageAccountPutEncryptionScopeWithInfrastructureEncryption" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPutPrivateEndpointConnection.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPutPrivateEndpointConnection.json index ab97264a9e49..f35bd519e5bd 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPutPrivateEndpointConnection.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountPutPrivateEndpointConnection.json @@ -1,38 +1,40 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", - "privateEndpointConnectionName": "{privateEndpointConnectionName}", "api-version": "2025-06-01", "monitor": "true", + "privateEndpointConnectionName": "{privateEndpointConnectionName}", "properties": { "properties": { "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Auto-Approved" + "description": "Auto-Approved", + "status": "Approved" } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "name": "{privateEndpointConnectionName}", "type": "Microsoft.Storage/storageAccounts/privateEndpointConnections", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/privateEndpointConnections/{privateEndpointConnectionName}", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Network/privateEndpoints/petest01" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-Approved", - "actionRequired": "None" - } + "actionRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } } - } + }, + "operationId": "PrivateEndpointConnections_Put", + "title": "StorageAccountPutPrivateEndpointConnection" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountRegenerateKerbKey.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountRegenerateKerbKey.json index bd4cc62dfd67..ee3d68826b28 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountRegenerateKerbKey.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountRegenerateKerbKey.json @@ -1,13 +1,13 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4167", "accountName": "sto3539", "api-version": "2025-06-01", "monitor": "true", "regenerateKey": { "keyName": "kerb1" - } + }, + "resourceGroupName": "res4167", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -31,5 +31,7 @@ ] } } - } + }, + "operationId": "StorageAccounts_RegenerateKey", + "title": "StorageAccountRegenerateKerbKey" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountRegenerateKey.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountRegenerateKey.json index 7f0fdd70008b..9197e89315d6 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountRegenerateKey.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountRegenerateKey.json @@ -1,13 +1,13 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4167", "accountName": "sto3539", "api-version": "2025-06-01", "monitor": "true", "regenerateKey": { "keyName": "key2" - } + }, + "resourceGroupName": "res4167", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -26,5 +26,7 @@ ] } } - } + }, + "operationId": "StorageAccounts_RegenerateKey", + "title": "StorageAccountRegenerateKey" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountRevokeUserDelegationKeys.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountRevokeUserDelegationKeys.json index 5b85706ccb29..6ae8cf75a66a 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountRevokeUserDelegationKeys.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountRevokeUserDelegationKeys.json @@ -1,11 +1,13 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4167", "accountName": "sto3539", - "api-version": "2025-06-01" + "api-version": "2025-06-01", + "resourceGroupName": "res4167", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": {} - } + }, + "operationId": "StorageAccounts_RevokeUserDelegationKeys", + "title": "StorageAccountRevokeUserDelegationKeys" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetBlobInventoryPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetBlobInventoryPolicy.json index e38301c9a88c..9292bcea200a 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetBlobInventoryPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetBlobInventoryPolicy.json @@ -1,41 +1,37 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", - "blobInventoryPolicyName": "default", "api-version": "2025-06-01", + "blobInventoryPolicyName": "default", "monitor": "true", "properties": { "properties": { "policy": { - "enabled": true, "type": "Inventory", + "enabled": true, "rules": [ { - "enabled": true, "name": "inventoryPolicyRule1", - "destination": "container1", "definition": { + "format": "Csv", "filters": { "blobTypes": [ "blockBlob", "appendBlob", "pageBlob" ], - "prefixMatch": [ - "inventoryprefix1", - "inventoryprefix2" - ], "creationTime": { "lastNDays": 1000 }, + "includeBlobVersions": true, "includeSnapshots": true, - "includeBlobVersions": true + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] }, - "format": "Csv", - "schedule": "Daily", "objectType": "Blob", + "schedule": "Daily", "schemaFields": [ "Name", "Creation-Time", @@ -50,15 +46,16 @@ "IsCurrentVersion", "Metadata" ] - } + }, + "destination": "container1", + "enabled": true }, { - "enabled": true, "name": "inventoryPolicyRule2", "definition": { "format": "Parquet", - "schedule": "Weekly", "objectType": "Container", + "schedule": "Weekly", "schemaFields": [ "Name", "Last-Modified", @@ -71,48 +68,50 @@ "HasLegalHold" ] }, - "destination": "container2" + "destination": "container2", + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "name": "DefaultInventoryPolicy", "type": "Microsoft.Storage/storageAccounts/inventoryPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "properties": { + "lastModifiedTime": "2020-10-05T02:53:39.0932539Z", "policy": { - "enabled": true, "type": "Inventory", + "enabled": true, "rules": [ { - "enabled": true, "name": "inventoryPolicyRule1", - "destination": "container1", "definition": { + "format": "Csv", "filters": { "blobTypes": [ "blockBlob", "appendBlob", "pageBlob" ], - "prefixMatch": [ - "inventoryprefix1", - "inventoryprefix2" - ], "creationTime": { "lastNDays": 1000 }, + "includeBlobVersions": true, "includeSnapshots": true, - "includeBlobVersions": true + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] }, - "format": "Csv", - "schedule": "Daily", "objectType": "Blob", + "schedule": "Daily", "schemaFields": [ "Name", "Creation-Time", @@ -127,15 +126,16 @@ "IsCurrentVersion", "Metadata" ] - } + }, + "destination": "container1", + "enabled": true }, { - "enabled": true, "name": "inventoryPolicyRule2", "definition": { "format": "Parquet", - "schedule": "Weekly", "objectType": "Container", + "schedule": "Weekly", "schemaFields": [ "Name", "Last-Modified", @@ -148,13 +148,15 @@ "HasLegalHold" ] }, - "destination": "container2" + "destination": "container2", + "enabled": true } ] - }, - "lastModifiedTime": "2020-10-05T02:53:39.0932539Z" + } } } } - } + }, + "operationId": "BlobInventoryPolicies_CreateOrUpdate", + "title": "StorageAccountSetBlobInventoryPolicy" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json index e4645baf34cd..d8e36b3c1070 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json @@ -1,43 +1,39 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", - "blobInventoryPolicyName": "default", "api-version": "2025-06-01", + "blobInventoryPolicyName": "default", "monitor": "true", "properties": { "properties": { "policy": { - "enabled": true, "type": "Inventory", + "enabled": true, "rules": [ { - "enabled": true, "name": "inventoryPolicyRule1", - "destination": "container1", "definition": { + "format": "Csv", "filters": { "blobTypes": [ "blockBlob", "appendBlob", "pageBlob" ], - "prefixMatch": [ - "inventoryprefix1", - "inventoryprefix2" - ], "excludePrefix": [ "excludeprefix1", "excludeprefix2" ], - "includeSnapshots": true, "includeBlobVersions": true, - "includeDeleted": true + "includeDeleted": true, + "includeSnapshots": true, + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] }, - "format": "Csv", - "schedule": "Daily", "objectType": "Blob", + "schedule": "Daily", "schemaFields": [ "Name", "Creation-Time", @@ -61,15 +57,16 @@ "DeletedTime", "RemainingRetentionDays" ] - } + }, + "destination": "container1", + "enabled": true }, { - "enabled": true, "name": "inventoryPolicyRule2", "definition": { "format": "Parquet", - "schedule": "Weekly", "objectType": "Container", + "schedule": "Weekly", "schemaFields": [ "Name", "Last-Modified", @@ -90,50 +87,51 @@ "RemainingRetentionDays" ] }, - "destination": "container2" + "destination": "container2", + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "name": "DefaultInventoryPolicy", "type": "Microsoft.Storage/storageAccounts/inventoryPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "properties": { "policy": { - "enabled": true, "type": "Inventory", + "enabled": true, "rules": [ { - "enabled": true, "name": "inventoryPolicyRule1", - "destination": "container1", "definition": { + "format": "Csv", "filters": { "blobTypes": [ "blockBlob", "appendBlob", "pageBlob" ], - "prefixMatch": [ - "inventoryprefix1", - "inventoryprefix2" - ], "excludePrefix": [ "excludeprefix1", "excludeprefix2" ], - "includeSnapshots": true, "includeBlobVersions": true, - "includeDeleted": true + "includeDeleted": true, + "includeSnapshots": true, + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] }, - "format": "Csv", - "schedule": "Daily", "objectType": "Blob", + "schedule": "Daily", "schemaFields": [ "Name", "Creation-Time", @@ -157,15 +155,16 @@ "DeletedTime", "RemainingRetentionDays" ] - } + }, + "destination": "container1", + "enabled": true }, { - "enabled": true, "name": "inventoryPolicyRule2", "definition": { "format": "Parquet", - "schedule": "Weekly", "objectType": "Container", + "schedule": "Weekly", "schemaFields": [ "Name", "Last-Modified", @@ -186,12 +185,15 @@ "RemainingRetentionDays" ] }, - "destination": "container2" + "destination": "container2", + "enabled": true } ] } } } } - } + }, + "operationId": "BlobInventoryPolicies_CreateOrUpdate", + "title": "StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json index 4abdd2a84f4b..1ac780df67c5 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json @@ -1,43 +1,39 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", - "blobInventoryPolicyName": "default", "api-version": "2025-06-01", + "blobInventoryPolicyName": "default", "monitor": "true", "properties": { "properties": { "policy": { - "enabled": true, "type": "Inventory", + "enabled": true, "rules": [ { - "enabled": true, "name": "inventoryPolicyRule1", - "destination": "container1", "definition": { + "format": "Csv", "filters": { "blobTypes": [ "blockBlob", "appendBlob", "pageBlob" ], - "prefixMatch": [ - "inventoryprefix1", - "inventoryprefix2" - ], "excludePrefix": [ "excludeprefix1", "excludeprefix2" ], - "includeSnapshots": true, "includeBlobVersions": true, - "includeDeleted": true + "includeDeleted": true, + "includeSnapshots": true, + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] }, - "format": "Csv", - "schedule": "Daily", "objectType": "Blob", + "schedule": "Daily", "schemaFields": [ "Name", "Creation-Time", @@ -60,15 +56,16 @@ "Deleted", "RemainingRetentionDays" ] - } + }, + "destination": "container1", + "enabled": true }, { - "enabled": true, "name": "inventoryPolicyRule2", "definition": { "format": "Parquet", - "schedule": "Weekly", "objectType": "Container", + "schedule": "Weekly", "schemaFields": [ "Name", "Last-Modified", @@ -89,50 +86,51 @@ "RemainingRetentionDays" ] }, - "destination": "container2" + "destination": "container2", + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "name": "DefaultInventoryPolicy", "type": "Microsoft.Storage/storageAccounts/inventoryPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", "properties": { "policy": { - "enabled": true, "type": "Inventory", + "enabled": true, "rules": [ { - "enabled": true, "name": "inventoryPolicyRule1", - "destination": "container1", "definition": { + "format": "Csv", "filters": { "blobTypes": [ "blockBlob", "appendBlob", "pageBlob" ], - "prefixMatch": [ - "inventoryprefix1", - "inventoryprefix2" - ], "excludePrefix": [ "excludeprefix1", "excludeprefix2" ], - "includeSnapshots": true, "includeBlobVersions": true, - "includeDeleted": true + "includeDeleted": true, + "includeSnapshots": true, + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ] }, - "format": "Csv", - "schedule": "Daily", "objectType": "Blob", + "schedule": "Daily", "schemaFields": [ "Name", "Creation-Time", @@ -155,15 +153,16 @@ "Deleted", "RemainingRetentionDays" ] - } + }, + "destination": "container1", + "enabled": true }, { - "enabled": true, "name": "inventoryPolicyRule2", "definition": { "format": "Parquet", - "schedule": "Weekly", "objectType": "Container", + "schedule": "Weekly", "schemaFields": [ "Name", "Last-Modified", @@ -184,12 +183,15 @@ "RemainingRetentionDays" ] }, - "destination": "container2" + "destination": "container2", + "enabled": true } ] } } } } - } + }, + "operationId": "BlobInventoryPolicies_CreateOrUpdate", + "title": "StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy.json index 5aafff907201..401072cdb135 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy.json @@ -1,38 +1,27 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", - "managementPolicyName": "default", "api-version": "2025-06-01", + "managementPolicyName": "default", "monitor": "true", "properties": { "properties": { "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterModificationGreaterThan": 30 + "delete": { + "daysAfterModificationGreaterThan": 1000 }, "tierToArchive": { "daysAfterModificationGreaterThan": 90 }, - "delete": { - "daysAfterModificationGreaterThan": 1000 + "tierToCool": { + "daysAfterModificationGreaterThan": 30 } }, "snapshot": { @@ -40,21 +29,36 @@ "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true }, { - "enabled": true, "name": "olcmtest2", "type": "Lifecycle", "definition": { + "actions": { + "baseBlob": { + "delete": { + "daysAfterModificationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterModificationGreaterThan": 90 + }, + "tierToCool": { + "daysAfterModificationGreaterThan": 30 + } + } + }, "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer2" - ], "blobIndexMatch": [ { "name": "tag1", @@ -66,60 +70,48 @@ "op": "==", "value": "val2" } + ], + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer2" ] - }, - "actions": { - "baseBlob": { - "tierToCool": { - "daysAfterModificationGreaterThan": 30 - }, - "tierToArchive": { - "daysAfterModificationGreaterThan": 90 - }, - "delete": { - "daysAfterModificationGreaterThan": 1000 - } - } } - } + }, + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "name": "DefaultManagementPolicy", "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "properties": { + "lastModifiedTime": "2018-06-08T02:53:39.0932539Z", "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterModificationGreaterThan": 30 + "delete": { + "daysAfterModificationGreaterThan": 1000 }, "tierToArchive": { "daysAfterModificationGreaterThan": 90 }, - "delete": { - "daysAfterModificationGreaterThan": 1000 + "tierToCool": { + "daysAfterModificationGreaterThan": 30 } }, "snapshot": { @@ -127,21 +119,36 @@ "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true }, { - "enabled": true, "name": "olcmtest2", "type": "Lifecycle", "definition": { + "actions": { + "baseBlob": { + "delete": { + "daysAfterModificationGreaterThan": 1000 + }, + "tierToArchive": { + "daysAfterModificationGreaterThan": 90 + }, + "tierToCool": { + "daysAfterModificationGreaterThan": 30 + } + } + }, "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer2" - ], "blobIndexMatch": [ { "name": "tag1", @@ -153,28 +160,23 @@ "op": "==", "value": "val2" } + ], + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer2" ] - }, - "actions": { - "baseBlob": { - "tierToCool": { - "daysAfterModificationGreaterThan": 30 - }, - "tierToArchive": { - "daysAfterModificationGreaterThan": 90 - }, - "delete": { - "daysAfterModificationGreaterThan": 1000 - } - } } - } + }, + "enabled": true } ] - }, - "lastModifiedTime": "2018-06-08T02:53:39.0932539Z" + } } } } - } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicies" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyColdTierActions.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyColdTierActions.json index ed8ccbacf594..6ce0684e993b 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyColdTierActions.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyColdTierActions.json @@ -1,32 +1,21 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", - "managementPolicyName": "default", "api-version": "2025-06-01", + "managementPolicyName": "default", "monitor": "true", "properties": { "properties": { "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterModificationGreaterThan": 30 + "delete": { + "daysAfterModificationGreaterThan": 1000 }, "tierToArchive": { "daysAfterModificationGreaterThan": 90 @@ -34,60 +23,63 @@ "tierToCold": { "daysAfterModificationGreaterThan": 30 }, - "delete": { - "daysAfterModificationGreaterThan": 1000 + "tierToCool": { + "daysAfterModificationGreaterThan": 30 } }, "snapshot": { - "tierToCold": { + "delete": { "daysAfterCreationGreaterThan": 30 }, - "delete": { + "tierToCold": { "daysAfterCreationGreaterThan": 30 } }, "version": { - "tierToCold": { + "delete": { "daysAfterCreationGreaterThan": 30 }, - "delete": { + "tierToCold": { "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "name": "DefaultManagementPolicy", "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "properties": { + "lastModifiedTime": "2021-06-08T02:53:39.0932539Z", "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterModificationGreaterThan": 30 + "delete": { + "daysAfterModificationGreaterThan": 1000 }, "tierToArchive": { "daysAfterModificationGreaterThan": 90 @@ -95,34 +87,44 @@ "tierToCold": { "daysAfterModificationGreaterThan": 30 }, - "delete": { - "daysAfterModificationGreaterThan": 1000 + "tierToCool": { + "daysAfterModificationGreaterThan": 30 } }, "snapshot": { - "tierToCold": { + "delete": { "daysAfterCreationGreaterThan": 30 }, - "delete": { + "tierToCold": { "daysAfterCreationGreaterThan": 30 } }, "version": { - "tierToCold": { + "delete": { "daysAfterCreationGreaterThan": 30 }, - "delete": { + "tierToCold": { "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true } ] - }, - "lastModifiedTime": "2021-06-08T02:53:39.0932539Z" + } } } } - } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicyColdTierActions" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyForBlockAndAppendBlobs.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyForBlockAndAppendBlobs.json index aec43f42a1e6..fa402aef6d4e 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyForBlockAndAppendBlobs.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyForBlockAndAppendBlobs.json @@ -1,29 +1,17 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", - "managementPolicyName": "default", "api-version": "2025-06-01", + "managementPolicyName": "default", "monitor": "true", "properties": { "properties": { "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob", - "appendBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { "delete": { @@ -40,37 +28,40 @@ "daysAfterCreationGreaterThan": 90 } } + }, + "filters": { + "blobTypes": [ + "blockBlob", + "appendBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "name": "DefaultManagementPolicy", "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "properties": { + "lastModifiedTime": "2018-06-08T02:53:39.0932539Z", "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob", - "appendBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { "delete": { @@ -87,14 +78,25 @@ "daysAfterCreationGreaterThan": 90 } } + }, + "filters": { + "blobTypes": [ + "blockBlob", + "appendBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true } ] - }, - "lastModifiedTime": "2018-06-08T02:53:39.0932539Z" + } } } } - } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicyForBlockAndAppendBlobs" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyHotTierActions.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyHotTierActions.json index 4548d82b313a..a8e21e1af25b 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyHotTierActions.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyHotTierActions.json @@ -1,28 +1,17 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", - "managementPolicyName": "default", "api-version": "2025-06-01", + "managementPolicyName": "default", "monitor": "true", "properties": { "properties": { "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { "tierToHot": { @@ -39,36 +28,39 @@ "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "name": "DefaultManagementPolicy", "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "properties": { + "lastModifiedTime": "2021-06-08T02:53:39.0932539Z", "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { "tierToHot": { @@ -85,14 +77,24 @@ "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true } ] - }, - "lastModifiedTime": "2021-06-08T02:53:39.0932539Z" + } } } } - } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicyHotTierActions" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyWithSnapshotAndVersion.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyWithSnapshotAndVersion.json index cbf2dd0309e7..7688077535ca 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyWithSnapshotAndVersion.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicyWithSnapshotAndVersion.json @@ -1,134 +1,136 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", - "managementPolicyName": "default", "api-version": "2025-06-01", + "managementPolicyName": "default", "monitor": "true", "properties": { "properties": { "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterModificationGreaterThan": 30 + "delete": { + "daysAfterModificationGreaterThan": 1000 }, "tierToArchive": { "daysAfterModificationGreaterThan": 90 }, - "delete": { - "daysAfterModificationGreaterThan": 1000 + "tierToCool": { + "daysAfterModificationGreaterThan": 30 } }, "snapshot": { - "tierToCool": { - "daysAfterCreationGreaterThan": 30 + "delete": { + "daysAfterCreationGreaterThan": 1000 }, "tierToArchive": { "daysAfterCreationGreaterThan": 90 }, - "delete": { - "daysAfterCreationGreaterThan": 1000 + "tierToCool": { + "daysAfterCreationGreaterThan": 30 } }, "version": { - "tierToCool": { - "daysAfterCreationGreaterThan": 30 + "delete": { + "daysAfterCreationGreaterThan": 1000 }, "tierToArchive": { "daysAfterCreationGreaterThan": 90 }, - "delete": { - "daysAfterCreationGreaterThan": 1000 + "tierToCool": { + "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "name": "DefaultManagementPolicy", "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "properties": { + "lastModifiedTime": "2018-06-08T02:53:39.0932539Z", "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterModificationGreaterThan": 30 + "delete": { + "daysAfterModificationGreaterThan": 1000 }, "tierToArchive": { "daysAfterModificationGreaterThan": 90 }, - "delete": { - "daysAfterModificationGreaterThan": 1000 + "tierToCool": { + "daysAfterModificationGreaterThan": 30 } }, "snapshot": { - "tierToCool": { - "daysAfterCreationGreaterThan": 30 + "delete": { + "daysAfterCreationGreaterThan": 1000 }, "tierToArchive": { "daysAfterCreationGreaterThan": 90 }, - "delete": { - "daysAfterCreationGreaterThan": 1000 + "tierToCool": { + "daysAfterCreationGreaterThan": 30 } }, "version": { - "tierToCool": { - "daysAfterCreationGreaterThan": 30 + "delete": { + "daysAfterCreationGreaterThan": 1000 }, "tierToArchive": { "daysAfterCreationGreaterThan": 90 }, - "delete": { - "daysAfterCreationGreaterThan": 1000 + "tierToCool": { + "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true } ] - }, - "lastModifiedTime": "2018-06-08T02:53:39.0932539Z" + } } } } - } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicyWithSnapshotAndVersion" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json index 1e9fa18b1a1b..2f134b239bdf 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json @@ -1,90 +1,92 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", - "managementPolicyName": "default", "api-version": "2025-06-01", + "managementPolicyName": "default", "monitor": "true", "properties": { "properties": { "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterCreationGreaterThan": 30 + "delete": { + "daysAfterCreationGreaterThan": 1000 }, "tierToArchive": { "daysAfterCreationGreaterThan": 90 }, - "delete": { - "daysAfterCreationGreaterThan": 1000 + "tierToCool": { + "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "name": "DefaultManagementPolicy", "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "properties": { + "lastModifiedTime": "2021-06-08T02:53:39.0932539Z", "policy": { "rules": [ { - "enabled": true, "name": "olcmtest1", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer1" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterCreationGreaterThan": 30 + "delete": { + "daysAfterCreationGreaterThan": 1000 }, "tierToArchive": { "daysAfterCreationGreaterThan": 90 }, - "delete": { - "daysAfterCreationGreaterThan": 1000 + "tierToCool": { + "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] } - } + }, + "enabled": true } ] - }, - "lastModifiedTime": "2021-06-08T02:53:39.0932539Z" + } } } } - } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json index d95403abd0b3..8d3fe1505d23 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json @@ -1,102 +1,104 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", - "managementPolicyName": "default", "api-version": "2025-06-01", + "managementPolicyName": "default", "monitor": "true", "properties": { "properties": { "policy": { "rules": [ { - "enabled": true, "name": "olcmtest", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterLastAccessTimeGreaterThan": 30 + "delete": { + "daysAfterLastAccessTimeGreaterThan": 1000 }, + "enableAutoTierToHotFromCool": true, "tierToArchive": { "daysAfterLastAccessTimeGreaterThan": 90 }, - "delete": { - "daysAfterLastAccessTimeGreaterThan": 1000 - }, - "enableAutoTierToHotFromCool": true + "tierToCool": { + "daysAfterLastAccessTimeGreaterThan": 30 + } }, "snapshot": { "delete": { "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] } - } + }, + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "name": "DefaultManagementPolicy", "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "properties": { + "lastModifiedTime": "2018-06-08T02:53:39.0932539Z", "policy": { "rules": [ { - "enabled": true, "name": "olcmtest", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterLastAccessTimeGreaterThan": 30 + "delete": { + "daysAfterLastAccessTimeGreaterThan": 1000 }, + "enableAutoTierToHotFromCool": true, "tierToArchive": { "daysAfterLastAccessTimeGreaterThan": 90 }, - "delete": { - "daysAfterLastAccessTimeGreaterThan": 1000 - }, - "enableAutoTierToHotFromCool": true + "tierToCool": { + "daysAfterLastAccessTimeGreaterThan": 30 + } }, "snapshot": { "delete": { "daysAfterCreationGreaterThan": 30 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] } - } + }, + "enabled": true } ] - }, - "lastModifiedTime": "2018-06-08T02:53:39.0932539Z" + } } } } - } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json index 5f7685bcdebe..6960739f4406 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json @@ -1,39 +1,28 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "sto9699", - "managementPolicyName": "default", "api-version": "2025-06-01", + "managementPolicyName": "default", "monitor": "true", "properties": { "properties": { "policy": { "rules": [ { - "enabled": true, "name": "olcmtest", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterModificationGreaterThan": 30 + "delete": { + "daysAfterModificationGreaterThan": 1000 }, "tierToArchive": { - "daysAfterModificationGreaterThan": 90, - "daysAfterLastTierChangeGreaterThan": 120 + "daysAfterLastTierChangeGreaterThan": 120, + "daysAfterModificationGreaterThan": 90 }, - "delete": { - "daysAfterModificationGreaterThan": 1000 + "tierToCool": { + "daysAfterModificationGreaterThan": 30 } }, "snapshot": { @@ -48,47 +37,50 @@ "daysAfterLastTierChangeGreaterThan": 90 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] } - } + }, + "enabled": true } ] } } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "name": "DefaultManagementPolicy", "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", "properties": { + "lastModifiedTime": "2018-06-08T02:53:39.0932539Z", "policy": { "rules": [ { - "enabled": true, "name": "olcmtest", "type": "Lifecycle", "definition": { - "filters": { - "blobTypes": [ - "blockBlob" - ], - "prefixMatch": [ - "olcmtestcontainer" - ] - }, "actions": { "baseBlob": { - "tierToCool": { - "daysAfterModificationGreaterThan": 30 + "delete": { + "daysAfterModificationGreaterThan": 1000 }, "tierToArchive": { - "daysAfterModificationGreaterThan": 90, - "daysAfterLastTierChangeGreaterThan": 120 + "daysAfterLastTierChangeGreaterThan": 120, + "daysAfterModificationGreaterThan": 90 }, - "delete": { - "daysAfterModificationGreaterThan": 1000 + "tierToCool": { + "daysAfterModificationGreaterThan": 30 } }, "snapshot": { @@ -103,14 +95,24 @@ "daysAfterLastTierChangeGreaterThan": 90 } } + }, + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] } - } + }, + "enabled": true } ] - }, - "lastModifiedTime": "2018-06-08T02:53:39.0932539Z" + } } } } - } + }, + "operationId": "ManagementPolicies_CreateOrUpdate", + "title": "StorageAccountSetManagementPolicy_LastTierChangeTimeActions" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdate.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdate.json index 88346b899802..a5881e7e529c 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdate.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdate.json @@ -1,141 +1,142 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "enableExtendedGroups": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isLocalUserEnabled": true, + "isSftpEnabled": true, "keyPolicy": { "keyExpirationPeriodInDays": 20 }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" - }, - "allowBlobPublicAccess": false, - "isSftpEnabled": true, - "isLocalUserEnabled": true, - "enableExtendedGroups": true, - "defaultToOAuthAuthentication": false, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, "networkAcls": { + "defaultAction": "Allow", "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } - ], - "defaultAction": "Allow" + ] }, "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } - }, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "geoPriorityReplicationStatus": { "isBlobEnabled": true } } - } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "enableExtendedGroups": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, + "isLocalUserEnabled": true, + "isSftpEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "isHnsEnabled": true, - "allowBlobPublicAccess": false, - "isSftpEnabled": true, - "isLocalUserEnabled": true, - "enableExtendedGroups": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-06-01T02:42:41.7633306Z", "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } ], - "bypass": "AzureServices", - "defaultAction": "Allow", - "ipRules": [], "virtualNetworkRules": [] }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto8596-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "file": "https://sto8596-microsoftrouting.file.core.windows.net/", "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", - "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto8596-internetrouting.web.core.windows.net/", - "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", - "blob": "https://sto8596-internetrouting.blob.core.windows.net/", - "file": "https://sto8596-internetrouting.file.core.windows.net/" - } + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "secondaryLocation": "northcentralus(stage)", "statusOfPrimary": "available", @@ -152,9 +153,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdate" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateAllowedCopyScopeToAAD.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateAllowedCopyScopeToAAD.json index 659120f7d134..49f237e048a6 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateAllowedCopyScopeToAAD.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateAllowedCopyScopeToAAD.json @@ -1,134 +1,135 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "allowedCopyScope": "AAD", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, "keyPolicy": { "keyExpirationPeriodInDays": 20 }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" - }, - "allowBlobPublicAccess": false, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, "networkAcls": { + "defaultAction": "Allow", "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } - ], - "defaultAction": "Allow" + ] }, "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true - }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } - }, - "keySource": "Microsoft.Storage" + "routingChoice": "MicrosoftRouting" }, - "allowedCopyScope": "AAD" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } } - } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "allowedCopyScope": "AAD", + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "isHnsEnabled": true, - "allowBlobPublicAccess": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-06-01T02:42:41.7633306Z", "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } ], - "bypass": "AzureServices", - "defaultAction": "Allow", - "ipRules": [], "virtualNetworkRules": [] }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto8596-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "file": "https://sto8596-microsoftrouting.file.core.windows.net/", "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", - "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto8596-internetrouting.web.core.windows.net/", - "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", - "blob": "https://sto8596-internetrouting.blob.core.windows.net/", - "file": "https://sto8596-internetrouting.file.core.windows.net/" - } + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, - "allowedCopyScope": "AAD", "secondaryLocation": "northcentralus(stage)", "statusOfPrimary": "available", "statusOfSecondary": "available", @@ -141,9 +142,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdateAllowedCopyScopeToAAD" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateDisablePublicNetworkAccess.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateDisablePublicNetworkAccess.json index 95f924d007f5..efaec700dd9e 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateDisablePublicNetworkAccess.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateDisablePublicNetworkAccess.json @@ -1,134 +1,135 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, "keyPolicy": { "keyExpirationPeriodInDays": 20 }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" - }, - "allowBlobPublicAccess": false, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, "networkAcls": { + "defaultAction": "Allow", "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } - ], - "defaultAction": "Allow" + ] }, + "publicNetworkAccess": "Disabled", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true - }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } - }, - "keySource": "Microsoft.Storage" + "routingChoice": "MicrosoftRouting" }, - "publicNetworkAccess": "Disabled" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" + } } - } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "isHnsEnabled": true, - "allowBlobPublicAccess": false, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-06-01T02:42:41.7633306Z", "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } ], - "bypass": "AzureServices", - "defaultAction": "Allow", - "ipRules": [], "virtualNetworkRules": [] }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto8596-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "file": "https://sto8596-microsoftrouting.file.core.windows.net/", "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", - "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto8596-internetrouting.web.core.windows.net/", - "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", - "blob": "https://sto8596-internetrouting.blob.core.windows.net/", - "file": "https://sto8596-internetrouting.file.core.windows.net/" - } + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, - "publicNetworkAccess": "Disabled", "secondaryLocation": "northcentralus(stage)", "statusOfPrimary": "available", "statusOfSecondary": "available", @@ -141,9 +142,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdateDisablePublicNetworkAccess" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateObjectReplicationPolicyOnDestination.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateObjectReplicationPolicyOnDestination.json index e42407a02371..db1b47306504 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateObjectReplicationPolicyOnDestination.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateObjectReplicationPolicyOnDestination.json @@ -1,77 +1,79 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "dst112", - "objectReplicationPolicyId": "2a20bb73-5717-4635-985a-5d4cf777438f", "api-version": "2025-06-01", "monitor": "true", + "objectReplicationPolicyId": "2a20bb73-5717-4635-985a-5d4cf777438f", "properties": { "properties": { - "sourceAccount": "src1122", "destinationAccount": "dst112", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, "rules": [ { - "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", - "sourceContainer": "scont139", "destinationContainer": "dcont139", "filters": { "prefixMatch": [ "blobA", "blobB" ] - } + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "scont139" }, { - "sourceContainer": "scont179", - "destinationContainer": "dcont179" + "destinationContainer": "dcont179", + "sourceContainer": "scont179" } ], - "metrics": { - "enabled": true - }, - "priorityReplication": { - "enabled": true - } + "sourceAccount": "src1122" } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/dst112/objectReplicationPolicies/2a20bb73-5717-4635-985a-5d4cf777438f", "name": "2a20bb73-5717-4635-985a-5d4cf777438f", "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/dst112/objectReplicationPolicies/2a20bb73-5717-4635-985a-5d4cf777438f", "properties": { - "policyId": "2a20bb73-5717-4635-985a-5d4cf777438f", - "sourceAccount": "src1122", "destinationAccount": "dst112", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "policyId": "2a20bb73-5717-4635-985a-5d4cf777438f", "rules": [ { - "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", - "sourceContainer": "sourceContainer1", "destinationContainer": "destContainer1", "filters": { "prefixMatch": [ "blobA", "blobB" ] - } + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "sourceContainer1" }, { + "destinationContainer": "dcont179", "ruleId": "cfbb4bc2-8b60-429f-b05a-d1e0942b33b2", - "sourceContainer": "scont179", - "destinationContainer": "dcont179" + "sourceContainer": "scont179" } ], - "metrics": { - "enabled": true - }, - "priorityReplication": { - "enabled": true - } + "sourceAccount": "src1122" } } } - } + }, + "operationId": "ObjectReplicationPolicies_CreateOrUpdate", + "title": "StorageAccountUpdateObjectReplicationPolicyOnDestination" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateObjectReplicationPolicyOnSource.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateObjectReplicationPolicyOnSource.json index 843b79a43d93..850691c56d26 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateObjectReplicationPolicyOnSource.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateObjectReplicationPolicyOnSource.json @@ -1,79 +1,81 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res7687", "accountName": "src1122", - "objectReplicationPolicyId": "2a20bb73-5717-4635-985a-5d4cf777438f", "api-version": "2025-06-01", "monitor": "true", + "objectReplicationPolicyId": "2a20bb73-5717-4635-985a-5d4cf777438f", "properties": { "properties": { - "sourceAccount": "src1122", "destinationAccount": "dst112", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, "rules": [ { - "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", - "sourceContainer": "scont139", "destinationContainer": "dcont139", "filters": { "prefixMatch": [ "blobA", "blobB" ] - } + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "scont139" }, { + "destinationContainer": "dcont179", "ruleId": "cfbb4bc2-8b60-429f-b05a-d1e0942b33b2", - "sourceContainer": "scont179", - "destinationContainer": "dcont179" + "sourceContainer": "scont179" } ], - "metrics": { - "enabled": true - }, - "priorityReplication": { - "enabled": true - } + "sourceAccount": "src1122" } - } + }, + "resourceGroupName": "res7687", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/src1122/objectReplicationPolicies/2a20bb73-5717-4635-985a-5d4cf777438f", "name": "2a20bb73-5717-4635-985a-5d4cf777438f", "type": "Microsoft.Storage/storageAccounts/objectReplicationPolicies", + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/src1122/objectReplicationPolicies/2a20bb73-5717-4635-985a-5d4cf777438f", "properties": { - "policyId": "2a20bb73-5717-4635-985a-5d4cf777438f", - "enabledTime": "2019-06-08T03:01:55.7168089Z", - "sourceAccount": "src1122", "destinationAccount": "dst112", + "enabledTime": "2019-06-08T03:01:55.7168089Z", + "metrics": { + "enabled": true + }, + "priorityReplication": { + "enabled": true + }, + "policyId": "2a20bb73-5717-4635-985a-5d4cf777438f", "rules": [ { - "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", - "sourceContainer": "sourceContainer1", "destinationContainer": "destContainer1", "filters": { "prefixMatch": [ "blobA", "blobB" ] - } + }, + "ruleId": "d5d18a48-8801-4554-aeaa-74faf65f5ef9", + "sourceContainer": "sourceContainer1" }, { + "destinationContainer": "dcont179", "ruleId": "cfbb4bc2-8b60-429f-b05a-d1e0942b33b2", - "sourceContainer": "scont179", - "destinationContainer": "dcont179" + "sourceContainer": "scont179" } ], - "metrics": { - "enabled": true - }, - "priorityReplication": { - "enabled": true - } + "sourceAccount": "src1122" } } } - } + }, + "operationId": "ObjectReplicationPolicies_CreateOrUpdate", + "title": "StorageAccountUpdateObjectReplicationPolicyOnSource" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json index cc2b1c9a4ab5..cf7403f21c34 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json @@ -1,7 +1,5 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9101", "accountName": "sto4445", "api-version": "2025-06-01", "parameters": { @@ -11,106 +9,110 @@ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": {} } }, - "sku": { - "name": "Standard_LRS" - }, "kind": "Storage", "properties": { "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } + "identity": { + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "" }, - "keySource": "Microsoft.Keyvault", - "identity": { - "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } } } + }, + "sku": { + "name": "Standard_LRS" } - } + }, + "resourceGroupName": "res9101", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", "identity": { + "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": { - "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7", - "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5" + "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5", + "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7" } - }, - "type": "UserAssigned" - }, - "sku": { - "name": "Standard_LRS", - "tier": "Standard" + } }, "kind": "StorageV2", - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "name": "sto4445", - "type": "Microsoft.Storage/storageAccounts", "location": "eastus", - "tags": {}, "properties": { - "privateEndpointConnections": [], - "networkAcls": { - "bypass": "AzureServices", - "virtualNetworkRules": [], - "ipRules": [], - "defaultAction": "Allow" - }, - "supportsHttpsTrafficOnly": true, + "accessTier": "Hot", + "creationTime": "2020-12-15T00:43:14.0839093Z", "encryption": { "identity": { "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "", - "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" }, "services": { - "file": { - "keyType": "Account", + "blob": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" }, - "blob": { - "keyType": "Account", + "file": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" } - }, - "keySource": "Microsoft.Keyvault" + } + }, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "virtualNetworkRules": [] }, - "accessTier": "Hot", - "provisioningState": "Succeeded", - "creationTime": "2020-12-15T00:43:14.0839093Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/" + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus", - "statusOfPrimary": "available" - } + "privateEndpointConnections": [], + "provisioningState": "Succeeded", + "statusOfPrimary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "tags": {} } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json index 73fe7b67b47f..0a450ac389dc 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json @@ -1,7 +1,5 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res131918", "accountName": "sto131918", "api-version": "2025-06-01", "parameters": { @@ -11,108 +9,112 @@ "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": {} } }, - "sku": { - "name": "Standard_LRS" - }, "kind": "Storage", "properties": { "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } + "identity": { + "federatedIdentityClientId": "3109d1c4-a5de-4d84-8832-feabb916a4b6", + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "" }, - "keySource": "Microsoft.Keyvault", - "identity": { - "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}", - "federatedIdentityClientId": "3109d1c4-a5de-4d84-8832-feabb916a4b6" + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } } } + }, + "sku": { + "name": "Standard_LRS" } - } + }, + "resourceGroupName": "res131918", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", "identity": { + "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": { - "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7", - "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5" + "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5", + "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7" } - }, - "type": "UserAssigned" - }, - "sku": { - "name": "Standard_LRS", - "tier": "Standard" + } }, "kind": "StorageV2", - "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", - "name": "sto4445", - "type": "Microsoft.Storage/storageAccounts", "location": "eastus", - "tags": {}, "properties": { - "privateEndpointConnections": [], - "networkAcls": { - "bypass": "AzureServices", - "virtualNetworkRules": [], - "ipRules": [], - "defaultAction": "Allow" - }, - "supportsHttpsTrafficOnly": true, + "accessTier": "Hot", + "creationTime": "2020-12-15T00:43:14.0839093Z", "encryption": { "identity": { - "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}", - "federatedIdentityClientId": "3109d1c4-a5de-4d84-8832-feabb916a4b6" + "federatedIdentityClientId": "3109d1c4-a5de-4d84-8832-feabb916a4b6", + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" }, + "keySource": "Microsoft.Keyvault", "keyvaultproperties": { - "keyvaulturi": "https://myvault8569.vault.azure.net", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "keyname": "wrappingKey", + "keyvaulturi": "https://myvault8569.vault.azure.net", "keyversion": "", - "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" }, "services": { - "file": { - "keyType": "Account", + "blob": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" }, - "blob": { - "keyType": "Account", + "file": { "enabled": true, + "keyType": "Account", "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" } - }, - "keySource": "Microsoft.Keyvault" + } + }, + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "virtualNetworkRules": [] }, - "accessTier": "Hot", - "provisioningState": "Succeeded", - "creationTime": "2020-12-15T00:43:14.0839093Z", "primaryEndpoints": { - "web": "https://sto4445.web.core.windows.net/", - "dfs": "https://sto4445.dfs.core.windows.net/", "blob": "https://sto4445.blob.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", "file": "https://sto4445.file.core.windows.net/", "queue": "https://sto4445.queue.core.windows.net/", - "table": "https://sto4445.table.core.windows.net/" + "table": "https://sto4445.table.core.windows.net/", + "web": "https://sto4445.web.core.windows.net/" }, "primaryLocation": "eastus", - "statusOfPrimary": "available" - } + "privateEndpointConnections": [], + "provisioningState": "Succeeded", + "statusOfPrimary": "available", + "supportsHttpsTrafficOnly": true + }, + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "tags": {} } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateWithImmutabilityPolicy.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateWithImmutabilityPolicy.json index b770c0f0e85b..cae9d255e282 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateWithImmutabilityPolicy.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdateWithImmutabilityPolicy.json @@ -1,38 +1,39 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { "immutableStorageWithVersioning": { + "enabled": true, "immutabilityPolicy": { - "immutabilityPeriodSinceCreationInDays": 15, "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 15, "state": "Locked" - }, - "enabled": true + } } } - } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { "immutableStorageWithVersioning": { + "enabled": true, "immutabilityPolicy": { - "immutabilityPeriodSinceCreationInDays": 15, "allowProtectedAppendWrites": true, + "immutabilityPeriodSinceCreationInDays": 15, "state": "Locked" - }, - "enabled": true + } } }, "sku": { @@ -42,9 +43,10 @@ "tags": { "key1": "value1", "key2": "value2" - }, - "type": "Microsoft.Storage/storageAccounts" + } } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdateWithImmutabilityPolicy" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdate_placement.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdate_placement.json index 2ff979dd70d9..4e33e234c6f0 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdate_placement.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdate_placement.json @@ -1,141 +1,145 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", "monitor": "true", "parameters": { + "placement": { + "zonePlacementPolicy": "Any" + }, "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "enableExtendedGroups": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isLocalUserEnabled": true, + "isSftpEnabled": true, "keyPolicy": { "keyExpirationPeriodInDays": 20 }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" - }, - "allowBlobPublicAccess": false, - "isSftpEnabled": true, - "isLocalUserEnabled": true, - "enableExtendedGroups": true, - "defaultToOAuthAuthentication": false, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, "networkAcls": { + "defaultAction": "Allow", "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } - ], - "defaultAction": "Allow" + ] }, "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } - }, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" } - }, - "placement": { - "zonePlacementPolicy": "Any" } - } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", + "placement": { + "zonePlacementPolicy": "Any" + }, "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "enableExtendedGroups": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, + "isLocalUserEnabled": true, + "isSftpEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "isHnsEnabled": true, - "allowBlobPublicAccess": false, - "isSftpEnabled": true, - "isLocalUserEnabled": true, - "enableExtendedGroups": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-06-01T02:42:41.7633306Z", "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } ], - "bypass": "AzureServices", - "defaultAction": "Allow", - "ipRules": [], "virtualNetworkRules": [] }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto8596-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "file": "https://sto8596-microsoftrouting.file.core.windows.net/", "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", - "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto8596-internetrouting.web.core.windows.net/", - "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", - "blob": "https://sto8596-internetrouting.blob.core.windows.net/", - "file": "https://sto8596-internetrouting.file.core.windows.net/" - } + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "secondaryLocation": "northcentralus(stage)", "statusOfPrimary": "available", @@ -150,14 +154,12 @@ "key1": "value1", "key2": "value2" }, - "type": "Microsoft.Storage/storageAccounts", "zones": [ "1" - ], - "placement": { - "zonePlacementPolicy": "Any" - } + ] } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdate_placement" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdate_zones.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdate_zones.json index 54fe1fa4c756..a2f826cfb117 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdate_zones.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/StorageAccountUpdate_zones.json @@ -1,141 +1,142 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9407", "accountName": "sto8596", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "defaultToOAuthAuthentication": false, + "enableExtendedGroups": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account" + }, + "file": { + "enabled": true, + "keyType": "Account" + } + } + }, + "isLocalUserEnabled": true, + "isSftpEnabled": true, "keyPolicy": { "keyExpirationPeriodInDays": 20 }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" - }, - "allowBlobPublicAccess": false, - "isSftpEnabled": true, - "isLocalUserEnabled": true, - "enableExtendedGroups": true, - "defaultToOAuthAuthentication": false, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, "networkAcls": { + "defaultAction": "Allow", "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } - ], - "defaultAction": "Allow" + ] }, "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true - }, - "blob": { - "keyType": "Account", - "enabled": true - } - }, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" } }, "zones": [ "1" ] - } + }, + "resourceGroupName": "res9407", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "name": "sto8596", + "type": "Microsoft.Storage/storageAccounts", "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", "kind": "Storage", "location": "eastus2(stage)", - "name": "sto8596", "properties": { - "keyPolicy": { - "keyExpirationPeriodInDays": 20 - }, - "sasPolicy": { - "sasExpirationPeriod": "1.15:59:59", - "expirationAction": "Log" + "allowBlobPublicAccess": false, + "allowSharedKeyAccess": true, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "enableExtendedGroups": true, + "encryption": { + "keySource": "Microsoft.Storage", + "services": { + "blob": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "file": { + "enabled": true, + "keyType": "Account", + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + } }, + "isHnsEnabled": true, + "isLocalUserEnabled": true, + "isSftpEnabled": true, "keyCreationTime": { "key1": "2021-03-18T04:42:22.4322836Z", "key2": "2021-03-18T04:42:22.4322836Z" }, - "isHnsEnabled": true, - "allowBlobPublicAccess": false, - "isSftpEnabled": true, - "isLocalUserEnabled": true, - "enableExtendedGroups": true, + "keyPolicy": { + "keyExpirationPeriodInDays": 20 + }, "minimumTlsVersion": "TLS1_2", - "allowSharedKeyAccess": true, - "creationTime": "2017-06-01T02:42:41.7633306Z", "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], "resourceAccessRules": [ { - "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace", + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47" } ], - "bypass": "AzureServices", - "defaultAction": "Allow", - "ipRules": [], "virtualNetworkRules": [] }, "primaryEndpoints": { - "web": "https://sto8596.web.core.windows.net/", - "dfs": "https://sto8596.dfs.core.windows.net/", "blob": "https://sto8596.blob.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", "file": "https://sto8596.file.core.windows.net/", - "queue": "https://sto8596.queue.core.windows.net/", - "table": "https://sto8596.table.core.windows.net/", + "internetEndpoints": { + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/", + "web": "https://sto8596-internetrouting.web.core.windows.net/" + }, "microsoftEndpoints": { - "web": "https://sto8596-microsoftrouting.web.core.windows.net/", - "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", "file": "https://sto8596-microsoftrouting.file.core.windows.net/", "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", - "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + "table": "https://sto8596-microsoftrouting.table.core.windows.net/", + "web": "https://sto8596-microsoftrouting.web.core.windows.net/" }, - "internetEndpoints": { - "web": "https://sto8596-internetrouting.web.core.windows.net/", - "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", - "blob": "https://sto8596-internetrouting.blob.core.windows.net/", - "file": "https://sto8596-internetrouting.file.core.windows.net/" - } + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "web": "https://sto8596.web.core.windows.net/" }, "primaryLocation": "eastus2(stage)", "provisioningState": "Succeeded", "routingPreference": { - "routingChoice": "MicrosoftRouting", + "publishInternetEndpoints": true, "publishMicrosoftEndpoints": true, - "publishInternetEndpoints": true + "routingChoice": "MicrosoftRouting" }, - "encryption": { - "services": { - "file": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - }, - "blob": { - "keyType": "Account", - "enabled": true, - "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" - } - }, - "keySource": "Microsoft.Storage" + "sasPolicy": { + "expirationAction": "Log", + "sasExpirationPeriod": "1.15:59:59" }, "secondaryLocation": "northcentralus(stage)", "statusOfPrimary": "available", @@ -150,11 +151,12 @@ "key1": "value1", "key2": "value2" }, - "type": "Microsoft.Storage/storageAccounts", "zones": [ "1" ] } } - } + }, + "operationId": "StorageAccounts_Update", + "title": "StorageAccountUpdate_zones" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationDelete.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationDelete.json index bc17218c5af4..5b990def5c90 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationDelete.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationDelete.json @@ -1,13 +1,15 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "tableName": "table6185", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableName": "table6185" }, "responses": { "204": {} - } + }, + "operationId": "Table_Delete", + "title": "TableOperationDelete" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationGet.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationGet.json index 4d9a550253a7..3cbea1af9dc2 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationGet.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationGet.json @@ -1,22 +1,24 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "tableName": "table6185", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableName": "table6185" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", "name": "table6185", "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", "properties": { "tableName": "table6185" } } } - } + }, + "operationId": "Table_Get", + "title": "TableOperationGet" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationList.json index 5ac31a951a20..3778d0a3be11 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationList.json @@ -1,34 +1,36 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9290", "accountName": "sto328", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { + "nextLink": "https://sto1590endpoint/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables?api-version=2022-09-01&NextTableName=1!40!bXl0YWJsZXNoYzU0OAEwMWQ2MTI5ZTJmYjVmODFh", "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", "name": "table6185", "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", "properties": { "tableName": "table6185" } }, { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6186", "name": "table6186", "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6186", "properties": { "tableName": "table6186" } } - ], - "nextLink": "https://sto1590endpoint/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables?api-version=2022-09-01&NextTableName=1!40!bXl0YWJsZXNoYzU0OAEwMWQ2MTI5ZTJmYjVmODFh" + ] } } - } + }, + "operationId": "Table_List", + "title": "TableOperationList" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPatch.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPatch.json index 4d9a550253a7..83c9276ff3f4 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPatch.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPatch.json @@ -1,22 +1,24 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "tableName": "table6185", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableName": "table6185" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", "name": "table6185", "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", "properties": { "tableName": "table6185" } } } - } + }, + "operationId": "Table_Update", + "title": "TableOperationPatch" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPut.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPut.json index 4d9a550253a7..bb16aa4c0665 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPut.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPut.json @@ -1,22 +1,24 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "tableName": "table6185", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableName": "table6185" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", "name": "table6185", "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", "properties": { "tableName": "table6185" } } } - } + }, + "operationId": "Table_Create", + "title": "TableOperationPut" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPutOrPatchAcls.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPutOrPatchAcls.json index 50ea5c75d277..02ade7079343 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPutOrPatchAcls.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPutOrPatchAcls.json @@ -1,62 +1,64 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res3376", "accountName": "sto328", - "tableName": "table6185", "api-version": "2025-06-01", "monitor": "true", "parameters": { "properties": { "signedIdentifiers": [ { - "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI", "accessPolicy": { - "startTime": "2022-03-17T08:49:37.0000000Z", "expiryTime": "2022-03-20T08:49:37.0000000Z", - "permission": "raud" - } + "permission": "raud", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI" }, { - "id": "PTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODklMTI", "accessPolicy": { - "startTime": "2022-03-17T08:49:37.0000000Z", "expiryTime": "2022-03-20T08:49:37.0000000Z", - "permission": "rad" - } + "permission": "rad", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "PTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODklMTI" } ] } - } + }, + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableName": "table6185" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", "name": "table6185", "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", "properties": { - "tableName": "table6185", "signedIdentifiers": [ { - "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI", "accessPolicy": { - "startTime": "2022-03-17T08:49:37.0000000Z", "expiryTime": "2022-03-20T08:49:37.0000000Z", - "permission": "raud" - } + "permission": "raud", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI" }, { - "id": "PTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODklMTI", "accessPolicy": { - "startTime": "2022-03-17T08:49:37.0000000Z", "expiryTime": "2022-03-20T08:49:37.0000000Z", - "permission": "rad" - } + "permission": "rad", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "PTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODklMTI" } - ] + ], + "tableName": "table6185" } } } - } + }, + "operationId": "Table_Update", + "title": "TableOperationPutOrPatchAcls" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPutOrPatchAclsTableCreate.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPutOrPatchAclsTableCreate.json new file mode 100644 index 000000000000..eb7b6b037a6b --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableOperationPutOrPatchAclsTableCreate.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "accountName": "sto328", + "api-version": "2025-06-01", + "monitor": "true", + "parameters": { + "properties": { + "signedIdentifiers": [ + { + "accessPolicy": { + "expiryTime": "2022-03-20T08:49:37.0000000Z", + "permission": "raud", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI" + }, + { + "accessPolicy": { + "expiryTime": "2022-03-20T08:49:37.0000000Z", + "permission": "rad", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "PTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODklMTI" + } + ] + } + }, + "resourceGroupName": "res3376", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableName": "table6185" + }, + "responses": { + "200": { + "body": { + "name": "table6185", + "type": "Microsoft.Storage/storageAccounts/tableServices/tables", + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/tableServices/default/tables/table6185", + "properties": { + "signedIdentifiers": [ + { + "accessPolicy": { + "expiryTime": "2022-03-20T08:49:37.0000000Z", + "permission": "raud", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI" + }, + { + "accessPolicy": { + "expiryTime": "2022-03-20T08:49:37.0000000Z", + "permission": "rad", + "startTime": "2022-03-17T08:49:37.0000000Z" + }, + "id": "PTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODklMTI" + } + ], + "tableName": "table6185" + } + } + } + }, + "operationId": "Table_Create", + "title": "TableOperationPutOrPatchAcls" +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableServicesGet.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableServicesGet.json index bb41c0f8f0b8..c50146ece9f7 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableServicesGet.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableServicesGet.json @@ -1,25 +1,26 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", "accountName": "sto8607", - "tableServiceName": "default", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableServiceName": "default" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/tableServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/tableServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/tableServices/default", "properties": { "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -29,54 +30,55 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] } } } } - } + }, + "operationId": "TableServices_GetServiceProperties", + "title": "TableServicesGet" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableServicesList.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableServicesList.json index e5dfec0db6b2..785059df5c64 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableServicesList.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableServicesList.json @@ -1,26 +1,27 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res9290", "accountName": "sto1590", "api-version": "2025-06-01", - "monitor": "true" + "monitor": "true", + "resourceGroupName": "res9290", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/tableServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/tableServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/tableServices/default", "properties": { "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -30,49 +31,48 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] } @@ -81,5 +81,7 @@ ] } } - } + }, + "operationId": "TableServices_List", + "title": "TableServicesList" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableServicesPut.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableServicesPut.json index 1a0a8a29ed8f..11ea3e940b6a 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableServicesPut.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/TableServicesPut.json @@ -1,9 +1,6 @@ { "parameters": { - "subscriptionId": "{subscription-id}", - "resourceGroupName": "res4410", "accountName": "sto8607", - "tableServiceName": "default", "api-version": "2025-06-01", "monitor": "true", "parameters": { @@ -11,9 +8,10 @@ "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -23,68 +21,71 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] } } - } + }, + "resourceGroupName": "res4410", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "tableServiceName": "default" }, "responses": { "200": { "body": { - "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/tableServices/default", "name": "default", "type": "Microsoft.Storage/storageAccounts/tableServices", + "id": "/subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/tableServices/default", "properties": { "cors": { "corsRules": [ { - "allowedOrigins": [ - "http://www.contoso.com", - "http://www.fabrikam.com" + "allowedHeaders": [ + "x-ms-meta-abc", + "x-ms-meta-data*", + "x-ms-meta-target*" ], "allowedMethods": [ "GET", @@ -94,54 +95,55 @@ "MERGE", "PUT" ], - "maxAgeInSeconds": 100, + "allowedOrigins": [ + "http://www.contoso.com", + "http://www.fabrikam.com" + ], "exposedHeaders": [ "x-ms-meta-*" ], - "allowedHeaders": [ - "x-ms-meta-abc", - "x-ms-meta-data*", - "x-ms-meta-target*" - ] + "maxAgeInSeconds": 100 }, { - "allowedOrigins": [ + "allowedHeaders": [ "*" ], "allowedMethods": [ "GET" ], - "maxAgeInSeconds": 2, - "exposedHeaders": [ + "allowedOrigins": [ "*" ], - "allowedHeaders": [ + "exposedHeaders": [ "*" - ] + ], + "maxAgeInSeconds": 2 }, { - "allowedOrigins": [ - "http://www.abc23.com", - "https://www.fabrikam.com/*" + "allowedHeaders": [ + "x-ms-meta-12345675754564*" ], "allowedMethods": [ "GET", "PUT" ], - "maxAgeInSeconds": 2000, + "allowedOrigins": [ + "http://www.abc23.com", + "https://www.fabrikam.com/*" + ], "exposedHeaders": [ "x-ms-meta-abc", "x-ms-meta-data*", "x-ms-meta-target*" ], - "allowedHeaders": [ - "x-ms-meta-12345675754564*" - ] + "maxAgeInSeconds": 2000 } ] } } } } - } + }, + "operationId": "TableServices_SetServiceProperties", + "title": "TableServicesPut" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/DeleteStorageTaskAssignment.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/DeleteStorageTaskAssignment.json index e081d97021ff..daa5a853d7a5 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/DeleteStorageTaskAssignment.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/DeleteStorageTaskAssignment.json @@ -1,18 +1,19 @@ { "parameters": { - "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", - "resourceGroupName": "res4228", "accountName": "sto4445", + "api-version": "2025-06-01", + "resourceGroupName": "res4228", "storageTaskAssignmentName": "myassignment1", - "api-version": "2025-06-01" + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" }, "responses": { "202": { "headers": { - "Azure-AsyncOperation": "https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/ActionsRPOperationStatuses/00000000-0000-0000-0000-000000000000*00000?api-version=2025-06-01", "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-06-01" } }, "204": {} - } + }, + "operationId": "StorageTaskAssignments_Delete", + "title": "DeleteStorageTaskAssignment" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/GetStorageTaskAssignment.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/GetStorageTaskAssignment.json index d67c7626391d..5367de0afc4a 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/GetStorageTaskAssignment.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/GetStorageTaskAssignment.json @@ -1,28 +1,27 @@ { "parameters": { - "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", - "resourceGroupName": "res4228", "accountName": "sto4445", + "api-version": "2025-06-01", + "resourceGroupName": "res4228", "storageTaskAssignmentName": "myassignment1", - "api-version": "2025-06-01" + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" }, "responses": { "200": { "body": { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "name": "myassignment1", "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "enabled": true, "description": "My Storage task assignment", + "enabled": true, "executionContext": { "target": { + "excludePrefix": [], "prefix": [ "prefix1", "prefix2" - ], - "excludePrefix": [] + ] }, "trigger": { "type": "RunOnce", @@ -31,12 +30,15 @@ } } }, + "provisioningState": "Succeeded", "report": { "prefix": "container1" }, - "provisioningState": "Succeeded" + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" } } } - } + }, + "operationId": "StorageTaskAssignments_Get", + "title": "GetStorageTaskAssignment" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/PatchStorageTaskAssignment.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/PatchStorageTaskAssignment.json index e2f4ebb55594..ac4a86dc6e12 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/PatchStorageTaskAssignment.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/PatchStorageTaskAssignment.json @@ -1,21 +1,18 @@ { "parameters": { - "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", - "resourceGroupName": "res4228", "accountName": "sto4445", - "storageTaskAssignmentName": "myassignment1", "api-version": "2025-06-01", "parameters": { "properties": { - "enabled": true, "description": "My Storage task assignment", + "enabled": true, "executionContext": { "target": { + "excludePrefix": [], "prefix": [ "prefix1", "prefix2" - ], - "excludePrefix": [] + ] }, "trigger": { "type": "RunOnce", @@ -28,25 +25,27 @@ "prefix": "container1" } } - } + }, + "resourceGroupName": "res4228", + "storageTaskAssignmentName": "myassignment1", + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" }, "responses": { "200": { "body": { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "name": "myassignment1", "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "enabled": true, "description": "My Storage task assignment", + "enabled": true, "executionContext": { "target": { + "excludePrefix": [], "prefix": [ "prefix1", "prefix2" - ], - "excludePrefix": [] + ] }, "trigger": { "type": "RunOnce", @@ -55,18 +54,20 @@ } } }, + "provisioningState": "Succeeded", "report": { "prefix": "container1" }, - "provisioningState": "Succeeded" + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" } } }, "202": { "headers": { - "Azure-AsyncOperation": "https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/ActionsRPOperationStatuses/00000000-0000-0000-0000-000000000000*00000?api-version=2025-06-01", "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-06-01" } } - } + }, + "operationId": "StorageTaskAssignments_Update", + "title": "PatchStorageTaskAssignment" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignment.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignment.json index a5e99e252652..4819345d72d9 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignment.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignment.json @@ -1,22 +1,18 @@ { "parameters": { - "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", - "resourceGroupName": "res4228", "accountName": "sto4445", - "storageTaskAssignmentName": "myassignment1", "api-version": "2025-06-01", "parameters": { "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "enabled": true, "description": "My Storage task assignment", + "enabled": true, "executionContext": { "target": { + "excludePrefix": [], "prefix": [ "prefix1", "prefix2" - ], - "excludePrefix": [] + ] }, "trigger": { "type": "RunOnce", @@ -27,27 +23,30 @@ }, "report": { "prefix": "container1" - } + }, + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" } - } + }, + "resourceGroupName": "res4228", + "storageTaskAssignmentName": "myassignment1", + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" }, "responses": { "200": { "body": { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "name": "myassignment1", "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "enabled": true, "description": "My Storage task assignment", + "enabled": true, "executionContext": { "target": { + "excludePrefix": [], "prefix": [ "prefix1", "prefix2" - ], - "excludePrefix": [] + ] }, "trigger": { "type": "RunOnce", @@ -56,29 +55,29 @@ } } }, + "provisioningState": "Succeeded", "report": { "prefix": "container1" }, - "provisioningState": "Succeeded" + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" } } }, "201": { "body": { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "name": "myassignment1", "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "enabled": true, "description": "My Storage task assignment", + "enabled": true, "executionContext": { "target": { + "excludePrefix": [], "prefix": [ "prefix1", "prefix2" - ], - "excludePrefix": [] + ] }, "trigger": { "type": "RunOnce", @@ -87,18 +86,20 @@ } } }, + "provisioningState": "Succeeded", "report": { "prefix": "container1" }, - "provisioningState": "Succeeded" + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" } } }, "202": { "headers": { - "Azure-AsyncOperation": "https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/ActionsRPOperationStatuses/00000000-0000-0000-0000-000000000000*00000?api-version=2025-06-01", "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-06-01" } } - } + }, + "operationId": "StorageTaskAssignments_Create", + "title": "PutStorageTaskAssignment" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json index b30f6488e05b..8d799a44e91e 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json @@ -1,15 +1,11 @@ { "parameters": { - "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", - "resourceGroupName": "res4228", "accountName": "sto4445", - "storageTaskAssignmentName": "myassignment1", "api-version": "2025-06-01", "parameters": { "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "enabled": true, "description": "My Storage task assignment", + "enabled": true, "executionContext": { "trigger": { "type": "RunOnce", @@ -20,20 +16,23 @@ }, "report": { "prefix": "container1" - } + }, + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" } - } + }, + "resourceGroupName": "res4228", + "storageTaskAssignmentName": "myassignment1", + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" }, "responses": { "200": { "body": { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "name": "myassignment1", "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "enabled": true, "description": "My Storage task assignment", + "enabled": true, "executionContext": { "trigger": { "type": "RunOnce", @@ -42,22 +41,22 @@ } } }, + "provisioningState": "Succeeded", "report": { "prefix": "container1" }, - "provisioningState": "Succeeded" + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" } } }, "201": { "body": { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "name": "myassignment1", "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "enabled": true, "description": "My Storage task assignment", + "enabled": true, "executionContext": { "trigger": { "type": "RunOnce", @@ -66,18 +65,20 @@ } } }, + "provisioningState": "Succeeded", "report": { "prefix": "container1" }, - "provisioningState": "Succeeded" + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" } } }, "202": { "headers": { - "Azure-AsyncOperation": "https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/ActionsRPOperationStatuses/00000000-0000-0000-0000-000000000000*00000?api-version=2025-06-01", "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-06-01" } } - } + }, + "operationId": "StorageTaskAssignments_Create", + "title": "PutStorageTaskAssignmentRequiredProperties" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json index 3e64efe6842e..bb225e6534ef 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json @@ -1,59 +1,61 @@ { "parameters": { - "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", - "resourceGroupName": "res4228", "accountName": "sto4445", + "api-version": "2025-06-01", + "resourceGroupName": "res4228", "storageTaskAssignmentName": "myassignment1", - "api-version": "2025-06-01" + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance1", "name": "instance1", "type": "Microsoft.Storage/storageAccounts/reports", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance1", "properties": { - "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", - "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", - "startTime": "2023-06-23T00:30:43.226744Z", "finishTime": "2023-06-23T00:40:10.2931264Z", - "objectsTargetedCount": "150", - "objectsOperatedOnCount": "150", "objectFailedCount": "0", + "objectsOperatedOnCount": "150", "objectsSucceededCount": "150", - "runStatusError": "0", + "objectsTargetedCount": "150", + "runResult": "Succeeded", "runStatusEnum": "Finished", + "runStatusError": "0", + "startTime": "2023-06-23T00:30:43.226744Z", + "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", "summaryReportPath": "https://acc123.blob.core.windows.net/result-container/{folderpath}/SummaryReport.json", + "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "taskVersion": "1", - "runResult": "Succeeded" + "taskVersion": "1" } }, { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance2", "name": "instance2", "type": "Microsoft.Storage/storageAccounts/reports", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance2", "properties": { - "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", - "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", - "startTime": "2023-06-23T00:30:43.226744Z", "finishTime": "2023-06-23T00:40:10.2931264Z", - "objectsTargetedCount": "150", - "objectsOperatedOnCount": "150", "objectFailedCount": "0", + "objectsOperatedOnCount": "150", "objectsSucceededCount": "150", - "runStatusError": "0", + "objectsTargetedCount": "150", + "runResult": "Succeeded", "runStatusEnum": "Finished", + "runStatusError": "0", + "startTime": "2023-06-23T00:30:43.226744Z", + "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", "summaryReportPath": "https://acc123.blob.core.windows.net/result-container/{folderpath}/SummaryReport.json", + "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "taskVersion": "1", - "runResult": "Succeeded" + "taskVersion": "1" } } ] } } - } + }, + "operationId": "StorageTaskAssignmentInstancesReport_List", + "title": "ListStorageTaskAssignmentInstancesReportSummary" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json index 695341273d9b..2b082c5ee9ed 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json @@ -1,29 +1,28 @@ { "parameters": { - "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", - "resourceGroupName": "res4228", "accountName": "sto4445", - "api-version": "2025-06-01" + "api-version": "2025-06-01", + "resourceGroupName": "res4228", + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "name": "myassignment1", "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "enabled": true, "description": "My Storage task assignment #1", + "enabled": true, "executionContext": { "target": { + "excludePrefix": [], "prefix": [ "prefix1", "prefix2" - ], - "excludePrefix": [] + ] }, "trigger": { "type": "RunOnce", @@ -32,27 +31,27 @@ } } }, + "provisioningState": "Succeeded", "report": { "prefix": "container1" }, - "provisioningState": "Succeeded" + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1" } }, { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment2", "name": "myassignment2", "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment2", "properties": { - "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask2", - "enabled": true, "description": "My Storage task assignment #2", + "enabled": true, "executionContext": { "target": { + "excludePrefix": [], "prefix": [ "prefix3", "prefix4" - ], - "excludePrefix": [] + ] }, "trigger": { "type": "RunOnce", @@ -61,14 +60,17 @@ } } }, + "provisioningState": "Succeeded", "report": { "prefix": "container2" }, - "provisioningState": "Succeeded" + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask2" } } ] } } - } + }, + "operationId": "StorageTaskAssignments_List", + "title": "ListStorageTaskAssignmentsForAccount" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json index bc012ba374fd..980eec9914cb 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json @@ -1,58 +1,60 @@ { "parameters": { - "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", - "resourceGroupName": "res4228", "accountName": "sto4445", - "api-version": "2025-06-01" + "api-version": "2025-06-01", + "resourceGroupName": "res4228", + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance1", "name": "instance1", "type": "Microsoft.Storage/storageAccounts/reports", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance1", "properties": { - "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", - "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", - "startTime": "2023-06-23T00:30:43.226744Z", "finishTime": "2023-06-23T00:40:10.2931264Z", - "objectsTargetedCount": "150", - "objectsOperatedOnCount": "150", "objectFailedCount": "0", + "objectsOperatedOnCount": "150", "objectsSucceededCount": "150", - "runStatusError": "0", + "objectsTargetedCount": "150", + "runResult": "Succeeded", "runStatusEnum": "Finished", + "runStatusError": "0", + "startTime": "2023-06-23T00:30:43.226744Z", + "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", "summaryReportPath": "https://acc123.blob.core.windows.net/result-container/{folderpath}/SummaryReport.json", + "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "taskVersion": "1", - "runResult": "Succeeded" + "taskVersion": "1" } }, { - "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance2", "name": "instance2", "type": "Microsoft.Storage/storageAccounts/reports", + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance2", "properties": { - "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment2", - "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", - "startTime": "2023-06-23T00:30:43.226744Z", "finishTime": "2023-06-23T00:40:10.2931264Z", - "objectsTargetedCount": "150", - "objectsOperatedOnCount": "150", "objectFailedCount": "0", + "objectsOperatedOnCount": "150", "objectsSucceededCount": "150", - "runStatusError": "0", + "objectsTargetedCount": "150", + "runResult": "Succeeded", "runStatusEnum": "Finished", + "runStatusError": "0", + "startTime": "2023-06-23T00:30:43.226744Z", + "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", "summaryReportPath": "https://acc123.blob.core.windows.net/result-container/{folderpath}/SummaryReport.json", + "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment2", "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", - "taskVersion": "1", - "runResult": "Succeeded" + "taskVersion": "1" } } ] } } - } + }, + "operationId": "StorageTaskAssignmentsInstancesReport_List", + "title": "ListStorageTaskAssignmentsInstancesReportSummary" } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/file.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/file.json deleted file mode 100644 index 60b129d560c3..000000000000 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/file.json +++ /dev/null @@ -1,1509 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-06-01", - "title": "StorageManagementClient", - "description": "The Azure Storage Management API." - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices": { - "get": { - "tags": [ - "FileService" - ], - "operationId": "FileServices_List", - "x-ms-examples": { - "ListFileServices": { - "$ref": "./examples/FileServicesList.json" - } - }, - "description": "List all file services in storage accounts", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- List file services operation completed successfully.", - "schema": { - "$ref": "#/definitions/FileServiceItems" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/{FileServicesName}": { - "put": { - "tags": [ - "FileService" - ], - "operationId": "FileServices_SetServiceProperties", - "x-ms-examples": { - "PutFileServices": { - "$ref": "./examples/FileServicesPut.json" - }, - "PutFileServices_EnableSMBMultichannel": { - "$ref": "./examples/FileServicesPut_EnableSMBMultichannel.json" - }, - "PutFileServices_EnableSecureSmbFeatures": { - "$ref": "./examples/FileServicesPut_EnableSecureSmbFeatures.json" - }, - "PutFileServices_EncryptionInTransitRequired": { - "$ref": "./examples/FileServicesPut_EncryptionInTransitRequired.json" - } - }, - "description": "Sets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules. ", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/FileServicesName" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/FileServiceProperties" - }, - "description": "The properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules." - } - ], - "responses": { - "200": { - "description": "OK -- Sets The properties of a storage account’s File service successfully.", - "schema": { - "$ref": "#/definitions/FileServiceProperties" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "get": { - "tags": [ - "FileService" - ], - "operationId": "FileServices_GetServiceProperties", - "x-ms-examples": { - "GetFileServices": { - "$ref": "./examples/FileServicesGet.json" - } - }, - "description": "Gets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/FileServicesName" - } - ], - "responses": { - "200": { - "description": "OK -- returned the properties of a storage account’s File service.", - "schema": { - "$ref": "#/definitions/FileServiceProperties" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/{FileServicesName}/usages": { - "get": { - "tags": [ - "FileService" - ], - "operationId": "FileServices_ListServiceUsages", - "x-ms-examples": { - "ListFileServiceUsages": { - "$ref": "./examples/FileServicesListUsages.json" - } - }, - "description": "Gets the usages of file service in storage account.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/FileServicesName" - }, - { - "name": "$maxpagesize", - "in": "query", - "type": "integer", - "format": "int32", - "description": "Optional, specifies the maximum number of file service usages to be included in the list response." - } - ], - "responses": { - "200": { - "description": "OK -- returned the usages of a storage account’s File service.", - "schema": { - "$ref": "#/definitions/FileServiceUsages" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/{FileServicesName}/usages/{fileServiceUsagesName}": { - "get": { - "tags": [ - "FileService" - ], - "operationId": "FileServices_GetServiceUsage", - "x-ms-examples": { - "GetFileServiceUsage": { - "$ref": "./examples/FileServicesGetUsage.json" - } - }, - "description": "Gets the usage of file service in storage account including account limits, file share limits and constants used in recommendations and bursting formula.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/FileServicesName" - }, - { - "$ref": "#/parameters/FileServiceUsagesName" - } - ], - "responses": { - "200": { - "description": "OK -- returned the usage of a storage account’s File service.", - "schema": { - "$ref": "#/definitions/FileServiceUsage" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares": { - "get": { - "tags": [ - "FileShares" - ], - "operationId": "FileShares_List", - "x-ms-examples": { - "ListShares": { - "$ref": "./examples/FileSharesList.json" - }, - "ListDeletedShares": { - "$ref": "./examples/DeletedFileSharesList.json" - }, - "ListShareSnapshots": { - "$ref": "./examples/FileShareSnapshotsList.json" - }, - "ListSharesPaidBursting": { - "$ref": "./examples/FileSharesList_PaidBursting.json" - }, - "ListSharesProvisionedV2": { - "$ref": "./examples/FileSharesList_ProvisionedV2.json" - } - }, - "description": "Lists all shares.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "$maxpagesize", - "in": "query", - "type": "string", - "description": "Optional. Specified maximum number of shares that can be included in the list." - }, - { - "name": "$filter", - "in": "query", - "type": "string", - "description": "Optional. When specified, only share names starting with the filter will be listed." - }, - { - "name": "$expand", - "in": "query", - "required": false, - "type": "string", - "description": "Optional, used to expand the properties within share's properties. Valid values are: deleted, snapshots. Should be passed as a string with delimiter ','" - } - ], - "responses": { - "200": { - "description": "OK -- List Shares operation completed successfully.", - "schema": { - "$ref": "#/definitions/FileShareItems" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares/{shareName}": { - "put": { - "tags": [ - "FileShares" - ], - "operationId": "FileShares_Create", - "x-ms-examples": { - "PutShares": { - "$ref": "./examples/FileSharesPut.json" - }, - "Create NFS Shares": { - "$ref": "./examples/FileSharesPut_NFS.json" - }, - "PutShares with Access Tier": { - "$ref": "./examples/FileSharesPut_AccessTier.json" - }, - "PutShares with Paid Bursting": { - "$ref": "./examples/FileSharesPut_PaidBursting.json" - }, - "PutSharesProvisionedV2": { - "$ref": "./examples/FileSharesPut_ProvisionedV2.json" - } - }, - "description": "Creates a new share under the specified account as described by request body. The share resource includes metadata and properties for that share. It does not include a list of the files contained by the share. ", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ShareName" - }, - { - "name": "fileShare", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/FileShare" - }, - "description": "Properties of the file share to create." - }, - { - "name": "$expand", - "in": "query", - "required": false, - "type": "string", - "description": "Optional, used to expand the properties within share's properties. Valid values are: snapshots. Should be passed as a string with delimiter ','" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "201": { - "description": "Created -- Create Share operation completed successfully.", - "schema": { - "$ref": "#/definitions/FileShare" - } - }, - "200": { - "description": "OK -- The Share is already created.", - "schema": { - "$ref": "#/definitions/FileShare" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "patch": { - "tags": [ - "FileShares" - ], - "operationId": "FileShares_Update", - "x-ms-examples": { - "UpdateShares": { - "$ref": "./examples/FileSharesPatch.json" - }, - "UpdateShareAcls": { - "$ref": "./examples/FileShareAclsPatch.json" - }, - "UpdateSharePaidBursting": { - "$ref": "./examples/FileSharesPatch_PaidBursting.json" - }, - "UpdateShareProvisionedV2": { - "$ref": "./examples/FileSharesPatch_ProvisionedV2.json" - } - }, - "description": "Updates share properties as specified in request body. Properties not mentioned in the request will not be changed. Update fails if the specified share does not already exist. ", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ShareName" - }, - { - "name": "fileShare", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/FileShare" - }, - "description": "Properties to update for the file share." - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- Update Share operation completed successfully.", - "schema": { - "$ref": "#/definitions/FileShare", - "description": "Properties of the updated file share." - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "get": { - "tags": [ - "FileShares" - ], - "operationId": "FileShares_Get", - "x-ms-examples": { - "GetShares": { - "$ref": "./examples/FileSharesGet.json" - }, - "GetShareStats": { - "$ref": "./examples/FileSharesGet_Stats.json" - }, - "GetSharePaidBursting": { - "$ref": "./examples/FileSharesGet_PaidBursting.json" - }, - "GetShareProvisionedV2": { - "$ref": "./examples/FileSharesGet_ProvisionedV2.json" - } - }, - "description": "Gets properties of a specified share.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ShareName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "$expand", - "in": "query", - "required": false, - "type": "string", - "description": "Optional, used to expand the properties within share's properties. Valid values are: stats. Should be passed as a string with delimiter ','." - }, - { - "name": "x-ms-snapshot", - "in": "header", - "required": false, - "type": "string", - "description": "Optional, used to retrieve properties of a snapshot." - } - ], - "responses": { - "200": { - "description": "OK -- Get Share operation completed successfully.", - "schema": { - "$ref": "#/definitions/FileShare" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "delete": { - "tags": [ - "FileShares" - ], - "operationId": "FileShares_Delete", - "x-ms-examples": { - "DeleteShares": { - "$ref": "./examples/FileSharesDelete.json" - } - }, - "description": "Deletes specified share under its account.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ShareName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "x-ms-snapshot", - "in": "header", - "required": false, - "type": "string", - "description": "Optional, used to delete a snapshot." - }, - { - "name": "$include", - "in": "query", - "required": false, - "type": "string", - "description": "Optional. Valid values are: snapshots, leased-snapshots, none. The default value is snapshots. For 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains leased-snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its file share snapshots (leased/unleased). For 'none', the file share is deleted if it has no share snapshots. If the file share contains any snapshots (leased or unleased), the deletion fails." - } - ], - "responses": { - "200": { - "description": "OK -- Delete Share operation completed successfully." - }, - "204": { - "description": "No Content -- The Share not exist." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares/{shareName}/restore": { - "post": { - "tags": [ - "FileShares" - ], - "operationId": "FileShares_Restore", - "x-ms-examples": { - "RestoreShares": { - "$ref": "./examples/FileSharesRestore.json" - } - }, - "description": "Restore a file share within a valid retention days if share soft delete is enabled", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ShareName" - }, - { - "name": "deletedShare", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/DeletedShare" - } - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- The Share is successfully restored." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares/{shareName}/lease": { - "post": { - "tags": [ - "FileShares" - ], - "operationId": "FileShares_Lease", - "x-ms-examples": { - "Acquire a lease on a share": { - "$ref": "./examples/FileSharesLease_Acquire.json" - }, - "Break a lease on a share": { - "$ref": "./examples/FileSharesLease_Break.json" - } - }, - "description": "The Lease Share operation establishes and manages a lock on a share for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/ShareName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "parameters", - "in": "body", - "schema": { - "$ref": "#/definitions/LeaseShareRequest" - }, - "description": "Lease Share request body." - }, - { - "name": "x-ms-snapshot", - "in": "header", - "required": false, - "type": "string", - "description": "Optional. Specify the snapshot time to lease a snapshot." - } - ], - "responses": { - "200": { - "description": "OK -- Lease Share operation completed successfully.", - "schema": { - "$ref": "#/definitions/LeaseShareResponse" - }, - "headers": { - "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - } - } - }, - "definitions": { - "FileServiceItems": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/FileServiceProperties" - }, - "description": "List of file services returned.", - "readOnly": true - } - } - }, - "FileServiceProperties": { - "properties": { - "properties": { - "properties": { - "cors": { - "$ref": "./common.json#/definitions/CorsRules", - "description": "Specifies CORS rules for the File service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the File service." - }, - "shareDeleteRetentionPolicy": { - "$ref": "./common.json#/definitions/DeleteRetentionPolicy", - "description": "The file service properties for share soft delete." - }, - "protocolSettings": { - "$ref": "#/definitions/ProtocolSettings", - "description": "Protocol settings for file service" - } - }, - "x-ms-client-flatten": true, - "x-ms-client-name": "FileServiceProperties", - "description": "The properties of File services in storage account." - }, - "sku": { - "$ref": "./common.json#/definitions/Sku", - "readOnly": true, - "description": "Sku name and tier." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "description": "The properties of File services in storage account." - }, - "ProtocolSettings": { - "properties": { - "smb": { - "$ref": "#/definitions/SmbSetting", - "description": "Setting for SMB protocol" - }, - "nfs": { - "$ref": "#/definitions/NfsSetting", - "description": "Setting for NFS protocol" - } - }, - "description": "Protocol settings for file service" - }, - "SmbSetting": { - "properties": { - "multichannel": { - "$ref": "#/definitions/Multichannel", - "description": "Multichannel setting. Applies to Premium FileStorage only." - }, - "versions": { - "type": "string", - "description": "SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'." - }, - "authenticationMethods": { - "type": "string", - "description": "SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'." - }, - "kerberosTicketEncryption": { - "type": "string", - "description": "Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';'" - }, - "channelEncryption": { - "type": "string", - "description": "SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'." - }, - "encryptionInTransit": { - "$ref": "#/definitions/EncryptionInTransit", - "description": "Encryption in transit setting." - } - }, - "description": "Setting for SMB protocol" - }, - "NfsSetting": { - "type": "object", - "properties": { - "encryptionInTransit": { - "$ref": "#/definitions/EncryptionInTransit", - "description": "Encryption in transit setting." - } - }, - "description": "Setting for NFS protocol" - }, - "Multichannel": { - "properties": { - "enabled": { - "type": "boolean", - "description": "Indicates whether multichannel is enabled" - } - }, - "description": "Multichannel setting. Applies to Premium FileStorage only." - }, - "EncryptionInTransit": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Indicates whether encryption in transit is required" - } - }, - "description": "Encryption in transit setting." - }, - "FileServiceUsages": { - "type": "object", - "properties": { - "value": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/FileServiceUsage" - }, - "description": "List of file service usages returned." - }, - "nextLink": { - "type": "string", - "readOnly": true, - "description": "Request URL that can be used to query next page of file service usages. Returned when total number of requested file service usages exceed maximum page size." - } - }, - "description": "List file service usages schema." - }, - "FileServiceUsage": { - "type": "object", - "readOnly": true, - "properties": { - "properties": { - "$ref": "#/definitions/FileServiceUsageProperties" - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "description": "The usage of file service in storage account." - }, - "FileServiceUsageProperties": { - "type": "object", - "readOnly": true, - "properties": { - "storageAccountLimits": { - "$ref": "#/definitions/AccountLimits" - }, - "fileShareLimits": { - "$ref": "#/definitions/FileShareLimits" - }, - "fileShareRecommendations": { - "$ref": "#/definitions/FileShareRecommendations" - }, - "burstingConstants": { - "$ref": "#/definitions/BurstingConstants" - }, - "storageAccountUsage": { - "$ref": "#/definitions/AccountUsage" - } - }, - "description": "File service usage in storage account including account limits, file share limits and constants used in recommendations and bursting formula." - }, - "AccountLimits": { - "type": "object", - "readOnly": true, - "properties": { - "maxFileShares": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The maximum number of file shares limit for the storage account." - }, - "maxProvisionedStorageGiB": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The maximum provisioned storage quota limit in gibibytes for the storage account." - }, - "maxProvisionedIOPS": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The maximum provisioned IOPS limit for the storage account." - }, - "maxProvisionedBandwidthMiBPerSec": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The maximum provisioned bandwidth limit in mebibytes per second for the storage account." - } - }, - "description": "Maximum provisioned storage, IOPS, bandwidth and number of file shares limits for the storage account." - }, - "FileShareLimits": { - "type": "object", - "readOnly": true, - "properties": { - "minProvisionedStorageGiB": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The minimum provisioned storage quota limit in gibibytes for a file share in the storage account." - }, - "maxProvisionedStorageGiB": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The maximum provisioned storage quota limit in gibibytes for a file share in the storage account." - }, - "minProvisionedIOPS": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The minimum provisioned IOPS limit for a file share in the storage account." - }, - "maxProvisionedIOPS": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The maximum provisioned IOPS limit for a file share in the storage account." - }, - "minProvisionedBandwidthMiBPerSec": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The minimum provisioned bandwidth limit in mebibytes per second for a file share in the storage account." - }, - "maxProvisionedBandwidthMiBPerSec": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The maximum provisioned bandwidth limit in mebibytes per second for a file share in the storage account." - } - }, - "description": "Minimum and maximum provisioned storage, IOPS and bandwidth limits for a file share in the storage account." - }, - "FileShareRecommendations": { - "type": "object", - "readOnly": true, - "properties": { - "baseIOPS": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The base IOPS in the file share provisioned IOPS recommendation formula." - }, - "ioScalar": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The scalar for IO in the file share provisioned IOPS recommendation formula." - }, - "baseBandwidthMiBPerSec": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The base bandwidth in the file share provisioned bandwidth recommendation formula." - }, - "bandwidthScalar": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The scalar for bandwidth in the file share provisioned bandwidth recommendation formula." - } - }, - "description": "Constants used for calculating recommended provisioned IOPS and bandwidth for a file share in the storage account." - }, - "BurstingConstants": { - "type": "object", - "readOnly": true, - "properties": { - "burstFloorIOPS": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The guaranteed floor of burst IOPS for small file shares." - }, - "burstIOScalar": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The scalar against provisioned IOPS in the file share included burst IOPS formula." - }, - "burstTimeframeSeconds": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The time frame for bursting in seconds in the file share maximum burst credits for IOPS formula." - } - }, - "description": "Constants used for calculating included burst IOPS and maximum burst credits for IOPS for a file share in the storage account." - }, - "AccountUsage": { - "type": "object", - "readOnly": true, - "properties": { - "liveShares": { - "$ref": "#/definitions/AccountUsageElements" - }, - "softDeletedShares": { - "$ref": "#/definitions/AccountUsageElements" - } - }, - "description": "Usage of provisioned storage, IOPS, bandwidth and number of file shares across all live shares and soft-deleted shares in the account." - }, - "AccountUsageElements": { - "type": "object", - "readOnly": true, - "properties": { - "fileShareCount": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The total number of file shares." - }, - "provisionedStorageGiB": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The total provisioned storage quota in gibibytes." - }, - "provisionedIOPS": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The total provisioned IOPS." - }, - "provisionedBandwidthMiBPerSec": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The total provisioned bandwidth in mebibytes per second." - } - }, - "description": "Usage of provisioned storage, IOPS, bandwidth and number of file shares across all live shares or soft-deleted shares in the account." - }, - "FileShare": { - "properties": { - "properties": { - "$ref": "#/definitions/FileShareProperties", - "x-ms-client-flatten": true, - "x-ms-client-name": "FileShareProperties", - "description": "Properties of the file share." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/AzureEntityResource" - } - ], - "description": "Properties of the file share, including Id, resource name, resource type, Etag." - }, - "DeletedShare": { - "properties": { - "deletedShareName": { - "type": "string", - "description": "Required. Identify the name of the deleted share that will be restored." - }, - "deletedShareVersion": { - "type": "string", - "description": "Required. Identify the version of the deleted share that will be restored." - } - }, - "required": [ - "deletedShareName", - "deletedShareVersion" - ], - "description": "The deleted share to be restored." - }, - "FileShareItem": { - "properties": { - "properties": { - "$ref": "#/definitions/FileShareProperties", - "x-ms-client-flatten": true, - "description": "The file share properties be listed out." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/AzureEntityResource" - } - ], - "description": "The file share properties be listed out." - }, - "FileShareItems": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/FileShareItem" - }, - "description": "List of file shares returned.", - "readOnly": true - }, - "nextLink": { - "type": "string", - "description": "Request URL that can be used to query next page of shares. Returned when total number of requested shares exceed maximum page size.", - "readOnly": true - } - }, - "description": "Response schema. Contains list of shares returned, and if paging is requested or required, a URL to next page of shares." - }, - "FileShareProperties": { - "properties": { - "lastModifiedTime": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Returns the date and time the share was last modified." - }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "A name-value pair to associate with the share as metadata." - }, - "shareQuota": { - "type": "integer", - "format": "int32", - "description": "The provisioned size of the share, in gibibytes. Must be greater than 0, and less than or equal to 5TB (5120). For Large File Shares, the maximum size is 102400. For file shares created under Files Provisioned v2 account type, please refer to the GetFileServiceUsage API response for the minimum and maximum allowed provisioned storage size." - }, - "provisionedIops": { - "type": "integer", - "format": "int32", - "description": "The provisioned IOPS of the share. This property is only for file shares created under Files Provisioned v2 account type. Please refer to the GetFileServiceUsage API response for the minimum and maximum allowed value for provisioned IOPS." - }, - "provisionedBandwidthMibps": { - "type": "integer", - "format": "int32", - "description": "The provisioned bandwidth of the share, in mebibytes per second. This property is only for file shares created under Files Provisioned v2 account type. Please refer to the GetFileServiceUsage API response for the minimum and maximum allowed value for provisioned bandwidth." - }, - "includedBurstIops": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The calculated burst IOPS of the share. This property is only for file shares created under Files Provisioned v2 account type." - }, - "maxBurstCreditsForIops": { - "type": "integer", - "format": "int64", - "readOnly": true, - "description": "The calculated maximum burst credits for the share. This property is only for file shares created under Files Provisioned v2 account type." - }, - "nextAllowedQuotaDowngradeTime": { - "type": "string", - "format": "date-time-rfc1123", - "readOnly": true, - "description": "Returns the next allowed provisioned storage size downgrade time for the share. This property is only for file shares created under Files Provisioned v1 SSD and Files Provisioned v2 account type" - }, - "nextAllowedProvisionedIopsDowngradeTime": { - "type": "string", - "format": "date-time-rfc1123", - "readOnly": true, - "description": "Returns the next allowed provisioned IOPS downgrade time for the share. This property is only for file shares created under Files Provisioned v2 account type." - }, - "nextAllowedProvisionedBandwidthDowngradeTime": { - "type": "string", - "format": "date-time-rfc1123", - "readOnly": true, - "description": "Returns the next allowed provisioned bandwidth downgrade time for the share. This property is only for file shares created under Files Provisioned v2 account type." - }, - "enabledProtocols": { - "type": "string", - "enum": [ - "SMB", - "NFS" - ], - "x-ms-enum": { - "name": "EnabledProtocols", - "modelAsString": true - }, - "description": "The authentication protocol that is used for the file share. Can only be specified when creating a share.", - "x-ms-mutability": [ - "create", - "read" - ] - }, - "rootSquash": { - "type": "string", - "enum": [ - "NoRootSquash", - "RootSquash", - "AllSquash" - ], - "x-ms-enum": { - "name": "RootSquashType", - "modelAsString": true - }, - "description": "The property is for NFS share only. The default is NoRootSquash." - }, - "version": { - "type": "string", - "readOnly": true, - "description": "The version of the share." - }, - "deleted": { - "type": "boolean", - "readOnly": true, - "description": "Indicates whether the share was deleted." - }, - "deletedTime": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The deleted time if the share was deleted." - }, - "remainingRetentionDays": { - "type": "integer", - "readOnly": true, - "description": "Remaining retention days for share that was soft deleted." - }, - "accessTier": { - "type": "string", - "enum": [ - "TransactionOptimized", - "Hot", - "Cool", - "Premium" - ], - "x-ms-enum": { - "name": "ShareAccessTier", - "modelAsString": true - }, - "description": "Access tier for specific share. GpV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium." - }, - "accessTierChangeTime": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Indicates the last modification time for share access tier." - }, - "accessTierStatus": { - "type": "string", - "readOnly": true, - "description": "Indicates if there is a pending transition for access tier." - }, - "shareUsageBytes": { - "type": "integer", - "format": "int64", - "readOnly": true, - "description": "The approximate size of the data stored on the share. Note that this value may not include all recently created or recently resized files." - }, - "leaseStatus": { - "type": "string", - "readOnly": true, - "enum": [ - "Locked", - "Unlocked" - ], - "x-ms-enum": { - "name": "LeaseStatus", - "modelAsString": true - }, - "description": "The lease status of the share." - }, - "leaseState": { - "type": "string", - "readOnly": true, - "enum": [ - "Available", - "Leased", - "Expired", - "Breaking", - "Broken" - ], - "x-ms-enum": { - "name": "LeaseState", - "modelAsString": true - }, - "description": "Lease state of the share." - }, - "leaseDuration": { - "type": "string", - "readOnly": true, - "enum": [ - "Infinite", - "Fixed" - ], - "x-ms-enum": { - "name": "LeaseDuration", - "modelAsString": true - }, - "description": "Specifies whether the lease on a share is of infinite or fixed duration, only when the share is leased." - }, - "signedIdentifiers": { - "type": "array", - "items": { - "$ref": "./common.json#/definitions/SignedIdentifier" - }, - "description": "List of stored access policies specified on the share." - }, - "snapshotTime": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "Creation time of share snapshot returned in the response of list shares with expand param \"snapshots\"." - }, - "fileSharePaidBursting": { - "type": "object", - "properties": { - "paidBurstingEnabled": { - "type": "boolean", - "description": "Indicates whether paid bursting is enabled for the share. This property is only for file shares created under Files Provisioned v1 SSD account type." - }, - "paidBurstingMaxIops": { - "type": "integer", - "format": "int32", - "description": "The maximum paid bursting IOPS for the share. This property is only for file shares created under Files Provisioned v1 SSD account type. The maximum allowed value is 102400 which is the maximum allowed IOPS for a share." - }, - "paidBurstingMaxBandwidthMibps": { - "type": "integer", - "format": "int32", - "description": "The maximum paid bursting bandwidth for the share, in mebibytes per second. This property is only for file shares created under Files Provisioned v1 SSD account type. The maximum allowed value is 10340 which is the maximum allowed bandwidth for a share." - } - }, - "description": "File Share Paid Bursting properties." - } - }, - "description": "The properties of the file share." - }, - "LeaseShareRequest": { - "properties": { - "action": { - "type": "string", - "enum": [ - "Acquire", - "Renew", - "Change", - "Release", - "Break" - ], - "x-ms-enum": { - "name": "LeaseShareAction", - "modelAsString": true - }, - "description": "Specifies the lease action. Can be one of the available actions." - }, - "leaseId": { - "type": "string", - "description": "Identifies the lease. Can be specified in any valid GUID string format." - }, - "breakPeriod": { - "type": "integer", - "format": "int32", - "description": "Optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60." - }, - "leaseDuration": { - "type": "integer", - "format": "int32", - "description": "Required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires." - }, - "proposedLeaseId": { - "type": "string", - "description": "Optional for acquire, required for change. Proposed lease ID, in a GUID string format." - } - }, - "required": [ - "action" - ], - "description": "Lease Share request schema." - }, - "LeaseShareResponse": { - "properties": { - "leaseId": { - "type": "string", - "description": "Returned unique lease ID that must be included with any request to delete the share, or to renew, change, or release the lease." - }, - "leaseTimeSeconds": { - "type": "string", - "description": "Approximate time remaining in the lease period, in seconds." - } - }, - "description": "Lease Share response schema." - }, - "SignedIdentifier": { - "properties": { - "id": { - "type": "string", - "description": "An unique identifier of the stored access policy." - }, - "accessPolicy": { - "$ref": "#/definitions/AccessPolicy", - "description": "Access policy" - } - } - }, - "AccessPolicy": { - "properties": { - "startTime": { - "type": "string", - "format": "date-time", - "description": "Start time of the access policy" - }, - "expiryTime": { - "type": "string", - "format": "date-time", - "description": "Expiry time of the access policy" - }, - "permission": { - "type": "string", - "description": "List of abbreviated permissions." - } - } - } - }, - "parameters": { - "FileServicesName": { - "name": "FileServicesName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the file Service within the specified storage account. File Service Name must be \"default\"", - "enum": [ - "default" - ], - "x-ms-enum": { - "name": "FileServicesName", - "modelAsString": false - }, - "x-ms-parameter-location": "method" - }, - "FileServiceUsagesName": { - "name": "fileServiceUsagesName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the file service usage. File Service Usage Name must be \"default\"", - "pattern": "^[a-z][a-z0-9]*$", - "enum": [ - "default" - ], - "x-ms-enum": { - "name": "fileServiceUsagesName", - "modelAsString": false - }, - "x-ms-parameter-location": "method" - }, - "ShareName": { - "name": "shareName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", - "maxLength": 63, - "minLength": 3, - "x-ms-parameter-location": "method" - } - }, - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ] -} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/networkSecurityPerimeter.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/networkSecurityPerimeter.json deleted file mode 100644 index ba8254160b20..000000000000 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/networkSecurityPerimeter.json +++ /dev/null @@ -1,447 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-06-01", - "title": "StorageManagementClient", - "description": "The Azure Storage Management API." - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/networkSecurityPerimeterConfigurations": { - "get": { - "tags": [ - "StorageAccounts NetworkSecurityPerimeterConfigurations" - ], - "operationId": "NetworkSecurityPerimeterConfigurations_List", - "x-ms-examples": { - "NetworkSecurityPerimeterConfigurationList": { - "$ref": "./examples/NetworkSecurityPerimeterConfigurationList.json" - } - }, - "description": "Gets list of effective NetworkSecurityPerimeterConfiguration for storage account", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Network Security Perimeter Configuration List", - "schema": { - "$ref": "#/definitions/NetworkSecurityPerimeterConfigurationList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": null - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}": { - "get": { - "tags": [ - "StorageAccounts NetworkSecurityPerimeterConfigurations" - ], - "operationId": "NetworkSecurityPerimeterConfigurations_Get", - "x-ms-examples": { - "NetworkSecurityPerimeterConfigurationGet": { - "$ref": "./examples/NetworkSecurityPerimeterConfigurationGet.json" - } - }, - "description": "Gets effective NetworkSecurityPerimeterConfiguration for association", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/networkSecurityPerimeterConfigurationName" - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Network Security Perimeter Configuration", - "schema": { - "$ref": "#/definitions/NetworkSecurityPerimeterConfiguration" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}/reconcile": { - "post": { - "tags": [ - "StorageAccounts NetworkSecurityPerimeterConfigurations" - ], - "operationId": "NetworkSecurityPerimeterConfigurations_Reconcile", - "description": "Refreshes any information about the association.", - "x-ms-examples": { - "NetworkSecurityPerimeterConfigurationReconcile": { - "$ref": "./examples/NetworkSecurityPerimeterConfigurationReconcile.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/networkSecurityPerimeterConfigurationName" - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "202": { - "description": "Request to reconcile the association accepted.", - "headers": { - "Location": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - } - }, - "definitions": { - "NetworkSecurityPerimeterConfiguration": { - "description": "The Network Security Perimeter configuration resource.", - "type": "object", - "readOnly": true, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "$ref": "#/definitions/NetworkSecurityPerimeterConfigurationProperties", - "description": "Properties of the Network Security Perimeter Configuration", - "x-ms-client-flatten": true - } - } - }, - "NetworkSecurityPerimeterConfigurationList": { - "description": "Result of the List Network Security Perimeter configuration operation.", - "type": "object", - "properties": { - "value": { - "description": "A collection of Network Security Perimeter configurations", - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/NetworkSecurityPerimeterConfiguration" - } - }, - "nextLink": { - "description": "The URI that can be used to request the next set of paged results.", - "type": "string" - } - } - }, - "NetworkSecurityPerimeterConfigurationProperties": { - "description": "Properties of the Network Security Perimeter Configuration", - "type": "object", - "readOnly": true, - "properties": { - "provisioningState": { - "description": "Provisioning state of Network Security Perimeter configuration propagation", - "enum": [ - "Accepted", - "Succeeded", - "Failed", - "Deleting", - "Canceled" - ], - "type": "string", - "readOnly": true, - "x-ms-enum": { - "name": "NetworkSecurityPerimeterConfigurationProvisioningState", - "modelAsString": true - } - }, - "provisioningIssues": { - "description": "List of Provisioning Issues if any", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/ProvisioningIssue" - }, - "x-ms-identifiers": [ - "name" - ] - }, - "networkSecurityPerimeter": { - "$ref": "#/definitions/NetworkSecurityPerimeter", - "readOnly": true - }, - "resourceAssociation": { - "description": "Information about resource association", - "readOnly": true, - "type": "object", - "properties": { - "name": { - "description": "Name of the resource association", - "type": "string" - }, - "accessMode": { - "description": "Access Mode of the resource association", - "enum": [ - "Enforced", - "Learning", - "Audit" - ], - "type": "string", - "x-ms-enum": { - "name": "ResourceAssociationAccessMode", - "modelAsString": true - } - } - } - }, - "profile": { - "description": "Network Security Perimeter profile", - "readOnly": true, - "type": "object", - "properties": { - "name": { - "description": "Name of the resource", - "type": "string" - }, - "accessRulesVersion": { - "description": "Current access rules version", - "type": "number" - }, - "accessRules": { - "description": "List of Access Rules", - "type": "array", - "items": { - "$ref": "#/definitions/NspAccessRule" - }, - "x-ms-identifiers": [ - "name" - ] - }, - "diagnosticSettingsVersion": { - "description": "Diagnostic settings version", - "type": "number" - }, - "enabledLogCategories": { - "description": "Enabled logging categories", - "type": "array", - "items": { - "description": "Logging category", - "type": "string" - } - } - } - } - } - }, - "ProvisioningIssue": { - "description": "Describes provisioning issue for given NetworkSecurityPerimeterConfiguration", - "type": "object", - "readOnly": true, - "properties": { - "name": { - "description": "Name of the issue", - "type": "string" - }, - "properties": { - "description": "Properties of provisioning issue", - "type": "object", - "readOnly": true, - "properties": { - "issueType": { - "description": "Type of issue", - "enum": [ - "Unknown", - "ConfigurationPropagationFailure" - ], - "type": "string", - "x-ms-enum": { - "name": "IssueType", - "modelAsString": true - } - }, - "severity": { - "description": "Severity of the issue.", - "enum": [ - "Warning", - "Error" - ], - "type": "string", - "x-ms-enum": { - "name": "Severity", - "modelAsString": true - } - }, - "description": { - "description": "Description of the issue", - "type": "string" - } - } - } - } - }, - "NspAccessRule": { - "description": "Information of Access Rule in Network Security Perimeter profile", - "type": "object", - "readOnly": true, - "properties": { - "name": { - "description": "Name of the resource", - "type": "string" - }, - "properties": { - "description": "Properties of Access Rule", - "readOnly": true, - "type": "object", - "properties": { - "direction": { - "description": "Direction of Access Rule", - "enum": [ - "Inbound", - "Outbound" - ], - "type": "string", - "x-ms-enum": { - "name": "NspAccessRuleDirection", - "modelAsString": true - } - }, - "addressPrefixes": { - "description": "Address prefixes in the CIDR format for inbound rules", - "type": "array", - "items": { - "description": "IP Address", - "type": "string" - } - }, - "subscriptions": { - "description": "Subscriptions for inbound rules", - "type": "array", - "items": { - "description": "Subscription for inbound rule", - "type": "object", - "readOnly": true, - "properties": { - "id": { - "description": "The ARM identifier of subscription", - "type": "string" - } - } - } - }, - "networkSecurityPerimeters": { - "description": "NetworkSecurityPerimeters for inbound rules", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/NetworkSecurityPerimeter" - } - }, - "fullyQualifiedDomainNames": { - "description": "FQDN for outbound rules", - "type": "array", - "readOnly": true, - "items": { - "description": "Fully qualified domain name", - "type": "string" - } - } - } - } - } - }, - "NetworkSecurityPerimeter": { - "description": "NetworkSecurityPerimeter related information", - "type": "object", - "readOnly": true, - "properties": { - "id": { - "description": "The ARM identifier of the resource", - "type": "string" - }, - "perimeterGuid": { - "description": "Guid of the resource", - "type": "string" - }, - "location": { - "description": "Location of the resource", - "type": "string", - "x-ms-mutability": [ - "create", - "read" - ] - } - } - } - }, - "parameters": { - "networkSecurityPerimeterConfigurationName": { - "name": "networkSecurityPerimeterConfigurationName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^.*$", - "description": "The name for Network Security Perimeter configuration", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/openapi.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/openapi.json new file mode 100644 index 000000000000..1c1b044b0e41 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/openapi.json @@ -0,0 +1,14359 @@ +{ + "swagger": "2.0", + "info": { + "title": "StorageManagementClient", + "version": "2025-06-01", + "description": "The Azure Storage Management API.", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "BlobContainers" + }, + { + "name": "BlobServices" + }, + { + "name": "StorageAccounts" + }, + { + "name": "ImmutabilityPolicies" + }, + { + "name": "FileShares" + }, + { + "name": "FileServices" + }, + { + "name": "FileServiceUsageOperationGroup" + }, + { + "name": "QueueServices" + }, + { + "name": "StorageQueues" + }, + { + "name": "StorageAccountMigrations" + }, + { + "name": "DeletedAccounts" + }, + { + "name": "ManagementPolicies" + }, + { + "name": "BlobInventoryPolicies" + }, + { + "name": "PrivateEndpointConnections" + }, + { + "name": "ObjectReplicationPolicyOperationGroup" + }, + { + "name": "LocalUserOperationGroup" + }, + { + "name": "EncryptionScopes" + }, + { + "name": "TableServices" + }, + { + "name": "Tables" + }, + { + "name": "NetworkSecurityPerimeterConfigurations" + }, + { + "name": "StorageTaskAssignments" + } + ], + "paths": { + "/providers/Microsoft.Storage/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "Lists all of the available Storage Rest API operations.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "OperationsList": { + "$ref": "./examples/OperationsList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/checkNameAvailability": { + "post": { + "operationId": "StorageAccounts_CheckNameAvailability", + "tags": [ + "StorageAccounts" + ], + "description": "Checks that the storage account name is valid and is not already in use.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "accountName", + "in": "body", + "description": "The request body", + "required": true, + "schema": { + "$ref": "#/definitions/StorageAccountCheckNameAvailabilityParameters" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountCheckNameAvailability": { + "$ref": "./examples/StorageAccountCheckNameAvailability.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/deletedAccounts": { + "get": { + "operationId": "DeletedAccounts_List", + "description": "Lists deleted accounts under the subscription.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/DeletedAccountListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "DeletedAccountList": { + "$ref": "./examples/DeletedAccountList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/locations/{location}/deletedAccounts/{deletedAccountName}": { + "get": { + "operationId": "DeletedAccounts_Get", + "tags": [ + "DeletedAccounts" + ], + "description": "Get properties of specified deleted account resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "deletedAccountName", + "in": "path", + "description": "Name of the deleted storage account.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/DeletedAccount" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "DeletedAccountGet": { + "$ref": "./examples/DeletedAccountGet.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/locations/{location}/usages": { + "get": { + "operationId": "Usages_ListByLocation", + "description": "Gets the current usage count and the limit for the resources of the location under the subscription.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/UsageListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "UsageList": { + "$ref": "./examples/StorageAccountListLocationUsage.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/skus": { + "get": { + "operationId": "Skus_List", + "description": "Lists the available SKUs supported by Microsoft.Storage for given subscription.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/StorageSkuListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SKUListWithLocationInfo": { + "$ref": "./examples/SKUListWithLocationInfo.json" + }, + "SkuList": { + "$ref": "./examples/SKUList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/storageAccounts": { + "get": { + "operationId": "StorageAccounts_List", + "tags": [ + "StorageAccounts" + ], + "description": "Lists all the storage accounts available under the subscription. Note that storage keys are not returned; use the ListKeys operation for this.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageAccountListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountList": { + "$ref": "./examples/StorageAccountList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts": { + "get": { + "operationId": "StorageAccounts_ListByResourceGroup", + "tags": [ + "StorageAccounts" + ], + "description": "Lists all the storage accounts available under the given resource group. Note that storage keys are not returned; use the ListKeys operation for this.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageAccountListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountListByResourceGroup": { + "$ref": "./examples/StorageAccountListByResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}": { + "get": { + "operationId": "StorageAccounts_GetProperties", + "tags": [ + "StorageAccounts" + ], + "description": "Returns the properties for the specified storage account including but not limited to name, SKU name, location, and account status. The ListKeys operation should be used to retrieve storage keys.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "$expand", + "in": "query", + "description": "May be used to expand the properties within account's properties. By default, data is not included when fetching properties. Currently we only support geoReplicationStats and blobRestoreStatus.", + "required": false, + "type": "string", + "enum": [ + "geoReplicationStats", + "blobRestoreStatus" + ], + "x-ms-enum": { + "name": "StorageAccountExpand", + "modelAsString": false + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageAccount" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountGetAsyncSkuConversionStatus": { + "$ref": "./examples/StorageAccountGetAsyncSkuConversionStatus.json" + }, + "StorageAccountGetProperties": { + "$ref": "./examples/StorageAccountGetProperties.json" + }, + "StorageAccountGetPropertiesCMKEnabled": { + "$ref": "./examples/StorageAccountGetPropertiesCMKEnabled.json" + }, + "StorageAccountGetPropertiesCMKVersionExpirationTime": { + "$ref": "./examples/StorageAccountGetPropertiesCMKVersionExpirationTime.json" + }, + "StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse": { + "$ref": "./examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json" + }, + "StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue": { + "$ref": "./examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json" + } + } + }, + "put": { + "operationId": "StorageAccounts_Create", + "tags": [ + "StorageAccounts" + ], + "description": "Asynchronously creates a new storage account with the specified parameters. If an account is already created and a subsequent create request is issued with different properties, the account properties will be updated. If an account is already created and a subsequent create or update request is issued with the exact same set of properties, the request will succeed.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The parameters to provide for the created account.", + "required": true, + "schema": { + "$ref": "#/definitions/StorageAccountCreateParameters" + } + } + ], + "responses": { + "200": { + "description": "Resource 'StorageAccount' update operation succeeded", + "schema": { + "$ref": "#/definitions/StorageAccount" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "NfsV3AccountCreate": { + "$ref": "./examples/NfsV3AccountCreate.json" + }, + "StorageAccountCreate": { + "$ref": "./examples/StorageAccountCreate.json" + }, + "StorageAccountCreateAllowedCopyScopeToAAD": { + "$ref": "./examples/StorageAccountCreateAllowedCopyScopeToAAD.json" + }, + "StorageAccountCreateAllowedCopyScopeToPrivateLink": { + "$ref": "./examples/StorageAccountCreateAllowedCopyScopeToPrivateLink.json" + }, + "StorageAccountCreateDisallowPublicNetworkAccess": { + "$ref": "./examples/StorageAccountCreateDisallowPublicNetworkAccess.json" + }, + "StorageAccountCreateDnsEndpointTypeToAzureDnsZone": { + "$ref": "./examples/StorageAccountCreateDnsEndpointTypeToAzureDnsZone.json" + }, + "StorageAccountCreateDnsEndpointTypeToStandard": { + "$ref": "./examples/StorageAccountCreateDnsEndpointTypeToStandard.json" + }, + "StorageAccountCreateEnablePublicNetworkAccess": { + "$ref": "./examples/StorageAccountCreateEnablePublicNetworkAccess.json" + }, + "StorageAccountCreatePremiumBlockBlobStorage": { + "$ref": "./examples/StorageAccountCreatePremiumBlockBlobStorage.json" + }, + "StorageAccountCreateUserAssignedEncryptionIdentityWithCMK": { + "$ref": "./examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json" + }, + "StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.": { + "$ref": "./examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json" + }, + "StorageAccountCreateWithImmutabilityPolicy": { + "$ref": "./examples/StorageAccountCreateWithImmutabilityPolicy.json" + }, + "StorageAccountCreate_placement": { + "$ref": "./examples/StorageAccountCreate_placement.json" + }, + "StorageAccountCreate_zones": { + "$ref": "./examples/StorageAccountCreate_zones.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location", + "final-state-schema": "#/definitions/StorageAccount" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "StorageAccounts_Update", + "tags": [ + "StorageAccounts" + ], + "description": "The update operation can be used to update the SKU, encryption, access tier, or tags for a storage account. It can also be used to map the account to a custom domain. Only one custom domain is supported per storage account; the replacement/change of custom domain is not supported. In order to replace an old custom domain, the old value must be cleared/unregistered before a new value can be set. The update of multiple properties is supported. This call does not change the storage keys for the account. If you want to change the storage account keys, use the regenerate keys operation. The location and name of the storage account cannot be changed after creation.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The parameters to provide for the updated account.", + "required": true, + "schema": { + "$ref": "#/definitions/StorageAccountUpdateParameters" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageAccount" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountEnableAD": { + "$ref": "./examples/StorageAccountEnableAD.json" + }, + "StorageAccountEnableCMK": { + "$ref": "./examples/StorageAccountEnableCMK.json" + }, + "StorageAccountEnableSmbOAuth": { + "$ref": "./examples/StorageAccountEnableSmbOAuth.json" + }, + "StorageAccountUpdate": { + "$ref": "./examples/StorageAccountUpdate.json" + }, + "StorageAccountUpdateAllowedCopyScopeToAAD": { + "$ref": "./examples/StorageAccountUpdateAllowedCopyScopeToAAD.json" + }, + "StorageAccountUpdateDisablePublicNetworkAccess": { + "$ref": "./examples/StorageAccountUpdateDisablePublicNetworkAccess.json" + }, + "StorageAccountUpdateEnableIpv6Features": { + "$ref": "./examples/StorageAccountLeverageIPv6Ability.json" + }, + "StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK": { + "$ref": "./examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json" + }, + "StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId": { + "$ref": "./examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json" + }, + "StorageAccountUpdateWithImmutabilityPolicy": { + "$ref": "./examples/StorageAccountUpdateWithImmutabilityPolicy.json" + }, + "StorageAccountUpdate_placement": { + "$ref": "./examples/StorageAccountUpdate_placement.json" + }, + "StorageAccountUpdate_zones": { + "$ref": "./examples/StorageAccountUpdate_zones.json" + } + } + }, + "delete": { + "operationId": "StorageAccounts_Delete", + "tags": [ + "StorageAccounts" + ], + "description": "Deletes a storage account in Microsoft Azure.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountDelete": { + "$ref": "./examples/StorageAccountDelete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/aborthnsonmigration": { + "post": { + "operationId": "StorageAccounts_AbortHierarchicalNamespaceMigration", + "tags": [ + "StorageAccounts" + ], + "description": "Abort live Migration of storage account to enable Hns", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully." + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountAbortHierarchicalNamespaceMigration": { + "$ref": "./examples/StorageAccountAbortHierarchicalNamespaceMigration.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/accountMigrations/{migrationName}": { + "get": { + "operationId": "StorageAccounts_GetCustomerInitiatedMigration", + "tags": [ + "StorageAccountMigrations" + ], + "description": "Gets the status of the ongoing migration for the specified storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "migrationName", + "in": "path", + "description": "The name of the Storage Account Migration. It should always be 'default'", + "required": true, + "type": "string", + "enum": [ + "default" + ], + "x-ms-enum": { + "name": "MigrationName", + "modelAsString": true, + "values": [ + { + "name": "default", + "value": "default" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageAccountMigration" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountGetMigrationFailed": { + "$ref": "./examples/StorageAccountGetMigrationFailed.json" + }, + "StorageAccountGetMigrationInProgress": { + "$ref": "./examples/StorageAccountGetMigrationInProgress.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices": { + "get": { + "operationId": "BlobServices_List", + "tags": [ + "BlobServices" + ], + "description": "List blob services of storage account. It returns a collection of one object named default.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/BlobServiceItems" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ListBlobServices": { + "$ref": "./examples/BlobServicesList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default": { + "get": { + "operationId": "BlobServices_GetServiceProperties", + "tags": [ + "BlobServices" + ], + "description": "Gets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/BlobServiceProperties" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetBlobServices": { + "$ref": "./examples/BlobServicesGet.json" + } + } + }, + "put": { + "operationId": "BlobServices_SetServiceProperties", + "tags": [ + "BlobServices" + ], + "description": "Sets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobServiceProperties" + } + } + ], + "responses": { + "200": { + "description": "Resource 'BlobServiceProperties' update operation succeeded", + "schema": { + "$ref": "#/definitions/BlobServiceProperties" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "BlobServicesPutAllowPermanentDelete": { + "$ref": "./examples/BlobServicesPutAllowPermanentDelete.json" + }, + "BlobServicesPutLastAccessTimeBasedTracking": { + "$ref": "./examples/BlobServicesPutLastAccessTimeBasedTracking.json" + }, + "PutBlobServices": { + "$ref": "./examples/BlobServicesPut.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers": { + "get": { + "operationId": "BlobContainers_List", + "tags": [ + "BlobServices" + ], + "description": "Lists all containers and does not support a prefix like data plane. Also SRP today does not return continuation token.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "$maxpagesize", + "in": "query", + "description": "Optional. Specified maximum number of containers that can be included in the list.", + "required": false, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "Optional. When specified, only container names starting with the filter will be listed.", + "required": false, + "type": "string" + }, + { + "name": "$include", + "in": "query", + "description": "Optional, used to include the properties for soft deleted blob containers.", + "required": false, + "type": "string", + "enum": [ + "deleted" + ], + "x-ms-enum": { + "name": "ListContainersInclude", + "modelAsString": true, + "values": [ + { + "name": "deleted", + "value": "deleted" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ListContainerItems" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ListContainers": { + "$ref": "./examples/BlobContainersList.json" + }, + "ListDeletedContainers": { + "$ref": "./examples/DeletedBlobContainersList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}": { + "get": { + "operationId": "BlobContainers_Get", + "tags": [ + "BlobContainers" + ], + "description": "Gets properties of a specified container.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/BlobContainer" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetBlobContainersGetWithAllowProtectedAppendWritesAll": { + "$ref": "./examples/BlobContainersGetWithAllowProtectedAppendWritesAll.json" + }, + "GetContainers": { + "$ref": "./examples/BlobContainersGet.json" + } + } + }, + "put": { + "operationId": "BlobContainers_Create", + "tags": [ + "BlobContainers" + ], + "description": "Creates a new container under the specified account as described by request body. The container resource includes metadata and properties for that container. It does not include a list of the blobs contained by the container.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "blobContainer", + "in": "body", + "description": "Properties of the blob container to create.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobContainer" + } + } + ], + "responses": { + "200": { + "description": "Resource 'BlobContainer' update operation succeeded", + "schema": { + "$ref": "#/definitions/BlobContainer" + } + }, + "201": { + "description": "Resource 'BlobContainer' create operation succeeded", + "schema": { + "$ref": "#/definitions/BlobContainer" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "PutContainerWithDefaultEncryptionScope": { + "$ref": "./examples/BlobContainersPutDefaultEncryptionScope.json" + }, + "PutContainerWithObjectLevelWorm": { + "$ref": "./examples/BlobContainersPutObjectLevelWorm.json" + }, + "PutContainers": { + "$ref": "./examples/BlobContainersPut.json" + } + } + }, + "patch": { + "operationId": "BlobContainers_Update", + "tags": [ + "BlobContainers" + ], + "description": "Updates container properties as specified in request body. Properties not mentioned in the request will be unchanged. Update fails if the specified container doesn't already exist.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "blobContainer", + "in": "body", + "description": "Properties to update for the blob container.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobContainer" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/BlobContainer" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "UpdateContainers": { + "$ref": "./examples/BlobContainersPatch.json" + } + } + }, + "delete": { + "operationId": "BlobContainers_Delete", + "tags": [ + "BlobContainers" + ], + "description": "Deletes specified container under its account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "DeleteContainers": { + "$ref": "./examples/BlobContainersDelete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/clearLegalHold": { + "post": { + "operationId": "BlobContainers_ClearLegalHold", + "tags": [ + "BlobContainers" + ], + "description": "Clears legal hold tags. Clearing the same or non-existent tag results in an idempotent operation. ClearLegalHold clears out only the specified tags in the request.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "LegalHold", + "in": "body", + "description": "The LegalHold property that will be clear from a blob container.", + "required": true, + "schema": { + "$ref": "#/definitions/LegalHold" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/LegalHold" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ClearLegalHoldContainers": { + "$ref": "./examples/BlobContainersClearLegalHold.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/default": { + "get": { + "operationId": "BlobContainers_GetImmutabilityPolicy", + "tags": [ + "ImmutabilityPolicies" + ], + "description": "Gets the existing immutability policy along with the corresponding ETag in response headers and body.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "If-Match", + "in": "header", + "description": "The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ImmutabilityPolicy" + }, + "headers": { + "ETag": { + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetImmutabilityPolicy": { + "$ref": "./examples/BlobContainersGetImmutabilityPolicy.json" + } + } + }, + "put": { + "operationId": "BlobContainers_CreateOrUpdateImmutabilityPolicy", + "tags": [ + "ImmutabilityPolicies" + ], + "description": "Creates or updates an unlocked immutability policy. ETag in If-Match is honored if given but not required for this operation.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "If-Match", + "in": "header", + "description": "The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service.", + "required": false, + "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "The ImmutabilityPolicy Properties that will be created or updated to a blob container.", + "required": false, + "schema": { + "$ref": "#/definitions/ImmutabilityPolicy" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ImmutabilityPolicy" + }, + "headers": { + "ETag": { + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "CreateOrUpdateImmutabilityPolicy": { + "$ref": "./examples/BlobContainersPutImmutabilityPolicy.json" + }, + "CreateOrUpdateImmutabilityPolicyWithAllowProtectedAppendWritesAll": { + "$ref": "./examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json" + } + } + }, + "delete": { + "operationId": "BlobContainers_DeleteImmutabilityPolicy", + "tags": [ + "ImmutabilityPolicies" + ], + "description": "Aborts an unlocked immutability policy. The response of delete has immutabilityPeriodSinceCreationInDays set to 0. ETag in If-Match is required for this operation. Deleting a locked immutability policy is not allowed, the only way is to delete the container after deleting all expired blobs inside the policy locked container.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "If-Match", + "in": "header", + "description": "The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ImmutabilityPolicy" + }, + "headers": { + "ETag": { + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "DeleteImmutabilityPolicy": { + "$ref": "./examples/BlobContainersDeleteImmutabilityPolicy.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/default/extend": { + "post": { + "operationId": "BlobContainers_ExtendImmutabilityPolicy", + "tags": [ + "ImmutabilityPolicies" + ], + "description": "Extends the immutabilityPeriodSinceCreationInDays of a locked immutabilityPolicy. The only action allowed on a Locked policy will be this action. ETag in If-Match is required for this operation.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "If-Match", + "in": "header", + "description": "The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service.", + "required": true, + "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "The content of the action request", + "required": false, + "schema": { + "$ref": "#/definitions/ImmutabilityPolicy" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ImmutabilityPolicy" + }, + "headers": { + "ETag": { + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ExtendImmutabilityPolicy": { + "$ref": "./examples/BlobContainersExtendImmutabilityPolicy.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/default/lock": { + "post": { + "operationId": "BlobContainers_LockImmutabilityPolicy", + "tags": [ + "ImmutabilityPolicies" + ], + "description": "Sets the ImmutabilityPolicy to Locked state. The only action allowed on a Locked policy is ExtendImmutabilityPolicy action. ETag in If-Match is required for this operation.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "If-Match", + "in": "header", + "description": "The entity state (ETag) version of the immutability policy to update must be returned to the server for all update operations. The ETag value must include the leading and trailing double quotes as returned by the service.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ImmutabilityPolicy" + }, + "headers": { + "ETag": { + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "LockImmutabilityPolicy": { + "$ref": "./examples/BlobContainersLockImmutabilityPolicy.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/lease": { + "post": { + "operationId": "BlobContainers_Lease", + "tags": [ + "BlobContainers" + ], + "description": "The Lease Container operation establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "parameters", + "in": "body", + "description": "The content of the action request", + "required": false, + "schema": { + "$ref": "#/definitions/LeaseContainerRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/LeaseContainerResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Acquire a lease on a container": { + "$ref": "./examples/BlobContainersLease_Acquire.json" + }, + "Break a lease on a container": { + "$ref": "./examples/BlobContainersLease_Break.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/migrate": { + "post": { + "operationId": "BlobContainers_ObjectLevelWorm", + "tags": [ + "BlobContainers" + ], + "description": "This operation migrates a blob container from container level WORM to object level immutability enabled container. Prerequisites require a container level immutability policy either in locked or unlocked state, Account level versioning must be enabled and there should be no Legal hold on the container.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully." + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "VersionLevelWormContainerMigration": { + "$ref": "./examples/ObjectLevelWormContainerMigration.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/setLegalHold": { + "post": { + "operationId": "BlobContainers_SetLegalHold", + "tags": [ + "BlobContainers" + ], + "description": "Sets legal hold tags. Setting the same tag results in an idempotent operation. SetLegalHold follows an append pattern and does not clear out the existing tags that are not specified in the request.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "LegalHold", + "in": "body", + "description": "The LegalHold property that will be set to a blob container.", + "required": true, + "schema": { + "$ref": "#/definitions/LegalHold" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/LegalHold" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SetLegalHoldContainers": { + "$ref": "./examples/BlobContainersSetLegalHold.json" + }, + "SetLegalHoldContainersWithAllowProtectedAppendWritesAll": { + "$ref": "./examples/BlobContainersSetLegalHoldAllowProtectedAppendWritesAll.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/encryptionScopes": { + "get": { + "operationId": "EncryptionScopes_List", + "tags": [ + "EncryptionScopes" + ], + "description": "Lists all the encryption scopes available under the specified storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "$maxpagesize", + "in": "query", + "description": "Optional, specifies the maximum number of encryption scopes that will be included in the list response.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 5000 + }, + { + "name": "$filter", + "in": "query", + "description": "Optional. When specified, only encryption scope names starting with the filter will be listed.", + "required": false, + "type": "string" + }, + { + "name": "$include", + "in": "query", + "description": "Optional, when specified, will list encryption scopes with the specific state. Defaults to All", + "required": false, + "type": "string", + "enum": [ + "All", + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "ListEncryptionScopesInclude", + "modelAsString": true, + "values": [ + { + "name": "All", + "value": "All" + }, + { + "name": "Enabled", + "value": "Enabled" + }, + { + "name": "Disabled", + "value": "Disabled" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EncryptionScopeListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountEncryptionScopeList": { + "$ref": "./examples/StorageAccountEncryptionScopeList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/encryptionScopes/{encryptionScopeName}": { + "get": { + "operationId": "EncryptionScopes_Get", + "tags": [ + "EncryptionScopes" + ], + "description": "Returns the properties for the specified encryption scope.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "encryptionScopeName", + "in": "path", + "description": "The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EncryptionScope" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountGetEncryptionScope": { + "$ref": "./examples/StorageAccountGetEncryptionScope.json" + } + } + }, + "put": { + "operationId": "EncryptionScopes_Put", + "tags": [ + "EncryptionScopes" + ], + "description": "Synchronously creates or updates an encryption scope under the specified storage account. If an encryption scope is already created and a subsequent request is issued with different properties, the encryption scope properties will be updated per the specified request.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "encryptionScopeName", + "in": "path", + "description": "The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "encryptionScope", + "in": "body", + "description": "Encryption scope properties to be used for the create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/EncryptionScope" + } + } + ], + "responses": { + "200": { + "description": "Resource 'EncryptionScope' update operation succeeded", + "schema": { + "$ref": "#/definitions/EncryptionScope" + } + }, + "201": { + "description": "Resource 'EncryptionScope' create operation succeeded", + "schema": { + "$ref": "#/definitions/EncryptionScope" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountPutEncryptionScope": { + "$ref": "./examples/StorageAccountPutEncryptionScope.json" + }, + "StorageAccountPutEncryptionScopeWithInfrastructureEncryption": { + "$ref": "./examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json" + } + } + }, + "patch": { + "operationId": "EncryptionScopes_Patch", + "tags": [ + "EncryptionScopes" + ], + "description": "Update encryption scope properties as specified in the request body. Update fails if the specified encryption scope does not already exist.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "encryptionScopeName", + "in": "path", + "description": "The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "encryptionScope", + "in": "body", + "description": "Encryption scope properties to be used for the update.", + "required": true, + "schema": { + "$ref": "#/definitions/EncryptionScope" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EncryptionScope" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountPatchEncryptionScope": { + "$ref": "./examples/StorageAccountPatchEncryptionScope.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/failover": { + "post": { + "operationId": "StorageAccounts_Failover", + "tags": [ + "StorageAccounts" + ], + "description": "A failover request can be triggered for a storage account in the event a primary endpoint becomes unavailable for any reason. The failover occurs from the storage account's primary cluster to the secondary cluster for RA-GRS accounts. The secondary cluster will become primary after failover and the account is converted to LRS. In the case of a Planned Failover, the primary and secondary clusters are swapped after failover and the account remains geo-replicated. Failover should continue to be used in the event of availability issues as Planned failover is only available while the primary and secondary endpoints are available. The primary use case of a Planned Failover is disaster recovery testing drills. This type of failover is invoked by setting FailoverType parameter to 'Planned'. Learn more about the failover options here- https://learn.microsoft.com/azure/storage/common/storage-disaster-recovery-guidance", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "failoverType", + "in": "query", + "description": "The parameter is set to 'Planned' to indicate whether a Planned failover is requested.", + "required": false, + "type": "string", + "enum": [ + "Planned" + ], + "x-ms-enum": { + "modelAsString": false + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully." + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountFailover": { + "$ref": "./examples/StorageAccountFailover.json" + }, + "StorageAccountFailoverPlanned": { + "$ref": "./examples/StorageAccountFailoverPlanned.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices": { + "get": { + "operationId": "FileServices_List", + "tags": [ + "FileServices" + ], + "description": "List all file services in storage accounts", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/FileServiceItems" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "ListFileServices": { + "$ref": "./examples/FileServicesList.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default": { + "get": { + "operationId": "FileServices_GetServiceProperties", + "tags": [ + "FileServices" + ], + "description": "Gets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/FileServiceProperties" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "GetFileServices": { + "$ref": "./examples/FileServicesGet.json" + } + } + }, + "put": { + "operationId": "FileServices_SetServiceProperties", + "tags": [ + "FileServices" + ], + "description": "Sets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules.", + "required": true, + "schema": { + "$ref": "#/definitions/FileServiceProperties" + } + } + ], + "responses": { + "200": { + "description": "Resource 'FileServiceProperties' update operation succeeded", + "schema": { + "$ref": "#/definitions/FileServiceProperties" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "PutFileServices": { + "$ref": "./examples/FileServicesPut.json" + }, + "PutFileServices_EnableSMBMultichannel": { + "$ref": "./examples/FileServicesPut_EnableSMBMultichannel.json" + }, + "PutFileServices_EnableSecureSmbFeatures": { + "$ref": "./examples/FileServicesPut_EnableSecureSmbFeatures.json" + }, + "PutFileServices_EncryptionInTransitRequired": { + "$ref": "./examples/FileServicesPut_EncryptionInTransitRequired.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares": { + "get": { + "operationId": "FileShares_List", + "tags": [ + "FileServices" + ], + "description": "Lists all shares.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "$maxpagesize", + "in": "query", + "description": "Optional. Specified maximum number of shares that can be included in the list.", + "required": false, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "Optional. When specified, only share names starting with the filter will be listed.", + "required": false, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Optional, used to expand the properties within share's properties. Valid values are: deleted, snapshots. Should be passed as a string with delimiter ','", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/FileShareItems" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "ListDeletedShares": { + "$ref": "./examples/DeletedFileSharesList.json" + }, + "ListShareSnapshots": { + "$ref": "./examples/FileShareSnapshotsList.json" + }, + "ListShares": { + "$ref": "./examples/FileSharesList.json" + }, + "ListSharesPaidBursting": { + "$ref": "./examples/FileSharesList_PaidBursting.json" + }, + "ListSharesProvisionedV2": { + "$ref": "./examples/FileSharesList_ProvisionedV2.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares/{shareName}": { + "get": { + "operationId": "FileShares_Get", + "tags": [ + "FileShares" + ], + "description": "Gets properties of a specified share.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "shareName", + "in": "path", + "description": "The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "$expand", + "in": "query", + "description": "Optional, used to expand the properties within share's properties. Valid values are: stats. Should be passed as a string with delimiter ','.", + "required": false, + "type": "string" + }, + { + "name": "x-ms-snapshot", + "in": "header", + "description": "Optional, used to retrieve properties of a snapshot.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/FileShare" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "GetSharePaidBursting": { + "$ref": "./examples/FileSharesGet_PaidBursting.json" + }, + "GetShareProvisionedV2": { + "$ref": "./examples/FileSharesGet_ProvisionedV2.json" + }, + "GetShareStats": { + "$ref": "./examples/FileSharesGet_Stats.json" + }, + "GetShares": { + "$ref": "./examples/FileSharesGet.json" + } + } + }, + "put": { + "operationId": "FileShares_Create", + "tags": [ + "FileShares" + ], + "description": "Creates a new share under the specified account as described by request body. The share resource includes metadata and properties for that share. It does not include a list of the files contained by the share.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "shareName", + "in": "path", + "description": "The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "$expand", + "in": "query", + "description": "Optional, used to expand the properties within share's properties. Valid values are: snapshots. Should be passed as a string with delimiter ','", + "required": false, + "type": "string" + }, + { + "name": "fileShare", + "in": "body", + "description": "Properties of the file share to create.", + "required": true, + "schema": { + "$ref": "#/definitions/FileShare" + } + } + ], + "responses": { + "200": { + "description": "Resource 'FileShare' update operation succeeded", + "schema": { + "$ref": "#/definitions/FileShare" + } + }, + "201": { + "description": "Resource 'FileShare' create operation succeeded", + "schema": { + "$ref": "#/definitions/FileShare" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Create NFS Shares": { + "$ref": "./examples/FileSharesPut_NFS.json" + }, + "PutShares": { + "$ref": "./examples/FileSharesPut.json" + }, + "PutShares with Access Tier": { + "$ref": "./examples/FileSharesPut_AccessTier.json" + }, + "PutShares with Paid Bursting": { + "$ref": "./examples/FileSharesPut_PaidBursting.json" + }, + "PutSharesProvisionedV2": { + "$ref": "./examples/FileSharesPut_ProvisionedV2.json" + } + } + }, + "patch": { + "operationId": "FileShares_Update", + "tags": [ + "FileShares" + ], + "description": "Updates share properties as specified in request body. Properties not mentioned in the request will not be changed. Update fails if the specified share does not already exist.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "shareName", + "in": "path", + "description": "The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "fileShare", + "in": "body", + "description": "Properties to update for the file share.", + "required": true, + "schema": { + "$ref": "#/definitions/FileShare" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/FileShare" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "UpdateShareAcls": { + "$ref": "./examples/FileShareAclsPatch.json" + }, + "UpdateSharePaidBursting": { + "$ref": "./examples/FileSharesPatch_PaidBursting.json" + }, + "UpdateShareProvisionedV2": { + "$ref": "./examples/FileSharesPatch_ProvisionedV2.json" + }, + "UpdateShares": { + "$ref": "./examples/FileSharesPatch.json" + } + } + }, + "delete": { + "operationId": "FileShares_Delete", + "tags": [ + "FileShares" + ], + "description": "Deletes specified share under its account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "shareName", + "in": "path", + "description": "The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "x-ms-snapshot", + "in": "header", + "description": "Optional, used to delete a snapshot.", + "required": false, + "type": "string" + }, + { + "name": "$include", + "in": "query", + "description": "Optional. Valid values are: snapshots, leased-snapshots, none. The default value is snapshots. For 'snapshots', the file share is deleted including all of its file share snapshots. If the file share contains leased-snapshots, the deletion fails. For 'leased-snapshots', the file share is deleted included all of its file share snapshots (leased/unleased). For 'none', the file share is deleted if it has no share snapshots. If the file share contains any snapshots (leased or unleased), the deletion fails.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "DeleteShares": { + "$ref": "./examples/FileSharesDelete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares/{shareName}/lease": { + "post": { + "operationId": "FileShares_Lease", + "tags": [ + "FileShares" + ], + "description": "The Lease Share operation establishes and manages a lock on a share for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "shareName", + "in": "path", + "description": "The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "x-ms-snapshot", + "in": "header", + "description": "Optional. Specify the snapshot time to lease a snapshot.", + "required": false, + "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "The content of the action request", + "required": false, + "schema": { + "$ref": "#/definitions/LeaseShareRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/LeaseShareResponse" + }, + "headers": { + "ETag": { + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Acquire a lease on a share": { + "$ref": "./examples/FileSharesLease_Acquire.json" + }, + "Break a lease on a share": { + "$ref": "./examples/FileSharesLease_Break.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/shares/{shareName}/restore": { + "post": { + "operationId": "FileShares_Restore", + "tags": [ + "FileShares" + ], + "description": "Restore a file share within a valid retention days if share soft delete is enabled", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "shareName", + "in": "path", + "description": "The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + { + "name": "deletedShare", + "in": "body", + "description": "", + "required": true, + "schema": { + "$ref": "#/definitions/DeletedShare" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "RestoreShares": { + "$ref": "./examples/FileSharesRestore.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/usages": { + "get": { + "operationId": "FileServices_ListServiceUsages", + "tags": [ + "FileServiceUsageOperationGroup" + ], + "description": "Gets the usages of file service in storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "$maxpagesize", + "in": "query", + "description": "Optional, specifies the maximum number of file service usages to be included in the list response.", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/FileServiceUsages" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "ListFileServiceUsages": { + "$ref": "./examples/FileServicesListUsages.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/fileServices/default/usages/default": { + "get": { + "operationId": "FileServices_GetServiceUsage", + "tags": [ + "FileServiceUsageOperationGroup" + ], + "description": "Gets the usage of file service in storage account including account limits, file share limits and constants used in recommendations and bursting formula.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/FileServiceUsage" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "GetFileServiceUsage": { + "$ref": "./examples/FileServicesGetUsage.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/hnsonmigration": { + "post": { + "operationId": "StorageAccounts_HierarchicalNamespaceMigration", + "tags": [ + "StorageAccounts" + ], + "description": "Live Migration of storage account to enable Hns", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "requestType", + "in": "query", + "description": "Required. Hierarchical namespace migration type can either be a hierarchical namespace validation request 'HnsOnValidationRequest' or a hydration request 'HnsOnHydrationRequest'. The validation request will validate the migration whereas the hydration request will migrate the account.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully." + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountHierarchicalNamespaceMigration": { + "$ref": "./examples/StorageAccountHierarchicalNamespaceMigration.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/inventoryPolicies": { + "get": { + "operationId": "BlobInventoryPolicies_List", + "tags": [ + "BlobInventoryPolicies" + ], + "description": "Gets the blob inventory policy associated with the specified storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ListBlobInventoryPolicy" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountGetBlobInventoryPolicy": { + "$ref": "./examples/StorageAccountListBlobInventoryPolicy.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/inventoryPolicies/{blobInventoryPolicyName}": { + "get": { + "operationId": "BlobInventoryPolicies_Get", + "tags": [ + "BlobInventoryPolicies" + ], + "description": "Gets the blob inventory policy associated with the specified storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "blobInventoryPolicyName", + "in": "path", + "description": "The name of the storage account blob inventory policy. It should always be 'default'", + "required": true, + "type": "string", + "enum": [ + "default" + ], + "x-ms-enum": { + "name": "BlobInventoryPolicyName", + "modelAsString": true, + "values": [ + { + "name": "default", + "value": "default" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/BlobInventoryPolicy" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "StorageAccountGetBlobInventoryPolicy": { + "$ref": "./examples/StorageAccountGetBlobInventoryPolicy.json" + } + } + }, + "put": { + "operationId": "BlobInventoryPolicies_CreateOrUpdate", + "tags": [ + "BlobInventoryPolicies" + ], + "description": "Sets the blob inventory policy to the specified storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "blobInventoryPolicyName", + "in": "path", + "description": "The name of the storage account blob inventory policy. It should always be 'default'", + "required": true, + "type": "string", + "enum": [ + "default" + ], + "x-ms-enum": { + "name": "BlobInventoryPolicyName", + "modelAsString": true, + "values": [ + { + "name": "default", + "value": "default" + } + ] + } + }, + { + "name": "properties", + "in": "body", + "description": "The blob inventory policy set to a storage account.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobInventoryPolicy" + } + } + ], + "responses": { + "200": { + "description": "Resource 'BlobInventoryPolicy' update operation succeeded", + "schema": { + "$ref": "#/definitions/BlobInventoryPolicy" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "StorageAccountSetBlobInventoryPolicy": { + "$ref": "./examples/StorageAccountSetBlobInventoryPolicy.json" + }, + "StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount": { + "$ref": "./examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json" + }, + "StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount": { + "$ref": "./examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json" + } + } + }, + "delete": { + "operationId": "BlobInventoryPolicies_Delete", + "tags": [ + "BlobInventoryPolicies" + ], + "description": "Deletes the blob inventory policy associated with the specified storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "blobInventoryPolicyName", + "in": "path", + "description": "The name of the storage account blob inventory policy. It should always be 'default'", + "required": true, + "type": "string", + "enum": [ + "default" + ], + "x-ms-enum": { + "name": "BlobInventoryPolicyName", + "modelAsString": true, + "values": [ + { + "name": "default", + "value": "default" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "StorageAccountDeleteBlobInventoryPolicy": { + "$ref": "./examples/StorageAccountDeleteBlobInventoryPolicy.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/listAccountSas": { + "post": { + "operationId": "StorageAccounts_ListAccountSAS", + "tags": [ + "StorageAccounts" + ], + "description": "List SAS credentials of a storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The parameters to provide to list SAS credentials for the storage account.", + "required": true, + "schema": { + "$ref": "#/definitions/AccountSasParameters" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ListAccountSasResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountListAccountSAS": { + "$ref": "./examples/StorageAccountListAccountSAS.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/listKeys": { + "post": { + "operationId": "StorageAccounts_ListKeys", + "tags": [ + "StorageAccounts" + ], + "description": "Lists the access keys or Kerberos keys (if active directory enabled) for the specified storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "$expand", + "in": "query", + "description": "Specifies type of the key to be listed. Possible value is kerb.", + "required": false, + "type": "string", + "enum": [ + "kerb" + ], + "x-ms-enum": { + "modelAsString": false + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageAccountListKeysResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountListKeys": { + "$ref": "./examples/StorageAccountListKeys.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/listServiceSas": { + "post": { + "operationId": "StorageAccounts_ListServiceSAS", + "tags": [ + "StorageAccounts" + ], + "description": "List service SAS credentials of a specific resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The parameters to provide to list service SAS credentials.", + "required": true, + "schema": { + "$ref": "#/definitions/ServiceSasParameters" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ListServiceSasResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountListServiceSAS": { + "$ref": "./examples/StorageAccountListServiceSAS.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/localUsers": { + "get": { + "operationId": "LocalUsers_List", + "tags": [ + "LocalUserOperationGroup" + ], + "description": "List the local users associated with the storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "$maxpagesize", + "in": "query", + "description": "Optional, specifies the maximum number of local users that will be included in the list response.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 5000 + }, + { + "name": "$filter", + "in": "query", + "description": "Optional. When specified, only local user names starting with the filter will be listed.", + "required": false, + "type": "string" + }, + { + "name": "$include", + "in": "query", + "description": "Optional, when specified, will list local users enabled for the specific protocol. Lists all users by default.", + "required": false, + "type": "string", + "enum": [ + "nfsv3" + ], + "x-ms-enum": { + "name": "ListLocalUserIncludeParam", + "modelAsString": true, + "values": [ + { + "name": "nfsv3", + "value": "nfsv3" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/LocalUsers" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ListLocalUsers": { + "$ref": "./examples/LocalUsersList.json" + }, + "ListNFSv3EnabledLocalUsers": { + "$ref": "./examples/LocalUsersListNFSv3Enabled.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/localUsers/{username}": { + "get": { + "operationId": "LocalUsers_Get", + "tags": [ + "LocalUserOperationGroup" + ], + "description": "Get the local user of the storage account by username.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "username", + "in": "path", + "description": "The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 64 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/LocalUser" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetLocalUser": { + "$ref": "./examples/LocalUserGet.json" + } + } + }, + "put": { + "operationId": "LocalUsers_CreateOrUpdate", + "tags": [ + "LocalUserOperationGroup" + ], + "description": "Create or update the properties of a local user associated with the storage account. Properties for NFSv3 enablement and extended groups cannot be set with other properties.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "username", + "in": "path", + "description": "The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 64 + }, + { + "name": "properties", + "in": "body", + "description": "The local user associated with a storage account.", + "required": true, + "schema": { + "$ref": "#/definitions/LocalUser" + } + } + ], + "responses": { + "200": { + "description": "Resource 'LocalUser' update operation succeeded", + "schema": { + "$ref": "#/definitions/LocalUser" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "CreateLocalUser": { + "$ref": "./examples/LocalUserCreate.json" + }, + "CreateNFSv3EnabledLocalUser": { + "$ref": "./examples/LocalUserCreateNFSv3Enabled.json" + }, + "UpdateLocalUser": { + "$ref": "./examples/LocalUserUpdate.json" + } + } + }, + "delete": { + "operationId": "LocalUsers_Delete", + "tags": [ + "LocalUserOperationGroup" + ], + "description": "Deletes the local user associated with the specified storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "username", + "in": "path", + "description": "The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 64 + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "DeleteLocalUser": { + "$ref": "./examples/LocalUserDelete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/localUsers/{username}/listKeys": { + "post": { + "operationId": "LocalUsers_ListKeys", + "tags": [ + "LocalUserOperationGroup" + ], + "description": "List SSH authorized keys and shared key of the local user.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "username", + "in": "path", + "description": "The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 64 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/LocalUserKeys" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ListLocalUserKeys": { + "$ref": "./examples/LocalUserListKeys.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/localUsers/{username}/regeneratePassword": { + "post": { + "operationId": "LocalUsers_RegeneratePassword", + "tags": [ + "LocalUserOperationGroup" + ], + "description": "Regenerate the local user SSH password.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "username", + "in": "path", + "description": "The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 64 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/LocalUserRegeneratePasswordResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "RegenerateLocalUserPassword": { + "$ref": "./examples/LocalUserRegeneratePassword.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/managementPolicies/{managementPolicyName}": { + "get": { + "operationId": "ManagementPolicies_Get", + "tags": [ + "ManagementPolicies" + ], + "description": "Gets the managementpolicy associated with the specified storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "managementPolicyName", + "in": "path", + "description": "The name of the Storage Account Management Policy. It should always be 'default'", + "required": true, + "type": "string", + "enum": [ + "default" + ], + "x-ms-enum": { + "name": "ManagementPolicyName", + "modelAsString": true, + "values": [ + { + "name": "default", + "value": "default" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ManagementPolicy" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountGetManagementPolicies": { + "$ref": "./examples/StorageAccountGetManagementPolicy.json" + } + } + }, + "put": { + "operationId": "ManagementPolicies_CreateOrUpdate", + "tags": [ + "ManagementPolicies" + ], + "description": "Sets the managementpolicy to the specified storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "managementPolicyName", + "in": "path", + "description": "The name of the Storage Account Management Policy. It should always be 'default'", + "required": true, + "type": "string", + "enum": [ + "default" + ], + "x-ms-enum": { + "name": "ManagementPolicyName", + "modelAsString": true, + "values": [ + { + "name": "default", + "value": "default" + } + ] + } + }, + { + "name": "properties", + "in": "body", + "description": "The ManagementPolicy set to a storage account.", + "required": true, + "schema": { + "$ref": "#/definitions/ManagementPolicy" + } + } + ], + "responses": { + "200": { + "description": "Resource 'ManagementPolicy' update operation succeeded", + "schema": { + "$ref": "#/definitions/ManagementPolicy" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountSetManagementPolicies": { + "$ref": "./examples/StorageAccountSetManagementPolicy.json" + }, + "StorageAccountSetManagementPolicyColdTierActions": { + "$ref": "./examples/StorageAccountSetManagementPolicyColdTierActions.json" + }, + "StorageAccountSetManagementPolicyForBlockAndAppendBlobs": { + "$ref": "./examples/StorageAccountSetManagementPolicyForBlockAndAppendBlobs.json" + }, + "StorageAccountSetManagementPolicyHotTierActions": { + "$ref": "./examples/StorageAccountSetManagementPolicyHotTierActions.json" + }, + "StorageAccountSetManagementPolicyWithSnapshotAndVersion": { + "$ref": "./examples/StorageAccountSetManagementPolicyWithSnapshotAndVersion.json" + }, + "StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions": { + "$ref": "./examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json" + }, + "StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions": { + "$ref": "./examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json" + }, + "StorageAccountSetManagementPolicy_LastTierChangeTimeActions": { + "$ref": "./examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json" + } + } + }, + "delete": { + "operationId": "ManagementPolicies_Delete", + "tags": [ + "ManagementPolicies" + ], + "description": "Deletes the managementpolicy associated with the specified storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "managementPolicyName", + "in": "path", + "description": "The name of the Storage Account Management Policy. It should always be 'default'", + "required": true, + "type": "string", + "enum": [ + "default" + ], + "x-ms-enum": { + "name": "ManagementPolicyName", + "modelAsString": true, + "values": [ + { + "name": "default", + "value": "default" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountDeleteManagementPolicies": { + "$ref": "./examples/StorageAccountDeleteManagementPolicy.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/networkSecurityPerimeterConfigurations": { + "get": { + "operationId": "NetworkSecurityPerimeterConfigurations_List", + "tags": [ + "NetworkSecurityPerimeterConfigurations" + ], + "description": "Gets list of effective NetworkSecurityPerimeterConfiguration for storage account", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfigurationList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "NetworkSecurityPerimeterConfigurationList": { + "$ref": "./examples/NetworkSecurityPerimeterConfigurationList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}": { + "get": { + "operationId": "NetworkSecurityPerimeterConfigurations_Get", + "tags": [ + "NetworkSecurityPerimeterConfigurations" + ], + "description": "Gets effective NetworkSecurityPerimeterConfiguration for association", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "networkSecurityPerimeterConfigurationName", + "in": "path", + "description": "The name for Network Security Perimeter configuration", + "required": true, + "type": "string", + "pattern": "^.*$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfiguration" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "NetworkSecurityPerimeterConfigurationGet": { + "$ref": "./examples/NetworkSecurityPerimeterConfigurationGet.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}/reconcile": { + "post": { + "operationId": "NetworkSecurityPerimeterConfigurations_Reconcile", + "tags": [ + "NetworkSecurityPerimeterConfigurations" + ], + "description": "Refreshes any information about the association.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "networkSecurityPerimeterConfigurationName", + "in": "path", + "description": "The name for Network Security Perimeter configuration", + "required": true, + "type": "string", + "pattern": "^.*$" + } + ], + "responses": { + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "NetworkSecurityPerimeterConfigurationReconcile": { + "$ref": "./examples/NetworkSecurityPerimeterConfigurationReconcile.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/objectReplicationPolicies": { + "get": { + "operationId": "ObjectReplicationPolicies_List", + "tags": [ + "ObjectReplicationPolicyOperationGroup" + ], + "description": "List the object replication policies associated with the storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ObjectReplicationPolicies" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountListObjectReplicationPolicies": { + "$ref": "./examples/StorageAccountListObjectReplicationPolicies.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/objectReplicationPolicies/{objectReplicationPolicyId}": { + "get": { + "operationId": "ObjectReplicationPolicies_Get", + "tags": [ + "ObjectReplicationPolicyOperationGroup" + ], + "description": "Get the object replication policy of the storage account by policy ID.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "objectReplicationPolicyId", + "in": "path", + "description": "For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file.", + "required": true, + "type": "string", + "minLength": 1 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ObjectReplicationPolicy" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountGetObjectReplicationPolicies": { + "$ref": "./examples/StorageAccountGetObjectReplicationPolicy.json" + } + } + }, + "put": { + "operationId": "ObjectReplicationPolicies_CreateOrUpdate", + "tags": [ + "ObjectReplicationPolicyOperationGroup" + ], + "description": "Create or update the object replication policy of the storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "objectReplicationPolicyId", + "in": "path", + "description": "For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file.", + "required": true, + "type": "string", + "minLength": 1 + }, + { + "name": "properties", + "in": "body", + "description": "The object replication policy set to a storage account. A unique policy ID will be created if absent.", + "required": true, + "schema": { + "$ref": "#/definitions/ObjectReplicationPolicy" + } + } + ], + "responses": { + "200": { + "description": "Resource 'ObjectReplicationPolicy' update operation succeeded", + "schema": { + "$ref": "#/definitions/ObjectReplicationPolicy" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountCreateObjectReplicationPolicyOnDestination": { + "$ref": "./examples/StorageAccountCreateObjectReplicationPolicyOnDestination.json" + }, + "StorageAccountCreateObjectReplicationPolicyOnSource": { + "$ref": "./examples/StorageAccountCreateObjectReplicationPolicyOnSource.json" + }, + "StorageAccountUpdateObjectReplicationPolicyOnDestination": { + "$ref": "./examples/StorageAccountUpdateObjectReplicationPolicyOnDestination.json" + }, + "StorageAccountUpdateObjectReplicationPolicyOnSource": { + "$ref": "./examples/StorageAccountUpdateObjectReplicationPolicyOnSource.json" + } + } + }, + "delete": { + "operationId": "ObjectReplicationPolicies_Delete", + "tags": [ + "ObjectReplicationPolicyOperationGroup" + ], + "description": "Deletes the object replication policy associated with the specified storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "objectReplicationPolicyId", + "in": "path", + "description": "For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file.", + "required": true, + "type": "string", + "minLength": 1 + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountDeleteObjectReplicationPolicies": { + "$ref": "./examples/StorageAccountDeleteObjectReplicationPolicy.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/privateEndpointConnections": { + "get": { + "operationId": "PrivateEndpointConnections_List", + "tags": [ + "PrivateEndpointConnections" + ], + "description": "List all the private endpoint connections associated with the storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnectionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountListPrivateEndpointConnections": { + "$ref": "./examples/StorageAccountListPrivateEndpointConnections.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}": { + "get": { + "operationId": "PrivateEndpointConnections_Get", + "tags": [ + "PrivateEndpointConnections" + ], + "description": "Gets the specified private endpoint connection associated with the storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the private endpoint connection associated with the Azure resource", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountGetPrivateEndpointConnection": { + "$ref": "./examples/StorageAccountGetPrivateEndpointConnection.json" + } + } + }, + "put": { + "operationId": "PrivateEndpointConnections_Put", + "tags": [ + "PrivateEndpointConnections" + ], + "description": "Update the state of specified private endpoint connection associated with the storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the private endpoint connection associated with the Azure resource", + "required": true, + "type": "string" + }, + { + "name": "properties", + "in": "body", + "description": "The private endpoint connection properties.", + "required": true, + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + } + ], + "responses": { + "200": { + "description": "Resource 'PrivateEndpointConnection' update operation succeeded", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountPutPrivateEndpointConnection": { + "$ref": "./examples/StorageAccountPutPrivateEndpointConnection.json" + } + } + }, + "delete": { + "operationId": "PrivateEndpointConnections_Delete", + "tags": [ + "PrivateEndpointConnections" + ], + "description": "Deletes the specified private endpoint connection associated with the storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the private endpoint connection associated with the Azure resource", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountDeletePrivateEndpointConnection": { + "$ref": "./examples/StorageAccountDeletePrivateEndpointConnection.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/privateLinkResources": { + "get": { + "operationId": "PrivateLinkResources_ListByStorageAccount", + "tags": [ + "StorageAccounts" + ], + "description": "Gets the private link resources that need to be created for a storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PrivateLinkResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountListPrivateLinkResources": { + "$ref": "./examples/StorageAccountListPrivateLinkResources.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/queueServices": { + "get": { + "operationId": "QueueServices_List", + "tags": [ + "QueueServices" + ], + "description": "List all queue services for the storage account", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ListQueueServices" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "QueueServicesList": { + "$ref": "./examples/QueueServicesList.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/queueServices/default": { + "get": { + "operationId": "QueueServices_GetServiceProperties", + "tags": [ + "QueueServices" + ], + "description": "Gets the properties of a storage account’s Queue service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/QueueServiceProperties" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "QueueServicesGet": { + "$ref": "./examples/QueueServicesGet.json" + } + } + }, + "put": { + "operationId": "QueueServices_SetServiceProperties", + "tags": [ + "QueueServices" + ], + "description": "Sets the properties of a storage account’s Queue service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The properties of a storage account’s Queue service, only properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules can be specified.", + "required": true, + "schema": { + "$ref": "#/definitions/QueueServiceProperties" + } + } + ], + "responses": { + "200": { + "description": "Resource 'QueueServiceProperties' update operation succeeded", + "schema": { + "$ref": "#/definitions/QueueServiceProperties" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "QueueServicesPut": { + "$ref": "./examples/QueueServicesPut.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/queueServices/default/queues": { + "get": { + "operationId": "Queue_List", + "tags": [ + "QueueServices" + ], + "description": "Gets a list of all the queues under the specified storage account", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "$maxpagesize", + "in": "query", + "description": "Optional, a maximum number of queues that should be included in a list queue response", + "required": false, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "Optional, When specified, only the queues with a name starting with the given filter will be listed.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ListQueueResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "QueueOperationList": { + "$ref": "./examples/QueueOperationList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/queueServices/default/queues/{queueName}": { + "get": { + "operationId": "Queue_Get", + "tags": [ + "StorageQueues" + ], + "description": "Gets the queue with the specified queue name, under the specified account if it exists.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "queueName", + "in": "path", + "description": "A queue name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an alphanumeric character and it cannot have two consecutive dash(-) characters.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63, + "pattern": "^[a-z0-9]([a-z0-9]|(-(?!-))){1,61}[a-z0-9]$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageQueue" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "QueueOperationGet": { + "$ref": "./examples/QueueOperationGet.json" + } + } + }, + "put": { + "operationId": "Queue_Create", + "tags": [ + "StorageQueues" + ], + "description": "Creates a new queue with the specified queue name, under the specified account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "queueName", + "in": "path", + "description": "A queue name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an alphanumeric character and it cannot have two consecutive dash(-) characters.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63, + "pattern": "^[a-z0-9]([a-z0-9]|(-(?!-))){1,61}[a-z0-9]$" + }, + { + "name": "queue", + "in": "body", + "description": "Queue properties and metadata to be created with", + "required": true, + "schema": { + "$ref": "#/definitions/StorageQueue" + } + } + ], + "responses": { + "200": { + "description": "Resource 'StorageQueue' update operation succeeded", + "schema": { + "$ref": "#/definitions/StorageQueue" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "QueueOperationPut": { + "$ref": "./examples/QueueOperationPut.json" + }, + "QueueOperationPutWithMetadata": { + "$ref": "./examples/QueueOperationPutWithMetadata.json" + } + } + }, + "patch": { + "operationId": "Queue_Update", + "tags": [ + "StorageQueues" + ], + "description": "Creates a new queue with the specified queue name, under the specified account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "queueName", + "in": "path", + "description": "A queue name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an alphanumeric character and it cannot have two consecutive dash(-) characters.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63, + "pattern": "^[a-z0-9]([a-z0-9]|(-(?!-))){1,61}[a-z0-9]$" + }, + { + "name": "queue", + "in": "body", + "description": "Queue properties and metadata to be created with", + "required": true, + "schema": { + "$ref": "#/definitions/StorageQueue" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageQueue" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "QueueOperationPatch": { + "$ref": "./examples/QueueOperationPatch.json" + } + } + }, + "delete": { + "operationId": "Queue_Delete", + "tags": [ + "StorageQueues" + ], + "description": "Deletes the queue with the specified queue name, under the specified account if it exists.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "queueName", + "in": "path", + "description": "A queue name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an alphanumeric character and it cannot have two consecutive dash(-) characters.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63, + "pattern": "^[a-z0-9]([a-z0-9]|(-(?!-))){1,61}[a-z0-9]$" + } + ], + "responses": { + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "QueueOperationDelete": { + "$ref": "./examples/QueueOperationDelete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/regenerateKey": { + "post": { + "operationId": "StorageAccounts_RegenerateKey", + "tags": [ + "StorageAccounts" + ], + "description": "Regenerates one of the access keys or Kerberos keys for the specified storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "regenerateKey", + "in": "body", + "description": "Specifies name of the key which should be regenerated -- key1, key2, kerb1, kerb2.", + "required": true, + "schema": { + "$ref": "#/definitions/StorageAccountRegenerateKeyParameters" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageAccountListKeysResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountRegenerateKerbKey": { + "$ref": "./examples/StorageAccountRegenerateKerbKey.json" + }, + "StorageAccountRegenerateKey": { + "$ref": "./examples/StorageAccountRegenerateKey.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/reports": { + "get": { + "operationId": "StorageTaskAssignmentsInstancesReport_List", + "tags": [ + "StorageAccounts" + ], + "description": "Fetch the report summary of all the storage task assignments and instances in an account", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "$maxpagesize", + "in": "query", + "description": "Optional, specifies the maximum number of storage task assignment instances to be included in the list response.", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$filter", + "in": "query", + "description": "Optional. When specified, it can be used to query using reporting properties. See [Constructing Filter Strings](https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#constructing-filter-strings) for details.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageTaskReportSummary" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ListStorageTaskAssignmentsInstancesReportSummary": { + "$ref": "./examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/restoreBlobRanges": { + "post": { + "operationId": "StorageAccounts_RestoreBlobRanges", + "tags": [ + "StorageAccounts" + ], + "description": "Restore blobs in the specified blob ranges", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The parameters to provide for restore blob ranges.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobRestoreParameters" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/BlobRestoreStatus" + } + }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "$ref": "#/definitions/BlobRestoreStatus" + }, + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "BlobRangesRestore": { + "$ref": "./examples/BlobRangesRestore.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location", + "final-state-schema": "#/definitions/BlobRestoreStatus" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/revokeUserDelegationKeys": { + "post": { + "operationId": "StorageAccounts_RevokeUserDelegationKeys", + "tags": [ + "StorageAccounts" + ], + "description": "Revoke user delegation keys.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "The request has succeeded." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountRevokeUserDelegationKeys": { + "$ref": "./examples/StorageAccountRevokeUserDelegationKeys.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/startAccountMigration": { + "post": { + "operationId": "StorageAccounts_CustomerInitiatedMigration", + "tags": [ + "StorageAccounts" + ], + "description": "Account Migration request can be triggered for a storage account to change its redundancy level. The migration updates the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The request parameters required to perform storage account migration.", + "required": true, + "schema": { + "$ref": "#/definitions/StorageAccountMigration" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully." + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "StorageAccountPostMigration": { + "$ref": "./examples/StorageAccountPostMigration.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/storageTaskAssignments": { + "get": { + "operationId": "StorageTaskAssignments_List", + "tags": [ + "StorageTaskAssignments" + ], + "description": "List all the storage task assignments in an account", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "$top", + "in": "query", + "description": "Optional, specifies the maximum number of storage task assignment Ids to be included in the list response.", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageTaskAssignmentsList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ListStorageTaskAssignmentsForAccount": { + "$ref": "./examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/storageTaskAssignments/{storageTaskAssignmentName}": { + "get": { + "operationId": "StorageTaskAssignments_Get", + "tags": [ + "StorageTaskAssignments" + ], + "description": "Get the storage task assignment properties", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "storageTaskAssignmentName", + "in": "path", + "description": "The name of the storage task assignment within the specified resource group. Storage task assignment names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z][a-z0-9]{2,23}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageTaskAssignment" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetStorageTaskAssignment": { + "$ref": "./examples/storageTaskAssignmentsCrud/GetStorageTaskAssignment.json" + } + } + }, + "put": { + "operationId": "StorageTaskAssignments_Create", + "tags": [ + "StorageTaskAssignments" + ], + "description": "Asynchronously creates a new storage task assignment sub-resource with the specified parameters. If a storage task assignment is already created and a subsequent create request is issued with different properties, the storage task assignment properties will be updated. If a storage task assignment is already created and a subsequent create or update request is issued with the exact same set of properties, the request will succeed.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "storageTaskAssignmentName", + "in": "path", + "description": "The name of the storage task assignment within the specified resource group. Storage task assignment names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z][a-z0-9]{2,23}$" + }, + { + "name": "parameters", + "in": "body", + "description": "The parameters to create a Storage Task Assignment.", + "required": true, + "schema": { + "$ref": "#/definitions/StorageTaskAssignment" + } + } + ], + "responses": { + "200": { + "description": "Resource 'StorageTaskAssignment' update operation succeeded", + "schema": { + "$ref": "#/definitions/StorageTaskAssignment" + } + }, + "201": { + "description": "Resource 'StorageTaskAssignment' create operation succeeded", + "schema": { + "$ref": "#/definitions/StorageTaskAssignment" + }, + "headers": { + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "PutStorageTaskAssignment": { + "$ref": "./examples/storageTaskAssignmentsCrud/PutStorageTaskAssignment.json" + }, + "PutStorageTaskAssignmentRequiredProperties": { + "$ref": "./examples/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/StorageTaskAssignment" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "StorageTaskAssignments_Update", + "tags": [ + "StorageTaskAssignments" + ], + "description": "Update storage task assignment properties", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "storageTaskAssignmentName", + "in": "path", + "description": "The name of the storage task assignment within the specified resource group. Storage task assignment names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z][a-z0-9]{2,23}$" + }, + { + "name": "parameters", + "in": "body", + "description": "The parameters to update a Storage Task Assignment.", + "required": true, + "schema": { + "$ref": "#/definitions/StorageTaskAssignmentUpdateParameters" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageTaskAssignment" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "PatchStorageTaskAssignment": { + "$ref": "./examples/storageTaskAssignmentsCrud/PatchStorageTaskAssignment.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/StorageTaskAssignment" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "StorageTaskAssignments_Delete", + "tags": [ + "StorageTaskAssignments" + ], + "description": "Delete the storage task assignment sub-resource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "storageTaskAssignmentName", + "in": "path", + "description": "The name of the storage task assignment within the specified resource group. Storage task assignment names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z][a-z0-9]{2,23}$" + } + ], + "responses": { + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "There is no content to send for this request, but the headers may be useful." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "DeleteStorageTaskAssignment": { + "$ref": "./examples/storageTaskAssignmentsCrud/DeleteStorageTaskAssignment.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/storageTaskAssignments/{storageTaskAssignmentName}/reports": { + "get": { + "operationId": "StorageTaskAssignmentInstancesReport_List", + "tags": [ + "StorageTaskAssignments" + ], + "description": "Fetch the report summary of a single storage task assignment's instances", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "storageTaskAssignmentName", + "in": "path", + "description": "The name of the storage task assignment within the specified resource group. Storage task assignment names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z][a-z0-9]{2,23}$" + }, + { + "name": "$maxpagesize", + "in": "query", + "description": "Optional, specifies the maximum number of storage task assignment instances to be included in the list response.", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$filter", + "in": "query", + "description": "Optional. When specified, it can be used to query using reporting properties. See [Constructing Filter Strings](https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#constructing-filter-strings) for details.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/StorageTaskReportSummary" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ListStorageTaskAssignmentInstancesReportSummary": { + "$ref": "./examples/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/tableServices": { + "get": { + "operationId": "TableServices_List", + "tags": [ + "TableServices" + ], + "description": "List all table services for the storage account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ListTableServices" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "TableServicesList": { + "$ref": "./examples/TableServicesList.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/tableServices/default": { + "get": { + "operationId": "TableServices_GetServiceProperties", + "tags": [ + "TableServices" + ], + "description": "Gets the properties of a storage account’s Table service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/TableServiceProperties" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "TableServicesGet": { + "$ref": "./examples/TableServicesGet.json" + } + } + }, + "put": { + "operationId": "TableServices_SetServiceProperties", + "tags": [ + "TableServices" + ], + "description": "Sets the properties of a storage account’s Table service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The properties of a storage account’s Table service, only properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules can be specified.", + "required": true, + "schema": { + "$ref": "#/definitions/TableServiceProperties" + } + } + ], + "responses": { + "200": { + "description": "Resource 'TableServiceProperties' update operation succeeded", + "schema": { + "$ref": "#/definitions/TableServiceProperties" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "TableServicesPut": { + "$ref": "./examples/TableServicesPut.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/tableServices/default/tables": { + "get": { + "operationId": "Table_List", + "tags": [ + "Tables" + ], + "description": "Gets a list of all the tables under the specified storage account", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ListTableResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "TableOperationList": { + "$ref": "./examples/TableOperationList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/tableServices/default/tables/{tableName}": { + "get": { + "operationId": "Table_Get", + "tags": [ + "Tables" + ], + "description": "Gets the table with the specified table name, under the specified account if it exists.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "tableName", + "in": "path", + "description": "A table name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of only alphanumeric characters and it cannot begin with a numeric character.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63, + "pattern": "^[A-Za-z][A-Za-z0-9]{2,62}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Table" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "TableOperationGet": { + "$ref": "./examples/TableOperationGet.json" + } + } + }, + "put": { + "operationId": "Table_Create", + "tags": [ + "Tables" + ], + "description": "Creates a new table with the specified table name, under the specified account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "tableName", + "in": "path", + "description": "A table name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of only alphanumeric characters and it cannot begin with a numeric character.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63, + "pattern": "^[A-Za-z][A-Za-z0-9]{2,62}$" + }, + { + "name": "parameters", + "in": "body", + "description": "The parameters to provide to create a table.", + "required": false, + "schema": { + "$ref": "#/definitions/Table" + } + } + ], + "responses": { + "200": { + "description": "Resource 'Table' update operation succeeded", + "schema": { + "$ref": "#/definitions/Table" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "TableOperationPut": { + "$ref": "./examples/TableOperationPut.json" + }, + "TableOperationPutOrPatchAcls": { + "$ref": "./examples/TableOperationPutOrPatchAclsTableCreate.json" + } + } + }, + "patch": { + "operationId": "Table_Update", + "tags": [ + "Tables" + ], + "description": "Creates a new table with the specified table name, under the specified account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "tableName", + "in": "path", + "description": "A table name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of only alphanumeric characters and it cannot begin with a numeric character.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63, + "pattern": "^[A-Za-z][A-Za-z0-9]{2,62}$" + }, + { + "name": "parameters", + "in": "body", + "description": "The parameters to provide to create a table.", + "required": false, + "schema": { + "$ref": "#/definitions/Table" + } + } + ], + "responses": { + "200": { + "description": "Resource 'Table' update operation succeeded", + "schema": { + "$ref": "#/definitions/Table" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "TableOperationPatch": { + "$ref": "./examples/TableOperationPatch.json" + }, + "TableOperationPutOrPatchAcls": { + "$ref": "./examples/TableOperationPutOrPatchAcls.json" + } + } + }, + "delete": { + "operationId": "Table_Delete", + "tags": [ + "Tables" + ], + "description": "Deletes the table with the specified table name, under the specified account if it exists.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-z0-9]+$" + }, + { + "name": "tableName", + "in": "path", + "description": "A table name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of only alphanumeric characters and it cannot begin with a numeric character.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 63, + "pattern": "^[A-Za-z][A-Za-z0-9]{2,62}$" + } + ], + "responses": { + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "TableOperationDelete": { + "$ref": "./examples/TableOperationDelete.json" + } + } + } + } + }, + "definitions": { + "AccessPolicy": { + "type": "object", + "properties": { + "startTime": { + "type": "string", + "format": "date-time", + "description": "Start time of the access policy" + }, + "expiryTime": { + "type": "string", + "format": "date-time", + "description": "Expiry time of the access policy" + }, + "permission": { + "type": "string", + "description": "List of abbreviated permissions." + } + } + }, + "AccessTier": { + "type": "string", + "description": "Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type.", + "enum": [ + "Hot", + "Cool", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": false + } + }, + "AccountImmutabilityPolicyProperties": { + "type": "object", + "description": "This defines account-level immutability policy properties.", + "properties": { + "immutabilityPeriodSinceCreationInDays": { + "type": "integer", + "format": "int32", + "description": "The immutability period for the blobs in the container since the policy creation, in days.", + "minimum": 1, + "maximum": 146000 + }, + "state": { + "$ref": "#/definitions/AccountImmutabilityPolicyState", + "description": "The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted." + }, + "allowProtectedAppendWrites": { + "type": "boolean", + "description": "This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted." + } + } + }, + "AccountImmutabilityPolicyState": { + "type": "string", + "description": "The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted.", + "enum": [ + "Unlocked", + "Locked", + "Disabled" + ], + "x-ms-enum": { + "name": "AccountImmutabilityPolicyState", + "modelAsString": true, + "values": [ + { + "name": "Unlocked", + "value": "Unlocked" + }, + { + "name": "Locked", + "value": "Locked" + }, + { + "name": "Disabled", + "value": "Disabled" + } + ] + } + }, + "AccountLimits": { + "type": "object", + "description": "Maximum provisioned storage, IOPS, bandwidth and number of file shares limits for the storage account.", + "properties": { + "maxFileShares": { + "type": "integer", + "format": "int32", + "description": "The maximum number of file shares limit for the storage account.", + "readOnly": true + }, + "maxProvisionedStorageGiB": { + "type": "integer", + "format": "int32", + "description": "The maximum provisioned storage quota limit in gibibytes for the storage account.", + "readOnly": true + }, + "maxProvisionedIOPS": { + "type": "integer", + "format": "int32", + "description": "The maximum provisioned IOPS limit for the storage account.", + "readOnly": true + }, + "maxProvisionedBandwidthMiBPerSec": { + "type": "integer", + "format": "int32", + "description": "The maximum provisioned bandwidth limit in mebibytes per second for the storage account.", + "readOnly": true + } + } + }, + "AccountSasParameters": { + "type": "object", + "description": "The parameters to list SAS credentials of a storage account.", + "properties": { + "signedServices": { + "$ref": "#/definitions/Services", + "description": "The signed services accessible with the account SAS. Possible values include: Blob (b), Queue (q), Table (t), File (f).", + "x-ms-client-name": "Services" + }, + "signedResourceTypes": { + "$ref": "#/definitions/SignedResourceTypes", + "description": "The signed resource types that are accessible with the account SAS. Service (s): Access to service-level APIs; Container (c): Access to container-level APIs; Object (o): Access to object-level APIs for blobs, queue messages, table entities, and files.", + "x-ms-client-name": "ResourceTypes" + }, + "signedPermission": { + "$ref": "#/definitions/Permissions", + "description": "The signed permissions for the account SAS. Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p).", + "x-ms-client-name": "Permissions" + }, + "signedIp": { + "type": "string", + "description": "An IP address or a range of IP addresses from which to accept requests.", + "x-ms-client-name": "IPAddressOrRange" + }, + "signedProtocol": { + "$ref": "#/definitions/HttpProtocol", + "description": "The protocol permitted for a request made with the account SAS.", + "x-ms-client-name": "Protocols" + }, + "signedStart": { + "type": "string", + "format": "date-time", + "description": "The time at which the SAS becomes valid.", + "x-ms-client-name": "SharedAccessStartTime" + }, + "signedExpiry": { + "type": "string", + "format": "date-time", + "description": "The time at which the shared access signature becomes invalid.", + "x-ms-client-name": "SharedAccessExpiryTime" + }, + "keyToSign": { + "type": "string", + "description": "The key to sign the account SAS token with." + } + }, + "required": [ + "signedServices", + "signedResourceTypes", + "signedPermission", + "signedExpiry" + ] + }, + "AccountStatus": { + "type": "string", + "description": "Gets the status indicating whether the primary location of the storage account is available or unavailable.", + "enum": [ + "available", + "unavailable" + ], + "x-ms-enum": { + "name": "AccountStatus", + "modelAsString": false + } + }, + "AccountType": { + "type": "string", + "description": "Specifies the Active Directory account type for Azure Storage. If directoryServiceOptions is set to AD (AD DS authentication), this property is optional. If provided, samAccountName should also be provided. For directoryServiceOptions AADDS (Entra DS authentication) or AADKERB (Entra authentication), this property can be omitted.", + "enum": [ + "User", + "Computer" + ], + "x-ms-enum": { + "name": "AccountType", + "modelAsString": true, + "values": [ + { + "name": "User", + "value": "User" + }, + { + "name": "Computer", + "value": "Computer" + } + ] + } + }, + "AccountUsage": { + "type": "object", + "description": "Usage of provisioned storage, IOPS, bandwidth and number of file shares across all live shares and soft-deleted shares in the account.", + "properties": { + "liveShares": { + "$ref": "#/definitions/AccountUsageElements", + "description": "Usage of provisioned storage, IOPS, bandwidth and number of file shares across all live shares or soft-deleted shares in the account." + }, + "softDeletedShares": { + "$ref": "#/definitions/AccountUsageElements", + "description": "Usage of provisioned storage, IOPS, bandwidth and number of file shares across all live shares or soft-deleted shares in the account." + } + } + }, + "AccountUsageElements": { + "type": "object", + "description": "Usage of provisioned storage, IOPS, bandwidth and number of file shares across all live shares or soft-deleted shares in the account.", + "properties": { + "fileShareCount": { + "type": "integer", + "format": "int32", + "description": "The total number of file shares.", + "readOnly": true + }, + "provisionedStorageGiB": { + "type": "integer", + "format": "int32", + "description": "The total provisioned storage quota in gibibytes.", + "readOnly": true + }, + "provisionedIOPS": { + "type": "integer", + "format": "int32", + "description": "The total provisioned IOPS.", + "readOnly": true + }, + "provisionedBandwidthMiBPerSec": { + "type": "integer", + "format": "int32", + "description": "The total provisioned bandwidth in mebibytes per second.", + "readOnly": true + } + } + }, + "ActiveDirectoryProperties": { + "type": "object", + "description": "Settings properties for Active Directory (AD).", + "properties": { + "domainName": { + "type": "string", + "description": "Specifies the primary domain that the AD DNS server is authoritative for. This property is required if directoryServiceOptions is set to AD (AD DS authentication). If directoryServiceOptions is set to AADDS (Entra DS authentication), providing this property is optional, as it will be inferred automatically if omitted. If directoryServiceOptions is set to AADKERB (Entra authentication), this property is optional; it is needed to support configuration of directory- and file-level permissions via Windows File Explorer, but is not required for authentication." + }, + "netBiosDomainName": { + "type": "string", + "description": "Specifies the NetBIOS domain name. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. Otherwise, it can be omitted." + }, + "forestName": { + "type": "string", + "description": "Specifies the Active Directory forest to get. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. Otherwise, it can be omitted." + }, + "domainGuid": { + "type": "string", + "description": "Specifies the domain GUID. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. If directoryServiceOptions is set to AADDS (Entra DS authentication), this property can be omitted. If directoryServiceOptions is set to AADKERB (Entra authentication), this property is optional; it is needed to support configuration of directory- and file-level permissions via Windows File Explorer, but is not required for authentication." + }, + "domainSid": { + "type": "string", + "description": "Specifies the security identifier (SID) of the AD domain. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. Otherwise, it can be omitted." + }, + "azureStorageSid": { + "type": "string", + "description": "Specifies the security identifier (SID) for Azure Storage. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. Otherwise, it can be omitted." + }, + "samAccountName": { + "type": "string", + "description": "Specifies the Active Directory SAMAccountName for Azure Storage. If directoryServiceOptions is set to AD (AD DS authentication), this property is optional. If provided, accountType should also be provided. For directoryServiceOptions AADDS (Entra DS authentication) or AADKERB (Entra authentication), this property can be omitted." + }, + "accountType": { + "$ref": "#/definitions/AccountType", + "description": "Specifies the Active Directory account type for Azure Storage. If directoryServiceOptions is set to AD (AD DS authentication), this property is optional. If provided, samAccountName should also be provided. For directoryServiceOptions AADDS (Entra DS authentication) or AADKERB (Entra authentication), this property can be omitted." + } + } + }, + "AllowedCopyScope": { + "type": "string", + "description": "Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet.", + "enum": [ + "PrivateLink", + "AAD" + ], + "x-ms-enum": { + "name": "AllowedCopyScope", + "modelAsString": true, + "values": [ + { + "name": "PrivateLink", + "value": "PrivateLink" + }, + { + "name": "AAD", + "value": "AAD" + } + ] + } + }, + "AllowedMethods": { + "type": "string", + "enum": [ + "DELETE", + "GET", + "HEAD", + "MERGE", + "POST", + "OPTIONS", + "PUT", + "PATCH", + "CONNECT", + "TRACE" + ], + "x-ms-enum": { + "name": "AllowedMethods", + "modelAsString": true, + "values": [ + { + "name": "DELETE", + "value": "DELETE" + }, + { + "name": "GET", + "value": "GET" + }, + { + "name": "HEAD", + "value": "HEAD" + }, + { + "name": "MERGE", + "value": "MERGE" + }, + { + "name": "POST", + "value": "POST" + }, + { + "name": "OPTIONS", + "value": "OPTIONS" + }, + { + "name": "PUT", + "value": "PUT" + }, + { + "name": "PATCH", + "value": "PATCH" + }, + { + "name": "CONNECT", + "value": "CONNECT" + }, + { + "name": "TRACE", + "value": "TRACE" + } + ] + } + }, + "AzureEntityResource": { + "type": "object", + "title": "Entity Resource", + "description": "The resource model definition for an Azure Resource Manager resource with an etag.", + "properties": { + "etag": { + "type": "string", + "description": "Resource Etag.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Resource" + } + ] + }, + "AzureFilesIdentityBasedAuthentication": { + "type": "object", + "description": "Settings for Azure Files identity based authentication.", + "properties": { + "directoryServiceOptions": { + "$ref": "#/definitions/DirectoryServiceOptions", + "description": "Indicates the directory service used. Note that this enum may be extended in the future." + }, + "activeDirectoryProperties": { + "$ref": "#/definitions/ActiveDirectoryProperties", + "description": "Additional information about the directory service. Required if directoryServiceOptions is AD (AD DS authentication). Optional for directoryServiceOptions AADDS (Entra DS authentication) and AADKERB (Entra authentication)." + }, + "defaultSharePermission": { + "$ref": "#/definitions/DefaultSharePermission", + "description": "Default share permission for users using Kerberos authentication if RBAC role is not assigned." + }, + "smbOAuthSettings": { + "$ref": "#/definitions/SmbOAuthSettings", + "description": "Required for Managed Identities access using OAuth over SMB." + } + }, + "required": [ + "directoryServiceOptions" + ] + }, + "BlobContainer": { + "type": "object", + "description": "Properties of the blob container, including Id, resource name, resource type, Etag.", + "properties": { + "properties": { + "$ref": "#/definitions/ContainerProperties", + "description": "Properties of the blob container.", + "x-ms-client-flatten": true, + "x-ms-client-name": "ContainerProperties" + }, + "etag": { + "type": "string", + "description": "Resource Etag.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "BlobInventoryCreationTime": { + "type": "object", + "description": "This property defines the creation time based filtering condition. Blob Inventory schema parameter 'Creation-Time' is mandatory with this filter.", + "properties": { + "lastNDays": { + "type": "integer", + "format": "int32", + "description": "When set the policy filters the objects that are created in the last N days. Where N is an integer value between 1 to 36500.", + "minimum": 1, + "maximum": 36500 + } + } + }, + "BlobInventoryPolicy": { + "type": "object", + "description": "The storage account blob inventory policy.", + "properties": { + "properties": { + "$ref": "#/definitions/BlobInventoryPolicyProperties", + "description": "Returns the storage account blob inventory policy rules.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "BlobInventoryPolicyDefinition": { + "type": "object", + "description": "An object that defines the blob inventory rule.", + "properties": { + "filters": { + "$ref": "#/definitions/BlobInventoryPolicyFilter", + "description": "An object that defines the filter set." + }, + "format": { + "$ref": "#/definitions/Format", + "description": "This is a required field, it specifies the format for the inventory files." + }, + "schedule": { + "$ref": "#/definitions/Schedule", + "description": "This is a required field. This field is used to schedule an inventory formation." + }, + "objectType": { + "$ref": "#/definitions/ObjectType", + "description": "This is a required field. This field specifies the scope of the inventory created either at the blob or container level." + }, + "schemaFields": { + "type": "array", + "description": "This is a required field. This field specifies the fields and properties of the object to be included in the inventory. The Schema field value 'Name' is always required. The valid values for this field for the 'Blob' definition.objectType include 'Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, AccessTierInferred, Tags, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime, Tags, Etag, ContentType, ContentEncoding, ContentLanguage, ContentCRC64, CacheControl, ContentDisposition, LeaseStatus, LeaseState, LeaseDuration, ServerEncrypted, Deleted, DeletionId, DeletedTime, RemainingRetentionDays, ImmutabilityPolicyUntilDate, ImmutabilityPolicyMode, LegalHold, CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime, CopyStatusDescription, CustomerProvidedKeySha256, RehydratePriority, ArchiveStatus, XmsBlobSequenceNumber, EncryptionScope, IncrementalCopy, TagCount'. For Blob object type schema field value 'DeletedTime' is applicable only for Hns enabled accounts. The valid values for 'Container' definition.objectType include 'Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold, Etag, DefaultEncryptionScope, DenyEncryptionScopeOverride, ImmutableStorageWithVersioningEnabled, Deleted, Version, DeletedTime, RemainingRetentionDays'. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, DeletionId' are valid only for Hns enabled accounts.Schema field values 'Tags, TagCount' are only valid for Non-Hns accounts.", + "items": { + "type": "string" + } + } + }, + "required": [ + "format", + "schedule", + "objectType", + "schemaFields" + ] + }, + "BlobInventoryPolicyFilter": { + "type": "object", + "description": "An object that defines the blob inventory rule filter conditions. For 'Blob' definition.objectType all filter properties are applicable, 'blobTypes' is required and others are optional. For 'Container' definition.objectType only prefixMatch is applicable and is optional.", + "properties": { + "prefixMatch": { + "type": "array", + "description": "An array of strings with maximum 10 blob prefixes to be included in the inventory.", + "items": { + "type": "string" + } + }, + "excludePrefix": { + "type": "array", + "description": "An array of strings with maximum 10 blob prefixes to be excluded from the inventory.", + "items": { + "type": "string" + } + }, + "blobTypes": { + "type": "array", + "description": "An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. This field is required when definition.objectType property is set to 'Blob'.", + "items": { + "type": "string" + } + }, + "includeBlobVersions": { + "type": "boolean", + "description": "Includes blob versions in blob inventory when value is set to true. The definition.schemaFields values 'VersionId and IsCurrentVersion' are required if this property is set to true, else they must be excluded." + }, + "includeSnapshots": { + "type": "boolean", + "description": "Includes blob snapshots in blob inventory when value is set to true. The definition.schemaFields value 'Snapshot' is required if this property is set to true, else it must be excluded." + }, + "includeDeleted": { + "type": "boolean", + "description": "For 'Container' definition.objectType the definition.schemaFields must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For 'Blob' definition.objectType and HNS enabled storage accounts the definition.schemaFields must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays' and for Hns disabled accounts the definition.schemaFields must include 'Deleted and RemainingRetentionDays', else it must be excluded." + }, + "creationTime": { + "$ref": "#/definitions/BlobInventoryCreationTime", + "description": "This property is used to filter objects based on the object creation time" + } + } + }, + "BlobInventoryPolicyProperties": { + "type": "object", + "description": "The storage account blob inventory policy properties.", + "properties": { + "lastModifiedTime": { + "type": "string", + "format": "date-time", + "description": "Returns the last modified date and time of the blob inventory policy.", + "readOnly": true + }, + "policy": { + "$ref": "#/definitions/BlobInventoryPolicySchema", + "description": "The storage account blob inventory policy object. It is composed of policy rules." + } + }, + "required": [ + "policy" + ] + }, + "BlobInventoryPolicyRule": { + "type": "object", + "description": "An object that wraps the blob inventory rule. Each rule is uniquely defined by name.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Rule is enabled when set to true." + }, + "name": { + "type": "string", + "description": "A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy." + }, + "destination": { + "type": "string", + "description": "Container name where blob inventory files are stored. Must be pre-created." + }, + "definition": { + "$ref": "#/definitions/BlobInventoryPolicyDefinition", + "description": "An object that defines the blob inventory policy rule." + } + }, + "required": [ + "enabled", + "name", + "destination", + "definition" + ] + }, + "BlobInventoryPolicySchema": { + "type": "object", + "description": "The storage account blob inventory policy rules.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Policy is enabled if set to true." + }, + "destination": { + "type": "string", + "description": "Deprecated Property from API version 2021-04-01 onwards, the required destination container name must be specified at the rule level 'policy.rule.destination'", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/InventoryRuleType", + "description": "The valid value is Inventory" + }, + "rules": { + "type": "array", + "description": "The storage account blob inventory policy rules. The rule is applied when it is enabled.", + "items": { + "$ref": "#/definitions/BlobInventoryPolicyRule" + } + } + }, + "required": [ + "enabled", + "type", + "rules" + ] + }, + "BlobRestoreParameters": { + "type": "object", + "description": "Blob restore parameters", + "properties": { + "timeToRestore": { + "type": "string", + "format": "date-time", + "description": "Restore blob to the specified time." + }, + "blobRanges": { + "type": "array", + "description": "Blob ranges to restore.", + "items": { + "$ref": "#/definitions/BlobRestoreRange" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "timeToRestore", + "blobRanges" + ] + }, + "BlobRestoreProgressStatus": { + "type": "string", + "description": "The status of blob restore progress. Possible values are: - InProgress: Indicates that blob restore is ongoing. - Complete: Indicates that blob restore has been completed successfully. - Failed: Indicates that blob restore is failed.", + "enum": [ + "InProgress", + "Complete", + "Failed" + ], + "x-ms-enum": { + "name": "BlobRestoreProgressStatus", + "modelAsString": true, + "values": [ + { + "name": "InProgress", + "value": "InProgress" + }, + { + "name": "Complete", + "value": "Complete" + }, + { + "name": "Failed", + "value": "Failed" + } + ] + } + }, + "BlobRestoreRange": { + "type": "object", + "description": "Blob range", + "properties": { + "startRange": { + "type": "string", + "description": "Blob start range. This is inclusive. Empty means account start." + }, + "endRange": { + "type": "string", + "description": "Blob end range. This is exclusive. Empty means account end." + } + }, + "required": [ + "startRange", + "endRange" + ] + }, + "BlobRestoreStatus": { + "type": "object", + "description": "Blob restore status.", + "properties": { + "status": { + "$ref": "#/definitions/BlobRestoreProgressStatus", + "description": "The status of blob restore progress. Possible values are: - InProgress: Indicates that blob restore is ongoing. - Complete: Indicates that blob restore has been completed successfully. - Failed: Indicates that blob restore is failed.", + "readOnly": true + }, + "failureReason": { + "type": "string", + "description": "Failure reason when blob restore is failed.", + "readOnly": true + }, + "restoreId": { + "type": "string", + "description": "Id for tracking blob restore request.", + "readOnly": true + }, + "parameters": { + "$ref": "#/definitions/BlobRestoreParameters", + "description": "Blob restore request parameters.", + "readOnly": true + } + } + }, + "BlobServiceItems": { + "type": "object", + "properties": { + "value": { + "type": "array", + "description": "List of blob services returned.", + "items": { + "$ref": "#/definitions/BlobServiceProperties" + }, + "readOnly": true + }, + "nextLink": { + "type": "string" + } + } + }, + "BlobServiceProperties": { + "type": "object", + "description": "The properties of a storage account’s Blob service.", + "properties": { + "properties": { + "$ref": "#/definitions/BlobServicePropertiesProperties", + "description": "The properties of a storage account’s Blob service.", + "x-ms-client-flatten": true, + "x-ms-client-name": "BlobServiceProperties" + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "Sku name and tier.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "BlobServicePropertiesProperties": { + "type": "object", + "description": "The properties of a storage account’s Blob service.", + "properties": { + "cors": { + "$ref": "#/definitions/CorsRules", + "description": "Specifies CORS rules for the Blob service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Blob service." + }, + "defaultServiceVersion": { + "type": "string", + "description": "DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request’s version is not specified. Possible values include version 2008-10-27 and all more recent versions." + }, + "deleteRetentionPolicy": { + "$ref": "#/definitions/DeleteRetentionPolicy", + "description": "The blob service properties for blob soft delete." + }, + "isVersioningEnabled": { + "type": "boolean", + "description": "Versioning is enabled if set to true." + }, + "automaticSnapshotPolicyEnabled": { + "type": "boolean", + "description": "Deprecated in favor of isVersioningEnabled property." + }, + "changeFeed": { + "$ref": "#/definitions/ChangeFeed", + "description": "The blob service properties for change feed events." + }, + "restorePolicy": { + "$ref": "#/definitions/RestorePolicyProperties", + "description": "The blob service properties for blob restore policy." + }, + "containerDeleteRetentionPolicy": { + "$ref": "#/definitions/DeleteRetentionPolicy", + "description": "The blob service properties for container soft delete." + }, + "lastAccessTimeTrackingPolicy": { + "$ref": "#/definitions/LastAccessTimeTrackingPolicy", + "description": "The blob service property to configure last access time based tracking policy." + } + } + }, + "BurstingConstants": { + "type": "object", + "description": "Constants used for calculating included burst IOPS and maximum burst credits for IOPS for a file share in the storage account.", + "properties": { + "burstFloorIOPS": { + "type": "integer", + "format": "int32", + "description": "The guaranteed floor of burst IOPS for small file shares.", + "readOnly": true + }, + "burstIOScalar": { + "type": "number", + "format": "double", + "description": "The scalar against provisioned IOPS in the file share included burst IOPS formula.", + "readOnly": true + }, + "burstTimeframeSeconds": { + "type": "integer", + "format": "int32", + "description": "The time frame for bursting in seconds in the file share maximum burst credits for IOPS formula.", + "readOnly": true + } + } + }, + "ChangeFeed": { + "type": "object", + "description": "The blob service properties for change feed events.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Indicates whether change feed event logging is enabled for the Blob service." + }, + "retentionInDays": { + "type": "integer", + "format": "int32", + "description": "Indicates the duration of changeFeed retention in days. Minimum value is 1 day and maximum value is 146000 days (400 years). A null value indicates an infinite retention of the change feed.", + "minimum": 1, + "maximum": 146000 + } + } + }, + "CheckNameAvailabilityResult": { + "type": "object", + "description": "The CheckNameAvailability operation response.", + "properties": { + "nameAvailable": { + "type": "boolean", + "description": "Gets a boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or is invalid and cannot be used.", + "readOnly": true + }, + "reason": { + "$ref": "#/definitions/Reason", + "description": "Gets the reason that a storage account name could not be used. The Reason element is only returned if NameAvailable is false.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "Gets an error message explaining the Reason value in more detail.", + "readOnly": true + } + } + }, + "CloudError": { + "type": "object", + "description": "An error response from the Storage service.", + "properties": { + "error": { + "$ref": "#/definitions/CloudErrorBody", + "description": "An error response from the Storage service." + } + }, + "x-ms-external": true + }, + "CloudErrorBody": { + "type": "object", + "description": "An error response from the Storage service.", + "properties": { + "code": { + "type": "string", + "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." + }, + "message": { + "type": "string", + "description": "A message describing the error, intended to be suitable for display in a user interface." + }, + "target": { + "type": "string", + "description": "The target of the particular error. For example, the name of the property in error." + }, + "details": { + "type": "array", + "description": "A list of additional details about the error.", + "items": { + "$ref": "#/definitions/CloudErrorBody" + }, + "x-ms-identifiers": [] + } + }, + "x-ms-external": true + }, + "ContainerProperties": { + "type": "object", + "description": "The properties of a container.", + "properties": { + "version": { + "type": "string", + "description": "The version of the deleted blob container.", + "readOnly": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the blob container was deleted.", + "readOnly": true + }, + "deletedTime": { + "type": "string", + "format": "date-time", + "description": "Blob container deletion time.", + "readOnly": true + }, + "remainingRetentionDays": { + "type": "integer", + "format": "int32", + "description": "Remaining retention days for soft deleted blob container.", + "readOnly": true + }, + "defaultEncryptionScope": { + "type": "string", + "description": "Default the container to use specified encryption scope for all writes." + }, + "denyEncryptionScopeOverride": { + "type": "boolean", + "description": "Block override of encryption scope from the container default." + }, + "publicAccess": { + "$ref": "#/definitions/PublicAccess", + "description": "Specifies whether data in the container may be accessed publicly and the level of access." + }, + "lastModifiedTime": { + "type": "string", + "format": "date-time", + "description": "Returns the date and time the container was last modified.", + "readOnly": true + }, + "leaseStatus": { + "$ref": "#/definitions/LeaseStatus", + "description": "The lease status of the container.", + "readOnly": true + }, + "leaseState": { + "$ref": "#/definitions/LeaseState", + "description": "Lease state of the container.", + "readOnly": true + }, + "leaseDuration": { + "$ref": "#/definitions/LeaseDuration", + "description": "Specifies whether the lease on a container is of infinite or fixed duration, only when the container is leased.", + "readOnly": true + }, + "metadata": { + "type": "object", + "description": "A name-value pair to associate with the container as metadata.", + "additionalProperties": { + "type": "string" + } + }, + "immutabilityPolicy": { + "$ref": "#/definitions/ImmutabilityPolicyProperties", + "description": "The ImmutabilityPolicy property of the container.", + "readOnly": true, + "x-ms-client-name": "ImmutabilityPolicy" + }, + "legalHold": { + "$ref": "#/definitions/LegalHoldProperties", + "description": "The LegalHold property of the container.", + "readOnly": true + }, + "hasLegalHold": { + "type": "boolean", + "description": "The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account.", + "readOnly": true + }, + "hasImmutabilityPolicy": { + "type": "boolean", + "description": "The hasImmutabilityPolicy public property is set to true by SRP if ImmutabilityPolicy has been created for this container. The hasImmutabilityPolicy public property is set to false by SRP if ImmutabilityPolicy has not been created for this container.", + "readOnly": true + }, + "immutableStorageWithVersioning": { + "$ref": "#/definitions/ImmutableStorageWithVersioning", + "description": "The object level immutability property of the container. The property is immutable and can only be set to true at the container creation time. Existing containers must undergo a migration process." + }, + "enableNfsV3RootSquash": { + "type": "boolean", + "description": "Enable NFSv3 root squash on blob container." + }, + "enableNfsV3AllSquash": { + "type": "boolean", + "description": "Enable NFSv3 all squash on blob container." + } + } + }, + "CorsRule": { + "type": "object", + "description": "Specifies a CORS rule for the Blob service.", + "properties": { + "allowedOrigins": { + "type": "array", + "description": "Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or \"*\" to allow all domains", + "items": { + "type": "string" + } + }, + "allowedMethods": { + "type": "array", + "description": "Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin.", + "items": { + "$ref": "#/definitions/AllowedMethods" + } + }, + "maxAgeInSeconds": { + "type": "integer", + "format": "int32", + "description": "Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response." + }, + "exposedHeaders": { + "type": "array", + "description": "Required if CorsRule element is present. A list of response headers to expose to CORS clients.", + "items": { + "type": "string" + } + }, + "allowedHeaders": { + "type": "array", + "description": "Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request.", + "items": { + "type": "string" + } + } + }, + "required": [ + "allowedOrigins", + "allowedMethods", + "maxAgeInSeconds", + "exposedHeaders", + "allowedHeaders" + ] + }, + "CorsRules": { + "type": "object", + "description": "Sets the CORS rules. You can include up to five CorsRule elements in the request.", + "properties": { + "corsRules": { + "type": "array", + "description": "The List of CORS rules. You can include up to five CorsRule elements in the request.", + "items": { + "$ref": "#/definitions/CorsRule" + }, + "x-ms-identifiers": [] + } + } + }, + "CustomDomain": { + "type": "object", + "description": "The custom domain assigned to this storage account. This can be set via Update.", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source." + }, + "useSubDomainName": { + "type": "boolean", + "description": "Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates." + } + }, + "required": [ + "name" + ] + }, + "DateAfterCreation": { + "type": "object", + "description": "Object to define snapshot and version action conditions.", + "properties": { + "daysAfterCreationGreaterThan": { + "type": "number", + "format": "float", + "description": "Value indicating the age in days after creation", + "minimum": 0 + }, + "daysAfterLastTierChangeGreaterThan": { + "type": "number", + "format": "float", + "description": "Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterCreationGreaterThan to be set for snapshots and blob version based actions. The blob will be archived if both the conditions are satisfied.", + "minimum": 0 + } + }, + "required": [ + "daysAfterCreationGreaterThan" + ] + }, + "DateAfterModification": { + "type": "object", + "description": "Object to define the base blob action conditions. Properties daysAfterModificationGreaterThan, daysAfterLastAccessTimeGreaterThan and daysAfterCreationGreaterThan are mutually exclusive. The daysAfterLastTierChangeGreaterThan property is only applicable for tierToArchive actions which requires daysAfterModificationGreaterThan to be set, also it cannot be used in conjunction with daysAfterLastAccessTimeGreaterThan or daysAfterCreationGreaterThan.", + "properties": { + "daysAfterModificationGreaterThan": { + "type": "number", + "format": "float", + "description": "Value indicating the age in days after last modification", + "minimum": 0 + }, + "daysAfterLastAccessTimeGreaterThan": { + "type": "number", + "format": "float", + "description": "Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy", + "minimum": 0 + }, + "daysAfterLastTierChangeGreaterThan": { + "type": "number", + "format": "float", + "description": "Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterModificationGreaterThan to be set for baseBlobs based actions. The blob will be archived if both the conditions are satisfied.", + "minimum": 0 + }, + "daysAfterCreationGreaterThan": { + "type": "number", + "format": "float", + "description": "Value indicating the age in days after blob creation.", + "minimum": 0 + } + } + }, + "DefaultSharePermission": { + "type": "string", + "description": "Default share permission for users using Kerberos authentication if RBAC role is not assigned.", + "enum": [ + "None", + "StorageFileDataSmbShareReader", + "StorageFileDataSmbShareContributor", + "StorageFileDataSmbShareElevatedContributor" + ], + "x-ms-enum": { + "name": "DefaultSharePermission", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None" + }, + { + "name": "StorageFileDataSmbShareReader", + "value": "StorageFileDataSmbShareReader" + }, + { + "name": "StorageFileDataSmbShareContributor", + "value": "StorageFileDataSmbShareContributor" + }, + { + "name": "StorageFileDataSmbShareElevatedContributor", + "value": "StorageFileDataSmbShareElevatedContributor" + } + ] + } + }, + "DeleteRetentionPolicy": { + "type": "object", + "description": "The service properties for soft delete.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Indicates whether DeleteRetentionPolicy is enabled." + }, + "days": { + "type": "integer", + "format": "int32", + "description": "Indicates the number of days that the deleted item should be retained. The minimum specified value can be 1 and the maximum value can be 365.", + "minimum": 1, + "maximum": 365 + }, + "allowPermanentDelete": { + "type": "boolean", + "description": "This property when set to true allows deletion of the soft deleted blob versions and snapshots. This property cannot be used blob restore policy. This property only applies to blob service and does not apply to containers or file share." + } + } + }, + "DeletedAccount": { + "type": "object", + "description": "Deleted storage account", + "properties": { + "properties": { + "$ref": "#/definitions/DeletedAccountProperties", + "description": "Properties of the deleted account.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "DeletedAccountListResult": { + "type": "object", + "description": "The response of a DeletedAccount list operation.", + "properties": { + "value": { + "type": "array", + "description": "The DeletedAccount items on this page", + "items": { + "$ref": "#/definitions/DeletedAccount" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "DeletedAccountProperties": { + "type": "object", + "description": "Attributes of a deleted storage account.", + "properties": { + "storageAccountResourceId": { + "type": "string", + "description": "Full resource id of the original storage account.", + "readOnly": true + }, + "location": { + "type": "string", + "description": "Location of the deleted account.", + "readOnly": true + }, + "restoreReference": { + "type": "string", + "description": "Can be used to attempt recovering this deleted account via PutStorageAccount API.", + "readOnly": true + }, + "creationTime": { + "type": "string", + "description": "Creation time of the deleted account.", + "readOnly": true + }, + "deletionTime": { + "type": "string", + "description": "Deletion time of the deleted account.", + "readOnly": true + } + } + }, + "DeletedShare": { + "type": "object", + "description": "The deleted share to be restored.", + "properties": { + "deletedShareName": { + "type": "string", + "description": "Required. Identify the name of the deleted share that will be restored." + }, + "deletedShareVersion": { + "type": "string", + "description": "Required. Identify the version of the deleted share that will be restored." + } + }, + "required": [ + "deletedShareName", + "deletedShareVersion" + ] + }, + "Dimension": { + "type": "object", + "description": "Dimension of blobs, possibly be blob type or access tier.", + "properties": { + "name": { + "type": "string", + "description": "Display name of dimension." + }, + "displayName": { + "type": "string", + "description": "Display name of dimension." + } + } + }, + "DirectoryServiceOptions": { + "type": "string", + "description": "Indicates the directory service used. Note that this enum may be extended in the future.", + "enum": [ + "None", + "AADDS", + "AD", + "AADKERB" + ], + "x-ms-enum": { + "name": "DirectoryServiceOptions", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None" + }, + { + "name": "AADDS", + "value": "AADDS" + }, + { + "name": "AD", + "value": "AD" + }, + { + "name": "AADKERB", + "value": "AADKERB" + } + ] + } + }, + "DnsEndpointType": { + "type": "string", + "description": "Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier.", + "enum": [ + "Standard", + "AzureDnsZone" + ], + "x-ms-enum": { + "name": "DnsEndpointType", + "modelAsString": true, + "values": [ + { + "name": "Standard", + "value": "Standard" + }, + { + "name": "AzureDnsZone", + "value": "AzureDnsZone" + } + ] + } + }, + "DualStackEndpointPreference": { + "type": "object", + "description": "Dual-stack endpoint preference defines whether IPv6 endpoints are going to be published.", + "properties": { + "publishIpv6Endpoint": { + "type": "boolean", + "description": "A boolean flag which indicates whether IPv6 storage endpoints are to be published." + } + } + }, + "EnabledProtocols": { + "type": "string", + "description": "The authentication protocol that is used for the file share. Can only be specified when creating a share.", + "enum": [ + "SMB", + "NFS" + ], + "x-ms-enum": { + "name": "EnabledProtocols", + "modelAsString": true, + "values": [ + { + "name": "SMB", + "value": "SMB" + }, + { + "name": "NFS", + "value": "NFS" + } + ] + } + }, + "Encryption": { + "type": "object", + "description": "The encryption settings on the storage account.", + "properties": { + "services": { + "$ref": "#/definitions/EncryptionServices", + "description": "List of services which support encryption." + }, + "keySource": { + "type": "string", + "description": "The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault", + "default": "Microsoft.Storage", + "enum": [ + "Microsoft.Storage", + "Microsoft.Keyvault" + ], + "x-ms-enum": { + "name": "KeySource", + "modelAsString": true, + "values": [ + { + "name": "Microsoft.Storage", + "value": "Microsoft.Storage" + }, + { + "name": "Microsoft.Keyvault", + "value": "Microsoft.Keyvault" + } + ] + } + }, + "requireInfrastructureEncryption": { + "type": "boolean", + "description": "A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest.", + "x-ms-client-name": "RequireInfrastructureEncryption" + }, + "keyvaultproperties": { + "$ref": "#/definitions/KeyVaultProperties", + "description": "Properties provided by key vault.", + "x-ms-client-name": "KeyVaultProperties" + }, + "identity": { + "$ref": "#/definitions/EncryptionIdentity", + "description": "The identity to be used with service-side encryption at rest.", + "x-ms-client-name": "EncryptionIdentity" + } + } + }, + "EncryptionIdentity": { + "type": "object", + "description": "Encryption identity for the storage account.", + "properties": { + "userAssignedIdentity": { + "type": "string", + "description": "Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account.", + "x-ms-client-name": "EncryptionUserAssignedIdentity" + }, + "federatedIdentityClientId": { + "type": "string", + "description": "ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account.", + "x-ms-client-name": "EncryptionFederatedIdentityClientId" + } + } + }, + "EncryptionInTransit": { + "type": "object", + "description": "Encryption in transit setting.", + "properties": { + "required": { + "type": "boolean", + "description": "Indicates whether encryption in transit is required" + } + } + }, + "EncryptionScope": { + "type": "object", + "description": "The Encryption Scope resource.", + "properties": { + "properties": { + "$ref": "#/definitions/EncryptionScopeProperties", + "description": "Properties of the encryption scope.", + "x-ms-client-flatten": true, + "x-ms-client-name": "EncryptionScopeProperties" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "EncryptionScopeKeyVaultProperties": { + "type": "object", + "description": "The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'.", + "properties": { + "keyUri": { + "type": "string", + "description": "The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope." + }, + "currentVersionedKeyIdentifier": { + "type": "string", + "description": "The object identifier of the current versioned Key Vault Key in use.", + "readOnly": true + }, + "lastKeyRotationTimestamp": { + "type": "string", + "format": "date-time", + "description": "Timestamp of last rotation of the Key Vault Key.", + "readOnly": true + } + } + }, + "EncryptionScopeListResult": { + "type": "object", + "description": "The response of a EncryptionScope list operation.", + "properties": { + "value": { + "type": "array", + "description": "The EncryptionScope items on this page", + "items": { + "$ref": "#/definitions/EncryptionScope" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "EncryptionScopeProperties": { + "type": "object", + "description": "Properties of the encryption scope.", + "properties": { + "source": { + "$ref": "#/definitions/EncryptionScopeSource", + "description": "The provider for the encryption scope. Possible values (case-insensitive): Microsoft.Storage, Microsoft.KeyVault." + }, + "state": { + "$ref": "#/definitions/EncryptionScopeState", + "description": "The state of the encryption scope. Possible values (case-insensitive): Enabled, Disabled." + }, + "creationTime": { + "type": "string", + "format": "date-time", + "description": "Gets the creation date and time of the encryption scope in UTC.", + "readOnly": true + }, + "lastModifiedTime": { + "type": "string", + "format": "date-time", + "description": "Gets the last modification date and time of the encryption scope in UTC.", + "readOnly": true + }, + "keyVaultProperties": { + "$ref": "#/definitions/EncryptionScopeKeyVaultProperties", + "description": "The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'." + }, + "requireInfrastructureEncryption": { + "type": "boolean", + "description": "A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest." + } + } + }, + "EncryptionScopeSource": { + "type": "string", + "description": "The provider for the encryption scope. Possible values (case-insensitive): Microsoft.Storage, Microsoft.KeyVault.", + "enum": [ + "Microsoft.Storage", + "Microsoft.KeyVault" + ], + "x-ms-enum": { + "name": "EncryptionScopeSource", + "modelAsString": true, + "values": [ + { + "name": "Microsoft.Storage", + "value": "Microsoft.Storage" + }, + { + "name": "Microsoft.KeyVault", + "value": "Microsoft.KeyVault" + } + ] + } + }, + "EncryptionScopeState": { + "type": "string", + "description": "The state of the encryption scope. Possible values (case-insensitive): Enabled, Disabled.", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "EncryptionScopeState", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled" + }, + { + "name": "Disabled", + "value": "Disabled" + } + ] + } + }, + "EncryptionService": { + "type": "object", + "description": "A service that allows server-side encryption to be used.", + "properties": { + "enabled": { + "type": "boolean", + "description": "A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled." + }, + "lastEnabledTime": { + "type": "string", + "format": "date-time", + "description": "Gets a rough estimate of the date/time when the encryption was last enabled by the user. Data is encrypted at rest by default today and cannot be disabled.", + "readOnly": true + }, + "keyType": { + "$ref": "#/definitions/KeyType", + "description": "Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used.", + "x-ms-mutability": [ + "read", + "create" + ] + } + } + }, + "EncryptionServices": { + "type": "object", + "description": "A list of services that support encryption.", + "properties": { + "blob": { + "$ref": "#/definitions/EncryptionService", + "description": "The encryption function of the blob storage service." + }, + "file": { + "$ref": "#/definitions/EncryptionService", + "description": "The encryption function of the file storage service." + }, + "table": { + "$ref": "#/definitions/EncryptionService", + "description": "The encryption function of the table storage service." + }, + "queue": { + "$ref": "#/definitions/EncryptionService", + "description": "The encryption function of the queue storage service." + } + } + }, + "Endpoints": { + "type": "object", + "description": "The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object.", + "properties": { + "blob": { + "type": "string", + "description": "Gets the blob endpoint.", + "readOnly": true + }, + "queue": { + "type": "string", + "description": "Gets the queue endpoint.", + "readOnly": true + }, + "table": { + "type": "string", + "description": "Gets the table endpoint.", + "readOnly": true + }, + "file": { + "type": "string", + "description": "Gets the file endpoint.", + "readOnly": true + }, + "web": { + "type": "string", + "description": "Gets the web endpoint.", + "readOnly": true + }, + "dfs": { + "type": "string", + "description": "Gets the dfs endpoint.", + "readOnly": true + }, + "microsoftEndpoints": { + "$ref": "#/definitions/StorageAccountMicrosoftEndpoints", + "description": "Gets the microsoft routing storage endpoints." + }, + "internetEndpoints": { + "$ref": "#/definitions/StorageAccountInternetEndpoints", + "description": "Gets the internet routing storage endpoints" + }, + "ipv6Endpoints": { + "$ref": "#/definitions/StorageAccountIpv6Endpoints", + "description": "Gets the IPv6 storage endpoints." + } + } + }, + "ErrorResponse": { + "type": "object", + "description": "An error response from the storage resource provider.", + "properties": { + "error": { + "$ref": "#/definitions/ErrorResponseBody", + "description": "Azure Storage Resource Provider error response body." + } + } + }, + "ErrorResponseBody": { + "type": "object", + "description": "Error response body contract.", + "properties": { + "code": { + "type": "string", + "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." + }, + "message": { + "type": "string", + "description": "A message describing the error, intended to be suitable for display in a user interface." + } + } + }, + "ExecutionTarget": { + "type": "object", + "description": "Target helps provide filter parameters for the objects in the storage account and forms the execution context for the storage task", + "properties": { + "prefix": { + "type": "array", + "description": "Required list of object prefixes to be included for task execution", + "items": { + "type": "string" + } + }, + "excludePrefix": { + "type": "array", + "description": "List of object prefixes to be excluded from task execution. If there is a conflict between include and exclude prefixes, the exclude prefix will be the determining factor", + "items": { + "type": "string" + } + } + } + }, + "ExecutionTrigger": { + "type": "object", + "description": "Execution trigger for storage task assignment", + "properties": { + "type": { + "$ref": "#/definitions/TriggerType", + "description": "The trigger type of the storage task assignment execution" + }, + "parameters": { + "$ref": "#/definitions/TriggerParameters", + "description": "The trigger parameters of the storage task assignment execution" + } + }, + "required": [ + "type", + "parameters" + ] + }, + "ExecutionTriggerUpdate": { + "type": "object", + "description": "Execution trigger update for storage task assignment", + "properties": { + "type": { + "$ref": "#/definitions/TriggerType", + "description": "The trigger type of the storage task assignment execution" + }, + "parameters": { + "$ref": "#/definitions/TriggerParametersUpdate", + "description": "The trigger parameters of the storage task assignment execution" + } + } + }, + "ExtendedLocation": { + "type": "object", + "description": "The complex type of the extended location.", + "properties": { + "name": { + "type": "string", + "description": "The name of the extended location." + }, + "type": { + "$ref": "#/definitions/ExtendedLocationTypes", + "description": "The type of the extended location." + } + } + }, + "ExtendedLocationTypes": { + "type": "string", + "description": "The type of extendedLocation.", + "enum": [ + "EdgeZone" + ], + "x-ms-enum": { + "name": "ExtendedLocationTypes", + "modelAsString": true, + "values": [ + { + "name": "EdgeZone", + "value": "EdgeZone" + } + ] + } + }, + "FileServiceItems": { + "type": "object", + "properties": { + "value": { + "type": "array", + "description": "List of file services returned.", + "items": { + "$ref": "#/definitions/FileServiceProperties" + }, + "readOnly": true + } + } + }, + "FileServiceProperties": { + "type": "object", + "description": "The properties of File services in storage account.", + "properties": { + "properties": { + "$ref": "#/definitions/FileServicePropertiesProperties", + "description": "The properties of File services in storage account.", + "x-ms-client-flatten": true, + "x-ms-client-name": "FileServiceProperties" + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "Sku name and tier.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "FileServicePropertiesProperties": { + "type": "object", + "description": "The properties of File services in storage account.", + "properties": { + "cors": { + "$ref": "#/definitions/CorsRules", + "description": "Specifies CORS rules for the File service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the File service." + }, + "shareDeleteRetentionPolicy": { + "$ref": "#/definitions/DeleteRetentionPolicy", + "description": "The file service properties for share soft delete." + }, + "protocolSettings": { + "$ref": "#/definitions/ProtocolSettings", + "description": "Protocol settings for file service" + } + } + }, + "FileServiceUsage": { + "type": "object", + "description": "The usage of file service in storage account.", + "properties": { + "properties": { + "$ref": "#/definitions/FileServiceUsageProperties", + "description": "File service usage in storage account including account limits, file share limits and constants used in recommendations and bursting formula." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "FileServiceUsageProperties": { + "type": "object", + "description": "File service usage in storage account including account limits, file share limits and constants used in recommendations and bursting formula.", + "properties": { + "storageAccountLimits": { + "$ref": "#/definitions/AccountLimits", + "description": "Maximum provisioned storage, IOPS, bandwidth and number of file shares limits for the storage account.", + "readOnly": true + }, + "fileShareLimits": { + "$ref": "#/definitions/FileShareLimits", + "description": "Minimum and maximum provisioned storage, IOPS and bandwidth limits for a file share in the storage account.", + "readOnly": true + }, + "fileShareRecommendations": { + "$ref": "#/definitions/FileShareRecommendations", + "description": "Constants used for calculating recommended provisioned IOPS and bandwidth for a file share in the storage account.", + "readOnly": true + }, + "burstingConstants": { + "$ref": "#/definitions/BurstingConstants", + "description": "Constants used for calculating included burst IOPS and maximum burst credits for IOPS for a file share in the storage account.", + "readOnly": true + }, + "storageAccountUsage": { + "$ref": "#/definitions/AccountUsage", + "description": "Usage of provisioned storage, IOPS, bandwidth and number of file shares across all live shares and soft-deleted shares in the account.", + "readOnly": true + } + } + }, + "FileServiceUsages": { + "type": "object", + "description": "List file service usages schema.", + "properties": { + "value": { + "type": "array", + "description": "The FileServiceUsage items on this page", + "items": { + "$ref": "#/definitions/FileServiceUsage" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "FileShare": { + "type": "object", + "description": "Properties of the file share, including Id, resource name, resource type, Etag.", + "properties": { + "properties": { + "$ref": "#/definitions/FileShareProperties", + "description": "Properties of the file share.", + "x-ms-client-flatten": true, + "x-ms-client-name": "FileShareProperties" + }, + "etag": { + "type": "string", + "description": "Resource Etag.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "FileShareItem": { + "type": "object", + "description": "The file share properties be listed out.", + "properties": { + "properties": { + "$ref": "#/definitions/FileShareProperties", + "description": "The file share properties be listed out.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureEntityResource" + } + ] + }, + "FileShareItems": { + "type": "object", + "description": "Response schema. Contains list of shares returned, and if paging is requested or required, a URL to next page of shares.", + "properties": { + "value": { + "type": "array", + "description": "The FileShareItem items on this page", + "items": { + "$ref": "#/definitions/FileShareItem" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "FileShareLimits": { + "type": "object", + "description": "Minimum and maximum provisioned storage, IOPS and bandwidth limits for a file share in the storage account.", + "properties": { + "minProvisionedStorageGiB": { + "type": "integer", + "format": "int32", + "description": "The minimum provisioned storage quota limit in gibibytes for a file share in the storage account.", + "readOnly": true + }, + "maxProvisionedStorageGiB": { + "type": "integer", + "format": "int32", + "description": "The maximum provisioned storage quota limit in gibibytes for a file share in the storage account.", + "readOnly": true + }, + "minProvisionedIOPS": { + "type": "integer", + "format": "int32", + "description": "The minimum provisioned IOPS limit for a file share in the storage account.", + "readOnly": true + }, + "maxProvisionedIOPS": { + "type": "integer", + "format": "int32", + "description": "The maximum provisioned IOPS limit for a file share in the storage account.", + "readOnly": true + }, + "minProvisionedBandwidthMiBPerSec": { + "type": "integer", + "format": "int32", + "description": "The minimum provisioned bandwidth limit in mebibytes per second for a file share in the storage account.", + "readOnly": true + }, + "maxProvisionedBandwidthMiBPerSec": { + "type": "integer", + "format": "int32", + "description": "The maximum provisioned bandwidth limit in mebibytes per second for a file share in the storage account.", + "readOnly": true + } + } + }, + "FileShareProperties": { + "type": "object", + "description": "The properties of the file share.", + "properties": { + "lastModifiedTime": { + "type": "string", + "format": "date-time", + "description": "Returns the date and time the share was last modified.", + "readOnly": true + }, + "metadata": { + "type": "object", + "description": "A name-value pair to associate with the share as metadata.", + "additionalProperties": { + "type": "string" + } + }, + "shareQuota": { + "type": "integer", + "format": "int32", + "description": "The provisioned size of the share, in gibibytes. Must be greater than 0, and less than or equal to 5TB (5120). For Large File Shares, the maximum size is 102400. For file shares created under Files Provisioned v2 account type, please refer to the GetFileServiceUsage API response for the minimum and maximum allowed provisioned storage size." + }, + "provisionedIops": { + "type": "integer", + "format": "int32", + "description": "The provisioned IOPS of the share. This property is only for file shares created under Files Provisioned v2 account type. Please refer to the GetFileServiceUsage API response for the minimum and maximum allowed value for provisioned IOPS." + }, + "provisionedBandwidthMibps": { + "type": "integer", + "format": "int32", + "description": "The provisioned bandwidth of the share, in mebibytes per second. This property is only for file shares created under Files Provisioned v2 account type. Please refer to the GetFileServiceUsage API response for the minimum and maximum allowed value for provisioned bandwidth." + }, + "includedBurstIops": { + "type": "integer", + "format": "int32", + "description": "The calculated burst IOPS of the share. This property is only for file shares created under Files Provisioned v2 account type.", + "readOnly": true + }, + "maxBurstCreditsForIops": { + "type": "integer", + "format": "int64", + "description": "The calculated maximum burst credits for the share. This property is only for file shares created under Files Provisioned v2 account type.", + "readOnly": true + }, + "nextAllowedQuotaDowngradeTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "Returns the next allowed provisioned storage size downgrade time for the share. This property is only for file shares created under Files Provisioned v1 SSD and Files Provisioned v2 account type", + "readOnly": true + }, + "nextAllowedProvisionedIopsDowngradeTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "Returns the next allowed provisioned IOPS downgrade time for the share. This property is only for file shares created under Files Provisioned v2 account type.", + "readOnly": true + }, + "nextAllowedProvisionedBandwidthDowngradeTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "Returns the next allowed provisioned bandwidth downgrade time for the share. This property is only for file shares created under Files Provisioned v2 account type.", + "readOnly": true + }, + "enabledProtocols": { + "$ref": "#/definitions/EnabledProtocols", + "description": "The authentication protocol that is used for the file share. Can only be specified when creating a share.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "rootSquash": { + "$ref": "#/definitions/RootSquashType", + "description": "The property is for NFS share only. The default is NoRootSquash." + }, + "version": { + "type": "string", + "description": "The version of the share.", + "readOnly": true + }, + "deleted": { + "type": "boolean", + "description": "Indicates whether the share was deleted.", + "readOnly": true + }, + "deletedTime": { + "type": "string", + "format": "date-time", + "description": "The deleted time if the share was deleted.", + "readOnly": true + }, + "remainingRetentionDays": { + "type": "integer", + "format": "int32", + "description": "Remaining retention days for share that was soft deleted.", + "readOnly": true + }, + "accessTier": { + "$ref": "#/definitions/ShareAccessTier", + "description": "Access tier for specific share. GpV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium." + }, + "accessTierChangeTime": { + "type": "string", + "format": "date-time", + "description": "Indicates the last modification time for share access tier.", + "readOnly": true + }, + "accessTierStatus": { + "type": "string", + "description": "Indicates if there is a pending transition for access tier.", + "readOnly": true + }, + "shareUsageBytes": { + "type": "integer", + "format": "int64", + "description": "The approximate size of the data stored on the share. Note that this value may not include all recently created or recently resized files.", + "readOnly": true + }, + "leaseStatus": { + "$ref": "#/definitions/LeaseStatus", + "description": "The lease status of the share.", + "readOnly": true + }, + "leaseState": { + "$ref": "#/definitions/LeaseState", + "description": "Lease state of the share.", + "readOnly": true + }, + "leaseDuration": { + "$ref": "#/definitions/LeaseDuration", + "description": "Specifies whether the lease on a share is of infinite or fixed duration, only when the share is leased.", + "readOnly": true + }, + "signedIdentifiers": { + "type": "array", + "description": "List of stored access policies specified on the share.", + "items": { + "$ref": "#/definitions/SignedIdentifier" + } + }, + "snapshotTime": { + "type": "string", + "format": "date-time", + "description": "Creation time of share snapshot returned in the response of list shares with expand param \"snapshots\".", + "readOnly": true + }, + "fileSharePaidBursting": { + "$ref": "#/definitions/FileSharePropertiesFileSharePaidBursting", + "description": "File Share Paid Bursting properties." + } + } + }, + "FileSharePropertiesFileSharePaidBursting": { + "type": "object", + "description": "File Share Paid Bursting properties.", + "properties": { + "paidBurstingEnabled": { + "type": "boolean", + "description": "Indicates whether paid bursting is enabled for the share. This property is only for file shares created under Files Provisioned v1 SSD account type." + }, + "paidBurstingMaxIops": { + "type": "integer", + "format": "int32", + "description": "The maximum paid bursting IOPS for the share. This property is only for file shares created under Files Provisioned v1 SSD account type. The maximum allowed value is 102400 which is the maximum allowed IOPS for a share." + }, + "paidBurstingMaxBandwidthMibps": { + "type": "integer", + "format": "int32", + "description": "The maximum paid bursting bandwidth for the share, in mebibytes per second. This property is only for file shares created under Files Provisioned v1 SSD account type. The maximum allowed value is 10340 which is the maximum allowed bandwidth for a share." + } + } + }, + "FileShareRecommendations": { + "type": "object", + "description": "Constants used for calculating recommended provisioned IOPS and bandwidth for a file share in the storage account.", + "properties": { + "baseIOPS": { + "type": "integer", + "format": "int32", + "description": "The base IOPS in the file share provisioned IOPS recommendation formula.", + "readOnly": true + }, + "ioScalar": { + "type": "number", + "format": "double", + "description": "The scalar for IO in the file share provisioned IOPS recommendation formula.", + "readOnly": true + }, + "baseBandwidthMiBPerSec": { + "type": "integer", + "format": "int32", + "description": "The base bandwidth in the file share provisioned bandwidth recommendation formula.", + "readOnly": true + }, + "bandwidthScalar": { + "type": "number", + "format": "double", + "description": "The scalar for bandwidth in the file share provisioned bandwidth recommendation formula.", + "readOnly": true + } + } + }, + "Format": { + "type": "string", + "description": "This is a required field, it specifies the format for the inventory files.", + "enum": [ + "Csv", + "Parquet" + ], + "x-ms-enum": { + "name": "Format", + "modelAsString": true, + "values": [ + { + "name": "Csv", + "value": "Csv" + }, + { + "name": "Parquet", + "value": "Parquet" + } + ] + } + }, + "GeoPriorityReplicationStatus": { + "type": "object", + "description": "Geo Priority Replication enablement status for the storage account.", + "properties": { + "isBlobEnabled": { + "type": "boolean", + "description": "Indicates whether Blob Geo Priority Replication is enabled for the storage account." + } + } + }, + "GeoReplicationStats": { + "type": "object", + "description": "Statistics related to replication for storage account's Blob, Table, Queue and File services. It is only available when geo-redundant replication is enabled for the storage account.", + "properties": { + "status": { + "$ref": "#/definitions/GeoReplicationStatus", + "description": "The status of the secondary location. Possible values are: - Live: Indicates that the secondary location is active and operational. - Bootstrap: Indicates initial synchronization from the primary location to the secondary location is in progress.This typically occurs when replication is first enabled. - Unavailable: Indicates that the secondary location is temporarily unavailable.", + "readOnly": true + }, + "lastSyncTime": { + "type": "string", + "format": "date-time", + "description": "All primary writes preceding this UTC date/time value are guaranteed to be available for read operations. Primary writes following this point in time may or may not be available for reads. Element may be default value if value of LastSyncTime is not available, this can happen if secondary is offline or we are in bootstrap.", + "readOnly": true + }, + "canFailover": { + "type": "boolean", + "description": "A boolean flag which indicates whether or not account failover is supported for the account.", + "readOnly": true + }, + "canPlannedFailover": { + "type": "boolean", + "description": "A boolean flag which indicates whether or not planned account failover is supported for the account.", + "readOnly": true + }, + "postFailoverRedundancy": { + "$ref": "#/definitions/PostFailoverRedundancy", + "description": "The redundancy type of the account after an account failover is performed.", + "readOnly": true + }, + "postPlannedFailoverRedundancy": { + "$ref": "#/definitions/PostPlannedFailoverRedundancy", + "description": "The redundancy type of the account after a planned account failover is performed.", + "readOnly": true + } + } + }, + "GeoReplicationStatus": { + "type": "string", + "description": "The status of the secondary location. Possible values are: - Live: Indicates that the secondary location is active and operational. - Bootstrap: Indicates initial synchronization from the primary location to the secondary location is in progress.This typically occurs when replication is first enabled. - Unavailable: Indicates that the secondary location is temporarily unavailable.", + "enum": [ + "Live", + "Bootstrap", + "Unavailable" + ], + "x-ms-enum": { + "name": "GeoReplicationStatus", + "modelAsString": true, + "values": [ + { + "name": "Live", + "value": "Live" + }, + { + "name": "Bootstrap", + "value": "Bootstrap" + }, + { + "name": "Unavailable", + "value": "Unavailable" + } + ] + } + }, + "HttpProtocol": { + "type": "string", + "description": "The protocol permitted for a request made with the account SAS.", + "enum": [ + "https,http", + "https" + ], + "x-ms-enum": { + "name": "HttpProtocol", + "modelAsString": false + } + }, + "IPRule": { + "type": "object", + "description": "IP rule with specific IP or IP range in CIDR format.", + "properties": { + "value": { + "type": "string", + "description": "Specifies the IP or IP range in CIDR format.", + "x-ms-client-name": "IPAddressOrRange" + }, + "action": { + "type": "string", + "description": "The action of IP ACL rule.", + "enum": [ + "Allow" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "value" + ] + }, + "Identity": { + "type": "object", + "description": "Identity for the resource.", + "properties": { + "principalId": { + "type": "string", + "description": "The principal ID of resource identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "description": "The tenant ID of resource.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/IdentityType", + "description": "The identity type." + }, + "userAssignedIdentities": { + "type": "object", + "description": "Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentity" + } + } + }, + "required": [ + "type" + ] + }, + "IdentityType": { + "type": "string", + "description": "The identity type.", + "enum": [ + "None", + "SystemAssigned", + "UserAssigned", + "SystemAssigned,UserAssigned" + ], + "x-ms-enum": { + "name": "IdentityType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None" + }, + { + "name": "SystemAssigned", + "value": "SystemAssigned" + }, + { + "name": "UserAssigned", + "value": "UserAssigned" + }, + { + "name": "SystemAssigned,UserAssigned", + "value": "SystemAssigned,UserAssigned" + } + ] + } + }, + "ImmutabilityPolicy": { + "type": "object", + "description": "The ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.", + "properties": { + "properties": { + "$ref": "#/definitions/ImmutabilityPolicyProperty", + "description": "The properties of an ImmutabilityPolicy of a blob container.", + "x-ms-client-flatten": true + }, + "etag": { + "type": "string", + "description": "Resource Etag.", + "readOnly": true + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "ImmutabilityPolicyProperties": { + "type": "object", + "description": "The properties of an ImmutabilityPolicy of a blob container.", + "properties": { + "properties": { + "$ref": "#/definitions/ImmutabilityPolicyProperty", + "description": "The properties of an ImmutabilityPolicy of a blob container.", + "x-ms-client-flatten": true + }, + "etag": { + "type": "string", + "description": "ImmutabilityPolicy Etag.", + "readOnly": true + }, + "updateHistory": { + "type": "array", + "description": "The ImmutabilityPolicy update history of the blob container.", + "items": { + "$ref": "#/definitions/UpdateHistoryProperty" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "ImmutabilityPolicyProperty": { + "type": "object", + "description": "The properties of an ImmutabilityPolicy of a blob container.", + "properties": { + "immutabilityPeriodSinceCreationInDays": { + "type": "integer", + "format": "int32", + "description": "The immutability period for the blobs in the container since the policy creation, in days." + }, + "state": { + "$ref": "#/definitions/ImmutabilityPolicyState", + "description": "The ImmutabilityPolicy state of a blob container, possible values include: Locked and Unlocked.", + "readOnly": true + }, + "allowProtectedAppendWrites": { + "type": "boolean", + "description": "This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API." + }, + "allowProtectedAppendWritesAll": { + "type": "boolean", + "description": "This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive." + } + } + }, + "ImmutabilityPolicyState": { + "type": "string", + "description": "The ImmutabilityPolicy state of a blob container, possible values include: Locked and Unlocked.", + "enum": [ + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "ImmutabilityPolicyState", + "modelAsString": true, + "values": [ + { + "name": "Locked", + "value": "Locked" + }, + { + "name": "Unlocked", + "value": "Unlocked" + } + ] + } + }, + "ImmutabilityPolicyUpdateType": { + "type": "string", + "description": "The ImmutabilityPolicy update type of a blob container, possible values include: put, lock and extend.", + "enum": [ + "put", + "lock", + "extend" + ], + "x-ms-enum": { + "name": "ImmutabilityPolicyUpdateType", + "modelAsString": true, + "values": [ + { + "name": "put", + "value": "put" + }, + { + "name": "lock", + "value": "lock" + }, + { + "name": "extend", + "value": "extend" + } + ] + } + }, + "ImmutableStorageAccount": { + "type": "object", + "description": "This property enables and defines account-level immutability. Enabling the feature auto-enables Blob Versioning.", + "properties": { + "enabled": { + "type": "boolean", + "description": "A boolean flag which enables account-level immutability. All the containers under such an account have object-level immutability enabled by default." + }, + "immutabilityPolicy": { + "$ref": "#/definitions/AccountImmutabilityPolicyProperties", + "description": "Specifies the default account-level immutability policy which is inherited and applied to objects that do not possess an explicit immutability policy at the object level. The object-level immutability policy has higher precedence than the container-level immutability policy, which has a higher precedence than the account-level immutability policy." + } + } + }, + "ImmutableStorageWithVersioning": { + "type": "object", + "description": "Object level immutability properties of the container.", + "properties": { + "enabled": { + "type": "boolean", + "description": "This is an immutable property, when set to true it enables object level immutability at the container level." + }, + "timeStamp": { + "type": "string", + "format": "date-time", + "description": "Returns the date and time the object level immutability was enabled.", + "readOnly": true + }, + "migrationState": { + "$ref": "#/definitions/MigrationState", + "description": "This property denotes the container level immutability to object level immutability migration state.", + "readOnly": true + } + } + }, + "IntervalUnit": { + "type": "string", + "description": "Run interval unit of task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'", + "enum": [ + "Days" + ], + "x-ms-enum": { + "name": "IntervalUnit", + "modelAsString": true, + "values": [ + { + "name": "days", + "value": "Days" + } + ] + } + }, + "InventoryRuleType": { + "type": "string", + "description": "The valid value is Inventory", + "enum": [ + "Inventory" + ], + "x-ms-enum": { + "name": "InventoryRuleType", + "modelAsString": true, + "values": [ + { + "name": "Inventory", + "value": "Inventory" + } + ] + } + }, + "IssueType": { + "type": "string", + "description": "Type of issue", + "enum": [ + "Unknown", + "ConfigurationPropagationFailure" + ], + "x-ms-enum": { + "name": "IssueType", + "modelAsString": true, + "values": [ + { + "name": "Unknown", + "value": "Unknown" + }, + { + "name": "ConfigurationPropagationFailure", + "value": "ConfigurationPropagationFailure" + } + ] + } + }, + "KeyCreationTime": { + "type": "object", + "description": "Storage account keys creation time.", + "properties": { + "key1": { + "type": "string", + "format": "date-time" + }, + "key2": { + "type": "string", + "format": "date-time" + } + } + }, + "KeyPermission": { + "type": "string", + "description": "Permissions for the key -- read-only or full permissions.", + "enum": [ + "Read", + "Full" + ], + "x-ms-enum": { + "name": "KeyPermission", + "modelAsString": false + } + }, + "KeyPolicy": { + "type": "object", + "description": "KeyPolicy assigned to the storage account.", + "properties": { + "keyExpirationPeriodInDays": { + "type": "integer", + "format": "int32", + "description": "The key expiration period in days." + } + }, + "required": [ + "keyExpirationPeriodInDays" + ] + }, + "KeyType": { + "type": "string", + "description": "Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used.", + "enum": [ + "Service", + "Account" + ], + "x-ms-enum": { + "name": "KeyType", + "modelAsString": true, + "values": [ + { + "name": "Service", + "value": "Service" + }, + { + "name": "Account", + "value": "Account" + } + ] + } + }, + "KeyVaultProperties": { + "type": "object", + "description": "Properties of key vault.", + "properties": { + "keyname": { + "type": "string", + "description": "The name of KeyVault key.", + "x-ms-client-name": "KeyName" + }, + "keyversion": { + "type": "string", + "description": "The version of KeyVault key.", + "x-ms-client-name": "KeyVersion" + }, + "keyvaulturi": { + "type": "string", + "description": "The Uri of KeyVault.", + "x-ms-client-name": "KeyVaultUri" + }, + "currentVersionedKeyIdentifier": { + "type": "string", + "description": "The object identifier of the current versioned Key Vault Key in use.", + "readOnly": true, + "x-ms-client-name": "CurrentVersionedKeyIdentifier" + }, + "lastKeyRotationTimestamp": { + "type": "string", + "format": "date-time", + "description": "Timestamp of last rotation of the Key Vault Key.", + "readOnly": true, + "x-ms-client-name": "LastKeyRotationTimestamp" + }, + "currentVersionedKeyExpirationTimestamp": { + "type": "string", + "format": "date-time", + "description": "This is a read only property that represents the expiration time of the current version of the customer managed key used for encryption.", + "readOnly": true, + "x-ms-client-name": "CurrentVersionedKeyExpirationTimestamp" + } + } + }, + "Kind": { + "type": "string", + "description": "Indicates the type of storage account.", + "enum": [ + "Storage", + "StorageV2", + "BlobStorage", + "FileStorage", + "BlockBlobStorage" + ], + "x-ms-enum": { + "name": "Kind", + "modelAsString": true, + "values": [ + { + "name": "Storage", + "value": "Storage" + }, + { + "name": "StorageV2", + "value": "StorageV2" + }, + { + "name": "BlobStorage", + "value": "BlobStorage" + }, + { + "name": "FileStorage", + "value": "FileStorage" + }, + { + "name": "BlockBlobStorage", + "value": "BlockBlobStorage" + } + ] + } + }, + "LargeFileSharesState": { + "type": "string", + "description": "Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled.", + "enum": [ + "Disabled", + "Enabled" + ], + "x-ms-enum": { + "name": "LargeFileSharesState", + "modelAsString": true, + "values": [ + { + "name": "Disabled", + "value": "Disabled" + }, + { + "name": "Enabled", + "value": "Enabled" + } + ] + } + }, + "LastAccessTimeTrackingPolicy": { + "type": "object", + "description": "The blob service properties for Last access time based tracking policy.", + "properties": { + "enable": { + "type": "boolean", + "description": "When set to true last access time based tracking is enabled." + }, + "name": { + "$ref": "#/definitions/Name", + "description": "Name of the policy. The valid value is AccessTimeTracking. This field is currently read only" + }, + "trackingGranularityInDays": { + "type": "integer", + "format": "int32", + "description": "The field specifies blob object tracking granularity in days, typically how often the blob object should be tracked.This field is currently read only with value as 1" + }, + "blobType": { + "type": "array", + "description": "An array of predefined supported blob types. Only blockBlob is the supported value. This field is currently read only", + "items": { + "type": "string" + } + } + }, + "required": [ + "enable" + ] + }, + "LeaseContainerRequest": { + "type": "object", + "description": "Lease Container request schema.", + "properties": { + "action": { + "$ref": "#/definitions/LeaseContainerRequestAction", + "description": "Specifies the lease action. Can be one of the available actions." + }, + "leaseId": { + "type": "string", + "description": "Identifies the lease. Can be specified in any valid GUID string format." + }, + "breakPeriod": { + "type": "integer", + "format": "int32", + "description": "Optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60." + }, + "leaseDuration": { + "type": "integer", + "format": "int32", + "description": "Required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires." + }, + "proposedLeaseId": { + "type": "string", + "description": "Optional for acquire, required for change. Proposed lease ID, in a GUID string format." + } + }, + "required": [ + "action" + ] + }, + "LeaseContainerRequestAction": { + "type": "string", + "description": "Specifies the lease action. Can be one of the available actions.", + "enum": [ + "Acquire", + "Renew", + "Change", + "Release", + "Break" + ], + "x-ms-enum": { + "name": "LeaseContainerRequestAction", + "modelAsString": true, + "values": [ + { + "name": "Acquire", + "value": "Acquire" + }, + { + "name": "Renew", + "value": "Renew" + }, + { + "name": "Change", + "value": "Change" + }, + { + "name": "Release", + "value": "Release" + }, + { + "name": "Break", + "value": "Break" + } + ] + } + }, + "LeaseContainerResponse": { + "type": "object", + "description": "Lease Container response schema.", + "properties": { + "leaseId": { + "type": "string", + "description": "Returned unique lease ID that must be included with any request to delete the container, or to renew, change, or release the lease." + }, + "leaseTimeSeconds": { + "type": "string", + "description": "Approximate time remaining in the lease period, in seconds." + } + } + }, + "LeaseDuration": { + "type": "string", + "description": "Specifies whether the lease on a container is of infinite or fixed duration, only when the container is leased.", + "enum": [ + "Infinite", + "Fixed" + ], + "x-ms-enum": { + "name": "LeaseDuration", + "modelAsString": true, + "values": [ + { + "name": "Infinite", + "value": "Infinite" + }, + { + "name": "Fixed", + "value": "Fixed" + } + ] + } + }, + "LeaseShareAction": { + "type": "string", + "description": "Specifies the lease action. Can be one of the available actions.", + "enum": [ + "Acquire", + "Renew", + "Change", + "Release", + "Break" + ], + "x-ms-enum": { + "name": "LeaseShareAction", + "modelAsString": true, + "values": [ + { + "name": "Acquire", + "value": "Acquire" + }, + { + "name": "Renew", + "value": "Renew" + }, + { + "name": "Change", + "value": "Change" + }, + { + "name": "Release", + "value": "Release" + }, + { + "name": "Break", + "value": "Break" + } + ] + } + }, + "LeaseShareRequest": { + "type": "object", + "description": "Lease Share request schema.", + "properties": { + "action": { + "$ref": "#/definitions/LeaseShareAction", + "description": "Specifies the lease action. Can be one of the available actions." + }, + "leaseId": { + "type": "string", + "description": "Identifies the lease. Can be specified in any valid GUID string format." + }, + "breakPeriod": { + "type": "integer", + "format": "int32", + "description": "Optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60." + }, + "leaseDuration": { + "type": "integer", + "format": "int32", + "description": "Required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires." + }, + "proposedLeaseId": { + "type": "string", + "description": "Optional for acquire, required for change. Proposed lease ID, in a GUID string format." + } + }, + "required": [ + "action" + ] + }, + "LeaseShareResponse": { + "type": "object", + "description": "Lease Share response schema.", + "properties": { + "leaseId": { + "type": "string", + "description": "Returned unique lease ID that must be included with any request to delete the share, or to renew, change, or release the lease." + }, + "leaseTimeSeconds": { + "type": "string", + "description": "Approximate time remaining in the lease period, in seconds." + } + } + }, + "LeaseState": { + "type": "string", + "description": "Lease state of the container.", + "enum": [ + "Available", + "Leased", + "Expired", + "Breaking", + "Broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": true, + "values": [ + { + "name": "Available", + "value": "Available" + }, + { + "name": "Leased", + "value": "Leased" + }, + { + "name": "Expired", + "value": "Expired" + }, + { + "name": "Breaking", + "value": "Breaking" + }, + { + "name": "Broken", + "value": "Broken" + } + ] + } + }, + "LeaseStatus": { + "type": "string", + "description": "The lease status of the container.", + "enum": [ + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": true, + "values": [ + { + "name": "Locked", + "value": "Locked" + }, + { + "name": "Unlocked", + "value": "Unlocked" + } + ] + } + }, + "LegalHold": { + "type": "object", + "description": "The LegalHold property of a blob container.", + "properties": { + "hasLegalHold": { + "type": "boolean", + "description": "The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account.", + "readOnly": true + }, + "tags": { + "type": "array", + "description": "Each tag should be 3 to 23 alphanumeric characters and is normalized to lower case at SRP.", + "items": { + "$ref": "#/definitions/LimitedString" + } + }, + "allowProtectedAppendWritesAll": { + "type": "boolean", + "description": "When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining legal hold protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted." + } + }, + "required": [ + "tags" + ] + }, + "LegalHoldProperties": { + "type": "object", + "description": "The LegalHold property of a blob container.", + "properties": { + "hasLegalHold": { + "type": "boolean", + "description": "The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account.", + "readOnly": true + }, + "tags": { + "type": "array", + "description": "The list of LegalHold tags of a blob container.", + "items": { + "$ref": "#/definitions/TagProperty" + }, + "x-ms-identifiers": [] + }, + "protectedAppendWritesHistory": { + "$ref": "#/definitions/ProtectedAppendWritesHistory", + "description": "Protected append blob writes history." + } + } + }, + "LimitedString": { + "type": "string", + "minLength": 3, + "maxLength": 23 + }, + "ListAccountSasResponse": { + "type": "object", + "description": "The List SAS credentials operation response.", + "properties": { + "accountSasToken": { + "type": "string", + "description": "List SAS credentials of storage account.", + "readOnly": true + } + } + }, + "ListBlobInventoryPolicy": { + "type": "object", + "description": "List of blob inventory policies returned.", + "properties": { + "value": { + "type": "array", + "description": "List of blob inventory policies.", + "items": { + "$ref": "#/definitions/BlobInventoryPolicy" + }, + "readOnly": true + }, + "nextLink": { + "type": "string" + } + } + }, + "ListContainerItem": { + "type": "object", + "description": "The blob container properties be listed out.", + "properties": { + "properties": { + "$ref": "#/definitions/ContainerProperties", + "description": "The blob container properties be listed out.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureEntityResource" + } + ] + }, + "ListContainerItems": { + "type": "object", + "description": "Response schema. Contains list of blobs returned, and if paging is requested or required, a URL to next page of containers.", + "properties": { + "value": { + "type": "array", + "description": "The ListContainerItem items on this page", + "items": { + "$ref": "#/definitions/ListContainerItem" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ListQueue": { + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/ListQueueProperties", + "description": "List Queue resource properties.", + "x-ms-client-flatten": true, + "x-ms-client-name": "QueueProperties" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Resource" + } + ] + }, + "ListQueueProperties": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "description": "A name-value pair that represents queue metadata.", + "additionalProperties": { + "type": "string" + } + } + } + }, + "ListQueueResource": { + "type": "object", + "description": "Response schema. Contains list of queues returned", + "properties": { + "value": { + "type": "array", + "description": "The ListQueue items on this page", + "items": { + "$ref": "#/definitions/ListQueue" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ListQueueServices": { + "type": "object", + "properties": { + "value": { + "type": "array", + "description": "List of queue services returned.", + "items": { + "$ref": "#/definitions/QueueServiceProperties" + }, + "readOnly": true + } + } + }, + "ListServiceSasResponse": { + "type": "object", + "description": "The List service SAS credentials operation response.", + "properties": { + "serviceSasToken": { + "type": "string", + "description": "List service SAS credentials of specific resource.", + "readOnly": true + } + } + }, + "ListTableResource": { + "type": "object", + "description": "Response schema. Contains list of tables returned", + "properties": { + "value": { + "type": "array", + "description": "The Table items on this page", + "items": { + "$ref": "#/definitions/Table" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ListTableServices": { + "type": "object", + "properties": { + "value": { + "type": "array", + "description": "List of table services returned.", + "items": { + "$ref": "#/definitions/TableServiceProperties" + }, + "readOnly": true + } + } + }, + "LocalUser": { + "type": "object", + "description": "The local user associated with the storage accounts.", + "properties": { + "properties": { + "$ref": "#/definitions/LocalUserProperties", + "description": "Storage account local user properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "LocalUserKeys": { + "type": "object", + "description": "The Storage Account Local User keys.", + "properties": { + "sshAuthorizedKeys": { + "type": "array", + "description": "Optional, local user ssh authorized keys for SFTP.", + "items": { + "$ref": "#/definitions/SshPublicKey" + }, + "x-ms-identifiers": [] + }, + "sharedKey": { + "type": "string", + "format": "password", + "description": "Auto generated by the server for SMB authentication.", + "readOnly": true, + "x-ms-secret": true + } + } + }, + "LocalUserProperties": { + "type": "object", + "description": "The Storage Account Local User properties.", + "properties": { + "permissionScopes": { + "type": "array", + "description": "The permission scopes of the local user.", + "items": { + "$ref": "#/definitions/PermissionScope" + }, + "x-ms-identifiers": [] + }, + "homeDirectory": { + "type": "string", + "description": "Optional, local user home directory." + }, + "sshAuthorizedKeys": { + "type": "array", + "description": "Optional, local user ssh authorized keys for SFTP.", + "items": { + "$ref": "#/definitions/SshPublicKey" + }, + "x-ms-identifiers": [] + }, + "sid": { + "type": "string", + "description": "A unique Security Identifier that is generated by the server.", + "readOnly": true + }, + "hasSharedKey": { + "type": "boolean", + "description": "Indicates whether shared key exists. Set it to false to remove existing shared key." + }, + "hasSshKey": { + "type": "boolean", + "description": "Indicates whether ssh key exists. Set it to false to remove existing SSH key." + }, + "hasSshPassword": { + "type": "boolean", + "description": "Indicates whether ssh password exists. Set it to false to remove existing SSH password." + }, + "userId": { + "type": "integer", + "format": "int32", + "description": "A unique Identifier that is generated by the server.", + "readOnly": true + }, + "groupId": { + "type": "integer", + "format": "int32", + "description": "An identifier for associating a group of users." + }, + "allowAclAuthorization": { + "type": "boolean", + "description": "Indicates whether ACL authorization is allowed for this user. Set it to false to disallow using ACL authorization." + }, + "extendedGroups": { + "type": "array", + "description": "Supplementary group membership. Only applicable for local users enabled for NFSv3 access.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "isNFSv3Enabled": { + "type": "boolean", + "description": "Indicates if the local user is enabled for access with NFSv3 protocol." + } + } + }, + "LocalUserRegeneratePasswordResult": { + "type": "object", + "description": "The secrets of Storage Account Local User.", + "properties": { + "sshPassword": { + "type": "string", + "format": "password", + "description": "Auto generated password by the server for SSH authentication if hasSshPassword is set to true on the creation of local user.", + "readOnly": true, + "x-ms-secret": true + } + } + }, + "LocalUsers": { + "type": "object", + "description": "List of local users requested, and if paging is required, a URL to the next page of local users.", + "properties": { + "value": { + "type": "array", + "description": "The LocalUser items on this page", + "items": { + "$ref": "#/definitions/LocalUser" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ManagementPolicy": { + "type": "object", + "description": "The Get Storage Account ManagementPolicies operation response.", + "properties": { + "properties": { + "$ref": "#/definitions/ManagementPolicyProperties", + "description": "Returns the Storage Account Data Policies Rules.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "ManagementPolicyAction": { + "type": "object", + "description": "Actions are applied to the filtered blobs when the execution condition is met.", + "properties": { + "baseBlob": { + "$ref": "#/definitions/ManagementPolicyBaseBlob", + "description": "The management policy action for base blob" + }, + "snapshot": { + "$ref": "#/definitions/ManagementPolicySnapShot", + "description": "The management policy action for snapshot" + }, + "version": { + "$ref": "#/definitions/ManagementPolicyVersion", + "description": "The management policy action for version" + } + } + }, + "ManagementPolicyBaseBlob": { + "type": "object", + "description": "Management policy action for base blob.", + "properties": { + "tierToCool": { + "$ref": "#/definitions/DateAfterModification", + "description": "The function to tier blobs to cool storage." + }, + "tierToArchive": { + "$ref": "#/definitions/DateAfterModification", + "description": "The function to tier blobs to archive storage." + }, + "tierToCold": { + "$ref": "#/definitions/DateAfterModification", + "description": "The function to tier blobs to cold storage." + }, + "tierToHot": { + "$ref": "#/definitions/DateAfterModification", + "description": "The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts" + }, + "delete": { + "$ref": "#/definitions/DateAfterModification", + "description": "The function to delete the blob" + }, + "enableAutoTierToHotFromCool": { + "type": "boolean", + "description": "This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan." + } + } + }, + "ManagementPolicyDefinition": { + "type": "object", + "description": "An object that defines the Lifecycle rule. Each definition is made up with a filters set and an actions set.", + "properties": { + "actions": { + "$ref": "#/definitions/ManagementPolicyAction", + "description": "An object that defines the action set." + }, + "filters": { + "$ref": "#/definitions/ManagementPolicyFilter", + "description": "An object that defines the filter set." + } + }, + "required": [ + "actions" + ] + }, + "ManagementPolicyFilter": { + "type": "object", + "description": "Filters limit rule actions to a subset of blobs within the storage account. If multiple filters are defined, a logical AND is performed on all filters.", + "properties": { + "prefixMatch": { + "type": "array", + "description": "An array of strings for prefixes to be match.", + "items": { + "type": "string" + } + }, + "blobTypes": { + "type": "array", + "description": "An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob.", + "items": { + "type": "string" + } + }, + "blobIndexMatch": { + "type": "array", + "description": "An array of blob index tag based filters, there can be at most 10 tag filters", + "items": { + "$ref": "#/definitions/TagFilter" + } + } + }, + "required": [ + "blobTypes" + ] + }, + "ManagementPolicyProperties": { + "type": "object", + "description": "The Storage Account ManagementPolicy properties.", + "properties": { + "lastModifiedTime": { + "type": "string", + "format": "date-time", + "description": "Returns the date and time the ManagementPolicies was last modified.", + "readOnly": true + }, + "policy": { + "$ref": "#/definitions/ManagementPolicySchema", + "description": "The Storage Account ManagementPolicy, in JSON format. See more details in: https://learn.microsoft.com/azure/storage/blobs/lifecycle-management-overview." + } + }, + "required": [ + "policy" + ] + }, + "ManagementPolicyRule": { + "type": "object", + "description": "An object that wraps the Lifecycle rule. Each rule is uniquely defined by name.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Rule is enabled if set to true." + }, + "name": { + "type": "string", + "description": "A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy." + }, + "type": { + "$ref": "#/definitions/RuleType", + "description": "The valid value is Lifecycle" + }, + "definition": { + "$ref": "#/definitions/ManagementPolicyDefinition", + "description": "An object that defines the Lifecycle rule." + } + }, + "required": [ + "name", + "type", + "definition" + ] + }, + "ManagementPolicySchema": { + "type": "object", + "description": "The Storage Account ManagementPolicies Rules. See more details in: https://learn.microsoft.com/azure/storage/blobs/lifecycle-management-overview.", + "properties": { + "rules": { + "type": "array", + "description": "The Storage Account ManagementPolicies Rules. See more details in: https://learn.microsoft.com/azure/storage/blobs/lifecycle-management-overview.", + "items": { + "$ref": "#/definitions/ManagementPolicyRule" + } + } + }, + "required": [ + "rules" + ] + }, + "ManagementPolicySnapShot": { + "type": "object", + "description": "Management policy action for snapshot.", + "properties": { + "tierToCool": { + "$ref": "#/definitions/DateAfterCreation", + "description": "The function to tier blob snapshot to cool storage." + }, + "tierToArchive": { + "$ref": "#/definitions/DateAfterCreation", + "description": "The function to tier blob snapshot to archive storage." + }, + "tierToCold": { + "$ref": "#/definitions/DateAfterCreation", + "description": "The function to tier blobs to cold storage." + }, + "tierToHot": { + "$ref": "#/definitions/DateAfterCreation", + "description": "The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts" + }, + "delete": { + "$ref": "#/definitions/DateAfterCreation", + "description": "The function to delete the blob snapshot" + } + } + }, + "ManagementPolicyVersion": { + "type": "object", + "description": "Management policy action for blob version.", + "properties": { + "tierToCool": { + "$ref": "#/definitions/DateAfterCreation", + "description": "The function to tier blob version to cool storage." + }, + "tierToArchive": { + "$ref": "#/definitions/DateAfterCreation", + "description": "The function to tier blob version to archive storage." + }, + "tierToCold": { + "$ref": "#/definitions/DateAfterCreation", + "description": "The function to tier blobs to cold storage." + }, + "tierToHot": { + "$ref": "#/definitions/DateAfterCreation", + "description": "The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts" + }, + "delete": { + "$ref": "#/definitions/DateAfterCreation", + "description": "The function to delete the blob version" + } + } + }, + "MetricSpecification": { + "type": "object", + "description": "Metric specification of operation.", + "properties": { + "name": { + "type": "string", + "description": "Name of metric specification." + }, + "displayName": { + "type": "string", + "description": "Display name of metric specification." + }, + "displayDescription": { + "type": "string", + "description": "Display description of metric specification." + }, + "unit": { + "type": "string", + "description": "Unit could be Bytes or Count." + }, + "dimensions": { + "type": "array", + "description": "Dimensions of blobs, including blob type and access tier.", + "items": { + "$ref": "#/definitions/Dimension" + } + }, + "aggregationType": { + "type": "string", + "description": "Aggregation type could be Average." + }, + "fillGapWithZero": { + "type": "boolean", + "description": "The property to decide fill gap with zero or not." + }, + "category": { + "type": "string", + "description": "The category this metric specification belong to, could be Capacity." + }, + "resourceIdDimensionNameOverride": { + "type": "string", + "description": "Account Resource Id." + } + } + }, + "MigrationState": { + "type": "string", + "description": "This property denotes the container level immutability to object level immutability migration state.", + "enum": [ + "InProgress", + "Completed" + ], + "x-ms-enum": { + "name": "MigrationState", + "modelAsString": true, + "values": [ + { + "name": "InProgress", + "value": "InProgress" + }, + { + "name": "Completed", + "value": "Completed" + } + ] + } + }, + "MinimumTlsVersion": { + "type": "string", + "description": "Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property.", + "enum": [ + "TLS1_0", + "TLS1_1", + "TLS1_2", + "TLS1_3" + ], + "x-ms-enum": { + "name": "MinimumTlsVersion", + "modelAsString": true, + "values": [ + { + "name": "TLS1_0", + "value": "TLS1_0" + }, + { + "name": "TLS1_1", + "value": "TLS1_1" + }, + { + "name": "TLS1_2", + "value": "TLS1_2" + }, + { + "name": "TLS1_3", + "value": "TLS1_3" + } + ] + } + }, + "Multichannel": { + "type": "object", + "description": "Multichannel setting. Applies to Premium FileStorage only.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Indicates whether multichannel is enabled" + } + } + }, + "Name": { + "type": "string", + "description": "Name of the policy. The valid value is AccessTimeTracking. This field is currently read only", + "enum": [ + "AccessTimeTracking" + ], + "x-ms-enum": { + "name": "Name", + "modelAsString": true, + "values": [ + { + "name": "AccessTimeTracking", + "value": "AccessTimeTracking" + } + ] + } + }, + "NetworkRuleSet": { + "type": "object", + "description": "Network rule set", + "properties": { + "bypass": { + "type": "string", + "description": "Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, \"Logging, Metrics\"), or None to bypass none of those traffics.", + "default": "AzureServices", + "enum": [ + "None", + "Logging", + "Metrics", + "AzureServices" + ], + "x-ms-enum": { + "name": "Bypass", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None" + }, + { + "name": "Logging", + "value": "Logging" + }, + { + "name": "Metrics", + "value": "Metrics" + }, + { + "name": "AzureServices", + "value": "AzureServices" + } + ] + }, + "x-ms-client-name": "Bypass" + }, + "resourceAccessRules": { + "type": "array", + "description": "Sets the resource access rules", + "items": { + "$ref": "#/definitions/ResourceAccessRule" + }, + "x-ms-identifiers": [] + }, + "virtualNetworkRules": { + "type": "array", + "description": "Sets the virtual network rules", + "items": { + "$ref": "#/definitions/VirtualNetworkRule" + } + }, + "ipRules": { + "type": "array", + "description": "Sets the IP ACL rules", + "items": { + "$ref": "#/definitions/IPRule" + }, + "x-ms-identifiers": [] + }, + "ipv6Rules": { + "type": "array", + "description": "Sets the IPv6 ACL rules.", + "items": { + "$ref": "#/definitions/IPRule" + }, + "x-ms-identifiers": [] + }, + "defaultAction": { + "type": "string", + "description": "Specifies the default action of allow or deny when no other rules match.", + "default": "Allow", + "enum": [ + "Allow", + "Deny" + ], + "x-ms-enum": { + "name": "DefaultAction", + "modelAsString": false + } + } + }, + "required": [ + "defaultAction" + ] + }, + "NetworkSecurityPerimeter": { + "type": "object", + "description": "NetworkSecurityPerimeter related information", + "properties": { + "id": { + "type": "string", + "description": "The ARM identifier of the resource" + }, + "perimeterGuid": { + "type": "string", + "description": "Guid of the resource" + }, + "location": { + "type": "string", + "description": "Location of the resource", + "x-ms-mutability": [ + "read", + "create" + ] + } + } + }, + "NetworkSecurityPerimeterConfiguration": { + "type": "object", + "description": "The Network Security Perimeter configuration resource.", + "properties": { + "properties": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfigurationProperties", + "description": "Properties of the Network Security Perimeter Configuration", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "NetworkSecurityPerimeterConfigurationList": { + "type": "object", + "description": "Result of the List Network Security Perimeter configuration operation.", + "properties": { + "value": { + "type": "array", + "description": "The NetworkSecurityPerimeterConfiguration items on this page", + "items": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfiguration" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "NetworkSecurityPerimeterConfigurationProperties": { + "type": "object", + "description": "Properties of the Network Security Perimeter Configuration", + "properties": { + "provisioningState": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfigurationProvisioningState", + "description": "Provisioning state of Network Security Perimeter configuration propagation", + "readOnly": true + }, + "provisioningIssues": { + "type": "array", + "description": "List of Provisioning Issues if any", + "items": { + "$ref": "#/definitions/ProvisioningIssue" + }, + "readOnly": true, + "x-ms-identifiers": [ + "name" + ] + }, + "networkSecurityPerimeter": { + "$ref": "#/definitions/NetworkSecurityPerimeter", + "description": "NetworkSecurityPerimeter related information", + "readOnly": true + }, + "resourceAssociation": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfigurationPropertiesResourceAssociation", + "description": "Information about resource association", + "readOnly": true + }, + "profile": { + "$ref": "#/definitions/NetworkSecurityPerimeterConfigurationPropertiesProfile", + "description": "Network Security Perimeter profile", + "readOnly": true + } + } + }, + "NetworkSecurityPerimeterConfigurationPropertiesProfile": { + "type": "object", + "description": "Network Security Perimeter profile", + "properties": { + "name": { + "type": "string", + "description": "Name of the resource" + }, + "accessRulesVersion": { + "type": "number", + "format": "float", + "description": "Current access rules version" + }, + "accessRules": { + "type": "array", + "description": "List of Access Rules", + "items": { + "$ref": "#/definitions/NspAccessRule" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "diagnosticSettingsVersion": { + "type": "number", + "format": "float", + "description": "Diagnostic settings version" + }, + "enabledLogCategories": { + "type": "array", + "description": "Enabled logging categories", + "items": { + "type": "string" + } + } + } + }, + "NetworkSecurityPerimeterConfigurationPropertiesResourceAssociation": { + "type": "object", + "description": "Information about resource association", + "properties": { + "name": { + "type": "string", + "description": "Name of the resource association" + }, + "accessMode": { + "$ref": "#/definitions/ResourceAssociationAccessMode", + "description": "Access Mode of the resource association" + } + } + }, + "NetworkSecurityPerimeterConfigurationProvisioningState": { + "type": "string", + "description": "Provisioning state of Network Security Perimeter configuration propagation", + "enum": [ + "Accepted", + "Succeeded", + "Failed", + "Deleting", + "Canceled" + ], + "x-ms-enum": { + "name": "NetworkSecurityPerimeterConfigurationProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Accepted", + "value": "Accepted" + }, + { + "name": "Succeeded", + "value": "Succeeded" + }, + { + "name": "Failed", + "value": "Failed" + }, + { + "name": "Deleting", + "value": "Deleting" + }, + { + "name": "Canceled", + "value": "Canceled" + } + ] + } + }, + "NfsSetting": { + "type": "object", + "description": "Setting for NFS protocol", + "properties": { + "encryptionInTransit": { + "$ref": "#/definitions/EncryptionInTransit", + "description": "Encryption in transit setting." + } + } + }, + "NspAccessRule": { + "type": "object", + "description": "Information of Access Rule in Network Security Perimeter profile", + "properties": { + "name": { + "type": "string", + "description": "Name of the resource" + }, + "properties": { + "$ref": "#/definitions/NspAccessRuleProperties", + "description": "Properties of Access Rule", + "readOnly": true + } + } + }, + "NspAccessRuleDirection": { + "type": "string", + "description": "Direction of Access Rule", + "enum": [ + "Inbound", + "Outbound" + ], + "x-ms-enum": { + "name": "NspAccessRuleDirection", + "modelAsString": true, + "values": [ + { + "name": "Inbound", + "value": "Inbound" + }, + { + "name": "Outbound", + "value": "Outbound" + } + ] + } + }, + "NspAccessRuleProperties": { + "type": "object", + "description": "Properties of Access Rule", + "properties": { + "direction": { + "$ref": "#/definitions/NspAccessRuleDirection", + "description": "Direction of Access Rule" + }, + "addressPrefixes": { + "type": "array", + "description": "Address prefixes in the CIDR format for inbound rules", + "items": { + "type": "string" + } + }, + "subscriptions": { + "type": "array", + "description": "Subscriptions for inbound rules", + "items": { + "$ref": "#/definitions/NspAccessRulePropertiesSubscriptionsItem" + } + }, + "networkSecurityPerimeters": { + "type": "array", + "description": "NetworkSecurityPerimeters for inbound rules", + "items": { + "$ref": "#/definitions/NetworkSecurityPerimeter" + }, + "readOnly": true + }, + "fullyQualifiedDomainNames": { + "type": "array", + "description": "FQDN for outbound rules", + "items": { + "type": "string" + }, + "readOnly": true + } + } + }, + "NspAccessRulePropertiesSubscriptionsItem": { + "type": "object", + "description": "Subscription for inbound rule", + "properties": { + "id": { + "type": "string", + "description": "The ARM identifier of subscription" + } + } + }, + "ObjectReplicationPolicies": { + "type": "object", + "description": "List storage account object replication policies.", + "properties": { + "value": { + "type": "array", + "description": "The replication policy between two storage accounts.", + "items": { + "$ref": "#/definitions/ObjectReplicationPolicy" + } + }, + "nextLink": { + "type": "string" + } + } + }, + "ObjectReplicationPolicy": { + "type": "object", + "description": "The replication policy between two storage accounts. Multiple rules can be defined in one policy.", + "properties": { + "properties": { + "$ref": "#/definitions/ObjectReplicationPolicyProperties", + "description": "Returns the Storage Account Object Replication Policy.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "ObjectReplicationPolicyFilter": { + "type": "object", + "description": "Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters.", + "properties": { + "prefixMatch": { + "type": "array", + "description": "Optional. Filters the results to replicate only blobs whose names begin with the specified prefix.", + "items": { + "type": "string" + } + }, + "minCreationTime": { + "type": "string", + "description": "Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z" + } + } + }, + "ObjectReplicationPolicyProperties": { + "type": "object", + "description": "The Storage Account ObjectReplicationPolicy properties.", + "properties": { + "policyId": { + "type": "string", + "description": "A unique id for object replication policy.", + "readOnly": true + }, + "enabledTime": { + "type": "string", + "format": "date-time", + "description": "Indicates when the policy is enabled on the source account.", + "readOnly": true + }, + "sourceAccount": { + "type": "string", + "description": "Required. Source account name. It should be full resource id if allowCrossTenantReplication set to false." + }, + "destinationAccount": { + "type": "string", + "description": "Required. Destination account name. It should be full resource id if allowCrossTenantReplication set to false." + }, + "rules": { + "type": "array", + "description": "The storage account object replication rules.", + "items": { + "$ref": "#/definitions/ObjectReplicationPolicyRule" + }, + "x-ms-identifiers": [] + }, + "metrics": { + "$ref": "#/definitions/ObjectReplicationPolicyPropertiesMetrics", + "description": "Optional. The object replication policy metrics feature options." + }, + "priorityReplication": { + "$ref": "#/definitions/ObjectReplicationPolicyPropertiesPriorityReplication", + "description": "Optional. The object replication policy priority replication feature options." + } + }, + "required": [ + "sourceAccount", + "destinationAccount" + ] + }, + "ObjectReplicationPolicyPropertiesMetrics": { + "type": "object", + "description": "Optional. The object replication policy metrics feature options.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Indicates whether object replication metrics feature is enabled for the policy." + } + } + }, + "ObjectReplicationPolicyPropertiesPriorityReplication": { + "type": "object", + "description": "Optional. The object replication policy priority replication feature options.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Indicates whether object replication priority replication feature is enabled for the policy." + } + } + }, + "ObjectReplicationPolicyRule": { + "type": "object", + "description": "The replication policy rule between two containers.", + "properties": { + "ruleId": { + "type": "string", + "description": "Rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account." + }, + "sourceContainer": { + "type": "string", + "description": "Required. Source container name." + }, + "destinationContainer": { + "type": "string", + "description": "Required. Destination container name." + }, + "filters": { + "$ref": "#/definitions/ObjectReplicationPolicyFilter", + "description": "Optional. An object that defines the filter set." + } + }, + "required": [ + "sourceContainer", + "destinationContainer" + ] + }, + "ObjectType": { + "type": "string", + "description": "This is a required field. This field specifies the scope of the inventory created either at the blob or container level.", + "enum": [ + "Blob", + "Container" + ], + "x-ms-enum": { + "name": "ObjectType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "Blob" + }, + { + "name": "Container", + "value": "Container" + } + ] + } + }, + "Operation": { + "type": "object", + "description": "Storage REST API operation definition.", + "properties": { + "name": { + "type": "string", + "description": "Operation name: {provider}/{resource}/{operation}" + }, + "display": { + "$ref": "#/definitions/OperationDisplay", + "description": "Display metadata associated with the operation." + }, + "origin": { + "type": "string", + "description": "The origin of operations." + }, + "properties": { + "$ref": "#/definitions/OperationProperties", + "description": "Properties of operation, include metric specifications.", + "x-ms-client-flatten": true, + "x-ms-client-name": "operationProperties" + } + } + }, + "OperationDisplay": { + "type": "object", + "description": "Display metadata associated with the operation.", + "properties": { + "provider": { + "type": "string", + "description": "Service provider: Microsoft Storage." + }, + "resource": { + "type": "string", + "description": "Resource on which the operation is performed etc." + }, + "operation": { + "type": "string", + "description": "Type of operation: get, read, delete, etc." + }, + "description": { + "type": "string", + "description": "Description of the operation." + } + } + }, + "OperationListResult": { + "type": "object", + "description": "The list of available operations.", + "properties": { + "value": { + "type": "array", + "description": "List of operations supported by the resource provider.", + "items": { + "$ref": "#/definitions/Operation" + } + }, + "nextLink": { + "type": "string" + } + } + }, + "OperationProperties": { + "type": "object", + "description": "Properties of operation, include metric specifications.", + "properties": { + "serviceSpecification": { + "$ref": "#/definitions/ServiceSpecification", + "description": "One property of operation, include metric specifications." + } + } + }, + "PermissionScope": { + "type": "object", + "properties": { + "permissions": { + "type": "string", + "description": "The permissions for the local user. Possible values include: Read (r), Write (w), Delete (d), List (l), Create (c), Modify Ownership (o), and Modify Permissions (p)." + }, + "service": { + "type": "string", + "description": "The service used by the local user, e.g. blob, file." + }, + "resourceName": { + "type": "string", + "description": "The name of resource, normally the container name or the file share name, used by the local user." + } + }, + "required": [ + "permissions", + "service", + "resourceName" + ] + }, + "Permissions": { + "type": "string", + "description": "The signed permissions for the account SAS. Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p).", + "enum": [ + "r", + "d", + "w", + "l", + "a", + "c", + "u", + "p" + ], + "x-ms-enum": { + "name": "Permissions", + "modelAsString": true, + "values": [ + { + "name": "r", + "value": "r" + }, + { + "name": "d", + "value": "d" + }, + { + "name": "w", + "value": "w" + }, + { + "name": "l", + "value": "l" + }, + { + "name": "a", + "value": "a" + }, + { + "name": "c", + "value": "c" + }, + { + "name": "u", + "value": "u" + }, + { + "name": "p", + "value": "p" + } + ] + } + }, + "Placement": { + "type": "object", + "description": "The complex type of the zonal placement details.", + "properties": { + "zonePlacementPolicy": { + "$ref": "#/definitions/ZonePlacementPolicy", + "description": "The availability zone pinning policy for the storage account." + } + } + }, + "PostFailoverRedundancy": { + "type": "string", + "description": "The redundancy type of the account after an account failover is performed.", + "enum": [ + "Standard_LRS", + "Standard_ZRS" + ], + "x-ms-enum": { + "name": "PostFailoverRedundancy", + "modelAsString": true, + "values": [ + { + "name": "Standard_LRS", + "value": "Standard_LRS" + }, + { + "name": "Standard_ZRS", + "value": "Standard_ZRS" + } + ] + } + }, + "PostPlannedFailoverRedundancy": { + "type": "string", + "description": "The redundancy type of the account after a planned account failover is performed.", + "enum": [ + "Standard_GRS", + "Standard_GZRS", + "Standard_RAGRS", + "Standard_RAGZRS" + ], + "x-ms-enum": { + "name": "PostPlannedFailoverRedundancy", + "modelAsString": true, + "values": [ + { + "name": "Standard_GRS", + "value": "Standard_GRS" + }, + { + "name": "Standard_GZRS", + "value": "Standard_GZRS" + }, + { + "name": "Standard_RAGRS", + "value": "Standard_RAGRS" + }, + { + "name": "Standard_RAGZRS", + "value": "Standard_RAGZRS" + } + ] + } + }, + "PrivateEndpoint": { + "type": "object", + "description": "The Private Endpoint resource.", + "properties": { + "id": { + "type": "string", + "description": "The ARM identifier for Private Endpoint", + "readOnly": true + } + } + }, + "PrivateEndpointConnection": { + "type": "object", + "description": "The Private Endpoint Connection resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "PrivateEndpointConnectionListResult": { + "type": "object", + "description": "List of private endpoint connection associated with the specified storage account", + "properties": { + "value": { + "type": "array", + "description": "Array of private endpoint connections", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "nextLink": { + "type": "string" + } + } + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "description": "Properties of the PrivateEndpointConnectProperties.", + "properties": { + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "description": "The resource of private end point." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "description": "A collection of information about the state of the connection between service consumer and provider." + }, + "provisioningState": { + "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState", + "description": "The provisioning state of the private endpoint connection resource.", + "readOnly": true + } + }, + "required": [ + "privateLinkServiceConnectionState" + ] + }, + "PrivateEndpointConnectionProvisioningState": { + "type": "string", + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Creating", + "Deleting", + "Failed" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded" + }, + { + "name": "Creating", + "value": "Creating" + }, + { + "name": "Deleting", + "value": "Deleting" + }, + { + "name": "Failed", + "value": "Failed" + } + ] + } + }, + "PrivateEndpointServiceConnectionStatus": { + "type": "string", + "description": "The private endpoint connection status.", + "enum": [ + "Pending", + "Approved", + "Rejected" + ], + "x-ms-enum": { + "name": "PrivateEndpointServiceConnectionStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "Pending" + }, + { + "name": "Approved", + "value": "Approved" + }, + { + "name": "Rejected", + "value": "Rejected" + } + ] + } + }, + "PrivateLinkResource": { + "type": "object", + "description": "A private link resource", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Resource" + } + ] + }, + "PrivateLinkResourceListResult": { + "type": "object", + "description": "A list of private link resources", + "properties": { + "value": { + "type": "array", + "description": "Array of private link resources", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + } + } + } + }, + "PrivateLinkResourceProperties": { + "type": "object", + "description": "Properties of a private link resource.", + "properties": { + "groupId": { + "type": "string", + "description": "The private link resource group id.", + "readOnly": true + }, + "requiredMembers": { + "type": "array", + "description": "The private link resource required member names.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "description": "The private link resource Private link DNS zone name.", + "items": { + "type": "string" + } + } + } + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "description": "A collection of information about the state of the connection between service consumer and provider.", + "properties": { + "status": { + "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus", + "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service." + }, + "description": { + "type": "string", + "description": "The reason for approval/rejection of the connection." + }, + "actionRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer." + } + } + }, + "ProtectedAppendWritesHistory": { + "type": "object", + "description": "Protected append writes history setting for the blob container with Legal holds.", + "properties": { + "allowProtectedAppendWritesAll": { + "type": "boolean", + "description": "When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining legal hold protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted." + }, + "timestamp": { + "type": "string", + "format": "date-time", + "description": "Returns the date and time the tag was added.", + "readOnly": true + } + } + }, + "ProtocolSettings": { + "type": "object", + "description": "Protocol settings for file service", + "properties": { + "smb": { + "$ref": "#/definitions/SmbSetting", + "description": "Setting for SMB protocol" + }, + "nfs": { + "$ref": "#/definitions/NfsSetting", + "description": "Setting for NFS protocol" + } + } + }, + "ProvisioningIssue": { + "type": "object", + "description": "Describes provisioning issue for given NetworkSecurityPerimeterConfiguration", + "properties": { + "name": { + "type": "string", + "description": "Name of the issue" + }, + "properties": { + "$ref": "#/definitions/ProvisioningIssueProperties", + "description": "Properties of provisioning issue", + "readOnly": true + } + } + }, + "ProvisioningIssueProperties": { + "type": "object", + "description": "Properties of provisioning issue", + "properties": { + "issueType": { + "$ref": "#/definitions/IssueType", + "description": "Type of issue" + }, + "severity": { + "$ref": "#/definitions/Severity", + "description": "Severity of the issue." + }, + "description": { + "type": "string", + "description": "Description of the issue" + } + } + }, + "ProvisioningState": { + "type": "string", + "description": "Gets the status of the storage account at the time the operation was called.", + "enum": [ + "Creating", + "ResolvingDNS", + "Succeeded" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": false, + "values": [ + { + "name": "Creating", + "value": "Creating" + }, + { + "name": "ResolvingDNS", + "value": "ResolvingDNS" + }, + { + "name": "Succeeded", + "value": "Succeeded" + } + ] + } + }, + "PublicAccess": { + "type": "string", + "description": "Specifies whether data in the container may be accessed publicly and the level of access.", + "enum": [ + "Container", + "Blob", + "None" + ], + "x-ms-enum": { + "name": "PublicAccess", + "modelAsString": false + } + }, + "PublicNetworkAccess": { + "type": "string", + "description": "Allow, disallow, or let Network Security Perimeter configuration to evaluate public network access to Storage Account. Value is optional but if passed in, must be 'Enabled', 'Disabled' or 'SecuredByPerimeter'.", + "enum": [ + "Enabled", + "Disabled", + "SecuredByPerimeter" + ], + "x-ms-enum": { + "name": "PublicNetworkAccess", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled" + }, + { + "name": "Disabled", + "value": "Disabled" + }, + { + "name": "SecuredByPerimeter", + "value": "SecuredByPerimeter" + } + ] + } + }, + "QueueProperties": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "description": "A name-value pair that represents queue metadata.", + "additionalProperties": { + "type": "string" + } + }, + "approximateMessageCount": { + "type": "integer", + "format": "int32", + "description": "Integer indicating an approximate number of messages in the queue. This number is not lower than the actual number of messages in the queue, but could be higher.", + "readOnly": true + } + } + }, + "QueueServiceProperties": { + "type": "object", + "description": "The properties of a storage account’s Queue service.", + "properties": { + "properties": { + "$ref": "#/definitions/QueueServicePropertiesProperties", + "description": "The properties of a storage account’s Queue service.", + "x-ms-client-flatten": true, + "x-ms-client-name": "QueueServiceProperties" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "QueueServicePropertiesProperties": { + "type": "object", + "description": "The properties of a storage account’s Queue service.", + "properties": { + "cors": { + "$ref": "#/definitions/CorsRules", + "description": "Specifies CORS rules for the Queue service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Queue service." + } + } + }, + "Reason": { + "type": "string", + "description": "Gets the reason that a storage account name could not be used. The Reason element is only returned if NameAvailable is false.", + "enum": [ + "AccountNameInvalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "Reason", + "modelAsString": false + } + }, + "ReasonCode": { + "type": "string", + "description": "The reason for the restriction. As of now this can be \"QuotaId\" or \"NotAvailableForSubscription\". Quota Id is set when the SKU has requiredQuotas parameter as the subscription does not belong to that quota. The \"NotAvailableForSubscription\" is related to capacity at DC.", + "enum": [ + "QuotaId", + "NotAvailableForSubscription" + ], + "x-ms-enum": { + "name": "ReasonCode", + "modelAsString": true, + "values": [ + { + "name": "QuotaId", + "value": "QuotaId" + }, + { + "name": "NotAvailableForSubscription", + "value": "NotAvailableForSubscription" + } + ] + } + }, + "Resource": { + "type": "object", + "description": "Common fields that are returned in the response for all Azure Resource Manager resources", + "properties": { + "id": { + "type": "string", + "description": "Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the resource", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"", + "readOnly": true + } + }, + "x-ms-azure-resource": true + }, + "ResourceAccessRule": { + "type": "object", + "description": "Resource Access Rule.", + "properties": { + "tenantId": { + "type": "string", + "description": "Tenant Id" + }, + "resourceId": { + "type": "string", + "description": "Resource Id" + } + } + }, + "ResourceAssociationAccessMode": { + "type": "string", + "description": "Access Mode of the resource association", + "enum": [ + "Enforced", + "Learning", + "Audit" + ], + "x-ms-enum": { + "name": "ResourceAssociationAccessMode", + "modelAsString": true, + "values": [ + { + "name": "Enforced", + "value": "Enforced" + }, + { + "name": "Learning", + "value": "Learning" + }, + { + "name": "Audit", + "value": "Audit" + } + ] + } + }, + "RestorePolicyProperties": { + "type": "object", + "description": "The blob service properties for blob restore policy", + "properties": { + "enabled": { + "type": "boolean", + "description": "Blob restore is enabled if set to true." + }, + "days": { + "type": "integer", + "format": "int32", + "description": "how long this blob can be restored. It should be great than zero and less than DeleteRetentionPolicy.days.", + "minimum": 1, + "maximum": 365 + }, + "lastEnabledTime": { + "type": "string", + "format": "date-time", + "description": "Deprecated in favor of minRestoreTime property.", + "readOnly": true + }, + "minRestoreTime": { + "type": "string", + "format": "date-time", + "description": "Returns the minimum date and time that the restore can be started.", + "readOnly": true + } + }, + "required": [ + "enabled" + ] + }, + "Restriction": { + "type": "object", + "description": "The restriction because of which SKU cannot be used.", + "properties": { + "type": { + "type": "string", + "description": "The type of restrictions. As of now only possible value for this is location.", + "readOnly": true + }, + "values": { + "type": "array", + "description": "The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "reasonCode": { + "$ref": "#/definitions/ReasonCode", + "description": "The reason for the restriction. As of now this can be \"QuotaId\" or \"NotAvailableForSubscription\". Quota Id is set when the SKU has requiredQuotas parameter as the subscription does not belong to that quota. The \"NotAvailableForSubscription\" is related to capacity at DC." + } + } + }, + "RootSquashType": { + "type": "string", + "description": "The property is for NFS share only. The default is NoRootSquash.", + "enum": [ + "NoRootSquash", + "RootSquash", + "AllSquash" + ], + "x-ms-enum": { + "name": "RootSquashType", + "modelAsString": true, + "values": [ + { + "name": "NoRootSquash", + "value": "NoRootSquash" + }, + { + "name": "RootSquash", + "value": "RootSquash" + }, + { + "name": "AllSquash", + "value": "AllSquash" + } + ] + } + }, + "RoutingChoice": { + "type": "string", + "description": "Routing Choice defines the kind of network routing opted by the user.", + "enum": [ + "MicrosoftRouting", + "InternetRouting" + ], + "x-ms-enum": { + "name": "RoutingChoice", + "modelAsString": true, + "values": [ + { + "name": "MicrosoftRouting", + "value": "MicrosoftRouting" + }, + { + "name": "InternetRouting", + "value": "InternetRouting" + } + ] + } + }, + "RoutingPreference": { + "type": "object", + "description": "Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user data, the default option is microsoft routing", + "properties": { + "routingChoice": { + "$ref": "#/definitions/RoutingChoice", + "description": "Routing Choice defines the kind of network routing opted by the user." + }, + "publishMicrosoftEndpoints": { + "type": "boolean", + "description": "A boolean flag which indicates whether microsoft routing storage endpoints are to be published" + }, + "publishInternetEndpoints": { + "type": "boolean", + "description": "A boolean flag which indicates whether internet routing storage endpoints are to be published" + } + } + }, + "RuleType": { + "type": "string", + "description": "The valid value is Lifecycle", + "enum": [ + "Lifecycle" + ], + "x-ms-enum": { + "name": "RuleType", + "modelAsString": true, + "values": [ + { + "name": "Lifecycle", + "value": "Lifecycle" + } + ] + } + }, + "RunResult": { + "type": "string", + "description": "Represents the overall result of the execution for the run instance", + "enum": [ + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "RunResult", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded" + }, + { + "name": "Failed", + "value": "Failed" + } + ] + } + }, + "RunStatusEnum": { + "type": "string", + "description": "Represents the status of the execution.", + "enum": [ + "InProgress", + "Finished" + ], + "x-ms-enum": { + "name": "RunStatusEnum", + "modelAsString": true, + "values": [ + { + "name": "InProgress", + "value": "InProgress" + }, + { + "name": "Finished", + "value": "Finished" + } + ] + } + }, + "SKUCapability": { + "type": "object", + "description": "The capability information in the specified SKU, including file encryption, network ACLs, change notification, etc.", + "properties": { + "name": { + "type": "string", + "description": "The name of capability, The capability information in the specified SKU, including file encryption, network ACLs, change notification, etc.", + "readOnly": true + }, + "value": { + "type": "string", + "description": "A string value to indicate states of given capability. Possibly 'true' or 'false'.", + "readOnly": true + } + } + }, + "SasPolicy": { + "type": "object", + "description": "SasPolicy assigned to the storage account.", + "properties": { + "sasExpirationPeriod": { + "type": "string", + "description": "The SAS expiration period, DD.HH:MM:SS." + }, + "expirationAction": { + "type": "string", + "description": "The SAS Expiration Action defines the action to be performed when sasPolicy.sasExpirationPeriod is violated. The 'Log' action can be used for audit purposes and the 'Block' action can be used to block and deny the usage of SAS tokens that do not adhere to the sas policy expiration period.", + "default": "Log", + "enum": [ + "Log", + "Block" + ], + "x-ms-enum": { + "name": "ExpirationAction", + "modelAsString": true, + "values": [ + { + "name": "Log", + "value": "Log" + }, + { + "name": "Block", + "value": "Block" + } + ] + } + } + }, + "required": [ + "sasExpirationPeriod", + "expirationAction" + ] + }, + "Schedule": { + "type": "string", + "description": "This is a required field. This field is used to schedule an inventory formation.", + "enum": [ + "Daily", + "Weekly" + ], + "x-ms-enum": { + "name": "Schedule", + "modelAsString": true, + "values": [ + { + "name": "Daily", + "value": "Daily" + }, + { + "name": "Weekly", + "value": "Weekly" + } + ] + } + }, + "ServiceSasParameters": { + "type": "object", + "description": "The parameters to list service SAS credentials of a specific resource.", + "properties": { + "canonicalizedResource": { + "type": "string", + "description": "The canonical path to the signed resource." + }, + "signedResource": { + "$ref": "#/definitions/SignedResource", + "description": "The signed services accessible with the service SAS. Possible values include: Blob (b), Container (c), File (f), Share (s).", + "x-ms-client-name": "Resource" + }, + "signedPermission": { + "$ref": "#/definitions/Permissions", + "description": "The signed permissions for the service SAS. Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p).", + "x-ms-client-name": "Permissions" + }, + "signedIp": { + "type": "string", + "description": "An IP address or a range of IP addresses from which to accept requests.", + "x-ms-client-name": "IPAddressOrRange" + }, + "signedProtocol": { + "$ref": "#/definitions/HttpProtocol", + "description": "The protocol permitted for a request made with the account SAS.", + "x-ms-client-name": "Protocols" + }, + "signedStart": { + "type": "string", + "format": "date-time", + "description": "The time at which the SAS becomes valid.", + "x-ms-client-name": "SharedAccessStartTime" + }, + "signedExpiry": { + "type": "string", + "format": "date-time", + "description": "The time at which the shared access signature becomes invalid.", + "x-ms-client-name": "SharedAccessExpiryTime" + }, + "signedIdentifier": { + "type": "string", + "description": "A unique value up to 64 characters in length that correlates to an access policy specified for the container, queue, or table.", + "maxLength": 64, + "x-ms-client-name": "Identifier" + }, + "startPk": { + "type": "string", + "description": "The start of partition key.", + "x-ms-client-name": "PartitionKeyStart" + }, + "endPk": { + "type": "string", + "description": "The end of partition key.", + "x-ms-client-name": "PartitionKeyEnd" + }, + "startRk": { + "type": "string", + "description": "The start of row key.", + "x-ms-client-name": "RowKeyStart" + }, + "endRk": { + "type": "string", + "description": "The end of row key.", + "x-ms-client-name": "RowKeyEnd" + }, + "keyToSign": { + "type": "string", + "description": "The key to sign the account SAS token with." + }, + "rscc": { + "type": "string", + "description": "The response header override for cache control.", + "x-ms-client-name": "CacheControl" + }, + "rscd": { + "type": "string", + "description": "The response header override for content disposition.", + "x-ms-client-name": "ContentDisposition" + }, + "rsce": { + "type": "string", + "description": "The response header override for content encoding.", + "x-ms-client-name": "ContentEncoding" + }, + "rscl": { + "type": "string", + "description": "The response header override for content language.", + "x-ms-client-name": "ContentLanguage" + }, + "rsct": { + "type": "string", + "description": "The response header override for content type.", + "x-ms-client-name": "ContentType" + } + }, + "required": [ + "canonicalizedResource" + ] + }, + "ServiceSpecification": { + "type": "object", + "description": "One property of operation, include metric specifications.", + "properties": { + "metricSpecifications": { + "type": "array", + "description": "Metric specifications of operation.", + "items": { + "$ref": "#/definitions/MetricSpecification" + } + } + } + }, + "Services": { + "type": "string", + "description": "The signed services accessible with the account SAS. Possible values include: Blob (b), Queue (q), Table (t), File (f).", + "enum": [ + "b", + "q", + "t", + "f" + ], + "x-ms-enum": { + "name": "Services", + "modelAsString": true, + "values": [ + { + "name": "b", + "value": "b" + }, + { + "name": "q", + "value": "q" + }, + { + "name": "t", + "value": "t" + }, + { + "name": "f", + "value": "f" + } + ] + } + }, + "Severity": { + "type": "string", + "description": "Severity of the issue.", + "enum": [ + "Warning", + "Error" + ], + "x-ms-enum": { + "name": "Severity", + "modelAsString": true, + "values": [ + { + "name": "Warning", + "value": "Warning" + }, + { + "name": "Error", + "value": "Error" + } + ] + } + }, + "ShareAccessTier": { + "type": "string", + "description": "Access tier for specific share. GpV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium.", + "enum": [ + "TransactionOptimized", + "Hot", + "Cool", + "Premium" + ], + "x-ms-enum": { + "name": "ShareAccessTier", + "modelAsString": true, + "values": [ + { + "name": "TransactionOptimized", + "value": "TransactionOptimized" + }, + { + "name": "Hot", + "value": "Hot" + }, + { + "name": "Cool", + "value": "Cool" + }, + { + "name": "Premium", + "value": "Premium" + } + ] + } + }, + "SignedIdentifier": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "An unique identifier of the stored access policy." + }, + "accessPolicy": { + "$ref": "#/definitions/AccessPolicy", + "description": "Access policy" + } + } + }, + "SignedResource": { + "type": "string", + "description": "The signed services accessible with the service SAS. Possible values include: Blob (b), Container (c), File (f), Share (s).", + "enum": [ + "b", + "c", + "f", + "s" + ], + "x-ms-enum": { + "name": "SignedResource", + "modelAsString": true, + "values": [ + { + "name": "b", + "value": "b" + }, + { + "name": "c", + "value": "c" + }, + { + "name": "f", + "value": "f" + }, + { + "name": "s", + "value": "s" + } + ] + } + }, + "SignedResourceTypes": { + "type": "string", + "description": "The signed resource types that are accessible with the account SAS. Service (s): Access to service-level APIs; Container (c): Access to container-level APIs; Object (o): Access to object-level APIs for blobs, queue messages, table entities, and files.", + "enum": [ + "s", + "c", + "o" + ], + "x-ms-enum": { + "name": "SignedResourceTypes", + "modelAsString": true, + "values": [ + { + "name": "s", + "value": "s" + }, + { + "name": "c", + "value": "c" + }, + { + "name": "o", + "value": "o" + } + ] + } + }, + "Sku": { + "type": "object", + "description": "The SKU of the storage account.", + "properties": { + "name": { + "$ref": "#/definitions/SkuName", + "description": "The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType." + }, + "tier": { + "$ref": "#/definitions/SkuTier", + "description": "The SKU tier. This is based on the SKU name.", + "readOnly": true + } + }, + "required": [ + "name" + ] + }, + "SkuConversionStatus": { + "type": "string", + "description": "This property indicates the current sku conversion status.", + "enum": [ + "InProgress", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "SkuConversionStatus", + "modelAsString": true, + "values": [ + { + "name": "InProgress", + "value": "InProgress" + }, + { + "name": "Succeeded", + "value": "Succeeded" + }, + { + "name": "Failed", + "value": "Failed" + } + ] + } + }, + "SkuInformation": { + "type": "object", + "description": "Storage SKU and its properties", + "properties": { + "name": { + "$ref": "#/definitions/SkuName", + "description": "The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType." + }, + "tier": { + "$ref": "#/definitions/SkuTier", + "description": "The SKU tier. This is based on the SKU name.", + "readOnly": true + }, + "resourceType": { + "type": "string", + "description": "The type of the resource, usually it is 'storageAccounts'.", + "readOnly": true + }, + "kind": { + "$ref": "#/definitions/Kind", + "description": "Indicates the type of storage account.", + "readOnly": true + }, + "locations": { + "type": "array", + "description": "The set of locations that the SKU is available. This will be supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.).", + "items": { + "type": "string" + }, + "readOnly": true + }, + "locationInfo": { + "type": "array", + "items": { + "$ref": "#/definitions/SkuInformationLocationInfoItem" + }, + "x-ms-identifiers": [] + }, + "capabilities": { + "type": "array", + "description": "The capability information in the specified SKU, including file encryption, network ACLs, change notification, etc.", + "items": { + "$ref": "#/definitions/SKUCapability" + }, + "readOnly": true + }, + "restrictions": { + "type": "array", + "description": "The restrictions because of which SKU cannot be used. This is empty if there are no restrictions.", + "items": { + "$ref": "#/definitions/Restriction" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "name" + ] + }, + "SkuInformationLocationInfoItem": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "Describes the location for the product where storage account resource can be created.", + "readOnly": true + }, + "zones": { + "type": "array", + "description": "Describes the available zones for the product where storage account resource can be created.", + "items": { + "type": "string" + }, + "readOnly": true + } + } + }, + "SkuName": { + "type": "string", + "description": "The SKU name. Required for account creation; optional for update. Note that in older versions, SKU name was called accountType.", + "enum": [ + "Standard_LRS", + "Standard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS", + "Premium_ZRS", + "Standard_GZRS", + "Standard_RAGZRS", + "StandardV2_LRS", + "StandardV2_GRS", + "StandardV2_ZRS", + "StandardV2_GZRS", + "PremiumV2_LRS", + "PremiumV2_ZRS" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": true, + "values": [ + { + "name": "Standard_LRS", + "value": "Standard_LRS" + }, + { + "name": "Standard_GRS", + "value": "Standard_GRS" + }, + { + "name": "Standard_RAGRS", + "value": "Standard_RAGRS" + }, + { + "name": "Standard_ZRS", + "value": "Standard_ZRS" + }, + { + "name": "Premium_LRS", + "value": "Premium_LRS" + }, + { + "name": "Premium_ZRS", + "value": "Premium_ZRS" + }, + { + "name": "Standard_GZRS", + "value": "Standard_GZRS" + }, + { + "name": "Standard_RAGZRS", + "value": "Standard_RAGZRS" + }, + { + "name": "StandardV2_LRS", + "value": "StandardV2_LRS" + }, + { + "name": "StandardV2_GRS", + "value": "StandardV2_GRS" + }, + { + "name": "StandardV2_ZRS", + "value": "StandardV2_ZRS" + }, + { + "name": "StandardV2_GZRS", + "value": "StandardV2_GZRS" + }, + { + "name": "PremiumV2_LRS", + "value": "PremiumV2_LRS" + }, + { + "name": "PremiumV2_ZRS", + "value": "PremiumV2_ZRS" + } + ] + } + }, + "SkuTier": { + "type": "string", + "description": "The SKU tier. This is based on the SKU name.", + "enum": [ + "Standard", + "Premium" + ], + "x-ms-enum": { + "name": "SkuTier", + "modelAsString": false + } + }, + "SmbOAuthSettings": { + "type": "object", + "description": "Setting property for Managed Identity access over SMB using OAuth", + "properties": { + "isSmbOAuthEnabled": { + "type": "boolean", + "description": "Specifies if managed identities can access SMB shares using OAuth. The default interpretation is false for this property." + } + } + }, + "SmbSetting": { + "type": "object", + "description": "Setting for SMB protocol", + "properties": { + "multichannel": { + "$ref": "#/definitions/Multichannel", + "description": "Multichannel setting. Applies to Premium FileStorage only." + }, + "versions": { + "type": "string", + "description": "SMB protocol versions supported by server. Valid values are SMB2.1, SMB3.0, SMB3.1.1. Should be passed as a string with delimiter ';'." + }, + "authenticationMethods": { + "type": "string", + "description": "SMB authentication methods supported by server. Valid values are NTLMv2, Kerberos. Should be passed as a string with delimiter ';'." + }, + "kerberosTicketEncryption": { + "type": "string", + "description": "Kerberos ticket encryption supported by server. Valid values are RC4-HMAC, AES-256. Should be passed as a string with delimiter ';'" + }, + "channelEncryption": { + "type": "string", + "description": "SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, AES-256-GCM. Should be passed as a string with delimiter ';'." + }, + "encryptionInTransit": { + "$ref": "#/definitions/EncryptionInTransit", + "description": "Encryption in transit setting." + } + } + }, + "SshPublicKey": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Optional. It is used to store the function/usage of the key" + }, + "key": { + "type": "string", + "description": "Ssh public key base64 encoded. The format should be: ' ', e.g. ssh-rsa AAAABBBB" + } + } + }, + "State": { + "type": "string", + "description": "Gets the state of virtual network rule.", + "enum": [ + "Provisioning", + "Deprovisioning", + "Succeeded", + "Failed", + "NetworkSourceDeleted" + ], + "x-ms-enum": { + "name": "State", + "modelAsString": true, + "values": [ + { + "name": "Provisioning", + "value": "Provisioning" + }, + { + "name": "Deprovisioning", + "value": "Deprovisioning" + }, + { + "name": "Succeeded", + "value": "Succeeded" + }, + { + "name": "Failed", + "value": "Failed" + }, + { + "name": "NetworkSourceDeleted", + "value": "NetworkSourceDeleted" + } + ] + } + }, + "StorageAccount": { + "type": "object", + "description": "The storage account.", + "properties": { + "properties": { + "$ref": "#/definitions/StorageAccountProperties", + "description": "Properties of the storage account.", + "x-ms-client-flatten": true + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "Gets the SKU.", + "readOnly": true + }, + "kind": { + "$ref": "#/definitions/Kind", + "description": "Gets the Kind.", + "readOnly": true + }, + "identity": { + "$ref": "#/definitions/Identity", + "description": "The identity of the resource." + }, + "extendedLocation": { + "$ref": "#/definitions/ExtendedLocation", + "description": "The extendedLocation of the resource." + }, + "zones": { + "type": "array", + "description": "The availability zones.", + "items": { + "type": "string" + } + }, + "placement": { + "$ref": "#/definitions/Placement", + "description": "Optional. Gets or sets the zonal placement details for the storage account." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ] + }, + "StorageAccountCheckNameAvailabilityParameters": { + "type": "object", + "description": "The parameters used to check the availability of the storage account name.", + "properties": { + "name": { + "type": "string", + "description": "The storage account name." + }, + "type": { + "type": "string", + "description": "The type of resource, Microsoft.Storage/storageAccounts", + "enum": [ + "Microsoft.Storage/storageAccounts" + ], + "x-ms-enum": { + "modelAsString": false + } + } + }, + "required": [ + "name", + "type" + ] + }, + "StorageAccountCreateParameters": { + "type": "object", + "description": "The parameters used when creating a storage account.", + "properties": { + "sku": { + "$ref": "#/definitions/Sku", + "description": "Required. Gets or sets the SKU name." + }, + "kind": { + "$ref": "#/definitions/Kind", + "description": "Required. Indicates the type of storage account." + }, + "location": { + "type": "string", + "description": "Required. Gets or sets the location of the resource. This will be one of the supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.). The geo region of a resource cannot be changed once it is created, but if an identical geo region is specified on update, the request will succeed." + }, + "extendedLocation": { + "$ref": "#/definitions/ExtendedLocation", + "description": "Optional. Set the extended location of the resource. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location" + }, + "zones": { + "type": "array", + "description": "Optional. Gets or sets the pinned logical availability zone for the storage account.", + "items": { + "type": "string" + } + }, + "placement": { + "$ref": "#/definitions/Placement", + "description": "Optional. Gets or sets the zonal placement details for the storage account." + }, + "tags": { + "type": "object", + "description": "Gets or sets a list of key value pairs that describe the resource. These tags can be used for viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key with a length no greater than 128 characters and a value with a length no greater than 256 characters.", + "additionalProperties": { + "type": "string" + } + }, + "identity": { + "$ref": "#/definitions/Identity", + "description": "The identity of the resource." + }, + "properties": { + "$ref": "#/definitions/StorageAccountPropertiesCreateParameters", + "description": "The parameters used to create the storage account.", + "x-ms-client-flatten": true + } + }, + "required": [ + "sku", + "kind", + "location" + ] + }, + "StorageAccountInternetEndpoints": { + "type": "object", + "description": "The URIs that are used to perform a retrieval of a public blob, file, web or dfs object via a internet routing endpoint.", + "properties": { + "blob": { + "type": "string", + "description": "Gets the blob endpoint.", + "readOnly": true + }, + "file": { + "type": "string", + "description": "Gets the file endpoint.", + "readOnly": true + }, + "web": { + "type": "string", + "description": "Gets the web endpoint.", + "readOnly": true + }, + "dfs": { + "type": "string", + "description": "Gets the dfs endpoint.", + "readOnly": true + } + } + }, + "StorageAccountIpv6Endpoints": { + "type": "object", + "description": "The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object via an IPv6 endpoint.", + "properties": { + "blob": { + "type": "string", + "description": "Gets the blob endpoint.", + "readOnly": true + }, + "queue": { + "type": "string", + "description": "Gets the queue endpoint.", + "readOnly": true + }, + "table": { + "type": "string", + "description": "Gets the table endpoint.", + "readOnly": true + }, + "file": { + "type": "string", + "description": "Gets the file endpoint.", + "readOnly": true + }, + "web": { + "type": "string", + "description": "Gets the web endpoint.", + "readOnly": true + }, + "dfs": { + "type": "string", + "description": "Gets the dfs endpoint.", + "readOnly": true + }, + "microsoftEndpoints": { + "$ref": "#/definitions/StorageAccountMicrosoftEndpoints", + "description": "Gets the microsoft routing storage endpoints." + }, + "internetEndpoints": { + "$ref": "#/definitions/StorageAccountInternetEndpoints", + "description": "Gets the internet routing storage endpoints" + } + } + }, + "StorageAccountKey": { + "type": "object", + "description": "An access key for the storage account.", + "properties": { + "keyName": { + "type": "string", + "description": "Name of the key.", + "readOnly": true + }, + "value": { + "type": "string", + "description": "Base 64-encoded value of the key.", + "readOnly": true + }, + "permissions": { + "$ref": "#/definitions/KeyPermission", + "description": "Permissions for the key -- read-only or full permissions.", + "readOnly": true + }, + "creationTime": { + "type": "string", + "format": "date-time", + "description": "Creation time of the key, in round trip date format.", + "readOnly": true + } + } + }, + "StorageAccountListKeysResult": { + "type": "object", + "description": "The response from the ListKeys operation.", + "properties": { + "keys": { + "type": "array", + "description": "Gets the list of storage account keys and their properties for the specified storage account.", + "items": { + "$ref": "#/definitions/StorageAccountKey" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "StorageAccountListResult": { + "type": "object", + "description": "The response of a StorageAccount list operation.", + "properties": { + "value": { + "type": "array", + "description": "The StorageAccount items on this page", + "items": { + "$ref": "#/definitions/StorageAccount" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "StorageAccountMicrosoftEndpoints": { + "type": "object", + "description": "The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object via a microsoft routing endpoint.", + "properties": { + "blob": { + "type": "string", + "description": "Gets the blob endpoint.", + "readOnly": true + }, + "queue": { + "type": "string", + "description": "Gets the queue endpoint.", + "readOnly": true + }, + "table": { + "type": "string", + "description": "Gets the table endpoint.", + "readOnly": true + }, + "file": { + "type": "string", + "description": "Gets the file endpoint.", + "readOnly": true + }, + "web": { + "type": "string", + "description": "Gets the web endpoint.", + "readOnly": true + }, + "dfs": { + "type": "string", + "description": "Gets the dfs endpoint.", + "readOnly": true + } + } + }, + "StorageAccountMigration": { + "type": "object", + "description": "The parameters or status associated with an ongoing or enqueued storage account migration in order to update its current SKU or region.", + "properties": { + "properties": { + "$ref": "#/definitions/StorageAccountMigrationProperties", + "description": "The properties of a storage account’s ongoing or enqueued migration.", + "x-ms-client-flatten": true, + "x-ms-client-name": "StorageAccountMigrationDetails" + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "StorageAccountMigrationProperties": { + "type": "object", + "description": "The properties of a storage account's ongoing or enqueued migration.", + "properties": { + "targetSkuName": { + "$ref": "#/definitions/SkuName", + "description": "Target sku name for the account" + }, + "migrationStatus": { + "$ref": "#/definitions/migrationStatus", + "description": "Current status of migration", + "readOnly": true + }, + "migrationFailedReason": { + "type": "string", + "description": "Error code for migration failure", + "readOnly": true + }, + "migrationFailedDetailedReason": { + "type": "string", + "description": "Reason for migration failure", + "readOnly": true + } + }, + "required": [ + "targetSkuName" + ] + }, + "StorageAccountProperties": { + "type": "object", + "description": "Properties of the storage account.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Gets the status of the storage account at the time the operation was called.", + "readOnly": true + }, + "primaryEndpoints": { + "$ref": "#/definitions/Endpoints", + "description": "Gets the URLs that are used to perform a retrieval of a public blob, queue, or table object. Note that Standard_ZRS and Premium_LRS accounts only return the blob endpoint.", + "readOnly": true + }, + "primaryLocation": { + "type": "string", + "description": "Gets the location of the primary data center for the storage account.", + "readOnly": true + }, + "statusOfPrimary": { + "$ref": "#/definitions/AccountStatus", + "description": "Gets the status indicating whether the primary location of the storage account is available or unavailable.", + "readOnly": true + }, + "lastGeoFailoverTime": { + "type": "string", + "format": "date-time", + "description": "Gets the timestamp of the most recent instance of a failover to the secondary location. Only the most recent timestamp is retained. This element is not returned if there has never been a failover instance. Only available if the accountType is Standard_GRS or Standard_RAGRS.", + "readOnly": true + }, + "secondaryLocation": { + "type": "string", + "description": "Gets the location of the geo-replicated secondary for the storage account. Only available if the accountType is Standard_GRS or Standard_RAGRS.", + "readOnly": true + }, + "statusOfSecondary": { + "$ref": "#/definitions/AccountStatus", + "description": "Gets the status indicating whether the secondary location of the storage account is available or unavailable. Only available if the SKU name is Standard_GRS or Standard_RAGRS.", + "readOnly": true + }, + "creationTime": { + "type": "string", + "format": "date-time", + "description": "Gets the creation date and time of the storage account in UTC.", + "readOnly": true + }, + "customDomain": { + "$ref": "#/definitions/CustomDomain", + "description": "Gets the custom domain the user assigned to this storage account.", + "readOnly": true + }, + "sasPolicy": { + "$ref": "#/definitions/SasPolicy", + "description": "SasPolicy assigned to the storage account.", + "readOnly": true + }, + "keyPolicy": { + "$ref": "#/definitions/KeyPolicy", + "description": "KeyPolicy assigned to the storage account.", + "readOnly": true + }, + "keyCreationTime": { + "$ref": "#/definitions/KeyCreationTime", + "description": "Storage account keys creation time.", + "readOnly": true + }, + "secondaryEndpoints": { + "$ref": "#/definitions/Endpoints", + "description": "Gets the URLs that are used to perform a retrieval of a public blob, queue, or table object from the secondary location of the storage account. Only available if the SKU name is Standard_RAGRS.", + "readOnly": true + }, + "encryption": { + "$ref": "#/definitions/Encryption", + "description": "Encryption settings to be used for server-side encryption for the storage account.", + "readOnly": true + }, + "accessTier": { + "$ref": "#/definitions/AccessTier", + "description": "Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type.", + "readOnly": true + }, + "azureFilesIdentityBasedAuthentication": { + "$ref": "#/definitions/AzureFilesIdentityBasedAuthentication", + "description": "Provides the identity based authentication settings for Azure Files." + }, + "supportsHttpsTrafficOnly": { + "type": "boolean", + "description": "Allows https traffic only to storage service if sets to true.", + "x-ms-client-name": "EnableHttpsTrafficOnly" + }, + "networkAcls": { + "$ref": "#/definitions/NetworkRuleSet", + "description": "Network rule set", + "readOnly": true, + "x-ms-client-name": "NetworkRuleSet" + }, + "isSftpEnabled": { + "type": "boolean", + "description": "Enables Secure File Transfer Protocol, if set to true", + "x-ms-client-name": "IsSftpEnabled" + }, + "isLocalUserEnabled": { + "type": "boolean", + "description": "Enables local users feature, if set to true", + "x-ms-client-name": "IsLocalUserEnabled" + }, + "enableExtendedGroups": { + "type": "boolean", + "description": "Enables extended group support with local users feature, if set to true", + "x-ms-client-name": "EnableExtendedGroups" + }, + "isHnsEnabled": { + "type": "boolean", + "description": "Account HierarchicalNamespace enabled if sets to true.", + "x-ms-client-name": "IsHnsEnabled" + }, + "geoReplicationStats": { + "$ref": "#/definitions/GeoReplicationStats", + "description": "Geo Replication Stats", + "readOnly": true, + "x-ms-client-name": "GeoReplicationStats" + }, + "failoverInProgress": { + "type": "boolean", + "description": "If the failover is in progress, the value will be true, otherwise, it will be null.", + "readOnly": true, + "x-ms-client-name": "FailoverInProgress" + }, + "largeFileSharesState": { + "$ref": "#/definitions/LargeFileSharesState", + "description": "Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled." + }, + "privateEndpointConnections": { + "type": "array", + "description": "List of private endpoint connection associated with the specified storage account", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "readOnly": true + }, + "routingPreference": { + "$ref": "#/definitions/RoutingPreference", + "description": "Maintains information about the network routing choice opted by the user for data transfer", + "x-ms-client-name": "RoutingPreference" + }, + "dualStackEndpointPreference": { + "$ref": "#/definitions/DualStackEndpointPreference", + "description": "Maintains information about the Internet protocol opted by the user." + }, + "blobRestoreStatus": { + "$ref": "#/definitions/BlobRestoreStatus", + "description": "Blob restore status", + "readOnly": true, + "x-ms-client-name": "BlobRestoreStatus" + }, + "allowBlobPublicAccess": { + "type": "boolean", + "description": "Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is false for this property.", + "x-ms-client-name": "AllowBlobPublicAccess" + }, + "minimumTlsVersion": { + "$ref": "#/definitions/MinimumTlsVersion", + "description": "Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property." + }, + "allowSharedKeyAccess": { + "type": "boolean", + "description": "Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true." + }, + "isNfsV3Enabled": { + "type": "boolean", + "description": "NFS 3.0 protocol support enabled if set to true.", + "x-ms-client-name": "EnableNfsV3" + }, + "allowCrossTenantReplication": { + "type": "boolean", + "description": "Allow or disallow cross AAD tenant object replication. Set this property to true for new or existing accounts only if object replication policies will involve storage accounts in different AAD tenants. The default interpretation is false for new accounts to follow best security practices by default." + }, + "defaultToOAuthAuthentication": { + "type": "boolean", + "description": "A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property." + }, + "publicNetworkAccess": { + "$ref": "#/definitions/PublicNetworkAccess", + "description": "Allow, disallow, or let Network Security Perimeter configuration to evaluate public network access to Storage Account." + }, + "immutableStorageWithVersioning": { + "$ref": "#/definitions/ImmutableStorageAccount", + "description": "The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the containers in the account by default.", + "x-ms-client-name": "ImmutableStorageWithVersioning" + }, + "allowedCopyScope": { + "$ref": "#/definitions/AllowedCopyScope", + "description": "Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet." + }, + "storageAccountSkuConversionStatus": { + "$ref": "#/definitions/StorageAccountSkuConversionStatus", + "description": "This property is readOnly and is set by server during asynchronous storage account sku conversion operations.", + "x-ms-client-name": "StorageAccountSkuConversionStatus" + }, + "dnsEndpointType": { + "$ref": "#/definitions/DnsEndpointType", + "description": "Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier." + }, + "isSkuConversionBlocked": { + "type": "boolean", + "description": "This property will be set to true or false on an event of ongoing migration. Default value is null.", + "readOnly": true, + "x-ms-client-name": "IsSkuConversionBlocked" + }, + "accountMigrationInProgress": { + "type": "boolean", + "description": "If customer initiated account migration is in progress, the value will be true else it will be null.", + "readOnly": true, + "x-ms-client-name": "AccountMigrationInProgress" + }, + "geoPriorityReplicationStatus": { + "$ref": "#/definitions/GeoPriorityReplicationStatus", + "description": "Status indicating whether Geo Priority Replication is enabled for the account." + } + } + }, + "StorageAccountPropertiesCreateParameters": { + "type": "object", + "description": "The parameters used to create the storage account.", + "properties": { + "allowedCopyScope": { + "$ref": "#/definitions/AllowedCopyScope", + "description": "Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet." + }, + "publicNetworkAccess": { + "$ref": "#/definitions/PublicNetworkAccess", + "description": "Allow, disallow, or let Network Security Perimeter configuration to evaluate public network access to Storage Account. Value is optional but if passed in, must be 'Enabled', 'Disabled' or 'SecuredByPerimeter'." + }, + "sasPolicy": { + "$ref": "#/definitions/SasPolicy", + "description": "SasPolicy assigned to the storage account." + }, + "keyPolicy": { + "$ref": "#/definitions/KeyPolicy", + "description": "KeyPolicy assigned to the storage account." + }, + "customDomain": { + "$ref": "#/definitions/CustomDomain", + "description": "User domain assigned to the storage account. Name is the CNAME source. Only one custom domain is supported per storage account at this time. To clear the existing custom domain, use an empty string for the custom domain name property." + }, + "encryption": { + "$ref": "#/definitions/Encryption", + "description": "Encryption settings to be used for server-side encryption for the storage account." + }, + "networkAcls": { + "$ref": "#/definitions/NetworkRuleSet", + "description": "Network rule set", + "x-ms-client-name": "NetworkRuleSet" + }, + "accessTier": { + "$ref": "#/definitions/AccessTier", + "description": "Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type." + }, + "azureFilesIdentityBasedAuthentication": { + "$ref": "#/definitions/AzureFilesIdentityBasedAuthentication", + "description": "Provides the identity based authentication settings for Azure Files." + }, + "supportsHttpsTrafficOnly": { + "type": "boolean", + "description": "Allows https traffic only to storage service if sets to true. The default value is true since API version 2019-04-01.", + "x-ms-client-name": "EnableHttpsTrafficOnly" + }, + "isSftpEnabled": { + "type": "boolean", + "description": "Enables Secure File Transfer Protocol, if set to true", + "x-ms-client-name": "IsSftpEnabled" + }, + "isLocalUserEnabled": { + "type": "boolean", + "description": "Enables local users feature, if set to true", + "x-ms-client-name": "IsLocalUserEnabled" + }, + "enableExtendedGroups": { + "type": "boolean", + "description": "Enables extended group support with local users feature, if set to true", + "x-ms-client-name": "EnableExtendedGroups" + }, + "isHnsEnabled": { + "type": "boolean", + "description": "Account HierarchicalNamespace enabled if sets to true.", + "x-ms-client-name": "IsHnsEnabled" + }, + "largeFileSharesState": { + "$ref": "#/definitions/LargeFileSharesState", + "description": "Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled." + }, + "routingPreference": { + "$ref": "#/definitions/RoutingPreference", + "description": "Maintains information about the network routing choice opted by the user for data transfer", + "x-ms-client-name": "RoutingPreference" + }, + "dualStackEndpointPreference": { + "$ref": "#/definitions/DualStackEndpointPreference", + "description": "Maintains information about the Internet protocol opted by the user." + }, + "allowBlobPublicAccess": { + "type": "boolean", + "description": "Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is false for this property.", + "x-ms-client-name": "AllowBlobPublicAccess" + }, + "minimumTlsVersion": { + "$ref": "#/definitions/MinimumTlsVersion", + "description": "Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property." + }, + "allowSharedKeyAccess": { + "type": "boolean", + "description": "Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true." + }, + "isNfsV3Enabled": { + "type": "boolean", + "description": "NFS 3.0 protocol support enabled if set to true.", + "x-ms-client-name": "EnableNfsV3" + }, + "allowCrossTenantReplication": { + "type": "boolean", + "description": "Allow or disallow cross AAD tenant object replication. Set this property to true for new or existing accounts only if object replication policies will involve storage accounts in different AAD tenants. The default interpretation is false for new accounts to follow best security practices by default." + }, + "defaultToOAuthAuthentication": { + "type": "boolean", + "description": "A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property." + }, + "immutableStorageWithVersioning": { + "$ref": "#/definitions/ImmutableStorageAccount", + "description": "The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the new containers in the account by default.", + "x-ms-client-name": "ImmutableStorageWithVersioning" + }, + "dnsEndpointType": { + "$ref": "#/definitions/DnsEndpointType", + "description": "Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier." + }, + "geoPriorityReplicationStatus": { + "$ref": "#/definitions/GeoPriorityReplicationStatus", + "description": "Status indicating whether Geo Priority Replication is enabled for the account." + } + } + }, + "StorageAccountPropertiesUpdateParameters": { + "type": "object", + "description": "The parameters used when updating a storage account.", + "properties": { + "customDomain": { + "$ref": "#/definitions/CustomDomain", + "description": "Custom domain assigned to the storage account by the user. Name is the CNAME source. Only one custom domain is supported per storage account at this time. To clear the existing custom domain, use an empty string for the custom domain name property." + }, + "encryption": { + "$ref": "#/definitions/Encryption", + "description": "Not applicable. Azure Storage encryption at rest is enabled by default for all storage accounts and cannot be disabled." + }, + "sasPolicy": { + "$ref": "#/definitions/SasPolicy", + "description": "SasPolicy assigned to the storage account." + }, + "keyPolicy": { + "$ref": "#/definitions/KeyPolicy", + "description": "KeyPolicy assigned to the storage account." + }, + "accessTier": { + "$ref": "#/definitions/AccessTier", + "description": "Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type." + }, + "azureFilesIdentityBasedAuthentication": { + "$ref": "#/definitions/AzureFilesIdentityBasedAuthentication", + "description": "Provides the identity based authentication settings for Azure Files." + }, + "supportsHttpsTrafficOnly": { + "type": "boolean", + "description": "Allows https traffic only to storage service if sets to true.", + "x-ms-client-name": "EnableHttpsTrafficOnly" + }, + "isSftpEnabled": { + "type": "boolean", + "description": "Enables Secure File Transfer Protocol, if set to true", + "x-ms-client-name": "IsSftpEnabled" + }, + "isLocalUserEnabled": { + "type": "boolean", + "description": "Enables local users feature, if set to true", + "x-ms-client-name": "IsLocalUserEnabled" + }, + "enableExtendedGroups": { + "type": "boolean", + "description": "Enables extended group support with local users feature, if set to true", + "x-ms-client-name": "EnableExtendedGroups" + }, + "networkAcls": { + "$ref": "#/definitions/NetworkRuleSet", + "description": "Network rule set", + "x-ms-client-name": "NetworkRuleSet" + }, + "largeFileSharesState": { + "$ref": "#/definitions/LargeFileSharesState", + "description": "Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled." + }, + "routingPreference": { + "$ref": "#/definitions/RoutingPreference", + "description": "Maintains information about the network routing choice opted by the user for data transfer", + "x-ms-client-name": "RoutingPreference" + }, + "dualStackEndpointPreference": { + "$ref": "#/definitions/DualStackEndpointPreference", + "description": "Maintains information about the Internet protocol opted by the user." + }, + "allowBlobPublicAccess": { + "type": "boolean", + "description": "Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is false for this property.", + "x-ms-client-name": "AllowBlobPublicAccess" + }, + "minimumTlsVersion": { + "$ref": "#/definitions/MinimumTlsVersion", + "description": "Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property." + }, + "allowSharedKeyAccess": { + "type": "boolean", + "description": "Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true." + }, + "allowCrossTenantReplication": { + "type": "boolean", + "description": "Allow or disallow cross AAD tenant object replication. Set this property to true for new or existing accounts only if object replication policies will involve storage accounts in different AAD tenants. The default interpretation is false for new accounts to follow best security practices by default." + }, + "defaultToOAuthAuthentication": { + "type": "boolean", + "description": "A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property." + }, + "publicNetworkAccess": { + "$ref": "#/definitions/PublicNetworkAccess", + "description": "Allow, disallow, or let Network Security Perimeter configuration to evaluate public network access to Storage Account. Value is optional but if passed in, must be 'Enabled', 'Disabled' or 'SecuredByPerimeter'." + }, + "immutableStorageWithVersioning": { + "$ref": "#/definitions/ImmutableStorageAccount", + "description": "The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the containers in the account by default.", + "x-ms-client-name": "ImmutableStorageWithVersioning" + }, + "allowedCopyScope": { + "$ref": "#/definitions/AllowedCopyScope", + "description": "Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet." + }, + "dnsEndpointType": { + "$ref": "#/definitions/DnsEndpointType", + "description": "Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier." + }, + "geoPriorityReplicationStatus": { + "$ref": "#/definitions/GeoPriorityReplicationStatus", + "description": "Status indicating whether Geo Priority Replication is enabled for the account." + } + } + }, + "StorageAccountRegenerateKeyParameters": { + "type": "object", + "description": "The parameters used to regenerate the storage account key.", + "properties": { + "keyName": { + "type": "string", + "description": "The name of storage keys that want to be regenerated, possible values are key1, key2, kerb1, kerb2." + } + }, + "required": [ + "keyName" + ] + }, + "StorageAccountSkuConversionStatus": { + "type": "object", + "description": "This defines the sku conversion status object for asynchronous sku conversions.", + "properties": { + "skuConversionStatus": { + "$ref": "#/definitions/SkuConversionStatus", + "description": "This property indicates the current sku conversion status.", + "readOnly": true + }, + "targetSkuName": { + "$ref": "#/definitions/SkuName", + "description": "This property represents the target sku name to which the account sku is being converted asynchronously." + }, + "startTime": { + "type": "string", + "description": "This property represents the sku conversion start time.", + "readOnly": true + }, + "endTime": { + "type": "string", + "description": "This property represents the sku conversion end time.", + "readOnly": true + } + } + }, + "StorageAccountUpdateParameters": { + "type": "object", + "description": "The parameters that can be provided when updating the storage account properties.", + "properties": { + "sku": { + "$ref": "#/definitions/Sku", + "description": "Gets or sets the SKU name. Note that the SKU name cannot be updated to Standard_ZRS, Premium_LRS or Premium_ZRS, nor can accounts of those SKU names be updated to any other value." + }, + "tags": { + "type": "object", + "description": "Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater in length than 128 characters and a value no greater in length than 256 characters.", + "additionalProperties": { + "type": "string" + } + }, + "identity": { + "$ref": "#/definitions/Identity", + "description": "The identity of the resource." + }, + "properties": { + "$ref": "#/definitions/StorageAccountPropertiesUpdateParameters", + "description": "The parameters used when updating a storage account.", + "x-ms-client-flatten": true + }, + "kind": { + "$ref": "#/definitions/Kind", + "description": "Optional. Indicates the type of storage account. Currently only StorageV2 value supported by server." + }, + "zones": { + "type": "array", + "description": "Optional. Gets or sets the pinned logical availability zone for the storage account.", + "items": { + "type": "string" + } + }, + "placement": { + "$ref": "#/definitions/Placement", + "description": "Optional. Gets or sets the zonal placement details for the storage account." + } + } + }, + "StorageQueue": { + "type": "object", + "description": "Concrete proxy resource types can be created by aliasing this type using a specific property type.", + "properties": { + "properties": { + "$ref": "#/definitions/QueueProperties", + "description": "Queue resource properties.", + "x-ms-client-flatten": true, + "x-ms-client-name": "QueueProperties" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "StorageSkuListResult": { + "type": "object", + "description": "The response from the List Storage SKUs operation.", + "properties": { + "value": { + "type": "array", + "description": "Get the list result of storage SKUs and their properties.", + "items": { + "$ref": "#/definitions/SkuInformation" + }, + "readOnly": true + }, + "nextLink": { + "type": "string" + } + } + }, + "StorageTaskAssignment": { + "type": "object", + "description": "The storage task assignment.", + "properties": { + "properties": { + "$ref": "#/definitions/StorageTaskAssignmentProperties", + "description": "Properties of the storage task assignment." + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "StorageTaskAssignmentExecutionContext": { + "type": "object", + "description": "Execution context of the storage task assignment.", + "properties": { + "target": { + "$ref": "#/definitions/ExecutionTarget", + "description": "Execution target of the storage task assignment" + }, + "trigger": { + "$ref": "#/definitions/ExecutionTrigger", + "description": "Execution trigger of the storage task assignment" + } + }, + "required": [ + "trigger" + ] + }, + "StorageTaskAssignmentProperties": { + "type": "object", + "description": "Properties of the storage task assignment.", + "properties": { + "taskId": { + "type": "string", + "format": "arm-id", + "description": "Id of the corresponding storage task" + }, + "enabled": { + "type": "boolean", + "description": "Whether the storage task assignment is enabled or not" + }, + "description": { + "type": "string", + "description": "Text that describes the purpose of the storage task assignment" + }, + "executionContext": { + "$ref": "#/definitions/StorageTaskAssignmentExecutionContext", + "description": "The storage task assignment execution context" + }, + "report": { + "$ref": "#/definitions/StorageTaskAssignmentReport", + "description": "The storage task assignment report" + }, + "provisioningState": { + "$ref": "#/definitions/StorageTaskAssignmentProvisioningState", + "description": "Represents the provisioning state of the storage task assignment.", + "readOnly": true + }, + "runStatus": { + "$ref": "#/definitions/StorageTaskReportProperties", + "description": "Run status of storage task assignment" + } + }, + "required": [ + "taskId", + "enabled", + "description", + "executionContext", + "report" + ] + }, + "StorageTaskAssignmentProvisioningState": { + "type": "string", + "description": "Gets the status of the storage account at the time the operation was called.", + "enum": [ + "ValidateSubscriptionQuotaBegin", + "ValidateSubscriptionQuotaEnd", + "Accepted", + "Creating", + "Succeeded", + "Deleting", + "Canceled", + "Failed" + ], + "x-ms-enum": { + "name": "StorageTaskAssignmentProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "ValidateSubscriptionQuotaBegin", + "value": "ValidateSubscriptionQuotaBegin" + }, + { + "name": "ValidateSubscriptionQuotaEnd", + "value": "ValidateSubscriptionQuotaEnd" + }, + { + "name": "Accepted", + "value": "Accepted" + }, + { + "name": "Creating", + "value": "Creating" + }, + { + "name": "Succeeded", + "value": "Succeeded" + }, + { + "name": "Deleting", + "value": "Deleting" + }, + { + "name": "Canceled", + "value": "Canceled" + }, + { + "name": "Failed", + "value": "Failed" + } + ] + } + }, + "StorageTaskAssignmentReport": { + "type": "object", + "description": "The storage task assignment report", + "properties": { + "prefix": { + "type": "string", + "description": "The container prefix for the location of storage task assignment report" + } + }, + "required": [ + "prefix" + ] + }, + "StorageTaskAssignmentUpdateExecutionContext": { + "type": "object", + "description": "Execution context of the storage task assignment update.", + "properties": { + "target": { + "$ref": "#/definitions/ExecutionTarget", + "description": "Execution target of the storage task assignment" + }, + "trigger": { + "$ref": "#/definitions/ExecutionTriggerUpdate", + "description": "Execution trigger of the storage task assignment" + } + } + }, + "StorageTaskAssignmentUpdateParameters": { + "type": "object", + "description": "Parameters of the storage task assignment update request", + "properties": { + "properties": { + "$ref": "#/definitions/StorageTaskAssignmentUpdateProperties", + "description": "Properties of the storage task assignment." + } + } + }, + "StorageTaskAssignmentUpdateProperties": { + "type": "object", + "description": "Properties of the storage task update assignment.", + "properties": { + "taskId": { + "type": "string", + "description": "Id of the corresponding storage task", + "readOnly": true + }, + "enabled": { + "type": "boolean", + "description": "Whether the storage task assignment is enabled or not" + }, + "description": { + "type": "string", + "description": "Text that describes the purpose of the storage task assignment" + }, + "executionContext": { + "$ref": "#/definitions/StorageTaskAssignmentUpdateExecutionContext", + "description": "The storage task assignment execution context" + }, + "report": { + "$ref": "#/definitions/StorageTaskAssignmentUpdateReport", + "description": "The storage task assignment report" + }, + "provisioningState": { + "$ref": "#/definitions/StorageTaskAssignmentProvisioningState", + "description": "Represents the provisioning state of the storage task assignment.", + "readOnly": true + }, + "runStatus": { + "$ref": "#/definitions/StorageTaskReportProperties", + "description": "Run status of storage task assignment" + } + } + }, + "StorageTaskAssignmentUpdateReport": { + "type": "object", + "description": "The storage task assignment report", + "properties": { + "prefix": { + "type": "string", + "description": "The prefix of the storage task assignment report" + } + } + }, + "StorageTaskAssignmentsList": { + "type": "object", + "description": "List of storage task assignments for the storage account", + "properties": { + "value": { + "type": "array", + "description": "The StorageTaskAssignment items on this page", + "items": { + "$ref": "#/definitions/StorageTaskAssignment" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "StorageTaskReportInstance": { + "type": "object", + "description": "Storage Tasks run report instance", + "properties": { + "properties": { + "$ref": "#/definitions/StorageTaskReportProperties", + "description": "Storage task execution report for a run instance." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "StorageTaskReportProperties": { + "type": "object", + "description": "Storage task execution report for a run instance.", + "properties": { + "taskAssignmentId": { + "type": "string", + "format": "arm-id", + "description": "Represents the Storage Task Assignment Id associated with the storage task that provided an execution context.", + "readOnly": true, + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments" + } + ] + } + }, + "storageAccountId": { + "type": "string", + "format": "arm-id", + "description": "Represents the Storage Account Id where the storage task definition was applied and executed.", + "readOnly": true, + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Storage/storageAccounts" + } + ] + } + }, + "startTime": { + "type": "string", + "description": "Start time of the run instance. Filter options such as startTime gt '2023-06-26T20:51:24.4494016Z' and other comparison operators can be used as described for DateTime properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators", + "readOnly": true + }, + "finishTime": { + "type": "string", + "description": "End time of the run instance. Filter options such as startTime gt '2023-06-26T20:51:24.4494016Z' and other comparison operators can be used as described for DateTime properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators", + "readOnly": true + }, + "objectsTargetedCount": { + "type": "string", + "description": "Total number of objects that meet the condition as defined in the storage task assignment execution context. Filter options such as objectsTargetedCount gt 50 and other comparison operators can be used as described for Numerical properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators", + "readOnly": true + }, + "objectsOperatedOnCount": { + "type": "string", + "description": "Total number of objects that meet the storage tasks condition and were operated upon. Filter options such as objectsOperatedOnCount ge 100 and other comparison operators can be used as described for Numerical properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators", + "readOnly": true + }, + "objectFailedCount": { + "type": "string", + "description": "Total number of objects where task operation failed when was attempted. Filter options such as objectFailedCount eq 0 and other comparison operators can be used as described for Numerical properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators", + "readOnly": true + }, + "objectsSucceededCount": { + "type": "string", + "description": "Total number of objects where task operation succeeded when was attempted.Filter options such as objectsSucceededCount gt 150 and other comparison operators can be used as described for Numerical properties in https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#supported-comparison-operators", + "readOnly": true + }, + "runStatusError": { + "type": "string", + "description": "Well known Azure Storage error code that represents the error encountered during execution of the run instance.", + "readOnly": true + }, + "runStatusEnum": { + "$ref": "#/definitions/RunStatusEnum", + "description": "Represents the status of the execution.", + "readOnly": true + }, + "summaryReportPath": { + "type": "string", + "description": "Full path to the verbose report stored in the reporting container as specified in the assignment execution context for the storage account.", + "readOnly": true + }, + "taskId": { + "type": "string", + "format": "arm-id", + "description": "Storage Task Arm Id.", + "readOnly": true, + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.StorageActions/storageTasks" + } + ] + } + }, + "taskVersion": { + "type": "string", + "description": "Storage Task Version", + "readOnly": true + }, + "runResult": { + "$ref": "#/definitions/RunResult", + "description": "Represents the overall result of the execution for the run instance", + "readOnly": true + } + } + }, + "StorageTaskReportSummary": { + "type": "object", + "description": "Fetch Storage Tasks Run Summary.", + "properties": { + "value": { + "type": "array", + "description": "The StorageTaskReportInstance items on this page", + "items": { + "$ref": "#/definitions/StorageTaskReportInstance" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "Table": { + "type": "object", + "description": "Properties of the table, including Id, resource name, resource type.", + "properties": { + "properties": { + "$ref": "#/definitions/TableProperties", + "description": "Table resource properties.", + "x-ms-client-flatten": true, + "x-ms-client-name": "TableProperties" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "TableAccessPolicy": { + "type": "object", + "description": "Table Access Policy Properties Object.", + "properties": { + "startTime": { + "type": "string", + "format": "date-time", + "description": "Start time of the access policy" + }, + "expiryTime": { + "type": "string", + "format": "date-time", + "description": "Expiry time of the access policy" + }, + "permission": { + "type": "string", + "description": "Required. List of abbreviated permissions. Supported permission values include 'r','a','u','d'" + } + }, + "required": [ + "permission" + ] + }, + "TableProperties": { + "type": "object", + "properties": { + "tableName": { + "type": "string", + "description": "Table name under the specified account", + "readOnly": true + }, + "signedIdentifiers": { + "type": "array", + "description": "List of stored access policies specified on the table.", + "items": { + "$ref": "#/definitions/TableSignedIdentifier" + } + } + } + }, + "TableServiceProperties": { + "type": "object", + "description": "The properties of a storage account’s Table service.", + "properties": { + "properties": { + "$ref": "#/definitions/TableServicePropertiesProperties", + "description": "The properties of a storage account’s Table service.", + "x-ms-client-flatten": true, + "x-ms-client-name": "TableServiceProperties" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "TableServicePropertiesProperties": { + "type": "object", + "description": "The properties of a storage account’s Table service.", + "properties": { + "cors": { + "$ref": "#/definitions/CorsRules", + "description": "Specifies CORS rules for the Table service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Table service." + } + } + }, + "TableSignedIdentifier": { + "type": "object", + "description": "Object to set Table Access Policy.", + "properties": { + "id": { + "type": "string", + "description": "unique-64-character-value of the stored access policy." + }, + "accessPolicy": { + "$ref": "#/definitions/TableAccessPolicy", + "description": "Access policy" + } + }, + "required": [ + "id" + ] + }, + "TagFilter": { + "type": "object", + "description": "Blob index tag based filtering for blob objects", + "properties": { + "name": { + "type": "string", + "description": "This is the filter tag name, it can have 1 - 128 characters", + "minLength": 1, + "maxLength": 128 + }, + "op": { + "type": "string", + "description": "This is the comparison operator which is used for object comparison and filtering. Only == (equality operator) is currently supported" + }, + "value": { + "type": "string", + "description": "This is the filter tag value field used for tag based filtering, it can have 0 - 256 characters", + "minLength": 0, + "maxLength": 256 + } + }, + "required": [ + "name", + "op", + "value" + ] + }, + "TagProperty": { + "type": "object", + "description": "A tag of the LegalHold of a blob container.", + "properties": { + "tag": { + "type": "string", + "description": "The tag value.", + "readOnly": true + }, + "timestamp": { + "type": "string", + "format": "date-time", + "description": "Returns the date and time the tag was added.", + "readOnly": true + }, + "objectIdentifier": { + "type": "string", + "description": "Returns the Object ID of the user who added the tag.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "description": "Returns the Tenant ID that issued the token for the user who added the tag.", + "readOnly": true + }, + "upn": { + "type": "string", + "description": "Returns the User Principal Name of the user who added the tag.", + "readOnly": true + } + } + }, + "TriggerParameters": { + "type": "object", + "description": "The trigger parameters update for the storage task assignment execution", + "properties": { + "startFrom": { + "type": "string", + "format": "date-time", + "description": "When to start task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" + }, + "interval": { + "type": "integer", + "format": "int32", + "description": "Run interval of task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'", + "minimum": 1 + }, + "intervalUnit": { + "$ref": "#/definitions/IntervalUnit", + "description": "Run interval unit of task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" + }, + "endBy": { + "type": "string", + "format": "date-time", + "description": "When to end task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" + }, + "startOn": { + "type": "string", + "format": "date-time", + "description": "When to start task execution. This is a required field when ExecutionTrigger.properties.type is 'RunOnce'; this property should not be present when ExecutionTrigger.properties.type is 'OnSchedule'" + } + } + }, + "TriggerParametersUpdate": { + "type": "object", + "description": "The trigger parameters update for the storage task assignment execution", + "properties": { + "startFrom": { + "type": "string", + "format": "date-time", + "description": "When to start task execution. This is a mutable field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" + }, + "interval": { + "type": "integer", + "format": "int32", + "description": "Run interval of task execution. This is a mutable field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'", + "minimum": 1 + }, + "intervalUnit": { + "$ref": "#/definitions/IntervalUnit", + "description": "Run interval unit of task execution. This is a mutable field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" + }, + "endBy": { + "type": "string", + "format": "date-time", + "description": "When to end task execution. This is a mutable field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" + }, + "startOn": { + "type": "string", + "format": "date-time", + "description": "When to start task execution. This is a mutable field when ExecutionTrigger.properties.type is 'RunOnce'; this property should not be present when ExecutionTrigger.properties.type is 'OnSchedule'" + } + } + }, + "TriggerType": { + "type": "string", + "description": "The trigger type of the storage task assignment execution", + "enum": [ + "RunOnce", + "OnSchedule" + ], + "x-ms-enum": { + "name": "TriggerType", + "modelAsString": true, + "values": [ + { + "name": "RunOnce", + "value": "RunOnce" + }, + { + "name": "OnSchedule", + "value": "OnSchedule" + } + ] + } + }, + "UpdateHistoryProperty": { + "type": "object", + "description": "An update history of the ImmutabilityPolicy of a blob container.", + "properties": { + "update": { + "$ref": "#/definitions/ImmutabilityPolicyUpdateType", + "description": "The ImmutabilityPolicy update type of a blob container, possible values include: put, lock and extend.", + "readOnly": true + }, + "immutabilityPeriodSinceCreationInDays": { + "type": "integer", + "format": "int32", + "description": "The immutability period for the blobs in the container since the policy creation, in days.", + "readOnly": true + }, + "timestamp": { + "type": "string", + "format": "date-time", + "description": "Returns the date and time the ImmutabilityPolicy was updated.", + "readOnly": true + }, + "objectIdentifier": { + "type": "string", + "description": "Returns the Object ID of the user who updated the ImmutabilityPolicy.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "description": "Returns the Tenant ID that issued the token for the user who updated the ImmutabilityPolicy.", + "readOnly": true + }, + "upn": { + "type": "string", + "description": "Returns the User Principal Name of the user who updated the ImmutabilityPolicy.", + "readOnly": true + }, + "allowProtectedAppendWrites": { + "type": "boolean", + "description": "This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API." + }, + "allowProtectedAppendWritesAll": { + "type": "boolean", + "description": "This property can only be changed for unlocked time-based retention policies. When enabled, new blocks can be written to both 'Append and Bock Blobs' while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted. This property cannot be changed with ExtendImmutabilityPolicy API. The 'allowProtectedAppendWrites' and 'allowProtectedAppendWritesAll' properties are mutually exclusive." + } + } + }, + "Usage": { + "type": "object", + "description": "Describes Storage Resource Usage.", + "properties": { + "unit": { + "$ref": "#/definitions/UsageUnit", + "description": "Gets the unit of measurement.", + "readOnly": true + }, + "currentValue": { + "type": "integer", + "format": "int32", + "description": "Gets the current count of the allocated resources in the subscription.", + "readOnly": true + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "Gets the maximum count of the resources that can be allocated in the subscription.", + "readOnly": true + }, + "name": { + "$ref": "#/definitions/UsageName", + "description": "Gets the name of the type of usage.", + "readOnly": true + } + } + }, + "UsageListResult": { + "type": "object", + "description": "The response from the List Usages operation.", + "properties": { + "value": { + "type": "array", + "description": "Gets or sets the list of Storage Resource Usages.", + "items": { + "$ref": "#/definitions/Usage" + } + }, + "nextLink": { + "type": "string" + } + } + }, + "UsageName": { + "type": "object", + "description": "The usage names that can be used; currently limited to StorageAccount.", + "properties": { + "value": { + "type": "string", + "description": "Gets a string describing the resource name.", + "readOnly": true + }, + "localizedValue": { + "type": "string", + "description": "Gets a localized string describing the resource name.", + "readOnly": true + } + } + }, + "UsageUnit": { + "type": "string", + "description": "Gets the unit of measurement.", + "enum": [ + "Count", + "Bytes", + "Seconds", + "Percent", + "CountsPerSecond", + "BytesPerSecond" + ], + "x-ms-enum": { + "name": "UsageUnit", + "modelAsString": false + } + }, + "UserAssignedIdentity": { + "type": "object", + "description": "UserAssignedIdentity for the resource.", + "properties": { + "principalId": { + "type": "string", + "description": "The principal ID of the identity.", + "readOnly": true + }, + "clientId": { + "type": "string", + "description": "The client ID of the identity.", + "readOnly": true + } + } + }, + "VirtualNetworkRule": { + "type": "object", + "description": "Virtual Network rule.", + "properties": { + "id": { + "type": "string", + "description": "Resource ID of a subnet, for example: /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}.", + "x-ms-client-name": "VirtualNetworkResourceId" + }, + "action": { + "type": "string", + "description": "The action of virtual network rule.", + "enum": [ + "Allow" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "state": { + "$ref": "#/definitions/State", + "description": "Gets the state of virtual network rule." + } + }, + "required": [ + "id" + ] + }, + "ZonePlacementPolicy": { + "type": "string", + "description": "The availability zone pinning policy for the storage account.", + "enum": [ + "Any", + "None" + ], + "x-ms-enum": { + "name": "ZonePlacementPolicy", + "modelAsString": true, + "values": [ + { + "name": "Any", + "value": "Any" + }, + { + "name": "None", + "value": "None" + } + ] + } + }, + "migrationStatus": { + "type": "string", + "description": "Current status of migration", + "enum": [ + "Invalid", + "SubmittedForConversion", + "InProgress", + "Complete", + "Failed" + ], + "x-ms-enum": { + "name": "migrationStatus", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "SubmittedForConversion", + "value": "SubmittedForConversion" + }, + { + "name": "InProgress", + "value": "InProgress" + }, + { + "name": "Complete", + "value": "Complete" + }, + { + "name": "Failed", + "value": "Failed" + } + ] + } + } + }, + "parameters": {} +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/privatelinks.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/privatelinks.json deleted file mode 100644 index 04e3c0e0114f..000000000000 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/privatelinks.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-06-01", - "title": "StorageManagementClient" - }, - "paths": {}, - "definitions": { - "PrivateEndpoint": { - "properties": { - "id": { - "readOnly": true, - "type": "string", - "description": "The ARM identifier for Private Endpoint" - } - }, - "description": "The Private Endpoint resource." - }, - "PrivateEndpointConnection": { - "properties": { - "properties": { - "$ref": "#/definitions/PrivateEndpointConnectionProperties", - "x-ms-client-flatten": true, - "description": "Resource properties." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "description": "The Private Endpoint Connection resource." - }, - "PrivateEndpointConnectionProperties": { - "properties": { - "privateEndpoint": { - "$ref": "#/definitions/PrivateEndpoint", - "description": "The resource of private end point." - }, - "privateLinkServiceConnectionState": { - "$ref": "#/definitions/PrivateLinkServiceConnectionState", - "description": "A collection of information about the state of the connection between service consumer and provider." - }, - "provisioningState": { - "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState", - "description": "The provisioning state of the private endpoint connection resource." - } - }, - "required": [ - "privateLinkServiceConnectionState" - ], - "description": "Properties of the PrivateEndpointConnectProperties." - }, - "PrivateLinkServiceConnectionState": { - "properties": { - "status": { - "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus", - "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service." - }, - "description": { - "type": "string", - "description": "The reason for approval/rejection of the connection." - }, - "actionRequired": { - "type": "string", - "description": "A message indicating if changes on the service provider require any updates on the consumer." - } - }, - "description": "A collection of information about the state of the connection between service consumer and provider." - }, - "PrivateEndpointServiceConnectionStatus": { - "type": "string", - "description": "The private endpoint connection status.", - "enum": [ - "Pending", - "Approved", - "Rejected" - ], - "x-ms-enum": { - "name": "PrivateEndpointServiceConnectionStatus", - "modelAsString": true - } - }, - "PrivateEndpointConnectionProvisioningState": { - "type": "string", - "readOnly": true, - "description": "The current provisioning state.", - "enum": [ - "Succeeded", - "Creating", - "Deleting", - "Failed" - ], - "x-ms-enum": { - "name": "PrivateEndpointConnectionProvisioningState", - "modelAsString": true - } - }, - "PrivateLinkResource": { - "properties": { - "properties": { - "$ref": "#/definitions/PrivateLinkResourceProperties", - "description": "Resource properties.", - "x-ms-client-flatten": true - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "description": "A private link resource" - }, - "PrivateLinkResourceProperties": { - "properties": { - "groupId": { - "description": "The private link resource group id.", - "type": "string", - "readOnly": true - }, - "requiredMembers": { - "description": "The private link resource required member names.", - "type": "array", - "items": { - "type": "string" - }, - "readOnly": true - }, - "requiredZoneNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The private link resource Private link DNS zone name." - } - }, - "description": "Properties of a private link resource." - }, - "PrivateEndpointConnectionListResult": { - "properties": { - "value": { - "type": "array", - "description": "Array of private endpoint connections", - "items": { - "$ref": "#/definitions/PrivateEndpointConnection" - } - } - }, - "description": "List of private endpoint connection associated with the specified storage account" - }, - "PrivateLinkResourceListResult": { - "properties": { - "value": { - "type": "array", - "description": "Array of private link resources", - "items": { - "$ref": "#/definitions/PrivateLinkResource" - } - } - }, - "description": "A list of private link resources" - } - }, - "parameters": { - "PrivateEndpointConnectionName": { - "name": "privateEndpointConnectionName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the private endpoint connection associated with the Azure resource", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/queue.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/queue.json deleted file mode 100644 index c7081f00687f..000000000000 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/queue.json +++ /dev/null @@ -1,564 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-06-01", - "title": "StorageManagementClient", - "description": "The Azure Storage Management API." - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/queueServices": { - "get": { - "tags": [ - "QueueServiceProperties" - ], - "operationId": "QueueServices_List", - "x-ms-examples": { - "QueueServicesList": { - "$ref": "./examples/QueueServicesList.json" - } - }, - "description": "List all queue services for the storage account", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- returned the properties of a storage account’s Queue service.", - "schema": { - "$ref": "#/definitions/ListQueueServices" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/queueServices/{queueServiceName}": { - "put": { - "tags": [ - "QueueServiceProperties" - ], - "operationId": "QueueServices_SetServiceProperties", - "x-ms-examples": { - "QueueServicesPut": { - "$ref": "./examples/QueueServicesPut.json" - } - }, - "description": "Sets the properties of a storage account’s Queue service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. ", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/QueueServiceName" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/QueueServiceProperties" - }, - "description": "The properties of a storage account’s Queue service, only properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules can be specified." - } - ], - "responses": { - "200": { - "description": "OK -- Sets The properties of a storage account’s Queue service successfully.", - "schema": { - "$ref": "#/definitions/QueueServiceProperties" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "get": { - "tags": [ - "QueueServiceProperties" - ], - "operationId": "QueueServices_GetServiceProperties", - "x-ms-examples": { - "QueueServicesGet": { - "$ref": "./examples/QueueServicesGet.json" - } - }, - "description": "Gets the properties of a storage account’s Queue service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/QueueServiceName" - } - ], - "responses": { - "200": { - "description": "OK -- returned the properties of a storage account’s Queue service.", - "schema": { - "$ref": "#/definitions/QueueServiceProperties" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/queueServices/default/queues/{queueName}": { - "put": { - "tags": [ - "QueueService" - ], - "operationId": "Queue_Create", - "x-ms-examples": { - "QueueOperationPut": { - "$ref": "./examples/QueueOperationPut.json" - }, - "QueueOperationPutWithMetadata": { - "$ref": "./examples/QueueOperationPutWithMetadata.json" - } - }, - "description": "Creates a new queue with the specified queue name, under the specified account.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/QueueName" - }, - { - "name": "queue", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/StorageQueue" - }, - "description": "Queue properties and metadata to be created with" - } - ], - "responses": { - "200": { - "description": "OK -- Creates a queue with the given queue name successfully.", - "schema": { - "$ref": "#/definitions/StorageQueue" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "patch": { - "tags": [ - "QueueService" - ], - "operationId": "Queue_Update", - "x-ms-examples": { - "QueueOperationPatch": { - "$ref": "./examples/QueueOperationPatch.json" - } - }, - "description": "Creates a new queue with the specified queue name, under the specified account.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/QueueName" - }, - { - "name": "queue", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/StorageQueue" - }, - "description": "Queue properties and metadata to be created with" - } - ], - "responses": { - "200": { - "description": "OK -- Creates a queue with the given queue name successfully.", - "schema": { - "$ref": "#/definitions/StorageQueue" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "get": { - "tags": [ - "QueueService" - ], - "operationId": "Queue_Get", - "x-ms-examples": { - "QueueOperationGet": { - "$ref": "./examples/QueueOperationGet.json" - } - }, - "description": "Gets the queue with the specified queue name, under the specified account if it exists.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/QueueName" - } - ], - "responses": { - "200": { - "description": "OK -- returned table with the specified table name successfully.", - "schema": { - "$ref": "#/definitions/StorageQueue" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "delete": { - "tags": [ - "QueueService" - ], - "operationId": "Queue_Delete", - "x-ms-examples": { - "QueueOperationDelete": { - "$ref": "./examples/QueueOperationDelete.json" - } - }, - "description": "Deletes the queue with the specified queue name, under the specified account if it exists.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/QueueName" - } - ], - "responses": { - "204": { - "description": "No Content - Successfully deleted the queue with the specified queue name" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/queueServices/default/queues": { - "get": { - "tags": [ - "QueueService" - ], - "operationId": "Queue_List", - "x-ms-examples": { - "QueueOperationList": { - "$ref": "./examples/QueueOperationList.json" - } - }, - "description": "Gets a list of all the queues under the specified storage account", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "$maxpagesize", - "in": "query", - "type": "string", - "description": "Optional, a maximum number of queues that should be included in a list queue response" - }, - { - "name": "$filter", - "in": "query", - "type": "string", - "description": "Optional, When specified, only the queues with a name starting with the given filter will be listed." - } - ], - "responses": { - "200": { - "description": "OK -- returned a list of queues successfully.", - "schema": { - "$ref": "#/definitions/ListQueueResource" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "ListQueueServices": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/QueueServiceProperties" - }, - "description": "List of queue services returned.", - "readOnly": true - } - } - }, - "QueueServiceProperties": { - "properties": { - "properties": { - "properties": { - "cors": { - "$ref": "./common.json#/definitions/CorsRules", - "description": "Specifies CORS rules for the Queue service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Queue service." - } - }, - "x-ms-client-flatten": true, - "x-ms-client-name": "QueueServiceProperties", - "description": "The properties of a storage account’s Queue service." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "description": "The properties of a storage account’s Queue service." - }, - "StorageQueue": { - "properties": { - "properties": { - "$ref": "#/definitions/QueueProperties", - "x-ms-client-flatten": true, - "x-ms-client-name": "QueueProperties", - "description": "Queue resource properties." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ] - }, - "QueueProperties": { - "properties": { - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "A name-value pair that represents queue metadata." - }, - "approximateMessageCount": { - "type": "integer", - "readOnly": true, - "description": "Integer indicating an approximate number of messages in the queue. This number is not lower than the actual number of messages in the queue, but could be higher." - } - } - }, - "ListQueue": { - "properties": { - "properties": { - "$ref": "#/definitions/ListQueueProperties", - "x-ms-client-flatten": true, - "x-ms-client-name": "QueueProperties", - "description": "List Queue resource properties." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ] - }, - "ListQueueProperties": { - "properties": { - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "A name-value pair that represents queue metadata." - } - } - }, - "ListQueueResource": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/ListQueue" - }, - "description": "List of queues returned.", - "readOnly": true - }, - "nextLink": { - "type": "string", - "description": "Request URL that can be used to list next page of queues", - "readOnly": true - } - }, - "description": "Response schema. Contains list of queues returned" - } - }, - "parameters": { - "QueueServiceName": { - "name": "queueServiceName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the Queue Service within the specified storage account. Queue Service Name must be 'default'", - "enum": [ - "default" - ], - "x-ms-enum": { - "name": "QueueServiceName", - "modelAsString": false - }, - "x-ms-parameter-location": "method" - }, - "QueueName": { - "name": "queueName", - "in": "path", - "required": true, - "type": "string", - "description": "A queue name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of lowercase alphanumeric and dash(-) characters only, it should begin and end with an alphanumeric character and it cannot have two consecutive dash(-) characters.", - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9]([a-z0-9]|(-(?!-))){1,61}[a-z0-9]$", - "x-ms-parameter-location": "method" - } - }, - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ] -} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/storage.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/storage.json deleted file mode 100644 index c056afb4d5d4..000000000000 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/storage.json +++ /dev/null @@ -1,6079 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "StorageManagementClient", - "description": "The Azure Storage Management API.", - "version": "2025-06-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/providers/Microsoft.Storage/operations": { - "get": { - "tags": [ - "Operations" - ], - "description": "Lists all of the available Storage Rest API operations.", - "operationId": "Operations_List", - "x-ms-examples": { - "OperationsList": { - "$ref": "./examples/OperationsList.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK. The request has succeeded.", - "schema": { - "$ref": "#/definitions/OperationListResult" - } - } - }, - "x-ms-pageable": { - "nextLinkName": null - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/skus": { - "get": { - "tags": [ - "Skus" - ], - "operationId": "Skus_List", - "description": "Lists the available SKUs supported by Microsoft.Storage for given subscription.", - "x-ms-examples": { - "SkuList": { - "$ref": "./examples/SKUList.json" - }, - "SKUListWithLocationInfo": { - "$ref": "./examples/SKUListWithLocationInfo.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- List of storage SKUs in the given subscription retrieved and returned successfully.", - "schema": { - "$ref": "#/definitions/StorageSkuListResult" - } - } - }, - "x-ms-pageable": { - "nextLinkName": null - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/checkNameAvailability": { - "post": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_CheckNameAvailability", - "description": "Checks that the storage account name is valid and is not already in use.", - "x-ms-examples": { - "StorageAccountCheckNameAvailability": { - "$ref": "./examples/StorageAccountCheckNameAvailability.json" - } - }, - "parameters": [ - { - "name": "accountName", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/StorageAccountCheckNameAvailabilityParameters" - }, - "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only." - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- Operation to check the storage account name availability was successful.", - "schema": { - "$ref": "#/definitions/CheckNameAvailabilityResult" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}": { - "put": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_Create", - "description": "Asynchronously creates a new storage account with the specified parameters. If an account is already created and a subsequent create request is issued with different properties, the account properties will be updated. If an account is already created and a subsequent create or update request is issued with the exact same set of properties, the request will succeed.", - "x-ms-examples": { - "StorageAccountCreate": { - "$ref": "./examples/StorageAccountCreate.json" - }, - "NfsV3AccountCreate": { - "$ref": "./examples/NfsV3AccountCreate.json" - }, - "StorageAccountCreateUserAssignedEncryptionIdentityWithCMK": { - "$ref": "./examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json" - }, - "StorageAccountCreateWithImmutabilityPolicy": { - "$ref": "./examples/StorageAccountCreateWithImmutabilityPolicy.json" - }, - "StorageAccountCreateDisallowPublicNetworkAccess": { - "$ref": "./examples/StorageAccountCreateDisallowPublicNetworkAccess.json" - }, - "StorageAccountCreateEnablePublicNetworkAccess": { - "$ref": "./examples/StorageAccountCreateEnablePublicNetworkAccess.json" - }, - "StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.": { - "$ref": "./examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json" - }, - "StorageAccountCreateAllowedCopyScopeToPrivateLink": { - "$ref": "./examples/StorageAccountCreateAllowedCopyScopeToPrivateLink.json" - }, - "StorageAccountCreateAllowedCopyScopeToAAD": { - "$ref": "./examples/StorageAccountCreateAllowedCopyScopeToAAD.json" - }, - "StorageAccountCreatePremiumBlockBlobStorage": { - "$ref": "./examples/StorageAccountCreatePremiumBlockBlobStorage.json" - }, - "StorageAccountCreateDnsEndpointTypeToAzureDnsZone": { - "$ref": "./examples/StorageAccountCreateDnsEndpointTypeToAzureDnsZone.json" - }, - "StorageAccountCreateDnsEndpointTypeToStandard": { - "$ref": "./examples/StorageAccountCreateDnsEndpointTypeToStandard.json" - }, - "StorageAccountCreate_placement": { - "$ref": "./examples/StorageAccountCreate_placement.json" - }, - "StorageAccountCreate_zones": { - "$ref": "./examples/StorageAccountCreate_zones.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/StorageAccountCreateParameters" - }, - "description": "The parameters to provide for the created account." - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- returned when the storage account was already created from a previous request with the same properties specified in the request body.", - "schema": { - "$ref": "#/definitions/StorageAccount" - } - }, - "202": { - "description": "Accepted -- Create or update storage account request accepted; operation will complete asynchronously." - } - }, - "x-ms-long-running-operation": true - }, - "delete": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_Delete", - "description": "Deletes a storage account in Microsoft Azure.", - "x-ms-examples": { - "StorageAccountDelete": { - "$ref": "./examples/StorageAccountDelete.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- storage account deleted successfully." - }, - "204": { - "description": "NoContent -- account does not exist in the subscription." - } - } - }, - "get": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_GetProperties", - "description": "Returns the properties for the specified storage account including but not limited to name, SKU name, location, and account status. The ListKeys operation should be used to retrieve storage keys.", - "x-ms-examples": { - "StorageAccountGetProperties": { - "$ref": "./examples/StorageAccountGetProperties.json" - }, - "StorageAccountGetPropertiesCMKEnabled": { - "$ref": "./examples/StorageAccountGetPropertiesCMKEnabled.json" - }, - "StorageAccountGetAsyncSkuConversionStatus": { - "$ref": "./examples/StorageAccountGetAsyncSkuConversionStatus.json" - }, - "StorageAccountGetPropertiesCMKVersionExpirationTime": { - "$ref": "./examples/StorageAccountGetPropertiesCMKVersionExpirationTime.json" - }, - "StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue": { - "$ref": "./examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json" - }, - "StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse": { - "$ref": "./examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "$expand", - "description": "May be used to expand the properties within account's properties. By default, data is not included when fetching properties. Currently we only support geoReplicationStats and blobRestoreStatus.", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "geoReplicationStats", - "blobRestoreStatus" - ], - "x-ms-enum": { - "name": "StorageAccountExpand", - "modelAsString": false - } - } - ], - "responses": { - "200": { - "description": "OK -- properties retrieved successfully for the storage account.", - "schema": { - "$ref": "#/definitions/StorageAccount" - } - } - } - }, - "patch": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_Update", - "description": "The update operation can be used to update the SKU, encryption, access tier, or tags for a storage account. It can also be used to map the account to a custom domain. Only one custom domain is supported per storage account; the replacement/change of custom domain is not supported. In order to replace an old custom domain, the old value must be cleared/unregistered before a new value can be set. The update of multiple properties is supported. This call does not change the storage keys for the account. If you want to change the storage account keys, use the regenerate keys operation. The location and name of the storage account cannot be changed after creation.", - "x-ms-examples": { - "StorageAccountUpdate": { - "$ref": "./examples/StorageAccountUpdate.json" - }, - "StorageAccountEnableAD": { - "$ref": "./examples/StorageAccountEnableAD.json" - }, - "StorageAccountEnableCMK": { - "$ref": "./examples/StorageAccountEnableCMK.json" - }, - "StorageAccountEnableSmbOAuth": { - "$ref": "./examples/StorageAccountEnableSmbOAuth.json" - }, - "StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK": { - "$ref": "./examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json" - }, - "StorageAccountUpdateDisablePublicNetworkAccess": { - "$ref": "./examples/StorageAccountUpdateDisablePublicNetworkAccess.json" - }, - "StorageAccountUpdateWithImmutabilityPolicy": { - "$ref": "./examples/StorageAccountUpdateWithImmutabilityPolicy.json" - }, - "StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId": { - "$ref": "./examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json" - }, - "StorageAccountUpdateAllowedCopyScopeToAAD": { - "$ref": "./examples/StorageAccountUpdateAllowedCopyScopeToAAD.json" - }, - "StorageAccountUpdate_placement": { - "$ref": "./examples/StorageAccountUpdate_placement.json" - }, - "StorageAccountUpdate_zones": { - "$ref": "./examples/StorageAccountUpdate_zones.json" - }, - "StorageAccountUpdateEnableIpv6Features": { - "$ref": "./examples/StorageAccountLeverageIPv6Ability.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/StorageAccountUpdateParameters" - }, - "description": "The parameters to provide for the updated account." - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- storage account properties updated successfully.", - "schema": { - "$ref": "#/definitions/StorageAccount" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/deletedAccounts": { - "get": { - "tags": [ - "DeletedAccounts" - ], - "operationId": "DeletedAccounts_List", - "description": "Lists deleted accounts under the subscription.", - "x-ms-examples": { - "DeletedAccountList": { - "$ref": "./examples/DeletedAccountList.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- List of deleted accounts was retrieved and returned successfully.", - "schema": { - "$ref": "#/definitions/DeletedAccountListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/locations/{location}/deletedAccounts/{deletedAccountName}": { - "get": { - "tags": [ - "DeletedAccounts" - ], - "operationId": "DeletedAccounts_Get", - "description": "Get properties of specified deleted account resource.", - "x-ms-examples": { - "DeletedAccountGet": { - "$ref": "./examples/DeletedAccountGet.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/DeletedAccountName" - }, - { - "name": "location", - "in": "path", - "required": true, - "type": "string", - "description": "The location of the deleted storage account." - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- properties retrieved and returned successfully for the deleted account.", - "schema": { - "$ref": "#/definitions/DeletedAccount" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/storageAccounts": { - "get": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_List", - "description": "Lists all the storage accounts available under the subscription. Note that storage keys are not returned; use the ListKeys operation for this.", - "x-ms-examples": { - "StorageAccountList": { - "$ref": "./examples/StorageAccountList.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- List of storage accounts was retrieved and returned successfully.", - "schema": { - "$ref": "#/definitions/StorageAccountListResult" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts": { - "get": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_ListByResourceGroup", - "description": "Lists all the storage accounts available under the given resource group. Note that storage keys are not returned; use the ListKeys operation for this.", - "x-ms-examples": { - "StorageAccountListByResourceGroup": { - "$ref": "./examples/StorageAccountListByResourceGroup.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- List of storage accounts in the given resource group retrieved and returned successfully.", - "schema": { - "$ref": "#/definitions/StorageAccountListResult" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/listKeys": { - "post": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_ListKeys", - "description": "Lists the access keys or Kerberos keys (if active directory enabled) for the specified storage account.", - "x-ms-examples": { - "StorageAccountListKeys": { - "$ref": "./examples/StorageAccountListKeys.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "$expand", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "kerb" - ], - "x-ms-enum": { - "name": "ListKeyExpand" - }, - "description": "Specifies type of the key to be listed. Possible value is kerb." - } - ], - "responses": { - "200": { - "description": "OK -- list of keys retrieved and returned successfully.", - "schema": { - "$ref": "#/definitions/StorageAccountListKeysResult" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/regenerateKey": { - "post": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_RegenerateKey", - "description": "Regenerates one of the access keys or Kerberos keys for the specified storage account.", - "x-ms-examples": { - "StorageAccountRegenerateKey": { - "$ref": "./examples/StorageAccountRegenerateKey.json" - }, - "StorageAccountRegenerateKerbKey": { - "$ref": "./examples/StorageAccountRegenerateKerbKey.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "name": "regenerateKey", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/StorageAccountRegenerateKeyParameters" - }, - "description": "Specifies name of the key which should be regenerated -- key1, key2, kerb1, kerb2." - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- specified key regenerated successfully.", - "schema": { - "$ref": "#/definitions/StorageAccountListKeysResult" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/locations/{location}/usages": { - "get": { - "tags": [ - "LocationUsage" - ], - "operationId": "Usages_ListByLocation", - "description": "Gets the current usage count and the limit for the resources of the location under the subscription.", - "x-ms-examples": { - "UsageList": { - "$ref": "./examples/StorageAccountListLocationUsage.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "location", - "in": "path", - "required": true, - "type": "string", - "description": "The location of the Azure Storage resource." - } - ], - "responses": { - "200": { - "description": "OK -- current usage count and limit retrieved and returned successfully.", - "schema": { - "$ref": "#/definitions/UsageListResult" - } - } - }, - "x-ms-pageable": { - "nextLinkName": null - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/ListAccountSas": { - "post": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_ListAccountSAS", - "description": "List SAS credentials of a storage account.", - "x-ms-examples": { - "StorageAccountListAccountSAS": { - "$ref": "./examples/StorageAccountListAccountSAS.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/AccountSasParameters" - }, - "description": "The parameters to provide to list SAS credentials for the storage account." - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- returned the account SAS created for the storage account requested.", - "schema": { - "$ref": "#/definitions/ListAccountSasResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/ListServiceSas": { - "post": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_ListServiceSAS", - "description": "List service SAS credentials of a specific resource.", - "x-ms-examples": { - "StorageAccountListServiceSAS": { - "$ref": "./examples/StorageAccountListServiceSAS.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ServiceSasParameters" - }, - "description": "The parameters to provide to list service SAS credentials." - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- returned the service SAS created for the storage service requested.", - "schema": { - "$ref": "#/definitions/ListServiceSasResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/failover": { - "post": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_Failover", - "description": "A failover request can be triggered for a storage account in the event a primary endpoint becomes unavailable for any reason. The failover occurs from the storage account's primary cluster to the secondary cluster for RA-GRS accounts. The secondary cluster will become primary after failover and the account is converted to LRS. In the case of a Planned Failover, the primary and secondary clusters are swapped after failover and the account remains geo-replicated. Failover should continue to be used in the event of availability issues as Planned failover is only available while the primary and secondary endpoints are available. The primary use case of a Planned Failover is disaster recovery testing drills. This type of failover is invoked by setting FailoverType parameter to 'Planned'. Learn more about the failover options here- https://learn.microsoft.com/azure/storage/common/storage-disaster-recovery-guidance", - "x-ms-examples": { - "StorageAccountFailover": { - "$ref": "./examples/StorageAccountFailover.json" - }, - "StorageAccountFailoverPlanned": { - "$ref": "./examples/StorageAccountFailoverPlanned.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "failoverType", - "description": "The parameter is set to 'Planned' to indicate whether a Planned failover is requested.", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "Planned" - ], - "x-ms-enum": { - "name": "failoverType", - "modelAsString": false - } - } - ], - "responses": { - "200": { - "description": "OK -- Returned when the storage account failover is completed, and the secondary cluster has become primary." - }, - "202": { - "description": "Accepted -- Failover request accepted; operation will complete asynchronously." - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - }, - "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/hnsonmigration": { - "post": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_HierarchicalNamespaceMigration", - "description": "Live Migration of storage account to enable Hns", - "x-ms-examples": { - "StorageAccountHierarchicalNamespaceMigration": { - "$ref": "./examples/StorageAccountHierarchicalNamespaceMigration.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "requestType", - "in": "query", - "required": true, - "type": "string", - "description": "Required. Hierarchical namespace migration type can either be a hierarchical namespace validation request 'HnsOnValidationRequest' or a hydration request 'HnsOnHydrationRequest'. The validation request will validate the migration whereas the hydration request will migrate the account." - } - ], - "responses": { - "200": { - "description": "OK -- Returned when the storage account migration to hierarchical namespace is completed." - }, - "202": { - "description": "Accepted -- Hierarchical namespace migration request accepted; operation will complete asynchronously." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - }, - "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/aborthnsonmigration": { - "post": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_AbortHierarchicalNamespaceMigration", - "description": "Abort live Migration of storage account to enable Hns", - "x-ms-examples": { - "StorageAccountAbortHierarchicalNamespaceMigration": { - "$ref": "./examples/StorageAccountAbortHierarchicalNamespaceMigration.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- Returned when the storage account migration to hierarchical namespace is aborted." - }, - "202": { - "description": "Accepted -- Abort hierarchical namespace migration request accepted; operation will complete asynchronously." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/startAccountMigration": { - "post": { - "tags": [ - "AccountMigrations" - ], - "operationId": "StorageAccounts_CustomerInitiatedMigration", - "description": "Account Migration request can be triggered for a storage account to change its redundancy level. The migration updates the non-zonal redundant storage account to a zonal redundant account or vice-versa in order to have better reliability and availability. Zone-redundant storage (ZRS) replicates your storage account synchronously across three Azure availability zones in the primary region.", - "x-ms-examples": { - "StorageAccountPostMigration": { - "$ref": "./examples/StorageAccountPostMigration.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/StorageAccountMigration" - }, - "description": "The request parameters required to perform storage account migration." - } - ], - "responses": { - "200": { - "description": "OK -- Returned when the request is just for validating the migration request, it does not actually initiate migration; applicable in cross region migration currently." - }, - "202": { - "description": "Accepted -- Migration request accepted; operation will complete asynchronously.", - "headers": { - "Location": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/accountMigrations/{migrationName}": { - "get": { - "tags": [ - "AccountMigrations" - ], - "operationId": "StorageAccounts_GetCustomerInitiatedMigration", - "description": "Gets the status of the ongoing migration for the specified storage account.", - "x-ms-examples": { - "StorageAccountGetMigrationFailed": { - "$ref": "./examples/StorageAccountGetMigrationFailed.json" - }, - "StorageAccountGetMigrationInProgress": { - "$ref": "./examples/StorageAccountGetMigrationInProgress.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/MigrationName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- Get the details of the ongoing or completed migration successfully.", - "schema": { - "$ref": "#/definitions/StorageAccountMigration" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/restoreBlobRanges": { - "post": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_RestoreBlobRanges", - "description": "Restore blobs in the specified blob ranges", - "x-ms-examples": { - "BlobRangesRestore": { - "$ref": "./examples/BlobRangesRestore.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/BlobRestoreParameters" - }, - "description": "The parameters to provide for restore blob ranges." - } - ], - "responses": { - "200": { - "description": "OK -- returned when blob ranges are restored completely with the same properties specified in the request body.", - "schema": { - "$ref": "#/definitions/BlobRestoreStatus" - } - }, - "202": { - "description": "Accepted -- Blob restore request accepted; operation will complete asynchronously.", - "schema": { - "$ref": "#/definitions/BlobRestoreStatus" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/managementPolicies/{managementPolicyName}": { - "get": { - "tags": [ - "ManagementPolicies" - ], - "operationId": "ManagementPolicies_Get", - "description": "Gets the managementpolicy associated with the specified storage account.", - "x-ms-examples": { - "StorageAccountGetManagementPolicies": { - "$ref": "./examples/StorageAccountGetManagementPolicy.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ManagementPolicyName" - } - ], - "responses": { - "200": { - "description": "OK -- Get the managementpolicy successfully.", - "schema": { - "$ref": "#/definitions/ManagementPolicy" - } - } - } - }, - "put": { - "tags": [ - "ManagementPolicies" - ], - "operationId": "ManagementPolicies_CreateOrUpdate", - "description": "Sets the managementpolicy to the specified storage account.", - "x-ms-examples": { - "StorageAccountSetManagementPolicies": { - "$ref": "./examples/StorageAccountSetManagementPolicy.json" - }, - "StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions": { - "$ref": "./examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json" - }, - "StorageAccountSetManagementPolicyWithSnapshotAndVersion": { - "$ref": "./examples/StorageAccountSetManagementPolicyWithSnapshotAndVersion.json" - }, - "StorageAccountSetManagementPolicyForBlockAndAppendBlobs": { - "$ref": "./examples/StorageAccountSetManagementPolicyForBlockAndAppendBlobs.json" - }, - "StorageAccountSetManagementPolicy_LastTierChangeTimeActions": { - "$ref": "./examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json" - }, - "StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions": { - "$ref": "./examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json" - }, - "StorageAccountSetManagementPolicyColdTierActions": { - "$ref": "./examples/StorageAccountSetManagementPolicyColdTierActions.json" - }, - "StorageAccountSetManagementPolicyHotTierActions": { - "$ref": "./examples/StorageAccountSetManagementPolicyHotTierActions.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ManagementPolicyName" - }, - { - "name": "properties", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ManagementPolicy" - }, - "description": "The ManagementPolicy set to a storage account." - } - ], - "responses": { - "200": { - "description": "OK -- Put managementpolicy successfully.", - "schema": { - "$ref": "#/definitions/ManagementPolicy" - } - } - } - }, - "delete": { - "tags": [ - "ManagementPolicies" - ], - "operationId": "ManagementPolicies_Delete", - "description": "Deletes the managementpolicy associated with the specified storage account.", - "x-ms-examples": { - "StorageAccountDeleteManagementPolicies": { - "$ref": "./examples/StorageAccountDeleteManagementPolicy.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ManagementPolicyName" - } - ], - "responses": { - "200": { - "description": "OK -- Delete the managementpolicy successfully." - }, - "204": { - "description": "No Content -- The managementpolicy does not exist." - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/inventoryPolicies/{blobInventoryPolicyName}": { - "get": { - "tags": [ - "BlobInventoryPolicies" - ], - "operationId": "BlobInventoryPolicies_Get", - "description": "Gets the blob inventory policy associated with the specified storage account.", - "x-ms-examples": { - "StorageAccountGetBlobInventoryPolicy": { - "$ref": "./examples/StorageAccountGetBlobInventoryPolicy.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/BlobInventoryPolicyName" - } - ], - "responses": { - "200": { - "description": "OK -- Get the blob inventory policy successfully.", - "schema": { - "$ref": "#/definitions/BlobInventoryPolicy" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "put": { - "tags": [ - "BlobInventoryPolicies" - ], - "operationId": "BlobInventoryPolicies_CreateOrUpdate", - "description": "Sets the blob inventory policy to the specified storage account.", - "x-ms-examples": { - "StorageAccountSetBlobInventoryPolicy": { - "$ref": "./examples/StorageAccountSetBlobInventoryPolicy.json" - }, - "StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount": { - "$ref": "./examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json" - }, - "StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount": { - "$ref": "./examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/BlobInventoryPolicyName" - }, - { - "name": "properties", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/BlobInventoryPolicy" - }, - "description": "The blob inventory policy set to a storage account." - } - ], - "responses": { - "200": { - "description": "OK -- Put blob inventory policy successfully.", - "schema": { - "$ref": "#/definitions/BlobInventoryPolicy" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "delete": { - "tags": [ - "BlobInventoryPolicies" - ], - "operationId": "BlobInventoryPolicies_Delete", - "description": "Deletes the blob inventory policy associated with the specified storage account.", - "x-ms-examples": { - "StorageAccountDeleteBlobInventoryPolicy": { - "$ref": "./examples/StorageAccountDeleteBlobInventoryPolicy.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/BlobInventoryPolicyName" - } - ], - "responses": { - "200": { - "description": "OK -- Delete the blob inventory policy successfully." - }, - "204": { - "description": "No Content -- The blob inventory policy does not exist." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/inventoryPolicies": { - "get": { - "tags": [ - "BlobInventoryPolicies" - ], - "operationId": "BlobInventoryPolicies_List", - "description": "Gets the blob inventory policy associated with the specified storage account.", - "x-ms-examples": { - "StorageAccountGetBlobInventoryPolicy": { - "$ref": "./examples/StorageAccountListBlobInventoryPolicy.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- Get the blob inventory policies successfully.", - "schema": { - "$ref": "#/definitions/ListBlobInventoryPolicy" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": null - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/privateEndpointConnections": { - "get": { - "tags": [ - "PrivateEndpointConnections" - ], - "operationId": "PrivateEndpointConnections_List", - "description": "List all the private endpoint connections associated with the storage account.", - "x-ms-examples": { - "StorageAccountListPrivateEndpointConnections": { - "$ref": "./examples/StorageAccountListPrivateEndpointConnections.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- Successfully retrieved private endpoint connections.", - "schema": { - "$ref": "./privatelinks.json#/definitions/PrivateEndpointConnectionListResult" - } - } - }, - "x-ms-pageable": { - "nextLinkName": null - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}": { - "get": { - "tags": [ - "PrivateEndpointConnections" - ], - "operationId": "PrivateEndpointConnections_Get", - "description": "Gets the specified private endpoint connection associated with the storage account.", - "x-ms-examples": { - "StorageAccountGetPrivateEndpointConnection": { - "$ref": "./examples/StorageAccountGetPrivateEndpointConnection.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/parameters/PrivateEndpointConnectionName" - } - ], - "responses": { - "200": { - "description": "OK -- Get the private endpoint connection properties successfully.", - "schema": { - "$ref": "./privatelinks.json#/definitions/PrivateEndpointConnection" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - }, - "put": { - "tags": [ - "PrivateEndpointConnections" - ], - "operationId": "PrivateEndpointConnections_Put", - "description": "Update the state of specified private endpoint connection associated with the storage account.", - "x-ms-examples": { - "StorageAccountPutPrivateEndpointConnection": { - "$ref": "./examples/StorageAccountPutPrivateEndpointConnection.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/parameters/PrivateEndpointConnectionName" - }, - { - "name": "properties", - "in": "body", - "required": true, - "schema": { - "$ref": "./privatelinks.json#/definitions/PrivateEndpointConnection" - }, - "description": "The private endpoint connection properties." - } - ], - "responses": { - "200": { - "description": "OK -- Update the private endpoint connection properties successfully.", - "schema": { - "$ref": "./privatelinks.json#/definitions/PrivateEndpointConnection" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "PrivateEndpointConnections" - ], - "operationId": "PrivateEndpointConnections_Delete", - "description": "Deletes the specified private endpoint connection associated with the storage account.", - "x-ms-examples": { - "StorageAccountDeletePrivateEndpointConnection": { - "$ref": "./examples/StorageAccountDeletePrivateEndpointConnection.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/privatelinks.json#/parameters/PrivateEndpointConnectionName" - } - ], - "responses": { - "200": { - "description": "OK -- Delete the private endpoint connection successfully." - }, - "204": { - "description": "No Content -- The private endpoint connection does not exist." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/privateLinkResources": { - "get": { - "tags": [ - "PrivateLinkResources" - ], - "operationId": "PrivateLinkResources_ListByStorageAccount", - "description": "Gets the private link resources that need to be created for a storage account.", - "x-ms-examples": { - "StorageAccountListPrivateLinkResources": { - "$ref": "./examples/StorageAccountListPrivateLinkResources.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "Successfully retrieved private link resources.", - "schema": { - "$ref": "./privatelinks.json#/definitions/PrivateLinkResourceListResult" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/objectReplicationPolicies": { - "get": { - "tags": [ - "ObjectReplicationPolicies" - ], - "operationId": "ObjectReplicationPolicies_List", - "description": "List the object replication policies associated with the storage account.", - "x-ms-examples": { - "StorageAccountListObjectReplicationPolicies": { - "$ref": "./examples/StorageAccountListObjectReplicationPolicies.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- List object replication policies successfully.", - "schema": { - "$ref": "#/definitions/ObjectReplicationPolicies" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": null - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/objectReplicationPolicies/{objectReplicationPolicyId}": { - "get": { - "tags": [ - "ObjectReplicationPolicies" - ], - "operationId": "ObjectReplicationPolicies_Get", - "description": "Get the object replication policy of the storage account by policy ID.", - "x-ms-examples": { - "StorageAccountGetObjectReplicationPolicies": { - "$ref": "./examples/StorageAccountGetObjectReplicationPolicy.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ObjectReplicationPolicyId" - } - ], - "responses": { - "200": { - "description": "OK -- Get the object replication policy successfully.", - "schema": { - "$ref": "#/definitions/ObjectReplicationPolicy" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - }, - "put": { - "tags": [ - "ObjectReplicationPolicies" - ], - "operationId": "ObjectReplicationPolicies_CreateOrUpdate", - "description": "Create or update the object replication policy of the storage account.", - "x-ms-examples": { - "StorageAccountCreateObjectReplicationPolicyOnDestination": { - "$ref": "./examples/StorageAccountCreateObjectReplicationPolicyOnDestination.json" - }, - "StorageAccountCreateObjectReplicationPolicyOnSource": { - "$ref": "./examples/StorageAccountCreateObjectReplicationPolicyOnSource.json" - }, - "StorageAccountUpdateObjectReplicationPolicyOnDestination": { - "$ref": "./examples/StorageAccountUpdateObjectReplicationPolicyOnDestination.json" - }, - "StorageAccountUpdateObjectReplicationPolicyOnSource": { - "$ref": "./examples/StorageAccountUpdateObjectReplicationPolicyOnSource.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ObjectReplicationPolicyId" - }, - { - "name": "properties", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ObjectReplicationPolicy" - }, - "description": "The object replication policy set to a storage account. A unique policy ID will be created if absent." - } - ], - "responses": { - "200": { - "description": "OK -- Put object replication policy successfully.", - "schema": { - "$ref": "#/definitions/ObjectReplicationPolicy" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "ObjectReplicationPolicies" - ], - "operationId": "ObjectReplicationPolicies_Delete", - "description": "Deletes the object replication policy associated with the specified storage account.", - "x-ms-examples": { - "StorageAccountDeleteObjectReplicationPolicies": { - "$ref": "./examples/StorageAccountDeleteObjectReplicationPolicy.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ObjectReplicationPolicyId" - } - ], - "responses": { - "200": { - "description": "OK -- Delete the object replication policy successfully." - }, - "204": { - "description": "No Content -- The object replication policy does not exist." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/revokeUserDelegationKeys": { - "post": { - "tags": [ - "StorageAccounts" - ], - "operationId": "StorageAccounts_RevokeUserDelegationKeys", - "description": "Revoke user delegation keys.", - "x-ms-examples": { - "StorageAccountRevokeUserDelegationKeys": { - "$ref": "./examples/StorageAccountRevokeUserDelegationKeys.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "name": "accountName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", - "maxLength": 24, - "minLength": 3 - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- revoke user delegation keys succeeded." - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/localUsers": { - "get": { - "tags": [ - "LocalUsers" - ], - "operationId": "LocalUsers_List", - "description": "List the local users associated with the storage account.", - "x-ms-examples": { - "ListLocalUsers": { - "$ref": "./examples/LocalUsersList.json" - }, - "ListNFSv3EnabledLocalUsers": { - "$ref": "./examples/LocalUsersListNFSv3Enabled.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "$maxpagesize", - "in": "query", - "type": "integer", - "minimum": 1, - "maximum": 5000, - "format": "int32", - "description": "Optional, specifies the maximum number of local users that will be included in the list response." - }, - { - "name": "$filter", - "in": "query", - "type": "string", - "description": "Optional. When specified, only local user names starting with the filter will be listed." - }, - { - "name": "$include", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "nfsv3" - ], - "x-ms-enum": { - "name": "ListLocalUserIncludeParam", - "modelAsString": true - }, - "description": "Optional, when specified, will list local users enabled for the specific protocol. Lists all users by default." - } - ], - "responses": { - "200": { - "description": "OK -- List local users successfully.", - "schema": { - "$ref": "#/definitions/LocalUsers" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": null - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/localUsers/{username}": { - "get": { - "tags": [ - "LocalUsers" - ], - "operationId": "LocalUsers_Get", - "description": "Get the local user of the storage account by username.", - "x-ms-examples": { - "GetLocalUser": { - "$ref": "./examples/LocalUserGet.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/Username" - } - ], - "responses": { - "200": { - "description": "OK -- Get the local user properties successfully.", - "schema": { - "$ref": "#/definitions/LocalUser" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - }, - "put": { - "tags": [ - "LocalUsers" - ], - "operationId": "LocalUsers_CreateOrUpdate", - "description": "Create or update the properties of a local user associated with the storage account. Properties for NFSv3 enablement and extended groups cannot be set with other properties.", - "x-ms-examples": { - "CreateLocalUser": { - "$ref": "./examples/LocalUserCreate.json" - }, - "CreateNFSv3EnabledLocalUser": { - "$ref": "./examples/LocalUserCreateNFSv3Enabled.json" - }, - "UpdateLocalUser": { - "$ref": "./examples/LocalUserUpdate.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/Username" - }, - { - "name": "properties", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/LocalUser" - }, - "description": "The local user associated with a storage account." - } - ], - "responses": { - "200": { - "description": "OK -- Put local user successfully.", - "schema": { - "$ref": "#/definitions/LocalUser" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "LocalUsers" - ], - "operationId": "LocalUsers_Delete", - "description": "Deletes the local user associated with the specified storage account.", - "x-ms-examples": { - "DeleteLocalUser": { - "$ref": "./examples/LocalUserDelete.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/Username" - } - ], - "responses": { - "200": { - "description": "OK -- Delete the local user successfully." - }, - "204": { - "description": "No content -- Delete the local user successfully." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/localUsers/{username}/listKeys": { - "post": { - "tags": [ - "LocalUsers" - ], - "operationId": "LocalUsers_ListKeys", - "description": "List SSH authorized keys and shared key of the local user.", - "x-ms-examples": { - "ListLocalUserKeys": { - "$ref": "./examples/LocalUserListKeys.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/Username" - } - ], - "responses": { - "200": { - "description": "OK -- Get the local user keys successfully.", - "schema": { - "$ref": "#/definitions/LocalUserKeys" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/localUsers/{username}/regeneratePassword": { - "post": { - "tags": [ - "LocalUsers" - ], - "operationId": "LocalUsers_RegeneratePassword", - "description": "Regenerate the local user SSH password.", - "x-ms-examples": { - "RegenerateLocalUserPassword": { - "$ref": "./examples/LocalUserRegeneratePassword.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/Username" - } - ], - "responses": { - "200": { - "description": "OK -- Regenerate local user password successfully.", - "schema": { - "$ref": "#/definitions/LocalUserRegeneratePasswordResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/encryptionScopes/{encryptionScopeName}": { - "put": { - "tags": [ - "EncryptionScopes" - ], - "operationId": "EncryptionScopes_Put", - "description": "Synchronously creates or updates an encryption scope under the specified storage account. If an encryption scope is already created and a subsequent request is issued with different properties, the encryption scope properties will be updated per the specified request.", - "x-ms-examples": { - "StorageAccountPutEncryptionScope": { - "$ref": "./examples/StorageAccountPutEncryptionScope.json" - }, - "StorageAccountPutEncryptionScopeWithInfrastructureEncryption": { - "$ref": "./examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/EncryptionScopeName" - }, - { - "name": "encryptionScope", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/EncryptionScope" - }, - "description": "Encryption scope properties to be used for the create or update." - } - ], - "responses": { - "201": { - "description": "Created -- Create encryption scope operation completed successfully.", - "schema": { - "$ref": "#/definitions/EncryptionScope" - } - }, - "200": { - "description": "OK -- Update encryption scope operation completed successfully.", - "schema": { - "$ref": "#/definitions/EncryptionScope" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - }, - "patch": { - "tags": [ - "EncryptionScopes" - ], - "operationId": "EncryptionScopes_Patch", - "description": "Update encryption scope properties as specified in the request body. Update fails if the specified encryption scope does not already exist.", - "x-ms-examples": { - "StorageAccountPatchEncryptionScope": { - "$ref": "./examples/StorageAccountPatchEncryptionScope.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/EncryptionScopeName" - }, - { - "name": "encryptionScope", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/EncryptionScope" - }, - "description": "Encryption scope properties to be used for the update." - } - ], - "responses": { - "200": { - "description": "OK -- Update encryption scope operation completed successfully.", - "schema": { - "$ref": "#/definitions/EncryptionScope" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "EncryptionScopes" - ], - "operationId": "EncryptionScopes_Get", - "description": "Returns the properties for the specified encryption scope.", - "x-ms-examples": { - "StorageAccountGetEncryptionScope": { - "$ref": "./examples/StorageAccountGetEncryptionScope.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/EncryptionScopeName" - } - ], - "responses": { - "200": { - "description": "OK -- Get encryption scope operation completed successfully.", - "schema": { - "$ref": "#/definitions/EncryptionScope" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/encryptionScopes": { - "get": { - "tags": [ - "EncryptionScopes" - ], - "operationId": "EncryptionScopes_List", - "description": "Lists all the encryption scopes available under the specified storage account.", - "x-ms-examples": { - "StorageAccountEncryptionScopeList": { - "$ref": "./examples/StorageAccountEncryptionScopeList.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "$maxpagesize", - "in": "query", - "type": "integer", - "minimum": 1, - "maximum": 5000, - "format": "int32", - "description": "Optional, specifies the maximum number of encryption scopes that will be included in the list response." - }, - { - "name": "$filter", - "in": "query", - "type": "string", - "description": "Optional. When specified, only encryption scope names starting with the filter will be listed." - }, - { - "name": "$include", - "in": "query", - "required": false, - "type": "string", - "enum": [ - "All", - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "ListEncryptionScopesInclude", - "modelAsString": true - }, - "description": "Optional, when specified, will list encryption scopes with the specific state. Defaults to All" - } - ], - "responses": { - "200": { - "description": "OK -- List encryption scopes operation completed successfully.", - "schema": { - "$ref": "#/definitions/EncryptionScopeListResult" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "OperationListResult": { - "description": "Result of the request to list Storage operations. It contains a list of operations and a URL link to get the next set of results.", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/Operation" - }, - "description": "List of Storage operations supported by the Storage resource provider." - } - } - }, - "Operation": { - "description": "Storage REST API operation definition.", - "type": "object", - "properties": { - "name": { - "description": "Operation name: {provider}/{resource}/{operation}", - "type": "string" - }, - "display": { - "description": "Display metadata associated with the operation.", - "properties": { - "provider": { - "description": "Service provider: Microsoft Storage.", - "type": "string" - }, - "resource": { - "description": "Resource on which the operation is performed etc.", - "type": "string" - }, - "operation": { - "description": "Type of operation: get, read, delete, etc.", - "type": "string" - }, - "description": { - "description": "Description of the operation.", - "type": "string" - } - } - }, - "origin": { - "type": "string", - "description": "The origin of operations." - }, - "properties": { - "description": "Properties of operation, include metric specifications.", - "x-ms-client-flatten": true, - "x-ms-client-name": "OperationProperties", - "$ref": "#/definitions/OperationProperties" - } - } - }, - "OperationProperties": { - "description": "Properties of operation, include metric specifications.", - "properties": { - "serviceSpecification": { - "$ref": "#/definitions/ServiceSpecification", - "description": "One property of operation, include metric specifications." - } - } - }, - "ServiceSpecification": { - "description": "One property of operation, include metric specifications.", - "properties": { - "metricSpecifications": { - "description": "Metric specifications of operation.", - "type": "array", - "items": { - "$ref": "#/definitions/MetricSpecification" - } - } - } - }, - "MetricSpecification": { - "description": "Metric specification of operation.", - "properties": { - "name": { - "type": "string", - "description": "Name of metric specification." - }, - "displayName": { - "type": "string", - "description": "Display name of metric specification." - }, - "displayDescription": { - "type": "string", - "description": "Display description of metric specification." - }, - "unit": { - "type": "string", - "description": "Unit could be Bytes or Count." - }, - "dimensions": { - "description": "Dimensions of blobs, including blob type and access tier.", - "type": "array", - "items": { - "$ref": "#/definitions/Dimension" - } - }, - "aggregationType": { - "type": "string", - "description": "Aggregation type could be Average." - }, - "fillGapWithZero": { - "type": "boolean", - "description": "The property to decide fill gap with zero or not." - }, - "category": { - "type": "string", - "description": "The category this metric specification belong to, could be Capacity." - }, - "resourceIdDimensionNameOverride": { - "type": "string", - "description": "Account Resource Id." - } - } - }, - "Dimension": { - "description": "Dimension of blobs, possibly be blob type or access tier.", - "properties": { - "name": { - "type": "string", - "description": "Display name of dimension." - }, - "displayName": { - "type": "string", - "description": "Display name of dimension." - } - } - }, - "StorageAccountCheckNameAvailabilityParameters": { - "properties": { - "name": { - "type": "string", - "description": "The storage account name." - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Storage/storageAccounts" - ], - "x-ms-enum": { - "name": "Type", - "modelAsString": false - }, - "description": "The type of resource, Microsoft.Storage/storageAccounts" - } - }, - "required": [ - "name", - "type" - ], - "description": "The parameters used to check the availability of the storage account name." - }, - "SKUCapability": { - "properties": { - "name": { - "readOnly": true, - "type": "string", - "description": "The name of capability, The capability information in the specified SKU, including file encryption, network ACLs, change notification, etc." - }, - "value": { - "readOnly": true, - "type": "string", - "description": "A string value to indicate states of given capability. Possibly 'true' or 'false'." - } - }, - "description": "The capability information in the specified SKU, including file encryption, network ACLs, change notification, etc." - }, - "Restriction": { - "properties": { - "type": { - "readOnly": true, - "type": "string", - "description": "The type of restrictions. As of now only possible value for this is location." - }, - "values": { - "readOnly": true, - "type": "array", - "items": { - "type": "string" - }, - "description": "The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted." - }, - "reasonCode": { - "type": "string", - "enum": [ - "QuotaId", - "NotAvailableForSubscription" - ], - "x-ms-enum": { - "name": "ReasonCode", - "modelAsString": true - }, - "description": "The reason for the restriction. As of now this can be \"QuotaId\" or \"NotAvailableForSubscription\". Quota Id is set when the SKU has requiredQuotas parameter as the subscription does not belong to that quota. The \"NotAvailableForSubscription\" is related to capacity at DC." - } - }, - "description": "The restriction because of which SKU cannot be used." - }, - "StorageSkuListResult": { - "properties": { - "value": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/SkuInformation" - }, - "description": "Get the list result of storage SKUs and their properties." - } - }, - "description": "The response from the List Storage SKUs operation." - }, - "CheckNameAvailabilityResult": { - "properties": { - "nameAvailable": { - "readOnly": true, - "type": "boolean", - "description": "Gets a boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or is invalid and cannot be used." - }, - "reason": { - "readOnly": true, - "type": "string", - "description": "Gets the reason that a storage account name could not be used. The Reason element is only returned if NameAvailable is false.", - "enum": [ - "AccountNameInvalid", - "AlreadyExists" - ], - "x-ms-enum": { - "name": "Reason", - "modelAsString": false - } - }, - "message": { - "readOnly": true, - "type": "string", - "description": "Gets an error message explaining the Reason value in more detail." - } - }, - "description": "The CheckNameAvailability operation response." - }, - "SkuInformation": { - "properties": { - "name": { - "$ref": "./common.json#/definitions/SkuName" - }, - "tier": { - "$ref": "./common.json#/definitions/Tier" - }, - "resourceType": { - "readOnly": true, - "type": "string", - "description": "The type of the resource, usually it is 'storageAccounts'." - }, - "kind": { - "readOnly": true, - "type": "string", - "description": "Indicates the type of storage account.", - "enum": [ - "Storage", - "StorageV2", - "BlobStorage", - "FileStorage", - "BlockBlobStorage" - ], - "x-ms-enum": { - "name": "Kind", - "modelAsString": true - } - }, - "locations": { - "readOnly": true, - "type": "array", - "items": { - "type": "string" - }, - "description": "The set of locations that the SKU is available. This will be supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.)." - }, - "locationInfo": { - "type": "array", - "items": { - "type": "object", - "properties": { - "location": { - "readOnly": true, - "type": "string", - "description": "Describes the location for the product where storage account resource can be created." - }, - "zones": { - "readOnly": true, - "type": "array", - "items": { - "type": "string" - }, - "description": "Describes the available zones for the product where storage account resource can be created." - } - } - } - }, - "capabilities": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/SKUCapability" - }, - "description": "The capability information in the specified SKU, including file encryption, network ACLs, change notification, etc." - }, - "restrictions": { - "type": "array", - "items": { - "$ref": "#/definitions/Restriction" - }, - "description": "The restrictions because of which SKU cannot be used. This is empty if there are no restrictions." - } - }, - "required": [ - "name" - ], - "description": "Storage SKU and its properties" - }, - "CustomDomain": { - "properties": { - "name": { - "type": "string", - "description": "Gets or sets the custom domain name assigned to the storage account. Name is the CNAME source." - }, - "useSubDomainName": { - "type": "boolean", - "description": "Indicates whether indirect CName validation is enabled. Default value is false. This should only be set on updates." - } - }, - "required": [ - "name" - ], - "description": "The custom domain assigned to this storage account. This can be set via Update." - }, - "SasPolicy": { - "properties": { - "sasExpirationPeriod": { - "type": "string", - "example": "1.15:59:59", - "description": "The SAS expiration period, DD.HH:MM:SS." - }, - "expirationAction": { - "type": "string", - "enum": [ - "Log", - "Block" - ], - "x-ms-enum": { - "name": "ExpirationAction", - "modelAsString": true - }, - "default": "Log", - "description": "The SAS Expiration Action defines the action to be performed when sasPolicy.sasExpirationPeriod is violated. The 'Log' action can be used for audit purposes and the 'Block' action can be used to block and deny the usage of SAS tokens that do not adhere to the sas policy expiration period." - } - }, - "required": [ - "sasExpirationPeriod", - "expirationAction" - ], - "description": "SasPolicy assigned to the storage account." - }, - "KeyPolicy": { - "properties": { - "keyExpirationPeriodInDays": { - "type": "integer", - "description": "The key expiration period in days.", - "format": "int32" - } - }, - "required": [ - "keyExpirationPeriodInDays" - ], - "description": "KeyPolicy assigned to the storage account." - }, - "KeyCreationTime": { - "properties": { - "key1": { - "type": "string", - "format": "date-time", - "example": "2021-02-03T05:57:30.917Z" - }, - "key2": { - "type": "string", - "format": "date-time", - "example": "2021-02-03T05:57:30.917Z" - } - }, - "description": "Storage account keys creation time." - }, - "EncryptionService": { - "properties": { - "enabled": { - "type": "boolean", - "description": "A boolean indicating whether or not the service encrypts the data as it is stored. Encryption at rest is enabled by default today and cannot be disabled." - }, - "lastEnabledTime": { - "readOnly": true, - "type": "string", - "format": "date-time", - "description": "Gets a rough estimate of the date/time when the encryption was last enabled by the user. Data is encrypted at rest by default today and cannot be disabled." - }, - "keyType": { - "type": "string", - "description": "Encryption key type to be used for the encryption service. 'Account' key type implies that an account-scoped encryption key will be used. 'Service' key type implies that a default service key is used.", - "enum": [ - "Service", - "Account" - ], - "x-ms-enum": { - "name": "KeyType", - "modelAsString": true - }, - "x-ms-mutability": [ - "create", - "read" - ] - } - }, - "description": "A service that allows server-side encryption to be used." - }, - "EncryptionServices": { - "properties": { - "blob": { - "$ref": "#/definitions/EncryptionService", - "description": "The encryption function of the blob storage service." - }, - "file": { - "$ref": "#/definitions/EncryptionService", - "description": "The encryption function of the file storage service." - }, - "table": { - "$ref": "#/definitions/EncryptionService", - "description": "The encryption function of the table storage service." - }, - "queue": { - "$ref": "#/definitions/EncryptionService", - "description": "The encryption function of the queue storage service." - } - }, - "description": "A list of services that support encryption." - }, - "KeyVaultProperties": { - "description": "Properties of key vault.", - "properties": { - "keyname": { - "type": "string", - "description": "The name of KeyVault key.", - "x-ms-client-name": "KeyName" - }, - "keyversion": { - "type": "string", - "description": "The version of KeyVault key.", - "x-ms-client-name": "KeyVersion" - }, - "keyvaulturi": { - "type": "string", - "description": "The Uri of KeyVault.", - "x-ms-client-name": "KeyVaultUri" - }, - "currentVersionedKeyIdentifier": { - "type": "string", - "readOnly": true, - "description": "The object identifier of the current versioned Key Vault Key in use.", - "x-ms-client-name": "CurrentVersionedKeyIdentifier" - }, - "lastKeyRotationTimestamp": { - "type": "string", - "readOnly": true, - "format": "date-time", - "description": "Timestamp of last rotation of the Key Vault Key.", - "x-ms-client-name": "LastKeyRotationTimestamp" - }, - "currentVersionedKeyExpirationTimestamp": { - "type": "string", - "readOnly": true, - "format": "date-time", - "description": "This is a read only property that represents the expiration time of the current version of the customer managed key used for encryption.", - "x-ms-client-name": "CurrentVersionedKeyExpirationTimestamp" - } - } - }, - "Encryption": { - "properties": { - "services": { - "$ref": "#/definitions/EncryptionServices", - "description": "List of services which support encryption." - }, - "keySource": { - "type": "string", - "description": "The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Storage, Microsoft.Keyvault", - "enum": [ - "Microsoft.Storage", - "Microsoft.Keyvault" - ], - "x-ms-enum": { - "name": "KeySource", - "modelAsString": true - }, - "default": "Microsoft.Storage" - }, - "requireInfrastructureEncryption": { - "type": "boolean", - "x-ms-client-name": "RequireInfrastructureEncryption", - "description": "A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest." - }, - "keyvaultproperties": { - "$ref": "#/definitions/KeyVaultProperties", - "x-ms-client-name": "KeyVaultProperties", - "description": "Properties provided by key vault." - }, - "identity": { - "$ref": "#/definitions/EncryptionIdentity", - "x-ms-client-name": "EncryptionIdentity", - "description": "The identity to be used with service-side encryption at rest." - } - }, - "description": "The encryption settings on the storage account." - }, - "EncryptionIdentity": { - "properties": { - "userAssignedIdentity": { - "type": "string", - "description": "Resource identifier of the UserAssigned identity to be associated with server-side encryption on the storage account.", - "x-ms-client-name": "EncryptionUserAssignedIdentity" - }, - "federatedIdentityClientId": { - "type": "string", - "description": "ClientId of the multi-tenant application to be used in conjunction with the user-assigned identity for cross-tenant customer-managed-keys server-side encryption on the storage account.", - "x-ms-client-name": "EncryptionFederatedIdentityClientId" - } - }, - "description": "Encryption identity for the storage account." - }, - "UserAssignedIdentity": { - "properties": { - "principalId": { - "readOnly": true, - "type": "string", - "description": "The principal ID of the identity." - }, - "clientId": { - "readOnly": true, - "type": "string", - "description": "The client ID of the identity." - } - }, - "description": "UserAssignedIdentity for the resource." - }, - "ResourceAccessRule": { - "properties": { - "tenantId": { - "type": "string", - "description": "Tenant Id" - }, - "resourceId": { - "type": "string", - "description": "Resource Id" - } - }, - "description": "Resource Access Rule." - }, - "VirtualNetworkRule": { - "properties": { - "id": { - "type": "string", - "x-ms-client-name": "VirtualNetworkResourceId", - "description": "Resource ID of a subnet, for example: /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}." - }, - "action": { - "type": "string", - "enum": [ - "Allow" - ], - "x-ms-enum": { - "name": "Action", - "modelAsString": false - }, - "default": "Allow", - "description": "The action of virtual network rule." - }, - "state": { - "type": "string", - "enum": [ - "Provisioning", - "Deprovisioning", - "Succeeded", - "Failed", - "NetworkSourceDeleted" - ], - "x-ms-enum": { - "name": "State", - "modelAsString": true - }, - "description": "Gets the state of virtual network rule." - } - }, - "required": [ - "id" - ], - "description": "Virtual Network rule." - }, - "IPRule": { - "properties": { - "value": { - "type": "string", - "x-ms-client-name": "IPAddressOrRange", - "description": "Specifies the IP or IP range in CIDR format." - }, - "action": { - "type": "string", - "enum": [ - "Allow" - ], - "x-ms-enum": { - "name": "Action", - "modelAsString": false - }, - "default": "Allow", - "description": "The action of IP ACL rule." - } - }, - "required": [ - "value" - ], - "description": "IP rule with specific IP or IP range in CIDR format." - }, - "NetworkRuleSet": { - "properties": { - "bypass": { - "type": "string", - "enum": [ - "None", - "Logging", - "Metrics", - "AzureServices" - ], - "x-ms-enum": { - "name": "Bypass", - "modelAsString": true - }, - "x-ms-client-name": "Bypass", - "default": "AzureServices", - "description": "Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. Possible values are any combination of Logging|Metrics|AzureServices (For example, \"Logging, Metrics\"), or None to bypass none of those traffics." - }, - "resourceAccessRules": { - "type": "array", - "items": { - "description": "Resource Access Rules.", - "$ref": "#/definitions/ResourceAccessRule" - }, - "description": "Sets the resource access rules" - }, - "virtualNetworkRules": { - "type": "array", - "items": { - "description": "Virtual Network rule.", - "$ref": "#/definitions/VirtualNetworkRule" - }, - "description": "Sets the virtual network rules" - }, - "ipRules": { - "type": "array", - "items": { - "description": "IP rule with specific IP or IP range in CIDR format.", - "$ref": "#/definitions/IPRule" - }, - "description": "Sets the IP ACL rules" - }, - "ipv6Rules": { - "type": "array", - "items": { - "description": "IPv6 rule with specific IP or IP range in CIDR format.", - "$ref": "#/definitions/IPRule" - }, - "description": "Sets the IPv6 ACL rules." - }, - "defaultAction": { - "type": "string", - "enum": [ - "Allow", - "Deny" - ], - "x-ms-enum": { - "name": "DefaultAction", - "modelAsString": false - }, - "default": "Allow", - "description": "Specifies the default action of allow or deny when no other rules match." - } - }, - "required": [ - "defaultAction" - ], - "description": "Network rule set" - }, - "AzureFilesIdentityBasedAuthentication": { - "properties": { - "directoryServiceOptions": { - "type": "string", - "description": "Indicates the directory service used. Note that this enum may be extended in the future.", - "enum": [ - "None", - "AADDS", - "AD", - "AADKERB" - ], - "x-ms-enum": { - "name": "DirectoryServiceOptions", - "modelAsString": true - } - }, - "activeDirectoryProperties": { - "$ref": "#/definitions/ActiveDirectoryProperties", - "description": "Additional information about the directory service. Required if directoryServiceOptions is AD (AD DS authentication). Optional for directoryServiceOptions AADDS (Entra DS authentication) and AADKERB (Entra authentication)." - }, - "defaultSharePermission": { - "type": "string", - "description": "Default share permission for users using Kerberos authentication if RBAC role is not assigned.", - "enum": [ - "None", - "StorageFileDataSmbShareReader", - "StorageFileDataSmbShareContributor", - "StorageFileDataSmbShareElevatedContributor" - ], - "x-ms-enum": { - "name": "DefaultSharePermission", - "modelAsString": true - } - }, - "smbOAuthSettings": { - "$ref": "#/definitions/SmbOAuthSettings", - "description": "Required for Managed Identities access using OAuth over SMB." - } - }, - "required": [ - "directoryServiceOptions" - ], - "description": "Settings for Azure Files identity based authentication." - }, - "SmbOAuthSettings": { - "type": "object", - "properties": { - "isSmbOAuthEnabled": { - "type": "boolean", - "description": "Specifies if managed identities can access SMB shares using OAuth. The default interpretation is false for this property." - } - }, - "description": "Setting property for Managed Identity access over SMB using OAuth" - }, - "ActiveDirectoryProperties": { - "properties": { - "domainName": { - "type": "string", - "description": "Specifies the primary domain that the AD DNS server is authoritative for. This property is required if directoryServiceOptions is set to AD (AD DS authentication). If directoryServiceOptions is set to AADDS (Entra DS authentication), providing this property is optional, as it will be inferred automatically if omitted. If directoryServiceOptions is set to AADKERB (Entra authentication), this property is optional; it is needed to support configuration of directory- and file-level permissions via Windows File Explorer, but is not required for authentication." - }, - "netBiosDomainName": { - "type": "string", - "description": "Specifies the NetBIOS domain name. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. Otherwise, it can be omitted." - }, - "forestName": { - "type": "string", - "description": "Specifies the Active Directory forest to get. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. Otherwise, it can be omitted." - }, - "domainGuid": { - "type": "string", - "description": "Specifies the domain GUID. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. If directoryServiceOptions is set to AADDS (Entra DS authentication), this property can be omitted. If directoryServiceOptions is set to AADKERB (Entra authentication), this property is optional; it is needed to support configuration of directory- and file-level permissions via Windows File Explorer, but is not required for authentication." - }, - "domainSid": { - "type": "string", - "description": "Specifies the security identifier (SID) of the AD domain. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. Otherwise, it can be omitted." - }, - "azureStorageSid": { - "type": "string", - "description": "Specifies the security identifier (SID) for Azure Storage. If directoryServiceOptions is set to AD (AD DS authentication), this property is required. Otherwise, it can be omitted." - }, - "samAccountName": { - "type": "string", - "description": "Specifies the Active Directory SAMAccountName for Azure Storage. If directoryServiceOptions is set to AD (AD DS authentication), this property is optional. If provided, accountType should also be provided. For directoryServiceOptions AADDS (Entra DS authentication) or AADKERB (Entra authentication), this property can be omitted." - }, - "accountType": { - "type": "string", - "description": "Specifies the Active Directory account type for Azure Storage. If directoryServiceOptions is set to AD (AD DS authentication), this property is optional. If provided, samAccountName should also be provided. For directoryServiceOptions AADDS (Entra DS authentication) or AADKERB (Entra authentication), this property can be omitted.", - "enum": [ - "User", - "Computer" - ], - "x-ms-enum": { - "name": "AccountType", - "modelAsString": true - } - } - }, - "description": "Settings properties for Active Directory (AD)." - }, - "StorageAccountPropertiesCreateParameters": { - "properties": { - "allowedCopyScope": { - "type": "string", - "description": "Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet.", - "enum": [ - "PrivateLink", - "AAD" - ], - "x-ms-enum": { - "name": "AllowedCopyScope", - "modelAsString": true - } - }, - "publicNetworkAccess": { - "$ref": "#/definitions/PublicNetworkAccess", - "description": "Allow, disallow, or let Network Security Perimeter configuration to evaluate public network access to Storage Account. Value is optional but if passed in, must be 'Enabled', 'Disabled' or 'SecuredByPerimeter'." - }, - "sasPolicy": { - "$ref": "#/definitions/SasPolicy", - "description": "SasPolicy assigned to the storage account." - }, - "keyPolicy": { - "$ref": "#/definitions/KeyPolicy", - "description": "KeyPolicy assigned to the storage account." - }, - "customDomain": { - "$ref": "#/definitions/CustomDomain", - "description": "User domain assigned to the storage account. Name is the CNAME source. Only one custom domain is supported per storage account at this time. To clear the existing custom domain, use an empty string for the custom domain name property." - }, - "encryption": { - "$ref": "#/definitions/Encryption", - "description": "Encryption settings to be used for server-side encryption for the storage account." - }, - "networkAcls": { - "$ref": "#/definitions/NetworkRuleSet", - "x-ms-client-name": "NetworkRuleSet", - "description": "Network rule set" - }, - "accessTier": { - "type": "string", - "description": "Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type.", - "enum": [ - "Hot", - "Cool", - "Premium", - "Cold" - ], - "x-ms-enum": { - "name": "AccessTier", - "modelAsString": false - } - }, - "azureFilesIdentityBasedAuthentication": { - "$ref": "#/definitions/AzureFilesIdentityBasedAuthentication", - "description": "Provides the identity based authentication settings for Azure Files." - }, - "supportsHttpsTrafficOnly": { - "type": "boolean", - "x-ms-client-name": "EnableHttpsTrafficOnly", - "description": "Allows https traffic only to storage service if sets to true. The default value is true since API version 2019-04-01." - }, - "isSftpEnabled": { - "type": "boolean", - "x-ms-client-name": "IsSftpEnabled", - "description": "Enables Secure File Transfer Protocol, if set to true" - }, - "isLocalUserEnabled": { - "type": "boolean", - "x-ms-client-name": "IsLocalUserEnabled", - "description": "Enables local users feature, if set to true" - }, - "enableExtendedGroups": { - "type": "boolean", - "x-ms-client-name": "EnableExtendedGroups", - "description": "Enables extended group support with local users feature, if set to true" - }, - "isHnsEnabled": { - "type": "boolean", - "x-ms-client-name": "IsHnsEnabled", - "description": "Account HierarchicalNamespace enabled if sets to true." - }, - "largeFileSharesState": { - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "LargeFileSharesState", - "modelAsString": true - }, - "description": "Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled." - }, - "routingPreference": { - "$ref": "#/definitions/RoutingPreference", - "x-ms-client-name": "RoutingPreference", - "description": "Maintains information about the network routing choice opted by the user for data transfer" - }, - "dualStackEndpointPreference": { - "$ref": "#/definitions/DualStackEndpointPreference", - "x-ms-client-name": "DualStackEndpointPreference", - "description": "Maintains information about the Internet protocol opted by the user." - }, - "allowBlobPublicAccess": { - "type": "boolean", - "x-ms-client-name": "AllowBlobPublicAccess", - "description": "Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is false for this property." - }, - "minimumTlsVersion": { - "type": "string", - "enum": [ - "TLS1_0", - "TLS1_1", - "TLS1_2", - "TLS1_3" - ], - "x-ms-enum": { - "name": "MinimumTlsVersion", - "modelAsString": true - }, - "description": "Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property." - }, - "allowSharedKeyAccess": { - "type": "boolean", - "description": "Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true." - }, - "isNfsV3Enabled": { - "type": "boolean", - "x-ms-client-name": "EnableNfsV3", - "description": "NFS 3.0 protocol support enabled if set to true." - }, - "allowCrossTenantReplication": { - "type": "boolean", - "description": "Allow or disallow cross AAD tenant object replication. Set this property to true for new or existing accounts only if object replication policies will involve storage accounts in different AAD tenants. The default interpretation is false for new accounts to follow best security practices by default." - }, - "defaultToOAuthAuthentication": { - "type": "boolean", - "description": "A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property." - }, - "immutableStorageWithVersioning": { - "$ref": "#/definitions/ImmutableStorageAccount", - "x-ms-client-name": "ImmutableStorageWithVersioning", - "description": "The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the new containers in the account by default." - }, - "dnsEndpointType": { - "type": "string", - "enum": [ - "Standard", - "AzureDnsZone" - ], - "x-ms-enum": { - "name": "DnsEndpointType", - "modelAsString": true - }, - "description": "Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier." - }, - "geoPriorityReplicationStatus": { - "$ref": "#/definitions/GeoPriorityReplicationStatus", - "description": "Status indicating whether Geo Priority Replication is enabled for the account." - } - }, - "description": "The parameters used to create the storage account." - }, - "Identity": { - "properties": { - "principalId": { - "readOnly": true, - "type": "string", - "description": "The principal ID of resource identity." - }, - "tenantId": { - "readOnly": true, - "type": "string", - "description": "The tenant ID of resource." - }, - "type": { - "type": "string", - "description": "The identity type.", - "enum": [ - "None", - "SystemAssigned", - "UserAssigned", - "SystemAssigned,UserAssigned" - ], - "x-ms-enum": { - "name": "IdentityType", - "modelAsString": true - } - }, - "userAssignedIdentities": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/UserAssignedIdentity" - }, - "description": "Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this storage account. The key is the ARM resource identifier of the identity. Only 1 User Assigned identity is permitted here." - } - }, - "required": [ - "type" - ], - "description": "Identity for the resource." - }, - "ExtendedLocationType": { - "type": "string", - "description": "The type of extendedLocation.", - "enum": [ - "EdgeZone" - ], - "x-ms-enum": { - "name": "ExtendedLocationTypes", - "modelAsString": true - } - }, - "ExtendedLocation": { - "description": "The complex type of the extended location.", - "properties": { - "name": { - "type": "string", - "description": "The name of the extended location." - }, - "type": { - "$ref": "#/definitions/ExtendedLocationType", - "description": "The type of the extended location." - } - } - }, - "Placement": { - "type": "object", - "description": "The complex type of the zonal placement details.", - "properties": { - "zonePlacementPolicy": { - "type": "string", - "description": "The availability zone pinning policy for the storage account.", - "enum": [ - "Any", - "None" - ], - "x-ms-enum": { - "name": "ZonePlacementPolicy", - "modelAsString": true - } - } - } - }, - "StorageAccountCreateParameters": { - "properties": { - "sku": { - "$ref": "./common.json#/definitions/Sku", - "description": "Required. Gets or sets the SKU name." - }, - "kind": { - "type": "string", - "description": "Required. Indicates the type of storage account.", - "enum": [ - "Storage", - "StorageV2", - "BlobStorage", - "FileStorage", - "BlockBlobStorage" - ], - "x-ms-enum": { - "name": "Kind", - "modelAsString": true - } - }, - "location": { - "type": "string", - "description": "Required. Gets or sets the location of the resource. This will be one of the supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.). The geo region of a resource cannot be changed once it is created, but if an identical geo region is specified on update, the request will succeed." - }, - "extendedLocation": { - "$ref": "#/definitions/ExtendedLocation", - "description": "Optional. Set the extended location of the resource. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location" - }, - "zones": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional. Gets or sets the pinned logical availability zone for the storage account." - }, - "placement": { - "$ref": "#/definitions/Placement", - "description": "Optional. Gets or sets the zonal placement details for the storage account." - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Gets or sets a list of key value pairs that describe the resource. These tags can be used for viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key with a length no greater than 128 characters and a value with a length no greater than 256 characters." - }, - "identity": { - "$ref": "#/definitions/Identity", - "description": "The identity of the resource." - }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/StorageAccountPropertiesCreateParameters", - "description": "The parameters used to create the storage account." - } - }, - "required": [ - "sku", - "kind", - "location" - ], - "description": "The parameters used when creating a storage account." - }, - "Endpoints": { - "properties": { - "blob": { - "readOnly": true, - "type": "string", - "description": "Gets the blob endpoint." - }, - "queue": { - "readOnly": true, - "type": "string", - "description": "Gets the queue endpoint." - }, - "table": { - "readOnly": true, - "type": "string", - "description": "Gets the table endpoint." - }, - "file": { - "readOnly": true, - "type": "string", - "description": "Gets the file endpoint." - }, - "web": { - "readOnly": true, - "type": "string", - "description": "Gets the web endpoint." - }, - "dfs": { - "readOnly": true, - "type": "string", - "description": "Gets the dfs endpoint." - }, - "microsoftEndpoints": { - "x-ms-client-flatten": false, - "$ref": "#/definitions/StorageAccountMicrosoftEndpoints", - "description": "Gets the microsoft routing storage endpoints." - }, - "internetEndpoints": { - "x-ms-client-flatten": false, - "$ref": "#/definitions/StorageAccountInternetEndpoints", - "description": "Gets the internet routing storage endpoints" - }, - "ipv6Endpoints": { - "x-ms-client-flatten": false, - "$ref": "#/definitions/StorageAccountIpv6Endpoints", - "description": "Gets the IPv6 storage endpoints." - } - }, - "description": "The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object." - }, - "StorageAccountMicrosoftEndpoints": { - "properties": { - "blob": { - "readOnly": true, - "type": "string", - "description": "Gets the blob endpoint." - }, - "queue": { - "readOnly": true, - "type": "string", - "description": "Gets the queue endpoint." - }, - "table": { - "readOnly": true, - "type": "string", - "description": "Gets the table endpoint." - }, - "file": { - "readOnly": true, - "type": "string", - "description": "Gets the file endpoint." - }, - "web": { - "readOnly": true, - "type": "string", - "description": "Gets the web endpoint." - }, - "dfs": { - "readOnly": true, - "type": "string", - "description": "Gets the dfs endpoint." - } - }, - "description": "The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object via a microsoft routing endpoint." - }, - "StorageAccountInternetEndpoints": { - "properties": { - "blob": { - "readOnly": true, - "type": "string", - "description": "Gets the blob endpoint." - }, - "file": { - "readOnly": true, - "type": "string", - "description": "Gets the file endpoint." - }, - "web": { - "readOnly": true, - "type": "string", - "description": "Gets the web endpoint." - }, - "dfs": { - "readOnly": true, - "type": "string", - "description": "Gets the dfs endpoint." - } - }, - "description": "The URIs that are used to perform a retrieval of a public blob, file, web or dfs object via a internet routing endpoint." - }, - "StorageAccountIpv6Endpoints": { - "type": "object", - "properties": { - "blob": { - "readOnly": true, - "type": "string", - "description": "Gets the blob endpoint." - }, - "queue": { - "readOnly": true, - "type": "string", - "description": "Gets the queue endpoint." - }, - "table": { - "readOnly": true, - "type": "string", - "description": "Gets the table endpoint." - }, - "file": { - "readOnly": true, - "type": "string", - "description": "Gets the file endpoint." - }, - "web": { - "readOnly": true, - "type": "string", - "description": "Gets the web endpoint." - }, - "dfs": { - "readOnly": true, - "type": "string", - "description": "Gets the dfs endpoint." - }, - "microsoftEndpoints": { - "x-ms-client-flatten": false, - "$ref": "#/definitions/StorageAccountMicrosoftEndpoints", - "description": "Gets the microsoft routing storage endpoints." - }, - "internetEndpoints": { - "x-ms-client-flatten": false, - "$ref": "#/definitions/StorageAccountInternetEndpoints", - "description": "Gets the internet routing storage endpoints" - } - }, - "description": "The URIs that are used to perform a retrieval of a public blob, queue, table, web or dfs object via an IPv6 endpoint." - }, - "GeoReplicationStats": { - "properties": { - "status": { - "readOnly": true, - "type": "string", - "description": "The status of the secondary location. Possible values are: - Live: Indicates that the secondary location is active and operational. - Bootstrap: Indicates initial synchronization from the primary location to the secondary location is in progress.This typically occurs when replication is first enabled. - Unavailable: Indicates that the secondary location is temporarily unavailable.", - "enum": [ - "Live", - "Bootstrap", - "Unavailable" - ], - "x-ms-enum": { - "name": "GeoReplicationStatus", - "modelAsString": true - } - }, - "lastSyncTime": { - "readOnly": true, - "type": "string", - "format": "date-time", - "description": "All primary writes preceding this UTC date/time value are guaranteed to be available for read operations. Primary writes following this point in time may or may not be available for reads. Element may be default value if value of LastSyncTime is not available, this can happen if secondary is offline or we are in bootstrap." - }, - "canFailover": { - "readOnly": true, - "type": "boolean", - "description": "A boolean flag which indicates whether or not account failover is supported for the account." - }, - "canPlannedFailover": { - "readOnly": true, - "type": "boolean", - "description": "A boolean flag which indicates whether or not planned account failover is supported for the account." - }, - "postFailoverRedundancy": { - "readOnly": true, - "type": "string", - "description": "The redundancy type of the account after an account failover is performed.", - "enum": [ - "Standard_LRS", - "Standard_ZRS" - ], - "x-ms-enum": { - "name": "postFailoverRedundancy", - "modelAsString": true - } - }, - "postPlannedFailoverRedundancy": { - "readOnly": true, - "type": "string", - "description": "The redundancy type of the account after a planned account failover is performed.", - "enum": [ - "Standard_GRS", - "Standard_GZRS", - "Standard_RAGRS", - "Standard_RAGZRS" - ], - "x-ms-enum": { - "name": "postPlannedFailoverRedundancy", - "modelAsString": true - } - } - }, - "description": "Statistics related to replication for storage account's Blob, Table, Queue and File services. It is only available when geo-redundant replication is enabled for the storage account." - }, - "RoutingPreference": { - "properties": { - "routingChoice": { - "type": "string", - "description": "Routing Choice defines the kind of network routing opted by the user.", - "enum": [ - "MicrosoftRouting", - "InternetRouting" - ], - "x-ms-enum": { - "name": "RoutingChoice", - "modelAsString": true - } - }, - "publishMicrosoftEndpoints": { - "type": "boolean", - "description": "A boolean flag which indicates whether microsoft routing storage endpoints are to be published" - }, - "publishInternetEndpoints": { - "type": "boolean", - "description": "A boolean flag which indicates whether internet routing storage endpoints are to be published" - } - }, - "description": "Routing preference defines the type of network, either microsoft or internet routing to be used to deliver the user data, the default option is microsoft routing" - }, - "DualStackEndpointPreference": { - "type": "object", - "properties": { - "publishIpv6Endpoint": { - "type": "boolean", - "description": "A boolean flag which indicates whether IPv6 storage endpoints are to be published." - } - }, - "description": "Dual-stack endpoint preference defines whether IPv6 endpoints are going to be published." - }, - "ImmutableStorageAccount": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "A boolean flag which enables account-level immutability. All the containers under such an account have object-level immutability enabled by default." - }, - "immutabilityPolicy": { - "x-ms-client-flatten": false, - "$ref": "#/definitions/AccountImmutabilityPolicyProperties", - "description": "Specifies the default account-level immutability policy which is inherited and applied to objects that do not possess an explicit immutability policy at the object level. The object-level immutability policy has higher precedence than the container-level immutability policy, which has a higher precedence than the account-level immutability policy." - } - }, - "description": "This property enables and defines account-level immutability. Enabling the feature auto-enables Blob Versioning." - }, - "AccountImmutabilityPolicyProperties": { - "type": "object", - "properties": { - "immutabilityPeriodSinceCreationInDays": { - "type": "integer", - "minimum": 1, - "maximum": 146000, - "format": "int32", - "description": "The immutability period for the blobs in the container since the policy creation, in days." - }, - "state": { - "type": "string", - "description": "The ImmutabilityPolicy state defines the mode of the policy. Disabled state disables the policy, Unlocked state allows increase and decrease of immutability retention time and also allows toggling allowProtectedAppendWrites property, Locked state only allows the increase of the immutability retention time. A policy can only be created in a Disabled or Unlocked state and can be toggled between the two states. Only a policy in an Unlocked state can transition to a Locked state which cannot be reverted.", - "enum": [ - "Unlocked", - "Locked", - "Disabled" - ], - "x-ms-enum": { - "name": "AccountImmutabilityPolicyState", - "modelAsString": true - } - }, - "allowProtectedAppendWrites": { - "type": "boolean", - "description": "This property can only be changed for disabled and unlocked time-based retention policies. When enabled, new blocks can be written to an append blob while maintaining immutability protection and compliance. Only new blocks can be added and any existing blocks cannot be modified or deleted." - } - }, - "description": "This defines account-level immutability policy properties." - }, - "StorageAccountSkuConversionStatus": { - "type": "object", - "properties": { - "skuConversionStatus": { - "readOnly": true, - "type": "string", - "description": "This property indicates the current sku conversion status.", - "enum": [ - "InProgress", - "Succeeded", - "Failed" - ], - "x-ms-enum": { - "name": "SkuConversionStatus", - "modelAsString": true - } - }, - "targetSkuName": { - "$ref": "./common.json#/definitions/SkuName", - "description": "This property represents the target sku name to which the account sku is being converted asynchronously." - }, - "startTime": { - "readOnly": true, - "type": "string", - "description": "This property represents the sku conversion start time." - }, - "endTime": { - "readOnly": true, - "type": "string", - "description": "This property represents the sku conversion end time." - } - }, - "description": "This defines the sku conversion status object for asynchronous sku conversions." - }, - "BlobRestoreStatus": { - "properties": { - "status": { - "readOnly": true, - "type": "string", - "description": "The status of blob restore progress. Possible values are: - InProgress: Indicates that blob restore is ongoing. - Complete: Indicates that blob restore has been completed successfully. - Failed: Indicates that blob restore is failed.", - "enum": [ - "InProgress", - "Complete", - "Failed" - ], - "x-ms-enum": { - "name": "BlobRestoreProgressStatus", - "modelAsString": true - } - }, - "failureReason": { - "readOnly": true, - "type": "string", - "description": "Failure reason when blob restore is failed." - }, - "restoreId": { - "readOnly": true, - "type": "string", - "description": "Id for tracking blob restore request." - }, - "parameters": { - "readOnly": true, - "$ref": "#/definitions/BlobRestoreParameters", - "description": "Blob restore request parameters." - } - }, - "description": "Blob restore status." - }, - "DeletedAccountProperties": { - "properties": { - "storageAccountResourceId": { - "readOnly": true, - "type": "string", - "description": "Full resource id of the original storage account." - }, - "location": { - "readOnly": true, - "type": "string", - "description": "Location of the deleted account." - }, - "restoreReference": { - "readOnly": true, - "type": "string", - "description": "Can be used to attempt recovering this deleted account via PutStorageAccount API." - }, - "creationTime": { - "readOnly": true, - "type": "string", - "description": "Creation time of the deleted account." - }, - "deletionTime": { - "readOnly": true, - "type": "string", - "description": "Deletion time of the deleted account." - } - }, - "description": "Attributes of a deleted storage account." - }, - "StorageAccountProperties": { - "properties": { - "provisioningState": { - "readOnly": true, - "type": "string", - "description": "Gets the status of the storage account at the time the operation was called.", - "enum": [ - "Creating", - "ResolvingDNS", - "Succeeded" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": false - } - }, - "primaryEndpoints": { - "$ref": "#/definitions/Endpoints", - "readOnly": true, - "description": "Gets the URLs that are used to perform a retrieval of a public blob, queue, or table object. Note that Standard_ZRS and Premium_LRS accounts only return the blob endpoint." - }, - "primaryLocation": { - "readOnly": true, - "type": "string", - "description": "Gets the location of the primary data center for the storage account." - }, - "statusOfPrimary": { - "readOnly": true, - "type": "string", - "description": "Gets the status indicating whether the primary location of the storage account is available or unavailable.", - "enum": [ - "available", - "unavailable" - ], - "x-ms-enum": { - "name": "AccountStatus", - "modelAsString": false - } - }, - "lastGeoFailoverTime": { - "readOnly": true, - "type": "string", - "format": "date-time", - "description": "Gets the timestamp of the most recent instance of a failover to the secondary location. Only the most recent timestamp is retained. This element is not returned if there has never been a failover instance. Only available if the accountType is Standard_GRS or Standard_RAGRS." - }, - "secondaryLocation": { - "readOnly": true, - "type": "string", - "description": "Gets the location of the geo-replicated secondary for the storage account. Only available if the accountType is Standard_GRS or Standard_RAGRS." - }, - "statusOfSecondary": { - "readOnly": true, - "type": "string", - "description": "Gets the status indicating whether the secondary location of the storage account is available or unavailable. Only available if the SKU name is Standard_GRS or Standard_RAGRS.", - "enum": [ - "available", - "unavailable" - ], - "x-ms-enum": { - "name": "AccountStatus", - "modelAsString": false - } - }, - "creationTime": { - "readOnly": true, - "type": "string", - "format": "date-time", - "description": "Gets the creation date and time of the storage account in UTC." - }, - "customDomain": { - "$ref": "#/definitions/CustomDomain", - "readOnly": true, - "description": "Gets the custom domain the user assigned to this storage account." - }, - "sasPolicy": { - "$ref": "#/definitions/SasPolicy", - "readOnly": true, - "description": "SasPolicy assigned to the storage account." - }, - "keyPolicy": { - "$ref": "#/definitions/KeyPolicy", - "readOnly": true, - "description": "KeyPolicy assigned to the storage account." - }, - "keyCreationTime": { - "readOnly": true, - "$ref": "#/definitions/KeyCreationTime", - "description": "Storage account keys creation time." - }, - "secondaryEndpoints": { - "$ref": "#/definitions/Endpoints", - "readOnly": true, - "description": "Gets the URLs that are used to perform a retrieval of a public blob, queue, or table object from the secondary location of the storage account. Only available if the SKU name is Standard_RAGRS." - }, - "encryption": { - "$ref": "#/definitions/Encryption", - "readOnly": true, - "description": "Encryption settings to be used for server-side encryption for the storage account." - }, - "accessTier": { - "readOnly": true, - "type": "string", - "description": "Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type.", - "enum": [ - "Hot", - "Cool", - "Premium", - "Cold" - ], - "x-ms-enum": { - "name": "AccessTier", - "modelAsString": false - } - }, - "azureFilesIdentityBasedAuthentication": { - "$ref": "#/definitions/AzureFilesIdentityBasedAuthentication", - "description": "Provides the identity based authentication settings for Azure Files." - }, - "supportsHttpsTrafficOnly": { - "type": "boolean", - "x-ms-client-name": "EnableHttpsTrafficOnly", - "description": "Allows https traffic only to storage service if sets to true." - }, - "networkAcls": { - "$ref": "#/definitions/NetworkRuleSet", - "x-ms-client-name": "NetworkRuleSet", - "description": "Network rule set", - "readOnly": true - }, - "isSftpEnabled": { - "type": "boolean", - "x-ms-client-name": "IsSftpEnabled", - "description": "Enables Secure File Transfer Protocol, if set to true" - }, - "isLocalUserEnabled": { - "type": "boolean", - "x-ms-client-name": "IsLocalUserEnabled", - "description": "Enables local users feature, if set to true" - }, - "enableExtendedGroups": { - "type": "boolean", - "x-ms-client-name": "EnableExtendedGroups", - "description": "Enables extended group support with local users feature, if set to true" - }, - "isHnsEnabled": { - "type": "boolean", - "x-ms-client-name": "IsHnsEnabled", - "description": "Account HierarchicalNamespace enabled if sets to true." - }, - "geoReplicationStats": { - "$ref": "#/definitions/GeoReplicationStats", - "x-ms-client-name": "GeoReplicationStats", - "description": "Geo Replication Stats", - "readOnly": true - }, - "failoverInProgress": { - "type": "boolean", - "x-ms-client-name": "FailoverInProgress", - "description": "If the failover is in progress, the value will be true, otherwise, it will be null.", - "readOnly": true - }, - "largeFileSharesState": { - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "LargeFileSharesState", - "modelAsString": true - }, - "description": "Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled." - }, - "privateEndpointConnections": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "./privatelinks.json#/definitions/PrivateEndpointConnection" - }, - "description": "List of private endpoint connection associated with the specified storage account" - }, - "routingPreference": { - "$ref": "#/definitions/RoutingPreference", - "x-ms-client-name": "RoutingPreference", - "description": "Maintains information about the network routing choice opted by the user for data transfer" - }, - "dualStackEndpointPreference": { - "$ref": "#/definitions/DualStackEndpointPreference", - "x-ms-client-name": "DualStackEndpointPreference", - "description": "Maintains information about the Internet protocol opted by the user." - }, - "blobRestoreStatus": { - "$ref": "#/definitions/BlobRestoreStatus", - "x-ms-client-name": "BlobRestoreStatus", - "description": "Blob restore status", - "readOnly": true - }, - "allowBlobPublicAccess": { - "type": "boolean", - "x-ms-client-name": "AllowBlobPublicAccess", - "description": "Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is false for this property." - }, - "minimumTlsVersion": { - "type": "string", - "enum": [ - "TLS1_0", - "TLS1_1", - "TLS1_2", - "TLS1_3" - ], - "x-ms-enum": { - "name": "MinimumTlsVersion", - "modelAsString": true - }, - "description": "Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property." - }, - "allowSharedKeyAccess": { - "type": "boolean", - "description": "Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true." - }, - "isNfsV3Enabled": { - "type": "boolean", - "x-ms-client-name": "EnableNfsV3", - "description": "NFS 3.0 protocol support enabled if set to true." - }, - "allowCrossTenantReplication": { - "type": "boolean", - "description": "Allow or disallow cross AAD tenant object replication. Set this property to true for new or existing accounts only if object replication policies will involve storage accounts in different AAD tenants. The default interpretation is false for new accounts to follow best security practices by default." - }, - "defaultToOAuthAuthentication": { - "type": "boolean", - "description": "A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property." - }, - "publicNetworkAccess": { - "$ref": "#/definitions/PublicNetworkAccess", - "description": "Allow, disallow, or let Network Security Perimeter configuration to evaluate public network access to Storage Account." - }, - "immutableStorageWithVersioning": { - "$ref": "#/definitions/ImmutableStorageAccount", - "x-ms-client-name": "ImmutableStorageWithVersioning", - "description": "The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the containers in the account by default." - }, - "allowedCopyScope": { - "type": "string", - "enum": [ - "PrivateLink", - "AAD" - ], - "x-ms-enum": { - "name": "AllowedCopyScope", - "modelAsString": true - }, - "description": "Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet." - }, - "storageAccountSkuConversionStatus": { - "$ref": "#/definitions/StorageAccountSkuConversionStatus", - "x-ms-client-name": "StorageAccountSkuConversionStatus", - "description": "This property is readOnly and is set by server during asynchronous storage account sku conversion operations." - }, - "dnsEndpointType": { - "type": "string", - "enum": [ - "Standard", - "AzureDnsZone" - ], - "x-ms-enum": { - "name": "DnsEndpointType", - "modelAsString": true - }, - "description": "Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier." - }, - "isSkuConversionBlocked": { - "type": "boolean", - "x-ms-client-name": "IsSkuConversionBlocked", - "description": "This property will be set to true or false on an event of ongoing migration. Default value is null.", - "readOnly": true - }, - "accountMigrationInProgress": { - "type": "boolean", - "x-ms-client-name": "AccountMigrationInProgress", - "description": "If customer initiated account migration is in progress, the value will be true else it will be null.", - "readOnly": true - }, - "geoPriorityReplicationStatus": { - "$ref": "#/definitions/GeoPriorityReplicationStatus", - "description": "Status indicating whether Geo Priority Replication is enabled for the account." - } - }, - "description": "Properties of the storage account." - }, - "DeletedAccount": { - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/DeletedAccountProperties", - "description": "Properties of the deleted account." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource" - } - ], - "description": "Deleted storage account" - }, - "StorageAccount": { - "properties": { - "sku": { - "$ref": "./common.json#/definitions/Sku", - "readOnly": true, - "description": "Gets the SKU." - }, - "kind": { - "readOnly": true, - "type": "string", - "description": "Gets the Kind.", - "enum": [ - "Storage", - "StorageV2", - "BlobStorage", - "FileStorage", - "BlockBlobStorage" - ], - "x-ms-enum": { - "name": "Kind", - "modelAsString": true - } - }, - "identity": { - "$ref": "#/definitions/Identity", - "description": "The identity of the resource." - }, - "extendedLocation": { - "$ref": "#/definitions/ExtendedLocation", - "description": "The extendedLocation of the resource." - }, - "zones": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional. Gets or sets the pinned logical availability zone for the storage account." - }, - "placement": { - "$ref": "#/definitions/Placement", - "description": "Optional. Gets or sets the zonal placement details for the storage account." - }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/StorageAccountProperties", - "description": "Properties of the storage account." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/TrackedResource" - } - ], - "description": "The storage account." - }, - "StorageAccountKey": { - "properties": { - "keyName": { - "readOnly": true, - "type": "string", - "description": "Name of the key." - }, - "value": { - "readOnly": true, - "type": "string", - "description": "Base 64-encoded value of the key." - }, - "permissions": { - "readOnly": true, - "type": "string", - "description": "Permissions for the key -- read-only or full permissions.", - "enum": [ - "Read", - "Full" - ], - "x-ms-enum": { - "name": "KeyPermission", - "modelAsString": false - } - }, - "creationTime": { - "readOnly": true, - "type": "string", - "format": "date-time", - "description": "Creation time of the key, in round trip date format." - } - }, - "description": "An access key for the storage account." - }, - "StorageAccountListResult": { - "properties": { - "value": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/StorageAccount" - }, - "description": "Gets the list of storage accounts and their properties." - }, - "nextLink": { - "type": "string", - "description": "Request URL that can be used to query next page of storage accounts. Returned when total number of requested storage accounts exceed maximum page size.", - "readOnly": true - } - }, - "description": "The response from the List Storage Accounts operation." - }, - "DeletedAccountListResult": { - "properties": { - "value": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/DeletedAccount" - }, - "description": "Gets the list of deleted accounts and their properties." - }, - "nextLink": { - "type": "string", - "description": "Request URL that can be used to query next page of deleted accounts. Returned when total number of requested deleted accounts exceed maximum page size.", - "readOnly": true - } - }, - "description": "The response from the List Deleted Accounts operation." - }, - "StorageAccountListKeysResult": { - "properties": { - "keys": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/StorageAccountKey" - }, - "description": "Gets the list of storage account keys and their properties for the specified storage account." - } - }, - "description": "The response from the ListKeys operation." - }, - "StorageAccountRegenerateKeyParameters": { - "properties": { - "keyName": { - "type": "string", - "description": "The name of storage keys that want to be regenerated, possible values are key1, key2, kerb1, kerb2." - } - }, - "required": [ - "keyName" - ], - "description": "The parameters used to regenerate the storage account key." - }, - "StorageAccountPropertiesUpdateParameters": { - "properties": { - "customDomain": { - "$ref": "#/definitions/CustomDomain", - "description": "Custom domain assigned to the storage account by the user. Name is the CNAME source. Only one custom domain is supported per storage account at this time. To clear the existing custom domain, use an empty string for the custom domain name property." - }, - "encryption": { - "$ref": "#/definitions/Encryption", - "description": "Not applicable. Azure Storage encryption at rest is enabled by default for all storage accounts and cannot be disabled." - }, - "sasPolicy": { - "$ref": "#/definitions/SasPolicy", - "description": "SasPolicy assigned to the storage account." - }, - "keyPolicy": { - "$ref": "#/definitions/KeyPolicy", - "description": "KeyPolicy assigned to the storage account." - }, - "accessTier": { - "type": "string", - "description": "Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type.", - "enum": [ - "Hot", - "Cool", - "Premium", - "Cold" - ], - "x-ms-enum": { - "name": "AccessTier", - "modelAsString": false - } - }, - "azureFilesIdentityBasedAuthentication": { - "$ref": "#/definitions/AzureFilesIdentityBasedAuthentication", - "description": "Provides the identity based authentication settings for Azure Files." - }, - "supportsHttpsTrafficOnly": { - "type": "boolean", - "x-ms-client-name": "EnableHttpsTrafficOnly", - "description": "Allows https traffic only to storage service if sets to true." - }, - "isSftpEnabled": { - "type": "boolean", - "x-ms-client-name": "IsSftpEnabled", - "description": "Enables Secure File Transfer Protocol, if set to true" - }, - "isLocalUserEnabled": { - "type": "boolean", - "x-ms-client-name": "IsLocalUserEnabled", - "description": "Enables local users feature, if set to true" - }, - "enableExtendedGroups": { - "type": "boolean", - "x-ms-client-name": "EnableExtendedGroups", - "description": "Enables extended group support with local users feature, if set to true" - }, - "networkAcls": { - "description": "Network rule set", - "x-ms-client-name": "NetworkRuleSet", - "$ref": "#/definitions/NetworkRuleSet" - }, - "largeFileSharesState": { - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "LargeFileSharesState", - "modelAsString": true - }, - "description": "Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled." - }, - "routingPreference": { - "$ref": "#/definitions/RoutingPreference", - "x-ms-client-name": "RoutingPreference", - "description": "Maintains information about the network routing choice opted by the user for data transfer" - }, - "dualStackEndpointPreference": { - "$ref": "#/definitions/DualStackEndpointPreference", - "x-ms-client-name": "DualStackEndpointPreference", - "description": "Maintains information about the Internet protocol opted by the user." - }, - "allowBlobPublicAccess": { - "type": "boolean", - "x-ms-client-name": "AllowBlobPublicAccess", - "description": "Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is false for this property." - }, - "minimumTlsVersion": { - "type": "string", - "enum": [ - "TLS1_0", - "TLS1_1", - "TLS1_2", - "TLS1_3" - ], - "x-ms-enum": { - "name": "MinimumTlsVersion", - "modelAsString": true - }, - "description": "Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property." - }, - "allowSharedKeyAccess": { - "type": "boolean", - "description": "Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true." - }, - "allowCrossTenantReplication": { - "type": "boolean", - "description": "Allow or disallow cross AAD tenant object replication. Set this property to true for new or existing accounts only if object replication policies will involve storage accounts in different AAD tenants. The default interpretation is false for new accounts to follow best security practices by default." - }, - "defaultToOAuthAuthentication": { - "type": "boolean", - "description": "A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property." - }, - "publicNetworkAccess": { - "$ref": "#/definitions/PublicNetworkAccess", - "description": "Allow, disallow, or let Network Security Perimeter configuration to evaluate public network access to Storage Account. Value is optional but if passed in, must be 'Enabled', 'Disabled' or 'SecuredByPerimeter'." - }, - "immutableStorageWithVersioning": { - "$ref": "#/definitions/ImmutableStorageAccount", - "x-ms-client-name": "ImmutableStorageWithVersioning", - "description": "The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the containers in the account by default." - }, - "allowedCopyScope": { - "type": "string", - "enum": [ - "PrivateLink", - "AAD" - ], - "x-ms-enum": { - "name": "AllowedCopyScope", - "modelAsString": true - }, - "description": "Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet." - }, - "dnsEndpointType": { - "type": "string", - "enum": [ - "Standard", - "AzureDnsZone" - ], - "x-ms-enum": { - "name": "DnsEndpointType", - "modelAsString": true - }, - "description": "Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier." - }, - "geoPriorityReplicationStatus": { - "$ref": "#/definitions/GeoPriorityReplicationStatus", - "description": "Status indicating whether Geo Priority Replication is enabled for the account." - } - }, - "description": "The parameters used when updating a storage account." - }, - "StorageAccountUpdateParameters": { - "properties": { - "sku": { - "$ref": "./common.json#/definitions/Sku", - "description": "Gets or sets the SKU name. Note that the SKU name cannot be updated to Standard_ZRS, Premium_LRS or Premium_ZRS, nor can accounts of those SKU names be updated to any other value." - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Gets or sets a list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater in length than 128 characters and a value no greater in length than 256 characters." - }, - "identity": { - "$ref": "#/definitions/Identity", - "description": "The identity of the resource." - }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/StorageAccountPropertiesUpdateParameters", - "description": "The parameters used when updating a storage account." - }, - "kind": { - "type": "string", - "description": "Optional. Indicates the type of storage account. Currently only StorageV2 value supported by server.", - "enum": [ - "Storage", - "StorageV2", - "BlobStorage", - "FileStorage", - "BlockBlobStorage" - ], - "x-ms-enum": { - "name": "Kind", - "modelAsString": true - } - }, - "zones": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional. Gets or sets the pinned logical availability zone for the storage account." - }, - "placement": { - "$ref": "#/definitions/Placement", - "description": "Optional. Gets or sets the zonal placement details for the storage account." - } - }, - "description": "The parameters that can be provided when updating the storage account properties." - }, - "BlobRestoreParameters": { - "properties": { - "timeToRestore": { - "type": "string", - "format": "date-time", - "description": "Restore blob to the specified time." - }, - "blobRanges": { - "type": "array", - "items": { - "$ref": "#/definitions/BlobRestoreRange" - }, - "description": "Blob ranges to restore." - } - }, - "required": [ - "timeToRestore", - "blobRanges" - ], - "description": "Blob restore parameters" - }, - "BlobRestoreRange": { - "properties": { - "startRange": { - "type": "string", - "description": "Blob start range. This is inclusive. Empty means account start." - }, - "endRange": { - "type": "string", - "description": "Blob end range. This is exclusive. Empty means account end." - } - }, - "required": [ - "startRange", - "endRange" - ], - "description": "Blob range" - }, - "UsageName": { - "properties": { - "value": { - "readOnly": true, - "type": "string", - "description": "Gets a string describing the resource name." - }, - "localizedValue": { - "readOnly": true, - "type": "string", - "description": "Gets a localized string describing the resource name." - } - }, - "description": "The usage names that can be used; currently limited to StorageAccount." - }, - "Usage": { - "properties": { - "unit": { - "readOnly": true, - "type": "string", - "description": "Gets the unit of measurement.", - "enum": [ - "Count", - "Bytes", - "Seconds", - "Percent", - "CountsPerSecond", - "BytesPerSecond" - ], - "x-ms-enum": { - "name": "UsageUnit", - "modelAsString": false - } - }, - "currentValue": { - "readOnly": true, - "type": "integer", - "format": "int32", - "description": "Gets the current count of the allocated resources in the subscription." - }, - "limit": { - "readOnly": true, - "type": "integer", - "format": "int32", - "description": "Gets the maximum count of the resources that can be allocated in the subscription." - }, - "name": { - "$ref": "#/definitions/UsageName", - "readOnly": true, - "description": "Gets the name of the type of usage." - } - }, - "description": "Describes Storage Resource Usage." - }, - "UsageListResult": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/Usage" - }, - "description": "Gets or sets the list of Storage Resource Usages." - } - }, - "description": "The response from the List Usages operation." - }, - "AccountSasParameters": { - "properties": { - "signedServices": { - "type": "string", - "enum": [ - "b", - "q", - "t", - "f" - ], - "x-ms-enum": { - "name": "Services", - "modelAsString": true - }, - "x-ms-client-name": "Services", - "description": "The signed services accessible with the account SAS. Possible values include: Blob (b), Queue (q), Table (t), File (f)." - }, - "signedResourceTypes": { - "type": "string", - "enum": [ - "s", - "c", - "o" - ], - "x-ms-enum": { - "name": "SignedResourceTypes", - "modelAsString": true - }, - "x-ms-client-name": "ResourceTypes", - "description": "The signed resource types that are accessible with the account SAS. Service (s): Access to service-level APIs; Container (c): Access to container-level APIs; Object (o): Access to object-level APIs for blobs, queue messages, table entities, and files." - }, - "signedPermission": { - "type": "string", - "enum": [ - "r", - "d", - "w", - "l", - "a", - "c", - "u", - "p" - ], - "x-ms-enum": { - "name": "Permissions", - "modelAsString": true - }, - "x-ms-client-name": "Permissions", - "description": "The signed permissions for the account SAS. Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p)." - }, - "signedIp": { - "type": "string", - "x-ms-client-name": "IPAddressOrRange", - "description": "An IP address or a range of IP addresses from which to accept requests." - }, - "signedProtocol": { - "type": "string", - "enum": [ - "https,http", - "https" - ], - "x-ms-enum": { - "name": "HttpProtocol", - "modelAsString": false - }, - "x-ms-client-name": "Protocols", - "description": "The protocol permitted for a request made with the account SAS." - }, - "signedStart": { - "type": "string", - "format": "date-time", - "x-ms-client-name": "SharedAccessStartTime", - "description": "The time at which the SAS becomes valid." - }, - "signedExpiry": { - "type": "string", - "format": "date-time", - "x-ms-client-name": "SharedAccessExpiryTime", - "description": "The time at which the shared access signature becomes invalid." - }, - "keyToSign": { - "type": "string", - "description": "The key to sign the account SAS token with." - } - }, - "required": [ - "signedServices", - "signedResourceTypes", - "signedPermission", - "signedExpiry" - ], - "description": "The parameters to list SAS credentials of a storage account." - }, - "ListAccountSasResponse": { - "properties": { - "accountSasToken": { - "readOnly": true, - "type": "string", - "description": "List SAS credentials of storage account." - } - }, - "description": "The List SAS credentials operation response." - }, - "ServiceSasParameters": { - "properties": { - "canonicalizedResource": { - "type": "string", - "description": "The canonical path to the signed resource." - }, - "signedResource": { - "type": "string", - "enum": [ - "b", - "c", - "f", - "s" - ], - "x-ms-enum": { - "name": "signedResource", - "modelAsString": true - }, - "x-ms-client-name": "Resource", - "description": "The signed services accessible with the service SAS. Possible values include: Blob (b), Container (c), File (f), Share (s)." - }, - "signedPermission": { - "type": "string", - "enum": [ - "r", - "d", - "w", - "l", - "a", - "c", - "u", - "p" - ], - "x-ms-enum": { - "name": "Permissions", - "modelAsString": true - }, - "x-ms-client-name": "Permissions", - "description": "The signed permissions for the service SAS. Possible values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create (c), Update (u) and Process (p)." - }, - "signedIp": { - "type": "string", - "x-ms-client-name": "IPAddressOrRange", - "description": "An IP address or a range of IP addresses from which to accept requests." - }, - "signedProtocol": { - "type": "string", - "enum": [ - "https,http", - "https" - ], - "x-ms-enum": { - "name": "HttpProtocol", - "modelAsString": false - }, - "x-ms-client-name": "Protocols", - "description": "The protocol permitted for a request made with the account SAS." - }, - "signedStart": { - "type": "string", - "format": "date-time", - "x-ms-client-name": "SharedAccessStartTime", - "description": "The time at which the SAS becomes valid." - }, - "signedExpiry": { - "type": "string", - "format": "date-time", - "x-ms-client-name": "SharedAccessExpiryTime", - "description": "The time at which the shared access signature becomes invalid." - }, - "signedIdentifier": { - "type": "string", - "maxLength": 64, - "x-ms-client-name": "Identifier", - "description": "A unique value up to 64 characters in length that correlates to an access policy specified for the container, queue, or table." - }, - "startPk": { - "type": "string", - "x-ms-client-name": "PartitionKeyStart", - "description": "The start of partition key." - }, - "endPk": { - "type": "string", - "x-ms-client-name": "PartitionKeyEnd", - "description": "The end of partition key." - }, - "startRk": { - "type": "string", - "x-ms-client-name": "RowKeyStart", - "description": "The start of row key." - }, - "endRk": { - "type": "string", - "x-ms-client-name": "RowKeyEnd", - "description": "The end of row key." - }, - "keyToSign": { - "type": "string", - "description": "The key to sign the account SAS token with." - }, - "rscc": { - "type": "string", - "x-ms-client-name": "CacheControl", - "description": "The response header override for cache control." - }, - "rscd": { - "type": "string", - "x-ms-client-name": "ContentDisposition", - "description": "The response header override for content disposition." - }, - "rsce": { - "type": "string", - "x-ms-client-name": "ContentEncoding", - "description": "The response header override for content encoding." - }, - "rscl": { - "type": "string", - "x-ms-client-name": "ContentLanguage", - "description": "The response header override for content language." - }, - "rsct": { - "type": "string", - "x-ms-client-name": "ContentType", - "description": "The response header override for content type." - } - }, - "required": [ - "canonicalizedResource" - ], - "description": "The parameters to list service SAS credentials of a specific resource." - }, - "ListServiceSasResponse": { - "properties": { - "serviceSasToken": { - "readOnly": true, - "type": "string", - "description": "List service SAS credentials of specific resource." - } - }, - "description": "The List service SAS credentials operation response." - }, - "ManagementPolicy": { - "properties": { - "properties": { - "$ref": "#/definitions/ManagementPolicyProperties", - "x-ms-client-flatten": true, - "description": "Returns the Storage Account Data Policies Rules." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "description": "The Get Storage Account ManagementPolicies operation response." - }, - "ManagementPolicyProperties": { - "properties": { - "lastModifiedTime": { - "readOnly": true, - "type": "string", - "format": "date-time", - "description": "Returns the date and time the ManagementPolicies was last modified." - }, - "policy": { - "$ref": "#/definitions/ManagementPolicySchema", - "description": "The Storage Account ManagementPolicy, in JSON format. See more details in: https://learn.microsoft.com/azure/storage/blobs/lifecycle-management-overview." - } - }, - "required": [ - "policy" - ], - "description": "The Storage Account ManagementPolicy properties." - }, - "ManagementPolicySchema": { - "properties": { - "rules": { - "type": "array", - "items": { - "$ref": "#/definitions/ManagementPolicyRule" - }, - "description": "The Storage Account ManagementPolicies Rules. See more details in: https://learn.microsoft.com/azure/storage/blobs/lifecycle-management-overview." - } - }, - "required": [ - "rules" - ], - "description": "The Storage Account ManagementPolicies Rules. See more details in: https://learn.microsoft.com/azure/storage/blobs/lifecycle-management-overview." - }, - "ManagementPolicyRule": { - "properties": { - "enabled": { - "type": "boolean", - "description": "Rule is enabled if set to true." - }, - "name": { - "type": "string", - "description": "A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy." - }, - "type": { - "type": "string", - "description": "The valid value is Lifecycle", - "enum": [ - "Lifecycle" - ], - "x-ms-enum": { - "name": "RuleType", - "modelAsString": true - } - }, - "definition": { - "$ref": "#/definitions/ManagementPolicyDefinition", - "description": "An object that defines the Lifecycle rule." - } - }, - "required": [ - "name", - "type", - "definition" - ], - "description": "An object that wraps the Lifecycle rule. Each rule is uniquely defined by name." - }, - "ManagementPolicyDefinition": { - "properties": { - "actions": { - "$ref": "#/definitions/ManagementPolicyAction", - "description": "An object that defines the action set." - }, - "filters": { - "$ref": "#/definitions/ManagementPolicyFilter", - "description": "An object that defines the filter set." - } - }, - "required": [ - "actions" - ], - "description": "An object that defines the Lifecycle rule. Each definition is made up with a filters set and an actions set." - }, - "ManagementPolicyFilter": { - "properties": { - "prefixMatch": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of strings for prefixes to be match." - }, - "blobTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of predefined enum values. Currently blockBlob supports all tiering and delete actions. Only delete actions are supported for appendBlob." - }, - "blobIndexMatch": { - "type": "array", - "items": { - "$ref": "#/definitions/TagFilter" - }, - "description": "An array of blob index tag based filters, there can be at most 10 tag filters" - } - }, - "required": [ - "blobTypes" - ], - "description": "Filters limit rule actions to a subset of blobs within the storage account. If multiple filters are defined, a logical AND is performed on all filters. " - }, - "TagFilter": { - "properties": { - "name": { - "type": "string", - "minLength": 1, - "maxLength": 128, - "description": "This is the filter tag name, it can have 1 - 128 characters" - }, - "op": { - "type": "string", - "description": "This is the comparison operator which is used for object comparison and filtering. Only == (equality operator) is currently supported" - }, - "value": { - "type": "string", - "minLength": 0, - "maxLength": 256, - "description": "This is the filter tag value field used for tag based filtering, it can have 0 - 256 characters" - } - }, - "required": [ - "name", - "op", - "value" - ], - "description": "Blob index tag based filtering for blob objects" - }, - "ManagementPolicyAction": { - "properties": { - "baseBlob": { - "$ref": "#/definitions/ManagementPolicyBaseBlob", - "description": "The management policy action for base blob" - }, - "snapshot": { - "$ref": "#/definitions/ManagementPolicySnapShot", - "description": "The management policy action for snapshot" - }, - "version": { - "$ref": "#/definitions/ManagementPolicyVersion", - "description": "The management policy action for version" - } - }, - "description": "Actions are applied to the filtered blobs when the execution condition is met." - }, - "ManagementPolicyBaseBlob": { - "properties": { - "tierToCool": { - "$ref": "#/definitions/DateAfterModification", - "description": "The function to tier blobs to cool storage." - }, - "tierToArchive": { - "$ref": "#/definitions/DateAfterModification", - "description": "The function to tier blobs to archive storage." - }, - "tierToCold": { - "$ref": "#/definitions/DateAfterModification", - "description": "The function to tier blobs to cold storage." - }, - "tierToHot": { - "$ref": "#/definitions/DateAfterModification", - "description": "The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts" - }, - "delete": { - "$ref": "#/definitions/DateAfterModification", - "description": "The function to delete the blob" - }, - "enableAutoTierToHotFromCool": { - "type": "boolean", - "description": "This property enables auto tiering of a blob from cool to hot on a blob access. This property requires tierToCool.daysAfterLastAccessTimeGreaterThan." - } - }, - "description": "Management policy action for base blob." - }, - "ManagementPolicySnapShot": { - "properties": { - "tierToCool": { - "$ref": "#/definitions/DateAfterCreation", - "description": "The function to tier blob snapshot to cool storage." - }, - "tierToArchive": { - "$ref": "#/definitions/DateAfterCreation", - "description": "The function to tier blob snapshot to archive storage." - }, - "tierToCold": { - "$ref": "#/definitions/DateAfterCreation", - "description": "The function to tier blobs to cold storage." - }, - "tierToHot": { - "$ref": "#/definitions/DateAfterCreation", - "description": "The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts" - }, - "delete": { - "$ref": "#/definitions/DateAfterCreation", - "description": "The function to delete the blob snapshot" - } - }, - "description": "Management policy action for snapshot." - }, - "ManagementPolicyVersion": { - "properties": { - "tierToCool": { - "$ref": "#/definitions/DateAfterCreation", - "description": "The function to tier blob version to cool storage." - }, - "tierToArchive": { - "$ref": "#/definitions/DateAfterCreation", - "description": "The function to tier blob version to archive storage." - }, - "tierToCold": { - "$ref": "#/definitions/DateAfterCreation", - "description": "The function to tier blobs to cold storage." - }, - "tierToHot": { - "$ref": "#/definitions/DateAfterCreation", - "description": "The function to tier blobs to hot storage. This action can only be used with Premium Block Blob Storage Accounts" - }, - "delete": { - "$ref": "#/definitions/DateAfterCreation", - "description": "The function to delete the blob version" - } - }, - "description": "Management policy action for blob version." - }, - "DateAfterModification": { - "properties": { - "daysAfterModificationGreaterThan": { - "type": "number", - "multipleOf": 1.0, - "minimum": 0, - "description": "Value indicating the age in days after last modification" - }, - "daysAfterLastAccessTimeGreaterThan": { - "type": "number", - "multipleOf": 1.0, - "minimum": 0, - "description": "Value indicating the age in days after last blob access. This property can only be used in conjunction with last access time tracking policy" - }, - "daysAfterLastTierChangeGreaterThan": { - "type": "number", - "multipleOf": 1.0, - "minimum": 0, - "description": "Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterModificationGreaterThan to be set for baseBlobs based actions. The blob will be archived if both the conditions are satisfied." - }, - "daysAfterCreationGreaterThan": { - "type": "number", - "multipleOf": 1.0, - "minimum": 0, - "description": "Value indicating the age in days after blob creation." - } - }, - "description": "Object to define the base blob action conditions. Properties daysAfterModificationGreaterThan, daysAfterLastAccessTimeGreaterThan and daysAfterCreationGreaterThan are mutually exclusive. The daysAfterLastTierChangeGreaterThan property is only applicable for tierToArchive actions which requires daysAfterModificationGreaterThan to be set, also it cannot be used in conjunction with daysAfterLastAccessTimeGreaterThan or daysAfterCreationGreaterThan." - }, - "DateAfterCreation": { - "properties": { - "daysAfterCreationGreaterThan": { - "type": "number", - "multipleOf": 1.0, - "minimum": 0, - "description": "Value indicating the age in days after creation" - }, - "daysAfterLastTierChangeGreaterThan": { - "type": "number", - "multipleOf": 1.0, - "minimum": 0, - "description": "Value indicating the age in days after last blob tier change time. This property is only applicable for tierToArchive actions and requires daysAfterCreationGreaterThan to be set for snapshots and blob version based actions. The blob will be archived if both the conditions are satisfied." - } - }, - "required": [ - "daysAfterCreationGreaterThan" - ], - "description": "Object to define snapshot and version action conditions." - }, - "EncryptionScope": { - "properties": { - "properties": { - "$ref": "#/definitions/EncryptionScopeProperties", - "x-ms-client-flatten": true, - "x-ms-client-name": "EncryptionScopeProperties", - "description": "Properties of the encryption scope." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "description": "The Encryption Scope resource." - }, - "EncryptionScopeProperties": { - "properties": { - "source": { - "type": "string", - "enum": [ - "Microsoft.Storage", - "Microsoft.KeyVault" - ], - "x-ms-enum": { - "name": "EncryptionScopeSource", - "modelAsString": true - }, - "description": "The provider for the encryption scope. Possible values (case-insensitive): Microsoft.Storage, Microsoft.KeyVault." - }, - "state": { - "type": "string", - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "EncryptionScopeState", - "modelAsString": true - }, - "description": "The state of the encryption scope. Possible values (case-insensitive): Enabled, Disabled." - }, - "creationTime": { - "readOnly": true, - "type": "string", - "format": "date-time", - "description": "Gets the creation date and time of the encryption scope in UTC." - }, - "lastModifiedTime": { - "readOnly": true, - "type": "string", - "format": "date-time", - "description": "Gets the last modification date and time of the encryption scope in UTC." - }, - "keyVaultProperties": { - "$ref": "#/definitions/EncryptionScopeKeyVaultProperties", - "description": "The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'." - }, - "requireInfrastructureEncryption": { - "type": "boolean", - "description": "A boolean indicating whether or not the service applies a secondary layer of encryption with platform managed keys for data at rest." - } - }, - "description": "Properties of the encryption scope." - }, - "EncryptionScopeKeyVaultProperties": { - "properties": { - "keyUri": { - "type": "string", - "description": "The object identifier for a key vault key object. When applied, the encryption scope will use the key referenced by the identifier to enable customer-managed key support on this encryption scope." - }, - "currentVersionedKeyIdentifier": { - "type": "string", - "readOnly": true, - "description": "The object identifier of the current versioned Key Vault Key in use." - }, - "lastKeyRotationTimestamp": { - "type": "string", - "readOnly": true, - "format": "date-time", - "description": "Timestamp of last rotation of the Key Vault Key." - } - }, - "description": "The key vault properties for the encryption scope. This is a required field if encryption scope 'source' attribute is set to 'Microsoft.KeyVault'." - }, - "EncryptionScopeListResult": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/EncryptionScope" - }, - "description": "List of encryption scopes requested.", - "readOnly": true - }, - "nextLink": { - "type": "string", - "description": "Request URL that can be used to query next page of encryption scopes. Returned when total number of requested encryption scopes exceeds the maximum page size.", - "readOnly": true - } - }, - "description": "List of encryption scopes requested, and if paging is required, a URL to the next page of encryption scopes." - }, - "ObjectReplicationPolicies": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/ObjectReplicationPolicy" - }, - "description": "The replication policy between two storage accounts." - } - }, - "description": "List storage account object replication policies." - }, - "ObjectReplicationPolicy": { - "properties": { - "properties": { - "$ref": "#/definitions/ObjectReplicationPolicyProperties", - "x-ms-client-flatten": true, - "description": "Returns the Storage Account Object Replication Policy." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "description": "The replication policy between two storage accounts. Multiple rules can be defined in one policy." - }, - "ObjectReplicationPolicyProperties": { - "properties": { - "policyId": { - "readOnly": true, - "type": "string", - "description": "A unique id for object replication policy." - }, - "enabledTime": { - "readOnly": true, - "type": "string", - "format": "date-time", - "description": "Indicates when the policy is enabled on the source account." - }, - "sourceAccount": { - "type": "string", - "description": "Required. Source account name. It should be full resource id if allowCrossTenantReplication set to false." - }, - "destinationAccount": { - "type": "string", - "description": "Required. Destination account name. It should be full resource id if allowCrossTenantReplication set to false." - }, - "rules": { - "type": "array", - "items": { - "$ref": "#/definitions/ObjectReplicationPolicyRule" - }, - "description": "The storage account object replication rules." - }, - "metrics": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Indicates whether object replication metrics feature is enabled for the policy." - } - }, - "description": "Optional. The object replication policy metrics feature options." - }, - "priorityReplication": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Indicates whether object replication priority replication feature is enabled for the policy." - } - }, - "description": "Optional. The object replication policy priority replication feature options." - } - }, - "required": [ - "sourceAccount", - "destinationAccount" - ], - "description": "The Storage Account ObjectReplicationPolicy properties." - }, - "ObjectReplicationPolicyRule": { - "properties": { - "ruleId": { - "type": "string", - "description": "Rule Id is auto-generated for each new rule on destination account. It is required for put policy on source account." - }, - "sourceContainer": { - "type": "string", - "description": "Required. Source container name." - }, - "destinationContainer": { - "type": "string", - "description": "Required. Destination container name." - }, - "filters": { - "$ref": "#/definitions/ObjectReplicationPolicyFilter", - "description": "Optional. An object that defines the filter set." - } - }, - "required": [ - "sourceContainer", - "destinationContainer" - ], - "description": "The replication policy rule between two containers." - }, - "ObjectReplicationPolicyFilter": { - "properties": { - "prefixMatch": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional. Filters the results to replicate only blobs whose names begin with the specified prefix." - }, - "minCreationTime": { - "type": "string", - "description": "Blobs created after the time will be replicated to the destination. It must be in datetime format 'yyyy-MM-ddTHH:mm:ssZ'. Example: 2020-02-19T16:05:00Z" - } - }, - "description": "Filters limit replication to a subset of blobs within the storage account. A logical OR is performed on values in the filter. If multiple filters are defined, a logical AND is performed on all filters." - }, - "LocalUsers": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/LocalUser" - }, - "description": "The list of local users associated with the storage account." - }, - "nextLink": { - "type": "string", - "description": "Request URL that can be used to query next page of local users. Returned when total number of requested local users exceeds the maximum page size.", - "readOnly": true - } - }, - "description": "List of local users requested, and if paging is required, a URL to the next page of local users." - }, - "LocalUser": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/LocalUserProperties", - "x-ms-client-flatten": true, - "description": "Storage account local user properties." - }, - "systemData": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData" - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "description": "The local user associated with the storage accounts." - }, - "LocalUserProperties": { - "type": "object", - "properties": { - "permissionScopes": { - "type": "array", - "items": { - "$ref": "#/definitions/PermissionScope" - }, - "description": "The permission scopes of the local user." - }, - "homeDirectory": { - "type": "string", - "description": "Optional, local user home directory." - }, - "sshAuthorizedKeys": { - "$ref": "#/definitions/SshAuthorizedKeys" - }, - "sid": { - "readOnly": true, - "type": "string", - "description": "A unique Security Identifier that is generated by the server." - }, - "hasSharedKey": { - "type": "boolean", - "description": "Indicates whether shared key exists. Set it to false to remove existing shared key." - }, - "hasSshKey": { - "type": "boolean", - "description": "Indicates whether ssh key exists. Set it to false to remove existing SSH key." - }, - "hasSshPassword": { - "type": "boolean", - "description": "Indicates whether ssh password exists. Set it to false to remove existing SSH password." - }, - "userId": { - "readOnly": true, - "type": "integer", - "format": "int32", - "description": "A unique Identifier that is generated by the server." - }, - "groupId": { - "type": "integer", - "format": "int32", - "description": "An identifier for associating a group of users." - }, - "allowAclAuthorization": { - "type": "boolean", - "description": "Indicates whether ACL authorization is allowed for this user. Set it to false to disallow using ACL authorization." - }, - "extendedGroups": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "description": "Supplementary group membership. Only applicable for local users enabled for NFSv3 access." - }, - "isNFSv3Enabled": { - "type": "boolean", - "description": "Indicates if the local user is enabled for access with NFSv3 protocol." - } - }, - "description": "The Storage Account Local User properties." - }, - "LocalUserKeys": { - "type": "object", - "properties": { - "sshAuthorizedKeys": { - "$ref": "#/definitions/SshAuthorizedKeys" - }, - "sharedKey": { - "x-ms-secret": true, - "$ref": "#/definitions/SharedKey" - } - }, - "description": "The Storage Account Local User keys." - }, - "LocalUserRegeneratePasswordResult": { - "type": "object", - "properties": { - "sshPassword": { - "x-ms-secret": true, - "readOnly": true, - "type": "string", - "description": "Auto generated password by the server for SSH authentication if hasSshPassword is set to true on the creation of local user." - } - }, - "description": "The secrets of Storage Account Local User." - }, - "PermissionScope": { - "type": "object", - "properties": { - "permissions": { - "type": "string", - "description": "The permissions for the local user. Possible values include: Read (r), Write (w), Delete (d), List (l), Create (c), Modify Ownership (o), and Modify Permissions (p)." - }, - "service": { - "type": "string", - "description": "The service used by the local user, e.g. blob, file." - }, - "resourceName": { - "type": "string", - "description": "The name of resource, normally the container name or the file share name, used by the local user." - } - }, - "required": [ - "permissions", - "service", - "resourceName" - ] - }, - "SshAuthorizedKeys": { - "type": "array", - "items": { - "$ref": "#/definitions/SshPublicKey" - }, - "description": "Optional, local user ssh authorized keys for SFTP." - }, - "SshPublicKey": { - "type": "object", - "properties": { - "description": { - "type": "string", - "description": "Optional. It is used to store the function/usage of the key" - }, - "key": { - "type": "string", - "description": "Ssh public key base64 encoded. The format should be: ' ', e.g. ssh-rsa AAAABBBB" - } - } - }, - "SharedKey": { - "readOnly": true, - "type": "string", - "description": "Auto generated by the server for SMB authentication." - }, - "ListBlobInventoryPolicy": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/BlobInventoryPolicy" - }, - "description": "List of blob inventory policies.", - "readOnly": true - } - }, - "description": "List of blob inventory policies returned." - }, - "BlobInventoryPolicy": { - "properties": { - "properties": { - "$ref": "#/definitions/BlobInventoryPolicyProperties", - "x-ms-client-flatten": true, - "description": "Returns the storage account blob inventory policy rules." - }, - "systemData": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData" - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "description": "The storage account blob inventory policy." - }, - "BlobInventoryPolicyProperties": { - "properties": { - "lastModifiedTime": { - "readOnly": true, - "type": "string", - "format": "date-time", - "description": "Returns the last modified date and time of the blob inventory policy." - }, - "policy": { - "$ref": "#/definitions/BlobInventoryPolicySchema", - "description": "The storage account blob inventory policy object. It is composed of policy rules." - } - }, - "required": [ - "policy" - ], - "description": "The storage account blob inventory policy properties." - }, - "BlobInventoryPolicySchema": { - "properties": { - "enabled": { - "type": "boolean", - "description": "Policy is enabled if set to true." - }, - "destination": { - "readOnly": true, - "type": "string", - "description": "Deprecated Property from API version 2021-04-01 onwards, the required destination container name must be specified at the rule level 'policy.rule.destination'" - }, - "type": { - "type": "string", - "description": "The valid value is Inventory", - "enum": [ - "Inventory" - ], - "x-ms-enum": { - "name": "InventoryRuleType", - "modelAsString": true - } - }, - "rules": { - "type": "array", - "items": { - "$ref": "#/definitions/BlobInventoryPolicyRule" - }, - "description": "The storage account blob inventory policy rules. The rule is applied when it is enabled." - } - }, - "required": [ - "enabled", - "type", - "rules" - ], - "description": "The storage account blob inventory policy rules." - }, - "BlobInventoryPolicyRule": { - "properties": { - "enabled": { - "type": "boolean", - "description": "Rule is enabled when set to true." - }, - "name": { - "type": "string", - "description": "A rule name can contain any combination of alpha numeric characters. Rule name is case-sensitive. It must be unique within a policy." - }, - "destination": { - "type": "string", - "description": "Container name where blob inventory files are stored. Must be pre-created." - }, - "definition": { - "$ref": "#/definitions/BlobInventoryPolicyDefinition", - "description": "An object that defines the blob inventory policy rule." - } - }, - "required": [ - "name", - "enabled", - "destination", - "definition" - ], - "description": "An object that wraps the blob inventory rule. Each rule is uniquely defined by name." - }, - "BlobInventoryPolicyDefinition": { - "properties": { - "filters": { - "$ref": "#/definitions/BlobInventoryPolicyFilter", - "description": "An object that defines the filter set." - }, - "format": { - "type": "string", - "description": "This is a required field, it specifies the format for the inventory files.", - "enum": [ - "Csv", - "Parquet" - ], - "x-ms-enum": { - "name": "format", - "modelAsString": true - } - }, - "schedule": { - "type": "string", - "description": "This is a required field. This field is used to schedule an inventory formation.", - "enum": [ - "Daily", - "Weekly" - ], - "x-ms-enum": { - "name": "schedule", - "modelAsString": true - } - }, - "objectType": { - "type": "string", - "description": "This is a required field. This field specifies the scope of the inventory created either at the blob or container level.", - "enum": [ - "Blob", - "Container" - ], - "x-ms-enum": { - "name": "objectType", - "modelAsString": true - } - }, - "schemaFields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "This is a required field. This field specifies the fields and properties of the object to be included in the inventory. The Schema field value 'Name' is always required. The valid values for this field for the 'Blob' definition.objectType include 'Name, Creation-Time, Last-Modified, Content-Length, Content-MD5, BlobType, AccessTier, AccessTierChangeTime, AccessTierInferred, Tags, Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, Snapshot, VersionId, IsCurrentVersion, Metadata, LastAccessTime, Tags, Etag, ContentType, ContentEncoding, ContentLanguage, ContentCRC64, CacheControl, ContentDisposition, LeaseStatus, LeaseState, LeaseDuration, ServerEncrypted, Deleted, DeletionId, DeletedTime, RemainingRetentionDays, ImmutabilityPolicyUntilDate, ImmutabilityPolicyMode, LegalHold, CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTime, CopyStatusDescription, CustomerProvidedKeySha256, RehydratePriority, ArchiveStatus, XmsBlobSequenceNumber, EncryptionScope, IncrementalCopy, TagCount'. For Blob object type schema field value 'DeletedTime' is applicable only for Hns enabled accounts. The valid values for 'Container' definition.objectType include 'Name, Last-Modified, Metadata, LeaseStatus, LeaseState, LeaseDuration, PublicAccess, HasImmutabilityPolicy, HasLegalHold, Etag, DefaultEncryptionScope, DenyEncryptionScopeOverride, ImmutableStorageWithVersioningEnabled, Deleted, Version, DeletedTime, RemainingRetentionDays'. Schema field values 'Expiry-Time, hdi_isfolder, Owner, Group, Permissions, Acl, DeletionId' are valid only for Hns enabled accounts.Schema field values 'Tags, TagCount' are only valid for Non-Hns accounts." - } - }, - "required": [ - "format", - "schedule", - "objectType", - "schemaFields" - ], - "description": "An object that defines the blob inventory rule." - }, - "BlobInventoryPolicyFilter": { - "properties": { - "prefixMatch": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of strings with maximum 10 blob prefixes to be included in the inventory." - }, - "excludePrefix": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of strings with maximum 10 blob prefixes to be excluded from the inventory." - }, - "blobTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of predefined enum values. Valid values include blockBlob, appendBlob, pageBlob. Hns accounts does not support pageBlobs. This field is required when definition.objectType property is set to 'Blob'." - }, - "includeBlobVersions": { - "type": "boolean", - "description": "Includes blob versions in blob inventory when value is set to true. The definition.schemaFields values 'VersionId and IsCurrentVersion' are required if this property is set to true, else they must be excluded." - }, - "includeSnapshots": { - "type": "boolean", - "description": "Includes blob snapshots in blob inventory when value is set to true. The definition.schemaFields value 'Snapshot' is required if this property is set to true, else it must be excluded." - }, - "includeDeleted": { - "type": "boolean", - "description": "For 'Container' definition.objectType the definition.schemaFields must include 'Deleted, Version, DeletedTime and RemainingRetentionDays'. For 'Blob' definition.objectType and HNS enabled storage accounts the definition.schemaFields must include 'DeletionId, Deleted, DeletedTime and RemainingRetentionDays' and for Hns disabled accounts the definition.schemaFields must include 'Deleted and RemainingRetentionDays', else it must be excluded." - }, - "creationTime": { - "$ref": "#/definitions/BlobInventoryCreationTime", - "description": "This property is used to filter objects based on the object creation time" - } - }, - "description": "An object that defines the blob inventory rule filter conditions. For 'Blob' definition.objectType all filter properties are applicable, 'blobTypes' is required and others are optional. For 'Container' definition.objectType only prefixMatch is applicable and is optional." - }, - "BlobInventoryCreationTime": { - "type": "object", - "properties": { - "lastNDays": { - "type": "integer", - "minimum": 1, - "maximum": 36500, - "format": "int32", - "description": "When set the policy filters the objects that are created in the last N days. Where N is an integer value between 1 to 36500." - } - }, - "description": "This property defines the creation time based filtering condition. Blob Inventory schema parameter 'Creation-Time' is mandatory with this filter." - }, - "StorageAccountMigration": { - "type": "object", - "properties": { - "id": { - "type": "string", - "readOnly": true, - "description": "Migration Resource Id" - }, - "name": { - "type": "string", - "description": "current value is 'default' for customer initiated migration" - }, - "type": { - "type": "string", - "description": "SrpAccountMigrationType in ARM contract which is 'accountMigrations'" - }, - "properties": { - "type": "object", - "properties": { - "targetSkuName": { - "$ref": "./common.json#/definitions/SkuName", - "description": "Target sku name for the account" - }, - "migrationStatus": { - "type": "string", - "description": "Current status of migration", - "enum": [ - "Invalid", - "SubmittedForConversion", - "InProgress", - "Complete", - "Failed" - ], - "x-ms-enum": { - "name": "migrationStatus", - "modelAsString": true - }, - "readOnly": true - }, - "migrationFailedReason": { - "readOnly": true, - "type": "string", - "description": "Error code for migration failure" - }, - "migrationFailedDetailedReason": { - "readOnly": true, - "type": "string", - "description": "Reason for migration failure" - } - }, - "x-ms-client-flatten": true, - "x-ms-client-name": "StorageAccountMigrationDetails", - "description": "The properties of a storage account's ongoing or enqueued migration.", - "required": [ - "targetSkuName" - ] - } - }, - "required": [ - "properties" - ], - "description": "The parameters or status associated with an ongoing or enqueued storage account migration in order to update its current SKU or region." - }, - "ErrorResponseBody": { - "properties": { - "code": { - "type": "string", - "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." - }, - "message": { - "type": "string", - "description": "A message describing the error, intended to be suitable for display in a user interface." - } - }, - "description": "Error response body contract." - }, - "ErrorResponse": { - "properties": { - "error": { - "$ref": "#/definitions/ErrorResponseBody", - "description": "Azure Storage Resource Provider error response body." - } - }, - "description": "An error response from the storage resource provider." - }, - "PublicNetworkAccess": { - "type": "string", - "description": "Allow, disallow, or let Network Security Perimeter configuration to evaluate public network access to Storage Account. Value is optional but if passed in, must be 'Enabled', 'Disabled' or 'SecuredByPerimeter'.", - "enum": [ - "Enabled", - "Disabled", - "SecuredByPerimeter" - ], - "x-ms-enum": { - "name": "PublicNetworkAccess", - "modelAsString": true - } - }, - "GeoPriorityReplicationStatus": { - "type": "object", - "properties": { - "isBlobEnabled": { - "type": "boolean", - "description": "Indicates whether Blob Geo Priority Replication is enabled for the storage account." - } - }, - "description": "Geo Priority Replication enablement status for the storage account." - } - }, - "parameters": { - "ResourceGroupName": { - "name": "resourceGroupName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the resource group within the user's subscription. The name is case insensitive.", - "pattern": "^[-\\w\\._\\(\\)]+$", - "minLength": 1, - "maxLength": 90, - "x-ms-parameter-location": "method" - }, - "StorageAccountName": { - "name": "accountName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[a-z0-9]+$", - "description": "The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", - "maxLength": 24, - "minLength": 3, - "x-ms-parameter-location": "method" - }, - "DeletedAccountName": { - "name": "deletedAccountName", - "in": "path", - "required": true, - "type": "string", - "description": "Name of the deleted storage account.", - "maxLength": 24, - "minLength": 3, - "x-ms-parameter-location": "method" - }, - "ManagementPolicyName": { - "name": "managementPolicyName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the Storage Account Management Policy. It should always be 'default'", - "enum": [ - "default" - ], - "x-ms-enum": { - "name": "ManagementPolicyName", - "modelAsString": true - }, - "x-ms-parameter-location": "method" - }, - "MigrationName": { - "name": "migrationName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the Storage Account Migration. It should always be 'default'", - "pattern": "^[a-z][a-z0-9]*$", - "enum": [ - "default" - ], - "x-ms-enum": { - "name": "MigrationName", - "modelAsString": true - }, - "x-ms-parameter-location": "method" - }, - "EncryptionScopeName": { - "name": "encryptionScopeName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the encryption scope within the specified storage account. Encryption scope names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.", - "maxLength": 63, - "minLength": 3, - "x-ms-parameter-location": "method" - }, - "ObjectReplicationPolicyId": { - "name": "objectReplicationPolicyId", - "in": "path", - "required": true, - "type": "string", - "description": "For the destination account, provide the value 'default'. Configure the policy on the destination account first. For the source account, provide the value of the policy ID that is returned when you download the policy that was defined on the destination account. The policy is downloaded as a JSON file.", - "minLength": 1, - "x-ms-parameter-location": "method" - }, - "Username": { - "name": "username", - "in": "path", - "required": true, - "type": "string", - "description": "The name of local user. The username must contain lowercase letters and numbers only. It must be unique only within the storage account.", - "minLength": 3, - "maxLength": 64, - "x-ms-parameter-location": "method" - }, - "BlobInventoryPolicyName": { - "name": "blobInventoryPolicyName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the storage account blob inventory policy. It should always be 'default'", - "enum": [ - "default" - ], - "x-ms-enum": { - "name": "BlobInventoryPolicyName", - "modelAsString": true - }, - "x-ms-parameter-location": "method" - } - }, - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ] -} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/storageTaskAssignments.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/storageTaskAssignments.json deleted file mode 100644 index fc3b81a16aa3..000000000000 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/storageTaskAssignments.json +++ /dev/null @@ -1,802 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "StorageManagementClient", - "description": "The Azure Storage Management API.", - "version": "2025-06-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/storageTaskAssignments/{storageTaskAssignmentName}": { - "put": { - "tags": [ - "StorageTaskAssignments" - ], - "description": "Asynchronously creates a new storage task assignment sub-resource with the specified parameters. If a storage task assignment is already created and a subsequent create request is issued with different properties, the storage task assignment properties will be updated. If a storage task assignment is already created and a subsequent create or update request is issued with the exact same set of properties, the request will succeed.", - "operationId": "StorageTaskAssignments_Create", - "x-ms-examples": { - "PutStorageTaskAssignment": { - "$ref": "./examples/storageTaskAssignmentsCrud/PutStorageTaskAssignment.json" - }, - "PutStorageTaskAssignmentRequiredProperties": { - "$ref": "./examples/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/StorageTaskAssignmentName" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/StorageTaskAssignment" - }, - "description": "The parameters to create a Storage Task Assignment." - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK -- Update storage task assignment with the same properties specified in the request body.", - "schema": { - "$ref": "#/definitions/StorageTaskAssignment" - } - }, - "201": { - "description": "OK -- Create storage task assignment with the same properties specified in the request body.", - "schema": { - "$ref": "#/definitions/StorageTaskAssignment" - } - }, - "202": { - "description": "Accepted -- Create or update request accepted; operation will complete asynchronously.", - "headers": { - "Azure-AsyncOperation": { - "type": "string" - }, - "Location": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - }, - "patch": { - "tags": [ - "StorageTaskAssignments" - ], - "description": "Update storage task assignment properties", - "operationId": "StorageTaskAssignments_Update", - "x-ms-examples": { - "PatchStorageTaskAssignment": { - "$ref": "./examples/storageTaskAssignmentsCrud/PatchStorageTaskAssignment.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/StorageTaskAssignmentName" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/StorageTaskAssignmentUpdateParameters" - }, - "description": "The parameters to update a Storage Task Assignment." - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK -- returned when the update request body had no changes.", - "schema": { - "$ref": "#/definitions/StorageTaskAssignment" - } - }, - "202": { - "description": "Accepted -- update request accepted; operation will complete asynchronously.", - "headers": { - "Azure-AsyncOperation": { - "type": "string" - }, - "Location": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - }, - "get": { - "tags": [ - "StorageTaskAssignments" - ], - "description": "Get the storage task assignment properties", - "operationId": "StorageTaskAssignments_Get", - "x-ms-examples": { - "GetStorageTaskAssignment": { - "$ref": "./examples/storageTaskAssignmentsCrud/GetStorageTaskAssignment.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/StorageTaskAssignmentName" - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK -- properties retrieved successfully for the storage task assignment.", - "schema": { - "$ref": "#/definitions/StorageTaskAssignment" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "StorageTaskAssignments" - ], - "description": "Delete the storage task assignment sub-resource", - "operationId": "StorageTaskAssignments_Delete", - "x-ms-examples": { - "DeleteStorageTaskAssignment": { - "$ref": "./examples/storageTaskAssignmentsCrud/DeleteStorageTaskAssignment.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/StorageTaskAssignmentName" - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "202": { - "description": "Accepted -- Delete request accepted; operation will complete asynchronously.", - "headers": { - "Azure-AsyncOperation": { - "type": "string" - }, - "Location": { - "type": "string" - } - } - }, - "204": { - "description": "NoContent -- specified storage task assignment does not exist." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/storageTaskAssignments": { - "get": { - "tags": [ - "StorageTaskAssignments" - ], - "description": "List all the storage task assignments in an account", - "operationId": "StorageTaskAssignments_List", - "x-ms-examples": { - "ListStorageTaskAssignmentsForAccount": { - "$ref": "./examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "name": "$top", - "in": "query", - "type": "integer", - "format": "int32", - "description": "Optional, specifies the maximum number of storage task assignment Ids to be included in the list response." - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK -- list of storage task assignments was retrieved and returned successfully.", - "schema": { - "$ref": "#/definitions/StorageTaskAssignmentsList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/reports": { - "get": { - "tags": [ - "StorageTaskAssignments" - ], - "description": "Fetch the report summary of all the storage task assignments and instances in an account", - "operationId": "StorageTaskAssignmentsInstancesReport_List", - "x-ms-examples": { - "ListStorageTaskAssignmentsInstancesReportSummary": { - "$ref": "./examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "name": "$maxpagesize", - "in": "query", - "type": "integer", - "format": "int32", - "description": "Optional, specifies the maximum number of storage task assignment instances to be included in the list response." - }, - { - "name": "$filter", - "in": "query", - "type": "string", - "description": "Optional. When specified, it can be used to query using reporting properties. See [Constructing Filter Strings](https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#constructing-filter-strings) for details." - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK -- storage task assignments' instances report summary retrieved and returned successfully.", - "schema": { - "$ref": "./common.json#/definitions/StorageTaskReportSummary" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/storageTaskAssignments/{storageTaskAssignmentName}/reports": { - "get": { - "tags": [ - "StorageTaskAssignments" - ], - "description": "Fetch the report summary of a single storage task assignment's instances", - "operationId": "StorageTaskAssignmentInstancesReport_List", - "x-ms-examples": { - "ListStorageTaskAssignmentInstancesReportSummary": { - "$ref": "./examples/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "#/parameters/StorageTaskAssignmentName" - }, - { - "name": "$maxpagesize", - "in": "query", - "type": "integer", - "format": "int32", - "description": "Optional, specifies the maximum number of storage task assignment instances to be included in the list response." - }, - { - "name": "$filter", - "in": "query", - "type": "string", - "description": "Optional. When specified, it can be used to query using reporting properties. See [Constructing Filter Strings](https://learn.microsoft.com/rest/api/storageservices/querying-tables-and-entities#constructing-filter-strings) for details." - }, - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK -- storage task assignment's instances report summary retrieved and returned successfully", - "schema": { - "$ref": "./common.json#/definitions/StorageTaskReportSummary" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "StorageTaskAssignment": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/StorageTaskAssignmentProperties", - "description": "Properties of the storage task assignment." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "required": [ - "properties" - ], - "description": "The storage task assignment." - }, - "StorageTaskAssignmentProperties": { - "type": "object", - "properties": { - "taskId": { - "type": "string", - "format": "arm-id", - "description": "Id of the corresponding storage task" - }, - "enabled": { - "type": "boolean", - "description": "Whether the storage task assignment is enabled or not" - }, - "description": { - "type": "string", - "description": "Text that describes the purpose of the storage task assignment" - }, - "executionContext": { - "$ref": "#/definitions/StorageTaskAssignmentExecutionContext", - "description": "The storage task assignment execution context" - }, - "report": { - "$ref": "#/definitions/StorageTaskAssignmentReport", - "description": "The storage task assignment report" - }, - "provisioningState": { - "readOnly": true, - "type": "string", - "description": "Represents the provisioning state of the storage task assignment.", - "enum": [ - "ValidateSubscriptionQuotaBegin", - "ValidateSubscriptionQuotaEnd", - "Accepted", - "Creating", - "Succeeded", - "Deleting", - "Canceled", - "Failed" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true - } - }, - "runStatus": { - "$ref": "./common.json#/definitions/StorageTaskReportProperties", - "description": "Run status of storage task assignment" - } - }, - "required": [ - "taskId", - "enabled", - "description", - "executionContext", - "report" - ], - "description": "Properties of the storage task assignment." - }, - "StorageTaskAssignmentExecutionContext": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/ExecutionTarget", - "description": "Execution target of the storage task assignment" - }, - "trigger": { - "$ref": "#/definitions/ExecutionTrigger", - "description": "Execution trigger of the storage task assignment" - } - }, - "required": [ - "trigger" - ], - "description": "Execution context of the storage task assignment." - }, - "ExecutionTarget": { - "type": "object", - "properties": { - "prefix": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Required list of object prefixes to be included for task execution" - }, - "excludePrefix": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of object prefixes to be excluded from task execution. If there is a conflict between include and exclude prefixes, the exclude prefix will be the determining factor" - } - }, - "description": "Target helps provide filter parameters for the objects in the storage account and forms the execution context for the storage task" - }, - "ExecutionTrigger": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "RunOnce", - "OnSchedule" - ], - "x-ms-enum": { - "name": "TriggerType", - "modelAsString": true - }, - "description": "The trigger type of the storage task assignment execution" - }, - "parameters": { - "$ref": "#/definitions/TriggerParameters", - "description": "The trigger parameters of the storage task assignment execution" - } - }, - "required": [ - "type", - "parameters" - ], - "description": "Execution trigger for storage task assignment" - }, - "TriggerParameters": { - "type": "object", - "properties": { - "startFrom": { - "type": "string", - "format": "date-time", - "description": "When to start task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" - }, - "interval": { - "type": "integer", - "minimum": 1, - "format": "int32", - "description": "Run interval of task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" - }, - "intervalUnit": { - "type": "string", - "enum": [ - "Days" - ], - "x-ms-enum": { - "name": "IntervalUnit", - "modelAsString": true - }, - "description": "Run interval unit of task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" - }, - "endBy": { - "type": "string", - "format": "date-time", - "description": "When to end task execution. This is a required field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" - }, - "startOn": { - "type": "string", - "format": "date-time", - "description": "When to start task execution. This is a required field when ExecutionTrigger.properties.type is 'RunOnce'; this property should not be present when ExecutionTrigger.properties.type is 'OnSchedule'" - } - }, - "description": "The trigger parameters update for the storage task assignment execution" - }, - "StorageTaskAssignmentReport": { - "type": "object", - "properties": { - "prefix": { - "type": "string", - "description": "The container prefix for the location of storage task assignment report" - } - }, - "required": [ - "prefix" - ], - "description": "The storage task assignment report" - }, - "StorageTaskAssignmentUpdateParameters": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/StorageTaskAssignmentUpdateProperties", - "description": "Properties of the storage task assignment." - } - }, - "description": "Parameters of the storage task assignment update request" - }, - "StorageTaskAssignmentUpdateProperties": { - "type": "object", - "properties": { - "taskId": { - "readOnly": true, - "type": "string", - "description": "Id of the corresponding storage task" - }, - "enabled": { - "type": "boolean", - "description": "Whether the storage task assignment is enabled or not" - }, - "description": { - "type": "string", - "description": "Text that describes the purpose of the storage task assignment" - }, - "executionContext": { - "$ref": "#/definitions/StorageTaskAssignmentUpdateExecutionContext", - "description": "The storage task assignment execution context" - }, - "report": { - "$ref": "#/definitions/StorageTaskAssignmentUpdateReport", - "description": "The storage task assignment report" - }, - "provisioningState": { - "readOnly": true, - "type": "string", - "description": "Represents the provisioning state of the storage task assignment.", - "enum": [ - "ValidateSubscriptionQuotaBegin", - "ValidateSubscriptionQuotaEnd", - "Accepted", - "Creating", - "Succeeded", - "Deleting", - "Canceled", - "Failed" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true - } - }, - "runStatus": { - "$ref": "./common.json#/definitions/StorageTaskReportProperties", - "description": "Run status of storage task assignment" - } - }, - "description": "Properties of the storage task update assignment." - }, - "StorageTaskAssignmentUpdateExecutionContext": { - "type": "object", - "properties": { - "target": { - "$ref": "#/definitions/ExecutionTarget", - "description": "Execution target of the storage task assignment" - }, - "trigger": { - "$ref": "#/definitions/ExecutionTriggerUpdate", - "description": "Execution trigger of the storage task assignment" - } - }, - "description": "Execution context of the storage task assignment update." - }, - "ExecutionTriggerUpdate": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "RunOnce", - "OnSchedule" - ], - "x-ms-enum": { - "name": "TriggerType", - "modelAsString": true - }, - "description": "The trigger type of the storage task assignment execution" - }, - "parameters": { - "$ref": "#/definitions/TriggerParametersUpdate", - "description": "The trigger parameters of the storage task assignment execution" - } - }, - "description": "Execution trigger update for storage task assignment" - }, - "TriggerParametersUpdate": { - "type": "object", - "properties": { - "startFrom": { - "type": "string", - "format": "date-time", - "description": "When to start task execution. This is a mutable field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" - }, - "interval": { - "type": "integer", - "minimum": 1, - "format": "int32", - "description": "Run interval of task execution. This is a mutable field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" - }, - "intervalUnit": { - "type": "string", - "enum": [ - "Days" - ], - "x-ms-enum": { - "name": "IntervalUnit", - "modelAsString": true - }, - "description": "Run interval unit of task execution. This is a mutable field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" - }, - "endBy": { - "type": "string", - "format": "date-time", - "description": "When to end task execution. This is a mutable field when ExecutionTrigger.properties.type is 'OnSchedule'; this property should not be present when ExecutionTrigger.properties.type is 'RunOnce'" - }, - "startOn": { - "type": "string", - "format": "date-time", - "description": "When to start task execution. This is a mutable field when ExecutionTrigger.properties.type is 'RunOnce'; this property should not be present when ExecutionTrigger.properties.type is 'OnSchedule'" - } - }, - "description": "The trigger parameters update for the storage task assignment execution" - }, - "StorageTaskAssignmentUpdateReport": { - "type": "object", - "properties": { - "prefix": { - "type": "string", - "description": "The prefix of the storage task assignment report" - } - }, - "description": "The storage task assignment report" - }, - "StorageTaskAssignmentsList": { - "type": "object", - "properties": { - "value": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/StorageTaskAssignment" - }, - "x-ms-identifiers": [], - "description": "Gets the list of storage task assignments and their properties." - }, - "nextLink": { - "type": "string", - "description": "Request URL that can be used to query next page of storage task assignments. Returned when total number of requested storage task assignments exceed maximum page size.", - "readOnly": true - } - }, - "description": "List of storage task assignments for the storage account" - } - }, - "parameters": { - "StorageTaskAssignmentName": { - "name": "storageTaskAssignmentName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the storage task assignment within the specified resource group. Storage task assignment names must be between 3 and 24 characters in length and use numbers and lower-case letters only.", - "pattern": "^[a-z][a-z0-9]{2,23}$", - "maxLength": 24, - "minLength": 3, - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/table.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/table.json deleted file mode 100644 index 26e24aad7b93..000000000000 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-06-01/table.json +++ /dev/null @@ -1,570 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-06-01", - "title": "StorageManagementClient", - "description": "The Azure Storage Management API." - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/tableServices": { - "get": { - "tags": [ - "TableServiceProperties" - ], - "operationId": "TableServices_List", - "x-ms-examples": { - "TableServicesList": { - "$ref": "./examples/TableServicesList.json" - } - }, - "description": "List all table services for the storage account.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- returned the properties of a storage account’s Table service.", - "schema": { - "$ref": "#/definitions/ListTableServices" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/tableServices/{tableServiceName}": { - "put": { - "tags": [ - "TableServiceProperties" - ], - "operationId": "TableServices_SetServiceProperties", - "x-ms-examples": { - "TableServicesPut": { - "$ref": "./examples/TableServicesPut.json" - } - }, - "description": "Sets the properties of a storage account’s Table service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. ", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/TableServiceName" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/TableServiceProperties" - }, - "description": "The properties of a storage account’s Table service, only properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules can be specified." - } - ], - "responses": { - "200": { - "description": "OK -- Sets The properties of a storage account’s Table service successfully.", - "schema": { - "$ref": "#/definitions/TableServiceProperties" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "get": { - "tags": [ - "TableServiceProperties" - ], - "operationId": "TableServices_GetServiceProperties", - "x-ms-examples": { - "TableServicesGet": { - "$ref": "./examples/TableServicesGet.json" - } - }, - "description": "Gets the properties of a storage account’s Table service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/TableServiceName" - } - ], - "responses": { - "200": { - "description": "OK -- returned the properties of a storage account’s Table service.", - "schema": { - "$ref": "#/definitions/TableServiceProperties" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/tableServices/default/tables/{tableName}": { - "put": { - "tags": [ - "TableService" - ], - "operationId": "Table_Create", - "x-ms-examples": { - "TableOperationPut": { - "$ref": "./examples/TableOperationPut.json" - }, - "TableOperationPutOrPatchAcls": { - "$ref": "./examples/TableOperationPutOrPatchAcls.json" - } - }, - "description": "Creates a new table with the specified table name, under the specified account.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "name": "parameters", - "in": "body", - "required": false, - "schema": { - "$ref": "#/definitions/Table" - }, - "description": "The parameters to provide to create a table." - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/TableName" - } - ], - "responses": { - "200": { - "description": "OK -- Creates a table with the given table name successfully.", - "schema": { - "$ref": "#/definitions/Table" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "patch": { - "tags": [ - "TableService" - ], - "operationId": "Table_Update", - "x-ms-examples": { - "TableOperationPatch": { - "$ref": "./examples/TableOperationPatch.json" - }, - "TableOperationPutOrPatchAcls": { - "$ref": "./examples/TableOperationPutOrPatchAcls.json" - } - }, - "description": "Creates a new table with the specified table name, under the specified account.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "name": "parameters", - "in": "body", - "required": false, - "schema": { - "$ref": "#/definitions/Table" - }, - "description": "The parameters to provide to create a table." - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/TableName" - } - ], - "responses": { - "200": { - "description": "OK -- Creates a table with the given table name successfully.", - "schema": { - "$ref": "#/definitions/Table" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "get": { - "tags": [ - "TableService" - ], - "operationId": "Table_Get", - "x-ms-examples": { - "TableOperationGet": { - "$ref": "./examples/TableOperationGet.json" - } - }, - "description": "Gets the table with the specified table name, under the specified account if it exists.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/TableName" - } - ], - "responses": { - "200": { - "description": "OK -- returned table with the specified table name successfully.", - "schema": { - "$ref": "#/definitions/Table" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - }, - "delete": { - "tags": [ - "TableService" - ], - "operationId": "Table_Delete", - "x-ms-examples": { - "TableOperationDelete": { - "$ref": "./examples/TableOperationDelete.json" - } - }, - "description": "Deletes the table with the specified table name, under the specified account if it exists.", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/TableName" - } - ], - "responses": { - "204": { - "description": "No Content - Successfully deleted the table with the specified table name" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/tableServices/default/tables": { - "get": { - "tags": [ - "TableService" - ], - "operationId": "Table_List", - "x-ms-examples": { - "TableOperationList": { - "$ref": "./examples/TableOperationList.json" - } - }, - "description": "Gets a list of all the tables under the specified storage account", - "parameters": [ - { - "$ref": "./storage.json#/parameters/ResourceGroupName" - }, - { - "$ref": "./storage.json#/parameters/StorageAccountName" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK -- returned a list of tables successfully.", - "schema": { - "$ref": "#/definitions/ListTableResource" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./common.json#/definitions/CloudError" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "ListTableServices": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/TableServiceProperties" - }, - "description": "List of table services returned.", - "readOnly": true - } - } - }, - "TableServiceProperties": { - "properties": { - "properties": { - "properties": { - "cors": { - "$ref": "./common.json#/definitions/CorsRules", - "description": "Specifies CORS rules for the Table service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Table service." - } - }, - "x-ms-client-flatten": true, - "x-ms-client-name": "TableServiceProperties", - "description": "The properties of a storage account’s Table service." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "description": "The properties of a storage account’s Table service." - }, - "Table": { - "properties": { - "properties": { - "$ref": "#/definitions/TableProperties", - "x-ms-client-flatten": true, - "x-ms-client-name": "TableProperties", - "description": "Table resource properties." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource" - } - ], - "description": "Properties of the table, including Id, resource name, resource type." - }, - "TableProperties": { - "properties": { - "tableName": { - "type": "string", - "readOnly": true, - "description": "Table name under the specified account" - }, - "signedIdentifiers": { - "type": "array", - "items": { - "$ref": "#/definitions/TableSignedIdentifier" - }, - "description": "List of stored access policies specified on the table." - } - } - }, - "ListTableResource": { - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/Table" - }, - "description": "List of tables returned.", - "readOnly": true - }, - "nextLink": { - "type": "string", - "description": "Request URL that can be used to query next page of tables", - "readOnly": true - } - }, - "description": "Response schema. Contains list of tables returned" - }, - "TableSignedIdentifier": { - "properties": { - "id": { - "type": "string", - "description": "unique-64-character-value of the stored access policy." - }, - "accessPolicy": { - "$ref": "#/definitions/TableAccessPolicy", - "description": "Access policy" - } - }, - "required": [ - "id" - ], - "type": "object", - "description": "Object to set Table Access Policy." - }, - "TableAccessPolicy": { - "properties": { - "startTime": { - "type": "string", - "format": "date-time", - "description": "Start time of the access policy" - }, - "expiryTime": { - "type": "string", - "format": "date-time", - "description": "Expiry time of the access policy" - }, - "permission": { - "type": "string", - "description": "Required. List of abbreviated permissions. Supported permission values include 'r','a','u','d'" - } - }, - "required": [ - "permission" - ], - "type": "object", - "description": "Table Access Policy Properties Object." - } - }, - "parameters": { - "TableServiceName": { - "name": "tableServiceName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the Table Service within the specified storage account. Table Service Name must be 'default'", - "enum": [ - "default" - ], - "x-ms-enum": { - "name": "TableServiceName", - "modelAsString": false - }, - "x-ms-parameter-location": "method" - }, - "TableName": { - "name": "tableName", - "in": "path", - "required": true, - "type": "string", - "description": "A table name must be unique within a storage account and must be between 3 and 63 characters.The name must comprise of only alphanumeric characters and it cannot begin with a numeric character.", - "maxLength": 63, - "minLength": 3, - "pattern": "^[A-Za-z][A-Za-z0-9]{2,62}$", - "x-ms-parameter-location": "method" - } - }, - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ] -} diff --git a/specification/storage/resource-manager/readme.md b/specification/storage/resource-manager/readme.md index b14d649059e4..e439844c3140 100644 --- a/specification/storage/resource-manager/readme.md +++ b/specification/storage/resource-manager/readme.md @@ -37,15 +37,7 @@ These settings apply only when `--tag=package-2025-06` is specified on the comma ```yaml $(tag) == 'package-2025-06' input-file: - - Microsoft.Storage/stable/2025-06-01/blob.json - - Microsoft.Storage/stable/2025-06-01/common.json - - Microsoft.Storage/stable/2025-06-01/file.json - - Microsoft.Storage/stable/2025-06-01/privatelinks.json - - Microsoft.Storage/stable/2025-06-01/queue.json - - Microsoft.Storage/stable/2025-06-01/storage.json - - Microsoft.Storage/stable/2025-06-01/table.json - - Microsoft.Storage/stable/2025-06-01/networkSecurityPerimeter.json - - Microsoft.Storage/stable/2025-06-01/storageTaskAssignments.json + - Microsoft.Storage/stable/2025-06-01/openapi.json directive: - where: From c0ae033d10ff6f99f880223e4f19cb729413d633 Mon Sep 17 00:00:00 2001 From: Xiang Yan Date: Fri, 12 Dec 2025 11:50:13 -0800 Subject: [PATCH 010/117] Search tsp rc (#38841) --- specification/search/cspell.yaml | 13 + .../search/data-plane/Search/client.tsp | 3348 ++ .../KnowledgeBaseRetrieve.json | 289 + .../KnowledgeBaseRetrieveWithIntents.json | 224 + .../SearchIndexAutocompleteDocumentsGet.json | 40 + .../SearchIndexAutocompleteDocumentsPost.json | 39 + .../SearchIndexCountDocuments.json | 15 + .../SearchIndexGetDocument.json | 31 + .../SearchIndexIndexDocuments.json | 3856 ++ .../SearchIndexSearchDocumentsGet.json | 133 + .../SearchIndexSearchDocumentsPost.json | 820 + ...SearchIndexSearchDocumentsSemanticGet.json | 87 + ...earchIndexSearchDocumentsSemanticPost.json | 119 + .../SearchIndexSuggestDocumentsGet.json | 49 + .../SearchIndexSuggestDocumentsPost.json | 60 + .../SearchServiceCreateAlias.json | 26 + .../SearchServiceCreateDataSource.json | 64 + .../SearchServiceCreateIndex.json | 860 + .../SearchServiceCreateIndexer.json | 138 + .../SearchServiceCreateKnowledgeAgent.json | 65 + .../SearchServiceCreateKnowledgeBase.json | 85 + .../SearchServiceCreateKnowledgeSource.json | 77 + ...ServiceCreateKnowledgeSourceAzureBlob.json | 139 + ...ceCreateKnowledgeSourceIndexedOneLake.json | 131 + ...reateKnowledgeSourceIndexedSharePoint.json | 131 + ...SearchServiceCreateKnowledgeSourceWeb.json | 87 + .../SearchServiceCreateOrUpdateAlias.json | 38 + ...SearchServiceCreateOrUpdateDataSource.json | 110 + .../SearchServiceCreateOrUpdateIndex.json | 1327 + .../SearchServiceCreateOrUpdateIndexer.json | 140 + ...chServiceCreateOrUpdateKnowledgeAgent.json | 124 + ...rchServiceCreateOrUpdateKnowledgeBase.json | 127 + ...hServiceCreateOrUpdateKnowledgeSource.json | 115 + ...reateOrUpdateKnowledgeSourceAzureBlob.json | 211 + ...OrUpdateKnowledgeSourceIndexedOneLake.json | 196 + ...pdateKnowledgeSourceIndexedSharePoint.json | 196 + ...rviceCreateOrUpdateKnowledgeSourceWeb.json | 130 + .../SearchServiceCreateOrUpdateSkillset.json | 820 + ...SearchServiceCreateOrUpdateSynonymMap.json | 64 + .../SearchServiceCreateSkillset.json | 540 + .../SearchServiceCreateSynonymMap.json | 43 + .../SearchServiceDeleteAlias.json | 16 + .../SearchServiceDeleteDataSource.json | 16 + .../SearchServiceDeleteIndex.json | 16 + .../SearchServiceDeleteIndexer.json | 16 + .../SearchServiceDeleteKnowledgeAgent.json | 14 + .../SearchServiceDeleteKnowledgeBase.json | 16 + .../SearchServiceDeleteKnowledgeSource.json | 16 + ...ServiceDeleteKnowledgeSourceAzureBlob.json | 16 + ...ceDeleteKnowledgeSourceIndexedOneLake.json | 16 + ...eleteKnowledgeSourceIndexedSharePoint.json | 16 + ...SearchServiceDeleteKnowledgeSourceWeb.json | 16 + .../SearchServiceDeleteSkillset.json | 16 + .../SearchServiceDeleteSynonymMap.json | 16 + .../SearchServiceGetAlias.json | 20 + .../SearchServiceGetDataSource.json | 41 + .../SearchServiceGetIndex.json | 476 + .../SearchServiceGetIndexStatistics.json | 19 + ...rchServiceGetIndexStatisticsSummaries.json | 23 + .../SearchServiceGetIndexStatsSummary.json | 23 + .../SearchServiceGetIndexer.json | 51 + .../SearchServiceGetIndexerStatus.json | 91 + .../SearchServiceGetKnowledgeAgent.json | 50 + .../SearchServiceGetKnowledgeBase.json | 50 + .../SearchServiceGetKnowledgeSource.json | 46 + ...rchServiceGetKnowledgeSourceAzureBlob.json | 80 + ...rviceGetKnowledgeSourceIndexedOneLake.json | 79 + ...ceGetKnowledgeSourceIndexedSharePoint.json | 79 + ...SearchServiceGetKnowledgeSourceStatus.json | 36 + .../SearchServiceGetKnowledgeSourceWeb.json | 51 + ...hServiceGetS3HDUnlimitedIndexerStatus.json | 92 + ...viceGetS3HDUnlimitedServiceStatistics.json | 65 + .../SearchServiceGetServiceStatistics.json | 63 + .../SearchServiceGetSkillset.json | 285 + .../SearchServiceGetSynonymMap.json | 29 + .../SearchServiceIndexAnalyze.json | 40 + .../SearchServiceListAliases.json | 23 + .../SearchServiceListDataSources.json | 45 + .../SearchServiceListIndexers.json | 54 + .../SearchServiceListIndexes.json | 480 + .../SearchServiceListKnowledgeAgents.json | 59 + .../SearchServiceListKnowledgeBases.json | 53 + .../SearchServiceListKnowledgeSources.json | 49 + ...hServiceListKnowledgeSourcesAzureBlob.json | 83 + ...iceListKnowledgeSourcesIndexedOneLake.json | 82 + ...ListKnowledgeSourcesIndexedSharePoint.json | 82 + .../SearchServiceListKnowledgeSourcesWeb.json | 54 + .../SearchServiceListSkillsets.json | 289 + .../SearchServiceListSynonymMaps.json | 33 + .../SearchServiceResetDocs.json | 21 + .../SearchServiceResetIndexer.json | 13 + .../SearchServiceResetSkills.json | 20 + .../SearchServiceResync.json | 18 + .../SearchServiceRunIndexer.json | 13 + .../search/data-plane/Search/main.tsp | 35 + .../search/data-plane/Search/models-index.tsp | 1344 + .../Search/models-knowledgebase.tsp | 863 + .../data-plane/Search/models-service.tsp | 6600 ++++ .../data-plane/Search/models-shared.tsp | 259 + .../SearchIndexAutocompleteDocumentsGet.json | 2 + .../SearchIndexAutocompleteDocumentsPost.json | 2 +- .../SearchIndexSearchDocumentsGet.json | 2 + .../SearchIndexSearchDocumentsPost.json | 2 +- ...SearchIndexSearchDocumentsSemanticGet.json | 2 + ...earchIndexSearchDocumentsSemanticPost.json | 4 +- .../SearchIndexSuggestDocumentsGet.json | 2 + .../SearchIndexSuggestDocumentsPost.json | 2 +- .../SearchServiceCreateKnowledgeBase.json | 2 +- .../SearchServiceCreateKnowledgeSource.json | 2 +- ...ServiceCreateKnowledgeSourceAzureBlob.json | 2 +- ...ceCreateKnowledgeSourceIndexedOneLake.json | 2 +- ...reateKnowledgeSourceIndexedSharePoint.json | 2 +- ...SearchServiceCreateKnowledgeSourceWeb.json | 2 +- ...rchServiceCreateOrUpdateKnowledgeBase.json | 2 +- ...hServiceCreateOrUpdateKnowledgeSource.json | 2 +- ...reateOrUpdateKnowledgeSourceAzureBlob.json | 2 +- ...OrUpdateKnowledgeSourceIndexedOneLake.json | 2 +- ...pdateKnowledgeSourceIndexedSharePoint.json | 2 +- ...rviceCreateOrUpdateKnowledgeSourceWeb.json | 2 +- .../2025-11-01-preview/knowledgebase.json | 1139 - .../{searchservice.json => search.json} | 29532 +++++++++------- .../2025-11-01-preview/searchindex.json | 3444 -- .../search/data-plane/Search/readme.md | 1049 +- .../search/data-plane/Search/routes-index.tsp | 190 + .../Search/routes-knowledgebase.tsp | 34 + .../data-plane/Search/routes-service.tsp | 723 + .../data-plane/Search/suppressions.yaml | 3 - .../search/data-plane/Search/tspconfig.yaml | 54 + 128 files changed, 46400 insertions(+), 17484 deletions(-) create mode 100644 specification/search/data-plane/Search/client.tsp create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieve.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieveWithIntents.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsGet.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsPost.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexCountDocuments.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexGetDocument.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexIndexDocuments.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsGet.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsPost.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticGet.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticPost.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsGet.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsPost.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateAlias.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateDataSource.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndex.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndexer.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeAgent.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeBase.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSource.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceAzureBlob.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedOneLake.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceWeb.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateAlias.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateDataSource.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndex.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndexer.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeAgent.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeBase.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSource.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSkillset.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSynonymMap.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSkillset.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSynonymMap.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteAlias.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteDataSource.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndex.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndexer.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeAgent.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeBase.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSource.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceAzureBlob.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedOneLake.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedSharePoint.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceWeb.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSkillset.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSynonymMap.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetAlias.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetDataSource.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndex.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatistics.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatisticsSummaries.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatsSummary.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexer.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexerStatus.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeAgent.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeBase.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSource.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceAzureBlob.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedOneLake.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedSharePoint.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceStatus.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceWeb.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedIndexerStatus.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedServiceStatistics.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetServiceStatistics.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSkillset.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSynonymMap.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceIndexAnalyze.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListAliases.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListDataSources.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexers.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexes.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeAgents.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeBases.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSources.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesAzureBlob.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedOneLake.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedSharePoint.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesWeb.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSkillsets.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSynonymMaps.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetDocs.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetIndexer.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetSkills.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResync.json create mode 100644 specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceRunIndexer.json create mode 100644 specification/search/data-plane/Search/main.tsp create mode 100644 specification/search/data-plane/Search/models-index.tsp create mode 100644 specification/search/data-plane/Search/models-knowledgebase.tsp create mode 100644 specification/search/data-plane/Search/models-service.tsp create mode 100644 specification/search/data-plane/Search/models-shared.tsp delete mode 100644 specification/search/data-plane/Search/preview/2025-11-01-preview/knowledgebase.json rename specification/search/data-plane/Search/preview/2025-11-01-preview/{searchservice.json => search.json} (57%) delete mode 100644 specification/search/data-plane/Search/preview/2025-11-01-preview/searchindex.json create mode 100644 specification/search/data-plane/Search/routes-index.tsp create mode 100644 specification/search/data-plane/Search/routes-knowledgebase.tsp create mode 100644 specification/search/data-plane/Search/routes-service.tsp create mode 100644 specification/search/data-plane/Search/tspconfig.yaml diff --git a/specification/search/cspell.yaml b/specification/search/cspell.yaml index 635b53938d53..64f5eaae8606 100644 --- a/specification/search/cspell.yaml +++ b/specification/search/cspell.yaml @@ -12,6 +12,9 @@ words: - agentic - angika - asturian + - azsearchdocuments + - azsearchdocumentsindexes + - azsearchdocumentssearch - awadhi - bagheli - balkar @@ -19,6 +22,7 @@ words: - beider - bhojpuri - bodo + - Bokm - bokmaal - bokmål - bokmal @@ -28,6 +32,7 @@ words: - decompounder - devanagiri - dhimal + - discretizing - dogri - erzya - exfiltration @@ -57,22 +62,27 @@ words: - kstem - kumyk - kurukh + - lner - lovins - lucene - lule - luxembourgish - mahasu - malto + - Matryoshka - mylocation - niuean - nogay - nysiis - occitan + - odatatype - otomi - phonetik - piqd - pohlmann + - rerank - reranker + - resyncing - rslp - sadri - sami @@ -83,6 +93,7 @@ words: - tetum - tfidf - thangmi + - tiktoken - tokenizes - tuvan - uyghur @@ -90,7 +101,9 @@ words: - vectorize - vectorizer - vectorizers + - vectorizing - viet + - Volap - volapük - yucatec - zhuang diff --git a/specification/search/data-plane/Search/client.tsp b/specification/search/data-plane/Search/client.tsp new file mode 100644 index 000000000000..fb9e3fd23e3e --- /dev/null +++ b/specification/search/data-plane/Search/client.tsp @@ -0,0 +1,3348 @@ +import "@azure-tools/typespec-client-generator-core"; +import "@typespec/versioning"; +import "./main.tsp"; + +using TypeSpec.Versioning; +using Azure.ClientGenerator.Core; +using Search; + +@TypeSpec.Versioning.useDependency(Search.Versions.v2025_11_01_preview) +namespace Customizations; + +@client({ + name: "SearchClient", + service: Search, +}) +@clientInitialization(Search.SearchIndexClientOptions) +@clientNamespace("Azure.Search.Documents") +@clientNamespace("com.azure.search.documents", "java") +namespace SearchClient { + interface Documents { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + count is Search.Documents.count; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + searchGet is Search.Documents.searchGet; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + searchPost is Search.Documents.searchPost; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.Documents.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + suggestGet is Search.Documents.suggestGet; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + suggestPost is Search.Documents.suggestPost; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + index is Search.Documents.index; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + autocompleteGet is Search.Documents.autocompleteGet; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + autocompletePost is Search.Documents.autocompletePost; + } +} + +@client({ + name: "SearchIndexClient", + service: Search, +}) +@clientNamespace("Azure.Search.Documents.Indexes") +@clientNamespace("com.azure.search.documents.indexes", "java") +namespace SearchIndexClient { + interface SynonymMaps { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.SynonymMaps.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.SynonymMaps.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.SynonymMaps.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.SynonymMaps.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.SynonymMaps.create; + } + interface Indexes { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.Indexes.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.Indexes.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.Indexes.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.Indexes.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.Indexes.create; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + getStatistics is Search.Indexes.getStatistics; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + analyze is Search.Indexes.analyze; + } + interface Aliases { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.Aliases.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.Aliases.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.Aliases.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.Aliases.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.Aliases.create; + } + + interface KnowledgeBases { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.KnowledgeBases.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.KnowledgeBases.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.KnowledgeBases.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.KnowledgeBases.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.KnowledgeBases.create; + } + + interface Sources { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.KnowledgeSources.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.KnowledgeSources.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.KnowledgeSources.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.KnowledgeSources.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.KnowledgeSources.create; + } + + interface Root { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + getServiceStatistics is Search.getServiceStatistics; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + getIndexStatsSummary is Search.getIndexStatsSummary; + } +} + +@client({ + name: "SearchIndexerClient", + service: Search, +}) +@clientNamespace("Azure.Search.Documents.Indexes") +@clientNamespace("com.azure.search.documents.indexes", "java") +namespace SearchIndexerClient { + interface DataSources { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.DataSources.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.DataSources.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.DataSources.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.DataSources.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.DataSources.create; + } + interface Indexers { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + reset is Search.Indexers.reset; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + resync is Search.Indexers.resync; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + resetDocs is Search.Indexers.resetDocs; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + run is Search.Indexers.run; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.Indexers.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.Indexers.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.Indexers.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.Indexers.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.Indexers.create; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + getStatus is Search.Indexers.getStatus; + } + interface Skillsets { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + createOrUpdate is Search.Skillsets.createOrUpdate; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + delete is Search.Skillsets.delete; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + get is Search.Skillsets.get; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + list is Search.Skillsets.list; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + create is Search.Skillsets.create; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + resetSkills is Search.Skillsets.resetSkills; + } +} + +@client({ + name: "KnowledgeBaseRetrievalClient", + service: Search, +}) +@clientNamespace("Azure.Search.Documents.KnowledgeBase") +@clientNamespace("com.azure.search.documents.knowledgebase", "java") +namespace KnowledgeBaseRetrievalClient { + interface KnowledgeRetrieval { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + retrieve is Search.KnowledgeRetrieval.retrieve; + } +} + +@@access(VectorSearchAlgorithmKind, Access.public); +@@usage(VectorSearchAlgorithmKind, Usage.input); +@@access(VectorSearchVectorizerKind, Access.public); +@@usage(VectorSearchVectorizerKind, Usage.input); +@@access(SearchIndexPermissionFilterOption, Access.public); +@@usage(SearchIndexPermissionFilterOption, Usage.input); +@@access(IndexerResyncBody, Access.public); +@@usage(IndexerResyncBody, Usage.input); +@@access(KnowledgeBaseAzureOpenAIModel, Access.public); +@@usage(KnowledgeBaseAzureOpenAIModel, Usage.input); +@@access(AnalyzedTokenInfo, Access.public); +@@usage(AnalyzedTokenInfo, Usage.input); +@@access(IndexerExecutionStatus, Access.public); +@@usage(IndexerExecutionStatus, Usage.input); +@@access(IndexerExecutionStatus, Access.public); +@@usage(IndexerExecutionStatus, Usage.input); +@@access(SearchIndexer, Access.public); +@@usage(SearchIndexer, Usage.input); +@@access(SearchIndexerSkillset, Access.public); +@@usage(SearchIndexerSkillset, Usage.input); +@@access(SynonymMap, Access.public); +@@usage(SynonymMap, Usage.input); +@@access(AutocompleteItem, Access.public); +@@usage(AutocompleteItem, Usage.input); +@@access(SuggestResult, Access.public); +@@usage(SuggestResult, Usage.input); +@@access(IndexingResult, Access.public); +@@usage(IndexingResult, Usage.input); +@@access(FacetResult, Access.public); +@@usage(FacetResult, Usage.input); +@@access(QueryAnswerResult, Access.public); +@@usage(QueryAnswerResult, Usage.input); +@@access(DebugInfo, Access.public); +@@usage(DebugInfo, Usage.input); +@@access(SearchResult, Access.public); +@@usage(SearchResult, Usage.input); +@@access(SearchDocumentsResult, Access.public); +@@usage(SearchDocumentsResult, Usage.input); +@@access(SemanticErrorReason, Access.public); +@@usage(SemanticErrorReason, Usage.input); +@@access(IndexBatch, Access.public); +@@usage(IndexBatch, Usage.input); +@@access(KnowledgeSourceStatus, Access.public); +@@usage(KnowledgeSourceStatus, Usage.input); +@@access(WebKnowledgeSource, Access.public); +@@usage(WebKnowledgeSource, Usage.input); +@@access(RemoteSharePointKnowledgeSource, Access.public); +@@usage(RemoteSharePointKnowledgeSource, Usage.input); + +@@access(SearchClient.Documents.searchGet, Access.internal); +@@access(SearchClient.Documents.searchPost, Access.internal); +@@access(SearchClient.Documents.autocompleteGet, Access.internal); +@@access(SearchClient.Documents.autocompletePost, Access.internal); +@@access(SearchClient.Documents.suggestGet, Access.internal); +@@access(SearchClient.Documents.suggestPost, Access.internal); +@@access(SearchClient.Documents.index, Access.internal); +@@access(SearchIndexerClient.DataSources.list, Access.internal); +@@access(SearchIndexerClient.DataSources.createOrUpdate, Access.internal); +@@access(SearchIndexerClient.DataSources.delete, Access.internal, "python"); +@@access(SearchIndexerClient.Indexers.list, Access.internal); +@@access(SearchIndexerClient.Indexers.createOrUpdate, Access.internal); +@@access(SearchIndexerClient.Indexers.delete, Access.internal, "python"); +@@access(SearchIndexerClient.Skillsets.list, Access.internal); +@@access(SearchIndexerClient.Skillsets.createOrUpdate, Access.internal); +@@access(SearchIndexerClient.Skillsets.delete, Access.internal, "python"); +@@access(SearchIndexClient.SynonymMaps.list, Access.internal); +@@access(SearchIndexClient.SynonymMaps.createOrUpdate, Access.internal); +@@access(SearchIndexClient.SynonymMaps.delete, Access.internal, "python"); +@@access(SearchIndexClient.Indexes.createOrUpdate, Access.internal); +@@access(SearchIndexClient.Indexes.delete, Access.internal, "python"); +@@access(SearchIndexClient.Aliases.createOrUpdate, Access.internal); +@@access(SearchIndexClient.Aliases.delete, Access.internal, "python"); +@@access(SearchIndexClient.KnowledgeBases.createOrUpdate, Access.internal); +@@access(SearchIndexClient.KnowledgeBases.delete, Access.internal, "python"); +@@access(SearchIndexClient.Sources.createOrUpdate, Access.internal); +@@access(SearchIndexClient.Sources.delete, Access.internal, "python"); + +@@clientNamespace(Search.ErrorResponse, "Azure.Search.Documents"); +@@clientNamespace(Search.ErrorResponse, "com.azure.search.documents", "java"); +@@clientNamespace(Search.ErrorDetail, "Azure.Search.Documents"); +@@clientNamespace(Search.ErrorDetail, "com.azure.search.documents", "java"); +@@clientNamespace(Search.ErrorAdditionalInfo, "Azure.Search.Documents"); +@@clientNamespace(Search.ErrorAdditionalInfo, + "com.azure.search.documents", + "java" +); + +// Search documents types +@@clientNamespace(Search.SemanticErrorMode, "Azure.Search.Documents"); +@@clientNamespace(Search.SemanticErrorMode, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryAnswerType, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryAnswerType, "com.azure.search.documents", "java"); +@@clientNamespace(Search.QueryCaptionType, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryCaptionType, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryRewritesType, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryRewritesType, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryDebugMode, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryDebugMode, "com.azure.search.documents", "java"); +@@clientNamespace(Search.QueryLanguage, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryLanguage, "com.azure.search.documents", "java"); +@@clientNamespace(Search.QuerySpellerType, "Azure.Search.Documents"); +@@clientNamespace(Search.QuerySpellerType, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorQueryKind, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorQueryKind, "com.azure.search.documents", "java"); +@@clientNamespace(Search.VectorThresholdKind, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorThresholdKind, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorFilterMode, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorFilterMode, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.HybridCountAndFacetMode, "Azure.Search.Documents"); +@@clientNamespace(Search.HybridCountAndFacetMode, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SemanticFieldState, "Azure.Search.Documents"); +@@clientNamespace(Search.SemanticFieldState, + "com.azure.search.documents", + "java" +); +@@clientName(Search.SemanticField.fieldName, "name", "javascript"); +@@clientNamespace(Search.SemanticErrorReason, "Azure.Search.Documents"); +@@clientNamespace(Search.SemanticErrorReason, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SemanticSearchResultsType, "Azure.Search.Documents"); +@@clientNamespace(Search.SemanticSearchResultsType, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SemanticQueryRewritesResultType, + "Azure.Search.Documents" +); +@@clientNamespace(Search.SemanticQueryRewritesResultType, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryType, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryType, "com.azure.search.documents", "java"); +@@clientNamespace(Search.SearchMode, "Azure.Search.Documents"); +@@clientNamespace(Search.SearchMode, "com.azure.search.documents", "java"); +@@clientNamespace(Search.ScoringStatistics, "Azure.Search.Documents"); +@@clientNamespace(Search.ScoringStatistics, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.IndexActionType, "Azure.Search.Documents"); +@@clientNamespace(Search.IndexActionType, "com.azure.search.documents", "java"); +@@clientNamespace(Search.AutocompleteMode, "Azure.Search.Documents"); +@@clientNamespace(Search.AutocompleteMode, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SearchDocumentsResult, "Azure.Search.Documents"); +@@clientNamespace(Search.SearchDocumentsResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.FacetResult, "Azure.Search.Documents"); +@@clientNamespace(Search.FacetResult, "com.azure.search.documents", "java"); +@@clientNamespace(Search.QueryAnswerResult, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryAnswerResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.DebugInfo, "Azure.Search.Documents"); +@@clientNamespace(Search.DebugInfo, "com.azure.search.documents", "java"); +@@clientNamespace(Search.QueryRewritesDebugInfo, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryRewritesDebugInfo, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryRewritesValuesDebugInfo, + "Azure.Search.Documents" +); +@@clientNamespace(Search.QueryRewritesValuesDebugInfo, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SearchRequest, "Azure.Search.Documents"); +@@clientNamespace(Search.SearchRequest, "com.azure.search.documents", "java"); +@@clientNamespace(Search.VectorQuery, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorQuery, "com.azure.search.documents", "java"); +@@clientNamespace(Search.VectorThreshold, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorThreshold, "com.azure.search.documents", "java"); +@@clientNamespace(Search.HybridSearch, "Azure.Search.Documents"); +@@clientNamespace(Search.HybridSearch, "com.azure.search.documents", "java"); +@@clientNamespace(Search.SearchResult, "Azure.Search.Documents"); +@@clientNamespace(Search.SearchResult, "com.azure.search.documents", "java"); +@@clientNamespace(Search.QueryCaptionResult, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryCaptionResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.DocumentDebugInfo, "Azure.Search.Documents"); +@@clientNamespace(Search.DocumentDebugInfo, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SemanticDebugInfo, "Azure.Search.Documents"); +@@clientNamespace(Search.SemanticDebugInfo, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryResultDocumentSemanticField, + "Azure.Search.Documents" +); +@@clientNamespace(Search.QueryResultDocumentSemanticField, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryResultDocumentRerankerInput, + "Azure.Search.Documents" +); +@@clientNamespace(Search.QueryResultDocumentRerankerInput, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorsDebugInfo, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorsDebugInfo, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryResultDocumentSubscores, + "Azure.Search.Documents" +); +@@clientNamespace(Search.QueryResultDocumentSubscores, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.TextResult, "Azure.Search.Documents"); +@@clientNamespace(Search.TextResult, "com.azure.search.documents", "java"); +@@clientNamespace(Search.SingleVectorFieldResult, "Azure.Search.Documents"); +@@clientNamespace(Search.SingleVectorFieldResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SuggestDocumentsResult, "Azure.Search.Documents"); +@@clientNamespace(Search.SuggestDocumentsResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SuggestResult, "Azure.Search.Documents"); +@@clientNamespace(Search.SuggestResult, "com.azure.search.documents", "java"); +@@clientNamespace(Search.SuggestRequest, "Azure.Search.Documents"); +@@clientNamespace(Search.SuggestRequest, "com.azure.search.documents", "java"); +@@clientNamespace(Search.IndexBatch, "Azure.Search.Documents"); +@@clientNamespace(Search.IndexBatch, "com.azure.search.documents", "java"); +@@clientNamespace(Search.IndexAction, "Azure.Search.Documents"); +@@clientNamespace(Search.IndexAction, "com.azure.search.documents", "java"); +@@clientNamespace(Search.LookupDocument, "Azure.Search.Documents"); +@@clientNamespace(Search.LookupDocument, "com.azure.search.documents", "java"); +@@clientNamespace(Search.IndexDocumentsResult, "Azure.Search.Documents"); +@@clientNamespace(Search.IndexDocumentsResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.IndexingResult, "Azure.Search.Documents"); +@@clientNamespace(Search.IndexingResult, "com.azure.search.documents", "java"); +@@clientNamespace(Search.AutocompleteResult, "Azure.Search.Documents"); +@@clientNamespace(Search.AutocompleteResult, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.AutocompleteItem, "Azure.Search.Documents"); +@@clientNamespace(Search.AutocompleteItem, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.AutocompleteRequest, "Azure.Search.Documents"); +@@clientNamespace(Search.AutocompleteRequest, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorizedQuery, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorizedQuery, "com.azure.search.documents", "java"); +@@clientNamespace(Search.VectorizableTextQuery, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorizableTextQuery, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorizableImageUrlQuery, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorizableImageUrlQuery, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorizableImageBinaryQuery, + "Azure.Search.Documents" +); +@@clientNamespace(Search.VectorizableImageBinaryQuery, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.VectorSimilarityThreshold, "Azure.Search.Documents"); +@@clientNamespace(Search.VectorSimilarityThreshold, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.SearchScoreThreshold, "Azure.Search.Documents"); +@@clientNamespace(Search.SearchScoreThreshold, + "com.azure.search.documents", + "java" +); +@@clientNamespace(Search.QueryResultDocumentInnerHit, "Azure.Search.Documents"); +@@clientNamespace(Search.QueryResultDocumentInnerHit, + "com.azure.search.documents", + "java" +); + +// Search index types +@@clientNamespace(Search.SearchIndexerDataSourceType, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerDataSourceType, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.BlobIndexerParsingMode, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.BlobIndexerParsingMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MarkdownParsingSubmode, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MarkdownParsingSubmode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MarkdownHeaderDepth, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.MarkdownHeaderDepth, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.BlobIndexerDataToExtract, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.BlobIndexerDataToExtract, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.BlobIndexerImageAction, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.BlobIndexerImageAction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.BlobIndexerPDFTextRotationAlgorithm, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.BlobIndexerPDFTextRotationAlgorithm, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerExecutionEnvironment, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexerExecutionEnvironment, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerExecutionStatusDetail, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexerExecutionStatusDetail, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexingMode, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexingMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexProjectionMode, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexProjectionMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchFieldDataType, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchFieldDataType, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LexicalAnalyzerName, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.LexicalAnalyzerName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LexicalNormalizerName, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.LexicalNormalizerName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorEncodingFormat, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorEncodingFormat, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchAlgorithmKind, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchAlgorithmKind, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchVectorizerKind, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchVectorizerKind, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchCompressionKind, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchCompressionKind, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchCompressionRescoreStorageMethod, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchCompressionRescoreStorageMethod, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LexicalTokenizerName, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.LexicalTokenizerName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TokenFilterName, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TokenFilterName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CharFilterName, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CharFilterName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.RegexFlags, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.RegexFlags, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchAlgorithmMetric, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchAlgorithmMetric, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchCompressionTarget, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchCompressionTarget, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureOpenAIModelName, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureOpenAIModelName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AIFoundryModelCatalogName, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AIFoundryModelCatalogName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KeyPhraseExtractionSkillLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KeyPhraseExtractionSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.OcrSkillLanguage, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.OcrSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.OcrLineEnding, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.OcrLineEnding, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ImageAnalysisSkillLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ImageAnalysisSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VisualFeature, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.VisualFeature, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ImageDetail, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ImageDetail, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EntityCategory, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.EntityCategory, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EntityRecognitionSkillLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.EntityRecognitionSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SentimentSkillLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SentimentSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PIIDetectionSkillMaskingMode, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.PIIDetectionSkillMaskingMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SplitSkillLanguage, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SplitSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TextSplitMode, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TextSplitMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SplitSkillUnit, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SplitSkillUnit, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SplitSkillEncoderModelName, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SplitSkillEncoderModelName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CustomEntityLookupSkillLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CustomEntityLookupSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TextTranslationSkillLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.TextTranslationSkillLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillOutputMode, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillOutputMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillMarkdownHeaderDepth, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillMarkdownHeaderDepth, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerStatus, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexerStatus, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerRuntime, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexerRuntime, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerExecutionStatus, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexerExecutionStatus, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ScoringFunctionInterpolation, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ScoringFunctionInterpolation, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ScoringFunctionAggregation, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ScoringFunctionAggregation, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TokenCharacterKind, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TokenCharacterKind, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MicrosoftTokenizerLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MicrosoftTokenizerLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MicrosoftStemmingTokenizerLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MicrosoftStemmingTokenizerLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CjkBigramTokenFilterScripts, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CjkBigramTokenFilterScripts, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EdgeNGramTokenFilterSide, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.EdgeNGramTokenFilterSide, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PhoneticEncoder, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.PhoneticEncoder, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SnowballTokenFilterLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SnowballTokenFilterLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.StemmerTokenFilterLanguage, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.StemmerTokenFilterLanguage, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.StopwordsList, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.StopwordsList, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerDataSource, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerDataSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DataSourceCredentials, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DataSourceCredentials, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerDataContainer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerDataContainer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DataChangeDetectionPolicy, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DataChangeDetectionPolicy, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DataDeletionDetectionPolicy, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DataDeletionDetectionPolicy, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchResourceEncryptionKey, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchResourceEncryptionKey, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureActiveDirectoryApplicationCredentials, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureActiveDirectoryApplicationCredentials, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListDataSourcesResult, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ListDataSourcesResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentKeysOrIds, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.DocumentKeysOrIds, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndexer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexingSchedule, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexingSchedule, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexingParameters, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexingParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexingParametersConfiguration, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexingParametersConfiguration, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.FieldMapping, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.FieldMapping, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.FieldMappingFunction, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.FieldMappingFunction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerCache, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndexerCache, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListIndexersResult, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ListIndexersResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerStatus, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndexerStatus, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerExecutionResult, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexerExecutionResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerCurrentState, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexerCurrentState, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerError, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndexerError, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerWarning, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerWarning, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerLimits, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndexerLimits, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerSkillset, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerSkillset, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndexerSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.InputFieldMappingEntry, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.InputFieldMappingEntry, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.OutputFieldMappingEntry, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.OutputFieldMappingEntry, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CognitiveServicesAccount, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CognitiveServicesAccount, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStore, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStore, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreProjection, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreProjection, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreTableProjectionSelector, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreTableProjectionSelector, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreProjectionSelector, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreProjectionSelector, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreObjectProjectionSelector, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreObjectProjectionSelector, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreBlobProjectionSelector, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreBlobProjectionSelector, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreFileProjectionSelector, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreFileProjectionSelector, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerIndexProjection, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerIndexProjection, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerIndexProjectionSelector, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerIndexProjectionSelector, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerIndexProjectionsParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerIndexProjectionsParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListSkillsetsResult, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ListSkillsetsResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SkillNames, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SkillNames, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SynonymMap, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SynonymMap, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListSynonymMapsResult, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ListSynonymMapsResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndex, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchIndex, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchField, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchField, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ScoringProfile, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ScoringProfile, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TextWeights, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TextWeights, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ScoringFunction, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ScoringFunction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CorsOptions, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CorsOptions, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeBase, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KnowledgeBase, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeSourceReference, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KnowledgeSourceReference, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeSourceContentExtractionMode, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KnowledgeSourceContentExtractionMode, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeSourceIngestionPermissionOption, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KnowledgeSourceIngestionPermissionOption, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeSourceSynchronizationStatus, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KnowledgeSourceSynchronizationStatus, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListKnowledgeBasesResult, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ListKnowledgeBasesResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeBaseModel, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KnowledgeBaseModel, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeBaseModelKind, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KnowledgeBaseModelKind, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeBaseAzureOpenAIModel, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KnowledgeBaseAzureOpenAIModel, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureOpenAiParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureOpenAiParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeSource, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KnowledgeSourceKind, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KnowledgeSourceKind, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexKnowledgeSource, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexKnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexKnowledgeSourceParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexKnowledgeSourceParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureBlobKnowledgeSource, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureBlobKnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureBlobKnowledgeSourceParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureBlobKnowledgeSourceParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexedOneLakeKnowledgeSource, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexedOneLakeKnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexedOneLakeKnowledgeSourceParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexedOneLakeKnowledgeSourceParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexedSharePointContainerName, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexedSharePointContainerName, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexedSharePointKnowledgeSource, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexedSharePointKnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexedSharePointKnowledgeSourceParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexedSharePointKnowledgeSourceParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.RemoteSharePointKnowledgeSource, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.RemoteSharePointKnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.RemoteSharePointKnowledgeSourceParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.RemoteSharePointKnowledgeSourceParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebKnowledgeSource, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.WebKnowledgeSource, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebKnowledgeSourceDomain, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.WebKnowledgeSourceDomain, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebKnowledgeSourceDomains, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.WebKnowledgeSourceDomains, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebKnowledgeSourceParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.WebKnowledgeSourceParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexFieldReference, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexFieldReference, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ServiceIndexersRuntime, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ServiceIndexersRuntime, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListKnowledgeSourcesResult, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ListKnowledgeSourcesResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CreatedResources, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CreatedResources, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchSuggester, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchSuggester, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LexicalAnalyzer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.LexicalAnalyzer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LexicalTokenizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.LexicalTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CharFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CharFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LexicalNormalizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.LexicalNormalizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SimilarityAlgorithm, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SimilarityAlgorithm, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SemanticSearch, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SemanticSearch, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SemanticConfiguration, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SemanticConfiguration, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SemanticPrioritizedFields, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SemanticPrioritizedFields, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SemanticField, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SemanticField, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearch, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.VectorSearch, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchProfile, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.VectorSearchProfile, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchAlgorithmConfiguration, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchAlgorithmConfiguration, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchVectorizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchVectorizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VectorSearchCompression, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VectorSearchCompression, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.RescoringOptions, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.RescoringOptions, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListIndexesResult, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ListIndexesResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.GetIndexStatisticsResult, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.GetIndexStatisticsResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AnalyzeRequest, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.AnalyzeRequest, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AnalyzeResult, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.AnalyzeResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AnalyzedTokenInfo, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.AnalyzedTokenInfo, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchAlias, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchAlias, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListAliasesResult, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ListAliasesResult, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchServiceStatistics, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchServiceStatistics, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchServiceCounters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchServiceCounters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ResourceCounter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ResourceCounter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchServiceLimits, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchServiceLimits, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CustomAnalyzer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CustomAnalyzer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PatternAnalyzer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.PatternAnalyzer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LuceneStandardAnalyzer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.LuceneStandardAnalyzer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.StopAnalyzer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.StopAnalyzer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CustomNormalizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CustomNormalizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ClassicTokenizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ClassicTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EdgeNGramTokenizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.EdgeNGramTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KeywordTokenizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KeywordTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KeywordTokenizerV2, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KeywordTokenizerV2, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MicrosoftLanguageTokenizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MicrosoftLanguageTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MicrosoftLanguageStemmingTokenizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MicrosoftLanguageStemmingTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.NGramTokenizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.NGramTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PathHierarchyTokenizerV2, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.PathHierarchyTokenizerV2, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PatternTokenizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.PatternTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LuceneStandardTokenizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.LuceneStandardTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LuceneStandardTokenizerV2, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.LuceneStandardTokenizerV2, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.UaxUrlEmailTokenizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.UaxUrlEmailTokenizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AsciiFoldingTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AsciiFoldingTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CjkBigramTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CjkBigramTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CommonGramTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CommonGramTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DictionaryDecompounderTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DictionaryDecompounderTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EdgeNGramTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.EdgeNGramTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EdgeNGramTokenFilterV2, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.EdgeNGramTokenFilterV2, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ElisionTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ElisionTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KeepTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.KeepTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KeywordMarkerTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KeywordMarkerTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LengthTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.LengthTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LimitTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.LimitTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.NGramTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.NGramTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.NGramTokenFilterV2, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.NGramTokenFilterV2, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PatternCaptureTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.PatternCaptureTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PatternReplaceTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.PatternReplaceTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PhoneticTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.PhoneticTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ShingleTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ShingleTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SnowballTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SnowballTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.StemmerTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.StemmerTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.StemmerOverrideTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.StemmerOverrideTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.StopwordsTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.StopwordsTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SynonymTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SynonymTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TruncateTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TruncateTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.UniqueTokenFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.UniqueTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WordDelimiterTokenFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.WordDelimiterTokenFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MappingCharFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.MappingCharFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PatternReplaceCharFilter, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.PatternReplaceCharFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ClassicSimilarityAlgorithm, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ClassicSimilarityAlgorithm, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.BM25SimilarityAlgorithm, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.BM25SimilarityAlgorithm, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.HnswAlgorithmConfiguration, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.HnswAlgorithmConfiguration, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.HnswParameters, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.HnswParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ExhaustiveKnnAlgorithmConfiguration, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ExhaustiveKnnAlgorithmConfiguration, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ExhaustiveKnnParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ExhaustiveKnnParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ScalarQuantizationCompression, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ScalarQuantizationCompression, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ScalarQuantizationParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ScalarQuantizationParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.BinaryQuantizationCompression, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.BinaryQuantizationCompression, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureOpenAIVectorizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureOpenAIVectorizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureOpenAIVectorizerParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureOpenAIVectorizerParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerDataIdentity, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerDataIdentity, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebApiVectorizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.WebApiVectorizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebApiVectorizerParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.WebApiVectorizerParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AIServicesVisionVectorizer, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AIServicesVisionVectorizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AIServicesVisionParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AIServicesVisionParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AMLVectorizer, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.AMLVectorizer, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AMLParameters, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.AMLParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerDataNoneIdentity, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerDataNoneIdentity, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerDataUserAssignedIdentity, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerDataUserAssignedIdentity, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.HighWaterMarkChangeDetectionPolicy, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.HighWaterMarkChangeDetectionPolicy, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SqlIntegratedChangeTrackingPolicy, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SqlIntegratedChangeTrackingPolicy, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SoftDeleteColumnDeletionDetectionPolicy, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SoftDeleteColumnDeletionDetectionPolicy, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.NativeBlobSoftDeleteDeletionDetectionPolicy, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.NativeBlobSoftDeleteDeletionDetectionPolicy, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DistanceScoringFunction, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DistanceScoringFunction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DistanceScoringParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DistanceScoringParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.FreshnessScoringFunction, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.FreshnessScoringFunction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.FreshnessScoringParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.FreshnessScoringParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MagnitudeScoringFunction, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MagnitudeScoringFunction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MagnitudeScoringParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.MagnitudeScoringParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TagScoringFunction, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.TagScoringFunction, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TagScoringParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.TagScoringParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexerKnowledgeStoreParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DefaultCognitiveServicesAccount, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DefaultCognitiveServicesAccount, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CognitiveServicesAccountKey, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CognitiveServicesAccountKey, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AIServicesAccountKey, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AIServicesAccountKey, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AIServicesAccountIdentity, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AIServicesAccountIdentity, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CustomEntity, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CustomEntity, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CustomEntityAlias, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.CustomEntityAlias, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ConditionalSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ConditionalSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.KeyPhraseExtractionSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.KeyPhraseExtractionSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.OcrSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.OcrSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ImageAnalysisSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ImageAnalysisSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.LanguageDetectionSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.LanguageDetectionSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ShaperSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ShaperSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.MergeSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.MergeSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EntityRecognitionSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.EntityRecognitionSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SentimentSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SentimentSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SentimentSkillV3, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SentimentSkillV3, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EntityLinkingSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.EntityLinkingSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.EntityRecognitionSkillV3, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.EntityRecognitionSkillV3, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PIIDetectionSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.PIIDetectionSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SplitSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SplitSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureOpenAITokenizerParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureOpenAITokenizerParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.CustomEntityLookupSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.CustomEntityLookupSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.TextTranslationSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.TextTranslationSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentExtractionSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentExtractionSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebApiSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.WebApiSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureMachineLearningSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureMachineLearningSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.AzureOpenAIEmbeddingSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.AzureOpenAIEmbeddingSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.VisionVectorizeSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.VisionVectorizeSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ContentUnderstandingSkillChunkingUnit, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ContentUnderstandingSkillChunkingUnit, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ContentUnderstandingSkillExtractionOptions, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ContentUnderstandingSkillExtractionOptions, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ContentUnderstandingSkill, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ContentUnderstandingSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ContentUnderstandingSkillChunkingProperties, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ContentUnderstandingSkillChunkingProperties, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexStatisticsSummary, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexStatisticsSummary, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ListIndexStatsSummary, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ListIndexStatsSummary, + "com.azure.search.documents.indexes", + "java" +); + +@@clientNamespace(Search.ChatCompletionExtraParametersBehavior, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ChatCompletionExtraParametersBehavior, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ChatCompletionResponseFormatType, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ChatCompletionResponseFormatType, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillChunkingUnit, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillChunkingUnit, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillExtractionOptions, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillExtractionOptions, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillOutputFormat, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillOutputFormat, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerPermissionOption, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.IndexerPermissionOption, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.PermissionFilter, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.PermissionFilter, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.RankingOrder, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.RankingOrder, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ChatCompletionCommonModelParameters, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ChatCompletionCommonModelParameters, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ChatCompletionResponseFormat, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ChatCompletionResponseFormat, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ChatCompletionSchema, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ChatCompletionSchema, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ChatCompletionSchemaProperties, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.ChatCompletionSchemaProperties, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.ChatCompletionSkill, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.ChatCompletionSkill, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillChunkingProperties, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.DocumentIntelligenceLayoutSkillChunkingProperties, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.WebApiHttpHeaders, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.WebApiHttpHeaders, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchOptions, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.SearchOptions, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.SearchIndexPermissionFilterOption, + "Azure.Search.Documents.Indexes" +); +@@clientNamespace(Search.SearchIndexPermissionFilterOption, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerResyncBody, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexerResyncBody, + "com.azure.search.documents.indexes", + "java" +); +@@clientNamespace(Search.IndexerResyncOption, "Azure.Search.Documents.Indexes"); +@@clientNamespace(Search.IndexerResyncOption, + "com.azure.search.documents.indexes", + "java" +); + +@@clientName(SearchClient.Documents.count, "getDocumentCount"); +@@clientName(SearchClient.Documents.get, "getDocument"); +@@clientName(SearchIndexClient.Indexes.list, "listIndexes"); +@@clientName(SearchIndexClient.Indexes.get, "getIndex"); +@@clientName(SearchIndexClient.Indexes.getStatistics, "getIndexStatistics"); +@@clientName(SearchIndexClient.Indexes.delete, "deleteIndex"); +@@clientName(SearchIndexClient.Indexes.create, "createIndex"); +@@clientName(SearchIndexClient.Indexes.createOrUpdate, "createOrUpdateIndex"); +@@clientName(SearchIndexClient.Indexes.analyze, "analyzeText"); +@@clientName(SearchIndexClient.SynonymMaps.list, "getSynonymMaps"); +@@clientName(SearchIndexClient.SynonymMaps.get, "getSynonymMap"); +@@clientName(SearchIndexClient.SynonymMaps.delete, "deleteSynonymMap"); +@@clientName(SearchIndexClient.SynonymMaps.create, "createSynonymMap"); +@@clientName(SearchIndexClient.SynonymMaps.createOrUpdate, + "createOrUpdateSynonymMap" +); +@@clientName(SearchIndexClient.Root.getIndexStatsSummary, + "listIndexStatsSummary" +); +@@clientName(SearchIndexClient.Aliases.list, "listAliases"); +@@clientName(SearchIndexClient.Aliases.get, "getAlias"); +@@clientName(SearchIndexClient.Aliases.delete, "deleteAlias"); +@@clientName(SearchIndexClient.Aliases.create, "createAlias"); +@@clientName(SearchIndexClient.Aliases.createOrUpdate, "createOrUpdateAlias"); +@@clientName(SearchIndexClient.KnowledgeBases.delete, "deleteKnowledgeBase"); +@@clientName(SearchIndexClient.KnowledgeBases.create, "createKnowledgeBase"); +@@clientName(SearchIndexClient.KnowledgeBases.createOrUpdate, + "createOrUpdateKnowledgeBase" +); +@@clientName(SearchIndexClient.KnowledgeBases.get, "getKnowledgeBase"); +@@clientName(SearchIndexClient.KnowledgeBases.list, "listKnowledgeBases"); +@@clientName(SearchIndexClient.Sources.delete, "deleteKnowledgeSource"); +@@clientName(SearchIndexClient.Sources.create, "createKnowledgeSource"); +@@clientName(SearchIndexClient.Sources.createOrUpdate, + "createOrUpdateKnowledgeSource" +); +@@clientName(SearchIndexClient.Sources.get, "getKnowledgeSource"); +@@clientName(SearchIndexClient.Sources.list, "listKnowledgeSources"); +@@clientName(SearchIndexerClient.Indexers.create, "createIndexer"); +@@clientName(SearchIndexerClient.Indexers.createOrUpdate, + "createOrUpdateIndexer" +); +@@clientName(SearchIndexerClient.Indexers.delete, "deleteIndexer"); +@@clientName(SearchIndexerClient.Indexers.get, "getIndexer"); +@@clientName(SearchIndexerClient.Indexers.list, "getIndexers"); +@@clientName(SearchIndexerClient.Indexers.run, "runIndexer"); +@@clientName(SearchIndexerClient.Indexers.reset, "resetIndexer"); +@@clientName(SearchIndexerClient.Indexers.resetDocs, "resetDocuments"); +@@clientName(SearchIndexerClient.Indexers.resync, "resync"); +@@clientName(SearchIndexerClient.Indexers.getStatus, "getIndexerStatus"); +@@clientName(SearchIndexerClient.DataSources.create, + "createDataSourceConnection" +); +@@clientName(SearchIndexerClient.DataSources.createOrUpdate, + "createOrUpdateDataSourceConnection" +); +@@clientName(SearchIndexerClient.DataSources.get, "getDataSourceConnection"); +@@clientName(SearchIndexerClient.DataSources.list, "getDataSourceConnections"); +@@clientName(SearchIndexerClient.DataSources.delete, + "deleteDataSourceConnection" +); +@@clientName(SearchIndexerClient.Skillsets.create, "createSkillset"); +@@clientName(SearchIndexerClient.Skillsets.createOrUpdate, + "createOrUpdateSkillset" +); +@@clientName(SearchIndexerClient.Skillsets.get, "getSkillset"); +@@clientName(SearchIndexerClient.Skillsets.list, "getSkillsets"); +@@clientName(SearchIndexerClient.Skillsets.delete, "deleteSkillset"); + +@@clientName(VectorQuery.k, "kNearestNeighbors"); +@@clientName(SearchDocumentsResult.value, "results"); +@@clientName(SearchRequest.count, "includeTotalCount"); +@@clientName(SearchRequest.highlight, "highlightFields"); +@@clientName(SearchRequest.search, "searchText"); +@@clientName(SearchRequest.orderby, "orderBy"); +@@clientName(SuggestDocumentsResult.value, "results"); +@@clientName(SuggestRequest.fuzzy, "useFuzzyMatching"); +@@clientName(SuggestRequest.orderby, "orderBy"); +@@clientName(SuggestRequest.search, "searchText"); +@@clientName(Search.IndexBatch, "IndexDocumentsBatch"); +@@clientName(IndexBatch.value, "actions"); +@@clientName(IndexDocumentsResult.value, "results"); +@@clientName(IndexingResult.status, "succeeded"); +@@clientName(AutocompleteRequest.autocompleteMode, "mode"); +@@clientName(AutocompleteResult.value, "results"); +@@clientName(AutocompleteRequest.search, "searchText"); +@@clientName(AutocompleteRequest.fuzzy, "useFuzzyMatching"); +@@clientName(ListDataSourcesResult.value, "dataSources"); +@@clientName(SearchResourceEncryptionKey.keyVaultKeyName, "keyName"); +@@clientName(SearchResourceEncryptionKey.keyVaultKeyVersion, "keyVersion"); +@@clientName(SearchResourceEncryptionKey.keyVaultUri, "vaultUri"); +@@clientName(SearchIndexer.disabled, "isDisabled"); +@@clientName(ListIndexersResult.value, "indexers"); +@@clientName(IndexerExecutionResult.itemsProcessed, "itemCount"); +@@clientName(IndexerExecutionResult.itemsFailed, "failedItemCount"); +@@clientName(SearchIndexerSkillset.cognitiveServices, + "cognitiveServicesAccount" +); +@@clientName(SearchIndexerSkillset.indexProjections, "indexProjection"); +@@clientName(ListSkillsetsResult.value, "skillsets"); +@@clientName(ListSynonymMapsResult.value, "synonymMaps"); +@@clientName(AnalyzeRequest, "AnalyzeTextOptions"); +@@clientName(AnalyzeRequest.analyzer, "analyzerName"); +@@clientName(AnalyzeRequest.tokenizer, "tokenizerName"); +@@clientName(AnalyzeRequest.normalizer, "normalizerName"); +@@clientName(SearchIndexerDataSource, "SearchIndexerDataSourceConnection"); +@@clientName(SearchRequest.speller, "querySpeller"); +@@clientName(SearchRequest.semanticConfiguration, "semanticConfigurationName"); +@@clientName(SearchIndex.semantic, "semanticSearch"); +@@clientName(SearchField.analyzer, "analyzerName"); +@@clientName(SearchField.searchAnalyzer, "searchAnalyzerName"); +@@clientName(SearchField.indexAnalyzer, "indexAnalyzerName"); +@@clientName(SearchField.normalizer, "normalizerName"); +@@clientName(SearchField.synonymMaps, "synonymMapNames"); +@@clientName(SearchField.dimensions, "vectorSearchDimensions"); +@@clientName(SearchField.vectorSearchProfile, "vectorSearchProfileName"); +@@clientName(SearchField.vectorEncoding, "vectorEncodingFormat"); +@@clientName(ScoringProfile.text, "textWeights"); +@@clientName(SemanticSearch.defaultConfiguration, "defaultConfigurationName"); +@@clientName(SemanticPrioritizedFields.prioritizedContentFields, + "contentFields" +); +@@clientName(SemanticPrioritizedFields.prioritizedKeywordsFields, + "keywordsFields" +); +@@clientName(VectorSearchProfile.algorithm, "algorithmConfigurationName"); +@@clientName(VectorSearchProfile.vectorizer, "vectorizerName"); +@@clientName(VectorSearchProfile.compression, "compressionName"); +@@clientName(VectorSearchVectorizer.name, "vectorizerName"); +@@clientName(VectorSearchCompression.name, "compressionName"); +@@clientName(ListIndexesResult.value, "indexes"); +@@clientName(SearchServiceCounters.aliasesCount, "aliasCounter"); +@@clientName(SearchServiceCounters.documentCount, "documentCounter"); +@@clientName(SearchServiceCounters.indexesCount, "indexCounter"); +@@clientName(SearchServiceCounters.indexersCount, "indexerCounter"); +@@clientName(SearchServiceCounters.dataSourcesCount, "dataSourceCounter"); +@@clientName(SearchServiceCounters.storageSize, "storageSizeCounter"); +@@clientName(SearchServiceCounters.synonymMaps, "synonymMapCounter"); +@@clientName(SearchServiceCounters.skillsetCount, "skillsetCounter"); +@@clientName(SearchServiceCounters.vectorIndexSize, "vectorIndexSizeCounter"); +@@clientName(SearchServiceLimits.maxStoragePerIndex, + "maxStoragePerIndexInBytes" +); +@@clientName(PatternAnalyzer.lowercase, "lowerCaseTerms"); +@@clientName(PathHierarchyTokenizerV2.reverse, "reverseTokenOrder"); +@@clientName(PathHierarchyTokenizerV2.skip, "numberOfTokensToSkip"); +@@clientName(CommonGramTokenFilter.queryMode, "useQueryMode"); +@@clientName(KeepTokenFilter.keepWordsCase, "lowerCaseKeepWords"); +@@clientName(LengthTokenFilter.min, "minLength"); +@@clientName(LengthTokenFilter.max, "maxLength"); +@@clientName(PhoneticTokenFilter.replace, "replaceOriginalTokens"); +@@clientName(StopwordsTokenFilter.removeTrailing, "removeTrailingStopWords"); +@@clientName(HnswAlgorithmConfiguration.hnswParameters, "parameters"); +@@clientName(ExhaustiveKnnAlgorithmConfiguration.exhaustiveKnnParameters, + "parameters" +); +@@clientName(ScalarQuantizationCompression.scalarQuantizationParameters, + "parameters" +); +@@clientName(AzureOpenAIVectorizer.azureOpenAIParameters, "parameters"); +@@clientName(AzureOpenAIVectorizerParameters.resourceUri, "resourceUrl"); +@@clientName(AzureOpenAIVectorizerParameters.deploymentId, "deploymentName"); +@@clientName(WebApiVectorizer.customWebApiParameters, "webApiParameters"); +@@clientName(WebApiVectorizerParameters.uri, "url"); +@@clientName(SearchIndexerDataUserAssignedIdentity.userAssignedIdentity, + "resourceId" +); +@@clientName(DistanceScoringFunction.distance, "parameters"); +@@clientName(FreshnessScoringFunction.freshness, "parameters"); +@@clientName(MagnitudeScoringFunction.magnitude, "parameters"); +@@clientName(MagnitudeScoringParameters.constantBoostBeyondRange, + "shouldBoostBeyondRangeByConstant" +); +@@clientName(TagScoringFunction.tag, "parameters"); +@@clientName(OcrSkill.detectOrientation, "shouldDetectOrientation"); +@@clientName(PIIDetectionSkill.maskingCharacter, "mask"); +@@clientName(ListAliasesResult.value, "aliases"); +@@clientName(AMLParameters.uri, "scoringUri"); +@@clientName(AMLParameters.key, "authenticationKey"); +@@clientName(AMLVectorizer.amlParameters, "AMLParameters"); +@@clientName(AzureMachineLearningSkill.uri, "scoringUri"); +@@clientName(AzureMachineLearningSkill.key, "authenticationKey"); +@@clientName(SkillNames.skillNames, "skillNameList", "csharp"); +@@clientName(AMLParameters, "AzureMachineLearningParameters"); +@@clientName(AMLVectorizer, "AzureMachineLearningVectorizer"); +@@clientName(DataChangeDetectionPolicy.`@odata.type`, "odataType"); +@@clientName(DataChangeDetectionPolicy.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(DataDeletionDetectionPolicy.`@odata.type`, "odataType"); +@@clientName(DataDeletionDetectionPolicy.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(SearchIndexerSkill.`@odata.type`, "odataType"); +@@clientName(SearchIndexerSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(CognitiveServicesAccount.`@odata.type`, "odataType"); +@@clientName(CognitiveServicesAccount.`@odata.type`, "odatatype", "javascript"); +@@clientName(LexicalAnalyzer.`@odata.type`, "odataType"); +@@clientName(LexicalAnalyzer.`@odata.type`, "odatatype", "javascript"); +@@clientName(LexicalTokenizer.`@odata.type`, "odataType"); +@@clientName(LexicalTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(TokenFilter.`@odata.type`, "odataType"); +@@clientName(TokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(CharFilter.`@odata.type`, "odataType"); +@@clientName(CharFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(LexicalNormalizer.`@odata.type`, "odataType"); +@@clientName(LexicalNormalizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(SimilarityAlgorithm.`@odata.type`, "odataType"); +@@clientName(SimilarityAlgorithm.`@odata.type`, "odatatype", "javascript"); +@@clientName(CustomAnalyzer.`@odata.type`, "odataType"); +@@clientName(CustomAnalyzer.`@odata.type`, "odatatype", "javascript"); +@@clientName(PatternAnalyzer.`@odata.type`, "odataType"); +@@clientName(PatternAnalyzer.`@odata.type`, "odatatype", "javascript"); +@@clientName(LuceneStandardAnalyzer.`@odata.type`, "odataType"); +@@clientName(LuceneStandardAnalyzer.`@odata.type`, "odatatype", "javascript"); +@@clientName(StopAnalyzer.`@odata.type`, "odataType"); +@@clientName(StopAnalyzer.`@odata.type`, "odatatype", "javascript"); +@@clientName(CustomNormalizer.`@odata.type`, "odataType"); +@@clientName(CustomNormalizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(ClassicTokenizer.`@odata.type`, "odataType"); +@@clientName(ClassicTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(EdgeNGramTokenizer.`@odata.type`, "odataType"); +@@clientName(EdgeNGramTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(KeywordTokenizer.`@odata.type`, "odataType"); +@@clientName(KeywordTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(KeywordTokenizerV2.`@odata.type`, "odataType"); +@@clientName(KeywordTokenizerV2.`@odata.type`, "odatatype", "javascript"); +@@clientName(MicrosoftLanguageTokenizer.`@odata.type`, "odataType"); +@@clientName(MicrosoftLanguageTokenizer.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(MicrosoftLanguageStemmingTokenizer.`@odata.type`, "odataType"); +@@clientName(MicrosoftLanguageStemmingTokenizer.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(NGramTokenizer.`@odata.type`, "odataType"); +@@clientName(NGramTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(PatternTokenizer.`@odata.type`, "odataType"); +@@clientName(PatternTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(LuceneStandardTokenizer.`@odata.type`, "odataType"); +@@clientName(LuceneStandardTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(LuceneStandardTokenizerV2.`@odata.type`, "odataType"); +@@clientName(LuceneStandardTokenizerV2.`@odata.type`, "odatatype", "javascript"); +@@clientName(UaxUrlEmailTokenizer.`@odata.type`, "odataType"); +@@clientName(UaxUrlEmailTokenizer.`@odata.type`, "odatatype", "javascript"); +@@clientName(AsciiFoldingTokenFilter.`@odata.type`, "odataType"); +@@clientName(AsciiFoldingTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(CjkBigramTokenFilter.`@odata.type`, "odataType"); +@@clientName(CjkBigramTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(CommonGramTokenFilter.`@odata.type`, "odataType"); +@@clientName(CommonGramTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(DictionaryDecompounderTokenFilter.`@odata.type`, "odataType"); +@@clientName(DictionaryDecompounderTokenFilter.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(EdgeNGramTokenFilter.`@odata.type`, "odataType"); +@@clientName(EdgeNGramTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(EdgeNGramTokenFilterV2.`@odata.type`, "odataType"); +@@clientName(EdgeNGramTokenFilterV2.`@odata.type`, "odatatype", "javascript"); +@@clientName(ElisionTokenFilter.`@odata.type`, "odataType"); +@@clientName(ElisionTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(KeepTokenFilter.`@odata.type`, "odataType"); +@@clientName(KeepTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(KeywordMarkerTokenFilter.`@odata.type`, "odataType"); +@@clientName(KeywordMarkerTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(LengthTokenFilter.`@odata.type`, "odataType"); +@@clientName(LengthTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(LimitTokenFilter.`@odata.type`, "odataType"); +@@clientName(LimitTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(NGramTokenFilter.`@odata.type`, "odataType"); +@@clientName(NGramTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(NGramTokenFilterV2.`@odata.type`, "odataType"); +@@clientName(NGramTokenFilterV2.`@odata.type`, "odatatype", "javascript"); +@@clientName(PatternCaptureTokenFilter.`@odata.type`, "odataType"); +@@clientName(PatternCaptureTokenFilter.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(PatternReplaceTokenFilter.`@odata.type`, "odataType"); +@@clientName(PatternReplaceTokenFilter.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(PhoneticTokenFilter.`@odata.type`, "odataType"); +@@clientName(PhoneticTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(ShingleTokenFilter.`@odata.type`, "odataType"); +@@clientName(ShingleTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(SnowballTokenFilter.`@odata.type`, "odataType"); +@@clientName(SnowballTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(StemmerTokenFilter.`@odata.type`, "odataType"); +@@clientName(StemmerTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(StemmerOverrideTokenFilter.`@odata.type`, "odataType"); +@@clientName(StemmerOverrideTokenFilter.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(StopwordsTokenFilter.`@odata.type`, "odataType"); +@@clientName(StopwordsTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(SynonymTokenFilter.`@odata.type`, "odataType"); +@@clientName(SynonymTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(TruncateTokenFilter.`@odata.type`, "odataType"); +@@clientName(TruncateTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(UniqueTokenFilter.`@odata.type`, "odataType"); +@@clientName(UniqueTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(WordDelimiterTokenFilter.`@odata.type`, "odataType"); +@@clientName(WordDelimiterTokenFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(MappingCharFilter.`@odata.type`, "odataType"); +@@clientName(MappingCharFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(PatternReplaceCharFilter.`@odata.type`, "odataType"); +@@clientName(PatternReplaceCharFilter.`@odata.type`, "odatatype", "javascript"); +@@clientName(ClassicSimilarityAlgorithm.`@odata.type`, "odataType"); +@@clientName(ClassicSimilarityAlgorithm.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(BM25SimilarityAlgorithm.`@odata.type`, "odataType"); +@@clientName(BM25SimilarityAlgorithm.`@odata.type`, "odatatype", "javascript"); +@@clientName(SearchIndexerDataIdentity.`@odata.type`, "odataType"); +@@clientName(SearchIndexerDataIdentity.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(SearchIndexerDataNoneIdentity.`@odata.type`, "odataType"); +@@clientName(SearchIndexerDataNoneIdentity.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(SearchIndexerDataUserAssignedIdentity.`@odata.type`, "odataType"); +@@clientName(SearchIndexerDataUserAssignedIdentity.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(HighWaterMarkChangeDetectionPolicy.`@odata.type`, "odataType"); +@@clientName(HighWaterMarkChangeDetectionPolicy.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(SqlIntegratedChangeTrackingPolicy.`@odata.type`, "odataType"); +@@clientName(SqlIntegratedChangeTrackingPolicy.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(SoftDeleteColumnDeletionDetectionPolicy.`@odata.type`, + "odataType" +); +@@clientName(SoftDeleteColumnDeletionDetectionPolicy.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(NativeBlobSoftDeleteDeletionDetectionPolicy.`@odata.type`, + "odataType" +); +@@clientName(NativeBlobSoftDeleteDeletionDetectionPolicy.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(DefaultCognitiveServicesAccount.`@odata.type`, "odataType"); +@@clientName(DefaultCognitiveServicesAccount.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(CognitiveServicesAccountKey.`@odata.type`, "odataType"); +@@clientName(CognitiveServicesAccountKey.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(AIServicesAccountKey.`@odata.type`, "odataType"); +@@clientName(AIServicesAccountKey.`@odata.type`, "odatatype", "javascript"); +@@clientName(AIServicesAccountIdentity.`@odata.type`, "odataType"); +@@clientName(AIServicesAccountIdentity.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(ConditionalSkill.`@odata.type`, "odataType"); +@@clientName(ConditionalSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(KeyPhraseExtractionSkill.`@odata.type`, "odataType"); +@@clientName(KeyPhraseExtractionSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(OcrSkill.`@odata.type`, "odataType"); +@@clientName(OcrSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(ImageAnalysisSkill.`@odata.type`, "odataType"); +@@clientName(ImageAnalysisSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(LanguageDetectionSkill.`@odata.type`, "odataType"); +@@clientName(LanguageDetectionSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(ShaperSkill.`@odata.type`, "odataType"); +@@clientName(ShaperSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(MergeSkill.`@odata.type`, "odataType"); +@@clientName(MergeSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(SentimentSkill.`@odata.type`, "odataType"); +@@clientName(SentimentSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(SentimentSkillV3.`@odata.type`, "odataType"); +@@clientName(SentimentSkillV3.`@odata.type`, "odatatype", "javascript"); +@@clientName(EntityLinkingSkill.`@odata.type`, "odataType"); +@@clientName(EntityLinkingSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(EntityRecognitionSkill.`@odata.type`, "odataType"); +@@clientName(EntityRecognitionSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(EntityRecognitionSkillV3.`@odata.type`, "odataType"); +@@clientName(EntityRecognitionSkillV3.`@odata.type`, "odatatype", "javascript"); +@@clientName(PIIDetectionSkill.`@odata.type`, "odataType"); +@@clientName(PIIDetectionSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(SplitSkill.`@odata.type`, "odataType"); +@@clientName(SplitSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(CustomEntityLookupSkill.`@odata.type`, "odataType"); +@@clientName(CustomEntityLookupSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(TextTranslationSkill.`@odata.type`, "odataType"); +@@clientName(TextTranslationSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(DocumentExtractionSkill.`@odata.type`, "odataType"); +@@clientName(DocumentExtractionSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(DocumentIntelligenceLayoutSkill.`@odata.type`, "odataType"); +@@clientName(DocumentIntelligenceLayoutSkill.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(WebApiSkill.`@odata.type`, "odataType"); +@@clientName(WebApiSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(AzureMachineLearningSkill.`@odata.type`, "odataType"); +@@clientName(AzureMachineLearningSkill.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(AzureOpenAIEmbeddingSkill.`@odata.type`, "odataType"); +@@clientName(AzureOpenAIEmbeddingSkill.`@odata.type`, + "odatatype", + "javascript" +); +@@clientName(VisionVectorizeSkill.`@odata.type`, "odataType"); +@@clientName(VisionVectorizeSkill.`@odata.type`, "odatatype", "javascript"); +@@clientName(PathHierarchyTokenizerV2.`@odata.type`, "odataType"); +@@clientName(PathHierarchyTokenizerV2.`@odata.type`, "odatatype", "javascript"); +@@clientName(ListIndexStatsSummary.value, "IndexesStatistics"); +@@clientName(Search.BM25SimilarityAlgorithm, "BM25Similarity", "javascript"); +@@clientName(Search.ClassicSimilarityAlgorithm, + "ClassicSimilarity", + "javascript" +); +@@clientName(Search.ChatCompletionCommonModelParameters, + "CommonModelParameters", + "javascript" +); +@@clientName(Search.SearchServiceCounters, "ServiceCounters", "javascript"); +@@clientName(Search.SearchServiceLimits, "ServiceLimits", "javascript"); + +// Knowledge Base types +@@clientNamespace(Search.AIServices, "Azure.Search.Documents.KnowledgeBase"); +@@clientNamespace(Search.AIServices, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.SynchronizationState, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.SynchronizationState, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.CompletedSynchronizationState, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.CompletedSynchronizationState, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseRetrievalRequest, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseRetrievalRequest, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseRetrievalResponse, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseRetrievalResponse, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalReasoningEffort, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalReasoningEffort, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalMinimalReasoningEffort, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalMinimalReasoningEffort, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalLowReasoningEffort, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalLowReasoningEffort, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalMediumReasoningEffort, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalMediumReasoningEffort, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalReasoningEffortKind, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalReasoningEffortKind, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalOutputMode, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalOutputMode, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.SearchIndexKnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.SearchIndexKnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.AzureBlobKnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.AzureBlobKnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.IndexedSharePointKnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.IndexedSharePointKnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.IndexedOneLakeKnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.IndexedOneLakeKnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.WebKnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.WebKnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.RemoteSharePointKnowledgeSourceParams, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.RemoteSharePointKnowledgeSourceParams, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeSourceVectorizer, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeSourceVectorizer, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeSourceAzureOpenAIVectorizer, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeSourceAzureOpenAIVectorizer, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeSourceIngestionParameters, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeSourceIngestionParameters, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeSourceStatistics, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeSourceStatistics, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeSourceStatus, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeSourceStatus, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalIntent, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalIntent, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalIntentType, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalIntentType, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeRetrievalSemanticIntent, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeRetrievalSemanticIntent, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseMessage, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseMessage, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseMessageContent, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseMessageContent, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseMessageContentType, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseMessageContentType, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseMessageTextContent, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseMessageTextContent, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseMessageImageContent, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseMessageImageContent, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseImageContent, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseImageContent, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseActivityRecordType, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseActivityRecordType, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseRetrievalActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseRetrievalActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseSearchIndexActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseSearchIndexActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseSearchIndexActivityArguments, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseSearchIndexActivityArguments, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseAzureBlobActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseAzureBlobActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseAzureBlobActivityArguments, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseAzureBlobActivityArguments, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseIndexedSharePointActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseIndexedSharePointActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseIndexedSharePointActivityArguments, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseIndexedSharePointActivityArguments, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseIndexedOneLakeActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseIndexedOneLakeActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseIndexedOneLakeActivityArguments, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseIndexedOneLakeActivityArguments, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseWebActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseWebActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseWebActivityArguments, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseWebActivityArguments, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseRemoteSharePointActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseRemoteSharePointActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseRemoteSharePointActivityArguments, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseRemoteSharePointActivityArguments, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseModelQueryPlanningActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseModelQueryPlanningActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseModelAnswerSynthesisActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseModelAnswerSynthesisActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseAgenticReasoningActivityRecord, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseAgenticReasoningActivityRecord, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseReferenceType, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseReferenceType, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseSearchIndexReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseSearchIndexReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseAzureBlobReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseAzureBlobReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseIndexedSharePointReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseIndexedSharePointReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseIndexedOneLakeReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseIndexedOneLakeReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseWebReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseWebReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseRemoteSharePointReference, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseRemoteSharePointReference, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.SharePointSensitivityLabelInfo, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.SharePointSensitivityLabelInfo, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseErrorDetail, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseErrorDetail, + "com.azure.search.documents.knowledgebase", + "java" +); +@@clientNamespace(Search.KnowledgeBaseErrorAdditionalInfo, + "Azure.Search.Documents.KnowledgeBase" +); +@@clientNamespace(Search.KnowledgeBaseErrorAdditionalInfo, + "com.azure.search.documents.knowledgebase", + "java" +); diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieve.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieve.json new file mode 100644 index 000000000000..b0425cc45671 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieve.json @@ -0,0 +1,289 @@ +{ + "operationId": "KnowledgeRetrieval_Retrieve", + "title": "KnowledgeBaseRetrieve", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "knowledgeBaseName": "base-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "x-ms-query-source-authorization": null, + "retrievalRequest": { + "messages": [ + { + "role": "user", + "content": [ + { + "text": "hello world", + "type": "text" + } + ] + } + ], + "maxRuntimeInSeconds": 60, + "maxOutputSize": 100000, + "retrievalReasoningEffort": { + "kind": "low" + }, + "includeActivity": true, + "outputMode": "answerSynthesis", + "knowledgeSourceParams": [ + { + "filterAddOn": "foo eq bar", + "knowledgeSourceName": "ks-preview-test", + "includeReferences": true, + "includeReferenceSourceData": true, + "alwaysQuerySource": false, + "rerankerThreshold": 2.1, + "kind": "searchIndex" + } + ] + } + }, + "responses": { + "200": { + "body": { + "response": [ + { + "content": [ + { + "type": "text", + "text": "[{...}]" + } + ] + } + ], + "activity": [ + { + "type": "modelQueryPlanning", + "id": 0, + "inputTokens": 11, + "outputTokens": 22, + "elapsedMs": 10 + }, + { + "type": "searchIndex", + "id": 1, + "knowledgeSourceName": "ks-preview-test", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 2, + "elapsedMs": 1234, + "searchIndexArguments": { + "search": "hello world", + "filter": "foo eq bar", + "sourceDataFields": [ + { + "name": "category" + }, + { + "name": "description" + }, + { + "name": "ownerId" + }, + { + "name": "id" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + } + }, + { + "type": "searchIndex", + "id": 2, + "knowledgeSourceName": "ks-preview-test", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 2, + "elapsedMs": 1234, + "searchIndexArguments": { + "search": "hello world two", + "filter": "foo eq bar", + "sourceDataFields": [ + { + "name": "category" + }, + { + "name": "description" + }, + { + "name": "ownerId" + }, + { + "name": "id" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + } + }, + { + "type": "agenticReasoning", + "id": 3, + "retrievalReasoningEffort": { + "kind": "low" + }, + "reasoningTokens": 74 + }, + { + "type": "modelAnswerSynthesis", + "id": 4, + "inputTokens": 664, + "outputTokens": 1328, + "elapsedMs": 10 + } + ], + "references": [ + { + "type": "searchIndex", + "id": "83dd7d40", + "activitySource": 1, + "sourceData": { + "id": "myDocKey1", + "title": "high_doc", + "content": "hello world" + }, + "rerankerScore": 3.5, + "docKey": "myDocKey1" + }, + { + "type": "searchIndex", + "id": "83dd7d41", + "activitySource": 1, + "sourceData": { + "id": "myDocKey2", + "title": "low_doc", + "content": "goodbye world" + }, + "rerankerScore": 2.7, + "docKey": "myDocKey2" + } + ] + } + }, + "206": { + "body": { + "response": [ + { + "content": [ + { + "type": "text", + "text": "[{...}]" + } + ] + } + ], + "activity": [ + { + "type": "modelQueryPlanning", + "id": 0, + "inputTokens": 11, + "outputTokens": 22, + "elapsedMs": 10 + }, + { + "type": "searchIndex", + "id": 1, + "knowledgeSourceName": "ks-preview-test", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 2, + "elapsedMs": 1234, + "searchIndexArguments": { + "search": "hello world", + "filter": "foo eq bar", + "sourceDataFields": [ + { + "name": "category" + }, + { + "name": "description" + }, + { + "name": "ownerId" + }, + { + "name": "id" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + } + }, + { + "type": "web", + "id": 2, + "knowledgeSourceName": "ks-preview-web", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 10, + "elapsedMs": 2345, + "error": { + "code": "403", + "message": "The error message", + "details": [], + "additionalInfo": [ + { + "type": "SomeErrorType", + "info": { + "someProperty": "Some value" + } + } + ] + } + }, + { + "type": "agenticReasoning", + "id": 3, + "retrievalReasoningEffort": { + "kind": "low" + }, + "reasoningTokens": 74 + }, + { + "type": "modelAnswerSynthesis", + "id": 4, + "inputTokens": 664, + "outputTokens": 1328, + "elapsedMs": 10 + } + ], + "references": [ + { + "type": "searchIndex", + "id": "83dd7d40", + "activitySource": 1, + "sourceData": { + "id": "myDocKey1", + "title": "high_doc", + "content": "hello world" + }, + "rerankerScore": 3.5, + "docKey": "myDocKey1" + }, + { + "type": "searchIndex", + "id": "83dd7d41", + "activitySource": 1, + "sourceData": { + "id": "myDocKey2", + "title": "low_doc", + "content": "goodbye world" + }, + "rerankerScore": 2.7, + "docKey": "myDocKey2" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieveWithIntents.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieveWithIntents.json new file mode 100644 index 000000000000..081cdacbfdfe --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/KnowledgeBaseRetrieveWithIntents.json @@ -0,0 +1,224 @@ +{ + "operationId": "KnowledgeRetrieval_Retrieve", + "title": "KnowledgeBaseRetrieveWithIntents", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "knowledgeBaseName": "base-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "x-ms-query-source-authorization": null, + "retrievalRequest": { + "intents": [ + { + "search": "foo", + "type": "semantic" + } + ], + "maxRuntimeInSeconds": 60, + "maxOutputSize": 100000, + "retrievalReasoningEffort": { + "kind": "minimal" + }, + "includeActivity": true, + "outputMode": "extractiveData", + "knowledgeSourceParams": [ + { + "filterAddOn": "foo eq bar", + "knowledgeSourceName": "ks-preview-test", + "includeReferences": true, + "includeReferenceSourceData": true, + "alwaysQuerySource": true, + "rerankerThreshold": 2.1, + "kind": "searchIndex" + } + ] + } + }, + "responses": { + "200": { + "body": { + "response": [ + { + "content": [ + { + "type": "text", + "text": "[{...}]" + } + ] + } + ], + "activity": [ + { + "type": "searchIndex", + "id": 0, + "knowledgeSourceName": "ks-preview-test", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 2, + "elapsedMs": 1234, + "searchIndexArguments": { + "search": "foo", + "filter": "foo eq bar", + "sourceDataFields": [ + { + "name": "category" + }, + { + "name": "description" + }, + { + "name": "ownerId" + }, + { + "name": "id" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + } + }, + { + "type": "agenticReasoning", + "id": 1, + "retrievalReasoningEffort": { + "kind": "minimal" + }, + "reasoningTokens": 37 + } + ], + "references": [ + { + "type": "searchIndex", + "id": "83dd7d40", + "activitySource": 0, + "sourceData": { + "id": "myDocKey1", + "title": "high_doc", + "content": "hello world" + }, + "rerankerScore": 3.5, + "docKey": "myDocKey1" + }, + { + "type": "searchIndex", + "id": "83dd7d41", + "activitySource": 0, + "sourceData": { + "id": "myDocKey2", + "title": "low_doc", + "content": "goodbye world" + }, + "rerankerScore": 2.7, + "docKey": "myDocKey2" + } + ] + } + }, + "206": { + "body": { + "response": [ + { + "content": [ + { + "type": "text", + "text": "[{...}]" + } + ] + } + ], + "activity": [ + { + "type": "searchIndex", + "id": 0, + "knowledgeSourceName": "ks-preview-test", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 2, + "elapsedMs": 1234, + "searchIndexArguments": { + "search": "foo", + "filter": "foo eq bar", + "sourceDataFields": [ + { + "name": "category" + }, + { + "name": "description" + }, + { + "name": "ownerId" + }, + { + "name": "id" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + } + }, + { + "type": "web", + "id": 1, + "knowledgeSourceName": "ks-preview-web", + "queryTime": "2025-01-01T00:08:45.045Z", + "count": 10, + "elapsedMs": 2345, + "error": { + "code": "403", + "message": "The error message", + "details": [], + "additionalInfo": [ + { + "type": "SomeErrorType", + "info": { + "someProperty": "Some value" + } + } + ] + } + }, + { + "type": "agenticReasoning", + "id": 2, + "retrievalReasoningEffort": { + "kind": "minimal" + }, + "reasoningTokens": 37 + } + ], + "references": [ + { + "type": "searchIndex", + "id": "83dd7d40", + "activitySource": 0, + "sourceData": { + "id": "myDocKey1", + "title": "high_doc", + "content": "hello world" + }, + "rerankerScore": 3.5, + "docKey": "myDocKey1" + }, + { + "type": "searchIndex", + "id": "83dd7d41", + "activitySource": 0, + "sourceData": { + "id": "myDocKey2", + "title": "low_doc", + "content": "goodbye world" + }, + "rerankerScore": 2.7, + "docKey": "myDocKey2" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsGet.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsGet.json new file mode 100644 index 000000000000..62755d8475ae --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsGet.json @@ -0,0 +1,40 @@ +{ + "operationId": "Documents_AutocompleteGet", + "title": "SearchIndexAutocompleteDocumentsGet", + "parameters": { + "endpoint": "https://myservice.search.windows.net", + "indexName": "myindex", + "api-version": "2025-11-01-preview", + "autocompleteMode": "oneTerm", + "search": "washington medic", + "suggesterName": "sg", + "filter": "search.in(docId,'101,102,105')", + "fuzzy": false, + "highlightPostTag": "", + "highlightPreTag": "", + "minimumCoverage": 80, + "searchFields": [ + "title", + "description" + ], + "top": 10 + }, + "responses": { + "200": { + "body": [ + { + "text": "medicaid", + "queryPlusText": "washington medicaid" + }, + { + "text": "medicare", + "queryPlusText": "washington medicare" + }, + { + "text": "medicine", + "queryPlusText": "washington medicine" + } + ] + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsPost.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsPost.json new file mode 100644 index 000000000000..1f6d0da6fe1e --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexAutocompleteDocumentsPost.json @@ -0,0 +1,39 @@ +{ + "operationId": "Documents_AutocompletePost", + "title": "SearchIndexAutocompleteDocumentsPost", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "body": { + "search": "p", + "autocompleteMode": "oneTerm", + "filter": "ownerId ne '1'", + "fuzzy": true, + "highlightPostTag": "", + "highlightPreTag": "", + "minimumCoverage": 80, + "searchFields": "category, ownerId", + "suggesterName": "sg", + "top": 10 + } + }, + "responses": { + "200": { + "body": { + "@search.coverage": 100.0, + "value": [ + { + "text": "purple", + "queryPlusText": "purple" + }, + { + "text": "pink", + "queryPlusText": "pink" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexCountDocuments.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexCountDocuments.json new file mode 100644 index 000000000000..af9ada5a889b --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexCountDocuments.json @@ -0,0 +1,15 @@ +{ + "operationId": "Documents_Count", + "title": "SearchIndexCountDocuments", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": 50 + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexGetDocument.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexGetDocument.json new file mode 100644 index 000000000000..f5a97cf1fd51 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexGetDocument.json @@ -0,0 +1,31 @@ +{ + "operationId": "Documents_Get", + "title": "SearchIndexGetDocument", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "key": "1", + "$select": [ + "id", + "description", + "name", + "category", + "ownerId" + ], + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "x-ms-query-source-authorization": "00000000-0000-0000-0000-000000000000", + "x-ms-enable-elevated-read": true + }, + "responses": { + "200": { + "body": { + "id": "1", + "name": "test", + "description": "test1 hello", + "category": "purple", + "ownerId": "sam" + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexIndexDocuments.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexIndexDocuments.json new file mode 100644 index 000000000000..bfba4226a626 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexIndexDocuments.json @@ -0,0 +1,3856 @@ +{ + "operationId": "Documents_Index", + "title": "SearchIndexIndexDocuments", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "batch": { + "value": [ + { + "@search.action": "mergeOrUpload", + "id": "0", + "name": "test", + "description": "test0 hello", + "vector1": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 + ], + "vector1b": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19 + ], + "vector2": [ + 0, + 1, + 2, + 3, + 4 + ], + "vector3": [ + 0, + 1, + 2, + 3, + 4 + ], + "vector22": [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ], + "ownerId": "benny", + "category": "purple", + "price": 0 + }, + { + "@search.action": "mergeOrUpload", + "id": "1", + "name": "test", + "description": "test1 hello", + "vector1": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "vector1b": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20 + ], + "vector2": [ + 1, + 2, + 3, + 4, + 5 + ], + "vector3": [ + 1, + 2, + 3, + 4, + 5 + ], + "vector22": [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ], + "ownerId": "sam", + "category": "purple", + "price": 1 + }, + { + "@search.action": "mergeOrUpload", + "id": "2", + "name": "test", + "description": "test2 hello", + "vector1": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + "vector1b": [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + "vector2": [ + 2, + 3, + 4, + 5, + 6 + ], + "vector3": [ + 2, + 3, + 4, + 5, + 6 + ], + "vector22": [ + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ], + "ownerId": "sam", + "category": "purple", + "price": 2 + }, + { + "@search.action": "mergeOrUpload", + "id": "3", + "name": "test", + "description": "test3 hello", + "vector1": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "vector1b": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22 + ], + "vector2": [ + 3, + 4, + 5, + 6, + 7 + ], + "vector3": [ + 3, + 4, + 5, + 6, + 7 + ], + "vector22": [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ], + "ownerId": "ryan", + "category": "purple", + "price": 3 + }, + { + "@search.action": "mergeOrUpload", + "id": "4", + "name": "test", + "description": "test4 hello", + "vector1": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "vector1b": [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "vector2": [ + 4, + 5, + 6, + 7, + 8 + ], + "vector3": [ + 4, + 5, + 6, + 7, + 8 + ], + "vector22": [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ], + "ownerId": "sam", + "category": "purple", + "price": 4 + }, + { + "@search.action": "mergeOrUpload", + "id": "5", + "name": "test", + "description": "test5 hello", + "vector1": [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "vector1b": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "vector2": [ + 5, + 6, + 7, + 8, + 9 + ], + "vector3": [ + 5, + 6, + 7, + 8, + 9 + ], + "vector22": [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ], + "ownerId": "sam", + "category": "purple", + "price": 5 + }, + { + "@search.action": "mergeOrUpload", + "id": "6", + "name": "test", + "description": "test6 hello", + "vector1": [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ], + "vector1b": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ], + "vector2": [ + 6, + 7, + 8, + 9, + 10 + ], + "vector3": [ + 6, + 7, + 8, + 9, + 10 + ], + "vector22": [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ], + "ownerId": "ryan", + "category": "purple", + "price": 6 + }, + { + "@search.action": "mergeOrUpload", + "id": "7", + "name": "test", + "description": "test7 hello", + "vector1": [ + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "vector1b": [ + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "vector2": [ + 7, + 8, + 9, + 10, + 11 + ], + "vector3": [ + 7, + 8, + 9, + 10, + 11 + ], + "vector22": [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "ownerId": "sam", + "category": "purple", + "price": 7 + }, + { + "@search.action": "mergeOrUpload", + "id": "8", + "name": "test", + "description": "test8 hello", + "vector1": [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27 + ], + "vector1b": [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27 + ], + "vector2": [ + 8, + 9, + 10, + 11, + 12 + ], + "vector3": [ + 8, + 9, + 10, + 11, + 12 + ], + "vector22": [ + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ], + "ownerId": "sam", + "category": "purple", + "price": 8 + }, + { + "@search.action": "mergeOrUpload", + "id": "9", + "name": "test", + "description": "test9 hello", + "vector1": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ], + "vector1b": [ + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28 + ], + "vector2": [ + 9, + 10, + 11, + 12, + 13 + ], + "vector3": [ + 9, + 10, + 11, + 12, + 13 + ], + "vector22": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ], + "ownerId": "ryan", + "category": "purple", + "price": 9 + }, + { + "@search.action": "mergeOrUpload", + "id": "10", + "name": "test", + "description": "test10 hello", + "vector1": [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ], + "vector1b": [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29 + ], + "vector2": [ + 10, + 11, + 12, + 13, + 14 + ], + "vector3": [ + 10, + 11, + 12, + 13, + 14 + ], + "vector22": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ], + "ownerId": "benny", + "category": "purple", + "price": 10 + }, + { + "@search.action": "mergeOrUpload", + "id": "11", + "name": "test", + "description": "test11 hello", + "vector1": [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ], + "vector1b": [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ], + "vector2": [ + 11, + 12, + 13, + 14, + 15 + ], + "vector3": [ + 11, + 12, + 13, + 14, + 15 + ], + "vector22": [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ], + "ownerId": "sam", + "category": "purple", + "price": 11 + }, + { + "@search.action": "mergeOrUpload", + "id": "12", + "name": "test", + "description": "test12 hello", + "vector1": [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ], + "vector1b": [ + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ], + "vector2": [ + 12, + 13, + 14, + 15, + 16 + ], + "vector3": [ + 12, + 13, + 14, + 15, + 16 + ], + "vector22": [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ], + "ownerId": "ryan", + "category": "purple", + "price": 12 + }, + { + "@search.action": "mergeOrUpload", + "id": "13", + "name": "test", + "description": "test13 hello", + "vector1": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ], + "vector1b": [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32 + ], + "vector2": [ + 13, + 14, + 15, + 16, + 17 + ], + "vector3": [ + 13, + 14, + 15, + 16, + 17 + ], + "vector22": [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ], + "ownerId": "sam", + "category": "purple", + "price": 13 + }, + { + "@search.action": "mergeOrUpload", + "id": "14", + "name": "test", + "description": "test14 hello", + "vector1": [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ], + "vector1b": [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33 + ], + "vector2": [ + 14, + 15, + 16, + 17, + 18 + ], + "vector3": [ + 14, + 15, + 16, + 17, + 18 + ], + "vector22": [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "ownerId": "sam", + "category": "purple", + "price": 14 + }, + { + "@search.action": "mergeOrUpload", + "id": "15", + "name": "test", + "description": "test15 hello", + "vector1": [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ], + "vector1b": [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34 + ], + "vector2": [ + 15, + 16, + 17, + 18, + 19 + ], + "vector3": [ + 15, + 16, + 17, + 18, + 19 + ], + "vector22": [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ], + "ownerId": "ryan", + "category": "purple", + "price": 15 + }, + { + "@search.action": "mergeOrUpload", + "id": "16", + "name": "test", + "description": "test16 hello", + "vector1": [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ], + "vector1b": [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35 + ], + "vector2": [ + 16, + 17, + 18, + 19, + 20 + ], + "vector3": [ + 16, + 17, + 18, + 19, + 20 + ], + "vector22": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "ownerId": "sam", + "category": "purple", + "price": 16 + }, + { + "@search.action": "mergeOrUpload", + "id": "17", + "name": "test", + "description": "test17 hello", + "vector1": [ + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "vector1b": [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36 + ], + "vector2": [ + 17, + 18, + 19, + 20, + 21 + ], + "vector3": [ + 17, + 18, + 19, + 20, + 21 + ], + "vector22": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ], + "ownerId": "sam", + "category": "purple", + "price": 17 + }, + { + "@search.action": "mergeOrUpload", + "id": "18", + "name": "test", + "description": "test18 hello", + "vector1": [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ], + "vector1b": [ + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37 + ], + "vector2": [ + 18, + 19, + 20, + 21, + 22 + ], + "vector3": [ + 18, + 19, + 20, + 21, + 22 + ], + "vector22": [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "ownerId": "ryan", + "category": "purple", + "price": 18 + }, + { + "@search.action": "mergeOrUpload", + "id": "19", + "name": "test", + "description": "test19 hello", + "vector1": [ + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ], + "vector1b": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ], + "vector2": [ + 19, + 20, + 21, + 22, + 23 + ], + "vector3": [ + 19, + 20, + 21, + 22, + 23 + ], + "vector22": [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ], + "ownerId": "sam", + "category": "purple", + "price": 19 + }, + { + "@search.action": "mergeOrUpload", + "id": "20", + "name": "test", + "description": "test20 hello", + "vector1": [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ], + "vector1b": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39 + ], + "vector2": [ + 20, + 21, + 22, + 23, + 24 + ], + "vector3": [ + 20, + 21, + 22, + 23, + 24 + ], + "vector22": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "ownerId": "benny", + "category": "purple", + "price": 20 + }, + { + "@search.action": "mergeOrUpload", + "id": "21", + "name": "test", + "description": "test21 hello", + "vector1": [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ], + "vector1b": [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40 + ], + "vector2": [ + 21, + 22, + 23, + 24, + 25 + ], + "vector3": [ + 21, + 22, + 23, + 24, + 25 + ], + "vector22": [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ], + "ownerId": "ryan", + "category": "purple", + "price": 21 + }, + { + "@search.action": "mergeOrUpload", + "id": "22", + "name": "test", + "description": "test22 hello", + "vector1": [ + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ], + "vector1b": [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41 + ], + "vector2": [ + 22, + 23, + 24, + 25, + 26 + ], + "vector3": [ + 22, + 23, + 24, + 25, + 26 + ], + "vector22": [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ], + "ownerId": "sam", + "category": "purple", + "price": 22 + }, + { + "@search.action": "mergeOrUpload", + "id": "23", + "name": "test", + "description": "test23 hello", + "vector1": [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ], + "vector1b": [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42 + ], + "vector2": [ + 23, + 24, + 25, + 26, + 27 + ], + "vector3": [ + 23, + 24, + 25, + 26, + 27 + ], + "vector22": [ + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ], + "ownerId": "sam", + "category": "purple", + "price": 23 + }, + { + "@search.action": "mergeOrUpload", + "id": "24", + "name": "test", + "description": "test24 hello", + "vector1": [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "vector1b": [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "vector2": [ + 24, + 25, + 26, + 27, + 28 + ], + "vector3": [ + 24, + 25, + 26, + 27, + 28 + ], + "vector22": [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ], + "ownerId": "ryan", + "category": "purple", + "price": 24 + }, + { + "@search.action": "mergeOrUpload", + "id": "25", + "name": "test", + "description": "test25 hello", + "vector1": [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ], + "vector1b": [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44 + ], + "vector2": [ + 25, + 26, + 27, + 28, + 29 + ], + "vector3": [ + 25, + 26, + 27, + 28, + 29 + ], + "vector22": [ + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ], + "ownerId": "sam", + "category": "pink", + "price": 25 + }, + { + "@search.action": "mergeOrUpload", + "id": "26", + "name": "test", + "description": "test26 hello", + "vector1": [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "vector1b": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "vector2": [ + 26, + 27, + 28, + 29, + 30 + ], + "vector3": [ + 26, + 27, + 28, + 29, + 30 + ], + "vector22": [ + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55 + ], + "ownerId": "sam", + "category": "pink", + "price": 26 + }, + { + "@search.action": "mergeOrUpload", + "id": "27", + "name": "test", + "description": "test27 hello", + "vector1": [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ], + "vector1b": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46 + ], + "vector2": [ + 27, + 28, + 29, + 30, + 31 + ], + "vector3": [ + 27, + 28, + 29, + 30, + 31 + ], + "vector22": [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ], + "ownerId": "ryan", + "category": "pink", + "price": 27 + }, + { + "@search.action": "mergeOrUpload", + "id": "28", + "name": "test", + "description": "test28 hello", + "vector1": [ + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "vector1b": [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "vector2": [ + 28, + 29, + 30, + 31, + 32 + ], + "vector3": [ + 28, + 29, + 30, + 31, + 32 + ], + "vector22": [ + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "ownerId": "sam", + "category": "pink", + "price": 28 + }, + { + "@search.action": "mergeOrUpload", + "id": "29", + "name": "test", + "description": "test29 hello", + "vector1": [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ], + "vector1b": [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48 + ], + "vector2": [ + 29, + 30, + 31, + 32, + 33 + ], + "vector3": [ + 29, + 30, + 31, + 32, + 33 + ], + "vector22": [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ], + "ownerId": "sam", + "category": "pink", + "price": 29 + }, + { + "@search.action": "mergeOrUpload", + "id": "30", + "name": "test", + "description": "test30 hello", + "vector1": [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "vector1b": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "vector2": [ + 30, + 31, + 32, + 33, + 34 + ], + "vector3": [ + 30, + 31, + 32, + 33, + 34 + ], + "vector22": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "ownerId": "benny", + "category": "pink", + "price": 30 + }, + { + "@search.action": "mergeOrUpload", + "id": "31", + "name": "test", + "description": "test31 hello", + "vector1": [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ], + "vector1b": [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50 + ], + "vector2": [ + 31, + 32, + 33, + 34, + 35 + ], + "vector3": [ + 31, + 32, + 33, + 34, + 35 + ], + "vector22": [ + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60 + ], + "ownerId": "sam", + "category": "pink", + "price": 31 + }, + { + "@search.action": "mergeOrUpload", + "id": "32", + "name": "test", + "description": "test32 hello", + "vector1": [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ], + "vector1b": [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ], + "vector2": [ + 32, + 33, + 34, + 35, + 36 + ], + "vector3": [ + 32, + 33, + 34, + 35, + 36 + ], + "vector22": [ + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "ownerId": "sam", + "category": "pink", + "price": 32 + }, + { + "@search.action": "mergeOrUpload", + "id": "33", + "name": "test", + "description": "test33 hello", + "vector1": [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ], + "vector1b": [ + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ], + "vector2": [ + 33, + 34, + 35, + 36, + 37 + ], + "vector3": [ + 33, + 34, + 35, + 36, + 37 + ], + "vector22": [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ], + "ownerId": "ryan", + "category": "pink", + "price": 33 + }, + { + "@search.action": "mergeOrUpload", + "id": "34", + "name": "test", + "description": "test34 hello", + "vector1": [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ], + "vector1b": [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ], + "vector2": [ + 34, + 35, + 36, + 37, + 38 + ], + "vector3": [ + 34, + 35, + 36, + 37, + 38 + ], + "vector22": [ + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "ownerId": "sam", + "category": "pink", + "price": 34 + }, + { + "@search.action": "mergeOrUpload", + "id": "35", + "name": "test", + "description": "test35 hello", + "vector1": [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ], + "vector1b": [ + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ], + "vector2": [ + 35, + 36, + 37, + 38, + 39 + ], + "vector3": [ + 35, + 36, + 37, + 38, + 39 + ], + "vector22": [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64 + ], + "ownerId": "sam", + "category": "pink", + "price": 35 + }, + { + "@search.action": "mergeOrUpload", + "id": "36", + "name": "test", + "description": "test36 hello", + "vector1": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55 + ], + "vector1b": [ + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55 + ], + "vector2": [ + 36, + 37, + 38, + 39, + 40 + ], + "vector3": [ + 36, + 37, + 38, + 39, + 40 + ], + "vector22": [ + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ], + "ownerId": "ryan", + "category": "pink", + "price": 36 + }, + { + "@search.action": "mergeOrUpload", + "id": "37", + "name": "test", + "description": "test37 hello", + "vector1": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ], + "vector1b": [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ], + "vector2": [ + 37, + 38, + 39, + 40, + 41 + ], + "vector3": [ + 37, + 38, + 39, + 40, + 41 + ], + "vector22": [ + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66 + ], + "ownerId": "sam", + "category": "pink", + "price": 37 + }, + { + "@search.action": "mergeOrUpload", + "id": "38", + "name": "test", + "description": "test38 hello", + "vector1": [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "vector1b": [ + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "vector2": [ + 38, + 39, + 40, + 41, + 42 + ], + "vector3": [ + 38, + 39, + 40, + 41, + 42 + ], + "vector22": [ + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67 + ], + "ownerId": "sam", + "category": "pink", + "price": 38 + }, + { + "@search.action": "mergeOrUpload", + "id": "39", + "name": "test", + "description": "test39 hello", + "vector1": [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ], + "vector1b": [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ], + "vector2": [ + 39, + 40, + 41, + 42, + 43 + ], + "vector3": [ + 39, + 40, + 41, + 42, + 43 + ], + "vector22": [ + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ], + "ownerId": "ryan", + "category": "pink", + "price": 39 + }, + { + "@search.action": "mergeOrUpload", + "id": "40", + "name": "test", + "description": "test40 hello", + "vector1": [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "vector1b": [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "vector2": [ + 40, + 41, + 42, + 43, + 44 + ], + "vector3": [ + 40, + 41, + 42, + 43, + 44 + ], + "vector22": [ + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ], + "ownerId": "benny", + "category": "green", + "price": 40 + }, + { + "@search.action": "mergeOrUpload", + "id": "41", + "name": "test", + "description": "test41 hello", + "vector1": [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60 + ], + "vector1b": [ + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60 + ], + "vector2": [ + 41, + 42, + 43, + 44, + 45 + ], + "vector3": [ + 41, + 42, + 43, + 44, + 45 + ], + "vector22": [ + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ], + "ownerId": "sam", + "category": "green", + "price": 41 + }, + { + "@search.action": "mergeOrUpload", + "id": "42", + "name": "test", + "description": "test42 hello", + "vector1": [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "vector1b": [ + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "vector2": [ + 42, + 43, + 44, + 45, + 46 + ], + "vector3": [ + 42, + 43, + 44, + 45, + 46 + ], + "vector22": [ + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ], + "ownerId": "ryan", + "category": "green", + "price": 42 + }, + { + "@search.action": "mergeOrUpload", + "id": "43", + "name": "test", + "description": "test43 hello", + "vector1": [ + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ], + "vector1b": [ + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ], + "vector2": [ + 43, + 44, + 45, + 46, + 47 + ], + "vector3": [ + 43, + 44, + 45, + 46, + 47 + ], + "vector22": [ + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + "ownerId": "sam", + "category": "green", + "price": 43 + }, + { + "@search.action": "mergeOrUpload", + "id": "44", + "name": "test", + "description": "test44 hello", + "vector1": [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "vector1b": [ + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "vector2": [ + 44, + 45, + 46, + 47, + 48 + ], + "vector3": [ + 44, + 45, + 46, + 47, + 48 + ], + "vector22": [ + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73 + ], + "ownerId": "sam", + "category": "green", + "price": 44 + }, + { + "@search.action": "mergeOrUpload", + "id": "45", + "name": "test", + "description": "test45 hello", + "vector1": [ + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64 + ], + "vector1b": [ + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64 + ], + "vector2": [ + 45, + 46, + 47, + 48, + 49 + ], + "vector3": [ + 45, + 46, + 47, + 48, + 49 + ], + "vector22": [ + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74 + ], + "ownerId": "ryan", + "category": "orange", + "price": 45 + }, + { + "@search.action": "mergeOrUpload", + "id": "46", + "name": "test", + "description": "test46 hello", + "vector1": [ + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ], + "vector1b": [ + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ], + "vector2": [ + 46, + 47, + 48, + 49, + 50 + ], + "vector3": [ + 46, + 47, + 48, + 49, + 50 + ], + "vector22": [ + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75 + ], + "ownerId": "sam", + "category": "orange", + "price": 46 + }, + { + "@search.action": "mergeOrUpload", + "id": "47", + "name": "test", + "description": "test47 hello", + "vector1": [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66 + ], + "vector1b": [ + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66 + ], + "vector2": [ + 47, + 48, + 49, + 50, + 51 + ], + "vector3": [ + 47, + 48, + 49, + 50, + 51 + ], + "vector22": [ + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76 + ], + "ownerId": "sam", + "category": "orange", + "price": 47 + }, + { + "@search.action": "mergeOrUpload", + "id": "no-vectors", + "name": "test", + "description": "no vector", + "ownerId": "sam", + "category": "purple" + }, + { + "@search.action": "mergeOrUpload", + "id": "empty-vectors", + "name": "test", + "description": "no vector", + "ownerId": "sam", + "category": "purple" + } + ] + } + }, + "responses": { + "200": { + "body": { + "value": [ + { + "key": "0", + "status": true, + "statusCode": 201 + }, + { + "key": "1", + "status": true, + "statusCode": 201 + }, + { + "key": "2", + "status": true, + "statusCode": 201 + }, + { + "key": "3", + "status": true, + "statusCode": 201 + }, + { + "key": "4", + "status": true, + "statusCode": 201 + }, + { + "key": "5", + "status": true, + "statusCode": 201 + }, + { + "key": "6", + "status": true, + "statusCode": 201 + }, + { + "key": "7", + "status": true, + "statusCode": 201 + }, + { + "key": "8", + "status": true, + "statusCode": 201 + }, + { + "key": "9", + "status": true, + "statusCode": 201 + }, + { + "key": "10", + "status": true, + "statusCode": 201 + }, + { + "key": "11", + "status": true, + "statusCode": 201 + }, + { + "key": "12", + "status": true, + "statusCode": 201 + }, + { + "key": "13", + "status": true, + "statusCode": 201 + }, + { + "key": "14", + "status": true, + "statusCode": 201 + }, + { + "key": "15", + "status": true, + "statusCode": 201 + }, + { + "key": "16", + "status": true, + "statusCode": 201 + }, + { + "key": "17", + "status": true, + "statusCode": 201 + }, + { + "key": "18", + "status": true, + "statusCode": 201 + }, + { + "key": "19", + "status": true, + "statusCode": 201 + }, + { + "key": "20", + "status": true, + "statusCode": 201 + }, + { + "key": "21", + "status": true, + "statusCode": 201 + }, + { + "key": "22", + "status": true, + "statusCode": 201 + }, + { + "key": "23", + "status": true, + "statusCode": 201 + }, + { + "key": "24", + "status": true, + "statusCode": 201 + }, + { + "key": "25", + "status": true, + "statusCode": 201 + }, + { + "key": "26", + "status": true, + "statusCode": 201 + }, + { + "key": "27", + "status": true, + "statusCode": 201 + }, + { + "key": "28", + "status": true, + "statusCode": 201 + }, + { + "key": "29", + "status": true, + "statusCode": 201 + }, + { + "key": "30", + "status": true, + "statusCode": 201 + }, + { + "key": "31", + "status": true, + "statusCode": 201 + }, + { + "key": "32", + "status": true, + "statusCode": 201 + }, + { + "key": "33", + "status": true, + "statusCode": 201 + }, + { + "key": "34", + "status": true, + "statusCode": 201 + }, + { + "key": "35", + "status": true, + "statusCode": 201 + }, + { + "key": "36", + "status": true, + "statusCode": 201 + }, + { + "key": "37", + "status": true, + "statusCode": 201 + }, + { + "key": "38", + "status": true, + "statusCode": 201 + }, + { + "key": "39", + "status": true, + "statusCode": 201 + }, + { + "key": "40", + "status": true, + "statusCode": 201 + }, + { + "key": "41", + "status": true, + "statusCode": 201 + }, + { + "key": "42", + "status": true, + "statusCode": 201 + }, + { + "key": "43", + "status": true, + "statusCode": 201 + }, + { + "key": "44", + "status": true, + "statusCode": 201 + }, + { + "key": "45", + "status": true, + "statusCode": 201 + }, + { + "key": "46", + "status": true, + "statusCode": 201 + }, + { + "key": "47", + "status": true, + "statusCode": 201 + }, + { + "key": "no-vectors", + "status": true, + "statusCode": 201 + }, + { + "key": "empty-vectors", + "status": true, + "statusCode": 201 + } + ] + } + }, + "207": { + "body": { + "value": [ + { + "key": "0", + "status": true, + "statusCode": 201 + }, + { + "key": "1", + "status": true, + "statusCode": 201 + }, + { + "key": "2", + "status": true, + "statusCode": 201 + }, + { + "key": "3", + "status": true, + "statusCode": 201 + }, + { + "key": "4", + "status": true, + "statusCode": 201 + }, + { + "key": "5", + "status": true, + "statusCode": 201 + }, + { + "key": "6", + "status": true, + "statusCode": 201 + }, + { + "key": "7", + "status": true, + "statusCode": 201 + }, + { + "key": "8", + "status": true, + "statusCode": 201 + }, + { + "key": "9", + "status": true, + "statusCode": 201 + }, + { + "key": "10", + "status": true, + "statusCode": 201 + }, + { + "key": "11", + "status": true, + "statusCode": 201 + }, + { + "key": "12", + "status": true, + "statusCode": 201 + }, + { + "key": "13", + "status": true, + "statusCode": 201 + }, + { + "key": "14", + "status": true, + "statusCode": 201 + }, + { + "key": "15", + "status": true, + "statusCode": 201 + }, + { + "key": "16", + "status": true, + "statusCode": 201 + }, + { + "key": "17", + "status": true, + "statusCode": 201 + }, + { + "key": "18", + "status": true, + "statusCode": 201 + }, + { + "key": "19", + "status": true, + "statusCode": 201 + }, + { + "key": "20", + "status": true, + "statusCode": 201 + }, + { + "key": "21", + "status": true, + "statusCode": 201 + }, + { + "key": "22", + "status": true, + "statusCode": 201 + }, + { + "key": "23", + "status": true, + "statusCode": 201 + }, + { + "key": "24", + "status": true, + "statusCode": 201 + }, + { + "key": "25", + "status": true, + "statusCode": 201 + }, + { + "key": "26", + "status": true, + "statusCode": 201 + }, + { + "key": "27", + "status": true, + "statusCode": 201 + }, + { + "key": "28", + "status": true, + "statusCode": 201 + }, + { + "key": "29", + "status": true, + "statusCode": 201 + }, + { + "key": "30", + "status": true, + "statusCode": 201 + }, + { + "key": "31", + "status": true, + "statusCode": 201 + }, + { + "key": "32", + "status": true, + "statusCode": 201 + }, + { + "key": "33", + "status": true, + "statusCode": 201 + }, + { + "key": "34", + "status": true, + "statusCode": 201 + }, + { + "key": "35", + "status": true, + "statusCode": 201 + }, + { + "key": "36", + "status": true, + "statusCode": 201 + }, + { + "key": "37", + "status": true, + "statusCode": 201 + }, + { + "key": "38", + "status": true, + "statusCode": 201 + }, + { + "key": "39", + "status": true, + "statusCode": 201 + }, + { + "key": "40", + "status": true, + "statusCode": 201 + }, + { + "key": "41", + "status": true, + "statusCode": 201 + }, + { + "key": "42", + "status": true, + "statusCode": 201 + }, + { + "key": "43", + "status": true, + "statusCode": 201 + }, + { + "key": "44", + "status": true, + "statusCode": 201 + }, + { + "key": "45", + "status": true, + "statusCode": 201 + }, + { + "key": "46", + "status": true, + "statusCode": 201 + }, + { + "key": "47", + "status": true, + "statusCode": 201 + }, + { + "key": "no-vectors", + "status": true, + "statusCode": 201 + }, + { + "key": "empty-vectors", + "status": true, + "statusCode": 201 + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsGet.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsGet.json new file mode 100644 index 000000000000..7e702dd46109 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsGet.json @@ -0,0 +1,133 @@ +{ + "operationId": "Documents_SearchGet", + "title": "SearchIndexSearchDocumentsGet", + "parameters": { + "endpoint": "https://myservice.search.windows.net", + "indexName": "myindex", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "x-ms-query-source-authorization": "AZURE_AD_ACCESS_TOKEN", + "x-ms-enable-elevated-read": true, + "$count": true, + "facet": [ + "category,count:10,sort:count" + ], + "$filter": "rating gt 10", + "highlight": [ + "title" + ], + "highlightPostTag": "", + "highlightPreTag": "", + "minimumCoverage": 80, + "$orderby": [ + "search.score() desc", + "rating desc" + ], + "queryType": "simple", + "sessionId": "mysessionid", + "scoringStatistics": "global", + "scoringParameters": [ + "currentLocation--122.123,44.77233" + ], + "scoringProfile": "sp", + "search": "nice hotels", + "searchFields": [ + "title", + "description" + ], + "searchMode": "any", + "$select": [ + "docId", + "title", + "description" + ], + "$skip": 100, + "$top": 10 + }, + "responses": { + "200": { + "body": { + "@odata.count": 25, + "@search.coverage": 80, + "@search.facets": { + "category": [ + { + "count": 1, + "value": "Economy" + }, + { + "count": 1, + "value": "Luxury" + } + ] + }, + "value": [ + { + "@search.score": 1.5, + "@search.highlights": { + "title": [ + "Nice Hotel" + ] + }, + "description": "Cheapest hotel in town", + "docId": "1", + "title": "Nice Hotel" + }, + { + "@search.score": 0.7, + "@search.highlights": { + "title": [ + "Fancy Hotel" + ] + }, + "description": "Best hotel in town", + "docId": "2", + "title": "Fancy Hotel" + } + ] + } + }, + "206": { + "body": { + "@odata.count": 25, + "@search.coverage": 80, + "@search.facets": { + "category": [ + { + "count": 1, + "value": "Economy" + }, + { + "count": 1, + "value": "Luxury" + } + ] + }, + "value": [ + { + "@search.score": 1.5, + "@search.highlights": { + "title": [ + "Nice Hotel" + ] + }, + "description": "Cheapest hotel in town", + "docId": "1", + "title": "Nice Hotel" + }, + { + "@search.score": 0.7, + "@search.highlights": { + "title": [ + "Fancy Hotel" + ] + }, + "description": "Best hotel in town", + "docId": "2", + "title": "Fancy Hotel" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsPost.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsPost.json new file mode 100644 index 000000000000..6b63ff5e7598 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsPost.json @@ -0,0 +1,820 @@ +{ + "operationId": "Documents_SearchPost", + "title": "SearchIndexSearchDocumentsPost", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "x-ms-query-source-authorization": "00000000-0000-0000-0000-000000000000", + "x-ms-enable-elevated-read": true, + "body": { + "count": true, + "facets": [ + "ownerId", + "price,metric:sum,default:10" + ], + "filter": "category eq 'purple' or category eq 'pink'", + "highlight": "category", + "highlightPostTag": "", + "highlightPreTag": "", + "minimumCoverage": 100, + "queryType": "semantic", + "scoringStatistics": "global", + "sessionId": "mysessionid", + "scoringParameters": [ + "categoryTag:desiredCategoryValue" + ], + "scoringProfile": "stringFieldBoost", + "debug": "vector", + "search": "purple", + "searchFields": "id,name,description,category,ownerId", + "searchMode": "any", + "queryLanguage": "en-us", + "speller": "lexicon", + "select": "id,name,description,category,ownerId", + "skip": 0, + "top": 10, + "semanticConfiguration": "testconfig", + "semanticErrorHandling": "partial", + "semanticMaxWaitInMilliseconds": 5000, + "semanticQuery": "find all purple", + "answers": "extractive", + "captions": "extractive", + "queryRewrites": "generative", + "vectorQueries": [ + { + "vector": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "kind": "vector", + "k": 50, + "fields": "vector22, vector1b", + "oversampling": 20, + "weight": 1, + "threshold": { + "value": 0.984, + "kind": "vectorSimilarity" + }, + "filterOverride": "ownerId eq 'sam'" + } + ], + "vectorFilterMode": "preFilter", + "hybridSearch": { + "maxTextRecallSize": 100, + "countAndFacetMode": "countAllResults" + } + } + }, + "responses": { + "200": { + "body": { + "@odata.count": 27, + "@search.coverage": 100.0, + "@search.facets": { + "ownerId": [ + { + "count": 16, + "value": "sam" + }, + { + "count": 8, + "value": "ryan" + }, + { + "count": 3, + "value": "benny" + } + ], + "price": [ + { + "sum": 320.0 + } + ] + }, + "@search.answers": [], + "value": [ + { + "@search.score": 0.015625, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.7178425788879395, + "@search.rerankerBoostedScore": 1.7178425788879395, + "@search.captions": [ + { + "text": "test10 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 27.725889205932617 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "10", + "name": "test", + "description": "test10 hello", + "category": "purple", + "ownerId": "benny" + }, + { + "@search.score": 0.012820512987673283, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.7079174518585205, + "@search.rerankerBoostedScore": 1.7079174518585205, + "@search.captions": [ + { + "text": "no vector.", + "highlights": "no vector." + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 21.559860229492188 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "empty-vectors", + "name": "test", + "description": "no vector", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.011627906933426857, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.7079174518585205, + "@search.rerankerBoostedScore": 1.7079174518585205, + "@search.captions": [ + { + "text": "no vector.", + "highlights": "no vector." + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "no-vectors", + "name": "test", + "description": "no vector", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.011904762126505375, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6994102001190186, + "@search.rerankerBoostedScore": 1.6994102001190186, + "@search.captions": [ + { + "text": "test4 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "4", + "name": "test", + "description": "test4 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.012345679104328156, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6937386989593506, + "@search.rerankerBoostedScore": 1.6937386989593506, + "@search.captions": [ + { + "text": "test2 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "2", + "name": "test", + "description": "test2 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.0117647061124444, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6923208236694336, + "@search.rerankerBoostedScore": 1.6923208236694336, + "@search.captions": [ + { + "text": "test5 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "5", + "name": "test", + "description": "test5 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.01666666753590107, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.691611886024475, + "@search.rerankerBoostedScore": 1.691611886024475, + "@search.captions": [ + { + "text": "test7 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 39.23316955566406 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "7", + "name": "test", + "description": "test7 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.013698630034923553, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6781420707702637, + "@search.rerankerBoostedScore": 1.6781420707702637, + "@search.captions": [ + { + "text": "test0 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 21.559860229492188 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "0", + "name": "test", + "description": "test0 hello", + "category": "purple", + "ownerId": "benny" + }, + { + "@search.score": 0.013888888992369175, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6653810739517212, + "@search.rerankerBoostedScore": 1.6653810739517212, + "@search.captions": [ + { + "text": "test8 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 23.01456642150879 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "8", + "name": "test", + "description": "test8 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.012658228166401386, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6618363857269287, + "@search.rerankerBoostedScore": 1.6618363857269287, + "@search.captions": [ + { + "text": "test11 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "11", + "name": "test", + "description": "test11 hello", + "category": "purple", + "ownerId": "sam" + } + ] + } + }, + "206": { + "body": { + "@odata.count": 27, + "@search.coverage": 100.0, + "@search.facets": { + "ownerId": [ + { + "count": 16, + "value": "sam" + }, + { + "count": 8, + "value": "ryan" + }, + { + "count": 3, + "value": "benny" + } + ], + "price": [ + { + "sum": 320.0 + } + ] + }, + "@search.answers": [], + "value": [ + { + "@search.score": 0.015625, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.7178425788879395, + "@search.rerankerBoostedScore": 1.7178425788879395, + "@search.captions": [ + { + "text": "test10 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 27.725889205932617 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "10", + "name": "test", + "description": "test10 hello", + "category": "purple", + "ownerId": "benny" + }, + { + "@search.score": 0.012820512987673283, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.7079174518585205, + "@search.rerankerBoostedScore": 1.7079174518585205, + "@search.captions": [ + { + "text": "no vector.", + "highlights": "no vector." + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 21.559860229492188 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "empty-vectors", + "name": "test", + "description": "no vector", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.011627906933426857, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.7079174518585205, + "@search.rerankerBoostedScore": 1.7079174518585205, + "@search.captions": [ + { + "text": "no vector.", + "highlights": "no vector." + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "no-vectors", + "name": "test", + "description": "no vector", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.011904762126505375, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6994102001190186, + "@search.rerankerBoostedScore": 1.6994102001190186, + "@search.captions": [ + { + "text": "test4 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "4", + "name": "test", + "description": "test4 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.012345679104328156, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6937386989593506, + "@search.rerankerBoostedScore": 1.6937386989593506, + "@search.captions": [ + { + "text": "test2 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "2", + "name": "test", + "description": "test2 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.0117647061124444, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6923208236694336, + "@search.rerankerBoostedScore": 1.6923208236694336, + "@search.captions": [ + { + "text": "test5 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "5", + "name": "test", + "description": "test5 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.01666666753590107, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.691611886024475, + "@search.rerankerBoostedScore": 1.691611886024475, + "@search.captions": [ + { + "text": "test7 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 39.23316955566406 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "7", + "name": "test", + "description": "test7 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.013698630034923553, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6781420707702637, + "@search.rerankerBoostedScore": 1.6781420707702637, + "@search.captions": [ + { + "text": "test0 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 21.559860229492188 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "0", + "name": "test", + "description": "test0 hello", + "category": "purple", + "ownerId": "benny" + }, + { + "@search.score": 0.013888888992369175, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6653810739517212, + "@search.rerankerBoostedScore": 1.6653810739517212, + "@search.captions": [ + { + "text": "test8 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 23.01456642150879 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "8", + "name": "test", + "description": "test8 hello", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.score": 0.012658228166401386, + "@search.highlights": { + "category": [ + "purple" + ] + }, + "@search.rerankerScore": 1.6618363857269287, + "@search.rerankerBoostedScore": 1.6618363857269287, + "@search.captions": [ + { + "text": "test11 hello.", + "highlights": "" + } + ], + "@search.documentDebugInfo": { + "vectors": { + "subscores": { + "documentBoost": 1.0, + "text": { + "searchScore": 6.500757217407227 + }, + "vectors": [ + {} + ] + } + } + }, + "id": "11", + "name": "test", + "description": "test11 hello", + "category": "purple", + "ownerId": "sam" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticGet.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticGet.json new file mode 100644 index 000000000000..b0ff6ad39cc8 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticGet.json @@ -0,0 +1,87 @@ +{ + "operationId": "Documents_SearchGet", + "title": "SearchIndexSearchDocumentsSemanticGet", + "parameters": { + "endpoint": "https://myservice.search.windows.net", + "indexName": "myindex", + "api-version": "2025-11-01-preview", + "$count": true, + "highlightPostTag": "", + "highlightPreTag": "", + "queryType": "semantic", + "search": "how do clouds form", + "semanticConfiguration": "my-semantic-config", + "answers": "extractive|count-3", + "captions": "extractive|highlight-true", + "semanticErrorHandling": "partial", + "semanticMaxWaitInMilliseconds": 780 + }, + "responses": { + "200": { + "body": { + "@odata.count": 25, + "@search.answers": [ + { + "key": "4123", + "text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "score": 0.94639826 + } + ], + "value": [ + { + "@search.score": 0.5479723, + "@search.rerankerScore": 1.0321671911515296, + "@search.captions": [ + { + "text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.", + "highlights": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America." + } + ], + "id": "4123", + "title": "Earth Atmosphere", + "content": "Fog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n", + "locations": [ + "Pacific Northwest", + "North America", + "Vancouver" + ] + } + ] + } + }, + "206": { + "body": { + "@odata.count": 25, + "@search.answers": [ + { + "key": "4123", + "text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "score": 0.94639826 + } + ], + "value": [ + { + "@search.score": 0.5479723, + "@search.rerankerScore": 1.0321671911515296, + "@search.captions": [ + { + "text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.", + "highlights": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America." + } + ], + "id": "4123", + "title": "Earth Atmosphere", + "content": "Fog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n", + "locations": [ + "Pacific Northwest", + "North America", + "Vancouver" + ] + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticPost.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticPost.json new file mode 100644 index 000000000000..5e166522badc --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSearchDocumentsSemanticPost.json @@ -0,0 +1,119 @@ +{ + "operationId": "Documents_SearchPost", + "title": "SearchIndexSearchDocumentsSemanticPost", + "parameters": { + "endpoint": "https://myservice.search.windows.net", + "indexName": "myindex", + "api-version": "2025-11-01-preview", + "body": { + "count": true, + "highlightPostTag": "", + "highlightPreTag": "", + "queryType": "semantic", + "search": "how do clouds form", + "semanticConfiguration": "my-semantic-config", + "answers": "extractive|count-3", + "captions": "extractive|highlight-true", + "semanticErrorHandling": "partial", + "semanticMaxWaitInMilliseconds": 780 + } + }, + "responses": { + "200": { + "body": { + "@odata.count": 25, + "@search.answers": [ + { + "key": "4123", + "text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "score": 0.94639826 + } + ], + "@search.nextPageParameters": { + "count": true, + "highlightPostTag": "", + "highlightPreTag": "", + "queryType": "semantic", + "search": "how do clouds form", + "semanticConfiguration": "my-semantic-config", + "answers": "extractive|count-3", + "captions": "extractive|highlight-true", + "semanticErrorHandling": "partial", + "semanticMaxWaitInMilliseconds": 780, + "skip": 2, + "top": 8 + }, + "value": [ + { + "@search.score": 0.5479723, + "@search.rerankerScore": 1.0321671911515296, + "@search.captions": [ + { + "text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.", + "highlights": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America." + } + ], + "id": "4123", + "title": "Earth Atmosphere", + "content": "Fog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n", + "locations": [ + "Pacific Northwest", + "North America", + "Vancouver" + ] + } + ], + "@odata.nextLink": "https://myservice.search.windows.net/indexes('myindex')/docs/search.post.search?api-version=2025-05-01-preview" + } + }, + "206": { + "body": { + "@odata.count": 25, + "@search.answers": [ + { + "key": "4123", + "text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case), but not where it is descending (over the river).", + "score": 0.94639826 + } + ], + "@search.nextPageParameters": { + "count": true, + "highlightPostTag": "", + "highlightPreTag": "", + "queryType": "semantic", + "search": "how do clouds form", + "semanticConfiguration": "my-semantic-config", + "answers": "extractive|count-3", + "captions": "extractive|highlight-true", + "semanticErrorHandling": "partial", + "semanticMaxWaitInMilliseconds": 780, + "skip": 2, + "top": 8 + }, + "value": [ + { + "@search.score": 0.5479723, + "@search.rerankerScore": 1.0321671911515296, + "@search.captions": [ + { + "text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.", + "highlights": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America." + } + ], + "id": "4123", + "title": "Earth Atmosphere", + "content": "Fog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n", + "locations": [ + "Pacific Northwest", + "North America", + "Vancouver" + ] + } + ], + "@odata.nextLink": "https://myservice.search.windows.net/indexes('myindex')/docs/search.post.search?api-version=2025-05-01-preview" + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsGet.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsGet.json new file mode 100644 index 000000000000..e83526263df9 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsGet.json @@ -0,0 +1,49 @@ +{ + "operationId": "Documents_SuggestGet", + "title": "SearchIndexSuggestDocumentsGet", + "parameters": { + "endpoint": "https://myservice.search.windows.net", + "indexName": "myindex", + "api-version": "2025-11-01-preview", + "$filter": "rating gt 10", + "fuzzy": false, + "highlightPostTag": "", + "highlightPreTag": "", + "minimumCoverage": 80, + "$orderby": [ + "search.score() desc", + "rating desc" + ], + "search": "hote", + "searchFields": [ + "title" + ], + "suggesterName": "sg", + "$select": [ + "docId", + "title", + "description" + ], + "$top": 10 + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@search.text": "Nice Hotel", + "description": "Cheapest hotel in town", + "docId": "1", + "title": "Nice Hotel" + }, + { + "@search.text": "Fancy Hotel", + "description": "Best hotel in town", + "docId": "2", + "title": "Fancy Hotel" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsPost.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsPost.json new file mode 100644 index 000000000000..5f75e84ccb39 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchIndexSuggestDocumentsPost.json @@ -0,0 +1,60 @@ +{ + "operationId": "Documents_SuggestPost", + "title": "SearchIndexSuggestDocumentsPost", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "body": { + "filter": "ownerId eq 'sam' and id lt '15'", + "fuzzy": true, + "highlightPostTag": "", + "highlightPreTag": "", + "minimumCoverage": 80, + "orderby": "id desc", + "search": "p", + "searchFields": "category", + "select": "id,name,category,ownerId", + "suggesterName": "sg", + "top": 10 + } + }, + "responses": { + "200": { + "body": { + "@search.coverage": 100.0, + "value": [ + { + "@search.text": "purple", + "id": "14", + "name": "test", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.text": "purple", + "id": "13", + "name": "test", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.text": "purple", + "id": "11", + "name": "test", + "category": "purple", + "ownerId": "sam" + }, + { + "@search.text": "purple", + "id": "1", + "name": "test", + "category": "purple", + "ownerId": "sam" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateAlias.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateAlias.json new file mode 100644 index 000000000000..90efedba46ad --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateAlias.json @@ -0,0 +1,26 @@ +{ + "operationId": "Aliases_Create", + "title": "SearchServiceCreateAlias", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "alias": { + "name": "tempalias", + "indexes": [ + "preview-test" + ], + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "201": { + "body": { + "name": "tempalias", + "indexes": [ + "preview-test" + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateDataSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateDataSource.json new file mode 100644 index 000000000000..afae76cb7af9 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateDataSource.json @@ -0,0 +1,64 @@ +{ + "operationId": "DataSources_Create", + "title": "SearchServiceCreateDataSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "dataSource": { + "name": "tempdatasource", + "description": "My Azure Blob data source.", + "type": "azureblob", + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "doc-extraction-skillset", + "query": "E2E_Dsat" + }, + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + }, + "dataChangeDetectionPolicy": { + "highWaterMarkColumnName": "metadata_storage_last_modified", + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy" + }, + "dataDeletionDetectionPolicy": { + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true", + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy" + }, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempdatasource", + "description": "My Azure Blob data source.", + "type": "azureblob", + "indexerPermissionOptions": [], + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "doc-extraction-skillset", + "query": "E2E_Dsat" + }, + "dataChangeDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy", + "highWaterMarkColumnName": "metadata_storage_last_modified" + }, + "dataDeletionDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy", + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true" + }, + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndex.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndex.json new file mode 100644 index 000000000000..5680442ade41 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndex.json @@ -0,0 +1,860 @@ +{ + "operationId": "Indexes_Create", + "title": "SearchServiceCreateIndex", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "index": { + "name": "temp-preview-test", + "description": "description", + "fields": [ + { + "name": "id", + "type": "Edm.String", + "key": true, + "sortable": true + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 20, + "vectorSearchProfile": "config1" + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 10, + "vectorSearchProfile": "config2" + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 5, + "vectorSearchProfile": "config3" + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 5, + "vectorSearchProfile": "config3" + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 10, + "vectorSearchProfile": "config2" + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 32, + "vectorSearchProfile": "config4" + }, + { + "name": "name", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "en.lucene" + }, + { + "name": "description", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "standard.lucene" + }, + { + "name": "category", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "en.lucene" + }, + { + "name": "ownerId", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "en.lucene" + }, + { + "name": "price", + "type": "Edm.Double", + "retrievable": true, + "filterable": true, + "sortable": true, + "facetable": true + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "retrievable": true, + "filterable": true, + "sortable": false, + "facetable": true, + "permissionFilter": "userIds" + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "retrievable": true, + "filterable": true, + "sortable": false, + "facetable": true, + "sensitivityLabel": true + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "text": { + "weights": { + "name": 3, + "description": 1, + "category": 2, + "ownerId": 1 + } + }, + "functions": [ + { + "tag": { + "tagsParameter": "categoryTag" + }, + "type": "tag", + "fieldName": "category", + "boost": 2 + } + ] + } + ], + "defaultScoringProfile": "stringFieldBoost", + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ], + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer" + } + ], + "tokenizers": [ + { + "maxTokenLength": 100, + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer" + } + ], + "tokenFilters": [ + { + "preserveOriginal": false, + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter" + } + ], + "charFilters": [ + { + "mappings": [ + ".=>,", + "_=>-" + ], + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping" + } + ], + "normalizers": [ + { + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ], + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer" + } + ], + "similarity": { + "k1": 10, + "b": 0.1, + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity" + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + }, + "rankingOrder": "BoostedRerankerScore", + "flightingOptIn": true + } + ] + }, + "vectorSearch": { + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "algorithms": [ + { + "hnswParameters": { + "metric": "cosine" + }, + "name": "cosine", + "kind": "hnsw" + }, + { + "hnswParameters": { + "metric": "euclidean" + }, + "name": "euclidean", + "kind": "hnsw" + }, + { + "hnswParameters": { + "metric": "dotProduct" + }, + "name": "dotProduct", + "kind": "hnsw" + } + ], + "vectorizers": [ + { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "name": "openai", + "kind": "azureOpenAI" + }, + { + "customWebApiParameters": { + "uri": "https://my-custom-endpoint.org/", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "httpMethod": "POST", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + }, + "name": "custom-web-api", + "kind": "customWebApi" + }, + { + "amlParameters": { + "uri": "https://my-custom-endpoint.org/", + "resourceId": "aml resource id", + "timeout": "PT1M", + "region": "aml region", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + }, + "name": "aml", + "kind": "aml" + }, + { + "amlParameters": { + "uri": "https://my-custom-endpoint.org/", + "resourceId": "aml resource id", + "timeout": "PT1M", + "region": "aml region", + "modelName": "Cohere-embed-v4" + }, + "name": "aml-cohere", + "kind": "aml" + } + ], + "compressions": [ + { + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "name": "mySQ8", + "kind": "scalarQuantization", + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10, + "rescoreStorageMethod": "preserveOriginals" + }, + "truncationDimension": 2 + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10, + "rescoreStorageMethod": "preserveOriginals" + }, + "truncationDimension": 2 + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10, + "rescoreStorageMethod": "discardOriginals" + }, + "truncationDimension": 2 + } + ] + }, + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "temp-preview-test", + "description": "description", + "defaultScoringProfile": "stringFieldBoost", + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "fields": [ + { + "name": "id", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": true, + "synonymMaps": [] + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 20, + "vectorSearchProfile": "config1", + "synonymMaps": [] + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 32, + "vectorSearchProfile": "config4", + "synonymMaps": [] + }, + { + "name": "name", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "description", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "standard.lucene", + "synonymMaps": [] + }, + { + "name": "category", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "ownerId", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "price", + "type": "Edm.Double", + "searchable": false, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "synonymMaps": [] + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "permissionFilter": "userIds", + "synonymMaps": [] + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "sensitivityLabel": true, + "synonymMaps": [] + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "functionAggregation": "sum", + "text": { + "weights": { + "name": 3.0, + "description": 1.0, + "category": 2.0, + "ownerId": 1.0 + } + }, + "functions": [ + { + "fieldName": "category", + "interpolation": "linear", + "type": "tag", + "boost": 2.0, + "tag": { + "tagsParameter": "categoryTag" + } + } + ] + } + ], + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer", + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ] + } + ], + "normalizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer", + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ] + } + ], + "tokenizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer", + "maxTokenLength": 100 + } + ], + "tokenFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter", + "preserveOriginal": false + } + ], + "charFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping", + "mappings": [ + ".=>,", + "_=>-" + ] + } + ], + "similarity": { + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity", + "k1": 10.0, + "b": 0.1 + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "flightingOptIn": true, + "rankingOrder": "BoostedRerankerScore", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + } + } + ] + }, + "vectorSearch": { + "algorithms": [ + { + "name": "cosine", + "kind": "hnsw", + "hnswParameters": { + "metric": "cosine", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "euclidean", + "kind": "hnsw", + "hnswParameters": { + "metric": "euclidean", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "dotProduct", + "kind": "hnsw", + "hnswParameters": { + "metric": "dotProduct", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + } + ], + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "vectorizers": [ + { + "name": "openai", + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + { + "name": "custom-web-api", + "kind": "customWebApi", + "customWebApiParameters": { + "httpMethod": "POST", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + }, + { + "name": "aml", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + } + }, + { + "name": "aml-cohere", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "Cohere-embed-v4" + } + } + ], + "compressions": [ + { + "name": "mySQ8", + "kind": "scalarQuantization", + "truncationDimension": 2, + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "discardOriginals" + } + } + ] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndexer.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndexer.json new file mode 100644 index 000000000000..f3899ae9b5f5 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateIndexer.json @@ -0,0 +1,138 @@ +{ + "operationId": "Indexers_Create", + "title": "SearchServiceCreateIndexer", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "indexer": { + "name": "myindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestdatasource", + "skillsetName": "myskillset", + "targetIndexName": "preview-test", + "schedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5, + "configuration": { + "parsingMode": "markdown", + "excludedFileNameExtensions": ".png,.mp4", + "indexedFileNameExtensions": ".docx,.pptx", + "failOnUnsupportedContentType": true, + "failOnUnprocessableDocument": false, + "indexStorageMetadataOnlyForOversizedDocuments": true, + "delimitedTextHeaders": "Header1,Header2", + "delimitedTextDelimiter": "|", + "firstLineContainsHeaders": true, + "markdownParsingSubmode": "oneToMany", + "markdownHeaderDepth": "h6", + "documentRoot": "/root", + "dataToExtract": "storageMetadata", + "imageAction": "none", + "allowSkillsetToReadFileData": false, + "pdfTextRotationAlgorithm": "none", + "executionEnvironment": "standard" + } + }, + "fieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "disabled": false, + "@odata.etag": "0x1234568AE7E58A1", + "cache": { + "storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "enableReprocessing": true, + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "myindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestdatasource", + "skillsetName": "myskillset", + "targetIndexName": "preview-test", + "disabled": false, + "schedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5, + "configuration": { + "parsingMode": "markdown", + "excludedFileNameExtensions": ".png,.mp4", + "indexedFileNameExtensions": ".docx,.pptx", + "failOnUnsupportedContentType": true, + "failOnUnprocessableDocument": false, + "indexStorageMetadataOnlyForOversizedDocuments": true, + "delimitedTextHeaders": "Header1,Header2", + "delimitedTextDelimiter": "|", + "firstLineContainsHeaders": true, + "markdownParsingSubmode": "oneToMany", + "markdownHeaderDepth": "h6", + "documentRoot": "/root", + "dataToExtract": "storageMetadata", + "imageAction": "none", + "allowSkillsetToReadFileData": false, + "pdfTextRotationAlgorithm": "none", + "executionEnvironment": "standard" + } + }, + "fieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "cache": { + "id": "00000000-0000-0000-0000-000000000000", + "enableReprocessing": true, + "storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeAgent.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeAgent.json new file mode 100644 index 000000000000..51e16e65e2bc --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeAgent.json @@ -0,0 +1,65 @@ +{ + "operationId": "KnowledgeAgents_Create", + "title": "SearchServiceCreateKnowledgeAgent", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeAgent": { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "apiKey": "myApiKey", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true, + "includeReferenceSourceData": true + } + ], + "retrievalInstructions": "Provide accurate and helpful information to customer queries.", + "outputConfiguration": { + "modality": "answerSynthesis" + } + } + }, + "responses": { + "201": { + "body": { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true, + "includeReferenceSourceData": true + } + ], + "retrievalInstructions": "Provide accurate and helpful information to customer queries.", + "outputConfiguration": { + "modality": "answerSynthesis" + }, + "eTag": "0x8D9A1234567890A" + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeBase.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeBase.json new file mode 100644 index 000000000000..81f4c90d356d --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeBase.json @@ -0,0 +1,85 @@ +{ + "operationId": "KnowledgeBases_Create", + "title": "SearchServiceCreateKnowledgeBase", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeBase": { + "name": "base-preview-test", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4.1-nano" + }, + "kind": "azureOpenAI" + } + ], + "retrievalReasoningEffort": { + "kind": "low" + }, + "outputMode": "extractiveData", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis." + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "base-preview-test", + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis.", + "outputMode": "extractiveData", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4.1-nano" + } + } + ], + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "retrievalReasoningEffort": { + "kind": "low" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSource.json new file mode 100644 index 000000000000..1c354bba5efa --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSource.json @@ -0,0 +1,77 @@ +{ + "operationId": "KnowledgeSources_Create", + "title": "SearchServiceCreateKnowledgeSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeSource": { + "searchIndexParameters": { + "searchIndexName": "preview-test", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + }, + "name": "ks-preview-test", + "description": "Description of the knowledge source.", + "kind": "searchIndex", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "searchIndex", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "searchIndexParameters": { + "searchIndexName": "preview-test", + "semanticConfigurationName": "testconfig", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceAzureBlob.json new file mode 100644 index 000000000000..107a63564eb5 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceAzureBlob.json @@ -0,0 +1,139 @@ +{ + "operationId": "KnowledgeSources_Create", + "title": "SearchServiceCreateKnowledgeSourceAzureBlob", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeSource": { + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "identity": { + "userAssignedIdentity": "/my/userassigned/id", + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "embeddingModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "kind": "azureOpenAI" + }, + "chatCompletionModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + }, + "disableImageVerbalization": false, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + }, + "name": "ks-preview-test", + "description": "Description of the knowledge source.", + "kind": "azureBlob", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "azureBlob", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedOneLake.json new file mode 100644 index 000000000000..d424949afe6f --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedOneLake.json @@ -0,0 +1,131 @@ +{ + "operationId": "KnowledgeSources_Create", + "title": "SearchServiceCreateKnowledgeSourceIndexedOneLake", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeSource": { + "indexedOneLakeParameters": { + "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "identity": { + "userAssignedIdentity": "/my/userassigned/id", + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "embeddingModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "kind": "azureOpenAI" + }, + "chatCompletionModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + }, + "disableImageVerbalization": false, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + }, + "name": "ks-preview-test", + "description": "Description of the OneLake knowledge source.", + "kind": "indexedOneLake", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedOneLake", + "description": "Description of the OneLake knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedOneLakeParameters": { + "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json new file mode 100644 index 000000000000..ebeeddffdd0e --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json @@ -0,0 +1,131 @@ +{ + "operationId": "KnowledgeSources_Create", + "title": "SearchServiceCreateKnowledgeSourceIndexedSharePoint", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeSource": { + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "identity": { + "userAssignedIdentity": "/my/userassigned/id", + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "embeddingModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "kind": "azureOpenAI" + }, + "chatCompletionModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + }, + "disableImageVerbalization": false, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + }, + "name": "ks-preview-test", + "description": "Description of the SharePoint knowledge source.", + "kind": "indexedSharePoint", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedSharePoint", + "description": "Description of the SharePoint knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceWeb.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceWeb.json new file mode 100644 index 000000000000..4624d23074db --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceWeb.json @@ -0,0 +1,87 @@ +{ + "operationId": "KnowledgeSources_Create", + "title": "SearchServiceCreateKnowledgeSourceWeb", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "knowledgeSource": { + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + }, + "name": "ks-preview-test", + "description": "Description of the knowledge source.", + "kind": "web", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "web", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateAlias.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateAlias.json new file mode 100644 index 000000000000..cee4bbc56f7b --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateAlias.json @@ -0,0 +1,38 @@ +{ + "operationId": "Aliases_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateAlias", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "aliasName": "myalias", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "alias": { + "name": "myalias", + "indexes": [ + "preview-test" + ], + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "200": { + "body": { + "name": "myalias", + "indexes": [ + "preview-test" + ] + } + }, + "201": { + "body": { + "name": "myalias", + "indexes": [ + "preview-test" + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateDataSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateDataSource.json new file mode 100644 index 000000000000..c004be55155a --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateDataSource.json @@ -0,0 +1,110 @@ +{ + "operationId": "DataSources_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateDataSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "dataSourceName": "tempdatasource", + "api-version": "2025-11-01-preview", + "ignoreResetRequirements": null, + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "dataSource": { + "name": "tempdatasource", + "description": "My Azure Adls Gen2 data source with ACLs.", + "type": "adlsgen2", + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "adls-gen2-doc-extraction-acl", + "query": "folder_has_final_acl" + }, + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + }, + "indexerPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "dataChangeDetectionPolicy": { + "highWaterMarkColumnName": "metadata_storage_last_modified", + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy" + }, + "dataDeletionDetectionPolicy": { + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true", + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy" + }, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempdatasource", + "description": "My Azure Adls Gen2 data source with ACLs.", + "type": "adlsgen2", + "indexerPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "adls-gen2-doc-extraction-acl", + "query": "folder_has_final_acl" + }, + "dataChangeDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy", + "highWaterMarkColumnName": "metadata_storage_last_modified" + }, + "dataDeletionDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy", + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true" + }, + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempdatasource", + "description": "My Azure Adls Gen2 data source with ACLs.", + "type": "adlsgen2", + "indexerPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "adls-gen2-doc-extraction-acl", + "query": "folder_has_final_acl" + }, + "dataChangeDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy", + "highWaterMarkColumnName": "metadata_storage_last_modified" + }, + "dataDeletionDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy", + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true" + }, + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndex.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndex.json new file mode 100644 index 000000000000..8a8ae2a28194 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndex.json @@ -0,0 +1,1327 @@ +{ + "operationId": "Indexes_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateIndex", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "temp-preview-test", + "allowIndexDowntime": null, + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "index": { + "name": "temp-preview-test", + "description": "description", + "fields": [ + { + "name": "id", + "type": "Edm.String", + "key": true, + "sortable": true + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 20, + "vectorSearchProfile": "config1" + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 10, + "vectorSearchProfile": "config2" + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 5, + "vectorSearchProfile": "config3" + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 5, + "vectorSearchProfile": "config3" + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 10, + "vectorSearchProfile": "config2" + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "retrievable": true, + "searchable": true, + "dimensions": 32, + "vectorSearchProfile": "config4" + }, + { + "name": "name", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "en.lucene" + }, + { + "name": "description", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "standard.lucene" + }, + { + "name": "category", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "en.lucene" + }, + { + "name": "ownerId", + "type": "Edm.String", + "retrievable": true, + "searchable": true, + "filterable": true, + "sortable": true, + "facetable": true, + "analyzer": "en.lucene" + }, + { + "name": "price", + "type": "Edm.Double", + "retrievable": true, + "filterable": true, + "sortable": true, + "facetable": true + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "retrievable": true, + "filterable": true, + "sortable": false, + "facetable": true, + "permissionFilter": "userIds" + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "retrievable": true, + "filterable": true, + "sortable": false, + "facetable": true, + "sensitivityLabel": true + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "text": { + "weights": { + "name": 3, + "description": 1, + "category": 2, + "ownerId": 1 + } + }, + "functions": [ + { + "tag": { + "tagsParameter": "categoryTag" + }, + "type": "tag", + "fieldName": "category", + "boost": 2 + } + ] + } + ], + "defaultScoringProfile": "stringFieldBoost", + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ], + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer" + } + ], + "tokenizers": [ + { + "maxTokenLength": 100, + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer" + } + ], + "tokenFilters": [ + { + "preserveOriginal": false, + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter" + } + ], + "charFilters": [ + { + "mappings": [ + ".=>,", + "_=>-" + ], + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping" + } + ], + "normalizers": [ + { + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ], + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer" + } + ], + "similarity": { + "k1": 10, + "b": 0.1, + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity" + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + }, + "rankingOrder": "BoostedRerankerScore", + "flightingOptIn": true + } + ] + }, + "vectorSearch": { + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "algorithms": [ + { + "hnswParameters": { + "metric": "cosine" + }, + "name": "cosine", + "kind": "hnsw" + }, + { + "hnswParameters": { + "metric": "euclidean" + }, + "name": "euclidean", + "kind": "hnsw" + }, + { + "hnswParameters": { + "metric": "dotProduct" + }, + "name": "dotProduct", + "kind": "hnsw" + } + ], + "vectorizers": [ + { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "name": "openai", + "kind": "azureOpenAI" + }, + { + "customWebApiParameters": { + "uri": "https://my-custom-endpoint.org/", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "httpMethod": "POST", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + }, + "name": "custom-web-api", + "kind": "customWebApi" + }, + { + "amlParameters": { + "uri": "https://my-custom-endpoint.org/", + "resourceId": "aml resource id", + "timeout": "PT1M", + "region": "aml region", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + }, + "name": "aml", + "kind": "aml" + }, + { + "amlParameters": { + "uri": "https://my-custom-endpoint.org/", + "resourceId": "aml resource id", + "timeout": "PT1M", + "region": "aml region", + "modelName": "Cohere-embed-v4" + }, + "name": "aml-cohere", + "kind": "aml" + } + ], + "compressions": [ + { + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "name": "mySQ8", + "kind": "scalarQuantization", + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10, + "rescoreStorageMethod": "preserveOriginals" + }, + "truncationDimension": 2 + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10, + "rescoreStorageMethod": "preserveOriginals" + }, + "truncationDimension": 2 + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10, + "rescoreStorageMethod": "discardOriginals" + }, + "truncationDimension": 2 + } + ] + }, + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "200": { + "body": { + "name": "temp-preview-test", + "description": "description", + "defaultScoringProfile": "stringFieldBoost", + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "fields": [ + { + "name": "id", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": true, + "synonymMaps": [] + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 20, + "vectorSearchProfile": "config1", + "synonymMaps": [] + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 32, + "vectorSearchProfile": "config4", + "synonymMaps": [] + }, + { + "name": "name", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "description", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "standard.lucene", + "synonymMaps": [] + }, + { + "name": "category", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "ownerId", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "price", + "type": "Edm.Double", + "searchable": false, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "synonymMaps": [] + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "permissionFilter": "userIds", + "synonymMaps": [] + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "sensitivityLabel": true, + "synonymMaps": [] + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "functionAggregation": "sum", + "text": { + "weights": { + "name": 3.0, + "description": 1.0, + "category": 2.0, + "ownerId": 1.0 + } + }, + "functions": [ + { + "fieldName": "category", + "interpolation": "linear", + "type": "tag", + "boost": 2.0, + "tag": { + "tagsParameter": "categoryTag" + } + } + ] + } + ], + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer", + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ] + } + ], + "normalizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer", + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ] + } + ], + "tokenizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer", + "maxTokenLength": 100 + } + ], + "tokenFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter", + "preserveOriginal": false + } + ], + "charFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping", + "mappings": [ + ".=>,", + "_=>-" + ] + } + ], + "similarity": { + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity", + "k1": 10.0, + "b": 0.1 + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "flightingOptIn": true, + "rankingOrder": "BoostedRerankerScore", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + } + } + ] + }, + "vectorSearch": { + "algorithms": [ + { + "name": "cosine", + "kind": "hnsw", + "hnswParameters": { + "metric": "cosine", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "euclidean", + "kind": "hnsw", + "hnswParameters": { + "metric": "euclidean", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "dotProduct", + "kind": "hnsw", + "hnswParameters": { + "metric": "dotProduct", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + } + ], + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "vectorizers": [ + { + "name": "openai", + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + { + "name": "custom-web-api", + "kind": "customWebApi", + "customWebApiParameters": { + "httpMethod": "POST", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + }, + { + "name": "aml", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + } + }, + { + "name": "aml-cohere", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "Cohere-embed-v4" + } + } + ], + "compressions": [ + { + "name": "mySQ8", + "kind": "scalarQuantization", + "truncationDimension": 2, + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "discardOriginals" + } + } + ] + } + } + }, + "201": { + "body": { + "name": "temp-preview-test", + "description": "description", + "defaultScoringProfile": "stringFieldBoost", + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "fields": [ + { + "name": "id", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": true, + "synonymMaps": [] + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 20, + "vectorSearchProfile": "config1", + "synonymMaps": [] + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 32, + "vectorSearchProfile": "config4", + "synonymMaps": [] + }, + { + "name": "name", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "description", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "standard.lucene", + "synonymMaps": [] + }, + { + "name": "category", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "ownerId", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "price", + "type": "Edm.Double", + "searchable": false, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "synonymMaps": [] + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "permissionFilter": "userIds", + "synonymMaps": [] + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "sensitivityLabel": true, + "synonymMaps": [] + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "functionAggregation": "sum", + "text": { + "weights": { + "name": 3.0, + "description": 1.0, + "category": 2.0, + "ownerId": 1.0 + } + }, + "functions": [ + { + "fieldName": "category", + "interpolation": "linear", + "type": "tag", + "boost": 2.0, + "tag": { + "tagsParameter": "categoryTag" + } + } + ] + } + ], + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer", + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ] + } + ], + "normalizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer", + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ] + } + ], + "tokenizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer", + "maxTokenLength": 100 + } + ], + "tokenFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter", + "preserveOriginal": false + } + ], + "charFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping", + "mappings": [ + ".=>,", + "_=>-" + ] + } + ], + "similarity": { + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity", + "k1": 10.0, + "b": 0.1 + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "flightingOptIn": true, + "rankingOrder": "BoostedRerankerScore", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + } + } + ] + }, + "vectorSearch": { + "algorithms": [ + { + "name": "cosine", + "kind": "hnsw", + "hnswParameters": { + "metric": "cosine", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "euclidean", + "kind": "hnsw", + "hnswParameters": { + "metric": "euclidean", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "dotProduct", + "kind": "hnsw", + "hnswParameters": { + "metric": "dotProduct", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + } + ], + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "vectorizers": [ + { + "name": "openai", + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + { + "name": "custom-web-api", + "kind": "customWebApi", + "customWebApiParameters": { + "httpMethod": "POST", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + }, + { + "name": "aml", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + } + }, + { + "name": "aml-cohere", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "Cohere-embed-v4" + } + } + ], + "compressions": [ + { + "name": "mySQ8", + "kind": "scalarQuantization", + "truncationDimension": 2, + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "discardOriginals" + } + } + ] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndexer.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndexer.json new file mode 100644 index 000000000000..2624b8dfe6b4 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateIndexer.json @@ -0,0 +1,140 @@ +{ + "operationId": "Indexers_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateIndexer", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myaclindexer", + "api-version": "2025-11-01-preview", + "ignoreResetRequirements": null, + "disableCacheReprocessingChangeDetection": null, + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "indexer": { + "name": "myaclindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestacldatasource", + "targetIndexName": "indexer-test-index", + "schedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5 + }, + "fieldMappings": [ + { + "sourceFieldName": "metadata_storage_title", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + }, + { + "sourceFieldName": "metadata_user_ids", + "targetFieldName": "permissionFilters" + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "disabled": false, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "myaclindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestacldatasource", + "targetIndexName": "indexer-test-index", + "disabled": false, + "schedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5, + "configuration": {} + }, + "fieldMappings": [ + { + "sourceFieldName": "metadata_storage_title", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + }, + { + "sourceFieldName": "metadata_user_ids", + "targetFieldName": "permissionFilters" + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ] + } + }, + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "myaclindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestacldatasource", + "targetIndexName": "indexer-test-index", + "disabled": false, + "schedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5, + "configuration": {} + }, + "fieldMappings": [ + { + "sourceFieldName": "metadata_storage_title", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + }, + { + "sourceFieldName": "metadata_user_ids", + "targetFieldName": "permissionFilters" + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeAgent.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeAgent.json new file mode 100644 index 000000000000..ea606db658b7 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeAgent.json @@ -0,0 +1,124 @@ +{ + "operationId": "KnowledgeAgents_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeAgent", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "agentName": "myagent", + "knowledgeAgent": { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "apiKey": "myApiKey", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true, + "includeReferenceSourceData": true, + "alwaysQuerySource": false, + "maxSubQueries": 5, + "rerankerThreshold": 0.7 + } + ], + "retrievalInstructions": "Provide accurate and helpful information to customer queries.", + "outputConfiguration": { + "modality": "answerSynthesis", + "answerInstructions": "Be concise and professional", + "attemptFastPath": true, + "includeActivity": true + }, + "requestLimits": { + "maxRuntimeInSeconds": 30, + "maxOutputSize": 4000 + } + } + }, + "responses": { + "200": { + "body": { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true, + "includeReferenceSourceData": true, + "alwaysQuerySource": false, + "maxSubQueries": 5, + "rerankerThreshold": 0.7 + } + ], + "retrievalInstructions": "Provide accurate and helpful information to customer queries.", + "outputConfiguration": { + "modality": "answerSynthesis", + "answerInstructions": "Be concise and professional", + "attemptFastPath": true, + "includeActivity": true + }, + "requestLimits": { + "maxRuntimeInSeconds": 30, + "maxOutputSize": 4000 + }, + "eTag": "0x8D9A1234567890A" + } + }, + "201": { + "body": { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true, + "includeReferenceSourceData": true, + "alwaysQuerySource": false, + "maxSubQueries": 5, + "rerankerThreshold": 0.7 + } + ], + "retrievalInstructions": "Provide accurate and helpful information to customer queries.", + "outputConfiguration": { + "modality": "answerSynthesis", + "answerInstructions": "Be concise and professional", + "attemptFastPath": true, + "includeActivity": true + }, + "requestLimits": { + "maxRuntimeInSeconds": 30, + "maxOutputSize": 4000 + }, + "eTag": "0x8D9A1234567890A" + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeBase.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeBase.json new file mode 100644 index 000000000000..81c562aaf2a9 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeBase.json @@ -0,0 +1,127 @@ +{ + "operationId": "KnowledgeBases_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeBase", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "knowledgeBaseName": "base-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "knowledgeBase": { + "name": "base-preview-test", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + } + ], + "retrievalReasoningEffort": { + "kind": "low" + }, + "outputMode": "extractiveData", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis." + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "base-preview-test", + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis.", + "outputMode": "extractiveData", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + } + ], + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "retrievalReasoningEffort": { + "kind": "low" + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "base-preview-test", + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis.", + "outputMode": "extractiveData", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + } + ], + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "retrievalReasoningEffort": { + "kind": "low" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSource.json new file mode 100644 index 000000000000..7e8e99f499b4 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSource.json @@ -0,0 +1,115 @@ +{ + "operationId": "KnowledgeSources_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "knowledgeSource": { + "searchIndexParameters": { + "searchIndexName": "preview-test", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ], + "semanticConfigurationName": "testconfig" + }, + "name": "ks-preview-test", + "description": "Description of the knowledge source.", + "kind": "searchIndex", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "searchIndex", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "searchIndexParameters": { + "searchIndexName": "preview-test", + "semanticConfigurationName": "testconfig", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ] + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "searchIndex", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "searchIndexParameters": { + "searchIndexName": "preview-test", + "semanticConfigurationName": "testconfig", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json new file mode 100644 index 000000000000..ba4ed6d5f5a8 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json @@ -0,0 +1,211 @@ +{ + "operationId": "KnowledgeSources_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "knowledgeSource": { + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "identity": { + "userAssignedIdentity": "/my/userassigned/id", + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "embeddingModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "kind": "azureOpenAI" + }, + "chatCompletionModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + }, + "disableImageVerbalization": false, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + }, + "name": "ks-preview-test", + "description": "Description of the knowledge source.", + "kind": "azureBlob", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "azureBlob", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "azureBlob", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json new file mode 100644 index 000000000000..7d084b6bbd61 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json @@ -0,0 +1,196 @@ +{ + "operationId": "KnowledgeSources_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "knowledgeSource": { + "indexedOneLakeParameters": { + "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "identity": { + "userAssignedIdentity": "/my/userassigned/id", + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "embeddingModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "kind": "azureOpenAI" + }, + "chatCompletionModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + }, + "disableImageVerbalization": false, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + }, + "name": "ks-preview-test", + "description": "Description of the OneLake knowledge source.", + "kind": "indexedOneLake", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedOneLake", + "description": "Description of the OneLake knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedOneLakeParameters": { + "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedOneLake", + "description": "Description of the OneLake knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedOneLakeParameters": { + "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json new file mode 100644 index 000000000000..917335c4c4a0 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json @@ -0,0 +1,196 @@ +{ + "operationId": "KnowledgeSources_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "knowledgeSource": { + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "identity": { + "userAssignedIdentity": "/my/userassigned/id", + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "embeddingModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + }, + "kind": "azureOpenAI" + }, + "chatCompletionModel": { + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + }, + "kind": "azureOpenAI" + }, + "disableImageVerbalization": false, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2025-01-07T19:30:00Z" + }, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + }, + "name": "ks-preview-test", + "description": "Description of the SharePoint knowledge source.", + "kind": "indexedSharePoint", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedSharePoint", + "description": "Description of the SharePoint knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedSharePoint", + "description": "Description of the SharePoint knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "model", + "apiKey": "api-key", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com/", + "deploymentId": "myDeployment", + "apiKey": "api-key", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "api-key" + } + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json new file mode 100644 index 000000000000..12563a3596b8 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json @@ -0,0 +1,130 @@ +{ + "operationId": "KnowledgeSources_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateKnowledgeSourceWeb", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "knowledgeSource": { + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + }, + "name": "ks-preview-test", + "description": "Description of the knowledge source.", + "kind": "web", + "@odata.etag": "0x1234568AE7E58A1", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "web", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "web", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSkillset.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSkillset.json new file mode 100644 index 000000000000..ab3d4d148edf --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSkillset.json @@ -0,0 +1,820 @@ +{ + "operationId": "Skillsets_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateSkillset", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "skillsetName": "tempskillset", + "api-version": "2025-11-01-preview", + "ignoreResetRequirements": null, + "disableCacheReprocessingChangeDetection": null, + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "skillset": { + "name": "tempskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "countryHint", + "source": "/document/countryHint" + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "textSplitMode": "pages", + "maximumPageLength": 4000, + "unit": "azureOpenAITokens", + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + }, + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "languageCode", + "source": "/document/languageCode" + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "languageCode", + "source": "/document/languageCode" + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "languageCode", + "source": "/document/languageCode" + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ] + }, + { + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "inputs": [ + { + "name": "file_data", + "source": "/document/content" + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "outputFormat": "text", + "outputMode": "oneToMany", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + }, + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "inputs": [ + { + "name": "file_data", + "source": "/document/content" + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ] + }, + { + "apiKey": "", + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "extraParametersBehavior": "error", + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}", + "required": [ + "steps", + "answer" + ], + "additionalProperties": false + } + } + }, + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "timeout": "PT30S", + "degreeOfParallelism": 5, + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "systemMessage", + "source": "/document/system_message" + }, + { + "name": "userMessage", + "source": "/document/user_message" + }, + { + "name": "image", + "source": "/document/normalized_images/*" + }, + { + "name": "imageDetail", + "source": "/document/detail" + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ] + }, + { + "extractionOptions": [ + "images", + "locationMetadata" + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + }, + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "inputs": [ + { + "name": "file_data", + "source": "/document/content" + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ] + } + ], + "cognitiveServices": { + "key": "myKey", + "subdomainUrl": "https://mySubdomainName.cognitiveservices.azure.com", + "@odata.type": "#Microsoft.Azure.Search.AIServicesByKey", + "description": "Description of the Azure AI service resource attached to a skillset" + }, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "countryHint", + "source": "/document/countryHint", + "inputs": [] + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "textSplitMode": "pages", + "maximumPageLength": 4000, + "unit": "azureOpenAITokens", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ], + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + } + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "outputMode": "oneToMany", + "outputFormat": "text", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + }, + { + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "timeout": "PT30S", + "degreeOfParallelism": 5, + "apiKey": "", + "extraParametersBehavior": "error", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "systemMessage", + "source": "/document/system_message", + "inputs": [] + }, + { + "name": "userMessage", + "source": "/document/user_message", + "inputs": [] + }, + { + "name": "image", + "source": "/document/normalized_images/*", + "inputs": [] + }, + { + "name": "imageDetail", + "source": "/document/detail", + "inputs": [] + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ], + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "steps", + "answer" + ], + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}" + } + } + } + }, + { + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + } + ], + "cognitiveServices": { + "@odata.type": "#Microsoft.Azure.Search.AIServicesByKey", + "description": "Description of the Azure AI service resource attached to a skillset", + "key": "myKey", + "subdomainUrl": "https://mySubdomainName.cognitiveservices.azure.com" + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "countryHint", + "source": "/document/countryHint", + "inputs": [] + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "textSplitMode": "pages", + "maximumPageLength": 4000, + "unit": "azureOpenAITokens", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ], + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + } + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "outputMode": "oneToMany", + "outputFormat": "text", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + }, + { + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "timeout": "PT30S", + "degreeOfParallelism": 5, + "apiKey": "", + "extraParametersBehavior": "error", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "systemMessage", + "source": "/document/system_message", + "inputs": [] + }, + { + "name": "userMessage", + "source": "/document/user_message", + "inputs": [] + }, + { + "name": "image", + "source": "/document/normalized_images/*", + "inputs": [] + }, + { + "name": "imageDetail", + "source": "/document/detail", + "inputs": [] + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ], + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "steps", + "answer" + ], + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}" + } + } + } + }, + { + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + } + ], + "cognitiveServices": { + "@odata.type": "#Microsoft.Azure.Search.AIServicesByKey", + "description": "Description of the Azure AI service resource attached to a skillset", + "key": "myKey", + "subdomainUrl": "https://mySubdomainName.cognitiveservices.azure.com" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSynonymMap.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSynonymMap.json new file mode 100644 index 000000000000..7f54f45817c7 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateSynonymMap.json @@ -0,0 +1,64 @@ +{ + "operationId": "SynonymMaps_CreateOrUpdate", + "title": "SearchServiceCreateOrUpdateSynonymMap", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "synonymMapName": "mysynonymmap", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null, + "Prefer": "return=representation", + "synonymMap": { + "name": "mysynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "mysynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + }, + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "mysynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSkillset.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSkillset.json new file mode 100644 index 000000000000..52ae54c50833 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSkillset.json @@ -0,0 +1,540 @@ +{ + "operationId": "Skillsets_Create", + "title": "SearchServiceCreateSkillset", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "skillset": { + "name": "tempskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "countryHint", + "source": "/document/countryHint" + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "textSplitMode": "pages", + "maximumPageLength": 4000, + "unit": "azureOpenAITokens", + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + }, + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "languageCode", + "source": "/document/languageCode" + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "languageCode", + "source": "/document/languageCode" + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "languageCode", + "source": "/document/languageCode" + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ] + }, + { + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "inputs": [ + { + "name": "file_data", + "source": "/document/content" + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "outputFormat": "text", + "outputMode": "oneToMany", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + }, + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "inputs": [ + { + "name": "file_data", + "source": "/document/content" + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ] + }, + { + "apiKey": "", + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "extraParametersBehavior": "error", + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}", + "required": [ + "steps", + "answer" + ], + "additionalProperties": false + } + } + }, + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "timeout": "PT30S", + "degreeOfParallelism": 5, + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "inputs": [ + { + "name": "text", + "source": "/document/content" + }, + { + "name": "systemMessage", + "source": "/document/system_message" + }, + { + "name": "userMessage", + "source": "/document/user_message" + }, + { + "name": "image", + "source": "/document/normalized_images/*" + }, + { + "name": "imageDetail", + "source": "/document/detail" + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ] + }, + { + "extractionOptions": [ + "images", + "locationMetadata" + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + }, + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "inputs": [ + { + "name": "file_data", + "source": "/document/content" + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ] + } + ], + "cognitiveServices": { + "key": "myKey", + "subdomainUrl": "https://mySubdomainName.cognitiveservices.azure.com", + "@odata.type": "#Microsoft.Azure.Search.AIServicesByKey", + "description": "Description of the Azure AI service resource attached to a skillset" + }, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "countryHint", + "source": "/document/countryHint", + "inputs": [] + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "textSplitMode": "pages", + "maximumPageLength": 4000, + "unit": "azureOpenAITokens", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ], + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + } + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "outputMode": "oneToMany", + "outputFormat": "text", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + }, + { + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "timeout": "PT30S", + "degreeOfParallelism": 5, + "apiKey": "", + "extraParametersBehavior": "error", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "systemMessage", + "source": "/document/system_message", + "inputs": [] + }, + { + "name": "userMessage", + "source": "/document/user_message", + "inputs": [] + }, + { + "name": "image", + "source": "/document/normalized_images/*", + "inputs": [] + }, + { + "name": "imageDetail", + "source": "/document/detail", + "inputs": [] + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ], + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "steps", + "answer" + ], + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}" + } + } + } + }, + { + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + } + ], + "cognitiveServices": { + "@odata.type": "#Microsoft.Azure.Search.AIServicesByKey", + "description": "Description of the Azure AI service resource attached to a skillset", + "key": "myKey", + "subdomainUrl": "https://mySubdomainName.cognitiveservices.azure.com" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSynonymMap.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSynonymMap.json new file mode 100644 index 000000000000..bbacdc3b119e --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateSynonymMap.json @@ -0,0 +1,43 @@ +{ + "operationId": "SynonymMaps_Create", + "title": "SearchServiceCreateSynonymMap", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "synonymMap": { + "name": "tempsynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "@odata.etag": "0x1234568AE7E58A1" + } + }, + "responses": { + "201": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "tempsynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteAlias.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteAlias.json new file mode 100644 index 000000000000..214cd436c26b --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteAlias.json @@ -0,0 +1,16 @@ +{ + "operationId": "Aliases_Delete", + "title": "SearchServiceDeleteAlias", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "aliasName": "tempalias", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteDataSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteDataSource.json new file mode 100644 index 000000000000..f0272a811b6c --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteDataSource.json @@ -0,0 +1,16 @@ +{ + "operationId": "DataSources_Delete", + "title": "SearchServiceDeleteDataSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "dataSourceName": "tempdatasource", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndex.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndex.json new file mode 100644 index 000000000000..568d7481bc2d --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndex.json @@ -0,0 +1,16 @@ +{ + "operationId": "Indexes_Delete", + "title": "SearchServiceDeleteIndex", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "temp-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndexer.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndexer.json new file mode 100644 index 000000000000..d0a3c173f329 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteIndexer.json @@ -0,0 +1,16 @@ +{ + "operationId": "Indexers_Delete", + "title": "SearchServiceDeleteIndexer", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "tempindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "404": {}, + "204": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeAgent.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeAgent.json new file mode 100644 index 000000000000..c03227fb60cf --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeAgent.json @@ -0,0 +1,14 @@ +{ + "operationId": "KnowledgeAgents_Delete", + "title": "SearchServiceDeleteKnowledgeAgent", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "agentName": "myagent" + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeBase.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeBase.json new file mode 100644 index 000000000000..81b81bcb7088 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeBase.json @@ -0,0 +1,16 @@ +{ + "operationId": "KnowledgeBases_Delete", + "title": "SearchServiceDeleteKnowledgeBase", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "knowledgeBaseName": "base-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSource.json new file mode 100644 index 000000000000..63e7b89d1e64 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSource.json @@ -0,0 +1,16 @@ +{ + "operationId": "KnowledgeSources_Delete", + "title": "SearchServiceDeleteKnowledgeSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceAzureBlob.json new file mode 100644 index 000000000000..45d3792c066d --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceAzureBlob.json @@ -0,0 +1,16 @@ +{ + "operationId": "KnowledgeSources_Delete", + "title": "SearchServiceDeleteKnowledgeSourceAzureBlob", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedOneLake.json new file mode 100644 index 000000000000..a0f3024f0678 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedOneLake.json @@ -0,0 +1,16 @@ +{ + "operationId": "KnowledgeSources_Delete", + "title": "SearchServiceDeleteKnowledgeSourceIndexedOneLake", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedSharePoint.json new file mode 100644 index 000000000000..4f7c1ed20404 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceIndexedSharePoint.json @@ -0,0 +1,16 @@ +{ + "operationId": "KnowledgeSources_Delete", + "title": "SearchServiceDeleteKnowledgeSourceIndexedSharePoint", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceWeb.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceWeb.json new file mode 100644 index 000000000000..9ea8970dccd7 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteKnowledgeSourceWeb.json @@ -0,0 +1,16 @@ +{ + "operationId": "KnowledgeSources_Delete", + "title": "SearchServiceDeleteKnowledgeSourceWeb", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSkillset.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSkillset.json new file mode 100644 index 000000000000..714a42f04ec6 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSkillset.json @@ -0,0 +1,16 @@ +{ + "operationId": "Skillsets_Delete", + "title": "SearchServiceDeleteSkillset", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "skillsetName": "tempskillset", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSynonymMap.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSynonymMap.json new file mode 100644 index 000000000000..e8437984eb08 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceDeleteSynonymMap.json @@ -0,0 +1,16 @@ +{ + "operationId": "SynonymMaps_Delete", + "title": "SearchServiceDeleteSynonymMap", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "synonymMapName": "tempsynonymmap", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "If-Match": null, + "If-None-Match": null + }, + "responses": { + "204": {}, + "404": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetAlias.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetAlias.json new file mode 100644 index 000000000000..430932d169a1 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetAlias.json @@ -0,0 +1,20 @@ +{ + "operationId": "Aliases_Get", + "title": "SearchServiceGetAlias", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "aliasName": "myalias", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myalias", + "indexes": [ + "preview-test" + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetDataSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetDataSource.json new file mode 100644 index 000000000000..194492970eb5 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetDataSource.json @@ -0,0 +1,41 @@ +{ + "operationId": "DataSources_Get", + "title": "SearchServiceGetDataSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "dataSourceName": "mydocdbdatasource", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "mydocdbdatasource", + "description": "My Azure Adls Gen2 data source with ACLs.", + "type": "adlsgen2", + "indexerPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "adls-gen2-doc-extraction-acl", + "query": "folder_has_final_acl" + }, + "dataChangeDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy", + "highWaterMarkColumnName": "metadata_storage_last_modified" + }, + "dataDeletionDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy", + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndex.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndex.json new file mode 100644 index 000000000000..0ff8d4013d8c --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndex.json @@ -0,0 +1,476 @@ +{ + "operationId": "Indexes_Get", + "title": "SearchServiceGetIndex", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "preview-test", + "description": "description", + "defaultScoringProfile": "stringFieldBoost", + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "fields": [ + { + "name": "id", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": true, + "synonymMaps": [] + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 20, + "vectorSearchProfile": "config1", + "synonymMaps": [] + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 32, + "vectorSearchProfile": "config4", + "synonymMaps": [] + }, + { + "name": "name", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "description", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "standard.lucene", + "synonymMaps": [] + }, + { + "name": "category", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "ownerId", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "price", + "type": "Edm.Double", + "searchable": false, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "synonymMaps": [] + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "permissionFilter": "userIds", + "synonymMaps": [] + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "sensitivityLabel": true, + "synonymMaps": [] + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "functionAggregation": "sum", + "text": { + "weights": { + "name": 3.0, + "description": 1.0, + "category": 2.0, + "ownerId": 1.0 + } + }, + "functions": [ + { + "fieldName": "category", + "interpolation": "linear", + "type": "tag", + "boost": 2.0, + "tag": { + "tagsParameter": "categoryTag" + } + } + ] + } + ], + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer", + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ] + } + ], + "normalizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer", + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ] + } + ], + "tokenizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer", + "maxTokenLength": 100 + } + ], + "tokenFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter", + "preserveOriginal": false + } + ], + "charFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping", + "mappings": [ + ".=>,", + "_=>-" + ] + } + ], + "similarity": { + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity", + "k1": 10.0, + "b": 0.1 + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "flightingOptIn": true, + "rankingOrder": "BoostedRerankerScore", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + } + } + ] + }, + "vectorSearch": { + "algorithms": [ + { + "name": "cosine", + "kind": "hnsw", + "hnswParameters": { + "metric": "cosine", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "euclidean", + "kind": "hnsw", + "hnswParameters": { + "metric": "euclidean", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "dotProduct", + "kind": "hnsw", + "hnswParameters": { + "metric": "dotProduct", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + } + ], + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "vectorizers": [ + { + "name": "openai", + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + { + "name": "custom-web-api", + "kind": "customWebApi", + "customWebApiParameters": { + "httpMethod": "POST", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + }, + { + "name": "aml", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + } + }, + { + "name": "aml-cohere", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "Cohere-embed-v4" + } + } + ], + "compressions": [ + { + "name": "mySQ8", + "kind": "scalarQuantization", + "truncationDimension": 2, + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "discardOriginals" + } + } + ] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatistics.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatistics.json new file mode 100644 index 000000000000..985cf75b3229 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatistics.json @@ -0,0 +1,19 @@ +{ + "operationId": "Indexes_GetStatistics", + "title": "SearchServiceGetIndexStatistics", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "documentCount": 12, + "storageSize": 123456, + "vectorIndexSize": 123456 + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatisticsSummaries.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatisticsSummaries.json new file mode 100644 index 000000000000..541b4e602109 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatisticsSummaries.json @@ -0,0 +1,23 @@ +{ + "operationId": "GetIndexStatisticsSummaries", + "title": "SearchServiceGetIndexStatisticsSummaries", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "preview-test", + "documentCount": 0, + "storageSize": 0, + "vectorIndexSize": 0 + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatsSummary.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatsSummary.json new file mode 100644 index 000000000000..a4b2720723ec --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexStatsSummary.json @@ -0,0 +1,23 @@ +{ + "operationId": "GetIndexStatsSummary", + "title": "SearchServiceGetIndexStatsSummary", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "preview-test", + "documentCount": 0, + "storageSize": 0, + "vectorIndexSize": 0 + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexer.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexer.json new file mode 100644 index 000000000000..6504aa16776a --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexer.json @@ -0,0 +1,51 @@ +{ + "operationId": "Indexers_Get", + "title": "SearchServiceGetIndexer", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "myindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestdatasource", + "skillsetName": "myskillset", + "targetIndexName": "preview-test", + "disabled": false, + "schedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5, + "configuration": {} + }, + "fieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexerStatus.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexerStatus.json new file mode 100644 index 000000000000..2fba9b1edc60 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetIndexerStatus.json @@ -0,0 +1,91 @@ +{ + "operationId": "Indexers_GetStatus", + "title": "SearchServiceGetIndexerStatus", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myindexer", + "status": "running", + "runtime": { + "usedSeconds": 0, + "beginningTime": "2024-06-06T00:00:00.000Z", + "endingTime": "2024-06-07T00:00:00.000Z" + }, + "lastResult": { + "status": "success", + "startTime": "2014-11-26T03:37:18.853Z", + "endTime": "2014-11-26T03:37:19.012Z", + "itemsProcessed": 11, + "itemsFailed": 0, + "mode": "indexingAllDocs", + "errors": [], + "warnings": [] + }, + "executionHistory": [ + { + "status": "success", + "startTime": "2014-11-26T03:37:18.853Z", + "endTime": "2014-11-26T03:37:19.012Z", + "itemsProcessed": 11, + "itemsFailed": 0, + "mode": "indexingAllDocs", + "errors": [], + "warnings": [] + }, + { + "status": "transientFailure", + "startTime": "2014-11-26T03:28:10.125Z", + "endTime": "2014-11-26T03:28:12.007Z", + "itemsProcessed": 1, + "itemsFailed": 2, + "mode": "indexingAllDocs", + "errors": [ + { + "key": "", + "statusCode": 400, + "errorMessage": "Document key cannot be missing or empty." + }, + { + "key": "document id 1", + "statusCode": 400, + "name": "DocumentExtraction.AzureBlob.MyDataSource", + "errorMessage": "Could not read the value of column 'foo' at index '0'.", + "details": "The file could not be parsed.", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2049388" + } + ], + "warnings": [ + { + "key": "document id", + "message": "A warning doesn't stop indexing, and is intended to inform you of certain interesting situations, like when a blob indexer truncates the amount of text extracted from a blob." + }, + { + "key": "document id 2", + "name": "Enrichment.LanguageDetectionSkill.#4", + "message": "Document was truncated to 50000 characters.", + "details": "The skill did something that didn't break anything, nonetheless something we didn't expect happened, so it might be worth double checking.", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2099692" + } + ] + } + ], + "limits": { + "maxRunTime": "PT22H", + "maxDocumentExtractionSize": 256000000, + "maxDocumentContentCharactersToExtract": 4000000 + }, + "currentState": { + "mode": "indexingAllDocs", + "resetDocumentKeys": [], + "resetDatasourceDocumentIds": [] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeAgent.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeAgent.json new file mode 100644 index 000000000000..2174328c5318 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeAgent.json @@ -0,0 +1,50 @@ +{ + "operationId": "KnowledgeAgents_Get", + "title": "SearchServiceGetKnowledgeAgent", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "agentName": "myagent" + }, + "responses": { + "200": { + "body": { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true, + "includeReferenceSourceData": true, + "alwaysQuerySource": false, + "maxSubQueries": 5, + "rerankerThreshold": 0.7 + } + ], + "retrievalInstructions": "Provide accurate and helpful information to customer queries.", + "outputConfiguration": { + "modality": "answerSynthesis", + "answerInstructions": "Be concise and professional", + "attemptFastPath": true, + "includeActivity": true + }, + "requestLimits": { + "maxRuntimeInSeconds": 30, + "maxOutputSize": 4000 + }, + "eTag": "0x8D9A1234567890A" + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeBase.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeBase.json new file mode 100644 index 000000000000..be3357e5711d --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeBase.json @@ -0,0 +1,50 @@ +{ + "operationId": "KnowledgeBases_Get", + "title": "SearchServiceGetKnowledgeBase", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "knowledgeBaseName": "base-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "base-preview-test", + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis.", + "outputMode": "extractiveData", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + } + ], + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "retrievalReasoningEffort": { + "kind": "low" + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSource.json new file mode 100644 index 000000000000..6b1fbd34c41a --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSource.json @@ -0,0 +1,46 @@ +{ + "operationId": "KnowledgeSources_Get", + "title": "SearchServiceGetKnowledgeSource", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "searchIndex", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "searchIndexParameters": { + "searchIndexName": "preview-test", + "semanticConfigurationName": "testconfig", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceAzureBlob.json new file mode 100644 index 000000000000..0e3332e93d30 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceAzureBlob.json @@ -0,0 +1,80 @@ +{ + "operationId": "KnowledgeSources_Get", + "title": "SearchServiceGetKnowledgeSourceAzureBlob", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "azureBlob", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedOneLake.json new file mode 100644 index 000000000000..59a5f847f64e --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedOneLake.json @@ -0,0 +1,79 @@ +{ + "operationId": "KnowledgeSources_Get", + "title": "SearchServiceGetKnowledgeSourceIndexedOneLake", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedOneLake", + "description": "Description of the OneLake knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedOneLakeParameters": { + "fabricWorkspaceId": "", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedSharePoint.json new file mode 100644 index 000000000000..3defb0ec6346 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedSharePoint.json @@ -0,0 +1,79 @@ +{ + "operationId": "KnowledgeSources_Get", + "title": "SearchServiceGetKnowledgeSourceIndexedSharePoint", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedSharePoint", + "description": "Description of the SharePoint knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceStatus.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceStatus.json new file mode 100644 index 000000000000..2e9e72e9f7f9 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceStatus.json @@ -0,0 +1,36 @@ +{ + "operationId": "KnowledgeSources_GetStatus", + "title": "SearchServiceGetKnowledgeSourceStatus", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "synchronizationStatus": "active", + "synchronizationInterval": "1d", + "currentSynchronizationState": { + "startTime": "2024-11-26T03:37:18.853Z", + "itemsUpdatesProcessed": 10, + "itemsUpdatesFailed": 2, + "itemsSkipped": 1 + }, + "lastSynchronizationState": { + "startTime": "2024-11-25T03:37:18.853Z", + "endTime": "2024-11-25T03:38:19.012Z", + "itemsUpdatesProcessed": 8, + "itemsUpdatesFailed": 1, + "itemsSkipped": 0 + }, + "statistics": { + "totalSynchronization": 5, + "averageSynchronizationDuration": "PT30M", + "averageItemsProcessedPerSynchronization": 100 + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceWeb.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceWeb.json new file mode 100644 index 000000000000..da83aded0b81 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceWeb.json @@ -0,0 +1,51 @@ +{ + "operationId": "KnowledgeSources_Get", + "title": "SearchServiceGetKnowledgeSourceWeb", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "sourceName": "ks-preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "web", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedIndexerStatus.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedIndexerStatus.json new file mode 100644 index 000000000000..d96d4941c15c --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedIndexerStatus.json @@ -0,0 +1,92 @@ +{ + "operationId": "Indexers_GetStatus", + "title": "SearchServiceGetS3HDUnlimitedIndexerStatus", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myindexer", + "status": "running", + "runtime": { + "usedSeconds": 0, + "remainingSeconds": 39600, + "beginningTime": "2024-06-06T00:00:00.000Z", + "endingTime": "2024-06-07T00:00:00.000Z" + }, + "lastResult": { + "status": "success", + "startTime": "2014-11-26T03:37:18.853Z", + "endTime": "2014-11-26T03:37:19.012Z", + "itemsProcessed": 11, + "itemsFailed": 0, + "mode": "indexingAllDocs", + "errors": [], + "warnings": [] + }, + "executionHistory": [ + { + "status": "success", + "startTime": "2014-11-26T03:37:18.853Z", + "endTime": "2014-11-26T03:37:19.012Z", + "itemsProcessed": 11, + "itemsFailed": 0, + "mode": "indexingAllDocs", + "errors": [], + "warnings": [] + }, + { + "status": "transientFailure", + "startTime": "2014-11-26T03:28:10.125Z", + "endTime": "2014-11-26T03:28:12.007Z", + "itemsProcessed": 1, + "itemsFailed": 2, + "mode": "indexingAllDocs", + "errors": [ + { + "key": "", + "statusCode": 400, + "errorMessage": "Document key cannot be missing or empty." + }, + { + "key": "document id 1", + "statusCode": 400, + "name": "DocumentExtraction.AzureBlob.MyDataSource", + "errorMessage": "Could not read the value of column 'foo' at index '0'.", + "details": "The file could not be parsed.", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2049388" + } + ], + "warnings": [ + { + "key": "document id", + "message": "A warning doesn't stop indexing, and is intended to inform you of certain interesting situations, like when a blob indexer truncates the amount of text extracted from a blob." + }, + { + "key": "document id 2", + "name": "Enrichment.LanguageDetectionSkill.#4", + "message": "Document was truncated to 50000 characters.", + "details": "The skill did something that didn't break anything, nonetheless something we didn't expect happened, so it might be worth double checking.", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2099692" + } + ] + } + ], + "limits": { + "maxRunTime": "PT22H", + "maxDocumentExtractionSize": 256000000, + "maxDocumentContentCharactersToExtract": 4000000 + }, + "currentState": { + "mode": "indexingAllDocs", + "resetDocumentKeys": [], + "resetDatasourceDocumentIds": [] + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedServiceStatistics.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedServiceStatistics.json new file mode 100644 index 000000000000..de59ac78a354 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetS3HDUnlimitedServiceStatistics.json @@ -0,0 +1,65 @@ +{ + "operationId": "GetServiceStatistics", + "title": "SearchServiceGetS3HDUnlimitedServiceStatistics", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "counters": { + "documentCount": { + "usage": 12 + }, + "indexesCount": { + "usage": 2, + "quota": 2 + }, + "indexersCount": { + "usage": 2, + "quota": 2 + }, + "dataSourcesCount": { + "usage": 2, + "quota": 2 + }, + "storageSize": { + "usage": 123456, + "quota": 10485760 + }, + "synonymMaps": { + "usage": 3, + "quota": 3 + }, + "skillsetCount": { + "usage": 2, + "quota": 2 + }, + "aliasesCount": { + "usage": 4, + "quota": 4 + }, + "vectorIndexSize": { + "usage": 123456 + } + }, + "indexersRuntime": { + "usedSeconds": 0, + "remainingSeconds": 86400, + "beginningTime": "2024-06-06T00:00:00.000Z", + "endingTime": "2024-06-07T00:00:00.000Z" + }, + "limits": { + "maxStoragePerIndex": 10485760, + "maxFieldsPerIndex": 1000, + "maxFieldNestingDepthPerIndex": 10, + "maxComplexCollectionFieldsPerIndex": 40, + "maxComplexObjectsInCollectionsPerDocument": 3000, + "maxCumulativeIndexerRuntimeSeconds": 86400 + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetServiceStatistics.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetServiceStatistics.json new file mode 100644 index 000000000000..00bfc83633b0 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetServiceStatistics.json @@ -0,0 +1,63 @@ +{ + "operationId": "GetServiceStatistics", + "title": "SearchServiceGetServiceStatistics", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "counters": { + "documentCount": { + "usage": 12 + }, + "indexesCount": { + "usage": 2, + "quota": 2 + }, + "indexersCount": { + "usage": 2, + "quota": 2 + }, + "dataSourcesCount": { + "usage": 2, + "quota": 2 + }, + "storageSize": { + "usage": 123456, + "quota": 10485760 + }, + "synonymMaps": { + "usage": 3, + "quota": 3 + }, + "skillsetCount": { + "usage": 2, + "quota": 2 + }, + "aliasesCount": { + "usage": 4, + "quota": 4 + }, + "vectorIndexSize": { + "usage": 123456 + } + }, + "indexersRuntime": { + "usedSeconds": 0, + "beginningTime": "2024-06-06T00:00:00.000Z", + "endingTime": "2024-06-07T00:00:00.000Z" + }, + "limits": { + "maxStoragePerIndex": 10485760, + "maxFieldsPerIndex": 1000, + "maxFieldNestingDepthPerIndex": 10, + "maxComplexCollectionFieldsPerIndex": 40, + "maxComplexObjectsInCollectionsPerDocument": 3000 + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSkillset.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSkillset.json new file mode 100644 index 000000000000..152f2145dba8 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSkillset.json @@ -0,0 +1,285 @@ +{ + "operationId": "Skillsets_Get", + "title": "SearchServiceGetSkillset", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "skillsetName": "myskillset", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "myskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "context": "/document", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "countryHint", + "source": "/document/countryHint", + "inputs": [] + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "context": "/document", + "defaultLanguageCode": "en", + "textSplitMode": "pages", + "maximumPageLength": 4000, + "pageOverlapLength": 0, + "maximumPagesToTake": 0, + "unit": "azureOpenAITokens", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ], + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + } + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "defaultLanguageCode": "en", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "context": "/document", + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "batchSize": 1000, + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ], + "httpHeaders": {} + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "outputFormat": "markdown", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "outputMode": "oneToMany", + "outputFormat": "text", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + }, + { + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "httpMethod": "POST", + "timeout": "PT30S", + "batchSize": 1, + "degreeOfParallelism": 5, + "apiKey": "", + "extraParametersBehavior": "error", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "systemMessage", + "source": "/document/system_message", + "inputs": [] + }, + { + "name": "userMessage", + "source": "/document/user_message", + "inputs": [] + }, + { + "name": "image", + "source": "/document/normalized_images/*", + "inputs": [] + }, + { + "name": "imageDetail", + "source": "/document/detail", + "inputs": [] + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ], + "httpHeaders": {}, + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "steps", + "answer" + ], + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}" + } + } + } + }, + { + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ] + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSynonymMap.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSynonymMap.json new file mode 100644 index 000000000000..46944d021bd9 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetSynonymMap.json @@ -0,0 +1,29 @@ +{ + "operationId": "SynonymMaps_Get", + "title": "SearchServiceGetSynonymMap", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "synonymMapName": "mysynonymmap", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "@odata.etag": "0x1234568AE7E58A1", + "name": "mysynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceIndexAnalyze.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceIndexAnalyze.json new file mode 100644 index 000000000000..74fe21feb83d --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceIndexAnalyze.json @@ -0,0 +1,40 @@ +{ + "operationId": "Indexes_Analyze", + "title": "SearchServiceIndexAnalyze", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexName": "preview-test", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "request": { + "text": "Text to analyze", + "analyzer": "ar.lucene" + } + }, + "responses": { + "200": { + "body": { + "tokens": [ + { + "token": "text", + "startOffset": 0, + "endOffset": 4, + "position": 0 + }, + { + "token": "to", + "startOffset": 5, + "endOffset": 7, + "position": 1 + }, + { + "token": "analyze", + "startOffset": 8, + "endOffset": 15, + "position": 2 + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListAliases.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListAliases.json new file mode 100644 index 000000000000..577639cf3a25 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListAliases.json @@ -0,0 +1,23 @@ +{ + "operationId": "Aliases_List", + "title": "SearchServiceListAliases", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myalias", + "indexes": [ + "preview-test" + ] + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListDataSources.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListDataSources.json new file mode 100644 index 000000000000..403645c1b020 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListDataSources.json @@ -0,0 +1,45 @@ +{ + "operationId": "DataSources_List", + "title": "SearchServiceListDataSources", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "$select": null, + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "mydocdbdatasource", + "description": "My Azure Adls Gen2 data source with ACLs.", + "type": "adlsgen2", + "indexerPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "credentials": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net " + }, + "container": { + "name": "adls-gen2-doc-extraction-acl", + "query": "folder_has_final_acl" + }, + "dataChangeDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy", + "highWaterMarkColumnName": "metadata_storage_last_modified" + }, + "dataDeletionDetectionPolicy": { + "@odata.type": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy", + "softDeleteColumnName": "isDeleted", + "softDeleteMarkerValue": "true" + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexers.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexers.json new file mode 100644 index 000000000000..16a7234c9dce --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexers.json @@ -0,0 +1,54 @@ +{ + "operationId": "Indexers_List", + "title": "SearchServiceListIndexers", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "$select": "*", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myindexer", + "description": "Description of the indexer", + "dataSourceName": "indexertestdatasource", + "skillsetName": "myskillset", + "targetIndexName": "preview-test", + "disabled": false, + "schedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "parameters": { + "batchSize": 10, + "maxFailedItems": 10, + "maxFailedItemsPerBatch": 5, + "configuration": {} + }, + "fieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ], + "outputFieldMappings": [ + { + "sourceFieldName": "/document", + "targetFieldName": "name", + "mappingFunction": { + "name": "base64Encode" + } + } + ] + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexes.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexes.json new file mode 100644 index 000000000000..9a236b41371b --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListIndexes.json @@ -0,0 +1,480 @@ +{ + "operationId": "Indexes_List", + "title": "SearchServiceListIndexes", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "$select": null, + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "preview-test", + "description": "description", + "defaultScoringProfile": "stringFieldBoost", + "permissionFilterOption": "enabled", + "purviewEnabled": true, + "fields": [ + { + "name": "id", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": true, + "synonymMaps": [] + }, + { + "name": "vector1", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 20, + "vectorSearchProfile": "config1", + "synonymMaps": [] + }, + { + "name": "vector1b", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector2", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector3", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 5, + "vectorSearchProfile": "config3", + "synonymMaps": [] + }, + { + "name": "vector22", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 10, + "vectorSearchProfile": "config2", + "synonymMaps": [] + }, + { + "name": "vector4", + "type": "Collection(Edm.Single)", + "searchable": true, + "filterable": false, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": false, + "key": false, + "dimensions": 32, + "vectorSearchProfile": "config4", + "synonymMaps": [] + }, + { + "name": "name", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "description", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "standard.lucene", + "synonymMaps": [] + }, + { + "name": "category", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "ownerId", + "type": "Edm.String", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "analyzer": "en.lucene", + "synonymMaps": [] + }, + { + "name": "price", + "type": "Edm.Double", + "searchable": false, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": true, + "facetable": true, + "key": false, + "synonymMaps": [] + }, + { + "name": "permissionFilters", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "permissionFilter": "userIds", + "synonymMaps": [] + }, + { + "name": "sensitivityLabels", + "type": "Collection(Edm.String)", + "searchable": true, + "filterable": true, + "retrievable": true, + "stored": true, + "sortable": false, + "facetable": true, + "key": false, + "sensitivityLabel": true, + "synonymMaps": [] + } + ], + "scoringProfiles": [ + { + "name": "stringFieldBoost", + "functionAggregation": "sum", + "text": { + "weights": { + "name": 3.0, + "description": 1.0, + "category": 2.0, + "ownerId": 1.0 + } + }, + "functions": [ + { + "fieldName": "category", + "interpolation": "linear", + "type": "tag", + "boost": 2.0, + "tag": { + "tagsParameter": "categoryTag" + } + } + ] + } + ], + "corsOptions": { + "allowedOrigins": [ + "https://www.example.com/foo" + ], + "maxAgeInSeconds": 10 + }, + "suggesters": [ + { + "name": "sg", + "searchMode": "analyzingInfixMatching", + "sourceFields": [ + "category", + "ownerId" + ] + } + ], + "analyzers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer", + "name": "tagsAnalyzer", + "tokenizer": "standard_v2", + "tokenFilters": [ + "common_grams" + ], + "charFilters": [ + "html_strip" + ] + } + ], + "normalizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.CustomNormalizer", + "name": "my_normalizer", + "tokenFilters": [ + "my_tokenFilter" + ], + "charFilters": [ + "my_mapping" + ] + } + ], + "tokenizers": [ + { + "@odata.type": "#Microsoft.Azure.Search.StandardTokenizerV2", + "name": "my_tokenizer", + "maxTokenLength": 100 + } + ], + "tokenFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "name": "my_tokenFilter", + "preserveOriginal": false + } + ], + "charFilters": [ + { + "@odata.type": "#Microsoft.Azure.Search.MappingCharFilter", + "name": "my_mapping", + "mappings": [ + ".=>,", + "_=>-" + ] + } + ], + "similarity": { + "@odata.type": "#Microsoft.Azure.Search.BM25Similarity", + "k1": 10.0, + "b": 0.1 + }, + "semantic": { + "defaultConfiguration": "testconfig", + "configurations": [ + { + "name": "testconfig", + "flightingOptIn": true, + "rankingOrder": "BoostedRerankerScore", + "prioritizedFields": { + "titleField": { + "fieldName": "category" + }, + "prioritizedContentFields": [ + { + "fieldName": "description" + } + ], + "prioritizedKeywordsFields": [ + { + "fieldName": "ownerId" + } + ] + } + } + ] + }, + "vectorSearch": { + "algorithms": [ + { + "name": "cosine", + "kind": "hnsw", + "hnswParameters": { + "metric": "cosine", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "euclidean", + "kind": "hnsw", + "hnswParameters": { + "metric": "euclidean", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + }, + { + "name": "dotProduct", + "kind": "hnsw", + "hnswParameters": { + "metric": "dotProduct", + "m": 4, + "efConstruction": 400, + "efSearch": 500 + } + } + ], + "profiles": [ + { + "name": "config1", + "algorithm": "cosine", + "vectorizer": "openai", + "compression": "mySQ8" + }, + { + "name": "config2", + "algorithm": "euclidean", + "vectorizer": "custom-web-api", + "compression": "mySQ8" + }, + { + "name": "config3", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQC" + }, + { + "name": "config4", + "algorithm": "dotProduct", + "vectorizer": "custom-web-api", + "compression": "myBQWithoutOriginals" + } + ], + "vectorizers": [ + { + "name": "openai", + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + { + "name": "custom-web-api", + "kind": "customWebApi", + "customWebApiParameters": { + "httpMethod": "POST", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "authResourceId": "api://f89d1c93-58a7-4b07-9a5b-5f89048b927b", + "httpHeaders": { + "header1": "value1", + "header2": "value2" + }, + "authIdentity": { + "@odata.type": "#Microsoft.Azure.Search.DataNoneIdentity" + } + } + }, + { + "name": "aml", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + } + }, + { + "name": "aml-cohere", + "kind": "aml", + "amlParameters": { + "resourceId": "aml resource id", + "region": "aml region", + "uri": "https://my-custom-endpoint.org/", + "timeout": "PT1M", + "modelName": "Cohere-embed-v4" + } + } + ], + "compressions": [ + { + "name": "mySQ8", + "kind": "scalarQuantization", + "truncationDimension": 2, + "scalarQuantizationParameters": { + "quantizedDataType": "int8" + }, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQC", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "preserveOriginals" + } + }, + { + "name": "myBQWithoutOriginals", + "kind": "binaryQuantization", + "truncationDimension": 2, + "rescoringOptions": { + "enableRescoring": true, + "defaultOversampling": 10.0, + "rescoreStorageMethod": "discardOriginals" + } + } + ] + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeAgents.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeAgents.json new file mode 100644 index 000000000000..83ee645c72c0 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeAgents.json @@ -0,0 +1,59 @@ +{ + "operationId": "KnowledgeAgents_List", + "title": "SearchServiceListKnowledgeAgents", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myagent", + "description": "My knowledge agent for customer support", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-4", + "modelName": "gpt-4" + } + } + ], + "knowledgeSources": [ + { + "name": "myknowledgesource", + "includeReferences": true + } + ], + "eTag": "0x8D9A1234567890A" + }, + { + "name": "anotheragent", + "description": "Another knowledge agent", + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://myopenai.openai.azure.com", + "deploymentId": "gpt-35-turbo", + "modelName": "gpt-35-turbo" + } + } + ], + "knowledgeSources": [ + { + "name": "anothersource", + "includeReferences": false + } + ], + "eTag": "0x8D9A1234567890B" + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeBases.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeBases.json new file mode 100644 index 000000000000..3ae238ee2384 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeBases.json @@ -0,0 +1,53 @@ +{ + "operationId": "KnowledgeBases_List", + "title": "SearchServiceListKnowledgeBases", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "base-preview-test", + "description": "Description of the knowledge base.", + "retrievalInstructions": "Instructions for retrieval for the knowledge base.", + "answerInstructions": "Instructions for answer synthesis.", + "outputMode": "extractiveData", + "knowledgeSources": [ + { + "name": "ks-preview-test" + } + ], + "models": [ + { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + } + ], + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "retrievalReasoningEffort": { + "kind": "low" + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSources.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSources.json new file mode 100644 index 000000000000..60b79d65a749 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSources.json @@ -0,0 +1,49 @@ +{ + "operationId": "KnowledgeSources_List", + "title": "SearchServiceListKnowledgeSources", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "searchIndex", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "searchIndexParameters": { + "searchIndexName": "preview-test", + "semanticConfigurationName": "testconfig", + "sourceDataFields": [ + { + "name": "description" + }, + { + "name": "category" + } + ], + "searchFields": [ + { + "name": "*" + } + ] + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesAzureBlob.json new file mode 100644 index 000000000000..bedab455254c --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesAzureBlob.json @@ -0,0 +1,83 @@ +{ + "operationId": "KnowledgeSources_List", + "title": "SearchServiceListKnowledgeSourcesAzureBlob", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "azureBlob", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "azureBlobParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "test-container", + "folderPath": "test-path", + "isADLSGen2": false, + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedOneLake.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedOneLake.json new file mode 100644 index 000000000000..3687cf7b659b --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedOneLake.json @@ -0,0 +1,82 @@ +{ + "operationId": "KnowledgeSources_List", + "title": "SearchServiceListKnowledgeSourcesIndexedOneLake", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedOneLake", + "description": "Description of the OneLake knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedOneLakeParameters": { + "fabricWorkspaceId": "", + "lakehouseId": "fakeLakehouseId", + "targetPath": "testfolder", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedSharePoint.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedSharePoint.json new file mode 100644 index 000000000000..ef817f655de0 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedSharePoint.json @@ -0,0 +1,82 @@ +{ + "operationId": "KnowledgeSources_List", + "title": "SearchServiceListKnowledgeSourcesIndexedSharePoint", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "indexedSharePoint", + "description": "Description of the SharePoint knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "indexedSharePointParameters": { + "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", + "containerName": "defaultSiteLibrary", + "query": "*.docx OR *.pdf", + "ingestionParameters": { + "disableImageVerbalization": false, + "ingestionPermissionOptions": [ + "userIds", + "groupIds", + "rbacScope" + ], + "contentExtractionMode": "standard", + "identity": { + "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "userAssignedIdentity": "/my/userassigned/id" + }, + "embeddingModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "model", + "apiKey": "", + "modelName": "text-embedding-3-large" + } + }, + "chatCompletionModel": { + "kind": "azureOpenAI", + "azureOpenAIParameters": { + "resourceUri": "https://test-sample.openai.azure.com", + "deploymentId": "myDeployment", + "apiKey": "", + "modelName": "gpt-4o-mini" + } + }, + "ingestionSchedule": { + "interval": "P1D", + "startTime": "2024-06-06T00:01:50.265Z" + }, + "aiServices": { + "uri": "https://my-ai-service.azure.com/", + "apiKey": "" + } + }, + "createdResources": { + "datasource": "ks-preview-test-datasource", + "indexer": "ks-preview-test-indexer", + "skillset": "ks-preview-test-skillset", + "index": "ks-preview-test-index" + } + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesWeb.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesWeb.json new file mode 100644 index 000000000000..7741fafbb87f --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesWeb.json @@ -0,0 +1,54 @@ +{ + "operationId": "KnowledgeSources_List", + "title": "SearchServiceListKnowledgeSourcesWeb", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "ks-preview-test", + "kind": "web", + "description": "Description of the knowledge source.", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + }, + "webParameters": { + "domains": { + "allowedDomains": [ + { + "address": "example.com", + "includeSubpages": true + }, + { + "address": "another-example.com" + } + ], + "blockedDomains": [ + { + "address": "blocked.com" + }, + { + "address": "spam.com", + "includeSubpages": true + } + ] + } + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSkillsets.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSkillsets.json new file mode 100644 index 000000000000..9af7bcd5c9b6 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSkillsets.json @@ -0,0 +1,289 @@ +{ + "operationId": "Skillsets_List", + "title": "SearchServiceListSkillsets", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "$select": null, + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "myskillset", + "description": "Skillset for extracting entities and more", + "skills": [ + { + "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "name": "skill2", + "context": "/document", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "countryHint", + "source": "/document/countryHint", + "inputs": [] + } + ], + "outputs": [ + { + "name": "languageCode", + "targetName": "languageCode" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Text.SplitSkill", + "name": "skill3", + "context": "/document", + "defaultLanguageCode": "en", + "textSplitMode": "pages", + "maximumPageLength": 4000, + "pageOverlapLength": 0, + "maximumPagesToTake": 0, + "unit": "azureOpenAITokens", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "textItems", + "targetName": "pages" + } + ], + "azureOpenAITokenizerParameters": { + "encoderModelName": "cl100k_base", + "allowedSpecialTokens": [ + "[START]", + "[END]" + ] + } + }, + { + "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "name": "skill4", + "context": "/document/pages/*", + "defaultLanguageCode": "en", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "keyPhrases", + "targetName": "keyPhrases" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill", + "name": "skill5", + "context": "/document", + "uri": "https://contoso.example.org/", + "httpMethod": "POST", + "timeout": "PT5S", + "batchSize": 1000, + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "languageCode", + "source": "/document/languageCode", + "inputs": [] + } + ], + "outputs": [ + { + "name": "customresult", + "targetName": "result" + } + ], + "httpHeaders": {} + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill", + "context": "/document", + "outputMode": "oneToMany", + "markdownHeaderDepth": "h3", + "outputFormat": "markdown", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "markdown_document", + "targetName": "markdown_document" + } + ] + }, + { + "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", + "name": "docIntelligenceLayoutSkill#2", + "context": "/document", + "outputMode": "oneToMany", + "outputFormat": "text", + "extractionOptions": [ + "images", + "locationMetadata" + ], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections" + }, + { + "name": "normalized_images", + "targetName": "normalized_images" + } + ], + "chunkingProperties": { + "unit": "characters", + "maximumLength": 500, + "overlapLength": 50 + } + }, + { + "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill", + "name": "chatCompletionSkill", + "context": "/document/normalized_images/*", + "uri": "https://azs-grok-aoai.openai.azure.com/openai/deployments/azs-grok-gpt-4o/chat/completions", + "httpMethod": "POST", + "timeout": "PT30S", + "batchSize": 1, + "degreeOfParallelism": 5, + "apiKey": "", + "extraParametersBehavior": "error", + "inputs": [ + { + "name": "text", + "source": "/document/content", + "inputs": [] + }, + { + "name": "systemMessage", + "source": "/document/system_message", + "inputs": [] + }, + { + "name": "userMessage", + "source": "/document/user_message", + "inputs": [] + }, + { + "name": "image", + "source": "/document/normalized_images/*", + "inputs": [] + }, + { + "name": "imageDetail", + "source": "/document/detail", + "inputs": [] + } + ], + "outputs": [ + { + "name": "response", + "targetName": "response" + } + ], + "httpHeaders": {}, + "commonModelParameters": { + "model": "gpt-4o", + "frequencyPenalty": 0, + "presencePenalty": 0, + "maxTokens": 0, + "temperature": 0, + "seed": 0, + "stop": [] + }, + "extraParameters": { + "safe_mode": true + }, + "responseFormat": { + "type": "jsonSchema", + "jsonSchemaProperties": { + "name": "Some Name", + "description": "Some Description", + "strict": true, + "schema": { + "type": "object", + "additionalProperties": false, + "required": [ + "steps", + "answer" + ], + "properties": "{\"steps\": {\"type\": \"array\", \"description\": \"A list of reasoning steps.\", \"items\": {\"type\": \"string\"}}, \"answer\": {\"type\": \"string\", \"description\": \"The final answer.\"}}" + } + } + } + }, + { + "@odata.type": "#Microsoft.Skills.Util.ContentUnderstandingSkill", + "name": "contentUnderstandingSKill", + "context": "/document", + "extractionOptions": [], + "inputs": [ + { + "name": "file_data", + "source": "/document/content", + "inputs": [] + } + ], + "outputs": [ + { + "name": "text_sections", + "targetName": "text_sections2" + }, + { + "name": "normalized_images", + "targetName": "normalized_images2" + } + ] + } + ] + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSynonymMaps.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSynonymMaps.json new file mode 100644 index 000000000000..a99e001718e9 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListSynonymMaps.json @@ -0,0 +1,33 @@ +{ + "operationId": "SynonymMaps_List", + "title": "SearchServiceListSynonymMaps", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "$select": null, + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "@odata.etag": "0x1234568AE7E58A1", + "name": "mysynonymmap", + "format": "solr", + "synonyms": "United States, United States of America, USA\nWashington, Wash. => WA", + "encryptionKey": { + "keyVaultKeyName": "myUserManagedEncryptionKey-createdinAzureKeyVault", + "keyVaultKeyVersion": "myKeyVersion-32charAlphaNumericString", + "keyVaultUri": "https://myKeyVault.vault.azure.net", + "accessCredentials": { + "applicationId": "00000000-0000-0000-0000-000000000000", + "applicationSecret": "" + } + } + } + ] + } + } + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetDocs.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetDocs.json new file mode 100644 index 000000000000..c8bc18895c2c --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetDocs.json @@ -0,0 +1,21 @@ +{ + "operationId": "Indexers_ResetDocs", + "title": "SearchServiceResetDocs", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myindexer", + "overwrite": true, + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "keysOrIds": { + "documentKeys": [ + "1", + "2", + "3" + ] + } + }, + "responses": { + "204": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetIndexer.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetIndexer.json new file mode 100644 index 000000000000..e837c98621ec --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetIndexer.json @@ -0,0 +1,13 @@ +{ + "operationId": "Indexers_Reset", + "title": "SearchServiceResetIndexer", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "204": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetSkills.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetSkills.json new file mode 100644 index 000000000000..dd8ae12e2973 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResetSkills.json @@ -0,0 +1,20 @@ +{ + "operationId": "Skillsets_ResetSkills", + "title": "SearchServiceResetSkills", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "skillsetName": "myskillset", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "skillNames": { + "skillNames": [ + "skill2", + "skill3", + "skill4" + ] + } + }, + "responses": { + "204": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResync.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResync.json new file mode 100644 index 000000000000..34717eae8702 --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceResync.json @@ -0,0 +1,18 @@ +{ + "operationId": "Indexers_Resync", + "title": "SearchServiceResync", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myaclindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", + "indexerResync": { + "options": [ + "permissions" + ] + } + }, + "responses": { + "204": {} + } +} diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceRunIndexer.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceRunIndexer.json new file mode 100644 index 000000000000..53384fceb6ac --- /dev/null +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceRunIndexer.json @@ -0,0 +1,13 @@ +{ + "operationId": "Indexers_Run", + "title": "SearchServiceRunIndexer", + "parameters": { + "endpoint": "https://previewexampleservice.search.windows.net", + "indexerName": "myindexer", + "api-version": "2025-11-01-preview", + "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "202": {} + } +} diff --git a/specification/search/data-plane/Search/main.tsp b/specification/search/data-plane/Search/main.tsp new file mode 100644 index 000000000000..32ad7e1b1aea --- /dev/null +++ b/specification/search/data-plane/Search/main.tsp @@ -0,0 +1,35 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Version: 0.8.2 + * Date: 2024-07-30T18:07:11.236Z + */ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "./routes-service.tsp"; +import "./routes-index.tsp"; +import "./routes-knowledgebase.tsp"; + +using TypeSpec.Http; +using TypeSpec.Versioning; + +@doc("Client that can be used to manage and query indexes and documents, as well as manage other resources, on a search service.") +@useAuth( + ApiKeyAuth | OAuth2Auth<[ + { + type: OAuth2FlowType.implicit, + authorizationUrl: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", + scopes: ["https://search.azure.com/.default"], + } + ]> +) +@service(#{ title: "Azure AI Search" }) +@versioned(Versions) +namespace Search; + +@doc("The available API versions.") +enum Versions { + @doc("The 2025-11-01-preview API version.") + v2025_11_01_preview: "2025-11-01-preview", +} diff --git a/specification/search/data-plane/Search/models-index.tsp b/specification/search/data-plane/Search/models-index.tsp new file mode 100644 index 000000000000..826794381707 --- /dev/null +++ b/specification/search/data-plane/Search/models-index.tsp @@ -0,0 +1,1344 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-client-generator-core"; +import "./models-shared.tsp"; + +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Search; + +@doc("Allows the user to choose whether a semantic call should fail completely, or to return partial results.") +union SemanticErrorMode { + string, + + @doc("If the semantic processing fails, partial results still return. The definition of partial results depends on what semantic step failed and what was the reason for failure.") + Partial: "partial", + + @doc("If there is an exception during the semantic processing step, the query will fail and return the appropriate HTTP code depending on the error.") + Fail: "fail", +} + +@doc("This parameter is only valid if the query type is `semantic`. If set, the query returns answers extracted from key passages in the highest ranked documents. The number of answers returned can be configured by appending the pipe character `|` followed by the `count-` option after the answers parameter value, such as `extractive|count-3`. Default count is 1. The confidence threshold can be configured by appending the pipe character `|` followed by the `threshold-` option after the answers parameter value, such as `extractive|threshold-0.9`. Default threshold is 0.7. The maximum character length of answers can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.") +union QueryAnswerType { + string, + + @doc("Do not return answers for the query.") + None: "none", + + @doc("Extracts answer candidates from the contents of the documents returned in response to a query expressed as a question in natural language.") + Extractive: "extractive", +} + +@doc("This parameter is only valid if the query type is `semantic`. If set, the query returns captions extracted from key passages in the highest ranked documents. When Captions is set to `extractive`, highlighting is enabled by default, and can be configured by appending the pipe character `|` followed by the `highlight-` option, such as `extractive|highlight-true`. Defaults to `None`. The maximum character length of captions can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.") +union QueryCaptionType { + string, + + @doc("Do not return captions for the query.") + None: "none", + + @doc("Extracts captions from the matching documents that contain passages relevant to the search query.") + Extractive: "extractive", +} + +@doc("This parameter is only valid if the query type is `semantic`. When QueryRewrites is set to `generative`, the query terms are sent to a generate model which will produce 10 (default) rewrites to help increase the recall of the request. The requested count can be configured by appending the pipe character `|` followed by the `count-` option, such as `generative|count-3`. Defaults to `None`.") +union QueryRewritesType { + string, + + @doc("Do not generate additional query rewrites for this query.") + None: "none", + + @doc("Generate alternative query terms to increase the recall of a search request.") + Generative: "generative", +} + +@doc("Enables a debugging tool that can be used to further explore your search results. You can enable multiple debug modes simultaneously by separating them with a | character, for example: semantic|queryRewrites.") +union QueryDebugMode { + string, + + @doc("No query debugging information will be returned.") + Disabled: "disabled", + + @doc("Allows the user to further explore their reranked results.") + Semantic: "semantic", + + @doc("Allows the user to further explore their hybrid and vector query results.") + Vector: "vector", + + @doc("Allows the user to explore the list of query rewrites generated for their search request.") + QueryRewrites: "queryRewrites", + + @doc("Allows the user to retrieve scoring information regarding vectors matched within a collection of complex types.") + InnerHits: "innerHits", + + @doc("Turn on all debug options.") + All: "all", +} + +@doc("The language of the query.") +union QueryLanguage { + string, + + @doc("Query language not specified.") + None: "none", + + @doc("Query language value for English (United States).") + EnUs: "en-us", + + @doc("Query language value for English (Great Britain).") + EnGb: "en-gb", + + @doc("Query language value for English (India).") + EnIn: "en-in", + + @doc("Query language value for English (Canada).") + EnCa: "en-ca", + + @doc("Query language value for English (Australia).") + EnAu: "en-au", + + @doc("Query language value for French (France).") + FrFr: "fr-fr", + + @doc("Query language value for French (Canada).") + FrCa: "fr-ca", + + @doc("Query language value for German (Germany).") + DeDe: "de-de", + + @doc("Query language value for Spanish (Spain).") + EsEs: "es-es", + + @doc("Query language value for Spanish (Mexico).") + EsMx: "es-mx", + + @doc("Query language value for Chinese (China).") + ZhCn: "zh-cn", + + @doc("Query language value for Chinese (Taiwan).") + ZhTw: "zh-tw", + + @doc("Query language value for Portuguese (Brazil).") + PtBr: "pt-br", + + @doc("Query language value for Portuguese (Portugal).") + PtPt: "pt-pt", + + @doc("Query language value for Italian (Italy).") + ItIt: "it-it", + + @doc("Query language value for Japanese (Japan).") + JaJp: "ja-jp", + + @doc("Query language value for Korean (Korea).") + KoKr: "ko-kr", + + @doc("Query language value for Russian (Russia).") + RuRu: "ru-ru", + + @doc("Query language value for Czech (Czech Republic).") + CsCz: "cs-cz", + + @doc("Query language value for Dutch (Belgium).") + NlBe: "nl-be", + + @doc("Query language value for Dutch (Netherlands).") + NlNl: "nl-nl", + + @doc("Query language value for Hungarian (Hungary).") + HuHu: "hu-hu", + + @doc("Query language value for Polish (Poland).") + PlPl: "pl-pl", + + @doc("Query language value for Swedish (Sweden).") + SvSe: "sv-se", + + @doc("Query language value for Turkish (Turkey).") + TrTr: "tr-tr", + + @doc("Query language value for Hindi (India).") + HiIn: "hi-in", + + @doc("Query language value for Arabic (Saudi Arabia).") + ArSa: "ar-sa", + + @doc("Query language value for Arabic (Egypt).") + ArEg: "ar-eg", + + @doc("Query language value for Arabic (Morocco).") + ArMa: "ar-ma", + + @doc("Query language value for Arabic (Kuwait).") + ArKw: "ar-kw", + + @doc("Query language value for Arabic (Jordan).") + ArJo: "ar-jo", + + @doc("Query language value for Danish (Denmark).") + DaDk: "da-dk", + + @doc("Query language value for Norwegian (Norway).") + NoNo: "no-no", + + @doc("Query language value for Bulgarian (Bulgaria).") + BgBg: "bg-bg", + + @doc("Query language value for Croatian (Croatia).") + HrHr: "hr-hr", + + @doc("Query language value for Croatian (Bosnia and Herzegovina).") + HrBa: "hr-ba", + + @doc("Query language value for Malay (Malaysia).") + MsMy: "ms-my", + + @doc("Query language value for Malay (Brunei Darussalam).") + MsBn: "ms-bn", + + @doc("Query language value for Slovenian (Slovenia).") + SlSl: "sl-sl", + + @doc("Query language value for Tamil (India).") + TaIn: "ta-in", + + @doc("Query language value for Vietnamese (Viet Nam).") + ViVn: "vi-vn", + + @doc("Query language value for Greek (Greece).") + ElGr: "el-gr", + + @doc("Query language value for Romanian (Romania).") + RoRo: "ro-ro", + + @doc("Query language value for Icelandic (Iceland).") + IsIs: "is-is", + + @doc("Query language value for Indonesian (Indonesia).") + IdId: "id-id", + + @doc("Query language value for Thai (Thailand).") + ThTh: "th-th", + + @doc("Query language value for Lithuanian (Lithuania).") + LtLt: "lt-lt", + + @doc("Query language value for Ukrainian (Ukraine).") + UkUa: "uk-ua", + + @doc("Query language value for Latvian (Latvia).") + LvLv: "lv-lv", + + @doc("Query language value for Estonian (Estonia).") + EtEe: "et-ee", + + @doc("Query language value for Catalan.") + CaEs: "ca-es", + + @doc("Query language value for Finnish (Finland).") + FiFi: "fi-fi", + + @doc("Query language value for Serbian (Bosnia and Herzegovina).") + SrBa: "sr-ba", + + @doc("Query language value for Serbian (Montenegro).") + SrMe: "sr-me", + + @doc("Query language value for Serbian (Serbia).") + SrRs: "sr-rs", + + @doc("Query language value for Slovak (Slovakia).") + SkSk: "sk-sk", + + @doc("Query language value for Norwegian (Norway).") + NbNo: "nb-no", + + @doc("Query language value for Armenian (Armenia).") + HyAm: "hy-am", + + @doc("Query language value for Bengali (India).") + BnIn: "bn-in", + + @doc("Query language value for Basque.") + EuEs: "eu-es", + + @doc("Query language value for Galician.") + GlEs: "gl-es", + + @doc("Query language value for Gujarati (India).") + GuIn: "gu-in", + + @doc("Query language value for Hebrew (Israel).") + HeIl: "he-il", + + @doc("Query language value for Irish (Ireland).") + GaIe: "ga-ie", + + @doc("Query language value for Kannada (India).") + KnIn: "kn-in", + + @doc("Query language value for Malayalam (India).") + MlIn: "ml-in", + + @doc("Query language value for Marathi (India).") + MrIn: "mr-in", + + @doc("Query language value for Persian (U.A.E.).") + FaAe: "fa-ae", + + @doc("Query language value for Punjabi (India).") + PaIn: "pa-in", + + @doc("Query language value for Telugu (India).") + TeIn: "te-in", + + @doc("Query language value for Urdu (Pakistan).") + UrPk: "ur-pk", +} + +@doc("Improve search recall by spell-correcting individual search query terms.") +union QuerySpellerType { + string, + + @doc("Speller not enabled.") + None: "none", + + @doc("Speller corrects individual query terms using a static lexicon for the language specified by the queryLanguage parameter.") + Lexicon: "lexicon", +} + +@doc("The kind of vector query being performed.") +union VectorQueryKind { + string, + + @doc("Vector query where a raw vector value is provided.") + Vector: "vector", + + @doc("Vector query where a text value that needs to be vectorized is provided.") + Text: "text", + + @doc("Vector query where an url that represents an image value that needs to be vectorized is provided.") + ImageUrl: "imageUrl", + + @doc("Vector query where a base 64 encoded binary of an image that needs to be vectorized is provided.") + ImageBinary: "imageBinary", +} + +@doc("The kind of threshold used to filter vector queries.") +union VectorThresholdKind { + string, + + @doc("The results of the vector query will be filtered based on the vector similarity metric. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field.") + VectorSimilarity: "vectorSimilarity", + + @doc("The results of the vector query will filter based on the '\@search.score' value. Note this is the \@search.score returned as part of the search response. The threshold direction will be chosen for higher \@search.score.") + SearchScore: "searchScore", +} + +@doc("Determines whether or not filters are applied before or after the vector search is performed.") +union VectorFilterMode { + string, + + @doc("The filter will be applied after the candidate set of vector results is returned. Depending on the filter selectivity, this can result in fewer results than requested by the parameter 'k'.") + PostFilter: "postFilter", + + @doc("The filter will be applied before the search query.") + PreFilter: "preFilter", + + @doc("The filter will be applied after the global top-k candidate set of vector results is returned. This will result in fewer results than requested by the parameter 'k'.") + StrictPostFilter: "strictPostFilter", +} + +@doc("Determines whether the count and facets should includes all documents that matched the search query, or only the documents that are retrieved within the 'maxTextRecallSize' window. The default value is 'countAllResults'.") +union HybridCountAndFacetMode { + string, + + @doc("Only include documents that were matched within the 'maxTextRecallSize' retrieval window when computing 'count' and 'facets'.") + CountRetrievableResults: "countRetrievableResults", + + @doc("Include all documents that were matched by the search query when computing 'count' and 'facets', regardless of whether or not those documents are within the 'maxTextRecallSize' retrieval window.") + CountAllResults: "countAllResults", +} + +@doc("The way the field was used for the semantic enrichment process.") +union SemanticFieldState { + string, + + @doc("The field was fully used for semantic enrichment.") + Used: "used", + + @doc("The field was not used for semantic enrichment.") + Unused: "unused", + + @doc("The field was partially used for semantic enrichment.") + Partial: "partial", +} + +@doc("Reason that a partial response was returned for a semantic ranking request.") +union SemanticErrorReason { + string, + + @doc("If `semanticMaxWaitInMilliseconds` was set and the semantic processing duration exceeded that value. Only the base results were returned.") + MaxWaitExceeded: "maxWaitExceeded", + + @doc("The request was throttled. Only the base results were returned.") + CapacityOverloaded: "capacityOverloaded", + + @doc("At least one step of the semantic process failed.") + Transient: "transient", +} + +@doc("Type of partial response that was returned for a semantic ranking request.") +union SemanticSearchResultsType { + string, + + @doc("Results without any semantic enrichment or reranking.") + BaseResults: "baseResults", + + @doc("Results have been reranked with the reranker model and will include semantic captions. They will not include any answers, answers highlights or caption highlights.") + RerankedResults: "rerankedResults", +} + +@doc("Type of query rewrite that was used for this request.") +union SemanticQueryRewritesResultType { + string, + + @doc("Query rewrites were not successfully generated for this request. Only the original query was used to retrieve the results.") + OriginalQueryOnly: "originalQueryOnly", +} + +@doc("Specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax and 'semantic' if query syntax is not needed.") +union QueryType { + string, + + @doc("Uses the simple query syntax for searches. Search text is interpreted using a simple query language that allows for symbols such as +, * and \"\". Queries are evaluated across all searchable fields by default, unless the searchFields parameter is specified.") + Simple: "simple", + + @doc("Uses the full Lucene query syntax for searches. Search text is interpreted using the Lucene query language which allows field-specific and weighted searches, as well as other advanced features.") + Full: "full", + + @doc("Best suited for queries expressed in natural language as opposed to keywords. Improves precision of search results by re-ranking the top search results using a ranking model trained on the Web corpus.") + Semantic: "semantic", +} + +@doc("Specifies whether any or all of the search terms must be matched in order to count the document as a match.") +union SearchMode { + string, + + @doc("Any of the search terms must be matched in order to count the document as a match.") + Any: "any", + + @doc("All of the search terms must be matched in order to count the document as a match.") + All: "all", +} + +@doc("A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is 'local'. Use 'global' to aggregate scoring statistics globally before scoring. Using global scoring statistics can increase latency of search queries.") +union ScoringStatistics { + string, + + @doc("The scoring statistics will be calculated locally for lower latency.") + Local: "local", + + @doc("The scoring statistics will be calculated globally for more consistent scoring.") + Global: "global", +} + +@doc("The operation to perform on a document in an indexing batch.") +union IndexActionType { + string, + + @doc("Inserts the document into the index if it is new and updates it if it exists. All fields are replaced in the update case.") + Upload: "upload", + + @doc("Merges the specified field values with an existing document. If the document does not exist, the merge will fail. Any field you specify in a merge will replace the existing field in the document. This also applies to collections of primitive and complex types.") + Merge: "merge", + + @doc("Behaves like merge if a document with the given key already exists in the index. If the document does not exist, it behaves like upload with a new document.") + MergeOrUpload: "mergeOrUpload", + + @doc("Removes the specified document from the index. Any field you specify in a delete operation other than the key field will be ignored. If you want to remove an individual field from a document, use merge instead and set the field explicitly to null.") + Delete: "delete", +} + +@doc("Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context in producing autocomplete terms.") +union AutocompleteMode { + string, + + @doc("Only one term is suggested. If the query has two terms, only the last term is completed. For example, if the input is 'washington medic', the suggested terms could include 'medicaid', 'medicare', and 'medicine'.") + OneTerm: "oneTerm", + + @doc("Matching two-term phrases in the index will be suggested. For example, if the input is 'medic', the suggested terms could include 'medicare coverage' and 'medical assistant'.") + TwoTerms: "twoTerms", + + @doc("Completes the last term in a query with two or more terms, where the last two terms are a phrase that exists in the index. For example, if the input is 'washington medic', the suggested terms could include 'washington medicaid' and 'washington medical'.") + OneTermWithContext: "oneTermWithContext", +} + +@doc("Parameters grouped for search operations.") +model SearchOptions { + @doc("A value that specifies whether to fetch the total count of results. Default is false. Setting this value to true may have a performance impact. Note that the count returned is an approximation.") + @query("$count") + includeTotalResultCount?: boolean; + + #suppress "@azure-tools/typespec-azure-core/no-query-explode" "Existing" + @doc("The list of facet expressions to apply to the search query. Each facet expression contains a field name, optionally followed by a comma-separated list of name:value pairs.") + @query(#{ name: "facet", explode: true }) + facets?: string[]; + + @doc("The OData $filter expression to apply to the search query.") + @query("$filter") + filter?: string; + + @doc("The list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting.") + @query("highlight") + highlightFields?: string[]; + + @doc("A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>.") + @query + highlightPostTag?: string; + + @doc("A string tag that is prepended to hit highlights. Must be set with highlightPostTag. Default is <em>.") + @query + highlightPreTag?: string; + + @doc("A number between 0 and 100 indicating the percentage of the index that must be covered by a search query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 100.") + @query + minimumCoverage?: float64; + + @doc("The list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, and desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no OrderBy is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.") + @query("$orderby") + orderBy?: string[]; + + @doc("A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax.") + @query + queryType?: QueryType; + + #suppress "@azure-tools/typespec-azure-core/no-query-explode" "Existing" + @doc("The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be \"mylocation--122.2,44.8\" (without the quotes).") + @query(#{ name: "scoringParameter", explode: true }) + scoringParameters?: string[]; + + @doc("The name of a scoring profile to evaluate match scores for matching documents in order to sort the results.") + @query + scoringProfile?: string; + + @doc("The list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter.") + @query + searchFields?: string[]; + + @doc("A value that specifies whether any or all of the search terms must be matched in order to count the document as a match.") + @query + searchMode?: SearchMode; + + @doc("A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency.") + @query + scoringStatistics?: ScoringStatistics; + + @doc("A value to be used to create a sticky session, which can help to get more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character.") + @query + sessionId?: string; + + @doc("The list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included.") + @query("$select") + select?: string[]; + + @doc("The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use $skip due to this limitation, consider using $orderby on a totally-ordered key and $filter with a range query instead.") + @query("$skip") + skip?: int32; + + @doc("The number of search results to retrieve. This can be used in conjunction with $skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results.") + @query("$top") + top?: int32; + + @doc("The name of the semantic configuration that lists which fields should be used for semantic ranking, captions, highlights, and answers") + @query + semanticConfiguration?: string; + + @doc("Allows the user to choose whether a semantic call should fail completely, or to return partial results (default).") + @query + semanticErrorHandling?: SemanticErrorMode; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails.") + @minValue(700) + @query + semanticMaxWaitInMilliseconds?: int32 | null; + + @doc("This parameter is only valid if the query type is `semantic`. If set, the query returns answers extracted from key passages in the highest ranked documents. The number of answers returned can be configured by appending the pipe character `|` followed by the `count-` option after the answers parameter value, such as `extractive|count-3`. Default count is 1. The confidence threshold can be configured by appending the pipe character `|` followed by the `threshold-` option after the answers parameter value, such as `extractive|threshold-0.9`. Default threshold is 0.7. The maximum character length of answers can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.") + @query + answers?: QueryAnswerType; + + @doc("This parameter is only valid if the query type is `semantic`. If set, the query returns captions extracted from key passages in the highest ranked documents. When Captions is set to `extractive`, highlighting is enabled by default, and can be configured by appending the pipe character `|` followed by the `highlight-` option, such as `extractive|highlight-true`. Defaults to `None`. The maximum character length of captions can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.") + @query + captions?: QueryCaptionType; + + @doc("Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase.") + @query + semanticQuery?: string; + + @doc("When QueryRewrites is set to `generative`, the query terms are sent to a generate model which will produce 10 (default) rewrites to help increase the recall of the request. The requested count can be configured by appending the pipe character `|` followed by the `count-` option, such as `generative|count-3`. Defaults to `None`. This parameter is only valid if the query type is `semantic`.") + @query + queryRewrites?: QueryRewritesType; + + @doc("Enables a debugging tool that can be used to further explore your search results.") + @query + debug?: QueryDebugMode; + + @doc("The language of the query.") + @query + queryLanguage?: QueryLanguage; + + @doc("Improve search recall by spell-correcting individual search query terms.") + @query + speller?: QuerySpellerType; + + @doc("The list of field names used for semantic ranking.") + @query + semanticFields?: string[]; +} + +@doc("Parameters grouped for suggest operations.") +model SuggestOptions { + @doc("An OData expression that filters the documents considered for suggestions.") + @query("$filter") + filter?: string; + + @doc("A value indicating whether to use fuzzy matching for the suggestions query. Default is false. When set to true, the query will find terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy suggestions queries are slower and consume more resources.") + @query("fuzzy") + useFuzzyMatching?: boolean; + + @doc("A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting of suggestions is disabled.") + @query + highlightPostTag?: string; + + @doc("A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting of suggestions is disabled.") + @query + highlightPreTag?: string; + + @doc("A number between 0 and 100 indicating the percentage of the index that must be covered by a suggestions query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.") + @query + minimumCoverage?: float64; + + @doc("The list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.") + @query("$orderby") + orderBy?: string[]; + + @doc("The list of field names to search for the specified search text. Target fields must be included in the specified suggester.") + @query + searchFields?: string[]; + + @doc("The list of fields to retrieve. If unspecified, only the key field will be included in the results.") + @query("$select") + select?: string[]; + + @doc("The number of suggestions to retrieve. The value must be a number between 1 and 100. The default is 5.") + @query("$top") + top?: int32; +} + +@doc("Response containing search results from an index.") +model SearchDocumentsResult { + @doc("The total count of results found by the search operation, or null if the count was not requested. If present, the count may be greater than the number of results in this response. This can happen if you use the $top or $skip parameters, or if the query can't return all the requested documents in a single response.") + @encodedName("application/json", "@odata.count") + @visibility(Lifecycle.Read) + count?: int64; + + @doc("A value indicating the percentage of the index that was included in the query, or null if minimumCoverage was not specified in the request.") + @encodedName("application/json", "@search.coverage") + @visibility(Lifecycle.Read) + coverage?: float64; + + @doc("The facet query results for the search operation, organized as a collection of buckets for each faceted field; null if the query did not include any facet expressions.") + @encodedName("application/json", "@search.facets") + @visibility(Lifecycle.Read) + facets?: Record; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The answers query results for the search operation; null if the answers query parameter was not specified or set to 'none'.") + @encodedName("application/json", "@search.answers") + @visibility(Lifecycle.Read) + answers?: QueryAnswerResult[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Debug information that applies to the search results as a whole.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.debug") + debugInfo?: DebugInfo | null; + + @doc("Continuation JSON payload returned when the query can't return all the requested results in a single response. You can use this JSON along with @odata.nextLink to formulate another POST Search request to get the next part of the search response.") + @encodedName("application/json", "@search.nextPageParameters") + @visibility(Lifecycle.Read) + nextPageParameters?: SearchRequest; + + @doc("The sequence of results returned by the query.") + @pageItems + @visibility(Lifecycle.Read) + value: SearchResult[]; + + @doc("Continuation URL returned when the query can't return all the requested results in a single response. You can use this URL to formulate another GET or POST Search request to get the next part of the search response. Make sure to use the same verb (GET or POST) as the request that produced this response.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@odata.nextLink") + @nextLink + nextLink?: string; + + @doc("Reason that a partial response was returned for a semantic ranking request.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.semanticPartialResponseReason") + semanticPartialResponseReason?: SemanticErrorReason; + + @doc("Type of partial response that was returned for a semantic ranking request.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.semanticPartialResponseType") + semanticPartialResponseType?: SemanticSearchResultsType; + + @doc("Type of query rewrite that was used to retrieve documents.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.semanticQueryRewritesResultType") + semanticQueryRewritesResultType?: SemanticQueryRewritesResultType; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("A single bucket of a facet query result. Reports the number of documents with a field value falling within a particular range or having a particular value or interval.") +model FacetResult is Record { + @doc("The approximate count of documents falling within the bucket described by this facet.") + @visibility(Lifecycle.Read) + count?: int64; + + @doc("The resulting total avg for the facet when a avg metric is requested.") + @visibility(Lifecycle.Read) + avg?: float64; + + @doc("The resulting total min for the facet when a min metric is requested.") + @visibility(Lifecycle.Read) + min?: float64; + + @doc("The resulting total max for the facet when a max metric is requested.") + @visibility(Lifecycle.Read) + max?: float64; + + @doc("The resulting total sum for the facet when a sum metric is requested.") + @visibility(Lifecycle.Read) + sum?: float64; + + @doc("The resulting total cardinality for the facet when a cardinality metric is requested.") + @visibility(Lifecycle.Read) + cardinality?: int64; + + @doc("The nested facet query results for the search operation, organized as a collection of buckets for each faceted field; null if the query did not contain any nested facets.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.facets") + facets?: Record; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("An answer is a text passage extracted from the contents of the most relevant documents that matched the query. Answers are extracted from the top search results. Answer candidates are scored and the top answers are selected.") +model QueryAnswerResult is Record { + @doc("The score value represents how relevant the answer is to the query relative to other answers returned for the query.") + @visibility(Lifecycle.Read) + score?: float64; + + @doc("The key of the document the answer was extracted from.") + @visibility(Lifecycle.Read) + key?: string; + + @doc("The text passage extracted from the document contents as the answer.") + @visibility(Lifecycle.Read) + text?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Same text passage as in the Text property with highlighted text phrases most relevant to the query.") + @visibility(Lifecycle.Read) + highlights?: string | null; +} + +@doc("Contains debugging information that can be used to further explore your search results.") +model DebugInfo { + @doc("Contains debugging information specific to query rewrites.") + @visibility(Lifecycle.Read) + queryRewrites?: QueryRewritesDebugInfo; +} + +@doc("Contains debugging information specific to query rewrites.") +model QueryRewritesDebugInfo { + @doc("List of query rewrites generated for the text query.") + @visibility(Lifecycle.Read) + text?: QueryRewritesValuesDebugInfo; + + @doc("List of query rewrites generated for the vectorizable text queries.") + @visibility(Lifecycle.Read) + vectors?: QueryRewritesValuesDebugInfo[]; +} + +@doc("Contains debugging information specific to query rewrites.") +model QueryRewritesValuesDebugInfo { + @doc("The input text to the generative query rewriting model. There may be cases where the user query and the input to the generative model are not identical.") + @visibility(Lifecycle.Read) + inputQuery?: string; + + @doc("List of query rewrites.") + @visibility(Lifecycle.Read) + rewrites?: string[]; +} + +@doc("Parameters for filtering, sorting, faceting, paging, and other search query behaviors.") +model SearchRequest { + @doc("A value that specifies whether to fetch the total count of results. Default is false. Setting this value to true may have a performance impact. Note that the count returned is an approximation.") + count?: boolean; + + @doc("The list of facet expressions to apply to the search query. Each facet expression contains a field name, optionally followed by a comma-separated list of name:value pairs.") + facets?: string[]; + + @doc("The OData $filter expression to apply to the search query.") + filter?: string; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting.") + @encode(ArrayEncoding.commaDelimited) + highlight?: string; + + @doc("A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>.") + highlightPostTag?: string; + + @doc("A string tag that is prepended to hit highlights. Must be set with highlightPostTag. Default is <em>.") + highlightPreTag?: string; + + @doc("A number between 0 and 100 indicating the percentage of the index that must be covered by a search query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 100.") + minimumCoverage?: float64; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.") + @encode(ArrayEncoding.commaDelimited) + orderby?: string; + + @doc("A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax.") + queryType?: QueryType; + + @doc("A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is 'local'. Use 'global' to aggregate scoring statistics globally before scoring. Using global scoring statistics can increase latency of search queries.") + scoringStatistics?: ScoringStatistics; + + @doc("A value to be used to create a sticky session, which can help getting more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character.") + sessionId?: string; + + @doc("The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be \"mylocation--122.2,44.8\" (without the quotes).") + scoringParameters?: string[]; + + @doc("The name of a scoring profile to evaluate match scores for matching documents in order to sort the results.") + scoringProfile?: string; + + @doc("Enables a debugging tool that can be used to further explore your reranked results.") + debug?: QueryDebugMode; + + @doc("A full-text search query expression; Use \"*\" or omit this parameter to match all documents.") + search?: string; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter.") + @encode(ArrayEncoding.commaDelimited) + searchFields?: string; + + @doc("A value that specifies whether any or all of the search terms must be matched in order to count the document as a match.") + searchMode?: SearchMode; + + @doc("A value that specifies the language of the search query.") + queryLanguage?: QueryLanguage; + + @doc("A value that specifies the type of the speller to use to spell-correct individual search query terms.") + speller?: QuerySpellerType; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included.") + @encode(ArrayEncoding.commaDelimited) + select?: string; + + @doc("The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use skip due to this limitation, consider using orderby on a totally-ordered key and filter with a range query instead.") + skip?: int32; + + @doc("The number of search results to retrieve. This can be used in conjunction with $skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results.") + top?: int32; + + @doc("The name of a semantic configuration that will be used when processing documents for queries of type semantic.") + semanticConfiguration?: string; + + @doc("Allows the user to choose whether a semantic call should fail completely (default / current behavior), or to return partial results.") + semanticErrorHandling?: SemanticErrorMode; + + @doc("Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails.") + @minValue(700) + semanticMaxWaitInMilliseconds?: int32; + + @doc("Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase.") + semanticQuery?: string; + + @doc("A value that specifies whether answers should be returned as part of the search response.") + answers?: QueryAnswerType; + + @doc("A value that specifies whether captions should be returned as part of the search response.") + captions?: QueryCaptionType; + + @doc("A value that specifies whether query rewrites should be generated to augment the search query.") + queryRewrites?: QueryRewritesType; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of field names used for semantic ranking.") + @encode(ArrayEncoding.commaDelimited) + semanticFields?: string; + + @doc("The query parameters for vector and hybrid search queries.") + vectorQueries?: VectorQuery[]; + + @doc("Determines whether or not filters are applied before or after the vector search is performed. Default is 'preFilter' for new indexes.") + vectorFilterMode?: VectorFilterMode; + + @doc("The query parameters to configure hybrid search behaviors.") + hybridSearch?: HybridSearch; +} + +@doc("The query parameters for vector and hybrid search queries.") +@discriminator("kind") +model VectorQuery { + @doc("Number of nearest neighbors to return as top hits.") + k?: int32; + + @doc("Vector Fields of type Collection(Edm.Single) to be included in the vector searched.") + fields?: string; + + @doc("When true, triggers an exhaustive k-nearest neighbor search across all vectors within the vector index. Useful for scenarios where exact matches are critical, such as determining ground truth values.") + exhaustive?: boolean; + + @doc("Oversampling factor. Minimum value is 1. It overrides the 'defaultOversampling' parameter configured in the index definition. It can be set only when 'rerankWithOriginalVectors' is true. This parameter is only permitted when a compression method is used on the underlying vector field.") + oversampling?: float64; + + @doc("Relative weight of the vector query when compared to other vector query and/or the text query within the same search request. This value is used when combining the results of multiple ranking lists produced by the different vector queries and/or the results retrieved through the text query. The higher the weight, the higher the documents that matched that query will be in the final ranking. Default is 1.0 and the value needs to be a positive number larger than zero.") + weight?: float32; + + @doc("The threshold used for vector queries. Note this can only be set if all 'fields' use the same similarity metric.") + threshold?: VectorThreshold; + + @doc("The OData filter expression to apply to this specific vector query. If no filter expression is defined at the vector level, the expression defined in the top level filter parameter is used instead.") + filterOverride?: string; + + @doc("Controls how many vectors can be matched from each document in a vector search query. Setting it to 1 ensures at most one vector per document is matched, guaranteeing results come from distinct documents. Setting it to 0 (unlimited) allows multiple relevant vectors from the same document to be matched. Default is 0.") + perDocumentVectorLimit?: int32; + + @doc("Type of query.") + kind: VectorQueryKind; +} + +@doc("The threshold used for vector queries.") +@discriminator("kind") +model VectorThreshold { + @doc("Type of threshold.") + kind: VectorThresholdKind; +} + +@doc("TThe query parameters to configure hybrid search behaviors.") +model HybridSearch { + @doc("Determines the maximum number of documents to be retrieved by the text query portion of a hybrid search request. Those documents will be combined with the documents matching the vector queries to produce a single final list of results. Choosing a larger maxTextRecallSize value will allow retrieving and paging through more documents (using the top and skip parameters), at the cost of higher resource utilization and higher latency. The value needs to be between 1 and 10,000. Default is 1000.") + maxTextRecallSize?: int32; + + @doc("Determines whether the count and facets should includes all documents that matched the search query, or only the documents that are retrieved within the 'maxTextRecallSize' window.") + countAndFacetMode?: HybridCountAndFacetMode; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("Contains a document found by a search query, plus associated metadata.") +model SearchResult { + ...Record; + + @doc("The relevance score of the document compared to other documents returned by the query.") + @encodedName("application/json", "@search.score") + @visibility(Lifecycle.Read) + score: float64; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The relevance score computed by the semantic ranker for the top search results. Search results are sorted by the RerankerScore first and then by the Score. RerankerScore is only returned for queries of type 'semantic'.") + @encodedName("application/json", "@search.rerankerScore") + @visibility(Lifecycle.Read) + rerankerScore?: float64 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The relevance score computed by boosting the Reranker Score. Search results are sorted by the RerankerScore/RerankerBoostedScore based on useScoringProfileBoostedRanking in the Semantic Config. RerankerBoostedScore is only returned for queries of type 'semantic'.") + @encodedName("application/json", "@search.rerankerBoostedScore") + @visibility(Lifecycle.Read) + rerankerBoostedScore?: float64 | null; + + @doc("Text fragments from the document that indicate the matching search terms, organized by each applicable field; null if hit highlighting was not enabled for the query.") + @encodedName("application/json", "@search.highlights") + @visibility(Lifecycle.Read) + highlights?: Record; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Captions are the most representative passages from the document relatively to the search query. They are often used as document summary. Captions are only returned for queries of type 'semantic'.") + @encodedName("application/json", "@search.captions") + @visibility(Lifecycle.Read) + captions?: QueryCaptionResult[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Contains debugging information that can be used to further explore your search results.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.documentDebugInfo") + documentDebugInfo?: DocumentDebugInfo | null; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("Captions are the most representative passages from the document relatively to the search query. They are often used as document summary. Captions are only returned for queries of type `semantic`.") +model QueryCaptionResult { + ...Record; + + @doc("A representative text passage extracted from the document most relevant to the search query.") + @visibility(Lifecycle.Read) + text?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Same text passage as in the Text property with highlighted phrases most relevant to the query.") + @visibility(Lifecycle.Read) + highlights?: string | null; +} + +@doc("Contains debugging information that can be used to further explore your search results.") +model DocumentDebugInfo { + @doc("Contains debugging information specific to semantic ranking requests.") + @visibility(Lifecycle.Read) + semantic?: SemanticDebugInfo; + + @doc("Contains debugging information specific to vector and hybrid search.") + @visibility(Lifecycle.Read) + vectors?: VectorsDebugInfo; + + @doc("Contains debugging information specific to vectors matched within a collection of complex types.") + @visibility(Lifecycle.Read) + innerHits?: Record; +} + +@doc("Contains debugging information specific to semantic ranking requests.") +model SemanticDebugInfo { + @doc("The title field that was sent to the semantic enrichment process, as well as how it was used") + @visibility(Lifecycle.Read) + titleField?: QueryResultDocumentSemanticField; + + @doc("The content fields that were sent to the semantic enrichment process, as well as how they were used") + @visibility(Lifecycle.Read) + contentFields?: QueryResultDocumentSemanticField[]; + + @doc("The keyword fields that were sent to the semantic enrichment process, as well as how they were used") + @visibility(Lifecycle.Read) + keywordFields?: QueryResultDocumentSemanticField[]; + + @doc("The raw concatenated strings that were sent to the semantic enrichment process.") + @visibility(Lifecycle.Read) + rerankerInput?: QueryResultDocumentRerankerInput; +} + +@doc("Detailed scoring information for an individual element of a complex collection.") +model QueryResultDocumentInnerHit { + @doc("Position of this specific matching element within it's original collection. Position starts at 0.") + @visibility(Lifecycle.Read) + ordinal?: int64; + + @doc("Detailed scoring information for an individual element of a complex collection that matched a vector query.") + @visibility(Lifecycle.Read) + vectors?: Record[]; +} + +@doc("Description of fields that were sent to the semantic enrichment process, as well as how they were used") +model QueryResultDocumentSemanticField { + @doc("The name of the field that was sent to the semantic enrichment process") + @visibility(Lifecycle.Read) + name?: string; + + @doc("The way the field was used for the semantic enrichment process (fully used, partially used, or unused)") + @visibility(Lifecycle.Read) + state?: SemanticFieldState; +} + +@doc("The raw concatenated strings that were sent to the semantic enrichment process.") +model QueryResultDocumentRerankerInput { + @doc("The raw string for the title field that was used for semantic enrichment.") + @visibility(Lifecycle.Read) + title?: string; + + @doc("The raw concatenated strings for the content fields that were used for semantic enrichment.") + @visibility(Lifecycle.Read) + content?: string; + + @doc("The raw concatenated strings for the keyword fields that were used for semantic enrichment.") + @visibility(Lifecycle.Read) + keywords?: string; +} + +@doc("\"Contains debugging information specific to vector and hybrid search.\")") +model VectorsDebugInfo { + @doc("The breakdown of subscores of the document prior to the chosen result set fusion/combination method such as RRF.") + @visibility(Lifecycle.Read) + subscores?: QueryResultDocumentSubscores; +} + +@doc("The breakdown of subscores between the text and vector query components of the search query for this document. Each vector query is shown as a separate object in the same order they were received.") +model QueryResultDocumentSubscores { + @doc("The BM25 or Classic score for the text portion of the query.") + @visibility(Lifecycle.Read) + text?: TextResult; + + @doc("The vector similarity and \@search.score values for each vector query.") + @visibility(Lifecycle.Read) + vectors?: Record[]; + + @doc("The BM25 or Classic score for the text portion of the query.") + @visibility(Lifecycle.Read) + documentBoost?: float64; +} + +@doc("The BM25 or Classic score for the text portion of the query.") +model TextResult { + @doc("The BM25 or Classic score for the text portion of the query.") + @visibility(Lifecycle.Read) + searchScore?: float64; +} + +@doc("A single vector field result. Both \@search.score and vector similarity values are returned. Vector similarity is related to \@search.score by an equation.") +model SingleVectorFieldResult { + @doc("The \@search.score value that is calculated from the vector similarity score. This is the score that's visible in a pure single-field single-vector query.") + @visibility(Lifecycle.Read) + searchScore?: float64; + + @doc("The vector similarity score for this document. Note this is the canonical definition of similarity metric, not the 'distance' version. For example, cosine similarity instead of cosine distance.") + @visibility(Lifecycle.Read) + vectorSimilarity?: float64; +} + +@doc("Response containing suggestion query results from an index.") +model SuggestDocumentsResult { + @doc("The sequence of results returned by the query.") + @pageItems + @visibility(Lifecycle.Read) + value: SuggestResult[]; + + @doc("A value indicating the percentage of the index that was included in the query, or null if minimumCoverage was not set in the request.") + @visibility(Lifecycle.Read) + @encodedName("application/json", "@search.coverage") + coverage?: float64; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("A result containing a document found by a suggestion query, plus associated metadata.") +model SuggestResult { + ...Record; + + @doc("The text of the suggestion result.") + @encodedName("application/json", "@search.text") + @visibility(Lifecycle.Read) + text: string; +} + +@doc("Parameters for filtering, sorting, fuzzy matching, and other suggestions query behaviors.") +model SuggestRequest { + @doc("An OData expression that filters the documents considered for suggestions.") + filter?: string; + + @doc("A value indicating whether to use fuzzy matching for the suggestion query. Default is false. When set to true, the query will find suggestions even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy suggestion searches are slower and consume more resources.") + fuzzy?: boolean; + + @doc("A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting of suggestions is disabled.") + highlightPostTag?: string; + + @doc("A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting of suggestions is disabled.") + highlightPreTag?: string; + + @doc("A number between 0 and 100 indicating the percentage of the index that must be covered by a suggestion query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.") + minimumCoverage?: float64; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.") + @encode(ArrayEncoding.commaDelimited) + orderby?: string; + + @doc("The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters.") + search: string; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of field names to search for the specified search text. Target fields must be included in the specified suggester.") + @encode(ArrayEncoding.commaDelimited) + searchFields?: string; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of fields to retrieve. If unspecified, only the key field will be included in the results.") + @encode(ArrayEncoding.commaDelimited) + select?: string; + + @doc("The name of the suggester as specified in the suggesters collection that's part of the index definition.") + suggesterName: string; + + @doc("The number of suggestions to retrieve. This must be a value between 1 and 100. The default is 5.") + top?: int32; +} + +@doc("Contains a batch of document write actions to send to the index.") +model IndexBatch { + @doc("The actions in the batch.") + value: IndexAction[]; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("Represents an index action that operates on a document.") +model IndexAction { + ...Record; + + @doc("The operation to perform on a document in an indexing batch.") + @encodedName("application/json", "@search.action") + actionType?: IndexActionType; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("A document retrieved via a document lookup operation.") +model LookupDocument { + ...Record; +} + +@doc("Response containing the status of operations for all documents in the indexing request.") +model IndexDocumentsResult { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("Response containing the status of operations for all actions in the batch.") + @statusCode + _: 200 | 207; + + @doc("The list of status information for each document in the indexing request.") + @pageItems + @visibility(Lifecycle.Read) + value: IndexingResult[]; +} + +@doc("Status of an indexing operation for a single document.") +model IndexingResult { + @visibility(Lifecycle.Read) + @doc("The key of a document that was in the indexing request.") + key: string; + + @visibility(Lifecycle.Read) + @doc("The error message explaining why the indexing operation failed for the document identified by the key; null if indexing succeeded.") + errorMessage?: string; + + @visibility(Lifecycle.Read) + @doc("A value indicating whether the indexing operation succeeded for the document identified by the key.") + status: boolean; + + @visibility(Lifecycle.Read) + @doc("The status code of the indexing operation. Possible values include: 200 for a successful update or delete, 201 for successful document creation, 400 for a malformed input document, 404 for document not found, 409 for a version conflict, 422 when the index is temporarily unavailable, or 503 for when the service is too busy.") + statusCode: int32; +} + +@doc("The result of Autocomplete query.") +model AutocompleteResult { + @doc("A value indicating the percentage of the index that was considered by the autocomplete request, or null if minimumCoverage was not specified in the request.") + @encodedName("application/json", "@search.coverage") + @visibility(Lifecycle.Read) + coverage?: float64; + + @doc("The list of returned Autocompleted items.") + @pageItems + @visibility(Lifecycle.Read) + value: AutocompleteItem[]; +} + +@doc("The result of Autocomplete requests.") +model AutocompleteItem { + @doc("The completed term.") + @visibility(Lifecycle.Read) + text: string; + + @doc("The query along with the completed term.") + @visibility(Lifecycle.Read) + queryPlusText: string; +} + +@doc("Parameters for fuzzy matching, and other autocomplete query behaviors.") +model AutocompleteRequest { + @doc("The search text on which to base autocomplete results.") + search: string; + + @doc("Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context while producing auto-completed terms.") + autocompleteMode?: AutocompleteMode; + + @doc("An OData expression that filters the documents used to produce completed terms for the Autocomplete result.") + filter?: string; + + @doc("A value indicating whether to use fuzzy matching for the autocomplete query. Default is false. When set to true, the query will autocomplete terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy autocomplete queries are slower and consume more resources.") + fuzzy?: boolean; + + @doc("A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting is disabled.") + highlightPostTag?: string; + + @doc("A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting is disabled.") + highlightPreTag?: string; + + @doc("A number between 0 and 100 indicating the percentage of the index that must be covered by an autocomplete query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.") + minimumCoverage?: float64; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("The comma-separated list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester.") + @encode(ArrayEncoding.commaDelimited) + searchFields?: string; + + @doc("The name of the suggester as specified in the suggesters collection that's part of the index definition.") + suggesterName: string; + + @doc("The number of auto-completed terms to retrieve. This must be a value between 1 and 100. The default is 5.") + top?: int32; +} + +@doc("The query parameters to use for vector search when a raw vector value is provided.") +model VectorizedQuery extends VectorQuery { + @doc("The vector representation of a search query.") + vector: float32[]; + + @doc("The kind of vector query being performed.") + kind: "vector"; +} + +@doc("The query parameters to use for vector search when a text value that needs to be vectorized is provided.") +model VectorizableTextQuery extends VectorQuery { + @doc("The text to be vectorized to perform a vector search query.") + text: string; + + @doc("Can be configured to let a generative model rewrite the query before sending it to be vectorized.") + queryRewrites?: QueryRewritesType; + + @doc("The kind of vector query being performed.") + kind: "text"; +} + +@doc("The query parameters to use for vector search when an url that represents an image value that needs to be vectorized is provided.") +model VectorizableImageUrlQuery extends VectorQuery { + @doc("The URL of an image to be vectorized to perform a vector search query.") + url?: string; + + @doc("The kind of vector query being performed.") + kind: "imageUrl"; +} + +@doc("The query parameters to use for vector search when a base 64 encoded binary of an image that needs to be vectorized is provided.") +model VectorizableImageBinaryQuery extends VectorQuery { + @doc("The base 64 encoded binary of an image to be vectorized to perform a vector search query.") + base64Image?: string; + + @doc("The kind of vector query being performed.") + kind: "imageBinary"; +} + +@doc("The results of the vector query will be filtered based on the vector similarity metric. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field.") +model VectorSimilarityThreshold extends VectorThreshold { + @doc("The threshold will filter based on the similarity metric value. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field.") + value: float64; + + @doc("The kind of threshold used to filter vector queries") + kind: "vectorSimilarity"; +} + +@doc("The results of the vector query will filter based on the '\@search.score' value. Note this is the \@search.score returned as part of the search response. The threshold direction will be chosen for higher \@search.score.") +model SearchScoreThreshold extends VectorThreshold { + @doc("The threshold will filter based on the '\@search.score' value. Note this is the \@search.score returned as part of the search response. The threshold direction will be chosen for higher \@search.score.") + value: float64; + + @doc("The kind of threshold used to filter vector queries") + kind: "searchScore"; +} diff --git a/specification/search/data-plane/Search/models-knowledgebase.tsp b/specification/search/data-plane/Search/models-knowledgebase.tsp new file mode 100644 index 000000000000..77cfaff26cb6 --- /dev/null +++ b/specification/search/data-plane/Search/models-knowledgebase.tsp @@ -0,0 +1,863 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models-service.tsp"; +import "./models-shared.tsp"; + +using TypeSpec.Http; +using Azure.ClientGenerator.Core.Legacy; + +namespace Search; + +@doc("The input contract for the retrieval request.") +model KnowledgeBaseRetrievalRequest { + @doc("A list of chat message style input.") + messages?: KnowledgeBaseMessage[]; + + @doc("A list of intended queries to execute without model query planning.") + intents?: KnowledgeRetrievalIntent[]; + + @doc("The maximum runtime in seconds.") + maxRuntimeInSeconds?: int32; + + @doc("Limits the maximum size of the content in the output.") + maxOutputSize?: int32; + + @doc("The retrieval reasoning effort configuration.") + retrievalReasoningEffort?: KnowledgeRetrievalReasoningEffort; + + @doc("Indicates retrieval results should include activity information.") + includeActivity?: boolean; + + @doc("The output configuration for this retrieval.") + outputMode?: KnowledgeRetrievalOutputMode; + + @doc("A list of runtime parameters for the knowledge sources.") + knowledgeSourceParams?: KnowledgeSourceParams[]; +} + +@doc("The output contract for the retrieval response.") +model KnowledgeBaseRetrievalResponse { + @doc("The response messages.") + response?: KnowledgeBaseMessage[]; + + @doc("The activity records for tracking progress and billing implications.") + activity?: KnowledgeBaseActivityRecord[]; + + @doc("The references for the retrieval data used in the response.") + references?: KnowledgeBaseReference[]; +} + +@doc("Base type for reasoning effort.") +@discriminator("kind") +model KnowledgeRetrievalReasoningEffort { + @doc("The kind of reasoning effort.") + kind: KnowledgeRetrievalReasoningEffortKind; +} + +@doc("Run knowledge retrieval with minimal reasoning effort.") +model KnowledgeRetrievalMinimalReasoningEffort + extends KnowledgeRetrievalReasoningEffort { + @doc("The discriminator value.") + kind: KnowledgeRetrievalReasoningEffortKind.minimal; +} + +@doc("Run knowledge retrieval with low reasoning effort.") +model KnowledgeRetrievalLowReasoningEffort + extends KnowledgeRetrievalReasoningEffort { + @doc("The discriminator value.") + kind: KnowledgeRetrievalReasoningEffortKind.low; +} + +@doc("Run knowledge retrieval with medium reasoning effort.") +model KnowledgeRetrievalMediumReasoningEffort + extends KnowledgeRetrievalReasoningEffort { + @doc("The discriminator value.") + kind: KnowledgeRetrievalReasoningEffortKind.medium; +} + +@doc("The amount of effort to use during retrieval.") +union KnowledgeRetrievalReasoningEffortKind { + string, + + @doc("Does not perform any source selections, query planning, or iterative search.") + minimal: "minimal", + + @doc("Use low reasoning during retrieval.") + low: "low", + + @doc("Use a moderate amount of reasoning during retrieval.") + medium: "medium", +} + +@doc("The output configuration for this retrieval.") +union KnowledgeRetrievalOutputMode { + string, + + @doc("Return data from the knowledge sources directly without generative alteration.") + extractiveData: "extractiveData", + + @doc("Synthesize an answer for the response payload.") + answerSynthesis: "answerSynthesis", +} + +@doc("Base type for knowledge source runtime parameters.") +@discriminator("kind") +model KnowledgeSourceParams { + @doc("The name of the index the params apply to.") + knowledgeSourceName: string; + + @doc("Indicates whether references should be included for data retrieved from this source.") + includeReferences?: boolean; + + @doc("Indicates whether references should include the structured data obtained during retrieval in their payload.") + includeReferenceSourceData?: boolean; + + @doc("Indicates that this knowledge source should bypass source selection and always be queried at retrieval time.") + alwaysQuerySource?: boolean; + + @doc("The reranker threshold all retrieved documents must meet to be included in the response.") + rerankerThreshold?: float32; + + @doc("The type of the knowledge source.") + kind: KnowledgeSourceKind; +} + +@doc("Specifies runtime parameters for a search index knowledge source") +model SearchIndexKnowledgeSourceParams extends KnowledgeSourceParams { + @doc("The discriminator value.") + kind: KnowledgeSourceKind.SearchIndex; + + @doc("A filter condition applied to the index (e.g., 'State eq VA').") + filterAddOn?: string; +} + +@doc("Specifies runtime parameters for a azure blob knowledge source") +model AzureBlobKnowledgeSourceParams extends KnowledgeSourceParams { + @doc("The discriminator value.") + kind: KnowledgeSourceKind.AzureBlob; +} + +@doc("Specifies which SharePoint libraries to access.") +union IndexedSharePointContainerName { + string, + + @doc("Index content from the site's default document library.") + DefaultSiteLibrary: "defaultSiteLibrary", + + @doc("Index content from every document library in the site.") + AllSiteLibraries: "allSiteLibraries", + + @doc("Use a query to filter SharePoint content.") + UseQuery: "useQuery", +} + +@doc("Specifies runtime parameters for a indexed SharePoint knowledge source") +model IndexedSharePointKnowledgeSourceParams extends KnowledgeSourceParams { + @doc("The discriminator value.") + kind: KnowledgeSourceKind.IndexedSharePoint; +} + +@doc("Specifies runtime parameters for a indexed OneLake knowledge source") +model IndexedOneLakeKnowledgeSourceParams extends KnowledgeSourceParams { + @doc("The discriminator value.") + kind: KnowledgeSourceKind.IndexedOneLake; +} + +@doc("Specifies runtime parameters for a web knowledge source") +model WebKnowledgeSourceParams extends KnowledgeSourceParams { + @doc("The discriminator value.") + kind: KnowledgeSourceKind.Web; + + @doc("The language of the web results.") + language?: string; + + @doc("The market of the web results.") + market?: string; + + @doc("The number of web results to return.") + count?: int32; + + @doc("The freshness of web results.") + freshness?: string; +} + +@doc("Specifies runtime parameters for a remote SharePoint knowledge source") +model RemoteSharePointKnowledgeSourceParams extends KnowledgeSourceParams { + @doc("The discriminator value.") + kind: KnowledgeSourceKind.RemoteSharePoint; + + @doc("A filter condition applied to the SharePoint data source. It must be specified in the Keyword Query Language syntax. It will be combined as a conjunction with the filter expression specified in the knowledge source definition.") + filterExpressionAddOn?: string; +} + +@doc("An intended query to execute without model query planning.") +@discriminator("type") +model KnowledgeRetrievalIntent { + @doc("The type of the intent.") + type: KnowledgeRetrievalIntentType; +} + +@doc("The kind of knowledge base configuration to use.") +union KnowledgeRetrievalIntentType { + string, + + @doc("A natural language semantic query intent.") + semantic: "semantic", +} + +@doc("A semantic query intent.") +model KnowledgeRetrievalSemanticIntent extends KnowledgeRetrievalIntent { + @doc("The discriminator value.") + type: KnowledgeRetrievalIntentType.semantic; + + @doc("The semantic query to execute") + search: string; +} + +@doc("The natural language message style object.") +model KnowledgeBaseMessage { + @doc("The role of the tool response.") + role?: string; + + @doc("The content of the message.") + content: KnowledgeBaseMessageContent[]; +} + +@doc("Specifies the type of the message content.") +@discriminator("type") +model KnowledgeBaseMessageContent { + @doc("The type of the message") + type: KnowledgeBaseMessageContentType; +} + +@doc("The type of message content.") +union KnowledgeBaseMessageContentType { + string, + + @doc("Text message content kind.") + text: "text", + + @doc("Image message content kind.") + image: "image", +} + +@doc("Text message type.") +model KnowledgeBaseMessageTextContent extends KnowledgeBaseMessageContent { + @doc("The discriminator value.") + type: KnowledgeBaseMessageContentType.text; + + @doc("The text content.") + text: string; +} + +@doc("Image message type.") +model KnowledgeBaseMessageImageContent extends KnowledgeBaseMessageContent { + @doc("The discriminator value.") + type: KnowledgeBaseMessageContentType.image; + + @doc("The image content.") + image: KnowledgeBaseImageContent; +} + +@doc("Image content.") +model KnowledgeBaseImageContent { + @doc("The url of the image.") + url: url; +} + +@doc("The type of activity record.") +union KnowledgeBaseActivityRecordType { + string, + + @doc("Search index retrieval activity.") + searchIndex: "searchIndex", + + @doc("Azure Blob retrieval activity.") + azureBlob: "azureBlob", + + @doc("Indexed SharePoint retrieval activity.") + indexedSharePoint: "indexedSharePoint", + + @doc("Indexed OneLake retrieval activity.") + indexedOneLake: "indexedOneLake", + + @doc("Web retrieval activity.") + web: "web", + + @doc("Remote SharePoint retrieval activity.") + remoteSharePoint: "remoteSharePoint", + + @doc("LLM query planning activity.") + modelQueryPlanning: "modelQueryPlanning", + + @doc("LLM answer synthesis activity.") + modelAnswerSynthesis: "modelAnswerSynthesis", + + @doc("Agentic reasoning activity.") + agenticReasoning: "agenticReasoning", +} + +@doc("Base type for activity records. Tracks execution details, timing, and errors for knowledge base operations.") +@discriminator("type") +model KnowledgeBaseActivityRecord { + @doc("The ID of the activity record.") + id: int32; + + @doc("The type of the activity record.") + type: KnowledgeBaseActivityRecordType; + + @doc("The elapsed time in milliseconds for the retrieval activity.") + elapsedMs?: int32; + + @doc("The error detail explaining why the operation failed. This property is only included when the activity does not succeed.") + error?: KnowledgeBaseErrorDetail; +} + +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Inherits typed discriminator from base" +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents a retrieval activity record.") +@discriminator("type") +model KnowledgeBaseRetrievalActivityRecord extends KnowledgeBaseActivityRecord { + @doc("The knowledge source for the retrieval activity.") + knowledgeSourceName?: string; + + @doc("The query time for this retrieval activity.") + queryTime?: utcDateTime; + + @doc("The count of documents retrieved that were sufficiently relevant to pass the reranker threshold.") + count?: int32; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +#suppress "DISCRIMINATOR_VALUE_NOT_FOUND" "Multi-Level Discrimination" +@doc("Represents a search index retrieval activity record.") +model KnowledgeBaseSearchIndexActivityRecord + extends KnowledgeBaseRetrievalActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.searchIndex; + + @doc("The search index arguments for the retrieval activity.") + searchIndexArguments?: KnowledgeBaseSearchIndexActivityArguments; +} + +@doc("Represents the arguments the search index retrieval activity was run with.") +model KnowledgeBaseSearchIndexActivityArguments { + @doc("The search string used to query the search index.") + search?: string; + + @doc("The filter string.") + filter?: string; + + @doc("What fields were selected for search.") + sourceDataFields?: SearchIndexFieldReference[]; + + @doc("What fields were searched against.") + searchFields?: SearchIndexFieldReference[]; + + @doc("What semantic configuration was used from the search index.") + semanticConfigurationName?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +#suppress "DISCRIMINATOR_VALUE_NOT_FOUND" "Multi-Level Discrimination" +@doc("Represents a azure blob retrieval activity record.") +model KnowledgeBaseAzureBlobActivityRecord + extends KnowledgeBaseRetrievalActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.azureBlob; + + @doc("The azure blob arguments for the retrieval activity.") + azureBlobArguments?: KnowledgeBaseAzureBlobActivityArguments; +} + +@doc("Represents the arguments the azure blob retrieval activity was run with.") +model KnowledgeBaseAzureBlobActivityArguments { + @doc("The search string used to query blob contents.") + search?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +#suppress "DISCRIMINATOR_VALUE_NOT_FOUND" "Multi-Level Discrimination" +@doc("Represents a indexed SharePoint retrieval activity record.") +model KnowledgeBaseIndexedSharePointActivityRecord + extends KnowledgeBaseRetrievalActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.indexedSharePoint; + + @doc("The indexed SharePoint arguments for the retrieval activity.") + indexedSharePointArguments?: KnowledgeBaseIndexedSharePointActivityArguments; +} + +@doc("Represents the arguments the indexed SharePoint retrieval activity was run with.") +model KnowledgeBaseIndexedSharePointActivityArguments { + @doc("The search string used to query indexed SharePoint contents.") + search?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +#suppress "DISCRIMINATOR_VALUE_NOT_FOUND" "Multi-Level Discrimination" +@doc("Represents a indexed OneLake retrieval activity record.") +model KnowledgeBaseIndexedOneLakeActivityRecord + extends KnowledgeBaseRetrievalActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.indexedOneLake; + + @doc("The indexed OneLake arguments for the retrieval activity.") + indexedOneLakeArguments?: KnowledgeBaseIndexedOneLakeActivityArguments; +} + +@doc("Represents the arguments the indexed OneLake retrieval activity was run with.") +model KnowledgeBaseIndexedOneLakeActivityArguments { + @doc("The search string used to query indexed OneLake contents.") + search?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +#suppress "DISCRIMINATOR_VALUE_NOT_FOUND" "Multi-Level Discrimination" +@doc("Represents a web retrieval activity record.") +model KnowledgeBaseWebActivityRecord + extends KnowledgeBaseRetrievalActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.web; + + @doc("The web arguments for the retrieval activity.") + webArguments?: KnowledgeBaseWebActivityArguments; +} + +@doc("Represents the arguments the web retrieval activity was run with.") +model KnowledgeBaseWebActivityArguments { + @doc("The search string used to query the web.") + search?: string; + + @doc("The language for the retrieval activity.") + language?: string; + + @doc("The market for the retrieval activity.") + market?: string; + + @doc("The number of web results returned.") + count?: int32; + + @doc("The freshness for the retrieval activity.") + freshness?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +#suppress "DISCRIMINATOR_VALUE_NOT_FOUND" "Multi-Level Discrimination" +@doc("Represents a remote SharePoint retrieval activity record.") +model KnowledgeBaseRemoteSharePointActivityRecord + extends KnowledgeBaseRetrievalActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.remoteSharePoint; + + @doc("The remote SharePoint arguments for the retrieval activity.") + remoteSharePointArguments?: KnowledgeBaseRemoteSharePointActivityArguments; +} + +@doc("Represents the arguments the remote SharePoint retrieval activity was run with.") +model KnowledgeBaseRemoteSharePointActivityArguments { + @doc("The search string used to query the remote SharePoint knowledge source.") + search?: string; + + @doc("The filter expression add-on for the retrieval activity.") + filterExpressionAddOn?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an LLM query planning activity record.") +model KnowledgeBaseModelQueryPlanningActivityRecord + extends KnowledgeBaseActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.modelQueryPlanning; + + @doc("The number of input tokens for the LLM query planning activity.") + inputTokens?: int32; + + @doc("The number of output tokens for the LLM query planning activity.") + outputTokens?: int32; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an LLM answer synthesis activity record.") +model KnowledgeBaseModelAnswerSynthesisActivityRecord + extends KnowledgeBaseActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.modelAnswerSynthesis; + + @doc("The number of input tokens for the LLM answer synthesis activity.") + inputTokens?: int32; + + @doc("The number of output tokens for the LLM answer synthesis activity.") + outputTokens?: int32; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an agentic reasoning activity record.") +model KnowledgeBaseAgenticReasoningActivityRecord + extends KnowledgeBaseActivityRecord { + @doc("The discriminator value.") + type: KnowledgeBaseActivityRecordType.agenticReasoning; + + @doc("The number of input tokens for agentic reasoning.") + reasoningTokens?: int32; + + @doc("The retrieval reasoning effort configuration.") + retrievalReasoningEffort?: KnowledgeRetrievalReasoningEffort; +} + +@doc("The type of reference.") +union KnowledgeBaseReferenceType { + string, + + @doc("Search index document reference.") + searchIndex: "searchIndex", + + @doc("Azure Blob document reference.") + azureBlob: "azureBlob", + + @doc("Indexed SharePoint document reference.") + indexedSharePoint: "indexedSharePoint", + + @doc("Indexed OneLake document reference.") + indexedOneLake: "indexedOneLake", + + @doc("Web document reference.") + web: "web", + + @doc("Remote SharePoint document reference.") + remoteSharePoint: "remoteSharePoint", +} + +@doc("Base type for references.") +@discriminator("type") +model KnowledgeBaseReference { + @doc("The type of the reference.") + type: KnowledgeBaseReferenceType; + + @doc("The ID of the reference.") + id: string; + + @doc("The source activity ID for the reference.") + activitySource: int32; + + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Allows arbitrary JSON via additionalProperties: true." + @doc("The source data for the reference.") + sourceData?: Record; + + @doc("The reranker score for the document reference.") + rerankerScore?: float32; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an Azure Search document reference.") +model KnowledgeBaseSearchIndexReference extends KnowledgeBaseReference { + @doc("The discriminator value.") + type: KnowledgeBaseReferenceType.searchIndex; + + @doc("The document key for the reference.") + docKey?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an Azure Blob Storage document reference.") +model KnowledgeBaseAzureBlobReference extends KnowledgeBaseReference { + @doc("The discriminator value.") + type: KnowledgeBaseReferenceType.azureBlob; + + @doc("The blob URL for the reference.") + blobUrl?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an indexed SharePoint document reference.") +model KnowledgeBaseIndexedSharePointReference extends KnowledgeBaseReference { + @doc("The discriminator value.") + type: KnowledgeBaseReferenceType.indexedSharePoint; + + @doc("The document URL for the reference.") + docUrl?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents an indexed OneLake document reference.") +model KnowledgeBaseIndexedOneLakeReference extends KnowledgeBaseReference { + @doc("The discriminator value.") + type: KnowledgeBaseReferenceType.indexedOneLake; + + @doc("The document URL for the reference.") + docUrl?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents a web document reference.") +model KnowledgeBaseWebReference extends KnowledgeBaseReference { + @doc("The discriminator value.") + type: KnowledgeBaseReferenceType.web; + + @doc("The url the reference data originated from.") + url?: url; + + @doc("The title of the web document.") + title?: string; +} + +#suppress "@azure-tools/typespec-azure-core/no-multiple-discriminator" "Existing" +@doc("Represents a remote SharePoint document reference.") +model KnowledgeBaseRemoteSharePointReference extends KnowledgeBaseReference { + @doc("The discriminator value.") + type: KnowledgeBaseReferenceType.remoteSharePoint; + + @doc("The url the reference data originated from.") + webUrl?: url; + + @doc("Information about the sensitivity label applied to the SharePoint document.") + searchSensitivityLabelInfo?: SharePointSensitivityLabelInfo; +} + +@doc("Information about the sensitivity label applied to a SharePoint document.") +model SharePointSensitivityLabelInfo { + @doc("The display name for the sensitivity label.") + displayName?: string; + + @doc("The ID of the sensitivity label.") + sensitivityLabelId?: string; + + @doc("The tooltip that should be displayed for the label in a UI.") + tooltip?: string; + + @doc("The priority in which the sensitivity label is applied.") + priority?: int32; + + @doc("The color that the UI should display for the label, if configured.") + color?: string; + + @doc("Indicates whether the sensitivity label enforces encryption.") + isEncrypted?: boolean; +} + +@doc("The error details.") +model KnowledgeBaseErrorDetail { + @doc("The error code.") + @visibility(Lifecycle.Read) + code?: string; + + @doc("The error message.") + @visibility(Lifecycle.Read) + message?: string; + + @doc("The error target.") + @visibility(Lifecycle.Read) + target?: string; + + @doc("The error details.") + @visibility(Lifecycle.Read) + @Azure.ResourceManager.identifiers(#[]) + details?: KnowledgeBaseErrorDetail[]; + + @doc("The error additional info.") + @visibility(Lifecycle.Read) + @Azure.ResourceManager.identifiers(#[]) + additionalInfo?: KnowledgeBaseErrorAdditionalInfo[]; +} + +@doc("The resource management error additional info.") +model KnowledgeBaseErrorAdditionalInfo { + @doc("The additional info type.") + @visibility(Lifecycle.Read) + type?: string; + + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Allows arbitrary JSON via additionalProperties: true." + @doc("The additional info.") + @visibility(Lifecycle.Read) + info?: Record; +} + +@doc("Successful retrieval response.") +model KnowledgeBaseRetrievalSuccessResponse { + @doc("The retrieval response is successfully returned.") + @statusCode + code: 200; + + @doc("The retrieval response body.") + @body + body: KnowledgeBaseRetrievalResponse; +} + +@doc("Partial retrieval response.") +model KnowledgeBaseRetrievalPartialResponse { + @doc("A partial retrieval response is returned.") + @statusCode + code: 206; + + @doc("The partial retrieval response body.") + @body + body: KnowledgeBaseRetrievalResponse; +} + +@doc("Parameters for AI Services.") +model AIServices { + @doc("The URI of the AI Services endpoint.") + uri: url; + + @doc("The API key for accessing AI Services.") + apiKey?: string; +} + +@doc("Optional content extraction mode. Default is 'minimal'.") +union KnowledgeSourceContentExtractionMode { + string, + + @doc("Extracts only essential metadata while deferring most content processing.") + Minimal: "minimal", + + @doc("Performs the full default content extraction pipeline.") + Standard: "standard", +} + +@doc("Permission types to ingest together with document content.") +union KnowledgeSourceIngestionPermissionOption { + string, + + @doc("Ingest explicit user identifiers alongside document content.") + UserIds: "userIds", + + @doc("Ingest group identifiers alongside document content.") + GroupIds: "groupIds", + + @doc("Ingest RBAC scope information alongside document content.") + RbacScope: "rbacScope", +} + +@doc("Consolidates all general ingestion settings for knowledge sources.") +model KnowledgeSourceIngestionParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("An explicit identity to use for this knowledge source.") + identity?: SearchIndexerDataIdentity | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional vectorizer configuration for vectorizing content.") + embeddingModel?: KnowledgeSourceVectorizer | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional chat completion model for image verbalization or context extraction.") + chatCompletionModel?: KnowledgeBaseModel | null; + + @doc("Indicates whether image verbalization should be disabled. Default is false.") + disableImageVerbalization?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional schedule for data ingestion.") + ingestionSchedule?: IndexingSchedule | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional list of permission types to ingest together with document content. If specified, it will set the indexer permission options for the data source.") + ingestionPermissionOptions?: KnowledgeSourceIngestionPermissionOption[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional content extraction mode. Default is 'minimal'.") + contentExtractionMode?: KnowledgeSourceContentExtractionMode | null = KnowledgeSourceContentExtractionMode.Minimal; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional AI Services configuration for content processing.") + aiServices?: AIServices | null; +} + +@doc("Specifies the vectorization method to be used for knowledge source embedding model.") +@discriminator("kind") +model KnowledgeSourceVectorizer { + @doc("The name of the kind of vectorization method being configured for use with vector search.") + kind: VectorSearchVectorizerKind; +} + +@doc("Specifies the Azure OpenAI resource used to vectorize a query string.") +model KnowledgeSourceAzureOpenAIVectorizer extends KnowledgeSourceVectorizer { + @doc("The discriminator value.") + kind: VectorSearchVectorizerKind.AzureOpenAI; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("Contains the parameters specific to Azure OpenAI embedding vectorization.") + azureOpenAIParameters?: AzureOpenAIVectorizerParameters; +} + +@doc("The current synchronization status of the knowledge source.") +union KnowledgeSourceSynchronizationStatus { + string, + + @doc("The knowledge source is being provisioned.") + Creating: "creating", + + @doc("The knowledge source is active and synchronization runs are occurring.") + Active: "active", + + @doc("The knowledge source is being deleted and synchronization is paused.") + Deleting: "deleting", +} + +@doc("Represents the status and synchronization history of a knowledge source.") +model KnowledgeSourceStatus { + @doc("The current synchronization status.") + synchronizationStatus: KnowledgeSourceSynchronizationStatus; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The synchronization interval (e.g., '1d' for daily). Null if no schedule is configured.") + synchronizationInterval?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Current synchronization state that spans multiple indexer runs.") + currentSynchronizationState?: SynchronizationState | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Details of the last completed synchronization. Null on first sync.") + lastSynchronizationState?: CompletedSynchronizationState | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Statistical information about the knowledge source synchronization history. Null on first sync.") + statistics?: KnowledgeSourceStatistics | null; +} + +@doc("Statistical information about knowledge source synchronization history.") +model KnowledgeSourceStatistics { + @doc("Total number of synchronizations.") + totalSynchronization: int32; + + @doc("Average synchronization duration in HH:MM:SS format.") + averageSynchronizationDuration: string; + + @doc("Average items processed per synchronization.") + averageItemsProcessedPerSynchronization: int32; +} + +@doc("Represents the current state of an ongoing synchronization that spans multiple indexer runs.") +model SynchronizationState { + @doc("The start time of the current synchronization.") + startTime: utcDateTime; + + @doc("The number of item updates successfully processed in the current synchronization.") + itemsUpdatesProcessed: int32; + + @doc("The number of item updates that failed in the current synchronization.") + itemsUpdatesFailed: int32; + + @doc("The number of items skipped in the current synchronization.") + itemsSkipped: int32; +} + +@doc("Represents the completed state of the last synchronization.") +model CompletedSynchronizationState { + @doc("The start time of the last completed synchronization.") + startTime: utcDateTime; + + @doc("The end time of the last completed synchronization.") + endTime: utcDateTime; + + @doc("The number of item updates successfully processed in the last synchronization.") + itemsUpdatesProcessed: int32; + + @doc("The number of item updates that failed in the last synchronization.") + itemsUpdatesFailed: int32; + + @doc("The number of items skipped in the last synchronization.") + itemsSkipped: int32; +} diff --git a/specification/search/data-plane/Search/models-service.tsp b/specification/search/data-plane/Search/models-service.tsp new file mode 100644 index 000000000000..c179c97e6e36 --- /dev/null +++ b/specification/search/data-plane/Search/models-service.tsp @@ -0,0 +1,6600 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-client-generator-core"; +import "./models-shared.tsp"; + +using Azure.ClientGenerator.Core.Legacy; + +namespace Search; + +@doc("Defines the type of a datasource.") +union SearchIndexerDataSourceType { + string, + + @doc("Indicates an Azure SQL datasource.") + AzureSql: "azuresql", + + @doc("Indicates a CosmosDB datasource.") + CosmosDb: "cosmosdb", + + @doc("Indicates an Azure Blob datasource.") + AzureBlob: "azureblob", + + @doc("Indicates an Azure Table datasource.") + AzureTable: "azuretable", + + @doc("Indicates a MySql datasource.") + MySql: "mysql", + + @doc("Indicates an ADLS Gen2 datasource.") + AdlsGen2: "adlsgen2", + + @doc("Indicates a Microsoft Fabric OneLake datasource.") + OneLake: "onelake", + + @doc("Indicates a SharePoint datasource.") + SharePoint: "sharepoint", +} + +@doc("Represents the parsing mode for indexing from an Azure blob data source.") +union BlobIndexerParsingMode { + string, + + @doc("Set to default for normal file processing.") + Default: "default", + + @doc("Set to text to improve indexing performance on plain text files in blob storage.") + Text: "text", + + @doc("Set to delimitedText when blobs are plain CSV files.") + DelimitedText: "delimitedText", + + @doc("Set to json to extract structured content from JSON files.") + Json: "json", + + @doc("Set to jsonArray to extract individual elements of a JSON array as separate documents.") + JsonArray: "jsonArray", + + @doc("Set to jsonLines to extract individual JSON entities, separated by a new line, as separate documents.") + JsonLines: "jsonLines", + + @doc("Set to markdown to extract content from markdown files.") + Markdown: "markdown", +} + +@doc("Specifies the submode that will determine whether a markdown file will be parsed into exactly one search document or multiple search documents. Default is `oneToMany`.") +union MarkdownParsingSubmode { + string, + + @doc("Indicates that each section of the markdown file (up to a specified depth) will be parsed into individual search documents. This can result in a single markdown file producing multiple search documents. This is the default sub-mode.") + OneToMany: "oneToMany", + + @doc("Indicates that each markdown file will be parsed into a single search document.") + OneToOne: "oneToOne", +} + +@doc("Specifies the max header depth that will be considered while grouping markdown content. Default is `h6`.") +union MarkdownHeaderDepth { + string, + + @doc("Indicates that headers up to a level of h1 will be considered while grouping markdown content.") + h1: "h1", + + @doc("Indicates that headers up to a level of h2 will be considered while grouping markdown content.") + h2: "h2", + + @doc("Indicates that headers up to a level of h3 will be considered while grouping markdown content.") + h3: "h3", + + @doc("Indicates that headers up to a level of h4 will be considered while grouping markdown content.") + h4: "h4", + + @doc("Indicates that headers up to a level of h5 will be considered while grouping markdown content.") + h5: "h5", + + @doc("Indicates that headers up to a level of h6 will be considered while grouping markdown content. This is the default.") + h6: "h6", +} + +@doc("Specifies the data to extract from Azure blob storage and tells the indexer which data to extract from image content when \"imageAction\" is set to a value other than \"none\". This applies to embedded image content in a .PDF or other application, or image files such as .jpg and .png, in Azure blobs.") +union BlobIndexerDataToExtract { + string, + + @doc("Indexes just the standard blob properties and user-specified metadata.") + StorageMetadata: "storageMetadata", + + @doc("Extracts metadata provided by the Azure blob storage subsystem and the content-type specific metadata (for example, metadata unique to just .png files are indexed).") + AllMetadata: "allMetadata", + + @doc("Extracts all metadata and textual content from each blob.") + ContentAndMetadata: "contentAndMetadata", +} + +@doc("Determines how to process embedded images and image files in Azure blob storage. Setting the \"imageAction\" configuration to any value other than \"none\" requires that a skillset also be attached to that indexer.") +union BlobIndexerImageAction { + string, + + @doc("Ignores embedded images or image files in the data set. This is the default.") + None: "none", + + @doc("Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field. This action requires that \"dataToExtract\" is set to \"contentAndMetadata\". A normalized image refers to additional processing resulting in uniform image output, sized and rotated to promote consistent rendering when you include images in visual search results. This information is generated for each image when you use this option.") + GenerateNormalizedImages: "generateNormalizedImages", + + @doc("Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field, but treats PDF files differently in that each page will be rendered as an image and normalized accordingly, instead of extracting embedded images. Non-PDF file types will be treated the same as if \"generateNormalizedImages\" was set.") + GenerateNormalizedImagePerPage: "generateNormalizedImagePerPage", +} + +@doc("Determines algorithm for text extraction from PDF files in Azure blob storage.") +union BlobIndexerPDFTextRotationAlgorithm { + string, + + @doc("Leverages normal text extraction. This is the default.") + None: "none", + + @doc("May produce better and more readable text extraction from PDF files that have rotated text within them. Note that there may be a small performance speed impact when this parameter is used. This parameter only applies to PDF files, and only to PDFs with embedded text. If the rotated text appears within an embedded image in the PDF, this parameter does not apply.") + DetectAngles: "detectAngles", +} + +@doc("Specifies the environment in which the indexer should execute.") +union IndexerExecutionEnvironment { + string, + + @doc("Indicates that the search service can determine where the indexer should execute. This is the default environment when nothing is specified and is the recommended value.") + standard: "standard", + + @doc("Indicates that the indexer should run with the environment provisioned specifically for the search service. This should only be specified as the execution environment if the indexer needs to access resources securely over shared private link resources.") + private: "private", +} + +@doc("Details the status of an individual indexer execution.") +union IndexerExecutionStatusDetail { + string, + + @doc("Indicates that the reset that occurred was for a call to ResetDocs.") + ResetDocs: "resetDocs", + + @doc("Indicates to selectively resync based on option(s) from data source.") + Resync: "resync", +} + +@doc("Represents the mode the indexer is executing in.") +union IndexingMode { + string, + + @doc("The indexer is indexing all documents in the datasource.") + IndexingAllDocs: "indexingAllDocs", + + @doc("The indexer is indexing selective, reset documents in the datasource. The documents being indexed are defined on indexer status.") + IndexingResetDocs: "indexingResetDocs", + + @doc("The indexer is resyncing and indexing selective option(s) from the datasource.") + IndexingResync: "indexingResync", +} + +@doc("Defines behavior of the index projections in relation to the rest of the indexer.") +union IndexProjectionMode { + string, + + @doc("The source document will be skipped from writing into the indexer's target index.") + SkipIndexingParentDocuments: "skipIndexingParentDocuments", + + @doc("The source document will be written into the indexer's target index. This is the default pattern.") + IncludeIndexingParentDocuments: "includeIndexingParentDocuments", +} + +@doc("Defines the data type of a field in a search index.") +union SearchFieldDataType { + string, + + @doc("Indicates that a field contains a string.") + String: "Edm.String", + + @doc("Indicates that a field contains a 32-bit signed integer.") + Int32: "Edm.Int32", + + @doc("Indicates that a field contains a 64-bit signed integer.") + Int64: "Edm.Int64", + + @doc("Indicates that a field contains an IEEE double-precision floating point number.") + Double: "Edm.Double", + + @doc("Indicates that a field contains a Boolean value (true or false).") + Boolean: "Edm.Boolean", + + @doc("Indicates that a field contains a date/time value, including timezone information.") + DateTimeOffset: "Edm.DateTimeOffset", + + @doc("Indicates that a field contains a geo-location in terms of longitude and latitude.") + GeographyPoint: "Edm.GeographyPoint", + + @doc("Indicates that a field contains one or more complex objects that in turn have sub-fields of other types.") + Complex: "Edm.ComplexType", + + @doc("Indicates that a field contains a single-precision floating point number. This is only valid when used with Collection(Edm.Single).") + Single: "Edm.Single", + + @doc("Indicates that a field contains a half-precision floating point number. This is only valid when used with Collection(Edm.Half).") + Half: "Edm.Half", + + @doc("Indicates that a field contains a 16-bit signed integer. This is only valid when used with Collection(Edm.Int16).") + Int16: "Edm.Int16", + + @doc("Indicates that a field contains a 8-bit signed integer. This is only valid when used with Collection(Edm.SByte).") + SByte: "Edm.SByte", + + @doc("Indicates that a field contains a 8-bit unsigned integer. This is only valid when used with Collection(Edm.Byte).") + Byte: "Edm.Byte", +} + +@doc("Defines the names of all text analyzers supported by the search engine.") +union LexicalAnalyzerName { + string, + + @doc("Microsoft analyzer for Arabic.") + ArMicrosoft: "ar.microsoft", + + @doc("Lucene analyzer for Arabic.") + ArLucene: "ar.lucene", + + @doc("Lucene analyzer for Armenian.") + HyLucene: "hy.lucene", + + @doc("Microsoft analyzer for Bangla.") + BnMicrosoft: "bn.microsoft", + + @doc("Lucene analyzer for Basque.") + EuLucene: "eu.lucene", + + @doc("Microsoft analyzer for Bulgarian.") + BgMicrosoft: "bg.microsoft", + + @doc("Lucene analyzer for Bulgarian.") + BgLucene: "bg.lucene", + + @doc("Microsoft analyzer for Catalan.") + CaMicrosoft: "ca.microsoft", + + @doc("Lucene analyzer for Catalan.") + CaLucene: "ca.lucene", + + @doc("Microsoft analyzer for Chinese (Simplified).") + ZhHansMicrosoft: "zh-Hans.microsoft", + + @doc("Lucene analyzer for Chinese (Simplified).") + ZhHansLucene: "zh-Hans.lucene", + + @doc("Microsoft analyzer for Chinese (Traditional).") + ZhHantMicrosoft: "zh-Hant.microsoft", + + @doc("Lucene analyzer for Chinese (Traditional).") + ZhHantLucene: "zh-Hant.lucene", + + @doc("Microsoft analyzer for Croatian.") + HrMicrosoft: "hr.microsoft", + + @doc("Microsoft analyzer for Czech.") + CsMicrosoft: "cs.microsoft", + + @doc("Lucene analyzer for Czech.") + CsLucene: "cs.lucene", + + @doc("Microsoft analyzer for Danish.") + DaMicrosoft: "da.microsoft", + + @doc("Lucene analyzer for Danish.") + DaLucene: "da.lucene", + + @doc("Microsoft analyzer for Dutch.") + NlMicrosoft: "nl.microsoft", + + @doc("Lucene analyzer for Dutch.") + NlLucene: "nl.lucene", + + @doc("Microsoft analyzer for English.") + EnMicrosoft: "en.microsoft", + + @doc("Lucene analyzer for English.") + EnLucene: "en.lucene", + + @doc("Microsoft analyzer for Estonian.") + EtMicrosoft: "et.microsoft", + + @doc("Microsoft analyzer for Finnish.") + FiMicrosoft: "fi.microsoft", + + @doc("Lucene analyzer for Finnish.") + FiLucene: "fi.lucene", + + @doc("Microsoft analyzer for French.") + FrMicrosoft: "fr.microsoft", + + @doc("Lucene analyzer for French.") + FrLucene: "fr.lucene", + + @doc("Lucene analyzer for Galician.") + GlLucene: "gl.lucene", + + @doc("Microsoft analyzer for German.") + DeMicrosoft: "de.microsoft", + + @doc("Lucene analyzer for German.") + DeLucene: "de.lucene", + + @doc("Microsoft analyzer for Greek.") + ElMicrosoft: "el.microsoft", + + @doc("Lucene analyzer for Greek.") + ElLucene: "el.lucene", + + @doc("Microsoft analyzer for Gujarati.") + GuMicrosoft: "gu.microsoft", + + @doc("Microsoft analyzer for Hebrew.") + HeMicrosoft: "he.microsoft", + + @doc("Microsoft analyzer for Hindi.") + HiMicrosoft: "hi.microsoft", + + @doc("Lucene analyzer for Hindi.") + HiLucene: "hi.lucene", + + @doc("Microsoft analyzer for Hungarian.") + HuMicrosoft: "hu.microsoft", + + @doc("Lucene analyzer for Hungarian.") + HuLucene: "hu.lucene", + + @doc("Microsoft analyzer for Icelandic.") + IsMicrosoft: "is.microsoft", + + @doc("Microsoft analyzer for Indonesian (Bahasa).") + IdMicrosoft: "id.microsoft", + + @doc("Lucene analyzer for Indonesian.") + IdLucene: "id.lucene", + + @doc("Lucene analyzer for Irish.") + GaLucene: "ga.lucene", + + @doc("Microsoft analyzer for Italian.") + ItMicrosoft: "it.microsoft", + + @doc("Lucene analyzer for Italian.") + ItLucene: "it.lucene", + + @doc("Microsoft analyzer for Japanese.") + JaMicrosoft: "ja.microsoft", + + @doc("Lucene analyzer for Japanese.") + JaLucene: "ja.lucene", + + @doc("Microsoft analyzer for Kannada.") + KnMicrosoft: "kn.microsoft", + + @doc("Microsoft analyzer for Korean.") + KoMicrosoft: "ko.microsoft", + + @doc("Lucene analyzer for Korean.") + KoLucene: "ko.lucene", + + @doc("Microsoft analyzer for Latvian.") + LvMicrosoft: "lv.microsoft", + + @doc("Lucene analyzer for Latvian.") + LvLucene: "lv.lucene", + + @doc("Microsoft analyzer for Lithuanian.") + LtMicrosoft: "lt.microsoft", + + @doc("Microsoft analyzer for Malayalam.") + MlMicrosoft: "ml.microsoft", + + @doc("Microsoft analyzer for Malay (Latin).") + MsMicrosoft: "ms.microsoft", + + @doc("Microsoft analyzer for Marathi.") + MrMicrosoft: "mr.microsoft", + + @doc("Microsoft analyzer for Norwegian (BokmÃ¥l).") + NbMicrosoft: "nb.microsoft", + + @doc("Lucene analyzer for Norwegian.") + NoLucene: "no.lucene", + + @doc("Lucene analyzer for Persian.") + FaLucene: "fa.lucene", + + @doc("Microsoft analyzer for Polish.") + PlMicrosoft: "pl.microsoft", + + @doc("Lucene analyzer for Polish.") + PlLucene: "pl.lucene", + + @doc("Microsoft analyzer for Portuguese (Brazil).") + PtBrMicrosoft: "pt-BR.microsoft", + + @doc("Lucene analyzer for Portuguese (Brazil).") + PtBrLucene: "pt-BR.lucene", + + @doc("Microsoft analyzer for Portuguese (Portugal).") + PtPtMicrosoft: "pt-PT.microsoft", + + @doc("Lucene analyzer for Portuguese (Portugal).") + PtPtLucene: "pt-PT.lucene", + + @doc("Microsoft analyzer for Punjabi.") + PaMicrosoft: "pa.microsoft", + + @doc("Microsoft analyzer for Romanian.") + RoMicrosoft: "ro.microsoft", + + @doc("Lucene analyzer for Romanian.") + RoLucene: "ro.lucene", + + @doc("Microsoft analyzer for Russian.") + RuMicrosoft: "ru.microsoft", + + @doc("Lucene analyzer for Russian.") + RuLucene: "ru.lucene", + + @doc("Microsoft analyzer for Serbian (Cyrillic).") + SrCyrillicMicrosoft: "sr-cyrillic.microsoft", + + @doc("Microsoft analyzer for Serbian (Latin).") + SrLatinMicrosoft: "sr-latin.microsoft", + + @doc("Microsoft analyzer for Slovak.") + SkMicrosoft: "sk.microsoft", + + @doc("Microsoft analyzer for Slovenian.") + SlMicrosoft: "sl.microsoft", + + @doc("Microsoft analyzer for Spanish.") + EsMicrosoft: "es.microsoft", + + @doc("Lucene analyzer for Spanish.") + EsLucene: "es.lucene", + + @doc("Microsoft analyzer for Swedish.") + SvMicrosoft: "sv.microsoft", + + @doc("Lucene analyzer for Swedish.") + SvLucene: "sv.lucene", + + @doc("Microsoft analyzer for Tamil.") + TaMicrosoft: "ta.microsoft", + + @doc("Microsoft analyzer for Telugu.") + TeMicrosoft: "te.microsoft", + + @doc("Microsoft analyzer for Thai.") + ThMicrosoft: "th.microsoft", + + @doc("Lucene analyzer for Thai.") + ThLucene: "th.lucene", + + @doc("Microsoft analyzer for Turkish.") + TrMicrosoft: "tr.microsoft", + + @doc("Lucene analyzer for Turkish.") + TrLucene: "tr.lucene", + + @doc("Microsoft analyzer for Ukrainian.") + UkMicrosoft: "uk.microsoft", + + @doc("Microsoft analyzer for Urdu.") + UrMicrosoft: "ur.microsoft", + + @doc("Microsoft analyzer for Vietnamese.") + ViMicrosoft: "vi.microsoft", + + @doc("Standard Lucene analyzer.") + StandardLucene: "standard.lucene", + + @doc("Standard ASCII Folding Lucene analyzer. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#Analyzers") + StandardAsciiFoldingLucene: "standardasciifolding.lucene", + + @doc("Treats the entire content of a field as a single token. This is useful for data like zip codes, ids, and some product names. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordAnalyzer.html") + Keyword: "keyword", + + @doc("Flexibly separates text into terms via a regular expression pattern. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/PatternAnalyzer.html") + Pattern: "pattern", + + @doc("Divides text at non-letters and converts them to lower case. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/SimpleAnalyzer.html") + Simple: "simple", + + @doc("Divides text at non-letters; Applies the lowercase and stopword token filters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopAnalyzer.html") + Stop: "stop", + + @doc("An analyzer that uses the whitespace tokenizer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/WhitespaceAnalyzer.html") + Whitespace: "whitespace", +} + +@doc("Defines the names of all text normalizers supported by the search engine.") +union LexicalNormalizerName { + string, + + @doc("Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html") + AsciiFolding: "asciifolding", + + @doc("Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html") + Elision: "elision", + + @doc("Normalizes token text to lowercase. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/LowerCaseFilter.html") + Lowercase: "lowercase", + + @doc("Standard normalizer, which consists of lowercase and asciifolding. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/reverse/ReverseStringFilter.html") + Standard: "standard", + + @doc("Normalizes token text to uppercase. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/UpperCaseFilter.html") + Uppercase: "uppercase", +} + +@doc("The encoding format for interpreting vector field contents.") +union VectorEncodingFormat { + string, + + @doc("Encoding format representing bits packed into a wider data type.") + PackedBit: "packedBit", +} + +@doc("The algorithm used for indexing and querying.") +union VectorSearchAlgorithmKind { + string, + + @doc("HNSW (Hierarchical Navigable Small World), a type of approximate nearest neighbors algorithm.") + Hnsw: "hnsw", + + @doc("Exhaustive KNN algorithm which will perform brute-force search.") + ExhaustiveKnn: "exhaustiveKnn", +} + +@doc("The vectorization method to be used during query time.") +union VectorSearchVectorizerKind { + string, + + @doc("Generate embeddings using an Azure OpenAI resource at query time.") + AzureOpenAI: "azureOpenAI", + + @doc("Generate embeddings using a custom web endpoint at query time.") + CustomWebApi: "customWebApi", + + @doc("Generate embeddings for an image or text input at query time using the Azure AI Services Vision Vectorize API.") + AIServicesVision: "aiServicesVision", + + @doc("Generate embeddings using an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog at query time.") + AML: "aml", +} + +@doc("The compression method used for indexing and querying.") +union VectorSearchCompressionKind { + string, + + @doc("Scalar Quantization, a type of compression method. In scalar quantization, the original vectors values are compressed to a narrower type by discretizing and representing each component of a vector using a reduced set of quantized values, thereby reducing the overall data size.") + ScalarQuantization: "scalarQuantization", + + @doc("Binary Quantization, a type of compression method. In binary quantization, the original vectors values are compressed to the narrower binary type by discretizing and representing each component of a vector using binary values, thereby reducing the overall data size.") + BinaryQuantization: "binaryQuantization", +} + +@doc("The storage method for the original full-precision vectors used for rescoring and internal index operations.") +union VectorSearchCompressionRescoreStorageMethod { + string, + + @doc("This option preserves the original full-precision vectors. Choose this option for maximum flexibility and highest quality of compressed search results. This consumes more storage but allows for rescoring and oversampling.") + PreserveOriginals: "preserveOriginals", + + @doc("This option discards the original full-precision vectors. Choose this option for maximum storage savings. Since this option does not allow for rescoring and oversampling, it will often cause slight to moderate reductions in quality.") + DiscardOriginals: "discardOriginals", +} + +@doc("Defines the names of all tokenizers supported by the search engine.") +union LexicalTokenizerName { + string, + + @doc("Grammar-based tokenizer that is suitable for processing most European-language documents. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicTokenizer.html") + Classic: "classic", + + @doc("Tokenizes the input from an edge into n-grams of the given size(s). See https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.html") + EdgeNGram: "edgeNGram", + + @doc("Emits the entire input as a single token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordTokenizer.html") + Keyword: "keyword_v2", + + @doc("Divides text at non-letters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/LetterTokenizer.html") + Letter: "letter", + + @doc("Divides text at non-letters and converts them to lower case. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/LowerCaseTokenizer.html") + Lowercase: "lowercase", + + @doc("Divides text using language-specific rules.") + MicrosoftLanguageTokenizer: "microsoft_language_tokenizer", + + @doc("Divides text using language-specific rules and reduces words to their base forms.") + MicrosoftLanguageStemmingTokenizer: "microsoft_language_stemming_tokenizer", + + @doc("Tokenizes the input into n-grams of the given size(s). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenizer.html") + NGram: "nGram", + + @doc("Tokenizer for path-like hierarchies. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/path/PathHierarchyTokenizer.html") + PathHierarchy: "path_hierarchy_v2", + + @doc("Tokenizer that uses regex pattern matching to construct distinct tokens. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternTokenizer.html") + Pattern: "pattern", + + @doc("Standard Lucene analyzer; Composed of the standard tokenizer, lowercase filter and stop filter. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/StandardTokenizer.html") + Standard: "standard_v2", + + @doc("Tokenizes urls and emails as one token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizer.html") + UaxUrlEmail: "uax_url_email", + + @doc("Divides text at whitespace. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/WhitespaceTokenizer.html") + Whitespace: "whitespace", +} + +@doc("Defines the names of all token filters supported by the search engine.") +union TokenFilterName { + string, + + @doc("A token filter that applies the Arabic normalizer to normalize the orthography. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ar/ArabicNormalizationFilter.html") + ArabicNormalization: "arabic_normalization", + + @doc("Strips all characters after an apostrophe (including the apostrophe itself). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/tr/ApostropheFilter.html") + Apostrophe: "apostrophe", + + @doc("Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html") + AsciiFolding: "asciifolding", + + @doc("Forms bigrams of CJK terms that are generated from the standard tokenizer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKBigramFilter.html") + CjkBigram: "cjk_bigram", + + @doc("Normalizes CJK width differences. Folds full-width ASCII variants into the equivalent basic Latin, and half-width Katakana variants into the equivalent Kana. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKWidthFilter.html") + CjkWidth: "cjk_width", + + @doc("Removes English possessives, and dots from acronyms. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicFilter.html") + Classic: "classic", + + @doc("Construct bigrams for frequently occurring terms while indexing. Single terms are still indexed too, with bigrams overlaid. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/commongrams/CommonGramsFilter.html") + CommonGram: "common_grams", + + @doc("Generates n-grams of the given size(s) starting from the front or the back of an input token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.html") + EdgeNGram: "edgeNGram_v2", + + @doc("Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html") + Elision: "elision", + + @doc("Normalizes German characters according to the heuristics of the German2 snowball algorithm. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/de/GermanNormalizationFilter.html") + GermanNormalization: "german_normalization", + + @doc("Normalizes text in Hindi to remove some differences in spelling variations. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/hi/HindiNormalizationFilter.html") + HindiNormalization: "hindi_normalization", + + @doc("Normalizes the Unicode representation of text in Indian languages. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/in/IndicNormalizationFilter.html") + IndicNormalization: "indic_normalization", + + @doc("Emits each incoming token twice, once as keyword and once as non-keyword. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/KeywordRepeatFilter.html") + KeywordRepeat: "keyword_repeat", + + @doc("A high-performance kstem filter for English. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/en/KStemFilter.html") + KStem: "kstem", + + @doc("Removes words that are too long or too short. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LengthFilter.html") + Length: "length", + + @doc("Limits the number of tokens while indexing. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LimitTokenCountFilter.html") + Limit: "limit", + + @doc("Normalizes token text to lower case. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/LowerCaseFilter.html") + Lowercase: "lowercase", + + @doc("Generates n-grams of the given size(s). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenFilter.html") + NGram: "nGram_v2", + + @doc("Applies normalization for Persian. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/fa/PersianNormalizationFilter.html") + PersianNormalization: "persian_normalization", + + @doc("Create tokens for phonetic matches. See https://lucene.apache.org/core/4_10_3/analyzers-phonetic/org/apache/lucene/analysis/phonetic/package-tree.html") + Phonetic: "phonetic", + + @doc("Uses the Porter stemming algorithm to transform the token stream. See http://tartarus.org/~martin/PorterStemmer") + PorterStem: "porter_stem", + + @doc("Reverses the token string. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/reverse/ReverseStringFilter.html") + Reverse: "reverse", + + @doc("Normalizes use of the interchangeable Scandinavian characters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ScandinavianNormalizationFilter.html") + ScandinavianNormalization: "scandinavian_normalization", + + @doc("Folds Scandinavian characters åÅäæÄÆ->a and öÖøØ->o. It also discriminates against use of double vowels aa, ae, ao, oe and oo, leaving just the first one. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ScandinavianFoldingFilter.html") + ScandinavianFoldingNormalization: "scandinavian_folding", + + @doc("Creates combinations of tokens as a single token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/shingle/ShingleFilter.html") + Shingle: "shingle", + + @doc("A filter that stems words using a Snowball-generated stemmer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/snowball/SnowballFilter.html") + Snowball: "snowball", + + @doc("Normalizes the Unicode representation of Sorani text. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ckb/SoraniNormalizationFilter.html") + SoraniNormalization: "sorani_normalization", + + @doc("Language specific stemming filter. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#TokenFilters") + Stemmer: "stemmer", + + @doc("Removes stop words from a token stream. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopFilter.html") + Stopwords: "stopwords", + + @doc("Trims leading and trailing whitespace from tokens. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TrimFilter.html") + Trim: "trim", + + @doc("Truncates the terms to a specific length. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TruncateTokenFilter.html") + Truncate: "truncate", + + @doc("Filters out tokens with same text as the previous token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/RemoveDuplicatesTokenFilter.html") + Unique: "unique", + + @doc("Normalizes token text to upper case. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/UpperCaseFilter.html") + Uppercase: "uppercase", + + @doc("Splits words into subwords and performs optional transformations on subword groups.") + WordDelimiter: "word_delimiter", +} + +@doc("Defines the names of all character filters supported by the search engine.") +union CharFilterName { + string, + + @doc("A character filter that attempts to strip out HTML constructs. See https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.html") + HtmlStrip: "html_strip", +} + +@doc("Defines flags that can be combined to control how regular expressions are used in the pattern analyzer and pattern tokenizer.") +union RegexFlags { + string, + + @doc("Enables canonical equivalence.") + CanonEq: "CANON_EQ", + + @doc("Enables case-insensitive matching.") + CaseInsensitive: "CASE_INSENSITIVE", + + @doc("Permits whitespace and comments in the pattern.") + Comments: "COMMENTS", + + @doc("Enables dotall mode.") + DotAll: "DOTALL", + + @doc("Enables literal parsing of the pattern.") + Literal: "LITERAL", + + @doc("Enables multiline mode.") + Multiline: "MULTILINE", + + @doc("Enables Unicode-aware case folding.") + UnicodeCase: "UNICODE_CASE", + + @doc("Enables Unix lines mode.") + UnixLines: "UNIX_LINES", +} + +@doc("The similarity metric to use for vector comparisons. It is recommended to choose the same similarity metric as the embedding model was trained on.") +union VectorSearchAlgorithmMetric { + string, + + @doc("Measures the angle between vectors to quantify their similarity, disregarding magnitude. The smaller the angle, the closer the similarity.") + Cosine: "cosine", + + @doc("Computes the straight-line distance between vectors in a multi-dimensional space. The smaller the distance, the closer the similarity.") + Euclidean: "euclidean", + + @doc("Calculates the sum of element-wise products to gauge alignment and magnitude similarity. The larger and more positive, the closer the similarity.") + DotProduct: "dotProduct", + + @doc("Only applicable to bit-packed binary data types. Determines dissimilarity by counting differing positions in binary vectors. The fewer differences, the closer the similarity.") + Hamming: "hamming", +} + +@doc("The quantized data type of compressed vector values.") +union VectorSearchCompressionTarget { + string, + + @doc("8-bit signed integer.") + Int8: "int8", +} + +@doc("The Azure Open AI model name that will be called.") +union AzureOpenAIModelName { + string, + + @doc("TextEmbeddingAda002 model.") + TextEmbeddingAda002: "text-embedding-ada-002", + + @doc("TextEmbedding3Large model.") + TextEmbedding3Large: "text-embedding-3-large", + + @doc("TextEmbedding3Small model.") + TextEmbedding3Small: "text-embedding-3-small", + + @doc("Gpt4o model.") + Gpt4o: "gpt-4o", + + @doc("Gpt4oMini model.") + Gpt4oMini: "gpt-4o-mini", + + @doc("Gpt41 model.") + Gpt41: "gpt-4.1", + + @doc("Gpt41Mini model.") + Gpt41Mini: "gpt-4.1-mini", + + @doc("Gpt41Nano model.") + Gpt41Nano: "gpt-4.1-nano", + + @doc("Gpt5 model.") + Gpt5: "gpt-5", + + @doc("Gpt5Mini model.") + Gpt5Mini: "gpt-5-mini", + + @doc("Gpt5Nano model.") + Gpt5Nano: "gpt-5-nano", +} + +@doc("The name of the embedding model from the Azure AI Foundry Catalog that will be called.") +union AIFoundryModelCatalogName { + string, + + @doc("OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32") + OpenAICLIPImageTextEmbeddingsVitBasePatch32: "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32", + + @doc("OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336") + OpenAICLIPImageTextEmbeddingsViTLargePatch14336: "OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336", + + @doc("Facebook-DinoV2-Image-Embeddings-ViT-Base") + FacebookDinoV2ImageEmbeddingsViTBase: "Facebook-DinoV2-Image-Embeddings-ViT-Base", + + @doc("Facebook-DinoV2-Image-Embeddings-ViT-Giant") + FacebookDinoV2ImageEmbeddingsViTGiant: "Facebook-DinoV2-Image-Embeddings-ViT-Giant", + + @doc("Cohere-embed-v3-english") + CohereEmbedV3English: "Cohere-embed-v3-english", + + @doc("Cohere-embed-v3-multilingual") + CohereEmbedV3Multilingual: "Cohere-embed-v3-multilingual", + + @doc("Cohere embed v4 model for generating embeddings from both text and images.") + CohereEmbedV4: "Cohere-embed-v4", +} + +@doc("The language codes supported for input text by KeyPhraseExtractionSkill.") +union KeyPhraseExtractionSkillLanguage { + string, + + @doc("Danish") + da: "da", + + @doc("Dutch") + nl: "nl", + + @doc("English") + en: "en", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("German") + de: "de", + + @doc("Italian") + it: "it", + + @doc("Japanese") + ja: "ja", + + @doc("Korean") + ko: "ko", + + @doc("Norwegian (Bokmaal)") + no: "no", + + @doc("Polish") + pl: "pl", + + @doc("Portuguese (Portugal)") + `pt-PT`: "pt-PT", + + @doc("Portuguese (Brazil)") + `pt-BR`: "pt-BR", + + @doc("Russian") + ru: "ru", + + @doc("Spanish") + es: "es", + + @doc("Swedish") + sv: "sv", +} + +@doc("The language codes supported for input by OcrSkill.") +union OcrSkillLanguage { + string, + + @doc("Afrikaans") + af: "af", + + @doc("Albanian") + sq: "sq", + + @doc("Angika (Devanagiri)") + anp: "anp", + + @doc("Arabic") + ar: "ar", + + @doc("Asturian") + ast: "ast", + + @doc("Awadhi-Hindi (Devanagiri)") + awa: "awa", + + @doc("Azerbaijani (Latin)") + az: "az", + + @doc("Bagheli") + bfy: "bfy", + + @doc("Basque") + eu: "eu", + + @doc("Belarusian (Cyrillic and Latin)") + be: "be", + + @doc("Belarusian (Cyrillic)") + `be-cyrl`: "be-cyrl", + + @doc("Belarusian (Latin)") + `be-latn`: "be-latn", + + @doc("Bhojpuri-Hindi (Devanagiri)") + bho: "bho", + + @doc("Bislama") + bi: "bi", + + @doc("Bodo (Devanagiri)") + brx: "brx", + + @doc("Bosnian Latin") + bs: "bs", + + @doc("Brajbha") + bra: "bra", + + @doc("Breton") + br: "br", + + @doc("Bulgarian") + bg: "bg", + + @doc("Bundeli") + bns: "bns", + + @doc("Buryat (Cyrillic)") + bua: "bua", + + @doc("Catalan") + ca: "ca", + + @doc("Cebuano") + ceb: "ceb", + + @doc("Chamling") + rab: "rab", + + @doc("Chamorro") + ch: "ch", + + @doc("Chhattisgarhi (Devanagiri)") + hne: "hne", + + @doc("Chinese Simplified") + `zh-Hans`: "zh-Hans", + + @doc("Chinese Traditional") + `zh-Hant`: "zh-Hant", + + @doc("Cornish") + kw: "kw", + + @doc("Corsican") + co: "co", + + @doc("Crimean Tatar (Latin)") + crh: "crh", + + @doc("Croatian") + hr: "hr", + + @doc("Czech") + cs: "cs", + + @doc("Danish") + da: "da", + + @doc("Dari") + prs: "prs", + + @doc("Dhimal (Devanagiri)") + dhi: "dhi", + + @doc("Dogri (Devanagiri)") + doi: "doi", + + @doc("Dutch") + nl: "nl", + + @doc("English") + en: "en", + + @doc("Erzya (Cyrillic)") + myv: "myv", + + @doc("Estonian") + et: "et", + + @doc("Faroese") + fo: "fo", + + @doc("Fijian") + fj: "fj", + + @doc("Filipino") + fil: "fil", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("Frulian") + fur: "fur", + + @doc("Gagauz (Latin)") + gag: "gag", + + @doc("Galician") + gl: "gl", + + @doc("German") + de: "de", + + @doc("Gilbertese") + gil: "gil", + + @doc("Gondi (Devanagiri)") + gon: "gon", + + @doc("Greek") + el: "el", + + @doc("Greenlandic") + kl: "kl", + + @doc("Gurung (Devanagiri)") + gvr: "gvr", + + @doc("Haitian Creole") + ht: "ht", + + @doc("Halbi (Devanagiri)") + hlb: "hlb", + + @doc("Hani") + hni: "hni", + + @doc("Haryanvi") + bgc: "bgc", + + @doc("Hawaiian") + haw: "haw", + + @doc("Hindi") + hi: "hi", + + @doc("Hmong Daw (Latin)") + mww: "mww", + + @doc("Ho (Devanagiri)") + hoc: "hoc", + + @doc("Hungarian") + hu: "hu", + + @doc("Icelandic") + `is`: "is", + + @doc("Inari Sami") + smn: "smn", + + @doc("Indonesian") + id: "id", + + @doc("Interlingua") + ia: "ia", + + @doc("Inuktitut (Latin)") + iu: "iu", + + @doc("Irish") + ga: "ga", + + @doc("Italian") + it: "it", + + @doc("Japanese") + ja: "ja", + + @doc("Jaunsari (Devanagiri)") + Jns: "Jns", + + @doc("Javanese") + jv: "jv", + + @doc("Kabuverdianu") + kea: "kea", + + @doc("Kachin (Latin)") + kac: "kac", + + @doc("Kangri (Devanagiri)") + xnr: "xnr", + + @doc("Karachay-Balkar") + krc: "krc", + + @doc("Kara-Kalpak (Cyrillic)") + `kaa-cyrl`: "kaa-cyrl", + + @doc("Kara-Kalpak (Latin)") + kaa: "kaa", + + @doc("Kashubian") + csb: "csb", + + @doc("Kazakh (Cyrillic)") + `kk-cyrl`: "kk-cyrl", + + @doc("Kazakh (Latin)") + `kk-latn`: "kk-latn", + + @doc("Khaling") + klr: "klr", + + @doc("Khasi") + kha: "kha", + + @doc("K'iche'") + quc: "quc", + + @doc("Korean") + ko: "ko", + + @doc("Korku") + kfq: "kfq", + + @doc("Koryak") + kpy: "kpy", + + @doc("Kosraean") + kos: "kos", + + @doc("Kumyk (Cyrillic)") + kum: "kum", + + @doc("Kurdish (Arabic)") + `ku-arab`: "ku-arab", + + @doc("Kurdish (Latin)") + `ku-latn`: "ku-latn", + + @doc("Kurukh (Devanagiri)") + kru: "kru", + + @doc("Kyrgyz (Cyrillic)") + ky: "ky", + + @doc("Lakota") + lkt: "lkt", + + @doc("Latin") + la: "la", + + @doc("Lithuanian") + lt: "lt", + + @doc("Lower Sorbian") + dsb: "dsb", + + @doc("Lule Sami") + smj: "smj", + + @doc("Luxembourgish") + lb: "lb", + + @doc("Mahasu Pahari (Devanagiri)") + bfz: "bfz", + + @doc("Malay (Latin)") + ms: "ms", + + @doc("Maltese") + mt: "mt", + + @doc("Malto (Devanagiri)") + kmj: "kmj", + + @doc("Manx") + gv: "gv", + + @doc("Maori") + mi: "mi", + + @doc("Marathi") + mr: "mr", + + @doc("Mongolian (Cyrillic)") + mn: "mn", + + @doc("Montenegrin (Cyrillic)") + `cnr-cyrl`: "cnr-cyrl", + + @doc("Montenegrin (Latin)") + `cnr-latn`: "cnr-latn", + + @doc("Neapolitan") + nap: "nap", + + @doc("Nepali") + ne: "ne", + + @doc("Niuean") + niu: "niu", + + @doc("Nogay") + nog: "nog", + + @doc("Northern Sami (Latin)") + sme: "sme", + + @doc("Norwegian") + nb: "nb", + + @doc("Norwegian") + no: "no", + + @doc("Occitan") + oc: "oc", + + @doc("Ossetic") + os: "os", + + @doc("Pashto") + ps: "ps", + + @doc("Persian") + fa: "fa", + + @doc("Polish") + pl: "pl", + + @doc("Portuguese") + pt: "pt", + + @doc("Punjabi (Arabic)") + pa: "pa", + + @doc("Ripuarian") + ksh: "ksh", + + @doc("Romanian") + ro: "ro", + + @doc("Romansh") + rm: "rm", + + @doc("Russian") + ru: "ru", + + @doc("Sadri (Devanagiri)") + sck: "sck", + + @doc("Samoan (Latin)") + sm: "sm", + + @doc("Sanskrit (Devanagiri)") + sa: "sa", + + @doc("Santali (Devanagiri)") + sat: "sat", + + @doc("Scots") + sco: "sco", + + @doc("Scottish Gaelic") + gd: "gd", + + @doc("Serbian (Latin)") + sr: "sr", + + @doc("Serbian (Cyrillic)") + `sr-Cyrl`: "sr-Cyrl", + + @doc("Serbian (Latin)") + `sr-Latn`: "sr-Latn", + + @doc("Sherpa (Devanagiri)") + xsr: "xsr", + + @doc("Sirmauri (Devanagiri)") + srx: "srx", + + @doc("Skolt Sami") + sms: "sms", + + @doc("Slovak") + sk: "sk", + + @doc("Slovenian") + sl: "sl", + + @doc("Somali (Arabic)") + so: "so", + + @doc("Southern Sami") + sma: "sma", + + @doc("Spanish") + es: "es", + + @doc("Swahili (Latin)") + sw: "sw", + + @doc("Swedish") + sv: "sv", + + @doc("Tajik (Cyrillic)") + tg: "tg", + + @doc("Tatar (Latin)") + tt: "tt", + + @doc("Tetum") + tet: "tet", + + @doc("Thangmi") + thf: "thf", + + @doc("Tongan") + to: "to", + + @doc("Turkish") + tr: "tr", + + @doc("Turkmen (Latin)") + tk: "tk", + + @doc("Tuvan") + tyv: "tyv", + + @doc("Upper Sorbian") + hsb: "hsb", + + @doc("Urdu") + ur: "ur", + + @doc("Uyghur (Arabic)") + ug: "ug", + + @doc("Uzbek (Arabic)") + `uz-arab`: "uz-arab", + + @doc("Uzbek (Cyrillic)") + `uz-cyrl`: "uz-cyrl", + + @doc("Uzbek (Latin)") + uz: "uz", + + @doc("Volapük") + vo: "vo", + + @doc("Walser") + wae: "wae", + + @doc("Welsh") + cy: "cy", + + @doc("Western Frisian") + fy: "fy", + + @doc("Yucatec Maya") + yua: "yua", + + @doc("Zhuang") + za: "za", + + @doc("Zulu") + zu: "zu", + + @doc("Unknown (All)") + unk: "unk", +} + +@doc("Defines the sequence of characters to use between the lines of text recognized by the OCR skill. The default value is \"space\".") +union OcrLineEnding { + string, + + @doc("Lines are separated by a single space character.") + Space: "space", + + @doc("Lines are separated by a carriage return ('\r') character.") + CarriageReturn: "carriageReturn", + + @doc("Lines are separated by a single line feed ('\n') character.") + LineFeed: "lineFeed", + + @doc("Lines are separated by a carriage return and a line feed ('\r\n') character.") + CarriageReturnLineFeed: "carriageReturnLineFeed", +} + +@doc("The language codes supported for input by ImageAnalysisSkill.") +union ImageAnalysisSkillLanguage { + string, + + @doc("Arabic") + ar: "ar", + + @doc("Azerbaijani") + az: "az", + + @doc("Bulgarian") + bg: "bg", + + @doc("Bosnian Latin") + bs: "bs", + + @doc("Catalan") + ca: "ca", + + @doc("Czech") + cs: "cs", + + @doc("Welsh") + cy: "cy", + + @doc("Danish") + da: "da", + + @doc("German") + de: "de", + + @doc("Greek") + el: "el", + + @doc("English") + en: "en", + + @doc("Spanish") + es: "es", + + @doc("Estonian") + et: "et", + + @doc("Basque") + eu: "eu", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("Irish") + ga: "ga", + + @doc("Galician") + gl: "gl", + + @doc("Hebrew") + he: "he", + + @doc("Hindi") + hi: "hi", + + @doc("Croatian") + hr: "hr", + + @doc("Hungarian") + hu: "hu", + + @doc("Indonesian") + id: "id", + + @doc("Italian") + it: "it", + + @doc("Japanese") + ja: "ja", + + @doc("Kazakh") + kk: "kk", + + @doc("Korean") + ko: "ko", + + @doc("Lithuanian") + lt: "lt", + + @doc("Latvian") + lv: "lv", + + @doc("Macedonian") + mk: "mk", + + @doc("Malay Malaysia") + ms: "ms", + + @doc("Norwegian (Bokmal)") + nb: "nb", + + @doc("Dutch") + nl: "nl", + + @doc("Polish") + pl: "pl", + + @doc("Dari") + prs: "prs", + + @doc("Portuguese-Brazil") + `pt-BR`: "pt-BR", + + @doc("Portuguese-Portugal") + pt: "pt", + + @doc("Portuguese-Portugal") + `pt-PT`: "pt-PT", + + @doc("Romanian") + ro: "ro", + + @doc("Russian") + ru: "ru", + + @doc("Slovak") + sk: "sk", + + @doc("Slovenian") + sl: "sl", + + @doc("Serbian - Cyrillic RS") + `sr-Cyrl`: "sr-Cyrl", + + @doc("Serbian - Latin RS") + `sr-Latn`: "sr-Latn", + + @doc("Swedish") + sv: "sv", + + @doc("Thai") + th: "th", + + @doc("Turkish") + tr: "tr", + + @doc("Ukrainian") + uk: "uk", + + @doc("Vietnamese") + vi: "vi", + + @doc("Chinese Simplified") + zh: "zh", + + @doc("Chinese Simplified") + `zh-Hans`: "zh-Hans", + + @doc("Chinese Traditional") + `zh-Hant`: "zh-Hant", +} + +@doc("The strings indicating what visual feature types to return.") +union VisualFeature { + string, + + @doc("Visual features recognized as adult persons.") + Adult: "adult", + + @doc("Visual features recognized as commercial brands.") + Brands: "brands", + + @doc("Categories.") + Categories: "categories", + + @doc("Description.") + Description: "description", + + @doc("Visual features recognized as people faces.") + Faces: "faces", + + @doc("Visual features recognized as objects.") + Objects: "objects", + + @doc("Tags.") + Tags: "tags", +} + +@doc("A string indicating which domain-specific details to return.") +union ImageDetail { + string, + + @doc("Details recognized as celebrities.") + Celebrities: "celebrities", + + @doc("Details recognized as landmarks.") + Landmarks: "landmarks", +} + +@doc("A string indicating what entity categories to return.") +union EntityCategory { + string, + + @doc("Entities describing a physical location.") + Location: "location", + + @doc("Entities describing an organization.") + Organization: "organization", + + @doc("Entities describing a person.") + Person: "person", + + @doc("Entities describing a quantity.") + Quantity: "quantity", + + @doc("Entities describing a date and time.") + Datetime: "datetime", + + @doc("Entities describing a URL.") + Url: "url", + + @doc("Entities describing an email address.") + Email: "email", +} + +@doc("Deprecated. The language codes supported for input text by EntityRecognitionSkill.") +union EntityRecognitionSkillLanguage { + string, + + @doc("Arabic") + ar: "ar", + + @doc("Czech") + cs: "cs", + + @doc("Chinese-Simplified") + `zh-Hans`: "zh-Hans", + + @doc("Chinese-Traditional") + `zh-Hant`: "zh-Hant", + + @doc("Danish") + da: "da", + + @doc("Dutch") + nl: "nl", + + @doc("English") + en: "en", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("German") + de: "de", + + @doc("Greek") + el: "el", + + @doc("Hungarian") + hu: "hu", + + @doc("Italian") + it: "it", + + @doc("Japanese") + ja: "ja", + + @doc("Korean") + ko: "ko", + + @doc("Norwegian (Bokmaal)") + no: "no", + + @doc("Polish") + pl: "pl", + + @doc("Portuguese (Portugal)") + `pt-PT`: "pt-PT", + + @doc("Portuguese (Brazil)") + `pt-BR`: "pt-BR", + + @doc("Russian") + ru: "ru", + + @doc("Spanish") + es: "es", + + @doc("Swedish") + sv: "sv", + + @doc("Turkish") + tr: "tr", +} + +@doc("Deprecated. The language codes supported for input text by SentimentSkill.") +union SentimentSkillLanguage { + string, + + @doc("Danish") + da: "da", + + @doc("Dutch") + nl: "nl", + + @doc("English") + en: "en", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("German") + de: "de", + + @doc("Greek") + el: "el", + + @doc("Italian") + it: "it", + + @doc("Norwegian (Bokmaal)") + no: "no", + + @doc("Polish") + pl: "pl", + + @doc("Portuguese (Portugal)") + `pt-PT`: "pt-PT", + + @doc("Russian") + ru: "ru", + + @doc("Spanish") + es: "es", + + @doc("Swedish") + sv: "sv", + + @doc("Turkish") + tr: "tr", +} + +@doc("A string indicating what maskingMode to use to mask the personal information detected in the input text.") +union PIIDetectionSkillMaskingMode { + string, + + @doc("No masking occurs and the maskedText output will not be returned.") + None: "none", + + @doc("Replaces the detected entities with the character given in the maskingCharacter parameter. The character will be repeated to the length of the detected entity so that the offsets will correctly correspond to both the input text as well as the output maskedText.") + Replace: "replace", +} + +@doc("The language codes supported for input text by SplitSkill.") +union SplitSkillLanguage { + string, + + @doc("Amharic") + am: "am", + + @doc("Bosnian") + bs: "bs", + + @doc("Czech") + cs: "cs", + + @doc("Danish") + da: "da", + + @doc("German") + de: "de", + + @doc("English") + en: "en", + + @doc("Spanish") + es: "es", + + @doc("Estonian") + et: "et", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("Hebrew") + he: "he", + + @doc("Hindi") + hi: "hi", + + @doc("Croatian") + hr: "hr", + + @doc("Hungarian") + hu: "hu", + + @doc("Indonesian") + id: "id", + + @doc("Icelandic") + `is`: "is", + + @doc("Italian") + it: "it", + + @doc("Japanese") + ja: "ja", + + @doc("Korean") + ko: "ko", + + @doc("Latvian") + lv: "lv", + + @doc("Norwegian") + nb: "nb", + + @doc("Dutch") + nl: "nl", + + @doc("Polish") + pl: "pl", + + @doc("Portuguese (Portugal)") + pt: "pt", + + @doc("Portuguese (Brazil)") + `pt-br`: "pt-br", + + @doc("Russian") + ru: "ru", + + @doc("Slovak") + sk: "sk", + + @doc("Slovenian") + sl: "sl", + + @doc("Serbian") + sr: "sr", + + @doc("Swedish") + sv: "sv", + + @doc("Turkish") + tr: "tr", + + @doc("Urdu") + ur: "ur", + + @doc("Chinese (Simplified)") + zh: "zh", +} + +@doc("A value indicating which split mode to perform.") +union TextSplitMode { + string, + + @doc("Split the text into individual pages.") + Pages: "pages", + + @doc("Split the text into individual sentences.") + Sentences: "sentences", +} + +@doc("A value indicating which unit to use.") +union SplitSkillUnit { + string, + + @doc("The length will be measured by character.") + Characters: "characters", + + @doc("The length will be measured by an AzureOpenAI tokenizer from the tiktoken library.") + AzureOpenAITokens: "azureOpenAITokens", +} + +@doc("A value indicating which tokenizer to use.") +union SplitSkillEncoderModelName { + string, + + @doc("Refers to a base model trained with a 50,000 token vocabulary, often used in general natural language processing tasks.") + R50kBase: "r50k_base", + + @doc("A base model with a 50,000 token vocabulary, optimized for prompt-based tasks.") + P50kBase: "p50k_base", + + @doc("Similar to p50k_base but fine-tuned for editing or rephrasing tasks with a 50,000 token vocabulary.") + P50kEdit: "p50k_edit", + + @doc("A base model with a 100,000 token vocabulary.") + CL100kBase: "cl100k_base", +} + +@doc("The language codes supported for input text by CustomEntityLookupSkill.") +union CustomEntityLookupSkillLanguage { + string, + + @doc("Danish") + da: "da", + + @doc("German") + de: "de", + + @doc("English") + en: "en", + + @doc("Spanish") + es: "es", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("Italian") + it: "it", + + @doc("Korean") + ko: "ko", + + @doc("Portuguese") + pt: "pt", +} + +@doc("The language codes supported for input text by TextTranslationSkill.") +union TextTranslationSkillLanguage { + string, + + @doc("Afrikaans") + af: "af", + + @doc("Arabic") + ar: "ar", + + @doc("Bangla") + bn: "bn", + + @doc("Bosnian (Latin)") + bs: "bs", + + @doc("Bulgarian") + bg: "bg", + + @doc("Cantonese (Traditional)") + yue: "yue", + + @doc("Catalan") + ca: "ca", + + @doc("Chinese Simplified") + `zh-Hans`: "zh-Hans", + + @doc("Chinese Traditional") + `zh-Hant`: "zh-Hant", + + @doc("Croatian") + hr: "hr", + + @doc("Czech") + cs: "cs", + + @doc("Danish") + da: "da", + + @doc("Dutch") + nl: "nl", + + @doc("English") + en: "en", + + @doc("Estonian") + et: "et", + + @doc("Fijian") + fj: "fj", + + @doc("Filipino") + fil: "fil", + + @doc("Finnish") + fi: "fi", + + @doc("French") + fr: "fr", + + @doc("German") + de: "de", + + @doc("Greek") + el: "el", + + @doc("Haitian Creole") + ht: "ht", + + @doc("Hebrew") + he: "he", + + @doc("Hindi") + hi: "hi", + + @doc("Hmong Daw") + mww: "mww", + + @doc("Hungarian") + hu: "hu", + + @doc("Icelandic") + `is`: "is", + + @doc("Indonesian") + id: "id", + + @doc("Italian") + it: "it", + + @doc("Japanese") + ja: "ja", + + @doc("Kiswahili") + sw: "sw", + + @doc("Klingon") + tlh: "tlh", + + @doc("Klingon (Latin script)") + `tlh-Latn`: "tlh-Latn", + + @doc("Klingon (Klingon script)") + `tlh-Piqd`: "tlh-Piqd", + + @doc("Korean") + ko: "ko", + + @doc("Latvian") + lv: "lv", + + @doc("Lithuanian") + lt: "lt", + + @doc("Malagasy") + mg: "mg", + + @doc("Malay") + ms: "ms", + + @doc("Maltese") + mt: "mt", + + @doc("Norwegian") + nb: "nb", + + @doc("Persian") + fa: "fa", + + @doc("Polish") + pl: "pl", + + @doc("Portuguese") + pt: "pt", + + @doc("Portuguese (Brazil)") + `pt-br`: "pt-br", + + @doc("Portuguese (Portugal)") + `pt-PT`: "pt-PT", + + @doc("Queretaro Otomi") + otq: "otq", + + @doc("Romanian") + ro: "ro", + + @doc("Russian") + ru: "ru", + + @doc("Samoan") + sm: "sm", + + @doc("Serbian (Cyrillic)") + `sr-Cyrl`: "sr-Cyrl", + + @doc("Serbian (Latin)") + `sr-Latn`: "sr-Latn", + + @doc("Slovak") + sk: "sk", + + @doc("Slovenian") + sl: "sl", + + @doc("Spanish") + es: "es", + + @doc("Swedish") + sv: "sv", + + @doc("Tahitian") + ty: "ty", + + @doc("Tamil") + ta: "ta", + + @doc("Telugu") + te: "te", + + @doc("Thai") + th: "th", + + @doc("Tongan") + to: "to", + + @doc("Turkish") + tr: "tr", + + @doc("Ukrainian") + uk: "uk", + + @doc("Urdu") + ur: "ur", + + @doc("Vietnamese") + vi: "vi", + + @doc("Welsh") + cy: "cy", + + @doc("Yucatec Maya") + yua: "yua", + + @doc("Irish") + ga: "ga", + + @doc("Kannada") + kn: "kn", + + @doc("Maori") + mi: "mi", + + @doc("Malayalam") + ml: "ml", + + @doc("Punjabi") + pa: "pa", +} + +@doc("Controls the cardinality of the output produced by the skill. Default is 'oneToMany'.") +union DocumentIntelligenceLayoutSkillOutputMode { + string, + + @doc("Specify that the output should be parsed as 'oneToMany'.") + OneToMany: "oneToMany", +} + +@doc("Controls the cardinality of the output format. Default is 'markdown'.") +union DocumentIntelligenceLayoutSkillOutputFormat { + string, + + @doc("Specify the format of the output as text.") + Text: "text", + + @doc("Specify the format of the output as markdown.") + Markdown: "markdown", +} + +@doc("The depth of headers in the markdown output. Default is h6.") +union DocumentIntelligenceLayoutSkillMarkdownHeaderDepth { + string, + + @doc("Header level 1.") + H1: "h1", + + @doc("Header level 2.") + H2: "h2", + + @doc("Header level 3.") + H3: "h3", + + @doc("Header level 4.") + H4: "h4", + + @doc("Header level 5.") + H5: "h5", + + @doc("Header level 6.") + H6: "h6", +} + +@doc("Controls the cardinality of the content extracted from the document by the skill.") +union DocumentIntelligenceLayoutSkillExtractionOptions { + string, + + @doc("Specify that image content should be extracted from the document.") + Images: "images", + + @doc("Specify that location metadata should be extracted from the document.") + LocationMetadata: "locationMetadata", +} + +@doc("Controls the cardinality of the chunk unit. Default is 'characters'") +union DocumentIntelligenceLayoutSkillChunkingUnit { + string, + + @doc("Specifies chunk by characters.") + Characters: "characters", +} + +@doc("Represents the overall indexer status.") +union IndexerStatus { + string, + + @doc("Indicates that the indexer is in an unknown state.") + Unknown: "unknown", + + @doc("Indicates that the indexer experienced an error that cannot be corrected without human intervention.") + Error: "error", + + @doc("Indicates that the indexer is running normally.") + Running: "running", +} + +@doc("Represents the status of an individual indexer execution.") +union IndexerExecutionStatus { + string, + + @doc("An indexer invocation has failed, but the failure may be transient. Indexer invocations will continue per schedule.") + TransientFailure: "transientFailure", + + @doc("Indexer execution completed successfully.") + Success: "success", + + @doc("Indexer execution is in progress.") + InProgress: "inProgress", + + @doc("Indexer has been reset.") + Reset: "reset", +} + +@doc("Defines the function used to interpolate score boosting across a range of documents.") +union ScoringFunctionInterpolation { + string, + + @doc("Boosts scores by a linearly decreasing amount. This is the default interpolation for scoring functions.") + Linear: "linear", + + @doc("Boosts scores by a constant factor.") + Constant: "constant", + + @doc("Boosts scores by an amount that decreases quadratically. Boosts decrease slowly for higher scores, and more quickly as the scores decrease. This interpolation option is not allowed in tag scoring functions.") + Quadratic: "quadratic", + + @doc("Boosts scores by an amount that decreases logarithmically. Boosts decrease quickly for higher scores, and more slowly as the scores decrease. This interpolation option is not allowed in tag scoring functions.") + Logarithmic: "logarithmic", +} + +@doc("Defines the aggregation function used to combine the results of all the scoring functions in a scoring profile.") +union ScoringFunctionAggregation { + string, + + @doc("Boost scores by the sum of all scoring function results.") + Sum: "sum", + + @doc("Boost scores by the average of all scoring function results.") + Average: "average", + + @doc("Boost scores by the minimum of all scoring function results.") + Minimum: "minimum", + + @doc("Boost scores by the maximum of all scoring function results.") + Maximum: "maximum", + + @doc("Boost scores using the first applicable scoring function in the scoring profile.") + FirstMatching: "firstMatching", + + @doc("Boost scores by the product of all scoring function results.") + Product: "product", +} + +@doc("Represents classes of characters on which a token filter can operate.") +union TokenCharacterKind { + string, + + @doc("Keeps letters in tokens.") + Letter: "letter", + + @doc("Keeps digits in tokens.") + Digit: "digit", + + @doc("Keeps whitespace in tokens.") + Whitespace: "whitespace", + + @doc("Keeps punctuation in tokens.") + Punctuation: "punctuation", + + @doc("Keeps symbols in tokens.") + Symbol: "symbol", +} + +@doc("Lists the languages supported by the Microsoft language tokenizer.") +union MicrosoftTokenizerLanguage { + string, + + @doc("Selects the Microsoft tokenizer for Bangla.") + Bangla: "bangla", + + @doc("Selects the Microsoft tokenizer for Bulgarian.") + Bulgarian: "bulgarian", + + @doc("Selects the Microsoft tokenizer for Catalan.") + Catalan: "catalan", + + @doc("Selects the Microsoft tokenizer for Chinese (Simplified).") + ChineseSimplified: "chineseSimplified", + + @doc("Selects the Microsoft tokenizer for Chinese (Traditional).") + ChineseTraditional: "chineseTraditional", + + @doc("Selects the Microsoft tokenizer for Croatian.") + Croatian: "croatian", + + @doc("Selects the Microsoft tokenizer for Czech.") + Czech: "czech", + + @doc("Selects the Microsoft tokenizer for Danish.") + Danish: "danish", + + @doc("Selects the Microsoft tokenizer for Dutch.") + Dutch: "dutch", + + @doc("Selects the Microsoft tokenizer for English.") + English: "english", + + @doc("Selects the Microsoft tokenizer for French.") + French: "french", + + @doc("Selects the Microsoft tokenizer for German.") + German: "german", + + @doc("Selects the Microsoft tokenizer for Greek.") + Greek: "greek", + + @doc("Selects the Microsoft tokenizer for Gujarati.") + Gujarati: "gujarati", + + @doc("Selects the Microsoft tokenizer for Hindi.") + Hindi: "hindi", + + @doc("Selects the Microsoft tokenizer for Icelandic.") + Icelandic: "icelandic", + + @doc("Selects the Microsoft tokenizer for Indonesian.") + Indonesian: "indonesian", + + @doc("Selects the Microsoft tokenizer for Italian.") + Italian: "italian", + + @doc("Selects the Microsoft tokenizer for Japanese.") + Japanese: "japanese", + + @doc("Selects the Microsoft tokenizer for Kannada.") + Kannada: "kannada", + + @doc("Selects the Microsoft tokenizer for Korean.") + Korean: "korean", + + @doc("Selects the Microsoft tokenizer for Malay.") + Malay: "malay", + + @doc("Selects the Microsoft tokenizer for Malayalam.") + Malayalam: "malayalam", + + @doc("Selects the Microsoft tokenizer for Marathi.") + Marathi: "marathi", + + @doc("Selects the Microsoft tokenizer for Norwegian (BokmÃ¥l).") + NorwegianBokmaal: "norwegianBokmaal", + + @doc("Selects the Microsoft tokenizer for Polish.") + Polish: "polish", + + @doc("Selects the Microsoft tokenizer for Portuguese.") + Portuguese: "portuguese", + + @doc("Selects the Microsoft tokenizer for Portuguese (Brazil).") + PortugueseBrazilian: "portugueseBrazilian", + + @doc("Selects the Microsoft tokenizer for Punjabi.") + Punjabi: "punjabi", + + @doc("Selects the Microsoft tokenizer for Romanian.") + Romanian: "romanian", + + @doc("Selects the Microsoft tokenizer for Russian.") + Russian: "russian", + + @doc("Selects the Microsoft tokenizer for Serbian (Cyrillic).") + SerbianCyrillic: "serbianCyrillic", + + @doc("Selects the Microsoft tokenizer for Serbian (Latin).") + SerbianLatin: "serbianLatin", + + @doc("Selects the Microsoft tokenizer for Slovenian.") + Slovenian: "slovenian", + + @doc("Selects the Microsoft tokenizer for Spanish.") + Spanish: "spanish", + + @doc("Selects the Microsoft tokenizer for Swedish.") + Swedish: "swedish", + + @doc("Selects the Microsoft tokenizer for Tamil.") + Tamil: "tamil", + + @doc("Selects the Microsoft tokenizer for Telugu.") + Telugu: "telugu", + + @doc("Selects the Microsoft tokenizer for Thai.") + Thai: "thai", + + @doc("Selects the Microsoft tokenizer for Ukrainian.") + Ukrainian: "ukrainian", + + @doc("Selects the Microsoft tokenizer for Urdu.") + Urdu: "urdu", + + @doc("Selects the Microsoft tokenizer for Vietnamese.") + Vietnamese: "vietnamese", +} + +@doc("Lists the languages supported by the Microsoft language stemming tokenizer.") +union MicrosoftStemmingTokenizerLanguage { + string, + + @doc("Selects the Microsoft stemming tokenizer for Arabic.") + Arabic: "arabic", + + @doc("Selects the Microsoft stemming tokenizer for Bangla.") + Bangla: "bangla", + + @doc("Selects the Microsoft stemming tokenizer for Bulgarian.") + Bulgarian: "bulgarian", + + @doc("Selects the Microsoft stemming tokenizer for Catalan.") + Catalan: "catalan", + + @doc("Selects the Microsoft stemming tokenizer for Croatian.") + Croatian: "croatian", + + @doc("Selects the Microsoft stemming tokenizer for Czech.") + Czech: "czech", + + @doc("Selects the Microsoft stemming tokenizer for Danish.") + Danish: "danish", + + @doc("Selects the Microsoft stemming tokenizer for Dutch.") + Dutch: "dutch", + + @doc("Selects the Microsoft stemming tokenizer for English.") + English: "english", + + @doc("Selects the Microsoft stemming tokenizer for Estonian.") + Estonian: "estonian", + + @doc("Selects the Microsoft stemming tokenizer for Finnish.") + Finnish: "finnish", + + @doc("Selects the Microsoft stemming tokenizer for French.") + French: "french", + + @doc("Selects the Microsoft stemming tokenizer for German.") + German: "german", + + @doc("Selects the Microsoft stemming tokenizer for Greek.") + Greek: "greek", + + @doc("Selects the Microsoft stemming tokenizer for Gujarati.") + Gujarati: "gujarati", + + @doc("Selects the Microsoft stemming tokenizer for Hebrew.") + Hebrew: "hebrew", + + @doc("Selects the Microsoft stemming tokenizer for Hindi.") + Hindi: "hindi", + + @doc("Selects the Microsoft stemming tokenizer for Hungarian.") + Hungarian: "hungarian", + + @doc("Selects the Microsoft stemming tokenizer for Icelandic.") + Icelandic: "icelandic", + + @doc("Selects the Microsoft stemming tokenizer for Indonesian.") + Indonesian: "indonesian", + + @doc("Selects the Microsoft stemming tokenizer for Italian.") + Italian: "italian", + + @doc("Selects the Microsoft stemming tokenizer for Kannada.") + Kannada: "kannada", + + @doc("Selects the Microsoft stemming tokenizer for Latvian.") + Latvian: "latvian", + + @doc("Selects the Microsoft stemming tokenizer for Lithuanian.") + Lithuanian: "lithuanian", + + @doc("Selects the Microsoft stemming tokenizer for Malay.") + Malay: "malay", + + @doc("Selects the Microsoft stemming tokenizer for Malayalam.") + Malayalam: "malayalam", + + @doc("Selects the Microsoft stemming tokenizer for Marathi.") + Marathi: "marathi", + + @doc("Selects the Microsoft stemming tokenizer for Norwegian (BokmÃ¥l).") + NorwegianBokmaal: "norwegianBokmaal", + + @doc("Selects the Microsoft stemming tokenizer for Polish.") + Polish: "polish", + + @doc("Selects the Microsoft stemming tokenizer for Portuguese.") + Portuguese: "portuguese", + + @doc("Selects the Microsoft stemming tokenizer for Portuguese (Brazil).") + PortugueseBrazilian: "portugueseBrazilian", + + @doc("Selects the Microsoft stemming tokenizer for Punjabi.") + Punjabi: "punjabi", + + @doc("Selects the Microsoft stemming tokenizer for Romanian.") + Romanian: "romanian", + + @doc("Selects the Microsoft stemming tokenizer for Russian.") + Russian: "russian", + + @doc("Selects the Microsoft stemming tokenizer for Serbian (Cyrillic).") + SerbianCyrillic: "serbianCyrillic", + + @doc("Selects the Microsoft stemming tokenizer for Serbian (Latin).") + SerbianLatin: "serbianLatin", + + @doc("Selects the Microsoft stemming tokenizer for Slovak.") + Slovak: "slovak", + + @doc("Selects the Microsoft stemming tokenizer for Slovenian.") + Slovenian: "slovenian", + + @doc("Selects the Microsoft stemming tokenizer for Spanish.") + Spanish: "spanish", + + @doc("Selects the Microsoft stemming tokenizer for Swedish.") + Swedish: "swedish", + + @doc("Selects the Microsoft stemming tokenizer for Tamil.") + Tamil: "tamil", + + @doc("Selects the Microsoft stemming tokenizer for Telugu.") + Telugu: "telugu", + + @doc("Selects the Microsoft stemming tokenizer for Turkish.") + Turkish: "turkish", + + @doc("Selects the Microsoft stemming tokenizer for Ukrainian.") + Ukrainian: "ukrainian", + + @doc("Selects the Microsoft stemming tokenizer for Urdu.") + Urdu: "urdu", +} + +@doc("Scripts that can be ignored by CjkBigramTokenFilter.") +union CjkBigramTokenFilterScripts { + string, + + @doc("Ignore Han script when forming bigrams of CJK terms.") + Han: "han", + + @doc("Ignore Hiragana script when forming bigrams of CJK terms.") + Hiragana: "hiragana", + + @doc("Ignore Katakana script when forming bigrams of CJK terms.") + Katakana: "katakana", + + @doc("Ignore Hangul script when forming bigrams of CJK terms.") + Hangul: "hangul", +} + +@doc("Specifies which side of the input an n-gram should be generated from.") +union EdgeNGramTokenFilterSide { + string, + + @doc("Specifies that the n-gram should be generated from the front of the input.") + Front: "front", + + @doc("Specifies that the n-gram should be generated from the back of the input.") + Back: "back", +} + +@doc("Identifies the type of phonetic encoder to use with a PhoneticTokenFilter.") +union PhoneticEncoder { + string, + + @doc("Encodes a token into a Metaphone value.") + Metaphone: "metaphone", + + @doc("Encodes a token into a double metaphone value.") + DoubleMetaphone: "doubleMetaphone", + + @doc("Encodes a token into a Soundex value.") + Soundex: "soundex", + + @doc("Encodes a token into a Refined Soundex value.") + RefinedSoundex: "refinedSoundex", + + @doc("Encodes a token into a Caverphone 1.0 value.") + Caverphone1: "caverphone1", + + @doc("Encodes a token into a Caverphone 2.0 value.") + Caverphone2: "caverphone2", + + @doc("Encodes a token into a Cologne Phonetic value.") + Cologne: "cologne", + + @doc("Encodes a token into a NYSIIS value.") + Nysiis: "nysiis", + + @doc("Encodes a token using the Kölner Phonetik algorithm.") + KoelnerPhonetik: "koelnerPhonetik", + + @doc("Encodes a token using the Haase refinement of the Kölner Phonetik algorithm.") + HaasePhonetik: "haasePhonetik", + + @doc("Encodes a token into a Beider-Morse value.") + BeiderMorse: "beiderMorse", +} + +@doc("The language to use for a Snowball token filter.") +union SnowballTokenFilterLanguage { + string, + + @doc("Selects the Lucene Snowball stemming tokenizer for Armenian.") + Armenian: "armenian", + + @doc("Selects the Lucene Snowball stemming tokenizer for Basque.") + Basque: "basque", + + @doc("Selects the Lucene Snowball stemming tokenizer for Catalan.") + Catalan: "catalan", + + @doc("Selects the Lucene Snowball stemming tokenizer for Danish.") + Danish: "danish", + + @doc("Selects the Lucene Snowball stemming tokenizer for Dutch.") + Dutch: "dutch", + + @doc("Selects the Lucene Snowball stemming tokenizer for English.") + English: "english", + + @doc("Selects the Lucene Snowball stemming tokenizer for Finnish.") + Finnish: "finnish", + + @doc("Selects the Lucene Snowball stemming tokenizer for French.") + French: "french", + + @doc("Selects the Lucene Snowball stemming tokenizer for German.") + German: "german", + + @doc("Selects the Lucene Snowball stemming tokenizer that uses the German variant algorithm.") + German2: "german2", + + @doc("Selects the Lucene Snowball stemming tokenizer for Hungarian.") + Hungarian: "hungarian", + + @doc("Selects the Lucene Snowball stemming tokenizer for Italian.") + Italian: "italian", + + @doc("Selects the Lucene Snowball stemming tokenizer for Dutch that uses the Kraaij-Pohlmann stemming algorithm.") + Kp: "kp", + + @doc("Selects the Lucene Snowball stemming tokenizer for English that uses the Lovins stemming algorithm.") + Lovins: "lovins", + + @doc("Selects the Lucene Snowball stemming tokenizer for Norwegian.") + Norwegian: "norwegian", + + @doc("Selects the Lucene Snowball stemming tokenizer for English that uses the Porter stemming algorithm.") + Porter: "porter", + + @doc("Selects the Lucene Snowball stemming tokenizer for Portuguese.") + Portuguese: "portuguese", + + @doc("Selects the Lucene Snowball stemming tokenizer for Romanian.") + Romanian: "romanian", + + @doc("Selects the Lucene Snowball stemming tokenizer for Russian.") + Russian: "russian", + + @doc("Selects the Lucene Snowball stemming tokenizer for Spanish.") + Spanish: "spanish", + + @doc("Selects the Lucene Snowball stemming tokenizer for Swedish.") + Swedish: "swedish", + + @doc("Selects the Lucene Snowball stemming tokenizer for Turkish.") + Turkish: "turkish", +} + +@doc("The language to use for a stemmer token filter.") +union StemmerTokenFilterLanguage { + string, + + @doc("Selects the Lucene stemming tokenizer for Arabic.") + Arabic: "arabic", + + @doc("Selects the Lucene stemming tokenizer for Armenian.") + Armenian: "armenian", + + @doc("Selects the Lucene stemming tokenizer for Basque.") + Basque: "basque", + + @doc("Selects the Lucene stemming tokenizer for Portuguese (Brazil).") + Brazilian: "brazilian", + + @doc("Selects the Lucene stemming tokenizer for Bulgarian.") + Bulgarian: "bulgarian", + + @doc("Selects the Lucene stemming tokenizer for Catalan.") + Catalan: "catalan", + + @doc("Selects the Lucene stemming tokenizer for Czech.") + Czech: "czech", + + @doc("Selects the Lucene stemming tokenizer for Danish.") + Danish: "danish", + + @doc("Selects the Lucene stemming tokenizer for Dutch.") + Dutch: "dutch", + + @doc("Selects the Lucene stemming tokenizer for Dutch that uses the Kraaij-Pohlmann stemming algorithm.") + DutchKp: "dutchKp", + + @doc("Selects the Lucene stemming tokenizer for English.") + English: "english", + + @doc("Selects the Lucene stemming tokenizer for English that does light stemming.") + LightEnglish: "lightEnglish", + + @doc("Selects the Lucene stemming tokenizer for English that does minimal stemming.") + MinimalEnglish: "minimalEnglish", + + @doc("Selects the Lucene stemming tokenizer for English that removes trailing possessives from words.") + PossessiveEnglish: "possessiveEnglish", + + @doc("Selects the Lucene stemming tokenizer for English that uses the Porter2 stemming algorithm.") + Porter2: "porter2", + + @doc("Selects the Lucene stemming tokenizer for English that uses the Lovins stemming algorithm.") + Lovins: "lovins", + + @doc("Selects the Lucene stemming tokenizer for Finnish.") + Finnish: "finnish", + + @doc("Selects the Lucene stemming tokenizer for Finnish that does light stemming.") + LightFinnish: "lightFinnish", + + @doc("Selects the Lucene stemming tokenizer for French.") + French: "french", + + @doc("Selects the Lucene stemming tokenizer for French that does light stemming.") + LightFrench: "lightFrench", + + @doc("Selects the Lucene stemming tokenizer for French that does minimal stemming.") + MinimalFrench: "minimalFrench", + + @doc("Selects the Lucene stemming tokenizer for Galician.") + Galician: "galician", + + @doc("Selects the Lucene stemming tokenizer for Galician that does minimal stemming.") + MinimalGalician: "minimalGalician", + + @doc("Selects the Lucene stemming tokenizer for German.") + German: "german", + + @doc("Selects the Lucene stemming tokenizer that uses the German variant algorithm.") + German2: "german2", + + @doc("Selects the Lucene stemming tokenizer for German that does light stemming.") + LightGerman: "lightGerman", + + @doc("Selects the Lucene stemming tokenizer for German that does minimal stemming.") + MinimalGerman: "minimalGerman", + + @doc("Selects the Lucene stemming tokenizer for Greek.") + Greek: "greek", + + @doc("Selects the Lucene stemming tokenizer for Hindi.") + Hindi: "hindi", + + @doc("Selects the Lucene stemming tokenizer for Hungarian.") + Hungarian: "hungarian", + + @doc("Selects the Lucene stemming tokenizer for Hungarian that does light stemming.") + LightHungarian: "lightHungarian", + + @doc("Selects the Lucene stemming tokenizer for Indonesian.") + Indonesian: "indonesian", + + @doc("Selects the Lucene stemming tokenizer for Irish.") + Irish: "irish", + + @doc("Selects the Lucene stemming tokenizer for Italian.") + Italian: "italian", + + @doc("Selects the Lucene stemming tokenizer for Italian that does light stemming.") + LightItalian: "lightItalian", + + @doc("Selects the Lucene stemming tokenizer for Sorani.") + Sorani: "sorani", + + @doc("Selects the Lucene stemming tokenizer for Latvian.") + Latvian: "latvian", + + @doc("Selects the Lucene stemming tokenizer for Norwegian (BokmÃ¥l).") + Norwegian: "norwegian", + + @doc("Selects the Lucene stemming tokenizer for Norwegian (BokmÃ¥l) that does light stemming.") + LightNorwegian: "lightNorwegian", + + @doc("Selects the Lucene stemming tokenizer for Norwegian (BokmÃ¥l) that does minimal stemming.") + MinimalNorwegian: "minimalNorwegian", + + @doc("Selects the Lucene stemming tokenizer for Norwegian (Nynorsk) that does light stemming.") + LightNynorsk: "lightNynorsk", + + @doc("Selects the Lucene stemming tokenizer for Norwegian (Nynorsk) that does minimal stemming.") + MinimalNynorsk: "minimalNynorsk", + + @doc("Selects the Lucene stemming tokenizer for Portuguese.") + Portuguese: "portuguese", + + @doc("Selects the Lucene stemming tokenizer for Portuguese that does light stemming.") + LightPortuguese: "lightPortuguese", + + @doc("Selects the Lucene stemming tokenizer for Portuguese that does minimal stemming.") + MinimalPortuguese: "minimalPortuguese", + + @doc("Selects the Lucene stemming tokenizer for Portuguese that uses the RSLP stemming algorithm.") + PortugueseRslp: "portugueseRslp", + + @doc("Selects the Lucene stemming tokenizer for Romanian.") + Romanian: "romanian", + + @doc("Selects the Lucene stemming tokenizer for Russian.") + Russian: "russian", + + @doc("Selects the Lucene stemming tokenizer for Russian that does light stemming.") + LightRussian: "lightRussian", + + @doc("Selects the Lucene stemming tokenizer for Spanish.") + Spanish: "spanish", + + @doc("Selects the Lucene stemming tokenizer for Spanish that does light stemming.") + LightSpanish: "lightSpanish", + + @doc("Selects the Lucene stemming tokenizer for Swedish.") + Swedish: "swedish", + + @doc("Selects the Lucene stemming tokenizer for Swedish that does light stemming.") + LightSwedish: "lightSwedish", + + @doc("Selects the Lucene stemming tokenizer for Turkish.") + Turkish: "turkish", +} + +@doc("Identifies a predefined list of language-specific stopwords.") +union StopwordsList { + string, + + @doc("Selects the stopword list for Arabic.") + Arabic: "arabic", + + @doc("Selects the stopword list for Armenian.") + Armenian: "armenian", + + @doc("Selects the stopword list for Basque.") + Basque: "basque", + + @doc("Selects the stopword list for Portuguese (Brazil).") + Brazilian: "brazilian", + + @doc("Selects the stopword list for Bulgarian.") + Bulgarian: "bulgarian", + + @doc("Selects the stopword list for Catalan.") + Catalan: "catalan", + + @doc("Selects the stopword list for Czech.") + Czech: "czech", + + @doc("Selects the stopword list for Danish.") + Danish: "danish", + + @doc("Selects the stopword list for Dutch.") + Dutch: "dutch", + + @doc("Selects the stopword list for English.") + English: "english", + + @doc("Selects the stopword list for Finnish.") + Finnish: "finnish", + + @doc("Selects the stopword list for French.") + French: "french", + + @doc("Selects the stopword list for Galician.") + Galician: "galician", + + @doc("Selects the stopword list for German.") + German: "german", + + @doc("Selects the stopword list for Greek.") + Greek: "greek", + + @doc("Selects the stopword list for Hindi.") + Hindi: "hindi", + + @doc("Selects the stopword list for Hungarian.") + Hungarian: "hungarian", + + @doc("Selects the stopword list for Indonesian.") + Indonesian: "indonesian", + + @doc("Selects the stopword list for Irish.") + Irish: "irish", + + @doc("Selects the stopword list for Italian.") + Italian: "italian", + + @doc("Selects the stopword list for Latvian.") + Latvian: "latvian", + + @doc("Selects the stopword list for Norwegian.") + Norwegian: "norwegian", + + @doc("Selects the stopword list for Persian.") + Persian: "persian", + + @doc("Selects the stopword list for Portuguese.") + Portuguese: "portuguese", + + @doc("Selects the stopword list for Romanian.") + Romanian: "romanian", + + @doc("Selects the stopword list for Russian.") + Russian: "russian", + + @doc("Selects the stopword list for Sorani.") + Sorani: "sorani", + + @doc("Selects the stopword list for Spanish.") + Spanish: "spanish", + + @doc("Selects the stopword list for Swedish.") + Swedish: "swedish", + + @doc("Selects the stopword list for Thai.") + Thai: "thai", + + @doc("Selects the stopword list for Turkish.") + Turkish: "turkish", +} + +@doc("Options with various types of permission data to index.") +union IndexerPermissionOption { + string, + + @doc("Indexer to ingest ACL userIds from data source to index.") + UserIds: "userIds", + + @doc("Indexer to ingest ACL groupIds from data source to index.") + GroupIds: "groupIds", + + @doc("Indexer to ingest Azure RBAC scope from data source to index.") + RbacScope: "rbacScope", +} + +@doc("A value indicating whether the field should be used as a permission filter.") +union PermissionFilter { + string, + + @doc("Field represents user IDs that should be used to filter document access on queries.") + UserIds: "userIds", + + @doc("Field represents group IDs that should be used to filter document access on queries.") + GroupIds: "groupIds", + + @doc("Field represents an RBAC scope that should be used to filter document access on queries.") + RbacScope: "rbacScope", +} + +@doc("A value indicating whether permission filtering is enabled for the index.") +union SearchIndexPermissionFilterOption { + string, + + @doc("enabled.") + Enabled: "enabled", + + @doc("disabled.") + Disabled: "disabled", +} + +@doc("Specifies how 'extraParameters' should be handled by Azure AI Foundry. Defaults to 'error'.") +union ChatCompletionExtraParametersBehavior { + string, + + @doc("Passes any extra parameters directly to the model.") + PassThrough: "pass-through", + + @doc("Drops all extra parameters.") + Drop: "drop", + + @doc("Raises an error if any extra parameter is present.") + Error: "error", +} + +@doc("Specifies how the LLM should format the response.") +union ChatCompletionResponseFormatType { + string, + + @doc("Plain text response format.") + Text: "text", + + @doc("Arbitrary JSON object response format.") + JsonObject: "jsonObject", + + @doc("JSON schema-adhering response format.") + JsonSchema: "jsonSchema", +} + +@doc("Represents score to use for sort order of documents.") +union RankingOrder { + string, + + @doc("Sets sort order as BoostedRerankerScore") + BoostedRerankerScore: "BoostedRerankerScore", + + @doc("Sets sort order as ReRankerScore") + RerankerScore: "RerankerScore", +} + +@doc("Options with various types of permission data to index.") +union IndexerResyncOption { + string, + + @doc("Indexer to re-ingest pre-selected permissions data from data source to index.") + Permissions: "permissions", +} + +@doc("Request body for resync indexer operation.") +model IndexerResyncBody { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Re-sync options that have been pre-defined from data source.") + options?: IndexerResyncOption[] | null; +} + +@doc("Represents a datasource definition, which can be used to configure an indexer.") +model SearchIndexerDataSource { + @doc("The name of the datasource.") + name: string; + + @doc("The description of the datasource.") + description?: string; + + @doc("The type of the datasource.") + type: SearchIndexerDataSourceType; + + @doc("A specific type of the data source, in case the resource is capable of different modalities. For example, 'MongoDb' for certain 'cosmosDb' accounts.") + @visibility(Lifecycle.Read) + subType?: string; + + #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Pre-existing API contract" + @doc("Credentials for the datasource.") + @flattenProperty + credentials: DataSourceCredentials; + + @doc("The data container for the datasource.") + container: SearchIndexerDataContainer; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("An explicit managed identity to use for this datasource. If not specified and the connection string is a managed identity, the system-assigned managed identity is used. If not specified, the value remains unchanged. If \"none\" is specified, the value of this property is cleared.") + identity?: SearchIndexerDataIdentity | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Ingestion options with various types of permission data.") + indexerPermissionOptions?: IndexerPermissionOption[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The data change detection policy for the datasource.") + dataChangeDetectionPolicy?: DataChangeDetectionPolicy | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The data deletion detection policy for the datasource.") + dataDeletionDetectionPolicy?: DataDeletionDetectionPolicy | null; + + @doc("The ETag of the data source.") + @encodedName("application/json", "@odata.etag") + eTag?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your datasource definition when you want full assurance that no one, not even Microsoft, can decrypt your data source definition. Once you have encrypted your data source definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your datasource definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.") + encryptionKey?: SearchResourceEncryptionKey | null; +} + +@doc("Represents credentials that can be used to connect to a datasource.") +model DataSourceCredentials { + @doc("The connection string for the datasource. Set to `` (with brackets) if you don't want the connection string updated. Set to `` if you want to remove the connection string value from the datasource.") + connectionString?: string; +} + +@doc("Represents information about the entity (such as Azure SQL table or CosmosDB collection) that will be indexed.") +model SearchIndexerDataContainer { + @doc("The name of the table or view (for Azure SQL data source) or collection (for CosmosDB data source) that will be indexed.") + name: string; + + @doc("A query that is applied to this data container. The syntax and meaning of this parameter is datasource-specific. Not supported by Azure SQL datasources.") + query?: string; +} + +@doc("Base type for data change detection policies.") +@discriminator("@odata.type") +model DataChangeDetectionPolicy { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; +} + +@doc("Base type for data deletion detection policies.") +@discriminator("@odata.type") +model DataDeletionDetectionPolicy { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; +} + +@doc("A customer-managed encryption key in Azure Key Vault. Keys that you create and manage can be used to encrypt or decrypt data-at-rest, such as indexes and synonym maps.") +model SearchResourceEncryptionKey { + @doc("The name of your Azure Key Vault key to be used to encrypt your data at rest.") + keyVaultKeyName: string; + + @doc("The version of your Azure Key Vault key to be used to encrypt your data at rest.") + keyVaultKeyVersion?: string; + + @doc("The URI of your Azure Key Vault, also referred to as DNS name, that contains the key to be used to encrypt your data at rest. An example URI might be `https://my-keyvault-name.vault.azure.net`.") + keyVaultUri: string; + + #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Pre-existing API contract" + @doc("Optional Azure Active Directory credentials used for accessing your Azure Key Vault. Not required if using managed identity instead.") + @flattenProperty + accessCredentials?: AzureActiveDirectoryApplicationCredentials; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("An explicit managed identity to use for this encryption key. If not specified and the access credentials property is null, the system-assigned managed identity is used. On update to the resource, if the explicit identity is unspecified, it remains unchanged. If \"none\" is specified, the value of this property is cleared.") + identity?: SearchIndexerDataIdentity | null; +} + +@doc("Credentials of a registered application created for your search service, used for authenticated access to the encryption keys stored in Azure Key Vault.") +model AzureActiveDirectoryApplicationCredentials { + @doc("An AAD Application ID that was granted the required access permissions to the Azure Key Vault that is to be used when encrypting your data at rest. The Application ID should not be confused with the Object ID for your AAD Application.") + applicationId: string; + + @doc("The authentication key of the specified AAD application.") + applicationSecret?: string; +} + +@doc("Response from a List Datasources request. If successful, it includes the full definitions of all datasources.") +model ListDataSourcesResult { + @doc("The datasources in the Search service.") + @pageItems + @visibility(Lifecycle.Read) + value: SearchIndexerDataSource[]; +} + +@doc("The type of the keysOrIds.") +model DocumentKeysOrIds { + @doc("document keys to be reset") + documentKeys?: string[]; + + @doc("datasource document identifiers to be reset") + datasourceDocumentIds?: string[]; +} + +@doc("Represents an indexer.") +model SearchIndexer { + @doc("The name of the indexer.") + name: string; + + @doc("The description of the indexer.") + description?: string; + + @doc("The name of the datasource from which this indexer reads data.") + dataSourceName: string; + + @doc("The name of the skillset executing with this indexer.") + skillsetName?: string; + + @doc("The name of the index to which this indexer writes data.") + targetIndexName: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The schedule for this indexer.") + schedule?: IndexingSchedule | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Parameters for indexer execution.") + parameters?: IndexingParameters | null; + + @doc("Defines mappings between fields in the data source and corresponding target fields in the index.") + fieldMappings?: FieldMapping[]; + + @doc("Output field mappings are applied after enrichment and immediately before indexing.") + outputFieldMappings?: FieldMapping[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating whether the indexer is disabled. Default is false.") + disabled?: boolean | null = false; + + @doc("The ETag of the indexer.") + @encodedName("application/json", "@odata.etag") + eTag?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your indexer definition (as well as indexer execution status) when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your indexer definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your indexer definition (and indexer execution status) will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.") + encryptionKey?: SearchResourceEncryptionKey | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Adds caching to an enrichment pipeline to allow for incremental modification steps without having to rebuild the index every time.") + cache?: SearchIndexerCache | null; +} + +@doc("Represents a schedule for indexer execution.") +model IndexingSchedule { + @doc("The interval of time between indexer executions.") + interval: duration; + + @doc("The time when an indexer should start running.") + startTime?: utcDateTime; +} + +@doc("Represents parameters for indexer execution.") +model IndexingParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The number of items that are read from the data source and indexed as a single batch in order to improve performance. The default depends on the data source type.") + batchSize?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum number of items that can fail indexing for indexer execution to still be considered successful. -1 means no limit. Default is 0.") + maxFailedItems?: int32 | null = 0; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum number of items in a single batch that can fail indexing for the batch to still be considered successful. -1 means no limit. Default is 0.") + maxFailedItemsPerBatch?: int32 | null = 0; + + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("A dictionary of indexer-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.") + configuration?: IndexingParametersConfiguration; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("A dictionary of indexer-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.") +model IndexingParametersConfiguration { + ...Record; + + @doc("Represents the parsing mode for indexing from an Azure blob data source.") + parsingMode?: BlobIndexerParsingMode = BlobIndexerParsingMode.Default; + + @doc("Comma-delimited list of filename extensions to ignore when processing from Azure blob storage. For example, you could exclude \".png, .mp4\" to skip over those files during indexing.") + excludedFileNameExtensions?: string = ""; + + @doc("Comma-delimited list of filename extensions to select when processing from Azure blob storage. For example, you could focus indexing on specific application files \".docx, .pptx, .msg\" to specifically include those file types.") + indexedFileNameExtensions?: string = ""; + + @doc("For Azure blobs, set to false if you want to continue indexing when an unsupported content type is encountered, and you don't know all the content types (file extensions) in advance.") + failOnUnsupportedContentType?: boolean = false; + + @doc("For Azure blobs, set to false if you want to continue indexing if a document fails indexing.") + failOnUnprocessableDocument?: boolean = false; + + @doc("For Azure blobs, set this property to true to still index storage metadata for blob content that is too large to process. Oversized blobs are treated as errors by default. For limits on blob size, see https://learn.microsoft.com/azure/search/search-limits-quotas-capacity.") + indexStorageMetadataOnlyForOversizedDocuments?: boolean = false; + + @doc("For CSV blobs, specifies a comma-delimited list of column headers, useful for mapping source fields to destination fields in an index.") + delimitedTextHeaders?: string; + + @doc("For CSV blobs, specifies the end-of-line single-character delimiter for CSV files where each line starts a new document (for example, \"|\").") + delimitedTextDelimiter?: string; + + @doc("For CSV blobs, indicates that the first (non-blank) line of each blob contains headers.") + firstLineContainsHeaders?: boolean = true; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Specifies the submode that will determine whether a markdown file will be parsed into exactly one search document or multiple search documents. Default is `oneToMany`.") + markdownParsingSubmode?: MarkdownParsingSubmode | null = MarkdownParsingSubmode.OneToMany; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Specifies the max header depth that will be considered while grouping markdown content. Default is `h6`.") + markdownHeaderDepth?: MarkdownHeaderDepth | null = MarkdownHeaderDepth.h6; + + @doc("For JSON arrays, given a structured or semi-structured document, you can specify a path to the array using this property.") + documentRoot?: string; + + @doc("Specifies the data to extract from Azure blob storage and tells the indexer which data to extract from image content when \"imageAction\" is set to a value other than \"none\". This applies to embedded image content in a .PDF or other application, or image files such as .jpg and .png, in Azure blobs.") + dataToExtract?: BlobIndexerDataToExtract = BlobIndexerDataToExtract.ContentAndMetadata; + + @doc("Determines how to process embedded images and image files in Azure blob storage. Setting the \"imageAction\" configuration to any value other than \"none\" requires that a skillset also be attached to that indexer.") + imageAction?: BlobIndexerImageAction = BlobIndexerImageAction.None; + + @doc("If true, will create a path //document//file_data that is an object representing the original file data downloaded from your blob data source. This allows you to pass the original file data to a custom skill for processing within the enrichment pipeline, or to the Document Extraction skill.") + allowSkillsetToReadFileData?: boolean = false; + + @doc("Determines algorithm for text extraction from PDF files in Azure blob storage.") + pdfTextRotationAlgorithm?: BlobIndexerPDFTextRotationAlgorithm = BlobIndexerPDFTextRotationAlgorithm.None; + + @doc("Specifies the environment in which the indexer should execute.") + executionEnvironment?: IndexerExecutionEnvironment = IndexerExecutionEnvironment.standard; + + @doc("Increases the timeout beyond the 5-minute default for Azure SQL database data sources, specified in the format \"hh:mm:ss\".") + queryTimeout?: string = "00:05:00"; +} + +@doc("Defines a mapping between a field in a data source and a target field in an index.") +model FieldMapping { + @doc("The name of the field in the data source.") + sourceFieldName: string; + + @doc("The name of the target field in the index. Same as the source field name by default.") + targetFieldName?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A function to apply to each source field value before indexing.") + mappingFunction?: FieldMappingFunction | null; +} + +@doc("Represents a function that transforms a value from a data source before indexing.") +model FieldMappingFunction { + @doc("The name of the field mapping function.") + name: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("A dictionary of parameter name/value pairs to pass to the function. Each value must be of a primitive type.") + parameters?: Record | null; +} + +@doc("The type of the cache.") +model SearchIndexerCache { + @doc("A guid for the SearchIndexerCache.") + id?: string; + + @doc("The connection string to the storage account where the cache data will be persisted.") + storageConnectionString?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Specifies whether incremental reprocessing is enabled.") + enableReprocessing?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for connections to the enrichment cache. If the connection string indicates an identity (ResourceId) and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + identity?: SearchIndexerDataIdentity | null; +} + +@doc("Response from a List Indexers request. If successful, it includes the full definitions of all indexers.") +model ListIndexersResult { + @doc("The indexers in the Search service.") + @pageItems + @visibility(Lifecycle.Read) + value: SearchIndexer[]; +} + +@doc("Represents the current status and execution history of an indexer.") +model SearchIndexerStatus { + @doc("The name of the indexer.") + @visibility(Lifecycle.Read) + name: string; + + @doc("Overall indexer status.") + @visibility(Lifecycle.Read) + status: IndexerStatus; + + @doc("Snapshot of the indexer's cumulative runtime consumption for the service over the current UTC period.") + @visibility(Lifecycle.Read) + runtime: IndexerRuntime; + + @doc("The result of the most recent or an in-progress indexer execution.") + @visibility(Lifecycle.Read) + lastResult?: IndexerExecutionResult; + + @doc("History of the recent indexer executions, sorted in reverse chronological order.") + @visibility(Lifecycle.Read) + executionHistory: IndexerExecutionResult[]; + + @doc("The execution limits for the indexer.") + @visibility(Lifecycle.Read) + limits: SearchIndexerLimits; + + @doc("All of the state that defines and dictates the indexer's current execution.") + @visibility(Lifecycle.Read) + currentState?: IndexerCurrentState; +} + +@doc("Represents the result of an individual indexer execution.") +model IndexerExecutionResult { + @doc("The outcome of this indexer execution.") + @visibility(Lifecycle.Read) + status: IndexerExecutionStatus; + + @doc("The outcome of this indexer execution.") + @visibility(Lifecycle.Read) + statusDetail?: IndexerExecutionStatusDetail; + + @doc("The mode the indexer is running in.") + @visibility(Lifecycle.Read) + mode?: IndexingMode; + + @doc("The error message indicating the top-level error, if any.") + @visibility(Lifecycle.Read) + errorMessage?: string; + + @doc("The start time of this indexer execution.") + @visibility(Lifecycle.Read) + startTime?: utcDateTime; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The end time of this indexer execution, if the execution has already completed.") + @visibility(Lifecycle.Read) + endTime?: utcDateTime | null; + + @doc("The item-level indexing errors.") + @visibility(Lifecycle.Read) + errors: SearchIndexerError[]; + + @doc("The item-level indexing warnings.") + @visibility(Lifecycle.Read) + warnings: SearchIndexerWarning[]; + + @doc("The number of items that were processed during this indexer execution. This includes both successfully processed items and items where indexing was attempted but failed.") + @visibility(Lifecycle.Read) + itemsProcessed: int32; + + @doc("The number of items that failed to be indexed during this indexer execution.") + @visibility(Lifecycle.Read) + itemsFailed: int32; + + @doc("Change tracking state with which an indexer execution started.") + @visibility(Lifecycle.Read) + initialTrackingState?: string; + + @doc("Change tracking state with which an indexer execution finished.") + @visibility(Lifecycle.Read) + finalTrackingState?: string; +} + +@doc("Represents all of the state that defines and dictates the indexer's current execution.") +model IndexerCurrentState { + @doc("The mode the indexer is running in.") + @visibility(Lifecycle.Read) + mode?: IndexingMode; + + @doc("Change tracking state used when indexing starts on all documents in the datasource.") + @visibility(Lifecycle.Read) + allDocsInitialTrackingState?: string; + + @doc("Change tracking state value when indexing finishes on all documents in the datasource.") + @visibility(Lifecycle.Read) + allDocsFinalTrackingState?: string; + + @doc("Change tracking state used when indexing starts on select, reset documents in the datasource.") + @visibility(Lifecycle.Read) + resetDocsInitialTrackingState?: string; + + @doc("Change tracking state value when indexing finishes on select, reset documents in the datasource.") + @visibility(Lifecycle.Read) + resetDocsFinalTrackingState?: string; + + @doc("Change tracking state used when indexing starts on selective options from the datasource.") + @visibility(Lifecycle.Read) + resyncInitialTrackingState?: string; + + @doc("Change tracking state value when indexing finishes on selective options from the datasource.") + @visibility(Lifecycle.Read) + resyncFinalTrackingState?: string; + + @doc("The list of document keys that have been reset. The document key is the document's unique identifier for the data in the search index. The indexer will prioritize selectively re-ingesting these keys.") + @visibility(Lifecycle.Read) + resetDocumentKeys?: string[]; + + @doc("The list of datasource document ids that have been reset. The datasource document id is the unique identifier for the data in the datasource. The indexer will prioritize selectively re-ingesting these ids.") + @visibility(Lifecycle.Read) + resetDatasourceDocumentIds?: string[]; +} + +@doc("Represents an item- or document-level indexing error.") +@error +model SearchIndexerError { + @doc("The key of the item for which indexing failed.") + @visibility(Lifecycle.Read) + key?: string; + + @doc("The message describing the error that occurred while processing the item.") + @visibility(Lifecycle.Read) + errorMessage: string; + + @doc("The status code indicating why the indexing operation failed. Possible values include: 400 for a malformed input document, 404 for document not found, 409 for a version conflict, 422 when the index is temporarily unavailable, or 503 for when the service is too busy.") + @visibility(Lifecycle.Read) + statusCode: int32; + + @doc("The name of the source at which the error originated. For example, this could refer to a particular skill in the attached skillset. This may not be always available.") + @visibility(Lifecycle.Read) + name?: string; + + @doc("Additional, verbose details about the error to assist in debugging the indexer. This may not be always available.") + @visibility(Lifecycle.Read) + details?: string; + + @doc("A link to a troubleshooting guide for these classes of errors. This may not be always available.") + @visibility(Lifecycle.Read) + documentationLink?: string; +} + +@doc("Represents an item-level warning.") +model SearchIndexerWarning { + @doc("The key of the item which generated a warning.") + @visibility(Lifecycle.Read) + key?: string; + + @doc("The message describing the warning that occurred while processing the item.") + @visibility(Lifecycle.Read) + message: string; + + @doc("The name of the source at which the warning originated. For example, this could refer to a particular skill in the attached skillset. This may not be always available.") + @visibility(Lifecycle.Read) + name?: string; + + @doc("Additional, verbose details about the warning to assist in debugging the indexer. This may not be always available.") + @visibility(Lifecycle.Read) + details?: string; + + @doc("A link to a troubleshooting guide for these classes of warnings. This may not be always available.") + @visibility(Lifecycle.Read) + documentationLink?: string; +} + +@doc("Represents the limits that can be applied to an indexer.") +model SearchIndexerLimits { + @doc("The maximum duration that the indexer is permitted to run for one execution.") + @visibility(Lifecycle.Read) + maxRunTime?: duration; + + @doc("The maximum size of a document, in bytes, which will be considered valid for indexing.") + @visibility(Lifecycle.Read) + maxDocumentExtractionSize?: int64; + + @doc("The maximum number of characters that will be extracted from a document picked up for indexing.") + @visibility(Lifecycle.Read) + maxDocumentContentCharactersToExtract?: int64; +} + +@doc("Represents the indexer's cumulative runtime consumption in the service.") +model IndexerRuntime { + @doc("Cumulative runtime of the indexer from the beginningTime to endingTime, in seconds.") + usedSeconds: int64; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Cumulative runtime remaining for all indexers in the service from the beginningTime to endingTime, in seconds.") + remainingSeconds?: int64 | null; + + @doc("Beginning UTC time of the 24-hour period considered for indexer runtime usage (inclusive).") + beginningTime: utcDateTime; + + @doc("End UTC time of the 24-hour period considered for indexer runtime usage (inclusive).") + endingTime: utcDateTime; +} + +@doc("A list of skills.") +model SearchIndexerSkillset { + @doc("The name of the skillset.") + name: string; + + @doc("The description of the skillset.") + description?: string; + + @doc("A list of skills in the skillset.") + skills: SearchIndexerSkill[]; + + @doc("Details about the Azure AI service to be used when running skills.") + cognitiveServices?: CognitiveServicesAccount; + + @doc("Definition of additional projections to Azure blob, table, or files, of enriched data.") + knowledgeStore?: SearchIndexerKnowledgeStore; + + @doc("Definition of additional projections to secondary search index(es).") + indexProjections?: SearchIndexerIndexProjection; + + @doc("The ETag of the skillset.") + @encodedName("application/json", "@odata.etag") + eTag?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your skillset definition when you want full assurance that no one, not even Microsoft, can decrypt your skillset definition. Once you have encrypted your skillset definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your skillset definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.") + encryptionKey?: SearchResourceEncryptionKey | null; +} + +@doc("Base type for skills.") +@discriminator("@odata.type") +model SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("The name of the skill which uniquely identifies it within the skillset. A skill with no name defined will be given a default name of its 1-based index in the skills array, prefixed with the character '#'.") + name?: string; + + @doc("The description of the skill which describes the inputs, outputs, and usage of the skill.") + description?: string; + + @doc("Represents the level at which operations take place, such as the document root or document content (for example, /document or /document/content). The default is /document.") + context?: string; + + @doc("Inputs of the skills could be a column in the source data set, or the output of an upstream skill.") + inputs: InputFieldMappingEntry[]; + + @doc("The output of a skill is either a field in a search index, or a value that can be consumed as an input by another skill.") + outputs: OutputFieldMappingEntry[]; +} + +@doc("Input field mapping for a skill.") +model InputFieldMappingEntry { + @doc("The name of the input.") + name: string; + + @doc("The source of the input.") + source?: string; + + @doc("The source context used for selecting recursive inputs.") + sourceContext?: string; + + @doc("The recursive inputs used when creating a complex type.") + inputs?: InputFieldMappingEntry[]; +} + +@doc("Output field mapping for a skill.") +model OutputFieldMappingEntry { + @doc("The name of the output defined by the skill.") + name: string; + + @doc("The target name of the output. It is optional and default to name.") + targetName?: string; +} + +@doc("Base type for describing any Azure AI service resource attached to a skillset.") +@discriminator("@odata.type") +model CognitiveServicesAccount { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("Description of the Azure AI service resource attached to a skillset.") + description?: string; +} + +@doc("Definition of additional projections to azure blob, table, or files, of enriched data.") +model SearchIndexerKnowledgeStore { + @doc("The connection string to the storage account projections will be stored in.") + storageConnectionString: string; + + @doc("A list of additional projections to perform during indexing.") + projections: SearchIndexerKnowledgeStoreProjection[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for connections to Azure Storage when writing knowledge store projections. If the connection string indicates an identity (ResourceId) and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + identity?: SearchIndexerDataIdentity | null; + + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("A dictionary of knowledge store-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.") + parameters?: SearchIndexerKnowledgeStoreParameters; +} + +@doc("Container object for various projection selectors.") +model SearchIndexerKnowledgeStoreProjection { + @doc("Projections to Azure Table storage.") + tables?: SearchIndexerKnowledgeStoreTableProjectionSelector[]; + + @doc("Projections to Azure Blob storage.") + objects?: SearchIndexerKnowledgeStoreObjectProjectionSelector[]; + + @doc("Projections to Azure File storage.") + files?: SearchIndexerKnowledgeStoreFileProjectionSelector[]; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +@doc("Description for what data to store in Azure Tables.") +model SearchIndexerKnowledgeStoreTableProjectionSelector + extends SearchIndexerKnowledgeStoreProjectionSelector { + @doc("Name of generated key to store projection under.") + generatedKeyName: string; + + @doc("Name of the Azure table to store projected data in.") + tableName: string; +} + +@doc("Abstract class to share properties between concrete selectors.") +model SearchIndexerKnowledgeStoreProjectionSelector { + @doc("Name of reference key to different projection.") + referenceKeyName?: string; + + @doc("Name of generated key to store projection under.") + generatedKeyName?: string; + + @doc("Source data to project.") + source?: string; + + @doc("Source context for complex projections.") + sourceContext?: string; + + @doc("Nested inputs for complex projections.") + inputs?: InputFieldMappingEntry[]; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +@doc("Projection definition for what data to store in Azure Blob.") +model SearchIndexerKnowledgeStoreObjectProjectionSelector + extends SearchIndexerKnowledgeStoreBlobProjectionSelector {} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +@doc("Abstract class to share properties between concrete selectors.") +model SearchIndexerKnowledgeStoreBlobProjectionSelector + extends SearchIndexerKnowledgeStoreProjectionSelector { + @doc("Blob container to store projections in.") + storageContainer: string; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +@doc("Projection definition for what data to store in Azure Files.") +model SearchIndexerKnowledgeStoreFileProjectionSelector + extends SearchIndexerKnowledgeStoreBlobProjectionSelector {} + +@doc("Definition of additional projections to secondary search indexes.") +model SearchIndexerIndexProjection { + @doc("A list of projections to be performed to secondary search indexes.") + selectors: SearchIndexerIndexProjectionSelector[]; + + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("A dictionary of index projection-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.") + parameters?: SearchIndexerIndexProjectionsParameters; +} + +@doc("Description for what data to store in the designated search index.") +model SearchIndexerIndexProjectionSelector { + @doc("Name of the search index to project to. Must have a key field with the 'keyword' analyzer set.") + targetIndexName: string; + + @doc("Name of the field in the search index to map the parent document's key value to. Must be a string field that is filterable and not the key field.") + parentKeyFieldName: string; + + @doc("Source context for the projections. Represents the cardinality at which the document will be split into multiple sub documents.") + sourceContext: string; + + @doc("Mappings for the projection, or which source should be mapped to which field in the target index.") + mappings: InputFieldMappingEntry[]; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("A dictionary of index projection-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.") +model SearchIndexerIndexProjectionsParameters { + ...Record; + + @doc("Defines behavior of the index projections in relation to the rest of the indexer.") + projectionMode?: IndexProjectionMode; +} + +@doc("Response from a list skillset request. If successful, it includes the full definitions of all skillsets.") +model ListSkillsetsResult { + @doc("The skillsets defined in the Search service.") + @visibility(Lifecycle.Read) + @pageItems + value: SearchIndexerSkillset[]; +} + +#suppress "@azure-tools/typespec-client-generator-core/property-name-conflict" +@doc("The type of the skill names.") +model SkillNames { + @doc("the names of skills to be reset.") + skillNames?: string[]; +} + +@doc("Represents a synonym map definition.") +model SynonymMap { + @doc("The name of the synonym map.") + name: string; + + @doc("The format of the synonym map. Only the 'solr' format is currently supported.") + format: "solr"; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("A series of synonym rules in the specified synonym map format. The rules must be separated by newlines.") + @encode(ArrayEncoding.newlineDelimited) + synonyms: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data. Once you have encrypted your data, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.") + encryptionKey?: SearchResourceEncryptionKey | null; + + @doc("The ETag of the synonym map.") + @encodedName("application/json", "@odata.etag") + eTag?: string; +} + +@doc("Response from a List SynonymMaps request. If successful, it includes the full definitions of all synonym maps.") +model ListSynonymMapsResult { + @doc("The synonym maps in the Search service.") + @visibility(Lifecycle.Read) + @pageItems + value: SynonymMap[]; +} + +@doc("Represents a search index definition, which describes the fields and search behavior of an index.") +model SearchIndex { + @doc("The name of the index.") + name: string; + + @doc("The description of the index.") + description?: string; + + @doc("The fields of the index.") + fields: SearchField[]; + + @doc("The scoring profiles for the index.") + scoringProfiles?: ScoringProfile[]; + + @doc("The name of the scoring profile to use if none is specified in the query. If this property is not set and no scoring profile is specified in the query, then default scoring (tf-idf) will be used.") + defaultScoringProfile?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Options to control Cross-Origin Resource Sharing (CORS) for the index.") + corsOptions?: CorsOptions | null; + + @doc("The suggesters for the index.") + suggesters?: SearchSuggester[]; + + @doc("The analyzers for the index.") + analyzers?: LexicalAnalyzer[]; + + @doc("The tokenizers for the index.") + tokenizers?: LexicalTokenizer[]; + + @doc("The token filters for the index.") + tokenFilters?: TokenFilter[]; + + @doc("The character filters for the index.") + charFilters?: CharFilter[]; + + @doc("The normalizers for the index.") + normalizers?: LexicalNormalizer[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data. Once you have encrypted your data, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.") + encryptionKey?: SearchResourceEncryptionKey | null; + + @doc("The type of similarity algorithm to be used when scoring and ranking the documents matching a search query. The similarity algorithm can only be defined at index creation time and cannot be modified on existing indexes. If null, the ClassicSimilarity algorithm is used.") + similarity?: SimilarityAlgorithm; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Defines parameters for a search index that influence semantic capabilities.") + semantic?: SemanticSearch | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Contains configuration options related to vector search.") + vectorSearch?: VectorSearch | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating whether permission filtering is enabled for the index.") + permissionFilterOption?: SearchIndexPermissionFilterOption | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating whether Purview is enabled for the index.") + purviewEnabled?: boolean | null; + + @doc("The ETag of the index.") + @encodedName("application/json", "@odata.etag") + eTag?: string; +} + +@doc("Represents a field in an index definition, which describes the name, data type, and search behavior of a field.") +model SearchField { + @doc("The name of the field, which must be unique within the fields collection of the index or parent field.") + name: string; + + @doc("The data type of the field.") + type: SearchFieldDataType; + + @doc("A value indicating whether the field uniquely identifies documents in the index. Exactly one top-level field in each index must be chosen as the key field and it must be of type Edm.String. Key fields can be used to look up documents directly and update or delete specific documents. Default is false for simple fields and null for complex fields.") + key?: boolean; + + @doc("A value indicating whether the field can be returned in a search result. You can disable this option if you want to use a field (for example, margin) as a filter, sorting, or scoring mechanism but do not want the field to be visible to the end user. This property must be true for key fields, and it must be null for complex fields. This property can be changed on existing fields. Enabling this property does not cause any increase in index storage requirements. Default is true for simple fields, false for vector fields, and null for complex fields.") + retrievable?: boolean; + + @doc("An immutable value indicating whether the field will be persisted separately on disk to be returned in a search result. You can disable this option if you don't plan to return the field contents in a search response to save on storage overhead. This can only be set during index creation and only for vector fields. This property cannot be changed for existing fields or set as false for new fields. If this property is set as false, the property 'retrievable' must also be set to false. This property must be true or unset for key fields, for new fields, and for non-vector fields, and it must be null for complex fields. Disabling this property will reduce index storage requirements. The default is true for vector fields.") + stored?: boolean; + + @doc("A value indicating whether the field is full-text searchable. This means it will undergo analysis such as word-breaking during indexing. If you set a searchable field to a value like \"sunny day\", internally it will be split into the individual tokens \"sunny\" and \"day\". This enables full-text searches for these terms. Fields of type Edm.String or Collection(Edm.String) are searchable by default. This property must be false for simple fields of other non-string data types, and it must be null for complex fields. Note: searchable fields consume extra space in your index to accommodate additional tokenized versions of the field value for full-text searches. If you want to save space in your index and you don't need a field to be included in searches, set searchable to false.") + searchable?: boolean; + + @doc("A value indicating whether to enable the field to be referenced in $filter queries. filterable differs from searchable in how strings are handled. Fields of type Edm.String or Collection(Edm.String) that are filterable do not undergo word-breaking, so comparisons are for exact matches only. For example, if you set such a field f to \"sunny day\", $filter=f eq 'sunny' will find no matches, but $filter=f eq 'sunny day' will. This property must be null for complex fields. Default is true for simple fields and null for complex fields.") + filterable?: boolean; + + @doc("A value indicating whether to enable the field to be referenced in $orderby expressions. By default, the search engine sorts results by score, but in many experiences users will want to sort by fields in the documents. A simple field can be sortable only if it is single-valued (it has a single value in the scope of the parent document). Simple collection fields cannot be sortable, since they are multi-valued. Simple sub-fields of complex collections are also multi-valued, and therefore cannot be sortable. This is true whether it's an immediate parent field, or an ancestor field, that's the complex collection. Complex fields cannot be sortable and the sortable property must be null for such fields. The default for sortable is true for single-valued simple fields, false for multi-valued simple fields, and null for complex fields.") + sortable?: boolean; + + @doc("A value indicating whether to enable the field to be referenced in facet queries. Typically used in a presentation of search results that includes hit count by category (for example, search for digital cameras and see hits by brand, by megapixels, by price, and so on). This property must be null for complex fields. Fields of type Edm.GeographyPoint or Collection(Edm.GeographyPoint) cannot be facetable. Default is true for all other simple fields.") + facetable?: boolean; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating whether the field should be used as a permission filter.") + permissionFilter?: PermissionFilter | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating whether the field contains sensitivity label information.") + sensitivityLabel?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The name of the analyzer to use for the field. This option can be used only with searchable fields and it can't be set together with either searchAnalyzer or indexAnalyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.") + analyzer?: LexicalAnalyzerName | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The name of the analyzer used at search time for the field. This option can be used only with searchable fields. It must be set together with indexAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. This analyzer can be updated on an existing field. Must be null for complex fields.") + searchAnalyzer?: LexicalAnalyzerName | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The name of the analyzer used at indexing time for the field. This option can be used only with searchable fields. It must be set together with searchAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.") + indexAnalyzer?: LexicalAnalyzerName | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The name of the normalizer to use for the field. This option can be used only with fields with filterable, sortable, or facetable enabled. Once the normalizer is chosen, it cannot be changed for the field. Must be null for complex fields.") + normalizer?: LexicalNormalizerName | null; + + @doc("The dimensionality of the vector field.") + @maxValue(4096) + @minValue(2) + dimensions?: int32; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The name of the vector search profile that specifies the algorithm and vectorizer to use when searching the vector field.") + vectorSearchProfile?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The encoding format to interpret the field contents.") + vectorEncoding?: VectorEncodingFormat | null; + + @doc("A list of the names of synonym maps to associate with this field. This option can be used only with searchable fields. Currently only one synonym map per field is supported. Assigning a synonym map to a field ensures that query terms targeting that field are expanded at query-time using the rules in the synonym map. This attribute can be changed on existing fields. Must be null or an empty collection for complex fields.") + synonymMaps?: string[]; + + @doc("A list of sub-fields if this is a field of type Edm.ComplexType or Collection(Edm.ComplexType). Must be null or empty for simple fields.") + fields?: SearchField[]; +} + +@doc("Defines parameters for a search index that influence scoring in search queries.") +model ScoringProfile { + @doc("The name of the scoring profile.") + name: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Parameters that boost scoring based on text matches in certain index fields.") + text?: TextWeights | null; + + @doc("The collection of functions that influence the scoring of documents.") + functions?: ScoringFunction[]; + + @doc("A value indicating how the results of individual scoring functions should be combined. Defaults to \"Sum\". Ignored if there are no scoring functions.") + functionAggregation?: ScoringFunctionAggregation; +} + +@doc("Defines weights on index fields for which matches should boost scoring in search queries.") +model TextWeights { + @doc("The dictionary of per-field weights to boost document scoring. The keys are field names and the values are the weights for each field.") + weights: Record; +} + +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" +@doc("Base type for functions that can modify document scores during ranking.") +@discriminator("type") +model ScoringFunction { + @doc("The name of the field used as input to the scoring function.") + fieldName: string; + + @doc("A multiplier for the raw score. Must be a positive number not equal to 1.0.") + boost: float64; + + @doc("A value indicating how boosting will be interpolated across document scores; defaults to \"Linear\".") + interpolation?: ScoringFunctionInterpolation; + + @doc("Type of ScoringFunction.") + type: string; +} + +@doc("Defines options to control Cross-Origin Resource Sharing (CORS) for an index.") +model CorsOptions { + @doc("The list of origins from which JavaScript code will be granted access to your index. Can contain a list of hosts of the form {protocol}://{fully-qualified-domain-name}[:{port#}], or a single '*' to allow all origins (not recommended).") + allowedOrigins: string[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The duration for which browsers should cache CORS preflight responses. Defaults to 5 minutes.") + maxAgeInSeconds?: int64 | null; +} + +@doc("Defines how the Suggest API should apply to a group of fields in the index.") +model SearchSuggester { + @doc("The name of the suggester.") + name: string; + + @doc("A value indicating the capabilities of the suggester.") + searchMode: "analyzingInfixMatching"; + + @doc("The list of field names to which the suggester applies. Each field must be searchable.") + sourceFields: string[]; +} + +@doc("Base type for analyzers.") +@discriminator("@odata.type") +model LexicalAnalyzer { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("The name of the analyzer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters.") + name: string; +} + +@doc("Base type for tokenizers.") +@discriminator("@odata.type") +model LexicalTokenizer { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("The name of the tokenizer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters.") + name: string; +} + +@doc("Base type for token filters.") +@discriminator("@odata.type") +model TokenFilter { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("The name of the token filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters.") + name: string; +} + +@doc("Base type for character filters.") +@discriminator("@odata.type") +model CharFilter { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("The name of the char filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters.") + name: string; +} + +@doc("Base type for normalizers.") +@discriminator("@odata.type") +model LexicalNormalizer { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; + + @doc("The name of the char filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters.") + name: string; +} + +@doc("Base type for similarity algorithms. Similarity algorithms are used to calculate scores that tie queries to documents. The higher the score, the more relevant the document is to that specific query. Those scores are used to rank the search results.") +@discriminator("@odata.type") +model SimilarityAlgorithm { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: string; +} + +@doc("Defines parameters for a search index that influence semantic capabilities.") +model SemanticSearch { + @doc("Allows you to set the name of a default semantic configuration in your index, making it optional to pass it on as a query parameter every time.") + defaultConfiguration?: string; + + @doc("The semantic configurations for the index.") + configurations?: SemanticConfiguration[]; +} + +@doc("Defines a specific configuration to be used in the context of semantic capabilities.") +model SemanticConfiguration { + @doc("The name of the semantic configuration.") + name: string; + + @doc("Describes the title, content, and keyword fields to be used for semantic ranking, captions, highlights, and answers. At least one of the three sub properties (titleField, prioritizedKeywordsFields and prioritizedContentFields) need to be set.") + prioritizedFields: SemanticPrioritizedFields; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Specifies the score type to be used for the sort order of the search results.") + rankingOrder?: RankingOrder | null; + + @doc("Determines which semantic or query rewrite models to use during model flighting/upgrades.") + flightingOptIn?: boolean = false; +} + +@doc("Describes the title, content, and keywords fields to be used for semantic ranking, captions, highlights, and answers.") +model SemanticPrioritizedFields { + @doc("Defines the title field to be used for semantic ranking, captions, highlights, and answers. If you don't have a title field in your index, leave this blank.") + titleField?: SemanticField; + + @doc("Defines the content fields to be used for semantic ranking, captions, highlights, and answers. For the best result, the selected fields should contain text in natural language form. The order of the fields in the array represents their priority. Fields with lower priority may get truncated if the content is long.") + prioritizedContentFields?: SemanticField[]; + + @doc("Defines the keyword fields to be used for semantic ranking, captions, highlights, and answers. For the best result, the selected fields should contain a list of keywords. The order of the fields in the array represents their priority. Fields with lower priority may get truncated if the content is long.") + prioritizedKeywordsFields?: SemanticField[]; +} + +@doc("A field that is used as part of the semantic configuration.") +model SemanticField { + @doc("File name") + fieldName: string; +} + +@doc("Contains configuration options related to vector search.") +model VectorSearch { + @doc("Defines combinations of configurations to use with vector search.") + profiles?: VectorSearchProfile[]; + + @doc("Contains configuration options specific to the algorithm used during indexing or querying.") + algorithms?: VectorSearchAlgorithmConfiguration[]; + + @doc("Contains configuration options on how to vectorize text vector queries.") + vectorizers?: VectorSearchVectorizer[]; + + @doc("Contains configuration options specific to the compression method used during indexing or querying.") + compressions?: VectorSearchCompression[]; +} + +@doc("Defines a combination of configurations to use with vector search.") +model VectorSearchProfile { + @doc("The name to associate with this particular vector search profile.") + name: string; + + @doc("The name of the vector search algorithm configuration that specifies the algorithm and optional parameters.") + algorithm: string; + + @doc("The name of the vectorization being configured for use with vector search.") + vectorizer?: string; + + @doc("The name of the compression method configuration that specifies the compression method and optional parameters.") + compression?: string; +} + +@doc("Contains configuration options specific to the algorithm used during indexing or querying.") +@discriminator("kind") +model VectorSearchAlgorithmConfiguration { + @doc("The name to associate with this particular configuration.") + name: string; + + @doc("Type of VectorSearchAlgorithmConfiguration.") + kind: VectorSearchAlgorithmKind; +} + +@doc("Specifies the vectorization method to be used during query time.") +@discriminator("kind") +model VectorSearchVectorizer { + @doc("The name to associate with this particular vectorization method.") + name: string; + + @doc("Type of VectorSearchVectorizer.") + kind: VectorSearchVectorizerKind; +} + +@doc("Contains configuration options specific to the compression method used during indexing or querying.") +@discriminator("kind") +model VectorSearchCompression { + @doc("The name to associate with this particular configuration.") + name: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Contains the options for rescoring.") + rescoringOptions?: RescoringOptions | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The number of dimensions to truncate the vectors to. Truncating the vectors reduces the size of the vectors and the amount of data that needs to be transferred during search. This can save storage cost and improve search performance at the expense of recall. It should be only used for embeddings trained with Matryoshka Representation Learning (MRL) such as OpenAI text-embedding-3-large (small). The default value is null, which means no truncation.") + truncationDimension?: int32 | null; + + @doc("Type of VectorSearchCompression.") + kind: VectorSearchCompressionKind; +} + +@doc("Contains the options for rescoring.") +model RescoringOptions { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("If set to true, after the initial search on the compressed vectors, the similarity scores are recalculated using the full-precision vectors. This will improve recall at the expense of latency.") + enableRescoring?: boolean | null = true; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Default oversampling factor. Oversampling retrieves a greater set of potential documents to offset the resolution loss due to quantization. This increases the set of results that will be rescored on full-precision vectors. Minimum value is 1, meaning no oversampling (1x). This parameter can only be set when 'enableRescoring' is true. Higher values improve recall at the expense of latency.") + defaultOversampling?: float64 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the storage method for original vectors. This setting is immutable.") + rescoreStorageMethod?: VectorSearchCompressionRescoreStorageMethod | null = VectorSearchCompressionRescoreStorageMethod.PreserveOriginals; +} + +@doc("Response from a List Indexes request. If successful, it includes the full definitions of all indexes.") +model ListIndexesResult { + @doc("The indexes in the Search service.") + @pageItems + @visibility(Lifecycle.Read) + value: SearchIndex[]; +} + +@doc("Statistics for a given index. Statistics are collected periodically and are not guaranteed to always be up-to-date.") +model GetIndexStatisticsResult { + @doc("The number of documents in the index.") + @visibility(Lifecycle.Read) + documentCount: int64; + + @doc("The amount of storage in bytes consumed by the index.") + @visibility(Lifecycle.Read) + storageSize: int64; + + @doc("The amount of memory in bytes consumed by vectors in the index.") + @visibility(Lifecycle.Read) + vectorIndexSize: int64; +} + +@doc("Specifies some text and analysis components used to break that text into tokens.") +model AnalyzeRequest { + @doc("The text to break into tokens.") + text: string; + + @doc("The name of the analyzer to use to break the given text. If this parameter is not specified, you must specify a tokenizer instead. The tokenizer and analyzer parameters are mutually exclusive.") + analyzer?: LexicalAnalyzerName; + + @doc("The name of the tokenizer to use to break the given text. If this parameter is not specified, you must specify an analyzer instead. The tokenizer and analyzer parameters are mutually exclusive.") + tokenizer?: LexicalTokenizerName; + + @doc("The name of the normalizer to use to normalize the given text.") + normalizer?: LexicalNormalizerName; + + @doc("An optional list of token filters to use when breaking the given text. This parameter can only be set when using the tokenizer parameter.") + tokenFilters?: TokenFilterName[]; + + @doc("An optional list of character filters to use when breaking the given text. This parameter can only be set when using the tokenizer parameter.") + charFilters?: CharFilterName[]; +} + +@doc("The result of testing an analyzer on text.") +model AnalyzeResult { + @doc("The list of tokens returned by the analyzer specified in the request.") + tokens: AnalyzedTokenInfo[]; +} + +@doc("Information about a token returned by an analyzer.") +model AnalyzedTokenInfo { + @doc("The token returned by the analyzer.") + @visibility(Lifecycle.Read) + token: string; + + @doc("The index of the first character of the token in the input text.") + @visibility(Lifecycle.Read) + startOffset: int32; + + @doc("The index of the last character of the token in the input text.") + @visibility(Lifecycle.Read) + endOffset: int32; + + @doc("The position of the token in the input text relative to other tokens. The first token in the input text has position 0, the next has position 1, and so on. Depending on the analyzer used, some tokens might have the same position, for example if they are synonyms of each other.") + @visibility(Lifecycle.Read) + position: int32; +} + +@doc("Represents an index alias, which describes a mapping from the alias name to an index. The alias name can be used in place of the index name for supported operations.") +model SearchAlias { + @doc("The name of the alias.") + name: string; + + @doc("The name of the index this alias maps to. Only one index name may be specified.") + indexes: string[]; + + @doc("The ETag of the alias.") + @encodedName("application/json", "@odata.etag") + eTag?: string; +} + +@doc("Response from a List Aliases request. If successful, it includes the associated index mappings for all aliases.") +model ListAliasesResult { + @doc("The aliases in the Search service.") + @pageItems + @visibility(Lifecycle.Read) + value: SearchAlias[]; +} + +// Knowledge Base models +@doc("Represents a knowledge base definition.") +model KnowledgeBase { + @doc("The name of the knowledge base.") + name: string; + + @doc("Knowledge sources referenced by this knowledge base.") + knowledgeSources: KnowledgeSourceReference[]; + + @doc("Contains configuration options on how to connect to AI models.") + models?: KnowledgeBaseModel[]; + + @doc("The retrieval reasoning effort configuration.") + retrievalReasoningEffort?: KnowledgeRetrievalReasoningEffort; + + @doc("The output mode for the knowledge base.") + outputMode?: KnowledgeRetrievalOutputMode; + + @doc("The ETag of the knowledge base.") + @encodedName("application/json", "@odata.etag") + eTag?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault.") + encryptionKey?: SearchResourceEncryptionKey | null; + + @doc("The description of the knowledge base.") + description?: string; + + @doc("Instructions considered by the knowledge base when developing query plan.") + retrievalInstructions?: string; + + @doc("Instructions considered by the knowledge base when generating answers.") + answerInstructions?: string; +} + +@doc("Result from listing knowledge bases.") +model ListKnowledgeBasesResult { + @doc("The knowledge bases in the service.") + @pageItems + value: KnowledgeBase[]; +} + +@discriminator("kind") +@doc("Specifies the connection parameters for the model to use for query planning.") +model KnowledgeBaseModel { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + @doc("The AI model to be used for query planning.") + kind: KnowledgeBaseModelKind; +} + +@doc("The AI model to be used for query planning.") +union KnowledgeBaseModelKind { + string, + + @doc("Use Azure Open AI models for query planning.") + AzureOpenAI: "azureOpenAI", +} + +@doc("Specifies the Azure OpenAI resource used to do query planning.") +model KnowledgeBaseAzureOpenAIModel extends KnowledgeBaseModel { + kind: KnowledgeBaseModelKind.AzureOpenAI; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("Azure OpenAI parameters.") + azureOpenAIParameters: AzureOpenAIVectorizerParameters; +} + +// Knowledge Source models +@doc("Reference to a knowledge source.") +model KnowledgeSourceReference { + @doc("The name of the knowledge source.") + name: string; +} + +@doc("Specifies the parameters for connecting to the Azure OpenAI resource.") +model AzureOpenAiParameters { + @doc("The resource URI of the Azure OpenAI resource.") + resourceUri?: url; + + @doc("ID of the Azure OpenAI model deployment on the designated resource.") + deploymentId?: string; + + @doc("API key of the designated Azure OpenAI resource.") + apiKey?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for outbound connections.") + authIdentity?: SearchIndexerDataIdentity | null; + + @doc("The name of the embedding model that is deployed at the provided deploymentId path.") + modelName?: AzureOpenAIModelName; +} + +// Knowledge Source models +@discriminator("kind") +@doc("Represents a knowledge source definition.") +model KnowledgeSource { + @doc("The name of the knowledge source.") + name: string; + + @doc("Optional user-defined description.") + description?: string; + + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + @doc("The type of the knowledge source.") + kind: KnowledgeSourceKind; + + @doc("The ETag of the knowledge source.") + @encodedName("application/json", "@odata.etag") + eTag?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your knowledge source definition when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your knowledge source definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your knowledge source definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.") + encryptionKey?: SearchResourceEncryptionKey | null; +} + +@doc("The kind of the knowledge source.") +union KnowledgeSourceKind { + string, + + @doc("A knowledge source that reads data from a Search Index.") + SearchIndex: "searchIndex", + + @doc("A knowledge source that read and ingest data from Azure Blob Storage to a Search Index.") + AzureBlob: "azureBlob", + + @doc("A knowledge source that reads data from indexed SharePoint.") + IndexedSharePoint: "indexedSharePoint", + + @doc("A knowledge source that reads data from indexed OneLake.") + IndexedOneLake: "indexedOneLake", + + @doc("A knowledge source that reads data from the web.") + Web: "web", + + @doc("A knowledge source that reads data from remote SharePoint.") + RemoteSharePoint: "remoteSharePoint", +} + +@doc("Knowledge Source targeting a search index.") +model SearchIndexKnowledgeSource extends KnowledgeSource { + kind: KnowledgeSourceKind.SearchIndex; + + @doc("The parameters for the knowledge source.") + searchIndexParameters: SearchIndexKnowledgeSourceParameters; +} + +@doc("Parameters for search index knowledge source.") +model SearchIndexKnowledgeSourceParameters { + @doc("The name of the Search index.") + searchIndexName: string; + + @doc("Used to request additional fields for referenced source data.") + sourceDataFields?: SearchIndexFieldReference[]; + + @doc("Used to restrict which fields to search on the search index.") + searchFields?: SearchIndexFieldReference[]; + + @doc("Used to specify a different semantic configuration on the target search index other than the default one.") + semanticConfigurationName?: string; +} + +@doc("Field reference for a search index.") +model SearchIndexFieldReference { + @doc("The name of the field.") + name: string; +} + +@doc("Configuration for Azure Blob Storage knowledge source.") +model AzureBlobKnowledgeSource extends KnowledgeSource { + kind: KnowledgeSourceKind.AzureBlob; + + @doc("The type of the knowledge source.") + azureBlobParameters: AzureBlobKnowledgeSourceParameters; +} + +@doc("Parameters for Azure Blob Storage knowledge source.") +model AzureBlobKnowledgeSourceParameters { + @doc("Key-based connection string or the ResourceId format if using a managed identity.") + connectionString: string; + + @doc("The name of the blob storage container.") + containerName: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional folder path within the container.") + folderPath?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("Set to true if connecting to an ADLS Gen2 storage account. Default is false.") + isADLSGen2?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Consolidates all general ingestion settings.") + ingestionParameters?: KnowledgeSourceIngestionParameters | null; + + @doc("Resources created by the knowledge source.") + @visibility(Lifecycle.Read) + createdResources?: CreatedResources; +} + +@doc("Configuration for SharePoint knowledge source.") +model IndexedSharePointKnowledgeSource extends KnowledgeSource { + kind: KnowledgeSourceKind.IndexedSharePoint; + + @doc("The parameters for the knowledge source.") + indexedSharePointParameters: IndexedSharePointKnowledgeSourceParameters; +} + +@doc("Parameters for SharePoint knowledge source.") +model IndexedSharePointKnowledgeSourceParameters { + @doc("SharePoint connection string with format: SharePointOnlineEndpoint=[SharePoint site url];ApplicationId=[Azure AD App ID];ApplicationSecret=[Azure AD App client secret];TenantId=[SharePoint site tenant id]") + connectionString: string; + + @doc("Specifies which SharePoint libraries to access.") + containerName: IndexedSharePointContainerName; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional query to filter SharePoint content.") + query?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Consolidates all general ingestion settings.") + ingestionParameters?: KnowledgeSourceIngestionParameters | null; + + @doc("Resources created by the knowledge source.") + @visibility(Lifecycle.Read) + createdResources?: CreatedResources; +} + +@doc("Configuration for OneLake knowledge source.") +model IndexedOneLakeKnowledgeSource extends KnowledgeSource { + kind: KnowledgeSourceKind.IndexedOneLake; + + @doc("The parameters for the knowledge source.") + indexedOneLakeParameters: IndexedOneLakeKnowledgeSourceParameters; +} + +@doc("Parameters for OneLake knowledge source.") +model IndexedOneLakeKnowledgeSourceParameters { + @doc("OneLake workspace ID.") + fabricWorkspaceId: string; + + @doc("Specifies which OneLake lakehouse to access.") + lakehouseId: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Optional OneLakehouse folder or shortcut to filter OneLake content.") + targetPath?: string | null; + + @doc("Consolidates all general ingestion settings.") + ingestionParameters?: KnowledgeSourceIngestionParameters; + + @doc("Resources created by the knowledge source.") + @visibility(Lifecycle.Read) + createdResources?: CreatedResources; +} + +@doc("Knowledge Source targeting web results.") +model WebKnowledgeSource extends KnowledgeSource { + kind: KnowledgeSourceKind.Web; + + @doc("The parameters for the web knowledge source.") + webParameters?: WebKnowledgeSourceParameters; +} + +@doc("Parameters for web knowledge source.") +model WebKnowledgeSourceParameters { + @doc("Domain allow/block configuration for web results.") + domains?: WebKnowledgeSourceDomains; +} + +@doc("Domain allow/block configuration for web knowledge source.") +model WebKnowledgeSourceDomains { + @doc("Domains that are allowed for web results.") + allowedDomains?: WebKnowledgeSourceDomain[]; + + @doc("Domains that are blocked from web results.") + blockedDomains?: WebKnowledgeSourceDomain[]; +} + +@doc("Configuration for web knowledge source domain.") +model WebKnowledgeSourceDomain { + @doc("The address of the domain.") + address: string; + + @doc("Whether or not to include subpages from this domain.") + includeSubpages?: boolean; +} + +@doc("Configuration for remote SharePoint knowledge source.") +model RemoteSharePointKnowledgeSource extends KnowledgeSource { + kind: KnowledgeSourceKind.RemoteSharePoint; + + @doc("The parameters for the remote SharePoint knowledge source.") + remoteSharePointParameters?: RemoteSharePointKnowledgeSourceParameters; +} + +@doc("Parameters for remote SharePoint knowledge source.") +model RemoteSharePointKnowledgeSourceParameters { + @doc("Keyword Query Language (KQL) expression with queryable SharePoint properties and attributes to scope the retrieval before the query runs.") + filterExpression?: string; + + @doc("A list of metadata fields to be returned for each item in the response. Only retrievable metadata properties can be included in this list. By default, no metadata is returned.") + resourceMetadata?: string[]; + + @doc("Container ID for SharePoint Embedded connection. When this is null, it will use SharePoint Online.") + containerTypeId?: string; +} + +@doc("Result from listing knowledge sources.") +model ListKnowledgeSourcesResult { + @doc("The knowledge sources in the service.") + @pageItems + value: KnowledgeSource[]; +} + +@doc("Resources created by the knowledge source. Keys represent resource types (e.g., 'datasource', 'indexer', 'skillset', 'index') and values represent resource names.") +model CreatedResources { + ...Record; +} + +@doc("Response from a get service statistics request. If successful, it includes service level counters and limits.") +model SearchServiceStatistics { + @doc("Service level resource counters.") + counters: SearchServiceCounters; + + @doc("Service level general limits.") + limits: SearchServiceLimits; + + @doc("Service level indexer runtime consumption.") + indexersRuntime: ServiceIndexersRuntime; +} + +@doc("Represents service-level resource counters and quotas.") +model SearchServiceCounters { + @doc("Total number of aliases.") + aliasesCount: ResourceCounter; + + @doc("Total number of documents across all indexes in the service.") + documentCount: ResourceCounter; + + @doc("Total number of indexes.") + indexesCount: ResourceCounter; + + @doc("Total number of indexers.") + indexersCount: ResourceCounter; + + @doc("Total number of data sources.") + dataSourcesCount: ResourceCounter; + + @doc("Total size of used storage in bytes.") + storageSize: ResourceCounter; + + @doc("Total number of synonym maps.") + synonymMaps: ResourceCounter; + + @doc("Total number of skillsets.") + skillsetCount: ResourceCounter; + + @doc("Total memory consumption of all vector indexes within the service, in bytes.") + vectorIndexSize: ResourceCounter; +} + +@doc("Represents a resource's usage and quota.") +model ResourceCounter { + @doc("The resource usage amount.") + usage: int64; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The resource amount quota.") + quota?: int64 | null; +} + +@doc("Represents various service level limits.") +model SearchServiceLimits { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum allowed fields per index.") + maxFieldsPerIndex?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum depth which you can nest sub-fields in an index, including the top-level complex field. For example, a/b/c has a nesting depth of 3.") + maxFieldNestingDepthPerIndex?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum number of fields of type Collection(Edm.ComplexType) allowed in an index.") + maxComplexCollectionFieldsPerIndex?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum number of objects in complex collections allowed per document.") + maxComplexObjectsInCollectionsPerDocument?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum amount of storage in bytes allowed per index.") + maxStoragePerIndex?: int64 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum cumulative indexer runtime in seconds allowed for the service.") + maxCumulativeIndexerRuntimeSeconds?: int64 | null; +} + +@doc("Represents service-level indexer runtime counters.") +model ServiceIndexersRuntime { + @doc("Cumulative runtime of all indexers in the service from the beginningTime to endingTime, in seconds.") + usedSeconds: int64; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Cumulative runtime remaining for all indexers in the service from the beginningTime to endingTime, in seconds.") + remainingSeconds?: int64 | null; + + @doc("Beginning UTC time of the 24-hour period considered for indexer runtime usage (inclusive).") + beginningTime: utcDateTime; + + @doc("End UTC time of the 24-hour period considered for indexer runtime usage (inclusive).") + endingTime: utcDateTime; +} + +@doc("Allows you to take control over the process of converting text into indexable/searchable tokens. It's a user-defined configuration consisting of a single predefined tokenizer and one or more filters. The tokenizer is responsible for breaking text into tokens, and the filters for modifying tokens emitted by the tokenizer.") +model CustomAnalyzer extends LexicalAnalyzer { + @doc("The name of the tokenizer to use to divide continuous text into a sequence of tokens, such as breaking a sentence into words.") + tokenizer: LexicalTokenizerName; + + @doc("A list of token filters used to filter out or modify the tokens generated by a tokenizer. For example, you can specify a lowercase filter that converts all characters to lowercase. The filters are run in the order in which they are listed.") + tokenFilters?: TokenFilterName[]; + + @doc("A list of character filters used to prepare input text before it is processed by the tokenizer. For instance, they can replace certain characters or symbols. The filters are run in the order in which they are listed.") + charFilters?: CharFilterName[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of analyzer.") + `@odata.type`: "#Microsoft.Azure.Search.CustomAnalyzer"; +} + +@doc("Flexibly separates text into terms via a regular expression pattern. This analyzer is implemented using Apache Lucene.") +model PatternAnalyzer extends LexicalAnalyzer { + @doc("A value indicating whether terms should be lower-cased. Default is true.") + lowercase?: boolean = true; + + @doc("A regular expression pattern to match token separators. Default is an expression that matches one or more non-word characters.") + pattern?: string = "\\W+"; + + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("Regular expression flags.") + @encode(ArrayEncoding.pipeDelimited) + flags?: RegexFlags; + + @doc("A list of stopwords.") + stopwords?: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of analyzer.") + `@odata.type`: "#Microsoft.Azure.Search.PatternAnalyzer"; +} + +@doc("Standard Apache Lucene analyzer; Composed of the standard tokenizer, lowercase filter and stop filter.") +model LuceneStandardAnalyzer extends LexicalAnalyzer { + @doc("The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.") + @maxValue(300) + maxTokenLength?: int32 = 255; + + @doc("A list of stopwords.") + stopwords?: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of analyzer.") + `@odata.type`: "#Microsoft.Azure.Search.StandardAnalyzer"; +} + +@doc("Divides text at non-letters; Applies the lowercase and stopword token filters. This analyzer is implemented using Apache Lucene.") +model StopAnalyzer extends LexicalAnalyzer { + @doc("A list of stopwords.") + stopwords?: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of analyzer.") + `@odata.type`: "#Microsoft.Azure.Search.StopAnalyzer"; +} + +@doc("Allows you to configure normalization for filterable, sortable, and facetable fields, which by default operate with strict matching. This is a user-defined configuration consisting of at least one or more filters, which modify the token that is stored.") +model CustomNormalizer extends LexicalNormalizer { + @doc("A list of token filters used to filter out or modify the input token. For example, you can specify a lowercase filter that converts all characters to lowercase. The filters are run in the order in which they are listed.") + tokenFilters?: TokenFilterName[]; + + @doc("A list of character filters used to prepare input text before it is processed. For instance, they can replace certain characters or symbols. The filters are run in the order in which they are listed.") + charFilters?: CharFilterName[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of normalizer.") + `@odata.type`: "#Microsoft.Azure.Search.CustomNormalizer"; +} + +@doc("Grammar-based tokenizer that is suitable for processing most European-language documents. This tokenizer is implemented using Apache Lucene.") +model ClassicTokenizer extends LexicalTokenizer { + @doc("The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.") + @maxValue(300) + maxTokenLength?: int32 = 255; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.ClassicTokenizer"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Tokenizes the input from an edge into n-grams of the given size(s). This tokenizer is implemented using Apache Lucene.") +model EdgeNGramTokenizer extends LexicalTokenizer { + @doc("The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.") + @maxValue(300) + minGram?: int32 = 1; + + @doc("The maximum n-gram length. Default is 2. Maximum is 300.") + @maxValue(300) + maxGram?: int32 = 2; + + @doc("Character classes to keep in the tokens.") + tokenChars?: TokenCharacterKind[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.EdgeNGramTokenizer"; +} + +#deprecated "Use KeywordTokenizerV2 instead." +@doc("Emits the entire input as a single token. This tokenizer is implemented using Apache Lucene.") +model KeywordTokenizer extends LexicalTokenizer { + @doc("The read buffer size in bytes. Default is 256.") + bufferSize?: int32 = 256; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.KeywordTokenizer"; +} + +@doc("Emits the entire input as a single token. This tokenizer is implemented using Apache Lucene.") +model KeywordTokenizerV2 extends LexicalTokenizer { + @doc("The maximum token length. Default is 256. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.") + @maxValue(300) + maxTokenLength?: int32 = 256; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.KeywordTokenizerV2"; +} + +@doc("Divides text using language-specific rules.") +model MicrosoftLanguageTokenizer extends LexicalTokenizer { + @doc("The maximum token length. Tokens longer than the maximum length are split. Maximum token length that can be used is 300 characters. Tokens longer than 300 characters are first split into tokens of length 300 and then each of those tokens is split based on the max token length set. Default is 255.") + @maxValue(300) + maxTokenLength?: int32 = 255; + + @doc("A value indicating how the tokenizer is used. Set to true if used as the search tokenizer, set to false if used as the indexing tokenizer. Default is false.") + isSearchTokenizer?: boolean = false; + + @doc("The language to use. The default is English.") + language?: MicrosoftTokenizerLanguage; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.MicrosoftLanguageTokenizer"; +} + +@doc("Divides text using language-specific rules and reduces words to their base forms.") +model MicrosoftLanguageStemmingTokenizer extends LexicalTokenizer { + @doc("The maximum token length. Tokens longer than the maximum length are split. Maximum token length that can be used is 300 characters. Tokens longer than 300 characters are first split into tokens of length 300 and then each of those tokens is split based on the max token length set. Default is 255.") + @maxValue(300) + maxTokenLength?: int32 = 255; + + @doc("A value indicating how the tokenizer is used. Set to true if used as the search tokenizer, set to false if used as the indexing tokenizer. Default is false.") + isSearchTokenizer?: boolean = false; + + @doc("The language to use. The default is English.") + language?: MicrosoftStemmingTokenizerLanguage; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.MicrosoftLanguageStemmingTokenizer"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Tokenizes the input into n-grams of the given size(s). This tokenizer is implemented using Apache Lucene.") +model NGramTokenizer extends LexicalTokenizer { + @doc("The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.") + @maxValue(300) + minGram?: int32 = 1; + + @doc("The maximum n-gram length. Default is 2. Maximum is 300.") + @maxValue(300) + maxGram?: int32 = 2; + + @doc("Character classes to keep in the tokens.") + tokenChars?: TokenCharacterKind[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.NGramTokenizer"; +} + +@doc("Tokenizer for path-like hierarchies. This tokenizer is implemented using Apache Lucene.") +model PathHierarchyTokenizerV2 extends LexicalTokenizer { + @doc("The delimiter character to use. Default is \"/\".") + @maxLength(1) + delimiter?: string = "/"; + + @doc("A value that, if set, replaces the delimiter character. Default is \"/\".") + @maxLength(1) + replacement?: string = "/"; + + @doc("The maximum token length. Default and maximum is 300.") + @maxValue(300) + maxTokenLength?: int32 = 300; + + @doc("A value indicating whether to generate tokens in reverse order. Default is false.") + reverse?: boolean = false; + + @doc("The number of initial tokens to skip. Default is 0.") + skip?: int32 = 0; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.PathHierarchyTokenizerV2"; +} + +@doc("Tokenizer that uses regex pattern matching to construct distinct tokens. This tokenizer is implemented using Apache Lucene.") +model PatternTokenizer extends LexicalTokenizer { + @doc("A regular expression pattern to match token separators. Default is an expression that matches one or more non-word characters.") + pattern?: string = "\\W+"; + + @doc("Regular expression flags.") + flags?: RegexFlags; + + @doc("The zero-based ordinal of the matching group in the regular expression pattern to extract into tokens. Use -1 if you want to use the entire pattern to split the input into tokens, irrespective of matching groups. Default is -1.") + group?: int32 = -1; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.PatternTokenizer"; +} + +#deprecated "LuceneStandardTokenizer is deprecated. Use LuceneStandardTokenizerV2 instead." +@doc("Breaks text following the Unicode Text Segmentation rules. This tokenizer is implemented using Apache Lucene.") +model LuceneStandardTokenizer extends LexicalTokenizer { + @doc("The maximum token length. Default is 255. Tokens longer than the maximum length are split.") + maxTokenLength?: int32 = 255; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.StandardTokenizer"; +} + +@doc("Breaks text following the Unicode Text Segmentation rules. This tokenizer is implemented using Apache Lucene.") +model LuceneStandardTokenizerV2 extends LexicalTokenizer { + @doc("The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.") + @maxValue(300) + maxTokenLength?: int32 = 255; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.StandardTokenizerV2"; +} + +@doc("Tokenizes urls and emails as one token. This tokenizer is implemented using Apache Lucene.") +model UaxUrlEmailTokenizer extends LexicalTokenizer { + @doc("The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.") + @maxValue(300) + maxTokenLength?: int32 = 255; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of tokenizer.") + `@odata.type`: "#Microsoft.Azure.Search.UaxUrlEmailTokenizer"; +} + +@doc("Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. This token filter is implemented using Apache Lucene.") +model AsciiFoldingTokenFilter extends TokenFilter { + @doc("A value indicating whether the original token will be kept. Default is false.") + preserveOriginal?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.AsciiFoldingTokenFilter"; +} + +@doc("Forms bigrams of CJK terms that are generated from the standard tokenizer. This token filter is implemented using Apache Lucene.") +model CjkBigramTokenFilter extends TokenFilter { + @doc("The scripts to ignore.") + ignoreScripts?: CjkBigramTokenFilterScripts[]; + + @doc("A value indicating whether to output both unigrams and bigrams (if true), or just bigrams (if false). Default is false.") + outputUnigrams?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.CjkBigramTokenFilter"; +} + +@doc("Construct bigrams for frequently occurring terms while indexing. Single terms are still indexed too, with bigrams overlaid. This token filter is implemented using Apache Lucene.") +model CommonGramTokenFilter extends TokenFilter { + @doc("The set of common words.") + commonWords: string[]; + + @doc("A value indicating whether common words matching will be case insensitive. Default is false.") + ignoreCase?: boolean = false; + + @doc("A value that indicates whether the token filter is in query mode. When in query mode, the token filter generates bigrams and then removes common words and single terms followed by a common word. Default is false.") + queryMode?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.CommonGramTokenFilter"; +} + +@doc("Decomposes compound words found in many Germanic languages. This token filter is implemented using Apache Lucene.") +model DictionaryDecompounderTokenFilter extends TokenFilter { + @doc("The list of words to match against.") + wordList: string[]; + + @doc("The minimum word size. Only words longer than this get processed. Default is 5. Maximum is 300.") + @maxValue(300) + minWordSize?: int32 = 5; + + @doc("The minimum subword size. Only subwords longer than this are outputted. Default is 2. Maximum is 300.") + @maxValue(300) + minSubwordSize?: int32 = 2; + + @doc("The maximum subword size. Only subwords shorter than this are outputted. Default is 15. Maximum is 300.") + @maxValue(300) + maxSubwordSize?: int32 = 15; + + @doc("A value indicating whether to add only the longest matching subword to the output. Default is false.") + onlyLongestMatch?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.DictionaryDecompounderTokenFilter"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.") +#deprecated "EdgeNGramTokenFilter is deprecated. Use EdgeNGramTokenFilterV2 instead." +model EdgeNGramTokenFilter extends TokenFilter { + @doc("The minimum n-gram length. Default is 1. Must be less than the value of maxGram.") + minGram?: int32 = 1; + + @doc("The maximum n-gram length. Default is 2.") + maxGram?: int32 = 2; + + @doc("Specifies which side of the input the n-gram should be generated from. Default is \"front\".") + side?: EdgeNGramTokenFilterSide = EdgeNGramTokenFilterSide.Front; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.EdgeNGramTokenFilter"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.") +model EdgeNGramTokenFilterV2 extends TokenFilter { + @doc("The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.") + @maxValue(300) + minGram?: int32 = 1; + + @doc("The maximum n-gram length. Default is 2. Maximum is 300.") + @maxValue(300) + maxGram?: int32 = 2; + + @doc("Specifies which side of the input the n-gram should be generated from. Default is \"front\".") + side?: EdgeNGramTokenFilterSide = EdgeNGramTokenFilterSide.Front; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.EdgeNGramTokenFilterV2"; +} + +@doc("Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). This token filter is implemented using Apache Lucene.") +model ElisionTokenFilter extends TokenFilter { + @doc("The set of articles to remove.") + articles?: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.ElisionTokenFilter"; +} + +@doc("A token filter that only keeps tokens with text contained in a specified list of words. This token filter is implemented using Apache Lucene.") +model KeepTokenFilter extends TokenFilter { + @doc("The list of words to keep.") + keepWords: string[]; + + @doc("A value indicating whether to lower case all words first. Default is false.") + keepWordsCase?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.KeepTokenFilter"; +} + +@doc("Marks terms as keywords. This token filter is implemented using Apache Lucene.") +model KeywordMarkerTokenFilter extends TokenFilter { + @doc("A list of words to mark as keywords.") + keywords: string[]; + + @doc("A value indicating whether to ignore case. If true, all words are converted to lower case first. Default is false.") + ignoreCase?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.KeywordMarkerTokenFilter"; +} + +@doc("Removes words that are too long or too short. This token filter is implemented using Apache Lucene.") +model LengthTokenFilter extends TokenFilter { + @doc("The minimum length in characters. Default is 0. Maximum is 300. Must be less than the value of max.") + @maxValue(300) + min?: int32 = 0; + + @doc("The maximum length in characters. Default and maximum is 300.") + @maxValue(300) + max?: int32 = 300; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.LengthTokenFilter"; +} + +@doc("Limits the number of tokens while indexing. This token filter is implemented using Apache Lucene.") +model LimitTokenFilter extends TokenFilter { + @doc("The maximum number of tokens to produce. Default is 1.") + maxTokenCount?: int32 = 1; + + @doc("A value indicating whether all tokens from the input must be consumed even if maxTokenCount is reached. Default is false.") + consumeAllTokens?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.LimitTokenFilter"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.") +#deprecated "NGramTokenFilter is deprecated. Use NGramTokenFilterV2 instead." +model NGramTokenFilter extends TokenFilter { + @doc("The minimum n-gram length. Default is 1. Must be less than the value of maxGram.") + minGram?: int32 = 1; + + @doc("The maximum n-gram length. Default is 2.") + maxGram?: int32 = 2; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.NGramTokenFilter"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.") +model NGramTokenFilterV2 extends TokenFilter { + @doc("The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.") + @maxValue(300) + minGram?: int32 = 1; + + @doc("The maximum n-gram length. Default is 2. Maximum is 300.") + @maxValue(300) + maxGram?: int32 = 2; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.NGramTokenFilterV2"; +} + +@doc("Uses Java regexes to emit multiple tokens - one for each capture group in one or more patterns. This token filter is implemented using Apache Lucene.") +model PatternCaptureTokenFilter extends TokenFilter { + @doc("A list of patterns to match against each token.") + patterns: string[]; + + @doc("A value indicating whether to return the original token even if one of the patterns matches. Default is true.") + preserveOriginal?: boolean = true; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.PatternCaptureTokenFilter"; +} + +@doc("A character filter that replaces characters in the input string. It uses a regular expression to identify character sequences to preserve and a replacement pattern to identify characters to replace. For example, given the input text \"aa bb aa bb\", pattern \"(aa)\\s+(bb)\", and replacement \"$1#$2\", the result would be \"aa#bb aa#bb\". This token filter is implemented using Apache Lucene.") +model PatternReplaceTokenFilter extends TokenFilter { + @doc("A regular expression pattern.") + pattern: string; + + @doc("The replacement text.") + replacement: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.PatternReplaceTokenFilter"; +} + +@doc("Create tokens for phonetic matches. This token filter is implemented using Apache Lucene.") +model PhoneticTokenFilter extends TokenFilter { + @doc("The phonetic encoder to use. Default is \"metaphone\".") + encoder?: PhoneticEncoder = PhoneticEncoder.Metaphone; + + @doc("A value indicating whether encoded tokens should replace original tokens. If false, encoded tokens are added as synonyms. Default is true.") + replace?: boolean = true; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.PhoneticTokenFilter"; +} + +@doc("Creates combinations of tokens as a single token. This token filter is implemented using Apache Lucene.") +model ShingleTokenFilter extends TokenFilter { + @doc("The maximum shingle size. Default and minimum value is 2.") + @minValue(2) + maxShingleSize?: int32 = 2; + + @doc("The minimum shingle size. Default and minimum value is 2. Must be less than the value of maxShingleSize.") + @minValue(2) + minShingleSize?: int32 = 2; + + @doc("A value indicating whether the output stream will contain the input tokens (unigrams) as well as shingles. Default is true.") + outputUnigrams?: boolean = true; + + @doc("A value indicating whether to output unigrams for those times when no shingles are available. This property takes precedence when outputUnigrams is set to false. Default is false.") + outputUnigramsIfNoShingles?: boolean = false; + + @doc("The string to use when joining adjacent tokens to form a shingle. Default is a single space (\" \").") + tokenSeparator?: string = " "; + + @doc("The string to insert for each position at which there is no token. Default is an underscore (\"_\").") + filterToken?: string = "_"; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.ShingleTokenFilter"; +} + +@doc("A filter that stems words using a Snowball-generated stemmer. This token filter is implemented using Apache Lucene.") +model SnowballTokenFilter extends TokenFilter { + @doc("The language to use.") + language: SnowballTokenFilterLanguage; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.SnowballTokenFilter"; +} + +@doc("Language specific stemming filter. This token filter is implemented using Apache Lucene. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#TokenFilters") +model StemmerTokenFilter extends TokenFilter { + @doc("The language to use.") + language: StemmerTokenFilterLanguage; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.StemmerTokenFilter"; +} + +@doc("Provides the ability to override other stemming filters with custom dictionary-based stemming. Any dictionary-stemmed terms will be marked as keywords so that they will not be stemmed with stemmers down the chain. Must be placed before any stemming filters. This token filter is implemented using Apache Lucene. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/StemmerOverrideFilter.html") +model StemmerOverrideTokenFilter extends TokenFilter { + @doc("A list of stemming rules in the following format: \"word => stem\", for example: \"ran => run\".") + rules: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.StemmerOverrideTokenFilter"; +} + +@doc("Removes stop words from a token stream. This token filter is implemented using Apache Lucene. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopFilter.html") +model StopwordsTokenFilter extends TokenFilter { + @doc("The list of stopwords. This property and the stopwords list property cannot both be set.") + stopwords?: string[]; + + @doc("A predefined list of stopwords to use. This property and the stopwords property cannot both be set. Default is English.") + stopwordsList?: StopwordsList = StopwordsList.English; + + @doc("A value indicating whether to ignore case. If true, all words are converted to lower case first. Default is false.") + ignoreCase?: boolean = false; + + @doc("A value indicating whether to ignore the last search term if it's a stop word. Default is true.") + removeTrailing?: boolean = true; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.StopwordsTokenFilter"; +} + +@doc("Matches single or multi-word synonyms in a token stream. This token filter is implemented using Apache Lucene.") +model SynonymTokenFilter extends TokenFilter { + @doc("A list of synonyms in following one of two formats: 1. incredible, unbelievable, fabulous => amazing - all terms on the left side of => symbol will be replaced with all terms on its right side; 2. incredible, unbelievable, fabulous, amazing - comma separated list of equivalent words. Set the expand option to change how this list is interpreted.") + synonyms: string[]; + + @doc("A value indicating whether to case-fold input for matching. Default is false.") + ignoreCase?: boolean = false; + + @doc("A value indicating whether all words in the list of synonyms (if => notation is not used) will map to one another. If true, all words in the list of synonyms (if => notation is not used) will map to one another. The following list: incredible, unbelievable, fabulous, amazing is equivalent to: incredible, unbelievable, fabulous, amazing => incredible, unbelievable, fabulous, amazing. If false, the following list: incredible, unbelievable, fabulous, amazing will be equivalent to: incredible, unbelievable, fabulous, amazing => incredible. Default is true.") + expand?: boolean = true; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.SynonymTokenFilter"; +} + +@doc("Truncates the terms to a specific length. This token filter is implemented using Apache Lucene.") +model TruncateTokenFilter extends TokenFilter { + @doc("The length at which terms will be truncated. Default and maximum is 300.") + @maxValue(300) + length?: int32 = 300; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.TruncateTokenFilter"; +} + +@doc("Filters out tokens with same text as the previous token. This token filter is implemented using Apache Lucene.") +model UniqueTokenFilter extends TokenFilter { + @doc("A value indicating whether to remove duplicates only at the same position. Default is false.") + onlyOnSamePosition?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.UniqueTokenFilter"; +} + +@doc("Splits words into subwords and performs optional transformations on subword groups. This token filter is implemented using Apache Lucene.") +model WordDelimiterTokenFilter extends TokenFilter { + @doc("A value indicating whether to generate part words. If set, causes parts of words to be generated; for example \"AzureSearch\" becomes \"Azure\" \"Search\". Default is true.") + generateWordParts?: boolean = true; + + @doc("A value indicating whether to generate number subwords. Default is true.") + generateNumberParts?: boolean = true; + + @doc("A value indicating whether maximum runs of word parts will be catenated. For example, if this is set to true, \"Azure-Search\" becomes \"AzureSearch\". Default is false.") + catenateWords?: boolean = false; + + @doc("A value indicating whether maximum runs of number parts will be catenated. For example, if this is set to true, \"1-2\" becomes \"12\". Default is false.") + catenateNumbers?: boolean = false; + + @doc("A value indicating whether all subword parts will be catenated. For example, if this is set to true, \"Azure-Search-1\" becomes \"AzureSearch1\". Default is false.") + catenateAll?: boolean = false; + + @doc("A value indicating whether to split words on caseChange. For example, if this is set to true, \"AzureSearch\" becomes \"Azure\" \"Search\". Default is true.") + splitOnCaseChange?: boolean = true; + + @doc("A value indicating whether original words will be preserved and added to the subword list. Default is false.") + preserveOriginal?: boolean = false; + + @doc("A value indicating whether to split on numbers. For example, if this is set to true, \"Azure1Search\" becomes \"Azure\" \"1\" \"Search\". Default is true.") + splitOnNumerics?: boolean = true; + + @doc("A value indicating whether to remove trailing \"'s\" for each subword. Default is true.") + stemEnglishPossessive?: boolean = true; + + @doc("A list of tokens to protect from being delimited.") + protectedWords?: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of token filter.") + `@odata.type`: "#Microsoft.Azure.Search.WordDelimiterTokenFilter"; +} + +@doc("A character filter that applies mappings defined with the mappings option. Matching is greedy (longest pattern matching at a given point wins). Replacement is allowed to be the empty string. This character filter is implemented using Apache Lucene.") +model MappingCharFilter extends CharFilter { + @doc("A list of mappings of the following format: \"a=>b\" (all occurrences of the character \"a\" will be replaced with character \"b\").") + mappings: string[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of char filter.") + `@odata.type`: "#Microsoft.Azure.Search.MappingCharFilter"; +} + +@doc("A character filter that replaces characters in the input string. It uses a regular expression to identify character sequences to preserve and a replacement pattern to identify characters to replace. For example, given the input text \"aa bb aa bb\", pattern \"(aa)\\s+(bb)\", and replacement \"$1#$2\", the result would be \"aa#bb aa#bb\". This character filter is implemented using Apache Lucene.") +model PatternReplaceCharFilter extends CharFilter { + @doc("A regular expression pattern.") + pattern: string; + + @doc("The replacement text.") + replacement: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of char filter.") + `@odata.type`: "#Microsoft.Azure.Search.PatternReplaceCharFilter"; +} + +@doc("Legacy similarity algorithm which uses the Lucene TFIDFSimilarity implementation of TF-IDF. This variation of TF-IDF introduces static document length normalization as well as coordinating factors that penalize documents that only partially match the searched queries.") +model ClassicSimilarityAlgorithm extends SimilarityAlgorithm { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: "#Microsoft.Azure.Search.ClassicSimilarity"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Ranking function based on the Okapi BM25 similarity algorithm. BM25 is a TF-IDF-like algorithm that includes length normalization (controlled by the 'b' parameter) as well as term frequency saturation (controlled by the 'k1' parameter).") +model BM25SimilarityAlgorithm extends SimilarityAlgorithm { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("This property controls the scaling function between the term frequency of each matching terms and the final relevance score of a document-query pair. By default, a value of 1.2 is used. A value of 0.0 means the score does not scale with an increase in term frequency.") + k1?: float64 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("This property controls how the length of a document affects the relevance score. By default, a value of 0.75 is used. A value of 0.0 means no length normalization is applied, while a value of 1.0 means the score is fully normalized by the length of the document.") + b?: float64 | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: "#Microsoft.Azure.Search.BM25Similarity"; +} + +@doc("Contains configuration options specific to the HNSW approximate nearest neighbors algorithm used during indexing and querying. The HNSW algorithm offers a tunable trade-off between search speed and accuracy.") +model HnswAlgorithmConfiguration extends VectorSearchAlgorithmConfiguration { + @doc("Contains the parameters specific to HNSW algorithm.") + hnswParameters?: HnswParameters; + + @doc("The name of the kind of algorithm being configured for use with vector search.") + kind: "hnsw"; +} + +@doc("Contains the parameters specific to the HNSW algorithm.") +model HnswParameters { + @doc("The number of bi-directional links created for every new element during construction. Increasing this parameter value may improve recall and reduce retrieval times for datasets with high intrinsic dimensionality at the expense of increased memory consumption and longer indexing time.") + @maxValue(10) + @minValue(4) + m?: int32 = 4; + + @doc("The size of the dynamic list containing the nearest neighbors, which is used during index time. Increasing this parameter may improve index quality, at the expense of increased indexing time. At a certain point, increasing this parameter leads to diminishing returns.") + @maxValue(1000) + @minValue(100) + efConstruction?: int32 = 400; + + @doc("The size of the dynamic list containing the nearest neighbors, which is used during search time. Increasing this parameter may improve search results, at the expense of slower search. At a certain point, increasing this parameter leads to diminishing returns.") + @maxValue(1000) + @minValue(100) + efSearch?: int32 = 500; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The similarity metric to use for vector comparisons.") + metric?: VectorSearchAlgorithmMetric | null; +} + +@doc("Contains configuration options specific to the exhaustive KNN algorithm used during querying, which will perform brute-force search across the entire vector index.") +model ExhaustiveKnnAlgorithmConfiguration + extends VectorSearchAlgorithmConfiguration { + @doc("Contains the parameters specific to exhaustive KNN algorithm.") + exhaustiveKnnParameters?: ExhaustiveKnnParameters; + + @doc("The name of the kind of algorithm being configured for use with vector search.") + kind: "exhaustiveKnn"; +} + +@doc("Contains the parameters specific to exhaustive KNN algorithm.") +model ExhaustiveKnnParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The similarity metric to use for vector comparisons.") + metric?: VectorSearchAlgorithmMetric | null; +} + +@doc("Contains configuration options specific to the scalar quantization compression method used during indexing and querying.") +model ScalarQuantizationCompression extends VectorSearchCompression { + @doc("Contains the parameters specific to Scalar Quantization.") + scalarQuantizationParameters?: ScalarQuantizationParameters; + + @doc("The name of the kind of compression method being configured for use with vector search.") + kind: "scalarQuantization"; +} + +@doc("Contains the parameters specific to Scalar Quantization.") +model ScalarQuantizationParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The quantized data type of compressed vector values.") + quantizedDataType?: VectorSearchCompressionTarget | null; +} + +@doc("Contains configuration options specific to the binary quantization compression method used during indexing and querying.") +model BinaryQuantizationCompression extends VectorSearchCompression { + @doc("The name of the kind of compression method being configured for use with vector search.") + kind: "binaryQuantization"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Specifies the Azure OpenAI resource used to vectorize a query string.") +model AzureOpenAIVectorizer extends VectorSearchVectorizer { + @doc("Contains the parameters specific to Azure OpenAI embedding vectorization.") + azureOpenAIParameters?: AzureOpenAIVectorizerParameters; + + @doc("The name of the kind of vectorization method being configured for use with vector search.") + kind: "azureOpenAI"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Specifies the parameters for connecting to the Azure OpenAI resource.") +model AzureOpenAIVectorizerParameters { + @doc("The resource URI of the Azure OpenAI resource.") + resourceUri?: url; + + @doc("ID of the Azure OpenAI model deployment on the designated resource.") + deploymentId?: string; + + @doc("API key of the designated Azure OpenAI resource.") + apiKey?: string; + + @doc("The user-assigned managed identity used for outbound connections.") + authIdentity?: SearchIndexerDataIdentity; + + @doc("The name of the embedding model that is deployed at the provided deploymentId path.") + modelName?: AzureOpenAIModelName; +} + +@doc("Abstract base type for data identities.") +@discriminator("@odata.type") +model SearchIndexerDataIdentity { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of identity.") + `@odata.type`: string; +} + +@doc("Specifies a user-defined vectorizer for generating the vector embedding of a query string. Integration of an external vectorizer is achieved using the custom Web API interface of a skillset.") +model WebApiVectorizer extends VectorSearchVectorizer { + @doc("Specifies the properties of the user-defined vectorizer.") + customWebApiParameters?: WebApiVectorizerParameters; + + @doc("The name of the kind of vectorization method being configured for use with vector search.") + kind: "customWebApi"; +} + +@doc("Specifies the properties for connecting to a user-defined vectorizer.") +model WebApiVectorizerParameters { + @doc("The URI of the Web API providing the vectorizer.") + uri?: url; + + @doc("The headers required to make the HTTP request.") + httpHeaders?: Record; + + @doc("The method for the HTTP request.") + httpMethod?: string; + + @doc("The desired timeout for the request. Default is 30 seconds.") + timeout?: duration; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Applies to custom endpoints that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the vectorization connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.") + authResourceId?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + authIdentity?: SearchIndexerDataIdentity | null; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Clears the identity property of a datasource.") +model AIServicesVisionVectorizer extends VectorSearchVectorizer { + @doc("Contains the parameters specific to AI Services Vision embedding vectorization.") + aiServicesVisionParameters?: AIServicesVisionParameters; + + @doc("The name of the kind of vectorization method being configured for use with vector search.") + kind: "aiServicesVision"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Specifies the AI Services Vision parameters for vectorizing a query image or text.") +model AIServicesVisionParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the AI Services Vision service. It will default to the latest available when not specified.") + modelVersion: string | null; + + @doc("The resource URI of the AI Services resource.") + resourceUri: url; + + @doc("API key of the designated AI Services resource.") + apiKey?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the index, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + authIdentity?: SearchIndexerDataIdentity | null; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Specifies an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog for generating the vector embedding of a query string.") +model AMLVectorizer extends VectorSearchVectorizer { + @doc("Specifies the properties of the AML vectorizer.") + amlParameters?: AMLParameters; + + @doc("The name of the kind of vectorization method being configured for use with vector search.") + kind: "aml"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Specifies the properties for connecting to an AML vectorizer.") +model AMLParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Required for no authentication or key authentication) The scoring URI of the AML service to which the JSON payload will be sent. Only the https URI scheme is allowed.") + uri: url | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Required for key authentication) The key for the AML service.") + key?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Required for token authentication). The Azure Resource Manager resource ID of the AML service. It should be in the format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/services/{service_name}.") + resourceId?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Optional) When specified, indicates the timeout for the http client making the API call.") + timeout?: duration | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Optional for token authentication). The region the AML service is deployed in.") + region?: string | null; + + @doc("The name of the embedding model from the Azure AI Foundry Catalog that is deployed at the provided endpoint.") + modelName?: AIFoundryModelCatalogName; +} + +@doc("Clears the identity property of a datasource.") +model SearchIndexerDataNoneIdentity extends SearchIndexerDataIdentity { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("The discriminator for derived types.") + `@odata.type`: "#Microsoft.Azure.Search.DataNoneIdentity"; +} + +@doc("Specifies the identity for a datasource to use.") +model SearchIndexerDataUserAssignedIdentity extends SearchIndexerDataIdentity { + @doc("The fully qualified Azure resource Id of a user assigned managed identity typically in the form \"/subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId\" that should have been assigned to the search service.") + userAssignedIdentity: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of identity.") + `@odata.type`: "#Microsoft.Azure.Search.DataUserAssignedIdentity"; +} + +@doc("Defines a data change detection policy that captures changes based on the value of a high water mark column.") +model HighWaterMarkChangeDetectionPolicy extends DataChangeDetectionPolicy { + @doc("The name of the high water mark column.") + highWaterMarkColumnName: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of data change detection policy.") + `@odata.type`: "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy"; +} + +@doc("Defines a data change detection policy that captures changes using the Integrated Change Tracking feature of Azure SQL Database.") +model SqlIntegratedChangeTrackingPolicy extends DataChangeDetectionPolicy { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of data change detection policy.") + `@odata.type`: "#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy"; +} + +@doc("Defines a data deletion detection policy that implements a soft-deletion strategy. It determines whether an item should be deleted based on the value of a designated 'soft delete' column.") +model SoftDeleteColumnDeletionDetectionPolicy + extends DataDeletionDetectionPolicy { + @doc("The name of the column to use for soft-deletion detection.") + softDeleteColumnName?: string; + + @doc("The marker value that identifies an item as deleted.") + softDeleteMarkerValue?: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of data deletion detection policy.") + `@odata.type`: "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy"; +} + +@doc("Defines a data deletion detection policy utilizing Azure Blob Storage's native soft delete feature for deletion detection.") +model NativeBlobSoftDeleteDeletionDetectionPolicy + extends DataDeletionDetectionPolicy { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of data deletion detection policy.") + `@odata.type`: "#Microsoft.Azure.Search.NativeBlobSoftDeleteDeletionDetectionPolicy"; +} + +@doc("Defines a function that boosts scores based on distance from a geographic location.") +model DistanceScoringFunction extends ScoringFunction { + @doc("Parameter values for the distance scoring function.") + distance: DistanceScoringParameters; + + @doc("Indicates the type of function to use. Valid values include magnitude, freshness, distance, and tag. The function type must be lower case.") + type: "distance"; +} + +@doc("Provides parameter values to a distance scoring function.") +model DistanceScoringParameters { + @doc("The name of the parameter passed in search queries to specify the reference location.") + referencePointParameter: string; + + @doc("The distance in kilometers from the reference location where the boosting range ends.") + boostingDistance: float64; +} + +@doc("Defines a function that boosts scores based on the value of a date-time field.") +model FreshnessScoringFunction extends ScoringFunction { + @doc("Parameter values for the freshness scoring function.") + freshness: FreshnessScoringParameters; + + @doc("Indicates the type of function to use. Valid values include magnitude, freshness, distance, and tag. The function type must be lower case.") + type: "freshness"; +} + +@doc("Provides parameter values to a freshness scoring function.") +model FreshnessScoringParameters { + @doc("The expiration period after which boosting will stop for a particular document.") + boostingDuration: duration; +} + +@doc("Defines a function that boosts scores based on the magnitude of a numeric field.") +model MagnitudeScoringFunction extends ScoringFunction { + @doc("Parameter values for the magnitude scoring function.") + magnitude: MagnitudeScoringParameters; + + @doc("Indicates the type of function to use. Valid values include magnitude, freshness, distance, and tag. The function type must be lower case.") + type: "magnitude"; +} + +@doc("Provides parameter values to a magnitude scoring function.") +model MagnitudeScoringParameters { + @doc("The field value at which boosting starts.") + boostingRangeStart: float64; + + @doc("The field value at which boosting ends.") + boostingRangeEnd: float64; + + @doc("A value indicating whether to apply a constant boost for field values beyond the range end value; default is false.") + constantBoostBeyondRange?: boolean; +} + +@doc("Defines a function that boosts scores of documents with string values matching a given list of tags.") +model TagScoringFunction extends ScoringFunction { + @doc("Parameter values for the tag scoring function.") + tag: TagScoringParameters; + + @doc("Indicates the type of function to use. Valid values include magnitude, freshness, distance, and tag. The function type must be lower case.") + type: "tag"; +} + +@doc("Provides parameter values to a tag scoring function.") +model TagScoringParameters { + @doc("The name of the parameter passed in search queries to specify the list of tags to compare against the target field.") + tagsParameter: string; +} + +#suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" +@doc("A dictionary of knowledge store-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.") +model SearchIndexerKnowledgeStoreParameters { + ...Record; + + @doc("Whether or not projections should synthesize a generated key name if one isn't already present.") + synthesizeGeneratedKeyName?: boolean = false; +} + +@doc("An empty object that represents the default Azure AI service resource for a skillset.") +model DefaultCognitiveServicesAccount extends CognitiveServicesAccount { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of Azure AI service resource attached to a skillset.") + `@odata.type`: "#Microsoft.Azure.Search.DefaultCognitiveServices"; +} + +@doc("The multi-region account key of an Azure AI service resource that's attached to a skillset.") +model CognitiveServicesAccountKey extends CognitiveServicesAccount { + @doc("The key used to provision the Azure AI service resource attached to a skillset.") + key: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of Azure AI service resource attached to a skillset.") + `@odata.type`: "#Microsoft.Azure.Search.CognitiveServicesByKey"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("The account key of an Azure AI service resource that's attached to a skillset, to be used with the resource's subdomain.") +model AIServicesAccountKey extends CognitiveServicesAccount { + @doc("The key used to provision the Azure AI service resource attached to a skillset.") + key: string; + + @doc("The subdomain url for the corresponding AI Service.") + subdomainUrl: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of Azure AI service resource attached to a skillset.") + `@odata.type`: "#Microsoft.Azure.Search.AIServicesByKey"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("The multi-region account of an Azure AI service resource that's attached to a skillset.") +model AIServicesAccountIdentity extends CognitiveServicesAccount { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for connections to AI Service. If not specified, the system-assigned managed identity is used. On updates to the skillset, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + identity?: SearchIndexerDataIdentity | null; + + @doc("The subdomain url for the corresponding AI Service.") + subdomainUrl: string; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of Azure AI service resource attached to a skillset.") + `@odata.type`: "#Microsoft.Azure.Search.AIServicesByIdentity"; +} + +@doc("An object that contains information about the matches that were found, and related metadata.") +model CustomEntity { + @doc("The top-level entity descriptor. Matches in the skill output will be grouped by this name, and it should represent the \"normalized\" form of the text being found.") + name: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.") + description?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.") + type?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.") + subtype?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.") + id?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Defaults to false. Boolean value denoting whether comparisons with the entity name should be sensitive to character casing. Sample case insensitive matches of \"Microsoft\" could be: microsoft, microSoft, MICROSOFT.") + caseSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Defaults to false. Boolean value denoting whether comparisons with the entity name should be sensitive to accent.") + accentSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Defaults to 0. Maximum value of 5. Denotes the acceptable number of divergent characters that would still constitute a match with the entity name. The smallest possible fuzziness for any given match is returned. For instance, if the edit distance is set to 3, \"Windows10\" would still match \"Windows\", \"Windows10\" and \"Windows 7\". When case sensitivity is set to false, case differences do NOT count towards fuzziness tolerance, but otherwise do.") + fuzzyEditDistance?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Changes the default case sensitivity value for this entity. It be used to change the default value of all aliases caseSensitive values.") + defaultCaseSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Changes the default accent sensitivity value for this entity. It be used to change the default value of all aliases accentSensitive values.") + defaultAccentSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Changes the default fuzzy edit distance value for this entity. It can be used to change the default value of all aliases fuzzyEditDistance values.") + defaultFuzzyEditDistance?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("An array of complex objects that can be used to specify alternative spellings or synonyms to the root entity name.") + aliases?: CustomEntityAlias[] | null; +} + +@doc("A complex object that can be used to specify alternative spellings or synonyms to the root entity name.") +model CustomEntityAlias { + @doc("The text of the alias.") + text: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Determine if the alias is case sensitive.") + caseSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Determine if the alias is accent sensitive.") + accentSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Determine the fuzzy edit distance of the alias.") + fuzzyEditDistance?: int32 | null; +} + +@doc("A skill that enables scenarios that require a Boolean operation to determine the data to assign to an output.") +model ConditionalSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Util.ConditionalSkill"; +} + +@doc("A skill that uses text analytics for key phrase extraction.") +model KeyPhraseExtractionSkill extends SearchIndexerSkill { + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: KeyPhraseExtractionSkillLanguage; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A number indicating how many key phrases to return. If absent, all identified key phrases will be returned.") + maxKeyPhraseCount?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.") + modelVersion?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.KeyPhraseExtractionSkill"; +} + +@doc("A skill that extracts text from image files.") +model OcrSkill extends SearchIndexerSkill { + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: OcrSkillLanguage; + + @doc("A value indicating to turn orientation detection on or not. Default is false.") + detectOrientation?: boolean = false; + + @doc("Defines the sequence of characters to use between the lines of text recognized by the OCR skill. The default value is \"space\".") + lineEnding?: OcrLineEnding; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Vision.OcrSkill"; +} + +@doc("A skill that analyzes image files. It extracts a rich set of visual features based on the image content.") +model ImageAnalysisSkill extends SearchIndexerSkill { + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: ImageAnalysisSkillLanguage; + + @doc("A list of visual features.") + visualFeatures?: VisualFeature[]; + + @doc("A string indicating which domain-specific details to return.") + details?: ImageDetail[]; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Vision.ImageAnalysisSkill"; +} + +@doc("A skill that detects the language of input text and reports a single language code for every document submitted on the request. The language code is paired with a score indicating the confidence of the analysis.") +model LanguageDetectionSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A country code to use as a hint to the language detection model if it cannot disambiguate the language.") + defaultCountryHint?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.") + modelVersion?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.LanguageDetectionSkill"; +} + +@doc("A skill for reshaping the outputs. It creates a complex type to support composite fields (also known as multipart fields).") +model ShaperSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Util.ShaperSkill"; +} + +@doc("A skill for merging two or more strings into a single unified string, with an optional user-defined delimiter separating each component part.") +model MergeSkill extends SearchIndexerSkill { + @doc("The tag indicates the start of the merged text. By default, the tag is an empty space.") + insertPreTag?: string = " "; + + @doc("The tag indicates the end of the merged text. By default, the tag is an empty space.") + insertPostTag?: string = " "; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.MergeSkill"; +} + +@doc("This skill is deprecated. Use the V3.EntityRecognitionSkill instead.") +model EntityRecognitionSkill extends SearchIndexerSkill { + @doc("A list of entity categories that should be extracted.") + categories?: EntityCategory[]; + + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: EntityRecognitionSkillLanguage; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Determines whether or not to include entities which are well known but don't conform to a pre-defined type. If this configuration is not set (default), set to null or set to false, entities which don't conform to one of the pre-defined types will not be surfaced.") + includeTypelessEntities?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.") + minimumPrecision?: float64 | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.EntityRecognitionSkill"; +} + +@doc("This skill is deprecated. Use the V3.SentimentSkill instead.") +model SentimentSkill extends SearchIndexerSkill { + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: SentimentSkillLanguage; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.SentimentSkill"; +} + +@doc("Using the Text Analytics API, evaluates unstructured text and for each record, provides sentiment labels (such as \"negative\", \"neutral\" and \"positive\") based on the highest confidence score found by the service at a sentence and document-level.") +model SentimentSkillV3 extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: string | null; + + @doc("If set to true, the skill output will include information from Text Analytics for opinion mining, namely targets (nouns or verbs) and their associated assessment (adjective) in the text. Default is false.") + includeOpinionMining?: boolean = false; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.") + modelVersion?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.V3.SentimentSkill"; +} + +@doc("Using the Text Analytics API, extracts linked entities from text.") +model EntityLinkingSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: string | null; + + @doc("A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.") + @minValue(0) + @maxValue(1) + minimumPrecision?: float64; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.") + modelVersion?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.V3.EntityLinkingSkill"; +} + +@doc("Using the Text Analytics API, extracts entities of different types from text.") +model EntityRecognitionSkillV3 extends SearchIndexerSkill { + @doc("A list of entity categories that should be extracted.") + categories?: string[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: string | null; + + @doc("A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.") + @minValue(0) + @maxValue(1) + minimumPrecision?: float64; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the Text Analytics API. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.") + modelVersion?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.V3.EntityRecognitionSkill"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Using the Text Analytics API, extracts personal information from an input text and gives you the option of masking it.") +model PIIDetectionSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: string | null; + + @doc("A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.") + @minValue(0) + @maxValue(1) + minimumPrecision?: float64; + + @doc("A parameter that provides various ways to mask the personal information detected in the input text. Default is 'none'.") + maskingMode?: PIIDetectionSkillMaskingMode; + + @doc("The character used to mask the text if the maskingMode parameter is set to replace. Default is '*'.") + @maxLength(1) + maskingCharacter?: string; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.") + modelVersion?: string | null; + + @doc("A list of PII entity categories that should be extracted and masked.") + piiCategories?: string[]; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("If specified, will set the PII domain to include only a subset of the entity categories. Possible values include: 'phi', 'none'. Default is 'none'.") + domain?: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.PIIDetectionSkill"; +} + +@doc("A skill to split a string into chunks of text.") +model SplitSkill extends SearchIndexerSkill { + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: SplitSkillLanguage; + + @doc("A value indicating which split mode to perform.") + textSplitMode?: TextSplitMode; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The desired maximum page length. Default is 10000.") + maximumPageLength?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Only applicable when textSplitMode is set to 'pages'. If specified, n+1th chunk will start with this number of characters/tokens from the end of the nth chunk.") + pageOverlapLength?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Only applicable when textSplitMode is set to 'pages'. If specified, the SplitSkill will discontinue splitting after processing the first 'maximumPagesToTake' pages, in order to improve performance when only a few initial pages are needed from each document.") + maximumPagesToTake?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Only applies if textSplitMode is set to pages. There are two possible values. The choice of the values will decide the length (maximumPageLength and pageOverlapLength) measurement. The default is 'characters', which means the length will be measured by character.") + unit?: SplitSkillUnit | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("Only applies if the unit is set to azureOpenAITokens. If specified, the splitSkill will use these parameters when performing the tokenization. The parameters are a valid 'encoderModelName' and an optional 'allowedSpecialTokens' property.") + azureOpenAITokenizerParameters?: AzureOpenAITokenizerParameters | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.SplitSkill"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Azure OpenAI Tokenizer parameters.") +model AzureOpenAITokenizerParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Only applies if the unit is set to azureOpenAITokens. Options include 'R50k_base', 'P50k_base', 'P50k_edit' and 'CL100k_base'. The default value is 'CL100k_base'.") + encoderModelName?: SplitSkillEncoderModelName | null; + + @doc("(Optional) Only applies if the unit is set to azureOpenAITokens. This parameter defines a collection of special tokens that are permitted within the tokenization process.") + allowedSpecialTokens?: string[]; +} + +@doc("A skill looks for text from a custom, user-defined list of words and phrases.") +model CustomEntityLookupSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A value indicating which language code to use. Default is `en`.") + defaultLanguageCode?: CustomEntityLookupSkillLanguage | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Path to a JSON or CSV file containing all the target text to match against. This entity definition is read at the beginning of an indexer run. Any updates to this file during an indexer run will not take effect until subsequent runs. This config must be accessible over HTTPS.") + entitiesDefinitionUri?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The inline CustomEntity definition.") + inlineEntitiesDefinition?: CustomEntity[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A global flag for CaseSensitive. If CaseSensitive is not set in CustomEntity, this value will be the default value.") + globalDefaultCaseSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A global flag for AccentSensitive. If AccentSensitive is not set in CustomEntity, this value will be the default value.") + globalDefaultAccentSensitive?: boolean | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A global flag for FuzzyEditDistance. If FuzzyEditDistance is not set in CustomEntity, this value will be the default value.") + globalDefaultFuzzyEditDistance?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.CustomEntityLookupSkill"; +} + +@doc("A skill to translate text from one language to another.") +model TextTranslationSkill extends SearchIndexerSkill { + @doc("The language code to translate documents into for documents that don't specify the to language explicitly.") + defaultToLanguageCode: TextTranslationSkillLanguage; + + @doc("The language code to translate documents from for documents that don't specify the from language explicitly.") + defaultFromLanguageCode?: TextTranslationSkillLanguage; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The language code to translate documents from when neither the fromLanguageCode input nor the defaultFromLanguageCode parameter are provided, and the automatic language detection is unsuccessful. Default is `en`.") + suggestedFrom?: TextTranslationSkillLanguage | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.TranslationSkill"; +} + +@doc("A skill that extracts content from a file within the enrichment pipeline.") +model DocumentExtractionSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The parsingMode for the skill. Will be set to 'default' if not defined.") + parsingMode?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The type of data to be extracted for the skill. Will be set to 'contentAndMetadata' if not defined.") + dataToExtract?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("A dictionary of configurations for the skill.") + configuration?: Record | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Util.DocumentExtractionSkill"; +} + +@doc("A skill that extracts content and layout information, via Azure AI Services, from files within the enrichment pipeline.") +model DocumentIntelligenceLayoutSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the output format. Default is 'markdown'.") + outputFormat?: DocumentIntelligenceLayoutSkillOutputFormat | null = DocumentIntelligenceLayoutSkillOutputFormat.Markdown; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the cardinality of the output produced by the skill. Default is 'oneToMany'.") + outputMode?: DocumentIntelligenceLayoutSkillOutputMode | null = DocumentIntelligenceLayoutSkillOutputMode.OneToMany; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The depth of headers in the markdown output. Default is h6.") + markdownHeaderDepth?: DocumentIntelligenceLayoutSkillMarkdownHeaderDepth | null = DocumentIntelligenceLayoutSkillMarkdownHeaderDepth.H6; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the cardinality of the content extracted from the document by the skill.") + extractionOptions?: DocumentIntelligenceLayoutSkillExtractionOptions[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the cardinality for chunking the content.") + chunkingProperties?: DocumentIntelligenceLayoutSkillChunkingProperties | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill"; +} + +@doc("A skill that can call a Web API endpoint, allowing you to extend a skillset by having it call your custom code.") +model WebApiSkill extends SearchIndexerSkill { + @doc("The url for the Web API.") + uri: string; + + @doc("The headers required to make the http request.") + httpHeaders?: WebApiHttpHeaders; + + @doc("The method for the http request.") + httpMethod?: string; + + @doc("The desired timeout for the request. Default is 30 seconds.") + timeout?: duration; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The desired batch size which indicates number of documents.") + batchSize?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("If set, the number of parallel calls that can be made to the Web API.") + degreeOfParallelism?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Applies to custom skills that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the custom skill connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.") + authResourceId?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + authIdentity?: SearchIndexerDataIdentity | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Custom.WebApiSkill"; +} + +@doc("The AML skill allows you to extend AI enrichment with a custom Azure Machine Learning (AML) model. Once an AML model is trained and deployed, an AML skill integrates it into AI enrichment.") +model AzureMachineLearningSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Required for no authentication or key authentication) The scoring URI of the AML service to which the JSON payload will be sent. Only the https URI scheme is allowed.") + uri?: url | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Required for key authentication) The key for the AML service.") + key?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Required for token authentication). The Azure Resource Manager resource ID of the AML service. It should be in the format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/services/{service_name}.") + resourceId?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Optional) When specified, indicates the timeout for the http client making the API call.") + timeout?: duration | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Optional for token authentication). The region the AML service is deployed in.") + region?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("(Optional) When specified, indicates the number of calls the indexer will make in parallel to the endpoint you have provided. You can decrease this value if your endpoint is failing under too high of a request load, or raise it if your endpoint is able to accept more requests and you would like an increase in the performance of the indexer. If not set, a default value of 5 is used. The degreeOfParallelism can be set to a maximum of 10 and a minimum of 1.") + degreeOfParallelism?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Custom.AmlSkill"; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." +@doc("Allows you to generate a vector embedding for a given text input using the Azure OpenAI resource.") +model AzureOpenAIEmbeddingSkill extends SearchIndexerSkill { + ...AzureOpenAIVectorizerParameters; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The number of dimensions the resulting output embeddings should have. Only supported in text-embedding-3 and later models.") + dimensions?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill"; +} + +@doc("Allows you to generate a vector embedding for a given image or text input using the Azure AI Services Vision Vectorize API.") +model VisionVectorizeSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The version of the model to use when calling the AI Services Vision service. It will default to the latest available when not specified.") + modelVersion: string | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Vision.VectorizeSkill"; +} + +@doc("A skill that leverages Azure AI Content Understanding to process and extract structured insights from documents, enabling enriched, searchable content for enhanced document indexing and retrieval.") +model ContentUnderstandingSkill extends SearchIndexerSkill { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the cardinality of the content extracted from the document by the skill.") + extractionOptions?: ContentUnderstandingSkillExtractionOptions[] | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Controls the cardinality for chunking the content.") + chunkingProperties?: ContentUnderstandingSkillChunkingProperties | null; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Util.ContentUnderstandingSkill"; +} + +@doc("Controls the cardinality of the content extracted from the document by the skill.") +union ContentUnderstandingSkillExtractionOptions { + string, + + @doc("Specify that image content should be extracted from the document.") + Images: "images", + + @doc("Specify that location metadata should be extracted from the document.") + LocationMetadata: "locationMetadata", +} + +@doc("Controls the cardinality for chunking the content.") +model ContentUnderstandingSkillChunkingProperties { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The unit of the chunk.") + unit?: ContentUnderstandingSkillChunkingUnit | null = ContentUnderstandingSkillChunkingUnit.Characters; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum chunk length in characters. Default is 500.") + maximumLength?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The length of overlap provided between two text chunks. Default is 0.") + overlapLength?: int32 | null; +} + +@doc("Controls the cardinality of the chunk unit. Default is 'characters'") +union ContentUnderstandingSkillChunkingUnit { + string, + + @doc("Specifies chunk by characters.") + Characters: "characters", +} + +@doc("Object defining the custom schema the model will use to structure its output.") +model ChatCompletionSchema { + @doc("Type of schema representation. Usually 'object'. Default is 'object'.") + type?: string = "object"; + + @doc("A JSON-formatted string that defines the output schema's properties and constraints for the model.") + properties?: string; + + @doc("An array of the property names that are required to be part of the model's response. All properties must be included for structured outputs.") + required?: string[]; + + @doc("Controls whether it is allowable for an object to contain additional keys / values that were not defined in the JSON Schema. Default is false.") + additionalProperties?: boolean = false; +} + +@doc("Determines how the language model's response should be serialized. Defaults to 'text'.") +model ChatCompletionResponseFormat { + @doc("Specifies how the LLM should format the response.") + type?: ChatCompletionResponseFormatType = ChatCompletionResponseFormatType.Text; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("An open dictionary for extended properties. Required if 'type' == 'json_schema'") + jsonSchemaProperties?: ChatCompletionSchemaProperties | null; +} + +@doc("Properties for JSON schema response format.") +model ChatCompletionSchemaProperties { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Name of the json schema the model will adhere to.") + name?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Description of the json schema the model will adhere to.") + description?: string | null; + + @doc("Whether or not the model's response should use structured outputs. Default is true.") + strict?: boolean = true; + + @doc("The schema definition.") + schema?: ChatCompletionSchema; +} + +@doc("Common language model parameters for Chat Completions. If omitted, default values are used.") +model ChatCompletionCommonModelParameters { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The name of the model to use (e.g., 'gpt-4o', etc.). Default is null if not specified.") + @encodedName("application/json", "model") + modelName?: string | null = null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A float in the range [-2,2] that reduces or increases likelihood of repeated tokens. Default is 0.") + frequencyPenalty?: float64 | null = 0; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("A float in the range [-2,2] that penalizes new tokens based on their existing presence. Default is 0.") + presencePenalty?: float64 | null = 0; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Maximum number of tokens to generate.") + maxTokens?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Sampling temperature. Default is 0.7.") + temperature?: float64 | null = 0.7; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Random seed for controlling deterministic outputs. If omitted, randomization is used.") + seed?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("List of stop sequences that will cut off text generation. Default is none.") + stop?: string[] | null; +} + +@doc("A skill that calls a language model via Azure AI Foundry's Chat Completions endpoint.") +model ChatCompletionSkill extends SearchIndexerSkill { + @doc("The url for the Web API.") + uri: string; + + @doc("The headers required to make the http request.") + httpHeaders?: WebApiHttpHeaders; + + @doc("The method for the http request.") + httpMethod?: string; + + @doc("The desired timeout for the request. Default is 30 seconds.") + timeout?: duration; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The desired batch size which indicates number of documents.") + batchSize?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("If set, the number of parallel calls that can be made to the Web API.") + degreeOfParallelism?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("Applies to custom skills that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the custom skill connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.") + authResourceId?: string | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.") + authIdentity?: SearchIndexerDataIdentity | null; + + @doc("API key for authenticating to the model. Both apiKey and authIdentity cannot be specified at the same time.") + apiKey?: string; + + @doc("Common language model parameters that customers can tweak. If omitted, reasonable defaults will be applied.") + commonModelParameters?: ChatCompletionCommonModelParameters; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("Open-type dictionary for model-specific parameters that should be appended to the chat completions call. Follows Azure AI Foundry's extensibility pattern.") + extraParameters?: Record | null; + + @doc("How extra parameters are handled by Azure AI Foundry. Default is 'error'.") + extraParametersBehavior?: ChatCompletionExtraParametersBehavior = ChatCompletionExtraParametersBehavior.Error; + + @doc("Determines how the LLM should format its response. Defaults to 'text' response type.") + responseFormat?: ChatCompletionResponseFormat; + + #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." + @doc("A URI fragment specifying the type of skill.") + `@odata.type`: "#Microsoft.Skills.Custom.ChatCompletionSkill"; +} + +@doc("Statistics for a given index. Statistics are collected periodically and are not guaranteed to always be up-to-date.") +model IndexStatisticsSummary { + @doc("The name of the index.") + name: string; + + @doc("The number of documents in the index.") + @visibility(Lifecycle.Read) + documentCount: int64; + + @doc("The amount of storage in bytes consumed by the index.") + @visibility(Lifecycle.Read) + storageSize: int64; + + @doc("The amount of memory in bytes consumed by vectors in the index.") + @visibility(Lifecycle.Read) + vectorIndexSize: int64; +} + +@doc("Response from a request to retrieve stats summary of all indexes. If successful, it includes the stats of each index in the service.") +model ListIndexStatsSummary { + @doc("The Statistics summary of all indexes in the Search service.") + @pageItems + @visibility(Lifecycle.Read) + value: IndexStatisticsSummary[]; +} + +@doc("Controls the cardinality for chunking the content.") +model DocumentIntelligenceLayoutSkillChunkingProperties { + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The unit of the chunk.") + unit?: DocumentIntelligenceLayoutSkillChunkingUnit | null = DocumentIntelligenceLayoutSkillChunkingUnit.Characters; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The maximum chunk length in characters. Default is 500.") + maximumLength?: int32 | null; + + #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" + @doc("The length of overlap provided between two text chunks. Default is 0.") + overlapLength?: int32 | null; +} + +@doc("A dictionary of http request headers.") +model WebApiHttpHeaders { + ...Record; +} diff --git a/specification/search/data-plane/Search/models-shared.tsp b/specification/search/data-plane/Search/models-shared.tsp new file mode 100644 index 000000000000..fc056b6763dc --- /dev/null +++ b/specification/search/data-plane/Search/models-shared.tsp @@ -0,0 +1,259 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-client-generator-core"; + +using TypeSpec.Http; +using Azure.Core; +using Azure.ClientGenerator.Core; + +namespace Search; + +alias matchingHeader = { + @doc("Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.") + @header("If-Match") + ifMatch?: string; + + @doc("Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.") + @header("If-None-Match") + ifNoneMatch?: string; +}; + +alias preferHeader = { + @doc("For HTTP PUT requests, instructs the service to return the created/updated resource on success.") + @header("Prefer") + prefer: "return=representation"; +}; + +alias selectQuery = { + #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" + @doc("Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.") + @query + @encode(ArrayEncoding.commaDelimited) + $select?: string; +}; + +alias indexNamePath = { + @doc("The name of the index.") + @clientName("name") + @path + indexName: string; +}; + +alias indexerNamePath = { + @doc("The name of the indexer.") + @clientName("name") + @path + indexerName: string; +}; + +alias dataSourceNamePath = { + @doc("The name of the datasource.") + @clientName("name") + @path + dataSourceName: string; +}; + +alias skillsetNamePath = { + @doc("The name of the skillset.") + @clientName("name") + @path + skillsetName: string; +}; + +alias synonymMapNamePath = { + @doc("The name of the synonym map.") + @clientName("name") + @path + synonymMapName: string; +}; + +alias aliasNamePath = { + @doc("The name of the alias.") + @clientName("name") + @path + aliasName: string; +}; + +alias sourceNamePath = { + @doc("The name of the knowledge source.") + @clientName("name") + @path + sourceName: string; +}; + +alias knowledgeBaseNamePath = { + @doc("The name of the knowledge base.") + @clientName("name") + @path + knowledgeBaseName: string; +}; + +alias querySourceAuthorizationHeader = { + @doc("Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.") + @header("x-ms-query-source-authorization") + querySourceAuthorization?: string; +}; + +alias enableElevatedReadHeader = { + @doc("A value that enables elevated read that bypass document level permission checks for the query operation.") + @header("x-ms-enable-elevated-read") + enableElevatedRead?: boolean; +}; + +@doc("Client initialization options for SearchIndexClient.") +model SearchIndexClientOptions { + @doc("The name of the index.") + @paramAlias("indexName") + indexName: string; +} + +alias SearchOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader, + TResponse, + Traits, + TError +>; + +alias SearchIndexOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & indexNamePath, + TResponse, + Traits, + TError +>; + +alias SearchIndexerOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & indexerNamePath, + TResponse, + Traits, + TError +>; + +alias SearchDataSourceOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & dataSourceNamePath, + TResponse, + Traits, + TError +>; + +alias SearchSkillsetOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & skillsetNamePath, + TResponse, + Traits, + TError +>; + +alias SearchSynonymMapOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & synonymMapNamePath, + TResponse, + Traits, + TError +>; + +alias SearchAliasOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & aliasNamePath, + TResponse, + Traits, + TError +>; + +alias SearchSourceOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & sourceNamePath, + TResponse, + Traits, + TError +>; + +alias SearchKnowledgeBaseOperation< + TParams extends Reflection.Model, + TResponse, + Traits extends Reflection.Model = {}, + TError extends Reflection.Model = ErrorResponse +> = Foundations.Operation< + TParams & ClientRequestIdHeader & knowledgeBaseNamePath, + TResponse, + Traits, + TError +>; + +@doc("Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.).") +@error +model ErrorResponse { + @doc("The error object.") + error?: ErrorDetail; +} + +@doc("The error detail.") +model ErrorDetail { + @doc("The error code.") + @visibility(Lifecycle.Read) + code?: string; + + @doc("The error message.") + @visibility(Lifecycle.Read) + message?: string; + + @doc("The error target.") + @visibility(Lifecycle.Read) + target?: string; + + @doc("The error details.") + @visibility(Lifecycle.Read) + details?: ErrorDetail[]; + + @doc("The error additional info.") + @visibility(Lifecycle.Read) + additionalInfo?: ErrorAdditionalInfo[]; +} + +@doc("The resource management error additional info.") +model ErrorAdditionalInfo { + @doc("The additional info type.") + @visibility(Lifecycle.Read) + type?: string; + + #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" + @doc("The additional info.") + @visibility(Lifecycle.Read) + info?: Record; +} diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsGet.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsGet.json index 9cc5ba4aabac..62755d8475ae 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsGet.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsGet.json @@ -1,4 +1,6 @@ { + "operationId": "Documents_AutocompleteGet", + "title": "SearchIndexAutocompleteDocumentsGet", "parameters": { "endpoint": "https://myservice.search.windows.net", "indexName": "myindex", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsPost.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsPost.json index 70a35efbb805..1f6d0da6fe1e 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsPost.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexAutocompleteDocumentsPost.json @@ -6,7 +6,7 @@ "indexName": "preview-test", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "autocompleteRequest": { + "body": { "search": "p", "autocompleteMode": "oneTerm", "filter": "ownerId ne '1'", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsGet.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsGet.json index 8b58dd48237b..7e702dd46109 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsGet.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsGet.json @@ -1,4 +1,6 @@ { + "operationId": "Documents_SearchGet", + "title": "SearchIndexSearchDocumentsGet", "parameters": { "endpoint": "https://myservice.search.windows.net", "indexName": "myindex", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsPost.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsPost.json index 0f7d05fbd8a1..6b63ff5e7598 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsPost.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsPost.json @@ -8,7 +8,7 @@ "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", "x-ms-query-source-authorization": "00000000-0000-0000-0000-000000000000", "x-ms-enable-elevated-read": true, - "searchRequest": { + "body": { "count": true, "facets": [ "ownerId", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticGet.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticGet.json index e59e97280993..b0ff6ad39cc8 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticGet.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticGet.json @@ -1,4 +1,6 @@ { + "operationId": "Documents_SearchGet", + "title": "SearchIndexSearchDocumentsSemanticGet", "parameters": { "endpoint": "https://myservice.search.windows.net", "indexName": "myindex", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticPost.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticPost.json index a987e39975e8..5e166522badc 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticPost.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSearchDocumentsSemanticPost.json @@ -1,9 +1,11 @@ { + "operationId": "Documents_SearchPost", + "title": "SearchIndexSearchDocumentsSemanticPost", "parameters": { "endpoint": "https://myservice.search.windows.net", "indexName": "myindex", "api-version": "2025-11-01-preview", - "searchRequest": { + "body": { "count": true, "highlightPostTag": "", "highlightPreTag": "", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsGet.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsGet.json index c517f3434093..e83526263df9 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsGet.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsGet.json @@ -1,4 +1,6 @@ { + "operationId": "Documents_SuggestGet", + "title": "SearchIndexSuggestDocumentsGet", "parameters": { "endpoint": "https://myservice.search.windows.net", "indexName": "myindex", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsPost.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsPost.json index badb59cdadd5..5f75e84ccb39 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsPost.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchIndexSuggestDocumentsPost.json @@ -6,7 +6,7 @@ "indexName": "preview-test", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "suggestRequest": { + "body": { "filter": "ownerId eq 'sam' and id lt '15'", "fuzzy": true, "highlightPostTag": "", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeBase.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeBase.json index 08ff93f829ea..81f4c90d356d 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeBase.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeBase.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "KnowledgeBase": { + "knowledgeBase": { "name": "base-preview-test", "knowledgeSources": [ { diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSource.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSource.json index 89c180046636..1c354bba5efa 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSource.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSource.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "KnowledgeSource": { + "knowledgeSource": { "searchIndexParameters": { "searchIndexName": "preview-test", "sourceDataFields": [ diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceAzureBlob.json index 4c9f89a1267d..107a63564eb5 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceAzureBlob.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceAzureBlob.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "KnowledgeSource": { + "knowledgeSource": { "azureBlobParameters": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", "containerName": "test-container", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedOneLake.json index b8f7dc682df1..d424949afe6f 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedOneLake.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedOneLake.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "KnowledgeSource": { + "knowledgeSource": { "indexedOneLakeParameters": { "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", "lakehouseId": "fakeLakehouseId", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json index d48f38a196f2..ebeeddffdd0e 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "KnowledgeSource": { + "knowledgeSource": { "indexedSharePointParameters": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", "containerName": "defaultSiteLibrary", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceWeb.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceWeb.json index fa52760088ee..4624d23074db 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceWeb.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceWeb.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "KnowledgeSource": { + "knowledgeSource": { "webParameters": { "domains": { "allowedDomains": [ diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeBase.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeBase.json index 4a44b1e02623..81c562aaf2a9 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeBase.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeBase.json @@ -9,7 +9,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "KnowledgeBase": { + "knowledgeBase": { "name": "base-preview-test", "knowledgeSources": [ { diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSource.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSource.json index 81bbf07db57b..7e8e99f499b4 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSource.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSource.json @@ -9,7 +9,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "KnowledgeSource": { + "knowledgeSource": { "searchIndexParameters": { "searchIndexName": "preview-test", "sourceDataFields": [ diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json index fd53a8c5caf5..ba4ed6d5f5a8 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json @@ -9,7 +9,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "KnowledgeSource": { + "knowledgeSource": { "azureBlobParameters": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", "containerName": "test-container", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json index f2cb9014bd13..7d084b6bbd61 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json @@ -9,7 +9,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "KnowledgeSource": { + "knowledgeSource": { "indexedOneLakeParameters": { "fabricWorkspaceId": "ResourceId=fakeWorkspaceId", "lakehouseId": "fakeLakehouseId", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json index b54651b40c0a..917335c4c4a0 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json @@ -9,7 +9,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "KnowledgeSource": { + "knowledgeSource": { "indexedSharePointParameters": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=myAccountName;AccountKey=myAccountKey;EndpointSuffix=core.windows.net ", "containerName": "defaultSiteLibrary", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json index ac06edf25fa5..12563a3596b8 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json @@ -9,7 +9,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "KnowledgeSource": { + "knowledgeSource": { "webParameters": { "domains": { "allowedDomains": [ diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/knowledgebase.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/knowledgebase.json deleted file mode 100644 index 1403aa8cbf9a..000000000000 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/knowledgebase.json +++ /dev/null @@ -1,1139 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "KnowledgeBaseRetrievalClient", - "description": "Client that can be used to query an knowledge base.", - "version": "2025-11-01-preview", - "x-ms-code-generation-settings": { - "useDateTimeOffset": true, - "syncMethods": "None" - } - }, - "x-ms-parameterized-host": { - "hostTemplate": "{endpoint}/knowledgebases('{knowledgeBaseName}')", - "useSchemePrefix": false, - "parameters": [ - { - "$ref": "#/parameters/EndpointParameter" - }, - { - "$ref": "#/parameters/KnowledgeBaseNameParameter" - } - ] - }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/retrieve": { - "post": { - "tags": [ - "KnowledgeRetrieval" - ], - "operationId": "KnowledgeRetrieval_Retrieve", - "x-ms-examples": { - "KnowledgeBaseRetrieve": { - "$ref": "./examples/KnowledgeBaseRetrieve.json" - }, - "KnowledgeBaseRetrieveWithIntents": { - "$ref": "./examples/KnowledgeBaseRetrieveWithIntents.json" - } - }, - "description": "KnowledgeBase retrieves relevant data from backing stores.", - "parameters": [ - { - "name": "retrievalRequest", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/KnowledgeBaseRetrievalRequest" - }, - "description": "The retrieval request to process." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/QuerySourceAuthorizationParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "The retrieval response is successfully returned.", - "schema": { - "$ref": "#/definitions/KnowledgeBaseRetrievalResponse" - } - }, - "206": { - "description": "A partial retrieval response is returned.", - "schema": { - "$ref": "#/definitions/KnowledgeBaseRetrievalResponse" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - } - }, - "definitions": { - "KnowledgeBaseRetrievalRequest": { - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseMessage" - }, - "description": "A list of chat message style input." - }, - "intents": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeRetrievalIntent" - }, - "description": "A list of intended queries to execute without model query planning." - }, - "maxRuntimeInSeconds": { - "type": "integer", - "format": "int32", - "description": "The maximum runtime in seconds." - }, - "maxOutputSize": { - "type": "integer", - "format": "int32", - "description": "Limits the maximum size of the content in the output." - }, - "retrievalReasoningEffort": { - "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" - }, - "includeActivity": { - "type": "boolean", - "description": "Indicates retrieval results should include activity information." - }, - "outputMode": { - "$ref": "#/definitions/KnowledgeRetrievalOutputMode" - }, - "knowledgeSourceParams": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeSourceParams" - }, - "description": "A list of runtime parameters for the knowledge sources." - } - }, - "description": "The input contract for the retrieval request." - }, - "KnowledgeRetrievalReasoningEffort": { - "type": "object", - "discriminator": "kind", - "properties": { - "kind": { - "$ref": "#/definitions/KnowledgeRetrievalReasoningEffortKind", - "x-nullable": false, - "description": "The kind of reasoning effort." - } - }, - "required": [ - "kind" - ] - }, - "KnowledgeRetrievalMinimalReasoningEffort": { - "type": "object", - "x-ms-discriminator-value": "minimal", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" - } - ], - "description": "Run knowledge retrieval with minimal reasoning effort." - }, - "KnowledgeRetrievalLowReasoningEffort": { - "type": "object", - "x-ms-discriminator-value": "low", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" - } - ], - "description": "Run knowledge retrieval with low reasoning effort." - }, - "KnowledgeRetrievalMediumReasoningEffort": { - "type": "object", - "x-ms-discriminator-value": "medium", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" - } - ], - "description": "Run knowledge retrieval with medium reasoning effort." - }, - "KnowledgeRetrievalReasoningEffortKind": { - "type": "string", - "enum": [ - "minimal", - "low", - "medium" - ], - "x-ms-enum": { - "name": "KnowledgeRetrievalReasoningEffortKind", - "modelAsString": true, - "values": [ - { - "value": "minimal", - "name": "Minimal", - "description": "Does not perform any source selections, query planning, or iterative search." - }, - { - "value": "low", - "name": "Low", - "description": "Use low reasoning during retrieval." - }, - { - "value": "medium", - "name": "Medium", - "description": "Use a moderate amount of reasoning during retrieval." - } - ] - }, - "description": "The amount of effort to use during retrieval." - }, - "KnowledgeRetrievalOutputMode": { - "type": "string", - "enum": [ - "extractiveData", - "answerSynthesis" - ], - "x-ms-enum": { - "name": "KnowledgeRetrievalOutputMode", - "modelAsString": true, - "values": [ - { - "value": "extractiveData", - "name": "ExtractiveData", - "description": "Return data from the knowledge sources directly without generative alteration." - }, - { - "value": "answerSynthesis", - "name": "AnswerSynthesis", - "description": "Synthesize an answer for the response payload." - } - ] - }, - "description": "The output configuration for this retrieval." - }, - "KnowledgeBaseRetrievalResponse": { - "type": "object", - "properties": { - "response": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseMessage" - } - }, - "activity": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseActivityRecord" - }, - "description": "The activity records for tracking progress and billing implications." - }, - "references": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseReference" - }, - "description": "The references for the retrieval data used in the response." - } - }, - "description": "The output contract for the retrieval response." - }, - "KnowledgeSourceParams": { - "type": "object", - "discriminator": "kind", - "properties": { - "knowledgeSourceName": { - "type": "string", - "description": "The name of the index the params apply to." - }, - "includeReferences": { - "type": "boolean", - "description": "Indicates whether references should be included for data retrieved from this source." - }, - "includeReferenceSourceData": { - "type": "boolean", - "description": "Indicates whether references should include the structured data obtained during retrieval in their payload." - }, - "alwaysQuerySource": { - "type": "boolean", - "description": "Indicates that this knowledge source should bypass source selection and always be queried at retrieval time." - }, - "rerankerThreshold": { - "type": "number", - "format": "float", - "description": "The reranker threshold all retrieved documents must meet to be included in the response." - }, - "kind": { - "$ref": "searchservice.json#/definitions/KnowledgeSourceKind", - "x-nullable": false, - "description": "The type of the knowledge source." - } - }, - "required": [ - "knowledgeSourceName", - "kind" - ] - }, - "SearchIndexKnowledgeSourceParams": { - "type": "object", - "x-ms-discriminator-value": "searchIndex", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceParams" - } - ], - "properties": { - "filterAddOn": { - "type": "string", - "description": "A filter condition applied to the index (e.g., 'State eq VA')." - } - }, - "description": "Specifies runtime parameters for a search index knowledge source" - }, - "AzureBlobKnowledgeSourceParams": { - "type": "object", - "x-ms-discriminator-value": "azureBlob", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceParams" - } - ], - "description": "Specifies runtime parameters for a azure blob knowledge source" - }, - "IndexedSharePointKnowledgeSourceParams": { - "type": "object", - "x-ms-discriminator-value": "indexedSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceParams" - } - ], - "description": "Specifies runtime parameters for a indexed SharePoint knowledge source" - }, - "IndexedOneLakeKnowledgeSourceParams": { - "type": "object", - "x-ms-discriminator-value": "indexedOneLake", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceParams" - } - ], - "description": "Specifies runtime parameters for a indexed OneLake knowledge source" - }, - "WebKnowledgeSourceParams": { - "type": "object", - "x-ms-discriminator-value": "web", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceParams" - } - ], - "properties": { - "language": { - "type": "string", - "description": "The language of the web results." - }, - "market": { - "type": "string", - "description": "The market of the web results." - }, - "count": { - "type": "integer", - "format": "int32", - "description": "The number of web results to return." - }, - "freshness": { - "type": "string", - "description": "The freshness of web results." - } - }, - "description": "Specifies runtime parameters for a web knowledge source" - }, - "RemoteSharePointKnowledgeSourceParams": { - "type": "object", - "x-ms-discriminator-value": "remoteSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceParams" - } - ], - "properties": { - "filterExpressionAddOn": { - "type": "string", - "description": "A filter condition applied to the SharePoint data source. It must be specified in the Keyword Query Language syntax. It will be combined as a conjunction with the filter expression specified in the knowledge source definition." - } - }, - "description": "Specifies runtime parameters for a remote SharePoint knowledge source" - }, - "KnowledgeRetrievalIntent": { - "type": "object", - "discriminator": "type", - "properties": { - "type": { - "$ref": "#/definitions/KnowledgeRetrievalIntentType", - "description": "The type of the intent.", - "x-nullable": false - } - }, - "required": [ - "type" - ], - "description": "An intended query to execute without model query planning." - }, - "KnowledgeRetrievalIntentType": { - "type": "string", - "enum": [ - "semantic" - ], - "x-ms-enum": { - "name": "KnowledgeRetrievalIntentType", - "modelAsString": true, - "values": [ - { - "value": "semantic", - "name": "Semantic", - "description": "A natural language semantic query intent." - } - ] - }, - "description": "The kind of knowledge base configuration to use." - }, - "KnowledgeRetrievalSemanticIntent": { - "type": "object", - "x-ms-discriminator-value": "semantic", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeRetrievalIntent" - } - ], - "properties": { - "search": { - "type": "string", - "description": "The semantic query to execute" - } - }, - "required": [ - "search" - ] - }, - "KnowledgeBaseMessage": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the tool response." - }, - "content": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseMessageContent" - } - } - }, - "required": [ - "content" - ], - "description": "The natural language message style object." - }, - "KnowledgeBaseMessageContent": { - "type": "object", - "discriminator": "type", - "properties": { - "type": { - "$ref": "#/definitions/KnowledgeBaseMessageContentType", - "description": "The type of the message", - "x-nullable": false - } - }, - "required": [ - "type" - ], - "description": "Specifies the type of the message content." - }, - "KnowledgeBaseMessageContentType": { - "type": "string", - "enum": [ - "text", - "image" - ], - "x-ms-enum": { - "name": "KnowledgeBaseMessageContentType", - "modelAsString": true, - "values": [ - { - "value": "text", - "name": "Text", - "description": "Text message content kind." - }, - { - "value": "image", - "name": "Image", - "description": "Image message content kind." - } - ] - }, - "description": "The type of message content." - }, - "KnowledgeBaseMessageTextContent": { - "type": "object", - "x-ms-discriminator-value": "text", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseMessageContent" - } - ], - "properties": { - "text": { - "type": "string" - } - }, - "required": [ - "text" - ], - "description": "Text message type." - }, - "KnowledgeBaseMessageImageContent": { - "type": "object", - "x-ms-discriminator-value": "image", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseMessageContent" - } - ], - "properties": { - "image": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri", - "description": "The url of the image." - } - }, - "required": [ - "url" - ] - } - }, - "required": [ - "image" - ], - "description": "Text message type." - }, - "KnowledgeBaseActivityRecord": { - "type": "object", - "discriminator": "type", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The ID of the activity record." - }, - "type": { - "type": "string", - "description": "The type of the activity record." - }, - "elapsedMs": { - "type": "integer", - "format": "int32", - "description": "The elapsed time in milliseconds for the retrieval activity." - }, - "error": { - "$ref": "#/definitions/KnowledgeBaseErrorDetail", - "description": "The error detail explaining why the operation failed. This property is only included when the activity does not succeed." - } - }, - "required": [ - "id", - "type" - ], - "description": "Base type for activity records." - }, - "KnowledgeBaseRetrievalActivityRecord": { - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseActivityRecord" - } - ], - "properties": { - "knowledgeSourceName": { - "type": "string", - "description": "The knowledge source for the retrieval activity." - }, - "queryTime": { - "type": "string", - "format": "date-time", - "description": "The query time for this retrieval activity." - }, - "count": { - "type": "integer", - "format": "int32", - "description": "The count of documents retrieved that were sufficiently relevant to pass the reranker threshold." - } - }, - "description": "Represents a retrieval activity record." - }, - "KnowledgeBaseSearchIndexActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "searchIndex", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" - } - ], - "properties": { - "searchIndexArguments": { - "$ref": "#/definitions/KnowledgeBaseSearchIndexActivityArguments", - "description": "The search index arguments for the retrieval activity." - } - }, - "description": "Represents a search index retrieval activity record." - }, - "KnowledgeBaseSearchIndexActivityArguments": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search string used to query the search index." - }, - "filter": { - "type": "string", - "description": "The filter string." - }, - "sourceDataFields": { - "type": "array", - "items": { - "$ref": "searchservice.json#/definitions/SearchIndexFieldReference" - }, - "description": "What fields were selected for search." - }, - "searchFields": { - "type": "array", - "items": { - "$ref": "searchservice.json#/definitions/SearchIndexFieldReference" - }, - "description": "What fields were searched against." - }, - "semanticConfigurationName": { - "type": "string", - "description": "What semantic configuration was used from the search index." - } - }, - "description": "Represents the arguments the search index retrieval activity was run with." - }, - "KnowledgeBaseAzureBlobActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "azureBlob", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" - } - ], - "properties": { - "azureBlobArguments": { - "$ref": "#/definitions/KnowledgeBaseAzureBlobActivityArguments", - "description": "The azure blob arguments for the retrieval activity." - } - }, - "description": "Represents a azure blob retrieval activity record." - }, - "KnowledgeBaseAzureBlobActivityArguments": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search string used to query blob contents." - } - }, - "description": "Represents the arguments the azure blob retrieval activity was run with." - }, - "KnowledgeBaseIndexedSharePointActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "indexedSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" - } - ], - "properties": { - "indexedSharePointArguments": { - "$ref": "#/definitions/KnowledgeBaseIndexedSharePointActivityArguments", - "description": "The indexed SharePoint arguments for the retrieval activity." - } - }, - "description": "Represents a indexed SharePoint retrieval activity record." - }, - "KnowledgeBaseIndexedSharePointActivityArguments": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search string used to query indexed SharePoint contents." - } - }, - "description": "Represents the arguments the indexed SharePoint retrieval activity was run with." - }, - "KnowledgeBaseIndexedOneLakeActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "indexedOneLake", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" - } - ], - "properties": { - "indexedOneLakeArguments": { - "$ref": "#/definitions/KnowledgeBaseIndexedOneLakeActivityArguments", - "description": "The indexed OneLake arguments for the retrieval activity." - } - }, - "description": "Represents a indexed OneLake retrieval activity record." - }, - "KnowledgeBaseIndexedOneLakeActivityArguments": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search string used to query indexed OneLake contents." - } - }, - "description": "Represents the arguments the indexed OneLake retrieval activity was run with." - }, - "KnowledgeBaseWebActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "web", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" - } - ], - "properties": { - "webArguments": { - "$ref": "#/definitions/KnowledgeBaseWebActivityArguments", - "description": "The web arguments for the retrieval activity." - } - }, - "description": "Represents a web retrieval activity record." - }, - "KnowledgeBaseWebActivityArguments": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search string used to query the web." - }, - "language": { - "type": "string", - "description": "The language for the retrieval activity." - }, - "market": { - "type": "string", - "description": "The market for the retrieval activity." - }, - "count": { - "type": "integer", - "format": "int32", - "description": "The number of web results returned." - }, - "freshness": { - "type": "string", - "description": "The freshness for the retrieval activity." - } - }, - "description": "Represents the arguments the web retrieval activity was run with." - }, - "KnowledgeBaseRemoteSharePointActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "remoteSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" - } - ], - "properties": { - "remoteSharePointArguments": { - "$ref": "#/definitions/KnowledgeBaseRemoteSharePointActivityArguments", - "description": "The remote SharePoint arguments for the retrieval activity." - } - }, - "description": "Represents a remote SharePoint retrieval activity record." - }, - "KnowledgeBaseRemoteSharePointActivityArguments": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search string used to query the remote SharePoint knowledge source." - }, - "filterExpressionAddOn": { - "type": "string", - "description": "The filter expression add-on for the retrieval activity." - } - }, - "description": "Represents the arguments the remote SharePoint retrieval activity was run with." - }, - "KnowledgeBaseModelQueryPlanningActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "modelQueryPlanning", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseActivityRecord" - } - ], - "properties": { - "inputTokens": { - "type": "integer", - "format": "int32", - "description": "The number of input tokens for the LLM query planning activity." - }, - "outputTokens": { - "type": "integer", - "format": "int32", - "description": "The number of output tokens for the LLM query planning activity." - } - }, - "description": "Represents an LLM query planning activity record." - }, - "KnowledgeBaseModelAnswerSynthesisActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "modelAnswerSynthesis", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseActivityRecord" - } - ], - "properties": { - "inputTokens": { - "type": "integer", - "format": "int32", - "description": "The number of input tokens for the LLM answer synthesis activity." - }, - "outputTokens": { - "type": "integer", - "format": "int32", - "description": "The number of output tokens for the LLM answer synthesis activity." - } - }, - "description": "Represents an LLM answer synthesis activity record." - }, - "KnowledgeBaseAgenticReasoningActivityRecord": { - "type": "object", - "x-ms-discriminator-value": "agenticReasoning", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseActivityRecord" - } - ], - "properties": { - "reasoningTokens": { - "type": "integer", - "format": "int32", - "description": "The number of input tokens for agentic reasoning." - }, - "retrievalReasoningEffort": { - "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" - } - }, - "description": "Represents an agentic reasoning activity record." - }, - "KnowledgeBaseReference": { - "type": "object", - "discriminator": "type", - "properties": { - "type": { - "type": "string", - "description": "The type of the reference." - }, - "id": { - "type": "string", - "description": "The ID of the reference." - }, - "activitySource": { - "type": "integer", - "format": "int32", - "description": "The source activity ID for the reference." - }, - "sourceData": { - "type": "object", - "additionalProperties": true - }, - "rerankerScore": { - "type": "number", - "format": "float", - "description": "The reranker score for the document reference." - } - }, - "required": [ - "type", - "id", - "activitySource" - ], - "description": "Base type for references." - }, - "KnowledgeBaseSearchIndexReference": { - "type": "object", - "x-ms-discriminator-value": "searchIndex", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseReference" - } - ], - "properties": { - "docKey": { - "type": "string", - "description": "The document key for the reference." - } - }, - "description": "Represents an Azure Search document reference." - }, - "KnowledgeBaseAzureBlobReference": { - "type": "object", - "x-ms-discriminator-value": "azureBlob", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseReference" - } - ], - "properties": { - "blobUrl": { - "type": "string", - "description": "The blob URL for the reference." - } - }, - "description": "Represents an Azure Blob Storage document reference." - }, - "KnowledgeBaseIndexedSharePointReference": { - "type": "object", - "x-ms-discriminator-value": "indexedSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseReference" - } - ], - "properties": { - "docUrl": { - "type": "string", - "description": "The document URL for the reference." - } - }, - "description": "Represents an Azure Blob Storage document reference." - }, - "KnowledgeBaseIndexedOneLakeReference": { - "type": "object", - "x-ms-discriminator-value": "indexedOneLake", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseReference" - } - ], - "properties": { - "docUrl": { - "type": "string", - "description": "The document URL for the reference." - } - }, - "description": "Represents an Azure Blob Storage document reference." - }, - "KnowledgeBaseWebReference": { - "type": "object", - "x-ms-discriminator-value": "web", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseReference" - } - ], - "properties": { - "url": { - "type": "string", - "format": "uri", - "description": "The url the reference data originated from." - }, - "title": { - "type": "string", - "description": "The title of the web document." - } - }, - "description": "Represents a web document reference." - }, - "KnowledgeBaseRemoteSharePointReference": { - "type": "object", - "x-ms-discriminator-value": "remoteSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseReference" - } - ], - "properties": { - "webUrl": { - "type": "string", - "format": "uri", - "description": "The url the reference data originated from." - }, - "searchSensitivityLabelInfo": { - "type": "object", - "$ref": "#/definitions/SharePointSensitivityLabelInfo" - } - }, - "description": "Represents a remote SharePoint document reference." - }, - "SharePointSensitivityLabelInfo": { - "type": "object", - "description": "Information about the sensitivity label applied to a SharePoint document.", - "properties": { - "displayName": { - "type": "string", - "description": "The display name for the sensitivity label." - }, - "sensitivityLabelId": { - "type": "string", - "description": "The ID of the sensitivity label." - }, - "tooltip": { - "type": "string", - "description": "The tooltip that should be displayed for the label in a UI." - }, - "priority": { - "type": "integer", - "format": "int32", - "description": "The priority in which the sensitivity label is applied." - }, - "color": { - "type": "string", - "description": "The color that the UI should display for the label, if configured." - }, - "isEncrypted": { - "type": "boolean", - "description": "Indicates whether the sensitivity label enforces encryption." - } - } - }, - "KnowledgeBaseErrorDetail": { - "type": "object", - "description": "The error details.", - "properties": { - "code": { - "readOnly": true, - "type": "string", - "description": "The error code." - }, - "message": { - "readOnly": true, - "type": "string", - "description": "The error message." - }, - "target": { - "readOnly": true, - "type": "string", - "description": "The error target." - }, - "details": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseErrorDetail" - }, - "x-ms-identifiers": [], - "description": "The error details." - }, - "additionalInfo": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseErrorAdditionalInfo" - }, - "x-ms-identifiers": [], - "description": "The error additional info." - } - } - }, - "KnowledgeBaseErrorAdditionalInfo": { - "type": "object", - "properties": { - "type": { - "readOnly": true, - "type": "string", - "description": "The additional info type." - }, - "info": { - "readOnly": true, - "type": "object", - "description": "The additional info." - } - }, - "description": "The resource management error additional info." - } - }, - "parameters": { - "ApiVersionParameter": { - "name": "api-version", - "in": "query", - "required": true, - "type": "string", - "description": "Client Api Version.", - "x-ms-parameter-location": "client" - }, - "ClientRequestIdParameter": { - "name": "x-ms-client-request-id", - "in": "header", - "required": false, - "type": "string", - "format": "uuid", - "description": "The tracking ID sent with the request to help with debugging.", - "x-ms-client-request-id": true, - "x-ms-parameter-grouping": { - "name": "request-options" - }, - "x-ms-parameter-location": "method" - }, - "QuerySourceAuthorizationParameter": { - "name": "x-ms-query-source-authorization", - "in": "header", - "required": false, - "type": "string", - "description": "Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.", - "x-ms-query-source-authorization": true, - "x-ms-parameter-location": "method" - }, - "EndpointParameter": { - "name": "endpoint", - "in": "path", - "required": true, - "type": "string", - "format": "url", - "x-ms-skip-url-encoding": true, - "description": "The endpoint URL of the search service.", - "x-ms-parameter-location": "client" - }, - "KnowledgeBaseNameParameter": { - "name": "knowledgeBaseName", - "in": "path", - "required": true, - "type": "string", - "x-ms-skip-url-encoding": false, - "description": "The name of the knowledge base.", - "x-ms-parameter-location": "client" - } - } -} diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/searchservice.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/search.json similarity index 57% rename from specification/search/data-plane/Search/preview/2025-11-01-preview/searchservice.json rename to specification/search/data-plane/Search/preview/2025-11-01-preview/search.json index b17f5969a015..4dabfbb0036e 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/searchservice.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/search.json @@ -1,3582 +1,3717 @@ { "swagger": "2.0", "info": { - "title": "SearchServiceClient", - "description": "Client that can be used to manage and query indexes and documents, as well as manage other resources, on a search service.", + "title": "Azure AI Search", "version": "2025-11-01-preview", - "x-ms-code-generation-settings": { - "useDateTimeOffset": true - } - }, - "x-ms-parameterized-host": { - "hostTemplate": "{endpoint}", - "useSchemePrefix": false, - "parameters": [ + "description": "Client that can be used to manage and query indexes and documents, as well as manage other resources, on a search service.", + "x-typespec-generated": [ { - "$ref": "#/parameters/EndpointParameter" + "emitter": "@azure-tools/typespec-autorest" } ] }, - "consumes": [ - "application/json" + "schemes": [ + "https" ], "produces": [ "application/json" ], + "consumes": [ + "application/json" + ], + "security": [ + { + "ApiKeyAuth": [] + }, + { + "OAuth2Auth": [ + "https://search.azure.com/.default" + ] + } + ], + "securityDefinitions": { + "ApiKeyAuth": { + "type": "apiKey", + "name": "api-key", + "in": "header" + }, + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize", + "scopes": { + "https://search.azure.com/.default": "" + } + } + }, + "tags": [], "paths": { - "/knowledgebases('{knowledgeBaseName}')": { - "put": { - "tags": [ - "KnowledgeBases" + "/aliases": { + "get": { + "operationId": "Aliases_List", + "description": "Lists all aliases available for a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } ], - "operationId": "KnowledgeBases_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateKnowledgeBase": { - "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeBase.json" + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListAliasesResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } } }, - "description": "Creates a new knowledge base or updates an knowledge base if it already exists.", + "x-ms-examples": { + "SearchServiceListAliases": { + "$ref": "./examples/SearchServiceListAliases.json" + } + } + }, + "post": { + "operationId": "Aliases_Create", + "description": "Creates a new search alias.", "parameters": [ { - "name": "knowledgeBaseName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the knowledge base to create or update." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "name": "KnowledgeBase", + "name": "alias", "in": "body", + "description": "The definition of the alias to create.", "required": true, "schema": { - "$ref": "#/definitions/KnowledgeBase" - }, - "description": "The definition of the knowledge base to create or update." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" + "$ref": "#/definitions/SearchAlias" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SearchAlias" + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceCreateAlias": { + "$ref": "./examples/SearchServiceCreateAlias.json" + } + } + } + }, + "/aliases('{aliasName}')": { + "get": { + "operationId": "Aliases_Get", + "description": "Retrieves an alias definition.", + "parameters": [ { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/PreferHeaderParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "aliasName", + "in": "path", + "description": "The name of the alias.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], "responses": { "200": { - "description": "", - "schema": { - "$ref": "#/definitions/KnowledgeBase" - } - }, - "201": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/KnowledgeBase" + "$ref": "#/definitions/SearchAlias" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "KnowledgeBases" - ], - "operationId": "KnowledgeBases_Delete", + }, "x-ms-examples": { - "SearchServiceDeleteKnowledgeBase": { - "$ref": "./examples/SearchServiceDeleteKnowledgeBase.json" + "SearchServiceGetAlias": { + "$ref": "./examples/SearchServiceGetAlias.json" } - }, - "description": "Deletes an existing knowledge base.", + } + }, + "put": { + "operationId": "Aliases_CreateOrUpdate", + "description": "Creates a new search alias or updates an alias if it already exists.", "parameters": [ { - "name": "knowledgeBaseName", - "in": "path", - "required": true, + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, "type": "string", - "description": "The name of the knowledge base to delete." + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, + "type": "string", + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" }, { - "$ref": "#/parameters/IfMatchParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "aliasName", + "in": "path", + "description": "The name of the alias.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "alias", + "in": "body", + "description": "The definition of the alias to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchAlias" + } } ], - "x-ms-request-id": "request-id", "responses": { - "204": { - "description": "" + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SearchAlias" + } }, - "404": { - "description": "" + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SearchAlias" + } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "get": { - "tags": [ - "KnowledgeBases" - ], - "operationId": "KnowledgeBases_Get", + }, "x-ms-examples": { - "SearchServiceGetKnowledgeBase": { - "$ref": "./examples/SearchServiceGetKnowledgeBase.json" + "SearchServiceCreateOrUpdateAlias": { + "$ref": "./examples/SearchServiceCreateOrUpdateAlias.json" } - }, - "description": "Retrieves an knowledge base definition.", + } + }, + "delete": { + "operationId": "Aliases_Delete", + "description": "Deletes a search alias and its associated mapping to an index. This operation is permanent, with no recovery option. The mapped index is untouched by this operation.", "parameters": [ { - "name": "knowledgeBaseName", - "in": "path", - "required": true, + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, "type": "string", - "description": "The name of the knowledge base to retrieve." + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "aliasName", + "in": "path", + "description": "The name of the alias.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/KnowledgeBase" - } + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "404": { + "description": "The server cannot find the requested resource." }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceDeleteAlias": { + "$ref": "./examples/SearchServiceDeleteAlias.json" + } } } }, - "/knowledgebases": { + "/datasources": { "get": { - "tags": [ - "KnowledgeBases" - ], - "operationId": "KnowledgeBases_List", - "x-ms-examples": { - "SearchServiceListKnowledgeBases": { - "$ref": "./examples/SearchServiceListKnowledgeBases.json" - } - }, - "description": "Lists all knowledge bases available for a search service.", + "operationId": "DataSources_List", + "description": "Lists all datasources available for a search service.", "parameters": [ { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "$select", + "in": "query", + "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", + "required": false, + "type": "string", + "format": "ArrayEncoding.commaDelimited" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/ListKnowledgeBasesResult" + "$ref": "#/definitions/ListDataSourcesResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": null + "x-ms-examples": { + "SearchServiceListDataSources": { + "$ref": "./examples/SearchServiceListDataSources.json" + } } }, "post": { - "tags": [ - "KnowledgeBases" - ], - "operationId": "KnowledgeBases_Create", - "x-ms-examples": { - "SearchServiceCreateKnowledgeBase": { - "$ref": "./examples/SearchServiceCreateKnowledgeBase.json" - } - }, - "description": "Creates a new knowledge base.", + "operationId": "DataSources_Create", + "description": "Creates a new datasource.", "parameters": [ { - "name": "KnowledgeBase", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/KnowledgeBase" - }, - "description": "The definition of the knowledge base to create." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "dataSource", + "in": "body", + "description": "The definition of the datasource to create.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndexerDataSource" + } } ], "responses": { "201": { - "description": "Successfully created an knowledge base", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/KnowledgeBase" + "$ref": "#/definitions/SearchIndexerDataSource" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateDataSource": { + "$ref": "./examples/SearchServiceCreateDataSource.json" + } } } }, - "/knowledgesources('{sourceName}')": { - "put": { - "tags": [ - "KnowledgeSource" - ], - "operationId": "KnowledgeSources_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateKnowledgeSource": { - "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSource.json" - }, - "SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob": { - "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json" - }, - "SearchServiceCreateOrUpdateKnowledgeSourceWeb": { - "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json" - }, - "SearchServiceCreateOrUpdateKnowledgeSourceSharePoint": { - "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json" - }, - "SearchServiceCreateOrUpdateKnowledgeSourceOneLake": { - "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json" - } - }, - "description": "Creates a new knowledge source or updates an knowledge source if it already exists.", + "/datasources('{dataSourceName}')": { + "get": { + "operationId": "DataSources_Get", + "description": "Retrieves a datasource definition.", "parameters": [ { - "name": "sourceName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the knowledge source to create or update." - }, - { - "name": "KnowledgeSource", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/KnowledgeSource" - }, - "description": "The definition of the knowledge source to create or update." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/PreferHeaderParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "name": "dataSourceName", + "in": "path", + "description": "The name of the datasource.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], "responses": { "200": { - "description": "", - "schema": { - "$ref": "#/definitions/KnowledgeSource" - } - }, - "201": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/KnowledgeSource" + "$ref": "#/definitions/SearchIndexerDataSource" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceGetDataSource": { + "$ref": "./examples/SearchServiceGetDataSource.json" + } } }, - "delete": { - "tags": [ - "KnowledgeSources" - ], - "operationId": "KnowledgeSources_Delete", - "x-ms-examples": { - "SearchServiceDeleteKnowledgeSource": { - "$ref": "./examples/SearchServiceDeleteKnowledgeSource.json" - }, - "SearchServiceDeleteKnowledgeSourceAzureBlob": { - "$ref": "./examples/SearchServiceDeleteKnowledgeSourceAzureBlob.json" + "put": { + "operationId": "DataSources_CreateOrUpdate", + "description": "Creates a new datasource or updates a datasource if it already exists.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, - "SearchServiceDeleteKnowledgeSourceWeb": { - "$ref": "./examples/SearchServiceDeleteKnowledgeSourceWeb.json" + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, - "SearchServiceDeleteKnowledgeSourceSharePoint": { - "$ref": "./examples/SearchServiceDeleteKnowledgeSourceIndexedSharePoint.json" + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, - "SearchServiceDeleteKnowledgeSourceOneLake": { - "$ref": "./examples/SearchServiceDeleteKnowledgeSourceIndexedOneLake.json" - } - }, - "description": "Deletes an existing knowledge source.", - "parameters": [ { - "name": "sourceName", - "in": "path", + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", "required": true, "type": "string", - "description": "The name of the knowledge source to delete." + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "ignoreResetRequirements", + "in": "query", + "description": "Ignores cache reset requirements.", + "required": false, + "type": "boolean", + "x-ms-client-name": "skipIndexerResetRequirementForCache" }, { - "$ref": "#/parameters/IfMatchParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "dataSourceName", + "in": "path", + "description": "The name of the datasource.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "dataSource", + "in": "body", + "description": "The definition of the datasource to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndexerDataSource" + } } ], - "x-ms-request-id": "request-id", "responses": { - "204": { - "description": "" + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SearchIndexerDataSource" + } }, - "404": { - "description": "" + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SearchIndexerDataSource" + } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateOrUpdateDataSource": { + "$ref": "./examples/SearchServiceCreateOrUpdateDataSource.json" + } } }, - "get": { - "tags": [ - "KnowledgeSources" - ], - "operationId": "KnowledgeSources_Get", - "x-ms-examples": { - "SearchServiceGetKnowledgeSource": { - "$ref": "./examples/SearchServiceGetKnowledgeSource.json" - }, - "SearchServiceGetKnowledgeSourceAzureBlob": { - "$ref": "./examples/SearchServiceGetKnowledgeSourceAzureBlob.json" - }, - "SearchServiceGetKnowledgeSourceWeb": { - "$ref": "./examples/SearchServiceGetKnowledgeSourceWeb.json" + "delete": { + "operationId": "DataSources_Delete", + "description": "Deletes a datasource.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, - "SearchServiceGetKnowledgeSourceSharePoint": { - "$ref": "./examples/SearchServiceGetKnowledgeSourceIndexedSharePoint.json" + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, - "SearchServiceGetKnowledgeSourceOneLake": { - "$ref": "./examples/SearchServiceGetKnowledgeSourceIndexedOneLake.json" - } - }, - "description": "Retrieves a knowledge source definition.", - "parameters": [ { - "name": "sourceName", - "in": "path", - "required": true, + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, "type": "string", - "description": "The name of the knowledge source to retrieve." + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "dataSourceName", + "in": "path", + "description": "The name of the datasource.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/KnowledgeSource" - } + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "404": { + "description": "The server cannot find the requested resource." }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceDeleteDataSource": { + "$ref": "./examples/SearchServiceDeleteDataSource.json" + } } } }, - "/knowledgesources": { + "/indexers": { "get": { - "tags": [ - "KnowledgeSources" - ], - "operationId": "KnowledgeSources_List", - "x-ms-examples": { - "SearchServiceListKnowledgeSources": { - "$ref": "./examples/SearchServiceListKnowledgeSources.json" - }, - "SearchServiceListKnowledgeSourcesAzureBlob": { - "$ref": "./examples/SearchServiceListKnowledgeSourcesAzureBlob.json" - }, - "SearchServiceListKnowledgeSourcesWeb": { - "$ref": "./examples/SearchServiceListKnowledgeSourcesWeb.json" - }, - "SearchServiceListKnowledgeSourcesSharePoint": { - "$ref": "./examples/SearchServiceListKnowledgeSourcesIndexedSharePoint.json" - }, - "SearchServiceListKnowledgeSourcesOneLake": { - "$ref": "./examples/SearchServiceListKnowledgeSourcesIndexedOneLake.json" - } - }, - "description": "Lists all knowledge sources available for a search service.", + "operationId": "Indexers_List", + "description": "Lists all indexers available for a search service.", "parameters": [ { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "$select", + "in": "query", + "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", + "required": false, + "type": "string", + "format": "ArrayEncoding.commaDelimited" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/ListKnowledgeSourcesResult" + "$ref": "#/definitions/ListIndexersResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": null + "x-ms-examples": { + "SearchServiceListIndexers": { + "$ref": "./examples/SearchServiceListIndexers.json" + } } }, "post": { - "tags": [ - "KnowledgeSources" - ], - "operationId": "KnowledgeSources_Create", - "x-ms-examples": { - "SearchServiceCreateKnowledgeSource": { - "$ref": "./examples/SearchServiceCreateKnowledgeSource.json" - }, - "SearchServiceCreateKnowledgeSourceAzureBlob": { - "$ref": "./examples/SearchServiceCreateKnowledgeSourceAzureBlob.json" - }, - "SearchServiceCreateKnowledgeSourceWeb": { - "$ref": "./examples/SearchServiceCreateKnowledgeSourceWeb.json" - }, - "SearchServiceCreateKnowledgeSourceSharePoint": { - "$ref": "./examples/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json" - }, - "SearchServiceCreateKnowledgeSourceOneLake": { - "$ref": "./examples/SearchServiceCreateKnowledgeSourceIndexedOneLake.json" - } - }, - "description": "Creates a new knowledge source.", + "operationId": "Indexers_Create", + "description": "Creates a new indexer.", "parameters": [ { - "name": "KnowledgeSource", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/KnowledgeSource" - }, - "description": "The definition of the knowledge source to create." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexer", + "in": "body", + "description": "The definition of the indexer to create.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndexer" + } } ], "responses": { "201": { - "description": "Successfully created an knowledge source", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/KnowledgeSource" + "$ref": "#/definitions/SearchIndexer" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateIndexer": { + "$ref": "./examples/SearchServiceCreateIndexer.json" + } } } }, - "/knowledgesources('{sourceName}')/status": { + "/indexers('{indexerName}')": { "get": { - "tags": [ - "KnowledgeSources" - ], - "operationId": "KnowledgeSources_GetStatus", - "x-ms-examples": { - "SearchServiceGetKnowledgeSourceStatus": { - "$ref": "./examples/SearchServiceGetKnowledgeSourceStatus.json" - } - }, - "description": "Returns the current status and synchronization history of a knowledge source.", + "operationId": "Indexers_Get", + "description": "Retrieves an indexer definition.", "parameters": [ { - "name": "sourceName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the knowledge source for which to retrieve status." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexerName", + "in": "path", + "description": "The name of the indexer.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "Knowledge source status retrieved successfully.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/KnowledgeSourceStatus" + "$ref": "#/definitions/SearchIndexer" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceGetIndexer": { + "$ref": "./examples/SearchServiceGetIndexer.json" + } } - } - }, - "/datasources('{dataSourceName}')": { + }, "put": { - "tags": [ - "DataSources" - ], - "operationId": "DataSources_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateDataSource": { - "$ref": "./examples/SearchServiceCreateOrUpdateDataSource.json" - } - }, - "description": "Creates a new datasource or updates a datasource if it already exists.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Update-Data-Source" - }, + "operationId": "Indexers_CreateOrUpdate", + "description": "Creates a new indexer or updates an indexer if it already exists.", "parameters": [ { - "name": "dataSourceName", - "in": "path", - "required": true, + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, "type": "string", - "description": "The name of the datasource to create or update." + "x-ms-client-name": "ifMatch" }, { - "name": "dataSource", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndexerDataSource" - }, - "description": "The definition of the datasource to create or update." + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, + "type": "string", + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "ignoreResetRequirements", + "in": "query", + "description": "Ignores cache reset requirements.", + "required": false, + "type": "boolean", + "x-ms-client-name": "skipIndexerResetRequirementForCache" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "disableCacheReprocessingChangeDetection", + "in": "query", + "description": "Disables cache reprocessing change detection.", + "required": false, + "type": "boolean" }, { - "$ref": "#/parameters/PreferHeaderParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexerName", + "in": "path", + "description": "The name of the indexer.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/IgnoreResetRequirementsParameter" + "name": "indexer", + "in": "body", + "description": "The definition of the indexer to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndexer" + } } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchIndexerDataSource" + "$ref": "#/definitions/SearchIndexer" } }, "201": { - "description": "", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/SearchIndexerDataSource" + "$ref": "#/definitions/SearchIndexer" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateOrUpdateIndexer": { + "$ref": "./examples/SearchServiceCreateOrUpdateIndexer.json" + } } }, "delete": { - "tags": [ - "DataSources" - ], - "operationId": "DataSources_Delete", - "x-ms-examples": { - "SearchServiceDeleteDataSource": { - "$ref": "./examples/SearchServiceDeleteDataSource.json" - } - }, - "description": "Deletes a datasource.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Delete-Data-Source" - }, + "operationId": "Indexers_Delete", + "description": "Deletes an indexer.", "parameters": [ { - "name": "dataSourceName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the datasource to delete." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "204": { - "description": "" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, - "404": { - "description": "" - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "DataSources" - ], - "operationId": "DataSources_Get", - "x-ms-examples": { - "SearchServiceGetDataSource": { - "$ref": "./examples/SearchServiceGetDataSource.json" - } - }, - "description": "Retrieves a datasource definition.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Data-Source" - }, - "parameters": [ { - "name": "dataSourceName", + "name": "indexerName", "in": "path", + "description": "The name of the indexer.", "required": true, "type": "string", - "description": "The name of the datasource to retrieve." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/SearchIndexerDataSource" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/datasources": { - "get": { - "tags": [ - "DataSources" - ], - "operationId": "DataSources_List", - "x-ms-examples": { - "SearchServiceListDataSources": { - "$ref": "./examples/SearchServiceListDataSources.json" - } - }, - "description": "Lists all datasources available for a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/List-Data-Sources" - }, - "parameters": [ - { - "name": "$select", - "in": "query", - "required": false, - "type": "string", - "description": "Selects which top-level properties of the data sources to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/ListDataSourcesResult" - } + "404": { + "description": "The server cannot find the requested resource." }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "post": { - "tags": [ - "DataSources" - ], - "operationId": "DataSources_Create", - "x-ms-examples": { - "SearchServiceCreateDataSource": { - "$ref": "./examples/SearchServiceCreateDataSource.json" - } - }, - "description": "Creates a new datasource.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Data-Source" }, - "parameters": [ - { - "name": "dataSource", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndexerDataSource" - }, - "description": "The definition of the datasource to create." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "201": { - "description": "", - "schema": { - "$ref": "#/definitions/SearchIndexerDataSource" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } + "x-ms-examples": { + "SearchServiceDeleteIndexer": { + "$ref": "./examples/SearchServiceDeleteIndexer.json" } } } }, "/indexers('{indexerName}')/search.reset": { "post": { - "tags": [ - "Indexers" - ], "operationId": "Indexers_Reset", - "x-ms-examples": { - "SearchServiceResetIndexer": { - "$ref": "./examples/SearchServiceResetIndexer.json" - } - }, "description": "Resets the change tracking state associated with an indexer.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Reset-Indexer" - }, "parameters": [ { - "name": "indexerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the indexer to reset." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexerName", + "in": "path", + "description": "The name of the indexer.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "204": { - "description": "" + "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceResetIndexer": { + "$ref": "./examples/SearchServiceResetIndexer.json" + } } } }, "/indexers('{indexerName}')/search.resetdocs": { "post": { - "tags": [ - "Indexers" - ], "operationId": "Indexers_ResetDocs", - "x-ms-examples": { - "SearchServiceResetDocs": { - "$ref": "./examples/SearchServiceResetDocs.json" - } - }, "description": "Resets specific documents in the datasource to be selectively re-ingested by the indexer.", - "externalDocs": { - "url": "https://aka.ms/reset-documents" - }, "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "overwrite", + "in": "query", + "description": "If false, keys or ids will be appended to existing ones. If true, only the keys or ids in this payload will be queued to be re-ingested.", + "required": false, + "type": "boolean", + "default": false + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, { "name": "indexerName", "in": "path", + "description": "The name of the indexer.", "required": true, "type": "string", - "description": "The name of the indexer to reset documents for." + "x-ms-client-name": "name" }, { "name": "keysOrIds", "in": "body", + "description": "The keys or ids of the documents to be re-ingested. If keys are provided, the document key field must be specified in the indexer configuration. If ids are provided, the document key field is ignored.", "required": false, "schema": { - "type": "object", - "x-ms-client-name": "DocumentKeysOrIds", - "properties": { - "documentKeys": { - "type": "array", - "items": { - "type": "string" - }, - "description": "document keys to be reset" - }, - "datasourceDocumentIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "datasource document identifiers to be reset" - } - } + "$ref": "#/definitions/DocumentKeysOrIds" } - }, - { - "name": "overwrite", - "in": "query", - "required": false, - "default": false, - "type": "boolean", - "description": "If false, keys or ids will be appended to existing ones. If true, only the keys or ids in this payload will be queued to be re-ingested." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" } ], - "x-ms-request-id": "request-id", "responses": { "204": { - "description": "" + "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceResetDocs": { + "$ref": "./examples/SearchServiceResetDocs.json" + } } } }, "/indexers('{indexerName}')/search.resync": { "post": { - "tags": [ - "Indexers" - ], "operationId": "Indexers_Resync", - "x-ms-examples": { - "SearchServiceResync": { - "$ref": "./examples/SearchServiceResync.json" - } - }, - "description": "Resync selective options from the datasource to be re-ingested by the indexer.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Resync-Indexer" - }, + "description": "Resync selective options from the datasource to be re-ingested by the indexer.\"", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, { "name": "indexerName", "in": "path", + "description": "The name of the indexer.", "required": true, "type": "string", - "description": "The name of the indexer to resync for." + "x-ms-client-name": "name" }, { "name": "indexerResync", "in": "body", + "description": "The definition of the indexer resync options.", "required": true, "schema": { - "type": "object", - "x-ms-client-name": "IndexerResyncBody", - "properties": { - "options": { - "type": "array", - "x-ms-client-name": "options", - "x-nullable": true, - "items": { - "$ref": "#/definitions/IndexerResyncOption", - "x-nullable": false - }, - "description": "Re-sync options that have been pre-defined from data source." - } - } + "$ref": "#/definitions/IndexerResyncBody" } - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" } ], - "x-ms-request-id": "request-id", "responses": { "204": { - "description": "" + "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } + }, + "x-ms-examples": { + "SearchServiceResync": { + "$ref": "./examples/SearchServiceResync.json" + } + } } }, "/indexers('{indexerName}')/search.run": { "post": { - "tags": [ - "Indexers" - ], "operationId": "Indexers_Run", - "x-ms-examples": { - "SearchServiceRunIndexer": { - "$ref": "./examples/SearchServiceRunIndexer.json" - } - }, "description": "Runs an indexer on-demand.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Run-Indexer" - }, "parameters": [ { - "name": "indexerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the indexer to run." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "202": { - "description": "" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/indexers('{indexerName}')": { - "put": { - "tags": [ - "Indexers" - ], - "operationId": "Indexers_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateIndexer": { - "$ref": "./examples/SearchServiceCreateOrUpdateIndexer.json" - } - }, - "description": "Creates a new indexer or updates an indexer if it already exists.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Indexer" - }, - "parameters": [ { "name": "indexerName", "in": "path", + "description": "The name of the indexer.", "required": true, "type": "string", - "description": "The name of the indexer to create or update." - }, - { - "name": "indexer", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndexer" - }, - "description": "The definition of the indexer to create or update." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" - }, - { - "$ref": "#/parameters/IfNoneMatchParameter" - }, - { - "$ref": "#/parameters/PreferHeaderParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/IgnoreResetRequirementsParameter" - }, - { - "$ref": "#/parameters/DisableCacheReprocessingChangeDetectionParameter" + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "201": { - "description": "", - "schema": { - "$ref": "#/definitions/SearchIndexer" - } - }, - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/SearchIndexer" - } + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed." }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "Indexers" - ], - "operationId": "Indexers_Delete", + }, "x-ms-examples": { - "SearchServiceDeleteIndexer": { - "$ref": "./examples/SearchServiceDeleteIndexer.json" + "SearchServiceRunIndexer": { + "$ref": "./examples/SearchServiceRunIndexer.json" } - }, - "description": "Deletes an indexer.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Delete-Indexer" - }, + } + } + }, + "/indexers('{indexerName}')/search.status": { + "get": { + "operationId": "Indexers_GetStatus", + "description": "Returns the current status and execution history of an indexer.", "parameters": [ { - "name": "indexerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the indexer to delete." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" - }, - { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "404": { - "description": "" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, - "204": { - "description": "" - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "Indexers" - ], - "operationId": "Indexers_Get", - "x-ms-examples": { - "SearchServiceGetIndexer": { - "$ref": "./examples/SearchServiceGetIndexer.json" - } - }, - "description": "Retrieves an indexer definition.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Indexer" - }, - "parameters": [ { "name": "indexerName", "in": "path", + "description": "The name of the indexer.", "required": true, "type": "string", - "description": "The name of the indexer to retrieve." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchIndexer" + "$ref": "#/definitions/SearchIndexerStatus" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceGetIndexerStatus": { + "$ref": "./examples/SearchServiceGetIndexerStatus.json" + }, + "SearchServiceGetS3HDUnlimitedIndexerStatus": { + "$ref": "./examples/SearchServiceGetS3HDUnlimitedIndexerStatus.json" + } } } }, - "/indexers": { + "/indexes": { "get": { - "tags": [ - "Indexers" - ], - "operationId": "Indexers_List", - "x-ms-examples": { - "SearchServiceListIndexers": { - "$ref": "./examples/SearchServiceListIndexers.json" - } - }, - "description": "Lists all indexers available for a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/List-Indexers" - }, + "operationId": "Indexes_List", + "description": "Lists all indexes available for a search service.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "$select", "in": "query", + "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", "required": false, "type": "string", - "description": "Selects which top-level properties of the indexers to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" + "format": "ArrayEncoding.commaDelimited" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/ListIndexersResult" + "$ref": "#/definitions/ListIndexesResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceListIndexes": { + "$ref": "./examples/SearchServiceListIndexes.json" + } } }, "post": { - "tags": [ - "Indexers" - ], - "operationId": "Indexers_Create", - "x-ms-examples": { - "SearchServiceCreateIndexer": { - "$ref": "./examples/SearchServiceCreateIndexer.json" - } - }, - "description": "Creates a new indexer.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Indexer" - }, + "operationId": "Indexes_Create", + "description": "Creates a new search index.", "parameters": [ { - "name": "indexer", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndexer" - }, - "description": "The definition of the indexer to create." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "index", + "in": "body", + "description": "The definition of the index to create.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndex" + } } ], - "x-ms-request-id": "request-id", "responses": { "201": { - "description": "", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/SearchIndexer" + "$ref": "#/definitions/SearchIndex" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateIndex": { + "$ref": "./examples/SearchServiceCreateIndex.json" + } } } }, - "/indexers('{indexerName}')/search.status": { + "/indexes('{indexName}')": { "get": { - "tags": [ - "Indexers" - ], - "operationId": "Indexers_GetStatus", - "x-ms-examples": { - "SearchServiceGetIndexerStatus": { - "$ref": "./examples/SearchServiceGetIndexerStatus.json" - } - }, - "description": "Returns the current status and execution history of an indexer.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Indexer-Status" - }, + "operationId": "Indexes_Get", + "description": "Retrieves an index definition.", "parameters": [ { - "name": "indexerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the indexer for which to retrieve status." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchIndexerStatus" + "$ref": "#/definitions/SearchIndex" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - } - }, - "/skillsets('{skillsetName}')": { - "put": { - "tags": [ - "Skillsets" - ], - "operationId": "Skillsets_CreateOrUpdate", + }, "x-ms-examples": { - "SearchServiceCreateOrUpdateSkillset": { - "$ref": "./examples/SearchServiceCreateOrUpdateSkillset.json" + "SearchServiceGetIndex": { + "$ref": "./examples/SearchServiceGetIndex.json" } - }, - "description": "Creates a new skillset in a search service or updates the skillset if it already exists.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/update-skillset" - }, + } + }, + "put": { + "operationId": "Indexes_CreateOrUpdate", + "description": "Creates a new search index or updates an index if it already exists.", "parameters": [ { - "name": "skillsetName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the skillset to create or update." - }, - { - "name": "skillset", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndexerSkillset" - }, - "description": "The skillset containing one or more skills to create or update in a search service." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "allowIndexDowntime", + "in": "query", + "description": "Allows new analyzers, tokenizers, token filters, or char filters to be added to an index by taking the index offline for at least a few seconds. This temporarily causes indexing and query requests to fail. Performance and write availability of the index can be impaired for several minutes after the index is updated, or longer for very large indexes.", + "required": false, + "type": "boolean" }, { - "$ref": "#/parameters/PreferHeaderParameter" - }, + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, + "type": "string", + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" + }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/IgnoreResetRequirementsParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/DisableCacheReprocessingChangeDetectionParameter" + "name": "index", + "in": "body", + "description": "The definition of the index to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndex" + } } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "The skillset is successfully updated.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchIndexerSkillset" + "$ref": "#/definitions/SearchIndex" } }, "201": { - "description": "The skillset is successfully created.", + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/SearchIndexerSkillset" + "$ref": "#/definitions/SearchIndex" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateOrUpdateIndex": { + "$ref": "./examples/SearchServiceCreateOrUpdateIndex.json" + } } }, "delete": { - "tags": [ - "Skillsets" - ], - "operationId": "Skillsets_Delete", - "x-ms-examples": { - "SearchServiceDeleteSkillset": { - "$ref": "./examples/SearchServiceDeleteSkillset.json" - } - }, - "description": "Deletes a skillset in a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/delete-skillset" - }, + "operationId": "Indexes_Delete", + "description": "Deletes a search index and all the documents it contains. This operation is permanent, with no recovery option. Make sure you have a master copy of your index definition, data ingestion code, and a backup of the primary data source in case you need to re-build the index.", "parameters": [ { - "name": "skillsetName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the skillset to delete." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "204": { - "description": "The skillset is successfully deleted." + "description": "There is no content to send for this request, but the headers may be useful. " }, "404": { - "description": "The provided skillset name is not found." + "description": "The server cannot find the requested resource." }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "get": { - "tags": [ - "Skillsets" - ], - "operationId": "Skillsets_Get", + }, "x-ms-examples": { - "SearchServiceGetSkillset": { - "$ref": "./examples/SearchServiceGetSkillset.json" + "SearchServiceDeleteIndex": { + "$ref": "./examples/SearchServiceDeleteIndex.json" } - }, - "description": "Retrieves a skillset in a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/get-skillset" - }, + } + } + }, + "/indexes('{indexName}')/docs": { + "get": { + "operationId": "Documents_SearchGet", + "description": "Searches for documents in the index.", "parameters": [ { - "name": "skillsetName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the skillset to retrieve." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "x-ms-query-source-authorization", + "in": "header", + "description": "Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.", + "required": false, + "type": "string", + "x-ms-client-name": "querySourceAuthorization" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "The skillset is successfully returned.", - "schema": { - "$ref": "#/definitions/SearchIndexerSkillset" - } + "name": "x-ms-enable-elevated-read", + "in": "header", + "description": "A value that enables elevated read that bypass document level permission checks for the query operation.", + "required": false, + "type": "boolean", + "x-ms-client-name": "enableElevatedRead" }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/skillsets": { - "get": { - "tags": [ - "Skillsets" - ], - "operationId": "Skillsets_List", - "x-ms-examples": { - "SearchServiceListSkillsets": { - "$ref": "./examples/SearchServiceListSkillsets.json" - } - }, - "description": "List all skillsets in a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/list-skillset" - }, - "parameters": [ { - "name": "$select", + "name": "search", "in": "query", + "description": "A full-text search query expression; Use \"*\" or omit this parameter to match all documents.", "required": false, "type": "string", - "description": "Selects which top-level properties of the skillsets to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties." + "x-ms-client-name": "searchText" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/SearchOptions.includeTotalResultCount" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "The list is successfully returned.", - "schema": { - "$ref": "#/definitions/ListSkillsetsResult" - } + "$ref": "#/parameters/SearchOptions.facets" }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - }, - "post": { - "tags": [ - "Skillsets" - ], - "operationId": "Skillsets_Create", - "x-ms-examples": { - "SearchServiceCreateSkillset": { - "$ref": "./examples/SearchServiceCreateSkillset.json" - } - }, - "description": "Creates a new skillset in a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/create-skillset" - }, - "parameters": [ { - "name": "skillset", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndexerSkillset" - }, - "description": "The skillset containing one or more skills to create in a search service." + "$ref": "#/parameters/SearchOptions.filter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/SearchOptions.highlightFields" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "201": { - "description": "The skillset is successfully created.", - "schema": { - "$ref": "#/definitions/SearchIndexerSkillset" - } + "$ref": "#/parameters/SearchOptions.highlightPostTag" }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/skillsets('{skillsetName}')/search.resetskills": { - "post": { - "tags": [ - "Skillsets" - ], - "operationId": "Skillsets_ResetSkills", - "x-ms-examples": { - "SearchServiceResetSkills": { - "$ref": "./examples/SearchServiceResetSkills.json" - } - }, - "description": "Reset an existing skillset in a search service.", - "externalDocs": { - "url": "https://aka.ms/reset-skills" - }, - "parameters": [ { - "name": "skillsetName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the skillset to reset." + "$ref": "#/parameters/SearchOptions.highlightPreTag" }, { - "name": "skillNames", - "in": "body", - "required": true, - "schema": { - "type": "object", - "x-ms-client-name": "SkillNames", - "properties": { - "skillNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "the names of skills to be reset." - } - } - }, - "description": "The names of skills to reset." + "$ref": "#/parameters/SearchOptions.minimumCoverage" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/SearchOptions.orderBy" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "204": { - "description": "The skills in the skillset are successfully reset." + "$ref": "#/parameters/SearchOptions.queryType" }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/synonymmaps('{synonymMapName}')": { - "put": { - "tags": [ - "SynonymMaps" - ], - "operationId": "SynonymMaps_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateSynonymMap": { - "$ref": "./examples/SearchServiceCreateOrUpdateSynonymMap.json" - } - }, - "description": "Creates a new synonym map or updates a synonym map if it already exists.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Update-Synonym-Map" - }, - "parameters": [ { - "name": "synonymMapName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the synonym map to create or update." + "$ref": "#/parameters/SearchOptions.scoringParameters" }, { - "name": "synonymMap", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SynonymMap" - }, - "description": "The definition of the synonym map to create or update." + "$ref": "#/parameters/SearchOptions.scoringProfile" + }, + { + "$ref": "#/parameters/SearchOptions.searchFields" + }, + { + "$ref": "#/parameters/SearchOptions.searchMode" + }, + { + "$ref": "#/parameters/SearchOptions.scoringStatistics" + }, + { + "$ref": "#/parameters/SearchOptions.sessionId" + }, + { + "$ref": "#/parameters/SearchOptions.select" + }, + { + "$ref": "#/parameters/SearchOptions.skip" + }, + { + "$ref": "#/parameters/SearchOptions.top" + }, + { + "$ref": "#/parameters/SearchOptions.semanticConfiguration" + }, + { + "$ref": "#/parameters/SearchOptions.semanticErrorHandling" + }, + { + "$ref": "#/parameters/SearchOptions.semanticMaxWaitInMilliseconds" + }, + { + "$ref": "#/parameters/SearchOptions.answers" + }, + { + "$ref": "#/parameters/SearchOptions.captions" + }, + { + "$ref": "#/parameters/SearchOptions.semanticQuery" + }, + { + "$ref": "#/parameters/SearchOptions.queryRewrites" + }, + { + "$ref": "#/parameters/SearchOptions.debug" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/SearchOptions.queryLanguage" }, { - "$ref": "#/parameters/IfMatchParameter" + "$ref": "#/parameters/SearchOptions.speller" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/SearchOptions.semanticFields" }, { - "$ref": "#/parameters/PreferHeaderParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SynonymMap" + "$ref": "#/definitions/SearchDocumentsResult" } }, - "201": { - "description": "", + "206": { + "description": "Successful", "schema": { - "$ref": "#/definitions/SynonymMap" + "$ref": "#/definitions/SearchDocumentsResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "SynonymMaps" - ], - "operationId": "SynonymMaps_Delete", + }, "x-ms-examples": { - "SearchServiceDeleteSynonymMap": { - "$ref": "./examples/SearchServiceDeleteSynonymMap.json" + "SearchIndexSearchDocumentsGet": { + "$ref": "./examples/SearchIndexSearchDocumentsGet.json" + }, + "SearchIndexSearchDocumentsSemanticGet": { + "$ref": "./examples/SearchIndexSearchDocumentsSemanticGet.json" } - }, - "description": "Deletes a synonym map.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Delete-Synonym-Map" - }, + } + } + }, + "/indexes('{indexName}')/docs/$count": { + "get": { + "operationId": "Documents_Count", + "description": "Queries the number of documents in the index.", "parameters": [ { - "name": "synonymMapName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the synonym map to delete." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" - }, - { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "204": { - "description": "" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, - "404": { - "description": "" - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "SynonymMaps" - ], - "operationId": "SynonymMaps_Get", - "x-ms-examples": { - "SearchServiceGetSynonymMap": { - "$ref": "./examples/SearchServiceGetSynonymMap.json" - } - }, - "description": "Retrieves a synonym map definition.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Synonym-Map" - }, - "parameters": [ { - "name": "synonymMapName", + "name": "indexName", "in": "path", + "description": "The name of the index.", "required": true, "type": "string", - "description": "The name of the synonym map to retrieve." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SynonymMap" + "type": "integer", + "format": "int64" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchIndexCountDocuments": { + "$ref": "./examples/SearchIndexCountDocuments.json" + } } } }, - "/synonymmaps": { + "/indexes('{indexName}')/docs/search.autocomplete": { "get": { - "tags": [ - "SynonymMaps" - ], - "operationId": "SynonymMaps_List", - "x-ms-examples": { - "SearchServiceListSynonymMaps": { - "$ref": "./examples/SearchServiceListSynonymMaps.json" - } - }, - "description": "Lists all synonym maps available for a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/List-Synonym-Maps" - }, + "operationId": "Documents_AutocompleteGet", + "description": "Autocompletes incomplete query terms based on input text and matching terms in the index.", "parameters": [ { - "name": "$select", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "search", "in": "query", - "required": false, + "description": "The incomplete term which should be auto-completed.", + "required": true, "type": "string", - "description": "Selects which top-level properties of the synonym maps to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties." + "x-ms-client-name": "searchText" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "suggesterName", + "in": "query", + "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "", - "schema": { - "$ref": "#/definitions/ListSynonymMapsResult" + "name": "autocompleteMode", + "in": "query", + "description": "Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context while producing auto-completed terms.", + "required": false, + "type": "string", + "enum": [ + "oneTerm", + "twoTerms", + "oneTermWithContext" + ], + "x-ms-enum": { + "name": "AutocompleteMode", + "modelAsString": true, + "values": [ + { + "name": "OneTerm", + "value": "oneTerm", + "description": "Only one term is suggested. If the query has two terms, only the last term is completed. For example, if the input is 'washington medic', the suggested terms could include 'medicaid', 'medicare', and 'medicine'." + }, + { + "name": "TwoTerms", + "value": "twoTerms", + "description": "Matching two-term phrases in the index will be suggested. For example, if the input is 'medic', the suggested terms could include 'medicare coverage' and 'medical assistant'." + }, + { + "name": "OneTermWithContext", + "value": "oneTermWithContext", + "description": "Completes the last term in a query with two or more terms, where the last two terms are a phrase that exists in the index. For example, if the input is 'washington medic', the suggested terms could include 'washington medicaid' and 'washington medical'." + } + ] } }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - }, - "post": { - "tags": [ - "SynonymMaps" - ], - "operationId": "SynonymMaps_Create", - "x-ms-examples": { - "SearchServiceCreateSynonymMap": { - "$ref": "./examples/SearchServiceCreateSynonymMap.json" - } - }, - "description": "Creates a new synonym map.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Synonym-Map" - }, - "parameters": [ { - "name": "synonymMap", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SynonymMap" + "name": "$filter", + "in": "query", + "description": "An OData expression that filters the documents used to produce completed terms for the Autocomplete result.", + "required": false, + "type": "string" + }, + { + "name": "fuzzy", + "in": "query", + "description": "A value indicating whether to use fuzzy matching for the autocomplete query. Default is false. When set to true, the query will find terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy autocomplete queries are slower and consume more resources.", + "required": false, + "type": "boolean", + "x-ms-client-name": "useFuzzyMatching" + }, + { + "name": "highlightPostTag", + "in": "query", + "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting is disabled.", + "required": false, + "type": "string" + }, + { + "name": "highlightPreTag", + "in": "query", + "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting is disabled.", + "required": false, + "type": "string" + }, + { + "name": "minimumCoverage", + "in": "query", + "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by an autocomplete query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.", + "required": false, + "type": "number", + "format": "double" + }, + { + "name": "searchFields", + "in": "query", + "description": "The list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester.", + "required": false, + "type": "array", + "items": { + "type": "string" }, - "description": "The definition of the synonym map to create." + "collectionFormat": "csv" + }, + { + "name": "$top", + "in": "query", + "description": "The number of auto-completed terms to retrieve. This must be a value between 1 and 100. The default is 5.", + "required": false, + "type": "integer", + "format": "int32" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "201": { - "description": "", + "200": { + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SynonymMap" + "$ref": "#/definitions/AutocompleteResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchIndexAutocompleteDocumentsGet": { + "$ref": "./examples/SearchIndexAutocompleteDocumentsGet.json" + } } } }, - "/indexes": { + "/indexes('{indexName}')/docs/search.index": { "post": { - "tags": [ - "Indexes" - ], - "operationId": "Indexes_Create", - "x-ms-examples": { - "SearchServiceCreateIndex": { - "$ref": "./examples/SearchServiceCreateIndex.json" - } - }, - "description": "Creates a new search index.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Index" - }, + "operationId": "Documents_Index", + "description": "Sends a batch of document write actions to the index.", "parameters": [ { - "name": "index", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndex" - }, - "description": "The definition of the index to create." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "batch", + "in": "body", + "description": "The batch of index actions.", + "required": true, + "schema": { + "$ref": "#/definitions/IndexBatch" + } } ], - "x-ms-request-id": "request-id", "responses": { - "201": { - "description": "", + "200": { + "description": "Response containing the status of operations for all documents in the indexing request.", "schema": { - "$ref": "#/definitions/SearchIndex" + "$ref": "#/definitions/IndexDocumentsResult" + } + }, + "207": { + "description": "Response containing the status of operations for all documents in the indexing request.", + "schema": { + "$ref": "#/definitions/IndexDocumentsResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "get": { - "tags": [ - "Indexes" - ], - "operationId": "Indexes_List", + }, "x-ms-examples": { - "SearchServiceListIndexes": { - "$ref": "./examples/SearchServiceListIndexes.json" + "SearchIndexIndexDocuments": { + "$ref": "./examples/SearchIndexIndexDocuments.json" } - }, - "description": "Lists all indexes available for a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/List-Indexes" - }, + } + } + }, + "/indexes('{indexName}')/docs/search.post.autocomplete": { + "post": { + "operationId": "Documents_AutocompletePost", + "description": "Autocompletes incomplete query terms based on input text and matching terms in the index.", "parameters": [ { - "name": "$select", - "in": "query", - "required": false, - "type": "string", - "description": "Selects which top-level properties of the index definitions to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AutocompleteRequest" + } } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/ListIndexesResult" + "$ref": "#/definitions/AutocompleteResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": null + "x-ms-examples": { + "SearchIndexAutocompleteDocumentsPost": { + "$ref": "./examples/SearchIndexAutocompleteDocumentsPost.json" + } } } }, - "/indexes('{indexName}')": { - "put": { - "tags": [ - "Indexes" - ], - "operationId": "Indexes_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateIndex": { - "$ref": "./examples/SearchServiceCreateOrUpdateIndex.json" - } - }, - "description": "Creates a new search index or updates an index if it already exists.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Update-Index" - }, + "/indexes('{indexName}')/docs/search.post.search": { + "post": { + "operationId": "Documents_SearchPost", + "description": "Searches for documents in the index.", "parameters": [ { - "name": "indexName", - "in": "path", - "required": true, - "type": "string", - "description": "The definition of the index to create or update." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "index", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchIndex" - }, - "description": "The definition of the index to create or update." + "name": "x-ms-query-source-authorization", + "in": "header", + "description": "Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.", + "required": false, + "type": "string", + "x-ms-client-name": "querySourceAuthorization" }, { - "name": "allowIndexDowntime", - "in": "query", + "name": "x-ms-enable-elevated-read", + "in": "header", + "description": "A value that enables elevated read that bypass document level permission checks for the query operation.", "required": false, "type": "boolean", - "description": "Allows new analyzers, tokenizers, token filters, or char filters to be added to an index by taking the index offline for at least a few seconds. This temporarily causes indexing and query requests to fail. Performance and write availability of the index can be impaired for several minutes after the index is updated, or longer for very large indexes." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" + "x-ms-client-name": "enableElevatedRead" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/PreferHeaderParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SearchRequest" + } } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchIndex" + "$ref": "#/definitions/SearchDocumentsResult" } }, - "201": { - "description": "", + "206": { + "description": "Successful", "schema": { - "$ref": "#/definitions/SearchIndex" + "$ref": "#/definitions/SearchDocumentsResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "Indexes" - ], - "operationId": "Indexes_Delete", + }, "x-ms-examples": { - "SearchServiceDeleteIndex": { - "$ref": "./examples/SearchServiceDeleteIndex.json" + "SearchIndexSearchDocumentsPost": { + "$ref": "./examples/SearchIndexSearchDocumentsPost.json" + }, + "SearchIndexSearchDocumentsSemanticPost": { + "$ref": "./examples/SearchIndexSearchDocumentsSemanticPost.json" } - }, - "description": "Deletes a search index and all the documents it contains. This operation is permanent, with no recovery option. Make sure you have a master copy of your index definition, data ingestion code, and a backup of the primary data source in case you need to re-build the index.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Delete-Index" - }, + } + } + }, + "/indexes('{indexName}')/docs/search.post.suggest": { + "post": { + "operationId": "Documents_SuggestPost", + "description": "Suggests documents in the index that match the given partial query text.", "parameters": [ { - "name": "indexName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the index to delete." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/IfMatchParameter" - }, - { - "$ref": "#/parameters/IfNoneMatchParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SuggestRequest" + } } ], - "x-ms-request-id": "request-id", "responses": { - "204": { - "description": "" - }, - "404": { - "description": "" + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SuggestDocumentsResult" + } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "get": { - "tags": [ - "Indexes" - ], - "operationId": "Indexes_Get", + }, "x-ms-examples": { - "SearchServiceGetIndex": { - "$ref": "./examples/SearchServiceGetIndex.json" + "SearchIndexSuggestDocumentsPost": { + "$ref": "./examples/SearchIndexSuggestDocumentsPost.json" } - }, - "description": "Retrieves an index definition.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Index" - }, + } + } + }, + "/indexes('{indexName}')/docs/search.suggest": { + "get": { + "operationId": "Documents_SuggestGet", + "description": "Suggests documents in the index that match the given partial query text.", "parameters": [ { - "name": "indexName", - "in": "path", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "search", + "in": "query", + "description": "The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters.", "required": true, "type": "string", - "description": "The name of the index to retrieve." + "x-ms-client-name": "searchText" + }, + { + "name": "suggesterName", + "in": "query", + "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/SuggestOptions.filter" + }, + { + "$ref": "#/parameters/SuggestOptions.useFuzzyMatching" + }, + { + "$ref": "#/parameters/SuggestOptions.highlightPostTag" + }, + { + "$ref": "#/parameters/SuggestOptions.highlightPreTag" + }, + { + "$ref": "#/parameters/SuggestOptions.minimumCoverage" + }, + { + "$ref": "#/parameters/SuggestOptions.orderBy" + }, + { + "$ref": "#/parameters/SuggestOptions.searchFields" + }, + { + "$ref": "#/parameters/SuggestOptions.select" + }, + { + "$ref": "#/parameters/SuggestOptions.top" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchIndex" + "$ref": "#/definitions/SuggestDocumentsResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchIndexSuggestDocumentsGet": { + "$ref": "./examples/SearchIndexSuggestDocumentsGet.json" + } } } }, - "/indexes('{indexName}')/search.stats": { + "/indexes('{indexName}')/docs('{key}')": { "get": { - "tags": [ - "Indexes" - ], - "operationId": "Indexes_GetStatistics", - "x-ms-examples": { - "SearchServiceGetIndexStatistics": { - "$ref": "./examples/SearchServiceGetIndexStatistics.json" - } - }, - "description": "Returns statistics for the given index, including a document count and storage usage.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Index-Statistics" - }, + "operationId": "Documents_Get", + "description": "Retrieves a document from the index.", "parameters": [ { - "name": "indexName", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "x-ms-query-source-authorization", + "in": "header", + "description": "Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.", + "required": false, + "type": "string", + "x-ms-client-name": "querySourceAuthorization" + }, + { + "name": "x-ms-enable-elevated-read", + "in": "header", + "description": "A value that enables elevated read that bypass document level permission checks for the query operation.", + "required": false, + "type": "boolean", + "x-ms-client-name": "enableElevatedRead" + }, + { + "name": "key", "in": "path", + "description": "The key of the document to retrieve.", "required": true, - "type": "string", - "description": "The name of the index for which to retrieve statistics." + "type": "string" + }, + { + "name": "$select", + "in": "query", + "description": "List of field names to retrieve for the document; Any field not retrieved will be missing from the returned document.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "x-ms-client-name": "selectedFields" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/GetIndexStatisticsResult" + "$ref": "#/definitions/LookupDocument" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchIndexGetDocument": { + "$ref": "./examples/SearchIndexGetDocument.json" + } } } }, "/indexes('{indexName}')/search.analyze": { "post": { - "tags": [ - "Indexes" - ], "operationId": "Indexes_Analyze", - "x-ms-examples": { - "SearchServiceIndexAnalyze": { - "$ref": "./examples/SearchServiceIndexAnalyze.json" - } - }, "description": "Shows how an analyzer breaks text into tokens.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/test-analyzer" - }, "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, { "name": "indexName", "in": "path", + "description": "The name of the index.", "required": true, "type": "string", - "description": "The name of the index for which to test an analyzer." + "x-ms-client-name": "name" }, { "name": "request", "in": "body", + "description": "The text and analyzer or analysis components to test.", "required": true, "schema": { "$ref": "#/definitions/AnalyzeRequest" - }, - "description": "The text and analyzer or analysis components to test." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" + } } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/AnalyzeResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceIndexAnalyze": { + "$ref": "./examples/SearchServiceIndexAnalyze.json" + } } } }, - "/aliases": { - "post": { - "tags": [ - "Aliases" - ], - "operationId": "Aliases_Create", - "x-ms-examples": { - "SearchServiceCreateAlias": { - "$ref": "./examples/SearchServiceCreateAlias.json" - } - }, - "description": "Creates a new search alias.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Alias" - }, + "/indexes('{indexName}')/search.stats": { + "get": { + "operationId": "Indexes_GetStatistics", + "description": "Returns statistics for the given index, including a document count and storage usage.", "parameters": [ { - "name": "alias", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchAlias" - }, - "description": "The definition of the alias to create." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "indexName", + "in": "path", + "description": "The name of the index.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "201": { - "description": "", + "200": { + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchAlias" + "$ref": "#/definitions/GetIndexStatisticsResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "get": { - "tags": [ - "Aliases" - ], - "operationId": "Aliases_List", + }, "x-ms-examples": { - "SearchServiceListAliases": { - "$ref": "./examples/SearchServiceListAliases.json" + "SearchServiceGetIndexStatistics": { + "$ref": "./examples/SearchServiceGetIndexStatistics.json" } - }, - "description": "Lists all aliases available for a search service.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/List-Aliases" - }, + } + } + }, + "/indexstats": { + "get": { + "operationId": "GetIndexStatsSummary", + "description": "Retrieves a summary of statistics for all indexes in the search service.", "parameters": [ { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/ListAliasesResult" + "$ref": "#/definitions/ListIndexStatsSummary" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": null + "x-ms-examples": { + "SearchServiceGetIndexStatsSummary": { + "$ref": "./examples/SearchServiceGetIndexStatsSummary.json" + } } } }, - "/aliases('{aliasName}')": { - "put": { - "tags": [ - "Aliases" - ], - "operationId": "Aliases_CreateOrUpdate", - "x-ms-examples": { - "SearchServiceCreateOrUpdateAlias": { - "$ref": "./examples/SearchServiceCreateOrUpdateAlias.json" - } - }, - "description": "Creates a new search alias or updates an alias if it already exists.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Update-Alias" - }, + "/knowledgebases": { + "get": { + "operationId": "KnowledgeBases_List", + "description": "Lists all knowledge bases available for a search service.", "parameters": [ { - "name": "aliasName", - "in": "path", - "required": true, - "type": "string", - "description": "The definition of the alias to create or update." - }, - { - "name": "alias", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchAlias" - }, - "description": "The definition of the alias to create or update." - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/IfMatchParameter" - }, - { - "$ref": "#/parameters/IfNoneMatchParameter" - }, - { - "$ref": "#/parameters/PreferHeaderParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", - "schema": { - "$ref": "#/definitions/SearchAlias" - } - }, - "201": { - "description": "", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SearchAlias" + "$ref": "#/definitions/ListKnowledgeBasesResult" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "Aliases" - ], - "operationId": "Aliases_Delete", + }, "x-ms-examples": { - "SearchServiceDeleteAlias": { - "$ref": "./examples/SearchServiceDeleteAlias.json" + "SearchServiceListKnowledgeBases": { + "$ref": "./examples/SearchServiceListKnowledgeBases.json" } - }, - "description": "Deletes a search alias and its associated mapping to an index. This operation is permanent, with no recovery option. The mapped index is untouched by this operation.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Delete-Alias" - }, + } + }, + "post": { + "operationId": "KnowledgeBases_Create", + "description": "Creates a new knowledge base.", "parameters": [ { - "name": "aliasName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the alias to delete." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/IfMatchParameter" + "name": "knowledgeBase", + "in": "body", + "description": "The definition of the knowledge base to create.", + "required": true, + "schema": { + "$ref": "#/definitions/KnowledgeBase" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/KnowledgeBase" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceCreateKnowledgeBase": { + "$ref": "./examples/SearchServiceCreateKnowledgeBase.json" + } + } + } + }, + "/knowledgebases('{knowledgeBaseName}')": { + "get": { + "operationId": "KnowledgeBases_Get", + "description": "Retrieves a knowledge base definition.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/IfNoneMatchParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "knowledgeBaseName", + "in": "path", + "description": "The name of the knowledge base.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], - "x-ms-request-id": "request-id", "responses": { - "204": { - "description": "" - }, - "404": { - "description": "" + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/KnowledgeBase" + } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceGetKnowledgeBase": { + "$ref": "./examples/SearchServiceGetKnowledgeBase.json" + } } }, - "get": { - "tags": [ - "Aliases" + "put": { + "operationId": "KnowledgeBases_CreateOrUpdate", + "description": "Creates a new knowledge base or updates a knowledge base if it already exists.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, + "type": "string", + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "knowledgeBaseName", + "in": "path", + "description": "The name of the knowledge base.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + }, + { + "name": "knowledgeBase", + "in": "body", + "description": "The definition of the knowledge base to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/KnowledgeBase" + } + } ], - "operationId": "Aliases_Get", - "x-ms-examples": { - "SearchServiceGetAlias": { - "$ref": "./examples/SearchServiceGetAlias.json" + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/KnowledgeBase" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/KnowledgeBase" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } } }, - "description": "Retrieves an alias definition.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Get-Alias" + "x-ms-examples": { + "SearchServiceCreateOrUpdateKnowledgeBase": { + "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeBase.json" + } + } + }, + "delete": { + "operationId": "KnowledgeBases_Delete", + "description": "Deletes a knowledge base.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "knowledgeBaseName", + "in": "path", + "description": "The name of the knowledge base.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "404": { + "description": "The server cannot find the requested resource." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, + "x-ms-examples": { + "SearchServiceDeleteKnowledgeBase": { + "$ref": "./examples/SearchServiceDeleteKnowledgeBase.json" + } + } + } + }, + "/knowledgebases('{knowledgeBaseName}')/retrieve": { + "post": { + "operationId": "KnowledgeRetrieval_Retrieve", + "description": "KnowledgeBase retrieves relevant data from backing stores.", "parameters": [ { - "name": "aliasName", + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "knowledgeBaseName", "in": "path", + "description": "The name of the knowledge base.", "required": true, + "type": "string" + }, + { + "name": "x-ms-query-source-authorization", + "in": "header", + "description": "Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.", + "required": false, "type": "string", - "description": "The name of the alias to retrieve." + "x-ms-client-name": "querySourceAuthorization" }, { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "retrievalRequest", + "in": "body", + "description": "The retrieval request to process.", + "required": true, + "schema": { + "$ref": "#/definitions/KnowledgeBaseRetrievalRequest" + } } ], - "x-ms-request-id": "request-id", "responses": { "200": { - "description": "", + "description": "Successful retrieval response.", "schema": { - "$ref": "#/definitions/SearchAlias" + "$ref": "#/definitions/KnowledgeBaseRetrievalResponse" + } + }, + "206": { + "description": "Partial retrieval response.", + "schema": { + "$ref": "#/definitions/KnowledgeBaseRetrievalResponse" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "KnowledgeBaseRetrieve": { + "$ref": "./examples/KnowledgeBaseRetrieve.json" + }, + "KnowledgeBaseRetrieveWithIntents": { + "$ref": "./examples/KnowledgeBaseRetrieveWithIntents.json" + } } } }, - "/servicestats": { + "/knowledgesources": { "get": { - "tags": [ - "Service" + "operationId": "KnowledgeSources_List", + "description": "Lists all knowledge sources available for a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } ], - "operationId": "GetServiceStatistics", - "x-ms-examples": { - "SearchServiceGetServiceStatistics": { - "$ref": "./examples/SearchServiceGetServiceStatistics.json" + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListKnowledgeSourcesResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } } }, - "description": "Gets service level statistics for a search service.", + "x-ms-examples": { + "SearchServiceListKnowledgeSources": { + "$ref": "./examples/SearchServiceListKnowledgeSources.json" + }, + "SearchServiceListKnowledgeSourcesAzureBlob": { + "$ref": "./examples/SearchServiceListKnowledgeSourcesAzureBlob.json" + }, + "SearchServiceListKnowledgeSourcesIndexedOneLake": { + "$ref": "./examples/SearchServiceListKnowledgeSourcesIndexedOneLake.json" + }, + "SearchServiceListKnowledgeSourcesIndexedSharePoint": { + "$ref": "./examples/SearchServiceListKnowledgeSourcesIndexedSharePoint.json" + }, + "SearchServiceListKnowledgeSourcesWeb": { + "$ref": "./examples/SearchServiceListKnowledgeSourcesWeb.json" + } + } + }, + "post": { + "operationId": "KnowledgeSources_Create", + "description": "Creates a new knowledge source.", "parameters": [ { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "knowledgeSource", + "in": "body", + "description": "The definition of the knowledge source to create.", + "required": true, + "schema": { + "$ref": "#/definitions/KnowledgeSource" + } } ], - "x-ms-request-id": "request-id", "responses": { - "200": { - "description": "", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "schema": { - "$ref": "#/definitions/ServiceStatistics" + "$ref": "#/definitions/KnowledgeSource" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "SearchServiceCreateKnowledgeSource": { + "$ref": "./examples/SearchServiceCreateKnowledgeSource.json" + }, + "SearchServiceCreateKnowledgeSourceAzureBlob": { + "$ref": "./examples/SearchServiceCreateKnowledgeSourceAzureBlob.json" + }, + "SearchServiceCreateKnowledgeSourceIndexedOneLake": { + "$ref": "./examples/SearchServiceCreateKnowledgeSourceIndexedOneLake.json" + }, + "SearchServiceCreateKnowledgeSourceIndexedSharePoint": { + "$ref": "./examples/SearchServiceCreateKnowledgeSourceIndexedSharePoint.json" + }, + "SearchServiceCreateKnowledgeSourceWeb": { + "$ref": "./examples/SearchServiceCreateKnowledgeSourceWeb.json" + } } } }, - "/indexstats": { + "/knowledgesources('{sourceName}')": { "get": { - "tags": [ - "Service" - ], - "operationId": "GetIndexStatsSummary", - "x-ms-examples": { - "SearchServiceIndexStatsSummary": { - "$ref": "./examples/SearchServiceGetIndexStatsSummary.json" - } - }, - "description": "Retrieves a summary of statistics for all indexes in the search service.", + "operationId": "KnowledgeSources_Get", + "description": "Retrieves a knowledge source definition.", "parameters": [ { - "$ref": "#/parameters/ClientRequestIdParameter" + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "sourceName", + "in": "path", + "description": "The name of the knowledge source.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } ], "responses": { "200": { - "description": "Statistics summary for all indexes.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/ListIndexStatsSummary" + "$ref": "#/definitions/KnowledgeSource" } }, "default": { - "description": "Error response.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" + "$ref": "#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": null - } - } - } - }, - "definitions": { - "KnowledgeBase": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the knowledge knowledge base." - }, - "knowledgeSources": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeSourceReference" - } - }, - "models": { - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBaseModel" + "x-ms-examples": { + "SearchServiceGetKnowledgeSource": { + "$ref": "./examples/SearchServiceGetKnowledgeSource.json" }, - "description": "Contains configuration options on how to connect to AI models." - }, - "retrievalReasoningEffort": { - "$ref": "knowledgebase.json#/definitions/KnowledgeRetrievalReasoningEffort" - }, - "outputMode": { - "$ref": "knowledgebase.json#/definitions/KnowledgeRetrievalOutputMode" - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the knowledge base." - }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your knowledge base definition when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your knowledge base definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your knowledge base definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" + "SearchServiceGetKnowledgeSourceAzureBlob": { + "$ref": "./examples/SearchServiceGetKnowledgeSourceAzureBlob.json" }, - "x-nullable": true - }, - "description": { - "type": "string", - "description": "The description of the knowledge base." - }, - "retrievalInstructions": { - "type": "string", - "description": "Instructions considered by the knowledge knowledge base when developing query plan." - }, - "answerInstructions": { - "type": "string", - "description": "Instructions considered by the knowledge knowledge base when generating answers." - } - }, - "required": [ - "name", - "knowledgeSources" - ] - }, - "KnowledgeSourceReference": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the knowledge source." - } - }, - "required": [ - "name" - ] - }, - "ListKnowledgeBasesResult": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "KnowledgeBases", - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeBase" + "SearchServiceGetKnowledgeSourceIndexedOneLake": { + "$ref": "./examples/SearchServiceGetKnowledgeSourceIndexedOneLake.json" + }, + "SearchServiceGetKnowledgeSourceIndexedSharePoint": { + "$ref": "./examples/SearchServiceGetKnowledgeSourceIndexedSharePoint.json" + }, + "SearchServiceGetKnowledgeSourceWeb": { + "$ref": "./examples/SearchServiceGetKnowledgeSourceWeb.json" } } }, - "required": [ - "value" - ] - }, - "KnowledgeBaseModel": { - "type": "object", - "discriminator": "kind", - "properties": { - "kind": { - "$ref": "#/definitions/KnowledgeBaseModelKind", - "description": "The type of AI model.", - "x-nullable": false - } - }, - "required": [ - "kind" - ], - "description": "Specifies the connection parameters for the model to use for query planning." - }, - "KnowledgeBaseModelKind": { - "type": "string", - "enum": [ - "azureOpenAI" - ], - "x-ms-enum": { - "name": "KnowledgeBaseModelKind", - "modelAsString": true, - "values": [ + "put": { + "operationId": "KnowledgeSources_CreateOrUpdate", + "description": "Creates a new knowledge source or updates an knowledge source if it already exists.", + "parameters": [ { - "value": "azureOpenAI", - "name": "AzureOpenAI", - "description": "Use Azure Open AI models for query planning." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, + "type": "string", + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "sourceName", + "in": "path", + "description": "The name of the knowledge source.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + }, + { + "name": "knowledgeSource", + "in": "body", + "description": "The definition of the knowledge source to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/KnowledgeSource" + } } - ] - }, - "description": "The AI model to be used for query planning." - }, - "KnowledgeBaseAzureOpenAIModel": { - "type": "object", - "x-ms-discriminator-value": "azureOpenAI", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeBaseModel" - } - ], - "properties": { - "azureOpenAIParameters": { - "x-ms-client-name": "AzureOpenAIParameters", - "$ref": "#/definitions/AzureOpenAIParameters", - "description": "Contains the parameters specific to Azure OpenAI model endpoint." - } - }, - "required": [ - "azureOpenAIParameters" - ], - "description": "Specifies the Azure OpenAI resource used to do query planning." - }, - "KnowledgeSource": { - "type": "object", - "discriminator": "kind", - "properties": { - "name": { - "type": "string", - "description": "The name of the knowledge source." - }, - "description": { - "type": "string", - "description": "Optional user-defined description." - }, - "kind": { - "$ref": "#/definitions/KnowledgeSourceKind", - "x-nullable": false, - "description": "The type of the knowledge source." - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the knowledge base." - }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your knowledge base definition when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your knowledge base definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your knowledge base definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/KnowledgeSource" + } }, - "x-nullable": true - } - }, - "required": [ - "name", - "kind" - ], - "description": "Represents a knowledge source definition." - }, - "SearchIndexKnowledgeSource": { - "type": "object", - "x-ms-discriminator-value": "searchIndex", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSource" - } - ], - "properties": { - "searchIndexParameters": { - "$ref": "#/definitions/SearchIndexKnowledgeSourceParameters", - "description": "The parameters for the knowledge source." - } - }, - "required": [ - "searchIndexParameters" - ], - "description": "Knowledge Source targeting a search index." - }, - "SearchIndexKnowledgeSourceParameters": { - "type": "object", - "properties": { - "searchIndexName": { - "type": "string", - "description": "The name of the Search index." - }, - "sourceDataFields": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexFieldReference" + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/KnowledgeSource" + } }, - "description": "Used to request additional fields for referenced source data." + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "searchFields": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexFieldReference" + "x-ms-examples": { + "SearchServiceCreateOrUpdateKnowledgeSource": { + "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSource.json" }, - "description": "Used to restrict which fields to search on the search index." - }, - "semanticConfigurationName": { - "type": "string", - "description": "Used to specify a different semantic configuration on the target search index other than the default one." + "SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob": { + "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json" + }, + "SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake": { + "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedOneLake.json" + }, + "SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint": { + "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceIndexedSharePoint.json" + }, + "SearchServiceCreateOrUpdateKnowledgeSourceWeb": { + "$ref": "./examples/SearchServiceCreateOrUpdateKnowledgeSourceWeb.json" + } } }, - "required": [ - "searchIndexName" - ], - "description": "Parameters for search index knowledge source." - }, - "SearchIndexFieldReference": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - }, - "AzureBlobKnowledgeSource": { - "type": "object", - "x-ms-discriminator-value": "azureBlob", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSource" - } - ], - "properties": { - "azureBlobParameters": { - "$ref": "#/definitions/AzureBlobKnowledgeSourceParameters", - "description": "The type of the knowledge source." - } - }, - "required": [ - "azureBlobParameters" - ], - "description": "Configuration for Azure Blob Storage knowledge source." - }, - "AzureBlobKnowledgeSourceParameters": { - "type": "object", - "properties": { - "connectionString": { - "type": "string", - "description": "Key-based connection string or the ResourceId format if using a managed identity." - }, - "containerName": { - "type": "string", - "description": "The name of the blob storage container." - }, - "folderPath": { - "type": "string", - "description": "Optional folder path within the container.", - "x-nullable": true - }, - "isADLSGen2": { - "type": "boolean", - "description": "Set to true if connecting to an ADLS Gen2 storage account. Default is false.", - "default": false - }, - "ingestionParameters": { - "$ref": "#/definitions/KnowledgeSourceIngestionParameters", - "description": "Consolidates all general ingestion settings.", - "x-nullable": true + "delete": { + "operationId": "KnowledgeSources_Delete", + "description": "Deletes an existing knowledge source.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "sourceName", + "in": "path", + "description": "The name of the knowledge source.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "404": { + "description": "The server cannot find the requested resource." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "createdResources": { - "$ref": "#/definitions/CreatedResources", - "description": "Resources created by the knowledge source.", - "readOnly": true + "x-ms-examples": { + "SearchServiceDeleteKnowledgeSource": { + "$ref": "./examples/SearchServiceDeleteKnowledgeSource.json" + }, + "SearchServiceDeleteKnowledgeSourceAzureBlob": { + "$ref": "./examples/SearchServiceDeleteKnowledgeSourceAzureBlob.json" + }, + "SearchServiceDeleteKnowledgeSourceIndexedOneLake": { + "$ref": "./examples/SearchServiceDeleteKnowledgeSourceIndexedOneLake.json" + }, + "SearchServiceDeleteKnowledgeSourceIndexedSharePoint": { + "$ref": "./examples/SearchServiceDeleteKnowledgeSourceIndexedSharePoint.json" + }, + "SearchServiceDeleteKnowledgeSourceWeb": { + "$ref": "./examples/SearchServiceDeleteKnowledgeSourceWeb.json" + } } - }, - "required": [ - "connectionString", - "containerName" - ], - "description": "Parameters for Azure Blob Storage knowledge source." + } }, - "IndexedSharePointKnowledgeSource": { - "type": "object", - "x-ms-discriminator-value": "indexedSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSource" - } - ], - "properties": { - "indexedSharePointParameters": { - "$ref": "#/definitions/IndexedSharePointKnowledgeSourceParameters", - "description": "The parameters for the SharePoint knowledge source." + "/knowledgesources('{sourceName}')/status": { + "get": { + "operationId": "KnowledgeSources_GetStatus", + "description": "Retrieves the status of a knowledge source.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "sourceName", + "in": "path", + "description": "The name of the knowledge source.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/KnowledgeSourceStatus" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceGetKnowledgeSourceStatus": { + "$ref": "./examples/SearchServiceGetKnowledgeSourceStatus.json" + } } - }, - "required": [ - "indexedSharePointParameters" - ], - "description": "Configuration for SharePoint knowledge source." + } }, - "IndexedSharePointKnowledgeSourceParameters": { - "type": "object", - "properties": { - "connectionString": { - "type": "string", - "description": "SharePoint connection string with format: SharePointOnlineEndpoint=[SharePoint site url];ApplicationId=[Azure AD App ID];ApplicationSecret=[Azure AD App client secret];TenantId=[SharePoint site tenant id]" - }, - "containerName": { - "type": "string", - "enum": [ - "defaultSiteLibrary", - "allSiteLibraries", - "useQuery" - ], - "x-ms-enum": { - "name": "IndexedSharePointContainerName", - "modelAsString": true, - "values": [ - { - "value": "defaultSiteLibrary", - "name": "DefaultSiteLibrary", - "description": "Index content from the site's default document library." - }, - { - "value": "allSiteLibraries", - "name": "AllSiteLibraries", - "description": "Index content from every document library in the site." - }, - { - "value": "useQuery", - "name": "UseQuery", - "description": "Index only content that matches the query specified in the knowledge source." - } - ] + "/servicestats": { + "get": { + "operationId": "GetServiceStatistics", + "description": "Gets service level statistics for a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, - "description": "Specifies which SharePoint libraries to access." - }, - "query": { - "type": "string", - "description": "Optional query to filter SharePoint content.", - "x-nullable": true - }, - "ingestionParameters": { - "$ref": "#/definitions/KnowledgeSourceIngestionParameters", - "description": "Consolidates all general ingestion settings.", - "x-nullable": true + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SearchServiceStatistics" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "createdResources": { - "$ref": "#/definitions/CreatedResources", - "description": "Resources created by the knowledge source.", - "readOnly": true + "x-ms-examples": { + "SearchServiceGetS3HDUnlimitedServiceStatistics": { + "$ref": "./examples/SearchServiceGetS3HDUnlimitedServiceStatistics.json" + }, + "SearchServiceGetServiceStatistics": { + "$ref": "./examples/SearchServiceGetServiceStatistics.json" + } } - }, - "required": [ - "connectionString", - "containerName" - ], - "description": "Parameters for SharePoint knowledge source." + } }, - "IndexedOneLakeKnowledgeSource": { - "type": "object", - "x-ms-discriminator-value": "indexedOneLake", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSource" - } - ], - "properties": { - "indexedOneLakeParameters": { - "$ref": "#/definitions/IndexedOneLakeKnowledgeSourceParameters", - "description": "The parameters for the OneLake knowledge source." + "/skillsets": { + "get": { + "operationId": "Skillsets_List", + "description": "List all skillsets in a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "$select", + "in": "query", + "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", + "required": false, + "type": "string", + "format": "ArrayEncoding.commaDelimited" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListSkillsetsResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceListSkillsets": { + "$ref": "./examples/SearchServiceListSkillsets.json" + } } }, - "required": [ - "indexedOneLakeParameters" - ], - "description": "Configuration for OneLake knowledge source." - }, - "IndexedOneLakeKnowledgeSourceParameters": { - "type": "object", - "properties": { - "fabricWorkspaceId": { - "type": "string", - "description": "OneLake workspace ID." - }, - "lakehouseId": { - "type": "string", - "description": "Specifies which OneLake lakehouse to access." - }, - "targetPath": { - "type": "string", - "description": "Optional OneLakehouse folder or shortcut to filter OneLake content.", - "x-nullable": true - }, - "ingestionParameters": { - "$ref": "#/definitions/KnowledgeSourceIngestionParameters", - "description": "Consolidates all general ingestion settings.", - "x-nullable": true + "post": { + "operationId": "Skillsets_Create", + "description": "Creates a new skillset in a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "skillset", + "in": "body", + "description": "The skillset containing one or more skills to create in a search service.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndexerSkillset" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SearchIndexerSkillset" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "createdResources": { - "$ref": "#/definitions/CreatedResources", - "description": "Resources created by the knowledge source.", - "readOnly": true + "x-ms-examples": { + "SearchServiceCreateSkillset": { + "$ref": "./examples/SearchServiceCreateSkillset.json" + } } - }, - "required": [ - "fabricWorkspaceId", - "lakehouseId" - ], - "description": "Parameters for OneLake knowledge source." + } }, - "KnowledgeSourceIngestionParameters": { - "type": "object", - "properties": { - "identity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "An explicit identity to use for this knowledge source." - }, - "embeddingModel": { - "$ref": "#/definitions/KnowledgeSourceVectorizer", - "description": "Optional vectorizer configuration for vectorizing content.", - "x-nullable": true - }, - "chatCompletionModel": { - "$ref": "#/definitions/KnowledgeBaseModel", - "description": "Optional chat completion model for image verbalization or context extraction.", - "x-nullable": true - }, - "disableImageVerbalization": { - "type": "boolean", - "description": "Indicates whether image verbalization should be disabled. Default is false.", - "default": false - }, - "ingestionSchedule": { - "$ref": "#/definitions/IndexingSchedule", - "description": "Optional schedule for data ingestion.", - "x-nullable": true + "/skillsets('{skillsetName}')": { + "get": { + "operationId": "Skillsets_Get", + "description": "Retrieves a skillset in a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "skillsetName", + "in": "path", + "description": "The name of the skillset.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SearchIndexerSkillset" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "ingestionPermissionOptions": { - "type": "array", - "items": { + "x-ms-examples": { + "SearchServiceGetSkillset": { + "$ref": "./examples/SearchServiceGetSkillset.json" + } + } + }, + "put": { + "operationId": "Skillsets_CreateOrUpdate", + "description": "Creates a new skillset in a search service or updates the skillset if it already exists.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, "type": "string", "enum": [ - "userIds", - "groupIds", - "rbacScope" + "return=representation" ], "x-ms-enum": { - "name": "KnowledgeSourceIngestionPermissionOption", - "modelAsString": true, - "values": [ - { - "value": "userIds", - "name": "UserIds", - "description": "Ingest explicit user identifiers alongside document content." - }, - { - "value": "groupIds", - "name": "GroupIds", - "description": "Ingest group identifiers alongside document content." - }, - { - "value": "rbacScope", - "name": "RbacScope", - "description": "Ingest RBAC scope information alongside document content." - } - ] + "modelAsString": false + }, + "x-ms-client-name": "prefer" + }, + { + "name": "ignoreResetRequirements", + "in": "query", + "description": "Ignores cache reset requirements.", + "required": false, + "type": "boolean", + "x-ms-client-name": "skipIndexerResetRequirementForCache" + }, + { + "name": "disableCacheReprocessingChangeDetection", + "in": "query", + "description": "Disables cache reprocessing change detection.", + "required": false, + "type": "boolean" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "skillsetName", + "in": "path", + "description": "The name of the skillset.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + }, + { + "name": "skillset", + "in": "body", + "description": "The skillset containing one or more skills to create or update in a search service.", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIndexerSkillset" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SearchIndexerSkillset" } }, - "description": "Optional list of permission types to ingest together with document content. If specified, it will set the indexer permission options for the data source.", - "x-nullable": true - }, - "contentExtractionMode": { - "type": "string", - "enum": [ - "minimal", - "standard" - ], - "x-ms-enum": { - "name": "KnowledgeSourceContentExtractionMode", - "modelAsString": true, - "values": [ - { - "value": "minimal", - "name": "Minimal", - "description": "Extracts only essential metadata while deferring most content processing." - }, - { - "value": "standard", - "name": "Standard", - "description": "Performs the full default content extraction pipeline." - } - ] + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SearchIndexerSkillset" + } }, - "description": "Optional content extraction mode. Default is 'minimal'.", - "default": "minimal", - "x-nullable": true - }, - "aiServices": { - "$ref": "#/definitions/AIServices", - "description": "Optional AI Services configuration for content processing.", - "x-nullable": true - } - }, - "description": "Consolidates all general ingestion settings for knowledge sources." - }, - "AIServices": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "format": "uri", - "description": "The URI of the AI Services endpoint." + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "apiKey": { - "type": "string", - "description": "The API key for accessing AI Services." - } - }, - "required": [ - "uri" - ], - "description": "Parameters for Azure Blob Storage knowledge source." - }, - "WebKnowledgeSource": { - "type": "object", - "x-ms-discriminator-value": "web", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSource" - } - ], - "properties": { - "webParameters": { - "$ref": "#/definitions/WebKnowledgeSourceParameters", - "description": "The parameters for the web knowledge source." + "x-ms-examples": { + "SearchServiceCreateOrUpdateSkillset": { + "$ref": "./examples/SearchServiceCreateOrUpdateSkillset.json" + } } }, - "description": "Knowledge Source targeting web results." - }, - "WebKnowledgeSourceParameters": { - "type": "object", - "properties": { - "domains": { - "$ref": "#/definitions/WebKnowledgeSourceDomains", - "description": "Domain allow/block configuration for web results." - } - }, - "description": "Parameters for web knowledge source." - }, - "WebKnowledgeSourceDomains": { - "type": "object", - "properties": { - "allowedDomains": { - "type": "array", - "items": { - "$ref": "#/definitions/WebKnowledgeSourceDomain" + "delete": { + "operationId": "Skillsets_Delete", + "description": "Deletes a skillset in a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, - "description": "Domains that are allowed for web results" - }, - "blockedDomains": { - "type": "array", - "items": { - "$ref": "#/definitions/WebKnowledgeSourceDomain" + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" }, - "description": "Domains that are blocked from web results" - } - }, - "description": "Domain allow/block configuration for web knowledge source." - }, - "WebKnowledgeSourceDomain": { - "type": "object", - "properties": { - "address": { - "type": "string", - "description": "The address of the domain." + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "skillsetName", + "in": "path", + "description": "The name of the skillset.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "404": { + "description": "The server cannot find the requested resource." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "includeSubpages": { - "type": "boolean", - "description": "Whether or not to include subpages from this domain." + "x-ms-examples": { + "SearchServiceDeleteSkillset": { + "$ref": "./examples/SearchServiceDeleteSkillset.json" + } } - }, - "required": [ - "address" - ], - "description": "Configuration for web knowledge source domain." + } }, - "RemoteSharePointKnowledgeSource": { - "type": "object", - "x-ms-discriminator-value": "remoteSharePoint", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSource" - } - ], - "properties": { - "remoteSharePointParameters": { - "$ref": "#/definitions/RemoteSharePointKnowledgeSourceParameters", - "description": "The parameters for the knowledge source." + "/skillsets('{skillsetName}')/search.resetskills": { + "post": { + "operationId": "Skillsets_ResetSkills", + "description": "Reset an existing skillset in a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "skillsetName", + "in": "path", + "description": "The name of the skillset.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + }, + { + "name": "skillNames", + "in": "body", + "description": "The names of the skills to reset. If not specified, all skills in the skillset will be reset.", + "required": true, + "schema": { + "$ref": "#/definitions/SkillNames" + } + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceResetSkills": { + "$ref": "./examples/SearchServiceResetSkills.json" + } } - }, - "description": "Configuration for remote SharePoint knowledge source." + } }, - "RemoteSharePointKnowledgeSourceParameters": { - "type": "object", - "properties": { - "filterExpression": { - "type": "string", - "description": "Keyword Query Language (KQL) expression with queryable SharePoint properties and attributes to scope the retrieval before the query runs. See documentation: https://learn.microsoft.com/en-us/sharepoint/dev/general-development/keyword-query-language-kql-syntax-reference" - }, - "resourceMetadata": { - "type": "array", - "items": { - "type": "string" + "/synonymmaps": { + "get": { + "operationId": "SynonymMaps_List", + "description": "Lists all synonym maps available for a search service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "$select", + "in": "query", + "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", + "required": false, + "type": "string", + "format": "ArrayEncoding.commaDelimited" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListSynonymMapsResult" + } }, - "description": "A list of metadata fields to be returned for each item in the response. Only retrievable metadata properties can be included in this list. By default, no metadata is returned. Optional." + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } }, - "containerTypeId": { - "type": "string", - "description": "Container ID for SharePoint Embedded connection. When this is null, it will use SharePoint Online." + "x-ms-examples": { + "SearchServiceListSynonymMaps": { + "$ref": "./examples/SearchServiceListSynonymMaps.json" + } } }, - "description": "Parameters for remote SharePoint knowledge source." - }, - "KnowledgeSourceKind": { - "type": "string", - "enum": [ - "searchIndex", - "azureBlob", - "web", - "remoteSharePoint", - "indexedSharePoint", - "indexedOneLake" - ], - "x-ms-enum": { - "name": "KnowledgeSourceKind", - "modelAsString": true, - "values": [ + "post": { + "operationId": "SynonymMaps_Create", + "description": "Creates a new synonym map.", + "parameters": [ { - "value": "searchIndex", - "name": "SearchIndex", - "description": "A knowledge source that retrieves data from a Search Index." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "value": "azureBlob", - "name": "AzureBlob", - "description": "A knowledge source that retrieves and ingests data from Azure Blob Storage to a Search Index." + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "value": "web", - "name": "Web", - "description": "A knowledge source that retrieves data from the web." + "name": "synonymMap", + "in": "body", + "description": "The definition of the synonym map to create.", + "required": true, + "schema": { + "$ref": "#/definitions/SynonymMap" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SynonymMap" + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceCreateSynonymMap": { + "$ref": "./examples/SearchServiceCreateSynonymMap.json" + } + } + } + }, + "/synonymmaps('{synonymMapName}')": { + "get": { + "operationId": "SynonymMaps_Get", + "description": "Retrieves a synonym map definition.", + "parameters": [ { - "value": "remoteSharePoint", - "name": "RemoteSharePoint", - "description": "A knowledge source that retrieves data from a remote SharePoint endpoint." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "value": "indexedSharePoint", - "name": "IndexedSharePoint", - "description": "A knowledge source that retrieves and ingests data from SharePoint to a Search Index." + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "value": "indexedOneLake", - "name": "IndexedOneLake", - "description": "A knowledge source that retrieves and ingests data from OneLake to a Search Index." + "name": "synonymMapName", + "in": "path", + "description": "The name of the synonym map.", + "required": true, + "type": "string", + "x-ms-client-name": "name" } - ] - }, - "description": "The kind of the knowledge source." - }, - "ListKnowledgeSourcesResult": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "KnowledgeSources", - "type": "array", - "items": { - "$ref": "#/definitions/KnowledgeSource" + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SynonymMap" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceGetSynonymMap": { + "$ref": "./examples/SearchServiceGetSynonymMap.json" } } }, - "required": [ - "value" - ] - }, - "CreatedResources": { - "type": "object", - "additionalProperties": { - "type": "string", - "description": "The name of the created resource." + "put": { + "operationId": "SynonymMaps_CreateOrUpdate", + "description": "Creates a new synonym map or updates a synonym map if it already exists.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "Prefer", + "in": "header", + "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "required": true, + "type": "string", + "enum": [ + "return=representation" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "prefer" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "synonymMapName", + "in": "path", + "description": "The name of the synonym map.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + }, + { + "name": "synonymMap", + "in": "body", + "description": "The definition of the synonym map to create or update.", + "required": true, + "schema": { + "$ref": "#/definitions/SynonymMap" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SynonymMap" + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/SynonymMap" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceCreateOrUpdateSynonymMap": { + "$ref": "./examples/SearchServiceCreateOrUpdateSynonymMap.json" + } + } }, - "description": "Resources created by the knowledge source. Keys represent resource types (e.g., 'datasource', 'indexer', 'skillset', 'index') and values represent resource names." + "delete": { + "operationId": "SynonymMaps_Delete", + "description": "Deletes a synonym map.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "If-Match", + "in": "header", + "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "synonymMapName", + "in": "path", + "description": "The name of the synonym map.", + "required": true, + "type": "string", + "x-ms-client-name": "name" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " + }, + "404": { + "description": "The server cannot find the requested resource." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SearchServiceDeleteSynonymMap": { + "$ref": "./examples/SearchServiceDeleteSynonymMap.json" + } + } + } + } + }, + "definitions": { + "AIFoundryModelCatalogName": { + "type": "string", + "description": "The name of the embedding model from the Azure AI Foundry Catalog that will be called.", + "enum": [ + "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32", + "OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336", + "Facebook-DinoV2-Image-Embeddings-ViT-Base", + "Facebook-DinoV2-Image-Embeddings-ViT-Giant", + "Cohere-embed-v3-english", + "Cohere-embed-v3-multilingual", + "Cohere-embed-v4" + ], + "x-ms-enum": { + "name": "AIFoundryModelCatalogName", + "modelAsString": true, + "values": [ + { + "name": "OpenAICLIPImageTextEmbeddingsVitBasePatch32", + "value": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32", + "description": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32" + }, + { + "name": "OpenAICLIPImageTextEmbeddingsViTLargePatch14336", + "value": "OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336", + "description": "OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336" + }, + { + "name": "FacebookDinoV2ImageEmbeddingsViTBase", + "value": "Facebook-DinoV2-Image-Embeddings-ViT-Base", + "description": "Facebook-DinoV2-Image-Embeddings-ViT-Base" + }, + { + "name": "FacebookDinoV2ImageEmbeddingsViTGiant", + "value": "Facebook-DinoV2-Image-Embeddings-ViT-Giant", + "description": "Facebook-DinoV2-Image-Embeddings-ViT-Giant" + }, + { + "name": "CohereEmbedV3English", + "value": "Cohere-embed-v3-english", + "description": "Cohere-embed-v3-english" + }, + { + "name": "CohereEmbedV3Multilingual", + "value": "Cohere-embed-v3-multilingual", + "description": "Cohere-embed-v3-multilingual" + }, + { + "name": "CohereEmbedV4", + "value": "Cohere-embed-v4", + "description": "Cohere embed v4 model for generating embeddings from both text and images." + } + ] + } }, - "KnowledgeSourceStatus": { + "AIServices": { "type": "object", + "description": "Parameters for AI Services.", "properties": { - "synchronizationStatus": { + "uri": { "type": "string", - "enum": [ - "creating", - "active", - "deleting" - ], - "x-ms-enum": { - "name": "KnowledgeSourceSynchronizationStatus", - "modelAsString": true, - "values": [ - { - "value": "creating", - "name": "Creating", - "description": "The knowledge source is being provisioned." - }, - { - "value": "active", - "name": "Active", - "description": "The knowledge source is active and synchronization runs are occurring." - }, - { - "value": "deleting", - "name": "Deleting", - "description": "The knowledge source is being deleted and synchronization is paused." - } - ] - }, - "description": "The current synchronization status of the knowledge source." + "format": "uri", + "description": "The URI of the AI Services endpoint." }, - "synchronizationInterval": { + "apiKey": { "type": "string", - "description": "The synchronization interval (e.g., '1d' for daily). Null if no schedule is configured.", - "x-nullable": true - }, - "currentSynchronizationState": { - "$ref": "#/definitions/SynchronizationState", - "description": "Current synchronization state that spans multiple indexer runs.", - "x-nullable": true - }, - "lastSynchronizationState": { - "$ref": "#/definitions/CompletedSynchronizationState", - "description": "Details of the last completed synchronization. Null on first sync.", - "x-nullable": true - }, - "statistics": { - "$ref": "#/definitions/KnowledgeSourceStatistics", - "description": "Statistical information about the knowledge source synchronization history. Null on first sync.", - "x-nullable": true + "description": "The API key for accessing AI Services." } }, "required": [ - "synchronizationStatus" - ], - "description": "Represents the status and synchronization history of a knowledge source." + "uri" + ] }, - "KnowledgeSourceStatistics": { + "AIServicesAccountIdentity": { "type": "object", + "description": "The multi-region account of an Azure AI service resource that's attached to a skillset.", "properties": { - "totalSynchronization": { - "type": "integer", - "format": "int32", - "description": "The total number of synchronizations completed." + "identity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for connections to AI Service. If not specified, the system-assigned managed identity is used. On updates to the skillset, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true }, - "averageSynchronizationDuration": { + "subdomainUrl": { "type": "string", - "description": "The average duration of synchronizations in HH:MM:SS format." - }, - "averageItemsProcessedPerSynchronization": { - "type": "integer", - "format": "int32", - "description": "The average number of items processed per synchronization." + "description": "The subdomain url for the corresponding AI Service." } }, "required": [ - "totalSynchronization", - "averageSynchronizationDuration", - "averageItemsProcessedPerSynchronization" + "subdomainUrl" + ], + "allOf": [ + { + "$ref": "#/definitions/CognitiveServicesAccount" + } ], - "description": "Statistical information about knowledge source synchronization history." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.AIServicesByIdentity" }, - "SynchronizationState": { + "AIServicesAccountKey": { "type": "object", + "description": "The account key of an Azure AI service resource that's attached to a skillset, to be used with the resource's subdomain.", "properties": { - "startTime": { + "key": { "type": "string", - "format": "date-time", - "description": "The start time of the current synchronization." - }, - "itemsUpdatesProcessed": { - "type": "integer", - "format": "int32", - "description": "The number of item updates successfully processed in the current synchronization." - }, - "itemsUpdatesFailed": { - "type": "integer", - "format": "int32", - "description": "The number of item updates that failed in the current synchronization." + "description": "The key used to provision the Azure AI service resource attached to a skillset." }, - "itemsSkipped": { - "type": "integer", - "format": "int32", - "description": "The number of items skipped in the current synchronization." + "subdomainUrl": { + "type": "string", + "description": "The subdomain url for the corresponding AI Service." } }, "required": [ - "startTime", - "itemsUpdatesProcessed", - "itemsUpdatesFailed", - "itemsSkipped" + "key", + "subdomainUrl" + ], + "allOf": [ + { + "$ref": "#/definitions/CognitiveServicesAccount" + } ], - "description": "Represents the current state of an ongoing synchronization that spans multiple indexer runs." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.AIServicesByKey" }, - "CompletedSynchronizationState": { + "AIServicesVisionParameters": { "type": "object", + "description": "Specifies the AI Services Vision parameters for vectorizing a query image or text.", "properties": { - "startTime": { + "modelVersion": { "type": "string", - "format": "date-time", - "description": "The start time of the last completed synchronization." + "description": "The version of the model to use when calling the AI Services Vision service. It will default to the latest available when not specified.", + "x-nullable": true }, - "endTime": { + "resourceUri": { "type": "string", - "format": "date-time", - "description": "The end time of the last completed synchronization." + "format": "uri", + "description": "The resource URI of the AI Services resource." }, - "itemsUpdatesProcessed": { - "type": "integer", - "format": "int32", - "description": "The number of item updates successfully processed in the last synchronization." + "apiKey": { + "type": "string", + "description": "API key of the designated AI Services resource." }, - "itemsUpdatesFailed": { - "type": "integer", - "format": "int32", - "description": "The number of item updates that failed in the last synchronization." + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the index, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true + } + }, + "required": [ + "modelVersion", + "resourceUri" + ] + }, + "AIServicesVisionVectorizer": { + "type": "object", + "description": "Clears the identity property of a datasource.", + "properties": { + "aiServicesVisionParameters": { + "$ref": "#/definitions/AIServicesVisionParameters", + "description": "Contains the parameters specific to AI Services Vision embedding vectorization." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorSearchVectorizer" + } + ], + "x-ms-discriminator-value": "aiServicesVision" + }, + "AMLParameters": { + "type": "object", + "description": "Specifies the properties for connecting to an AML vectorizer.", + "properties": { + "uri": { + "type": "string", + "format": "uri", + "description": "(Required for no authentication or key authentication) The scoring URI of the AML service to which the JSON payload will be sent. Only the https URI scheme is allowed.", + "x-nullable": true }, - "itemsSkipped": { - "type": "integer", - "format": "int32", - "description": "The number of items skipped in the last synchronization." + "key": { + "type": "string", + "description": "(Required for key authentication) The key for the AML service.", + "x-nullable": true + }, + "resourceId": { + "type": "string", + "description": "(Required for token authentication). The Azure Resource Manager resource ID of the AML service. It should be in the format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/services/{service_name}.", + "x-nullable": true + }, + "timeout": { + "type": "string", + "format": "duration", + "description": "(Optional) When specified, indicates the timeout for the http client making the API call.", + "x-nullable": true + }, + "region": { + "type": "string", + "description": "(Optional for token authentication). The region the AML service is deployed in.", + "x-nullable": true + }, + "modelName": { + "$ref": "#/definitions/AIFoundryModelCatalogName", + "description": "The name of the embedding model from the Azure AI Foundry Catalog that is deployed at the provided endpoint." } }, "required": [ - "startTime", - "endTime", - "itemsUpdatesProcessed", - "itemsUpdatesFailed", - "itemsSkipped" + "uri" + ] + }, + "AMLVectorizer": { + "type": "object", + "description": "Specifies an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog for generating the vector embedding of a query string.", + "properties": { + "amlParameters": { + "$ref": "#/definitions/AMLParameters", + "description": "Specifies the properties of the AML vectorizer." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorSearchVectorizer" + } ], - "description": "Represents the completed state of the last synchronization." + "x-ms-discriminator-value": "aml" }, "AnalyzeRequest": { "type": "object", + "description": "Specifies some text and analysis components used to break that text into tokens.", "properties": { "text": { "type": "string", @@ -3596,70 +3731,65 @@ }, "tokenFilters": { "type": "array", + "description": "An optional list of token filters to use when breaking the given text. This parameter can only be set when using the tokenizer parameter.", "items": { - "$ref": "#/definitions/TokenFilterName", - "x-nullable": false - }, - "description": "An optional list of token filters to use when breaking the given text. This parameter can only be set when using the tokenizer parameter." + "$ref": "#/definitions/TokenFilterName" + } }, "charFilters": { "type": "array", + "description": "An optional list of character filters to use when breaking the given text. This parameter can only be set when using the tokenizer parameter.", "items": { - "$ref": "#/definitions/CharFilterName", - "x-nullable": false - }, - "description": "An optional list of character filters to use when breaking the given text. This parameter can only be set when using the tokenizer parameter." + "$ref": "#/definitions/CharFilterName" + } } }, "required": [ "text" - ], - "description": "Specifies some text and analysis components used to break that text into tokens." + ] }, "AnalyzeResult": { "type": "object", + "description": "The result of testing an analyzer on text.", "properties": { "tokens": { "type": "array", + "description": "The list of tokens returned by the analyzer specified in the request.", "items": { "$ref": "#/definitions/AnalyzedTokenInfo" - }, - "description": "The list of tokens returned by the analyzer specified in the request." + } } }, "required": [ "tokens" - ], - "description": "The result of testing an analyzer on text." + ] }, "AnalyzedTokenInfo": { "type": "object", + "description": "Information about a token returned by an analyzer.", "properties": { "token": { "type": "string", - "readOnly": true, - "description": "The token returned by the analyzer." + "description": "The token returned by the analyzer.", + "readOnly": true }, "startOffset": { "type": "integer", "format": "int32", - "readOnly": true, - "x-nullable": false, - "description": "The index of the first character of the token in the input text." + "description": "The index of the first character of the token in the input text.", + "readOnly": true }, "endOffset": { "type": "integer", "format": "int32", - "readOnly": true, - "x-nullable": false, - "description": "The index of the last character of the token in the input text." + "description": "The index of the last character of the token in the input text.", + "readOnly": true }, "position": { "type": "integer", "format": "int32", - "readOnly": true, - "x-nullable": false, - "description": "The position of the token in the input text relative to other tokens. The first token in the input text has position 0, the next has position 1, and so on. Depending on the analyzer used, some tokens might have the same position, for example if they are synonyms of each other." + "description": "The position of the token in the input text relative to other tokens. The first token in the input text has position 0, the next has position 1, and so on. Depending on the analyzer used, some tokens might have the same position, for example if they are synonyms of each other.", + "readOnly": true } }, "required": [ @@ -3667,11741 +3797,17445 @@ "startOffset", "endOffset", "position" + ] + }, + "AsciiFoldingTokenFilter": { + "type": "object", + "description": "Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. This token filter is implemented using Apache Lucene.", + "properties": { + "preserveOriginal": { + "type": "boolean", + "description": "A value indicating whether the original token will be kept. Default is false.", + "default": false + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } ], - "description": "Information about a token returned by an analyzer." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter" }, - "LexicalAnalyzerName": { + "AutocompleteItem": { + "type": "object", + "description": "The result of Autocomplete requests.", + "properties": { + "text": { + "type": "string", + "description": "The completed term.", + "readOnly": true + }, + "queryPlusText": { + "type": "string", + "description": "The query along with the completed term.", + "readOnly": true + } + }, + "required": [ + "text", + "queryPlusText" + ] + }, + "AutocompleteMode": { "type": "string", + "description": "Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context in producing autocomplete terms.", "enum": [ - "ar.microsoft", - "ar.lucene", - "hy.lucene", - "bn.microsoft", - "eu.lucene", - "bg.microsoft", - "bg.lucene", - "ca.microsoft", - "ca.lucene", - "zh-Hans.microsoft", - "zh-Hans.lucene", - "zh-Hant.microsoft", - "zh-Hant.lucene", - "hr.microsoft", - "cs.microsoft", - "cs.lucene", - "da.microsoft", - "da.lucene", - "nl.microsoft", - "nl.lucene", - "en.microsoft", - "en.lucene", - "et.microsoft", - "fi.microsoft", - "fi.lucene", - "fr.microsoft", - "fr.lucene", - "gl.lucene", - "de.microsoft", - "de.lucene", - "el.microsoft", - "el.lucene", - "gu.microsoft", - "he.microsoft", - "hi.microsoft", - "hi.lucene", - "hu.microsoft", - "hu.lucene", - "is.microsoft", - "id.microsoft", - "id.lucene", - "ga.lucene", - "it.microsoft", - "it.lucene", - "ja.microsoft", - "ja.lucene", - "kn.microsoft", - "ko.microsoft", - "ko.lucene", - "lv.microsoft", - "lv.lucene", - "lt.microsoft", - "ml.microsoft", - "ms.microsoft", - "mr.microsoft", - "nb.microsoft", - "no.lucene", - "fa.lucene", - "pl.microsoft", - "pl.lucene", - "pt-BR.microsoft", - "pt-BR.lucene", - "pt-PT.microsoft", - "pt-PT.lucene", - "pa.microsoft", - "ro.microsoft", - "ro.lucene", - "ru.microsoft", - "ru.lucene", - "sr-cyrillic.microsoft", - "sr-latin.microsoft", - "sk.microsoft", - "sl.microsoft", - "es.microsoft", - "es.lucene", - "sv.microsoft", - "sv.lucene", - "ta.microsoft", - "te.microsoft", - "th.microsoft", - "th.lucene", - "tr.microsoft", - "tr.lucene", - "uk.microsoft", - "ur.microsoft", - "vi.microsoft", - "standard.lucene", - "standardasciifolding.lucene", - "keyword", - "pattern", - "simple", - "stop", - "whitespace" + "oneTerm", + "twoTerms", + "oneTermWithContext" ], "x-ms-enum": { - "name": "LexicalAnalyzerName", + "name": "AutocompleteMode", "modelAsString": true, "values": [ { - "value": "ar.microsoft", - "name": "ArMicrosoft", - "description": "Microsoft analyzer for Arabic." - }, - { - "value": "ar.lucene", - "name": "ArLucene", - "description": "Lucene analyzer for Arabic." - }, - { - "value": "hy.lucene", - "name": "HyLucene", - "description": "Lucene analyzer for Armenian." - }, - { - "value": "bn.microsoft", - "name": "BnMicrosoft", - "description": "Microsoft analyzer for Bangla." + "name": "OneTerm", + "value": "oneTerm", + "description": "Only one term is suggested. If the query has two terms, only the last term is completed. For example, if the input is 'washington medic', the suggested terms could include 'medicaid', 'medicare', and 'medicine'." }, { - "value": "eu.lucene", - "name": "EuLucene", - "description": "Lucene analyzer for Basque." + "name": "TwoTerms", + "value": "twoTerms", + "description": "Matching two-term phrases in the index will be suggested. For example, if the input is 'medic', the suggested terms could include 'medicare coverage' and 'medical assistant'." }, { - "value": "bg.microsoft", - "name": "BgMicrosoft", - "description": "Microsoft analyzer for Bulgarian." + "name": "OneTermWithContext", + "value": "oneTermWithContext", + "description": "Completes the last term in a query with two or more terms, where the last two terms are a phrase that exists in the index. For example, if the input is 'washington medic', the suggested terms could include 'washington medicaid' and 'washington medical'." + } + ] + } + }, + "AutocompleteRequest": { + "type": "object", + "description": "Parameters for fuzzy matching, and other autocomplete query behaviors.", + "properties": { + "search": { + "type": "string", + "description": "The search text on which to base autocomplete results." + }, + "autocompleteMode": { + "$ref": "#/definitions/AutocompleteMode", + "description": "Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context while producing auto-completed terms." + }, + "filter": { + "type": "string", + "description": "An OData expression that filters the documents used to produce completed terms for the Autocomplete result." + }, + "fuzzy": { + "type": "boolean", + "description": "A value indicating whether to use fuzzy matching for the autocomplete query. Default is false. When set to true, the query will autocomplete terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy autocomplete queries are slower and consume more resources." + }, + "highlightPostTag": { + "type": "string", + "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting is disabled." + }, + "highlightPreTag": { + "type": "string", + "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting is disabled." + }, + "minimumCoverage": { + "type": "number", + "format": "double", + "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by an autocomplete query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80." + }, + "searchFields": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester." + }, + "suggesterName": { + "type": "string", + "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition." + }, + "top": { + "type": "integer", + "format": "int32", + "description": "The number of auto-completed terms to retrieve. This must be a value between 1 and 100. The default is 5." + } + }, + "required": [ + "search", + "suggesterName" + ] + }, + "AutocompleteResult": { + "type": "object", + "description": "The result of Autocomplete query.", + "properties": { + "@search.coverage": { + "type": "number", + "format": "double", + "description": "A value indicating the percentage of the index that was considered by the autocomplete request, or null if minimumCoverage was not specified in the request.", + "readOnly": true, + "x-ms-client-name": "coverage" + }, + "value": { + "type": "array", + "description": "The list of returned Autocompleted items.", + "items": { + "$ref": "#/definitions/AutocompleteItem" }, + "readOnly": true + } + }, + "required": [ + "value" + ] + }, + "AzureActiveDirectoryApplicationCredentials": { + "type": "object", + "description": "Credentials of a registered application created for your search service, used for authenticated access to the encryption keys stored in Azure Key Vault.", + "properties": { + "applicationId": { + "type": "string", + "description": "An AAD Application ID that was granted the required access permissions to the Azure Key Vault that is to be used when encrypting your data at rest. The Application ID should not be confused with the Object ID for your AAD Application." + }, + "applicationSecret": { + "type": "string", + "description": "The authentication key of the specified AAD application." + } + }, + "required": [ + "applicationId" + ] + }, + "AzureBlobKnowledgeSource": { + "type": "object", + "description": "Configuration for Azure Blob Storage knowledge source.", + "properties": { + "azureBlobParameters": { + "$ref": "#/definitions/AzureBlobKnowledgeSourceParameters", + "description": "The type of the knowledge source." + } + }, + "required": [ + "azureBlobParameters" + ], + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSource" + } + ], + "x-ms-discriminator-value": "azureBlob" + }, + "AzureBlobKnowledgeSourceParameters": { + "type": "object", + "description": "Parameters for Azure Blob Storage knowledge source.", + "properties": { + "connectionString": { + "type": "string", + "description": "Key-based connection string or the ResourceId format if using a managed identity." + }, + "containerName": { + "type": "string", + "description": "The name of the blob storage container." + }, + "folderPath": { + "type": "string", + "description": "Optional folder path within the container.", + "x-nullable": true + }, + "isADLSGen2": { + "type": "boolean", + "description": "Set to true if connecting to an ADLS Gen2 storage account. Default is false.", + "default": false + }, + "ingestionParameters": { + "$ref": "#/definitions/KnowledgeSourceIngestionParameters", + "description": "Consolidates all general ingestion settings.", + "x-nullable": true + }, + "createdResources": { + "$ref": "#/definitions/CreatedResources", + "description": "Resources created by the knowledge source.", + "readOnly": true + } + }, + "required": [ + "connectionString", + "containerName" + ] + }, + "AzureBlobKnowledgeSourceParams": { + "type": "object", + "description": "Specifies runtime parameters for a azure blob knowledge source", + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSourceParams" + } + ], + "x-ms-discriminator-value": "azureBlob" + }, + "AzureMachineLearningSkill": { + "type": "object", + "description": "The AML skill allows you to extend AI enrichment with a custom Azure Machine Learning (AML) model. Once an AML model is trained and deployed, an AML skill integrates it into AI enrichment.", + "properties": { + "uri": { + "type": "string", + "format": "uri", + "description": "(Required for no authentication or key authentication) The scoring URI of the AML service to which the JSON payload will be sent. Only the https URI scheme is allowed.", + "x-nullable": true + }, + "key": { + "type": "string", + "description": "(Required for key authentication) The key for the AML service.", + "x-nullable": true + }, + "resourceId": { + "type": "string", + "description": "(Required for token authentication). The Azure Resource Manager resource ID of the AML service. It should be in the format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/services/{service_name}.", + "x-nullable": true + }, + "timeout": { + "type": "string", + "format": "duration", + "description": "(Optional) When specified, indicates the timeout for the http client making the API call.", + "x-nullable": true + }, + "region": { + "type": "string", + "description": "(Optional for token authentication). The region the AML service is deployed in.", + "x-nullable": true + }, + "degreeOfParallelism": { + "type": "integer", + "format": "int32", + "description": "(Optional) When specified, indicates the number of calls the indexer will make in parallel to the endpoint you have provided. You can decrease this value if your endpoint is failing under too high of a request load, or raise it if your endpoint is able to accept more requests and you would like an increase in the performance of the indexer. If not set, a default value of 5 is used. The degreeOfParallelism can be set to a maximum of 10 and a minimum of 1.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Custom.AmlSkill" + }, + "AzureOpenAIEmbeddingSkill": { + "type": "object", + "description": "Allows you to generate a vector embedding for a given text input using the Azure OpenAI resource.", + "properties": { + "resourceUri": { + "type": "string", + "format": "uri", + "description": "The resource URI of the Azure OpenAI resource." + }, + "deploymentId": { + "type": "string", + "description": "ID of the Azure OpenAI model deployment on the designated resource." + }, + "apiKey": { + "type": "string", + "description": "API key of the designated Azure OpenAI resource." + }, + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections." + }, + "modelName": { + "$ref": "#/definitions/AzureOpenAIModelName", + "description": "The name of the embedding model that is deployed at the provided deploymentId path." + }, + "dimensions": { + "type": "integer", + "format": "int32", + "description": "The number of dimensions the resulting output embeddings should have. Only supported in text-embedding-3 and later models.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill" + }, + "AzureOpenAIModelName": { + "type": "string", + "description": "The Azure Open AI model name that will be called.", + "enum": [ + "text-embedding-ada-002", + "text-embedding-3-large", + "text-embedding-3-small", + "gpt-4o", + "gpt-4o-mini", + "gpt-4.1", + "gpt-4.1-mini", + "gpt-4.1-nano", + "gpt-5", + "gpt-5-mini", + "gpt-5-nano" + ], + "x-ms-enum": { + "name": "AzureOpenAIModelName", + "modelAsString": true, + "values": [ { - "value": "bg.lucene", - "name": "BgLucene", - "description": "Lucene analyzer for Bulgarian." + "name": "TextEmbeddingAda002", + "value": "text-embedding-ada-002", + "description": "TextEmbeddingAda002 model." }, { - "value": "ca.microsoft", - "name": "CaMicrosoft", - "description": "Microsoft analyzer for Catalan." + "name": "TextEmbedding3Large", + "value": "text-embedding-3-large", + "description": "TextEmbedding3Large model." }, { - "value": "ca.lucene", - "name": "CaLucene", - "description": "Lucene analyzer for Catalan." + "name": "TextEmbedding3Small", + "value": "text-embedding-3-small", + "description": "TextEmbedding3Small model." }, { - "value": "zh-Hans.microsoft", - "name": "ZhHansMicrosoft", - "description": "Microsoft analyzer for Chinese (Simplified)." + "name": "Gpt4o", + "value": "gpt-4o", + "description": "Gpt4o model." }, { - "value": "zh-Hans.lucene", - "name": "ZhHansLucene", - "description": "Lucene analyzer for Chinese (Simplified)." + "name": "Gpt4oMini", + "value": "gpt-4o-mini", + "description": "Gpt4oMini model." }, { - "value": "zh-Hant.microsoft", - "name": "ZhHantMicrosoft", - "description": "Microsoft analyzer for Chinese (Traditional)." + "name": "Gpt41", + "value": "gpt-4.1", + "description": "Gpt41 model." }, { - "value": "zh-Hant.lucene", - "name": "ZhHantLucene", - "description": "Lucene analyzer for Chinese (Traditional)." + "name": "Gpt41Mini", + "value": "gpt-4.1-mini", + "description": "Gpt41Mini model." }, { - "value": "hr.microsoft", - "name": "HrMicrosoft", - "description": "Microsoft analyzer for Croatian." + "name": "Gpt41Nano", + "value": "gpt-4.1-nano", + "description": "Gpt41Nano model." }, { - "value": "cs.microsoft", - "name": "CsMicrosoft", - "description": "Microsoft analyzer for Czech." + "name": "Gpt5", + "value": "gpt-5", + "description": "Gpt5 model." }, { - "value": "cs.lucene", - "name": "CsLucene", - "description": "Lucene analyzer for Czech." + "name": "Gpt5Mini", + "value": "gpt-5-mini", + "description": "Gpt5Mini model." }, { - "value": "da.microsoft", - "name": "DaMicrosoft", - "description": "Microsoft analyzer for Danish." - }, + "name": "Gpt5Nano", + "value": "gpt-5-nano", + "description": "Gpt5Nano model." + } + ] + } + }, + "AzureOpenAITokenizerParameters": { + "type": "object", + "description": "Azure OpenAI Tokenizer parameters.", + "properties": { + "encoderModelName": { + "$ref": "#/definitions/SplitSkillEncoderModelName", + "description": "Only applies if the unit is set to azureOpenAITokens. Options include 'R50k_base', 'P50k_base', 'P50k_edit' and 'CL100k_base'. The default value is 'CL100k_base'.", + "x-nullable": true + }, + "allowedSpecialTokens": { + "type": "array", + "description": "(Optional) Only applies if the unit is set to azureOpenAITokens. This parameter defines a collection of special tokens that are permitted within the tokenization process.", + "items": { + "type": "string" + } + } + } + }, + "AzureOpenAIVectorizer": { + "type": "object", + "description": "Specifies the Azure OpenAI resource used to vectorize a query string.", + "properties": { + "azureOpenAIParameters": { + "$ref": "#/definitions/AzureOpenAIVectorizerParameters", + "description": "Contains the parameters specific to Azure OpenAI embedding vectorization." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorSearchVectorizer" + } + ], + "x-ms-discriminator-value": "azureOpenAI" + }, + "AzureOpenAIVectorizerParameters": { + "type": "object", + "description": "Specifies the parameters for connecting to the Azure OpenAI resource.", + "properties": { + "resourceUri": { + "type": "string", + "format": "uri", + "description": "The resource URI of the Azure OpenAI resource." + }, + "deploymentId": { + "type": "string", + "description": "ID of the Azure OpenAI model deployment on the designated resource." + }, + "apiKey": { + "type": "string", + "description": "API key of the designated Azure OpenAI resource." + }, + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections." + }, + "modelName": { + "$ref": "#/definitions/AzureOpenAIModelName", + "description": "The name of the embedding model that is deployed at the provided deploymentId path." + } + } + }, + "AzureOpenAiParameters": { + "type": "object", + "description": "Specifies the parameters for connecting to the Azure OpenAI resource.", + "properties": { + "resourceUri": { + "type": "string", + "format": "uri", + "description": "The resource URI of the Azure OpenAI resource." + }, + "deploymentId": { + "type": "string", + "description": "ID of the Azure OpenAI model deployment on the designated resource." + }, + "apiKey": { + "type": "string", + "description": "API key of the designated Azure OpenAI resource." + }, + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections.", + "x-nullable": true + }, + "modelName": { + "$ref": "#/definitions/AzureOpenAIModelName", + "description": "The name of the embedding model that is deployed at the provided deploymentId path." + } + } + }, + "BM25SimilarityAlgorithm": { + "type": "object", + "description": "Ranking function based on the Okapi BM25 similarity algorithm. BM25 is a TF-IDF-like algorithm that includes length normalization (controlled by the 'b' parameter) as well as term frequency saturation (controlled by the 'k1' parameter).", + "properties": { + "k1": { + "type": "number", + "format": "double", + "description": "This property controls the scaling function between the term frequency of each matching terms and the final relevance score of a document-query pair. By default, a value of 1.2 is used. A value of 0.0 means the score does not scale with an increase in term frequency.", + "x-nullable": true + }, + "b": { + "type": "number", + "format": "double", + "description": "This property controls how the length of a document affects the relevance score. By default, a value of 0.75 is used. A value of 0.0 means no length normalization is applied, while a value of 1.0 means the score is fully normalized by the length of the document.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SimilarityAlgorithm" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.BM25Similarity" + }, + "BinaryQuantizationCompression": { + "type": "object", + "description": "Contains configuration options specific to the binary quantization compression method used during indexing and querying.", + "allOf": [ + { + "$ref": "#/definitions/VectorSearchCompression" + } + ], + "x-ms-discriminator-value": "binaryQuantization" + }, + "BlobIndexerDataToExtract": { + "type": "string", + "description": "Specifies the data to extract from Azure blob storage and tells the indexer which data to extract from image content when \"imageAction\" is set to a value other than \"none\". This applies to embedded image content in a .PDF or other application, or image files such as .jpg and .png, in Azure blobs.", + "enum": [ + "storageMetadata", + "allMetadata", + "contentAndMetadata" + ], + "x-ms-enum": { + "name": "BlobIndexerDataToExtract", + "modelAsString": true, + "values": [ { - "value": "da.lucene", - "name": "DaLucene", - "description": "Lucene analyzer for Danish." + "name": "StorageMetadata", + "value": "storageMetadata", + "description": "Indexes just the standard blob properties and user-specified metadata." }, { - "value": "nl.microsoft", - "name": "NlMicrosoft", - "description": "Microsoft analyzer for Dutch." + "name": "AllMetadata", + "value": "allMetadata", + "description": "Extracts metadata provided by the Azure blob storage subsystem and the content-type specific metadata (for example, metadata unique to just .png files are indexed)." }, { - "value": "nl.lucene", - "name": "NlLucene", - "description": "Lucene analyzer for Dutch." - }, + "name": "ContentAndMetadata", + "value": "contentAndMetadata", + "description": "Extracts all metadata and textual content from each blob." + } + ] + } + }, + "BlobIndexerImageAction": { + "type": "string", + "description": "Determines how to process embedded images and image files in Azure blob storage. Setting the \"imageAction\" configuration to any value other than \"none\" requires that a skillset also be attached to that indexer.", + "enum": [ + "none", + "generateNormalizedImages", + "generateNormalizedImagePerPage" + ], + "x-ms-enum": { + "name": "BlobIndexerImageAction", + "modelAsString": true, + "values": [ { - "value": "en.microsoft", - "name": "EnMicrosoft", - "description": "Microsoft analyzer for English." + "name": "None", + "value": "none", + "description": "Ignores embedded images or image files in the data set. This is the default." }, { - "value": "en.lucene", - "name": "EnLucene", - "description": "Lucene analyzer for English." + "name": "GenerateNormalizedImages", + "value": "generateNormalizedImages", + "description": "Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field. This action requires that \"dataToExtract\" is set to \"contentAndMetadata\". A normalized image refers to additional processing resulting in uniform image output, sized and rotated to promote consistent rendering when you include images in visual search results. This information is generated for each image when you use this option." }, { - "value": "et.microsoft", - "name": "EtMicrosoft", - "description": "Microsoft analyzer for Estonian." - }, + "name": "GenerateNormalizedImagePerPage", + "value": "generateNormalizedImagePerPage", + "description": "Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field, but treats PDF files differently in that each page will be rendered as an image and normalized accordingly, instead of extracting embedded images. Non-PDF file types will be treated the same as if \"generateNormalizedImages\" was set." + } + ] + } + }, + "BlobIndexerPDFTextRotationAlgorithm": { + "type": "string", + "description": "Determines algorithm for text extraction from PDF files in Azure blob storage.", + "enum": [ + "none", + "detectAngles" + ], + "x-ms-enum": { + "name": "BlobIndexerPDFTextRotationAlgorithm", + "modelAsString": true, + "values": [ { - "value": "fi.microsoft", - "name": "FiMicrosoft", - "description": "Microsoft analyzer for Finnish." + "name": "None", + "value": "none", + "description": "Leverages normal text extraction. This is the default." }, { - "value": "fi.lucene", - "name": "FiLucene", - "description": "Lucene analyzer for Finnish." - }, + "name": "DetectAngles", + "value": "detectAngles", + "description": "May produce better and more readable text extraction from PDF files that have rotated text within them. Note that there may be a small performance speed impact when this parameter is used. This parameter only applies to PDF files, and only to PDFs with embedded text. If the rotated text appears within an embedded image in the PDF, this parameter does not apply." + } + ] + } + }, + "BlobIndexerParsingMode": { + "type": "string", + "description": "Represents the parsing mode for indexing from an Azure blob data source.", + "enum": [ + "default", + "text", + "delimitedText", + "json", + "jsonArray", + "jsonLines", + "markdown" + ], + "x-ms-enum": { + "name": "BlobIndexerParsingMode", + "modelAsString": true, + "values": [ { - "value": "fr.microsoft", - "name": "FrMicrosoft", - "description": "Microsoft analyzer for French." + "name": "Default", + "value": "default", + "description": "Set to default for normal file processing." }, { - "value": "fr.lucene", - "name": "FrLucene", - "description": "Lucene analyzer for French." + "name": "Text", + "value": "text", + "description": "Set to text to improve indexing performance on plain text files in blob storage." }, { - "value": "gl.lucene", - "name": "GlLucene", - "description": "Lucene analyzer for Galician." + "name": "DelimitedText", + "value": "delimitedText", + "description": "Set to delimitedText when blobs are plain CSV files." }, { - "value": "de.microsoft", - "name": "DeMicrosoft", - "description": "Microsoft analyzer for German." + "name": "Json", + "value": "json", + "description": "Set to json to extract structured content from JSON files." }, { - "value": "de.lucene", - "name": "DeLucene", - "description": "Lucene analyzer for German." + "name": "JsonArray", + "value": "jsonArray", + "description": "Set to jsonArray to extract individual elements of a JSON array as separate documents." }, { - "value": "el.microsoft", - "name": "ElMicrosoft", - "description": "Microsoft analyzer for Greek." + "name": "JsonLines", + "value": "jsonLines", + "description": "Set to jsonLines to extract individual JSON entities, separated by a new line, as separate documents." }, { - "value": "el.lucene", - "name": "ElLucene", - "description": "Lucene analyzer for Greek." - }, - { - "value": "gu.microsoft", - "name": "GuMicrosoft", - "description": "Microsoft analyzer for Gujarati." - }, - { - "value": "he.microsoft", - "name": "HeMicrosoft", - "description": "Microsoft analyzer for Hebrew." - }, - { - "value": "hi.microsoft", - "name": "HiMicrosoft", - "description": "Microsoft analyzer for Hindi." - }, - { - "value": "hi.lucene", - "name": "HiLucene", - "description": "Lucene analyzer for Hindi." - }, - { - "value": "hu.microsoft", - "name": "HuMicrosoft", - "description": "Microsoft analyzer for Hungarian." - }, - { - "value": "hu.lucene", - "name": "HuLucene", - "description": "Lucene analyzer for Hungarian." - }, - { - "value": "is.microsoft", - "name": "IsMicrosoft", - "description": "Microsoft analyzer for Icelandic." - }, - { - "value": "id.microsoft", - "name": "IdMicrosoft", - "description": "Microsoft analyzer for Indonesian (Bahasa)." - }, - { - "value": "id.lucene", - "name": "IdLucene", - "description": "Lucene analyzer for Indonesian." - }, - { - "value": "ga.lucene", - "name": "GaLucene", - "description": "Lucene analyzer for Irish." - }, - { - "value": "it.microsoft", - "name": "ItMicrosoft", - "description": "Microsoft analyzer for Italian." - }, - { - "value": "it.lucene", - "name": "ItLucene", - "description": "Lucene analyzer for Italian." - }, - { - "value": "ja.microsoft", - "name": "JaMicrosoft", - "description": "Microsoft analyzer for Japanese." - }, - { - "value": "ja.lucene", - "name": "JaLucene", - "description": "Lucene analyzer for Japanese." - }, - { - "value": "kn.microsoft", - "name": "KnMicrosoft", - "description": "Microsoft analyzer for Kannada." - }, - { - "value": "ko.microsoft", - "name": "KoMicrosoft", - "description": "Microsoft analyzer for Korean." - }, - { - "value": "ko.lucene", - "name": "KoLucene", - "description": "Lucene analyzer for Korean." - }, + "name": "Markdown", + "value": "markdown", + "description": "Set to markdown to extract content from markdown files." + } + ] + } + }, + "CharFilter": { + "type": "object", + "description": "Base type for character filters.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + }, + "name": { + "type": "string", + "description": "The name of the char filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type", + "name" + ] + }, + "CharFilterName": { + "type": "string", + "description": "Defines the names of all character filters supported by the search engine.", + "enum": [ + "html_strip" + ], + "x-ms-enum": { + "name": "CharFilterName", + "modelAsString": true, + "values": [ { - "value": "lv.microsoft", - "name": "LvMicrosoft", - "description": "Microsoft analyzer for Latvian." - }, + "name": "HtmlStrip", + "value": "html_strip", + "description": "A character filter that attempts to strip out HTML constructs. See https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.html" + } + ] + } + }, + "ChatCompletionCommonModelParameters": { + "type": "object", + "description": "Common language model parameters for Chat Completions. If omitted, default values are used.", + "properties": { + "model": { + "type": "string", + "description": "The name of the model to use (e.g., 'gpt-4o', etc.). Default is null if not specified.", + "default": null, + "x-nullable": true, + "x-ms-client-name": "modelName" + }, + "frequencyPenalty": { + "type": "number", + "format": "double", + "description": "A float in the range [-2,2] that reduces or increases likelihood of repeated tokens. Default is 0.", + "default": 0, + "x-nullable": true + }, + "presencePenalty": { + "type": "number", + "format": "double", + "description": "A float in the range [-2,2] that penalizes new tokens based on their existing presence. Default is 0.", + "default": 0, + "x-nullable": true + }, + "maxTokens": { + "type": "integer", + "format": "int32", + "description": "Maximum number of tokens to generate.", + "x-nullable": true + }, + "temperature": { + "type": "number", + "format": "double", + "description": "Sampling temperature. Default is 0.7.", + "default": 0.7, + "x-nullable": true + }, + "seed": { + "type": "integer", + "format": "int32", + "description": "Random seed for controlling deterministic outputs. If omitted, randomization is used.", + "x-nullable": true + }, + "stop": { + "type": "array", + "description": "List of stop sequences that will cut off text generation. Default is none.", + "x-nullable": true, + "items": { + "type": "string" + } + } + } + }, + "ChatCompletionExtraParametersBehavior": { + "type": "string", + "description": "Specifies how 'extraParameters' should be handled by Azure AI Foundry. Defaults to 'error'.", + "enum": [ + "pass-through", + "drop", + "error" + ], + "x-ms-enum": { + "name": "ChatCompletionExtraParametersBehavior", + "modelAsString": true, + "values": [ { - "value": "lv.lucene", - "name": "LvLucene", - "description": "Lucene analyzer for Latvian." + "name": "PassThrough", + "value": "pass-through", + "description": "Passes any extra parameters directly to the model." }, { - "value": "lt.microsoft", - "name": "LtMicrosoft", - "description": "Microsoft analyzer for Lithuanian." + "name": "Drop", + "value": "drop", + "description": "Drops all extra parameters." }, { - "value": "ml.microsoft", - "name": "MlMicrosoft", - "description": "Microsoft analyzer for Malayalam." - }, + "name": "Error", + "value": "error", + "description": "Raises an error if any extra parameter is present." + } + ] + } + }, + "ChatCompletionResponseFormat": { + "type": "object", + "description": "Determines how the language model's response should be serialized. Defaults to 'text'.", + "properties": { + "type": { + "type": "string", + "description": "Specifies how the LLM should format the response.", + "default": "text", + "enum": [ + "text", + "jsonObject", + "jsonSchema" + ], + "x-ms-enum": { + "name": "ChatCompletionResponseFormatType", + "modelAsString": true, + "values": [ + { + "name": "Text", + "value": "text", + "description": "Plain text response format." + }, + { + "name": "JsonObject", + "value": "jsonObject", + "description": "Arbitrary JSON object response format." + }, + { + "name": "JsonSchema", + "value": "jsonSchema", + "description": "JSON schema-adhering response format." + } + ] + } + }, + "jsonSchemaProperties": { + "$ref": "#/definitions/ChatCompletionSchemaProperties", + "description": "An open dictionary for extended properties. Required if 'type' == 'json_schema'", + "x-nullable": true + } + } + }, + "ChatCompletionResponseFormatType": { + "type": "string", + "description": "Specifies how the LLM should format the response.", + "enum": [ + "text", + "jsonObject", + "jsonSchema" + ], + "x-ms-enum": { + "name": "ChatCompletionResponseFormatType", + "modelAsString": true, + "values": [ { - "value": "ms.microsoft", - "name": "MsMicrosoft", - "description": "Microsoft analyzer for Malay (Latin)." + "name": "Text", + "value": "text", + "description": "Plain text response format." }, { - "value": "mr.microsoft", - "name": "MrMicrosoft", - "description": "Microsoft analyzer for Marathi." + "name": "JsonObject", + "value": "jsonObject", + "description": "Arbitrary JSON object response format." }, { - "value": "nb.microsoft", - "name": "NbMicrosoft", - "description": "Microsoft analyzer for Norwegian (Bokmål)." - }, - { - "value": "no.lucene", - "name": "NoLucene", - "description": "Lucene analyzer for Norwegian." - }, - { - "value": "fa.lucene", - "name": "FaLucene", - "description": "Lucene analyzer for Persian." - }, - { - "value": "pl.microsoft", - "name": "PlMicrosoft", - "description": "Microsoft analyzer for Polish." - }, - { - "value": "pl.lucene", - "name": "PlLucene", - "description": "Lucene analyzer for Polish." - }, - { - "value": "pt-BR.microsoft", - "name": "PtBrMicrosoft", - "description": "Microsoft analyzer for Portuguese (Brazil)." - }, - { - "value": "pt-BR.lucene", - "name": "PtBrLucene", - "description": "Lucene analyzer for Portuguese (Brazil)." - }, - { - "value": "pt-PT.microsoft", - "name": "PtPtMicrosoft", - "description": "Microsoft analyzer for Portuguese (Portugal)." - }, - { - "value": "pt-PT.lucene", - "name": "PtPtLucene", - "description": "Lucene analyzer for Portuguese (Portugal)." - }, - { - "value": "pa.microsoft", - "name": "PaMicrosoft", - "description": "Microsoft analyzer for Punjabi." - }, - { - "value": "ro.microsoft", - "name": "RoMicrosoft", - "description": "Microsoft analyzer for Romanian." - }, - { - "value": "ro.lucene", - "name": "RoLucene", - "description": "Lucene analyzer for Romanian." - }, - { - "value": "ru.microsoft", - "name": "RuMicrosoft", - "description": "Microsoft analyzer for Russian." - }, - { - "value": "ru.lucene", - "name": "RuLucene", - "description": "Lucene analyzer for Russian." - }, - { - "value": "sr-cyrillic.microsoft", - "name": "SrCyrillicMicrosoft", - "description": "Microsoft analyzer for Serbian (Cyrillic)." - }, - { - "value": "sr-latin.microsoft", - "name": "SrLatinMicrosoft", - "description": "Microsoft analyzer for Serbian (Latin)." - }, - { - "value": "sk.microsoft", - "name": "SkMicrosoft", - "description": "Microsoft analyzer for Slovak." - }, + "name": "JsonSchema", + "value": "jsonSchema", + "description": "JSON schema-adhering response format." + } + ] + } + }, + "ChatCompletionSchema": { + "type": "object", + "description": "Object defining the custom schema the model will use to structure its output.", + "properties": { + "type": { + "type": "string", + "description": "Type of schema representation. Usually 'object'. Default is 'object'.", + "default": "object" + }, + "properties": { + "type": "string", + "description": "A JSON-formatted string that defines the output schema's properties and constraints for the model." + }, + "required": { + "type": "array", + "description": "An array of the property names that are required to be part of the model's response. All properties must be included for structured outputs.", + "items": { + "type": "string" + } + }, + "additionalProperties": { + "type": "boolean", + "description": "Controls whether it is allowable for an object to contain additional keys / values that were not defined in the JSON Schema. Default is false.", + "default": false + } + } + }, + "ChatCompletionSchemaProperties": { + "type": "object", + "description": "Properties for JSON schema response format.", + "properties": { + "name": { + "type": "string", + "description": "Name of the json schema the model will adhere to.", + "x-nullable": true + }, + "description": { + "type": "string", + "description": "Description of the json schema the model will adhere to.", + "x-nullable": true + }, + "strict": { + "type": "boolean", + "description": "Whether or not the model's response should use structured outputs. Default is true.", + "default": true + }, + "schema": { + "$ref": "#/definitions/ChatCompletionSchema", + "description": "The schema definition." + } + } + }, + "ChatCompletionSkill": { + "type": "object", + "description": "A skill that calls a language model via Azure AI Foundry's Chat Completions endpoint.", + "properties": { + "uri": { + "type": "string", + "description": "The url for the Web API." + }, + "httpHeaders": { + "$ref": "#/definitions/WebApiHttpHeaders", + "description": "The headers required to make the http request." + }, + "httpMethod": { + "type": "string", + "description": "The method for the http request." + }, + "timeout": { + "type": "string", + "format": "duration", + "description": "The desired timeout for the request. Default is 30 seconds." + }, + "batchSize": { + "type": "integer", + "format": "int32", + "description": "The desired batch size which indicates number of documents.", + "x-nullable": true + }, + "degreeOfParallelism": { + "type": "integer", + "format": "int32", + "description": "If set, the number of parallel calls that can be made to the Web API.", + "x-nullable": true + }, + "authResourceId": { + "type": "string", + "description": "Applies to custom skills that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the custom skill connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.", + "x-nullable": true + }, + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true + }, + "apiKey": { + "type": "string", + "description": "API key for authenticating to the model. Both apiKey and authIdentity cannot be specified at the same time." + }, + "commonModelParameters": { + "$ref": "#/definitions/ChatCompletionCommonModelParameters", + "description": "Common language model parameters that customers can tweak. If omitted, reasonable defaults will be applied." + }, + "extraParameters": { + "type": "object", + "description": "Open-type dictionary for model-specific parameters that should be appended to the chat completions call. Follows Azure AI Foundry's extensibility pattern.", + "x-nullable": true, + "additionalProperties": {} + }, + "extraParametersBehavior": { + "type": "string", + "description": "How extra parameters are handled by Azure AI Foundry. Default is 'error'.", + "default": "error", + "enum": [ + "pass-through", + "drop", + "error" + ], + "x-ms-enum": { + "name": "ChatCompletionExtraParametersBehavior", + "modelAsString": true, + "values": [ + { + "name": "PassThrough", + "value": "pass-through", + "description": "Passes any extra parameters directly to the model." + }, + { + "name": "Drop", + "value": "drop", + "description": "Drops all extra parameters." + }, + { + "name": "Error", + "value": "error", + "description": "Raises an error if any extra parameter is present." + } + ] + } + }, + "responseFormat": { + "$ref": "#/definitions/ChatCompletionResponseFormat", + "description": "Determines how the LLM should format its response. Defaults to 'text' response type." + } + }, + "required": [ + "uri" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Custom.ChatCompletionSkill" + }, + "CjkBigramTokenFilter": { + "type": "object", + "description": "Forms bigrams of CJK terms that are generated from the standard tokenizer. This token filter is implemented using Apache Lucene.", + "properties": { + "ignoreScripts": { + "type": "array", + "description": "The scripts to ignore.", + "items": { + "$ref": "#/definitions/CjkBigramTokenFilterScripts" + } + }, + "outputUnigrams": { + "type": "boolean", + "description": "A value indicating whether to output both unigrams and bigrams (if true), or just bigrams (if false). Default is false.", + "default": false + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.CjkBigramTokenFilter" + }, + "CjkBigramTokenFilterScripts": { + "type": "string", + "description": "Scripts that can be ignored by CjkBigramTokenFilter.", + "enum": [ + "han", + "hiragana", + "katakana", + "hangul" + ], + "x-ms-enum": { + "name": "CjkBigramTokenFilterScripts", + "modelAsString": true, + "values": [ { - "value": "sl.microsoft", - "name": "SlMicrosoft", - "description": "Microsoft analyzer for Slovenian." + "name": "Han", + "value": "han", + "description": "Ignore Han script when forming bigrams of CJK terms." }, { - "value": "es.microsoft", - "name": "EsMicrosoft", - "description": "Microsoft analyzer for Spanish." + "name": "Hiragana", + "value": "hiragana", + "description": "Ignore Hiragana script when forming bigrams of CJK terms." }, { - "value": "es.lucene", - "name": "EsLucene", - "description": "Lucene analyzer for Spanish." + "name": "Katakana", + "value": "katakana", + "description": "Ignore Katakana script when forming bigrams of CJK terms." }, { - "value": "sv.microsoft", - "name": "SvMicrosoft", - "description": "Microsoft analyzer for Swedish." - }, - { - "value": "sv.lucene", - "name": "SvLucene", - "description": "Lucene analyzer for Swedish." - }, - { - "value": "ta.microsoft", - "name": "TaMicrosoft", - "description": "Microsoft analyzer for Tamil." - }, - { - "value": "te.microsoft", - "name": "TeMicrosoft", - "description": "Microsoft analyzer for Telugu." - }, - { - "value": "th.microsoft", - "name": "ThMicrosoft", - "description": "Microsoft analyzer for Thai." - }, - { - "value": "th.lucene", - "name": "ThLucene", - "description": "Lucene analyzer for Thai." - }, - { - "value": "tr.microsoft", - "name": "TrMicrosoft", - "description": "Microsoft analyzer for Turkish." - }, - { - "value": "tr.lucene", - "name": "TrLucene", - "description": "Lucene analyzer for Turkish." - }, - { - "value": "uk.microsoft", - "name": "UkMicrosoft", - "description": "Microsoft analyzer for Ukrainian." - }, - { - "value": "ur.microsoft", - "name": "UrMicrosoft", - "description": "Microsoft analyzer for Urdu." - }, - { - "value": "vi.microsoft", - "name": "ViMicrosoft", - "description": "Microsoft analyzer for Vietnamese." - }, - { - "value": "standard.lucene", - "name": "StandardLucene", - "description": "Standard Lucene analyzer." - }, - { - "value": "standardasciifolding.lucene", - "name": "StandardAsciiFoldingLucene", - "description": "Standard ASCII Folding Lucene analyzer. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#Analyzers" - }, - { - "value": "keyword", - "name": "Keyword", - "description": "Treats the entire content of a field as a single token. This is useful for data like zip codes, ids, and some product names. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordAnalyzer.html" - }, - { - "value": "pattern", - "name": "Pattern", - "description": "Flexibly separates text into terms via a regular expression pattern. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/PatternAnalyzer.html" - }, - { - "value": "simple", - "name": "Simple", - "description": "Divides text at non-letters and converts them to lower case. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/SimpleAnalyzer.html" - }, - { - "value": "stop", - "name": "Stop", - "description": "Divides text at non-letters; Applies the lowercase and stopword token filters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopAnalyzer.html" - }, - { - "value": "whitespace", - "name": "Whitespace", - "description": "An analyzer that uses the whitespace tokenizer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/WhitespaceAnalyzer.html" + "name": "Hangul", + "value": "hangul", + "description": "Ignore Hangul script when forming bigrams of CJK terms." } ] - }, - "description": "Defines the names of all text analyzers supported by the search engine.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Language-support" } }, - "LexicalTokenizerName": { - "type": "string", - "enum": [ - "classic", - "edgeNGram", - "keyword_v2", - "letter", - "lowercase", - "microsoft_language_tokenizer", - "microsoft_language_stemming_tokenizer", - "nGram", - "path_hierarchy_v2", - "pattern", - "standard_v2", - "uax_url_email", - "whitespace" + "ClassicSimilarityAlgorithm": { + "type": "object", + "description": "Legacy similarity algorithm which uses the Lucene TFIDFSimilarity implementation of TF-IDF. This variation of TF-IDF introduces static document length normalization as well as coordinating factors that penalize documents that only partially match the searched queries.", + "allOf": [ + { + "$ref": "#/definitions/SimilarityAlgorithm" + } ], - "x-ms-enum": { - "name": "LexicalTokenizerName", - "modelAsString": true, - "values": [ - { - "value": "classic", - "name": "Classic", - "description": "Grammar-based tokenizer that is suitable for processing most European-language documents. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicTokenizer.html" - }, - { - "value": "edgeNGram", - "name": "EdgeNGram", - "description": "Tokenizes the input from an edge into n-grams of the given size(s). See https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.html" - }, - { - "value": "keyword_v2", - "name": "Keyword", - "description": "Emits the entire input as a single token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordTokenizer.html" - }, - { - "value": "letter", - "name": "Letter", - "description": "Divides text at non-letters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/LetterTokenizer.html" - }, - { - "value": "lowercase", - "name": "Lowercase", - "description": "Divides text at non-letters and converts them to lower case. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/LowerCaseTokenizer.html" - }, - { - "value": "microsoft_language_tokenizer", - "name": "MicrosoftLanguageTokenizer", - "description": "Divides text using language-specific rules." - }, - { - "value": "microsoft_language_stemming_tokenizer", - "name": "MicrosoftLanguageStemmingTokenizer", - "description": "Divides text using language-specific rules and reduces words to their base forms." - }, - { - "value": "nGram", - "name": "NGram", - "description": "Tokenizes the input into n-grams of the given size(s). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenizer.html" - }, - { - "value": "path_hierarchy_v2", - "name": "PathHierarchy", - "description": "Tokenizer for path-like hierarchies. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/path/PathHierarchyTokenizer.html" - }, - { - "value": "pattern", - "name": "Pattern", - "description": "Tokenizer that uses regex pattern matching to construct distinct tokens. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternTokenizer.html" - }, - { - "value": "standard_v2", - "name": "Standard", - "description": "Standard Lucene analyzer; Composed of the standard tokenizer, lowercase filter and stop filter. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/StandardTokenizer.html" - }, - { - "value": "uax_url_email", - "name": "UaxUrlEmail", - "description": "Tokenizes urls and emails as one token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizer.html" - }, - { - "value": "whitespace", - "name": "Whitespace", - "description": "Divides text at whitespace. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/WhitespaceTokenizer.html" - } - ] - }, - "description": "Defines the names of all tokenizers supported by the search engine.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } + "x-ms-discriminator-value": "#Microsoft.Azure.Search.ClassicSimilarity" }, - "TokenFilterName": { - "type": "string", - "enum": [ - "arabic_normalization", - "apostrophe", - "asciifolding", - "cjk_bigram", - "cjk_width", - "classic", - "common_grams", - "edgeNGram_v2", - "elision", - "german_normalization", - "hindi_normalization", - "indic_normalization", - "keyword_repeat", - "kstem", - "length", - "limit", - "lowercase", - "nGram_v2", - "persian_normalization", - "phonetic", - "porter_stem", - "reverse", - "scandinavian_normalization", - "scandinavian_folding", - "shingle", - "snowball", - "sorani_normalization", - "stemmer", - "stopwords", - "trim", - "truncate", - "unique", - "uppercase", - "word_delimiter" + "ClassicTokenizer": { + "type": "object", + "description": "Grammar-based tokenizer that is suitable for processing most European-language documents. This tokenizer is implemented using Apache Lucene.", + "properties": { + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.", + "default": 255, + "maximum": 300 + } + }, + "allOf": [ + { + "$ref": "#/definitions/LexicalTokenizer" + } ], - "x-ms-enum": { - "name": "TokenFilterName", - "modelAsString": true, - "values": [ - { - "value": "arabic_normalization", - "name": "ArabicNormalization", - "description": "A token filter that applies the Arabic normalizer to normalize the orthography. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ar/ArabicNormalizationFilter.html" - }, - { - "value": "apostrophe", - "name": "Apostrophe", - "description": "Strips all characters after an apostrophe (including the apostrophe itself). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/tr/ApostropheFilter.html" - }, - { - "value": "asciifolding", - "name": "AsciiFolding", - "description": "Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html" - }, - { - "value": "cjk_bigram", - "name": "CjkBigram", - "description": "Forms bigrams of CJK terms that are generated from the standard tokenizer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKBigramFilter.html" - }, - { - "value": "cjk_width", - "name": "CjkWidth", - "description": "Normalizes CJK width differences. Folds fullwidth ASCII variants into the equivalent basic Latin, and half-width Katakana variants into the equivalent Kana. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKWidthFilter.html" - }, - { - "value": "classic", - "name": "Classic", - "description": "Removes English possessives, and dots from acronyms. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicFilter.html" - }, - { - "value": "common_grams", - "name": "CommonGram", - "description": "Construct bigrams for frequently occurring terms while indexing. Single terms are still indexed too, with bigrams overlaid. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/commongrams/CommonGramsFilter.html" - }, - { - "value": "edgeNGram_v2", - "name": "EdgeNGram", - "description": "Generates n-grams of the given size(s) starting from the front or the back of an input token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.html" - }, - { - "value": "elision", - "name": "Elision", - "description": "Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html" - }, - { - "value": "german_normalization", - "name": "GermanNormalization", - "description": "Normalizes German characters according to the heuristics of the German2 snowball algorithm. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/de/GermanNormalizationFilter.html" - }, - { - "value": "hindi_normalization", - "name": "HindiNormalization", - "description": "Normalizes text in Hindi to remove some differences in spelling variations. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/hi/HindiNormalizationFilter.html" - }, - { - "value": "indic_normalization", - "name": "IndicNormalization", - "description": "Normalizes the Unicode representation of text in Indian languages. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/in/IndicNormalizationFilter.html" - }, - { - "value": "keyword_repeat", - "name": "KeywordRepeat", - "description": "Emits each incoming token twice, once as keyword and once as non-keyword. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/KeywordRepeatFilter.html" - }, - { - "value": "kstem", - "name": "KStem", - "description": "A high-performance kstem filter for English. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/en/KStemFilter.html" - }, - { - "value": "length", - "name": "Length", - "description": "Removes words that are too long or too short. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LengthFilter.html" - }, - { - "value": "limit", - "name": "Limit", - "description": "Limits the number of tokens while indexing. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LimitTokenCountFilter.html" - }, - { - "value": "lowercase", - "name": "Lowercase", - "description": "Normalizes token text to lower case. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/LowerCaseFilter.html" - }, - { - "value": "nGram_v2", - "name": "NGram", - "description": "Generates n-grams of the given size(s). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenFilter.html" - }, - { - "value": "persian_normalization", - "name": "PersianNormalization", - "description": "Applies normalization for Persian. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/fa/PersianNormalizationFilter.html" - }, - { - "value": "phonetic", - "name": "Phonetic", - "description": "Create tokens for phonetic matches. See https://lucene.apache.org/core/4_10_3/analyzers-phonetic/org/apache/lucene/analysis/phonetic/package-tree.html" - }, - { - "value": "porter_stem", - "name": "PorterStem", - "description": "Uses the Porter stemming algorithm to transform the token stream. See http://tartarus.org/~martin/PorterStemmer" - }, - { - "value": "reverse", - "name": "Reverse", - "description": "Reverses the token string. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/reverse/ReverseStringFilter.html" - }, - { - "value": "scandinavian_normalization", - "name": "ScandinavianNormalization", - "description": "Normalizes use of the interchangeable Scandinavian characters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ScandinavianNormalizationFilter.html" - }, - { - "value": "scandinavian_folding", - "name": "ScandinavianFoldingNormalization", - "description": "Folds Scandinavian characters åÅäæÄÆ->a and öÖøØ->o. It also discriminates against use of double vowels aa, ae, ao, oe and oo, leaving just the first one. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ScandinavianFoldingFilter.html" - }, - { - "value": "shingle", - "name": "Shingle", - "description": "Creates combinations of tokens as a single token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/shingle/ShingleFilter.html" - }, - { - "value": "snowball", - "name": "Snowball", - "description": "A filter that stems words using a Snowball-generated stemmer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/snowball/SnowballFilter.html" - }, - { - "value": "sorani_normalization", - "name": "SoraniNormalization", - "description": "Normalizes the Unicode representation of Sorani text. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ckb/SoraniNormalizationFilter.html" - }, - { - "value": "stemmer", - "name": "Stemmer", - "description": "Language specific stemming filter. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#TokenFilters" - }, - { - "value": "stopwords", - "name": "Stopwords", - "description": "Removes stop words from a token stream. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopFilter.html" - }, - { - "value": "trim", - "name": "Trim", - "description": "Trims leading and trailing whitespace from tokens. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TrimFilter.html" - }, - { - "value": "truncate", - "name": "Truncate", - "description": "Truncates the terms to a specific length. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TruncateTokenFilter.html" - }, - { - "value": "unique", - "name": "Unique", - "description": "Filters out tokens with same text as the previous token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/RemoveDuplicatesTokenFilter.html" - }, - { - "value": "uppercase", - "name": "Uppercase", - "description": "Normalizes token text to upper case. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/UpperCaseFilter.html" - }, - { - "value": "word_delimiter", - "name": "WordDelimiter", - "description": "Splits words into subwords and performs optional transformations on subword groups." - } - ] + "x-ms-discriminator-value": "#Microsoft.Azure.Search.ClassicTokenizer" + }, + "CognitiveServicesAccount": { + "type": "object", + "description": "Base type for describing any Azure AI service resource attached to a skillset.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + }, + "description": { + "type": "string", + "description": "Description of the Azure AI service resource attached to a skillset." + } }, - "description": "Defines the names of all token filters supported by the search engine.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } + "discriminator": "@odata.type", + "required": [ + "@odata.type" + ] }, - "LexicalNormalizerName": { - "type": "string", - "enum": [ - "asciifolding", - "elision", - "lowercase", - "standard", - "uppercase" + "CognitiveServicesAccountKey": { + "type": "object", + "description": "The multi-region account key of an Azure AI service resource that's attached to a skillset.", + "properties": { + "key": { + "type": "string", + "description": "The key used to provision the Azure AI service resource attached to a skillset." + } + }, + "required": [ + "key" ], - "x-ms-enum": { - "name": "LexicalNormalizerName", - "modelAsString": true, - "values": [ - { - "value": "asciifolding", - "name": "AsciiFolding", - "description": "Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html" - }, - { - "value": "elision", - "name": "Elision", - "description": "Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html" - }, - { - "value": "lowercase", - "name": "Lowercase", - "description": "Normalizes token text to lowercase. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/LowerCaseFilter.html" - }, - { - "value": "standard", - "name": "Standard", - "description": "Standard normalizer, which consists of lowercase and asciifolding. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/reverse/ReverseStringFilter.html" - }, - { - "value": "uppercase", - "name": "Uppercase", - "description": "Normalizes token text to uppercase. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/UpperCaseFilter.html" + "allOf": [ + { + "$ref": "#/definitions/CognitiveServicesAccount" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.CognitiveServicesByKey" + }, + "CommonGramTokenFilter": { + "type": "object", + "description": "Construct bigrams for frequently occurring terms while indexing. Single terms are still indexed too, with bigrams overlaid. This token filter is implemented using Apache Lucene.", + "properties": { + "commonWords": { + "type": "array", + "description": "The set of common words.", + "items": { + "type": "string" } - ] + }, + "ignoreCase": { + "type": "boolean", + "description": "A value indicating whether common words matching will be case insensitive. Default is false.", + "default": false + }, + "queryMode": { + "type": "boolean", + "description": "A value that indicates whether the token filter is in query mode. When in query mode, the token filter generates bigrams and then removes common words and single terms followed by a common word. Default is false.", + "default": false + } }, - "description": "Defines the names of all text normalizers supported by the search engine.", - "externalDocs": { - "url": "https://aka.ms/azs-normalizers" - } - }, - "CharFilterName": { - "type": "string", - "enum": [ - "html_strip" + "required": [ + "commonWords" ], - "x-ms-enum": { - "name": "CharFilterName", - "modelAsString": true, - "values": [ - { - "value": "html_strip", - "name": "HtmlStrip", - "description": "A character filter that attempts to strip out HTML constructs. See https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.html" - } - ] - }, - "description": "Defines the names of all character filters supported by the search engine.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } - }, - "RegexFlags": { - "type": "string", - "enum": [ - "CANON_EQ", - "CASE_INSENSITIVE", - "COMMENTS", - "DOTALL", - "LITERAL", - "MULTILINE", - "UNICODE_CASE", - "UNIX_LINES" - ], - "x-ms-enum": { - "name": "RegexFlags", - "modelAsString": true, - "values": [ - { - "value": "CANON_EQ", - "name": "CanonEq", - "description": "Enables canonical equivalence." - }, - { - "value": "CASE_INSENSITIVE", - "name": "CaseInsensitive", - "description": "Enables case-insensitive matching." - }, - { - "value": "COMMENTS", - "name": "Comments", - "description": "Permits whitespace and comments in the pattern." - }, - { - "value": "DOTALL", - "name": "DotAll", - "description": "Enables dotall mode." - }, - { - "value": "LITERAL", - "name": "Literal", - "description": "Enables literal parsing of the pattern." - }, - { - "value": "MULTILINE", - "name": "Multiline", - "description": "Enables multiline mode." - }, - { - "value": "UNICODE_CASE", - "name": "UnicodeCase", - "description": "Enables Unicode-aware case folding." - }, - { - "value": "UNIX_LINES", - "name": "UnixLines", - "description": "Enables Unix lines mode." - } - ] - }, - "description": "Defines flags that can be combined to control how regular expressions are used in the pattern analyzer and pattern tokenizer.", - "externalDocs": { - "url": "http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#field_summary" - } - }, - "VectorEncodingFormat": { - "type": "string", - "enum": [ - "packedBit" - ], - "x-ms-enum": { - "name": "VectorEncodingFormat", - "modelAsString": true, - "values": [ - { - "value": "packedBit", - "name": "PackedBit", - "description": "Encoding format representing bits packed into a wider data type." - } - ] - }, - "description": "The encoding format for interpreting vector field contents." - }, - "SearchFieldDataType": { - "type": "string", - "enum": [ - "Edm.String", - "Edm.Int32", - "Edm.Int64", - "Edm.Double", - "Edm.Boolean", - "Edm.DateTimeOffset", - "Edm.GeographyPoint", - "Edm.ComplexType", - "Edm.Single", - "Edm.Half", - "Edm.Int16", - "Edm.SByte", - "Edm.Byte" + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } ], - "x-ms-enum": { - "name": "SearchFieldDataType", - "modelAsString": true, - "values": [ - { - "value": "Edm.String", - "name": "String", - "description": "Indicates that a field contains a string." - }, - { - "value": "Edm.Int32", - "name": "Int32", - "description": "Indicates that a field contains a 32-bit signed integer." - }, - { - "value": "Edm.Int64", - "name": "Int64", - "description": "Indicates that a field contains a 64-bit signed integer." - }, - { - "value": "Edm.Double", - "name": "Double", - "description": "Indicates that a field contains an IEEE double-precision floating point number." - }, - { - "value": "Edm.Boolean", - "name": "Boolean", - "description": "Indicates that a field contains a Boolean value (true or false)." - }, - { - "value": "Edm.DateTimeOffset", - "name": "DateTimeOffset", - "description": "Indicates that a field contains a date/time value, including timezone information." - }, - { - "value": "Edm.GeographyPoint", - "name": "GeographyPoint", - "description": "Indicates that a field contains a geo-location in terms of longitude and latitude." - }, - { - "value": "Edm.ComplexType", - "name": "Complex", - "description": "Indicates that a field contains one or more complex objects that in turn have sub-fields of other types." - }, - { - "value": "Edm.Single", - "name": "Single", - "description": "Indicates that a field contains a single-precision floating point number. This is only valid when used with Collection(Edm.Single)." - }, - { - "value": "Edm.Half", - "name": "Half", - "description": "Indicates that a field contains a half-precision floating point number. This is only valid when used with Collection(Edm.Half)." - }, - { - "value": "Edm.Int16", - "name": "Int16", - "description": "Indicates that a field contains a 16-bit signed integer. This is only valid when used with Collection(Edm.Int16)." - }, - { - "value": "Edm.SByte", - "name": "SByte", - "description": "Indicates that a field contains a 8-bit signed integer. This is only valid when used with Collection(Edm.SByte)." - }, - { - "value": "Edm.Byte", - "name": "Byte", - "description": "Indicates that a field contains a 8-bit unsigned integer. This is only valid when used with Collection(Edm.Byte)." - } - ] - }, - "description": "Defines the data type of a field in a search index." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.CommonGramTokenFilter" }, - "LexicalAnalyzer": { + "CompletedSynchronizationState": { "type": "object", - "discriminator": "@odata.type", + "description": "Represents the completed state of the last synchronization.", "properties": { - "@odata.type": { + "startTime": { "type": "string", - "description": "A URI fragment specifying the type of analyzer." + "format": "date-time", + "description": "The start time of the last completed synchronization." }, - "name": { + "endTime": { "type": "string", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/custom-analyzers-in-azure-search#index-attribute-reference" - }, - "description": "The name of the analyzer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." + "format": "date-time", + "description": "The end time of the last completed synchronization." + }, + "itemsUpdatesProcessed": { + "type": "integer", + "format": "int32", + "description": "The number of item updates successfully processed in the last synchronization." + }, + "itemsUpdatesFailed": { + "type": "integer", + "format": "int32", + "description": "The number of item updates that failed in the last synchronization." + }, + "itemsSkipped": { + "type": "integer", + "format": "int32", + "description": "The number of items skipped in the last synchronization." } }, "required": [ - "@odata.type", - "name" - ], - "description": "Base type for analyzers." + "startTime", + "endTime", + "itemsUpdatesProcessed", + "itemsUpdatesFailed", + "itemsSkipped" + ] }, - "CustomAnalyzer": { + "ConditionalSkill": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.CustomAnalyzer", + "description": "A skill that enables scenarios that require a Boolean operation to determine the data to assign to an output.", "allOf": [ { - "$ref": "#/definitions/LexicalAnalyzer" + "$ref": "#/definitions/SearchIndexerSkill" } ], + "x-ms-discriminator-value": "#Microsoft.Skills.Util.ConditionalSkill" + }, + "ContentUnderstandingSkill": { + "type": "object", + "description": "A skill that leverages Azure AI Content Understanding to process and extract structured insights from documents, enabling enriched, searchable content for enhanced document indexing and retrieval.", "properties": { - "tokenizer": { - "$ref": "#/definitions/LexicalTokenizerName", - "description": "The name of the tokenizer to use to divide continuous text into a sequence of tokens, such as breaking a sentence into words." - }, - "tokenFilters": { + "extractionOptions": { "type": "array", + "description": "Controls the cardinality of the content extracted from the document by the skill.", + "x-nullable": true, "items": { - "$ref": "#/definitions/TokenFilterName", - "x-nullable": false - }, - "description": "A list of token filters used to filter out or modify the tokens generated by a tokenizer. For example, you can specify a lowercase filter that converts all characters to lowercase. The filters are run in the order in which they are listed." + "$ref": "#/definitions/ContentUnderstandingSkillExtractionOptions" + } }, - "charFilters": { - "type": "array", - "items": { - "$ref": "#/definitions/CharFilterName", - "x-nullable": false - }, - "description": "A list of character filters used to prepare input text before it is processed by the tokenizer. For instance, they can replace certain characters or symbols. The filters are run in the order in which they are listed." + "chunkingProperties": { + "$ref": "#/definitions/ContentUnderstandingSkillChunkingProperties", + "description": "Controls the cardinality for chunking the content.", + "x-nullable": true } }, - "required": [ - "tokenizer" - ], - "description": "Allows you to take control over the process of converting text into indexable/searchable tokens. It's a user-defined configuration consisting of a single predefined tokenizer and one or more filters. The tokenizer is responsible for breaking text into tokens, and the filters for modifying tokens emitted by the tokenizer." - }, - "PatternAnalyzer": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternAnalyzer", "allOf": [ { - "$ref": "#/definitions/LexicalAnalyzer" + "$ref": "#/definitions/SearchIndexerSkill" } ], + "x-ms-discriminator-value": "#Microsoft.Skills.Util.ContentUnderstandingSkill" + }, + "ContentUnderstandingSkillChunkingProperties": { + "type": "object", + "description": "Controls the cardinality for chunking the content.", "properties": { - "lowercase": { - "x-ms-client-name": "LowerCaseTerms", - "type": "boolean", - "default": true, - "description": "A value indicating whether terms should be lower-cased. Default is true." - }, - "pattern": { + "unit": { "type": "string", - "default": "\\W+", - "description": "A regular expression pattern to match token separators. Default is an expression that matches one or more non-word characters." + "description": "The unit of the chunk.", + "default": "characters", + "enum": [ + "characters" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "Characters", + "value": "characters", + "description": "Specifies chunk by characters." + } + ] + }, + "x-nullable": true }, - "flags": { - "$ref": "#/definitions/RegexFlags", - "description": "Regular expression flags." + "maximumLength": { + "type": "integer", + "format": "int32", + "description": "The maximum chunk length in characters. Default is 500.", + "x-nullable": true }, - "stopwords": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of stopwords." + "overlapLength": { + "type": "integer", + "format": "int32", + "description": "The length of overlap provided between two text chunks. Default is 0.", + "x-nullable": true } - }, - "description": "Flexibly separates text into terms via a regular expression pattern. This analyzer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/PatternAnalyzer.html" } }, - "LuceneStandardAnalyzer": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StandardAnalyzer", - "allOf": [ - { - "$ref": "#/definitions/LexicalAnalyzer" - } + "ContentUnderstandingSkillChunkingUnit": { + "type": "string", + "description": "Controls the cardinality of the chunk unit. Default is 'characters'", + "enum": [ + "characters" ], - "properties": { - "maxTokenLength": { - "type": "integer", - "format": "int32", - "default": 255, - "maximum": 300, - "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters." - }, - "stopwords": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of stopwords." - } - }, - "description": "Standard Apache Lucene analyzer; Composed of the standard tokenizer, lowercase filter and stop filter.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/StandardAnalyzer.html" + "x-ms-enum": { + "name": "ContentUnderstandingSkillChunkingUnit", + "modelAsString": true, + "values": [ + { + "name": "Characters", + "value": "characters", + "description": "Specifies chunk by characters." + } + ] } }, - "StopAnalyzer": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StopAnalyzer", - "allOf": [ - { - "$ref": "#/definitions/LexicalAnalyzer" - } + "ContentUnderstandingSkillExtractionOptions": { + "type": "string", + "description": "Controls the cardinality of the content extracted from the document by the skill.", + "enum": [ + "images", + "locationMetadata" ], - "properties": { - "stopwords": { - "type": "array", - "items": { - "type": "string" + "x-ms-enum": { + "name": "ContentUnderstandingSkillExtractionOptions", + "modelAsString": true, + "values": [ + { + "name": "Images", + "value": "images", + "description": "Specify that image content should be extracted from the document." }, - "description": "A list of stopwords." - } - }, - "description": "Divides text at non-letters; Applies the lowercase and stopword token filters. This analyzer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopAnalyzer.html" + { + "name": "LocationMetadata", + "value": "locationMetadata", + "description": "Specify that location metadata should be extracted from the document." + } + ] } }, - "LexicalNormalizer": { + "CorsOptions": { "type": "object", - "discriminator": "@odata.type", + "description": "Defines options to control Cross-Origin Resource Sharing (CORS) for an index.", "properties": { - "@odata.type": { - "type": "string", - "description": "A URI fragment specifying the type of normalizer." + "allowedOrigins": { + "type": "array", + "description": "The list of origins from which JavaScript code will be granted access to your index. Can contain a list of hosts of the form {protocol}://{fully-qualified-domain-name}[:{port#}], or a single '*' to allow all origins (not recommended).", + "items": { + "type": "string" + } }, - "name": { - "type": "string", - "externalDocs": { - "url": "https://aka.ms/azs-normalizers" - }, - "description": "The name of the normalizer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters. It cannot end in '.microsoft' nor '.lucene', nor be named 'asciifolding', 'standard', 'lowercase', 'uppercase', or 'elision'." + "maxAgeInSeconds": { + "type": "integer", + "format": "int64", + "description": "The duration for which browsers should cache CORS preflight responses. Defaults to 5 minutes.", + "x-nullable": true } }, "required": [ - "@odata.type", - "name" - ], - "description": "Base type for normalizers." + "allowedOrigins" + ] }, - "CustomNormalizer": { + "CreatedResources": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.CustomNormalizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalNormalizer" - } - ], + "description": "Resources created by the knowledge source. Keys represent resource types (e.g., 'datasource', 'indexer', 'skillset', 'index') and values represent resource names.", + "additionalProperties": { + "type": "string" + } + }, + "CustomAnalyzer": { + "type": "object", + "description": "Allows you to take control over the process of converting text into indexable/searchable tokens. It's a user-defined configuration consisting of a single predefined tokenizer and one or more filters. The tokenizer is responsible for breaking text into tokens, and the filters for modifying tokens emitted by the tokenizer.", "properties": { + "tokenizer": { + "$ref": "#/definitions/LexicalTokenizerName", + "description": "The name of the tokenizer to use to divide continuous text into a sequence of tokens, such as breaking a sentence into words." + }, "tokenFilters": { "type": "array", + "description": "A list of token filters used to filter out or modify the tokens generated by a tokenizer. For example, you can specify a lowercase filter that converts all characters to lowercase. The filters are run in the order in which they are listed.", "items": { - "$ref": "#/definitions/TokenFilterName", - "x-nullable": false - }, - "description": "A list of token filters used to filter out or modify the input token. For example, you can specify a lowercase filter that converts all characters to lowercase. The filters are run in the order in which they are listed." + "$ref": "#/definitions/TokenFilterName" + } }, "charFilters": { "type": "array", + "description": "A list of character filters used to prepare input text before it is processed by the tokenizer. For instance, they can replace certain characters or symbols. The filters are run in the order in which they are listed.", "items": { - "$ref": "#/definitions/CharFilterName", - "x-nullable": false - }, - "description": "A list of character filters used to prepare input text before it is processed. For instance, they can replace certain characters or symbols. The filters are run in the order in which they are listed." + "$ref": "#/definitions/CharFilterName" + } } }, - "description": "Allows you to configure normalization for filterable, sortable, and facetable fields, which by default operate with strict matching. This is a user-defined configuration consisting of at least one or more filters, which modify the token that is stored.", - "externalDocs": { - "url": "https://aka.ms/azs-custom-normalizers" - } + "required": [ + "tokenizer" + ], + "allOf": [ + { + "$ref": "#/definitions/LexicalAnalyzer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.CustomAnalyzer" }, - "LexicalTokenizer": { + "CustomEntity": { "type": "object", - "discriminator": "@odata.type", + "description": "An object that contains information about the matches that were found, and related metadata.", "properties": { - "@odata.type": { + "name": { "type": "string", - "description": "A URI fragment specifying the type of tokenizer." + "description": "The top-level entity descriptor. Matches in the skill output will be grouped by this name, and it should represent the \"normalized\" form of the text being found." }, - "name": { + "description": { "type": "string", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/custom-analyzers-in-azure-search#index-attribute-reference" - }, - "description": "The name of the tokenizer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." + "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.", + "x-nullable": true + }, + "type": { + "type": "string", + "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.", + "x-nullable": true + }, + "subtype": { + "type": "string", + "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.", + "x-nullable": true + }, + "id": { + "type": "string", + "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output.", + "x-nullable": true + }, + "caseSensitive": { + "type": "boolean", + "description": "Defaults to false. Boolean value denoting whether comparisons with the entity name should be sensitive to character casing. Sample case insensitive matches of \"Microsoft\" could be: microsoft, microSoft, MICROSOFT.", + "x-nullable": true + }, + "accentSensitive": { + "type": "boolean", + "description": "Defaults to false. Boolean value denoting whether comparisons with the entity name should be sensitive to accent.", + "x-nullable": true + }, + "fuzzyEditDistance": { + "type": "integer", + "format": "int32", + "description": "Defaults to 0. Maximum value of 5. Denotes the acceptable number of divergent characters that would still constitute a match with the entity name. The smallest possible fuzziness for any given match is returned. For instance, if the edit distance is set to 3, \"Windows10\" would still match \"Windows\", \"Windows10\" and \"Windows 7\". When case sensitivity is set to false, case differences do NOT count towards fuzziness tolerance, but otherwise do.", + "x-nullable": true + }, + "defaultCaseSensitive": { + "type": "boolean", + "description": "Changes the default case sensitivity value for this entity. It be used to change the default value of all aliases caseSensitive values.", + "x-nullable": true + }, + "defaultAccentSensitive": { + "type": "boolean", + "description": "Changes the default accent sensitivity value for this entity. It be used to change the default value of all aliases accentSensitive values.", + "x-nullable": true + }, + "defaultFuzzyEditDistance": { + "type": "integer", + "format": "int32", + "description": "Changes the default fuzzy edit distance value for this entity. It can be used to change the default value of all aliases fuzzyEditDistance values.", + "x-nullable": true + }, + "aliases": { + "type": "array", + "description": "An array of complex objects that can be used to specify alternative spellings or synonyms to the root entity name.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/CustomEntityAlias" + } } }, "required": [ - "@odata.type", "name" - ], - "description": "Base type for tokenizers.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } + ] }, - "ClassicTokenizer": { + "CustomEntityAlias": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.ClassicTokenizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" - } - ], + "description": "A complex object that can be used to specify alternative spellings or synonyms to the root entity name.", "properties": { - "maxTokenLength": { + "text": { + "type": "string", + "description": "The text of the alias." + }, + "caseSensitive": { + "type": "boolean", + "description": "Determine if the alias is case sensitive.", + "x-nullable": true + }, + "accentSensitive": { + "type": "boolean", + "description": "Determine if the alias is accent sensitive.", + "x-nullable": true + }, + "fuzzyEditDistance": { "type": "integer", "format": "int32", - "default": 255, - "maximum": 300, - "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters." + "description": "Determine the fuzzy edit distance of the alias.", + "x-nullable": true } }, - "description": "Grammar-based tokenizer that is suitable for processing most European-language documents. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicTokenizer.html" - } + "required": [ + "text" + ] }, - "TokenCharacterKind": { - "type": "string", - "enum": [ - "letter", - "digit", - "whitespace", - "punctuation", - "symbol" - ], - "x-ms-enum": { - "name": "TokenCharacterKind", - "modelAsString": false, - "values": [ - { - "value": "letter", - "name": "Letter", - "description": "Keeps letters in tokens." - }, - { - "value": "digit", - "name": "Digit", - "description": "Keeps digits in tokens." - }, - { - "value": "whitespace", - "name": "Whitespace", - "description": "Keeps whitespace in tokens." - }, - { - "value": "punctuation", - "name": "Punctuation", - "description": "Keeps punctuation in tokens." - }, - { - "value": "symbol", - "name": "Symbol", - "description": "Keeps symbols in tokens." + "CustomEntityLookupSkill": { + "type": "object", + "description": "A skill looks for text from a custom, user-defined list of words and phrases.", + "properties": { + "defaultLanguageCode": { + "$ref": "#/definitions/CustomEntityLookupSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`.", + "x-nullable": true + }, + "entitiesDefinitionUri": { + "type": "string", + "description": "Path to a JSON or CSV file containing all the target text to match against. This entity definition is read at the beginning of an indexer run. Any updates to this file during an indexer run will not take effect until subsequent runs. This config must be accessible over HTTPS.", + "x-nullable": true + }, + "inlineEntitiesDefinition": { + "type": "array", + "description": "The inline CustomEntity definition.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/CustomEntity" } - ] + }, + "globalDefaultCaseSensitive": { + "type": "boolean", + "description": "A global flag for CaseSensitive. If CaseSensitive is not set in CustomEntity, this value will be the default value.", + "x-nullable": true + }, + "globalDefaultAccentSensitive": { + "type": "boolean", + "description": "A global flag for AccentSensitive. If AccentSensitive is not set in CustomEntity, this value will be the default value.", + "x-nullable": true + }, + "globalDefaultFuzzyEditDistance": { + "type": "integer", + "format": "int32", + "description": "A global flag for FuzzyEditDistance. If FuzzyEditDistance is not set in CustomEntity, this value will be the default value.", + "x-nullable": true + } }, - "description": "Represents classes of characters on which a token filter can operate." + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.CustomEntityLookupSkill" }, - "RankingOrder": { + "CustomEntityLookupSkillLanguage": { "type": "string", + "description": "The language codes supported for input text by CustomEntityLookupSkill.", "enum": [ - "BoostedRerankerScore", - "RerankerScore" + "da", + "de", + "en", + "es", + "fi", + "fr", + "it", + "ko", + "pt" ], "x-ms-enum": { - "name": "RankingOrder", + "name": "CustomEntityLookupSkillLanguage", "modelAsString": true, "values": [ { - "value": "BoostedRerankerScore", - "name": "BoostedRerankerScore", - "description": "Sets sort order as BoostedRerankerScore" + "name": "da", + "value": "da", + "description": "Danish" }, { - "value": "RerankerScore", - "name": "ReRankerScore", - "description": "Sets sort order as ReRankerScore" + "name": "de", + "value": "de", + "description": "German" + }, + { + "name": "en", + "value": "en", + "description": "English" + }, + { + "name": "es", + "value": "es", + "description": "Spanish" + }, + { + "name": "fi", + "value": "fi", + "description": "Finnish" + }, + { + "name": "fr", + "value": "fr", + "description": "French" + }, + { + "name": "it", + "value": "it", + "description": "Italian" + }, + { + "name": "ko", + "value": "ko", + "description": "Korean" + }, + { + "name": "pt", + "value": "pt", + "description": "Portuguese" } ] + } + }, + "CustomNormalizer": { + "type": "object", + "description": "Allows you to configure normalization for filterable, sortable, and facetable fields, which by default operate with strict matching. This is a user-defined configuration consisting of at least one or more filters, which modify the token that is stored.", + "properties": { + "tokenFilters": { + "type": "array", + "description": "A list of token filters used to filter out or modify the input token. For example, you can specify a lowercase filter that converts all characters to lowercase. The filters are run in the order in which they are listed.", + "items": { + "$ref": "#/definitions/TokenFilterName" + } + }, + "charFilters": { + "type": "array", + "description": "A list of character filters used to prepare input text before it is processed. For instance, they can replace certain characters or symbols. The filters are run in the order in which they are listed.", + "items": { + "$ref": "#/definitions/CharFilterName" + } + } }, - "description": "Represents score to use for sort order of documents." + "allOf": [ + { + "$ref": "#/definitions/LexicalNormalizer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.CustomNormalizer" }, - "EdgeNGramTokenizer": { + "DataChangeDetectionPolicy": { + "type": "object", + "description": "Base type for data change detection policies.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type" + ] + }, + "DataDeletionDetectionPolicy": { + "type": "object", + "description": "Base type for data deletion detection policies.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type" + ] + }, + "DataSourceCredentials": { + "type": "object", + "description": "Represents credentials that can be used to connect to a datasource.", + "properties": { + "connectionString": { + "type": "string", + "description": "The connection string for the datasource. Set to `` (with brackets) if you don't want the connection string updated. Set to `` if you want to remove the connection string value from the datasource." + } + } + }, + "DebugInfo": { + "type": "object", + "description": "Contains debugging information that can be used to further explore your search results.", + "properties": { + "queryRewrites": { + "$ref": "#/definitions/QueryRewritesDebugInfo", + "description": "Contains debugging information specific to query rewrites.", + "readOnly": true + } + } + }, + "DefaultCognitiveServicesAccount": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.EdgeNGramTokenizer", + "description": "An empty object that represents the default Azure AI service resource for a skillset.", "allOf": [ { - "$ref": "#/definitions/LexicalTokenizer" + "$ref": "#/definitions/CognitiveServicesAccount" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.DefaultCognitiveServices" + }, + "DictionaryDecompounderTokenFilter": { + "type": "object", + "description": "Decomposes compound words found in many Germanic languages. This token filter is implemented using Apache Lucene.", "properties": { - "minGram": { + "wordList": { + "type": "array", + "description": "The list of words to match against.", + "items": { + "type": "string" + } + }, + "minWordSize": { "type": "integer", "format": "int32", - "default": 1, - "maximum": 300, - "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram." + "description": "The minimum word size. Only words longer than this get processed. Default is 5. Maximum is 300.", + "default": 5, + "maximum": 300 }, - "maxGram": { + "minSubwordSize": { "type": "integer", "format": "int32", + "description": "The minimum subword size. Only subwords longer than this are outputted. Default is 2. Maximum is 300.", "default": 2, - "maximum": 300, - "description": "The maximum n-gram length. Default is 2. Maximum is 300." + "maximum": 300 }, - "tokenChars": { - "type": "array", - "items": { - "$ref": "#/definitions/TokenCharacterKind", - "x-nullable": false - }, - "description": "Character classes to keep in the tokens." + "maxSubwordSize": { + "type": "integer", + "format": "int32", + "description": "The maximum subword size. Only subwords shorter than this are outputted. Default is 15. Maximum is 300.", + "default": 15, + "maximum": 300 + }, + "onlyLongestMatch": { + "type": "boolean", + "description": "A value indicating whether to add only the longest matching subword to the output. Default is false.", + "default": false } }, - "description": "Tokenizes the input from an edge into n-grams of the given size(s). This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.html" - } - }, - "KeywordTokenizer": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeywordTokenizer", + "required": [ + "wordList" + ], "allOf": [ { - "$ref": "#/definitions/LexicalTokenizer" + "$ref": "#/definitions/TokenFilter" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.DictionaryDecompounderTokenFilter" + }, + "DistanceScoringFunction": { + "type": "object", + "description": "Defines a function that boosts scores based on distance from a geographic location.", "properties": { - "bufferSize": { - "type": "integer", - "format": "int32", - "default": 256, - "description": "The read buffer size in bytes. Default is 256." + "distance": { + "$ref": "#/definitions/DistanceScoringParameters", + "description": "Parameter values for the distance scoring function." } }, - "description": "Emits the entire input as a single token. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordTokenizer.html" - }, - "x-az-search-deprecated": true - }, - "KeywordTokenizerV2": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeywordTokenizerV2", + "required": [ + "distance" + ], "allOf": [ { - "$ref": "#/definitions/LexicalTokenizer" + "$ref": "#/definitions/ScoringFunction" } ], + "x-ms-discriminator-value": "distance" + }, + "DistanceScoringParameters": { + "type": "object", + "description": "Provides parameter values to a distance scoring function.", "properties": { - "maxTokenLength": { - "type": "integer", - "format": "int32", - "default": 256, - "maximum": 300, - "description": "The maximum token length. Default is 256. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters." + "referencePointParameter": { + "type": "string", + "description": "The name of the parameter passed in search queries to specify the reference location." + }, + "boostingDistance": { + "type": "number", + "format": "double", + "description": "The distance in kilometers from the reference location where the boosting range ends." } }, - "description": "Emits the entire input as a single token. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordTokenizer.html" - } + "required": [ + "referencePointParameter", + "boostingDistance" + ] }, - "MicrosoftTokenizerLanguage": { - "type": "string", - "enum": [ - "bangla", - "bulgarian", - "catalan", - "chineseSimplified", - "chineseTraditional", - "croatian", - "czech", - "danish", - "dutch", - "english", - "french", - "german", - "greek", - "gujarati", - "hindi", - "icelandic", - "indonesian", - "italian", - "japanese", - "kannada", - "korean", - "malay", - "malayalam", - "marathi", - "norwegianBokmaal", - "polish", - "portuguese", - "portugueseBrazilian", - "punjabi", - "romanian", - "russian", - "serbianCyrillic", - "serbianLatin", - "slovenian", - "spanish", - "swedish", - "tamil", - "telugu", - "thai", - "ukrainian", - "urdu", - "vietnamese" + "DocumentDebugInfo": { + "type": "object", + "description": "Contains debugging information that can be used to further explore your search results.", + "properties": { + "semantic": { + "$ref": "#/definitions/SemanticDebugInfo", + "description": "Contains debugging information specific to semantic ranking requests.", + "readOnly": true + }, + "vectors": { + "$ref": "#/definitions/VectorsDebugInfo", + "description": "Contains debugging information specific to vector and hybrid search.", + "readOnly": true + }, + "innerHits": { + "type": "object", + "description": "Contains debugging information specific to vectors matched within a collection of complex types.", + "additionalProperties": { + "items": { + "$ref": "#/definitions/QueryResultDocumentInnerHit" + }, + "type": "array" + }, + "readOnly": true + } + } + }, + "DocumentExtractionSkill": { + "type": "object", + "description": "A skill that extracts content from a file within the enrichment pipeline.", + "properties": { + "parsingMode": { + "type": "string", + "description": "The parsingMode for the skill. Will be set to 'default' if not defined.", + "x-nullable": true + }, + "dataToExtract": { + "type": "string", + "description": "The type of data to be extracted for the skill. Will be set to 'contentAndMetadata' if not defined.", + "x-nullable": true + }, + "configuration": { + "type": "object", + "description": "A dictionary of configurations for the skill.", + "x-nullable": true, + "additionalProperties": {} + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Util.DocumentExtractionSkill" + }, + "DocumentIntelligenceLayoutSkill": { + "type": "object", + "description": "A skill that extracts content and layout information, via Azure AI Services, from files within the enrichment pipeline.", + "properties": { + "outputFormat": { + "type": "string", + "description": "Controls the output format. Default is 'markdown'.", + "default": "markdown", + "enum": [ + "text", + "markdown" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "Text", + "value": "text", + "description": "Specify the format of the output as text." + }, + { + "name": "Markdown", + "value": "markdown", + "description": "Specify the format of the output as markdown." + } + ] + }, + "x-nullable": true + }, + "outputMode": { + "type": "string", + "description": "Controls the cardinality of the output produced by the skill. Default is 'oneToMany'.", + "default": "oneToMany", + "enum": [ + "oneToMany" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "OneToMany", + "value": "oneToMany", + "description": "Specify that the output should be parsed as 'oneToMany'." + } + ] + }, + "x-nullable": true + }, + "markdownHeaderDepth": { + "type": "string", + "description": "The depth of headers in the markdown output. Default is h6.", + "default": "h6", + "enum": [ + "h1", + "h2", + "h3", + "h4", + "h5", + "h6" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "H1", + "value": "h1", + "description": "Header level 1." + }, + { + "name": "H2", + "value": "h2", + "description": "Header level 2." + }, + { + "name": "H3", + "value": "h3", + "description": "Header level 3." + }, + { + "name": "H4", + "value": "h4", + "description": "Header level 4." + }, + { + "name": "H5", + "value": "h5", + "description": "Header level 5." + }, + { + "name": "H6", + "value": "h6", + "description": "Header level 6." + } + ] + }, + "x-nullable": true + }, + "extractionOptions": { + "type": "array", + "description": "Controls the cardinality of the content extracted from the document by the skill.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/DocumentIntelligenceLayoutSkillExtractionOptions" + } + }, + "chunkingProperties": { + "$ref": "#/definitions/DocumentIntelligenceLayoutSkillChunkingProperties", + "description": "Controls the cardinality for chunking the content.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill" + }, + "DocumentIntelligenceLayoutSkillChunkingProperties": { + "type": "object", + "description": "Controls the cardinality for chunking the content.", + "properties": { + "unit": { + "type": "string", + "description": "The unit of the chunk.", + "default": "characters", + "enum": [ + "characters" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "Characters", + "value": "characters", + "description": "Specifies chunk by characters." + } + ] + }, + "x-nullable": true + }, + "maximumLength": { + "type": "integer", + "format": "int32", + "description": "The maximum chunk length in characters. Default is 500.", + "x-nullable": true + }, + "overlapLength": { + "type": "integer", + "format": "int32", + "description": "The length of overlap provided between two text chunks. Default is 0.", + "x-nullable": true + } + } + }, + "DocumentIntelligenceLayoutSkillChunkingUnit": { + "type": "string", + "description": "Controls the cardinality of the chunk unit. Default is 'characters'", + "enum": [ + "characters" ], "x-ms-enum": { - "name": "MicrosoftTokenizerLanguage", - "modelAsString": false, + "name": "DocumentIntelligenceLayoutSkillChunkingUnit", + "modelAsString": true, "values": [ { - "value": "bangla", - "name": "Bangla", - "description": "Selects the Microsoft tokenizer for Bangla." - }, + "name": "Characters", + "value": "characters", + "description": "Specifies chunk by characters." + } + ] + } + }, + "DocumentIntelligenceLayoutSkillExtractionOptions": { + "type": "string", + "description": "Controls the cardinality of the content extracted from the document by the skill.", + "enum": [ + "images", + "locationMetadata" + ], + "x-ms-enum": { + "name": "DocumentIntelligenceLayoutSkillExtractionOptions", + "modelAsString": true, + "values": [ { - "value": "bulgarian", - "name": "Bulgarian", - "description": "Selects the Microsoft tokenizer for Bulgarian." + "name": "Images", + "value": "images", + "description": "Specify that image content should be extracted from the document." }, { - "value": "catalan", - "name": "Catalan", - "description": "Selects the Microsoft tokenizer for Catalan." - }, + "name": "LocationMetadata", + "value": "locationMetadata", + "description": "Specify that location metadata should be extracted from the document." + } + ] + } + }, + "DocumentIntelligenceLayoutSkillMarkdownHeaderDepth": { + "type": "string", + "description": "The depth of headers in the markdown output. Default is h6.", + "enum": [ + "h1", + "h2", + "h3", + "h4", + "h5", + "h6" + ], + "x-ms-enum": { + "name": "DocumentIntelligenceLayoutSkillMarkdownHeaderDepth", + "modelAsString": true, + "values": [ { - "value": "chineseSimplified", - "name": "ChineseSimplified", - "description": "Selects the Microsoft tokenizer for Chinese (Simplified)." + "name": "H1", + "value": "h1", + "description": "Header level 1." }, { - "value": "chineseTraditional", - "name": "ChineseTraditional", - "description": "Selects the Microsoft tokenizer for Chinese (Traditional)." + "name": "H2", + "value": "h2", + "description": "Header level 2." }, { - "value": "croatian", - "name": "Croatian", - "description": "Selects the Microsoft tokenizer for Croatian." + "name": "H3", + "value": "h3", + "description": "Header level 3." }, { - "value": "czech", - "name": "Czech", - "description": "Selects the Microsoft tokenizer for Czech." - }, - { - "value": "danish", - "name": "Danish", - "description": "Selects the Microsoft tokenizer for Danish." - }, - { - "value": "dutch", - "name": "Dutch", - "description": "Selects the Microsoft tokenizer for Dutch." - }, - { - "value": "english", - "name": "English", - "description": "Selects the Microsoft tokenizer for English." - }, - { - "value": "french", - "name": "French", - "description": "Selects the Microsoft tokenizer for French." - }, - { - "value": "german", - "name": "German", - "description": "Selects the Microsoft tokenizer for German." - }, - { - "value": "greek", - "name": "Greek", - "description": "Selects the Microsoft tokenizer for Greek." - }, - { - "value": "gujarati", - "name": "Gujarati", - "description": "Selects the Microsoft tokenizer for Gujarati." - }, - { - "value": "hindi", - "name": "Hindi", - "description": "Selects the Microsoft tokenizer for Hindi." - }, - { - "value": "icelandic", - "name": "Icelandic", - "description": "Selects the Microsoft tokenizer for Icelandic." - }, - { - "value": "indonesian", - "name": "Indonesian", - "description": "Selects the Microsoft tokenizer for Indonesian." - }, - { - "value": "italian", - "name": "Italian", - "description": "Selects the Microsoft tokenizer for Italian." - }, - { - "value": "japanese", - "name": "Japanese", - "description": "Selects the Microsoft tokenizer for Japanese." - }, - { - "value": "kannada", - "name": "Kannada", - "description": "Selects the Microsoft tokenizer for Kannada." - }, - { - "value": "korean", - "name": "Korean", - "description": "Selects the Microsoft tokenizer for Korean." - }, - { - "value": "malay", - "name": "Malay", - "description": "Selects the Microsoft tokenizer for Malay." - }, - { - "value": "malayalam", - "name": "Malayalam", - "description": "Selects the Microsoft tokenizer for Malayalam." - }, - { - "value": "marathi", - "name": "Marathi", - "description": "Selects the Microsoft tokenizer for Marathi." - }, - { - "value": "norwegianBokmaal", - "name": "NorwegianBokmaal", - "description": "Selects the Microsoft tokenizer for Norwegian (Bokmål)." - }, - { - "value": "polish", - "name": "Polish", - "description": "Selects the Microsoft tokenizer for Polish." - }, - { - "value": "portuguese", - "name": "Portuguese", - "description": "Selects the Microsoft tokenizer for Portuguese." - }, - { - "value": "portugueseBrazilian", - "name": "PortugueseBrazilian", - "description": "Selects the Microsoft tokenizer for Portuguese (Brazil)." - }, - { - "value": "punjabi", - "name": "Punjabi", - "description": "Selects the Microsoft tokenizer for Punjabi." - }, - { - "value": "romanian", - "name": "Romanian", - "description": "Selects the Microsoft tokenizer for Romanian." - }, - { - "value": "russian", - "name": "Russian", - "description": "Selects the Microsoft tokenizer for Russian." - }, - { - "value": "serbianCyrillic", - "name": "SerbianCyrillic", - "description": "Selects the Microsoft tokenizer for Serbian (Cyrillic)." - }, - { - "value": "serbianLatin", - "name": "SerbianLatin", - "description": "Selects the Microsoft tokenizer for Serbian (Latin)." - }, - { - "value": "slovenian", - "name": "Slovenian", - "description": "Selects the Microsoft tokenizer for Slovenian." - }, - { - "value": "spanish", - "name": "Spanish", - "description": "Selects the Microsoft tokenizer for Spanish." - }, - { - "value": "swedish", - "name": "Swedish", - "description": "Selects the Microsoft tokenizer for Swedish." - }, - { - "value": "tamil", - "name": "Tamil", - "description": "Selects the Microsoft tokenizer for Tamil." + "name": "H4", + "value": "h4", + "description": "Header level 4." }, { - "value": "telugu", - "name": "Telugu", - "description": "Selects the Microsoft tokenizer for Telugu." + "name": "H5", + "value": "h5", + "description": "Header level 5." }, { - "value": "thai", - "name": "Thai", - "description": "Selects the Microsoft tokenizer for Thai." - }, + "name": "H6", + "value": "h6", + "description": "Header level 6." + } + ] + } + }, + "DocumentIntelligenceLayoutSkillOutputFormat": { + "type": "string", + "description": "Controls the cardinality of the output format. Default is 'markdown'.", + "enum": [ + "text", + "markdown" + ], + "x-ms-enum": { + "name": "DocumentIntelligenceLayoutSkillOutputFormat", + "modelAsString": true, + "values": [ { - "value": "ukrainian", - "name": "Ukrainian", - "description": "Selects the Microsoft tokenizer for Ukrainian." + "name": "Text", + "value": "text", + "description": "Specify the format of the output as text." }, { - "value": "urdu", - "name": "Urdu", - "description": "Selects the Microsoft tokenizer for Urdu." - }, + "name": "Markdown", + "value": "markdown", + "description": "Specify the format of the output as markdown." + } + ] + } + }, + "DocumentIntelligenceLayoutSkillOutputMode": { + "type": "string", + "description": "Controls the cardinality of the output produced by the skill. Default is 'oneToMany'.", + "enum": [ + "oneToMany" + ], + "x-ms-enum": { + "name": "DocumentIntelligenceLayoutSkillOutputMode", + "modelAsString": true, + "values": [ { - "value": "vietnamese", - "name": "Vietnamese", - "description": "Selects the Microsoft tokenizer for Vietnamese." + "name": "OneToMany", + "value": "oneToMany", + "description": "Specify that the output should be parsed as 'oneToMany'." } ] - }, - "description": "Lists the languages supported by the Microsoft language tokenizer." + } }, - "MicrosoftLanguageTokenizer": { + "DocumentKeysOrIds": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.MicrosoftLanguageTokenizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" + "description": "The type of the keysOrIds.", + "properties": { + "documentKeys": { + "type": "array", + "description": "document keys to be reset", + "items": { + "type": "string" + } + }, + "datasourceDocumentIds": { + "type": "array", + "description": "datasource document identifiers to be reset", + "items": { + "type": "string" + } } - ], + } + }, + "EdgeNGramTokenFilter": { + "type": "object", + "description": "Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.", "properties": { - "maxTokenLength": { + "minGram": { "type": "integer", "format": "int32", - "default": 255, - "maximum": 300, - "description": "The maximum token length. Tokens longer than the maximum length are split. Maximum token length that can be used is 300 characters. Tokens longer than 300 characters are first split into tokens of length 300 and then each of those tokens is split based on the max token length set. Default is 255." + "description": "The minimum n-gram length. Default is 1. Must be less than the value of maxGram.", + "default": 1 }, - "isSearchTokenizer": { - "type": "boolean", - "default": false, - "description": "A value indicating how the tokenizer is used. Set to true if used as the search tokenizer, set to false if used as the indexing tokenizer. Default is false." + "maxGram": { + "type": "integer", + "format": "int32", + "description": "The maximum n-gram length. Default is 2.", + "default": 2 }, - "language": { - "$ref": "#/definitions/MicrosoftTokenizerLanguage", - "description": "The language to use. The default is English." - } - }, - "description": "Divides text using language-specific rules." - }, - "MicrosoftStemmingTokenizerLanguage": { - "type": "string", - "enum": [ - "arabic", - "bangla", - "bulgarian", - "catalan", - "croatian", - "czech", - "danish", - "dutch", - "english", - "estonian", - "finnish", - "french", - "german", - "greek", - "gujarati", - "hebrew", - "hindi", - "hungarian", - "icelandic", - "indonesian", - "italian", - "kannada", - "latvian", - "lithuanian", - "malay", - "malayalam", - "marathi", - "norwegianBokmaal", - "polish", - "portuguese", - "portugueseBrazilian", - "punjabi", - "romanian", - "russian", - "serbianCyrillic", - "serbianLatin", - "slovak", - "slovenian", - "spanish", - "swedish", - "tamil", - "telugu", - "turkish", - "ukrainian", - "urdu" + "side": { + "type": "string", + "description": "Specifies which side of the input the n-gram should be generated from. Default is \"front\".", + "default": "front", + "enum": [ + "front", + "back" + ], + "x-ms-enum": { + "name": "EdgeNGramTokenFilterSide", + "modelAsString": true, + "values": [ + { + "name": "Front", + "value": "front", + "description": "Specifies that the n-gram should be generated from the front of the input." + }, + { + "name": "Back", + "value": "back", + "description": "Specifies that the n-gram should be generated from the back of the input." + } + ] + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.EdgeNGramTokenFilter" + }, + "EdgeNGramTokenFilterSide": { + "type": "string", + "description": "Specifies which side of the input an n-gram should be generated from.", + "enum": [ + "front", + "back" ], "x-ms-enum": { - "name": "MicrosoftStemmingTokenizerLanguage", - "modelAsString": false, + "name": "EdgeNGramTokenFilterSide", + "modelAsString": true, "values": [ { - "value": "arabic", - "name": "Arabic", - "description": "Selects the Microsoft stemming tokenizer for Arabic." - }, - { - "value": "bangla", - "name": "Bangla", - "description": "Selects the Microsoft stemming tokenizer for Bangla." - }, - { - "value": "bulgarian", - "name": "Bulgarian", - "description": "Selects the Microsoft stemming tokenizer for Bulgarian." - }, - { - "value": "catalan", - "name": "Catalan", - "description": "Selects the Microsoft stemming tokenizer for Catalan." - }, - { - "value": "croatian", - "name": "Croatian", - "description": "Selects the Microsoft stemming tokenizer for Croatian." - }, - { - "value": "czech", - "name": "Czech", - "description": "Selects the Microsoft stemming tokenizer for Czech." - }, - { - "value": "danish", - "name": "Danish", - "description": "Selects the Microsoft stemming tokenizer for Danish." - }, - { - "value": "dutch", - "name": "Dutch", - "description": "Selects the Microsoft stemming tokenizer for Dutch." + "name": "Front", + "value": "front", + "description": "Specifies that the n-gram should be generated from the front of the input." }, { - "value": "english", - "name": "English", - "description": "Selects the Microsoft stemming tokenizer for English." - }, + "name": "Back", + "value": "back", + "description": "Specifies that the n-gram should be generated from the back of the input." + } + ] + } + }, + "EdgeNGramTokenFilterV2": { + "type": "object", + "description": "Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.", + "properties": { + "minGram": { + "type": "integer", + "format": "int32", + "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.", + "default": 1, + "maximum": 300 + }, + "maxGram": { + "type": "integer", + "format": "int32", + "description": "The maximum n-gram length. Default is 2. Maximum is 300.", + "default": 2, + "maximum": 300 + }, + "side": { + "type": "string", + "description": "Specifies which side of the input the n-gram should be generated from. Default is \"front\".", + "default": "front", + "enum": [ + "front", + "back" + ], + "x-ms-enum": { + "name": "EdgeNGramTokenFilterSide", + "modelAsString": true, + "values": [ + { + "name": "Front", + "value": "front", + "description": "Specifies that the n-gram should be generated from the front of the input." + }, + { + "name": "Back", + "value": "back", + "description": "Specifies that the n-gram should be generated from the back of the input." + } + ] + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.EdgeNGramTokenFilterV2" + }, + "EdgeNGramTokenizer": { + "type": "object", + "description": "Tokenizes the input from an edge into n-grams of the given size(s). This tokenizer is implemented using Apache Lucene.", + "properties": { + "minGram": { + "type": "integer", + "format": "int32", + "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.", + "default": 1, + "maximum": 300 + }, + "maxGram": { + "type": "integer", + "format": "int32", + "description": "The maximum n-gram length. Default is 2. Maximum is 300.", + "default": 2, + "maximum": 300 + }, + "tokenChars": { + "type": "array", + "description": "Character classes to keep in the tokens.", + "items": { + "$ref": "#/definitions/TokenCharacterKind" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/LexicalTokenizer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.EdgeNGramTokenizer" + }, + "ElisionTokenFilter": { + "type": "object", + "description": "Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). This token filter is implemented using Apache Lucene.", + "properties": { + "articles": { + "type": "array", + "description": "The set of articles to remove.", + "items": { + "type": "string" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.ElisionTokenFilter" + }, + "EntityCategory": { + "type": "string", + "description": "A string indicating what entity categories to return.", + "enum": [ + "location", + "organization", + "person", + "quantity", + "datetime", + "url", + "email" + ], + "x-ms-enum": { + "name": "EntityCategory", + "modelAsString": true, + "values": [ { - "value": "estonian", - "name": "Estonian", - "description": "Selects the Microsoft stemming tokenizer for Estonian." + "name": "Location", + "value": "location", + "description": "Entities describing a physical location." }, { - "value": "finnish", - "name": "Finnish", - "description": "Selects the Microsoft stemming tokenizer for Finnish." + "name": "Organization", + "value": "organization", + "description": "Entities describing an organization." }, { - "value": "french", - "name": "French", - "description": "Selects the Microsoft stemming tokenizer for French." + "name": "Person", + "value": "person", + "description": "Entities describing a person." }, { - "value": "german", - "name": "German", - "description": "Selects the Microsoft stemming tokenizer for German." + "name": "Quantity", + "value": "quantity", + "description": "Entities describing a quantity." }, { - "value": "greek", - "name": "Greek", - "description": "Selects the Microsoft stemming tokenizer for Greek." + "name": "Datetime", + "value": "datetime", + "description": "Entities describing a date and time." }, { - "value": "gujarati", - "name": "Gujarati", - "description": "Selects the Microsoft stemming tokenizer for Gujarati." + "name": "Url", + "value": "url", + "description": "Entities describing a URL." }, { - "value": "hebrew", - "name": "Hebrew", - "description": "Selects the Microsoft stemming tokenizer for Hebrew." - }, - { - "value": "hindi", - "name": "Hindi", - "description": "Selects the Microsoft stemming tokenizer for Hindi." - }, - { - "value": "hungarian", - "name": "Hungarian", - "description": "Selects the Microsoft stemming tokenizer for Hungarian." - }, - { - "value": "icelandic", - "name": "Icelandic", - "description": "Selects the Microsoft stemming tokenizer for Icelandic." - }, - { - "value": "indonesian", - "name": "Indonesian", - "description": "Selects the Microsoft stemming tokenizer for Indonesian." - }, - { - "value": "italian", - "name": "Italian", - "description": "Selects the Microsoft stemming tokenizer for Italian." - }, - { - "value": "kannada", - "name": "Kannada", - "description": "Selects the Microsoft stemming tokenizer for Kannada." - }, + "name": "Email", + "value": "email", + "description": "Entities describing an email address." + } + ] + } + }, + "EntityLinkingSkill": { + "type": "object", + "description": "Using the Text Analytics API, extracts linked entities from text.", + "properties": { + "defaultLanguageCode": { + "type": "string", + "description": "A value indicating which language code to use. Default is `en`.", + "x-nullable": true + }, + "minimumPrecision": { + "type": "number", + "format": "double", + "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.", + "minimum": 0, + "maximum": 1 + }, + "modelVersion": { + "type": "string", + "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.V3.EntityLinkingSkill" + }, + "EntityRecognitionSkill": { + "type": "object", + "description": "This skill is deprecated. Use the V3.EntityRecognitionSkill instead.", + "properties": { + "categories": { + "type": "array", + "description": "A list of entity categories that should be extracted.", + "items": { + "$ref": "#/definitions/EntityCategory" + } + }, + "defaultLanguageCode": { + "$ref": "#/definitions/EntityRecognitionSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`." + }, + "includeTypelessEntities": { + "type": "boolean", + "description": "Determines whether or not to include entities which are well known but don't conform to a pre-defined type. If this configuration is not set (default), set to null or set to false, entities which don't conform to one of the pre-defined types will not be surfaced.", + "x-nullable": true + }, + "minimumPrecision": { + "type": "number", + "format": "double", + "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.EntityRecognitionSkill" + }, + "EntityRecognitionSkillLanguage": { + "type": "string", + "description": "Deprecated. The language codes supported for input text by EntityRecognitionSkill.", + "enum": [ + "ar", + "cs", + "zh-Hans", + "zh-Hant", + "da", + "nl", + "en", + "fi", + "fr", + "de", + "el", + "hu", + "it", + "ja", + "ko", + "no", + "pl", + "pt-PT", + "pt-BR", + "ru", + "es", + "sv", + "tr" + ], + "x-ms-enum": { + "name": "EntityRecognitionSkillLanguage", + "modelAsString": true, + "values": [ { - "value": "latvian", - "name": "Latvian", - "description": "Selects the Microsoft stemming tokenizer for Latvian." + "name": "ar", + "value": "ar", + "description": "Arabic" }, { - "value": "lithuanian", - "name": "Lithuanian", - "description": "Selects the Microsoft stemming tokenizer for Lithuanian." + "name": "cs", + "value": "cs", + "description": "Czech" }, { - "value": "malay", - "name": "Malay", - "description": "Selects the Microsoft stemming tokenizer for Malay." + "name": "zh-Hans", + "value": "zh-Hans", + "description": "Chinese-Simplified" }, { - "value": "malayalam", - "name": "Malayalam", - "description": "Selects the Microsoft stemming tokenizer for Malayalam." + "name": "zh-Hant", + "value": "zh-Hant", + "description": "Chinese-Traditional" }, { - "value": "marathi", - "name": "Marathi", - "description": "Selects the Microsoft stemming tokenizer for Marathi." + "name": "da", + "value": "da", + "description": "Danish" }, { - "value": "norwegianBokmaal", - "name": "NorwegianBokmaal", - "description": "Selects the Microsoft stemming tokenizer for Norwegian (Bokmål)." + "name": "nl", + "value": "nl", + "description": "Dutch" }, { - "value": "polish", - "name": "Polish", - "description": "Selects the Microsoft stemming tokenizer for Polish." + "name": "en", + "value": "en", + "description": "English" }, { - "value": "portuguese", - "name": "Portuguese", - "description": "Selects the Microsoft stemming tokenizer for Portuguese." + "name": "fi", + "value": "fi", + "description": "Finnish" }, { - "value": "portugueseBrazilian", - "name": "PortugueseBrazilian", - "description": "Selects the Microsoft stemming tokenizer for Portuguese (Brazil)." + "name": "fr", + "value": "fr", + "description": "French" }, { - "value": "punjabi", - "name": "Punjabi", - "description": "Selects the Microsoft stemming tokenizer for Punjabi." + "name": "de", + "value": "de", + "description": "German" }, { - "value": "romanian", - "name": "Romanian", - "description": "Selects the Microsoft stemming tokenizer for Romanian." + "name": "el", + "value": "el", + "description": "Greek" }, { - "value": "russian", - "name": "Russian", - "description": "Selects the Microsoft stemming tokenizer for Russian." + "name": "hu", + "value": "hu", + "description": "Hungarian" }, { - "value": "serbianCyrillic", - "name": "SerbianCyrillic", - "description": "Selects the Microsoft stemming tokenizer for Serbian (Cyrillic)." + "name": "it", + "value": "it", + "description": "Italian" }, { - "value": "serbianLatin", - "name": "SerbianLatin", - "description": "Selects the Microsoft stemming tokenizer for Serbian (Latin)." + "name": "ja", + "value": "ja", + "description": "Japanese" }, { - "value": "slovak", - "name": "Slovak", - "description": "Selects the Microsoft stemming tokenizer for Slovak." + "name": "ko", + "value": "ko", + "description": "Korean" }, { - "value": "slovenian", - "name": "Slovenian", - "description": "Selects the Microsoft stemming tokenizer for Slovenian." + "name": "no", + "value": "no", + "description": "Norwegian (Bokmaal)" }, { - "value": "spanish", - "name": "Spanish", - "description": "Selects the Microsoft stemming tokenizer for Spanish." + "name": "pl", + "value": "pl", + "description": "Polish" }, { - "value": "swedish", - "name": "Swedish", - "description": "Selects the Microsoft stemming tokenizer for Swedish." + "name": "pt-PT", + "value": "pt-PT", + "description": "Portuguese (Portugal)" }, { - "value": "tamil", - "name": "Tamil", - "description": "Selects the Microsoft stemming tokenizer for Tamil." + "name": "pt-BR", + "value": "pt-BR", + "description": "Portuguese (Brazil)" }, { - "value": "telugu", - "name": "Telugu", - "description": "Selects the Microsoft stemming tokenizer for Telugu." + "name": "ru", + "value": "ru", + "description": "Russian" }, { - "value": "turkish", - "name": "Turkish", - "description": "Selects the Microsoft stemming tokenizer for Turkish." + "name": "es", + "value": "es", + "description": "Spanish" }, { - "value": "ukrainian", - "name": "Ukrainian", - "description": "Selects the Microsoft stemming tokenizer for Ukrainian." + "name": "sv", + "value": "sv", + "description": "Swedish" }, { - "value": "urdu", - "name": "Urdu", - "description": "Selects the Microsoft stemming tokenizer for Urdu." + "name": "tr", + "value": "tr", + "description": "Turkish" } ] - }, - "description": "Lists the languages supported by the Microsoft language stemming tokenizer." + } }, - "MicrosoftLanguageStemmingTokenizer": { + "EntityRecognitionSkillV3": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.MicrosoftLanguageStemmingTokenizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" - } - ], + "description": "Using the Text Analytics API, extracts entities of different types from text.", "properties": { - "maxTokenLength": { - "type": "integer", - "format": "int32", - "default": 255, - "maximum": 300, - "description": "The maximum token length. Tokens longer than the maximum length are split. Maximum token length that can be used is 300 characters. Tokens longer than 300 characters are first split into tokens of length 300 and then each of those tokens is split based on the max token length set. Default is 255." + "categories": { + "type": "array", + "description": "A list of entity categories that should be extracted.", + "items": { + "type": "string" + } }, - "isSearchTokenizer": { - "type": "boolean", - "default": false, - "description": "A value indicating how the tokenizer is used. Set to true if used as the search tokenizer, set to false if used as the indexing tokenizer. Default is false." + "defaultLanguageCode": { + "type": "string", + "description": "A value indicating which language code to use. Default is `en`.", + "x-nullable": true }, - "language": { - "$ref": "#/definitions/MicrosoftStemmingTokenizerLanguage", - "description": "The language to use. The default is English." + "minimumPrecision": { + "type": "number", + "format": "double", + "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.", + "minimum": 0, + "maximum": 1 + }, + "modelVersion": { + "type": "string", + "description": "The version of the model to use when calling the Text Analytics API. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.", + "x-nullable": true } }, - "description": "Divides text using language-specific rules and reduces words to their base forms." - }, - "NGramTokenizer": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.NGramTokenizer", "allOf": [ { - "$ref": "#/definitions/LexicalTokenizer" + "$ref": "#/definitions/SearchIndexerSkill" } ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill" + }, + "ErrorAdditionalInfo": { + "type": "object", + "description": "The resource management error additional info.", "properties": { - "minGram": { - "type": "integer", - "format": "int32", - "default": 1, - "maximum": 300, - "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram." - }, - "maxGram": { - "type": "integer", - "format": "int32", - "default": 2, - "maximum": 300, - "description": "The maximum n-gram length. Default is 2. Maximum is 300." + "type": { + "type": "string", + "description": "The additional info type.", + "readOnly": true }, - "tokenChars": { - "type": "array", - "items": { - "$ref": "#/definitions/TokenCharacterKind", - "x-nullable": false - }, - "description": "Character classes to keep in the tokens." + "info": { + "type": "object", + "description": "The additional info.", + "additionalProperties": {}, + "readOnly": true } - }, - "description": "Tokenizes the input into n-grams of the given size(s). This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenizer.html" } }, - "PathHierarchyTokenizerV2": { + "ErrorDetail": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PathHierarchyTokenizerV2", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" - } - ], + "description": "The error detail.", "properties": { - "delimiter": { + "code": { "type": "string", - "format": "char", - "default": "/", - "description": "The delimiter character to use. Default is \"/\"." + "description": "The error code.", + "readOnly": true }, - "replacement": { + "message": { "type": "string", - "format": "char", - "default": "/", - "description": "A value that, if set, replaces the delimiter character. Default is \"/\"." + "description": "The error message.", + "readOnly": true }, - "maxTokenLength": { - "type": "integer", - "format": "int32", - "default": 300, - "maximum": 300, - "description": "The maximum token length. Default and maximum is 300." + "target": { + "type": "string", + "description": "The error target.", + "readOnly": true }, - "reverse": { - "x-ms-client-name": "ReverseTokenOrder", - "type": "boolean", - "default": false, - "description": "A value indicating whether to generate tokens in reverse order. Default is false." + "details": { + "type": "array", + "description": "The error details.", + "items": { + "$ref": "#/definitions/ErrorDetail" + }, + "readOnly": true }, - "skip": { - "x-ms-client-name": "NumberOfTokensToSkip", - "type": "integer", - "format": "int32", - "default": 0, - "description": "The number of initial tokens to skip. Default is 0." + "additionalInfo": { + "type": "array", + "description": "The error additional info.", + "items": { + "$ref": "#/definitions/ErrorAdditionalInfo" + }, + "readOnly": true } - }, - "description": "Tokenizer for path-like hierarchies. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/path/PathHierarchyTokenizer.html" } }, - "PatternTokenizer": { + "ErrorResponse": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternTokenizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" - } - ], + "description": "Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.).", "properties": { - "pattern": { - "type": "string", - "default": "\\W+", - "description": "A regular expression pattern to match token separators. Default is an expression that matches one or more non-word characters." - }, - "flags": { - "$ref": "#/definitions/RegexFlags", - "description": "Regular expression flags." - }, - "group": { - "type": "integer", - "format": "int32", - "default": -1, - "description": "The zero-based ordinal of the matching group in the regular expression pattern to extract into tokens. Use -1 if you want to use the entire pattern to split the input into tokens, irrespective of matching groups. Default is -1." + "error": { + "$ref": "#/definitions/ErrorDetail", + "description": "The error object." } - }, - "description": "Tokenizer that uses regex pattern matching to construct distinct tokens. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternTokenizer.html" } }, - "LuceneStandardTokenizer": { + "ExhaustiveKnnAlgorithmConfiguration": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StandardTokenizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" - } - ], + "description": "Contains configuration options specific to the exhaustive KNN algorithm used during querying, which will perform brute-force search across the entire vector index.", "properties": { - "maxTokenLength": { - "type": "integer", - "format": "int32", - "default": 255, - "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split." + "exhaustiveKnnParameters": { + "$ref": "#/definitions/ExhaustiveKnnParameters", + "description": "Contains the parameters specific to exhaustive KNN algorithm." } }, - "description": "Breaks text following the Unicode Text Segmentation rules. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/StandardTokenizer.html" - }, - "x-az-search-deprecated": true - }, - "LuceneStandardTokenizerV2": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StandardTokenizerV2", "allOf": [ { - "$ref": "#/definitions/LexicalTokenizer" + "$ref": "#/definitions/VectorSearchAlgorithmConfiguration" } ], + "x-ms-discriminator-value": "exhaustiveKnn" + }, + "ExhaustiveKnnParameters": { + "type": "object", + "description": "Contains the parameters specific to exhaustive KNN algorithm.", "properties": { - "maxTokenLength": { - "type": "integer", - "format": "int32", - "default": 255, - "maximum": 300, - "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters." + "metric": { + "$ref": "#/definitions/VectorSearchAlgorithmMetric", + "description": "The similarity metric to use for vector comparisons.", + "x-nullable": true } - }, - "description": "Breaks text following the Unicode Text Segmentation rules. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/StandardTokenizer.html" } }, - "UaxUrlEmailTokenizer": { + "FacetResult": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.UaxUrlEmailTokenizer", - "allOf": [ - { - "$ref": "#/definitions/LexicalTokenizer" - } - ], + "description": "A single bucket of a facet query result. Reports the number of documents with a field value falling within a particular range or having a particular value or interval.", "properties": { - "maxTokenLength": { + "count": { "type": "integer", - "format": "int32", - "default": 255, - "maximum": 300, - "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters." + "format": "int64", + "description": "The approximate count of documents falling within the bucket described by this facet.", + "readOnly": true + }, + "avg": { + "type": "number", + "format": "double", + "description": "The resulting total avg for the facet when a avg metric is requested.", + "readOnly": true + }, + "min": { + "type": "number", + "format": "double", + "description": "The resulting total min for the facet when a min metric is requested.", + "readOnly": true + }, + "max": { + "type": "number", + "format": "double", + "description": "The resulting total max for the facet when a max metric is requested.", + "readOnly": true + }, + "sum": { + "type": "number", + "format": "double", + "description": "The resulting total sum for the facet when a sum metric is requested.", + "readOnly": true + }, + "cardinality": { + "type": "integer", + "format": "int64", + "description": "The resulting total cardinality for the facet when a cardinality metric is requested.", + "readOnly": true + }, + "@search.facets": { + "type": "object", + "description": "The nested facet query results for the search operation, organized as a collection of buckets for each faceted field; null if the query did not contain any nested facets.", + "additionalProperties": { + "items": { + "$ref": "#/definitions/FacetResult" + }, + "type": "array" + }, + "readOnly": true, + "x-ms-client-name": "facets" } }, - "description": "Tokenizes urls and emails as one token. This tokenizer is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizer.html" - } + "additionalProperties": {} }, - "TokenFilter": { + "FieldMapping": { "type": "object", - "discriminator": "@odata.type", + "description": "Defines a mapping between a field in a data source and a target field in an index.", "properties": { - "@odata.type": { + "sourceFieldName": { + "type": "string", + "description": "The name of the field in the data source." + }, + "targetFieldName": { "type": "string", - "description": "A URI fragment specifying the type of token filter." + "description": "The name of the target field in the index. Same as the source field name by default." }, + "mappingFunction": { + "$ref": "#/definitions/FieldMappingFunction", + "description": "A function to apply to each source field value before indexing.", + "x-nullable": true + } + }, + "required": [ + "sourceFieldName" + ] + }, + "FieldMappingFunction": { + "type": "object", + "description": "Represents a function that transforms a value from a data source before indexing.", + "properties": { "name": { "type": "string", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/custom-analyzers-in-azure-search#index-attribute-reference" - }, - "description": "The name of the token filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." + "description": "The name of the field mapping function." + }, + "parameters": { + "type": "object", + "description": "A dictionary of parameter name/value pairs to pass to the function. Each value must be of a primitive type.", + "x-nullable": true, + "additionalProperties": {} } }, "required": [ - "@odata.type", "name" - ], - "description": "Base type for token filters.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } + ] }, - "AsciiFoldingTokenFilter": { + "FreshnessScoringFunction": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.AsciiFoldingTokenFilter", + "description": "Defines a function that boosts scores based on the value of a date-time field.", + "properties": { + "freshness": { + "$ref": "#/definitions/FreshnessScoringParameters", + "description": "Parameter values for the freshness scoring function." + } + }, + "required": [ + "freshness" + ], "allOf": [ { - "$ref": "#/definitions/TokenFilter" + "$ref": "#/definitions/ScoringFunction" } ], + "x-ms-discriminator-value": "freshness" + }, + "FreshnessScoringParameters": { + "type": "object", + "description": "Provides parameter values to a freshness scoring function.", "properties": { - "preserveOriginal": { - "type": "boolean", - "default": false, - "description": "A value indicating whether the original token will be kept. Default is false." + "boostingDuration": { + "type": "string", + "format": "duration", + "description": "The expiration period after which boosting will stop for a particular document." } }, - "description": "Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html" - } + "required": [ + "boostingDuration" + ] }, - "CjkBigramTokenFilterScripts": { - "type": "string", - "enum": [ - "han", - "hiragana", - "katakana", - "hangul" - ], - "x-ms-enum": { - "name": "CjkBigramTokenFilterScripts", - "modelAsString": false, - "values": [ - { - "value": "han", - "name": "Han", - "description": "Ignore Han script when forming bigrams of CJK terms." - }, - { - "value": "hiragana", - "name": "Hiragana", - "description": "Ignore Hiragana script when forming bigrams of CJK terms." - }, - { - "value": "katakana", - "name": "Katakana", - "description": "Ignore Katakana script when forming bigrams of CJK terms." - }, - { - "value": "hangul", - "name": "Hangul", - "description": "Ignore Hangul script when forming bigrams of CJK terms." - } - ] - }, - "description": "Scripts that can be ignored by CjkBigramTokenFilter." - }, - "CjkBigramTokenFilter": { + "GetIndexStatisticsResult": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.CjkBigramTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], + "description": "Statistics for a given index. Statistics are collected periodically and are not guaranteed to always be up-to-date.", "properties": { - "ignoreScripts": { - "type": "array", - "items": { - "$ref": "#/definitions/CjkBigramTokenFilterScripts", - "x-nullable": false - }, - "description": "The scripts to ignore." + "documentCount": { + "type": "integer", + "format": "int64", + "description": "The number of documents in the index.", + "readOnly": true }, - "outputUnigrams": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to output both unigrams and bigrams (if true), or just bigrams (if false). Default is false." + "storageSize": { + "type": "integer", + "format": "int64", + "description": "The amount of storage in bytes consumed by the index.", + "readOnly": true + }, + "vectorIndexSize": { + "type": "integer", + "format": "int64", + "description": "The amount of memory in bytes consumed by vectors in the index.", + "readOnly": true } }, - "description": "Forms bigrams of CJK terms that are generated from the standard tokenizer. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKBigramFilter.html" - } + "required": [ + "documentCount", + "storageSize", + "vectorIndexSize" + ] }, - "CommonGramTokenFilter": { + "HighWaterMarkChangeDetectionPolicy": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.CommonGramTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], + "description": "Defines a data change detection policy that captures changes based on the value of a high water mark column.", "properties": { - "commonWords": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The set of common words." - }, - "ignoreCase": { - "type": "boolean", - "default": false, - "description": "A value indicating whether common words matching will be case insensitive. Default is false." - }, - "queryMode": { - "x-ms-client-name": "UseQueryMode", - "type": "boolean", - "default": false, - "description": "A value that indicates whether the token filter is in query mode. When in query mode, the token filter generates bigrams and then removes common words and single terms followed by a common word. Default is false." + "highWaterMarkColumnName": { + "type": "string", + "description": "The name of the high water mark column." } }, "required": [ - "commonWords" + "highWaterMarkColumnName" ], - "description": "Construct bigrams for frequently occurring terms while indexing. Single terms are still indexed too, with bigrams overlaid. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/commongrams/CommonGramsFilter.html" - } + "allOf": [ + { + "$ref": "#/definitions/DataChangeDetectionPolicy" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy" }, - "DictionaryDecompounderTokenFilter": { + "HnswAlgorithmConfiguration": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.DictionaryDecompounderTokenFilter", + "description": "Contains configuration options specific to the HNSW approximate nearest neighbors algorithm used during indexing and querying. The HNSW algorithm offers a tunable trade-off between search speed and accuracy.", + "properties": { + "hnswParameters": { + "$ref": "#/definitions/HnswParameters", + "description": "Contains the parameters specific to HNSW algorithm." + } + }, "allOf": [ { - "$ref": "#/definitions/TokenFilter" + "$ref": "#/definitions/VectorSearchAlgorithmConfiguration" } ], + "x-ms-discriminator-value": "hnsw" + }, + "HnswParameters": { + "type": "object", + "description": "Contains the parameters specific to the HNSW algorithm.", "properties": { - "wordList": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of words to match against." - }, - "minWordSize": { + "m": { "type": "integer", "format": "int32", - "default": 5, - "maximum": 300, - "description": "The minimum word size. Only words longer than this get processed. Default is 5. Maximum is 300." + "description": "The number of bi-directional links created for every new element during construction. Increasing this parameter value may improve recall and reduce retrieval times for datasets with high intrinsic dimensionality at the expense of increased memory consumption and longer indexing time.", + "default": 4, + "minimum": 4, + "maximum": 10 }, - "minSubwordSize": { + "efConstruction": { "type": "integer", "format": "int32", - "default": 2, - "maximum": 300, - "description": "The minimum subword size. Only subwords longer than this are outputted. Default is 2. Maximum is 300." + "description": "The size of the dynamic list containing the nearest neighbors, which is used during index time. Increasing this parameter may improve index quality, at the expense of increased indexing time. At a certain point, increasing this parameter leads to diminishing returns.", + "default": 400, + "minimum": 100, + "maximum": 1000 }, - "maxSubwordSize": { + "efSearch": { "type": "integer", "format": "int32", - "default": 15, - "maximum": 300, - "description": "The maximum subword size. Only subwords shorter than this are outputted. Default is 15. Maximum is 300." + "description": "The size of the dynamic list containing the nearest neighbors, which is used during search time. Increasing this parameter may improve search results, at the expense of slower search. At a certain point, increasing this parameter leads to diminishing returns.", + "default": 500, + "minimum": 100, + "maximum": 1000 }, - "onlyLongestMatch": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to add only the longest matching subword to the output. Default is false." + "metric": { + "$ref": "#/definitions/VectorSearchAlgorithmMetric", + "description": "The similarity metric to use for vector comparisons.", + "x-nullable": true } - }, - "required": [ - "wordList" - ], - "description": "Decomposes compound words found in many Germanic languages. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/compound/DictionaryCompoundWordTokenFilter.html" } }, - "EdgeNGramTokenFilterSide": { + "HybridCountAndFacetMode": { "type": "string", + "description": "Determines whether the count and facets should includes all documents that matched the search query, or only the documents that are retrieved within the 'maxTextRecallSize' window. The default value is 'countAllResults'.", "enum": [ - "front", - "back" + "countRetrievableResults", + "countAllResults" ], "x-ms-enum": { - "name": "EdgeNGramTokenFilterSide", - "modelAsString": false, + "name": "HybridCountAndFacetMode", + "modelAsString": true, "values": [ { - "value": "front", - "name": "Front", - "description": "Specifies that the n-gram should be generated from the front of the input." + "name": "CountRetrievableResults", + "value": "countRetrievableResults", + "description": "Only include documents that were matched within the 'maxTextRecallSize' retrieval window when computing 'count' and 'facets'." }, { - "value": "back", - "name": "Back", - "description": "Specifies that the n-gram should be generated from the back of the input." + "name": "CountAllResults", + "value": "countAllResults", + "description": "Include all documents that were matched by the search query when computing 'count' and 'facets', regardless of whether or not those documents are within the 'maxTextRecallSize' retrieval window." } ] - }, - "description": "Specifies which side of the input an n-gram should be generated from." - }, - "EdgeNGramTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.EdgeNGramTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "minGram": { - "type": "integer", - "format": "int32", - "default": 1, - "description": "The minimum n-gram length. Default is 1. Must be less than the value of maxGram." - }, - "maxGram": { - "type": "integer", - "format": "int32", - "default": 2, - "description": "The maximum n-gram length. Default is 2." - }, - "side": { - "$ref": "#/definitions/EdgeNGramTokenFilterSide", - "default": "front", - "description": "Specifies which side of the input the n-gram should be generated from. Default is \"front\"." - } - }, - "description": "Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.html" - }, - "x-az-search-deprecated": true + } }, - "EdgeNGramTokenFilterV2": { + "HybridSearch": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.EdgeNGramTokenFilterV2", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], + "description": "TThe query parameters to configure hybrid search behaviors.", "properties": { - "minGram": { - "type": "integer", - "format": "int32", - "default": 1, - "maximum": 300, - "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram." - }, - "maxGram": { + "maxTextRecallSize": { "type": "integer", "format": "int32", - "default": 2, - "maximum": 300, - "description": "The maximum n-gram length. Default is 2. Maximum is 300." + "description": "Determines the maximum number of documents to be retrieved by the text query portion of a hybrid search request. Those documents will be combined with the documents matching the vector queries to produce a single final list of results. Choosing a larger maxTextRecallSize value will allow retrieving and paging through more documents (using the top and skip parameters), at the cost of higher resource utilization and higher latency. The value needs to be between 1 and 10,000. Default is 1000." }, - "side": { - "$ref": "#/definitions/EdgeNGramTokenFilterSide", - "default": "front", - "description": "Specifies which side of the input the n-gram should be generated from. Default is \"front\"." - } - }, - "description": "Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.html" - } - }, - "ElisionTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.ElisionTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "articles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The set of articles to remove." + "countAndFacetMode": { + "$ref": "#/definitions/HybridCountAndFacetMode", + "description": "Determines whether the count and facets should includes all documents that matched the search query, or only the documents that are retrieved within the 'maxTextRecallSize' window." } - }, - "description": "Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html" } }, - "KeepTokenFilter": { + "ImageAnalysisSkill": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeepTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], + "description": "A skill that analyzes image files. It extracts a rich set of visual features based on the image content.", "properties": { - "keepWords": { + "defaultLanguageCode": { + "$ref": "#/definitions/ImageAnalysisSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`." + }, + "visualFeatures": { "type": "array", + "description": "A list of visual features.", "items": { - "type": "string" - }, - "description": "The list of words to keep." + "$ref": "#/definitions/VisualFeature" + } }, - "keepWordsCase": { - "x-ms-client-name": "LowerCaseKeepWords", - "type": "boolean", - "default": false, - "description": "A value indicating whether to lower case all words first. Default is false." - } - }, - "required": [ - "keepWords" - ], - "description": "A token filter that only keeps tokens with text contained in a specified list of words. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/KeepWordFilter.html" - } - }, - "KeywordMarkerTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeywordMarkerTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "keywords": { + "details": { "type": "array", + "description": "A string indicating which domain-specific details to return.", "items": { - "type": "string" - }, - "description": "A list of words to mark as keywords." - }, - "ignoreCase": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to ignore case. If true, all words are converted to lower case first. Default is false." + "$ref": "#/definitions/ImageDetail" + } } }, - "required": [ - "keywords" - ], - "description": "Marks terms as keywords. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/KeywordMarkerFilter.html" - } - }, - "LengthTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.LengthTokenFilter", "allOf": [ { - "$ref": "#/definitions/TokenFilter" + "$ref": "#/definitions/SearchIndexerSkill" } ], - "properties": { - "min": { - "x-ms-client-name": "minLength", - "type": "integer", - "format": "int32", - "default": 0, - "maximum": 300, - "description": "The minimum length in characters. Default is 0. Maximum is 300. Must be less than the value of max." - }, - "max": { - "x-ms-client-name": "maxLength", - "type": "integer", - "format": "int32", - "default": 300, - "maximum": 300, - "description": "The maximum length in characters. Default and maximum is 300." - } - }, - "description": "Removes words that are too long or too short. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LengthFilter.html" - } - }, - "LimitTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.LimitTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "maxTokenCount": { - "type": "integer", - "format": "int32", - "default": 1, - "description": "The maximum number of tokens to produce. Default is 1." - }, - "consumeAllTokens": { - "type": "boolean", - "default": false, - "description": "A value indicating whether all tokens from the input must be consumed even if maxTokenCount is reached. Default is false." - } - }, - "description": "Limits the number of tokens while indexing. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LimitTokenCountFilter.html" - } - }, - "NGramTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.NGramTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "minGram": { - "type": "integer", - "format": "int32", - "default": 1, - "description": "The minimum n-gram length. Default is 1. Must be less than the value of maxGram." - }, - "maxGram": { - "type": "integer", - "format": "int32", - "default": 2, - "description": "The maximum n-gram length. Default is 2." - } - }, - "description": "Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenFilter.html" - }, - "x-az-search-deprecated": true - }, - "NGramTokenFilterV2": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.NGramTokenFilterV2", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "minGram": { - "type": "integer", - "format": "int32", - "default": 1, - "maximum": 300, - "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram." - }, - "maxGram": { - "type": "integer", - "format": "int32", - "default": 2, - "maximum": 300, - "description": "The maximum n-gram length. Default is 2. Maximum is 300." - } - }, - "description": "Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenFilter.html" - } - }, - "PatternCaptureTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternCaptureTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "patterns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of patterns to match against each token." - }, - "preserveOriginal": { - "type": "boolean", - "default": true, - "description": "A value indicating whether to return the original token even if one of the patterns matches. Default is true." - } - }, - "required": [ - "patterns" - ], - "description": "Uses Java regexes to emit multiple tokens - one for each capture group in one or more patterns. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternCaptureGroupTokenFilter.html" - } - }, - "PatternReplaceTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternReplaceTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "pattern": { - "type": "string", - "description": "A regular expression pattern." - }, - "replacement": { - "type": "string", - "description": "The replacement text." - } - }, - "required": [ - "pattern", - "replacement" - ], - "description": "A character filter that replaces characters in the input string. It uses a regular expression to identify character sequences to preserve and a replacement pattern to identify characters to replace. For example, given the input text \"aa bb aa bb\", pattern \"(aa)\\s+(bb)\", and replacement \"$1#$2\", the result would be \"aa#bb aa#bb\". This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternReplaceFilter.html" - } + "x-ms-discriminator-value": "#Microsoft.Skills.Vision.ImageAnalysisSkill" }, - "PhoneticEncoder": { + "ImageAnalysisSkillLanguage": { "type": "string", + "description": "The language codes supported for input by ImageAnalysisSkill.", "enum": [ - "metaphone", - "doubleMetaphone", - "soundex", - "refinedSoundex", - "caverphone1", - "caverphone2", - "cologne", - "nysiis", - "koelnerPhonetik", - "haasePhonetik", - "beiderMorse" + "ar", + "az", + "bg", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "el", + "en", + "es", + "et", + "eu", + "fi", + "fr", + "ga", + "gl", + "he", + "hi", + "hr", + "hu", + "id", + "it", + "ja", + "kk", + "ko", + "lt", + "lv", + "mk", + "ms", + "nb", + "nl", + "pl", + "prs", + "pt-BR", + "pt", + "pt-PT", + "ro", + "ru", + "sk", + "sl", + "sr-Cyrl", + "sr-Latn", + "sv", + "th", + "tr", + "uk", + "vi", + "zh", + "zh-Hans", + "zh-Hant" ], "x-ms-enum": { - "name": "PhoneticEncoder", - "modelAsString": false, + "name": "ImageAnalysisSkillLanguage", + "modelAsString": true, "values": [ { - "value": "metaphone", - "name": "Metaphone", - "description": "Encodes a token into a Metaphone value." + "name": "ar", + "value": "ar", + "description": "Arabic" }, { - "value": "doubleMetaphone", - "name": "DoubleMetaphone", - "description": "Encodes a token into a double metaphone value." + "name": "az", + "value": "az", + "description": "Azerbaijani" }, { - "value": "soundex", - "name": "Soundex", - "description": "Encodes a token into a Soundex value." + "name": "bg", + "value": "bg", + "description": "Bulgarian" }, { - "value": "refinedSoundex", - "name": "RefinedSoundex", - "description": "Encodes a token into a Refined Soundex value." + "name": "bs", + "value": "bs", + "description": "Bosnian Latin" }, { - "value": "caverphone1", - "name": "Caverphone1", - "description": "Encodes a token into a Caverphone 1.0 value." + "name": "ca", + "value": "ca", + "description": "Catalan" }, { - "value": "caverphone2", - "name": "Caverphone2", - "description": "Encodes a token into a Caverphone 2.0 value." + "name": "cs", + "value": "cs", + "description": "Czech" }, { - "value": "cologne", - "name": "Cologne", - "description": "Encodes a token into a Cologne Phonetic value." + "name": "cy", + "value": "cy", + "description": "Welsh" }, { - "value": "nysiis", - "name": "Nysiis", - "description": "Encodes a token into a NYSIIS value." + "name": "da", + "value": "da", + "description": "Danish" }, { - "value": "koelnerPhonetik", - "name": "KoelnerPhonetik", - "description": "Encodes a token using the Kölner Phonetik algorithm." + "name": "de", + "value": "de", + "description": "German" }, { - "value": "haasePhonetik", - "name": "HaasePhonetik", - "description": "Encodes a token using the Haase refinement of the Kölner Phonetik algorithm." + "name": "el", + "value": "el", + "description": "Greek" }, { - "value": "beiderMorse", - "name": "BeiderMorse", - "description": "Encodes a token into a Beider-Morse value." - } - ] - }, - "description": "Identifies the type of phonetic encoder to use with a PhoneticTokenFilter." - }, - "PhoneticTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PhoneticTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "encoder": { - "$ref": "#/definitions/PhoneticEncoder", - "default": "metaphone", - "description": "The phonetic encoder to use. Default is \"metaphone\"." - }, - "replace": { - "x-ms-client-name": "ReplaceOriginalTokens", - "type": "boolean", - "default": true, - "description": "A value indicating whether encoded tokens should replace original tokens. If false, encoded tokens are added as synonyms. Default is true." - } - }, - "description": "Create tokens for phonetic matches. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "https://lucene.apache.org/core/4_10_3/analyzers-phonetic/org/apache/lucene/analysis/phonetic/package-tree.html" - } - }, - "ShingleTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.ShingleTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "maxShingleSize": { - "type": "integer", - "format": "int32", - "default": 2, - "minimum": 2, - "description": "The maximum shingle size. Default and minimum value is 2." - }, - "minShingleSize": { - "type": "integer", - "format": "int32", - "default": 2, - "minimum": 2, - "description": "The minimum shingle size. Default and minimum value is 2. Must be less than the value of maxShingleSize." - }, - "outputUnigrams": { - "type": "boolean", - "default": true, - "description": "A value indicating whether the output stream will contain the input tokens (unigrams) as well as shingles. Default is true." - }, - "outputUnigramsIfNoShingles": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to output unigrams for those times when no shingles are available. This property takes precedence when outputUnigrams is set to false. Default is false." - }, - "tokenSeparator": { - "type": "string", - "default": " ", - "description": "The string to use when joining adjacent tokens to form a shingle. Default is a single space (\" \")." - }, - "filterToken": { - "type": "string", - "default": "_", - "description": "The string to insert for each position at which there is no token. Default is an underscore (\"_\")." - } - }, - "description": "Creates combinations of tokens as a single token. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/shingle/ShingleFilter.html" - } - }, - "SnowballTokenFilterLanguage": { - "type": "string", - "enum": [ - "armenian", - "basque", - "catalan", - "danish", - "dutch", - "english", - "finnish", - "french", - "german", - "german2", - "hungarian", - "italian", - "kp", - "lovins", - "norwegian", - "porter", - "portuguese", - "romanian", - "russian", - "spanish", - "swedish", - "turkish" - ], - "x-ms-enum": { - "name": "SnowballTokenFilterLanguage", - "modelAsString": false, - "values": [ + "name": "en", + "value": "en", + "description": "English" + }, { - "value": "armenian", - "name": "Armenian", - "description": "Selects the Lucene Snowball stemming tokenizer for Armenian." + "name": "es", + "value": "es", + "description": "Spanish" }, { - "value": "basque", - "name": "Basque", - "description": "Selects the Lucene Snowball stemming tokenizer for Basque." + "name": "et", + "value": "et", + "description": "Estonian" }, { - "value": "catalan", - "name": "Catalan", - "description": "Selects the Lucene Snowball stemming tokenizer for Catalan." + "name": "eu", + "value": "eu", + "description": "Basque" }, { - "value": "danish", - "name": "Danish", - "description": "Selects the Lucene Snowball stemming tokenizer for Danish." + "name": "fi", + "value": "fi", + "description": "Finnish" }, { - "value": "dutch", - "name": "Dutch", - "description": "Selects the Lucene Snowball stemming tokenizer for Dutch." + "name": "fr", + "value": "fr", + "description": "French" }, { - "value": "english", - "name": "English", - "description": "Selects the Lucene Snowball stemming tokenizer for English." + "name": "ga", + "value": "ga", + "description": "Irish" }, { - "value": "finnish", - "name": "Finnish", - "description": "Selects the Lucene Snowball stemming tokenizer for Finnish." + "name": "gl", + "value": "gl", + "description": "Galician" }, { - "value": "french", - "name": "French", - "description": "Selects the Lucene Snowball stemming tokenizer for French." + "name": "he", + "value": "he", + "description": "Hebrew" }, { - "value": "german", - "name": "German", - "description": "Selects the Lucene Snowball stemming tokenizer for German." + "name": "hi", + "value": "hi", + "description": "Hindi" }, { - "value": "german2", - "name": "German2", - "description": "Selects the Lucene Snowball stemming tokenizer that uses the German variant algorithm." + "name": "hr", + "value": "hr", + "description": "Croatian" }, { - "value": "hungarian", - "name": "Hungarian", - "description": "Selects the Lucene Snowball stemming tokenizer for Hungarian." + "name": "hu", + "value": "hu", + "description": "Hungarian" }, { - "value": "italian", - "name": "Italian", - "description": "Selects the Lucene Snowball stemming tokenizer for Italian." + "name": "id", + "value": "id", + "description": "Indonesian" }, { - "value": "kp", - "name": "Kp", - "description": "Selects the Lucene Snowball stemming tokenizer for Dutch that uses the Kraaij-Pohlmann stemming algorithm." + "name": "it", + "value": "it", + "description": "Italian" }, { - "value": "lovins", - "name": "Lovins", - "description": "Selects the Lucene Snowball stemming tokenizer for English that uses the Lovins stemming algorithm." + "name": "ja", + "value": "ja", + "description": "Japanese" }, { - "value": "norwegian", - "name": "Norwegian", - "description": "Selects the Lucene Snowball stemming tokenizer for Norwegian." + "name": "kk", + "value": "kk", + "description": "Kazakh" }, { - "value": "porter", - "name": "Porter", - "description": "Selects the Lucene Snowball stemming tokenizer for English that uses the Porter stemming algorithm." + "name": "ko", + "value": "ko", + "description": "Korean" }, { - "value": "portuguese", - "name": "Portuguese", - "description": "Selects the Lucene Snowball stemming tokenizer for Portuguese." + "name": "lt", + "value": "lt", + "description": "Lithuanian" }, { - "value": "romanian", - "name": "Romanian", - "description": "Selects the Lucene Snowball stemming tokenizer for Romanian." + "name": "lv", + "value": "lv", + "description": "Latvian" }, { - "value": "russian", - "name": "Russian", - "description": "Selects the Lucene Snowball stemming tokenizer for Russian." + "name": "mk", + "value": "mk", + "description": "Macedonian" }, { - "value": "spanish", - "name": "Spanish", - "description": "Selects the Lucene Snowball stemming tokenizer for Spanish." + "name": "ms", + "value": "ms", + "description": "Malay Malaysia" }, { - "value": "swedish", - "name": "Swedish", - "description": "Selects the Lucene Snowball stemming tokenizer for Swedish." + "name": "nb", + "value": "nb", + "description": "Norwegian (Bokmal)" }, { - "value": "turkish", - "name": "Turkish", - "description": "Selects the Lucene Snowball stemming tokenizer for Turkish." - } - ] - }, - "description": "The language to use for a Snowball token filter." - }, - "SnowballTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.SnowballTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "language": { - "$ref": "#/definitions/SnowballTokenFilterLanguage", - "description": "The language to use." - } - }, - "required": [ - "language" - ], - "description": "A filter that stems words using a Snowball-generated stemmer. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/snowball/SnowballFilter.html" - } - }, - "StemmerTokenFilterLanguage": { - "type": "string", - "enum": [ - "arabic", - "armenian", - "basque", - "brazilian", - "bulgarian", - "catalan", - "czech", - "danish", - "dutch", - "dutchKp", - "english", - "lightEnglish", - "minimalEnglish", - "possessiveEnglish", - "porter2", - "lovins", - "finnish", - "lightFinnish", - "french", - "lightFrench", - "minimalFrench", - "galician", - "minimalGalician", - "german", - "german2", - "lightGerman", - "minimalGerman", - "greek", - "hindi", - "hungarian", - "lightHungarian", - "indonesian", - "irish", - "italian", - "lightItalian", - "sorani", - "latvian", - "norwegian", - "lightNorwegian", - "minimalNorwegian", - "lightNynorsk", - "minimalNynorsk", - "portuguese", - "lightPortuguese", - "minimalPortuguese", - "portugueseRslp", - "romanian", - "russian", - "lightRussian", - "spanish", - "lightSpanish", - "swedish", - "lightSwedish", - "turkish" - ], - "x-ms-enum": { - "name": "StemmerTokenFilterLanguage", - "modelAsString": false, - "values": [ - { - "value": "arabic", - "name": "Arabic", - "description": "Selects the Lucene stemming tokenizer for Arabic." - }, - { - "value": "armenian", - "name": "Armenian", - "description": "Selects the Lucene stemming tokenizer for Armenian." - }, - { - "value": "basque", - "name": "Basque", - "description": "Selects the Lucene stemming tokenizer for Basque." - }, - { - "value": "brazilian", - "name": "Brazilian", - "description": "Selects the Lucene stemming tokenizer for Portuguese (Brazil)." - }, - { - "value": "bulgarian", - "name": "Bulgarian", - "description": "Selects the Lucene stemming tokenizer for Bulgarian." - }, - { - "value": "catalan", - "name": "Catalan", - "description": "Selects the Lucene stemming tokenizer for Catalan." - }, - { - "value": "czech", - "name": "Czech", - "description": "Selects the Lucene stemming tokenizer for Czech." - }, - { - "value": "danish", - "name": "Danish", - "description": "Selects the Lucene stemming tokenizer for Danish." - }, - { - "value": "dutch", - "name": "Dutch", - "description": "Selects the Lucene stemming tokenizer for Dutch." + "name": "nl", + "value": "nl", + "description": "Dutch" }, { - "value": "dutchKp", - "name": "DutchKp", - "description": "Selects the Lucene stemming tokenizer for Dutch that uses the Kraaij-Pohlmann stemming algorithm." + "name": "pl", + "value": "pl", + "description": "Polish" }, { - "value": "english", - "name": "English", - "description": "Selects the Lucene stemming tokenizer for English." + "name": "prs", + "value": "prs", + "description": "Dari" }, { - "value": "lightEnglish", - "name": "LightEnglish", - "description": "Selects the Lucene stemming tokenizer for English that does light stemming." + "name": "pt-BR", + "value": "pt-BR", + "description": "Portuguese-Brazil" }, { - "value": "minimalEnglish", - "name": "MinimalEnglish", - "description": "Selects the Lucene stemming tokenizer for English that does minimal stemming." + "name": "pt", + "value": "pt", + "description": "Portuguese-Portugal" }, { - "value": "possessiveEnglish", - "name": "PossessiveEnglish", - "description": "Selects the Lucene stemming tokenizer for English that removes trailing possessives from words." + "name": "pt-PT", + "value": "pt-PT", + "description": "Portuguese-Portugal" }, { - "value": "porter2", - "name": "Porter2", - "description": "Selects the Lucene stemming tokenizer for English that uses the Porter2 stemming algorithm." + "name": "ro", + "value": "ro", + "description": "Romanian" }, { - "value": "lovins", - "name": "Lovins", - "description": "Selects the Lucene stemming tokenizer for English that uses the Lovins stemming algorithm." + "name": "ru", + "value": "ru", + "description": "Russian" }, { - "value": "finnish", - "name": "Finnish", - "description": "Selects the Lucene stemming tokenizer for Finnish." + "name": "sk", + "value": "sk", + "description": "Slovak" }, { - "value": "lightFinnish", - "name": "LightFinnish", - "description": "Selects the Lucene stemming tokenizer for Finnish that does light stemming." + "name": "sl", + "value": "sl", + "description": "Slovenian" }, { - "value": "french", - "name": "French", - "description": "Selects the Lucene stemming tokenizer for French." + "name": "sr-Cyrl", + "value": "sr-Cyrl", + "description": "Serbian - Cyrillic RS" }, { - "value": "lightFrench", - "name": "LightFrench", - "description": "Selects the Lucene stemming tokenizer for French that does light stemming." + "name": "sr-Latn", + "value": "sr-Latn", + "description": "Serbian - Latin RS" }, { - "value": "minimalFrench", - "name": "MinimalFrench", - "description": "Selects the Lucene stemming tokenizer for French that does minimal stemming." + "name": "sv", + "value": "sv", + "description": "Swedish" }, { - "value": "galician", - "name": "Galician", - "description": "Selects the Lucene stemming tokenizer for Galician." + "name": "th", + "value": "th", + "description": "Thai" }, { - "value": "minimalGalician", - "name": "MinimalGalician", - "description": "Selects the Lucene stemming tokenizer for Galician that does minimal stemming." + "name": "tr", + "value": "tr", + "description": "Turkish" }, { - "value": "german", - "name": "German", - "description": "Selects the Lucene stemming tokenizer for German." + "name": "uk", + "value": "uk", + "description": "Ukrainian" }, { - "value": "german2", - "name": "German2", - "description": "Selects the Lucene stemming tokenizer that uses the German variant algorithm." + "name": "vi", + "value": "vi", + "description": "Vietnamese" }, { - "value": "lightGerman", - "name": "LightGerman", - "description": "Selects the Lucene stemming tokenizer for German that does light stemming." + "name": "zh", + "value": "zh", + "description": "Chinese Simplified" }, { - "value": "minimalGerman", - "name": "MinimalGerman", - "description": "Selects the Lucene stemming tokenizer for German that does minimal stemming." + "name": "zh-Hans", + "value": "zh-Hans", + "description": "Chinese Simplified" }, { - "value": "greek", - "name": "Greek", - "description": "Selects the Lucene stemming tokenizer for Greek." - }, + "name": "zh-Hant", + "value": "zh-Hant", + "description": "Chinese Traditional" + } + ] + } + }, + "ImageDetail": { + "type": "string", + "description": "A string indicating which domain-specific details to return.", + "enum": [ + "celebrities", + "landmarks" + ], + "x-ms-enum": { + "name": "ImageDetail", + "modelAsString": true, + "values": [ { - "value": "hindi", - "name": "Hindi", - "description": "Selects the Lucene stemming tokenizer for Hindi." + "name": "Celebrities", + "value": "celebrities", + "description": "Details recognized as celebrities." }, { - "value": "hungarian", - "name": "Hungarian", - "description": "Selects the Lucene stemming tokenizer for Hungarian." - }, + "name": "Landmarks", + "value": "landmarks", + "description": "Details recognized as landmarks." + } + ] + } + }, + "IndexAction": { + "type": "object", + "description": "Represents an index action that operates on a document.", + "properties": { + "@search.action": { + "$ref": "#/definitions/IndexActionType", + "description": "The operation to perform on a document in an indexing batch.", + "x-ms-client-name": "actionType" + } + }, + "additionalProperties": {} + }, + "IndexActionType": { + "type": "string", + "description": "The operation to perform on a document in an indexing batch.", + "enum": [ + "upload", + "merge", + "mergeOrUpload", + "delete" + ], + "x-ms-enum": { + "name": "IndexActionType", + "modelAsString": true, + "values": [ { - "value": "lightHungarian", - "name": "LightHungarian", - "description": "Selects the Lucene stemming tokenizer for Hungarian that does light stemming." + "name": "Upload", + "value": "upload", + "description": "Inserts the document into the index if it is new and updates it if it exists. All fields are replaced in the update case." }, { - "value": "indonesian", - "name": "Indonesian", - "description": "Selects the Lucene stemming tokenizer for Indonesian." + "name": "Merge", + "value": "merge", + "description": "Merges the specified field values with an existing document. If the document does not exist, the merge will fail. Any field you specify in a merge will replace the existing field in the document. This also applies to collections of primitive and complex types." }, { - "value": "irish", - "name": "Irish", - "description": "Selects the Lucene stemming tokenizer for Irish." + "name": "MergeOrUpload", + "value": "mergeOrUpload", + "description": "Behaves like merge if a document with the given key already exists in the index. If the document does not exist, it behaves like upload with a new document." }, { - "value": "italian", - "name": "Italian", - "description": "Selects the Lucene stemming tokenizer for Italian." + "name": "Delete", + "value": "delete", + "description": "Removes the specified document from the index. Any field you specify in a delete operation other than the key field will be ignored. If you want to remove an individual field from a document, use merge instead and set the field explicitly to null." + } + ] + } + }, + "IndexBatch": { + "type": "object", + "description": "Contains a batch of document write actions to send to the index.", + "properties": { + "value": { + "type": "array", + "description": "The actions in the batch.", + "items": { + "$ref": "#/definitions/IndexAction" + } + } + }, + "required": [ + "value" + ] + }, + "IndexDocumentsResult": { + "type": "object", + "description": "Response containing the status of operations for all documents in the indexing request.", + "properties": { + "value": { + "type": "array", + "description": "The list of status information for each document in the indexing request.", + "items": { + "$ref": "#/definitions/IndexingResult" }, + "readOnly": true + } + }, + "required": [ + "value" + ] + }, + "IndexProjectionMode": { + "type": "string", + "description": "Defines behavior of the index projections in relation to the rest of the indexer.", + "enum": [ + "skipIndexingParentDocuments", + "includeIndexingParentDocuments" + ], + "x-ms-enum": { + "name": "IndexProjectionMode", + "modelAsString": true, + "values": [ { - "value": "lightItalian", - "name": "LightItalian", - "description": "Selects the Lucene stemming tokenizer for Italian that does light stemming." + "name": "SkipIndexingParentDocuments", + "value": "skipIndexingParentDocuments", + "description": "The source document will be skipped from writing into the indexer's target index." }, { - "value": "sorani", - "name": "Sorani", - "description": "Selects the Lucene stemming tokenizer for Sorani." - }, - { - "value": "latvian", - "name": "Latvian", - "description": "Selects the Lucene stemming tokenizer for Latvian." - }, - { - "value": "norwegian", - "name": "Norwegian", - "description": "Selects the Lucene stemming tokenizer for Norwegian (Bokmål)." - }, - { - "value": "lightNorwegian", - "name": "LightNorwegian", - "description": "Selects the Lucene stemming tokenizer for Norwegian (Bokmål) that does light stemming." - }, - { - "value": "minimalNorwegian", - "name": "MinimalNorwegian", - "description": "Selects the Lucene stemming tokenizer for Norwegian (Bokmål) that does minimal stemming." - }, - { - "value": "lightNynorsk", - "name": "LightNynorsk", - "description": "Selects the Lucene stemming tokenizer for Norwegian (Nynorsk) that does light stemming." - }, - { - "value": "minimalNynorsk", - "name": "MinimalNynorsk", - "description": "Selects the Lucene stemming tokenizer for Norwegian (Nynorsk) that does minimal stemming." - }, - { - "value": "portuguese", - "name": "Portuguese", - "description": "Selects the Lucene stemming tokenizer for Portuguese." - }, - { - "value": "lightPortuguese", - "name": "LightPortuguese", - "description": "Selects the Lucene stemming tokenizer for Portuguese that does light stemming." - }, - { - "value": "minimalPortuguese", - "name": "MinimalPortuguese", - "description": "Selects the Lucene stemming tokenizer for Portuguese that does minimal stemming." - }, - { - "value": "portugueseRslp", - "name": "PortugueseRslp", - "description": "Selects the Lucene stemming tokenizer for Portuguese that uses the RSLP stemming algorithm." - }, - { - "value": "romanian", - "name": "Romanian", - "description": "Selects the Lucene stemming tokenizer for Romanian." - }, - { - "value": "russian", - "name": "Russian", - "description": "Selects the Lucene stemming tokenizer for Russian." - }, - { - "value": "lightRussian", - "name": "LightRussian", - "description": "Selects the Lucene stemming tokenizer for Russian that does light stemming." - }, - { - "value": "spanish", - "name": "Spanish", - "description": "Selects the Lucene stemming tokenizer for Spanish." - }, - { - "value": "lightSpanish", - "name": "LightSpanish", - "description": "Selects the Lucene stemming tokenizer for Spanish that does light stemming." - }, - { - "value": "swedish", - "name": "Swedish", - "description": "Selects the Lucene stemming tokenizer for Swedish." - }, - { - "value": "lightSwedish", - "name": "LightSwedish", - "description": "Selects the Lucene stemming tokenizer for Swedish that does light stemming." - }, - { - "value": "turkish", - "name": "Turkish", - "description": "Selects the Lucene stemming tokenizer for Turkish." + "name": "IncludeIndexingParentDocuments", + "value": "includeIndexingParentDocuments", + "description": "The source document will be written into the indexer's target index. This is the default pattern." } ] - }, - "description": "The language to use for a stemmer token filter." + } }, - "StemmerTokenFilter": { + "IndexStatisticsSummary": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StemmerTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], + "description": "Statistics for a given index. Statistics are collected periodically and are not guaranteed to always be up-to-date.", "properties": { - "language": { - "$ref": "#/definitions/StemmerTokenFilterLanguage", - "description": "The language to use." + "name": { + "type": "string", + "description": "The name of the index." + }, + "documentCount": { + "type": "integer", + "format": "int64", + "description": "The number of documents in the index.", + "readOnly": true + }, + "storageSize": { + "type": "integer", + "format": "int64", + "description": "The amount of storage in bytes consumed by the index.", + "readOnly": true + }, + "vectorIndexSize": { + "type": "integer", + "format": "int64", + "description": "The amount of memory in bytes consumed by vectors in the index.", + "readOnly": true } }, "required": [ - "language" - ], - "description": "Language specific stemming filter. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#TokenFilters" - } + "name", + "documentCount", + "storageSize", + "vectorIndexSize" + ] }, - "StemmerOverrideTokenFilter": { + "IndexedOneLakeKnowledgeSource": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StemmerOverrideTokenFilter", + "description": "Configuration for OneLake knowledge source.", + "properties": { + "indexedOneLakeParameters": { + "$ref": "#/definitions/IndexedOneLakeKnowledgeSourceParameters", + "description": "The parameters for the knowledge source." + } + }, + "required": [ + "indexedOneLakeParameters" + ], "allOf": [ { - "$ref": "#/definitions/TokenFilter" + "$ref": "#/definitions/KnowledgeSource" } ], + "x-ms-discriminator-value": "indexedOneLake" + }, + "IndexedOneLakeKnowledgeSourceParameters": { + "type": "object", + "description": "Parameters for OneLake knowledge source.", "properties": { - "rules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of stemming rules in the following format: \"word => stem\", for example: \"ran => run\"." + "fabricWorkspaceId": { + "type": "string", + "description": "OneLake workspace ID." + }, + "lakehouseId": { + "type": "string", + "description": "Specifies which OneLake lakehouse to access." + }, + "targetPath": { + "type": "string", + "description": "Optional OneLakehouse folder or shortcut to filter OneLake content.", + "x-nullable": true + }, + "ingestionParameters": { + "$ref": "#/definitions/KnowledgeSourceIngestionParameters", + "description": "Consolidates all general ingestion settings." + }, + "createdResources": { + "$ref": "#/definitions/CreatedResources", + "description": "Resources created by the knowledge source.", + "readOnly": true } }, "required": [ - "rules" + "fabricWorkspaceId", + "lakehouseId" + ] + }, + "IndexedOneLakeKnowledgeSourceParams": { + "type": "object", + "description": "Specifies runtime parameters for a indexed OneLake knowledge source", + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSourceParams" + } ], - "description": "Provides the ability to override other stemming filters with custom dictionary-based stemming. Any dictionary-stemmed terms will be marked as keywords so that they will not be stemmed with stemmers down the chain. Must be placed before any stemming filters. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/StemmerOverrideFilter.html" - } + "x-ms-discriminator-value": "indexedOneLake" }, - "StopwordsList": { + "IndexedSharePointContainerName": { "type": "string", + "description": "Specifies which SharePoint libraries to access.", "enum": [ - "arabic", - "armenian", - "basque", - "brazilian", - "bulgarian", - "catalan", - "czech", - "danish", - "dutch", - "english", - "finnish", - "french", - "galician", - "german", - "greek", - "hindi", - "hungarian", - "indonesian", - "irish", - "italian", - "latvian", - "norwegian", - "persian", - "portuguese", - "romanian", - "russian", - "sorani", - "spanish", - "swedish", - "thai", - "turkish" + "defaultSiteLibrary", + "allSiteLibraries", + "useQuery" ], "x-ms-enum": { - "name": "StopwordsList", - "modelAsString": false, + "name": "IndexedSharePointContainerName", + "modelAsString": true, "values": [ { - "value": "arabic", - "name": "Arabic", - "description": "Selects the stopword list for Arabic." - }, - { - "value": "armenian", - "name": "Armenian", - "description": "Selects the stopword list for Armenian." - }, - { - "value": "basque", - "name": "Basque", - "description": "Selects the stopword list for Basque." - }, - { - "value": "brazilian", - "name": "Brazilian", - "description": "Selects the stopword list for Portuguese (Brazil)." - }, - { - "value": "bulgarian", - "name": "Bulgarian", - "description": "Selects the stopword list for Bulgarian." - }, - { - "value": "catalan", - "name": "Catalan", - "description": "Selects the stopword list for Catalan." - }, - { - "value": "czech", - "name": "Czech", - "description": "Selects the stopword list for Czech." + "name": "DefaultSiteLibrary", + "value": "defaultSiteLibrary", + "description": "Index content from the site's default document library." }, { - "value": "danish", - "name": "Danish", - "description": "Selects the stopword list for Danish." - }, - { - "value": "dutch", - "name": "Dutch", - "description": "Selects the stopword list for Dutch." + "name": "AllSiteLibraries", + "value": "allSiteLibraries", + "description": "Index content from every document library in the site." }, { - "value": "english", - "name": "English", - "description": "Selects the stopword list for English." - }, - { - "value": "finnish", - "name": "Finnish", - "description": "Selects the stopword list for Finnish." - }, - { - "value": "french", - "name": "French", - "description": "Selects the stopword list for French." - }, - { - "value": "galician", - "name": "Galician", - "description": "Selects the stopword list for Galician." - }, - { - "value": "german", - "name": "German", - "description": "Selects the stopword list for German." - }, - { - "value": "greek", - "name": "Greek", - "description": "Selects the stopword list for Greek." - }, - { - "value": "hindi", - "name": "Hindi", - "description": "Selects the stopword list for Hindi." - }, - { - "value": "hungarian", - "name": "Hungarian", - "description": "Selects the stopword list for Hungarian." - }, - { - "value": "indonesian", - "name": "Indonesian", - "description": "Selects the stopword list for Indonesian." - }, - { - "value": "irish", - "name": "Irish", - "description": "Selects the stopword list for Irish." - }, - { - "value": "italian", - "name": "Italian", - "description": "Selects the stopword list for Italian." - }, - { - "value": "latvian", - "name": "Latvian", - "description": "Selects the stopword list for Latvian." - }, - { - "value": "norwegian", - "name": "Norwegian", - "description": "Selects the stopword list for Norwegian." - }, - { - "value": "persian", - "name": "Persian", - "description": "Selects the stopword list for Persian." - }, - { - "value": "portuguese", - "name": "Portuguese", - "description": "Selects the stopword list for Portuguese." - }, - { - "value": "romanian", - "name": "Romanian", - "description": "Selects the stopword list for Romanian." - }, - { - "value": "russian", - "name": "Russian", - "description": "Selects the stopword list for Russian." - }, - { - "value": "sorani", - "name": "Sorani", - "description": "Selects the stopword list for Sorani." - }, - { - "value": "spanish", - "name": "Spanish", - "description": "Selects the stopword list for Spanish." - }, - { - "value": "swedish", - "name": "Swedish", - "description": "Selects the stopword list for Swedish." - }, - { - "value": "thai", - "name": "Thai", - "description": "Selects the stopword list for Thai." - }, - { - "value": "turkish", - "name": "Turkish", - "description": "Selects the stopword list for Turkish." + "name": "UseQuery", + "value": "useQuery", + "description": "Use a query to filter SharePoint content." } ] - }, - "description": "Identifies a predefined list of language-specific stopwords." + } }, - "StopwordsTokenFilter": { + "IndexedSharePointKnowledgeSource": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.StopwordsTokenFilter", + "description": "Configuration for SharePoint knowledge source.", + "properties": { + "indexedSharePointParameters": { + "$ref": "#/definitions/IndexedSharePointKnowledgeSourceParameters", + "description": "The parameters for the knowledge source." + } + }, + "required": [ + "indexedSharePointParameters" + ], "allOf": [ { - "$ref": "#/definitions/TokenFilter" + "$ref": "#/definitions/KnowledgeSource" } ], + "x-ms-discriminator-value": "indexedSharePoint" + }, + "IndexedSharePointKnowledgeSourceParameters": { + "type": "object", + "description": "Parameters for SharePoint knowledge source.", "properties": { - "stopwords": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of stopwords. This property and the stopwords list property cannot both be set." + "connectionString": { + "type": "string", + "description": "SharePoint connection string with format: SharePointOnlineEndpoint=[SharePoint site url];ApplicationId=[Azure AD App ID];ApplicationSecret=[Azure AD App client secret];TenantId=[SharePoint site tenant id]" }, - "stopwordsList": { - "$ref": "#/definitions/StopwordsList", - "default": "english", - "description": "A predefined list of stopwords to use. This property and the stopwords property cannot both be set. Default is English." + "containerName": { + "$ref": "#/definitions/IndexedSharePointContainerName", + "description": "Specifies which SharePoint libraries to access." }, - "ignoreCase": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to ignore case. If true, all words are converted to lower case first. Default is false." + "query": { + "type": "string", + "description": "Optional query to filter SharePoint content.", + "x-nullable": true }, - "removeTrailing": { - "x-ms-client-name": "RemoveTrailingStopWords", - "type": "boolean", - "default": true, - "description": "A value indicating whether to ignore the last search term if it's a stop word. Default is true." + "ingestionParameters": { + "$ref": "#/definitions/KnowledgeSourceIngestionParameters", + "description": "Consolidates all general ingestion settings.", + "x-nullable": true + }, + "createdResources": { + "$ref": "#/definitions/CreatedResources", + "description": "Resources created by the knowledge source.", + "readOnly": true } }, - "description": "Removes stop words from a token stream. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopFilter.html" - } + "required": [ + "connectionString", + "containerName" + ] }, - "SynonymTokenFilter": { + "IndexedSharePointKnowledgeSourceParams": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.SynonymTokenFilter", + "description": "Specifies runtime parameters for a indexed SharePoint knowledge source", "allOf": [ { - "$ref": "#/definitions/TokenFilter" + "$ref": "#/definitions/KnowledgeSourceParams" } ], + "x-ms-discriminator-value": "indexedSharePoint" + }, + "IndexerCurrentState": { + "type": "object", + "description": "Represents all of the state that defines and dictates the indexer's current execution.", "properties": { - "synonyms": { + "mode": { + "$ref": "#/definitions/IndexingMode", + "description": "The mode the indexer is running in.", + "readOnly": true + }, + "allDocsInitialTrackingState": { + "type": "string", + "description": "Change tracking state used when indexing starts on all documents in the datasource.", + "readOnly": true + }, + "allDocsFinalTrackingState": { + "type": "string", + "description": "Change tracking state value when indexing finishes on all documents in the datasource.", + "readOnly": true + }, + "resetDocsInitialTrackingState": { + "type": "string", + "description": "Change tracking state used when indexing starts on select, reset documents in the datasource.", + "readOnly": true + }, + "resetDocsFinalTrackingState": { + "type": "string", + "description": "Change tracking state value when indexing finishes on select, reset documents in the datasource.", + "readOnly": true + }, + "resyncInitialTrackingState": { + "type": "string", + "description": "Change tracking state used when indexing starts on selective options from the datasource.", + "readOnly": true + }, + "resyncFinalTrackingState": { + "type": "string", + "description": "Change tracking state value when indexing finishes on selective options from the datasource.", + "readOnly": true + }, + "resetDocumentKeys": { "type": "array", + "description": "The list of document keys that have been reset. The document key is the document's unique identifier for the data in the search index. The indexer will prioritize selectively re-ingesting these keys.", "items": { "type": "string" }, - "description": "A list of synonyms in following one of two formats: 1. incredible, unbelievable, fabulous => amazing - all terms on the left side of => symbol will be replaced with all terms on its right side; 2. incredible, unbelievable, fabulous, amazing - comma separated list of equivalent words. Set the expand option to change how this list is interpreted." - }, - "ignoreCase": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to case-fold input for matching. Default is false." + "readOnly": true }, - "expand": { - "type": "boolean", - "default": true, - "description": "A value indicating whether all words in the list of synonyms (if => notation is not used) will map to one another. If true, all words in the list of synonyms (if => notation is not used) will map to one another. The following list: incredible, unbelievable, fabulous, amazing is equivalent to: incredible, unbelievable, fabulous, amazing => incredible, unbelievable, fabulous, amazing. If false, the following list: incredible, unbelievable, fabulous, amazing will be equivalent to: incredible, unbelievable, fabulous, amazing => incredible. Default is true." + "resetDatasourceDocumentIds": { + "type": "array", + "description": "The list of datasource document ids that have been reset. The datasource document id is the unique identifier for the data in the datasource. The indexer will prioritize selectively re-ingesting these ids.", + "items": { + "type": "string" + }, + "readOnly": true } - }, - "required": [ - "synonyms" - ], - "description": "Matches single or multi-word synonyms in a token stream. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/synonym/SynonymFilter.html" } }, - "TruncateTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.TruncateTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } + "IndexerExecutionEnvironment": { + "type": "string", + "description": "Specifies the environment in which the indexer should execute.", + "enum": [ + "standard", + "private" ], - "properties": { - "length": { - "type": "integer", - "format": "int32", - "default": 300, - "maximum": 300, - "description": "The length at which terms will be truncated. Default and maximum is 300." - } - }, - "description": "Truncates the terms to a specific length. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TruncateTokenFilter.html" + "x-ms-enum": { + "name": "IndexerExecutionEnvironment", + "modelAsString": true, + "values": [ + { + "name": "standard", + "value": "standard", + "description": "Indicates that the search service can determine where the indexer should execute. This is the default environment when nothing is specified and is the recommended value." + }, + { + "name": "private", + "value": "private", + "description": "Indicates that the indexer should run with the environment provisioned specifically for the search service. This should only be specified as the execution environment if the indexer needs to access resources securely over shared private link resources." + } + ] } }, - "UniqueTokenFilter": { + "IndexerExecutionResult": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.UniqueTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], + "description": "Represents the result of an individual indexer execution.", "properties": { - "onlyOnSamePosition": { - "type": "boolean", - "default": false, - "description": "A value indicating whether to remove duplicates only at the same position. Default is false." - } - }, - "description": "Filters out tokens with same text as the previous token. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/RemoveDuplicatesTokenFilter.html" - } - }, - "WordDelimiterTokenFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.WordDelimiterTokenFilter", - "allOf": [ - { - "$ref": "#/definitions/TokenFilter" - } - ], - "properties": { - "generateWordParts": { - "type": "boolean", - "default": true, - "description": "A value indicating whether to generate part words. If set, causes parts of words to be generated; for example \"AzureSearch\" becomes \"Azure\" \"Search\". Default is true." - }, - "generateNumberParts": { - "type": "boolean", - "default": true, - "description": "A value indicating whether to generate number subwords. Default is true." - }, - "catenateWords": { - "type": "boolean", - "default": false, - "description": "A value indicating whether maximum runs of word parts will be catenated. For example, if this is set to true, \"Azure-Search\" becomes \"AzureSearch\". Default is false." + "status": { + "$ref": "#/definitions/IndexerExecutionStatus", + "description": "The outcome of this indexer execution.", + "readOnly": true }, - "catenateNumbers": { - "type": "boolean", - "default": false, - "description": "A value indicating whether maximum runs of number parts will be catenated. For example, if this is set to true, \"1-2\" becomes \"12\". Default is false." + "statusDetail": { + "$ref": "#/definitions/IndexerExecutionStatusDetail", + "description": "The outcome of this indexer execution.", + "readOnly": true }, - "catenateAll": { - "type": "boolean", - "default": false, - "description": "A value indicating whether all subword parts will be catenated. For example, if this is set to true, \"Azure-Search-1\" becomes \"AzureSearch1\". Default is false." + "mode": { + "$ref": "#/definitions/IndexingMode", + "description": "The mode the indexer is running in.", + "readOnly": true }, - "splitOnCaseChange": { - "type": "boolean", - "default": true, - "description": "A value indicating whether to split words on caseChange. For example, if this is set to true, \"AzureSearch\" becomes \"Azure\" \"Search\". Default is true." + "errorMessage": { + "type": "string", + "description": "The error message indicating the top-level error, if any.", + "readOnly": true }, - "preserveOriginal": { - "type": "boolean", - "default": false, - "description": "A value indicating whether original words will be preserved and added to the subword list. Default is false." + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of this indexer execution.", + "readOnly": true }, - "splitOnNumerics": { - "type": "boolean", - "default": true, - "description": "A value indicating whether to split on numbers. For example, if this is set to true, \"Azure1Search\" becomes \"Azure\" \"1\" \"Search\". Default is true." + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time of this indexer execution, if the execution has already completed.", + "x-nullable": true, + "readOnly": true }, - "stemEnglishPossessive": { - "type": "boolean", - "default": true, - "description": "A value indicating whether to remove trailing \"'s\" for each subword. Default is true." + "errors": { + "type": "array", + "description": "The item-level indexing errors.", + "items": { + "$ref": "#/definitions/SearchIndexerError" + }, + "readOnly": true }, - "protectedWords": { + "warnings": { "type": "array", + "description": "The item-level indexing warnings.", "items": { - "type": "string" + "$ref": "#/definitions/SearchIndexerWarning" }, - "description": "A list of tokens to protect from being delimited." - } - }, - "description": "Splits words into subwords and performs optional transformations on subword groups. This token filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/WordDelimiterFilter.html" - } - }, - "CharFilter": { - "type": "object", - "discriminator": "@odata.type", - "properties": { - "@odata.type": { + "readOnly": true + }, + "itemsProcessed": { + "type": "integer", + "format": "int32", + "description": "The number of items that were processed during this indexer execution. This includes both successfully processed items and items where indexing was attempted but failed.", + "readOnly": true + }, + "itemsFailed": { + "type": "integer", + "format": "int32", + "description": "The number of items that failed to be indexed during this indexer execution.", + "readOnly": true + }, + "initialTrackingState": { "type": "string", - "description": "A URI fragment specifying the type of char filter." + "description": "Change tracking state with which an indexer execution started.", + "readOnly": true }, - "name": { + "finalTrackingState": { "type": "string", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/custom-analyzers-in-azure-search#index-attribute-reference" - }, - "description": "The name of the char filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." + "description": "Change tracking state with which an indexer execution finished.", + "readOnly": true } }, "required": [ - "@odata.type", - "name" + "status", + "errors", + "warnings", + "itemsProcessed", + "itemsFailed" + ] + }, + "IndexerExecutionStatus": { + "type": "string", + "description": "Represents the status of an individual indexer execution.", + "enum": [ + "transientFailure", + "success", + "inProgress", + "reset" ], - "description": "Base type for character filters.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" + "x-ms-enum": { + "name": "IndexerExecutionStatus", + "modelAsString": true, + "values": [ + { + "name": "TransientFailure", + "value": "transientFailure", + "description": "An indexer invocation has failed, but the failure may be transient. Indexer invocations will continue per schedule." + }, + { + "name": "Success", + "value": "success", + "description": "Indexer execution completed successfully." + }, + { + "name": "InProgress", + "value": "inProgress", + "description": "Indexer execution is in progress." + }, + { + "name": "Reset", + "value": "reset", + "description": "Indexer has been reset." + } + ] } }, - "MappingCharFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.MappingCharFilter", - "allOf": [ - { - "$ref": "#/definitions/CharFilter" - } + "IndexerExecutionStatusDetail": { + "type": "string", + "description": "Details the status of an individual indexer execution.", + "enum": [ + "resetDocs", + "resync" ], - "properties": { - "mappings": { - "type": "array", - "items": { - "type": "string" + "x-ms-enum": { + "name": "IndexerExecutionStatusDetail", + "modelAsString": true, + "values": [ + { + "name": "ResetDocs", + "value": "resetDocs", + "description": "Indicates that the reset that occurred was for a call to ResetDocs." }, - "description": "A list of mappings of the following format: \"a=>b\" (all occurrences of the character \"a\" will be replaced with character \"b\")." - } - }, - "required": [ - "mappings" - ], - "description": "A character filter that applies mappings defined with the mappings option. Matching is greedy (longest pattern matching at a given point wins). Replacement is allowed to be the empty string. This character filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/charfilter/MappingCharFilter.html" + { + "name": "Resync", + "value": "resync", + "description": "Indicates to selectively resync based on option(s) from data source." + } + ] } }, - "PatternReplaceCharFilter": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternReplaceCharFilter", - "allOf": [ - { - "$ref": "#/definitions/CharFilter" - } - ], - "properties": { - "pattern": { - "type": "string", - "description": "A regular expression pattern." - }, - "replacement": { - "type": "string", - "description": "The replacement text." - } - }, - "required": [ - "pattern", - "replacement" + "IndexerPermissionOption": { + "type": "string", + "description": "Options with various types of permission data to index.", + "enum": [ + "userIds", + "groupIds", + "rbacScope" ], - "description": "A character filter that replaces characters in the input string. It uses a regular expression to identify character sequences to preserve and a replacement pattern to identify characters to replace. For example, given the input text \"aa bb aa bb\", pattern \"(aa)\\s+(bb)\", and replacement \"$1#$2\", the result would be \"aa#bb aa#bb\". This character filter is implemented using Apache Lucene.", - "externalDocs": { - "url": "https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternReplaceCharFilter.html" + "x-ms-enum": { + "name": "IndexerPermissionOption", + "modelAsString": true, + "values": [ + { + "name": "UserIds", + "value": "userIds", + "description": "Indexer to ingest ACL userIds from data source to index." + }, + { + "name": "GroupIds", + "value": "groupIds", + "description": "Indexer to ingest ACL groupIds from data source to index." + }, + { + "name": "RbacScope", + "value": "rbacScope", + "description": "Indexer to ingest Azure RBAC scope from data source to index." + } + ] } }, - "Similarity": { + "IndexerResyncBody": { "type": "object", - "discriminator": "@odata.type", + "description": "Request body for resync indexer operation.", "properties": { - "@odata.type": { - "type": "string" + "options": { + "type": "array", + "description": "Re-sync options that have been pre-defined from data source.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/IndexerResyncOption" + } } - }, - "required": [ - "@odata.type" - ], - "description": "Base type for similarity algorithms. Similarity algorithms are used to calculate scores that tie queries to documents. The higher the score, the more relevant the document is to that specific query. Those scores are used to rank the search results.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/index-ranking-similarity" } }, - "ClassicSimilarity": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.ClassicSimilarity", - "allOf": [ - { - "$ref": "#/definitions/Similarity" - } - ], - "description": "Legacy similarity algorithm which uses the Lucene TFIDFSimilarity implementation of TF-IDF. This variation of TF-IDF introduces static document length normalization as well as coordinating factors that penalize documents that only partially match the searched queries." - }, - "BM25Similarity": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.BM25Similarity", - "allOf": [ - { - "$ref": "#/definitions/Similarity" - } + "IndexerResyncOption": { + "type": "string", + "description": "Options with various types of permission data to index.", + "enum": [ + "permissions" ], - "properties": { - "k1": { - "type": "number", - "format": "double", - "description": "This property controls the scaling function between the term frequency of each matching terms and the final relevance score of a document-query pair. By default, a value of 1.2 is used. A value of 0.0 means the score does not scale with an increase in term frequency.", - "x-nullable": true - }, - "b": { - "type": "number", - "format": "double", - "description": "This property controls how the length of a document affects the relevance score. By default, a value of 0.75 is used. A value of 0.0 means no length normalization is applied, while a value of 1.0 means the score is fully normalized by the length of the document.", - "x-nullable": true - } - }, - "description": "Ranking function based on the Okapi BM25 similarity algorithm. BM25 is a TF-IDF-like algorithm that includes length normalization (controlled by the 'b' parameter) as well as term frequency saturation (controlled by the 'k1' parameter)." - }, - "VectorSearch": { - "type": "object", - "properties": { - "profiles": { - "type": "array", - "items": { - "$ref": "#/definitions/VectorSearchProfile" - }, - "description": "Defines combinations of configurations to use with vector search." - }, - "algorithms": { - "type": "array", - "items": { - "$ref": "#/definitions/VectorSearchAlgorithmConfiguration" - }, - "description": "Contains configuration options specific to the algorithm used during indexing or querying." - }, - "vectorizers": { - "type": "array", - "items": { - "$ref": "#/definitions/VectorSearchVectorizer" - }, - "description": "Contains configuration options on how to vectorize text vector queries." - }, - "compressions": { - "type": "array", - "items": { - "$ref": "#/definitions/VectorSearchCompressionConfiguration" - }, - "description": "Contains configuration options specific to the compression method used during indexing or querying." - } - }, - "description": "Contains configuration options related to vector search." + "x-ms-enum": { + "name": "IndexerResyncOption", + "modelAsString": true, + "values": [ + { + "name": "Permissions", + "value": "permissions", + "description": "Indexer to re-ingest pre-selected permissions data from data source to index." + } + ] + } }, - "VectorSearchProfile": { + "IndexerRuntime": { "type": "object", + "description": "Represents the indexer's cumulative runtime consumption in the service.", "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, - "type": "string", - "description": "The name to associate with this particular vector search profile.", - "x-nullable": false + "usedSeconds": { + "type": "integer", + "format": "int64", + "description": "Cumulative runtime of the indexer from the beginningTime to endingTime, in seconds." }, - "algorithm": { - "x-ms-client-name": "algorithmConfigurationName", - "type": "string", - "description": "The name of the vector search algorithm configuration that specifies the algorithm and optional parameters.", - "x-nullable": false + "remainingSeconds": { + "type": "integer", + "format": "int64", + "description": "Cumulative runtime remaining for all indexers in the service from the beginningTime to endingTime, in seconds.", + "x-nullable": true }, - "vectorizer": { - "x-ms-client-name": "vectorizerName", + "beginningTime": { "type": "string", - "description": "The name of the vectorization being configured for use with vector search.", - "x-nullable": false + "format": "date-time", + "description": "Beginning UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." }, - "compression": { - "x-ms-client-name": "compressionConfigurationName", - "type": "string", - "description": "The name of the compression method configuration that specifies the compression method and optional parameters.", - "x-nullable": false - } - }, - "required": [ - "name", - "algorithm" - ], - "description": "Defines a combination of configurations to use with vector search." - }, - "VectorSearchAlgorithmConfiguration": { - "type": "object", - "discriminator": "kind", - "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, + "endingTime": { "type": "string", - "description": "The name to associate with this particular configuration.", - "x-nullable": false - }, - "kind": { - "$ref": "#/definitions/VectorSearchAlgorithmKind", - "description": "The name of the kind of algorithm being configured for use with vector search.", - "x-nullable": false + "format": "date-time", + "description": "End UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." } }, "required": [ - "name", - "kind" - ], - "description": "Contains configuration options specific to the algorithm used during indexing or querying." - }, - "HnswVectorSearchAlgorithmConfiguration": { - "type": "object", - "x-ms-client-name": "HnswAlgorithmConfiguration", - "x-ms-discriminator-value": "hnsw", - "allOf": [ - { - "$ref": "#/definitions/VectorSearchAlgorithmConfiguration" - } - ], - "properties": { - "hnswParameters": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/HnswParameters", - "description": "Contains the parameters specific to HNSW algorithm." - } - }, - "description": "Contains configuration options specific to the HNSW approximate nearest neighbors algorithm used during indexing and querying. The HNSW algorithm offers a tunable trade-off between search speed and accuracy." - }, - "HnswParameters": { - "type": "object", - "properties": { - "m": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "minimum": 4, - "maximum": 10, - "default": 4, - "description": "The number of bi-directional links created for every new element during construction. Increasing this parameter value may improve recall and reduce retrieval times for datasets with high intrinsic dimensionality at the expense of increased memory consumption and longer indexing time." - }, - "efConstruction": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "minimum": 100, - "maximum": 1000, - "default": 400, - "description": "The size of the dynamic list containing the nearest neighbors, which is used during index time. Increasing this parameter may improve index quality, at the expense of increased indexing time. At a certain point, increasing this parameter leads to diminishing returns." - }, - "efSearch": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "minimum": 100, - "maximum": 1000, - "default": 500, - "description": "The size of the dynamic list containing the nearest neighbors, which is used during search time. Increasing this parameter may improve search results, at the expense of slower search. At a certain point, increasing this parameter leads to diminishing returns." - }, - "metric": { - "$ref": "#/definitions/VectorSearchAlgorithmMetric", - "x-nullable": true, - "description": "The similarity metric to use for vector comparisons." - } - }, - "description": "Contains the parameters specific to the HNSW algorithm." - }, - "ExhaustiveKnnVectorSearchAlgorithmConfiguration": { - "x-ms-client-name": "ExhaustiveKnnAlgorithmConfiguration", - "type": "object", - "x-ms-discriminator-value": "exhaustiveKnn", - "allOf": [ - { - "$ref": "#/definitions/VectorSearchAlgorithmConfiguration" - } - ], - "properties": { - "exhaustiveKnnParameters": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/ExhaustiveKnnParameters", - "description": "Contains the parameters specific to exhaustive KNN algorithm." - } - }, - "description": "Contains configuration options specific to the exhaustive KNN algorithm used during querying, which will perform brute-force search across the entire vector index." - }, - "ExhaustiveKnnParameters": { - "type": "object", - "properties": { - "metric": { - "$ref": "#/definitions/VectorSearchAlgorithmMetric", - "x-nullable": true, - "description": "The similarity metric to use for vector comparisons." - } - }, - "description": "Contains the parameters specific to exhaustive KNN algorithm." + "usedSeconds", + "beginningTime", + "endingTime" + ] }, - "VectorSearchAlgorithmMetric": { + "IndexerStatus": { "type": "string", + "description": "Represents the overall indexer status.", "enum": [ - "cosine", - "euclidean", - "dotProduct", - "hamming" + "unknown", + "error", + "running" ], "x-ms-enum": { - "name": "VectorSearchAlgorithmMetric", + "name": "IndexerStatus", "modelAsString": true, "values": [ { - "value": "cosine", - "name": "Cosine", - "description": "Measures the angle between vectors to quantify their similarity, disregarding magnitude. The smaller the angle, the closer the similarity." - }, - { - "value": "euclidean", - "name": "Euclidean", - "description": "Computes the straight-line distance between vectors in a multi-dimensional space. The smaller the distance, the closer the similarity." + "name": "Unknown", + "value": "unknown", + "description": "Indicates that the indexer is in an unknown state." }, { - "value": "dotProduct", - "name": "DotProduct", - "description": "Calculates the sum of element-wise products to gauge alignment and magnitude similarity. The larger and more positive, the closer the similarity." + "name": "Error", + "value": "error", + "description": "Indicates that the indexer experienced an error that cannot be corrected without human intervention." }, { - "value": "hamming", - "name": "Hamming", - "description": "Only applicable to bit-packed binary data types. Determines dissimilarity by counting differing positions in binary vectors. The fewer differences, the closer the similarity." + "name": "Running", + "value": "running", + "description": "Indicates that the indexer is running normally." } ] - }, - "description": "The similarity metric to use for vector comparisons. It is recommended to choose the same similarity metric as the embedding model was trained on." + } }, - "VectorSearchAlgorithmKind": { + "IndexingMode": { "type": "string", + "description": "Represents the mode the indexer is executing in.", "enum": [ - "hnsw", - "exhaustiveKnn" + "indexingAllDocs", + "indexingResetDocs", + "indexingResync" ], "x-ms-enum": { - "name": "VectorSearchAlgorithmKind", + "name": "IndexingMode", "modelAsString": true, "values": [ { - "value": "hnsw", - "name": "Hnsw", - "description": "HNSW (Hierarchical Navigable Small World), a type of approximate nearest neighbors algorithm." + "name": "IndexingAllDocs", + "value": "indexingAllDocs", + "description": "The indexer is indexing all documents in the datasource." }, { - "value": "exhaustiveKnn", - "name": "ExhaustiveKnn", - "description": "Exhaustive KNN algorithm which will perform brute-force search." + "name": "IndexingResetDocs", + "value": "indexingResetDocs", + "description": "The indexer is indexing selective, reset documents in the datasource. The documents being indexed are defined on indexer status." + }, + { + "name": "IndexingResync", + "value": "indexingResync", + "description": "The indexer is resyncing and indexing selective option(s) from the datasource." } ] - }, - "description": "The algorithm used for indexing and querying." + } }, - "VectorSearchCompressionConfiguration": { + "IndexingParameters": { "type": "object", - "discriminator": "kind", + "description": "Represents parameters for indexer execution.", "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, - "type": "string", - "description": "The name to associate with this particular configuration.", - "x-nullable": false - }, - "kind": { - "$ref": "#/definitions/VectorSearchCompressionKind", - "description": "The name of the kind of compression method being configured for use with vector search.", - "x-nullable": false + "batchSize": { + "type": "integer", + "format": "int32", + "description": "The number of items that are read from the data source and indexed as a single batch in order to improve performance. The default depends on the data source type.", + "x-nullable": true }, - "rescoringOptions": { - "type": "object", - "$ref": "#/definitions/RescoringOptions", - "description": "Contains the options for rescoring.", + "maxFailedItems": { + "type": "integer", + "format": "int32", + "description": "The maximum number of items that can fail indexing for indexer execution to still be considered successful. -1 means no limit. Default is 0.", + "default": 0, "x-nullable": true }, - "truncationDimension": { + "maxFailedItemsPerBatch": { "type": "integer", "format": "int32", - "description": "The number of dimensions to truncate the vectors to. Truncating the vectors reduces the size of the vectors and the amount of data that needs to be transferred during search. This can save storage cost and improve search performance at the expense of recall. It should be only used for embeddings trained with Matryoshka Representation Learning (MRL) such as OpenAI text-embedding-3-large (small). The default value is null, which means no truncation.", + "description": "The maximum number of items in a single batch that can fail indexing for the batch to still be considered successful. -1 means no limit. Default is 0.", + "default": 0, "x-nullable": true + }, + "configuration": { + "$ref": "#/definitions/IndexingParametersConfiguration", + "description": "A dictionary of indexer-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type." } - }, - "required": [ - "name", - "kind" - ], - "description": "Contains configuration options specific to the compression method used during indexing or querying." + } }, - "RescoringOptions": { + "IndexingParametersConfiguration": { "type": "object", - "x-ms-client-name": "RescoringOptions", + "description": "A dictionary of indexer-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.", "properties": { - "enableRescoring": { + "parsingMode": { + "type": "string", + "description": "Represents the parsing mode for indexing from an Azure blob data source.", + "default": "default", + "enum": [ + "default", + "text", + "delimitedText", + "json", + "jsonArray", + "jsonLines", + "markdown" + ], + "x-ms-enum": { + "name": "BlobIndexerParsingMode", + "modelAsString": true, + "values": [ + { + "name": "Default", + "value": "default", + "description": "Set to default for normal file processing." + }, + { + "name": "Text", + "value": "text", + "description": "Set to text to improve indexing performance on plain text files in blob storage." + }, + { + "name": "DelimitedText", + "value": "delimitedText", + "description": "Set to delimitedText when blobs are plain CSV files." + }, + { + "name": "Json", + "value": "json", + "description": "Set to json to extract structured content from JSON files." + }, + { + "name": "JsonArray", + "value": "jsonArray", + "description": "Set to jsonArray to extract individual elements of a JSON array as separate documents." + }, + { + "name": "JsonLines", + "value": "jsonLines", + "description": "Set to jsonLines to extract individual JSON entities, separated by a new line, as separate documents." + }, + { + "name": "Markdown", + "value": "markdown", + "description": "Set to markdown to extract content from markdown files." + } + ] + } + }, + "excludedFileNameExtensions": { + "type": "string", + "description": "Comma-delimited list of filename extensions to ignore when processing from Azure blob storage. For example, you could exclude \".png, .mp4\" to skip over those files during indexing.", + "default": "" + }, + "indexedFileNameExtensions": { + "type": "string", + "description": "Comma-delimited list of filename extensions to select when processing from Azure blob storage. For example, you could focus indexing on specific application files \".docx, .pptx, .msg\" to specifically include those file types.", + "default": "" + }, + "failOnUnsupportedContentType": { "type": "boolean", - "default": true, - "description": "If set to true, after the initial search on the compressed vectors, the similarity scores are recalculated using the full-precision vectors. This will improve recall at the expense of latency.", - "x-nullable": true + "description": "For Azure blobs, set to false if you want to continue indexing when an unsupported content type is encountered, and you don't know all the content types (file extensions) in advance.", + "default": false }, - "defaultOversampling": { - "type": "number", - "format": "double", - "description": "Default oversampling factor. Oversampling retrieves a greater set of potential documents to offset the resolution loss due to quantization. This increases the set of results that will be rescored on full-precision vectors. Minimum value is 1, meaning no oversampling (1x). This parameter can only be set when 'enableRescoring' is true. Higher values improve recall at the expense of latency.", + "failOnUnprocessableDocument": { + "type": "boolean", + "description": "For Azure blobs, set to false if you want to continue indexing if a document fails indexing.", + "default": false + }, + "indexStorageMetadataOnlyForOversizedDocuments": { + "type": "boolean", + "description": "For Azure blobs, set this property to true to still index storage metadata for blob content that is too large to process. Oversized blobs are treated as errors by default. For limits on blob size, see https://learn.microsoft.com/azure/search/search-limits-quotas-capacity.", + "default": false + }, + "delimitedTextHeaders": { + "type": "string", + "description": "For CSV blobs, specifies a comma-delimited list of column headers, useful for mapping source fields to destination fields in an index." + }, + "delimitedTextDelimiter": { + "type": "string", + "description": "For CSV blobs, specifies the end-of-line single-character delimiter for CSV files where each line starts a new document (for example, \"|\")." + }, + "firstLineContainsHeaders": { + "type": "boolean", + "description": "For CSV blobs, indicates that the first (non-blank) line of each blob contains headers.", + "default": true + }, + "markdownParsingSubmode": { + "type": "string", + "description": "Specifies the submode that will determine whether a markdown file will be parsed into exactly one search document or multiple search documents. Default is `oneToMany`.", + "default": "oneToMany", + "enum": [ + "oneToMany", + "oneToOne" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "OneToMany", + "value": "oneToMany", + "description": "Indicates that each section of the markdown file (up to a specified depth) will be parsed into individual search documents. This can result in a single markdown file producing multiple search documents. This is the default sub-mode." + }, + { + "name": "OneToOne", + "value": "oneToOne", + "description": "Indicates that each markdown file will be parsed into a single search document." + } + ] + }, "x-nullable": true }, - "rescoreStorageMethod": { - "$ref": "#/definitions/VectorSearchCompressionRescoreStorageMethod", - "default": "preserveOriginals", - "description": "Controls the storage method for original vectors. This setting is immutable.", + "markdownHeaderDepth": { + "type": "string", + "description": "Specifies the max header depth that will be considered while grouping markdown content. Default is `h6`.", + "default": "h6", + "enum": [ + "h1", + "h2", + "h3", + "h4", + "h5", + "h6" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "h1", + "value": "h1", + "description": "Indicates that headers up to a level of h1 will be considered while grouping markdown content." + }, + { + "name": "h2", + "value": "h2", + "description": "Indicates that headers up to a level of h2 will be considered while grouping markdown content." + }, + { + "name": "h3", + "value": "h3", + "description": "Indicates that headers up to a level of h3 will be considered while grouping markdown content." + }, + { + "name": "h4", + "value": "h4", + "description": "Indicates that headers up to a level of h4 will be considered while grouping markdown content." + }, + { + "name": "h5", + "value": "h5", + "description": "Indicates that headers up to a level of h5 will be considered while grouping markdown content." + }, + { + "name": "h6", + "value": "h6", + "description": "Indicates that headers up to a level of h6 will be considered while grouping markdown content. This is the default." + } + ] + }, "x-nullable": true + }, + "documentRoot": { + "type": "string", + "description": "For JSON arrays, given a structured or semi-structured document, you can specify a path to the array using this property." + }, + "dataToExtract": { + "type": "string", + "description": "Specifies the data to extract from Azure blob storage and tells the indexer which data to extract from image content when \"imageAction\" is set to a value other than \"none\". This applies to embedded image content in a .PDF or other application, or image files such as .jpg and .png, in Azure blobs.", + "default": "contentAndMetadata", + "enum": [ + "storageMetadata", + "allMetadata", + "contentAndMetadata" + ], + "x-ms-enum": { + "name": "BlobIndexerDataToExtract", + "modelAsString": true, + "values": [ + { + "name": "StorageMetadata", + "value": "storageMetadata", + "description": "Indexes just the standard blob properties and user-specified metadata." + }, + { + "name": "AllMetadata", + "value": "allMetadata", + "description": "Extracts metadata provided by the Azure blob storage subsystem and the content-type specific metadata (for example, metadata unique to just .png files are indexed)." + }, + { + "name": "ContentAndMetadata", + "value": "contentAndMetadata", + "description": "Extracts all metadata and textual content from each blob." + } + ] + } + }, + "imageAction": { + "type": "string", + "description": "Determines how to process embedded images and image files in Azure blob storage. Setting the \"imageAction\" configuration to any value other than \"none\" requires that a skillset also be attached to that indexer.", + "default": "none", + "enum": [ + "none", + "generateNormalizedImages", + "generateNormalizedImagePerPage" + ], + "x-ms-enum": { + "name": "BlobIndexerImageAction", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Ignores embedded images or image files in the data set. This is the default." + }, + { + "name": "GenerateNormalizedImages", + "value": "generateNormalizedImages", + "description": "Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field. This action requires that \"dataToExtract\" is set to \"contentAndMetadata\". A normalized image refers to additional processing resulting in uniform image output, sized and rotated to promote consistent rendering when you include images in visual search results. This information is generated for each image when you use this option." + }, + { + "name": "GenerateNormalizedImagePerPage", + "value": "generateNormalizedImagePerPage", + "description": "Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field, but treats PDF files differently in that each page will be rendered as an image and normalized accordingly, instead of extracting embedded images. Non-PDF file types will be treated the same as if \"generateNormalizedImages\" was set." + } + ] + } + }, + "allowSkillsetToReadFileData": { + "type": "boolean", + "description": "If true, will create a path //document//file_data that is an object representing the original file data downloaded from your blob data source. This allows you to pass the original file data to a custom skill for processing within the enrichment pipeline, or to the Document Extraction skill.", + "default": false + }, + "pdfTextRotationAlgorithm": { + "type": "string", + "description": "Determines algorithm for text extraction from PDF files in Azure blob storage.", + "default": "none", + "enum": [ + "none", + "detectAngles" + ], + "x-ms-enum": { + "name": "BlobIndexerPDFTextRotationAlgorithm", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Leverages normal text extraction. This is the default." + }, + { + "name": "DetectAngles", + "value": "detectAngles", + "description": "May produce better and more readable text extraction from PDF files that have rotated text within them. Note that there may be a small performance speed impact when this parameter is used. This parameter only applies to PDF files, and only to PDFs with embedded text. If the rotated text appears within an embedded image in the PDF, this parameter does not apply." + } + ] + } + }, + "executionEnvironment": { + "type": "string", + "description": "Specifies the environment in which the indexer should execute.", + "default": "standard", + "enum": [ + "standard", + "private" + ], + "x-ms-enum": { + "name": "IndexerExecutionEnvironment", + "modelAsString": true, + "values": [ + { + "name": "standard", + "value": "standard", + "description": "Indicates that the search service can determine where the indexer should execute. This is the default environment when nothing is specified and is the recommended value." + }, + { + "name": "private", + "value": "private", + "description": "Indicates that the indexer should run with the environment provisioned specifically for the search service. This should only be specified as the execution environment if the indexer needs to access resources securely over shared private link resources." + } + ] + } + }, + "queryTimeout": { + "type": "string", + "description": "Increases the timeout beyond the 5-minute default for Azure SQL database data sources, specified in the format \"hh:mm:ss\".", + "default": "00:05:00" } }, - "description": "Contains the options for rescoring." + "additionalProperties": {} }, - "ScalarQuantizationVectorSearchCompressionConfiguration": { - "x-ms-client-name": "ScalarQuantizationCompressionConfiguration", + "IndexingResult": { "type": "object", - "x-ms-discriminator-value": "scalarQuantization", - "allOf": [ - { - "$ref": "#/definitions/VectorSearchCompressionConfiguration" - } - ], + "description": "Status of an indexing operation for a single document.", "properties": { - "scalarQuantizationParameters": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/ScalarQuantizationParameters", - "description": "Contains the parameters specific to Scalar Quantization." + "key": { + "type": "string", + "description": "The key of a document that was in the indexing request.", + "readOnly": true + }, + "errorMessage": { + "type": "string", + "description": "The error message explaining why the indexing operation failed for the document identified by the key; null if indexing succeeded.", + "readOnly": true + }, + "status": { + "type": "boolean", + "description": "A value indicating whether the indexing operation succeeded for the document identified by the key.", + "readOnly": true + }, + "statusCode": { + "type": "integer", + "format": "int32", + "description": "The status code of the indexing operation. Possible values include: 200 for a successful update or delete, 201 for successful document creation, 400 for a malformed input document, 404 for document not found, 409 for a version conflict, 422 when the index is temporarily unavailable, or 503 for when the service is too busy.", + "readOnly": true } }, - "description": "Contains configuration options specific to the scalar quantization compression method used during indexing and querying." + "required": [ + "key", + "status", + "statusCode" + ] }, - "ScalarQuantizationParameters": { + "IndexingSchedule": { "type": "object", + "description": "Represents a schedule for indexer execution.", "properties": { - "quantizedDataType": { - "$ref": "#/definitions/VectorSearchCompressionTargetDataType", - "x-nullable": true, - "description": "The quantized data type of compressed vector values." + "interval": { + "type": "string", + "format": "duration", + "description": "The interval of time between indexer executions." + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The time when an indexer should start running." } }, - "description": "Contains the parameters specific to Scalar Quantization." + "required": [ + "interval" + ] }, - "BinaryQuantizationVectorSearchCompressionConfiguration": { - "x-ms-client-name": "BinaryQuantizationCompressionConfiguration", + "InputFieldMappingEntry": { "type": "object", - "x-ms-discriminator-value": "binaryQuantization", - "allOf": [ - { - "$ref": "#/definitions/VectorSearchCompressionConfiguration" - } - ], - "description": "Contains configuration options specific to the binary quantization compression method used during indexing and querying." - }, - "VectorSearchCompressionTargetDataType": { - "type": "string", - "enum": [ - "int8" - ], - "x-ms-enum": { - "name": "VectorSearchCompressionTargetDataType", - "modelAsString": true, - "values": [ - { - "value": "int8", - "name": "Int8" + "description": "Input field mapping for a skill.", + "properties": { + "name": { + "type": "string", + "description": "The name of the input." + }, + "source": { + "type": "string", + "description": "The source of the input." + }, + "sourceContext": { + "type": "string", + "description": "The source context used for selecting recursive inputs." + }, + "inputs": { + "type": "array", + "description": "The recursive inputs used when creating a complex type.", + "items": { + "$ref": "#/definitions/InputFieldMappingEntry" } - ] - }, - "description": "The quantized data type of compressed vector values." - }, - "VectorSearchCompressionKind": { - "type": "string", - "enum": [ - "scalarQuantization", - "binaryQuantization" - ], - "x-ms-enum": { - "name": "VectorSearchCompressionKind", - "modelAsString": true, - "values": [ - { - "value": "scalarQuantization", - "name": "ScalarQuantization", - "description": "Scalar Quantization, a type of compression method. In scalar quantization, the original vectors values are compressed to a narrower type by discretizing and representing each component of a vector using a reduced set of quantized values, thereby reducing the overall data size." - }, - { - "value": "binaryQuantization", - "name": "BinaryQuantization", - "description": "Binary Quantization, a type of compression method. In binary quantization, the original vectors values are compressed to the narrower binary type by discretizing and representing each component of a vector using binary values, thereby reducing the overall data size." - } - ] - }, - "description": "The compression method used for indexing and querying." - }, - "VectorSearchCompressionRescoreStorageMethod": { - "type": "string", - "enum": [ - "preserveOriginals", - "discardOriginals" - ], - "x-ms-enum": { - "name": "VectorSearchCompressionRescoreStorageMethod", - "modelAsString": true, - "values": [ - { - "value": "preserveOriginals", - "name": "PreserveOriginals", - "description": "This option preserves the original full-precision vectors. Choose this option for maximum flexibility and highest quality of compressed search results. This consumes more storage but allows for rescoring and oversampling." - }, - { - "value": "discardOriginals", - "name": "DiscardOriginals", - "description": "This option discards the original full-precision vectors. Choose this option for maximum storage savings. Since this option does not allow for rescoring and oversampling, it will often cause slight to moderate reductions in quality." - } - ] - }, - "description": "The storage method for the original full-precision vectors used for rescoring and internal index operations." - }, - "KnowledgeSourceVectorizer": { - "type": "object", - "discriminator": "kind", - "properties": { - "kind": { - "$ref": "#/definitions/VectorSearchVectorizerKind", - "description": "The name of the kind of vectorization method being configured for use with vector search.", - "x-nullable": false - } + } }, "required": [ - "kind" - ], - "description": "Specifies the vectorization method to be used for knowledge source embedding model, with optional name." - }, - "KnowledgeSourceAzureOpenAIVectorizer": { - "type": "object", - "x-ms-discriminator-value": "azureOpenAI", - "allOf": [ - { - "$ref": "#/definitions/KnowledgeSourceVectorizer" - } - ], - "properties": { - "azureOpenAIParameters": { - "x-ms-client-name": "AzureOpenAIParameters", - "$ref": "#/definitions/AzureOpenAIParameters", - "description": "Contains the parameters specific to Azure OpenAI embedding vectorization." - } - }, - "description": "Specifies the Azure OpenAI resource used to vectorize a query string." + "name" + ] }, - "VectorSearchVectorizer": { + "KeepTokenFilter": { "type": "object", - "discriminator": "kind", + "description": "A token filter that only keeps tokens with text contained in a specified list of words. This token filter is implemented using Apache Lucene.", "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, - "type": "string", - "description": "The name to associate with this particular vectorization method.", - "x-nullable": false + "keepWords": { + "type": "array", + "description": "The list of words to keep.", + "items": { + "type": "string" + } }, - "kind": { - "$ref": "#/definitions/VectorSearchVectorizerKind", - "description": "The name of the kind of vectorization method being configured for use with vector search.", - "x-nullable": false + "keepWordsCase": { + "type": "boolean", + "description": "A value indicating whether to lower case all words first. Default is false.", + "default": false } }, "required": [ - "name", - "kind" + "keepWords" ], - "description": "Specifies the vectorization method to be used during query time." - }, - "AzureOpenAIVectorizer": { - "type": "object", - "x-ms-discriminator-value": "azureOpenAI", "allOf": [ { - "$ref": "#/definitions/VectorSearchVectorizer" + "$ref": "#/definitions/TokenFilter" } ], - "properties": { - "azureOpenAIParameters": { - "x-ms-client-name": "AzureOpenAIParameters", - "$ref": "#/definitions/AzureOpenAIParameters", - "description": "Contains the parameters specific to Azure OpenAI embedding vectorization." - } - }, - "description": "Specifies the Azure OpenAI resource used to vectorize a query string." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeepTokenFilter" }, - "AzureOpenAIParameters": { + "KeyPhraseExtractionSkill": { "type": "object", + "description": "A skill that uses text analytics for key phrase extraction.", "properties": { - "resourceUri": { - "type": "string", - "format": "uri", - "description": "The resource URI of the Azure OpenAI resource." + "defaultLanguageCode": { + "$ref": "#/definitions/KeyPhraseExtractionSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`." }, - "deploymentId": { - "x-ms-client-name": "deploymentName", - "type": "string", - "description": "ID of the Azure OpenAI model deployment on the designated resource." + "maxKeyPhraseCount": { + "type": "integer", + "format": "int32", + "description": "A number indicating how many key phrases to return. If absent, all identified key phrases will be returned.", + "x-nullable": true }, - "apiKey": { + "modelVersion": { "type": "string", - "description": "API key of the designated Azure OpenAI resource." - }, - "authIdentity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for outbound connections." - }, - "modelName": { - "$ref": "#/definitions/AzureOpenAIModelName", - "description": "The name of the embedding model that is deployed at the provided deploymentId path." + "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.", + "x-nullable": true } }, - "description": "Specifies the parameters for connecting to the Azure OpenAI resource." + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill" }, - "AzureOpenAIModelName": { + "KeyPhraseExtractionSkillLanguage": { "type": "string", + "description": "The language codes supported for input text by KeyPhraseExtractionSkill.", "enum": [ - "text-embedding-ada-002", - "text-embedding-3-large", - "text-embedding-3-small", - "gpt-4o", - "gpt-4o-mini", - "gpt-4.1", - "gpt-4.1-mini", - "gpt-4.1-nano", - "gpt-5", - "gpt-5-mini", - "gpt-5-nano" + "da", + "nl", + "en", + "fi", + "fr", + "de", + "it", + "ja", + "ko", + "no", + "pl", + "pt-PT", + "pt-BR", + "ru", + "es", + "sv" ], "x-ms-enum": { - "name": "AzureOpenAIModelName", + "name": "KeyPhraseExtractionSkillLanguage", "modelAsString": true, "values": [ { - "value": "text-embedding-ada-002", - "name": "TextEmbeddingAda002" + "name": "da", + "value": "da", + "description": "Danish" }, { - "value": "text-embedding-3-large", - "name": "TextEmbedding3Large" + "name": "nl", + "value": "nl", + "description": "Dutch" }, { - "value": "text-embedding-3-small", - "name": "TextEmbedding3Small" + "name": "en", + "value": "en", + "description": "English" }, { - "value": "gpt-4o", - "name": "Gpt4o" + "name": "fi", + "value": "fi", + "description": "Finnish" }, { - "value": "gpt-4o-mini", - "name": "Gpt4oMini" + "name": "fr", + "value": "fr", + "description": "French" }, { - "value": "gpt-4.1", - "name": "Gpt41" + "name": "de", + "value": "de", + "description": "German" }, { - "value": "gpt-4.1-mini", - "name": "Gpt41Mini" + "name": "it", + "value": "it", + "description": "Italian" }, { - "value": "gpt-4.1-nano", - "name": "Gpt41Nano" + "name": "ja", + "value": "ja", + "description": "Japanese" }, { - "value": "gpt-5", - "name": "Gpt5" + "name": "ko", + "value": "ko", + "description": "Korean" }, { - "value": "gpt-5-mini", - "name": "Gpt5Mini" + "name": "no", + "value": "no", + "description": "Norwegian (Bokmaal)" }, { - "value": "gpt-5-nano", - "name": "Gpt5Nano" + "name": "pl", + "value": "pl", + "description": "Polish" + }, + { + "name": "pt-PT", + "value": "pt-PT", + "description": "Portuguese (Portugal)" + }, + { + "name": "pt-BR", + "value": "pt-BR", + "description": "Portuguese (Brazil)" + }, + { + "name": "ru", + "value": "ru", + "description": "Russian" + }, + { + "name": "es", + "value": "es", + "description": "Spanish" + }, + { + "name": "sv", + "value": "sv", + "description": "Swedish" } ] - }, - "description": "The Azure Open AI model name that will be called." + } }, - "WebApiVectorizer": { + "KeywordMarkerTokenFilter": { "type": "object", - "x-ms-discriminator-value": "customWebApi", + "description": "Marks terms as keywords. This token filter is implemented using Apache Lucene.", + "properties": { + "keywords": { + "type": "array", + "description": "A list of words to mark as keywords.", + "items": { + "type": "string" + } + }, + "ignoreCase": { + "type": "boolean", + "description": "A value indicating whether to ignore case. If true, all words are converted to lower case first. Default is false.", + "default": false + } + }, + "required": [ + "keywords" + ], "allOf": [ { - "$ref": "#/definitions/VectorSearchVectorizer" + "$ref": "#/definitions/TokenFilter" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeywordMarkerTokenFilter" + }, + "KeywordTokenizer": { + "type": "object", + "description": "Emits the entire input as a single token. This tokenizer is implemented using Apache Lucene.", "properties": { - "customWebApiParameters": { - "x-ms-client-name": "WebApiParameters", - "$ref": "#/definitions/WebApiParameters", - "description": "Specifies the properties of the user-defined vectorizer." + "bufferSize": { + "type": "integer", + "format": "int32", + "description": "The read buffer size in bytes. Default is 256.", + "default": 256 } }, - "description": "Specifies a user-defined vectorizer for generating the vector embedding of a query string. Integration of an external vectorizer is achieved using the custom Web API interface of a skillset." + "allOf": [ + { + "$ref": "#/definitions/LexicalTokenizer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeywordTokenizer" }, - "WebApiParameters": { + "KeywordTokenizerV2": { "type": "object", + "description": "Emits the entire input as a single token. This tokenizer is implemented using Apache Lucene.", "properties": { - "uri": { - "type": "string", - "format": "uri", - "description": "The URI of the Web API providing the vectorizer." - }, - "httpHeaders": { - "$ref": "#/definitions/WebApiHttpHeaders", - "description": "The headers required to make the HTTP request." - }, - "httpMethod": { - "type": "string", - "description": "The method for the HTTP request." - }, - "timeout": { - "type": "string", - "format": "duration", - "description": "The desired timeout for the request. Default is 30 seconds." - }, - "authResourceId": { - "type": "string", - "x-nullable": true, - "x-ms-format": "arm-id", - "description": "Applies to custom endpoints that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the vectorization connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token." - }, - "authIdentity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared." + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Default is 256. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.", + "default": 256, + "maximum": 300 } }, - "description": "Specifies the properties for connecting to a user-defined vectorizer." - }, - "AIServicesVisionVectorizer": { - "type": "object", - "x-ms-discriminator-value": "aiServicesVision", "allOf": [ { - "$ref": "#/definitions/VectorSearchVectorizer" + "$ref": "#/definitions/LexicalTokenizer" } ], - "properties": { - "aiServicesVisionParameters": { - "x-ms-client-name": "AIServicesVisionParameters", - "$ref": "#/definitions/AIServicesVisionParameters", - "description": "Contains the parameters specific to AI Services Vision embedding vectorization." - } - }, - "description": "Specifies the AI Services Vision parameters for vectorizing a query image or text." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.KeywordTokenizerV2" }, - "AIServicesVisionParameters": { + "KnowledgeBase": { "type": "object", + "description": "Represents a knowledge base definition.", "properties": { - "modelVersion": { + "name": { "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the AI Services Vision service. It will default to the latest available when not specified." + "description": "The name of the knowledge base." }, - "resourceUri": { + "knowledgeSources": { + "type": "array", + "description": "Knowledge sources referenced by this knowledge base.", + "items": { + "$ref": "#/definitions/KnowledgeSourceReference" + } + }, + "models": { + "type": "array", + "description": "Contains configuration options on how to connect to AI models.", + "items": { + "$ref": "#/definitions/KnowledgeBaseModel" + } + }, + "retrievalReasoningEffort": { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort", + "description": "The retrieval reasoning effort configuration." + }, + "outputMode": { + "$ref": "#/definitions/KnowledgeRetrievalOutputMode", + "description": "The output mode for the knowledge base." + }, + "@odata.etag": { "type": "string", - "format": "uri", - "description": "The resource URI of the AI Services resource." + "description": "The ETag of the knowledge base.", + "x-ms-client-name": "eTag" }, - "apiKey": { + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault.", + "x-nullable": true + }, + "description": { "type": "string", - "description": "API key of the designated AI Services resource." + "description": "The description of the knowledge base." }, - "authIdentity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the index, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared." + "retrievalInstructions": { + "type": "string", + "description": "Instructions considered by the knowledge base when developing query plan." + }, + "answerInstructions": { + "type": "string", + "description": "Instructions considered by the knowledge base when generating answers." } }, - "description": "Specifies the AI Services Vision parameters for vectorizing a query image or text.", "required": [ - "resourceUri", - "modelVersion" + "name", + "knowledgeSources" ] }, - "AMLVectorizer": { - "type": "object", - "x-ms-discriminator-value": "aml", - "allOf": [ - { - "$ref": "#/definitions/VectorSearchVectorizer" - } - ], - "properties": { - "amlParameters": { - "x-ms-client-name": "AMLParameters", - "$ref": "#/definitions/AMLParameters", - "description": "Specifies the properties of the AML vectorizer." - } - }, - "description": "Specifies an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog for generating the vector embedding of a query string." - }, - "AMLParameters": { + "KnowledgeBaseActivityRecord": { "type": "object", + "description": "Base type for activity records. Tracks execution details, timing, and errors for knowledge base operations.", "properties": { - "uri": { - "x-ms-client-name": "ScoringUri", - "type": "string", - "format": "uri", - "x-nullable": true, - "description": "(Required for no authentication or key authentication) The scoring URI of the AML service to which the JSON payload will be sent. Only the https URI scheme is allowed." - }, - "key": { - "x-ms-client-name": "AuthenticationKey", - "type": "string", - "x-nullable": true, - "description": "(Required for key authentication) The key for the AML service." - }, - "resourceId": { - "type": "string", - "x-nullable": true, - "description": "(Required for token authentication). The Azure Resource Manager resource ID of the AML service. It should be in the format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/services/{service_name}." + "id": { + "type": "integer", + "format": "int32", + "description": "The ID of the activity record." }, - "timeout": { - "type": "string", - "format": "duration", - "x-nullable": true, - "description": "(Optional) When specified, indicates the timeout for the http client making the API call." + "type": { + "$ref": "#/definitions/KnowledgeBaseActivityRecordType", + "description": "The type of the activity record." }, - "region": { - "type": "string", - "x-nullable": true, - "description": "(Optional for token authentication). The region the AML service is deployed in." + "elapsedMs": { + "type": "integer", + "format": "int32", + "description": "The elapsed time in milliseconds for the retrieval activity." }, - "modelName": { - "$ref": "#/definitions/AIFoundryModelCatalogName", - "description": "The name of the embedding model from the Azure AI Foundry Catalog that is deployed at the provided endpoint." + "error": { + "$ref": "#/definitions/KnowledgeBaseErrorDetail", + "description": "The error detail explaining why the operation failed. This property is only included when the activity does not succeed." } }, + "discriminator": "type", "required": [ - "uri" - ], - "description": "Specifies the properties for connecting to an AML vectorizer." + "id", + "type" + ] }, - "AIFoundryModelCatalogName": { + "KnowledgeBaseActivityRecordType": { "type": "string", + "description": "The type of activity record.", "enum": [ - "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32", - "OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336", - "Facebook-DinoV2-Image-Embeddings-ViT-Base", - "Facebook-DinoV2-Image-Embeddings-ViT-Giant", - "Cohere-embed-v3-english", - "Cohere-embed-v3-multilingual", - "Cohere-embed-v4" + "searchIndex", + "azureBlob", + "indexedSharePoint", + "indexedOneLake", + "web", + "remoteSharePoint", + "modelQueryPlanning", + "modelAnswerSynthesis", + "agenticReasoning" ], "x-ms-enum": { - "name": "AIFoundryModelCatalogName", + "name": "KnowledgeBaseActivityRecordType", "modelAsString": true, "values": [ { - "value": "OpenAI-CLIP-Image-Text-Embeddings-vit-base-patch32", - "name": "OpenAI_CLIP_Image_Text_Embeddings_vit_base_patch32" - }, - { - "value": "OpenAI-CLIP-Image-Text-Embeddings-ViT-Large-Patch14-336", - "name": "OpenAI_CLIP_Image_Text_Embeddings_ViT_Large_Patch14_336" + "name": "searchIndex", + "value": "searchIndex", + "description": "Search index retrieval activity." }, { - "value": "Facebook-DinoV2-Image-Embeddings-ViT-Base", - "name": "Facebook_DinoV2_Image_Embeddings_ViT_Base" + "name": "azureBlob", + "value": "azureBlob", + "description": "Azure Blob retrieval activity." }, { - "value": "Facebook-DinoV2-Image-Embeddings-ViT-Giant", - "name": "Facebook_DinoV2_Image_Embeddings_ViT_Giant" + "name": "indexedSharePoint", + "value": "indexedSharePoint", + "description": "Indexed SharePoint retrieval activity." }, { - "value": "Cohere-embed-v3-english", - "name": "Cohere_embed_v3_english" + "name": "indexedOneLake", + "value": "indexedOneLake", + "description": "Indexed OneLake retrieval activity." }, { - "value": "Cohere-embed-v3-multilingual", - "name": "Cohere_embed_v3_multilingual" + "name": "web", + "value": "web", + "description": "Web retrieval activity." }, { - "value": "Cohere-embed-v4", - "name": "Cohere_embed_v4", - "description": "Cohere embed v4 model for generating embeddings from both text and images." - } - ] - }, - "description": "The name of the embedding model from the Azure AI Foundry Catalog that will be called." - }, - "VectorSearchVectorizerKind": { - "type": "string", - "enum": [ - "azureOpenAI", - "customWebApi", - "aiServicesVision", - "aml" - ], - "x-ms-enum": { - "name": "VectorSearchVectorizerKind", - "modelAsString": true, - "values": [ - { - "value": "azureOpenAI", - "name": "AzureOpenAI", - "description": "Generate embeddings using an Azure OpenAI resource at query time." + "name": "remoteSharePoint", + "value": "remoteSharePoint", + "description": "Remote SharePoint retrieval activity." }, { - "value": "customWebApi", - "name": "CustomWebApi", - "description": "Generate embeddings using a custom web endpoint at query time." + "name": "modelQueryPlanning", + "value": "modelQueryPlanning", + "description": "LLM query planning activity." }, { - "value": "aiServicesVision", - "name": "AIServicesVision", - "description": "Generate embeddings for an image or text input at query time using the Azure AI Services Vision Vectorize API." + "name": "modelAnswerSynthesis", + "value": "modelAnswerSynthesis", + "description": "LLM answer synthesis activity." }, { - "value": "aml", - "name": "AML", - "description": "Generate embeddings using an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog at query time." + "name": "agenticReasoning", + "value": "agenticReasoning", + "description": "Agentic reasoning activity." } ] - }, - "description": "The vectorization method to be used during query time." + } }, - "DataSourceCredentials": { + "KnowledgeBaseAgenticReasoningActivityRecord": { "type": "object", + "description": "Represents an agentic reasoning activity record.", "properties": { - "connectionString": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Data-Source" - }, - "type": "string", - "description": "The connection string for the datasource. Set to `` (with brackets) if you don't want the connection string updated. Set to `` if you want to remove the connection string value from the datasource." + "reasoningTokens": { + "type": "integer", + "format": "int32", + "description": "The number of input tokens for agentic reasoning." + }, + "retrievalReasoningEffort": { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort", + "description": "The retrieval reasoning effort configuration." } }, - "description": "Represents credentials that can be used to connect to a datasource." + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseActivityRecord" + } + ], + "x-ms-discriminator-value": "agenticReasoning" }, - "SearchIndexerDataContainer": { + "KnowledgeBaseAzureBlobActivityArguments": { "type": "object", + "description": "Represents the arguments the azure blob retrieval activity was run with.", "properties": { - "name": { + "search": { "type": "string", - "description": "The name of the table or view (for Azure SQL data source) or collection (for CosmosDB data source) that will be indexed." - }, - "query": { - "type": "string", - "description": "A query that is applied to this data container. The syntax and meaning of this parameter is datasource-specific. Not supported by Azure SQL datasources." + "description": "The search string used to query blob contents." } - }, - "required": [ - "name" - ], - "description": "Represents information about the entity (such as Azure SQL table or CosmosDB collection) that will be indexed." + } }, - "SearchIndexerDataIdentity": { + "KnowledgeBaseAzureBlobActivityRecord": { "type": "object", - "discriminator": "@odata.type", + "description": "Represents a azure blob retrieval activity record.", "properties": { - "@odata.type": { - "type": "string", - "description": "A URI fragment specifying the type of identity." + "azureBlobArguments": { + "$ref": "#/definitions/KnowledgeBaseAzureBlobActivityArguments", + "description": "The azure blob arguments for the retrieval activity." } }, - "required": [ - "@odata.type" - ], - "description": "Abstract base type for data identities." - }, - "SearchIndexerDataNoneIdentity": { - "type": "object", - "description": "Clears the identity property of a datasource.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.DataNoneIdentity", "allOf": [ { - "$ref": "#/definitions/SearchIndexerDataIdentity" + "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" } - ] + ], + "x-ms-discriminator-value": "azureBlob" }, - "SearchIndexerDataUserAssignedIdentity": { + "KnowledgeBaseAzureBlobReference": { "type": "object", - "description": "Specifies the identity for a datasource to use.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.DataUserAssignedIdentity", + "description": "Represents an Azure Blob Storage document reference.", + "properties": { + "blobUrl": { + "type": "string", + "description": "The blob URL for the reference." + } + }, "allOf": [ { - "$ref": "#/definitions/SearchIndexerDataIdentity" + "$ref": "#/definitions/KnowledgeBaseReference" } ], + "x-ms-discriminator-value": "azureBlob" + }, + "KnowledgeBaseAzureOpenAIModel": { + "type": "object", + "description": "Specifies the Azure OpenAI resource used to do query planning.", "properties": { - "userAssignedIdentity": { - "type": "string", - "description": "The fully qualified Azure resource Id of a user assigned managed identity typically in the form \"/subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId\" that should have been assigned to the search service." + "azureOpenAIParameters": { + "$ref": "#/definitions/AzureOpenAIVectorizerParameters", + "description": "Azure OpenAI parameters." } }, "required": [ - "userAssignedIdentity" - ] + "azureOpenAIParameters" + ], + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseModel" + } + ], + "x-ms-discriminator-value": "azureOpenAI" }, - "IndexerPermissionOption": { - "type": "string", - "enum": [ - "userIds", - "groupIds", - "rbacScope" - ], - "x-ms-enum": { - "name": "IndexerPermissionOption", - "modelAsString": true, - "values": [ - { - "value": "userIds", - "name": "UserIds", - "description": "Indexer to ingest ACL userIds from data source to index." + "KnowledgeBaseErrorAdditionalInfo": { + "type": "object", + "description": "The resource management error additional info.", + "properties": { + "type": { + "type": "string", + "description": "The additional info type.", + "readOnly": true + }, + "info": { + "type": "object", + "description": "The additional info.", + "additionalProperties": {}, + "readOnly": true + } + } + }, + "KnowledgeBaseErrorDetail": { + "type": "object", + "description": "The error details.", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The error target.", + "readOnly": true + }, + "details": { + "type": "array", + "description": "The error details.", + "items": { + "$ref": "#/definitions/KnowledgeBaseErrorDetail" }, - { - "value": "groupIds", - "name": "GroupIds", - "description": "Indexer to ingest ACL groupIds from data source to index." + "readOnly": true, + "x-ms-identifiers": [] + }, + "additionalInfo": { + "type": "array", + "description": "The error additional info.", + "items": { + "$ref": "#/definitions/KnowledgeBaseErrorAdditionalInfo" }, - { - "value": "rbacScope", - "name": "RbacScope", - "description": "Indexer to ingest Azure RBAC scope from data source to index." - } - ] - }, - "description": "Options with various types of permission data to index." + "readOnly": true, + "x-ms-identifiers": [] + } + } }, - "DataChangeDetectionPolicy": { + "KnowledgeBaseImageContent": { "type": "object", - "discriminator": "@odata.type", + "description": "Image content.", "properties": { - "@odata.type": { + "url": { "type": "string", - "description": "A URI fragment specifying the type of data change detection policy." + "format": "uri", + "description": "The url of the image." } }, "required": [ - "@odata.type" - ], - "description": "Base type for data change detection policies." + "url" + ] }, - "HighWaterMarkChangeDetectionPolicy": { + "KnowledgeBaseIndexedOneLakeActivityArguments": { "type": "object", - "description": "Defines a data change detection policy that captures changes based on the value of a high water mark column.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy", + "description": "Represents the arguments the indexed OneLake retrieval activity was run with.", + "properties": { + "search": { + "type": "string", + "description": "The search string used to query indexed OneLake contents." + } + } + }, + "KnowledgeBaseIndexedOneLakeActivityRecord": { + "type": "object", + "description": "Represents a indexed OneLake retrieval activity record.", + "properties": { + "indexedOneLakeArguments": { + "$ref": "#/definitions/KnowledgeBaseIndexedOneLakeActivityArguments", + "description": "The indexed OneLake arguments for the retrieval activity." + } + }, "allOf": [ { - "$ref": "#/definitions/DataChangeDetectionPolicy" + "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" } ], + "x-ms-discriminator-value": "indexedOneLake" + }, + "KnowledgeBaseIndexedOneLakeReference": { + "type": "object", + "description": "Represents an indexed OneLake document reference.", "properties": { - "highWaterMarkColumnName": { + "docUrl": { "type": "string", - "description": "The name of the high water mark column." + "description": "The document URL for the reference." } }, - "required": [ - "highWaterMarkColumnName" - ] - }, - "SqlIntegratedChangeTrackingPolicy": { - "type": "object", - "description": "Defines a data change detection policy that captures changes using the Integrated Change Tracking feature of Azure SQL Database.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy", "allOf": [ { - "$ref": "#/definitions/DataChangeDetectionPolicy" + "$ref": "#/definitions/KnowledgeBaseReference" } - ] + ], + "x-ms-discriminator-value": "indexedOneLake" }, - "DataDeletionDetectionPolicy": { + "KnowledgeBaseIndexedSharePointActivityArguments": { "type": "object", - "discriminator": "@odata.type", + "description": "Represents the arguments the indexed SharePoint retrieval activity was run with.", "properties": { - "@odata.type": { + "search": { "type": "string", - "description": "A URI fragment specifying the type of data deletion detection policy." + "description": "The search string used to query indexed SharePoint contents." + } + } + }, + "KnowledgeBaseIndexedSharePointActivityRecord": { + "type": "object", + "description": "Represents a indexed SharePoint retrieval activity record.", + "properties": { + "indexedSharePointArguments": { + "$ref": "#/definitions/KnowledgeBaseIndexedSharePointActivityArguments", + "description": "The indexed SharePoint arguments for the retrieval activity." } }, - "required": [ - "@odata.type" + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" + } ], - "description": "Base type for data deletion detection policies." + "x-ms-discriminator-value": "indexedSharePoint" }, - "SoftDeleteColumnDeletionDetectionPolicy": { + "KnowledgeBaseIndexedSharePointReference": { "type": "object", - "description": "Defines a data deletion detection policy that implements a soft-deletion strategy. It determines whether an item should be deleted based on the value of a designated 'soft delete' column.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy", + "description": "Represents an indexed SharePoint document reference.", + "properties": { + "docUrl": { + "type": "string", + "description": "The document URL for the reference." + } + }, "allOf": [ { - "$ref": "#/definitions/DataDeletionDetectionPolicy" + "$ref": "#/definitions/KnowledgeBaseReference" } ], + "x-ms-discriminator-value": "indexedSharePoint" + }, + "KnowledgeBaseMessage": { + "type": "object", + "description": "The natural language message style object.", "properties": { - "softDeleteColumnName": { + "role": { "type": "string", - "description": "The name of the column to use for soft-deletion detection." + "description": "The role of the tool response." }, - "softDeleteMarkerValue": { - "type": "string", - "description": "The marker value that identifies an item as deleted." + "content": { + "type": "array", + "description": "The content of the message.", + "items": { + "$ref": "#/definitions/KnowledgeBaseMessageContent" + } } - } + }, + "required": [ + "content" + ] }, - "NativeBlobSoftDeleteDeletionDetectionPolicy": { + "KnowledgeBaseMessageContent": { "type": "object", - "description": "Defines a data deletion detection policy utilizing Azure Blob Storage's native soft delete feature for deletion detection.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.NativeBlobSoftDeleteDeletionDetectionPolicy", - "allOf": [ - { - "$ref": "#/definitions/DataDeletionDetectionPolicy" + "description": "Specifies the type of the message content.", + "properties": { + "type": { + "$ref": "#/definitions/KnowledgeBaseMessageContentType", + "description": "The type of the message" } + }, + "discriminator": "type", + "required": [ + "type" ] }, - "SearchIndexerDataSourceType": { + "KnowledgeBaseMessageContentType": { "type": "string", + "description": "The type of message content.", "enum": [ - "azuresql", - "cosmosdb", - "azureblob", - "azuretable", - "mysql", - "adlsgen2", - "onelake", - "sharepoint" + "text", + "image" ], "x-ms-enum": { - "name": "SearchIndexerDataSourceType", + "name": "KnowledgeBaseMessageContentType", "modelAsString": true, "values": [ { - "value": "azuresql", - "name": "AzureSql", - "description": "Indicates an Azure SQL datasource." - }, - { - "value": "cosmosdb", - "name": "CosmosDb", - "description": "Indicates a CosmosDB datasource." - }, - { - "value": "azureblob", - "name": "AzureBlob", - "description": "Indicates an Azure Blob datasource." - }, - { - "value": "azuretable", - "name": "AzureTable", - "description": "Indicates an Azure Table datasource." - }, - { - "value": "mysql", - "name": "MySql", - "description": "Indicates a MySql datasource." - }, - { - "value": "adlsgen2", - "name": "AdlsGen2", - "description": "Indicates an ADLS Gen2 datasource." - }, - { - "value": "onelake", - "name": "OneLake", - "description": "Indicates a Microsoft Fabric OneLake datasource." + "name": "text", + "value": "text", + "description": "Text message content kind." }, { - "value": "sharepoint", - "name": "SharePoint", - "description": "Indicates a SharePoint datasource." + "name": "image", + "value": "image", + "description": "Image message content kind." } ] + } + }, + "KnowledgeBaseMessageImageContent": { + "type": "object", + "description": "Image message type.", + "properties": { + "image": { + "$ref": "#/definitions/KnowledgeBaseImageContent", + "description": "The image content." + } + }, + "required": [ + "image" + ], + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseMessageContent" + } + ], + "x-ms-discriminator-value": "image" + }, + "KnowledgeBaseMessageTextContent": { + "type": "object", + "description": "Text message type.", + "properties": { + "text": { + "type": "string", + "description": "The text content." + } + }, + "required": [ + "text" + ], + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseMessageContent" + } + ], + "x-ms-discriminator-value": "text" + }, + "KnowledgeBaseModel": { + "type": "object", + "description": "Specifies the connection parameters for the model to use for query planning.", + "properties": { + "kind": { + "$ref": "#/definitions/KnowledgeBaseModelKind", + "description": "The AI model to be used for query planning." + } }, - "description": "Defines the type of a datasource." + "discriminator": "kind", + "required": [ + "kind" + ] }, - "IndexerResyncOption": { + "KnowledgeBaseModelAnswerSynthesisActivityRecord": { + "type": "object", + "description": "Represents an LLM answer synthesis activity record.", + "properties": { + "inputTokens": { + "type": "integer", + "format": "int32", + "description": "The number of input tokens for the LLM answer synthesis activity." + }, + "outputTokens": { + "type": "integer", + "format": "int32", + "description": "The number of output tokens for the LLM answer synthesis activity." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseActivityRecord" + } + ], + "x-ms-discriminator-value": "modelAnswerSynthesis" + }, + "KnowledgeBaseModelKind": { "type": "string", + "description": "The AI model to be used for query planning.", "enum": [ - "permissions" + "azureOpenAI" ], "x-ms-enum": { - "name": "IndexerResyncOption", + "name": "KnowledgeBaseModelKind", "modelAsString": true, "values": [ { - "value": "permissions", - "name": "Permissions", - "description": "Indexer to re-ingest pre-selected permissions data from data source to index." + "name": "AzureOpenAI", + "value": "azureOpenAI", + "description": "Use Azure Open AI models for query planning." } ] - }, - "description": "Options with various types of permission data to index." + } }, - "SearchIndexerDataSource": { + "KnowledgeBaseModelQueryPlanningActivityRecord": { "type": "object", + "description": "Represents an LLM query planning activity record.", "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, - "type": "string", - "description": "The name of the datasource." - }, - "description": { - "type": "string", - "description": "The description of the datasource." + "inputTokens": { + "type": "integer", + "format": "int32", + "description": "The number of input tokens for the LLM query planning activity." }, + "outputTokens": { + "type": "integer", + "format": "int32", + "description": "The number of output tokens for the LLM query planning activity." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseActivityRecord" + } + ], + "x-ms-discriminator-value": "modelQueryPlanning" + }, + "KnowledgeBaseReference": { + "type": "object", + "description": "Base type for references.", + "properties": { "type": { - "$ref": "#/definitions/SearchIndexerDataSourceType", - "description": "The type of the datasource." + "$ref": "#/definitions/KnowledgeBaseReferenceType", + "description": "The type of the reference." }, - "subType": { + "id": { "type": "string", - "description": "A specific type of the data source, in case the resource is capable of different modalities. For example, 'MongoDb' for certain 'cosmosDb' accounts.", - "readOnly": true - }, - "credentials": { - "$ref": "#/definitions/DataSourceCredentials", - "description": "Credentials for the datasource." + "description": "The ID of the reference." }, - "container": { - "$ref": "#/definitions/SearchIndexerDataContainer", - "description": "The data container for the datasource." + "activitySource": { + "type": "integer", + "format": "int32", + "description": "The source activity ID for the reference." }, - "identity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "An explicit managed identity to use for this datasource. If not specified and the connection string is a managed identity, the system-assigned managed identity is used. If not specified, the value remains unchanged. If \"none\" is specified, the value of this property is cleared." + "sourceData": { + "type": "object", + "description": "The source data for the reference.", + "additionalProperties": {} }, - "indexerPermissionOptions": { - "type": "array", - "x-nullable": true, - "items": { - "$ref": "#/definitions/IndexerPermissionOption", - "x-nullable": false + "rerankerScore": { + "type": "number", + "format": "float", + "description": "The reranker score for the document reference." + } + }, + "discriminator": "type", + "required": [ + "type", + "id", + "activitySource" + ] + }, + "KnowledgeBaseReferenceType": { + "type": "string", + "description": "The type of reference.", + "enum": [ + "searchIndex", + "azureBlob", + "indexedSharePoint", + "indexedOneLake", + "web", + "remoteSharePoint" + ], + "x-ms-enum": { + "name": "KnowledgeBaseReferenceType", + "modelAsString": true, + "values": [ + { + "name": "searchIndex", + "value": "searchIndex", + "description": "Search index document reference." }, - "description": "Ingestion options with various types of permission data." - }, - "dataChangeDetectionPolicy": { - "$ref": "#/definitions/DataChangeDetectionPolicy", - "x-nullable": true, - "description": "The data change detection policy for the datasource." - }, - "dataDeletionDetectionPolicy": { - "$ref": "#/definitions/DataDeletionDetectionPolicy", - "x-nullable": true, - "description": "The data deletion detection policy for the datasource." - }, - "@odata.etag": { - "x-ms-client-name": "ETag", + { + "name": "azureBlob", + "value": "azureBlob", + "description": "Azure Blob document reference." + }, + { + "name": "indexedSharePoint", + "value": "indexedSharePoint", + "description": "Indexed SharePoint document reference." + }, + { + "name": "indexedOneLake", + "value": "indexedOneLake", + "description": "Indexed OneLake document reference." + }, + { + "name": "web", + "value": "web", + "description": "Web document reference." + }, + { + "name": "remoteSharePoint", + "value": "remoteSharePoint", + "description": "Remote SharePoint document reference." + } + ] + } + }, + "KnowledgeBaseRemoteSharePointActivityArguments": { + "type": "object", + "description": "Represents the arguments the remote SharePoint retrieval activity was run with.", + "properties": { + "search": { "type": "string", - "description": "The ETag of the data source." + "description": "The search string used to query the remote SharePoint knowledge source." }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your datasource definition when you want full assurance that no one, not even Microsoft, can decrypt your data source definition. Once you have encrypted your data source definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your datasource definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" - }, - "x-nullable": true + "filterExpressionAddOn": { + "type": "string", + "description": "The filter expression add-on for the retrieval activity." + } + } + }, + "KnowledgeBaseRemoteSharePointActivityRecord": { + "type": "object", + "description": "Represents a remote SharePoint retrieval activity record.", + "properties": { + "remoteSharePointArguments": { + "$ref": "#/definitions/KnowledgeBaseRemoteSharePointActivityArguments", + "description": "The remote SharePoint arguments for the retrieval activity." } }, - "required": [ - "name", - "type", - "credentials", - "container" + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" + } ], - "description": "Represents a datasource definition, which can be used to configure an indexer." + "x-ms-discriminator-value": "remoteSharePoint" }, - "ListDataSourcesResult": { + "KnowledgeBaseRemoteSharePointReference": { "type": "object", + "description": "Represents a remote SharePoint document reference.", "properties": { - "value": { - "x-ms-client-name": "DataSources", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchIndexerDataSource" - }, - "description": "The datasources in the Search service." + "webUrl": { + "type": "string", + "format": "uri", + "description": "The url the reference data originated from." + }, + "searchSensitivityLabelInfo": { + "$ref": "#/definitions/SharePointSensitivityLabelInfo", + "description": "Information about the sensitivity label applied to the SharePoint document." } }, - "required": [ - "value" + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseReference" + } ], - "description": "Response from a List Datasources request. If successful, it includes the full definitions of all datasources." + "x-ms-discriminator-value": "remoteSharePoint" }, - "IndexingSchedule": { + "KnowledgeBaseRetrievalActivityRecord": { "type": "object", + "description": "Represents a retrieval activity record.", "properties": { - "interval": { + "type": { "type": "string", - "format": "duration", - "description": "The interval of time between indexer executions." + "description": "Discriminator property for KnowledgeBaseRetrievalActivityRecord." }, - "startTime": { + "knowledgeSourceName": { + "type": "string", + "description": "The knowledge source for the retrieval activity." + }, + "queryTime": { "type": "string", "format": "date-time", - "description": "The time when an indexer should start running." + "description": "The query time for this retrieval activity." + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of documents retrieved that were sufficiently relevant to pass the reranker threshold." } }, + "discriminator": "type", "required": [ - "interval" + "type" ], - "description": "Represents a schedule for indexer execution." + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseActivityRecord" + } + ] }, - "IndexingParameters": { + "KnowledgeBaseRetrievalPartialResponse": { "type": "object", + "description": "Partial retrieval response.", "properties": { - "batchSize": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The number of items that are read from the data source and indexed as a single batch in order to improve performance. The default depends on the data source type." + "body": { + "$ref": "#/definitions/KnowledgeBaseRetrievalResponse", + "description": "The partial retrieval response body." + } + }, + "required": [ + "body" + ] + }, + "KnowledgeBaseRetrievalRequest": { + "type": "object", + "description": "The input contract for the retrieval request.", + "properties": { + "messages": { + "type": "array", + "description": "A list of chat message style input.", + "items": { + "$ref": "#/definitions/KnowledgeBaseMessage" + } }, - "maxFailedItems": { + "intents": { + "type": "array", + "description": "A list of intended queries to execute without model query planning.", + "items": { + "$ref": "#/definitions/KnowledgeRetrievalIntent" + } + }, + "maxRuntimeInSeconds": { "type": "integer", "format": "int32", - "default": 0, - "x-nullable": true, - "description": "The maximum number of items that can fail indexing for indexer execution to still be considered successful. -1 means no limit. Default is 0." + "description": "The maximum runtime in seconds." }, - "maxFailedItemsPerBatch": { + "maxOutputSize": { "type": "integer", "format": "int32", - "default": 0, - "x-nullable": true, - "description": "The maximum number of items in a single batch that can fail indexing for the batch to still be considered successful. -1 means no limit. Default is 0." + "description": "Limits the maximum size of the content in the output." }, - "configuration": { - "$ref": "#/definitions/IndexingParametersConfiguration" + "retrievalReasoningEffort": { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort", + "description": "The retrieval reasoning effort configuration." + }, + "includeActivity": { + "type": "boolean", + "description": "Indicates retrieval results should include activity information." + }, + "outputMode": { + "$ref": "#/definitions/KnowledgeRetrievalOutputMode", + "description": "The output configuration for this retrieval." + }, + "knowledgeSourceParams": { + "type": "array", + "description": "A list of runtime parameters for the knowledge sources.", + "items": { + "$ref": "#/definitions/KnowledgeSourceParams" + } } - }, - "description": "Represents parameters for indexer execution.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/create-indexer#parameters" } }, - "IndexingParametersConfiguration": { + "KnowledgeBaseRetrievalResponse": { "type": "object", + "description": "The output contract for the retrieval response.", "properties": { - "parsingMode": { - "$ref": "#/definitions/ParsingMode" + "response": { + "type": "array", + "description": "The response messages.", + "items": { + "$ref": "#/definitions/KnowledgeBaseMessage" + } }, - "excludedFileNameExtensions": { + "activity": { + "type": "array", + "description": "The activity records for tracking progress and billing implications.", + "items": { + "$ref": "#/definitions/KnowledgeBaseActivityRecord" + } + }, + "references": { + "type": "array", + "description": "The references for the retrieval data used in the response.", + "items": { + "$ref": "#/definitions/KnowledgeBaseReference" + } + } + } + }, + "KnowledgeBaseRetrievalSuccessResponse": { + "type": "object", + "description": "Successful retrieval response.", + "properties": { + "body": { + "$ref": "#/definitions/KnowledgeBaseRetrievalResponse", + "description": "The retrieval response body." + } + }, + "required": [ + "body" + ] + }, + "KnowledgeBaseSearchIndexActivityArguments": { + "type": "object", + "description": "Represents the arguments the search index retrieval activity was run with.", + "properties": { + "search": { "type": "string", - "default": "", - "description": "Comma-delimited list of filename extensions to ignore when processing from Azure blob storage. For example, you could exclude \".png, .mp4\" to skip over those files during indexing." + "description": "The search string used to query the search index." }, - "indexedFileNameExtensions": { + "filter": { "type": "string", - "default": "", - "description": "Comma-delimited list of filename extensions to select when processing from Azure blob storage. For example, you could focus indexing on specific application files \".docx, .pptx, .msg\" to specifically include those file types." + "description": "The filter string." }, - "failOnUnsupportedContentType": { - "type": "boolean", - "default": false, - "description": "For Azure blobs, set to false if you want to continue indexing when an unsupported content type is encountered, and you don't know all the content types (file extensions) in advance." + "sourceDataFields": { + "type": "array", + "description": "What fields were selected for search.", + "items": { + "$ref": "#/definitions/SearchIndexFieldReference" + } }, - "failOnUnprocessableDocument": { - "type": "boolean", - "default": false, - "description": "For Azure blobs, set to false if you want to continue indexing if a document fails indexing." + "searchFields": { + "type": "array", + "description": "What fields were searched against.", + "items": { + "$ref": "#/definitions/SearchIndexFieldReference" + } }, - "indexStorageMetadataOnlyForOversizedDocuments": { - "type": "boolean", - "default": false, - "description": "For Azure blobs, set this property to true to still index storage metadata for blob content that is too large to process. Oversized blobs are treated as errors by default. For limits on blob size, see https://learn.microsoft.com/azure/search/search-limits-quotas-capacity." + "semanticConfigurationName": { + "type": "string", + "description": "What semantic configuration was used from the search index." + } + } + }, + "KnowledgeBaseSearchIndexActivityRecord": { + "type": "object", + "description": "Represents a search index retrieval activity record.", + "properties": { + "searchIndexArguments": { + "$ref": "#/definitions/KnowledgeBaseSearchIndexActivityArguments", + "description": "The search index arguments for the retrieval activity." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" + } + ], + "x-ms-discriminator-value": "searchIndex" + }, + "KnowledgeBaseSearchIndexReference": { + "type": "object", + "description": "Represents an Azure Search document reference.", + "properties": { + "docKey": { + "type": "string", + "description": "The document key for the reference." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseReference" + } + ], + "x-ms-discriminator-value": "searchIndex" + }, + "KnowledgeBaseWebActivityArguments": { + "type": "object", + "description": "Represents the arguments the web retrieval activity was run with.", + "properties": { + "search": { + "type": "string", + "description": "The search string used to query the web." }, - "delimitedTextHeaders": { + "language": { "type": "string", - "description": "For CSV blobs, specifies a comma-delimited list of column headers, useful for mapping source fields to destination fields in an index." + "description": "The language for the retrieval activity." }, - "delimitedTextDelimiter": { + "market": { "type": "string", - "description": "For CSV blobs, specifies the end-of-line single-character delimiter for CSV files where each line starts a new document (for example, \"|\")." + "description": "The market for the retrieval activity." }, - "firstLineContainsHeaders": { - "type": "boolean", - "default": true, - "description": "For CSV blobs, indicates that the first (non-blank) line of each blob contains headers." - }, - "markdownParsingSubmode": { - "$ref": "#/definitions/MarkdownParsingSubmode", - "x-nullable": true - }, - "markdownHeaderDepth": { - "$ref": "#/definitions/MarkdownHeaderDepth", - "x-nullable": true + "count": { + "type": "integer", + "format": "int32", + "description": "The number of web results returned." }, - "documentRoot": { + "freshness": { "type": "string", - "description": "For JSON arrays, given a structured or semi-structured document, you can specify a path to the array using this property." - }, - "dataToExtract": { - "$ref": "#/definitions/DataToExtract" - }, - "imageAction": { - "$ref": "#/definitions/ImageAction" - }, - "allowSkillsetToReadFileData": { - "type": "boolean", - "default": false, - "description": "If true, will create a path //document//file_data that is an object representing the original file data downloaded from your blob data source. This allows you to pass the original file data to a custom skill for processing within the enrichment pipeline, or to the Document Extraction skill." - }, - "pdfTextRotationAlgorithm": { - "$ref": "#/definitions/PdfTextRotationAlgorithm" - }, - "executionEnvironment": { - "$ref": "#/definitions/ExecutionEnvironment" + "description": "The freshness for the retrieval activity." + } + } + }, + "KnowledgeBaseWebActivityRecord": { + "type": "object", + "description": "Represents a web retrieval activity record.", + "properties": { + "webArguments": { + "$ref": "#/definitions/KnowledgeBaseWebActivityArguments", + "description": "The web arguments for the retrieval activity." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseRetrievalActivityRecord" + } + ], + "x-ms-discriminator-value": "web" + }, + "KnowledgeBaseWebReference": { + "type": "object", + "description": "Represents a web document reference.", + "properties": { + "url": { + "type": "string", + "format": "uri", + "description": "The url the reference data originated from." }, - "queryTimeout": { + "title": { "type": "string", - "default": "00:05:00", - "description": "Increases the timeout beyond the 5-minute default for Azure SQL database data sources, specified in the format \"hh:mm:ss\"." + "description": "The title of the web document." } }, - "additionalProperties": true, - "description": "A dictionary of indexer-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/create-indexer#parameters" - } + "allOf": [ + { + "$ref": "#/definitions/KnowledgeBaseReference" + } + ], + "x-ms-discriminator-value": "web" + }, + "KnowledgeRetrievalIntent": { + "type": "object", + "description": "An intended query to execute without model query planning.", + "properties": { + "type": { + "$ref": "#/definitions/KnowledgeRetrievalIntentType", + "description": "The type of the intent." + } + }, + "discriminator": "type", + "required": [ + "type" + ] }, - "ParsingMode": { + "KnowledgeRetrievalIntentType": { "type": "string", + "description": "The kind of knowledge base configuration to use.", "enum": [ - "default", - "text", - "delimitedText", - "json", - "jsonArray", - "jsonLines", - "markdown" + "semantic" ], "x-ms-enum": { - "name": "BlobIndexerParsingMode", + "name": "KnowledgeRetrievalIntentType", "modelAsString": true, "values": [ { - "value": "default", - "name": "Default", - "description": "Set to default for normal file processing." - }, - { - "value": "text", - "name": "Text", - "description": "Set to text to improve indexing performance on plain text files in blob storage." - }, - { - "value": "delimitedText", - "name": "DelimitedText", - "description": "Set to delimitedText when blobs are plain CSV files." - }, - { - "value": "json", - "name": "Json", - "description": "Set to json to extract structured content from JSON files." - }, - { - "value": "jsonArray", - "name": "JsonArray", - "description": "Set to jsonArray to extract individual elements of a JSON array as separate documents." - }, - { - "value": "jsonLines", - "name": "JsonLines", - "description": "Set to jsonLines to extract individual JSON entities, separated by a new line, as separate documents." - }, - { - "value": "markdown", - "name": "Markdown", - "description": "Set to markdown to extract content from markdown files." + "name": "semantic", + "value": "semantic", + "description": "A natural language semantic query intent." } ] - }, - "default": "default", - "description": "Represents the parsing mode for indexing from an Azure blob data source." + } + }, + "KnowledgeRetrievalLowReasoningEffort": { + "type": "object", + "description": "Run knowledge retrieval with low reasoning effort.", + "allOf": [ + { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" + } + ], + "x-ms-discriminator-value": "low" + }, + "KnowledgeRetrievalMediumReasoningEffort": { + "type": "object", + "description": "Run knowledge retrieval with medium reasoning effort.", + "allOf": [ + { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" + } + ], + "x-ms-discriminator-value": "medium" + }, + "KnowledgeRetrievalMinimalReasoningEffort": { + "type": "object", + "description": "Run knowledge retrieval with minimal reasoning effort.", + "allOf": [ + { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffort" + } + ], + "x-ms-discriminator-value": "minimal" }, - "DataToExtract": { + "KnowledgeRetrievalOutputMode": { "type": "string", + "description": "The output configuration for this retrieval.", "enum": [ - "storageMetadata", - "allMetadata", - "contentAndMetadata" + "extractiveData", + "answerSynthesis" ], "x-ms-enum": { - "name": "BlobIndexerDataToExtract", + "name": "KnowledgeRetrievalOutputMode", "modelAsString": true, "values": [ { - "value": "storageMetadata", - "name": "StorageMetadata", - "description": "Indexes just the standard blob properties and user-specified metadata." - }, - { - "value": "allMetadata", - "name": "AllMetadata", - "description": "Extracts metadata provided by the Azure blob storage subsystem and the content-type specific metadata (for example, metadata unique to just .png files are indexed)." + "name": "extractiveData", + "value": "extractiveData", + "description": "Return data from the knowledge sources directly without generative alteration." }, { - "value": "contentAndMetadata", - "name": "ContentAndMetadata", - "description": "Extracts all metadata and textual content from each blob." + "name": "answerSynthesis", + "value": "answerSynthesis", + "description": "Synthesize an answer for the response payload." } ] + } + }, + "KnowledgeRetrievalReasoningEffort": { + "type": "object", + "description": "Base type for reasoning effort.", + "properties": { + "kind": { + "$ref": "#/definitions/KnowledgeRetrievalReasoningEffortKind", + "description": "The kind of reasoning effort." + } }, - "default": "contentAndMetadata", - "description": "Specifies the data to extract from Azure blob storage and tells the indexer which data to extract from image content when \"imageAction\" is set to a value other than \"none\". This applies to embedded image content in a .PDF or other application, or image files such as .jpg and .png, in Azure blobs." + "discriminator": "kind", + "required": [ + "kind" + ] }, - "ImageAction": { + "KnowledgeRetrievalReasoningEffortKind": { "type": "string", + "description": "The amount of effort to use during retrieval.", "enum": [ - "none", - "generateNormalizedImages", - "generateNormalizedImagePerPage" + "minimal", + "low", + "medium" ], "x-ms-enum": { - "name": "BlobIndexerImageAction", + "name": "KnowledgeRetrievalReasoningEffortKind", "modelAsString": true, "values": [ { - "value": "none", - "name": "None", - "description": "Ignores embedded images or image files in the data set. This is the default." + "name": "minimal", + "value": "minimal", + "description": "Does not perform any source selections, query planning, or iterative search." }, { - "value": "generateNormalizedImages", - "name": "GenerateNormalizedImages", - "description": "Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field. This action requires that \"dataToExtract\" is set to \"contentAndMetadata\". A normalized image refers to additional processing resulting in uniform image output, sized and rotated to promote consistent rendering when you include images in visual search results. This information is generated for each image when you use this option." + "name": "low", + "value": "low", + "description": "Use low reasoning during retrieval." }, { - "value": "generateNormalizedImagePerPage", - "name": "GenerateNormalizedImagePerPage", - "description": "Extracts text from images (for example, the word \"STOP\" from a traffic stop sign), and embeds it into the content field, but treats PDF files differently in that each page will be rendered as an image and normalized accordingly, instead of extracting embedded images. Non-PDF file types will be treated the same as if \"generateNormalizedImages\" was set." + "name": "medium", + "value": "medium", + "description": "Use a moderate amount of reasoning during retrieval." } ] - }, - "default": "none", - "description": "Determines how to process embedded images and image files in Azure blob storage. Setting the \"imageAction\" configuration to any value other than \"none\" requires that a skillset also be attached to that indexer." + } }, - "PdfTextRotationAlgorithm": { - "type": "string", - "enum": [ - "none", - "detectAngles" + "KnowledgeRetrievalSemanticIntent": { + "type": "object", + "description": "A semantic query intent.", + "properties": { + "search": { + "type": "string", + "description": "The semantic query to execute" + } + }, + "required": [ + "search" ], - "x-ms-enum": { - "name": "BlobIndexerPDFTextRotationAlgorithm", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Leverages normal text extraction. This is the default." - }, - { - "value": "detectAngles", - "name": "DetectAngles", - "description": "May produce better and more readable text extraction from PDF files that have rotated text within them. Note that there may be a small performance speed impact when this parameter is used. This parameter only applies to PDF files, and only to PDFs with embedded text. If the rotated text appears within an embedded image in the PDF, this parameter does not apply." - } - ] + "allOf": [ + { + "$ref": "#/definitions/KnowledgeRetrievalIntent" + } + ], + "x-ms-discriminator-value": "semantic" + }, + "KnowledgeSource": { + "type": "object", + "description": "Represents a knowledge source definition.", + "properties": { + "name": { + "type": "string", + "description": "The name of the knowledge source." + }, + "description": { + "type": "string", + "description": "Optional user-defined description." + }, + "kind": { + "$ref": "#/definitions/KnowledgeSourceKind", + "description": "The type of the knowledge source." + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the knowledge source.", + "x-ms-client-name": "eTag" + }, + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your knowledge source definition when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your knowledge source definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your knowledge source definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", + "x-nullable": true + } }, - "default": "none", - "description": "Determines algorithm for text extraction from PDF files in Azure blob storage." + "discriminator": "kind", + "required": [ + "name", + "kind" + ] }, - "MarkdownParsingSubmode": { + "KnowledgeSourceAzureOpenAIVectorizer": { + "type": "object", + "description": "Specifies the Azure OpenAI resource used to vectorize a query string.", + "properties": { + "azureOpenAIParameters": { + "$ref": "#/definitions/AzureOpenAIVectorizerParameters", + "description": "Contains the parameters specific to Azure OpenAI embedding vectorization." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSourceVectorizer" + } + ], + "x-ms-discriminator-value": "azureOpenAI" + }, + "KnowledgeSourceContentExtractionMode": { "type": "string", + "description": "Optional content extraction mode. Default is 'minimal'.", "enum": [ - "oneToMany", - "oneToOne" + "minimal", + "standard" ], "x-ms-enum": { - "name": "MarkdownParsingSubmode", + "name": "KnowledgeSourceContentExtractionMode", "modelAsString": true, "values": [ { - "value": "oneToMany", - "name": "OneToMany", - "description": "Indicates that each section of the markdown file (up to a specified depth) will be parsed into individual search documents. This can result in a single markdown file producing multiple search documents. This is the default sub-mode." + "name": "Minimal", + "value": "minimal", + "description": "Extracts only essential metadata while deferring most content processing." }, { - "value": "oneToOne", - "name": "OneToOne", - "description": "Indicates that each markdown file will be parsed into a single search document." + "name": "Standard", + "value": "standard", + "description": "Performs the full default content extraction pipeline." } ] - }, - "default": "oneToMany", - "description": "Specifies the submode that will determine whether a markdown file will be parsed into exactly one search document or multiple search documents. Default is `oneToMany`." + } }, - "MarkdownHeaderDepth": { - "type": "string", - "enum": [ - "h1", - "h2", - "h3", - "h4", - "h5", - "h6" - ], - "x-ms-enum": { - "name": "MarkdownHeaderDepth", + "KnowledgeSourceIngestionParameters": { + "type": "object", + "description": "Consolidates all general ingestion settings for knowledge sources.", + "properties": { + "identity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "An explicit identity to use for this knowledge source.", + "x-nullable": true + }, + "embeddingModel": { + "$ref": "#/definitions/KnowledgeSourceVectorizer", + "description": "Optional vectorizer configuration for vectorizing content.", + "x-nullable": true + }, + "chatCompletionModel": { + "$ref": "#/definitions/KnowledgeBaseModel", + "description": "Optional chat completion model for image verbalization or context extraction.", + "x-nullable": true + }, + "disableImageVerbalization": { + "type": "boolean", + "description": "Indicates whether image verbalization should be disabled. Default is false.", + "default": false + }, + "ingestionSchedule": { + "$ref": "#/definitions/IndexingSchedule", + "description": "Optional schedule for data ingestion.", + "x-nullable": true + }, + "ingestionPermissionOptions": { + "type": "array", + "description": "Optional list of permission types to ingest together with document content. If specified, it will set the indexer permission options for the data source.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/KnowledgeSourceIngestionPermissionOption" + } + }, + "contentExtractionMode": { + "type": "string", + "description": "Optional content extraction mode. Default is 'minimal'.", + "default": "minimal", + "enum": [ + "minimal", + "standard" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "Minimal", + "value": "minimal", + "description": "Extracts only essential metadata while deferring most content processing." + }, + { + "name": "Standard", + "value": "standard", + "description": "Performs the full default content extraction pipeline." + } + ] + }, + "x-nullable": true + }, + "aiServices": { + "$ref": "#/definitions/AIServices", + "description": "Optional AI Services configuration for content processing.", + "x-nullable": true + } + } + }, + "KnowledgeSourceIngestionPermissionOption": { + "type": "string", + "description": "Permission types to ingest together with document content.", + "enum": [ + "userIds", + "groupIds", + "rbacScope" + ], + "x-ms-enum": { + "name": "KnowledgeSourceIngestionPermissionOption", "modelAsString": true, "values": [ { - "value": "h1", - "name": "h1", - "description": "Indicates that headers up to a level of h1 will be considered while grouping markdown content." - }, - { - "value": "h2", - "name": "h2", - "description": "Indicates that headers up to a level of h2 will be considered while grouping markdown content." - }, - { - "value": "h3", - "name": "h3", - "description": "Indicates that headers up to a level of h3 will be considered while grouping markdown content." - }, - { - "value": "h4", - "name": "h4", - "description": "Indicates that headers up to a level of h4 will be considered while grouping markdown content." + "name": "UserIds", + "value": "userIds", + "description": "Ingest explicit user identifiers alongside document content." }, { - "value": "h5", - "name": "h5", - "description": "Indicates that headers up to a level of h5 will be considered while grouping markdown content." + "name": "GroupIds", + "value": "groupIds", + "description": "Ingest group identifiers alongside document content." }, { - "value": "h6", - "name": "h6", - "description": "Indicates that headers up to a level of h6 will be considered while grouping markdown content. This is the default." + "name": "RbacScope", + "value": "rbacScope", + "description": "Ingest RBAC scope information alongside document content." } ] - }, - "default": "h6", - "description": "Specifies the max header depth that will be considered while grouping markdown content. Default is `h6`." + } }, - "ExecutionEnvironment": { + "KnowledgeSourceKind": { "type": "string", + "description": "The kind of the knowledge source.", "enum": [ - "standard", - "private" + "searchIndex", + "azureBlob", + "indexedSharePoint", + "indexedOneLake", + "web", + "remoteSharePoint" ], "x-ms-enum": { - "name": "IndexerExecutionEnvironment", + "name": "KnowledgeSourceKind", "modelAsString": true, "values": [ { - "value": "standard", - "name": "standard", - "description": "Indicates that the search service can determine where the indexer should execute. This is the default environment when nothing is specified and is the recommended value." + "name": "SearchIndex", + "value": "searchIndex", + "description": "A knowledge source that reads data from a Search Index." }, { - "value": "private", - "name": "private", - "description": "Indicates that the indexer should run with the environment provisioned specifically for the search service. This should only be specified as the execution environment if the indexer needs to access resources securely over shared private link resources." + "name": "AzureBlob", + "value": "azureBlob", + "description": "A knowledge source that read and ingest data from Azure Blob Storage to a Search Index." + }, + { + "name": "IndexedSharePoint", + "value": "indexedSharePoint", + "description": "A knowledge source that reads data from indexed SharePoint." + }, + { + "name": "IndexedOneLake", + "value": "indexedOneLake", + "description": "A knowledge source that reads data from indexed OneLake." + }, + { + "name": "Web", + "value": "web", + "description": "A knowledge source that reads data from the web." + }, + { + "name": "RemoteSharePoint", + "value": "remoteSharePoint", + "description": "A knowledge source that reads data from remote SharePoint." } ] + } + }, + "KnowledgeSourceParams": { + "type": "object", + "description": "Base type for knowledge source runtime parameters.", + "properties": { + "knowledgeSourceName": { + "type": "string", + "description": "The name of the index the params apply to." + }, + "includeReferences": { + "type": "boolean", + "description": "Indicates whether references should be included for data retrieved from this source." + }, + "includeReferenceSourceData": { + "type": "boolean", + "description": "Indicates whether references should include the structured data obtained during retrieval in their payload." + }, + "alwaysQuerySource": { + "type": "boolean", + "description": "Indicates that this knowledge source should bypass source selection and always be queried at retrieval time." + }, + "rerankerThreshold": { + "type": "number", + "format": "float", + "description": "The reranker threshold all retrieved documents must meet to be included in the response." + }, + "kind": { + "$ref": "#/definitions/KnowledgeSourceKind", + "description": "The type of the knowledge source." + } }, - "default": "standard", - "description": "Specifies the environment in which the indexer should execute." + "discriminator": "kind", + "required": [ + "knowledgeSourceName", + "kind" + ] }, - "FieldMappingFunction": { + "KnowledgeSourceReference": { "type": "object", + "description": "Reference to a knowledge source.", "properties": { "name": { "type": "string", - "description": "The name of the field mapping function." - }, - "parameters": { - "type": "object", - "x-nullable": true, - "additionalProperties": true, - "description": "A dictionary of parameter name/value pairs to pass to the function. Each value must be of a primitive type." + "description": "The name of the knowledge source." } }, "required": [ "name" - ], - "description": "Represents a function that transforms a value from a data source before indexing.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/search-indexer-field-mappings" - } + ] }, - "FieldMapping": { + "KnowledgeSourceStatistics": { "type": "object", + "description": "Statistical information about knowledge source synchronization history.", "properties": { - "sourceFieldName": { - "type": "string", - "description": "The name of the field in the data source." + "totalSynchronization": { + "type": "integer", + "format": "int32", + "description": "Total number of synchronizations." }, - "targetFieldName": { + "averageSynchronizationDuration": { "type": "string", - "description": "The name of the target field in the index. Same as the source field name by default." + "description": "Average synchronization duration in HH:MM:SS format." }, - "mappingFunction": { - "$ref": "#/definitions/FieldMappingFunction", - "x-nullable": true, - "description": "A function to apply to each source field value before indexing." + "averageItemsProcessedPerSynchronization": { + "type": "integer", + "format": "int32", + "description": "Average items processed per synchronization." } }, "required": [ - "sourceFieldName" - ], - "description": "Defines a mapping between a field in a data source and a target field in an index.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/search-indexer-field-mappings" - } + "totalSynchronization", + "averageSynchronizationDuration", + "averageItemsProcessedPerSynchronization" + ] }, - "SearchIndexer": { + "KnowledgeSourceStatus": { "type": "object", + "description": "Represents the status and synchronization history of a knowledge source.", "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, - "type": "string", - "description": "The name of the indexer." - }, - "description": { - "type": "string", - "description": "The description of the indexer." - }, - "dataSourceName": { - "type": "string", - "description": "The name of the datasource from which this indexer reads data." - }, - "skillsetName": { - "type": "string", - "description": "The name of the skillset executing with this indexer." + "synchronizationStatus": { + "$ref": "#/definitions/KnowledgeSourceSynchronizationStatus", + "description": "The current synchronization status." }, - "targetIndexName": { + "synchronizationInterval": { "type": "string", - "description": "The name of the index to which this indexer writes data." - }, - "schedule": { - "$ref": "#/definitions/IndexingSchedule", - "x-nullable": true, - "description": "The schedule for this indexer." - }, - "parameters": { - "$ref": "#/definitions/IndexingParameters", - "x-nullable": true, - "description": "Parameters for indexer execution." + "description": "The synchronization interval (e.g., '1d' for daily). Null if no schedule is configured.", + "x-nullable": true }, - "fieldMappings": { - "type": "array", - "items": { - "$ref": "#/definitions/FieldMapping" - }, - "description": "Defines mappings between fields in the data source and corresponding target fields in the index.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/search-indexer-field-mappings" - } + "currentSynchronizationState": { + "$ref": "#/definitions/SynchronizationState", + "description": "Current synchronization state that spans multiple indexer runs.", + "x-nullable": true }, - "outputFieldMappings": { - "type": "array", - "items": { - "$ref": "#/definitions/FieldMapping" - }, - "description": "Output field mappings are applied after enrichment and immediately before indexing.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/search-indexer-field-mappings" - } + "lastSynchronizationState": { + "$ref": "#/definitions/CompletedSynchronizationState", + "description": "Details of the last completed synchronization. Null on first sync.", + "x-nullable": true }, - "disabled": { - "x-ms-client-name": "IsDisabled", - "type": "boolean", - "default": false, - "x-nullable": true, - "description": "A value indicating whether the indexer is disabled. Default is false." - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the indexer." - }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your indexer definition (as well as indexer execution status) when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your indexer definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your indexer definition (and indexer execution status) will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" - }, + "statistics": { + "$ref": "#/definitions/KnowledgeSourceStatistics", + "description": "Statistical information about the knowledge source synchronization history. Null on first sync.", "x-nullable": true - }, - "cache": { - "$ref": "#/definitions/SearchIndexerCache", - "x-nullable": true, - "description": "Adds caching to an enrichment pipeline to allow for incremental modification steps without having to rebuild the index every time.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/search-howto-incremental-index" - } } }, "required": [ - "name", - "dataSourceName", - "targetIndexName" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Indexer-operations" - }, - "description": "Represents an indexer." + "synchronizationStatus" + ] }, - "ListIndexersResult": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "Indexers", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchIndexer" - }, - "description": "The indexers in the Search service." - } - }, - "required": [ - "value" + "KnowledgeSourceSynchronizationStatus": { + "type": "string", + "description": "The current synchronization status of the knowledge source.", + "enum": [ + "creating", + "active", + "deleting" ], - "description": "Response from a List Indexers request. If successful, it includes the full definitions of all indexers." + "x-ms-enum": { + "name": "KnowledgeSourceSynchronizationStatus", + "modelAsString": true, + "values": [ + { + "name": "Creating", + "value": "creating", + "description": "The knowledge source is being provisioned." + }, + { + "name": "Active", + "value": "active", + "description": "The knowledge source is active and synchronization runs are occurring." + }, + { + "name": "Deleting", + "value": "deleting", + "description": "The knowledge source is being deleted and synchronization is paused." + } + ] + } }, - "SearchIndexerError": { + "KnowledgeSourceVectorizer": { "type": "object", + "description": "Specifies the vectorization method to be used for knowledge source embedding model.", "properties": { - "key": { - "type": "string", - "readOnly": true, - "description": "The key of the item for which indexing failed." - }, - "errorMessage": { - "type": "string", - "readOnly": true, - "description": "The message describing the error that occurred while processing the item." - }, - "statusCode": { - "type": "integer", - "format": "int32", - "x-nullable": false, - "readOnly": true, - "description": "The status code indicating why the indexing operation failed. Possible values include: 400 for a malformed input document, 404 for document not found, 409 for a version conflict, 422 when the index is temporarily unavailable, or 503 for when the service is too busy." - }, - "name": { - "type": "string", - "readOnly": true, - "description": "The name of the source at which the error originated. For example, this could refer to a particular skill in the attached skillset. This may not be always available." - }, - "details": { - "type": "string", - "readOnly": true, - "description": "Additional, verbose details about the error to assist in debugging the indexer. This may not be always available." - }, - "documentationLink": { - "type": "string", - "readOnly": true, - "description": "A link to a troubleshooting guide for these classes of errors. This may not be always available." + "kind": { + "$ref": "#/definitions/VectorSearchVectorizerKind", + "description": "The name of the kind of vectorization method being configured for use with vector search." } }, + "discriminator": "kind", "required": [ - "errorMessage", - "statusCode" - ], - "description": "Represents an item- or document-level indexing error." + "kind" + ] }, - "SearchIndexerWarning": { + "LanguageDetectionSkill": { "type": "object", + "description": "A skill that detects the language of input text and reports a single language code for every document submitted on the request. The language code is paired with a score indicating the confidence of the analysis.", "properties": { - "key": { - "type": "string", - "readOnly": true, - "description": "The key of the item which generated a warning." - }, - "message": { - "type": "string", - "readOnly": true, - "description": "The message describing the warning that occurred while processing the item." - }, - "name": { - "type": "string", - "readOnly": true, - "description": "The name of the source at which the warning originated. For example, this could refer to a particular skill in the attached skillset. This may not be always available." - }, - "details": { + "defaultCountryHint": { "type": "string", - "readOnly": true, - "description": "Additional, verbose details about the warning to assist in debugging the indexer. This may not be always available." + "description": "A country code to use as a hint to the language detection model if it cannot disambiguate the language.", + "x-nullable": true }, - "documentationLink": { + "modelVersion": { "type": "string", - "readOnly": true, - "description": "A link to a troubleshooting guide for these classes of warnings. This may not be always available." + "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.", + "x-nullable": true } }, - "required": [ - "message" + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } ], - "description": "Represents an item-level warning." + "x-ms-discriminator-value": "#Microsoft.Skills.Text.LanguageDetectionSkill" }, - "IndexerExecutionResult": { + "LengthTokenFilter": { "type": "object", + "description": "Removes words that are too long or too short. This token filter is implemented using Apache Lucene.", "properties": { - "status": { - "$ref": "#/definitions/IndexerExecutionStatus", - "readOnly": true, - "description": "The outcome of this indexer execution." - }, - "statusDetail": { - "$ref": "#/definitions/IndexerExecutionStatusDetail", - "readOnly": true, - "description": "The outcome of this indexer execution." - }, - "mode": { - "$ref": "#/definitions/IndexingMode", - "readOnly": true, - "description": "The mode the indexer is running in." - }, - "errorMessage": { - "type": "string", - "readOnly": true, - "description": "The error message indicating the top-level error, if any." - }, - "startTime": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The start time of this indexer execution." - }, - "endTime": { - "type": "string", - "format": "date-time", - "readOnly": true, - "x-nullable": true, - "description": "The end time of this indexer execution, if the execution has already completed." - }, - "errors": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchIndexerError" - }, - "description": "The item-level indexing errors." - }, - "warnings": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchIndexerWarning" - }, - "description": "The item-level indexing warnings." - }, - "itemsProcessed": { - "x-ms-client-name": "ItemCount", + "min": { "type": "integer", "format": "int32", - "x-nullable": false, - "readOnly": true, - "description": "The number of items that were processed during this indexer execution. This includes both successfully processed items and items where indexing was attempted but failed." + "description": "The minimum length in characters. Default is 0. Maximum is 300. Must be less than the value of max.", + "default": 0, + "maximum": 300 }, - "itemsFailed": { - "x-ms-client-name": "FailedItemCount", + "max": { "type": "integer", "format": "int32", - "x-nullable": false, - "readOnly": true, - "description": "The number of items that failed to be indexed during this indexer execution." - }, - "initialTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state with which an indexer execution started." - }, - "finalTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state with which an indexer execution finished." + "description": "The maximum length in characters. Default and maximum is 300.", + "default": 300, + "maximum": 300 } }, - "required": [ - "status", - "errors", - "warnings", - "itemsProcessed", - "itemsFailed" - ], - "description": "Represents the result of an individual indexer execution." - }, - "IndexerExecutionStatus": { - "type": "string", - "enum": [ - "transientFailure", - "success", - "inProgress", - "reset" + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } ], - "x-ms-enum": { - "name": "IndexerExecutionStatus", - "modelAsString": false, - "values": [ - { - "value": "transientFailure", - "name": "TransientFailure", - "description": "An indexer invocation has failed, but the failure may be transient. Indexer invocations will continue per schedule." - }, - { - "value": "success", - "name": "Success", - "description": "Indexer execution completed successfully." - }, - { - "value": "inProgress", - "name": "InProgress", - "description": "Indexer execution is in progress." - }, - { - "value": "reset", - "name": "Reset", - "description": "Indexer has been reset." - } - ] - }, - "x-nullable": false, - "description": "Represents the status of an individual indexer execution." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.LengthTokenFilter" }, - "SearchIndexerStatus": { + "LexicalAnalyzer": { "type": "object", + "description": "Base type for analyzers.", "properties": { - "name": { + "@odata.type": { "type": "string", - "readOnly": true, - "description": "The name of the indexer." - }, - "status": { - "$ref": "#/definitions/IndexerStatus", - "readOnly": true, - "description": "Overall indexer status." - }, - "runtime": { - "$ref": "#/definitions/IndexerRuntime", - "readOnly": true, - "description": "Snapshot of the indexer’s cumulative runtime consumption for the service over the current UTC period." - }, - "lastResult": { - "$ref": "#/definitions/IndexerExecutionResult", - "readOnly": true, - "description": "The result of the most recent or an in-progress indexer execution." - }, - "executionHistory": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/IndexerExecutionResult" - }, - "description": "History of the recent indexer executions, sorted in reverse chronological order." - }, - "limits": { - "$ref": "#/definitions/SearchIndexerLimits", - "readOnly": true, - "description": "The execution limits for the indexer." + "description": "The discriminator for derived types." }, - "currentState": { - "$ref": "#/definitions/IndexerCurrentState", - "readOnly": true, - "description": "All of the state that defines and dictates the indexer's current execution." + "name": { + "type": "string", + "description": "The name of the analyzer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." } }, + "discriminator": "@odata.type", "required": [ - "name", - "status", - "runtime", - "executionHistory", - "limits" - ], - "description": "Represents the current status and execution history of an indexer." + "@odata.type", + "name" + ] }, - "IndexerStatus": { + "LexicalAnalyzerName": { "type": "string", + "description": "Defines the names of all text analyzers supported by the search engine.", "enum": [ - "unknown", - "error", - "running" + "ar.microsoft", + "ar.lucene", + "hy.lucene", + "bn.microsoft", + "eu.lucene", + "bg.microsoft", + "bg.lucene", + "ca.microsoft", + "ca.lucene", + "zh-Hans.microsoft", + "zh-Hans.lucene", + "zh-Hant.microsoft", + "zh-Hant.lucene", + "hr.microsoft", + "cs.microsoft", + "cs.lucene", + "da.microsoft", + "da.lucene", + "nl.microsoft", + "nl.lucene", + "en.microsoft", + "en.lucene", + "et.microsoft", + "fi.microsoft", + "fi.lucene", + "fr.microsoft", + "fr.lucene", + "gl.lucene", + "de.microsoft", + "de.lucene", + "el.microsoft", + "el.lucene", + "gu.microsoft", + "he.microsoft", + "hi.microsoft", + "hi.lucene", + "hu.microsoft", + "hu.lucene", + "is.microsoft", + "id.microsoft", + "id.lucene", + "ga.lucene", + "it.microsoft", + "it.lucene", + "ja.microsoft", + "ja.lucene", + "kn.microsoft", + "ko.microsoft", + "ko.lucene", + "lv.microsoft", + "lv.lucene", + "lt.microsoft", + "ml.microsoft", + "ms.microsoft", + "mr.microsoft", + "nb.microsoft", + "no.lucene", + "fa.lucene", + "pl.microsoft", + "pl.lucene", + "pt-BR.microsoft", + "pt-BR.lucene", + "pt-PT.microsoft", + "pt-PT.lucene", + "pa.microsoft", + "ro.microsoft", + "ro.lucene", + "ru.microsoft", + "ru.lucene", + "sr-cyrillic.microsoft", + "sr-latin.microsoft", + "sk.microsoft", + "sl.microsoft", + "es.microsoft", + "es.lucene", + "sv.microsoft", + "sv.lucene", + "ta.microsoft", + "te.microsoft", + "th.microsoft", + "th.lucene", + "tr.microsoft", + "tr.lucene", + "uk.microsoft", + "ur.microsoft", + "vi.microsoft", + "standard.lucene", + "standardasciifolding.lucene", + "keyword", + "pattern", + "simple", + "stop", + "whitespace" ], "x-ms-enum": { - "name": "IndexerStatus", - "modelAsString": false, + "name": "LexicalAnalyzerName", + "modelAsString": true, "values": [ { - "value": "unknown", - "name": "Unknown", - "description": "Indicates that the indexer is in an unknown state." + "name": "ArMicrosoft", + "value": "ar.microsoft", + "description": "Microsoft analyzer for Arabic." }, { - "value": "error", - "name": "Error", - "description": "Indicates that the indexer experienced an error that cannot be corrected without human intervention." + "name": "ArLucene", + "value": "ar.lucene", + "description": "Lucene analyzer for Arabic." }, { - "value": "running", - "name": "Running", - "description": "Indicates that the indexer is running normally." - } - ] - }, - "x-nullable": false, - "description": "Represents the overall indexer status." - }, - "IndexerRuntime": { - "type": "object", - "properties": { - "usedSeconds": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "description": "Cumulative runtime of the indexer from the beginningTime to endingTime, in seconds." - }, - "remainingSeconds": { - "type": "integer", - "format": "int64", - "x-nullable": true, - "description": "Cumulative runtime remaining for all indexers in the service from the beginningTime to endingTime, in seconds." - }, - "beginningTime": { - "type": "string", - "format": "date-time", - "x-nullable": false, - "description": "Beginning UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." - }, - "endingTime": { - "type": "string", - "format": "date-time", - "x-nullable": false, - "description": "End UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." - } - }, - "required": [ - "usedSeconds", - "beginningTime", - "endingTime" - ], - "description": "Represents the indexer's cumulative runtime consumption in the service." - }, - "IndexerExecutionStatusDetail": { - "type": "string", - "enum": [ - "resetDocs", - "resync" - ], - "x-ms-enum": { - "name": "IndexerExecutionStatusDetail", - "modelAsString": true, - "values": [ - { - "value": "resetDocs", - "name": "ResetDocs", - "description": "Indicates that the reset that occurred was for a call to ResetDocs." + "name": "HyLucene", + "value": "hy.lucene", + "description": "Lucene analyzer for Armenian." }, { - "value": "resync", - "name": "Resync", - "description": "Indicates to selectively resync based on option(s) from data source." - } - ] - }, - "description": "Details the status of an individual indexer execution." - }, - "IndexerCurrentState": { - "type": "object", - "properties": { - "mode": { - "$ref": "#/definitions/IndexingMode", - "readOnly": true, - "description": "The mode the indexer is running in." - }, - "allDocsInitialTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state used when indexing starts on all documents in the datasource." - }, - "allDocsFinalTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state value when indexing finishes on all documents in the datasource." - }, - "resetDocsInitialTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state used when indexing starts on select, reset documents in the datasource." - }, - "resetDocsFinalTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state value when indexing finishes on select, reset documents in the datasource." - }, - "resetDocumentKeys": { - "type": "array", - "items": { - "type": "string" + "name": "BnMicrosoft", + "value": "bn.microsoft", + "description": "Microsoft analyzer for Bangla." }, - "readOnly": true, - "description": "The list of document keys that have been reset. The document key is the document's unique identifier for the data in the search index. The indexer will prioritize selectively re-ingesting these keys." - }, - "resetDatasourceDocumentIds": { - "type": "array", - "items": { - "type": "string" + { + "name": "EuLucene", + "value": "eu.lucene", + "description": "Lucene analyzer for Basque." }, - "readOnly": true, - "description": "The list of datasource document ids that have been reset. The datasource document id is the unique identifier for the data in the datasource. The indexer will prioritize selectively re-ingesting these ids." - }, - "resyncInitialTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state used when indexing starts on selective options from the datasource." - }, - "resyncFinalTrackingState": { - "type": "string", - "readOnly": true, - "description": "Change tracking state value when indexing finishes on selective options from the datasource." - } - }, - "description": "Represents all of the state that defines and dictates the indexer's current execution." - }, - "IndexingMode": { - "type": "string", - "enum": [ - "indexingAllDocs", - "indexingResetDocs", - "indexingResync" - ], - "x-ms-enum": { - "name": "IndexingMode", - "modelAsString": true, - "values": [ { - "value": "indexingAllDocs", - "name": "IndexingAllDocs", - "description": "The indexer is indexing all documents in the datasource." + "name": "BgMicrosoft", + "value": "bg.microsoft", + "description": "Microsoft analyzer for Bulgarian." }, { - "value": "indexingResetDocs", - "name": "indexingResetDocs", - "description": "The indexer is indexing selective, reset documents in the datasource. The documents being indexed are defined on indexer status." + "name": "BgLucene", + "value": "bg.lucene", + "description": "Lucene analyzer for Bulgarian." }, { - "value": "indexingResync", - "name": "IndexingResync", - "description": "The indexer is resyncing and indexing selective option(s) from the datasource." - } - ] - }, - "x-nullable": false, - "description": "Represents the mode the indexer is executing in." - }, - "SearchIndexerLimits": { - "type": "object", - "properties": { - "maxRunTime": { - "type": "string", - "format": "duration", - "readOnly": true, - "description": "The maximum duration that the indexer is permitted to run for one execution." - }, - "maxDocumentExtractionSize": { - "type": "number", - "format": "int64", - "readOnly": true, - "description": "The maximum size of a document, in bytes, which will be considered valid for indexing." - }, - "maxDocumentContentCharactersToExtract": { - "type": "number", - "format": "int64", - "readOnly": true, - "description": "The maximum number of characters that will be extracted from a document picked up for indexing." - } - } - }, - "SearchField": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the field, which must be unique within the fields collection of the index or parent field.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - } - }, - "type": { - "$ref": "#/definitions/SearchFieldDataType", - "description": "The data type of the field.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/supported-data-types" - } - }, - "key": { - "type": "boolean", - "description": "A value indicating whether the field uniquely identifies documents in the index. Exactly one top-level field in each index must be chosen as the key field and it must be of type Edm.String. Key fields can be used to look up documents directly and update or delete specific documents. Default is false for simple fields and null for complex fields." - }, - "retrievable": { - "type": "boolean", - "description": "A value indicating whether the field can be returned in a search result. You can disable this option if you want to use a field (for example, margin) as a filter, sorting, or scoring mechanism but do not want the field to be visible to the end user. This property must be true for key fields, and it must be null for complex fields. This property can be changed on existing fields. Enabling this property does not cause any increase in index storage requirements. Default is true for simple fields, false for vector fields, and null for complex fields." - }, - "stored": { - "type": "boolean", - "description": "An immutable value indicating whether the field will be persisted separately on disk to be returned in a search result. You can disable this option if you don't plan to return the field contents in a search response to save on storage overhead. This can only be set during index creation and only for vector fields. This property cannot be changed for existing fields or set as false for new fields. If this property is set as false, the property 'retrievable' must also be set to false. This property must be true or unset for key fields, for new fields, and for non-vector fields, and it must be null for complex fields. Disabling this property will reduce index storage requirements. The default is true for vector fields." - }, - "searchable": { - "type": "boolean", - "description": "A value indicating whether the field is full-text searchable. This means it will undergo analysis such as word-breaking during indexing. If you set a searchable field to a value like \"sunny day\", internally it will be split into the individual tokens \"sunny\" and \"day\". This enables full-text searches for these terms. Fields of type Edm.String or Collection(Edm.String) are searchable by default. This property must be false for simple fields of other non-string data types, and it must be null for complex fields. Note: searchable fields consume extra space in your index to accommodate additional tokenized versions of the field value for full-text searches. If you want to save space in your index and you don't need a field to be included in searches, set searchable to false." - }, - "filterable": { - "type": "boolean", - "description": "A value indicating whether to enable the field to be referenced in $filter queries. filterable differs from searchable in how strings are handled. Fields of type Edm.String or Collection(Edm.String) that are filterable do not undergo word-breaking, so comparisons are for exact matches only. For example, if you set such a field f to \"sunny day\", $filter=f eq 'sunny' will find no matches, but $filter=f eq 'sunny day' will. This property must be null for complex fields. Default is true for simple fields and null for complex fields." - }, - "sortable": { - "type": "boolean", - "description": "A value indicating whether to enable the field to be referenced in $orderby expressions. By default, the search engine sorts results by score, but in many experiences users will want to sort by fields in the documents. A simple field can be sortable only if it is single-valued (it has a single value in the scope of the parent document). Simple collection fields cannot be sortable, since they are multi-valued. Simple sub-fields of complex collections are also multi-valued, and therefore cannot be sortable. This is true whether it's an immediate parent field, or an ancestor field, that's the complex collection. Complex fields cannot be sortable and the sortable property must be null for such fields. The default for sortable is true for single-valued simple fields, false for multi-valued simple fields, and null for complex fields." - }, - "facetable": { - "type": "boolean", - "description": "A value indicating whether to enable the field to be referenced in facet queries. Typically used in a presentation of search results that includes hit count by category (for example, search for digital cameras and see hits by brand, by megapixels, by price, and so on). This property must be null for complex fields. Fields of type Edm.GeographyPoint or Collection(Edm.GeographyPoint) cannot be facetable. Default is true for all other simple fields." - }, - "permissionFilter": { - "type": "string", - "enum": [ - "userIds", - "groupIds", - "rbacScope" - ], - "description": "A value indicating whether the field should be used as a permission filter.", - "x-nullable": true, - "x-ms-enum": { - "name": "PermissionFilter", - "modelAsString": true, - "values": [ - { - "value": "userIds", - "name": "UserIds", - "description": "Field represents user IDs that should be used to filter document access on queries." - }, - { - "value": "groupIds", - "name": "GroupIds", - "description": "Field represents group IDs that should be used to filter document access on queries." - }, - { - "value": "rbacScope", - "name": "RbacScope", - "description": "Field represents an RBAC scope that should be used to filter document access on queries." - } - ] - } - }, - "sensitivityLabel": { - "type": "boolean", - "description": "A value indicating whether the field should be used for sensitivity label filtering. This enables document-level filtering based on Microsoft Purview sensitivity labels.", - "x-nullable": true - }, - "analyzer": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Language-support" + "name": "CaMicrosoft", + "value": "ca.microsoft", + "description": "Microsoft analyzer for Catalan." }, - "$ref": "#/definitions/LexicalAnalyzerName", - "description": "The name of the analyzer to use for the field. This option can be used only with searchable fields and it can't be set together with either searchAnalyzer or indexAnalyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.", - "x-nullable": true - }, - "searchAnalyzer": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Language-support" + { + "name": "CaLucene", + "value": "ca.lucene", + "description": "Lucene analyzer for Catalan." }, - "$ref": "#/definitions/LexicalAnalyzerName", - "description": "The name of the analyzer used at search time for the field. This option can be used only with searchable fields. It must be set together with indexAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. This analyzer can be updated on an existing field. Must be null for complex fields.", - "x-nullable": true - }, - "indexAnalyzer": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Language-support" + { + "name": "ZhHansMicrosoft", + "value": "zh-Hans.microsoft", + "description": "Microsoft analyzer for Chinese (Simplified)." }, - "$ref": "#/definitions/LexicalAnalyzerName", - "description": "The name of the analyzer used at indexing time for the field. This option can be used only with searchable fields. It must be set together with searchAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.", - "x-nullable": true - }, - "normalizer": { - "externalDocs": { - "url": "https://aka.ms/azs-normalizers" + { + "name": "ZhHansLucene", + "value": "zh-Hans.lucene", + "description": "Lucene analyzer for Chinese (Simplified)." }, - "$ref": "#/definitions/LexicalNormalizerName", - "description": "The name of the normalizer to use for the field. This option can be used only with fields with filterable, sortable, or facetable enabled. Once the normalizer is chosen, it cannot be changed for the field. Must be null for complex fields.", - "x-nullable": true - }, - "dimensions": { - "x-ms-client-name": "vectorSearchDimensions", - "type": "integer", - "format": "int32", - "x-nullable": true, - "minimum": 2, - "maximum": 4096, - "description": "The dimensionality of the vector field." - }, - "vectorSearchProfile": { - "x-ms-client-name": "vectorSearchProfileName", - "type": "string", - "x-nullable": true, - "description": "The name of the vector search profile that specifies the algorithm and vectorizer to use when searching the vector field." - }, - "vectorEncoding": { - "x-ms-client-name": "VectorEncodingFormat", - "$ref": "#/definitions/VectorEncodingFormat", - "description": "The encoding format to interpret the field contents.", - "x-nullable": true - }, - "synonymMaps": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Synonym-Map-operations" + { + "name": "ZhHantMicrosoft", + "value": "zh-Hant.microsoft", + "description": "Microsoft analyzer for Chinese (Traditional)." }, - "type": "array", - "items": { - "type": "string" + { + "name": "ZhHantLucene", + "value": "zh-Hant.lucene", + "description": "Lucene analyzer for Chinese (Traditional)." }, - "description": "A list of the names of synonym maps to associate with this field. This option can be used only with searchable fields. Currently only one synonym map per field is supported. Assigning a synonym map to a field ensures that query terms targeting that field are expanded at query-time using the rules in the synonym map. This attribute can be changed on existing fields. Must be null or an empty collection for complex fields." - }, - "fields": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchField" + { + "name": "HrMicrosoft", + "value": "hr.microsoft", + "description": "Microsoft analyzer for Croatian." }, - "description": "A list of sub-fields if this is a field of type Edm.ComplexType or Collection(Edm.ComplexType). Must be null or empty for simple fields." - } - }, - "required": [ - "name", - "type" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Index" - }, - "description": "Represents a field in an index definition, which describes the name, data type, and search behavior of a field." - }, - "TextWeights": { - "type": "object", - "properties": { - "weights": { - "type": "object", - "additionalProperties": { - "type": "number", - "format": "double", - "x-nullable": false + { + "name": "CsMicrosoft", + "value": "cs.microsoft", + "description": "Microsoft analyzer for Czech." }, - "description": "The dictionary of per-field weights to boost document scoring. The keys are field names and the values are the weights for each field." - } - }, - "required": [ - "weights" - ], - "description": "Defines weights on index fields for which matches should boost scoring in search queries." - }, - "ScoringFunction": { - "type": "object", - "discriminator": "type", - "properties": { - "type": { - "type": "string", - "description": "Indicates the type of function to use. Valid values include magnitude, freshness, distance, and tag. The function type must be lower case." - }, - "fieldName": { - "type": "string", - "description": "The name of the field used as input to the scoring function." - }, - "boost": { - "type": "number", - "format": "double", - "description": "A multiplier for the raw score. Must be a positive number not equal to 1.0." - }, - "interpolation": { - "$ref": "#/definitions/ScoringFunctionInterpolation", - "description": "A value indicating how boosting will be interpolated across document scores; defaults to \"Linear\"." - } - }, - "required": [ - "type", - "fieldName", - "boost" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Add-scoring-profiles-to-a-search-index" - }, - "description": "Base type for functions that can modify document scores during ranking." - }, - "DistanceScoringFunction": { - "type": "object", - "x-ms-discriminator-value": "distance", - "allOf": [ - { - "$ref": "#/definitions/ScoringFunction" - } - ], - "properties": { - "distance": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/DistanceScoringParameters", - "description": "Parameter values for the distance scoring function." - } - }, - "required": [ - "distance" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Add-scoring-profiles-to-a-search-index" - }, - "description": "Defines a function that boosts scores based on distance from a geographic location." - }, - "DistanceScoringParameters": { - "type": "object", - "properties": { - "referencePointParameter": { - "type": "string", - "description": "The name of the parameter passed in search queries to specify the reference location." - }, - "boostingDistance": { - "type": "number", - "format": "double", - "description": "The distance in kilometers from the reference location where the boosting range ends." - } - }, - "required": [ - "referencePointParameter", - "boostingDistance" - ], - "description": "Provides parameter values to a distance scoring function." - }, - "FreshnessScoringFunction": { - "type": "object", - "x-ms-discriminator-value": "freshness", - "allOf": [ - { - "$ref": "#/definitions/ScoringFunction" - } - ], - "properties": { - "freshness": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/FreshnessScoringParameters", - "description": "Parameter values for the freshness scoring function." - } - }, - "required": [ - "freshness" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Add-scoring-profiles-to-a-search-index" - }, - "description": "Defines a function that boosts scores based on the value of a date-time field." - }, - "FreshnessScoringParameters": { - "type": "object", - "properties": { - "boostingDuration": { - "type": "string", - "format": "duration", - "description": "The expiration period after which boosting will stop for a particular document." - } - }, - "required": [ - "boostingDuration" - ], - "description": "Provides parameter values to a freshness scoring function." - }, - "MagnitudeScoringFunction": { - "type": "object", - "x-ms-discriminator-value": "magnitude", - "allOf": [ - { - "$ref": "#/definitions/ScoringFunction" - } - ], - "properties": { - "magnitude": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/MagnitudeScoringParameters", - "description": "Parameter values for the magnitude scoring function." - } - }, - "required": [ - "magnitude" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Add-scoring-profiles-to-a-search-index" - }, - "description": "Defines a function that boosts scores based on the magnitude of a numeric field." - }, - "MagnitudeScoringParameters": { - "type": "object", - "properties": { - "boostingRangeStart": { - "type": "number", - "format": "double", - "description": "The field value at which boosting starts." - }, - "boostingRangeEnd": { - "type": "number", - "format": "double", - "description": "The field value at which boosting ends." - }, - "constantBoostBeyondRange": { - "x-ms-client-name": "ShouldBoostBeyondRangeByConstant", - "type": "boolean", - "description": "A value indicating whether to apply a constant boost for field values beyond the range end value; default is false." - } - }, - "required": [ - "boostingRangeStart", - "boostingRangeEnd" - ], - "description": "Provides parameter values to a magnitude scoring function." - }, - "TagScoringFunction": { - "type": "object", - "x-ms-discriminator-value": "tag", - "allOf": [ - { - "$ref": "#/definitions/ScoringFunction" - } - ], - "properties": { - "tag": { - "x-ms-client-name": "Parameters", - "$ref": "#/definitions/TagScoringParameters", - "description": "Parameter values for the tag scoring function." - } - }, - "required": [ - "tag" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Add-scoring-profiles-to-a-search-index" - }, - "description": "Defines a function that boosts scores of documents with string values matching a given list of tags." - }, - "TagScoringParameters": { - "type": "object", - "properties": { - "tagsParameter": { - "type": "string", - "description": "The name of the parameter passed in search queries to specify the list of tags to compare against the target field." - } - }, - "required": [ - "tagsParameter" - ], - "description": "Provides parameter values to a tag scoring function." - }, - "ScoringFunctionInterpolation": { - "type": "string", - "enum": [ - "linear", - "constant", - "quadratic", - "logarithmic" - ], - "x-ms-enum": { - "name": "ScoringFunctionInterpolation", - "modelAsString": false, - "values": [ { - "value": "linear", - "name": "Linear", - "description": "Boosts scores by a linearly decreasing amount. This is the default interpolation for scoring functions." + "name": "CsLucene", + "value": "cs.lucene", + "description": "Lucene analyzer for Czech." }, { - "value": "constant", - "name": "Constant", - "description": "Boosts scores by a constant factor." + "name": "DaMicrosoft", + "value": "da.microsoft", + "description": "Microsoft analyzer for Danish." }, { - "value": "quadratic", - "name": "Quadratic", - "description": "Boosts scores by an amount that decreases quadratically. Boosts decrease slowly for higher scores, and more quickly as the scores decrease. This interpolation option is not allowed in tag scoring functions." + "name": "DaLucene", + "value": "da.lucene", + "description": "Lucene analyzer for Danish." }, { - "value": "logarithmic", - "name": "Logarithmic", - "description": "Boosts scores by an amount that decreases logarithmically. Boosts decrease quickly for higher scores, and more slowly as the scores decrease. This interpolation option is not allowed in tag scoring functions." - } - ] - }, - "description": "Defines the function used to interpolate score boosting across a range of documents." - }, - "ScoringProfile": { - "type": "object", - "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" + "name": "NlMicrosoft", + "value": "nl.microsoft", + "description": "Microsoft analyzer for Dutch." }, - "type": "string", - "description": "The name of the scoring profile." - }, - "text": { - "x-ms-client-name": "TextWeights", - "$ref": "#/definitions/TextWeights", - "description": "Parameters that boost scoring based on text matches in certain index fields.", - "x-nullable": true - }, - "functions": { - "type": "array", - "items": { - "$ref": "#/definitions/ScoringFunction" + { + "name": "NlLucene", + "value": "nl.lucene", + "description": "Lucene analyzer for Dutch." }, - "description": "The collection of functions that influence the scoring of documents." - }, - "functionAggregation": { - "$ref": "#/definitions/ScoringFunctionAggregation", - "description": "A value indicating how the results of individual scoring functions should be combined. Defaults to \"Sum\". Ignored if there are no scoring functions." - } - }, - "required": [ - "name" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Add-scoring-profiles-to-a-search-index" - }, - "description": "Defines parameters for a search index that influence scoring in search queries." - }, - "ScoringFunctionAggregation": { - "type": "string", - "enum": [ - "sum", - "average", - "minimum", - "maximum", - "firstMatching", - "product" - ], - "x-ms-enum": { - "name": "ScoringFunctionAggregation", - "modelAsString": false, - "values": [ { - "value": "sum", - "name": "Sum", - "description": "Boost scores by the sum of all scoring function results." + "name": "EnMicrosoft", + "value": "en.microsoft", + "description": "Microsoft analyzer for English." }, { - "value": "average", - "name": "Average", - "description": "Boost scores by the average of all scoring function results." + "name": "EnLucene", + "value": "en.lucene", + "description": "Lucene analyzer for English." }, { - "value": "minimum", - "name": "Minimum", - "description": "Boost scores by the minimum of all scoring function results." + "name": "EtMicrosoft", + "value": "et.microsoft", + "description": "Microsoft analyzer for Estonian." }, { - "value": "maximum", - "name": "Maximum", - "description": "Boost scores by the maximum of all scoring function results." + "name": "FiMicrosoft", + "value": "fi.microsoft", + "description": "Microsoft analyzer for Finnish." }, { - "value": "firstMatching", - "name": "FirstMatching", - "description": "Boost scores using the first applicable scoring function in the scoring profile." + "name": "FiLucene", + "value": "fi.lucene", + "description": "Lucene analyzer for Finnish." }, { - "value": "product", - "name": "Product", - "description": "Boost scores by the product of all scoring function results." - } - ] - }, - "description": "Defines the aggregation function used to combine the results of all the scoring functions in a scoring profile." - }, - "CorsOptions": { - "type": "object", - "properties": { - "allowedOrigins": { - "type": "array", - "items": { - "type": "string" + "name": "FrMicrosoft", + "value": "fr.microsoft", + "description": "Microsoft analyzer for French." }, - "description": "The list of origins from which JavaScript code will be granted access to your index. Can contain a list of hosts of the form {protocol}://{fully-qualified-domain-name}[:{port#}], or a single '*' to allow all origins (not recommended)." - }, - "maxAgeInSeconds": { - "type": "integer", - "format": "int64", - "description": "The duration for which browsers should cache CORS preflight responses. Defaults to 5 minutes.", - "x-nullable": true - } - }, - "required": [ - "allowedOrigins" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Index" - }, - "description": "Defines options to control Cross-Origin Resource Sharing (CORS) for an index." - }, - "Suggester": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the suggester." - }, - "searchMode": { - "type": "string", - "enum": [ - "analyzingInfixMatching" - ], - "x-ms-enum": { - "name": "SuggesterSearchMode", - "modelAsString": false, - "values": [ - { - "value": "analyzingInfixMatching", - "name": "AnalyzingInfixMatching", - "description": "Matches consecutive whole terms and prefixes in a field. For example, for the field 'The fastest brown fox', the queries 'fast' and 'fastest brow' would both match." - } - ] + { + "name": "FrLucene", + "value": "fr.lucene", + "description": "Lucene analyzer for French." }, - "description": "A value indicating the capabilities of the suggester." - }, - "sourceFields": { - "type": "array", - "items": { - "type": "string" + { + "name": "GlLucene", + "value": "gl.lucene", + "description": "Lucene analyzer for Galician." }, - "description": "The list of field names to which the suggester applies. Each field must be searchable." - } - }, - "required": [ - "name", - "searchMode", - "sourceFields" - ], - "description": "Defines how the Suggest API should apply to a group of fields in the index." - }, - "SearchIndex": { - "type": "object", - "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" + { + "name": "DeMicrosoft", + "value": "de.microsoft", + "description": "Microsoft analyzer for German." }, - "type": "string", - "description": "The name of the index." - }, - "description": { - "type": "string", - "description": "The description of the index." - }, - "fields": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchField" + { + "name": "DeLucene", + "value": "de.lucene", + "description": "Lucene analyzer for German." }, - "description": "The fields of the index." - }, - "scoringProfiles": { - "type": "array", - "items": { - "$ref": "#/definitions/ScoringProfile" + { + "name": "ElMicrosoft", + "value": "el.microsoft", + "description": "Microsoft analyzer for Greek." }, - "description": "The scoring profiles for the index." - }, - "defaultScoringProfile": { - "type": "string", - "description": "The name of the scoring profile to use if none is specified in the query. If this property is not set and no scoring profile is specified in the query, then default scoring (tf-idf) will be used." - }, - "corsOptions": { - "$ref": "#/definitions/CorsOptions", - "description": "Options to control Cross-Origin Resource Sharing (CORS) for the index.", - "x-nullable": true - }, - "suggesters": { - "type": "array", - "items": { - "$ref": "#/definitions/Suggester" + { + "name": "ElLucene", + "value": "el.lucene", + "description": "Lucene analyzer for Greek." }, - "description": "The suggesters for the index." - }, - "analyzers": { - "type": "array", - "items": { - "$ref": "#/definitions/LexicalAnalyzer" + { + "name": "GuMicrosoft", + "value": "gu.microsoft", + "description": "Microsoft analyzer for Gujarati." }, - "description": "The analyzers for the index.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } - }, - "tokenizers": { - "type": "array", - "items": { - "$ref": "#/definitions/LexicalTokenizer" + { + "name": "HeMicrosoft", + "value": "he.microsoft", + "description": "Microsoft analyzer for Hebrew." }, - "description": "The tokenizers for the index.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } - }, - "tokenFilters": { - "type": "array", - "items": { - "$ref": "#/definitions/TokenFilter" + { + "name": "HiMicrosoft", + "value": "hi.microsoft", + "description": "Microsoft analyzer for Hindi." }, - "description": "The token filters for the index.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } - }, - "charFilters": { - "type": "array", - "items": { - "$ref": "#/definitions/CharFilter" + { + "name": "HiLucene", + "value": "hi.lucene", + "description": "Lucene analyzer for Hindi." }, - "description": "The character filters for the index.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search" - } - }, - "normalizers": { - "type": "array", - "items": { - "$ref": "#/definitions/LexicalNormalizer" + { + "name": "HuMicrosoft", + "value": "hu.microsoft", + "description": "Microsoft analyzer for Hungarian." }, - "description": "The normalizers for the index.", - "externalDocs": { - "url": "https://aka.ms/azs-custom-normalizers" - } - }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data. Once you have encrypted your data, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" + { + "name": "HuLucene", + "value": "hu.lucene", + "description": "Lucene analyzer for Hungarian." }, - "x-nullable": true - }, - "similarity": { - "$ref": "#/definitions/Similarity", - "description": "The type of similarity algorithm to be used when scoring and ranking the documents matching a search query. The similarity algorithm can only be defined at index creation time and cannot be modified on existing indexes. If null, the ClassicSimilarity algorithm is used.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/index-ranking-similarity" - } - }, - "semantic": { - "$ref": "#/definitions/SemanticSettings", - "description": "Defines parameters for a search index that influence semantic capabilities.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/semantic-search-overview" + { + "name": "IsMicrosoft", + "value": "is.microsoft", + "description": "Microsoft analyzer for Icelandic." }, - "x-ms-client-name": "SemanticSearch", - "x-nullable": true - }, - "vectorSearch": { - "$ref": "#/definitions/VectorSearch", - "description": "Contains configuration options related to vector search.", - "x-ms-client-name": "VectorSearch", - "x-nullable": true - }, - "permissionFilterOption": { - "type": "string", - "enum": [ - "enabled", - "disabled" - ], - "description": "A value indicating whether permission filtering is enabled for the index.", - "x-nullable": true, - "x-ms-enum": { - "name": "SearchIndexPermissionFilterOption", - "modelAsString": true - } - }, - "purviewEnabled": { - "type": "boolean", - "description": "A value indicating whether the index is leveraging Purview-specific features. This property defaults to false and cannot be changed after index creation.", - "x-nullable": true - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the index." - } - }, - "required": [ - "name", - "fields" - ], - "description": "Represents a search index definition, which describes the fields and search behavior of an index." - }, - "SearchAlias": { - "type": "object", - "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" + { + "name": "IdMicrosoft", + "value": "id.microsoft", + "description": "Microsoft analyzer for Indonesian (Bahasa)." }, - "type": "string", - "description": "The name of the alias." - }, - "indexes": { - "type": "array", - "items": { - "type": "string" + { + "name": "IdLucene", + "value": "id.lucene", + "description": "Lucene analyzer for Indonesian." }, - "description": "The name of the index this alias maps to. Only one index name may be specified." - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the alias." - } - }, - "required": [ - "name", - "indexes" - ], - "description": "Represents an index alias, which describes a mapping from the alias name to an index. The alias name can be used in place of the index name for supported operations." - }, - "GetIndexStatisticsResult": { - "type": "object", - "properties": { - "documentCount": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "readOnly": true, - "description": "The number of documents in the index." - }, - "storageSize": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "readOnly": true, - "description": "The amount of storage in bytes consumed by the index." - }, - "vectorIndexSize": { - "type": "integer", - "format": "int64", - "readOnly": true, - "description": "The amount of memory in bytes consumed by vectors in the index." - } - }, - "required": [ - "documentCount", - "storageSize", - "vectorIndexSize" - ], - "description": "Statistics for a given index. Statistics are collected periodically and are not guaranteed to always be up-to-date." - }, - "ListIndexStatsSummary": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "IndexesStatistics", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/IndexStatisticsSummary" + { + "name": "GaLucene", + "value": "ga.lucene", + "description": "Lucene analyzer for Irish." }, - "description": "The Statistics summary of all indexes in the Search service." - } - }, - "required": [ - "value" - ], - "description": "Response from a request to retrieve stats summary of all indexes. If successful, it includes the stats of each index in the service." - }, - "IndexStatisticsSummary": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the index." - }, - "documentCount": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "readOnly": true, - "description": "The number of documents in the index." - }, - "storageSize": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "readOnly": true, - "description": "The amount of storage in bytes consumed by the index." - }, - "vectorIndexSize": { - "type": "integer", - "format": "int64", - "readOnly": true, - "description": "The amount of memory in bytes consumed by vectors in the index." - } - }, - "required": [ - "name", - "documentCount", - "storageSize", - "vectorIndexSize" - ], - "description": "Statistics for a given index. Statistics are collected periodically and are not guaranteed to always be up-to-date." - }, - "ListIndexesResult": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "Indexes", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchIndex" + { + "name": "ItMicrosoft", + "value": "it.microsoft", + "description": "Microsoft analyzer for Italian." }, - "description": "The indexes in the Search service." - } - }, - "required": [ - "value" - ], - "description": "Response from a List Indexes request. If successful, it includes the full definitions of all indexes." - }, - "ListAliasesResult": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "Aliases", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchAlias" + { + "name": "ItLucene", + "value": "it.lucene", + "description": "Lucene analyzer for Italian." }, - "description": "The aliases in the Search service." - } - }, - "required": [ - "value" - ], - "description": "Response from a List Aliases request. If successful, it includes the associated index mappings for all aliases." - }, - "SearchIndexerSkillset": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the skillset." - }, - "description": { - "type": "string", - "description": "The description of the skillset." - }, - "skills": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexerSkill" + { + "name": "JaMicrosoft", + "value": "ja.microsoft", + "description": "Microsoft analyzer for Japanese." }, - "description": "A list of skills in the skillset." - }, - "cognitiveServices": { - "x-ms-client-name": "CognitiveServicesAccount", - "$ref": "#/definitions/CognitiveServicesAccount", - "description": "Details about the Azure AI service to be used when running skills." - }, - "knowledgeStore": { - "$ref": "#/definitions/SearchIndexerKnowledgeStore", - "description": "Definition of additional projections to Azure blob, table, or files, of enriched data." - }, - "indexProjections": { - "$ref": "#/definitions/SearchIndexerIndexProjections", - "description": "Definition of additional projections to secondary search index(es)." - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the skillset." - }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your skillset definition when you want full assurance that no one, not even Microsoft, can decrypt your skillset definition. Once you have encrypted your skillset definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your skillset definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" + { + "name": "JaLucene", + "value": "ja.lucene", + "description": "Lucene analyzer for Japanese." }, - "x-nullable": true - } - }, - "required": [ - "name", - "skills" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-tutorial-blob" - }, - "description": "A list of skills." - }, - "CognitiveServicesAccount": { - "type": "object", - "discriminator": "@odata.type", - "properties": { - "@odata.type": { - "type": "string", - "description": "A URI fragment specifying the type of Azure AI service resource attached to a skillset." - }, - "description": { - "type": "string", - "description": "Description of the Azure AI service resource attached to a skillset." - } - }, - "required": [ - "@odata.type" - ], - "description": "Base type for describing any Azure AI service resource attached to a skillset." - }, - "SearchIndexerKnowledgeStore": { - "type": "object", - "properties": { - "storageConnectionString": { - "type": "string", - "description": "The connection string to the storage account projections will be stored in." - }, - "projections": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreProjection", - "x-nullable": false + { + "name": "KnMicrosoft", + "value": "kn.microsoft", + "description": "Microsoft analyzer for Kannada." }, - "description": "A list of additional projections to perform during indexing." - }, - "identity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for connections to Azure Storage when writing knowledge store projections. If the connection string indicates an identity (ResourceId) and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared." - }, - "parameters": { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreParameters" - } - }, - "required": [ - "storageConnectionString", - "projections" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/knowledge-store-projection-overview" - }, - "description": "Definition of additional projections to azure blob, table, or files, of enriched data." - }, - "SearchIndexerKnowledgeStoreProjection": { - "type": "object", - "properties": { - "tables": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreTableProjectionSelector", - "x-nullable": false + { + "name": "KoMicrosoft", + "value": "ko.microsoft", + "description": "Microsoft analyzer for Korean." }, - "description": "Projections to Azure Table storage." - }, - "objects": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreObjectProjectionSelector", - "x-nullable": false + { + "name": "KoLucene", + "value": "ko.lucene", + "description": "Lucene analyzer for Korean." }, - "description": "Projections to Azure Blob storage." - }, - "files": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreFileProjectionSelector", - "x-nullable": false + { + "name": "LvMicrosoft", + "value": "lv.microsoft", + "description": "Microsoft analyzer for Latvian." }, - "description": "Projections to Azure File storage." - } - }, - "description": "Container object for various projection selectors." - }, - "SearchIndexerKnowledgeStoreProjectionSelector": { - "type": "object", - "properties": { - "referenceKeyName": { - "type": "string", - "description": "Name of reference key to different projection." - }, - "generatedKeyName": { - "type": "string", - "description": "Name of generated key to store projection under." - }, - "source": { - "type": "string", - "description": "Source data to project." - }, - "sourceContext": { - "type": "string", - "description": "Source context for complex projections." - }, - "inputs": { - "type": "array", - "items": { - "$ref": "#/definitions/InputFieldMappingEntry" + { + "name": "LvLucene", + "value": "lv.lucene", + "description": "Lucene analyzer for Latvian." }, - "description": "Nested inputs for complex projections." - } - }, - "description": "Abstract class to share properties between concrete selectors." - }, - "SearchIndexerKnowledgeStoreBlobProjectionSelector": { - "type": "object", - "properties": { - "storageContainer": { - "type": "string", - "description": "Blob container to store projections in." - } - }, - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreProjectionSelector" - } - ], - "required": [ - "storageContainer" - ], - "description": "Abstract class to share properties between concrete selectors." - }, - "SearchIndexerKnowledgeStoreTableProjectionSelector": { - "type": "object", - "properties": { - "tableName": { - "type": "string", - "description": "Name of the Azure table to store projected data in." - } - }, - "required": [ - "generatedKeyName", - "tableName" - ], - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreProjectionSelector" - } - ], - "description": "Description for what data to store in Azure Tables." - }, - "SearchIndexerKnowledgeStoreObjectProjectionSelector": { - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreBlobProjectionSelector" - } - ], - "description": "Projection definition for what data to store in Azure Blob." - }, - "SearchIndexerKnowledgeStoreFileProjectionSelector": { - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerKnowledgeStoreBlobProjectionSelector" - } - ], - "description": "Projection definition for what data to store in Azure Files." - }, - "SearchIndexerKnowledgeStoreParameters": { - "type": "object", - "properties": { - "synthesizeGeneratedKeyName": { - "type": "boolean", - "default": false, - "description": "Whether or not projections should synthesize a generated key name if one isn't already present." - } - }, - "additionalProperties": true, - "description": "A dictionary of knowledge store-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type." - }, - "SearchIndexerIndexProjections": { - "type": "object", - "properties": { - "selectors": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchIndexerIndexProjectionSelector" + { + "name": "LtMicrosoft", + "value": "lt.microsoft", + "description": "Microsoft analyzer for Lithuanian." }, - "description": "A list of projections to be performed to secondary search indexes." - }, - "parameters": { - "$ref": "#/definitions/SearchIndexerIndexProjectionsParameters" - } - }, - "required": [ - "selectors" - ], - "description": "Definition of additional projections to secondary search indexes." + { + "name": "MlMicrosoft", + "value": "ml.microsoft", + "description": "Microsoft analyzer for Malayalam." + }, + { + "name": "MsMicrosoft", + "value": "ms.microsoft", + "description": "Microsoft analyzer for Malay (Latin)." + }, + { + "name": "MrMicrosoft", + "value": "mr.microsoft", + "description": "Microsoft analyzer for Marathi." + }, + { + "name": "NbMicrosoft", + "value": "nb.microsoft", + "description": "Microsoft analyzer for Norwegian (BokmÃ¥l)." + }, + { + "name": "NoLucene", + "value": "no.lucene", + "description": "Lucene analyzer for Norwegian." + }, + { + "name": "FaLucene", + "value": "fa.lucene", + "description": "Lucene analyzer for Persian." + }, + { + "name": "PlMicrosoft", + "value": "pl.microsoft", + "description": "Microsoft analyzer for Polish." + }, + { + "name": "PlLucene", + "value": "pl.lucene", + "description": "Lucene analyzer for Polish." + }, + { + "name": "PtBrMicrosoft", + "value": "pt-BR.microsoft", + "description": "Microsoft analyzer for Portuguese (Brazil)." + }, + { + "name": "PtBrLucene", + "value": "pt-BR.lucene", + "description": "Lucene analyzer for Portuguese (Brazil)." + }, + { + "name": "PtPtMicrosoft", + "value": "pt-PT.microsoft", + "description": "Microsoft analyzer for Portuguese (Portugal)." + }, + { + "name": "PtPtLucene", + "value": "pt-PT.lucene", + "description": "Lucene analyzer for Portuguese (Portugal)." + }, + { + "name": "PaMicrosoft", + "value": "pa.microsoft", + "description": "Microsoft analyzer for Punjabi." + }, + { + "name": "RoMicrosoft", + "value": "ro.microsoft", + "description": "Microsoft analyzer for Romanian." + }, + { + "name": "RoLucene", + "value": "ro.lucene", + "description": "Lucene analyzer for Romanian." + }, + { + "name": "RuMicrosoft", + "value": "ru.microsoft", + "description": "Microsoft analyzer for Russian." + }, + { + "name": "RuLucene", + "value": "ru.lucene", + "description": "Lucene analyzer for Russian." + }, + { + "name": "SrCyrillicMicrosoft", + "value": "sr-cyrillic.microsoft", + "description": "Microsoft analyzer for Serbian (Cyrillic)." + }, + { + "name": "SrLatinMicrosoft", + "value": "sr-latin.microsoft", + "description": "Microsoft analyzer for Serbian (Latin)." + }, + { + "name": "SkMicrosoft", + "value": "sk.microsoft", + "description": "Microsoft analyzer for Slovak." + }, + { + "name": "SlMicrosoft", + "value": "sl.microsoft", + "description": "Microsoft analyzer for Slovenian." + }, + { + "name": "EsMicrosoft", + "value": "es.microsoft", + "description": "Microsoft analyzer for Spanish." + }, + { + "name": "EsLucene", + "value": "es.lucene", + "description": "Lucene analyzer for Spanish." + }, + { + "name": "SvMicrosoft", + "value": "sv.microsoft", + "description": "Microsoft analyzer for Swedish." + }, + { + "name": "SvLucene", + "value": "sv.lucene", + "description": "Lucene analyzer for Swedish." + }, + { + "name": "TaMicrosoft", + "value": "ta.microsoft", + "description": "Microsoft analyzer for Tamil." + }, + { + "name": "TeMicrosoft", + "value": "te.microsoft", + "description": "Microsoft analyzer for Telugu." + }, + { + "name": "ThMicrosoft", + "value": "th.microsoft", + "description": "Microsoft analyzer for Thai." + }, + { + "name": "ThLucene", + "value": "th.lucene", + "description": "Lucene analyzer for Thai." + }, + { + "name": "TrMicrosoft", + "value": "tr.microsoft", + "description": "Microsoft analyzer for Turkish." + }, + { + "name": "TrLucene", + "value": "tr.lucene", + "description": "Lucene analyzer for Turkish." + }, + { + "name": "UkMicrosoft", + "value": "uk.microsoft", + "description": "Microsoft analyzer for Ukrainian." + }, + { + "name": "UrMicrosoft", + "value": "ur.microsoft", + "description": "Microsoft analyzer for Urdu." + }, + { + "name": "ViMicrosoft", + "value": "vi.microsoft", + "description": "Microsoft analyzer for Vietnamese." + }, + { + "name": "StandardLucene", + "value": "standard.lucene", + "description": "Standard Lucene analyzer." + }, + { + "name": "StandardAsciiFoldingLucene", + "value": "standardasciifolding.lucene", + "description": "Standard ASCII Folding Lucene analyzer. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#Analyzers" + }, + { + "name": "Keyword", + "value": "keyword", + "description": "Treats the entire content of a field as a single token. This is useful for data like zip codes, ids, and some product names. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordAnalyzer.html" + }, + { + "name": "Pattern", + "value": "pattern", + "description": "Flexibly separates text into terms via a regular expression pattern. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/PatternAnalyzer.html" + }, + { + "name": "Simple", + "value": "simple", + "description": "Divides text at non-letters and converts them to lower case. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/SimpleAnalyzer.html" + }, + { + "name": "Stop", + "value": "stop", + "description": "Divides text at non-letters; Applies the lowercase and stopword token filters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopAnalyzer.html" + }, + { + "name": "Whitespace", + "value": "whitespace", + "description": "An analyzer that uses the whitespace tokenizer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/WhitespaceAnalyzer.html" + } + ] + } }, - "SearchIndexerIndexProjectionSelector": { + "LexicalNormalizer": { "type": "object", + "description": "Base type for normalizers.", "properties": { - "targetIndexName": { - "type": "string", - "description": "Name of the search index to project to. Must have a key field with the 'keyword' analyzer set." - }, - "parentKeyFieldName": { + "@odata.type": { "type": "string", - "description": "Name of the field in the search index to map the parent document's key value to. Must be a string field that is filterable and not the key field." + "description": "The discriminator for derived types." }, - "sourceContext": { + "name": { "type": "string", - "description": "Source context for the projections. Represents the cardinality at which the document will be split into multiple sub documents." - }, - "mappings": { - "type": "array", - "items": { - "$ref": "#/definitions/InputFieldMappingEntry" - }, - "description": "Mappings for the projection, or which source should be mapped to which field in the target index." + "description": "The name of the char filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." } }, + "discriminator": "@odata.type", "required": [ - "targetIndexName", - "parentKeyFieldName", - "sourceContext", - "mappings" - ], - "description": "Description for what data to store in the designated search index." + "@odata.type", + "name" + ] }, - "SearchIndexerIndexProjectionsParameters": { + "LexicalNormalizerName": { + "type": "string", + "description": "Defines the names of all text normalizers supported by the search engine.", + "enum": [ + "asciifolding", + "elision", + "lowercase", + "standard", + "uppercase" + ], + "x-ms-enum": { + "name": "LexicalNormalizerName", + "modelAsString": true, + "values": [ + { + "name": "AsciiFolding", + "value": "asciifolding", + "description": "Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html" + }, + { + "name": "Elision", + "value": "elision", + "description": "Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html" + }, + { + "name": "Lowercase", + "value": "lowercase", + "description": "Normalizes token text to lowercase. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/LowerCaseFilter.html" + }, + { + "name": "Standard", + "value": "standard", + "description": "Standard normalizer, which consists of lowercase and asciifolding. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/reverse/ReverseStringFilter.html" + }, + { + "name": "Uppercase", + "value": "uppercase", + "description": "Normalizes token text to uppercase. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/UpperCaseFilter.html" + } + ] + } + }, + "LexicalTokenizer": { "type": "object", + "description": "Base type for tokenizers.", "properties": { - "projectionMode": { - "$ref": "#/definitions/IndexProjectionMode", - "description": "Defines behavior of the index projections in relation to the rest of the indexer." + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + }, + "name": { + "type": "string", + "description": "The name of the tokenizer. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." } }, - "additionalProperties": true, - "description": "A dictionary of index projection-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type." + "discriminator": "@odata.type", + "required": [ + "@odata.type", + "name" + ] }, - "IndexProjectionMode": { + "LexicalTokenizerName": { "type": "string", + "description": "Defines the names of all tokenizers supported by the search engine.", "enum": [ - "skipIndexingParentDocuments", - "includeIndexingParentDocuments" + "classic", + "edgeNGram", + "keyword_v2", + "letter", + "lowercase", + "microsoft_language_tokenizer", + "microsoft_language_stemming_tokenizer", + "nGram", + "path_hierarchy_v2", + "pattern", + "standard_v2", + "uax_url_email", + "whitespace" ], "x-ms-enum": { - "name": "IndexProjectionMode", + "name": "LexicalTokenizerName", "modelAsString": true, "values": [ { - "value": "skipIndexingParentDocuments", - "name": "SkipIndexingParentDocuments", - "description": "The source document will be skipped from writing into the indexer's target index." + "name": "Classic", + "value": "classic", + "description": "Grammar-based tokenizer that is suitable for processing most European-language documents. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicTokenizer.html" }, { - "value": "includeIndexingParentDocuments", - "name": "IncludeIndexingParentDocuments", - "description": "The source document will be written into the indexer's target index. This is the default pattern." + "name": "EdgeNGram", + "value": "edgeNGram", + "description": "Tokenizes the input from an edge into n-grams of the given size(s). See https://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenizer.html" + }, + { + "name": "Keyword", + "value": "keyword_v2", + "description": "Emits the entire input as a single token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/KeywordTokenizer.html" + }, + { + "name": "Letter", + "value": "letter", + "description": "Divides text at non-letters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/LetterTokenizer.html" + }, + { + "name": "Lowercase", + "value": "lowercase", + "description": "Divides text at non-letters and converts them to lower case. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/LowerCaseTokenizer.html" + }, + { + "name": "MicrosoftLanguageTokenizer", + "value": "microsoft_language_tokenizer", + "description": "Divides text using language-specific rules." + }, + { + "name": "MicrosoftLanguageStemmingTokenizer", + "value": "microsoft_language_stemming_tokenizer", + "description": "Divides text using language-specific rules and reduces words to their base forms." + }, + { + "name": "NGram", + "value": "nGram", + "description": "Tokenizes the input into n-grams of the given size(s). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenizer.html" + }, + { + "name": "PathHierarchy", + "value": "path_hierarchy_v2", + "description": "Tokenizer for path-like hierarchies. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/path/PathHierarchyTokenizer.html" + }, + { + "name": "Pattern", + "value": "pattern", + "description": "Tokenizer that uses regex pattern matching to construct distinct tokens. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/pattern/PatternTokenizer.html" + }, + { + "name": "Standard", + "value": "standard_v2", + "description": "Standard Lucene analyzer; Composed of the standard tokenizer, lowercase filter and stop filter. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/StandardTokenizer.html" + }, + { + "name": "UaxUrlEmail", + "value": "uax_url_email", + "description": "Tokenizes urls and emails as one token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/UAX29URLEmailTokenizer.html" + }, + { + "name": "Whitespace", + "value": "whitespace", + "description": "Divides text at whitespace. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/WhitespaceTokenizer.html" } ] - }, - "description": "Defines behavior of the index projections in relation to the rest of the indexer." + } }, - "DefaultCognitiveServicesAccount": { + "LimitTokenFilter": { "type": "object", - "description": "An empty object that represents the default Azure AI service resource for a skillset.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.DefaultCognitiveServices", - "allOf": [ - { - "$ref": "#/definitions/CognitiveServicesAccount" + "description": "Limits the number of tokens while indexing. This token filter is implemented using Apache Lucene.", + "properties": { + "maxTokenCount": { + "type": "integer", + "format": "int32", + "description": "The maximum number of tokens to produce. Default is 1.", + "default": 1 + }, + "consumeAllTokens": { + "type": "boolean", + "description": "A value indicating whether all tokens from the input must be consumed even if maxTokenCount is reached. Default is false.", + "default": false } - ] - }, - "CognitiveServicesAccountKey": { - "type": "object", - "description": "The multi-region account key of an Azure AI service resource that's attached to a skillset.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.CognitiveServicesByKey", + }, "allOf": [ { - "$ref": "#/definitions/CognitiveServicesAccount" + "$ref": "#/definitions/TokenFilter" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.LimitTokenFilter" + }, + "ListAliasesResult": { + "type": "object", + "description": "Response from a List Aliases request. If successful, it includes the associated index mappings for all aliases.", "properties": { - "key": { - "type": "string", - "description": "The key used to provision the Azure AI service resource attached to a skillset." + "value": { + "type": "array", + "description": "The aliases in the Search service.", + "items": { + "$ref": "#/definitions/SearchAlias" + }, + "readOnly": true } }, "required": [ - "key" + "value" ] }, - "AIServicesAccountKey": { + "ListDataSourcesResult": { "type": "object", - "description": "The account key of an Azure AI service resource that's attached to a skillset, to be used with the resource's subdomain.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.AIServicesByKey", - "allOf": [ - { - "$ref": "#/definitions/CognitiveServicesAccount" - } - ], + "description": "Response from a List Datasources request. If successful, it includes the full definitions of all datasources.", "properties": { - "key": { - "type": "string", - "description": "The key used to provision the Azure AI service resource attached to a skillset." - }, - "subdomainUrl": { - "type": "string", - "description": "The subdomain url for the corresponding AI Service." + "value": { + "type": "array", + "description": "The datasources in the Search service.", + "items": { + "$ref": "#/definitions/SearchIndexerDataSource" + }, + "readOnly": true } }, "required": [ - "key", - "subdomainUrl" + "value" ] }, - "AIServicesAccountIdentity": { + "ListIndexStatsSummary": { "type": "object", - "description": "The multi-region account of an Azure AI service resource that's attached to a skillset.", - "x-ms-discriminator-value": "#Microsoft.Azure.Search.AIServicesByIdentity", - "allOf": [ - { - "$ref": "#/definitions/CognitiveServicesAccount" - } - ], + "description": "Response from a request to retrieve stats summary of all indexes. If successful, it includes the stats of each index in the service.", "properties": { - "identity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for connections to AI Service. If not specified, the system-assigned managed identity is used. On updates to the skillset, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared." - }, - "subdomainUrl": { - "type": "string", - "description": "The subdomain url for the corresponding AI Service." + "value": { + "type": "array", + "description": "The Statistics summary of all indexes in the Search service.", + "items": { + "$ref": "#/definitions/IndexStatisticsSummary" + }, + "readOnly": true } }, "required": [ - "subdomainUrl" + "value" ] }, - "SearchIndexerSkill": { + "ListIndexersResult": { "type": "object", - "discriminator": "@odata.type", + "description": "Response from a List Indexers request. If successful, it includes the full definitions of all indexers.", "properties": { - "@odata.type": { - "type": "string", - "description": "A URI fragment specifying the type of skill." - }, - "name": { - "type": "string", - "description": "The name of the skill which uniquely identifies it within the skillset. A skill with no name defined will be given a default name of its 1-based index in the skills array, prefixed with the character '#'." - }, - "description": { - "type": "string", - "description": "The description of the skill which describes the inputs, outputs, and usage of the skill." - }, - "context": { - "type": "string", - "description": "Represents the level at which operations take place, such as the document root or document content (for example, /document or /document/content). The default is /document." - }, - "inputs": { + "value": { "type": "array", + "description": "The indexers in the Search service.", "items": { - "$ref": "#/definitions/InputFieldMappingEntry" + "$ref": "#/definitions/SearchIndexer" }, - "description": "Inputs of the skills could be a column in the source data set, or the output of an upstream skill." - }, - "outputs": { + "readOnly": true + } + }, + "required": [ + "value" + ] + }, + "ListIndexesResult": { + "type": "object", + "description": "Response from a List Indexes request. If successful, it includes the full definitions of all indexes.", + "properties": { + "value": { "type": "array", + "description": "The indexes in the Search service.", "items": { - "$ref": "#/definitions/OutputFieldMappingEntry" + "$ref": "#/definitions/SearchIndex" }, - "description": "The output of a skill is either a field in a search index, or a value that can be consumed as an input by another skill." + "readOnly": true } }, "required": [ - "@odata.type", - "inputs", - "outputs" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-predefined-skills" - }, - "description": "Base type for skills." + "value" + ] }, - "CustomEntity": { + "ListKnowledgeBasesResult": { "type": "object", + "description": "Result from listing knowledge bases.", "properties": { - "name": { - "type": "string", - "description": "The top-level entity descriptor. Matches in the skill output will be grouped by this name, and it should represent the \"normalized\" form of the text being found." - }, - "description": { - "type": "string", - "x-nullable": true, - "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output." - }, - "type": { - "type": "string", - "x-nullable": true, - "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output." - }, - "subtype": { - "type": "string", - "x-nullable": true, - "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output." - }, - "id": { - "type": "string", - "x-nullable": true, - "description": "This field can be used as a passthrough for custom metadata about the matched text(s). The value of this field will appear with every match of its entity in the skill output." - }, - "caseSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "Defaults to false. Boolean value denoting whether comparisons with the entity name should be sensitive to character casing. Sample case insensitive matches of \"Microsoft\" could be: microsoft, microSoft, MICROSOFT." - }, - "accentSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "Defaults to false. Boolean value denoting whether comparisons with the entity name should be sensitive to accent." - }, - "fuzzyEditDistance": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Defaults to 0. Maximum value of 5. Denotes the acceptable number of divergent characters that would still constitute a match with the entity name. The smallest possible fuzziness for any given match is returned. For instance, if the edit distance is set to 3, \"Windows10\" would still match \"Windows\", \"Windows10\" and \"Windows 7\". When case sensitivity is set to false, case differences do NOT count towards fuzziness tolerance, but otherwise do." - }, - "defaultCaseSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "Changes the default case sensitivity value for this entity. It be used to change the default value of all aliases caseSensitive values." - }, - "defaultAccentSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "Changes the default accent sensitivity value for this entity. It be used to change the default value of all aliases accentSensitive values." - }, - "defaultFuzzyEditDistance": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Changes the default fuzzy edit distance value for this entity. It can be used to change the default value of all aliases fuzzyEditDistance values." - }, - "aliases": { + "value": { "type": "array", + "description": "The knowledge bases in the service.", "items": { - "$ref": "#/definitions/CustomEntityAlias" - }, - "x-nullable": true, - "description": "An array of complex objects that can be used to specify alternative spellings or synonyms to the root entity name." + "$ref": "#/definitions/KnowledgeBase" + } } }, "required": [ - "name" - ], - "description": "An object that contains information about the matches that were found, and related metadata." + "value" + ] }, - "CustomEntityAlias": { + "ListKnowledgeSourcesResult": { "type": "object", + "description": "Result from listing knowledge sources.", "properties": { - "text": { - "type": "string", - "description": "The text of the alias." - }, - "caseSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "Determine if the alias is case sensitive." - }, - "accentSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "Determine if the alias is accent sensitive." - }, - "fuzzyEditDistance": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Determine the fuzzy edit distance of the alias." + "value": { + "type": "array", + "description": "The knowledge sources in the service.", + "items": { + "$ref": "#/definitions/KnowledgeSource" + } } }, "required": [ - "text" - ], - "description": "A complex object that can be used to specify alternative spellings or synonyms to the root entity name." + "value" + ] }, - "InputFieldMappingEntry": { + "ListSkillsetsResult": { "type": "object", + "description": "Response from a list skillset request. If successful, it includes the full definitions of all skillsets.", "properties": { - "name": { - "type": "string", - "description": "The name of the input." - }, - "source": { - "type": "string", - "description": "The source of the input." - }, - "sourceContext": { - "type": "string", - "description": "The source context used for selecting recursive inputs." - }, - "inputs": { + "value": { "type": "array", + "description": "The skillsets defined in the Search service.", "items": { - "$ref": "#/definitions/InputFieldMappingEntry" + "$ref": "#/definitions/SearchIndexerSkillset" }, - "description": "The recursive inputs used when creating a complex type." + "readOnly": true } }, "required": [ - "name" - ], - "description": "Input field mapping for a skill." + "value" + ] }, - "OutputFieldMappingEntry": { + "ListSynonymMapsResult": { "type": "object", + "description": "Response from a List SynonymMaps request. If successful, it includes the full definitions of all synonym maps.", "properties": { - "name": { - "type": "string", - "description": "The name of the output defined by the skill." - }, - "targetName": { - "type": "string", - "description": "The target name of the output. It is optional and default to name." + "value": { + "type": "array", + "description": "The synonym maps in the Search service.", + "items": { + "$ref": "#/definitions/SynonymMap" + }, + "readOnly": true } }, "required": [ - "name" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, - "description": "Output field mapping for a skill." + "value" + ] }, - "ConditionalSkill": { + "LookupDocument": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Util.ConditionalSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-conditional" - }, - "description": "A skill that enables scenarios that require a Boolean operation to determine the data to assign to an output." + "description": "A document retrieved via a document lookup operation.", + "additionalProperties": {} }, - "KeyPhraseExtractionSkill": { + "LuceneStandardAnalyzer": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill", + "description": "Standard Apache Lucene analyzer; Composed of the standard tokenizer, lowercase filter and stop filter.", + "properties": { + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.", + "default": 255, + "maximum": 300 + }, + "stopwords": { + "type": "array", + "description": "A list of stopwords.", + "items": { + "type": "string" + } + } + }, "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/LexicalAnalyzer" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StandardAnalyzer" + }, + "LuceneStandardTokenizer": { + "type": "object", + "description": "Breaks text following the Unicode Text Segmentation rules. This tokenizer is implemented using Apache Lucene.", "properties": { - "defaultLanguageCode": { - "$ref": "#/definitions/KeyPhraseExtractionSkillLanguage", - "description": "A value indicating which language code to use. Default is `en`." - }, - "maxKeyPhraseCount": { + "maxTokenLength": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "A number indicating how many key phrases to return. If absent, all identified key phrases will be returned." - }, - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary." + "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split.", + "default": 255 } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-keyphrases" - }, - "description": "A skill that uses text analytics for key phrase extraction." - }, - "OcrSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Vision.OcrSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/LexicalTokenizer" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StandardTokenizer" + }, + "LuceneStandardTokenizerV2": { + "type": "object", + "description": "Breaks text following the Unicode Text Segmentation rules. This tokenizer is implemented using Apache Lucene.", "properties": { - "defaultLanguageCode": { - "$ref": "#/definitions/OcrSkillLanguage", - "description": "A value indicating which language code to use. Default is `en`." - }, - "detectOrientation": { - "x-ms-client-name": "ShouldDetectOrientation", - "type": "boolean", - "default": false, - "description": "A value indicating to turn orientation detection on or not. Default is false." - }, - "lineEnding": { - "$ref": "#/definitions/OcrSkillLineEnding", - "description": "Defines the sequence of characters to use between the lines of text recognized by the OCR skill. The default value is \"space\"." + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.", + "default": 255, + "maximum": 300 } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-ocr" - }, - "description": "A skill that extracts text from image files." - }, - "ImageAnalysisSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Vision.ImageAnalysisSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/LexicalTokenizer" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StandardTokenizerV2" + }, + "MagnitudeScoringFunction": { + "type": "object", + "description": "Defines a function that boosts scores based on the magnitude of a numeric field.", "properties": { - "defaultLanguageCode": { - "$ref": "#/definitions/ImageAnalysisSkillLanguage", - "description": "A value indicating which language code to use. Default is `en`." - }, - "visualFeatures": { - "type": "array", - "items": { - "$ref": "#/definitions/VisualFeature", - "x-nullable": false - }, - "description": "A list of visual features." - }, - "details": { - "type": "array", - "items": { - "$ref": "#/definitions/ImageDetail", - "x-nullable": false - }, - "description": "A string indicating which domain-specific details to return." + "magnitude": { + "$ref": "#/definitions/MagnitudeScoringParameters", + "description": "Parameter values for the magnitude scoring function." } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-image-analysis" - }, - "description": "A skill that analyzes image files. It extracts a rich set of visual features based on the image content." - }, - "LanguageDetectionSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.LanguageDetectionSkill", + "required": [ + "magnitude" + ], "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/ScoringFunction" } ], + "x-ms-discriminator-value": "magnitude" + }, + "MagnitudeScoringParameters": { + "type": "object", + "description": "Provides parameter values to a magnitude scoring function.", "properties": { - "defaultCountryHint": { - "type": "string", - "x-nullable": true, - "description": "A country code to use as a hint to the language detection model if it cannot disambiguate the language." + "boostingRangeStart": { + "type": "number", + "format": "double", + "description": "The field value at which boosting starts." }, - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary." + "boostingRangeEnd": { + "type": "number", + "format": "double", + "description": "The field value at which boosting ends." + }, + "constantBoostBeyondRange": { + "type": "boolean", + "description": "A value indicating whether to apply a constant boost for field values beyond the range end value; default is false." } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-language-detection" - }, - "description": "A skill that detects the language of input text and reports a single language code for every document submitted on the request. The language code is paired with a score indicating the confidence of the analysis." + "required": [ + "boostingRangeStart", + "boostingRangeEnd" + ] }, - "ShaperSkill": { + "MappingCharFilter": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Util.ShaperSkill", + "description": "A character filter that applies mappings defined with the mappings option. Matching is greedy (longest pattern matching at a given point wins). Replacement is allowed to be the empty string. This character filter is implemented using Apache Lucene.", + "properties": { + "mappings": { + "type": "array", + "description": "A list of mappings of the following format: \"a=>b\" (all occurrences of the character \"a\" will be replaced with character \"b\").", + "items": { + "type": "string" + } + } + }, + "required": [ + "mappings" + ], "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/CharFilter" } ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-shaper" - }, - "description": "A skill for reshaping the outputs. It creates a complex type to support composite fields (also known as multipart fields)." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.MappingCharFilter" + }, + "MarkdownHeaderDepth": { + "type": "string", + "description": "Specifies the max header depth that will be considered while grouping markdown content. Default is `h6`.", + "enum": [ + "h1", + "h2", + "h3", + "h4", + "h5", + "h6" + ], + "x-ms-enum": { + "name": "MarkdownHeaderDepth", + "modelAsString": true, + "values": [ + { + "name": "h1", + "value": "h1", + "description": "Indicates that headers up to a level of h1 will be considered while grouping markdown content." + }, + { + "name": "h2", + "value": "h2", + "description": "Indicates that headers up to a level of h2 will be considered while grouping markdown content." + }, + { + "name": "h3", + "value": "h3", + "description": "Indicates that headers up to a level of h3 will be considered while grouping markdown content." + }, + { + "name": "h4", + "value": "h4", + "description": "Indicates that headers up to a level of h4 will be considered while grouping markdown content." + }, + { + "name": "h5", + "value": "h5", + "description": "Indicates that headers up to a level of h5 will be considered while grouping markdown content." + }, + { + "name": "h6", + "value": "h6", + "description": "Indicates that headers up to a level of h6 will be considered while grouping markdown content. This is the default." + } + ] + } + }, + "MarkdownParsingSubmode": { + "type": "string", + "description": "Specifies the submode that will determine whether a markdown file will be parsed into exactly one search document or multiple search documents. Default is `oneToMany`.", + "enum": [ + "oneToMany", + "oneToOne" + ], + "x-ms-enum": { + "name": "MarkdownParsingSubmode", + "modelAsString": true, + "values": [ + { + "name": "OneToMany", + "value": "oneToMany", + "description": "Indicates that each section of the markdown file (up to a specified depth) will be parsed into individual search documents. This can result in a single markdown file producing multiple search documents. This is the default sub-mode." + }, + { + "name": "OneToOne", + "value": "oneToOne", + "description": "Indicates that each markdown file will be parsed into a single search document." + } + ] + } }, "MergeSkill": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.MergeSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], + "description": "A skill for merging two or more strings into a single unified string, with an optional user-defined delimiter separating each component part.", "properties": { "insertPreTag": { "type": "string", - "default": " ", - "description": "The tag indicates the start of the merged text. By default, the tag is an empty space." + "description": "The tag indicates the start of the merged text. By default, the tag is an empty space.", + "default": " " }, "insertPostTag": { "type": "string", - "default": " ", - "description": "The tag indicates the end of the merged text. By default, the tag is an empty space." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-textmerger" - }, - "description": "A skill for merging two or more strings into a single unified string, with an optional user-defined delimiter separating each component part." - }, - "EntityRecognitionSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.EntityRecognitionSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "categories": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityCategory", - "x-nullable": false - }, - "description": "A list of entity categories that should be extracted." - }, - "defaultLanguageCode": { - "$ref": "#/definitions/EntityRecognitionSkillLanguage", - "description": "A value indicating which language code to use. Default is `en`." - }, - "includeTypelessEntities": { - "type": "boolean", - "x-nullable": true, - "description": "Determines whether or not to include entities which are well known but don't conform to a pre-defined type. If this configuration is not set (default), set to null or set to false, entities which don't conform to one of the pre-defined types will not be surfaced." - }, - "minimumPrecision": { - "type": "number", - "format": "double", - "x-nullable": true, - "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included." + "description": "The tag indicates the end of the merged text. By default, the tag is an empty space.", + "default": " " } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-entity-recognition" - }, - "description": "This skill is deprecated. Use the V3.EntityRecognitionSkill instead.", - "x-az-search-deprecated": true - }, - "SentimentSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.SentimentSkill", "allOf": [ { "$ref": "#/definitions/SearchIndexerSkill" } ], - "properties": { - "defaultLanguageCode": { - "$ref": "#/definitions/SentimentSkillLanguage", - "description": "A value indicating which language code to use. Default is `en`." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-sentiment" - }, - "description": "This skill is deprecated. Use the V3.SentimentSkill instead.", - "x-az-search-deprecated": true + "x-ms-discriminator-value": "#Microsoft.Skills.Text.MergeSkill" }, - "SentimentSkillV3": { + "MicrosoftLanguageStemmingTokenizer": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.V3.SentimentSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], + "description": "Divides text using language-specific rules and reduces words to their base forms.", "properties": { - "defaultLanguageCode": { - "type": "string", - "x-nullable": true, - "description": "A value indicating which language code to use. Default is `en`." + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Tokens longer than the maximum length are split. Maximum token length that can be used is 300 characters. Tokens longer than 300 characters are first split into tokens of length 300 and then each of those tokens is split based on the max token length set. Default is 255.", + "default": 255, + "maximum": 300 }, - "includeOpinionMining": { + "isSearchTokenizer": { "type": "boolean", - "default": false, - "description": "If set to true, the skill output will include information from Text Analytics for opinion mining, namely targets (nouns or verbs) and their associated assessment (adjective) in the text. Default is false." + "description": "A value indicating how the tokenizer is used. Set to true if used as the search tokenizer, set to false if used as the indexing tokenizer. Default is false.", + "default": false }, - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary." + "language": { + "$ref": "#/definitions/MicrosoftStemmingTokenizerLanguage", + "description": "The language to use. The default is English." } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-sentiment-v3" - }, - "description": "Using the Text Analytics API, evaluates unstructured text and for each record, provides sentiment labels (such as \"negative\", \"neutral\" and \"positive\") based on the highest confidence score found by the service at a sentence and document-level." - }, - "EntityLinkingSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.V3.EntityLinkingSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/LexicalTokenizer" } ], - "properties": { - "defaultLanguageCode": { - "type": "string", - "x-nullable": true, - "description": "A value indicating which language code to use. Default is `en`." - }, - "minimumPrecision": { - "type": "number", - "format": "double", - "minimum": 0.0, - "maximum": 1.0, - "x-nullable": true, - "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included." - }, - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-entity-linking-v3" - }, - "description": "Using the Text Analytics API, extracts linked entities from text." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.MicrosoftLanguageStemmingTokenizer" }, - "EntityRecognitionSkillV3": { + "MicrosoftLanguageTokenizer": { "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], + "description": "Divides text using language-specific rules.", "properties": { - "categories": { - "type": "array", - "items": { - "type": "string", - "x-nullable": false - }, - "description": "A list of entity categories that should be extracted." - }, - "defaultLanguageCode": { - "type": "string", - "x-nullable": true, - "description": "A value indicating which language code to use. Default is `en`." + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Tokens longer than the maximum length are split. Maximum token length that can be used is 300 characters. Tokens longer than 300 characters are first split into tokens of length 300 and then each of those tokens is split based on the max token length set. Default is 255.", + "default": 255, + "maximum": 300 }, - "minimumPrecision": { - "type": "number", - "format": "double", - "minimum": 0.0, - "maximum": 1.0, - "x-nullable": true, - "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included." + "isSearchTokenizer": { + "type": "boolean", + "description": "A value indicating how the tokenizer is used. Set to true if used as the search tokenizer, set to false if used as the indexing tokenizer. Default is false.", + "default": false }, - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the Text Analytics API. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary." + "language": { + "$ref": "#/definitions/MicrosoftTokenizerLanguage", + "description": "The language to use. The default is English." } }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-entity-recognition-v3" - }, - "description": "Using the Text Analytics API, extracts entities of different types from text." - }, - "PIIDetectionSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.PIIDetectionSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/LexicalTokenizer" } ], - "properties": { - "defaultLanguageCode": { - "type": "string", - "x-nullable": true, - "description": "A value indicating which language code to use. Default is `en`." - }, - "minimumPrecision": { - "type": "number", - "format": "double", - "x-nullable": true, - "minimum": 0.0, - "maximum": 1.0, - "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included." - }, - "maskingMode": { - "$ref": "#/definitions/PIIDetectionSkillMaskingMode", - "description": "A parameter that provides various ways to mask the personal information detected in the input text. Default is 'none'." - }, - "maskingCharacter": { - "x-ms-client-name": "mask", - "type": "string", - "x-nullable": true, - "maxLength": 1, - "description": "The character used to mask the text if the maskingMode parameter is set to replace. Default is '*'." - }, - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary." - }, - "piiCategories": { - "type": "array", - "items": { - "type": "string", - "x-nullable": false - }, - "description": "A list of PII entity categories that should be extracted and masked." - }, - "domain": { - "type": "string", - "x-nullable": true, - "description": "If specified, will set the PII domain to include only a subset of the entity categories. Possible values include: 'phi', 'none'. Default is 'none'." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-pii-detection" - }, - "description": "Using the Text Analytics API, extracts personal information from an input text and gives you the option of masking it." - }, - "SplitSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.SplitSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "defaultLanguageCode": { - "$ref": "#/definitions/SplitSkillLanguage", - "description": "A value indicating which language code to use. Default is `en`." - }, - "textSplitMode": { - "$ref": "#/definitions/TextSplitMode", - "x-nullable": false, - "description": "A value indicating which split mode to perform." - }, - "maximumPageLength": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The desired maximum page length. Default is 10000." - }, - "pageOverlapLength": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Only applicable when textSplitMode is set to 'pages'. If specified, n+1th chunk will start with this number of characters/tokens from the end of the nth chunk." - }, - "maximumPagesToTake": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Only applicable when textSplitMode is set to 'pages'. If specified, the SplitSkill will discontinue splitting after processing the first 'maximumPagesToTake' pages, in order to improve performance when only a few initial pages are needed from each document." - }, - "unit": { - "$ref": "#/definitions/SplitSkillUnit", - "x-nullable": true, - "description": "Only applies if textSplitMode is set to pages. There are two possible values. The choice of the values will decide the length (maximumPageLength and pageOverlapLength) measurement. The default is 'characters', which means the length will be measured by character." - }, - "azureOpenAITokenizerParameters": { - "$ref": "#/definitions/AzureOpenAITokenizerParameters", - "x-nullable": true, - "description": "Only applies if the unit is set to azureOpenAITokens. If specified, the splitSkill will use these parameters when performing the tokenization. The parameters are a valid 'encoderModelName' and an optional 'allowedSpecialTokens' property." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-textsplit" - }, - "description": "A skill to split a string into chunks of text." - }, - "CustomEntityLookupSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.CustomEntityLookupSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "defaultLanguageCode": { - "$ref": "#/definitions/CustomEntityLookupSkillLanguage", - "x-nullable": true, - "description": "A value indicating which language code to use. Default is `en`." - }, - "entitiesDefinitionUri": { - "type": "string", - "x-nullable": true, - "description": "Path to a JSON or CSV file containing all the target text to match against. This entity definition is read at the beginning of an indexer run. Any updates to this file during an indexer run will not take effect until subsequent runs. This config must be accessible over HTTPS." - }, - "inlineEntitiesDefinition": { - "type": "array", - "items": { - "$ref": "#/definitions/CustomEntity" - }, - "x-nullable": true, - "description": "The inline CustomEntity definition." - }, - "globalDefaultCaseSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "A global flag for CaseSensitive. If CaseSensitive is not set in CustomEntity, this value will be the default value." - }, - "globalDefaultAccentSensitive": { - "type": "boolean", - "x-nullable": true, - "description": "A global flag for AccentSensitive. If AccentSensitive is not set in CustomEntity, this value will be the default value." - }, - "globalDefaultFuzzyEditDistance": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "A global flag for FuzzyEditDistance. If FuzzyEditDistance is not set in CustomEntity, this value will be the default value." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/en-us/azure/search/cognitive-search-skill-custom-entity-lookup" - }, - "description": "A skill looks for text from a custom, user-defined list of words and phrases." - }, - "TextTranslationSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.TranslationSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "defaultToLanguageCode": { - "$ref": "#/definitions/TextTranslationSkillLanguage", - "description": "The language code to translate documents into for documents that don't specify the to language explicitly. " - }, - "defaultFromLanguageCode": { - "$ref": "#/definitions/TextTranslationSkillLanguage", - "description": "The language code to translate documents from for documents that don't specify the from language explicitly." - }, - "suggestedFrom": { - "$ref": "#/definitions/TextTranslationSkillLanguage", - "x-nullable": true, - "description": "The language code to translate documents from when neither the fromLanguageCode input nor the defaultFromLanguageCode parameter are provided, and the automatic language detection is unsuccessful. Default is `en`." - } - }, - "required": [ - "defaultToLanguageCode" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-text-translation" - }, - "description": "A skill to translate text from one language to another." - }, - "DocumentExtractionSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Util.DocumentExtractionSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "parsingMode": { - "type": "string", - "x-nullable": true, - "description": "The parsingMode for the skill. Will be set to 'default' if not defined." - }, - "dataToExtract": { - "type": "string", - "x-nullable": true, - "description": "The type of data to be extracted for the skill. Will be set to 'contentAndMetadata' if not defined." - }, - "configuration": { - "type": "object", - "additionalProperties": true, - "x-nullable": true, - "description": "A dictionary of configurations for the skill." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-document-extraction" - }, - "description": "A skill that extracts content from a file within the enrichment pipeline." - }, - "DocumentIntelligenceLayoutSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "outputFormat": { - "$ref": "#/definitions/DocumentIntelligenceLayoutSkillOutputFormat", - "x-nullable": true, - "description": "Controls the cardinality of the output format. Default is 'markdown'." - }, - "outputMode": { - "$ref": "#/definitions/DocumentIntelligenceLayoutSkillOutputMode", - "x-nullable": true, - "description": "Controls the cardinality of the output produced by the skill. Default is 'oneToMany'." - }, - "markdownHeaderDepth": { - "$ref": "#/definitions/DocumentIntelligenceLayoutSkillMarkdownHeaderDepth", - "x-nullable": true, - "description": "The depth of headers in the markdown output. Default is h6." - }, - "extractionOptions": { - "x-nullable": true, - "type": "array", - "items": { - "$ref": "#/definitions/DocumentIntelligenceLayoutSkillExtractionOptions" - }, - "description": "Controls the cardinality of the content extracted from the document by the skill" - }, - "chunkingProperties": { - "$ref": "#/definitions/DocumentIntelligenceLayoutSkillChunkingProperties", - "x-nullable": true, - "description": "Controls the cardinality for chunking the content." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-skill-document-extraction" - }, - "description": "A skill that extracts content and layout information, via Azure AI Services, from files within the enrichment pipeline." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.MicrosoftLanguageTokenizer" }, - "DocumentIntelligenceLayoutSkillOutputMode": { + "MicrosoftStemmingTokenizerLanguage": { "type": "string", + "description": "Lists the languages supported by the Microsoft language stemming tokenizer.", "enum": [ - "oneToMany" + "arabic", + "bangla", + "bulgarian", + "catalan", + "croatian", + "czech", + "danish", + "dutch", + "english", + "estonian", + "finnish", + "french", + "german", + "greek", + "gujarati", + "hebrew", + "hindi", + "hungarian", + "icelandic", + "indonesian", + "italian", + "kannada", + "latvian", + "lithuanian", + "malay", + "malayalam", + "marathi", + "norwegianBokmaal", + "polish", + "portuguese", + "portugueseBrazilian", + "punjabi", + "romanian", + "russian", + "serbianCyrillic", + "serbianLatin", + "slovak", + "slovenian", + "spanish", + "swedish", + "tamil", + "telugu", + "turkish", + "ukrainian", + "urdu" ], "x-ms-enum": { - "name": "DocumentIntelligenceLayoutSkillOutputMode", + "name": "MicrosoftStemmingTokenizerLanguage", "modelAsString": true, "values": [ { - "value": "oneToMany", - "name": "OneToMany", - "description": "Specify that the output should be parsed as 'oneToMany'." - } - ] - }, - "default": "oneToMany", - "description": "Controls the cardinality of the output produced by the skill. Default is 'oneToMany'." - }, - "DocumentIntelligenceLayoutSkillOutputFormat": { - "type": "string", - "enum": [ - "text", - "markdown" - ], - "x-ms-enum": { - "name": "DocumentIntelligenceLayoutSkillOutputFormat", - "modelAsString": true, - "values": [ + "name": "Arabic", + "value": "arabic", + "description": "Selects the Microsoft stemming tokenizer for Arabic." + }, { - "value": "text", - "name": "Text", - "description": "Specify the format of the output as text." + "name": "Bangla", + "value": "bangla", + "description": "Selects the Microsoft stemming tokenizer for Bangla." }, { - "value": "markdown", - "name": "Markdown", - "description": "Specify the format of the output as markdown." - } - ] - }, - "default": "markdown", - "description": "Controls the cardinality of the output format. Default is 'markdown'." - }, - "DocumentIntelligenceLayoutSkillMarkdownHeaderDepth": { - "type": "string", - "enum": [ - "h1", - "h2", - "h3", - "h4", - "h5", - "h6" - ], - "x-ms-enum": { - "name": "DocumentIntelligenceLayoutSkillMarkdownHeaderDepth", - "modelAsString": true, - "values": [ + "name": "Bulgarian", + "value": "bulgarian", + "description": "Selects the Microsoft stemming tokenizer for Bulgarian." + }, { - "value": "h1", - "name": "H1", - "description": "Header level 1." + "name": "Catalan", + "value": "catalan", + "description": "Selects the Microsoft stemming tokenizer for Catalan." }, { - "value": "h2", - "name": "H2", - "description": "Header level 2." + "name": "Croatian", + "value": "croatian", + "description": "Selects the Microsoft stemming tokenizer for Croatian." }, { - "value": "h3", - "name": "H3", - "description": "Header level 3." + "name": "Czech", + "value": "czech", + "description": "Selects the Microsoft stemming tokenizer for Czech." }, { - "value": "h4", - "name": "H4", - "description": "Header level 4." + "name": "Danish", + "value": "danish", + "description": "Selects the Microsoft stemming tokenizer for Danish." }, { - "value": "h5", - "name": "H5", - "description": "Header level 5." + "name": "Dutch", + "value": "dutch", + "description": "Selects the Microsoft stemming tokenizer for Dutch." }, { - "value": "h6", - "name": "H6", - "description": "Header level 6." - } - ] - }, - "default": "h6", - "description": "The depth of headers in the markdown output. Default is h6." - }, - "ChatCompletionSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Custom.ChatCompletionSkill", - "allOf": [ - { - "$ref": "#/definitions/WebApiSkill" - } - ], - "properties": { - "apiKey": { - "type": "string", - "description": "API key for authenticating to the model. Both apiKey and authIdentity cannot be specified at the same time." - }, - "commonModelParameters": { - "$ref": "#/definitions/ChatCompletionCommonModelParameters", - "description": "Common language model parameters that customers can tweak. If omitted, reasonable defaults will be applied." - }, - "extraParameters": { - "type": "object", - "additionalProperties": true, - "x-nullable": true, - "description": "Open-type dictionary for model-specific parameters that should be appended to the chat completions call. Follows Azure AI Foundry’s extensibility pattern." - }, - "extraParametersBehavior": { - "$ref": "#/definitions/ChatCompletionExtraParametersBehavior", - "description": "How extra parameters are handled by Azure AI Foundry. Default is 'error'." - }, - "responseFormat": { - "$ref": "#/definitions/ChatCompletionResponseFormat", - "description": "Determines how the LLM should format its response. Defaults to 'text' response type." - } - }, - "description": "A skill that calls a language model via Azure AI Foundry's Chat Completions endpoint." - }, - "ChatCompletionCommonModelParameters": { - "type": "object", - "x-ms-client-name": "CommonModelParameters", - "properties": { - "model": { - "type": "string", - "default": null, - "x-nullable": true, - "description": "The name of the model to use (e.g., 'gpt-4o', etc.). Default is null if not specified." - }, - "frequencyPenalty": { - "type": "number", - "default": 0, - "x-nullable": true, - "description": "A float in the range [-2,2] that reduces or increases likelihood of repeated tokens. Default is 0." - }, - "presencePenalty": { - "type": "number", - "default": 0, - "x-nullable": true, - "description": "A float in the range [-2,2] that penalizes new tokens based on their existing presence. Default is 0." - }, - "maxTokens": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Maximum number of tokens to generate." - }, - "temperature": { - "type": "number", - "default": 0.7, - "x-nullable": true, - "description": "Sampling temperature. Default is 0.7." - }, - "seed": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "Random seed for controlling deterministic outputs. If omitted, randomization is used." - }, - "stop": { - "type": "array", - "x-nullable": true, - "items": { - "type": "string" + "name": "English", + "value": "english", + "description": "Selects the Microsoft stemming tokenizer for English." }, - "description": "List of stop sequences that will cut off text generation. Default is none." - } - }, - "description": "Common language model parameters for Chat Completions. If omitted, default values are used." - }, - "ChatCompletionExtraParametersBehavior": { - "type": "string", - "enum": [ - "pass-through", - "drop", - "error" - ], - "x-ms-enum": { - "name": "ChatCompletionExtraParametersBehavior", - "modelAsString": true, - "values": [ { - "value": "passThrough", - "name": "PassThrough", - "description": "Passes any extra parameters directly to the model." + "name": "Estonian", + "value": "estonian", + "description": "Selects the Microsoft stemming tokenizer for Estonian." }, { - "value": "drop", - "name": "Drop", - "description": "Drops all extra parameters." + "name": "Finnish", + "value": "finnish", + "description": "Selects the Microsoft stemming tokenizer for Finnish." }, { - "value": "error", - "name": "Error", - "description": "Raises an error if any extra parameter is present." - } - ] - }, - "default": "error", - "description": "Specifies how 'extraParameters' should be handled by Azure AI Foundry. Defaults to 'error'." - }, - "ChatCompletionResponseFormat": { - "type": "object", - "x-ms-client-name": "ChatCompletionResponseFormat", - "properties": { - "type": { - "type": "string", - "enum": [ - "text", - "jsonObject", - "jsonSchema" - ], - "description": "Specifies how the LLM should format the response. Possible values: 'text' (plain string), 'json_object' (arbitrary JSON), or 'json_schema' (adheres to provided schema).", - "default": "text", - "x-ms-enum": { - "name": "ChatCompletionResponseFormatType", - "modelAsString": true - } - }, - "jsonSchemaProperties": { - "type": "object", - "x-ms-client-name": "ChatCompletionSchemaProperties", - "description": "An open dictionary for extended properties. Required if 'type' == 'json_schema'", - "x-nullable": true, - "properties": { - "name": { - "type": "string", - "x-nullable": true, - "description": "Name of the json schema the model will adhere to" - }, - "description": { - "type": "string", - "x-nullable": true, - "description": "Description of the json schema the model will adhere to." - }, - "strict": { - "type": "boolean", - "default": true, - "description": "Whether or not the model's response should use structured outputs. Default is true" - }, - "schema": { - "$ref": "#/definitions/ChatCompletionSchema" - } - } - } - }, - "description": "Determines how the language model's response should be serialized. Defaults to 'text'." - }, - "ChatCompletionSchema": { - "type": "object", - "x-ms-client-name": "ChatCompletionSchema", - "x-nullable": true, - "description": "Object defining the custom schema the model will use to structure its output.", - "properties": { - "type": { - "type": "string", - "default": "object", - "description": "Type of schema representation. Usually 'object'. Default is 'object'." - }, - "properties": { - "type": "string", - "description": "A JSON-formatted string that defines the output schema's properties and constraints for the model." - }, - "required": { - "type": "array", - "items": { - "type": "string" + "name": "French", + "value": "french", + "description": "Selects the Microsoft stemming tokenizer for French." }, - "description": "An array of the property names that are required to be part of the model's response. All properties must be included for structured outputs." - }, - "additionalProperties": { - "type": "boolean", - "default": false, - "description": "Controls whether it is allowable for an object to contain additional keys / values that were not defined in the JSON Schema. Default is false." - } - } - }, - "DocumentIntelligenceLayoutSkillExtractionOptions": { - "type": "string", - "enum": [ - "images", - "locationMetadata" - ], - "x-ms-enum": { - "name": "DocumentIntelligenceLayoutSkillExtractionOptions", - "modelAsString": true, - "values": [ { - "value": "images", - "name": "Images", - "description": "Specify that image content should be extracted from the document." + "name": "German", + "value": "german", + "description": "Selects the Microsoft stemming tokenizer for German." }, { - "value": "locationMetadata", - "name": "LocationMetadata", - "description": "Specify that location metadata should be extracted from the document." - } - ] - }, - "description": "Controls the cardinality of the content extracted from the document by the skill." - }, - "DocumentIntelligenceLayoutSkillChunkingProperties": { - "type": "object", - "description": "Controls the cardinality for chunking the content.", - "properties": { - "unit": { - "$ref": "#/definitions/DocumentIntelligenceLayoutSkillChunkingUnit", - "x-nullable": true, - "description": "The unit of the chunk." - }, - "maximumLength": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The maximum chunk length in characters. Default is 500." - }, - "overlapLength": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The length of overlap provided between two text chunks. Default is 0." - } - } - }, - "DocumentIntelligenceLayoutSkillChunkingUnit": { - "type": "string", - "enum": [ - "characters" - ], - "x-ms-enum": { - "name": "DocumentIntelligenceLayoutSkillChunkingUnit", - "modelAsString": true, - "values": [ + "name": "Greek", + "value": "greek", + "description": "Selects the Microsoft stemming tokenizer for Greek." + }, { - "value": "characters", - "name": "Characters", - "description": "Specifies chunk by characters." + "name": "Gujarati", + "value": "gujarati", + "description": "Selects the Microsoft stemming tokenizer for Gujarati." + }, + { + "name": "Hebrew", + "value": "hebrew", + "description": "Selects the Microsoft stemming tokenizer for Hebrew." + }, + { + "name": "Hindi", + "value": "hindi", + "description": "Selects the Microsoft stemming tokenizer for Hindi." + }, + { + "name": "Hungarian", + "value": "hungarian", + "description": "Selects the Microsoft stemming tokenizer for Hungarian." + }, + { + "name": "Icelandic", + "value": "icelandic", + "description": "Selects the Microsoft stemming tokenizer for Icelandic." + }, + { + "name": "Indonesian", + "value": "indonesian", + "description": "Selects the Microsoft stemming tokenizer for Indonesian." + }, + { + "name": "Italian", + "value": "italian", + "description": "Selects the Microsoft stemming tokenizer for Italian." + }, + { + "name": "Kannada", + "value": "kannada", + "description": "Selects the Microsoft stemming tokenizer for Kannada." + }, + { + "name": "Latvian", + "value": "latvian", + "description": "Selects the Microsoft stemming tokenizer for Latvian." + }, + { + "name": "Lithuanian", + "value": "lithuanian", + "description": "Selects the Microsoft stemming tokenizer for Lithuanian." + }, + { + "name": "Malay", + "value": "malay", + "description": "Selects the Microsoft stemming tokenizer for Malay." + }, + { + "name": "Malayalam", + "value": "malayalam", + "description": "Selects the Microsoft stemming tokenizer for Malayalam." + }, + { + "name": "Marathi", + "value": "marathi", + "description": "Selects the Microsoft stemming tokenizer for Marathi." + }, + { + "name": "NorwegianBokmaal", + "value": "norwegianBokmaal", + "description": "Selects the Microsoft stemming tokenizer for Norwegian (BokmÃ¥l)." + }, + { + "name": "Polish", + "value": "polish", + "description": "Selects the Microsoft stemming tokenizer for Polish." + }, + { + "name": "Portuguese", + "value": "portuguese", + "description": "Selects the Microsoft stemming tokenizer for Portuguese." + }, + { + "name": "PortugueseBrazilian", + "value": "portugueseBrazilian", + "description": "Selects the Microsoft stemming tokenizer for Portuguese (Brazil)." + }, + { + "name": "Punjabi", + "value": "punjabi", + "description": "Selects the Microsoft stemming tokenizer for Punjabi." + }, + { + "name": "Romanian", + "value": "romanian", + "description": "Selects the Microsoft stemming tokenizer for Romanian." + }, + { + "name": "Russian", + "value": "russian", + "description": "Selects the Microsoft stemming tokenizer for Russian." + }, + { + "name": "SerbianCyrillic", + "value": "serbianCyrillic", + "description": "Selects the Microsoft stemming tokenizer for Serbian (Cyrillic)." + }, + { + "name": "SerbianLatin", + "value": "serbianLatin", + "description": "Selects the Microsoft stemming tokenizer for Serbian (Latin)." + }, + { + "name": "Slovak", + "value": "slovak", + "description": "Selects the Microsoft stemming tokenizer for Slovak." + }, + { + "name": "Slovenian", + "value": "slovenian", + "description": "Selects the Microsoft stemming tokenizer for Slovenian." + }, + { + "name": "Spanish", + "value": "spanish", + "description": "Selects the Microsoft stemming tokenizer for Spanish." + }, + { + "name": "Swedish", + "value": "swedish", + "description": "Selects the Microsoft stemming tokenizer for Swedish." + }, + { + "name": "Tamil", + "value": "tamil", + "description": "Selects the Microsoft stemming tokenizer for Tamil." + }, + { + "name": "Telugu", + "value": "telugu", + "description": "Selects the Microsoft stemming tokenizer for Telugu." + }, + { + "name": "Turkish", + "value": "turkish", + "description": "Selects the Microsoft stemming tokenizer for Turkish." + }, + { + "name": "Ukrainian", + "value": "ukrainian", + "description": "Selects the Microsoft stemming tokenizer for Ukrainian." + }, + { + "name": "Urdu", + "value": "urdu", + "description": "Selects the Microsoft stemming tokenizer for Urdu." } ] - }, - "default": "characters", - "description": "Controls the cardinality of the chunk unit. Default is 'characters'" - }, - "ContentUnderstandingSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Util.ContentUnderstandingSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "extractionOptions": { - "x-nullable": true, - "type": "array", - "items": { - "$ref": "#/definitions/ContentUnderstandingSkillExtractionOptions" - }, - "description": "Controls the cardinality of the content extracted from the document by the skill" - }, - "chunkingProperties": { - "$ref": "#/definitions/ContentUnderstandingSkillChunkingProperties", - "x-nullable": true, - "description": "Controls the cardinality for chunking the content." - } - }, - "description": "A skill that leverages Azure AI Content Understanding to process and extract structured insights from documents, enabling enriched, searchable content for enhanced document indexing and retrieval" + } }, - "ContentUnderstandingSkillExtractionOptions": { + "MicrosoftTokenizerLanguage": { "type": "string", + "description": "Lists the languages supported by the Microsoft language tokenizer.", "enum": [ - "images", - "locationMetadata" + "bangla", + "bulgarian", + "catalan", + "chineseSimplified", + "chineseTraditional", + "croatian", + "czech", + "danish", + "dutch", + "english", + "french", + "german", + "greek", + "gujarati", + "hindi", + "icelandic", + "indonesian", + "italian", + "japanese", + "kannada", + "korean", + "malay", + "malayalam", + "marathi", + "norwegianBokmaal", + "polish", + "portuguese", + "portugueseBrazilian", + "punjabi", + "romanian", + "russian", + "serbianCyrillic", + "serbianLatin", + "slovenian", + "spanish", + "swedish", + "tamil", + "telugu", + "thai", + "ukrainian", + "urdu", + "vietnamese" ], "x-ms-enum": { - "name": "ContentUnderstandingSkillExtractionOptions", + "name": "MicrosoftTokenizerLanguage", "modelAsString": true, "values": [ { - "value": "images", - "name": "Images", - "description": "Specify that image content should be extracted from the document." + "name": "Bangla", + "value": "bangla", + "description": "Selects the Microsoft tokenizer for Bangla." }, { - "value": "locationMetadata", - "name": "LocationMetadata", - "description": "Specify that location metadata should be extracted from the document." - } - ] - }, - "description": "Controls the cardinality of the content extracted from the document by the skill." + "name": "Bulgarian", + "value": "bulgarian", + "description": "Selects the Microsoft tokenizer for Bulgarian." + }, + { + "name": "Catalan", + "value": "catalan", + "description": "Selects the Microsoft tokenizer for Catalan." + }, + { + "name": "ChineseSimplified", + "value": "chineseSimplified", + "description": "Selects the Microsoft tokenizer for Chinese (Simplified)." + }, + { + "name": "ChineseTraditional", + "value": "chineseTraditional", + "description": "Selects the Microsoft tokenizer for Chinese (Traditional)." + }, + { + "name": "Croatian", + "value": "croatian", + "description": "Selects the Microsoft tokenizer for Croatian." + }, + { + "name": "Czech", + "value": "czech", + "description": "Selects the Microsoft tokenizer for Czech." + }, + { + "name": "Danish", + "value": "danish", + "description": "Selects the Microsoft tokenizer for Danish." + }, + { + "name": "Dutch", + "value": "dutch", + "description": "Selects the Microsoft tokenizer for Dutch." + }, + { + "name": "English", + "value": "english", + "description": "Selects the Microsoft tokenizer for English." + }, + { + "name": "French", + "value": "french", + "description": "Selects the Microsoft tokenizer for French." + }, + { + "name": "German", + "value": "german", + "description": "Selects the Microsoft tokenizer for German." + }, + { + "name": "Greek", + "value": "greek", + "description": "Selects the Microsoft tokenizer for Greek." + }, + { + "name": "Gujarati", + "value": "gujarati", + "description": "Selects the Microsoft tokenizer for Gujarati." + }, + { + "name": "Hindi", + "value": "hindi", + "description": "Selects the Microsoft tokenizer for Hindi." + }, + { + "name": "Icelandic", + "value": "icelandic", + "description": "Selects the Microsoft tokenizer for Icelandic." + }, + { + "name": "Indonesian", + "value": "indonesian", + "description": "Selects the Microsoft tokenizer for Indonesian." + }, + { + "name": "Italian", + "value": "italian", + "description": "Selects the Microsoft tokenizer for Italian." + }, + { + "name": "Japanese", + "value": "japanese", + "description": "Selects the Microsoft tokenizer for Japanese." + }, + { + "name": "Kannada", + "value": "kannada", + "description": "Selects the Microsoft tokenizer for Kannada." + }, + { + "name": "Korean", + "value": "korean", + "description": "Selects the Microsoft tokenizer for Korean." + }, + { + "name": "Malay", + "value": "malay", + "description": "Selects the Microsoft tokenizer for Malay." + }, + { + "name": "Malayalam", + "value": "malayalam", + "description": "Selects the Microsoft tokenizer for Malayalam." + }, + { + "name": "Marathi", + "value": "marathi", + "description": "Selects the Microsoft tokenizer for Marathi." + }, + { + "name": "NorwegianBokmaal", + "value": "norwegianBokmaal", + "description": "Selects the Microsoft tokenizer for Norwegian (BokmÃ¥l)." + }, + { + "name": "Polish", + "value": "polish", + "description": "Selects the Microsoft tokenizer for Polish." + }, + { + "name": "Portuguese", + "value": "portuguese", + "description": "Selects the Microsoft tokenizer for Portuguese." + }, + { + "name": "PortugueseBrazilian", + "value": "portugueseBrazilian", + "description": "Selects the Microsoft tokenizer for Portuguese (Brazil)." + }, + { + "name": "Punjabi", + "value": "punjabi", + "description": "Selects the Microsoft tokenizer for Punjabi." + }, + { + "name": "Romanian", + "value": "romanian", + "description": "Selects the Microsoft tokenizer for Romanian." + }, + { + "name": "Russian", + "value": "russian", + "description": "Selects the Microsoft tokenizer for Russian." + }, + { + "name": "SerbianCyrillic", + "value": "serbianCyrillic", + "description": "Selects the Microsoft tokenizer for Serbian (Cyrillic)." + }, + { + "name": "SerbianLatin", + "value": "serbianLatin", + "description": "Selects the Microsoft tokenizer for Serbian (Latin)." + }, + { + "name": "Slovenian", + "value": "slovenian", + "description": "Selects the Microsoft tokenizer for Slovenian." + }, + { + "name": "Spanish", + "value": "spanish", + "description": "Selects the Microsoft tokenizer for Spanish." + }, + { + "name": "Swedish", + "value": "swedish", + "description": "Selects the Microsoft tokenizer for Swedish." + }, + { + "name": "Tamil", + "value": "tamil", + "description": "Selects the Microsoft tokenizer for Tamil." + }, + { + "name": "Telugu", + "value": "telugu", + "description": "Selects the Microsoft tokenizer for Telugu." + }, + { + "name": "Thai", + "value": "thai", + "description": "Selects the Microsoft tokenizer for Thai." + }, + { + "name": "Ukrainian", + "value": "ukrainian", + "description": "Selects the Microsoft tokenizer for Ukrainian." + }, + { + "name": "Urdu", + "value": "urdu", + "description": "Selects the Microsoft tokenizer for Urdu." + }, + { + "name": "Vietnamese", + "value": "vietnamese", + "description": "Selects the Microsoft tokenizer for Vietnamese." + } + ] + } }, - "ContentUnderstandingSkillChunkingProperties": { + "NGramTokenFilter": { "type": "object", - "description": "Controls the cardinality for chunking the content.", + "description": "Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.", "properties": { - "unit": { - "$ref": "#/definitions/ContentUnderstandingSkillChunkingUnit", - "x-nullable": true, - "description": "The unit of the chunk." - }, - "maximumLength": { + "minGram": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "The maximum chunk length in characters. Default is 500." + "description": "The minimum n-gram length. Default is 1. Must be less than the value of maxGram.", + "default": 1 }, - "overlapLength": { + "maxGram": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "The length of overlap provided between two text chunks. Default is 0." + "description": "The maximum n-gram length. Default is 2.", + "default": 2 } - } - }, - "ContentUnderstandingSkillChunkingUnit": { - "type": "string", - "enum": [ - "characters" - ], - "x-ms-enum": { - "name": "ContentUnderstandingSkillChunkingUnit", - "modelAsString": true, - "values": [ - { - "value": "characters", - "name": "Characters", - "description": "Specifies chunk by characters." - } - ] }, - "default": "characters", - "description": "Controls the cardinality of the chunk unit. Default is 'characters'" - }, - "WebApiSkill": { - "type": "object", - "x-ms-discriminator-value": "#Microsoft.Skills.Custom.WebApiSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/TokenFilter" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.NGramTokenFilter" + }, + "NGramTokenFilterV2": { + "type": "object", + "description": "Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.", "properties": { - "uri": { - "type": "string", - "description": "The url for the Web API." - }, - "httpHeaders": { - "$ref": "#/definitions/WebApiHttpHeaders", - "description": "The headers required to make the http request." + "minGram": { + "type": "integer", + "format": "int32", + "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.", + "default": 1, + "maximum": 300 }, - "httpMethod": { - "type": "string", - "description": "The method for the http request." - }, - "timeout": { - "type": "string", - "format": "duration", - "description": "The desired timeout for the request. Default is 30 seconds." - }, - "batchSize": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The desired batch size which indicates number of documents." - }, - "degreeOfParallelism": { + "maxGram": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "If set, the number of parallel calls that can be made to the Web API." - }, - "authResourceId": { - "type": "string", - "x-nullable": true, - "x-ms-format": "arm-id", - "description": "Applies to custom skills that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the custom skill connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token." - }, - "authIdentity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared." + "description": "The maximum n-gram length. Default is 2. Maximum is 300.", + "default": 2, + "maximum": 300 } }, - "required": [ - "uri" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/cognitive-search-custom-skill-web-api" - }, - "description": "A skill that can call a Web API endpoint, allowing you to extend a skillset by having it call your custom code." - }, - "WebApiHttpHeaders": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "A dictionary of http request headers." - }, - "AmlSkill": { - "type": "object", - "x-ms-client-name": "AzureMachineLearningSkill", - "x-ms-discriminator-value": "#Microsoft.Skills.Custom.AmlSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" + "$ref": "#/definitions/TokenFilter" } ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.NGramTokenFilterV2" + }, + "NGramTokenizer": { + "type": "object", + "description": "Tokenizes the input into n-grams of the given size(s). This tokenizer is implemented using Apache Lucene.", "properties": { - "uri": { - "x-ms-client-name": "ScoringUri", - "type": "string", - "format": "uri", - "x-nullable": true, - "description": "(Required for no authentication or key authentication) The scoring URI of the AML service to which the JSON payload will be sent. Only the https URI scheme is allowed." - }, - "key": { - "x-ms-client-name": "AuthenticationKey", - "type": "string", - "x-nullable": true, - "description": "(Required for key authentication) The key for the AML service." - }, - "resourceId": { - "type": "string", - "x-nullable": true, - "description": "(Required for token authentication). The Azure Resource Manager resource ID of the AML service. It should be in the format subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/services/{service_name}." - }, - "timeout": { - "type": "string", - "format": "duration", - "x-nullable": true, - "description": "(Optional) When specified, indicates the timeout for the http client making the API call." - }, - "region": { - "type": "string", - "x-nullable": true, - "description": "(Optional for token authentication). The region the AML service is deployed in." - }, - "degreeOfParallelism": { + "minGram": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "(Optional) When specified, indicates the number of calls the indexer will make in parallel to the endpoint you have provided. You can decrease this value if your endpoint is failing under too high of a request load, or raise it if your endpoint is able to accept more requests and you would like an increase in the performance of the indexer. If not set, a default value of 5 is used. The degreeOfParallelism can be set to a maximum of 10 and a minimum of 1." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/en-us/azure/search/cognitive-search-aml-skill" - }, - "description": "The AML skill allows you to extend AI enrichment with a custom Azure Machine Learning (AML) model. Once an AML model is trained and deployed, an AML skill integrates it into AI enrichment." - }, - "AzureOpenAIEmbeddingSkill": { - "type": "object", - "x-ms-client-name": "AzureOpenAIEmbeddingSkill", - "x-ms-discriminator-value": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill", - "allOf": [ - { - "$ref": "#/definitions/SearchIndexerSkill" + "description": "The minimum n-gram length. Default is 1. Maximum is 300. Must be less than the value of maxGram.", + "default": 1, + "maximum": 300 }, - { - "$ref": "#/definitions/AzureOpenAIParameters" - } - ], - "properties": { - "dimensions": { + "maxGram": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "The number of dimensions the resulting output embeddings should have. Only supported in text-embedding-3 and later models." + "description": "The maximum n-gram length. Default is 2. Maximum is 300.", + "default": 2, + "maximum": 300 + }, + "tokenChars": { + "type": "array", + "description": "Character classes to keep in the tokens.", + "items": { + "$ref": "#/definitions/TokenCharacterKind" + } } }, - "description": "Allows you to generate a vector embedding for a given text input using the Azure OpenAI resource." - }, - "VisionVectorizeSkill": { - "type": "object", - "x-ms-client-name": "VisionVectorizeSkill", - "x-ms-discriminator-value": "#Microsoft.Skills.Vision.VectorizeSkill", "allOf": [ { - "$ref": "#/definitions/SearchIndexerSkill" - } - ], - "properties": { - "modelVersion": { - "type": "string", - "x-nullable": true, - "description": "The version of the model to use when calling the AI Services Vision service. It will default to the latest available when not specified." + "$ref": "#/definitions/LexicalTokenizer" } - }, - "required": [ - "modelVersion" ], - "description": "Allows you to generate a vector embedding for a given image or text input using the Azure AI Services Vision Vectorize API." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.NGramTokenizer" }, - "ListSkillsetsResult": { + "NativeBlobSoftDeleteDeletionDetectionPolicy": { "type": "object", - "properties": { - "value": { - "x-ms-client-name": "Skillsets", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/SearchIndexerSkillset" - }, - "description": "The skillsets defined in the Search service." + "description": "Defines a data deletion detection policy utilizing Azure Blob Storage's native soft delete feature for deletion detection.", + "allOf": [ + { + "$ref": "#/definitions/DataDeletionDetectionPolicy" } - }, - "required": [ - "value" ], - "description": "Response from a list skillset request. If successful, it includes the full definitions of all skillsets." + "x-ms-discriminator-value": "#Microsoft.Azure.Search.NativeBlobSoftDeleteDeletionDetectionPolicy" }, - "TextSplitMode": { + "OcrLineEnding": { "type": "string", + "description": "Defines the sequence of characters to use between the lines of text recognized by the OCR skill. The default value is \"space\".", "enum": [ - "pages", - "sentences" + "space", + "carriageReturn", + "lineFeed", + "carriageReturnLineFeed" ], "x-ms-enum": { - "name": "TextSplitMode", + "name": "OcrLineEnding", "modelAsString": true, "values": [ { - "value": "pages", - "name": "Pages", - "description": "Split the text into individual pages." + "name": "Space", + "value": "space", + "description": "Lines are separated by a single space character." }, { - "value": "sentences", - "name": "Sentences", - "description": "Split the text into individual sentences." - } - ] - }, - "description": "A value indicating which split mode to perform." - }, - "SplitSkillUnit": { - "type": "string", - "enum": [ - "characters", - "azureOpenAITokens" - ], - "x-ms-enum": { - "name": "SplitSkillUnit", - "modelAsString": true, - "values": [ + "name": "CarriageReturn", + "value": "carriageReturn", + "description": "Lines are separated by a carriage return ('\r') character." + }, { - "value": "characters", - "name": "Characters", - "description": "The length will be measured by character." + "name": "LineFeed", + "value": "lineFeed", + "description": "Lines are separated by a single line feed ('\n') character." }, { - "value": "azureOpenAITokens", - "name": "AzureOpenAITokens", - "description": "The length will be measured by an AzureOpenAI tokenizer from the tiktoken library." + "name": "CarriageReturnLineFeed", + "value": "carriageReturnLineFeed", + "description": "Lines are separated by a carriage return and a line feed ('\r\n') character." } ] - }, - "description": "A value indicating which unit to use." + } }, - "AzureOpenAITokenizerParameters": { + "OcrSkill": { "type": "object", + "description": "A skill that extracts text from image files.", "properties": { - "encoderModelName": { - "$ref": "#/definitions/EncoderModelName", - "x-nullable": true, - "description": "Only applies if the unit is set to azureOpenAITokens. Options include 'R50k_base', 'P50k_base', 'P50k_edit' and 'CL100k_base'. The default value is 'CL100k_base'." + "defaultLanguageCode": { + "$ref": "#/definitions/OcrSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`." }, - "allowedSpecialTokens": { - "type": "array", - "items": { - "type": "string" - }, - "description": "(Optional) Only applies if the unit is set to azureOpenAITokens. This parameter defines a collection of special tokens that are permitted within the tokenization process." + "detectOrientation": { + "type": "boolean", + "description": "A value indicating to turn orientation detection on or not. Default is false.", + "default": false + }, + "lineEnding": { + "$ref": "#/definitions/OcrLineEnding", + "description": "Defines the sequence of characters to use between the lines of text recognized by the OCR skill. The default value is \"space\"." } - } - }, - "EncoderModelName": { - "type": "string", - "enum": [ - "r50k_base", - "p50k_base", - "p50k_edit", - "cl100k_base" - ], - "x-ms-enum": { - "name": "SplitSkillEncoderModelName", - "modelAsString": true, - "values": [ - { - "value": "r50k_base", - "name": "R50kBase", - "description": "Refers to a base model trained with a 50,000 token vocabulary, often used in general natural language processing tasks." - }, - { - "value": "p50k_base", - "name": "P50kBase", - "description": "A base model with a 50,000 token vocabulary, optimized for prompt-based tasks." - }, - { - "value": "p50k_edit", - "name": "P50kEdit", - "description": "Similar to p50k_base but fine-tuned for editing or rephrasing tasks with a 50,000 token vocabulary." - }, - { - "value": "cl100k_base", - "name": "CL100kBase", - "description": "A base model with a 100,000 token vocabulary." - } - ] }, - "description": "A value indicating which tokenizer to use." + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Vision.OcrSkill" }, - "VisualFeature": { + "OcrSkillLanguage": { "type": "string", + "description": "The language codes supported for input by OcrSkill.", "enum": [ - "adult", - "brands", - "categories", - "description", - "faces", - "objects", - "tags" - ], - "x-ms-enum": { - "name": "VisualFeature", - "modelAsString": true, - "values": [ - { - "value": "adult", - "name": "Adult", - "description": "Visual features recognized as adult persons." - }, - { - "value": "brands", - "name": "Brands", - "description": "Visual features recognized as commercial brands." - }, - { - "value": "categories", - "name": "Categories", - "description": "Categories." - }, - { - "value": "description", - "name": "Description", - "description": "Description." - }, - { - "value": "faces", - "name": "Faces", - "description": "Visual features recognized as people faces." - }, - { - "value": "objects", - "name": "Objects", - "description": "Visual features recognized as objects." - }, - { - "value": "tags", - "name": "Tags", - "description": "Tags." - } - ] - }, - "description": "The strings indicating what visual feature types to return." - }, - "ImageDetail": { - "type": "string", - "enum": [ - "celebrities", - "landmarks" + "af", + "sq", + "anp", + "ar", + "ast", + "awa", + "az", + "bfy", + "eu", + "be", + "be-cyrl", + "be-latn", + "bho", + "bi", + "brx", + "bs", + "bra", + "br", + "bg", + "bns", + "bua", + "ca", + "ceb", + "rab", + "ch", + "hne", + "zh-Hans", + "zh-Hant", + "kw", + "co", + "crh", + "hr", + "cs", + "da", + "prs", + "dhi", + "doi", + "nl", + "en", + "myv", + "et", + "fo", + "fj", + "fil", + "fi", + "fr", + "fur", + "gag", + "gl", + "de", + "gil", + "gon", + "el", + "kl", + "gvr", + "ht", + "hlb", + "hni", + "bgc", + "haw", + "hi", + "mww", + "hoc", + "hu", + "is", + "smn", + "id", + "ia", + "iu", + "ga", + "it", + "ja", + "Jns", + "jv", + "kea", + "kac", + "xnr", + "krc", + "kaa-cyrl", + "kaa", + "csb", + "kk-cyrl", + "kk-latn", + "klr", + "kha", + "quc", + "ko", + "kfq", + "kpy", + "kos", + "kum", + "ku-arab", + "ku-latn", + "kru", + "ky", + "lkt", + "la", + "lt", + "dsb", + "smj", + "lb", + "bfz", + "ms", + "mt", + "kmj", + "gv", + "mi", + "mr", + "mn", + "cnr-cyrl", + "cnr-latn", + "nap", + "ne", + "niu", + "nog", + "sme", + "nb", + "no", + "oc", + "os", + "ps", + "fa", + "pl", + "pt", + "pa", + "ksh", + "ro", + "rm", + "ru", + "sck", + "sm", + "sa", + "sat", + "sco", + "gd", + "sr", + "sr-Cyrl", + "sr-Latn", + "xsr", + "srx", + "sms", + "sk", + "sl", + "so", + "sma", + "es", + "sw", + "sv", + "tg", + "tt", + "tet", + "thf", + "to", + "tr", + "tk", + "tyv", + "hsb", + "ur", + "ug", + "uz-arab", + "uz-cyrl", + "uz", + "vo", + "wae", + "cy", + "fy", + "yua", + "za", + "zu", + "unk" ], "x-ms-enum": { - "name": "ImageDetail", + "name": "OcrSkillLanguage", "modelAsString": true, "values": [ { - "value": "celebrities", - "name": "Celebrities", - "description": "Details recognized as celebrities." + "name": "af", + "value": "af", + "description": "Afrikaans" }, { - "value": "landmarks", - "name": "Landmarks", - "description": "Details recognized as landmarks." - } - ] - }, - "description": "A string indicating which domain-specific details to return." - }, - "EntityCategory": { - "type": "string", - "enum": [ - "location", - "organization", - "person", - "quantity", - "datetime", - "url", - "email" - ], - "x-ms-enum": { - "name": "EntityCategory", - "modelAsString": true, - "values": [ - { - "value": "location", - "name": "Location", - "description": "Entities describing a physical location." + "name": "sq", + "value": "sq", + "description": "Albanian" }, { - "value": "organization", - "name": "Organization", - "description": "Entities describing an organization." + "name": "anp", + "value": "anp", + "description": "Angika (Devanagiri)" }, { - "value": "person", - "name": "Person", - "description": "Entities describing a person." + "name": "ar", + "value": "ar", + "description": "Arabic" }, { - "value": "quantity", - "name": "Quantity", - "description": "Entities describing a quantity." + "name": "ast", + "value": "ast", + "description": "Asturian" }, { - "value": "datetime", - "name": "Datetime", - "description": "Entities describing a date and time." + "name": "awa", + "value": "awa", + "description": "Awadhi-Hindi (Devanagiri)" }, { - "value": "url", - "name": "Url", - "description": "Entities describing a URL." + "name": "az", + "value": "az", + "description": "Azerbaijani (Latin)" }, { - "value": "email", - "name": "Email", - "description": "Entities describing an email address." - } - ] - }, - "description": "A string indicating what entity categories to return." - }, - "PIIDetectionSkillMaskingMode": { - "type": "string", - "enum": [ - "none", - "replace" - ], - "x-ms-enum": { - "name": "PIIDetectionSkillMaskingMode", - "modelAsString": true, - "values": [ + "name": "bfy", + "value": "bfy", + "description": "Bagheli" + }, { - "value": "none", - "name": "None", - "description": "No masking occurs and the maskedText output will not be returned." + "name": "eu", + "value": "eu", + "description": "Basque" }, { - "value": "replace", - "name": "Replace", - "description": "Replaces the detected entities with the character given in the maskingCharacter parameter. The character will be repeated to the length of the detected entity so that the offsets will correctly correspond to both the input text as well as the output maskedText." - } - ] - }, - "description": "A string indicating what maskingMode to use to mask the personal information detected in the input text." - }, - "SentimentSkillLanguage": { - "type": "string", - "enum": [ - "da", - "nl", - "en", - "fi", - "fr", - "de", - "el", - "it", - "no", - "pl", - "pt-PT", - "ru", - "es", - "sv", - "tr" - ], - "x-ms-enum": { - "name": "SentimentSkillLanguage", - "modelAsString": true, - "values": [ + "name": "be", + "value": "be", + "description": "Belarusian (Cyrillic and Latin)" + }, { - "value": "da", - "description": "Danish" + "name": "be-cyrl", + "value": "be-cyrl", + "description": "Belarusian (Cyrillic)" }, { - "value": "nl", - "description": "Dutch" + "name": "be-latn", + "value": "be-latn", + "description": "Belarusian (Latin)" }, { - "value": "en", - "description": "English" + "name": "bho", + "value": "bho", + "description": "Bhojpuri-Hindi (Devanagiri)" }, { - "value": "fi", - "description": "Finnish" + "name": "bi", + "value": "bi", + "description": "Bislama" }, { - "value": "fr", - "description": "French" + "name": "brx", + "value": "brx", + "description": "Bodo (Devanagiri)" }, { - "value": "de", - "description": "German" + "name": "bs", + "value": "bs", + "description": "Bosnian Latin" }, { - "value": "el", - "description": "Greek" + "name": "bra", + "value": "bra", + "description": "Brajbha" }, { - "value": "it", - "description": "Italian" + "name": "br", + "value": "br", + "description": "Breton" }, { - "value": "no", - "description": "Norwegian (Bokmaal)" + "name": "bg", + "value": "bg", + "description": "Bulgarian" }, { - "value": "pl", - "description": "Polish" + "name": "bns", + "value": "bns", + "description": "Bundeli" }, { - "value": "pt-PT", - "description": "Portuguese (Portugal)" + "name": "bua", + "value": "bua", + "description": "Buryat (Cyrillic)" }, { - "value": "ru", - "description": "Russian" + "name": "ca", + "value": "ca", + "description": "Catalan" }, { - "value": "es", - "description": "Spanish" + "name": "ceb", + "value": "ceb", + "description": "Cebuano" }, { - "value": "sv", - "description": "Swedish" + "name": "rab", + "value": "rab", + "description": "Chamling" }, { - "value": "tr", - "description": "Turkish" - } - ] - }, - "description": "Deprecated. The language codes supported for input text by SentimentSkill.", - "x-az-search-deprecated": true - }, - "KeyPhraseExtractionSkillLanguage": { - "type": "string", - "enum": [ - "da", - "nl", - "en", - "fi", - "fr", - "de", - "it", - "ja", - "ko", - "no", - "pl", - "pt-PT", - "pt-BR", - "ru", - "es", - "sv" - ], - "x-ms-enum": { - "name": "KeyPhraseExtractionSkillLanguage", - "modelAsString": true, - "values": [ + "name": "ch", + "value": "ch", + "description": "Chamorro" + }, + { + "name": "hne", + "value": "hne", + "description": "Chhattisgarhi (Devanagiri)" + }, + { + "name": "zh-Hans", + "value": "zh-Hans", + "description": "Chinese Simplified" + }, + { + "name": "zh-Hant", + "value": "zh-Hant", + "description": "Chinese Traditional" + }, + { + "name": "kw", + "value": "kw", + "description": "Cornish" + }, + { + "name": "co", + "value": "co", + "description": "Corsican" + }, + { + "name": "crh", + "value": "crh", + "description": "Crimean Tatar (Latin)" + }, + { + "name": "hr", + "value": "hr", + "description": "Croatian" + }, + { + "name": "cs", + "value": "cs", + "description": "Czech" + }, { + "name": "da", "value": "da", "description": "Danish" }, { + "name": "prs", + "value": "prs", + "description": "Dari" + }, + { + "name": "dhi", + "value": "dhi", + "description": "Dhimal (Devanagiri)" + }, + { + "name": "doi", + "value": "doi", + "description": "Dogri (Devanagiri)" + }, + { + "name": "nl", "value": "nl", "description": "Dutch" }, { + "name": "en", "value": "en", "description": "English" }, { + "name": "myv", + "value": "myv", + "description": "Erzya (Cyrillic)" + }, + { + "name": "et", + "value": "et", + "description": "Estonian" + }, + { + "name": "fo", + "value": "fo", + "description": "Faroese" + }, + { + "name": "fj", + "value": "fj", + "description": "Fijian" + }, + { + "name": "fil", + "value": "fil", + "description": "Filipino" + }, + { + "name": "fi", "value": "fi", "description": "Finnish" }, { + "name": "fr", "value": "fr", "description": "French" }, { - "value": "de", - "description": "German" + "name": "fur", + "value": "fur", + "description": "Frulian" }, { - "value": "it", - "description": "Italian" + "name": "gag", + "value": "gag", + "description": "Gagauz (Latin)" }, { - "value": "ja", - "description": "Japanese" + "name": "gl", + "value": "gl", + "description": "Galician" }, { - "value": "ko", - "description": "Korean" + "name": "de", + "value": "de", + "description": "German" }, { - "value": "no", - "description": "Norwegian (Bokmaal)" + "name": "gil", + "value": "gil", + "description": "Gilbertese" }, { - "value": "pl", - "description": "Polish" + "name": "gon", + "value": "gon", + "description": "Gondi (Devanagiri)" }, { - "value": "pt-PT", - "description": "Portuguese (Portugal)" + "name": "el", + "value": "el", + "description": "Greek" }, { - "value": "pt-BR", - "description": "Portuguese (Brazil)" + "name": "kl", + "value": "kl", + "description": "Greenlandic" }, { - "value": "ru", - "description": "Russian" + "name": "gvr", + "value": "gvr", + "description": "Gurung (Devanagiri)" }, { - "value": "es", - "description": "Spanish" + "name": "ht", + "value": "ht", + "description": "Haitian Creole" }, { - "value": "sv", - "description": "Swedish" - } - ] - }, - "description": "The language codes supported for input text by KeyPhraseExtractionSkill." - }, - "OcrSkillLanguage": { - "type": "string", - "enum": [ - "af", - "sq", - "anp", - "ar", - "ast", - "awa", - "az", - "bfy", - "eu", - "be", - "be-cyrl", - "be-latn", - "bho", - "bi", - "brx", - "bs", - "bra", - "br", - "bg", - "bns", - "bua", - "ca", - "ceb", - "rab", - "ch", - "hne", - "zh-Hans", - "zh-Hant", - "kw", - "co", - "crh", - "hr", - "cs", - "da", - "prs", - "dhi", - "doi", - "nl", - "en", - "myv", - "et", - "fo", - "fj", - "fil", - "fi", - "fr", - "fur", - "gag", - "gl", - "de", - "gil", - "gon", - "el", - "kl", - "gvr", - "ht", - "hlb", - "hni", - "bgc", - "haw", - "hi", - "mww", - "hoc", - "hu", - "is", - "smn", - "id", - "ia", - "iu", - "ga", - "it", - "ja", - "Jns", - "jv", - "kea", - "kac", - "xnr", - "krc", - "kaa-cyrl", - "kaa", - "csb", - "kk-cyrl", - "kk-latn", - "klr", - "kha", - "quc", - "ko", - "kfq", - "kpy", - "kos", - "kum", - "ku-arab", - "ku-latn", - "kru", - "ky", - "lkt", - "la", - "lt", - "dsb", - "smj", - "lb", - "bfz", - "ms", - "mt", - "kmj", - "gv", - "mi", - "mr", - "mn", - "cnr-cyrl", - "cnr-latn", - "nap", - "ne", - "niu", - "nog", - "sme", - "nb", - "no", - "oc", - "os", - "ps", - "fa", - "pl", - "pt", - "pa", - "ksh", - "ro", - "rm", - "ru", - "sck", - "sm", - "sa", - "sat", - "sco", - "gd", - "sr", - "sr-Cyrl", - "sr-Latn", - "xsr", - "srx", - "sms", - "sk", - "sl", - "so", - "sma", - "es", - "sw", - "sv", - "tg", - "tt", - "tet", - "thf", - "to", - "tr", - "tk", - "tyv", - "hsb", - "ur", - "ug", - "uz-arab", - "uz-cyrl", - "uz", - "vo", - "wae", - "cy", - "fy", - "yua", - "za", - "zu", - "unk" - ], - "x-ms-enum": { - "name": "OcrSkillLanguage", - "modelAsString": true, - "values": [ - { - "value": "af", - "description": "Afrikaans" + "name": "hlb", + "value": "hlb", + "description": "Halbi (Devanagiri)" }, { - "value": "sq", - "description": "Albanian" + "name": "hni", + "value": "hni", + "description": "Hani" }, { - "value": "anp", - "description": "Angika (Devanagiri)" + "name": "bgc", + "value": "bgc", + "description": "Haryanvi" }, { - "value": "ar", - "description": "Arabic" + "name": "haw", + "value": "haw", + "description": "Hawaiian" }, { - "value": "ast", - "description": "Asturian" + "name": "hi", + "value": "hi", + "description": "Hindi" }, { - "value": "awa", - "description": "Awadhi-Hindi (Devanagiri)" + "name": "mww", + "value": "mww", + "description": "Hmong Daw (Latin)" }, { - "value": "az", - "description": "Azerbaijani (Latin)" + "name": "hoc", + "value": "hoc", + "description": "Ho (Devanagiri)" }, { - "value": "bfy", - "description": "Bagheli" + "name": "hu", + "value": "hu", + "description": "Hungarian" }, { - "value": "eu", - "description": "Basque" + "name": "is", + "value": "is", + "description": "Icelandic" }, { - "value": "be", - "description": "Belarusian (Cyrillic and Latin)" + "name": "smn", + "value": "smn", + "description": "Inari Sami" }, { - "value": "be-cyrl", - "description": "Belarusian (Cyrillic)" + "name": "id", + "value": "id", + "description": "Indonesian" }, { - "value": "be-latn", - "description": "Belarusian (Latin)" + "name": "ia", + "value": "ia", + "description": "Interlingua" }, { - "value": "bho", - "description": "Bhojpuri-Hindi (Devanagiri)" + "name": "iu", + "value": "iu", + "description": "Inuktitut (Latin)" }, { - "value": "bi", - "description": "Bislama" + "name": "ga", + "value": "ga", + "description": "Irish" }, { - "value": "brx", - "description": "Bodo (Devanagiri)" + "name": "it", + "value": "it", + "description": "Italian" }, { - "value": "bs", - "description": "Bosnian Latin" + "name": "ja", + "value": "ja", + "description": "Japanese" }, { - "value": "bra", - "description": "Brajbha" + "name": "Jns", + "value": "Jns", + "description": "Jaunsari (Devanagiri)" }, { - "value": "br", - "description": "Breton" + "name": "jv", + "value": "jv", + "description": "Javanese" }, { - "value": "bg", - "description": "Bulgarian" - }, - { - "value": "bns", - "description": "Bundeli" - }, - { - "value": "bua", - "description": "Buryat (Cyrillic)" - }, - { - "value": "ca", - "description": "Catalan" - }, - { - "value": "ceb", - "description": "Cebuano" - }, - { - "value": "rab", - "description": "Chamling" - }, - { - "value": "ch", - "description": "Chamorro" - }, - { - "value": "hne", - "description": "Chhattisgarhi (Devanagiri)" - }, - { - "value": "zh-Hans", - "description": "Chinese Simplified" - }, - { - "value": "zh-Hant", - "description": "Chinese Traditional" - }, - { - "value": "kw", - "description": "Cornish" - }, - { - "value": "co", - "description": "Corsican" - }, - { - "value": "crh", - "description": "Crimean Tatar (Latin)" - }, - { - "value": "hr", - "description": "Croatian" - }, - { - "value": "cs", - "description": "Czech" - }, - { - "value": "da", - "description": "Danish" - }, - { - "value": "prs", - "description": "Dari" - }, - { - "value": "dhi", - "description": "Dhimal (Devanagiri)" - }, - { - "value": "doi", - "description": "Dogri (Devanagiri)" - }, - { - "value": "nl", - "description": "Dutch" - }, - { - "value": "en", - "description": "English" - }, - { - "value": "myv", - "description": "Erzya (Cyrillic)" - }, - { - "value": "et", - "description": "Estonian" - }, - { - "value": "fo", - "description": "Faroese" - }, - { - "value": "fj", - "description": "Fijian" - }, - { - "value": "fil", - "description": "Filipino" - }, - { - "value": "fi", - "description": "Finnish" - }, - { - "value": "fr", - "description": "French" - }, - { - "value": "fur", - "description": "Frulian" - }, - { - "value": "gag", - "description": "Gagauz (Latin)" - }, - { - "value": "gl", - "description": "Galician" - }, - { - "value": "de", - "description": "German" - }, - { - "value": "gil", - "description": "Gilbertese" - }, - { - "value": "gon", - "description": "Gondi (Devanagiri)" - }, - { - "value": "el", - "description": "Greek" - }, - { - "value": "kl", - "description": "Greenlandic" - }, - { - "value": "gvr", - "description": "Gurung (Devanagiri)" - }, - { - "value": "ht", - "description": "Haitian Creole" - }, - { - "value": "hlb", - "description": "Halbi (Devanagiri)" - }, - { - "value": "hni", - "description": "Hani" - }, - { - "value": "bgc", - "description": "Haryanvi" - }, - { - "value": "haw", - "description": "Hawaiian" - }, - { - "value": "hi", - "description": "Hindi" - }, - { - "value": "mww", - "description": "Hmong Daw (Latin)" - }, - { - "value": "hoc", - "description": "Ho (Devanagiri)" - }, - { - "value": "hu", - "description": "Hungarian" - }, - { - "value": "is", - "description": "Icelandic" - }, - { - "value": "smn", - "description": "Inari Sami" - }, - { - "value": "id", - "description": "Indonesian" - }, - { - "value": "ia", - "description": "Interlingua" - }, - { - "value": "iu", - "description": "Inuktitut (Latin)" - }, - { - "value": "ga", - "description": "Irish" - }, - { - "value": "it", - "description": "Italian" - }, - { - "value": "ja", - "description": "Japanese" - }, - { - "value": "Jns", - "description": "Jaunsari (Devanagiri)" - }, - { - "value": "jv", - "description": "Javanese" - }, - { - "value": "kea", - "description": "Kabuverdianu" + "name": "kea", + "value": "kea", + "description": "Kabuverdianu" }, { + "name": "kac", "value": "kac", "description": "Kachin (Latin)" }, { + "name": "xnr", "value": "xnr", "description": "Kangri (Devanagiri)" }, { + "name": "krc", "value": "krc", "description": "Karachay-Balkar" }, { + "name": "kaa-cyrl", "value": "kaa-cyrl", "description": "Kara-Kalpak (Cyrillic)" }, { + "name": "kaa", "value": "kaa", "description": "Kara-Kalpak (Latin)" }, { + "name": "csb", "value": "csb", "description": "Kashubian" }, { + "name": "kk-cyrl", "value": "kk-cyrl", "description": "Kazakh (Cyrillic)" }, { + "name": "kk-latn", "value": "kk-latn", "description": "Kazakh (Latin)" }, { + "name": "klr", "value": "klr", "description": "Khaling" }, { + "name": "kha", "value": "kha", "description": "Khasi" }, { + "name": "quc", "value": "quc", "description": "K'iche'" }, { + "name": "ko", "value": "ko", "description": "Korean" }, { + "name": "kfq", "value": "kfq", "description": "Korku" }, { + "name": "kpy", "value": "kpy", "description": "Koryak" }, { + "name": "kos", "value": "kos", "description": "Kosraean" }, { + "name": "kum", "value": "kum", "description": "Kumyk (Cyrillic)" }, { + "name": "ku-arab", "value": "ku-arab", "description": "Kurdish (Arabic)" }, { + "name": "ku-latn", "value": "ku-latn", "description": "Kurdish (Latin)" }, { + "name": "kru", "value": "kru", "description": "Kurukh (Devanagiri)" }, { + "name": "ky", "value": "ky", "description": "Kyrgyz (Cyrillic)" }, { + "name": "lkt", "value": "lkt", "description": "Lakota" }, { + "name": "la", "value": "la", "description": "Latin" }, { + "name": "lt", "value": "lt", "description": "Lithuanian" }, { + "name": "dsb", "value": "dsb", "description": "Lower Sorbian" }, { + "name": "smj", "value": "smj", "description": "Lule Sami" }, { + "name": "lb", "value": "lb", "description": "Luxembourgish" }, { + "name": "bfz", "value": "bfz", "description": "Mahasu Pahari (Devanagiri)" }, { + "name": "ms", "value": "ms", "description": "Malay (Latin)" }, { + "name": "mt", "value": "mt", "description": "Maltese" }, { + "name": "kmj", "value": "kmj", "description": "Malto (Devanagiri)" }, { + "name": "gv", "value": "gv", "description": "Manx" }, { + "name": "mi", "value": "mi", "description": "Maori" }, { + "name": "mr", "value": "mr", "description": "Marathi" }, { + "name": "mn", "value": "mn", "description": "Mongolian (Cyrillic)" }, { + "name": "cnr-cyrl", "value": "cnr-cyrl", "description": "Montenegrin (Cyrillic)" }, { + "name": "cnr-latn", "value": "cnr-latn", "description": "Montenegrin (Latin)" }, { + "name": "nap", "value": "nap", "description": "Neapolitan" }, { + "name": "ne", "value": "ne", "description": "Nepali" }, { + "name": "niu", "value": "niu", "description": "Niuean" }, { + "name": "nog", "value": "nog", "description": "Nogay" }, { + "name": "sme", "value": "sme", "description": "Northern Sami (Latin)" }, { + "name": "nb", "value": "nb", "description": "Norwegian" }, { + "name": "no", "value": "no", "description": "Norwegian" }, { + "name": "oc", "value": "oc", "description": "Occitan" }, { + "name": "os", "value": "os", "description": "Ossetic" }, { + "name": "ps", "value": "ps", "description": "Pashto" }, { + "name": "fa", "value": "fa", "description": "Persian" }, { + "name": "pl", "value": "pl", "description": "Polish" }, { + "name": "pt", "value": "pt", "description": "Portuguese" }, { + "name": "pa", "value": "pa", "description": "Punjabi (Arabic)" }, { + "name": "ksh", "value": "ksh", "description": "Ripuarian" }, { + "name": "ro", "value": "ro", "description": "Romanian" }, { + "name": "rm", "value": "rm", "description": "Romansh" }, { + "name": "ru", "value": "ru", "description": "Russian" }, { + "name": "sck", "value": "sck", "description": "Sadri (Devanagiri)" }, { + "name": "sm", "value": "sm", "description": "Samoan (Latin)" }, { + "name": "sa", "value": "sa", "description": "Sanskrit (Devanagiri)" }, { + "name": "sat", "value": "sat", "description": "Santali (Devanagiri)" }, { + "name": "sco", "value": "sco", "description": "Scots" }, { + "name": "gd", "value": "gd", "description": "Scottish Gaelic" }, { + "name": "sr", "value": "sr", "description": "Serbian (Latin)" }, { + "name": "sr-Cyrl", "value": "sr-Cyrl", "description": "Serbian (Cyrillic)" }, { + "name": "sr-Latn", "value": "sr-Latn", "description": "Serbian (Latin)" }, { + "name": "xsr", "value": "xsr", "description": "Sherpa (Devanagiri)" }, { + "name": "srx", "value": "srx", "description": "Sirmauri (Devanagiri)" }, { + "name": "sms", "value": "sms", "description": "Skolt Sami" }, { + "name": "sk", "value": "sk", "description": "Slovak" }, { + "name": "sl", "value": "sl", "description": "Slovenian" }, { + "name": "so", "value": "so", "description": "Somali (Arabic)" }, { + "name": "sma", "value": "sma", "description": "Southern Sami" }, { + "name": "es", "value": "es", "description": "Spanish" }, { + "name": "sw", "value": "sw", "description": "Swahili (Latin)" }, { + "name": "sv", "value": "sv", "description": "Swedish" }, { + "name": "tg", "value": "tg", "description": "Tajik (Cyrillic)" }, { + "name": "tt", "value": "tt", "description": "Tatar (Latin)" }, { + "name": "tet", "value": "tet", "description": "Tetum" }, { + "name": "thf", "value": "thf", "description": "Thangmi" }, { + "name": "to", "value": "to", "description": "Tongan" }, { + "name": "tr", "value": "tr", "description": "Turkish" }, { + "name": "tk", "value": "tk", "description": "Turkmen (Latin)" }, { + "name": "tyv", "value": "tyv", "description": "Tuvan" }, { + "name": "hsb", "value": "hsb", "description": "Upper Sorbian" }, { + "name": "ur", "value": "ur", "description": "Urdu" }, { + "name": "ug", "value": "ug", "description": "Uyghur (Arabic)" }, { + "name": "uz-arab", "value": "uz-arab", "description": "Uzbek (Arabic)" }, { + "name": "uz-cyrl", "value": "uz-cyrl", "description": "Uzbek (Cyrillic)" }, { + "name": "uz", "value": "uz", "description": "Uzbek (Latin)" }, { + "name": "vo", "value": "vo", "description": "Volapük" }, { + "name": "wae", "value": "wae", "description": "Walser" }, { + "name": "cy", "value": "cy", "description": "Welsh" }, { + "name": "fy", "value": "fy", "description": "Western Frisian" }, { + "name": "yua", "value": "yua", "description": "Yucatec Maya" }, { + "name": "za", "value": "za", "description": "Zhuang" }, { + "name": "zu", "value": "zu", "description": "Zulu" }, { + "name": "unk", "value": "unk", "description": "Unknown (All)" } ] + } + }, + "OutputFieldMappingEntry": { + "type": "object", + "description": "Output field mapping for a skill.", + "properties": { + "name": { + "type": "string", + "description": "The name of the output defined by the skill." + }, + "targetName": { + "type": "string", + "description": "The target name of the output. It is optional and default to name." + } }, - "description": "The language codes supported for input by OcrSkill." + "required": [ + "name" + ] }, - "OcrSkillLineEnding": { - "type": "string", - "enum": [ - "space", - "carriageReturn", - "lineFeed", - "carriageReturnLineFeed" - ], - "x-ms-enum": { - "name": "LineEnding", - "modelAsString": true, - "values": [ - { - "value": "space", - "name": "Space", - "description": "Lines are separated by a single space character." - }, - { - "value": "carriageReturn", - "name": "CarriageReturn", - "description": "Lines are separated by a carriage return ('\\r') character." - }, - { - "value": "lineFeed", - "name": "LineFeed", - "description": "Lines are separated by a single line feed ('\\n') character." - }, - { - "value": "carriageReturnLineFeed", - "name": "CarriageReturnLineFeed", - "description": "Lines are separated by a carriage return and a line feed ('\\r\\n') character." + "PIIDetectionSkill": { + "type": "object", + "description": "Using the Text Analytics API, extracts personal information from an input text and gives you the option of masking it.", + "properties": { + "defaultLanguageCode": { + "type": "string", + "description": "A value indicating which language code to use. Default is `en`.", + "x-nullable": true + }, + "minimumPrecision": { + "type": "number", + "format": "double", + "description": "A value between 0 and 1 that be used to only include entities whose confidence score is greater than the value specified. If not set (default), or if explicitly set to null, all entities will be included.", + "minimum": 0, + "maximum": 1 + }, + "maskingMode": { + "$ref": "#/definitions/PIIDetectionSkillMaskingMode", + "description": "A parameter that provides various ways to mask the personal information detected in the input text. Default is 'none'." + }, + "maskingCharacter": { + "type": "string", + "description": "The character used to mask the text if the maskingMode parameter is set to replace. Default is '*'.", + "maxLength": 1 + }, + "modelVersion": { + "type": "string", + "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.", + "x-nullable": true + }, + "piiCategories": { + "type": "array", + "description": "A list of PII entity categories that should be extracted and masked.", + "items": { + "type": "string" } - ] + }, + "domain": { + "type": "string", + "description": "If specified, will set the PII domain to include only a subset of the entity categories. Possible values include: 'phi', 'none'. Default is 'none'.", + "x-nullable": true + } }, - "description": "Defines the sequence of characters to use between the lines of text recognized by the OCR skill. The default value is \"space\"." + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.PIIDetectionSkill" }, - "SplitSkillLanguage": { + "PIIDetectionSkillMaskingMode": { "type": "string", + "description": "A string indicating what maskingMode to use to mask the personal information detected in the input text.", "enum": [ - "am", - "bs", - "cs", - "da", - "de", - "en", - "es", - "et", - "fi", - "fr", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "ja", - "ko", - "lv", - "nb", - "nl", - "pl", - "pt", - "pt-br", - "ru", - "sk", - "sl", - "sr", - "sv", - "tr", - "ur", - "zh" + "none", + "replace" ], "x-ms-enum": { - "name": "SplitSkillLanguage", + "name": "PIIDetectionSkillMaskingMode", "modelAsString": true, "values": [ { - "value": "am", - "description": "Amharic" - }, - { - "value": "bs", - "description": "Bosnian" - }, - { - "value": "cs", - "description": "Czech" - }, - { - "value": "da", - "description": "Danish" - }, - { - "value": "de", - "description": "German" - }, - { - "value": "en", - "description": "English" - }, - { - "value": "es", - "description": "Spanish" - }, - { - "value": "et", - "description": "Estonian" - }, - { - "value": "fi", - "description": "Finnish" - }, - { - "value": "fr", - "description": "French" - }, - { - "value": "he", - "description": "Hebrew" - }, - { - "value": "hi", - "description": "Hindi" - }, - { - "value": "hr", - "description": "Croatian" - }, - { - "value": "hu", - "description": "Hungarian" - }, - { - "value": "id", - "description": "Indonesian" - }, - { - "value": "is", - "description": "Icelandic" - }, - { - "value": "it", - "description": "Italian" - }, - { - "value": "ja", - "description": "Japanese" - }, - { - "value": "ko", - "description": "Korean" - }, - { - "value": "lv", - "description": "Latvian" - }, - { - "value": "nb", - "description": "Norwegian" - }, - { - "value": "nl", - "description": "Dutch" - }, - { - "value": "pl", - "description": "Polish" - }, - { - "value": "pt", - "description": "Portuguese (Portugal)" - }, - { - "value": "pt-br", - "description": "Portuguese (Brazil)" - }, - { - "value": "ru", - "description": "Russian" - }, - { - "value": "sk", - "description": "Slovak" - }, - { - "value": "sl", - "description": "Slovenian" - }, - { - "value": "sr", - "description": "Serbian" - }, - { - "value": "sv", - "description": "Swedish" - }, - { - "value": "tr", - "description": "Turkish" - }, - { - "value": "ur", - "description": "Urdu" + "name": "None", + "value": "none", + "description": "No masking occurs and the maskedText output will not be returned." }, { - "value": "zh", - "description": "Chinese (Simplified)" + "name": "Replace", + "value": "replace", + "description": "Replaces the detected entities with the character given in the maskingCharacter parameter. The character will be repeated to the length of the detected entity so that the offsets will correctly correspond to both the input text as well as the output maskedText." } ] + } + }, + "PathHierarchyTokenizerV2": { + "type": "object", + "description": "Tokenizer for path-like hierarchies. This tokenizer is implemented using Apache Lucene.", + "properties": { + "delimiter": { + "type": "string", + "description": "The delimiter character to use. Default is \"/\".", + "default": "/", + "maxLength": 1 + }, + "replacement": { + "type": "string", + "description": "A value that, if set, replaces the delimiter character. Default is \"/\".", + "default": "/", + "maxLength": 1 + }, + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Default and maximum is 300.", + "default": 300, + "maximum": 300 + }, + "reverse": { + "type": "boolean", + "description": "A value indicating whether to generate tokens in reverse order. Default is false.", + "default": false + }, + "skip": { + "type": "integer", + "format": "int32", + "description": "The number of initial tokens to skip. Default is 0.", + "default": 0 + } }, - "description": "The language codes supported for input text by SplitSkill." + "allOf": [ + { + "$ref": "#/definitions/LexicalTokenizer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PathHierarchyTokenizerV2" }, - "CustomEntityLookupSkillLanguage": { - "type": "string", - "enum": [ - "da", - "de", - "en", - "es", - "fi", - "fr", - "it", - "ko", - "pt" + "PatternAnalyzer": { + "type": "object", + "description": "Flexibly separates text into terms via a regular expression pattern. This analyzer is implemented using Apache Lucene.", + "properties": { + "lowercase": { + "type": "boolean", + "description": "A value indicating whether terms should be lower-cased. Default is true.", + "default": true + }, + "pattern": { + "type": "string", + "description": "A regular expression pattern to match token separators. Default is an expression that matches one or more non-word characters.", + "default": "\\W+" + }, + "flags": { + "$ref": "#/definitions/RegexFlags", + "type": "string", + "format": "ArrayEncoding.pipeDelimited", + "description": "Regular expression flags." + }, + "stopwords": { + "type": "array", + "description": "A list of stopwords.", + "items": { + "type": "string" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/LexicalAnalyzer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternAnalyzer" + }, + "PatternCaptureTokenFilter": { + "type": "object", + "description": "Uses Java regexes to emit multiple tokens - one for each capture group in one or more patterns. This token filter is implemented using Apache Lucene.", + "properties": { + "patterns": { + "type": "array", + "description": "A list of patterns to match against each token.", + "items": { + "type": "string" + } + }, + "preserveOriginal": { + "type": "boolean", + "description": "A value indicating whether to return the original token even if one of the patterns matches. Default is true.", + "default": true + } + }, + "required": [ + "patterns" + ], + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternCaptureTokenFilter" + }, + "PatternReplaceCharFilter": { + "type": "object", + "description": "A character filter that replaces characters in the input string. It uses a regular expression to identify character sequences to preserve and a replacement pattern to identify characters to replace. For example, given the input text \"aa bb aa bb\", pattern \"(aa)\\s+(bb)\", and replacement \"$1#$2\", the result would be \"aa#bb aa#bb\". This character filter is implemented using Apache Lucene.", + "properties": { + "pattern": { + "type": "string", + "description": "A regular expression pattern." + }, + "replacement": { + "type": "string", + "description": "The replacement text." + } + }, + "required": [ + "pattern", + "replacement" + ], + "allOf": [ + { + "$ref": "#/definitions/CharFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternReplaceCharFilter" + }, + "PatternReplaceTokenFilter": { + "type": "object", + "description": "A character filter that replaces characters in the input string. It uses a regular expression to identify character sequences to preserve and a replacement pattern to identify characters to replace. For example, given the input text \"aa bb aa bb\", pattern \"(aa)\\s+(bb)\", and replacement \"$1#$2\", the result would be \"aa#bb aa#bb\". This token filter is implemented using Apache Lucene.", + "properties": { + "pattern": { + "type": "string", + "description": "A regular expression pattern." + }, + "replacement": { + "type": "string", + "description": "The replacement text." + } + }, + "required": [ + "pattern", + "replacement" + ], + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternReplaceTokenFilter" + }, + "PatternTokenizer": { + "type": "object", + "description": "Tokenizer that uses regex pattern matching to construct distinct tokens. This tokenizer is implemented using Apache Lucene.", + "properties": { + "pattern": { + "type": "string", + "description": "A regular expression pattern to match token separators. Default is an expression that matches one or more non-word characters.", + "default": "\\W+" + }, + "flags": { + "$ref": "#/definitions/RegexFlags", + "description": "Regular expression flags." + }, + "group": { + "type": "integer", + "format": "int32", + "description": "The zero-based ordinal of the matching group in the regular expression pattern to extract into tokens. Use -1 if you want to use the entire pattern to split the input into tokens, irrespective of matching groups. Default is -1.", + "default": -1 + } + }, + "allOf": [ + { + "$ref": "#/definitions/LexicalTokenizer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PatternTokenizer" + }, + "PermissionFilter": { + "type": "string", + "description": "A value indicating whether the field should be used as a permission filter.", + "enum": [ + "userIds", + "groupIds", + "rbacScope" ], "x-ms-enum": { - "name": "CustomEntityLookupSkillLanguage", + "name": "PermissionFilter", "modelAsString": true, "values": [ { - "value": "da", - "description": "Danish" - }, - { - "value": "de", - "description": "German" - }, - { - "value": "en", - "description": "English" - }, - { - "value": "es", - "description": "Spanish" - }, - { - "value": "fi", - "description": "Finnish" - }, - { - "value": "fr", - "description": "French" - }, - { - "value": "it", - "description": "Italian" + "name": "UserIds", + "value": "userIds", + "description": "Field represents user IDs that should be used to filter document access on queries." }, { - "value": "ko", - "description": "Korean" + "name": "GroupIds", + "value": "groupIds", + "description": "Field represents group IDs that should be used to filter document access on queries." }, { - "value": "pt", - "description": "Portuguese" + "name": "RbacScope", + "value": "rbacScope", + "description": "Field represents an RBAC scope that should be used to filter document access on queries." } ] - }, - "description": "The language codes supported for input text by CustomEntityLookupSkill." + } }, - "EntityRecognitionSkillLanguage": { + "PhoneticEncoder": { "type": "string", + "description": "Identifies the type of phonetic encoder to use with a PhoneticTokenFilter.", "enum": [ - "ar", - "cs", - "zh-Hans", - "zh-Hant", - "da", - "nl", - "en", - "fi", - "fr", - "de", - "el", - "hu", - "it", - "ja", - "ko", - "no", - "pl", - "pt-PT", - "pt-BR", - "ru", - "es", - "sv", - "tr" + "metaphone", + "doubleMetaphone", + "soundex", + "refinedSoundex", + "caverphone1", + "caverphone2", + "cologne", + "nysiis", + "koelnerPhonetik", + "haasePhonetik", + "beiderMorse" ], "x-ms-enum": { - "name": "EntityRecognitionSkillLanguage", + "name": "PhoneticEncoder", "modelAsString": true, "values": [ { - "value": "ar", - "description": "Arabic" + "name": "Metaphone", + "value": "metaphone", + "description": "Encodes a token into a Metaphone value." }, { - "value": "cs", - "description": "Czech" + "name": "DoubleMetaphone", + "value": "doubleMetaphone", + "description": "Encodes a token into a double metaphone value." }, { - "value": "zh-Hans", - "description": "Chinese-Simplified" + "name": "Soundex", + "value": "soundex", + "description": "Encodes a token into a Soundex value." }, { - "value": "zh-Hant", - "description": "Chinese-Traditional" + "name": "RefinedSoundex", + "value": "refinedSoundex", + "description": "Encodes a token into a Refined Soundex value." }, { - "value": "da", - "description": "Danish" + "name": "Caverphone1", + "value": "caverphone1", + "description": "Encodes a token into a Caverphone 1.0 value." }, { - "value": "nl", - "description": "Dutch" + "name": "Caverphone2", + "value": "caverphone2", + "description": "Encodes a token into a Caverphone 2.0 value." }, { - "value": "en", - "description": "English" + "name": "Cologne", + "value": "cologne", + "description": "Encodes a token into a Cologne Phonetic value." }, { - "value": "fi", - "description": "Finnish" + "name": "Nysiis", + "value": "nysiis", + "description": "Encodes a token into a NYSIIS value." }, { - "value": "fr", - "description": "French" + "name": "KoelnerPhonetik", + "value": "koelnerPhonetik", + "description": "Encodes a token using the Kölner Phonetik algorithm." }, { - "value": "de", - "description": "German" - }, - { - "value": "el", - "description": "Greek" - }, - { - "value": "hu", - "description": "Hungarian" + "name": "HaasePhonetik", + "value": "haasePhonetik", + "description": "Encodes a token using the Haase refinement of the Kölner Phonetik algorithm." }, { - "value": "it", - "description": "Italian" - }, + "name": "BeiderMorse", + "value": "beiderMorse", + "description": "Encodes a token into a Beider-Morse value." + } + ] + } + }, + "PhoneticTokenFilter": { + "type": "object", + "description": "Create tokens for phonetic matches. This token filter is implemented using Apache Lucene.", + "properties": { + "encoder": { + "type": "string", + "description": "The phonetic encoder to use. Default is \"metaphone\".", + "default": "metaphone", + "enum": [ + "metaphone", + "doubleMetaphone", + "soundex", + "refinedSoundex", + "caverphone1", + "caverphone2", + "cologne", + "nysiis", + "koelnerPhonetik", + "haasePhonetik", + "beiderMorse" + ], + "x-ms-enum": { + "name": "PhoneticEncoder", + "modelAsString": true, + "values": [ + { + "name": "Metaphone", + "value": "metaphone", + "description": "Encodes a token into a Metaphone value." + }, + { + "name": "DoubleMetaphone", + "value": "doubleMetaphone", + "description": "Encodes a token into a double metaphone value." + }, + { + "name": "Soundex", + "value": "soundex", + "description": "Encodes a token into a Soundex value." + }, + { + "name": "RefinedSoundex", + "value": "refinedSoundex", + "description": "Encodes a token into a Refined Soundex value." + }, + { + "name": "Caverphone1", + "value": "caverphone1", + "description": "Encodes a token into a Caverphone 1.0 value." + }, + { + "name": "Caverphone2", + "value": "caverphone2", + "description": "Encodes a token into a Caverphone 2.0 value." + }, + { + "name": "Cologne", + "value": "cologne", + "description": "Encodes a token into a Cologne Phonetic value." + }, + { + "name": "Nysiis", + "value": "nysiis", + "description": "Encodes a token into a NYSIIS value." + }, + { + "name": "KoelnerPhonetik", + "value": "koelnerPhonetik", + "description": "Encodes a token using the Kölner Phonetik algorithm." + }, + { + "name": "HaasePhonetik", + "value": "haasePhonetik", + "description": "Encodes a token using the Haase refinement of the Kölner Phonetik algorithm." + }, + { + "name": "BeiderMorse", + "value": "beiderMorse", + "description": "Encodes a token into a Beider-Morse value." + } + ] + } + }, + "replace": { + "type": "boolean", + "description": "A value indicating whether encoded tokens should replace original tokens. If false, encoded tokens are added as synonyms. Default is true.", + "default": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.PhoneticTokenFilter" + }, + "QueryAnswerResult": { + "type": "object", + "description": "An answer is a text passage extracted from the contents of the most relevant documents that matched the query. Answers are extracted from the top search results. Answer candidates are scored and the top answers are selected.", + "properties": { + "score": { + "type": "number", + "format": "double", + "description": "The score value represents how relevant the answer is to the query relative to other answers returned for the query.", + "readOnly": true + }, + "key": { + "type": "string", + "description": "The key of the document the answer was extracted from.", + "readOnly": true + }, + "text": { + "type": "string", + "description": "The text passage extracted from the document contents as the answer.", + "readOnly": true + }, + "highlights": { + "type": "string", + "description": "Same text passage as in the Text property with highlighted text phrases most relevant to the query.", + "x-nullable": true, + "readOnly": true + } + }, + "additionalProperties": {} + }, + "QueryAnswerType": { + "type": "string", + "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns answers extracted from key passages in the highest ranked documents. The number of answers returned can be configured by appending the pipe character `|` followed by the `count-` option after the answers parameter value, such as `extractive|count-3`. Default count is 1. The confidence threshold can be configured by appending the pipe character `|` followed by the `threshold-` option after the answers parameter value, such as `extractive|threshold-0.9`. Default threshold is 0.7. The maximum character length of answers can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.", + "enum": [ + "none", + "extractive" + ], + "x-ms-enum": { + "name": "QueryAnswerType", + "modelAsString": true, + "values": [ { - "value": "ja", - "description": "Japanese" + "name": "None", + "value": "none", + "description": "Do not return answers for the query." }, { - "value": "ko", - "description": "Korean" - }, + "name": "Extractive", + "value": "extractive", + "description": "Extracts answer candidates from the contents of the documents returned in response to a query expressed as a question in natural language." + } + ] + } + }, + "QueryCaptionResult": { + "type": "object", + "description": "Captions are the most representative passages from the document relatively to the search query. They are often used as document summary. Captions are only returned for queries of type `semantic`.", + "properties": { + "text": { + "type": "string", + "description": "A representative text passage extracted from the document most relevant to the search query.", + "readOnly": true + }, + "highlights": { + "type": "string", + "description": "Same text passage as in the Text property with highlighted phrases most relevant to the query.", + "x-nullable": true, + "readOnly": true + } + }, + "additionalProperties": {} + }, + "QueryCaptionType": { + "type": "string", + "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns captions extracted from key passages in the highest ranked documents. When Captions is set to `extractive`, highlighting is enabled by default, and can be configured by appending the pipe character `|` followed by the `highlight-` option, such as `extractive|highlight-true`. Defaults to `None`. The maximum character length of captions can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.", + "enum": [ + "none", + "extractive" + ], + "x-ms-enum": { + "name": "QueryCaptionType", + "modelAsString": true, + "values": [ { - "value": "no", - "description": "Norwegian (Bokmaal)" + "name": "None", + "value": "none", + "description": "Do not return captions for the query." }, { - "value": "pl", - "description": "Polish" - }, + "name": "Extractive", + "value": "extractive", + "description": "Extracts captions from the matching documents that contain passages relevant to the search query." + } + ] + } + }, + "QueryDebugMode": { + "type": "string", + "description": "Enables a debugging tool that can be used to further explore your search results. You can enable multiple debug modes simultaneously by separating them with a | character, for example: semantic|queryRewrites.", + "enum": [ + "disabled", + "semantic", + "vector", + "queryRewrites", + "innerHits", + "all" + ], + "x-ms-enum": { + "name": "QueryDebugMode", + "modelAsString": true, + "values": [ { - "value": "pt-PT", - "description": "Portuguese (Portugal)" + "name": "Disabled", + "value": "disabled", + "description": "No query debugging information will be returned." }, { - "value": "pt-BR", - "description": "Portuguese (Brazil)" + "name": "Semantic", + "value": "semantic", + "description": "Allows the user to further explore their reranked results." }, { - "value": "ru", - "description": "Russian" + "name": "Vector", + "value": "vector", + "description": "Allows the user to further explore their hybrid and vector query results." }, { - "value": "es", - "description": "Spanish" + "name": "QueryRewrites", + "value": "queryRewrites", + "description": "Allows the user to explore the list of query rewrites generated for their search request." }, { - "value": "sv", - "description": "Swedish" + "name": "InnerHits", + "value": "innerHits", + "description": "Allows the user to retrieve scoring information regarding vectors matched within a collection of complex types." }, { - "value": "tr", - "description": "Turkish" + "name": "All", + "value": "all", + "description": "Turn on all debug options." } ] - }, - "description": "Deprecated. The language codes supported for input text by EntityRecognitionSkill.", - "x-az-search-deprecated": true + } }, - "TextTranslationSkillLanguage": { + "QueryLanguage": { "type": "string", + "description": "The language of the query.", "enum": [ - "af", - "ar", - "bn", - "bs", - "bg", - "yue", - "ca", - "zh-Hans", - "zh-Hant", - "hr", - "cs", - "da", - "nl", - "en", - "et", - "fj", - "fil", - "fi", - "fr", - "de", - "el", - "ht", - "he", - "hi", - "mww", - "hu", - "is", - "id", - "it", - "ja", - "sw", - "tlh", - "tlh-Latn", - "tlh-Piqd", - "ko", - "lv", - "lt", - "mg", - "ms", - "mt", - "nb", - "fa", - "pl", - "pt", + "none", + "en-us", + "en-gb", + "en-in", + "en-ca", + "en-au", + "fr-fr", + "fr-ca", + "de-de", + "es-es", + "es-mx", + "zh-cn", + "zh-tw", "pt-br", - "pt-PT", - "otq", - "ro", - "ru", - "sm", - "sr-Cyrl", - "sr-Latn", - "sk", - "sl", - "es", - "sv", - "ty", - "ta", - "te", - "th", - "to", - "tr", - "uk", - "ur", - "vi", - "cy", - "yua", - "ga", - "kn", - "mi", - "ml", - "pa" + "pt-pt", + "it-it", + "ja-jp", + "ko-kr", + "ru-ru", + "cs-cz", + "nl-be", + "nl-nl", + "hu-hu", + "pl-pl", + "sv-se", + "tr-tr", + "hi-in", + "ar-sa", + "ar-eg", + "ar-ma", + "ar-kw", + "ar-jo", + "da-dk", + "no-no", + "bg-bg", + "hr-hr", + "hr-ba", + "ms-my", + "ms-bn", + "sl-sl", + "ta-in", + "vi-vn", + "el-gr", + "ro-ro", + "is-is", + "id-id", + "th-th", + "lt-lt", + "uk-ua", + "lv-lv", + "et-ee", + "ca-es", + "fi-fi", + "sr-ba", + "sr-me", + "sr-rs", + "sk-sk", + "nb-no", + "hy-am", + "bn-in", + "eu-es", + "gl-es", + "gu-in", + "he-il", + "ga-ie", + "kn-in", + "ml-in", + "mr-in", + "fa-ae", + "pa-in", + "te-in", + "ur-pk" ], "x-ms-enum": { - "name": "TextTranslationSkillLanguage", + "name": "QueryLanguage", "modelAsString": true, "values": [ { - "value": "af", - "description": "Afrikaans" + "name": "None", + "value": "none", + "description": "Query language not specified." }, { - "value": "ar", - "description": "Arabic" + "name": "EnUs", + "value": "en-us", + "description": "Query language value for English (United States)." }, { - "value": "bn", - "description": "Bangla" + "name": "EnGb", + "value": "en-gb", + "description": "Query language value for English (Great Britain)." }, { - "value": "bs", - "description": "Bosnian (Latin)" + "name": "EnIn", + "value": "en-in", + "description": "Query language value for English (India)." }, { - "value": "bg", - "description": "Bulgarian" + "name": "EnCa", + "value": "en-ca", + "description": "Query language value for English (Canada)." }, { - "value": "yue", - "description": "Cantonese (Traditional)" + "name": "EnAu", + "value": "en-au", + "description": "Query language value for English (Australia)." }, { - "value": "ca", - "description": "Catalan" + "name": "FrFr", + "value": "fr-fr", + "description": "Query language value for French (France)." }, { - "value": "zh-Hans", - "description": "Chinese Simplified" + "name": "FrCa", + "value": "fr-ca", + "description": "Query language value for French (Canada)." }, { - "value": "zh-Hant", - "description": "Chinese Traditional" + "name": "DeDe", + "value": "de-de", + "description": "Query language value for German (Germany)." }, { - "value": "hr", - "description": "Croatian" + "name": "EsEs", + "value": "es-es", + "description": "Query language value for Spanish (Spain)." }, { - "value": "cs", - "description": "Czech" + "name": "EsMx", + "value": "es-mx", + "description": "Query language value for Spanish (Mexico)." }, { - "value": "da", - "description": "Danish" + "name": "ZhCn", + "value": "zh-cn", + "description": "Query language value for Chinese (China)." }, { - "value": "nl", - "description": "Dutch" + "name": "ZhTw", + "value": "zh-tw", + "description": "Query language value for Chinese (Taiwan)." }, { - "value": "en", - "description": "English" + "name": "PtBr", + "value": "pt-br", + "description": "Query language value for Portuguese (Brazil)." }, { - "value": "et", - "description": "Estonian" + "name": "PtPt", + "value": "pt-pt", + "description": "Query language value for Portuguese (Portugal)." }, { - "value": "fj", - "description": "Fijian" + "name": "ItIt", + "value": "it-it", + "description": "Query language value for Italian (Italy)." }, { - "value": "fil", - "description": "Filipino" + "name": "JaJp", + "value": "ja-jp", + "description": "Query language value for Japanese (Japan)." }, { - "value": "fi", - "description": "Finnish" + "name": "KoKr", + "value": "ko-kr", + "description": "Query language value for Korean (Korea)." }, { - "value": "fr", - "description": "French" + "name": "RuRu", + "value": "ru-ru", + "description": "Query language value for Russian (Russia)." }, { - "value": "de", - "description": "German" + "name": "CsCz", + "value": "cs-cz", + "description": "Query language value for Czech (Czech Republic)." }, { - "value": "el", - "description": "Greek" + "name": "NlBe", + "value": "nl-be", + "description": "Query language value for Dutch (Belgium)." }, { - "value": "ht", - "description": "Haitian Creole" + "name": "NlNl", + "value": "nl-nl", + "description": "Query language value for Dutch (Netherlands)." }, { - "value": "he", - "description": "Hebrew" + "name": "HuHu", + "value": "hu-hu", + "description": "Query language value for Hungarian (Hungary)." }, { - "value": "hi", - "description": "Hindi" + "name": "PlPl", + "value": "pl-pl", + "description": "Query language value for Polish (Poland)." }, { - "value": "mww", - "description": "Hmong Daw" + "name": "SvSe", + "value": "sv-se", + "description": "Query language value for Swedish (Sweden)." }, { - "value": "hu", - "description": "Hungarian" + "name": "TrTr", + "value": "tr-tr", + "description": "Query language value for Turkish (Turkey)." }, { - "value": "is", - "description": "Icelandic" + "name": "HiIn", + "value": "hi-in", + "description": "Query language value for Hindi (India)." }, { - "value": "id", - "description": "Indonesian" + "name": "ArSa", + "value": "ar-sa", + "description": "Query language value for Arabic (Saudi Arabia)." }, { - "value": "it", - "description": "Italian" + "name": "ArEg", + "value": "ar-eg", + "description": "Query language value for Arabic (Egypt)." }, { - "value": "ja", - "description": "Japanese" + "name": "ArMa", + "value": "ar-ma", + "description": "Query language value for Arabic (Morocco)." }, { - "value": "sw", - "description": "Kiswahili" + "name": "ArKw", + "value": "ar-kw", + "description": "Query language value for Arabic (Kuwait)." }, { - "value": "tlh", - "description": "Klingon" + "name": "ArJo", + "value": "ar-jo", + "description": "Query language value for Arabic (Jordan)." }, { - "value": "tlh-Latn", - "description": "Klingon (Latin script)" + "name": "DaDk", + "value": "da-dk", + "description": "Query language value for Danish (Denmark)." }, { - "value": "tlh-Piqd", - "description": "Klingon (Klingon script)" + "name": "NoNo", + "value": "no-no", + "description": "Query language value for Norwegian (Norway)." }, { - "value": "ko", - "description": "Korean" + "name": "BgBg", + "value": "bg-bg", + "description": "Query language value for Bulgarian (Bulgaria)." }, { - "value": "lv", - "description": "Latvian" + "name": "HrHr", + "value": "hr-hr", + "description": "Query language value for Croatian (Croatia)." }, { - "value": "lt", - "description": "Lithuanian" + "name": "HrBa", + "value": "hr-ba", + "description": "Query language value for Croatian (Bosnia and Herzegovina)." }, { - "value": "mg", - "description": "Malagasy" + "name": "MsMy", + "value": "ms-my", + "description": "Query language value for Malay (Malaysia)." }, { - "value": "ms", - "description": "Malay" + "name": "MsBn", + "value": "ms-bn", + "description": "Query language value for Malay (Brunei Darussalam)." }, { - "value": "mt", - "description": "Maltese" + "name": "SlSl", + "value": "sl-sl", + "description": "Query language value for Slovenian (Slovenia)." }, { - "value": "nb", - "description": "Norwegian" + "name": "TaIn", + "value": "ta-in", + "description": "Query language value for Tamil (India)." }, { - "value": "fa", - "description": "Persian" + "name": "ViVn", + "value": "vi-vn", + "description": "Query language value for Vietnamese (Viet Nam)." }, { - "value": "pl", - "description": "Polish" + "name": "ElGr", + "value": "el-gr", + "description": "Query language value for Greek (Greece)." }, { - "value": "pt", - "description": "Portuguese" + "name": "RoRo", + "value": "ro-ro", + "description": "Query language value for Romanian (Romania)." }, { - "value": "pt-br", - "description": "Portuguese (Brazil)" + "name": "IsIs", + "value": "is-is", + "description": "Query language value for Icelandic (Iceland)." }, { - "value": "pt-PT", - "description": "Portuguese (Portugal)" + "name": "IdId", + "value": "id-id", + "description": "Query language value for Indonesian (Indonesia)." }, { - "value": "otq", - "description": "Queretaro Otomi" + "name": "ThTh", + "value": "th-th", + "description": "Query language value for Thai (Thailand)." }, { - "value": "ro", - "description": "Romanian" + "name": "LtLt", + "value": "lt-lt", + "description": "Query language value for Lithuanian (Lithuania)." }, { - "value": "ru", - "description": "Russian" + "name": "UkUa", + "value": "uk-ua", + "description": "Query language value for Ukrainian (Ukraine)." }, { - "value": "sm", - "description": "Samoan" + "name": "LvLv", + "value": "lv-lv", + "description": "Query language value for Latvian (Latvia)." }, { - "value": "sr-Cyrl", - "description": "Serbian (Cyrillic)" + "name": "EtEe", + "value": "et-ee", + "description": "Query language value for Estonian (Estonia)." }, { - "value": "sr-Latn", - "description": "Serbian (Latin)" + "name": "CaEs", + "value": "ca-es", + "description": "Query language value for Catalan." }, { - "value": "sk", - "description": "Slovak" + "name": "FiFi", + "value": "fi-fi", + "description": "Query language value for Finnish (Finland)." }, { - "value": "sl", - "description": "Slovenian" + "name": "SrBa", + "value": "sr-ba", + "description": "Query language value for Serbian (Bosnia and Herzegovina)." }, { - "value": "es", - "description": "Spanish" + "name": "SrMe", + "value": "sr-me", + "description": "Query language value for Serbian (Montenegro)." }, { - "value": "sv", - "description": "Swedish" + "name": "SrRs", + "value": "sr-rs", + "description": "Query language value for Serbian (Serbia)." }, { - "value": "ty", - "description": "Tahitian" + "name": "SkSk", + "value": "sk-sk", + "description": "Query language value for Slovak (Slovakia)." }, { - "value": "ta", - "description": "Tamil" + "name": "NbNo", + "value": "nb-no", + "description": "Query language value for Norwegian (Norway)." }, { - "value": "te", - "description": "Telugu" + "name": "HyAm", + "value": "hy-am", + "description": "Query language value for Armenian (Armenia)." }, { - "value": "th", - "description": "Thai" + "name": "BnIn", + "value": "bn-in", + "description": "Query language value for Bengali (India)." }, { - "value": "to", - "description": "Tongan" + "name": "EuEs", + "value": "eu-es", + "description": "Query language value for Basque." }, { - "value": "tr", - "description": "Turkish" + "name": "GlEs", + "value": "gl-es", + "description": "Query language value for Galician." }, { - "value": "uk", - "description": "Ukrainian" + "name": "GuIn", + "value": "gu-in", + "description": "Query language value for Gujarati (India)." }, { - "value": "ur", - "description": "Urdu" + "name": "HeIl", + "value": "he-il", + "description": "Query language value for Hebrew (Israel)." }, { - "value": "vi", - "description": "Vietnamese" + "name": "GaIe", + "value": "ga-ie", + "description": "Query language value for Irish (Ireland)." }, { - "value": "cy", - "description": "Welsh" + "name": "KnIn", + "value": "kn-in", + "description": "Query language value for Kannada (India)." }, { - "value": "yua", - "description": "Yucatec Maya" + "name": "MlIn", + "value": "ml-in", + "description": "Query language value for Malayalam (India)." }, { - "value": "ga", - "description": "Irish" + "name": "MrIn", + "value": "mr-in", + "description": "Query language value for Marathi (India)." }, { - "value": "kn", - "description": "Kannada" + "name": "FaAe", + "value": "fa-ae", + "description": "Query language value for Persian (U.A.E.)." }, { - "value": "mi", - "description": "Maori" + "name": "PaIn", + "value": "pa-in", + "description": "Query language value for Punjabi (India)." }, { - "value": "ml", - "description": "Malayalam" + "name": "TeIn", + "value": "te-in", + "description": "Query language value for Telugu (India)." }, { - "value": "pa", - "description": "Punjabi" + "name": "UrPk", + "value": "ur-pk", + "description": "Query language value for Urdu (Pakistan)." } ] - }, - "description": "The language codes supported for input text by TextTranslationSkill." + } }, - "ImageAnalysisSkillLanguage": { + "QueryResultDocumentInnerHit": { + "type": "object", + "description": "Detailed scoring information for an individual element of a complex collection.", + "properties": { + "ordinal": { + "type": "integer", + "format": "int64", + "description": "Position of this specific matching element within it's original collection. Position starts at 0.", + "readOnly": true + }, + "vectors": { + "type": "array", + "description": "Detailed scoring information for an individual element of a complex collection that matched a vector query.", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/SingleVectorFieldResult" + } + }, + "readOnly": true + } + } + }, + "QueryResultDocumentRerankerInput": { + "type": "object", + "description": "The raw concatenated strings that were sent to the semantic enrichment process.", + "properties": { + "title": { + "type": "string", + "description": "The raw string for the title field that was used for semantic enrichment.", + "readOnly": true + }, + "content": { + "type": "string", + "description": "The raw concatenated strings for the content fields that were used for semantic enrichment.", + "readOnly": true + }, + "keywords": { + "type": "string", + "description": "The raw concatenated strings for the keyword fields that were used for semantic enrichment.", + "readOnly": true + } + } + }, + "QueryResultDocumentSemanticField": { + "type": "object", + "description": "Description of fields that were sent to the semantic enrichment process, as well as how they were used", + "properties": { + "name": { + "type": "string", + "description": "The name of the field that was sent to the semantic enrichment process", + "readOnly": true + }, + "state": { + "$ref": "#/definitions/SemanticFieldState", + "description": "The way the field was used for the semantic enrichment process (fully used, partially used, or unused)", + "readOnly": true + } + } + }, + "QueryResultDocumentSubscores": { + "type": "object", + "description": "The breakdown of subscores between the text and vector query components of the search query for this document. Each vector query is shown as a separate object in the same order they were received.", + "properties": { + "text": { + "$ref": "#/definitions/TextResult", + "description": "The BM25 or Classic score for the text portion of the query.", + "readOnly": true + }, + "vectors": { + "type": "array", + "description": "The vector similarity and @search.score values for each vector query.", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/SingleVectorFieldResult" + } + }, + "readOnly": true + }, + "documentBoost": { + "type": "number", + "format": "double", + "description": "The BM25 or Classic score for the text portion of the query.", + "readOnly": true + } + } + }, + "QueryRewritesDebugInfo": { + "type": "object", + "description": "Contains debugging information specific to query rewrites.", + "properties": { + "text": { + "$ref": "#/definitions/QueryRewritesValuesDebugInfo", + "description": "List of query rewrites generated for the text query.", + "readOnly": true + }, + "vectors": { + "type": "array", + "description": "List of query rewrites generated for the vectorizable text queries.", + "items": { + "$ref": "#/definitions/QueryRewritesValuesDebugInfo" + }, + "readOnly": true + } + } + }, + "QueryRewritesType": { "type": "string", + "description": "This parameter is only valid if the query type is `semantic`. When QueryRewrites is set to `generative`, the query terms are sent to a generate model which will produce 10 (default) rewrites to help increase the recall of the request. The requested count can be configured by appending the pipe character `|` followed by the `count-` option, such as `generative|count-3`. Defaults to `None`.", "enum": [ - "ar", - "az", - "bg", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "el", - "en", - "es", - "et", - "eu", - "fi", - "fr", - "ga", - "gl", - "he", - "hi", - "hr", - "hu", - "id", - "it", - "ja", - "kk", - "ko", - "lt", - "lv", - "mk", - "ms", - "nb", - "nl", - "pl", - "prs", - "pt-BR", - "pt", - "pt-PT", - "ro", - "ru", - "sk", - "sl", - "sr-Cyrl", - "sr-Latn", - "sv", - "th", - "tr", - "uk", - "vi", - "zh", - "zh-Hans", - "zh-Hant" + "none", + "generative" ], "x-ms-enum": { - "name": "ImageAnalysisSkillLanguage", + "name": "QueryRewritesType", "modelAsString": true, "values": [ { - "value": "ar", - "description": "Arabic" - }, - { - "value": "az", - "description": "Azerbaijani" + "name": "None", + "value": "none", + "description": "Do not generate additional query rewrites for this query." }, { - "value": "bg", - "description": "Bulgarian" - }, - { - "value": "bs", - "description": "Bosnian Latin" - }, - { - "value": "ca", - "description": "Catalan" - }, - { - "value": "cs", - "description": "Czech" - }, - { - "value": "cy", - "description": "Welsh" - }, - { - "value": "da", - "description": "Danish" - }, - { - "value": "de", - "description": "German" - }, - { - "value": "el", - "description": "Greek" - }, - { - "value": "en", - "description": "English" - }, - { - "value": "es", - "description": "Spanish" - }, - { - "value": "et", - "description": "Estonian" - }, - { - "value": "eu", - "description": "Basque" + "name": "Generative", + "value": "generative", + "description": "Generate alternative query terms to increase the recall of a search request." + } + ] + } + }, + "QueryRewritesValuesDebugInfo": { + "type": "object", + "description": "Contains debugging information specific to query rewrites.", + "properties": { + "inputQuery": { + "type": "string", + "description": "The input text to the generative query rewriting model. There may be cases where the user query and the input to the generative model are not identical.", + "readOnly": true + }, + "rewrites": { + "type": "array", + "description": "List of query rewrites.", + "items": { + "type": "string" }, + "readOnly": true + } + } + }, + "QuerySpellerType": { + "type": "string", + "description": "Improve search recall by spell-correcting individual search query terms.", + "enum": [ + "none", + "lexicon" + ], + "x-ms-enum": { + "name": "QuerySpellerType", + "modelAsString": true, + "values": [ { - "value": "fi", - "description": "Finnish" + "name": "None", + "value": "none", + "description": "Speller not enabled." }, { - "value": "fr", - "description": "French" - }, + "name": "Lexicon", + "value": "lexicon", + "description": "Speller corrects individual query terms using a static lexicon for the language specified by the queryLanguage parameter." + } + ] + } + }, + "QueryType": { + "type": "string", + "description": "Specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax and 'semantic' if query syntax is not needed.", + "enum": [ + "simple", + "full", + "semantic" + ], + "x-ms-enum": { + "name": "QueryType", + "modelAsString": true, + "values": [ { - "value": "ga", - "description": "Irish" + "name": "Simple", + "value": "simple", + "description": "Uses the simple query syntax for searches. Search text is interpreted using a simple query language that allows for symbols such as +, * and \"\". Queries are evaluated across all searchable fields by default, unless the searchFields parameter is specified." }, { - "value": "gl", - "description": "Galician" + "name": "Full", + "value": "full", + "description": "Uses the full Lucene query syntax for searches. Search text is interpreted using the Lucene query language which allows field-specific and weighted searches, as well as other advanced features." }, { - "value": "he", - "description": "Hebrew" - }, + "name": "Semantic", + "value": "semantic", + "description": "Best suited for queries expressed in natural language as opposed to keywords. Improves precision of search results by re-ranking the top search results using a ranking model trained on the Web corpus." + } + ] + } + }, + "RankingOrder": { + "type": "string", + "description": "Represents score to use for sort order of documents.", + "enum": [ + "BoostedRerankerScore", + "RerankerScore" + ], + "x-ms-enum": { + "name": "RankingOrder", + "modelAsString": true, + "values": [ { - "value": "hi", - "description": "Hindi" + "name": "BoostedRerankerScore", + "value": "BoostedRerankerScore", + "description": "Sets sort order as BoostedRerankerScore" }, { - "value": "hr", - "description": "Croatian" - }, + "name": "RerankerScore", + "value": "RerankerScore", + "description": "Sets sort order as ReRankerScore" + } + ] + } + }, + "RegexFlags": { + "type": "string", + "description": "Defines flags that can be combined to control how regular expressions are used in the pattern analyzer and pattern tokenizer.", + "enum": [ + "CANON_EQ", + "CASE_INSENSITIVE", + "COMMENTS", + "DOTALL", + "LITERAL", + "MULTILINE", + "UNICODE_CASE", + "UNIX_LINES" + ], + "x-ms-enum": { + "name": "RegexFlags", + "modelAsString": true, + "values": [ { - "value": "hu", - "description": "Hungarian" + "name": "CanonEq", + "value": "CANON_EQ", + "description": "Enables canonical equivalence." }, { - "value": "id", - "description": "Indonesian" + "name": "CaseInsensitive", + "value": "CASE_INSENSITIVE", + "description": "Enables case-insensitive matching." }, { - "value": "it", - "description": "Italian" + "name": "Comments", + "value": "COMMENTS", + "description": "Permits whitespace and comments in the pattern." }, { - "value": "ja", - "description": "Japanese" + "name": "DotAll", + "value": "DOTALL", + "description": "Enables dotall mode." }, { - "value": "kk", - "description": "Kazakh" + "name": "Literal", + "value": "LITERAL", + "description": "Enables literal parsing of the pattern." }, { - "value": "ko", - "description": "Korean" + "name": "Multiline", + "value": "MULTILINE", + "description": "Enables multiline mode." }, { - "value": "lt", - "description": "Lithuanian" + "name": "UnicodeCase", + "value": "UNICODE_CASE", + "description": "Enables Unicode-aware case folding." }, { - "value": "lv", - "description": "Latvian" - }, - { - "value": "mk", - "description": "Macedonian" - }, - { - "value": "ms", - "description": "Malay Malaysia" - }, - { - "value": "nb", - "description": "Norwegian (Bokmal)" - }, - { - "value": "nl", - "description": "Dutch" - }, - { - "value": "pl", - "description": "Polish" - }, - { - "value": "prs", - "description": "Dari" - }, - { - "value": "pt-BR", - "description": "Portuguese-Brazil" - }, - { - "value": "pt", - "description": "Portuguese-Portugal" - }, - { - "value": "pt-PT", - "description": "Portuguese-Portugal" - }, - { - "value": "ro", - "description": "Romanian" - }, - { - "value": "ru", - "description": "Russian" - }, - { - "value": "sk", - "description": "Slovak" - }, - { - "value": "sl", - "description": "Slovenian" + "name": "UnixLines", + "value": "UNIX_LINES", + "description": "Enables Unix lines mode." + } + ] + } + }, + "RemoteSharePointKnowledgeSource": { + "type": "object", + "description": "Configuration for remote SharePoint knowledge source.", + "properties": { + "remoteSharePointParameters": { + "$ref": "#/definitions/RemoteSharePointKnowledgeSourceParameters", + "description": "The parameters for the remote SharePoint knowledge source." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSource" + } + ], + "x-ms-discriminator-value": "remoteSharePoint" + }, + "RemoteSharePointKnowledgeSourceParameters": { + "type": "object", + "description": "Parameters for remote SharePoint knowledge source.", + "properties": { + "filterExpression": { + "type": "string", + "description": "Keyword Query Language (KQL) expression with queryable SharePoint properties and attributes to scope the retrieval before the query runs." + }, + "resourceMetadata": { + "type": "array", + "description": "A list of metadata fields to be returned for each item in the response. Only retrievable metadata properties can be included in this list. By default, no metadata is returned.", + "items": { + "type": "string" + } + }, + "containerTypeId": { + "type": "string", + "description": "Container ID for SharePoint Embedded connection. When this is null, it will use SharePoint Online." + } + } + }, + "RemoteSharePointKnowledgeSourceParams": { + "type": "object", + "description": "Specifies runtime parameters for a remote SharePoint knowledge source", + "properties": { + "filterExpressionAddOn": { + "type": "string", + "description": "A filter condition applied to the SharePoint data source. It must be specified in the Keyword Query Language syntax. It will be combined as a conjunction with the filter expression specified in the knowledge source definition." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSourceParams" + } + ], + "x-ms-discriminator-value": "remoteSharePoint" + }, + "RescoringOptions": { + "type": "object", + "description": "Contains the options for rescoring.", + "properties": { + "enableRescoring": { + "type": "boolean", + "description": "If set to true, after the initial search on the compressed vectors, the similarity scores are recalculated using the full-precision vectors. This will improve recall at the expense of latency.", + "default": true, + "x-nullable": true + }, + "defaultOversampling": { + "type": "number", + "format": "double", + "description": "Default oversampling factor. Oversampling retrieves a greater set of potential documents to offset the resolution loss due to quantization. This increases the set of results that will be rescored on full-precision vectors. Minimum value is 1, meaning no oversampling (1x). This parameter can only be set when 'enableRescoring' is true. Higher values improve recall at the expense of latency.", + "x-nullable": true + }, + "rescoreStorageMethod": { + "type": "string", + "description": "Controls the storage method for original vectors. This setting is immutable.", + "default": "preserveOriginals", + "enum": [ + "preserveOriginals", + "discardOriginals" + ], + "x-ms-enum": { + "modelAsString": true, + "values": [ + { + "name": "PreserveOriginals", + "value": "preserveOriginals", + "description": "This option preserves the original full-precision vectors. Choose this option for maximum flexibility and highest quality of compressed search results. This consumes more storage but allows for rescoring and oversampling." + }, + { + "name": "DiscardOriginals", + "value": "discardOriginals", + "description": "This option discards the original full-precision vectors. Choose this option for maximum storage savings. Since this option does not allow for rescoring and oversampling, it will often cause slight to moderate reductions in quality." + } + ] }, + "x-nullable": true + } + } + }, + "ResourceCounter": { + "type": "object", + "description": "Represents a resource's usage and quota.", + "properties": { + "usage": { + "type": "integer", + "format": "int64", + "description": "The resource usage amount." + }, + "quota": { + "type": "integer", + "format": "int64", + "description": "The resource amount quota.", + "x-nullable": true + } + }, + "required": [ + "usage" + ] + }, + "ScalarQuantizationCompression": { + "type": "object", + "description": "Contains configuration options specific to the scalar quantization compression method used during indexing and querying.", + "properties": { + "scalarQuantizationParameters": { + "$ref": "#/definitions/ScalarQuantizationParameters", + "description": "Contains the parameters specific to Scalar Quantization." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorSearchCompression" + } + ], + "x-ms-discriminator-value": "scalarQuantization" + }, + "ScalarQuantizationParameters": { + "type": "object", + "description": "Contains the parameters specific to Scalar Quantization.", + "properties": { + "quantizedDataType": { + "$ref": "#/definitions/VectorSearchCompressionTarget", + "description": "The quantized data type of compressed vector values.", + "x-nullable": true + } + } + }, + "ScoringFunction": { + "type": "object", + "description": "Base type for functions that can modify document scores during ranking.", + "properties": { + "fieldName": { + "type": "string", + "description": "The name of the field used as input to the scoring function." + }, + "boost": { + "type": "number", + "format": "double", + "description": "A multiplier for the raw score. Must be a positive number not equal to 1.0." + }, + "interpolation": { + "$ref": "#/definitions/ScoringFunctionInterpolation", + "description": "A value indicating how boosting will be interpolated across document scores; defaults to \"Linear\"." + }, + "type": { + "type": "string", + "description": "Type of ScoringFunction." + } + }, + "discriminator": "type", + "required": [ + "fieldName", + "boost", + "type" + ] + }, + "ScoringFunctionAggregation": { + "type": "string", + "description": "Defines the aggregation function used to combine the results of all the scoring functions in a scoring profile.", + "enum": [ + "sum", + "average", + "minimum", + "maximum", + "firstMatching", + "product" + ], + "x-ms-enum": { + "name": "ScoringFunctionAggregation", + "modelAsString": true, + "values": [ { - "value": "sr-Cyrl", - "description": "Serbian - Cyrillic RS" + "name": "Sum", + "value": "sum", + "description": "Boost scores by the sum of all scoring function results." }, { - "value": "sr-Latn", - "description": "Serbian - Latin RS" + "name": "Average", + "value": "average", + "description": "Boost scores by the average of all scoring function results." }, { - "value": "sv", - "description": "Swedish" + "name": "Minimum", + "value": "minimum", + "description": "Boost scores by the minimum of all scoring function results." }, { - "value": "th", - "description": "Thai" + "name": "Maximum", + "value": "maximum", + "description": "Boost scores by the maximum of all scoring function results." }, { - "value": "tr", - "description": "Turkish" + "name": "FirstMatching", + "value": "firstMatching", + "description": "Boost scores using the first applicable scoring function in the scoring profile." }, { - "value": "uk", - "description": "Ukrainian" - }, + "name": "Product", + "value": "product", + "description": "Boost scores by the product of all scoring function results." + } + ] + } + }, + "ScoringFunctionInterpolation": { + "type": "string", + "description": "Defines the function used to interpolate score boosting across a range of documents.", + "enum": [ + "linear", + "constant", + "quadratic", + "logarithmic" + ], + "x-ms-enum": { + "name": "ScoringFunctionInterpolation", + "modelAsString": true, + "values": [ { - "value": "vi", - "description": "Vietnamese" + "name": "Linear", + "value": "linear", + "description": "Boosts scores by a linearly decreasing amount. This is the default interpolation for scoring functions." }, { - "value": "zh", - "description": "Chinese Simplified" + "name": "Constant", + "value": "constant", + "description": "Boosts scores by a constant factor." }, { - "value": "zh-Hans", - "description": "Chinese Simplified" + "name": "Quadratic", + "value": "quadratic", + "description": "Boosts scores by an amount that decreases quadratically. Boosts decrease slowly for higher scores, and more quickly as the scores decrease. This interpolation option is not allowed in tag scoring functions." }, { - "value": "zh-Hant", - "description": "Chinese Traditional" + "name": "Logarithmic", + "value": "logarithmic", + "description": "Boosts scores by an amount that decreases logarithmically. Boosts decrease quickly for higher scores, and more slowly as the scores decrease. This interpolation option is not allowed in tag scoring functions." } ] - }, - "description": "The language codes supported for input by ImageAnalysisSkill." + } }, - "SynonymMap": { + "ScoringProfile": { "type": "object", + "description": "Defines parameters for a search index that influence scoring in search queries.", "properties": { "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" - }, "type": "string", - "description": "The name of the synonym map." + "description": "The name of the scoring profile." }, - "format": { - "type": "string", - "enum": [ - "solr" - ], - "x-ms-enum": { - "name": "SynonymMapFormat", - "modelAsString": false, - "values": [ - { - "value": "solr", - "name": "Solr", - "description": "Selects the SOLR format for synonym maps." - } - ] - }, - "description": "The format of the synonym map. Only the 'solr' format is currently supported." + "text": { + "$ref": "#/definitions/TextWeights", + "description": "Parameters that boost scoring based on text matches in certain index fields.", + "x-nullable": true }, - "synonyms": { - "type": "string", - "description": "A series of synonym rules in the specified synonym map format. The rules must be separated by newlines.", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Create-Synonym-Map#SynonymMapFormat" + "functions": { + "type": "array", + "description": "The collection of functions that influence the scoring of documents.", + "items": { + "$ref": "#/definitions/ScoringFunction" } }, - "encryptionKey": { - "$ref": "#/definitions/SearchResourceEncryptionKey", - "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data. Once you have encrypted your data, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", - "externalDocs": { - "url": "https://aka.ms/azure-search-encryption-with-cmk" - }, - "x-nullable": true - }, - "@odata.etag": { - "x-ms-client-name": "ETag", - "type": "string", - "description": "The ETag of the synonym map." + "functionAggregation": { + "$ref": "#/definitions/ScoringFunctionAggregation", + "description": "A value indicating how the results of individual scoring functions should be combined. Defaults to \"Sum\". Ignored if there are no scoring functions." } }, "required": [ - "name", - "format", - "synonyms" + "name" + ] + }, + "ScoringStatistics": { + "type": "string", + "description": "A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is 'local'. Use 'global' to aggregate scoring statistics globally before scoring. Using global scoring statistics can increase latency of search queries.", + "enum": [ + "local", + "global" ], - "description": "Represents a synonym map definition." + "x-ms-enum": { + "name": "ScoringStatistics", + "modelAsString": true, + "values": [ + { + "name": "Local", + "value": "local", + "description": "The scoring statistics will be calculated locally for lower latency." + }, + { + "name": "Global", + "value": "global", + "description": "The scoring statistics will be calculated globally for more consistent scoring." + } + ] + } }, - "ListSynonymMapsResult": { + "SearchAlias": { "type": "object", + "description": "Represents an index alias, which describes a mapping from the alias name to an index. The alias name can be used in place of the index name for supported operations.", "properties": { - "value": { - "x-ms-client-name": "SynonymMaps", + "name": { + "type": "string", + "description": "The name of the alias." + }, + "indexes": { "type": "array", - "readOnly": true, + "description": "The name of the index this alias maps to. Only one index name may be specified.", "items": { - "$ref": "#/definitions/SynonymMap" - }, - "description": "The synonym maps in the Search service." + "type": "string" + } + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the alias.", + "x-ms-client-name": "eTag" } }, "required": [ - "value" - ], - "description": "Response from a List SynonymMaps request. If successful, it includes the full definitions of all synonym maps." + "name", + "indexes" + ] }, - "SearchResourceEncryptionKey": { + "SearchDocumentsResult": { "type": "object", + "description": "Response containing search results from an index.", "properties": { - "keyVaultKeyName": { - "x-ms-client-name": "keyName", - "type": "string", - "description": "The name of your Azure Key Vault key to be used to encrypt your data at rest." + "@odata.count": { + "type": "integer", + "format": "int64", + "description": "The total count of results found by the search operation, or null if the count was not requested. If present, the count may be greater than the number of results in this response. This can happen if you use the $top or $skip parameters, or if the query can't return all the requested documents in a single response.", + "readOnly": true, + "x-ms-client-name": "count" }, - "keyVaultKeyVersion": { - "x-ms-client-name": "keyVersion", - "type": "string", - "description": "The version of your Azure Key Vault key to be used to encrypt your data at rest." + "@search.coverage": { + "type": "number", + "format": "double", + "description": "A value indicating the percentage of the index that was included in the query, or null if minimumCoverage was not specified in the request.", + "readOnly": true, + "x-ms-client-name": "coverage" }, - "keyVaultUri": { - "x-ms-client-name": "vaultUri", - "type": "string", - "description": "The URI of your Azure Key Vault, also referred to as DNS name, that contains the key to be used to encrypt your data at rest. An example URI might be `https://my-keyvault-name.vault.azure.net`." + "@search.facets": { + "type": "object", + "description": "The facet query results for the search operation, organized as a collection of buckets for each faceted field; null if the query did not include any facet expressions.", + "additionalProperties": { + "items": { + "$ref": "#/definitions/FacetResult" + }, + "type": "array" + }, + "readOnly": true, + "x-ms-client-name": "facets" }, - "accessCredentials": { - "$ref": "#/definitions/AzureActiveDirectoryApplicationCredentials", - "description": "Optional Azure Active Directory credentials used for accessing your Azure Key Vault. Not required if using managed identity instead.", - "externalDocs": { - "url": "https://aka.ms/azure-search-msi" - } + "@search.answers": { + "type": "array", + "description": "The answers query results for the search operation; null if the answers query parameter was not specified or set to 'none'.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/QueryAnswerResult" + }, + "readOnly": true, + "x-ms-client-name": "answers" }, - "identity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", + "@search.debug": { + "$ref": "#/definitions/DebugInfo", + "description": "Debug information that applies to the search results as a whole.", "x-nullable": true, - "description": "An explicit managed identity to use for this encryption key. If not specified and the access credentials property is null, the system-assigned managed identity is used. On update to the resource, if the explicit identity is unspecified, it remains unchanged. If \"none\" is specified, the value of this property is cleared." - } - }, - "required": [ - "keyVaultKeyName", - "keyVaultUri" - ], - "description": "A customer-managed encryption key in Azure Key Vault. Keys that you create and manage can be used to encrypt or decrypt data-at-rest, such as indexes and synonym maps." - }, - "SearchIndexerCache": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "A guid for the SearchIndexerCache." + "readOnly": true, + "x-ms-client-name": "debugInfo" }, - "storageConnectionString": { - "type": "string", - "description": "The connection string to the storage account where the cache data will be persisted." + "@search.nextPageParameters": { + "$ref": "#/definitions/SearchRequest", + "description": "Continuation JSON payload returned when the query can't return all the requested results in a single response. You can use this JSON along with @odata.nextLink to formulate another POST Search request to get the next part of the search response.", + "readOnly": true, + "x-ms-client-name": "nextPageParameters" }, - "enableReprocessing": { - "type": "boolean", - "x-nullable": true, - "description": "Specifies whether incremental reprocessing is enabled." + "value": { + "type": "array", + "description": "The sequence of results returned by the query.", + "items": { + "$ref": "#/definitions/SearchResult" + }, + "readOnly": true }, - "identity": { - "$ref": "#/definitions/SearchIndexerDataIdentity", - "x-nullable": true, - "description": "The user-assigned managed identity used for connections to the enrichment cache. If the connection string indicates an identity (ResourceId) and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared." - } - } - }, - "AzureActiveDirectoryApplicationCredentials": { - "type": "object", - "properties": { - "applicationId": { + "@odata.nextLink": { "type": "string", - "description": "An AAD Application ID that was granted the required access permissions to the Azure Key Vault that is to be used when encrypting your data at rest. The Application ID should not be confused with the Object ID for your AAD Application." + "description": "Continuation URL returned when the query can't return all the requested results in a single response. You can use this URL to formulate another GET or POST Search request to get the next part of the search response. Make sure to use the same verb (GET or POST) as the request that produced this response.", + "readOnly": true, + "x-ms-client-name": "nextLink" }, - "applicationSecret": { - "type": "string", - "description": "The authentication key of the specified AAD application." - } - }, - "required": [ - "applicationId" - ], - "description": "Credentials of a registered application created for your search service, used for authenticated access to the encryption keys stored in Azure Key Vault." - }, - "ServiceStatistics": { - "type": "object", - "properties": { - "counters": { - "$ref": "#/definitions/ServiceCounters", - "description": "Service level resource counters." + "@search.semanticPartialResponseReason": { + "$ref": "#/definitions/SemanticErrorReason", + "description": "Reason that a partial response was returned for a semantic ranking request.", + "readOnly": true, + "x-ms-client-name": "semanticPartialResponseReason" }, - "indexersRuntime": { - "$ref": "#/definitions/ServiceIndexersRuntime", - "description": "Service level indexers runtime information." + "@search.semanticPartialResponseType": { + "$ref": "#/definitions/SemanticSearchResultsType", + "description": "Type of partial response that was returned for a semantic ranking request.", + "readOnly": true, + "x-ms-client-name": "semanticPartialResponseType" }, - "limits": { - "$ref": "#/definitions/ServiceLimits", - "description": "Service level general limits." + "@search.semanticQueryRewritesResultType": { + "$ref": "#/definitions/SemanticQueryRewritesResultType", + "description": "Type of query rewrite that was used to retrieve documents.", + "readOnly": true, + "x-ms-client-name": "semanticQueryRewritesResultType" } }, "required": [ - "counters", - "indexersRuntime", - "limits" - ], - "description": "Response from a get service statistics request. If successful, it includes service level counters, indexer runtime information, and limits." + "value" + ] }, - "ServiceCounters": { + "SearchField": { "type": "object", + "description": "Represents a field in an index definition, which describes the name, data type, and search behavior of a field.", "properties": { - "aliasesCount": { - "x-ms-client-name": "aliasCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of aliases." + "name": { + "type": "string", + "description": "The name of the field, which must be unique within the fields collection of the index or parent field." }, - "documentCount": { - "x-ms-client-name": "documentCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of documents across all indexes in the service." + "type": { + "$ref": "#/definitions/SearchFieldDataType", + "description": "The data type of the field." }, - "indexesCount": { - "x-ms-client-name": "indexCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of indexes." + "key": { + "type": "boolean", + "description": "A value indicating whether the field uniquely identifies documents in the index. Exactly one top-level field in each index must be chosen as the key field and it must be of type Edm.String. Key fields can be used to look up documents directly and update or delete specific documents. Default is false for simple fields and null for complex fields." }, - "indexersCount": { - "x-ms-client-name": "indexerCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of indexers." + "retrievable": { + "type": "boolean", + "description": "A value indicating whether the field can be returned in a search result. You can disable this option if you want to use a field (for example, margin) as a filter, sorting, or scoring mechanism but do not want the field to be visible to the end user. This property must be true for key fields, and it must be null for complex fields. This property can be changed on existing fields. Enabling this property does not cause any increase in index storage requirements. Default is true for simple fields, false for vector fields, and null for complex fields." }, - "dataSourcesCount": { - "x-ms-client-name": "dataSourceCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of data sources." + "stored": { + "type": "boolean", + "description": "An immutable value indicating whether the field will be persisted separately on disk to be returned in a search result. You can disable this option if you don't plan to return the field contents in a search response to save on storage overhead. This can only be set during index creation and only for vector fields. This property cannot be changed for existing fields or set as false for new fields. If this property is set as false, the property 'retrievable' must also be set to false. This property must be true or unset for key fields, for new fields, and for non-vector fields, and it must be null for complex fields. Disabling this property will reduce index storage requirements. The default is true for vector fields." }, - "storageSize": { - "x-ms-client-name": "storageSizeCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total size of used storage in bytes." + "searchable": { + "type": "boolean", + "description": "A value indicating whether the field is full-text searchable. This means it will undergo analysis such as word-breaking during indexing. If you set a searchable field to a value like \"sunny day\", internally it will be split into the individual tokens \"sunny\" and \"day\". This enables full-text searches for these terms. Fields of type Edm.String or Collection(Edm.String) are searchable by default. This property must be false for simple fields of other non-string data types, and it must be null for complex fields. Note: searchable fields consume extra space in your index to accommodate additional tokenized versions of the field value for full-text searches. If you want to save space in your index and you don't need a field to be included in searches, set searchable to false." }, - "synonymMaps": { - "x-ms-client-name": "synonymMapCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of synonym maps." + "filterable": { + "type": "boolean", + "description": "A value indicating whether to enable the field to be referenced in $filter queries. filterable differs from searchable in how strings are handled. Fields of type Edm.String or Collection(Edm.String) that are filterable do not undergo word-breaking, so comparisons are for exact matches only. For example, if you set such a field f to \"sunny day\", $filter=f eq 'sunny' will find no matches, but $filter=f eq 'sunny day' will. This property must be null for complex fields. Default is true for simple fields and null for complex fields." }, - "skillsetCount": { - "x-ms-client-name": "skillsetCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total number of skillsets." + "sortable": { + "type": "boolean", + "description": "A value indicating whether to enable the field to be referenced in $orderby expressions. By default, the search engine sorts results by score, but in many experiences users will want to sort by fields in the documents. A simple field can be sortable only if it is single-valued (it has a single value in the scope of the parent document). Simple collection fields cannot be sortable, since they are multi-valued. Simple sub-fields of complex collections are also multi-valued, and therefore cannot be sortable. This is true whether it's an immediate parent field, or an ancestor field, that's the complex collection. Complex fields cannot be sortable and the sortable property must be null for such fields. The default for sortable is true for single-valued simple fields, false for multi-valued simple fields, and null for complex fields." }, - "vectorIndexSize": { - "x-ms-client-name": "vectorIndexSizeCounter", - "$ref": "#/definitions/ResourceCounter", - "description": "Total memory consumption of all vector indexes within the service, in bytes." - } - }, - "required": [ - "aliasesCount", - "documentCount", - "indexesCount", - "indexersCount", - "dataSourcesCount", - "storageSize", - "synonymMaps", - "skillsetCount", - "vectorIndexSize" - ], - "description": "Represents service-level resource counters and quotas." - }, - "ServiceIndexersRuntime": { - "type": "object", - "properties": { - "usedSeconds": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "description": "Cumulative runtime of all indexers in the service from the beginningTime to endingTime, in seconds." + "facetable": { + "type": "boolean", + "description": "A value indicating whether to enable the field to be referenced in facet queries. Typically used in a presentation of search results that includes hit count by category (for example, search for digital cameras and see hits by brand, by megapixels, by price, and so on). This property must be null for complex fields. Fields of type Edm.GeographyPoint or Collection(Edm.GeographyPoint) cannot be facetable. Default is true for all other simple fields." }, - "remainingSeconds": { - "type": "integer", - "format": "int64", - "x-nullable": true, - "description": "Cumulative runtime remaining for all indexers in the service from the beginningTime to endingTime, in seconds." + "permissionFilter": { + "$ref": "#/definitions/PermissionFilter", + "description": "A value indicating whether the field should be used as a permission filter.", + "x-nullable": true }, - "beginningTime": { - "type": "string", - "format": "date-time", - "x-nullable": false, - "description": "Beginning UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." + "sensitivityLabel": { + "type": "boolean", + "description": "A value indicating whether the field contains sensitivity label information.", + "x-nullable": true }, - "endingTime": { - "type": "string", - "format": "date-time", - "x-nullable": false, - "description": "End UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." - } - }, - "required": [ - "usedSeconds", - "beginningTime", - "endingTime" - ], - "description": "Represents service level indexers runtime information." - }, - "ServiceLimits": { - "type": "object", - "properties": { - "maxFieldsPerIndex": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The maximum allowed fields per index." + "analyzer": { + "$ref": "#/definitions/LexicalAnalyzerName", + "description": "The name of the analyzer to use for the field. This option can be used only with searchable fields and it can't be set together with either searchAnalyzer or indexAnalyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.", + "x-nullable": true }, - "maxFieldNestingDepthPerIndex": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The maximum depth which you can nest sub-fields in an index, including the top-level complex field. For example, a/b/c has a nesting depth of 3." + "searchAnalyzer": { + "$ref": "#/definitions/LexicalAnalyzerName", + "description": "The name of the analyzer used at search time for the field. This option can be used only with searchable fields. It must be set together with indexAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. This analyzer can be updated on an existing field. Must be null for complex fields.", + "x-nullable": true }, - "maxComplexCollectionFieldsPerIndex": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "description": "The maximum number of fields of type Collection(Edm.ComplexType) allowed in an index." + "indexAnalyzer": { + "$ref": "#/definitions/LexicalAnalyzerName", + "description": "The name of the analyzer used at indexing time for the field. This option can be used only with searchable fields. It must be set together with searchAnalyzer and it cannot be set together with the analyzer option. This property cannot be set to the name of a language analyzer; use the analyzer property instead if you need a language analyzer. Once the analyzer is chosen, it cannot be changed for the field. Must be null for complex fields.", + "x-nullable": true }, - "maxComplexObjectsInCollectionsPerDocument": { + "normalizer": { + "$ref": "#/definitions/LexicalNormalizerName", + "description": "The name of the normalizer to use for the field. This option can be used only with fields with filterable, sortable, or facetable enabled. Once the normalizer is chosen, it cannot be changed for the field. Must be null for complex fields.", + "x-nullable": true + }, + "dimensions": { "type": "integer", "format": "int32", - "x-nullable": true, - "description": "The maximum number of objects in complex collections allowed per document." + "description": "The dimensionality of the vector field.", + "minimum": 2, + "maximum": 4096 }, - "maxStoragePerIndex": { - "x-ms-client-name": "maxStoragePerIndexInBytes", - "type": "integer", - "format": "int64", - "x-nullable": true, - "description": "The maximum amount of storage in bytes allowed per index." + "vectorSearchProfile": { + "type": "string", + "description": "The name of the vector search profile that specifies the algorithm and vectorizer to use when searching the vector field.", + "x-nullable": true }, - "maxCumulativeIndexerRuntimeSeconds": { - "type": "integer", - "format": "int64", - "x-nullable": true, - "description": "The maximum cumulative runtime in seconds allowed for all indexers in the service over the current UTC period." + "vectorEncoding": { + "$ref": "#/definitions/VectorEncodingFormat", + "description": "The encoding format to interpret the field contents.", + "x-nullable": true + }, + "synonymMaps": { + "type": "array", + "description": "A list of the names of synonym maps to associate with this field. This option can be used only with searchable fields. Currently only one synonym map per field is supported. Assigning a synonym map to a field ensures that query terms targeting that field are expanded at query-time using the rules in the synonym map. This attribute can be changed on existing fields. Must be null or an empty collection for complex fields.", + "items": { + "type": "string" + } + }, + "fields": { + "type": "array", + "description": "A list of sub-fields if this is a field of type Edm.ComplexType or Collection(Edm.ComplexType). Must be null or empty for simple fields.", + "items": { + "$ref": "#/definitions/SearchField" + } + } + }, + "required": [ + "name", + "type" + ] + }, + "SearchFieldDataType": { + "type": "string", + "description": "Defines the data type of a field in a search index.", + "enum": [ + "Edm.String", + "Edm.Int32", + "Edm.Int64", + "Edm.Double", + "Edm.Boolean", + "Edm.DateTimeOffset", + "Edm.GeographyPoint", + "Edm.ComplexType", + "Edm.Single", + "Edm.Half", + "Edm.Int16", + "Edm.SByte", + "Edm.Byte" + ], + "x-ms-enum": { + "name": "SearchFieldDataType", + "modelAsString": true, + "values": [ + { + "name": "String", + "value": "Edm.String", + "description": "Indicates that a field contains a string." + }, + { + "name": "Int32", + "value": "Edm.Int32", + "description": "Indicates that a field contains a 32-bit signed integer." + }, + { + "name": "Int64", + "value": "Edm.Int64", + "description": "Indicates that a field contains a 64-bit signed integer." + }, + { + "name": "Double", + "value": "Edm.Double", + "description": "Indicates that a field contains an IEEE double-precision floating point number." + }, + { + "name": "Boolean", + "value": "Edm.Boolean", + "description": "Indicates that a field contains a Boolean value (true or false)." + }, + { + "name": "DateTimeOffset", + "value": "Edm.DateTimeOffset", + "description": "Indicates that a field contains a date/time value, including timezone information." + }, + { + "name": "GeographyPoint", + "value": "Edm.GeographyPoint", + "description": "Indicates that a field contains a geo-location in terms of longitude and latitude." + }, + { + "name": "Complex", + "value": "Edm.ComplexType", + "description": "Indicates that a field contains one or more complex objects that in turn have sub-fields of other types." + }, + { + "name": "Single", + "value": "Edm.Single", + "description": "Indicates that a field contains a single-precision floating point number. This is only valid when used with Collection(Edm.Single)." + }, + { + "name": "Half", + "value": "Edm.Half", + "description": "Indicates that a field contains a half-precision floating point number. This is only valid when used with Collection(Edm.Half)." + }, + { + "name": "Int16", + "value": "Edm.Int16", + "description": "Indicates that a field contains a 16-bit signed integer. This is only valid when used with Collection(Edm.Int16)." + }, + { + "name": "SByte", + "value": "Edm.SByte", + "description": "Indicates that a field contains a 8-bit signed integer. This is only valid when used with Collection(Edm.SByte)." + }, + { + "name": "Byte", + "value": "Edm.Byte", + "description": "Indicates that a field contains a 8-bit unsigned integer. This is only valid when used with Collection(Edm.Byte)." + } + ] + } + }, + "SearchIndex": { + "type": "object", + "description": "Represents a search index definition, which describes the fields and search behavior of an index.", + "properties": { + "name": { + "type": "string", + "description": "The name of the index." + }, + "description": { + "type": "string", + "description": "The description of the index." + }, + "fields": { + "type": "array", + "description": "The fields of the index.", + "items": { + "$ref": "#/definitions/SearchField" + } + }, + "scoringProfiles": { + "type": "array", + "description": "The scoring profiles for the index.", + "items": { + "$ref": "#/definitions/ScoringProfile" + } + }, + "defaultScoringProfile": { + "type": "string", + "description": "The name of the scoring profile to use if none is specified in the query. If this property is not set and no scoring profile is specified in the query, then default scoring (tf-idf) will be used." + }, + "corsOptions": { + "$ref": "#/definitions/CorsOptions", + "description": "Options to control Cross-Origin Resource Sharing (CORS) for the index.", + "x-nullable": true + }, + "suggesters": { + "type": "array", + "description": "The suggesters for the index.", + "items": { + "$ref": "#/definitions/SearchSuggester" + } + }, + "analyzers": { + "type": "array", + "description": "The analyzers for the index.", + "items": { + "$ref": "#/definitions/LexicalAnalyzer" + } + }, + "tokenizers": { + "type": "array", + "description": "The tokenizers for the index.", + "items": { + "$ref": "#/definitions/LexicalTokenizer" + } + }, + "tokenFilters": { + "type": "array", + "description": "The token filters for the index.", + "items": { + "$ref": "#/definitions/TokenFilter" + } + }, + "charFilters": { + "type": "array", + "description": "The character filters for the index.", + "items": { + "$ref": "#/definitions/CharFilter" + } + }, + "normalizers": { + "type": "array", + "description": "The normalizers for the index.", + "items": { + "$ref": "#/definitions/LexicalNormalizer" + } + }, + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data. Once you have encrypted your data, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", + "x-nullable": true + }, + "similarity": { + "$ref": "#/definitions/SimilarityAlgorithm", + "description": "The type of similarity algorithm to be used when scoring and ranking the documents matching a search query. The similarity algorithm can only be defined at index creation time and cannot be modified on existing indexes. If null, the ClassicSimilarity algorithm is used." + }, + "semantic": { + "$ref": "#/definitions/SemanticSearch", + "description": "Defines parameters for a search index that influence semantic capabilities.", + "x-nullable": true + }, + "vectorSearch": { + "$ref": "#/definitions/VectorSearch", + "description": "Contains configuration options related to vector search.", + "x-nullable": true + }, + "permissionFilterOption": { + "$ref": "#/definitions/SearchIndexPermissionFilterOption", + "description": "A value indicating whether permission filtering is enabled for the index.", + "x-nullable": true + }, + "purviewEnabled": { + "type": "boolean", + "description": "A value indicating whether Purview is enabled for the index.", + "x-nullable": true + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the index.", + "x-ms-client-name": "eTag" + } + }, + "required": [ + "name", + "fields" + ] + }, + "SearchIndexClientOptions": { + "type": "object", + "description": "Client initialization options for SearchIndexClient.", + "properties": { + "indexName": { + "type": "string", + "description": "The name of the index." + } + }, + "required": [ + "indexName" + ] + }, + "SearchIndexFieldReference": { + "type": "object", + "description": "Field reference for a search index.", + "properties": { + "name": { + "type": "string", + "description": "The name of the field." + } + }, + "required": [ + "name" + ] + }, + "SearchIndexKnowledgeSource": { + "type": "object", + "description": "Knowledge Source targeting a search index.", + "properties": { + "searchIndexParameters": { + "$ref": "#/definitions/SearchIndexKnowledgeSourceParameters", + "description": "The parameters for the knowledge source." + } + }, + "required": [ + "searchIndexParameters" + ], + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSource" } + ], + "x-ms-discriminator-value": "searchIndex" + }, + "SearchIndexKnowledgeSourceParameters": { + "type": "object", + "description": "Parameters for search index knowledge source.", + "properties": { + "searchIndexName": { + "type": "string", + "description": "The name of the Search index." + }, + "sourceDataFields": { + "type": "array", + "description": "Used to request additional fields for referenced source data.", + "items": { + "$ref": "#/definitions/SearchIndexFieldReference" + } + }, + "searchFields": { + "type": "array", + "description": "Used to restrict which fields to search on the search index.", + "items": { + "$ref": "#/definitions/SearchIndexFieldReference" + } + }, + "semanticConfigurationName": { + "type": "string", + "description": "Used to specify a different semantic configuration on the target search index other than the default one." + } + }, + "required": [ + "searchIndexName" + ] + }, + "SearchIndexKnowledgeSourceParams": { + "type": "object", + "description": "Specifies runtime parameters for a search index knowledge source", + "properties": { + "filterAddOn": { + "type": "string", + "description": "A filter condition applied to the index (e.g., 'State eq VA')." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSourceParams" + } + ], + "x-ms-discriminator-value": "searchIndex" + }, + "SearchIndexPermissionFilterOption": { + "type": "string", + "description": "A value indicating whether permission filtering is enabled for the index.", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "SearchIndexPermissionFilterOption", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "enabled", + "description": "enabled." + }, + { + "name": "Disabled", + "value": "disabled", + "description": "disabled." + } + ] + } + }, + "SearchIndexer": { + "type": "object", + "description": "Represents an indexer.", + "properties": { + "name": { + "type": "string", + "description": "The name of the indexer." + }, + "description": { + "type": "string", + "description": "The description of the indexer." + }, + "dataSourceName": { + "type": "string", + "description": "The name of the datasource from which this indexer reads data." + }, + "skillsetName": { + "type": "string", + "description": "The name of the skillset executing with this indexer." + }, + "targetIndexName": { + "type": "string", + "description": "The name of the index to which this indexer writes data." + }, + "schedule": { + "$ref": "#/definitions/IndexingSchedule", + "description": "The schedule for this indexer.", + "x-nullable": true + }, + "parameters": { + "$ref": "#/definitions/IndexingParameters", + "description": "Parameters for indexer execution.", + "x-nullable": true + }, + "fieldMappings": { + "type": "array", + "description": "Defines mappings between fields in the data source and corresponding target fields in the index.", + "items": { + "$ref": "#/definitions/FieldMapping" + } + }, + "outputFieldMappings": { + "type": "array", + "description": "Output field mappings are applied after enrichment and immediately before indexing.", + "items": { + "$ref": "#/definitions/FieldMapping" + } + }, + "disabled": { + "type": "boolean", + "description": "A value indicating whether the indexer is disabled. Default is false.", + "default": false, + "x-nullable": true + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the indexer.", + "x-ms-client-name": "eTag" + }, + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your indexer definition (as well as indexer execution status) when you want full assurance that no one, not even Microsoft, can decrypt them. Once you have encrypted your indexer definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your indexer definition (and indexer execution status) will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", + "x-nullable": true + }, + "cache": { + "$ref": "#/definitions/SearchIndexerCache", + "description": "Adds caching to an enrichment pipeline to allow for incremental modification steps without having to rebuild the index every time.", + "x-nullable": true + } + }, + "required": [ + "name", + "dataSourceName", + "targetIndexName" + ] + }, + "SearchIndexerCache": { + "type": "object", + "description": "The type of the cache.", + "properties": { + "id": { + "type": "string", + "description": "A guid for the SearchIndexerCache." + }, + "storageConnectionString": { + "type": "string", + "description": "The connection string to the storage account where the cache data will be persisted." + }, + "enableReprocessing": { + "type": "boolean", + "description": "Specifies whether incremental reprocessing is enabled.", + "x-nullable": true + }, + "identity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for connections to the enrichment cache. If the connection string indicates an identity (ResourceId) and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true + } + } + }, + "SearchIndexerDataContainer": { + "type": "object", + "description": "Represents information about the entity (such as Azure SQL table or CosmosDB collection) that will be indexed.", + "properties": { + "name": { + "type": "string", + "description": "The name of the table or view (for Azure SQL data source) or collection (for CosmosDB data source) that will be indexed." + }, + "query": { + "type": "string", + "description": "A query that is applied to this data container. The syntax and meaning of this parameter is datasource-specific. Not supported by Azure SQL datasources." + } + }, + "required": [ + "name" + ] + }, + "SearchIndexerDataIdentity": { + "type": "object", + "description": "Abstract base type for data identities.", + "properties": { + "@odata.type": { + "type": "string", + "description": "A URI fragment specifying the type of identity." + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type" + ] + }, + "SearchIndexerDataNoneIdentity": { + "type": "object", + "description": "Clears the identity property of a datasource.", + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerDataIdentity" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.DataNoneIdentity" + }, + "SearchIndexerDataSource": { + "type": "object", + "description": "Represents a datasource definition, which can be used to configure an indexer.", + "properties": { + "name": { + "type": "string", + "description": "The name of the datasource." + }, + "description": { + "type": "string", + "description": "The description of the datasource." + }, + "type": { + "$ref": "#/definitions/SearchIndexerDataSourceType", + "description": "The type of the datasource." + }, + "subType": { + "type": "string", + "description": "A specific type of the data source, in case the resource is capable of different modalities. For example, 'MongoDb' for certain 'cosmosDb' accounts.", + "readOnly": true + }, + "credentials": { + "$ref": "#/definitions/DataSourceCredentials", + "description": "Credentials for the datasource.", + "x-ms-client-flatten": true + }, + "container": { + "$ref": "#/definitions/SearchIndexerDataContainer", + "description": "The data container for the datasource." + }, + "identity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "An explicit managed identity to use for this datasource. If not specified and the connection string is a managed identity, the system-assigned managed identity is used. If not specified, the value remains unchanged. If \"none\" is specified, the value of this property is cleared.", + "x-nullable": true + }, + "indexerPermissionOptions": { + "type": "array", + "description": "Ingestion options with various types of permission data.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/IndexerPermissionOption" + } + }, + "dataChangeDetectionPolicy": { + "$ref": "#/definitions/DataChangeDetectionPolicy", + "description": "The data change detection policy for the datasource.", + "x-nullable": true + }, + "dataDeletionDetectionPolicy": { + "$ref": "#/definitions/DataDeletionDetectionPolicy", + "description": "The data deletion detection policy for the datasource.", + "x-nullable": true + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the data source.", + "x-ms-client-name": "eTag" + }, + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your datasource definition when you want full assurance that no one, not even Microsoft, can decrypt your data source definition. Once you have encrypted your data source definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your datasource definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", + "x-nullable": true + } + }, + "required": [ + "name", + "type", + "credentials", + "container" + ] + }, + "SearchIndexerDataSourceType": { + "type": "string", + "description": "Defines the type of a datasource.", + "enum": [ + "azuresql", + "cosmosdb", + "azureblob", + "azuretable", + "mysql", + "adlsgen2", + "onelake", + "sharepoint" + ], + "x-ms-enum": { + "name": "SearchIndexerDataSourceType", + "modelAsString": true, + "values": [ + { + "name": "AzureSql", + "value": "azuresql", + "description": "Indicates an Azure SQL datasource." + }, + { + "name": "CosmosDb", + "value": "cosmosdb", + "description": "Indicates a CosmosDB datasource." + }, + { + "name": "AzureBlob", + "value": "azureblob", + "description": "Indicates an Azure Blob datasource." + }, + { + "name": "AzureTable", + "value": "azuretable", + "description": "Indicates an Azure Table datasource." + }, + { + "name": "MySql", + "value": "mysql", + "description": "Indicates a MySql datasource." + }, + { + "name": "AdlsGen2", + "value": "adlsgen2", + "description": "Indicates an ADLS Gen2 datasource." + }, + { + "name": "OneLake", + "value": "onelake", + "description": "Indicates a Microsoft Fabric OneLake datasource." + }, + { + "name": "SharePoint", + "value": "sharepoint", + "description": "Indicates a SharePoint datasource." + } + ] + } + }, + "SearchIndexerDataUserAssignedIdentity": { + "type": "object", + "description": "Specifies the identity for a datasource to use.", + "properties": { + "userAssignedIdentity": { + "type": "string", + "description": "The fully qualified Azure resource Id of a user assigned managed identity typically in the form \"/subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId\" that should have been assigned to the search service." + } + }, + "required": [ + "userAssignedIdentity" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerDataIdentity" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.DataUserAssignedIdentity" + }, + "SearchIndexerError": { + "type": "object", + "description": "Represents an item- or document-level indexing error.", + "properties": { + "key": { + "type": "string", + "description": "The key of the item for which indexing failed.", + "readOnly": true + }, + "errorMessage": { + "type": "string", + "description": "The message describing the error that occurred while processing the item.", + "readOnly": true + }, + "statusCode": { + "type": "integer", + "format": "int32", + "description": "The status code indicating why the indexing operation failed. Possible values include: 400 for a malformed input document, 404 for document not found, 409 for a version conflict, 422 when the index is temporarily unavailable, or 503 for when the service is too busy.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the source at which the error originated. For example, this could refer to a particular skill in the attached skillset. This may not be always available.", + "readOnly": true + }, + "details": { + "type": "string", + "description": "Additional, verbose details about the error to assist in debugging the indexer. This may not be always available.", + "readOnly": true + }, + "documentationLink": { + "type": "string", + "description": "A link to a troubleshooting guide for these classes of errors. This may not be always available.", + "readOnly": true + } + }, + "required": [ + "errorMessage", + "statusCode" + ] + }, + "SearchIndexerIndexProjection": { + "type": "object", + "description": "Definition of additional projections to secondary search indexes.", + "properties": { + "selectors": { + "type": "array", + "description": "A list of projections to be performed to secondary search indexes.", + "items": { + "$ref": "#/definitions/SearchIndexerIndexProjectionSelector" + } + }, + "parameters": { + "$ref": "#/definitions/SearchIndexerIndexProjectionsParameters", + "description": "A dictionary of index projection-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type." + } + }, + "required": [ + "selectors" + ] + }, + "SearchIndexerIndexProjectionSelector": { + "type": "object", + "description": "Description for what data to store in the designated search index.", + "properties": { + "targetIndexName": { + "type": "string", + "description": "Name of the search index to project to. Must have a key field with the 'keyword' analyzer set." + }, + "parentKeyFieldName": { + "type": "string", + "description": "Name of the field in the search index to map the parent document's key value to. Must be a string field that is filterable and not the key field." + }, + "sourceContext": { + "type": "string", + "description": "Source context for the projections. Represents the cardinality at which the document will be split into multiple sub documents." + }, + "mappings": { + "type": "array", + "description": "Mappings for the projection, or which source should be mapped to which field in the target index.", + "items": { + "$ref": "#/definitions/InputFieldMappingEntry" + } + } + }, + "required": [ + "targetIndexName", + "parentKeyFieldName", + "sourceContext", + "mappings" + ] + }, + "SearchIndexerIndexProjectionsParameters": { + "type": "object", + "description": "A dictionary of index projection-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.", + "properties": { + "projectionMode": { + "$ref": "#/definitions/IndexProjectionMode", + "description": "Defines behavior of the index projections in relation to the rest of the indexer." + } + }, + "additionalProperties": {} + }, + "SearchIndexerKnowledgeStore": { + "type": "object", + "description": "Definition of additional projections to azure blob, table, or files, of enriched data.", + "properties": { + "storageConnectionString": { + "type": "string", + "description": "The connection string to the storage account projections will be stored in." + }, + "projections": { + "type": "array", + "description": "A list of additional projections to perform during indexing.", + "items": { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreProjection" + } + }, + "identity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for connections to Azure Storage when writing knowledge store projections. If the connection string indicates an identity (ResourceId) and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true + }, + "parameters": { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreParameters", + "description": "A dictionary of knowledge store-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type." + } + }, + "required": [ + "storageConnectionString", + "projections" + ] + }, + "SearchIndexerKnowledgeStoreBlobProjectionSelector": { + "type": "object", + "description": "Abstract class to share properties between concrete selectors.", + "properties": { + "storageContainer": { + "type": "string", + "description": "Blob container to store projections in." + } + }, + "required": [ + "storageContainer" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreProjectionSelector" + } + ] + }, + "SearchIndexerKnowledgeStoreFileProjectionSelector": { + "type": "object", + "description": "Projection definition for what data to store in Azure Files.", + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreBlobProjectionSelector" + } + ] + }, + "SearchIndexerKnowledgeStoreObjectProjectionSelector": { + "type": "object", + "description": "Projection definition for what data to store in Azure Blob.", + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreBlobProjectionSelector" + } + ] + }, + "SearchIndexerKnowledgeStoreParameters": { + "type": "object", + "description": "A dictionary of knowledge store-specific configuration properties. Each name is the name of a specific property. Each value must be of a primitive type.", + "properties": { + "synthesizeGeneratedKeyName": { + "type": "boolean", + "description": "Whether or not projections should synthesize a generated key name if one isn't already present.", + "default": false + } + }, + "additionalProperties": {} + }, + "SearchIndexerKnowledgeStoreProjection": { + "type": "object", + "description": "Container object for various projection selectors.", + "properties": { + "tables": { + "type": "array", + "description": "Projections to Azure Table storage.", + "items": { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreTableProjectionSelector" + } + }, + "objects": { + "type": "array", + "description": "Projections to Azure Blob storage.", + "items": { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreObjectProjectionSelector" + } + }, + "files": { + "type": "array", + "description": "Projections to Azure File storage.", + "items": { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreFileProjectionSelector" + } + } + } + }, + "SearchIndexerKnowledgeStoreProjectionSelector": { + "type": "object", + "description": "Abstract class to share properties between concrete selectors.", + "properties": { + "referenceKeyName": { + "type": "string", + "description": "Name of reference key to different projection." + }, + "generatedKeyName": { + "type": "string", + "description": "Name of generated key to store projection under." + }, + "source": { + "type": "string", + "description": "Source data to project." + }, + "sourceContext": { + "type": "string", + "description": "Source context for complex projections." + }, + "inputs": { + "type": "array", + "description": "Nested inputs for complex projections.", + "items": { + "$ref": "#/definitions/InputFieldMappingEntry" + } + } + } + }, + "SearchIndexerKnowledgeStoreTableProjectionSelector": { + "type": "object", + "description": "Description for what data to store in Azure Tables.", + "properties": { + "generatedKeyName": { + "type": "string", + "description": "Name of generated key to store projection under." + }, + "tableName": { + "type": "string", + "description": "Name of the Azure table to store projected data in." + } + }, + "required": [ + "generatedKeyName", + "tableName" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerKnowledgeStoreProjectionSelector" + } + ] + }, + "SearchIndexerLimits": { + "type": "object", + "description": "Represents the limits that can be applied to an indexer.", + "properties": { + "maxRunTime": { + "type": "string", + "format": "duration", + "description": "The maximum duration that the indexer is permitted to run for one execution.", + "readOnly": true + }, + "maxDocumentExtractionSize": { + "type": "integer", + "format": "int64", + "description": "The maximum size of a document, in bytes, which will be considered valid for indexing.", + "readOnly": true + }, + "maxDocumentContentCharactersToExtract": { + "type": "integer", + "format": "int64", + "description": "The maximum number of characters that will be extracted from a document picked up for indexing.", + "readOnly": true + } + } + }, + "SearchIndexerSkill": { + "type": "object", + "description": "Base type for skills.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + }, + "name": { + "type": "string", + "description": "The name of the skill which uniquely identifies it within the skillset. A skill with no name defined will be given a default name of its 1-based index in the skills array, prefixed with the character '#'." + }, + "description": { + "type": "string", + "description": "The description of the skill which describes the inputs, outputs, and usage of the skill." + }, + "context": { + "type": "string", + "description": "Represents the level at which operations take place, such as the document root or document content (for example, /document or /document/content). The default is /document." + }, + "inputs": { + "type": "array", + "description": "Inputs of the skills could be a column in the source data set, or the output of an upstream skill.", + "items": { + "$ref": "#/definitions/InputFieldMappingEntry" + } + }, + "outputs": { + "type": "array", + "description": "The output of a skill is either a field in a search index, or a value that can be consumed as an input by another skill.", + "items": { + "$ref": "#/definitions/OutputFieldMappingEntry" + } + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type", + "inputs", + "outputs" + ] + }, + "SearchIndexerSkillset": { + "type": "object", + "description": "A list of skills.", + "properties": { + "name": { + "type": "string", + "description": "The name of the skillset." + }, + "description": { + "type": "string", + "description": "The description of the skillset." + }, + "skills": { + "type": "array", + "description": "A list of skills in the skillset.", + "items": { + "$ref": "#/definitions/SearchIndexerSkill" + } + }, + "cognitiveServices": { + "$ref": "#/definitions/CognitiveServicesAccount", + "description": "Details about the Azure AI service to be used when running skills." + }, + "knowledgeStore": { + "$ref": "#/definitions/SearchIndexerKnowledgeStore", + "description": "Definition of additional projections to Azure blob, table, or files, of enriched data." + }, + "indexProjections": { + "$ref": "#/definitions/SearchIndexerIndexProjection", + "description": "Definition of additional projections to secondary search index(es)." + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the skillset.", + "x-ms-client-name": "eTag" + }, + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your skillset definition when you want full assurance that no one, not even Microsoft, can decrypt your skillset definition. Once you have encrypted your skillset definition, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your skillset definition will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", + "x-nullable": true + } + }, + "required": [ + "name", + "skills" + ] + }, + "SearchIndexerStatus": { + "type": "object", + "description": "Represents the current status and execution history of an indexer.", + "properties": { + "name": { + "type": "string", + "description": "The name of the indexer.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/IndexerStatus", + "description": "Overall indexer status.", + "readOnly": true + }, + "runtime": { + "$ref": "#/definitions/IndexerRuntime", + "description": "Snapshot of the indexer's cumulative runtime consumption for the service over the current UTC period.", + "readOnly": true + }, + "lastResult": { + "$ref": "#/definitions/IndexerExecutionResult", + "description": "The result of the most recent or an in-progress indexer execution.", + "readOnly": true + }, + "executionHistory": { + "type": "array", + "description": "History of the recent indexer executions, sorted in reverse chronological order.", + "items": { + "$ref": "#/definitions/IndexerExecutionResult" + }, + "readOnly": true + }, + "limits": { + "$ref": "#/definitions/SearchIndexerLimits", + "description": "The execution limits for the indexer.", + "readOnly": true + }, + "currentState": { + "$ref": "#/definitions/IndexerCurrentState", + "description": "All of the state that defines and dictates the indexer's current execution.", + "readOnly": true + } + }, + "required": [ + "name", + "status", + "runtime", + "executionHistory", + "limits" + ] + }, + "SearchIndexerWarning": { + "type": "object", + "description": "Represents an item-level warning.", + "properties": { + "key": { + "type": "string", + "description": "The key of the item which generated a warning.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The message describing the warning that occurred while processing the item.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the source at which the warning originated. For example, this could refer to a particular skill in the attached skillset. This may not be always available.", + "readOnly": true + }, + "details": { + "type": "string", + "description": "Additional, verbose details about the warning to assist in debugging the indexer. This may not be always available.", + "readOnly": true + }, + "documentationLink": { + "type": "string", + "description": "A link to a troubleshooting guide for these classes of warnings. This may not be always available.", + "readOnly": true + } + }, + "required": [ + "message" + ] + }, + "SearchMode": { + "type": "string", + "description": "Specifies whether any or all of the search terms must be matched in order to count the document as a match.", + "enum": [ + "any", + "all" + ], + "x-ms-enum": { + "name": "SearchMode", + "modelAsString": true, + "values": [ + { + "name": "Any", + "value": "any", + "description": "Any of the search terms must be matched in order to count the document as a match." + }, + { + "name": "All", + "value": "all", + "description": "All of the search terms must be matched in order to count the document as a match." + } + ] + } + }, + "SearchRequest": { + "type": "object", + "description": "Parameters for filtering, sorting, faceting, paging, and other search query behaviors.", + "properties": { + "count": { + "type": "boolean", + "description": "A value that specifies whether to fetch the total count of results. Default is false. Setting this value to true may have a performance impact. Note that the count returned is an approximation." + }, + "facets": { + "type": "array", + "description": "The list of facet expressions to apply to the search query. Each facet expression contains a field name, optionally followed by a comma-separated list of name:value pairs.", + "items": { + "type": "string" + } + }, + "filter": { + "type": "string", + "description": "The OData $filter expression to apply to the search query." + }, + "highlight": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting." + }, + "highlightPostTag": { + "type": "string", + "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>." + }, + "highlightPreTag": { + "type": "string", + "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. Default is <em>." + }, + "minimumCoverage": { + "type": "number", + "format": "double", + "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a search query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 100." + }, + "orderby": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses." + }, + "queryType": { + "$ref": "#/definitions/QueryType", + "description": "A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax." + }, + "scoringStatistics": { + "$ref": "#/definitions/ScoringStatistics", + "description": "A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is 'local'. Use 'global' to aggregate scoring statistics globally before scoring. Using global scoring statistics can increase latency of search queries." + }, + "sessionId": { + "type": "string", + "description": "A value to be used to create a sticky session, which can help getting more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character." + }, + "scoringParameters": { + "type": "array", + "description": "The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be \"mylocation--122.2,44.8\" (without the quotes).", + "items": { + "type": "string" + } + }, + "scoringProfile": { + "type": "string", + "description": "The name of a scoring profile to evaluate match scores for matching documents in order to sort the results." + }, + "debug": { + "$ref": "#/definitions/QueryDebugMode", + "description": "Enables a debugging tool that can be used to further explore your reranked results." + }, + "search": { + "type": "string", + "description": "A full-text search query expression; Use \"*\" or omit this parameter to match all documents." + }, + "searchFields": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter." + }, + "searchMode": { + "$ref": "#/definitions/SearchMode", + "description": "A value that specifies whether any or all of the search terms must be matched in order to count the document as a match." + }, + "queryLanguage": { + "$ref": "#/definitions/QueryLanguage", + "description": "A value that specifies the language of the search query." + }, + "speller": { + "$ref": "#/definitions/QuerySpellerType", + "description": "A value that specifies the type of the speller to use to spell-correct individual search query terms." + }, + "select": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included." + }, + "skip": { + "type": "integer", + "format": "int32", + "description": "The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use skip due to this limitation, consider using orderby on a totally-ordered key and filter with a range query instead." + }, + "top": { + "type": "integer", + "format": "int32", + "description": "The number of search results to retrieve. This can be used in conjunction with $skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results." + }, + "semanticConfiguration": { + "type": "string", + "description": "The name of a semantic configuration that will be used when processing documents for queries of type semantic." + }, + "semanticErrorHandling": { + "$ref": "#/definitions/SemanticErrorMode", + "description": "Allows the user to choose whether a semantic call should fail completely (default / current behavior), or to return partial results." + }, + "semanticMaxWaitInMilliseconds": { + "type": "integer", + "format": "int32", + "description": "Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails.", + "minimum": 700 + }, + "semanticQuery": { + "type": "string", + "description": "Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase." + }, + "answers": { + "$ref": "#/definitions/QueryAnswerType", + "description": "A value that specifies whether answers should be returned as part of the search response." + }, + "captions": { + "$ref": "#/definitions/QueryCaptionType", + "description": "A value that specifies whether captions should be returned as part of the search response." + }, + "queryRewrites": { + "$ref": "#/definitions/QueryRewritesType", + "description": "A value that specifies whether query rewrites should be generated to augment the search query." + }, + "semanticFields": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of field names used for semantic ranking." + }, + "vectorQueries": { + "type": "array", + "description": "The query parameters for vector and hybrid search queries.", + "items": { + "$ref": "#/definitions/VectorQuery" + } + }, + "vectorFilterMode": { + "$ref": "#/definitions/VectorFilterMode", + "description": "Determines whether or not filters are applied before or after the vector search is performed. Default is 'preFilter' for new indexes." + }, + "hybridSearch": { + "$ref": "#/definitions/HybridSearch", + "description": "The query parameters to configure hybrid search behaviors." + } + } + }, + "SearchResourceEncryptionKey": { + "type": "object", + "description": "A customer-managed encryption key in Azure Key Vault. Keys that you create and manage can be used to encrypt or decrypt data-at-rest, such as indexes and synonym maps.", + "properties": { + "keyVaultKeyName": { + "type": "string", + "description": "The name of your Azure Key Vault key to be used to encrypt your data at rest." + }, + "keyVaultKeyVersion": { + "type": "string", + "description": "The version of your Azure Key Vault key to be used to encrypt your data at rest." + }, + "keyVaultUri": { + "type": "string", + "description": "The URI of your Azure Key Vault, also referred to as DNS name, that contains the key to be used to encrypt your data at rest. An example URI might be `https://my-keyvault-name.vault.azure.net`." + }, + "accessCredentials": { + "$ref": "#/definitions/AzureActiveDirectoryApplicationCredentials", + "description": "Optional Azure Active Directory credentials used for accessing your Azure Key Vault. Not required if using managed identity instead.", + "x-ms-client-flatten": true + }, + "identity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "An explicit managed identity to use for this encryption key. If not specified and the access credentials property is null, the system-assigned managed identity is used. On update to the resource, if the explicit identity is unspecified, it remains unchanged. If \"none\" is specified, the value of this property is cleared.", + "x-nullable": true + } + }, + "required": [ + "keyVaultKeyName", + "keyVaultUri" + ] + }, + "SearchResult": { + "type": "object", + "description": "Contains a document found by a search query, plus associated metadata.", + "properties": { + "@search.score": { + "type": "number", + "format": "double", + "description": "The relevance score of the document compared to other documents returned by the query.", + "readOnly": true, + "x-ms-client-name": "score" + }, + "@search.rerankerScore": { + "type": "number", + "format": "double", + "description": "The relevance score computed by the semantic ranker for the top search results. Search results are sorted by the RerankerScore first and then by the Score. RerankerScore is only returned for queries of type 'semantic'.", + "x-nullable": true, + "readOnly": true, + "x-ms-client-name": "rerankerScore" + }, + "@search.rerankerBoostedScore": { + "type": "number", + "format": "double", + "description": "The relevance score computed by boosting the Reranker Score. Search results are sorted by the RerankerScore/RerankerBoostedScore based on useScoringProfileBoostedRanking in the Semantic Config. RerankerBoostedScore is only returned for queries of type 'semantic'.", + "x-nullable": true, + "readOnly": true, + "x-ms-client-name": "rerankerBoostedScore" + }, + "@search.highlights": { + "type": "object", + "description": "Text fragments from the document that indicate the matching search terms, organized by each applicable field; null if hit highlighting was not enabled for the query.", + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "readOnly": true, + "x-ms-client-name": "highlights" + }, + "@search.captions": { + "type": "array", + "description": "Captions are the most representative passages from the document relatively to the search query. They are often used as document summary. Captions are only returned for queries of type 'semantic'.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/QueryCaptionResult" + }, + "readOnly": true, + "x-ms-client-name": "captions" + }, + "@search.documentDebugInfo": { + "$ref": "#/definitions/DocumentDebugInfo", + "description": "Contains debugging information that can be used to further explore your search results.", + "x-nullable": true, + "readOnly": true, + "x-ms-client-name": "documentDebugInfo" + } + }, + "required": [ + "@search.score" + ], + "additionalProperties": {} + }, + "SearchScoreThreshold": { + "type": "object", + "description": "The results of the vector query will filter based on the '@search.score' value. Note this is the @search.score returned as part of the search response. The threshold direction will be chosen for higher @search.score.", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The threshold will filter based on the '@search.score' value. Note this is the @search.score returned as part of the search response. The threshold direction will be chosen for higher @search.score." + } + }, + "required": [ + "value" + ], + "allOf": [ + { + "$ref": "#/definitions/VectorThreshold" + } + ], + "x-ms-discriminator-value": "searchScore" + }, + "SearchServiceCounters": { + "type": "object", + "description": "Represents service-level resource counters and quotas.", + "properties": { + "aliasesCount": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of aliases." + }, + "documentCount": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of documents across all indexes in the service." + }, + "indexesCount": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of indexes." + }, + "indexersCount": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of indexers." + }, + "dataSourcesCount": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of data sources." + }, + "storageSize": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total size of used storage in bytes." + }, + "synonymMaps": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of synonym maps." + }, + "skillsetCount": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total number of skillsets." + }, + "vectorIndexSize": { + "$ref": "#/definitions/ResourceCounter", + "description": "Total memory consumption of all vector indexes within the service, in bytes." + } + }, + "required": [ + "aliasesCount", + "documentCount", + "indexesCount", + "indexersCount", + "dataSourcesCount", + "storageSize", + "synonymMaps", + "skillsetCount", + "vectorIndexSize" + ] + }, + "SearchServiceLimits": { + "type": "object", + "description": "Represents various service level limits.", + "properties": { + "maxFieldsPerIndex": { + "type": "integer", + "format": "int32", + "description": "The maximum allowed fields per index.", + "x-nullable": true + }, + "maxFieldNestingDepthPerIndex": { + "type": "integer", + "format": "int32", + "description": "The maximum depth which you can nest sub-fields in an index, including the top-level complex field. For example, a/b/c has a nesting depth of 3.", + "x-nullable": true + }, + "maxComplexCollectionFieldsPerIndex": { + "type": "integer", + "format": "int32", + "description": "The maximum number of fields of type Collection(Edm.ComplexType) allowed in an index.", + "x-nullable": true + }, + "maxComplexObjectsInCollectionsPerDocument": { + "type": "integer", + "format": "int32", + "description": "The maximum number of objects in complex collections allowed per document.", + "x-nullable": true + }, + "maxStoragePerIndex": { + "type": "integer", + "format": "int64", + "description": "The maximum amount of storage in bytes allowed per index.", + "x-nullable": true + }, + "maxCumulativeIndexerRuntimeSeconds": { + "type": "integer", + "format": "int64", + "description": "The maximum cumulative indexer runtime in seconds allowed for the service.", + "x-nullable": true + } + } + }, + "SearchServiceStatistics": { + "type": "object", + "description": "Response from a get service statistics request. If successful, it includes service level counters and limits.", + "properties": { + "counters": { + "$ref": "#/definitions/SearchServiceCounters", + "description": "Service level resource counters." + }, + "limits": { + "$ref": "#/definitions/SearchServiceLimits", + "description": "Service level general limits." + }, + "indexersRuntime": { + "$ref": "#/definitions/ServiceIndexersRuntime", + "description": "Service level indexer runtime consumption." + } + }, + "required": [ + "counters", + "limits", + "indexersRuntime" + ] + }, + "SearchSuggester": { + "type": "object", + "description": "Defines how the Suggest API should apply to a group of fields in the index.", + "properties": { + "name": { + "type": "string", + "description": "The name of the suggester." + }, + "searchMode": { + "type": "string", + "description": "A value indicating the capabilities of the suggester.", + "enum": [ + "analyzingInfixMatching" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "sourceFields": { + "type": "array", + "description": "The list of field names to which the suggester applies. Each field must be searchable.", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "searchMode", + "sourceFields" + ] + }, + "SemanticConfiguration": { + "type": "object", + "description": "Defines a specific configuration to be used in the context of semantic capabilities.", + "properties": { + "name": { + "type": "string", + "description": "The name of the semantic configuration." + }, + "prioritizedFields": { + "$ref": "#/definitions/SemanticPrioritizedFields", + "description": "Describes the title, content, and keyword fields to be used for semantic ranking, captions, highlights, and answers. At least one of the three sub properties (titleField, prioritizedKeywordsFields and prioritizedContentFields) need to be set." + }, + "rankingOrder": { + "$ref": "#/definitions/RankingOrder", + "description": "Specifies the score type to be used for the sort order of the search results.", + "x-nullable": true + }, + "flightingOptIn": { + "type": "boolean", + "description": "Determines which semantic or query rewrite models to use during model flighting/upgrades.", + "default": false + } + }, + "required": [ + "name", + "prioritizedFields" + ] + }, + "SemanticDebugInfo": { + "type": "object", + "description": "Contains debugging information specific to semantic ranking requests.", + "properties": { + "titleField": { + "$ref": "#/definitions/QueryResultDocumentSemanticField", + "description": "The title field that was sent to the semantic enrichment process, as well as how it was used", + "readOnly": true + }, + "contentFields": { + "type": "array", + "description": "The content fields that were sent to the semantic enrichment process, as well as how they were used", + "items": { + "$ref": "#/definitions/QueryResultDocumentSemanticField" + }, + "readOnly": true + }, + "keywordFields": { + "type": "array", + "description": "The keyword fields that were sent to the semantic enrichment process, as well as how they were used", + "items": { + "$ref": "#/definitions/QueryResultDocumentSemanticField" + }, + "readOnly": true + }, + "rerankerInput": { + "$ref": "#/definitions/QueryResultDocumentRerankerInput", + "description": "The raw concatenated strings that were sent to the semantic enrichment process.", + "readOnly": true + } + } + }, + "SemanticErrorMode": { + "type": "string", + "description": "Allows the user to choose whether a semantic call should fail completely, or to return partial results.", + "enum": [ + "partial", + "fail" + ], + "x-ms-enum": { + "name": "SemanticErrorMode", + "modelAsString": true, + "values": [ + { + "name": "Partial", + "value": "partial", + "description": "If the semantic processing fails, partial results still return. The definition of partial results depends on what semantic step failed and what was the reason for failure." + }, + { + "name": "Fail", + "value": "fail", + "description": "If there is an exception during the semantic processing step, the query will fail and return the appropriate HTTP code depending on the error." + } + ] + } + }, + "SemanticErrorReason": { + "type": "string", + "description": "Reason that a partial response was returned for a semantic ranking request.", + "enum": [ + "maxWaitExceeded", + "capacityOverloaded", + "transient" + ], + "x-ms-enum": { + "name": "SemanticErrorReason", + "modelAsString": true, + "values": [ + { + "name": "MaxWaitExceeded", + "value": "maxWaitExceeded", + "description": "If `semanticMaxWaitInMilliseconds` was set and the semantic processing duration exceeded that value. Only the base results were returned." + }, + { + "name": "CapacityOverloaded", + "value": "capacityOverloaded", + "description": "The request was throttled. Only the base results were returned." + }, + { + "name": "Transient", + "value": "transient", + "description": "At least one step of the semantic process failed." + } + ] + } + }, + "SemanticField": { + "type": "object", + "description": "A field that is used as part of the semantic configuration.", + "properties": { + "fieldName": { + "type": "string", + "description": "File name" + } + }, + "required": [ + "fieldName" + ] + }, + "SemanticFieldState": { + "type": "string", + "description": "The way the field was used for the semantic enrichment process.", + "enum": [ + "used", + "unused", + "partial" + ], + "x-ms-enum": { + "name": "SemanticFieldState", + "modelAsString": true, + "values": [ + { + "name": "Used", + "value": "used", + "description": "The field was fully used for semantic enrichment." + }, + { + "name": "Unused", + "value": "unused", + "description": "The field was not used for semantic enrichment." + }, + { + "name": "Partial", + "value": "partial", + "description": "The field was partially used for semantic enrichment." + } + ] + } + }, + "SemanticPrioritizedFields": { + "type": "object", + "description": "Describes the title, content, and keywords fields to be used for semantic ranking, captions, highlights, and answers.", + "properties": { + "titleField": { + "$ref": "#/definitions/SemanticField", + "description": "Defines the title field to be used for semantic ranking, captions, highlights, and answers. If you don't have a title field in your index, leave this blank." + }, + "prioritizedContentFields": { + "type": "array", + "description": "Defines the content fields to be used for semantic ranking, captions, highlights, and answers. For the best result, the selected fields should contain text in natural language form. The order of the fields in the array represents their priority. Fields with lower priority may get truncated if the content is long.", + "items": { + "$ref": "#/definitions/SemanticField" + } + }, + "prioritizedKeywordsFields": { + "type": "array", + "description": "Defines the keyword fields to be used for semantic ranking, captions, highlights, and answers. For the best result, the selected fields should contain a list of keywords. The order of the fields in the array represents their priority. Fields with lower priority may get truncated if the content is long.", + "items": { + "$ref": "#/definitions/SemanticField" + } + } + } + }, + "SemanticQueryRewritesResultType": { + "type": "string", + "description": "Type of query rewrite that was used for this request.", + "enum": [ + "originalQueryOnly" + ], + "x-ms-enum": { + "name": "SemanticQueryRewritesResultType", + "modelAsString": true, + "values": [ + { + "name": "OriginalQueryOnly", + "value": "originalQueryOnly", + "description": "Query rewrites were not successfully generated for this request. Only the original query was used to retrieve the results." + } + ] + } + }, + "SemanticSearch": { + "type": "object", + "description": "Defines parameters for a search index that influence semantic capabilities.", + "properties": { + "defaultConfiguration": { + "type": "string", + "description": "Allows you to set the name of a default semantic configuration in your index, making it optional to pass it on as a query parameter every time." + }, + "configurations": { + "type": "array", + "description": "The semantic configurations for the index.", + "items": { + "$ref": "#/definitions/SemanticConfiguration" + } + } + } + }, + "SemanticSearchResultsType": { + "type": "string", + "description": "Type of partial response that was returned for a semantic ranking request.", + "enum": [ + "baseResults", + "rerankedResults" + ], + "x-ms-enum": { + "name": "SemanticSearchResultsType", + "modelAsString": true, + "values": [ + { + "name": "BaseResults", + "value": "baseResults", + "description": "Results without any semantic enrichment or reranking." + }, + { + "name": "RerankedResults", + "value": "rerankedResults", + "description": "Results have been reranked with the reranker model and will include semantic captions. They will not include any answers, answers highlights or caption highlights." + } + ] + } + }, + "SentimentSkill": { + "type": "object", + "description": "This skill is deprecated. Use the V3.SentimentSkill instead.", + "properties": { + "defaultLanguageCode": { + "$ref": "#/definitions/SentimentSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`." + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.SentimentSkill" + }, + "SentimentSkillLanguage": { + "type": "string", + "description": "Deprecated. The language codes supported for input text by SentimentSkill.", + "enum": [ + "da", + "nl", + "en", + "fi", + "fr", + "de", + "el", + "it", + "no", + "pl", + "pt-PT", + "ru", + "es", + "sv", + "tr" + ], + "x-ms-enum": { + "name": "SentimentSkillLanguage", + "modelAsString": true, + "values": [ + { + "name": "da", + "value": "da", + "description": "Danish" + }, + { + "name": "nl", + "value": "nl", + "description": "Dutch" + }, + { + "name": "en", + "value": "en", + "description": "English" + }, + { + "name": "fi", + "value": "fi", + "description": "Finnish" + }, + { + "name": "fr", + "value": "fr", + "description": "French" + }, + { + "name": "de", + "value": "de", + "description": "German" + }, + { + "name": "el", + "value": "el", + "description": "Greek" + }, + { + "name": "it", + "value": "it", + "description": "Italian" + }, + { + "name": "no", + "value": "no", + "description": "Norwegian (Bokmaal)" + }, + { + "name": "pl", + "value": "pl", + "description": "Polish" + }, + { + "name": "pt-PT", + "value": "pt-PT", + "description": "Portuguese (Portugal)" + }, + { + "name": "ru", + "value": "ru", + "description": "Russian" + }, + { + "name": "es", + "value": "es", + "description": "Spanish" + }, + { + "name": "sv", + "value": "sv", + "description": "Swedish" + }, + { + "name": "tr", + "value": "tr", + "description": "Turkish" + } + ] + } + }, + "SentimentSkillV3": { + "type": "object", + "description": "Using the Text Analytics API, evaluates unstructured text and for each record, provides sentiment labels (such as \"negative\", \"neutral\" and \"positive\") based on the highest confidence score found by the service at a sentence and document-level.", + "properties": { + "defaultLanguageCode": { + "type": "string", + "description": "A value indicating which language code to use. Default is `en`.", + "x-nullable": true + }, + "includeOpinionMining": { + "type": "boolean", + "description": "If set to true, the skill output will include information from Text Analytics for opinion mining, namely targets (nouns or verbs) and their associated assessment (adjective) in the text. Default is false.", + "default": false + }, + "modelVersion": { + "type": "string", + "description": "The version of the model to use when calling the Text Analytics service. It will default to the latest available when not specified. We recommend you do not specify this value unless absolutely necessary.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.V3.SentimentSkill" + }, + "ServiceIndexersRuntime": { + "type": "object", + "description": "Represents service-level indexer runtime counters.", + "properties": { + "usedSeconds": { + "type": "integer", + "format": "int64", + "description": "Cumulative runtime of all indexers in the service from the beginningTime to endingTime, in seconds." + }, + "remainingSeconds": { + "type": "integer", + "format": "int64", + "description": "Cumulative runtime remaining for all indexers in the service from the beginningTime to endingTime, in seconds.", + "x-nullable": true + }, + "beginningTime": { + "type": "string", + "format": "date-time", + "description": "Beginning UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." + }, + "endingTime": { + "type": "string", + "format": "date-time", + "description": "End UTC time of the 24-hour period considered for indexer runtime usage (inclusive)." + } + }, + "required": [ + "usedSeconds", + "beginningTime", + "endingTime" + ] + }, + "ShaperSkill": { + "type": "object", + "description": "A skill for reshaping the outputs. It creates a complex type to support composite fields (also known as multipart fields).", + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Util.ShaperSkill" + }, + "SharePointSensitivityLabelInfo": { + "type": "object", + "description": "Information about the sensitivity label applied to a SharePoint document.", + "properties": { + "displayName": { + "type": "string", + "description": "The display name for the sensitivity label." + }, + "sensitivityLabelId": { + "type": "string", + "description": "The ID of the sensitivity label." + }, + "tooltip": { + "type": "string", + "description": "The tooltip that should be displayed for the label in a UI." + }, + "priority": { + "type": "integer", + "format": "int32", + "description": "The priority in which the sensitivity label is applied." + }, + "color": { + "type": "string", + "description": "The color that the UI should display for the label, if configured." + }, + "isEncrypted": { + "type": "boolean", + "description": "Indicates whether the sensitivity label enforces encryption." + } + } + }, + "ShingleTokenFilter": { + "type": "object", + "description": "Creates combinations of tokens as a single token. This token filter is implemented using Apache Lucene.", + "properties": { + "maxShingleSize": { + "type": "integer", + "format": "int32", + "description": "The maximum shingle size. Default and minimum value is 2.", + "default": 2, + "minimum": 2 + }, + "minShingleSize": { + "type": "integer", + "format": "int32", + "description": "The minimum shingle size. Default and minimum value is 2. Must be less than the value of maxShingleSize.", + "default": 2, + "minimum": 2 + }, + "outputUnigrams": { + "type": "boolean", + "description": "A value indicating whether the output stream will contain the input tokens (unigrams) as well as shingles. Default is true.", + "default": true + }, + "outputUnigramsIfNoShingles": { + "type": "boolean", + "description": "A value indicating whether to output unigrams for those times when no shingles are available. This property takes precedence when outputUnigrams is set to false. Default is false.", + "default": false + }, + "tokenSeparator": { + "type": "string", + "description": "The string to use when joining adjacent tokens to form a shingle. Default is a single space (\" \").", + "default": " " + }, + "filterToken": { + "type": "string", + "description": "The string to insert for each position at which there is no token. Default is an underscore (\"_\").", + "default": "_" + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.ShingleTokenFilter" + }, + "SimilarityAlgorithm": { + "type": "object", + "description": "Base type for similarity algorithms. Similarity algorithms are used to calculate scores that tie queries to documents. The higher the score, the more relevant the document is to that specific query. Those scores are used to rank the search results.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type" + ] + }, + "SingleVectorFieldResult": { + "type": "object", + "description": "A single vector field result. Both @search.score and vector similarity values are returned. Vector similarity is related to @search.score by an equation.", + "properties": { + "searchScore": { + "type": "number", + "format": "double", + "description": "The @search.score value that is calculated from the vector similarity score. This is the score that's visible in a pure single-field single-vector query.", + "readOnly": true + }, + "vectorSimilarity": { + "type": "number", + "format": "double", + "description": "The vector similarity score for this document. Note this is the canonical definition of similarity metric, not the 'distance' version. For example, cosine similarity instead of cosine distance.", + "readOnly": true + } + } + }, + "SkillNames": { + "type": "object", + "description": "The type of the skill names.", + "properties": { + "skillNames": { + "type": "array", + "description": "the names of skills to be reset.", + "items": { + "type": "string" + } + } + } + }, + "SnowballTokenFilter": { + "type": "object", + "description": "A filter that stems words using a Snowball-generated stemmer. This token filter is implemented using Apache Lucene.", + "properties": { + "language": { + "$ref": "#/definitions/SnowballTokenFilterLanguage", + "description": "The language to use." + } + }, + "required": [ + "language" + ], + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.SnowballTokenFilter" + }, + "SnowballTokenFilterLanguage": { + "type": "string", + "description": "The language to use for a Snowball token filter.", + "enum": [ + "armenian", + "basque", + "catalan", + "danish", + "dutch", + "english", + "finnish", + "french", + "german", + "german2", + "hungarian", + "italian", + "kp", + "lovins", + "norwegian", + "porter", + "portuguese", + "romanian", + "russian", + "spanish", + "swedish", + "turkish" + ], + "x-ms-enum": { + "name": "SnowballTokenFilterLanguage", + "modelAsString": true, + "values": [ + { + "name": "Armenian", + "value": "armenian", + "description": "Selects the Lucene Snowball stemming tokenizer for Armenian." + }, + { + "name": "Basque", + "value": "basque", + "description": "Selects the Lucene Snowball stemming tokenizer for Basque." + }, + { + "name": "Catalan", + "value": "catalan", + "description": "Selects the Lucene Snowball stemming tokenizer for Catalan." + }, + { + "name": "Danish", + "value": "danish", + "description": "Selects the Lucene Snowball stemming tokenizer for Danish." + }, + { + "name": "Dutch", + "value": "dutch", + "description": "Selects the Lucene Snowball stemming tokenizer for Dutch." + }, + { + "name": "English", + "value": "english", + "description": "Selects the Lucene Snowball stemming tokenizer for English." + }, + { + "name": "Finnish", + "value": "finnish", + "description": "Selects the Lucene Snowball stemming tokenizer for Finnish." + }, + { + "name": "French", + "value": "french", + "description": "Selects the Lucene Snowball stemming tokenizer for French." + }, + { + "name": "German", + "value": "german", + "description": "Selects the Lucene Snowball stemming tokenizer for German." + }, + { + "name": "German2", + "value": "german2", + "description": "Selects the Lucene Snowball stemming tokenizer that uses the German variant algorithm." + }, + { + "name": "Hungarian", + "value": "hungarian", + "description": "Selects the Lucene Snowball stemming tokenizer for Hungarian." + }, + { + "name": "Italian", + "value": "italian", + "description": "Selects the Lucene Snowball stemming tokenizer for Italian." + }, + { + "name": "Kp", + "value": "kp", + "description": "Selects the Lucene Snowball stemming tokenizer for Dutch that uses the Kraaij-Pohlmann stemming algorithm." + }, + { + "name": "Lovins", + "value": "lovins", + "description": "Selects the Lucene Snowball stemming tokenizer for English that uses the Lovins stemming algorithm." + }, + { + "name": "Norwegian", + "value": "norwegian", + "description": "Selects the Lucene Snowball stemming tokenizer for Norwegian." + }, + { + "name": "Porter", + "value": "porter", + "description": "Selects the Lucene Snowball stemming tokenizer for English that uses the Porter stemming algorithm." + }, + { + "name": "Portuguese", + "value": "portuguese", + "description": "Selects the Lucene Snowball stemming tokenizer for Portuguese." + }, + { + "name": "Romanian", + "value": "romanian", + "description": "Selects the Lucene Snowball stemming tokenizer for Romanian." + }, + { + "name": "Russian", + "value": "russian", + "description": "Selects the Lucene Snowball stemming tokenizer for Russian." + }, + { + "name": "Spanish", + "value": "spanish", + "description": "Selects the Lucene Snowball stemming tokenizer for Spanish." + }, + { + "name": "Swedish", + "value": "swedish", + "description": "Selects the Lucene Snowball stemming tokenizer for Swedish." + }, + { + "name": "Turkish", + "value": "turkish", + "description": "Selects the Lucene Snowball stemming tokenizer for Turkish." + } + ] + } + }, + "SoftDeleteColumnDeletionDetectionPolicy": { + "type": "object", + "description": "Defines a data deletion detection policy that implements a soft-deletion strategy. It determines whether an item should be deleted based on the value of a designated 'soft delete' column.", + "properties": { + "softDeleteColumnName": { + "type": "string", + "description": "The name of the column to use for soft-deletion detection." + }, + "softDeleteMarkerValue": { + "type": "string", + "description": "The marker value that identifies an item as deleted." + } + }, + "allOf": [ + { + "$ref": "#/definitions/DataDeletionDetectionPolicy" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy" + }, + "SplitSkill": { + "type": "object", + "description": "A skill to split a string into chunks of text.", + "properties": { + "defaultLanguageCode": { + "$ref": "#/definitions/SplitSkillLanguage", + "description": "A value indicating which language code to use. Default is `en`." + }, + "textSplitMode": { + "$ref": "#/definitions/TextSplitMode", + "description": "A value indicating which split mode to perform." + }, + "maximumPageLength": { + "type": "integer", + "format": "int32", + "description": "The desired maximum page length. Default is 10000.", + "x-nullable": true + }, + "pageOverlapLength": { + "type": "integer", + "format": "int32", + "description": "Only applicable when textSplitMode is set to 'pages'. If specified, n+1th chunk will start with this number of characters/tokens from the end of the nth chunk.", + "x-nullable": true + }, + "maximumPagesToTake": { + "type": "integer", + "format": "int32", + "description": "Only applicable when textSplitMode is set to 'pages'. If specified, the SplitSkill will discontinue splitting after processing the first 'maximumPagesToTake' pages, in order to improve performance when only a few initial pages are needed from each document.", + "x-nullable": true + }, + "unit": { + "$ref": "#/definitions/SplitSkillUnit", + "description": "Only applies if textSplitMode is set to pages. There are two possible values. The choice of the values will decide the length (maximumPageLength and pageOverlapLength) measurement. The default is 'characters', which means the length will be measured by character.", + "x-nullable": true + }, + "azureOpenAITokenizerParameters": { + "$ref": "#/definitions/AzureOpenAITokenizerParameters", + "description": "Only applies if the unit is set to azureOpenAITokens. If specified, the splitSkill will use these parameters when performing the tokenization. The parameters are a valid 'encoderModelName' and an optional 'allowedSpecialTokens' property.", + "x-nullable": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.SplitSkill" + }, + "SplitSkillEncoderModelName": { + "type": "string", + "description": "A value indicating which tokenizer to use.", + "enum": [ + "r50k_base", + "p50k_base", + "p50k_edit", + "cl100k_base" + ], + "x-ms-enum": { + "name": "SplitSkillEncoderModelName", + "modelAsString": true, + "values": [ + { + "name": "R50kBase", + "value": "r50k_base", + "description": "Refers to a base model trained with a 50,000 token vocabulary, often used in general natural language processing tasks." + }, + { + "name": "P50kBase", + "value": "p50k_base", + "description": "A base model with a 50,000 token vocabulary, optimized for prompt-based tasks." + }, + { + "name": "P50kEdit", + "value": "p50k_edit", + "description": "Similar to p50k_base but fine-tuned for editing or rephrasing tasks with a 50,000 token vocabulary." + }, + { + "name": "CL100kBase", + "value": "cl100k_base", + "description": "A base model with a 100,000 token vocabulary." + } + ] + } + }, + "SplitSkillLanguage": { + "type": "string", + "description": "The language codes supported for input text by SplitSkill.", + "enum": [ + "am", + "bs", + "cs", + "da", + "de", + "en", + "es", + "et", + "fi", + "fr", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "ja", + "ko", + "lv", + "nb", + "nl", + "pl", + "pt", + "pt-br", + "ru", + "sk", + "sl", + "sr", + "sv", + "tr", + "ur", + "zh" + ], + "x-ms-enum": { + "name": "SplitSkillLanguage", + "modelAsString": true, + "values": [ + { + "name": "am", + "value": "am", + "description": "Amharic" + }, + { + "name": "bs", + "value": "bs", + "description": "Bosnian" + }, + { + "name": "cs", + "value": "cs", + "description": "Czech" + }, + { + "name": "da", + "value": "da", + "description": "Danish" + }, + { + "name": "de", + "value": "de", + "description": "German" + }, + { + "name": "en", + "value": "en", + "description": "English" + }, + { + "name": "es", + "value": "es", + "description": "Spanish" + }, + { + "name": "et", + "value": "et", + "description": "Estonian" + }, + { + "name": "fi", + "value": "fi", + "description": "Finnish" + }, + { + "name": "fr", + "value": "fr", + "description": "French" + }, + { + "name": "he", + "value": "he", + "description": "Hebrew" + }, + { + "name": "hi", + "value": "hi", + "description": "Hindi" + }, + { + "name": "hr", + "value": "hr", + "description": "Croatian" + }, + { + "name": "hu", + "value": "hu", + "description": "Hungarian" + }, + { + "name": "id", + "value": "id", + "description": "Indonesian" + }, + { + "name": "is", + "value": "is", + "description": "Icelandic" + }, + { + "name": "it", + "value": "it", + "description": "Italian" + }, + { + "name": "ja", + "value": "ja", + "description": "Japanese" + }, + { + "name": "ko", + "value": "ko", + "description": "Korean" + }, + { + "name": "lv", + "value": "lv", + "description": "Latvian" + }, + { + "name": "nb", + "value": "nb", + "description": "Norwegian" + }, + { + "name": "nl", + "value": "nl", + "description": "Dutch" + }, + { + "name": "pl", + "value": "pl", + "description": "Polish" + }, + { + "name": "pt", + "value": "pt", + "description": "Portuguese (Portugal)" + }, + { + "name": "pt-br", + "value": "pt-br", + "description": "Portuguese (Brazil)" + }, + { + "name": "ru", + "value": "ru", + "description": "Russian" + }, + { + "name": "sk", + "value": "sk", + "description": "Slovak" + }, + { + "name": "sl", + "value": "sl", + "description": "Slovenian" + }, + { + "name": "sr", + "value": "sr", + "description": "Serbian" + }, + { + "name": "sv", + "value": "sv", + "description": "Swedish" + }, + { + "name": "tr", + "value": "tr", + "description": "Turkish" + }, + { + "name": "ur", + "value": "ur", + "description": "Urdu" + }, + { + "name": "zh", + "value": "zh", + "description": "Chinese (Simplified)" + } + ] + } + }, + "SplitSkillUnit": { + "type": "string", + "description": "A value indicating which unit to use.", + "enum": [ + "characters", + "azureOpenAITokens" + ], + "x-ms-enum": { + "name": "SplitSkillUnit", + "modelAsString": true, + "values": [ + { + "name": "Characters", + "value": "characters", + "description": "The length will be measured by character." + }, + { + "name": "AzureOpenAITokens", + "value": "azureOpenAITokens", + "description": "The length will be measured by an AzureOpenAI tokenizer from the tiktoken library." + } + ] + } + }, + "SqlIntegratedChangeTrackingPolicy": { + "type": "object", + "description": "Defines a data change detection policy that captures changes using the Integrated Change Tracking feature of Azure SQL Database.", + "allOf": [ + { + "$ref": "#/definitions/DataChangeDetectionPolicy" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.SqlIntegratedChangeTrackingPolicy" + }, + "StemmerOverrideTokenFilter": { + "type": "object", + "description": "Provides the ability to override other stemming filters with custom dictionary-based stemming. Any dictionary-stemmed terms will be marked as keywords so that they will not be stemmed with stemmers down the chain. Must be placed before any stemming filters. This token filter is implemented using Apache Lucene. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/StemmerOverrideFilter.html", + "properties": { + "rules": { + "type": "array", + "description": "A list of stemming rules in the following format: \"word => stem\", for example: \"ran => run\".", + "items": { + "type": "string" + } + } + }, + "required": [ + "rules" + ], + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StemmerOverrideTokenFilter" + }, + "StemmerTokenFilter": { + "type": "object", + "description": "Language specific stemming filter. This token filter is implemented using Apache Lucene. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#TokenFilters", + "properties": { + "language": { + "$ref": "#/definitions/StemmerTokenFilterLanguage", + "description": "The language to use." + } + }, + "required": [ + "language" + ], + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StemmerTokenFilter" + }, + "StemmerTokenFilterLanguage": { + "type": "string", + "description": "The language to use for a stemmer token filter.", + "enum": [ + "arabic", + "armenian", + "basque", + "brazilian", + "bulgarian", + "catalan", + "czech", + "danish", + "dutch", + "dutchKp", + "english", + "lightEnglish", + "minimalEnglish", + "possessiveEnglish", + "porter2", + "lovins", + "finnish", + "lightFinnish", + "french", + "lightFrench", + "minimalFrench", + "galician", + "minimalGalician", + "german", + "german2", + "lightGerman", + "minimalGerman", + "greek", + "hindi", + "hungarian", + "lightHungarian", + "indonesian", + "irish", + "italian", + "lightItalian", + "sorani", + "latvian", + "norwegian", + "lightNorwegian", + "minimalNorwegian", + "lightNynorsk", + "minimalNynorsk", + "portuguese", + "lightPortuguese", + "minimalPortuguese", + "portugueseRslp", + "romanian", + "russian", + "lightRussian", + "spanish", + "lightSpanish", + "swedish", + "lightSwedish", + "turkish" + ], + "x-ms-enum": { + "name": "StemmerTokenFilterLanguage", + "modelAsString": true, + "values": [ + { + "name": "Arabic", + "value": "arabic", + "description": "Selects the Lucene stemming tokenizer for Arabic." + }, + { + "name": "Armenian", + "value": "armenian", + "description": "Selects the Lucene stemming tokenizer for Armenian." + }, + { + "name": "Basque", + "value": "basque", + "description": "Selects the Lucene stemming tokenizer for Basque." + }, + { + "name": "Brazilian", + "value": "brazilian", + "description": "Selects the Lucene stemming tokenizer for Portuguese (Brazil)." + }, + { + "name": "Bulgarian", + "value": "bulgarian", + "description": "Selects the Lucene stemming tokenizer for Bulgarian." + }, + { + "name": "Catalan", + "value": "catalan", + "description": "Selects the Lucene stemming tokenizer for Catalan." + }, + { + "name": "Czech", + "value": "czech", + "description": "Selects the Lucene stemming tokenizer for Czech." + }, + { + "name": "Danish", + "value": "danish", + "description": "Selects the Lucene stemming tokenizer for Danish." + }, + { + "name": "Dutch", + "value": "dutch", + "description": "Selects the Lucene stemming tokenizer for Dutch." + }, + { + "name": "DutchKp", + "value": "dutchKp", + "description": "Selects the Lucene stemming tokenizer for Dutch that uses the Kraaij-Pohlmann stemming algorithm." + }, + { + "name": "English", + "value": "english", + "description": "Selects the Lucene stemming tokenizer for English." + }, + { + "name": "LightEnglish", + "value": "lightEnglish", + "description": "Selects the Lucene stemming tokenizer for English that does light stemming." + }, + { + "name": "MinimalEnglish", + "value": "minimalEnglish", + "description": "Selects the Lucene stemming tokenizer for English that does minimal stemming." + }, + { + "name": "PossessiveEnglish", + "value": "possessiveEnglish", + "description": "Selects the Lucene stemming tokenizer for English that removes trailing possessives from words." + }, + { + "name": "Porter2", + "value": "porter2", + "description": "Selects the Lucene stemming tokenizer for English that uses the Porter2 stemming algorithm." + }, + { + "name": "Lovins", + "value": "lovins", + "description": "Selects the Lucene stemming tokenizer for English that uses the Lovins stemming algorithm." + }, + { + "name": "Finnish", + "value": "finnish", + "description": "Selects the Lucene stemming tokenizer for Finnish." + }, + { + "name": "LightFinnish", + "value": "lightFinnish", + "description": "Selects the Lucene stemming tokenizer for Finnish that does light stemming." + }, + { + "name": "French", + "value": "french", + "description": "Selects the Lucene stemming tokenizer for French." + }, + { + "name": "LightFrench", + "value": "lightFrench", + "description": "Selects the Lucene stemming tokenizer for French that does light stemming." + }, + { + "name": "MinimalFrench", + "value": "minimalFrench", + "description": "Selects the Lucene stemming tokenizer for French that does minimal stemming." + }, + { + "name": "Galician", + "value": "galician", + "description": "Selects the Lucene stemming tokenizer for Galician." + }, + { + "name": "MinimalGalician", + "value": "minimalGalician", + "description": "Selects the Lucene stemming tokenizer for Galician that does minimal stemming." + }, + { + "name": "German", + "value": "german", + "description": "Selects the Lucene stemming tokenizer for German." + }, + { + "name": "German2", + "value": "german2", + "description": "Selects the Lucene stemming tokenizer that uses the German variant algorithm." + }, + { + "name": "LightGerman", + "value": "lightGerman", + "description": "Selects the Lucene stemming tokenizer for German that does light stemming." + }, + { + "name": "MinimalGerman", + "value": "minimalGerman", + "description": "Selects the Lucene stemming tokenizer for German that does minimal stemming." + }, + { + "name": "Greek", + "value": "greek", + "description": "Selects the Lucene stemming tokenizer for Greek." + }, + { + "name": "Hindi", + "value": "hindi", + "description": "Selects the Lucene stemming tokenizer for Hindi." + }, + { + "name": "Hungarian", + "value": "hungarian", + "description": "Selects the Lucene stemming tokenizer for Hungarian." + }, + { + "name": "LightHungarian", + "value": "lightHungarian", + "description": "Selects the Lucene stemming tokenizer for Hungarian that does light stemming." + }, + { + "name": "Indonesian", + "value": "indonesian", + "description": "Selects the Lucene stemming tokenizer for Indonesian." + }, + { + "name": "Irish", + "value": "irish", + "description": "Selects the Lucene stemming tokenizer for Irish." + }, + { + "name": "Italian", + "value": "italian", + "description": "Selects the Lucene stemming tokenizer for Italian." + }, + { + "name": "LightItalian", + "value": "lightItalian", + "description": "Selects the Lucene stemming tokenizer for Italian that does light stemming." + }, + { + "name": "Sorani", + "value": "sorani", + "description": "Selects the Lucene stemming tokenizer for Sorani." + }, + { + "name": "Latvian", + "value": "latvian", + "description": "Selects the Lucene stemming tokenizer for Latvian." + }, + { + "name": "Norwegian", + "value": "norwegian", + "description": "Selects the Lucene stemming tokenizer for Norwegian (BokmÃ¥l)." + }, + { + "name": "LightNorwegian", + "value": "lightNorwegian", + "description": "Selects the Lucene stemming tokenizer for Norwegian (BokmÃ¥l) that does light stemming." + }, + { + "name": "MinimalNorwegian", + "value": "minimalNorwegian", + "description": "Selects the Lucene stemming tokenizer for Norwegian (BokmÃ¥l) that does minimal stemming." + }, + { + "name": "LightNynorsk", + "value": "lightNynorsk", + "description": "Selects the Lucene stemming tokenizer for Norwegian (Nynorsk) that does light stemming." + }, + { + "name": "MinimalNynorsk", + "value": "minimalNynorsk", + "description": "Selects the Lucene stemming tokenizer for Norwegian (Nynorsk) that does minimal stemming." + }, + { + "name": "Portuguese", + "value": "portuguese", + "description": "Selects the Lucene stemming tokenizer for Portuguese." + }, + { + "name": "LightPortuguese", + "value": "lightPortuguese", + "description": "Selects the Lucene stemming tokenizer for Portuguese that does light stemming." + }, + { + "name": "MinimalPortuguese", + "value": "minimalPortuguese", + "description": "Selects the Lucene stemming tokenizer for Portuguese that does minimal stemming." + }, + { + "name": "PortugueseRslp", + "value": "portugueseRslp", + "description": "Selects the Lucene stemming tokenizer for Portuguese that uses the RSLP stemming algorithm." + }, + { + "name": "Romanian", + "value": "romanian", + "description": "Selects the Lucene stemming tokenizer for Romanian." + }, + { + "name": "Russian", + "value": "russian", + "description": "Selects the Lucene stemming tokenizer for Russian." + }, + { + "name": "LightRussian", + "value": "lightRussian", + "description": "Selects the Lucene stemming tokenizer for Russian that does light stemming." + }, + { + "name": "Spanish", + "value": "spanish", + "description": "Selects the Lucene stemming tokenizer for Spanish." + }, + { + "name": "LightSpanish", + "value": "lightSpanish", + "description": "Selects the Lucene stemming tokenizer for Spanish that does light stemming." + }, + { + "name": "Swedish", + "value": "swedish", + "description": "Selects the Lucene stemming tokenizer for Swedish." + }, + { + "name": "LightSwedish", + "value": "lightSwedish", + "description": "Selects the Lucene stemming tokenizer for Swedish that does light stemming." + }, + { + "name": "Turkish", + "value": "turkish", + "description": "Selects the Lucene stemming tokenizer for Turkish." + } + ] + } + }, + "StopAnalyzer": { + "type": "object", + "description": "Divides text at non-letters; Applies the lowercase and stopword token filters. This analyzer is implemented using Apache Lucene.", + "properties": { + "stopwords": { + "type": "array", + "description": "A list of stopwords.", + "items": { + "type": "string" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/LexicalAnalyzer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StopAnalyzer" + }, + "StopwordsList": { + "type": "string", + "description": "Identifies a predefined list of language-specific stopwords.", + "enum": [ + "arabic", + "armenian", + "basque", + "brazilian", + "bulgarian", + "catalan", + "czech", + "danish", + "dutch", + "english", + "finnish", + "french", + "galician", + "german", + "greek", + "hindi", + "hungarian", + "indonesian", + "irish", + "italian", + "latvian", + "norwegian", + "persian", + "portuguese", + "romanian", + "russian", + "sorani", + "spanish", + "swedish", + "thai", + "turkish" + ], + "x-ms-enum": { + "name": "StopwordsList", + "modelAsString": true, + "values": [ + { + "name": "Arabic", + "value": "arabic", + "description": "Selects the stopword list for Arabic." + }, + { + "name": "Armenian", + "value": "armenian", + "description": "Selects the stopword list for Armenian." + }, + { + "name": "Basque", + "value": "basque", + "description": "Selects the stopword list for Basque." + }, + { + "name": "Brazilian", + "value": "brazilian", + "description": "Selects the stopword list for Portuguese (Brazil)." + }, + { + "name": "Bulgarian", + "value": "bulgarian", + "description": "Selects the stopword list for Bulgarian." + }, + { + "name": "Catalan", + "value": "catalan", + "description": "Selects the stopword list for Catalan." + }, + { + "name": "Czech", + "value": "czech", + "description": "Selects the stopword list for Czech." + }, + { + "name": "Danish", + "value": "danish", + "description": "Selects the stopword list for Danish." + }, + { + "name": "Dutch", + "value": "dutch", + "description": "Selects the stopword list for Dutch." + }, + { + "name": "English", + "value": "english", + "description": "Selects the stopword list for English." + }, + { + "name": "Finnish", + "value": "finnish", + "description": "Selects the stopword list for Finnish." + }, + { + "name": "French", + "value": "french", + "description": "Selects the stopword list for French." + }, + { + "name": "Galician", + "value": "galician", + "description": "Selects the stopword list for Galician." + }, + { + "name": "German", + "value": "german", + "description": "Selects the stopword list for German." + }, + { + "name": "Greek", + "value": "greek", + "description": "Selects the stopword list for Greek." + }, + { + "name": "Hindi", + "value": "hindi", + "description": "Selects the stopword list for Hindi." + }, + { + "name": "Hungarian", + "value": "hungarian", + "description": "Selects the stopword list for Hungarian." + }, + { + "name": "Indonesian", + "value": "indonesian", + "description": "Selects the stopword list for Indonesian." + }, + { + "name": "Irish", + "value": "irish", + "description": "Selects the stopword list for Irish." + }, + { + "name": "Italian", + "value": "italian", + "description": "Selects the stopword list for Italian." + }, + { + "name": "Latvian", + "value": "latvian", + "description": "Selects the stopword list for Latvian." + }, + { + "name": "Norwegian", + "value": "norwegian", + "description": "Selects the stopword list for Norwegian." + }, + { + "name": "Persian", + "value": "persian", + "description": "Selects the stopword list for Persian." + }, + { + "name": "Portuguese", + "value": "portuguese", + "description": "Selects the stopword list for Portuguese." + }, + { + "name": "Romanian", + "value": "romanian", + "description": "Selects the stopword list for Romanian." + }, + { + "name": "Russian", + "value": "russian", + "description": "Selects the stopword list for Russian." + }, + { + "name": "Sorani", + "value": "sorani", + "description": "Selects the stopword list for Sorani." + }, + { + "name": "Spanish", + "value": "spanish", + "description": "Selects the stopword list for Spanish." + }, + { + "name": "Swedish", + "value": "swedish", + "description": "Selects the stopword list for Swedish." + }, + { + "name": "Thai", + "value": "thai", + "description": "Selects the stopword list for Thai." + }, + { + "name": "Turkish", + "value": "turkish", + "description": "Selects the stopword list for Turkish." + } + ] + } + }, + "StopwordsTokenFilter": { + "type": "object", + "description": "Removes stop words from a token stream. This token filter is implemented using Apache Lucene. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopFilter.html", + "properties": { + "stopwords": { + "type": "array", + "description": "The list of stopwords. This property and the stopwords list property cannot both be set.", + "items": { + "type": "string" + } + }, + "stopwordsList": { + "type": "string", + "description": "A predefined list of stopwords to use. This property and the stopwords property cannot both be set. Default is English.", + "default": "english", + "enum": [ + "arabic", + "armenian", + "basque", + "brazilian", + "bulgarian", + "catalan", + "czech", + "danish", + "dutch", + "english", + "finnish", + "french", + "galician", + "german", + "greek", + "hindi", + "hungarian", + "indonesian", + "irish", + "italian", + "latvian", + "norwegian", + "persian", + "portuguese", + "romanian", + "russian", + "sorani", + "spanish", + "swedish", + "thai", + "turkish" + ], + "x-ms-enum": { + "name": "StopwordsList", + "modelAsString": true, + "values": [ + { + "name": "Arabic", + "value": "arabic", + "description": "Selects the stopword list for Arabic." + }, + { + "name": "Armenian", + "value": "armenian", + "description": "Selects the stopword list for Armenian." + }, + { + "name": "Basque", + "value": "basque", + "description": "Selects the stopword list for Basque." + }, + { + "name": "Brazilian", + "value": "brazilian", + "description": "Selects the stopword list for Portuguese (Brazil)." + }, + { + "name": "Bulgarian", + "value": "bulgarian", + "description": "Selects the stopword list for Bulgarian." + }, + { + "name": "Catalan", + "value": "catalan", + "description": "Selects the stopword list for Catalan." + }, + { + "name": "Czech", + "value": "czech", + "description": "Selects the stopword list for Czech." + }, + { + "name": "Danish", + "value": "danish", + "description": "Selects the stopword list for Danish." + }, + { + "name": "Dutch", + "value": "dutch", + "description": "Selects the stopword list for Dutch." + }, + { + "name": "English", + "value": "english", + "description": "Selects the stopword list for English." + }, + { + "name": "Finnish", + "value": "finnish", + "description": "Selects the stopword list for Finnish." + }, + { + "name": "French", + "value": "french", + "description": "Selects the stopword list for French." + }, + { + "name": "Galician", + "value": "galician", + "description": "Selects the stopword list for Galician." + }, + { + "name": "German", + "value": "german", + "description": "Selects the stopword list for German." + }, + { + "name": "Greek", + "value": "greek", + "description": "Selects the stopword list for Greek." + }, + { + "name": "Hindi", + "value": "hindi", + "description": "Selects the stopword list for Hindi." + }, + { + "name": "Hungarian", + "value": "hungarian", + "description": "Selects the stopword list for Hungarian." + }, + { + "name": "Indonesian", + "value": "indonesian", + "description": "Selects the stopword list for Indonesian." + }, + { + "name": "Irish", + "value": "irish", + "description": "Selects the stopword list for Irish." + }, + { + "name": "Italian", + "value": "italian", + "description": "Selects the stopword list for Italian." + }, + { + "name": "Latvian", + "value": "latvian", + "description": "Selects the stopword list for Latvian." + }, + { + "name": "Norwegian", + "value": "norwegian", + "description": "Selects the stopword list for Norwegian." + }, + { + "name": "Persian", + "value": "persian", + "description": "Selects the stopword list for Persian." + }, + { + "name": "Portuguese", + "value": "portuguese", + "description": "Selects the stopword list for Portuguese." + }, + { + "name": "Romanian", + "value": "romanian", + "description": "Selects the stopword list for Romanian." + }, + { + "name": "Russian", + "value": "russian", + "description": "Selects the stopword list for Russian." + }, + { + "name": "Sorani", + "value": "sorani", + "description": "Selects the stopword list for Sorani." + }, + { + "name": "Spanish", + "value": "spanish", + "description": "Selects the stopword list for Spanish." + }, + { + "name": "Swedish", + "value": "swedish", + "description": "Selects the stopword list for Swedish." + }, + { + "name": "Thai", + "value": "thai", + "description": "Selects the stopword list for Thai." + }, + { + "name": "Turkish", + "value": "turkish", + "description": "Selects the stopword list for Turkish." + } + ] + } + }, + "ignoreCase": { + "type": "boolean", + "description": "A value indicating whether to ignore case. If true, all words are converted to lower case first. Default is false.", + "default": false + }, + "removeTrailing": { + "type": "boolean", + "description": "A value indicating whether to ignore the last search term if it's a stop word. Default is true.", + "default": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.StopwordsTokenFilter" + }, + "SuggestDocumentsResult": { + "type": "object", + "description": "Response containing suggestion query results from an index.", + "properties": { + "value": { + "type": "array", + "description": "The sequence of results returned by the query.", + "items": { + "$ref": "#/definitions/SuggestResult" + }, + "readOnly": true + }, + "@search.coverage": { + "type": "number", + "format": "double", + "description": "A value indicating the percentage of the index that was included in the query, or null if minimumCoverage was not set in the request.", + "readOnly": true, + "x-ms-client-name": "coverage" + } + }, + "required": [ + "value" + ] + }, + "SuggestRequest": { + "type": "object", + "description": "Parameters for filtering, sorting, fuzzy matching, and other suggestions query behaviors.", + "properties": { + "filter": { + "type": "string", + "description": "An OData expression that filters the documents considered for suggestions." + }, + "fuzzy": { + "type": "boolean", + "description": "A value indicating whether to use fuzzy matching for the suggestion query. Default is false. When set to true, the query will find suggestions even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy suggestion searches are slower and consume more resources." + }, + "highlightPostTag": { + "type": "string", + "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting of suggestions is disabled." + }, + "highlightPreTag": { + "type": "string", + "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting of suggestions is disabled." + }, + "minimumCoverage": { + "type": "number", + "format": "double", + "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a suggestion query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80." + }, + "orderby": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses." + }, + "search": { + "type": "string", + "description": "The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters." + }, + "searchFields": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of field names to search for the specified search text. Target fields must be included in the specified suggester." + }, + "select": { + "type": "string", + "format": "ArrayEncoding.commaDelimited", + "description": "The comma-separated list of fields to retrieve. If unspecified, only the key field will be included in the results." + }, + "suggesterName": { + "type": "string", + "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition." + }, + "top": { + "type": "integer", + "format": "int32", + "description": "The number of suggestions to retrieve. This must be a value between 1 and 100. The default is 5." + } + }, + "required": [ + "search", + "suggesterName" + ] + }, + "SuggestResult": { + "type": "object", + "description": "A result containing a document found by a suggestion query, plus associated metadata.", + "properties": { + "@search.text": { + "type": "string", + "description": "The text of the suggestion result.", + "readOnly": true, + "x-ms-client-name": "text" + } + }, + "required": [ + "@search.text" + ], + "additionalProperties": {} + }, + "SynchronizationState": { + "type": "object", + "description": "Represents the current state of an ongoing synchronization that spans multiple indexer runs.", + "properties": { + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the current synchronization." + }, + "itemsUpdatesProcessed": { + "type": "integer", + "format": "int32", + "description": "The number of item updates successfully processed in the current synchronization." + }, + "itemsUpdatesFailed": { + "type": "integer", + "format": "int32", + "description": "The number of item updates that failed in the current synchronization." + }, + "itemsSkipped": { + "type": "integer", + "format": "int32", + "description": "The number of items skipped in the current synchronization." + } + }, + "required": [ + "startTime", + "itemsUpdatesProcessed", + "itemsUpdatesFailed", + "itemsSkipped" + ] + }, + "SynonymMap": { + "type": "object", + "description": "Represents a synonym map definition.", + "properties": { + "name": { + "type": "string", + "description": "The name of the synonym map." + }, + "format": { + "type": "string", + "description": "The format of the synonym map. Only the 'solr' format is currently supported.", + "enum": [ + "solr" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "synonyms": { + "type": "string", + "format": "ArrayEncoding.newlineDelimited", + "description": "A series of synonym rules in the specified synonym map format. The rules must be separated by newlines." + }, + "encryptionKey": { + "$ref": "#/definitions/SearchResourceEncryptionKey", + "description": "A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data. Once you have encrypted your data, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.", + "x-nullable": true + }, + "@odata.etag": { + "type": "string", + "description": "The ETag of the synonym map.", + "x-ms-client-name": "eTag" + } + }, + "required": [ + "name", + "format", + "synonyms" + ] + }, + "SynonymTokenFilter": { + "type": "object", + "description": "Matches single or multi-word synonyms in a token stream. This token filter is implemented using Apache Lucene.", + "properties": { + "synonyms": { + "type": "array", + "description": "A list of synonyms in following one of two formats: 1. incredible, unbelievable, fabulous => amazing - all terms on the left side of => symbol will be replaced with all terms on its right side; 2. incredible, unbelievable, fabulous, amazing - comma separated list of equivalent words. Set the expand option to change how this list is interpreted.", + "items": { + "type": "string" + } + }, + "ignoreCase": { + "type": "boolean", + "description": "A value indicating whether to case-fold input for matching. Default is false.", + "default": false + }, + "expand": { + "type": "boolean", + "description": "A value indicating whether all words in the list of synonyms (if => notation is not used) will map to one another. If true, all words in the list of synonyms (if => notation is not used) will map to one another. The following list: incredible, unbelievable, fabulous, amazing is equivalent to: incredible, unbelievable, fabulous, amazing => incredible, unbelievable, fabulous, amazing. If false, the following list: incredible, unbelievable, fabulous, amazing will be equivalent to: incredible, unbelievable, fabulous, amazing => incredible. Default is true.", + "default": true + } + }, + "required": [ + "synonyms" + ], + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.SynonymTokenFilter" + }, + "TagScoringFunction": { + "type": "object", + "description": "Defines a function that boosts scores of documents with string values matching a given list of tags.", + "properties": { + "tag": { + "$ref": "#/definitions/TagScoringParameters", + "description": "Parameter values for the tag scoring function." + } + }, + "required": [ + "tag" + ], + "allOf": [ + { + "$ref": "#/definitions/ScoringFunction" + } + ], + "x-ms-discriminator-value": "tag" + }, + "TagScoringParameters": { + "type": "object", + "description": "Provides parameter values to a tag scoring function.", + "properties": { + "tagsParameter": { + "type": "string", + "description": "The name of the parameter passed in search queries to specify the list of tags to compare against the target field." + } + }, + "required": [ + "tagsParameter" + ] + }, + "TextResult": { + "type": "object", + "description": "The BM25 or Classic score for the text portion of the query.", + "properties": { + "searchScore": { + "type": "number", + "format": "double", + "description": "The BM25 or Classic score for the text portion of the query.", + "readOnly": true + } + } + }, + "TextSplitMode": { + "type": "string", + "description": "A value indicating which split mode to perform.", + "enum": [ + "pages", + "sentences" + ], + "x-ms-enum": { + "name": "TextSplitMode", + "modelAsString": true, + "values": [ + { + "name": "Pages", + "value": "pages", + "description": "Split the text into individual pages." + }, + { + "name": "Sentences", + "value": "sentences", + "description": "Split the text into individual sentences." + } + ] + } + }, + "TextTranslationSkill": { + "type": "object", + "description": "A skill to translate text from one language to another.", + "properties": { + "defaultToLanguageCode": { + "$ref": "#/definitions/TextTranslationSkillLanguage", + "description": "The language code to translate documents into for documents that don't specify the to language explicitly." + }, + "defaultFromLanguageCode": { + "$ref": "#/definitions/TextTranslationSkillLanguage", + "description": "The language code to translate documents from for documents that don't specify the from language explicitly." + }, + "suggestedFrom": { + "$ref": "#/definitions/TextTranslationSkillLanguage", + "description": "The language code to translate documents from when neither the fromLanguageCode input nor the defaultFromLanguageCode parameter are provided, and the automatic language detection is unsuccessful. Default is `en`.", + "x-nullable": true + } + }, + "required": [ + "defaultToLanguageCode" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Text.TranslationSkill" + }, + "TextTranslationSkillLanguage": { + "type": "string", + "description": "The language codes supported for input text by TextTranslationSkill.", + "enum": [ + "af", + "ar", + "bn", + "bs", + "bg", + "yue", + "ca", + "zh-Hans", + "zh-Hant", + "hr", + "cs", + "da", + "nl", + "en", + "et", + "fj", + "fil", + "fi", + "fr", + "de", + "el", + "ht", + "he", + "hi", + "mww", + "hu", + "is", + "id", + "it", + "ja", + "sw", + "tlh", + "tlh-Latn", + "tlh-Piqd", + "ko", + "lv", + "lt", + "mg", + "ms", + "mt", + "nb", + "fa", + "pl", + "pt", + "pt-br", + "pt-PT", + "otq", + "ro", + "ru", + "sm", + "sr-Cyrl", + "sr-Latn", + "sk", + "sl", + "es", + "sv", + "ty", + "ta", + "te", + "th", + "to", + "tr", + "uk", + "ur", + "vi", + "cy", + "yua", + "ga", + "kn", + "mi", + "ml", + "pa" + ], + "x-ms-enum": { + "name": "TextTranslationSkillLanguage", + "modelAsString": true, + "values": [ + { + "name": "af", + "value": "af", + "description": "Afrikaans" + }, + { + "name": "ar", + "value": "ar", + "description": "Arabic" + }, + { + "name": "bn", + "value": "bn", + "description": "Bangla" + }, + { + "name": "bs", + "value": "bs", + "description": "Bosnian (Latin)" + }, + { + "name": "bg", + "value": "bg", + "description": "Bulgarian" + }, + { + "name": "yue", + "value": "yue", + "description": "Cantonese (Traditional)" + }, + { + "name": "ca", + "value": "ca", + "description": "Catalan" + }, + { + "name": "zh-Hans", + "value": "zh-Hans", + "description": "Chinese Simplified" + }, + { + "name": "zh-Hant", + "value": "zh-Hant", + "description": "Chinese Traditional" + }, + { + "name": "hr", + "value": "hr", + "description": "Croatian" + }, + { + "name": "cs", + "value": "cs", + "description": "Czech" + }, + { + "name": "da", + "value": "da", + "description": "Danish" + }, + { + "name": "nl", + "value": "nl", + "description": "Dutch" + }, + { + "name": "en", + "value": "en", + "description": "English" + }, + { + "name": "et", + "value": "et", + "description": "Estonian" + }, + { + "name": "fj", + "value": "fj", + "description": "Fijian" + }, + { + "name": "fil", + "value": "fil", + "description": "Filipino" + }, + { + "name": "fi", + "value": "fi", + "description": "Finnish" + }, + { + "name": "fr", + "value": "fr", + "description": "French" + }, + { + "name": "de", + "value": "de", + "description": "German" + }, + { + "name": "el", + "value": "el", + "description": "Greek" + }, + { + "name": "ht", + "value": "ht", + "description": "Haitian Creole" + }, + { + "name": "he", + "value": "he", + "description": "Hebrew" + }, + { + "name": "hi", + "value": "hi", + "description": "Hindi" + }, + { + "name": "mww", + "value": "mww", + "description": "Hmong Daw" + }, + { + "name": "hu", + "value": "hu", + "description": "Hungarian" + }, + { + "name": "is", + "value": "is", + "description": "Icelandic" + }, + { + "name": "id", + "value": "id", + "description": "Indonesian" + }, + { + "name": "it", + "value": "it", + "description": "Italian" + }, + { + "name": "ja", + "value": "ja", + "description": "Japanese" + }, + { + "name": "sw", + "value": "sw", + "description": "Kiswahili" + }, + { + "name": "tlh", + "value": "tlh", + "description": "Klingon" + }, + { + "name": "tlh-Latn", + "value": "tlh-Latn", + "description": "Klingon (Latin script)" + }, + { + "name": "tlh-Piqd", + "value": "tlh-Piqd", + "description": "Klingon (Klingon script)" + }, + { + "name": "ko", + "value": "ko", + "description": "Korean" + }, + { + "name": "lv", + "value": "lv", + "description": "Latvian" + }, + { + "name": "lt", + "value": "lt", + "description": "Lithuanian" + }, + { + "name": "mg", + "value": "mg", + "description": "Malagasy" + }, + { + "name": "ms", + "value": "ms", + "description": "Malay" + }, + { + "name": "mt", + "value": "mt", + "description": "Maltese" + }, + { + "name": "nb", + "value": "nb", + "description": "Norwegian" + }, + { + "name": "fa", + "value": "fa", + "description": "Persian" + }, + { + "name": "pl", + "value": "pl", + "description": "Polish" + }, + { + "name": "pt", + "value": "pt", + "description": "Portuguese" + }, + { + "name": "pt-br", + "value": "pt-br", + "description": "Portuguese (Brazil)" + }, + { + "name": "pt-PT", + "value": "pt-PT", + "description": "Portuguese (Portugal)" + }, + { + "name": "otq", + "value": "otq", + "description": "Queretaro Otomi" + }, + { + "name": "ro", + "value": "ro", + "description": "Romanian" + }, + { + "name": "ru", + "value": "ru", + "description": "Russian" + }, + { + "name": "sm", + "value": "sm", + "description": "Samoan" + }, + { + "name": "sr-Cyrl", + "value": "sr-Cyrl", + "description": "Serbian (Cyrillic)" + }, + { + "name": "sr-Latn", + "value": "sr-Latn", + "description": "Serbian (Latin)" + }, + { + "name": "sk", + "value": "sk", + "description": "Slovak" + }, + { + "name": "sl", + "value": "sl", + "description": "Slovenian" + }, + { + "name": "es", + "value": "es", + "description": "Spanish" + }, + { + "name": "sv", + "value": "sv", + "description": "Swedish" + }, + { + "name": "ty", + "value": "ty", + "description": "Tahitian" + }, + { + "name": "ta", + "value": "ta", + "description": "Tamil" + }, + { + "name": "te", + "value": "te", + "description": "Telugu" + }, + { + "name": "th", + "value": "th", + "description": "Thai" + }, + { + "name": "to", + "value": "to", + "description": "Tongan" + }, + { + "name": "tr", + "value": "tr", + "description": "Turkish" + }, + { + "name": "uk", + "value": "uk", + "description": "Ukrainian" + }, + { + "name": "ur", + "value": "ur", + "description": "Urdu" + }, + { + "name": "vi", + "value": "vi", + "description": "Vietnamese" + }, + { + "name": "cy", + "value": "cy", + "description": "Welsh" + }, + { + "name": "yua", + "value": "yua", + "description": "Yucatec Maya" + }, + { + "name": "ga", + "value": "ga", + "description": "Irish" + }, + { + "name": "kn", + "value": "kn", + "description": "Kannada" + }, + { + "name": "mi", + "value": "mi", + "description": "Maori" + }, + { + "name": "ml", + "value": "ml", + "description": "Malayalam" + }, + { + "name": "pa", + "value": "pa", + "description": "Punjabi" + } + ] + } + }, + "TextWeights": { + "type": "object", + "description": "Defines weights on index fields for which matches should boost scoring in search queries.", + "properties": { + "weights": { + "type": "object", + "description": "The dictionary of per-field weights to boost document scoring. The keys are field names and the values are the weights for each field.", + "additionalProperties": { + "format": "double", + "type": "number" + } + } + }, + "required": [ + "weights" + ] + }, + "TokenCharacterKind": { + "type": "string", + "description": "Represents classes of characters on which a token filter can operate.", + "enum": [ + "letter", + "digit", + "whitespace", + "punctuation", + "symbol" + ], + "x-ms-enum": { + "name": "TokenCharacterKind", + "modelAsString": true, + "values": [ + { + "name": "Letter", + "value": "letter", + "description": "Keeps letters in tokens." + }, + { + "name": "Digit", + "value": "digit", + "description": "Keeps digits in tokens." + }, + { + "name": "Whitespace", + "value": "whitespace", + "description": "Keeps whitespace in tokens." + }, + { + "name": "Punctuation", + "value": "punctuation", + "description": "Keeps punctuation in tokens." + }, + { + "name": "Symbol", + "value": "symbol", + "description": "Keeps symbols in tokens." + } + ] + } + }, + "TokenFilter": { + "type": "object", + "description": "Base type for token filters.", + "properties": { + "@odata.type": { + "type": "string", + "description": "The discriminator for derived types." + }, + "name": { + "type": "string", + "description": "The name of the token filter. It must only contain letters, digits, spaces, dashes or underscores, can only start and end with alphanumeric characters, and is limited to 128 characters." + } + }, + "discriminator": "@odata.type", + "required": [ + "@odata.type", + "name" + ] + }, + "TokenFilterName": { + "type": "string", + "description": "Defines the names of all token filters supported by the search engine.", + "enum": [ + "arabic_normalization", + "apostrophe", + "asciifolding", + "cjk_bigram", + "cjk_width", + "classic", + "common_grams", + "edgeNGram_v2", + "elision", + "german_normalization", + "hindi_normalization", + "indic_normalization", + "keyword_repeat", + "kstem", + "length", + "limit", + "lowercase", + "nGram_v2", + "persian_normalization", + "phonetic", + "porter_stem", + "reverse", + "scandinavian_normalization", + "scandinavian_folding", + "shingle", + "snowball", + "sorani_normalization", + "stemmer", + "stopwords", + "trim", + "truncate", + "unique", + "uppercase", + "word_delimiter" + ], + "x-ms-enum": { + "name": "TokenFilterName", + "modelAsString": true, + "values": [ + { + "name": "ArabicNormalization", + "value": "arabic_normalization", + "description": "A token filter that applies the Arabic normalizer to normalize the orthography. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ar/ArabicNormalizationFilter.html" + }, + { + "name": "Apostrophe", + "value": "apostrophe", + "description": "Strips all characters after an apostrophe (including the apostrophe itself). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/tr/ApostropheFilter.html" + }, + { + "name": "AsciiFolding", + "value": "asciifolding", + "description": "Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the \"Basic Latin\" Unicode block) into their ASCII equivalents, if such equivalents exist. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ASCIIFoldingFilter.html" + }, + { + "name": "CjkBigram", + "value": "cjk_bigram", + "description": "Forms bigrams of CJK terms that are generated from the standard tokenizer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKBigramFilter.html" + }, + { + "name": "CjkWidth", + "value": "cjk_width", + "description": "Normalizes CJK width differences. Folds full-width ASCII variants into the equivalent basic Latin, and half-width Katakana variants into the equivalent Kana. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/cjk/CJKWidthFilter.html" + }, + { + "name": "Classic", + "value": "classic", + "description": "Removes English possessives, and dots from acronyms. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/standard/ClassicFilter.html" + }, + { + "name": "CommonGram", + "value": "common_grams", + "description": "Construct bigrams for frequently occurring terms while indexing. Single terms are still indexed too, with bigrams overlaid. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/commongrams/CommonGramsFilter.html" + }, + { + "name": "EdgeNGram", + "value": "edgeNGram_v2", + "description": "Generates n-grams of the given size(s) starting from the front or the back of an input token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.html" + }, + { + "name": "Elision", + "value": "elision", + "description": "Removes elisions. For example, \"l'avion\" (the plane) will be converted to \"avion\" (plane). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/util/ElisionFilter.html" + }, + { + "name": "GermanNormalization", + "value": "german_normalization", + "description": "Normalizes German characters according to the heuristics of the German2 snowball algorithm. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/de/GermanNormalizationFilter.html" + }, + { + "name": "HindiNormalization", + "value": "hindi_normalization", + "description": "Normalizes text in Hindi to remove some differences in spelling variations. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/hi/HindiNormalizationFilter.html" + }, + { + "name": "IndicNormalization", + "value": "indic_normalization", + "description": "Normalizes the Unicode representation of text in Indian languages. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/in/IndicNormalizationFilter.html" + }, + { + "name": "KeywordRepeat", + "value": "keyword_repeat", + "description": "Emits each incoming token twice, once as keyword and once as non-keyword. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/KeywordRepeatFilter.html" + }, + { + "name": "KStem", + "value": "kstem", + "description": "A high-performance kstem filter for English. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/en/KStemFilter.html" + }, + { + "name": "Length", + "value": "length", + "description": "Removes words that are too long or too short. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LengthFilter.html" + }, + { + "name": "Limit", + "value": "limit", + "description": "Limits the number of tokens while indexing. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/LimitTokenCountFilter.html" + }, + { + "name": "Lowercase", + "value": "lowercase", + "description": "Normalizes token text to lower case. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/LowerCaseFilter.html" + }, + { + "name": "NGram", + "value": "nGram_v2", + "description": "Generates n-grams of the given size(s). See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ngram/NGramTokenFilter.html" + }, + { + "name": "PersianNormalization", + "value": "persian_normalization", + "description": "Applies normalization for Persian. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/fa/PersianNormalizationFilter.html" + }, + { + "name": "Phonetic", + "value": "phonetic", + "description": "Create tokens for phonetic matches. See https://lucene.apache.org/core/4_10_3/analyzers-phonetic/org/apache/lucene/analysis/phonetic/package-tree.html" + }, + { + "name": "PorterStem", + "value": "porter_stem", + "description": "Uses the Porter stemming algorithm to transform the token stream. See http://tartarus.org/~martin/PorterStemmer" + }, + { + "name": "Reverse", + "value": "reverse", + "description": "Reverses the token string. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/reverse/ReverseStringFilter.html" + }, + { + "name": "ScandinavianNormalization", + "value": "scandinavian_normalization", + "description": "Normalizes use of the interchangeable Scandinavian characters. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ScandinavianNormalizationFilter.html" + }, + { + "name": "ScandinavianFoldingNormalization", + "value": "scandinavian_folding", + "description": "Folds Scandinavian characters åÅäæÄÆ->a and öÖøØ->o. It also discriminates against use of double vowels aa, ae, ao, oe and oo, leaving just the first one. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/ScandinavianFoldingFilter.html" + }, + { + "name": "Shingle", + "value": "shingle", + "description": "Creates combinations of tokens as a single token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/shingle/ShingleFilter.html" + }, + { + "name": "Snowball", + "value": "snowball", + "description": "A filter that stems words using a Snowball-generated stemmer. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/snowball/SnowballFilter.html" + }, + { + "name": "SoraniNormalization", + "value": "sorani_normalization", + "description": "Normalizes the Unicode representation of Sorani text. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/ckb/SoraniNormalizationFilter.html" + }, + { + "name": "Stemmer", + "value": "stemmer", + "description": "Language specific stemming filter. See https://learn.microsoft.com/rest/api/searchservice/Custom-analyzers-in-Azure-Search#TokenFilters" + }, + { + "name": "Stopwords", + "value": "stopwords", + "description": "Removes stop words from a token stream. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/core/StopFilter.html" + }, + { + "name": "Trim", + "value": "trim", + "description": "Trims leading and trailing whitespace from tokens. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TrimFilter.html" + }, + { + "name": "Truncate", + "value": "truncate", + "description": "Truncates the terms to a specific length. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/TruncateTokenFilter.html" + }, + { + "name": "Unique", + "value": "unique", + "description": "Filters out tokens with same text as the previous token. See http://lucene.apache.org/core/4_10_3/analyzers-common/org/apache/lucene/analysis/miscellaneous/RemoveDuplicatesTokenFilter.html" + }, + { + "name": "Uppercase", + "value": "uppercase", + "description": "Normalizes token text to upper case. See https://lucene.apache.org/core/6_6_1/analyzers-common/org/apache/lucene/analysis/core/UpperCaseFilter.html" + }, + { + "name": "WordDelimiter", + "value": "word_delimiter", + "description": "Splits words into subwords and performs optional transformations on subword groups." + } + ] + } + }, + "TruncateTokenFilter": { + "type": "object", + "description": "Truncates the terms to a specific length. This token filter is implemented using Apache Lucene.", + "properties": { + "length": { + "type": "integer", + "format": "int32", + "description": "The length at which terms will be truncated. Default and maximum is 300.", + "default": 300, + "maximum": 300 + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.TruncateTokenFilter" + }, + "UaxUrlEmailTokenizer": { + "type": "object", + "description": "Tokenizes urls and emails as one token. This tokenizer is implemented using Apache Lucene.", + "properties": { + "maxTokenLength": { + "type": "integer", + "format": "int32", + "description": "The maximum token length. Default is 255. Tokens longer than the maximum length are split. The maximum token length that can be used is 300 characters.", + "default": 255, + "maximum": 300 + } + }, + "allOf": [ + { + "$ref": "#/definitions/LexicalTokenizer" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.UaxUrlEmailTokenizer" + }, + "UniqueTokenFilter": { + "type": "object", + "description": "Filters out tokens with same text as the previous token. This token filter is implemented using Apache Lucene.", + "properties": { + "onlyOnSamePosition": { + "type": "boolean", + "description": "A value indicating whether to remove duplicates only at the same position. Default is false.", + "default": false + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.UniqueTokenFilter" + }, + "VectorEncodingFormat": { + "type": "string", + "description": "The encoding format for interpreting vector field contents.", + "enum": [ + "packedBit" + ], + "x-ms-enum": { + "name": "VectorEncodingFormat", + "modelAsString": true, + "values": [ + { + "name": "PackedBit", + "value": "packedBit", + "description": "Encoding format representing bits packed into a wider data type." + } + ] + } + }, + "VectorFilterMode": { + "type": "string", + "description": "Determines whether or not filters are applied before or after the vector search is performed.", + "enum": [ + "postFilter", + "preFilter", + "strictPostFilter" + ], + "x-ms-enum": { + "name": "VectorFilterMode", + "modelAsString": true, + "values": [ + { + "name": "PostFilter", + "value": "postFilter", + "description": "The filter will be applied after the candidate set of vector results is returned. Depending on the filter selectivity, this can result in fewer results than requested by the parameter 'k'." + }, + { + "name": "PreFilter", + "value": "preFilter", + "description": "The filter will be applied before the search query." + }, + { + "name": "StrictPostFilter", + "value": "strictPostFilter", + "description": "The filter will be applied after the global top-k candidate set of vector results is returned. This will result in fewer results than requested by the parameter 'k'." + } + ] + } + }, + "VectorQuery": { + "type": "object", + "description": "The query parameters for vector and hybrid search queries.", + "properties": { + "k": { + "type": "integer", + "format": "int32", + "description": "Number of nearest neighbors to return as top hits." + }, + "fields": { + "type": "string", + "description": "Vector Fields of type Collection(Edm.Single) to be included in the vector searched." + }, + "exhaustive": { + "type": "boolean", + "description": "When true, triggers an exhaustive k-nearest neighbor search across all vectors within the vector index. Useful for scenarios where exact matches are critical, such as determining ground truth values." + }, + "oversampling": { + "type": "number", + "format": "double", + "description": "Oversampling factor. Minimum value is 1. It overrides the 'defaultOversampling' parameter configured in the index definition. It can be set only when 'rerankWithOriginalVectors' is true. This parameter is only permitted when a compression method is used on the underlying vector field." + }, + "weight": { + "type": "number", + "format": "float", + "description": "Relative weight of the vector query when compared to other vector query and/or the text query within the same search request. This value is used when combining the results of multiple ranking lists produced by the different vector queries and/or the results retrieved through the text query. The higher the weight, the higher the documents that matched that query will be in the final ranking. Default is 1.0 and the value needs to be a positive number larger than zero." + }, + "threshold": { + "$ref": "#/definitions/VectorThreshold", + "description": "The threshold used for vector queries. Note this can only be set if all 'fields' use the same similarity metric." + }, + "filterOverride": { + "type": "string", + "description": "The OData filter expression to apply to this specific vector query. If no filter expression is defined at the vector level, the expression defined in the top level filter parameter is used instead." + }, + "perDocumentVectorLimit": { + "type": "integer", + "format": "int32", + "description": "Controls how many vectors can be matched from each document in a vector search query. Setting it to 1 ensures at most one vector per document is matched, guaranteeing results come from distinct documents. Setting it to 0 (unlimited) allows multiple relevant vectors from the same document to be matched. Default is 0." + }, + "kind": { + "$ref": "#/definitions/VectorQueryKind", + "description": "Type of query." + } + }, + "discriminator": "kind", + "required": [ + "kind" + ] + }, + "VectorQueryKind": { + "type": "string", + "description": "The kind of vector query being performed.", + "enum": [ + "vector", + "text", + "imageUrl", + "imageBinary" + ], + "x-ms-enum": { + "name": "VectorQueryKind", + "modelAsString": true, + "values": [ + { + "name": "Vector", + "value": "vector", + "description": "Vector query where a raw vector value is provided." + }, + { + "name": "Text", + "value": "text", + "description": "Vector query where a text value that needs to be vectorized is provided." + }, + { + "name": "ImageUrl", + "value": "imageUrl", + "description": "Vector query where an url that represents an image value that needs to be vectorized is provided." + }, + { + "name": "ImageBinary", + "value": "imageBinary", + "description": "Vector query where a base 64 encoded binary of an image that needs to be vectorized is provided." + } + ] + } + }, + "VectorSearch": { + "type": "object", + "description": "Contains configuration options related to vector search.", + "properties": { + "profiles": { + "type": "array", + "description": "Defines combinations of configurations to use with vector search.", + "items": { + "$ref": "#/definitions/VectorSearchProfile" + } + }, + "algorithms": { + "type": "array", + "description": "Contains configuration options specific to the algorithm used during indexing or querying.", + "items": { + "$ref": "#/definitions/VectorSearchAlgorithmConfiguration" + } + }, + "vectorizers": { + "type": "array", + "description": "Contains configuration options on how to vectorize text vector queries.", + "items": { + "$ref": "#/definitions/VectorSearchVectorizer" + } + }, + "compressions": { + "type": "array", + "description": "Contains configuration options specific to the compression method used during indexing or querying.", + "items": { + "$ref": "#/definitions/VectorSearchCompression" + } + } + } + }, + "VectorSearchAlgorithmConfiguration": { + "type": "object", + "description": "Contains configuration options specific to the algorithm used during indexing or querying.", + "properties": { + "name": { + "type": "string", + "description": "The name to associate with this particular configuration." + }, + "kind": { + "$ref": "#/definitions/VectorSearchAlgorithmKind", + "description": "Type of VectorSearchAlgorithmConfiguration." + } + }, + "discriminator": "kind", + "required": [ + "name", + "kind" + ] + }, + "VectorSearchAlgorithmKind": { + "type": "string", + "description": "The algorithm used for indexing and querying.", + "enum": [ + "hnsw", + "exhaustiveKnn" + ], + "x-ms-enum": { + "name": "VectorSearchAlgorithmKind", + "modelAsString": true, + "values": [ + { + "name": "Hnsw", + "value": "hnsw", + "description": "HNSW (Hierarchical Navigable Small World), a type of approximate nearest neighbors algorithm." + }, + { + "name": "ExhaustiveKnn", + "value": "exhaustiveKnn", + "description": "Exhaustive KNN algorithm which will perform brute-force search." + } + ] + } + }, + "VectorSearchAlgorithmMetric": { + "type": "string", + "description": "The similarity metric to use for vector comparisons. It is recommended to choose the same similarity metric as the embedding model was trained on.", + "enum": [ + "cosine", + "euclidean", + "dotProduct", + "hamming" + ], + "x-ms-enum": { + "name": "VectorSearchAlgorithmMetric", + "modelAsString": true, + "values": [ + { + "name": "Cosine", + "value": "cosine", + "description": "Measures the angle between vectors to quantify their similarity, disregarding magnitude. The smaller the angle, the closer the similarity." + }, + { + "name": "Euclidean", + "value": "euclidean", + "description": "Computes the straight-line distance between vectors in a multi-dimensional space. The smaller the distance, the closer the similarity." + }, + { + "name": "DotProduct", + "value": "dotProduct", + "description": "Calculates the sum of element-wise products to gauge alignment and magnitude similarity. The larger and more positive, the closer the similarity." + }, + { + "name": "Hamming", + "value": "hamming", + "description": "Only applicable to bit-packed binary data types. Determines dissimilarity by counting differing positions in binary vectors. The fewer differences, the closer the similarity." + } + ] + } + }, + "VectorSearchCompression": { + "type": "object", + "description": "Contains configuration options specific to the compression method used during indexing or querying.", + "properties": { + "name": { + "type": "string", + "description": "The name to associate with this particular configuration." + }, + "rescoringOptions": { + "$ref": "#/definitions/RescoringOptions", + "description": "Contains the options for rescoring.", + "x-nullable": true + }, + "truncationDimension": { + "type": "integer", + "format": "int32", + "description": "The number of dimensions to truncate the vectors to. Truncating the vectors reduces the size of the vectors and the amount of data that needs to be transferred during search. This can save storage cost and improve search performance at the expense of recall. It should be only used for embeddings trained with Matryoshka Representation Learning (MRL) such as OpenAI text-embedding-3-large (small). The default value is null, which means no truncation.", + "x-nullable": true + }, + "kind": { + "$ref": "#/definitions/VectorSearchCompressionKind", + "description": "Type of VectorSearchCompression." + } + }, + "discriminator": "kind", + "required": [ + "name", + "kind" + ] + }, + "VectorSearchCompressionKind": { + "type": "string", + "description": "The compression method used for indexing and querying.", + "enum": [ + "scalarQuantization", + "binaryQuantization" + ], + "x-ms-enum": { + "name": "VectorSearchCompressionKind", + "modelAsString": true, + "values": [ + { + "name": "ScalarQuantization", + "value": "scalarQuantization", + "description": "Scalar Quantization, a type of compression method. In scalar quantization, the original vectors values are compressed to a narrower type by discretizing and representing each component of a vector using a reduced set of quantized values, thereby reducing the overall data size." + }, + { + "name": "BinaryQuantization", + "value": "binaryQuantization", + "description": "Binary Quantization, a type of compression method. In binary quantization, the original vectors values are compressed to the narrower binary type by discretizing and representing each component of a vector using binary values, thereby reducing the overall data size." + } + ] + } + }, + "VectorSearchCompressionRescoreStorageMethod": { + "type": "string", + "description": "The storage method for the original full-precision vectors used for rescoring and internal index operations.", + "enum": [ + "preserveOriginals", + "discardOriginals" + ], + "x-ms-enum": { + "name": "VectorSearchCompressionRescoreStorageMethod", + "modelAsString": true, + "values": [ + { + "name": "PreserveOriginals", + "value": "preserveOriginals", + "description": "This option preserves the original full-precision vectors. Choose this option for maximum flexibility and highest quality of compressed search results. This consumes more storage but allows for rescoring and oversampling." + }, + { + "name": "DiscardOriginals", + "value": "discardOriginals", + "description": "This option discards the original full-precision vectors. Choose this option for maximum storage savings. Since this option does not allow for rescoring and oversampling, it will often cause slight to moderate reductions in quality." + } + ] + } + }, + "VectorSearchCompressionTarget": { + "type": "string", + "description": "The quantized data type of compressed vector values.", + "enum": [ + "int8" + ], + "x-ms-enum": { + "name": "VectorSearchCompressionTarget", + "modelAsString": true, + "values": [ + { + "name": "Int8", + "value": "int8", + "description": "8-bit signed integer." + } + ] + } + }, + "VectorSearchProfile": { + "type": "object", + "description": "Defines a combination of configurations to use with vector search.", + "properties": { + "name": { + "type": "string", + "description": "The name to associate with this particular vector search profile." + }, + "algorithm": { + "type": "string", + "description": "The name of the vector search algorithm configuration that specifies the algorithm and optional parameters." + }, + "vectorizer": { + "type": "string", + "description": "The name of the vectorization being configured for use with vector search." + }, + "compression": { + "type": "string", + "description": "The name of the compression method configuration that specifies the compression method and optional parameters." + } + }, + "required": [ + "name", + "algorithm" + ] + }, + "VectorSearchVectorizer": { + "type": "object", + "description": "Specifies the vectorization method to be used during query time.", + "properties": { + "name": { + "type": "string", + "description": "The name to associate with this particular vectorization method." + }, + "kind": { + "$ref": "#/definitions/VectorSearchVectorizerKind", + "description": "Type of VectorSearchVectorizer." + } + }, + "discriminator": "kind", + "required": [ + "name", + "kind" + ] + }, + "VectorSearchVectorizerKind": { + "type": "string", + "description": "The vectorization method to be used during query time.", + "enum": [ + "azureOpenAI", + "customWebApi", + "aiServicesVision", + "aml" + ], + "x-ms-enum": { + "name": "VectorSearchVectorizerKind", + "modelAsString": true, + "values": [ + { + "name": "AzureOpenAI", + "value": "azureOpenAI", + "description": "Generate embeddings using an Azure OpenAI resource at query time." + }, + { + "name": "CustomWebApi", + "value": "customWebApi", + "description": "Generate embeddings using a custom web endpoint at query time." + }, + { + "name": "AIServicesVision", + "value": "aiServicesVision", + "description": "Generate embeddings for an image or text input at query time using the Azure AI Services Vision Vectorize API." + }, + { + "name": "AML", + "value": "aml", + "description": "Generate embeddings using an Azure Machine Learning endpoint deployed via the Azure AI Foundry Model Catalog at query time." + } + ] + } + }, + "VectorSimilarityThreshold": { + "type": "object", + "description": "The results of the vector query will be filtered based on the vector similarity metric. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field.", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The threshold will filter based on the similarity metric value. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field." + } + }, + "required": [ + "value" + ], + "allOf": [ + { + "$ref": "#/definitions/VectorThreshold" + } + ], + "x-ms-discriminator-value": "vectorSimilarity" + }, + "VectorThreshold": { + "type": "object", + "description": "The threshold used for vector queries.", + "properties": { + "kind": { + "$ref": "#/definitions/VectorThresholdKind", + "description": "Type of threshold." + } + }, + "discriminator": "kind", + "required": [ + "kind" + ] + }, + "VectorThresholdKind": { + "type": "string", + "description": "The kind of threshold used to filter vector queries.", + "enum": [ + "vectorSimilarity", + "searchScore" + ], + "x-ms-enum": { + "name": "VectorThresholdKind", + "modelAsString": true, + "values": [ + { + "name": "VectorSimilarity", + "value": "vectorSimilarity", + "description": "The results of the vector query will be filtered based on the vector similarity metric. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field." + }, + { + "name": "SearchScore", + "value": "searchScore", + "description": "The results of the vector query will filter based on the '@search.score' value. Note this is the @search.score returned as part of the search response. The threshold direction will be chosen for higher @search.score." + } + ] + } + }, + "VectorizableImageBinaryQuery": { + "type": "object", + "description": "The query parameters to use for vector search when a base 64 encoded binary of an image that needs to be vectorized is provided.", + "properties": { + "base64Image": { + "type": "string", + "description": "The base 64 encoded binary of an image to be vectorized to perform a vector search query." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorQuery" + } + ], + "x-ms-discriminator-value": "imageBinary" + }, + "VectorizableImageUrlQuery": { + "type": "object", + "description": "The query parameters to use for vector search when an url that represents an image value that needs to be vectorized is provided.", + "properties": { + "url": { + "type": "string", + "description": "The URL of an image to be vectorized to perform a vector search query." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorQuery" + } + ], + "x-ms-discriminator-value": "imageUrl" + }, + "VectorizableTextQuery": { + "type": "object", + "description": "The query parameters to use for vector search when a text value that needs to be vectorized is provided.", + "properties": { + "text": { + "type": "string", + "description": "The text to be vectorized to perform a vector search query." + }, + "queryRewrites": { + "$ref": "#/definitions/QueryRewritesType", + "description": "Can be configured to let a generative model rewrite the query before sending it to be vectorized." + } + }, + "required": [ + "text" + ], + "allOf": [ + { + "$ref": "#/definitions/VectorQuery" + } + ], + "x-ms-discriminator-value": "text" + }, + "VectorizedQuery": { + "type": "object", + "description": "The query parameters to use for vector search when a raw vector value is provided.", + "properties": { + "vector": { + "type": "array", + "description": "The vector representation of a search query.", + "items": { + "type": "number", + "format": "float" + } + } + }, + "required": [ + "vector" + ], + "allOf": [ + { + "$ref": "#/definitions/VectorQuery" + } + ], + "x-ms-discriminator-value": "vector" + }, + "VectorsDebugInfo": { + "type": "object", + "description": "\"Contains debugging information specific to vector and hybrid search.\")", + "properties": { + "subscores": { + "$ref": "#/definitions/QueryResultDocumentSubscores", + "description": "The breakdown of subscores of the document prior to the chosen result set fusion/combination method such as RRF.", + "readOnly": true + } + } + }, + "VisionVectorizeSkill": { + "type": "object", + "description": "Allows you to generate a vector embedding for a given image or text input using the Azure AI Services Vision Vectorize API.", + "properties": { + "modelVersion": { + "type": "string", + "description": "The version of the model to use when calling the AI Services Vision service. It will default to the latest available when not specified.", + "x-nullable": true + } + }, + "required": [ + "modelVersion" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Vision.VectorizeSkill" + }, + "VisualFeature": { + "type": "string", + "description": "The strings indicating what visual feature types to return.", + "enum": [ + "adult", + "brands", + "categories", + "description", + "faces", + "objects", + "tags" + ], + "x-ms-enum": { + "name": "VisualFeature", + "modelAsString": true, + "values": [ + { + "name": "Adult", + "value": "adult", + "description": "Visual features recognized as adult persons." + }, + { + "name": "Brands", + "value": "brands", + "description": "Visual features recognized as commercial brands." + }, + { + "name": "Categories", + "value": "categories", + "description": "Categories." + }, + { + "name": "Description", + "value": "description", + "description": "Description." + }, + { + "name": "Faces", + "value": "faces", + "description": "Visual features recognized as people faces." + }, + { + "name": "Objects", + "value": "objects", + "description": "Visual features recognized as objects." + }, + { + "name": "Tags", + "value": "tags", + "description": "Tags." + } + ] + } + }, + "WebApiHttpHeaders": { + "type": "object", + "description": "A dictionary of http request headers.", + "additionalProperties": { + "type": "string" + } + }, + "WebApiSkill": { + "type": "object", + "description": "A skill that can call a Web API endpoint, allowing you to extend a skillset by having it call your custom code.", + "properties": { + "uri": { + "type": "string", + "description": "The url for the Web API." + }, + "httpHeaders": { + "$ref": "#/definitions/WebApiHttpHeaders", + "description": "The headers required to make the http request." + }, + "httpMethod": { + "type": "string", + "description": "The method for the http request." + }, + "timeout": { + "type": "string", + "format": "duration", + "description": "The desired timeout for the request. Default is 30 seconds." + }, + "batchSize": { + "type": "integer", + "format": "int32", + "description": "The desired batch size which indicates number of documents.", + "x-nullable": true + }, + "degreeOfParallelism": { + "type": "integer", + "format": "int32", + "description": "If set, the number of parallel calls that can be made to the Web API.", + "x-nullable": true + }, + "authResourceId": { + "type": "string", + "description": "Applies to custom skills that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the custom skill connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.", + "x-nullable": true + }, + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true + } + }, + "required": [ + "uri" + ], + "allOf": [ + { + "$ref": "#/definitions/SearchIndexerSkill" + } + ], + "x-ms-discriminator-value": "#Microsoft.Skills.Custom.WebApiSkill" + }, + "WebApiVectorizer": { + "type": "object", + "description": "Specifies a user-defined vectorizer for generating the vector embedding of a query string. Integration of an external vectorizer is achieved using the custom Web API interface of a skillset.", + "properties": { + "customWebApiParameters": { + "$ref": "#/definitions/WebApiVectorizerParameters", + "description": "Specifies the properties of the user-defined vectorizer." + } + }, + "allOf": [ + { + "$ref": "#/definitions/VectorSearchVectorizer" + } + ], + "x-ms-discriminator-value": "customWebApi" + }, + "WebApiVectorizerParameters": { + "type": "object", + "description": "Specifies the properties for connecting to a user-defined vectorizer.", + "properties": { + "uri": { + "type": "string", + "format": "uri", + "description": "The URI of the Web API providing the vectorizer." + }, + "httpHeaders": { + "type": "object", + "description": "The headers required to make the HTTP request.", + "additionalProperties": { + "type": "string" + } + }, + "httpMethod": { + "type": "string", + "description": "The method for the HTTP request." + }, + "timeout": { + "type": "string", + "format": "duration", + "description": "The desired timeout for the request. Default is 30 seconds." + }, + "authResourceId": { + "type": "string", + "description": "Applies to custom endpoints that connect to external code in an Azure function or some other application that provides the transformations. This value should be the application ID created for the function or app when it was registered with Azure Active Directory. When specified, the vectorization connects to the function or app using a managed ID (either system or user-assigned) of the search service and the access token of the function or app, using this value as the resource id for creating the scope of the access token.", + "x-nullable": true + }, + "authIdentity": { + "$ref": "#/definitions/SearchIndexerDataIdentity", + "description": "The user-assigned managed identity used for outbound connections. If an authResourceId is provided and it's not specified, the system-assigned managed identity is used. On updates to the indexer, if the identity is unspecified, the value remains unchanged. If set to \"none\", the value of this property is cleared.", + "x-nullable": true + } + } + }, + "WebKnowledgeSource": { + "type": "object", + "description": "Knowledge Source targeting web results.", + "properties": { + "webParameters": { + "$ref": "#/definitions/WebKnowledgeSourceParameters", + "description": "The parameters for the web knowledge source." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSource" + } + ], + "x-ms-discriminator-value": "web" + }, + "WebKnowledgeSourceDomain": { + "type": "object", + "description": "Configuration for web knowledge source domain.", + "properties": { + "address": { + "type": "string", + "description": "The address of the domain." + }, + "includeSubpages": { + "type": "boolean", + "description": "Whether or not to include subpages from this domain." + } + }, + "required": [ + "address" + ] + }, + "WebKnowledgeSourceDomains": { + "type": "object", + "description": "Domain allow/block configuration for web knowledge source.", + "properties": { + "allowedDomains": { + "type": "array", + "description": "Domains that are allowed for web results.", + "items": { + "$ref": "#/definitions/WebKnowledgeSourceDomain" + } + }, + "blockedDomains": { + "type": "array", + "description": "Domains that are blocked from web results.", + "items": { + "$ref": "#/definitions/WebKnowledgeSourceDomain" + } + } + } + }, + "WebKnowledgeSourceParameters": { + "type": "object", + "description": "Parameters for web knowledge source.", + "properties": { + "domains": { + "$ref": "#/definitions/WebKnowledgeSourceDomains", + "description": "Domain allow/block configuration for web results." + } + } + }, + "WebKnowledgeSourceParams": { + "type": "object", + "description": "Specifies runtime parameters for a web knowledge source", + "properties": { + "language": { + "type": "string", + "description": "The language of the web results." + }, + "market": { + "type": "string", + "description": "The market of the web results." + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The number of web results to return." + }, + "freshness": { + "type": "string", + "description": "The freshness of web results." + } + }, + "allOf": [ + { + "$ref": "#/definitions/KnowledgeSourceParams" + } + ], + "x-ms-discriminator-value": "web" + }, + "WordDelimiterTokenFilter": { + "type": "object", + "description": "Splits words into subwords and performs optional transformations on subword groups. This token filter is implemented using Apache Lucene.", + "properties": { + "generateWordParts": { + "type": "boolean", + "description": "A value indicating whether to generate part words. If set, causes parts of words to be generated; for example \"AzureSearch\" becomes \"Azure\" \"Search\". Default is true.", + "default": true + }, + "generateNumberParts": { + "type": "boolean", + "description": "A value indicating whether to generate number subwords. Default is true.", + "default": true + }, + "catenateWords": { + "type": "boolean", + "description": "A value indicating whether maximum runs of word parts will be catenated. For example, if this is set to true, \"Azure-Search\" becomes \"AzureSearch\". Default is false.", + "default": false + }, + "catenateNumbers": { + "type": "boolean", + "description": "A value indicating whether maximum runs of number parts will be catenated. For example, if this is set to true, \"1-2\" becomes \"12\". Default is false.", + "default": false + }, + "catenateAll": { + "type": "boolean", + "description": "A value indicating whether all subword parts will be catenated. For example, if this is set to true, \"Azure-Search-1\" becomes \"AzureSearch1\". Default is false.", + "default": false + }, + "splitOnCaseChange": { + "type": "boolean", + "description": "A value indicating whether to split words on caseChange. For example, if this is set to true, \"AzureSearch\" becomes \"Azure\" \"Search\". Default is true.", + "default": true + }, + "preserveOriginal": { + "type": "boolean", + "description": "A value indicating whether original words will be preserved and added to the subword list. Default is false.", + "default": false + }, + "splitOnNumerics": { + "type": "boolean", + "description": "A value indicating whether to split on numbers. For example, if this is set to true, \"Azure1Search\" becomes \"Azure\" \"1\" \"Search\". Default is true.", + "default": true + }, + "stemEnglishPossessive": { + "type": "boolean", + "description": "A value indicating whether to remove trailing \"'s\" for each subword. Default is true.", + "default": true + }, + "protectedWords": { + "type": "array", + "description": "A list of tokens to protect from being delimited.", + "items": { + "type": "string" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/TokenFilter" + } + ], + "x-ms-discriminator-value": "#Microsoft.Azure.Search.WordDelimiterTokenFilter" + } + }, + "parameters": { + "Azure.Core.ClientRequestIdHeader": { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method", + "x-ms-client-name": "clientRequestId" + }, + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "apiVersion" + }, + "SearchOptions.answers": { + "name": "answers", + "in": "query", + "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns answers extracted from key passages in the highest ranked documents. The number of answers returned can be configured by appending the pipe character `|` followed by the `count-` option after the answers parameter value, such as `extractive|count-3`. Default count is 1. The confidence threshold can be configured by appending the pipe character `|` followed by the `threshold-` option after the answers parameter value, such as `extractive|threshold-0.9`. Default threshold is 0.7. The maximum character length of answers can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.", + "required": false, + "type": "string", + "enum": [ + "none", + "extractive" + ], + "x-ms-enum": { + "name": "QueryAnswerType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Do not return answers for the query." + }, + { + "name": "Extractive", + "value": "extractive", + "description": "Extracts answer candidates from the contents of the documents returned in response to a query expressed as a question in natural language." + } + ] + }, + "x-ms-parameter-location": "method" + }, + "SearchOptions.captions": { + "name": "captions", + "in": "query", + "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns captions extracted from key passages in the highest ranked documents. When Captions is set to `extractive`, highlighting is enabled by default, and can be configured by appending the pipe character `|` followed by the `highlight-` option, such as `extractive|highlight-true`. Defaults to `None`. The maximum character length of captions can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.", + "required": false, + "type": "string", + "enum": [ + "none", + "extractive" + ], + "x-ms-enum": { + "name": "QueryCaptionType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Do not return captions for the query." + }, + { + "name": "Extractive", + "value": "extractive", + "description": "Extracts captions from the matching documents that contain passages relevant to the search query." + } + ] + }, + "x-ms-parameter-location": "method" + }, + "SearchOptions.debug": { + "name": "debug", + "in": "query", + "description": "Enables a debugging tool that can be used to further explore your search results.", + "required": false, + "type": "string", + "enum": [ + "disabled", + "semantic", + "vector", + "queryRewrites", + "innerHits", + "all" + ], + "x-ms-enum": { + "name": "QueryDebugMode", + "modelAsString": true, + "values": [ + { + "name": "Disabled", + "value": "disabled", + "description": "No query debugging information will be returned." + }, + { + "name": "Semantic", + "value": "semantic", + "description": "Allows the user to further explore their reranked results." + }, + { + "name": "Vector", + "value": "vector", + "description": "Allows the user to further explore their hybrid and vector query results." + }, + { + "name": "QueryRewrites", + "value": "queryRewrites", + "description": "Allows the user to explore the list of query rewrites generated for their search request." + }, + { + "name": "InnerHits", + "value": "innerHits", + "description": "Allows the user to retrieve scoring information regarding vectors matched within a collection of complex types." + }, + { + "name": "All", + "value": "all", + "description": "Turn on all debug options." + } + ] + }, + "x-ms-parameter-location": "method" + }, + "SearchOptions.facets": { + "name": "facet", + "in": "query", + "description": "The list of facet expressions to apply to the search query. Each facet expression contains a field name, optionally followed by a comma-separated list of name:value pairs.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "x-ms-parameter-location": "method", + "x-ms-client-name": "facets" + }, + "SearchOptions.filter": { + "name": "$filter", + "in": "query", + "description": "The OData $filter expression to apply to the search query.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "filter" + }, + "SearchOptions.highlightFields": { + "name": "highlight", + "in": "query", + "description": "The list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "x-ms-parameter-location": "method", + "x-ms-client-name": "highlightFields" + }, + "SearchOptions.highlightPostTag": { + "name": "highlightPostTag", + "in": "query", + "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "SearchOptions.highlightPreTag": { + "name": "highlightPreTag", + "in": "query", + "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. Default is <em>.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "SearchOptions.includeTotalResultCount": { + "name": "$count", + "in": "query", + "description": "A value that specifies whether to fetch the total count of results. Default is false. Setting this value to true may have a performance impact. Note that the count returned is an approximation.", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "x-ms-client-name": "includeTotalResultCount" + }, + "SearchOptions.minimumCoverage": { + "name": "minimumCoverage", + "in": "query", + "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a search query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 100.", + "required": false, + "type": "number", + "format": "double", + "x-ms-parameter-location": "method" + }, + "SearchOptions.orderBy": { + "name": "$orderby", + "in": "query", + "description": "The list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, and desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no OrderBy is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "x-ms-parameter-location": "method", + "x-ms-client-name": "orderBy" + }, + "SearchOptions.queryLanguage": { + "name": "queryLanguage", + "in": "query", + "description": "The language of the query.", + "required": false, + "type": "string", + "enum": [ + "none", + "en-us", + "en-gb", + "en-in", + "en-ca", + "en-au", + "fr-fr", + "fr-ca", + "de-de", + "es-es", + "es-mx", + "zh-cn", + "zh-tw", + "pt-br", + "pt-pt", + "it-it", + "ja-jp", + "ko-kr", + "ru-ru", + "cs-cz", + "nl-be", + "nl-nl", + "hu-hu", + "pl-pl", + "sv-se", + "tr-tr", + "hi-in", + "ar-sa", + "ar-eg", + "ar-ma", + "ar-kw", + "ar-jo", + "da-dk", + "no-no", + "bg-bg", + "hr-hr", + "hr-ba", + "ms-my", + "ms-bn", + "sl-sl", + "ta-in", + "vi-vn", + "el-gr", + "ro-ro", + "is-is", + "id-id", + "th-th", + "lt-lt", + "uk-ua", + "lv-lv", + "et-ee", + "ca-es", + "fi-fi", + "sr-ba", + "sr-me", + "sr-rs", + "sk-sk", + "nb-no", + "hy-am", + "bn-in", + "eu-es", + "gl-es", + "gu-in", + "he-il", + "ga-ie", + "kn-in", + "ml-in", + "mr-in", + "fa-ae", + "pa-in", + "te-in", + "ur-pk" + ], + "x-ms-enum": { + "name": "QueryLanguage", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Query language not specified." + }, + { + "name": "EnUs", + "value": "en-us", + "description": "Query language value for English (United States)." + }, + { + "name": "EnGb", + "value": "en-gb", + "description": "Query language value for English (Great Britain)." + }, + { + "name": "EnIn", + "value": "en-in", + "description": "Query language value for English (India)." + }, + { + "name": "EnCa", + "value": "en-ca", + "description": "Query language value for English (Canada)." + }, + { + "name": "EnAu", + "value": "en-au", + "description": "Query language value for English (Australia)." + }, + { + "name": "FrFr", + "value": "fr-fr", + "description": "Query language value for French (France)." + }, + { + "name": "FrCa", + "value": "fr-ca", + "description": "Query language value for French (Canada)." + }, + { + "name": "DeDe", + "value": "de-de", + "description": "Query language value for German (Germany)." + }, + { + "name": "EsEs", + "value": "es-es", + "description": "Query language value for Spanish (Spain)." + }, + { + "name": "EsMx", + "value": "es-mx", + "description": "Query language value for Spanish (Mexico)." + }, + { + "name": "ZhCn", + "value": "zh-cn", + "description": "Query language value for Chinese (China)." + }, + { + "name": "ZhTw", + "value": "zh-tw", + "description": "Query language value for Chinese (Taiwan)." + }, + { + "name": "PtBr", + "value": "pt-br", + "description": "Query language value for Portuguese (Brazil)." + }, + { + "name": "PtPt", + "value": "pt-pt", + "description": "Query language value for Portuguese (Portugal)." + }, + { + "name": "ItIt", + "value": "it-it", + "description": "Query language value for Italian (Italy)." + }, + { + "name": "JaJp", + "value": "ja-jp", + "description": "Query language value for Japanese (Japan)." + }, + { + "name": "KoKr", + "value": "ko-kr", + "description": "Query language value for Korean (Korea)." + }, + { + "name": "RuRu", + "value": "ru-ru", + "description": "Query language value for Russian (Russia)." + }, + { + "name": "CsCz", + "value": "cs-cz", + "description": "Query language value for Czech (Czech Republic)." + }, + { + "name": "NlBe", + "value": "nl-be", + "description": "Query language value for Dutch (Belgium)." + }, + { + "name": "NlNl", + "value": "nl-nl", + "description": "Query language value for Dutch (Netherlands)." + }, + { + "name": "HuHu", + "value": "hu-hu", + "description": "Query language value for Hungarian (Hungary)." + }, + { + "name": "PlPl", + "value": "pl-pl", + "description": "Query language value for Polish (Poland)." + }, + { + "name": "SvSe", + "value": "sv-se", + "description": "Query language value for Swedish (Sweden)." + }, + { + "name": "TrTr", + "value": "tr-tr", + "description": "Query language value for Turkish (Turkey)." + }, + { + "name": "HiIn", + "value": "hi-in", + "description": "Query language value for Hindi (India)." + }, + { + "name": "ArSa", + "value": "ar-sa", + "description": "Query language value for Arabic (Saudi Arabia)." + }, + { + "name": "ArEg", + "value": "ar-eg", + "description": "Query language value for Arabic (Egypt)." + }, + { + "name": "ArMa", + "value": "ar-ma", + "description": "Query language value for Arabic (Morocco)." + }, + { + "name": "ArKw", + "value": "ar-kw", + "description": "Query language value for Arabic (Kuwait)." + }, + { + "name": "ArJo", + "value": "ar-jo", + "description": "Query language value for Arabic (Jordan)." + }, + { + "name": "DaDk", + "value": "da-dk", + "description": "Query language value for Danish (Denmark)." + }, + { + "name": "NoNo", + "value": "no-no", + "description": "Query language value for Norwegian (Norway)." + }, + { + "name": "BgBg", + "value": "bg-bg", + "description": "Query language value for Bulgarian (Bulgaria)." + }, + { + "name": "HrHr", + "value": "hr-hr", + "description": "Query language value for Croatian (Croatia)." + }, + { + "name": "HrBa", + "value": "hr-ba", + "description": "Query language value for Croatian (Bosnia and Herzegovina)." + }, + { + "name": "MsMy", + "value": "ms-my", + "description": "Query language value for Malay (Malaysia)." + }, + { + "name": "MsBn", + "value": "ms-bn", + "description": "Query language value for Malay (Brunei Darussalam)." + }, + { + "name": "SlSl", + "value": "sl-sl", + "description": "Query language value for Slovenian (Slovenia)." + }, + { + "name": "TaIn", + "value": "ta-in", + "description": "Query language value for Tamil (India)." + }, + { + "name": "ViVn", + "value": "vi-vn", + "description": "Query language value for Vietnamese (Viet Nam)." + }, + { + "name": "ElGr", + "value": "el-gr", + "description": "Query language value for Greek (Greece)." + }, + { + "name": "RoRo", + "value": "ro-ro", + "description": "Query language value for Romanian (Romania)." + }, + { + "name": "IsIs", + "value": "is-is", + "description": "Query language value for Icelandic (Iceland)." + }, + { + "name": "IdId", + "value": "id-id", + "description": "Query language value for Indonesian (Indonesia)." + }, + { + "name": "ThTh", + "value": "th-th", + "description": "Query language value for Thai (Thailand)." + }, + { + "name": "LtLt", + "value": "lt-lt", + "description": "Query language value for Lithuanian (Lithuania)." + }, + { + "name": "UkUa", + "value": "uk-ua", + "description": "Query language value for Ukrainian (Ukraine)." + }, + { + "name": "LvLv", + "value": "lv-lv", + "description": "Query language value for Latvian (Latvia)." + }, + { + "name": "EtEe", + "value": "et-ee", + "description": "Query language value for Estonian (Estonia)." + }, + { + "name": "CaEs", + "value": "ca-es", + "description": "Query language value for Catalan." + }, + { + "name": "FiFi", + "value": "fi-fi", + "description": "Query language value for Finnish (Finland)." + }, + { + "name": "SrBa", + "value": "sr-ba", + "description": "Query language value for Serbian (Bosnia and Herzegovina)." + }, + { + "name": "SrMe", + "value": "sr-me", + "description": "Query language value for Serbian (Montenegro)." + }, + { + "name": "SrRs", + "value": "sr-rs", + "description": "Query language value for Serbian (Serbia)." + }, + { + "name": "SkSk", + "value": "sk-sk", + "description": "Query language value for Slovak (Slovakia)." + }, + { + "name": "NbNo", + "value": "nb-no", + "description": "Query language value for Norwegian (Norway)." + }, + { + "name": "HyAm", + "value": "hy-am", + "description": "Query language value for Armenian (Armenia)." + }, + { + "name": "BnIn", + "value": "bn-in", + "description": "Query language value for Bengali (India)." + }, + { + "name": "EuEs", + "value": "eu-es", + "description": "Query language value for Basque." + }, + { + "name": "GlEs", + "value": "gl-es", + "description": "Query language value for Galician." + }, + { + "name": "GuIn", + "value": "gu-in", + "description": "Query language value for Gujarati (India)." + }, + { + "name": "HeIl", + "value": "he-il", + "description": "Query language value for Hebrew (Israel)." + }, + { + "name": "GaIe", + "value": "ga-ie", + "description": "Query language value for Irish (Ireland)." + }, + { + "name": "KnIn", + "value": "kn-in", + "description": "Query language value for Kannada (India)." + }, + { + "name": "MlIn", + "value": "ml-in", + "description": "Query language value for Malayalam (India)." + }, + { + "name": "MrIn", + "value": "mr-in", + "description": "Query language value for Marathi (India)." + }, + { + "name": "FaAe", + "value": "fa-ae", + "description": "Query language value for Persian (U.A.E.)." + }, + { + "name": "PaIn", + "value": "pa-in", + "description": "Query language value for Punjabi (India)." + }, + { + "name": "TeIn", + "value": "te-in", + "description": "Query language value for Telugu (India)." + }, + { + "name": "UrPk", + "value": "ur-pk", + "description": "Query language value for Urdu (Pakistan)." + } + ] }, - "description": "Represents various service level limits." + "x-ms-parameter-location": "method" }, - "ResourceCounter": { - "type": "object", - "properties": { - "usage": { - "type": "integer", - "format": "int64", - "x-nullable": false, - "description": "The resource usage amount." - }, - "quota": { - "type": "integer", - "format": "int64", - "x-nullable": true, - "description": "The resource amount quota." - } - }, - "required": [ - "usage" + "SearchOptions.queryRewrites": { + "name": "queryRewrites", + "in": "query", + "description": "When QueryRewrites is set to `generative`, the query terms are sent to a generate model which will produce 10 (default) rewrites to help increase the recall of the request. The requested count can be configured by appending the pipe character `|` followed by the `count-` option, such as `generative|count-3`. Defaults to `None`. This parameter is only valid if the query type is `semantic`.", + "required": false, + "type": "string", + "enum": [ + "none", + "generative" ], - "description": "Represents a resource's usage and quota." + "x-ms-enum": { + "name": "QueryRewritesType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Do not generate additional query rewrites for this query." + }, + { + "name": "Generative", + "value": "generative", + "description": "Generate alternative query terms to increase the recall of a search request." + } + ] + }, + "x-ms-parameter-location": "method" }, - "SemanticSettings": { - "type": "object", - "x-ms-client-name": "SemanticSearch", - "properties": { - "defaultConfiguration": { - "x-ms-client-name": "defaultConfigurationName", - "type": "string", - "description": "Allows you to set the name of a default semantic configuration in your index, making it optional to pass it on as a query parameter every time." - }, - "configurations": { - "type": "array", - "items": { - "$ref": "#/definitions/SemanticConfiguration" + "SearchOptions.queryType": { + "name": "queryType", + "in": "query", + "description": "A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax.", + "required": false, + "type": "string", + "enum": [ + "simple", + "full", + "semantic" + ], + "x-ms-enum": { + "name": "QueryType", + "modelAsString": true, + "values": [ + { + "name": "Simple", + "value": "simple", + "description": "Uses the simple query syntax for searches. Search text is interpreted using a simple query language that allows for symbols such as +, * and \"\". Queries are evaluated across all searchable fields by default, unless the searchFields parameter is specified." }, - "description": "The semantic configurations for the index." - } + { + "name": "Full", + "value": "full", + "description": "Uses the full Lucene query syntax for searches. Search text is interpreted using the Lucene query language which allows field-specific and weighted searches, as well as other advanced features." + }, + { + "name": "Semantic", + "value": "semantic", + "description": "Best suited for queries expressed in natural language as opposed to keywords. Improves precision of search results by re-ranking the top search results using a ranking model trained on the Web corpus." + } + ] }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/semantic-search-overview" + "x-ms-parameter-location": "method" + }, + "SearchOptions.scoringParameters": { + "name": "scoringParameter", + "in": "query", + "description": "The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be \"mylocation--122.2,44.8\" (without the quotes).", + "required": false, + "type": "array", + "items": { + "type": "string" }, - "description": "Defines parameters for a search index that influence semantic capabilities." + "collectionFormat": "multi", + "x-ms-parameter-location": "method", + "x-ms-client-name": "scoringParameters" }, - "SemanticConfiguration": { - "type": "object", - "properties": { - "name": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Naming-rules" + "SearchOptions.scoringProfile": { + "name": "scoringProfile", + "in": "query", + "description": "The name of a scoring profile to evaluate match scores for matching documents in order to sort the results.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "SearchOptions.scoringStatistics": { + "name": "scoringStatistics", + "in": "query", + "description": "A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency.", + "required": false, + "type": "string", + "enum": [ + "local", + "global" + ], + "x-ms-enum": { + "name": "ScoringStatistics", + "modelAsString": true, + "values": [ + { + "name": "Local", + "value": "local", + "description": "The scoring statistics will be calculated locally for lower latency." }, - "type": "string", - "description": "The name of the semantic configuration.", - "x-nullable": false - }, - "prioritizedFields": { - "$ref": "#/definitions/PrioritizedFields", - "x-nullable": false, - "description": "Describes the title, content, and keyword fields to be used for semantic ranking, captions, highlights, and answers. At least one of the three sub properties (titleField, prioritizedKeywordsFields and prioritizedContentFields) need to be set." - }, - "rankingOrder": { - "$ref": "#/definitions/RankingOrder", - "x-nullable": true, - "description": "Specifies the score type to be used for the sort order of the search results." - }, - "flightingOptIn": { - "default": false, - "type": "boolean", - "description": "Determines which semantic or query rewrite models to use during model flighting/upgrades." - } + { + "name": "Global", + "value": "global", + "description": "The scoring statistics will be calculated globally for more consistent scoring." + } + ] }, - "required": [ - "name", - "prioritizedFields" - ], - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/semantic-search-overview" + "x-ms-parameter-location": "method" + }, + "SearchOptions.searchFields": { + "name": "searchFields", + "in": "query", + "description": "The list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter.", + "required": false, + "type": "array", + "items": { + "type": "string" }, - "description": "Defines a specific configuration to be used in the context of semantic capabilities." + "collectionFormat": "csv", + "x-ms-parameter-location": "method" }, - "PrioritizedFields": { - "type": "object", - "x-ms-client-name": "SemanticPrioritizedFields", - "properties": { - "titleField": { - "$ref": "#/definitions/SemanticField", - "description": "Defines the title field to be used for semantic ranking, captions, highlights, and answers. If you don't have a title field in your index, leave this blank." - }, - "prioritizedContentFields": { - "x-ms-client-name": "contentFields", - "type": "array", - "items": { - "$ref": "#/definitions/SemanticField" - }, - "description": "Defines the content fields to be used for semantic ranking, captions, highlights, and answers. For the best result, the selected fields should contain text in natural language form. The order of the fields in the array represents their priority. Fields with lower priority may get truncated if the content is long." - }, - "prioritizedKeywordsFields": { - "x-ms-client-name": "keywordsFields", - "type": "array", - "items": { - "$ref": "#/definitions/SemanticField" + "SearchOptions.searchMode": { + "name": "searchMode", + "in": "query", + "description": "A value that specifies whether any or all of the search terms must be matched in order to count the document as a match.", + "required": false, + "type": "string", + "enum": [ + "any", + "all" + ], + "x-ms-enum": { + "name": "SearchMode", + "modelAsString": true, + "values": [ + { + "name": "Any", + "value": "any", + "description": "Any of the search terms must be matched in order to count the document as a match." }, - "description": "Defines the keyword fields to be used for semantic ranking, captions, highlights, and answers. For the best result, the selected fields should contain a list of keywords. The order of the fields in the array represents their priority. Fields with lower priority may get truncated if the content is long." - } - }, - "externalDocs": { - "url": "https://learn.microsoft.com/azure/search/semantic-search-overview" + { + "name": "All", + "value": "all", + "description": "All of the search terms must be matched in order to count the document as a match." + } + ] }, - "description": "Describes the title, content, and keywords fields to be used for semantic ranking, captions, highlights, and answers." + "x-ms-parameter-location": "method" }, - "SemanticField": { - "type": "object", - "properties": { - "fieldName": { - "type": "string", - "description": "", - "x-nullable": false - } + "SearchOptions.select": { + "name": "$select", + "in": "query", + "description": "The list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included.", + "required": false, + "type": "array", + "items": { + "type": "string" }, - "required": [ - "fieldName" - ], - "description": "A field that is used as part of the semantic configuration." - } - }, - "parameters": { - "ApiVersionParameter": { - "name": "api-version", + "collectionFormat": "csv", + "x-ms-parameter-location": "method", + "x-ms-client-name": "select" + }, + "SearchOptions.semanticConfiguration": { + "name": "semanticConfiguration", "in": "query", - "required": true, + "description": "The name of the semantic configuration that lists which fields should be used for semantic ranking, captions, highlights, and answers", + "required": false, "type": "string", - "description": "Client Api Version." + "x-ms-parameter-location": "method" }, - "ClientRequestIdParameter": { - "name": "x-ms-client-request-id", - "in": "header", + "SearchOptions.semanticErrorHandling": { + "name": "semanticErrorHandling", + "in": "query", + "description": "Allows the user to choose whether a semantic call should fail completely, or to return partial results (default).", "required": false, "type": "string", - "format": "uuid", - "description": "The tracking ID sent with the request to help with debugging.", - "x-ms-client-request-id": true, - "x-ms-parameter-grouping": { - "name": "request-options" + "enum": [ + "partial", + "fail" + ], + "x-ms-enum": { + "name": "SemanticErrorMode", + "modelAsString": true, + "values": [ + { + "name": "Partial", + "value": "partial", + "description": "If the semantic processing fails, partial results still return. The definition of partial results depends on what semantic step failed and what was the reason for failure." + }, + { + "name": "Fail", + "value": "fail", + "description": "If there is an exception during the semantic processing step, the query will fail and return the appropriate HTTP code depending on the error." + } + ] }, "x-ms-parameter-location": "method" }, - "IfMatchParameter": { - "name": "If-Match", - "in": "header", + "SearchOptions.semanticFields": { + "name": "semanticFields", + "in": "query", + "description": "The list of field names used for semantic ranking.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "x-ms-parameter-location": "method" + }, + "SearchOptions.semanticMaxWaitInMilliseconds": { + "name": "semanticMaxWaitInMilliseconds", + "in": "query", + "description": "Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 700, + "x-ms-parameter-location": "method", + "x-nullable": true + }, + "SearchOptions.semanticQuery": { + "name": "semanticQuery", + "in": "query", + "description": "Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase.", "required": false, "type": "string", - "description": "Defines the If-Match condition. The operation will be performed only if the ETag on the server matches this value.", "x-ms-parameter-location": "method" }, - "IfNoneMatchParameter": { - "name": "If-None-Match", - "in": "header", + "SearchOptions.sessionId": { + "name": "sessionId", + "in": "query", + "description": "A value to be used to create a sticky session, which can help to get more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character.", "required": false, "type": "string", - "description": "Defines the If-None-Match condition. The operation will be performed only if the ETag on the server does not match this value.", "x-ms-parameter-location": "method" }, - "PreferHeaderParameter": { - "name": "Prefer", - "in": "header", - "required": true, + "SearchOptions.skip": { + "name": "$skip", + "in": "query", + "description": "The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use $skip due to this limitation, consider using $orderby on a totally-ordered key and $filter with a range query instead.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method", + "x-ms-client-name": "skip" + }, + "SearchOptions.speller": { + "name": "speller", + "in": "query", + "description": "Improve search recall by spell-correcting individual search query terms.", + "required": false, "type": "string", "enum": [ - "return=representation" + "none", + "lexicon" ], - "description": "For HTTP PUT requests, instructs the service to return the created/updated resource on success.", + "x-ms-enum": { + "name": "QuerySpellerType", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "none", + "description": "Speller not enabled." + }, + { + "name": "Lexicon", + "value": "lexicon", + "description": "Speller corrects individual query terms using a static lexicon for the language specified by the queryLanguage parameter." + } + ] + }, "x-ms-parameter-location": "method" }, - "EndpointParameter": { - "name": "endpoint", - "in": "path", - "required": true, + "SearchOptions.top": { + "name": "$top", + "in": "query", + "description": "The number of search results to retrieve. This can be used in conjunction with $skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method", + "x-ms-client-name": "top" + }, + "SuggestOptions.filter": { + "name": "$filter", + "in": "query", + "description": "An OData expression that filters the documents considered for suggestions.", + "required": false, "type": "string", - "x-ms-skip-url-encoding": true, - "description": "The endpoint URL of the search service.", - "x-ms-parameter-location": "client" + "x-ms-parameter-location": "method", + "x-ms-client-name": "filter" }, - "DisableCacheReprocessingChangeDetectionParameter": { - "name": "disableCacheReprocessingChangeDetection", + "SuggestOptions.highlightPostTag": { + "name": "highlightPostTag", "in": "query", + "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting of suggestions is disabled.", "required": false, - "type": "boolean", - "description": "Disables cache reprocessing change detection.", + "type": "string", "x-ms-parameter-location": "method" }, - "IgnoreResetRequirementsParameter": { - "name": "ignoreResetRequirements", - "x-ms-client-name": "skipIndexerResetRequirementForCache", + "SuggestOptions.highlightPreTag": { + "name": "highlightPreTag", "in": "query", + "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting of suggestions is disabled.", "required": false, - "type": "boolean", - "description": "Ignores cache reset requirements.", + "type": "string", + "x-ms-parameter-location": "method" + }, + "SuggestOptions.minimumCoverage": { + "name": "minimumCoverage", + "in": "query", + "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a suggestions query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.", + "required": false, + "type": "number", + "format": "double", + "x-ms-parameter-location": "method" + }, + "SuggestOptions.orderBy": { + "name": "$orderby", + "in": "query", + "description": "The list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "x-ms-parameter-location": "method", + "x-ms-client-name": "orderBy" + }, + "SuggestOptions.searchFields": { + "name": "searchFields", + "in": "query", + "description": "The list of field names to search for the specified search text. Target fields must be included in the specified suggester.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", "x-ms-parameter-location": "method" + }, + "SuggestOptions.select": { + "name": "$select", + "in": "query", + "description": "The list of fields to retrieve. If unspecified, only the key field will be included in the results.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv", + "x-ms-parameter-location": "method", + "x-ms-client-name": "select" + }, + "SuggestOptions.top": { + "name": "$top", + "in": "query", + "description": "The number of suggestions to retrieve. The value must be a number between 1 and 100. The default is 5.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-parameter-location": "method", + "x-ms-client-name": "top" + }, + "SuggestOptions.useFuzzyMatching": { + "name": "fuzzy", + "in": "query", + "description": "A value indicating whether to use fuzzy matching for the suggestions query. Default is false. When set to true, the query will find terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy suggestions queries are slower and consume more resources.", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "x-ms-client-name": "useFuzzyMatching" } } } diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/searchindex.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/searchindex.json deleted file mode 100644 index 75acf68de84a..000000000000 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/searchindex.json +++ /dev/null @@ -1,3444 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "SearchIndexClient", - "description": "Client that can be used to query an index and upload, merge, or delete documents.", - "version": "2025-11-01-preview", - "x-ms-code-generation-settings": { - "useDateTimeOffset": true, - "syncMethods": "None" - } - }, - "x-ms-parameterized-host": { - "hostTemplate": "{endpoint}/indexes('{indexName}')", - "useSchemePrefix": false, - "parameters": [ - { - "$ref": "#/parameters/EndpointParameter" - }, - { - "$ref": "#/parameters/IndexNameParameter" - } - ] - }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/docs/$count": { - "get": { - "tags": [ - "Documents" - ], - "operationId": "Documents_Count", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Count-Documents" - }, - "x-ms-examples": { - "SearchIndexCountDocuments": { - "$ref": "./examples/SearchIndexCountDocuments.json" - } - }, - "description": "Queries the number of documents in the index.", - "parameters": [ - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "", - "schema": { - "type": "integer", - "format": "int64" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs": { - "get": { - "tags": [ - "Documents" - ], - "operationId": "Documents_SearchGet", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Search-Documents" - }, - "x-ms-examples": { - "SearchIndexSearchDocumentsGet": { - "$ref": "./examples/SearchIndexSearchDocumentsGet.json" - }, - "SearchIndexSearchDocumentsSemanticGet": { - "$ref": "./examples/SearchIndexSearchDocumentsSemanticGet.json" - } - }, - "description": "Searches for documents in the index.", - "parameters": [ - { - "name": "search", - "in": "query", - "type": "string", - "description": "A full-text search query expression; Use \"*\" or omit this parameter to match all documents.", - "x-ms-client-name": "SearchText" - }, - { - "name": "$count", - "in": "query", - "type": "boolean", - "description": "A value that specifies whether to fetch the total count of results. Default is false. Setting this value to true may have a performance impact. Note that the count returned is an approximation.", - "x-nullable": false, - "x-ms-client-name": "IncludeTotalResultCount", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "facet", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "collectionFormat": "multi", - "description": "The list of facet expressions to apply to the search query. Each facet expression contains a field name, optionally followed by a comma-separated list of name:value pairs.", - "x-ms-client-name": "Facets", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "$filter", - "in": "query", - "type": "string", - "description": "The OData $filter expression to apply to the search query.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "highlight", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting.", - "x-ms-client-name": "HighlightFields", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "highlightPostTag", - "in": "query", - "type": "string", - "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "highlightPreTag", - "in": "query", - "type": "string", - "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. Default is <em>.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "minimumCoverage", - "in": "query", - "type": "number", - "format": "double", - "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a search query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 100.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "$orderby", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, and desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no OrderBy is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.", - "x-ms-client-name": "OrderBy", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "queryType", - "in": "query", - "type": "string", - "enum": [ - "simple", - "full", - "semantic" - ], - "x-ms-enum": { - "name": "QueryType", - "modelAsString": false, - "values": [ - { - "value": "simple", - "name": "Simple", - "description": "Uses the simple query syntax for searches. Search text is interpreted using a simple query language that allows for symbols such as +, * and \"\". Queries are evaluated across all searchable fields by default, unless the searchFields parameter is specified." - }, - { - "value": "full", - "name": "Full", - "description": "Uses the full Lucene query syntax for searches. Search text is interpreted using the Lucene query language which allows field-specific and weighted searches, as well as other advanced features." - }, - { - "value": "semantic", - "name": "Semantic", - "description": "Best suited for queries expressed in natural language as opposed to keywords. Improves precision of search results by re-ranking the top search results using a ranking model trained on the Web corpus." - } - ] - }, - "x-nullable": false, - "description": "A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "scoringParameter", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "collectionFormat": "multi", - "x-ms-client-name": "ScoringParameters", - "description": "The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be \"mylocation--122.2,44.8\" (without the quotes).", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "scoringProfile", - "in": "query", - "type": "string", - "description": "The name of a scoring profile to evaluate match scores for matching documents in order to sort the results.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "searchFields", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "searchMode", - "in": "query", - "type": "string", - "enum": [ - "any", - "all" - ], - "x-ms-enum": { - "name": "SearchMode", - "modelAsString": false, - "values": [ - { - "value": "any", - "name": "Any", - "description": "Any of the search terms must be matched in order to count the document as a match." - }, - { - "value": "all", - "name": "All", - "description": "All of the search terms must be matched in order to count the document as a match." - } - ] - }, - "x-nullable": false, - "description": "A value that specifies whether any or all of the search terms must be matched in order to count the document as a match.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "scoringStatistics", - "in": "query", - "type": "string", - "enum": [ - "local", - "global" - ], - "x-ms-enum": { - "name": "ScoringStatistics", - "modelAsString": false, - "values": [ - { - "value": "local", - "name": "Local", - "description": "The scoring statistics will be calculated locally for lower latency." - }, - { - "value": "global", - "name": "Global", - "description": "The scoring statistics will be calculated globally for more consistent scoring." - } - ] - }, - "x-nullable": false, - "description": "A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "sessionId", - "in": "query", - "type": "string", - "description": "A value to be used to create a sticky session, which can help to get more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "$select", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "$skip", - "in": "query", - "type": "integer", - "format": "int32", - "description": "The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use $skip due to this limitation, consider using $orderby on a totally-ordered key and $filter with a range query instead.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "$top", - "in": "query", - "type": "integer", - "format": "int32", - "description": "The number of search results to retrieve. This can be used in conjunction with $skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "name": "semanticConfiguration", - "in": "query", - "type": "string", - "description": "The name of the semantic configuration that lists which fields should be used for semantic ranking, captions, highlights, and answers", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "semanticErrorHandling", - "in": "query", - "type": "string", - "enum": [ - "partial", - "fail" - ], - "x-ms-enum": { - "name": "SemanticErrorMode", - "modelAsString": true, - "values": [ - { - "value": "partial", - "name": "Partial", - "description": "If the semantic processing fails, partial results still return. The definition of partial results depends on what semantic step failed and what was the reason for failure." - }, - { - "value": "fail", - "name": "Fail", - "description": "If there is an exception during the semantic processing step, the query will fail and return the appropriate HTTP code depending on the error." - } - ] - }, - "description": "Allows the user to choose whether a semantic call should fail completely, or to return partial results (default).", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "semanticMaxWaitInMilliseconds", - "in": "query", - "type": "integer", - "format": "int32", - "minimum": 700, - "description": "Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "answers", - "in": "query", - "type": "string", - "enum": [ - "none", - "extractive" - ], - "x-ms-enum": { - "name": "QueryAnswerType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Do not return answers for the query." - }, - { - "value": "extractive", - "name": "Extractive", - "description": "Extracts answer candidates from the contents of the documents returned in response to a query expressed as a question in natural language." - } - ] - }, - "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns answers extracted from key passages in the highest ranked documents. The number of answers returned can be configured by appending the pipe character `|` followed by the `count-` option after the answers parameter value, such as `extractive|count-3`. Default count is 1. The confidence threshold can be configured by appending the pipe character `|` followed by the `threshold-` option after the answers parameter value, such as `extractive|threshold-0.9`. Default threshold is 0.7. The maximum character length of answers can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "captions", - "in": "query", - "type": "string", - "enum": [ - "none", - "extractive" - ], - "x-ms-enum": { - "name": "QueryCaptionType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Do not return captions for the query." - }, - { - "value": "extractive", - "name": "Extractive", - "description": "Extracts captions from the matching documents that contain passages relevant to the search query." - } - ] - }, - "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns captions extracted from key passages in the highest ranked documents. When Captions is set to `extractive`, highlighting is enabled by default, and can be configured by appending the pipe character `|` followed by the `highlight-` option, such as `extractive|highlight-true`. Defaults to `None`. The maximum character length of captions can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "semanticQuery", - "in": "query", - "type": "string", - "description": "Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "queryRewrites", - "in": "query", - "type": "string", - "enum": [ - "none", - "generative" - ], - "x-ms-enum": { - "name": "QueryRewritesType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Do not generate additional query rewrites for this query." - }, - { - "value": "generative", - "name": "Generative", - "description": "Generate alternative query terms to increase the recall of a search request." - } - ] - }, - "description": "When QueryRewrites is set to `generative`, the query terms are sent to a generate model which will produce 10 (default) rewrites to help increase the recall of the request. The requested count can be configured by appending the pipe character `|` followed by the `count-` option, such as `generative|count-3`. Defaults to `None`. This parameter is only valid if the query type is `semantic`.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "debug", - "in": "query", - "type": "string", - "enum": [ - "disabled", - "semantic", - "vector", - "queryRewrites", - "innerHits", - "all" - ], - "x-ms-enum": { - "name": "QueryDebugMode", - "modelAsString": true, - "values": [ - { - "value": "disabled", - "name": "Disabled", - "description": "No query debugging information will be returned." - }, - { - "value": "semantic", - "name": "Semantic", - "description": "Allows the user to further explore their reranked results." - }, - { - "value": "vector", - "name": "Vector", - "description": "Allows the user to further explore their hybrid and vector query results." - }, - { - "value": "queryRewrites", - "name": "QueryRewrites", - "description": "Allows the user to explore the list of query rewrites generated for their search request." - }, - { - "value": "innerHits", - "name": "InnerHits", - "description": "Allows the user to retrieve scoring information regarding vectors matched within a collection of complex types." - }, - { - "value": "all", - "name": "All", - "description": "Turn on all debug options." - } - ] - }, - "description": "Enables a debugging tool that can be used to further explore your search results.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "queryLanguage", - "in": "query", - "type": "string", - "enum": [ - "none", - "en-us" - ], - "x-ms-enum": { - "name": "QueryLanguage", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Query language not specified." - }, - { - "value": "en-us", - "name": "EnUs", - "description": "English (US)" - } - ] - }, - "description": "The language of the query.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "speller", - "in": "query", - "type": "string", - "enum": [ - "none", - "lexicon" - ], - "x-ms-enum": { - "name": "QuerySpellerType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Speller not enabled." - }, - { - "value": "lexicon", - "name": "Lexicon", - "description": "Speller corrects individual query terms using a static lexicon for the language specified by the queryLanguage parameter." - } - ] - }, - "description": "Improve search recall by spell-correcting individual search query terms.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "name": "semanticFields", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of field names used for semantic ranking.", - "x-ms-parameter-grouping": { - "name": "SearchOptions" - } - }, - { - "$ref": "#/parameters/QuerySourceAuthorizationParameter" - }, - { - "$ref": "#/parameters/EnableElevatedReadParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing documents that match the search criteria.", - "schema": { - "$ref": "#/definitions/SearchDocumentsResult" - } - }, - "206": { - "description": "Response containing partial documents that match the search criteria.", - "schema": { - "$ref": "#/definitions/SearchDocumentsResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs/search.post.search": { - "post": { - "tags": [ - "Documents" - ], - "operationId": "Documents_SearchPost", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Search-Documents" - }, - "x-ms-examples": { - "SearchIndexSearchDocumentsPost": { - "$ref": "./examples/SearchIndexSearchDocumentsPost.json" - }, - "SearchIndexSearchDocumentsSemanticPost": { - "$ref": "./examples/SearchIndexSearchDocumentsSemanticPost.json" - } - }, - "description": "Searches for documents in the index.", - "parameters": [ - { - "name": "searchRequest", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/SearchRequest", - "description": "The Search request." - }, - "description": "The definition of the Search request." - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/QuerySourceAuthorizationParameter" - }, - { - "$ref": "#/parameters/EnableElevatedReadParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing documents that match the search criteria.", - "schema": { - "$ref": "#/definitions/SearchDocumentsResult" - } - }, - "206": { - "description": "Response containing partial documents that match the search criteria.", - "schema": { - "$ref": "#/definitions/SearchDocumentsResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs('{key}')": { - "get": { - "tags": [ - "Documents" - ], - "operationId": "Documents_Get", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/lookup-document" - }, - "x-ms-examples": { - "SearchIndexGetDocument": { - "$ref": "./examples/SearchIndexGetDocument.json" - } - }, - "description": "Retrieves a document from the index.", - "parameters": [ - { - "name": "key", - "in": "path", - "required": true, - "description": "The key of the document to retrieve.", - "type": "string" - }, - { - "name": "$select", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "List of field names to retrieve for the document; Any field not retrieved will be missing from the returned document.", - "x-ms-client-name": "SelectedFields" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/QuerySourceAuthorizationParameter" - }, - { - "$ref": "#/parameters/EnableElevatedReadParameter" - } - ], - "responses": { - "200": { - "description": "Response containing the requested document.", - "schema": { - "$ref": "#/definitions/LookupDocument" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs/search.suggest": { - "get": { - "tags": [ - "Documents" - ], - "operationId": "Documents_SuggestGet", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/suggestions" - }, - "x-ms-examples": { - "SearchIndexSuggestDocumentsGet": { - "$ref": "./examples/SearchIndexSuggestDocumentsGet.json" - } - }, - "description": "Suggests documents in the index that match the given partial query text.", - "parameters": [ - { - "name": "search", - "in": "query", - "required": true, - "type": "string", - "description": "The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters.", - "x-ms-client-name": "SearchText" - }, - { - "name": "suggesterName", - "in": "query", - "required": true, - "type": "string", - "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition." - }, - { - "name": "$filter", - "in": "query", - "type": "string", - "description": "An OData expression that filters the documents considered for suggestions.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "fuzzy", - "in": "query", - "type": "boolean", - "description": "A value indicating whether to use fuzzy matching for the suggestions query. Default is false. When set to true, the query will find terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy suggestions queries are slower and consume more resources.", - "x-ms-client-name": "UseFuzzyMatching", - "x-nullable": false, - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "highlightPostTag", - "in": "query", - "type": "string", - "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting of suggestions is disabled.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "highlightPreTag", - "in": "query", - "type": "string", - "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting of suggestions is disabled.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "minimumCoverage", - "in": "query", - "type": "number", - "format": "double", - "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a suggestions query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "$orderby", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "x-ms-client-name": "OrderBy", - "description": "The list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "searchFields", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of field names to search for the specified search text. Target fields must be included in the specified suggester.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "$select", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of fields to retrieve. If unspecified, only the key field will be included in the results.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "name": "$top", - "in": "query", - "type": "integer", - "format": "int32", - "description": "The number of suggestions to retrieve. The value must be a number between 1 and 100. The default is 5.", - "x-ms-parameter-grouping": { - "name": "SuggestOptions" - } - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing suggested documents that match the partial input.", - "schema": { - "$ref": "#/definitions/SuggestDocumentsResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs/search.post.suggest": { - "post": { - "tags": [ - "Documents" - ], - "operationId": "Documents_SuggestPost", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/suggestions" - }, - "x-ms-examples": { - "SearchIndexSuggestDocumentsPost": { - "$ref": "./examples/SearchIndexSuggestDocumentsPost.json" - } - }, - "description": "Suggests documents in the index that match the given partial query text.", - "parameters": [ - { - "name": "suggestRequest", - "in": "body", - "required": true, - "description": "The Suggest request.", - "schema": { - "$ref": "#/definitions/SuggestRequest" - } - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing suggested documents that match the partial input.", - "schema": { - "$ref": "#/definitions/SuggestDocumentsResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs/search.index": { - "post": { - "tags": [ - "Documents" - ], - "operationId": "Documents_Index", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/addupdate-or-delete-documents" - }, - "x-ms-examples": { - "SearchIndexIndexDocuments": { - "$ref": "./examples/SearchIndexIndexDocuments.json" - } - }, - "description": "Sends a batch of document write actions to the index.", - "parameters": [ - { - "name": "batch", - "in": "body", - "description": "The batch of index actions.", - "required": true, - "schema": { - "$ref": "#/definitions/IndexBatch" - } - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ClientRequestIdParameter" - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing the status of operations for all actions in the batch.", - "schema": { - "$ref": "#/definitions/IndexDocumentsResult" - } - }, - "207": { - "description": "Response containing the status of operations for all actions in the batch.", - "schema": { - "$ref": "#/definitions/IndexDocumentsResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs/search.autocomplete": { - "get": { - "tags": [ - "Documents" - ], - "operationId": "Documents_AutocompleteGet", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/autocomplete" - }, - "x-ms-examples": { - "SearchIndexAutocompleteDocumentsGet": { - "$ref": "./examples/SearchIndexAutocompleteDocumentsGet.json" - } - }, - "description": "Autocompletes incomplete query terms based on input text and matching terms in the index.", - "parameters": [ - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "name": "search", - "in": "query", - "type": "string", - "required": true, - "description": "The incomplete term which should be auto-completed.", - "x-ms-client-name": "SearchText" - }, - { - "name": "suggesterName", - "in": "query", - "type": "string", - "required": true, - "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition." - }, - { - "name": "autocompleteMode", - "in": "query", - "type": "string", - "x-nullable": false, - "enum": [ - "oneTerm", - "twoTerms", - "oneTermWithContext" - ], - "x-ms-enum": { - "name": "AutocompleteMode", - "modelAsString": false, - "values": [ - { - "value": "oneTerm", - "name": "OneTerm", - "description": "Only one term is suggested. If the query has two terms, only the last term is completed. For example, if the input is 'washington medic', the suggested terms could include 'medicaid', 'medicare', and 'medicine'." - }, - { - "value": "twoTerms", - "name": "TwoTerms", - "description": "Matching two-term phrases in the index will be suggested. For example, if the input is 'medic', the suggested terms could include 'medicare coverage' and 'medical assistant'." - }, - { - "value": "oneTermWithContext", - "name": "OneTermWithContext", - "description": "Completes the last term in a query with two or more terms, where the last two terms are a phrase that exists in the index. For example, if the input is 'washington medic', the suggested terms could include 'washington medicaid' and 'washington medical'." - } - ] - }, - "description": "Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context while producing auto-completed terms.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "$filter", - "in": "query", - "type": "string", - "description": "An OData expression that filters the documents used to produce completed terms for the Autocomplete result.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "fuzzy", - "in": "query", - "type": "boolean", - "description": "A value indicating whether to use fuzzy matching for the autocomplete query. Default is false. When set to true, the query will find terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy autocomplete queries are slower and consume more resources.", - "x-ms-client-name": "UseFuzzyMatching", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "highlightPostTag", - "in": "query", - "type": "string", - "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting is disabled.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "highlightPreTag", - "in": "query", - "type": "string", - "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting is disabled.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "minimumCoverage", - "in": "query", - "type": "number", - "format": "double", - "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by an autocomplete query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "searchFields", - "in": "query", - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - }, - { - "name": "$top", - "in": "query", - "type": "integer", - "format": "int32", - "description": "The number of auto-completed terms to retrieve. This must be a value between 1 and 100. The default is 5.", - "x-ms-parameter-grouping": { - "name": "AutocompleteOptions" - } - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing suggested query terms that complete the partial input.", - "schema": { - "$ref": "#/definitions/AutocompleteResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/docs/search.post.autocomplete": { - "post": { - "tags": [ - "Documents" - ], - "operationId": "Documents_AutocompletePost", - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/autocomplete" - }, - "x-ms-examples": { - "SearchIndexAutocompleteDocumentsPost": { - "$ref": "./examples/SearchIndexAutocompleteDocumentsPost.json" - } - }, - "description": "Autocompletes incomplete query terms based on input text and matching terms in the index.", - "parameters": [ - { - "$ref": "#/parameters/ClientRequestIdParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "name": "autocompleteRequest", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/AutocompleteRequest" - }, - "description": "The definition of the Autocomplete request." - } - ], - "x-ms-request-id": "request-id", - "responses": { - "200": { - "description": "Response containing suggested query terms that complete the partial input.", - "schema": { - "$ref": "#/definitions/AutocompleteResult" - } - }, - "default": { - "description": "Error response.", - "schema": { - "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" - } - } - } - } - } - }, - "definitions": { - "SuggestDocumentsResult": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/SuggestResult" - }, - "readOnly": true, - "x-ms-client-name": "Results", - "description": "The sequence of results returned by the query." - }, - "@search.coverage": { - "type": "number", - "readOnly": true, - "format": "double", - "x-ms-client-name": "Coverage", - "description": "A value indicating the percentage of the index that was included in the query, or null if minimumCoverage was not set in the request." - } - }, - "required": [ - "value" - ], - "description": "Response containing suggestion query results from an index." - }, - "SuggestResult": { - "type": "object", - "properties": { - "@search.text": { - "type": "string", - "readOnly": true, - "description": "The text of the suggestion result.", - "x-ms-client-name": "Text" - } - }, - "required": [ - "@search.text" - ], - "additionalProperties": true, - "description": "A result containing a document found by a suggestion query, plus associated metadata." - }, - "SearchFacetsResult": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "$ref": "#/definitions/FacetResult" - } - }, - "readOnly": true - }, - "FacetResult": { - "type": "object", - "properties": { - "count": { - "type": "integer", - "format": "int64", - "readOnly": true, - "description": "The approximate count of documents falling within the bucket described by this facet." - }, - "avg": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The resulting total avg for the facet when a avg metric is requested." - }, - "min": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The resulting total min for the facet when a min metric is requested." - }, - "max": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The resulting total max for the facet when a max metric is requested." - }, - "sum": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The resulting total sum for the facet when a sum metric is requested." - }, - "cardinality": { - "type": "number", - "format": "int64", - "readOnly": true, - "description": "The resulting total cardinality for the facet when a cardinality metric is requested." - }, - "@search.facets": { - "$ref": "#/definitions/SearchFacetsResult", - "readOnly": true, - "x-ms-client-name": "Facets", - "description": "The nested facet query results for the search operation, organized as a collection of buckets for each faceted field; null if the query did not contain any nested facets." - } - }, - "additionalProperties": true, - "description": "A single bucket of a facet query result. Reports the number of documents with a field value falling within a particular range or having a particular value or interval." - }, - "SearchDocumentsResult": { - "type": "object", - "properties": { - "@odata.count": { - "type": "integer", - "format": "int64", - "readOnly": true, - "x-ms-client-name": "Count", - "description": "The total count of results found by the search operation, or null if the count was not requested. If present, the count may be greater than the number of results in this response. This can happen if you use the $top or $skip parameters, or if the query can't return all the requested documents in a single response." - }, - "@search.coverage": { - "type": "number", - "format": "double", - "readOnly": true, - "x-ms-client-name": "Coverage", - "description": "A value indicating the percentage of the index that was included in the query, or null if minimumCoverage was not specified in the request." - }, - "@search.facets": { - "$ref": "#/definitions/SearchFacetsResult", - "readOnly": true, - "x-ms-client-name": "Facets", - "description": "The facet query results for the search operation, organized as a collection of buckets for each faceted field; null if the query did not include any facet expressions." - }, - "@search.answers": { - "type": "array", - "items": { - "$ref": "#/definitions/AnswerResult" - }, - "readOnly": true, - "x-ms-client-name": "Answers", - "x-nullable": true, - "description": "The answers query results for the search operation; null if the answers query parameter was not specified or set to 'none'." - }, - "@search.debug": { - "$ref": "#/definitions/DebugInfo", - "readOnly": true, - "x-ms-client-name": "DebugInfo", - "x-nullable": true, - "description": "Debug information that applies to the search results as a whole." - }, - "@search.nextPageParameters": { - "$ref": "#/definitions/SearchRequest", - "readOnly": true, - "x-ms-client-name": "NextPageParameters", - "description": "Continuation JSON payload returned when the query can't return all the requested results in a single response. You can use this JSON along with @odata.nextLink to formulate another POST Search request to get the next part of the search response." - }, - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchResult" - }, - "readOnly": true, - "x-ms-client-name": "Results", - "description": "The sequence of results returned by the query." - }, - "@odata.nextLink": { - "type": "string", - "readOnly": true, - "x-ms-client-name": "NextLink", - "description": "Continuation URL returned when the query can't return all the requested results in a single response. You can use this URL to formulate another GET or POST Search request to get the next part of the search response. Make sure to use the same verb (GET or POST) as the request that produced this response." - }, - "@search.semanticPartialResponseReason": { - "$ref": "#/definitions/SemanticPartialResponseReason", - "readOnly": true, - "x-ms-client-name": "SemanticPartialResponseReason", - "description": "Reason that a partial response was returned for a semantic ranking request." - }, - "@search.semanticPartialResponseType": { - "$ref": "#/definitions/SemanticPartialResponseType", - "readOnly": true, - "x-ms-client-name": "SemanticPartialResponseType", - "description": "Type of partial response that was returned for a semantic ranking request." - }, - "@search.semanticQueryRewritesResultType": { - "$ref": "#/definitions/SemanticQueryRewritesResultType", - "readOnly": true, - "x-ms-client-name": "SemanticQueryRewritesResultType", - "description": "Type of query rewrite that was used to retrieve documents." - } - }, - "required": [ - "value" - ], - "description": "Response containing search results from an index." - }, - "SearchResult": { - "type": "object", - "properties": { - "@search.score": { - "type": "number", - "format": "double", - "readOnly": true, - "x-ms-client-name": "Score", - "x-nullable": false, - "description": "The relevance score of the document compared to other documents returned by the query." - }, - "@search.rerankerScore": { - "type": "number", - "format": "double", - "readOnly": true, - "x-ms-client-name": "RerankerScore", - "x-nullable": true, - "description": "The relevance score computed by the semantic ranker for the top search results. Search results are sorted by the RerankerScore first and then by the Score. RerankerScore is only returned for queries of type 'semantic'." - }, - "@search.rerankerBoostedScore": { - "type": "number", - "format": "double", - "readOnly": true, - "x-ms-client-name": "RerankerBoostedScore", - "x-nullable": true, - "description": "The relevance score computed by boosting the Reranker Score. Search results are sorted by the RerankerScore/RerankerBoostedScore based on useScoringProfileBoostedRanking in the Semantic Config. RerankerBoostedScore is only returned for queries of type 'semantic'" - }, - "@search.highlights": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - }, - "readOnly": true, - "x-ms-client-name": "Highlights", - "description": "Text fragments from the document that indicate the matching search terms, organized by each applicable field; null if hit highlighting was not enabled for the query." - }, - "@search.captions": { - "type": "array", - "items": { - "$ref": "#/definitions/CaptionResult" - }, - "readOnly": true, - "x-ms-client-name": "Captions", - "x-nullable": true, - "description": "Captions are the most representative passages from the document relatively to the search query. They are often used as document summary. Captions are only returned for queries of type 'semantic'." - }, - "@search.documentDebugInfo": { - "$ref": "#/definitions/DocumentDebugInfo", - "readOnly": true, - "x-ms-client-name": "DocumentDebugInfo", - "x-nullable": true, - "description": "Contains debugging information that can be used to further explore your search results." - } - }, - "required": [ - "@search.score" - ], - "additionalProperties": true, - "description": "Contains a document found by a search query, plus associated metadata." - }, - "LookupDocument": { - "type": "object", - "additionalProperties": true, - "description": "A document retrieved via a document lookup operation." - }, - "IndexBatch": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/IndexAction" - }, - "description": "The actions in the batch.", - "x-ms-client-name": "Actions" - } - }, - "required": [ - "value" - ], - "description": "Contains a batch of document write actions to send to the index." - }, - "IndexAction": { - "type": "object", - "properties": { - "@search.action": { - "type": "string", - "enum": [ - "upload", - "merge", - "mergeOrUpload", - "delete" - ], - "x-ms-enum": { - "name": "IndexActionType", - "modelAsString": false, - "values": [ - { - "value": "upload", - "name": "Upload", - "description": "Inserts the document into the index if it is new and updates it if it exists. All fields are replaced in the update case." - }, - { - "value": "merge", - "name": "Merge", - "description": "Merges the specified field values with an existing document. If the document does not exist, the merge will fail. Any field you specify in a merge will replace the existing field in the document. This also applies to collections of primitive and complex types." - }, - { - "value": "mergeOrUpload", - "name": "MergeOrUpload", - "description": "Behaves like merge if a document with the given key already exists in the index. If the document does not exist, it behaves like upload with a new document." - }, - { - "value": "delete", - "name": "Delete", - "description": "Removes the specified document from the index. Any field you specify in a delete operation other than the key field will be ignored. If you want to remove an individual field from a document, use merge instead and set the field explicitly to null." - } - ] - }, - "x-ms-client-name": "ActionType", - "x-nullable": false, - "description": "The operation to perform on a document in an indexing batch." - } - }, - "additionalProperties": true, - "description": "Represents an index action that operates on a document." - }, - "IndexingResult": { - "type": "object", - "properties": { - "key": { - "type": "string", - "readOnly": true, - "description": "The key of a document that was in the indexing request." - }, - "errorMessage": { - "type": "string", - "readOnly": true, - "description": "The error message explaining why the indexing operation failed for the document identified by the key; null if indexing succeeded." - }, - "status": { - "x-ms-client-name": "Succeeded", - "type": "boolean", - "x-nullable": false, - "readOnly": true, - "description": "A value indicating whether the indexing operation succeeded for the document identified by the key." - }, - "statusCode": { - "type": "integer", - "format": "int32", - "x-nullable": false, - "readOnly": true, - "description": "The status code of the indexing operation. Possible values include: 200 for a successful update or delete, 201 for successful document creation, 400 for a malformed input document, 404 for document not found, 409 for a version conflict, 422 when the index is temporarily unavailable, or 503 for when the service is too busy." - } - }, - "required": [ - "key", - "status", - "statusCode" - ], - "description": "Status of an indexing operation for a single document." - }, - "IndexDocumentsResult": { - "type": "object", - "properties": { - "value": { - "x-ms-client-name": "Results", - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/IndexingResult" - }, - "description": "The list of status information for each document in the indexing request." - } - }, - "required": [ - "value" - ], - "description": "Response containing the status of operations for all documents in the indexing request." - }, - "QueryDebugMode": { - "type": "string", - "enum": [ - "disabled", - "semantic", - "vector", - "queryRewrites", - "innerHits", - "all" - ], - "x-ms-enum": { - "name": "QueryDebugMode", - "modelAsString": true, - "values": [ - { - "value": "disabled", - "name": "Disabled", - "description": "No query debugging information will be returned." - }, - { - "value": "semantic", - "name": "Semantic", - "description": "Allows the user to further explore their reranked results." - }, - { - "value": "vector", - "name": "Vector", - "description": "Allows the user to further explore their hybrid and vector query results." - }, - { - "value": "queryRewrites", - "name": "QueryRewrites", - "description": "Allows the user to explore the list of query rewrites generated for their search request." - }, - { - "value": "innerHits", - "name": "InnerHits", - "description": "Allows the user to retrieve scoring information regarding vectors matched within a collection of complex types." - }, - { - "value": "all", - "name": "All", - "description": "Turn on all debug options." - } - ] - }, - "description": "Enables a debugging tool that can be used to further explore your search results. You can enable multiple debug modes simultaneously by separating them with a | character, for example: semantic|queryRewrites." - }, - "SearchMode": { - "type": "string", - "enum": [ - "any", - "all" - ], - "x-ms-enum": { - "name": "SearchMode", - "modelAsString": false, - "values": [ - { - "value": "any", - "name": "Any", - "description": "Any of the search terms must be matched in order to count the document as a match." - }, - { - "value": "all", - "name": "All", - "description": "All of the search terms must be matched in order to count the document as a match." - } - ] - }, - "description": "Specifies whether any or all of the search terms must be matched in order to count the document as a match." - }, - "QueryType": { - "type": "string", - "enum": [ - "simple", - "full", - "semantic" - ], - "x-ms-enum": { - "name": "QueryType", - "modelAsString": false, - "values": [ - { - "value": "simple", - "name": "Simple", - "description": "Uses the simple query syntax for searches. Search text is interpreted using a simple query language that allows for symbols such as +, * and \"\". Queries are evaluated across all searchable fields by default, unless the searchFields parameter is specified." - }, - { - "value": "full", - "name": "Full", - "description": "Uses the full Lucene query syntax for searches. Search text is interpreted using the Lucene query language which allows field-specific and weighted searches, as well as other advanced features." - }, - { - "value": "semantic", - "name": "Semantic", - "description": "Best suited for queries expressed in natural language as opposed to keywords. Improves precision of search results by re-ranking the top search results using a ranking model trained on the Web corpus." - } - ] - }, - "description": "Specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax and 'semantic' if query syntax is not needed." - }, - "Speller": { - "type": "string", - "enum": [ - "none", - "lexicon" - ], - "x-ms-enum": { - "name": "QuerySpellerType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Speller not enabled." - }, - { - "value": "lexicon", - "name": "Lexicon", - "description": "Speller corrects individual query terms using a static lexicon for the language specified by the queryLanguage parameter." - } - ] - }, - "description": "Improve search recall by spell-correcting individual search query terms." - }, - "VectorQuery": { - "type": "object", - "discriminator": "kind", - "properties": { - "kind": { - "$ref": "#/definitions/VectorQueryKind", - "description": "The kind of vector query being performed.", - "x-nullable": false - }, - "k": { - "type": "integer", - "format": "int32", - "description": "Number of nearest neighbors to return as top hits." - }, - "fields": { - "type": "string", - "description": "Vector Fields of type Collection(Edm.Single) to be included in the vector searched." - }, - "exhaustive": { - "type": "boolean", - "description": "When true, triggers an exhaustive k-nearest neighbor search across all vectors within the vector index. Useful for scenarios where exact matches are critical, such as determining ground truth values." - }, - "oversampling": { - "type": "number", - "format": "double", - "description": "Oversampling factor. Minimum value is 1. It overrides the 'defaultOversampling' parameter configured in the index definition. It can be set only when 'rerankWithOriginalVectors' is true. This parameter is only permitted when a compression method is used on the underlying vector field." - }, - "weight": { - "type": "number", - "format": "float", - "description": "Relative weight of the vector query when compared to other vector query and/or the text query within the same search request. This value is used when combining the results of multiple ranking lists produced by the different vector queries and/or the results retrieved through the text query. The higher the weight, the higher the documents that matched that query will be in the final ranking. Default is 1.0 and the value needs to be a positive number larger than zero. " - }, - "threshold": { - "$ref": "#/definitions/VectorThreshold", - "description": "The threshold used for vector queries. Note this can only be set if all 'fields' use the same similarity metric." - }, - "filterOverride": { - "type": "string", - "description": "The OData filter expression to apply to this specific vector query. If no filter expression is defined at the vector level, the expression defined in the top level filter parameter is used instead." - }, - "perDocumentVectorLimit": { - "type": "integer", - "format": "int32", - "description": "Controls how many vectors can be matched from each document in a vector search query. Setting it to 1 ensures at most one vector per document is matched, guaranteeing results come from distinct documents. Setting it to 0 (unlimited) allows multiple relevant vectors from the same document to be matched. Default is 0." - } - }, - "required": [ - "kind" - ], - "description": "The query parameters for vector and hybrid search queries." - }, - "RawVectorQuery": { - "type": "object", - "x-ms-client-name": "VectorizedQuery", - "x-ms-discriminator-value": "vector", - "allOf": [ - { - "$ref": "#/definitions/VectorQuery" - } - ], - "properties": { - "vector": { - "type": "array", - "items": { - "type": "number", - "format": "float" - }, - "description": "The vector representation of a search query." - } - }, - "required": [ - "vector" - ], - "description": "The query parameters to use for vector search when a raw vector value is provided." - }, - "VectorizableTextQuery": { - "type": "object", - "x-ms-discriminator-value": "text", - "allOf": [ - { - "$ref": "#/definitions/VectorQuery" - } - ], - "properties": { - "text": { - "type": "string", - "description": "The text to be vectorized to perform a vector search query." - }, - "queryRewrites": { - "$ref": "#/definitions/QueryRewrites", - "description": "Can be configured to let a generative model rewrite the query before sending it to be vectorized." - } - }, - "required": [ - "text" - ], - "description": "The query parameters to use for vector search when a text value that needs to be vectorized is provided." - }, - "VectorizableImageUrlQuery": { - "type": "object", - "x-ms-discriminator-value": "imageUrl", - "allOf": [ - { - "$ref": "#/definitions/VectorQuery" - } - ], - "properties": { - "url": { - "type": "string", - "description": "The URL of an image to be vectorized to perform a vector search query." - } - }, - "description": "The query parameters to use for vector search when an url that represents an image value that needs to be vectorized is provided." - }, - "VectorizableImageBinaryQuery": { - "type": "object", - "x-ms-discriminator-value": "imageBinary", - "allOf": [ - { - "$ref": "#/definitions/VectorQuery" - } - ], - "properties": { - "base64Image": { - "type": "string", - "description": "The base 64 encoded binary of an image to be vectorized to perform a vector search query." - } - }, - "description": "The query parameters to use for vector search when a base 64 encoded binary of an image that needs to be vectorized is provided." - }, - "VectorQueryKind": { - "type": "string", - "enum": [ - "vector", - "text", - "imageUrl", - "imageBinary" - ], - "x-ms-enum": { - "name": "VectorQueryKind", - "modelAsString": true, - "values": [ - { - "value": "vector", - "name": "Vector", - "description": "Vector query where a raw vector value is provided." - }, - { - "value": "text", - "name": "Text", - "description": "Vector query where a text value that needs to be vectorized is provided." - }, - { - "value": "imageUrl", - "name": "ImageUrl", - "description": "Vector query where an url that represents an image value that needs to be vectorized is provided." - }, - { - "value": "imageBinary", - "name": "ImageBinary", - "description": "Vector query where a base 64 encoded binary of an image that needs to be vectorized is provided." - } - ] - }, - "description": "The kind of vector query being performed." - }, - "VectorThreshold": { - "type": "object", - "discriminator": "kind", - "properties": { - "kind": { - "$ref": "#/definitions/VectorThresholdKind", - "description": "The kind of threshold used to filter vector queries", - "x-nullable": false - } - }, - "required": [ - "kind" - ], - "description": "The threshold used for vector queries." - }, - "VectorSimilarityThreshold": { - "type": "object", - "x-ms-discriminator-value": "vectorSimilarity", - "allOf": [ - { - "$ref": "#/definitions/VectorThreshold" - } - ], - "properties": { - "value": { - "type": "number", - "format": "double", - "description": "The threshold will filter based on the similarity metric value. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field." - } - }, - "required": [ - "value" - ], - "description": "The results of the vector query will be filtered based on the vector similarity metric. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field." - }, - "SearchScoreThreshold": { - "type": "object", - "x-ms-discriminator-value": "searchScore", - "allOf": [ - { - "$ref": "#/definitions/VectorThreshold" - } - ], - "properties": { - "value": { - "type": "number", - "format": "double", - "description": "The threshold will filter based on the '@search.score' value. Note this is the @search.score returned as part of the search response. The threshold direction will be chosen for higher @search.score." - } - }, - "required": [ - "value" - ], - "description": "The results of the vector query will filter based on the '@search.score' value. Note this is the @search.score returned as part of the search response. The threshold direction will be chosen for higher @search.score." - }, - "VectorThresholdKind": { - "type": "string", - "enum": [ - "vectorSimilarity", - "searchScore" - ], - "x-ms-enum": { - "name": "VectorThresholdKind", - "modelAsString": true, - "values": [ - { - "value": "vectorSimilarity", - "name": "VectorSimilarity", - "description": "The results of the vector query will be filtered based on the vector similarity metric. Note this is the canonical definition of similarity metric, not the 'distance' version. The threshold direction (larger or smaller) will be chosen automatically according to the metric used by the field." - }, - { - "value": "searchScore", - "name": "SearchScore", - "description": "The results of the vector query will filter based on the '@search.score' value. Note this is the @search.score returned as part of the search response. The threshold direction will be chosen for higher @search.score." - } - ] - }, - "description": "The kind of vector query being performed." - }, - "VectorFilterMode": { - "type": "string", - "enum": [ - "postFilter", - "preFilter", - "strictPostFilter" - ], - "x-ms-enum": { - "name": "VectorFilterMode", - "modelAsString": true, - "values": [ - { - "value": "postFilter", - "name": "PostFilter", - "description": "The filter will be applied after the candidate set of vector results is returned. Depending on the filter selectivity, this can result in fewer results than requested by the parameter 'k'." - }, - { - "value": "preFilter", - "name": "PreFilter", - "description": "The filter will be applied before the search query." - }, - { - "value": "strictPostFilter", - "name": "StrictPostFilter", - "description": "The filter will be applied after the global top-k candidate set of vector results is returned. This will result in fewer results than requested by the parameter 'k'." - } - ] - }, - "description": "Determines whether or not filters are applied before or after the vector search is performed." - }, - "HybridSearch": { - "type": "object", - "properties": { - "maxTextRecallSize": { - "type": "integer", - "format": "int32", - "description": "Determines the maximum number of documents to be retrieved by the text query portion of a hybrid search request. Those documents will be combined with the documents matching the vector queries to produce a single final list of results. Choosing a larger maxTextRecallSize value will allow retrieving and paging through more documents (using the top and skip parameters), at the cost of higher resource utilization and higher latency. The value needs to be between 1 and 10,000. Default is 1000." - }, - "countAndFacetMode": { - "$ref": "#/definitions/HybridCountAndFacetMode", - "description": "Determines whether the count and facets should includes all documents that matched the search query, or only the documents that are retrieved within the 'maxTextRecallSize' window." - } - }, - "description": "TThe query parameters to configure hybrid search behaviors." - }, - "HybridCountAndFacetMode": { - "type": "string", - "enum": [ - "countRetrievableResults", - "countAllResults" - ], - "x-ms-enum": { - "name": "HybridCountAndFacetMode", - "modelAsString": true, - "values": [ - { - "value": "countRetrievableResults", - "name": "CountRetrievableResults", - "description": "Only include documents that were matched within the 'maxTextRecallSize' retrieval window when computing 'count' and 'facets'." - }, - { - "value": "countAllResults", - "name": "CountAllResults", - "description": "Include all documents that were matched by the search query when computing 'count' and 'facets', regardless of whether or not those documents are within the 'maxTextRecallSize' retrieval window." - } - ] - }, - "description": "Determines whether the count and facets should includes all documents that matched the search query, or only the documents that are retrieved within the 'maxTextRecallSize' window. The default value is 'countAllResults'." - }, - "QueryLanguage": { - "type": "string", - "enum": [ - "none", - "en-us", - "en-gb", - "en-in", - "en-ca", - "en-au", - "fr-fr", - "fr-ca", - "de-de", - "es-es", - "es-mx", - "zh-cn", - "zh-tw", - "pt-br", - "pt-pt", - "it-it", - "ja-jp", - "ko-kr", - "ru-ru", - "cs-cz", - "nl-be", - "nl-nl", - "hu-hu", - "pl-pl", - "sv-se", - "tr-tr", - "hi-in", - "ar-sa", - "ar-eg", - "ar-ma", - "ar-kw", - "ar-jo", - "da-dk", - "no-no", - "bg-bg", - "hr-hr", - "hr-ba", - "ms-my", - "ms-bn", - "sl-sl", - "ta-in", - "vi-vn", - "el-gr", - "ro-ro", - "is-is", - "id-id", - "th-th", - "lt-lt", - "uk-ua", - "lv-lv", - "et-ee", - "ca-es", - "fi-fi", - "sr-ba", - "sr-me", - "sr-rs", - "sk-sk", - "nb-no", - "hy-am", - "bn-in", - "eu-es", - "gl-es", - "gu-in", - "he-il", - "ga-ie", - "kn-in", - "ml-in", - "mr-in", - "fa-ae", - "pa-in", - "te-in", - "ur-pk" - ], - "x-ms-enum": { - "name": "QueryLanguage", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Query language not specified." - }, - { - "value": "en-us", - "name": "EnUs", - "description": "Query language value for English (United States)." - }, - { - "value": "en-gb", - "name": "EnGb", - "description": "Query language value for English (Great Britain)." - }, - { - "value": "en-in", - "name": "EnIn", - "description": "Query language value for English (India)." - }, - { - "value": "en-ca", - "name": "EnCa", - "description": "Query language value for English (Canada)." - }, - { - "value": "en-au", - "name": "EnAu", - "description": "Query language value for English (Australia)." - }, - { - "value": "fr-fr", - "name": "FrFr", - "description": "Query language value for French (France)." - }, - { - "value": "fr-ca", - "name": "FrCa", - "description": "Query language value for French (Canada)." - }, - { - "value": "de-de", - "name": "DeDe", - "description": "Query language value for German (Germany)." - }, - { - "value": "es-es", - "name": "EsEs", - "description": "Query language value for Spanish (Spain)." - }, - { - "value": "es-mx", - "name": "EsMx", - "description": "Query language value for Spanish (Mexico)." - }, - { - "value": "zh-cn", - "name": "ZhCn", - "description": "Query language value for Chinese (China)." - }, - { - "value": "zh-tw", - "name": "ZhTw", - "description": "Query language value for Chinese (Taiwan)." - }, - { - "value": "pt-br", - "name": "PtBr", - "description": "Query language value for Portuguese (Brazil)." - }, - { - "value": "pt-pt", - "name": "PtPt", - "description": "Query language value for Portuguese (Portugal)." - }, - { - "value": "it-it", - "name": "ItIt", - "description": "Query language value for Italian (Italy)." - }, - { - "value": "ja-jp", - "name": "JaJp", - "description": "Query language value for Japanese (Japan)." - }, - { - "value": "ko-kr", - "name": "KoKr", - "description": "Query language value for Korean (Korea)." - }, - { - "value": "ru-ru", - "name": "RuRu", - "description": "Query language value for Russian (Russia)." - }, - { - "value": "cs-cz", - "name": "CsCz", - "description": "Query language value for Czech (Czech Republic)." - }, - { - "value": "nl-be", - "name": "NlBe", - "description": "Query language value for Dutch (Belgium)." - }, - { - "value": "nl-nl", - "name": "NlNl", - "description": "Query language value for Dutch (Netherlands)." - }, - { - "value": "hu-hu", - "name": "HuHu", - "description": "Query language value for Hungarian (Hungary)." - }, - { - "value": "pl-pl", - "name": "PlPl", - "description": "Query language value for Polish (Poland)." - }, - { - "value": "sv-se", - "name": "SvSe", - "description": "Query language value for Swedish (Sweden)." - }, - { - "value": "tr-tr", - "name": "TrTr", - "description": "Query language value for Turkish (Turkey)." - }, - { - "value": "hi-in", - "name": "HiIn", - "description": "Query language value for Hindi (India)." - }, - { - "value": "ar-sa", - "name": "ArSa", - "description": "Query language value for Arabic (Saudi Arabia)." - }, - { - "value": "ar-eg", - "name": "ArEg", - "description": "Query language value for Arabic (Egypt)." - }, - { - "value": "ar-ma", - "name": "ArMa", - "description": "Query language value for Arabic (Morocco)." - }, - { - "value": "ar-kw", - "name": "ArKw", - "description": "Query language value for Arabic (Kuwait)." - }, - { - "value": "ar-jo", - "name": "ArJo", - "description": "Query language value for Arabic (Jordan)." - }, - { - "value": "da-dk", - "name": "DaDk", - "description": "Query language value for Danish (Denmark)." - }, - { - "value": "no-no", - "name": "NoNo", - "description": "Query language value for Norwegian (Norway)." - }, - { - "value": "bg-bg", - "name": "BgBg", - "description": "Query language value for Bulgarian (Bulgaria)." - }, - { - "value": "hr-hr", - "name": "HrHr", - "description": "Query language value for Croatian (Croatia)." - }, - { - "value": "hr-ba", - "name": "HrBa", - "description": "Query language value for Croatian (Bosnia and Herzegovina)." - }, - { - "value": "ms-my", - "name": "MsMy", - "description": "Query language value for Malay (Malaysia)." - }, - { - "value": "ms-bn", - "name": "MsBn", - "description": "Query language value for Malay (Brunei Darussalam)." - }, - { - "value": "sl-sl", - "name": "SlSl", - "description": "Query language value for Slovenian (Slovenia)." - }, - { - "value": "ta-in", - "name": "TaIn", - "description": "Query language value for Tamil (India)." - }, - { - "value": "vi-vn", - "name": "ViVn", - "description": "Query language value for Vietnamese (Viet Nam)." - }, - { - "value": "el-gr", - "name": "ElGr", - "description": "Query language value for Greek (Greece)." - }, - { - "value": "ro-ro", - "name": "RoRo", - "description": "Query language value for Romanian (Romania)." - }, - { - "value": "is-is", - "name": "IsIs", - "description": "Query language value for Icelandic (Iceland)." - }, - { - "value": "id-id", - "name": "IdId", - "description": "Query language value for Indonesian (Indonesia)." - }, - { - "value": "th-th", - "name": "ThTh", - "description": "Query language value for Thai (Thailand)." - }, - { - "value": "lt-lt", - "name": "LtLt", - "description": "Query language value for Lithuanian (Lithuania)." - }, - { - "value": "uk-ua", - "name": "UkUa", - "description": "Query language value for Ukrainian (Ukraine)." - }, - { - "value": "lv-lv", - "name": "LvLv", - "description": "Query language value for Latvian (Latvia)." - }, - { - "value": "et-ee", - "name": "EtEe", - "description": "Query language value for Estonian (Estonia)." - }, - { - "value": "ca-es", - "name": "CaEs", - "description": "Query language value for Catalan." - }, - { - "value": "fi-fi", - "name": "FiFi", - "description": "Query language value for Finnish (Finland)." - }, - { - "value": "sr-ba", - "name": "SrBa", - "description": "Query language value for Serbian (Bosnia and Herzegovina)." - }, - { - "value": "sr-me", - "name": "SrMe", - "description": "Query language value for Serbian (Montenegro)." - }, - { - "value": "sr-rs", - "name": "SrRs", - "description": "Query language value for Serbian (Serbia)." - }, - { - "value": "sk-sk", - "name": "SkSk", - "description": "Query language value for Slovak (Slovakia)." - }, - { - "value": "nb-no", - "name": "NbNo", - "description": "Query language value for Norwegian (Norway)." - }, - { - "value": "hy-am", - "name": "HyAm", - "description": "Query language value for Armenian (Armenia)." - }, - { - "value": "bn-in", - "name": "BnIn", - "description": "Query language value for Bengali (India)." - }, - { - "value": "eu-es", - "name": "EuEs", - "description": "Query language value for Basque." - }, - { - "value": "gl-es", - "name": "GlEs", - "description": "Query language value for Galician." - }, - { - "value": "gu-in", - "name": "GuIn", - "description": "Query language value for Gujarati (India)." - }, - { - "value": "he-il", - "name": "HeIl", - "description": "Query language value for Hebrew (Israel)." - }, - { - "value": "ga-ie", - "name": "GaIe", - "description": "Query language value for Irish (Ireland)." - }, - { - "value": "kn-in", - "name": "KnIn", - "description": "Query language value for Kannada (India)." - }, - { - "value": "ml-in", - "name": "MlIn", - "description": "Query language value for Malayalam (India)." - }, - { - "value": "mr-in", - "name": "MrIn", - "description": "Query language value for Marathi (India)." - }, - { - "value": "fa-ae", - "name": "FaAe", - "description": "Query language value for Persian (U.A.E.)." - }, - { - "value": "pa-in", - "name": "PaIn", - "description": "Query language value for Punjabi (India)." - }, - { - "value": "te-in", - "name": "TeIn", - "description": "Query language value for Telugu (India)." - }, - { - "value": "ur-pk", - "name": "UrPk", - "description": "Query language value for Urdu (Pakistan)." - } - ] - }, - "description": "The language of the query." - }, - "ScoringStatistics": { - "type": "string", - "enum": [ - "local", - "global" - ], - "x-ms-enum": { - "name": "ScoringStatistics", - "modelAsString": false, - "values": [ - { - "value": "local", - "name": "Local", - "description": "The scoring statistics will be calculated locally for lower latency." - }, - { - "value": "global", - "name": "Global", - "description": "The scoring statistics will be calculated globally for more consistent scoring." - } - ] - }, - "description": "A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is 'local'. Use 'global' to aggregate scoring statistics globally before scoring. Using global scoring statistics can increase latency of search queries." - }, - "AutocompleteMode": { - "type": "string", - "enum": [ - "oneTerm", - "twoTerms", - "oneTermWithContext" - ], - "x-ms-enum": { - "name": "AutocompleteMode", - "modelAsString": false, - "values": [ - { - "value": "oneTerm", - "name": "OneTerm", - "description": "Only one term is suggested. If the query has two terms, only the last term is completed. For example, if the input is 'washington medic', the suggested terms could include 'medicaid', 'medicare', and 'medicine'." - }, - { - "value": "twoTerms", - "name": "TwoTerms", - "description": "Matching two-term phrases in the index will be suggested. For example, if the input is 'medic', the suggested terms could include 'medicare coverage' and 'medical assistant'." - }, - { - "value": "oneTermWithContext", - "name": "OneTermWithContext", - "description": "Completes the last term in a query with two or more terms, where the last two terms are a phrase that exists in the index. For example, if the input is 'washington medic', the suggested terms could include 'washington medicaid' and 'washington medical'." - } - ] - }, - "description": "Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context in producing autocomplete terms." - }, - "SearchRequest": { - "type": "object", - "properties": { - "count": { - "type": "boolean", - "description": "A value that specifies whether to fetch the total count of results. Default is false. Setting this value to true may have a performance impact. Note that the count returned is an approximation.", - "x-ms-client-name": "IncludeTotalResultCount" - }, - "facets": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/Search-Documents" - }, - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of facet expressions to apply to the search query. Each facet expression contains a field name, optionally followed by a comma-separated list of name:value pairs." - }, - "filter": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/OData-Expression-Syntax-for-Azure-Search" - }, - "type": "string", - "description": "The OData $filter expression to apply to the search query." - }, - "highlight": { - "type": "string", - "description": "The comma-separated list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting.", - "x-ms-client-name": "HighlightFields" - }, - "highlightPostTag": { - "type": "string", - "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>." - }, - "highlightPreTag": { - "type": "string", - "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. Default is <em>." - }, - "minimumCoverage": { - "type": "number", - "format": "double", - "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a search query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 100." - }, - "orderby": { - "x-ms-client-name": "OrderBy", - "type": "string", - "description": "The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses." - }, - "queryType": { - "$ref": "#/definitions/QueryType", - "description": "A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax." - }, - "scoringStatistics": { - "$ref": "#/definitions/ScoringStatistics", - "description": "A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is 'local'. Use 'global' to aggregate scoring statistics globally before scoring. Using global scoring statistics can increase latency of search queries." - }, - "sessionId": { - "type": "string", - "description": "A value to be used to create a sticky session, which can help getting more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character." - }, - "scoringParameters": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be \"mylocation--122.2,44.8\" (without the quotes)." - }, - "scoringProfile": { - "type": "string", - "description": "The name of a scoring profile to evaluate match scores for matching documents in order to sort the results." - }, - "debug": { - "$ref": "#/definitions/QueryDebugMode", - "description": "Enables a debugging tool that can be used to further explore your reranked results." - }, - "search": { - "type": "string", - "description": "A full-text search query expression; Use \"*\" or omit this parameter to match all documents.", - "x-ms-client-name": "SearchText" - }, - "searchFields": { - "type": "string", - "description": "The comma-separated list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter." - }, - "searchMode": { - "$ref": "#/definitions/SearchMode", - "description": "A value that specifies whether any or all of the search terms must be matched in order to count the document as a match." - }, - "queryLanguage": { - "$ref": "#/definitions/QueryLanguage", - "description": "A value that specifies the language of the search query." - }, - "speller": { - "$ref": "#/definitions/Speller", - "description": "A value that specified the type of the speller to use to spell-correct individual search query terms." - }, - "select": { - "type": "string", - "description": "The comma-separated list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included." - }, - "skip": { - "type": "integer", - "format": "int32", - "description": "The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use skip due to this limitation, consider using orderby on a totally-ordered key and filter with a range query instead." - }, - "top": { - "type": "integer", - "format": "int32", - "description": "The number of search results to retrieve. This can be used in conjunction with $skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results." - }, - "semanticConfiguration": { - "type": "string", - "description": "The name of a semantic configuration that will be used when processing documents for queries of type semantic." - }, - "semanticErrorHandling": { - "$ref": "#/definitions/SemanticErrorHandling", - "description": "Allows the user to choose whether a semantic call should fail completely (default / current behavior), or to return partial results." - }, - "semanticMaxWaitInMilliseconds": { - "type": "integer", - "format": "int32", - "x-nullable": true, - "minimum": 700, - "description": "Allows the user to set an upper bound on the amount of time it takes for semantic enrichment to finish processing before the request fails." - }, - "semanticQuery": { - "type": "string", - "description": "Allows setting a separate search query that will be solely used for semantic reranking, semantic captions and semantic answers. Is useful for scenarios where there is a need to use different queries between the base retrieval and ranking phase, and the L2 semantic phase." - }, - "answers": { - "$ref": "#/definitions/Answers", - "description": "A value that specifies whether answers should be returned as part of the search response." - }, - "captions": { - "$ref": "#/definitions/Captions", - "description": "A value that specifies whether captions should be returned as part of the search response." - }, - "queryRewrites": { - "$ref": "#/definitions/QueryRewrites", - "description": "A value that specifies whether query rewrites should be generated to augment the search query." - }, - "semanticFields": { - "type": "string", - "description": "The comma-separated list of field names used for semantic ranking." - }, - "vectorQueries": { - "type": "array", - "items": { - "$ref": "#/definitions/VectorQuery" - }, - "description": "The query parameters for vector and hybrid search queries." - }, - "vectorFilterMode": { - "$ref": "#/definitions/VectorFilterMode", - "description": "Determines whether or not filters are applied before or after the vector search is performed. Default is 'preFilter' for new indexes." - }, - "hybridSearch": { - "$ref": "#/definitions/HybridSearch", - "description": "The query parameters to configure hybrid search behaviors." - } - }, - "description": "Parameters for filtering, sorting, faceting, paging, and other search query behaviors." - }, - "SuggestRequest": { - "type": "object", - "properties": { - "filter": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/OData-Expression-Syntax-for-Azure-Search" - }, - "type": "string", - "description": "An OData expression that filters the documents considered for suggestions." - }, - "fuzzy": { - "type": "boolean", - "description": "A value indicating whether to use fuzzy matching for the suggestion query. Default is false. When set to true, the query will find suggestions even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy suggestion searches are slower and consume more resources.", - "x-ms-client-name": "UseFuzzyMatching" - }, - "highlightPostTag": { - "type": "string", - "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting of suggestions is disabled." - }, - "highlightPreTag": { - "type": "string", - "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting of suggestions is disabled." - }, - "minimumCoverage": { - "type": "number", - "format": "double", - "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by a suggestion query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80." - }, - "orderby": { - "x-ms-client-name": "OrderBy", - "type": "string", - "description": "The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses." - }, - "search": { - "type": "string", - "description": "The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters.", - "x-ms-client-name": "SearchText" - }, - "searchFields": { - "type": "string", - "description": "The comma-separated list of field names to search for the specified search text. Target fields must be included in the specified suggester." - }, - "select": { - "type": "string", - "description": "The comma-separated list of fields to retrieve. If unspecified, only the key field will be included in the results." - }, - "suggesterName": { - "type": "string", - "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition." - }, - "top": { - "type": "integer", - "format": "int32", - "description": "The number of suggestions to retrieve. This must be a value between 1 and 100. The default is 5." - } - }, - "required": [ - "search", - "suggesterName" - ], - "description": "Parameters for filtering, sorting, fuzzy matching, and other suggestions query behaviors." - }, - "AutocompleteRequest": { - "type": "object", - "properties": { - "search": { - "type": "string", - "description": "The search text on which to base autocomplete results.", - "x-ms-client-name": "SearchText" - }, - "autocompleteMode": { - "$ref": "#/definitions/AutocompleteMode", - "description": "Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context while producing auto-completed terms." - }, - "filter": { - "externalDocs": { - "url": "https://learn.microsoft.com/rest/api/searchservice/OData-Expression-Syntax-for-Azure-Search" - }, - "type": "string", - "description": "An OData expression that filters the documents used to produce completed terms for the Autocomplete result." - }, - "fuzzy": { - "type": "boolean", - "description": "A value indicating whether to use fuzzy matching for the autocomplete query. Default is false. When set to true, the query will autocomplete terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy autocomplete queries are slower and consume more resources.", - "x-ms-client-name": "UseFuzzyMatching" - }, - "highlightPostTag": { - "type": "string", - "description": "A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting is disabled." - }, - "highlightPreTag": { - "type": "string", - "description": "A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting is disabled." - }, - "minimumCoverage": { - "type": "number", - "format": "double", - "description": "A number between 0 and 100 indicating the percentage of the index that must be covered by an autocomplete query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80." - }, - "searchFields": { - "type": "string", - "description": "The comma-separated list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester." - }, - "suggesterName": { - "type": "string", - "description": "The name of the suggester as specified in the suggesters collection that's part of the index definition." - }, - "top": { - "type": "integer", - "format": "int32", - "description": "The number of auto-completed terms to retrieve. This must be a value between 1 and 100. The default is 5." - } - }, - "required": [ - "search", - "suggesterName" - ], - "description": "Parameters for fuzzy matching, and other autocomplete query behaviors." - }, - "AutocompleteResult": { - "properties": { - "@search.coverage": { - "type": "number", - "format": "double", - "readOnly": true, - "x-ms-client-name": "Coverage", - "description": "A value indicating the percentage of the index that was considered by the autocomplete request, or null if minimumCoverage was not specified in the request." - }, - "value": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/AutocompleteItem" - }, - "description": "The list of returned Autocompleted items.", - "x-ms-client-name": "Results" - } - }, - "required": [ - "value" - ], - "description": "The result of Autocomplete query." - }, - "AutocompleteItem": { - "type": "object", - "properties": { - "text": { - "type": "string", - "readOnly": true, - "description": "The completed term." - }, - "queryPlusText": { - "type": "string", - "readOnly": true, - "description": "The query along with the completed term." - } - }, - "required": [ - "text", - "queryPlusText" - ], - "description": "The result of Autocomplete requests." - }, - "AnswerResult": { - "type": "object", - "x-ms-client-name": "QueryAnswerResult", - "properties": { - "score": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The score value represents how relevant the answer is to the query relative to other answers returned for the query." - }, - "key": { - "type": "string", - "readOnly": true, - "description": "The key of the document the answer was extracted from." - }, - "text": { - "type": "string", - "readOnly": true, - "description": "The text passage extracted from the document contents as the answer." - }, - "highlights": { - "type": "string", - "readOnly": true, - "x-nullable": true, - "description": "Same text passage as in the Text property with highlighted text phrases most relevant to the query." - } - }, - "additionalProperties": true, - "description": "An answer is a text passage extracted from the contents of the most relevant documents that matched the query. Answers are extracted from the top search results. Answer candidates are scored and the top answers are selected." - }, - "CaptionResult": { - "type": "object", - "x-ms-client-name": "QueryCaptionResult", - "properties": { - "text": { - "type": "string", - "readOnly": true, - "description": "A representative text passage extracted from the document most relevant to the search query." - }, - "highlights": { - "type": "string", - "readOnly": true, - "x-nullable": true, - "description": "Same text passage as in the Text property with highlighted phrases most relevant to the query." - } - }, - "additionalProperties": true, - "description": "Captions are the most representative passages from the document relatively to the search query. They are often used as document summary. Captions are only returned for queries of type `semantic`." - }, - "SemanticPartialResponseReason": { - "type": "string", - "enum": [ - "maxWaitExceeded", - "capacityOverloaded", - "transient" - ], - "x-ms-enum": { - "name": "SemanticErrorReason", - "modelAsString": true, - "values": [ - { - "value": "maxWaitExceeded", - "name": "MaxWaitExceeded", - "description": "If `semanticMaxWaitInMilliseconds` was set and the semantic processing duration exceeded that value. Only the base results were returned." - }, - { - "value": "capacityOverloaded", - "name": "CapacityOverloaded", - "description": "The request was throttled. Only the base results were returned." - }, - { - "value": "transient", - "name": "Transient", - "description": "At least one step of the semantic process failed." - } - ] - }, - "description": "Reason that a partial response was returned for a semantic ranking request." - }, - "SemanticPartialResponseType": { - "type": "string", - "enum": [ - "baseResults", - "rerankedResults" - ], - "x-ms-enum": { - "name": "SemanticSearchResultsType", - "modelAsString": true, - "values": [ - { - "value": "baseResults", - "name": "BaseResults", - "description": "Results without any semantic enrichment or reranking." - }, - { - "value": "rerankedResults", - "name": "RerankedResults", - "description": "Results have been reranked with the reranker model and will include semantic captions. They will not include any answers, answers highlights or caption highlights." - } - ] - }, - "description": "Type of partial response that was returned for a semantic ranking request." - }, - "SemanticQueryRewritesResultType": { - "type": "string", - "enum": [ - "originalQueryOnly" - ], - "x-ms-enum": { - "name": "SemanticQueryRewritesResultType", - "modelAsString": true, - "values": [ - { - "value": "originalQueryOnly", - "name": "OriginalQueryOnly", - "description": "Query rewrites were not successfully generated for this request. Only the original query was used to retrieve the results." - } - ] - }, - "description": "Type of query rewrite that was used for this request." - }, - "SemanticErrorHandling": { - "type": "string", - "enum": [ - "partial", - "fail" - ], - "x-ms-enum": { - "name": "SemanticErrorMode", - "modelAsString": true, - "values": [ - { - "value": "partial", - "name": "Partial", - "description": "If the semantic processing fails, partial results still return. The definition of partial results depends on what semantic step failed and what was the reason for failure." - }, - { - "value": "fail", - "name": "Fail", - "description": "If there is an exception during the semantic processing step, the query will fail and return the appropriate HTTP code depending on the error." - } - ] - }, - "description": "Allows the user to choose whether a semantic call should fail completely, or to return partial results." - }, - "Answers": { - "type": "string", - "enum": [ - "none", - "extractive" - ], - "x-ms-enum": { - "name": "QueryAnswerType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Do not return answers for the query." - }, - { - "value": "extractive", - "name": "Extractive", - "description": "Extracts answer candidates from the contents of the documents returned in response to a query expressed as a question in natural language." - } - ] - }, - "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns answers extracted from key passages in the highest ranked documents. The number of answers returned can be configured by appending the pipe character `|` followed by the `count-` option after the answers parameter value, such as `extractive|count-3`. Default count is 1. The confidence threshold can be configured by appending the pipe character `|` followed by the `threshold-` option after the answers parameter value, such as `extractive|threshold-0.9`. Default threshold is 0.7. The maximum character length of answers can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'." - }, - "Captions": { - "type": "string", - "enum": [ - "none", - "extractive" - ], - "x-ms-enum": { - "name": "QueryCaptionType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Do not return captions for the query." - }, - { - "value": "extractive", - "name": "Extractive", - "description": "Extracts captions from the matching documents that contain passages relevant to the search query." - } - ] - }, - "description": "This parameter is only valid if the query type is `semantic`. If set, the query returns captions extracted from key passages in the highest ranked documents. When Captions is set to `extractive`, highlighting is enabled by default, and can be configured by appending the pipe character `|` followed by the `highlight-` option, such as `extractive|highlight-true`. Defaults to `None`. The maximum character length of captions can be configured by appending the pipe character '|' followed by the 'count-', such as 'extractive|maxcharlength-600'." - }, - "QueryRewrites": { - "type": "string", - "enum": [ - "none", - "generative" - ], - "x-ms-enum": { - "name": "QueryRewritesType", - "modelAsString": true, - "values": [ - { - "value": "none", - "name": "None", - "description": "Do not generate additional query rewrites for this query." - }, - { - "value": "generative", - "name": "Generative", - "description": "Generate alternative query terms to increase the recall of a search request." - } - ] - }, - "description": "This parameter is only valid if the query type is `semantic`. When QueryRewrites is set to `generative`, the query terms are sent to a generate model which will produce 10 (default) rewrites to help increase the recall of the request. The requested count can be configured by appending the pipe character `|` followed by the `count-` option, such as `generative|count-3`. Defaults to `None`." - }, - "DebugInfo": { - "type": "object", - "properties": { - "queryRewrites": { - "$ref": "#/definitions/QueryRewritesDebugInfo", - "readOnly": true, - "description": "Contains debugging information specific to query rewrites." - } - }, - "description": "Contains debugging information that can be used to further explore your search results." - }, - "DocumentDebugInfo": { - "type": "object", - "properties": { - "semantic": { - "$ref": "#/definitions/SemanticDebugInfo", - "readOnly": true, - "description": "Contains debugging information specific to semantic ranking requests." - }, - "vectors": { - "$ref": "#/definitions/VectorsDebugInfo", - "readOnly": true, - "description": "Contains debugging information specific to vector and hybrid search." - }, - "innerHits": { - "$ref": "#/definitions/InnerHitsDebugInfo", - "readOnly": true, - "description": "Contains debugging information specific to vectors matched within a collection of complex types." - } - }, - "description": "Contains debugging information that can be used to further explore your search results." - }, - "SemanticDebugInfo": { - "type": "object", - "properties": { - "titleField": { - "$ref": "#/definitions/QueryResultDocumentSemanticField", - "readOnly": true, - "description": "The title field that was sent to the semantic enrichment process, as well as how it was used" - }, - "contentFields": { - "type": "array", - "items": { - "$ref": "#/definitions/QueryResultDocumentSemanticField" - }, - "readOnly": true, - "description": "The content fields that were sent to the semantic enrichment process, as well as how they were used" - }, - "keywordFields": { - "type": "array", - "items": { - "$ref": "#/definitions/QueryResultDocumentSemanticField" - }, - "readOnly": true, - "description": "The keyword fields that were sent to the semantic enrichment process, as well as how they were used" - }, - "rerankerInput": { - "$ref": "#/definitions/QueryResultDocumentRerankerInput", - "readOnly": true, - "description": "The raw concatenated strings that were sent to the semantic enrichment process." - } - } - }, - "QueryResultDocumentSemanticField": { - "type": "object", - "properties": { - "name": { - "type": "string", - "readOnly": true, - "description": "The name of the field that was sent to the semantic enrichment process" - }, - "state": { - "$ref": "#/definitions/QueryResultDocumentSemanticFieldState", - "readOnly": true, - "description": "The way the field was used for the semantic enrichment process (fully used, partially used, or unused)" - } - }, - "description": "Description of fields that were sent to the semantic enrichment process, as well as how they were used" - }, - "QueryResultDocumentSemanticFieldState": { - "type": "string", - "enum": [ - "used", - "unused", - "partial" - ], - "x-ms-enum": { - "name": "SemanticFieldState", - "modelAsString": true, - "values": [ - { - "value": "used", - "name": "Used", - "description": "The field was fully used for semantic enrichment." - }, - { - "value": "unused", - "name": "Unused", - "description": "The field was not used for semantic enrichment." - }, - { - "value": "partial", - "name": "Partial", - "description": "The field was partially used for semantic enrichment." - } - ] - }, - "description": "The way the field was used for the semantic enrichment process." - }, - "QueryResultDocumentRerankerInput": { - "type": "object", - "properties": { - "title": { - "type": "string", - "readOnly": true, - "description": "The raw string for the title field that was used for semantic enrichment." - }, - "content": { - "type": "string", - "readOnly": true, - "description": "The raw concatenated strings for the content fields that were used for semantic enrichment." - }, - "keywords": { - "type": "string", - "readOnly": true, - "description": "The raw concatenated strings for the keyword fields that were used for semantic enrichment." - } - }, - "description": "The raw concatenated strings that were sent to the semantic enrichment process." - }, - "VectorsDebugInfo": { - "type": "object", - "properties": { - "subscores": { - "$ref": "#/definitions/QueryResultDocumentSubscores", - "readOnly": true, - "description": "The breakdown of subscores of the document prior to the chosen result set fusion/combination method such as RRF." - } - } - }, - "QueryResultDocumentSubscores": { - "type": "object", - "properties": { - "text": { - "$ref": "#/definitions/TextResult", - "readOnly": true, - "description": "The BM25 or Classic score for the text portion of the query." - }, - "vectors": { - "type": "array", - "items": { - "$ref": "#/definitions/QueryResultDocumentVectorSubscores" - }, - "readOnly": true, - "description": "The vector similarity and @search.score values for each vector query." - }, - "documentBoost": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The BM25 or Classic score for the text portion of the query." - } - }, - "description": "The breakdown of subscores between the text and vector query components of the search query for this document. Each vector query is shown as a separate object in the same order they were received." - }, - "TextResult": { - "type": "object", - "properties": { - "searchScore": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The BM25 or Classic score for the text portion of the query." - } - }, - "readOnly": true, - "description": "The BM25 or Classic score for the text portion of the query." - }, - "QueryResultDocumentVectorSubscores": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/SingleVectorFieldResult", - "readOnly": true - }, - "readOnly": true, - "description": "The vector similarity and @search.score values for each vector query. Each cross-field vector query will have separate subscores for each referenced field." - }, - "SingleVectorFieldResult": { - "type": "object", - "properties": { - "searchScore": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The @search.score value that is calculated from the vector similarity score. This is the score that's visible in a pure single-field single-vector query." - }, - "vectorSimilarity": { - "type": "number", - "format": "double", - "readOnly": true, - "description": "The vector similarity score for this document. Note this is the canonical definition of similarity metric, not the 'distance' version. For example, cosine similarity instead of cosine distance." - } - }, - "readOnly": true, - "description": "A single vector field result. Both @search.score and vector similarity values are returned. Vector similarity is related to @search.score by an equation." - }, - "QueryRewritesDebugInfo": { - "type": "object", - "properties": { - "text": { - "$ref": "#/definitions/QueryRewritesValuesDebugInfo", - "readOnly": true, - "description": "List of query rewrites generated for the text query." - }, - "vectors": { - "type": "array", - "items": { - "$ref": "#/definitions/QueryRewritesValuesDebugInfo" - }, - "readOnly": true, - "description": "List of query rewrites generated for the vectorizable text queries." - } - }, - "readOnly": true, - "description": "Contains debugging information specific to query rewrites." - }, - "QueryRewritesValuesDebugInfo": { - "type": "object", - "properties": { - "inputQuery": { - "type": "string", - "readOnly": true, - "description": "The input text to the generative query rewriting model. There may be cases where the user query and the input to the generative model are not identical." - }, - "rewrites": { - "type": "array", - "items": { - "type": "string" - }, - "readOnly": true, - "description": "List of query rewrites." - } - }, - "readOnly": true, - "description": "Contains debugging information specific to query rewrites." - }, - "InnerHitsDebugInfo": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/NestedFieldInnerHitsDebugInfo", - "readOnly": true - }, - "readOnly": true, - "description": "Detailing scoring information for all individual elements of all complex collection that matched the search request." - }, - "NestedFieldInnerHitsDebugInfo": { - "type": "array", - "items": { - "$ref": "#/definitions/QueryResultDocumentInnerHit" - }, - "readOnly": true, - "description": "Detailed scoring information for individual elements of a specific complex collection that matched the search request." - }, - "QueryResultDocumentInnerHit": { - "type": "object", - "properties": { - "ordinal": { - "type": "integer", - "format": "int64", - "readOnly": true, - "description": "Position of this specific matching element within it's original collection. Position starts at 0." - }, - "vectors": { - "type": "array", - "items": { - "$ref": "#/definitions/QueryResultDocumentVectorSubscores" - }, - "readOnly": true, - "description": "Detailed scoring information for an individual element of a complex collection that matched a vector query." - } - }, - "description": "Detailed scoring information for an individual element of a complex collection." - } - }, - "parameters": { - "ApiVersionParameter": { - "name": "api-version", - "in": "query", - "required": true, - "type": "string", - "description": "Client Api Version." - }, - "ClientRequestIdParameter": { - "name": "x-ms-client-request-id", - "in": "header", - "required": false, - "type": "string", - "format": "uuid", - "description": "The tracking ID sent with the request to help with debugging.", - "x-ms-client-request-id": true, - "x-ms-parameter-grouping": { - "name": "request-options" - }, - "x-ms-parameter-location": "method" - }, - "QuerySourceAuthorizationParameter": { - "name": "x-ms-query-source-authorization", - "in": "header", - "required": false, - "type": "string", - "description": "Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.", - "x-ms-query-source-authorization": true, - "x-ms-parameter-location": "method" - }, - "EnableElevatedReadParameter": { - "name": "x-ms-enable-elevated-read", - "in": "header", - "required": false, - "type": "boolean", - "description": "A value that enables elevated read that bypass document level permission checks for the query operation.", - "x-ms-parameter-location": "method" - }, - "EndpointParameter": { - "name": "endpoint", - "in": "path", - "required": true, - "type": "string", - "x-ms-skip-url-encoding": true, - "description": "The endpoint URL of the search service.", - "x-ms-parameter-location": "client" - }, - "IndexNameParameter": { - "name": "indexName", - "in": "path", - "required": true, - "type": "string", - "x-ms-skip-url-encoding": false, - "description": "The name of the index.", - "x-ms-parameter-location": "client" - } - } -} diff --git a/specification/search/data-plane/Search/readme.md b/specification/search/data-plane/Search/readme.md index b96d8ce0630f..52891b6b33d5 100644 --- a/specification/search/data-plane/Search/readme.md +++ b/specification/search/data-plane/Search/readme.md @@ -1,14 +1,15 @@ -# SearchServiceClient and SearchIndexClient +# AI Search > see https://aka.ms/autorest -This is the AutoRest configuration file for SearchServiceClient and SearchIndexClient. +This is the AutoRest configuration file for AI Search. --- + ## Getting Started -To build the SDK for SearchServiceClient and SearchIndexClient, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: +To build the SDK for AI Search, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: > `autorest` @@ -22,9 +23,10 @@ To see additional help and options, run: ### Basic Information These are the global settings for SearchServiceClient and SearchIndexClient. +These are the global settings for the AI Search API. + ``` yaml -title: SearchClient -opt-in-extensible-enums: true +# common openapi-type: data-plane tag: package-2025-11-01-preview @@ -173,1035 +175,16 @@ These settings apply only when `--tag=package-2025-11-01-preview` is specified o ``` yaml $(tag) == 'package-2025-11-01-preview' input-file: -- preview/2025-11-01-preview/knowledgebase.json -- preview/2025-11-01-preview/searchservice.json -- preview/2025-11-01-preview/searchindex.json -``` - -### Tag: package-2025-11-knowledgebase-preview - -These settings apply only when `--tag=package-2025-11-knowledgebase-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-11-knowledgebase-preview' -input-file: -- preview/2025-11-01-preview/knowledgebase.json -``` - -### Tag: package-2025-11-searchservice-preview - -These settings apply only when `--tag=package-2025-11-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-11-searchservice-preview' -input-file: -- preview/2025-11-01-preview/searchservice.json -``` - -### Tag: package-2025-11-searchindex-preview - -These settings apply only when `--tag=package-2025-11-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-11-searchindex-preview' -input-file: -- preview/2025-11-01-preview/searchindex.json -``` - -### Tag: package-2025-09-01 - -These settings apply only when `--tag=package-2025-09-01` is specified on the command line. - -``` yaml $(tag) == 'package-2025-09-01' -input-file: -- stable/2025-09-01/searchservice.json -- stable/2025-09-01/searchindex.json -``` - -### Tag: package-2025-09-searchservice - -These settings apply only when `--tag=package-2025-09-searchservice` is specified on the command line. - -``` yaml $(tag) == 'package-2025-09-searchservice' -input-file: -- stable/2025-09-01/searchservice.json -``` - -### Tag: package-2025-09-searchindex - -These settings apply only when `--tag=package-2025-09-searchindex` is specified on the command line. - -``` yaml $(tag) == 'package-2025-09-searchindex' -input-file: -- stable/2025-09-01/searchindex.json -``` - -### Tag: package-2025-08-01-preview - -These settings apply only when `--tag=package-2025-08-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-08-01-preview' -input-file: -- preview/2025-08-01-preview/knowledgeagent.json -- preview/2025-08-01-preview/searchservice.json -- preview/2025-08-01-preview/searchindex.json -``` - -### Tag: package-2025-08-knowledgeagent-preview - -These settings apply only when `--tag=package-2025-08-knowledgeagent-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-08-knowledgeagent-preview' -input-file: -- preview/2025-08-01-preview/knowledgeagent.json -``` - -### Tag: package-2025-08-searchservice-preview - -These settings apply only when `--tag=package-2025-08-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-08-searchservice-preview' -input-file: -- preview/2025-08-01-preview/searchservice.json -``` - -### Tag: package-2025-08-searchindex-preview - -These settings apply only when `--tag=package-2025-08-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-08-searchindex-preview' -input-file: -- preview/2025-08-01-preview/searchindex.json -``` - -### Tag: package-2025-05-01-preview - -These settings apply only when `--tag=package-2025-05-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-05-01-preview' -input-file: -- preview/2025-05-01-preview/knowledgeagent.json -- preview/2025-05-01-preview/searchservice.json -- preview/2025-05-01-preview/searchindex.json -``` - -### Tag: package-2025-05-knowledgeagent-preview - -These settings apply only when `--tag=package-2025-05-knowledgeagent-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-05-knowledgeagent-preview' -input-file: -- preview/2025-05-01-preview/knowledgeagent.json -``` - -### Tag: package-2025-05-searchservice-preview - -These settings apply only when `--tag=package-2025-05-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-05-searchservice-preview' -input-file: -- preview/2025-05-01-preview/searchservice.json -``` - -### Tag: package-2025-05-searchindex-preview - -These settings apply only when `--tag=package-2025-05-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-05-searchindex-preview' -input-file: -- preview/2025-05-01-preview/searchindex.json -``` - -### Tag: package-2025-03-01-preview - -These settings apply only when `--tag=package-2025-03-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-03-01-preview' -input-file: -- preview/2025-03-01-preview/searchservice.json -- preview/2025-03-01-preview/searchindex.json -``` - -### Tag: package-2025-03-searchservice-preview - -These settings apply only when `--tag=package-2025-03-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-03-searchservice-preview' -input-file: -- preview/2025-03-01-preview/searchservice.json -``` - -### Tag: package-2025-03-searchindex-preview - -These settings apply only when `--tag=package-2025-03-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2025-03-searchindex-preview' -input-file: -- preview/2025-03-01-preview/searchindex.json -``` - -### Tag: package-2024-11-01-preview - -These settings apply only when `--tag=package-2024-11-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-11-01-preview' -input-file: -- preview/2024-11-01-preview/searchservice.json -- preview/2024-11-01-preview/searchindex.json -``` - -### Tag: package-2024-11-searchservice-preview - -These settings apply only when `--tag=package-2024-11-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-11-searchservice-preview' -input-file: -- preview/2024-11-01-preview/searchservice.json -``` - -### Tag: package-2024-11-searchindex-preview - -These settings apply only when `--tag=package-2024-11-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-11-searchindex-preview' -input-file: -- preview/2024-11-01-preview/searchindex.json -``` - -### Tag: package-2024-09-01-preview - -These settings apply only when `--tag=package-2024-09-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-09-01-preview' -input-file: -- preview/2024-09-01-preview/searchservice.json -- preview/2024-09-01-preview/searchindex.json -``` - -### Tag: package-2024-09-searchservice-preview - -These settings apply only when `--tag=package-2024-09-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-09-searchservice-preview' -input-file: -- preview/2024-09-01-preview/searchservice.json -``` - -### Tag: package-2024-09-searchindex-preview - -These settings apply only when `--tag=package-2024-09-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-09-searchindex-preview' -input-file: -- preview/2024-09-01-preview/searchindex.json -``` - -### Tag: package-2024-07-01 - -These settings apply only when `--tag=package-2024-07-01` is specified on the command line. - -``` yaml $(tag) == 'package-2024-07-01' -input-file: -- stable/2024-07-01/searchservice.json -- stable/2024-07-01/searchindex.json -``` - -### Tag: package-2024-07-searchservice - -These settings apply only when `--tag=package-2024-07-searchservice` is specified on the command line. - -``` yaml $(tag) == 'package-2024-07-searchservice' -input-file: -- stable/2024-07-01/searchservice.json -``` - -### Tag: package-2024-07-searchindex - -These settings apply only when `--tag=package-2024-07-searchindex` is specified on the command line. - -``` yaml $(tag) == 'package-2024-07-searchindex' -input-file: -- stable/2024-07-01/searchindex.json -``` - -### Tag: package-2024-05-01-preview - -These settings apply only when `--tag=package-2024-05-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-05-01-preview' -input-file: -- preview/2024-05-01-preview/searchservice.json -- preview/2024-05-01-preview/searchindex.json -``` - -### Tag: package-2024-05-searchservice-preview - -These settings apply only when `--tag=package-2024-05-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-05-searchservice-preview' -input-file: -- preview/2024-05-01-preview/searchservice.json -``` - -### Tag: package-2024-05-searchindex-preview - -These settings apply only when `--tag=package-2024-05-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-05-searchindex-preview' -input-file: -- preview/2024-05-01-preview/searchindex.json -``` - -### Tag: package-2024-03-01-preview - -These settings apply only when `--tag=package-2024-03-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-03-01-preview' -input-file: -- preview/2024-03-01-Preview/searchservice.json -- preview/2024-03-01-Preview/searchindex.json -``` - -### Tag: package-2024-03-searchservice-preview - -These settings apply only when `--tag=package-2024-03-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-03-searchservice-preview' -input-file: -- preview/2024-03-01-Preview/searchservice.json -``` - -### Tag: package-2024-03-searchindex-preview - -These settings apply only when `--tag=package-2024-03-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2024-03-searchindex-preview' -input-file: -- preview/2024-03-01-Preview/searchindex.json -``` - -### Tag: package-2023-10-01-preview - -These settings apply only when `--tag=package-2023-10-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2023-10-01-preview' -input-file: -- preview/2023-10-01-Preview/searchservice.json -- preview/2023-10-01-Preview/searchindex.json -``` - -#### Rename one of SearchError definitions - -SearchError is duplicated between two swaggers, rename one of them - -``` yaml $(tag) == 'package-2023-10-01-preview' -directive: -- from: preview/2023-10-01-Preview/searchservice.json - where: $.definitions.SearchError - transform: $["x-ms-client-name"] = "SearchServiceError" -``` - -### Tag: package-2023-10-searchservice-preview - -These settings apply only when `--tag=package-2023-10-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2023-10-searchservice-preview' -input-file: -- preview/2023-10-01-Preview/searchservice.json -``` - -### Tag: package-2023-10-searchindex-preview - -These settings apply only when `--tag=package-2023-10-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2023-10-searchindex-preview' -input-file: -- preview/2023-10-01-Preview/searchindex.json -``` - -### Tag: package-2023-07-01-preview - -These settings apply only when `--tag=package-2023-07-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2023-07-01-preview' -input-file: -- preview/2023-07-01-Preview/searchservice.json -- preview/2023-07-01-Preview/searchindex.json -``` - -#### Rename one of SearchError definitions - -SearchError is duplicated between two swaggers, rename one of them - -``` yaml $(tag) == 'package-2023-07-01-preview' -directive: -- from: preview/2023-07-01-Preview/searchservice.json - where: $.definitions.SearchError - transform: $["x-ms-client-name"] = "SearchServiceError" -``` - -### Tag: package-2023-07-searchservice-preview - -These settings apply only when `--tag=package-2023-07-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2023-07-searchservice-preview' -input-file: -- preview/2023-07-01-Preview/searchservice.json -``` - -### Tag: package-2023-07-searchindex-preview - -These settings apply only when `--tag=package-2023-07-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2023-07-searchindex-preview' -input-file: -- preview/2023-07-01-Preview/searchindex.json -``` - -### Tag: package-2021-04-30-preview - -These settings apply only when `--tag=package-2021-04-30-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2021-04-30-preview' -input-file: -- preview/2021-04-30-Preview/searchservice.json -- preview/2021-04-30-Preview/searchindex.json -``` - -#### Rename one of SearchError definitions - -SearchError is duplicated between two swaggers, rename one of them - -``` yaml $(tag) == 'package-2021-04-30-preview' -directive: -- from: preview/2021-04-30-Preview/searchservice.json - where: $.definitions.SearchError - transform: $["x-ms-client-name"] = "SearchServiceError" -``` - -### Tag: package-2021-04-searchservice-preview - -These settings apply only when `--tag=package-2021-04-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2021-04-searchservice-preview' -input-file: -- preview/2021-04-30-Preview/searchservice.json -``` - -### Tag: package-2021-04-searchindex-preview - -These settings apply only when `--tag=package-2021-04-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2021-04-searchindex-preview' -input-file: -- preview/2021-04-30-Preview/searchindex.json -``` - -### Tag: package-2020-06-searchservice-preview - -These settings apply only when `--tag=package-2020-06-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2020-06-searchservice-preview' -input-file: -- preview/2020-06-30-Preview/searchservice.json -``` - -### Tag: package-2020-06-searchindex-preview - -These settings apply only when `--tag=package-2020-06-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2020-06-searchindex-preview' -input-file: -- preview/2020-06-30-Preview/searchindex.json -``` - -### Tag: package-2020-06-searchservice - -These settings apply only when `--tag=package-2020-06-searchservice` is specified on the command line. - -``` yaml $(tag) == 'package-2020-06-searchservice' -input-file: -- stable/2020-06-30/searchservice.json -``` - -### Tag: package-2020-06-searchindex - -These settings apply only when `--tag=package-2020-06-searchindex` is specified on the command line. - -``` yaml $(tag) == 'package-2020-06-searchindex' -input-file: -- stable/2020-06-30/searchindex.json -``` - -### Tag: package-2023-11-searchservice - -These settings apply only when `--tag=package-2023-11-searchservice` is specified on the command line. - -``` yaml $(tag) == 'package-2023-11-searchservice' -input-file: -- stable/2023-11-01/searchservice.json -``` - -### Tag: package-2023-11-searchindex - -These settings apply only when `--tag=package-2023-11-searchindex` is specified on the command line. - -``` yaml $(tag) == 'package-2023-11-searchindex' -input-file: -- stable/2023-11-01/searchindex.json -``` - -### Tag: package-2019-05-searchservice-preview - -These settings apply only when `--tag=package-2019-05-searchservice-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2019-05-searchservice-preview' -input-file: -- preview/2019-05-06-preview/searchservice.json -``` - -### Tag: package-2019-05-searchindex-preview - -These settings apply only when `--tag=package-2019-05-searchindex-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2019-05-searchindex-preview' -input-file: -- preview/2019-05-06-preview/searchindex.json -``` - -### Tag: package-2019-05-searchservice - -These settings apply only when `--tag=package-2019-05-searchservice` is specified on the command line. - -``` yaml $(tag) == 'package-2019-05-searchservice' -input-file: -- stable/2019-05-06/searchservice.json -``` - -### Tag: package-2019-05-searchindex - -These settings apply only when `--tag=package-2019-05-searchindex` is specified on the command line. - -``` yaml $(tag) == 'package-2019-05-searchindex' -input-file: -- stable/2019-05-06/searchindex.json -``` - ---- -# Code Generation - -!!! READ THIS !!! -This swagger is ready for C# and Java. -!!! READ THIS !!! - -## Java - -These settings apply only when `--java` is specified on the command line. -Please also specify `--java-sdks-folder=`. - -``` yaml $(java) -output-folder: $(java-sdks-folder)/search -namespace: com.azure.search -java: true -sync-methods: none -add-context-parameter: true -generate-client-interfaces: false -custom-types-subpackage: implementation.models -custom-types: AnalyzeResult -license-header: |- - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the MIT License. - Code generated by Microsoft (R) AutoRest Code Generator. - Changes may cause incorrect behavior and will be lost if the code is regenerated. - -require: ./autorest-custom-directives.md - -vararg-properties: >- - CorsOptions.allowedOrigins, - AutocompleteOptions.searchFields, - SearchOptions.facets, SearchOptions.highlightFields, SearchOptions.orderBy, SearchOptions.scoringParameters, SearchOptions.searchFields, SearchOptions.select, - SuggestOptions.orderBy, SuggestOptions.searchFields, SuggestOptions.select - -directive: - # Rename IndexBatch to IndexBatchImpl when processing the API spec - - rename-model: - from: IndexBatch - to: IndexBatchImpl - - # Use Document rather than Map - - from: - - DocumentsImpl.java - - SearchResult.java - where: $ - transform: >- - return $ - .replace(/(package com.azure.search.models;)/g, "$1\nimport com.azure.search.Document;") - .replace(/(package com.azure.search.implementation;)/g, "$1\nimport com.azure.search.Document;") - .replace(/(Map)/g, "Document") - .replace(/(Object)/g, "Document") - - # Use Document rather than Map - - from: SuggestResult.java - where: $ - transform: >- - return $ - .replace(/(import java.util.Map;\n)/g, "import com.azure.search.Document;") - .replace(/(Map)/g, "Document") - - # Enable configuration of RestProxy serializer - - from: DocumentsImpl.java - where: $ - transform: >- - return $ - .replace(/(import com.azure.core.util.serializer.JacksonAdapter;)/g, "$1\nimport com.azure.core.util.serializer.SerializerAdapter;") - .replace(/(@param client the instance of the service client containing this operation class.)/g, "$1\n \* @param serializer the serializer to be used for service client requests.") - .replace(/(public DocumentsImpl\(SearchIndexRestClientImpl client\) {)/g, "public DocumentsImpl(SearchIndexRestClientImpl client, SerializerAdapter serializer) {") - .replace(/(this.service = RestProxy.create\(DocumentsService.class, client.getHttpPipeline\(\)\);)/g, "this.service = RestProxy.create(DocumentsService.class, client.getHttpPipeline(), serializer);") - - # Enable public access to client setters - # Enable configuration of RestProxy serializer - - from: SearchIndexRestClientImpl.java - where: $ - transform: >- - return $ - .replace(/(void setApiVersion)/g, "public void setApiVersion") - .replace(/(void setIndexName)/g, "public void setIndexName") - .replace(/(void setSearchDnsSuffix)/g, "public void setSearchDnsSuffix") - .replace(/(void setSearchServiceName)/g, "public void setSearchServiceName") - .replace(/(package com.azure.search.implementation;)/g, "$1\nimport com.azure.core.util.serializer.SerializerAdapter;") - .replace(/(this\(RestProxy.createDefaultPipeline\(\)\);)/g, "this(RestProxy.createDefaultPipeline(), JacksonAdapter.createDefaultSerializerAdapter());") - .replace(/(@param httpPipeline The HTTP pipeline to send requests through.)/g, "$1\n \* @param serializer the serializer to be used for service client requests.") - .replace(/(public SearchIndexRestClientImpl\(HttpPipeline httpPipeline\) {)/g, "public SearchIndexRestClientImpl(HttpPipeline httpPipeline, SerializerAdapter serializer) {") - .replace(/(this.documents = new DocumentsImpl\(this\);)/g, "this.documents = new DocumentsImpl(this, serializer);") - - # Enable IndexAction to be used as a generic type - # Enable serialization of both POJOs and Maps - - from: IndexAction.java - where: $ - transform: >- - return $ - .replace(/(import com.fasterxml.jackson.annotation.JsonProperty;)/g, "import com.fasterxml.jackson.annotation.JsonAnyGetter;\nimport com.fasterxml.jackson.annotation.JsonIgnore;\n$1\nimport com.fasterxml.jackson.annotation.JsonUnwrapped;\n") - .replace(/(class IndexAction)/g, "$1") - .replace(/(Unmatched properties from the message are deserialized this collection)/g, "The document on which the action will be performed.") - .replace(/(@JsonProperty\(value = ""\))/g, "@JsonUnwrapped") - .replace(/(private Map additionalProperties);/g, "private T document;\n\n @JsonIgnore\n private Map properties;\n\n @JsonAnyGetter\n private Map getParamMap() {\n return properties;\n }") - .replace(/(Get the additionalProperties property: Unmatched properties from the\n\s+\* message are deserialized this collection.)/g, "Get the document on which the action will be performed; Fields other than the key are ignored for delete actions.") - .replace(/(@return the additionalProperties value.)/g, "@return the document value.") - .replace(/(public Map getAdditionalProperties\(\) {\s+return this.additionalProperties;\s+})/g, "public T getDocument() {\n return this.document;\n }") - .replace(/(Set the additionalProperties property: Unmatched properties from the\s+\* message are deserialized this collection.)/g, "Get the document on which the action will be performed; Fields other than the key are ignored for delete actions.") - .replace(/(@param additionalProperties the additionalProperties value to set.)/g, "@param document the document value to set.") - .replace(/(public IndexAction setAdditionalProperties\(Map additionalProperties\) {\s+this.additionalProperties = additionalProperties;\s+return this;\s+})/g, "@SuppressWarnings(\"unchecked\")\n public IndexAction setDocument(T document) {\n if (document instanceof Map) {\n this.properties = (Map) document;\n this.document = null;\n } else {\n this.document = document;\n this.properties = null;\n }\n return this;\n }") - .replace(/(public IndexAction setActionType\(IndexActionType actionType\) {)/g, "public IndexAction setActionType(IndexActionType actionType) {") - - # Enable configuration of RestProxy serializer - - from: SearchIndexRestClientBuilder.java - where: $ - transform: >- - return $ - .replace(/(package com.azure.search.implementation;)/g, "$1\nimport com.azure.core.util.serializer.SerializerAdapter;") - .replace(/(\* The HTTP pipeline to send requests through)/g, "\* The serializer to use for requests\n \*\/\n private SerializerAdapter serializer;\n\n \/\*\*\n \* Sets The serializer to use for requests.\n \*\n \* @param serializer the serializer value.\n \* @return the SearchIndexRestClientBuilder.\n \*\/\n public SearchIndexRestClientBuilder serializer\(SerializerAdapter serializer\) {\n this.serializer = serializer;\n return this;\n }\n\n \/\*\n $1") - .replace(/(new SearchIndexRestClientImpl\(pipeline)/g, "$1, serializer") - .replace(/(this.pipeline = RestProxy.createDefaultPipeline\(\);\s+})/g, "$1\n if \(serializer == null\) {\n this.serializer = JacksonAdapter.createDefaultSerializerAdapter\(\);\n }") - - # Enable IndexBatchImpl to be used as a generic type - - from: IndexBatchImpl.java - where: $ - transform: >- - return $ - .replace(/(public final class IndexBatchImpl)/g, "public class IndexBatchImpl") - .replace(/(private List actions;)/g, "private List> actions;") - .replace(/(public List getActions\(\) {)/g, "public List> getActions() {") - .replace(/(public IndexBatchImpl setActions\(List actions\) {)/g, "protected IndexBatchImpl setActions(List> actions) {") - - # Replace use of generated IndexBatchImpl with custom IndexBatch class - - from: DocumentsImpl.java - where: $ - transform: >- - return $ - .replace(/(IndexBatchImpl)/g, "IndexBatch") - .replace(/(IndexBatch )/g, "IndexBatch ") - .replace(/(Mono indexAsync)/g, " $1") - .replace(/(Mono> index)/g, " $1") - .replace(/(import com.azure.search.implementation.models.IndexBatch)/g, "import com.azure.search.models.IndexBatch") - - # Change get to is - - from: DocumentsImpl.java - where: $ - transform: >- - return $ - .replace(/(get(IncludeTotalResultCount|UseFuzzyMatching))/g, "is$2") - - # Mark IndexingResult as Serializable, for use in IndexBatchException - - from: IndexingResult.java - where: $ - transform: >- - return $ - .replace(/(import com.fasterxml.jackson.annotation.JsonProperty;)/g, "$1\n\nimport java.io.Serializable;") - .replace(/(class IndexingResult {)/g, "class IndexingResult implements Serializable {\n private static final long serialVersionUID = -8604424005271188140L;") - - - from: - - FacetResult.java - where: $ - transform: >- - return $.replace(/(public FacetResult setAdditionalProperties)/g, "FacetResult setAdditionalProperties") - - - from: - - SearchResult.java - where: $ - transform: >- - return $.replace(/(public SearchResult setAdditionalProperties)/g, "SearchResult setAdditionalProperties") - - - from: - - SuggestResult.java - where: $ - transform: >- - return $.replace(/(public SuggestResult setAdditionalProperties)/g, "SuggestResult setAdditionalProperties") - - - from: - - FacetResult.java - - SearchResult.java - - SuggestResult.java - where: $ - transform: >- - return $ - .replace(/(getAdditionalProperties)/g, "getDocument") - .replace(/(setAdditionalProperties)/g, "setDocument") - reason: Provides a better description of the getter/setter for additionalProperties - - - from: - - SearchResult.java - where: $ - transform: >- - return $ - .replace(/(package com.azure.search.models;)/g, "$1\nimport com.fasterxml.jackson.annotation.JsonIgnore;") - .replace(/(public Document getDocument())/g, "@JsonIgnore\n$1") - - # Add static Collection method to DataType - - from: DataType.java - where: $ - transform: >- - return $ - .replace(/(public static final DataType EDM_COMPLEX_TYPE = fromString\("Edm.ComplexType"\);)/g, "$1\n\n /**\n * Returns a collection of a specific DataType\n * @param dataType the corresponding DataType\n * @return a Collection of the corresponding DataType\n */\n @JsonCreator\n public static DataType Collection(DataType dataType) {\n return fromString(String.format(\"Collection(%s)\", dataType.toString()));\n }") - - # Workaround to fix bad host path parameters - - from: - - SkillsetsImpl.java - - DatasetsImpl.java - - DataSourcesImpl.java - - IndexersImpl.java - - IndexesImpl.java - - SynonymMapsImpl.java - where: $ - transform: >- - return $ - .replace(/(this.getSearchServiceName)/g, "this.client.getSearchServiceName") - .replace(/(this.getSearchDnsSuffix)/g, "this.client.getSearchDnsSuffix") - - # Replace VoidResponse with SimpleResponse - - from: - - SkillsetsImpl.java - - DatasetsImpl.java - - DataSourcesImpl.java - - IndexersImpl.java - - IndexesImpl.java - - SynonymMapsImpl.java - where: $ - transform: >- - return $ - .replace(/(import com.azure.core.http.rest.VoidResponse;\n)/g, "") - .replace(/(VoidResponse)/g, "SimpleResponse") - - # Change Field.analyzer/indexAnalyzer/searchAnalyzer's types from enum to string. Update setters and getters. - - change-object-ref-to-string: - path: "$.definitions.Field.properties.analyzer" - - change-object-ref-to-string: - path: "$.definitions.Field.properties.searchAnalyzer" - - change-object-ref-to-string: - path: "$.definitions.Field.properties.indexAnalyzer" - - # Change CustomAnalyzer.tokenizer/tokenFilters/charFilters' types from enum to string. Update setters and getters. - - change-object-ref-to-string: - path: "$.definitions.CustomAnalyzer.properties.tokenizer" - - change-object-ref-to-string: - path: "$.definitions.CustomAnalyzer.properties.tokenFilters.items" - - change-object-ref-to-string: - path: "$.definitions.CustomAnalyzer.properties.charFilters.items" - - - from: - - SearchServiceRestClientImpl.java - where: $ - transform: >- - return $.replace(/(package com.azure.search.implementation;)/g, "$1\nimport com.azure.core.http.rest.RestProxy;") - - - from: - - DataSourceType.java - where: $ - transform: >- - return $ - .replace(/(COSMOS_DB)/g, "COSMOS") + - preview/2025-11-01-preview/search.json +suppressions: + - code: LroExtension + from: search.json + reason: Legacy swagger file ``` -## C# - -These settings apply only when `--csharp` is specified on the command line. -Please also specify `--csharp-sdks-folder=`. - -``` yaml $(csharp) -csharp: - azure-arm: true - license-header: MICROSOFT_MIT_NO_VERSION - namespace: Azure.Search - clear-output-folder: true - output-folder: $(csharp-sdks-folder)/search/Azure.Search/src/Generated - +### Suppression +``` yaml directive: - # TODO: Simplify all the below regexes once we gain the ability to target them at specific files. - - # Rename the IDocumentsOperations interface and implementation, then make the interface internal so we can version it freely. - # This requires these changes: - # 1. Globally rename the interface and implementation class, along with comments and constructors - # 2. Make the interface itself internal - # 3. Make the SearchIndexClient.Documents property internal and rename it to DocumentsProxy - # 4. Rename the type of the ISearchIndexClient.Documents property back to IDocumentsOperations, effectively removing the - # generated property from the interface (this reverses step 1 above just for this case) - # - # The ISearchIndexClient.Documents property is of type IDocumentsOperations, which is hand-written and delegates to DocumentsProxy. - # This allows us to do two things: - # 1. Abstract away the detail of whether GET or POST is used for read operations (Search, Suggest, etc.) - # 2. Add methods with type parameters and custom serialization to make our SDK easier to use in strongly-typed scenarios - # (i.e. -- where the customer is using a class to represent their model because its schema is known at design-time) - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /DocumentsOperations/g, "DocumentsProxyOperations" ). - replace( /public (partial interface IDocumentsProxyOperations)/g, "internal $1" ). - replace( /public virtual (IDocumentsProxyOperations) Documents ({ get;)/g, "internal $1 DocumentsProxy $2" ). - replace( /Documents = new DocumentsProxyOperations\(this\);/g, "DocumentsProxy = new DocumentsProxyOperations\(this\);" ). - replace( /(Gets the) IDocumentsProxyOperations(.\s*\/\/\/ <\/summary>\s*)IDocumentsProxyOperations (Documents { get; })/g, "$1 IDocumentsOperations$2IDocumentsOperations $3" ) -#### - # Adds extra JsonSerializerSettings parameters to all operation methods. This enables the SDK to delegate serialization/de-serialization to the custom serializer on a per-call basis. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(Async\(.*, CancellationToken cancellationToken = default\(CancellationToken\))/g, "$1, Newtonsoft.Json.JsonSerializerSettings requestSerializerSettings = null, Newtonsoft.Json.JsonSerializerSettings responseDeserializerSettings = null" ). - replace( /(DeserializeObject<.+>\(.+), Client\.DeserializationSettings/g, "$1, responseDeserializerSettings ?? Client.DeserializationSettings" ). - replace( /(SerializeObject\(.+), Client\.SerializationSettings/g , "$1, requestSerializerSettings ?? Client.SerializationSettings" ) -#### - # Make GetWithHttpMessagesAsync generic so we can tell the deserializer what type to instantiate. - # ASSUMPTION: Only GetWithHttpMessagesAsync makes a call to DeserializeObject(), and only when it's deserializing the non-error response. - # Ideally we'd be able to more finely target these transform rules. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(Task(> GetWithHttpMessagesAsync)/g, "$1$2" ). - replace( /(DeserializeObject)/g, "$1" ). - replace( /(var _result = new AzureOperationResponse)/g, "$1" ) -#### - # Make SearchRequest/SuggestRequest/AutocompleteRequest internal, since they are implementation details. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /public (partial class) (Suggest|Search|Autocomplete)(Request)/g, "internal $1 $2$3" ) -#### - # Change the documentation for $select for Suggest. The .NET SDK treats this property differently than the REST API - # does by default, and we don't want to change it for backwards compatibility reasons. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(The comma-separated list of fields to retrieve. If unspecified,) only the key field will be included in the results./g, "$1 all fields marked as retrievable in the schema are included." ) -#### - # Make SuggestResult and DocumentSuggestResult generic so we can tell the deserializer what type to instantiate. - # For SuggestResult, this means we also have to replace AdditionalProperties with a property of the generic type. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(public partial class DocumentSuggestResult)/g, "$1" ). - replace( /(IList" ). - replace( /(public partial class SuggestResult)/g, "$1" ). - replace( /(SuggestResult class.\s*\/\/\/ <\/summary>\s*)\/\/\/ Unmatched properties from the\s*\/\/\/ message are deserialized this collection<\/param>/g, "$1/// The document on which the suggested text is based." ). - replace( /(public SuggestResult)\(IDictionary additionalProperties = default\(IDictionary\),/g, "$1(T document = default(T)," ). - replace( /(public SuggestResult\(.*\)\s*{\s*)AdditionalProperties = additionalProperties;/g, "$1Document = document;" ). - replace( /(\/\/\/ \s*\/\/\/) Gets or sets unmatched properties from the message are deserialized\s*\/\/\/ this collection(\s*\/\/\/ <\/summary>\s*)\[JsonExtensionData\]\s*public IDictionary AdditionalProperties { get; set; }(\s*.*\s*\/\/\/ Gets the text of the suggestion result.)/g, "$1 Gets the document on which the suggested text is based. $2public T Document { get; private set; }$3" ). - replace( /(SuggestGetWithHttpMessagesAsync)/g, "$1" ). - replace( /(SuggestPostWithHttpMessagesAsync)/g, "$1" ). - replace( /(AzureOperationResponse" ). - replace( /(DeserializeObject" ) -#### - # Improve documentation for SuggestParameters. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(\/\/\/) Additional parameters for SuggestGet operation./g, "$1 Parameters for filtering, sorting, fuzzy matching, and other suggestions query behaviors." ) -#### - # Make IndexBatch and IndexAction generic so we can provide a strongly-typed interface all the way down. - # For IndexAction, this means we also have to replace AdditionalProperties with a property of the generic type. - # Also use IEnumerable instead of IList for backwards compatibility. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(public partial class IndexBatch)/g, "$1" ). - replace( /IList/g, "IEnumerable>" ). - replace( /(public partial class IndexAction)/g, "$1" ). - replace( /(IndexAction class.\s*\/\/\/ <\/summary>\s*)\/\/\/ Unmatched properties from the\s*\n\s*\/\/\/ message are deserialized this collection<\/param>/g, "$1/// The document on which the action will be performed." ). - replace( /(public IndexAction)\(IDictionary additionalProperties = default\(IDictionary\),/g, "$1(T document = default(T)," ). - replace( /(public IndexAction\(.*\)\s*{\s*)AdditionalProperties = additionalProperties;/g, "$1Document = document;" ). - replace( /(\/\/\/ \s*\n\s*\/\/\/) Gets or sets unmatched properties from the message are deserialized\s*\n\s*\/\/\/ this collection(\s*\n\s*\/\/\/ <\/summary>\s*\n\s*)\[JsonExtensionData\]\s*\n\s*public IDictionary AdditionalProperties ({ get; set; }\s*.*\s*\/\/\/ Gets or sets the operation to perform on a document)/g, "$1 Gets the document on which the action will be performed; Fields other than the key are ignored for delete actions. $2public T Document $3" ). - replace( /(IndexWithHttpMessagesAsync)\((IndexBatch)/g, "$1($2" ) -#### - # Make the constructors and AdditionalProperties property of FacetResult internal. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /public (FacetResult\()/g, "internal $1" ). - replace( /public (IDictionary AdditionalProperties { get; set; }\s*.*\s*\/\/\/ Gets the approximate count of documents falling within the bucket)/g, "internal $1" ) -#### - # Make SearchResult and DocumentSearchResult generic so we can tell the deserializer what type to instantiate. - # For SearchResult, this means we also have to replace AdditionalProperties with a property of the generic type. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(public partial class DocumentSearchResult)/g, "$1" ). - replace( /(IList" ). - replace( /(public partial class SearchResult)/g, "$1" ). - replace( /(SearchResult class.\s*\/\/\/ <\/summary>\s*)\/\/\/ Unmatched properties from the\s*\/\/\/ message are deserialized this collection<\/param>/g, "$1/// The document found by the search query." ). - replace( /(public SearchResult)\(IDictionary additionalProperties = default\(IDictionary\),/g, "$1(T document = default(T)," ). - replace( /(public SearchResult\(.*\)\s*{\s*)AdditionalProperties = additionalProperties;/g, "$1Document = document;" ). - replace( /(\/\/\/ \s*\/\/\/) Gets or sets unmatched properties from the message are deserialized\s*\/\/\/ this collection(\s*\/\/\/ <\/summary>\s*)\[JsonExtensionData\]\s*public IDictionary AdditionalProperties { get; set; }(\s*.*\s*\/\/\/ Gets the relevance score of the document compared to other)/g, "$1 Gets the document found by the search query. $2public T Document { get; private set; }$3" ). - replace( /(SearchGetWithHttpMessagesAsync)/g, "$1" ). - replace( /(SearchPostWithHttpMessagesAsync)/g, "$1" ). - replace( /(AzureOperationResponse" ). - replace( /(DeserializeObject" ) -#### - # Make DocumentSearchResult.NextPageParameters and NextLink internal. The public interface for continuations has - # historically been the custom-written SearchContinuationToken class, and we want to maintain that for backward - # compatibility. Also, NextPageParameters is of type SearchRequest, which is internal. For this reason, we also need - # to make the DocumentSearchResult constructors internal. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /public (SearchRequest NextPageParameters { get; private set; })/g, "internal $1" ). - replace( /public (string NextLink { get; private set; })/g, "internal $1" ). - replace( /public (DocumentSearchResult\()/g, "internal $1" ) -#### - # Improve documentation for SearchParameters and make the ScoringParameters property strongly-typed for ease of use - # and backward compatibility. - # TODO: Remove the check for JsonIgnore in the ScoringParameters regex below once we have the ability to target - # specific files. It is currently necessary in order to only modify the property in SearchParameters and not - # SearchRequest. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(\/\/\/) Additional parameters for SearchGet operation./g, "$1 Parameters for filtering, sorting, faceting, paging, and other search query behaviors." ). - replace( /(public SearchParameters\(.*IList<)string(> scoringParameters = default\(IList<)string/g, "$1ScoringParameter$2ScoringParameter" ). - replace( /(public IList<)string(> ScoringParameters { get; set; }\s*.*\s*.*\s*.*\s*.*\s*\[Newtonsoft.Json.JsonIgnore\])/g, "$1ScoringParameter$2" ). - replace( /(IList<)string(> scoringParameters = default\(IList<)string(>\);\s*if \(searchParameters != null\))/g, "$1ScoringParameter$2ScoringParameter$3" ) -#### - # Split the generated SearchGet and SearchPost methods into separate parts so we can re-use them for ContinueSearch. - # TODO: Simplify the regexes below once we have the ability to target specific files. Later, remove this entirely once - # AutoRest has more flexibility around paging (the current x-ms-pageable implementation doesn't work for us because it - # doesn't model additional top-level response properties or continuation POST requests). - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /(Task>>) (SearchGetWithHttpMessagesAsync)\((.*), (Newtonsoft.Json.JsonSerializerSettings requestSerializerSettings = null, Newtonsoft.Json.JsonSerializerSettings responseDeserializerSettings = null)\);/g, "$1 $2($3, $4);\n\n $1 Continue$2(string url, System.Guid? clientRequestId, Dictionary> customHeaders, bool shouldTrace, string invocationId, CancellationToken cancellationToken, $4);\n" ). - replace( /(Task>>) (SearchPostWithHttpMessagesAsync)\((.*), (Newtonsoft.Json.JsonSerializerSettings requestSerializerSettings = null, Newtonsoft.Json.JsonSerializerSettings responseDeserializerSettings = null)\);/g, "$1 $2($3, $4);\n\n $1 Continue$2(string url, SearchRequest searchRequest, System.Guid? clientRequestId, Dictionary> customHeaders, bool shouldTrace, string invocationId, CancellationToken cancellationToken, $4);\n" ). - replace( /(_queryParameters.Add\(string.Format\("searchMode=\{0\}",.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*)(\/\/ Create HTTP transport objects)/g, "$1return await ContinueSearchGetWithHttpMessagesAsync(_url, clientRequestId, customHeaders, _shouldTrace, _invocationId, cancellationToken, requestSerializerSettings, responseDeserializerSettings).ConfigureAwait(false);\n }\n\n public async Task>> ContinueSearchGetWithHttpMessagesAsync(string _url, System.Guid? clientRequestId, Dictionary> customHeaders, bool _shouldTrace, string _invocationId, CancellationToken cancellationToken, JsonSerializerSettings requestSerializerSettings, JsonSerializerSettings responseDeserializerSettings)\n {\n $2" ). - replace( /(docs\/search.post.search.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*.*\s*)(\/\/ Create HTTP transport objects)/g, "$1return await ContinueSearchPostWithHttpMessagesAsync(_url, searchRequest, clientRequestId, customHeaders, _shouldTrace, _invocationId, cancellationToken, requestSerializerSettings, responseDeserializerSettings).ConfigureAwait(false);\n }\n\n public async Task>> ContinueSearchPostWithHttpMessagesAsync(string _url, SearchRequest searchRequest, System.Guid? clientRequestId, Dictionary> customHeaders, bool _shouldTrace, string _invocationId, CancellationToken cancellationToken, JsonSerializerSettings requestSerializerSettings, JsonSerializerSettings responseDeserializerSettings)\n {\n $2" ) - -# TODO: Remove this workaround once AutoRest fixes the incorrect code generation when using a parameterized host and both client and operation groups paths. - - from: source-file-csharp - where: $ - transform: >- - if ($.includes("class DataSourcesOperations") || $.includes("class IndexersOperations") || - $.includes("class IndexesOperations") || $.includes("class SynonymMapsOperations") || - $.includes("class SkillsetsOperations")) - - return $. - replace( /this.SearchServiceName/g, "Client.SearchServiceName" ). - replace( /this.SearchDnsSuffix/g, "Client.SearchDnsSuffix" ). - replace( /\"Client.SearchServiceName\"/g, "\"this.Client.SearchServiceName\"" ). - replace( /\"Client.SearchDnsSuffix\"/g, "\"this.Client.SearchDnsSuffix\"" ); - return $; -#### - # The following regex are required to make the generated Field class conform to the needs of the custom implementation - # that we've had in the Azure Search .NET SDK since it was first released. We've decided to keep the custom behavior of - # Field just for .NET for the sake of backward compatibility, but for other languages the client behavior will conform - # to the REST API. - # - # To achieve this, we need to make the generated constructors internal, as well as some of the generated properties. - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /public (Field\(\))/g, "internal $1" ). - replace( /public (Field\(string name,)/g, "internal $1" ). - replace( /public (bool\? Key { get; set; })/g, "internal $1" ). - replace( /public (bool\? Retrievable { get; set; })/g, "internal $1" ). - replace( /public (bool\? Searchable { get; set; })/g, "internal $1" ). - replace( /public (bool\? Filterable { get; set; })/g, "internal $1" ). - replace( /public (bool\? Sortable { get; set; })/g, "internal $1" ). - replace( /public (bool\? Facetable { get; set; })/g, "internal $1" ); -``` - -## Multi-API/Profile support for AutoRest v3 generators - -AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files. - -This block is updated by an automatic script. Edits may be lost! - -``` yaml $(tag) == 'all-api-versions' /* autogenerated */ -# include the azure profile definitions from the standard location -require: $(this-folder)/../../../../profiles/readme.md - -# all the input files across all versions -input-file: - - $(this-folder)/preview/2024-05-01-preview/searchservice.json - - $(this-folder)/preview/2024-05-01-preview/searchindex.json - - $(this-folder)/preview/2024-03-01-Preview/searchservice.json - - $(this-folder)/preview/2024-03-01-Preview/searchindex.json - - $(this-folder)/preview/2023-10-01-Preview/searchservice.json - - $(this-folder)/preview/2023-10-01-Preview/searchindex.json - - $(this-folder)/preview/2023-07-01-Preview/searchservice.json - - $(this-folder)/preview/2023-07-01-Preview/searchindex.json - - $(this-folder)/preview/2021-04-30-Preview/searchservice.json - - $(this-folder)/preview/2021-04-30-Preview/searchindex.json - - $(this-folder)/preview/2020-06-30-Preview/searchservice.json - - $(this-folder)/preview/2020-06-30-Preview/searchindex.json - - $(this-folder)/preview/2020-06-30/searchservice.json - - $(this-folder)/preview/2020-06-30/searchindex.json - - $(this-folder)/preview/2019-05-06-preview/searchservice.json - - $(this-folder)/preview/2019-05-06-preview/searchindex.json - - $(this-folder)/stable/2019-05-06/searchservice.json - - $(this-folder)/stable/2019-05-06/searchindex.json - -``` - -If there are files that should not be in the `all-api-versions` set, -uncomment the `exclude-file` section below and add the file paths. - -``` yaml $(tag) == 'all-api-versions' -#exclude-file: -# - $(this-folder)/stable/2010-01-01/somefile.json -``` - -# Code Generation - -## Swagger to SDK - -This section describes what SDK should be generated by the automatic system. -This is not used by Autorest itself. - -``` yaml $(swagger-to-sdk) -swagger-to-sdk: - - repo: azure-sdk-for-net + - suppress: INVALID_TYPE + - suppress: DISCRIMINATOR_VALUE_NOT_FOUND ``` diff --git a/specification/search/data-plane/Search/routes-index.tsp b/specification/search/data-plane/Search/routes-index.tsp new file mode 100644 index 000000000000..5014bd7b86a5 --- /dev/null +++ b/specification/search/data-plane/Search/routes-index.tsp @@ -0,0 +1,190 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models-index.tsp"; + +using TypeSpec.Http; + +namespace Search; + +interface Documents { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Queries the number of documents in the index.") + @route("/indexes('{indexName}')/docs/$count") + @get + count is SearchIndexOperation< + {}, + { + @header contentType: "application/json"; + @body body: int64; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Searches for documents in the index.") + @route("/indexes('{indexName}')/docs") + @get + searchGet is SearchIndexOperation< + { + ...querySourceAuthorizationHeader; + ...enableElevatedReadHeader; + + @doc("A full-text search query expression; Use \"*\" or omit this parameter to match all documents.") + @query("search") + searchText?: string; + + ...SearchOptions; + }, + SearchDocumentsResult & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "206"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Searches for documents in the index.") + @route("/indexes('{indexName}')/docs/search.post.search") + @post + searchPost is SearchIndexOperation< + { + ...querySourceAuthorizationHeader; + ...enableElevatedReadHeader; + ...SearchRequest; + }, + SearchDocumentsResult & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "206"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves a document from the index.") + @route("/indexes('{indexName}')/docs('{key}')") + @get + get is SearchIndexOperation< + { + ...querySourceAuthorizationHeader; + ...enableElevatedReadHeader; + + @doc("The key of the document to retrieve.") + @path + key: string; + + @doc("List of field names to retrieve for the document; Any field not retrieved will be missing from the returned document.") + @query("$select") + selectedFields?: string[]; + }, + LookupDocument + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Suggests documents in the index that match the given partial query text.") + @route("/indexes('{indexName}')/docs/search.suggest") + @get + suggestGet is SearchIndexOperation< + { + @doc("The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters.") + @query("search") + searchText: string; + + @doc("The name of the suggester as specified in the suggesters collection that's part of the index definition.") + @query + suggesterName: string; + + ...SuggestOptions; + }, + SuggestDocumentsResult + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Suggests documents in the index that match the given partial query text.") + @route("/indexes('{indexName}')/docs/search.post.suggest") + @post + suggestPost is SearchIndexOperation< + { + ...SuggestRequest; + }, + SuggestDocumentsResult + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Sends a batch of document write actions to the index.") + @route("/indexes('{indexName}')/docs/search.index") + @post + index is SearchIndexOperation< + { + @doc("The batch of index actions.") + @body + batch: IndexBatch; + }, + IndexDocumentsResult + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Autocompletes incomplete query terms based on input text and matching terms in the index.") + @route("/indexes('{indexName}')/docs/search.autocomplete") + @get + autocompleteGet is SearchIndexOperation< + { + @doc("The incomplete term which should be auto-completed.") + @query("search") + searchText: string; + + @doc("The name of the suggester as specified in the suggesters collection that's part of the index definition.") + @query + suggesterName: string; + + @doc("Specifies the mode for Autocomplete. The default is 'oneTerm'. Use 'twoTerms' to get shingles and 'oneTermWithContext' to use the current context while producing auto-completed terms.") + @query + autocompleteMode?: AutocompleteMode; + + @doc("An OData expression that filters the documents used to produce completed terms for the Autocomplete result.") + @query + $filter?: string; + + @doc("A value indicating whether to use fuzzy matching for the autocomplete query. Default is false. When set to true, the query will find terms even if there's a substituted or missing character in the search text. While this provides a better experience in some scenarios, it comes at a performance cost as fuzzy autocomplete queries are slower and consume more resources.") + @query("fuzzy") + useFuzzyMatching?: boolean; + + @doc("A string tag that is appended to hit highlights. Must be set with highlightPreTag. If omitted, hit highlighting is disabled.") + @query + highlightPostTag?: string; + + @doc("A string tag that is prepended to hit highlights. Must be set with highlightPostTag. If omitted, hit highlighting is disabled.") + @query + highlightPreTag?: string; + + @doc("A number between 0 and 100 indicating the percentage of the index that must be covered by an autocomplete query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 80.") + @query + minimumCoverage?: float64; + + @doc("The list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester.") + @query + searchFields?: string[]; + + @doc("The number of auto-completed terms to retrieve. This must be a value between 1 and 100. The default is 5.") + @query + $top?: int32; + }, + AutocompleteResult + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Autocompletes incomplete query terms based on input text and matching terms in the index.") + @route("/indexes('{indexName}')/docs/search.post.autocomplete") + @post + autocompletePost is SearchIndexOperation< + { + ...AutocompleteRequest; + }, + AutocompleteResult + >; +} diff --git a/specification/search/data-plane/Search/routes-knowledgebase.tsp b/specification/search/data-plane/Search/routes-knowledgebase.tsp new file mode 100644 index 000000000000..a6d9cd12c1d5 --- /dev/null +++ b/specification/search/data-plane/Search/routes-knowledgebase.tsp @@ -0,0 +1,34 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models-knowledgebase.tsp"; + +using TypeSpec.Http; +using Azure.Core; + +namespace Search; + +@route("/knowledgebases('{knowledgeBaseName}')") +interface KnowledgeRetrieval { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("KnowledgeBase retrieves relevant data from backing stores.") + @route("/retrieve") + @post + retrieve is Foundations.Operation< + { + @doc("The name of the knowledge base.") + @path + knowledgeBaseName: string; + + @doc("Token identifying the user for which the query is being executed. This token is used to enforce security restrictions on documents.") + @header("x-ms-query-source-authorization") + querySourceAuthorization?: string; + + @doc("The retrieval request to process.") + @body + retrievalRequest: KnowledgeBaseRetrievalRequest; + } & ClientRequestIdHeader, + KnowledgeBaseRetrievalSuccessResponse | KnowledgeBaseRetrievalPartialResponse, + {}, + ErrorResponse + >; +} diff --git a/specification/search/data-plane/Search/routes-service.tsp b/specification/search/data-plane/Search/routes-service.tsp new file mode 100644 index 000000000000..15b513cc9188 --- /dev/null +++ b/specification/search/data-plane/Search/routes-service.tsp @@ -0,0 +1,723 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models-service.tsp"; + +using TypeSpec.Http; +using TypeSpec.Versioning; + +namespace Search; + +interface DataSources { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new datasource or updates a datasource if it already exists.") + @route("/datasources('{dataSourceName}')") + @put + createOrUpdate is SearchDataSourceOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("Ignores cache reset requirements.") + @query("ignoreResetRequirements") + skipIndexerResetRequirementForCache?: boolean; + + @doc("The definition of the datasource to create or update.") + @body + dataSource: SearchIndexerDataSource; + }, + SearchIndexerDataSource & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes a datasource.") + @route("/datasources('{dataSourceName}')") + @delete + delete is SearchDataSourceOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves a datasource definition.") + @route("/datasources('{dataSourceName}')") + @get + get is SearchDataSourceOperation<{}, SearchIndexerDataSource>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all datasources available for a search service.") + @route("/datasources") + @get + list is SearchOperation; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new datasource.") + @route("/datasources") + @post + create is SearchOperation< + { + @doc("The definition of the datasource to create.") + @body + dataSource: SearchIndexerDataSource; + }, + SearchIndexerDataSource & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; +} + +interface Indexers { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Resets the change tracking state associated with an indexer.") + @route("/indexers('{indexerName}')/search.reset") + @post + reset is SearchIndexerOperation< + {}, + { + @doc("A process exit code.") + @statusCode + code: "204"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Resync selective options from the datasource to be re-ingested by the indexer.\"") + @route("/indexers('{indexerName}')/search.resync") + @post + resync is SearchIndexerOperation< + { + @doc("The definition of the indexer resync options.") + @body + indexerResync: IndexerResyncBody; + }, + { + @doc("A process exit code.") + @statusCode + code: "204"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Resets specific documents in the datasource to be selectively re-ingested by the indexer.") + @route("/indexers('{indexerName}')/search.resetdocs") + @post + resetDocs is SearchIndexerOperation< + { + @doc("If false, keys or ids will be appended to existing ones. If true, only the keys or ids in this payload will be queued to be re-ingested.") + @query + overwrite?: boolean = false; + + @doc("The keys or ids of the documents to be re-ingested. If keys are provided, the document key field must be specified in the indexer configuration. If ids are provided, the document key field is ignored.") + @body + keysOrIds?: DocumentKeysOrIds; + }, + { + @doc("A process exit code.") + @statusCode + code: "204"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Runs an indexer on-demand.") + @route("/indexers('{indexerName}')/search.run") + @post + run is SearchIndexerOperation< + {}, + { + @doc("A process exit code.") + @statusCode + code: "202"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new indexer or updates an indexer if it already exists.") + @route("/indexers('{indexerName}')") + @put + createOrUpdate is SearchIndexerOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("Ignores cache reset requirements.") + @query("ignoreResetRequirements") + skipIndexerResetRequirementForCache?: boolean; + + @doc("Disables cache reprocessing change detection.") + @query("disableCacheReprocessingChangeDetection") + disableCacheReprocessingChangeDetection?: boolean; + + @doc("The definition of the indexer to create or update.") + @body + indexer: SearchIndexer; + }, + SearchIndexer & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes an indexer.") + @route("/indexers('{indexerName}')") + @delete + delete is SearchIndexerOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Retrieves an indexer definition.") + @route("/indexers('{indexerName}')") + @get + get is SearchIndexerOperation<{}, SearchIndexer>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all indexers available for a search service.") + @route("/indexers") + @get + list is SearchOperation; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new indexer.") + @route("/indexers") + @post + create is SearchOperation< + { + @doc("The definition of the indexer to create.") + @body + indexer: SearchIndexer; + }, + SearchIndexer & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Returns the current status and execution history of an indexer.") + @route("/indexers('{indexerName}')/search.status") + @get + getStatus is SearchIndexerOperation<{}, SearchIndexerStatus>; +} + +interface Skillsets { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new skillset in a search service or updates the skillset if it already exists.") + @route("/skillsets('{skillsetName}')") + @put + createOrUpdate is SearchSkillsetOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("Ignores cache reset requirements.") + @query("ignoreResetRequirements") + skipIndexerResetRequirementForCache?: boolean; + + @doc("Disables cache reprocessing change detection.") + @query("disableCacheReprocessingChangeDetection") + disableCacheReprocessingChangeDetection?: boolean; + + @doc("The skillset containing one or more skills to create or update in a search service.") + @body + skillset: SearchIndexerSkillset; + }, + SearchIndexerSkillset & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Deletes a skillset in a search service.") + @route("/skillsets('{skillsetName}')") + @delete + delete is SearchSkillsetOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves a skillset in a search service.") + @route("/skillsets('{skillsetName}')") + @get + get is SearchSkillsetOperation<{}, SearchIndexerSkillset>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("List all skillsets in a search service.") + @route("/skillsets") + @get + list is SearchOperation; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new skillset in a search service.") + @route("/skillsets") + @post + create is SearchOperation< + { + @doc("The skillset containing one or more skills to create in a search service.") + @body + skillset: SearchIndexerSkillset; + }, + SearchIndexerSkillset & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Reset an existing skillset in a search service.") + @route("/skillsets('{skillsetName}')/search.resetskills") + @post + resetSkills is SearchSkillsetOperation< + { + @doc("The names of the skills to reset. If not specified, all skills in the skillset will be reset.") + @body + skillNames: SkillNames; + }, + void + >; +} + +interface SynonymMaps { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new synonym map or updates a synonym map if it already exists.") + @route("/synonymmaps('{synonymMapName}')") + @put + createOrUpdate is SearchSynonymMapOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("The definition of the synonym map to create or update.") + @body + synonymMap: SynonymMap; + }, + SynonymMap & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes a synonym map.") + @route("/synonymmaps('{synonymMapName}')") + @delete + delete is SearchSynonymMapOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Retrieves a synonym map definition.") + @route("/synonymmaps('{synonymMapName}')") + @get + get is SearchSynonymMapOperation<{}, SynonymMap>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all synonym maps available for a search service.") + @route("/synonymmaps") + @get + list is SearchOperation; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new synonym map.") + @route("/synonymmaps") + @post + create is SearchOperation< + { + @doc("The definition of the synonym map to create.") + @body + synonymMap: SynonymMap; + }, + SynonymMap & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; +} + +interface Indexes { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new search index.") + @route("/indexes") + @post + create is SearchOperation< + { + @doc("The definition of the index to create.") + @body + index: SearchIndex; + }, + SearchIndex & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all indexes available for a search service.") + @route("/indexes") + @list + @get + list is SearchOperation; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new search index or updates an index if it already exists.") + @route("/indexes('{indexName}')") + @put + createOrUpdate is SearchIndexOperation< + { + ...matchingHeader; + + @doc("Allows new analyzers, tokenizers, token filters, or char filters to be added to an index by taking the index offline for at least a few seconds. This temporarily causes indexing and query requests to fail. Performance and write availability of the index can be impaired for several minutes after the index is updated, or longer for very large indexes.") + @query + allowIndexDowntime?: boolean; + + ...preferHeader; + + @doc("The definition of the index to create or update.") + @body + index: SearchIndex; + }, + SearchIndex & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes a search index and all the documents it contains. This operation is permanent, with no recovery option. Make sure you have a master copy of your index definition, data ingestion code, and a backup of the primary data source in case you need to re-build the index.") + @route("/indexes('{indexName}')") + @delete + delete is SearchIndexOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves an index definition.") + @route("/indexes('{indexName}')") + @get + get is SearchIndexOperation<{}, SearchIndex>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Returns statistics for the given index, including a document count and storage usage.") + @route("/indexes('{indexName}')/search.stats") + @get + getStatistics is SearchIndexOperation<{}, GetIndexStatisticsResult>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Shows how an analyzer breaks text into tokens.") + @route("/indexes('{indexName}')/search.analyze") + @post + analyze is SearchIndexOperation< + { + @doc("The text and analyzer or analysis components to test.") + @body + request: AnalyzeRequest; + }, + AnalyzeResult + >; +} + +interface Aliases { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new search alias.") + @route("/aliases") + @post + create is SearchOperation< + { + @doc("The definition of the alias to create.") + @body + `alias`: SearchAlias; + }, + SearchAlias & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all aliases available for a search service.") + @route("/aliases") + @list + @get + list is SearchOperation<{}, ListAliasesResult>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new search alias or updates an alias if it already exists.") + @route("/aliases('{aliasName}')") + @put + createOrUpdate is SearchAliasOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("The definition of the alias to create or update.") + @body + `alias`: SearchAlias; + }, + SearchAlias & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes a search alias and its associated mapping to an index. This operation is permanent, with no recovery option. The mapped index is untouched by this operation.") + @route("/aliases('{aliasName}')") + @delete + delete is SearchAliasOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves an alias definition.") + @route("/aliases('{aliasName}')") + @get + get is SearchAliasOperation<{}, SearchAlias>; +} + +interface KnowledgeBases { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new knowledge base.") + @route("/knowledgebases") + @post + create is SearchOperation< + { + @doc("The definition of the knowledge base to create.") + @body + knowledgeBase: KnowledgeBase; + }, + KnowledgeBase & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all knowledge bases available for a search service.") + @route("/knowledgebases") + @list + @get + list is SearchOperation<{}, ListKnowledgeBasesResult>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new knowledge base or updates a knowledge base if it already exists.") + @route("/knowledgebases('{knowledgeBaseName}')") + @put + createOrUpdate is SearchKnowledgeBaseOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("The definition of the knowledge base to create or update.") + @body + knowledgeBase: KnowledgeBase; + }, + KnowledgeBase & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes a knowledge base.") + @route("/knowledgebases('{knowledgeBaseName}')") + @delete + delete is SearchKnowledgeBaseOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves a knowledge base definition.") + @route("/knowledgebases('{knowledgeBaseName}')") + @get + get is SearchKnowledgeBaseOperation<{}, KnowledgeBase>; +} + +interface KnowledgeSources { + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Creates a new knowledge source.") + @route("/knowledgesources") + @post + create is SearchOperation< + { + @doc("The definition of the knowledge source to create.") + @body + knowledgeSource: KnowledgeSource; + }, + KnowledgeSource & { + @doc("A process exit code.") + @statusCode + code: "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Lists all knowledge sources available for a search service.") + @route("/knowledgesources") + @list + @get + list is SearchOperation<{}, ListKnowledgeSourcesResult>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + @doc("Creates a new knowledge source or updates an knowledge source if it already exists.") + @route("/knowledgesources('{sourceName}')") + @put + createOrUpdate is SearchSourceOperation< + { + ...matchingHeader; + ...preferHeader; + + @doc("The definition of the knowledge source to create or update.") + @body + knowledgeSource: KnowledgeSource; + }, + KnowledgeSource & { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "200" | "201"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Deletes an existing knowledge source.") + @route("/knowledgesources('{sourceName}')") + @delete + delete is SearchSourceOperation< + { + ...matchingHeader; + }, + { + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "return status code" + @doc("A process exit code.") + @statusCode + code: "204" | "404"; + } + >; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves a knowledge source definition.") + @route("/knowledgesources('{sourceName}')") + @get + get is SearchSourceOperation<{}, KnowledgeSource>; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + @doc("Retrieves the status of a knowledge source.") + @route("/knowledgesources('{sourceName}')/status") + @get + getStatus is SearchSourceOperation<{}, KnowledgeSourceStatus>; +} + +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" +@doc("Gets service level statistics for a search service.") +@route("/servicestats") +@get +op getServiceStatistics is SearchOperation<{}, SearchServiceStatistics>; + +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" +@doc("Retrieves a summary of statistics for all indexes in the search service.") +@route("/indexstats") +@list +@get +op getIndexStatsSummary is SearchOperation<{}, ListIndexStatsSummary>; diff --git a/specification/search/data-plane/Search/suppressions.yaml b/specification/search/data-plane/Search/suppressions.yaml index 255643beee23..e35f654083cf 100644 --- a/specification/search/data-plane/Search/suppressions.yaml +++ b/specification/search/data-plane/Search/suppressions.yaml @@ -37,9 +37,6 @@ - tool: TypeSpecRequirement path: ./preview/2025-08-01-preview/*.json reason: Brownfield service not ready to migrate -- tool: TypeSpecRequirement - path: ./preview/2025-11-01-preview/*.json - reason: Brownfield service not ready to migrate # Stable API versions - tool: TypeSpecRequirement path: ./stable/2019-05-06/*.json diff --git a/specification/search/data-plane/Search/tspconfig.yaml b/specification/search/data-plane/Search/tspconfig.yaml new file mode 100644 index 000000000000..0ad6732d12c7 --- /dev/null +++ b/specification/search/data-plane/Search/tspconfig.yaml @@ -0,0 +1,54 @@ +parameters: + "service-dir": + default: "sdk/search" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + azure-resource-provider-folder: "data-plane" + emitter-output-dir: "{project-root}" + output-file: "{version-status}/{version}/search.json" + "@azure-tools/typespec-python": + package-dir: "azure-search-documents" + package-name: "{package-dir}" + flavor: azure + emitter-output-dir: "{output-dir}/{service-dir}/azure-search-documents" + "@azure-tools/typespec-csharp": + package-dir: "Azure.Search.Documents" + namespace: "Azure.Search.Documents" + clear-output-folder: true + model-namespace: false + flavor: azure + emitter-output-dir: "{output-dir}/{service-dir}/Azure.Search.Documents" + "@azure-typespec/http-client-csharp": + namespace: "Azure.Search.Documents" + model-namespace: false + "@azure-tools/typespec-ts": + emitter-output-dir: "{output-dir}/{service-dir}/search-documents" + generate-metadata: false + generate-test: false + experimental-extensible-enums: true + is-modular-library: true + enable-model-namespace: false + package-details: + name: "@azure/search-documents" + flavor: azure + "@azure-tools/typespec-java": + package-dir: "azure-search-documents" + namespace: "com.azure.search.documents" + flavor: azure + emitter-output-dir: "{output-dir}/{service-dir}/azure-search-documents" + "@azure-tools/typespec-go": + service-dir: "sdk/search/azsearchdocuments" + package-dir: "azsearchdocuments" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/{package-dir}" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true + emitter-output-dir: "{output-dir}/{service-dir}/azsearchdocuments" +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/data-plane" From fd8fd88708d4a1e2bc3d7f064d295b17fb4fa3f7 Mon Sep 17 00:00:00 2001 From: Charles Lowell <10964656+chlowell@users.noreply.github.com> Date: Fri, 12 Dec 2025 12:05:38 -0800 Subject: [PATCH 011/117] Omit constructors for Rust Key Vault clients (#39209) --- .../keyvault/Security.KeyVault.Certificates/tspconfig.yaml | 1 + specification/keyvault/Security.KeyVault.Keys/tspconfig.yaml | 1 + specification/keyvault/Security.KeyVault.Secrets/tspconfig.yaml | 1 + 3 files changed, 3 insertions(+) diff --git a/specification/keyvault/Security.KeyVault.Certificates/tspconfig.yaml b/specification/keyvault/Security.KeyVault.Certificates/tspconfig.yaml index df79228cf6fb..6da3fc8c8e48 100644 --- a/specification/keyvault/Security.KeyVault.Certificates/tspconfig.yaml +++ b/specification/keyvault/Security.KeyVault.Certificates/tspconfig.yaml @@ -62,6 +62,7 @@ options: crate-name: "azure_security_keyvault_certificates" crate-version: "0.0.1" emitter-output-dir: "{output-dir}/{service-dir}/{crate-name}" + omit-constructors: true "@azure-tools/typespec-client-generator-cli": additionalDirectories: - "specification/keyvault/Security.KeyVault.Common/" diff --git a/specification/keyvault/Security.KeyVault.Keys/tspconfig.yaml b/specification/keyvault/Security.KeyVault.Keys/tspconfig.yaml index 5f2d18f3741d..dedfd38e740b 100644 --- a/specification/keyvault/Security.KeyVault.Keys/tspconfig.yaml +++ b/specification/keyvault/Security.KeyVault.Keys/tspconfig.yaml @@ -61,6 +61,7 @@ options: crate-name: "azure_security_keyvault_keys" crate-version: "0.0.1" emitter-output-dir: "{output-dir}/{service-dir}/{crate-name}" + omit-constructors: true "@azure-tools/typespec-client-generator-cli": additionalDirectories: - "specification/keyvault/Security.KeyVault.Common/" diff --git a/specification/keyvault/Security.KeyVault.Secrets/tspconfig.yaml b/specification/keyvault/Security.KeyVault.Secrets/tspconfig.yaml index 10db0f9954dd..0bd1fea8a30b 100644 --- a/specification/keyvault/Security.KeyVault.Secrets/tspconfig.yaml +++ b/specification/keyvault/Security.KeyVault.Secrets/tspconfig.yaml @@ -60,6 +60,7 @@ options: crate-name: "azure_security_keyvault_secrets" crate-version: "0.0.1" emitter-output-dir: "{output-dir}/{service-dir}/{crate-name}" + omit-constructors: true "@azure-tools/typespec-client-generator-cli": additionalDirectories: - "specification/keyvault/Security.KeyVault.Common/" From 2f23a4cf643c6a7aec42dd078afadf34019af7d4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Dec 2025 12:07:31 -0800 Subject: [PATCH 012/117] build(deps): bump actions/upload-artifact from 5 to 6 (#39223) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/_reusable-eng-tools-test.yaml | 2 +- .github/workflows/avocado-code.yaml | 2 +- .github/workflows/breaking-change-code.yaml | 2 +- .github/workflows/breaking-change-cross-version-code.yaml | 2 +- .github/workflows/github-test.yaml | 2 +- .github/workflows/lintdiff-code.yaml | 2 +- .github/workflows/summarize-checks.yaml | 2 +- .github/workflows/summarize-impact.yaml | 2 +- .github/workflows/swagger-modelvalidation-code.yaml | 2 +- .github/workflows/swagger-semanticvalidation-code.yaml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/_reusable-eng-tools-test.yaml b/.github/workflows/_reusable-eng-tools-test.yaml index 0167d14955f5..8c16f2dfee57 100644 --- a/.github/workflows/_reusable-eng-tools-test.yaml +++ b/.github/workflows/_reusable-eng-tools-test.yaml @@ -67,7 +67,7 @@ jobs: working-directory: ./eng/tools/${{ inputs.package }} - name: Archive code coverage results - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: code-coverage-report-${{ matrix.os }}-${{ matrix.node-version }} path: ./eng/tools/${{ inputs.package }}/coverage diff --git a/.github/workflows/avocado-code.yaml b/.github/workflows/avocado-code.yaml index 89406bb73442..318d27b40378 100644 --- a/.github/workflows/avocado-code.yaml +++ b/.github/workflows/avocado-code.yaml @@ -92,7 +92,7 @@ jobs: # Used by other workflows like set-status - name: Set job-summary artifact if: ${{ always() && steps.generate-job-summary.outputs.summary }} - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: job-summary path: ${{ steps.generate-job-summary.outputs.summary }} diff --git a/.github/workflows/breaking-change-code.yaml b/.github/workflows/breaking-change-code.yaml index 2a830b8b76c0..d456e10ac471 100644 --- a/.github/workflows/breaking-change-code.yaml +++ b/.github/workflows/breaking-change-code.yaml @@ -68,7 +68,7 @@ jobs: # Used by other workflows like set-status - name: Set job-summary artifact if: ${{ always() && steps.swagger-breaking-change-analyze-code.outputs.summary }} - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: job-summary path: ${{ steps.swagger-breaking-change-analyze-code.outputs.summary }} diff --git a/.github/workflows/breaking-change-cross-version-code.yaml b/.github/workflows/breaking-change-cross-version-code.yaml index 0e84fc53253b..721215258172 100644 --- a/.github/workflows/breaking-change-cross-version-code.yaml +++ b/.github/workflows/breaking-change-cross-version-code.yaml @@ -69,7 +69,7 @@ jobs: # Used by other workflows like set-status - name: Set job-summary artifact if: ${{ always() && steps.breaking-change-cross-version-analyze-code.outputs.summary }} - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: job-summary path: ${{ steps.breaking-change-cross-version-analyze-code.outputs.summary }} diff --git a/.github/workflows/github-test.yaml b/.github/workflows/github-test.yaml index b8e59fd7899f..e2523e4d431a 100644 --- a/.github/workflows/github-test.yaml +++ b/.github/workflows/github-test.yaml @@ -79,7 +79,7 @@ jobs: - run: npm run test:ci - name: Archive code coverage results - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: code-coverage-report-${{ matrix.os }}-${{ fromJSON('{".github":"github", ".github/shared":"github-shared"}')[matrix.folder] }} path: ./${{ matrix.folder }}/coverage diff --git a/.github/workflows/lintdiff-code.yaml b/.github/workflows/lintdiff-code.yaml index 3c3d987f635f..31da069de4ca 100644 --- a/.github/workflows/lintdiff-code.yaml +++ b/.github/workflows/lintdiff-code.yaml @@ -80,7 +80,7 @@ jobs: # Used by other workflows like set-status - name: Set job-summary artifact if: ${{ always() && steps.run-lintdiff.outputs.summary }} - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: job-summary path: ${{ steps.run-lintdiff.outputs.summary }} diff --git a/.github/workflows/summarize-checks.yaml b/.github/workflows/summarize-checks.yaml index cfc35b4551d9..178fde9e12ce 100644 --- a/.github/workflows/summarize-checks.yaml +++ b/.github/workflows/summarize-checks.yaml @@ -84,7 +84,7 @@ jobs: # May be used by downstream workflows - name: Set job-summary artifact if: ${{ always() && steps.summarize-checks.outputs.summary }} - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: job-summary path: ${{ steps.summarize-checks.outputs.summary }} diff --git a/.github/workflows/summarize-impact.yaml b/.github/workflows/summarize-impact.yaml index 70516377e323..2b8976a3412e 100644 --- a/.github/workflows/summarize-impact.yaml +++ b/.github/workflows/summarize-impact.yaml @@ -57,7 +57,7 @@ jobs: - name: Set job-summary artifact if: ${{ always() && steps.summarize-impact.outputs.summary }} - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: job-summary path: ${{ steps.summarize-impact.outputs.summary }} diff --git a/.github/workflows/swagger-modelvalidation-code.yaml b/.github/workflows/swagger-modelvalidation-code.yaml index d9ef7790b858..d1c0a978aaac 100644 --- a/.github/workflows/swagger-modelvalidation-code.yaml +++ b/.github/workflows/swagger-modelvalidation-code.yaml @@ -36,7 +36,7 @@ jobs: # Used by other workflows like set-status - name: Set job-summary artifact if: ${{ always() && steps.swagger-model-validation.outputs.summary }} - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: job-summary path: ${{ steps.swagger-model-validation.outputs.summary }} diff --git a/.github/workflows/swagger-semanticvalidation-code.yaml b/.github/workflows/swagger-semanticvalidation-code.yaml index 851271c1562d..3322210b2502 100644 --- a/.github/workflows/swagger-semanticvalidation-code.yaml +++ b/.github/workflows/swagger-semanticvalidation-code.yaml @@ -36,7 +36,7 @@ jobs: # Used by other workflows like set-status - name: Set job-summary artifact if: ${{ always() && steps.swagger-semantic-validation.outputs.summary }} - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: job-summary path: ${{ steps.swagger-semantic-validation.outputs.summary }} From 8881d4f8a817c9da7813c05351fed1103c90fb29 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Dec 2025 12:09:47 -0800 Subject: [PATCH 013/117] build(deps): bump github/codeql-action from 3 to 4 (#39224) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v3...v4) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index 0d0b8d2bf99b..a4974c6c2c15 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -87,7 +87,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v3 + uses: github/codeql-action/init@v4 with: languages: ${{ matrix.language }} build-mode: ${{ matrix.build-mode }} @@ -116,6 +116,6 @@ jobs: exit 1 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 + uses: github/codeql-action/analyze@v4 with: category: "/language:${{matrix.language}}" From 2264e38de2849d0fc57bae100601f81ca6c87a2d Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Fri, 12 Dec 2025 12:32:08 -0800 Subject: [PATCH 014/117] [EngSys] Update default node version from 22 to 24 (#39227) --- .github/actions/setup-node-install-deps/action.yaml | 2 +- .github/workflows/_reusable-eng-tools-test.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/setup-node-install-deps/action.yaml b/.github/actions/setup-node-install-deps/action.yaml index a9e6a548d9bb..724cf236cefd 100644 --- a/.github/actions/setup-node-install-deps/action.yaml +++ b/.github/actions/setup-node-install-deps/action.yaml @@ -4,7 +4,7 @@ description: Uses specified Node version and installs dependencies (typically us inputs: node-version: description: "Node version to use" - default: 22.x + default: 24.x install-command: description: "Command to install dependencies" default: "npm ci" diff --git a/.github/workflows/_reusable-eng-tools-test.yaml b/.github/workflows/_reusable-eng-tools-test.yaml index 8c16f2dfee57..20efdb95f23e 100644 --- a/.github/workflows/_reusable-eng-tools-test.yaml +++ b/.github/workflows/_reusable-eng-tools-test.yaml @@ -24,10 +24,10 @@ jobs: strategy: matrix: os: [ubuntu, windows] - node-version: [20, 22] + node-version: [20, 24] exclude: - os: ubuntu - node-version: 22 + node-version: 24 - os: windows node-version: 20 From 47e860174ed8b0d6cfd9ee96d7022edc83120945 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Fri, 12 Dec 2025 13:16:59 -0800 Subject: [PATCH 015/117] Add 'APIView prod deployment' to internal service connections (#39216) Co-authored-by: Wes Haggard --- eng/common/pipelines/templates/jobs/prepare-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/common/pipelines/templates/jobs/prepare-pipelines.yml b/eng/common/pipelines/templates/jobs/prepare-pipelines.yml index 0e54b11a1e87..906a9bfcf1fe 100644 --- a/eng/common/pipelines/templates/jobs/prepare-pipelines.yml +++ b/eng/common/pipelines/templates/jobs/prepare-pipelines.yml @@ -82,7 +82,7 @@ jobs: $generateUnifiedWeekly = 'false' $testServiceConnections = '"Azure" "azure-sdk-tests" "azure-sdk-tests-preview" "azure-sdk-tests-public" "Azure SDK Test Resources - LiveTestSecrets"' - $internalServiceConnections = '"Azure" "Azure SDK Artifacts" "Azure SDK Engineering System" "opensource-api-connection" "AzureSDKEngKeyVault Secrets" "Azure SDK PME Managed Identity"' + $internalServiceConnections = '"Azure" "Azure SDK Artifacts" "Azure SDK Engineering System" "opensource-api-connection" "AzureSDKEngKeyVault Secrets" "Azure SDK PME Managed Identity" "APIView prod deployment"' # Map the language to the appropriate variable groups switch ($lang) From 924f33266d74f20947c4d28a31556ef4ed7663a6 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Fri, 12 Dec 2025 14:59:56 -0800 Subject: [PATCH 016/117] [EngSys] Update default node version from 22 to 24 (part 2) (#39228) --- eng/pipelines/templates/variables/globals.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/templates/variables/globals.yml b/eng/pipelines/templates/variables/globals.yml index df441a545397..1897eff346c8 100644 --- a/eng/pipelines/templates/variables/globals.yml +++ b/eng/pipelines/templates/variables/globals.yml @@ -1,2 +1,2 @@ variables: - NodeVersion: "22.x" + NodeVersion: "24.x" From 4b2c9cb323393710cf7949409d564a12dc9bde35 Mon Sep 17 00:00:00 2001 From: Yuqing Wei Date: Fri, 12 Dec 2025 15:51:17 -0800 Subject: [PATCH 017/117] Improve Description Per feedback (#39220) --- .../preview/2025-10-01-preview/databricks.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/preview/2025-10-01-preview/databricks.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/preview/2025-10-01-preview/databricks.json index 8907ec3b17a5..a1d8f3a57eef 100644 --- a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/preview/2025-10-01-preview/databricks.json +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/preview/2025-10-01-preview/databricks.json @@ -860,7 +860,7 @@ }, "publicNetworkAccess": { "type": "string", - "description": "The network access type for accessing workspace. Set value to disabled to access workspace only via private link. Used to config frontend Only private link for Serverless ComputeMode workspace.", + "description": "The network access type for accessing workspace. Set value to disabled to access workspace only via private link. Used to configure front-end only private link for Serverless ComputeMode workspace.", "enum": [ "Enabled", "Disabled" @@ -1262,15 +1262,15 @@ }, "customVirtualNetworkId": { "$ref": "#/definitions/WorkspaceCustomStringParameter", - "description": "The ID of a Virtual Network where this Databricks Cluster should be created. Required in Hybrid ComputeMode. Not allowed in Serverless ComputeMode workspace." + "description": "The ID of a Virtual Network where this Databricks Cluster should be created. Not allowed in Serverless ComputeMode workspace." }, "customPublicSubnetName": { "$ref": "#/definitions/WorkspaceCustomStringParameter", - "description": "The name of a Public Subnet within the Virtual Network. Required in Hybrid ComputeMode. Not allowed in Serverless ComputeMode workspace." + "description": "The name of a Public Subnet within the Virtual Network. Not allowed in Serverless ComputeMode workspace." }, "customPrivateSubnetName": { "$ref": "#/definitions/WorkspaceCustomStringParameter", - "description": "The name of the Private Subnet within the Virtual Network. Required in Hybrid ComputeMode. Not allowed in Serverless ComputeMode workspace." + "description": "The name of the Private Subnet within the Virtual Network. Not allowed in Serverless ComputeMode workspace." }, "enableNoPublicIp": { "$ref": "#/definitions/WorkspaceNoPublicIPBooleanParameter", @@ -1322,7 +1322,7 @@ "description": "Tags applied to resources under Managed resource group. These can be updated by updating tags at workspace level. Not allowed in Serverless ComputeMode workspace." } }, - "description": "Custom Parameters used for Cluster Creation. The customVirtualNetworkId, customPublicSubnetName, customPrivateSubnetName are required for Hybrid ComputeMode. Not allowed in Serverless ComputeMode workspace." + "description": "Custom Parameters used for Cluster Creation. Not allowed in Serverless ComputeMode workspace." }, "CreatedDateTime": { "type": "string", From 13d73d3df723b1dce42f474af92bbde28d7cab79 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Fri, 12 Dec 2025 16:48:36 -0800 Subject: [PATCH 018/117] [search] tsp format (#39230) --- specification/search/data-plane/Search/client.tsp | 5 ++++- specification/search/data-plane/Search/models-service.tsp | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/specification/search/data-plane/Search/client.tsp b/specification/search/data-plane/Search/client.tsp index fb9e3fd23e3e..981951706bb1 100644 --- a/specification/search/data-plane/Search/client.tsp +++ b/specification/search/data-plane/Search/client.tsp @@ -2720,7 +2720,10 @@ namespace KnowledgeBaseRetrievalClient { @@clientName(LuceneStandardTokenizer.`@odata.type`, "odataType"); @@clientName(LuceneStandardTokenizer.`@odata.type`, "odatatype", "javascript"); @@clientName(LuceneStandardTokenizerV2.`@odata.type`, "odataType"); -@@clientName(LuceneStandardTokenizerV2.`@odata.type`, "odatatype", "javascript"); +@@clientName(LuceneStandardTokenizerV2.`@odata.type`, + "odatatype", + "javascript" +); @@clientName(UaxUrlEmailTokenizer.`@odata.type`, "odataType"); @@clientName(UaxUrlEmailTokenizer.`@odata.type`, "odatatype", "javascript"); @@clientName(AsciiFoldingTokenFilter.`@odata.type`, "odataType"); diff --git a/specification/search/data-plane/Search/models-service.tsp b/specification/search/data-plane/Search/models-service.tsp index c179c97e6e36..119b9926c46d 100644 --- a/specification/search/data-plane/Search/models-service.tsp +++ b/specification/search/data-plane/Search/models-service.tsp @@ -5109,8 +5109,8 @@ model DictionaryDecompounderTokenFilter extends TokenFilter { } #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." -@doc("Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.") #deprecated "EdgeNGramTokenFilter is deprecated. Use EdgeNGramTokenFilterV2 instead." +@doc("Generates n-grams of the given size(s) starting from the front or the back of an input token. This token filter is implemented using Apache Lucene.") model EdgeNGramTokenFilter extends TokenFilter { @doc("The minimum n-gram length. Default is 1. Must be less than the value of maxGram.") minGram?: int32 = 1; @@ -5210,8 +5210,8 @@ model LimitTokenFilter extends TokenFilter { } #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." -@doc("Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.") #deprecated "NGramTokenFilter is deprecated. Use NGramTokenFilterV2 instead." +@doc("Generates n-grams of the given size(s). This token filter is implemented using Apache Lucene.") model NGramTokenFilter extends TokenFilter { @doc("The minimum n-gram length. Default is 1. Must be less than the value of maxGram.") minGram?: int32 = 1; From de800592ca9c15e5ece193d67009bdf972f2f420 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Dec 2025 17:14:34 -0800 Subject: [PATCH 019/117] build(deps): bump actions/github-script from 7 to 8 (#39205) * build(deps): bump actions/github-script from 7 to 8 Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v7...v8) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Use Node 24 with github-script@v8 * update spec-gen-sdk-status.yml --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mike Harder --- .github/workflows/SDK-Suppressions-Label.yaml | 2 +- .../workflows/_reusable-set-check-status.yaml | 2 +- .github/workflows/arm-auto-signoff-code.yaml | 8 ++++---- .github/workflows/arm-auto-signoff-status.yaml | 2 +- .github/workflows/avocado-code.yaml | 8 ++++---- .../breaking-change-add-label-artifacts.yaml | 2 +- .github/workflows/github-test.yaml | 16 +++++++++------- .github/workflows/lintdiff-code.yaml | 2 +- .../workflows/sdk-breaking-change-labels.yaml | 8 ++++---- .github/workflows/spec-gen-sdk-status.yml | 8 ++++---- .github/workflows/summarize-checks.yaml | 10 +++++----- .github/workflows/update-labels.yaml | 2 +- 12 files changed, 36 insertions(+), 34 deletions(-) diff --git a/.github/workflows/SDK-Suppressions-Label.yaml b/.github/workflows/SDK-Suppressions-Label.yaml index 066fbe784eaf..758abfd4a01d 100644 --- a/.github/workflows/SDK-Suppressions-Label.yaml +++ b/.github/workflows/SDK-Suppressions-Label.yaml @@ -32,7 +32,7 @@ jobs: uses: ./.github/actions/setup-node-install-deps - name: Get GitHub PullRequest Context - uses: actions/github-script@v7 + uses: actions/github-script@v8 id: fetch-pullRequest-context with: script: | diff --git a/.github/workflows/_reusable-set-check-status.yaml b/.github/workflows/_reusable-set-check-status.yaml index 4549692f7f1b..e4b31502b356 100644 --- a/.github/workflows/_reusable-set-check-status.yaml +++ b/.github/workflows/_reusable-set-check-status.yaml @@ -55,7 +55,7 @@ jobs: .github - name: "Set Status" - uses: actions/github-script@v7 + uses: actions/github-script@v8 id: set-status with: script: | diff --git a/.github/workflows/arm-auto-signoff-code.yaml b/.github/workflows/arm-auto-signoff-code.yaml index 935a91a05745..f75bf2fbf2de 100644 --- a/.github/workflows/arm-auto-signoff-code.yaml +++ b/.github/workflows/arm-auto-signoff-code.yaml @@ -35,11 +35,11 @@ jobs: sparse-checkout: | .github - - name: Setup Node 20 and install deps + - name: Setup Node 24 and install deps uses: ./.github/actions/setup-node-install-deps with: - # actions/github-script@v7 uses Node 20 - node-version: 20.x + # actions/github-script@v8 uses Node 24 + node-version: 24.x # "--no-audit": improves performance # "--omit dev": not needed at runtime, improves performance install-command: "npm ci --no-audit --omit dev" @@ -48,7 +48,7 @@ jobs: # Output is "true" if PR contains only incremental changes to an existing TypeSpec RP - id: incremental-typespec name: ARM Auto SignOff - Analyze Code - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: result-encoding: string script: | diff --git a/.github/workflows/arm-auto-signoff-status.yaml b/.github/workflows/arm-auto-signoff-status.yaml index 23482a9751cb..7554492b1790 100644 --- a/.github/workflows/arm-auto-signoff-status.yaml +++ b/.github/workflows/arm-auto-signoff-status.yaml @@ -74,7 +74,7 @@ jobs: # } - id: get-label-action name: ARM Auto SignOff - Set Status - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | const { default: getLabelAction } = diff --git a/.github/workflows/avocado-code.yaml b/.github/workflows/avocado-code.yaml index 318d27b40378..ed5d0e920cb7 100644 --- a/.github/workflows/avocado-code.yaml +++ b/.github/workflows/avocado-code.yaml @@ -66,12 +66,12 @@ jobs: TRAVIS_REPO_SLUG: ${{ github.repository }} TRAVIS_PULL_REQUEST_SHA: ${{ github.sha }} - - name: Setup Node 20 and install deps (under .github) + - name: Setup Node 24 and install deps (under .github) if: ${{ always() && (steps.run-avocado.outputs.output-file) }} uses: ./.github/actions/setup-node-install-deps with: - # actions/github-script@v7 uses Node 20 - node-version: 20.x + # actions/github-script@v8 uses Node 24 + node-version: 24.x # "--no-audit": improves performance # "--omit dev": not needed at runtime, improves performance install-command: "npm ci --no-audit --omit dev" @@ -80,7 +80,7 @@ jobs: - name: Generate job summary if: ${{ always() && (steps.run-avocado.outputs.output-file) }} id: generate-job-summary - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | const { default: generateJobSummary } = diff --git a/.github/workflows/breaking-change-add-label-artifacts.yaml b/.github/workflows/breaking-change-add-label-artifacts.yaml index c2bb46e68e8c..0ece04a6ff52 100644 --- a/.github/workflows/breaking-change-add-label-artifacts.yaml +++ b/.github/workflows/breaking-change-add-label-artifacts.yaml @@ -38,7 +38,7 @@ jobs: - id: get-label-actions name: Get Label Actions - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | const { default: getLabelActions } = diff --git a/.github/workflows/github-test.yaml b/.github/workflows/github-test.yaml index e2523e4d431a..363cb48aeee4 100644 --- a/.github/workflows/github-test.yaml +++ b/.github/workflows/github-test.yaml @@ -46,17 +46,19 @@ jobs: args: -color -verbose - if: ${{ matrix.folder == '.github' }} - name: Setup Node 20 and install runtime deps + name: Setup Node 24 and install runtime deps uses: ./.github/actions/setup-node-install-deps with: - # actions/github-script@v7 uses Node 20 - node-version: 20.x - install-command: npm ci --omit dev + # actions/github-script@v8 uses Node 24 + node-version: 24.x + # "--no-audit": improves performance + # "--omit dev": not needed at runtime, improves performance + install-command: "npm ci --no-audit --omit dev" working-directory: ./${{ matrix.folder }} - if: ${{ matrix.folder == '.github' }} name: Verify all modules are importable - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | const { join } = await import("path"); @@ -68,8 +70,8 @@ jobs: - name: Install dev deps uses: ./.github/actions/setup-node-install-deps with: - # actions/github-script@v7 uses Node 20 - node-version: 20.x + # actions/github-script@v8 uses Node 24 + node-version: 24.x working-directory: ./${{ matrix.folder }} - run: npm run lint diff --git a/.github/workflows/lintdiff-code.yaml b/.github/workflows/lintdiff-code.yaml index 31da069de4ca..fa9331465cf0 100644 --- a/.github/workflows/lintdiff-code.yaml +++ b/.github/workflows/lintdiff-code.yaml @@ -42,7 +42,7 @@ jobs: uses: ./.github/actions/setup-node-install-deps - name: Get changed files - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | const { getChangedFiles } = await import('${{ github.workspace }}/.github/shared/src/changed-files.js'); diff --git a/.github/workflows/sdk-breaking-change-labels.yaml b/.github/workflows/sdk-breaking-change-labels.yaml index 82c10eb08d0d..f9dd5c061fc3 100644 --- a/.github/workflows/sdk-breaking-change-labels.yaml +++ b/.github/workflows/sdk-breaking-change-labels.yaml @@ -39,11 +39,11 @@ jobs: ADO_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" -o tsv) echo "ADO_TOKEN=$ADO_TOKEN" >> "$GITHUB_ENV" - - name: Setup Node 20 and install deps + - name: Setup Node 24 and install deps uses: ./.github/actions/setup-node-install-deps with: - # actions/github-script@v7 uses Node 20 - node-version: 20.x + # actions/github-script@v8 uses Node 24 + node-version: 24.x # "--no-audit": improves performance # "--omit dev": not needed at runtime, improves performance install-command: "npm ci --no-audit --omit dev" @@ -51,7 +51,7 @@ jobs: - name: Get label and action id: get-label-and-action - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | const { getLabelAndAction } = diff --git a/.github/workflows/spec-gen-sdk-status.yml b/.github/workflows/spec-gen-sdk-status.yml index 44266a919a14..8283755efb04 100644 --- a/.github/workflows/spec-gen-sdk-status.yml +++ b/.github/workflows/spec-gen-sdk-status.yml @@ -39,11 +39,11 @@ jobs: ADO_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" -o tsv) echo "ADO_TOKEN=$ADO_TOKEN" >> "$GITHUB_ENV" - - name: Setup Node 20 and install deps + - name: Setup Node 24 and install deps uses: ./.github/actions/setup-node-install-deps with: - # actions/github-script@v7 uses Node 20 - node-version: 20.x + # actions/github-script@v8 uses Node 24 + node-version: 24.x # "--no-audit": improves performance # "--omit dev": not needed at runtime, improves performance install-command: "npm ci --no-audit --omit dev" @@ -51,7 +51,7 @@ jobs: - name: "SDK Validation Set Status" id: sdk-validation-status - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | const setStatus = diff --git a/.github/workflows/summarize-checks.yaml b/.github/workflows/summarize-checks.yaml index 178fde9e12ce..eb71df0dc597 100644 --- a/.github/workflows/summarize-checks.yaml +++ b/.github/workflows/summarize-checks.yaml @@ -53,11 +53,11 @@ jobs: sparse-checkout: | .github - - name: Setup Node 20 and install deps + - name: Setup Node 24 and install deps uses: ./.github/actions/setup-node-install-deps with: - # actions/github-script@v7 uses Node 20 - node-version: 20.x + # actions/github-script@v8 uses Node 24 + node-version: 24.x # "--no-audit": improves performance # "--omit dev": not needed at runtime, improves performance install-command: "npm ci --no-audit --omit dev" @@ -65,7 +65,7 @@ jobs: - id: dump-trigger-metadata name: Dump Trigger Metadata - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | const { default: dumpTriggerMetadata } = @@ -74,7 +74,7 @@ jobs: - id: summarize-checks name: Summarize Checks - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | const { default: summarizeChecks } = diff --git a/.github/workflows/update-labels.yaml b/.github/workflows/update-labels.yaml index 3e5b940de36c..8f857221a4b0 100644 --- a/.github/workflows/update-labels.yaml +++ b/.github/workflows/update-labels.yaml @@ -35,7 +35,7 @@ jobs: - name: Update Labels id: update-labels - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | const { default: updateLabels } = From 261da75062c324464f2ee4aa0e88121456878c92 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Fri, 12 Dec 2025 17:20:57 -0800 Subject: [PATCH 020/117] [dependabot.yml] Remove ignores for prettier, vitest, typescript (#39232) - Not necessary to align with typespec repo - Sufficient for both repos to stay near latest --- .github/dependabot.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index d7b408af39ca..ecba8a093506 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -24,11 +24,6 @@ updates: ignore: # Updated manually to align with minimum supported Node version - dependency-name: "@types/node" - # Updated manually to align with repo microsoft/typespec - - dependency-name: "@vitest/coverage-v8" - - dependency-name: "prettier" - - dependency-name: "vitest" - - dependency-name: "typescript" # Updated manually by the Liftr team - dependency-name: "@azure-tools/typespec-liftr-base" # Only allow patch updates for spec-gen-sdk @@ -61,11 +56,6 @@ updates: ignore: # Updated manually to align with minimum supported Node version - dependency-name: "@types/node" - # Updated manually to align with repo microsoft/typespec - - dependency-name: "@vitest/coverage-v8" - - dependency-name: "prettier" - - dependency-name: "vitest" - - dependency-name: "typescript" # Points to "github:actions/github-script" since package isn't published to npmjs - dependency-name: "@types/github-script" groups: From 162c1c3714671304cf2e272af34c7a0a75aa198f Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Fri, 12 Dec 2025 17:43:13 -0800 Subject: [PATCH 021/117] [EngSys] Add action to install deps for github-script (#39244) --- .../install-deps-github-script/action.yaml | 15 +++++++++++++ .github/workflows/arm-auto-signoff-code.yaml | 11 ++-------- .github/workflows/avocado-code.yaml | 21 +++++++------------ .github/workflows/github-test.yaml | 11 ++-------- .../workflows/sdk-breaking-change-labels.yaml | 11 ++-------- .github/workflows/spec-gen-sdk-status.yml | 11 ++-------- .github/workflows/summarize-checks.yaml | 11 ++-------- 7 files changed, 32 insertions(+), 59 deletions(-) create mode 100644 .github/actions/install-deps-github-script/action.yaml diff --git a/.github/actions/install-deps-github-script/action.yaml b/.github/actions/install-deps-github-script/action.yaml new file mode 100644 index 000000000000..74d7b0a92c55 --- /dev/null +++ b/.github/actions/install-deps-github-script/action.yaml @@ -0,0 +1,15 @@ +name: Install dependencies for github-script actions +description: Installs dependencies for github-script actions + +runs: + using: composite + + steps: + - uses: ./.github/actions/setup-node-install-deps + with: + # actions/github-script@v8 uses Node 24 + node-version: 24.x + # "--no-audit": improves performance + # "--omit dev": not needed at runtime, improves performance + install-command: "npm ci --no-audit --omit dev" + working-directory: ./.github diff --git a/.github/workflows/arm-auto-signoff-code.yaml b/.github/workflows/arm-auto-signoff-code.yaml index f75bf2fbf2de..632d9a2a6061 100644 --- a/.github/workflows/arm-auto-signoff-code.yaml +++ b/.github/workflows/arm-auto-signoff-code.yaml @@ -35,15 +35,8 @@ jobs: sparse-checkout: | .github - - name: Setup Node 24 and install deps - uses: ./.github/actions/setup-node-install-deps - with: - # actions/github-script@v8 uses Node 24 - node-version: 24.x - # "--no-audit": improves performance - # "--omit dev": not needed at runtime, improves performance - install-command: "npm ci --no-audit --omit dev" - working-directory: ./.github + - name: Install dependencies for github-script actions + uses: ./.github/actions/install-deps-github-script # Output is "true" if PR contains only incremental changes to an existing TypeSpec RP - id: incremental-typespec diff --git a/.github/workflows/avocado-code.yaml b/.github/workflows/avocado-code.yaml index ed5d0e920cb7..ed281801da25 100644 --- a/.github/workflows/avocado-code.yaml +++ b/.github/workflows/avocado-code.yaml @@ -66,19 +66,12 @@ jobs: TRAVIS_REPO_SLUG: ${{ github.repository }} TRAVIS_PULL_REQUEST_SHA: ${{ github.sha }} - - name: Setup Node 24 and install deps (under .github) - if: ${{ always() && (steps.run-avocado.outputs.output-file) }} - uses: ./.github/actions/setup-node-install-deps - with: - # actions/github-script@v8 uses Node 24 - node-version: 24.x - # "--no-audit": improves performance - # "--omit dev": not needed at runtime, improves performance - install-command: "npm ci --no-audit --omit dev" - working-directory: ./.github + - if: ${{ always() && (steps.run-avocado.outputs.output-file) }} + name: Install dependencies for github-script actions + uses: ./.github/actions/install-deps-github-script - - name: Generate job summary - if: ${{ always() && (steps.run-avocado.outputs.output-file) }} + - if: ${{ always() && (steps.run-avocado.outputs.output-file) }} + name: Generate job summary id: generate-job-summary uses: actions/github-script@v8 with: @@ -90,8 +83,8 @@ jobs: AVOCADO_OUTPUT_FILE: ${{ steps.run-avocado.outputs.output-file }} # Used by other workflows like set-status - - name: Set job-summary artifact - if: ${{ always() && steps.generate-job-summary.outputs.summary }} + - if: ${{ always() && steps.generate-job-summary.outputs.summary }} + name: Set job-summary artifact uses: actions/upload-artifact@v6 with: name: job-summary diff --git a/.github/workflows/github-test.yaml b/.github/workflows/github-test.yaml index 363cb48aeee4..60d07bdce08b 100644 --- a/.github/workflows/github-test.yaml +++ b/.github/workflows/github-test.yaml @@ -46,15 +46,8 @@ jobs: args: -color -verbose - if: ${{ matrix.folder == '.github' }} - name: Setup Node 24 and install runtime deps - uses: ./.github/actions/setup-node-install-deps - with: - # actions/github-script@v8 uses Node 24 - node-version: 24.x - # "--no-audit": improves performance - # "--omit dev": not needed at runtime, improves performance - install-command: "npm ci --no-audit --omit dev" - working-directory: ./${{ matrix.folder }} + name: Install dependencies for github-script actions + uses: ./.github/actions/install-deps-github-script - if: ${{ matrix.folder == '.github' }} name: Verify all modules are importable diff --git a/.github/workflows/sdk-breaking-change-labels.yaml b/.github/workflows/sdk-breaking-change-labels.yaml index f9dd5c061fc3..15661cd55131 100644 --- a/.github/workflows/sdk-breaking-change-labels.yaml +++ b/.github/workflows/sdk-breaking-change-labels.yaml @@ -39,15 +39,8 @@ jobs: ADO_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" -o tsv) echo "ADO_TOKEN=$ADO_TOKEN" >> "$GITHUB_ENV" - - name: Setup Node 24 and install deps - uses: ./.github/actions/setup-node-install-deps - with: - # actions/github-script@v8 uses Node 24 - node-version: 24.x - # "--no-audit": improves performance - # "--omit dev": not needed at runtime, improves performance - install-command: "npm ci --no-audit --omit dev" - working-directory: ./.github + - name: Install dependencies for github-script actions + uses: ./.github/actions/install-deps-github-script - name: Get label and action id: get-label-and-action diff --git a/.github/workflows/spec-gen-sdk-status.yml b/.github/workflows/spec-gen-sdk-status.yml index 8283755efb04..cfc4ba446c08 100644 --- a/.github/workflows/spec-gen-sdk-status.yml +++ b/.github/workflows/spec-gen-sdk-status.yml @@ -39,15 +39,8 @@ jobs: ADO_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" -o tsv) echo "ADO_TOKEN=$ADO_TOKEN" >> "$GITHUB_ENV" - - name: Setup Node 24 and install deps - uses: ./.github/actions/setup-node-install-deps - with: - # actions/github-script@v8 uses Node 24 - node-version: 24.x - # "--no-audit": improves performance - # "--omit dev": not needed at runtime, improves performance - install-command: "npm ci --no-audit --omit dev" - working-directory: ./.github + - name: Install dependencies for github-script actions + uses: ./.github/actions/install-deps-github-script - name: "SDK Validation Set Status" id: sdk-validation-status diff --git a/.github/workflows/summarize-checks.yaml b/.github/workflows/summarize-checks.yaml index eb71df0dc597..ce2ac57c13a3 100644 --- a/.github/workflows/summarize-checks.yaml +++ b/.github/workflows/summarize-checks.yaml @@ -53,15 +53,8 @@ jobs: sparse-checkout: | .github - - name: Setup Node 24 and install deps - uses: ./.github/actions/setup-node-install-deps - with: - # actions/github-script@v8 uses Node 24 - node-version: 24.x - # "--no-audit": improves performance - # "--omit dev": not needed at runtime, improves performance - install-command: "npm ci --no-audit --omit dev" - working-directory: ./.github + - name: Install dependencies for github-script actions + uses: ./.github/actions/install-deps-github-script - id: dump-trigger-metadata name: Dump Trigger Metadata From efa49a123da7ce3ffe093a13832258305f529711 Mon Sep 17 00:00:00 2001 From: Yuqing Wei Date: Sun, 14 Dec 2025 18:44:52 -0800 Subject: [PATCH 022/117] Azure Databricks 2026-01-01 API Version (#38900) * Azure Databricks 2026-01-01 API Version: Serverless Workspace & Front-end Private Link --- .../Microsoft.Databricks/Databricks/readme.md | 27 +- .../stable/2026-01-01/accessconnector.json | 413 ++++ .../stable/2026-01-01/databricks.json | 2014 +++++++++++++++++ .../AccessConnectorCreateOrUpdate.json | 54 + ...nnectorCreateOrUpdateWithUserAssigned.json | 65 + .../examples/AccessConnectorDelete.json | 19 + .../examples/AccessConnectorGet.json | 31 + .../examples/AccessConnectorPatchUpdate.json | 42 + .../AccessConnectorsListByResourceGroup.json | 48 + .../AccessConnectorsListBySubscriptionId.json | 79 + .../examples/DisableEncryption.json | 138 ++ .../2026-01-01/examples/EnableEncryption.json | 147 ++ .../ListPrivateEndpointConnections.json | 32 + .../examples/ListPrivateLinkResources.json | 30 + .../2026-01-01/examples/OperationsList.json | 128 ++ ...boundNetworkDependenciesEndpointsList.json | 120 + .../examples/PrepareEncryption.json | 106 + .../PrivateEndpointConnectionsDelete.json | 20 + .../PrivateEndpointConnectionsGet.json | 29 + .../PrivateEndpointConnectionsUpdate.json | 55 + .../examples/PrivateLinkResourcesGet.json | 27 + .../2026-01-01/examples/WorkspaceCreate.json | 120 + .../examples/WorkspaceCreateServerless.json | 96 + .../WorkspaceCreateWithParameters.json | 152 ++ .../2026-01-01/examples/WorkspaceDelete.json | 19 + .../WorkspaceDeleteForceDeletion.json | 20 + ...ancedSecurityComplianceCreateOrUpdate.json | 140 ++ ...orkspaceEnhancedSecurityComplianceGet.json | 63 + .../2026-01-01/examples/WorkspaceGet.json | 49 + .../examples/WorkspaceGetParameters.json | 82 + .../WorkspaceManagedDiskEncryptionCreate.json | 148 ++ .../WorkspaceManagedDiskEncryptionGet.json | 68 + .../WorkspaceManagedDiskEncryptionUpdate.json | 156 ++ .../2026-01-01/examples/WorkspaceUpdate.json | 63 + .../WorkspaceVirtualNetPeeringGet.json | 43 + .../WorkspaceVirtualNetPeeringList.json | 45 + ...ceVirtualNetworkPeeringCreateOrUpdate.json | 84 + .../WorkspaceVirtualNetworkPeeringDelete.json | 19 + .../WorkspacesListByResourceGroup.json | 89 + .../WorkspacesListBySubscription.json | 89 + .../stable/2026-01-01/vnetpeering.json | 465 ++++ .../Databricks/suppressions.yaml | 3 + 42 files changed, 5636 insertions(+), 1 deletion(-) create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/accessconnector.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/databricks.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorCreateOrUpdate.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorCreateOrUpdateWithUserAssigned.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorDelete.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorGet.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorPatchUpdate.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorsListByResourceGroup.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorsListBySubscriptionId.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/DisableEncryption.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/EnableEncryption.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/ListPrivateEndpointConnections.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/ListPrivateLinkResources.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/OperationsList.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/OutboundNetworkDependenciesEndpointsList.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrepareEncryption.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateEndpointConnectionsDelete.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateEndpointConnectionsGet.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateEndpointConnectionsUpdate.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateLinkResourcesGet.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceCreate.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceCreateServerless.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceCreateWithParameters.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceDelete.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceDeleteForceDeletion.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceEnhancedSecurityComplianceCreateOrUpdate.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceEnhancedSecurityComplianceGet.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceGet.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceGetParameters.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceManagedDiskEncryptionCreate.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceManagedDiskEncryptionGet.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceManagedDiskEncryptionUpdate.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceUpdate.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetPeeringGet.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetPeeringList.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetworkPeeringCreateOrUpdate.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetworkPeeringDelete.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspacesListByResourceGroup.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspacesListBySubscription.json create mode 100644 specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/vnetpeering.json diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/readme.md b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/readme.md index aef44e8d08fb..6d3b35ef9bc2 100644 --- a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/readme.md +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/readme.md @@ -10,6 +10,7 @@ This is the AutoRest configuration file for Databricks. ```yaml $(java) && $(multiapi) batch: + - tag: package-2026-01-01 - tag: package-2025-10-01-preview - tag: package-2025-08-01-preview - tag: package-2025-03-01-preview @@ -23,6 +24,19 @@ batch: - tag: package-2023-05-01 ``` +### Tag: package-2026-01-01 and java + +These settings apply only when `--tag=package-2026-01-01 --java` is specified on the command line. +Please also specify `--azure-libraries-for-java=`. + +```yaml $(tag) == 'package-2026-01-01' && $(java) && $(multiapi) +java: + namespace: com.microsoft.azure.management.databricks.v2026_01_01 + output-folder: $(azure-libraries-for-java-folder)/sdk/databricks/mgmt-v2026_01_01 +regenerate-manager: true +generate-interface: true +``` + ### Tag: package-2025-10-01-preview and java These settings apply only when `--tag=package-2025-10-01-preview --java` is specified on the command line. @@ -188,7 +202,7 @@ These are the global settings for the Databricks API. title: AzureDatabricksManagementClient description: The Microsoft Azure management APIs allow end users to operate on Azure Databricks Workspace / Access Connector resources. openapi-type: arm -tag: package-2025-10-01-preview +tag: package-2026-01-01 ``` ### Tag: package-2018-04-01 @@ -310,6 +324,17 @@ input-file: - preview/2025-10-01-preview/accessconnector.json ``` +### Tag: package-2026-01-01 + +These settings apply only when `--tag=package-2026-01-01` is specified on the command line. + +```yaml $(tag) == 'package-2026-01-01' +input-file: + - stable/2026-01-01/databricks.json + - stable/2026-01-01/vnetpeering.json + - stable/2026-01-01/accessconnector.json +``` + --- # Suppressions diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/accessconnector.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/accessconnector.json new file mode 100644 index 000000000000..87782726d585 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/accessconnector.json @@ -0,0 +1,413 @@ +{ + "swagger": "2.0", + "info": { + "title": "DatabricksAccessConnectorClient", + "version": "2026-01-01", + "description": "These APIs allow end users to operate on Azure Databricks Access Connector resources." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Databricks/accessConnectors/{connectorName}": { + "get": { + "tags": [ + "AccessConnector" + ], + "operationId": "AccessConnectors_Get", + "description": "Gets an Azure Databricks Access Connector.", + "x-ms-examples": { + "Get an Azure Databricks Access Connector": { + "$ref": "./examples/AccessConnectorGet.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ConnectorName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns the Access Connector.", + "schema": { + "$ref": "#/definitions/AccessConnector" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../preview/2022-04-01-preview/databricks.json#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "AccessConnector" + ], + "operationId": "AccessConnectors_Delete", + "description": "Deletes the Azure Databricks Access Connector.", + "x-ms-examples": { + "Delete an Azure Databricks Access Connector": { + "$ref": "./examples/AccessConnectorDelete.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ConnectorName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "Accepted - Returns this status until the asynchronous operation has completed." + }, + "204": { + "description": "NoContent" + }, + "200": { + "description": "OK. The request has succeeded." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../preview/2022-04-01-preview/databricks.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + }, + "put": { + "tags": [ + "AccessConnector" + ], + "operationId": "AccessConnectors_CreateOrUpdate", + "description": "Creates or updates Azure Databricks Access Connector.", + "x-ms-examples": { + "Create an Azure Databricks Access Connector with SystemAssigned Identity": { + "$ref": "./examples/AccessConnectorCreateOrUpdate.json" + }, + "Create an Azure Databricks Access Connector with UserAssigned Identity": { + "$ref": "./examples/AccessConnectorCreateOrUpdateWithUserAssigned.json" + } + }, + "parameters": [ + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AccessConnector" + }, + "description": "Parameters supplied to the create or update an Azure Databricks Access Connector." + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ConnectorName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Updated - Returns information about the Azure Databricks Access Connector.", + "schema": { + "$ref": "#/definitions/AccessConnector" + } + }, + "201": { + "description": "Created - Returns information about the Azure Databricks Access Connector.", + "schema": { + "$ref": "#/definitions/AccessConnector" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../preview/2022-04-01-preview/databricks.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ + "AccessConnector" + ], + "operationId": "AccessConnectors_Update", + "description": "Updates an Azure Databricks Access Connector.", + "x-ms-examples": { + "Update an Azure Databricks Access Connector": { + "$ref": "./examples/AccessConnectorPatchUpdate.json" + } + }, + "parameters": [ + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AccessConnectorUpdate" + }, + "description": "The update to the Azure Databricks Access Connector." + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ConnectorName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "202": { + "description": "Accepted - Returns this status until the asynchronous operation has completed." + }, + "200": { + "description": "Successfully updated the Azure Databricks Access Connector.", + "schema": { + "$ref": "#/definitions/AccessConnector" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../preview/2022-04-01-preview/databricks.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Databricks/accessConnectors": { + "get": { + "tags": [ + "AccessConnector" + ], + "operationId": "AccessConnectors_ListByResourceGroup", + "description": "Gets all the Azure Databricks Access Connectors within a resource group.", + "x-ms-examples": { + "Lists Azure Databricks Access Connectors within a resource group": { + "$ref": "./examples/AccessConnectorsListByResourceGroup.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns an array of Azure Databricks Access Connectors.", + "schema": { + "$ref": "#/definitions/AccessConnectorListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../preview/2022-04-01-preview/databricks.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Databricks/accessConnectors": { + "get": { + "tags": [ + "AccessConnector" + ], + "operationId": "AccessConnectors_ListBySubscription", + "description": "Gets all the Azure Databricks Access Connectors within a subscription.", + "x-ms-examples": { + "Lists all the Azure Databricks Access Connectors within a subscription.": { + "$ref": "./examples/AccessConnectorsListBySubscriptionId.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns an array of Azure Databricks Access Connectors.", + "schema": { + "$ref": "#/definitions/AccessConnectorListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../preview/2022-04-01-preview/databricks.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "AccessConnector": { + "type": "object", + "properties": { + "identity": { + "$ref": "../../../../../../common-types/resource-management/v3/managedidentity.json#/definitions/ManagedServiceIdentity" + }, + "systemData": { + "description": "The system metadata relating to this resource", + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/systemData" + }, + "properties": { + "description": "Azure Databricks Access Connector properties", + "$ref": "#/definitions/AccessConnectorProperties" + } + }, + "allOf": [ + { + "$ref": "../../preview/2022-04-01-preview/databricks.json#/definitions/TrackedResource" + } + ], + "description": "Information about Azure Databricks Access Connector." + }, + "AccessConnectorProperties": { + "type": "object", + "properties": { + "provisioningState": { + "description": "Provisioning status of the Access Connector.", + "readOnly": true, + "enum": [ + "Deleted", + "Failed", + "Succeeded" + ], + "type": "string", + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true + } + }, + "referedBy": { + "description": "List of workspaces referring this Access Connector.", + "readOnly": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "AccessConnectorUpdate": { + "description": "An update to an Azure Databricks Access Connector.", + "type": "object", + "properties": { + "tags": { + "description": "Resource tags.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "identity": { + "$ref": "../../../../../../common-types/resource-management/v3/managedidentity.json#/definitions/ManagedServiceIdentity" + } + } + }, + "AccessConnectorListResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/AccessConnector" + }, + "description": "The array of Azure Databricks Access Connector." + }, + "nextLink": { + "type": "string", + "description": "The URL to use for getting the next set of results." + } + }, + "description": "List of Azure Databricks Access Connector." + } + }, + "parameters": { + "ConnectorName": { + "name": "connectorName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Azure Databricks Access Connector.", + "minLength": 3, + "maxLength": 64, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/databricks.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/databricks.json new file mode 100644 index 000000000000..8c3c86e7ad3d --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/databricks.json @@ -0,0 +1,2014 @@ +{ + "swagger": "2.0", + "info": { + "title": "AzureDatabricksManagementClient", + "version": "2026-01-01", + "description": "These APIs allow end users to operate on Azure Databricks Workspace resources." + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Databricks/workspaces/{workspaceName}": { + "get": { + "tags": [ + "Workspaces" + ], + "operationId": "Workspaces_Get", + "description": "Gets the workspace.", + "x-ms-examples": { + "Get a workspace": { + "$ref": "./examples/WorkspaceGet.json" + }, + "Get a workspace with custom parameters": { + "$ref": "./examples/WorkspaceGetParameters.json" + }, + "Get a workspace with Customer-Managed Key (CMK) encryption for Managed Disks": { + "$ref": "./examples/WorkspaceManagedDiskEncryptionGet.json" + }, + "Get a workspace with Enhanced Security & Compliance Add-On": { + "$ref": "./examples/WorkspaceEnhancedSecurityComplianceGet.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns the workspace.", + "schema": { + "$ref": "#/definitions/Workspace" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "Workspaces" + ], + "operationId": "Workspaces_Delete", + "description": "Deletes the workspace.", + "x-ms-examples": { + "Delete a workspace": { + "$ref": "./examples/WorkspaceDelete.json" + }, + "Delete a workspace with forceDeletion parameter": { + "$ref": "./examples/WorkspaceDeleteForceDeletion.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "forceDeletion", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "description": "Optional parameter to retain default unity catalog data. By default the data will retained if Uc is enabled on the workspace." + } + ], + "responses": { + "204": { + "description": "NoContent" + }, + "202": { + "description": "Accepted - Returns this status until the asynchronous operation has completed." + }, + "200": { + "description": "OK. The request has succeeded." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + }, + "put": { + "tags": [ + "Workspaces" + ], + "operationId": "Workspaces_CreateOrUpdate", + "description": "Creates a new workspace.", + "x-ms-examples": { + "Create or update workspace": { + "$ref": "./examples/WorkspaceCreate.json" + }, + "Create or update serverless workspace": { + "$ref": "./examples/WorkspaceCreateServerless.json" + }, + "Create or update workspace with custom parameters": { + "$ref": "./examples/WorkspaceCreateWithParameters.json" + }, + "Create a workspace which is ready for Customer-Managed Key (CMK) encryption": { + "$ref": "./examples/PrepareEncryption.json" + }, + "Enable Customer-Managed Key (CMK) encryption on a workspace which is prepared for encryption": { + "$ref": "./examples/EnableEncryption.json" + }, + "Revert Customer-Managed Key (CMK) encryption to Microsoft Managed Keys encryption on a workspace": { + "$ref": "./examples/DisableEncryption.json" + }, + "Create a workspace with Customer-Managed Key (CMK) encryption for Managed Disks": { + "$ref": "./examples/WorkspaceManagedDiskEncryptionCreate.json" + }, + "Update a workspace with Customer-Managed Key (CMK) encryption for Managed Disks": { + "$ref": "./examples/WorkspaceManagedDiskEncryptionUpdate.json" + }, + "Create or update a workspace with Enhanced Security & Compliance Add-On": { + "$ref": "./examples/WorkspaceEnhancedSecurityComplianceCreateOrUpdate.json" + } + }, + "parameters": [ + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Workspace" + }, + "description": "Parameters supplied to the create or update a workspace." + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Created - Returns information about the workspace, including provisioning status.", + "schema": { + "$ref": "#/definitions/Workspace" + } + }, + "201": { + "description": "Created - Returns information about the workspace, including provisioning status.", + "schema": { + "$ref": "#/definitions/Workspace" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + }, + "patch": { + "tags": [ + "Workspaces" + ], + "operationId": "Workspaces_Update", + "description": "Updates a workspace.", + "parameters": [ + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WorkspaceUpdate" + }, + "description": "The update to the workspace." + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Successfully updated the workspace.", + "schema": { + "$ref": "#/definitions/Workspace" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "202": { + "description": "Accepted" + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Update a workspace's tags.": { + "$ref": "./examples/WorkspaceUpdate.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Databricks/workspaces": { + "get": { + "tags": [ + "Workspaces" + ], + "operationId": "Workspaces_ListByResourceGroup", + "description": "Gets all the workspaces within a resource group.", + "x-ms-examples": { + "Lists workspaces": { + "$ref": "./examples/WorkspacesListByResourceGroup.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns an array of workspaces.", + "schema": { + "$ref": "#/definitions/WorkspaceListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Databricks/workspaces": { + "get": { + "tags": [ + "Workspaces" + ], + "operationId": "Workspaces_ListBySubscription", + "description": "Gets all the workspaces within a subscription.", + "x-ms-examples": { + "Lists workspaces": { + "$ref": "./examples/WorkspacesListBySubscription.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns an array of workspaces.", + "schema": { + "$ref": "#/definitions/WorkspaceListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.Databricks/operations": { + "get": { + "tags": [ + "Operations" + ], + "description": "Lists all of the available RP operations.", + "x-ms-examples": { + "Operations": { + "$ref": "./examples/OperationsList.json" + } + }, + "operationId": "Operations_List", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "Resource Provider error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Databricks/workspaces/{workspaceName}/privateLinkResources": { + "get": { + "tags": [ + "PrivateLinkResources" + ], + "summary": "List private link resources", + "description": "List private link resources for a given workspace", + "operationId": "PrivateLinkResources_List", + "x-ms-examples": { + "List private link resources": { + "$ref": "./examples/ListPrivateLinkResources.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns an array of private link resources", + "schema": { + "$ref": "#/definitions/PrivateLinkResourcesList" + } + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Databricks/workspaces/{workspaceName}/privateLinkResources/{groupId}": { + "get": { + "tags": [ + "PrivateLinkResources" + ], + "summary": "Get the specified private link resource", + "description": "Get the specified private link resource for the given group id (sub-resource)", + "operationId": "PrivateLinkResources_Get", + "x-ms-examples": { + "Get a private link resource": { + "$ref": "./examples/PrivateLinkResourcesGet.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/GroupId" + } + ], + "responses": { + "200": { + "description": "OK - Returns the specified of private link resource", + "schema": { + "$ref": "#/definitions/GroupIdInformation" + } + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Databricks/workspaces/{workspaceName}/privateEndpointConnections": { + "get": { + "tags": [ + "PrivateEndpointConnections" + ], + "summary": "List private endpoint connections", + "description": "List private endpoint connections of the workspace", + "operationId": "PrivateEndpointConnections_List", + "x-ms-examples": { + "List private endpoint connections": { + "$ref": "./examples/ListPrivateEndpointConnections.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK - Returns list of private endpoint connections for a workspace", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnectionsList" + } + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Databricks/workspaces/{workspaceName}/privateEndpointConnections/{privateEndpointConnectionName}": { + "get": { + "tags": [ + "PrivateEndpointConnections" + ], + "summary": "Get private endpoint connection", + "description": "Get a private endpoint connection properties for a workspace", + "operationId": "PrivateEndpointConnections_Get", + "x-ms-examples": { + "Get a private endpoint connection": { + "$ref": "./examples/PrivateEndpointConnectionsGet.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionName" + } + ], + "responses": { + "200": { + "description": "OK - Returns the private endpoint connection properties of a workspace", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "tags": [ + "PUT", + "PrivateEndpointConnections" + ], + "summary": "Update private endpoint connection status", + "description": "Update the status of a private endpoint connection with the specified name", + "operationId": "PrivateEndpointConnections_Create", + "x-ms-examples": { + "Update a private endpoint connection": { + "$ref": "./examples/PrivateEndpointConnectionsUpdate.json" + } + }, + "x-ms-long-running-operation": true, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionName" + }, + { + "name": "privateEndpointConnection", + "in": "body", + "description": "The private endpoint connection with updated properties", + "required": true, + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + } + ], + "responses": { + "200": { + "description": "OK -- Update the private endpoint connection properties successfully.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "202": { + "description": "Accepted - This is a long running operation. The operation returns a 202 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "DELETE", + "PrivateEndpointConnections" + ], + "summary": "Remove private endpoint connection", + "description": "Remove private endpoint connection with the specified name", + "operationId": "PrivateEndpointConnections_Delete", + "x-ms-examples": { + "Remove a private endpoint connection": { + "$ref": "./examples/PrivateEndpointConnectionsDelete.json" + } + }, + "x-ms-long-running-operation": true, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionName" + } + ], + "responses": { + "202": { + "description": "Accepted - This is a long running operation. The operation returns a 202 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation." + }, + "200": { + "description": "OK - Returns the status of polling request for the delete operation." + }, + "204": { + "description": "No Content - PrivateEndpoint does not exist." + }, + "default": { + "description": "DefaultErrorResponse", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Databricks/workspaces/{workspaceName}/outboundNetworkDependenciesEndpoints": { + "get": { + "tags": [ + "OutboundNetworkDependenciesEndpoints" + ], + "summary": "Gets a list of egress endpoints (network endpoints of all outbound dependencies) in the specified Workspace.", + "description": "Gets the list of endpoints that VNET Injected Workspace calls Azure Databricks Control Plane. You must configure outbound access with these endpoints. For more information, see https://docs.microsoft.com/en-us/azure/databricks/administration-guide/cloud-configurations/azure/udr", + "operationId": "OutboundNetworkDependenciesEndpoints_List", + "x-ms-examples": { + "List OutboundNetworkDependenciesEndpoints by Workspace": { + "$ref": "./examples/OutboundNetworkDependenciesEndpointsList.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The response contains list of outbound network dependency endpoints", + "schema": { + "$ref": "#/definitions/OutboundEnvironmentEndpointCollection" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + } + }, + "definitions": { + "Workspace": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/WorkspaceProperties", + "description": "The workspace properties." + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "The SKU of the resource." + }, + "systemData": { + "description": "The system metadata relating to this resource", + "type": "object", + "readOnly": true, + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/systemData" + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "#/definitions/TrackedResource" + } + ], + "description": "Information about workspace." + }, + "WorkspaceProperties": { + "type": "object", + "properties": { + "computeMode": { + "type": "string", + "description": "The workspace compute mode. Required on create, cannot be changed. Possible values include: 'Serverless', 'Hybrid'", + "enum": [ + "Serverless", + "Hybrid" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "ComputeMode" + } + }, + "managedResourceGroupId": { + "type": "string", + "description": "The managed resource group Id. Required in Hybrid ComputeMode workspace. Not allowed in Serverless ComputeMode workspace." + }, + "parameters": { + "$ref": "#/definitions/WorkspaceCustomParameters", + "description": "The workspace's custom parameters." + }, + "provisioningState": { + "readOnly": true, + "$ref": "#/definitions/ProvisioningState", + "description": "The workspace provisioning state." + }, + "uiDefinitionUri": { + "type": "string", + "description": "The blob URI where the UI definition file is located." + }, + "authorizations": { + "description": "The workspace provider authorizations.", + "type": "array", + "x-ms-identifiers": [], + "items": { + "$ref": "#/definitions/WorkspaceProviderAuthorization" + } + }, + "createdBy": { + "description": "Indicates the Object ID, PUID and Application ID of entity that created the workspace.", + "$ref": "#/definitions/CreatedBy" + }, + "updatedBy": { + "description": "Indicates the Object ID, PUID and Application ID of entity that last updated the workspace.", + "$ref": "#/definitions/CreatedBy" + }, + "createdDateTime": { + "description": "Specifies the date and time when the workspace is created.", + "$ref": "#/definitions/CreatedDateTime" + }, + "workspaceId": { + "readOnly": true, + "description": "The unique identifier of the databricks workspace in databricks control plane.", + "type": "string" + }, + "workspaceUrl": { + "readOnly": true, + "description": "The workspace URL which is of the format 'adb-{workspaceId}.{random}.azuredatabricks.net'", + "type": "string" + }, + "storageAccountIdentity": { + "description": "The details of Managed Identity of Storage Account. Only returned in Hybrid ComputeMode workspace.", + "$ref": "#/definitions/ManagedIdentityConfiguration" + }, + "managedDiskIdentity": { + "description": "The details of Managed Identity of Disk Encryption Set used for Managed Disk Encryption. Only returned in Hybrid ComputeMode workspace.", + "$ref": "#/definitions/ManagedIdentityConfiguration" + }, + "diskEncryptionSetId": { + "readOnly": true, + "type": "string", + "description": "The resource Id of the managed disk encryption set. Not allowed in Serverless ComputeMode workspace." + }, + "encryption": { + "type": "object", + "description": "Encryption properties for databricks workspace. Supported in both Serverless and Hybrid ComputeMode workspace.", + "properties": { + "entities": { + "$ref": "#/definitions/EncryptionEntitiesDefinition", + "description": "Encryption entities definition for the workspace." + } + }, + "required": [ + "entities" + ] + }, + "enhancedSecurityCompliance": { + "description": "Contains settings related to the Enhanced Security and Compliance Add-On. Supported in both Serverless and Hybrid ComputeMode workspace.", + "$ref": "#/definitions/EnhancedSecurityComplianceDefinition" + }, + "privateEndpointConnections": { + "readOnly": true, + "description": "Private endpoint connections created on the workspace. Supported in both Serverless and Hybrid ComputeMode workspace.", + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "publicNetworkAccess": { + "type": "string", + "description": "The network access type for accessing workspace. Set value to disabled to access workspace only via private link. Used to configure front-end only private link for Serverless ComputeMode workspace.", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "PublicNetworkAccess" + } + }, + "requiredNsgRules": { + "type": "string", + "description": "Gets or sets a value indicating whether data plane (clusters) to control plane communication happen over private endpoint. Supported values are 'AllRules' and 'NoAzureDatabricksRules'. 'NoAzureServiceRules' value is for internal use only. Not allowed in Serverless ComputeMode workspace.", + "enum": [ + "AllRules", + "NoAzureDatabricksRules", + "NoAzureServiceRules" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "RequiredNsgRules" + } + }, + "defaultCatalog": { + "description": "Properties for Default Catalog configuration during workspace creation. Not allowed in Serverless ComputeMode workspace.", + "$ref": "#/definitions/DefaultCatalogProperties" + }, + "isUcEnabled": { + "readOnly": true, + "description": "Indicates whether unity catalog enabled for the workspace or not. Set as true in Serverless ComputeMode workspace.", + "type": "boolean" + }, + "accessConnector": { + "description": "Access Connector Resource that is going to be associated with Databricks Workspace. Not allowed in Serverless ComputeMode workspace.", + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "The resource ID of Azure Databricks Access Connector Resource.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Databricks/accessConnectors" + } + ] + } + }, + "identityType": { + "type": "string", + "description": "The identity type of the Access Connector Resource.", + "enum": [ + "SystemAssigned", + "UserAssigned" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "IdentityType" + } + }, + "userAssignedIdentityId": { + "type": "string", + "format": "arm-id", + "description": "The resource ID of the User Assigned Identity associated with the Access Connector Resource. This is required for type 'UserAssigned' and not valid for type 'SystemAssigned'.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.ManagedIdentity/userAssignedIdentities" + } + ] + } + } + }, + "required": [ + "id", + "identityType" + ] + }, + "defaultStorageFirewall": { + "description": "Gets or Sets Default Storage Firewall configuration information. Not allowed in Serverless ComputeMode workspace.", + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "defaultStorageFirewall" + } + } + }, + "required": [ + "computeMode" + ], + "description": "The workspace properties." + }, + "TrackedResource": { + "type": "object", + "description": "The resource model definition for a ARM tracked top level resource", + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "read", + "create", + "update" + ], + "description": "Resource tags." + }, + "location": { + "type": "string", + "x-ms-mutability": [ + "read", + "create" + ], + "description": "The geo-location where the resource lives" + } + }, + "required": [ + "location" + ], + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ] + }, + "Resource": { + "type": "object", + "description": "The core properties of ARM resources", + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the resource" + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts." + } + }, + "x-ms-azure-resource": true + }, + "Sku": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The SKU name." + }, + "tier": { + "type": "string", + "description": "The SKU tier." + } + }, + "required": [ + "name" + ], + "description": "SKU for the resource." + }, + "ProvisioningState": { + "description": "Provisioning status of the workspace.", + "readOnly": true, + "enum": [ + "Accepted", + "Running", + "Ready", + "Creating", + "Created", + "Deleting", + "Deleted", + "Canceled", + "Failed", + "Succeeded", + "Updating" + ], + "type": "string", + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true + } + }, + "PeeringProvisioningState": { + "type": "string", + "readOnly": true, + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Updating", + "Deleting", + "Failed" + ], + "x-ms-enum": { + "name": "PeeringProvisioningState", + "modelAsString": true + } + }, + "ManagedIdentityConfiguration": { + "type": "object", + "description": "The Managed Identity details for storage account.", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The objectId of the Managed Identity that is linked to the Managed Storage account.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "format": "uuid", + "description": "The tenant Id where the Managed Identity is created.", + "readOnly": true + }, + "type": { + "type": "string", + "description": "The type of Identity created. It can be either SystemAssigned or UserAssigned.", + "readOnly": true + } + } + }, + "EnhancedSecurityComplianceDefinition": { + "type": "object", + "description": "Status of settings related to the Enhanced Security and Compliance Add-On.", + "properties": { + "automaticClusterUpdate": { + "type": "string", + "description": "Status of automated cluster updates feature.", + "$ref": "#/definitions/AutomaticClusterUpdateDefinition" + }, + "complianceSecurityProfile": { + "type": "object", + "description": "Status of Compliance Security Profile feature.", + "$ref": "#/definitions/ComplianceSecurityProfileDefinition" + }, + "enhancedSecurityMonitoring": { + "type": "object", + "description": "Status of Enhanced Security Monitoring feature.", + "$ref": "#/definitions/EnhancedSecurityMonitoringDefinition" + } + } + }, + "AutomaticClusterUpdateDefinition": { + "type": "object", + "description": "Status of automated cluster updates feature.", + "properties": { + "value": { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "AutomaticClusterUpdateValue" + } + } + } + }, + "EnhancedSecurityMonitoringDefinition": { + "type": "object", + "description": "Status of Enhanced Security Monitoring feature.", + "properties": { + "value": { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "EnhancedSecurityMonitoringValue" + } + } + } + }, + "ComplianceSecurityProfileDefinition": { + "type": "object", + "description": "Status of Compliance Security Profile feature.", + "properties": { + "complianceStandards": { + "description": "Compliance standards associated with the workspace.", + "type": "array", + "items": { + "$ref": "#/definitions/ComplianceStandardDefinition" + } + }, + "value": { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "modelAsString": true, + "name": "ComplianceSecurityProfileValue" + } + } + } + }, + "ComplianceStandardDefinition": { + "type": "string", + "description": "Compliance standard that can be associated with a workspace. For more information regarding available compliance standard, please visit https://learn.microsoft.com/en-us/azure/databricks/security/privacy/security-profile" + }, + "WorkspaceCustomParameterType": { + "description": "The workspace's custom parameters.", + "enum": [ + "Bool", + "Object", + "String" + ], + "type": "string", + "x-ms-enum": { + "name": "CustomParameterType", + "modelAsString": true + } + }, + "WorkspaceNoPublicIPBooleanParameter": { + "properties": { + "type": { + "$ref": "#/definitions/WorkspaceCustomParameterType", + "description": "The type of variable that this is" + }, + "value": { + "type": "boolean", + "description": "The value which should be used for this field." + } + }, + "type": "object", + "required": [ + "value" + ], + "description": "The value which should be used for this field." + }, + "WorkspaceCustomBooleanParameter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/WorkspaceCustomParameterType", + "description": "The type of variable that this is" + }, + "value": { + "type": "boolean", + "description": "The value which should be used for this field." + } + }, + "required": [ + "value" + ], + "description": "The value which should be used for this field." + }, + "WorkspaceCustomObjectParameter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/WorkspaceCustomParameterType", + "description": "The type of variable that this is" + }, + "value": { + "type": "object", + "description": "The value which should be used for this field." + } + }, + "required": [ + "value" + ], + "description": "The value which should be used for this field." + }, + "WorkspaceCustomStringParameter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/WorkspaceCustomParameterType", + "description": "The type of variable that this is" + }, + "value": { + "type": "string", + "description": "The value which should be used for this field." + } + }, + "required": [ + "value" + ], + "description": "The Value." + }, + "WorkspaceCustomParameters": { + "type": "object", + "properties": { + "amlWorkspaceId": { + "$ref": "#/definitions/WorkspaceCustomStringParameter", + "description": "The ID of a Azure Machine Learning workspace to link with Databricks workspace. Not allowed in Serverless ComputeMode workspace." + }, + "customVirtualNetworkId": { + "$ref": "#/definitions/WorkspaceCustomStringParameter", + "description": "The ID of a Virtual Network where this Databricks Cluster should be created. Not allowed in Serverless ComputeMode workspace." + }, + "customPublicSubnetName": { + "$ref": "#/definitions/WorkspaceCustomStringParameter", + "description": "The name of a Public Subnet within the Virtual Network. Not allowed in Serverless ComputeMode workspace." + }, + "customPrivateSubnetName": { + "$ref": "#/definitions/WorkspaceCustomStringParameter", + "description": "The name of the Private Subnet within the Virtual Network. Not allowed in Serverless ComputeMode workspace." + }, + "enableNoPublicIp": { + "$ref": "#/definitions/WorkspaceNoPublicIPBooleanParameter", + "description": "Boolean indicating whether the public IP should be disabled. Default value is true. Not allowed in Serverless ComputeMode workspace." + }, + "loadBalancerBackendPoolName": { + "$ref": "#/definitions/WorkspaceCustomStringParameter", + "description": "Name of the outbound Load Balancer Backend Pool for Secure Cluster Connectivity (No Public IP). Not allowed in Serverless ComputeMode workspace." + }, + "loadBalancerId": { + "$ref": "#/definitions/WorkspaceCustomStringParameter", + "description": "Resource URI of Outbound Load balancer for Secure Cluster Connectivity (No Public IP) workspace. Not allowed in Serverless ComputeMode workspace." + }, + "natGatewayName": { + "$ref": "#/definitions/WorkspaceCustomStringParameter", + "description": "Name of the NAT gateway for Secure Cluster Connectivity (No Public IP) workspace subnets. Not allowed in Serverless ComputeMode workspace." + }, + "publicIpName": { + "$ref": "#/definitions/WorkspaceCustomStringParameter", + "description": "Name of the Public IP for No Public IP workspace with managed vNet. Not allowed in Serverless ComputeMode workspace." + }, + "prepareEncryption": { + "$ref": "#/definitions/WorkspaceCustomBooleanParameter", + "description": "Prepare the workspace for encryption. Enables the Managed Identity for managed storage account. Not allowed in Serverless ComputeMode workspace." + }, + "encryption": { + "$ref": "#/definitions/WorkspaceEncryptionParameter", + "description": "Contains the encryption details for Customer-Managed Key (CMK) enabled workspace.Not allowed in Serverless ComputeMode workspace." + }, + "requireInfrastructureEncryption": { + "$ref": "#/definitions/WorkspaceCustomBooleanParameter", + "description": "A boolean indicating whether or not the DBFS root file system will be enabled with secondary layer of encryption with platform managed keys for data at rest. Not allowed in Serverless ComputeMode workspace." + }, + "storageAccountName": { + "$ref": "#/definitions/WorkspaceCustomStringParameter", + "description": "Default DBFS storage account name. Not allowed in Serverless ComputeMode workspace." + }, + "storageAccountSkuName": { + "$ref": "#/definitions/WorkspaceCustomStringParameter", + "description": "Storage account SKU name, ex: Standard_GRS, Standard_LRS. Refer https://aka.ms/storageskus for valid inputs. Not allowed in Serverless ComputeMode workspace." + }, + "vnetAddressPrefix": { + "$ref": "#/definitions/WorkspaceCustomStringParameter", + "description": "Address prefix for Managed virtual network. Default value for this input is 10.139. Not allowed in Serverless ComputeMode workspace." + }, + "resourceTags": { + "$ref": "#/definitions/WorkspaceCustomObjectParameter", + "readOnly": true, + "description": "Tags applied to resources under Managed resource group. These can be updated by updating tags at workspace level. Not allowed in Serverless ComputeMode workspace." + } + }, + "description": "Custom Parameters used for Workspace Creation. Not allowed in Serverless ComputeMode workspace." + }, + "CreatedDateTime": { + "type": "string", + "format": "date-time", + "description": "The date and time stamp when the workspace was created.", + "readOnly": true + }, + "CreatedBy": { + "type": "object", + "properties": { + "oid": { + "type": "string", + "format": "uuid", + "description": "The Object ID that created the workspace.", + "readOnly": true + }, + "puid": { + "type": "string", + "description": "The Personal Object ID corresponding to the object ID above", + "readOnly": true + }, + "applicationId": { + "type": "string", + "format": "uuid", + "description": "The application ID of the application that initiated the creation of the workspace. For example, Azure Portal.", + "readOnly": true + } + }, + "description": "Provides details of the entity that created/updated the workspace." + }, + "WorkspaceEncryptionParameter": { + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/WorkspaceCustomParameterType", + "description": "The type of variable that this is" + }, + "value": { + "$ref": "#/definitions/Encryption", + "description": "The value which should be used for this field." + } + }, + "description": "The object that contains details of encryption used on the workspace." + }, + "Encryption": { + "type": "object", + "properties": { + "keySource": { + "type": "string", + "description": "The encryption keySource (provider). Possible values (case-insensitive): Default, Microsoft.Keyvault", + "enum": [ + "Default", + "Microsoft.Keyvault" + ], + "x-ms-enum": { + "name": "KeySource", + "modelAsString": true + }, + "default": "Default" + }, + "KeyName": { + "type": "string", + "description": "The name of KeyVault key." + }, + "keyversion": { + "type": "string", + "description": "The version of KeyVault key.", + "x-ms-client-name": "KeyVersion" + }, + "keyvaulturi": { + "type": "string", + "description": "The Uri of KeyVault.", + "x-ms-client-name": "KeyVaultUri" + } + }, + "description": "The object that contains details of encryption used on the workspace." + }, + "DefaultCatalogProperties": { + "type": "object", + "properties": { + "initialType": { + "type": "string", + "description": "Defines the initial type of the default catalog. Possible values (case-insensitive): HiveMetastore, UnityCatalog", + "enum": [ + "HiveMetastore", + "UnityCatalog" + ], + "x-ms-enum": { + "name": "initialType", + "modelAsString": true + }, + "default": "HiveMetastore" + }, + "initialName": { + "type": "string", + "description": "Specifies the initial Name of default catalog. If not specified, the name of the workspace will be used." + } + }, + "description": "These properties lets user specify default catalog properties during workspace creation. Not allowed in Serverless ComputeMode workspace." + }, + "EncryptionEntitiesDefinition": { + "type": "object", + "properties": { + "managedServices": { + "type": "object", + "description": "Encryption properties for the databricks managed services. Supported in both Serverless and Hybrid ComputeMode.", + "$ref": "#/definitions/EncryptionV2" + }, + "managedDisk": { + "type": "object", + "description": "Encryption properties for the databricks managed disks. Not allowed in Serverless ComputeMode workspace.", + "$ref": "#/definitions/ManagedDiskEncryption" + } + }, + "description": "Encryption entities for databricks workspace resource." + }, + "EncryptionV2": { + "type": "object", + "properties": { + "keySource": { + "type": "string", + "description": "The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Keyvault", + "enum": [ + "Microsoft.Keyvault" + ], + "x-ms-enum": { + "name": "EncryptionKeySource", + "modelAsString": true + } + }, + "keyVaultProperties": { + "type": "object", + "properties": { + "keyVaultUri": { + "type": "string", + "description": "The Uri of KeyVault." + }, + "keyName": { + "type": "string", + "description": "The name of KeyVault key." + }, + "keyVersion": { + "type": "string", + "description": "The version of KeyVault key." + } + }, + "required": [ + "keyVaultUri", + "keyName", + "keyVersion" + ], + "description": "Key Vault input properties for encryption." + } + }, + "required": [ + "keySource" + ], + "description": "The object that contains details of encryption used on the workspace." + }, + "ManagedDiskEncryption": { + "type": "object", + "properties": { + "keySource": { + "type": "string", + "description": "The encryption keySource (provider). Possible values (case-insensitive): Microsoft.Keyvault. Not allowed in Serverless ComputeMode workspace.", + "enum": [ + "Microsoft.Keyvault" + ], + "x-ms-enum": { + "name": "EncryptionKeySource", + "modelAsString": true + } + }, + "keyVaultProperties": { + "type": "object", + "properties": { + "keyVaultUri": { + "type": "string", + "description": "The URI of KeyVault." + }, + "keyName": { + "type": "string", + "description": "The name of KeyVault key." + }, + "keyVersion": { + "type": "string", + "description": "The version of KeyVault key." + } + }, + "required": [ + "keyVaultUri", + "keyName", + "keyVersion" + ], + "description": "Key Vault input properties for encryption." + }, + "rotationToLatestKeyVersionEnabled": { + "type": "boolean", + "description": "Indicate whether the latest key version should be automatically used for Managed Disk Encryption." + } + }, + "required": [ + "keySource", + "keyVaultProperties" + ], + "description": "The object that contains details of encryption used on the workspace." + }, + "WorkspaceProviderAuthorization": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "format": "uuid", + "description": "The provider's principal identifier. This is the identity that the provider will use to call ARM to manage the workspace resources." + }, + "roleDefinitionId": { + "type": "string", + "format": "uuid", + "description": "The provider's role definition identifier. This role will define all the permissions that the provider must have on the workspace's container resource group. This role definition cannot have permission to delete the resource group." + } + }, + "required": [ + "principalId", + "roleDefinitionId" + ], + "description": "The workspace provider authorization." + }, + "WorkspaceUpdate": { + "description": "An update to a workspace.", + "type": "object", + "properties": { + "tags": { + "description": "Resource tags.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "ErrorDetail": { + "title": "Error details.", + "type": "object", + "properties": { + "code": { + "description": "The error's code.", + "type": "string" + }, + "message": { + "description": "A human readable error message.", + "type": "string" + }, + "target": { + "description": "Indicates which property in the request is responsible for the error.", + "type": "string" + } + }, + "required": [ + "code", + "message" + ] + }, + "ErrorInfo": { + "title": "The code and message for an error.", + "type": "object", + "properties": { + "code": { + "description": "A machine readable error code.", + "type": "string" + }, + "message": { + "description": "A human readable error message.", + "type": "string" + }, + "details": { + "description": "error details.", + "type": "array", + "items": { + "$ref": "#/definitions/ErrorDetail" + } + }, + "innererror": { + "description": "Inner error details if they exist.", + "type": "string" + } + }, + "required": [ + "code", + "message" + ] + }, + "ErrorResponse": { + "title": "Error response.", + "description": "Contains details when the response code indicates an error.", + "type": "object", + "properties": { + "error": { + "description": "The error details.", + "$ref": "#/definitions/ErrorInfo" + } + }, + "required": [ + "error" + ] + }, + "WorkspaceListResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Workspace" + }, + "description": "The array of workspaces." + }, + "nextLink": { + "type": "string", + "description": "The URL to use for getting the next set of results." + } + }, + "description": "List of workspaces." + }, + "Operation": { + "description": "REST API operation", + "type": "object", + "properties": { + "name": { + "description": "Operation name: {provider}/{resource}/{operation}", + "type": "string" + }, + "display": { + "type": "object", + "description": "The object that represents the operation.", + "properties": { + "provider": { + "description": "Service provider: ex Microsoft.Databricks", + "type": "string" + }, + "resource": { + "description": "Resource on which the operation is performed.", + "type": "string" + }, + "operation": { + "description": "Operation type: Read, write, delete, etc.", + "type": "string" + }, + "description": { + "description": "Description for the resource operation.", + "type": "string" + } + } + } + } + }, + "OperationListResult": { + "description": "Result of the request to list Resource Provider operations. It contains a list of operations and a URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "x-ms-identifiers": [], + "items": { + "$ref": "#/definitions/Operation" + }, + "description": "List of Resource Provider operations supported by the Resource Provider resource provider." + }, + "nextLink": { + "type": "string", + "description": "URL to get the next set of operation list results if there are any." + } + } + }, + "PrivateLinkResourcesList": { + "description": "The available private link resources for a workspace", + "type": "object", + "properties": { + "value": { + "description": "The list of available private link resources for a workspace", + "type": "array", + "items": { + "$ref": "#/definitions/GroupIdInformation" + } + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of private link resources." + } + } + }, + "GroupIdInformation": { + "description": "The group information for creating a private endpoint on a workspace", + "type": "object", + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The resource identifier." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The resource name." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The resource type." + }, + "properties": { + "description": "The group id properties.", + "type": "object", + "x-ms-client-flatten": false, + "$ref": "#/definitions/GroupIdInformationProperties" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "required": [ + "properties" + ] + }, + "GroupIdInformationProperties": { + "description": "The properties for a group information object", + "type": "object", + "properties": { + "groupId": { + "type": "string", + "description": "The group id" + }, + "requiredMembers": { + "description": "The required members for a specific group id", + "type": "array", + "items": { + "type": "string" + } + }, + "requiredZoneNames": { + "description": "The required DNS zones for a specific group id", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PrivateEndpointConnectionsList": { + "description": "List of private link connections.", + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "description": "The list of returned private endpoint connection." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of endpoint connections." + } + } + }, + "PrivateEndpointConnection": { + "description": "The private endpoint connection of a workspace.", + "x-ms-azure-resource": true, + "type": "object", + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The resource identifier." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The resource name." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The resource type." + }, + "properties": { + "type": "object", + "description": "The private endpoint connection properties.", + "x-ms-client-flatten": false, + "$ref": "#/definitions/PrivateEndpointConnectionProperties" + } + }, + "required": [ + "properties" + ] + }, + "PrivateEndpointConnectionProperties": { + "description": "The properties of a private endpoint connection.", + "type": "object", + "properties": { + "privateEndpoint": { + "title": "Private endpoint", + "description": "Private endpoint", + "$ref": "#/definitions/PrivateEndpoint" + }, + "groupIds": { + "type": "array", + "description": "GroupIds from the private link service resource.", + "items": { + "type": "string" + } + }, + "privateLinkServiceConnectionState": { + "title": "Private link service service connection state", + "description": "Private endpoint connection state", + "$ref": "#/definitions/PrivateLinkServiceConnectionState" + }, + "provisioningState": { + "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState", + "description": "Provisioning state of the private endpoint connection." + } + }, + "required": [ + "privateLinkServiceConnectionState" + ] + }, + "PrivateEndpoint": { + "description": "The private endpoint property of a private endpoint connection.", + "type": "object", + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The resource identifier." + } + } + }, + "PrivateLinkServiceConnectionState": { + "description": "The current state of a private endpoint connection.", + "type": "object", + "properties": { + "status": { + "description": "The status of a private endpoint connection", + "enum": [ + "Pending", + "Approved", + "Rejected", + "Disconnected" + ], + "type": "string", + "x-ms-enum": { + "name": "PrivateLinkServiceConnectionStatus", + "modelAsString": true + } + }, + "description": { + "type": "string", + "description": "The description for the current state of a private endpoint connection" + }, + "actionsRequired": { + "type": "string", + "description": "Actions required for a private endpoint connection" + } + }, + "required": [ + "status" + ] + }, + "PrivateEndpointConnectionProvisioningState": { + "type": "string", + "readOnly": true, + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Creating", + "Updating", + "Deleting", + "Failed" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": true + } + }, + "EndpointDependency": { + "description": "A domain name or IP address the Workspace is reaching at.", + "type": "object", + "properties": { + "domainName": { + "description": "The domain name of the dependency.", + "type": "string" + }, + "endpointDetails": { + "description": "The Ports used when connecting to domainName.", + "type": "array", + "x-ms-identifiers": [], + "items": { + "$ref": "#/definitions/EndpointDetail" + } + } + } + }, + "EndpointDetail": { + "description": "Connect information from the Workspace to a single endpoint.", + "type": "object", + "properties": { + "ipAddress": { + "description": "An IP Address that Domain Name currently resolves to.", + "type": "string" + }, + "port": { + "format": "int32", + "description": "The port an endpoint is connected to.", + "type": "integer" + }, + "latency": { + "format": "double", + "description": "The time in milliseconds it takes for the connection to be created from the Workspace to this IpAddress at this Port.", + "type": "number" + }, + "isAccessible": { + "description": "Whether it is possible to create a connection from the Workspace to this IpAddress at this Port.", + "type": "boolean" + } + } + }, + "OutboundEnvironmentEndpoint": { + "description": "Egress endpoints which Workspace connects to for common purposes.", + "type": "object", + "properties": { + "category": { + "description": "The category of endpoints accessed by the Workspace, e.g. azure-storage, azure-mysql, etc.", + "type": "string" + }, + "endpoints": { + "description": "The endpoints that Workspace connect to", + "type": "array", + "x-ms-identifiers": [], + "items": { + "$ref": "#/definitions/EndpointDependency" + } + } + } + }, + "OutboundEnvironmentEndpointCollection": { + "description": "Collection of outbound network dependency endpoints", + "type": "array", + "x-ms-identifiers": [], + "items": { + "$ref": "#/definitions/OutboundEnvironmentEndpoint" + } + } + }, + "parameters": { + "WorkspaceName": { + "name": "workspaceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the workspace.", + "minLength": 3, + "maxLength": 64, + "x-ms-parameter-location": "method" + }, + "PeeringNameParameter": { + "name": "peeringName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the workspace vNet peering.", + "x-ms-parameter-location": "method" + }, + "GroupId": { + "name": "groupId", + "in": "path", + "description": "The name of the private link resource", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "PrivateEndpointConnectionName": { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the private endpoint connection", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorCreateOrUpdate.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorCreateOrUpdate.json new file mode 100644 index 000000000000..65968f2af633 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorCreateOrUpdate.json @@ -0,0 +1,54 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "connectorName": "myAccessConnector", + "api-version": "2026-01-01", + "identity": { + "type": "SystemAssigned" + }, + "parameters": { + "location": "westus" + } + }, + "responses": { + "200": { + "body": { + "name": "myAccessConnector", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector2", + "type": "Microsoft.Databricks/accessConnectors", + "location": "West US", + "tags": { + "key1": "value1" + }, + "properties": { + "provisioningState": "Succeeded", + "referedBy": [] + }, + "identity": { + "principalId": "5619ff16-afe1-47e5-ae67-8393c6c3223d", + "tenantId": "e3fe3f22-4b98-4c04-82cc-d8817d1b17da", + "type": "SystemAssigned" + } + } + }, + "201": { + "body": { + "name": "myAccessConnector", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector", + "type": "Microsoft.Databricks/accessConnectors", + "location": "West US", + "tags": {}, + "properties": { + "provisioningState": "Succeeded", + "referedBy": [] + }, + "identity": { + "principalId": "5619ff16-afe1-47e5-ae67-8393c6c3223d", + "tenantId": "e3fe3f22-4b98-4c04-82cc-d8817d1b17da", + "type": "SystemAssigned" + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorCreateOrUpdateWithUserAssigned.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorCreateOrUpdateWithUserAssigned.json new file mode 100644 index 000000000000..94af4822cd41 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorCreateOrUpdateWithUserAssigned.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "connectorName": "myAccessConnector", + "api-version": "2026-01-01", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/11111111-1111-1111-1111-111111111111/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testuseridentity": {} + } + }, + "parameters": { + "location": "westus" + } + }, + "responses": { + "200": { + "body": { + "name": "myAccessConnector", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector2", + "type": "Microsoft.Databricks/accessConnectors", + "location": "West US", + "tags": { + "key1": "value1" + }, + "properties": { + "provisioningState": "Succeeded", + "referedBy": [] + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/11111111-1111-1111-1111-111111111111/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testuseridentity": { + "principalId": "329429bc-adec-4dce-9568-25a6d486e468", + "clientId": "329419bc-adec-4dce-9568-25a6d486e468" + } + } + } + } + }, + "201": { + "body": { + "name": "myAccessConnector", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector", + "type": "Microsoft.Databricks/accessConnectors", + "location": "West US", + "tags": {}, + "properties": { + "provisioningState": "Succeeded", + "referedBy": [] + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/11111111-1111-1111-1111-111111111111/resourcegroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testuseridentity": { + "principalId": "329429bc-adec-4dce-9568-25a6d486e468", + "clientId": "329419bc-adec-4dce-9568-25a6d486e468" + } + } + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorDelete.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorDelete.json new file mode 100644 index 000000000000..c40131c60018 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorDelete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "connectorName": "myAccessConnector", + "resourceGroupName": "rg", + "api-version": "2026-01-01", + "subscriptionId": "11111111-1111-1111-1111-111111111111" + }, + "responses": { + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.Databricks/accessConnectors/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2023-05-01", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.Databricks/accessConnectors/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2023-05-01" + } + }, + "200": {}, + "204": {} + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorGet.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorGet.json new file mode 100644 index 000000000000..1dc049f388aa --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorGet.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "connectorName": "myAccessConnector", + "api-version": "2026-01-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "name": "myAccessConnector", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector", + "type": "Microsoft.Databricks/accessConnectors", + "location": "West US", + "tags": { + "key1": "value1" + }, + "properties": { + "provisioningState": "Succeeded", + "referedBy": [] + }, + "identity": { + "principalId": "5619ff16-afe1-47e5-ae67-8393c6c3223d", + "tenantId": "e3fe3f22-4b98-4c04-82cc-d8817d1b17da", + "type": "SystemAssigned" + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorPatchUpdate.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorPatchUpdate.json new file mode 100644 index 000000000000..3d5cb4d93dcb --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorPatchUpdate.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "connectorName": "myAccessConnector", + "api-version": "2026-01-01", + "parameters": { + "tags": { + "key1": "value1" + } + } + }, + "responses": { + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.Databricks/accessConnectors/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2023-05-01", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.Databricks/accessConnectors/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2023-05-01" + } + }, + "200": { + "body": { + "name": "myAccessConnector", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector", + "type": "Microsoft.Databricks/accessConnectors", + "location": "West US", + "tags": { + "key1": "value1" + }, + "properties": { + "provisioningState": "Succeeded", + "referedBy": [] + }, + "identity": { + "principalId": "5619ff16-afe1-47e5-ae67-8393c6c3223d", + "tenantId": "e3fe3f22-4b98-4c04-82cc-d8817d1b17da", + "type": "SystemAssigned" + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorsListByResourceGroup.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorsListByResourceGroup.json new file mode 100644 index 000000000000..36a64da20afd --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorsListByResourceGroup.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "api-version": "2026-01-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "value": [ + { + "name": "myAccessConnector1", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector1", + "type": "Microsoft.Databricks/accessConnectors", + "location": "West US", + "tags": {}, + "properties": { + "provisioningState": "Succeeded", + "referedBy": [] + }, + "identity": { + "principalId": "5619ff16-afe1-47e5-ae67-8393c6c3223d", + "tenantId": "e3fe3f22-4b98-4c04-82cc-d8817d1b17da", + "type": "SystemAssigned" + } + }, + { + "name": "myAccessConnector", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector2", + "type": "Microsoft.Databricks/accessConnectors", + "location": "West US", + "tags": {}, + "properties": { + "provisioningState": "Succeeded", + "referedBy": [] + }, + "identity": { + "principalId": "7ad2bae1-37d0-413e-91f8-b0b7bef807fc", + "tenantId": "e3fe3f22-4b98-4c04-82cc-d8817d1b17da", + "type": "SystemAssigned" + } + } + ] + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorsListBySubscriptionId.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorsListBySubscriptionId.json new file mode 100644 index 000000000000..e4a4b8c7bfd8 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/AccessConnectorsListBySubscriptionId.json @@ -0,0 +1,79 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "api-version": "2026-01-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "value": [ + { + "name": "myAccessConnector1", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg1/providers/Microsoft.Databricks/accessConnectors/myAccessConnector1", + "type": "Microsoft.Databricks/accessConnectors", + "location": "West US", + "tags": {}, + "properties": { + "provisioningState": "Succeeded", + "referedBy": [] + }, + "identity": { + "principalId": "7ad2bae1-37d0-413e-91f8-b0b7bef807fc", + "tenantId": "e3fe3f22-4b98-4c04-82cc-d8817d1b17da", + "type": "SystemAssigned" + } + }, + { + "name": "myAccessConnector2", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg1/providers/Microsoft.Databricks/accessConnectors/myAccessConnector2", + "type": "Microsoft.Databricks/accessConnectors", + "location": "West US", + "tags": {}, + "properties": { + "provisioningState": "Succeeded", + "referedBy": [] + }, + "identity": { + "principalId": "5619ff16-afe1-47e5-ae67-8393c6c3223d", + "tenantId": "e3fe3f22-4b98-4c04-82cc-d8817d1b17da", + "type": "SystemAssigned" + } + }, + { + "name": "myAccessConnector3", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg2/providers/Microsoft.Databricks/accessConnectors/myAccessConnector3", + "type": "Microsoft.Databricks/accessConnectors", + "location": "West US", + "tags": {}, + "properties": { + "provisioningState": "Succeeded", + "referedBy": [] + }, + "identity": { + "principalId": "04b25430-8db1-48a0-9c2f-32270ed63eef", + "tenantId": "e3fe3f22-4b98-4c04-82cc-d8817d1b17da", + "type": "SystemAssigned" + } + }, + { + "name": "myAccessConnector4", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg3/providers/Microsoft.Databricks/accessConnectors/myAccessConnector4", + "type": "Microsoft.Databricks/accessConnectors", + "location": "West US", + "tags": {}, + "properties": { + "provisioningState": "Succeeded", + "referedBy": [] + }, + "identity": { + "principalId": "4856ceed-0a99-4df7-b9fc-35603650af06", + "tenantId": "e3fe3f22-4b98-4c04-82cc-d8817d1b17da", + "type": "SystemAssigned" + } + } + ] + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/DisableEncryption.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/DisableEncryption.json new file mode 100644 index 000000000000..7bea16693fad --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/DisableEncryption.json @@ -0,0 +1,138 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01", + "parameters": { + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": { + "encryption": { + "value": { + "keySource": "Default" + } + } + } + }, + "location": "westus", + "sku": { + "name": "premium" + } + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "sku": { + "name": "premium" + }, + "location": "East US 2", + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": { + "customPrivateSubnetName": { + "type": "String", + "value": "PrivateBob" + }, + "customPublicSubnetName": { + "type": "String", + "value": "PublicSarah" + }, + "customVirtualNetworkId": { + "type": "String", + "value": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/myNetwork" + }, + "prepareEncryption": { + "type": "Bool", + "value": true + }, + "encryption": { + "type": "Object", + "value": { + "keySource": "Default" + } + } + }, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "storageAccountIdentity": { + "principalId": "55555555-5555-5555-5555-555555555555", + "tenantId": "66666666-6666-6666-6666-666666666666", + "type": "SystemAssigned" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net", + "isUcEnabled": true + } + } + }, + "201": { + "headers": {}, + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": { + "environment": "dev" + }, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "provisioningState": "Accepted", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "storageAccountIdentity": { + "principalId": "55555555-5555-5555-5555-555555555555", + "tenantId": "66666666-6666-6666-6666-666666666666", + "type": "SystemAssigned" + }, + "isUcEnabled": true + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/EnableEncryption.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/EnableEncryption.json new file mode 100644 index 000000000000..45f82c036c3f --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/EnableEncryption.json @@ -0,0 +1,147 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01", + "parameters": { + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": { + "prepareEncryption": { + "value": true + }, + "encryption": { + "value": { + "keySource": "Microsoft.Keyvault", + "keyvaulturi": "https://myKeyVault.vault.azure.net/", + "KeyName": "myKeyName", + "keyversion": "00000000000000000000000000000000" + } + } + } + }, + "location": "westus", + "sku": { + "name": "premium" + } + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "sku": { + "name": "premium" + }, + "location": "East US 2", + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": { + "customPrivateSubnetName": { + "type": "String", + "value": "PrivateBob" + }, + "customPublicSubnetName": { + "type": "String", + "value": "PublicSarah" + }, + "customVirtualNetworkId": { + "type": "String", + "value": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/myNetwork" + }, + "prepareEncryption": { + "type": "Bool", + "value": true + }, + "encryption": { + "type": "Object", + "value": { + "keySource": "Microsoft.Keyvault", + "keyvaulturi": "https://myKeyVault.vault.azure.net/", + "KeyName": "myKeyName", + "keyversion": "00000000000000000000000000000000" + } + } + }, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "storageAccountIdentity": { + "principalId": "55555555-5555-5555-5555-555555555555", + "tenantId": "66666666-6666-6666-6666-666666666666", + "type": "SystemAssigned" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net", + "isUcEnabled": true + } + } + }, + "201": { + "headers": {}, + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": { + "environment": "dev" + }, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "provisioningState": "Accepted", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "storageAccountIdentity": { + "principalId": "55555555-5555-5555-5555-555555555555", + "tenantId": "66666666-6666-6666-6666-666666666666", + "type": "SystemAssigned" + }, + "isUcEnabled": true + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/ListPrivateEndpointConnections.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/ListPrivateEndpointConnections.json new file mode 100644 index 000000000000..08e8275e75ef --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/ListPrivateEndpointConnections.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "workspaceName": "myWorkspace", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-01-01", + "subscriptionId": "11111111-1111-1111-1111-111111111111" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myResourceGroup/providers/Microsoft.Databricks/workspaces/myWorkspace/PrivateEndpointConnections/myWorkspace.23456789-1111-1111-1111-111111111111", + "name": "myWorkspace.23456789-1111-1111-1111-111111111111", + "type": "Microsoft.Databricks/workspaces/PrivateEndpointConnections", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Approved by johndoe@company.com", + "actionsRequired": "None" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/ListPrivateLinkResources.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/ListPrivateLinkResources.json new file mode 100644 index 000000000000..feccac550aa7 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/ListPrivateLinkResources.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "workspaceName": "myWorkspace", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-01-01", + "subscriptionId": "11111111-1111-1111-1111-111111111111" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myResourceGroup/providers/Microsoft.Databricks/workspaces/myWorkspace/PrivateLinkResources/databricks_ui_api", + "name": "databricks_ui_api", + "type": "Microsoft.Databricks/workspaces/PrivateLinkResources", + "properties": { + "groupId": "databricks_ui_api", + "requiredMembers": [ + "databricks_ui_api" + ], + "requiredZoneNames": [ + "privatelink.azuredatabricks.net" + ] + } + } + ] + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/OperationsList.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/OperationsList.json new file mode 100644 index 000000000000..9160e861dacc --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/OperationsList.json @@ -0,0 +1,128 @@ +{ + "parameters": { + "api-version": "2026-01-01" + }, + "responses": { + "200": { + "body": [ + { + "name": "Microsoft.Databricks/workspaces/read", + "display": { + "provider": "Microsoft Databricks", + "resource": "Workspace", + "operation": "List Workspaces", + "description": "Retrieves a list of workspaces." + } + }, + { + "name": "Microsoft.Databricks/workspaces/write", + "display": { + "provider": "Microsoft Databricks", + "resource": "Workspace", + "operation": "Create Workspace", + "description": "Creates an workspace." + } + }, + { + "name": "Microsoft.Databricks/workspaces/delete", + "display": { + "provider": "Microsoft Databricks", + "resource": "Workspace", + "operation": "Remove Workspace", + "description": "Removes an workspace." + } + }, + { + "name": "Microsoft.Databricks/workspaces/virtualNetworkPeerings/read", + "display": { + "provider": "Microsoft Databricks", + "resource": "Virtual Network Peering", + "operation": "Get Virtual Network Peering", + "description": "Gets the virtual network peering." + } + }, + { + "name": "Microsoft.Databricks/workspaces/virtualNetworkPeerings/write", + "display": { + "provider": "Microsoft Databricks", + "resource": "Virtual Network Peering", + "operation": "Add Virtual Network Peering", + "description": "Add or modify virtual network peering" + } + }, + { + "name": "Microsoft.Databricks/workspaces/virtualNetworkPeerings/delete", + "display": { + "provider": "Microsoft Databricks", + "resource": "Virtual Network Peering", + "operation": "Delete Virtual Network Peering", + "description": "Deletes a virtual network peering" + } + }, + { + "name": "Microsoft.Databricks/workspaces/PrivateLinkResources/read", + "display": { + "provider": "Microsoft Databricks", + "resource": "Private Link Resources", + "operation": "List Private Link Resources", + "description": "Retrieve List of Private Link Resources" + } + }, + { + "name": "Microsoft.Databricks/workspaces/PrivateEndpointConnections/read", + "display": { + "provider": "Microsoft Databricks", + "resource": "Private Endpoint Connection", + "operation": "List Private Endpoint Connections", + "description": "Retrieve List of Private Endpoint Connections" + } + }, + { + "name": "Microsoft.Databricks/workspaces/PrivateEndpointConnections/write", + "display": { + "provider": "Microsoft Databricks", + "resource": "Private Endpoint Connection", + "operation": "Update Private Endpoint Connection", + "description": "Update a virtual network peering" + } + }, + { + "name": "Microsoft.Databricks/workspaces/PrivateEndpointConnections/delete", + "display": { + "provider": "Microsoft Databricks", + "resource": "Private Endpoint Connection", + "operation": "Delete Private Endpoint Connection", + "description": "Delete a Private Endpoint Connection" + } + }, + { + "name": "Microsoft.Databricks/accessConnectors/read", + "display": { + "provider": "Azure Databricks", + "resource": "AccessConnector", + "operation": "List Azure Databricks Access Connector", + "description": "Retrieves a list of Azure Databricks Access Connector." + } + }, + { + "name": "Microsoft.Databricks/accessConnectors/write", + "display": { + "provider": "Azure Databricks", + "resource": "AccessConnector", + "operation": "Create Azure Databricks Access Connector", + "description": "Creates an Azure Databricks Access Connector." + } + }, + { + "name": "Microsoft.Databricks/accessConnectors/delete", + "display": { + "provider": "Azure Databricks", + "resource": "AccessConnector", + "operation": "Remove Azure Databricks Access Connector", + "description": "Removes Azure Databricks Access Connector." + } + } + ] + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/OutboundNetworkDependenciesEndpointsList.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/OutboundNetworkDependenciesEndpointsList.json new file mode 100644 index 000000000000..3eb8731296f5 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/OutboundNetworkDependenciesEndpointsList.json @@ -0,0 +1,120 @@ +{ + "parameters": { + "workspaceName": "myWorkspace", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-01-01", + "subscriptionId": "11111111-1111-1111-1111-111111111111" + }, + "responses": { + "200": { + "body": [ + { + "category": "Webapp", + "endpoints": [ + { + "endpointDetails": [ + { + "ipAddress": "11.111.111.11/11", + "port": 123 + }, + { + "ipAddress": "22.222.222.22/22", + "port": 123 + } + ] + } + ] + }, + { + "category": "Control Plane NAT", + "endpoints": [ + { + "endpointDetails": [ + { + "ipAddress": "33.33.333.333/33", + "port": 123 + } + ] + } + ] + }, + { + "category": "Extended infrastructure", + "endpoints": [ + { + "endpointDetails": [ + { + "ipAddress": "44.44.44.44/44", + "port": 123 + } + ] + } + ] + }, + { + "category": "Azure Storage", + "endpoints": [ + { + "domainName": "xxx.blob.core.windows.net", + "endpointDetails": [ + { + "port": 123 + } + ] + }, + { + "domainName": "yyy.blob.core.windows.net", + "endpointDetails": [ + { + "port": 123 + } + ] + }, + { + "domainName": "zzz.blob.core.windows.net", + "endpointDetails": [ + { + "port": 123 + } + ] + } + ] + }, + { + "category": "Azure My SQL", + "endpoints": [ + { + "domainName": "xxx.mysql.database.azure.com", + "endpointDetails": [ + { + "port": 1234 + } + ] + }, + { + "domainName": "yyy.mysql.database.azure.com", + "endpointDetails": [ + { + "port": 1234 + } + ] + } + ] + }, + { + "category": "Azure Servicebus", + "endpoints": [ + { + "domainName": "xxx.servicebus.windows.net", + "endpointDetails": [ + { + "port": 1234 + } + ] + } + ] + } + ] + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrepareEncryption.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrepareEncryption.json new file mode 100644 index 000000000000..74261bb8eebf --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrepareEncryption.json @@ -0,0 +1,106 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01", + "parameters": { + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": { + "prepareEncryption": { + "value": true + } + } + }, + "location": "westus", + "sku": { + "name": "premium" + } + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "sku": { + "name": "premium" + }, + "location": "East US 2", + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": null, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "storageAccountIdentity": { + "principalId": "55555555-5555-5555-5555-555555555555", + "tenantId": "66666666-6666-6666-6666-666666666666", + "type": "SystemAssigned" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net" + } + } + }, + "201": { + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": { + "environment": "dev" + }, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": null, + "provisioningState": "Accepted", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z" + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateEndpointConnectionsDelete.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateEndpointConnectionsDelete.json new file mode 100644 index 000000000000..7a0154995036 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateEndpointConnectionsDelete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "workspaceName": "myWorkspace", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-01-01", + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "privateEndpointConnectionName": "myWorkspace.23456789-1111-1111-1111-111111111111" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.Databricks/locations/exampleLocation/operationStatuses/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2026-01-01", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.Databricks/locations/exampleLocation/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2026-01-01" + } + }, + "204": {} + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateEndpointConnectionsGet.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateEndpointConnectionsGet.json new file mode 100644 index 000000000000..c4f0b464e1f0 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateEndpointConnectionsGet.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "workspaceName": "myWorkspace", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-01-01", + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "privateEndpointConnectionName": "myWorkspace.23456789-1111-1111-1111-111111111111" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myResourceGroup/providers/Microsoft.Databricks/workspaces/myWorkspace/PrivateEndpointConnections/myWorkspace.23456789-1111-1111-1111-111111111111", + "name": "myWorkspace.23456789-1111-1111-1111-111111111111", + "type": "Microsoft.Databricks/workspaces/PrivateEndpointConnections", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "status": "Pending", + "description": "Please approve my request!", + "actionsRequired": "None" + }, + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateEndpointConnectionsUpdate.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateEndpointConnectionsUpdate.json new file mode 100644 index 000000000000..fb81ae3f40f0 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateEndpointConnectionsUpdate.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "workspaceName": "myWorkspace", + "resourceGroupName": "myResourceGroup", + "api-version": "2026-01-01", + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "privateEndpointConnectionName": "myWorkspace.23456789-1111-1111-1111-111111111111", + "privateEndpointConnection": { + "properties": { + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Approved by databricksadmin@contoso.com" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myResourceGroup/providers/Microsoft.Databricks/workspaces/myWorkspace/PrivateEndpointConnections/myWorkspace.23456789-1111-1111-1111-111111111111", + "name": "myWorkspace.23456789-1111-1111-1111-111111111111", + "type": "Microsoft.Databricks/workspaces/PrivateEndpointConnections", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Approved by databricksadmin@contoso.com", + "actionsRequired": "None" + }, + "provisioningState": "Succeeded" + } + } + }, + "202": { + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myResourceGroup/providers/Microsoft.Databricks/workspaces/myWorkspace/PrivateEndpointConnections/myWorkspace.23456789-1111-1111-1111-111111111111", + "name": "myWorkspace.23456789-1111-1111-1111-111111111111", + "type": "Microsoft.Databricks/workspaces/PrivateEndpointConnections", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Approved by databricksadmin@contoso.com", + "actionsRequired": "None" + }, + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateLinkResourcesGet.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateLinkResourcesGet.json new file mode 100644 index 000000000000..3d75653f1c5c --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/PrivateLinkResourcesGet.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "resourceGroupName": "myResourceGroup", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01", + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "groupId": "databricks_ui_api" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myResourceGroup/providers/Microsoft.Databricks/workspaces/myWorkspace/PrivateLinkResources/databricks_ui_api", + "name": "databricks_ui_api", + "type": "Microsoft.Databricks/workspaces/PrivateLinkResources", + "properties": { + "groupId": "databricks_ui_api", + "requiredMembers": [ + "databricks_ui_api" + ], + "requiredZoneNames": [ + "privatelink.azuredatabricks.net" + ] + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceCreate.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceCreate.json new file mode 100644 index 000000000000..549932d74918 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceCreate.json @@ -0,0 +1,120 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01", + "parameters": { + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "defaultCatalog": { + "initialType": "UnityCatalog", + "initialName": "" + }, + "accessConnector": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/adbrg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector", + "identityType": "SystemAssigned" + }, + "defaultStorageFirewall": "Enabled" + }, + "location": "westus", + "sku": { + "name": "premium" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": null, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "accessConnector": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/adbrg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector", + "identityType": "SystemAssigned" + }, + "defaultStorageFirewall": "Enabled", + "parameters": null, + "provisioningState": "Accepted", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "defaultCatalog": { + "initialType": "UnityCatalog", + "initialName": "" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net", + "isUcEnabled": true + } + } + }, + "201": { + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": { + "environment": "dev" + }, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": null, + "accessConnector": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/adbrg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector", + "identityType": "SystemAssigned" + }, + "defaultStorageFirewall": "Enabled", + "provisioningState": "Accepted", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "isUcEnabled": true + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceCreateServerless.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceCreateServerless.json new file mode 100644 index 000000000000..937b86e70900 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceCreateServerless.json @@ -0,0 +1,96 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01", + "parameters": { + "properties": { + "computeMode": "Serverless" + }, + "location": "westus", + "sku": { + "name": "premium" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": null, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Serverless", + "provisioningState": "Accepted", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "defaultCatalog": { + "initialType": "UnityCatalog", + "initialName": "" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net", + "isUcEnabled": true + } + } + }, + "201": { + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": { + "environment": "dev" + }, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Serverless", + "provisioningState": "Accepted", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "isUcEnabled": true + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceCreateWithParameters.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceCreateWithParameters.json new file mode 100644 index 000000000000..ffad7c0e3668 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceCreateWithParameters.json @@ -0,0 +1,152 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01", + "parameters": { + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "defaultCatalog": { + "initialType": "HiveMetastore", + "initialName": "" + }, + "accessConnector": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/adbrg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector", + "identityType": "UserAssigned", + "userAssignedIdentityId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity" + }, + "defaultStorageFirewall": "Enabled", + "parameters": { + "customVirtualNetworkId": { + "value": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/myNetwork" + }, + "customPublicSubnetName": { + "value": "myPublicSubnet" + }, + "customPrivateSubnetName": { + "value": "myPrivateSubnet" + } + } + }, + "location": "westus", + "sku": { + "name": "premium" + } + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": null, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": { + "customPrivateSubnetName": { + "type": "String", + "value": "myPrivateSubnet" + }, + "customPublicSubnetName": { + "type": "String", + "value": "myPublicSubnet" + }, + "customVirtualNetworkId": { + "type": "String", + "value": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/myNetwork" + } + }, + "accessConnector": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/adbrg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector", + "identityType": "UserAssigned", + "userAssignedIdentityId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity" + }, + "defaultStorageFirewall": "Enabled", + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "defaultCatalog": { + "initialType": "HiveMetastore", + "initialName": "" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net", + "isUcEnabled": true + } + } + }, + "201": { + "headers": {}, + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": { + "environment": "dev" + }, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "provisioningState": "Accepted", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "isUcEnabled": true, + "accessConnector": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/adbrg/providers/Microsoft.Databricks/accessConnectors/myAccessConnector", + "identityType": "UserAssigned", + "userAssignedIdentityId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity" + }, + "defaultStorageFirewall": "Enabled", + "defaultCatalog": { + "initialType": "HiveMetastore", + "initialName": "" + } + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceDelete.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceDelete.json new file mode 100644 index 000000000000..ca4034c56004 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceDelete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "workspaceName": "myWorkspace", + "resourceGroupName": "rg", + "api-version": "2026-01-01", + "subscriptionId": "11111111-1111-1111-1111-111111111111" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.Databricks/workspaces/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2026-01-01", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.Databricks/workspaces/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2026-01-01" + } + }, + "204": {} + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceDeleteForceDeletion.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceDeleteForceDeletion.json new file mode 100644 index 000000000000..4f8470276370 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceDeleteForceDeletion.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "workspaceName": "myWorkspace", + "resourceGroupName": "rg", + "api-version": "2026-01-01", + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "forceDeletion": "false" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.Databricks/workspaces/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2026-01-01", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.Databricks/workspaces/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2026-01-01" + } + }, + "204": {} + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceEnhancedSecurityComplianceCreateOrUpdate.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceEnhancedSecurityComplianceCreateOrUpdate.json new file mode 100644 index 000000000000..cb634d2f00ac --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceEnhancedSecurityComplianceCreateOrUpdate.json @@ -0,0 +1,140 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01", + "parameters": { + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "enhancedSecurityCompliance": { + "automaticClusterUpdate": { + "value": "Enabled" + }, + "complianceSecurityProfile": { + "value": "Enabled", + "complianceStandards": [ + "PCI_DSS", + "HIPAA" + ] + }, + "enhancedSecurityMonitoring": { + "value": "Enabled" + } + } + }, + "location": "eastus2", + "sku": { + "name": "premium" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": null, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "enhancedSecurityCompliance": { + "automaticClusterUpdate": { + "value": "Enabled" + }, + "complianceSecurityProfile": { + "value": "Enabled", + "complianceStandards": [ + "PCI_DSS", + "HIPAA" + ] + }, + "enhancedSecurityMonitoring": { + "value": "Enabled" + } + }, + "parameters": null, + "provisioningState": "Accepted", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2023-08-24T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net", + "isUcEnabled": true + } + } + }, + "201": { + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": null, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "enhancedSecurityCompliance": { + "automaticClusterUpdate": { + "value": "Enabled" + }, + "complianceSecurityProfile": { + "value": "Enabled", + "complianceStandards": [ + "PCI_DSS", + "HIPAA" + ] + }, + "enhancedSecurityMonitoring": { + "value": "Enabled" + } + }, + "parameters": null, + "provisioningState": "Accepted", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2023-08-24T00:10:29.2858439Z", + "isUcEnabled": true + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceEnhancedSecurityComplianceGet.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceEnhancedSecurityComplianceGet.json new file mode 100644 index 000000000000..03c6eea27973 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceEnhancedSecurityComplianceGet.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": null, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "enhancedSecurityCompliance": { + "automaticClusterUpdate": { + "value": "Enabled" + }, + "complianceSecurityProfile": { + "value": "Enabled", + "complianceStandards": [ + "PCI_DSS", + "HIPAA" + ] + }, + "enhancedSecurityMonitoring": { + "value": "Enabled" + } + }, + "parameters": null, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2023-08-24T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net", + "isUcEnabled": true + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceGet.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceGet.json new file mode 100644 index 000000000000..444d8ad7cf27 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceGet.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "sku": { + "name": "premium" + }, + "location": "East US 2", + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": null, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net", + "isUcEnabled": true + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceGetParameters.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceGetParameters.json new file mode 100644 index 000000000000..d6b489fcb6df --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceGetParameters.json @@ -0,0 +1,82 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": { + "customPrivateSubnetName": { + "type": "String", + "value": "PrivateBob" + }, + "customPublicSubnetName": { + "type": "String", + "value": "PublicSarah" + }, + "customVirtualNetworkId": { + "type": "String", + "value": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/myNetwork" + } + }, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net", + "privateEndpointConnections": [ + { + "id": "/subscriptions/subscriptionId/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace/privateEndpointConnections/myWorkspace.23456789-1111-1111-1111-111111111111", + "name": "myWorkspace.23456789-1111-1111-1111-111111111111", + "type": "Microsoft.Databricks/workspaces/privateEndpointConnections", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/subscriptionId/resourceGroups/networkResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Auto-Approved", + "actionsRequired": "None" + }, + "provisioningState": "Succeeded" + } + } + ], + "publicNetworkAccess": "Disabled", + "requiredNsgRules": "NoAzureDatabricksRules", + "isUcEnabled": false + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceManagedDiskEncryptionCreate.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceManagedDiskEncryptionCreate.json new file mode 100644 index 000000000000..5cd21d12de37 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceManagedDiskEncryptionCreate.json @@ -0,0 +1,148 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01", + "parameters": { + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "encryption": { + "entities": { + "managedDisk": { + "keySource": "Microsoft.Keyvault", + "keyVaultProperties": { + "keyVaultUri": "https://test-vault-name.vault.azure.net/", + "keyName": "test-cmk-key", + "keyVersion": "00000000000000000000000000000000" + }, + "rotationToLatestKeyVersionEnabled": true + } + } + } + }, + "location": "westus", + "sku": { + "name": "premium" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": null, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "diskEncryptionSetId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG/providers/Microsoft.Compute/diskEncryptionSets/myDiskEncryptionSet", + "encryption": { + "entities": { + "managedDisk": { + "keySource": "Microsoft.Keyvault", + "keyVaultProperties": { + "keyVaultUri": "https://test-vault-name.vault.azure.net/", + "keyName": "test-cmk-key", + "keyVersion": "00000000000000000000000000000000" + }, + "rotationToLatestKeyVersionEnabled": true + } + } + }, + "parameters": null, + "provisioningState": "Accepted", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "managedDiskIdentity": { + "principalId": "22222222-2222-2222-2222-222222222222", + "tenantId": "44444444-4444-4444-4444-444444444444", + "type": "SystemAssigned" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net", + "isUcEnabled": true + } + } + }, + "201": { + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": { + "environment": "dev" + }, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "diskEncryptionSetId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG/providers/Microsoft.Compute/diskEncryptionSets/myDiskEncryptionSet", + "encryption": { + "entities": { + "managedDisk": { + "keySource": "Microsoft.Keyvault", + "keyVaultProperties": { + "keyVaultUri": "https://test-vault-name.vault.azure.net/", + "keyName": "test-cmk-key", + "keyVersion": "00000000000000000000000000000000" + }, + "rotationToLatestKeyVersionEnabled": true + } + } + }, + "parameters": null, + "provisioningState": "Accepted", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "managedDiskIdentity": { + "principalId": "22222222-2222-2222-2222-222222222222", + "tenantId": "44444444-4444-4444-4444-444444444444", + "type": "SystemAssigned" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "isUcEnabled": true + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceManagedDiskEncryptionGet.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceManagedDiskEncryptionGet.json new file mode 100644 index 000000000000..871e29826fd8 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceManagedDiskEncryptionGet.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "name": "myWorkspace", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "sku": { + "name": "premium" + }, + "location": "East US 2", + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "diskEncryptionSetId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG/providers/Microsoft.Compute/diskEncryptionSets/myDiskEncryptionSet", + "encryption": { + "entities": { + "managedDisk": { + "keySource": "Microsoft.Keyvault", + "keyVaultProperties": { + "keyVaultUri": "https://test-vault-name.vault.azure.net/", + "keyName": "test-cmk-key", + "keyVersion": "00000000000000000000000000000000" + }, + "rotationToLatestKeyVersionEnabled": true + } + } + }, + "parameters": null, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "managedDiskIdentity": { + "principalId": "22222222-2222-2222-2222-222222222222", + "tenantId": "44444444-4444-4444-4444-444444444444", + "type": "SystemAssigned" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net", + "isUcEnabled": true + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceManagedDiskEncryptionUpdate.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceManagedDiskEncryptionUpdate.json new file mode 100644 index 000000000000..ea7560581292 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceManagedDiskEncryptionUpdate.json @@ -0,0 +1,156 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01", + "parameters": { + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "encryption": { + "entities": { + "managedDisk": { + "keySource": "Microsoft.Keyvault", + "keyVaultProperties": { + "keyVaultUri": "https://test-vault-name.vault.azure.net/", + "keyName": "test-cmk-key", + "keyVersion": "00000000000000000000000000000000" + }, + "rotationToLatestKeyVersionEnabled": true + } + } + } + }, + "location": "westus", + "sku": { + "name": "premium" + }, + "tags": { + "mytag1": "myvalue1" + } + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": { + "mytag1": "myvalue1" + }, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "diskEncryptionSetId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG/providers/Microsoft.Compute/diskEncryptionSets/myDiskEncryptionSet", + "encryption": { + "entities": { + "managedDisk": { + "keySource": "Microsoft.Keyvault", + "keyVaultProperties": { + "keyVaultUri": "https://test-vault-name.vault.azure.net/", + "keyName": "test-cmk-key", + "keyVersion": "00000000000000000000000000000000" + }, + "rotationToLatestKeyVersionEnabled": true + } + } + }, + "parameters": null, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "managedDiskIdentity": { + "principalId": "22222222-2222-2222-2222-222222222222", + "tenantId": "44444444-4444-4444-4444-444444444444", + "type": "SystemAssigned" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "6666666666666666", + "workspaceUrl": "adb-6666666666666666.19.azuredatabricks.net", + "isUcEnabled": true + } + } + }, + "201": { + "headers": {}, + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": { + "mytag1": "myvalue1" + }, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "diskEncryptionSetId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG/providers/Microsoft.Compute/diskEncryptionSets/myDiskEncryptionSet", + "encryption": { + "entities": { + "managedDisk": { + "keySource": "Microsoft.Keyvault", + "keyVaultProperties": { + "keyVaultUri": "https://test-vault-name.vault.azure.net/", + "keyName": "test-cmk-key", + "keyVersion": "00000000000000000000000000000000" + }, + "rotationToLatestKeyVersionEnabled": true + } + } + }, + "parameters": null, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "managedDiskIdentity": { + "principalId": "22222222-2222-2222-2222-222222222222", + "tenantId": "44444444-4444-4444-4444-444444444444", + "type": "SystemAssigned" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "6666666666666666", + "workspaceUrl": "adb-6666666666666666.19.azuredatabricks.net", + "isUcEnabled": true + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceUpdate.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceUpdate.json new file mode 100644 index 000000000000..e2db5f30d01f --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceUpdate.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "workspaceName": "myWorkspace", + "api-version": "2026-01-01", + "parameters": { + "tags": { + "mytag1": "myvalue1" + } + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": { + "mytag1": "myvalue1" + }, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": null, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "6666666666666666", + "workspaceUrl": "adb-6666666666666666.19.azuredatabricks.net", + "isUcEnabled": true + } + } + }, + "202": { + "headers": { + "Retry-After": "10", + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.Databricks/workspaces/swaggerExample/operationStatus/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2026-01-01", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/resourceGroups/HelloWorld/providers/Microsoft.Databricks/workspaces/swaggerExample/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2026-01-01" + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetPeeringGet.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetPeeringGet.json new file mode 100644 index 000000000000..83dadc35b0f7 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetPeeringGet.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "subscriptionId": "0140911e-1040-48da-8bc9-b99fb3dd88a6/", + "resourceGroupName": "subramantest", + "workspaceName": "adbworkspace", + "peeringName": "vNetPeeringTest", + "api-version": "2026-01-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "/subscriptions/0140911e-1040-48da-8bc9-b99fb3dd88a6/resourceGroups/subramantest/providers/Microsoft.Databricks/workspaces/adbworkspace/virtualNetworkPeerings/vNetPeeringTest", + "name": "vNetPeeringTest", + "properties": { + "allowVirtualNetworkAccess": true, + "allowForwardedTraffic": false, + "allowGatewayTransit": false, + "useRemoteGateways": false, + "remoteVirtualNetwork": { + "id": "/subscriptions/0140911e-1040-48da-8bc9-b99fb3dd88a6/resourceGroups/subramantest/providers/Microsoft.Network/virtualNetworks/subramanvnet" + }, + "remoteAddressSpace": { + "addressPrefixes": [ + "10.203.0.0/16" + ] + }, + "databricksVirtualNetwork": { + "id": "/subscriptions/0140911e-1040-48da-8bc9-b99fb3dd88a6/resourceGroups/databricks-rg-adbworkspace-2jsxhmzoyooxm/providers/Microsoft.Network/virtualNetworks/workers-vnet" + }, + "databricksAddressSpace": { + "addressPrefixes": [ + "10.139.0.0/16" + ] + }, + "peeringState": "Initiated", + "provisioningState": "Succeeded" + } + } + }, + "204": {} + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetPeeringList.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetPeeringList.json new file mode 100644 index 000000000000..d514eef65540 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetPeeringList.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "subscriptionId": "0140911e-1040-48da-8bc9-b99fb3dd88a6/", + "resourceGroupName": "subramantest", + "workspaceName": "adbworkspace", + "api-version": "2026-01-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "value": [ + { + "id": "/subscriptions/0140911e-1040-48da-8bc9-b99fb3dd88a6/resourceGroups/subramantest/providers/Microsoft.Databricks/workspaces/adbworkspace/virtualNetworkPeerings/vNetPeeringTest", + "name": "vNetPeeringTest", + "properties": { + "allowVirtualNetworkAccess": true, + "allowForwardedTraffic": false, + "allowGatewayTransit": false, + "useRemoteGateways": false, + "remoteVirtualNetwork": { + "id": "/subscriptions/0140911e-1040-48da-8bc9-b99fb3dd88a6/resourceGroups/subramantest/providers/Microsoft.Network/virtualNetworks/subramanvnet" + }, + "remoteAddressSpace": { + "addressPrefixes": [ + "10.203.0.0/16" + ] + }, + "databricksVirtualNetwork": { + "id": "/subscriptions/0140911e-1040-48da-8bc9-b99fb3dd88a6/resourceGroups/databricks-rg-adbworkspace-2jsxhmzoyooxm/providers/Microsoft.Network/virtualNetworks/workers-vnet" + }, + "databricksAddressSpace": { + "addressPrefixes": [ + "10.139.0.0/16" + ] + }, + "peeringState": "Initiated", + "provisioningState": "Succeeded" + } + } + ] + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetworkPeeringCreateOrUpdate.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetworkPeeringCreateOrUpdate.json new file mode 100644 index 000000000000..a86cb8375cf3 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetworkPeeringCreateOrUpdate.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "subscriptionId": "0140911e-1040-48da-8bc9-b99fb3dd88a6/", + "resourceGroupName": "subramantest", + "workspaceName": "adbworkspace", + "peeringName": "vNetPeeringTest", + "api-version": "2026-01-01", + "VirtualNetworkPeeringParameters": { + "properties": { + "allowForwardedTraffic": false, + "allowGatewayTransit": false, + "allowVirtualNetworkAccess": true, + "remoteVirtualNetwork": { + "id": "/subscriptions/0140911e-1040-48da-8bc9-b99fb3dd88a6/resourceGroups/subramantest/providers/Microsoft.Network/virtualNetworks/subramanvnet" + }, + "useRemoteGateways": false + } + } + }, + "responses": { + "201": { + "headers": {}, + "body": { + "id": "/subscriptions/0140911e-1040-48da-8bc9-b99fb3dd88a6/resourceGroups/subramantest/providers/Microsoft.Databricks/workspaces/adbworkspace/virtualNetworkPeerings/vNetPeeringTest", + "name": "vNetPeeringTest", + "properties": { + "allowVirtualNetworkAccess": true, + "allowForwardedTraffic": false, + "allowGatewayTransit": false, + "useRemoteGateways": false, + "remoteVirtualNetwork": { + "id": "/subscriptions/0140911e-1040-48da-8bc9-b99fb3dd88a6/resourceGroups/subramantest/providers/Microsoft.Network/virtualNetworks/subramanvnet" + }, + "remoteAddressSpace": { + "addressPrefixes": [ + "10.203.0.0/16" + ] + }, + "databricksVirtualNetwork": { + "id": "/subscriptions/0140911e-1040-48da-8bc9-b99fb3dd88a6/resourceGroups/databricks-rg-adbworkspace-2jsxhmzoyooxm/providers/Microsoft.Network/virtualNetworks/workers-vnet" + }, + "databricksAddressSpace": { + "addressPrefixes": [ + "10.139.0.0/16" + ] + }, + "peeringState": "Initiated", + "provisioningState": "Updating" + } + } + }, + "200": { + "headers": {}, + "body": { + "id": "/subscriptions/0140911e-1040-48da-8bc9-b99fb3dd88a6/resourceGroups/subramantest/providers/Microsoft.Databricks/workspaces/adbworkspace/virtualNetworkPeerings/vNetPeeringTest", + "name": "vNetPeeringTest", + "properties": { + "allowVirtualNetworkAccess": true, + "allowForwardedTraffic": false, + "allowGatewayTransit": false, + "useRemoteGateways": false, + "remoteVirtualNetwork": { + "id": "/subscriptions/0140911e-1040-48da-8bc9-b99fb3dd88a6/resourceGroups/subramantest/providers/Microsoft.Network/virtualNetworks/subramanvnet" + }, + "remoteAddressSpace": { + "addressPrefixes": [ + "10.203.0.0/16" + ] + }, + "databricksVirtualNetwork": { + "id": "/subscriptions/0140911e-1040-48da-8bc9-b99fb3dd88a6/resourceGroups/databricks-rg-adbworkspace-2jsxhmzoyooxm/providers/Microsoft.Network/virtualNetworks/workers-vnet" + }, + "databricksAddressSpace": { + "addressPrefixes": [ + "10.139.0.0/16" + ] + }, + "peeringState": "Initiated", + "provisioningState": "Updating" + } + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetworkPeeringDelete.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetworkPeeringDelete.json new file mode 100644 index 000000000000..a9235c6905d5 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspaceVirtualNetworkPeeringDelete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "subscriptionId": "0140911e-1040-48da-8bc9-b99fb3dd88a6/", + "resourceGroupName": "subramantest", + "workspaceName": "adbworkspace", + "peeringName": "vNetPeeringTest", + "api-version": "2026-01-01" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.Network/locations/exampleLocation/operations/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2026-01-01", + "Location": "/subscriptions/77777777-b0c6-47a2-b37c-d8e65a629c18/providers/Microsoft.Network/locations/exampleLocation/operationResults/YWUzNDFkMzQtZmM5OS00MmUyLWEzNDMtZGJkMDIxZjlmZjgzOzdmYzBiMzhmLTc2NmItNDM5NS05OWQ1LTVmOGEzNzg4MWQzNA==?api-version=2026-01-01" + } + }, + "204": {}, + "200": {} + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspacesListByResourceGroup.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspacesListByResourceGroup.json new file mode 100644 index 000000000000..243de92dd3bf --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspacesListByResourceGroup.json @@ -0,0 +1,89 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "resourceGroupName": "rg", + "api-version": "2026-01-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "value": [ + { + "name": "myWorkspace1", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace1", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": null, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": null, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net" + } + }, + { + "name": "myWorkspace2", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace2", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": null, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": null, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "6666666666666666", + "workspaceUrl": "adb-6666666666666666.19.azuredatabricks.net", + "isUcEnabled": true + } + } + ] + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspacesListBySubscription.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspacesListBySubscription.json new file mode 100644 index 000000000000..5b1a99e80482 --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/examples/WorkspacesListBySubscription.json @@ -0,0 +1,89 @@ +{ + "parameters": { + "subscriptionId": "11111111-1111-1111-1111-111111111111", + "api-version": "2026-01-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "value": [ + { + "name": "myWorkspace1", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace1", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": null, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": null, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "5555555555555555", + "workspaceUrl": "adb-5555555555555555.19.azuredatabricks.net", + "isUcEnabled": true + } + }, + { + "name": "myWorkspace2", + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg/providers/Microsoft.Databricks/workspaces/myWorkspace2", + "type": "Microsoft.Databricks/workspaces", + "location": "East US 2", + "tags": null, + "sku": { + "name": "premium" + }, + "properties": { + "computeMode": "Hybrid", + "managedResourceGroupId": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myManagedRG", + "parameters": null, + "provisioningState": "Succeeded", + "uiDefinitionUri": "https://path/to/workspaceCreateUiDefinition.json", + "authorizations": [ + { + "principalId": "00000000-0000-0000-0000-000000000000", + "roleDefinitionId": "11111111-1111-1111-1111-111111111111" + } + ], + "createdBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "updatedBy": { + "oid": "22222222-2222-2222-2222-222222222222", + "puid": "33333333", + "applicationId": "44444444-4444-4444-4444-444444444444" + }, + "createdDateTime": "2020-02-20T00:10:29.2858439Z", + "workspaceId": "6666666666666666", + "workspaceUrl": "adb-6666666666666666.19.azuredatabricks.net", + "isUcEnabled": false + } + } + ] + } + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/vnetpeering.json b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/vnetpeering.json new file mode 100644 index 000000000000..68d58ca5a94f --- /dev/null +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/stable/2026-01-01/vnetpeering.json @@ -0,0 +1,465 @@ +{ + "swagger": "2.0", + "info": { + "title": "DatabricksClient", + "version": "2026-01-01", + "description": "ARM Databricks" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Databricks/workspaces/{workspaceName}/virtualNetworkPeerings/{peeringName}": { + "get": { + "tags": [ + "vNetPeering" + ], + "operationId": "vNetPeering_Get", + "description": "Gets the workspace vNet Peering.", + "x-ms-examples": { + "Get a workspace with vNet Peering Configured": { + "$ref": "./examples/WorkspaceVirtualNetPeeringGet.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/PeeringNameParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/VirtualNetworkPeering" + } + }, + "204": { + "description": "OK - NoContent" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "vNetPeering" + ], + "operationId": "vNetPeering_Delete", + "description": "Deletes the workspace vNetPeering.", + "x-ms-examples": { + "Delete a workspace vNet Peering": { + "$ref": "./examples/WorkspaceVirtualNetworkPeeringDelete.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/PeeringNameParameter" + } + ], + "responses": { + "202": { + "description": "Accepted - Returns this status until the asynchronous operation has completed." + }, + "204": { + "description": "NoContent" + }, + "200": { + "description": "OK. The request has succeeded." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + }, + "put": { + "tags": [ + "vNetPeering" + ], + "operationId": "vNetPeering_CreateOrUpdate", + "description": "Creates vNet Peering for workspace.", + "x-ms-examples": { + "Create vNet Peering for Workspace": { + "$ref": "./examples/WorkspaceVirtualNetworkPeeringCreateOrUpdate.json" + } + }, + "parameters": [ + { + "name": "VirtualNetworkPeeringParameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualNetworkPeering" + }, + "description": "Parameters supplied to the create workspace vNet Peering." + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/PeeringNameParameter" + } + ], + "responses": { + "201": { + "description": "Created - Returns information about the workspace vNet peering, including provisioning status.", + "schema": { + "$ref": "#/definitions/VirtualNetworkPeering" + } + }, + "200": { + "description": "Update succeeded - Returns information about the workspace vNet peering.", + "schema": { + "$ref": "#/definitions/VirtualNetworkPeering" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Databricks/workspaces/{workspaceName}/virtualNetworkPeerings": { + "get": { + "tags": [ + "vNetPeering" + ], + "operationId": "vNetPeering_ListByWorkspace", + "description": "Lists the workspace vNet Peerings.", + "x-ms-examples": { + "List all vNet Peerings for the workspace": { + "$ref": "./examples/WorkspaceVirtualNetPeeringList.json" + } + }, + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkspaceName" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "List succeeded. Returns the resulting resource objects in response body.", + "schema": { + "$ref": "#/definitions/VirtualNetworkPeeringList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "ErrorDetail": { + "title": "Error details.", + "type": "object", + "properties": { + "code": { + "description": "The error's code.", + "type": "string" + }, + "message": { + "description": "A human readable error message.", + "type": "string" + }, + "target": { + "description": "Indicates which property in the request is responsible for the error.", + "type": "string" + } + }, + "required": [ + "code", + "message" + ] + }, + "ErrorInfo": { + "title": "The code and message for an error.", + "type": "object", + "properties": { + "code": { + "description": "A machine readable error code.", + "type": "string" + }, + "message": { + "description": "A human readable error message.", + "type": "string" + }, + "details": { + "description": "error details.", + "type": "array", + "items": { + "$ref": "#/definitions/ErrorDetail" + } + }, + "innererror": { + "description": "Inner error details if they exist.", + "type": "string" + } + }, + "required": [ + "code", + "message" + ] + }, + "ErrorResponse": { + "title": "Error response.", + "description": "Contains details when the response code indicates an error.", + "type": "object", + "properties": { + "error": { + "description": "The error details.", + "$ref": "#/definitions/ErrorInfo" + } + }, + "required": [ + "error" + ] + }, + "VirtualNetworkPeeringList": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualNetworkPeering" + }, + "description": "List of virtual network peerings on workspace." + }, + "nextLink": { + "type": "string", + "description": "URL to get the next set of virtual network peering list results if there are any." + } + }, + "description": "Gets all virtual network peerings under a workspace." + }, + "VirtualNetworkPeering": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualNetworkPeeringPropertiesFormat", + "description": "List of properties for vNet Peering" + }, + "name": { + "type": "string", + "description": "Name of the virtual network peering resource", + "readOnly": true + }, + "id": { + "type": "string", + "description": "Resource ID.", + "readOnly": true + }, + "type": { + "type": "string", + "description": "type of the virtual network peering resource", + "readOnly": true + } + }, + "required": [ + "properties" + ], + "description": "Peerings in a VirtualNetwork resource", + "x-ms-azure-resource": true + }, + "VirtualNetworkPeeringPropertiesFormat": { + "properties": { + "allowVirtualNetworkAccess": { + "type": "boolean", + "description": "Whether the VMs in the local virtual network space would be able to access the VMs in remote virtual network space." + }, + "allowForwardedTraffic": { + "type": "boolean", + "description": "Whether the forwarded traffic from the VMs in the local virtual network will be allowed/disallowed in remote virtual network." + }, + "allowGatewayTransit": { + "type": "boolean", + "description": "If gateway links can be used in remote virtual networking to link to this virtual network." + }, + "useRemoteGateways": { + "type": "boolean", + "description": "If remote gateways can be used on this virtual network. If the flag is set to true, and allowGatewayTransit on remote peering is also true, virtual network will use gateways of remote virtual network for transit. Only one peering can have this flag set to true. This flag cannot be set if virtual network already has a gateway." + }, + "databricksVirtualNetwork": { + "properties": { + "id": { + "type": "string", + "description": "The Id of the databricks virtual network." + } + }, + "description": " The remote virtual network should be in the same region. See here to learn more (https://docs.microsoft.com/en-us/azure/databricks/administration-guide/cloud-configurations/azure/vnet-peering)." + }, + "databricksAddressSpace": { + "$ref": "#/definitions/AddressSpace", + "description": "The reference to the databricks virtual network address space." + }, + "remoteVirtualNetwork": { + "properties": { + "id": { + "type": "string", + "description": "The Id of the remote virtual network." + } + }, + "description": " The remote virtual network should be in the same region. See here to learn more (https://docs.microsoft.com/en-us/azure/databricks/administration-guide/cloud-configurations/azure/vnet-peering)." + }, + "remoteAddressSpace": { + "$ref": "#/definitions/AddressSpace", + "description": "The reference to the remote virtual network address space." + }, + "peeringState": { + "type": "string", + "description": "The status of the virtual network peering.", + "enum": [ + "Initiated", + "Connected", + "Disconnected" + ], + "x-ms-enum": { + "name": "peeringState", + "modelAsString": true + }, + "readOnly": true + }, + "provisioningState": { + "readOnly": true, + "$ref": "#/definitions/PeeringProvisioningState", + "description": "The provisioning state of the virtual network peering resource." + } + }, + "required": [ + "remoteVirtualNetwork" + ], + "description": "Properties of the virtual network peering." + }, + "PeeringProvisioningState": { + "type": "string", + "readOnly": true, + "description": "The current provisioning state.", + "enum": [ + "Succeeded", + "Updating", + "Deleting", + "Failed" + ], + "x-ms-enum": { + "name": "PeeringProvisioningState", + "modelAsString": true + } + }, + "AddressSpace": { + "properties": { + "addressPrefixes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of address blocks reserved for this virtual network in CIDR notation." + } + }, + "description": "AddressSpace contains an array of IP address ranges that can be used by subnets of the virtual network." + } + }, + "parameters": { + "WorkspaceName": { + "name": "workspaceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the workspace.", + "minLength": 3, + "maxLength": 64, + "x-ms-parameter-location": "method" + }, + "PeeringNameParameter": { + "name": "peeringName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the workspace vNet peering.", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/suppressions.yaml b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/suppressions.yaml index 17c54b714e7e..d05b6e03fefd 100644 --- a/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/suppressions.yaml +++ b/specification/databricks/resource-manager/Microsoft.Databricks/Databricks/suppressions.yaml @@ -25,6 +25,9 @@ - tool: TypeSpecRequirement path: ./preview/2025-10-01-preview/*.json reason: Brownfield service not ready to migrate +- tool: TypeSpecRequirement + path: ./stable/2026-01-01/*.json + reason: Brownfield service not ready to migrate - tool: TypeSpecRequirement path: ./stable/2018-04-01/*.json reason: Brownfield service not ready to migrate From b971916ccce7a87579348051c9cef6433ff40a82 Mon Sep 17 00:00:00 2001 From: Dapeng Zhang Date: Mon, 15 Dec 2025 13:35:09 +0800 Subject: [PATCH 023/117] Clean up typespec issues in ACR (#39031) --- .../Registry/Archive.tsp | 60 ++-------- .../Registry/ArchiveVersion.tsp | 66 +---------- .../Registry/main.tsp | 23 +--- .../Registry/models.tsp | 112 ------------------ .../Registry/tspconfig.yaml | 8 +- 5 files changed, 15 insertions(+), 254 deletions(-) diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/Archive.tsp b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/Archive.tsp index 78d12c56415f..56c71efc9062 100644 --- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/Archive.tsp +++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/Archive.tsp @@ -9,29 +9,16 @@ using TypeSpec.Rest; using Azure.ResourceManager; using TypeSpec.Http; using TypeSpec.Versioning; -using TypeSpec.OpenAPI; namespace Microsoft.ContainerRegistry; +// we must have this legacy operations right now because there is a virtual resource `Package` between `Achieve` and `Registry` +// but we did not decide about how to represent such scenarios with "virtual resources" therefore we leave this legacy operations here for now. #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" interface AchieveOperationOps extends Azure.ResourceManager.Legacy.LegacyOperations< { - ...ApiVersionParameter, - ...SubscriptionIdParameter, - ...ResourceGroupParameter, - ...Azure.ResourceManager.Legacy.Provider, - - /** - * The name of the container registry. - */ - @path - @segment("registries") - @pattern("^[a-zA-Z0-9]*$") - @minLength(5) - @maxLength(50) - @doc("The name of the container registry.") - registryName: string, + ...ResourceInstanceParameters, /** * The package type. @@ -58,40 +45,6 @@ interface AchieveOperationOps } > {} -#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" -interface AchieveOps - extends Azure.ResourceManager.Legacy.LegacyOperations< - { - ...ApiVersionParameter, - ...SubscriptionIdParameter, - ...ResourceGroupParameter, - ...Azure.ResourceManager.Legacy.Provider, - - /** - * The name of the container registry. - */ - @path - @segment("registries") - @pattern("^[a-zA-Z0-9]*$") - @minLength(5) - @maxLength(50) - @doc("The name of the container registry.") - registryName: string, - - /** - * The package type. - */ - @path - @minLength(3) - @maxLength(50) - @pattern("^[a-zA-Z]*$") - @segment("packages") - @doc("The package type.") - packageType: string, - }, - {} - > {} - /** * An object that represents a archive for a container registry. */ @@ -137,9 +90,10 @@ interface Archives { /** * Lists all archives for the specified container registry and package type. */ - @action("archives") - @list - list is AchieveOps.Read>; + list is AchieveOperationOps.List< + Archive, + Response = ArmResponse + >; } @@maxLength(Archive.name, 200); diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/ArchiveVersion.tsp b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/ArchiveVersion.tsp index b1dcde68eadf..20953b7f9922 100644 --- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/ArchiveVersion.tsp +++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/ArchiveVersion.tsp @@ -9,29 +9,15 @@ using TypeSpec.Rest; using Azure.ResourceManager; using TypeSpec.Http; using TypeSpec.Versioning; -using TypeSpec.OpenAPI; namespace Microsoft.ContainerRegistry; +// we must have this legacy operations right now because there is a virtual resource `Package` between `Achieve` and `Registry` #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" interface ArchiveVersionOperationOps extends Azure.ResourceManager.Legacy.LegacyOperations< { - ...ApiVersionParameter, - ...SubscriptionIdParameter, - ...ResourceGroupParameter, - ...Azure.ResourceManager.Legacy.Provider, - - /** - * The name of the container registry. - */ - @path - @segment("registries") - @pattern("^[a-zA-Z0-9]*$") - @minLength(5) - @maxLength(50) - @doc("The name of the container registry.") - registryName: string, + ...ResourceInstanceParameters, /** * The package type. @@ -69,50 +55,6 @@ interface ArchiveVersionOperationOps } > {} -#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" -interface ArchiveVersionListOps - extends Azure.ResourceManager.Legacy.LegacyOperations< - { - ...ApiVersionParameter, - ...SubscriptionIdParameter, - ...ResourceGroupParameter, - ...Azure.ResourceManager.Legacy.Provider, - - /** - * The name of the container registry. - */ - @path - @segment("registries") - @pattern("^[a-zA-Z0-9]*$") - @minLength(5) - @maxLength(50) - @doc("The name of the container registry.") - registryName: string, - - /** - * The package type. - */ - @path - @segment("packages") - @minLength(3) - @maxLength(50) - @pattern("^[a-zA-Z]*$") - @doc("The package type.") - packageType: string, - - /** - * The name of the archive resource. - */ - @path - @segment("archives") - @pattern("^[a-zA-Z0-9-]*$") - @minLength(5) - @maxLength(200) - @doc("The name of the archive resource.") - archiveName: string, - }, - {} - > {} /** * An object that represents an export pipeline for a container registry. */ @@ -152,9 +94,7 @@ interface ArchiveVersions { /** * Lists all archive versions for the specified container registry, repository type and archive name. */ - @action("versions") - @list - list is ArchiveVersionListOps.Read< + list is ArchiveVersionOperationOps.List< ArchiveVersion, Response = ArmResponse >; diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/main.tsp b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/main.tsp index 54435c68df8b..7e3f9dad34ad 100644 --- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/main.tsp +++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/main.tsp @@ -52,9 +52,6 @@ import "./PipelineRun.tsp"; // Webhook feature import "./Webhook.tsp"; -using TypeSpec.Rest; -using TypeSpec.Http; -using Azure.ResourceManager.Foundations; using Azure.Core; using Azure.ResourceManager; using TypeSpec.Versioning; @@ -83,21 +80,5 @@ enum Versions { vLatestPreview: "2025-06-01-preview", } -interface Operations { - #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" - #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" - @tag("Operations") - @autoRoute - @Azure.ResourceManager.Private.armUpdateProviderNamespace - @doc("List the operations for the provider") - @segment("operations") - @list - list( - ...ApiVersionParameter, - - @path - @segment("providers") - @doc("The provider namespace (this parameter will not show up in operations).") - provider: "Microsoft.ThisWillBeReplaced", - ): ArmResponse | ErrorResponse; -} +interface Operations + extends Azure.ResourceManager.Legacy.Operations> {} diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/models.tsp b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/models.tsp index 3076e570737c..fa3d1cfd1e58 100644 --- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/models.tsp +++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/models.tsp @@ -4,12 +4,7 @@ import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-azure-resource-manager"; import "@typespec/versioning"; -using TypeSpec.Rest; -using TypeSpec.Http; -using TypeSpec.Versioning; -using Azure.Core; using Azure.ResourceManager; -using Azure.ResourceManager.Foundations; namespace Microsoft.ContainerRegistry; /** @@ -83,72 +78,6 @@ enum ResourceIdentityType { None, } -/** - * The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. - */ -model ProxyResource { - /** - * The resource ID. - */ - @visibility(Lifecycle.Read) - id?: string; - - /** - * The name of the resource. - */ - @visibility(Lifecycle.Read) - name?: string; - - /** - * The type of the resource. - */ - @visibility(Lifecycle.Read) - type?: string; - - /** - * Metadata pertaining to creation and last modification of the resource. - */ - @visibility(Lifecycle.Read) - systemData?: SystemData; -} - -/** - * Metadata pertaining to creation and last modification of the resource. - */ -model SystemData { - /** - * The identity that created the resource. - */ - createdBy?: string; - - /** - * The type of identity that created the resource. - */ - createdByType?: CreatedByType; - - /** - * The timestamp of resource creation (UTC). - */ - // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. - createdAt?: utcDateTime; - - /** - * The identity that last modified the resource. - */ - lastModifiedBy?: string; - - /** - * The type of identity that last modified the resource. - */ - lastModifiedByType?: LastModifiedByType; - - /** - * The timestamp of resource modification (UTC). - */ - // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. - lastModifiedAt?: utcDateTime; -} - /** * Managed identity for the resource. */ @@ -352,47 +281,6 @@ model OperationListResult { nextLink?: string; } -/** - * An Azure resource. - */ -model Resource { - /** - * The resource ID. - */ - @visibility(Lifecycle.Read) - id?: string; - - /** - * The name of the resource. - */ - @visibility(Lifecycle.Read) - name?: string; - - /** - * The type of the resource. - */ - @visibility(Lifecycle.Read) - type?: string; - - /** - * The location of the resource. This cannot be changed after the resource is created. - */ - @visibility(Lifecycle.Read, Lifecycle.Create) - location: string; - - /** - * The tags of the resource. - */ - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" - tags?: Record; - - /** - * Metadata pertaining to creation and last modification of the resource. - */ - @visibility(Lifecycle.Read) - systemData?: SystemData; -} - /** * The Active Directory Object that will be used for authenticating the token of a container registry. */ diff --git a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/tspconfig.yaml b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/tspconfig.yaml index d3b0e9a211de..03c65585a19d 100644 --- a/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/tspconfig.yaml +++ b/specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/Registry/tspconfig.yaml @@ -13,12 +13,10 @@ options: arm-types-dir: "{project-root}/../../../../common-types/resource-management" emit-lro-options: "all" - "@azure-tools/typespec-csharp": + "@azure-typespec/http-client-csharp-mgmt": emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - flavor: azure - clear-output-folder: true - model-namespace: true - namespace: "Azure.ResourceManager.ContainerRegistry" + package-name: "Azure.ResourceManager.ContainerRegistry" + namespace: "{package-name}" "@azure-tools/typespec-python": service-dir: "sdk/containerregistry" emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-containerregistry" From b772ed86631780efcb7890f14ce9f65cd1f69097 Mon Sep 17 00:00:00 2001 From: Dapeng Zhang Date: Mon, 15 Dec 2025 15:49:33 +0800 Subject: [PATCH 024/117] update the typespec and remove the operationId decorator for SAPVirtualMachine RP (#39116) --- .../SAPVirtualInstance.tsp | 69 +++++++++++++------ .../SAPVirtualInstanceMetadata.tsp | 23 ------- .../back-compatible.tsp | 16 +++++ .../client.tsp | 5 -- .../custom.tsp | 33 --------- .../main.tsp | 1 - 6 files changed, 64 insertions(+), 83 deletions(-) delete mode 100644 specification/workloads/Workloads.SAPVirtualInstance.Management/SAPVirtualInstanceMetadata.tsp diff --git a/specification/workloads/Workloads.SAPVirtualInstance.Management/SAPVirtualInstance.tsp b/specification/workloads/Workloads.SAPVirtualInstance.Management/SAPVirtualInstance.tsp index cfc0e21079f1..8fb0fd9669f7 100644 --- a/specification/workloads/Workloads.SAPVirtualInstance.Management/SAPVirtualInstance.tsp +++ b/specification/workloads/Workloads.SAPVirtualInstance.Management/SAPVirtualInstance.tsp @@ -3,7 +3,6 @@ import "./models.tsp"; using TypeSpec.Rest; using Azure.ResourceManager; using TypeSpec.Http; -using TypeSpec.OpenAPI; namespace Microsoft.Workloads; /** @@ -78,45 +77,73 @@ interface SAPVirtualInstances { /** * Gets the sizing recommendations. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "Added Operation ID as it determines the PowerShell verb used." - @operationId("SapVirtualInstances_InvokeSizingRecommendations") - getSizingRecommendations is VirtualResourceActionSync< - SAPVirtualInstanceMetadata, + getSizingRecommendations is ArmResourceActionSync< + SubscriptionLocationResource, SAPSizingRecommendationRequest, - SAPSizingRecommendationResult + SAPSizingRecommendationResult, + Parameters = { + /** + * The default variable. + */ + @path + @segment("sapVirtualInstanceMetadata") + @key + name: "default"; + } >; /** * Get a list of SAP supported SKUs for ASCS, Application and Database tier. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "Added Operation ID as it determines the PowerShell verb used." - @operationId("SapVirtualInstances_InvokeSapSupportedSku") - getSapSupportedSku is VirtualResourceActionSync< - SAPVirtualInstanceMetadata, + getSapSupportedSku is ArmResourceActionSync< + SubscriptionLocationResource, SAPSupportedSkusRequest, - SAPSupportedResourceSkusResult + SAPSupportedResourceSkusResult, + Parameters = { + /** + * The default variable. + */ + @path + @segment("sapVirtualInstanceMetadata") + @key + name: "default"; + } >; /** * Get the SAP Disk Configuration Layout prod/non-prod SAP System. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "Added Operation ID as it determines the PowerShell verb used." - @operationId("SapVirtualInstances_InvokeDiskConfigurations") - getDiskConfigurations is VirtualResourceActionSync< - SAPVirtualInstanceMetadata, + getDiskConfigurations is ArmResourceActionSync< + SubscriptionLocationResource, SAPDiskConfigurationsRequest, - SAPDiskConfigurationsResult + SAPDiskConfigurationsResult, + Parameters = { + /** + * The default variable. + */ + @path + @segment("sapVirtualInstanceMetadata") + @key + name: "default"; + } >; /** * Get the recommended SAP Availability Zone Pair Details for your region. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "Added Operation ID as it determines the PowerShell verb used." - @operationId("SapVirtualInstances_InvokeAvailabilityZoneDetails") - getAvailabilityZoneDetails is VirtualResourceActionSync< - SAPVirtualInstanceMetadata, + getAvailabilityZoneDetails is ArmResourceActionSync< + SubscriptionLocationResource, SAPAvailabilityZoneDetailsRequest, - SAPAvailabilityZoneDetailsResult + SAPAvailabilityZoneDetailsResult, + Parameters = { + /** + * The default variable. + */ + @path + @segment("sapVirtualInstanceMetadata") + @key + name: "default"; + } >; } diff --git a/specification/workloads/Workloads.SAPVirtualInstance.Management/SAPVirtualInstanceMetadata.tsp b/specification/workloads/Workloads.SAPVirtualInstance.Management/SAPVirtualInstanceMetadata.tsp deleted file mode 100644 index cb25e5462664..000000000000 --- a/specification/workloads/Workloads.SAPVirtualInstance.Management/SAPVirtualInstanceMetadata.tsp +++ /dev/null @@ -1,23 +0,0 @@ -using TypeSpec.Http; -using TypeSpec.Rest; -using Azure.ResourceManager; - -namespace Microsoft.Workloads; - -/** - * The SAP Virtual Instance Metadata. - */ -#suppress "@azure-tools/typespec-azure-core/casing-style" "SAP is used for representing the company product." -@singleton -@parentResource(SubscriptionLocationResource) -@armVirtualResource -model SAPVirtualInstanceMetadata { - /** - * The default variable. - */ - @path - @visibility(Lifecycle.Read) - @segment("sapVirtualInstanceMetadata") - @key - default: "string"; -} diff --git a/specification/workloads/Workloads.SAPVirtualInstance.Management/back-compatible.tsp b/specification/workloads/Workloads.SAPVirtualInstance.Management/back-compatible.tsp index fc3ee4917680..6e232968b6ee 100644 --- a/specification/workloads/Workloads.SAPVirtualInstance.Management/back-compatible.tsp +++ b/specification/workloads/Workloads.SAPVirtualInstance.Management/back-compatible.tsp @@ -17,6 +17,22 @@ using Microsoft.Workloads; "SapApplicationServerInstances", "autorest" ); +@@clientName(SAPVirtualInstances.getSizingRecommendations, + "InvokeSizingRecommendations", + "autorest" +); +@@clientName(SAPVirtualInstances.getSapSupportedSku, + "InvokeSapSupportedSku", + "autorest" +); +@@clientName(SAPVirtualInstances.getDiskConfigurations, + "InvokeDiskConfigurations", + "autorest" +); +@@clientName(SAPVirtualInstances.getAvailabilityZoneDetails, + "InvokeAvailabilityZoneDetails", + "autorest" +); #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Back compatibility" @@Azure.ClientGenerator.Core.Legacy.flattenProperty(SAPApplicationServerInstance.properties, diff --git a/specification/workloads/Workloads.SAPVirtualInstance.Management/client.tsp b/specification/workloads/Workloads.SAPVirtualInstance.Management/client.tsp index b483393b07cb..48c76d2d7338 100644 --- a/specification/workloads/Workloads.SAPVirtualInstance.Management/client.tsp +++ b/specification/workloads/Workloads.SAPVirtualInstance.Management/client.tsp @@ -91,7 +91,6 @@ using Microsoft.Workloads; @@clientName(SAPCentralServerInstance, "SapCentralServerInstance", "java"); @@clientName(SAPDatabaseInstance, "SapDatabaseInstance", "java"); @@clientName(SAPVirtualInstance, "SapVirtualInstance", "java"); -@@clientName(SAPVirtualInstanceMetadata, "SapVirtualInstanceMetadata", "java"); @@clientName(UpdateSAPVirtualInstanceRequest, "UpdateSapVirtualInstanceRequest", "java" @@ -220,10 +219,6 @@ using Microsoft.Workloads; @@clientName(SAPCentralServerInstance, "SapCentralServerInstance", "csharp"); @@clientName(SAPDatabaseInstance, "SapDatabaseInstance", "csharp"); @@clientName(SAPVirtualInstance, "SapVirtualInstance", "csharp"); -@@clientName(SAPVirtualInstanceMetadata, - "SapVirtualInstanceMetadata", - "csharp" -); @@clientName(UpdateSAPVirtualInstanceRequest, "UpdateSapVirtualInstanceRequest", "csharp" diff --git a/specification/workloads/Workloads.SAPVirtualInstance.Management/custom.tsp b/specification/workloads/Workloads.SAPVirtualInstance.Management/custom.tsp index 48bd83dad7f7..14927fd82f30 100644 --- a/specification/workloads/Workloads.SAPVirtualInstance.Management/custom.tsp +++ b/specification/workloads/Workloads.SAPVirtualInstance.Management/custom.tsp @@ -1,39 +1,6 @@ using Http; using Rest; using Azure.ResourceManager; -using Azure.ResourceManager.Foundations; - -/** - * A synchronous resource action. - * @template Resource The resource being acted upon - * @template Request The request model for the action - * @template Response The response model for the action - * @template BaseParameters Optional. Allows overriding the parameters for the operation - * @template Parameters Optional. Additional parameters after the path parameters - * @template Error Optional. The error response, if non-standard. - */ -#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "Custom template" -// THIS IS TO PROVIDE a temp workaround. The standard ArmResourceXX operations will be expected to support -// ARM virtual resources. Until then, use this custom template -@autoRoute -@armResourceAction(Resource) -@post -@returnsDoc("Azure operation completed successfully.") -op VirtualResourceActionSync< - Resource extends Foundations.Resource, - Request extends TypeSpec.Reflection.Model | void, - Response extends TypeSpec.Reflection.Model | void, - BaseParameters = DefaultBaseParameters, - Parameters extends {} = {}, - Error extends {} = ErrorResponse ->( - ...ResourceInstanceParameters, - ...Parameters, - - @doc("The content of the action request") - @bodyRoot - body: Request, -): Response | Error; /** * @dev A long-running resource action. diff --git a/specification/workloads/Workloads.SAPVirtualInstance.Management/main.tsp b/specification/workloads/Workloads.SAPVirtualInstance.Management/main.tsp index 4aed7841e6ca..ad44df5c2215 100644 --- a/specification/workloads/Workloads.SAPVirtualInstance.Management/main.tsp +++ b/specification/workloads/Workloads.SAPVirtualInstance.Management/main.tsp @@ -13,7 +13,6 @@ import "./SAPVirtualInstance.tsp"; import "./SAPCentralServerInstance.tsp"; import "./SAPDatabaseInstance.tsp"; import "./SAPApplicationServerInstance.tsp"; -import "./SAPVirtualInstanceMetadata.tsp"; import "./custom.tsp"; import "./back-compatible.tsp"; From 213be191bef887e148715fc1b767ecda6fac68d2 Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Mon, 15 Dec 2025 15:55:33 +0800 Subject: [PATCH 025/117] [avs] Update client.tsp (#39253) * Update client.tsp * Update client.tsp --- .../vmware/resource-manager/Microsoft.AVS/AVS/client.tsp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/specification/vmware/resource-manager/Microsoft.AVS/AVS/client.tsp b/specification/vmware/resource-manager/Microsoft.AVS/AVS/client.tsp index 9d09abd0cc5a..9e709b947af4 100644 --- a/specification/vmware/resource-manager/Microsoft.AVS/AVS/client.tsp +++ b/specification/vmware/resource-manager/Microsoft.AVS/AVS/client.tsp @@ -291,15 +291,15 @@ using Microsoft.AVS; @@clientName(Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentity, "PrivateCloudIdentity", - "java,go,javascript" + "java,go,javascript,python" ); @@clientName(Azure.ResourceManager.CommonTypes.SystemAssignedServiceIdentityType, "ResourceIdentityType", - "java,go,javascript" + "java,go,javascript,python" ); @@clientName(Azure.ResourceManager.CommonTypes.ResourceIdentityType, "SystemAssignedResourceIdentityType", - "java,go,javascript" + "java,go,javascript,python" ); @@clientName(WorkloadNetworkPublicIP, "WorkloadNetworkPublicIp", "java"); From be82b6cd0a91e907ca129296004f8645fc8d6b69 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Mon, 15 Dec 2025 11:17:05 -0800 Subject: [PATCH 026/117] [.github] Rename workflow files from *.yml to *.yaml (#39233) --- .../{copilot-setup-steps.yml => copilot-setup-steps.yaml} | 0 .../{spec-gen-sdk-status.yml => spec-gen-sdk-status.yaml} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{copilot-setup-steps.yml => copilot-setup-steps.yaml} (100%) rename .github/workflows/{spec-gen-sdk-status.yml => spec-gen-sdk-status.yaml} (100%) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yaml similarity index 100% rename from .github/workflows/copilot-setup-steps.yml rename to .github/workflows/copilot-setup-steps.yaml diff --git a/.github/workflows/spec-gen-sdk-status.yml b/.github/workflows/spec-gen-sdk-status.yaml similarity index 100% rename from .github/workflows/spec-gen-sdk-status.yml rename to .github/workflows/spec-gen-sdk-status.yaml From cb0b4235a0a3bc0b8a2b23ae42f6e57e60b1a428 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 15 Dec 2025 11:18:47 -0800 Subject: [PATCH 027/117] Update paths to include all files in .github directory for evals (#39263) Co-authored-by: Juan Ospina <70209456+jeo02@users.noreply.github.com> --- eng/common/pipelines/templates/jobs/ai-eval-job.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/common/pipelines/templates/jobs/ai-eval-job.yml b/eng/common/pipelines/templates/jobs/ai-eval-job.yml index 61e971ddcf31..b6e4ceeb7d1e 100644 --- a/eng/common/pipelines/templates/jobs/ai-eval-job.yml +++ b/eng/common/pipelines/templates/jobs/ai-eval-job.yml @@ -68,7 +68,7 @@ jobs: Paths: - 'tools/**' - 'eng/common/**' - - '.github/copilot-instructions.md' + - '.github/**' - task: AzureCLI@2 displayName: 'Run eval' From bb837f71c029b15f9111564f8a4858ca9deeb197 Mon Sep 17 00:00:00 2001 From: Zulfat Nutfullin Date: Mon, 15 Dec 2025 12:06:03 -0800 Subject: [PATCH 028/117] Update Quantum Control Plane API adding new 2025-12-15 version with Quotas on provider level for workspace resource (#39258) * Add quotas on provider level for Workspace resource * Add deprecation message * Removed quotas from workspace level * Add examples * Updated readme with new version --------- Co-authored-by: ashwinmayya --- .../2025-12-15-preview/Offerings_List.json | 97 ++ .../2025-12-15-preview/Operations_List.json | 25 + .../SuiteOffers_ListBySubscription.json | 32 + .../Workspaces_CheckNameAvailability.json | 22 + .../Workspaces_CreateOrUpdate.json | 171 ++ .../2025-12-15-preview/Workspaces_Delete.json | 24 + .../2025-12-15-preview/Workspaces_Get.json | 83 + .../Workspaces_ListByResourceGroup.json | 70 + .../Workspaces_ListBySubscription.json | 69 + .../Workspaces_ListKeys.json | 27 + .../Workspaces_RegenerateKeys.json | 19 + .../Workspaces_UpdateTags.json | 89 + .../Microsoft.Quantum.Management/main.tsp | 6 + .../Microsoft.Quantum.Management/models.tsp | 9 +- .../preview/2025-08-11-preview/quantum.json | 2 +- .../preview/2025-11-01-preview/quantum.json | 2 +- .../examples/Offerings_List.json | 97 ++ .../examples/Operations_List.json | 25 + .../SuiteOffers_ListBySubscription.json | 32 + .../Workspaces_CheckNameAvailability.json | 22 + .../examples/Workspaces_CreateOrUpdate.json | 171 ++ .../examples/Workspaces_Delete.json | 24 + .../examples/Workspaces_Get.json | 83 + .../Workspaces_ListByResourceGroup.json | 70 + .../Workspaces_ListBySubscription.json | 69 + .../examples/Workspaces_ListKeys.json | 27 + .../examples/Workspaces_RegenerateKeys.json | 19 + .../examples/Workspaces_UpdateTags.json | 89 + .../preview/2025-12-15-preview/quantum.json | 1442 +++++++++++++++++ .../quantum/resource-manager/readme.md | 9 + 30 files changed, 2923 insertions(+), 3 deletions(-) create mode 100644 specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Offerings_List.json create mode 100644 specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Operations_List.json create mode 100644 specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/SuiteOffers_ListBySubscription.json create mode 100644 specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_CheckNameAvailability.json create mode 100644 specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_CreateOrUpdate.json create mode 100644 specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_Delete.json create mode 100644 specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_Get.json create mode 100644 specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_ListByResourceGroup.json create mode 100644 specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_ListBySubscription.json create mode 100644 specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_ListKeys.json create mode 100644 specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_RegenerateKeys.json create mode 100644 specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_UpdateTags.json create mode 100644 specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Offerings_List.json create mode 100644 specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Operations_List.json create mode 100644 specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/SuiteOffers_ListBySubscription.json create mode 100644 specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_CheckNameAvailability.json create mode 100644 specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_CreateOrUpdate.json create mode 100644 specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_Delete.json create mode 100644 specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_Get.json create mode 100644 specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_ListByResourceGroup.json create mode 100644 specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_ListBySubscription.json create mode 100644 specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_ListKeys.json create mode 100644 specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_RegenerateKeys.json create mode 100644 specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_UpdateTags.json create mode 100644 specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/quantum.json diff --git a/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Offerings_List.json b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Offerings_List.json new file mode 100644 index 000000000000..0449a4fba9d0 --- /dev/null +++ b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Offerings_List.json @@ -0,0 +1,97 @@ +{ + "operationId": "Offerings_List", + "title": "Offerings_List", + "parameters": { + "subscriptionId": "1C4B2828-7D49-494F-933D-061373BE28C2", + "api-version": "2025-12-15-preview", + "locationName": "westus2" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "QIO", + "name": "Quantum Inspired Optimization", + "properties": { + "description": "Provide Quantum Inspired Optimization solvers", + "targets": [ + { + "name": "CPU annealer", + "id": "p1", + "description": "CPU annealer algorithm", + "numQubits": 80, + "targetProfile": "unrestricted", + "metadata": { + "key": "value" + } + } + ], + "skus": [ + { + "name": "Standard", + "id": "Standard", + "version": "1.0", + "description": "Provider CPU and FPGA QIO based solver.", + "restrictedAccessUri": "https://endpoint", + "autoAdd": true, + "targets": [ + "p1" + ], + "quotaDimensions": [ + { + "id": "quota1", + "scope": "Workspace" + } + ], + "pricingDetails": [ + { + "id": "price", + "value": "200 dollars" + }, + { + "id": "rate", + "value": "10 hours/month" + } + ] + } + ], + "quotaDimensions": [ + { + "id": "job-count", + "scope": "Workspace", + "period": "Monthly", + "quota": 30, + "name": "Job count", + "description": "The number of jobs you may submit per month", + "unit": "job", + "unitPlural": "jobs" + }, + { + "id": "job-hour", + "scope": "Subscription", + "period": "Monthly", + "quota": 1000, + "name": "Job hours", + "description": "The number of hours of solver time you may use per month", + "unit": "hour", + "unitPlural": "hours" + } + ], + "pricingDimensions": [ + { + "id": "price", + "name": "Pricing" + }, + { + "id": "rate", + "name": "Minimum monthly rate" + } + ] + } + } + ] + } + } + } +} diff --git a/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Operations_List.json b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Operations_List.json new file mode 100644 index 000000000000..39b5e3a1a23c --- /dev/null +++ b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Operations_List.json @@ -0,0 +1,25 @@ +{ + "operationId": "Operations_List", + "title": "Operations_List", + "parameters": { + "api-version": "2025-12-15-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.Quantum/Locations/Offerings/Read", + "isDataAction": false, + "display": { + "provider": "Microsoft.Quantum", + "resource": "Workspaces", + "operation": "Read quantum workspace's available providers", + "description": "Read providers supported" + } + } + ] + } + } + } +} diff --git a/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/SuiteOffers_ListBySubscription.json b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/SuiteOffers_ListBySubscription.json new file mode 100644 index 000000000000..134b7b50221c --- /dev/null +++ b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/SuiteOffers_ListBySubscription.json @@ -0,0 +1,32 @@ +{ + "operationId": "SuiteOffers_ListBySubscription", + "title": "SuiteOffers_ListBySubscription", + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Quantum/suiteOffers/provider1", + "name": "provider1", + "type": "Microsoft.Quantum/suiteOffers", + "properties": { + "providerId": "provider1", + "providerName": "Contoso Provider 1", + "description": "Contoso Provider 1 description", + "companyName": "Contoso", + "location": "West US", + "quotas": { + "standardMinutesLifetime": 5000, + "highMinutesLifetime": 200 + } + } + } + ] + } + } + } +} diff --git a/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_CheckNameAvailability.json b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_CheckNameAvailability.json new file mode 100644 index 000000000000..599ea1277e57 --- /dev/null +++ b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_CheckNameAvailability.json @@ -0,0 +1,22 @@ +{ + "operationId": "Workspaces_CheckNameAvailability", + "title": "Workspaces_CheckNameAvailability", + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview", + "location": "westus2", + "body": { + "name": "sample-workspace-name", + "type": "Microsoft.Quantum/Workspaces" + } + }, + "responses": { + "200": { + "body": { + "nameAvailable": false, + "reason": "AlreadyExists", + "message": "Resource name already exists" + } + } + } +} diff --git a/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_CreateOrUpdate.json b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_CreateOrUpdate.json new file mode 100644 index 000000000000..49c538f588c9 --- /dev/null +++ b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_CreateOrUpdate.json @@ -0,0 +1,171 @@ +{ + "operationId": "Workspaces_CreateOrUpdate", + "title": "Workspaces_CreateOrUpdate", + "parameters": { + "workspaceName": "quantumworkspace1", + "resourceGroupName": "quantumResourcegroup", + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview", + "resource": { + "location": "West US", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic" + }, + { + "providerId": "IonQ", + "providerSku": "Basic" + }, + { + "providerId": "OneQBit", + "providerSku": "Basic" + }, + { + "providerId": "suiteProvider", + "providerSku": "Basic", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "storageAccount": "/subscriptions/1C4B2828-7D49-494F-933D-061373BE28C2/resourceGroups/quantumResourcegroup/providers/Microsoft.Storage/storageAccounts/testStorageAccount" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/Workspaces/quantumworkspace1", + "name": "quantumworkspace1", + "type": "Microsoft.Quantum/Workspaces", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic", + "applicationName": "quantumworkspace1-h1", + "instanceUri": "https://h1.endpoint.com", + "provisioningState": "Succeeded", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "IonQ", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-i1", + "instanceUri": "https://i1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444445" + }, + { + "providerId": "OneQBit", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-o1", + "instanceUri": "https://o1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444446" + }, + { + "providerId": "suiteProvider", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-s1", + "instanceUri": "https://s1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444447", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "provisioningState": "Succeeded", + "usable": "Yes", + "workspaceKind": "V1", + "storageAccount": "/subscriptions/1C4B2828-7D49-494F-933D-061373BE28C2/resourceGroups/quantumResourcegroup/providers/Microsoft.Storage/storageAccounts/testStorageAccount", + "endpointUri": "https://quantumworkspace1.westus.quantum.azure.com", + "apiKeyEnabled": true + }, + "location": "West US", + "tags": { + "department": "MightyMight", + "company": "Contoso" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444" + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/Workspaces/quantumworkspace1", + "name": "quantumworkspace1", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic", + "applicationName": "quantumworkspace1-h1", + "provisioningState": "Launching" + }, + { + "providerId": "IonQ", + "provisioningState": "Launching", + "applicationName": "quantumworkspace1-i1", + "providerSku": "Basic" + }, + { + "providerId": "OneQBit", + "provisioningState": "Launching", + "applicationName": "quantumworkspace1-o1", + "providerSku": "Basic" + }, + { + "providerId": "suiteProvider", + "provisioningState": "Launching", + "applicationName": "quantumworkspace1-s1", + "providerSku": "Basic", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "provisioningState": "ProviderLaunching", + "usable": "No", + "workspaceKind": "V1", + "apiKeyEnabled": true + }, + "location": "West US", + "tags": { + "department": "MightyMight", + "company": "Contoso" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444" + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + } + } + } + } +} diff --git a/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_Delete.json b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_Delete.json new file mode 100644 index 000000000000..2a8270091154 --- /dev/null +++ b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_Delete.json @@ -0,0 +1,24 @@ +{ + "operationId": "Workspaces_Delete", + "title": "Workspaces_Delete", + "parameters": { + "workspaceName": "quantumworkspace1", + "resourceGroupName": "quantumResourcegroup", + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview" + }, + "responses": { + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/locations/eastus/operationStatus/default/operationId/00000000-0000-0000-0000-000000000000?api-version=2023-11-13-preview" + }, + "description": "Workspace delete request accepted." + }, + "204": { + "headers": { + "Location": "https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/locations/eastus/operationStatus/default/operationId/00000000-0000-0000-0000-000000000000?api-version=2023-11-13-preview" + }, + "description": "Workspace does not exist." + } + } +} diff --git a/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_Get.json b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_Get.json new file mode 100644 index 000000000000..e30aaf655fc6 --- /dev/null +++ b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_Get.json @@ -0,0 +1,83 @@ +{ + "operationId": "Workspaces_Get", + "title": "Workspaces_Get", + "parameters": { + "workspaceName": "quantumworkspace1", + "resourceGroupName": "quantumResourcegroup", + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/Workspaces/quantumworkspace1", + "name": "quantumworkspace1", + "type": "Microsoft.Quantum/Workspaces", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic", + "applicationName": "quantumworkspace1-h1", + "instanceUri": "https://h1.endpoint.com", + "provisioningState": "Succeeded", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "IonQ", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-i1", + "instanceUri": "https://i1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "OneQBit", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-o1", + "instanceUri": "https://o1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "suiteProvider", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-s1", + "instanceUri": "https://s1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444444", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "provisioningState": "Succeeded", + "usable": "Yes", + "storageAccount": "/subscriptions/1C4B2828-7D49-494F-933D-061373BE28C2/resourceGroups/quantumResourcegroup/providers/Microsoft.Storage/storageAccounts/testStorageAccount", + "workspaceKind": "V1", + "endpointUri": "https://quantumworkspace1.westus.quantum.azure.com", + "apiKeyEnabled": true + }, + "location": "West US", + "tags": { + "department": "MightyMight", + "company": "Contoso" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444" + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + } + } + } + } +} diff --git a/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_ListByResourceGroup.json b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_ListByResourceGroup.json new file mode 100644 index 000000000000..066ce7e188ed --- /dev/null +++ b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_ListByResourceGroup.json @@ -0,0 +1,70 @@ +{ + "operationId": "Workspaces_ListByResourceGroup", + "title": "Workspaces_ListByResourceGroup", + "parameters": { + "resourceGroupName": "quantumResourcegroup", + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/Workspaces/quantumworkspace1", + "name": "quantumworkspace1", + "type": "Microsoft.Quantum/Workspaces", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic", + "applicationName": "quantumworkspace1-h1", + "instanceUri": "https://h1.endpoint.com", + "provisioningState": "Succeeded", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "suiteProvider", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-s1", + "instanceUri": "https://s1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444444", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "provisioningState": "Succeeded", + "usable": "Yes", + "storageAccount": "/subscriptions/1C4B2828-7D49-494F-933D-061373BE28C2/resourceGroups/quantumResourcegroup/providers/Microsoft.Storage/storageAccounts/testStorageAccount", + "workspaceKind": "V1", + "endpointUri": "https://quantumworkspace1.westus.quantum.azure.com", + "apiKeyEnabled": true + }, + "location": "West US", + "tags": { + "department": "MightyMight", + "company": "Contoso" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444" + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + } + } + ] + } + } + } +} diff --git a/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_ListBySubscription.json b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_ListBySubscription.json new file mode 100644 index 000000000000..0b85ad93ce34 --- /dev/null +++ b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_ListBySubscription.json @@ -0,0 +1,69 @@ +{ + "operationId": "Workspaces_ListBySubscription", + "title": "Workspaces_ListBySubscription", + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/Workspaces/quantumworkspace1", + "name": "quantumworkspace1", + "type": "Microsoft.Quantum/Workspaces", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic", + "applicationName": "quantumworkspace1-h1", + "instanceUri": "https://h1.endpoint.com", + "provisioningState": "Succeeded", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "suiteProvider", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-s1", + "instanceUri": "https://s1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444444", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "provisioningState": "Succeeded", + "usable": "Yes", + "storageAccount": "/subscriptions/1C4B2828-7D49-494F-933D-061373BE28C2/resourceGroups/quantumResourcegroup/providers/Microsoft.Storage/storageAccounts/testStorageAccount", + "workspaceKind": "V1", + "endpointUri": "https://quantumworkspace1.westus.quantum.azure.com", + "apiKeyEnabled": true + }, + "location": "West US", + "tags": { + "department": "MightyMight", + "company": "Contoso" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444" + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + } + } + ] + } + } + } +} diff --git a/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_ListKeys.json b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_ListKeys.json new file mode 100644 index 000000000000..dcef93d84df2 --- /dev/null +++ b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_ListKeys.json @@ -0,0 +1,27 @@ +{ + "operationId": "Workspaces_ListKeys", + "title": "Workspaces_ListKeys", + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview", + "resourceGroupName": "quantumResourcegroup", + "workspaceName": "quantumworkspace1" + }, + "responses": { + "200": { + "body": { + "apiKeyEnabled": true, + "primaryKey": { + "createdAt": "2023-11-13T23:06:09.147165Z", + "key": "" + }, + "secondaryKey": { + "createdAt": "2023-11-13T23:06:09.147165Z", + "key": "" + }, + "primaryConnectionString": "", + "secondaryConnectionString": "" + } + } + } +} diff --git a/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_RegenerateKeys.json b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_RegenerateKeys.json new file mode 100644 index 000000000000..3733128c527d --- /dev/null +++ b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_RegenerateKeys.json @@ -0,0 +1,19 @@ +{ + "operationId": "Workspaces_RegenerateKeys", + "title": "Workspaces_RegenerateKeys", + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview", + "resourceGroupName": "quantumResourcegroup", + "workspaceName": "quantumworkspace1", + "body": { + "keys": [ + "Primary", + "Secondary" + ] + } + }, + "responses": { + "204": {} + } +} diff --git a/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_UpdateTags.json b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_UpdateTags.json new file mode 100644 index 000000000000..47b545617453 --- /dev/null +++ b/specification/quantum/Microsoft.Quantum.Management/examples/2025-12-15-preview/Workspaces_UpdateTags.json @@ -0,0 +1,89 @@ +{ + "operationId": "Workspaces_UpdateTags", + "title": "Workspaces_UpdateTags", + "parameters": { + "workspaceName": "quantumworkspace1", + "resourceGroupName": "quantumResourcegroup", + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview", + "properties": { + "tags": { + "tag1": "value1", + "tag2": "value2" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/Workspaces/quantumworkspace1", + "name": "quantumworkspace1", + "type": "Microsoft.Quantum/Workspaces", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic", + "applicationName": "quantumworkspace1-h1", + "instanceUri": "https://h1.endpoint.com", + "provisioningState": "Succeeded", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "IonQ", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-i1", + "instanceUri": "https://i1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444445" + }, + { + "providerId": "OneQBit", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-o1", + "instanceUri": "https://o1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444446" + }, + { + "providerId": "suiteProvider", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-s1", + "instanceUri": "https://s1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444447", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "provisioningState": "Succeeded", + "usable": "Yes", + "storageAccount": "/subscriptions/1C4B2828-7D49-494F-933D-061373BE28C2/resourceGroups/quantumResourcegroup/providers/Microsoft.Storage/storageAccounts/testStorageAccount", + "workspaceKind": "V1", + "endpointUri": "https://quantumworkspace1.westus.quantum.azure.com", + "apiKeyEnabled": true + }, + "location": "West US", + "tags": { + "tag1": "value1", + "tag2": "value2" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444" + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + } + } + } + } +} diff --git a/specification/quantum/Microsoft.Quantum.Management/main.tsp b/specification/quantum/Microsoft.Quantum.Management/main.tsp index 255e66ae5469..2616d4694f4c 100644 --- a/specification/quantum/Microsoft.Quantum.Management/main.tsp +++ b/specification/quantum/Microsoft.Quantum.Management/main.tsp @@ -58,6 +58,12 @@ enum Versions { */ @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) v2025_11_01_preview: "2025-11-01-preview", + + /** + * The 2025-12-15-preview API version. + */ + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + v2025_12_15_preview: "2025-12-15-preview", } interface Operations extends Azure.ResourceManager.Operations {} diff --git a/specification/quantum/Microsoft.Quantum.Management/models.tsp b/specification/quantum/Microsoft.Quantum.Management/models.tsp index e1d652105114..e6a61114a85d 100644 --- a/specification/quantum/Microsoft.Quantum.Management/models.tsp +++ b/specification/quantum/Microsoft.Quantum.Management/models.tsp @@ -462,8 +462,9 @@ model WorkspaceResourceProperties { managedStorageAccount?: StorageAccountResourceId; /** - * Quota allocations associated with this workspace. Available only for special providers. + * DEPRECATED: This field is deprecated and will be removed in future versions. Please use the quotas under providers instead. */ + @removed(Versions.v2025_12_15_preview) @added(Versions.v2025_08_11_preview) quotas?: QuotaAllocations; } @@ -530,6 +531,12 @@ model Provider { * Id to track resource usage for the provider. */ resourceUsageId?: string; + + /** + * Quota allocations associated with this provider. Available only for special providers. + */ + @added(Versions.v2025_12_15_preview) + quotas?: QuotaAllocations; } /** diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-08-11-preview/quantum.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-08-11-preview/quantum.json index 48bf0f9d8052..e9cb5bff0742 100644 --- a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-08-11-preview/quantum.json +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-08-11-preview/quantum.json @@ -1379,7 +1379,7 @@ }, "quotas": { "$ref": "#/definitions/QuotaAllocations", - "description": "Quota allocations associated with this workspace. Available only for special providers." + "description": "DEPRECATED: This field is deprecated and will be removed in future versions. Please use the quotas under providers instead." } } } diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-11-01-preview/quantum.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-11-01-preview/quantum.json index d47fac076edc..d1bc9498de98 100644 --- a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-11-01-preview/quantum.json +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-11-01-preview/quantum.json @@ -1433,7 +1433,7 @@ }, "quotas": { "$ref": "#/definitions/QuotaAllocations", - "description": "Quota allocations associated with this workspace. Available only for special providers." + "description": "DEPRECATED: This field is deprecated and will be removed in future versions. Please use the quotas under providers instead." } } } diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Offerings_List.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Offerings_List.json new file mode 100644 index 000000000000..0449a4fba9d0 --- /dev/null +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Offerings_List.json @@ -0,0 +1,97 @@ +{ + "operationId": "Offerings_List", + "title": "Offerings_List", + "parameters": { + "subscriptionId": "1C4B2828-7D49-494F-933D-061373BE28C2", + "api-version": "2025-12-15-preview", + "locationName": "westus2" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "QIO", + "name": "Quantum Inspired Optimization", + "properties": { + "description": "Provide Quantum Inspired Optimization solvers", + "targets": [ + { + "name": "CPU annealer", + "id": "p1", + "description": "CPU annealer algorithm", + "numQubits": 80, + "targetProfile": "unrestricted", + "metadata": { + "key": "value" + } + } + ], + "skus": [ + { + "name": "Standard", + "id": "Standard", + "version": "1.0", + "description": "Provider CPU and FPGA QIO based solver.", + "restrictedAccessUri": "https://endpoint", + "autoAdd": true, + "targets": [ + "p1" + ], + "quotaDimensions": [ + { + "id": "quota1", + "scope": "Workspace" + } + ], + "pricingDetails": [ + { + "id": "price", + "value": "200 dollars" + }, + { + "id": "rate", + "value": "10 hours/month" + } + ] + } + ], + "quotaDimensions": [ + { + "id": "job-count", + "scope": "Workspace", + "period": "Monthly", + "quota": 30, + "name": "Job count", + "description": "The number of jobs you may submit per month", + "unit": "job", + "unitPlural": "jobs" + }, + { + "id": "job-hour", + "scope": "Subscription", + "period": "Monthly", + "quota": 1000, + "name": "Job hours", + "description": "The number of hours of solver time you may use per month", + "unit": "hour", + "unitPlural": "hours" + } + ], + "pricingDimensions": [ + { + "id": "price", + "name": "Pricing" + }, + { + "id": "rate", + "name": "Minimum monthly rate" + } + ] + } + } + ] + } + } + } +} diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Operations_List.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Operations_List.json new file mode 100644 index 000000000000..39b5e3a1a23c --- /dev/null +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Operations_List.json @@ -0,0 +1,25 @@ +{ + "operationId": "Operations_List", + "title": "Operations_List", + "parameters": { + "api-version": "2025-12-15-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.Quantum/Locations/Offerings/Read", + "isDataAction": false, + "display": { + "provider": "Microsoft.Quantum", + "resource": "Workspaces", + "operation": "Read quantum workspace's available providers", + "description": "Read providers supported" + } + } + ] + } + } + } +} diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/SuiteOffers_ListBySubscription.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/SuiteOffers_ListBySubscription.json new file mode 100644 index 000000000000..134b7b50221c --- /dev/null +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/SuiteOffers_ListBySubscription.json @@ -0,0 +1,32 @@ +{ + "operationId": "SuiteOffers_ListBySubscription", + "title": "SuiteOffers_ListBySubscription", + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/providers/Microsoft.Quantum/suiteOffers/provider1", + "name": "provider1", + "type": "Microsoft.Quantum/suiteOffers", + "properties": { + "providerId": "provider1", + "providerName": "Contoso Provider 1", + "description": "Contoso Provider 1 description", + "companyName": "Contoso", + "location": "West US", + "quotas": { + "standardMinutesLifetime": 5000, + "highMinutesLifetime": 200 + } + } + } + ] + } + } + } +} diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_CheckNameAvailability.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_CheckNameAvailability.json new file mode 100644 index 000000000000..599ea1277e57 --- /dev/null +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_CheckNameAvailability.json @@ -0,0 +1,22 @@ +{ + "operationId": "Workspaces_CheckNameAvailability", + "title": "Workspaces_CheckNameAvailability", + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview", + "location": "westus2", + "body": { + "name": "sample-workspace-name", + "type": "Microsoft.Quantum/Workspaces" + } + }, + "responses": { + "200": { + "body": { + "nameAvailable": false, + "reason": "AlreadyExists", + "message": "Resource name already exists" + } + } + } +} diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_CreateOrUpdate.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_CreateOrUpdate.json new file mode 100644 index 000000000000..49c538f588c9 --- /dev/null +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_CreateOrUpdate.json @@ -0,0 +1,171 @@ +{ + "operationId": "Workspaces_CreateOrUpdate", + "title": "Workspaces_CreateOrUpdate", + "parameters": { + "workspaceName": "quantumworkspace1", + "resourceGroupName": "quantumResourcegroup", + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview", + "resource": { + "location": "West US", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic" + }, + { + "providerId": "IonQ", + "providerSku": "Basic" + }, + { + "providerId": "OneQBit", + "providerSku": "Basic" + }, + { + "providerId": "suiteProvider", + "providerSku": "Basic", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "storageAccount": "/subscriptions/1C4B2828-7D49-494F-933D-061373BE28C2/resourceGroups/quantumResourcegroup/providers/Microsoft.Storage/storageAccounts/testStorageAccount" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/Workspaces/quantumworkspace1", + "name": "quantumworkspace1", + "type": "Microsoft.Quantum/Workspaces", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic", + "applicationName": "quantumworkspace1-h1", + "instanceUri": "https://h1.endpoint.com", + "provisioningState": "Succeeded", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "IonQ", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-i1", + "instanceUri": "https://i1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444445" + }, + { + "providerId": "OneQBit", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-o1", + "instanceUri": "https://o1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444446" + }, + { + "providerId": "suiteProvider", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-s1", + "instanceUri": "https://s1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444447", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "provisioningState": "Succeeded", + "usable": "Yes", + "workspaceKind": "V1", + "storageAccount": "/subscriptions/1C4B2828-7D49-494F-933D-061373BE28C2/resourceGroups/quantumResourcegroup/providers/Microsoft.Storage/storageAccounts/testStorageAccount", + "endpointUri": "https://quantumworkspace1.westus.quantum.azure.com", + "apiKeyEnabled": true + }, + "location": "West US", + "tags": { + "department": "MightyMight", + "company": "Contoso" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444" + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/Workspaces/quantumworkspace1", + "name": "quantumworkspace1", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic", + "applicationName": "quantumworkspace1-h1", + "provisioningState": "Launching" + }, + { + "providerId": "IonQ", + "provisioningState": "Launching", + "applicationName": "quantumworkspace1-i1", + "providerSku": "Basic" + }, + { + "providerId": "OneQBit", + "provisioningState": "Launching", + "applicationName": "quantumworkspace1-o1", + "providerSku": "Basic" + }, + { + "providerId": "suiteProvider", + "provisioningState": "Launching", + "applicationName": "quantumworkspace1-s1", + "providerSku": "Basic", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "provisioningState": "ProviderLaunching", + "usable": "No", + "workspaceKind": "V1", + "apiKeyEnabled": true + }, + "location": "West US", + "tags": { + "department": "MightyMight", + "company": "Contoso" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444" + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + } + } + } + } +} diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_Delete.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_Delete.json new file mode 100644 index 000000000000..2a8270091154 --- /dev/null +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_Delete.json @@ -0,0 +1,24 @@ +{ + "operationId": "Workspaces_Delete", + "title": "Workspaces_Delete", + "parameters": { + "workspaceName": "quantumworkspace1", + "resourceGroupName": "quantumResourcegroup", + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview" + }, + "responses": { + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/locations/eastus/operationStatus/default/operationId/00000000-0000-0000-0000-000000000000?api-version=2023-11-13-preview" + }, + "description": "Workspace delete request accepted." + }, + "204": { + "headers": { + "Location": "https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/locations/eastus/operationStatus/default/operationId/00000000-0000-0000-0000-000000000000?api-version=2023-11-13-preview" + }, + "description": "Workspace does not exist." + } + } +} diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_Get.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_Get.json new file mode 100644 index 000000000000..e30aaf655fc6 --- /dev/null +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_Get.json @@ -0,0 +1,83 @@ +{ + "operationId": "Workspaces_Get", + "title": "Workspaces_Get", + "parameters": { + "workspaceName": "quantumworkspace1", + "resourceGroupName": "quantumResourcegroup", + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/Workspaces/quantumworkspace1", + "name": "quantumworkspace1", + "type": "Microsoft.Quantum/Workspaces", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic", + "applicationName": "quantumworkspace1-h1", + "instanceUri": "https://h1.endpoint.com", + "provisioningState": "Succeeded", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "IonQ", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-i1", + "instanceUri": "https://i1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "OneQBit", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-o1", + "instanceUri": "https://o1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "suiteProvider", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-s1", + "instanceUri": "https://s1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444444", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "provisioningState": "Succeeded", + "usable": "Yes", + "storageAccount": "/subscriptions/1C4B2828-7D49-494F-933D-061373BE28C2/resourceGroups/quantumResourcegroup/providers/Microsoft.Storage/storageAccounts/testStorageAccount", + "workspaceKind": "V1", + "endpointUri": "https://quantumworkspace1.westus.quantum.azure.com", + "apiKeyEnabled": true + }, + "location": "West US", + "tags": { + "department": "MightyMight", + "company": "Contoso" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444" + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + } + } + } + } +} diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_ListByResourceGroup.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_ListByResourceGroup.json new file mode 100644 index 000000000000..066ce7e188ed --- /dev/null +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_ListByResourceGroup.json @@ -0,0 +1,70 @@ +{ + "operationId": "Workspaces_ListByResourceGroup", + "title": "Workspaces_ListByResourceGroup", + "parameters": { + "resourceGroupName": "quantumResourcegroup", + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/Workspaces/quantumworkspace1", + "name": "quantumworkspace1", + "type": "Microsoft.Quantum/Workspaces", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic", + "applicationName": "quantumworkspace1-h1", + "instanceUri": "https://h1.endpoint.com", + "provisioningState": "Succeeded", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "suiteProvider", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-s1", + "instanceUri": "https://s1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444444", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "provisioningState": "Succeeded", + "usable": "Yes", + "storageAccount": "/subscriptions/1C4B2828-7D49-494F-933D-061373BE28C2/resourceGroups/quantumResourcegroup/providers/Microsoft.Storage/storageAccounts/testStorageAccount", + "workspaceKind": "V1", + "endpointUri": "https://quantumworkspace1.westus.quantum.azure.com", + "apiKeyEnabled": true + }, + "location": "West US", + "tags": { + "department": "MightyMight", + "company": "Contoso" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444" + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + } + } + ] + } + } + } +} diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_ListBySubscription.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_ListBySubscription.json new file mode 100644 index 000000000000..0b85ad93ce34 --- /dev/null +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_ListBySubscription.json @@ -0,0 +1,69 @@ +{ + "operationId": "Workspaces_ListBySubscription", + "title": "Workspaces_ListBySubscription", + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/Workspaces/quantumworkspace1", + "name": "quantumworkspace1", + "type": "Microsoft.Quantum/Workspaces", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic", + "applicationName": "quantumworkspace1-h1", + "instanceUri": "https://h1.endpoint.com", + "provisioningState": "Succeeded", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "suiteProvider", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-s1", + "instanceUri": "https://s1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444444", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "provisioningState": "Succeeded", + "usable": "Yes", + "storageAccount": "/subscriptions/1C4B2828-7D49-494F-933D-061373BE28C2/resourceGroups/quantumResourcegroup/providers/Microsoft.Storage/storageAccounts/testStorageAccount", + "workspaceKind": "V1", + "endpointUri": "https://quantumworkspace1.westus.quantum.azure.com", + "apiKeyEnabled": true + }, + "location": "West US", + "tags": { + "department": "MightyMight", + "company": "Contoso" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444" + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + } + } + ] + } + } + } +} diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_ListKeys.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_ListKeys.json new file mode 100644 index 000000000000..dcef93d84df2 --- /dev/null +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_ListKeys.json @@ -0,0 +1,27 @@ +{ + "operationId": "Workspaces_ListKeys", + "title": "Workspaces_ListKeys", + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview", + "resourceGroupName": "quantumResourcegroup", + "workspaceName": "quantumworkspace1" + }, + "responses": { + "200": { + "body": { + "apiKeyEnabled": true, + "primaryKey": { + "createdAt": "2023-11-13T23:06:09.147165Z", + "key": "" + }, + "secondaryKey": { + "createdAt": "2023-11-13T23:06:09.147165Z", + "key": "" + }, + "primaryConnectionString": "", + "secondaryConnectionString": "" + } + } + } +} diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_RegenerateKeys.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_RegenerateKeys.json new file mode 100644 index 000000000000..3733128c527d --- /dev/null +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_RegenerateKeys.json @@ -0,0 +1,19 @@ +{ + "operationId": "Workspaces_RegenerateKeys", + "title": "Workspaces_RegenerateKeys", + "parameters": { + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview", + "resourceGroupName": "quantumResourcegroup", + "workspaceName": "quantumworkspace1", + "body": { + "keys": [ + "Primary", + "Secondary" + ] + } + }, + "responses": { + "204": {} + } +} diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_UpdateTags.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_UpdateTags.json new file mode 100644 index 000000000000..47b545617453 --- /dev/null +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/examples/Workspaces_UpdateTags.json @@ -0,0 +1,89 @@ +{ + "operationId": "Workspaces_UpdateTags", + "title": "Workspaces_UpdateTags", + "parameters": { + "workspaceName": "quantumworkspace1", + "resourceGroupName": "quantumResourcegroup", + "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2025-12-15-preview", + "properties": { + "tags": { + "tag1": "value1", + "tag2": "value2" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/quantumResourcegroup/providers/Microsoft.Quantum/Workspaces/quantumworkspace1", + "name": "quantumworkspace1", + "type": "Microsoft.Quantum/Workspaces", + "properties": { + "providers": [ + { + "providerId": "Honeywell", + "providerSku": "Basic", + "applicationName": "quantumworkspace1-h1", + "instanceUri": "https://h1.endpoint.com", + "provisioningState": "Succeeded", + "resourceUsageId": "00000000-1111-2222-3333-444444444444" + }, + { + "providerId": "IonQ", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-i1", + "instanceUri": "https://i1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444445" + }, + { + "providerId": "OneQBit", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-o1", + "instanceUri": "https://o1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444446" + }, + { + "providerId": "suiteProvider", + "provisioningState": "Succeeded", + "applicationName": "quantumworkspace1-s1", + "instanceUri": "https://s1.endpoint.com", + "providerSku": "Basic", + "resourceUsageId": "00000000-1111-2222-3333-444444444447", + "quotas": { + "standardMinutesLifetime": 500, + "highMinutesLifetime": 50 + } + } + ], + "provisioningState": "Succeeded", + "usable": "Yes", + "storageAccount": "/subscriptions/1C4B2828-7D49-494F-933D-061373BE28C2/resourceGroups/quantumResourcegroup/providers/Microsoft.Storage/storageAccounts/testStorageAccount", + "workspaceKind": "V1", + "endpointUri": "https://quantumworkspace1.westus.quantum.azure.com", + "apiKeyEnabled": true + }, + "location": "West US", + "tags": { + "tag1": "value1", + "tag2": "value2" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "00000000-1111-2222-3333-444444444444", + "tenantId": "00000000-1111-2222-3333-444444444444" + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + } + } + } + } +} diff --git a/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/quantum.json b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/quantum.json new file mode 100644 index 000000000000..991581a893bc --- /dev/null +++ b/specification/quantum/resource-manager/Microsoft.Quantum/preview/2025-12-15-preview/quantum.json @@ -0,0 +1,1442 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Quantum Management API", + "version": "2025-12-15-preview", + "description": "Microsoft.Quantum Resource Provider Management API", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "Workspaces" + }, + { + "name": "SuiteOffers" + }, + { + "name": "Offerings" + } + ], + "paths": { + "/providers/Microsoft.Quantum/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Operations_List": { + "$ref": "./examples/Operations_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Quantum/locations/{location}/checkNameAvailability": { + "post": { + "operationId": "Workspaces_CheckNameAvailability", + "tags": [ + "Workspaces" + ], + "description": "Check the availability of the resource name for the given location.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "body", + "in": "body", + "description": "The CheckAvailability request", + "required": true, + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/CheckNameAvailabilityRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/CheckNameAvailabilityResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Workspaces_CheckNameAvailability": { + "$ref": "./examples/Workspaces_CheckNameAvailability.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Quantum/locations/{locationName}/offerings": { + "get": { + "operationId": "Offerings_List", + "tags": [ + "Offerings" + ], + "description": "Returns the list of all provider offerings available for the given location.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "locationName", + "in": "path", + "description": "Location.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 90, + "pattern": "[a-z][a-z0-9]+" + }, + { + "name": "filter", + "in": "query", + "description": "The filter to apply to the operation. Example: '$filter=kind eq 'v1'", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/OfferingsListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Offerings_List": { + "$ref": "./examples/Offerings_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Quantum/suiteOffers": { + "get": { + "operationId": "SuiteOffers_ListBySubscription", + "tags": [ + "SuiteOffers" + ], + "description": "Returns the SuiteOffer resource associated with the given name.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/QuantumSuiteOfferListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "SuiteOffers_ListBySubscription": { + "$ref": "./examples/SuiteOffers_ListBySubscription.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Quantum/workspaces": { + "get": { + "operationId": "Workspaces_ListBySubscription", + "tags": [ + "Workspaces" + ], + "description": "Gets the list of Workspaces within a Subscription.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/QuantumWorkspaceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Workspaces_ListBySubscription": { + "$ref": "./examples/Workspaces_ListBySubscription.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Quantum/workspaces": { + "get": { + "operationId": "Workspaces_ListByResourceGroup", + "tags": [ + "Workspaces" + ], + "description": "Gets the list of Workspaces within a resource group.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/QuantumWorkspaceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Workspaces_ListByResourceGroup": { + "$ref": "./examples/Workspaces_ListByResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Quantum/workspaces/{workspaceName}": { + "get": { + "operationId": "Workspaces_Get", + "tags": [ + "Workspaces" + ], + "description": "Returns the Workspace resource associated with the given name.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "workspaceName", + "in": "path", + "description": "The name of the quantum workspace resource.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/QuantumWorkspace" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Workspaces_Get": { + "$ref": "./examples/Workspaces_Get.json" + } + } + }, + "put": { + "operationId": "Workspaces_CreateOrUpdate", + "tags": [ + "Workspaces" + ], + "description": "Creates or updates a Workspace resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "workspaceName", + "in": "path", + "description": "The name of the quantum workspace resource.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$" + }, + { + "name": "resource", + "in": "body", + "description": "Workspace details.", + "required": true, + "schema": { + "$ref": "#/definitions/QuantumWorkspace" + } + } + ], + "responses": { + "200": { + "description": "Resource 'QuantumWorkspace' update operation succeeded", + "schema": { + "$ref": "#/definitions/QuantumWorkspace" + } + }, + "201": { + "description": "Resource 'QuantumWorkspace' create operation succeeded", + "schema": { + "$ref": "#/definitions/QuantumWorkspace" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Workspaces_CreateOrUpdate": { + "$ref": "./examples/Workspaces_CreateOrUpdate.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Workspaces_UpdateTags", + "tags": [ + "Workspaces" + ], + "description": "Updates an existing Workspace's tags.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "workspaceName", + "in": "path", + "description": "The name of the quantum workspace resource.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$" + }, + { + "name": "properties", + "in": "body", + "description": "Parameters supplied to update tags.", + "required": true, + "schema": { + "$ref": "#/definitions/QuantumWorkspaceTagsUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/QuantumWorkspace" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Workspaces_UpdateTags": { + "$ref": "./examples/Workspaces_UpdateTags.json" + } + } + }, + "delete": { + "operationId": "Workspaces_Delete", + "tags": [ + "Workspaces" + ], + "description": "Deletes a Workspace resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "workspaceName", + "in": "path", + "description": "The name of the quantum workspace resource.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Workspaces_Delete": { + "$ref": "./examples/Workspaces_Delete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Quantum/workspaces/{workspaceName}/listKeys": { + "post": { + "operationId": "Workspaces_ListKeys", + "tags": [ + "Workspaces" + ], + "description": "Get the keys to use with the Quantum APIs. A key is used to authenticate and authorize access to the Quantum REST APIs. Only one key is needed at a time; two are given to provide seamless key regeneration.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "workspaceName", + "in": "path", + "description": "The name of the quantum workspace resource.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ListKeysResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Workspaces_ListKeys": { + "$ref": "./examples/Workspaces_ListKeys.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Quantum/workspaces/{workspaceName}/regenerateKey": { + "post": { + "operationId": "Workspaces_RegenerateKeys", + "tags": [ + "Workspaces" + ], + "description": "Regenerate either the primary or secondary key for use with the Quantum APIs. The old key will stop working immediately.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "workspaceName", + "in": "path", + "description": "The name of the quantum workspace resource.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$" + }, + { + "name": "body", + "in": "body", + "description": "Which key to regenerate: primary or secondary.", + "required": true, + "schema": { + "$ref": "#/definitions/ApiKeys" + } + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Workspaces_RegenerateKeys": { + "$ref": "./examples/Workspaces_RegenerateKeys.json" + } + } + } + } + }, + "definitions": { + "ApiKey": { + "type": "object", + "description": "Azure quantum workspace Api key details.", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The creation time of the api key." + }, + "key": { + "type": "string", + "description": "The Api key.", + "readOnly": true + } + } + }, + "ApiKeys": { + "type": "object", + "description": "List of api keys to be generated.", + "properties": { + "keys": { + "type": "array", + "description": "A list of api key names.", + "items": { + "$ref": "#/definitions/KeyType" + } + } + } + }, + "KeyType": { + "type": "string", + "description": "The API key type.", + "enum": [ + "Primary", + "Secondary" + ], + "x-ms-enum": { + "name": "KeyType", + "modelAsString": true, + "values": [ + { + "name": "Primary", + "value": "Primary", + "description": "The primary API key." + }, + { + "name": "Secondary", + "value": "Secondary", + "description": "The secondary API key." + } + ] + } + }, + "ListKeysResult": { + "type": "object", + "description": "Result of list Api keys and connection strings.", + "properties": { + "apiKeyEnabled": { + "type": "boolean", + "description": "Indicator of enablement of the Quantum workspace Api keys." + }, + "primaryKey": { + "$ref": "#/definitions/ApiKey", + "description": "The quantum workspace primary api key." + }, + "secondaryKey": { + "$ref": "#/definitions/ApiKey", + "description": "The quantum workspace secondary api key." + }, + "primaryConnectionString": { + "type": "string", + "description": "The connection string of the primary api key.", + "readOnly": true + }, + "secondaryConnectionString": { + "type": "string", + "description": "The connection string of the secondary api key.", + "readOnly": true + } + } + }, + "OfferingsListResult": { + "type": "object", + "description": "The response of a list Providers operation.", + "properties": { + "value": { + "type": "array", + "description": "The ProviderDescription items on this page", + "items": { + "$ref": "#/definitions/ProviderDescription" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PricingDetail": { + "type": "object", + "description": "Detailed pricing information for an sku.", + "properties": { + "id": { + "type": "string", + "description": "Unique id for this pricing information." + }, + "value": { + "type": "string", + "description": "The unit cost of this sku." + } + } + }, + "PricingDimension": { + "type": "object", + "description": "Information about pricing dimension.", + "properties": { + "id": { + "type": "string", + "description": "Unique id of this pricing dimension." + }, + "name": { + "type": "string", + "description": "The display name of this pricing dimension." + } + } + }, + "Provider": { + "type": "object", + "description": "Information about a Provider. A Provider is an entity that offers Targets to run Azure Quantum Jobs.", + "properties": { + "providerId": { + "type": "string", + "description": "Unique id of this provider." + }, + "providerSku": { + "type": "string", + "description": "The sku associated with pricing information for this provider." + }, + "instanceUri": { + "type": "string", + "description": "A Uri identifying the specific instance of this provider." + }, + "applicationName": { + "type": "string", + "description": "The provider's marketplace application display name." + }, + "provisioningState": { + "$ref": "#/definitions/ProviderStatus", + "description": "Provisioning status field" + }, + "resourceUsageId": { + "type": "string", + "description": "Id to track resource usage for the provider." + }, + "quotas": { + "$ref": "#/definitions/QuotaAllocations", + "description": "Quota allocations associated with this provider. Available only for special providers." + } + } + }, + "ProviderDescription": { + "type": "object", + "description": "Information about an offering. A provider offering is an entity that offers Targets to run Azure Quantum Jobs.", + "properties": { + "id": { + "type": "string", + "description": "Unique provider's id." + }, + "name": { + "type": "string", + "description": "Provider's display name.", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/ProviderProperties", + "description": "Provider properties." + } + } + }, + "ProviderProperties": { + "type": "object", + "description": "Provider properties.", + "properties": { + "description": { + "type": "string", + "description": "A description about this provider.", + "readOnly": true + }, + "providerType": { + "type": "string", + "description": "Provider type.", + "readOnly": true + }, + "company": { + "type": "string", + "description": "Company name.", + "readOnly": true + }, + "defaultEndpoint": { + "type": "string", + "description": "Provider's default endpoint.", + "readOnly": true + }, + "aad": { + "$ref": "#/definitions/ProviderPropertiesAad", + "description": "Azure Active Directory info." + }, + "managedApplication": { + "$ref": "#/definitions/ProviderPropertiesManagedApplication", + "description": "Provider's Managed-Application info" + }, + "targets": { + "type": "array", + "description": "The list of targets available from this provider.", + "items": { + "$ref": "#/definitions/TargetDescription" + } + }, + "skus": { + "type": "array", + "description": "The list of skus available from this provider.", + "items": { + "$ref": "#/definitions/SkuDescription" + } + }, + "quotaDimensions": { + "type": "array", + "description": "The list of quota dimensions from the provider.", + "items": { + "$ref": "#/definitions/QuotaDimension" + } + }, + "pricingDimensions": { + "type": "array", + "description": "The list of pricing dimensions from the provider.", + "items": { + "$ref": "#/definitions/PricingDimension" + } + } + } + }, + "ProviderPropertiesAad": { + "type": "object", + "description": "Azure Active Directory info.", + "properties": { + "applicationId": { + "type": "string", + "description": "Provider's application id.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "description": "Provider's tenant id.", + "readOnly": true + } + } + }, + "ProviderPropertiesManagedApplication": { + "type": "object", + "description": "Provider's Managed-Application info", + "properties": { + "publisherId": { + "type": "string", + "description": "Provider's publisher id.", + "readOnly": true + }, + "offerId": { + "type": "string", + "description": "Provider's offer id.", + "readOnly": true + } + } + }, + "ProviderStatus": { + "type": "string", + "description": "Provisioning status field", + "enum": [ + "Succeeded", + "Launching", + "Updating", + "Deleting", + "Deleted", + "Failed" + ], + "x-ms-enum": { + "name": "ProviderStatus", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The provider is successfully provisioned." + }, + { + "name": "Launching", + "value": "Launching", + "description": "The provider is starting provisioning." + }, + { + "name": "Updating", + "value": "Updating", + "description": "The provider is updating." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The provider is deleting." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "The provider is deleted." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The provider is failed." + } + ] + } + }, + "QuantumSuiteOffer": { + "type": "object", + "description": "A Quantum Suite Offer that is available to a subscription.", + "properties": { + "properties": { + "$ref": "#/definitions/QuantumSuiteOfferProperties", + "description": "The resource-specific properties for this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "QuantumSuiteOfferListResult": { + "type": "object", + "description": "The response of a QuantumSuiteOffer list operation.", + "properties": { + "value": { + "type": "array", + "description": "The QuantumSuiteOffer items on this page", + "items": { + "$ref": "#/definitions/QuantumSuiteOffer" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "QuantumSuiteOfferProperties": { + "type": "object", + "description": "Properties of a Quantum Suite Offer", + "properties": { + "providerId": { + "type": "string", + "description": "The provider ID of the offer." + }, + "providerName": { + "type": "string", + "description": "The provider name of the offer." + }, + "companyName": { + "type": "string", + "description": "The name of the company that is providing this offer." + }, + "location": { + "type": "string", + "description": "The location where this offer is available." + }, + "description": { + "type": "string", + "description": "Description of the offer." + }, + "quotas": { + "$ref": "#/definitions/QuotaAllocations", + "description": "Quota allocations associated with this offer." + } + }, + "required": [ + "providerId", + "providerName", + "companyName", + "location", + "description" + ] + }, + "QuantumWorkspace": { + "type": "object", + "description": "The resource proxy definition object for Quantum Workspace.", + "properties": { + "properties": { + "$ref": "#/definitions/WorkspaceResourceProperties", + "description": "Gets or sets the properties. Define quantum workspace's specific properties." + }, + "identity": { + "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The managed service identities assigned to this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ] + }, + "QuantumWorkspaceListResult": { + "type": "object", + "description": "The response of a QuantumWorkspace list operation.", + "properties": { + "value": { + "type": "array", + "description": "The QuantumWorkspace items on this page", + "items": { + "$ref": "#/definitions/QuantumWorkspace" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "QuantumWorkspaceTagsUpdate": { + "type": "object", + "description": "The type used for updating tags in QuantumWorkspace resources.", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + } + } + }, + "QuotaAllocations": { + "type": "object", + "description": "Quota allocations with each field representing different quota type.", + "properties": { + "standardMinutesLifetime": { + "type": "integer", + "format": "int32", + "description": "Lifetime limit for standard priority jobs execution in minutes.", + "minimum": 0 + }, + "highMinutesLifetime": { + "type": "integer", + "format": "int32", + "description": "Lifetime limit for high priority jobs execution in minutes.", + "minimum": 0 + } + }, + "required": [ + "standardMinutesLifetime" + ] + }, + "QuotaDimension": { + "type": "object", + "description": "Information about a specific quota dimension.", + "properties": { + "id": { + "type": "string", + "description": "Unique id of this dimension." + }, + "scope": { + "type": "string", + "description": "The scope of this quota dimension." + }, + "period": { + "type": "string", + "description": "The reset period of this quota dimension." + }, + "quota": { + "type": "number", + "format": "float", + "description": "The max limit of this dimension." + }, + "name": { + "type": "string", + "description": "The display name of this quota dimension." + }, + "description": { + "type": "string", + "description": "A description about this quota dimension." + }, + "unit": { + "type": "string", + "description": "The standard unit of measurement used for this quota dimension." + }, + "unitPlural": { + "type": "string", + "description": "The standard unit of measurement used for this quota dimension in plural form." + } + } + }, + "SkuDescription": { + "type": "object", + "description": "Information about a specific sku.", + "properties": { + "id": { + "type": "string", + "description": "Unique sku id." + }, + "name": { + "type": "string", + "description": "Display name of this sku." + }, + "version": { + "type": "string", + "description": "Display name of this sku." + }, + "description": { + "type": "string", + "description": "Description about this sku." + }, + "restrictedAccessUri": { + "type": "string", + "description": "Uri to subscribe to the restricted access sku." + }, + "autoAdd": { + "type": "boolean", + "description": "Flag to indicate whether the sku should be automatically added during workspace creation." + }, + "targets": { + "type": "array", + "description": "The list of targets available for this sku.", + "items": { + "type": "string" + } + }, + "quotaDimensions": { + "type": "array", + "description": "The list of quota dimensions for this sku.", + "items": { + "$ref": "#/definitions/QuotaDimension" + } + }, + "pricingDetails": { + "type": "array", + "description": "The list of pricing details for the sku.", + "items": { + "$ref": "#/definitions/PricingDetail" + } + } + } + }, + "StorageAccountResourceId": { + "type": "string", + "format": "arm-id", + "description": "ARM Resource Id of a storage account.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Storage/storageAccounts" + } + ] + } + }, + "TargetDescription": { + "type": "object", + "description": "Information about a Target. A target is the component that can process a specific type of Job.", + "properties": { + "id": { + "type": "string", + "description": "Unique target id." + }, + "name": { + "type": "string", + "description": "Display name of this target." + }, + "description": { + "type": "string", + "description": "A description about this target." + }, + "acceptedDataFormats": { + "type": "array", + "description": "List of data formats accepted by this target.", + "items": { + "type": "string" + } + }, + "acceptedContentEncodings": { + "type": "array", + "description": "List of content encodings accepted by this target.", + "items": { + "type": "string" + } + }, + "numQubits": { + "type": "integer", + "format": "int32", + "description": "The qubit number", + "minimum": 1, + "maximum": 100000, + "readOnly": true + }, + "targetProfile": { + "type": "string", + "description": "Target QIR profile", + "readOnly": true + }, + "metadata": { + "type": "object", + "description": "The metadata of this target.", + "additionalProperties": {}, + "readOnly": true + } + } + }, + "UsableStatus": { + "type": "string", + "description": "Whether the current workspace is ready to accept Jobs.", + "enum": [ + "Yes", + "No", + "Partial" + ], + "x-ms-enum": { + "name": "UsableStatus", + "modelAsString": true, + "values": [ + { + "name": "Yes", + "value": "Yes", + "description": "The workspace is usable and can accept jobs." + }, + { + "name": "No", + "value": "No", + "description": "The workspace is not usable and cannot accept jobs." + }, + { + "name": "Partial", + "value": "Partial", + "description": "The workspace is partially usable." + } + ] + } + }, + "WorkspaceKind": { + "type": "string", + "description": "The workspace type.", + "enum": [ + "V1", + "V2" + ], + "x-ms-enum": { + "name": "WorkspaceKind", + "modelAsString": true, + "values": [ + { + "name": "V1", + "value": "V1", + "description": "The workspace is a general-purpose workspace." + }, + { + "name": "V2", + "value": "V2", + "description": "The workspace is a V2 workspace." + } + ] + } + }, + "WorkspaceProvisioningStatus": { + "type": "string", + "description": "The Workspace provisioning status.", + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "ProviderLaunching", + "ProviderUpdating", + "ProviderDeleting", + "ProviderProvisioning" + ], + "x-ms-enum": { + "name": "WorkspaceProvisioningStatus", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The Workspace provisioning is succeeded." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The Workspace provisioning failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Resource creation was canceled." + }, + { + "name": "ProviderLaunching", + "value": "ProviderLaunching", + "description": "The Workspace is currently starting to provision a provider." + }, + { + "name": "ProviderUpdating", + "value": "ProviderUpdating", + "description": "The Workspace is currently updating a provider." + }, + { + "name": "ProviderDeleting", + "value": "ProviderDeleting", + "description": "The Workspace is currently deleting a provider." + }, + { + "name": "ProviderProvisioning", + "value": "ProviderProvisioning", + "description": "The Workspace is currently provisioning a provider." + } + ] + } + }, + "WorkspaceResourceProperties": { + "type": "object", + "description": "Properties of a Workspace", + "properties": { + "providers": { + "type": "array", + "description": "List of Providers selected for this Workspace", + "items": { + "$ref": "#/definitions/Provider" + }, + "x-ms-identifiers": [ + "providerId" + ] + }, + "usable": { + "$ref": "#/definitions/UsableStatus", + "description": "Whether the current workspace is ready to accept Jobs.", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/WorkspaceProvisioningStatus", + "description": "Provisioning status field", + "readOnly": true + }, + "storageAccount": { + "$ref": "#/definitions/StorageAccountResourceId", + "description": "ARM Resource Id of the storage account associated with this workspace." + }, + "workspaceKind": { + "$ref": "#/definitions/WorkspaceKind", + "description": "Whether this workspace is V1 or V2." + }, + "endpointUri": { + "type": "string", + "description": "The URI of the workspace endpoint.", + "readOnly": true + }, + "apiKeyEnabled": { + "type": "boolean", + "description": "Indicator of enablement of the Quantum workspace Api keys." + }, + "managedOnBehalfOfConfiguration": { + "$ref": "../../../../../common-types/resource-management/v5/mobo.json#/definitions/ManagedOnBehalfOfConfiguration", + "description": "Managed On Behalf Of configuration.", + "readOnly": true + }, + "managedStorageAccount": { + "$ref": "#/definitions/StorageAccountResourceId", + "description": "ARM Resource Id of the managed storage account associated with this workspace.", + "readOnly": true + } + } + } + }, + "parameters": {} +} diff --git a/specification/quantum/resource-manager/readme.md b/specification/quantum/resource-manager/readme.md index a05e12d04674..082f98ff1f1f 100644 --- a/specification/quantum/resource-manager/readme.md +++ b/specification/quantum/resource-manager/readme.md @@ -89,6 +89,15 @@ input-file: - Microsoft.Quantum/preview/2025-11-01-preview/quantum.json ``` +### Tag: package-2025-12-15-preview + +These settings apply only when `--tag=package-2025-12-15-preview` is specified on the command line. + +``` yaml $(tag) == 'package-2025-12-15-preview' +input-file: + - Microsoft.Quantum/preview/2025-12-15-preview/quantum.json +``` + --- # Code Generation From 56a7ec9f6b7574b1d04e3280a2a7f97d193df0da Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Mon, 15 Dec 2025 13:29:51 -0800 Subject: [PATCH 029/117] [.github] Add test to ensure workflows use extension `.yaml` (#39279) --- .github/workflows/test/workflows.test.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/test/workflows.test.js diff --git a/.github/workflows/test/workflows.test.js b/.github/workflows/test/workflows.test.js new file mode 100644 index 000000000000..c28ef525a3cf --- /dev/null +++ b/.github/workflows/test/workflows.test.js @@ -0,0 +1,20 @@ +import { readdir } from "fs/promises"; +import { dirname, extname, resolve } from "path"; +import { fileURLToPath } from "url"; +import { describe, expect, it } from "vitest"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const workflowsDir = resolve(__dirname, ".."); + +describe("workflow files", () => { + it("should be named *.yaml", async () => { + const entries = await readdir(workflowsDir, { withFileTypes: true }); + + const nonYamlFiles = entries + .filter((e) => e.isFile()) + .map((e) => e.name) + .filter((f) => extname(f) !== ".yaml"); + + expect(nonYamlFiles, "workflow files must use extension '.yaml'").toEqual([]); + }); +}); From ac51c03ea8447e89f601c650f20b1683194f11a7 Mon Sep 17 00:00:00 2001 From: steve munk <33468793+stevemunk@users.noreply.github.com> Date: Mon, 15 Dec 2025 17:44:56 -0600 Subject: [PATCH 030/117] Updated property descriptions for several weather service object properties. (#38908) * Updated property descriptions for AirAndPollen and AirQuality properties. * Updated property descriptions for 'daily' objects. * Updated property descriptions for 'daily' objects. * spelling issues. * Updates to datTime properties etc. * feedback --- specification/maps/cspell.yaml | 3 + .../Weather/stable/1.1/weather.json | 272 +++++++++--------- 2 files changed, 142 insertions(+), 133 deletions(-) diff --git a/specification/maps/cspell.yaml b/specification/maps/cspell.yaml index 623f8bda2743..e361272acb39 100644 --- a/specification/maps/cspell.yaml +++ b/specification/maps/cspell.yaml @@ -39,6 +39,9 @@ overrides: words: - locationally - unittype + - Accu + - AccuWeather + - dailyhistoricalactuals - filename: >- **/specification/maps/data-plane/Render/preview/1.0/render.json words: diff --git a/specification/maps/data-plane/Weather/stable/1.1/weather.json b/specification/maps/data-plane/Weather/stable/1.1/weather.json index ffdcb750eb84..efabfa0f600d 100644 --- a/specification/maps/data-plane/Weather/stable/1.1/weather.json +++ b/specification/maps/data-plane/Weather/stable/1.1/weather.json @@ -1118,7 +1118,7 @@ }, { "name": "startDate", - "description": "Start date in ISO 8601 format, for example, 2019-10-27. The date range supported is 1 to 31 calendar days, so be sure to specify a startDate and endDate that does not exceed a maximum of 31 days (i.e.: startDate=2012-01-01&endDate=2012-01-31).", + "description": "Start date in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, for example, 2019-10-27. The date range supported is 1 to 31 calendar days, so be sure to specify a startDate and endDate that does not exceed a maximum of 31 days (i.e.: startDate=2012-01-01&endDate=2012-01-31).", "in": "query", "type": "string", "format": "date", @@ -1126,7 +1126,7 @@ }, { "name": "endDate", - "description": "End date in ISO 8601 format, for example, 2019-10-28. The date range supported is 1 to 31 calendar days, so be sure to specify a startDate and endDate that does not exceed a maximum of 31 days (i.e.: startDate=2012-01-01&endDate=2012-01-31).", + "description": "End date in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, for example, 2019-10-28. The date range supported is 1 to 31 calendar days, so be sure to specify a startDate and endDate that does not exceed a maximum of 31 days (i.e.: startDate=2012-01-01&endDate=2012-01-31).", "in": "query", "type": "string", "format": "date", @@ -1174,7 +1174,7 @@ }, { "name": "startDate", - "description": "Start date in ISO 8601 format, for example, 2019-10-27. The date range supported is 1 to 31 calendar days, so be sure to specify a startDate and endDate that does not exceed a maximum of 31 days (i.e.: startDate=2012-01-01&endDate=2012-01-31).", + "description": "Start date in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, for example, 2019-10-27. The date range supported is 1 to 31 calendar days, so be sure to specify a startDate and endDate that does not exceed a maximum of 31 days (i.e.: startDate=2012-01-01&endDate=2012-01-31).", "in": "query", "type": "string", "format": "date", @@ -1182,7 +1182,7 @@ }, { "name": "endDate", - "description": "End date in ISO 8601 format, for example, 2019-10-28. The date range supported is 1 to 31 calendar days, so be sure to specify a startDate and endDate that does not exceed a maximum of 31 days (i.e.: startDate=2012-01-01&endDate=2012-01-31).", + "description": "End date in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, for example, 2019-10-28. The date range supported is 1 to 31 calendar days, so be sure to specify a startDate and endDate that does not exceed a maximum of 31 days (i.e.: startDate=2012-01-01&endDate=2012-01-31).", "in": "query", "type": "string", "format": "date", @@ -1230,7 +1230,7 @@ }, { "name": "startDate", - "description": "Start date in ISO 8601 format, for example, 2019-10-27. The date range supported is 1 to 31 calendar days, so be sure to specify a startDate and endDate that does not exceed a maximum of 31 days (i.e.: startDate=2012-01-01&endDate=2012-01-31).", + "description": "Start date in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, for example, 2019-10-27. The date range supported is 1 to 31 calendar days, so be sure to specify a startDate and endDate that does not exceed a maximum of 31 days (i.e.: startDate=2012-01-01&endDate=2012-01-31).", "in": "query", "type": "string", "format": "date", @@ -1238,7 +1238,7 @@ }, { "name": "endDate", - "description": "End date in ISO 8601 format, for example, 2019-10-28. The date range supported is 1 to 31 calendar days, so be sure to specify a startDate and endDate that does not exceed a maximum of 31 days (i.e.: startDate=2012-01-01&endDate=2012-01-31).", + "description": "End date in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, for example, 2019-10-28. The date range supported is 1 to 31 calendar days, so be sure to specify a startDate and endDate that does not exceed a maximum of 31 days (i.e.: startDate=2012-01-01&endDate=2012-01-31).", "in": "query", "type": "string", "format": "date", @@ -1828,7 +1828,7 @@ "date": { "x-ms-client-name": "timestamp", "type": "string", - "description": "Date and time of the forecast in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00.", + "description": "Date and time of the forecast in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, for example, 2019-10-27T19:39:57-08:00.", "format": "date-time" }, "iconCode": { @@ -1840,7 +1840,7 @@ }, "hasPrecipitation": { "type": "boolean", - "description": "Indicates the presence or absence of precipitation. True indicates the presence of precipitation, false indicates the absence of precipitation." + "description": "A boolean value that indicates whether precipitation (rain, snow, sleet, or hail) is expected during the specified timeframe. Returns true if precipitation is expected, otherwise false." }, "isDaylight": { "type": "boolean", @@ -2018,7 +2018,7 @@ "startTime": { "type": "string", "format": "date-time", - "description": "The date and time for the start of the interval in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00." + "description": "The date and time for the start of the interval in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, for example, 2019-10-27T19:39:57-08:00." }, "minute": { "type": "integer", @@ -2122,7 +2122,7 @@ "effectiveDate": { "type": "string", "format": "date-time", - "description": "Date and time of the beginning of the forecast quarter displayed in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00." + "description": "Date and time of the beginning of the forecast quarter displayed in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, for example, 2019-10-27T19:39:57-08:00." }, "quarter": { "description": "Divides the day into four 6-hour quarters. Valid values are 0-3:
  • 0: Morning (7am - 1pm)
  • 1: Afternoon (1pm - 7pm)
  • 2: Evening (7pm - 1am)
  • 3: Overnight (1am - 7am)
", @@ -2208,7 +2208,7 @@ }, "hasPrecipitation": { "type": "boolean", - "description": "Indicates the presence or absence of precipitation. True indicates the presence of precipitation, false indicates the absence of precipitation." + "description": "A boolean value that indicates whether precipitation (rain, snow, sleet, or hail) is expected during the specified timeframe. Returns true if precipitation is expected, otherwise false." }, "precipitationType": { "$ref": "#/definitions/PrecipitationType" @@ -2355,7 +2355,7 @@ "dateTime": { "type": "string", "format": "date-time", - "description": "Date and time of the current observation displayed in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00." + "description": "Date and time of the current observation displayed in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, for example, 2019-10-27T19:39:57-08:00." }, "phrase": { "x-ms-client-name": "description", @@ -2367,7 +2367,7 @@ }, "hasPrecipitation": { "type": "boolean", - "description": "Indicates the presence or absence of precipitation. True indicates the presence of precipitation, false indicates the absence of precipitation." + "description": "A boolean value that indicates whether precipitation (rain, snow, sleet, or hail) is expected during the specified timeframe. Returns true if precipitation is expected, otherwise false." }, "isDayTime": { "x-ms-client-name": "isDaytime", @@ -2469,25 +2469,25 @@ "startDate": { "type": "string", "format": "date-time", - "description": "Date and time that the summary is in effect, displayed in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00." + "description": "The start date and time for the forecast summary, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*." }, "endDate": { "type": "string", "format": "date-time", - "description": "Date and time that the summary period ends, displayed in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00." + "description": "The end date and time for the forecast summary, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*." }, "severity": { "type": "integer", "format": "int32", - "description": "severity" + "description": "Indicates the severity of the forecasted weather as an integer. Lower numbers represent higher severity: 0 = Unknown, 1 = Significant, 2 = Major, 3 = Moderate, 4 = Minor, 5 = Minimal, 6 = Insignificant, 7 = Informational." }, "phrase": { "type": "string", - "description": "Summary phrase of the daily forecast. Displayed in specified language." + "description": "Provides a brief textual summary of the daily weather conditions, displayed in the specified language." }, "category": { "type": "string", - "description": "one or 2 word(s) to summarize the phrase." + "description": "Provides a one or two-word summary of the forecasted weather conditions, such as Sunny, Partly Cloudy, Rain, or Snow." } }, "description": "Summary for the main conditions for the requested time period. Notice that summary can cover only part of the time period." @@ -2507,63 +2507,65 @@ }, "AirAndPollen": { "type": "object", + "description": "The AirAndPollen object provides comprehensive environmental data. It identifies various pollen types such as tree, grass, ragweed, and mold, and pollutants including PM2.5, PM10, O3, NO2, SO2, and CO. Additionally, it reports the UV Index on a scale from 1 to 10, offers qualitative descriptions of air quality or pollen levels, and provides numerical measurements of the concentration of pollutants or pollen in the air. This detailed information helps users assess air quality and pollen conditions along their travel route.", "properties": { "name": { "x-ms-client-name": "description", "type": "string", - "description": "Name of the pollen or pollutant. For example, grass, mold, weed, air quality, tree and UV index." + "description": "**For pollen:**\nReturns the name of the pollen, such as tree, grass, ragweed, or mold.\n\n**For pollutants:**\nWhen the `name` property is `AirQuality`, the name of the pollutant is returned in the `type` property.\nValid pollutants include: PM2.5, PM10, O3, NO2, SO2, and CO.\n\n**For UV Index:**\nWhen the `name` property is `UVIndex`, the UV index is returned in the `value` property. Valid UV Index values range from 0 to 11+ and represent the intensity of ultraviolet radiation.\nUV Index values are categorized as follows:\n
  • 0-2: Low
  • 3-5: Moderate
  • 6-7: High
  • 8-10: Very High
  • 11+: Extreme
" }, "value": { "type": "integer", "format": "int32", - "description": "Value of the given type above. Values associated with mold, grass, weed and tree are in units of parts per cubic meter. Both air quality and UV are indices, so they are unitless." + "description": "Provides a numerical measurement of the concentration of pollutants or pollen in the air. This value is typically expressed in units relevant to the type of pollutant or pollen being measured, such as micrograms per cubic meter (µg/m³) for particulate matter or parts per billion (ppb) for gases like ozone. Both air quality and UV are indices, so they are unitless." }, "category": { "type": "string", - "description": "Category of the air quality or pollution type. For example, low, high, good, moderate, unhealthy, hazardous." + "description": "Provides a one-word qualitative description of the air quality or pollen level for the forecast period in the specified language. This property categorizes the air quality or pollen count into different levels, such as low, high, good, moderate, unhealthy, hazardous giving users an easy-to-understand assessment of the current conditions." }, "categoryValue": { "type": "integer", "format": "int32", - "description": "Value associated with the air quality or pollution category. These values range from 1 to 6. 1 implying good conditions, 6 implying hazardous conditions." + "description": "Provides a numerical representation of the air quality or pollen level. This value corresponds to the qualitative `category` property, offering a precise way to quantify the air quality or pollen level. These values range from 1 to 6, with 1 implying good conditions and 6 implying hazardous conditions." }, "type": { "x-ms-client-name": "airQualityType", "type": "string", - "description": "Only exists for air quality. Examples include ozone and particle pollution." + "description": "Specifies the type of air pollutant being measured. Only used when the `name` property equals *AirQuality*. Examples of air pollutants include Particulate Matter (PM2.5, PM10), Ozone (O3), Nitrogen Dioxide (NO2), Sulfur Dioxide (SO2), and Carbon Monoxide (CO)." } } }, "DailyForecast": { "type": "object", + "description": "Provides detailed weather information for a specific day, such as temperature, wind, precipitation, air quality, and UV index.", "properties": { "date": { "x-ms-client-name": "dateTime", "type": "string", "format": "date-time", - "description": "Date and time of the current observation displayed in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00." + "description": "Date and time of the current observation, displayed in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*." }, "temperature": { "$ref": "#/definitions/WeatherUnitRange", - "description": "Temperature values for the day." + "description": "Provides the forecasted high and low temperatures for the day, in degrees Celsius (C) or Fahrenheit (F), depending on the `unit` specified in the request." }, "realFeelTemperature": { "$ref": "#/definitions/WeatherUnitRange", - "description": "RealFeel™ Temperature being returned." + "description": "Provides RealFeel™ Temperature values for the specified day, measured in degrees Celsius (C) or Fahrenheit (F), depending on the unit specified in the request. This metric, developed by AccuWeather, incorporates over a dozen factors, including humidity, wind speed, cloud cover, and sun intensity, to offer a comprehensive measure of how the weather actually feels." }, "realFeelTemperatureShade": { "$ref": "#/definitions/WeatherUnitRange", - "description": "RealFeel™ Temperature being returned. Describes what the temperature really feels like in the shade." + "description": "Provides RealFeel™ Temperature values for the specified day in shaded areas. This metric, developed by AccuWeather, incorporates over a dozen factors, including humidity, wind speed, cloud cover, and sun intensity, to offer a comprehensive measure of how the weather actually feels in the shade." }, "hoursOfSun": { "type": "number", "format": "float", - "description": "Hours of sun." + "description": "Provides the expected number of hours of sunshine for the specified day." }, "degreeDaySummary": { "x-ms-client-name": "meanTemperatureDeviation", "$ref": "#/definitions/DegreeDaySummary", - "description": "Summary for mean temperature of Heating Degree Day or Cooling Degree Day information" + "description": "Provides a summary of heating and cooling degree days. Heating Degree Days (HDD) measure the demand for energy to heat a building, calculated based on the degrees a day's average temperature is below 65°F/18°C. Cooling Degree Days (CDD) measure the demand for energy to cool a building, calculated based on the degrees a day's average temperature is above 65°F/18°C. This summary aids in energy management and planning." }, "airAndPollen": { "x-ms-client-name": "airQuality", @@ -2571,20 +2573,20 @@ "items": { "$ref": "#/definitions/AirAndPollen" }, - "description": "Air quality" + "description": "A list containing pollutants, pollen levels, and the UV index for the daily forecast. Each list item includes forecasted amounts and categories (e.g., low, high, good, moderate, unhealthy, hazardous) to assess potential health risks." }, "day": { "x-ms-client-name": "daytimeForecast", "$ref": "#/definitions/DayOrNight", - "description": "Day forecast detail" + "description": "Provides detailed weather information for the daytime weather forecast, including temperature, precipitation, wind, and other key attributes." }, "night": { "x-ms-client-name": "nighttimeForecast", "$ref": "#/definitions/DayOrNight", - "description": "Night forecast detail" + "description": "Provides detailed weather information for the nighttime weather forecast, including temperature, precipitation, wind, and other key attributes." }, "sources": { - "description": "Source(s) of the forecast data.", + "description": "A list of sources contributing to the weather forecast data.", "type": "array", "items": { "type": "string" @@ -2644,7 +2646,7 @@ }, "hasPrecipitation": { "type": "boolean", - "description": "Indicates the presence or absence of precipitation. True indicates the presence of precipitation, false indicates the absence of precipitation." + "description": "A boolean value that indicates whether precipitation (rain, snow, sleet, or hail) is expected during the specified timeframe. Returns true if precipitation is expected, otherwise false." }, "precipitationType": { "$ref": "#/definitions/PrecipitationType" @@ -3014,12 +3016,12 @@ "startTime": { "type": "string", "format": "date-time", - "description": "The start date and time of the alert in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00. If the alert crosses multiple time zones the returned time in the response is the local time to the requested coordinate location." + "description": "The start date and time of the alert in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, for example, 2019-10-27T19:39:57-08:00. If the alert crosses multiple time zones the returned time in the response is the local time to the requested coordinate location." }, "endTime": { "type": "string", "format": "date-time", - "description": "The end date and time of the alert in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00. If the alert crosses multiple time zones the returned time in the response is the local time to the requested coordinate location." + "description": "The date and time at which the alert ended or will end in [ISO 8601](https://en.wikipedia.org/wiki/ISO_format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*. If the alert spans multiple time zones, the response will provide the local time corresponding to the requested coordinates." }, "latestStatus": { "$ref": "#/definitions/LatestStatus", @@ -3028,12 +3030,12 @@ "alertDetails": { "x-ms-client-name": "details", "type": "string", - "description": "Full details associated with the alert. Returned if `details`=True. This field is always returned in the language(s) of choice by the issuing provider and Azure Maps only returns what is created by the provider. Please note, some countries/regions may offer their native language and English. Language parameter won’t apply to this field." + "description": "Full details associated with the alert. Returned if `details=True`. This field is always returned in the language(s) of choice by the issuing provider and Azure Maps only returns what is created by the provider. Please note, some countries/regions may offer their native language and English. Language parameter won't apply to this field." }, "alertDetailsLanguageCode": { "x-ms-client-name": "language", "type": "string", - "description": "Language of the `alertDetails`. This field helps to point out that the language of the `alertDetails` may differ from the requested language parameter. Returned if `details`=True. Language code has been derived from the ISO 639-1 Alpha-2 codes." + "description": "Language of the `alertDetails`. This field helps to point out that the language of the `alertDetails` may differ from the requested language parameter. Returned if `details=True`. Language code has been derived from the ISO 639-1 Alpha-2 codes." } } }, @@ -3119,51 +3121,51 @@ }, "DailyIndex": { "type": "object", - "description": "Information about a daily index.", + "description": "The DailyIndex object helps users plan outdoor activities based on weather conditions by providing the activity name, such as 'Ski Weather Forecast'; a numerical rating from 0.0 to 10.0 indicating suitability; a text rating, such as 'Poor'; and a brief description of the conditions, such as 'Expect poor conditions for skiing.'", "properties": { "indexName": { "type": "string", - "description": "Name of the index, for example, \"Construction\", \"Outdoor Activity\", \"Flight Delays\"." + "description": "The name of the index, indicating the type of activity or condition it relates to, such as running, golfing, or other outdoor activities. For more information, see [Index IDs](/azure/azure-maps/weather-services-concepts#index-ids-and-index-groups-ids) in the *Weather service in Azure Maps* concepts article." }, "indexId": { "type": "integer", "format": "int32", - "description": "Numeric ID used to identify the specific index. Please refer to [Weather services in Azure Maps](/azure/azure-maps/weather-services-concepts#daily-index-range-sets) for details and to see the supported index IDs. For example, the index ID can support UI visualization scenarios." + "description": "A numeric identifier that uniquely represents a specific index type, distinguishing between different indices for various outdoor activities. For example, an 'indexId' of 1 corresponds to the 'Running' index, and an 'indexId' of 5 corresponds to the 'Golfing' index. For more information, see [Index IDs](/azure/azure-maps/weather-services-concepts#index-ids-and-index-groups-ids) in the *Weather service in Azure Maps* concepts article." }, "dateTime": { "type": "string", "format": "date-time", - "description": "Date and time of the current observation displayed in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00." + "description": "Date and time of the observation in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*." }, "value": { "type": "number", "format": "float", - "description": "Index value. Ranges from 0.0 to 10.0. Please refer to [Weather services in Azure Maps](/azure/azure-maps/weather-services-concepts#daily-index-range-sets) for details and to see the supported ranges." + "description": "A numerical index value ranging from 0.0 to 10.0 that quantifies the suitability of weather conditions for a specific activity or condition, such as running or golfing. Higher values typically indicate more favorable conditions, depending on the value of the `ascending` property. For example, a value of 8 for the 'Running' index suggests very good weather for running, while a value of 6 for the 'Golfing' index indicates good but slightly less ideal conditions. For more information, see [Daily index range sets](/azure/azure-maps/daily-index-range-sets) in the *Weather service in Azure Maps* concepts article." }, "category": { "x-ms-client-name": "categoryDescription", "type": "string", - "description": "Textual description for `categoryValue` corresponding to the level that the index value falls under, for example \"Very Good\"." + "description": "Provides a qualitative assessment of the index, describing the `categoryValue` property. Categories vary among indices and may include values such as Excellent, Very Good, Good, Fair, and Poor." }, "categoryValue": { "type": "integer", "format": "int32", - "description": "Level that the index value falls under, represented by an integer. This value can be 1 through 5 and should be used in combination with the `ascending` flag because it can differ among indices. For example, the following values apply for Mosquito Activity: Low=1, Moderate=2, High=3, Very High=4, and Extreme=5." + "description": "Provides a numeric representation of the category property, indicating the qualitative assessment of the index. Values range from 1 to 5 and should be used with the ascending flag, as they can differ among indices. For example, for Mosquito Activity: Low=1, Moderate=2, High=3, Very High=4, Extreme=5." }, "ascending": { "x-ms-client-name": "isAscending", "type": "boolean", - "description": "Describes the direction of the `value` and `categoryValue`. For example, when set to `true`, the poorest index value is 0 and the best index value is 10. When set to `true`, the poorest index value is 10 and the best index value is 0." + "description": "Indicates the direction of the `value` and `categoryValue` properties. When true, the poorest index value is 0 and the best index value is 10. When false, the poorest index value is 10 and the best index value is 0." }, "description": { "type": "string", - "description": "A textual explanation that can be used for display purposes to summarize the index value and category. For example, when the index value for Flight Delays is very good, the description will be \"Conditions are excellent for flying!\"." + "description": "Provides a brief, user-friendly explanation of the index value, helping users understand its significance in relation to specific weather conditions or activities. For example, if the index value for Outdoor Barbecue is 'Excellent', the description will be 'This is a great day for an outdoor barbecue!'" } } }, "ActiveStormResult": { "type": "object", - "description": "All government-issued active storms", + "description": "The ActiveStormResult object provides comprehensive information about ongoing tropical storms. It includes an array of [ActiveStorm](#ActiveStorm) objects, each detailing specific attributes of individual storms. These attributes encompass the storm's government ID, basin ID, year of origin, name, and subtropical status.", "properties": { "results": { "type": "array", @@ -3171,7 +3173,7 @@ "items": { "$ref": "#/definitions/ActiveStorm" }, - "description": "All government-issued active storms" + "description": "An array of [ActiveStorm](#ActiveStorm) objects, each providing essential details about an ongoing tropical storm, as reported by national weather forecasting agencies." }, "nextLink": { "$ref": "#/definitions/NextLink" @@ -3180,32 +3182,32 @@ }, "ActiveStorm": { "type": "object", - "description": "Government-issued active storm", + "description": "Provides essential details about ongoing tropical storms, as reported by national weather forecasting agencies.", "properties": { "year": { "type": "string", - "description": "Year of origination" + "description": "Specifies the year in which the tropical storm originated." }, "basinId": { "$ref": "#/definitions/basinId", - "description": "Basin identifier (AL, EP, SI, NI, CP, NP, SP)" + "description": "Categorizes the different ocean basins where tropical storms can originate. Each basin is assigned a unique identifier to help specify the location of the storm's origin. Valid Basin identifiers include AL, CP, EP, NI, NP, SI, and SP." }, "name": { "type": "string", - "description": "The name of the depression." + "description": "The name of the storm." }, "isActive": { "type": "boolean", - "description": "True if the depression has been updated recently." + "description": "Indicates whether the tropical storm is currently active. If true, the storm is active; if false, the storm is not active." }, "isSubtropical": { "type": "boolean", - "description": "True when the depression is classified as a subtropical cyclone." + "description": "A return value of true indicates that the storm is classified as a subtropical cyclone, meaning it has both tropical and extratropical features." }, "govId": { "type": "integer", "format": "int32", - "description": "Government storm ID. This will match the depression number." + "description": "A unique identifier assigned to tropical storms by national weather forecasting agencies. This identifier helps track and reference specific storms accurately, including its status, location, and intensity." } } }, @@ -3258,7 +3260,7 @@ }, "StormSearchResult": { "type": "object", - "description": "Search government-issued storms", + "description": "Contains a list of government-issued storms that meet the specified search criteria, including details such as the storm's basin ID, government-issued ID and status.", "properties": { "results": { "type": "array", @@ -3266,7 +3268,7 @@ "items": { "$ref": "#/definitions/StormSearchResultItem" }, - "description": "Search government-issued storms" + "description": "Array of [StormSearchResultItem](#stormsearchresultitem) objects, each representing a tropical storm matching the search criteria provided in the request." }, "nextLink": { "$ref": "#/definitions/NextLink" @@ -3275,42 +3277,42 @@ }, "StormSearchResultItem": { "type": "object", - "description": "Government-issued active storm event", + "description": "A government-issued storm event, including the storm's basin identifier (basinId), government-issued identifier (govId) and status. This object is returned as part of an array within the [StormSearchResult](#stormsearchresult) object.", "properties": { "year": { "type": "string", - "description": "Year of origination" + "description": "Specifies the year in which the tropical storm originated." }, "basinId": { "$ref": "#/definitions/basinId", - "description": "Basin identifier (AL, EP, SI, NI, CP, NP, SP)" + "description": "Categorizes the different ocean basins where tropical storms can originate. Each basin is assigned a unique identifier to help specify the location of the storm's origin. Valid Basin identifiers include AL, CP, EP, NI, NP, SI, and SP." }, "name": { "type": "string", - "description": "The name of the depression." + "description": "Identifies the tropical storm by its official name, as designated by the relevant national weather forecasting agency." }, "isActive": { "type": "boolean", - "description": "True if the depression has been updated recently." + "description": "Indicates whether the tropical storm is currently active. If true, the storm is active; if false, the storm is not active" }, "isRetired": { "type": "boolean", - "description": "True if the storm name has been permanently retired in the source basin." + "description": "Returns true if the storm has been permanently retired in the source basin." }, "isSubtropical": { "type": "boolean", - "description": "True when the depression is classified as a subtropical cyclone." + "description": "Returns true if the storm is classified as a subtropical cyclone, meaning it has both tropical and extratropical features." }, "govId": { "type": "integer", "format": "int32", - "description": "Government storm ID. This will match the depression number." + "description": "A unique identifier assigned to tropical storms by national weather forecasting agencies. This identifier helps track and reference specific storms accurately, including its status, location, and intensity. This will match the depression number." } } }, "StormForecastResult": { "type": "object", - "description": "The list of Government-issued forecasts", + "description": "An array of [StormForecast](#stormforecast) objects, each detailing individual storm forecasts issued by government authorities.", "properties": { "results": { "type": "array", @@ -3318,7 +3320,7 @@ "items": { "$ref": "#/definitions/StormForecast" }, - "description": "The list of Government-issued forecasts" + "description": "An array of forecast data for tropical storms, including predicted paths, intensities, and other relevant details. These forecasts are issued by government authorities." }, "nextLink": { "$ref": "#/definitions/NextLink" @@ -3327,46 +3329,46 @@ }, "StormForecast": { "type": "object", - "description": "Government-issued storm forecast", + "description": "The StormForecast object contains detailed Government-issued information about forecasted tropical storms, including the storm's location, status, forecast creation date, wind speed, and wind radii.", "properties": { "dateTime": { "type": "string", "x-ms-client-name": "timestamp", - "description": "Datetime the forecast is valid, displayed in ISO8601 format." + "description": "Date and time that the current forecast is valid, displayed in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*." }, "initializedDateTime": { "type": "string", "x-ms-client-name": "initialized_timestamp", - "description": "Datetime the forecast was created, displayed in ISO8601 format." + "description": "Date and time that the forecast was created, displayed in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*." }, "location": { "$ref": "../../../Common/preview/1.0/common.json#/definitions/LatLongPair", "x-ms-client-name": "coordinates", - "description": "Coordinates of the storm" + "description": "Specifies the geographical coordinates (latitude and longitude) of the storm's forecasted position." }, "maxWindGust": { "$ref": "#/definitions/WeatherUnit", - "description": "Maximum wind gust speed associated with the storm. May be NULL." + "description": "Specifies the expected maximum wind gust speed and direction expected during the storm, measured in kilometers per hour (km/h) or miles per hour (mph), based on the specified unit. Wind direction is given in azimuth degrees, ranging from 0° (true North) to 359°, moving clockwise. May be NULL." }, "sustainedWind": { "$ref": "#/definitions/WeatherUnit", - "description": "Maximum sustained wind speed associated with the storm. May be NULL." + "description": "Specifies the maximum sustained wind speed expected during the storm, measured in kilometers per hour (km/h) or miles per hour (mph), based on the unit specified in the request. May be NULL." }, "status": { "type": "string", - "description": "Possible status values include:
  • Cyclonic storm
  • Deep depression
  • Depression
  • Extremely severe cyclonic storm
  • Hurricane category (1-5)
  • Intense tropical cyclone
  • Moderate tropical storm
  • Post-tropical cyclone
  • Potential tropical cyclone
  • Severe cyclonic storm
  • Severe tropical storm
  • Subtropical
  • Super cyclonic storm
  • Tropical cyclone
  • Tropical cyclone category (1-5)
  • Tropical depression
  • Tropical disturbance
  • Tropical storm
  • Typhoon
  • Very intense tropical cyclone
  • Very severe cyclonic storm
  • Very strong typhoon
  • Violent typhoon
" + "description": "Indicates the current state or condition of the storm. This property provides information on whether the storm is active, dissipating, or has reached another significant status. Possible values:
  • Cyclonic storm
  • Deep depression
  • Depression
  • Extremely severe cyclonic storm
  • Hurricane category (1-5)
  • Intense tropical cyclone
  • Moderate tropical storm
  • Post-tropical cyclone
  • Potential tropical cyclone
  • Severe cyclonic storm
  • Severe tropical storm
  • Subtropical
  • Super cyclonic storm
  • Tropical cyclone
  • Tropical cyclone category (1-5)
  • Tropical depression
  • Tropical disturbance
  • Tropical storm
  • Typhoon
  • Very intense tropical cyclone
  • Very severe cyclonic storm
  • Very strong typhoon
  • Violent typhoon
" }, "window": { "$ref": "#/definitions/WeatherWindow", "x-ms-client-name": "WeatherWindow", - "description": "Contains information about the forecast window for the storm during the specified time period (not the entire cone). If windowGeometry=true in the request, this object will include geoJSON details for window geometry." + "description": "Provides forecast details for the storm within the specified time frame. If the `windowGeometry` parameter is set to true in the API request, this property will include GeoJSON details for the window geometry." }, "windRadiiSummary": { "type": "array", "items": { "$ref": "#/definitions/StormWindRadiiSummary" }, - "description": "Displayed when details=true or radiiGeometry=true in the request." + "description": "Contains an array of [StormWindRadiiSummary](#stormwindradiisummary) objects, detailing wind radii in different quadrants around the storm's center. Displayed when `details=true` or `radiiGeometry=true` in the request." } } }, @@ -3412,33 +3414,33 @@ }, "StormWindRadiiSummary": { "type": "object", - "description": "Displayed when details=true or radiiGeometry=true in the request.", + "description": "The StormWindRadiiSummary object provides a high-level overview of the wind distribution around a tropical storm. It includes the geometric representation of wind radii (radiiGeometry), detailed sector-based wind data (radiusSectorData), and the wind speeds at various distances from the storm's center (windSpeed). These properties collectively help in understanding the spatial extent and intensity of winds associated with the storm. Displayed when the request includes `details=true` or `radiiGeometry=true`.", "properties": { "dateTime": { "type": "string", "x-ms-client-name": "timestamp", - "description": "DateTime for which the wind radii summary data is valid, displayed in ISO8601 format." + "description": "Date and time that the wind radii summary data is valid, displayed in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*." }, "windSpeed": { "$ref": "#/definitions/WeatherUnit", - "description": "Wind speed associated with the radiusSectorData." + "description": "The overall wind speed associated with the storm's wind radii data. This single wind speed value applies collectively to all the sectors within the [radiusSectorData](#radiusSectorData) array, which provides detailed geographical information for the NE, SE, SW, and NW quadrants of the storm's wind radii." }, "radiusSectorData": { "type": "array", - "description": "Contains the information needed to plot wind radius quadrants. Bearing 0–90 = NE quadrant; 90–180 = SE quadrant; 180–270 = SW quadrant; 270–360 = NW quadrant.", + "description": "An array of [RadiusSector](#RadiusSector) objects. Each object contains detailed geographical information (in geoJSON format) needed to plot wind radius quadrants: 0-90° for NE, 90-180° for SE, 180-270° for SW, and 270-360° for NW.", "items": { "$ref": "#/definitions/RadiusSector" } }, "radiiGeometry": { "$ref": "../../../Common/preview/1.0/common.json#/definitions/GeoJsonGeometry", - "description": "GeoJSON object. Displayed when radiiGeometry=true in request. Describes the outline of the wind radius quadrants." + "description": "A GeoJSON object that is returned when the `radiiGeometry` parameter is set to true in the request. It provides detailed geographical information about the storm's wind radii, including the spatial representation of areas affected by different wind speeds." } } }, "RadiusSector": { "type": "object", - "description": "Bearing 0–90 = NE quadrant; 90–180 = SE quadrant; 180–270 = SW quadrant; 270–360 = NW quadrant.", + "description": "Bearing 0-90 = NE quadrant; 90-180 = SE quadrant; 180-270 = SW quadrant; 270-360 = NW quadrant.", "properties": { "beginBearing": { "type": "number", @@ -3460,7 +3462,7 @@ }, "StormLocationsResult": { "type": "object", - "description": "Locations for an individual government-issued storm", + "description": "Contains an array of [StormLocation](#stormlocation) objects, representing government-issued active storm events. Includes details such as latitude and longitude coordinates, wind speed and direction, wind radii, basin identifier, minimum pressure, movement, status, and other relevant attributes.", "properties": { "results": { "type": "array", @@ -3468,7 +3470,7 @@ "items": { "$ref": "#/definitions/StormLocation" }, - "description": "Locations for an individual government-issued storm" + "description": "Array of data points, each detailing the location of an individual government-issued storm, including coordinates, geometry, basin ID, date, wind details, and wind radii." }, "nextLink": { "$ref": "#/definitions/NextLink" @@ -3477,41 +3479,41 @@ }, "StormLocation": { "type": "object", - "description": "Location for an individual Government-issued storm", + "description": "Contains detailed information about a tropical storm's location, including latitude and longitude coordinates, wind speed and direction, wind radii, and basin identifier. Essential for tracking and forecasting the storm's movement and intensity.", "properties": { "dateTime": { "type": "string", "x-ms-client-name": "timestamp", - "description": "Datetime the forecast is valid, displayed in ISO8601 format." + "description": "Date and time that the forecast is valid, displayed in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*." }, "location": { "$ref": "../../../Common/preview/1.0/common.json#/definitions/LatLongPair", "x-ms-client-name": "coordinates", - "description": "Coordinates of the storm" + "description": "Specifies the latitude and longitude coordinates of the storm's center." }, "maxWindGust": { "$ref": "#/definitions/WeatherUnit", - "description": "Maximum wind gust speed associated with the storm. May be NULL." + "description": "Specifies the expected maximum wind gust speed and direction expected during the storm, measured in kilometers per hour (km/h) or miles per hour (mph), based on the specified unit. Wind direction is given in azimuth degrees, ranging from 0° (true North) to 359°, moving clockwise. May be NULL." }, "sustainedWind": { "$ref": "#/definitions/WeatherUnit", - "description": "Maximum sustained wind speed associated with the storm. May be NULL." + "description": "Maximum sustained wind speed associated with the storm, measured in kilometers per hour (km/h) or miles per hour (mph), based on the specified unit. May be NULL." }, "minimumPressure": { "$ref": "#/definitions/WeatherUnit", - "description": "Minimum pressure associated with the storm. May be NULL." + "description": "Specifies the lowest atmospheric pressure associated with the storm, measured in millibars (mb) or inches of mercury (inHg), depending on the unit specified in the request. This value may be NULL." }, "movement": { "$ref": "#/definitions/WindDetails", - "description": "The storm movement information." + "description": "Returns the storm's current direction (in degrees) and speed, measured in kilometers per hour (km/h) or miles per hour (mph), depending on the specified unit." }, "status": { "type": "string", - "description": "Storm status, in English." + "description": "Returns the current classification or stage of the storm in English, such as a tropical depression, tropical storm, or hurricane." }, "isSubtropical": { "type": "boolean", - "description": "True when the depression is classified as a subtropical cyclone." + "description": "A return value of true indicates that the storm is classified as a subtropical cyclone, meaning it has both tropical and extratropical features." }, "hasTropicalPotential": { "type": "boolean", @@ -3519,20 +3521,20 @@ }, "isPostTropical": { "type": "boolean", - "description": "True when the storm is weakening away, and will no longer become a tropical system." + "description": "Returns true if the storm has transitioned from a tropical cyclone to a post-tropical cyclone, aiding in understanding the storm's lifecycle phase." }, "windRadiiSummary": { "type": "array", "items": { "$ref": "#/definitions/StormWindRadiiSummary" }, - "description": "Displayed when details=true or radiiGeometry=true in the request." + "description": "Contains an array of [StormWindRadiiSummary](#stormwindradiisummary) objects, detailing wind radii in different quadrants around the storm's center. Displayed when `details=true` or `radiiGeometry=true` in the request." } } }, "AirQualityResult": { "type": "object", - "description": "This object is returned from a successful Get Air Quality call.", + "description": "An array of [AirQuality](#airquality) objects, each providing comprehensive information about the current air quality at the specified location.", "properties": { "results": { "type": "array", @@ -3540,7 +3542,7 @@ "items": { "$ref": "#/definitions/AirQuality" }, - "description": "A list of all air quality results for the queried location." + "description": "Detailed air quality results within the specified location, including properties such as the air quality index (AQI), dominant pollutant, pollutant levels, risk level, and suggested precautions." }, "nextLink": { "$ref": "#/definitions/NextLink" @@ -3549,7 +3551,7 @@ }, "DailyAirQualityForecastResult": { "type": "object", - "description": "This object is returned from a successful Get Daily Air Quality Forecast call.", + "description": "Returns an array of [DailyAirQuality](#dailyairquality) objects, each detailing the forecasted air quality for a specific day. The number of days included is determined by the `duration` URI parameter (1-7 days, default is 1).", "properties": { "results": { "type": "array", @@ -3557,7 +3559,7 @@ "items": { "$ref": "#/definitions/DailyAirQuality" }, - "description": "A list of all daily air quality forecasts for the queried location." + "description": "Detailed air quality forecast data for each day within the requested duration, including properties such as date, air quality index (AQI), dominant pollutant, pollutant levels, risk level, and suggested precautions." }, "nextLink": { "$ref": "#/definitions/NextLink" @@ -3566,35 +3568,35 @@ }, "AirQuality": { "type": "object", - "description": "Information about the air quality in a specific location at a specific time.", + "description": "The AirQuality object provides comprehensive information about the current air quality at the specified location. This includes the concentration levels of various pollutants, numerical Air Quality Index (AQI) values indicating the overall air quality, and identification of the dominant pollutant affecting the air quality. Additionally, it offers a risk level summary, which briefly outlines potential health risks and suggests precautions.", "properties": { "dateTime": { "type": "string", "format": "date-time", "x-ms-client-name": "timestamp", - "description": "Date and time of the current observation displayed in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00." + "description": "Date and time of the current observation, displayed in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*." }, "index": { "type": "number", "format": "float", - "description": "Air quality rating on a scale set by local regulating bodies. Scales can vary widely based on location. See [Wikipedia](https://en.wikipedia.org/wiki/Air_quality_index) for more information." + "description": "The air quality index (AQI) is an air quality rating scale set by local regulating bodies. Scales can vary widely based on location. For more information, see [Air quality index](https://en.wikipedia.org/wiki/Air_quality_index) in Wikipedia." }, "globalIndex": { "type": "number", "format": "float", - "description": "Internationally normalized air quality rating on a scale from 0 to 300 and up, with higher numbers representing worse air quality." + "description": "Provides an internationally standardized way to understand the concentration of pollutants in the air. Ratings range from 0 to 300 and up, with higher numbers representing worse air quality. The pollutants measured includes PM2.5, PM10, NO2, SO2, CO, and O3." }, "dominantPollutant": { "$ref": "#/definitions/DominantPollutant", - "description": "The pollutant with the highest concentration." + "description": "Identifies the pollutant with the highest concentration." }, "category": { "type": "string", - "description": "One-word description of the air quality in the requested language. For example, \"Excellent\"." + "description": "Provides a one-word description of the air quality for the forecast period in the specified language, such as Poor, Fair, or Excellent." }, "categoryColor": { "type": "string", - "description": "A unique color corresponding to the category of this air quality result." + "description": "Provides a unique hexadecimal color code corresponding to the air quality category for each day in the forecast period. This color helps users quickly identify the air quality level visually, with each color corresponding to a category such as Poor, Fair, or Excellent." }, "description": { "type": "string", @@ -3605,29 +3607,29 @@ "items": { "$ref": "#/definitions/Pollutant" }, - "description": "Information about individual pollutants." + "description": "An array containing detailed information about each pollutant in the response. Returned when the `pollutants` URI Parameter is *true*." } } }, "DailyAirQuality": { "type": "object", - "description": "Information about the air quality in a specific location at a specific time.", + "description": "Provides a summary of the forecasted air quality conditions for a specific day and location, in the requested language. This includes key metrics such as the air quality index (AQI), the dominant pollutant expected for that day, and a brief description of the overall air quality. The information helps users understand what to expect regarding air quality and any potential health implications for the forecasted day.", "properties": { "dateTime": { "type": "string", "format": "date-time", "x-ms-client-name": "timestamp", - "description": "Date and time of the current observation displayed in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00." + "description": "Date and time of the current observation, displayed in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*." }, "index": { "type": "number", "format": "float", - "description": "Air quality rating on a scale set by local regulating bodies. Scales can vary widely based on location. See [Wikipedia](https://en.wikipedia.org/wiki/Air_quality_index) for more information." + "description": "The air quality index (AQI) is a rating scale set by local regulating bodies, which can vary widely by location. For more information, see [Air quality index](https://en.wikipedia.org/wiki/Air_quality_index) in Wikipedia." }, "globalIndex": { "type": "number", "format": "float", - "description": "Internationally normalized air quality rating on a scale from 0 to 300 and up, with higher numbers representing worse air quality." + "description": "Provides an internationally standardized air quality rating from 0 to 300 and above, with higher numbers indicating worse air quality. The index measures pollutants such as PM2.5, PM10, NO2, SO2, CO, and O3." }, "dominantPollutant": { "$ref": "#/definitions/DominantPollutant", @@ -3635,15 +3637,15 @@ }, "category": { "type": "string", - "description": "One-word description of the air quality in the requested language. For example, \"Excellent\"." + "description": "Provides a one-word summary of the air quality for the forecast period in the specified language, such as Poor, Fair, or Excellent. This summary helps users quickly understand the overall air quality conditions." }, "categoryColor": { "type": "string", - "description": "A unique color corresponding to the category of this air quality result." + "description": "Provides a unique hexadecimal color code for each air quality category in the daily forecast, visually representing levels such as Poor, Fair, or Excellent." }, "description": { "type": "string", - "description": "A textual explanation of this air quality result in the requested language." + "description": "Provides a summary of the forecasted air quality conditions for a specific day and location, in the requested language." } } }, @@ -3761,10 +3763,11 @@ }, "DailyHistoricalActualsResult": { "type": "object", + "description": "Returns an array of [DailyHistoricalActuals](#dailyhistoricalactuals) objects, each detailing the observed historical weather data for the specified date and location. The number of days included is determined by the `startDate` and `endDate` URI parameters which can include up to 31 days.", "properties": { "results": { "type": "array", - "description": "Historical actuals for each requested day.", + "description": "Aggregates detailed historical weather data for specific dates and locations, including temperature, precipitation, snowfall, snow depth, and degree day summaries.", "x-ms-client-name": "historicalActuals", "items": { "$ref": "#/definitions/DailyHistoricalActuals" @@ -3777,41 +3780,43 @@ }, "DailyHistoricalActuals": { "type": "object", + "description": "Provides climatology data for a specific day, including observed temperatures, precipitation, snowfall, snow depth, and heating/cooling degree days.", "properties": { "date": { "type": "string", "format": "date-time", "x-ms-client-name": "timestamp", - "description": "Date and time of the current observation displayed in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00." + "description": "The date and time for the requested weather data in ISO 8061 format displayed in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*." }, "temperature": { "$ref": "#/definitions/WeatherUnitMaxMinAvg", - "description": "Temperature values." + "description": "Provides the observed maximum, minimum, and average temperatures for a specific day at a given location." }, "degreeDaySummary": { "$ref": "#/definitions/DegreeDaySummary", - "description": "Summary of heating or cooling degree day information. Degree days are measures of how cold or warm a location is. A degree day compares the mean (the average of the high and low) outdoor temperatures recorded for a location to a standard temperature of 65 degrees F/ 18 degree C." + "description": "Provides a summary of heating and cooling degree days. Heating Degree Days (HDD) measure the demand for energy to heat a building, calculated based on the degrees a day's average temperature is below 65°F/18°C. Cooling Degree Days (CDD) measure the demand for energy to cool a building, calculated based on the degrees a day's average temperature is above 65°F/18°C. This summary aids in energy management and planning." }, "precipitation": { "$ref": "#/definitions/WeatherUnit", - "description": "The amount of precipitation (liquid equivalent) that has fallen." + "description": "The amount of precipitation accumulated over the specified day, measured in millimeters (mm) or inches (in), depending on the unit specified in the request." }, "snowfall": { "$ref": "#/definitions/WeatherUnit", - "description": "The amount of snow that has fallen." + "description": "Provides the amount of snow that has fallen over the specified day, measured in centimeters (cm) or inches (in), based on the specified unit in the request." }, "snowDepth": { "$ref": "#/definitions/WeatherUnit", - "description": "Snow depth." + "description": "Provides the average accumulated snow depth, measured in centimeters (cm) or inches (in), based on the specified unit in the request." } } }, "DailyHistoricalRecordsResult": { "type": "object", + "description": "Provides an array of historical Daily Historical Records for specified dates and locations, each with aggregate detailed climatology data for the requested day, such as record temperatures, precipitation, and snowfall.", "properties": { "results": { "type": "array", - "description": "Historical records for each requested day.", + "description": "Aggregates detailed climatology data for each requested day, including record temperatures, precipitation, snowfall, snow depth, and degree day summaries.", "x-ms-client-name": "historicalRecords", "items": { "$ref": "#/definitions/DailyHistoricalRecords" @@ -3829,28 +3834,29 @@ "type": "string", "format": "date-time", "x-ms-client-name": "timestamp", - "description": "Date and time of the current observation displayed in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00." + "description": "Date and time of the current observation, displayed in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*." }, "temperature": { "$ref": "#/definitions/WeatherUnitYearMaxMinAvg", - "description": "Temperature value." + "description": "Returns the year in which both the minimum and the maximum temperatures occurred on a specified day, along with the recorded amounts. Also returns the average temperature for the given date. Measured in degrees Celsius (C) or Fahrenheit (F), depending on the unit specified in the request." }, "precipitation": { "$ref": "#/definitions/WeatherUnitYearMax", - "description": "Maximum amount of precipitation (liquid equivalent) that has fallen." + "description": "The amount of precipitation accumulated over the specified day, measured in millimeters (mm) or inches (in), based on the specified unit in the request." }, "snowfall": { "$ref": "#/definitions/WeatherUnitYearMax", - "description": "Maximum snowfall." + "description": "Returns the year in which the record high snowfall occurred on a specified date, along with the recorded amounts, measured in centimeters (cm) or inches (in), based on the unit specified in the request." } } }, "DailyHistoricalNormalsResult": { "type": "object", + "description": "Returns an array of [DailyHistoricalNormals](#dailyhistoricalnormals) objects, each detailing climatology data such as past daily normal temperatures, precipitation, and cooling/heating degree day information for the specified date range, calculated as a 30-year average (1991-2020). The number of days included is determined by the `startDate` and `endDate` URI parameters, which can include up to 31 days.", "properties": { "results": { "type": "array", - "description": "Historical normals for each requested day.", + "description": "Aggregates detailed climatology data for each requested day, including normal temperatures, precipitation, snowfall, snow depth, and degree day summaries.", "x-ms-client-name": "historicalNormals", "items": { "$ref": "#/definitions/DailyHistoricalNormals" @@ -3868,19 +3874,19 @@ "type": "string", "format": "date-time", "x-ms-client-name": "timestamp", - "description": "Date and time of the current observation displayed in ISO 8601 format, for example, 2019-10-27T19:39:57-08:00." + "description": "Date and time of the current observation, displayed in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (yyyy-mm-ddThh:mm:ss-hh:mm). For example, *2025-04-29T07:00:00-07:00*." }, "temperature": { "$ref": "#/definitions/WeatherUnitMaxMinAvg", - "description": "Temperature values." + "description": "Provides the normal high, low, and average temperatures for a specific day at a given location, calculated as a 30-year average (1991-2020)." }, "degreeDaySummary": { "$ref": "#/definitions/DegreeDaySummary", - "description": "Summary of heating or cooling degree day information" + "description": "Provides a summary of heating and cooling degree days. Heating Degree Days (HDD) measure the demand for energy to heat a building, calculated based on the degrees a day's average temperature is below 65°F/18°C. Cooling Degree Days (CDD) measure the demand for energy to cool a building, calculated based on the degrees a day's average temperature is above 65°F/18°C. This summary aids in energy management and planning." }, "precipitation": { "$ref": "#/definitions/WeatherUnit", - "description": "The amount of precipitation (liquid equivalent) that has fallen." + "description": "Provides the amount of precipitation accumulated over the specified day, measured in millimeters (mm) or inches (in), based on the specified unit in the request." } } }, @@ -3960,7 +3966,7 @@ }, "NextLink": { "type": "string", - "description": "The is the link to the next page of the features returned. If it's the last page, no this field." + "description": "Contains the URL to fetch the next page of results if the response is paginated. This is useful when the response is too large to be returned in a single call, allowing users to navigate through multiple pages of results." } } } From f0a5127d4e8b1ea6007b0bf9570904d9df860b97 Mon Sep 17 00:00:00 2001 From: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com> Date: Mon, 15 Dec 2025 16:46:14 -0800 Subject: [PATCH 031/117] [OpenAI.v1] Updating spec to latest from the new ingestion pipeline. (#39168) --- .../OpenAI.v1/azure-v1-preview-generated.json | 40449 +++++++++++----- .../OpenAI.v1/azure-v1-preview-generated.yaml | 32314 +++++++----- .../OpenAI.v1/azure-v1-v1-generated.json | 38390 ++++++++++----- .../OpenAI.v1/azure-v1-v1-generated.yaml | 30553 ++++++++---- 4 files changed, 95399 insertions(+), 46307 deletions(-) diff --git a/specification/ai/data-plane/OpenAI.v1/azure-v1-preview-generated.json b/specification/ai/data-plane/OpenAI.v1/azure-v1-preview-generated.json index a60bfb043822..1dbd29310c0f 100644 --- a/specification/ai/data-plane/OpenAI.v1/azure-v1-preview-generated.json +++ b/specification/ai/data-plane/OpenAI.v1/azure-v1-preview-generated.json @@ -1,5 +1,5 @@ { - "openapi": "3.0.0", + "openapi": "3.2.0", "info": { "title": "Azure AI Foundry Models Service", "license": { @@ -9,14 +9,23 @@ "version": "preview" }, "tags": [ + { + "name": "Audio" + }, + { + "name": "Batch" + }, { "name": "Chat" }, + { + "name": "Completions" + }, { "name": "Containers" }, { - "name": "Embeddings" + "name": "Conversations" }, { "name": "Evals" @@ -24,6 +33,9 @@ { "name": "Files" }, + { + "name": "Embeddings" + }, { "name": "Fine-tuning" }, @@ -33,21 +45,27 @@ { "name": "Models" }, + { + "name": "Realtime" + }, { "name": "Responses" }, + { + "name": "Threads" + }, { "name": "Vector Stores" }, { - "name": "Video" + "name": "Videos" } ], "paths": { - "/chat/completions": { + "/audio/speech": { "post": { - "operationId": "createChatCompletion", - "description": "Creates a chat completion.", + "operationId": "createSpeech", + "summary": "Generates text-to-speech audio from the input text.", "parameters": [ { "name": "api-version", @@ -73,14 +91,9 @@ } }, "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AzureCreateChatCompletionResponse" - } - }, - "text/event-stream": { + "application/octet-stream": { "schema": { - "$ref": "#/components/schemas/AzureCreateChatCompletionStreamResponse" + "contentMediaType": "application/octet-stream" } } } @@ -106,28 +119,84 @@ } }, "tags": [ - "Chat" + "Audio" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureCreateChatCompletionRequest" + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "The model to use for this text-to-speech request.", + "x-oaiTypeLabel": "string" + }, + "input": { + "type": "string", + "maxLength": 4096, + "description": "The text to generate audio for. The maximum length is 4096 characters." + }, + "instructions": { + "type": "string", + "maxLength": 4096, + "description": "Control the voice of your generated audio with additional instructions. Does not work with `tts-1` or `tts-1-hd`." + }, + "stream_format": { + "type": "string", + "enum": [ + "sse", + "audio" + ], + "description": "The format to stream the audio in. Supported formats are `sse` and `audio`. `sse` is not supported for `tts-1` or `tts-1-hd`.", + "default": "audio" + }, + "response_format": { + "allOf": [ + { + "$ref": "#/components/schemas/SpeechGenerationResponseFormat" + } + ], + "description": "The audio output format for the spoken text. By default, the MP3 format will be used." + }, + "speed": { + "type": "number", + "format": "float", + "minimum": 0.25, + "maximum": 4, + "description": "The speed of speech for generated audio. Values are valid in the range from 0.25 to 4.0, with 1.0 the default and higher values corresponding to faster speech.", + "default": 1 + }, + "voice": { + "allOf": [ + { + "$ref": "#/components/schemas/SpeechVoice" + } + ], + "description": "The voice to use when generating the audio. Supported voices are `alloy`, `echo`, `fable`, `onyx`, `nova`, and `shimmer`." + } + }, + "required": [ + "model", + "input", + "voice" + ] } } } }, "x-ms-examples": { - "Create a chat completion": { - "$ref": "./examples/chat_completions.yaml" + "Create a speech request": { + "$ref": "./examples/audio_speech.yaml" } } } }, - "/containers": { - "get": { - "operationId": "ListContainers", + "/audio/transcriptions": { + "post": { + "operationId": "createTranscription", + "summary": "Transcribes audio into the input language.", "parameters": [ { "name": "api-version", @@ -138,42 +207,6 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false - }, - { - "name": "order", - "in": "query", - "required": false, - "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - }, - "explode": false - }, - { - "name": "after", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", - "schema": { - "type": "string" - }, - "explode": false } ], "responses": { @@ -191,7 +224,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ContainerListResource" + "$ref": "#/components/schemas/AzureAudioTranscriptionResponse" + } + }, + "text/plain": { + "schema": { + "type": "string" } } } @@ -217,11 +255,89 @@ } }, "tags": [ - "Containers" - ] - }, + "Audio" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "object", + "description": "The audio file object (not file name) to transcribe, in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.", + "x-oaiTypeLabel": "file", + "x-oaiMeta": { + "exampleFilePath": "speech.mp3" + } + }, + "model": { + "type": "string", + "description": "The model to use for this transcription request.", + "x-oaiTypeLabel": "string" + }, + "language": { + "type": "object", + "description": "The language of the input audio. Supplying the input language in [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`) format will improve accuracy and latency." + }, + "prompt": { + "type": "object", + "description": "An optional text to guide the model's style or continue a previous audio segment. The [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting) should match the audio language. This field is not supported when using `gpt-4o-transcribe-diarize`." + }, + "response_format": { + "type": "object" + }, + "temperature": { + "type": "object", + "description": "The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit." + }, + "include": { + "type": "object", + "description": "Additional information to include in the transcription response.\n `logprobs` will return the log probabilities of the tokens in the\n response to understand the model's confidence in the transcription.\n `logprobs` only works with response_format set to `json` and only with\n the models `gpt-4o-transcribe` and `gpt-4o-mini-transcribe`. This field is not supported when using `gpt-4o-transcribe-diarize`." + }, + "timestamp_granularities": { + "type": "object", + "description": "The timestamp granularities to populate for this transcription. `response_format` must be set `verbose_json` to use timestamp granularities. Either or both of these options are supported: `word`, or `segment`. Note: There is no additional latency for segment timestamps, but generating word timestamps incurs additional latency.\n This option is not available for `gpt-4o-transcribe-diarize`." + }, + "stream": { + "type": "object" + }, + "chunking_strategy": { + "type": "object" + }, + "known_speaker_names": { + "type": "object", + "description": "Optional list of speaker names that correspond to the audio samples provided in `known_speaker_references[]`. Each entry should be a short identifier (for example `customer` or `agent`). Up to 4 speakers are supported." + }, + "known_speaker_references": { + "type": "object", + "description": "Optional list of audio samples (as [data URLs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs)) that contain known speaker references matching `known_speaker_names[]`. Each sample must be between 2 and 10 seconds, and can use any of the same input audio formats supported by `file`." + }, + "filename": { + "type": "string", + "description": "The optional filename or descriptive identifier to associate with with the audio data." + } + }, + "required": [ + "file", + "model" + ] + } + } + } + }, + "x-ms-examples": { + "Create a transcription request": { + "$ref": "./examples/audio_transcription.yaml" + } + } + } + }, + "/audio/translations": { "post": { - "operationId": "CreateContainer", + "operationId": "createTranslation", + "summary": "Gets English language transcribed text and associated metadata from provided spoken audio data.", "parameters": [ { "name": "api-version", @@ -249,7 +365,12 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ContainerResource" + "$ref": "#/components/schemas/AzureAudioTranslationResponse" + } + }, + "text/plain": { + "schema": { + "type": "string" } } } @@ -275,23 +396,64 @@ } }, "tags": [ - "Containers" + "Audio" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.CreateContainerBody" + "type": "object", + "properties": { + "file": { + "type": "object", + "description": "The audio file object (not file name) translate, in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.", + "x-oaiTypeLabel": "file", + "x-oaiMeta": { + "exampleFilePath": "speech.mp3" + } + }, + "model": { + "type": "string", + "description": "The model to use for this transcription request.", + "x-oaiTypeLabel": "string" + }, + "prompt": { + "type": "object", + "description": "An optional text to guide the model's style or continue a previous audio segment. The [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting) should be in English." + }, + "response_format": { + "type": "object", + "description": "The format of the output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`." + }, + "temperature": { + "type": "object", + "description": "The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit." + }, + "filename": { + "type": "string", + "description": "The optional filename or descriptive identifier to associate with with the audio data" + } + }, + "required": [ + "file", + "model" + ] } } } + }, + "x-ms-examples": { + "Create an audio translation request": { + "$ref": "./examples/audio_translation.yaml" + } } } }, - "/containers/{container_id}": { - "get": { - "operationId": "RetrieveContainer", + "/batches": { + "post": { + "operationId": "createBatch", + "summary": "Creates and executes a batch from an uploaded file of requests", "parameters": [ { "name": "api-version", @@ -304,36 +466,20 @@ } }, { - "name": "container_id", - "in": "path", + "name": "accept", + "in": "header", "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "application/json" + ] } } ], "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.ContainerResource" - } - } - } - }, - "default": { - "description": "An unexpected error response.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { "apim-request-id": { "required": false, @@ -341,52 +487,21 @@ "schema": { "type": "string" } - } - }, - "content": { - "application/json": { + }, + "deployment-enqueued-tokens": { + "required": true, + "description": "Sum of enqueued tokens of all jobs that target to the deployment.", "schema": { - "$ref": "#/components/schemas/AzureErrorResponse" + "type": "integer", + "format": "int64" } - } - } - } - }, - "tags": [ - "Containers" - ] - }, - "delete": { - "operationId": "DeleteContainer", - "parameters": [ - { - "name": "api-version", - "in": "query", - "required": false, - "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", - "schema": { - "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", - "default": "v1" - } - }, - { - "name": "container_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", + }, + "deployment-maximum-enqueued-tokens": { + "required": true, + "description": "Maximum enqueued tokens of the deployment.", "schema": { - "type": "string" + "type": "integer", + "format": "int64" } } }, @@ -397,7 +512,13 @@ "required": [ "id", "object", - "deleted" + "endpoint", + "completion_window", + "status", + "created_at", + "input_blob", + "output_blob", + "error_blob" ], "properties": { "id": { @@ -406,13 +527,155 @@ "object": { "type": "string", "enum": [ - "container.deleted" - ] + "batch" + ], + "description": "The object type, which is always `batch`.", + "x-stainless-const": true }, - "deleted": { - "type": "boolean", + "endpoint": { + "type": "string", + "description": "The OpenAI API endpoint used by the batch." + }, + "model": { + "type": "string", + "description": "Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model\n guide](https://platform.openai.com/docs/models) to browse and compare available models." + }, + "errors": { + "$ref": "#/components/schemas/OpenAI.BatchErrors" + }, + "completion_window": { + "type": "string", + "description": "The time frame within which the batch should be processed." + }, + "status": { + "type": "string", "enum": [ - true + "validating", + "failed", + "in_progress", + "finalizing", + "completed", + "expired", + "cancelling", + "cancelled" + ], + "description": "The current status of the batch." + }, + "output_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of successfully executed requests." + }, + "error_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of requests with errors." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was created." + }, + "in_progress_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started processing." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch will expire." + }, + "finalizing_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started finalizing." + }, + "completed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was completed." + }, + "failed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch failed." + }, + "expired_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch expired." + }, + "cancelling_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started cancelling." + }, + "cancelled_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was cancelled." + }, + "request_counts": { + "$ref": "#/components/schemas/OpenAI.BatchRequestCounts" + }, + "usage": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.BatchUsage" + } + ], + "description": "Represents token usage details including input tokens, output tokens, a\n breakdown of output tokens, and the total tokens used. Only populated on\n batches created after September 7, 2025." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "input_blob": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The blob url containing the input file for the batch." + }, + "output_blob": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The blob url containing outputs of successfully executed requests." + }, + "error_blob": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The blob url containing outputs of requests with errors." + }, + "input_file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } ] } } @@ -441,89 +704,71 @@ } }, "tags": [ - "Containers" - ] - } - }, - "/containers/{container_id}/files": { - "post": { - "operationId": "CreateContainerFile", - "parameters": [ - { - "name": "api-version", - "in": "query", - "required": false, - "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", - "schema": { - "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", - "default": "v1" - } - }, - { - "name": "container_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.ContainerFileResource" - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AzureErrorResponse" - } - } - } - } - }, - "tags": [ - "Containers" + "Batch" ], "requestBody": { "required": true, "content": { - "multipart/form-data": { + "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.CreateContainerFileBodyMultiPart" + "type": "object", + "properties": { + "input_file_id": { + "type": "string", + "description": "The ID of an uploaded file that contains requests for the new batch.\n\nSee [upload file](/docs/api-reference/files/create) for how to upload a file.\n\nYour input file must be formatted as a [JSONL file](/docs/api-reference/batch/requestInput),\nand must be uploaded with the purpose `batch`." + }, + "input_blob": { + "type": "string", + "description": "The url of an Azure Storage blob to use as input for the batch." + }, + "output_folder": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri", + "description": "The url of the Azure Storage folder where the batch output would be saved." + }, + "delimiter": { + "type": "string", + "description": "Optional. The delimiter used in the folder path, by default /." + } + }, + "required": [ + "url" + ] + }, + "endpoint": { + "type": "string", + "enum": [ + "/v1/chat/completions", + "/v1/embeddings" + ], + "description": "The endpoint to be used for all requests in the batch. Currently `/v1/chat/completions` is supported." + }, + "completion_window": { + "type": "string", + "enum": [ + "24h" + ], + "description": "The time frame within which the batch should be processed. Currently only `24h` is supported." + }, + "output_expires_after": { + "$ref": "#/components/schemas/FileExpiresAfter" + } + }, + "required": [ + "endpoint", + "completion_window" + ] } } } } }, "get": { - "operationId": "ListContainerFiles", + "operationId": "listBatches", + "summary": "List your organization's batches.", "parameters": [ { "name": "api-version", @@ -536,13 +781,26 @@ } }, { - "name": "container_id", - "in": "path", + "name": "accept", + "in": "header", "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "application/json" + ] } }, + { + "name": "after", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, { "name": "limit", "in": "query", @@ -556,24 +814,20 @@ "explode": false }, { - "name": "order", + "name": "$filter", "in": "query", "required": false, - "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", + "description": "The OData expression to describe the filtering conditions.", "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] + "type": "string" }, "explode": false }, { - "name": "after", + "name": "$orderby", "in": "query", "required": false, - "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "description": "The OData expression to describe the sorting order.", "schema": { "type": "string" }, @@ -595,7 +849,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ContainerFileListResource" + "$ref": "#/components/schemas/OpenAI.ListBatchesResponse" } } } @@ -621,13 +875,14 @@ } }, "tags": [ - "Containers" + "Batch" ] } }, - "/containers/{container_id}/files/{file_id}": { + "/batches/{batch_id}": { "get": { - "operationId": "RetrieveContainerFile", + "operationId": "retrieveBatch", + "summary": "Retrieves a batch.", "parameters": [ { "name": "api-version", @@ -640,91 +895,21 @@ } }, { - "name": "container_id", - "in": "path", + "name": "accept", + "in": "header", "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "application/json" + ] } }, { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.ContainerFileResource" - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AzureErrorResponse" - } - } - } - } - }, - "tags": [ - "Containers" - ] - }, - "delete": { - "operationId": "DeleteContainerFile", - "parameters": [ - { - "name": "api-version", - "in": "query", - "required": false, - "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", - "schema": { - "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", - "default": "v1" - } - }, - { - "name": "container_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "file_id", + "name": "batch_id", "in": "path", "required": true, + "description": "The ID of the batch to retrieve.", "schema": { "type": "string" } @@ -749,7 +934,13 @@ "required": [ "id", "object", - "deleted" + "endpoint", + "completion_window", + "status", + "created_at", + "input_blob", + "output_blob", + "error_blob" ], "properties": { "id": { @@ -758,13 +949,155 @@ "object": { "type": "string", "enum": [ - "container.file.deleted" - ] + "batch" + ], + "description": "The object type, which is always `batch`.", + "x-stainless-const": true }, - "deleted": { - "type": "boolean", + "endpoint": { + "type": "string", + "description": "The OpenAI API endpoint used by the batch." + }, + "model": { + "type": "string", + "description": "Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model\n guide](https://platform.openai.com/docs/models) to browse and compare available models." + }, + "errors": { + "$ref": "#/components/schemas/OpenAI.BatchErrors" + }, + "completion_window": { + "type": "string", + "description": "The time frame within which the batch should be processed." + }, + "status": { + "type": "string", "enum": [ - true + "validating", + "failed", + "in_progress", + "finalizing", + "completed", + "expired", + "cancelling", + "cancelled" + ], + "description": "The current status of the batch." + }, + "output_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of successfully executed requests." + }, + "error_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of requests with errors." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was created." + }, + "in_progress_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started processing." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch will expire." + }, + "finalizing_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started finalizing." + }, + "completed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was completed." + }, + "failed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch failed." + }, + "expired_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch expired." + }, + "cancelling_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started cancelling." + }, + "cancelled_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was cancelled." + }, + "request_counts": { + "$ref": "#/components/schemas/OpenAI.BatchRequestCounts" + }, + "usage": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.BatchUsage" + } + ], + "description": "Represents token usage details including input tokens, output tokens, a\n breakdown of output tokens, and the total tokens used. Only populated on\n batches created after September 7, 2025." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "input_blob": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The blob url containing the input file for the batch." + }, + "output_blob": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The blob url containing outputs of successfully executed requests." + }, + "error_blob": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The blob url containing outputs of requests with errors." + }, + "input_file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } ] } } @@ -793,13 +1126,14 @@ } }, "tags": [ - "Containers" + "Batch" ] } }, - "/containers/{container_id}/files/{file_id}/content": { - "get": { - "operationId": "RetrieveContainerFileContent", + "/batches/{batch_id}/cancel": { + "post": { + "operationId": "cancelBatch", + "summary": "Cancels an in-progress batch.", "parameters": [ { "name": "api-version", @@ -812,17 +1146,21 @@ } }, { - "name": "container_id", - "in": "path", + "name": "accept", + "in": "header", "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "application/json" + ] } }, { - "name": "file_id", + "name": "batch_id", "in": "path", "required": true, + "description": "The ID of the batch to cancel.", "schema": { "type": "string" } @@ -841,10 +1179,179 @@ } }, "content": { - "application/octet-stream": { + "application/json": { "schema": { - "type": "string", - "format": "binary" + "type": "object", + "required": [ + "id", + "object", + "endpoint", + "completion_window", + "status", + "created_at", + "input_blob", + "output_blob", + "error_blob" + ], + "properties": { + "id": { + "type": "string" + }, + "object": { + "type": "string", + "enum": [ + "batch" + ], + "description": "The object type, which is always `batch`.", + "x-stainless-const": true + }, + "endpoint": { + "type": "string", + "description": "The OpenAI API endpoint used by the batch." + }, + "model": { + "type": "string", + "description": "Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model\n guide](https://platform.openai.com/docs/models) to browse and compare available models." + }, + "errors": { + "$ref": "#/components/schemas/OpenAI.BatchErrors" + }, + "completion_window": { + "type": "string", + "description": "The time frame within which the batch should be processed." + }, + "status": { + "type": "string", + "enum": [ + "validating", + "failed", + "in_progress", + "finalizing", + "completed", + "expired", + "cancelling", + "cancelled" + ], + "description": "The current status of the batch." + }, + "output_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of successfully executed requests." + }, + "error_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of requests with errors." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was created." + }, + "in_progress_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started processing." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch will expire." + }, + "finalizing_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started finalizing." + }, + "completed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was completed." + }, + "failed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch failed." + }, + "expired_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch expired." + }, + "cancelling_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started cancelling." + }, + "cancelled_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was cancelled." + }, + "request_counts": { + "$ref": "#/components/schemas/OpenAI.BatchRequestCounts" + }, + "usage": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.BatchUsage" + } + ], + "description": "Represents token usage details including input tokens, output tokens, a\n breakdown of output tokens, and the total tokens used. Only populated on\n batches created after September 7, 2025." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "input_blob": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The blob url containing the input file for the batch." + }, + "output_blob": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The blob url containing outputs of successfully executed requests." + }, + "error_blob": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The blob url containing outputs of requests with errors." + }, + "input_file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + } } } } @@ -870,14 +1377,14 @@ } }, "tags": [ - "Containers" + "Batch" ] } }, - "/embeddings": { + "/chat/completions": { "post": { - "operationId": "createEmbedding", - "summary": "Creates an embedding vector representing the input text.", + "operationId": "createChatCompletion", + "description": "Creates a chat completion.", "parameters": [ { "name": "api-version", @@ -905,7 +1412,138 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.CreateEmbeddingResponse" + "anyOf": [ + { + "type": "object", + "required": [ + "id", + "choices", + "created", + "model", + "object" + ], + "properties": { + "id": { + "type": "string", + "description": "A unique identifier for the chat completion." + }, + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateChatCompletionResponseChoices" + }, + "description": "A list of chat completion choices. Can be more than one if `n` is greater than 1." + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) of when the chat completion was created." + }, + "model": { + "type": "string", + "description": "The model used for the chat completion." + }, + "system_fingerprint": { + "type": "string", + "description": "This fingerprint represents the backend configuration that the model runs with.\n\n Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism." + }, + "object": { + "type": "string", + "enum": [ + "chat.completion" + ], + "description": "The object type, which is always `chat.completion`.", + "x-stainless-const": true + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.CompletionUsage" + }, + "prompt_filter_results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "prompt_index": { + "type": "integer", + "format": "int32", + "description": "The index of the input prompt that this content filter result corresponds to." + }, + "content_filter_results": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterResultForPrompt" + } + ], + "description": "The content filter results associated with the indexed input prompt." + } + }, + "required": [ + "prompt_index", + "content_filter_results" + ] + } + } + } + }, + { + "type": "object", + "required": [ + "id", + "choices", + "created", + "model", + "object" + ], + "properties": { + "id": { + "type": "string", + "description": "A unique identifier for the chat completion. Each chunk has the same ID." + }, + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateChatCompletionStreamResponseChoices" + }, + "description": "A list of chat completion choices. Can contain more than one elements if `n` is greater than 1. Can also be empty for the\n last chunk if you set `stream_options: {\"include_usage\": true}`." + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) of when the chat completion was created. Each chunk has the same timestamp." + }, + "model": { + "type": "string", + "description": "The model to generate the completion." + }, + "system_fingerprint": { + "type": "string", + "description": "This fingerprint represents the backend configuration that the model runs with.\n Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism." + }, + "object": { + "type": "string", + "enum": [ + "chat.completion.chunk" + ], + "description": "The object type, which is always `chat.completion.chunk`.", + "x-stainless-const": true + }, + "usage": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.CompletionUsage" + } + ], + "description": "An optional field that will only be present when you set\n `stream_options: {\"include_usage\": true}` in your request. When present, it\n contains a null value **except for the last chunk** which contains the\n token usage statistics for the entire request.\n\n*NOTE:** If the stream is interrupted or cancelled, you may not\n receive the final usage chunk which contains the total token usage for\n the request." + }, + "delta": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamResponseDelta" + }, + "content_filter_results": { + "$ref": "#/components/schemas/AzureContentFilterResultForChoice" + } + } + } + ] } } } @@ -931,29 +1569,343 @@ } }, "tags": [ - "Embeddings" + "Chat" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureCreateEmbeddingRequest" - } - } - } - }, - "x-ms-examples": { - "Create an embedding request": { - "$ref": "./examples/embeddings.yaml" - } - } - } - }, - "/evals": { - "get": { - "operationId": "listEvals", - "summary": "List evaluations for a project.", + "type": "object", + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "top_logprobs": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "user": { + "type": "string", + "description": "A unique identifier representing your end-user, which can help to\nmonitor and detect abuse." + }, + "safety_identifier": { + "type": "string", + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies.\n The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "prompt_cache_key": { + "type": "string", + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "anyOf": [ + { + "type": "string", + "enum": [ + "in-memory", + "24h" + ] + }, + { + "type": "null" + } + ] + }, + "messages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + }, + "minItems": 1, + "description": "A list of messages comprising the conversation so far. Depending on the\nmodel you use, different message types (modalities) are supported,\nlike text, images, and audio." + }, + "model": { + "type": "string", + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\n to browse and compare available models." + }, + "modalities": { + "$ref": "#/components/schemas/OpenAI.ResponseModalities" + }, + "verbosity": { + "$ref": "#/components/schemas/OpenAI.Verbosity" + }, + "reasoning_effort": { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + }, + "max_completion_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "An upper bound for the number of tokens that can be generated for a\ncompletion, including visible output tokens and reasoning tokens." + }, + "frequency_penalty": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "minimum": -2, + "maximum": 2, + "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on\n their existing frequency in the text so far, decreasing the model's\n likelihood to repeat the same line verbatim." + }, + "presence_penalty": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "minimum": -2, + "maximum": 2, + "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on\n whether they appear in the text so far, increasing the model's likelihood\n to talk about new topics." + }, + "response_format": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatText" + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchema" + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonObject" + } + ], + "description": "An object specifying the format that the model must output.\n\nSetting to `{ \"type\": \"json_schema\", \"json_schema\": {...} }` enables\nStructured Outputs which ensures the model will match your supplied JSON\nschema.\n\nSetting to `{ \"type\": \"json_object\" }` enables JSON mode, which ensures\nthe message the model generates is valid JSON.\n\n**Important:** when using JSON mode, you **must** also instruct the model\nto produce JSON yourself via a system or user message. Without this, the\nmodel may generate an unending stream of whitespace until the generation\nreaches the token limit, resulting in a long-running and seemingly \"stuck\"\nrequest. Also note that the message content may be partially cut off if\n`finish_reason=\"length\"`, which indicates the generation exceeded\n`max_tokens` or the conversation exceeded the max context length." + }, + "audio": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateChatCompletionRequestAudio" + }, + { + "type": "null" + } + ], + "description": "Parameters for audio output. Required when audio output is requested with\n`modalities: [\"audio\"]`." + }, + "store": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Whether or not to store the output of this chat completion request for\nuse in model distillation or evals products." + }, + "stream": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "If set to true, the model response data will be streamed to the client\nas it is generated using server-sent events." + }, + "stop": { + "$ref": "#/components/schemas/OpenAI.StopConfiguration" + }, + "logit_bias": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": { + "type": "integer" + } + }, + { + "type": "null" + } + ], + "description": "Modify the likelihood of specified tokens appearing in the completion.\n\n Accepts a JSON object that maps tokens (specified by their token ID in the\n tokenizer) to an associated bias value from -100 to 100. Mathematically,\n the bias is added to the logits generated by the model prior to sampling.\n The exact effect will vary per model, but values between -1 and 1 should\n decrease or increase likelihood of selection; values like -100 or 100\n should result in a ban or exclusive selection of the relevant token.", + "x-oaiTypeLabel": "map" + }, + "logprobs": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Whether to return log probabilities of the output tokens or not. If true,\n returns the log probabilities of each output token returned in the\n `content` of `message`." + }, + "max_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "The maximum number of tokens that can be generated in the chat completion.\nThis value can be used to control costs for text generated via API.\n\nThis value is now deprecated in favor of `max_completion_tokens`, and is\nnot compatible with o1 series models." + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 1, + "maximum": 128, + "description": "How many chat completion choices to generate for each input message. Note that you will be charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to minimize costs.", + "default": 1 + }, + "prediction": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.PredictionContent" + } + ], + "description": "Configuration for a predicted output, which can greatly improve\nresponse times when large parts of the model response are known\nahead of time. This is most common when you are regenerating a\nfile with only minor changes to most of the content." + }, + "seed": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": -9223372036854776000, + "maximum": 9223372036854776000, + "description": "This feature is in Beta.\n If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result.\n Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend.", + "x-oaiMeta": { + "beta": true + } + }, + "stream_options": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamOptions" + }, + { + "type": "null" + } + ] + }, + "tools": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTool" + }, + { + "$ref": "#/components/schemas/OpenAI.CustomToolChatCompletions" + } + ] + }, + "description": "A list of tools the model may call. You can provide either\n [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) or\n [function tools](https://platform.openai.com/docs/guides/function-calling)." + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionToolChoiceOption" + }, + "parallel_tool_calls": { + "$ref": "#/components/schemas/OpenAI.ParallelToolCalls" + }, + "function_call": { + "anyOf": [ + { + "type": "string", + "enum": [ + "none", + "auto" + ] + }, + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionFunctionCallOption" + } + ], + "description": "Deprecated in favor of `tool_choice`.\n\n Controls which (if any) function is called by the model.\n\n `none` means the model will not call a function and instead generates a\n message.\n\n `auto` means the model can pick between generating a message or calling a\n function.\n\n Specifying a particular function via `{\"name\": \"my_function\"}` forces the\n model to call that function.\n\n `none` is the default when no functions are present. `auto` is the default\n if functions are present." + }, + "functions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionFunctions" + }, + "minItems": 1, + "maxItems": 128, + "description": "Deprecated in favor of `tools`.\n\n A list of functions the model may generate JSON inputs for." + }, + "user_security_context": { + "$ref": "#/components/schemas/AzureUserSecurityContext" + } + }, + "required": [ + "messages", + "model" + ] + } + } + } + }, + "x-ms-examples": { + "Create a chat completion": { + "$ref": "./examples/chat_completions.yaml" + } + } + } + }, + "/completions": { + "post": { + "operationId": "createCompletion", + "description": "Creates a completion.", "parameters": [ { "name": "api-version", @@ -964,70 +1916,6 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "after", - "in": "query", - "required": false, - "description": "Identifier for the last eval from the previous pagination request.", - "schema": { - "type": "string" - }, - "explode": false - }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "A limit on the number of evals to be returned in a single pagination response.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false - }, - { - "name": "order", - "in": "query", - "required": false, - "description": "Sort order for evals by timestamp. Use `asc` for ascending order or\n`desc` for descending order.", - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - }, - "explode": false - }, - { - "name": "order_by", - "in": "query", - "required": false, - "description": "Evals can be ordered by creation time or last updated time. Use\n`created_at` for creation time or `updated_at` for last updated\ntime.", - "schema": { - "type": "string", - "enum": [ - "created_at", - "updated_at" - ], - "default": "created_at" - }, - "explode": false } ], "responses": { @@ -1045,78 +1933,57 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.EvalList" - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AzureErrorResponse" - } - } - } - } - }, - "tags": [ - "Evals" - ] - }, - "post": { - "operationId": "createEval", - "description": "Create the structure of an evaluation that can be used to test a model's\nperformance.\n\nAn evaluation is a set of testing criteria and a datasource. After\ncreating an evaluation, you can run it on different models and model\nparameters. We support several types of graders and datasources.\n\nFor more information, see the [Evals guide](/docs/guides/evals).\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", - "parameters": [ - { - "name": "api-version", - "in": "query", - "required": false, - "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", - "schema": { - "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", - "default": "v1" - } - }, - { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.Eval" + "type": "object", + "required": [ + "id", + "choices", + "created", + "model", + "object" + ], + "properties": { + "id": { + "type": "string", + "description": "A unique identifier for the completion." + }, + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateCompletionResponseChoices" + }, + "description": "The list of completion choices the model generated for the input prompt." + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) of when the completion was created." + }, + "model": { + "type": "string", + "description": "The model used for completion." + }, + "system_fingerprint": { + "type": "string", + "description": "This fingerprint represents the backend configuration that the model runs with.\n\n Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism." + }, + "object": { + "type": "string", + "enum": [ + "text_completion" + ], + "description": "The object type, which is always \"text_completion\"", + "x-stainless-const": true + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.CompletionUsage" + }, + "prompt_filter_results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureContentFilterResultForPrompt" + } + } + } } } } @@ -1142,7 +2009,7 @@ } }, "tags": [ - "Evals" + "Completions" ], "requestBody": { "required": true, @@ -1151,56 +2018,231 @@ "schema": { "type": "object", "properties": { - "statusCode": { - "type": "number", - "enum": [ - 201 - ] - }, - "name": { + "model": { "type": "string", - "description": "The name of the evaluation." + "description": "ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them.", + "x-oaiTypeLabel": "string" }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", + "best_of": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 0, + "maximum": 20, + "description": "Generates `best_of` completions server-side and returns the \"best\" (the one with the highest log probability per token). Results cannot be streamed.\n\n When used with `n`, `best_of` controls the number of candidate completions and `n` specifies how many to return – `best_of` must be greater than `n`.\n\n*Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.", + "default": 1 + }, + "echo": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Echo back the prompt in addition to the completion" + }, + "frequency_penalty": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "minimum": -2, + "maximum": 2, + "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.\n\n [See more information about frequency and presence penalties.](https://platform.openai.com/docs/guides/text-generation)" + }, + "logit_bias": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": { + "type": "integer" + } + }, + { + "type": "null" + } + ], + "description": "Modify the likelihood of specified tokens appearing in the completion.\n\n Accepts a JSON object that maps tokens (specified by their token ID in the GPT tokenizer) to an associated bias value from -100 to 100. You can use this [tokenizer tool](/tokenizer?view=bpe) to convert text to token IDs. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.\n\n As an example, you can pass `{\"50256\": -100}` to prevent the <|endoftext|> token from being generated.", "x-oaiTypeLabel": "map" }, - "data_source_config": { - "allOf": [ + "logprobs": { + "anyOf": [ + { + "type": "integer" + }, { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigParams" + "type": "null" } ], - "description": "The configuration for the data source used for the evaluation runs. Dictates the schema of the data used in the evaluation." + "minimum": 0, + "maximum": 5, + "description": "Include the log probabilities on the `logprobs` most likely output tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response.\n\n The maximum value for `logprobs` is 5." }, - "testing_criteria": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.EvalGraderParams" - }, - "description": "A list of graders for all eval runs in this group. Graders can reference variables in the data source using double curly braces notation, like `{{item.variable_name}}`. To reference the model's output, use the `sample` namespace (ie, `{{sample.output_text}}`)." + "max_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 0, + "description": "The maximum number of [tokens](/tokenizer) that can be generated in the completion.\n\n The token count of your prompt plus `max_tokens` cannot exceed the model's context length. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.", + "default": 16 + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 1, + "maximum": 128, + "description": "How many completions to generate for each prompt.\n\n*Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.", + "default": 1 + }, + "presence_penalty": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "minimum": -2, + "maximum": 2, + "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.\n\n [See more information about frequency and presence penalties.](https://platform.openai.com/docs/guides/text-generation)" + }, + "seed": { + "anyOf": [ + { + "type": "integer", + "format": "int64" + }, + { + "type": "null" + } + ], + "description": "If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result.\n\n Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend." + }, + "stop": { + "$ref": "#/components/schemas/OpenAI.StopConfiguration" + }, + "stream": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Whether to stream back partial progress. If set, tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions)." + }, + "stream_options": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamOptions" + }, + { + "type": "null" + } + ] + }, + "suffix": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The suffix that comes after a completion of inserted text.\n\n This parameter is only supported for `gpt-3.5-turbo-instruct`." + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "minimum": 0, + "maximum": 2, + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.\n\n We generally recommend altering this or `top_p` but not both.", + "default": 1 + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "minimum": 0, + "maximum": 1, + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\n We generally recommend altering this or `temperature` but not both.", + "default": 1 + }, + "user": { + "type": "string", + "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids)." + }, + "prompt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "null" + } + ], + "default": "<|endoftext|>" } }, "required": [ - "statusCode", - "data_source_config", - "testing_criteria" + "model" ] } } } + }, + "x-ms-examples": { + "Create a chat completion": { + "$ref": "./examples/completions.yaml" + } } } }, - "/evals/{eval_id}": { + "/containers": { "get": { - "operationId": "getEval", - "summary": "Retrieve an evaluation by its ID.", - "description": "Retrieves an evaluation by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "operationId": "listContainers", "parameters": [ { "name": "api-version", @@ -1213,32 +2255,58 @@ } }, { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "name": "limit", + "in": "query", + "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", "schema": { "type": "string", "enum": [ - "preview" + "asc", + "desc" ] - } + }, + "explode": false }, { - "name": "eval_id", - "in": "path", - "required": true, + "name": "after", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", "schema": { "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "apim-request-id": { - "required": false, + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "schema": { + "type": "string" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, "description": "A request ID used for troubleshooting purposes.", "schema": { "type": "string" @@ -1248,7 +2316,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.Eval" + "$ref": "#/components/schemas/OpenAI.ContainerListResource" } } } @@ -1274,12 +2342,11 @@ } }, "tags": [ - "Evals" + "Containers" ] }, "post": { - "operationId": "updateEval", - "description": "Update select, mutable properties of a specified evaluation.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "operationId": "createContainer", "parameters": [ { "name": "api-version", @@ -1290,26 +2357,6 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } } ], "responses": { @@ -1327,7 +2374,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.Eval" + "$ref": "#/components/schemas/OpenAI.ContainerResource" } } } @@ -1353,30 +2400,23 @@ } }, "tags": [ - "Evals" + "Containers" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "metadata": { - "$ref": "#/components/schemas/OpenAI.MetadataPropertyForRequest" - } - } + "$ref": "#/components/schemas/OpenAI.CreateContainerBody" } } } } - }, - "delete": { - "operationId": "deleteEval", - "description": "Delete a specified evaluation.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + } + }, + "/containers/{container_id}": { + "get": { + "operationId": "retrieveContainer", "parameters": [ { "name": "api-version", @@ -1389,21 +2429,10 @@ } }, { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", + "name": "container_id", "in": "path", "required": true, + "description": "The ID of the container to retrieve.", "schema": { "type": "string" } @@ -1424,26 +2453,7 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "object", - "deleted", - "eval_id" - ], - "properties": { - "object": { - "type": "string", - "enum": [ - "eval.deleted" - ] - }, - "deleted": { - "type": "boolean" - }, - "eval_id": { - "type": "string" - } - } + "$ref": "#/components/schemas/OpenAI.ContainerResource" } } } @@ -1469,15 +2479,11 @@ } }, "tags": [ - "Evals" + "Containers" ] - } - }, - "/evals/{eval_id}/runs": { - "get": { - "operationId": "getEvalRuns", - "summary": "", - "description": "Retrieve a list of runs for a specified evaluation.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + }, + "delete": { + "operationId": "deleteContainer", "parameters": [ { "name": "api-version", @@ -1490,38 +2496,81 @@ } }, { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", + "name": "container_id", "in": "path", "required": true, + "description": "The ID of the container to delete.", "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + } }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Containers" + ] + } + }, + "/containers/{container_id}/files": { + "get": { + "operationId": "listContainerFiles", + "parameters": [ { - "name": "after", + "name": "api-version", "in": "query", "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "container_id", + "in": "path", + "required": true, + "description": "The ID of the container to list files from.", "schema": { "type": "string" - }, - "explode": false + } }, { "name": "limit", "in": "query", "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", "schema": { "type": "integer", "format": "int32", @@ -1533,29 +2582,33 @@ "name": "order", "in": "query", "required": false, + "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", "schema": { "type": "string", "enum": [ "asc", "desc" - ], - "default": "asc" + ] }, "explode": false }, { - "name": "status", + "name": "after", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", "in": "query", "required": false, + "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", "schema": { - "type": "string", - "enum": [ - "queued", - "in_progress", - "completed", - "canceled", - "failed" - ] + "type": "string" }, "explode": false } @@ -1575,7 +2628,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.EvalRunList" + "$ref": "#/components/schemas/OpenAI.ContainerFileListResource" } } } @@ -1601,12 +2654,11 @@ } }, "tags": [ - "Evals" + "Containers" ] }, "post": { - "operationId": "createEvalRun", - "description": "Create a new evaluation run, beginning the grading process.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "operationId": "createContainerFile", "parameters": [ { "name": "api-version", @@ -1619,29 +2671,18 @@ } }, { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", + "name": "container_id", "in": "path", "required": true, + "description": "The ID of the container to create a file in.", "schema": { "type": "string" } } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "headers": { "apim-request-id": { "required": false, @@ -1654,7 +2695,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.EvalRun" + "$ref": "#/components/schemas/OpenAI.ContainerFileResource" } } } @@ -1680,24 +2721,23 @@ } }, "tags": [ - "Evals" + "Containers" ], "requestBody": { "required": true, "content": { - "application/json": { + "multipart/form-data": { "schema": { - "$ref": "#/components/schemas/OpenAI.CreateEvalRunRequest" + "$ref": "#/components/schemas/OpenAI.CreateContainerFileBody" } } } } } }, - "/evals/{eval_id}/runs/{run_id}": { + "/containers/{container_id}/files/{file_id}": { "get": { - "operationId": "getEvalRun", - "description": "Retrieve a specific evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "operationId": "retrieveContainerFile", "parameters": [ { "name": "api-version", @@ -1710,29 +2750,19 @@ } }, { - "name": "aoai-evals", - "in": "header", + "name": "container_id", + "in": "path", "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "description": "The ID of the container.", "schema": { - "type": "string", - "enum": [ - "preview" - ] + "type": "string" } }, { - "name": "eval_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "run_id", + "name": "file_id", "in": "path", "required": true, + "description": "The ID of the file to retrieve.", "schema": { "type": "string" } @@ -1753,7 +2783,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.EvalRun" + "$ref": "#/components/schemas/OpenAI.ContainerFileResource" } } } @@ -1779,12 +2809,11 @@ } }, "tags": [ - "Evals" + "Containers" ] }, - "post": { - "operationId": "cancelEvalRun", - "description": "Cancel a specific evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "delete": { + "operationId": "deleteContainerFile", "parameters": [ { "name": "api-version", @@ -1797,29 +2826,19 @@ } }, { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", + "name": "container_id", "in": "path", "required": true, + "description": "The ID of the container.", "schema": { "type": "string" } }, { - "name": "run_id", + "name": "file_id", "in": "path", "required": true, + "description": "The ID of the file to delete.", "schema": { "type": "string" } @@ -1836,13 +2855,6 @@ "type": "string" } } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.EvalRun" - } - } } }, "default": { @@ -1866,12 +2878,13 @@ } }, "tags": [ - "Evals" + "Containers" ] - }, - "delete": { - "operationId": "deleteEvalRun", - "description": "Delete a specific evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + } + }, + "/containers/{container_id}/files/{file_id}/content": { + "get": { + "operationId": "retrieveContainerFileContent", "parameters": [ { "name": "api-version", @@ -1884,29 +2897,19 @@ } }, { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", + "name": "container_id", "in": "path", "required": true, + "description": "The ID of the container.", "schema": { "type": "string" } }, { - "name": "run_id", + "name": "file_id", "in": "path", "required": true, + "description": "The ID of the file to retrieve content from.", "schema": { "type": "string" } @@ -1925,28 +2928,9 @@ } }, "content": { - "application/json": { + "application/octet-stream": { "schema": { - "type": "object", - "required": [ - "object", - "deleted", - "eval_run_id" - ], - "properties": { - "object": { - "type": "string", - "enum": [ - "eval_run.deleted" - ] - }, - "deleted": { - "type": "boolean" - }, - "eval_run_id": { - "type": "string" - } - } + "contentMediaType": "application/octet-stream" } } } @@ -1972,14 +2956,13 @@ } }, "tags": [ - "Evals" + "Containers" ] } }, - "/evals/{eval_id}/runs/{run_id}/output_items": { - "get": { - "operationId": "getEvalRunOutputItems", - "description": "Get a list of output items for a specified evaluation run.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "/conversations": { + "post": { + "operationId": "createConversation", "parameters": [ { "name": "api-version", @@ -1990,81 +2973,6 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "run_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "after", - "in": "query", - "required": false, - "schema": { - "type": "string" - }, - "explode": false - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false - }, - { - "name": "status", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "fail", - "pass" - ] - }, - "explode": false - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - }, - "explode": false } ], "responses": { @@ -2082,7 +2990,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemList" + "$ref": "#/components/schemas/OpenAI.ConversationResource" } } } @@ -2108,14 +3016,23 @@ } }, "tags": [ - "Evals" - ] + "Conversations" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateConversationBody" + } + } + } + } } }, - "/evals/{eval_id}/runs/{run_id}/output_items/{output_item_id}": { + "/conversations/{conversation_id}": { "get": { - "operationId": "getEvalRunOutputItem", - "description": "Retrieve a specific output item from an evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "operationId": "retrieveConversation", "parameters": [ { "name": "api-version", @@ -2128,37 +3045,10 @@ } }, { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "run_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "output_item_id", + "name": "conversation_id", "in": "path", "required": true, + "description": "The ID of the conversation to retrieve.", "schema": { "type": "string" } @@ -2179,7 +3069,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.EvalRunOutputItem" + "$ref": "#/components/schemas/OpenAI.ConversationResource" } } } @@ -2205,13 +3095,11 @@ } }, "tags": [ - "Evals" + "Conversations" ] - } - }, - "/files": { + }, "post": { - "operationId": "createFile", + "operationId": "updateConversation", "parameters": [ { "name": "api-version", @@ -2222,6 +3110,15 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } + }, + { + "name": "conversation_id", + "in": "path", + "required": true, + "description": "The ID of the conversation to update.", + "schema": { + "type": "string" + } } ], "responses": { @@ -2239,7 +3136,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureOpenAIFile" + "$ref": "#/components/schemas/OpenAI.ConversationResource" } } } @@ -2265,26 +3162,21 @@ } }, "tags": [ - "Files" + "Conversations" ], "requestBody": { "required": true, "content": { - "multipart/form-data": { + "application/json": { "schema": { - "$ref": "#/components/schemas/AzureCreateFileRequestMultiPart" + "$ref": "#/components/schemas/OpenAI.UpdateConversationBody" } } } - }, - "x-ms-examples": { - "Create a file request": { - "$ref": "./examples/files.yaml" - } } }, - "get": { - "operationId": "listFiles", + "delete": { + "operationId": "deleteConversation", "parameters": [ { "name": "api-version", @@ -2297,13 +3189,13 @@ } }, { - "name": "purpose", - "in": "query", - "required": false, + "name": "conversation_id", + "in": "path", + "required": true, + "description": "The ID of the conversation to delete.", "schema": { "type": "string" - }, - "explode": false + } } ], "responses": { @@ -2321,7 +3213,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureListFilesResponse" + "$ref": "#/components/schemas/OpenAI.DeletedConversationResource" } } } @@ -2347,13 +3239,13 @@ } }, "tags": [ - "Files" + "Conversations" ] } }, - "/files/{file_id}": { + "/conversations/{conversation_id}/items": { "get": { - "operationId": "retrieveFile", + "operationId": "listConversationItems", "parameters": [ { "name": "api-version", @@ -2366,14 +3258,63 @@ } }, { - "name": "file_id", + "name": "conversation_id", "in": "path", "required": true, - "description": "The ID of the file to use for this request.", + "description": "The ID of the conversation to list items for.", "schema": { "type": "string" } - } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "The order to return the input items in. Default is `desc`.", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "An item ID to list items after, used in pagination.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "required": false, + "description": "Specify additional output data to include in the model response.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.IncludeEnum" + } + }, + "explode": false + } ], "responses": { "200": { @@ -2390,7 +3331,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureOpenAIFile" + "$ref": "#/components/schemas/OpenAI.ConversationItemList" } } } @@ -2416,11 +3357,11 @@ } }, "tags": [ - "Files" + "Conversations" ] }, - "delete": { - "operationId": "deleteFile", + "post": { + "operationId": "createConversationItems", "parameters": [ { "name": "api-version", @@ -2433,13 +3374,26 @@ } }, { - "name": "file_id", + "name": "conversation_id", "in": "path", "required": true, - "description": "The ID of the file to use for this request.", + "description": "The ID of the conversation to add the item to.", "schema": { "type": "string" } + }, + { + "name": "include", + "in": "query", + "required": false, + "description": "Additional fields to include in the response.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.IncludeEnum" + } + }, + "explode": false } ], "responses": { @@ -2457,7 +3411,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.DeleteFileResponse" + "$ref": "#/components/schemas/OpenAI.ConversationItemList" } } } @@ -2483,13 +3437,23 @@ } }, "tags": [ - "Files" - ] + "Conversations" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateConversationItemsParametersBody" + } + } + } + } } }, - "/files/{file_id}/content": { + "/conversations/{conversation_id}/items/{item_id}": { "get": { - "operationId": "downloadFile", + "operationId": "retrieveConversationItem", "parameters": [ { "name": "api-version", @@ -2502,13 +3466,35 @@ } }, { - "name": "file_id", + "name": "conversation_id", "in": "path", "required": true, - "description": "The ID of the file to use for this request.", + "description": "The ID of the conversation that contains the item.", + "schema": { + "type": "string" + } + }, + { + "name": "item_id", + "in": "path", + "required": true, + "description": "The ID of the item to retrieve.", "schema": { "type": "string" } + }, + { + "name": "include", + "in": "query", + "required": false, + "description": "Additional fields to include in the response.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.IncludeEnum" + } + }, + "explode": false } ], "responses": { @@ -2524,10 +3510,9 @@ } }, "content": { - "application/octet-stream": { + "application/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#/components/schemas/OpenAI.ConversationItem" } } } @@ -2553,14 +3538,11 @@ } }, "tags": [ - "Files" + "Conversations" ] - } - }, - "/fine_tuning/alpha/graders/run": { - "post": { - "operationId": "runGrader", - "summary": "Run a grader.", + }, + "delete": { + "operationId": "deleteConversationItem", "parameters": [ { "name": "api-version", @@ -2571,21 +3553,29 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } + }, + { + "name": "conversation_id", + "in": "path", + "required": true, + "description": "The ID of the conversation that contains the item.", + "schema": { + "type": "string" + } + }, + { + "name": "item_id", + "in": "path", + "required": true, + "description": "The ID of the item to delete.", + "schema": { + "type": "string" + } } ], "responses": { "200": { "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.RunGraderResponse" - } - } - } - }, - "default": { - "description": "An unexpected error response.", "headers": { "apim-request-id": { "required": false, @@ -2598,50 +3588,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureErrorResponse" - } - } - } - } - }, - "tags": [ - "Fine-tuning" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.RunGraderRequest" - } - } - } - } - } - }, - "/fine_tuning/alpha/graders/validate": { - "post": { - "operationId": "validateGrader", - "summary": "Validate a grader.", - "parameters": [ - { - "name": "api-version", - "in": "query", - "required": false, - "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", - "schema": { - "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", - "default": "v1" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.ValidateGraderResponse" + "$ref": "#/components/schemas/OpenAI.ConversationResource" } } } @@ -2667,24 +3614,14 @@ } }, "tags": [ - "Fine-tuning" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.ValidateGraderRequest" - } - } - } - } + "Conversations" + ] } }, - "/fine_tuning/jobs": { + "/embeddings": { "post": { - "operationId": "createFineTuningJob", - "summary": "Creates a fine-tuning job which begins the process of creating a new model from a given dataset.\n\nResponse includes details of the enqueued job including job status and the name of the fine-tuned models once complete.\n\n[Learn more about fine-tuning](/docs/guides/fine-tuning)", + "operationId": "createEmbedding", + "summary": "Creates an embedding vector representing the input text.", "parameters": [ { "name": "api-version", @@ -2712,7 +3649,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.FineTuningJob" + "$ref": "#/components/schemas/OpenAI.CreateEmbeddingResponse" } } } @@ -2738,22 +3675,29 @@ } }, "tags": [ - "Fine-tuning" + "Embeddings" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequest" + "$ref": "#/components/schemas/OpenAI.CreateEmbeddingRequest" } } } + }, + "x-ms-examples": { + "Create an embedding request": { + "$ref": "./examples/embeddings.yaml" + } } - }, + } + }, + "/evals": { "get": { - "operationId": "listPaginatedFineTuningJobs", - "summary": "List your organization's fine-tuning jobs", + "operationId": "listEvals", + "summary": "List evaluations for a project.", "parameters": [ { "name": "api-version", @@ -2765,11 +3709,23 @@ "default": "v1" } }, + { + "name": "aoai-evals", + "in": "header", + "required": true, + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } + }, { "name": "after", "in": "query", "required": false, - "description": "Identifier for the last job from the previous pagination request.", + "description": "Identifier for the last eval from the previous pagination request.", "schema": { "type": "string" }, @@ -2779,13 +3735,43 @@ "name": "limit", "in": "query", "required": false, - "description": "Number of fine-tuning jobs to retrieve.", + "description": "A limit on the number of evals to be returned in a single pagination response.", "schema": { "type": "integer", "format": "int32", "default": 20 }, "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "Sort order for evals by timestamp. Use `asc` for ascending order or\n`desc` for descending order.", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "explode": false + }, + { + "name": "order_by", + "in": "query", + "required": false, + "description": "Evals can be ordered by creation time or last updated time. Use\n`created_at` for creation time or `updated_at` for last updated\ntime.", + "schema": { + "type": "string", + "enum": [ + "created_at", + "updated_at" + ], + "default": "created_at" + }, + "explode": false } ], "responses": { @@ -2803,7 +3789,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListPaginatedFineTuningJobsResponse" + "$ref": "#/components/schemas/OpenAI.EvalList" } } } @@ -2829,14 +3815,12 @@ } }, "tags": [ - "Fine-tuning" + "Evals" ] - } - }, - "/fine_tuning/jobs/{fine_tuning_job_id}": { - "get": { - "operationId": "retrieveFineTuningJob", - "summary": "Get info about a fine-tuning job.\n\n[Learn more about fine-tuning](/docs/guides/fine-tuning)", + }, + "post": { + "operationId": "createEval", + "description": "Create the structure of an evaluation that can be used to test a model's\nperformance.\n\nAn evaluation is a set of testing criteria and a datasource. After\ncreating an evaluation, you can run it on different models and model\nparameters. We support several types of graders and datasources.\n\nFor more information, see the [Evals guide](/docs/guides/evals).\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -2849,12 +3833,15 @@ } }, { - "name": "fine_tuning_job_id", - "in": "path", + "name": "aoai-evals", + "in": "header", "required": true, - "description": "The ID of the fine-tuning job.", + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", "schema": { - "type": "string" + "type": "string", + "enum": [ + "preview" + ] } } ], @@ -2873,7 +3860,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.FineTuningJob" + "$ref": "#/components/schemas/OpenAI.Eval" } } } @@ -2899,14 +3886,92 @@ } }, "tags": [ - "Fine-tuning" - ] + "Evals" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "statusCode": { + "type": "number", + "enum": [ + 201 + ] + }, + "name": { + "type": "string", + "description": "The name of the evaluation." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "data_source_config": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalCustomDataSourceConfig" + }, + { + "$ref": "#/components/schemas/OpenAI.CreateEvalLogsDataSourceConfig" + }, + { + "$ref": "#/components/schemas/OpenAI.CreateEvalStoredCompletionsDataSourceConfig" + } + ], + "description": "The configuration for the data source used for the evaluation runs. Dictates the schema of the data used in the evaluation." + }, + "testing_criteria": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalLabelModelGrader" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderStringCheck" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderTextSimilarity" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderPython" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderScoreModel" + }, + { + "$ref": "#/components/schemas/EvalGraderEndpoint" + } + ] + }, + "description": "A list of graders for all eval runs in this group. Graders can reference variables in the data source using double curly braces notation, like `{{item.variable_name}}`. To reference the model's output, use the `sample` namespace (ie, `{{sample.output_text}}`)." + } + }, + "required": [ + "statusCode", + "data_source_config", + "testing_criteria" + ] + } + } + } + } } }, - "/fine_tuning/jobs/{fine_tuning_job_id}/cancel": { - "post": { - "operationId": "cancelFineTuningJob", - "summary": "Immediately cancel a fine-tune job.", + "/evals/{eval_id}": { + "get": { + "operationId": "getEval", + "summary": "Retrieve an evaluation by its ID.", + "description": "Retrieves an evaluation by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -2919,10 +3984,21 @@ } }, { - "name": "fine_tuning_job_id", + "name": "aoai-evals", + "in": "header", + "required": true, + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } + }, + { + "name": "eval_id", "in": "path", "required": true, - "description": "The ID of the fine-tuning job to cancel.", "schema": { "type": "string" } @@ -2943,7 +4019,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.FineTuningJob" + "$ref": "#/components/schemas/OpenAI.Eval" } } } @@ -2969,14 +4045,12 @@ } }, "tags": [ - "Fine-tuning" + "Evals" ] - } - }, - "/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints": { - "get": { - "operationId": "listFineTuningJobCheckpoints", - "summary": "List the checkpoints for a fine-tuning job.", + }, + "post": { + "operationId": "updateEval", + "description": "Update select, mutable properties of a specified evaluation.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -2989,35 +4063,24 @@ } }, { - "name": "fine_tuning_job_id", - "in": "path", + "name": "aoai-evals", + "in": "header", "required": true, - "description": "The ID of the fine-tuning job to get checkpoints for.", + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", "schema": { - "type": "string" + "type": "string", + "enum": [ + "preview" + ] } }, { - "name": "after", - "in": "query", - "required": false, - "description": "Identifier for the last checkpoint ID from the previous pagination request.", + "name": "eval_id", + "in": "path", + "required": true, "schema": { "type": "string" - }, - "explode": false - }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "Number of checkpoints to retrieve.", - "schema": { - "type": "integer", - "format": "int32", - "default": 10 - }, - "explode": false + } } ], "responses": { @@ -3035,7 +4098,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListFineTuningJobCheckpointsResponse" + "$ref": "#/components/schemas/OpenAI.Eval" } } } @@ -3061,14 +4124,30 @@ } }, "tags": [ - "Fine-tuning" - ] - } - }, - "/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints/{fine_tuning_checkpoint_id}/copy": { - "post": { - "operationId": "FineTuning_CopyCheckpoint", - "description": "Creates a copy of a fine-tuning checkpoint at the given destination account and region.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "Evals" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/OpenAI.Metadata" + } + } + } + } + } + } + }, + "delete": { + "operationId": "deleteEval", + "description": "Delete a specified evaluation.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -3081,10 +4160,10 @@ } }, { - "name": "aoai-copy-ft-checkpoints", + "name": "aoai-evals", "in": "header", "required": true, - "description": "Enables access to checkpoint copy operations for models, an AOAI preview feature.\nThis feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'.", + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", "schema": { "type": "string", "enum": [ @@ -3093,26 +4172,7 @@ } }, { - "name": "accept", - "in": "header", - "required": true, - "schema": { - "type": "string", - "enum": [ - "application/json" - ] - } - }, - { - "name": "fine_tuning_job_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fine_tuning_checkpoint_id", + "name": "eval_id", "in": "path", "required": true, "schema": { @@ -3135,7 +4195,26 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CopyModelResponse" + "type": "object", + "required": [ + "object", + "deleted", + "eval_id" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "eval.deleted" + ] + }, + "deleted": { + "type": "boolean" + }, + "eval_id": { + "type": "string" + } + } } } } @@ -3161,22 +4240,15 @@ } }, "tags": [ - "Fine-tuning" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CopyModelRequest" - } - } - } - } - }, + "Evals" + ] + } + }, + "/evals/{eval_id}/runs": { "get": { - "operationId": "FineTuning_GetCheckpoint", - "description": "Gets the status of a fine-tuning checkpoint copy.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "operationId": "getEvalRuns", + "summary": "", + "description": "Retrieve a list of runs for a specified evaluation.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -3189,10 +4261,10 @@ } }, { - "name": "aoai-copy-ft-checkpoints", + "name": "aoai-evals", "in": "header", "required": true, - "description": "Enables access to checkpoint copy operations for models, an AOAI preview feature.\nThis feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'.", + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", "schema": { "type": "string", "enum": [ @@ -3201,31 +4273,62 @@ } }, { - "name": "accept", - "in": "header", + "name": "eval_id", + "in": "path", "required": true, "schema": { - "type": "string", - "enum": [ - "application/json" - ] + "type": "string" } }, { - "name": "fine_tuning_job_id", - "in": "path", - "required": true, + "name": "after", + "in": "query", + "required": false, "schema": { "type": "string" - } + }, + "explode": false }, { - "name": "fine_tuning_checkpoint_id", - "in": "path", - "required": true, + "name": "limit", + "in": "query", + "required": false, "schema": { - "type": "string" - } + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "explode": false + }, + { + "name": "status", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed", + "canceled", + "failed" + ] + }, + "explode": false } ], "responses": { @@ -3243,7 +4346,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CopyModelResponse" + "$ref": "#/components/schemas/OpenAI.EvalRunList" } } } @@ -3269,14 +4372,12 @@ } }, "tags": [ - "Fine-tuning" + "Evals" ] - } - }, - "/fine_tuning/jobs/{fine_tuning_job_id}/events": { - "get": { - "operationId": "listFineTuningEvents", - "summary": "Get status updates for a fine-tuning job.", + }, + "post": { + "operationId": "createEvalRun", + "description": "Create a new evaluation run, beginning the grading process.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -3289,40 +4390,29 @@ } }, { - "name": "fine_tuning_job_id", - "in": "path", + "name": "aoai-evals", + "in": "header", "required": true, - "description": "The ID of the fine-tuning job to get events for.", + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", "schema": { - "type": "string" + "type": "string", + "enum": [ + "preview" + ] } }, { - "name": "after", - "in": "query", - "required": false, - "description": "Identifier for the last event from the previous pagination request.", + "name": "eval_id", + "in": "path", + "required": true, "schema": { "type": "string" - }, - "explode": false - }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "Number of events to retrieve.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false + } } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { "apim-request-id": { "required": false, @@ -3335,7 +4425,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListFineTuningJobEventsResponse" + "$ref": "#/components/schemas/OpenAI.EvalRun" } } } @@ -3361,14 +4451,24 @@ } }, "tags": [ - "Fine-tuning" - ] + "Evals" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateEvalRunRequest" + } + } + } + } } }, - "/fine_tuning/jobs/{fine_tuning_job_id}/pause": { - "post": { - "operationId": "pauseFineTuningJob", - "summary": "Pause a fine-tune job.", + "/evals/{eval_id}/runs/{run_id}": { + "get": { + "operationId": "getEvalRun", + "description": "Retrieve a specific evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -3381,10 +4481,29 @@ } }, { - "name": "fine_tuning_job_id", + "name": "aoai-evals", + "in": "header", + "required": true, + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } + }, + { + "name": "eval_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", "in": "path", "required": true, - "description": "The ID of the fine-tuning job to pause.", "schema": { "type": "string" } @@ -3405,7 +4524,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.FineTuningJob" + "$ref": "#/components/schemas/OpenAI.EvalRun" } } } @@ -3431,14 +4550,12 @@ } }, "tags": [ - "Fine-tuning" + "Evals" ] - } - }, - "/fine_tuning/jobs/{fine_tuning_job_id}/resume": { + }, "post": { - "operationId": "resumeFineTuningJob", - "summary": "Resume a paused fine-tune job.", + "operationId": "cancelEvalRun", + "description": "Cancel a specific evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -3451,10 +4568,29 @@ } }, { - "name": "fine_tuning_job_id", + "name": "aoai-evals", + "in": "header", + "required": true, + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } + }, + { + "name": "eval_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", "in": "path", "required": true, - "description": "The ID of the fine-tuning job to resume.", "schema": { "type": "string" } @@ -3475,7 +4611,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.FineTuningJob" + "$ref": "#/components/schemas/OpenAI.EvalRun" } } } @@ -3501,13 +4637,12 @@ } }, "tags": [ - "Fine-tuning" + "Evals" ] - } - }, - "/images/generations": { - "post": { - "operationId": "createImage", + }, + "delete": { + "operationId": "deleteEvalRun", + "description": "Delete a specific evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -3518,6 +4653,34 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } + }, + { + "name": "aoai-evals", + "in": "header", + "required": true, + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } + }, + { + "name": "eval_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { @@ -3535,12 +4698,31 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureImagesResponse" - } - } - } - }, - "default": { + "type": "object", + "required": [ + "object", + "deleted", + "eval_run_id" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "eval_run.deleted" + ] + }, + "deleted": { + "type": "boolean" + }, + "eval_run_id": { + "type": "string" + } + } + } + } + } + }, + "default": { "description": "An unexpected error response.", "headers": { "apim-request-id": { @@ -3561,29 +4743,14 @@ } }, "tags": [ - "Images" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AzureCreateImageRequest" - } - } - } - }, - "x-ms-examples": { - "Create an image request": { - "$ref": "./examples/images.yaml" - } - } + "Evals" + ] } }, - "/models": { + "/evals/{eval_id}/runs/{run_id}/output_items": { "get": { - "operationId": "listModels", - "summary": "Lists the currently available models, and provides basic information about each one such as the\nowner and availability.", + "operationId": "getEvalRunOutputItems", + "description": "Get a list of output items for a specified evaluation run.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -3594,6 +4761,81 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } + }, + { + "name": "aoai-evals", + "in": "header", + "required": true, + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } + }, + { + "name": "eval_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "after", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "status", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "fail", + "pass" + ] + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "explode": false } ], "responses": { @@ -3611,7 +4853,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListModelsResponse" + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemList" } } } @@ -3637,14 +4879,14 @@ } }, "tags": [ - "Models" + "Evals" ] } }, - "/models/{model}": { + "/evals/{eval_id}/runs/{run_id}/output_items/{output_item_id}": { "get": { - "operationId": "retrieveModel", - "summary": "Retrieves a model instance, providing basic information about the model such as the owner and\npermissioning.", + "operationId": "getEvalRunOutputItem", + "description": "Retrieve a specific output item from an evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -3657,10 +4899,37 @@ } }, { - "name": "model", + "name": "aoai-evals", + "in": "header", + "required": true, + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } + }, + { + "name": "eval_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "output_item_id", "in": "path", "required": true, - "description": "The ID of the model to use for this request.", "schema": { "type": "string" } @@ -3681,7 +4950,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.Model" + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItem" } } } @@ -3707,14 +4976,13 @@ } }, "tags": [ - "Models" + "Evals" ] } }, - "/responses": { + "/files": { "post": { - "operationId": "createResponse", - "description": "Creates a model response.", + "operationId": "createFile", "parameters": [ { "name": "api-version", @@ -3742,12 +5010,77 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureResponse" - } - }, - "text/event-stream": { - "schema": { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + "type": "object", + "required": [ + "id", + "bytes", + "created_at", + "filename", + "object", + "purpose", + "status" + ], + "properties": { + "id": { + "type": "string", + "description": "The file identifier, which can be referenced in the API endpoints." + }, + "bytes": { + "type": "integer", + "description": "The size of the file, in bytes." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the file was created." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the file will expire." + }, + "filename": { + "type": "string", + "description": "The name of the file." + }, + "object": { + "type": "string", + "enum": [ + "file" + ], + "description": "The object type, which is always `file`.", + "x-stainless-const": true + }, + "status_details": { + "type": "string", + "description": "Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`." + }, + "purpose": { + "type": "string", + "enum": [ + "assistants", + "assistants_output", + "batch", + "batch_output", + "fine-tune", + "fine-tune-results", + "evals" + ], + "description": "The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`." + }, + "status": { + "type": "string", + "enum": [ + "uploaded", + "pending", + "running", + "processed", + "error", + "deleting", + "deleted" + ] + } + } } } } @@ -3773,29 +5106,26 @@ } }, "tags": [ - "Responses" + "Files" ], "requestBody": { "required": true, "content": { - "application/json": { + "multipart/form-data": { "schema": { - "$ref": "#/components/schemas/AzureCreateResponse" + "$ref": "#/components/schemas/OpenAI.CreateFileRequest" } } } }, "x-ms-examples": { - "Create a response request": { - "$ref": "./examples/responses.yaml" + "Create a file request": { + "$ref": "./examples/files.yaml" } } - } - }, - "/responses/{response_id}": { + }, "get": { - "operationId": "getResponse", - "description": "Retrieves a model response with the given ID.", + "operationId": "listFiles", "parameters": [ { "name": "api-version", @@ -3808,45 +5138,54 @@ } }, { - "name": "response_id", - "in": "path", - "required": true, + "name": "purpose", + "in": "query", + "required": false, "schema": { "type": "string" - } + }, + "explode": false }, { - "name": "include_obfuscation", + "name": "limit", "in": "query", "required": false, - "description": "When true, stream obfuscation will be enabled. Stream obfuscation adds random characters to an `obfuscation` field on streaming delta events to normalize payload sizes as a mitigation to certain side-channel attacks. These obfuscation fields are included by default, but add a small amount of overhead to the data stream. You can set `include_obfuscation` to false to optimize for bandwidth if you trust the network links between your application and the OpenAI API.", "schema": { - "type": "boolean", - "default": true + "type": "integer" }, "explode": false }, { - "name": "include[]", + "name": "order", "in": "query", "required": false, "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Includable" - }, - "default": [] - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { "type": "string" } } @@ -3854,7 +5193,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureResponse" + "$ref": "#/components/schemas/OpenAI.ListFilesResponse" } } } @@ -3880,12 +5219,13 @@ } }, "tags": [ - "Responses" + "Files" ] - }, - "delete": { - "operationId": "deleteResponse", - "description": "Deletes a response by ID.", + } + }, + "/files/{file_id}": { + "get": { + "operationId": "retrieveFile", "parameters": [ { "name": "api-version", @@ -3898,9 +5238,10 @@ } }, { - "name": "response_id", + "name": "file_id", "in": "path", "required": true, + "description": "The ID of the file to use for this request.", "schema": { "type": "string" } @@ -3923,24 +5264,72 @@ "schema": { "type": "object", "required": [ - "object", "id", - "deleted" + "bytes", + "created_at", + "filename", + "object", + "purpose", + "status" ], "properties": { + "id": { + "type": "string", + "description": "The file identifier, which can be referenced in the API endpoints." + }, + "bytes": { + "type": "integer", + "description": "The size of the file, in bytes." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the file was created." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the file will expire." + }, + "filename": { + "type": "string", + "description": "The name of the file." + }, "object": { "type": "string", "enum": [ - "response.deleted" - ] + "file" + ], + "description": "The object type, which is always `file`.", + "x-stainless-const": true }, - "id": { - "type": "string" + "status_details": { + "type": "string", + "description": "Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`." }, - "deleted": { - "type": "boolean", + "purpose": { + "type": "string", "enum": [ - true + "assistants", + "assistants_output", + "batch", + "batch_output", + "fine-tune", + "fine-tune-results", + "evals" + ], + "description": "The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`." + }, + "status": { + "type": "string", + "enum": [ + "uploaded", + "pending", + "running", + "processed", + "error", + "deleting", + "deleted" ] } } @@ -3969,14 +5358,11 @@ } }, "tags": [ - "Responses" + "Files" ] - } - }, - "/responses/{response_id}/input_items": { - "get": { - "operationId": "listInputItems", - "description": "Returns a list of input items for a given response.", + }, + "delete": { + "operationId": "deleteFile", "parameters": [ { "name": "api-version", @@ -3989,58 +5375,13 @@ } }, { - "name": "response_id", + "name": "file_id", "in": "path", "required": true, + "description": "The ID of the file to use for this request.", "schema": { "type": "string" } - }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false - }, - { - "name": "order", - "in": "query", - "required": false, - "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - }, - "explode": false - }, - { - "name": "after", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", - "schema": { - "type": "string" - }, - "explode": false - }, - { - "name": "before", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", - "schema": { - "type": "string" - }, - "explode": false } ], "responses": { @@ -4058,7 +5399,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ResponseItemList" + "$ref": "#/components/schemas/OpenAI.DeleteFileResponse" } } } @@ -4084,14 +5425,13 @@ } }, "tags": [ - "Responses" + "Files" ] } }, - "/vector_stores": { + "/files/{file_id}/content": { "get": { - "operationId": "listVectorStores", - "summary": "Returns a list of vector stores.", + "operationId": "downloadFile", "parameters": [ { "name": "api-version", @@ -4104,50 +5444,13 @@ } }, { - "name": "limit", - "in": "query", - "required": false, - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false - }, - { - "name": "order", - "in": "query", - "required": false, - "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - }, - "explode": false - }, - { - "name": "after", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", - "schema": { - "type": "string" - }, - "explode": false - }, - { - "name": "before", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "name": "file_id", + "in": "path", + "required": true, + "description": "The ID of the file to use for this request.", "schema": { "type": "string" - }, - "explode": false + } } ], "responses": { @@ -4163,9 +5466,9 @@ } }, "content": { - "application/json": { + "application/octet-stream": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListVectorStoresResponse" + "contentMediaType": "application/octet-stream" } } } @@ -4191,12 +5494,14 @@ } }, "tags": [ - "Vector Stores" + "Files" ] - }, + } + }, + "/fine_tuning/alpha/graders/run": { "post": { - "operationId": "createVectorStore", - "summary": "Creates a vector store.", + "operationId": "runGrader", + "summary": "Run a grader.", "parameters": [ { "name": "api-version", @@ -4212,19 +5517,10 @@ "responses": { "200": { "description": "The request has succeeded.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + "$ref": "#/components/schemas/OpenAI.RunGraderResponse" } } } @@ -4250,29 +5546,24 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.CreateVectorStoreRequest" + "$ref": "#/components/schemas/OpenAI.RunGraderRequest" } } } - }, - "x-ms-examples": { - "Create a vector store request": { - "$ref": "./examples/vector_stores.yaml" - } } } }, - "/vector_stores/{vector_store_id}": { - "get": { - "operationId": "getVectorStore", - "summary": "Retrieves a vector store.", + "/fine_tuning/alpha/graders/validate": { + "post": { + "operationId": "validateGrader", + "summary": "Validate a grader.", "parameters": [ { "name": "api-version", @@ -4283,33 +5574,15 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "description": "The ID of the vector store to retrieve.", - "schema": { - "type": "string" - } } ], "responses": { "200": { "description": "The request has succeeded.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + "$ref": "#/components/schemas/OpenAI.ValidateGraderResponse" } } } @@ -4335,31 +5608,114 @@ } }, "tags": [ - "Vector Stores" - ] - }, - "post": { - "operationId": "modifyVectorStore", - "summary": "Modifies a vector store.", - "parameters": [ - { - "name": "api-version", - "in": "query", - "required": false, - "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", - "schema": { + "Fine-tuning" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "grader": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.GraderStringCheck" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderPython" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderScoreModel" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderMulti" + }, + { + "$ref": "#/components/schemas/GraderEndpoint" + } + ] + } + } + } + } + } + } + } + }, + "/fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions": { + "get": { + "operationId": "listFineTuningCheckpointPermissions", + "summary": "List checkpoint permissions", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } }, { - "name": "vector_store_id", + "name": "fine_tuned_model_checkpoint", "in": "path", "required": true, - "description": "The ID of the vector store to modify.", + "description": "The ID of the fine-tuned model checkpoint to get permissions for.", "schema": { "type": "string" } + }, + { + "name": "project_id", + "in": "query", + "required": false, + "description": "The ID of the project to get permissions for.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "Identifier for the last permission ID from the previous pagination request.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "Number of permissions to retrieve.", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "The order in which to retrieve permissions.", + "schema": { + "type": "string", + "enum": [ + "ascending", + "descending" + ], + "default": "descending" + }, + "explode": false } ], "responses": { @@ -4377,7 +5733,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + "$ref": "#/components/schemas/OpenAI.ListFineTuningCheckpointPermissionResponse" } } } @@ -4403,22 +5759,92 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" + ] + }, + "post": { + "operationId": "createFineTuningCheckpointPermission", + "summary": "Create checkpoint permissions", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "fine_tuned_model_checkpoint", + "in": "path", + "required": true, + "description": "The ID of the fine-tuned model checkpoint to create a permission for.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ListFineTuningCheckpointPermissionResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Fine-tuning" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.UpdateVectorStoreRequest" + "$ref": "#/components/schemas/OpenAI.CreateFineTuningCheckpointPermissionRequest" } } } } - }, + } + }, + "/fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions/{permission_id}": { "delete": { - "operationId": "deleteVectorStore", - "summary": "Delete a vector store.", + "operationId": "deleteFineTuningCheckpointPermission", + "summary": "Delete checkpoint permission", "parameters": [ { "name": "api-version", @@ -4431,10 +5857,19 @@ } }, { - "name": "vector_store_id", + "name": "fine_tuned_model_checkpoint", "in": "path", "required": true, - "description": "The ID of the vector store to delete.", + "description": "The ID of the fine-tuned model checkpoint to delete a permission for.", + "schema": { + "type": "string" + } + }, + { + "name": "permission_id", + "in": "path", + "required": true, + "description": "The ID of the fine-tuned model checkpoint permission to delete.", "schema": { "type": "string" } @@ -4455,7 +5890,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.DeleteVectorStoreResponse" + "$ref": "#/components/schemas/OpenAI.DeleteFineTuningCheckpointPermissionResponse" } } } @@ -4481,14 +5916,14 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] } }, - "/vector_stores/{vector_store_id}/file_batches": { + "/fine_tuning/jobs": { "post": { - "operationId": "createVectorStoreFileBatch", - "summary": "Create a vector store file batch.", + "operationId": "createFineTuningJob", + "summary": "Creates a fine-tuning job which begins the process of creating a new model from a given dataset.\n\nResponse includes details of the enqueued job including job status and the name of the fine-tuned models once complete.\n\n[Learn more about fine-tuning](/docs/guides/fine-tuning)", "parameters": [ { "name": "api-version", @@ -4499,15 +5934,6 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "description": "The ID of the vector store for which to create a file batch.", - "schema": { - "type": "string" - } } ], "responses": { @@ -4525,7 +5951,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObject" + "$ref": "#/components/schemas/OpenAI.FineTuningJob" } } } @@ -4551,24 +5977,22 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.CreateVectorStoreFileBatchRequest" + "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequest" } } } } - } - }, - "/vector_stores/{vector_store_id}/file_batches/{batch_id}": { + }, "get": { - "operationId": "getVectorStoreFileBatch", - "summary": "Retrieves a vector store file batch.", + "operationId": "listPaginatedFineTuningJobs", + "summary": "List your organization's fine-tuning jobs", "parameters": [ { "name": "api-version", @@ -4581,22 +6005,26 @@ } }, { - "name": "vector_store_id", - "in": "path", - "required": true, - "description": "The ID of the vector store that the file batch belongs to.", + "name": "after", + "in": "query", + "required": false, + "description": "Identifier for the last job from the previous pagination request.", "schema": { "type": "string" - } + }, + "explode": false }, { - "name": "batch_id", - "in": "path", - "required": true, - "description": "The ID of the file batch being retrieved.", + "name": "limit", + "in": "query", + "required": false, + "description": "Number of fine-tuning jobs to retrieve.", "schema": { - "type": "string" - } + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false } ], "responses": { @@ -4614,7 +6042,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObject" + "$ref": "#/components/schemas/OpenAI.ListPaginatedFineTuningJobsResponse" } } } @@ -4640,14 +6068,14 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] } }, - "/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel": { - "post": { - "operationId": "cancelVectorStoreFileBatch", - "summary": "Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible.", + "/fine_tuning/jobs/{fine_tuning_job_id}": { + "get": { + "operationId": "retrieveFineTuningJob", + "summary": "Get info about a fine-tuning job.\n\n[Learn more about fine-tuning](/docs/guides/fine-tuning)", "parameters": [ { "name": "api-version", @@ -4660,19 +6088,10 @@ } }, { - "name": "vector_store_id", - "in": "path", - "required": true, - "description": "The ID of the vector store that the file batch belongs to.", - "schema": { - "type": "string" - } - }, - { - "name": "batch_id", + "name": "fine_tuning_job_id", "in": "path", "required": true, - "description": "The ID of the file batch to cancel.", + "description": "The ID of the fine-tuning job.", "schema": { "type": "string" } @@ -4693,7 +6112,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObject" + "$ref": "#/components/schemas/OpenAI.FineTuningJob" } } } @@ -4719,14 +6138,14 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] } }, - "/vector_stores/{vector_store_id}/file_batches/{batch_id}/files": { - "get": { - "operationId": "listFilesInVectorStoreBatch", - "summary": "Returns a list of vector store files in a batch.", + "/fine_tuning/jobs/{fine_tuning_job_id}/cancel": { + "post": { + "operationId": "cancelFineTuningJob", + "summary": "Immediately cancel a fine-tune job.", "parameters": [ { "name": "api-version", @@ -4739,78 +6158,13 @@ } }, { - "name": "vector_store_id", - "in": "path", - "required": true, - "description": "The ID of the vector store that the file batch belongs to.", - "schema": { - "type": "string" - } - }, - { - "name": "batch_id", + "name": "fine_tuning_job_id", "in": "path", "required": true, - "description": "The ID of the file batch that the files belong to.", + "description": "The ID of the fine-tuning job to cancel.", "schema": { "type": "string" } - }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false - }, - { - "name": "order", - "in": "query", - "required": false, - "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - }, - "explode": false - }, - { - "name": "after", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", - "schema": { - "type": "string" - }, - "explode": false - }, - { - "name": "before", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", - "schema": { - "type": "string" - }, - "explode": false - }, - { - "name": "filter", - "in": "query", - "required": false, - "description": "Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`.", - "schema": { - "$ref": "#/components/schemas/OpenAI.ListVectorStoreFilesFilter" - }, - "explode": false } ], "responses": { @@ -4828,7 +6182,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListVectorStoreFilesResponse" + "$ref": "#/components/schemas/OpenAI.FineTuningJob" } } } @@ -4854,14 +6208,14 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] } }, - "/vector_stores/{vector_store_id}/files": { + "/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints": { "get": { - "operationId": "listVectorStoreFiles", - "summary": "Returns a list of vector store files.", + "operationId": "listFineTuningJobCheckpoints", + "summary": "List the checkpoints for a fine-tuning job.", "parameters": [ { "name": "api-version", @@ -4874,67 +6228,33 @@ } }, { - "name": "vector_store_id", + "name": "fine_tuning_job_id", "in": "path", "required": true, - "description": "The ID of the vector store that the files belong to.", + "description": "The ID of the fine-tuning job to get checkpoints for.", "schema": { "type": "string" } }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false - }, - { - "name": "order", - "in": "query", - "required": false, - "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - }, - "explode": false - }, { "name": "after", "in": "query", "required": false, - "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", - "schema": { - "type": "string" - }, - "explode": false - }, - { - "name": "before", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "description": "Identifier for the last checkpoint ID from the previous pagination request.", "schema": { "type": "string" }, "explode": false }, { - "name": "filter", + "name": "limit", "in": "query", "required": false, - "description": "Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`.", + "description": "Number of checkpoints to retrieve.", "schema": { - "$ref": "#/components/schemas/OpenAI.ListVectorStoreFilesFilter" + "type": "integer", + "format": "int32", + "default": 10 }, "explode": false } @@ -4954,7 +6274,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListVectorStoreFilesResponse" + "$ref": "#/components/schemas/OpenAI.ListFineTuningJobCheckpointsResponse" } } } @@ -4980,12 +6300,14 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] - }, + } + }, + "/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints/{fine_tuning_checkpoint_id}/copy": { "post": { - "operationId": "createVectorStoreFile", - "summary": "Create a vector store file by attaching a [File](/docs/api-reference/files) to a [vector store](/docs/api-reference/vector-stores/object).", + "operationId": "FineTuning_CopyCheckpoint", + "description": "Creates a copy of a fine-tuning checkpoint at the given destination account and region.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -4998,10 +6320,40 @@ } }, { - "name": "vector_store_id", + "name": "aoai-copy-ft-checkpoints", + "in": "header", + "required": true, + "description": "Enables access to checkpoint copy operations for models, an AOAI preview feature.\nThis feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } + }, + { + "name": "accept", + "in": "header", + "required": true, + "schema": { + "type": "string", + "enum": [ + "application/json" + ] + } + }, + { + "name": "fine_tuning_job_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fine_tuning_checkpoint_id", "in": "path", "required": true, - "description": "The ID of the vector store for which to create a File.", "schema": { "type": "string" } @@ -5022,7 +6374,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + "$ref": "#/components/schemas/CopyModelResponse" } } } @@ -5048,24 +6400,22 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.CreateVectorStoreFileRequest" + "$ref": "#/components/schemas/CopyModelRequest" } } } } - } - }, - "/vector_stores/{vector_store_id}/files/{file_id}": { + }, "get": { - "operationId": "getVectorStoreFile", - "summary": "Retrieves a vector store file.", + "operationId": "FineTuning_GetCheckpoint", + "description": "Gets the status of a fine-tuning checkpoint copy.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -5078,19 +6428,40 @@ } }, { - "name": "vector_store_id", + "name": "aoai-copy-ft-checkpoints", + "in": "header", + "required": true, + "description": "Enables access to checkpoint copy operations for models, an AOAI preview feature.\nThis feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } + }, + { + "name": "accept", + "in": "header", + "required": true, + "schema": { + "type": "string", + "enum": [ + "application/json" + ] + } + }, + { + "name": "fine_tuning_job_id", "in": "path", "required": true, - "description": "The ID of the vector store that the file belongs to.", "schema": { "type": "string" } }, { - "name": "file_id", + "name": "fine_tuning_checkpoint_id", "in": "path", "required": true, - "description": "The ID of the file being retrieved.", "schema": { "type": "string" } @@ -5111,7 +6482,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + "$ref": "#/components/schemas/CopyModelResponse" } } } @@ -5137,11 +6508,14 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] - }, - "post": { - "operationId": "updateVectorStoreFileAttributes", + } + }, + "/fine_tuning/jobs/{fine_tuning_job_id}/events": { + "get": { + "operationId": "listFineTuningEvents", + "summary": "Get status updates for a fine-tuning job.", "parameters": [ { "name": "api-version", @@ -5154,20 +6528,35 @@ } }, { - "name": "vector_store_id", + "name": "fine_tuning_job_id", "in": "path", "required": true, + "description": "The ID of the fine-tuning job to get events for.", "schema": { "type": "string" } }, { - "name": "file_id", - "in": "path", - "required": true, + "name": "after", + "in": "query", + "required": false, + "description": "Identifier for the last event from the previous pagination request.", "schema": { "type": "string" - } + }, + "explode": false + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "Number of events to retrieve.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false } ], "responses": { @@ -5185,7 +6574,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + "$ref": "#/components/schemas/OpenAI.ListFineTuningJobEventsResponse" } } } @@ -5211,22 +6600,14 @@ } }, "tags": [ - "Vector Stores" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.UpdateVectorStoreFileAttributesRequest" - } - } - } - } - }, - "delete": { - "operationId": "deleteVectorStoreFile", - "summary": "Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. To delete the file, use the [delete file](/docs/api-reference/files/delete) endpoint.", + "Fine-tuning" + ] + } + }, + "/fine_tuning/jobs/{fine_tuning_job_id}/pause": { + "post": { + "operationId": "pauseFineTuningJob", + "summary": "Pause a fine-tune job.", "parameters": [ { "name": "api-version", @@ -5239,19 +6620,10 @@ } }, { - "name": "vector_store_id", - "in": "path", - "required": true, - "description": "The ID of the vector store that the file belongs to.", - "schema": { - "type": "string" - } - }, - { - "name": "file_id", + "name": "fine_tuning_job_id", "in": "path", "required": true, - "description": "The ID of the file to delete.", + "description": "The ID of the fine-tuning job to pause.", "schema": { "type": "string" } @@ -5272,7 +6644,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.DeleteVectorStoreFileResponse" + "$ref": "#/components/schemas/OpenAI.FineTuningJob" } } } @@ -5298,13 +6670,14 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] } }, - "/video/generations/jobs": { + "/fine_tuning/jobs/{fine_tuning_job_id}/resume": { "post": { - "operationId": "VideoGenerationJobs_Create", + "operationId": "resumeFineTuningJob", + "summary": "Resume a paused fine-tune job.", "parameters": [ { "name": "api-version", @@ -5315,9 +6688,17 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } + }, + { + "name": "fine_tuning_job_id", + "in": "path", + "required": true, + "description": "The ID of the fine-tuning job to resume.", + "schema": { + "type": "string" + } } ], - "description": "Creates a new video generation job.", "responses": { "200": { "description": "The request has succeeded.", @@ -5333,44 +6714,39 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/VideoGenerationJob" + "$ref": "#/components/schemas/OpenAI.FineTuningJob" } } } }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + "$ref": "#/components/schemas/AzureErrorResponse" } } } } }, "tags": [ - "Video" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateVideoGenerationRequest" - } - }, - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/CreateVideoGenerationWithMediaRequestMultiPart" - } - } - } - } - }, - "get": { - "operationId": "VideoGenerationJobs_List", - "description": "Lists video generation jobs.", + "Fine-tuning" + ] + } + }, + "/images/edits": { + "post": { + "operationId": "createImageEdit", "parameters": [ { "name": "api-version", @@ -5381,47 +6757,6 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "before", - "in": "query", - "required": false, - "schema": { - "type": "string" - }, - "explode": false - }, - { - "name": "after", - "in": "query", - "required": false, - "schema": { - "type": "string" - }, - "explode": false - }, - { - "name": "limit", - "in": "query", - "required": true, - "schema": { - "type": "integer", - "format": "int32", - "default": 10 - }, - "explode": false - }, - { - "name": "statuses", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JobStatus" - } - }, - "explode": false } ], "responses": { @@ -5439,36 +6774,49 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/VideoGenerationJobList" + "$ref": "#/components/schemas/OpenAI.ImagesResponse" } } } }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + "$ref": "#/components/schemas/AzureErrorResponse" } } } } }, "tags": [ - "Video" + "Images" ], - "x-ms-examples": { - "List existing video generation jobs": { - "$ref": "./examples/get_video_generation_job_list.json" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateImageEditRequest" + } + } } } } }, - "/video/generations/jobs/{job-id}": { - "get": { - "operationId": "VideoGenerationJobs_Get", - "description": "Retrieves properties of a video generation job.", + "/images/generations": { + "post": { + "operationId": "createImage", "parameters": [ { "name": "api-version", @@ -5479,9 +6827,6 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "$ref": "#/components/parameters/VideoGenerationJobParameter" } ], "responses": { @@ -5499,29 +6844,54 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/VideoGenerationJob" + "$ref": "#/components/schemas/OpenAI.ImagesResponse" } } } }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + "$ref": "#/components/schemas/AzureErrorResponse" } } } } }, "tags": [ - "Video" - ] - }, - "delete": { - "operationId": "VideoGenerationJobs_Delete", - "description": "Deletes a video generation job.", + "Images" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateImageRequest" + } + } + } + }, + "x-ms-examples": { + "Create an image request": { + "$ref": "./examples/images.yaml" + } + } + } + }, + "/images/variations": { + "post": { + "operationId": "createImageVariation", "parameters": [ { "name": "api-version", @@ -5532,14 +6902,11 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "$ref": "#/components/parameters/VideoGenerationJobParameter" } ], "responses": { - "204": { - "description": "There is no content to send for this request, but the headers may be useful. ", + "200": { + "description": "The request has succeeded.", "headers": { "apim-request-id": { "required": false, @@ -5548,28 +6915,54 @@ "type": "string" } } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ImagesResponse" + } + } } }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + "$ref": "#/components/schemas/AzureErrorResponse" } } } } }, "tags": [ - "Video" - ] + "Images" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateImageVariationRequest" + } + } + } + } } }, - "/video/generations/{generation-id}": { + "/models": { "get": { - "operationId": "VideoGenerations_Get", - "description": "Retrieves a video generation by ID.", + "operationId": "listModels", + "summary": "Lists the currently available models, and provides basic information about each one such as the\nowner and availability.", "parameters": [ { "name": "api-version", @@ -5580,9 +6973,6 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "$ref": "#/components/parameters/VideoGenerationParameter" } ], "responses": { @@ -5600,36 +6990,40 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/VideoGeneration" + "$ref": "#/components/schemas/OpenAI.ListModelsResponse" } } } }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + "$ref": "#/components/schemas/AzureErrorResponse" } } } } }, "tags": [ - "Video" - ], - "x-ms-examples": { - "Get properties of a video generation": { - "$ref": "./examples/get_video_generation.json" - } - } + "Models" + ] } }, - "/video/generations/{generation-id}/content/thumbnail": { + "/models/{model}": { "get": { - "operationId": "VideoGenerations_RetrieveThumbnail", - "description": "Retrieves a thumbnail of the generated video content.", + "operationId": "retrieveModel", + "summary": "Retrieves a model instance, providing basic information about the model such as the owner and\npermissioning.", "parameters": [ { "name": "api-version", @@ -5642,7 +7036,13 @@ } }, { - "$ref": "#/components/parameters/VideoGenerationParameter" + "name": "model", + "in": "path", + "required": true, + "description": "The ID of the model to use for this request.", + "schema": { + "type": "string" + } } ], "responses": { @@ -5655,55 +7055,43 @@ "schema": { "type": "string" } - }, - "last-modified": { - "required": true, - "schema": { - "type": "string" - } - }, - "accept-ranges": { - "required": true, - "schema": { - "type": "string" - } - }, - "content-length": { - "required": true, - "schema": { - "type": "integer" - } } }, "content": { - "image/jpg": { + "application/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#/components/schemas/OpenAI.Model" } } } }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + "$ref": "#/components/schemas/AzureErrorResponse" } } } } }, "tags": [ - "Video" + "Models" ] - } - }, - "/video/generations/{generation-id}/content/video": { - "get": { - "operationId": "VideoGenerations_RetrieveVideoContent", - "description": "Retrieves the generated video content.", + }, + "delete": { + "operationId": "deleteModel", + "summary": "Deletes a model instance.", "parameters": [ { "name": "api-version", @@ -5716,17 +7104,13 @@ } }, { - "$ref": "#/components/parameters/VideoGenerationParameter" - }, - { - "name": "quality", - "in": "query", - "required": false, + "name": "model", + "in": "path", + "required": true, + "description": "The ID of the model to delete.", "schema": { - "$ref": "#/components/schemas/Quality", - "default": "high" - }, - "explode": false + "type": "string" + } } ], "responses": { @@ -5739,53 +7123,121 @@ "schema": { "type": "string" } - }, - "last-modified": { - "required": true, + } + }, + "content": { + "application/json": { "schema": { - "type": "string" + "$ref": "#/components/schemas/OpenAI.DeleteModelResponse" } - }, - "accept-ranges": { - "required": true, + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", "schema": { "type": "string" } - }, - "content-length": { - "required": true, + } + }, + "content": { + "application/json": { "schema": { - "type": "integer" + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Models" + ] + } + }, + "/realtime/calls": { + "post": { + "operationId": "createRealtimeCall", + "summary": "Create a new Realtime API call over WebRTC and receive the SDP answer needed to complete the peer connection.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "location": { + "required": false, + "description": "Relative URL containing the call ID for subsequent control requests.", + "schema": { + "type": "string" } } }, "content": { - "video/mp4": { + "application/sdp": { "schema": { - "type": "string", - "format": "binary" + "type": "string" } } } }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + "$ref": "#/components/schemas/AzureErrorResponse" } } } } }, "tags": [ - "Video" - ] - }, - "head": { - "operationId": "VideoGenerations_RetrieveVideoContentHeadersOnly", - "description": "Retrieves headers for the the generated video content.", + "Realtime" + ], + "requestBody": { + "required": true, + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeCallCreateRequest" + }, + "encoding": { + "session": { + "contentType": "application/json" + } + } + } + } + } + } + }, + "/realtime/calls/{call_id}/accept": { + "post": { + "operationId": "acceptRealtimeCall", + "summary": "Accept an incoming SIP call and configure the realtime session that will handle it.", "parameters": [ { "name": "api-version", @@ -5798,5995 +7250,17302 @@ } }, { - "$ref": "#/components/parameters/VideoGenerationParameter" + "name": "call_id", + "in": "path", + "required": true, + "description": "The identifier for the call provided in the realtime.call.incoming webhook.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded." + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Realtime" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGA" + } + } }, + "description": "Session configuration to apply before the caller is bridged to the model." + } + } + }, + "/realtime/calls/{call_id}/hangup": { + "post": { + "operationId": "hangupRealtimeCall", + "summary": "End an active Realtime API call, whether it was initiated over SIP or WebRTC.", + "parameters": [ { - "name": "quality", + "name": "api-version", "in": "query", "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", "schema": { - "$ref": "#/components/schemas/Quality", - "default": "high" - }, - "explode": false + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "call_id", + "in": "path", + "required": true, + "description": "The identifier for the call.", + "schema": { + "type": "string" + } } ], "responses": { "200": { - "description": "The request has succeeded.", + "description": "The request has succeeded." + }, + "default": { + "description": "An unexpected error response.", "headers": { - "content-length": { - "required": true, + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", "schema": { - "type": "integer" + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" } } } + } + }, + "tags": [ + "Realtime" + ] + } + }, + "/realtime/calls/{call_id}/refer": { + "post": { + "operationId": "referRealtimeCall", + "summary": "Transfer an active SIP call to a new destination using the SIP REFER verb.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "call_id", + "in": "path", + "required": true, + "description": "The identifier for the call provided in the realtime.call.incoming webhook.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded." }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + "$ref": "#/components/schemas/AzureErrorResponse" } } } } }, "tags": [ - "Video" - ] - } - } - }, - "security": [ - { - "ApiKeyAuth": [] + "Realtime" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeCallReferRequest" + } + } + }, + "description": "Destination URI for the REFER request." + } + } }, - { - "ApiKeyAuth_": [] + "/realtime/calls/{call_id}/reject": { + "post": { + "operationId": "rejectRealtimeCall", + "summary": "Decline an incoming SIP call by returning a SIP status code to the caller.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "call_id", + "in": "path", + "required": true, + "description": "The identifier for the call provided in the realtime.call.incoming webhook.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded." + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Realtime" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeCallRejectRequest" + } + } + }, + "description": "Provide an optional SIP status code. When omitted the API responds with 603 Decline." + } + } }, - { - "OAuth2Auth": [ - "https://cognitiveservices.azure.com/.default" - ] - } - ], - "components": { - "parameters": { - "VideoGenerationJobParameter": { - "name": "job-id", - "in": "path", - "required": true, - "description": "The ID of the video generation job to use for the Azure OpenAI request.", - "schema": { - "type": "string" + "/realtime/client_secrets": { + "post": { + "operationId": "createRealtimeClientSecret", + "summary": "Create a Realtime client secret with an associated session configuration.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeCreateClientSecretResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Realtime" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeCreateClientSecretRequest" + } + } + }, + "description": "Create a client secret with the given session configuration." } - }, - "VideoGenerationParameter": { - "name": "generation-id", - "in": "path", - "required": true, - "description": "The ID of the video generation to use for the Azure OpenAI request.", - "schema": { - "type": "string" + } + }, + "/realtime/sessions": { + "post": { + "operationId": "createRealtimeSession", + "summary": "Create an ephemeral API token for use in client-side applications with the Realtime API.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Realtime" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequest" + } + } + }, + "description": "Create an ephemeral API key with the given session configuration." + } + } + }, + "/realtime/transcription_sessions": { + "post": { + "operationId": "createRealtimeTranscriptionSession", + "summary": "Create an ephemeral API token for use in client-side applications with the Realtime API specifically for realtime transcriptions.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Realtime" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequest" + } + } + }, + "description": "Create an ephemeral API key with the given session configuration." + } + } + }, + "/responses": { + "post": { + "operationId": "createResponse", + "description": "Creates a model response.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "id", + "object", + "created_at", + "error", + "incomplete_details", + "output", + "instructions", + "parallel_tool_calls", + "content_filters" + ], + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "top_logprobs": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "user": { + "type": "string", + "description": "This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations.\n A stable identifier for your end-users.\n Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "safety_identifier": { + "type": "string", + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies.\n The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "prompt_cache_key": { + "type": "string", + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "anyOf": [ + { + "type": "string", + "enum": [ + "in-memory", + "24h" + ] + }, + { + "type": "null" + } + ] + }, + "previous_response_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "model": { + "type": "string", + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\n to browse and compare available models." + }, + "reasoning": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Reasoning" + }, + { + "type": "null" + } + ] + }, + "background": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "max_tool_calls": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "text": { + "$ref": "#/components/schemas/OpenAI.ResponseTextParam" + }, + "tools": { + "$ref": "#/components/schemas/OpenAI.ToolsArray" + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" + }, + "truncation": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "disabled" + ] + }, + { + "type": "null" + } + ], + "default": "disabled" + }, + "id": { + "type": "string", + "description": "Unique identifier for this Response." + }, + "object": { + "type": "string", + "enum": [ + "response" + ], + "description": "The object type of this resource - always set to `response`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "completed", + "failed", + "in_progress", + "cancelled", + "queued", + "incomplete" + ], + "description": "The status of the response generation. One of `completed`, `failed`,\n `in_progress`, `cancelled`, `queued`, or `incomplete`." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) of when this Response was created." + }, + "error": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseError" + }, + { + "type": "null" + } + ] + }, + "incomplete_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseIncompleteDetails" + }, + { + "type": "null" + } + ] + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.OutputItem" + }, + "description": "An array of content items generated by the model.\n\n - The length and order of items in the `output` array is dependent\n on the model's response.\n - Rather than accessing the first item in the `output` array and\n assuming it's an `assistant` message with the content generated by\n the model, you might consider using the `output_text` property where\n supported in SDKs." + }, + "instructions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputItem" + } + }, + { + "type": "null" + } + ] + }, + "output_text": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "x-stainless-skip": true + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.ResponseUsage" + }, + "parallel_tool_calls": { + "type": "boolean", + "description": "Whether to allow the model to run tool calls in parallel.", + "default": true + }, + "conversation": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Conversation" + }, + { + "type": "null" + } + ] + }, + "content_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureContentFilterForResponsesAPI" + }, + "description": "The content filter results from RAI." + } + } + } + }, + "text/event-stream": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Responses" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateResponse" + } + } + } + }, + "x-ms-examples": { + "Create a response request": { + "$ref": "./examples/responses.yaml" + } + } + } + }, + "/responses/{response_id}": { + "get": { + "operationId": "getResponse", + "description": "Retrieves a model response with the given ID.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "response_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "include[]", + "in": "query", + "required": false, + "description": "Additional fields to include in the response. See the include parameter for Response creation above for more information.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.IncludeEnum" + }, + "default": [] + } + }, + { + "name": "stream", + "in": "query", + "required": false, + "description": "If set to true, the model response data will be streamed to the client as it is generated using server-sent events.", + "schema": { + "type": "boolean" + }, + "explode": false + }, + { + "name": "starting_after", + "in": "query", + "required": false, + "description": "The sequence number of the event after which to start streaming.", + "schema": { + "type": "integer", + "format": "int32" + }, + "explode": false + }, + { + "name": "include_obfuscation", + "in": "query", + "required": false, + "description": "When true, stream obfuscation will be enabled. Stream obfuscation adds random characters to an `obfuscation` field on streaming delta events to normalize payload sizes as a mitigation to certain side-channel attacks. These obfuscation fields are included by default, but add a small amount of overhead to the data stream. You can set `include_obfuscation` to false to optimize for bandwidth if you trust the network links between your application and the OpenAI API.", + "schema": { + "type": "boolean", + "default": true + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "id", + "object", + "created_at", + "error", + "incomplete_details", + "output", + "instructions", + "parallel_tool_calls", + "content_filters" + ], + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "top_logprobs": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "user": { + "type": "string", + "description": "This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations.\n A stable identifier for your end-users.\n Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "safety_identifier": { + "type": "string", + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies.\n The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "prompt_cache_key": { + "type": "string", + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "anyOf": [ + { + "type": "string", + "enum": [ + "in-memory", + "24h" + ] + }, + { + "type": "null" + } + ] + }, + "previous_response_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "model": { + "type": "string", + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\n to browse and compare available models." + }, + "reasoning": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Reasoning" + }, + { + "type": "null" + } + ] + }, + "background": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "max_tool_calls": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "text": { + "$ref": "#/components/schemas/OpenAI.ResponseTextParam" + }, + "tools": { + "$ref": "#/components/schemas/OpenAI.ToolsArray" + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" + }, + "truncation": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "disabled" + ] + }, + { + "type": "null" + } + ], + "default": "disabled" + }, + "id": { + "type": "string", + "description": "Unique identifier for this Response." + }, + "object": { + "type": "string", + "enum": [ + "response" + ], + "description": "The object type of this resource - always set to `response`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "completed", + "failed", + "in_progress", + "cancelled", + "queued", + "incomplete" + ], + "description": "The status of the response generation. One of `completed`, `failed`,\n `in_progress`, `cancelled`, `queued`, or `incomplete`." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) of when this Response was created." + }, + "error": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseError" + }, + { + "type": "null" + } + ] + }, + "incomplete_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseIncompleteDetails" + }, + { + "type": "null" + } + ] + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.OutputItem" + }, + "description": "An array of content items generated by the model.\n\n - The length and order of items in the `output` array is dependent\n on the model's response.\n - Rather than accessing the first item in the `output` array and\n assuming it's an `assistant` message with the content generated by\n the model, you might consider using the `output_text` property where\n supported in SDKs." + }, + "instructions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputItem" + } + }, + { + "type": "null" + } + ] + }, + "output_text": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "x-stainless-skip": true + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.ResponseUsage" + }, + "parallel_tool_calls": { + "type": "boolean", + "description": "Whether to allow the model to run tool calls in parallel.", + "default": true + }, + "conversation": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Conversation" + }, + { + "type": "null" + } + ] + }, + "content_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureContentFilterForResponsesAPI" + }, + "description": "The content filter results from RAI." + } + } + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Responses" + ] + }, + "delete": { + "operationId": "deleteResponse", + "description": "Deletes a response by ID.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "response_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "object", + "id", + "deleted" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "response.deleted" + ] + }, + "id": { + "type": "string" + }, + "deleted": { + "type": "boolean", + "enum": [ + true + ] + } + } + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Responses" + ] + } + }, + "/responses/{response_id}/cancel": { + "post": { + "operationId": "cancelResponse", + "description": "Cancels a model response with the given ID. Only responses created with the background parameter set to true can be cancelled.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "response_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "id", + "object", + "created_at", + "error", + "incomplete_details", + "output", + "instructions", + "parallel_tool_calls", + "content_filters" + ], + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "top_logprobs": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "user": { + "type": "string", + "description": "This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations.\n A stable identifier for your end-users.\n Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "safety_identifier": { + "type": "string", + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies.\n The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "prompt_cache_key": { + "type": "string", + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "anyOf": [ + { + "type": "string", + "enum": [ + "in-memory", + "24h" + ] + }, + { + "type": "null" + } + ] + }, + "previous_response_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "model": { + "type": "string", + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\n to browse and compare available models." + }, + "reasoning": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Reasoning" + }, + { + "type": "null" + } + ] + }, + "background": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "max_tool_calls": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "text": { + "$ref": "#/components/schemas/OpenAI.ResponseTextParam" + }, + "tools": { + "$ref": "#/components/schemas/OpenAI.ToolsArray" + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" + }, + "truncation": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "disabled" + ] + }, + { + "type": "null" + } + ], + "default": "disabled" + }, + "id": { + "type": "string", + "description": "Unique identifier for this Response." + }, + "object": { + "type": "string", + "enum": [ + "response" + ], + "description": "The object type of this resource - always set to `response`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "completed", + "failed", + "in_progress", + "cancelled", + "queued", + "incomplete" + ], + "description": "The status of the response generation. One of `completed`, `failed`,\n `in_progress`, `cancelled`, `queued`, or `incomplete`." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) of when this Response was created." + }, + "error": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseError" + }, + { + "type": "null" + } + ] + }, + "incomplete_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseIncompleteDetails" + }, + { + "type": "null" + } + ] + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.OutputItem" + }, + "description": "An array of content items generated by the model.\n\n - The length and order of items in the `output` array is dependent\n on the model's response.\n - Rather than accessing the first item in the `output` array and\n assuming it's an `assistant` message with the content generated by\n the model, you might consider using the `output_text` property where\n supported in SDKs." + }, + "instructions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputItem" + } + }, + { + "type": "null" + } + ] + }, + "output_text": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "x-stainless-skip": true + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.ResponseUsage" + }, + "parallel_tool_calls": { + "type": "boolean", + "description": "Whether to allow the model to run tool calls in parallel.", + "default": true + }, + "conversation": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Conversation" + }, + { + "type": "null" + } + ] + }, + "content_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureContentFilterForResponsesAPI" + }, + "description": "The content filter results from RAI." + } + } + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Responses" + ] + } + }, + "/responses/{response_id}/input_items": { + "get": { + "operationId": "listInputItems", + "description": "Returns a list of input items for a given response.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "response_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "schema": { + "type": "string" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ResponseItemList" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Responses" + ] + } + }, + "/threads": { + "post": { + "operationId": "createThread", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ThreadObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateThreadRequest" + } + } + } + } + } + }, + "/threads/runs": { + "post": { + "operationId": "createThreadAndRun", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateThreadAndRunRequest" + } + } + } + } + } + }, + "/threads/{thread_id}": { + "delete": { + "operationId": "deleteThread", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.DeleteThreadResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + }, + "get": { + "operationId": "retrieveThread", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ThreadObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + }, + "post": { + "operationId": "modifyThread", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ThreadObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ModifyThreadRequest" + } + } + } + } + } + }, + "/threads/{thread_id}/messages": { + "get": { + "operationId": "listMessages", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "run_id", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ListMessagesResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + }, + "post": { + "operationId": "createMessage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.MessageObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateMessageRequest" + } + } + } + } + } + }, + "/threads/{thread_id}/messages/{message_id}": { + "delete": { + "operationId": "deleteMessage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.DeleteMessageResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + }, + "get": { + "operationId": "retrieveMessage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.MessageObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + }, + "post": { + "operationId": "modifyMessage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.MessageObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ModifyMessageRequest" + } + } + } + } + } + }, + "/threads/{thread_id}/runs": { + "post": { + "operationId": "createRun", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateRunRequest" + } + } + } + } + }, + "get": { + "operationId": "listRuns", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ListRunsResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + } + }, + "/threads/{thread_id}/runs/{run_id}": { + "get": { + "operationId": "retrieveRun", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + }, + "post": { + "operationId": "modifyRun", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ModifyRunRequest" + } + } + } + } + } + }, + "/threads/{thread_id}/runs/{run_id}/cancel": { + "post": { + "operationId": "cancelRun", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + } + }, + "/threads/{thread_id}/runs/{run_id}/steps": { + "get": { + "operationId": "listRunSteps", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ListRunStepsResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + } + }, + "/threads/{thread_id}/runs/{run_id}/steps/{step_id}": { + "get": { + "operationId": "getRunStep", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "step_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunStepObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + } + }, + "/threads/{thread_id}/runs/{run_id}/submit_tool_outputs": { + "post": { + "operationId": "submitToolOutputsToRun", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.SubmitToolOutputsRunRequest" + } + } + } + } + } + }, + "/vector_stores": { + "get": { + "operationId": "listVectorStores", + "summary": "Returns a list of vector stores.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "schema": { + "type": "string" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ListVectorStoresResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + }, + "post": { + "operationId": "createVectorStore", + "summary": "Creates a vector store.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateVectorStoreRequest" + } + } + } + }, + "x-ms-examples": { + "Create a vector store request": { + "$ref": "./examples/vector_stores.yaml" + } + } + } + }, + "/vector_stores/{vector_store_id}": { + "get": { + "operationId": "getVectorStore", + "summary": "Retrieves a vector store.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store to retrieve.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + }, + "post": { + "operationId": "modifyVectorStore", + "summary": "Modifies a vector store.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store to modify.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.UpdateVectorStoreRequest" + } + } + } + } + }, + "delete": { + "operationId": "deleteVectorStore", + "summary": "Delete a vector store.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store to delete.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.DeleteVectorStoreResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + } + }, + "/vector_stores/{vector_store_id}/file_batches": { + "post": { + "operationId": "createVectorStoreFileBatch", + "summary": "Create a vector store file batch.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store for which to create a file batch.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateVectorStoreFileBatchRequest" + } + } + } + } + } + }, + "/vector_stores/{vector_store_id}/file_batches/{batch_id}": { + "get": { + "operationId": "getVectorStoreFileBatch", + "summary": "Retrieves a vector store file batch.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store that the file batch belongs to.", + "schema": { + "type": "string" + } + }, + { + "name": "batch_id", + "in": "path", + "required": true, + "description": "The ID of the file batch being retrieved.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + } + }, + "/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel": { + "post": { + "operationId": "cancelVectorStoreFileBatch", + "summary": "Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store that the file batch belongs to.", + "schema": { + "type": "string" + } + }, + { + "name": "batch_id", + "in": "path", + "required": true, + "description": "The ID of the file batch to cancel.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + } + }, + "/vector_stores/{vector_store_id}/file_batches/{batch_id}/files": { + "get": { + "operationId": "listFilesInVectorStoreBatch", + "summary": "Returns a list of vector store files in a batch.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store that the file batch belongs to.", + "schema": { + "type": "string" + } + }, + { + "name": "batch_id", + "in": "path", + "required": true, + "description": "The ID of the file batch that the files belong to.", + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "required": false, + "description": "Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`.", + "schema": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "failed", + "cancelled" + ] + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ListVectorStoreFilesResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + } + }, + "/vector_stores/{vector_store_id}/files": { + "get": { + "operationId": "listVectorStoreFiles", + "summary": "Returns a list of vector store files.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store that the files belong to.", + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "required": false, + "description": "Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`.", + "schema": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "failed", + "cancelled" + ] + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ListVectorStoreFilesResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + }, + "post": { + "operationId": "createVectorStoreFile", + "summary": "Create a vector store file by attaching a [File](/docs/api-reference/files) to a [vector store](/docs/api-reference/vector-stores/object).", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store for which to create a File.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateVectorStoreFileRequest" + } + } + } + } + } + }, + "/vector_stores/{vector_store_id}/files/{file_id}": { + "get": { + "operationId": "getVectorStoreFile", + "summary": "Retrieves a vector store file.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store that the file belongs to.", + "schema": { + "type": "string" + } + }, + { + "name": "file_id", + "in": "path", + "required": true, + "description": "The ID of the file being retrieved.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + }, + "post": { + "operationId": "updateVectorStoreFileAttributes", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "file_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.UpdateVectorStoreFileAttributesRequest" + } + } + } + } + }, + "delete": { + "operationId": "deleteVectorStoreFile", + "summary": "Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. To delete the file, use the [delete file](/docs/api-reference/files/delete) endpoint.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store that the file belongs to.", + "schema": { + "type": "string" + } + }, + { + "name": "file_id", + "in": "path", + "required": true, + "description": "The ID of the file to delete.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.DeleteVectorStoreFileResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + } + }, + "/vector_stores/{vector_store_id}/files/{file_id}/content": { + "get": { + "operationId": "retrieveVectorStoreFileContent", + "summary": "Retrieve vector store file content", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store to search.", + "schema": { + "type": "string" + } + }, + { + "name": "file_id", + "in": "path", + "required": true, + "description": "The ID of the file to retrieve content for.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreSearchResultsPage" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + } + }, + "/vector_stores/{vector_store_id}/search": { + "post": { + "operationId": "searchVectorStore", + "summary": "Search vector store", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store to search.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreSearchResultsPage" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreSearchRequest" + } + } + } + } + } + }, + "/videos": { + "post": { + "operationId": "Videos_Create", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "description": "Creates a new video generation job.", + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VideoResource" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + } + } + } + } + }, + "tags": [ + "Videos" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateVideoBody" + } + }, + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/CreateVideoBodyWithInputReference" + }, + "encoding": { + "seconds": { + "contentType": "text/plain" + }, + "size": { + "contentType": "text/plain" + }, + "input_reference": { + "contentType": "*/*" + } + } + } + } + } + }, + "get": { + "operationId": "Videos_List", + "description": "Lists video generation jobs.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "after", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/Order", + "default": "desc" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VideoList" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + } + } + } + } + }, + "tags": [ + "Videos" + ] + } + }, + "/videos/{video-id}": { + "get": { + "operationId": "Videos_Get", + "description": "Retrieves properties of a video generation job.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "$ref": "#/components/parameters/VideoIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VideoResource" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + } + } + } + } + }, + "tags": [ + "Videos" + ] + }, + "delete": { + "operationId": "Videos_Delete", + "description": "Deletes a video generation job.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "$ref": "#/components/parameters/VideoIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeletedVideoResource" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + } + } + } + } + }, + "tags": [ + "Videos" + ] + } + }, + "/videos/{video-id}/content": { + "get": { + "operationId": "Videos_RetrieveContent", + "description": "Retrieves a thumbnail of the generated video content.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "$ref": "#/components/parameters/VideoIdParameter" + }, + { + "name": "variant", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/VideoContentVariant", + "default": "video" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + }, + "content-length": { + "required": true, + "schema": { + "type": "integer" + } + } + }, + "content": { + "image/jpg": { + "schema": { + "contentMediaType": "image/jpg" + } + }, + "image/webp": { + "schema": { + "contentMediaType": "image/webp" + } + }, + "video/mp4": { + "schema": { + "contentMediaType": "video/mp4" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + } + } + } + } + }, + "tags": [ + "Videos" + ] + } + }, + "/videos/{video-id}/remix": { + "post": { + "operationId": "Videos_Remix", + "description": "Use an existing generated video and change it with a prompt.", + "parameters": [ + { + "$ref": "#/components/parameters/VideoIdParameter" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VideoResource" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureOpenAIVideoGenerationErrorResponse" + } + } + } + } + }, + "tags": [ + "Videos" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "prompt": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "prompt" + ] + } + } + } + } + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "ApiKeyAuth_": [] + }, + { + "OAuth2Auth": [ + "https://cognitiveservices.azure.com/.default" + ] + } + ], + "components": { + "parameters": { + "VideoIdParameter": { + "name": "video-id", + "in": "path", + "required": true, + "description": "The ID of the video to use for the Azure OpenAI request.", + "schema": { + "type": "string" + } + } + }, + "schemas": { + "AudioSegment": { + "type": "object", + "required": [ + "id", + "start", + "end", + "text", + "temperature", + "avg_logprob", + "compression_ratio", + "no_speech_prob", + "tokens", + "seek" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The 0-based index of this segment within a translation." + }, + "start": { + "type": "number", + "format": "float", + "description": "The time at which this segment started relative to the beginning of the translated audio." + }, + "end": { + "type": "number", + "format": "float", + "description": "The time at which this segment ended relative to the beginning of the translated audio." + }, + "text": { + "type": "string", + "description": "The translated text that was part of this audio segment." + }, + "temperature": { + "type": "number", + "format": "float", + "description": "The temperature score associated with this audio segment." + }, + "avg_logprob": { + "type": "number", + "format": "float", + "description": "The average log probability associated with this audio segment." + }, + "compression_ratio": { + "type": "number", + "format": "float", + "description": "The compression ratio of this audio segment." + }, + "no_speech_prob": { + "type": "number", + "format": "float", + "description": "The probability of no speech detection within this audio segment." + }, + "tokens": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "The token IDs matching the translated text in this audio segment." + }, + "seek": { + "type": "integer", + "format": "int32", + "description": "The seek position associated with the processing of this audio segment.\nSeek positions are expressed as hundredths of seconds.\nThe model may process several segments from a single seek position, so while the seek position will never represent\na later time than the segment's start, the segment's start may represent a significantly later time than the\nsegment's associated seek position." + } + } + }, + "AudioTaskLabel": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "transcribe", + "translate" + ] + } + ], + "description": "Defines the possible descriptors for available audio operation responses." + }, + "AudioTranslationSegment": { + "type": "object", + "required": [ + "id", + "start", + "end", + "text", + "temperature", + "avg_logprob", + "compression_ratio", + "no_speech_prob", + "tokens", + "seek" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The 0-based index of this segment within a translation." + }, + "start": { + "type": "number", + "format": "float", + "description": "The time at which this segment started relative to the beginning of the translated audio." + }, + "end": { + "type": "number", + "format": "float", + "description": "The time at which this segment ended relative to the beginning of the translated audio." + }, + "text": { + "type": "string", + "description": "The translated text that was part of this audio segment." + }, + "temperature": { + "type": "number", + "format": "float", + "description": "The temperature score associated with this audio segment." + }, + "avg_logprob": { + "type": "number", + "format": "float", + "description": "The average log probability associated with this audio segment." + }, + "compression_ratio": { + "type": "number", + "format": "float", + "description": "The compression ratio of this audio segment." + }, + "no_speech_prob": { + "type": "number", + "format": "float", + "description": "The probability of no speech detection within this audio segment." + }, + "tokens": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "The token IDs matching the translated text in this audio segment." + }, + "seek": { + "type": "integer", + "format": "int32", + "description": "The seek position associated with the processing of this audio segment.\nSeek positions are expressed as hundredths of seconds.\nThe model may process several segments from a single seek position, so while the seek position will never represent\na later time than the segment's start, the segment's start may represent a significantly later time than the\nsegment's associated seek position." + } + }, + "description": "Extended information about a single segment of translated audio data.\nSegments generally represent roughly 5-10 seconds of speech. Segment boundaries typically occur between words but not\nnecessarily sentences." + }, + "AzureAIFoundryModelsApiVersion": { + "type": "string", + "enum": [ + "v1", + "preview" + ] + }, + "AzureAudioTranscriptionResponse": { + "type": "object", + "required": [ + "text" + ], + "properties": { + "text": { + "type": "string", + "description": "The transcribed text for the provided audio data." + }, + "task": { + "allOf": [ + { + "$ref": "#/components/schemas/AudioTaskLabel" + } + ], + "description": "The label that describes which operation type generated the accompanying response data." + }, + "language": { + "type": "string", + "description": "The spoken language that was detected in the transcribed audio data.\nThis is expressed as a two-letter ISO-639-1 language code like 'en' or 'fr'." + }, + "duration": { + "type": "number", + "format": "float", + "description": "The total duration of the audio processed to produce accompanying transcription information." + }, + "segments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.TranscriptionSegment" + }, + "description": "A collection of information about the timing, probabilities, and other detail of each processed audio segment." + }, + "words": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.TranscriptionWord" + }, + "description": "A collection of information about the timing of each processed word." + } + }, + "description": "Result information for an operation that transcribed spoken audio into written text." + }, + "AzureAudioTranslationResponse": { + "type": "object", + "required": [ + "text" + ], + "properties": { + "text": { + "type": "string", + "description": "The translated text for the provided audio data." + }, + "task": { + "allOf": [ + { + "$ref": "#/components/schemas/AudioTaskLabel" + } + ], + "description": "The label that describes which operation type generated the accompanying response data." + }, + "language": { + "type": "string", + "description": "The spoken language that was detected in the translated audio data.\nThis is expressed as a two-letter ISO-639-1 language code like 'en' or 'fr'." + }, + "duration": { + "type": "number", + "format": "float", + "description": "The total duration of the audio processed to produce accompanying translation information." + }, + "segments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AudioTranslationSegment" + }, + "description": "A collection of information about the timing, probabilities, and other detail of each processed audio segment." + } + }, + "description": "Result information for an operation that translated spoken audio into written text." + }, + "AzureCompletionsSamplingParams": { + "type": "object", + "properties": { + "max_tokens": { + "type": "integer", + "format": "int32", + "description": "The maximum number of tokens in the generated output." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSourceSamplingParams" + } + ], + "description": "Sampling parameters for controlling the behavior of completions." + }, + "AzureContentFilterBlocklistIdResult": { + "type": "object", + "required": [ + "id", + "filtered" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the custom blocklist associated with the filtered status." + }, + "filtered": { + "type": "boolean", + "description": "Whether the associated blocklist resulted in the content being filtered." + } + }, + "description": "A content filter result item that associates an existing custom blocklist ID with a value indicating whether or not\nthe corresponding blocklist resulted in content being filtered." + }, + "AzureContentFilterBlocklistResult": { + "type": "object", + "required": [ + "filtered" + ], + "properties": { + "filtered": { + "type": "boolean", + "description": "A value indicating whether any of the detailed blocklists resulted in a filtering action." + }, + "details": { + "type": "array", + "items": { + "type": "object", + "properties": { + "filtered": { + "type": "boolean", + "description": "A value indicating whether the blocklist produced a filtering action." + }, + "id": { + "type": "string", + "description": "The ID of the custom blocklist evaluated." + } + }, + "required": [ + "filtered", + "id" + ] + }, + "description": "The pairs of individual blocklist IDs and whether they resulted in a filtering action." + } + }, + "description": "A collection of true/false filtering results for configured custom blocklists." + }, + "AzureContentFilterCompletionTextSpan": { + "type": "object", + "required": [ + "completion_start_offset", + "completion_end_offset" + ], + "properties": { + "completion_start_offset": { + "type": "integer", + "format": "int32", + "description": "Offset of the UTF32 code point which begins the span." + }, + "completion_end_offset": { + "type": "integer", + "format": "int32", + "description": "Offset of the first UTF32 code point which is excluded from the span. This field is always equal to completion_start_offset for empty spans. This field is always larger than completion_start_offset for non-empty spans." + } + }, + "description": "A representation of a span of completion text as used by Azure OpenAI content filter results." + }, + "AzureContentFilterCompletionTextSpanDetectionResult": { + "type": "object", + "required": [ + "filtered", + "detected", + "details" + ], + "properties": { + "filtered": { + "type": "boolean", + "description": "Whether the content detection resulted in a content filtering action." + }, + "detected": { + "type": "boolean", + "description": "Whether the labeled content category was detected in the content." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureContentFilterCompletionTextSpan" + }, + "description": "Detailed information about the detected completion text spans." + } + } + }, + "AzureContentFilterCustomTopicIdResult": { + "type": "object", + "required": [ + "id", + "detected" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the custom topic associated with the detected status." + }, + "detected": { + "type": "boolean", + "description": "Whether the associated custom topic resulted in the content being detected." + } + }, + "description": "A content filter result item that associates an existing custom topic ID with a value indicating whether or not\nthe corresponding topic resulted in content being detected." + }, + "AzureContentFilterCustomTopicResult": { + "type": "object", + "required": [ + "filtered" + ], + "properties": { + "filtered": { + "type": "boolean", + "description": "A value indicating whether any of the detailed topics resulted in a filtering action." + }, + "details": { + "type": "array", + "items": { + "type": "object", + "properties": { + "detected": { + "type": "boolean", + "description": "A value indicating whether the topic is detected." + }, + "id": { + "type": "string", + "description": "The ID of the custom topic evaluated." + } + }, + "required": [ + "detected", + "id" + ] + }, + "description": "The pairs of individual topic IDs and whether they are detected." + } + }, + "description": "A collection of true/false filtering results for configured custom topics." + }, + "AzureContentFilterDetectionResult": { + "type": "object", + "required": [ + "filtered", + "detected" + ], + "properties": { + "filtered": { + "type": "boolean", + "description": "Whether the content detection resulted in a content filtering action." + }, + "detected": { + "type": "boolean", + "description": "Whether the labeled content category was detected in the content." + } + }, + "description": "A labeled content filter result item that indicates whether the content was detected and whether the content was\nfiltered." + }, + "AzureContentFilterForResponsesAPI": { + "type": "object", + "required": [ + "blocked", + "source_type", + "content_filter_results", + "content_filter_offsets" + ], + "properties": { + "blocked": { + "type": "boolean", + "description": "Indicate if the response is blocked." + }, + "source_type": { + "type": "string", + "description": "The name of the source type of the message." + }, + "content_filter_results": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterResultsForResponsesAPI" + } + ], + "description": "A content filter result for a single response item produced by a generative AI system." + }, + "content_filter_offsets": { + "$ref": "#/components/schemas/AzureContentFilterResultOffsets" + } + } + }, + "AzureContentFilterHarmExtensions": { + "type": "object", + "properties": { + "pii_sub_categories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzurePiiSubCategory" + }, + "description": "Configuration for PIIHarmSubCategory(s)." + } + }, + "description": "Extensions for harm categories, providing additional configuration options." + }, + "AzureContentFilterImagePromptResults": { + "type": "object", + "required": [ + "jailbreak" + ], + "properties": { + "profanity": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the\ncontent." + }, + "custom_blocklists": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterBlocklistResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom blocklists." + }, + "custom_topics": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterCustomTopicResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom topics." + }, + "jailbreak": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes user prompt injection attacks, where malicious users deliberately exploit\nsystem vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content\ngeneration or violations of system-imposed restrictions." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterImageResponseResults" + } + ], + "description": "A content filter result for an image generation operation's input request content." + }, + "AzureContentFilterImageResponseResults": { + "type": "object", + "properties": { + "sexual": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to anatomical organs and genitals, romantic relationships, acts\nportrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an\nassault or a forced sexual violent act against one's will, prostitution, pornography, and abuse." + }, + "violence": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to physical actions intended to hurt, injure, damage, or kill\nsomeone or something; describes weapons, guns and related entities, such as manufactures, associations,\nlegislation, and so on." + }, + "hate": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that can refer to any content that attacks or uses pejorative or discriminatory\nlanguage with reference to a person or identity group based on certain differentiating attributes of these groups\nincluding but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation,\nreligion, immigration status, ability status, personal appearance, and body size." + }, + "self_harm": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that describes language related to physical actions intended to purposely hurt, injure,\ndamage one's body or kill oneself." + } + }, + "description": "A content filter result for an image generation operation's output response content." + }, + "AzureContentFilterPersonallyIdentifiableInformationResult": { + "type": "object", + "properties": { + "redacted_text": { + "type": "string", + "description": "The redacted text with PII information removed or masked." + }, + "sub_categories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzurePiiSubCategoryResult" + }, + "description": "Detailed results for individual PIIHarmSubCategory(s)." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A content filter detection result for Personally Identifiable Information that includes harm extensions." + }, + "AzureContentFilterResultForChoice": { + "type": "object", + "properties": { + "sexual": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to anatomical organs and genitals, romantic relationships, acts\nportrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an\nassault or a forced sexual violent act against one's will, prostitution, pornography, and abuse." + }, + "hate": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that can refer to any content that attacks or uses pejorative or discriminatory\nlanguage with reference to a person or identity group based on certain differentiating attributes of these groups\nincluding but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation,\nreligion, immigration status, ability status, personal appearance, and body size." + }, + "violence": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to physical actions intended to hurt, injure, damage, or kill\nsomeone or something; describes weapons, guns and related entities, such as manufactures, associations,\nlegislation, and so on." + }, + "self_harm": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that describes language related to physical actions intended to purposely hurt, injure,\ndamage one's body or kill oneself." + }, + "profanity": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the\ncontent." + }, + "custom_blocklists": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterBlocklistResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom blocklists." + }, + "custom_topics": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterCustomTopicResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom topics." + }, + "error": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "A distinct, machine-readable code associated with the error." + }, + "message": { + "type": "string", + "description": "A human-readable message associated with the error." + } + }, + "required": [ + "code", + "message" + ], + "description": "If present, details about an error that prevented content filtering from completing its evaluation." + }, + "protected_material_text": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes a match against text protected under copyright or other status." + }, + "protected_material_code": { + "type": "object", + "properties": { + "filtered": { + "type": "boolean", + "description": "Whether the content detection resulted in a content filtering action." + }, + "detected": { + "type": "boolean", + "description": "Whether the labeled content category was detected in the content." + }, + "citation": { + "type": "object", + "properties": { + "license": { + "type": "string", + "description": "The name or identifier of the license associated with the detection." + }, + "URL": { + "type": "string", + "format": "uri", + "description": "The URL associated with the license." + } + }, + "description": "If available, the citation details describing the associated license and its location." + } + }, + "required": [ + "filtered", + "detected" + ], + "description": "A detection result that describes a match against licensed code or other protected source material." + }, + "ungrounded_material": { + "$ref": "#/components/schemas/AzureContentFilterCompletionTextSpanDetectionResult" + }, + "personally_identifiable_information": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterPersonallyIdentifiableInformationResult" + } + ], + "description": "A detection result that describes matches against Personal Identifiable Information with configurable subcategories." + } + }, + "description": "A content filter result for a single response item produced by a generative AI system." + }, + "AzureContentFilterResultForPrompt": { + "type": "object", + "properties": { + "prompt_index": { + "type": "integer", + "format": "int32", + "description": "The index of the input prompt associated with the accompanying content filter result categories." + }, + "content_filter_results": { + "type": "object", + "properties": { + "sexual": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to anatomical organs and genitals, romantic relationships, acts\nportrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an\nassault or a forced sexual violent act against one's will, prostitution, pornography, and abuse." + }, + "hate": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that can refer to any content that attacks or uses pejorative or discriminatory\nlanguage with reference to a person or identity group based on certain differentiating attributes of these groups\nincluding but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation,\nreligion, immigration status, ability status, personal appearance, and body size." + }, + "violence": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to physical actions intended to hurt, injure, damage, or kill\nsomeone or something; describes weapons, guns and related entities, such as manufactures, associations,\nlegislation, and so on." + }, + "self_harm": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that describes language related to physical actions intended to purposely hurt, injure,\ndamage one's body or kill oneself." + }, + "profanity": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the\ncontent." + }, + "custom_blocklists": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterBlocklistResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom blocklists." + }, + "custom_topics": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterCustomTopicResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom topics." + }, + "error": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "A distinct, machine-readable code associated with the error." + }, + "message": { + "type": "string", + "description": "A human-readable message associated with the error." + } + }, + "required": [ + "code", + "message" + ], + "description": "If present, details about an error that prevented content filtering from completing its evaluation." + }, + "jailbreak": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes user prompt injection attacks, where malicious users deliberately exploit\nsystem vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content\ngeneration or violations of system-imposed restrictions." + }, + "indirect_attack": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes attacks on systems powered by Generative AI models that can happen every time\nan application processes information that wasn’t directly authored by either the developer of the application or\nthe user." + } + }, + "required": [ + "jailbreak", + "indirect_attack" + ], + "description": "The content filter category details for the result." + } + }, + "description": "A content filter result associated with a single input prompt item into a generative AI system." + }, + "AzureContentFilterResultOffsets": { + "type": "object", + "required": [ + "start_offset", + "end_offset", + "check_offset" + ], + "properties": { + "start_offset": { + "type": "integer", + "format": "int32" + }, + "end_offset": { + "type": "integer", + "format": "int32" + }, + "check_offset": { + "type": "integer", + "format": "int32" + } + } + }, + "AzureContentFilterResultsForResponsesAPI": { + "type": "object", + "required": [ + "jailbreak", + "task_adherence" + ], + "properties": { + "sexual": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to anatomical organs and genitals, romantic relationships, acts\nportrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an\nassault or a forced sexual violent act against one's will, prostitution, pornography, and abuse." + }, + "hate": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that can refer to any content that attacks or uses pejorative or discriminatory\nlanguage with reference to a person or identity group based on certain differentiating attributes of these groups\nincluding but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation,\nreligion, immigration status, ability status, personal appearance, and body size." + }, + "violence": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to physical actions intended to hurt, injure, damage, or kill\nsomeone or something; describes weapons, guns and related entities, such as manufactures, associations,\nlegislation, and so on." + }, + "self_harm": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that describes language related to physical actions intended to purposely hurt, injure,\ndamage one's body or kill oneself." + }, + "profanity": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the\ncontent." + }, + "custom_blocklists": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterBlocklistResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom blocklists." + }, + "custom_topics": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterCustomTopicResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom topics." + }, + "error": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "A distinct, machine-readable code associated with the error." + }, + "message": { + "type": "string", + "description": "A human-readable message associated with the error." + } + }, + "required": [ + "code", + "message" + ], + "description": "If present, details about an error that prevented content filtering from completing its evaluation." + }, + "jailbreak": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes user prompt injection attacks, where malicious users deliberately exploit\nsystem vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content\ngeneration or violations of system-imposed restrictions." + }, + "task_adherence": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that indicates if the execution flow still sticks the plan." + }, + "protected_material_text": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes a match against text protected under copyright or other status." + }, + "protected_material_code": { + "type": "object", + "properties": { + "filtered": { + "type": "boolean", + "description": "Whether the content detection resulted in a content filtering action." + }, + "detected": { + "type": "boolean", + "description": "Whether the labeled content category was detected in the content." + }, + "citation": { + "type": "object", + "properties": { + "license": { + "type": "string", + "description": "The name or identifier of the license associated with the detection." + }, + "URL": { + "type": "string", + "format": "uri", + "description": "The URL associated with the license." + } + }, + "description": "If available, the citation details describing the associated license and its location." + } + }, + "required": [ + "filtered", + "detected" + ], + "description": "A detection result that describes a match against licensed code or other protected source material." + }, + "ungrounded_material": { + "$ref": "#/components/schemas/AzureContentFilterCompletionTextSpanDetectionResult" + }, + "personally_identifiable_information": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterPersonallyIdentifiableInformationResult" + } + ], + "description": "A detection result that describes matches against Personal Identifiable Information with configurable subcategories." + }, + "indirect_attack": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes attacks on systems powered by Generative AI models that can happen every time\nan application processes information that wasn’t directly authored by either the developer of the application or\nthe user." + } + } + }, + "AzureContentFilterSeverityResult": { + "type": "object", + "required": [ + "filtered", + "severity" + ], + "properties": { + "filtered": { + "type": "boolean", + "description": "Whether the content severity resulted in a content filtering action." + }, + "severity": { + "type": "string", + "enum": [ + "safe", + "low", + "medium", + "high" + ], + "description": "The labeled severity of the content." + } + }, + "description": "A labeled content filter result item that indicates whether the content was filtered and what the qualitative\nseverity level of the content was, as evaluated against content filter configuration for the category." + }, + "AzureErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The distinct, machine-generated identifier for the error." + }, + "message": { + "type": "string", + "description": "A human-readable message associated with the error." + }, + "param": { + "type": "string", + "description": "If applicable, the request input parameter associated with the error" + }, + "type": { + "type": "string", + "enum": [ + "error" + ], + "description": "The object type, always 'error.'" + }, + "inner_error": {} + }, + "description": "The error details." + } + } + }, + "AzureFileExpiryAnchor": { + "type": "string", + "enum": [ + "created_at" + ] + }, + "AzureFineTuneReinforcementMethod": { + "type": "object", + "required": [ + "grader" + ], + "properties": { + "grader": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.GraderStringCheck" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderScoreModel" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderMulti" + }, + { + "$ref": "#/components/schemas/GraderEndpoint" + } + ] + }, + "response_format": { + "allOf": [ + { + "$ref": "#/components/schemas/ResponseFormatJSONSchemaRequest" + } + ], + "description": "Response format to be used while sampling during RFT training" + }, + "hyperparameters": { + "$ref": "#/components/schemas/OpenAI.FineTuneReinforcementHyperparameters" + } + } + }, + "AzureOpenAIVideoGenerationErrorResponse": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The distinct, machine-generated identifier for the error." + }, + "message": { + "type": "string", + "description": "A human-readable message associated with the error." + }, + "param": { + "type": "string", + "description": "If applicable, the request input parameter associated with the error" + }, + "type": { + "type": "string", + "description": "If applicable, the input line number associated with the error." + }, + "inner_error": { + "type": "object", + "properties": { + "code": { + "type": "string", + "enum": [ + "ResponsibleAIPolicyViolation" + ], + "description": "The code associated with the inner error." + }, + "revised_prompt": { + "type": "string", + "description": "If applicable, the modified prompt used for generation." + }, + "error_details": { + "description": "The content filter result details associated with the inner error." + } + }, + "description": "If applicable, an upstream error that originated this error." + } + } + }, + "AzurePiiSubCategory": { + "type": "object", + "required": [ + "sub_category", + "detect", + "redact", + "filter" + ], + "properties": { + "sub_category": { + "type": "string", + "description": "The PIIHarmSubCategory being configured." + }, + "detect": { + "type": "boolean", + "description": "Whether detection is enabled for this subcategory." + }, + "redact": { + "type": "boolean", + "description": "Whether content containing this subcategory should be redacted." + }, + "filter": { + "type": "boolean", + "description": "Whether content containing this subcategory should be blocked." + } + }, + "description": "Configuration for individual PIIHarmSubCategory(s) within the harm extensions framework." + }, + "AzurePiiSubCategoryResult": { + "type": "object", + "required": [ + "sub_category", + "filtered", + "detected", + "redacted" + ], + "properties": { + "sub_category": { + "type": "string", + "description": "The PIIHarmSubCategory that was evaluated." + }, + "filtered": { + "type": "boolean", + "description": "Whether the content detection resulted in a content filtering action for this subcategory." + }, + "detected": { + "type": "boolean", + "description": "Whether the labeled content subcategory was detected in the content." + }, + "redacted": { + "type": "boolean", + "description": "Whether the content was redacted for this subcategory." + } + }, + "description": "Result details for individual PIIHarmSubCategory(s)." + }, + "AzureResponsesSamplingParams": { + "type": "object", + "properties": { + "max_tokens": { + "type": "integer", + "format": "int32", + "description": "The maximum number of tokens in the generated output." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceSamplingParams" + } + ], + "description": "Sampling parameters for controlling the behavior of responses." + }, + "AzureUserSecurityContext": { + "type": "object", + "properties": { + "application_name": { + "type": "string", + "description": "The name of the application. Sensitive personal information should not be included in this field." + }, + "end_user_id": { + "type": "string", + "description": "This identifier is the Microsoft Entra ID (formerly Azure Active Directory) user object ID used to authenticate end-users within the generative AI application. Sensitive personal information should not be included in this field." + }, + "end_user_tenant_id": { + "type": "string", + "description": "The Microsoft 365 tenant ID the end user belongs to. It's required when the generative AI application is multitenant." + }, + "source_ip": { + "type": "string", + "description": "Captures the original client's IP address." + } + }, + "description": "User security context contains several parameters that describe the application itself, and the end user that interacts with the application. These fields assist your security operations teams to investigate and mitigate security incidents by providing a comprehensive approach to protecting your AI applications. [Learn more](https://aka.ms/TP4AI/Documentation/EndUserContext) about protecting AI applications using Microsoft Defender for Cloud." + }, + "CopiedAccountDetails": { + "type": "object", + "required": [ + "destinationResourceId", + "region", + "status" + ], + "properties": { + "destinationResourceId": { + "type": "string", + "description": "The ID of the destination resource where the model was copied to." + }, + "region": { + "type": "string", + "description": "The region where the model was copied to." + }, + "status": { + "type": "string", + "enum": [ + "Completed", + "Failed", + "InProgress" + ], + "description": "The status of the copy operation." + } + } + }, + "CopyModelRequest": { + "type": "object", + "required": [ + "destinationResourceId", + "region" + ], + "properties": { + "destinationResourceId": { + "type": "string", + "description": "The ID of the destination Resource to copy." + }, + "region": { + "type": "string", + "description": "The region to copy the model to." + } + } + }, + "CopyModelResponse": { + "type": "object", + "required": [ + "checkpointedModelName", + "fineTuningJobId", + "copiedAccountDetails" + ], + "properties": { + "checkpointedModelName": { + "type": "string", + "description": "The ID of the copied model." + }, + "fineTuningJobId": { + "type": "string", + "description": "The ID of the fine-tuning job that the checkpoint was copied from." + }, + "copiedAccountDetails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CopiedAccountDetails" + }, + "description": "The ID of the destination resource id where it was copied" + } + } + }, + "CreateVideoBody": { + "type": "object", + "required": [ + "model", + "prompt" + ], + "properties": { + "model": { + "type": "string", + "description": "The name of the deployment to use for this request." + }, + "prompt": { + "type": "string", + "minLength": 1, + "description": "Text prompt that describes the video to generate." + }, + "seconds": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoSeconds" + } + ], + "description": "Clip duration in seconds. Defaults to 4 seconds.", + "default": "4" + }, + "size": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoSize" + } + ], + "description": "Output resolution formatted as width x height. Defaults to 720x1280.", + "default": "720x1280" + } + } + }, + "CreateVideoBodyWithInputReference": { + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "The name of the deployment to use for this request." + }, + "prompt": { + "type": "string", + "description": "Text prompt that describes the video to generate." + }, + "seconds": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoSeconds" + } + ], + "description": "Clip duration in seconds. Defaults to 4 seconds." + }, + "size": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoSize" + } + ], + "description": "Output resolution formatted as width x height. Defaults to 720x1280." + }, + "input_reference": { + "description": "Optional image reference that guides generation.", + "x-oaiTypeLabel": "file" + } + }, + "required": [ + "model", + "prompt", + "input_reference" + ] + }, + "CreateVideoRemixBody": { + "type": "object", + "required": [ + "prompt" + ], + "properties": { + "prompt": { + "type": "string", + "minLength": 1, + "description": "Updated text prompt that directs the remix generation." + } + }, + "description": "Parameters for remixing an existing generated video." + }, + "DeletedVideoResource": { + "type": "object", + "required": [ + "object", + "deleted", + "id" + ], + "properties": { + "object": { + "type": "string", + "description": "The object type that signals the deletion response.", + "default": "video.deleted" + }, + "deleted": { + "type": "boolean", + "description": "Indicates that the video resource was deleted.", + "default": true + }, + "id": { + "type": "string", + "description": "Identifier of the deleted video." + } + }, + "description": "Confirmation payload returned after deleting a video." + }, + "Error": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "EvalGraderEndpoint": { + "type": "object", + "required": [ + "type", + "name", + "url" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "endpoint" + ], + "default": "endpoint" + }, + "name": { + "type": "string", + "description": "The name of the grader" + }, + "url": { + "type": "string", + "pattern": "^https://", + "description": "The HTTPS URL of the endpoint to call for grading" + }, + "headers": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": { + "type": "string" + } + }, + { + "type": "null" + } + ], + "description": "Optional HTTP headers to include in requests to the endpoint" + }, + "rate_limit": { + "anyOf": [ + { + "type": "integer", + "format": "int32" + }, + { + "type": "null" + } + ], + "description": "Optional rate limit for requests per second to the endpoint\nMust be a positive integer" + }, + "pass_threshold": { + "anyOf": [ + { + "type": "number", + "format": "decimal" + }, + { + "type": "null" + } + ], + "description": "Optional threshold score above which the grade is considered passing\nIf not specified, all scores are considered valid" + } + } + }, + "FileExpiresAfter": { + "type": "object", + "required": [ + "anchor", + "seconds" + ], + "properties": { + "anchor": { + "type": "string", + "enum": [ + "created_at" + ], + "description": "Defines the anchor relative to what time the absolute expiration should be generated from." + }, + "seconds": { + "type": "integer", + "format": "int64", + "minimum": 1209600, + "maximum": 2592000, + "description": "\"The relative expiration time in seconds.\\r\\nRange: [1209600 - 2592000]." + } + }, + "description": "Defines a expiration for the file." + }, + "GraderEndpoint": { + "type": "object", + "required": [ + "type", + "name", + "url" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "endpoint" + ], + "default": "endpoint" + }, + "name": { + "type": "string", + "description": "The name of the grader" + }, + "url": { + "type": "string", + "pattern": "^https://", + "description": "The HTTPS URL of the endpoint to call for grading" + }, + "headers": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": { + "type": "string" + } + }, + { + "type": "null" + } + ], + "description": "Optional HTTP headers to include in requests to the endpoint" + }, + "rate_limit": { + "anyOf": [ + { + "type": "integer", + "format": "int32" + }, + { + "type": "null" + } + ], + "description": "Optional rate limit for requests per second to the endpoint\nMust be a positive integer" + }, + "pass_threshold": { + "anyOf": [ + { + "type": "number", + "format": "decimal" + }, + { + "type": "null" + } + ], + "description": "Optional threshold score above which the grade is considered passing\nIf not specified, all scores are considered valid" + } + }, + "description": "Endpoint grader configuration for external HTTP endpoint evaluation" + }, + "OpenAI.Annotation": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.AnnotationType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "file_citation": "#/components/schemas/OpenAI.FileCitationBody", + "url_citation": "#/components/schemas/OpenAI.UrlCitationBody", + "container_file_citation": "#/components/schemas/OpenAI.ContainerFileCitationBody", + "file_path": "#/components/schemas/OpenAI.FilePath" + } + } + }, + "OpenAI.AnnotationType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "file_citation", + "url_citation", + "container_file_citation", + "file_path" + ] + } + ] + }, + "OpenAI.ApplyPatchCallOutputStatus": { + "type": "string", + "enum": [ + "completed", + "failed" + ] + }, + "OpenAI.ApplyPatchCallStatus": { + "type": "string", + "enum": [ + "in_progress", + "completed" + ] + }, + "OpenAI.ApplyPatchCreateFileOperation": { + "type": "object", + "required": [ + "type", + "path", + "diff" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "create_file" + ], + "description": "Create a new file with the provided diff.", + "x-stainless-const": true, + "default": "create_file" + }, + "path": { + "type": "string", + "description": "Path of the file to create." + }, + "diff": { + "type": "string", + "description": "Diff to apply." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperation" + } + ], + "description": "Instruction describing how to create a file via the apply_patch tool.", + "title": "Apply patch create file operation" + }, + "OpenAI.ApplyPatchDeleteFileOperation": { + "type": "object", + "required": [ + "type", + "path" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "delete_file" + ], + "description": "Delete the specified file.", + "x-stainless-const": true, + "default": "delete_file" + }, + "path": { + "type": "string", + "description": "Path of the file to delete." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperation" + } + ], + "description": "Instruction describing how to delete a file via the apply_patch tool.", + "title": "Apply patch delete file operation" + }, + "OpenAI.ApplyPatchFileOperation": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperationType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "create_file": "#/components/schemas/OpenAI.ApplyPatchCreateFileOperation", + "delete_file": "#/components/schemas/OpenAI.ApplyPatchDeleteFileOperation", + "update_file": "#/components/schemas/OpenAI.ApplyPatchUpdateFileOperation" + } + }, + "description": "One of the create_file, delete_file, or update_file operations applied via apply_patch.", + "title": "Apply patch operation" + }, + "OpenAI.ApplyPatchFileOperationType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "create_file", + "delete_file", + "update_file" + ] + } + ] + }, + "OpenAI.ApplyPatchToolCall": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "status", + "operation" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch_call" + ], + "description": "The type of the item. Always `apply_patch_call`.", + "x-stainless-const": true, + "default": "apply_patch_call" + }, + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchCallStatus" + } + ], + "description": "The status of the apply patch tool call. One of `in_progress` or `completed`." + }, + "operation": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperation" + } + ], + "description": "One of the create_file, delete_file, or update_file operations applied via apply_patch." + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ], + "description": "A tool call that applies file diffs by creating, deleting, or updating files.", + "title": "Apply patch tool call" + }, + "OpenAI.ApplyPatchToolCallOutput": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "status" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch_call_output" + ], + "description": "The type of the item. Always `apply_patch_call_output`.", + "x-stainless-const": true, + "default": "apply_patch_call_output" + }, + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call output. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchCallOutputStatus" + } + ], + "description": "The status of the apply patch tool call output. One of `completed` or `failed`." + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call output." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ], + "description": "The output emitted by an apply patch tool call.", + "title": "Apply patch tool call output" + }, + "OpenAI.ApplyPatchToolParam": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch" + ], + "description": "The type of the tool. Always `apply_patch`.", + "x-stainless-const": true, + "default": "apply_patch" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Tool" + } + ], + "description": "Allows the assistant to create, delete, or update files using unified diffs.", + "title": "Apply patch tool" + }, + "OpenAI.ApplyPatchUpdateFileOperation": { + "type": "object", + "required": [ + "type", + "path", + "diff" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update_file" + ], + "description": "Update an existing file with the provided diff.", + "x-stainless-const": true, + "default": "update_file" + }, + "path": { + "type": "string", + "description": "Path of the file to update." + }, + "diff": { + "type": "string", + "description": "Diff to apply." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperation" + } + ], + "description": "Instruction describing how to update a file via the apply_patch tool.", + "title": "Apply patch update file operation" + }, + "OpenAI.ApproximateLocation": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "approximate" + ], + "description": "The type of location approximation. Always `approximate`.", + "x-stainless-const": true, + "default": "approximate" + }, + "country": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "region": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "city": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "timezone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.AssistantTool": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.AssistantToolType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "code_interpreter": "#/components/schemas/OpenAI.AssistantToolsCode", + "file_search": "#/components/schemas/OpenAI.AssistantToolsFileSearch", + "function": "#/components/schemas/OpenAI.AssistantToolsFunction" + } + } + }, + "OpenAI.AssistantToolType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "code_interpreter", + "file_search", + "function" + ] + } + ] + }, + "OpenAI.AssistantToolsCode": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "code_interpreter" + ], + "description": "The type of tool being defined: `code_interpreter`", + "x-stainless-const": true + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.AssistantTool" + } + ], + "title": "Code interpreter tool" + }, + "OpenAI.AssistantToolsFileSearch": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_search" + ], + "description": "The type of tool being defined: `file_search`", + "x-stainless-const": true + }, + "file_search": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.AssistantToolsFileSearchFileSearch" + } + ], + "description": "Overrides for the file search tool." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.AssistantTool" + } + ], + "title": "FileSearch tool" + }, + "OpenAI.AssistantToolsFileSearchFileSearch": { + "type": "object", + "properties": { + "max_num_results": { + "type": "integer", + "minimum": 1, + "maximum": 50 + }, + "ranking_options": { + "$ref": "#/components/schemas/OpenAI.FileSearchRankingOptions" + } + } + }, + "OpenAI.AssistantToolsFileSearchTypeOnly": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_search" + ], + "description": "The type of tool being defined: `file_search`", + "x-stainless-const": true + } + }, + "title": "AssistantToolsFileSearchTypeOnly" + }, + "OpenAI.AssistantToolsFunction": { + "type": "object", + "required": [ + "type", + "function" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function" + ], + "description": "The type of tool being defined: `function`", + "x-stainless-const": true + }, + "function": { + "$ref": "#/components/schemas/OpenAI.FunctionObject" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.AssistantTool" + } + ], + "title": "Function tool" + }, + "OpenAI.AssistantsApiResponseFormatOption": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatText" + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonObject" + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchema" + } + ], + "description": "Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`.\n\nSetting to `{ \"type\": \"json_schema\", \"json_schema\": {...} }` enables Structured Outputs which ensures the model will match your supplied JSON schema. Learn more in the [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).\n\nSetting to `{ \"type\": \"json_object\" }` enables JSON mode, which ensures the message the model generates is valid JSON.\n\n*Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly \"stuck\" request. Also note that the message content may be partially cut off if `finish_reason=\"length\"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length." + }, + "OpenAI.AssistantsApiToolChoiceOption": { + "anyOf": [ + { + "type": "string", + "enum": [ + "none", + "auto", + "required" + ] + }, + { + "$ref": "#/components/schemas/OpenAI.AssistantsNamedToolChoice" + } + ], + "description": "Controls which (if any) tool is called by the model.\n`none` means the model will not call any tools and instead generates a message.\n`auto` is the default value and means the model can pick between generating a message or calling one or more tools.\n`required` means the model must call one or more tools before responding to the user.\nSpecifying a particular tool like `{\"type\": \"file_search\"}` or `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces the model to call that tool." + }, + "OpenAI.AssistantsNamedToolChoice": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function", + "code_interpreter", + "file_search" + ], + "description": "The type of the tool. If type is `function`, the function name must be set" + }, + "function": { + "$ref": "#/components/schemas/OpenAI.AssistantsNamedToolChoiceFunction" + } + }, + "description": "Specifies a tool the model should use. Use to force the model to call a specific tool." + }, + "OpenAI.AssistantsNamedToolChoiceFunction": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + } + } + }, + "OpenAI.AudioTranscription": { + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "The model to use for transcription. Current options are `whisper-1`, `gpt-4o-mini-transcribe`, `gpt-4o-transcribe`, and `gpt-4o-transcribe-diarize`. Use `gpt-4o-transcribe-diarize` when you need diarization with speaker labels." + }, + "language": { + "type": "string", + "description": "The language of the input audio. Supplying the input language in\n [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`) format\n will improve accuracy and latency." + }, + "prompt": { + "type": "string", + "description": "An optional text to guide the model's style or continue a previous audio\n segment.\n For `whisper-1`, the [prompt is a list of keywords](https://platform.openai.com/docs/guides/speech-to-text#prompting).\n For `gpt-4o-transcribe` models (excluding `gpt-4o-transcribe-diarize`), the prompt is a free text string, for example \"expect words related to technology\"." + } + } + }, + "OpenAI.AutoChunkingStrategyRequestParam": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "auto" + ], + "description": "Always `auto`.", + "x-stainless-const": true + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" + } + ], + "description": "The default strategy. This strategy currently uses a `max_chunk_size_tokens` of `800` and `chunk_overlap_tokens` of `400`.", + "title": "Auto Chunking Strategy" + }, + "OpenAI.Batch": { + "type": "object", + "required": [ + "id", + "object", + "endpoint", + "completion_window", + "status", + "created_at", + "input_blob", + "output_blob", + "error_blob" + ], + "properties": { + "id": { + "type": "string" + }, + "object": { + "type": "string", + "enum": [ + "batch" + ], + "description": "The object type, which is always `batch`.", + "x-stainless-const": true + }, + "endpoint": { + "type": "string", + "description": "The OpenAI API endpoint used by the batch." + }, + "model": { + "type": "string", + "description": "Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model\n guide](https://platform.openai.com/docs/models) to browse and compare available models." + }, + "errors": { + "$ref": "#/components/schemas/OpenAI.BatchErrors" + }, + "completion_window": { + "type": "string", + "description": "The time frame within which the batch should be processed." + }, + "status": { + "type": "string", + "enum": [ + "validating", + "failed", + "in_progress", + "finalizing", + "completed", + "expired", + "cancelling", + "cancelled" + ], + "description": "The current status of the batch." + }, + "output_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of successfully executed requests." + }, + "error_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of requests with errors." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was created." + }, + "in_progress_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started processing." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch will expire." + }, + "finalizing_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started finalizing." + }, + "completed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was completed." + }, + "failed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch failed." + }, + "expired_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch expired." + }, + "cancelling_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started cancelling." + }, + "cancelled_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was cancelled." + }, + "request_counts": { + "$ref": "#/components/schemas/OpenAI.BatchRequestCounts" + }, + "usage": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.BatchUsage" + } + ], + "description": "Represents token usage details including input tokens, output tokens, a\n breakdown of output tokens, and the total tokens used. Only populated on\n batches created after September 7, 2025." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "input_blob": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The blob url containing the input file for the batch." + }, + "output_blob": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The blob url containing outputs of successfully executed requests." + }, + "error_blob": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The blob url containing outputs of requests with errors." + }, + "input_file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "x-oaiMeta": { + "name": "The batch object", + "example": "{\n \"id\": \"batch_abc123\",\n \"object\": \"batch\",\n \"endpoint\": \"/v1/completions\",\n \"model\": \"gpt-5-2025-08-07\",\n \"errors\": null,\n \"input_file_id\": \"file-abc123\",\n \"completion_window\": \"24h\",\n \"status\": \"completed\",\n \"output_file_id\": \"file-cvaTdG\",\n \"error_file_id\": \"file-HOWS94\",\n \"created_at\": 1711471533,\n \"in_progress_at\": 1711471538,\n \"expires_at\": 1711557933,\n \"finalizing_at\": 1711493133,\n \"completed_at\": 1711493163,\n \"failed_at\": null,\n \"expired_at\": null,\n \"cancelling_at\": null,\n \"cancelled_at\": null,\n \"request_counts\": {\n \"total\": 100,\n \"completed\": 95,\n \"failed\": 5\n },\n \"usage\": {\n \"input_tokens\": 1500,\n \"input_tokens_details\": {\n \"cached_tokens\": 1024\n },\n \"output_tokens\": 500,\n \"output_tokens_details\": {\n \"reasoning_tokens\": 300\n },\n \"total_tokens\": 2000\n },\n \"metadata\": {\n \"customer_id\": \"user_123456789\",\n \"batch_description\": \"Nightly eval job\",\n }\n}\n" + } + }, + "OpenAI.BatchError": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "An error code identifying the error type." + }, + "message": { + "type": "string", + "description": "A human-readable message providing more details about the error." + }, + "param": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "line": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.BatchErrors": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.BatchError" + } + } + } + }, + "OpenAI.BatchRequestCounts": { + "type": "object", + "required": [ + "total", + "completed", + "failed" + ], + "properties": { + "total": { + "type": "integer", + "description": "Total number of requests in the batch." + }, + "completed": { + "type": "integer", + "description": "Number of requests that have been completed successfully." + }, + "failed": { + "type": "integer", + "description": "Number of requests that have failed." + } + }, + "description": "The request counts for different statuses within the batch." + }, + "OpenAI.BatchUsage": { + "type": "object", + "required": [ + "input_tokens", + "input_tokens_details", + "output_tokens", + "output_tokens_details", + "total_tokens" + ], + "properties": { + "input_tokens": { + "type": "integer" + }, + "input_tokens_details": { + "$ref": "#/components/schemas/OpenAI.BatchUsageInputTokensDetails" + }, + "output_tokens": { + "type": "integer" + }, + "output_tokens_details": { + "$ref": "#/components/schemas/OpenAI.BatchUsageOutputTokensDetails" + }, + "total_tokens": { + "type": "integer" + } + } + }, + "OpenAI.BatchUsageInputTokensDetails": { + "type": "object", + "required": [ + "cached_tokens" + ], + "properties": { + "cached_tokens": { + "type": "integer" + } + } + }, + "OpenAI.BatchUsageOutputTokensDetails": { + "type": "object", + "required": [ + "reasoning_tokens" + ], + "properties": { + "reasoning_tokens": { + "type": "integer" + } + } + }, + "OpenAI.ChatCompletionAllowedTools": { + "type": "object", + "required": [ + "mode", + "tools" + ], + "properties": { + "mode": { + "type": "string", + "enum": [ + "auto", + "required" + ], + "description": "Constrains the tools available to the model to a pre-defined set.\n\n `auto` allows the model to pick from among the allowed tools and generate a\n message.\n\n `required` requires the model to call one or more of the allowed tools." + }, + "tools": { + "type": "array", + "items": { + "type": "object", + "unevaluatedProperties": {} + }, + "description": "A list of tool definitions that the model should be allowed to call.\n\n For the Chat Completions API, the list of tool definitions might look like:\n ```json\n [\n { \"type\": \"function\", \"function\": { \"name\": \"get_weather\" } },\n { \"type\": \"function\", \"function\": { \"name\": \"get_time\" } }\n ]\n ```" + } + }, + "description": "Constrains the tools available to the model to a pre-defined set.", + "title": "Allowed tools" + }, + "OpenAI.ChatCompletionAllowedToolsChoice": { + "type": "object", + "required": [ + "type", + "allowed_tools" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "allowed_tools" + ], + "description": "Allowed tool configuration type. Always `allowed_tools`.", + "x-stainless-const": true + }, + "allowed_tools": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionAllowedTools" + } + }, + "description": "Constrains the tools available to the model to a pre-defined set.", + "title": "Allowed tools" + }, + "OpenAI.ChatCompletionFunctionCallOption": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the function to call." + } + }, + "description": "Specifying a particular function via `{\"name\": \"my_function\"}` forces the model to call that function.", + "x-stainless-variantName": "function_call_option" + }, + "OpenAI.ChatCompletionFunctions": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "description": { + "type": "string", + "description": "A description of what the function does, used by the model to choose when and how to call the function." + }, + "name": { + "type": "string", + "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + }, + "parameters": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FunctionParameters" + } + ], + "description": "The parameters the functions accepts, described as a JSON Schema object.\nSee the [JSON Schema reference](https://json-schema.org/understanding-json-schema/)\nfor documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list." + } + } + }, + "OpenAI.ChatCompletionMessageCustomToolCall": { + "type": "object", + "required": [ + "id", + "type", + "custom" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call." + }, + "type": { + "type": "string", + "enum": [ + "custom" + ], + "description": "The type of the tool. Always `custom`.", + "x-stainless-const": true + }, + "custom": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageCustomToolCallCustom" + } + ], + "description": "The custom tool that the model called." + } + }, + "description": "A call to a custom tool created by the model.", + "title": "Custom tool call" + }, + "OpenAI.ChatCompletionMessageCustomToolCallCustom": { + "type": "object", + "required": [ + "name", + "input" + ], + "properties": { + "name": { + "type": "string" + }, + "input": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionMessageToolCall": { + "type": "object", + "required": [ + "id", + "type", + "function" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call." + }, + "type": { + "type": "string", + "enum": [ + "function" + ], + "description": "The type of the tool. Currently, only `function` is supported.", + "x-stainless-const": true + }, + "function": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCallFunction" + } + ], + "description": "The function that the model called." + } + }, + "description": "A call to a function tool created by the model.", + "title": "Function tool call" + }, + "OpenAI.ChatCompletionMessageToolCallChunk": { + "type": "object", + "required": [ + "index" + ], + "properties": { + "index": { + "type": "integer" + }, + "id": { + "type": "string", + "description": "The ID of the tool call." + }, + "type": { + "type": "string", + "enum": [ + "function" + ], + "description": "The type of the tool. Currently, only `function` is supported.", + "x-stainless-const": true + }, + "function": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunkFunction" + } + } + }, + "OpenAI.ChatCompletionMessageToolCallChunkFunction": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "arguments": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionMessageToolCallFunction": { + "type": "object", + "required": [ + "name", + "arguments" + ], + "properties": { + "name": { + "type": "string" + }, + "arguments": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionMessageToolCalls": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCall" + }, + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageCustomToolCall" + } + ] + }, + "description": "The tool calls generated by the model, such as function calls." + }, + "OpenAI.ChatCompletionMessageToolCallsItem": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCall" + }, + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageCustomToolCall" + } + ] + }, + "description": "The tool calls generated by the model, such as function calls." + }, + "OpenAI.ChatCompletionNamedToolChoice": { + "type": "object", + "required": [ + "type", + "function" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function" + ], + "description": "For function calling, the type is always `function`.", + "x-stainless-const": true + }, + "function": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionNamedToolChoiceFunction" + } + }, + "description": "Specifies a tool the model should use. Use to force the model to call a specific function.", + "title": "Function tool choice" + }, + "OpenAI.ChatCompletionNamedToolChoiceCustom": { + "type": "object", + "required": [ + "type", + "custom" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom" + ], + "description": "For custom tool calling, the type is always `custom`.", + "x-stainless-const": true + }, + "custom": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionNamedToolChoiceCustomCustom" + } + }, + "description": "Specifies a tool the model should use. Use to force the model to call a specific custom tool.", + "title": "Custom tool choice" + }, + "OpenAI.ChatCompletionNamedToolChoiceCustomCustom": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionNamedToolChoiceFunction": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionRequestAssistantMessage": { + "type": "object", + "required": [ + "role" + ], + "properties": { + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPart" + } + }, + { + "type": "null" + } + ] + }, + "refusal": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "type": "string", + "enum": [ + "assistant" + ], + "description": "The role of the messages author, in this case `assistant`.", + "x-stainless-const": true + }, + "name": { + "type": "string", + "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + }, + "audio": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageAudio" + }, + { + "type": "null" + } + ], + "description": "Data about a previous audio response from the model." + }, + "tool_calls": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCalls" + }, + "function_call": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageFunctionCall" + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + } + ], + "description": "Messages sent by the model in response to user messages.", + "title": "Assistant message", + "x-stainless-soft-required": [ + "content" + ] + }, + "OpenAI.ChatCompletionRequestAssistantMessageAudio": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionRequestAssistantMessageContentPart": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPartType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "refusal": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartRefusal" + } + } + }, + "OpenAI.ChatCompletionRequestAssistantMessageContentPartType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "text", + "refusal" + ] + } + ] + }, + "OpenAI.ChatCompletionRequestAssistantMessageFunctionCall": { + "type": "object", + "required": [ + "arguments", + "name" + ], + "properties": { + "arguments": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionRequestDeveloperMessage": { + "type": "object", + "required": [ + "content", + "role" + ], + "properties": { + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + } + } + ], + "description": "The contents of the developer message." + }, + "role": { + "type": "string", + "enum": [ + "developer" + ], + "description": "The role of the messages author, in this case `developer`.", + "x-stainless-const": true + }, + "name": { + "type": "string", + "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + } + ], + "description": "Developer-provided instructions that the model should follow, regardless of\nmessages sent by the user. With o1 models and newer, `developer` messages\nreplace the previous `system` messages.", + "title": "Developer message", + "x-stainless-naming": { + "go": { + "variant_constructor": "DeveloperMessage" + } + } + }, + "OpenAI.ChatCompletionRequestFunctionMessage": { + "type": "object", + "required": [ + "role", + "content", + "name" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "function" + ], + "description": "The role of the messages author, in this case `function`.", + "x-stainless-const": true + }, + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "type": "string", + "description": "The name of the function to call." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + } + ], + "title": "Function message" + }, + "OpenAI.ChatCompletionRequestMessage": { + "type": "object", + "required": [ + "role" + ], + "properties": { + "role": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageType" + } + }, + "discriminator": { + "propertyName": "role", + "mapping": { + "assistant": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessage", + "developer": "#/components/schemas/OpenAI.ChatCompletionRequestDeveloperMessage", + "function": "#/components/schemas/OpenAI.ChatCompletionRequestFunctionMessage", + "system": "#/components/schemas/OpenAI.ChatCompletionRequestSystemMessage", + "user": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessage", + "tool": "#/components/schemas/OpenAI.ChatCompletionRequestToolMessage" + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartAudio": { + "type": "object", + "required": [ + "type", + "input_audio" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "input_audio" + ], + "description": "The type of the content part. Always `input_audio`.", + "x-stainless-const": true + }, + "input_audio": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudioInputAudio" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart" + } + ], + "description": "", + "title": "Audio content part", + "x-stainless-naming": { + "go": { + "variant_constructor": "InputAudioContentPart" + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartAudioInputAudio": { + "type": "object", + "required": [ + "data", + "format" + ], + "properties": { + "data": { + "type": "string" + }, + "format": { + "type": "string", + "enum": [ + "wav", + "mp3" + ] + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartFile": { + "type": "object", + "required": [ + "type", + "file" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file" + ], + "description": "The type of the content part. Always `file`.", + "x-stainless-const": true + }, + "file": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFileFile" + } + ], + "x-stainless-naming": { + "java": { + "type_name": "FileObject" + }, + "kotlin": { + "type_name": "FileObject" + } + } + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart" + } + ], + "description": "Learn about [file inputs](https://platform.openai.com/docs/guides/text) for text generation.", + "title": "File content part", + "x-stainless-naming": { + "go": { + "variant_constructor": "FileContentPart" + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartFileFile": { + "type": "object", + "properties": { + "filename": { + "type": "string" + }, + "file_data": { + "type": "string" + }, + "file_id": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartImage": { + "type": "object", + "required": [ + "type", + "image_url" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "image_url" + ], + "description": "The type of the content part.", + "x-stainless-const": true + }, + "image_url": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImageImageUrl" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart" + } + ], + "description": "", + "title": "Image content part", + "x-stainless-naming": { + "go": { + "variant_constructor": "ImageContentPart" + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartImageImageUrl": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "detail": { + "type": "string", + "enum": [ + "auto", + "low", + "high" + ], + "default": "auto" + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartRefusal": { + "type": "object", + "required": [ + "type", + "refusal" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "refusal" + ], + "description": "The type of the content part.", + "x-stainless-const": true + }, + "refusal": { + "type": "string", + "description": "The refusal message generated by the model." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPart" + } + ], + "title": "Refusal content part" + }, + "OpenAI.ChatCompletionRequestMessageContentPartText": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ], + "description": "The type of the content part.", + "x-stainless-const": true + }, + "text": { + "type": "string", + "description": "The text content." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart" + } + ], + "description": "", + "title": "Text content part", + "x-stainless-naming": { + "go": { + "variant_constructor": "TextContentPart" + } + } + }, + "OpenAI.ChatCompletionRequestMessageType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "developer", + "system", + "user", + "assistant", + "tool", + "function" + ] + } + ] + }, + "OpenAI.ChatCompletionRequestSystemMessage": { + "type": "object", + "required": [ + "content", + "role" + ], + "properties": { + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestSystemMessageContentPart" + } + } + ], + "description": "The contents of the system message." + }, + "role": { + "type": "string", + "enum": [ + "system" + ], + "description": "The role of the messages author, in this case `system`.", + "x-stainless-const": true + }, + "name": { + "type": "string", + "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + } + ], + "description": "Developer-provided instructions that the model should follow, regardless of\nmessages sent by the user. With o1 models and newer, use `developer` messages\nfor this purpose instead.", + "title": "System message", + "x-stainless-naming": { + "go": { + "variant_constructor": "SystemMessage" + } + } + }, + "OpenAI.ChatCompletionRequestSystemMessageContentPart": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + }, + "OpenAI.ChatCompletionRequestToolMessage": { + "type": "object", + "required": [ + "role", + "content", + "tool_call_id" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "tool" + ], + "description": "The role of the messages author, in this case `tool`.", + "x-stainless-const": true + }, + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestToolMessageContentPart" + } + } + ], + "description": "The contents of the tool message." + }, + "tool_call_id": { + "type": "string", + "description": "Tool call that this message is responding to." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + } + ], + "title": "Tool message", + "x-stainless-naming": { + "go": { + "variant_constructor": "ToolMessage" + } + } + }, + "OpenAI.ChatCompletionRequestToolMessageContentPart": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + }, + "OpenAI.ChatCompletionRequestUserMessage": { + "type": "object", + "required": [ + "content", + "role" + ], + "properties": { + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart" + } + } + ], + "description": "The contents of the user message." + }, + "role": { + "type": "string", + "enum": [ + "user" + ], + "description": "The role of the messages author, in this case `user`.", + "x-stainless-const": true + }, + "name": { + "type": "string", + "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + } + ], + "description": "Messages sent by an end user, containing prompts or additional context\ninformation.", + "title": "User message", + "x-stainless-naming": { + "go": { + "variant_constructor": "UserMessage" + } + } + }, + "OpenAI.ChatCompletionRequestUserMessageContentPart": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPartType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "image_url": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImage", + "input_audio": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudio", + "file": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFile" + } + } + }, + "OpenAI.ChatCompletionRequestUserMessageContentPartType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "text", + "image_url", + "input_audio", + "file" + ] + } + ] + }, + "OpenAI.ChatCompletionResponseMessage": { + "type": "object", + "required": [ + "content", + "refusal", + "role" + ], + "properties": { + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "refusal": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tool_calls": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCallsItem" + }, + "annotations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionResponseMessageAnnotations" + }, + "description": "Annotations for the message, when applicable, as when using the\n [web search tool](https://platform.openai.com/docs/guides/tools-web-search?api-mode=chat)." + }, + "role": { + "type": "string", + "enum": [ + "assistant" + ], + "description": "The role of the author of this message.", + "x-stainless-const": true + }, + "function_call": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionResponseMessageFunctionCall" + } + ], + "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model." + }, + "audio": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionResponseMessageAudio" + }, + { + "type": "null" + } + ] + }, + "reasoning_content": { + "type": "string", + "description": "An Azure-specific extension property containing generated reasoning content from supported models." + } + }, + "description": "If the audio output modality is requested, this object contains data\nabout the audio response from the model." + }, + "OpenAI.ChatCompletionResponseMessageAnnotations": { + "type": "object", + "required": [ + "type", + "url_citation" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "url_citation" + ], + "x-stainless-const": true + }, + "url_citation": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionResponseMessageAnnotationsUrlCitation" + } + } + }, + "OpenAI.ChatCompletionResponseMessageAnnotationsUrlCitation": { + "type": "object", + "required": [ + "end_index", + "start_index", + "url", + "title" + ], + "properties": { + "end_index": { + "type": "integer" + }, + "start_index": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionResponseMessageAudio": { + "type": "object", + "required": [ + "id", + "expires_at", + "data", + "transcript" + ], + "properties": { + "id": { + "type": "string" + }, + "expires_at": { + "type": "integer", + "format": "unixtime" + }, + "data": { + "type": "string" + }, + "transcript": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionResponseMessageFunctionCall": { + "type": "object", + "required": [ + "arguments", + "name" + ], + "properties": { + "arguments": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionStreamOptions": { + "type": "object", + "properties": { + "include_usage": { + "type": "boolean", + "description": "If set, an additional chunk will be streamed before the `data: [DONE]`\n message. The `usage` field on this chunk shows the token usage statistics\n for the entire request, and the `choices` field will always be an empty\n array.\n\n All other chunks will also include a `usage` field, but with a null\n value. **NOTE:** If the stream is interrupted, you may not receive the\n final usage chunk which contains the total token usage for the request." + }, + "include_obfuscation": { + "type": "boolean", + "description": "When true, stream obfuscation will be enabled. Stream obfuscation adds\n random characters to an `obfuscation` field on streaming delta events to\n normalize payload sizes as a mitigation to certain side-channel attacks.\n These obfuscation fields are included by default, but add a small amount\n of overhead to the data stream. You can set `include_obfuscation` to\n false to optimize for bandwidth if you trust the network links between\n your application and the OpenAI API." + } + }, + "description": "Options for streaming response. Only set this when you set `stream: true`." + }, + "OpenAI.ChatCompletionStreamResponseDelta": { + "type": "object", + "properties": { + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "function_call": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamResponseDeltaFunctionCall" + } + ], + "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model." + }, + "tool_calls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunk" + } + }, + "role": { + "type": "string", + "enum": [ + "developer", + "system", + "user", + "assistant", + "tool" + ], + "description": "The role of the author of this message." + }, + "refusal": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "reasoning_content": { + "type": "string", + "description": "An Azure-specific extension property containing generated reasoning content from supported models." + } + }, + "description": "A chat completion delta generated by streamed model responses." + }, + "OpenAI.ChatCompletionStreamResponseDeltaFunctionCall": { + "type": "object", + "properties": { + "arguments": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionTokenLogprob": { + "type": "object", + "required": [ + "token", + "logprob", + "bytes", + "top_logprobs" + ], + "properties": { + "token": { + "type": "string", + "description": "The token." + }, + "logprob": { + "type": "number", + "description": "The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely." + }, + "bytes": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "integer" + } + }, + { + "type": "null" + } + ] + }, + "top_logprobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprobTopLogprobs" + }, + "description": "List of the most likely tokens and their log probability, at this token position. In rare cases, there may be fewer than the number of requested `top_logprobs` returned." + } + } + }, + "OpenAI.ChatCompletionTokenLogprobTopLogprobs": { + "type": "object", + "required": [ + "token", + "logprob", + "bytes" + ], + "properties": { + "token": { + "type": "string" + }, + "logprob": { + "type": "number" + }, + "bytes": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "integer" + } + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.ChatCompletionTool": { + "type": "object", + "required": [ + "type", + "function" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function" + ], + "description": "The type of the tool. Currently, only `function` is supported.", + "x-stainless-const": true + }, + "function": { + "$ref": "#/components/schemas/OpenAI.FunctionObject" + } + }, + "description": "A function tool that can be used to generate a response.", + "title": "Function tool" + }, + "OpenAI.ChatCompletionToolChoiceOption": { + "anyOf": [ + { + "type": "string", + "enum": [ + "none", + "auto", + "required" + ] + }, + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionAllowedToolsChoice" + }, + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionNamedToolChoice" + }, + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionNamedToolChoiceCustom" + } + ], + "description": "Controls which (if any) tool is called by the model.\n`none` means the model will not call any tool and instead generates a message.\n`auto` means the model can pick between generating a message or calling one or more tools.\n`required` means the model must call one or more tools.\nSpecifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces the model to call that tool.\n\n`none` is the default when no tools are present. `auto` is the default if tools are present.", + "x-stainless-go-variant-constructor": { + "naming": "tool_choice_option_{variant}" + } + }, + "OpenAI.ChunkingStrategyRequestParam": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParamType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "auto": "#/components/schemas/OpenAI.AutoChunkingStrategyRequestParam", + "static": "#/components/schemas/OpenAI.StaticChunkingStrategyRequestParam" + } + }, + "description": "The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. Only applicable if `file_ids` is non-empty." + }, + "OpenAI.ChunkingStrategyRequestParamType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "auto", + "static" + ] + } + ] + }, + "OpenAI.ChunkingStrategyResponse": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponseType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "static": "#/components/schemas/OpenAI.StaticChunkingStrategyResponseParam", + "other": "#/components/schemas/OpenAI.OtherChunkingStrategyResponseParam" + } + }, + "description": "The strategy used to chunk the file." + }, + "OpenAI.ChunkingStrategyResponseType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "static", + "other" + ] + } + ] + }, + "OpenAI.ClickButtonType": { + "type": "string", + "enum": [ + "left", + "right", + "wheel", + "back", + "forward" + ] + }, + "OpenAI.ClickParam": { + "type": "object", + "required": [ + "type", + "button", + "x", + "y" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "click" + ], + "description": "Specifies the event type. For a click action, this property is always `click`.", + "x-stainless-const": true, + "default": "click" + }, + "button": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ClickButtonType" + } + ], + "description": "Indicates which mouse button was pressed during the click. One of `left`, `right`, `wheel`, `back`, or `forward`." + }, + "x": { + "type": "integer", + "description": "The x-coordinate where the click occurred." + }, + "y": { + "type": "integer", + "description": "The y-coordinate where the click occurred." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + } + ], + "description": "A click action.", + "title": "Click" + }, + "OpenAI.CodeInterpreterContainerAuto": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "auto" + ], + "description": "Always `auto`.", + "x-stainless-const": true, + "default": "auto" + }, + "file_ids": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 50, + "description": "An optional list of uploaded files to make available to your code." + }, + "memory_limit": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ContainerMemoryLimit" + }, + { + "type": "null" + } + ] + } + }, + "description": "Configuration for a code interpreter container. Optionally specify the IDs of the files to run the code on.", + "title": "CodeInterpreterToolAuto", + "x-stainless-naming": { + "go": { + "type_name": "ToolCodeInterpreterContainerCodeInterpreterContainerAuto" + } + } + }, + "OpenAI.CodeInterpreterOutputImage": { + "type": "object", + "required": [ + "type", + "url" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "image" + ], + "description": "The type of the output. Always `image`.", + "x-stainless-const": true, + "default": "image" + }, + "url": { + "type": "string", + "description": "The URL of the image output from the code interpreter." + } + }, + "description": "The image output from the code interpreter.", + "title": "Code interpreter output image" + }, + "OpenAI.CodeInterpreterOutputLogs": { + "type": "object", + "required": [ + "type", + "logs" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "logs" + ], + "description": "The type of the output. Always `logs`.", + "x-stainless-const": true, + "default": "logs" + }, + "logs": { + "type": "string", + "description": "The logs output from the code interpreter." + } + }, + "description": "The logs output from the code interpreter.", + "title": "Code interpreter output logs" + }, + "OpenAI.CodeInterpreterTool": { + "type": "object", + "required": [ + "type", + "container" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "code_interpreter" + ], + "description": "The type of the code interpreter tool. Always `code_interpreter`.", + "x-stainless-const": true + }, + "container": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterContainerAuto" + } + ], + "description": "The code interpreter container. Can be a container ID or an object that\n specifies uploaded file IDs to make available to your code, along with an\n optional `memory_limit` setting." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Tool" + } + ], + "description": "A tool that runs Python code to help generate a response to a prompt.", + "title": "Code interpreter" + }, + "OpenAI.CompactionBody": { + "type": "object", + "required": [ + "type", + "id", + "encrypted_content" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "compaction" + ], + "description": "The type of the item. Always `compaction`.", + "x-stainless-const": true, + "default": "compaction" + }, + "id": { + "type": "string", + "description": "The unique ID of the compaction item." + }, + "encrypted_content": { + "type": "string" + }, + "created_by": { + "type": "string" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ], + "description": "A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact).", + "title": "Compaction item" + }, + "OpenAI.ComparisonFilter": { + "type": "object", + "required": [ + "type", + "key", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "eq", + "ne", + "gt", + "gte", + "lt", + "lte" + ], + "description": "Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.\n - `eq`: equals\n - `ne`: not equal\n - `gt`: greater than\n - `gte`: greater than or equal\n - `lt`: less than\n - `lte`: less than or equal\n - `in`: in\n - `nin`: not in", + "default": "eq" + }, + "key": { + "type": "string", + "description": "The key to compare against the value." + }, + "value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ComparisonFilterValueItems" + } + } + ], + "description": "The value to compare against the attribute key; supports string, number, or boolean types." + } + }, + "description": "A filter used to compare a specified attribute key to a given value using a defined comparison operation.", + "title": "Comparison Filter", + "x-oaiMeta": { + "name": "ComparisonFilter" + } + }, + "OpenAI.ComparisonFilterValueItems": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "OpenAI.CompletionUsage": { + "type": "object", + "required": [ + "completion_tokens", + "prompt_tokens", + "total_tokens" + ], + "properties": { + "completion_tokens": { + "type": "integer", + "description": "Number of tokens in the generated completion." + }, + "prompt_tokens": { + "type": "integer", + "description": "Number of tokens in the prompt." + }, + "total_tokens": { + "type": "integer", + "description": "Total number of tokens used in the request (prompt + completion)." + }, + "completion_tokens_details": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.CompletionUsageCompletionTokensDetails" + } + ], + "description": "Breakdown of tokens used in a completion." + }, + "prompt_tokens_details": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.CompletionUsagePromptTokensDetails" + } + ], + "description": "Breakdown of tokens used in the prompt." + } + }, + "description": "Usage statistics for the completion request." + }, + "OpenAI.CompletionUsageCompletionTokensDetails": { + "type": "object", + "properties": { + "accepted_prediction_tokens": { + "type": "integer" + }, + "audio_tokens": { + "type": "integer" + }, + "reasoning_tokens": { + "type": "integer" + }, + "rejected_prediction_tokens": { + "type": "integer" + } + } + }, + "OpenAI.CompletionUsagePromptTokensDetails": { + "type": "object", + "properties": { + "audio_tokens": { + "type": "integer" + }, + "cached_tokens": { + "type": "integer" + } + } + }, + "OpenAI.CompoundFilter": { + "type": "object", + "required": [ + "type", + "filters" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "and", + "or" + ], + "description": "Type of operation: `and` or `or`." + }, + "filters": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComparisonFilter" + }, + {} + ] + }, + "description": "Array of filters to combine. Items can be `ComparisonFilter` or `CompoundFilter`." + } + }, + "description": "Combine multiple filters using `and` or `or`.", + "title": "Compound Filter", + "x-oaiMeta": { + "name": "CompoundFilter" + } + }, + "OpenAI.ComputerAction": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ComputerActionType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "click": "#/components/schemas/OpenAI.ClickParam", + "double_click": "#/components/schemas/OpenAI.DoubleClickAction", + "drag": "#/components/schemas/OpenAI.Drag", + "keypress": "#/components/schemas/OpenAI.KeyPressAction", + "move": "#/components/schemas/OpenAI.Move", + "screenshot": "#/components/schemas/OpenAI.Screenshot", + "scroll": "#/components/schemas/OpenAI.Scroll", + "type": "#/components/schemas/OpenAI.Type", + "wait": "#/components/schemas/OpenAI.Wait" + } + } + }, + "OpenAI.ComputerActionType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "click", + "double_click", + "drag", + "keypress", + "move", + "screenshot", + "scroll", + "type", + "wait" + ] + } + ] + }, + "OpenAI.ComputerCallSafetyCheckParam": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the pending safety check." + }, + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "message": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "description": "A pending safety check for the computer call." + }, + "OpenAI.ComputerEnvironment": { + "type": "string", + "enum": [ + "windows", + "mac", + "linux", + "ubuntu", + "browser" + ] + }, + "OpenAI.ComputerScreenshotContent": { + "type": "object", + "required": [ + "type", + "image_url", + "file_id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_screenshot" + ], + "description": "Specifies the event type. For a computer screenshot, this property is always set to `computer_screenshot`.", + "x-stainless-const": true, + "default": "computer_screenshot" + }, + "image_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "description": "A screenshot of a computer.", + "title": "Computer screenshot" + }, + "OpenAI.ComputerScreenshotImage": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_screenshot" + ], + "description": "Specifies the event type. For a computer screenshot, this property is\n always set to `computer_screenshot`.", + "x-stainless-const": true, + "default": "computer_screenshot" + }, + "image_url": { + "type": "string", + "description": "The URL of the screenshot image." + }, + "file_id": { + "type": "string", + "description": "The identifier of an uploaded file that contains the screenshot." + } + }, + "description": "A computer screenshot image used with the computer use tool." + }, + "OpenAI.ComputerToolCallOutputResource": { + "type": "object", + "required": [ + "type", + "call_id", + "output" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_call_output" + ], + "description": "The type of the computer tool call output. Always `computer_call_output`.", + "x-stainless-const": true, + "default": "computer_call_output" + }, + "id": { + "type": "string", + "description": "The ID of the computer tool call output." + }, + "call_id": { + "type": "string", + "description": "The ID of the computer tool call that produced the output." + }, + "acknowledged_safety_checks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ComputerCallSafetyCheckParam" + }, + "description": "The safety checks reported by the API that have been acknowledged by the\n developer." + }, + "output": { + "$ref": "#/components/schemas/OpenAI.ComputerScreenshotImage" + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the message input. One of `in_progress`, `completed`, or\n `incomplete`. Populated when input items are returned via API." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] + }, + "OpenAI.ComputerUsePreviewTool": { + "type": "object", + "required": [ + "type", + "environment", + "display_width", + "display_height" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_use_preview" + ], + "description": "The type of the computer use tool. Always `computer_use_preview`.", + "x-stainless-const": true, + "default": "computer_use_preview" + }, + "environment": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComputerEnvironment" + } + ], + "description": "The type of computer environment to control." + }, + "display_width": { + "type": "integer", + "description": "The width of the computer display." + }, + "display_height": { + "type": "integer", + "description": "The height of the computer display." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Tool" + } + ], + "description": "A tool that controls a virtual computer. Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use).", + "title": "Computer use preview" + }, + "OpenAI.ContainerFileCitationBody": { + "type": "object", + "required": [ + "type", + "container_id", + "file_id", + "start_index", + "end_index", + "filename" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "container_file_citation" + ], + "description": "The type of the container file citation. Always `container_file_citation`.", + "x-stainless-const": true, + "default": "container_file_citation" + }, + "container_id": { + "type": "string", + "description": "The ID of the container file." + }, + "file_id": { + "type": "string", + "description": "The ID of the file." + }, + "start_index": { + "type": "integer", + "description": "The index of the first character of the container file citation in the message." + }, + "end_index": { + "type": "integer", + "description": "The index of the last character of the container file citation in the message." + }, + "filename": { + "type": "string", + "description": "The filename of the container file cited." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Annotation" + } + ], + "description": "A citation for a container file used to generate a model response.", + "title": "Container file citation" + }, + "OpenAI.ContainerFileListResource": { + "type": "object", + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "list" + ], + "description": "The type of object returned, must be 'list'." + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ContainerFileResource" + }, + "description": "A list of container files." + }, + "first_id": { + "type": "string", + "description": "The ID of the first file in the list." + }, + "last_id": { + "type": "string", + "description": "The ID of the last file in the list." + }, + "has_more": { + "type": "boolean", + "description": "Whether there are more files available." + } + } + }, + "OpenAI.ContainerFileResource": { + "type": "object", + "required": [ + "id", + "object", + "container_id", + "created_at", + "bytes", + "path", + "source" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the file." + }, + "object": { + "type": "string", + "enum": [ + "container.file" + ], + "description": "The type of this object (`container.file`)." + }, + "container_id": { + "type": "string", + "description": "The container this file belongs to." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) when the file was created." + }, + "bytes": { + "type": "integer", + "description": "Size of the file in bytes." + }, + "path": { + "type": "string", + "description": "Path of the file in the container." + }, + "source": { + "type": "string", + "description": "Source of the file (e.g., `user`, `assistant`)." + } + }, + "title": "The container file object", + "x-oaiMeta": { + "name": "The container file object", + "example": "{\n \"id\": \"cfile_682e0e8a43c88191a7978f477a09bdf5\",\n \"object\": \"container.file\",\n \"created_at\": 1747848842,\n \"bytes\": 880,\n \"container_id\": \"cntr_682e0e7318108198aa783fd921ff305e08e78805b9fdbb04\",\n \"path\": \"/mnt/data/88e12fa445d32636f190a0b33daed6cb-tsconfig.json\",\n \"source\": \"user\"\n}\n" + } + }, + "OpenAI.ContainerListResource": { + "type": "object", + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "list" + ], + "description": "The type of object returned, must be 'list'." + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ContainerResource" + }, + "description": "A list of containers." + }, + "first_id": { + "type": "string", + "description": "The ID of the first container in the list." + }, + "last_id": { + "type": "string", + "description": "The ID of the last container in the list." + }, + "has_more": { + "type": "boolean", + "description": "Whether there are more containers available." + } + } + }, + "OpenAI.ContainerMemoryLimit": { + "type": "string", + "enum": [ + "1g", + "4g", + "16g", + "64g" + ] + }, + "OpenAI.ContainerResource": { + "type": "object", + "required": [ + "id", + "object", + "name", + "created_at", + "status" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the container." + }, + "object": { + "type": "string", + "description": "The type of this object." + }, + "name": { + "type": "string", + "description": "Name of the container." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) when the container was created." + }, + "status": { + "type": "string", + "description": "Status of the container (e.g., active, deleted)." + }, + "last_active_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) when the container was last active." + }, + "expires_after": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ContainerResourceExpiresAfter" + } + ], + "description": "The container will expire after this time period.\n The anchor is the reference point for the expiration.\n The minutes is the number of minutes after the anchor before the container expires." + }, + "memory_limit": { + "type": "string", + "enum": [ + "1g", + "4g", + "16g", + "64g" + ], + "description": "The memory limit configured for the container." + } + }, + "title": "The container object", + "x-oaiMeta": { + "name": "The container object", + "example": "{\n \"id\": \"cntr_682dfebaacac8198bbfe9c2474fb6f4a085685cbe3cb5863\",\n \"object\": \"container\",\n \"created_at\": 1747844794,\n \"status\": \"running\",\n \"expires_after\": {\n \"anchor\": \"last_active_at\",\n \"minutes\": 20\n },\n \"last_active_at\": 1747844794,\n \"memory_limit\": \"1g\",\n \"name\": \"My Container\"\n}\n" + } + }, + "OpenAI.ContainerResourceExpiresAfter": { + "type": "object", + "properties": { + "anchor": { + "type": "string", + "enum": [ + "last_active_at" + ] + }, + "minutes": { + "type": "integer" + } + } + }, + "OpenAI.Conversation": { + "type": "object", + "required": [ + "id", + "object", + "metadata", + "created_at" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the conversation." + }, + "object": { + "type": "string", + "enum": [ + "conversation" + ], + "description": "The object type, which is always `conversation`.", + "x-stainless-const": true, + "default": "conversation" + }, + "metadata": { + "description": "Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.\n Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The time at which the conversation was created, measured in seconds since the Unix epoch." + } + }, + "title": "The conversation object", + "x-oaiMeta": { + "name": "The conversation object", + "group": "conversations" + } + }, + "OpenAI.ConversationItem": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ConversationItemType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "message": "#/components/schemas/OpenAI.Message", + "function_call": "#/components/schemas/OpenAI.ConversationItemFunctionToolCallResource", + "function_call_output": "#/components/schemas/OpenAI.ConversationItemFunctionToolCallOutputResource", + "file_search_call": "#/components/schemas/OpenAI.ConversationItemFileSearchToolCall", + "web_search_call": "#/components/schemas/OpenAI.ConversationItemWebSearchToolCall", + "image_generation_call": "#/components/schemas/OpenAI.ConversationItemImageGenToolCall", + "computer_call": "#/components/schemas/OpenAI.ConversationItemComputerToolCall", + "computer_call_output": "#/components/schemas/OpenAI.ConversationItemComputerToolCallOutputResource", + "reasoning": "#/components/schemas/OpenAI.ConversationItemReasoningItem", + "code_interpreter_call": "#/components/schemas/OpenAI.ConversationItemCodeInterpreterToolCall", + "local_shell_call": "#/components/schemas/OpenAI.ConversationItemLocalShellToolCall", + "local_shell_call_output": "#/components/schemas/OpenAI.ConversationItemLocalShellToolCallOutput", + "shell_call": "#/components/schemas/OpenAI.ConversationItemFunctionShellCall", + "shell_call_output": "#/components/schemas/OpenAI.ConversationItemFunctionShellCallOutput", + "apply_patch_call": "#/components/schemas/OpenAI.ConversationItemApplyPatchToolCall", + "apply_patch_call_output": "#/components/schemas/OpenAI.ConversationItemApplyPatchToolCallOutput", + "mcp_list_tools": "#/components/schemas/OpenAI.ConversationItemMCPListTools", + "mcp_approval_request": "#/components/schemas/OpenAI.ConversationItemMCPApprovalRequest", + "mcp_approval_response": "#/components/schemas/OpenAI.ConversationItemMCPApprovalResponseResource", + "mcp_call": "#/components/schemas/OpenAI.ConversationItemMCPToolCall", + "custom_tool_call": "#/components/schemas/OpenAI.ConversationItemCustomToolCall", + "custom_tool_call_output": "#/components/schemas/OpenAI.ConversationItemCustomToolCallOutput" + } + }, + "description": "A single item within a conversation. The set of possible types are the same as the `output` type of a [Response object](https://platform.openai.com/docs/api-reference/responses/object#responses/object-output).", + "title": "Conversation item" + }, + "OpenAI.ConversationItemApplyPatchToolCall": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "status", + "operation" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch_call" + ], + "description": "The type of the item. Always `apply_patch_call`.", + "x-stainless-const": true, + "default": "apply_patch_call" + }, + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchCallStatus" + } + ], + "description": "The status of the apply patch tool call. One of `in_progress` or `completed`." + }, + "operation": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperation" + } + ], + "description": "One of the create_file, delete_file, or update_file operations applied via apply_patch." + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemApplyPatchToolCallOutput": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "status" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch_call_output" + ], + "description": "The type of the item. Always `apply_patch_call_output`.", + "x-stainless-const": true, + "default": "apply_patch_call_output" + }, + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call output. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchCallOutputStatus" + } + ], + "description": "The status of the apply patch tool call output. One of `completed` or `failed`." + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call output." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemCodeInterpreterToolCall": { + "type": "object", + "required": [ + "type", + "id", + "status", + "container_id", + "code", + "outputs" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "code_interpreter_call" + ], + "description": "The type of the code interpreter tool call. Always `code_interpreter_call`.", + "x-stainless-const": true, + "default": "code_interpreter_call" + }, + "id": { + "type": "string", + "description": "The unique ID of the code interpreter tool call." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete", + "interpreting", + "failed" + ], + "description": "The status of the code interpreter tool call. Valid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`." + }, + "container_id": { + "type": "string", + "description": "The ID of the container used to run the code." + }, + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "outputs": { + "anyOf": [ + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputLogs" + }, + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputImage" + } + ] + } + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemComputerToolCall": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "action", + "pending_safety_checks", + "status" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_call" + ], + "description": "The type of the computer call. Always `computer_call`.", + "default": "computer_call" + }, + "id": { + "type": "string", + "description": "The unique ID of the computer call." + }, + "call_id": { + "type": "string", + "description": "An identifier used when responding to the tool call with output." + }, + "action": { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + }, + "pending_safety_checks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ComputerCallSafetyCheckParam" + }, + "description": "The pending safety checks for the computer call." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemComputerToolCallOutputResource": { + "type": "object", + "required": [ + "type", + "call_id", + "output" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_call_output" + ], + "description": "The type of the computer tool call output. Always `computer_call_output`.", + "x-stainless-const": true, + "default": "computer_call_output" + }, + "id": { + "type": "string", + "description": "The ID of the computer tool call output." + }, + "call_id": { + "type": "string", + "description": "The ID of the computer tool call that produced the output." + }, + "acknowledged_safety_checks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ComputerCallSafetyCheckParam" + }, + "description": "The safety checks reported by the API that have been acknowledged by the\n developer." + }, + "output": { + "$ref": "#/components/schemas/OpenAI.ComputerScreenshotImage" + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the message input. One of `in_progress`, `completed`, or\n `incomplete`. Populated when input items are returned via API." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemCustomToolCall": { + "type": "object", + "required": [ + "type", + "call_id", + "name", + "input" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom_tool_call" + ], + "description": "The type of the custom tool call. Always `custom_tool_call`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the custom tool call in the OpenAI platform." + }, + "call_id": { + "type": "string", + "description": "An identifier used to map this custom tool call to a tool call output." + }, + "name": { + "type": "string", + "description": "The name of the custom tool being called." + }, + "input": { + "type": "string", + "description": "The input for the custom tool call generated by the model." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemCustomToolCallOutput": { + "type": "object", + "required": [ + "type", + "call_id", + "output" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom_tool_call_output" + ], + "description": "The type of the custom tool call output. Always `custom_tool_call_output`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the custom tool call output in the OpenAI platform." + }, + "call_id": { + "type": "string", + "description": "The call ID, used to map this custom tool call output to a custom tool call." + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FunctionAndCustomToolCallOutput" + } + } + ], + "description": "The output from the custom tool call generated by your code.\n Can be a string or an list of output content." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemFileSearchToolCall": { + "type": "object", + "required": [ + "id", + "type", + "status", + "queries" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the file search tool call." + }, + "type": { + "type": "string", + "enum": [ + "file_search_call" + ], + "description": "The type of the file search tool call. Always `file_search_call`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "searching", + "completed", + "incomplete", + "failed" + ], + "description": "The status of the file search tool call. One of `in_progress`,\n `searching`, `incomplete` or `failed`," + }, + "queries": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The queries used to search for files." + }, + "results": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FileSearchToolCallResults" + } + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemFunctionShellCall": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "action", + "status" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "shell_call" + ], + "description": "The type of the item. Always `shell_call`.", + "x-stainless-const": true, + "default": "shell_call" + }, + "id": { + "type": "string", + "description": "The unique ID of the shell tool call. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the shell tool call generated by the model." + }, + "action": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FunctionShellAction" + } + ], + "description": "The shell commands and limits that describe how to run the tool call." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.LocalShellCallStatus" + } + ], + "description": "The status of the shell call. One of `in_progress`, `completed`, or `incomplete`." + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemFunctionShellCallOutput": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "output", + "max_output_length" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "shell_call_output" + ], + "description": "The type of the shell call output. Always `shell_call_output`.", + "x-stainless-const": true, + "default": "shell_call_output" + }, + "id": { + "type": "string", + "description": "The unique ID of the shell call output. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the shell tool call generated by the model." + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputContent" + }, + "description": "An array of shell call output contents" + }, + "max_output_length": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "created_by": { + "type": "string" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemFunctionToolCallOutputResource": { + "type": "object", + "required": [ + "type", + "call_id", + "output" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the function tool call output. Populated when this item\n is returned via API." + }, + "type": { + "type": "string", + "enum": [ + "function_call_output" + ], + "description": "The type of the function tool call output. Always `function_call_output`.", + "x-stainless-const": true + }, + "call_id": { + "type": "string", + "description": "The unique ID of the function tool call generated by the model." + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FunctionAndCustomToolCallOutput" + } + } + ], + "description": "The output from the function call generated by your code.\n Can be a string or an list of output content." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemFunctionToolCallResource": { + "type": "object", + "required": [ + "type", + "call_id", + "name", + "arguments" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the function tool call." + }, + "type": { + "type": "string", + "enum": [ + "function_call" + ], + "description": "The type of the function tool call. Always `function_call`.", + "x-stainless-const": true + }, + "call_id": { + "type": "string", + "description": "The unique ID of the function tool call generated by the model." + }, + "name": { + "type": "string", + "description": "The name of the function to run." + }, + "arguments": { + "type": "string", + "description": "A JSON string of the arguments to pass to the function." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemImageGenToolCall": { + "type": "object", + "required": [ + "type", + "id", + "status", + "result" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "image_generation_call" + ], + "description": "The type of the image generation call. Always `image_generation_call`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the image generation call." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "generating", + "failed" + ], + "description": "The status of the image generation call." + }, + "result": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemList": { + "type": "object", + "required": [ + "object", + "data", + "has_more", + "first_id", + "last_id" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "list" + ], + "description": "The type of object returned, must be `list`.", + "x-stainless-const": true + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + }, + "description": "A list of conversation items." + }, + "has_more": { + "type": "boolean", + "description": "Whether there are more items available." + }, + "first_id": { + "type": "string", + "description": "The ID of the first item in the list." + }, + "last_id": { + "type": "string", + "description": "The ID of the last item in the list." + } + }, + "description": "A list of Conversation items.", + "title": "The conversation item list", + "x-oaiMeta": { + "name": "The item list", + "group": "conversations" + } + }, + "OpenAI.ConversationItemLocalShellToolCall": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "action", + "status" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "local_shell_call" + ], + "description": "The type of the local shell call. Always `local_shell_call`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the local shell call." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the local shell tool call generated by the model." + }, + "action": { + "$ref": "#/components/schemas/OpenAI.LocalShellExecAction" + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the local shell call." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemLocalShellToolCallOutput": { + "type": "object", + "required": [ + "type", + "id", + "output" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "local_shell_call_output" + ], + "description": "The type of the local shell tool call output. Always `local_shell_call_output`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the local shell tool call generated by the model." + }, + "output": { + "type": "string", + "description": "A JSON string of the output of the local shell tool call." + }, + "status": { + "anyOf": [ + { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ] + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemMCPApprovalRequest": { + "type": "object", + "required": [ + "type", + "id", + "server_label", + "name", + "arguments" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_approval_request" + ], + "description": "The type of the item. Always `mcp_approval_request`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the approval request." + }, + "server_label": { + "type": "string", + "description": "The label of the MCP server making the request." + }, + "name": { + "type": "string", + "description": "The name of the tool to run." + }, + "arguments": { + "type": "string", + "description": "A JSON string of arguments for the tool." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemMCPApprovalResponseResource": { + "type": "object", + "required": [ + "type", + "id", + "approval_request_id", + "approve" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_approval_response" + ], + "description": "The type of the item. Always `mcp_approval_response`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the approval response" + }, + "approval_request_id": { + "type": "string", + "description": "The ID of the approval request being answered." + }, + "approve": { + "type": "boolean", + "description": "Whether the request was approved." + }, + "reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemMCPListTools": { + "type": "object", + "required": [ + "type", + "id", + "server_label", + "tools" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_list_tools" + ], + "description": "The type of the item. Always `mcp_list_tools`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the list." + }, + "server_label": { + "type": "string", + "description": "The label of the MCP server." + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.MCPListToolsTool" + }, + "description": "The tools available on the server." + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemMCPToolCall": { + "type": "object", + "required": [ + "type", + "id", + "server_label", + "name", + "arguments" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_call" + ], + "description": "The type of the item. Always `mcp_call`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the tool call." + }, + "server_label": { + "type": "string", + "description": "The label of the MCP server running the tool." + }, + "name": { + "type": "string", + "description": "The name of the tool that was run." + }, + "arguments": { + "type": "string", + "description": "A JSON string of the arguments passed to the tool." + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPToolCallStatus" + } + ], + "description": "The status of the tool call. One of `in_progress`, `completed`, `incomplete`, `calling`, or `failed`." + }, + "approval_request_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemReasoningItem": { + "type": "object", + "required": [ + "type", + "id", + "summary" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "reasoning" + ], + "description": "The type of the object. Always `reasoning`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique identifier of the reasoning content." + }, + "encrypted_content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "summary": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.Summary" + }, + "description": "Reasoning summary content." + }, + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ReasoningTextContent" + }, + "description": "Reasoning text content." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "message", + "function_call", + "function_call_output", + "file_search_call", + "web_search_call", + "image_generation_call", + "computer_call", + "computer_call_output", + "reasoning", + "code_interpreter_call", + "local_shell_call", + "local_shell_call_output", + "shell_call", + "shell_call_output", + "apply_patch_call", + "apply_patch_call_output", + "mcp_list_tools", + "mcp_approval_request", + "mcp_approval_response", + "mcp_call", + "custom_tool_call", + "custom_tool_call_output" + ] + } + ] + }, + "OpenAI.ConversationItemWebSearchToolCall": { + "type": "object", + "required": [ + "id", + "type", + "status", + "action" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the web search tool call." + }, + "type": { + "type": "string", + "enum": [ + "web_search_call" + ], + "description": "The type of the web search tool call. Always `web_search_call`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "searching", + "completed", + "failed" + ], + "description": "The status of the web search tool call." + }, + "action": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionSearch" + }, + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionOpenPage" + }, + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionFind" + } + ], + "description": "An object describing the specific action taken in this web search call.\n Includes details on how the model used the web (search, open_page, find)." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationParam": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/OpenAI.ConversationParam-2" + } + ], + "description": "The conversation that this response belongs to. Items from this conversation are prepended to `input_items` for this response request.\nInput items and output items from this response are automatically added to this conversation after this response completes." + }, + "OpenAI.ConversationParam-2": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the conversation." + } + }, + "description": "The conversation that this response belongs to.", + "title": "Conversation object" + }, + "OpenAI.ConversationResource": { + "type": "object", + "required": [ + "id", + "object", + "metadata", + "created_at" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the conversation." + }, + "object": { + "type": "string", + "enum": [ + "conversation" + ], + "description": "The object type, which is always `conversation`.", + "x-stainless-const": true, + "default": "conversation" + }, + "metadata": { + "description": "Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.\n Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The time at which the conversation was created, measured in seconds since the Unix epoch." + } + } + }, + "OpenAI.CreateChatCompletionRequestAudio": { + "type": "object", + "required": [ + "voice", + "format" + ], + "properties": { + "voice": { + "$ref": "#/components/schemas/OpenAI.VoiceIdsShared" + }, + "format": { + "type": "string", + "enum": [ + "wav", + "aac", + "mp3", + "flac", + "opus", + "pcm16" + ] + } + } + }, + "OpenAI.CreateChatCompletionResponseChoices": { + "type": "object", + "required": [ + "finish_reason", + "index", + "message", + "logprobs" + ], + "properties": { + "finish_reason": { + "type": "string", + "enum": [ + "stop", + "length", + "tool_calls", + "content_filter", + "function_call" + ] + }, + "index": { + "type": "integer" + }, + "message": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionResponseMessage" + }, + "logprobs": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateChatCompletionResponseChoicesLogprobs" + }, + { + "type": "null" + } + ] + }, + "content_filter_results": { + "$ref": "#/components/schemas/AzureContentFilterResultForChoice" + } } - } - }, - "schemas": { - "AzureAIFoundryModelsApiVersion": { - "type": "string", - "enum": [ - "v1", - "preview" - ] }, - "AzureChatCompletionResponseMessage": { + "OpenAI.CreateChatCompletionResponseChoicesLogprobs": { "type": "object", "required": [ "content", - "refusal", - "role" + "refusal" ], "properties": { "content": { - "type": "string", - "nullable": true, - "description": "The contents of the message." + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" + } + }, + { + "type": "null" + } + ] }, "refusal": { - "type": "string", - "nullable": true, - "description": "The refusal message generated by the model." + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" + } + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.CreateChatCompletionStreamResponseChoices": { + "type": "object", + "required": [ + "delta", + "finish_reason", + "index" + ], + "properties": { + "delta": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamResponseDelta" }, - "tool_calls": { - "$ref": "#/components/schemas/ChatCompletionMessageToolCallsItem", - "readOnly": true + "logprobs": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateChatCompletionStreamResponseChoicesLogprobs" + }, + { + "type": "null" + } + ] }, - "annotations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "url_citation" - ], - "description": "The type of the URL citation. Always `url_citation`." - }, - "url_citation": { - "type": "object", - "properties": { - "end_index": { - "type": "integer", - "format": "int32", - "description": "The index of the last character of the URL citation in the message." - }, - "start_index": { - "type": "integer", - "format": "int32", - "description": "The index of the first character of the URL citation in the message." - }, - "url": { - "type": "string", - "format": "uri", - "description": "The URL of the web resource." - }, - "title": { - "type": "string", - "description": "The title of the web resource." - } - }, - "required": [ - "end_index", - "start_index", - "url", - "title" - ], - "description": "A URL citation when using web search." + "finish_reason": { + "anyOf": [ + { + "type": "string", + "enum": [ + "stop", + "length", + "tool_calls", + "content_filter", + "function_call" + ] + }, + { + "type": "null" + } + ] + }, + "index": { + "type": "integer" + } + } + }, + "OpenAI.CreateChatCompletionStreamResponseChoicesLogprobs": { + "type": "object", + "required": [ + "content", + "refusal" + ], + "properties": { + "content": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" } }, - "required": [ - "type", - "url_citation" - ] - }, - "description": "Annotations for the message, when applicable, as when using the\n[web search tool](/docs/guides/tools-web-search?api-mode=chat)." + { + "type": "null" + } + ] }, - "role": { + "refusal": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" + } + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.CreateCompletionResponseChoices": { + "type": "object", + "required": [ + "finish_reason", + "index", + "logprobs", + "text" + ], + "properties": { + "finish_reason": { "type": "string", "enum": [ - "assistant" - ], - "description": "The role of the author of this message." + "stop", + "length", + "content_filter" + ] }, - "function_call": { - "type": "object", - "properties": { - "name": { - "type": "string" + "index": { + "type": "integer", + "format": "int32" + }, + "logprobs": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateCompletionResponseChoicesLogprobs" }, - "arguments": { - "type": "string" + { + "type": "null" } - }, - "required": [ - "name", - "arguments" - ], - "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model.", - "deprecated": true + ] }, - "audio": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for this audio response." - }, - "expires_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when this audio response will\nno longer be accessible on the server for use in multi-turn\nconversations." - }, - "data": { - "type": "string", - "format": "base64", - "description": "Base64 encoded audio bytes generated by the model, in the format\nspecified in the request." - }, - "transcript": { - "type": "string", - "description": "Transcript of the audio generated by the model." + "text": { + "type": "string" + }, + "content_filter_results": { + "$ref": "#/components/schemas/AzureContentFilterResultForChoice" + } + } + }, + "OpenAI.CreateCompletionResponseChoicesLogprobs": { + "type": "object", + "properties": { + "text_offset": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "token_logprobs": { + "type": "array", + "items": { + "type": "number", + "format": "float" + } + }, + "tokens": { + "type": "array", + "items": { + "type": "string" + } + }, + "top_logprobs": { + "type": "array", + "items": { + "type": "object", + "unevaluatedProperties": { + "type": "number", + "format": "float" } + } + } + } + }, + "OpenAI.CreateContainerBody": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the container to create." + }, + "file_ids": { + "type": "array", + "items": { + "type": "string" }, - "required": [ - "id", - "expires_at", - "data", - "transcript" - ], - "nullable": true, - "description": "If the audio output modality is requested, this object contains data\nabout the audio response from the model. [Learn more](/docs/guides/audio)." + "description": "IDs of files to copy to the container." }, - "context": { + "expires_after": { "allOf": [ { - "$ref": "#/components/schemas/AzureChatMessageContext" + "$ref": "#/components/schemas/OpenAI.CreateContainerBodyExpiresAfter" } ], - "description": "The Azure-specific context information associated with the chat completion response message." + "description": "Container expiration time in seconds relative to the 'anchor' time." }, - "reasoning_content": { + "memory_limit": { + "type": "string", + "enum": [ + "1g", + "4g", + "16g", + "64g" + ], + "description": "Optional memory limit for the container. Defaults to \"1g\"." + } + } + }, + "OpenAI.CreateContainerBodyExpiresAfter": { + "type": "object", + "required": [ + "anchor", + "minutes" + ], + "properties": { + "anchor": { + "type": "string", + "enum": [ + "last_active_at" + ] + }, + "minutes": { + "type": "integer" + } + } + }, + "OpenAI.CreateContainerFileBody": { + "type": "object", + "properties": { + "file_id": { "type": "string", - "description": "An Azure-specific extension property containing generated reasoning content from supported models." + "description": "Name of the file to create." + }, + "file": { + "description": "The File object (not file name) to be uploaded." } }, - "description": "The extended response model component for chat completion response messages on the Azure OpenAI service.\nThis model adds support for chat message context, used by the On Your Data feature for intent, citations, and other\ninformation related to retrieval-augmented generation performed." + "required": [] }, - "AzureChatCompletionStreamResponseDelta": { + "OpenAI.CreateConversationBody": { "type": "object", "properties": { - "audio": { - "allOf": [ + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, { - "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageAudioChunk" + "type": "null" } - ], - "description": "Response audio associated with the streaming chat delta payload." - }, - "content": { - "type": "string", - "nullable": true, - "description": "The contents of the chunk message." + ] }, - "function_call": { - "type": "object", - "properties": { - "name": { - "type": "string" + "items": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputItem" + } }, - "arguments": { - "type": "string" + { + "type": "null" } - }, - "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model.", - "deprecated": true - }, - "tool_calls": { + ] + } + } + }, + "OpenAI.CreateConversationItemsParametersBody": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunk" + "$ref": "#/components/schemas/OpenAI.InputItem" }, - "readOnly": true - }, - "role": { - "allOf": [ + "maxItems": 20 + } + } + }, + "OpenAI.CreateEmbeddingRequest": { + "type": "object", + "required": [ + "input", + "model" + ], + "properties": { + "input": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "array", + "items": { + "type": "integer" + } + }, { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRole" + "type": "array", + "items": { + "type": "array", + "items": { + "type": "integer" + } + } } ], - "description": "The role of the author of this message." + "description": "Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and any array must be 2048 dimensions or less. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens. In addition to the per-input token limit, all embedding models enforce a maximum of 300,000 tokens summed across all inputs in a single request." }, - "refusal": { + "model": { "type": "string", - "nullable": true, - "description": "The refusal message generated by the model." + "description": "ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them.", + "x-oaiTypeLabel": "string" }, - "context": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatMessageContext" - } + "encoding_format": { + "type": "string", + "enum": [ + "float", + "base64" ], - "description": "The Azure-specific context information associated with the chat completion response message." + "description": "The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/).", + "default": "float" }, - "reasoning_content": { + "dimensions": { + "type": "integer", + "minimum": 1, + "description": "The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models." + }, + "user": { "type": "string", - "description": "An Azure-specific extension property containing generated reasoning content from supported models." + "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids)." } - }, - "description": "The extended response model for a streaming chat response message on the Azure OpenAI service.\nThis model adds support for chat message context, used by the On Your Data feature for intent, citations, and other\ninformation related to retrieval-augmented generation performed." + } }, - "AzureChatDataSource": { + "OpenAI.CreateEmbeddingResponse": { "type": "object", "required": [ - "type" + "data", + "model", + "object", + "usage" ], "properties": { - "type": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.Embedding" + }, + "description": "The list of embeddings generated by the model." + }, + "model": { + "type": "string", + "description": "The name of the model used to generate the embedding." + }, + "object": { + "type": "string", + "enum": [ + "list" + ], + "description": "The object type, which is always \"list\".", + "x-stainless-const": true + }, + "usage": { "allOf": [ { - "$ref": "#/components/schemas/AzureChatDataSourceType" + "$ref": "#/components/schemas/OpenAI.CreateEmbeddingResponseUsage" } ], - "description": "The differentiating type identifier for the data source." - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "azure_search": "#/components/schemas/AzureSearchChatDataSource", - "azure_cosmos_db": "#/components/schemas/AzureCosmosDBChatDataSource", - "elasticsearch": "#/components/schemas/ElasticsearchChatDataSource", - "pinecone": "#/components/schemas/PineconeChatDataSource", - "mongo_db": "#/components/schemas/MongoDBChatDataSource" + "description": "The usage information for the request." } - }, - "description": "A representation of configuration data for a single Azure OpenAI chat data source.\nThis will be used by a chat completions request that should use Azure OpenAI chat extensions to augment the\nresponse behavior.\nThe use of this configuration is compatible only with Azure OpenAI." + } }, - "AzureChatDataSourceAccessTokenAuthenticationOptions": { + "OpenAI.CreateEmbeddingResponseUsage": { "type": "object", "required": [ - "type", - "access_token" + "prompt_tokens", + "total_tokens" ], "properties": { - "type": { - "type": "string", - "enum": [ - "access_token" - ] + "prompt_tokens": { + "type": "integer" }, - "access_token": { - "type": "string" - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" + "total_tokens": { + "type": "integer" } - ] + } }, - "AzureChatDataSourceApiKeyAuthenticationOptions": { + "OpenAI.CreateEvalCompletionsRunDataSource": { "type": "object", "required": [ "type", - "key" + "source" ], "properties": { "type": { "type": "string", "enum": [ - "api_key" - ] + "completions" + ], + "description": "The type of run data source. Always `completions`.", + "default": "completions" }, - "key": { - "type": "string" + "input_messages": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesTemplate" + }, + { + "$ref": "#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesItemReference" + } + ], + "description": "Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace." + }, + "sampling_params": { + "$ref": "#/components/schemas/AzureCompletionsSamplingParams" + }, + "model": { + "type": "string", + "description": "The name of the model to use for generating completions (e.g. \"o3-mini\")." + }, + "source": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileContentSource" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileIdSource" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalStoredCompletionsSource" + } + ], + "description": "Determines what populates the `item` namespace in this run's data source." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" - } - ] + "description": "A CompletionsRunDataSource object describing a model sampling configuration.", + "title": "CompletionsRunDataSource", + "x-oaiMeta": { + "name": "The completions data source object used to configure an individual run", + "group": "eval runs", + "example": "{\n \"name\": \"gpt-4o-mini-2024-07-18\",\n \"data_source\": {\n \"type\": \"completions\",\n \"input_messages\": {\n \"type\": \"item_reference\",\n \"item_reference\": \"item.input\"\n },\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \"source\": {\n \"type\": \"stored_completions\",\n \"model\": \"gpt-4o-mini-2024-07-18\"\n }\n }\n}\n" + } }, - "AzureChatDataSourceAuthenticationOptions": { + "OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesItemReference": { "type": "object", "required": [ - "type" + "type", + "item_reference" ], "properties": { "type": { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptionsType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "system_assigned_managed_identity": "#/components/schemas/AzureChatDataSourceSystemAssignedManagedIdentityAuthenticationOptions", - "user_assigned_managed_identity": "#/components/schemas/AzureChatDataSourceUserAssignedManagedIdentityAuthenticationOptions", - "access_token": "#/components/schemas/AzureChatDataSourceAccessTokenAuthenticationOptions", - "connection_string": "#/components/schemas/AzureChatDataSourceConnectionStringAuthenticationOptions", - "key_and_key_id": "#/components/schemas/AzureChatDataSourceKeyAndKeyIdAuthenticationOptions", - "encoded_api_key": "#/components/schemas/AzureChatDataSourceEncodedApiKeyAuthenticationOptions", - "username_and_password": "#/components/schemas/AzureChatDataSourceUsernameAndPasswordAuthenticationOptions" + "type": "string", + "enum": [ + "item_reference" + ] + }, + "item_reference": { + "type": "string" } } }, - "AzureChatDataSourceAuthenticationOptionsType": { - "type": "string", - "enum": [ - "api_key", - "username_and_password", - "connection_string", - "key_and_key_id", - "encoded_api_key", - "access_token", - "system_assigned_managed_identity", - "user_assigned_managed_identity" - ] - }, - "AzureChatDataSourceConnectionStringAuthenticationOptions": { + "OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesTemplate": { "type": "object", "required": [ "type", - "connection_string" + "template" ], "properties": { "type": { "type": "string", "enum": [ - "connection_string" + "template" ] }, - "connection_string": { - "type": "string" + "template": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.EasyInputMessage" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalItem" + } + ] + } } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" + } + }, + "OpenAI.CreateEvalCompletionsRunDataSourceSamplingParams": { + "type": "object", + "properties": { + "reasoning_effort": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + } + ], + "description": "Controls the level of reasoning effort applied during generation." + }, + "temperature": { + "type": "number", + "description": "A higher temperature increases randomness in the outputs.", + "default": 1 + }, + "max_completion_tokens": { + "type": "integer" + }, + "top_p": { + "type": "number", + "description": "An alternative to temperature for nucleus sampling; 1.0 includes all tokens.", + "default": 1 + }, + "seed": { + "type": "integer", + "description": "A seed value initializes the randomness during sampling.", + "default": 42 + }, + "response_format": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatText" + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchema" + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonObject" + } + ] + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTool" + } } - ] + } }, - "AzureChatDataSourceDeploymentNameVectorizationSource": { + "OpenAI.CreateEvalCustomDataSourceConfig": { "type": "object", "required": [ "type", - "deployment_name" + "item_schema" ], "properties": { "type": { "type": "string", "enum": [ - "deployment_name" + "custom" ], - "description": "The type identifier, always 'deployment_name' for this vectorization source type." + "description": "The type of data source. Always `custom`.", + "x-stainless-const": true, + "default": "custom" }, - "deployment_name": { - "type": "string", - "description": "The embedding model deployment to use for vectorization. This deployment must exist within the same Azure OpenAI\nresource as the model deployment being used for chat completions." + "item_schema": { + "type": "object", + "unevaluatedProperties": {}, + "description": "The json schema for each row in the data source." }, - "dimensions": { - "type": "integer", - "format": "int32", - "description": "The number of dimensions to request on embeddings.\nOnly supported in 'text-embedding-3' and later models." + "include_sample_schema": { + "type": "boolean", + "description": "Whether the eval should expect you to populate the sample namespace (ie, by generating responses off of your data source)" } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" - } - ], - "description": "Represents a vectorization source that makes internal service calls against an Azure OpenAI embedding model\ndeployment. In contrast with the endpoint-based vectorization source, a deployment-name-based vectorization source\nmust be part of the same Azure OpenAI resource but can be used even in private networks." + "description": "A CustomDataSourceConfig object that defines the schema for the data source used for the evaluation runs.\nThis schema is used to define the shape of the data that will be:\n- Used to define your testing criteria and\n- What data is required when creating a run", + "title": "CustomDataSourceConfig", + "x-oaiMeta": { + "name": "The eval file data source config object", + "group": "evals", + "example": "{\n \"type\": \"custom\",\n \"item_schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\"type\": \"string\"},\n \"age\": {\"type\": \"integer\"}\n },\n \"required\": [\"name\", \"age\"]\n },\n \"include_sample_schema\": true\n}\n" + } }, - "AzureChatDataSourceEncodedApiKeyAuthenticationOptions": { + "OpenAI.CreateEvalItem": { "type": "object", "required": [ - "type", - "encoded_api_key" + "role", + "content" ], "properties": { - "type": { + "role": { "type": "string", - "enum": [ - "encoded_api_key" - ] + "description": "The role of the message (e.g. \"system\", \"assistant\", \"user\")." }, - "encoded_api_key": { - "type": "string" + "content": { + "type": "string", + "description": "The content of the message." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" - } - ] + "description": "A chat message that makes up the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}.", + "title": "SimpleInputMessage", + "x-oaiMeta": { + "name": "The chat message object used to configure an individual run" + } }, - "AzureChatDataSourceEndpointVectorizationSource": { + "OpenAI.CreateEvalJsonlRunDataSource": { "type": "object", "required": [ "type", - "endpoint", - "authentication" + "source" ], "properties": { "type": { "type": "string", "enum": [ - "endpoint" + "jsonl" ], - "description": "The type identifier, always 'endpoint' for this vectorization source type." - }, - "endpoint": { - "type": "string", - "format": "uri", - "description": "Specifies the resource endpoint URL from which embeddings should be retrieved.\nIt should be in the format of:\nhttps://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings.\nThe api-version query parameter is not allowed." + "description": "The type of data source. Always `jsonl`.", + "x-stainless-const": true, + "default": "jsonl" }, - "authentication": { + "source": { "anyOf": [ { - "$ref": "#/components/schemas/AzureChatDataSourceApiKeyAuthenticationOptions" + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileContentSource" }, { - "$ref": "#/components/schemas/AzureChatDataSourceAccessTokenAuthenticationOptions" + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileIdSource" } ], - "description": "The authentication mechanism to use with the endpoint-based vectorization source.\nEndpoint authentication supports API key and access token mechanisms." - }, - "dimensions": { - "type": "integer", - "format": "int32", - "description": "The number of dimensions to request on embeddings.\nOnly supported in 'text-embedding-3' and later models." + "description": "Determines what populates the `item` namespace in the data source." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" - } - ], - "description": "Represents a vectorization source that makes public service calls against an Azure OpenAI embedding model deployment." + "description": "A JsonlRunDataSource object with that specifies a JSONL file that matches the eval", + "title": "JsonlRunDataSource", + "x-oaiMeta": { + "name": "The file data source object for the eval run configuration", + "group": "evals", + "example": "{\n \"type\": \"jsonl\",\n \"source\": {\n \"type\": \"file_id\",\n \"id\": \"file-9GYS6xbkWgWhmE7VoLUWFg\"\n }\n}\n" + } }, - "AzureChatDataSourceIntegratedVectorizationSource": { + "OpenAI.CreateEvalLabelModelGrader": { "type": "object", "required": [ - "type" + "type", + "name", + "model", + "input", + "labels", + "passing_labels" ], "properties": { "type": { "type": "string", "enum": [ - "integrated" + "label_model" ], - "description": "The type identifier, always 'integrated' for this vectorization source type." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" - } - ], - "description": "Represents an integrated vectorization source as defined within the supporting search resource." - }, - "AzureChatDataSourceKeyAndKeyIdAuthenticationOptions": { - "type": "object", - "required": [ - "type", - "key", - "key_id" - ], - "properties": { - "type": { + "description": "The object type, which is always `label_model`.", + "x-stainless-const": true + }, + "name": { "type": "string", - "enum": [ - "key_and_key_id" - ] + "description": "The name of the grader." }, - "key": { - "type": "string" + "model": { + "type": "string", + "description": "The model to use for the evaluation. Must support structured outputs." }, - "key_id": { - "type": "string" + "input": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateEvalItem" + }, + "description": "A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}." + }, + "labels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The labels to classify to each item in the evaluation." + }, + "passing_labels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The labels that indicate a passing result. Must be a subset of labels." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" - } - ] + "description": "A LabelModelGrader object which uses a model to assign labels to each item\nin the evaluation.", + "title": "LabelModelGrader", + "x-oaiMeta": { + "name": "The eval label model grader object", + "group": "evals", + "example": "{\n \"type\": \"label_model\",\n \"model\": \"gpt-4o-2024-08-06\",\n \"input\": [\n {\n \"role\": \"system\",\n \"content\": \"Classify the sentiment of the following statement as one of 'positive', 'neutral', or 'negative'\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Statement: {{item.response}}\"\n }\n ],\n \"passing_labels\": [\"positive\"],\n \"labels\": [\"positive\", \"neutral\", \"negative\"],\n \"name\": \"Sentiment label grader\"\n}\n" + } }, - "AzureChatDataSourceModelIdVectorizationSource": { + "OpenAI.CreateEvalLogsDataSourceConfig": { "type": "object", "required": [ - "type", - "model_id" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "model_id" + "logs" ], - "description": "The type identifier, always 'model_id' for this vectorization source type." + "description": "The type of data source. Always `logs`.", + "x-stainless-const": true, + "default": "logs" }, - "model_id": { - "type": "string", - "description": "The embedding model build ID to use for vectorization." + "metadata": { + "type": "object", + "unevaluatedProperties": {}, + "description": "Metadata filters for the logs data source." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" - } - ], - "description": "Represents a vectorization source that makes service calls based on a search service model ID.\nThis source type is currently only supported by Elasticsearch." + "description": "A data source config which specifies the metadata property of your logs query.\nThis is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc.", + "title": "LogsDataSourceConfig", + "x-oaiMeta": { + "name": "The logs data source object for evals", + "group": "evals", + "example": "{\n \"type\": \"logs\",\n \"metadata\": {\n \"use_case\": \"customer_support_agent\"\n }\n}\n" + } }, - "AzureChatDataSourceSystemAssignedManagedIdentityAuthenticationOptions": { + "OpenAI.CreateEvalResponsesRunDataSource": { "type": "object", "required": [ - "type" + "type", + "source" ], "properties": { "type": { "type": "string", "enum": [ - "system_assigned_managed_identity" - ] + "responses" + ], + "description": "The type of run data source. Always `responses`.", + "default": "responses" + }, + "input_messages": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceInputMessagesTemplate" + }, + { + "$ref": "#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceInputMessagesItemReference" + } + ], + "description": "Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace." + }, + "sampling_params": { + "$ref": "#/components/schemas/AzureResponsesSamplingParams" + }, + "model": { + "type": "string", + "description": "The name of the model to use for generating completions (e.g. \"o3-mini\")." + }, + "source": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileContentSource" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileIdSource" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalResponsesSource" + } + ], + "description": "Determines what populates the `item` namespace in this run's data source." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" - } - ] - }, - "AzureChatDataSourceType": { - "type": "string", - "enum": [ - "azure_search", - "azure_cosmos_db", - "elasticsearch", - "pinecone", - "mongo_db" - ] + "description": "A ResponsesRunDataSource object describing a model sampling configuration.", + "title": "CreateEvalResponsesRunDataSource", + "x-oaiMeta": { + "name": "The completions data source object used to configure an individual run", + "group": "eval runs", + "example": "{\n \"name\": \"gpt-4o-mini-2024-07-18\",\n \"data_source\": {\n \"type\": \"responses\",\n \"input_messages\": {\n \"type\": \"item_reference\",\n \"item_reference\": \"item.input\"\n },\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \"source\": {\n \"type\": \"responses\",\n \"model\": \"gpt-4o-mini-2024-07-18\"\n }\n }\n}\n" + } }, - "AzureChatDataSourceUserAssignedManagedIdentityAuthenticationOptions": { + "OpenAI.CreateEvalResponsesRunDataSourceInputMessagesItemReference": { "type": "object", "required": [ "type", - "managed_identity_resource_id" + "item_reference" ], "properties": { "type": { "type": "string", "enum": [ - "user_assigned_managed_identity" + "item_reference" ] }, - "managed_identity_resource_id": { + "item_reference": { "type": "string" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" - } - ] + } }, - "AzureChatDataSourceUsernameAndPasswordAuthenticationOptions": { + "OpenAI.CreateEvalResponsesRunDataSourceInputMessagesTemplate": { "type": "object", "required": [ "type", - "username", - "password" + "template" ], "properties": { "type": { "type": "string", "enum": [ - "username_and_password" + "template" ] }, - "username": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" - } - ] - }, - "AzureChatDataSourceVectorizationSource": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSourceType" - } - ], - "description": "The differentiating identifier for the concrete vectorization source." - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "deployment_name": "#/components/schemas/AzureChatDataSourceDeploymentNameVectorizationSource", - "integrated": "#/components/schemas/AzureChatDataSourceIntegratedVectorizationSource", - "model_id": "#/components/schemas/AzureChatDataSourceModelIdVectorizationSource" - } - }, - "description": "A representation of a data vectorization source usable as an embedding resource with a data source." - }, - "AzureChatDataSourceVectorizationSourceType": { - "type": "string", - "enum": [ - "endpoint", - "deployment_name", - "model_id", - "integrated" - ] - }, - "AzureChatMessageContext": { - "type": "object", - "properties": { - "intent": { - "type": "string", - "description": "The detected intent from the chat history, which is used to carry conversation context between interactions" - }, - "citations": { + "template": { "type": "array", "items": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "The content of the citation." - }, - "title": { - "type": "string", - "description": "The title for the citation." - }, - "url": { - "type": "string", - "description": "The URL of the citation." - }, - "filepath": { - "type": "string", - "description": "The file path for the citation." - }, - "chunk_id": { - "type": "string", - "description": "The chunk ID for the citation." - }, - "rerank_score": { - "type": "number", - "format": "double", - "description": "The rerank score for the retrieval." - } - }, - "required": [ - "content" - ] - }, - "description": "The citations produced by the data retrieval." - }, - "all_retrieved_documents": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "The content of the citation." - }, - "title": { - "type": "string", - "description": "The title for the citation." - }, - "url": { - "type": "string", - "description": "The URL of the citation." - }, - "filepath": { - "type": "string", - "description": "The file path for the citation." - }, - "chunk_id": { - "type": "string", - "description": "The chunk ID for the citation." - }, - "rerank_score": { - "type": "number", - "format": "double", - "description": "The rerank score for the retrieval." - }, - "search_queries": { - "type": "array", - "items": { - "type": "string" + "anyOf": [ + { + "type": "object", + "properties": { + "role": { + "type": "string" + }, + "content": { + "type": "string" + } + }, + "required": [ + "role", + "content" + ] }, - "description": "The search queries executed to retrieve documents." - }, - "data_source_index": { - "type": "integer", - "format": "int32", - "description": "The index of the data source used for retrieval." - }, - "original_search_score": { - "type": "number", - "format": "double", - "description": "The original search score for the retrieval." - }, - "filter_reason": { - "type": "string", - "enum": [ - "score", - "rerank" - ], - "description": "If applicable, an indication of why the document was filtered." - } - }, - "required": [ - "content", - "search_queries", - "data_source_index" - ], - "description": "Summary information about documents retrieved by the data retrieval operation." + { + "$ref": "#/components/schemas/OpenAI.EvalItem" + } + ] + } } - }, - "description": "An additional property, added to chat completion response messages, produced by the Azure OpenAI service when using\nextension behavior. This includes intent and citation information from the On Your Data feature." + } }, - "AzureContentFilterBlocklistResult": { + "OpenAI.CreateEvalResponsesRunDataSourceSamplingParams": { "type": "object", - "required": [ - "filtered" - ], "properties": { - "filtered": { - "type": "boolean", - "description": "A value indicating whether any of the detailed blocklists resulted in a filtering action." + "reasoning_effort": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + } + ], + "description": "Controls the level of reasoning effort applied during generation." }, - "details": { + "temperature": { + "type": "number", + "description": "A higher temperature increases randomness in the outputs.", + "default": 1 + }, + "top_p": { + "type": "number", + "description": "An alternative to temperature for nucleus sampling; 1.0 includes all tokens.", + "default": 1 + }, + "seed": { + "type": "integer", + "description": "A seed value initializes the randomness during sampling.", + "default": 42 + }, + "tools": { "type": "array", "items": { - "type": "object", - "properties": { - "filtered": { - "type": "boolean", - "description": "A value indicating whether the blocklist produced a filtering action." - }, - "id": { - "type": "string", - "description": "The ID of the custom blocklist evaluated." - } - }, - "required": [ - "filtered", - "id" - ] - }, - "description": "The pairs of individual blocklist IDs and whether they resulted in a filtering action." + "$ref": "#/components/schemas/OpenAI.Tool" + } + }, + "text": { + "$ref": "#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceSamplingParamsText" } - }, - "description": "A collection of true/false filtering results for configured custom blocklists." + } }, - "AzureContentFilterCompletionTextSpan": { + "OpenAI.CreateEvalResponsesRunDataSourceSamplingParamsText": { + "type": "object", + "properties": { + "format": { + "$ref": "#/components/schemas/OpenAI.TextResponseFormatConfiguration" + } + } + }, + "OpenAI.CreateEvalRunRequest": { "type": "object", "required": [ - "completion_start_offset", - "completion_end_offset" + "data_source" ], "properties": { - "completion_start_offset": { - "type": "integer", - "format": "int32", - "description": "Offset of the UTF32 code point which begins the span." + "name": { + "type": "string", + "description": "The name of the run." }, - "completion_end_offset": { - "type": "integer", - "format": "int32", - "description": "Offset of the first UTF32 code point which is excluded from the span. This field is always equal to completion_start_offset for empty spans. This field is always larger than completion_start_offset for non-empty spans." + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "data_source": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalJsonlRunDataSource" + }, + { + "$ref": "#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSource" + }, + { + "$ref": "#/components/schemas/OpenAI.CreateEvalResponsesRunDataSource" + } + ], + "description": "Details about the run's data source." } }, - "description": "A representation of a span of completion text as used by Azure OpenAI content filter results." + "title": "CreateEvalRunRequest" }, - "AzureContentFilterCompletionTextSpanDetectionResult": { + "OpenAI.CreateEvalStoredCompletionsDataSourceConfig": { "type": "object", "required": [ - "filtered", - "detected", - "details" + "type" ], "properties": { - "filtered": { - "type": "boolean", - "description": "Whether the content detection resulted in a content filtering action." - }, - "detected": { - "type": "boolean", - "description": "Whether the labeled content category was detected in the content." + "type": { + "type": "string", + "enum": [ + "stored_completions" + ], + "description": "The type of data source. Always `stored_completions`.", + "x-stainless-const": true, + "default": "stored_completions" }, - "details": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AzureContentFilterCompletionTextSpan" - }, - "description": "Detailed information about the detected completion text spans." + "metadata": { + "type": "object", + "unevaluatedProperties": {}, + "description": "Metadata filters for the stored completions data source." } + }, + "description": "Deprecated in favor of LogsDataSourceConfig.", + "title": "StoredCompletionsDataSourceConfig", + "x-oaiMeta": { + "name": "The stored completions data source object for evals", + "group": "evals", + "example": "{\n \"type\": \"stored_completions\",\n \"metadata\": {\n \"use_case\": \"customer_support_agent\"\n }\n}\n" } }, - "AzureContentFilterCustomTopicResult": { + "OpenAI.CreateFileRequest": { "type": "object", - "required": [ - "filtered" - ], "properties": { - "filtered": { - "type": "boolean", - "description": "A value indicating whether any of the detailed topics resulted in a filtering action." + "file": { + "description": "The File object (not file name) to be uploaded.", + "x-oaiMeta": { + "exampleFilePath": "fine-tune.jsonl" + } }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "detected": { - "type": "boolean", - "description": "A value indicating whether the topic is detected." - }, - "id": { - "type": "string", - "description": "The ID of the custom topic evaluated." - } + "expires_after": { + "type": "object", + "properties": { + "seconds": { + "type": "integer", + "format": "int32" }, - "required": [ - "detected", - "id" - ] + "anchor": { + "$ref": "#/components/schemas/AzureFileExpiryAnchor" + } }, - "description": "The pairs of individual topic IDs and whether they are detected." + "required": [ + "seconds", + "anchor" + ] + }, + "purpose": { + "type": "string", + "enum": [ + "assistants", + "batch", + "fine-tune", + "evals" + ], + "description": "The intended purpose of the uploaded file. One of: - `assistants`: Used in the Assistants API - `batch`: Used in the Batch API - `fine-tune`: Used for fine-tuning - `evals`: Used for eval data sets" } }, - "description": "A collection of true/false filtering results for configured custom topics." + "required": [ + "file", + "expires_after", + "purpose" + ] }, - "AzureContentFilterDetectionResult": { + "OpenAI.CreateFineTuningCheckpointPermissionRequest": { "type": "object", "required": [ - "filtered", - "detected" + "project_ids" ], "properties": { - "filtered": { - "type": "boolean", - "description": "Whether the content detection resulted in a content filtering action." - }, - "detected": { - "type": "boolean", - "description": "Whether the labeled content category was detected in the content." + "project_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The project identifiers to grant access to." } - }, - "description": "A labeled content filter result item that indicates whether the content was detected and whether the content was\nfiltered." + } }, - "AzureContentFilterImagePromptResults": { + "OpenAI.CreateFineTuningJobRequest": { "type": "object", "required": [ - "jailbreak" + "model", + "training_file" ], "properties": { - "profanity": { + "model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "babbage-002", + "davinci-002", + "gpt-3.5-turbo", + "gpt-4o-mini" + ] + } + ], + "description": "The name of the model to fine-tune. You can select one of the\n [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned).", + "x-oaiTypeLabel": "string" + }, + "training_file": { + "type": "string", + "description": "The ID of an uploaded file that contains training data.\n\n See [upload file](https://platform.openai.com/docs/api-reference/files/create) for how to upload a file.\n\n Your dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose `fine-tune`.\n\n The contents of the file should differ depending on if the model uses the [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input), [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input) format, or if the fine-tuning method uses the [preference](https://platform.openai.com/docs/api-reference/fine-tuning/preference-input) format.\n\n See the [fine-tuning guide](https://platform.openai.com/docs/guides/model-optimization) for more details." + }, + "hyperparameters": { "allOf": [ { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequestHyperparameters" + } + ], + "description": "The hyperparameters used for the fine-tuning job.\n This value is now deprecated in favor of `method`, and should be passed in under the `method` parameter." + }, + "suffix": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "minLength": 1, + "maxLength": 64, + "description": "A string of up to 64 characters that will be added to your fine-tuned model name.\n\n For example, a `suffix` of \"custom-model-name\" would produce a model name like `ft:gpt-4o-mini:openai:custom-model-name:7p4lURel`." + }, + "validation_file": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } ], - "description": "A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the\ncontent." + "description": "The ID of an uploaded file that contains validation data.\n\n If you provide this file, the data is used to generate validation\n metrics periodically during fine-tuning. These metrics can be viewed in\n the fine-tuning results file.\n The same data should not be present in both train and validation files.\n\n Your dataset must be formatted as a JSONL file. You must upload your file with the purpose `fine-tune`.\n\n See the [fine-tuning guide](https://platform.openai.com/docs/guides/model-optimization) for more details." }, - "custom_blocklists": { - "allOf": [ + "integrations": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterBlocklistResult" + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegrations" + } + }, + { + "type": "null" } ], - "description": "A collection of binary filtering outcomes for configured custom blocklists." + "description": "A list of integrations to enable for your fine-tuning job." }, - "custom_topics": { - "allOf": [ + "seed": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterCustomTopicResult" + "type": "integer" + }, + { + "type": "null" } ], - "description": "A collection of binary filtering outcomes for configured custom topics." + "minimum": 0, + "maximum": 2147483647, + "description": "The seed controls the reproducibility of the job. Passing in the same seed and job parameters should produce the same results, but may differ in rare cases.\n If a seed is not specified, one will be generated for you." }, - "jailbreak": { - "allOf": [ + "method": { + "$ref": "#/components/schemas/OpenAI.FineTuneMethod" + }, + "metadata": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" } - ], - "description": "A detection result that describes user prompt injection attacks, where malicious users deliberately exploit\nsystem vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content\ngeneration or violations of system-imposed restrictions." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterImageResponseResults" + ] } - ], - "description": "A content filter result for an image generation operation's input request content." + } }, - "AzureContentFilterImageResponseResults": { + "OpenAI.CreateFineTuningJobRequestHyperparameters": { "type": "object", "properties": { - "sexual": { - "allOf": [ + "batch_size": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" - } - ], - "description": "A content filter category for language related to anatomical organs and genitals, romantic relationships, acts\nportrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an\nassault or a forced sexual violent act against one's will, prostitution, pornography, and abuse." - }, - "violence": { - "allOf": [ + "type": "string", + "enum": [ + "auto" + ] + }, { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + "type": "integer" } ], - "description": "A content filter category for language related to physical actions intended to hurt, injure, damage, or kill\nsomeone or something; describes weapons, guns and related entities, such as manufactures, associations,\nlegislation, and so on." + "default": "auto" }, - "hate": { - "allOf": [ + "learning_rate_multiplier": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "number" } - ], - "description": "A content filter category that can refer to any content that attacks or uses pejorative or discriminatory\nlanguage with reference to a person or identity group based on certain differentiating attributes of these groups\nincluding but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation,\nreligion, immigration status, ability status, personal appearance, and body size." + ] }, - "self_harm": { - "allOf": [ + "n_epochs": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "integer" } ], - "description": "A content filter category that describes language related to physical actions intended to purposely hurt, injure,\ndamage one's body or kill oneself." + "default": "auto" } - }, - "description": "A content filter result for an image generation operation's output response content." + } }, - "AzureContentFilterPersonallyIdentifiableInformationResult": { + "OpenAI.CreateFineTuningJobRequestIntegrations": { "type": "object", + "required": [ + "type", + "wandb" + ], "properties": { - "redacted_text": { + "type": { "type": "string", - "description": "The redacted text with PII information removed or masked." + "enum": [ + "wandb" + ], + "x-stainless-const": true }, - "sub_categories": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AzurePiiSubCategoryResult" - }, - "description": "Detailed results for individual PIIHarmSubCategory(s)." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + "wandb": { + "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegrationsWandb" } - ], - "description": "A content filter detection result for Personally Identifiable Information that includes harm extensions." + } }, - "AzureContentFilterResultForChoice": { + "OpenAI.CreateFineTuningJobRequestIntegrationsWandb": { "type": "object", + "required": [ + "project" + ], "properties": { - "sexual": { - "allOf": [ + "project": { + "type": "string" + }, + "name": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + "type": "string" + }, + { + "type": "null" } - ], - "description": "A content filter category for language related to anatomical organs and genitals, romantic relationships, acts\nportrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an\nassault or a forced sexual violent act against one's will, prostitution, pornography, and abuse." + ] }, - "hate": { - "allOf": [ + "entity": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + "type": "string" + }, + { + "type": "null" } - ], - "description": "A content filter category that can refer to any content that attacks or uses pejorative or discriminatory\nlanguage with reference to a person or identity group based on certain differentiating attributes of these groups\nincluding but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation,\nreligion, immigration status, ability status, personal appearance, and body size." + ] }, - "violence": { - "allOf": [ + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "OpenAI.CreateImageEditRequest": { + "type": "object", + "required": [ + "image", + "prompt" + ], + "properties": { + "image": { + "type": "object", + "description": "The image(s) to edit. Must be a supported image file or an array of images.\n\n For `gpt-image-1`, each image should be a `png`, `webp`, or `jpg` file less\n than 50MB. You can provide up to 16 images.\n\n For `dall-e-2`, you can only provide one image, and it should be a square\n `png` file less than 4MB.", + "x-oaiMeta": { + "exampleFilePath": "otter.png" + } + }, + "prompt": { + "type": "object", + "description": "A text description of the desired image(s). The maximum length is 1000 characters for `dall-e-2`, and 32000 characters for `gpt-image-1`." + }, + "mask": { + "type": "object", + "description": "An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where `image` should be edited. If there are multiple images provided, the mask will be applied on the first image. Must be a valid PNG file, less than 4MB, and have the same dimensions as `image`.", + "x-oaiMeta": { + "exampleFilePath": "mask.png" + } + }, + "background": { + "type": "object", + "description": "Allows to set transparency for the background of the generated image(s).\n This parameter is only supported for `gpt-image-1`. Must be one of\n `transparent`, `opaque` or `auto` (default value). When `auto` is used, the\n model will automatically determine the best background for the image.\n\n If `transparent`, the output format needs to support transparency, so it\n should be set to either `png` (default value) or `webp`." + }, + "model": { + "type": "string", + "description": "The model to use for image generation. Only `dall-e-2` and `gpt-image-1` are supported. Defaults to `dall-e-2` unless a parameter specific to `gpt-image-1` is used.", + "x-oaiTypeLabel": "string" + }, + "n": { + "type": "object", + "description": "The number of images to generate. Must be between 1 and 10." + }, + "size": { + "type": "object", + "description": "The size of the generated images. Must be one of `1024x1024`, `1536x1024` (landscape), `1024x1536` (portrait), or `auto` (default value) for `gpt-image-1`, and one of `256x256`, `512x512`, or `1024x1024` for `dall-e-2`." + }, + "response_format": { + "type": "object", + "description": "The format in which the generated images are returned. Must be one of `url` or `b64_json`. URLs are only valid for 60 minutes after the image has been generated. This parameter is only supported for `dall-e-2`, as `gpt-image-1` will always return base64-encoded images." + }, + "output_format": { + "type": "object", + "description": "The format in which the generated images are returned. This parameter is\n only supported for `gpt-image-1`. Must be one of `png`, `jpeg`, or `webp`.\n The default value is `png`." + }, + "output_compression": { + "type": "object", + "description": "The compression level (0-100%) for the generated images. This parameter\n is only supported for `gpt-image-1` with the `webp` or `jpeg` output\n formats, and defaults to 100." + }, + "user": { + "type": "object", + "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids)." + }, + "input_fidelity": { + "type": "object" + }, + "stream": { + "type": "object", + "description": "Edit the image in streaming mode. Defaults to `false`. See the\n [Image generation guide](https://platform.openai.com/docs/guides/image-generation) for more information." + }, + "partial_images": { + "type": "object" + }, + "quality": { + "type": "object", + "description": "The quality of the image that will be generated. `high`, `medium` and `low` are only supported for `gpt-image-1`. `dall-e-2` only supports `standard` quality. Defaults to `auto`." + } + } + }, + "OpenAI.CreateImageRequest": { + "type": "object", + "required": [ + "prompt" + ], + "properties": { + "prompt": { + "type": "string", + "description": "A text description of the desired image(s). The maximum length is 32000 characters for `gpt-image-1`, 1000 characters for `dall-e-2` and 4000 characters for `dall-e-3`." + }, + "model": { + "type": "string", + "description": "The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or `gpt-image-1`. Defaults to `dall-e-2` unless a parameter specific to `gpt-image-1` is used.", + "x-oaiTypeLabel": "string" + }, + "n": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + "type": "integer" + }, + { + "type": "null" } ], - "description": "A content filter category for language related to physical actions intended to hurt, injure, damage, or kill\nsomeone or something; describes weapons, guns and related entities, such as manufactures, associations,\nlegislation, and so on." + "minimum": 1, + "maximum": 10, + "description": "The number of images to generate. Must be between 1 and 10. For `dall-e-3`, only `n=1` is supported.", + "default": 1 }, - "self_harm": { - "allOf": [ + "quality": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + "type": "string", + "enum": [ + "standard", + "hd", + "low", + "medium", + "high", + "auto" + ] + }, + { + "type": "null" } ], - "description": "A content filter category that describes language related to physical actions intended to purposely hurt, injure,\ndamage one's body or kill oneself." + "description": "The quality of the image that will be generated.\n\n - `auto` (default value) will automatically select the best quality for the given model.\n - `high`, `medium` and `low` are supported for `gpt-image-1`.\n - `hd` and `standard` are supported for `dall-e-3`.\n - `standard` is the only option for `dall-e-2`.", + "default": "auto" }, - "profanity": { - "allOf": [ + "response_format": { + "anyOf": [ + { + "type": "string", + "enum": [ + "url", + "b64_json" + ] + }, { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + "type": "null" } ], - "description": "A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the\ncontent." + "description": "The format in which generated images with `dall-e-2` and `dall-e-3` are returned. Must be one of `url` or `b64_json`. URLs are only valid for 60 minutes after the image has been generated. This parameter isn't supported for `gpt-image-1` which will always return base64-encoded images.", + "default": "url" }, - "custom_blocklists": { - "allOf": [ + "output_format": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterBlocklistResult" + "type": "string", + "enum": [ + "png", + "jpeg", + "webp" + ] + }, + { + "type": "null" } ], - "description": "A collection of binary filtering outcomes for configured custom blocklists." + "description": "The format in which the generated images are returned. This parameter is only supported for `gpt-image-1`. Must be one of `png`, `jpeg`, or `webp`.", + "default": "png" }, - "custom_topics": { - "allOf": [ + "output_compression": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterCustomTopicResult" + "type": "integer" + }, + { + "type": "null" } ], - "description": "A collection of binary filtering outcomes for configured custom topics." + "description": "The compression level (0-100%) for the generated images. This parameter is only supported for `gpt-image-1` with the `webp` or `jpeg` output formats, and defaults to 100.", + "default": 100 }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "description": "A distinct, machine-readable code associated with the error." + "stream": { + "anyOf": [ + { + "type": "boolean" }, - "message": { - "type": "string", - "description": "A human-readable message associated with the error." + { + "type": "null" } - }, - "required": [ - "code", - "message" ], - "description": "If present, details about an error that prevented content filtering from completing its evaluation." + "description": "Generate the image in streaming mode. Defaults to `false`. See the\n [Image generation guide](https://platform.openai.com/docs/guides/image-generation) for more information.\n This parameter is only supported for `gpt-image-1`." }, - "protected_material_text": { - "allOf": [ + "partial_images": { + "$ref": "#/components/schemas/OpenAI.PartialImages" + }, + "size": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + "type": "string", + "enum": [ + "auto", + "1024x1024", + "1536x1024", + "1024x1536", + "256x256", + "512x512", + "1792x1024", + "1024x1792" + ] + }, + { + "type": "null" } ], - "description": "A detection result that describes a match against text protected under copyright or other status." + "description": "The size of the generated images. Must be one of `1024x1024`, `1536x1024` (landscape), `1024x1536` (portrait), or `auto` (default value) for `gpt-image-1`, one of `256x256`, `512x512`, or `1024x1024` for `dall-e-2`, and one of `1024x1024`, `1792x1024`, or `1024x1792` for `dall-e-3`.", + "default": "auto" }, - "protected_material_code": { - "type": "object", - "properties": { - "filtered": { - "type": "boolean", - "description": "Whether the content detection resulted in a content filtering action." - }, - "detected": { - "type": "boolean", - "description": "Whether the labeled content category was detected in the content." + "moderation": { + "anyOf": [ + { + "type": "string", + "enum": [ + "low", + "auto" + ] }, - "citation": { - "type": "object", - "properties": { - "license": { - "type": "string", - "description": "The name or identifier of the license associated with the detection." - }, - "URL": { - "type": "string", - "format": "uri", - "description": "The URL associated with the license." - } - }, - "description": "If available, the citation details describing the associated license and its location." + { + "type": "null" } - }, - "required": [ - "filtered", - "detected" ], - "description": "A detection result that describes a match against licensed code or other protected source material." + "description": "Control the content-moderation level for images generated by `gpt-image-1`. Must be either `low` for less restrictive filtering or `auto` (default value).", + "default": "auto" }, - "ungrounded_material": { - "$ref": "#/components/schemas/AzureContentFilterCompletionTextSpanDetectionResult" + "background": { + "anyOf": [ + { + "type": "string", + "enum": [ + "transparent", + "opaque", + "auto" + ] + }, + { + "type": "null" + } + ], + "description": "Allows to set transparency for the background of the generated image(s).\n This parameter is only supported for `gpt-image-1`. Must be one of\n `transparent`, `opaque` or `auto` (default value). When `auto` is used, the\n model will automatically determine the best background for the image.\n\n If `transparent`, the output format needs to support transparency, so it\n should be set to either `png` (default value) or `webp`.", + "default": "auto" }, - "personally_identifiable_information": { - "allOf": [ + "style": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterPersonallyIdentifiableInformationResult" + "type": "string", + "enum": [ + "vivid", + "natural" + ] + }, + { + "type": "null" } ], - "description": "A detection result that describes matches against Personal Identifiable Information with configurable subcategories." + "description": "The style of the generated images. This parameter is only supported for `dall-e-3`. Must be one of `vivid` or `natural`. Vivid causes the model to lean towards generating hyper-real and dramatic images. Natural causes the model to produce more natural, less hyper-real looking images.", + "default": "vivid" + }, + "user": { + "type": "string", + "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids)." } - }, - "description": "A content filter result for a single response item produced by a generative AI system." + } }, - "AzureContentFilterResultForPrompt": { + "OpenAI.CreateImageVariationRequest": { "type": "object", + "required": [ + "image" + ], "properties": { - "prompt_index": { - "type": "integer", - "format": "int32", - "description": "The index of the input prompt associated with the accompanying content filter result categories." + "image": { + "type": "object", + "description": "The image to use as the basis for the variation(s). Must be a valid PNG file, less than 4MB, and square.", + "x-oaiMeta": { + "exampleFilePath": "otter.png" + } }, - "content_filter_results": { + "model": { + "type": "string", + "description": "The model to use for image generation. Only `dall-e-2` is supported at this time.", + "x-oaiTypeLabel": "string" + }, + "n": { "type": "object", - "properties": { - "sexual": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" - } - ], - "description": "A content filter category for language related to anatomical organs and genitals, romantic relationships, acts\nportrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an\nassault or a forced sexual violent act against one's will, prostitution, pornography, and abuse." - }, - "hate": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" - } - ], - "description": "A content filter category that can refer to any content that attacks or uses pejorative or discriminatory\nlanguage with reference to a person or identity group based on certain differentiating attributes of these groups\nincluding but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation,\nreligion, immigration status, ability status, personal appearance, and body size." - }, - "violence": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" - } - ], - "description": "A content filter category for language related to physical actions intended to hurt, injure, damage, or kill\nsomeone or something; describes weapons, guns and related entities, such as manufactures, associations,\nlegislation, and so on." - }, - "self_harm": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" - } - ], - "description": "A content filter category that describes language related to physical actions intended to purposely hurt, injure,\ndamage one's body or kill oneself." - }, - "profanity": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" - } - ], - "description": "A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the\ncontent." - }, - "custom_blocklists": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterBlocklistResult" - } - ], - "description": "A collection of binary filtering outcomes for configured custom blocklists." - }, - "custom_topics": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterCustomTopicResult" - } - ], - "description": "A collection of binary filtering outcomes for configured custom topics." - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "description": "A distinct, machine-readable code associated with the error." - }, - "message": { - "type": "string", - "description": "A human-readable message associated with the error." - } - }, - "required": [ - "code", - "message" - ], - "description": "If present, details about an error that prevented content filtering from completing its evaluation." - }, - "jailbreak": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" - } - ], - "description": "A detection result that describes user prompt injection attacks, where malicious users deliberately exploit\nsystem vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content\ngeneration or violations of system-imposed restrictions." - }, - "indirect_attack": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" - } - ], - "description": "A detection result that describes attacks on systems powered by Generative AI models that can happen every time\nan application processes information that wasn’t directly authored by either the developer of the application or\nthe user." - } - }, - "required": [ - "jailbreak", - "indirect_attack" - ], - "description": "The content filter category details for the result." + "description": "The number of images to generate. Must be between 1 and 10." + }, + "response_format": { + "type": "object", + "description": "The format in which the generated images are returned. Must be one of `url` or `b64_json`. URLs are only valid for 60 minutes after the image has been generated." + }, + "size": { + "type": "object", + "description": "The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`." + }, + "user": { + "type": "object", + "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids)." } - }, - "description": "A content filter result associated with a single input prompt item into a generative AI system." + } }, - "AzureContentFilterSeverityResult": { + "OpenAI.CreateMessageRequest": { "type": "object", "required": [ - "filtered", - "severity" + "role", + "content" ], "properties": { - "filtered": { - "type": "boolean", - "description": "Whether the content severity resulted in a content filtering action." - }, - "severity": { + "role": { "type": "string", "enum": [ - "safe", - "low", - "medium", - "high" + "user", + "assistant" ], - "description": "The labeled severity of the content." + "description": "The role of the entity that is creating the message. Allowed values include:\n - `user`: Indicates the message is sent by an actual user and should be used in most cases to represent user-generated messages.\n - `assistant`: Indicates the message is generated by the assistant. Use this value to insert messages from the assistant into the conversation." + }, + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.MessageContentImageFileObject" + }, + { + "$ref": "#/components/schemas/OpenAI.MessageContentImageUrlObject" + }, + { + "$ref": "#/components/schemas/OpenAI.MessageRequestContentTextObject" + } + ] + } + } + ] + }, + "attachments": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateMessageRequestAttachments" + } + }, + { + "type": "null" + } + ] + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] } - }, - "description": "A labeled content filter result item that indicates whether the content was filtered and what the qualitative\nseverity level of the content was, as evaluated against content filter configuration for the category." + } }, - "AzureCosmosDBChatDataSource": { + "OpenAI.CreateMessageRequestAttachments": { "type": "object", - "required": [ - "type", - "parameters" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "azure_cosmos_db" + "file_id": { + "type": "string" + }, + "tools": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.AssistantToolsCode" + }, + { + "$ref": "#/components/schemas/OpenAI.AssistantToolsFileSearchTypeOnly" + } + ] + } + } + } + }, + "OpenAI.CreateResponse": { + "type": "object", + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "top_logprobs": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } ], - "description": "The discriminated type identifier, which is always 'azure_cosmos_db'." + "default": 1 }, - "parameters": { - "type": "object", - "properties": { - "top_n_documents": { - "type": "integer", - "format": "int32", - "description": "The configured number of documents to feature in the query." + "top_p": { + "anyOf": [ + { + "type": "number" }, - "in_scope": { - "type": "boolean", - "description": "Whether queries should be restricted to use of the indexed data." + { + "type": "null" + } + ], + "default": 1 + }, + "user": { + "type": "string", + "description": "This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations.\n A stable identifier for your end-users.\n Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "safety_identifier": { + "type": "string", + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies.\n The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "prompt_cache_key": { + "type": "string", + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "anyOf": [ + { + "type": "string", + "enum": [ + "in-memory", + "24h" + ] }, - "strictness": { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 5, - "description": "The configured strictness of the search relevance filtering.\nHigher strictness will increase precision but lower recall of the answer." + { + "type": "null" + } + ] + }, + "previous_response_id": { + "anyOf": [ + { + "type": "string" }, - "max_search_queries": { - "type": "integer", - "format": "int32", - "description": "The maximum number of rewritten queries that should be sent to the search provider for a single user message.\nBy default, the system will make an automatic determination." + { + "type": "null" + } + ] + }, + "model": { + "type": "string", + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\n to browse and compare available models." + }, + "reasoning": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Reasoning" }, - "allow_partial_result": { - "type": "boolean", - "description": "If set to true, the system will allow partial search results to be used and the request will fail if all\npartial queries fail. If not specified or specified as false, the request will fail if any search query fails.", - "default": false + { + "type": "null" + } + ] + }, + "background": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "max_tool_calls": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "text": { + "$ref": "#/components/schemas/OpenAI.ResponseTextParam" + }, + "tools": { + "$ref": "#/components/schemas/OpenAI.ToolsArray", + "description": "An array of tools the model may call while generating a response. You\ncan specify which tool to use by setting the `tool_choice` parameter.\n\nThe two categories of tools you can provide the model are:\n\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\n model's capabilities, like file search.\n- **Function calls (custom tools)**: Functions that are defined by you,\n enabling the model to call your own code." + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" + }, + "truncation": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "disabled" + ] }, - "include_contexts": { + { + "type": "null" + } + ], + "default": "disabled" + }, + "input": { + "$ref": "#/components/schemas/OpenAI.InputParam" + }, + "include": { + "anyOf": [ + { "type": "array", "items": { - "type": "string", - "enum": [ - "citations", - "intent", - "all_retrieved_documents" - ] - }, - "maxItems": 3, - "description": "The output context properties to include on the response.\nBy default, citations and intent will be requested.", - "default": [ - "citations", - "intent" - ] + "$ref": "#/components/schemas/OpenAI.IncludeEnum" + } }, - "container_name": { - "type": "string" + { + "type": "null" + } + ] + }, + "parallel_tool_calls": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": true + }, + "store": { + "anyOf": [ + { + "type": "boolean" }, - "database_name": { + { + "type": "null" + } + ], + "default": true + }, + "instructions": { + "anyOf": [ + { "type": "string" }, - "embedding_dependency": { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" + { + "type": "null" + } + ] + }, + "stream": { + "anyOf": [ + { + "type": "boolean" }, - "index_name": { - "type": "string" + { + "type": "null" + } + ] + }, + "stream_options": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamOptions" }, - "authentication": { - "$ref": "#/components/schemas/AzureChatDataSourceConnectionStringAuthenticationOptions" + { + "type": "null" + } + ] + }, + "conversation": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationParam" }, - "fields_mapping": { - "type": "object", - "properties": { - "content_fields": { - "type": "array", - "items": { - "type": "string" - } - }, - "vector_fields": { - "type": "array", - "items": { - "type": "string" - } - }, - "title_field": { - "type": "string" - }, - "url_field": { - "type": "string" - }, - "filepath_field": { - "type": "string" - }, - "content_fields_separator": { - "type": "string" - } - }, - "required": [ - "content_fields", - "vector_fields" - ] + { + "type": "null" } - }, - "required": [ - "container_name", - "database_name", - "embedding_dependency", - "index_name", - "authentication", - "fields_mapping" - ], - "description": "The parameter information to control the use of the Azure CosmosDB data source." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSource" + ] } - ], - "description": "Represents a data source configuration that will use an Azure CosmosDB resource." + } }, - "AzureCreateChatCompletionRequest": { + "OpenAI.CreateRunRequest": { "type": "object", "required": [ - "messages", - "model" + "assistant_id" ], "properties": { - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" + "assistant_id": { + "type": "string", + "description": "The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) to use to execute this run." + }, + "model": { + "type": "string", + "description": "The ID of the [Model](https://platform.openai.com/docs/api-reference/models) to be used to execute this run. If a value is provided here, it will override the model associated with the assistant. If not, the model associated with the assistant will be used.", + "x-oaiTypeLabel": "string" + }, + "reasoning_effort": { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + }, + "instructions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Overrides the [instructions](https://platform.openai.com/docs/api-reference/assistants/createAssistant) of the assistant. This is useful for modifying the behavior on a per-run basis." + }, + "additional_instructions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Appends additional instructions at the end of the instructions for the run. This is useful for modifying the behavior on a per-run basis without overriding other instructions." + }, + "additional_messages": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateMessageRequest" + } + }, + { + "type": "null" + } + ], + "description": "Adds additional messages to the thread before creating the run." + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.AssistantTool" }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "maxItems": 20, + "description": "Override the tools the assistant can use for this run. This is useful for modifying the behavior on a per-run basis." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] }, "temperature": { - "type": "number", - "format": "float", - "nullable": true, + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], "minimum": 0, "maximum": 2, - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.\nWe generally recommend altering this or `top_p` but not both.", + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.", "default": 1 }, "top_p": { - "type": "number", - "format": "float", - "nullable": true, + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], "minimum": 0, "maximum": 1, - "description": "An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability\nmass. So 0.1 means only the tokens comprising the top 10% probability mass\nare considered.\n\nWe generally recommend altering this or `temperature` but not both.", + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\n We generally recommend altering this or temperature but not both.", "default": 1 }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, which can help to\nmonitor and detect abuse." - }, - "top_logprobs": { - "type": "integer", - "format": "int32", - "minimum": 0, - "maximum": 20, - "description": "An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability." - }, - "messages": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" - }, - "minItems": 1, - "description": "A list of messages comprising the conversation so far. Depending on the\nmodel you use, different message types (modalities) are supported,\nlike text, images, and audio." - }, - "modalities": { - "type": "object", - "allOf": [ + "stream": { + "anyOf": [ + { + "type": "boolean" + }, { - "$ref": "#/components/schemas/ResponseModalities" + "type": "null" } ], - "nullable": true + "description": "If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message." }, - "reasoning_effort": { - "allOf": [ + "max_prompt_tokens": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + "type": "integer" + }, + { + "type": "null" } ], - "nullable": true, - "default": "medium" + "minimum": 256, + "description": "The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info." }, "max_completion_tokens": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An upper bound for the number of tokens that can be generated for a\ncompletion, including visible output tokens and reasoning tokens." + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 256, + "description": "The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info." }, - "frequency_penalty": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": -2, - "maximum": 2, - "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on\ntheir existing frequency in the text so far, decreasing the model's\nlikelihood to repeat the same line verbatim.", - "default": 0 + "truncation_strategy": { + "$ref": "#/components/schemas/OpenAI.TruncationObject" }, - "presence_penalty": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": -2, - "maximum": 2, - "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on\nwhether they appear in the text so far, increasing the model's likelihood\nto talk about new topics.", - "default": 0 + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.AssistantsApiToolChoiceOption" + }, + "parallel_tool_calls": { + "$ref": "#/components/schemas/OpenAI.ParallelToolCalls" }, "response_format": { - "allOf": [ + "$ref": "#/components/schemas/OpenAI.AssistantsApiResponseFormatOption" + } + } + }, + "OpenAI.CreateThreadAndRunRequest": { + "type": "object", + "required": [ + "assistant_id" + ], + "properties": { + "assistant_id": { + "type": "string", + "description": "The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) to use to execute this run." + }, + "thread": { + "$ref": "#/components/schemas/OpenAI.CreateThreadRequest" + }, + "model": { + "type": "string", + "description": "The ID of the [Model](https://platform.openai.com/docs/api-reference/models) to be used to execute this run. If a value is provided here, it will override the model associated with the assistant. If not, the model associated with the assistant will be used.", + "x-oaiTypeLabel": "string" + }, + "instructions": { + "anyOf": [ + { + "type": "string" + }, { - "$ref": "#/components/schemas/OpenAI.ResponseFormat" + "type": "null" } ], - "description": "An object specifying the format that the model must output.\n\nSetting to `{ \"type\": \"json_schema\", \"json_schema\": {...} }` enables\nStructured Outputs which ensures the model will match your supplied JSON\nschema.\n\nSetting to `{ \"type\": \"json_object\" }` enables JSON mode, which ensures\nthe message the model generates is valid JSON.\n\n**Important:** when using JSON mode, you **must** also instruct the model\nto produce JSON yourself via a system or user message. Without this, the\nmodel may generate an unending stream of whitespace until the generation\nreaches the token limit, resulting in a long-running and seemingly \"stuck\"\nrequest. Also note that the message content may be partially cut off if\n`finish_reason=\"length\"`, which indicates the generation exceeded\n`max_tokens` or the conversation exceeded the max context length." + "description": "Override the default system message of the assistant. This is useful for modifying the behavior on a per-run basis." }, - "audio": { - "type": "object", - "properties": { - "voice": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.VoiceIdsShared" - } - ], - "description": "The voice the model uses to respond. Supported voices are\n`alloy`, `ash`, `ballad`, `coral`, `echo`, `fable`, `nova`, `onyx`, `sage`, and `shimmer`." + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.AssistantTool" + }, + "maxItems": 20, + "description": "Override the tools the assistant can use for this run. This is useful for modifying the behavior on a per-run basis." + }, + "tool_resources": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateThreadAndRunRequestToolResources" }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ], - "description": "Specifies the output audio format. Must be one of `wav`, `mp3`, `flac`,\n`opus`, or `pcm16`." + { + "type": "null" } - }, - "required": [ - "voice", - "format" ], - "nullable": true, - "description": "Parameters for audio output. Required when audio output is requested with\n`modalities: [\"audio\"]`." - }, - "store": { - "type": "boolean", - "nullable": true, - "description": "Whether or not to store the output of this chat completion request for\nuse in model distillation or evals products.", - "default": false + "description": "A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs." }, - "stream": { - "type": "boolean", - "nullable": true, - "description": "If set to true, the model response data will be streamed to the client\nas it is generated using server-sent events.", - "default": false + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] }, - "stop": { - "allOf": [ + "temperature": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.StopConfiguration" + "type": "number" + }, + { + "type": "null" } ], - "nullable": true, - "default": null - }, - "logit_bias": { - "type": "object", - "additionalProperties": { - "type": "integer", - "format": "int32" - }, - "nullable": true, - "description": "Modify the likelihood of specified tokens appearing in the completion.\n\nAccepts a JSON object that maps tokens (specified by their token ID in the\ntokenizer) to an associated bias value from -100 to 100. Mathematically,\nthe bias is added to the logits generated by the model prior to sampling.\nThe exact effect will vary per model, but values between -1 and 1 should\ndecrease or increase likelihood of selection; values like -100 or 100\nshould result in a ban or exclusive selection of the relevant token.", - "x-oaiTypeLabel": "map", - "default": null - }, - "logprobs": { - "type": "boolean", - "nullable": true, - "description": "Whether to return log probabilities of the output tokens or not. If true,\nreturns the log probabilities of each output token returned in the\n`content` of `message`.", - "default": false - }, - "max_tokens": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "The maximum number of tokens that can be generated in the chat completion.\nThis value can be used to control costs for text generated via API.\n\nThis value is now deprecated in favor of `max_completion_tokens`, and is\nnot compatible with o1 series models.", - "deprecated": true - }, - "n": { - "type": "integer", - "format": "int32", - "nullable": true, - "minimum": 1, - "maximum": 128, - "description": "How many chat completion choices to generate for each input message. Note that you will be charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to minimize costs.", + "minimum": 0, + "maximum": 2, + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.", "default": 1 }, - "prediction": { - "type": "object", - "allOf": [ + "top_p": { + "anyOf": [ + { + "type": "number" + }, { - "$ref": "#/components/schemas/OpenAI.ChatOutputPrediction" + "type": "null" } ], - "nullable": true, - "description": "Configuration for a predicted output, which can greatly improve\nresponse times when large parts of the model response are known\nahead of time. This is most common when you are regenerating a\nfile with only minor changes to most of the content." - }, - "seed": { - "type": "integer", - "format": "int64", - "nullable": true, - "minimum": -9223372036854776000, - "maximum": 9223372036854776000, - "description": "This feature is in Beta.\nIf specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result.\nDeterminism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend." + "minimum": 0, + "maximum": 1, + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\n We generally recommend altering this or temperature but not both.", + "default": 1 }, - "stream_options": { - "type": "object", - "allOf": [ + "stream": { + "anyOf": [ + { + "type": "boolean" + }, { - "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamOptions" + "type": "null" } ], - "nullable": true, - "default": null - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionTool" - }, - "description": "A list of tools the model may call. Currently, only functions are supported as a tool. Use this to provide a list of functions the model may generate JSON inputs for. A max of 128 functions are supported." + "description": "If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message." }, - "tool_choice": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionToolChoiceOption" - }, - "parallel_tool_calls": { - "allOf": [ + "max_prompt_tokens": { + "anyOf": [ + { + "type": "integer" + }, { - "$ref": "#/components/schemas/OpenAI.ParallelToolCalls" + "type": "null" } ], - "default": true + "minimum": 256, + "description": "The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info." }, - "function_call": { + "max_completion_tokens": { "anyOf": [ { - "type": "string", - "enum": [ - "none", - "auto" - ] + "type": "integer" }, { - "$ref": "#/components/schemas/OpenAI.ChatCompletionFunctionCallOption" + "type": "null" } ], - "description": "Deprecated in favor of `tool_choice`.\n\nControls which (if any) function is called by the model.\n\n`none` means the model will not call a function and instead generates a\nmessage.\n\n`auto` means the model can pick between generating a message or calling a\nfunction.\n\nSpecifying a particular function via `{\"name\": \"my_function\"}` forces the\nmodel to call that function.\n\n`none` is the default when no functions are present. `auto` is the default\nif functions are present.", - "deprecated": true + "minimum": 256, + "description": "The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info." }, - "functions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionFunctions" - }, - "minItems": 1, - "maxItems": 128, - "description": "Deprecated in favor of `tools`.\n\nA list of functions the model may generate JSON inputs for.", - "deprecated": true + "truncation_strategy": { + "$ref": "#/components/schemas/OpenAI.TruncationObject" }, - "model": { - "type": "string", - "description": "The model deployment identifier to use for the chat completion request." + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.AssistantsApiToolChoiceOption" }, - "data_sources": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AzureChatDataSource" - }, - "description": "The data sources to use for the On Your Data feature, exclusive to Azure OpenAI." + "parallel_tool_calls": { + "$ref": "#/components/schemas/OpenAI.ParallelToolCalls" }, - "user_security_context": { - "$ref": "#/components/schemas/AzureUserSecurityContext" + "response_format": { + "$ref": "#/components/schemas/OpenAI.AssistantsApiResponseFormatOption" } - }, - "description": "The extended request model for chat completions against the Azure OpenAI service.\nThis adds the ability to provide data sources for the On Your Data feature." + } }, - "AzureCreateChatCompletionResponse": { + "OpenAI.CreateThreadAndRunRequestToolResources": { "type": "object", - "required": [ - "id", - "created", - "model", - "object", - "choices" - ], "properties": { - "id": { - "type": "string", - "description": "A unique identifier for the chat completion." - }, - "created": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) of when the chat completion was created." - }, - "model": { - "type": "string", - "description": "The model used for the chat completion." - }, - "system_fingerprint": { - "type": "string", - "description": "This fingerprint represents the backend configuration that the model runs with.\n\nCan be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism." - }, - "object": { - "type": "string", - "enum": [ - "chat.completion" - ], - "description": "The object type, which is always `chat.completion`." - }, - "usage": { - "$ref": "#/components/schemas/OpenAI.CompletionUsage" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "finish_reason": { - "type": "string", - "enum": [ - "stop", - "length", - "tool_calls", - "content_filter", - "function_call" - ], - "description": "The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,\n`length` if the maximum number of tokens specified in the request was reached,\n`content_filter` if content was omitted due to a flag from our content filters,\n`tool_calls` if the model called a tool, or `function_call` (deprecated) if the model called a function." - }, - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the choice in the list of choices." - }, - "logprobs": { - "type": "object", - "properties": { - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" - }, - "nullable": true, - "description": "A list of message content tokens with log probability information.", - "readOnly": true - }, - "refusal": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" - }, - "nullable": true, - "description": "A list of message refusal tokens with log probability information.", - "readOnly": true - } - }, - "required": [ - "content", - "refusal" - ], - "nullable": true, - "description": "Log probability information for the choice." - }, - "content_filter_results": { - "$ref": "#/components/schemas/AzureContentFilterResultForChoice" - }, - "message": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatCompletionResponseMessage" - } - ], - "description": "The chat completion response message." - } - }, - "required": [ - "finish_reason", - "index", - "logprobs", - "message" - ] - } + "code_interpreter": { + "$ref": "#/components/schemas/OpenAI.CreateThreadAndRunRequestToolResourcesCodeInterpreter" }, - "prompt_filter_results": { + "file_search": { + "$ref": "#/components/schemas/OpenAI.CreateThreadAndRunRequestToolResourcesFileSearch" + } + } + }, + "OpenAI.CreateThreadAndRunRequestToolResourcesCodeInterpreter": { + "type": "object", + "properties": { + "file_ids": { "type": "array", "items": { - "type": "object", - "properties": { - "prompt_index": { - "type": "integer", - "format": "int32", - "description": "The index of the input prompt that this content filter result corresponds to." - }, - "content_filter_results": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterResultForPrompt" - } - ], - "description": "The content filter results associated with the indexed input prompt." - } - }, - "required": [ - "prompt_index", - "content_filter_results" - ] + "type": "string" }, - "description": "The Responsible AI content filter annotations associated with prompt inputs into chat completions." + "maxItems": 20, + "default": [] } - }, - "description": "The extended top-level chat completion response model for the Azure OpenAI service.\nThis model adds Responsible AI content filter annotations for prompt input." + } }, - "AzureCreateChatCompletionStreamResponse": { + "OpenAI.CreateThreadAndRunRequestToolResourcesFileSearch": { "type": "object", - "required": [ - "id", - "choices", - "created", - "model", - "object" - ], "properties": { - "id": { - "type": "string", - "description": "A unique identifier for the chat completion. Each chunk has the same ID." - }, - "choices": { + "vector_store_ids": { "type": "array", "items": { - "type": "object", - "properties": { - "delta": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamResponseDelta" - }, - "logprobs": { - "type": "object", - "properties": { - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" - }, - "nullable": true, - "description": "A list of message content tokens with log probability information.", - "readOnly": true - }, - "refusal": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" - }, - "nullable": true, - "description": "A list of message refusal tokens with log probability information.", - "readOnly": true - } - }, - "required": [ - "content", - "refusal" - ], - "nullable": true, - "description": "Log probability information for the choice." - }, - "finish_reason": { - "type": "string", - "enum": [ - "stop", - "length", - "tool_calls", - "content_filter", - "function_call" - ], - "nullable": true, - "description": "The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,\n`length` if the maximum number of tokens specified in the request was reached,\n`content_filter` if content was omitted due to a flag from our content filters,\n`tool_calls` if the model called a tool, or `function_call` (deprecated) if the model called a function." - }, - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the choice in the list of choices." - } - }, - "required": [ - "delta", - "finish_reason", - "index" - ] + "type": "string" }, - "description": "A list of chat completion choices. Can contain more than one elements if `n` is greater than 1. Can also be empty for the\nlast chunk if you set `stream_options: {\"include_usage\": true}`." - }, - "created": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) of when the chat completion was created. Each chunk has the same timestamp." - }, - "model": { - "type": "string", - "description": "The model to generate the completion." - }, - "system_fingerprint": { - "type": "string", - "description": "This fingerprint represents the backend configuration that the model runs with.\nCan be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism." - }, - "object": { - "type": "string", - "enum": [ - "chat.completion.chunk" - ], - "description": "The object type, which is always `chat.completion.chunk`." - }, - "usage": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.CompletionUsage" - } - ], - "nullable": true, - "description": "An optional field that will only be present when you set\n`stream_options: {\"include_usage\": true}` in your request. When present, it\ncontains a null value **except for the last chunk** which contains the\ntoken usage statistics for the entire request.\n\n**NOTE:** If the stream is interrupted or cancelled, you may not\nreceive the final usage chunk which contains the total token usage for\nthe request." - }, - "delta": { - "$ref": "#/components/schemas/AzureChatCompletionStreamResponseDelta" - }, - "content_filter_results": { - "$ref": "#/components/schemas/AzureContentFilterResultForChoice" + "maxItems": 1 } } }, - "AzureCreateEmbeddingRequest": { + "OpenAI.CreateThreadRequest": { "type": "object", - "required": [ - "model", - "input" - ], "properties": { - "model": { - "type": "string", - "description": "The model to use for the embedding request." + "messages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateMessageRequest" + }, + "description": "A list of [messages](https://platform.openai.com/docs/api-reference/messages) to start the thread with." }, - "input": { + "tool_resources": { "anyOf": [ { - "type": "string" + "$ref": "#/components/schemas/OpenAI.CreateThreadRequestToolResources" }, { - "type": "array", - "items": { - "type": "string" - } - }, + "type": "null" + } + ] + }, + "metadata": { + "anyOf": [ { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - } + "$ref": "#/components/schemas/OpenAI.Metadata" }, { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - } - } + "type": "null" } - ], - "description": "Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and any array must be 2048 dimensions or less. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens. In addition to the per-input token limit, all embedding models enforce a maximum of 300,000 tokens summed across all inputs in a single request." + ] + } + }, + "description": "Options to create a new thread. If no thread is provided when running a\nrequest, an empty thread will be created." + }, + "OpenAI.CreateThreadRequestToolResources": { + "type": "object", + "properties": { + "code_interpreter": { + "$ref": "#/components/schemas/OpenAI.CreateThreadRequestToolResourcesCodeInterpreter" }, - "encoding_format": { - "type": "string", - "enum": [ - "float", - "base64" - ], - "description": "The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/).", - "default": "float" + "file_search": { + "anyOf": [ + {}, + {} + ] + } + } + }, + "OpenAI.CreateThreadRequestToolResourcesCodeInterpreter": { + "type": "object", + "properties": { + "file_ids": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 20 + } + } + }, + "OpenAI.CreateVectorStoreFileBatchRequest": { + "type": "object", + "properties": { + "file_ids": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 500, + "description": "A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files. If `attributes` or `chunking_strategy` are provided, they will be applied to all files in the batch. Mutually exclusive with `files`." + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateVectorStoreFileRequest" + }, + "minItems": 1, + "maxItems": 500, + "description": "A list of objects that each include a `file_id` plus optional `attributes` or `chunking_strategy`. Use this when you need to override metadata for specific files. The global `attributes` or `chunking_strategy` will be ignored and must be specified for each file. Mutually exclusive with `file_ids`." }, - "dimensions": { - "type": "integer", - "format": "int32", - "minimum": 1, - "description": "The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models." + "chunking_strategy": { + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids)." + "attributes": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" + }, + { + "type": "null" + } + ] } } }, - "AzureCreateFileRequestMultiPart": { + "OpenAI.CreateVectorStoreFileRequest": { "type": "object", "required": [ - "file", - "expires_after", - "purpose" + "file_id" ], "properties": { - "file": { + "file_id": { "type": "string", - "format": "binary" + "description": "A [File](https://platform.openai.com/docs/api-reference/files) ID that the vector store should use. Useful for tools like `file_search` that can access files." }, - "expires_after": { - "type": "object", - "properties": { - "seconds": { - "type": "integer", - "format": "int32" + "chunking_strategy": { + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" + }, + "attributes": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" }, - "anchor": { - "$ref": "#/components/schemas/AzureFileExpiryAnchor" + { + "type": "null" } - }, - "required": [ - "seconds", - "anchor" ] - }, - "purpose": { - "type": "string", - "enum": [ - "assistants", - "batch", - "fine-tune", - "evals" - ], - "description": "The intended purpose of the uploaded file. One of: - `assistants`: Used in the Assistants API - `batch`: Used in the Batch API - `fine-tune`: Used for fine-tuning - `evals`: Used for eval data sets" } } }, - "AzureCreateImageRequest": { + "OpenAI.CreateVectorStoreRequest": { "type": "object", - "required": [ - "prompt", - "model" - ], "properties": { - "prompt": { - "type": "string", - "description": "A text description of the desired image(s). The maximum length is 32000 characters for `gpt-image-1`, 1000 characters for `dall-e-2` and 4000 characters for `dall-e-3`." - }, - "n": { - "type": "integer", - "format": "int32", - "nullable": true, - "minimum": 1, - "maximum": 10, - "description": "The number of images to generate. Must be between 1 and 10. For `dall-e-3`, only `n=1` is supported.", - "default": 1 + "file_ids": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 500, + "description": "A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files." }, - "quality": { + "name": { "type": "string", - "enum": [ - "standard", - "hd", - "low", - "medium", - "high", - "auto" - ], - "nullable": true, - "description": "The quality of the image that will be generated.\n\n- `auto` (default value) will automatically select the best quality for the given model.\n- `high`, `medium` and `low` are supported for `gpt-image-1`.\n- `hd` and `standard` are supported for `dall-e-3`.\n- `standard` is the only option for `dall-e-2`.", - "default": "auto" + "description": "The name of the vector store." }, - "response_format": { + "description": { "type": "string", - "enum": [ - "url", - "b64_json" - ], - "nullable": true, - "description": "The format in which generated images with `dall-e-2` and `dall-e-3` are returned. Must be one of `url` or `b64_json`. URLs are only valid for 60 minutes after the image has been generated. This parameter isn't supported for `gpt-image-1` which will always return base64-encoded images.", - "default": "url" + "description": "A description for the vector store. Can be used to describe the vector store's purpose." }, - "output_format": { - "type": "string", - "enum": [ - "png", - "jpeg", - "webp" - ], - "nullable": true, - "description": "The format in which the generated images are returned. This parameter is only supported for `gpt-image-1`. Must be one of `png`, `jpeg`, or `webp`.", - "default": "png" + "expires_after": { + "$ref": "#/components/schemas/OpenAI.VectorStoreExpirationAfter" }, - "output_compression": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "The compression level (0-100%) for the generated images. This parameter is only supported for `gpt-image-1` with the `webp` or `jpeg` output formats, and defaults to 100.", - "default": 100 + "chunking_strategy": { + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" }, - "size": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.CustomGrammarFormatParam": { + "type": "object", + "required": [ + "type", + "syntax", + "definition" + ], + "properties": { + "type": { "type": "string", "enum": [ - "auto", - "1024x1024", - "1536x1024", - "1024x1536", - "256x256", - "512x512", - "1792x1024", - "1024x1792" + "grammar" ], - "nullable": true, - "description": "The size of the generated images. Must be one of `1024x1024`, `1536x1024` (landscape), `1024x1536` (portrait), or `auto` (default value) for `gpt-image-1`, one of `256x256`, `512x512`, or `1024x1024` for `dall-e-2`, and one of `1024x1024`, `1792x1024`, or `1024x1792` for `dall-e-3`.", - "default": "auto" + "description": "Grammar format. Always `grammar`.", + "x-stainless-const": true, + "default": "grammar" }, - "moderation": { - "type": "string", - "enum": [ - "low", - "auto" + "syntax": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.GrammarSyntax1" + } ], - "nullable": true, - "description": "Control the content-moderation level for images generated by `gpt-image-1`. Must be either `low` for less restrictive filtering or `auto` (default value).", - "default": "auto" + "description": "The syntax of the grammar definition. One of `lark` or `regex`." }, - "background": { + "definition": { "type": "string", - "enum": [ - "transparent", - "opaque", - "auto" - ], - "nullable": true, - "description": "Allows to set transparency for the background of the generated image(s).\nThis parameter is only supported for `gpt-image-1`. Must be one of\n`transparent`, `opaque` or `auto` (default value). When `auto` is used, the\nmodel will automatically determine the best background for the image.\n\nIf `transparent`, the output format needs to support transparency, so it\nshould be set to either `png` (default value) or `webp`.", - "default": "auto" - }, - "style": { + "description": "The grammar definition." + } + }, + "description": "A grammar defined by the user.", + "title": "Grammar format" + }, + "OpenAI.CustomTextFormatParam": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { "type": "string", "enum": [ - "vivid", - "natural" + "text" ], - "nullable": true, - "description": "The style of the generated images. This parameter is only supported for `dall-e-3`. Must be one of `vivid` or `natural`. Vivid causes the model to lean towards generating hyper-real and dramatic images. Natural causes the model to produce more natural, less hyper-real looking images.", - "default": "vivid" - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids)." - }, - "model": { - "type": "string", - "description": "The model deployment to use for the image generation." + "description": "Unconstrained text format. Always `text`.", + "x-stainless-const": true, + "default": "text" } - } + }, + "description": "Unconstrained free-form text.", + "title": "Text format" }, - "AzureCreateResponse": { + "OpenAI.CustomToolChatCompletions": { "type": "object", "required": [ - "model" + "type", + "custom" ], "properties": { - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - }, - "temperature": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 2, - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.\nWe generally recommend altering this or `top_p` but not both.", - "default": 1 - }, - "top_p": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 1, - "description": "An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability\nmass. So 0.1 means only the tokens comprising the top 10% probability mass\nare considered.\n\nWe generally recommend altering this or `temperature` but not both.", - "default": 1 - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids)." - }, - "top_logprobs": { - "type": "integer", - "format": "int32", - "minimum": 0, - "maximum": 20, - "description": "An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability." - }, - "previous_response_id": { + "type": { "type": "string", - "nullable": true, - "description": "The unique ID of the previous response to the model. Use this to\ncreate multi-turn conversations. Learn more about\n[conversation state](/docs/guides/conversation-state)." + "enum": [ + "custom" + ], + "description": "The type of the custom tool. Always `custom`.", + "x-stainless-const": true }, - "reasoning": { - "type": "object", + "custom": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Reasoning" + "$ref": "#/components/schemas/OpenAI.CustomToolChatCompletionsCustom" } ], - "nullable": true - }, - "background": { - "type": "boolean", - "nullable": true, - "description": "Whether to run the model response in the background.\n[Learn more](/docs/guides/background).", - "default": false - }, - "max_output_tokens": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An upper bound for the number of tokens that can be generated for a response, including visible output tokens and [reasoning tokens](/docs/guides/reasoning)." - }, - "max_tool_calls": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored." - }, - "text": { - "type": "object", - "properties": { - "format": { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" - } - }, - "description": "Configuration options for a text response from the model. Can be plain\ntext or structured JSON data. Learn more:\n- [Text inputs and outputs](/docs/guides/text)\n- [Structured Outputs](/docs/guides/structured-outputs)" + "description": "Properties of the custom tool.", + "title": "Custom tool properties" + } + }, + "description": "A custom tool that processes input using a specified format.", + "title": "Custom tool" + }, + "OpenAI.CustomToolChatCompletionsCustom": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" }, - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Tool" - }, - "description": "An array of tools the model may call while generating a response. You \ncan specify which tool to use by setting the `tool_choice` parameter.\n\nThe two categories of tools you can provide the model are:\n\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\n model's capabilities, like file search.\n- **Function calls (custom tools)**: Functions that are defined by you,\n enabling the model to call your own code." + "description": { + "type": "string" }, - "tool_choice": { + "format": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceOptions" - }, - { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" - } - ], - "description": "How the model should select which tool (or tools) to use when generating\na response. See the `tools` parameter to see how to specify which tools\nthe model can call." - }, - "prompt": { - "type": "object", - "allOf": [ + "$ref": "#/components/schemas/OpenAI.CustomToolChatCompletionsCustomFormatText" + }, { - "$ref": "#/components/schemas/OpenAI.Prompt" + "$ref": "#/components/schemas/OpenAI.CustomToolChatCompletionsCustomFormatGrammar" } - ], - "nullable": true - }, - "truncation": { + ] + } + } + }, + "OpenAI.CustomToolChatCompletionsCustomFormatGrammar": { + "type": "object", + "required": [ + "type", + "grammar" + ], + "properties": { + "type": { "type": "string", "enum": [ - "auto", - "disabled" + "grammar" ], - "nullable": true, - "description": "The truncation strategy to use for the model response.\n- `auto`: If the context of this response and previous ones exceeds\n the model's context window size, the model will truncate the\n response to fit the context window by dropping input items in the\n middle of the conversation.\n- `disabled` (default): If a model response will exceed the context window\n size for a model, the request will fail with a 400 error.", - "default": "disabled" + "x-stainless-const": true }, - "input": { - "anyOf": [ - { - "type": "string" - }, + "grammar": { + "allOf": [ { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.ImplicitUserMessage" - }, - { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } - ] - } + "$ref": "#/components/schemas/OpenAI.CustomToolChatCompletionsCustomFormatGrammarGrammar" } ], - "description": "Text, image, or file inputs to the model, used to generate a response.\n\nLearn more:\n- [Text inputs and outputs](/docs/guides/text)\n- [Image inputs](/docs/guides/images)\n- [File inputs](/docs/guides/pdf-files)\n- [Conversation state](/docs/guides/conversation-state)\n- [Function calling](/docs/guides/function-calling)" - }, - "include": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Includable" - }, - "nullable": true, - "description": "Specify additional output data to include in the model response. Currently\nsupported values are:\n- `code_interpreter_call.outputs`: Includes the outputs of python code execution\n in code interpreter tool call items.\n- `computer_call_output.output.image_url`: Include image urls from the computer call output.\n- `file_search_call.results`: Include the search results of\n the file search tool call.\n- `message.input_image.image_url`: Include image urls from the input message.\n- `message.output_text.logprobs`: Include logprobs with assistant messages.\n- `reasoning.encrypted_content`: Includes an encrypted version of reasoning\n tokens in reasoning item outputs. This enables reasoning items to be used in\n multi-turn conversations when using the Responses API statelessly (like\n when the `store` parameter is set to `false`, or when an organization is\n enrolled in the zero data retention program)." - }, - "parallel_tool_calls": { - "type": "boolean", - "nullable": true, - "description": "Whether to allow the model to run tool calls in parallel.", - "default": true - }, - "store": { - "type": "boolean", - "nullable": true, - "description": "Whether to store the generated model response for later retrieval via\nAPI.", - "default": true - }, - "instructions": { - "type": "string", - "nullable": true, - "description": "A system (or developer) message inserted into the model's context.\n\nWhen using along with `previous_response_id`, the instructions from a previous\nresponse will not be carried over to the next response. This makes it simple\nto swap out system (or developer) messages in new responses." - }, - "stream": { - "type": "boolean", - "nullable": true, - "description": "If set to true, the model response data will be streamed to the client\nas it is generated using [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).\nSee the [Streaming section below](/docs/api-reference/responses-streaming)\nfor more information.", - "default": false + "title": "Grammar format" + } + } + }, + "OpenAI.CustomToolChatCompletionsCustomFormatGrammarGrammar": { + "type": "object", + "required": [ + "definition", + "syntax" + ], + "properties": { + "definition": { + "type": "string" }, - "model": { + "syntax": { "type": "string", - "description": "The model deployment to use for the creation of this response." + "enum": [ + "lark", + "regex" + ] } } }, - "AzureErrorResponse": { + "OpenAI.CustomToolChatCompletionsCustomFormatText": { "type": "object", + "required": [ + "type" + ], "properties": { - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The distinct, machine-generated identifier for the error." - }, - "message": { - "type": "string", - "description": "A human-readable message associated with the error." - }, - "param": { - "type": "string", - "description": "If applicable, the request input parameter associated with the error" - }, - "type": { - "type": "string", - "enum": [ - "error" - ], - "description": "The object type, always 'error.'" - }, - "inner_error": {} - }, - "description": "The error details." + "type": { + "type": "string", + "enum": [ + "text" + ], + "x-stainless-const": true } } }, - "AzureEvalAPICompletionsSamplingParams": { + "OpenAI.CustomToolParam": { "type": "object", + "required": [ + "type", + "name" + ], "properties": { - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionTool" - } + "type": { + "type": "string", + "enum": [ + "custom" + ], + "description": "The type of the custom tool. Always `custom`.", + "x-stainless-const": true, + "default": "custom" }, - "parallel_tool_calls": { - "type": "boolean" + "name": { + "type": "string", + "description": "The name of the custom tool, used to identify it in tool calls." }, - "response_format": { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" + "description": { + "type": "string", + "description": "Optional description of the custom tool, used to provide more context." + }, + "format": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CustomTextFormatParam" + }, + { + "$ref": "#/components/schemas/OpenAI.CustomGrammarFormatParam" + } + ], + "description": "The input format for the custom tool. Default is unconstrained text." } }, "allOf": [ { - "$ref": "#/components/schemas/AzureEvalAPIModelSamplingParams" + "$ref": "#/components/schemas/OpenAI.Tool" } - ] + ], + "description": "A custom tool that processes input using a specified format. Learn more about [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools)", + "title": "Custom tool" }, - "AzureEvalAPIModelSamplingParams": { + "OpenAI.DeleteFileResponse": { "type": "object", + "required": [ + "id", + "object", + "deleted" + ], "properties": { - "seed": { - "type": "integer", - "format": "int32", - "description": "A seed value to initialize the randomness during sampling." - }, - "temperature": { - "type": "number", - "format": "float", - "description": "A higher temperature increases randomness in the outputs." + "id": { + "type": "string" }, - "max_tokens": { - "type": "integer", - "format": "int32", - "description": "The maximum number of tokens in the generated output." + "object": { + "type": "string", + "enum": [ + "file" + ], + "x-stainless-const": true }, - "top_p": { - "type": "number", - "format": "float", - "description": "An alternative to temperature for nucleus sampling; 1.0 includes all tokens." + "deleted": { + "type": "boolean" + } + } + }, + "OpenAI.DeleteFineTuningCheckpointPermissionResponse": { + "type": "object", + "required": [ + "id", + "object", + "deleted" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the fine-tuned model checkpoint permission that was deleted." }, - "reasoning_effort": { + "object": { "type": "string", "enum": [ - "low", - "medium", - "high" + "checkpoint.permission" ], - "description": "Controls the level of reasoning effort applied during generation." + "description": "The object type, which is always \"checkpoint.permission\".", + "x-stainless-const": true + }, + "deleted": { + "type": "boolean", + "description": "Whether the fine-tuned model checkpoint permission was successfully deleted." } } }, - "AzureEvalAPIResponseSamplingParams": { + "OpenAI.DeleteMessageResponse": { "type": "object", + "required": [ + "id", + "deleted", + "object" + ], "properties": { - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Tool" - } + "id": { + "type": "string" }, - "parallel_tool_calls": { + "deleted": { "type": "boolean" }, - "response_format": { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureEvalAPIModelSamplingParams" + "object": { + "type": "string", + "enum": [ + "thread.message.deleted" + ], + "x-stainless-const": true } - ] + } }, - "AzureFileExpiryAnchor": { - "type": "string", - "enum": [ - "created_at" - ] + "OpenAI.DeleteModelResponse": { + "type": "object", + "required": [ + "id", + "deleted", + "object" + ], + "properties": { + "id": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "object": { + "type": "string" + } + } }, - "AzureFineTuneReinforcementMethod": { + "OpenAI.DeleteThreadResponse": { "type": "object", "required": [ - "grader" + "id", + "deleted", + "object" ], "properties": { - "grader": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.GraderStringCheck" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderScoreModel" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderMulti" - } - ] + "id": { + "type": "string" }, - "response_format": { - "allOf": [ - { - "$ref": "#/components/schemas/ResponseFormatJSONSchemaRequest" - } - ], - "description": "Response format to be used while sampling during RFT training" + "deleted": { + "type": "boolean" }, - "hyperparameters": { - "$ref": "#/components/schemas/OpenAI.FineTuneReinforcementHyperparameters" + "object": { + "type": "string", + "enum": [ + "thread.deleted" + ], + "x-stainless-const": true } } }, - "AzureImage": { + "OpenAI.DeleteVectorStoreFileResponse": { "type": "object", "required": [ - "prompt_filter_results", - "content_filter_results" + "id", + "deleted", + "object" ], "properties": { - "b64_json": { - "type": "string", - "format": "base64", - "description": "The base64-encoded JSON of the generated image. Default value for `gpt-image-1`, and only present if `response_format` is set to `b64_json` for `dall-e-2` and `dall-e-3`." + "id": { + "type": "string" }, - "url": { - "type": "string", - "format": "uri", - "description": "When using `dall-e-2` or `dall-e-3`, the URL of the generated image if `response_format` is set to `url` (default value). Unsupported for `gpt-image-1`." + "deleted": { + "type": "boolean" }, - "revised_prompt": { + "object": { "type": "string", - "description": "For `dall-e-3` only, the revised prompt that was used to generate the image." - }, - "prompt_filter_results": { - "$ref": "#/components/schemas/AzureContentFilterImagePromptResults" - }, - "content_filter_results": { - "$ref": "#/components/schemas/AzureContentFilterImageResponseResults" + "enum": [ + "vector_store.file.deleted" + ], + "x-stainless-const": true } } }, - "AzureImagesResponse": { + "OpenAI.DeleteVectorStoreResponse": { "type": "object", "required": [ - "created" + "id", + "deleted", + "object" ], "properties": { - "created": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) of when the image was created." + "id": { + "type": "string" }, - "background": { - "type": "string", - "enum": [ - "transparent", - "opaque" - ], - "description": "The background parameter used for the image generation. Either `transparent` or `opaque`." + "deleted": { + "type": "boolean" }, - "output_format": { + "object": { "type": "string", "enum": [ - "png", - "webp", - "jpeg" + "vector_store.deleted" ], - "description": "The output format of the image generation. Either `png`, `webp`, or `jpeg`." - }, - "size": { + "x-stainless-const": true + } + } + }, + "OpenAI.DeletedConversationResource": { + "type": "object", + "required": [ + "object", + "deleted", + "id" + ], + "properties": { + "object": { "type": "string", "enum": [ - "1024x1024", - "1024x1536", - "1536x1024" + "conversation.deleted" ], - "description": "The size of the image generated. Either `1024x1024`, `1024x1536`, or `1536x1024`." + "x-stainless-const": true, + "default": "conversation.deleted" }, - "quality": { + "deleted": { + "type": "boolean" + }, + "id": { + "type": "string" + } + } + }, + "OpenAI.DoubleClickAction": { + "type": "object", + "required": [ + "type", + "x", + "y" + ], + "properties": { + "type": { "type": "string", "enum": [ - "low", - "medium", - "high" + "double_click" ], - "description": "The quality of the image generated. Either `low`, `medium`, or `high`." + "description": "Specifies the event type. For a double click action, this property is always set to `double_click`.", + "x-stainless-const": true, + "default": "double_click" }, - "usage": { - "type": "object", - "properties": { - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "The total number of tokens (images and text) used for the image generation." - }, - "input_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens (images and text) in the input prompt." - }, - "output_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of image tokens in the output image." - }, - "input_tokens_details": { - "type": "object", - "properties": { - "text_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of text tokens in the input prompt." - }, - "image_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of image tokens in the input prompt." - } - }, - "required": [ - "text_tokens", - "image_tokens" - ], - "description": "The input tokens detailed information for the image generation." - } - }, - "required": [ - "total_tokens", - "input_tokens", - "output_tokens", - "input_tokens_details" - ], - "description": "For `gpt-image-1` only, the token usage information for the image generation." + "x": { + "type": "integer", + "description": "The x-coordinate where the double click occurred." }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AzureImage" - } + "y": { + "type": "integer", + "description": "The y-coordinate where the double click occurred." } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + } + ], + "description": "A double click action.", + "title": "DoubleClick" }, - "AzureListFilesResponse": { + "OpenAI.Drag": { "type": "object", "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" + "type", + "path" ], "properties": { - "object": { + "type": { "type": "string", "enum": [ - "list" - ] + "drag" + ], + "description": "Specifies the event type. For a drag action, this property is\n always set to `drag`.", + "x-stainless-const": true, + "default": "drag" }, - "data": { + "path": { "type": "array", "items": { - "$ref": "#/components/schemas/AzureOpenAIFile" - } - }, - "first_id": { - "type": "string" - }, - "last_id": { - "type": "string" + "$ref": "#/components/schemas/OpenAI.DragPoint" + }, + "description": "An array of coordinates representing the path of the drag action. Coordinates will appear as an array\n of objects, eg\n ```\n [\n { x: 100, y: 200 },\n { x: 200, y: 300 }\n ]\n ```" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + } + ], + "description": "A drag action.", + "title": "Drag" + }, + "OpenAI.DragPoint": { + "type": "object", + "required": [ + "x", + "y" + ], + "properties": { + "x": { + "type": "integer", + "description": "The x-coordinate." }, - "has_more": { - "type": "boolean" + "y": { + "type": "integer", + "description": "The y-coordinate." } - } + }, + "description": "An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`.", + "title": "Coordinate" }, - "AzureOpenAIFile": { + "OpenAI.EasyInputMessage": { "type": "object", "required": [ - "id", - "bytes", - "created_at", - "filename", - "object", - "purpose", - "status" + "role", + "content", + "type" ], "properties": { - "id": { + "role": { "type": "string", - "description": "The file identifier, which can be referenced in the API endpoints." + "enum": [ + "user", + "assistant", + "system", + "developer" + ], + "description": "The role of the message input. One of `user`, `assistant`, `system`, or\n `developer`." }, - "bytes": { - "type": "integer", - "format": "int64", - "nullable": true, - "description": "The size of the file, in bytes." + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/OpenAI.InputMessageContentList" + } + ], + "description": "Text, image, or audio input to the model, used to generate a response.\n Can also contain previous assistant responses." }, - "created_at": { + "type": { + "type": "string", + "enum": [ + "message" + ], + "description": "The type of the message input. Always `message`.", + "x-stainless-const": true + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.InputItem" + } + ], + "description": "A message input to the model with a role indicating instruction following\nhierarchy. Instructions given with the `developer` or `system` role take\nprecedence over instructions given with the `user` role. Messages with the\n`assistant` role are presumed to have been generated by the model in previous\ninteractions.", + "title": "Input message" + }, + "OpenAI.Embedding": { + "type": "object", + "required": [ + "index", + "embedding", + "object" + ], + "properties": { + "index": { "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the file was created." + "description": "The index of the embedding in the list of embeddings." }, - "expires_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the file will expire." + "embedding": { + "type": "array", + "items": { + "type": "number", + "format": "float" + }, + "description": "The embedding vector, which is a list of floats. The length of vector depends on the model as listed in the [embedding guide](https://platform.openai.com/docs/guides/embeddings)." }, - "filename": { + "object": { "type": "string", - "description": "The name of the file." - }, + "enum": [ + "embedding" + ], + "description": "The object type, which is always \"embedding\".", + "x-stainless-const": true + } + }, + "description": "Represents an embedding vector returned by embedding endpoint.", + "x-oaiMeta": { + "name": "The embedding object", + "example": "{\n \"object\": \"embedding\",\n \"embedding\": [\n 0.0023064255,\n -0.009327292,\n .... (1536 floats total for ada-002)\n -0.0028842222,\n ],\n \"index\": 0\n}\n" + } + }, + "OpenAI.Eval": { + "type": "object", + "required": [ + "object", + "id", + "name", + "data_source_config", + "testing_criteria", + "created_at", + "metadata" + ], + "properties": { "object": { "type": "string", "enum": [ - "file" + "eval" ], - "description": "The object type, which is always `file`." + "description": "The object type.", + "x-stainless-const": true, + "default": "eval" }, - "status_details": { + "id": { "type": "string", - "description": "Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`.", - "deprecated": true + "description": "Unique identifier for the evaluation." }, - "purpose": { + "name": { "type": "string", - "enum": [ - "assistants", - "assistants_output", - "batch", - "batch_output", - "fine-tune", - "fine-tune-results", - "evals" + "description": "The name of the evaluation." + }, + "data_source_config": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.EvalCustomDataSourceConfig" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalLogsDataSourceConfig" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalStoredCompletionsDataSourceConfig" + } ], - "description": "The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`." + "description": "Configuration of data sources used in runs of the evaluation." }, - "status": { - "type": "string", - "enum": [ - "uploaded", - "pending", - "running", - "processed", - "error", - "deleting", - "deleted" + "testing_criteria": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalLabelModelGrader" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderStringCheck" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderTextSimilarity" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderPython" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderScoreModel" + }, + { + "$ref": "#/components/schemas/EvalGraderEndpoint" + } + ] + }, + "description": "A list of testing criteria." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the eval was created." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } ] } + }, + "description": "An Eval object with a data source config and testing criteria.\nAn Eval represents a task to be done for your LLM integration.\nLike:\n- Improve the quality of my chatbot\n- See how well my chatbot handles customer support\n- Check if o4-mini is better at my usecase than gpt-4o", + "title": "Eval", + "x-oaiMeta": { + "name": "The eval object", + "group": "evals", + "example": "{\n \"object\": \"eval\",\n \"id\": \"eval_67abd54d9b0081909a86353f6fb9317a\",\n \"data_source_config\": {\n \"type\": \"custom\",\n \"item_schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"label\": {\"type\": \"string\"},\n },\n \"required\": [\"label\"]\n },\n \"include_sample_schema\": true\n },\n \"testing_criteria\": [\n {\n \"name\": \"My string check grader\",\n \"type\": \"string_check\",\n \"input\": \"{{sample.output_text}}\",\n \"reference\": \"{{item.label}}\",\n \"operation\": \"eq\",\n }\n ],\n \"name\": \"External Data Eval\",\n \"created_at\": 1739314509,\n \"metadata\": {\n \"test\": \"synthetics\",\n }\n}\n" } }, - "AzureOpenAIVideoGenerationErrorResponse": { + "OpenAI.EvalApiError": { "type": "object", + "required": [ + "code", + "message" + ], "properties": { "code": { "type": "string", - "description": "The distinct, machine-generated identifier for the error." + "description": "The error code." }, "message": { "type": "string", - "description": "A human-readable message associated with the error." - }, - "param": { - "type": "string", - "description": "If applicable, the request input parameter associated with the error" - }, + "description": "The error message." + } + }, + "description": "An object representing an error response from the Eval API.", + "title": "EvalApiError", + "x-oaiMeta": { + "name": "The API error object", + "group": "evals", + "example": "{\n \"code\": \"internal_error\",\n \"message\": \"The eval run failed due to an internal error.\"\n}\n" + } + }, + "OpenAI.EvalCustomDataSourceConfig": { + "type": "object", + "required": [ + "type", + "schema" + ], + "properties": { "type": { "type": "string", - "description": "If applicable, the input line number associated with the error." + "enum": [ + "custom" + ], + "description": "The type of data source. Always `custom`.", + "x-stainless-const": true, + "default": "custom" }, - "inner_error": { + "schema": { "type": "object", - "properties": { - "code": { - "type": "string", - "enum": [ - "ResponsibleAIPolicyViolation" - ], - "description": "The code associated with the inner error." - }, - "revised_prompt": { - "type": "string", - "description": "If applicable, the modified prompt used for generation." - }, - "error_details": { - "description": "The content filter result details associated with the inner error." - } - }, - "description": "If applicable, an upstream error that originated this error." + "unevaluatedProperties": {}, + "description": "The json schema for the run data source items.\n Learn how to build JSON schemas [here](https://json-schema.org/)." } + }, + "description": "A CustomDataSourceConfig which specifies the schema of your `item` and optionally `sample` namespaces.\nThe response schema defines the shape of the data that will be:\n- Used to define your testing criteria and\n- What data is required when creating a run", + "title": "CustomDataSourceConfig", + "x-oaiMeta": { + "name": "The eval custom data source config object", + "group": "evals", + "example": "{\n \"type\": \"custom\",\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"item\": {\n \"type\": \"object\",\n \"properties\": {\n \"label\": {\"type\": \"string\"},\n },\n \"required\": [\"label\"]\n }\n },\n \"required\": [\"item\"]\n }\n}\n" } }, - "AzurePiiSubCategoryResult": { + "OpenAI.EvalGraderPython": { "type": "object", "required": [ - "sub_category", - "filtered", - "detected", - "redacted" + "type", + "name", + "source" ], "properties": { - "sub_category": { + "type": { "type": "string", - "description": "The PIIHarmSubCategory that was evaluated." + "enum": [ + "python" + ], + "description": "The object type, which is always `python`.", + "x-stainless-const": true }, - "filtered": { - "type": "boolean", - "description": "Whether the content detection resulted in a content filtering action for this subcategory." + "name": { + "type": "string", + "description": "The name of the grader." }, - "detected": { - "type": "boolean", - "description": "Whether the labeled content subcategory was detected in the content." + "source": { + "type": "string", + "description": "The source code of the python script." }, - "redacted": { - "type": "boolean", - "description": "Whether the content was redacted for this subcategory." + "image_tag": { + "type": "string", + "description": "The image tag to use for the python script." + }, + "pass_threshold": { + "type": "number", + "description": "The threshold for the score." } }, - "description": "Result details for individual PIIHarmSubCategory(s)." + "title": "EvalGraderPython" }, - "AzureResponse": { + "OpenAI.EvalGraderScoreModel": { "type": "object", "required": [ - "metadata", - "temperature", - "top_p", - "user", - "id", - "object", - "created_at", - "error", - "incomplete_details", - "output", - "instructions", - "parallel_tool_calls", - "model" + "type", + "name", + "model", + "input" ], "properties": { - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - }, - "temperature": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 2, - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.\nWe generally recommend altering this or `top_p` but not both." - }, - "top_p": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 1, - "description": "An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability\nmass. So 0.1 means only the tokens comprising the top 10% probability mass\nare considered.\n\nWe generally recommend altering this or `temperature` but not both." - }, - "user": { + "type": { "type": "string", - "nullable": true, - "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids)." + "enum": [ + "score_model" + ], + "description": "The object type, which is always `score_model`.", + "x-stainless-const": true }, - "top_logprobs": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability." + "name": { + "type": "string", + "description": "The name of the grader." }, - "previous_response_id": { + "model": { "type": "string", - "nullable": true, - "description": "The unique ID of the previous response to the model. Use this to\ncreate multi-turn conversations. Learn more about\n[conversation state](/docs/guides/conversation-state)." + "description": "The model to use for the evaluation." }, - "reasoning": { - "type": "object", + "sampling_params": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Reasoning" + "$ref": "#/components/schemas/OpenAI.EvalGraderScoreModelSamplingParams" } ], - "nullable": true - }, - "background": { - "type": "boolean", - "nullable": true, - "description": "Whether to run the model response in the background.\n[Learn more](/docs/guides/background).", - "default": false - }, - "max_output_tokens": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An upper bound for the number of tokens that can be generated for a response, including visible output tokens and [reasoning tokens](/docs/guides/reasoning)." - }, - "max_tool_calls": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored." + "description": "The sampling parameters for the model." }, - "text": { - "type": "object", - "properties": { - "format": { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" - } + "input": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalItem" }, - "description": "Configuration options for a text response from the model. Can be plain\ntext or structured JSON data. Learn more:\n- [Text inputs and outputs](/docs/guides/text)\n- [Structured Outputs](/docs/guides/structured-outputs)" + "description": "The input text. This may include template strings." }, - "tools": { + "range": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.Tool" + "type": "number" }, - "description": "An array of tools the model may call while generating a response. You\ncan specify which tool to use by setting the `tool_choice` parameter.\n\nThe two categories of tools you can provide the model are:\n\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\n model's capabilities, like [web search](/docs/guides/tools-web-search)\n or [file search](/docs/guides/tools-file-search). Learn more about\n [built-in tools](/docs/guides/tools).\n- **Function calls (custom tools)**: Functions that are defined by you,\n enabling the model to call your own code. Learn more about\n [function calling](/docs/guides/function-calling)." + "description": "The range of the score. Defaults to `[0, 1]`." }, - "tool_choice": { + "pass_threshold": { + "type": "number", + "description": "The threshold for the score." + } + }, + "title": "EvalGraderScoreModel" + }, + "OpenAI.EvalGraderScoreModelSamplingParams": { + "type": "object", + "properties": { + "seed": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceOptions" + "type": "integer" }, { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "type": "null" } - ], - "description": "How the model should select which tool (or tools) to use when generating\na response. See the `tools` parameter to see how to specify which tools\nthe model can call." + ] }, - "prompt": { - "type": "object", - "allOf": [ + "top_p": { + "anyOf": [ + { + "type": "number" + }, { - "$ref": "#/components/schemas/OpenAI.Prompt" + "type": "null" } ], - "nullable": true + "default": 1 }, - "truncation": { + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "max_completions_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "reasoning_effort": { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + } + } + }, + "OpenAI.EvalGraderStringCheck": { + "type": "object", + "required": [ + "type", + "name", + "input", + "reference", + "operation" + ], + "properties": { + "type": { "type": "string", "enum": [ - "auto", - "disabled" + "string_check" ], - "nullable": true, - "description": "The truncation strategy to use for the model response.\n- `auto`: If the context of this response and previous ones exceeds\n the model's context window size, the model will truncate the\n response to fit the context window by dropping input items in the\n middle of the conversation.\n- `disabled` (default): If a model response will exceed the context window\n size for a model, the request will fail with a 400 error.", - "default": "disabled" + "description": "The object type, which is always `string_check`.", + "x-stainless-const": true }, - "id": { + "name": { "type": "string", - "description": "Unique identifier for this Response." + "description": "The name of the grader." }, - "object": { + "input": { + "type": "string", + "description": "The input text. This may include template strings." + }, + "reference": { + "type": "string", + "description": "The reference text. This may include template strings." + }, + "operation": { "type": "string", "enum": [ - "response" + "eq", + "ne", + "like", + "ilike" ], - "description": "The object type of this resource - always set to `response`." - }, - "status": { + "description": "The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`." + } + }, + "title": "StringCheckGrader" + }, + "OpenAI.EvalGraderTextSimilarity": { + "type": "object", + "required": [ + "type", + "name", + "input", + "reference", + "evaluation_metric", + "pass_threshold" + ], + "properties": { + "type": { "type": "string", "enum": [ - "completed", - "failed", - "in_progress", - "cancelled", - "queued", - "incomplete" + "text_similarity" ], - "description": "The status of the response generation. One of `completed`, `failed`,\n`in_progress`, `cancelled`, `queued`, or `incomplete`." + "description": "The type of grader.", + "x-stainless-const": true, + "default": "text_similarity" }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "Unix timestamp (in seconds) of when this Response was created." + "name": { + "type": "string", + "description": "The name of the grader." }, - "error": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseError" - } - ], - "nullable": true + "input": { + "type": "string", + "description": "The text being graded." }, - "incomplete_details": { - "type": "object", - "properties": { - "reason": { - "type": "string", - "enum": [ - "max_output_tokens", - "content_filter" - ], - "description": "The reason why the response is incomplete." - } - }, - "nullable": true, - "description": "Details about why the response is incomplete." + "reference": { + "type": "string", + "description": "The text being graded against." }, - "output": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemResource" - }, - "description": "An array of content items generated by the model.\n\n- The length and order of items in the `output` array is dependent\n on the model's response.\n- Rather than accessing the first item in the `output` array and\n assuming it's an `assistant` message with the content generated by\n the model, you might consider using the `output_text` property where\n supported in SDKs." + "evaluation_metric": { + "type": "string", + "enum": [ + "cosine", + "fuzzy_match", + "bleu", + "gleu", + "meteor", + "rouge_1", + "rouge_2", + "rouge_3", + "rouge_4", + "rouge_5", + "rouge_l" + ], + "description": "The evaluation metric to use. One of `cosine`, `fuzzy_match`, `bleu`,\n `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`,\n or `rouge_l`." }, - "instructions": { + "pass_threshold": { + "type": "number", + "description": "The threshold for the score." + } + }, + "title": "EvalGraderTextSimilarity" + }, + "OpenAI.EvalItem": { + "type": "object", + "required": [ + "role", + "content" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "user", + "assistant", + "system", + "developer" + ], + "description": "The role of the message input. One of `user`, `assistant`, `system`, or\n `developer`." + }, + "content": { "anyOf": [ { "type": "string" }, + { + "$ref": "#/components/schemas/OpenAI.InputTextContent" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalItemContentOutputText" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalItemContentInputImage" + }, + { + "$ref": "#/components/schemas/OpenAI.InputAudio" + }, { "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } + "items": {} } ], - "nullable": true, - "description": "A system (or developer) message inserted into the model's context.\n\nWhen using along with `previous_response_id`, the instructions from a previous\nresponse will not be carried over to the next response. This makes it simple\nto swap out system (or developer) messages in new responses." + "description": "Inputs to the model - can contain template strings." }, - "output_text": { + "type": { + "type": "string", + "enum": [ + "message" + ], + "description": "The type of the message input. Always `message`.", + "x-stainless-const": true + } + }, + "description": "A message input to the model with a role indicating instruction following\nhierarchy. Instructions given with the `developer` or `system` role take\nprecedence over instructions given with the `user` role. Messages with the\n`assistant` role are presumed to have been generated by the model in previous\ninteractions.", + "title": "EvalItem" + }, + "OpenAI.EvalItemContentInputImage": { + "type": "object", + "required": [ + "type", + "image_url" + ], + "properties": { + "type": { "type": "string", - "nullable": true, - "description": "SDK-only convenience property that contains the aggregated text output\nfrom all `output_text` items in the `output` array, if any are present.\nSupported in the Python and JavaScript SDKs." + "enum": [ + "input_image" + ], + "x-stainless-const": true }, - "usage": { - "$ref": "#/components/schemas/OpenAI.ResponseUsage" + "image_url": { + "type": "string" }, - "parallel_tool_calls": { - "type": "boolean", - "description": "Whether to allow the model to run tool calls in parallel.", - "default": true + "detail": { + "type": "string" + } + } + }, + "OpenAI.EvalItemContentOutputText": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "output_text" + ], + "x-stainless-const": true + }, + "text": { + "type": "string" + } + } + }, + "OpenAI.EvalJsonlFileContentSource": { + "type": "object", + "required": [ + "type", + "content" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_content" + ], + "description": "The type of jsonl source. Always `file_content`.", + "x-stainless-const": true, + "default": "file_content" + }, + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileContentSourceContent" + }, + "description": "The content of the jsonl file." + } + }, + "title": "EvalJsonlFileContentSource" + }, + "OpenAI.EvalJsonlFileContentSourceContent": { + "type": "object", + "required": [ + "item" + ], + "properties": { + "item": { + "type": "object", + "unevaluatedProperties": {} }, - "model": { - "type": "string", - "description": "The model used to generate this response." + "sample": { + "type": "object", + "unevaluatedProperties": {} } } }, - "AzureSearchChatDataSource": { + "OpenAI.EvalJsonlFileIdSource": { "type": "object", "required": [ "type", - "parameters" + "id" ], "properties": { "type": { "type": "string", "enum": [ - "azure_search" + "file_id" ], - "description": "The discriminated type identifier, which is always 'azure_search'." + "description": "The type of jsonl source. Always `file_id`.", + "x-stainless-const": true, + "default": "file_id" }, - "parameters": { - "type": "object", - "properties": { - "top_n_documents": { - "type": "integer", - "format": "int32", - "description": "The configured number of documents to feature in the query." - }, - "in_scope": { - "type": "boolean", - "description": "Whether queries should be restricted to use of the indexed data." - }, - "strictness": { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 5, - "description": "The configured strictness of the search relevance filtering.\nHigher strictness will increase precision but lower recall of the answer." - }, - "max_search_queries": { - "type": "integer", - "format": "int32", - "description": "The maximum number of rewritten queries that should be sent to the search provider for a single user message.\nBy default, the system will make an automatic determination." - }, - "allow_partial_result": { - "type": "boolean", - "description": "If set to true, the system will allow partial search results to be used and the request will fail if all\npartial queries fail. If not specified or specified as false, the request will fail if any search query fails.", - "default": false - }, - "include_contexts": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "citations", - "intent", - "all_retrieved_documents" - ] - }, - "maxItems": 3, - "description": "The output context properties to include on the response.\nBy default, citations and intent will be requested.", - "default": [ - "citations", - "intent" - ] - }, - "endpoint": { - "type": "string", - "format": "uri", - "description": "The absolute endpoint path for the Azure Search resource to use." - }, - "index_name": { - "type": "string", - "description": "The name of the index to use, as specified in the Azure Search resource." - }, - "authentication": { - "anyOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceApiKeyAuthenticationOptions" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceSystemAssignedManagedIdentityAuthenticationOptions" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceUserAssignedManagedIdentityAuthenticationOptions" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceAccessTokenAuthenticationOptions" - } - ], - "description": "The authentication mechanism to use with Azure Search." - }, - "fields_mapping": { - "type": "object", - "properties": { - "title_field": { - "type": "string", - "description": "The name of the index field to use as a title." - }, - "url_field": { - "type": "string", - "description": "The name of the index field to use as a URL." - }, - "filepath_field": { - "type": "string", - "description": "The name of the index field to use as a filepath." - }, - "content_fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The names of index fields that should be treated as content." - }, - "content_fields_separator": { - "type": "string", - "description": "The separator pattern that content fields should use." - }, - "vector_fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The names of fields that represent vector data." - }, - "image_vector_fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The names of fields that represent image vector data." - } - }, - "description": "The field mappings to use with the Azure Search resource." - }, - "query_type": { - "type": "string", - "enum": [ - "simple", - "semantic", - "vector", - "vector_simple_hybrid", - "vector_semantic_hybrid" - ], - "description": "The query type for the Azure Search resource to use." - }, - "semantic_configuration": { - "type": "string", - "description": "Additional semantic configuration for the query." - }, - "filter": { - "type": "string", - "description": "A filter to apply to the search." - }, - "embedding_dependency": { - "anyOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceEndpointVectorizationSource" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceDeploymentNameVectorizationSource" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceIntegratedVectorizationSource" - } - ], - "description": "The vectorization source to use with Azure Search.\nSupported sources for Azure Search include endpoint, deployment name, and integrated." - } - }, - "required": [ - "endpoint", - "index_name", - "authentication" - ], - "description": "The parameter information to control the use of the Azure Search data source." + "id": { + "type": "string", + "description": "The identifier of the file." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSource" - } - ], - "description": "Represents a data source configuration that will use an Azure Search resource." + "title": "EvalJsonlFileIdSource" }, - "AzureUserSecurityContext": { + "OpenAI.EvalList": { "type": "object", + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ], "properties": { - "application_name": { + "object": { "type": "string", - "description": "The name of the application. Sensitive personal information should not be included in this field." + "enum": [ + "list" + ], + "description": "The type of this object. It is always set to \"list\".", + "x-stainless-const": true, + "default": "list" }, - "end_user_id": { - "type": "string", - "description": "This identifier is the Microsoft Entra ID (formerly Azure Active Directory) user object ID used to authenticate end-users within the generative AI application. Sensitive personal information should not be included in this field." + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.Eval" + }, + "description": "An array of eval objects." }, - "end_user_tenant_id": { + "first_id": { "type": "string", - "description": "The Microsoft 365 tenant ID the end user belongs to. It's required when the generative AI application is multitenant." + "description": "The identifier of the first eval in the data array." }, - "source_ip": { + "last_id": { "type": "string", - "description": "Captures the original client's IP address." + "description": "The identifier of the last eval in the data array." + }, + "has_more": { + "type": "boolean", + "description": "Indicates whether there are more evals available." } }, - "description": "User security context contains several parameters that describe the application itself, and the end user that interacts with the application. These fields assist your security operations teams to investigate and mitigate security incidents by providing a comprehensive approach to protecting your AI applications. [Learn more](https://aka.ms/TP4AI/Documentation/EndUserContext) about protecting AI applications using Microsoft Defender for Cloud." + "description": "An object representing a list of evals.", + "title": "EvalList", + "x-oaiMeta": { + "name": "The eval list object", + "group": "evals", + "example": "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": \"eval\",\n \"id\": \"eval_67abd54d9b0081909a86353f6fb9317a\",\n \"data_source_config\": {\n \"type\": \"custom\",\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"item\": {\n \"type\": \"object\",\n \"properties\": {\n \"input\": {\n \"type\": \"string\"\n },\n \"ground_truth\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"input\",\n \"ground_truth\"\n ]\n }\n },\n \"required\": [\n \"item\"\n ]\n }\n },\n \"testing_criteria\": [\n {\n \"name\": \"String check\",\n \"id\": \"String check-2eaf2d8d-d649-4335-8148-9535a7ca73c2\",\n \"type\": \"string_check\",\n \"input\": \"{{item.input}}\",\n \"reference\": \"{{item.ground_truth}}\",\n \"operation\": \"eq\"\n }\n ],\n \"name\": \"External Data Eval\",\n \"created_at\": 1739314509,\n \"metadata\": {},\n }\n ],\n \"first_id\": \"eval_67abd54d9b0081909a86353f6fb9317a\",\n \"last_id\": \"eval_67abd54d9b0081909a86353f6fb9317a\",\n \"has_more\": true\n}\n" + } }, - "ChatCompletionMessageToolCallsItem": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCall" + "OpenAI.EvalLogsDataSourceConfig": { + "type": "object", + "required": [ + "type", + "schema" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "logs" + ], + "description": "The type of data source. Always `logs`.", + "x-stainless-const": true, + "default": "logs" + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "schema": { + "type": "object", + "unevaluatedProperties": {}, + "description": "The json schema for the run data source items.\n Learn how to build JSON schemas [here](https://json-schema.org/)." + } }, - "description": "The tool calls generated by the model, such as function calls." + "description": "A LogsDataSourceConfig which specifies the metadata property of your logs query.\nThis is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc.\nThe schema returned by this data source config is used to defined what variables are available in your evals.\n`item` and `sample` are both defined when using this data source config.", + "title": "LogsDataSourceConfig", + "x-oaiMeta": { + "name": "The logs data source object for evals", + "group": "evals", + "example": "{\n \"type\": \"logs\",\n \"metadata\": {\n \"language\": \"english\"\n },\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"item\": {\n \"type\": \"object\"\n },\n \"sample\": {\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"item\",\n \"sample\"\n }\n}\n" + } }, - "CopiedAccountDetails": { + "OpenAI.EvalResponsesSource": { "type": "object", "required": [ - "destinationResourceId", - "region", - "status" + "type" ], "properties": { - "destinationResourceId": { + "type": { "type": "string", - "description": "The ID of the destination resource where the model was copied to." + "enum": [ + "responses" + ], + "description": "The type of run data source. Always `responses`." }, - "region": { - "type": "string", - "description": "The region where the model was copied to." + "metadata": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": {} + }, + { + "type": "null" + } + ] + }, + "model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "instructions_search": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "created_after": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "created_before": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "reasoning_effort": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "users": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "null" + } + ] }, - "status": { - "type": "string", - "enum": [ - "Completed", - "Failed", - "InProgress" - ], - "description": "The status of the copy operation." + "tools": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "null" + } + ] } + }, + "description": "A EvalResponsesSource object describing a run data source configuration.", + "title": "EvalResponsesSource", + "x-oaiMeta": { + "name": "The run data source object used to configure an individual run", + "group": "eval runs", + "example": "{\n \"type\": \"responses\",\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \"temperature\": 0.7,\n \"top_p\": 1.0,\n \"users\": [\"user1\", \"user2\"],\n \"tools\": [\"tool1\", \"tool2\"],\n \"instructions_search\": \"You are a coding assistant\"\n}\n" } }, - "CopyModelRequest": { + "OpenAI.EvalRun": { "type": "object", "required": [ - "destinationResourceId", - "region" + "object", + "id", + "eval_id", + "status", + "model", + "name", + "created_at", + "report_url", + "result_counts", + "per_model_usage", + "per_testing_criteria_results", + "data_source", + "metadata", + "error" ], "properties": { - "destinationResourceId": { + "object": { "type": "string", - "description": "The ID of the destination Resource to copy." + "enum": [ + "eval.run" + ], + "description": "The type of the object. Always \"eval.run\".", + "x-stainless-const": true, + "default": "eval.run" }, - "region": { - "type": "string", - "description": "The region to copy the model to." - } - } - }, - "CopyModelResponse": { - "type": "object", - "required": [ - "checkpointedModelName", - "fineTuningJobId", - "copiedAccountDetails" - ], - "properties": { - "checkpointedModelName": { + "id": { "type": "string", - "description": "The ID of the copied model." + "description": "Unique identifier for the evaluation run." }, - "fineTuningJobId": { + "eval_id": { "type": "string", - "description": "The ID of the fine-tuning job that the checkpoint was copied from." + "description": "The identifier of the associated evaluation." }, - "copiedAccountDetails": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CopiedAccountDetails" - }, - "description": "The ID of the destination resource id where it was copied" - } - } - }, - "CreateVideoGenerationRequest": { - "type": "object", - "required": [ - "prompt", - "height", - "width", - "model" - ], - "properties": { - "prompt": { + "status": { "type": "string", - "description": "The prompt for this video generation job." - }, - "height": { - "type": "integer", - "format": "int32", - "description": "The height of the video. The following dimensions are supported: 480x480, 854x480, 720x720, 1280x720, 1080x1080 and 1920x1080 in both landscape and portrait orientations." - }, - "width": { - "type": "integer", - "format": "int32", - "description": "The width of the video. The following dimensions are supported: 480x480, 854x480, 720x720, 1280x720, 1080x1080 and 1920x1080 in both landscape and portrait orientations." - }, - "n_seconds": { - "type": "integer", - "format": "int32", - "minimum": 1, - "description": "The duration of the video generation job. Must be between 1 and 20 seconds.", - "default": 5 - }, - "n_variants": { - "type": "integer", - "format": "int32", - "minimum": 1, - "description": "The number of videos to create as variants for this job. Must be between 1 and 5. Smaller dimensions allow more variants.", - "default": 1 + "description": "The status of the evaluation run." }, "model": { "type": "string", - "description": "The name of the deployment to use for this request." - } - } - }, - "CreateVideoGenerationWithMediaRequestMultiPart": { - "type": "object", - "required": [ - "prompt", - "height", - "width", - "model", - "files" - ], - "properties": { - "prompt": { - "type": "string", - "description": "The prompt for this video generation job." - }, - "height": { - "type": "integer", - "format": "int32", - "description": "The height of the video. The following dimensions are supported: 480x480, 854x480, 720x720, 1280x720, 1080x1080 and 1920x1080 in both landscape and portrait orientations." - }, - "width": { - "type": "integer", - "format": "int32", - "description": "The width of the video. The following dimensions are supported: 480x480, 854x480, 720x720, 1280x720, 1080x1080 and 1920x1080 in both landscape and portrait orientations." + "description": "The model that is evaluated, if applicable." }, - "n_seconds": { - "type": "integer", - "format": "int32", - "minimum": 1, - "description": "The duration of the video generation job. Must be between 1 and 20 seconds.", - "default": 5 + "name": { + "type": "string", + "description": "The name of the evaluation run." }, - "n_variants": { + "created_at": { "type": "integer", - "format": "int32", - "minimum": 1, - "description": "The number of videos to create as variants for this job. Must be between 1 and 5. Smaller dimensions allow more variants.", - "default": 1 + "format": "unixtime", + "description": "Unix timestamp (in seconds) when the evaluation run was created." }, - "model": { + "report_url": { "type": "string", - "description": "The name of the deployment to use for this request." + "description": "The URL to the rendered evaluation run report on the UI dashboard." + }, + "result_counts": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.EvalRunResultCounts" + } + ], + "description": "Counters summarizing the outcomes of the evaluation run." }, - "inpaint_items": { + "per_model_usage": { "type": "array", "items": { - "$ref": "#/components/schemas/InpaintItem" + "$ref": "#/components/schemas/OpenAI.EvalRunPerModelUsage" }, - "description": "Optional inpainting items for this video generation job." + "description": "Usage statistics for each model during the evaluation run." }, - "files": { + "per_testing_criteria_results": { "type": "array", "items": { - "type": "string", - "format": "binary" - } - } - }, - "description": "The properties of a video generation job request with media files." - }, - "CropBounds": { - "type": "object", - "properties": { - "left_fraction": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "The left boundary of the crop box specified as fraction of the width of the original media item. Must be between 0.0 and 1.0. Use e.g. 0.5 for half the width of the original media item.", - "default": 0 - }, - "top_fraction": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "The top boundary of the crop box specified as fraction of the height of the original media item. Must be between 0.0 and 1.0. Use e.g. 0.5 for half the height of the original media item.", - "default": 0 - }, - "right_fraction": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "The right boundary of the crop box specified as fraction of the width of the original media item. Must be between 0.0 and 1.0. Use e.g. 0.5 for half the width of the original media item.", - "default": 1 - }, - "bottom_fraction": { - "type": "number", - "minimum": 0, - "maximum": 1, - "description": "The bottom boundary of the crop box specified as fraction of the height of the original media item. Must be between 0.0 and 1.0. Use e.g. 0.5 for half the height of the original media item.", - "default": 1 - } - }, - "description": "The crop bounds for an inpainting item.\nThis specifies the area of the media item that should be used for inpainting." - }, - "ElasticsearchChatDataSource": { - "type": "object", - "required": [ - "type", - "parameters" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "elasticsearch" - ], - "description": "The discriminated type identifier, which is always 'elasticsearch'." + "$ref": "#/components/schemas/OpenAI.EvalRunPerTestingCriteriaResults" + }, + "description": "Results per testing criteria applied during the evaluation run." }, - "parameters": { - "type": "object", - "properties": { - "top_n_documents": { - "type": "integer", - "format": "int32", - "description": "The configured number of documents to feature in the query." - }, - "in_scope": { - "type": "boolean", - "description": "Whether queries should be restricted to use of the indexed data." - }, - "strictness": { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 5, - "description": "The configured strictness of the search relevance filtering.\nHigher strictness will increase precision but lower recall of the answer." - }, - "max_search_queries": { - "type": "integer", - "format": "int32", - "description": "The maximum number of rewritten queries that should be sent to the search provider for a single user message.\nBy default, the system will make an automatic determination." - }, - "allow_partial_result": { - "type": "boolean", - "description": "If set to true, the system will allow partial search results to be used and the request will fail if all\npartial queries fail. If not specified or specified as false, the request will fail if any search query fails.", - "default": false - }, - "include_contexts": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "citations", - "intent", - "all_retrieved_documents" - ] - }, - "maxItems": 3, - "description": "The output context properties to include on the response.\nBy default, citations and intent will be requested.", - "default": [ - "citations", - "intent" - ] - }, - "endpoint": { - "type": "string", - "format": "uri" - }, - "index_name": { - "type": "string" - }, - "authentication": { - "anyOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceKeyAndKeyIdAuthenticationOptions" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceEncodedApiKeyAuthenticationOptions" - } - ] + "data_source": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalJsonlRunDataSource" }, - "fields_mapping": { - "type": "object", - "properties": { - "title_field": { - "type": "string" - }, - "url_field": { - "type": "string" - }, - "filepath_field": { - "type": "string" - }, - "content_fields": { - "type": "array", - "items": { - "type": "string" - } - }, - "content_fields_separator": { - "type": "string" - }, - "vector_fields": { - "type": "array", - "items": { - "type": "string" - } - } - } + { + "$ref": "#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSource" }, - "query_type": { - "type": "string", - "enum": [ - "simple", - "vector" - ] + { + "$ref": "#/components/schemas/OpenAI.CreateEvalResponsesRunDataSource" + } + ], + "description": "Information about the run's data source." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" }, - "embedding_dependency": { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" + { + "type": "null" } - }, - "required": [ - "endpoint", - "index_name", - "authentication" - ], - "description": "The parameter information to control the use of the Elasticsearch data source." + ] + }, + "error": { + "$ref": "#/components/schemas/OpenAI.EvalApiError" } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSource" - } - ] + "description": "A schema representing an evaluation run.", + "title": "EvalRun", + "x-oaiMeta": { + "name": "The eval run object", + "group": "evals", + "example": "{\n \"object\": \"eval.run\",\n \"id\": \"evalrun_67e57965b480819094274e3a32235e4c\",\n \"eval_id\": \"eval_67e579652b548190aaa83ada4b125f47\",\n \"report_url\": \"https://platform.openai.com/evaluations/eval_67e579652b548190aaa83ada4b125f47?run_id=evalrun_67e57965b480819094274e3a32235e4c\",\n \"status\": \"queued\",\n \"model\": \"gpt-4o-mini\",\n \"name\": \"gpt-4o-mini\",\n \"created_at\": 1743092069,\n \"result_counts\": {\n \"total\": 0,\n \"errored\": 0,\n \"failed\": 0,\n \"passed\": 0\n },\n \"per_model_usage\": null,\n \"per_testing_criteria_results\": null,\n \"data_source\": {\n \"type\": \"completions\",\n \"source\": {\n \"type\": \"file_content\",\n \"content\": [\n {\n \"item\": {\n \"input\": \"Tech Company Launches Advanced Artificial Intelligence Platform\",\n \"ground_truth\": \"Technology\"\n }\n },\n {\n \"item\": {\n \"input\": \"Central Bank Increases Interest Rates Amid Inflation Concerns\",\n \"ground_truth\": \"Markets\"\n }\n },\n {\n \"item\": {\n \"input\": \"International Summit Addresses Climate Change Strategies\",\n \"ground_truth\": \"World\"\n }\n },\n {\n \"item\": {\n \"input\": \"Major Retailer Reports Record-Breaking Holiday Sales\",\n \"ground_truth\": \"Business\"\n }\n },\n {\n \"item\": {\n \"input\": \"National Team Qualifies for World Championship Finals\",\n \"ground_truth\": \"Sports\"\n }\n },\n {\n \"item\": {\n \"input\": \"Stock Markets Rally After Positive Economic Data Released\",\n \"ground_truth\": \"Markets\"\n }\n },\n {\n \"item\": {\n \"input\": \"Global Manufacturer Announces Merger with Competitor\",\n \"ground_truth\": \"Business\"\n }\n },\n {\n \"item\": {\n \"input\": \"Breakthrough in Renewable Energy Technology Unveiled\",\n \"ground_truth\": \"Technology\"\n }\n },\n {\n \"item\": {\n \"input\": \"World Leaders Sign Historic Climate Agreement\",\n \"ground_truth\": \"World\"\n }\n },\n {\n \"item\": {\n \"input\": \"Professional Athlete Sets New Record in Championship Event\",\n \"ground_truth\": \"Sports\"\n }\n },\n {\n \"item\": {\n \"input\": \"Financial Institutions Adapt to New Regulatory Requirements\",\n \"ground_truth\": \"Business\"\n }\n },\n {\n \"item\": {\n \"input\": \"Tech Conference Showcases Advances in Artificial Intelligence\",\n \"ground_truth\": \"Technology\"\n }\n },\n {\n \"item\": {\n \"input\": \"Global Markets Respond to Oil Price Fluctuations\",\n \"ground_truth\": \"Markets\"\n }\n },\n {\n \"item\": {\n \"input\": \"International Cooperation Strengthened Through New Treaty\",\n \"ground_truth\": \"World\"\n }\n },\n {\n \"item\": {\n \"input\": \"Sports League Announces Revised Schedule for Upcoming Season\",\n \"ground_truth\": \"Sports\"\n }\n }\n ]\n },\n \"input_messages\": {\n \"type\": \"template\",\n \"template\": [\n {\n \"type\": \"message\",\n \"role\": \"developer\",\n \"content\": {\n \"type\": \"input_text\",\n \"text\": \"Categorize a given news headline into one of the following topics: Technology, Markets, World, Business, or Sports.\\n\\n# Steps\\n\\n1. Analyze the content of the news headline to understand its primary focus.\\n2. Extract the subject matter, identifying any key indicators or keywords.\\n3. Use the identified indicators to determine the most suitable category out of the five options: Technology, Markets, World, Business, or Sports.\\n4. Ensure only one category is selected per headline.\\n\\n# Output Format\\n\\nRespond with the chosen category as a single word. For instance: \\\"Technology\\\", \\\"Markets\\\", \\\"World\\\", \\\"Business\\\", or \\\"Sports\\\".\\n\\n# Examples\\n\\n**Input**: \\\"Apple Unveils New iPhone Model, Featuring Advanced AI Features\\\" \\n**Output**: \\\"Technology\\\"\\n\\n**Input**: \\\"Global Stocks Mixed as Investors Await Central Bank Decisions\\\" \\n**Output**: \\\"Markets\\\"\\n\\n**Input**: \\\"War in Ukraine: Latest Updates on Negotiation Status\\\" \\n**Output**: \\\"World\\\"\\n\\n**Input**: \\\"Microsoft in Talks to Acquire Gaming Company for $2 Billion\\\" \\n**Output**: \\\"Business\\\"\\n\\n**Input**: \\\"Manchester United Secures Win in Premier League Football Match\\\" \\n**Output**: \\\"Sports\\\" \\n\\n# Notes\\n\\n- If the headline appears to fit into more than one category, choose the most dominant theme.\\n- Keywords or phrases such as \\\"stocks\\\", \\\"company acquisition\\\", \\\"match\\\", or technological brands can be good indicators for classification.\\n\"\n }\n },\n {\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": {\n \"type\": \"input_text\",\n \"text\": \"{{item.input}}\"\n }\n }\n ]\n },\n \"model\": \"gpt-4o-mini\",\n \"sampling_params\": {\n \"seed\": 42,\n \"temperature\": 1.0,\n \"top_p\": 1.0,\n \"max_completions_tokens\": 2048\n }\n },\n \"error\": null,\n \"metadata\": {}\n}\n" + } }, - "InpaintItem": { + "OpenAI.EvalRunList": { "type": "object", "required": [ - "frame_index", - "type", - "file_name" + "object", + "data", + "first_id", + "last_id", + "has_more" ], "properties": { - "frame_index": { - "type": "integer", - "format": "int32", - "description": "The frame index for this media item. This specifies the starting frame in the resulting generated video for this inpainting item.", - "default": 0 + "object": { + "type": "string", + "enum": [ + "list" + ], + "description": "The type of this object. It is always set to \"list\".", + "x-stainless-const": true, + "default": "list" }, - "type": { - "allOf": [ - { - "$ref": "#/components/schemas/MediaItemType" - } + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalRun" + }, + "description": "An array of eval run objects." + }, + "first_id": { + "type": "string", + "description": "The identifier of the first eval run in the data array." + }, + "last_id": { + "type": "string", + "description": "The identifier of the last eval run in the data array." + }, + "has_more": { + "type": "boolean", + "description": "Indicates whether there are more evals available." + } + }, + "description": "An object representing a list of runs for an evaluation.", + "title": "EvalRunList", + "x-oaiMeta": { + "name": "The eval run list object", + "group": "evals", + "example": "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": \"eval.run\",\n \"id\": \"evalrun_67b7fbdad46c819092f6fe7a14189620\",\n \"eval_id\": \"eval_67b7fa9a81a88190ab4aa417e397ea21\",\n \"report_url\": \"https://platform.openai.com/evaluations/eval_67b7fa9a81a88190ab4aa417e397ea21?run_id=evalrun_67b7fbdad46c819092f6fe7a14189620\",\n \"status\": \"completed\",\n \"model\": \"o3-mini\",\n \"name\": \"Academic Assistant\",\n \"created_at\": 1740110812,\n \"result_counts\": {\n \"total\": 171,\n \"errored\": 0,\n \"failed\": 80,\n \"passed\": 91\n },\n \"per_model_usage\": null,\n \"per_testing_criteria_results\": [\n {\n \"testing_criteria\": \"String check grader\",\n \"passed\": 91,\n \"failed\": 80\n }\n ],\n \"run_data_source\": {\n \"type\": \"completions\",\n \"template_messages\": [\n {\n \"type\": \"message\",\n \"role\": \"system\",\n \"content\": {\n \"type\": \"input_text\",\n \"text\": \"You are a helpful assistant.\"\n }\n },\n {\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": {\n \"type\": \"input_text\",\n \"text\": \"Hello, can you help me with my homework?\"\n }\n }\n ],\n \"datasource_reference\": null,\n \"model\": \"o3-mini\",\n \"max_completion_tokens\": null,\n \"seed\": null,\n \"temperature\": null,\n \"top_p\": null\n },\n \"error\": null,\n \"metadata\": {\"test\": \"synthetics\"}\n }\n ],\n \"first_id\": \"evalrun_67abd54d60ec8190832b46859da808f7\",\n \"last_id\": \"evalrun_67abd54d60ec8190832b46859da808f7\",\n \"has_more\": false\n}\n" + } + }, + "OpenAI.EvalRunOutputItem": { + "type": "object", + "required": [ + "object", + "id", + "run_id", + "eval_id", + "created_at", + "status", + "datasource_item_id", + "datasource_item", + "results", + "sample" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "eval.run.output_item" ], - "description": "The type of the media item, either 'image' or 'video'." + "description": "The type of the object. Always \"eval.run.output_item\".", + "x-stainless-const": true, + "default": "eval.run.output_item" }, - "file_name": { + "id": { + "type": "string", + "description": "Unique identifier for the evaluation run output item." + }, + "run_id": { + "type": "string", + "description": "The identifier of the evaluation run associated with this output item." + }, + "eval_id": { + "type": "string", + "description": "The identifier of the evaluation group." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) when the evaluation run was created." + }, + "status": { "type": "string", - "description": "The file name of the media item. It must match the file name of a file attachment in this request." + "description": "The status of the evaluation run." + }, + "datasource_item_id": { + "type": "integer", + "description": "The identifier for the data source item." + }, + "datasource_item": { + "type": "object", + "unevaluatedProperties": {}, + "description": "Details of the input data source item." + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemResult" + }, + "description": "A list of grader results for this output item." }, - "crop_bounds": { + "sample": { "allOf": [ { - "$ref": "#/components/schemas/CropBounds" + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemSample" } ], - "description": "The crop bounds for this media item. This specifies the area of the media item that should be used for inpainting. Default is the full media item." + "description": "A sample containing the input and output of the evaluation run." } }, - "description": "An inpainting item for a video generation job.\nThis specifies the media item that should be used for inpainting in the video generation." - }, - "JobStatus": { - "type": "string", - "enum": [ - "preprocessing", - "queued", - "running", - "processing", - "cancelled", - "succeeded", - "failed" - ], - "description": "The status of a video generation job." - }, - "MediaItemType": { - "type": "string", - "enum": [ - "image" - ], - "description": "The type of the inpainting item." + "description": "A schema representing an evaluation run output item.", + "title": "EvalRunOutputItem", + "x-oaiMeta": { + "name": "The eval run output item object", + "group": "evals", + "example": "{\n \"object\": \"eval.run.output_item\",\n \"id\": \"outputitem_67abd55eb6548190bb580745d5644a33\",\n \"run_id\": \"evalrun_67abd54d60ec8190832b46859da808f7\",\n \"eval_id\": \"eval_67abd54d9b0081909a86353f6fb9317a\",\n \"created_at\": 1739314509,\n \"status\": \"pass\",\n \"datasource_item_id\": 137,\n \"datasource_item\": {\n \"teacher\": \"To grade essays, I only check for style, content, and grammar.\",\n \"student\": \"I am a student who is trying to write the best essay.\"\n },\n \"results\": [\n {\n \"name\": \"String Check Grader\",\n \"type\": \"string-check-grader\",\n \"score\": 1.0,\n \"passed\": true,\n }\n ],\n \"sample\": {\n \"input\": [\n {\n \"role\": \"system\",\n \"content\": \"You are an evaluator bot...\"\n },\n {\n \"role\": \"user\",\n \"content\": \"You are assessing...\"\n }\n ],\n \"output\": [\n {\n \"role\": \"assistant\",\n \"content\": \"The rubric is not clear nor concise.\"\n }\n ],\n \"finish_reason\": \"stop\",\n \"model\": \"gpt-4o-2024-08-06\",\n \"usage\": {\n \"total_tokens\": 521,\n \"completion_tokens\": 2,\n \"prompt_tokens\": 519,\n \"cached_tokens\": 0\n },\n \"error\": null,\n \"temperature\": 1.0,\n \"max_completion_tokens\": 2048,\n \"top_p\": 1.0,\n \"seed\": 42\n }\n}\n" + } }, - "MongoDBChatDataSource": { + "OpenAI.EvalRunOutputItemList": { "type": "object", "required": [ - "type", - "parameters" + "object", + "data", + "first_id", + "last_id", + "has_more" ], "properties": { - "type": { + "object": { "type": "string", "enum": [ - "mongo_db" + "list" ], - "description": "The discriminated type identifier, which is always 'mongo_db'." + "description": "The type of this object. It is always set to \"list\".", + "x-stainless-const": true, + "default": "list" }, - "parameters": { - "type": "object", - "properties": { - "top_n_documents": { - "type": "integer", - "format": "int32", - "description": "The configured number of documents to feature in the query." - }, - "in_scope": { - "type": "boolean", - "description": "Whether queries should be restricted to use of the indexed data." - }, - "strictness": { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 5, - "description": "The configured strictness of the search relevance filtering.\nHigher strictness will increase precision but lower recall of the answer." - }, - "max_search_queries": { - "type": "integer", - "format": "int32", - "description": "The maximum number of rewritten queries that should be sent to the search provider for a single user message.\nBy default, the system will make an automatic determination." - }, - "allow_partial_result": { - "type": "boolean", - "description": "If set to true, the system will allow partial search results to be used and the request will fail if all\npartial queries fail. If not specified or specified as false, the request will fail if any search query fails.", - "default": false - }, - "include_contexts": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "citations", - "intent", - "all_retrieved_documents" - ] - }, - "maxItems": 3, - "description": "The output context properties to include on the response.\nBy default, citations and intent will be requested.", - "default": [ - "citations", - "intent" - ] - }, - "endpoint": { - "type": "string", - "description": "The name of the MongoDB cluster endpoint." - }, - "database_name": { - "type": "string", - "description": "The name of the MongoDB database." - }, - "collection_name": { - "type": "string", - "description": "The name of the MongoDB collection." - }, - "app_name": { - "type": "string", - "description": "The name of the MongoDB application." - }, - "index_name": { - "type": "string", - "description": "The name of the MongoDB index." - }, - "authentication": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceUsernameAndPasswordAuthenticationOptions" - } - ], - "description": "The authentication mechanism to use with Pinecone.\nSupported authentication mechanisms for Pinecone include: username and password." - }, - "embedding_dependency": { - "anyOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceEndpointVectorizationSource" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceDeploymentNameVectorizationSource" - } - ], - "description": "The vectorization source to use as an embedding dependency for the MongoDB data source.\nSupported vectorization sources for MongoDB include: endpoint, deployment name." - }, - "fields_mapping": { - "type": "object", - "properties": { - "content_fields": { - "type": "array", - "items": { - "type": "string" - } - }, - "vector_fields": { - "type": "array", - "items": { - "type": "string" - } - }, - "title_field": { - "type": "string" - }, - "url_field": { - "type": "string" - }, - "filepath_field": { - "type": "string" - }, - "content_fields_separator": { - "type": "string" - } - }, - "required": [ - "content_fields", - "vector_fields" - ], - "description": "Field mappings to apply to data used by the MongoDB data source.\nNote that content and vector field mappings are required for MongoDB." - } + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItem" }, - "required": [ - "endpoint", - "database_name", - "collection_name", - "app_name", - "index_name", - "authentication", - "embedding_dependency", - "fields_mapping" - ], - "description": "The parameter information to control the use of the MongoDB data source." + "description": "An array of eval run output item objects." + }, + "first_id": { + "type": "string", + "description": "The identifier of the first eval run output item in the data array." + }, + "last_id": { + "type": "string", + "description": "The identifier of the last eval run output item in the data array." + }, + "has_more": { + "type": "boolean", + "description": "Indicates whether there are more eval run output items available." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSource" - } - ] + "description": "An object representing a list of output items for an evaluation run.", + "title": "EvalRunOutputItemList", + "x-oaiMeta": { + "name": "The eval run output item list object", + "group": "evals", + "example": "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": \"eval.run.output_item\",\n \"id\": \"outputitem_67abd55eb6548190bb580745d5644a33\",\n \"run_id\": \"evalrun_67abd54d60ec8190832b46859da808f7\",\n \"eval_id\": \"eval_67abd54d9b0081909a86353f6fb9317a\",\n \"created_at\": 1739314509,\n \"status\": \"pass\",\n \"datasource_item_id\": 137,\n \"datasource_item\": {\n \"teacher\": \"To grade essays, I only check for style, content, and grammar.\",\n \"student\": \"I am a student who is trying to write the best essay.\"\n },\n \"results\": [\n {\n \"name\": \"String Check Grader\",\n \"type\": \"string-check-grader\",\n \"score\": 1.0,\n \"passed\": true,\n }\n ],\n \"sample\": {\n \"input\": [\n {\n \"role\": \"system\",\n \"content\": \"You are an evaluator bot...\"\n },\n {\n \"role\": \"user\",\n \"content\": \"You are assessing...\"\n }\n ],\n \"output\": [\n {\n \"role\": \"assistant\",\n \"content\": \"The rubric is not clear nor concise.\"\n }\n ],\n \"finish_reason\": \"stop\",\n \"model\": \"gpt-4o-2024-08-06\",\n \"usage\": {\n \"total_tokens\": 521,\n \"completion_tokens\": 2,\n \"prompt_tokens\": 519,\n \"cached_tokens\": 0\n },\n \"error\": null,\n \"temperature\": 1.0,\n \"max_completion_tokens\": 2048,\n \"top_p\": 1.0,\n \"seed\": 42\n }\n },\n ],\n \"first_id\": \"outputitem_67abd55eb6548190bb580745d5644a33\",\n \"last_id\": \"outputitem_67abd55eb6548190bb580745d5644a33\",\n \"has_more\": false\n}\n" + } }, - "OpenAI.Annotation": { + "OpenAI.EvalRunOutputItemResult": { "type": "object", "required": [ - "type" + "name", + "score", + "passed" ], "properties": { + "name": { + "type": "string", + "description": "The name of the grader." + }, "type": { - "$ref": "#/components/schemas/OpenAI.AnnotationType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "file_citation": "#/components/schemas/OpenAI.AnnotationFileCitation", - "url_citation": "#/components/schemas/OpenAI.AnnotationUrlCitation", - "file_path": "#/components/schemas/OpenAI.AnnotationFilePath" + "type": "string", + "description": "The grader type (for example, \"string-check-grader\")." + }, + "score": { + "type": "number", + "description": "The numeric score produced by the grader." + }, + "passed": { + "type": "boolean", + "description": "Whether the grader considered the output a pass." + }, + "sample": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": {} + }, + { + "type": "null" + } + ], + "description": "Optional sample or intermediate data produced by the grader." } - } + }, + "description": "A single grader result for an evaluation run output item.", + "title": "EvalRunOutputItemResult" }, - "OpenAI.AnnotationFileCitation": { + "OpenAI.EvalRunOutputItemSample": { "type": "object", "required": [ - "type", - "file_id", - "index", - "filename" + "input", + "output", + "finish_reason", + "model", + "usage", + "error", + "temperature", + "max_completion_tokens", + "top_p", + "seed" ], "properties": { - "type": { - "type": "string", - "enum": [ - "file_citation" - ], - "description": "The type of the file citation. Always `file_citation`." + "input": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemSampleInput" + } }, - "file_id": { - "type": "string", - "description": "The ID of the file." + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemSampleOutput" + } }, - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the file in the list of files." + "finish_reason": { + "type": "string" }, - "filename": { - "type": "string", - "description": "The filename of the file cited." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Annotation" + "model": { + "type": "string" + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemSampleUsage" + }, + "error": { + "$ref": "#/components/schemas/OpenAI.EvalApiError" + }, + "temperature": { + "type": "number" + }, + "max_completion_tokens": { + "type": "integer" + }, + "top_p": { + "type": "number" + }, + "seed": { + "type": "integer" } - ], - "description": "A citation to a file." + } }, - "OpenAI.AnnotationFilePath": { + "OpenAI.EvalRunOutputItemSampleInput": { "type": "object", "required": [ - "type", - "file_id", - "index" + "role", + "content" ], "properties": { - "type": { - "type": "string", - "enum": [ - "file_path" - ], - "description": "The type of the file path. Always `file_path`." - }, - "file_id": { - "type": "string", - "description": "The ID of the file." + "role": { + "type": "string" }, - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the file in the list of files." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Annotation" + "content": { + "type": "string" } - ], - "description": "A path to a file." + } }, - "OpenAI.AnnotationType": { - "anyOf": [ - { + "OpenAI.EvalRunOutputItemSampleOutput": { + "type": "object", + "properties": { + "role": { "type": "string" }, - { - "type": "string", - "enum": [ - "file_citation", - "url_citation", - "file_path", - "container_file_citation" - ] + "content": { + "type": "string" } - ] + } }, - "OpenAI.AnnotationUrlCitation": { + "OpenAI.EvalRunOutputItemSampleUsage": { "type": "object", "required": [ - "type", - "url", - "start_index", - "end_index", - "title" + "total_tokens", + "completion_tokens", + "prompt_tokens", + "cached_tokens" ], "properties": { - "type": { - "type": "string", - "enum": [ - "url_citation" - ], - "description": "The type of the URL citation. Always `url_citation`." - }, - "url": { - "type": "string", - "format": "uri", - "description": "The URL of the web resource." + "total_tokens": { + "type": "integer" }, - "start_index": { - "type": "integer", - "format": "int32", - "description": "The index of the first character of the URL citation in the message." + "completion_tokens": { + "type": "integer" }, - "end_index": { - "type": "integer", - "format": "int32", - "description": "The index of the last character of the URL citation in the message." + "prompt_tokens": { + "type": "integer" }, - "title": { - "type": "string", - "description": "The title of the web resource." + "cached_tokens": { + "type": "integer" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Annotation" - } - ], - "description": "A citation for a web resource used to generate a model response." + } }, - "OpenAI.ApproximateLocation": { + "OpenAI.EvalRunPerModelUsage": { "type": "object", "required": [ - "type" + "model_name", + "invocation_count", + "prompt_tokens", + "completion_tokens", + "total_tokens", + "cached_tokens" ], "properties": { - "type": { + "model_name": { "type": "string", - "enum": [ - "approximate" - ] + "x-stainless-naming": { + "python": { + "property_name": "run_model_name" + } + } }, - "country": { - "type": "string", - "nullable": true + "invocation_count": { + "type": "integer" }, - "region": { - "type": "string", - "nullable": true + "prompt_tokens": { + "type": "integer" }, - "city": { - "type": "string", - "nullable": true + "completion_tokens": { + "type": "integer" }, - "timezone": { - "type": "string", - "nullable": true - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Location" + "total_tokens": { + "type": "integer" + }, + "cached_tokens": { + "type": "integer" } - ] + } }, - "OpenAI.AutoChunkingStrategyRequestParam": { + "OpenAI.EvalRunPerTestingCriteriaResults": { "type": "object", "required": [ - "type" + "testing_criteria", + "passed", + "failed" ], "properties": { - "type": { - "type": "string", - "enum": [ - "auto" - ], - "description": "Always `auto`." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" + "testing_criteria": { + "type": "string" + }, + "passed": { + "type": "integer" + }, + "failed": { + "type": "integer" } - ], - "description": "The default strategy. This strategy currently uses a `max_chunk_size_tokens` of `800` and `chunk_overlap_tokens` of `400`." + } }, - "OpenAI.ChatCompletionFunctionCallOption": { + "OpenAI.EvalRunResultCounts": { "type": "object", "required": [ - "name" + "total", + "errored", + "failed", + "passed" ], "properties": { - "name": { - "type": "string", - "description": "The name of the function to call." + "total": { + "type": "integer" + }, + "errored": { + "type": "integer" + }, + "failed": { + "type": "integer" + }, + "passed": { + "type": "integer" } - }, - "description": "Specifying a particular function via `{\"name\": \"my_function\"}` forces the model to call that function." + } }, - "OpenAI.ChatCompletionFunctions": { + "OpenAI.EvalStoredCompletionsDataSourceConfig": { "type": "object", "required": [ - "name" + "type", + "schema" ], "properties": { - "description": { + "type": { "type": "string", - "description": "A description of what the function does, used by the model to choose when and how to call the function." + "enum": [ + "stored_completions" + ], + "description": "The type of data source. Always `stored_completions`.", + "x-stainless-const": true, + "default": "stored_completions" }, - "name": { - "type": "string", - "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] }, - "parameters": { - "description": "The parameters the functions accepts, described as a JSON Schema object.\nSee the [JSON Schema reference](https://json-schema.org/understanding-json-schema/)\nfor documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list." + "schema": { + "type": "object", + "unevaluatedProperties": {}, + "description": "The json schema for the run data source items.\n Learn how to build JSON schemas [here](https://json-schema.org/)." } }, - "deprecated": true + "description": "Deprecated in favor of LogsDataSourceConfig.", + "title": "StoredCompletionsDataSourceConfig", + "x-oaiMeta": { + "name": "The stored completions data source object for evals", + "group": "evals", + "example": "{\n \"type\": \"stored_completions\",\n \"metadata\": {\n \"language\": \"english\"\n },\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"item\": {\n \"type\": \"object\"\n },\n \"sample\": {\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"item\",\n \"sample\"\n }\n}\n" + } }, - "OpenAI.ChatCompletionMessageAudioChunk": { + "OpenAI.EvalStoredCompletionsSource": { "type": "object", + "required": [ + "type" + ], "properties": { - "id": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "stored_completions" + ], + "description": "The type of source. Always `stored_completions`.", + "x-stainless-const": true, + "default": "stored_completions" }, - "transcript": { - "type": "string" + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "created_after": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] }, - "data": { - "type": "string", - "format": "base64" + "created_before": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] }, - "expires_at": { - "type": "integer", - "format": "unixtime" + "limit": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] } + }, + "description": "A StoredCompletionsRunDataSource configuration describing a set of filters", + "title": "StoredCompletionsRunDataSource", + "x-oaiMeta": { + "name": "The stored completions data source object used to configure an individual run", + "group": "eval runs", + "example": "{\n \"type\": \"stored_completions\",\n \"model\": \"gpt-4o\",\n \"created_after\": 1668124800,\n \"created_before\": 1668124900,\n \"limit\": 100,\n \"metadata\": {}\n}\n" } }, - "OpenAI.ChatCompletionMessageToolCall": { + "OpenAI.FileCitationBody": { "type": "object", "required": [ - "id", "type", - "function" + "file_id", + "index", + "filename" ], "properties": { - "id": { - "type": "string", - "description": "The ID of the tool call." - }, "type": { "type": "string", "enum": [ - "function" + "file_citation" ], - "description": "The type of the tool. Currently, only `function` is supported." + "description": "The type of the file citation. Always `file_citation`.", + "x-stainless-const": true, + "default": "file_citation" }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to call." - }, - "arguments": { - "type": "string", - "description": "The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function." - } - }, - "required": [ - "name", - "arguments" - ], - "description": "The function that the model called." + "file_id": { + "type": "string", + "description": "The ID of the file." + }, + "index": { + "type": "integer", + "description": "The index of the file in the list of files." + }, + "filename": { + "type": "string", + "description": "The filename of the file cited." } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Annotation" + } + ], + "description": "A citation to a file.", + "title": "File citation" }, - "OpenAI.ChatCompletionMessageToolCallChunk": { + "OpenAI.FilePath": { "type": "object", "required": [ + "type", + "file_id", "index" ], "properties": { - "index": { - "type": "integer", - "format": "int32" - }, - "id": { - "type": "string", - "description": "The ID of the tool call." - }, "type": { "type": "string", "enum": [ - "function" + "file_path" ], - "description": "The type of the tool. Currently, only `function` is supported." + "description": "The type of the file path. Always `file_path`.", + "x-stainless-const": true }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to call." - }, - "arguments": { - "type": "string", - "description": "The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function." - } - } + "file_id": { + "type": "string", + "description": "The ID of the file." + }, + "index": { + "type": "integer", + "description": "The index of the file in the list of files." } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Annotation" + } + ], + "description": "A path to a file.", + "title": "File path" }, - "OpenAI.ChatCompletionNamedToolChoice": { + "OpenAI.FileSearchRanker": { + "type": "string", + "enum": [ + "auto", + "default_2024_08_21" + ], + "description": "The ranker to use for the file search. If not specified will use the `auto` ranker." + }, + "OpenAI.FileSearchRankingOptions": { "type": "object", "required": [ - "type", - "function" + "score_threshold" ], "properties": { - "type": { - "type": "string", - "enum": [ - "function" - ], - "description": "The type of the tool. Currently, only `function` is supported." + "ranker": { + "$ref": "#/components/schemas/OpenAI.FileSearchRanker" }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to call." - } - }, - "required": [ - "name" - ] + "score_threshold": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "The score threshold for the file search. All values must be a floating point number between 0 and 1." } }, - "description": "Specifies a tool the model should use. Use to force the model to call a specific function." + "description": "The ranking options for the file search. If not specified, the file search tool will use the `auto` ranker and a score_threshold of 0.\n\nSee the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information.", + "title": "File search tool call ranking options" }, - "OpenAI.ChatCompletionRequestAssistantMessage": { + "OpenAI.FileSearchTool": { "type": "object", "required": [ - "role" + "type", + "vector_store_ids" ], "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPart" - } - } - ], - "nullable": true, - "description": "The contents of the assistant message. Required unless `tool_calls` or `function_call` is specified." - }, - "refusal": { - "type": "string", - "nullable": true, - "description": "The refusal message by the assistant." - }, - "role": { + "type": { "type": "string", "enum": [ - "assistant" + "file_search" ], - "description": "The role of the messages author, in this case `assistant`." + "description": "The type of the file search tool. Always `file_search`.", + "x-stainless-const": true, + "default": "file_search" }, - "name": { - "type": "string", - "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + "vector_store_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The IDs of the vector stores to search." }, - "audio": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for a previous audio response from the model." + "max_num_results": { + "type": "integer", + "description": "The maximum number of results to return. This number should be between 1 and 50 inclusive." + }, + "ranking_options": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RankingOptions" } - }, - "required": [ - "id" ], - "nullable": true, - "description": "Data about a previous audio response from the model." - }, - "tool_calls": { - "$ref": "#/components/schemas/ChatCompletionMessageToolCallsItem" + "description": "Ranking options for search." }, - "function_call": { - "type": "object", - "properties": { - "name": { - "type": "string" + "filters": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Filters" }, - "arguments": { - "type": "string" + { + "type": "null" } - }, - "required": [ - "name", - "arguments" - ], - "nullable": true, - "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model.", - "deprecated": true + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + "$ref": "#/components/schemas/OpenAI.Tool" } ], - "description": "Messages sent by the model in response to user messages." + "description": "A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search).", + "title": "File search" }, - "OpenAI.ChatCompletionRequestAssistantMessageContentPart": { + "OpenAI.FileSearchToolCallResults": { + "type": "object", + "properties": { + "file_id": { + "type": "string" + }, + "text": { + "type": "string" + }, + "filename": { + "type": "string" + }, + "attributes": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" + }, + { + "type": "null" + } + ] + }, + "score": { + "type": "number", + "format": "float" + } + } + }, + "OpenAI.Filters": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + "$ref": "#/components/schemas/OpenAI.ComparisonFilter" }, { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartRefusal" + "$ref": "#/components/schemas/OpenAI.CompoundFilter" } ] }, - "OpenAI.ChatCompletionRequestDeveloperMessage": { + "OpenAI.FineTuneDPOHyperparameters": { "type": "object", - "required": [ - "content", - "role" - ], "properties": { - "content": { + "beta": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "number" + } + ], + "description": "The beta value for the DPO method. A higher beta value will increase the weight of the penalty between the policy and reference model." + }, + "batch_size": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "integer" + } + ], + "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.", + "default": "auto" + }, + "learning_rate_multiplier": { "anyOf": [ { - "type": "string" + "type": "string", + "enum": [ + "auto" + ] }, { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" - } + "type": "number" } ], - "description": "The contents of the developer message." + "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting." }, - "role": { - "type": "string", - "enum": [ - "developer" + "n_epochs": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "integer" + } ], - "description": "The role of the messages author, in this case `developer`." - }, - "name": { - "type": "string", - "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.", + "default": "auto" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + "description": "The hyperparameters used for the DPO fine-tuning job." + }, + "OpenAI.FineTuneDPOMethod": { + "type": "object", + "properties": { + "hyperparameters": { + "$ref": "#/components/schemas/OpenAI.FineTuneDPOHyperparameters" } - ], - "description": "Developer-provided instructions that the model should follow, regardless of\nmessages sent by the user. With o1 models and newer, `developer` messages\nreplace the previous `system` messages." + }, + "description": "Configuration for the DPO fine-tuning method." }, - "OpenAI.ChatCompletionRequestFunctionMessage": { + "OpenAI.FineTuneMethod": { "type": "object", "required": [ - "role", - "content", - "name" + "type" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "function" + "supervised", + "dpo", + "reinforcement" ], - "description": "The role of the messages author, in this case `function`." + "description": "The type of method. Is either `supervised`, `dpo`, or `reinforcement`." }, - "content": { - "type": "string", - "nullable": true, - "description": "The contents of the function message." + "supervised": { + "$ref": "#/components/schemas/OpenAI.FineTuneSupervisedMethod" }, - "name": { - "type": "string", - "description": "The name of the function to call." + "dpo": { + "$ref": "#/components/schemas/OpenAI.FineTuneDPOMethod" + }, + "reinforcement": { + "$ref": "#/components/schemas/AzureFineTuneReinforcementMethod" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" - } - ], - "deprecated": true + "description": "The method used for fine-tuning." }, - "OpenAI.ChatCompletionRequestMessage": { + "OpenAI.FineTuneReinforcementHyperparameters": { "type": "object", - "required": [ - "role" - ], "properties": { - "role": { - "allOf": [ + "batch_size": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRole" + "type": "integer" } ], - "description": "The role of the author of this message." + "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.", + "default": "auto" }, - "content": { + "learning_rate_multiplier": { "anyOf": [ { - "type": "string" + "type": "string", + "enum": [ + "auto" + ] }, { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart" - } + "type": "number" } ], - "nullable": true, - "description": "The content of the message. Valid content part types vary per message role." - } - }, - "discriminator": { - "propertyName": "role", - "mapping": { - "system": "#/components/schemas/OpenAI.ChatCompletionRequestSystemMessage", - "developer": "#/components/schemas/OpenAI.ChatCompletionRequestDeveloperMessage", - "user": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessage", - "assistant": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessage", - "tool": "#/components/schemas/OpenAI.ChatCompletionRequestToolMessage", - "function": "#/components/schemas/OpenAI.ChatCompletionRequestFunctionMessage" - } - } - }, - "OpenAI.ChatCompletionRequestMessageContentPart": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "text": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText", - "image_url": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImage", - "refusal": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartRefusal", - "file": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFile", - "input_audio": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudio" - } - } - }, - "OpenAI.ChatCompletionRequestMessageContentPartAudio": { - "type": "object", - "required": [ - "type", - "input_audio" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "input_audio" - ], - "description": "The type of the content part. Always `input_audio`." + "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting." }, - "input_audio": { - "type": "object", - "properties": { - "data": { - "type": "string", - "format": "base64", - "description": "Base64 encoded audio data." - }, - "format": { + "n_epochs": { + "anyOf": [ + { "type": "string", "enum": [ - "wav", - "mp3" - ], - "description": "The format of the encoded audio data. Currently supports \"wav\" and \"mp3\"." + "auto" + ] + }, + { + "type": "integer" } - }, - "required": [ - "data", - "format" - ] - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart" - } - ], - "description": "" - }, - "OpenAI.ChatCompletionRequestMessageContentPartFile": { - "type": "object", - "required": [ - "type", - "file" - ], - "properties": { - "type": { + ], + "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.", + "default": "auto" + }, + "reasoning_effort": { "type": "string", "enum": [ - "file" + "default", + "low", + "medium", + "high" ], - "description": "The type of the content part. Always `file`." + "description": "Level of reasoning effort.", + "default": "default" }, - "file": { - "type": "object", - "properties": { - "filename": { + "compute_multiplier": { + "anyOf": [ + { "type": "string", - "description": "The name of the file, used when passing the file to the model as a\nstring." + "enum": [ + "auto" + ] }, - "file_data": { + { + "type": "number" + } + ], + "description": "Multiplier on amount of compute used for exploring search space during training." + }, + "eval_interval": { + "anyOf": [ + { "type": "string", - "description": "The base64 encoded file data, used when passing the file to the model\nas a string." + "enum": [ + "auto" + ] }, - "file_id": { + { + "type": "integer" + } + ], + "description": "The number of training steps between evaluation runs.", + "default": "auto" + }, + "eval_samples": { + "anyOf": [ + { "type": "string", - "description": "The ID of an uploaded file to use as input." + "enum": [ + "auto" + ] + }, + { + "type": "integer" } - } + ], + "description": "Number of evaluation samples to generate per training step.", + "default": "auto" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart" - } - ], - "description": "Learn about [file inputs](/docs/guides/text) for text generation." + "description": "The hyperparameters used for the reinforcement fine-tuning job." }, - "OpenAI.ChatCompletionRequestMessageContentPartImage": { + "OpenAI.FineTuneSupervisedHyperparameters": { "type": "object", - "required": [ - "type", - "image_url" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "image_url" + "batch_size": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "integer" + } ], - "description": "The type of the content part." - }, - "image_url": { - "type": "object", - "properties": { - "url": { + "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.", + "default": "auto" + }, + "learning_rate_multiplier": { + "anyOf": [ + { "type": "string", - "format": "uri", - "description": "Either a URL of the image or the base64 encoded image data." + "enum": [ + "auto" + ] }, - "detail": { + { + "type": "number" + } + ], + "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting." + }, + "n_epochs": { + "anyOf": [ + { "type": "string", "enum": [ - "auto", - "low", - "high" - ], - "description": "Specifies the detail level of the image. Learn more in the [Vision guide](/docs/guides/vision#low-or-high-fidelity-image-understanding).", - "default": "auto" + "auto" + ] + }, + { + "type": "integer" } - }, - "required": [ - "url" - ] + ], + "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.", + "default": "auto" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart" + "description": "The hyperparameters used for the fine-tuning job." + }, + "OpenAI.FineTuneSupervisedMethod": { + "type": "object", + "properties": { + "hyperparameters": { + "$ref": "#/components/schemas/OpenAI.FineTuneSupervisedHyperparameters" } - ], - "description": "" + }, + "description": "Configuration for the supervised fine-tuning method." }, - "OpenAI.ChatCompletionRequestMessageContentPartRefusal": { + "OpenAI.FineTuningCheckpointPermission": { "type": "object", "required": [ - "type", - "refusal" + "id", + "created_at", + "project_id", + "object" ], "properties": { - "type": { + "id": { "type": "string", - "enum": [ - "refusal" - ], - "description": "The type of the content part." + "description": "The permission identifier, which can be referenced in the API endpoints." }, - "refusal": { + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the permission was created." + }, + "project_id": { "type": "string", - "description": "The refusal message generated by the model." + "description": "The project identifier that the permission is for." + }, + "object": { + "type": "string", + "enum": [ + "checkpoint.permission" + ], + "description": "The object type, which is always \"checkpoint.permission\".", + "x-stainless-const": true } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart" - } - ] + "description": "The `checkpoint.permission` object represents a permission for a fine-tuned model checkpoint.", + "title": "FineTuningCheckpointPermission", + "x-oaiMeta": { + "name": "The fine-tuned model checkpoint permission object", + "example": "{\n \"object\": \"checkpoint.permission\",\n \"id\": \"cp_zc4Q7MP6XxulcVzj4MZdwsAB\",\n \"created_at\": 1712211699,\n \"project_id\": \"proj_abGMw1llN8IrBb6SvvY5A1iH\"\n}\n" + } }, - "OpenAI.ChatCompletionRequestMessageContentPartText": { + "OpenAI.FineTuningIntegration": { "type": "object", "required": [ "type", - "text" + "wandb" ], "properties": { "type": { "type": "string", "enum": [ - "text" + "wandb" ], - "description": "The type of the content part." + "description": "The type of the integration being enabled for the fine-tuning job", + "x-stainless-const": true }, - "text": { - "type": "string", - "description": "The text content." + "wandb": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FineTuningIntegrationWandb" + } + ], + "description": "The settings for your integration with Weights and Biases. This payload specifies the project that\n metrics will be sent to. Optionally, you can set an explicit display name for your run, add tags\n to your run, and set a default entity (team, username, etc) to be associated with your run." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart" - } - ], - "description": "" - }, - "OpenAI.ChatCompletionRequestMessageContentPartType": { - "type": "string", - "enum": [ - "text", - "file", - "input_audio", - "image_url", - "refusal" - ] + "title": "Fine-Tuning Job Integration" }, - "OpenAI.ChatCompletionRequestSystemMessage": { + "OpenAI.FineTuningIntegrationWandb": { "type": "object", "required": [ - "content", - "role" + "project" ], "properties": { - "content": { + "project": { + "type": "string" + }, + "name": { "anyOf": [ { "type": "string" }, { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestSystemMessageContentPart" - } + "type": "null" } - ], - "description": "The contents of the system message." - }, - "role": { - "type": "string", - "enum": [ - "system" - ], - "description": "The role of the messages author, in this case `system`." - }, - "name": { - "type": "string", - "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" - } - ], - "description": "Developer-provided instructions that the model should follow, regardless of\nmessages sent by the user. With o1 models and newer, use `developer` messages\nfor this purpose instead." - }, - "OpenAI.ChatCompletionRequestSystemMessageContentPart": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" - }, - "OpenAI.ChatCompletionRequestToolMessage": { - "type": "object", - "required": [ - "role", - "content", - "tool_call_id" - ], - "properties": { - "role": { - "type": "string", - "enum": [ - "tool" - ], - "description": "The role of the messages author, in this case `tool`." + ] }, - "content": { + "entity": { "anyOf": [ { "type": "string" }, { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestToolMessageContentPart" - } + "type": "null" } - ], - "description": "The contents of the tool message." + ] }, - "tool_call_id": { - "type": "string", - "description": "Tool call that this message is responding to." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + "tags": { + "type": "array", + "items": { + "type": "string" + } } - ] - }, - "OpenAI.ChatCompletionRequestToolMessageContentPart": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + } }, - "OpenAI.ChatCompletionRequestUserMessage": { + "OpenAI.FineTuningJob": { "type": "object", "required": [ - "content", - "role" + "id", + "created_at", + "error", + "fine_tuned_model", + "finished_at", + "hyperparameters", + "model", + "object", + "organization_id", + "result_files", + "status", + "trained_tokens", + "training_file", + "validation_file", + "seed" ], "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart" - } - } - ], - "description": "The contents of the user message." - }, - "role": { - "type": "string", - "enum": [ - "user" - ], - "description": "The role of the messages author, in this case `user`." - }, - "name": { + "id": { "type": "string", - "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" - } - ], - "description": "Messages sent by an end user, containing prompts or additional context\ninformation." - }, - "OpenAI.ChatCompletionRequestUserMessageContentPart": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" - }, - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImage" + "description": "The object identifier, which can be referenced in the API endpoints." }, - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudio" + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the fine-tuning job was created." }, - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFile" - } - ] - }, - "OpenAI.ChatCompletionRole": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant", - "tool", - "function" - ], - "description": "The role of the author of a message" - }, - "OpenAI.ChatCompletionStreamOptions": { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean", - "description": "If set, an additional chunk will be streamed before the `data: [DONE]`\nmessage. The `usage` field on this chunk shows the token usage statistics\nfor the entire request, and the `choices` field will always be an empty\narray.\n\nAll other chunks will also include a `usage` field, but with a null\nvalue. **NOTE:** If the stream is interrupted, you may not receive the\nfinal usage chunk which contains the total token usage for the request." - } - }, - "description": "Options for streaming response. Only set this when you set `stream: true`." - }, - "OpenAI.ChatCompletionStreamResponseDelta": { - "type": "object", - "properties": { - "audio": { - "allOf": [ + "error": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageAudioChunk" + "$ref": "#/components/schemas/OpenAI.FineTuningJobError" + }, + { + "type": "null" } - ], - "description": "Response audio associated with the streaming chat delta payload." - }, - "content": { - "type": "string", - "nullable": true, - "description": "The contents of the chunk message." + ] }, - "function_call": { - "type": "object", - "properties": { - "name": { + "fine_tuned_model": { + "anyOf": [ + { "type": "string" }, - "arguments": { - "type": "string" + { + "type": "null" } - }, - "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model.", - "deprecated": true + ] }, - "tool_calls": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunk" - }, - "readOnly": true + "finished_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" }, - "role": { + "hyperparameters": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRole" + "$ref": "#/components/schemas/OpenAI.FineTuningJobHyperparameters" } ], - "description": "The role of the author of this message." + "description": "The hyperparameters used for the fine-tuning job. This value will only be returned when running `supervised` jobs." }, - "refusal": { + "model": { "type": "string", - "nullable": true, - "description": "The refusal message generated by the model." - } - }, - "description": "A chat completion delta generated by streamed model responses." - }, - "OpenAI.ChatCompletionTokenLogprob": { - "type": "object", - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ], - "properties": { - "token": { + "description": "The base model that is being fine-tuned." + }, + "object": { "type": "string", - "description": "The token." + "enum": [ + "fine_tuning.job" + ], + "description": "The object type, which is always \"fine_tuning.job\".", + "x-stainless-const": true }, - "logprob": { - "type": "number", - "format": "float", - "description": "The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely." + "organization_id": { + "type": "string", + "description": "The organization that owns the fine-tuning job." }, - "bytes": { + "result_files": { "type": "array", "items": { - "type": "integer", - "format": "int32" + "type": "string" }, - "nullable": true, - "description": "A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token." + "description": "The compiled results file ID(s) for the fine-tuning job. You can retrieve the results with the [Files API](https://platform.openai.com/docs/api-reference/files/retrieve-contents)." }, - "top_logprobs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string", - "description": "The token." - }, - "logprob": { - "type": "number", - "format": "float", - "description": "The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely." - }, - "bytes": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true, - "description": "A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token." - } - }, - "required": [ - "token", - "logprob", - "bytes" - ] - }, - "description": "List of the most likely tokens and their log probability, at this token position. In rare cases, there may be fewer than the number of requested `top_logprobs` returned." - } - } - }, - "OpenAI.ChatCompletionTool": { - "type": "object", - "required": [ - "type", - "function" - ], - "properties": { - "type": { + "status": { "type": "string", "enum": [ - "function" + "validating_files", + "queued", + "running", + "succeeded", + "failed", + "cancelled" ], - "description": "The type of the tool. Currently, only `function` is supported." + "description": "The current status of the fine-tuning job, which can be either `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`." }, - "function": { - "$ref": "#/components/schemas/OpenAI.FunctionObject" - } - } - }, - "OpenAI.ChatCompletionToolChoiceOption": { - "anyOf": [ - { - "type": "string", - "enum": [ - "none", - "auto", - "required" + "trained_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } ] }, - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionNamedToolChoice" - } - ], - "description": "Controls which (if any) tool is called by the model.\n`none` means the model will not call any tool and instead generates a message.\n`auto` means the model can pick between generating a message or calling one or more tools.\n`required` means the model must call one or more tools.\nSpecifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces the model to call that tool.\n\n`none` is the default when no tools are present. `auto` is the default if tools are present." - }, - "OpenAI.ChatOutputPrediction": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.ChatOutputPredictionType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "content": "#/components/schemas/OpenAI.ChatOutputPredictionContent" - } - }, - "description": "Base representation of predicted output from a model." - }, - "OpenAI.ChatOutputPredictionContent": { - "type": "object", - "required": [ - "type", - "content" - ], - "properties": { - "type": { + "training_file": { "type": "string", - "enum": [ - "content" - ], - "description": "The type of the predicted content you want to provide. This type is\ncurrently always `content`." + "description": "The file ID used for training. You can retrieve the training data with the [Files API](https://platform.openai.com/docs/api-reference/files/retrieve-contents)." }, - "content": { + "validation_file": { "anyOf": [ { "type": "string" }, + { + "type": "null" + } + ] + }, + "integrations": { + "anyOf": [ { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + "$ref": "#/components/schemas/OpenAI.FineTuningIntegration" } + }, + { + "type": "null" + } + ] + }, + "seed": { + "type": "integer", + "description": "The seed used for the fine-tuning job." + }, + "estimated_finish": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" } ], - "description": "The content that should be matched when generating a model response.\nIf generated tokens would match this content, the entire model response\ncan be returned much more quickly." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatOutputPrediction" - } - ], - "description": "Static predicted output content, such as the content of a text file that is\nbeing regenerated." - }, - "OpenAI.ChatOutputPredictionType": { - "anyOf": [ - { - "type": "string" + "type": "integer", + "format": "unixTimestamp" }, - { - "type": "string", - "enum": [ - "content" + "method": { + "$ref": "#/components/schemas/OpenAI.FineTuneMethod" + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } ] } - ] + }, + "description": "The `fine_tuning.job` object represents a fine-tuning job that has been created through the API.", + "title": "FineTuningJob", + "x-oaiMeta": { + "name": "The fine-tuning job object", + "example": "{\n \"object\": \"fine_tuning.job\",\n \"id\": \"ftjob-abc123\",\n \"model\": \"davinci-002\",\n \"created_at\": 1692661014,\n \"finished_at\": 1692661190,\n \"fine_tuned_model\": \"ft:davinci-002:my-org:custom_suffix:7q8mpxmy\",\n \"organization_id\": \"org-123\",\n \"result_files\": [\n \"file-abc123\"\n ],\n \"status\": \"succeeded\",\n \"validation_file\": null,\n \"training_file\": \"file-abc123\",\n \"hyperparameters\": {\n \"n_epochs\": 4,\n \"batch_size\": 1,\n \"learning_rate_multiplier\": 1.0\n },\n \"trained_tokens\": 5768,\n \"integrations\": [],\n \"seed\": 0,\n \"estimated_finish\": 0,\n \"method\": {\n \"type\": \"supervised\",\n \"supervised\": {\n \"hyperparameters\": {\n \"n_epochs\": 4,\n \"batch_size\": 1,\n \"learning_rate_multiplier\": 1.0\n }\n }\n },\n \"metadata\": {\n \"key\": \"value\"\n }\n}\n" + } }, - "OpenAI.ChunkingStrategyRequestParam": { + "OpenAI.FineTuningJobCheckpoint": { "type": "object", "required": [ - "type" + "id", + "created_at", + "fine_tuned_model_checkpoint", + "step_number", + "metrics", + "fine_tuning_job_id", + "object" ], "properties": { - "type": { + "id": { "type": "string", - "enum": [ - "auto", - "static" + "description": "The checkpoint identifier, which can be referenced in the API endpoints." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the checkpoint was created." + }, + "fine_tuned_model_checkpoint": { + "type": "string", + "description": "The name of the fine-tuned checkpoint model that is created." + }, + "step_number": { + "type": "integer", + "description": "The step number that the checkpoint was created at." + }, + "metrics": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FineTuningJobCheckpointMetrics" + } ], - "description": "The type of chunking strategy." - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "static": "#/components/schemas/OpenAI.StaticChunkingStrategyRequestParam" + "description": "Metrics at the step number during the fine-tuning job." + }, + "fine_tuning_job_id": { + "type": "string", + "description": "The name of the fine-tuning job that this checkpoint was created from." + }, + "object": { + "type": "string", + "enum": [ + "fine_tuning.job.checkpoint" + ], + "description": "The object type, which is always \"fine_tuning.job.checkpoint\".", + "x-stainless-const": true } }, - "description": "The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy." + "description": "The `fine_tuning.job.checkpoint` object represents a model checkpoint for a fine-tuning job that is ready to use.", + "title": "FineTuningJobCheckpoint", + "x-oaiMeta": { + "name": "The fine-tuning job checkpoint object", + "example": "{\n \"object\": \"fine_tuning.job.checkpoint\",\n \"id\": \"ftckpt_qtZ5Gyk4BLq1SfLFWp3RtO3P\",\n \"created_at\": 1712211699,\n \"fine_tuned_model_checkpoint\": \"ft:gpt-4o-mini-2024-07-18:my-org:custom_suffix:9ABel2dg:ckpt-step-88\",\n \"fine_tuning_job_id\": \"ftjob-fpbNQ3H1GrMehXRf8cO97xTN\",\n \"metrics\": {\n \"step\": 88,\n \"train_loss\": 0.478,\n \"train_mean_token_accuracy\": 0.924,\n \"valid_loss\": 10.112,\n \"valid_mean_token_accuracy\": 0.145,\n \"full_valid_loss\": 0.567,\n \"full_valid_mean_token_accuracy\": 0.944\n },\n \"step_number\": 88\n}\n" + } }, - "OpenAI.ChunkingStrategyResponseParam": { + "OpenAI.FineTuningJobCheckpointMetrics": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "static", - "other" - ] - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "other": "#/components/schemas/OpenAI.OtherChunkingStrategyResponseParam", - "static": "#/components/schemas/OpenAI.StaticChunkingStrategyResponseParam" + "step": { + "type": "number" + }, + "train_loss": { + "type": "number" + }, + "train_mean_token_accuracy": { + "type": "number" + }, + "valid_loss": { + "type": "number" + }, + "valid_mean_token_accuracy": { + "type": "number" + }, + "full_valid_loss": { + "type": "number" + }, + "full_valid_mean_token_accuracy": { + "type": "number" } } }, - "OpenAI.CodeInterpreterOutput": { + "OpenAI.FineTuningJobError": { "type": "object", "required": [ - "type" + "code", + "message", + "param" ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/OpenAI.CodeInterpreterOutputImage", - "logs": "#/components/schemas/OpenAI.CodeInterpreterOutputLogs" + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "param": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } } }, - "OpenAI.CodeInterpreterOutputImage": { + "OpenAI.FineTuningJobEvent": { "type": "object", "required": [ - "type", - "url" + "object", + "id", + "created_at", + "level", + "message" ], "properties": { - "type": { + "object": { "type": "string", "enum": [ - "image" + "fine_tuning.job.event" ], - "description": "The type of the output. Always 'image'." + "description": "The object type, which is always \"fine_tuning.job.event\".", + "x-stainless-const": true }, - "url": { + "id": { "type": "string", - "format": "uri", - "description": "The URL of the image output from the code interpreter." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutput" - } - ], - "description": "The image output from the code interpreter." - }, - "OpenAI.CodeInterpreterOutputLogs": { - "type": "object", - "required": [ - "type", - "logs" - ], - "properties": { - "type": { + "description": "The object identifier." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the fine-tuning job was created." + }, + "level": { "type": "string", "enum": [ - "logs" + "info", + "warn", + "error" ], - "description": "The type of the output. Always 'logs'." + "description": "The log level of the event." }, - "logs": { + "message": { "type": "string", - "description": "The logs output from the code interpreter." + "description": "The message of the event." + }, + "type": { + "type": "string", + "enum": [ + "message", + "metrics" + ], + "description": "The type of event." + }, + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FineTuningJobEventData" + } + ], + "description": "The data associated with the event." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutput" - } - ], - "description": "The logs output from the code interpreter." + "description": "Fine-tuning job event object", + "x-oaiMeta": { + "name": "The fine-tuning job event object", + "example": "{\n \"object\": \"fine_tuning.job.event\",\n \"id\": \"ftevent-abc123\"\n \"created_at\": 1677610602,\n \"level\": \"info\",\n \"message\": \"Created fine-tuning job\",\n \"data\": {},\n \"type\": \"message\"\n}\n" + } }, - "OpenAI.CodeInterpreterOutputType": { - "type": "string", - "enum": [ - "logs", - "image" - ] + "OpenAI.FineTuningJobEventData": { + "type": "object" }, - "OpenAI.CodeInterpreterTool": { + "OpenAI.FineTuningJobHyperparameters": { "type": "object", - "required": [ - "type", - "container" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "code_interpreter" + "batch_size": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "integer" + }, + { + "type": "null" + } ], - "description": "The type of the code interpreter tool. Always `code_interpreter`." + "default": "auto" }, - "container": { + "learning_rate_multiplier": { "anyOf": [ { - "type": "string" + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "number" + } + ] + }, + "n_epochs": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] }, { - "$ref": "#/components/schemas/OpenAI.CodeInterpreterToolAuto" + "type": "integer" } ], - "description": "The code interpreter container. Can be a container ID or an object that\nspecifies uploaded file IDs to make available to your code." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Tool" + "default": "auto" } - ], - "description": "A tool that runs Python code to help generate a response to a prompt." + } }, - "OpenAI.CodeInterpreterToolAuto": { + "OpenAI.FunctionAndCustomToolCallOutput": { "type": "object", "required": [ "type" ], "properties": { "type": { - "type": "string", - "enum": [ - "auto" - ], - "description": "Always `auto`." - }, - "file_ids": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An optional list of uploaded files to make available to your code." + "$ref": "#/components/schemas/OpenAI.FunctionAndCustomToolCallOutputType" } }, - "description": "Configuration for a code interpreter container. Optionally specify the IDs\nof the files to run the code on." + "discriminator": { + "propertyName": "type" + } }, - "OpenAI.CodeInterpreterToolCallItemParam": { - "type": "object", - "required": [ - "type", - "container_id", - "code", - "outputs" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "code_interpreter_call" - ] - }, - "container_id": { - "type": "string", - "description": "The ID of the container used to run the code." - }, - "code": { - "type": "string", - "nullable": true, - "description": "The code to run, or null if not available." - }, - "outputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutput" - }, - "nullable": true, - "description": "The outputs generated by the code interpreter, such as logs or images.\nCan be null if no outputs are available." - } - }, - "allOf": [ + "OpenAI.FunctionAndCustomToolCallOutputType": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } - ], - "description": "A tool call to run code.\n" - }, - "OpenAI.CodeInterpreterToolCallItemResource": { - "type": "object", - "required": [ - "type", - "status", - "container_id", - "code", - "outputs" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "code_interpreter_call" - ] - }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete", - "interpreting", - "failed" - ] - }, - "container_id": { - "type": "string", - "description": "The ID of the container used to run the code." - }, - "code": { - "type": "string", - "nullable": true, - "description": "The code to run, or null if not available." + "type": "string" }, - "outputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutput" - }, - "nullable": true, - "description": "The outputs generated by the code interpreter, such as logs or images.\nCan be null if no outputs are available." - } - }, - "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "type": "string", + "enum": [ + "input_text", + "input_image", + "input_file" + ] } - ], - "description": "A tool call to run code.\n" + ] }, - "OpenAI.ComparisonFilter": { + "OpenAI.FunctionObject": { "type": "object", "required": [ - "type", - "key", - "value" + "name" ], "properties": { - "type": { + "description": { "type": "string", - "enum": [ - "eq", - "ne", - "gt", - "gte", - "lt", - "lte" - ], - "description": "Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`.\n- `eq`: equals\n- `ne`: not equal\n- `gt`: greater than\n- `gte`: greater than or equal\n- `lt`: less than\n- `lte`: less than or equal", - "default": "eq" + "description": "A description of what the function does, used by the model to choose when and how to call the function." }, - "key": { + "name": { "type": "string", - "description": "The key to compare against the value." + "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." }, - "value": { + "parameters": { + "$ref": "#/components/schemas/OpenAI.FunctionParameters" + }, + "strict": { "anyOf": [ { - "type": "string" - }, - { - "type": "number", - "format": "float" + "type": "boolean" }, { - "type": "boolean" + "type": "null" } - ], - "description": "The value to compare against the attribute key; supports string, number, or boolean types." + ] } - }, - "description": "A filter used to compare a specified attribute key to a given value using a defined comparison operation." + } }, - "OpenAI.CompletionUsage": { + "OpenAI.FunctionParameters": { + "type": "object", + "description": "The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list." + }, + "OpenAI.FunctionShellAction": { "type": "object", "required": [ - "completion_tokens", - "prompt_tokens", - "total_tokens" + "commands", + "timeout_ms", + "max_output_length" ], "properties": { - "completion_tokens": { - "type": "integer", - "format": "int32", - "description": "Number of tokens in the generated completion.", - "default": 0 - }, - "prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "Number of tokens in the prompt.", - "default": 0 - }, - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "Total number of tokens used in the request (prompt + completion).", - "default": 0 + "commands": { + "type": "array", + "items": { + "type": "string" + } }, - "completion_tokens_details": { - "type": "object", - "properties": { - "accepted_prediction_tokens": { - "type": "integer", - "format": "int32", - "description": "When using Predicted Outputs, the number of tokens in the\nprediction that appeared in the completion.", - "default": 0 - }, - "audio_tokens": { - "type": "integer", - "format": "int32", - "description": "Audio input tokens generated by the model.", - "default": 0 - }, - "reasoning_tokens": { - "type": "integer", - "format": "int32", - "description": "Tokens generated by the model for reasoning.", - "default": 0 + "timeout_ms": { + "anyOf": [ + { + "type": "integer" }, - "rejected_prediction_tokens": { - "type": "integer", - "format": "int32", - "description": "When using Predicted Outputs, the number of tokens in the\nprediction that did not appear in the completion. However, like\nreasoning tokens, these tokens are still counted in the total\ncompletion tokens for purposes of billing, output, and context window\nlimits.", - "default": 0 + { + "type": "null" } - }, - "description": "Breakdown of tokens used in a completion." + ] }, - "prompt_tokens_details": { - "type": "object", - "properties": { - "audio_tokens": { - "type": "integer", - "format": "int32", - "description": "Audio input tokens present in the prompt.", - "default": 0 + "max_output_length": { + "anyOf": [ + { + "type": "integer" }, - "cached_tokens": { - "type": "integer", - "format": "int32", - "description": "Cached tokens present in the prompt.", - "default": 0 + { + "type": "null" } - }, - "description": "Breakdown of tokens used in the prompt." + ] } }, - "description": "Usage statistics for the completion request." + "description": "Execute a shell command.", + "title": "Shell exec action" }, - "OpenAI.CompoundFilter": { + "OpenAI.FunctionShellCall": { "type": "object", "required": [ "type", - "filters" + "id", + "call_id", + "action", + "status" ], "properties": { "type": { "type": "string", "enum": [ - "and", - "or" + "shell_call" ], - "description": "Type of operation: `and` or `or`." + "description": "The type of the item. Always `shell_call`.", + "x-stainless-const": true, + "default": "shell_call" }, - "filters": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.ComparisonFilter" - }, - { - "$ref": "#/components/schemas/OpenAI.CompoundFilter" - } - ] - }, - "description": "Array of filters to combine. Items can be `ComparisonFilter` or `CompoundFilter`." - } - }, - "description": "Combine multiple filters using `and` or `or`." - }, - "OpenAI.ComputerAction": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.ComputerActionType" + "id": { + "type": "string", + "description": "The unique ID of the shell tool call. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the shell tool call generated by the model." + }, + "action": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FunctionShellAction" + } + ], + "description": "The shell commands and limits that describe how to run the tool call." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.LocalShellCallStatus" + } + ], + "description": "The status of the shell call. One of `in_progress`, `completed`, or `incomplete`." + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call." } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "click": "#/components/schemas/OpenAI.ComputerActionClick", - "double_click": "#/components/schemas/OpenAI.ComputerActionDoubleClick", - "drag": "#/components/schemas/OpenAI.ComputerActionDrag", - "move": "#/components/schemas/OpenAI.ComputerActionMove", - "screenshot": "#/components/schemas/OpenAI.ComputerActionScreenshot", - "scroll": "#/components/schemas/OpenAI.ComputerActionScroll", - "type": "#/components/schemas/OpenAI.ComputerActionTypeKeys", - "wait": "#/components/schemas/OpenAI.ComputerActionWait", - "keypress": "#/components/schemas/OpenAI.ComputerActionKeyPress" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" } - } + ], + "description": "A tool call that executes one or more shell commands in a managed environment.", + "title": "Shell tool call" }, - "OpenAI.ComputerActionClick": { + "OpenAI.FunctionShellCallOutput": { "type": "object", "required": [ "type", - "button", - "x", - "y" + "id", + "call_id", + "output", + "max_output_length" ], "properties": { "type": { "type": "string", "enum": [ - "click" + "shell_call_output" ], - "description": "Specifies the event type. For a click action, this property is\nalways set to `click`." + "description": "The type of the shell call output. Always `shell_call_output`.", + "x-stainless-const": true, + "default": "shell_call_output" }, - "button": { + "id": { "type": "string", - "enum": [ - "left", - "right", - "wheel", - "back", - "forward" - ], - "description": "Indicates which mouse button was pressed during the click. One of `left`, `right`, `wheel`, `back`, or `forward`." + "description": "The unique ID of the shell call output. Populated when this item is returned via API." }, - "x": { - "type": "integer", - "format": "int32", - "description": "The x-coordinate where the click occurred." + "call_id": { + "type": "string", + "description": "The unique ID of the shell tool call generated by the model." }, - "y": { - "type": "integer", - "format": "int32", - "description": "The y-coordinate where the click occurred." + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputContent" + }, + "description": "An array of shell call output contents" + }, + "max_output_length": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "created_by": { + "type": "string" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "$ref": "#/components/schemas/OpenAI.ItemResource" } ], - "description": "A click action." + "description": "The output of a shell tool call.", + "title": "Shell call output" + }, + "OpenAI.FunctionShellCallOutputContent": { + "type": "object", + "required": [ + "stdout", + "stderr", + "outcome" + ], + "properties": { + "stdout": { + "type": "string" + }, + "stderr": { + "type": "string" + }, + "outcome": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputOutcome" + } + ], + "description": "Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk." + }, + "created_by": { + "type": "string" + } + }, + "description": "The content of a shell call output.", + "title": "Shell call output content" }, - "OpenAI.ComputerActionDoubleClick": { + "OpenAI.FunctionShellCallOutputExitOutcome": { "type": "object", "required": [ "type", - "x", - "y" + "exit_code" ], "properties": { "type": { "type": "string", "enum": [ - "double_click" + "exit" ], - "description": "Specifies the event type. For a double click action, this property is\nalways set to `double_click`." - }, - "x": { - "type": "integer", - "format": "int32", - "description": "The x-coordinate where the double click occurred." + "description": "The outcome type. Always `exit`.", + "x-stainless-const": true, + "default": "exit" }, - "y": { + "exit_code": { "type": "integer", - "format": "int32", - "description": "The y-coordinate where the double click occurred." + "description": "Exit code from the shell process." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputOutcome" } ], - "description": "A double click action." + "description": "Indicates that the shell commands finished and returned an exit code.", + "title": "Shell call exit outcome" }, - "OpenAI.ComputerActionDrag": { + "OpenAI.FunctionShellCallOutputOutcome": { "type": "object", "required": [ - "type", - "path" + "type" ], "properties": { "type": { - "type": "string", - "enum": [ - "drag" - ], - "description": "Specifies the event type. For a drag action, this property is\nalways set to `drag`." - }, - "path": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Coordinate" - }, - "description": "An array of coordinates representing the path of the drag action. Coordinates will appear as an array\nof objects, eg\n```\n[\n { x: 100, y: 200 },\n { x: 200, y: 300 }\n]\n```" + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputOutcomeType" } }, - "allOf": [ + "discriminator": { + "propertyName": "type", + "mapping": { + "timeout": "#/components/schemas/OpenAI.FunctionShellCallOutputTimeoutOutcome", + "exit": "#/components/schemas/OpenAI.FunctionShellCallOutputExitOutcome" + } + }, + "description": "Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk.", + "title": "Shell call outcome" + }, + "OpenAI.FunctionShellCallOutputOutcomeType": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "type": "string" + }, + { + "type": "string", + "enum": [ + "timeout", + "exit" + ] } - ], - "description": "A drag action." + ] }, - "OpenAI.ComputerActionKeyPress": { + "OpenAI.FunctionShellCallOutputTimeoutOutcome": { "type": "object", "required": [ - "type", - "keys" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "keypress" + "timeout" ], - "description": "Specifies the event type. For a keypress action, this property is\nalways set to `keypress`." - }, - "keys": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The combination of keys the model is requesting to be pressed. This is an\narray of strings, each representing a key." + "description": "The outcome type. Always `timeout`.", + "x-stainless-const": true, + "default": "timeout" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputOutcome" } ], - "description": "A collection of keypresses the model would like to perform." + "description": "Indicates that the shell call exceeded its configured time limit.", + "title": "Shell call timeout outcome" }, - "OpenAI.ComputerActionMove": { + "OpenAI.FunctionShellToolParam": { "type": "object", "required": [ - "type", - "x", - "y" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "move" + "shell" ], - "description": "Specifies the event type. For a move action, this property is\nalways set to `move`." - }, - "x": { - "type": "integer", - "format": "int32", - "description": "The x-coordinate to move to." - }, - "y": { - "type": "integer", - "format": "int32", - "description": "The y-coordinate to move to." + "description": "The type of the shell tool. Always `shell`.", + "x-stainless-const": true, + "default": "shell" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "$ref": "#/components/schemas/OpenAI.Tool" } ], - "description": "A mouse move action." + "description": "A tool that allows the model to execute shell commands.", + "title": "Shell tool" }, - "OpenAI.ComputerActionScreenshot": { + "OpenAI.FunctionTool": { "type": "object", "required": [ - "type" + "type", + "name", + "parameters", + "strict" ], "properties": { "type": { "type": "string", "enum": [ - "screenshot" + "function" ], - "description": "Specifies the event type. For a screenshot action, this property is\nalways set to `screenshot`." + "description": "The type of the function tool. Always `function`.", + "x-stainless-const": true, + "default": "function" + }, + "name": { + "type": "string", + "description": "The name of the function to call." + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "parameters": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": {} + }, + { + "type": "null" + } + ] + }, + "strict": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "$ref": "#/components/schemas/OpenAI.Tool" } ], - "description": "A screenshot action." + "description": "Defines a function in your own code the model can choose to call. Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling).", + "title": "Function" }, - "OpenAI.ComputerActionScroll": { + "OpenAI.FunctionToolCallOutputResource": { "type": "object", "required": [ "type", - "x", - "y", - "scroll_x", - "scroll_y" + "call_id", + "output" ], "properties": { + "id": { + "type": "string", + "description": "The unique ID of the function tool call output. Populated when this item\n is returned via API." + }, "type": { "type": "string", "enum": [ - "scroll" + "function_call_output" ], - "description": "Specifies the event type. For a scroll action, this property is\nalways set to `scroll`." - }, - "x": { - "type": "integer", - "format": "int32", - "description": "The x-coordinate where the scroll occurred." + "description": "The type of the function tool call output. Always `function_call_output`.", + "x-stainless-const": true }, - "y": { - "type": "integer", - "format": "int32", - "description": "The y-coordinate where the scroll occurred." + "call_id": { + "type": "string", + "description": "The unique ID of the function tool call generated by the model." }, - "scroll_x": { - "type": "integer", - "format": "int32", - "description": "The horizontal scroll distance." + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FunctionAndCustomToolCallOutput" + } + } + ], + "description": "The output from the function call generated by your code.\n Can be a string or an list of output content." }, - "scroll_y": { - "type": "integer", - "format": "int32", - "description": "The vertical scroll distance." + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "$ref": "#/components/schemas/OpenAI.ItemResource" } - ], - "description": "A scroll action." - }, - "OpenAI.ComputerActionType": { - "type": "string", - "enum": [ - "screenshot", - "click", - "double_click", - "scroll", - "type", - "wait", - "keypress", - "drag", - "move" ] }, - "OpenAI.ComputerActionTypeKeys": { + "OpenAI.FunctionToolCallResource": { "type": "object", "required": [ "type", - "text" + "call_id", + "name", + "arguments" ], "properties": { + "id": { + "type": "string", + "description": "The unique ID of the function tool call." + }, "type": { "type": "string", "enum": [ - "type" + "function_call" ], - "description": "Specifies the event type. For a type action, this property is\nalways set to `type`." + "description": "The type of the function tool call. Always `function_call`.", + "x-stainless-const": true }, - "text": { + "call_id": { "type": "string", - "description": "The text to type." + "description": "The unique ID of the function tool call generated by the model." + }, + "name": { + "type": "string", + "description": "The name of the function to run." + }, + "arguments": { + "type": "string", + "description": "A JSON string of the arguments to pass to the function." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "$ref": "#/components/schemas/OpenAI.ItemResource" } - ], - "description": "An action to type in text." + ] }, - "OpenAI.ComputerActionWait": { + "OpenAI.GraderMulti": { "type": "object", "required": [ - "type" + "type", + "name", + "graders", + "calculate_output" ], "properties": { "type": { "type": "string", "enum": [ - "wait" + "multi" ], - "description": "Specifies the event type. For a wait action, this property is\nalways set to `wait`." + "description": "The object type, which is always `multi`.", + "x-stainless-const": true, + "default": "multi" + }, + "name": { + "type": "string", + "description": "The name of the grader." + }, + "graders": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.GraderStringCheck" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderScoreModel" + }, + { + "$ref": "#/components/schemas/GraderEndpoint" + } + ] + }, + "calculate_output": { + "type": "string", + "description": "A formula to calculate the output based on grader results." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ComputerAction" - } - ], - "description": "A wait action." + "description": "A MultiGrader object combines the output of multiple graders to produce a single score.", + "title": "MultiGrader", + "x-oaiMeta": { + "name": "Multi Grader", + "group": "graders", + "example": "{\n \"type\": \"multi\",\n \"name\": \"example multi grader\",\n \"graders\": [\n {\n \"type\": \"text_similarity\",\n \"name\": \"example text similarity grader\",\n \"input\": \"The graded text\",\n \"reference\": \"The reference text\",\n \"evaluation_metric\": \"fuzzy_match\"\n },\n {\n \"type\": \"string_check\",\n \"name\": \"Example string check grader\",\n \"input\": \"{{sample.output_text}}\",\n \"reference\": \"{{item.label}}\",\n \"operation\": \"eq\"\n }\n ],\n \"calculate_output\": \"0.5 * text_similarity_score + 0.5 * string_check_score)\"\n}\n" + } }, - "OpenAI.ComputerToolCallItemParam": { + "OpenAI.GraderPython": { "type": "object", "required": [ "type", - "call_id", - "action", - "pending_safety_checks" + "name", + "source" ], "properties": { "type": { "type": "string", "enum": [ - "computer_call" - ] + "python" + ], + "description": "The object type, which is always `python`.", + "x-stainless-const": true }, - "call_id": { + "name": { "type": "string", - "description": "An identifier used when responding to the tool call with output." + "description": "The name of the grader." }, - "action": { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "source": { + "type": "string", + "description": "The source code of the python script." }, - "pending_safety_checks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallSafetyCheck" - }, - "description": "The pending safety checks for the computer call." + "image_tag": { + "type": "string", + "description": "The image tag to use for the python script." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } - ], - "description": "A tool call to a computer use tool. See the\n[computer use guide](/docs/guides/tools-computer-use) for more information.\n" + "description": "A PythonGrader object that runs a python script on the input.", + "title": "PythonGrader", + "x-oaiMeta": { + "name": "Python Grader", + "group": "graders", + "example": "{\n \"type\": \"python\",\n \"name\": \"Example python grader\",\n \"image_tag\": \"2025-05-08\",\n \"source\": \"\"\"\ndef grade(sample: dict, item: dict) -> float:\n \\\"\"\"\n Returns 1.0 if `output_text` equals `label`, otherwise 0.0.\n \\\"\"\"\n output = sample.get(\"output_text\")\n label = item.get(\"label\")\n return 1.0 if output == label else 0.0\n\"\"\",\n}\n" + } }, - "OpenAI.ComputerToolCallItemResource": { + "OpenAI.GraderScoreModel": { "type": "object", "required": [ "type", - "status", - "call_id", - "action", - "pending_safety_checks" + "name", + "model", + "input" ], "properties": { "type": { "type": "string", "enum": [ - "computer_call" - ] + "score_model" + ], + "description": "The object type, which is always `score_model`.", + "x-stainless-const": true }, - "status": { + "name": { "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete" - ], - "description": "The status of the item. One of `in_progress`, `completed`, or\n`incomplete`. Populated when items are returned via API." + "description": "The name of the grader." }, - "call_id": { + "model": { "type": "string", - "description": "An identifier used when responding to the tool call with output." + "description": "The model to use for the evaluation." }, - "action": { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "sampling_params": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.EvalGraderScoreModelSamplingParams" + } + ], + "description": "The sampling parameters for the model." + }, + "input": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalItem" + }, + "description": "The input text. This may include template strings." }, - "pending_safety_checks": { + "range": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallSafetyCheck" + "type": "number" }, - "description": "The pending safety checks for the computer call." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemResource" - } - ], - "description": "A tool call to a computer use tool. See the\n[computer use guide](/docs/guides/tools-computer-use) for more information.\n" - }, - "OpenAI.ComputerToolCallOutputItemOutput": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallOutputItemOutputType" + "description": "The range of the score. Defaults to `[0, 1]`." } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "computer_screenshot": "#/components/schemas/OpenAI.ComputerToolCallOutputItemOutputComputerScreenshot" - } + "description": "A ScoreModelGrader object that uses a model to assign a score to the input.", + "title": "ScoreModelGrader", + "x-oaiMeta": { + "name": "Score Model Grader", + "group": "graders", + "example": "{\n \"type\": \"score_model\",\n \"name\": \"Example score model grader\",\n \"input\": [\n {\n \"role\": \"user\",\n \"content\": (\n \"Score how close the reference answer is to the model answer. Score 1.0 if they are the same and 0.0 if they are different.\"\n \" Return just a floating point score\\n\\n\"\n \" Reference answer: {{item.label}}\\n\\n\"\n \" Model answer: {{sample.output_text}}\"\n ),\n }\n ],\n \"model\": \"o4-mini-2025-04-16\",\n \"sampling_params\": {\n \"temperature\": 1,\n \"top_p\": 1,\n \"seed\": 42,\n \"max_completions_tokens\": 32768,\n \"reasoning_effort\": \"medium\"\n },\n}\n" } }, - "OpenAI.ComputerToolCallOutputItemOutputComputerScreenshot": { + "OpenAI.GraderStringCheck": { "type": "object", "required": [ - "type" + "type", + "name", + "input", + "reference", + "operation" ], "properties": { "type": { "type": "string", "enum": [ - "computer_screenshot" - ] + "string_check" + ], + "description": "The object type, which is always `string_check`.", + "x-stainless-const": true }, - "image_url": { - "type": "string" + "name": { + "type": "string", + "description": "The name of the grader." }, - "file_id": { - "type": "string" - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallOutputItemOutput" - } - ] - }, - "OpenAI.ComputerToolCallOutputItemOutputType": { - "anyOf": [ - { - "type": "string" + "input": { + "type": "string", + "description": "The input text. This may include template strings." }, - { + "reference": { + "type": "string", + "description": "The reference text. This may include template strings." + }, + "operation": { "type": "string", "enum": [ - "computer_screenshot" - ] + "eq", + "ne", + "like", + "ilike" + ], + "description": "The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`." } - ], - "description": "A computer screenshot image used with the computer use tool." + }, + "description": "A StringCheckGrader object that performs a string comparison between input and reference using a specified operation.", + "title": "StringCheckGrader", + "x-oaiMeta": { + "name": "String Check Grader", + "group": "graders", + "example": "{\n \"type\": \"string_check\",\n \"name\": \"Example string check grader\",\n \"input\": \"{{sample.output_text}}\",\n \"reference\": \"{{item.label}}\",\n \"operation\": \"eq\"\n}\n" + } }, - "OpenAI.ComputerToolCallOutputItemParam": { + "OpenAI.GraderTextSimilarity": { "type": "object", "required": [ "type", - "call_id", - "output" + "name", + "input", + "reference", + "evaluation_metric" ], "properties": { "type": { "type": "string", "enum": [ - "computer_call_output" - ] + "text_similarity" + ], + "description": "The type of grader.", + "x-stainless-const": true, + "default": "text_similarity" }, - "call_id": { + "name": { "type": "string", - "description": "The ID of the computer tool call that produced the output." + "description": "The name of the grader." }, - "acknowledged_safety_checks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallSafetyCheck" - }, - "description": "The safety checks reported by the API that have been acknowledged by the\ndeveloper." + "input": { + "type": "string", + "description": "The text being graded." }, - "output": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallOutputItemOutput" + "reference": { + "type": "string", + "description": "The text being graded against." + }, + "evaluation_metric": { + "type": "string", + "enum": [ + "cosine", + "fuzzy_match", + "bleu", + "gleu", + "meteor", + "rouge_1", + "rouge_2", + "rouge_3", + "rouge_4", + "rouge_5", + "rouge_l" + ], + "description": "The evaluation metric to use. One of `cosine`, `fuzzy_match`, `bleu`,\n `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`,\n or `rouge_l`." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } + "description": "A TextSimilarityGrader object which grades text based on similarity metrics.", + "title": "TextSimilarityGrader", + "x-oaiMeta": { + "name": "Text Similarity Grader", + "group": "graders", + "example": "{\n \"type\": \"text_similarity\",\n \"name\": \"Example text similarity grader\",\n \"input\": \"{{sample.output_text}}\",\n \"reference\": \"{{item.label}}\",\n \"evaluation_metric\": \"fuzzy_match\"\n}\n" + } + }, + "OpenAI.GrammarSyntax1": { + "type": "string", + "enum": [ + "lark", + "regex" + ] + }, + "OpenAI.HybridSearchOptions": { + "type": "object", + "required": [ + "embedding_weight", + "text_weight" ], - "description": "The output of a computer tool call.\n" + "properties": { + "embedding_weight": { + "type": "number", + "description": "The weight of the embedding in the reciprocal ranking fusion." + }, + "text_weight": { + "type": "number", + "description": "The weight of the text in the reciprocal ranking fusion." + } + } }, - "OpenAI.ComputerToolCallOutputItemResource": { + "OpenAI.Image": { "type": "object", "required": [ - "type", - "status", - "call_id", - "output" + "prompt_filter_results", + "content_filter_results" ], "properties": { - "type": { + "b64_json": { "type": "string", - "enum": [ - "computer_call_output" - ] + "contentEncoding": "base64", + "description": "The base64-encoded JSON of the generated image. Default value for `gpt-image-1`, and only present if `response_format` is set to `b64_json` for `dall-e-2` and `dall-e-3`." }, - "status": { + "url": { "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete" - ], - "description": "The status of the item. One of `in_progress`, `completed`, or\n`incomplete`. Populated when items are returned via API." + "description": "When using `dall-e-2` or `dall-e-3`, the URL of the generated image if `response_format` is set to `url` (default value). Unsupported for `gpt-image-1`." }, - "call_id": { + "revised_prompt": { "type": "string", - "description": "The ID of the computer tool call that produced the output." + "description": "For `dall-e-3` only, the revised prompt that was used to generate the image." }, - "acknowledged_safety_checks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallSafetyCheck" - }, - "description": "The safety checks reported by the API that have been acknowledged by the\ndeveloper." + "prompt_filter_results": { + "$ref": "#/components/schemas/AzureContentFilterImagePromptResults" }, - "output": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallOutputItemOutput" + "content_filter_results": { + "$ref": "#/components/schemas/AzureContentFilterImageResponseResults" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemResource" - } - ], - "description": "The output of a computer tool call.\n" + "description": "Represents the content or the URL of an image generated by the OpenAI API." + }, + "OpenAI.ImageDetail": { + "type": "string", + "enum": [ + "low", + "high", + "auto" + ] }, - "OpenAI.ComputerToolCallSafetyCheck": { + "OpenAI.ImageGenInputUsageDetails": { "type": "object", "required": [ - "id", - "code", - "message" + "text_tokens", + "image_tokens" ], "properties": { - "id": { - "type": "string", - "description": "The ID of the pending safety check." - }, - "code": { - "type": "string", - "description": "The type of the pending safety check." + "text_tokens": { + "type": "integer", + "description": "The number of text tokens in the input prompt." }, - "message": { - "type": "string", - "description": "Details about the pending safety check." + "image_tokens": { + "type": "integer", + "description": "The number of image tokens in the input prompt." } }, - "description": "A pending safety check for the computer call." + "description": "The input tokens detailed information for the image generation.", + "title": "Input usage details" }, - "OpenAI.ComputerUsePreviewTool": { + "OpenAI.ImageGenTool": { "type": "object", "required": [ - "type", - "environment", - "display_width", - "display_height" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "computer_use_preview" + "image_generation" ], - "description": "The type of the computer use tool. Always `computer_use_preview`." + "description": "The type of the image generation tool. Always `image_generation`.", + "x-stainless-const": true, + "default": "image_generation" }, - "environment": { + "model": { + "type": "string", + "enum": [ + "gpt-image-1", + "gpt-image-1-mini" + ], + "description": "The image generation model to use. Default: `gpt-image-1`.", + "default": "gpt-image-1" + }, + "quality": { + "type": "string", + "enum": [ + "low", + "medium", + "high", + "auto" + ], + "description": "The quality of the generated image. One of `low`, `medium`, `high`,\n or `auto`. Default: `auto`.", + "default": "auto" + }, + "size": { + "type": "string", + "enum": [ + "1024x1024", + "1024x1536", + "1536x1024", + "auto" + ], + "description": "The size of the generated image. One of `1024x1024`, `1024x1536`,\n `1536x1024`, or `auto`. Default: `auto`.", + "default": "auto" + }, + "output_format": { + "type": "string", + "enum": [ + "png", + "webp", + "jpeg" + ], + "description": "The output format of the generated image. One of `png`, `webp`, or\n `jpeg`. Default: `png`.", + "default": "png" + }, + "output_compression": { + "type": "integer", + "minimum": 0, + "maximum": 100, + "description": "Compression level for the output image. Default: 100.", + "default": 100 + }, + "moderation": { + "type": "string", + "enum": [ + "auto", + "low" + ], + "description": "Moderation level for the generated image. Default: `auto`.", + "default": "auto" + }, + "background": { "type": "string", "enum": [ - "windows", - "mac", - "linux", - "ubuntu", - "browser" + "transparent", + "opaque", + "auto" ], - "description": "The type of computer environment to control." + "description": "Background type for the generated image. One of `transparent`,\n `opaque`, or `auto`. Default: `auto`.", + "default": "auto" }, - "display_width": { - "type": "integer", - "format": "int32", - "description": "The width of the computer display." + "input_fidelity": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.InputFidelity" + }, + { + "type": "null" + } + ] }, - "display_height": { + "input_image_mask": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ImageGenToolInputImageMask" + } + ], + "description": "Optional mask for inpainting. Contains `image_url`\n (string, optional) and `file_id` (string, optional)." + }, + "partial_images": { "type": "integer", - "format": "int32", - "description": "The height of the computer display." + "minimum": 0, + "maximum": 3, + "description": "Number of partial images to generate in streaming mode, from 0 (default value) to 3." } }, "allOf": [ @@ -11794,2669 +24553,2799 @@ "$ref": "#/components/schemas/OpenAI.Tool" } ], - "description": "A tool that controls a virtual computer. Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use)." + "description": "A tool that generates images using a model like `gpt-image-1`.", + "title": "Image generation tool" }, - "OpenAI.ContainerFileListResource": { + "OpenAI.ImageGenToolInputImageMask": { "type": "object", - "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" - ], "properties": { - "object": { - "type": "string", - "enum": [ - "list" - ], - "description": "The type of object returned, must be 'list'." - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ContainerFileResource" - }, - "description": "A list of container files." - }, - "first_id": { - "type": "string", - "description": "The ID of the first file in the list." - }, - "last_id": { - "type": "string", - "description": "The ID of the last file in the list." + "image_url": { + "type": "string" }, - "has_more": { - "type": "boolean", - "description": "Whether there are more files available." + "file_id": { + "type": "string" } } }, - "OpenAI.ContainerFileResource": { + "OpenAI.ImageGenUsage": { "type": "object", "required": [ - "id", - "object", - "container_id", - "created_at", - "bytes", - "path", - "source" + "input_tokens", + "total_tokens", + "output_tokens", + "input_tokens_details" ], "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the file." - }, - "object": { - "type": "string", - "description": "The type of this object (`container.file`)." - }, - "container_id": { - "type": "string", - "description": "The container this file belongs to." - }, - "created_at": { + "input_tokens": { "type": "integer", - "format": "unixtime", - "description": "Unix timestamp (in seconds) when the file was created." + "description": "The number of tokens (images and text) in the input prompt." }, - "bytes": { + "total_tokens": { "type": "integer", - "format": "int32", - "description": "Size of the file in bytes." + "description": "The total number of tokens (images and text) used for the image generation." }, - "path": { - "type": "string", - "description": "Path of the file in the container." + "output_tokens": { + "type": "integer", + "description": "The number of output tokens generated by the model." }, - "source": { - "type": "string", - "description": "Source of the file (e.g., `user`, `assistant`)." + "input_tokens_details": { + "$ref": "#/components/schemas/OpenAI.ImageGenInputUsageDetails" } - } + }, + "description": "For `gpt-image-1` only, the token usage information for the image generation.", + "title": "Image generation usage" }, - "OpenAI.ContainerListResource": { + "OpenAI.ImagesResponse": { "type": "object", "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" + "created" ], "properties": { - "object": { - "type": "string", - "enum": [ - "list" - ], - "description": "The type of object returned, must be 'list'." + "created": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) of when the image was created." }, "data": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.ContainerResource" + "$ref": "#/components/schemas/OpenAI.Image" }, - "description": "A list of containers." - }, - "first_id": { - "type": "string", - "description": "The ID of the first container in the list." - }, - "last_id": { - "type": "string", - "description": "The ID of the last container in the list." + "description": "The list of generated images." }, - "has_more": { - "type": "boolean", - "description": "Whether there are more containers available." - } - } - }, - "OpenAI.ContainerResource": { - "type": "object", - "required": [ - "id", - "object", - "name", - "created_at", - "status" - ], - "properties": { - "id": { + "background": { "type": "string", - "description": "Unique identifier for the container." + "enum": [ + "transparent", + "opaque" + ], + "description": "The background parameter used for the image generation. Either `transparent` or `opaque`." }, - "object": { + "output_format": { "type": "string", - "description": "The type of this object." + "enum": [ + "png", + "webp", + "jpeg" + ], + "description": "The output format of the image generation. Either `png`, `webp`, or `jpeg`." }, - "name": { + "size": { "type": "string", - "description": "Name of the container." - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "Unix timestamp (in seconds) when the container was created." + "enum": [ + "1024x1024", + "1024x1536", + "1536x1024" + ], + "description": "The size of the image generated. Either `1024x1024`, `1024x1536`, or `1536x1024`." }, - "status": { + "quality": { "type": "string", - "description": "Status of the container (e.g., active, deleted)." + "enum": [ + "low", + "medium", + "high" + ], + "description": "The quality of the image generated. Either `low`, `medium`, or `high`." }, - "expires_after": { - "type": "object", - "properties": { - "anchor": { - "type": "string", - "enum": [ - "last_active_at" - ], - "description": "The reference point for the expiration." - }, - "minutes": { - "type": "integer", - "format": "int32", - "description": "The number of minutes after the anchor before the container expires." - } - }, - "description": "The container will expire after this time period.\nThe anchor is the reference point for the expiration.\nThe minutes is the number of minutes after the anchor before the container expires." + "usage": { + "$ref": "#/components/schemas/OpenAI.ImageGenUsage" } + }, + "description": "The response from the image generation endpoint.", + "title": "Image generation response", + "x-oaiMeta": { + "name": "The image generation response", + "group": "images", + "example": "{\n \"created\": 1713833628,\n \"data\": [\n {\n \"b64_json\": \"...\"\n }\n ],\n \"background\": \"transparent\",\n \"output_format\": \"png\",\n \"size\": \"1024x1024\",\n \"quality\": \"high\",\n \"usage\": {\n \"total_tokens\": 100,\n \"input_tokens\": 50,\n \"output_tokens\": 50,\n \"input_tokens_details\": {\n \"text_tokens\": 10,\n \"image_tokens\": 40\n }\n }\n}\n" } }, - "OpenAI.Coordinate": { - "type": "object", - "required": [ - "x", - "y" + "OpenAI.IncludeEnum": { + "type": "string", + "enum": [ + "file_search_call.results", + "web_search_call.results", + "web_search_call.action.sources", + "message.input_image.image_url", + "computer_call_output.output.image_url", + "code_interpreter_call.outputs", + "reasoning.encrypted_content", + "message.output_text.logprobs" ], - "properties": { - "x": { - "type": "integer", - "format": "int32", - "description": "The x-coordinate." - }, - "y": { - "type": "integer", - "format": "int32", - "description": "The y-coordinate." - } - }, - "description": "An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`." + "description": "Specify additional output data to include in the model response. Currently supported values are:\n- `web_search_call.action.sources`: Include the sources of the web search tool call.\n- `code_interpreter_call.outputs`: Includes the outputs of python code execution in code interpreter tool call items.\n- `computer_call_output.output.image_url`: Include image urls from the computer call output.\n- `file_search_call.results`: Include the search results of the file search tool call.\n- `message.input_image.image_url`: Include image urls from the input message.\n- `message.output_text.logprobs`: Include logprobs with assistant messages.\n- `reasoning.encrypted_content`: Includes an encrypted version of reasoning tokens in reasoning item outputs. This enables reasoning items to be used in multi-turn conversations when using the Responses API statelessly (like when the `store` parameter is set to `false`, or when an organization is enrolled in the zero data retention program)." }, - "OpenAI.CreateContainerBody": { + "OpenAI.InputAudio": { "type": "object", "required": [ - "name" + "type", + "input_audio" ], "properties": { - "name": { + "type": { "type": "string", - "description": "Name of the container to create." - }, - "file_ids": { - "type": "array", - "items": { - "type": "string" - }, - "description": "IDs of files to copy to the container." - }, - "expires_after": { - "type": "object", - "properties": { - "anchor": { - "type": "string", - "enum": [ - "last_active_at" - ], - "description": "Time anchor for the expiration time. Currently only 'last_active_at' is supported." - }, - "minutes": { - "type": "integer", - "format": "int32" - } - }, - "required": [ - "anchor", - "minutes" + "enum": [ + "input_audio" ], - "description": "Container expiration time in seconds relative to the 'anchor' time." + "description": "The type of the input item. Always `input_audio`.", + "x-stainless-const": true + }, + "input_audio": { + "$ref": "#/components/schemas/OpenAI.InputAudioInputAudio" } - } + }, + "description": "An audio input to the model.", + "title": "Input audio" }, - "OpenAI.CreateContainerFileBodyMultiPart": { + "OpenAI.InputAudioInputAudio": { "type": "object", + "required": [ + "data", + "format" + ], "properties": { - "file_id": { - "type": "string", - "description": "Name of the file to create." + "data": { + "type": "string" }, - "file": { + "format": { "type": "string", - "format": "binary" + "enum": [ + "mp3", + "wav" + ] } } }, - "OpenAI.CreateEmbeddingResponse": { + "OpenAI.InputContent": { "type": "object", "required": [ - "data", - "model", - "object", - "usage" + "type" ], "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Embedding" - }, - "description": "The list of embeddings generated by the model." + "type": { + "$ref": "#/components/schemas/OpenAI.InputContentType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "input_text": "#/components/schemas/OpenAI.InputTextContent", + "input_image": "#/components/schemas/OpenAI.InputImageContent", + "input_file": "#/components/schemas/OpenAI.InputFileContent" + } + } + }, + "OpenAI.InputContentType": { + "anyOf": [ + { + "type": "string" }, - "model": { + { "type": "string", - "description": "The name of the model used to generate the embedding." - }, - "object": { + "enum": [ + "input_text", + "input_image", + "input_file" + ] + } + ] + }, + "OpenAI.InputFidelity": { + "type": "string", + "enum": [ + "high", + "low" + ], + "description": "Control how much effort the model will exert to match the style and features, especially facial features, of input images. This parameter is only supported for `gpt-image-1`. Unsupported for `gpt-image-1-mini`. Supports `high` and `low`. Defaults to `low`." + }, + "OpenAI.InputFileContent": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { "type": "string", "enum": [ - "list" + "input_file" ], - "description": "The object type, which is always \"list\"." + "description": "The type of the input item. Always `input_file`.", + "x-stainless-const": true, + "default": "input_file" }, - "usage": { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens used by the prompt." - }, - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "The total number of tokens used by the request." - } - }, - "required": [ - "prompt_tokens", - "total_tokens" - ], - "description": "The usage information for the request." - } - } - }, - "OpenAI.CreateEvalItem": { - "anyOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message (e.g. \"system\", \"assistant\", \"user\")." + "file_id": { + "anyOf": [ + { + "type": "string" }, - "content": { - "type": "string", - "description": "The content of the message." + { + "type": "null" } - }, - "required": [ - "role", - "content" ] }, + "filename": { + "type": "string", + "description": "The name of the file to be sent to the model." + }, + "file_url": { + "type": "string", + "description": "The URL of the file to be sent to the model." + }, + "file_data": { + "type": "string", + "description": "The content of the file to be sent to the model." + } + }, + "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalItem" + "$ref": "#/components/schemas/OpenAI.InputContent" } ], - "description": "A chat message that makes up the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}." + "description": "A file input to the model.", + "title": "Input file" }, - "OpenAI.CreateEvalRunRequest": { + "OpenAI.InputImageContent": { "type": "object", "required": [ - "data_source" + "type", + "detail" ], "properties": { - "name": { + "type": { "type": "string", - "description": "The name of the run." + "enum": [ + "input_image" + ], + "description": "The type of the input item. Always `input_image`.", + "x-stainless-const": true, + "default": "input_image" }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "image_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "data_source": { + "file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "detail": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceParams" + "$ref": "#/components/schemas/OpenAI.ImageDetail" } ], - "description": "Details about the run's data source." + "description": "The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`. Defaults to `auto`." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.InputContent" + } + ], + "description": "An image input to the model. Learn about [image inputs](https://platform.openai.com/docs/guides/vision).", + "title": "Input image" + }, + "OpenAI.InputItem": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.InputItemType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "message": "#/components/schemas/OpenAI.EasyInputMessage", + "item_reference": "#/components/schemas/OpenAI.ItemReferenceParam" } } }, - "OpenAI.CreateFineTuningJobRequest": { + "OpenAI.InputItemType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "message", + "item_reference" + ] + } + ] + }, + "OpenAI.InputMessageContentList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputContent" + }, + "description": "A list of one or many input items to the model, containing different content\ntypes.", + "title": "Input item content list" + }, + "OpenAI.InputMessageResource": { "type": "object", "required": [ - "model", - "training_file" + "type", + "role", + "content", + "id" ], "properties": { - "model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string", - "enum": [ - "babbage-002", - "davinci-002", - "gpt-3.5-turbo", - "gpt-4o-mini" - ] - } + "type": { + "type": "string", + "enum": [ + "message" ], - "description": "The name of the model to fine-tune. You can select one of the\n[supported models](/docs/guides/fine-tuning#which-models-can-be-fine-tuned).", - "x-oaiTypeLabel": "string" + "description": "The type of the message input. Always set to `message`.", + "x-stainless-const": true }, - "training_file": { + "role": { "type": "string", - "description": "The ID of an uploaded file that contains training data.\n\nSee [upload file](/docs/api-reference/files/create) for how to upload a file.\n\nYour dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose `fine-tune`.\n\nThe contents of the file should differ depending on if the model uses the [chat](/docs/api-reference/fine-tuning/chat-input), [completions](/docs/api-reference/fine-tuning/completions-input) format, or if the fine-tuning method uses the [preference](/docs/api-reference/fine-tuning/preference-input) format.\n\nSee the [fine-tuning guide](/docs/guides/model-optimization) for more details." - }, - "hyperparameters": { - "type": "object", - "properties": { - "batch_size": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "description": "Number of examples in each batch. A larger batch size means that model parameters\nare updated less frequently, but with lower variance.", - "default": "auto" - }, - "learning_rate_multiplier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "number", - "format": "float" - } - ], - "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid\noverfitting.", - "default": "auto" - }, - "n_epochs": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "description": "The number of epochs to train the model for. An epoch refers to one full cycle\nthrough the training dataset.", - "default": "auto" - } - }, - "description": "The hyperparameters used for the fine-tuning job.\nThis value is now deprecated in favor of `method`, and should be passed in under the `method` parameter.", - "deprecated": true + "enum": [ + "user", + "system", + "developer" + ], + "description": "The role of the message input. One of `user`, `system`, or `developer`." }, - "suffix": { + "status": { "type": "string", - "nullable": true, - "minLength": 1, - "maxLength": 64, - "description": "A string of up to 64 characters that will be added to your fine-tuned model name.\n\nFor example, a `suffix` of \"custom-model-name\" would produce a model name like `ft:gpt-4o-mini:openai:custom-model-name:7p4lURel`.", - "default": null + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." + }, + "content": { + "$ref": "#/components/schemas/OpenAI.InputMessageContentList" }, - "validation_file": { + "id": { "type": "string", - "nullable": true, - "description": "The ID of an uploaded file that contains validation data.\n\nIf you provide this file, the data is used to generate validation\nmetrics periodically during fine-tuning. These metrics can be viewed in\nthe fine-tuning results file.\nThe same data should not be present in both train and validation files.\n\nYour dataset must be formatted as a JSONL file. You must upload your file with the purpose `fine-tune`.\n\nSee the [fine-tuning guide](/docs/guides/model-optimization) for more details." + "description": "The unique ID of the message input." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] + }, + "OpenAI.InputParam": { + "anyOf": [ + { + "type": "string" }, - "integrations": { + { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegration" - }, - "nullable": true, - "description": "A list of integrations to enable for your fine-tuning job." - }, - "seed": { - "type": "integer", - "format": "int32", - "nullable": true, - "minimum": 0, - "maximum": 2147483647, - "description": "The seed controls the reproducibility of the job. Passing in the same seed and job parameters should produce the same results, but may differ in rare cases.\nIf a seed is not specified, one will be generated for you." + "$ref": "#/components/schemas/OpenAI.InputItem" + } + } + ], + "description": "Text, image, or file inputs to the model, used to generate a response.\n\nLearn more:\n- [Text inputs and outputs](https://platform.openai.com/docs/guides/text)\n- [Image inputs](https://platform.openai.com/docs/guides/images)\n- [File inputs](https://platform.openai.com/docs/guides/pdf-files)\n- [Conversation state](https://platform.openai.com/docs/guides/conversation-state)\n- [Function calling](https://platform.openai.com/docs/guides/function-calling)" + }, + "OpenAI.InputTextContent": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "input_text" + ], + "description": "The type of the input item. Always `input_text`.", + "x-stainless-const": true, + "default": "input_text" }, - "method": { - "$ref": "#/components/schemas/OpenAI.FineTuneMethod" + "text": { + "type": "string", + "description": "The text input to the model." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.InputContent" + } + ], + "description": "A text input to the model.", + "title": "Input text" + }, + "OpenAI.ItemReferenceParam": { + "type": "object", + "required": [ + "type", + "id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "item_reference" + ], + "description": "The type of item to reference. Always `item_reference`.", + "x-stainless-const": true, + "default": "item_reference" }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "id": { + "type": "string", + "description": "The ID of the item to reference." } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.InputItem" + } + ], + "description": "An internal identifier for an item to reference.", + "title": "Item reference" }, - "OpenAI.CreateFineTuningJobRequestIntegration": { + "OpenAI.ItemResource": { "type": "object", "required": [ "type" ], "properties": { "type": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string", - "enum": [ - "wandb" - ] - } - ] + "$ref": "#/components/schemas/OpenAI.ItemResourceType" } }, "discriminator": { "propertyName": "type", "mapping": { - "wandb": "#/components/schemas/OpenAI.CreateFineTuningJobRequestWandbIntegration" + "computer_call_output": "#/components/schemas/OpenAI.ComputerToolCallOutputResource", + "function_call": "#/components/schemas/OpenAI.FunctionToolCallResource", + "function_call_output": "#/components/schemas/OpenAI.FunctionToolCallOutputResource", + "shell_call": "#/components/schemas/OpenAI.FunctionShellCall", + "shell_call_output": "#/components/schemas/OpenAI.FunctionShellCallOutput", + "apply_patch_call": "#/components/schemas/OpenAI.ApplyPatchToolCall", + "apply_patch_call_output": "#/components/schemas/OpenAI.ApplyPatchToolCallOutput", + "mcp_approval_response": "#/components/schemas/OpenAI.MCPApprovalResponseResource", + "message": "#/components/schemas/OpenAI.InputMessageResource", + "output_message": "#/components/schemas/OpenAI.ItemResourceOutputMessage", + "file_search_call": "#/components/schemas/OpenAI.ItemResourceFileSearchToolCall", + "computer_call": "#/components/schemas/OpenAI.ItemResourceComputerToolCall", + "web_search_call": "#/components/schemas/OpenAI.ItemResourceWebSearchToolCall", + "image_generation_call": "#/components/schemas/OpenAI.ItemResourceImageGenToolCall", + "code_interpreter_call": "#/components/schemas/OpenAI.ItemResourceCodeInterpreterToolCall", + "local_shell_call": "#/components/schemas/OpenAI.ItemResourceLocalShellToolCall", + "local_shell_call_output": "#/components/schemas/OpenAI.ItemResourceLocalShellToolCallOutput", + "mcp_list_tools": "#/components/schemas/OpenAI.ItemResourceMCPListTools", + "mcp_approval_request": "#/components/schemas/OpenAI.ItemResourceMCPApprovalRequest", + "mcp_call": "#/components/schemas/OpenAI.ItemResourceMCPToolCall" } - } + }, + "description": "Content item used to generate a response." }, - "OpenAI.CreateFineTuningJobRequestWandbIntegration": { + "OpenAI.ItemResourceCodeInterpreterToolCall": { "type": "object", "required": [ "type", - "wandb" + "id", + "status", + "container_id", + "code", + "outputs" ], "properties": { "type": { "type": "string", "enum": [ - "wandb" - ] + "code_interpreter_call" + ], + "description": "The type of the code interpreter tool call. Always `code_interpreter_call`.", + "x-stainless-const": true, + "default": "code_interpreter_call" }, - "wandb": { - "type": "object", - "properties": { - "project": { + "id": { + "type": "string", + "description": "The unique ID of the code interpreter tool call." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete", + "interpreting", + "failed" + ], + "description": "The status of the code interpreter tool call. Valid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`." + }, + "container_id": { + "type": "string", + "description": "The ID of the container used to run the code." + }, + "code": { + "anyOf": [ + { "type": "string" }, - "name": { - "type": "string", - "nullable": true - }, - "entity": { - "type": "string", - "nullable": true - }, - "tags": { + { + "type": "null" + } + ] + }, + "outputs": { + "anyOf": [ + { "type": "array", "items": { - "type": "string" + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputLogs" + }, + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputImage" + } + ] } + }, + { + "type": "null" } - }, - "required": [ - "project" ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegration" + "$ref": "#/components/schemas/OpenAI.ItemResource" } ] }, - "OpenAI.CreateVectorStoreFileBatchRequest": { + "OpenAI.ItemResourceComputerToolCall": { "type": "object", "required": [ - "file_ids" + "type", + "id", + "call_id", + "action", + "pending_safety_checks", + "status" ], "properties": { - "file_ids": { + "type": { + "type": "string", + "enum": [ + "computer_call" + ], + "description": "The type of the computer call. Always `computer_call`.", + "default": "computer_call" + }, + "id": { + "type": "string", + "description": "The unique ID of the computer call." + }, + "call_id": { + "type": "string", + "description": "An identifier used when responding to the tool call with output." + }, + "action": { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + }, + "pending_safety_checks": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/OpenAI.ComputerCallSafetyCheckParam" }, - "minItems": 1, - "maxItems": 500, - "description": "A list of [File](/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files." - }, - "chunking_strategy": { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" + "description": "The pending safety checks for the computer call." }, - "attributes": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" - } + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" ], - "nullable": true + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] }, - "OpenAI.CreateVectorStoreFileRequest": { + "OpenAI.ItemResourceFileSearchToolCall": { "type": "object", "required": [ - "file_id" + "id", + "type", + "status", + "queries" ], "properties": { - "file_id": { + "id": { "type": "string", - "description": "A [File](/docs/api-reference/files) ID that the vector store should use. Useful for tools like `file_search` that can access files." + "description": "The unique ID of the file search tool call." }, - "chunking_strategy": { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" + "type": { + "type": "string", + "enum": [ + "file_search_call" + ], + "description": "The type of the file search tool call. Always `file_search_call`.", + "x-stainless-const": true }, - "attributes": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" - } + "status": { + "type": "string", + "enum": [ + "in_progress", + "searching", + "completed", + "incomplete", + "failed" ], - "nullable": true - } - } - }, - "OpenAI.CreateVectorStoreRequest": { - "type": "object", - "properties": { - "file_ids": { + "description": "The status of the file search tool call. One of `in_progress`,\n `searching`, `incomplete` or `failed`," + }, + "queries": { "type": "array", "items": { "type": "string" }, - "maxItems": 500, - "description": "A list of [File](/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files." - }, - "name": { - "type": "string", - "description": "The name of the vector store." - }, - "expires_after": { - "$ref": "#/components/schemas/OpenAI.VectorStoreExpirationAfter" + "description": "The queries used to search for files." }, - "chunking_strategy": { + "results": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.AutoChunkingStrategyRequestParam" - }, - { - "$ref": "#/components/schemas/OpenAI.StaticChunkingStrategyRequestParam" - } - ], - "description": "The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. Only applicable if `file_ids` is non-empty." - }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FileSearchToolCallResults" + } + }, + { + "type": "null" + } + ] } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] }, - "OpenAI.DeleteFileResponse": { + "OpenAI.ItemResourceImageGenToolCall": { "type": "object", "required": [ + "type", "id", - "object", - "deleted" + "status", + "result" ], "properties": { + "type": { + "type": "string", + "enum": [ + "image_generation_call" + ], + "description": "The type of the image generation call. Always `image_generation_call`.", + "x-stainless-const": true + }, "id": { - "type": "string" + "type": "string", + "description": "The unique ID of the image generation call." }, - "object": { + "status": { "type": "string", "enum": [ - "file" - ] + "in_progress", + "completed", + "generating", + "failed" + ], + "description": "The status of the image generation call." }, - "deleted": { - "type": "boolean" + "result": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] }, - "OpenAI.DeleteVectorStoreFileResponse": { + "OpenAI.ItemResourceLocalShellToolCall": { "type": "object", "required": [ + "type", "id", - "deleted", - "object" + "call_id", + "action", + "status" ], "properties": { + "type": { + "type": "string", + "enum": [ + "local_shell_call" + ], + "description": "The type of the local shell call. Always `local_shell_call`.", + "x-stainless-const": true + }, "id": { - "type": "string" + "type": "string", + "description": "The unique ID of the local shell call." }, - "deleted": { - "type": "boolean" + "call_id": { + "type": "string", + "description": "The unique ID of the local shell tool call generated by the model." }, - "object": { + "action": { + "$ref": "#/components/schemas/OpenAI.LocalShellExecAction" + }, + "status": { "type": "string", "enum": [ - "vector_store.file.deleted" - ] + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the local shell call." } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] }, - "OpenAI.DeleteVectorStoreResponse": { + "OpenAI.ItemResourceLocalShellToolCallOutput": { "type": "object", "required": [ + "type", "id", - "deleted", - "object" + "output" ], "properties": { - "id": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "local_shell_call_output" + ], + "description": "The type of the local shell tool call output. Always `local_shell_call_output`.", + "x-stainless-const": true }, - "deleted": { - "type": "boolean" + "id": { + "type": "string", + "description": "The unique ID of the local shell tool call generated by the model." }, - "object": { + "output": { "type": "string", - "enum": [ - "vector_store.deleted" - ] - } - } - }, - "OpenAI.Embedding": { - "type": "object", - "required": [ - "index", - "embedding", - "object" - ], - "properties": { - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the embedding in the list of embeddings." + "description": "A JSON string of the output of the local shell tool call." }, - "embedding": { + "status": { "anyOf": [ { - "type": "array", - "items": { - "type": "number" - } + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ] }, { - "type": "string" + "type": "null" } - ], - "description": "The embedding vector, which is a list of floats. The length of vector depends on the model as listed in the [embedding guide](/docs/guides/embeddings)." - }, - "object": { - "type": "string", - "enum": [ - "embedding" - ], - "description": "The object type, which is always \"embedding\"." + ] } }, - "description": "Represents an embedding vector returned by embedding endpoint." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] }, - "OpenAI.Eval": { + "OpenAI.ItemResourceMCPApprovalRequest": { "type": "object", "required": [ - "object", + "type", "id", + "server_label", "name", - "data_source_config", - "testing_criteria", - "created_at", - "metadata" + "arguments" ], "properties": { - "object": { + "type": { "type": "string", "enum": [ - "eval" + "mcp_approval_request" ], - "description": "The object type.", - "default": "eval" + "description": "The type of the item. Always `mcp_approval_request`.", + "x-stainless-const": true }, "id": { "type": "string", - "description": "Unique identifier for the evaluation." + "description": "The unique ID of the approval request." }, - "name": { + "server_label": { "type": "string", - "description": "The name of the evaluation." - }, - "data_source_config": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigResource" - } - ], - "description": "Configuration of data sources used in runs of the evaluation." - }, - "testing_criteria": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.EvalGraderResource" - }, - "nullable": true, - "description": "A list of testing criteria.", - "default": null - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the eval was created." + "description": "The label of the MCP server making the request." }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - } - }, - "description": "An Eval object with a data source config and testing criteria.\nAn Eval represents a task to be done for your LLM integration.\nLike:\n- Improve the quality of my chatbot\n- See how well my chatbot handles customer support\n- Check if o4-mini is better at my usecase than gpt-4o" - }, - "OpenAI.EvalApiError": { - "type": "object", - "required": [ - "code", - "message" - ], - "properties": { - "code": { + "name": { "type": "string", - "description": "The error code." + "description": "The name of the tool to run." }, - "message": { + "arguments": { "type": "string", - "description": "The error message." + "description": "A JSON string of arguments for the tool." } }, - "description": "An object representing an error response from the Eval API." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] }, - "OpenAI.EvalCompletionsRunDataSourceParams": { + "OpenAI.ItemResourceMCPListTools": { "type": "object", "required": [ "type", - "source" + "id", + "server_label", + "tools" ], "properties": { "type": { "type": "string", "enum": [ - "completions" - ], - "description": "The type of run data source. Always `completions`." - }, - "input_messages": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "template" - ], - "description": "The type of input messages. Always `template`." - }, - "template": { - "type": "array", - "items": { - "anyOf": [ - {}, - { - "$ref": "#/components/schemas/OpenAI.EvalItem" - } - ] - }, - "description": "A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}." - } - }, - "required": [ - "type", - "template" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "item_reference" - ], - "description": "The type of input messages. Always `item_reference`." - }, - "item_reference": { - "type": "string", - "description": "A reference to a variable in the `item` namespace. Ie, \"item.input_trajectory\"" - } - }, - "required": [ - "type", - "item_reference" - ] - } + "mcp_list_tools" ], - "description": "Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace." + "description": "The type of the item. Always `mcp_list_tools`.", + "x-stainless-const": true }, - "sampling_params": { - "$ref": "#/components/schemas/AzureEvalAPICompletionsSamplingParams" + "id": { + "type": "string", + "description": "The unique ID of the list." }, - "model": { + "server_label": { "type": "string", - "description": "The name of the model to use for generating completions (e.g. \"o3-mini\")." + "description": "The label of the MCP server." }, - "source": { + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.MCPListToolsTool" + }, + "description": "The tools available on the server." + }, + "error": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunFileContentDataContentSource" - }, - { - "$ref": "#/components/schemas/OpenAI.EvalRunFileIdDataContentSource" + "type": "string" }, { - "$ref": "#/components/schemas/OpenAI.EvalRunStoredCompletionsDataContentSource" + "type": "null" } - ], - "description": "Determines what populates the `item` namespace in this run's data source." + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceParams" + "$ref": "#/components/schemas/OpenAI.ItemResource" } - ], - "description": "A CompletionsRunDataSource object describing a model sampling configuration." + ] }, - "OpenAI.EvalCustomDataSourceConfigParams": { + "OpenAI.ItemResourceMCPToolCall": { "type": "object", "required": [ "type", - "item_schema" + "id", + "server_label", + "name", + "arguments" ], "properties": { "type": { "type": "string", "enum": [ - "custom" + "mcp_call" ], - "description": "The type of data source. Always `custom`." + "description": "The type of the item. Always `mcp_call`.", + "x-stainless-const": true }, - "item_schema": { - "type": "object", - "additionalProperties": {}, - "description": "The json schema for each row in the data source." + "id": { + "type": "string", + "description": "The unique ID of the tool call." }, - "include_sample_schema": { - "type": "boolean", - "description": "Whether the eval should expect you to populate the sample namespace (ie, by generating responses off of your data source)", - "default": false + "server_label": { + "type": "string", + "description": "The label of the MCP server running the tool." + }, + "name": { + "type": "string", + "description": "The name of the tool that was run." + }, + "arguments": { + "type": "string", + "description": "A JSON string of the arguments passed to the tool." + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPToolCallStatus" + } + ], + "description": "The status of the tool call. One of `in_progress`, `completed`, `incomplete`, `calling`, or `failed`." + }, + "approval_request_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigParams" + "$ref": "#/components/schemas/OpenAI.ItemResource" } - ], - "description": "A CustomDataSourceConfig object that defines the schema for the data source used for the evaluation runs.\nThis schema is used to define the shape of the data that will be:\n- Used to define your testing criteria and\n- What data is required when creating a run" + ] }, - "OpenAI.EvalCustomDataSourceConfigResource": { + "OpenAI.ItemResourceOutputMessage": { "type": "object", "required": [ + "id", "type", - "schema" + "role", + "content", + "status" ], "properties": { + "id": { + "type": "string", + "description": "The unique ID of the output message.", + "x-stainless-go-json": "omitzero" + }, "type": { "type": "string", "enum": [ - "custom" + "output_message" ], - "description": "The type of data source. Always `custom`." + "description": "The type of the output message. Always `message`.", + "x-stainless-const": true }, - "schema": { - "type": "object", - "additionalProperties": {}, - "description": "The json schema for the run data source items.\nLearn how to build JSON schemas [here](https://json-schema.org/)." + "role": { + "type": "string", + "enum": [ + "assistant" + ], + "description": "The role of the output message. Always `assistant`.", + "x-stainless-const": true + }, + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.OutputMessageContent" + }, + "description": "The content of the output message." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the message input. One of `in_progress`, `completed`, or\n `incomplete`. Populated when input items are returned via API." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigResource" + "$ref": "#/components/schemas/OpenAI.ItemResource" } - ], - "description": "A CustomDataSourceConfig which specifies the schema of your `item` and optionally `sample` namespaces.\nThe response schema defines the shape of the data that will be:\n- Used to define your testing criteria and\n- What data is required when creating a run" + ] }, - "OpenAI.EvalDataSourceConfigParams": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "custom": "#/components/schemas/OpenAI.EvalCustomDataSourceConfigParams", - "logs": "#/components/schemas/OpenAI.EvalLogsDataSourceConfigParams", - "stored_completions": "#/components/schemas/OpenAI.EvalStoredCompletionsDataSourceConfigParams" + "OpenAI.ItemResourceType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "message", + "output_message", + "file_search_call", + "computer_call", + "computer_call_output", + "web_search_call", + "function_call", + "function_call_output", + "image_generation_call", + "code_interpreter_call", + "local_shell_call", + "local_shell_call_output", + "shell_call", + "shell_call_output", + "apply_patch_call", + "apply_patch_call_output", + "mcp_list_tools", + "mcp_approval_request", + "mcp_approval_response", + "mcp_call" + ] } - } + ] }, - "OpenAI.EvalDataSourceConfigResource": { + "OpenAI.ItemResourceWebSearchToolCall": { "type": "object", "required": [ - "type" + "id", + "type", + "status", + "action" ], "properties": { + "id": { + "type": "string", + "description": "The unique ID of the web search tool call." + }, "type": { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigType" + "type": "string", + "enum": [ + "web_search_call" + ], + "description": "The type of the web search tool call. Always `web_search_call`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "searching", + "completed", + "failed" + ], + "description": "The status of the web search tool call." + }, + "action": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionSearch" + }, + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionOpenPage" + }, + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionFind" + } + ], + "description": "An object describing the specific action taken in this web search call.\n Includes details on how the model used the web (search, open_page, find)." } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "custom": "#/components/schemas/OpenAI.EvalCustomDataSourceConfigResource", - "stored_completions": "#/components/schemas/OpenAI.EvalStoredCompletionsDataSourceConfigResource", - "logs": "#/components/schemas/OpenAI.EvalLogsDataSourceConfigResource" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" } - } - }, - "OpenAI.EvalDataSourceConfigType": { - "type": "string", - "enum": [ - "custom", - "logs", - "stored_completions" ] }, - "OpenAI.EvalGraderLabelModelParams": { + "OpenAI.KeyPressAction": { "type": "object", "required": [ "type", - "name", - "model", - "input", - "labels", - "passing_labels" + "keys" ], "properties": { "type": { "type": "string", "enum": [ - "label_model" + "keypress" ], - "description": "The object type, which is always `label_model`." - }, - "name": { - "type": "string", - "description": "The name of the grader." - }, - "model": { - "type": "string", - "description": "The model to use for the evaluation. Must support structured outputs." - }, - "input": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.CreateEvalItem" - }, - "description": "A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}." + "description": "Specifies the event type. For a keypress action, this property is always set to `keypress`.", + "x-stainless-const": true, + "default": "keypress" }, - "labels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The labels to classify to each item in the evaluation." - }, - "passing_labels": { + "keys": { "type": "array", "items": { "type": "string" }, - "description": "The labels that indicate a passing result. Must be a subset of labels." + "description": "The combination of keys the model is requesting to be pressed. This is an array of strings, each representing a key." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalGraderParams" + "$ref": "#/components/schemas/OpenAI.ComputerAction" } ], - "description": "A LabelModelGrader object which uses a model to assign labels to each item\nin the evaluation." + "description": "A collection of keypresses the model would like to perform.", + "title": "KeyPress" }, - "OpenAI.EvalGraderLabelModelResource": { + "OpenAI.ListBatchesResponse": { "type": "object", "required": [ - "type", - "name", - "model", - "input", - "labels", - "passing_labels" + "data", + "has_more", + "object" + ], + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.Batch" + } + }, + "first_id": { + "type": "string" + }, + "last_id": { + "type": "string" + }, + "has_more": { + "type": "boolean" + }, + "object": { + "type": "string", + "enum": [ + "list" + ], + "x-stainless-const": true + } + } + }, + "OpenAI.ListFilesResponse": { + "type": "object", + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" ], "properties": { - "type": { - "type": "string", - "enum": [ - "label_model" - ], - "description": "The object type, which is always `label_model`." - }, - "name": { - "type": "string", - "description": "The name of the grader." - }, - "model": { - "type": "string", - "description": "The model to use for the evaluation. Must support structured outputs." + "object": { + "type": "string" }, - "input": { + "data": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.EvalItem" + "$ref": "#/components/schemas/OpenAI.OpenAIFile" } }, - "labels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The labels to assign to each item in the evaluation." + "first_id": { + "type": "string" }, - "passing_labels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The labels that indicate a passing result. Must be a subset of labels." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderResource" + "last_id": { + "type": "string" + }, + "has_more": { + "type": "boolean" } - ] + } }, - "OpenAI.EvalGraderParams": { + "OpenAI.ListFineTuningCheckpointPermissionResponse": { "type": "object", "required": [ - "type" + "data", + "object", + "has_more" ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.GraderType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "label_model": "#/components/schemas/OpenAI.EvalGraderLabelModelParams", - "string_check": "#/components/schemas/OpenAI.EvalGraderStringCheckParams", - "text_similarity": "#/components/schemas/OpenAI.EvalGraderTextSimilarityParams", - "python": "#/components/schemas/OpenAI.EvalGraderPythonParams", - "score_model": "#/components/schemas/OpenAI.EvalGraderScoreModelParams" + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FineTuningCheckpointPermission" + } + }, + "object": { + "type": "string", + "enum": [ + "list" + ], + "x-stainless-const": true + }, + "first_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "last_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "has_more": { + "type": "boolean" } } }, - "OpenAI.EvalGraderPythonParams": { + "OpenAI.ListFineTuningJobCheckpointsResponse": { "type": "object", "required": [ - "type", - "name", - "source" + "data", + "object", + "has_more" ], "properties": { - "type": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FineTuningJobCheckpoint" + } + }, + "object": { "type": "string", "enum": [ - "python" + "list" ], - "description": "The object type, which is always `python`." - }, - "name": { - "type": "string", - "description": "The name of the grader." + "x-stainless-const": true }, - "source": { - "type": "string", - "description": "The source code of the python script." + "first_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "image_tag": { - "type": "string", - "description": "The image tag to use for the python script." + "last_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "pass_threshold": { - "type": "number", - "format": "float", - "description": "The threshold for the score." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderParams" + "has_more": { + "type": "boolean" } - ] + } }, - "OpenAI.EvalGraderPythonResource": { + "OpenAI.ListFineTuningJobEventsResponse": { "type": "object", "required": [ - "type", - "name", - "source" + "data", + "object", + "has_more" ], "properties": { - "type": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FineTuningJobEvent" + } + }, + "object": { "type": "string", "enum": [ - "python" + "list" ], - "description": "The object type, which is always `python`." - }, - "name": { - "type": "string", - "description": "The name of the grader." - }, - "source": { - "type": "string", - "description": "The source code of the python script." - }, - "image_tag": { - "type": "string", - "description": "The image tag to use for the python script." + "x-stainless-const": true }, - "pass_threshold": { - "type": "number", - "format": "float", - "description": "The threshold for the score." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderResource" + "has_more": { + "type": "boolean" } - ] + } }, - "OpenAI.EvalGraderResource": { + "OpenAI.ListMessagesResponse": { "type": "object", "required": [ - "type" + "object", + "data", + "first_id", + "last_id", + "has_more" ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.GraderType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "label_model": "#/components/schemas/OpenAI.EvalGraderLabelModelResource", - "text_similarity": "#/components/schemas/OpenAI.EvalGraderTextSimilarityResource", - "python": "#/components/schemas/OpenAI.EvalGraderPythonResource", - "score_model": "#/components/schemas/OpenAI.EvalGraderScoreModelResource" + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.MessageObject" + } + }, + "first_id": { + "type": "string" + }, + "last_id": { + "type": "string" + }, + "has_more": { + "type": "boolean" } } }, - "OpenAI.EvalGraderScoreModelParams": { + "OpenAI.ListModelsResponse": { "type": "object", "required": [ - "type", - "name", - "model", - "input" + "object", + "data" ], "properties": { - "type": { + "object": { "type": "string", "enum": [ - "score_model" + "list" ], - "description": "The object type, which is always `score_model`." - }, - "name": { - "type": "string", - "description": "The name of the grader." - }, - "model": { - "type": "string", - "description": "The model to use for the evaluation." - }, - "sampling_params": { - "description": "The sampling parameters for the model." + "x-stainless-const": true }, - "input": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.EvalItem" - }, - "description": "The input text. This may include template strings." - }, - "range": { + "data": { "type": "array", "items": { - "type": "number", - "format": "float" - }, - "description": "The range of the score. Defaults to `[0, 1]`." - }, - "pass_threshold": { - "type": "number", - "format": "float", - "description": "The threshold for the score." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderParams" + "$ref": "#/components/schemas/OpenAI.Model" + } } - ] + } }, - "OpenAI.EvalGraderScoreModelResource": { + "OpenAI.ListPaginatedFineTuningJobsResponse": { "type": "object", "required": [ - "type", - "name", - "model", - "input" + "data", + "has_more", + "object" ], "properties": { - "type": { - "type": "string", - "enum": [ - "score_model" - ], - "description": "The object type, which is always `score_model`." + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FineTuningJob" + } }, - "name": { - "type": "string", - "description": "The name of the grader." + "has_more": { + "type": "boolean" }, - "model": { + "object": { "type": "string", - "description": "The model to use for the evaluation." - }, - "sampling_params": { - "description": "The sampling parameters for the model." + "enum": [ + "list" + ], + "x-stainless-const": true + } + } + }, + "OpenAI.ListRunStepsResponse": { + "type": "object", + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ], + "properties": { + "object": { + "type": "string" }, - "input": { + "data": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.EvalItem" - }, - "description": "The input text. This may include template strings." + "$ref": "#/components/schemas/OpenAI.RunStepObject" + } }, - "range": { - "type": "array", - "items": { - "type": "number", - "format": "float" - }, - "description": "The range of the score. Defaults to `[0, 1]`." + "first_id": { + "type": "string" }, - "pass_threshold": { - "type": "number", - "format": "float", - "description": "The threshold for the score." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderResource" + "last_id": { + "type": "string" + }, + "has_more": { + "type": "boolean" } - ] + } }, - "OpenAI.EvalGraderStringCheckParams": { + "OpenAI.ListRunsResponse": { "type": "object", "required": [ - "type", - "name", - "input", - "reference", - "operation" + "object", + "data", + "first_id", + "last_id", + "has_more" ], "properties": { - "type": { - "type": "string", - "enum": [ - "string_check" - ], - "description": "The object type, which is always `string_check`." + "object": { + "type": "string" }, - "name": { - "type": "string", - "description": "The name of the grader." + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } }, - "input": { - "type": "string", - "description": "The input text. This may include template strings." + "first_id": { + "type": "string" }, - "reference": { - "type": "string", - "description": "The reference text. This may include template strings." + "last_id": { + "type": "string" }, - "operation": { - "type": "string", - "enum": [ - "eq", - "ne", - "like", - "ilike" - ], - "description": "The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderParams" + "has_more": { + "type": "boolean" } - ] + } }, - "OpenAI.EvalGraderTextSimilarityParams": { + "OpenAI.ListVectorStoreFilesResponse": { "type": "object", "required": [ - "type", - "name", - "input", - "reference", - "evaluation_metric", - "pass_threshold" + "object", + "data", + "first_id", + "last_id", + "has_more" ], "properties": { - "type": { - "type": "string", - "enum": [ - "text_similarity" - ], - "description": "The type of grader." - }, - "name": { - "type": "string", - "description": "The name of the grader." + "object": { + "type": "string" }, - "input": { - "type": "string", - "description": "The text being graded." + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + } }, - "reference": { - "type": "string", - "description": "The text being graded against." + "first_id": { + "type": "string" }, - "evaluation_metric": { - "type": "string", - "enum": [ - "fuzzy_match", - "bleu", - "gleu", - "meteor", - "rouge_1", - "rouge_2", - "rouge_3", - "rouge_4", - "rouge_5", - "rouge_l" - ], - "description": "The evaluation metric to use. One of `fuzzy_match`, `bleu`, `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`." + "last_id": { + "type": "string" }, - "pass_threshold": { - "type": "number", - "format": "float", - "description": "The threshold for the score." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderParams" + "has_more": { + "type": "boolean" } - ] + } }, - "OpenAI.EvalGraderTextSimilarityResource": { + "OpenAI.ListVectorStoresResponse": { "type": "object", "required": [ - "type", - "name", - "input", - "reference", - "evaluation_metric", - "pass_threshold" + "object", + "data", + "first_id", + "last_id", + "has_more" ], "properties": { - "type": { - "type": "string", - "enum": [ - "text_similarity" - ], - "description": "The type of grader." - }, - "name": { - "type": "string", - "description": "The name of the grader." + "object": { + "type": "string" }, - "input": { - "type": "string", - "description": "The text being graded." + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + } }, - "reference": { - "type": "string", - "description": "The text being graded against." + "first_id": { + "type": "string" }, - "evaluation_metric": { - "type": "string", - "enum": [ - "fuzzy_match", - "bleu", - "gleu", - "meteor", - "rouge_1", - "rouge_2", - "rouge_3", - "rouge_4", - "rouge_5", - "rouge_l" - ], - "description": "The evaluation metric to use. One of `fuzzy_match`, `bleu`, `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`." + "last_id": { + "type": "string" }, - "pass_threshold": { - "type": "number", - "format": "float", - "description": "The threshold for the score." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderResource" + "has_more": { + "type": "boolean" } + } + }, + "OpenAI.LocalShellCallStatus": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" ] }, - "OpenAI.EvalItem": { + "OpenAI.LocalShellExecAction": { "type": "object", "required": [ - "role", - "content" + "type", + "command", + "env" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "user", - "assistant", - "system", - "developer" + "exec" ], - "description": "The role of the message input. One of `user`, `assistant`, `system`, or\n`developer`." + "description": "The type of the local shell action. Always `exec`.", + "x-stainless-const": true, + "default": "exec" }, - "content": { + "command": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The command to run." + }, + "timeout_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "working_directory": { "anyOf": [ { "type": "string" }, { - "$ref": "#/components/schemas/OpenAI.EvalItemContent" + "type": "null" } - ], - "description": "Text inputs to the model - can contain template strings." + ] }, - "type": { - "type": "string", - "enum": [ - "message" - ], - "description": "The type of the message input. Always `message`." + "env": { + "type": "object", + "unevaluatedProperties": { + "type": "string" + }, + "description": "Environment variables to set for the command.", + "x-oaiTypeLabel": "map" + }, + "user": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } }, - "description": "A message input to the model with a role indicating instruction following\nhierarchy. Instructions given with the `developer` or `system` role take\nprecedence over instructions given with the `user` role. Messages with the\n`assistant` role are presumed to have been generated by the model in previous\ninteractions." + "description": "Execute a shell command on the server.", + "title": "Local shell exec action" }, - "OpenAI.EvalItemContent": { + "OpenAI.LocalShellToolParam": { "type": "object", "required": [ "type" ], - "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.EvalItemContentType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "input_text": "#/components/schemas/OpenAI.EvalItemContentInputText", - "output_text": "#/components/schemas/OpenAI.EvalItemContentOutputText" - } - } - }, - "OpenAI.EvalItemContentInputText": { - "type": "object", - "required": [ - "type", - "text" - ], "properties": { "type": { "type": "string", "enum": [ - "input_text" - ] - }, - "text": { - "type": "string" + "local_shell" + ], + "description": "The type of the local shell tool. Always `local_shell`.", + "x-stainless-const": true, + "default": "local_shell" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalItemContent" + "$ref": "#/components/schemas/OpenAI.Tool" } - ] + ], + "description": "A tool that allows the model to execute shell commands in a local environment.", + "title": "Local shell tool" }, - "OpenAI.EvalItemContentOutputText": { + "OpenAI.LogProb": { "type": "object", "required": [ - "type", - "text" + "token", + "logprob", + "bytes", + "top_logprobs" ], "properties": { - "type": { - "type": "string", - "enum": [ - "output_text" - ] - }, - "text": { + "token": { "type": "string" + }, + "logprob": { + "type": "number" + }, + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + }, + "top_logprobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.TopLogProb" + } } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalItemContent" - } - ] - }, - "OpenAI.EvalItemContentType": { - "type": "string", - "enum": [ - "input_text", - "output_text" - ] + "description": "The log probability of a token.", + "title": "Log probability" }, - "OpenAI.EvalJsonlRunDataSourceParams": { + "OpenAI.MCPApprovalResponseResource": { "type": "object", "required": [ "type", - "source" + "id", + "approval_request_id", + "approve" ], "properties": { "type": { "type": "string", "enum": [ - "jsonl" + "mcp_approval_response" ], - "description": "The type of data source. Always `jsonl`." + "description": "The type of the item. Always `mcp_approval_response`.", + "x-stainless-const": true }, - "source": { + "id": { + "type": "string", + "description": "The unique ID of the approval response" + }, + "approval_request_id": { + "type": "string", + "description": "The ID of the approval request being answered." + }, + "approve": { + "type": "boolean", + "description": "Whether the request was approved." + }, + "reason": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunFileContentDataContentSource" + "type": "string" }, { - "$ref": "#/components/schemas/OpenAI.EvalRunFileIdDataContentSource" + "type": "null" } - ], - "description": "Determines what populates the `item` namespace in the data source." + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceParams" + "$ref": "#/components/schemas/OpenAI.ItemResource" } ], - "description": "A JsonlRunDataSource object with that specifies a JSONL file that matches the eval" + "description": "A response to an MCP approval request.", + "title": "MCP approval response" }, - "OpenAI.EvalList": { + "OpenAI.MCPListToolsTool": { "type": "object", "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" + "name", + "input_schema" ], "properties": { - "object": { - "type": "string", - "enum": [ - "list" - ], - "description": "The type of this object. It is always set to \"list\".", - "default": "list" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Eval" - }, - "description": "An array of eval objects." - }, - "first_id": { + "name": { "type": "string", - "description": "The identifier of the first eval in the data array." + "description": "The name of the tool." }, - "last_id": { - "type": "string", - "description": "The identifier of the last eval in the data array." + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "has_more": { - "type": "boolean", - "description": "Indicates whether there are more evals available." - } - }, - "description": "An object representing a list of evals." - }, - "OpenAI.EvalLogsDataSourceConfigParams": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "logs" + "input_schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPListToolsToolInputSchema" + } ], - "description": "The type of data source. Always `logs`." + "description": "The JSON schema describing the tool's input." }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "annotations": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPListToolsToolAnnotations" + }, + { + "type": "null" + } + ] } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigParams" - } - ], - "description": "A data source config which specifies the metadata property of your logs query.\nThis is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc." + "description": "A tool available on an MCP server.", + "title": "MCP list tools tool" }, - "OpenAI.EvalLogsDataSourceConfigResource": { + "OpenAI.MCPListToolsToolAnnotations": { + "type": "object" + }, + "OpenAI.MCPListToolsToolInputSchema": { + "type": "object" + }, + "OpenAI.MCPTool": { "type": "object", "required": [ "type", - "metadata", - "schema" + "server_label" ], "properties": { "type": { "type": "string", "enum": [ - "logs" + "mcp" ], - "description": "The type of data source. Always `logs`." + "description": "The type of the MCP tool. Always `mcp`.", + "x-stainless-const": true }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "server_label": { + "type": "string", + "description": "A label for this MCP server, used to identify it in tool calls." }, - "schema": { - "type": "object", - "additionalProperties": {}, - "description": "The json schema for the run data source items.\nLearn how to build JSON schemas [here](https://json-schema.org/)." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigResource" - } - ], - "description": "A LogsDataSourceConfig which specifies the metadata property of your logs query.\nThis is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc.\nThe schema returned by this data source config is used to defined what variables are available in your evals.\n`item` and `sample` are both defined when using this data source config." - }, - "OpenAI.EvalResponsesRunDataSourceParams": { - "type": "object", - "required": [ - "type", - "source" - ], - "properties": { - "type": { + "server_url": { + "type": "string", + "description": "The URL for the MCP server. One of `server_url` or `connector_id` must be\n provided." + }, + "connector_id": { "type": "string", "enum": [ - "responses" + "connector_dropbox", + "connector_gmail", + "connector_googlecalendar", + "connector_googledrive", + "connector_microsoftteams", + "connector_outlookcalendar", + "connector_outlookemail", + "connector_sharepoint" ], - "description": "The type of run data source. Always `responses`." + "description": "Identifier for service connectors, like those available in ChatGPT. One of\n `server_url` or `connector_id` must be provided. Learn more about service\n connectors [here](https://platform.openai.com/docs/guides/tools-remote-mcp#connectors).\n\n Currently supported `connector_id` values are:\n\n - Dropbox: `connector_dropbox`\n - Gmail: `connector_gmail`\n - Google Calendar: `connector_googlecalendar`\n - Google Drive: `connector_googledrive`\n - Microsoft Teams: `connector_microsoftteams`\n - Outlook Calendar: `connector_outlookcalendar`\n - Outlook Email: `connector_outlookemail`\n - SharePoint: `connector_sharepoint`" + }, + "authorization": { + "type": "string", + "description": "An OAuth access token that can be used with a remote MCP server, either\n with a custom MCP server URL or a service connector. Your application\n must handle the OAuth authorization flow and provide the token here." + }, + "server_description": { + "type": "string", + "description": "Optional description of the MCP server, used to provide more context." }, - "input_messages": { + "headers": { "anyOf": [ { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "template" - ], - "description": "The type of input messages. Always `template`." - }, - "template": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message (e.g. \"system\", \"assistant\", \"user\")." - }, - "content": { - "type": "string", - "description": "The content of the message." - } - }, - "required": [ - "role", - "content" - ] - }, - { - "$ref": "#/components/schemas/OpenAI.EvalItem" - } - ] - }, - "description": "A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}." - } - }, - "required": [ - "type", - "template" - ] + "unevaluatedProperties": { + "type": "string" + } }, { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "item_reference" - ], - "description": "The type of input messages. Always `item_reference`." - }, - "item_reference": { - "type": "string", - "description": "A reference to a variable in the `item` namespace. Ie, \"item.name\"" - } - }, - "required": [ - "type", - "item_reference" - ] + "type": "null" } - ], - "description": "Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace." - }, - "sampling_params": { - "$ref": "#/components/schemas/AzureEvalAPIResponseSamplingParams" + ] }, - "model": { - "type": "string", - "description": "The name of the model to use for generating completions (e.g. \"o3-mini\")." + "allowed_tools": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "#/components/schemas/OpenAI.MCPToolFilter" + }, + { + "type": "null" + } + ] }, - "source": { + "require_approval": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunFileContentDataContentSource" + "$ref": "#/components/schemas/OpenAI.MCPToolRequireApproval" }, { - "$ref": "#/components/schemas/OpenAI.EvalRunFileIdDataContentSource" + "type": "string", + "enum": [ + "always", + "never" + ] }, { - "$ref": "#/components/schemas/OpenAI.EvalRunResponsesDataContentSource" + "type": "null" } ], - "description": "Determines what populates the `item` namespace in this run's data source." + "default": "always" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceParams" + "$ref": "#/components/schemas/OpenAI.Tool" } ], - "description": "A ResponsesRunDataSource object describing a model sampling configuration." + "description": "Give the model access to additional tools via remote Model Context Protocol\n(MCP) servers. [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp).", + "title": "MCP tool" }, - "OpenAI.EvalRun": { + "OpenAI.MCPToolCallStatus": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete", + "calling", + "failed" + ] + }, + "OpenAI.MCPToolFilter": { + "type": "object", + "properties": { + "tool_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of allowed tool names.", + "title": "MCP allowed tools" + }, + "read_only": { + "type": "boolean", + "description": "Indicates whether or not a tool modifies data or is read-only. If an\n MCP server is [annotated with `readOnlyHint`](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),\n it will match this filter." + } + }, + "description": "A filter object to specify which tools are allowed.", + "title": "MCP tool filter" + }, + "OpenAI.MCPToolRequireApproval": { + "type": "object", + "properties": { + "always": { + "$ref": "#/components/schemas/OpenAI.MCPToolFilter" + }, + "never": { + "$ref": "#/components/schemas/OpenAI.MCPToolFilter" + } + } + }, + "OpenAI.Message": { "type": "object", "required": [ - "object", + "type", "id", - "eval_id", "status", - "model", - "name", - "created_at", - "report_url", - "result_counts", - "per_model_usage", - "per_testing_criteria_results", - "data_source", - "metadata", - "error" + "role", + "content" ], "properties": { - "object": { + "type": { "type": "string", "enum": [ - "eval.run" + "message" ], - "description": "The type of the object. Always \"eval.run\".", - "default": "eval.run" + "description": "The type of the message. Always set to `message`.", + "x-stainless-const": true, + "default": "message" }, "id": { "type": "string", - "description": "Unique identifier for the evaluation run." - }, - "eval_id": { - "type": "string", - "description": "The identifier of the associated evaluation." + "description": "The unique ID of the message." }, "status": { - "type": "string", - "description": "The status of the evaluation run." - }, - "model": { - "type": "string", - "description": "The model that is evaluated, if applicable." - }, - "name": { - "type": "string", - "description": "The name of the evaluation run." - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "Unix timestamp (in seconds) when the evaluation run was created." - }, - "report_url": { - "type": "string", - "description": "The URL to the rendered evaluation run report on the UI dashboard." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MessageStatus" + } + ], + "description": "The status of item. One of `in_progress`, `completed`, or `incomplete`. Populated when items are returned via API." }, - "result_counts": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int32", - "description": "Total number of executed output items." - }, - "errored": { - "type": "integer", - "format": "int32", - "description": "Number of output items that resulted in an error." - }, - "failed": { - "type": "integer", - "format": "int32", - "description": "Number of output items that failed to pass the evaluation." - }, - "passed": { - "type": "integer", - "format": "int32", - "description": "Number of output items that passed the evaluation." + "role": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MessageRole" } - }, - "required": [ - "total", - "errored", - "failed", - "passed" ], - "description": "Counters summarizing the outcomes of the evaluation run." + "description": "The role of the message. One of `unknown`, `user`, `assistant`, `system`, `critic`, `discriminator`, `developer`, or `tool`." }, - "per_model_usage": { + "content": { "type": "array", "items": { - "type": "object", - "properties": { - "model_name": { - "type": "string", - "description": "The name of the model." + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.InputTextContent" }, - "invocation_count": { - "type": "integer", - "format": "int32", - "description": "The number of invocations." + { + "$ref": "#/components/schemas/OpenAI.OutputTextContent" }, - "prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of prompt tokens used." + { + "$ref": "#/components/schemas/OpenAI.TextContent" }, - "completion_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of completion tokens generated." + { + "$ref": "#/components/schemas/OpenAI.SummaryTextContent" }, - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "The total number of tokens used." + { + "$ref": "#/components/schemas/OpenAI.ReasoningTextContent" }, - "cached_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens retrieved from cache." - } - }, - "required": [ - "model_name", - "invocation_count", - "prompt_tokens", - "completion_tokens", - "total_tokens", - "cached_tokens" - ] - }, - "description": "Usage statistics for each model during the evaluation run." - }, - "per_testing_criteria_results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "testing_criteria": { - "type": "string", - "description": "A description of the testing criteria." + { + "$ref": "#/components/schemas/OpenAI.RefusalContent" }, - "passed": { - "type": "integer", - "format": "int32", - "description": "Number of tests passed for this criteria." + { + "$ref": "#/components/schemas/OpenAI.InputImageContent" }, - "failed": { - "type": "integer", - "format": "int32", - "description": "Number of tests failed for this criteria." + { + "$ref": "#/components/schemas/OpenAI.ComputerScreenshotContent" + }, + { + "$ref": "#/components/schemas/OpenAI.InputFileContent" } - }, - "required": [ - "testing_criteria", - "passed", - "failed" ] }, - "description": "Results per testing criteria applied during the evaluation run." - }, - "data_source": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceResource" - } - ], - "description": "Information about the run's data source." - }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - }, - "error": { - "$ref": "#/components/schemas/OpenAI.EvalApiError" + "description": "The content of the message" } }, - "description": "A schema representing an evaluation run." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ], + "description": "A message to or from the model.", + "title": "Message" }, - "OpenAI.EvalRunDataContentSource": { + "OpenAI.MessageContent": { "type": "object", "required": [ "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.EvalRunDataContentSourceType" + "$ref": "#/components/schemas/OpenAI.MessageContentType" } }, "discriminator": { "propertyName": "type", "mapping": { - "file_id": "#/components/schemas/OpenAI.EvalRunFileIdDataContentSource", - "stored_completions": "#/components/schemas/OpenAI.EvalRunStoredCompletionsDataContentSource", - "responses": "#/components/schemas/OpenAI.EvalRunResponsesDataContentSource" + "image_url": "#/components/schemas/OpenAI.MessageContentImageUrlObject", + "text": "#/components/schemas/OpenAI.MessageContentTextObject", + "refusal": "#/components/schemas/OpenAI.MessageContentRefusalObject" + } + } + }, + "OpenAI.MessageContentImageFileObject": { + "type": "object", + "required": [ + "type", + "image_file" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "image_file" + ], + "description": "Always `image_file`.", + "x-stainless-const": true + }, + "image_file": { + "$ref": "#/components/schemas/OpenAI.MessageContentImageFileObjectImageFile" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MessageContent" + } + ], + "description": "References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message.", + "title": "Image file" + }, + "OpenAI.MessageContentImageFileObjectImageFile": { + "type": "object", + "required": [ + "file_id" + ], + "properties": { + "file_id": { + "type": "string" + }, + "detail": { + "type": "string", + "enum": [ + "auto", + "low", + "high" + ], + "default": "auto" } } }, - "OpenAI.EvalRunDataContentSourceType": { - "type": "string", - "enum": [ - "file_id", - "file_content", - "stored_completions", - "responses" - ] - }, - "OpenAI.EvalRunDataSourceCompletionsResource": { + "OpenAI.MessageContentImageUrlObject": { "type": "object", "required": [ - "type" + "type", + "image_url" ], "properties": { "type": { "type": "string", "enum": [ - "completions" - ] + "image_url" + ], + "description": "The type of the content part.", + "x-stainless-const": true + }, + "image_url": { + "$ref": "#/components/schemas/OpenAI.MessageContentImageUrlObjectImageUrl" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceResource" + "$ref": "#/components/schemas/OpenAI.MessageContent" } - ] + ], + "description": "References an image URL in the content of a message.", + "title": "Image URL" }, - "OpenAI.EvalRunDataSourceJsonlResource": { + "OpenAI.MessageContentImageUrlObjectImageUrl": { "type": "object", "required": [ - "type" + "url" ], "properties": { - "type": { + "url": { + "type": "string", + "format": "uri" + }, + "detail": { "type": "string", "enum": [ - "jsonl" - ] - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceResource" + "auto", + "low", + "high" + ], + "default": "auto" } - ] + } }, - "OpenAI.EvalRunDataSourceParams": { + "OpenAI.MessageContentRefusalObject": { "type": "object", "required": [ - "type" + "type", + "refusal" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceType" + "type": "string", + "enum": [ + "refusal" + ], + "description": "Always `refusal`.", + "x-stainless-const": true + }, + "refusal": { + "type": "string" } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "jsonl": "#/components/schemas/OpenAI.EvalJsonlRunDataSourceParams", - "completions": "#/components/schemas/OpenAI.EvalCompletionsRunDataSourceParams", - "responses": "#/components/schemas/OpenAI.EvalResponsesRunDataSourceParams" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MessageContent" } - } - }, - "OpenAI.EvalRunDataSourceResource": { - "type": "object", - "required": [ - "type" ], - "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceType" - } - } + "description": "The refusal content generated by the assistant.", + "title": "Refusal" }, - "OpenAI.EvalRunDataSourceResponsesResource": { + "OpenAI.MessageContentTextAnnotationsFileCitationObject": { "type": "object", "required": [ - "type" + "type", + "text", + "file_citation", + "start_index", + "end_index" ], "properties": { "type": { "type": "string", "enum": [ - "responses" - ] + "file_citation" + ], + "description": "Always `file_citation`.", + "x-stainless-const": true + }, + "text": { + "type": "string", + "description": "The text in the message content that needs to be replaced." + }, + "file_citation": { + "$ref": "#/components/schemas/OpenAI.MessageContentTextAnnotationsFileCitationObjectFileCitation" + }, + "start_index": { + "type": "integer", + "minimum": 0 + }, + "end_index": { + "type": "integer", + "minimum": 0 } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceResource" + "$ref": "#/components/schemas/OpenAI.TextAnnotation" } - ] + ], + "description": "A citation within the message that points to a specific quote from a specific File associated with the assistant or the message. Generated when the assistant uses the \"file_search\" tool to search files.", + "title": "File citation" }, - "OpenAI.EvalRunDataSourceType": { - "type": "string", - "enum": [ - "jsonl", - "completions", - "responses" - ] + "OpenAI.MessageContentTextAnnotationsFileCitationObjectFileCitation": { + "type": "object", + "required": [ + "file_id" + ], + "properties": { + "file_id": { + "type": "string" + } + } }, - "OpenAI.EvalRunFileContentDataContentSource": { + "OpenAI.MessageContentTextAnnotationsFilePathObject": { "type": "object", "required": [ "type", - "content" + "text", + "file_path", + "start_index", + "end_index" ], "properties": { "type": { "type": "string", "enum": [ - "file_content" + "file_path" ], - "description": "The type of jsonl source. Always `file_content`." + "description": "Always `file_path`.", + "x-stainless-const": true }, - "content": { - "type": "array", - "items": { - "type": "object", - "properties": { - "item": { - "type": "object", - "additionalProperties": {} - }, - "sample": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "item" - ] - }, - "description": "The content of the jsonl file." + "text": { + "type": "string", + "description": "The text in the message content that needs to be replaced." + }, + "file_path": { + "$ref": "#/components/schemas/OpenAI.MessageContentTextAnnotationsFilePathObjectFilePath" + }, + "start_index": { + "type": "integer", + "minimum": 0 + }, + "end_index": { + "type": "integer", + "minimum": 0 } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunDataContentSource" + "$ref": "#/components/schemas/OpenAI.TextAnnotation" } - ] + ], + "description": "A URL for the file that's generated when the assistant used the `code_interpreter` tool to generate a file.", + "title": "File path" + }, + "OpenAI.MessageContentTextAnnotationsFilePathObjectFilePath": { + "type": "object", + "required": [ + "file_id" + ], + "properties": { + "file_id": { + "type": "string" + } + } }, - "OpenAI.EvalRunFileIdDataContentSource": { + "OpenAI.MessageContentTextObject": { "type": "object", "required": [ "type", - "id" + "text" ], "properties": { "type": { "type": "string", "enum": [ - "file_id" + "text" ], - "description": "The type of jsonl source. Always `file_id`." + "description": "Always `text`.", + "x-stainless-const": true }, - "id": { - "type": "string", - "description": "The identifier of the file." + "text": { + "$ref": "#/components/schemas/OpenAI.MessageContentTextObjectText" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunDataContentSource" + "$ref": "#/components/schemas/OpenAI.MessageContent" } - ] + ], + "description": "The text content that is part of a message.", + "title": "Text" }, - "OpenAI.EvalRunList": { + "OpenAI.MessageContentTextObjectText": { "type": "object", "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" + "value", + "annotations" ], "properties": { - "object": { - "type": "string", - "enum": [ - "list" - ], - "description": "The type of this object. It is always set to \"list\".", - "default": "list" + "value": { + "type": "string" }, - "data": { + "annotations": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.EvalRun" - }, - "description": "An array of eval run objects." - }, - "first_id": { - "type": "string", - "description": "The identifier of the first eval run in the data array." + "$ref": "#/components/schemas/OpenAI.TextAnnotation" + } + } + } + }, + "OpenAI.MessageContentType": { + "anyOf": [ + { + "type": "string" }, - "last_id": { + { "type": "string", - "description": "The identifier of the last eval run in the data array." - }, - "has_more": { - "type": "boolean", - "description": "Indicates whether there are more evals available." + "enum": [ + "image_file", + "image_url", + "text", + "refusal" + ] } - }, - "description": "An object representing a list of runs for an evaluation." + ] }, - "OpenAI.EvalRunOutputItem": { + "OpenAI.MessageObject": { "type": "object", "required": [ - "object", "id", - "run_id", - "eval_id", + "object", "created_at", + "thread_id", "status", - "datasource_item_id", - "datasource_item", - "results", - "sample" + "incomplete_details", + "completed_at", + "incomplete_at", + "role", + "content", + "assistant_id", + "run_id", + "attachments", + "metadata" ], "properties": { - "object": { - "type": "string", - "enum": [ - "eval.run.output_item" - ], - "description": "The type of the object. Always \"eval.run.output_item\".", - "default": "eval.run.output_item" - }, "id": { "type": "string", - "description": "Unique identifier for the evaluation run output item." - }, - "run_id": { - "type": "string", - "description": "The identifier of the evaluation run associated with this output item." + "description": "The identifier, which can be referenced in API endpoints." }, - "eval_id": { + "object": { "type": "string", - "description": "The identifier of the evaluation group." + "enum": [ + "thread.message" + ], + "description": "The object type, which is always `thread.message`.", + "x-stainless-const": true }, "created_at": { "type": "integer", "format": "unixtime", - "description": "Unix timestamp (in seconds) when the evaluation run was created." + "description": "The Unix timestamp (in seconds) for when the message was created." + }, + "thread_id": { + "type": "string", + "description": "The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to." }, "status": { "type": "string", - "description": "The status of the evaluation run." + "enum": [ + "in_progress", + "incomplete", + "completed" + ], + "description": "The status of the message, which can be either `in_progress`, `incomplete`, or `completed`." }, - "datasource_item_id": { + "incomplete_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.MessageObjectIncompleteDetails" + }, + { + "type": "null" + } + ] + }, + "completed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" + }, + "incomplete_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], "type": "integer", - "format": "int32", - "description": "The identifier for the data source item." + "format": "unixTimestamp" }, - "datasource_item": { - "type": "object", - "additionalProperties": {}, - "description": "Details of the input data source item." + "role": { + "type": "string", + "enum": [ + "user", + "assistant" + ], + "description": "The entity that produced the message. One of `user` or `assistant`." }, - "results": { + "content": { "type": "array", "items": { - "type": "object", - "additionalProperties": {} + "$ref": "#/components/schemas/OpenAI.MessageContent" }, - "description": "A list of results from the evaluation run." + "description": "The content of the message in array of text and/or images." }, - "sample": { - "type": "object", - "properties": { - "input": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., system, user, developer)." - }, - "content": { - "type": "string", - "description": "The content of the message." - } - }, - "required": [ - "role", - "content" - ] - }, - "description": "An array of input messages." + "assistant_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "run_id": { + "anyOf": [ + { + "type": "string" }, - "output": { + { + "type": "null" + } + ] + }, + "attachments": { + "anyOf": [ + { "type": "array", "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message (e.g. \"system\", \"assistant\", \"user\")." - }, - "content": { - "type": "string", - "description": "The content of the message." - } - } - }, - "description": "An array of output messages." - }, - "finish_reason": { - "type": "string", - "description": "The reason why the sample generation was finished." - }, - "model": { - "type": "string", - "description": "The model used for generating the sample." - }, - "usage": { - "type": "object", - "properties": { - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "The total number of tokens used." - }, - "completion_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of completion tokens generated." - }, - "prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of prompt tokens used." - }, - "cached_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens retrieved from cache." - } - }, - "required": [ - "total_tokens", - "completion_tokens", - "prompt_tokens", - "cached_tokens" - ], - "description": "Token usage details for the sample." - }, - "error": { - "$ref": "#/components/schemas/OpenAI.EvalApiError" - }, - "temperature": { - "type": "number", - "format": "float", - "description": "The sampling temperature used." - }, - "max_completion_tokens": { - "type": "integer", - "format": "int32", - "description": "The maximum number of tokens allowed for completion." + "$ref": "#/components/schemas/OpenAI.MessageObjectAttachments" + } }, - "top_p": { - "type": "number", - "format": "float", - "description": "The top_p value used for sampling." + { + "type": "null" + } + ] + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" }, - "seed": { - "type": "integer", - "format": "int32", - "description": "The seed used for generating the sample." + { + "type": "null" } - }, - "required": [ - "input", - "output", - "finish_reason", - "model", - "usage", - "error", - "temperature", - "max_completion_tokens", - "top_p", - "seed" - ], - "description": "A sample containing the input and output of the evaluation run." + ] } }, - "description": "A schema representing an evaluation run output item." + "description": "Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads).", + "title": "The message object", + "x-oaiMeta": { + "name": "The message object", + "beta": true, + "example": "{\n \"id\": \"msg_abc123\",\n \"object\": \"thread.message\",\n \"created_at\": 1698983503,\n \"thread_id\": \"thread_abc123\",\n \"role\": \"assistant\",\n \"content\": [\n {\n \"type\": \"text\",\n \"text\": {\n \"value\": \"Hi! How can I help you today?\",\n \"annotations\": []\n }\n }\n ],\n \"assistant_id\": \"asst_abc123\",\n \"run_id\": \"run_abc123\",\n \"attachments\": [],\n \"metadata\": {}\n}\n" + } }, - "OpenAI.EvalRunOutputItemList": { + "OpenAI.MessageObjectAttachments": { "type": "object", - "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" - ], "properties": { - "object": { - "type": "string", - "enum": [ - "list" - ], - "description": "The type of this object. It is always set to \"list\".", - "default": "list" + "file_id": { + "type": "string" }, - "data": { + "tools": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.EvalRunOutputItem" - }, - "description": "An array of eval run output item objects." - }, - "first_id": { - "type": "string", - "description": "The identifier of the first eval run output item in the data array." - }, - "last_id": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.AssistantToolsCode" + }, + { + "$ref": "#/components/schemas/OpenAI.AssistantToolsFileSearchTypeOnly" + } + ] + } + } + } + }, + "OpenAI.MessageObjectIncompleteDetails": { + "type": "object", + "required": [ + "reason" + ], + "properties": { + "reason": { "type": "string", - "description": "The identifier of the last eval run output item in the data array." - }, - "has_more": { - "type": "boolean", - "description": "Indicates whether there are more eval run output items available." + "enum": [ + "content_filter", + "max_tokens", + "run_cancelled", + "run_expired", + "run_failed" + ] } - }, - "description": "An object representing a list of output items for an evaluation run." + } }, - "OpenAI.EvalRunResponsesDataContentSource": { + "OpenAI.MessageRequestContentTextObject": { "type": "object", "required": [ - "type" + "type", + "text" ], "properties": { "type": { "type": "string", "enum": [ - "responses" + "text" ], - "description": "The type of run data source. Always `responses`." + "description": "Always `text`.", + "x-stainless-const": true }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - }, - "model": { + "text": { "type": "string", - "nullable": true, - "description": "The name of the model to find responses for. This is a query parameter used to select responses." - }, - "instructions_search": { + "description": "Text content to be sent to the model" + } + }, + "description": "The text content that is part of a message.", + "title": "Text" + }, + "OpenAI.MessageRole": { + "type": "string", + "enum": [ + "unknown", + "user", + "assistant", + "system", + "critic", + "discriminator", + "developer", + "tool" + ] + }, + "OpenAI.MessageStatus": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ] + }, + "OpenAI.Metadata": { + "type": "object", + "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", + "x-oaiTypeLabel": "map" + }, + "OpenAI.Model": { + "type": "object", + "required": [ + "id", + "created", + "object", + "owned_by" + ], + "properties": { + "id": { "type": "string", - "nullable": true, - "description": "Optional string to search the 'instructions' field. This is a query parameter used to select responses." + "description": "The model identifier, which can be referenced in the API endpoints." }, - "created_after": { + "created": { "type": "integer", - "format": "int32", - "nullable": true, - "minimum": 0, - "description": "Only include items created after this timestamp (inclusive). This is a query parameter used to select responses." + "format": "unixtime", + "description": "The Unix timestamp (in seconds) when the model was created." }, - "created_before": { - "type": "integer", - "format": "int32", - "nullable": true, - "minimum": 0, - "description": "Only include items created before this timestamp (inclusive). This is a query parameter used to select responses." + "object": { + "type": "string", + "enum": [ + "model" + ], + "description": "The object type, which is always \"model\".", + "x-stainless-const": true }, - "reasoning_effort": { - "allOf": [ + "owned_by": { + "type": "string", + "description": "The organization that owns the model." + } + }, + "description": "Describes an OpenAI model offering that can be used with the API.", + "title": "Model", + "x-oaiMeta": { + "name": "The model object", + "example": "{\n \"id\": \"VAR_chat_model_id\",\n \"object\": \"model\",\n \"created\": 1686935002,\n \"owned_by\": \"openai\"\n}\n" + } + }, + "OpenAI.ModifyMessageRequest": { + "type": "object", + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.ModifyRunRequest": { + "type": "object", + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.ModifyThreadRequest": { + "type": "object", + "properties": { + "tool_resources": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + "$ref": "#/components/schemas/OpenAI.ModifyThreadRequestToolResources" + }, + { + "type": "null" } - ], - "nullable": true, - "description": "Optional reasoning effort parameter. This is a query parameter used to select responses.", - "default": "medium" - }, - "temperature": { - "type": "number", - "format": "float", - "nullable": true, - "description": "Sampling temperature. This is a query parameter used to select responses." + ] }, - "top_p": { - "type": "number", - "format": "float", - "nullable": true, - "description": "Nucleus sampling parameter. This is a query parameter used to select responses." + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.ModifyThreadRequestToolResources": { + "type": "object", + "properties": { + "code_interpreter": { + "$ref": "#/components/schemas/OpenAI.ModifyThreadRequestToolResourcesCodeInterpreter" }, - "users": { + "file_search": { + "$ref": "#/components/schemas/OpenAI.ModifyThreadRequestToolResourcesFileSearch" + } + } + }, + "OpenAI.ModifyThreadRequestToolResourcesCodeInterpreter": { + "type": "object", + "properties": { + "file_ids": { "type": "array", "items": { "type": "string" }, - "nullable": true, - "description": "List of user identifiers. This is a query parameter used to select responses." - }, - "tools": { + "maxItems": 20 + } + } + }, + "OpenAI.ModifyThreadRequestToolResourcesFileSearch": { + "type": "object", + "properties": { + "vector_store_ids": { "type": "array", "items": { "type": "string" }, - "nullable": true, - "description": "List of tool names. This is a query parameter used to select responses." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalRunDataContentSource" + "maxItems": 1 } - ], - "description": "A EvalResponsesSource object describing a run data source configuration." + } }, - "OpenAI.EvalRunStoredCompletionsDataContentSource": { + "OpenAI.Move": { "type": "object", "required": [ "type", - "metadata" + "x", + "y" ], "properties": { "type": { "type": "string", "enum": [ - "stored_completions" + "move" ], - "description": "The type of source. Always `stored_completions`." + "description": "Specifies the event type. For a move action, this property is\n always set to `move`.", + "x-stainless-const": true, + "default": "move" }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "x": { + "type": "integer", + "description": "The x-coordinate to move to." }, - "model": { + "y": { + "type": "integer", + "description": "The y-coordinate to move to." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + } + ], + "description": "A mouse move action.", + "title": "Move" + }, + "OpenAI.NoiseReductionType": { + "type": "string", + "enum": [ + "near_field", + "far_field" + ], + "description": "Type of noise reduction. `near_field` is for close-talking microphones such as headphones, `far_field` is for far-field microphones such as laptop or conference room microphones." + }, + "OpenAI.OpenAIFile": { + "type": "object", + "required": [ + "id", + "bytes", + "created_at", + "filename", + "object", + "purpose", + "status" + ], + "properties": { + "id": { "type": "string", - "nullable": true, - "description": "An optional model to filter by (e.g., 'gpt-4o')." + "description": "The file identifier, which can be referenced in the API endpoints." }, - "created_after": { + "bytes": { "type": "integer", - "format": "int32", - "nullable": true, - "description": "An optional Unix timestamp to filter items created after this time." + "description": "The size of the file, in bytes." }, - "created_before": { + "created_at": { "type": "integer", - "format": "int32", - "nullable": true, - "description": "An optional Unix timestamp to filter items created before this time." + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the file was created." }, - "limit": { + "expires_at": { "type": "integer", - "format": "int32", - "nullable": true, - "description": "An optional maximum number of items to return." + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the file will expire." + }, + "filename": { + "type": "string", + "description": "The name of the file." + }, + "object": { + "type": "string", + "enum": [ + "file" + ], + "description": "The object type, which is always `file`.", + "x-stainless-const": true + }, + "status_details": { + "type": "string", + "description": "Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`." + }, + "purpose": { + "type": "string", + "enum": [ + "assistants", + "assistants_output", + "batch", + "batch_output", + "fine-tune", + "fine-tune-results", + "evals" + ], + "description": "The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`." + }, + "status": { + "type": "string", + "enum": [ + "uploaded", + "pending", + "running", + "processed", + "error", + "deleting", + "deleted" + ] } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalRunDataContentSource" - } - ], - "description": "A StoredCompletionsRunDataSource configuration describing a set of filters" + "description": "The `File` object represents a document that has been uploaded to OpenAI.", + "title": "OpenAIFile", + "x-oaiMeta": { + "name": "The file object", + "example": "{\n \"id\": \"file-abc123\",\n \"object\": \"file\",\n \"bytes\": 120000,\n \"created_at\": 1677610602,\n \"expires_at\": 1680202602,\n \"filename\": \"salesOverview.pdf\",\n \"purpose\": \"assistants\",\n}\n" + } }, - "OpenAI.EvalStoredCompletionsDataSourceConfigParams": { + "OpenAI.OtherChunkingStrategyResponseParam": { "type": "object", "required": [ "type" @@ -14465,1488 +27354,1650 @@ "type": { "type": "string", "enum": [ - "stored_completions" + "other" ], - "description": "The type of data source. Always `stored_completions`." - }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Metadata filters for the stored completions data source." + "description": "Always `other`.", + "x-stainless-const": true } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigParams" + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponse" } ], - "description": "Deprecated in favor of LogsDataSourceConfig.", - "deprecated": true + "description": "This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the `chunking_strategy` concept was introduced in the API.", + "title": "Other Chunking Strategy" }, - "OpenAI.EvalStoredCompletionsDataSourceConfigResource": { + "OpenAI.OutputContent": { "type": "object", "required": [ - "type", - "metadata", - "schema" + "type" ], "properties": { "type": { - "type": "string", - "enum": [ - "stored_completions" - ], - "description": "The type of data source. Always `stored_completions`." - }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - }, - "schema": { - "type": "object", - "additionalProperties": {}, - "description": "The json schema for the run data source items.\nLearn how to build JSON schemas [here](https://json-schema.org/)." + "$ref": "#/components/schemas/OpenAI.OutputContentType" } }, - "allOf": [ + "discriminator": { + "propertyName": "type", + "mapping": { + "refusal": "#/components/schemas/OpenAI.RefusalContent", + "reasoning_text": "#/components/schemas/OpenAI.ReasoningTextContent" + } + } + }, + "OpenAI.OutputContentType": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigResource" + "type": "string" + }, + { + "type": "string", + "enum": [ + "output_text", + "refusal", + "reasoning_text" + ] } + ] + }, + "OpenAI.OutputItem": { + "type": "object", + "required": [ + "type" ], - "description": "Deprecated in favor of LogsDataSourceConfig.", - "deprecated": true + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.OutputItemType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "output_message": "#/components/schemas/OpenAI.OutputItemOutputMessage", + "file_search_call": "#/components/schemas/OpenAI.OutputItemFileSearchToolCall", + "function_call": "#/components/schemas/OpenAI.OutputItemFunctionToolCall", + "web_search_call": "#/components/schemas/OpenAI.OutputItemWebSearchToolCall", + "computer_call": "#/components/schemas/OpenAI.OutputItemComputerToolCall", + "reasoning": "#/components/schemas/OpenAI.OutputItemReasoningItem", + "compaction": "#/components/schemas/OpenAI.CompactionBody", + "image_generation_call": "#/components/schemas/OpenAI.OutputItemImageGenToolCall", + "code_interpreter_call": "#/components/schemas/OpenAI.OutputItemCodeInterpreterToolCall", + "local_shell_call": "#/components/schemas/OpenAI.OutputItemLocalShellToolCall", + "shell_call": "#/components/schemas/OpenAI.OutputItemFunctionShellCall", + "shell_call_output": "#/components/schemas/OpenAI.OutputItemFunctionShellCallOutput", + "apply_patch_call": "#/components/schemas/OpenAI.OutputItemApplyPatchToolCall", + "apply_patch_call_output": "#/components/schemas/OpenAI.OutputItemApplyPatchToolCallOutput", + "mcp_call": "#/components/schemas/OpenAI.OutputItemMCPToolCall", + "mcp_list_tools": "#/components/schemas/OpenAI.OutputItemMCPListTools", + "mcp_approval_request": "#/components/schemas/OpenAI.OutputItemMCPApprovalRequest", + "custom_tool_call": "#/components/schemas/OpenAI.OutputItemCustomToolCall" + } + } }, - "OpenAI.FileSearchTool": { + "OpenAI.OutputItemApplyPatchToolCall": { "type": "object", "required": [ "type", - "vector_store_ids" + "id", + "call_id", + "status", + "operation" ], "properties": { "type": { "type": "string", "enum": [ - "file_search" + "apply_patch_call" ], - "description": "The type of the file search tool. Always `file_search`." + "description": "The type of the item. Always `apply_patch_call`.", + "x-stainless-const": true, + "default": "apply_patch_call" }, - "vector_store_ids": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The IDs of the vector stores to search." + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call. Populated when this item is returned via API." }, - "max_num_results": { - "type": "integer", - "format": "int32", - "description": "The maximum number of results to return. This number should be between 1 and 50 inclusive." + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." }, - "ranking_options": { + "status": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.RankingOptions" + "$ref": "#/components/schemas/OpenAI.ApplyPatchCallStatus" } ], - "description": "Ranking options for search." + "description": "The status of the apply patch tool call. One of `in_progress` or `completed`." }, - "filters": { + "operation": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Filters" + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperation" } ], - "nullable": true, - "description": "A filter to apply." + "description": "One of the create_file, delete_file, or update_file operations applied via apply_patch." + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/OpenAI.OutputItem" } - ], - "description": "A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search)." + ] }, - "OpenAI.FileSearchToolCallItemParam": { + "OpenAI.OutputItemApplyPatchToolCallOutput": { "type": "object", "required": [ "type", - "queries" + "id", + "call_id", + "status" ], "properties": { "type": { "type": "string", "enum": [ - "file_search_call" - ] + "apply_patch_call_output" + ], + "description": "The type of the item. Always `apply_patch_call_output`.", + "x-stainless-const": true, + "default": "apply_patch_call_output" }, - "queries": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The queries used to search for files." + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call output. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchCallOutputStatus" + } + ], + "description": "The status of the apply patch tool call output. One of `completed` or `failed`." }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "file_id": { - "type": "string", - "description": "The unique ID of the file." - }, - "text": { - "type": "string", - "description": "The text that was retrieved from the file." - }, - "filename": { - "type": "string", - "description": "The name of the file." - }, - "attributes": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" - }, - "score": { - "type": "number", - "format": "float", - "description": "The relevance score of the file - a value between 0 and 1." - } + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - }, - "nullable": true, - "description": "The results of the file search tool call." + ] + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call output." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.OutputItem" } - ], - "description": "The results of a file search tool call. See the\n[file search guide](/docs/guides/tools-file-search) for more information.\n" + ] }, - "OpenAI.FileSearchToolCallItemResource": { + "OpenAI.OutputItemCodeInterpreterToolCall": { "type": "object", "required": [ "type", + "id", "status", - "queries" + "container_id", + "code", + "outputs" ], "properties": { "type": { "type": "string", "enum": [ - "file_search_call" - ] + "code_interpreter_call" + ], + "description": "The type of the code interpreter tool call. Always `code_interpreter_call`.", + "x-stainless-const": true, + "default": "code_interpreter_call" + }, + "id": { + "type": "string", + "description": "The unique ID of the code interpreter tool call." }, "status": { "type": "string", "enum": [ "in_progress", - "searching", "completed", "incomplete", + "interpreting", "failed" ], - "description": "The status of the file search tool call. One of `in_progress`, \n`searching`, `incomplete` or `failed`," - }, - "queries": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The queries used to search for files." - }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "file_id": { - "type": "string", - "description": "The unique ID of the file." - }, - "text": { - "type": "string", - "description": "The text that was retrieved from the file." - }, - "filename": { - "type": "string", - "description": "The name of the file." - }, - "attributes": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" - }, - "score": { - "type": "number", - "format": "float", - "description": "The relevance score of the file - a value between 0 and 1." - } - } - }, - "nullable": true, - "description": "The results of the file search tool call." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemResource" - } - ], - "description": "The results of a file search tool call. See the\n[file search guide](/docs/guides/tools-file-search) for more information.\n" - }, - "OpenAI.Filters": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.ComparisonFilter" - }, - { - "$ref": "#/components/schemas/OpenAI.CompoundFilter" - } - ] - }, - "OpenAI.FineTuneDPOHyperparameters": { - "type": "object", - "properties": { - "beta": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "number", - "format": "float" - } - ], - "description": "The beta value for the DPO method. A higher beta value will increase the weight of the penalty between the policy and reference model.", - "default": "auto" + "description": "The status of the code interpreter tool call. Valid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`." }, - "batch_size": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.", - "default": "auto" + "container_id": { + "type": "string", + "description": "The ID of the container used to run the code." }, - "learning_rate_multiplier": { + "code": { "anyOf": [ { - "type": "string", - "enum": [ - "auto" - ] + "type": "string" }, { - "type": "number", - "format": "float" + "type": "null" } - ], - "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting.", - "default": "auto" + ] }, - "n_epochs": { + "outputs": { "anyOf": [ { - "type": "string", - "enum": [ - "auto" - ] + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputLogs" + }, + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputImage" + } + ] + } }, { - "type": "integer", - "format": "int32" + "type": "null" } - ], - "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.", - "default": "auto" + ] } }, - "description": "The hyperparameters used for the DPO fine-tuning job." - }, - "OpenAI.FineTuneDPOMethod": { - "type": "object", - "properties": { - "hyperparameters": { - "$ref": "#/components/schemas/OpenAI.FineTuneDPOHyperparameters" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" } - }, - "description": "Configuration for the DPO fine-tuning method." + ] }, - "OpenAI.FineTuneMethod": { + "OpenAI.OutputItemComputerToolCall": { "type": "object", "required": [ - "type" + "type", + "id", + "call_id", + "action", + "pending_safety_checks", + "status" ], "properties": { "type": { "type": "string", "enum": [ - "supervised", - "dpo", - "reinforcement" + "computer_call" ], - "description": "The type of method. Is either `supervised`, `dpo`, or `reinforcement`." + "description": "The type of the computer call. Always `computer_call`.", + "default": "computer_call" }, - "supervised": { - "$ref": "#/components/schemas/OpenAI.FineTuneSupervisedMethod" + "id": { + "type": "string", + "description": "The unique ID of the computer call." }, - "dpo": { - "$ref": "#/components/schemas/OpenAI.FineTuneDPOMethod" + "call_id": { + "type": "string", + "description": "An identifier used when responding to the tool call with output." }, - "reinforcement": { - "$ref": "#/components/schemas/AzureFineTuneReinforcementMethod" + "action": { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + }, + "pending_safety_checks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ComputerCallSafetyCheckParam" + }, + "description": "The pending safety checks for the computer call." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." } }, - "description": "The method used for fine-tuning." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] }, - "OpenAI.FineTuneReinforcementHyperparameters": { + "OpenAI.OutputItemCustomToolCall": { "type": "object", - "properties": { - "batch_size": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.", - "default": "auto" - }, - "learning_rate_multiplier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "number", - "format": "float" - } - ], - "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting.", - "default": "auto" - }, - "n_epochs": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } + "required": [ + "type", + "call_id", + "name", + "input" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom_tool_call" ], - "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.", - "default": "auto" + "description": "The type of the custom tool call. Always `custom_tool_call`.", + "x-stainless-const": true }, - "reasoning_effort": { + "id": { + "type": "string", + "description": "The unique ID of the custom tool call in the OpenAI platform." + }, + "call_id": { + "type": "string", + "description": "An identifier used to map this custom tool call to a tool call output." + }, + "name": { + "type": "string", + "description": "The name of the custom tool being called." + }, + "input": { + "type": "string", + "description": "The input for the custom tool call generated by the model." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] + }, + "OpenAI.OutputItemFileSearchToolCall": { + "type": "object", + "required": [ + "id", + "type", + "status", + "queries" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the file search tool call." + }, + "type": { "type": "string", "enum": [ - "default", - "low", - "medium", - "high" + "file_search_call" ], - "description": "Level of reasoning effort.", - "default": "default" + "description": "The type of the file search tool call. Always `file_search_call`.", + "x-stainless-const": true }, - "compute_multiplier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "number", - "format": "float" - } + "status": { + "type": "string", + "enum": [ + "in_progress", + "searching", + "completed", + "incomplete", + "failed" ], - "description": "Multiplier on amount of compute used for exploring search space during training.", - "default": "auto" + "description": "The status of the file search tool call. One of `in_progress`,\n `searching`, `incomplete` or `failed`," }, - "eval_interval": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "description": "The number of training steps between evaluation runs.", - "default": "auto" + "queries": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The queries used to search for files." }, - "eval_samples": { + "results": { "anyOf": [ { - "type": "string", - "enum": [ - "auto" - ] + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FileSearchToolCallResults" + } }, { - "type": "integer", - "format": "int32" + "type": "null" } - ], - "description": "Number of evaluation samples to generate per training step.", - "default": "auto" + ] } }, - "description": "The hyperparameters used for the reinforcement fine-tuning job." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] }, - "OpenAI.FineTuneSupervisedHyperparameters": { + "OpenAI.OutputItemFunctionShellCall": { "type": "object", + "required": [ + "type", + "id", + "call_id", + "action", + "status" + ], "properties": { - "batch_size": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } + "type": { + "type": "string", + "enum": [ + "shell_call" ], - "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.", - "default": "auto" + "description": "The type of the item. Always `shell_call`.", + "x-stainless-const": true, + "default": "shell_call" }, - "learning_rate_multiplier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, + "id": { + "type": "string", + "description": "The unique ID of the shell tool call. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the shell tool call generated by the model." + }, + "action": { + "allOf": [ { - "type": "number", - "format": "float" + "$ref": "#/components/schemas/OpenAI.FunctionShellAction" } ], - "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting.", - "default": "auto" + "description": "The shell commands and limits that describe how to run the tool call." }, - "n_epochs": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, + "status": { + "allOf": [ { - "type": "integer", - "format": "int32" + "$ref": "#/components/schemas/OpenAI.LocalShellCallStatus" } ], - "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.", - "default": "auto" + "description": "The status of the shell call. One of `in_progress`, `completed`, or `incomplete`." + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call." } }, - "description": "The hyperparameters used for the fine-tuning job." - }, - "OpenAI.FineTuneSupervisedMethod": { - "type": "object", - "properties": { - "hyperparameters": { - "$ref": "#/components/schemas/OpenAI.FineTuneSupervisedHyperparameters" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" } - }, - "description": "Configuration for the supervised fine-tuning method." + ] }, - "OpenAI.FineTuningIntegration": { + "OpenAI.OutputItemFunctionShellCallOutput": { "type": "object", "required": [ - "type" + "type", + "id", + "call_id", + "output", + "max_output_length" ], "properties": { "type": { + "type": "string", + "enum": [ + "shell_call_output" + ], + "description": "The type of the shell call output. Always `shell_call_output`.", + "x-stainless-const": true, + "default": "shell_call_output" + }, + "id": { + "type": "string", + "description": "The unique ID of the shell call output. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the shell tool call generated by the model." + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputContent" + }, + "description": "An array of shell call output contents" + }, + "max_output_length": { "anyOf": [ { - "type": "string" + "type": "integer" }, { - "type": "string", - "enum": [ - "wandb" - ] + "type": "null" } ] + }, + "created_by": { + "type": "string" } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "wandb": "#/components/schemas/OpenAI.FineTuningIntegrationWandb" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" } - } + ] }, - "OpenAI.FineTuningIntegrationWandb": { + "OpenAI.OutputItemFunctionToolCall": { "type": "object", "required": [ "type", - "wandb" + "call_id", + "name", + "arguments" ], "properties": { + "id": { + "type": "string", + "description": "The unique ID of the function tool call." + }, "type": { "type": "string", "enum": [ - "wandb" + "function_call" ], - "description": "The type of the integration being enabled for the fine-tuning job" + "description": "The type of the function tool call. Always `function_call`.", + "x-stainless-const": true }, - "wandb": { - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the project that the new run will be created under." - }, - "name": { - "type": "string", - "nullable": true, - "description": "A display name to set for the run. If not set, we will use the Job ID as the name." - }, - "entity": { - "type": "string", - "nullable": true, - "description": "The entity to use for the run. This allows you to set the team or username of the WandB user that you would\nlike associated with the run. If not set, the default entity for the registered WandB API key is used." - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tags to be attached to the newly created run. These tags are passed through directly to WandB. Some\ndefault tags are generated by OpenAI: \"openai/finetune\", \"openai/{base-model}\", \"openai/{ftjob-abcdef}\"." - } - }, - "required": [ - "project" + "call_id": { + "type": "string", + "description": "The unique ID of the function tool call generated by the model." + }, + "name": { + "type": "string", + "description": "The name of the function to run." + }, + "arguments": { + "type": "string", + "description": "A JSON string of the arguments to pass to the function." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" ], - "description": "The settings for your integration with Weights and Biases. This payload specifies the project that\nmetrics will be sent to. Optionally, you can set an explicit display name for your run, add tags\nto your run, and set a default entity (team, username, etc) to be associated with your run." + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.FineTuningIntegration" + "$ref": "#/components/schemas/OpenAI.OutputItem" } ] }, - "OpenAI.FineTuningJob": { + "OpenAI.OutputItemImageGenToolCall": { "type": "object", "required": [ + "type", "id", - "created_at", - "error", - "fine_tuned_model", - "finished_at", - "hyperparameters", - "model", - "object", - "organization_id", - "result_files", "status", - "trained_tokens", - "training_file", - "validation_file", - "seed", - "metadata" + "result" ], "properties": { - "user_provided_suffix": { + "type": { "type": "string", - "nullable": true, - "description": "The descriptive suffix applied to the job, as specified in the job creation request." + "enum": [ + "image_generation_call" + ], + "description": "The type of the image generation call. Always `image_generation_call`.", + "x-stainless-const": true }, "id": { "type": "string", - "description": "The object identifier, which can be referenced in the API endpoints." - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the fine-tuning job was created." - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "A machine-readable error code." - }, - "message": { - "type": "string", - "description": "A human-readable error message." - }, - "param": { - "type": "string", - "nullable": true, - "description": "The parameter that was invalid, usually `training_file` or `validation_file`. This field will be null if the failure was not parameter-specific." - } - }, - "required": [ - "code", - "message", - "param" - ], - "nullable": true, - "description": "For fine-tuning jobs that have `failed`, this will contain more information on the cause of the failure." + "description": "The unique ID of the image generation call." }, - "fine_tuned_model": { + "status": { "type": "string", - "nullable": true, - "description": "The name of the fine-tuned model that is being created. The value will be null if the fine-tuning job is still running." - }, - "finished_at": { - "type": "integer", - "format": "unixtime", - "nullable": true, - "description": "The Unix timestamp (in seconds) for when the fine-tuning job was finished. The value will be null if the fine-tuning job is still running." + "enum": [ + "in_progress", + "completed", + "generating", + "failed" + ], + "description": "The status of the image generation call." }, - "hyperparameters": { - "type": "object", - "properties": { - "batch_size": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "nullable": true, - "description": "Number of examples in each batch. A larger batch size means that model parameters\nare updated less frequently, but with lower variance.", - "default": "auto" - }, - "learning_rate_multiplier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "number", - "format": "float" - } - ], - "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid\noverfitting.", - "default": "auto" + "result": { + "anyOf": [ + { + "type": "string" }, - "n_epochs": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "description": "The number of epochs to train the model for. An epoch refers to one full cycle\nthrough the training dataset.", - "default": "auto" + { + "type": "null" } - }, - "description": "The hyperparameters used for the fine-tuning job. This value will only be returned when running `supervised` jobs." - }, - "model": { - "type": "string", - "description": "The base model that is being fine-tuned." - }, - "object": { + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] + }, + "OpenAI.OutputItemLocalShellToolCall": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "action", + "status" + ], + "properties": { + "type": { "type": "string", "enum": [ - "fine_tuning.job" + "local_shell_call" ], - "description": "The object type, which is always \"fine_tuning.job\"." + "description": "The type of the local shell call. Always `local_shell_call`.", + "x-stainless-const": true }, - "organization_id": { + "id": { "type": "string", - "description": "The organization that owns the fine-tuning job." + "description": "The unique ID of the local shell call." }, - "result_files": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The compiled results file ID(s) for the fine-tuning job. You can retrieve the results with the [Files API](/docs/api-reference/files/retrieve-contents)." + "call_id": { + "type": "string", + "description": "The unique ID of the local shell tool call generated by the model." + }, + "action": { + "$ref": "#/components/schemas/OpenAI.LocalShellExecAction" }, "status": { "type": "string", "enum": [ - "validating_files", - "queued", - "running", - "succeeded", - "failed", - "cancelled" + "in_progress", + "completed", + "incomplete" ], - "description": "The current status of the fine-tuning job, which can be either `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`." - }, - "trained_tokens": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "The total number of billable tokens processed by this fine-tuning job. The value will be null if the fine-tuning job is still running." - }, - "training_file": { - "type": "string", - "description": "The file ID used for training. You can retrieve the training data with the [Files API](/docs/api-reference/files/retrieve-contents)." - }, - "validation_file": { - "type": "string", - "nullable": true, - "description": "The file ID used for validation. You can retrieve the validation results with the [Files API](/docs/api-reference/files/retrieve-contents)." - }, - "integrations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.FineTuningIntegration" - }, - "nullable": true, - "description": "A list of integrations to enable for this fine-tuning job." - }, - "seed": { - "type": "integer", - "format": "int32", - "description": "The seed used for the fine-tuning job." - }, - "estimated_finish": { - "type": "integer", - "format": "unixtime", - "nullable": true, - "description": "The Unix timestamp (in seconds) for when the fine-tuning job is estimated to finish. The value will be null if the fine-tuning job is not running." - }, - "method": { - "$ref": "#/components/schemas/OpenAI.FineTuneMethod" - }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "description": "The status of the local shell call." } }, - "description": "The `fine_tuning.job` object represents a fine-tuning job that has been created through the API." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] }, - "OpenAI.FineTuningJobCheckpoint": { + "OpenAI.OutputItemMCPApprovalRequest": { "type": "object", "required": [ + "type", "id", - "created_at", - "fine_tuned_model_checkpoint", - "step_number", - "metrics", - "fine_tuning_job_id", - "object" + "server_label", + "name", + "arguments" ], "properties": { - "id": { + "type": { "type": "string", - "description": "The checkpoint identifier, which can be referenced in the API endpoints." + "enum": [ + "mcp_approval_request" + ], + "description": "The type of the item. Always `mcp_approval_request`.", + "x-stainless-const": true }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the checkpoint was created." + "id": { + "type": "string", + "description": "The unique ID of the approval request." }, - "fine_tuned_model_checkpoint": { + "server_label": { "type": "string", - "description": "The name of the fine-tuned checkpoint model that is created." + "description": "The label of the MCP server making the request." }, - "step_number": { - "type": "integer", - "format": "int32", - "description": "The step number that the checkpoint was created at." + "name": { + "type": "string", + "description": "The name of the tool to run." }, - "metrics": { - "type": "object", - "properties": { - "step": { - "type": "number", - "format": "float" - }, - "train_loss": { - "type": "number", - "format": "float" - }, - "train_mean_token_accuracy": { - "type": "number", - "format": "float" - }, - "valid_loss": { - "type": "number", - "format": "float" - }, - "valid_mean_token_accuracy": { - "type": "number", - "format": "float" - }, - "full_valid_loss": { - "type": "number", - "format": "float" - }, - "full_valid_mean_token_accuracy": { - "type": "number", - "format": "float" - } - }, - "description": "Metrics at the step number during the fine-tuning job." + "arguments": { + "type": "string", + "description": "A JSON string of arguments for the tool." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] + }, + "OpenAI.OutputItemMCPListTools": { + "type": "object", + "required": [ + "type", + "id", + "server_label", + "tools" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_list_tools" + ], + "description": "The type of the item. Always `mcp_list_tools`.", + "x-stainless-const": true }, - "fine_tuning_job_id": { + "id": { "type": "string", - "description": "The name of the fine-tuning job that this checkpoint was created from." + "description": "The unique ID of the list." }, - "object": { + "server_label": { "type": "string", - "enum": [ - "fine_tuning.job.checkpoint" - ], - "description": "The object type, which is always \"fine_tuning.job.checkpoint\"." + "description": "The label of the MCP server." + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.MCPListToolsTool" + }, + "description": "The tools available on the server." + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } }, - "description": "The `fine_tuning.job.checkpoint` object represents a model checkpoint for a fine-tuning job that is ready to use." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] }, - "OpenAI.FineTuningJobEvent": { + "OpenAI.OutputItemMCPToolCall": { "type": "object", "required": [ - "object", + "type", "id", - "created_at", - "level", - "message" + "server_label", + "name", + "arguments" ], "properties": { - "object": { + "type": { "type": "string", "enum": [ - "fine_tuning.job.event" + "mcp_call" ], - "description": "The object type, which is always \"fine_tuning.job.event\"." + "description": "The type of the item. Always `mcp_call`.", + "x-stainless-const": true }, "id": { "type": "string", - "description": "The object identifier." - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the fine-tuning job was created." + "description": "The unique ID of the tool call." }, - "level": { + "server_label": { "type": "string", - "enum": [ - "info", - "warn", - "error" - ], - "description": "The log level of the event." + "description": "The label of the MCP server running the tool." }, - "message": { + "name": { "type": "string", - "description": "The message of the event." + "description": "The name of the tool that was run." }, - "type": { + "arguments": { "type": "string", - "enum": [ - "message", - "metrics" + "description": "A JSON string of the arguments passed to the tool." + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPToolCallStatus" + } ], - "description": "The type of event." + "description": "The status of the tool call. One of `in_progress`, `completed`, `incomplete`, `calling`, or `failed`." }, - "data": { - "description": "The data associated with the event." + "approval_request_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } }, - "description": "Fine-tuning job event object" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] }, - "OpenAI.FunctionObject": { + "OpenAI.OutputItemOutputMessage": { "type": "object", "required": [ - "name" + "id", + "type", + "role", + "content", + "status" ], "properties": { - "description": { + "id": { "type": "string", - "description": "A description of what the function does, used by the model to choose when and how to call the function." + "description": "The unique ID of the output message.", + "x-stainless-go-json": "omitzero" }, - "name": { + "type": { "type": "string", - "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + "enum": [ + "output_message" + ], + "description": "The type of the output message. Always `message`.", + "x-stainless-const": true }, - "parameters": { - "description": "The parameters the functions accepts, described as a JSON Schema object. See the [guide](/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list." + "role": { + "type": "string", + "enum": [ + "assistant" + ], + "description": "The role of the output message. Always `assistant`.", + "x-stainless-const": true }, - "strict": { - "type": "boolean", - "nullable": true, - "description": "Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](docs/guides/function-calling).", - "default": false + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.OutputMessageContent" + }, + "description": "The content of the output message." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the message input. One of `in_progress`, `completed`, or\n `incomplete`. Populated when input items are returned via API." } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] }, - "OpenAI.FunctionTool": { + "OpenAI.OutputItemReasoningItem": { "type": "object", "required": [ "type", - "name", - "parameters", - "strict" + "id", + "summary" ], "properties": { "type": { "type": "string", "enum": [ - "function" + "reasoning" ], - "description": "The type of the function tool. Always `function`." + "description": "The type of the object. Always `reasoning`.", + "x-stainless-const": true }, - "name": { + "id": { "type": "string", - "description": "The name of the function to call." + "description": "The unique identifier of the reasoning content." }, - "description": { - "type": "string", - "nullable": true, - "description": "A description of the function. Used by the model to determine whether or not to call the function." + "encrypted_content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "parameters": { - "nullable": true, - "description": "A JSON schema object describing the parameters of the function." + "summary": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.Summary" + }, + "description": "Reasoning summary content." }, - "strict": { - "type": "boolean", - "nullable": true, - "description": "Whether to enforce strict parameter validation. Default `true`." + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ReasoningTextContent" + }, + "description": "Reasoning text content." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/OpenAI.OutputItem" } - ], - "description": "Defines a function in your own code the model can choose to call. Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling)." + ] + }, + "OpenAI.OutputItemType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "output_message", + "file_search_call", + "function_call", + "web_search_call", + "computer_call", + "reasoning", + "compaction", + "image_generation_call", + "code_interpreter_call", + "local_shell_call", + "shell_call", + "shell_call_output", + "apply_patch_call", + "apply_patch_call_output", + "mcp_call", + "mcp_list_tools", + "mcp_approval_request", + "custom_tool_call" + ] + } + ] }, - "OpenAI.FunctionToolCallItemParam": { + "OpenAI.OutputItemWebSearchToolCall": { "type": "object", "required": [ + "id", "type", - "call_id", - "name", - "arguments" + "status", + "action" ], "properties": { - "type": { + "id": { "type": "string", - "enum": [ - "function_call" - ] + "description": "The unique ID of the web search tool call." }, - "call_id": { + "type": { "type": "string", - "description": "The unique ID of the function tool call generated by the model." + "enum": [ + "web_search_call" + ], + "description": "The type of the web search tool call. Always `web_search_call`.", + "x-stainless-const": true }, - "name": { + "status": { "type": "string", - "description": "The name of the function to run." + "enum": [ + "in_progress", + "searching", + "completed", + "failed" + ], + "description": "The status of the web search tool call." }, - "arguments": { - "type": "string", - "description": "A JSON string of the arguments to pass to the function." + "action": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionSearch" + }, + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionOpenPage" + }, + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionFind" + } + ], + "description": "An object describing the specific action taken in this web search call.\n Includes details on how the model used the web (search, open_page, find)." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] + }, + "OpenAI.OutputMessageContent": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.OutputMessageContentType" } }, - "allOf": [ + "discriminator": { + "propertyName": "type" + } + }, + "OpenAI.OutputMessageContentType": { + "anyOf": [ + { + "type": "string" + }, { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "type": "string", + "enum": [ + "output_text", + "refusal" + ] } - ], - "description": "A tool call to run a function. See the\n[function calling guide](/docs/guides/function-calling) for more information.\n" + ] }, - "OpenAI.FunctionToolCallItemResource": { + "OpenAI.OutputTextContent": { "type": "object", "required": [ "type", - "status", - "call_id", - "name", - "arguments" + "text", + "annotations" ], "properties": { "type": { "type": "string", "enum": [ - "function_call" - ] - }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete" + "output_text" ], - "description": "The status of the item. One of `in_progress`, `completed`, or\n`incomplete`. Populated when items are returned via API." + "description": "The type of the output text. Always `output_text`.", + "x-stainless-const": true, + "default": "output_text" }, - "call_id": { + "text": { "type": "string", - "description": "The unique ID of the function tool call generated by the model." + "description": "The text output from the model." }, - "name": { - "type": "string", - "description": "The name of the function to run." + "annotations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.Annotation" + }, + "description": "The annotations of the text output." }, - "arguments": { - "type": "string", - "description": "A JSON string of the arguments to pass to the function." + "logprobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.LogProb" + } } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.OutputContent" + } + ], + "description": "A text output from the model.", + "title": "Output text" + }, + "OpenAI.ParallelToolCalls": { + "type": "boolean", + "description": "Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use." + }, + "OpenAI.PartialImages": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" } ], - "description": "A tool call to run a function. See the\n[function calling guide](/docs/guides/function-calling) for more information.\n" + "minimum": 0, + "maximum": 3, + "description": "The number of partial images to generate. This parameter is used for\nstreaming responses that return partial images. Value must be between 0 and 3.\nWhen set to 0, the response will be a single image sent in one streaming event.\n\nNote that the final image may be sent before the full number of partial images\nare generated if the full image is generated more quickly." }, - "OpenAI.FunctionToolCallOutputItemParam": { + "OpenAI.PredictionContent": { "type": "object", "required": [ "type", - "call_id", - "output" + "content" ], "properties": { "type": { "type": "string", "enum": [ - "function_call_output" - ] - }, - "call_id": { - "type": "string", - "description": "The unique ID of the function tool call generated by the model." + "content" + ], + "description": "The type of the predicted content you want to provide. This type is\n currently always `content`.", + "x-stainless-const": true }, - "output": { - "type": "string", - "description": "A JSON string of the output of the function tool call." + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + } + } + ], + "description": "The content that should be matched when generating a model response.\n If generated tokens would match this content, the entire model response\n can be returned much more quickly." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } - ], - "description": "The output of a function tool call.\n" + "description": "Static predicted output content, such as the content of a text file that is\nbeing regenerated.", + "title": "Static Content" }, - "OpenAI.FunctionToolCallOutputItemResource": { + "OpenAI.Prompt": { "type": "object", "required": [ - "type", - "status", - "call_id", - "output" + "id" ], "properties": { - "type": { + "id": { "type": "string", - "enum": [ - "function_call_output" + "description": "The unique identifier of the prompt template to use." + }, + "version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } ] }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete" + "variables": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponsePromptVariables" + }, + { + "type": "null" + } + ] + } + }, + "description": "Reference to a prompt template and its variables.\n[Learn more](https://platform.openai.com/docs/guides/text?api-mode=responses#reusable-prompts)." + }, + "OpenAI.RankerVersionType": { + "type": "string", + "enum": [ + "auto", + "default-2024-11-15" + ] + }, + "OpenAI.RankingOptions": { + "type": "object", + "properties": { + "ranker": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RankerVersionType" + } ], - "description": "The status of the item. One of `in_progress`, `completed`, or\n`incomplete`. Populated when items are returned via API." + "description": "The ranker to use for the file search." }, - "call_id": { - "type": "string", - "description": "The unique ID of the function tool call generated by the model." + "score_threshold": { + "type": "number", + "description": "The score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will attempt to return only the most relevant results, but may return fewer results." }, - "output": { - "type": "string", - "description": "A JSON string of the output of the function tool call." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "hybrid_search": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.HybridSearchOptions" + } + ], + "description": "Weights that control how reciprocal rank fusion balances semantic embedding matches versus sparse keyword matches when hybrid search is enabled." } - ], - "description": "The output of a function tool call.\n" + } }, - "OpenAI.Grader": { + "OpenAI.RealtimeAudioFormats": { "type": "object", "required": [ "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.GraderType" + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormatsType" } }, "discriminator": { "propertyName": "type", "mapping": { - "label_model": "#/components/schemas/OpenAI.GraderLabelModel", - "text_similarity": "#/components/schemas/OpenAI.GraderTextSimilarity", - "python": "#/components/schemas/OpenAI.GraderPython", - "score_model": "#/components/schemas/OpenAI.GraderScoreModel", - "multi": "#/components/schemas/OpenAI.GraderMulti" + "audio/pcm": "#/components/schemas/OpenAI.RealtimeAudioFormatsAudioPcm", + "audio/pcmu": "#/components/schemas/OpenAI.RealtimeAudioFormatsAudioPcmu", + "audio/pcma": "#/components/schemas/OpenAI.RealtimeAudioFormatsAudioPcma" } } }, - "OpenAI.GraderLabelModel": { + "OpenAI.RealtimeAudioFormatsAudioPcm": { "type": "object", "required": [ - "type", - "name", - "model", - "input", - "labels", - "passing_labels" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "label_model" - ], - "description": "The object type, which is always `label_model`." - }, - "name": { - "type": "string", - "description": "The name of the grader." - }, - "model": { - "type": "string", - "description": "The model to use for the evaluation. Must support structured outputs." - }, - "input": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.EvalItem" - } - }, - "labels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The labels to assign to each item in the evaluation." + "audio/pcm" + ] }, - "passing_labels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The labels that indicate a passing result. Must be a subset of labels." + "rate": { + "type": "number", + "enum": [ + 24000 + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Grader" + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" } - ], - "description": "A LabelModelGrader object which uses a model to assign labels to each item\nin the evaluation." + ] }, - "OpenAI.GraderMulti": { + "OpenAI.RealtimeAudioFormatsAudioPcma": { "type": "object", "required": [ - "type", - "name", - "graders", - "calculate_output" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "multi" - ], - "description": "The object type, which is always `multi`." - }, - "name": { + "audio/pcma" + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" + } + ] + }, + "OpenAI.RealtimeAudioFormatsAudioPcmu": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { "type": "string", - "description": "The name of the grader." - }, - "graders": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.GraderStringCheck" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderScoreModel" - } - ] - } + "enum": [ + "audio/pcmu" + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" + } + ] + }, + "OpenAI.RealtimeAudioFormatsType": { + "anyOf": [ + { + "type": "string" }, - "calculate_output": { + { "type": "string", - "description": "A formula to calculate the output based on grader results." + "enum": [ + "audio/pcm", + "audio/pcmu", + "audio/pcma" + ] } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Grader" + ] + }, + "OpenAI.RealtimeCallCreateRequest": { + "type": "object", + "properties": { + "sdp": { + "type": "string", + "description": "WebRTC Session Description Protocol (SDP) offer generated by the caller." + }, + "session": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGA" + } + ], + "description": "Optional session configuration to apply before the realtime session is\n created. Use the same parameters you would send in a [`create client secret`](https://platform.openai.com/docs/api-reference/realtime-sessions/create-realtime-client-secret)\n request." } - ], - "description": "A MultiGrader object combines the output of multiple graders to produce a single score." + }, + "required": [ + "sdp" + ] }, - "OpenAI.GraderPython": { + "OpenAI.RealtimeCallReferRequest": { "type": "object", "required": [ - "type", - "name", - "source" + "target_uri" ], "properties": { - "type": { + "target_uri": { "type": "string", - "enum": [ - "python" + "description": "URI that should appear in the SIP Refer-To header. Supports values like\n `tel:+14155550123` or `sip:agent\\@example.com`." + } + }, + "description": "Parameters required to transfer a SIP call to a new destination using the\nRealtime API.", + "title": "Realtime call refer request" + }, + "OpenAI.RealtimeCallRejectRequest": { + "type": "object", + "properties": { + "status_code": { + "type": "integer", + "description": "SIP response code to send back to the caller. Defaults to `603` (Decline)\n when omitted." + } + }, + "description": "Parameters used to decline an incoming SIP call handled by the Realtime API.", + "title": "Realtime call reject request" + }, + "OpenAI.RealtimeCreateClientSecretRequest": { + "type": "object", + "properties": { + "expires_after": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeCreateClientSecretRequestExpiresAfter" + } ], - "description": "The object type, which is always `python`." - }, - "name": { - "type": "string", - "description": "The name of the grader." - }, - "source": { - "type": "string", - "description": "The source code of the python script." + "description": "Configuration for the client secret expiration. Expiration refers to the time after which\n a client secret will no longer be valid for creating sessions. The session itself may\n continue after that time once started. A secret can be used to create multiple sessions\n until it expires.", + "title": "Client secret expiration" }, - "image_tag": { - "type": "string", - "description": "The image tag to use for the python script." + "session": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnion" + } + ], + "description": "Session configuration to use for the client secret. Choose either a realtime\n session or a transcription session." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Grader" - } - ], - "description": "A PythonGrader object that runs a python script on the input." + "description": "Create a session and client secret for the Realtime API. The request can specify\neither a realtime or a transcription session configuration.\n[Learn more about the Realtime API](https://platform.openai.com/docs/guides/realtime).", + "title": "Realtime client secret creation request" }, - "OpenAI.GraderScoreModel": { + "OpenAI.RealtimeCreateClientSecretRequestExpiresAfter": { "type": "object", - "required": [ - "type", - "name", - "model", - "input" - ], "properties": { - "type": { + "anchor": { "type": "string", "enum": [ - "score_model" + "created_at" ], - "description": "The object type, which is always `score_model`." - }, - "name": { - "type": "string", - "description": "The name of the grader." + "x-stainless-const": true, + "default": "created_at" }, - "model": { + "seconds": { + "type": "integer", + "minimum": 10, + "maximum": 7200, + "default": 600 + } + } + }, + "OpenAI.RealtimeCreateClientSecretResponse": { + "type": "object", + "required": [ + "value", + "expires_at", + "session" + ], + "properties": { + "value": { "type": "string", - "description": "The model to use for the evaluation." - }, - "sampling_params": { - "description": "The sampling parameters for the model." + "description": "The generated client secret value." }, - "input": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.EvalItem" - }, - "description": "The input text. This may include template strings." + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "Expiration timestamp for the client secret, in seconds since epoch." }, - "range": { - "type": "array", - "items": { - "type": "number", - "format": "float" - }, - "description": "The range of the score. Defaults to `[0, 1]`." + "session": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnion" + } + ], + "description": "The session configuration for either a realtime or transcription session." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Grader" - } - ], - "description": "A ScoreModelGrader object that uses a model to assign a score to the input." + "description": "Response from creating a session and client secret for the Realtime API.", + "title": "Realtime session and client secret", + "x-oaiMeta": { + "name": "Session response object", + "group": "realtime", + "example": "{\n \"value\": \"ek_68af296e8e408191a1120ab6383263c2\",\n \"expires_at\": 1756310470,\n \"session\": {\n \"type\": \"realtime\",\n \"object\": \"realtime.session\",\n \"id\": \"sess_C9CiUVUzUzYIssh3ELY1d\",\n \"model\": \"gpt-realtime-2025-08-25\",\n \"output_modalities\": [\n \"audio\"\n ],\n \"instructions\": \"You are a friendly assistant.\",\n \"tools\": [],\n \"tool_choice\": \"auto\",\n \"max_output_tokens\": \"inf\",\n \"tracing\": null,\n \"truncation\": \"auto\",\n \"prompt\": null,\n \"expires_at\": 0,\n \"audio\": {\n \"input\": {\n \"format\": {\n \"type\": \"audio/pcm\",\n \"rate\": 24000\n },\n \"transcription\": null,\n \"noise_reduction\": null,\n \"turn_detection\": {\n \"type\": \"server_vad\",\n \"threshold\": 0.5,\n \"prefix_padding_ms\": 300,\n \"silence_duration_ms\": 200,\n \"idle_timeout_ms\": null,\n \"create_response\": true,\n \"interrupt_response\": true\n }\n },\n \"output\": {\n \"format\": {\n \"type\": \"audio/pcm\",\n \"rate\": 24000\n },\n \"voice\": \"alloy\",\n \"speed\": 1.0\n }\n },\n \"include\": null\n }\n}\n" + } }, - "OpenAI.GraderStringCheck": { + "OpenAI.RealtimeFunctionTool": { "type": "object", - "required": [ - "type", - "name", - "input", - "reference", - "operation" - ], "properties": { "type": { "type": "string", "enum": [ - "string_check" + "function" ], - "description": "The object type, which is always `string_check`." + "description": "The type of the tool, i.e. `function`.", + "x-stainless-const": true }, "name": { "type": "string", - "description": "The name of the grader." - }, - "input": { - "type": "string", - "description": "The input text. This may include template strings." + "description": "The name of the function." }, - "reference": { + "description": { "type": "string", - "description": "The reference text. This may include template strings." + "description": "The description of the function, including guidance on when and how\n to call it, and guidance about what to tell the user when calling\n (if anything)." }, - "operation": { - "type": "string", - "enum": [ - "eq", - "ne", - "like", - "ilike" + "parameters": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeFunctionToolParameters" + } ], - "description": "The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`." + "description": "Parameters of the function in JSON Schema." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Grader" - } - ], - "description": "A StringCheckGrader object that performs a string comparison between input and reference using a specified operation." + "title": "Function tool" }, - "OpenAI.GraderTextSimilarity": { + "OpenAI.RealtimeFunctionToolParameters": { + "type": "object" + }, + "OpenAI.RealtimeSessionCreateRequest": { "type": "object", "required": [ - "type", - "name", - "input", - "reference", - "evaluation_metric" + "client_secret", + "type" ], "properties": { - "type": { + "client_secret": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestClientSecret" + } + ], + "description": "Ephemeral key returned by the API." + }, + "modalities": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "text", + "audio" + ] + }, + "description": "The set of modalities the model can respond with. To disable audio,\n set this to [\"text\"].", + "default": [ + "text", + "audio" + ] + }, + "instructions": { "type": "string", - "enum": [ - "text_similarity" + "description": "The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. \"be extremely succinct\", \"act friendly\", \"here are examples of good responses\") and on audio behavior (e.g. \"talk quickly\", \"inject emotion into your voice\", \"laugh frequently\"). The instructions are not guaranteed to be followed by the model, but they provide guidance to the model on the desired behavior.\n Note that the server sets default instructions which will be used if this field is not set and are visible in the `session.created` event at the start of the session." + }, + "voice": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.VoiceIdsShared" + } ], - "description": "The type of grader." + "description": "The voice the model uses to respond. Voice cannot be changed during the\n session once the model has responded with audio at least once. Current\n voice options are `alloy`, `ash`, `ballad`, `coral`, `echo`, `sage`,\n `shimmer`, and `verse`." }, - "name": { + "input_audio_format": { "type": "string", - "description": "The name of the grader." + "description": "The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`." }, - "input": { + "output_audio_format": { "type": "string", - "description": "The text being graded." + "description": "The format of output audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`." }, - "reference": { + "input_audio_transcription": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestInputAudioTranscription" + } + ], + "description": "Configuration for input audio transcription, defaults to off and can be\n set to `null` to turn off once on. Input audio transcription is not native\n to the model, since the model consumes audio directly. Transcription runs\n asynchronously and should be treated as rough guidance\n rather than the representation understood by the model." + }, + "speed": { + "type": "number", + "minimum": 0.25, + "maximum": 1.5, + "description": "The speed of the model's spoken response. 1.0 is the default speed. 0.25 is\n the minimum speed. 1.5 is the maximum speed. This value can only be changed\n in between model turns, not while a response is in progress.", + "default": 1 + }, + "tracing": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "object", + "properties": { + "workflow_name": { + "type": "string" + }, + "group_id": { + "type": "string" + }, + "metadata": { + "type": "object", + "unevaluatedProperties": {} + } + } + } + ], + "description": "Configuration options for tracing. Set to null to disable tracing. Once\n tracing is enabled for a session, the configuration cannot be modified.\n\n `auto` will create a trace for the session with default values for the\n workflow name, group id, and metadata.", + "title": "Tracing Configuration", + "default": "auto" + }, + "turn_detection": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestTurnDetection" + } + ], + "description": "Configuration for turn detection. Can be set to `null` to turn off. Server\n VAD means that the model will detect the start and end of speech based on\n audio volume and respond at the end of user speech." + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestTools" + }, + "description": "Tools (functions) available to the model." + }, + "tool_choice": { "type": "string", - "description": "The text being graded against." + "description": "How the model chooses tools. Options are `auto`, `none`, `required`, or\n specify a function." }, - "evaluation_metric": { + "temperature": { + "type": "number", + "description": "Sampling temperature for the model, limited to [0.6, 1.2]. Defaults to 0.8." + }, + "max_response_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string", + "enum": [ + "inf" + ] + } + ], + "description": "Maximum number of output tokens for a single assistant response,\n inclusive of tool calls. Provide an integer between 1 and 4096 to\n limit output tokens, or `inf` for the maximum available tokens for a\n given model. Defaults to `inf`." + }, + "truncation": { + "$ref": "#/components/schemas/OpenAI.RealtimeTruncation" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" + }, + "type": { "type": "string", "enum": [ - "fuzzy_match", - "bleu", - "gleu", - "meteor", - "rouge_1", - "rouge_2", - "rouge_3", - "rouge_4", - "rouge_5", - "rouge_l" + "realtime" ], - "description": "The evaluation metric to use. One of `fuzzy_match`, `bleu`, `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`." + "default": "realtime" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Grader" + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnion" } ], - "description": "A TextSimilarityGrader object which grades text based on similarity metrics." + "description": "A new Realtime session configuration, with an ephemeral key. Default TTL\nfor keys is one minute.", + "x-oaiMeta": { + "name": "The session object", + "group": "realtime", + "example": "{\n \"id\": \"sess_001\",\n \"object\": \"realtime.session\",\n \"model\": \"gpt-realtime-2025-08-25\",\n \"modalities\": [\"audio\", \"text\"],\n \"instructions\": \"You are a friendly assistant.\",\n \"voice\": \"alloy\",\n \"input_audio_format\": \"pcm16\",\n \"output_audio_format\": \"pcm16\",\n \"input_audio_transcription\": {\n \"model\": \"whisper-1\"\n },\n \"turn_detection\": null,\n \"tools\": [],\n \"tool_choice\": \"none\",\n \"temperature\": 0.7,\n \"speed\": 1.1,\n \"tracing\": \"auto\",\n \"max_response_output_tokens\": 200,\n \"truncation\": \"auto\",\n \"prompt\": null,\n \"client_secret\": {\n \"value\": \"ek_abc123\",\n \"expires_at\": 1234567890\n }\n}\n" + } }, - "OpenAI.GraderType": { - "type": "string", - "enum": [ - "string_check", - "text_similarity", - "score_model", - "label_model", - "python", - "multi" - ] + "OpenAI.RealtimeSessionCreateRequestClientSecret": { + "type": "object", + "required": [ + "value", + "expires_at" + ], + "properties": { + "value": { + "type": "string" + }, + "expires_at": { + "type": "integer", + "format": "unixtime" + } + } }, - "OpenAI.ImageGenTool": { + "OpenAI.RealtimeSessionCreateRequestGA": { "type": "object", "required": [ "type" @@ -15955,2006 +29006,2269 @@ "type": { "type": "string", "enum": [ - "image_generation" + "realtime" ], - "description": "The type of the image generation tool. Always `image_generation`." + "description": "The type of session to create. Always `realtime` for the Realtime API.", + "x-stainless-const": true }, - "model": { - "type": "string", - "enum": [ - "gpt-image-1" - ], - "description": "The image generation model to use. Default: `gpt-image-1`.", - "default": "gpt-image-1" + "output_modalities": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "text", + "audio" + ] + }, + "description": "The set of modalities the model can respond with. It defaults to `[\"audio\"]`, indicating\n that the model will respond with audio plus a transcript. `[\"text\"]` can be used to make\n the model respond with text only. It is not possible to request both `text` and `audio` at the same time.", + "default": [ + "audio" + ] }, - "quality": { + "model": { "type": "string", - "enum": [ - "low", - "medium", - "high", - "auto" - ], - "description": "The quality of the generated image. One of `low`, `medium`, `high`,\nor `auto`. Default: `auto`.", - "default": "auto" + "description": "The Realtime model used for this session." }, - "size": { + "instructions": { "type": "string", - "enum": [ - "1024x1024", - "1024x1536", - "1536x1024", - "auto" - ], - "description": "The size of the generated image. One of `1024x1024`, `1024x1536`,\n`1536x1024`, or `auto`. Default: `auto`.", - "default": "auto" + "description": "The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. \"be extremely succinct\", \"act friendly\", \"here are examples of good responses\") and on audio behavior (e.g. \"talk quickly\", \"inject emotion into your voice\", \"laugh frequently\"). The instructions are not guaranteed to be followed by the model, but they provide guidance to the model on the desired behavior.\n\n Note that the server sets default instructions which will be used if this field is not set and are visible in the `session.created` event at the start of the session." }, - "output_format": { - "type": "string", - "enum": [ - "png", - "webp", - "jpeg" + "audio": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudio" + } ], - "description": "The output format of the generated image. One of `png`, `webp`, or\n`jpeg`. Default: `png`.", - "default": "png" + "description": "Configuration for input and output audio." }, - "output_compression": { - "type": "integer", - "format": "int32", - "minimum": 0, - "maximum": 100, - "description": "Compression level for the output image. Default: 100.", - "default": 100 + "include": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "item.input_audio_transcription.logprobs" + ] + }, + "description": "Additional fields to include in server outputs.\n\n `item.input_audio_transcription.logprobs`: Include logprobs for input audio transcription." }, - "moderation": { - "type": "string", - "enum": [ - "auto", - "low" + "tracing": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGATracing" + }, + { + "type": "null" + } ], - "description": "Moderation level for the generated image. Default: `auto`.", + "description": "Realtime API can write session traces to the [Traces Dashboard](/logs?api=traces). Set to null to disable tracing. Once\n tracing is enabled for a session, the configuration cannot be modified.\n\n `auto` will create a trace for the session with default values for the\n workflow name, group id, and metadata.", + "title": "Tracing Configuration", "default": "auto" }, - "background": { - "type": "string", - "enum": [ - "transparent", - "opaque", - "auto" + "tools": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeFunctionTool" + }, + { + "$ref": "#/components/schemas/OpenAI.MCPTool" + } + ] + }, + "description": "Tools available to the model." + }, + "tool_choice": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ToolChoiceOptions" + }, + { + "$ref": "#/components/schemas/OpenAI.ToolChoiceFunction" + }, + { + "$ref": "#/components/schemas/OpenAI.ToolChoiceMCP" + } ], - "description": "Background type for the generated image. One of `transparent`,\n`opaque`, or `auto`. Default: `auto`.", + "description": "How the model chooses tools. Provide one of the string modes or force a specific\n function/MCP tool.", "default": "auto" }, - "input_image_mask": { - "type": "object", - "properties": { - "image_url": { - "type": "string", - "description": "Base64-encoded mask image." + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" }, - "file_id": { + { "type": "string", - "description": "File ID for the mask image." + "enum": [ + "inf" + ] } - }, - "description": "Optional mask for inpainting. Contains `image_url`\n(string, optional) and `file_id` (string, optional)." + ], + "description": "Maximum number of output tokens for a single assistant response,\n inclusive of tool calls. Provide an integer between 1 and 4096 to\n limit output tokens, or `inf` for the maximum available tokens for a\n given model. Defaults to `inf`." }, - "partial_images": { - "type": "integer", - "format": "int32", - "minimum": 0, - "maximum": 3, - "description": "Number of partial images to generate in streaming mode, from 0 (default value) to 3.", - "default": 0 + "truncation": { + "$ref": "#/components/schemas/OpenAI.RealtimeTruncation" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Tool" - } - ], - "description": "A tool that generates images using a model like `gpt-image-1`." + "description": "Realtime session object configuration.", + "title": "Realtime session configuration" }, - "OpenAI.ImageGenToolCallItemParam": { + "OpenAI.RealtimeSessionCreateRequestGAAudio": { "type": "object", - "required": [ - "type", - "result" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "image_generation_call" - ] + "input": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudioInput" }, - "result": { - "type": "string", - "nullable": true, - "description": "The generated image encoded in base64." + "output": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudioOutput" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemParam" + } + }, + "OpenAI.RealtimeSessionCreateRequestGAAudioInput": { + "type": "object", + "properties": { + "format": { + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" + }, + "transcription": { + "$ref": "#/components/schemas/OpenAI.AudioTranscription" + }, + "noise_reduction": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudioInputNoiseReduction" + }, + "turn_detection": { + "$ref": "#/components/schemas/OpenAI.RealtimeTurnDetection" } - ], - "description": "An image generation request made by the model.\n" + } }, - "OpenAI.ImageGenToolCallItemResource": { + "OpenAI.RealtimeSessionCreateRequestGAAudioInputNoiseReduction": { "type": "object", - "required": [ - "type", - "status", - "result" - ], "properties": { "type": { - "type": "string", - "enum": [ - "image_generation_call" - ] + "$ref": "#/components/schemas/OpenAI.NoiseReductionType" + } + } + }, + "OpenAI.RealtimeSessionCreateRequestGAAudioOutput": { + "type": "object", + "properties": { + "format": { + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "completed", - "generating", - "failed" - ] + "voice": { + "$ref": "#/components/schemas/OpenAI.VoiceIdsShared" }, - "result": { - "type": "string", - "nullable": true, - "description": "The generated image encoded in base64." + "speed": { + "type": "number", + "minimum": 0.25, + "maximum": 1.5, + "default": 1 } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemResource" + } + }, + "OpenAI.RealtimeSessionCreateRequestGATracing": { + "type": "object", + "properties": { + "workflow_name": { + "type": "string" + }, + "group_id": { + "type": "string" + }, + "metadata": { + "type": "object", + "unevaluatedProperties": {} } - ], - "description": "An image generation request made by the model.\n" + } }, - "OpenAI.ImplicitUserMessage": { + "OpenAI.RealtimeSessionCreateRequestInputAudioTranscription": { "type": "object", - "required": [ - "content" - ], "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - } - } - ] + "model": { + "type": "string" } } }, - "OpenAI.Includable": { - "type": "string", - "enum": [ - "code_interpreter_call.outputs", - "computer_call_output.output.image_url", - "file_search_call.results", - "message.input_image.image_url", - "message.output_text.logprobs", - "reasoning.encrypted_content" - ], - "description": "Specify additional output data to include in the model response. Currently\nsupported values are:\n- `code_interpreter_call.outputs`: Includes the outputs of python code execution\n in code interpreter tool call items.\n- `computer_call_output.output.image_url`: Include image urls from the computer call output.\n- `file_search_call.results`: Include the search results of\n the file search tool call.\n- `message.input_image.image_url`: Include image urls from the input message.\n- `message.output_text.logprobs`: Include logprobs with assistant messages.\n- `reasoning.encrypted_content`: Includes an encrypted version of reasoning\n tokens in reasoning item outputs. This enables reasoning items to be used in\n multi-turn conversations when using the Responses API statelessly (like\n when the `store` parameter is set to `false`, or when an organization is\n enrolled in the zero data retention program)." + "OpenAI.RealtimeSessionCreateRequestTools": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "function" + ], + "x-stainless-const": true + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "parameters": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestToolsParameters" + } + } + }, + "OpenAI.RealtimeSessionCreateRequestToolsParameters": { + "type": "object" + }, + "OpenAI.RealtimeSessionCreateRequestTurnDetection": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "threshold": { + "type": "number" + }, + "prefix_padding_ms": { + "type": "integer" + }, + "silence_duration_ms": { + "type": "integer" + } + } }, - "OpenAI.ItemContent": { + "OpenAI.RealtimeSessionCreateRequestUnion": { "type": "object", "required": [ "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.ItemContentType" + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnionType" } }, "discriminator": { "propertyName": "type", "mapping": { - "input_audio": "#/components/schemas/OpenAI.ItemContentInputAudio", - "output_audio": "#/components/schemas/OpenAI.ItemContentOutputAudio", - "refusal": "#/components/schemas/OpenAI.ItemContentRefusal", - "input_text": "#/components/schemas/OpenAI.ItemContentInputText", - "input_image": "#/components/schemas/OpenAI.ItemContentInputImage", - "input_file": "#/components/schemas/OpenAI.ItemContentInputFile", - "output_text": "#/components/schemas/OpenAI.ItemContentOutputText" + "realtime": "#/components/schemas/OpenAI.RealtimeSessionCreateRequest", + "transcription": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequest" } } }, - "OpenAI.ItemContentInputAudio": { - "type": "object", - "required": [ - "type", - "data", - "format" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "input_audio" - ], - "description": "The type of the input item. Always `input_audio`." - }, - "data": { - "type": "string", - "description": "Base64-encoded audio data." + "OpenAI.RealtimeSessionCreateRequestUnionType": { + "anyOf": [ + { + "type": "string" }, - "format": { + { "type": "string", "enum": [ - "mp3", - "wav" - ], - "description": "The format of the audio data. Currently supported formats are `mp3` and\n`wav`." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" + "realtime", + "transcription" + ] } - ], - "description": "An audio input to the model." + ] }, - "OpenAI.ItemContentInputFile": { + "OpenAI.RealtimeSessionCreateResponse": { "type": "object", "required": [ "type" ], "properties": { - "type": { + "id": { "type": "string", - "enum": [ - "input_file" - ], - "description": "The type of the input item. Always `input_file`." + "description": "Unique identifier for the session that looks like `sess_1234567890abcdef`." }, - "file_id": { + "object": { "type": "string", - "nullable": true, - "description": "The ID of the file to be sent to the model." + "description": "The object type. Always `realtime.session`." }, - "filename": { - "type": "string", - "description": "The name of the file to be sent to the model." + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "Expiration timestamp for the session, in seconds since epoch." }, - "file_data": { + "include": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "item.input_audio_transcription.logprobs" + ] + }, + "description": "Additional fields to include in server outputs.\n - `item.input_audio_transcription.logprobs`: Include logprobs for input audio transcription." + }, + "model": { "type": "string", - "description": "The content of the file to be sent to the model." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" - } - ], - "description": "A file input to the model." - }, - "OpenAI.ItemContentInputImage": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { + "description": "The Realtime model used for this session." + }, + "output_modalities": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "text", + "audio" + ] + }, + "description": "The set of modalities the model can respond with. To disable audio,\n set this to [\"text\"]." + }, + "instructions": { "type": "string", - "enum": [ - "input_image" + "description": "The default system instructions (i.e. system message) prepended to model\n calls. This field allows the client to guide the model on desired\n responses. The model can be instructed on response content and format,\n (e.g. \"be extremely succinct\", \"act friendly\", \"here are examples of good\n responses\") and on audio behavior (e.g. \"talk quickly\", \"inject emotion\n into your voice\", \"laugh frequently\"). The instructions are not guaranteed\n to be followed by the model, but they provide guidance to the model on the\n desired behavior.\n\n Note that the server sets default instructions which will be used if this\n field is not set and are visible in the `session.created` event at the\n start of the session." + }, + "audio": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudio" + } ], - "description": "The type of the input item. Always `input_image`." + "description": "Configuration for input and output audio for the session." }, - "image_url": { - "type": "string", - "nullable": true, - "description": "The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL." + "tracing": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "object", + "properties": { + "workflow_name": { + "type": "string" + }, + "group_id": { + "type": "string" + }, + "metadata": { + "type": "object", + "unevaluatedProperties": {} + } + } + } + ], + "description": "Configuration options for tracing. Set to null to disable tracing. Once\n tracing is enabled for a session, the configuration cannot be modified.\n\n `auto` will create a trace for the session with default values for the\n workflow name, group id, and metadata.", + "title": "Tracing Configuration", + "default": "auto" }, - "file_id": { + "turn_detection": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseTurnDetection" + } + ], + "description": "Configuration for turn detection. Can be set to `null` to turn off. Server\n VAD means that the model will detect the start and end of speech based on\n audio volume and respond at the end of user speech." + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RealtimeFunctionTool" + }, + "description": "Tools (functions) available to the model." + }, + "tool_choice": { "type": "string", - "nullable": true, - "description": "The ID of the file to be sent to the model." + "description": "How the model chooses tools. Options are `auto`, `none`, `required`, or\n specify a function." }, - "detail": { + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string", + "enum": [ + "inf" + ] + } + ], + "description": "Maximum number of output tokens for a single assistant response,\n inclusive of tool calls. Provide an integer between 1 and 4096 to\n limit output tokens, or `inf` for the maximum available tokens for a\n given model. Defaults to `inf`." + }, + "type": { "type": "string", "enum": [ - "low", - "high", - "auto" + "realtime" ], - "description": "The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`. Defaults to `auto`.", - "default": "auto" + "default": "realtime" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemContent" + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnion" } ], - "description": "An image input to the model. Learn about [image inputs](/docs/guides/vision)." + "description": "A Realtime session configuration object.", + "title": "Realtime session configuration object", + "x-oaiMeta": { + "name": "The session object", + "group": "realtime", + "example": "{\n \"id\": \"sess_001\",\n \"object\": \"realtime.session\",\n \"expires_at\": 1742188264,\n \"model\": \"gpt-realtime\",\n \"output_modalities\": [\"audio\"],\n \"instructions\": \"You are a friendly assistant.\",\n \"tools\": [],\n \"tool_choice\": \"none\",\n \"max_output_tokens\": \"inf\",\n \"tracing\": \"auto\",\n \"truncation\": \"auto\",\n \"prompt\": null,\n \"audio\": {\n \"input\": {\n \"format\": {\n \"type\": \"audio/pcm\",\n \"rate\": 24000\n },\n \"transcription\": { \"model\": \"whisper-1\" },\n \"noise_reduction\": null,\n \"turn_detection\": null\n },\n \"output\": {\n \"format\": {\n \"type\": \"audio/pcm\",\n \"rate\": 24000\n },\n \"voice\": \"alloy\",\n \"speed\": 1.0\n }\n }\n}\n" + } }, - "OpenAI.ItemContentInputText": { + "OpenAI.RealtimeSessionCreateResponseAudio": { "type": "object", - "required": [ - "type", - "text" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "input_text" - ], - "description": "The type of the input item. Always `input_text`." + "input": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioInput" }, - "text": { - "type": "string", - "description": "The text input to the model." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" + "output": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioOutput" } - ], - "description": "A text input to the model." + } }, - "OpenAI.ItemContentOutputAudio": { + "OpenAI.RealtimeSessionCreateResponseAudioInput": { "type": "object", - "required": [ - "type", - "data", - "transcript" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "output_audio" - ], - "description": "The type of the output audio. Always `output_audio`." + "format": { + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" }, - "data": { - "type": "string", - "description": "Base64-encoded audio data from the model." + "transcription": { + "$ref": "#/components/schemas/OpenAI.AudioTranscription" }, - "transcript": { - "type": "string", - "description": "The transcript of the audio data from the model." + "noise_reduction": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioInputNoiseReduction" + }, + "turn_detection": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioInputTurnDetection" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" + } + }, + "OpenAI.RealtimeSessionCreateResponseAudioInputNoiseReduction": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.NoiseReductionType" } - ], - "description": "An audio output from the model." + } }, - "OpenAI.ItemContentOutputText": { + "OpenAI.RealtimeSessionCreateResponseAudioInputTurnDetection": { "type": "object", - "required": [ - "type", - "text", - "annotations" - ], "properties": { "type": { - "type": "string", - "enum": [ - "output_text" - ], - "description": "The type of the output text. Always `output_text`." + "type": "string" }, - "text": { - "type": "string", - "description": "The text output from the model." + "threshold": { + "type": "number" }, - "annotations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Annotation" - }, - "description": "The annotations of the text output." + "prefix_padding_ms": { + "type": "integer" }, - "logprobs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.LogProb" - } + "silence_duration_ms": { + "type": "integer" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" + } + }, + "OpenAI.RealtimeSessionCreateResponseAudioOutput": { + "type": "object", + "properties": { + "format": { + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" + }, + "voice": { + "$ref": "#/components/schemas/OpenAI.VoiceIdsShared" + }, + "speed": { + "type": "number" } - ], - "description": "A text output from the model." + } }, - "OpenAI.ItemContentRefusal": { + "OpenAI.RealtimeSessionCreateResponseTurnDetection": { "type": "object", - "required": [ - "type", - "refusal" - ], "properties": { "type": { - "type": "string", - "enum": [ - "refusal" - ], - "description": "The type of the refusal. Always `refusal`." + "type": "string" }, - "refusal": { - "type": "string", - "description": "The refusal explanationfrom the model." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" + "threshold": { + "type": "number" + }, + "prefix_padding_ms": { + "type": "integer" + }, + "silence_duration_ms": { + "type": "integer" } - ], - "description": "A refusal from the model." - }, - "OpenAI.ItemContentType": { - "type": "string", - "enum": [ - "input_text", - "input_audio", - "input_image", - "input_file", - "output_text", - "output_audio", - "refusal" - ], - "description": "Multi-modal input and output contents." + } }, - "OpenAI.ItemParam": { + "OpenAI.RealtimeSessionCreateResponseUnion": { "type": "object", "required": [ "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.ItemType" + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnionType" } }, "discriminator": { "propertyName": "type", "mapping": { - "file_search_call": "#/components/schemas/OpenAI.FileSearchToolCallItemParam", - "computer_call": "#/components/schemas/OpenAI.ComputerToolCallItemParam", - "computer_call_output": "#/components/schemas/OpenAI.ComputerToolCallOutputItemParam", - "web_search_call": "#/components/schemas/OpenAI.WebSearchToolCallItemParam", - "function_call": "#/components/schemas/OpenAI.FunctionToolCallItemParam", - "function_call_output": "#/components/schemas/OpenAI.FunctionToolCallOutputItemParam", - "reasoning": "#/components/schemas/OpenAI.ReasoningItemParam", - "item_reference": "#/components/schemas/OpenAI.ItemReferenceItemParam", - "image_generation_call": "#/components/schemas/OpenAI.ImageGenToolCallItemParam", - "code_interpreter_call": "#/components/schemas/OpenAI.CodeInterpreterToolCallItemParam", - "local_shell_call": "#/components/schemas/OpenAI.LocalShellToolCallItemParam", - "local_shell_call_output": "#/components/schemas/OpenAI.LocalShellToolCallOutputItemParam", - "mcp_list_tools": "#/components/schemas/OpenAI.MCPListToolsItemParam", - "mcp_approval_request": "#/components/schemas/OpenAI.MCPApprovalRequestItemParam", - "mcp_approval_response": "#/components/schemas/OpenAI.MCPApprovalResponseItemParam", - "mcp_call": "#/components/schemas/OpenAI.MCPCallItemParam", - "message": "#/components/schemas/OpenAI.ResponsesMessageItemParam" + "realtime": "#/components/schemas/OpenAI.RealtimeSessionCreateResponse", + "transcription": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponse" + } + } + }, + "OpenAI.RealtimeSessionCreateResponseUnionType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "realtime", + "transcription" + ] } - }, - "description": "Content item used to generate a response." + ] }, - "OpenAI.ItemReferenceItemParam": { + "OpenAI.RealtimeTranscriptionSessionCreateRequest": { "type": "object", "required": [ - "type", - "id" + "type" ], "properties": { - "type": { + "turn_detection": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequestTurnDetection" + } + ], + "description": "Configuration for turn detection. Can be set to `null` to turn off. Server VAD means that the model will detect the start and end of speech based on audio volume and respond at the end of user speech." + }, + "input_audio_noise_reduction": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequestInputAudioNoiseReduction" + } + ], + "description": "Configuration for input audio noise reduction. This can be set to `null` to turn off.\n Noise reduction filters audio added to the input audio buffer before it is sent to VAD and the model.\n Filtering the audio can improve VAD and turn detection accuracy (reducing false positives) and model performance by improving perception of the input audio." + }, + "input_audio_format": { "type": "string", "enum": [ - "item_reference" - ] + "pcm16", + "g711_ulaw", + "g711_alaw" + ], + "description": "The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.\n For `pcm16`, input audio must be 16-bit PCM at a 24kHz sample rate,\n single channel (mono), and little-endian byte order.", + "default": "pcm16" }, - "id": { + "input_audio_transcription": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.AudioTranscription" + } + ], + "description": "Configuration for input audio transcription. The client can optionally set the language and prompt for transcription, these offer additional guidance to the transcription service." + }, + "include": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "item.input_audio_transcription.logprobs" + ] + }, + "description": "The set of items to include in the transcription. Current available items are:\n `item.input_audio_transcription.logprobs`" + }, + "type": { "type": "string", - "description": "The service-originated ID of the previously generated response item being referenced." + "enum": [ + "transcription" + ], + "default": "transcription" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnion" } ], - "description": "An internal identifier for an item to reference." + "description": "Realtime transcription session object configuration.", + "title": "Realtime transcription session configuration" }, - "OpenAI.ItemResource": { + "OpenAI.RealtimeTranscriptionSessionCreateRequestInputAudioNoiseReduction": { "type": "object", - "required": [ - "type", - "id" - ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.ItemType" - }, - "id": { - "type": "string" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search_call": "#/components/schemas/OpenAI.FileSearchToolCallItemResource", - "computer_call": "#/components/schemas/OpenAI.ComputerToolCallItemResource", - "computer_call_output": "#/components/schemas/OpenAI.ComputerToolCallOutputItemResource", - "web_search_call": "#/components/schemas/OpenAI.WebSearchToolCallItemResource", - "function_call": "#/components/schemas/OpenAI.FunctionToolCallItemResource", - "function_call_output": "#/components/schemas/OpenAI.FunctionToolCallOutputItemResource", - "reasoning": "#/components/schemas/OpenAI.ReasoningItemResource", - "image_generation_call": "#/components/schemas/OpenAI.ImageGenToolCallItemResource", - "code_interpreter_call": "#/components/schemas/OpenAI.CodeInterpreterToolCallItemResource", - "local_shell_call": "#/components/schemas/OpenAI.LocalShellToolCallItemResource", - "local_shell_call_output": "#/components/schemas/OpenAI.LocalShellToolCallOutputItemResource", - "mcp_list_tools": "#/components/schemas/OpenAI.MCPListToolsItemResource", - "mcp_approval_request": "#/components/schemas/OpenAI.MCPApprovalRequestItemResource", - "mcp_approval_response": "#/components/schemas/OpenAI.MCPApprovalResponseItemResource", - "mcp_call": "#/components/schemas/OpenAI.MCPCallItemResource", - "message": "#/components/schemas/OpenAI.ResponsesMessageItemResource" + "$ref": "#/components/schemas/OpenAI.NoiseReductionType" } - }, - "description": "Content item used to generate a response." - }, - "OpenAI.ItemType": { - "type": "string", - "enum": [ - "message", - "file_search_call", - "function_call", - "function_call_output", - "computer_call", - "computer_call_output", - "web_search_call", - "reasoning", - "item_reference", - "image_generation_call", - "code_interpreter_call", - "local_shell_call", - "local_shell_call_output", - "mcp_list_tools", - "mcp_approval_request", - "mcp_approval_response", - "mcp_call" - ] + } }, - "OpenAI.ListFineTuningJobCheckpointsResponse": { + "OpenAI.RealtimeTranscriptionSessionCreateRequestTurnDetection": { "type": "object", - "required": [ - "data", - "object", - "has_more" - ], "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.FineTuningJobCheckpoint" - } - }, - "object": { + "type": { "type": "string", "enum": [ - "list" + "server_vad" ] }, - "first_id": { - "type": "string", - "nullable": true + "threshold": { + "type": "number" }, - "last_id": { - "type": "string", - "nullable": true + "prefix_padding_ms": { + "type": "integer" }, - "has_more": { - "type": "boolean" + "silence_duration_ms": { + "type": "integer" } } }, - "OpenAI.ListFineTuningJobEventsResponse": { + "OpenAI.RealtimeTranscriptionSessionCreateResponse": { "type": "object", "required": [ - "data", - "object", - "has_more" + "client_secret", + "type" ], "properties": { - "data": { + "client_secret": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponseClientSecret" + } + ], + "description": "Ephemeral key returned by the API. Only present when the session is\n created on the server via REST API." + }, + "modalities": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.FineTuningJobEvent" - } + "type": "string", + "enum": [ + "text", + "audio" + ] + }, + "description": "The set of modalities the model can respond with. To disable audio,\n set this to [\"text\"]." }, - "object": { + "input_audio_format": { "type": "string", - "enum": [ - "list" - ] + "description": "The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`." }, - "has_more": { - "type": "boolean" + "input_audio_transcription": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.AudioTranscription" + } + ], + "description": "Configuration of the transcription model." + }, + "turn_detection": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponseTurnDetection" + } + ], + "description": "Configuration for turn detection. Can be set to `null` to turn off. Server\n VAD means that the model will detect the start and end of speech based on\n audio volume and respond at the end of user speech." + }, + "type": { + "type": "string", + "enum": [ + "transcription" + ], + "x-stainless-const": true + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnion" } + ], + "description": "A new Realtime transcription session configuration.\n\nWhen a session is created on the server via REST API, the session object\nalso contains an ephemeral key. Default TTL for keys is 10 minutes. This\nproperty is not present when a session is updated via the WebSocket API.", + "x-oaiMeta": { + "name": "The transcription session object", + "group": "realtime", + "example": "{\n \"id\": \"sess_BBwZc7cFV3XizEyKGDCGL\",\n \"object\": \"realtime.transcription_session\",\n \"expires_at\": 1742188264,\n \"modalities\": [\"audio\", \"text\"],\n \"turn_detection\": {\n \"type\": \"server_vad\",\n \"threshold\": 0.5,\n \"prefix_padding_ms\": 300,\n \"silence_duration_ms\": 200\n },\n \"input_audio_format\": \"pcm16\",\n \"input_audio_transcription\": {\n \"model\": \"gpt-4o-transcribe\",\n \"language\": null,\n \"prompt\": \"\"\n },\n \"client_secret\": null\n}\n" } }, - "OpenAI.ListModelsResponse": { + "OpenAI.RealtimeTranscriptionSessionCreateResponseClientSecret": { "type": "object", "required": [ - "object", - "data" + "value", + "expires_at" ], "properties": { - "object": { - "type": "string", - "enum": [ - "list" - ] + "value": { + "type": "string" }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Model" - } + "expires_at": { + "type": "integer", + "format": "unixtime" } } }, - "OpenAI.ListPaginatedFineTuningJobsResponse": { + "OpenAI.RealtimeTranscriptionSessionCreateResponseTurnDetection": { "type": "object", - "required": [ - "data", - "has_more", - "object" - ], "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.FineTuningJob" - } + "type": { + "type": "string" }, - "has_more": { - "type": "boolean" + "threshold": { + "type": "number" }, - "object": { - "type": "string", - "enum": [ - "list" - ] + "prefix_padding_ms": { + "type": "integer" + }, + "silence_duration_ms": { + "type": "integer" } } }, - "OpenAI.ListVectorStoreFilesFilter": { + "OpenAI.RealtimeTruncation": { "anyOf": [ - { - "type": "string" - }, { "type": "string", "enum": [ - "in_progress", - "completed", - "failed", - "cancelled" + "auto", + "disabled" + ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "retention_ratio" + ], + "x-stainless-const": true + }, + "retention_ratio": { + "type": "number", + "minimum": 0, + "maximum": 1 + }, + "token_limits": { + "$ref": "#/components/schemas/OpenAI.TokenLimits" + } + }, + "required": [ + "type", + "retention_ratio" ] } - ] + ], + "description": "When the number of tokens in a conversation exceeds the model's input token limit, the conversation be truncated, meaning messages (starting from the oldest) will not be included in the model's context. A 32k context model with 4,096 max output tokens can only include 28,224 tokens in the context before truncation occurs.\n\nClients can configure truncation behavior to truncate with a lower max token limit, which is an effective way to control token usage and cost.\n\nTruncation will reduce the number of cached tokens on the next turn (busting the cache), since messages are dropped from the beginning of the context. However, clients can also configure truncation to retain messages up to a fraction of the maximum context size, which will reduce the need for future truncations and thus improve the cache rate.\n\nTruncation can be disabled entirely, which means the server will never truncate but would instead return an error if the conversation exceeds the model's input token limit.", + "title": "Realtime Truncation Controls" }, - "OpenAI.ListVectorStoreFilesResponse": { + "OpenAI.RealtimeTurnDetection": { "type": "object", "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" + "type" ], "properties": { - "object": { - "type": "string", - "enum": [ - "list" - ] - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" - } - }, - "first_id": { - "type": "string" - }, - "last_id": { - "type": "string" - }, - "has_more": { - "type": "boolean" + "type": { + "$ref": "#/components/schemas/OpenAI.RealtimeTurnDetectionType" } + }, + "discriminator": { + "propertyName": "type" } }, - "OpenAI.ListVectorStoresResponse": { + "OpenAI.RealtimeTurnDetectionType": { + "type": "string" + }, + "OpenAI.Reasoning": { "type": "object", - "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" - ], "properties": { - "object": { + "effort": { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + }, + "summary": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "concise", + "detailed" + ] + }, + { + "type": "null" + } + ] + }, + "generate_summary": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "concise", + "detailed" + ] + }, + { + "type": "null" + } + ] + } + }, + "description": "**gpt-5 and o-series models only**\n\nConfiguration options for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning).", + "title": "Reasoning" + }, + "OpenAI.ReasoningEffort": { + "anyOf": [ + { "type": "string", "enum": [ - "list" + "none", + "minimal", + "low", + "medium", + "high", + "xhigh" ] }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.VectorStoreObject" - } - }, - "first_id": { - "type": "string" - }, - "last_id": { - "type": "string" - }, - "has_more": { - "type": "boolean" + { + "type": "null" } - } + ], + "description": "Constrains effort on reasoning for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning).\nCurrently supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`. Reducing\nreasoning effort can result in faster responses and fewer tokens used\non reasoning in a response.\n\n- `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool calls are supported for all reasoning values in gpt-5.1.\n- All models before `gpt-5.1` default to `medium` reasoning effort, and do not support `none`.\n- The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.\n- `xhigh` is currently only supported for `gpt-5.1-codex-max`." }, - "OpenAI.LocalShellExecAction": { + "OpenAI.ReasoningTextContent": { "type": "object", "required": [ "type", - "command", - "env" + "text" ], "properties": { "type": { "type": "string", "enum": [ - "exec" + "reasoning_text" ], - "description": "The type of the local shell action. Always `exec`." + "description": "The type of the reasoning text. Always `reasoning_text`.", + "x-stainless-const": true, + "default": "reasoning_text" }, - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The command to run." - }, - "timeout_ms": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "Optional timeout in milliseconds for the command." - }, - "working_directory": { - "type": "string", - "nullable": true, - "description": "Optional working directory to run the command in." - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables to set for the command." - }, - "user": { + "text": { "type": "string", - "nullable": true, - "description": "Optional user to run the command as." + "description": "The reasoning text from the model." } }, - "description": "Execute a shell command on the server." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputContent" + } + ], + "description": "Reasoning text from the model.", + "title": "ReasoningTextContent" }, - "OpenAI.LocalShellTool": { + "OpenAI.RefusalContent": { "type": "object", "required": [ - "type" + "type", + "refusal" ], "properties": { "type": { "type": "string", "enum": [ - "local_shell" + "refusal" ], - "description": "The type of the local shell tool. Always `local_shell`." + "description": "The type of the refusal. Always `refusal`.", + "x-stainless-const": true, + "default": "refusal" + }, + "refusal": { + "type": "string", + "description": "The refusal explanation from the model." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/OpenAI.OutputContent" } ], - "description": "A tool that allows the model to execute shell commands in a local environment." + "description": "A refusal from the model.", + "title": "Refusal" }, - "OpenAI.LocalShellToolCallItemParam": { + "OpenAI.Response": { "type": "object", "required": [ - "type", - "call_id", - "action" + "id", + "object", + "created_at", + "error", + "incomplete_details", + "output", + "instructions", + "parallel_tool_calls", + "content_filters" ], "properties": { - "type": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "top_logprobs": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "user": { + "type": "string", + "description": "This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations.\n A stable identifier for your end-users.\n Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "safety_identifier": { + "type": "string", + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies.\n The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "prompt_cache_key": { + "type": "string", + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "anyOf": [ + { + "type": "string", + "enum": [ + "in-memory", + "24h" + ] + }, + { + "type": "null" + } + ] + }, + "previous_response_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "model": { + "type": "string", + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\n to browse and compare available models." + }, + "reasoning": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Reasoning" + }, + { + "type": "null" + } + ] + }, + "background": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "max_tool_calls": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "text": { + "$ref": "#/components/schemas/OpenAI.ResponseTextParam" + }, + "tools": { + "$ref": "#/components/schemas/OpenAI.ToolsArray" + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" + }, + "truncation": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "disabled" + ] + }, + { + "type": "null" + } + ], + "default": "disabled" + }, + "id": { + "type": "string", + "description": "Unique identifier for this Response." + }, + "object": { "type": "string", "enum": [ - "local_shell_call" + "response" + ], + "description": "The object type of this resource - always set to `response`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "completed", + "failed", + "in_progress", + "cancelled", + "queued", + "incomplete" + ], + "description": "The status of the response generation. One of `completed`, `failed`,\n `in_progress`, `cancelled`, `queued`, or `incomplete`." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) of when this Response was created." + }, + "error": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseError" + }, + { + "type": "null" + } + ] + }, + "incomplete_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseIncompleteDetails" + }, + { + "type": "null" + } + ] + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.OutputItem" + }, + "description": "An array of content items generated by the model.\n\n - The length and order of items in the `output` array is dependent\n on the model's response.\n - Rather than accessing the first item in the `output` array and\n assuming it's an `assistant` message with the content generated by\n the model, you might consider using the `output_text` property where\n supported in SDKs." + }, + "instructions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputItem" + } + }, + { + "type": "null" + } ] }, - "call_id": { - "type": "string", - "description": "The unique ID of the local shell tool call generated by the model." + "output_text": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "x-stainless-skip": true }, - "action": { - "$ref": "#/components/schemas/OpenAI.LocalShellExecAction" + "usage": { + "$ref": "#/components/schemas/OpenAI.ResponseUsage" + }, + "parallel_tool_calls": { + "type": "boolean", + "description": "Whether to allow the model to run tool calls in parallel.", + "default": true + }, + "conversation": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Conversation" + }, + { + "type": "null" + } + ] + }, + "content_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureContentFilterForResponsesAPI" + }, + "description": "The content filter results from RAI." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } - ], - "description": "A tool call to run a command on the local shell.\n" + "title": "The response object" }, - "OpenAI.LocalShellToolCallItemResource": { + "OpenAI.ResponseAudioDeltaEvent": { "type": "object", "required": [ "type", - "status", - "call_id", - "action" + "sequence_number", + "delta" ], "properties": { "type": { "type": "string", "enum": [ - "local_shell_call" - ] + "response.audio.delta" + ], + "description": "The type of the event. Always `response.audio.delta`.", + "x-stainless-const": true }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete" - ] + "sequence_number": { + "type": "integer", + "description": "A sequence number for this chunk of the stream response." }, - "call_id": { + "delta": { "type": "string", - "description": "The unique ID of the local shell tool call generated by the model." - }, - "action": { - "$ref": "#/components/schemas/OpenAI.LocalShellExecAction" + "description": "A chunk of Base64 encoded response audio bytes." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A tool call to run a command on the local shell.\n" + "description": "Emitted when there is a partial audio response.", + "x-oaiMeta": { + "name": "response.audio.delta", + "group": "responses", + "example": "{\n \"type\": \"response.audio.delta\",\n \"response_id\": \"resp_123\",\n \"delta\": \"base64encoded...\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.LocalShellToolCallOutputItemParam": { + "OpenAI.ResponseAudioDoneEvent": { "type": "object", "required": [ "type", - "output" + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "local_shell_call_output" - ] + "response.audio.done" + ], + "description": "The type of the event. Always `response.audio.done`.", + "x-stainless-const": true }, - "output": { - "type": "string", - "description": "A JSON string of the output of the local shell tool call." + "sequence_number": { + "type": "integer", + "description": "The sequence number of the delta." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "The output of a local shell tool call.\n" + "description": "Emitted when the audio response is complete.", + "x-oaiMeta": { + "name": "response.audio.done", + "group": "responses", + "example": "{\n \"type\": \"response.audio.done\",\n \"response_id\": \"resp-123\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.LocalShellToolCallOutputItemResource": { + "OpenAI.ResponseAudioTranscriptDeltaEvent": { "type": "object", "required": [ "type", - "status", - "output" + "delta", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "local_shell_call_output" - ] + "response.audio.transcript.delta" + ], + "description": "The type of the event. Always `response.audio.transcript.delta`.", + "x-stainless-const": true }, - "status": { + "delta": { "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete" - ] + "description": "The partial transcript of the audio response." }, - "output": { - "type": "string", - "description": "A JSON string of the output of the local shell tool call." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "The output of a local shell tool call.\n" - }, - "OpenAI.Location": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.LocationType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "approximate": "#/components/schemas/OpenAI.ApproximateLocation" - } + "description": "Emitted when there is a partial transcript of audio.", + "x-oaiMeta": { + "name": "response.audio.transcript.delta", + "group": "responses", + "example": "{\n \"type\": \"response.audio.transcript.delta\",\n \"response_id\": \"resp_123\",\n \"delta\": \" ... partial transcript ... \",\n \"sequence_number\": 1\n}\n" } }, - "OpenAI.LocationType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string", - "enum": [ - "approximate" - ] - } - ] - }, - "OpenAI.LogProb": { - "type": "object", - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ], - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number", - "format": "float" - }, - "bytes": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - } - }, - "top_logprobs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.TopLogProb" - } - } - }, - "description": "The log probability of a token." - }, - "OpenAI.MCPApprovalRequestItemParam": { + "OpenAI.ResponseAudioTranscriptDoneEvent": { "type": "object", "required": [ "type", - "server_label", - "name", - "arguments" + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_approval_request" - ] - }, - "server_label": { - "type": "string", - "description": "The label of the MCP server making the request." - }, - "name": { - "type": "string", - "description": "The name of the tool to run." + "response.audio.transcript.done" + ], + "description": "The type of the event. Always `response.audio.transcript.done`.", + "x-stainless-const": true }, - "arguments": { - "type": "string", - "description": "A JSON string of arguments for the tool." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A request for human approval of a tool invocation.\n" + "description": "Emitted when the full audio transcript is completed.", + "x-oaiMeta": { + "name": "response.audio.transcript.done", + "group": "responses", + "example": "{\n \"type\": \"response.audio.transcript.done\",\n \"response_id\": \"resp_123\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPApprovalRequestItemResource": { + "OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent": { "type": "object", "required": [ "type", - "server_label", - "name", - "arguments" + "output_index", + "item_id", + "delta", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_approval_request" - ] + "response.code_interpreter_call_code.delta" + ], + "description": "The type of the event. Always `response.code_interpreter_call_code.delta`.", + "x-stainless-const": true }, - "server_label": { - "type": "string", - "description": "The label of the MCP server making the request." + "output_index": { + "type": "integer", + "description": "The index of the output item in the response for which the code is being streamed." }, - "name": { + "item_id": { "type": "string", - "description": "The name of the tool to run." + "description": "The unique identifier of the code interpreter tool call item." }, - "arguments": { + "delta": { "type": "string", - "description": "A JSON string of arguments for the tool." + "description": "The partial code snippet being streamed by the code interpreter." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event, used to order streaming events." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A request for human approval of a tool invocation.\n" + "description": "Emitted when a partial code snippet is streamed by the code interpreter.", + "x-oaiMeta": { + "name": "response.code_interpreter_call_code.delta", + "group": "responses", + "example": "{\n \"type\": \"response.code_interpreter_call_code.delta\",\n \"output_index\": 0,\n \"item_id\": \"ci_12345\",\n \"delta\": \"print('Hello, world')\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPApprovalResponseItemParam": { + "OpenAI.ResponseCodeInterpreterCallCodeDoneEvent": { "type": "object", "required": [ "type", - "approval_request_id", - "approve" + "output_index", + "item_id", + "code", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_approval_response" - ] + "response.code_interpreter_call_code.done" + ], + "description": "The type of the event. Always `response.code_interpreter_call_code.done`.", + "x-stainless-const": true }, - "approval_request_id": { - "type": "string", - "description": "The ID of the approval request being answered." + "output_index": { + "type": "integer", + "description": "The index of the output item in the response for which the code is finalized." }, - "approve": { - "type": "boolean", - "description": "Whether the request was approved." + "item_id": { + "type": "string", + "description": "The unique identifier of the code interpreter tool call item." }, - "reason": { + "code": { "type": "string", - "nullable": true, - "description": "Optional reason for the decision." + "description": "The final code snippet output by the code interpreter." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event, used to order streaming events." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A response to an MCP approval request.\n" + "description": "Emitted when the code snippet is finalized by the code interpreter.", + "x-oaiMeta": { + "name": "response.code_interpreter_call_code.done", + "group": "responses", + "example": "{\n \"type\": \"response.code_interpreter_call_code.done\",\n \"output_index\": 3,\n \"item_id\": \"ci_12345\",\n \"code\": \"print('done')\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPApprovalResponseItemResource": { + "OpenAI.ResponseCodeInterpreterCallCompletedEvent": { "type": "object", "required": [ "type", - "approval_request_id", - "approve" + "output_index", + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_approval_response" - ] - }, - "approval_request_id": { - "type": "string", - "description": "The ID of the approval request being answered." + "response.code_interpreter_call.completed" + ], + "description": "The type of the event. Always `response.code_interpreter_call.completed`.", + "x-stainless-const": true }, - "approve": { - "type": "boolean", - "description": "Whether the request was approved." + "output_index": { + "type": "integer", + "description": "The index of the output item in the response for which the code interpreter call is completed." }, - "reason": { + "item_id": { "type": "string", - "nullable": true, - "description": "Optional reason for the decision." + "description": "The unique identifier of the code interpreter tool call item." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event, used to order streaming events." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A response to an MCP approval request.\n" + "description": "Emitted when the code interpreter call is completed.", + "x-oaiMeta": { + "name": "response.code_interpreter_call.completed", + "group": "responses", + "example": "{\n \"type\": \"response.code_interpreter_call.completed\",\n \"output_index\": 5,\n \"item_id\": \"ci_12345\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPCallItemParam": { + "OpenAI.ResponseCodeInterpreterCallInProgressEvent": { "type": "object", "required": [ "type", - "server_label", - "name", - "arguments" + "output_index", + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_call" - ] - }, - "server_label": { - "type": "string", - "description": "The label of the MCP server running the tool." - }, - "name": { - "type": "string", - "description": "The name of the tool that was run." + "response.code_interpreter_call.in_progress" + ], + "description": "The type of the event. Always `response.code_interpreter_call.in_progress`.", + "x-stainless-const": true }, - "arguments": { - "type": "string", - "description": "A JSON string of the arguments passed to the tool." + "output_index": { + "type": "integer", + "description": "The index of the output item in the response for which the code interpreter call is in progress." }, - "output": { + "item_id": { "type": "string", - "nullable": true, - "description": "The output from the tool call." + "description": "The unique identifier of the code interpreter tool call item." }, - "error": { - "type": "string", - "nullable": true, - "description": "The error from the tool call, if any." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event, used to order streaming events." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "An invocation of a tool on an MCP server.\n" + "description": "Emitted when a code interpreter call is in progress.", + "x-oaiMeta": { + "name": "response.code_interpreter_call.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.code_interpreter_call.in_progress\",\n \"output_index\": 0,\n \"item_id\": \"ci_12345\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPCallItemResource": { + "OpenAI.ResponseCodeInterpreterCallInterpretingEvent": { "type": "object", "required": [ "type", - "server_label", - "name", - "arguments" + "output_index", + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_call" - ] - }, - "server_label": { - "type": "string", - "description": "The label of the MCP server running the tool." - }, - "name": { - "type": "string", - "description": "The name of the tool that was run." + "response.code_interpreter_call.interpreting" + ], + "description": "The type of the event. Always `response.code_interpreter_call.interpreting`.", + "x-stainless-const": true }, - "arguments": { - "type": "string", - "description": "A JSON string of the arguments passed to the tool." + "output_index": { + "type": "integer", + "description": "The index of the output item in the response for which the code interpreter is interpreting code." }, - "output": { + "item_id": { "type": "string", - "nullable": true, - "description": "The output from the tool call." + "description": "The unique identifier of the code interpreter tool call item." }, - "error": { - "type": "string", - "nullable": true, - "description": "The error from the tool call, if any." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event, used to order streaming events." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "An invocation of a tool on an MCP server.\n" + "description": "Emitted when the code interpreter is actively interpreting the code snippet.", + "x-oaiMeta": { + "name": "response.code_interpreter_call.interpreting", + "group": "responses", + "example": "{\n \"type\": \"response.code_interpreter_call.interpreting\",\n \"output_index\": 4,\n \"item_id\": \"ci_12345\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPListToolsItemParam": { + "OpenAI.ResponseCompletedEvent": { "type": "object", "required": [ "type", - "server_label", - "tools" + "response", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_list_tools" - ] - }, - "server_label": { - "type": "string", - "description": "The label of the MCP server." + "response.completed" + ], + "description": "The type of the event. Always `response.completed`.", + "x-stainless-const": true }, - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.MCPListToolsTool" - }, - "description": "The tools available on the server." + "response": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Response" + } + ], + "description": "Properties of the completed response." }, - "error": { - "type": "string", - "nullable": true, - "description": "Error message if the server could not list tools." + "sequence_number": { + "type": "integer", + "description": "The sequence number for this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A list of tools available on an MCP server.\n" + "description": "Emitted when the model response is complete.", + "x-oaiMeta": { + "name": "response.completed", + "group": "responses", + "example": "{\n \"type\": \"response.completed\",\n \"response\": {\n \"id\": \"resp_123\",\n \"object\": \"response\",\n \"created_at\": 1740855869,\n \"status\": \"completed\",\n \"error\": null,\n \"incomplete_details\": null,\n \"input\": [],\n \"instructions\": null,\n \"max_output_tokens\": null,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \"output\": [\n {\n \"id\": \"msg_123\",\n \"type\": \"message\",\n \"role\": \"assistant\",\n \"content\": [\n {\n \"type\": \"output_text\",\n \"text\": \"In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.\",\n \"annotations\": []\n }\n ]\n }\n ],\n \"previous_response_id\": null,\n \"reasoning_effort\": null,\n \"store\": false,\n \"temperature\": 1,\n \"text\": {\n \"format\": {\n \"type\": \"text\"\n }\n },\n \"tool_choice\": \"auto\",\n \"tools\": [],\n \"top_p\": 1,\n \"truncation\": \"disabled\",\n \"usage\": {\n \"input_tokens\": 0,\n \"output_tokens\": 0,\n \"output_tokens_details\": {\n \"reasoning_tokens\": 0\n },\n \"total_tokens\": 0\n },\n \"user\": null,\n \"metadata\": {}\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPListToolsItemResource": { + "OpenAI.ResponseContentPartAddedEvent": { "type": "object", "required": [ "type", - "server_label", - "tools" + "item_id", + "output_index", + "content_index", + "part", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_list_tools" - ] + "response.content_part.added" + ], + "description": "The type of the event. Always `response.content_part.added`.", + "x-stainless-const": true }, - "server_label": { + "item_id": { "type": "string", - "description": "The label of the MCP server." + "description": "The ID of the output item that the content part was added to." }, - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.MCPListToolsTool" - }, - "description": "The tools available on the server." + "output_index": { + "type": "integer", + "description": "The index of the output item that the content part was added to." }, - "error": { - "type": "string", - "nullable": true, - "description": "Error message if the server could not list tools." + "content_index": { + "type": "integer", + "description": "The index of the content part that was added." + }, + "part": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputContent" + } + ], + "description": "The content part that was added." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A list of tools available on an MCP server.\n" + "description": "Emitted when a new content part is added.", + "x-oaiMeta": { + "name": "response.content_part.added", + "group": "responses", + "example": "{\n \"type\": \"response.content_part.added\",\n \"item_id\": \"msg_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"part\": {\n \"type\": \"output_text\",\n \"text\": \"\",\n \"annotations\": []\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPListToolsTool": { + "OpenAI.ResponseContentPartDoneEvent": { "type": "object", "required": [ - "name", - "input_schema" + "type", + "item_id", + "output_index", + "content_index", + "sequence_number", + "part" ], "properties": { - "name": { + "type": { "type": "string", - "description": "The name of the tool." + "enum": [ + "response.content_part.done" + ], + "description": "The type of the event. Always `response.content_part.done`.", + "x-stainless-const": true }, - "description": { + "item_id": { "type": "string", - "nullable": true, - "description": "The description of the tool." + "description": "The ID of the output item that the content part was added to." }, - "input_schema": { - "description": "The JSON schema describing the tool's input." + "output_index": { + "type": "integer", + "description": "The index of the output item that the content part was added to." }, - "annotations": { - "nullable": true, - "description": "Additional annotations about the tool." + "content_index": { + "type": "integer", + "description": "The index of the content part that is done." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "part": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputContent" + } + ], + "description": "The content part that is done." } }, - "description": "A tool available on an MCP server." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + ], + "description": "Emitted when a content part is done.", + "x-oaiMeta": { + "name": "response.content_part.done", + "group": "responses", + "example": "{\n \"type\": \"response.content_part.done\",\n \"item_id\": \"msg_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"sequence_number\": 1,\n \"part\": {\n \"type\": \"output_text\",\n \"text\": \"In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.\",\n \"annotations\": []\n }\n}\n" + } }, - "OpenAI.MCPTool": { + "OpenAI.ResponseCreatedEvent": { "type": "object", "required": [ "type", - "server_label", - "server_url" + "response", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp" - ], - "description": "The type of the MCP tool. Always `mcp`." - }, - "server_label": { - "type": "string", - "description": "A label for this MCP server, used to identify it in tool calls." - }, - "server_url": { - "type": "string", - "description": "The URL for the MCP server." - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Optional HTTP headers to send to the MCP server. Use for authentication\nor other purposes." - }, - "allowed_tools": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "object", - "properties": { - "tool_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of allowed tool names." - } - } - } + "response.created" ], - "nullable": true, - "description": "List of allowed tool names or a filter object." + "description": "The type of the event. Always `response.created`.", + "x-stainless-const": true }, - "require_approval": { - "anyOf": [ - { - "type": "object", - "properties": { - "always": { - "type": "object", - "properties": { - "tool_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of tools that require approval." - } - }, - "description": "A list of tools that always require approval." - }, - "never": { - "type": "object", - "properties": { - "tool_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of tools that do not require approval." - } - }, - "description": "A list of tools that never require approval." - } - } - }, + "response": { + "allOf": [ { - "type": "string", - "enum": [ - "always", - "never" - ] + "$ref": "#/components/schemas/OpenAI.Response" } ], - "nullable": true, - "description": "Specify which of the MCP server's tools require approval.", - "default": "always" + "description": "The response that was created." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number for this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Give the model access to additional tools via remote Model Context Protocol\n(MCP) servers. [Learn more about MCP](/docs/guides/tools-remote-mcp)." - }, - "OpenAI.MetadataPropertyForRequest": { - "type": "object", - "properties": { - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - } - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters." + "description": "An event that is emitted when a response is created.", + "x-oaiMeta": { + "name": "response.created", + "group": "responses", + "example": "{\n \"type\": \"response.created\",\n \"response\": {\n \"id\": \"resp_67ccfcdd16748190a91872c75d38539e09e4d4aac714747c\",\n \"object\": \"response\",\n \"created_at\": 1741487325,\n \"status\": \"in_progress\",\n \"error\": null,\n \"incomplete_details\": null,\n \"instructions\": null,\n \"max_output_tokens\": null,\n \"model\": \"gpt-4o-2024-08-06\",\n \"output\": [],\n \"parallel_tool_calls\": true,\n \"previous_response_id\": null,\n \"reasoning\": {\n \"effort\": null,\n \"summary\": null\n },\n \"store\": true,\n \"temperature\": 1,\n \"text\": {\n \"format\": {\n \"type\": \"text\"\n }\n },\n \"tool_choice\": \"auto\",\n \"tools\": [],\n \"top_p\": 1,\n \"truncation\": \"disabled\",\n \"usage\": null,\n \"user\": null,\n \"metadata\": {}\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.Model": { + "OpenAI.ResponseCustomToolCallInputDeltaEvent": { "type": "object", "required": [ - "id", - "created", - "object", - "owned_by" + "type", + "sequence_number", + "output_index", + "item_id", + "delta" ], "properties": { - "id": { + "type": { "type": "string", - "description": "The model identifier, which can be referenced in the API endpoints." + "enum": [ + "response.custom_tool_call_input.delta" + ], + "description": "The event type identifier.", + "x-stainless-const": true }, - "created": { + "sequence_number": { "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) when the model was created." + "description": "The sequence number of this event." }, - "object": { + "output_index": { + "type": "integer", + "description": "The index of the output this delta applies to." + }, + "item_id": { "type": "string", - "enum": [ - "model" - ], - "description": "The object type, which is always \"model\"." + "description": "Unique identifier for the API item associated with this event." }, - "owned_by": { + "delta": { "type": "string", - "description": "The organization that owns the model." + "description": "The incremental input data (delta) for the custom tool call." } }, - "description": "Describes an OpenAI model offering that can be used with the API." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + ], + "description": "Event representing a delta (partial update) to the input of a custom tool call.", + "title": "ResponseCustomToolCallInputDelta", + "x-oaiMeta": { + "name": "response.custom_tool_call_input.delta", + "group": "responses", + "example": "{\n \"type\": \"response.custom_tool_call_input.delta\",\n \"output_index\": 0,\n \"item_id\": \"ctc_1234567890abcdef\",\n \"delta\": \"partial input text\"\n}\n" + } }, - "OpenAI.OtherChunkingStrategyResponseParam": { + "OpenAI.ResponseCustomToolCallInputDoneEvent": { "type": "object", "required": [ - "type" + "type", + "sequence_number", + "output_index", + "item_id", + "input" ], "properties": { "type": { "type": "string", "enum": [ - "other" + "response.custom_tool_call_input.done" ], - "description": "Always `other`." + "description": "The event type identifier.", + "x-stainless-const": true + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "output_index": { + "type": "integer", + "description": "The index of the output this event applies to." + }, + "item_id": { + "type": "string", + "description": "Unique identifier for the API item associated with this event." + }, + "input": { + "type": "string", + "description": "The complete input data for the custom tool call." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponseParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the `chunking_strategy` concept was introduced in the API." + "description": "Event indicating that input for a custom tool call is complete.", + "title": "ResponseCustomToolCallInputDone", + "x-oaiMeta": { + "name": "response.custom_tool_call_input.done", + "group": "responses", + "example": "{\n \"type\": \"response.custom_tool_call_input.done\",\n \"output_index\": 0,\n \"item_id\": \"ctc_1234567890abcdef\",\n \"input\": \"final complete input text\"\n}\n" + } }, - "OpenAI.ParallelToolCalls": { - "type": "boolean", - "description": "Whether to enable [parallel function calling](/docs/guides/function-calling#configuring-parallel-function-calling) during tool use." + "OpenAI.ResponseError": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "$ref": "#/components/schemas/OpenAI.ResponseErrorCode" + }, + "message": { + "type": "string", + "description": "A human-readable description of the error." + } + }, + "description": "An error object returned when the model fails to generate a Response." }, - "OpenAI.Prompt": { + "OpenAI.ResponseErrorCode": { + "type": "string", + "enum": [ + "server_error", + "rate_limit_exceeded", + "invalid_prompt", + "vector_store_timeout", + "invalid_image", + "invalid_image_format", + "invalid_base64_image", + "invalid_image_url", + "image_too_large", + "image_too_small", + "image_parse_error", + "image_content_policy_violation", + "invalid_image_mode", + "image_file_too_large", + "unsupported_image_media_type", + "empty_image_file", + "failed_to_download_image", + "image_file_not_found" + ], + "description": "The error code for the response." + }, + "OpenAI.ResponseErrorEvent": { "type": "object", "required": [ - "id" + "type", + "code", + "message", + "param", + "sequence_number" ], "properties": { - "id": { + "type": { "type": "string", - "description": "The unique identifier of the prompt template to use." + "enum": [ + "error" + ], + "description": "The type of the event. Always `error`.", + "x-stainless-const": true }, - "version": { + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "message": { "type": "string", - "nullable": true, - "description": "Optional version of the prompt template." + "description": "The error message." }, - "variables": { - "type": "object", - "allOf": [ + "param": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponsePromptVariables" + "type": "string" + }, + { + "type": "null" } - ], - "nullable": true + ] + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, - "description": "Reference to a prompt template and its variables.\n[Learn more](/docs/guides/text?api-mode=responses#reusable-prompts)." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + ], + "description": "Emitted when an error occurs.", + "x-oaiMeta": { + "name": "error", + "group": "responses", + "example": "{\n \"type\": \"error\",\n \"code\": \"ERR_SOMETHING\",\n \"message\": \"Something went wrong\",\n \"param\": null,\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.RankingOptions": { + "OpenAI.ResponseFailedEvent": { "type": "object", + "required": [ + "type", + "sequence_number", + "response" + ], "properties": { - "ranker": { + "type": { "type": "string", "enum": [ - "auto", - "default-2024-11-15" + "response.failed" ], - "description": "The ranker to use for the file search." + "description": "The type of the event. Always `response.failed`.", + "x-stainless-const": true }, - "score_threshold": { - "type": "number", - "format": "float", - "description": "The score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will attempt to return only the most relevant results, but may return fewer results." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "response": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Response" + } + ], + "description": "The response that failed." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } + ], + "description": "An event that is emitted when a response fails.", + "x-oaiMeta": { + "name": "response.failed", + "group": "responses", + "example": "{\n \"type\": \"response.failed\",\n \"response\": {\n \"id\": \"resp_123\",\n \"object\": \"response\",\n \"created_at\": 1740855869,\n \"status\": \"failed\",\n \"error\": {\n \"code\": \"server_error\",\n \"message\": \"The model failed to generate a response.\"\n },\n \"incomplete_details\": null,\n \"instructions\": null,\n \"max_output_tokens\": null,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \"output\": [],\n \"previous_response_id\": null,\n \"reasoning_effort\": null,\n \"store\": false,\n \"temperature\": 1,\n \"text\": {\n \"format\": {\n \"type\": \"text\"\n }\n },\n \"tool_choice\": \"auto\",\n \"tools\": [],\n \"top_p\": 1,\n \"truncation\": \"disabled\",\n \"usage\": null,\n \"user\": null,\n \"metadata\": {}\n }\n}\n" } }, - "OpenAI.Reasoning": { + "OpenAI.ResponseFileSearchCallCompletedEvent": { "type": "object", + "required": [ + "type", + "output_index", + "item_id", + "sequence_number" + ], "properties": { - "effort": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ReasoningEffort" - } - ], - "nullable": true, - "default": "medium" - }, - "summary": { + "type": { "type": "string", "enum": [ - "auto", - "concise", - "detailed" + "response.file_search_call.completed" ], - "nullable": true, - "description": "A summary of the reasoning performed by the model. This can be\nuseful for debugging and understanding the model's reasoning process.\nOne of `auto`, `concise`, or `detailed`." + "description": "The type of the event. Always `response.file_search_call.completed`.", + "x-stainless-const": true }, - "generate_summary": { + "output_index": { + "type": "integer", + "description": "The index of the output item that the file search call is initiated." + }, + "item_id": { "type": "string", - "enum": [ - "auto", - "concise", - "detailed" - ], - "nullable": true, - "description": "**Deprecated:** use `summary` instead.\n\nA summary of the reasoning performed by the model. This can be\nuseful for debugging and understanding the model's reasoning process.\nOne of `auto`, `concise`, or `detailed`.", - "deprecated": true, - "default": null + "description": "The ID of the output item that the file search call is initiated." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, - "description": "**o-series models only**\n\nConfiguration options for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning)." - }, - "OpenAI.ReasoningEffort": { - "type": "string", - "enum": [ - "low", - "medium", - "high" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } ], - "description": "**o-series models only**\n\nConstrains effort on reasoning for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning).\nCurrently supported values are `low`, `medium`, and `high`. Reducing\nreasoning effort can result in faster responses and fewer tokens used\non reasoning in a response." + "description": "Emitted when a file search call is completed (results found).", + "x-oaiMeta": { + "name": "response.file_search_call.completed", + "group": "responses", + "example": "{\n \"type\": \"response.file_search_call.completed\",\n \"output_index\": 0,\n \"item_id\": \"fs_123\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ReasoningItemParam": { + "OpenAI.ResponseFileSearchCallInProgressEvent": { "type": "object", "required": [ "type", - "summary" + "output_index", + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "reasoning" - ] + "response.file_search_call.in_progress" + ], + "description": "The type of the event. Always `response.file_search_call.in_progress`.", + "x-stainless-const": true + }, + "output_index": { + "type": "integer", + "description": "The index of the output item that the file search call is initiated." }, - "encrypted_content": { + "item_id": { "type": "string", - "nullable": true, - "description": "The encrypted content of the reasoning item - populated when a response is\ngenerated with `reasoning.encrypted_content` in the `include` parameter." + "description": "The ID of the output item that the file search call is initiated." }, - "summary": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ReasoningItemSummaryPart" - }, - "description": "Reasoning text contents." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API\nfor subsequent turns of a conversation if you are manually\n[managing context](/docs/guides/conversation-state).\n" + "description": "Emitted when a file search call is initiated.", + "x-oaiMeta": { + "name": "response.file_search_call.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.file_search_call.in_progress\",\n \"output_index\": 0,\n \"item_id\": \"fs_123\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ReasoningItemResource": { + "OpenAI.ResponseFileSearchCallSearchingEvent": { "type": "object", "required": [ "type", - "summary" + "output_index", + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "reasoning" - ] + "response.file_search_call.searching" + ], + "description": "The type of the event. Always `response.file_search_call.searching`.", + "x-stainless-const": true }, - "encrypted_content": { + "output_index": { + "type": "integer", + "description": "The index of the output item that the file search call is searching." + }, + "item_id": { "type": "string", - "nullable": true, - "description": "The encrypted content of the reasoning item - populated when a response is\ngenerated with `reasoning.encrypted_content` in the `include` parameter." + "description": "The ID of the output item that the file search call is initiated." }, - "summary": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ReasoningItemSummaryPart" - }, - "description": "Reasoning text contents." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API\nfor subsequent turns of a conversation if you are manually\n[managing context](/docs/guides/conversation-state).\n" + "description": "Emitted when a file search is currently searching.", + "x-oaiMeta": { + "name": "response.file_search_call.searching", + "group": "responses", + "example": "{\n \"type\": \"response.file_search_call.searching\",\n \"output_index\": 0,\n \"item_id\": \"fs_123\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ReasoningItemSummaryPart": { + "OpenAI.ResponseFormatJsonObject": { "type": "object", "required": [ "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.ReasoningItemSummaryPartType" + "type": "string", + "enum": [ + "json_object" + ], + "description": "The type of response format being defined. Always `json_object`.", + "x-stainless-const": true } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "summary_text": "#/components/schemas/OpenAI.ReasoningItemSummaryTextPart" - } - } - }, - "OpenAI.ReasoningItemSummaryPartType": { - "anyOf": [ - { - "type": "string" - }, + "allOf": [ { - "type": "string", - "enum": [ - "summary_text" - ] + "$ref": "#/components/schemas/OpenAI.TextResponseFormatConfiguration" } - ] + ], + "description": "JSON object response format. An older method of generating JSON responses.\nUsing `json_schema` is recommended for models that support it. Note that the\nmodel will not generate JSON without a system or user message instructing it\nto do so.", + "title": "JSON object" }, - "OpenAI.ReasoningItemSummaryTextPart": { + "OpenAI.ResponseFormatJsonSchema": { "type": "object", "required": [ "type", - "text" + "json_schema" ], "properties": { "type": { "type": "string", "enum": [ - "summary_text" - ] + "json_schema" + ], + "description": "The type of response format being defined. Always `json_schema`.", + "x-stainless-const": true }, - "text": { - "type": "string" + "json_schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchemaJsonSchema" + } + ], + "description": "Structured Outputs configuration options, including a JSON Schema.", + "title": "JSON schema" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ReasoningItemSummaryPart" - } - ] + "description": "JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs).", + "title": "JSON schema" }, - "OpenAI.Response": { + "OpenAI.ResponseFormatJsonSchemaJsonSchema": { "type": "object", "required": [ - "metadata", - "temperature", - "top_p", - "user", - "id", - "object", - "created_at", - "error", - "incomplete_details", - "output", - "instructions", - "parallel_tool_calls" + "name" ], "properties": { - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - }, - "temperature": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 2, - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.\nWe generally recommend altering this or `top_p` but not both." - }, - "top_p": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 1, - "description": "An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability\nmass. So 0.1 means only the tokens comprising the top 10% probability mass\nare considered.\n\nWe generally recommend altering this or `temperature` but not both." - }, - "user": { - "type": "string", - "nullable": true, - "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids)." - }, - "top_logprobs": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability." - }, - "previous_response_id": { - "type": "string", - "nullable": true, - "description": "The unique ID of the previous response to the model. Use this to\ncreate multi-turn conversations. Learn more about\n[conversation state](/docs/guides/conversation-state)." - }, - "reasoning": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Reasoning" - } - ], - "nullable": true - }, - "background": { - "type": "boolean", - "nullable": true, - "description": "Whether to run the model response in the background.\n[Learn more](/docs/guides/background).", - "default": false - }, - "max_output_tokens": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An upper bound for the number of tokens that can be generated for a response, including visible output tokens and [reasoning tokens](/docs/guides/reasoning)." - }, - "max_tool_calls": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored." + "description": { + "type": "string" }, - "text": { - "type": "object", - "properties": { - "format": { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" - } - }, - "description": "Configuration options for a text response from the model. Can be plain\ntext or structured JSON data. Learn more:\n- [Text inputs and outputs](/docs/guides/text)\n- [Structured Outputs](/docs/guides/structured-outputs)" + "name": { + "type": "string" }, - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Tool" - }, - "description": "An array of tools the model may call while generating a response. You\ncan specify which tool to use by setting the `tool_choice` parameter.\n\nThe two categories of tools you can provide the model are:\n\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\n model's capabilities, like [web search](/docs/guides/tools-web-search)\n or [file search](/docs/guides/tools-file-search). Learn more about\n [built-in tools](/docs/guides/tools).\n- **Function calls (custom tools)**: Functions that are defined by you,\n enabling the model to call your own code. Learn more about\n [function calling](/docs/guides/function-calling)." + "schema": { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema" }, - "tool_choice": { + "strict": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceOptions" + "type": "boolean" }, { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" - } - ], - "description": "How the model should select which tool (or tools) to use when generating\na response. See the `tools` parameter to see how to specify which tools\nthe model can call." - }, - "prompt": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Prompt" + "type": "null" } - ], - "nullable": true - }, - "truncation": { - "type": "string", - "enum": [ - "auto", - "disabled" - ], - "nullable": true, - "description": "The truncation strategy to use for the model response.\n- `auto`: If the context of this response and previous ones exceeds\n the model's context window size, the model will truncate the\n response to fit the context window by dropping input items in the\n middle of the conversation.\n- `disabled` (default): If a model response will exceed the context window\n size for a model, the request will fail with a 400 error.", - "default": "disabled" - }, - "id": { - "type": "string", - "description": "Unique identifier for this Response." - }, - "object": { - "type": "string", - "enum": [ - "response" - ], - "description": "The object type of this resource - always set to `response`." - }, - "status": { + ] + } + } + }, + "OpenAI.ResponseFormatJsonSchemaSchema": { + "type": "object", + "description": "The schema for the response format, described as a JSON Schema object.\nLearn how to build JSON schemas [here](https://json-schema.org/).", + "title": "JSON schema" + }, + "OpenAI.ResponseFormatText": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { "type": "string", "enum": [ - "completed", - "failed", - "in_progress", - "cancelled", - "queued", - "incomplete" - ], - "description": "The status of the response generation. One of `completed`, `failed`,\n`in_progress`, `cancelled`, `queued`, or `incomplete`." - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "Unix timestamp (in seconds) of when this Response was created." - }, - "error": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseError" - } + "text" ], - "nullable": true - }, - "incomplete_details": { - "type": "object", - "properties": { - "reason": { - "type": "string", - "enum": [ - "max_output_tokens", - "content_filter" - ], - "description": "The reason why the response is incomplete." - } - }, - "nullable": true, - "description": "Details about why the response is incomplete." - }, - "output": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemResource" - }, - "description": "An array of content items generated by the model.\n\n- The length and order of items in the `output` array is dependent\n on the model's response.\n- Rather than accessing the first item in the `output` array and\n assuming it's an `assistant` message with the content generated by\n the model, you might consider using the `output_text` property where\n supported in SDKs." - }, - "instructions": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } - } + "description": "The type of response format being defined. Always `text`.", + "x-stainless-const": true + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.TextResponseFormatConfiguration" + } + ], + "description": "Default response format. Used to generate text responses.", + "title": "Text" + }, + "OpenAI.ResponseFunctionCallArgumentsDeltaEvent": { + "type": "object", + "required": [ + "type", + "item_id", + "output_index", + "sequence_number", + "delta" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "response.function_call_arguments.delta" ], - "nullable": true, - "description": "A system (or developer) message inserted into the model's context.\n\nWhen using along with `previous_response_id`, the instructions from a previous\nresponse will not be carried over to the next response. This makes it simple\nto swap out system (or developer) messages in new responses." + "description": "The type of the event. Always `response.function_call_arguments.delta`.", + "x-stainless-const": true }, - "output_text": { + "item_id": { "type": "string", - "nullable": true, - "description": "SDK-only convenience property that contains the aggregated text output\nfrom all `output_text` items in the `output` array, if any are present.\nSupported in the Python and JavaScript SDKs." + "description": "The ID of the output item that the function-call arguments delta is added to." }, - "usage": { - "$ref": "#/components/schemas/OpenAI.ResponseUsage" + "output_index": { + "type": "integer", + "description": "The index of the output item that the function-call arguments delta is added to." }, - "parallel_tool_calls": { - "type": "boolean", - "description": "Whether to allow the model to run tool calls in parallel.", - "default": true + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "delta": { + "type": "string", + "description": "The function-call arguments delta that is added." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } + ], + "description": "Emitted when there is a partial function-call arguments delta.", + "x-oaiMeta": { + "name": "response.function_call_arguments.delta", + "group": "responses", + "example": "{\n \"type\": \"response.function_call_arguments.delta\",\n \"item_id\": \"item-abc\",\n \"output_index\": 0,\n \"delta\": \"{ \\\"arg\\\":\"\n \"sequence_number\": 1\n}\n" } }, - "OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent": { + "OpenAI.ResponseFunctionCallArgumentsDoneEvent": { "type": "object", "required": [ "type", - "output_index", "item_id", - "delta", - "obfuscation" + "name", + "output_index", + "sequence_number", + "arguments" ], "properties": { "type": { "type": "string", "enum": [ - "response.code_interpreter_call_code.delta" + "response.function_call_arguments.done" ], - "description": "The type of the event. Always `response.code_interpreter_call_code.delta`." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item in the response for which the code is being streamed." + "x-stainless-const": true }, "item_id": { "type": "string", - "description": "The unique identifier of the code interpreter tool call item." + "description": "The ID of the item." }, - "delta": { + "name": { "type": "string", - "description": "The partial code snippet being streamed by the code interpreter." + "description": "The name of the function that was called." + }, + "output_index": { + "type": "integer", + "description": "The index of the output item." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." }, - "obfuscation": { + "arguments": { "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." + "description": "The function-call arguments." } }, "allOf": [ @@ -17962,36 +31276,41 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a partial code snippet is streamed by the code interpreter." + "description": "Emitted when function-call arguments are finalized.", + "x-oaiMeta": { + "name": "response.function_call_arguments.done", + "group": "responses", + "example": "{\n \"type\": \"response.function_call_arguments.done\",\n \"item_id\": \"item-abc\",\n \"name\": \"get_weather\",\n \"output_index\": 1,\n \"arguments\": \"{ \\\"arg\\\": 123 }\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseCodeInterpreterCallCodeDoneEvent": { + "OpenAI.ResponseImageGenCallCompletedEvent": { "type": "object", "required": [ "type", "output_index", - "item_id", - "code" + "sequence_number", + "item_id" ], "properties": { "type": { "type": "string", "enum": [ - "response.code_interpreter_call_code.done" + "response.image_generation_call.completed" ], - "description": "The type of the event. Always `response.code_interpreter_call_code.done`." + "description": "The type of the event. Always 'response.image_generation_call.completed'.", + "x-stainless-const": true }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response for which the code is finalized." + "description": "The index of the output item in the response's output array." }, - "item_id": { - "type": "string", - "description": "The unique identifier of the code interpreter tool call item." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." }, - "code": { + "item_id": { "type": "string", - "description": "The final code snippet output by the code interpreter." + "description": "The unique identifier of the image generation item being processed." } }, "allOf": [ @@ -17999,31 +31318,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the code snippet is finalized by the code interpreter." + "description": "Emitted when an image generation tool call has completed and the final image is available.", + "title": "ResponseImageGenCallCompletedEvent", + "x-oaiMeta": { + "name": "response.image_generation_call.completed", + "group": "responses", + "example": "{\n \"type\": \"response.image_generation_call.completed\",\n \"output_index\": 0,\n \"item_id\": \"item-123\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseCodeInterpreterCallCompletedEvent": { + "OpenAI.ResponseImageGenCallGeneratingEvent": { "type": "object", "required": [ "type", "output_index", - "item_id" + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.code_interpreter_call.completed" + "response.image_generation_call.generating" ], - "description": "The type of the event. Always `response.code_interpreter_call.completed`." + "description": "The type of the event. Always 'response.image_generation_call.generating'.", + "x-stainless-const": true }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response for which the code interpreter call is completed." + "description": "The index of the output item in the response's output array." }, "item_id": { "type": "string", - "description": "The unique identifier of the code interpreter tool call item." + "description": "The unique identifier of the image generation item being processed." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of the image generation item being processed." } }, "allOf": [ @@ -18031,31 +31361,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the code interpreter call is completed." + "description": "Emitted when an image generation tool call is actively generating an image (intermediate state).", + "title": "ResponseImageGenCallGeneratingEvent", + "x-oaiMeta": { + "name": "response.image_generation_call.generating", + "group": "responses", + "example": "{\n \"type\": \"response.image_generation_call.generating\",\n \"output_index\": 0,\n \"item_id\": \"item-123\",\n \"sequence_number\": 0\n}\n" + } }, - "OpenAI.ResponseCodeInterpreterCallInProgressEvent": { + "OpenAI.ResponseImageGenCallInProgressEvent": { "type": "object", "required": [ "type", "output_index", - "item_id" + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.code_interpreter_call.in_progress" + "response.image_generation_call.in_progress" ], - "description": "The type of the event. Always `response.code_interpreter_call.in_progress`." + "description": "The type of the event. Always 'response.image_generation_call.in_progress'.", + "x-stainless-const": true }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response for which the code interpreter call is in progress." + "description": "The index of the output item in the response's output array." }, "item_id": { "type": "string", - "description": "The unique identifier of the code interpreter tool call item." + "description": "The unique identifier of the image generation item being processed." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of the image generation item being processed." } }, "allOf": [ @@ -18063,31 +31404,52 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a code interpreter call is in progress." + "description": "Emitted when an image generation tool call is in progress.", + "title": "ResponseImageGenCallInProgressEvent", + "x-oaiMeta": { + "name": "response.image_generation_call.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.image_generation_call.in_progress\",\n \"output_index\": 0,\n \"item_id\": \"item-123\",\n \"sequence_number\": 0\n}\n" + } }, - "OpenAI.ResponseCodeInterpreterCallInterpretingEvent": { + "OpenAI.ResponseImageGenCallPartialImageEvent": { "type": "object", "required": [ "type", "output_index", - "item_id" + "item_id", + "sequence_number", + "partial_image_index", + "partial_image_b64" ], "properties": { "type": { "type": "string", "enum": [ - "response.code_interpreter_call.interpreting" + "response.image_generation_call.partial_image" ], - "description": "The type of the event. Always `response.code_interpreter_call.interpreting`." + "description": "The type of the event. Always 'response.image_generation_call.partial_image'.", + "x-stainless-const": true }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response for which the code interpreter is interpreting code." + "description": "The index of the output item in the response's output array." }, "item_id": { "type": "string", - "description": "The unique identifier of the code interpreter tool call item." + "description": "The unique identifier of the image generation item being processed." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of the image generation item being processed." + }, + "partial_image_index": { + "type": "integer", + "description": "0-based index for the partial image (backend is 1-based, but this is 0-based for the user)." + }, + "partial_image_b64": { + "type": "string", + "description": "Base64-encoded partial image data, suitable for rendering as an image." } }, "allOf": [ @@ -18095,21 +31457,29 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the code interpreter is actively interpreting the code snippet." + "description": "Emitted when a partial image is available during image generation streaming.", + "title": "ResponseImageGenCallPartialImageEvent", + "x-oaiMeta": { + "name": "response.image_generation_call.partial_image", + "group": "responses", + "example": "{\n \"type\": \"response.image_generation_call.partial_image\",\n \"output_index\": 0,\n \"item_id\": \"item-123\",\n \"sequence_number\": 0,\n \"partial_image_index\": 0,\n \"partial_image_b64\": \"...\"\n}\n" + } }, - "OpenAI.ResponseCompletedEvent": { + "OpenAI.ResponseInProgressEvent": { "type": "object", "required": [ "type", - "response" + "response", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.completed" + "response.in_progress" ], - "description": "The type of the event. Always `response.completed`." + "description": "The type of the event. Always `response.in_progress`.", + "x-stainless-const": true }, "response": { "allOf": [ @@ -18117,7 +31487,11 @@ "$ref": "#/components/schemas/OpenAI.Response" } ], - "description": "Properties of the completed response." + "description": "The response that is in progress." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18125,46 +31499,52 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the model response is complete." + "description": "Emitted when the response is in progress.", + "x-oaiMeta": { + "name": "response.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.in_progress\",\n \"response\": {\n \"id\": \"resp_67ccfcdd16748190a91872c75d38539e09e4d4aac714747c\",\n \"object\": \"response\",\n \"created_at\": 1741487325,\n \"status\": \"in_progress\",\n \"error\": null,\n \"incomplete_details\": null,\n \"instructions\": null,\n \"max_output_tokens\": null,\n \"model\": \"gpt-4o-2024-08-06\",\n \"output\": [],\n \"parallel_tool_calls\": true,\n \"previous_response_id\": null,\n \"reasoning\": {\n \"effort\": null,\n \"summary\": null\n },\n \"store\": true,\n \"temperature\": 1,\n \"text\": {\n \"format\": {\n \"type\": \"text\"\n }\n },\n \"tool_choice\": \"auto\",\n \"tools\": [],\n \"top_p\": 1,\n \"truncation\": \"disabled\",\n \"usage\": null,\n \"user\": null,\n \"metadata\": {}\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseContentPartAddedEvent": { + "OpenAI.ResponseIncompleteDetails": { + "type": "object", + "properties": { + "reason": { + "type": "string", + "enum": [ + "max_output_tokens", + "content_filter" + ] + } + } + }, + "OpenAI.ResponseIncompleteEvent": { "type": "object", "required": [ "type", - "item_id", - "output_index", - "content_index", - "part" + "response", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.content_part.added" + "response.incomplete" ], - "description": "The type of the event. Always `response.content_part.added`." - }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the content part was added to." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item that the content part was added to." + "description": "The type of the event. Always `response.incomplete`.", + "x-stainless-const": true }, - "content_index": { - "type": "integer", - "format": "int32", - "description": "The index of the content part that was added." - }, - "part": { + "response": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemContent" + "$ref": "#/components/schemas/OpenAI.Response" } ], - "description": "The content part that was added." + "description": "The response that was incomplete." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18172,46 +31552,127 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a new content part is added." + "description": "An event that is emitted when a response finishes as incomplete.", + "x-oaiMeta": { + "name": "response.incomplete", + "group": "responses", + "example": "{\n \"type\": \"response.incomplete\",\n \"response\": {\n \"id\": \"resp_123\",\n \"object\": \"response\",\n \"created_at\": 1740855869,\n \"status\": \"incomplete\",\n \"error\": null, \n \"incomplete_details\": {\n \"reason\": \"max_tokens\"\n },\n \"instructions\": null,\n \"max_output_tokens\": null,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \"output\": [],\n \"previous_response_id\": null,\n \"reasoning_effort\": null,\n \"store\": false,\n \"temperature\": 1,\n \"text\": {\n \"format\": {\n \"type\": \"text\"\n }\n },\n \"tool_choice\": \"auto\",\n \"tools\": [],\n \"top_p\": 1,\n \"truncation\": \"disabled\",\n \"usage\": null,\n \"user\": null,\n \"metadata\": {}\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseContentPartDoneEvent": { + "OpenAI.ResponseItemList": { + "type": "object", + "required": [ + "object", + "data", + "has_more", + "first_id", + "last_id" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "list" + ], + "description": "The type of object returned, must be `list`.", + "x-stainless-const": true + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ItemResource" + }, + "description": "A list of items used to generate this response." + }, + "has_more": { + "type": "boolean", + "description": "Whether there are more items available." + }, + "first_id": { + "type": "string", + "description": "The ID of the first item in the list." + }, + "last_id": { + "type": "string", + "description": "The ID of the last item in the list." + } + }, + "description": "A list of Response items.", + "x-oaiMeta": { + "name": "The input item list", + "group": "responses", + "example": "{\n \"object\": \"list\",\n \"data\": [\n {\n \"id\": \"msg_abc123\",\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": [\n {\n \"type\": \"input_text\",\n \"text\": \"Tell me a three sentence bedtime story about a unicorn.\"\n }\n ]\n }\n ],\n \"first_id\": \"msg_abc123\",\n \"last_id\": \"msg_abc123\",\n \"has_more\": false\n}\n" + } + }, + "OpenAI.ResponseLogProb": { + "type": "object", + "required": [ + "token", + "logprob" + ], + "properties": { + "token": { + "type": "string", + "description": "A possible text token." + }, + "logprob": { + "type": "number", + "description": "The log probability of this token." + }, + "top_logprobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ResponseLogProbTopLogprobs" + }, + "description": "The log probability of the top 20 most likely tokens." + } + }, + "description": "A logprob is the logarithmic probability that the model assigns to producing\na particular token at a given position in the sequence. Less-negative (higher)\nlogprob values indicate greater model confidence in that token choice." + }, + "OpenAI.ResponseLogProbTopLogprobs": { + "type": "object", + "properties": { + "token": { + "type": "string" + }, + "logprob": { + "type": "number" + } + } + }, + "OpenAI.ResponseMCPCallArgumentsDeltaEvent": { "type": "object", "required": [ "type", - "item_id", "output_index", - "content_index", - "part" + "item_id", + "delta", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.content_part.done" + "response.mcp_call_arguments.delta" ], - "description": "The type of the event. Always `response.content_part.done`." + "description": "The type of the event. Always 'response.mcp_call_arguments.delta'.", + "x-stainless-const": true + }, + "output_index": { + "type": "integer", + "description": "The index of the output item in the response's output array." }, "item_id": { "type": "string", - "description": "The ID of the output item that the content part was added to." + "description": "The unique identifier of the MCP tool call item being processed." }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item that the content part was added to." + "delta": { + "type": "string", + "description": "A JSON string containing the partial update to the arguments for the MCP tool call." }, - "content_index": { + "sequence_number": { "type": "integer", - "format": "int32", - "description": "The index of the content part that is done." - }, - "part": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" - } - ], - "description": "The content part that is done." + "description": "The sequence number of this event." } }, "allOf": [ @@ -18219,29 +31680,47 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a content part is done." + "description": "Emitted when there is a delta (partial update) to the arguments of an MCP tool call.", + "title": "ResponseMCPCallArgumentsDeltaEvent", + "x-oaiMeta": { + "name": "response.mcp_call_arguments.delta", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_call_arguments.delta\",\n \"output_index\": 0,\n \"item_id\": \"item-abc\",\n \"delta\": \"{\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseCreatedEvent": { + "OpenAI.ResponseMCPCallArgumentsDoneEvent": { "type": "object", "required": [ "type", - "response" + "output_index", + "item_id", + "arguments", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.created" + "response.mcp_call_arguments.done" ], - "description": "The type of the event. Always `response.created`." + "description": "The type of the event. Always 'response.mcp_call_arguments.done'.", + "x-stainless-const": true }, - "response": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Response" - } - ], - "description": "The response that was created." + "output_index": { + "type": "integer", + "description": "The index of the output item in the response's output array." + }, + "item_id": { + "type": "string", + "description": "The unique identifier of the MCP tool call item being processed." + }, + "arguments": { + "type": "string", + "description": "A JSON string containing the finalized arguments for the MCP tool call." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18249,78 +31728,85 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "An event that is emitted when a response is created." + "description": "Emitted when the arguments for an MCP tool call are finalized.", + "title": "ResponseMCPCallArgumentsDoneEvent", + "x-oaiMeta": { + "name": "response.mcp_call_arguments.done", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_call_arguments.done\",\n \"output_index\": 0,\n \"item_id\": \"item-abc\",\n \"arguments\": \"{\\\"arg1\\\": \\\"value1\\\", \\\"arg2\\\": \\\"value2\\\"}\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseError": { + "OpenAI.ResponseMCPCallCompletedEvent": { "type": "object", "required": [ - "code", - "message" + "type", + "item_id", + "output_index", + "sequence_number" ], "properties": { - "code": { - "$ref": "#/components/schemas/OpenAI.ResponseErrorCode" + "type": { + "type": "string", + "enum": [ + "response.mcp_call.completed" + ], + "description": "The type of the event. Always 'response.mcp_call.completed'.", + "x-stainless-const": true }, - "message": { + "item_id": { "type": "string", - "description": "A human-readable description of the error." + "description": "The ID of the MCP tool call item that completed." + }, + "output_index": { + "type": "integer", + "description": "The index of the output item that completed." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, - "description": "An error object returned when the model fails to generate a Response." - }, - "OpenAI.ResponseErrorCode": { - "type": "string", - "enum": [ - "server_error", - "rate_limit_exceeded", - "invalid_prompt", - "vector_store_timeout", - "invalid_image", - "invalid_image_format", - "invalid_base64_image", - "invalid_image_url", - "image_too_large", - "image_too_small", - "image_parse_error", - "image_content_policy_violation", - "invalid_image_mode", - "image_file_too_large", - "unsupported_image_media_type", - "empty_image_file", - "failed_to_download_image", - "image_file_not_found" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } ], - "description": "The error code for the response." + "description": "Emitted when an MCP tool call has completed successfully.", + "title": "ResponseMCPCallCompletedEvent", + "x-oaiMeta": { + "name": "response.mcp_call.completed", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_call.completed\",\n \"sequence_number\": 1,\n \"item_id\": \"mcp_682d437d90a88191bf88cd03aae0c3e503937d5f622d7a90\",\n \"output_index\": 0\n}\n" + } }, - "OpenAI.ResponseErrorEvent": { + "OpenAI.ResponseMCPCallFailedEvent": { "type": "object", "required": [ "type", - "code", - "message", - "param" + "item_id", + "output_index", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "error" + "response.mcp_call.failed" ], - "description": "The type of the event. Always `error`." + "description": "The type of the event. Always 'response.mcp_call.failed'.", + "x-stainless-const": true }, - "code": { + "item_id": { "type": "string", - "nullable": true, - "description": "The error code." + "description": "The ID of the MCP tool call item that failed." }, - "message": { - "type": "string", - "description": "The error message." + "output_index": { + "type": "integer", + "description": "The index of the output item that failed." }, - "param": { - "type": "string", - "nullable": true, - "description": "The error parameter." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18328,29 +31814,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when an error occurs." + "description": "Emitted when an MCP tool call has failed.", + "title": "ResponseMCPCallFailedEvent", + "x-oaiMeta": { + "name": "response.mcp_call.failed", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_call.failed\",\n \"sequence_number\": 1,\n \"item_id\": \"mcp_682d437d90a88191bf88cd03aae0c3e503937d5f622d7a90\",\n \"output_index\": 0\n}\n" + } }, - "OpenAI.ResponseFailedEvent": { + "OpenAI.ResponseMCPCallInProgressEvent": { "type": "object", "required": [ "type", - "response" + "sequence_number", + "output_index", + "item_id" ], "properties": { "type": { "type": "string", "enum": [ - "response.failed" + "response.mcp_call.in_progress" ], - "description": "The type of the event. Always `response.failed`." + "description": "The type of the event. Always 'response.mcp_call.in_progress'.", + "x-stainless-const": true }, - "response": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Response" - } - ], - "description": "The response that failed." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "output_index": { + "type": "integer", + "description": "The index of the output item in the response's output array." + }, + "item_id": { + "type": "string", + "description": "The unique identifier of the MCP tool call item being processed." } }, "allOf": [ @@ -18358,31 +31857,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "An event that is emitted when a response fails." + "description": "Emitted when an MCP tool call is in progress.", + "title": "ResponseMCPCallInProgressEvent", + "x-oaiMeta": { + "name": "response.mcp_call.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_call.in_progress\",\n \"sequence_number\": 1,\n \"output_index\": 0,\n \"item_id\": \"mcp_682d437d90a88191bf88cd03aae0c3e503937d5f622d7a90\"\n}\n" + } }, - "OpenAI.ResponseFileSearchCallCompletedEvent": { + "OpenAI.ResponseMCPListToolsCompletedEvent": { "type": "object", "required": [ "type", + "item_id", "output_index", - "item_id" + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.file_search_call.completed" + "response.mcp_list_tools.completed" ], - "description": "The type of the event. Always `response.file_search_call.completed`." + "description": "The type of the event. Always 'response.mcp_list_tools.completed'.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the MCP tool call item that produced this output." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item that the file search call is initiated." + "description": "The index of the output item that was processed." }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the file search call is initiated." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18390,31 +31900,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a file search call is completed (results found)." + "description": "Emitted when the list of available MCP tools has been successfully retrieved.", + "title": "ResponseMCPListToolsCompletedEvent", + "x-oaiMeta": { + "name": "response.mcp_list_tools.completed", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_list_tools.completed\",\n \"sequence_number\": 1,\n \"output_index\": 0,\n \"item_id\": \"mcpl_682d4379df088191886b70f4ec39f90403937d5f622d7a90\"\n}\n" + } }, - "OpenAI.ResponseFileSearchCallInProgressEvent": { + "OpenAI.ResponseMCPListToolsFailedEvent": { "type": "object", "required": [ "type", + "item_id", "output_index", - "item_id" + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.file_search_call.in_progress" + "response.mcp_list_tools.failed" ], - "description": "The type of the event. Always `response.file_search_call.in_progress`." + "description": "The type of the event. Always 'response.mcp_list_tools.failed'.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the MCP tool call item that failed." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item that the file search call is initiated." + "description": "The index of the output item that failed." }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the file search call is initiated." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18422,31 +31943,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a file search call is initiated." + "description": "Emitted when the attempt to list available MCP tools has failed.", + "title": "ResponseMCPListToolsFailedEvent", + "x-oaiMeta": { + "name": "response.mcp_list_tools.failed", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_list_tools.failed\",\n \"sequence_number\": 1,\n \"output_index\": 0,\n \"item_id\": \"mcpl_682d4379df088191886b70f4ec39f90403937d5f622d7a90\"\n}\n" + } }, - "OpenAI.ResponseFileSearchCallSearchingEvent": { + "OpenAI.ResponseMCPListToolsInProgressEvent": { "type": "object", "required": [ "type", + "item_id", "output_index", - "item_id" + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.file_search_call.searching" + "response.mcp_list_tools.in_progress" ], - "description": "The type of the event. Always `response.file_search_call.searching`." + "description": "The type of the event. Always 'response.mcp_list_tools.in_progress'.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the MCP tool call item that is being processed." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item that the file search call is searching." + "description": "The index of the output item that is being processed." }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the file search call is initiated." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18454,160 +31986,280 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a file search is currently searching." + "description": "Emitted when the system is in the process of retrieving the list of available MCP tools.", + "title": "ResponseMCPListToolsInProgressEvent", + "x-oaiMeta": { + "name": "response.mcp_list_tools.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_list_tools.in_progress\",\n \"sequence_number\": 1,\n \"output_index\": 0,\n \"item_id\": \"mcpl_682d4379df088191886b70f4ec39f90403937d5f622d7a90\"\n}\n" + } + }, + "OpenAI.ResponseModalities": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "text", + "audio" + ] + } + }, + { + "type": "null" + } + ], + "description": "Output types that you would like the model to generate.\nMost models are capable of generating text, which is the default:\n\n`[\"text\"]`\n\nThe `gpt-4o-audio-preview` model can also be used to\n[generate audio](https://platform.openai.com/docs/guides/audio). To request that this model generate\nboth text and audio responses, you can use:\n\n`[\"text\", \"audio\"]`" }, - "OpenAI.ResponseFormat": { + "OpenAI.ResponseOutputItemAddedEvent": { "type": "object", "required": [ - "type" + "type", + "output_index", + "sequence_number", + "item" ], "properties": { "type": { "type": "string", "enum": [ - "text", - "json_object", - "json_schema" - ] + "response.output_item.added" + ], + "description": "The type of the event. Always `response.output_item.added`.", + "x-stainless-const": true + }, + "output_index": { + "type": "integer", + "description": "The index of the output item that was added." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "item": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ], + "description": "The output item that was added." } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "text": "#/components/schemas/OpenAI.ResponseFormatText", - "json_object": "#/components/schemas/OpenAI.ResponseFormatJsonObject", - "json_schema": "#/components/schemas/OpenAI.ResponseFormatJsonSchema" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } + ], + "description": "Emitted when a new output item is added.", + "x-oaiMeta": { + "name": "response.output_item.added", + "group": "responses", + "example": "{\n \"type\": \"response.output_item.added\",\n \"output_index\": 0,\n \"item\": {\n \"id\": \"msg_123\",\n \"status\": \"in_progress\",\n \"type\": \"message\",\n \"role\": \"assistant\",\n \"content\": []\n },\n \"sequence_number\": 1\n}\n" } }, - "OpenAI.ResponseFormatJsonObject": { + "OpenAI.ResponseOutputItemDoneEvent": { "type": "object", "required": [ - "type" + "type", + "output_index", + "sequence_number", + "item" ], "properties": { "type": { "type": "string", "enum": [ - "json_object" + "response.output_item.done" + ], + "description": "The type of the event. Always `response.output_item.done`.", + "x-stainless-const": true + }, + "output_index": { + "type": "integer", + "description": "The index of the output item that was marked done." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "item": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } ], - "description": "The type of response format being defined. Always `json_object`." + "description": "The output item that was marked done." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponseFormat" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "JSON object response format. An older method of generating JSON responses.\nUsing `json_schema` is recommended for models that support it. Note that the\nmodel will not generate JSON without a system or user message instructing it\nto do so." + "description": "Emitted when an output item is marked done.", + "x-oaiMeta": { + "name": "response.output_item.done", + "group": "responses", + "example": "{\n \"type\": \"response.output_item.done\",\n \"output_index\": 0,\n \"item\": {\n \"id\": \"msg_123\",\n \"status\": \"completed\",\n \"type\": \"message\",\n \"role\": \"assistant\",\n \"content\": [\n {\n \"type\": \"output_text\",\n \"text\": \"In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.\",\n \"annotations\": []\n }\n ]\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseFormatJsonSchema": { + "OpenAI.ResponseOutputTextAnnotationAddedEvent": { "type": "object", "required": [ "type", - "json_schema" + "item_id", + "output_index", + "content_index", + "annotation_index", + "sequence_number", + "annotation" ], "properties": { "type": { "type": "string", "enum": [ - "json_schema" + "response.output_text.annotation.added" ], - "description": "The type of response format being defined. Always `json_schema`." + "description": "The type of the event. Always 'response.output_text.annotation.added'.", + "x-stainless-const": true }, - "json_schema": { - "type": "object", - "properties": { - "description": { - "type": "string", - "description": "A description of what the response format is for, used by the model to\ndetermine how to respond in the format." - }, - "name": { - "type": "string", - "description": "The name of the response format. Must be a-z, A-Z, 0-9, or contain\nunderscores and dashes, with a maximum length of 64." - }, - "schema": { - "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema" - }, - "strict": { - "type": "boolean", - "nullable": true, - "description": "Whether to enable strict schema adherence when generating the output.\nIf set to true, the model will always follow the exact schema defined\nin the `schema` field. Only a subset of JSON Schema is supported when\n`strict` is `true`. To learn more, read the [Structured Outputs\nguide](/docs/guides/structured-outputs).", - "default": false + "item_id": { + "type": "string", + "description": "The unique identifier of the item to which the annotation is being added." + }, + "output_index": { + "type": "integer", + "description": "The index of the output item in the response's output array." + }, + "content_index": { + "type": "integer", + "description": "The index of the content part within the output item." + }, + "annotation_index": { + "type": "integer", + "description": "The index of the annotation within the content part." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "annotation": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseOutputTextAnnotationAddedEventAnnotation" } - }, - "required": [ - "name" ], - "description": "Structured Outputs configuration options, including a JSON Schema." + "description": "The annotation object being added. (See annotation schema for details.)" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponseFormat" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](/docs/guides/structured-outputs)." + "description": "Emitted when an annotation is added to output text content.", + "title": "ResponseOutputTextAnnotationAddedEvent", + "x-oaiMeta": { + "name": "response.output_text.annotation.added", + "group": "responses", + "example": "{\n \"type\": \"response.output_text.annotation.added\",\n \"item_id\": \"item-abc\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"annotation_index\": 0,\n \"annotation\": {\n \"type\": \"text_annotation\",\n \"text\": \"This is a test annotation\",\n \"start\": 0,\n \"end\": 10\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseFormatJsonSchemaSchema": { + "OpenAI.ResponseOutputTextAnnotationAddedEventAnnotation": { + "type": "object" + }, + "OpenAI.ResponsePromptVariables": { "type": "object", - "additionalProperties": {}, - "description": "The schema for the response format, described as a JSON Schema object.\nLearn how to build JSON schemas [here](https://json-schema.org/)." + "description": "Optional map of values to substitute in for variables in your\nprompt. The substitution values can either be strings, or other\nResponse input types like images or files.", + "title": "Prompt Variables", + "x-oaiExpandable": true, + "x-oaiTypeLabel": "map" }, - "OpenAI.ResponseFormatText": { + "OpenAI.ResponseQueuedEvent": { "type": "object", "required": [ - "type" + "type", + "response", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "text" + "response.queued" + ], + "description": "The type of the event. Always 'response.queued'.", + "x-stainless-const": true + }, + "response": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Response" + } ], - "description": "The type of response format being defined. Always `text`." + "description": "The full response object that is queued." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number for this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponseFormat" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Default response format. Used to generate text responses." + "description": "Emitted when a response is queued and waiting to be processed.", + "title": "ResponseQueuedEvent", + "x-oaiMeta": { + "name": "response.queued", + "group": "responses", + "example": "{\n \"type\": \"response.queued\",\n \"response\": {\n \"id\": \"res_123\",\n \"status\": \"queued\",\n \"created_at\": \"2021-01-01T00:00:00Z\",\n \"updated_at\": \"2021-01-01T00:00:00Z\"\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseFunctionCallArgumentsDeltaEvent": { + "OpenAI.ResponseReasoningSummaryPartAddedEvent": { "type": "object", "required": [ "type", "item_id", "output_index", - "delta", - "obfuscation" + "summary_index", + "sequence_number", + "part" ], "properties": { "type": { "type": "string", "enum": [ - "response.function_call_arguments.delta" + "response.reasoning_summary_part.added" ], - "description": "The type of the event. Always `response.function_call_arguments.delta`." + "description": "The type of the event. Always `response.reasoning_summary_part.added`.", + "x-stainless-const": true }, "item_id": { "type": "string", - "description": "The ID of the output item that the function-call arguments delta is added to." + "description": "The ID of the item this summary part is associated with." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item that the function-call arguments delta is added to." + "description": "The index of the output item this summary part is associated with." }, - "delta": { - "type": "string", - "description": "The function-call arguments delta that is added." + "summary_index": { + "type": "integer", + "description": "The index of the summary part within the reasoning summary." }, - "obfuscation": { - "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "part": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseReasoningSummaryPartAddedEventPart" + } + ], + "description": "The summary part that was added." } }, "allOf": [ @@ -18615,35 +32267,74 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when there is a partial function-call arguments delta." + "description": "Emitted when a new reasoning summary part is added.", + "x-oaiMeta": { + "name": "response.reasoning_summary_part.added", + "group": "responses", + "example": "{\n \"type\": \"response.reasoning_summary_part.added\",\n \"item_id\": \"rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476\",\n \"output_index\": 0,\n \"summary_index\": 0,\n \"part\": {\n \"type\": \"summary_text\",\n \"text\": \"\"\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseFunctionCallArgumentsDoneEvent": { + "OpenAI.ResponseReasoningSummaryPartAddedEventPart": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "summary_text" + ], + "x-stainless-const": true + }, + "text": { + "type": "string" + } + } + }, + "OpenAI.ResponseReasoningSummaryPartDoneEvent": { "type": "object", "required": [ "type", "item_id", "output_index", - "arguments" + "summary_index", + "sequence_number", + "part" ], "properties": { "type": { "type": "string", "enum": [ - "response.function_call_arguments.done" - ] + "response.reasoning_summary_part.done" + ], + "description": "The type of the event. Always `response.reasoning_summary_part.done`.", + "x-stainless-const": true }, "item_id": { "type": "string", - "description": "The ID of the item." + "description": "The ID of the item this summary part is associated with." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item." + "description": "The index of the output item this summary part is associated with." }, - "arguments": { - "type": "string", - "description": "The function-call arguments." + "summary_index": { + "type": "integer", + "description": "The index of the summary part within the reasoning summary." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "part": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseReasoningSummaryPartDoneEventPart" + } + ], + "description": "The completed summary part." } }, "allOf": [ @@ -18651,31 +32342,70 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when function-call arguments are finalized." + "description": "Emitted when a reasoning summary part is completed.", + "x-oaiMeta": { + "name": "response.reasoning_summary_part.done", + "group": "responses", + "example": "{\n \"type\": \"response.reasoning_summary_part.done\",\n \"item_id\": \"rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476\",\n \"output_index\": 0,\n \"summary_index\": 0,\n \"part\": {\n \"type\": \"summary_text\",\n \"text\": \"**Responding to a greeting**\\n\\nThe user just said, \\\"Hello!\\\" So, it seems I need to engage. I'll greet them back and offer help since they're looking to chat. I could say something like, \\\"Hello! How can I assist you today?\\\" That feels friendly and open. They didn't ask a specific question, so this approach will work well for starting a conversation. Let's see where it goes from there!\"\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseImageGenCallCompletedEvent": { + "OpenAI.ResponseReasoningSummaryPartDoneEventPart": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "summary_text" + ], + "x-stainless-const": true + }, + "text": { + "type": "string" + } + } + }, + "OpenAI.ResponseReasoningSummaryTextDeltaEvent": { "type": "object", "required": [ "type", + "item_id", "output_index", - "item_id" + "summary_index", + "delta", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.image_generation_call.completed" + "response.reasoning_summary_text.delta" ], - "description": "The type of the event. Always 'response.image_generation_call.completed'." + "description": "The type of the event. Always `response.reasoning_summary_text.delta`.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the item this summary text delta is associated with." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "description": "The index of the output item this summary text delta is associated with." }, - "item_id": { + "summary_index": { + "type": "integer", + "description": "The index of the summary part within the reasoning summary." + }, + "delta": { "type": "string", - "description": "The unique identifier of the image generation item being processed." + "description": "The text delta that was added to the summary." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18683,31 +32413,51 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when an image generation tool call has completed and the final image is available." + "description": "Emitted when a delta is added to a reasoning summary text.", + "x-oaiMeta": { + "name": "response.reasoning_summary_text.delta", + "group": "responses", + "example": "{\n \"type\": \"response.reasoning_summary_text.delta\",\n \"item_id\": \"rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476\",\n \"output_index\": 0,\n \"summary_index\": 0,\n \"delta\": \"**Responding to a greeting**\\n\\nThe user just said, \\\"Hello!\\\" So, it seems I need to engage. I'll greet them back and offer help since they're looking to chat. I could say something like, \\\"Hello! How can I assist you today?\\\" That feels friendly and open. They didn't ask a specific question, so this approach will work well for starting a conversation. Let's see where it goes from there!\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseImageGenCallGeneratingEvent": { + "OpenAI.ResponseReasoningSummaryTextDoneEvent": { "type": "object", "required": [ "type", + "item_id", "output_index", - "item_id" + "summary_index", + "text", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.image_generation_call.generating" + "response.reasoning_summary_text.done" ], - "description": "The type of the event. Always 'response.image_generation_call.generating'." + "description": "The type of the event. Always `response.reasoning_summary_text.done`.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the item this summary text is associated with." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "description": "The index of the output item this summary text is associated with." }, - "item_id": { + "summary_index": { + "type": "integer", + "description": "The index of the summary part within the reasoning summary." + }, + "text": { "type": "string", - "description": "The unique identifier of the image generation item being processed." + "description": "The full text of the completed reasoning summary." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18715,31 +32465,51 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when an image generation tool call is actively generating an image (intermediate state)." + "description": "Emitted when a reasoning summary text is completed.", + "x-oaiMeta": { + "name": "response.reasoning_summary_text.done", + "group": "responses", + "example": "{\n \"type\": \"response.reasoning_summary_text.done\",\n \"item_id\": \"rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476\",\n \"output_index\": 0,\n \"summary_index\": 0,\n \"text\": \"**Responding to a greeting**\\n\\nThe user just said, \\\"Hello!\\\" So, it seems I need to engage. I'll greet them back and offer help since they're looking to chat. I could say something like, \\\"Hello! How can I assist you today?\\\" That feels friendly and open. They didn't ask a specific question, so this approach will work well for starting a conversation. Let's see where it goes from there!\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseImageGenCallInProgressEvent": { + "OpenAI.ResponseReasoningTextDeltaEvent": { "type": "object", "required": [ "type", + "item_id", "output_index", - "item_id" + "content_index", + "delta", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.image_generation_call.in_progress" + "response.reasoning_text.delta" ], - "description": "The type of the event. Always 'response.image_generation_call.in_progress'." + "description": "The type of the event. Always `response.reasoning_text.delta`.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the item this reasoning text delta is associated with." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "description": "The index of the output item this reasoning text delta is associated with." + }, + "content_index": { + "type": "integer", + "description": "The index of the reasoning content part this delta is associated with." }, - "item_id": { + "delta": { "type": "string", - "description": "The unique identifier of the image generation item being processed." + "description": "The text delta that was added to the reasoning content." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18747,42 +32517,51 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when an image generation tool call is in progress." + "description": "Emitted when a delta is added to a reasoning text.", + "x-oaiMeta": { + "name": "response.reasoning_text.delta", + "group": "responses", + "example": "{\n \"type\": \"response.reasoning_text.delta\",\n \"item_id\": \"rs_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"delta\": \"The\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseImageGenCallPartialImageEvent": { + "OpenAI.ResponseReasoningTextDoneEvent": { "type": "object", "required": [ "type", - "output_index", "item_id", - "partial_image_index", - "partial_image_b64" + "output_index", + "content_index", + "text", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.image_generation_call.partial_image" + "response.reasoning_text.done" ], - "description": "The type of the event. Always 'response.image_generation_call.partial_image'." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "description": "The type of the event. Always `response.reasoning_text.done`.", + "x-stainless-const": true }, "item_id": { "type": "string", - "description": "The unique identifier of the image generation item being processed." + "description": "The ID of the item this reasoning text is associated with." }, - "partial_image_index": { + "output_index": { "type": "integer", - "format": "int32", - "description": "0-based index for the partial image (backend is 1-based, but this is 0-based for the user)." + "description": "The index of the output item this reasoning text is associated with." }, - "partial_image_b64": { + "content_index": { + "type": "integer", + "description": "The index of the reasoning content part." + }, + "text": { "type": "string", - "description": "Base64-encoded partial image data, suitable for rendering as an image." + "description": "The full text of the completed reasoning content." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18790,29 +32569,51 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a partial image is available during image generation streaming." + "description": "Emitted when a reasoning text is completed.", + "x-oaiMeta": { + "name": "response.reasoning_text.done", + "group": "responses", + "example": "{\n \"type\": \"response.reasoning_text.done\",\n \"item_id\": \"rs_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"text\": \"The user is asking...\",\n \"sequence_number\": 4\n}\n" + } }, - "OpenAI.ResponseInProgressEvent": { + "OpenAI.ResponseRefusalDeltaEvent": { "type": "object", "required": [ "type", - "response" + "item_id", + "output_index", + "content_index", + "delta", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.in_progress" + "response.refusal.delta" ], - "description": "The type of the event. Always `response.in_progress`." + "description": "The type of the event. Always `response.refusal.delta`.", + "x-stainless-const": true }, - "response": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Response" - } - ], - "description": "The response that is in progress." + "item_id": { + "type": "string", + "description": "The ID of the output item that the refusal text is added to." + }, + "output_index": { + "type": "integer", + "description": "The index of the output item that the refusal text is added to." + }, + "content_index": { + "type": "integer", + "description": "The index of the content part that the refusal text is added to." + }, + "delta": { + "type": "string", + "description": "The refusal text that is added." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18820,29 +32621,51 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the response is in progress." + "description": "Emitted when there is a partial refusal text.", + "x-oaiMeta": { + "name": "response.refusal.delta", + "group": "responses", + "example": "{\n \"type\": \"response.refusal.delta\",\n \"item_id\": \"msg_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"delta\": \"refusal text so far\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseIncompleteEvent": { + "OpenAI.ResponseRefusalDoneEvent": { "type": "object", "required": [ "type", - "response" + "item_id", + "output_index", + "content_index", + "refusal", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.incomplete" + "response.refusal.done" ], - "description": "The type of the event. Always `response.incomplete`." + "description": "The type of the event. Always `response.refusal.done`.", + "x-stainless-const": true }, - "response": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Response" - } - ], - "description": "The response that was incomplete." + "item_id": { + "type": "string", + "description": "The ID of the output item that the refusal text is finalized." + }, + "output_index": { + "type": "integer", + "description": "The index of the output item that the refusal text is finalized." + }, + "content_index": { + "type": "integer", + "description": "The index of the content part that the refusal text is finalized." + }, + "refusal": { + "type": "string", + "description": "The refusal text that is finalized." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18850,157 +32673,203 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "An event that is emitted when a response finishes as incomplete." + "description": "Emitted when refusal text is finalized.", + "x-oaiMeta": { + "name": "response.refusal.done", + "group": "responses", + "example": "{\n \"type\": \"response.refusal.done\",\n \"item_id\": \"item-abc\",\n \"output_index\": 1,\n \"content_index\": 2,\n \"refusal\": \"final refusal text\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseItemList": { + "OpenAI.ResponseStreamEvent": { "type": "object", "required": [ - "object", - "data", - "has_more", - "first_id", - "last_id" + "type" ], "properties": { - "object": { - "type": "string", - "enum": [ - "list" - ], - "description": "The type of object returned, must be `list`." - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemResource" - }, - "description": "A list of items used to generate this response." - }, - "has_more": { - "type": "boolean", - "description": "Whether there are more items available." - }, - "first_id": { - "type": "string", - "description": "The ID of the first item in the list." - }, - "last_id": { - "type": "string", - "description": "The ID of the last item in the list." + "type": { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEventType" } }, - "description": "A list of Response items." + "discriminator": { + "propertyName": "type", + "mapping": { + "response.audio.delta": "#/components/schemas/OpenAI.ResponseAudioDeltaEvent", + "response.audio.done": "#/components/schemas/OpenAI.ResponseAudioDoneEvent", + "response.audio.transcript.delta": "#/components/schemas/OpenAI.ResponseAudioTranscriptDeltaEvent", + "response.audio.transcript.done": "#/components/schemas/OpenAI.ResponseAudioTranscriptDoneEvent", + "response.code_interpreter_call_code.delta": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent", + "response.code_interpreter_call_code.done": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDoneEvent", + "response.code_interpreter_call.completed": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallCompletedEvent", + "response.code_interpreter_call.in_progress": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallInProgressEvent", + "response.code_interpreter_call.interpreting": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallInterpretingEvent", + "response.completed": "#/components/schemas/OpenAI.ResponseCompletedEvent", + "response.content_part.added": "#/components/schemas/OpenAI.ResponseContentPartAddedEvent", + "response.content_part.done": "#/components/schemas/OpenAI.ResponseContentPartDoneEvent", + "response.created": "#/components/schemas/OpenAI.ResponseCreatedEvent", + "response.custom_tool_call_input.delta": "#/components/schemas/OpenAI.ResponseCustomToolCallInputDeltaEvent", + "response.custom_tool_call_input.done": "#/components/schemas/OpenAI.ResponseCustomToolCallInputDoneEvent", + "error": "#/components/schemas/OpenAI.ResponseErrorEvent", + "response.failed": "#/components/schemas/OpenAI.ResponseFailedEvent", + "response.file_search_call.completed": "#/components/schemas/OpenAI.ResponseFileSearchCallCompletedEvent", + "response.file_search_call.in_progress": "#/components/schemas/OpenAI.ResponseFileSearchCallInProgressEvent", + "response.file_search_call.searching": "#/components/schemas/OpenAI.ResponseFileSearchCallSearchingEvent", + "response.function_call_arguments.delta": "#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDeltaEvent", + "response.function_call_arguments.done": "#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDoneEvent", + "response.image_generation_call.completed": "#/components/schemas/OpenAI.ResponseImageGenCallCompletedEvent", + "response.image_generation_call.generating": "#/components/schemas/OpenAI.ResponseImageGenCallGeneratingEvent", + "response.image_generation_call.in_progress": "#/components/schemas/OpenAI.ResponseImageGenCallInProgressEvent", + "response.image_generation_call.partial_image": "#/components/schemas/OpenAI.ResponseImageGenCallPartialImageEvent", + "response.in_progress": "#/components/schemas/OpenAI.ResponseInProgressEvent", + "response.incomplete": "#/components/schemas/OpenAI.ResponseIncompleteEvent", + "response.mcp_call_arguments.delta": "#/components/schemas/OpenAI.ResponseMCPCallArgumentsDeltaEvent", + "response.mcp_call_arguments.done": "#/components/schemas/OpenAI.ResponseMCPCallArgumentsDoneEvent", + "response.mcp_call.completed": "#/components/schemas/OpenAI.ResponseMCPCallCompletedEvent", + "response.mcp_call.failed": "#/components/schemas/OpenAI.ResponseMCPCallFailedEvent", + "response.mcp_call.in_progress": "#/components/schemas/OpenAI.ResponseMCPCallInProgressEvent", + "response.mcp_list_tools.completed": "#/components/schemas/OpenAI.ResponseMCPListToolsCompletedEvent", + "response.mcp_list_tools.failed": "#/components/schemas/OpenAI.ResponseMCPListToolsFailedEvent", + "response.mcp_list_tools.in_progress": "#/components/schemas/OpenAI.ResponseMCPListToolsInProgressEvent", + "response.output_item.added": "#/components/schemas/OpenAI.ResponseOutputItemAddedEvent", + "response.output_item.done": "#/components/schemas/OpenAI.ResponseOutputItemDoneEvent", + "response.output_text.annotation.added": "#/components/schemas/OpenAI.ResponseOutputTextAnnotationAddedEvent", + "response.queued": "#/components/schemas/OpenAI.ResponseQueuedEvent", + "response.reasoning_summary_part.added": "#/components/schemas/OpenAI.ResponseReasoningSummaryPartAddedEvent", + "response.reasoning_summary_part.done": "#/components/schemas/OpenAI.ResponseReasoningSummaryPartDoneEvent", + "response.reasoning_summary_text.delta": "#/components/schemas/OpenAI.ResponseReasoningSummaryTextDeltaEvent", + "response.reasoning_summary_text.done": "#/components/schemas/OpenAI.ResponseReasoningSummaryTextDoneEvent", + "response.reasoning_text.delta": "#/components/schemas/OpenAI.ResponseReasoningTextDeltaEvent", + "response.reasoning_text.done": "#/components/schemas/OpenAI.ResponseReasoningTextDoneEvent", + "response.refusal.delta": "#/components/schemas/OpenAI.ResponseRefusalDeltaEvent", + "response.refusal.done": "#/components/schemas/OpenAI.ResponseRefusalDoneEvent", + "response.output_text.delta": "#/components/schemas/OpenAI.ResponseTextDeltaEvent", + "response.output_text.done": "#/components/schemas/OpenAI.ResponseTextDoneEvent", + "response.web_search_call.completed": "#/components/schemas/OpenAI.ResponseWebSearchCallCompletedEvent", + "response.web_search_call.in_progress": "#/components/schemas/OpenAI.ResponseWebSearchCallInProgressEvent", + "response.web_search_call.searching": "#/components/schemas/OpenAI.ResponseWebSearchCallSearchingEvent" + } + } }, - "OpenAI.ResponseMCPCallArgumentsDeltaEvent": { - "type": "object", - "required": [ - "type", - "output_index", - "item_id", - "delta", - "obfuscation" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "response.mcp_call.arguments_delta" - ], - "description": "The type of the event. Always 'response.mcp_call.arguments_delta'." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." - }, - "item_id": { - "type": "string", - "description": "The unique identifier of the MCP tool call item being processed." - }, - "delta": { - "description": "The partial update to the arguments for the MCP tool call." + "OpenAI.ResponseStreamEventType": { + "anyOf": [ + { + "type": "string" }, - "obfuscation": { + { "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." + "enum": [ + "response.audio.delta", + "response.audio.done", + "response.audio.transcript.delta", + "response.audio.transcript.done", + "response.code_interpreter_call_code.delta", + "response.code_interpreter_call_code.done", + "response.code_interpreter_call.completed", + "response.code_interpreter_call.in_progress", + "response.code_interpreter_call.interpreting", + "response.completed", + "response.content_part.added", + "response.content_part.done", + "response.created", + "error", + "response.file_search_call.completed", + "response.file_search_call.in_progress", + "response.file_search_call.searching", + "response.function_call_arguments.delta", + "response.function_call_arguments.done", + "response.in_progress", + "response.failed", + "response.incomplete", + "response.output_item.added", + "response.output_item.done", + "response.reasoning_summary_part.added", + "response.reasoning_summary_part.done", + "response.reasoning_summary_text.delta", + "response.reasoning_summary_text.done", + "response.reasoning_text.delta", + "response.reasoning_text.done", + "response.refusal.delta", + "response.refusal.done", + "response.output_text.delta", + "response.output_text.done", + "response.web_search_call.completed", + "response.web_search_call.in_progress", + "response.web_search_call.searching", + "response.image_generation_call.completed", + "response.image_generation_call.generating", + "response.image_generation_call.in_progress", + "response.image_generation_call.partial_image", + "response.mcp_call_arguments.delta", + "response.mcp_call_arguments.done", + "response.mcp_call.completed", + "response.mcp_call.failed", + "response.mcp_call.in_progress", + "response.mcp_list_tools.completed", + "response.mcp_list_tools.failed", + "response.mcp_list_tools.in_progress", + "response.output_text.annotation.added", + "response.queued", + "response.custom_tool_call_input.delta", + "response.custom_tool_call_input.done" + ] } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + ] + }, + "OpenAI.ResponseStreamOptions": { + "type": "object", + "properties": { + "include_obfuscation": { + "type": "boolean", + "description": "When true, stream obfuscation will be enabled. Stream obfuscation adds\n random characters to an `obfuscation` field on streaming delta events to\n normalize payload sizes as a mitigation to certain side-channel attacks.\n These obfuscation fields are included by default, but add a small amount\n of overhead to the data stream. You can set `include_obfuscation` to\n false to optimize for bandwidth if you trust the network links between\n your application and the OpenAI API." } - ], - "description": "Emitted when there is a delta (partial update) to the arguments of an MCP tool call." + }, + "description": "Options for streaming responses. Only set this when you set `stream: true`." }, - "OpenAI.ResponseMCPCallArgumentsDoneEvent": { + "OpenAI.ResponseTextDeltaEvent": { "type": "object", "required": [ "type", - "output_index", "item_id", - "arguments" + "output_index", + "content_index", + "delta", + "sequence_number", + "logprobs" ], "properties": { "type": { "type": "string", "enum": [ - "response.mcp_call.arguments_done" + "response.output_text.delta" ], - "description": "The type of the event. Always 'response.mcp_call.arguments_done'." + "description": "The type of the event. Always `response.output_text.delta`.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the output item that the text delta was added to." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "description": "The index of the output item that the text delta was added to." }, - "item_id": { - "type": "string", - "description": "The unique identifier of the MCP tool call item being processed." + "content_index": { + "type": "integer", + "description": "The index of the content part that the text delta was added to." }, - "arguments": { - "description": "The finalized arguments for the MCP tool call." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when the arguments for an MCP tool call are finalized." - }, - "OpenAI.ResponseMCPCallCompletedEvent": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "response.mcp_call.completed" - ], - "description": "The type of the event. Always 'response.mcp_call.completed'." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when an MCP tool call has completed successfully." - }, - "OpenAI.ResponseMCPCallFailedEvent": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { + "delta": { "type": "string", - "enum": [ - "response.mcp_call.failed" - ], - "description": "The type of the event. Always 'response.mcp_call.failed'." + "description": "The text delta that was added." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number for this event." + }, + "logprobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ResponseLogProb" + }, + "description": "The log probabilities of the tokens in the delta." } }, "allOf": [ @@ -19008,73 +32877,59 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when an MCP tool call has failed." + "description": "Emitted when there is an additional text delta.", + "x-oaiMeta": { + "name": "response.output_text.delta", + "group": "responses", + "example": "{\n \"type\": \"response.output_text.delta\",\n \"item_id\": \"msg_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"delta\": \"In\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseMCPCallInProgressEvent": { + "OpenAI.ResponseTextDoneEvent": { "type": "object", "required": [ "type", + "item_id", "output_index", - "item_id" + "content_index", + "text", + "sequence_number", + "logprobs" ], "properties": { "type": { "type": "string", "enum": [ - "response.mcp_call.in_progress" + "response.output_text.done" ], - "description": "The type of the event. Always 'response.mcp_call.in_progress'." + "description": "The type of the event. Always `response.output_text.done`.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the output item that the text content is finalized." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "description": "The index of the output item that the text content is finalized." }, - "item_id": { - "type": "string", - "description": "The unique identifier of the MCP tool call item being processed." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when an MCP tool call is in progress." - }, - "OpenAI.ResponseMCPListToolsCompletedEvent": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "response.mcp_list_tools.completed" - ], - "description": "The type of the event. Always 'response.mcp_list_tools.completed'." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when the list of available MCP tools has been successfully retrieved." - }, - "OpenAI.ResponseMCPListToolsFailedEvent": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { + "content_index": { + "type": "integer", + "description": "The index of the content part that the text content is finalized." + }, + "text": { "type": "string", - "enum": [ - "response.mcp_list_tools.failed" - ], - "description": "The type of the event. Always 'response.mcp_list_tools.failed'." + "description": "The text content that is finalized." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number for this event." + }, + "logprobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ResponseLogProb" + }, + "description": "The log probabilities of the tokens in the delta." } }, "allOf": [ @@ -19082,131 +32937,116 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the attempt to list available MCP tools has failed." + "description": "Emitted when text content is finalized.", + "x-oaiMeta": { + "name": "response.output_text.done", + "group": "responses", + "example": "{\n \"type\": \"response.output_text.done\",\n \"item_id\": \"msg_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"text\": \"In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseMCPListToolsInProgressEvent": { + "OpenAI.ResponseTextParam": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "response.mcp_list_tools.in_progress" - ], - "description": "The type of the event. Always 'response.mcp_list_tools.in_progress'." + "format": { + "$ref": "#/components/schemas/OpenAI.TextResponseFormatConfiguration" + }, + "verbosity": { + "$ref": "#/components/schemas/OpenAI.Verbosity" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when the system is in the process of retrieving the list of available MCP tools." + "description": "Configuration options for a text response from the model. Can be plain\ntext or structured JSON data. Learn more:\n- [Text inputs and outputs](https://platform.openai.com/docs/guides/text)\n- [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)" }, - "OpenAI.ResponseOutputItemAddedEvent": { + "OpenAI.ResponseUsage": { "type": "object", "required": [ - "type", - "output_index", - "item" + "input_tokens", + "input_tokens_details", + "output_tokens", + "output_tokens_details", + "total_tokens" ], "properties": { - "type": { - "type": "string", - "enum": [ - "response.output_item.added" - ], - "description": "The type of the event. Always `response.output_item.added`." - }, - "output_index": { + "input_tokens": { "type": "integer", - "format": "int32", - "description": "The index of the output item that was added." + "description": "The number of input tokens." }, - "item": { + "input_tokens_details": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseUsageInputTokensDetails" } ], - "description": "The output item that was added." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when a new output item is added." - }, - "OpenAI.ResponseOutputItemDoneEvent": { - "type": "object", - "required": [ - "type", - "output_index", - "item" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "response.output_item.done" - ], - "description": "The type of the event. Always `response.output_item.done`." + "description": "A detailed breakdown of the input tokens." }, - "output_index": { + "output_tokens": { "type": "integer", - "format": "int32", - "description": "The index of the output item that was marked done." + "description": "The number of output tokens." }, - "item": { + "output_tokens_details": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseUsageOutputTokensDetails" } ], - "description": "The output item that was marked done." + "description": "A detailed breakdown of the output tokens." + }, + "total_tokens": { + "type": "integer", + "description": "The total number of tokens used." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } + "description": "Represents token usage details including input tokens, output tokens,\na breakdown of output tokens, and the total tokens used." + }, + "OpenAI.ResponseUsageInputTokensDetails": { + "type": "object", + "required": [ + "cached_tokens" ], - "description": "Emitted when an output item is marked done." + "properties": { + "cached_tokens": { + "type": "integer" + } + } }, - "OpenAI.ResponsePromptVariables": { + "OpenAI.ResponseUsageOutputTokensDetails": { "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/OpenAI.ItemParam" - }, - "description": "Optional map of values to substitute in for variables in your\nprompt. The substitution values can either be strings, or other\nResponse input types like images or files.", - "x-oaiExpandable": true, - "x-oaiTypeLabel": "map" + "required": [ + "reasoning_tokens" + ], + "properties": { + "reasoning_tokens": { + "type": "integer" + } + } }, - "OpenAI.ResponseQueuedEvent": { + "OpenAI.ResponseWebSearchCallCompletedEvent": { "type": "object", "required": [ "type", - "response" + "output_index", + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.queued" + "response.web_search_call.completed" ], - "description": "The type of the event. Always 'response.queued'." + "description": "The type of the event. Always `response.web_search_call.completed`.", + "x-stainless-const": true }, - "response": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Response" - } - ], - "description": "The full response object that is queued." + "output_index": { + "type": "integer", + "description": "The index of the output item that the web search call is associated with." + }, + "item_id": { + "type": "string", + "description": "Unique ID for the output item associated with the web search call." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of the web search call being processed." } }, "allOf": [ @@ -19214,46 +33054,41 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a response is queued and waiting to be processed." + "description": "Note: web_search is not yet available via Azure OpenAI.", + "x-oaiMeta": { + "name": "response.web_search_call.completed", + "group": "responses", + "example": "{\n \"type\": \"response.web_search_call.completed\",\n \"output_index\": 0,\n \"item_id\": \"ws_123\",\n \"sequence_number\": 0\n}\n" + } }, - "OpenAI.ResponseReasoningDeltaEvent": { + "OpenAI.ResponseWebSearchCallInProgressEvent": { "type": "object", "required": [ "type", - "item_id", "output_index", - "content_index", - "delta", - "obfuscation" + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.reasoning.delta" + "response.web_search_call.in_progress" ], - "description": "The type of the event. Always 'response.reasoning.delta'." - }, - "item_id": { - "type": "string", - "description": "The unique identifier of the item for which reasoning is being updated." + "description": "The type of the event. Always `response.web_search_call.in_progress`.", + "x-stainless-const": true }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." - }, - "content_index": { - "type": "integer", - "format": "int32", - "description": "The index of the reasoning content part within the output item." - }, - "delta": { - "description": "The partial update to the reasoning content." + "description": "The index of the output item that the web search call is associated with." }, - "obfuscation": { + "item_id": { "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." + "description": "Unique ID for the output item associated with the web search call." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of the web search call being processed." } }, "allOf": [ @@ -19261,42 +33096,41 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when there is a delta (partial update) to the reasoning content." + "description": "Note: web_search is not yet available via Azure OpenAI.", + "x-oaiMeta": { + "name": "response.web_search_call.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.web_search_call.in_progress\",\n \"output_index\": 0,\n \"item_id\": \"ws_123\",\n \"sequence_number\": 0\n}\n" + } }, - "OpenAI.ResponseReasoningDoneEvent": { + "OpenAI.ResponseWebSearchCallSearchingEvent": { "type": "object", "required": [ "type", - "item_id", "output_index", - "content_index", - "text" + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.reasoning.done" + "response.web_search_call.searching" ], - "description": "The type of the event. Always 'response.reasoning.done'." - }, - "item_id": { - "type": "string", - "description": "The unique identifier of the item for which reasoning is finalized." + "description": "The type of the event. Always `response.web_search_call.searching`.", + "x-stainless-const": true }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." - }, - "content_index": { - "type": "integer", - "format": "int32", - "description": "The index of the reasoning content part within the output item." + "description": "The index of the output item that the web search call is associated with." }, - "text": { + "item_id": { "type": "string", - "description": "The finalized reasoning text." + "description": "Unique ID for the output item associated with the web search call." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of the web search call being processed." } }, "allOf": [ @@ -19304,1431 +33138,1785 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the reasoning content is finalized for an item." + "description": "Note: web_search is not yet available via Azure OpenAI.", + "x-oaiMeta": { + "name": "response.web_search_call.searching", + "group": "responses", + "example": "{\n \"type\": \"response.web_search_call.searching\",\n \"output_index\": 0,\n \"item_id\": \"ws_123\",\n \"sequence_number\": 0\n}\n" + } }, - "OpenAI.ResponseReasoningSummaryDeltaEvent": { + "OpenAI.RunCompletionUsage": { "type": "object", "required": [ - "type", - "item_id", - "output_index", - "summary_index", - "delta", - "obfuscation" + "completion_tokens", + "prompt_tokens", + "total_tokens" ], "properties": { - "type": { - "type": "string", - "enum": [ - "response.reasoning_summary.delta" - ], - "description": "The type of the event. Always 'response.reasoning_summary.delta'." - }, - "item_id": { - "type": "string", - "description": "The unique identifier of the item for which the reasoning summary is being updated." + "completion_tokens": { + "type": "integer", + "description": "Number of completion tokens used over the course of the run." }, - "output_index": { + "prompt_tokens": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "description": "Number of prompt tokens used over the course of the run." }, - "summary_index": { + "total_tokens": { "type": "integer", - "format": "int32", - "description": "The index of the summary part within the output item." + "description": "Total number of tokens used (prompt + completion)." + } + }, + "description": "Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.)." + }, + "OpenAI.RunGraderRequest": { + "type": "object", + "required": [ + "grader", + "model_sample" + ], + "properties": { + "grader": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.GraderStringCheck" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderPython" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderScoreModel" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderMulti" + }, + { + "$ref": "#/components/schemas/GraderEndpoint" + } + ], + "description": "The grader used for the fine-tuning job." }, - "delta": { - "description": "The partial update to the reasoning summary content." + "item": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunGraderRequestItem" + } + ], + "description": "The dataset item provided to the grader. This will be used to populate\n the `item` namespace. See [the guide](https://platform.openai.com/docs/guides/graders) for more details." }, - "obfuscation": { + "model_sample": { "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." + "description": "The model sample to be evaluated. This value will be used to populate\n the `sample` namespace. See [the guide](https://platform.openai.com/docs/guides/graders) for more details.\n The `output_json` variable will be populated if the model sample is a\n valid JSON string." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } + "title": "RunGraderRequest" + }, + "OpenAI.RunGraderRequestItem": { + "type": "object" + }, + "OpenAI.RunGraderResponse": { + "type": "object", + "required": [ + "reward", + "metadata", + "sub_rewards", + "model_grader_token_usage_per_model" ], - "description": "Emitted when there is a delta (partial update) to the reasoning summary content." + "properties": { + "reward": { + "type": "number" + }, + "metadata": { + "$ref": "#/components/schemas/OpenAI.RunGraderResponseMetadata" + }, + "sub_rewards": { + "type": "object", + "unevaluatedProperties": {} + }, + "model_grader_token_usage_per_model": { + "type": "object", + "unevaluatedProperties": {} + } + } }, - "OpenAI.ResponseReasoningSummaryDoneEvent": { + "OpenAI.RunGraderResponseMetadata": { "type": "object", "required": [ + "name", "type", - "item_id", - "output_index", - "summary_index", - "text" + "errors", + "execution_time", + "scores", + "token_usage", + "sampled_model_name" ], "properties": { + "name": { + "type": "string" + }, "type": { - "type": "string", - "enum": [ - "response.reasoning_summary.done" - ], - "description": "The type of the event. Always 'response.reasoning_summary.done'." + "type": "string" }, - "item_id": { - "type": "string", - "description": "The unique identifier of the item for which the reasoning summary is finalized." + "errors": { + "$ref": "#/components/schemas/OpenAI.RunGraderResponseMetadataErrors" }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "execution_time": { + "type": "number" }, - "summary_index": { - "type": "integer", - "format": "int32", - "description": "The index of the summary part within the output item." + "scores": { + "type": "object", + "unevaluatedProperties": {} }, - "text": { - "type": "string", - "description": "The finalized reasoning summary text." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + "token_usage": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "sampled_model_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } + } + }, + "OpenAI.RunGraderResponseMetadataErrors": { + "type": "object", + "required": [ + "formula_parse_error", + "sample_parse_error", + "truncated_observation_error", + "unresponsive_reward_error", + "invalid_variable_error", + "other_error", + "python_grader_server_error", + "python_grader_server_error_type", + "python_grader_runtime_error", + "python_grader_runtime_error_details", + "model_grader_server_error", + "model_grader_refusal_error", + "model_grader_parse_error", + "model_grader_server_error_details" ], - "description": "Emitted when the reasoning summary content is finalized for an item." + "properties": { + "formula_parse_error": { + "type": "boolean" + }, + "sample_parse_error": { + "type": "boolean" + }, + "truncated_observation_error": { + "type": "boolean" + }, + "unresponsive_reward_error": { + "type": "boolean" + }, + "invalid_variable_error": { + "type": "boolean" + }, + "other_error": { + "type": "boolean" + }, + "python_grader_server_error": { + "type": "boolean" + }, + "python_grader_server_error_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "python_grader_runtime_error": { + "type": "boolean" + }, + "python_grader_runtime_error_details": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "model_grader_server_error": { + "type": "boolean" + }, + "model_grader_refusal_error": { + "type": "boolean" + }, + "model_grader_parse_error": { + "type": "boolean" + }, + "model_grader_server_error_details": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + } }, - "OpenAI.ResponseReasoningSummaryPartAddedEvent": { + "OpenAI.RunObject": { "type": "object", "required": [ - "type", - "item_id", - "output_index", - "summary_index", - "part" + "id", + "object", + "created_at", + "thread_id", + "assistant_id", + "status", + "required_action", + "last_error", + "expires_at", + "started_at", + "cancelled_at", + "failed_at", + "completed_at", + "incomplete_details", + "model", + "instructions", + "tools", + "metadata", + "usage", + "max_prompt_tokens", + "max_completion_tokens", + "truncation_strategy", + "tool_choice", + "parallel_tool_calls", + "response_format" ], "properties": { - "type": { + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "object": { "type": "string", "enum": [ - "response.reasoning_summary_part.added" + "thread.run" ], - "description": "The type of the event. Always `response.reasoning_summary_part.added`." + "description": "The object type, which is always `thread.run`.", + "x-stainless-const": true }, - "item_id": { + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the run was created." + }, + "thread_id": { "type": "string", - "description": "The ID of the item this summary part is associated with." + "description": "The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run." }, - "output_index": { + "assistant_id": { + "type": "string", + "description": "The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run." + }, + "status": { + "$ref": "#/components/schemas/OpenAI.RunStatus" + }, + "required_action": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunObjectRequiredAction" + }, + { + "type": "null" + } + ], + "description": "Details on the action required to continue the run. Will be `null` if no action is required." + }, + "last_error": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunObjectLastError" + }, + { + "type": "null" + } + ], + "description": "The last error associated with this run. Will be `null` if there are no errors." + }, + "expires_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], "type": "integer", - "format": "int32", - "description": "The index of the output item this summary part is associated with." + "format": "unixTimestamp", + "description": "The Unix timestamp (in seconds) for when the run will expire." }, - "summary_index": { + "started_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], "type": "integer", - "format": "int32", - "description": "The index of the summary part within the reasoning summary." + "format": "unixTimestamp", + "description": "The Unix timestamp (in seconds) for when the run was started." }, - "part": { - "allOf": [ + "cancelled_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, { - "$ref": "#/components/schemas/OpenAI.ReasoningItemSummaryPart" + "type": "null" } ], - "description": "The summary part that was added." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when a new reasoning summary part is added." - }, - "OpenAI.ResponseReasoningSummaryPartDoneEvent": { - "type": "object", - "required": [ - "type", - "item_id", - "output_index", - "summary_index", - "part" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "response.reasoning_summary_part.done" + "type": "integer", + "format": "unixTimestamp", + "description": "The Unix timestamp (in seconds) for when the run was cancelled." + }, + "failed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } ], - "description": "The type of the event. Always `response.reasoning_summary_part.done`." + "type": "integer", + "format": "unixTimestamp", + "description": "The Unix timestamp (in seconds) for when the run failed." }, - "item_id": { + "completed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp", + "description": "The Unix timestamp (in seconds) for when the run was completed." + }, + "incomplete_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunObjectIncompleteDetails" + }, + { + "type": "null" + } + ], + "description": "Details on why the run is incomplete. Will be `null` if the run is not incomplete." + }, + "model": { "type": "string", - "description": "The ID of the item this summary part is associated with." + "description": "The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run." }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item this summary part is associated with." + "instructions": { + "type": "string", + "description": "The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run." }, - "summary_index": { - "type": "integer", - "format": "int32", - "description": "The index of the summary part within the reasoning summary." + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.AssistantTool" + }, + "maxItems": 20, + "description": "The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run.", + "default": [] }, - "part": { - "allOf": [ + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "usage": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunCompletionUsage" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ReasoningItemSummaryPart" + "type": "number" + }, + { + "type": "null" } ], - "description": "The completed summary part." + "description": "The sampling temperature used for this run. If not set, defaults to 1." + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "description": "The nucleus sampling value used for this run. If not set, defaults to 1." + }, + "max_prompt_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 256, + "description": "The maximum number of prompt tokens specified to have been used over the course of the run." + }, + "max_completion_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 256, + "description": "The maximum number of completion tokens specified to have been used over the course of the run." + }, + "truncation_strategy": { + "$ref": "#/components/schemas/OpenAI.TruncationObject" + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.AssistantsApiToolChoiceOption" + }, + "parallel_tool_calls": { + "$ref": "#/components/schemas/OpenAI.ParallelToolCalls" + }, + "response_format": { + "$ref": "#/components/schemas/OpenAI.AssistantsApiResponseFormatOption" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + "description": "Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads).", + "title": "A run on a thread", + "x-oaiMeta": { + "name": "The run object", + "beta": true, + "example": "{\n \"id\": \"run_abc123\",\n \"object\": \"thread.run\",\n \"created_at\": 1698107661,\n \"assistant_id\": \"asst_abc123\",\n \"thread_id\": \"thread_abc123\",\n \"status\": \"completed\",\n \"started_at\": 1699073476,\n \"expires_at\": null,\n \"cancelled_at\": null,\n \"failed_at\": null,\n \"completed_at\": 1699073498,\n \"last_error\": null,\n \"model\": \"gpt-4o\",\n \"instructions\": null,\n \"tools\": [{\"type\": \"file_search\"}, {\"type\": \"code_interpreter\"}],\n \"metadata\": {},\n \"incomplete_details\": null,\n \"usage\": {\n \"prompt_tokens\": 123,\n \"completion_tokens\": 456,\n \"total_tokens\": 579\n },\n \"temperature\": 1.0,\n \"top_p\": 1.0,\n \"max_prompt_tokens\": 1000,\n \"max_completion_tokens\": 1000,\n \"truncation_strategy\": {\n \"type\": \"auto\",\n \"last_messages\": null\n },\n \"response_format\": \"auto\",\n \"tool_choice\": \"auto\",\n \"parallel_tool_calls\": true\n}\n" + } + }, + "OpenAI.RunObjectIncompleteDetails": { + "type": "object", + "properties": { + "reason": { + "type": "string", + "enum": [ + "max_completion_tokens", + "max_prompt_tokens" + ] } - ], - "description": "Emitted when a reasoning summary part is completed." + } }, - "OpenAI.ResponseReasoningSummaryTextDeltaEvent": { + "OpenAI.RunObjectLastError": { "type": "object", "required": [ - "type", - "item_id", - "output_index", - "summary_index", - "delta", - "obfuscation" + "code", + "message" ], "properties": { - "type": { + "code": { "type": "string", "enum": [ - "response.reasoning_summary_text.delta" - ], - "description": "The type of the event. Always `response.reasoning_summary_text.delta`." - }, - "item_id": { - "type": "string", - "description": "The ID of the item this summary text delta is associated with." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item this summary text delta is associated with." - }, - "summary_index": { - "type": "integer", - "format": "int32", - "description": "The index of the summary part within the reasoning summary." - }, - "delta": { - "type": "string", - "description": "The text delta that was added to the summary." + "server_error", + "rate_limit_exceeded", + "invalid_prompt" + ] }, - "obfuscation": { - "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + "message": { + "type": "string" } - ], - "description": "Emitted when a delta is added to a reasoning summary text." + } }, - "OpenAI.ResponseReasoningSummaryTextDoneEvent": { - "type": "object", - "required": [ - "type", - "item_id", - "output_index", - "summary_index", - "text" + "OpenAI.RunObjectRequiredAction": { + "type": "object", + "required": [ + "type", + "submit_tool_outputs" ], "properties": { "type": { "type": "string", "enum": [ - "response.reasoning_summary_text.done" + "submit_tool_outputs" ], - "description": "The type of the event. Always `response.reasoning_summary_text.done`." - }, - "item_id": { - "type": "string", - "description": "The ID of the item this summary text is associated with." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item this summary text is associated with." - }, - "summary_index": { - "type": "integer", - "format": "int32", - "description": "The index of the summary part within the reasoning summary." + "x-stainless-const": true }, - "text": { - "type": "string", - "description": "The full text of the completed reasoning summary." + "submit_tool_outputs": { + "$ref": "#/components/schemas/OpenAI.RunObjectRequiredActionSubmitToolOutputs" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + }, + "OpenAI.RunObjectRequiredActionSubmitToolOutputs": { + "type": "object", + "required": [ + "tool_calls" + ], + "properties": { + "tool_calls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RunToolCallObject" + } } + } + }, + "OpenAI.RunStatus": { + "type": "string", + "enum": [ + "queued", + "in_progress", + "requires_action", + "cancelling", + "cancelled", + "failed", + "completed", + "incomplete", + "expired" ], - "description": "Emitted when a reasoning summary text is completed." + "description": "The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`." }, - "OpenAI.ResponseRefusalDeltaEvent": { + "OpenAI.RunStepCompletionUsage": { "type": "object", "required": [ - "type", - "item_id", - "output_index", - "content_index", - "delta", - "obfuscation" + "completion_tokens", + "prompt_tokens", + "total_tokens" ], "properties": { - "type": { - "type": "string", - "enum": [ - "response.refusal.delta" - ], - "description": "The type of the event. Always `response.refusal.delta`." - }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the refusal text is added to." - }, - "output_index": { + "completion_tokens": { "type": "integer", - "format": "int32", - "description": "The index of the output item that the refusal text is added to." + "description": "Number of completion tokens used over the course of the run step." }, - "content_index": { + "prompt_tokens": { "type": "integer", - "format": "int32", - "description": "The index of the content part that the refusal text is added to." - }, - "delta": { - "type": "string", - "description": "The refusal text that is added." + "description": "Number of prompt tokens used over the course of the run step." }, - "obfuscation": { - "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." + "total_tokens": { + "type": "integer", + "description": "Total number of tokens used (prompt + completion)." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when there is a partial refusal text." + "description": "Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`." }, - "OpenAI.ResponseRefusalDoneEvent": { + "OpenAI.RunStepDetailsMessageCreationObject": { "type": "object", "required": [ "type", - "item_id", - "output_index", - "content_index", - "refusal" + "message_creation" ], "properties": { "type": { "type": "string", "enum": [ - "response.refusal.done" + "message_creation" ], - "description": "The type of the event. Always `response.refusal.done`." - }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the refusal text is finalized." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item that the refusal text is finalized." - }, - "content_index": { - "type": "integer", - "format": "int32", - "description": "The index of the content part that the refusal text is finalized." + "description": "Always `message_creation`.", + "x-stainless-const": true }, - "refusal": { - "type": "string", - "description": "The refusal text that is finalized." + "message_creation": { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsMessageCreationObjectMessageCreation" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } + "description": "Details of the message creation by the run step.", + "title": "Message creation" + }, + "OpenAI.RunStepDetailsMessageCreationObjectMessageCreation": { + "type": "object", + "required": [ + "message_id" ], - "description": "Emitted when refusal text is finalized." + "properties": { + "message_id": { + "type": "string" + } + } }, - "OpenAI.ResponseStreamEvent": { + "OpenAI.RunStepDetailsToolCall": { "type": "object", "required": [ - "type", - "sequence_number" + "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEventType" - }, - "sequence_number": { - "type": "integer", - "format": "int32", - "description": "The sequence number for this event." + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallType" } }, "discriminator": { "propertyName": "type", "mapping": { - "response.completed": "#/components/schemas/OpenAI.ResponseCompletedEvent", - "response.content_part.added": "#/components/schemas/OpenAI.ResponseContentPartAddedEvent", - "response.content_part.done": "#/components/schemas/OpenAI.ResponseContentPartDoneEvent", - "response.created": "#/components/schemas/OpenAI.ResponseCreatedEvent", - "error": "#/components/schemas/OpenAI.ResponseErrorEvent", - "response.file_search_call.completed": "#/components/schemas/OpenAI.ResponseFileSearchCallCompletedEvent", - "response.file_search_call.in_progress": "#/components/schemas/OpenAI.ResponseFileSearchCallInProgressEvent", - "response.file_search_call.searching": "#/components/schemas/OpenAI.ResponseFileSearchCallSearchingEvent", - "response.function_call_arguments.delta": "#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDeltaEvent", - "response.function_call_arguments.done": "#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDoneEvent", - "response.in_progress": "#/components/schemas/OpenAI.ResponseInProgressEvent", - "response.failed": "#/components/schemas/OpenAI.ResponseFailedEvent", - "response.incomplete": "#/components/schemas/OpenAI.ResponseIncompleteEvent", - "response.output_item.added": "#/components/schemas/OpenAI.ResponseOutputItemAddedEvent", - "response.output_item.done": "#/components/schemas/OpenAI.ResponseOutputItemDoneEvent", - "response.refusal.delta": "#/components/schemas/OpenAI.ResponseRefusalDeltaEvent", - "response.refusal.done": "#/components/schemas/OpenAI.ResponseRefusalDoneEvent", - "response.output_text.delta": "#/components/schemas/OpenAI.ResponseTextDeltaEvent", - "response.output_text.done": "#/components/schemas/OpenAI.ResponseTextDoneEvent", - "response.reasoning_summary_part.added": "#/components/schemas/OpenAI.ResponseReasoningSummaryPartAddedEvent", - "response.reasoning_summary_part.done": "#/components/schemas/OpenAI.ResponseReasoningSummaryPartDoneEvent", - "response.reasoning_summary_text.delta": "#/components/schemas/OpenAI.ResponseReasoningSummaryTextDeltaEvent", - "response.reasoning_summary_text.done": "#/components/schemas/OpenAI.ResponseReasoningSummaryTextDoneEvent", - "response.web_search_call.completed": "#/components/schemas/OpenAI.ResponseWebSearchCallCompletedEvent", - "response.web_search_call.in_progress": "#/components/schemas/OpenAI.ResponseWebSearchCallInProgressEvent", - "response.web_search_call.searching": "#/components/schemas/OpenAI.ResponseWebSearchCallSearchingEvent", - "response.image_generation_call.completed": "#/components/schemas/OpenAI.ResponseImageGenCallCompletedEvent", - "response.image_generation_call.generating": "#/components/schemas/OpenAI.ResponseImageGenCallGeneratingEvent", - "response.image_generation_call.in_progress": "#/components/schemas/OpenAI.ResponseImageGenCallInProgressEvent", - "response.image_generation_call.partial_image": "#/components/schemas/OpenAI.ResponseImageGenCallPartialImageEvent", - "response.mcp_call.arguments_delta": "#/components/schemas/OpenAI.ResponseMCPCallArgumentsDeltaEvent", - "response.mcp_call.arguments_done": "#/components/schemas/OpenAI.ResponseMCPCallArgumentsDoneEvent", - "response.mcp_call.completed": "#/components/schemas/OpenAI.ResponseMCPCallCompletedEvent", - "response.mcp_call.failed": "#/components/schemas/OpenAI.ResponseMCPCallFailedEvent", - "response.mcp_call.in_progress": "#/components/schemas/OpenAI.ResponseMCPCallInProgressEvent", - "response.mcp_list_tools.completed": "#/components/schemas/OpenAI.ResponseMCPListToolsCompletedEvent", - "response.mcp_list_tools.failed": "#/components/schemas/OpenAI.ResponseMCPListToolsFailedEvent", - "response.mcp_list_tools.in_progress": "#/components/schemas/OpenAI.ResponseMCPListToolsInProgressEvent", - "response.queued": "#/components/schemas/OpenAI.ResponseQueuedEvent", - "response.reasoning.delta": "#/components/schemas/OpenAI.ResponseReasoningDeltaEvent", - "response.reasoning.done": "#/components/schemas/OpenAI.ResponseReasoningDoneEvent", - "response.reasoning_summary.delta": "#/components/schemas/OpenAI.ResponseReasoningSummaryDeltaEvent", - "response.reasoning_summary.done": "#/components/schemas/OpenAI.ResponseReasoningSummaryDoneEvent", - "response.code_interpreter_call_code.delta": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent", - "response.code_interpreter_call_code.done": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDoneEvent", - "response.code_interpreter_call.completed": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallCompletedEvent", - "response.code_interpreter_call.in_progress": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallInProgressEvent", - "response.code_interpreter_call.interpreting": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallInterpretingEvent" + "code_interpreter": "#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeObject", + "file_search": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchObject", + "function": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFunctionObject" } } }, - "OpenAI.ResponseStreamEventType": { + "OpenAI.RunStepDetailsToolCallType": { "anyOf": [ { "type": "string" }, { - "type": "string", - "enum": [ - "response.audio.delta", - "response.audio.done", - "response.audio_transcript.delta", - "response.audio_transcript.done", - "response.code_interpreter_call_code.delta", - "response.code_interpreter_call_code.done", - "response.code_interpreter_call.completed", - "response.code_interpreter_call.in_progress", - "response.code_interpreter_call.interpreting", - "response.completed", - "response.content_part.added", - "response.content_part.done", - "response.created", - "error", - "response.file_search_call.completed", - "response.file_search_call.in_progress", - "response.file_search_call.searching", - "response.function_call_arguments.delta", - "response.function_call_arguments.done", - "response.in_progress", - "response.failed", - "response.incomplete", - "response.output_item.added", - "response.output_item.done", - "response.refusal.delta", - "response.refusal.done", - "response.output_text.annotation.added", - "response.output_text.delta", - "response.output_text.done", - "response.reasoning_summary_part.added", - "response.reasoning_summary_part.done", - "response.reasoning_summary_text.delta", - "response.reasoning_summary_text.done", - "response.web_search_call.completed", - "response.web_search_call.in_progress", - "response.web_search_call.searching", - "response.image_generation_call.completed", - "response.image_generation_call.generating", - "response.image_generation_call.in_progress", - "response.image_generation_call.partial_image", - "response.mcp_call.arguments_delta", - "response.mcp_call.arguments_done", - "response.mcp_call.completed", - "response.mcp_call.failed", - "response.mcp_call.in_progress", - "response.mcp_list_tools.completed", - "response.mcp_list_tools.failed", - "response.mcp_list_tools.in_progress", - "response.queued", - "response.reasoning.delta", - "response.reasoning.done", - "response.reasoning_summary.delta", - "response.reasoning_summary.done" - ] - } - ] - }, - "OpenAI.ResponseTextDeltaEvent": { - "type": "object", - "required": [ - "type", - "item_id", - "output_index", - "content_index", - "delta", - "obfuscation" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "response.output_text.delta" - ], - "description": "The type of the event. Always `response.output_text.delta`." - }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the text delta was added to." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item that the text delta was added to." - }, - "content_index": { - "type": "integer", - "format": "int32", - "description": "The index of the content part that the text delta was added to." - }, - "delta": { - "type": "string", - "description": "The text delta that was added." - }, - "obfuscation": { - "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + "type": "string", + "enum": [ + "code_interpreter", + "file_search", + "function" + ] } - ], - "description": "Emitted when there is an additional text delta." + ] }, - "OpenAI.ResponseTextDoneEvent": { + "OpenAI.RunStepDetailsToolCallsCodeObject": { "type": "object", "required": [ + "id", "type", - "item_id", - "output_index", - "content_index", - "text" + "code_interpreter" ], "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call." + }, "type": { "type": "string", "enum": [ - "response.output_text.done" + "code_interpreter" ], - "description": "The type of the event. Always `response.output_text.done`." - }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the text content is finalized." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item that the text content is finalized." - }, - "content_index": { - "type": "integer", - "format": "int32", - "description": "The index of the content part that the text content is finalized." + "description": "The type of tool call. This is always going to be `code_interpreter` for this type of tool call.", + "x-stainless-const": true }, - "text": { - "type": "string", - "description": "The text content that is finalized." + "code_interpreter": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeObjectCodeInterpreter" + } + ], + "description": "The Code Interpreter tool call definition." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCall" } ], - "description": "Emitted when text content is finalized." + "description": "Details of the Code Interpreter tool call the run step was involved in.", + "title": "Code Interpreter tool call" }, - "OpenAI.ResponseTextFormatConfiguration": { + "OpenAI.RunStepDetailsToolCallsCodeObjectCodeInterpreter": { "type": "object", "required": [ - "type" + "input", + "outputs" ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfigurationType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "text": "#/components/schemas/OpenAI.ResponseTextFormatConfigurationText", - "json_object": "#/components/schemas/OpenAI.ResponseTextFormatConfigurationJsonObject", - "json_schema": "#/components/schemas/OpenAI.ResponseTextFormatConfigurationJsonSchema" + "input": { + "type": "string" + }, + "outputs": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeOutputLogsObject" + }, + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeOutputImageObject" + } + ] + } } } }, - "OpenAI.ResponseTextFormatConfigurationJsonObject": { + "OpenAI.RunStepDetailsToolCallsCodeOutputImageObject": { "type": "object", "required": [ - "type" + "type", + "image" ], "properties": { "type": { "type": "string", "enum": [ - "json_object" - ] + "image" + ], + "description": "Always `image`.", + "x-stainless-const": true + }, + "image": { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeOutputImageObjectImage" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" + "title": "Code Interpreter image output", + "x-stainless-naming": { + "java": { + "type_name": "ImageOutput" + }, + "kotlin": { + "type_name": "ImageOutput" } - ] + } + }, + "OpenAI.RunStepDetailsToolCallsCodeOutputImageObjectImage": { + "type": "object", + "required": [ + "file_id" + ], + "properties": { + "file_id": { + "type": "string" + } + } }, - "OpenAI.ResponseTextFormatConfigurationJsonSchema": { + "OpenAI.RunStepDetailsToolCallsCodeOutputLogsObject": { "type": "object", "required": [ "type", - "name", - "schema" + "logs" ], "properties": { "type": { "type": "string", "enum": [ - "json_schema" + "logs" ], - "description": "The type of response format being defined. Always `json_schema`." + "description": "Always `logs`.", + "x-stainless-const": true }, - "description": { - "type": "string", - "description": "A description of what the response format is for, used by the model to\ndetermine how to respond in the format." - }, - "name": { + "logs": { "type": "string", - "description": "The name of the response format. Must be a-z, A-Z, 0-9, or contain\nunderscores and dashes, with a maximum length of 64." - }, - "schema": { - "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema" - }, - "strict": { - "type": "boolean", - "nullable": true, - "description": "Whether to enable strict schema adherence when generating the output.\nIf set to true, the model will always follow the exact schema defined\nin the `schema` field. Only a subset of JSON Schema is supported when\n`strict` is `true`. To learn more, read the [Structured Outputs\nguide](/docs/guides/structured-outputs).", - "default": false + "description": "The text output from the Code Interpreter tool call." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" + "description": "Text output from the Code Interpreter tool call as part of a run step.", + "title": "Code Interpreter log output", + "x-stainless-naming": { + "java": { + "type_name": "LogsOutput" + }, + "kotlin": { + "type_name": "LogsOutput" } - ], - "description": "JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](/docs/guides/structured-outputs)." + } }, - "OpenAI.ResponseTextFormatConfigurationText": { + "OpenAI.RunStepDetailsToolCallsFileSearchObject": { "type": "object", "required": [ - "type" + "id", + "type", + "file_search" ], "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call object." + }, "type": { "type": "string", "enum": [ - "text" - ] + "file_search" + ], + "description": "The type of tool call. This is always going to be `file_search` for this type of tool call.", + "x-stainless-const": true + }, + "file_search": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchObjectFileSearch" + } + ], + "description": "For now, this is always going to be an empty object.", + "x-oaiTypeLabel": "map" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCall" } - ] + ], + "title": "File search tool call" }, - "OpenAI.ResponseTextFormatConfigurationType": { - "anyOf": [ - { - "type": "string" + "OpenAI.RunStepDetailsToolCallsFileSearchObjectFileSearch": { + "type": "object", + "properties": { + "ranking_options": { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchRankingOptionsObject" }, - { - "type": "string", - "enum": [ - "text", - "json_schema", - "json_object" - ] + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchResultObject" + } } + } + }, + "OpenAI.RunStepDetailsToolCallsFileSearchRankingOptionsObject": { + "type": "object", + "required": [ + "ranker", + "score_threshold" ], - "description": "An object specifying the format that the model must output.\n\nConfiguring `{ \"type\": \"json_schema\" }` enables Structured Outputs,\nwhich ensures the model will match your supplied JSON schema. Learn more in the\n[Structured Outputs guide](/docs/guides/structured-outputs).\n\nThe default format is `{ \"type\": \"text\" }` with no additional options.\n\n**Not recommended for gpt-4o and newer models:**\n\nSetting to `{ \"type\": \"json_object\" }` enables the older JSON mode, which\nensures the message the model generates is valid JSON. Using `json_schema`\nis preferred for models that support it." + "properties": { + "ranker": { + "$ref": "#/components/schemas/OpenAI.FileSearchRanker" + }, + "score_threshold": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "The score threshold for the file search. All values must be a floating point number between 0 and 1." + } + }, + "description": "The ranking options for the file search.", + "title": "File search tool call ranking options" }, - "OpenAI.ResponseUsage": { + "OpenAI.RunStepDetailsToolCallsFileSearchResultObject": { "type": "object", "required": [ - "input_tokens", - "input_tokens_details", - "output_tokens", - "output_tokens_details", - "total_tokens" + "file_id", + "file_name", + "score" ], "properties": { - "input_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of input tokens." + "file_id": { + "type": "string", + "description": "The ID of the file that result was found in." }, - "input_tokens_details": { - "type": "object", - "properties": { - "cached_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens that were retrieved from the cache.\n[More on prompt caching](/docs/guides/prompt-caching)." - } - }, - "required": [ - "cached_tokens" - ], - "description": "A detailed breakdown of the input tokens." + "file_name": { + "type": "string", + "description": "The name of the file that result was found in." }, - "output_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of output tokens." + "score": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "The score of the result. All values must be a floating point number between 0 and 1." }, - "output_tokens_details": { - "type": "object", - "properties": { - "reasoning_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of reasoning tokens." - } + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchResultObjectContent" }, - "required": [ - "reasoning_tokens" + "description": "The content of the result that was found. The content is only included if requested via the include query parameter." + } + }, + "description": "A result instance of the file search.", + "title": "File search tool call result", + "x-oaiTypeLabel": "map" + }, + "OpenAI.RunStepDetailsToolCallsFileSearchResultObjectContent": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "text" ], - "description": "A detailed breakdown of the output tokens." + "x-stainless-const": true }, - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "The total number of tokens used." + "text": { + "type": "string" } - }, - "description": "Represents token usage details including input tokens, output tokens,\na breakdown of output tokens, and the total tokens used." + } }, - "OpenAI.ResponseWebSearchCallCompletedEvent": { + "OpenAI.RunStepDetailsToolCallsFunctionObject": { "type": "object", "required": [ + "id", "type", - "output_index", - "item_id" + "function" ], "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call object." + }, "type": { "type": "string", "enum": [ - "response.web_search_call.completed" + "function" ], - "description": "The type of the event. Always `response.web_search_call.completed`." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item that the web search call is associated with." + "description": "The type of tool call. This is always going to be `function` for this type of tool call.", + "x-stainless-const": true }, - "item_id": { - "type": "string", - "description": "Unique ID for the output item associated with the web search call." + "function": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFunctionObjectFunction" + } + ], + "description": "The definition of the function that was called." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCall" + } + ], + "title": "Function tool call" + }, + "OpenAI.RunStepDetailsToolCallsFunctionObjectFunction": { + "type": "object", + "required": [ + "name", + "arguments", + "output" + ], + "properties": { + "name": { + "type": "string" + }, + "arguments": { + "type": "string" + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } - ], - "description": "Note: web_search is not yet available via Azure OpenAI." + } }, - "OpenAI.ResponseWebSearchCallInProgressEvent": { + "OpenAI.RunStepDetailsToolCallsObject": { "type": "object", "required": [ "type", - "output_index", - "item_id" + "tool_calls" ], "properties": { "type": { "type": "string", "enum": [ - "response.web_search_call.in_progress" + "tool_calls" ], - "description": "The type of the event. Always `response.web_search_call.in_progress`." + "description": "Always `tool_calls`.", + "x-stainless-const": true }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item that the web search call is associated with." - }, - "item_id": { - "type": "string", - "description": "Unique ID for the output item associated with the web search call." + "tool_calls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCall" + }, + "description": "An array of tool calls the run step was involved in. These can be associated with one of three types of tools: `code_interpreter`, `file_search`, or `function`." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Note: web_search is not yet available via Azure OpenAI." + "description": "Details of the tool call.", + "title": "Tool calls" }, - "OpenAI.ResponseWebSearchCallSearchingEvent": { + "OpenAI.RunStepObject": { "type": "object", "required": [ + "id", + "object", + "created_at", + "assistant_id", + "thread_id", + "run_id", "type", - "output_index", - "item_id" + "status", + "step_details", + "last_error", + "expired_at", + "cancelled_at", + "failed_at", + "completed_at", + "metadata", + "usage" ], "properties": { - "type": { + "id": { + "type": "string", + "description": "The identifier of the run step, which can be referenced in API endpoints." + }, + "object": { "type": "string", "enum": [ - "response.web_search_call.searching" + "thread.run.step" ], - "description": "The type of the event. Always `response.web_search_call.searching`." + "description": "The object type, which is always `thread.run.step`.", + "x-stainless-const": true }, - "output_index": { + "created_at": { "type": "integer", - "format": "int32", - "description": "The index of the output item that the web search call is associated with." + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the run step was created." }, - "item_id": { + "assistant_id": { "type": "string", - "description": "Unique ID for the output item associated with the web search call." + "description": "The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step." + }, + "thread_id": { + "type": "string", + "description": "The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run." + }, + "run_id": { + "type": "string", + "description": "The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of." + }, + "type": { + "type": "string", + "enum": [ + "message_creation", + "tool_calls" + ], + "description": "The type of run step, which can be either `message_creation` or `tool_calls`." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "cancelled", + "failed", + "completed", + "expired" + ], + "description": "The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`." + }, + "step_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsMessageCreationObject" + }, + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsObject" + } + ], + "description": "The details of the run step." + }, + "last_error": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunStepObjectLastError" + }, + { + "type": "null" + } + ] + }, + "expired_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" + }, + "cancelled_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" + }, + "failed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" + }, + "completed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.RunStepCompletionUsage" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Note: web_search is not yet available via Azure OpenAI." + "description": "Represents a step in execution of a run.", + "title": "Run steps", + "x-oaiMeta": { + "name": "The run step object", + "beta": true, + "example": "{\n \"id\": \"step_abc123\",\n \"object\": \"thread.run.step\",\n \"created_at\": 1699063291,\n \"run_id\": \"run_abc123\",\n \"assistant_id\": \"asst_abc123\",\n \"thread_id\": \"thread_abc123\",\n \"type\": \"message_creation\",\n \"status\": \"completed\",\n \"cancelled_at\": null,\n \"completed_at\": 1699063291,\n \"expired_at\": null,\n \"failed_at\": null,\n \"last_error\": null,\n \"step_details\": {\n \"type\": \"message_creation\",\n \"message_creation\": {\n \"message_id\": \"msg_abc123\"\n }\n },\n \"usage\": {\n \"prompt_tokens\": 123,\n \"completion_tokens\": 456,\n \"total_tokens\": 579\n }\n}\n" + } }, - "OpenAI.ResponsesAssistantMessageItemParam": { + "OpenAI.RunStepObjectLastError": { "type": "object", "required": [ - "role", - "content" + "code", + "message" ], "properties": { - "role": { + "code": { "type": "string", "enum": [ - "assistant" - ], - "description": "The role of the message, which is always `assistant`." + "server_error", + "rate_limit_exceeded" + ] }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemParam" + "message": { + "type": "string" } - ], - "description": "A message parameter item with the `assistant` role." + } }, - "OpenAI.ResponsesAssistantMessageItemResource": { + "OpenAI.RunToolCallObject": { "type": "object", "required": [ - "role", - "content" + "id", + "type", + "function" ], "properties": { - "role": { + "id": { + "type": "string", + "description": "The ID of the tool call. This ID must be referenced when you submit the tool outputs in using the [Submit tool outputs to run](https://platform.openai.com/docs/api-reference/runs/submitToolOutputs) endpoint." + }, + "type": { "type": "string", "enum": [ - "assistant" + "function" ], - "description": "The role of the message, which is always `assistant`." + "description": "The type of tool call the output is required for. For now, this is always `function`.", + "x-stainless-const": true }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." + "function": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunToolCallObjectFunction" + } + ], + "description": "The function definition." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemResource" - } + "description": "Tool call objects" + }, + "OpenAI.RunToolCallObjectFunction": { + "type": "object", + "required": [ + "name", + "arguments" ], - "description": "A message resource item with the `assistant` role." + "properties": { + "name": { + "type": "string" + }, + "arguments": { + "type": "string" + } + } }, - "OpenAI.ResponsesDeveloperMessageItemParam": { + "OpenAI.Screenshot": { "type": "object", "required": [ - "role", - "content" + "type" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "developer" + "screenshot" ], - "description": "The role of the message, which is always `developer`." - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." + "description": "Specifies the event type. For a screenshot action, this property is\n always set to `screenshot`.", + "x-stainless-const": true, + "default": "screenshot" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemParam" + "$ref": "#/components/schemas/OpenAI.ComputerAction" } ], - "description": "A message parameter item with the `developer` role." + "description": "A screenshot action.", + "title": "Screenshot" }, - "OpenAI.ResponsesDeveloperMessageItemResource": { + "OpenAI.Scroll": { "type": "object", "required": [ - "role", - "content" + "type", + "x", + "y", + "scroll_x", + "scroll_y" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "developer" + "scroll" ], - "description": "The role of the message, which is always `developer`." + "description": "Specifies the event type. For a scroll action, this property is\n always set to `scroll`.", + "x-stainless-const": true, + "default": "scroll" }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." + "x": { + "type": "integer", + "description": "The x-coordinate where the scroll occurred." + }, + "y": { + "type": "integer", + "description": "The y-coordinate where the scroll occurred." + }, + "scroll_x": { + "type": "integer", + "description": "The horizontal scroll distance." + }, + "scroll_y": { + "type": "integer", + "description": "The vertical scroll distance." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemResource" + "$ref": "#/components/schemas/OpenAI.ComputerAction" } ], - "description": "A message resource item with the `developer` role." + "description": "A scroll action.", + "title": "Scroll" + }, + "OpenAI.SearchContextSize": { + "type": "string", + "enum": [ + "low", + "medium", + "high" + ] }, - "OpenAI.ResponsesMessageItemParam": { + "OpenAI.SpecificApplyPatchParam": { "type": "object", - "required": [ - "type", - "role" + "required": [ + "type" ], "properties": { "type": { "type": "string", "enum": [ - "message" - ], - "description": "The type of the responses item, which is always 'message'." - }, - "role": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageRole" - } + "apply_patch" ], - "description": "The role associated with the message." - } - }, - "discriminator": { - "propertyName": "role", - "mapping": { - "user": "#/components/schemas/OpenAI.ResponsesUserMessageItemParam", - "system": "#/components/schemas/OpenAI.ResponsesSystemMessageItemParam", - "developer": "#/components/schemas/OpenAI.ResponsesDeveloperMessageItemParam", - "assistant": "#/components/schemas/OpenAI.ResponsesAssistantMessageItemParam" + "description": "The tool to call. Always `apply_patch`.", + "x-stainless-const": true, + "default": "apply_patch" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } ], - "description": "A response message item, representing a role and content, as provided as client request parameters." + "description": "Forces the model to call the apply_patch tool when executing a tool call.", + "title": "Specific apply patch tool choice" }, - "OpenAI.ResponsesMessageItemResource": { + "OpenAI.SpecificFunctionShellParam": { "type": "object", "required": [ - "type", - "status", - "role" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "message" - ], - "description": "The type of the responses item, which is always 'message'." - }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete" - ], - "description": "The status of the item. One of `in_progress`, `completed`, or\n`incomplete`. Populated when items are returned via API." - }, - "role": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageRole" - } + "shell" ], - "description": "The role associated with the message." - } - }, - "discriminator": { - "propertyName": "role", - "mapping": { - "user": "#/components/schemas/OpenAI.ResponsesUserMessageItemResource", - "system": "#/components/schemas/OpenAI.ResponsesSystemMessageItemResource", - "developer": "#/components/schemas/OpenAI.ResponsesDeveloperMessageItemResource", - "assistant": "#/components/schemas/OpenAI.ResponsesAssistantMessageItemResource" + "description": "The tool to call. Always `shell`.", + "x-stainless-const": true, + "default": "shell" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } ], - "description": "A response message resource item, representing a role and content, as provided on service responses." + "description": "Forces the model to call the shell tool when a tool call is required.", + "title": "Specific shell tool choice" }, - "OpenAI.ResponsesMessageRole": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant" + "OpenAI.StaticChunkingStrategy": { + "type": "object", + "required": [ + "max_chunk_size_tokens", + "chunk_overlap_tokens" ], - "description": "The collection of valid roles for responses message items." + "properties": { + "max_chunk_size_tokens": { + "type": "integer", + "minimum": 100, + "maximum": 4096, + "description": "The maximum number of tokens in each chunk. The default value is `800`. The minimum value is `100` and the maximum value is `4096`." + }, + "chunk_overlap_tokens": { + "type": "integer", + "description": "The number of tokens that overlap between chunks. The default value is `400`.\n\n Note that the overlap must not exceed half of `max_chunk_size_tokens`." + } + } }, - "OpenAI.ResponsesSystemMessageItemParam": { + "OpenAI.StaticChunkingStrategyRequestParam": { "type": "object", "required": [ - "role", - "content" + "type", + "static" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "system" + "static" ], - "description": "The role of the message, which is always `system`." + "description": "Always `static`.", + "x-stainless-const": true }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." + "static": { + "$ref": "#/components/schemas/OpenAI.StaticChunkingStrategy" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemParam" + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" } ], - "description": "A message parameter item with the `system` role." + "description": "Customize your own chunking strategy by setting chunk size and chunk overlap.", + "title": "Static Chunking Strategy" }, - "OpenAI.ResponsesSystemMessageItemResource": { + "OpenAI.StaticChunkingStrategyResponseParam": { "type": "object", "required": [ - "role", - "content" + "type", + "static" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "system" + "static" ], - "description": "The role of the message, which is always `system`." + "description": "Always `static`.", + "x-stainless-const": true }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." + "static": { + "$ref": "#/components/schemas/OpenAI.StaticChunkingStrategy" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemResource" + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponse" + } + ], + "title": "Static Chunking Strategy" + }, + "OpenAI.StopConfiguration": { + "anyOf": [ + { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "null" } ], - "description": "A message resource item with the `system` role." + "description": "Not supported with latest reasoning models `o3` and `o4-mini`.\n\nUp to 4 sequences where the API will stop generating further tokens. The\nreturned text will not contain the stop sequence." }, - "OpenAI.ResponsesUserMessageItemParam": { + "OpenAI.SubmitToolOutputsRunRequest": { "type": "object", "required": [ - "role", - "content" + "tool_outputs" ], "properties": { - "role": { - "type": "string", - "enum": [ - "user" - ], - "description": "The role of the message, which is always `user`." - }, - "content": { + "tool_outputs": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" + "$ref": "#/components/schemas/OpenAI.SubmitToolOutputsRunRequestToolOutputs" }, - "description": "The content associated with the message." + "description": "A list of tools for which the outputs are being submitted." + }, + "stream": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemParam" + } + }, + "OpenAI.SubmitToolOutputsRunRequestToolOutputs": { + "type": "object", + "properties": { + "tool_call_id": { + "type": "string" + }, + "output": { + "type": "string" } - ], - "description": "A message parameter item with the `user` role." + } }, - "OpenAI.ResponsesUserMessageItemResource": { + "OpenAI.Summary": { "type": "object", "required": [ - "role", - "content" + "type", + "text" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "user" + "summary_text" ], - "description": "The role of the message, which is always `user`." + "description": "The type of the object. Always `summary_text`.", + "x-stainless-const": true, + "default": "summary_text" }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." + "text": { + "type": "string", + "description": "A summary of the reasoning output from the model so far." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemResource" - } - ], - "description": "A message resource item with the `user` role." + "description": "A summary text from the model.", + "title": "Summary text" }, - "OpenAI.RunGraderRequest": { + "OpenAI.SummaryTextContent": { "type": "object", "required": [ - "grader", - "model_sample" + "type", + "text" ], "properties": { - "grader": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.GraderStringCheck" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderPython" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderScoreModel" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderMulti" - } + "type": { + "type": "string", + "enum": [ + "summary_text" ], - "description": "The grader used for the fine-tuning job." - }, - "item": { - "description": "The dataset item provided to the grader. This will be used to populate\nthe `item` namespace. See [the guide](/docs/guides/graders) for more details." + "description": "The type of the object. Always `summary_text`.", + "x-stainless-const": true, + "default": "summary_text" }, - "model_sample": { + "text": { "type": "string", - "description": "The model sample to be evaluated. This value will be used to populate\nthe `sample` namespace. See [the guide](/docs/guides/graders) for more details.\nThe `output_json` variable will be populated if the model sample is a\nvalid JSON string." + "description": "A summary of the reasoning output from the model so far." } - } + }, + "description": "A summary text from the model.", + "title": "Summary text" }, - "OpenAI.RunGraderResponse": { + "OpenAI.TextAnnotation": { "type": "object", "required": [ - "reward", - "metadata", - "sub_rewards", - "model_grader_token_usage_per_model" + "type" ], "properties": { - "reward": { - "type": "number", - "format": "float" - }, - "metadata": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "errors": { - "type": "object", - "properties": { - "formula_parse_error": { - "type": "boolean" - }, - "sample_parse_error": { - "type": "boolean" - }, - "truncated_observation_error": { - "type": "boolean" - }, - "unresponsive_reward_error": { - "type": "boolean" - }, - "invalid_variable_error": { - "type": "boolean" - }, - "other_error": { - "type": "boolean" - }, - "python_grader_server_error": { - "type": "boolean" - }, - "python_grader_server_error_type": { - "type": "string", - "nullable": true - }, - "python_grader_runtime_error": { - "type": "boolean" - }, - "python_grader_runtime_error_details": { - "type": "string", - "nullable": true - }, - "model_grader_server_error": { - "type": "boolean" - }, - "model_grader_refusal_error": { - "type": "boolean" - }, - "model_grader_parse_error": { - "type": "boolean" - }, - "model_grader_server_error_details": { - "type": "string", - "nullable": true - } - }, - "required": [ - "formula_parse_error", - "sample_parse_error", - "truncated_observation_error", - "unresponsive_reward_error", - "invalid_variable_error", - "other_error", - "python_grader_server_error", - "python_grader_server_error_type", - "python_grader_runtime_error", - "python_grader_runtime_error_details", - "model_grader_server_error", - "model_grader_refusal_error", - "model_grader_parse_error", - "model_grader_server_error_details" - ] - }, - "execution_time": { - "type": "number", - "format": "float" - }, - "scores": {}, - "token_usage": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "sampled_model_name": { - "type": "string", - "nullable": true - } - }, - "required": [ - "name", - "type", - "errors", - "execution_time", - "scores", - "token_usage", - "sampled_model_name" + "type": { + "$ref": "#/components/schemas/OpenAI.TextAnnotationType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "file_citation": "#/components/schemas/OpenAI.MessageContentTextAnnotationsFileCitationObject", + "file_path": "#/components/schemas/OpenAI.MessageContentTextAnnotationsFilePathObject" + } + } + }, + "OpenAI.TextAnnotationType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "file_citation", + "file_path" ] + } + ] + }, + "OpenAI.TextContent": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ], + "x-stainless-const": true, + "default": "text" }, - "sub_rewards": {}, - "model_grader_token_usage_per_model": {} - } + "text": { + "type": "string" + } + }, + "description": "A text content.", + "title": "Text Content" }, - "OpenAI.StaticChunkingStrategy": { + "OpenAI.TextResponseFormatConfiguration": { "type": "object", "required": [ - "max_chunk_size_tokens", - "chunk_overlap_tokens" + "type" ], "properties": { - "max_chunk_size_tokens": { - "type": "integer", - "format": "int32", - "minimum": 100, - "maximum": 4096, - "description": "The maximum number of tokens in each chunk. The default value is `800`. The minimum value is `100` and the maximum value is `4096`." + "type": { + "$ref": "#/components/schemas/OpenAI.TextResponseFormatConfigurationType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "json_object": "#/components/schemas/OpenAI.ResponseFormatJsonObject", + "json_schema": "#/components/schemas/OpenAI.TextResponseFormatJsonSchema" + } + }, + "description": "An object specifying the format that the model must output.\n\nConfiguring `{ \"type\": \"json_schema\" }` enables Structured Outputs,\nwhich ensures the model will match your supplied JSON schema. Learn more in the\n[Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).\n\nThe default format is `{ \"type\": \"text\" }` with no additional options.\n\n*Not recommended for gpt-4o and newer models:**\n\nSetting to `{ \"type\": \"json_object\" }` enables the older JSON mode, which\nensures the message the model generates is valid JSON. Using `json_schema`\nis preferred for models that support it." + }, + "OpenAI.TextResponseFormatConfigurationType": { + "anyOf": [ + { + "type": "string" }, - "chunk_overlap_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens that overlap between chunks. The default value is `400`.\n\nNote that the overlap must not exceed half of `max_chunk_size_tokens`." + { + "type": "string", + "enum": [ + "text", + "json_schema", + "json_object" + ] } - } + ] }, - "OpenAI.StaticChunkingStrategyRequestParam": { + "OpenAI.TextResponseFormatJsonSchema": { "type": "object", "required": [ "type", - "static" + "name", + "schema" ], "properties": { "type": { "type": "string", "enum": [ - "static" + "json_schema" ], - "description": "Always `static`." + "description": "The type of response format being defined. Always `json_schema`.", + "x-stainless-const": true }, - "static": { - "$ref": "#/components/schemas/OpenAI.StaticChunkingStrategy" + "description": { + "type": "string", + "description": "A description of what the response format is for, used by the model to\n determine how to respond in the format." + }, + "name": { + "type": "string", + "description": "The name of the response format. Must be a-z, A-Z, 0-9, or contain\n underscores and dashes, with a maximum length of 64." + }, + "schema": { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema" + }, + "strict": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" + "$ref": "#/components/schemas/OpenAI.TextResponseFormatConfiguration" } ], - "description": "Customize your own chunking strategy by setting chunk size and chunk overlap." + "description": "JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs).", + "title": "JSON schema" }, - "OpenAI.StaticChunkingStrategyResponseParam": { + "OpenAI.ThreadObject": { "type": "object", "required": [ - "type", - "static" + "id", + "object", + "created_at", + "tool_resources", + "metadata" ], "properties": { - "type": { + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "object": { "type": "string", "enum": [ - "static" + "thread" ], - "description": "Always `static`." + "description": "The object type, which is always `thread`.", + "x-stainless-const": true }, - "static": { - "$ref": "#/components/schemas/OpenAI.StaticChunkingStrategy" + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the thread was created." + }, + "tool_resources": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ThreadObjectToolResources" + }, + { + "type": "null" + } + ] + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponseParam" - } - ] + "description": "Represents a thread that contains [messages](https://platform.openai.com/docs/api-reference/messages).", + "title": "Thread", + "x-oaiMeta": { + "name": "The thread object", + "beta": true, + "example": "{\n \"id\": \"thread_abc123\",\n \"object\": \"thread\",\n \"created_at\": 1698107661,\n \"metadata\": {}\n}\n" + } }, - "OpenAI.StopConfiguration": { - "anyOf": [ - { - "type": "string" + "OpenAI.ThreadObjectToolResources": { + "type": "object", + "properties": { + "code_interpreter": { + "$ref": "#/components/schemas/OpenAI.ThreadObjectToolResourcesCodeInterpreter" }, - { + "file_search": { + "$ref": "#/components/schemas/OpenAI.ThreadObjectToolResourcesFileSearch" + } + } + }, + "OpenAI.ThreadObjectToolResourcesCodeInterpreter": { + "type": "object", + "properties": { + "file_ids": { "type": "array", "items": { "type": "string" - } + }, + "maxItems": 20 } - ], - "description": "Not supported with latest reasoning models `o3` and `o4-mini`.\n\nUp to 4 sequences where the API will stop generating further tokens. The\nreturned text will not contain the stop sequence." + } + }, + "OpenAI.ThreadObjectToolResourcesFileSearch": { + "type": "object", + "properties": { + "vector_store_ids": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 1 + } + } + }, + "OpenAI.TokenLimits": { + "type": "object", + "properties": { + "post_instructions": { + "type": "integer", + "minimum": 0 + } + } }, "OpenAI.Tool": { "type": "object", @@ -20743,41 +34931,64 @@ "discriminator": { "propertyName": "type", "mapping": { + "code_interpreter": "#/components/schemas/OpenAI.CodeInterpreterTool", "function": "#/components/schemas/OpenAI.FunctionTool", "file_search": "#/components/schemas/OpenAI.FileSearchTool", "computer_use_preview": "#/components/schemas/OpenAI.ComputerUsePreviewTool", - "web_search_preview": "#/components/schemas/OpenAI.WebSearchPreviewTool", - "code_interpreter": "#/components/schemas/OpenAI.CodeInterpreterTool", + "web_search": "#/components/schemas/OpenAI.WebSearchTool", + "mcp": "#/components/schemas/OpenAI.MCPTool", "image_generation": "#/components/schemas/OpenAI.ImageGenTool", - "local_shell": "#/components/schemas/OpenAI.LocalShellTool", - "mcp": "#/components/schemas/OpenAI.MCPTool" + "local_shell": "#/components/schemas/OpenAI.LocalShellToolParam", + "shell": "#/components/schemas/OpenAI.FunctionShellToolParam", + "custom": "#/components/schemas/OpenAI.CustomToolParam", + "web_search_preview": "#/components/schemas/OpenAI.WebSearchPreviewTool", + "apply_patch": "#/components/schemas/OpenAI.ApplyPatchToolParam" } - } + }, + "description": "A tool that can be used to generate a response." }, - "OpenAI.ToolChoiceObject": { + "OpenAI.ToolChoiceAllowed": { "type": "object", "required": [ - "type" + "type", + "mode", + "tools" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObjectType" + "type": "string", + "enum": [ + "allowed_tools" + ], + "description": "Allowed tool configuration type. Always `allowed_tools`.", + "x-stainless-const": true + }, + "mode": { + "type": "string", + "enum": [ + "auto", + "required" + ], + "description": "Constrains the tools available to the model to a pre-defined set.\n\n `auto` allows the model to pick from among the allowed tools and generate a\n message.\n\n `required` requires the model to call one or more of the allowed tools." + }, + "tools": { + "type": "array", + "items": { + "type": "object", + "unevaluatedProperties": {} + }, + "description": "A list of tool definitions that the model should be allowed to call.\n\n For the Responses API, the list of tool definitions might look like:\n ```json\n [\n { \"type\": \"function\", \"name\": \"get_weather\" },\n { \"type\": \"mcp\", \"server_label\": \"deepwiki\" },\n { \"type\": \"image_generation\" }\n ]\n ```" } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search": "#/components/schemas/OpenAI.ToolChoiceObjectFileSearch", - "computer_use_preview": "#/components/schemas/OpenAI.ToolChoiceObjectComputer", - "web_search_preview": "#/components/schemas/OpenAI.ToolChoiceObjectWebSearch", - "image_generation": "#/components/schemas/OpenAI.ToolChoiceObjectImageGen", - "code_interpreter": "#/components/schemas/OpenAI.ToolChoiceObjectCodeInterpreter", - "function": "#/components/schemas/OpenAI.ToolChoiceObjectFunction", - "mcp": "#/components/schemas/OpenAI.ToolChoiceObjectMCP" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } - } + ], + "description": "Constrains the tools available to the model to a pre-defined set.", + "title": "Allowed tools" }, - "OpenAI.ToolChoiceObjectCodeInterpreter": { + "OpenAI.ToolChoiceCodeInterpreter": { "type": "object", "required": [ "type" @@ -20792,11 +35003,12 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } - ] + ], + "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools)." }, - "OpenAI.ToolChoiceObjectComputer": { + "OpenAI.ToolChoiceComputerUsePreview": { "type": "object", "required": [ "type" @@ -20811,11 +35023,40 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } - ] + ], + "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools)." + }, + "OpenAI.ToolChoiceCustom": { + "type": "object", + "required": [ + "type", + "name" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom" + ], + "description": "For custom tool calling, the type is always `custom`.", + "x-stainless-const": true + }, + "name": { + "type": "string", + "description": "The name of the custom tool to call." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + } + ], + "description": "Use this option to force the model to call a specific custom tool.", + "title": "Custom tool" }, - "OpenAI.ToolChoiceObjectFileSearch": { + "OpenAI.ToolChoiceFileSearch": { "type": "object", "required": [ "type" @@ -20830,11 +35071,12 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } - ] + ], + "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools)." }, - "OpenAI.ToolChoiceObjectFunction": { + "OpenAI.ToolChoiceFunction": { "type": "object", "required": [ "type", @@ -20846,7 +35088,8 @@ "enum": [ "function" ], - "description": "For function calling, the type is always `function`." + "description": "For function calling, the type is always `function`.", + "x-stainless-const": true }, "name": { "type": "string", @@ -20855,12 +35098,13 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } ], - "description": "Use this option to force the model to call a specific function." + "description": "Use this option to force the model to call a specific function.", + "title": "Function tool" }, - "OpenAI.ToolChoiceObjectImageGen": { + "OpenAI.ToolChoiceImageGeneration": { "type": "object", "required": [ "type" @@ -20875,11 +35119,12 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } - ] + ], + "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools)." }, - "OpenAI.ToolChoiceObjectMCP": { + "OpenAI.ToolChoiceMCP": { "type": "object", "required": [ "type", @@ -20891,26 +35136,71 @@ "enum": [ "mcp" ], - "description": "For MCP tools, the type is always `mcp`." + "description": "For MCP tools, the type is always `mcp`.", + "x-stainless-const": true }, "server_label": { "type": "string", "description": "The label of the MCP server to use." }, "name": { - "type": "string", - "nullable": true, - "description": "The name of the tool to call on the server." + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } ], - "description": "Use this option to force the model to call a specific tool on a remote MCP server." + "description": "Use this option to force the model to call a specific tool on a remote MCP server.", + "title": "MCP tool" + }, + "OpenAI.ToolChoiceOptions": { + "type": "string", + "enum": [ + "none", + "auto", + "required" + ], + "description": "Controls which (if any) tool is called by the model.\n\n`none` means the model will not call any tool and instead generates a message.\n\n`auto` means the model can pick between generating a message or calling one or\nmore tools.\n\n`required` means the model must call one or more tools.", + "title": "Tool choice mode" }, - "OpenAI.ToolChoiceObjectType": { + "OpenAI.ToolChoiceParam": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParamType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "allowed_tools": "#/components/schemas/OpenAI.ToolChoiceAllowed", + "mcp": "#/components/schemas/OpenAI.ToolChoiceMCP", + "custom": "#/components/schemas/OpenAI.ToolChoiceCustom", + "apply_patch": "#/components/schemas/OpenAI.SpecificApplyPatchParam", + "shell": "#/components/schemas/OpenAI.SpecificFunctionShellParam", + "file_search": "#/components/schemas/OpenAI.ToolChoiceFileSearch", + "web_search_preview": "#/components/schemas/OpenAI.ToolChoiceWebSearchPreview", + "computer_use_preview": "#/components/schemas/OpenAI.ToolChoiceComputerUsePreview", + "web_search_preview_2025_03_11": "#/components/schemas/OpenAI.ToolChoiceWebSearchPreview20250311", + "image_generation": "#/components/schemas/OpenAI.ToolChoiceImageGeneration", + "code_interpreter": "#/components/schemas/OpenAI.ToolChoiceCodeInterpreter" + } + }, + "description": "How the model should select which tool (or tools) to use when generating\na response. See the `tools` parameter to see how to specify which tools\nthe model can call." + }, + "OpenAI.ToolChoiceParamType": { "anyOf": [ { "type": "string" @@ -20918,19 +35208,23 @@ { "type": "string", "enum": [ - "file_search", + "allowed_tools", "function", - "computer_use_preview", + "mcp", + "custom", + "apply_patch", + "shell", + "file_search", "web_search_preview", + "computer_use_preview", + "web_search_preview_2025_03_11", "image_generation", - "code_interpreter", - "mcp" + "code_interpreter" ] } - ], - "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](/docs/guides/tools)." + ] }, - "OpenAI.ToolChoiceObjectWebSearch": { + "OpenAI.ToolChoiceWebSearchPreview": { "type": "object", "required": [ "type" @@ -20945,19 +35239,30 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } ], "description": "Note: web_search is not yet available via Azure OpenAI." }, - "OpenAI.ToolChoiceOptions": { - "type": "string", - "enum": [ - "none", - "auto", - "required" + "OpenAI.ToolChoiceWebSearchPreview20250311": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "web_search_preview_2025_03_11" + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + } ], - "description": "Controls which (if any) tool is called by the model.\n\n`none` means the model will not call any tool and instead generates a message.\n\n`auto` means the model can pick between generating a message or calling one or\nmore tools.\n\n`required` means the model must call one or more tools." + "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools)." }, "OpenAI.ToolType": { "anyOf": [ @@ -20967,18 +35272,28 @@ { "type": "string", "enum": [ - "file_search", "function", + "file_search", "computer_use_preview", - "web_search_preview", + "web_search", "mcp", "code_interpreter", "image_generation", - "local_shell" + "local_shell", + "shell", + "custom", + "web_search_preview", + "apply_patch" ] } - ], - "description": "A tool that can be used to generate a response." + ] + }, + "OpenAI.ToolsArray": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.Tool" + }, + "description": "An array of tools the model may call while generating a response. You\ncan specify which tool to use by setting the `tool_choice` parameter.\n\nWe support the following categories of tools:\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\nmodel's capabilities, like [web search](https://platform.openai.com/docs/guides/tools-web-search)\nor [file search](https://platform.openai.com/docs/guides/tools-file-search). Learn more about\n[built-in tools](https://platform.openai.com/docs/guides/tools).\n- **MCP Tools**: Integrations with third-party systems via custom MCP servers\nor predefined connectors such as Google Drive and SharePoint. Learn more about\n[MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).\n- **Function calls (custom tools)**: Functions that are defined by you,\nenabling the model to call your own code with strongly typed arguments\nand outputs. Learn more about\n[function calling](https://platform.openai.com/docs/guides/function-calling). You can also use\ncustom tools to call your own code." }, "OpenAI.TopLogProb": { "type": "object", @@ -20992,91 +35307,278 @@ "type": "string" }, "logprob": { - "type": "number", - "format": "float" + "type": "number" }, "bytes": { "type": "array", "items": { - "type": "integer", - "format": "int32" + "type": "integer" } } }, - "description": "The top log probability of a token." + "description": "The top log probability of a token.", + "title": "Top log probability" }, - "OpenAI.UpdateVectorStoreFileAttributesRequest": { + "OpenAI.TranscriptionSegment": { "type": "object", "required": [ - "attributes" + "id", + "seek", + "start", + "end", + "text", + "tokens", + "temperature", + "avg_logprob", + "compression_ratio", + "no_speech_prob" ], "properties": { - "attributes": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" - } - ], - "nullable": true + "id": { + "type": "integer", + "description": "Unique identifier of the segment." + }, + "seek": { + "type": "integer", + "description": "Seek offset of the segment." + }, + "start": { + "type": "number", + "format": "float", + "description": "Start time of the segment in seconds." + }, + "end": { + "type": "number", + "format": "float", + "description": "End time of the segment in seconds." + }, + "text": { + "type": "string", + "description": "Text content of the segment." + }, + "tokens": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "Array of token IDs for the text content." + }, + "temperature": { + "type": "number", + "format": "float", + "description": "Temperature parameter used for generating the segment." + }, + "avg_logprob": { + "type": "number", + "format": "float", + "description": "Average logprob of the segment. If the value is lower than -1, consider the logprobs failed." + }, + "compression_ratio": { + "type": "number", + "format": "float", + "description": "Compression ratio of the segment. If the value is greater than 2.4, consider the compression failed." + }, + "no_speech_prob": { + "type": "number", + "format": "float", + "description": "Probability of no speech in the segment. If the value is higher than 1.0 and the `avg_logprob` is below -1, consider this segment silent." } } }, - "OpenAI.UpdateVectorStoreRequest": { + "OpenAI.TranscriptionWord": { "type": "object", + "required": [ + "word", + "start", + "end" + ], "properties": { - "name": { + "word": { "type": "string", - "nullable": true, - "description": "The name of the vector store." + "description": "The text content of the word." }, - "expires_after": { - "type": "object", - "allOf": [ + "start": { + "type": "number", + "format": "float", + "description": "Start time of the word in seconds." + }, + "end": { + "type": "number", + "format": "float", + "description": "End time of the word in seconds." + } + } + }, + "OpenAI.TruncationObject": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "auto", + "last_messages" + ], + "description": "The truncation strategy to use for the thread. The default is `auto`. If set to `last_messages`, the thread will be truncated to the n most recent messages in the thread. When set to `auto`, messages in the middle of the thread will be dropped to fit the context length of the model, `max_prompt_tokens`." + }, + "last_messages": { + "anyOf": [ + { + "type": "integer" + }, { - "$ref": "#/components/schemas/OpenAI.VectorStoreExpirationAfter" + "type": "null" } + ] + } + }, + "description": "Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run.", + "title": "Thread Truncation Controls" + }, + "OpenAI.Type": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "type" ], - "nullable": true + "description": "Specifies the event type. For a type action, this property is\n always set to `type`.", + "x-stainless-const": true, + "default": "type" }, + "text": { + "type": "string", + "description": "The text to type." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + } + ], + "description": "An action to type in text.", + "title": "Type" + }, + "OpenAI.UpdateConversationBody": { + "type": "object", + "required": [ + "metadata" + ], + "properties": { "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ], + "description": "Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.\n Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters." } } }, - "OpenAI.ValidateGraderRequest": { + "OpenAI.UpdateVectorStoreFileAttributesRequest": { "type": "object", "required": [ - "grader" + "attributes" ], "properties": { - "grader": { + "attributes": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.GraderStringCheck" + "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" }, { - "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" - }, + "type": "null" + } + ] + } + }, + "x-oaiMeta": { + "name": "Update vector store file attributes request" + } + }, + "OpenAI.UpdateVectorStoreRequest": { + "type": "object", + "properties": { + "name": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.GraderPython" + "type": "string" }, { - "$ref": "#/components/schemas/OpenAI.GraderScoreModel" + "type": "null" + } + ], + "description": "The name of the vector store." + }, + "expires_after": { + "$ref": "#/components/schemas/OpenAI.VectorStoreExpirationAfter" + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" }, { - "$ref": "#/components/schemas/OpenAI.GraderMulti" + "type": "null" } - ], - "description": "The grader used for the fine-tuning job." + ] } } }, + "OpenAI.UrlCitationBody": { + "type": "object", + "required": [ + "type", + "url", + "start_index", + "end_index", + "title" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "url_citation" + ], + "description": "The type of the URL citation. Always `url_citation`.", + "x-stainless-const": true, + "default": "url_citation" + }, + "url": { + "type": "string", + "description": "The URL of the web resource." + }, + "start_index": { + "type": "integer", + "description": "The index of the first character of the URL citation in the message." + }, + "end_index": { + "type": "integer", + "description": "The index of the last character of the URL citation in the message." + }, + "title": { + "type": "string", + "description": "The title of the web resource." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Annotation" + } + ], + "description": "A citation for a web resource used to generate a model response.", + "title": "URL citation" + }, "OpenAI.ValidateGraderResponse": { "type": "object", "properties": { @@ -21096,11 +35598,15 @@ }, { "$ref": "#/components/schemas/OpenAI.GraderMulti" + }, + { + "$ref": "#/components/schemas/GraderEndpoint" } ], "description": "The grader used for the fine-tuning job." } - } + }, + "title": "ValidateGraderResponse" }, "OpenAI.VectorStoreExpirationAfter": { "type": "object", @@ -21114,38 +35620,21 @@ "enum": [ "last_active_at" ], - "description": "Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`." + "description": "Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`.", + "x-stainless-const": true }, "days": { "type": "integer", - "format": "int32", "minimum": 1, - "maximum": 365, - "description": "The number of days after the anchor time that the vector store will expire." - } - }, - "description": "The expiration policy for a vector store." - }, - "OpenAI.VectorStoreFileAttributes": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "integer", - "format": "int32" - }, - { - "type": "number", - "format": "float" - } - ] + "maximum": 365, + "description": "The number of days after the anchor time that the vector store will expire." + } }, + "description": "The expiration policy for a vector store.", + "title": "Vector store expiration policy" + }, + "OpenAI.VectorStoreFileAttributes": { + "type": "object", "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard. Keys are strings\nwith a maximum length of 64 characters. Values are strings with a maximum\nlength of 512 characters, booleans, or numbers.", "x-oaiTypeLabel": "map" }, @@ -21169,7 +35658,8 @@ "enum": [ "vector_store.files_batch" ], - "description": "The object type, which is always `vector_store.file_batch`." + "description": "The object type, which is always `vector_store.file_batch`.", + "x-stainless-const": true }, "created_at": { "type": "integer", @@ -21178,7 +35668,7 @@ }, "vector_store_id": { "type": "string", - "description": "The ID of the [vector store](/docs/api-reference/vector-stores/object) that the [File](/docs/api-reference/files) is attached to." + "description": "The ID of the [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) that the [File](https://platform.openai.com/docs/api-reference/files) is attached to." }, "status": { "type": "string", @@ -21191,44 +35681,43 @@ "description": "The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`." }, "file_counts": { - "type": "object", - "properties": { - "in_progress": { - "type": "integer", - "format": "int32", - "description": "The number of files that are currently being processed." - }, - "completed": { - "type": "integer", - "format": "int32", - "description": "The number of files that have been processed." - }, - "failed": { - "type": "integer", - "format": "int32", - "description": "The number of files that have failed to process." - }, - "cancelled": { - "type": "integer", - "format": "int32", - "description": "The number of files that where cancelled." - }, - "total": { - "type": "integer", - "format": "int32", - "description": "The total number of files." - } - }, - "required": [ - "in_progress", - "completed", - "failed", - "cancelled", - "total" - ] + "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObjectFileCounts" } }, - "description": "A batch of files attached to a vector store." + "description": "A batch of files attached to a vector store.", + "title": "Vector store file batch", + "x-oaiMeta": { + "name": "The vector store files batch object", + "beta": true, + "example": "{\n \"id\": \"vsfb_123\",\n \"object\": \"vector_store.files_batch\",\n \"created_at\": 1698107661,\n \"vector_store_id\": \"vs_abc123\",\n \"status\": \"completed\",\n \"file_counts\": {\n \"in_progress\": 0,\n \"completed\": 100,\n \"failed\": 0,\n \"cancelled\": 0,\n \"total\": 100\n }\n}\n" + } + }, + "OpenAI.VectorStoreFileBatchObjectFileCounts": { + "type": "object", + "required": [ + "in_progress", + "completed", + "failed", + "cancelled", + "total" + ], + "properties": { + "in_progress": { + "type": "integer" + }, + "completed": { + "type": "integer" + }, + "failed": { + "type": "integer" + }, + "cancelled": { + "type": "integer" + }, + "total": { + "type": "integer" + } + } }, "OpenAI.VectorStoreFileObject": { "type": "object", @@ -21251,11 +35740,11 @@ "enum": [ "vector_store.file" ], - "description": "The object type, which is always `vector_store.file`." + "description": "The object type, which is always `vector_store.file`.", + "x-stainless-const": true }, "usage_bytes": { "type": "integer", - "format": "int32", "description": "The total vector store usage in bytes. Note that this may be different from the original file size." }, "created_at": { @@ -21265,7 +35754,7 @@ }, "vector_store_id": { "type": "string", - "description": "The ID of the [vector store](/docs/api-reference/vector-stores/object) that the [File](/docs/api-reference/files) is attached to." + "description": "The ID of the [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) that the [File](https://platform.openai.com/docs/api-reference/files) is attached to." }, "status": { "type": "string", @@ -21278,48 +35767,56 @@ "description": "The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use." }, "last_error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "enum": [ - "server_error", - "unsupported_file", - "invalid_file" - ], - "description": "One of `server_error` or `rate_limit_exceeded`." + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileObjectLastError" }, - "message": { - "type": "string", - "description": "A human-readable description of the error." + { + "type": "null" } - }, - "required": [ - "code", - "message" - ], - "nullable": true, - "description": "The last error associated with this vector store file. Will be `null` if there are no errors." + ] }, "chunking_strategy": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponseParam" - } - ], - "description": "The strategy used to chunk the file." + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponse" }, "attributes": { - "type": "object", - "allOf": [ + "anyOf": [ { "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" + }, + { + "type": "null" } - ], - "nullable": true + ] } }, - "description": "A list of files attached to a vector store." + "description": "A list of files attached to a vector store.", + "title": "Vector store files", + "x-oaiMeta": { + "name": "The vector store file object", + "beta": true, + "example": "{\n \"id\": \"file-abc123\",\n \"object\": \"vector_store.file\",\n \"usage_bytes\": 1234,\n \"created_at\": 1698107661,\n \"vector_store_id\": \"vs_abc123\",\n \"status\": \"completed\",\n \"last_error\": null,\n \"chunking_strategy\": {\n \"type\": \"static\",\n \"static\": {\n \"max_chunk_size_tokens\": 800,\n \"chunk_overlap_tokens\": 400\n }\n }\n}\n" + } + }, + "OpenAI.VectorStoreFileObjectLastError": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "string", + "enum": [ + "server_error", + "unsupported_file", + "invalid_file" + ] + }, + "message": { + "type": "string" + } + } }, "OpenAI.VectorStoreObject": { "type": "object", @@ -21344,7 +35841,8 @@ "enum": [ "vector_store" ], - "description": "The object type, which is always `vector_store`." + "description": "The object type, which is always `vector_store`.", + "x-stainless-const": true }, "created_at": { "type": "integer", @@ -21357,81 +35855,302 @@ }, "usage_bytes": { "type": "integer", - "format": "int32", "description": "The total number of bytes used by the files in the vector store." }, "file_counts": { - "type": "object", - "properties": { - "in_progress": { - "type": "integer", - "format": "int32", - "description": "The number of files that are currently being processed." + "$ref": "#/components/schemas/OpenAI.VectorStoreObjectFileCounts" + }, + "status": { + "type": "string", + "enum": [ + "expired", + "in_progress", + "completed" + ], + "description": "The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use." + }, + "expires_after": { + "$ref": "#/components/schemas/OpenAI.VectorStoreExpirationAfter" + }, + "expires_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" }, - "completed": { - "type": "integer", - "format": "int32", - "description": "The number of files that have been successfully processed." + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" + }, + "last_active_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" }, - "failed": { - "type": "integer", - "format": "int32", - "description": "The number of files that have failed to process." + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" }, - "cancelled": { - "type": "integer", - "format": "int32", - "description": "The number of files that were cancelled." + { + "type": "null" + } + ] + } + }, + "description": "A vector store is a collection of processed files can be used by the `file_search` tool.", + "title": "Vector store", + "x-oaiMeta": { + "name": "The vector store object", + "example": "{\n \"id\": \"vs_123\",\n \"object\": \"vector_store\",\n \"created_at\": 1698107661,\n \"usage_bytes\": 123456,\n \"last_active_at\": 1698107661,\n \"name\": \"my_vector_store\",\n \"status\": \"completed\",\n \"file_counts\": {\n \"in_progress\": 0,\n \"completed\": 100,\n \"cancelled\": 0,\n \"failed\": 0,\n \"total\": 100\n },\n \"last_used_at\": 1698107661\n}\n" + } + }, + "OpenAI.VectorStoreObjectFileCounts": { + "type": "object", + "required": [ + "in_progress", + "completed", + "failed", + "cancelled", + "total" + ], + "properties": { + "in_progress": { + "type": "integer" + }, + "completed": { + "type": "integer" + }, + "failed": { + "type": "integer" + }, + "cancelled": { + "type": "integer" + }, + "total": { + "type": "integer" + } + } + }, + "OpenAI.VectorStoreSearchRequest": { + "type": "object", + "required": [ + "query" + ], + "properties": { + "query": { + "anyOf": [ + { + "type": "string" }, - "total": { - "type": "integer", - "format": "int32", - "description": "The total number of files." + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "A query string for a search" + }, + "rewrite_query": { + "type": "boolean", + "description": "Whether to rewrite the natural language query for vector search." + }, + "max_num_results": { + "type": "integer", + "minimum": 1, + "maximum": 50, + "description": "The maximum number of results to return. This number should be between 1 and 50 inclusive.", + "default": 10 + }, + "filters": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComparisonFilter" + }, + { + "$ref": "#/components/schemas/OpenAI.CompoundFilter" + } + ], + "description": "A filter to apply based on file attributes." + }, + "ranking_options": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.VectorStoreSearchRequestRankingOptions" + } + ], + "description": "Ranking options for search." + } + }, + "x-oaiMeta": { + "name": "Vector store search request" + } + }, + "OpenAI.VectorStoreSearchRequestRankingOptions": { + "type": "object", + "properties": { + "ranker": { + "type": "string", + "enum": [ + "none", + "auto", + "default-2024-11-15" + ], + "default": "auto" + }, + "score_threshold": { + "type": "number", + "minimum": 0, + "maximum": 1 + } + } + }, + "OpenAI.VectorStoreSearchResultContentObject": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ], + "description": "The type of content." + }, + "text": { + "type": "string", + "description": "The text content returned from search." + } + }, + "x-oaiMeta": { + "name": "Vector store search result content object" + } + }, + "OpenAI.VectorStoreSearchResultItem": { + "type": "object", + "required": [ + "file_id", + "filename", + "score", + "attributes", + "content" + ], + "properties": { + "file_id": { + "type": "string", + "description": "The ID of the vector store file." + }, + "filename": { + "type": "string", + "description": "The name of the vector store file." + }, + "score": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "The similarity score for the result." + }, + "attributes": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" + }, + { + "type": "null" } - }, - "required": [ - "in_progress", - "completed", - "failed", - "cancelled", - "total" ] }, - "status": { + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.VectorStoreSearchResultContentObject" + }, + "description": "Content chunks from the file." + } + }, + "x-oaiMeta": { + "name": "Vector store search result item" + } + }, + "OpenAI.VectorStoreSearchResultsPage": { + "type": "object", + "required": [ + "object", + "search_query", + "data", + "has_more", + "next_page" + ], + "properties": { + "object": { "type": "string", "enum": [ - "expired", - "in_progress", - "completed" + "vector_store.search_results.page" ], - "description": "The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use." + "description": "The object type, which is always `vector_store.search_results.page`", + "x-stainless-const": true }, - "expires_after": { - "$ref": "#/components/schemas/OpenAI.VectorStoreExpirationAfter" + "search_query": { + "type": "array", + "items": { + "type": "string" + } }, - "expires_at": { - "type": "integer", - "format": "unixtime", - "nullable": true, - "description": "The Unix timestamp (in seconds) for when the vector store will expire." + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.VectorStoreSearchResultItem" + }, + "description": "The list of search result items." }, - "last_active_at": { - "type": "integer", - "format": "unixtime", - "nullable": true, - "description": "The Unix timestamp (in seconds) for when the vector store was last active." + "has_more": { + "type": "boolean", + "description": "Indicates if there are more results to fetch." }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "next_page": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } }, - "description": "A vector store is a collection of processed files can be used by the `file_search` tool." + "x-oaiMeta": { + "name": "Vector store search results page" + } + }, + "OpenAI.Verbosity": { + "anyOf": [ + { + "type": "string", + "enum": [ + "low", + "medium", + "high" + ] + }, + { + "type": "null" + } + ], + "description": "Constrains the verbosity of the model's response. Lower values will result in\nmore concise responses, while higher values will result in more verbose responses.\nCurrently supported values are `low`, `medium`, and `high`." }, "OpenAI.VoiceIdsShared": { "anyOf": [ @@ -21446,34 +36165,38 @@ "ballad", "coral", "echo", - "fable", - "onyx", - "nova", "sage", "shimmer", - "verse" + "verse", + "marin", + "cedar" ] } ] }, - "OpenAI.WebSearchAction": { + "OpenAI.Wait": { "type": "object", "required": [ "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.WebSearchActionType" + "type": "string", + "enum": [ + "wait" + ], + "description": "Specifies the event type. For a wait action, this property is\n always set to `wait`.", + "x-stainless-const": true, + "default": "wait" } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "find": "#/components/schemas/OpenAI.WebSearchActionFind", - "open_page": "#/components/schemas/OpenAI.WebSearchActionOpenPage", - "search": "#/components/schemas/OpenAI.WebSearchActionSearch" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComputerAction" } - } + ], + "description": "A wait action.", + "title": "Wait" }, "OpenAI.WebSearchActionFind": { "type": "object", @@ -21488,7 +36211,8 @@ "enum": [ "find" ], - "description": "The action type." + "description": "The action type.", + "x-stainless-const": true }, "url": { "type": "string", @@ -21500,12 +36224,8 @@ "description": "The pattern or text to search for within the page." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.WebSearchAction" - } - ], - "description": "Action type \"find\": Searches for a pattern within a loaded page." + "description": "Action type \"find\": Searches for a pattern within a loaded page.", + "title": "Find action" }, "OpenAI.WebSearchActionOpenPage": { "type": "object", @@ -21519,7 +36239,8 @@ "enum": [ "open_page" ], - "description": "The action type." + "description": "The action type.", + "x-stainless-const": true }, "url": { "type": "string", @@ -21527,12 +36248,8 @@ "description": "The URL opened by the model." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.WebSearchAction" - } - ], - "description": "Action type \"open_page\" - Opens a specific URL from search results." + "description": "Action type \"open_page\" - Opens a specific URL from search results.", + "title": "Open page action" }, "OpenAI.WebSearchActionSearch": { "type": "object", @@ -21546,272 +36263,219 @@ "enum": [ "search" ], - "description": "The action type." + "description": "The action type.", + "x-stainless-const": true }, "query": { "type": "string", "description": "The search query." + }, + "sources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.WebSearchActionSearchSources" + }, + "description": "The sources used in the search.", + "title": "Web search sources" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.WebSearchAction" - } - ], - "description": "Action type \"search\" - Performs a web search query." - }, - "OpenAI.WebSearchActionType": { - "type": "string", - "enum": [ - "search", - "open_page", - "find" - ] + "description": "Action type \"search\" - Performs a web search query.", + "title": "Search action" }, - "OpenAI.WebSearchPreviewTool": { + "OpenAI.WebSearchActionSearchSources": { "type": "object", "required": [ - "type" + "type", + "url" ], "properties": { "type": { "type": "string", "enum": [ - "web_search_preview" - ], - "description": "The type of the web search tool. One of `web_search_preview` or `web_search_preview_2025_03_11`." - }, - "user_location": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Location" - } + "url" ], - "nullable": true, - "description": "The user's location." + "x-stainless-const": true }, - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "description": "High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Tool" + "url": { + "type": "string" } - ], - "description": "Note: web_search is not yet available via Azure OpenAI." + } }, - "OpenAI.WebSearchToolCallItemParam": { + "OpenAI.WebSearchApproximateLocation": { "type": "object", - "required": [ - "type", - "action" - ], "properties": { "type": { "type": "string", "enum": [ - "web_search_call" + "approximate" + ], + "description": "The type of location approximation. Always `approximate`.", + "x-stainless-const": true, + "default": "approximate" + }, + "country": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } ] }, - "action": { - "allOf": [ + "region": { + "anyOf": [ + { + "type": "string" + }, { - "$ref": "#/components/schemas/OpenAI.WebSearchAction" + "type": "null" } - ], - "description": "An object describing the specific action taken in this web search call.\nIncludes details on how the model used the web (search, open_page, find)." + ] + }, + "city": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "timezone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } - ], - "description": "Note: web_search is not yet available via Azure OpenAI." + "description": "The approximate location of the user.", + "title": "Web search approximate location" }, - "OpenAI.WebSearchToolCallItemResource": { + "OpenAI.WebSearchPreviewTool": { "type": "object", "required": [ - "type", - "status", - "action" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "web_search_call" - ] - }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "searching", - "completed", - "failed" + "web_search_preview" ], - "description": "The status of the web search tool call." + "description": "The type of the web search tool. One of `web_search_preview` or `web_search_preview_2025_03_11`.", + "x-stainless-const": true, + "default": "web_search_preview" }, - "action": { + "user_location": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApproximateLocation" + }, + { + "type": "null" + } + ] + }, + "search_context_size": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.WebSearchAction" + "$ref": "#/components/schemas/OpenAI.SearchContextSize" } ], - "description": "An object describing the specific action taken in this web search call.\nIncludes details on how the model used the web (search, open_page, find)." + "description": "High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.Tool" } ], - "description": "Note: web_search is not yet available via Azure OpenAI." + "description": "Note: web_search is not yet available via Azure OpenAI.", + "title": "Web search preview" }, - "PineconeChatDataSource": { + "OpenAI.WebSearchTool": { "type": "object", "required": [ - "type", - "parameters" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "pinecone" + "web_search" ], - "description": "The discriminated type identifier, which is always 'pinecone'." + "description": "The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.", + "default": "web_search" }, - "parameters": { - "type": "object", - "properties": { - "top_n_documents": { - "type": "integer", - "format": "int32", - "description": "The configured number of documents to feature in the query." - }, - "in_scope": { - "type": "boolean", - "description": "Whether queries should be restricted to use of the indexed data." - }, - "strictness": { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 5, - "description": "The configured strictness of the search relevance filtering.\nHigher strictness will increase precision but lower recall of the answer." - }, - "max_search_queries": { - "type": "integer", - "format": "int32", - "description": "The maximum number of rewritten queries that should be sent to the search provider for a single user message.\nBy default, the system will make an automatic determination." - }, - "allow_partial_result": { - "type": "boolean", - "description": "If set to true, the system will allow partial search results to be used and the request will fail if all\npartial queries fail. If not specified or specified as false, the request will fail if any search query fails.", - "default": false - }, - "include_contexts": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "citations", - "intent", - "all_retrieved_documents" - ] - }, - "maxItems": 3, - "description": "The output context properties to include on the response.\nBy default, citations and intent will be requested.", - "default": [ - "citations", - "intent" - ] - }, - "environment": { - "type": "string", - "description": "The environment name to use with Pinecone." - }, - "index_name": { - "type": "string", - "description": "The name of the Pinecone database index to use." - }, - "authentication": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceApiKeyAuthenticationOptions" - } - ], - "description": "The authentication mechanism to use with Pinecone.\nSupported authentication mechanisms for Pinecone include: API key." + "filters": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchToolFilters" }, - "embedding_dependency": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" - } - ], - "description": "The vectorization source to use as an embedding dependency for the Pinecone data source.\nSupported vectorization sources for Pinecone include: deployment name." + { + "type": "null" + } + ] + }, + "user_location": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchApproximateLocation" }, - "fields_mapping": { - "type": "object", - "properties": { - "content_fields": { - "type": "array", - "items": { - "type": "string" - } - }, - "title_field": { - "type": "string" - }, - "url_field": { - "type": "string" - }, - "filepath_field": { - "type": "string" - }, - "content_fields_separator": { - "type": "string" - } - }, - "required": [ - "content_fields" - ], - "description": "Field mappings to apply to data used by the Pinecone data source.\nNote that content field mappings are required for Pinecone." + { + "type": "null" } - }, - "required": [ - "environment", - "index_name", - "authentication", - "embedding_dependency", - "fields_mapping" + ] + }, + "search_context_size": { + "type": "string", + "enum": [ + "low", + "medium", + "high" ], - "description": "The parameter information to control the use of the Pinecone data source." + "description": "High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default.", + "default": "medium" } }, "allOf": [ { - "$ref": "#/components/schemas/AzureChatDataSource" + "$ref": "#/components/schemas/OpenAI.Tool" } - ] + ], + "description": "Note: web_search is not yet available via Azure OpenAI.", + "title": "Web search" + }, + "OpenAI.WebSearchToolFilters": { + "type": "object", + "properties": { + "allowed_domains": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "null" + } + ] + } + } }, - "Quality": { + "Order": { "type": "string", "enum": [ - "high", - "low" - ], - "description": "The quality of the video content to retrieve.\nThis specifies the quality of the video content that should be returned." + "asc", + "desc" + ] }, "ResponseFormatJSONSchemaRequest": { "type": "object", @@ -21829,219 +36493,260 @@ }, "json_schema": { "type": "object", - "additionalProperties": {}, + "unevaluatedProperties": {}, "description": "JSON Schema for the response format" } } }, - "ResponseModalities": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - }, - "description": "Output types that you would like the model to generate.\nMost models are capable of generating text, which is the default:\n\n`[\"text\"]`\n\nThe `gpt-4o-audio-preview` model can also be used to\n[generate audio](/docs/guides/audio). To request that this model generate\nboth text and audio responses, you can use:\n\n`[\"text\", \"audio\"]`" - }, - "VideoGeneration": { + "SpeechGenerationResponse": { "type": "object", "required": [ - "object", - "id", - "job_id", - "created_at", - "width", - "height", - "n_seconds", - "prompt" + "audio" ], "properties": { - "object": { + "audio": { + "type": "string", + "contentEncoding": "base64", + "description": "The generated audio, generated in the requested audio output format." + } + }, + "description": "A representation of a response for a text-to-speech operation." + }, + "SpeechGenerationResponseFormat": { + "oneOf": [ + { + "type": "string" + }, + { "type": "string", "enum": [ - "video.generation" + "mp3", + "opus", + "aac", + "flac", + "wav", + "pcm" ] + } + ], + "description": "The supported audio output formats for text-to-speech." + }, + "SpeechVoice": { + "anyOf": [ + { + "type": "string" }, - "id": { + { "type": "string", - "description": "The id of the video generation." - }, - "job_id": { + "enum": [ + "alloy", + "echo", + "fable", + "onyx", + "nova", + "shimmer" + ] + } + ], + "description": "The available voices for text-to-speech." + }, + "VideoContent": { + "type": "object", + "required": [ + "content" + ], + "properties": { + "content": { + "type": "string", + "contentEncoding": "base64" + } + } + }, + "VideoContentVariant": { + "anyOf": [ + { "type": "string", - "description": "The id of the video generation job for this video." + "enum": [ + "video", + "thumbnail", + "spritesheet" + ] }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The time when the video generation was created." + { + "type": "string" + } + ], + "description": "Selectable asset variants for downloaded content." + }, + "VideoList": { + "type": "object", + "required": [ + "object", + "data", + "has_more" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "list" + ] }, - "width": { - "type": "integer", - "format": "int32", - "description": "The width of the video." + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VideoResource" + }, + "description": "The list of video generation jobs." }, - "height": { - "type": "integer", - "format": "int32", - "description": "The height of the video." + "has_more": { + "type": "boolean", + "description": "A flag indicating whether there are more jobs available after the list." }, - "n_seconds": { - "type": "integer", - "format": "int32", - "description": "The duration of the video generation." + "first_id": { + "type": "string", + "description": "The ID of the first video in the current page, if available." }, - "prompt": { + "last_id": { "type": "string", - "description": "The prompt for this video generation." + "description": "The ID of the last video in the current page, if available." } }, - "description": "A video generation result." + "description": "A list of video generation jobs." }, - "VideoGenerationJob": { + "VideoResource": { "type": "object", "required": [ - "object", "id", + "object", + "model", "status", + "progress", "created_at", - "prompt", - "model", - "n_variants", - "n_seconds", - "height", - "width" + "size", + "seconds" ], "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the video job." + }, "object": { "type": "string", - "enum": [ - "video.generation.job" - ] + "description": "The object type, which is always `video`." }, - "id": { + "model": { "type": "string", - "description": "The id of the job." + "description": "The video generation model deployment that produced the job." }, "status": { "allOf": [ { - "$ref": "#/components/schemas/JobStatus" + "$ref": "#/components/schemas/VideoStatus" } ], - "description": "The status of the job." + "description": "Current lifecycle status of the video job." + }, + "progress": { + "type": "integer", + "format": "int32", + "description": "Approximate completion percentage for the generation task." }, "created_at": { "type": "integer", "format": "unixtime", - "description": "The time when the job was created." + "description": "Unix timestamp (seconds) for when the job was created." }, - "finished_at": { + "completed_at": { "type": "integer", "format": "unixtime", - "description": "The time when the job finished with all video generations." + "description": "Unix timestamp (seconds) for when the job completed, if finished." }, "expires_at": { "type": "integer", "format": "unixtime", - "description": "The time when the job gets automatically deleted from the service. The video content and metadata of the job should be stored before this date to avoid data loss." + "description": "Unix timestamp (seconds) for when the video generation expires (and will be deleted)." }, - "generations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VideoGeneration" - }, - "description": "The generated videos for this job. The number depends on the given n_variants and the creation success of the generations." + "size": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoSize" + } + ], + "description": "The resolution of the generated video." }, - "prompt": { - "type": "string", - "description": "The prompt for this video generation job." + "seconds": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoSeconds" + } + ], + "description": "Duration of the generated clip in seconds." }, - "model": { + "remixed_from_video_id": { "type": "string", - "description": "The name of the deployment to use for this video generation job." - }, - "n_variants": { - "type": "integer", - "format": "int32", - "description": "The number of videos to create as variants for this video generation job." - }, - "n_seconds": { - "type": "integer", - "format": "int32", - "description": "The duration of the video generation job." - }, - "height": { - "type": "integer", - "format": "int32", - "description": "The height of the video." - }, - "width": { - "type": "integer", - "format": "int32", - "description": "The height of the video." - }, - "inpaint_items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InpaintItem" - }, - "description": "Optional inpainting items for this video generation job." + "description": "Identifier of the source video if this video is a remix." }, - "failure_reason": { - "anyOf": [ - { - "type": "string" - }, + "error": { + "allOf": [ { - "type": "string", - "enum": [ - "input_moderation", - "internal_error" - ] + "$ref": "#/components/schemas/Error" } ], - "x-oaiTypeLabel": "string" + "description": "Error payload that explains why generation failed, if applicable." } }, - "description": "A video generation job." + "description": "Structured information describing a generated video job." }, - "VideoGenerationJobList": { - "type": "object", - "required": [ - "object", - "data", - "has_more" - ], - "properties": { - "object": { + "VideoSeconds": { + "anyOf": [ + { "type": "string", "enum": [ - "list" + "4", + "8", + "12" ] }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VideoGenerationJob" - }, - "description": "The list of video generation jobs." - }, - "has_more": { - "type": "boolean", - "description": "A flag indicating whether there are more jobs available after the list." - }, - "first_id": { + { + "type": "string" + } + ], + "description": "Supported clip durations, measured in seconds." + }, + "VideoSize": { + "anyOf": [ + { "type": "string", - "description": "The ID of the first job in the current page, if available." + "enum": [ + "720x1280", + "1280x720", + "1024x1792", + "1792x1024" + ] }, - "last_id": { + { + "type": "string" + } + ], + "description": "Output dimensions formatted as `{width}x{height}`." + }, + "VideoStatus": { + "anyOf": [ + { "type": "string", - "description": "The ID of the last job in the current page, if available." + "enum": [ + "queued", + "in_progress", + "completed", + "failed" + ] + }, + { + "type": "string" } - }, - "description": "A list of video generation jobs." + ], + "description": "Lifecycle state of a generated video." } }, "securitySchemes": { diff --git a/specification/ai/data-plane/OpenAI.v1/azure-v1-preview-generated.yaml b/specification/ai/data-plane/OpenAI.v1/azure-v1-preview-generated.yaml index c26f185b3ec1..907c0305cc06 100644 --- a/specification/ai/data-plane/OpenAI.v1/azure-v1-preview-generated.yaml +++ b/specification/ai/data-plane/OpenAI.v1/azure-v1-preview-generated.yaml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.2.0 info: title: Azure AI Foundry Models Service license: @@ -6,22 +6,28 @@ info: url: https://github.com/openai/openai-openapi/blob/master/LICENSE version: preview tags: + - name: Audio + - name: Batch - name: Chat + - name: Completions - name: Containers - - name: Embeddings + - name: Conversations - name: Evals - name: Files + - name: Embeddings - name: Fine-tuning - name: Images - name: Models + - name: Realtime - name: Responses + - name: Threads - name: Vector Stores - - name: Video + - name: Videos paths: - /chat/completions: + /audio/speech: post: - operationId: createChatCompletion - description: Creates a chat completion. + operationId: createSpeech + summary: Generates text-to-speech audio from the input text. parameters: - name: api-version in: query @@ -42,12 +48,9 @@ paths: schema: type: string content: - application/json: - schema: - $ref: '#/components/schemas/AzureCreateChatCompletionResponse' - text/event-stream: + application/octet-stream: schema: - $ref: '#/components/schemas/AzureCreateChatCompletionStreamResponse' + contentMediaType: application/octet-stream default: description: An unexpected error response. headers: @@ -61,19 +64,59 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Chat + - Audio requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/AzureCreateChatCompletionRequest' + type: object + properties: + model: + type: string + description: The model to use for this text-to-speech request. + x-oaiTypeLabel: string + input: + type: string + maxLength: 4096 + description: The text to generate audio for. The maximum length is 4096 characters. + instructions: + type: string + maxLength: 4096 + description: Control the voice of your generated audio with additional instructions. Does not work with `tts-1` or `tts-1-hd`. + stream_format: + type: string + enum: + - sse + - audio + description: The format to stream the audio in. Supported formats are `sse` and `audio`. `sse` is not supported for `tts-1` or `tts-1-hd`. + default: audio + response_format: + allOf: + - $ref: '#/components/schemas/SpeechGenerationResponseFormat' + description: The audio output format for the spoken text. By default, the MP3 format will be used. + speed: + type: number + format: float + minimum: 0.25 + maximum: 4 + description: The speed of speech for generated audio. Values are valid in the range from 0.25 to 4.0, with 1.0 the default and higher values corresponding to faster speech. + default: 1 + voice: + allOf: + - $ref: '#/components/schemas/SpeechVoice' + description: The voice to use when generating the audio. Supported voices are `alloy`, `echo`, `fable`, `onyx`, `nova`, and `shimmer`. + required: + - model + - input + - voice x-ms-examples: - Create a chat completion: - $ref: ./examples/chat_completions.yaml - /containers: - get: - operationId: ListContainers + Create a speech request: + $ref: ./examples/audio_speech.yaml + /audio/transcriptions: + post: + operationId: createTranscription + summary: Transcribes audio into the input language. parameters: - name: api-version in: query @@ -84,39 +127,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: limit - in: query - required: false - description: |- - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the - default is 20. - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: order - in: query - required: false - description: |- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - for descending order. - schema: - type: string - enum: - - asc - - desc - explode: false - - name: after - in: query - required: false - description: |- - A cursor for use in pagination. `after` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include after=obj_foo in order to fetch the next page of the list. - schema: - type: string - explode: false responses: '200': description: The request has succeeded. @@ -129,7 +139,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ContainerListResource' + $ref: '#/components/schemas/AzureAudioTranscriptionResponse' + text/plain: + schema: + type: string default: description: An unexpected error response. headers: @@ -143,9 +156,71 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Containers + - Audio + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + file: + type: object + description: 'The audio file object (not file name) to transcribe, in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.' + x-oaiTypeLabel: file + x-oaiMeta: + exampleFilePath: speech.mp3 + model: + type: string + description: The model to use for this transcription request. + x-oaiTypeLabel: string + language: + type: object + description: The language of the input audio. Supplying the input language in [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`) format will improve accuracy and latency. + prompt: + type: object + description: An optional text to guide the model's style or continue a previous audio segment. The [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting) should match the audio language. This field is not supported when using `gpt-4o-transcribe-diarize`. + response_format: + type: object + temperature: + type: object + description: The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit. + include: + type: object + description: |- + Additional information to include in the transcription response. + `logprobs` will return the log probabilities of the tokens in the + response to understand the model's confidence in the transcription. + `logprobs` only works with response_format set to `json` and only with + the models `gpt-4o-transcribe` and `gpt-4o-mini-transcribe`. This field is not supported when using `gpt-4o-transcribe-diarize`. + timestamp_granularities: + type: object + description: |- + The timestamp granularities to populate for this transcription. `response_format` must be set `verbose_json` to use timestamp granularities. Either or both of these options are supported: `word`, or `segment`. Note: There is no additional latency for segment timestamps, but generating word timestamps incurs additional latency. + This option is not available for `gpt-4o-transcribe-diarize`. + stream: + type: object + chunking_strategy: + type: object + known_speaker_names: + type: object + description: Optional list of speaker names that correspond to the audio samples provided in `known_speaker_references[]`. Each entry should be a short identifier (for example `customer` or `agent`). Up to 4 speakers are supported. + known_speaker_references: + type: object + description: Optional list of audio samples (as [data URLs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs)) that contain known speaker references matching `known_speaker_names[]`. Each sample must be between 2 and 10 seconds, and can use any of the same input audio formats supported by `file`. + filename: + type: string + description: The optional filename or descriptive identifier to associate with with the audio data. + required: + - file + - model + x-ms-examples: + Create a transcription request: + $ref: ./examples/audio_transcription.yaml + /audio/translations: post: - operationId: CreateContainer + operationId: createTranslation + summary: Gets English language transcribed text and associated metadata from provided spoken audio data. parameters: - name: api-version in: query @@ -168,7 +243,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ContainerResource' + $ref: '#/components/schemas/AzureAudioTranslationResponse' + text/plain: + schema: + type: string default: description: An unexpected error response. headers: @@ -182,16 +260,46 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Containers + - Audio requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/OpenAI.CreateContainerBody' - /containers/{container_id}: - get: - operationId: RetrieveContainer + type: object + properties: + file: + type: object + description: 'The audio file object (not file name) translate, in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.' + x-oaiTypeLabel: file + x-oaiMeta: + exampleFilePath: speech.mp3 + model: + type: string + description: The model to use for this transcription request. + x-oaiTypeLabel: string + prompt: + type: object + description: An optional text to guide the model's style or continue a previous audio segment. The [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting) should be in English. + response_format: + type: object + description: 'The format of the output, in one of these options: `json`, `text`, `srt`, `verbose_json`, or `vtt`.' + temperature: + type: object + description: The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit. + filename: + type: string + description: The optional filename or descriptive identifier to associate with with the audio data + required: + - file + - model + x-ms-examples: + Create an audio translation request: + $ref: ./examples/audio_translation.yaml + /batches: + post: + operationId: createBatch + summary: Creates and executes a batch from an uploaded file of requests parameters: - name: api-version in: query @@ -202,64 +310,34 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: container_id - in: path + - name: accept + in: header required: true schema: type: string + enum: + - application/json responses: - '200': - description: The request has succeeded. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. - schema: - type: string - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.ContainerResource' - default: - description: An unexpected error response. + '201': + description: The request has succeeded and a new resource has been created as a result. headers: apim-request-id: required: false description: A request ID used for troubleshooting purposes. schema: type: string - content: - application/json: + deployment-enqueued-tokens: + required: true + description: Sum of enqueued tokens of all jobs that target to the deployment. schema: - $ref: '#/components/schemas/AzureErrorResponse' - tags: - - Containers - delete: - operationId: DeleteContainer - parameters: - - name: api-version - in: query - required: false - description: |- - The explicit Azure AI Foundry Models API version to use for this request. - `v1` if not otherwise specified. - schema: - $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' - default: v1 - - name: container_id - in: path - required: true - schema: - type: string - responses: - '200': - description: The request has succeeded. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. + type: integer + format: int64 + deployment-maximum-enqueued-tokens: + required: true + description: Maximum enqueued tokens of the deployment. schema: - type: string + type: integer + format: int64 content: application/json: schema: @@ -267,18 +345,123 @@ paths: required: - id - object - - deleted + - endpoint + - completion_window + - status + - created_at + - input_blob + - output_blob + - error_blob properties: id: type: string object: type: string enum: - - container.deleted - deleted: - type: boolean + - batch + description: The object type, which is always `batch`. + x-stainless-const: true + endpoint: + type: string + description: The OpenAI API endpoint used by the batch. + model: + type: string + description: |- + Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model + guide](https://platform.openai.com/docs/models) to browse and compare available models. + errors: + $ref: '#/components/schemas/OpenAI.BatchErrors' + completion_window: + type: string + description: The time frame within which the batch should be processed. + status: + type: string enum: - - true + - validating + - failed + - in_progress + - finalizing + - completed + - expired + - cancelling + - cancelled + description: The current status of the batch. + output_file_id: + type: string + description: The ID of the file containing the outputs of successfully executed requests. + error_file_id: + type: string + description: The ID of the file containing the outputs of requests with errors. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was created. + in_progress_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started processing. + expires_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch will expire. + finalizing_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started finalizing. + completed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was completed. + failed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch failed. + expired_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch expired. + cancelling_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started cancelling. + cancelled_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was cancelled. + request_counts: + $ref: '#/components/schemas/OpenAI.BatchRequestCounts' + usage: + allOf: + - $ref: '#/components/schemas/OpenAI.BatchUsage' + description: |- + Represents token usage details including input tokens, output tokens, a + breakdown of output tokens, and the total tokens used. Only populated on + batches created after September 7, 2025. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + input_blob: + anyOf: + - type: string + - type: 'null' + description: The blob url containing the input file for the batch. + output_blob: + anyOf: + - type: string + - type: 'null' + description: The blob url containing outputs of successfully executed requests. + error_blob: + anyOf: + - type: string + - type: 'null' + description: The blob url containing outputs of requests with errors. + input_file_id: + anyOf: + - type: string + - type: 'null' default: description: An unexpected error response. headers: @@ -292,10 +475,57 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Containers - /containers/{container_id}/files: - post: - operationId: CreateContainerFile + - Batch + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + input_file_id: + type: string + description: |- + The ID of an uploaded file that contains requests for the new batch. + + See [upload file](/docs/api-reference/files/create) for how to upload a file. + + Your input file must be formatted as a [JSONL file](/docs/api-reference/batch/requestInput), + and must be uploaded with the purpose `batch`. + input_blob: + type: string + description: The url of an Azure Storage blob to use as input for the batch. + output_folder: + type: object + properties: + url: + type: string + format: uri + description: The url of the Azure Storage folder where the batch output would be saved. + delimiter: + type: string + description: Optional. The delimiter used in the folder path, by default /. + required: + - url + endpoint: + type: string + enum: + - /v1/chat/completions + - /v1/embeddings + description: The endpoint to be used for all requests in the batch. Currently `/v1/chat/completions` is supported. + completion_window: + type: string + enum: + - 24h + description: The time frame within which the batch should be processed. Currently only `24h` is supported. + output_expires_after: + $ref: '#/components/schemas/FileExpiresAfter' + required: + - endpoint + - completion_window + get: + operationId: listBatches + summary: List your organization's batches. parameters: - name: api-version in: query @@ -306,11 +536,48 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: container_id - in: path + - name: accept + in: header required: true schema: type: string + enum: + - application/json + - name: after + in: query + required: false + description: |- + A cursor for use in pagination. `after` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include after=obj_foo in order to fetch the next page of the list. + schema: + type: string + explode: false + - name: limit + in: query + required: false + description: |- + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: $filter + in: query + required: false + description: The OData expression to describe the filtering conditions. + schema: + type: string + explode: false + - name: $orderby + in: query + required: false + description: The OData expression to describe the sorting order. + schema: + type: string + explode: false responses: '200': description: The request has succeeded. @@ -323,7 +590,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ContainerFileResource' + $ref: '#/components/schemas/OpenAI.ListBatchesResponse' default: description: An unexpected error response. headers: @@ -337,15 +604,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Containers - requestBody: - required: true - content: - multipart/form-data: - schema: - $ref: '#/components/schemas/OpenAI.CreateContainerFileBodyMultiPart' + - Batch + /batches/{batch_id}: get: - operationId: ListContainerFiles + operationId: retrieveBatch + summary: Retrieves a batch. parameters: - name: api-version in: query @@ -356,92 +619,17 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: container_id - in: path + - name: accept + in: header required: true schema: type: string - - name: limit - in: query - required: false - description: |- - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the - default is 20. - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: order - in: query - required: false - description: |- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - for descending order. - schema: - type: string enum: - - asc - - desc - explode: false - - name: after - in: query - required: false - description: |- - A cursor for use in pagination. `after` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include after=obj_foo in order to fetch the next page of the list. - schema: - type: string - explode: false - responses: - '200': - description: The request has succeeded. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. - schema: - type: string - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.ContainerFileListResource' - default: - description: An unexpected error response. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. - schema: - type: string - content: - application/json: - schema: - $ref: '#/components/schemas/AzureErrorResponse' - tags: - - Containers - /containers/{container_id}/files/{file_id}: - get: - operationId: RetrieveContainerFile - parameters: - - name: api-version - in: query - required: false - description: |- - The explicit Azure AI Foundry Models API version to use for this request. - `v1` if not otherwise specified. - schema: - $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' - default: v1 - - name: container_id - in: path - required: true - schema: - type: string - - name: file_id + - application/json + - name: batch_id in: path required: true + description: The ID of the batch to retrieve. schema: type: string responses: @@ -456,7 +644,127 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ContainerFileResource' + type: object + required: + - id + - object + - endpoint + - completion_window + - status + - created_at + - input_blob + - output_blob + - error_blob + properties: + id: + type: string + object: + type: string + enum: + - batch + description: The object type, which is always `batch`. + x-stainless-const: true + endpoint: + type: string + description: The OpenAI API endpoint used by the batch. + model: + type: string + description: |- + Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model + guide](https://platform.openai.com/docs/models) to browse and compare available models. + errors: + $ref: '#/components/schemas/OpenAI.BatchErrors' + completion_window: + type: string + description: The time frame within which the batch should be processed. + status: + type: string + enum: + - validating + - failed + - in_progress + - finalizing + - completed + - expired + - cancelling + - cancelled + description: The current status of the batch. + output_file_id: + type: string + description: The ID of the file containing the outputs of successfully executed requests. + error_file_id: + type: string + description: The ID of the file containing the outputs of requests with errors. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was created. + in_progress_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started processing. + expires_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch will expire. + finalizing_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started finalizing. + completed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was completed. + failed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch failed. + expired_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch expired. + cancelling_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started cancelling. + cancelled_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was cancelled. + request_counts: + $ref: '#/components/schemas/OpenAI.BatchRequestCounts' + usage: + allOf: + - $ref: '#/components/schemas/OpenAI.BatchUsage' + description: |- + Represents token usage details including input tokens, output tokens, a + breakdown of output tokens, and the total tokens used. Only populated on + batches created after September 7, 2025. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + input_blob: + anyOf: + - type: string + - type: 'null' + description: The blob url containing the input file for the batch. + output_blob: + anyOf: + - type: string + - type: 'null' + description: The blob url containing outputs of successfully executed requests. + error_blob: + anyOf: + - type: string + - type: 'null' + description: The blob url containing outputs of requests with errors. + input_file_id: + anyOf: + - type: string + - type: 'null' default: description: An unexpected error response. headers: @@ -470,9 +778,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Containers - delete: - operationId: DeleteContainerFile + - Batch + /batches/{batch_id}/cancel: + post: + operationId: cancelBatch + summary: Cancels an in-progress batch. parameters: - name: api-version in: query @@ -483,14 +793,17 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: container_id - in: path + - name: accept + in: header required: true schema: type: string - - name: file_id + enum: + - application/json + - name: batch_id in: path required: true + description: The ID of the batch to cancel. schema: type: string responses: @@ -509,18 +822,123 @@ paths: required: - id - object - - deleted + - endpoint + - completion_window + - status + - created_at + - input_blob + - output_blob + - error_blob properties: id: type: string object: type: string enum: - - container.file.deleted - deleted: - type: boolean + - batch + description: The object type, which is always `batch`. + x-stainless-const: true + endpoint: + type: string + description: The OpenAI API endpoint used by the batch. + model: + type: string + description: |- + Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model + guide](https://platform.openai.com/docs/models) to browse and compare available models. + errors: + $ref: '#/components/schemas/OpenAI.BatchErrors' + completion_window: + type: string + description: The time frame within which the batch should be processed. + status: + type: string enum: - - true + - validating + - failed + - in_progress + - finalizing + - completed + - expired + - cancelling + - cancelled + description: The current status of the batch. + output_file_id: + type: string + description: The ID of the file containing the outputs of successfully executed requests. + error_file_id: + type: string + description: The ID of the file containing the outputs of requests with errors. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was created. + in_progress_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started processing. + expires_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch will expire. + finalizing_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started finalizing. + completed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was completed. + failed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch failed. + expired_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch expired. + cancelling_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started cancelling. + cancelled_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was cancelled. + request_counts: + $ref: '#/components/schemas/OpenAI.BatchRequestCounts' + usage: + allOf: + - $ref: '#/components/schemas/OpenAI.BatchUsage' + description: |- + Represents token usage details including input tokens, output tokens, a + breakdown of output tokens, and the total tokens used. Only populated on + batches created after September 7, 2025. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + input_blob: + anyOf: + - type: string + - type: 'null' + description: The blob url containing the input file for the batch. + output_blob: + anyOf: + - type: string + - type: 'null' + description: The blob url containing outputs of successfully executed requests. + error_blob: + anyOf: + - type: string + - type: 'null' + description: The blob url containing outputs of requests with errors. + input_file_id: + anyOf: + - type: string + - type: 'null' default: description: An unexpected error response. headers: @@ -534,10 +952,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Containers - /containers/{container_id}/files/{file_id}/content: - get: - operationId: RetrieveContainerFileContent + - Batch + /chat/completions: + post: + operationId: createChatCompletion + description: Creates a chat completion. parameters: - name: api-version in: query @@ -548,16 +967,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: container_id - in: path - required: true - schema: - type: string - - name: file_id - in: path - required: true - schema: - type: string responses: '200': description: The request has succeeded. @@ -568,10 +977,114 @@ paths: schema: type: string content: - application/octet-stream: + application/json: schema: - type: string - format: binary + anyOf: + - type: object + required: + - id + - choices + - created + - model + - object + properties: + id: + type: string + description: A unique identifier for the chat completion. + choices: + type: array + items: + $ref: '#/components/schemas/OpenAI.CreateChatCompletionResponseChoices' + description: A list of chat completion choices. Can be more than one if `n` is greater than 1. + created: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) of when the chat completion was created. + model: + type: string + description: The model used for the chat completion. + system_fingerprint: + type: string + description: |- + This fingerprint represents the backend configuration that the model runs with. + + Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism. + object: + type: string + enum: + - chat.completion + description: The object type, which is always `chat.completion`. + x-stainless-const: true + usage: + $ref: '#/components/schemas/OpenAI.CompletionUsage' + prompt_filter_results: + type: array + items: + type: object + properties: + prompt_index: + type: integer + format: int32 + description: The index of the input prompt that this content filter result corresponds to. + content_filter_results: + allOf: + - $ref: '#/components/schemas/AzureContentFilterResultForPrompt' + description: The content filter results associated with the indexed input prompt. + required: + - prompt_index + - content_filter_results + - type: object + required: + - id + - choices + - created + - model + - object + properties: + id: + type: string + description: A unique identifier for the chat completion. Each chunk has the same ID. + choices: + type: array + items: + $ref: '#/components/schemas/OpenAI.CreateChatCompletionStreamResponseChoices' + description: |- + A list of chat completion choices. Can contain more than one elements if `n` is greater than 1. Can also be empty for the + last chunk if you set `stream_options: {"include_usage": true}`. + created: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) of when the chat completion was created. Each chunk has the same timestamp. + model: + type: string + description: The model to generate the completion. + system_fingerprint: + type: string + description: |- + This fingerprint represents the backend configuration that the model runs with. + Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism. + object: + type: string + enum: + - chat.completion.chunk + description: The object type, which is always `chat.completion.chunk`. + x-stainless-const: true + usage: + allOf: + - $ref: '#/components/schemas/OpenAI.CompletionUsage' + description: |- + An optional field that will only be present when you set + `stream_options: {"include_usage": true}` in your request. When present, it + contains a null value **except for the last chunk** which contains the + token usage statistics for the entire request. + + *NOTE:** If the stream is interrupted or cancelled, you may not + receive the final usage chunk which contains the total token usage for + the request. + delta: + $ref: '#/components/schemas/OpenAI.ChatCompletionStreamResponseDelta' + content_filter_results: + $ref: '#/components/schemas/AzureContentFilterResultForChoice' default: description: An unexpected error response. headers: @@ -585,11 +1098,271 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Containers - /embeddings: + - Chat + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + top_logprobs: + anyOf: + - type: integer + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + default: 1 + user: + type: string + description: |- + A unique identifier representing your end-user, which can help to + monitor and detect abuse. + safety_identifier: + type: string + description: |- + A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. + The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + prompt_cache_key: + type: string + description: Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching). + prompt_cache_retention: + anyOf: + - type: string + enum: + - in-memory + - 24h + - type: 'null' + messages: + type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + minItems: 1 + description: |- + A list of messages comprising the conversation so far. Depending on the + model you use, different message types (modalities) are supported, + like text, images, and audio. + model: + type: string + description: |- + Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) + to browse and compare available models. + modalities: + $ref: '#/components/schemas/OpenAI.ResponseModalities' + verbosity: + $ref: '#/components/schemas/OpenAI.Verbosity' + reasoning_effort: + $ref: '#/components/schemas/OpenAI.ReasoningEffort' + max_completion_tokens: + anyOf: + - type: integer + - type: 'null' + description: |- + An upper bound for the number of tokens that can be generated for a + completion, including visible output tokens and reasoning tokens. + frequency_penalty: + anyOf: + - type: number + - type: 'null' + minimum: -2 + maximum: 2 + description: |- + Number between -2.0 and 2.0. Positive values penalize new tokens based on + their existing frequency in the text so far, decreasing the model's + likelihood to repeat the same line verbatim. + presence_penalty: + anyOf: + - type: number + - type: 'null' + minimum: -2 + maximum: 2 + description: |- + Number between -2.0 and 2.0. Positive values penalize new tokens based on + whether they appear in the text so far, increasing the model's likelihood + to talk about new topics. + response_format: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseFormatText' + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchema' + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonObject' + description: |- + An object specifying the format that the model must output. + + Setting to `{ "type": "json_schema", "json_schema": {...} }` enables + Structured Outputs which ensures the model will match your supplied JSON + schema. + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures + the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model + to produce JSON yourself via a system or user message. Without this, the + model may generate an unending stream of whitespace until the generation + reaches the token limit, resulting in a long-running and seemingly "stuck" + request. Also note that the message content may be partially cut off if + `finish_reason="length"`, which indicates the generation exceeded + `max_tokens` or the conversation exceeded the max context length. + audio: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateChatCompletionRequestAudio' + - type: 'null' + description: |- + Parameters for audio output. Required when audio output is requested with + `modalities: ["audio"]`. + store: + anyOf: + - type: boolean + - type: 'null' + description: |- + Whether or not to store the output of this chat completion request for + use in model distillation or evals products. + stream: + anyOf: + - type: boolean + - type: 'null' + description: |- + If set to true, the model response data will be streamed to the client + as it is generated using server-sent events. + stop: + $ref: '#/components/schemas/OpenAI.StopConfiguration' + logit_bias: + anyOf: + - type: object + unevaluatedProperties: + type: integer + - type: 'null' + description: |- + Modify the likelihood of specified tokens appearing in the completion. + + Accepts a JSON object that maps tokens (specified by their token ID in the + tokenizer) to an associated bias value from -100 to 100. Mathematically, + the bias is added to the logits generated by the model prior to sampling. + The exact effect will vary per model, but values between -1 and 1 should + decrease or increase likelihood of selection; values like -100 or 100 + should result in a ban or exclusive selection of the relevant token. + x-oaiTypeLabel: map + logprobs: + anyOf: + - type: boolean + - type: 'null' + description: |- + Whether to return log probabilities of the output tokens or not. If true, + returns the log probabilities of each output token returned in the + `content` of `message`. + max_tokens: + anyOf: + - type: integer + - type: 'null' + description: |- + The maximum number of tokens that can be generated in the chat completion. + This value can be used to control costs for text generated via API. + + This value is now deprecated in favor of `max_completion_tokens`, and is + not compatible with o1 series models. + 'n': + anyOf: + - type: integer + - type: 'null' + minimum: 1 + maximum: 128 + description: How many chat completion choices to generate for each input message. Note that you will be charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to minimize costs. + default: 1 + prediction: + allOf: + - $ref: '#/components/schemas/OpenAI.PredictionContent' + description: |- + Configuration for a predicted output, which can greatly improve + response times when large parts of the model response are known + ahead of time. This is most common when you are regenerating a + file with only minor changes to most of the content. + seed: + anyOf: + - type: integer + - type: 'null' + minimum: -9223372036854776000 + maximum: 9223372036854776000 + description: |- + This feature is in Beta. + If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result. + Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend. + x-oaiMeta: + beta: true + stream_options: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionStreamOptions' + - type: 'null' + tools: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionTool' + - $ref: '#/components/schemas/OpenAI.CustomToolChatCompletions' + description: |- + A list of tools the model may call. You can provide either + [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) or + [function tools](https://platform.openai.com/docs/guides/function-calling). + tool_choice: + $ref: '#/components/schemas/OpenAI.ChatCompletionToolChoiceOption' + parallel_tool_calls: + $ref: '#/components/schemas/OpenAI.ParallelToolCalls' + function_call: + anyOf: + - type: string + enum: + - none + - auto + - $ref: '#/components/schemas/OpenAI.ChatCompletionFunctionCallOption' + description: |- + Deprecated in favor of `tool_choice`. + + Controls which (if any) function is called by the model. + + `none` means the model will not call a function and instead generates a + message. + + `auto` means the model can pick between generating a message or calling a + function. + + Specifying a particular function via `{"name": "my_function"}` forces the + model to call that function. + + `none` is the default when no functions are present. `auto` is the default + if functions are present. + functions: + type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionFunctions' + minItems: 1 + maxItems: 128 + description: |- + Deprecated in favor of `tools`. + + A list of functions the model may generate JSON inputs for. + user_security_context: + $ref: '#/components/schemas/AzureUserSecurityContext' + required: + - messages + - model + x-ms-examples: + Create a chat completion: + $ref: ./examples/chat_completions.yaml + /completions: post: - operationId: createEmbedding - summary: Creates an embedding vector representing the input text. + operationId: createCompletion + description: Creates a completion. parameters: - name: api-version in: query @@ -612,7 +1385,47 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.CreateEmbeddingResponse' + type: object + required: + - id + - choices + - created + - model + - object + properties: + id: + type: string + description: A unique identifier for the completion. + choices: + type: array + items: + $ref: '#/components/schemas/OpenAI.CreateCompletionResponseChoices' + description: The list of completion choices the model generated for the input prompt. + created: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) of when the completion was created. + model: + type: string + description: The model used for completion. + system_fingerprint: + type: string + description: |- + This fingerprint represents the backend configuration that the model runs with. + + Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism. + object: + type: string + enum: + - text_completion + description: The object type, which is always "text_completion" + x-stainless-const: true + usage: + $ref: '#/components/schemas/OpenAI.CompletionUsage' + prompt_filter_results: + type: array + items: + $ref: '#/components/schemas/AzureContentFilterResultForPrompt' default: description: An unexpected error response. headers: @@ -626,20 +1439,169 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Embeddings + - Completions requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/AzureCreateEmbeddingRequest' + type: object + properties: + model: + type: string + description: ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. + x-oaiTypeLabel: string + best_of: + anyOf: + - type: integer + - type: 'null' + minimum: 0 + maximum: 20 + description: |- + Generates `best_of` completions server-side and returns the "best" (the one with the highest log probability per token). Results cannot be streamed. + + When used with `n`, `best_of` controls the number of candidate completions and `n` specifies how many to return – `best_of` must be greater than `n`. + + *Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`. + default: 1 + echo: + anyOf: + - type: boolean + - type: 'null' + description: Echo back the prompt in addition to the completion + frequency_penalty: + anyOf: + - type: number + - type: 'null' + minimum: -2 + maximum: 2 + description: |- + Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. + + [See more information about frequency and presence penalties.](https://platform.openai.com/docs/guides/text-generation) + logit_bias: + anyOf: + - type: object + unevaluatedProperties: + type: integer + - type: 'null' + description: |- + Modify the likelihood of specified tokens appearing in the completion. + + Accepts a JSON object that maps tokens (specified by their token ID in the GPT tokenizer) to an associated bias value from -100 to 100. You can use this [tokenizer tool](/tokenizer?view=bpe) to convert text to token IDs. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token. + + As an example, you can pass `{"50256": -100}` to prevent the <|endoftext|> token from being generated. + x-oaiTypeLabel: map + logprobs: + anyOf: + - type: integer + - type: 'null' + minimum: 0 + maximum: 5 + description: |- + Include the log probabilities on the `logprobs` most likely output tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response. + + The maximum value for `logprobs` is 5. + max_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 0 + description: |- + The maximum number of [tokens](/tokenizer) that can be generated in the completion. + + The token count of your prompt plus `max_tokens` cannot exceed the model's context length. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens. + default: 16 + 'n': + anyOf: + - type: integer + - type: 'null' + minimum: 1 + maximum: 128 + description: |- + How many completions to generate for each prompt. + + *Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`. + default: 1 + presence_penalty: + anyOf: + - type: number + - type: 'null' + minimum: -2 + maximum: 2 + description: |- + Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. + + [See more information about frequency and presence penalties.](https://platform.openai.com/docs/guides/text-generation) + seed: + anyOf: + - type: integer + format: int64 + - type: 'null' + description: |- + If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result. + + Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend. + stop: + $ref: '#/components/schemas/OpenAI.StopConfiguration' + stream: + anyOf: + - type: boolean + - type: 'null' + description: 'Whether to stream back partial progress. If set, tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions).' + stream_options: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionStreamOptions' + - type: 'null' + suffix: + anyOf: + - type: string + - type: 'null' + description: |- + The suffix that comes after a completion of inserted text. + + This parameter is only supported for `gpt-3.5-turbo-instruct`. + temperature: + anyOf: + - type: number + - type: 'null' + minimum: 0 + maximum: 2 + description: |- + What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. + + We generally recommend altering this or `top_p` but not both. + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + minimum: 0 + maximum: 1 + description: |- + An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. + + We generally recommend altering this or `temperature` but not both. + default: 1 + user: + type: string + description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids). + prompt: + anyOf: + - type: string + - type: array + items: + type: string + - type: 'null' + default: <|endoftext|> + required: + - model x-ms-examples: - Create an embedding request: - $ref: ./examples/embeddings.yaml - /evals: + Create a chat completion: + $ref: ./examples/completions.yaml + /containers: get: - operationId: listEvals - summary: List evaluations for a project. + operationId: listContainers parameters: - name: api-version in: query @@ -650,27 +1612,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: after - in: query - required: false - description: Identifier for the last eval from the previous pagination request. - schema: - type: string - explode: false - name: limit in: query required: false - description: A limit on the number of evals to be returned in a single pagination response. + description: |- + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. schema: type: integer format: int32 @@ -680,28 +1627,33 @@ paths: in: query required: false description: |- - Sort order for evals by timestamp. Use `asc` for ascending order or - `desc` for descending order. + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + for descending order. schema: type: string enum: - asc - desc - default: asc explode: false - - name: order_by + - name: after in: query required: false description: |- - Evals can be ordered by creation time or last updated time. Use - `created_at` for creation time or `updated_at` for last updated - time. + A cursor for use in pagination. `after` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include after=obj_foo in order to fetch the next page of the list. + schema: + type: string + explode: false + - name: before + in: query + required: false + description: |- + A cursor for use in pagination. `before` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include before=obj_foo in order to fetch the previous page of the list. schema: type: string - enum: - - created_at - - updated_at - default: created_at explode: false responses: '200': @@ -715,7 +1667,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.EvalList' + $ref: '#/components/schemas/OpenAI.ContainerListResource' default: description: An unexpected error response. headers: @@ -729,20 +1681,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals + - Containers post: - operationId: createEval - description: |- - Create the structure of an evaluation that can be used to test a model's - performance. - - An evaluation is a set of testing criteria and a datasource. After - creating an evaluation, you can run it on different models and model - parameters. We support several types of graders and datasources. - - For more information, see the [Evals guide](/docs/guides/evals). - - NOTE: This Azure OpenAI API is in preview and subject to change. + operationId: createContainer parameters: - name: api-version in: query @@ -753,16 +1694,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview responses: '200': description: The request has succeeded. @@ -775,7 +1706,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.Eval' + $ref: '#/components/schemas/OpenAI.ContainerResource' default: description: An unexpected error response. headers: @@ -789,54 +1720,16 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals + - Containers requestBody: required: true content: application/json: schema: - type: object - properties: - statusCode: - type: number - enum: - - 201 - name: - type: string - description: The name of the evaluation. - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - data_source_config: - allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigParams' - description: The configuration for the data source used for the evaluation runs. Dictates the schema of the data used in the evaluation. - testing_criteria: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalGraderParams' - description: A list of graders for all eval runs in this group. Graders can reference variables in the data source using double curly braces notation, like `{{item.variable_name}}`. To reference the model's output, use the `sample` namespace (ie, `{{sample.output_text}}`). - required: - - statusCode - - data_source_config - - testing_criteria - /evals/{eval_id}: + $ref: '#/components/schemas/OpenAI.CreateContainerBody' + /containers/{container_id}: get: - operationId: getEval - summary: Retrieve an evaluation by its ID. - description: |- - Retrieves an evaluation by its ID. - - NOTE: This Azure OpenAI API is in preview and subject to change. + operationId: retrieveContainer parameters: - name: api-version in: query @@ -847,19 +1740,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: eval_id + - name: container_id in: path required: true + description: The ID of the container to retrieve. schema: type: string responses: @@ -874,7 +1758,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.Eval' + $ref: '#/components/schemas/OpenAI.ContainerResource' default: description: An unexpected error response. headers: @@ -888,13 +1772,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - post: - operationId: updateEval - description: |- - Update select, mutable properties of a specified evaluation. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Containers + delete: + operationId: deleteContainer parameters: - name: api-version in: query @@ -905,19 +1785,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: eval_id + - name: container_id in: path required: true + description: The ID of the container to delete. schema: type: string responses: @@ -929,10 +1800,6 @@ paths: description: A request ID used for troubleshooting purposes. schema: type: string - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.Eval' default: description: An unexpected error response. headers: @@ -946,24 +1813,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - name: - type: string - metadata: - $ref: '#/components/schemas/OpenAI.MetadataPropertyForRequest' - delete: - operationId: deleteEval - description: |- - Delete a specified evaluation. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Containers + /containers/{container_id}/files: + get: + operationId: listContainerFiles parameters: - name: api-version in: query @@ -974,47 +1827,68 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header + - name: container_id + in: path required: true + description: The ID of the container to list files from. + schema: + type: string + - name: limit + in: query + required: false description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + description: |- + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + for descending order. schema: type: string enum: - - preview - - name: eval_id - in: path - required: true + - asc + - desc + explode: false + - name: after + in: query + required: false + description: |- + A cursor for use in pagination. `after` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include after=obj_foo in order to fetch the next page of the list. schema: type: string - responses: - '200': - description: The request has succeeded. - headers: - apim-request-id: - required: false + explode: false + - name: before + in: query + required: false + description: |- + A cursor for use in pagination. `before` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include before=obj_foo in order to fetch the previous page of the list. + schema: + type: string + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false description: A request ID used for troubleshooting purposes. schema: type: string content: application/json: schema: - type: object - required: - - object - - deleted - - eval_id - properties: - object: - type: string - enum: - - eval.deleted - deleted: - type: boolean - eval_id: - type: string + $ref: '#/components/schemas/OpenAI.ContainerFileListResource' default: description: An unexpected error response. headers: @@ -1028,15 +1902,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - /evals/{eval_id}/runs: - get: - operationId: getEvalRuns - summary: '' - description: |- - Retrieve a list of runs for a specified evaluation. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Containers + post: + operationId: createContainerFile parameters: - name: api-version in: query @@ -1047,57 +1915,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: eval_id + - name: container_id in: path required: true + description: The ID of the container to create a file in. schema: type: string - - name: after - in: query - required: false - schema: - type: string - explode: false - - name: limit - in: query - required: false - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: order - in: query - required: false - schema: - type: string - enum: - - asc - - desc - default: asc - explode: false - - name: status - in: query - required: false - schema: - type: string - enum: - - queued - - in_progress - - completed - - canceled - - failed - explode: false responses: '200': description: The request has succeeded. @@ -1110,7 +1933,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.EvalRunList' + $ref: '#/components/schemas/OpenAI.ContainerFileResource' default: description: An unexpected error response. headers: @@ -1124,13 +1947,16 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - post: - operationId: createEvalRun - description: |- - Create a new evaluation run, beginning the grading process. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Containers + requestBody: + required: true + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/OpenAI.CreateContainerFileBody' + /containers/{container_id}/files/{file_id}: + get: + operationId: retrieveContainerFile parameters: - name: api-version in: query @@ -1141,24 +1967,21 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header + - name: container_id + in: path required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. + description: The ID of the container. schema: type: string - enum: - - preview - - name: eval_id + - name: file_id in: path required: true + description: The ID of the file to retrieve. schema: type: string responses: - '201': - description: The request has succeeded and a new resource has been created as a result. + '200': + description: The request has succeeded. headers: apim-request-id: required: false @@ -1168,7 +1991,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.EvalRun' + $ref: '#/components/schemas/OpenAI.ContainerFileResource' default: description: An unexpected error response. headers: @@ -1182,20 +2005,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.CreateEvalRunRequest' - /evals/{eval_id}/runs/{run_id}: - get: - operationId: getEvalRun - description: |- - Retrieve a specific evaluation run by its ID. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Containers + delete: + operationId: deleteContainerFile parameters: - name: api-version in: query @@ -1206,24 +2018,16 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: eval_id + - name: container_id in: path required: true + description: The ID of the container. schema: type: string - - name: run_id + - name: file_id in: path required: true + description: The ID of the file to delete. schema: type: string responses: @@ -1235,10 +2039,6 @@ paths: description: A request ID used for troubleshooting purposes. schema: type: string - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.EvalRun' default: description: An unexpected error response. headers: @@ -1252,13 +2052,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - post: - operationId: cancelEvalRun - description: |- - Cancel a specific evaluation run by its ID. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Containers + /containers/{container_id}/files/{file_id}/content: + get: + operationId: retrieveContainerFileContent parameters: - name: api-version in: query @@ -1269,24 +2066,16 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: eval_id + - name: container_id in: path required: true + description: The ID of the container. schema: type: string - - name: run_id + - name: file_id in: path required: true + description: The ID of the file to retrieve content from. schema: type: string responses: @@ -1299,9 +2088,9 @@ paths: schema: type: string content: - application/json: + application/octet-stream: schema: - $ref: '#/components/schemas/OpenAI.EvalRun' + contentMediaType: application/octet-stream default: description: An unexpected error response. headers: @@ -1315,13 +2104,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - delete: - operationId: deleteEvalRun - description: |- - Delete a specific evaluation run by its ID. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Containers + /conversations: + post: + operationId: createConversation parameters: - name: api-version in: query @@ -1332,26 +2118,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: eval_id - in: path - required: true - schema: - type: string - - name: run_id - in: path - required: true - schema: - type: string responses: '200': description: The request has succeeded. @@ -1364,20 +2130,7 @@ paths: content: application/json: schema: - type: object - required: - - object - - deleted - - eval_run_id - properties: - object: - type: string - enum: - - eval_run.deleted - deleted: - type: boolean - eval_run_id: - type: string + $ref: '#/components/schemas/OpenAI.ConversationResource' default: description: An unexpected error response. headers: @@ -1391,14 +2144,16 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - /evals/{eval_id}/runs/{run_id}/output_items: + - Conversations + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateConversationBody' + /conversations/{conversation_id}: get: - operationId: getEvalRunOutputItems - description: |- - Get a list of output items for a specified evaluation run. - - NOTE: This Azure OpenAI API is in preview and subject to change. + operationId: retrieveConversation parameters: - name: api-version in: query @@ -1409,59 +2164,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: eval_id + - name: conversation_id in: path required: true + description: The ID of the conversation to retrieve. schema: type: string - - name: run_id - in: path - required: true - schema: - type: string - - name: after - in: query - required: false - schema: - type: string - explode: false - - name: limit - in: query - required: false - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: status - in: query - required: false - schema: - type: string - enum: - - fail - - pass - explode: false - - name: order - in: query - required: false - schema: - type: string - enum: - - asc - - desc - default: asc - explode: false responses: '200': description: The request has succeeded. @@ -1474,7 +2182,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.EvalRunOutputItemList' + $ref: '#/components/schemas/OpenAI.ConversationResource' default: description: An unexpected error response. headers: @@ -1488,14 +2196,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - /evals/{eval_id}/runs/{run_id}/output_items/{output_item_id}: - get: - operationId: getEvalRunOutputItem - description: |- - Retrieve a specific output item from an evaluation run by its ID. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Conversations + post: + operationId: updateConversation parameters: - name: api-version in: query @@ -1506,29 +2209,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: eval_id - in: path - required: true - schema: - type: string - - name: run_id - in: path - required: true - schema: - type: string - - name: output_item_id + - name: conversation_id in: path required: true + description: The ID of the conversation to update. schema: type: string responses: @@ -1543,7 +2227,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.EvalRunOutputItem' + $ref: '#/components/schemas/OpenAI.ConversationResource' default: description: An unexpected error response. headers: @@ -1557,10 +2241,15 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - /files: - post: - operationId: createFile + - Conversations + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.UpdateConversationBody' + delete: + operationId: deleteConversation parameters: - name: api-version in: query @@ -1571,6 +2260,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 + - name: conversation_id + in: path + required: true + description: The ID of the conversation to delete. + schema: + type: string responses: '200': description: The request has succeeded. @@ -1583,7 +2278,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AzureOpenAIFile' + $ref: '#/components/schemas/OpenAI.DeletedConversationResource' default: description: An unexpected error response. headers: @@ -1597,18 +2292,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Files - requestBody: - required: true - content: - multipart/form-data: - schema: - $ref: '#/components/schemas/AzureCreateFileRequestMultiPart' - x-ms-examples: - Create a file request: - $ref: ./examples/files.yaml + - Conversations + /conversations/{conversation_id}/items: get: - operationId: listFiles + operationId: listConversationItems parameters: - name: api-version in: query @@ -1619,12 +2306,47 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: purpose + - name: conversation_id + in: path + required: true + description: The ID of the conversation to list items for. + schema: + type: string + - name: limit + in: query + required: false + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + description: The order to return the input items in. Default is `desc`. + schema: + type: string + enum: + - asc + - desc + explode: false + - name: after in: query required: false + description: An item ID to list items after, used in pagination. schema: type: string explode: false + - name: include + in: query + required: false + description: Specify additional output data to include in the model response. + schema: + type: array + items: + $ref: '#/components/schemas/OpenAI.IncludeEnum' + explode: false responses: '200': description: The request has succeeded. @@ -1637,7 +2359,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AzureListFilesResponse' + $ref: '#/components/schemas/OpenAI.ConversationItemList' default: description: An unexpected error response. headers: @@ -1651,10 +2373,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Files - /files/{file_id}: - get: - operationId: retrieveFile + - Conversations + post: + operationId: createConversationItems parameters: - name: api-version in: query @@ -1665,12 +2386,21 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: file_id + - name: conversation_id in: path required: true - description: The ID of the file to use for this request. + description: The ID of the conversation to add the item to. schema: type: string + - name: include + in: query + required: false + description: Additional fields to include in the response. + schema: + type: array + items: + $ref: '#/components/schemas/OpenAI.IncludeEnum' + explode: false responses: '200': description: The request has succeeded. @@ -1683,7 +2413,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AzureOpenAIFile' + $ref: '#/components/schemas/OpenAI.ConversationItemList' default: description: An unexpected error response. headers: @@ -1697,9 +2427,16 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Files - delete: - operationId: deleteFile + - Conversations + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateConversationItemsParametersBody' + /conversations/{conversation_id}/items/{item_id}: + get: + operationId: retrieveConversationItem parameters: - name: api-version in: query @@ -1710,12 +2447,27 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: file_id + - name: conversation_id in: path required: true - description: The ID of the file to use for this request. + description: The ID of the conversation that contains the item. schema: type: string + - name: item_id + in: path + required: true + description: The ID of the item to retrieve. + schema: + type: string + - name: include + in: query + required: false + description: Additional fields to include in the response. + schema: + type: array + items: + $ref: '#/components/schemas/OpenAI.IncludeEnum' + explode: false responses: '200': description: The request has succeeded. @@ -1728,7 +2480,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.DeleteFileResponse' + $ref: '#/components/schemas/OpenAI.ConversationItem' default: description: An unexpected error response. headers: @@ -1742,10 +2494,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Files - /files/{file_id}/content: - get: - operationId: downloadFile + - Conversations + delete: + operationId: deleteConversationItem parameters: - name: api-version in: query @@ -1756,10 +2507,16 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: file_id + - name: conversation_id in: path required: true - description: The ID of the file to use for this request. + description: The ID of the conversation that contains the item. + schema: + type: string + - name: item_id + in: path + required: true + description: The ID of the item to delete. schema: type: string responses: @@ -1772,10 +2529,9 @@ paths: schema: type: string content: - application/octet-stream: + application/json: schema: - type: string - format: binary + $ref: '#/components/schemas/OpenAI.ConversationResource' default: description: An unexpected error response. headers: @@ -1789,11 +2545,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Files - /fine_tuning/alpha/graders/run: + - Conversations + /embeddings: post: - operationId: runGrader - summary: Run a grader. + operationId: createEmbedding + summary: Creates an embedding vector representing the input text. parameters: - name: api-version in: query @@ -1807,12 +2563,6 @@ paths: responses: '200': description: The request has succeeded. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.RunGraderResponse' - default: - description: An unexpected error response. headers: apim-request-id: required: false @@ -1822,36 +2572,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AzureErrorResponse' - tags: - - Fine-tuning - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.RunGraderRequest' - /fine_tuning/alpha/graders/validate: - post: - operationId: validateGrader - summary: Validate a grader. - parameters: - - name: api-version - in: query - required: false - description: |- - The explicit Azure AI Foundry Models API version to use for this request. - `v1` if not otherwise specified. - schema: - $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' - default: v1 - responses: - '200': - description: The request has succeeded. - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.ValidateGraderResponse' + $ref: '#/components/schemas/OpenAI.CreateEmbeddingResponse' default: description: An unexpected error response. headers: @@ -1865,22 +2586,20 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning + - Embeddings requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ValidateGraderRequest' - /fine_tuning/jobs: - post: - operationId: createFineTuningJob - summary: |- - Creates a fine-tuning job which begins the process of creating a new model from a given dataset. - - Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete. - - [Learn more about fine-tuning](/docs/guides/fine-tuning) + $ref: '#/components/schemas/OpenAI.CreateEmbeddingRequest' + x-ms-examples: + Create an embedding request: + $ref: ./examples/embeddings.yaml + /evals: + get: + operationId: listEvals + summary: List evaluations for a project. parameters: - name: api-version in: query @@ -1891,68 +2610,59 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - responses: - '200': - description: The request has succeeded. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. - schema: - type: string - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.FineTuningJob' - default: - description: An unexpected error response. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. - schema: - type: string - content: - application/json: - schema: - $ref: '#/components/schemas/AzureErrorResponse' - tags: - - Fine-tuning - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequest' - get: - operationId: listPaginatedFineTuningJobs - summary: List your organization's fine-tuning jobs - parameters: - - name: api-version - in: query - required: false + - name: aoai-evals + in: header + required: true description: |- - The explicit Azure AI Foundry Models API version to use for this request. - `v1` if not otherwise specified. + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. schema: - $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' - default: v1 + type: string + enum: + - preview - name: after in: query required: false - description: Identifier for the last job from the previous pagination request. + description: Identifier for the last eval from the previous pagination request. schema: type: string explode: false - name: limit in: query required: false - description: Number of fine-tuning jobs to retrieve. + description: A limit on the number of evals to be returned in a single pagination response. schema: type: integer format: int32 default: 20 explode: false + - name: order + in: query + required: false + description: |- + Sort order for evals by timestamp. Use `asc` for ascending order or + `desc` for descending order. + schema: + type: string + enum: + - asc + - desc + default: asc + explode: false + - name: order_by + in: query + required: false + description: |- + Evals can be ordered by creation time or last updated time. Use + `created_at` for creation time or `updated_at` for last updated + time. + schema: + type: string + enum: + - created_at + - updated_at + default: created_at + explode: false responses: '200': description: The request has succeeded. @@ -1965,7 +2675,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ListPaginatedFineTuningJobsResponse' + $ref: '#/components/schemas/OpenAI.EvalList' default: description: An unexpected error response. headers: @@ -1979,14 +2689,20 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}: - get: - operationId: retrieveFineTuningJob - summary: |- - Get info about a fine-tuning job. + - Evals + post: + operationId: createEval + description: |- + Create the structure of an evaluation that can be used to test a model's + performance. - [Learn more about fine-tuning](/docs/guides/fine-tuning) + An evaluation is a set of testing criteria and a datasource. After + creating an evaluation, you can run it on different models and model + parameters. We support several types of graders and datasources. + + For more information, see the [Evals guide](/docs/guides/evals). + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -1997,12 +2713,16 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: fine_tuning_job_id - in: path + - name: aoai-evals + in: header required: true - description: The ID of the fine-tuning job. + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. schema: type: string + enum: + - preview responses: '200': description: The request has succeeded. @@ -2015,7 +2735,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.FineTuningJob' + $ref: '#/components/schemas/OpenAI.Eval' default: description: An unexpected error response. headers: @@ -2029,11 +2749,54 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}/cancel: - post: - operationId: cancelFineTuningJob - summary: Immediately cancel a fine-tune job. + - Evals + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + statusCode: + type: number + enum: + - 201 + name: + type: string + description: The name of the evaluation. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + data_source_config: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalCustomDataSourceConfig' + - $ref: '#/components/schemas/OpenAI.CreateEvalLogsDataSourceConfig' + - $ref: '#/components/schemas/OpenAI.CreateEvalStoredCompletionsDataSourceConfig' + description: The configuration for the data source used for the evaluation runs. Dictates the schema of the data used in the evaluation. + testing_criteria: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalLabelModelGrader' + - $ref: '#/components/schemas/OpenAI.EvalGraderStringCheck' + - $ref: '#/components/schemas/OpenAI.EvalGraderTextSimilarity' + - $ref: '#/components/schemas/OpenAI.EvalGraderPython' + - $ref: '#/components/schemas/OpenAI.EvalGraderScoreModel' + - $ref: '#/components/schemas/EvalGraderEndpoint' + description: A list of graders for all eval runs in this group. Graders can reference variables in the data source using double curly braces notation, like `{{item.variable_name}}`. To reference the model's output, use the `sample` namespace (ie, `{{sample.output_text}}`). + required: + - statusCode + - data_source_config + - testing_criteria + /evals/{eval_id}: + get: + operationId: getEval + summary: Retrieve an evaluation by its ID. + description: |- + Retrieves an evaluation by its ID. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -2044,10 +2807,19 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: fine_tuning_job_id + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: eval_id in: path required: true - description: The ID of the fine-tuning job to cancel. schema: type: string responses: @@ -2062,7 +2834,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.FineTuningJob' + $ref: '#/components/schemas/OpenAI.Eval' default: description: An unexpected error response. headers: @@ -2076,11 +2848,13 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}/checkpoints: - get: - operationId: listFineTuningJobCheckpoints - summary: List the checkpoints for a fine-tuning job. + - Evals + post: + operationId: updateEval + description: |- + Update select, mutable properties of a specified evaluation. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -2091,28 +2865,21 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: fine_tuning_job_id - in: path + - name: aoai-evals + in: header required: true - description: The ID of the fine-tuning job to get checkpoints for. + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. schema: type: string - - name: after - in: query - required: false - description: Identifier for the last checkpoint ID from the previous pagination request. + enum: + - preview + - name: eval_id + in: path + required: true schema: type: string - explode: false - - name: limit - in: query - required: false - description: Number of checkpoints to retrieve. - schema: - type: integer - format: int32 - default: 10 - explode: false responses: '200': description: The request has succeeded. @@ -2125,7 +2892,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ListFineTuningJobCheckpointsResponse' + $ref: '#/components/schemas/OpenAI.Eval' default: description: An unexpected error response. headers: @@ -2139,12 +2906,22 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}/checkpoints/{fine_tuning_checkpoint_id}/copy: - post: - operationId: FineTuning_CopyCheckpoint + - Evals + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + metadata: + $ref: '#/components/schemas/OpenAI.Metadata' + delete: + operationId: deleteEval description: |- - Creates a copy of a fine-tuning checkpoint at the given destination account and region. + Delete a specified evaluation. NOTE: This Azure OpenAI API is in preview and subject to change. parameters: @@ -2157,29 +2934,17 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-copy-ft-checkpoints + - name: aoai-evals in: header required: true description: |- - Enables access to checkpoint copy operations for models, an AOAI preview feature. - This feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'. + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. schema: type: string enum: - preview - - name: accept - in: header - required: true - schema: - type: string - enum: - - application/json - - name: fine_tuning_job_id - in: path - required: true - schema: - type: string - - name: fine_tuning_checkpoint_id + - name: eval_id in: path required: true schema: @@ -2196,7 +2961,20 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CopyModelResponse' + type: object + required: + - object + - deleted + - eval_id + properties: + object: + type: string + enum: + - eval.deleted + deleted: + type: boolean + eval_id: + type: string default: description: An unexpected error response. headers: @@ -2210,17 +2988,13 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CopyModelRequest' + - Evals + /evals/{eval_id}/runs: get: - operationId: FineTuning_GetCheckpoint + operationId: getEvalRuns + summary: '' description: |- - Gets the status of a fine-tuning checkpoint copy. + Retrieve a list of runs for a specified evaluation. NOTE: This Azure OpenAI API is in preview and subject to change. parameters: @@ -2233,33 +3007,57 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-copy-ft-checkpoints + - name: aoai-evals in: header required: true description: |- - Enables access to checkpoint copy operations for models, an AOAI preview feature. - This feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'. + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. schema: type: string enum: - preview - - name: accept - in: header + - name: eval_id + in: path required: true schema: type: string - enum: - - application/json - - name: fine_tuning_job_id - in: path - required: true + - name: after + in: query + required: false schema: type: string - - name: fine_tuning_checkpoint_id - in: path - required: true + explode: false + - name: limit + in: query + required: false + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: asc + explode: false + - name: status + in: query + required: false schema: type: string + enum: + - queued + - in_progress + - completed + - canceled + - failed + explode: false responses: '200': description: The request has succeeded. @@ -2272,7 +3070,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CopyModelResponse' + $ref: '#/components/schemas/OpenAI.EvalRunList' default: description: An unexpected error response. headers: @@ -2286,11 +3084,13 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}/events: - get: - operationId: listFineTuningEvents - summary: Get status updates for a fine-tuning job. + - Evals + post: + operationId: createEvalRun + description: |- + Create a new evaluation run, beginning the grading process. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -2301,31 +3101,24 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: fine_tuning_job_id - in: path + - name: aoai-evals + in: header required: true - description: The ID of the fine-tuning job to get events for. + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. schema: type: string - - name: after - in: query - required: false - description: Identifier for the last event from the previous pagination request. + enum: + - preview + - name: eval_id + in: path + required: true schema: type: string - explode: false - - name: limit - in: query - required: false - description: Number of events to retrieve. - schema: - type: integer - format: int32 - default: 20 - explode: false responses: - '200': - description: The request has succeeded. + '201': + description: The request has succeeded and a new resource has been created as a result. headers: apim-request-id: required: false @@ -2335,7 +3128,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ListFineTuningJobEventsResponse' + $ref: '#/components/schemas/OpenAI.EvalRun' default: description: An unexpected error response. headers: @@ -2349,11 +3142,20 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}/pause: - post: - operationId: pauseFineTuningJob - summary: Pause a fine-tune job. + - Evals + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateEvalRunRequest' + /evals/{eval_id}/runs/{run_id}: + get: + operationId: getEvalRun + description: |- + Retrieve a specific evaluation run by its ID. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -2364,10 +3166,24 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: fine_tuning_job_id + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: eval_id + in: path + required: true + schema: + type: string + - name: run_id in: path required: true - description: The ID of the fine-tuning job to pause. schema: type: string responses: @@ -2382,7 +3198,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.FineTuningJob' + $ref: '#/components/schemas/OpenAI.EvalRun' default: description: An unexpected error response. headers: @@ -2396,11 +3212,13 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}/resume: + - Evals post: - operationId: resumeFineTuningJob - summary: Resume a paused fine-tune job. + operationId: cancelEvalRun + description: |- + Cancel a specific evaluation run by its ID. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -2411,10 +3229,24 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: fine_tuning_job_id + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: eval_id + in: path + required: true + schema: + type: string + - name: run_id in: path required: true - description: The ID of the fine-tuning job to resume. schema: type: string responses: @@ -2429,7 +3261,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.FineTuningJob' + $ref: '#/components/schemas/OpenAI.EvalRun' default: description: An unexpected error response. headers: @@ -2443,10 +3275,13 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /images/generations: - post: - operationId: createImage + - Evals + delete: + operationId: deleteEvalRun + description: |- + Delete a specific evaluation run by its ID. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -2457,6 +3292,26 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: eval_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string responses: '200': description: The request has succeeded. @@ -2469,7 +3324,20 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AzureImagesResponse' + type: object + required: + - object + - deleted + - eval_run_id + properties: + object: + type: string + enum: + - eval_run.deleted + deleted: + type: boolean + eval_run_id: + type: string default: description: An unexpected error response. headers: @@ -2483,22 +3351,14 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Images - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AzureCreateImageRequest' - x-ms-examples: - Create an image request: - $ref: ./examples/images.yaml - /models: + - Evals + /evals/{eval_id}/runs/{run_id}/output_items: get: - operationId: listModels - summary: |- - Lists the currently available models, and provides basic information about each one such as the - owner and availability. + operationId: getEvalRunOutputItems + description: |- + Get a list of output items for a specified evaluation run. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -2509,96 +3369,59 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - responses: - '200': - description: The request has succeeded. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. - schema: - type: string - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.ListModelsResponse' - default: - description: An unexpected error response. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. - schema: - type: string - content: - application/json: - schema: - $ref: '#/components/schemas/AzureErrorResponse' - tags: - - Models - /models/{model}: - get: - operationId: retrieveModel - summary: |- - Retrieves a model instance, providing basic information about the model such as the owner and - permissioning. - parameters: - - name: api-version - in: query - required: false + - name: aoai-evals + in: header + required: true description: |- - The explicit Azure AI Foundry Models API version to use for this request. - `v1` if not otherwise specified. + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. schema: - $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' - default: v1 - - name: model + type: string + enum: + - preview + - name: eval_id in: path required: true - description: The ID of the model to use for this request. schema: type: string - responses: - '200': - description: The request has succeeded. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. - schema: - type: string - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.Model' - default: - description: An unexpected error response. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. - schema: - type: string - content: - application/json: - schema: - $ref: '#/components/schemas/AzureErrorResponse' - tags: - - Models - /responses: - post: - operationId: createResponse - description: Creates a model response. - parameters: - - name: api-version + - name: run_id + in: path + required: true + schema: + type: string + - name: after in: query required: false - description: |- - The explicit Azure AI Foundry Models API version to use for this request. - `v1` if not otherwise specified. schema: - $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' - default: v1 + type: string + explode: false + - name: limit + in: query + required: false + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: status + in: query + required: false + schema: + type: string + enum: + - fail + - pass + explode: false + - name: order + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: asc + explode: false responses: '200': description: The request has succeeded. @@ -2611,10 +3434,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AzureResponse' - text/event-stream: - schema: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + $ref: '#/components/schemas/OpenAI.EvalRunOutputItemList' default: description: An unexpected error response. headers: @@ -2628,20 +3448,14 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Responses - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AzureCreateResponse' - x-ms-examples: - Create a response request: - $ref: ./examples/responses.yaml - /responses/{response_id}: + - Evals + /evals/{eval_id}/runs/{run_id}/output_items/{output_item_id}: get: - operationId: getResponse - description: Retrieves a model response with the given ID. + operationId: getEvalRunOutputItem + description: |- + Retrieve a specific output item from an evaluation run by its ID. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -2652,27 +3466,31 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: response_id + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: eval_id in: path required: true schema: type: string - - name: include_obfuscation - in: query - required: false - description: When true, stream obfuscation will be enabled. Stream obfuscation adds random characters to an `obfuscation` field on streaming delta events to normalize payload sizes as a mitigation to certain side-channel attacks. These obfuscation fields are included by default, but add a small amount of overhead to the data stream. You can set `include_obfuscation` to false to optimize for bandwidth if you trust the network links between your application and the OpenAI API. + - name: run_id + in: path + required: true schema: - type: boolean - default: true - explode: false - - name: include[] - in: query - required: false + type: string + - name: output_item_id + in: path + required: true schema: - type: array - items: - $ref: '#/components/schemas/OpenAI.Includable' - default: [] + type: string responses: '200': description: The request has succeeded. @@ -2685,7 +3503,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AzureResponse' + $ref: '#/components/schemas/OpenAI.EvalRunOutputItem' default: description: An unexpected error response. headers: @@ -2699,10 +3517,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Responses - delete: - operationId: deleteResponse - description: Deletes a response by ID. + - Evals + /files: + post: + operationId: createFile parameters: - name: api-version in: query @@ -2713,11 +3531,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: response_id - in: path - required: true - schema: - type: string responses: '200': description: The request has succeeded. @@ -2732,20 +3545,61 @@ paths: schema: type: object required: - - object - id - - deleted + - bytes + - created_at + - filename + - object + - purpose + - status properties: + id: + type: string + description: The file identifier, which can be referenced in the API endpoints. + bytes: + type: integer + description: The size of the file, in bytes. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the file was created. + expires_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the file will expire. + filename: + type: string + description: The name of the file. object: type: string enum: - - response.deleted - id: + - file + description: The object type, which is always `file`. + x-stainless-const: true + status_details: + type: string + description: Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`. + purpose: type: string - deleted: - type: boolean enum: - - true + - assistants + - assistants_output + - batch + - batch_output + - fine-tune + - fine-tune-results + - evals + description: The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`. + status: + type: string + enum: + - uploaded + - pending + - running + - processed + - error + - deleting + - deleted default: description: An unexpected error response. headers: @@ -2759,11 +3613,18 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Responses - /responses/{response_id}/input_items: + - Files + requestBody: + required: true + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/OpenAI.CreateFileRequest' + x-ms-examples: + Create a file request: + $ref: ./examples/files.yaml get: - operationId: listInputItems - description: Returns a list of input items for a given response. + operationId: listFiles parameters: - name: api-version in: query @@ -2774,28 +3635,21 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: response_id - in: path - required: true + - name: purpose + in: query + required: false schema: type: string + explode: false - name: limit in: query required: false - description: |- - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the - default is 20. schema: type: integer - format: int32 - default: 20 explode: false - name: order in: query required: false - description: |- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - for descending order. schema: type: string enum: @@ -2805,20 +3659,6 @@ paths: - name: after in: query required: false - description: |- - A cursor for use in pagination. `after` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include after=obj_foo in order to fetch the next page of the list. - schema: - type: string - explode: false - - name: before - in: query - required: false - description: |- - A cursor for use in pagination. `before` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include before=obj_foo in order to fetch the previous page of the list. schema: type: string explode: false @@ -2834,7 +3674,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ResponseItemList' + $ref: '#/components/schemas/OpenAI.ListFilesResponse' default: description: An unexpected error response. headers: @@ -2848,11 +3688,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Responses - /vector_stores: + - Files + /files/{file_id}: get: - operationId: listVectorStores - summary: Returns a list of vector stores. + operationId: retrieveFile parameters: - name: api-version in: query @@ -2863,49 +3702,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: limit - in: query - required: false - description: |- - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the - default is 20. - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: order - in: query - required: false - description: |- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - for descending order. - schema: - type: string - enum: - - asc - - desc - explode: false - - name: after - in: query - required: false - description: |- - A cursor for use in pagination. `after` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include after=obj_foo in order to fetch the next page of the list. - schema: - type: string - explode: false - - name: before - in: query - required: false - description: |- - A cursor for use in pagination. `before` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include before=obj_foo in order to fetch the previous page of the list. + - name: file_id + in: path + required: true + description: The ID of the file to use for this request. schema: type: string - explode: false responses: '200': description: The request has succeeded. @@ -2918,7 +3720,63 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ListVectorStoresResponse' + type: object + required: + - id + - bytes + - created_at + - filename + - object + - purpose + - status + properties: + id: + type: string + description: The file identifier, which can be referenced in the API endpoints. + bytes: + type: integer + description: The size of the file, in bytes. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the file was created. + expires_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the file will expire. + filename: + type: string + description: The name of the file. + object: + type: string + enum: + - file + description: The object type, which is always `file`. + x-stainless-const: true + status_details: + type: string + description: Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`. + purpose: + type: string + enum: + - assistants + - assistants_output + - batch + - batch_output + - fine-tune + - fine-tune-results + - evals + description: The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`. + status: + type: string + enum: + - uploaded + - pending + - running + - processed + - error + - deleting + - deleted default: description: An unexpected error response. headers: @@ -2932,10 +3790,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - post: - operationId: createVectorStore - summary: Creates a vector store. + - Files + delete: + operationId: deleteFile parameters: - name: api-version in: query @@ -2946,6 +3803,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 + - name: file_id + in: path + required: true + description: The ID of the file to use for this request. + schema: + type: string responses: '200': description: The request has succeeded. @@ -2958,7 +3821,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreObject' + $ref: '#/components/schemas/OpenAI.DeleteFileResponse' default: description: An unexpected error response. headers: @@ -2972,20 +3835,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.CreateVectorStoreRequest' - x-ms-examples: - Create a vector store request: - $ref: ./examples/vector_stores.yaml - /vector_stores/{vector_store_id}: + - Files + /files/{file_id}/content: get: - operationId: getVectorStore - summary: Retrieves a vector store. + operationId: downloadFile parameters: - name: api-version in: query @@ -2996,10 +3849,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: file_id in: path required: true - description: The ID of the vector store to retrieve. + description: The ID of the file to use for this request. schema: type: string responses: @@ -3012,9 +3865,9 @@ paths: schema: type: string content: - application/json: + application/octet-stream: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreObject' + contentMediaType: application/octet-stream default: description: An unexpected error response. headers: @@ -3028,10 +3881,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores + - Files + /fine_tuning/alpha/graders/run: post: - operationId: modifyVectorStore - summary: Modifies a vector store. + operationId: runGrader + summary: Run a grader. parameters: - name: api-version in: query @@ -3042,15 +3896,15 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id - in: path - required: true - description: The ID of the vector store to modify. - schema: - type: string responses: '200': description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunGraderResponse' + default: + description: An unexpected error response. headers: apim-request-id: required: false @@ -3060,7 +3914,36 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreObject' + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Fine-tuning + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunGraderRequest' + /fine_tuning/alpha/graders/validate: + post: + operationId: validateGrader + summary: Validate a grader. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ValidateGraderResponse' default: description: An unexpected error response. headers: @@ -3074,16 +3957,26 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores + - Fine-tuning requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/OpenAI.UpdateVectorStoreRequest' - delete: - operationId: deleteVectorStore - summary: Delete a vector store. + type: object + properties: + grader: + anyOf: + - $ref: '#/components/schemas/OpenAI.GraderStringCheck' + - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' + - $ref: '#/components/schemas/OpenAI.GraderPython' + - $ref: '#/components/schemas/OpenAI.GraderScoreModel' + - $ref: '#/components/schemas/OpenAI.GraderMulti' + - $ref: '#/components/schemas/GraderEndpoint' + /fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions: + get: + operationId: listFineTuningCheckpointPermissions + summary: List checkpoint permissions parameters: - name: api-version in: query @@ -3094,12 +3987,46 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: fine_tuned_model_checkpoint in: path required: true - description: The ID of the vector store to delete. + description: The ID of the fine-tuned model checkpoint to get permissions for. + schema: + type: string + - name: project_id + in: query + required: false + description: The ID of the project to get permissions for. + schema: + type: string + explode: false + - name: after + in: query + required: false + description: Identifier for the last permission ID from the previous pagination request. + schema: + type: string + explode: false + - name: limit + in: query + required: false + description: Number of permissions to retrieve. + schema: + type: integer + format: int32 + default: 10 + explode: false + - name: order + in: query + required: false + description: The order in which to retrieve permissions. schema: type: string + enum: + - ascending + - descending + default: descending + explode: false responses: '200': description: The request has succeeded. @@ -3112,7 +4039,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.DeleteVectorStoreResponse' + $ref: '#/components/schemas/OpenAI.ListFineTuningCheckpointPermissionResponse' default: description: An unexpected error response. headers: @@ -3126,11 +4053,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - /vector_stores/{vector_store_id}/file_batches: + - Fine-tuning post: - operationId: createVectorStoreFileBatch - summary: Create a vector store file batch. + operationId: createFineTuningCheckpointPermission + summary: Create checkpoint permissions parameters: - name: api-version in: query @@ -3141,10 +4067,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: fine_tuned_model_checkpoint in: path required: true - description: The ID of the vector store for which to create a file batch. + description: The ID of the fine-tuned model checkpoint to create a permission for. schema: type: string responses: @@ -3159,7 +4085,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObject' + $ref: '#/components/schemas/OpenAI.ListFineTuningCheckpointPermissionResponse' default: description: An unexpected error response. headers: @@ -3173,17 +4099,17 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores + - Fine-tuning requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/OpenAI.CreateVectorStoreFileBatchRequest' - /vector_stores/{vector_store_id}/file_batches/{batch_id}: - get: - operationId: getVectorStoreFileBatch - summary: Retrieves a vector store file batch. + $ref: '#/components/schemas/OpenAI.CreateFineTuningCheckpointPermissionRequest' + /fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions/{permission_id}: + delete: + operationId: deleteFineTuningCheckpointPermission + summary: Delete checkpoint permission parameters: - name: api-version in: query @@ -3194,16 +4120,16 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: fine_tuned_model_checkpoint in: path required: true - description: The ID of the vector store that the file batch belongs to. + description: The ID of the fine-tuned model checkpoint to delete a permission for. schema: type: string - - name: batch_id + - name: permission_id in: path required: true - description: The ID of the file batch being retrieved. + description: The ID of the fine-tuned model checkpoint permission to delete. schema: type: string responses: @@ -3218,7 +4144,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObject' + $ref: '#/components/schemas/OpenAI.DeleteFineTuningCheckpointPermissionResponse' default: description: An unexpected error response. headers: @@ -3232,11 +4158,16 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - /vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel: + - Fine-tuning + /fine_tuning/jobs: post: - operationId: cancelVectorStoreFileBatch - summary: Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible. + operationId: createFineTuningJob + summary: |- + Creates a fine-tuning job which begins the process of creating a new model from a given dataset. + + Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete. + + [Learn more about fine-tuning](/docs/guides/fine-tuning) parameters: - name: api-version in: query @@ -3247,18 +4178,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id - in: path - required: true - description: The ID of the vector store that the file batch belongs to. - schema: - type: string - - name: batch_id - in: path - required: true - description: The ID of the file batch to cancel. - schema: - type: string responses: '200': description: The request has succeeded. @@ -3271,7 +4190,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObject' + $ref: '#/components/schemas/OpenAI.FineTuningJob' default: description: An unexpected error response. headers: @@ -3285,11 +4204,16 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - /vector_stores/{vector_store_id}/file_batches/{batch_id}/files: + - Fine-tuning + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequest' get: - operationId: listFilesInVectorStoreBatch - summary: Returns a list of vector store files in a batch. + operationId: listPaginatedFineTuningJobs + summary: List your organization's fine-tuning jobs parameters: - name: api-version in: query @@ -3300,68 +4224,22 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id - in: path - required: true - description: The ID of the vector store that the file batch belongs to. - schema: - type: string - - name: batch_id - in: path - required: true - description: The ID of the file batch that the files belong to. + - name: after + in: query + required: false + description: Identifier for the last job from the previous pagination request. schema: type: string + explode: false - name: limit in: query required: false - description: |- - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the - default is 20. + description: Number of fine-tuning jobs to retrieve. schema: type: integer format: int32 default: 20 explode: false - - name: order - in: query - required: false - description: |- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - for descending order. - schema: - type: string - enum: - - asc - - desc - explode: false - - name: after - in: query - required: false - description: |- - A cursor for use in pagination. `after` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include after=obj_foo in order to fetch the next page of the list. - schema: - type: string - explode: false - - name: before - in: query - required: false - description: |- - A cursor for use in pagination. `before` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include before=obj_foo in order to fetch the previous page of the list. - schema: - type: string - explode: false - - name: filter - in: query - required: false - description: Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. - schema: - $ref: '#/components/schemas/OpenAI.ListVectorStoreFilesFilter' - explode: false responses: '200': description: The request has succeeded. @@ -3374,7 +4252,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ListVectorStoreFilesResponse' + $ref: '#/components/schemas/OpenAI.ListPaginatedFineTuningJobsResponse' default: description: An unexpected error response. headers: @@ -3388,11 +4266,14 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - /vector_stores/{vector_store_id}/files: + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}: get: - operationId: listVectorStoreFiles - summary: Returns a list of vector store files. + operationId: retrieveFineTuningJob + summary: |- + Get info about a fine-tuning job. + + [Learn more about fine-tuning](/docs/guides/fine-tuning) parameters: - name: api-version in: query @@ -3403,62 +4284,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: fine_tuning_job_id in: path required: true - description: The ID of the vector store that the files belong to. - schema: - type: string - - name: limit - in: query - required: false - description: |- - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the - default is 20. - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: order - in: query - required: false - description: |- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - for descending order. - schema: - type: string - enum: - - asc - - desc - explode: false - - name: after - in: query - required: false - description: |- - A cursor for use in pagination. `after` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include after=obj_foo in order to fetch the next page of the list. - schema: - type: string - explode: false - - name: before - in: query - required: false - description: |- - A cursor for use in pagination. `before` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include before=obj_foo in order to fetch the previous page of the list. + description: The ID of the fine-tuning job. schema: type: string - explode: false - - name: filter - in: query - required: false - description: Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. - schema: - $ref: '#/components/schemas/OpenAI.ListVectorStoreFilesFilter' - explode: false responses: '200': description: The request has succeeded. @@ -3471,7 +4302,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ListVectorStoreFilesResponse' + $ref: '#/components/schemas/OpenAI.FineTuningJob' default: description: An unexpected error response. headers: @@ -3485,10 +4316,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}/cancel: post: - operationId: createVectorStoreFile - summary: Create a vector store file by attaching a [File](/docs/api-reference/files) to a [vector store](/docs/api-reference/vector-stores/object). + operationId: cancelFineTuningJob + summary: Immediately cancel a fine-tune job. parameters: - name: api-version in: query @@ -3499,10 +4331,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: fine_tuning_job_id in: path required: true - description: The ID of the vector store for which to create a File. + description: The ID of the fine-tuning job to cancel. schema: type: string responses: @@ -3517,7 +4349,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + $ref: '#/components/schemas/OpenAI.FineTuningJob' default: description: An unexpected error response. headers: @@ -3531,17 +4363,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.CreateVectorStoreFileRequest' - /vector_stores/{vector_store_id}/files/{file_id}: + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}/checkpoints: get: - operationId: getVectorStoreFile - summary: Retrieves a vector store file. + operationId: listFineTuningJobCheckpoints + summary: List the checkpoints for a fine-tuning job. parameters: - name: api-version in: query @@ -3552,18 +4378,28 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: fine_tuning_job_id in: path required: true - description: The ID of the vector store that the file belongs to. + description: The ID of the fine-tuning job to get checkpoints for. schema: type: string - - name: file_id - in: path - required: true - description: The ID of the file being retrieved. + - name: after + in: query + required: false + description: Identifier for the last checkpoint ID from the previous pagination request. schema: type: string + explode: false + - name: limit + in: query + required: false + description: Number of checkpoints to retrieve. + schema: + type: integer + format: int32 + default: 10 + explode: false responses: '200': description: The request has succeeded. @@ -3576,7 +4412,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + $ref: '#/components/schemas/OpenAI.ListFineTuningJobCheckpointsResponse' default: description: An unexpected error response. headers: @@ -3590,9 +4426,14 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}/checkpoints/{fine_tuning_checkpoint_id}/copy: post: - operationId: updateVectorStoreFileAttributes + operationId: FineTuning_CopyCheckpoint + description: |- + Creates a copy of a fine-tuning checkpoint at the given destination account and region. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -3603,12 +4444,29 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: aoai-copy-ft-checkpoints + in: header + required: true + description: |- + Enables access to checkpoint copy operations for models, an AOAI preview feature. + This feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: accept + in: header + required: true + schema: + type: string + enum: + - application/json + - name: fine_tuning_job_id in: path required: true schema: type: string - - name: file_id + - name: fine_tuning_checkpoint_id in: path required: true schema: @@ -3625,7 +4483,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + $ref: '#/components/schemas/CopyModelResponse' default: description: An unexpected error response. headers: @@ -3639,16 +4497,19 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores + - Fine-tuning requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/OpenAI.UpdateVectorStoreFileAttributesRequest' - delete: - operationId: deleteVectorStoreFile - summary: Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. To delete the file, use the [delete file](/docs/api-reference/files/delete) endpoint. + $ref: '#/components/schemas/CopyModelRequest' + get: + operationId: FineTuning_GetCheckpoint + description: |- + Gets the status of a fine-tuning checkpoint copy. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -3659,16 +4520,31 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: aoai-copy-ft-checkpoints + in: header + required: true + description: |- + Enables access to checkpoint copy operations for models, an AOAI preview feature. + This feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: accept + in: header + required: true + schema: + type: string + enum: + - application/json + - name: fine_tuning_job_id in: path required: true - description: The ID of the vector store that the file belongs to. schema: type: string - - name: file_id + - name: fine_tuning_checkpoint_id in: path required: true - description: The ID of the file to delete. schema: type: string responses: @@ -3683,7 +4559,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.DeleteVectorStoreFileResponse' + $ref: '#/components/schemas/CopyModelResponse' default: description: An unexpected error response. headers: @@ -3697,10 +4573,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - /video/generations/jobs: - post: - operationId: VideoGenerationJobs_Create + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}/events: + get: + operationId: listFineTuningEvents + summary: Get status updates for a fine-tuning job. parameters: - name: api-version in: query @@ -3711,7 +4588,28 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - description: Creates a new video generation job. + - name: fine_tuning_job_id + in: path + required: true + description: The ID of the fine-tuning job to get events for. + schema: + type: string + - name: after + in: query + required: false + description: Identifier for the last event from the previous pagination request. + schema: + type: string + explode: false + - name: limit + in: query + required: false + description: Number of events to retrieve. + schema: + type: integer + format: int32 + default: 20 + explode: false responses: '200': description: The request has succeeded. @@ -3724,27 +4622,25 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/VideoGenerationJob' + $ref: '#/components/schemas/OpenAI.ListFineTuningJobEventsResponse' default: description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string content: application/json: schema: - $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + $ref: '#/components/schemas/AzureErrorResponse' tags: - - Video - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CreateVideoGenerationRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/CreateVideoGenerationWithMediaRequestMultiPart' - get: - operationId: VideoGenerationJobs_List - description: Lists video generation jobs. + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}/pause: + post: + operationId: pauseFineTuningJob + summary: Pause a fine-tune job. parameters: - name: api-version in: query @@ -3755,34 +4651,59 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: before - in: query - required: false + - name: fine_tuning_job_id + in: path + required: true + description: The ID of the fine-tuning job to pause. schema: type: string - explode: false - - name: after + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.FineTuningJob' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}/resume: + post: + operationId: resumeFineTuningJob + summary: Resume a paused fine-tune job. + parameters: + - name: api-version in: query required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. schema: - type: string - explode: false - - name: limit - in: query + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: fine_tuning_job_id + in: path required: true + description: The ID of the fine-tuning job to resume. schema: - type: integer - format: int32 - default: 10 - explode: false - - name: statuses - in: query - required: false - schema: - type: array - items: - $ref: '#/components/schemas/JobStatus' - explode: false + type: string responses: '200': description: The request has succeeded. @@ -3795,22 +4716,24 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/VideoGenerationJobList' + $ref: '#/components/schemas/OpenAI.FineTuningJob' default: description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string content: application/json: schema: - $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + $ref: '#/components/schemas/AzureErrorResponse' tags: - - Video - x-ms-examples: - List existing video generation jobs: - $ref: ./examples/get_video_generation_job_list.json - /video/generations/jobs/{job-id}: - get: - operationId: VideoGenerationJobs_Get - description: Retrieves properties of a video generation job. + - Fine-tuning + /images/edits: + post: + operationId: createImageEdit parameters: - name: api-version in: query @@ -3821,7 +4744,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - $ref: '#/components/parameters/VideoGenerationJobParameter' responses: '200': description: The request has succeeded. @@ -3834,18 +4756,30 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/VideoGenerationJob' + $ref: '#/components/schemas/OpenAI.ImagesResponse' default: description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string content: application/json: schema: - $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + $ref: '#/components/schemas/AzureErrorResponse' tags: - - Video - delete: - operationId: VideoGenerationJobs_Delete - description: Deletes a video generation job. + - Images + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateImageEditRequest' + /images/generations: + post: + operationId: createImage parameters: - name: api-version in: query @@ -3856,28 +4790,45 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - $ref: '#/components/parameters/VideoGenerationJobParameter' responses: - '204': - description: 'There is no content to send for this request, but the headers may be useful. ' + '200': + description: The request has succeeded. headers: apim-request-id: required: false description: A request ID used for troubleshooting purposes. schema: type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ImagesResponse' default: description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string content: application/json: schema: - $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + $ref: '#/components/schemas/AzureErrorResponse' tags: - - Video - /video/generations/{generation-id}: - get: - operationId: VideoGenerations_Get - description: Retrieves a video generation by ID. + - Images + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateImageRequest' + x-ms-examples: + Create an image request: + $ref: ./examples/images.yaml + /images/variations: + post: + operationId: createImageVariation parameters: - name: api-version in: query @@ -3888,7 +4839,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - $ref: '#/components/parameters/VideoGenerationParameter' responses: '200': description: The request has succeeded. @@ -3901,22 +4851,33 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/VideoGeneration' + $ref: '#/components/schemas/OpenAI.ImagesResponse' default: description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string content: application/json: schema: - $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + $ref: '#/components/schemas/AzureErrorResponse' tags: - - Video - x-ms-examples: - Get properties of a video generation: - $ref: ./examples/get_video_generation.json - /video/generations/{generation-id}/content/thumbnail: + - Images + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateImageVariationRequest' + /models: get: - operationId: VideoGenerations_RetrieveThumbnail - description: Retrieves a thumbnail of the generated video content. + operationId: listModels + summary: |- + Lists the currently available models, and provides basic information about each one such as the + owner and availability. parameters: - name: api-version in: query @@ -3927,7 +4888,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - $ref: '#/components/parameters/VideoGenerationParameter' responses: '200': description: The request has succeeded. @@ -3937,35 +4897,30 @@ paths: description: A request ID used for troubleshooting purposes. schema: type: string - last-modified: - required: true - schema: - type: string - accept-ranges: - required: true - schema: - type: string - content-length: - required: true - schema: - type: integer content: - image/jpg: + application/json: schema: - type: string - format: binary + $ref: '#/components/schemas/OpenAI.ListModelsResponse' default: description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string content: application/json: schema: - $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + $ref: '#/components/schemas/AzureErrorResponse' tags: - - Video - /video/generations/{generation-id}/content/video: + - Models + /models/{model}: get: - operationId: VideoGenerations_RetrieveVideoContent - description: Retrieves the generated video content. + operationId: retrieveModel + summary: |- + Retrieves a model instance, providing basic information about the model such as the owner and + permissioning. parameters: - name: api-version in: query @@ -3976,14 +4931,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - $ref: '#/components/parameters/VideoGenerationParameter' - - name: quality - in: query - required: false + - name: model + in: path + required: true + description: The ID of the model to use for this request. schema: - $ref: '#/components/schemas/Quality' - default: high - explode: false + type: string responses: '200': description: The request has succeeded. @@ -3993,34 +4946,27 @@ paths: description: A request ID used for troubleshooting purposes. schema: type: string - last-modified: - required: true - schema: - type: string - accept-ranges: - required: true - schema: - type: string - content-length: - required: true - schema: - type: integer content: - video/mp4: + application/json: schema: - type: string - format: binary + $ref: '#/components/schemas/OpenAI.Model' default: description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string content: application/json: schema: - $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + $ref: '#/components/schemas/AzureErrorResponse' tags: - - Video - head: - operationId: VideoGenerations_RetrieveVideoContentHeadersOnly - description: Retrieves headers for the the generated video content. + - Models + delete: + operationId: deleteModel + summary: Deletes a model instance. parameters: - name: api-version in: query @@ -4031,1841 +4977,8983 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - $ref: '#/components/parameters/VideoGenerationParameter' - - name: quality - in: query - required: false + - name: model + in: path + required: true + description: The ID of the model to delete. schema: - $ref: '#/components/schemas/Quality' - default: high - explode: false + type: string responses: '200': description: The request has succeeded. headers: - content-length: - required: true + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. schema: - type: integer + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.DeleteModelResponse' default: description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string content: application/json: schema: - $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + $ref: '#/components/schemas/AzureErrorResponse' tags: - - Video -security: - - ApiKeyAuth: [] - - ApiKeyAuth_: [] - - OAuth2Auth: - - https://cognitiveservices.azure.com/.default -components: + - Models + /realtime/calls: + post: + operationId: createRealtimeCall + summary: Create a new Realtime API call over WebRTC and receive the SDP answer needed to complete the peer connection. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '201': + description: The request has succeeded and a new resource has been created as a result. + headers: + location: + required: false + description: Relative URL containing the call ID for subsequent control requests. + schema: + type: string + content: + application/sdp: + schema: + type: string + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Realtime + requestBody: + required: true + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeCallCreateRequest' + encoding: + session: + contentType: application/json + /realtime/calls/{call_id}/accept: + post: + operationId: acceptRealtimeCall + summary: Accept an incoming SIP call and configure the realtime session that will handle it. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: call_id + in: path + required: true + description: The identifier for the call provided in the realtime.call.incoming webhook. + schema: + type: string + responses: + '200': + description: The request has succeeded. + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Realtime + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGA' + description: Session configuration to apply before the caller is bridged to the model. + /realtime/calls/{call_id}/hangup: + post: + operationId: hangupRealtimeCall + summary: End an active Realtime API call, whether it was initiated over SIP or WebRTC. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: call_id + in: path + required: true + description: The identifier for the call. + schema: + type: string + responses: + '200': + description: The request has succeeded. + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Realtime + /realtime/calls/{call_id}/refer: + post: + operationId: referRealtimeCall + summary: Transfer an active SIP call to a new destination using the SIP REFER verb. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: call_id + in: path + required: true + description: The identifier for the call provided in the realtime.call.incoming webhook. + schema: + type: string + responses: + '200': + description: The request has succeeded. + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Realtime + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeCallReferRequest' + description: Destination URI for the REFER request. + /realtime/calls/{call_id}/reject: + post: + operationId: rejectRealtimeCall + summary: Decline an incoming SIP call by returning a SIP status code to the caller. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: call_id + in: path + required: true + description: The identifier for the call provided in the realtime.call.incoming webhook. + schema: + type: string + responses: + '200': + description: The request has succeeded. + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Realtime + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeCallRejectRequest' + description: Provide an optional SIP status code. When omitted the API responds with 603 Decline. + /realtime/client_secrets: + post: + operationId: createRealtimeClientSecret + summary: Create a Realtime client secret with an associated session configuration. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeCreateClientSecretResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Realtime + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeCreateClientSecretRequest' + description: Create a client secret with the given session configuration. + /realtime/sessions: + post: + operationId: createRealtimeSession + summary: Create an ephemeral API token for use in client-side applications with the Realtime API. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Realtime + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequest' + description: Create an ephemeral API key with the given session configuration. + /realtime/transcription_sessions: + post: + operationId: createRealtimeTranscriptionSession + summary: Create an ephemeral API token for use in client-side applications with the Realtime API specifically for realtime transcriptions. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Realtime + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequest' + description: Create an ephemeral API key with the given session configuration. + /responses: + post: + operationId: createResponse + description: Creates a model response. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + type: object + required: + - id + - object + - created_at + - error + - incomplete_details + - output + - instructions + - parallel_tool_calls + - content_filters + properties: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + top_logprobs: + anyOf: + - type: integer + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + default: 1 + user: + type: string + description: |- + This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations. + A stable identifier for your end-users. + Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + safety_identifier: + type: string + description: |- + A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. + The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + prompt_cache_key: + type: string + description: Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching). + prompt_cache_retention: + anyOf: + - type: string + enum: + - in-memory + - 24h + - type: 'null' + previous_response_id: + anyOf: + - type: string + - type: 'null' + model: + type: string + description: |- + Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) + to browse and compare available models. + reasoning: + anyOf: + - $ref: '#/components/schemas/OpenAI.Reasoning' + - type: 'null' + background: + anyOf: + - type: boolean + - type: 'null' + max_output_tokens: + anyOf: + - type: integer + - type: 'null' + max_tool_calls: + anyOf: + - type: integer + - type: 'null' + text: + $ref: '#/components/schemas/OpenAI.ResponseTextParam' + tools: + $ref: '#/components/schemas/OpenAI.ToolsArray' + tool_choice: + $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + prompt: + $ref: '#/components/schemas/OpenAI.Prompt' + truncation: + anyOf: + - type: string + enum: + - auto + - disabled + - type: 'null' + default: disabled + id: + type: string + description: Unique identifier for this Response. + object: + type: string + enum: + - response + description: The object type of this resource - always set to `response`. + x-stainless-const: true + status: + type: string + enum: + - completed + - failed + - in_progress + - cancelled + - queued + - incomplete + description: |- + The status of the response generation. One of `completed`, `failed`, + `in_progress`, `cancelled`, `queued`, or `incomplete`. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) of when this Response was created. + error: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseError' + - type: 'null' + incomplete_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseIncompleteDetails' + - type: 'null' + output: + type: array + items: + $ref: '#/components/schemas/OpenAI.OutputItem' + description: |- + An array of content items generated by the model. + + - The length and order of items in the `output` array is dependent + on the model's response. + - Rather than accessing the first item in the `output` array and + assuming it's an `assistant` message with the content generated by + the model, you might consider using the `output_text` property where + supported in SDKs. + instructions: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' + - type: 'null' + output_text: + anyOf: + - type: string + - type: 'null' + x-stainless-skip: true + usage: + $ref: '#/components/schemas/OpenAI.ResponseUsage' + parallel_tool_calls: + type: boolean + description: Whether to allow the model to run tool calls in parallel. + default: true + conversation: + anyOf: + - $ref: '#/components/schemas/OpenAI.Conversation' + - type: 'null' + content_filters: + type: array + items: + $ref: '#/components/schemas/AzureContentFilterForResponsesAPI' + description: The content filter results from RAI. + text/event-stream: + schema: + $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Responses + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateResponse' + x-ms-examples: + Create a response request: + $ref: ./examples/responses.yaml + /responses/{response_id}: + get: + operationId: getResponse + description: Retrieves a model response with the given ID. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: response_id + in: path + required: true + schema: + type: string + - name: include[] + in: query + required: false + description: Additional fields to include in the response. See the include parameter for Response creation above for more information. + schema: + type: array + items: + $ref: '#/components/schemas/OpenAI.IncludeEnum' + default: [] + - name: stream + in: query + required: false + description: If set to true, the model response data will be streamed to the client as it is generated using server-sent events. + schema: + type: boolean + explode: false + - name: starting_after + in: query + required: false + description: The sequence number of the event after which to start streaming. + schema: + type: integer + format: int32 + explode: false + - name: include_obfuscation + in: query + required: false + description: When true, stream obfuscation will be enabled. Stream obfuscation adds random characters to an `obfuscation` field on streaming delta events to normalize payload sizes as a mitigation to certain side-channel attacks. These obfuscation fields are included by default, but add a small amount of overhead to the data stream. You can set `include_obfuscation` to false to optimize for bandwidth if you trust the network links between your application and the OpenAI API. + schema: + type: boolean + default: true + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + type: object + required: + - id + - object + - created_at + - error + - incomplete_details + - output + - instructions + - parallel_tool_calls + - content_filters + properties: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + top_logprobs: + anyOf: + - type: integer + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + default: 1 + user: + type: string + description: |- + This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations. + A stable identifier for your end-users. + Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + safety_identifier: + type: string + description: |- + A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. + The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + prompt_cache_key: + type: string + description: Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching). + prompt_cache_retention: + anyOf: + - type: string + enum: + - in-memory + - 24h + - type: 'null' + previous_response_id: + anyOf: + - type: string + - type: 'null' + model: + type: string + description: |- + Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) + to browse and compare available models. + reasoning: + anyOf: + - $ref: '#/components/schemas/OpenAI.Reasoning' + - type: 'null' + background: + anyOf: + - type: boolean + - type: 'null' + max_output_tokens: + anyOf: + - type: integer + - type: 'null' + max_tool_calls: + anyOf: + - type: integer + - type: 'null' + text: + $ref: '#/components/schemas/OpenAI.ResponseTextParam' + tools: + $ref: '#/components/schemas/OpenAI.ToolsArray' + tool_choice: + $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + prompt: + $ref: '#/components/schemas/OpenAI.Prompt' + truncation: + anyOf: + - type: string + enum: + - auto + - disabled + - type: 'null' + default: disabled + id: + type: string + description: Unique identifier for this Response. + object: + type: string + enum: + - response + description: The object type of this resource - always set to `response`. + x-stainless-const: true + status: + type: string + enum: + - completed + - failed + - in_progress + - cancelled + - queued + - incomplete + description: |- + The status of the response generation. One of `completed`, `failed`, + `in_progress`, `cancelled`, `queued`, or `incomplete`. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) of when this Response was created. + error: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseError' + - type: 'null' + incomplete_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseIncompleteDetails' + - type: 'null' + output: + type: array + items: + $ref: '#/components/schemas/OpenAI.OutputItem' + description: |- + An array of content items generated by the model. + + - The length and order of items in the `output` array is dependent + on the model's response. + - Rather than accessing the first item in the `output` array and + assuming it's an `assistant` message with the content generated by + the model, you might consider using the `output_text` property where + supported in SDKs. + instructions: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' + - type: 'null' + output_text: + anyOf: + - type: string + - type: 'null' + x-stainless-skip: true + usage: + $ref: '#/components/schemas/OpenAI.ResponseUsage' + parallel_tool_calls: + type: boolean + description: Whether to allow the model to run tool calls in parallel. + default: true + conversation: + anyOf: + - $ref: '#/components/schemas/OpenAI.Conversation' + - type: 'null' + content_filters: + type: array + items: + $ref: '#/components/schemas/AzureContentFilterForResponsesAPI' + description: The content filter results from RAI. + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Responses + delete: + operationId: deleteResponse + description: Deletes a response by ID. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: response_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + type: object + required: + - object + - id + - deleted + properties: + object: + type: string + enum: + - response.deleted + id: + type: string + deleted: + type: boolean + enum: + - true + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Responses + /responses/{response_id}/cancel: + post: + operationId: cancelResponse + description: Cancels a model response with the given ID. Only responses created with the background parameter set to true can be cancelled. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: response_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + type: object + required: + - id + - object + - created_at + - error + - incomplete_details + - output + - instructions + - parallel_tool_calls + - content_filters + properties: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + top_logprobs: + anyOf: + - type: integer + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + default: 1 + user: + type: string + description: |- + This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations. + A stable identifier for your end-users. + Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + safety_identifier: + type: string + description: |- + A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. + The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + prompt_cache_key: + type: string + description: Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching). + prompt_cache_retention: + anyOf: + - type: string + enum: + - in-memory + - 24h + - type: 'null' + previous_response_id: + anyOf: + - type: string + - type: 'null' + model: + type: string + description: |- + Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) + to browse and compare available models. + reasoning: + anyOf: + - $ref: '#/components/schemas/OpenAI.Reasoning' + - type: 'null' + background: + anyOf: + - type: boolean + - type: 'null' + max_output_tokens: + anyOf: + - type: integer + - type: 'null' + max_tool_calls: + anyOf: + - type: integer + - type: 'null' + text: + $ref: '#/components/schemas/OpenAI.ResponseTextParam' + tools: + $ref: '#/components/schemas/OpenAI.ToolsArray' + tool_choice: + $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + prompt: + $ref: '#/components/schemas/OpenAI.Prompt' + truncation: + anyOf: + - type: string + enum: + - auto + - disabled + - type: 'null' + default: disabled + id: + type: string + description: Unique identifier for this Response. + object: + type: string + enum: + - response + description: The object type of this resource - always set to `response`. + x-stainless-const: true + status: + type: string + enum: + - completed + - failed + - in_progress + - cancelled + - queued + - incomplete + description: |- + The status of the response generation. One of `completed`, `failed`, + `in_progress`, `cancelled`, `queued`, or `incomplete`. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) of when this Response was created. + error: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseError' + - type: 'null' + incomplete_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseIncompleteDetails' + - type: 'null' + output: + type: array + items: + $ref: '#/components/schemas/OpenAI.OutputItem' + description: |- + An array of content items generated by the model. + + - The length and order of items in the `output` array is dependent + on the model's response. + - Rather than accessing the first item in the `output` array and + assuming it's an `assistant` message with the content generated by + the model, you might consider using the `output_text` property where + supported in SDKs. + instructions: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' + - type: 'null' + output_text: + anyOf: + - type: string + - type: 'null' + x-stainless-skip: true + usage: + $ref: '#/components/schemas/OpenAI.ResponseUsage' + parallel_tool_calls: + type: boolean + description: Whether to allow the model to run tool calls in parallel. + default: true + conversation: + anyOf: + - $ref: '#/components/schemas/OpenAI.Conversation' + - type: 'null' + content_filters: + type: array + items: + $ref: '#/components/schemas/AzureContentFilterForResponsesAPI' + description: The content filter results from RAI. + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Responses + /responses/{response_id}/input_items: + get: + operationId: listInputItems + description: Returns a list of input items for a given response. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: response_id + in: path + required: true + schema: + type: string + - name: limit + in: query + required: false + description: |- + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + description: |- + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + for descending order. + schema: + type: string + enum: + - asc + - desc + explode: false + - name: after + in: query + required: false + description: |- + A cursor for use in pagination. `after` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include after=obj_foo in order to fetch the next page of the list. + schema: + type: string + explode: false + - name: before + in: query + required: false + description: |- + A cursor for use in pagination. `before` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include before=obj_foo in order to fetch the previous page of the list. + schema: + type: string + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ResponseItemList' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Responses + /threads: + post: + operationId: createThread + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ThreadObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateThreadRequest' + /threads/runs: + post: + operationId: createThreadAndRun + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateThreadAndRunRequest' + /threads/{thread_id}: + delete: + operationId: deleteThread + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.DeleteThreadResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + get: + operationId: retrieveThread + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ThreadObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + post: + operationId: modifyThread + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ThreadObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ModifyThreadRequest' + /threads/{thread_id}/messages: + get: + operationId: listMessages + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: limit + in: query + required: false + schema: + type: integer + default: 20 + explode: false + - name: order + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: desc + explode: false + - name: after + in: query + required: false + schema: + type: string + explode: false + - name: before + in: query + required: false + schema: + type: string + explode: false + - name: run_id + in: query + required: false + schema: + type: string + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ListMessagesResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + post: + operationId: createMessage + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.MessageObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateMessageRequest' + /threads/{thread_id}/messages/{message_id}: + delete: + operationId: deleteMessage + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: message_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.DeleteMessageResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + get: + operationId: retrieveMessage + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: message_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.MessageObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + post: + operationId: modifyMessage + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: message_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.MessageObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ModifyMessageRequest' + /threads/{thread_id}/runs: + post: + operationId: createRun + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateRunRequest' + get: + operationId: listRuns + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: limit + in: query + required: false + schema: + type: integer + default: 20 + explode: false + - name: order + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: desc + explode: false + - name: after + in: query + required: false + schema: + type: string + explode: false + - name: before + in: query + required: false + schema: + type: string + explode: false + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ListRunsResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + /threads/{thread_id}/runs/{run_id}: + get: + operationId: retrieveRun + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + post: + operationId: modifyRun + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ModifyRunRequest' + /threads/{thread_id}/runs/{run_id}/cancel: + post: + operationId: cancelRun + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + /threads/{thread_id}/runs/{run_id}/steps: + get: + operationId: listRunSteps + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string + - name: limit + in: query + required: false + schema: + type: integer + default: 20 + explode: false + - name: order + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: desc + explode: false + - name: after + in: query + required: false + schema: + type: string + explode: false + - name: before + in: query + required: false + schema: + type: string + explode: false + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ListRunStepsResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + /threads/{thread_id}/runs/{run_id}/steps/{step_id}: + get: + operationId: getRunStep + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string + - name: step_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunStepObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + /threads/{thread_id}/runs/{run_id}/submit_tool_outputs: + post: + operationId: submitToolOutputsToRun + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.SubmitToolOutputsRunRequest' + /vector_stores: + get: + operationId: listVectorStores + summary: Returns a list of vector stores. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: limit + in: query + required: false + description: |- + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + description: |- + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + for descending order. + schema: + type: string + enum: + - asc + - desc + explode: false + - name: after + in: query + required: false + description: |- + A cursor for use in pagination. `after` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include after=obj_foo in order to fetch the next page of the list. + schema: + type: string + explode: false + - name: before + in: query + required: false + description: |- + A cursor for use in pagination. `before` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include before=obj_foo in order to fetch the previous page of the list. + schema: + type: string + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ListVectorStoresResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + post: + operationId: createVectorStore + summary: Creates a vector store. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateVectorStoreRequest' + x-ms-examples: + Create a vector store request: + $ref: ./examples/vector_stores.yaml + /vector_stores/{vector_store_id}: + get: + operationId: getVectorStore + summary: Retrieves a vector store. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store to retrieve. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + post: + operationId: modifyVectorStore + summary: Modifies a vector store. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store to modify. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.UpdateVectorStoreRequest' + delete: + operationId: deleteVectorStore + summary: Delete a vector store. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store to delete. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.DeleteVectorStoreResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + /vector_stores/{vector_store_id}/file_batches: + post: + operationId: createVectorStoreFileBatch + summary: Create a vector store file batch. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store for which to create a file batch. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateVectorStoreFileBatchRequest' + /vector_stores/{vector_store_id}/file_batches/{batch_id}: + get: + operationId: getVectorStoreFileBatch + summary: Retrieves a vector store file batch. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store that the file batch belongs to. + schema: + type: string + - name: batch_id + in: path + required: true + description: The ID of the file batch being retrieved. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + /vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel: + post: + operationId: cancelVectorStoreFileBatch + summary: Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store that the file batch belongs to. + schema: + type: string + - name: batch_id + in: path + required: true + description: The ID of the file batch to cancel. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + /vector_stores/{vector_store_id}/file_batches/{batch_id}/files: + get: + operationId: listFilesInVectorStoreBatch + summary: Returns a list of vector store files in a batch. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store that the file batch belongs to. + schema: + type: string + - name: batch_id + in: path + required: true + description: The ID of the file batch that the files belong to. + schema: + type: string + - name: limit + in: query + required: false + description: |- + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + description: |- + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + for descending order. + schema: + type: string + enum: + - asc + - desc + explode: false + - name: after + in: query + required: false + description: |- + A cursor for use in pagination. `after` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include after=obj_foo in order to fetch the next page of the list. + schema: + type: string + explode: false + - name: before + in: query + required: false + description: |- + A cursor for use in pagination. `before` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include before=obj_foo in order to fetch the previous page of the list. + schema: + type: string + explode: false + - name: filter + in: query + required: false + description: Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. + schema: + type: string + enum: + - in_progress + - completed + - failed + - cancelled + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ListVectorStoreFilesResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + /vector_stores/{vector_store_id}/files: + get: + operationId: listVectorStoreFiles + summary: Returns a list of vector store files. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store that the files belong to. + schema: + type: string + - name: limit + in: query + required: false + description: |- + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + description: |- + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + for descending order. + schema: + type: string + enum: + - asc + - desc + explode: false + - name: after + in: query + required: false + description: |- + A cursor for use in pagination. `after` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include after=obj_foo in order to fetch the next page of the list. + schema: + type: string + explode: false + - name: before + in: query + required: false + description: |- + A cursor for use in pagination. `before` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include before=obj_foo in order to fetch the previous page of the list. + schema: + type: string + explode: false + - name: filter + in: query + required: false + description: Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. + schema: + type: string + enum: + - in_progress + - completed + - failed + - cancelled + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ListVectorStoreFilesResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + post: + operationId: createVectorStoreFile + summary: Create a vector store file by attaching a [File](/docs/api-reference/files) to a [vector store](/docs/api-reference/vector-stores/object). + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store for which to create a File. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateVectorStoreFileRequest' + /vector_stores/{vector_store_id}/files/{file_id}: + get: + operationId: getVectorStoreFile + summary: Retrieves a vector store file. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store that the file belongs to. + schema: + type: string + - name: file_id + in: path + required: true + description: The ID of the file being retrieved. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + post: + operationId: updateVectorStoreFileAttributes + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + schema: + type: string + - name: file_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.UpdateVectorStoreFileAttributesRequest' + delete: + operationId: deleteVectorStoreFile + summary: Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. To delete the file, use the [delete file](/docs/api-reference/files/delete) endpoint. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store that the file belongs to. + schema: + type: string + - name: file_id + in: path + required: true + description: The ID of the file to delete. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.DeleteVectorStoreFileResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + /vector_stores/{vector_store_id}/files/{file_id}/content: + get: + operationId: retrieveVectorStoreFileContent + summary: Retrieve vector store file content + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store to search. + schema: + type: string + - name: file_id + in: path + required: true + description: The ID of the file to retrieve content for. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreSearchResultsPage' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + /vector_stores/{vector_store_id}/search: + post: + operationId: searchVectorStore + summary: Search vector store + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store to search. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreSearchResultsPage' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreSearchRequest' + /videos: + post: + operationId: Videos_Create + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + description: Creates a new video generation job. + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/VideoResource' + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + tags: + - Videos + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateVideoBody' + multipart/form-data: + schema: + $ref: '#/components/schemas/CreateVideoBodyWithInputReference' + encoding: + seconds: + contentType: text/plain + size: + contentType: text/plain + input_reference: + contentType: '*/*' + get: + operationId: Videos_List + description: Lists video generation jobs. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: after + in: query + required: false + schema: + type: string + explode: false + - name: limit + in: query + required: false + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + schema: + $ref: '#/components/schemas/Order' + default: desc + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/VideoList' + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + tags: + - Videos + /videos/{video-id}: + get: + operationId: Videos_Get + description: Retrieves properties of a video generation job. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - $ref: '#/components/parameters/VideoIdParameter' + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/VideoResource' + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + tags: + - Videos + delete: + operationId: Videos_Delete + description: Deletes a video generation job. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - $ref: '#/components/parameters/VideoIdParameter' + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedVideoResource' + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + tags: + - Videos + /videos/{video-id}/content: + get: + operationId: Videos_RetrieveContent + description: Retrieves a thumbnail of the generated video content. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - $ref: '#/components/parameters/VideoIdParameter' + - name: variant + in: query + required: false + schema: + $ref: '#/components/schemas/VideoContentVariant' + default: video + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content-length: + required: true + schema: + type: integer + content: + image/jpg: + schema: + contentMediaType: image/jpg + image/webp: + schema: + contentMediaType: image/webp + video/mp4: + schema: + contentMediaType: video/mp4 + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + tags: + - Videos + /videos/{video-id}/remix: + post: + operationId: Videos_Remix + description: Use an existing generated video and change it with a prompt. + parameters: + - $ref: '#/components/parameters/VideoIdParameter' + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/VideoResource' + default: + description: An unexpected error response. + content: + application/json: + schema: + $ref: '#/components/schemas/AzureOpenAIVideoGenerationErrorResponse' + tags: + - Videos + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + prompt: + type: string + minLength: 1 + required: + - prompt +security: + - ApiKeyAuth: [] + - ApiKeyAuth_: [] + - OAuth2Auth: + - https://cognitiveservices.azure.com/.default +components: parameters: - VideoGenerationJobParameter: - name: job-id - in: path - required: true - description: The ID of the video generation job to use for the Azure OpenAI request. - schema: - type: string - VideoGenerationParameter: - name: generation-id + VideoIdParameter: + name: video-id in: path required: true - description: The ID of the video generation to use for the Azure OpenAI request. + description: The ID of the video to use for the Azure OpenAI request. schema: type: string schemas: + AudioSegment: + type: object + required: + - id + - start + - end + - text + - temperature + - avg_logprob + - compression_ratio + - no_speech_prob + - tokens + - seek + properties: + id: + type: integer + format: int32 + description: The 0-based index of this segment within a translation. + start: + type: number + format: float + description: The time at which this segment started relative to the beginning of the translated audio. + end: + type: number + format: float + description: The time at which this segment ended relative to the beginning of the translated audio. + text: + type: string + description: The translated text that was part of this audio segment. + temperature: + type: number + format: float + description: The temperature score associated with this audio segment. + avg_logprob: + type: number + format: float + description: The average log probability associated with this audio segment. + compression_ratio: + type: number + format: float + description: The compression ratio of this audio segment. + no_speech_prob: + type: number + format: float + description: The probability of no speech detection within this audio segment. + tokens: + type: array + items: + type: integer + format: int32 + description: The token IDs matching the translated text in this audio segment. + seek: + type: integer + format: int32 + description: |- + The seek position associated with the processing of this audio segment. + Seek positions are expressed as hundredths of seconds. + The model may process several segments from a single seek position, so while the seek position will never represent + a later time than the segment's start, the segment's start may represent a significantly later time than the + segment's associated seek position. + AudioTaskLabel: + anyOf: + - type: string + - type: string + enum: + - transcribe + - translate + description: Defines the possible descriptors for available audio operation responses. + AudioTranslationSegment: + type: object + required: + - id + - start + - end + - text + - temperature + - avg_logprob + - compression_ratio + - no_speech_prob + - tokens + - seek + properties: + id: + type: integer + format: int32 + description: The 0-based index of this segment within a translation. + start: + type: number + format: float + description: The time at which this segment started relative to the beginning of the translated audio. + end: + type: number + format: float + description: The time at which this segment ended relative to the beginning of the translated audio. + text: + type: string + description: The translated text that was part of this audio segment. + temperature: + type: number + format: float + description: The temperature score associated with this audio segment. + avg_logprob: + type: number + format: float + description: The average log probability associated with this audio segment. + compression_ratio: + type: number + format: float + description: The compression ratio of this audio segment. + no_speech_prob: + type: number + format: float + description: The probability of no speech detection within this audio segment. + tokens: + type: array + items: + type: integer + format: int32 + description: The token IDs matching the translated text in this audio segment. + seek: + type: integer + format: int32 + description: |- + The seek position associated with the processing of this audio segment. + Seek positions are expressed as hundredths of seconds. + The model may process several segments from a single seek position, so while the seek position will never represent + a later time than the segment's start, the segment's start may represent a significantly later time than the + segment's associated seek position. + description: |- + Extended information about a single segment of translated audio data. + Segments generally represent roughly 5-10 seconds of speech. Segment boundaries typically occur between words but not + necessarily sentences. AzureAIFoundryModelsApiVersion: type: string enum: - - v1 - - preview - AzureChatCompletionResponseMessage: + - v1 + - preview + AzureAudioTranscriptionResponse: + type: object + required: + - text + properties: + text: + type: string + description: The transcribed text for the provided audio data. + task: + allOf: + - $ref: '#/components/schemas/AudioTaskLabel' + description: The label that describes which operation type generated the accompanying response data. + language: + type: string + description: |- + The spoken language that was detected in the transcribed audio data. + This is expressed as a two-letter ISO-639-1 language code like 'en' or 'fr'. + duration: + type: number + format: float + description: The total duration of the audio processed to produce accompanying transcription information. + segments: + type: array + items: + $ref: '#/components/schemas/OpenAI.TranscriptionSegment' + description: A collection of information about the timing, probabilities, and other detail of each processed audio segment. + words: + type: array + items: + $ref: '#/components/schemas/OpenAI.TranscriptionWord' + description: A collection of information about the timing of each processed word. + description: Result information for an operation that transcribed spoken audio into written text. + AzureAudioTranslationResponse: + type: object + required: + - text + properties: + text: + type: string + description: The translated text for the provided audio data. + task: + allOf: + - $ref: '#/components/schemas/AudioTaskLabel' + description: The label that describes which operation type generated the accompanying response data. + language: + type: string + description: |- + The spoken language that was detected in the translated audio data. + This is expressed as a two-letter ISO-639-1 language code like 'en' or 'fr'. + duration: + type: number + format: float + description: The total duration of the audio processed to produce accompanying translation information. + segments: + type: array + items: + $ref: '#/components/schemas/AudioTranslationSegment' + description: A collection of information about the timing, probabilities, and other detail of each processed audio segment. + description: Result information for an operation that translated spoken audio into written text. + AzureCompletionsSamplingParams: + type: object + properties: + max_tokens: + type: integer + format: int32 + description: The maximum number of tokens in the generated output. + allOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSourceSamplingParams' + description: Sampling parameters for controlling the behavior of completions. + AzureContentFilterBlocklistIdResult: + type: object + required: + - id + - filtered + properties: + id: + type: string + description: The ID of the custom blocklist associated with the filtered status. + filtered: + type: boolean + description: Whether the associated blocklist resulted in the content being filtered. + description: |- + A content filter result item that associates an existing custom blocklist ID with a value indicating whether or not + the corresponding blocklist resulted in content being filtered. + AzureContentFilterBlocklistResult: + type: object + required: + - filtered + properties: + filtered: + type: boolean + description: A value indicating whether any of the detailed blocklists resulted in a filtering action. + details: + type: array + items: + type: object + properties: + filtered: + type: boolean + description: A value indicating whether the blocklist produced a filtering action. + id: + type: string + description: The ID of the custom blocklist evaluated. + required: + - filtered + - id + description: The pairs of individual blocklist IDs and whether they resulted in a filtering action. + description: A collection of true/false filtering results for configured custom blocklists. + AzureContentFilterCompletionTextSpan: + type: object + required: + - completion_start_offset + - completion_end_offset + properties: + completion_start_offset: + type: integer + format: int32 + description: Offset of the UTF32 code point which begins the span. + completion_end_offset: + type: integer + format: int32 + description: Offset of the first UTF32 code point which is excluded from the span. This field is always equal to completion_start_offset for empty spans. This field is always larger than completion_start_offset for non-empty spans. + description: A representation of a span of completion text as used by Azure OpenAI content filter results. + AzureContentFilterCompletionTextSpanDetectionResult: + type: object + required: + - filtered + - detected + - details + properties: + filtered: + type: boolean + description: Whether the content detection resulted in a content filtering action. + detected: + type: boolean + description: Whether the labeled content category was detected in the content. + details: + type: array + items: + $ref: '#/components/schemas/AzureContentFilterCompletionTextSpan' + description: Detailed information about the detected completion text spans. + AzureContentFilterCustomTopicIdResult: + type: object + required: + - id + - detected + properties: + id: + type: string + description: The ID of the custom topic associated with the detected status. + detected: + type: boolean + description: Whether the associated custom topic resulted in the content being detected. + description: |- + A content filter result item that associates an existing custom topic ID with a value indicating whether or not + the corresponding topic resulted in content being detected. + AzureContentFilterCustomTopicResult: + type: object + required: + - filtered + properties: + filtered: + type: boolean + description: A value indicating whether any of the detailed topics resulted in a filtering action. + details: + type: array + items: + type: object + properties: + detected: + type: boolean + description: A value indicating whether the topic is detected. + id: + type: string + description: The ID of the custom topic evaluated. + required: + - detected + - id + description: The pairs of individual topic IDs and whether they are detected. + description: A collection of true/false filtering results for configured custom topics. + AzureContentFilterDetectionResult: + type: object + required: + - filtered + - detected + properties: + filtered: + type: boolean + description: Whether the content detection resulted in a content filtering action. + detected: + type: boolean + description: Whether the labeled content category was detected in the content. + description: |- + A labeled content filter result item that indicates whether the content was detected and whether the content was + filtered. + AzureContentFilterForResponsesAPI: + type: object + required: + - blocked + - source_type + - content_filter_results + - content_filter_offsets + properties: + blocked: + type: boolean + description: Indicate if the response is blocked. + source_type: + type: string + description: The name of the source type of the message. + content_filter_results: + allOf: + - $ref: '#/components/schemas/AzureContentFilterResultsForResponsesAPI' + description: A content filter result for a single response item produced by a generative AI system. + content_filter_offsets: + $ref: '#/components/schemas/AzureContentFilterResultOffsets' + AzureContentFilterHarmExtensions: + type: object + properties: + pii_sub_categories: + type: array + items: + $ref: '#/components/schemas/AzurePiiSubCategory' + description: Configuration for PIIHarmSubCategory(s). + description: Extensions for harm categories, providing additional configuration options. + AzureContentFilterImagePromptResults: + type: object + required: + - jailbreak + properties: + profanity: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the + content. + custom_blocklists: + allOf: + - $ref: '#/components/schemas/AzureContentFilterBlocklistResult' + description: A collection of binary filtering outcomes for configured custom blocklists. + custom_topics: + allOf: + - $ref: '#/components/schemas/AzureContentFilterCustomTopicResult' + description: A collection of binary filtering outcomes for configured custom topics. + jailbreak: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that describes user prompt injection attacks, where malicious users deliberately exploit + system vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content + generation or violations of system-imposed restrictions. + allOf: + - $ref: '#/components/schemas/AzureContentFilterImageResponseResults' + description: A content filter result for an image generation operation's input request content. + AzureContentFilterImageResponseResults: + type: object + properties: + sexual: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to anatomical organs and genitals, romantic relationships, acts + portrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an + assault or a forced sexual violent act against one's will, prostitution, pornography, and abuse. + violence: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to physical actions intended to hurt, injure, damage, or kill + someone or something; describes weapons, guns and related entities, such as manufactures, associations, + legislation, and so on. + hate: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that can refer to any content that attacks or uses pejorative or discriminatory + language with reference to a person or identity group based on certain differentiating attributes of these groups + including but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation, + religion, immigration status, ability status, personal appearance, and body size. + self_harm: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that describes language related to physical actions intended to purposely hurt, injure, + damage one's body or kill oneself. + description: A content filter result for an image generation operation's output response content. + AzureContentFilterPersonallyIdentifiableInformationResult: + type: object + properties: + redacted_text: + type: string + description: The redacted text with PII information removed or masked. + sub_categories: + type: array + items: + $ref: '#/components/schemas/AzurePiiSubCategoryResult' + description: Detailed results for individual PIIHarmSubCategory(s). + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: A content filter detection result for Personally Identifiable Information that includes harm extensions. + AzureContentFilterResultForChoice: + type: object + properties: + sexual: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to anatomical organs and genitals, romantic relationships, acts + portrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an + assault or a forced sexual violent act against one's will, prostitution, pornography, and abuse. + hate: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that can refer to any content that attacks or uses pejorative or discriminatory + language with reference to a person or identity group based on certain differentiating attributes of these groups + including but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation, + religion, immigration status, ability status, personal appearance, and body size. + violence: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to physical actions intended to hurt, injure, damage, or kill + someone or something; describes weapons, guns and related entities, such as manufactures, associations, + legislation, and so on. + self_harm: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that describes language related to physical actions intended to purposely hurt, injure, + damage one's body or kill oneself. + profanity: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the + content. + custom_blocklists: + allOf: + - $ref: '#/components/schemas/AzureContentFilterBlocklistResult' + description: A collection of binary filtering outcomes for configured custom blocklists. + custom_topics: + allOf: + - $ref: '#/components/schemas/AzureContentFilterCustomTopicResult' + description: A collection of binary filtering outcomes for configured custom topics. + error: + type: object + properties: + code: + type: integer + format: int32 + description: A distinct, machine-readable code associated with the error. + message: + type: string + description: A human-readable message associated with the error. + required: + - code + - message + description: If present, details about an error that prevented content filtering from completing its evaluation. + protected_material_text: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: A detection result that describes a match against text protected under copyright or other status. + protected_material_code: + type: object + properties: + filtered: + type: boolean + description: Whether the content detection resulted in a content filtering action. + detected: + type: boolean + description: Whether the labeled content category was detected in the content. + citation: + type: object + properties: + license: + type: string + description: The name or identifier of the license associated with the detection. + URL: + type: string + format: uri + description: The URL associated with the license. + description: If available, the citation details describing the associated license and its location. + required: + - filtered + - detected + description: A detection result that describes a match against licensed code or other protected source material. + ungrounded_material: + $ref: '#/components/schemas/AzureContentFilterCompletionTextSpanDetectionResult' + personally_identifiable_information: + allOf: + - $ref: '#/components/schemas/AzureContentFilterPersonallyIdentifiableInformationResult' + description: A detection result that describes matches against Personal Identifiable Information with configurable subcategories. + description: A content filter result for a single response item produced by a generative AI system. + AzureContentFilterResultForPrompt: + type: object + properties: + prompt_index: + type: integer + format: int32 + description: The index of the input prompt associated with the accompanying content filter result categories. + content_filter_results: + type: object + properties: + sexual: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to anatomical organs and genitals, romantic relationships, acts + portrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an + assault or a forced sexual violent act against one's will, prostitution, pornography, and abuse. + hate: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that can refer to any content that attacks or uses pejorative or discriminatory + language with reference to a person or identity group based on certain differentiating attributes of these groups + including but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation, + religion, immigration status, ability status, personal appearance, and body size. + violence: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to physical actions intended to hurt, injure, damage, or kill + someone or something; describes weapons, guns and related entities, such as manufactures, associations, + legislation, and so on. + self_harm: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that describes language related to physical actions intended to purposely hurt, injure, + damage one's body or kill oneself. + profanity: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the + content. + custom_blocklists: + allOf: + - $ref: '#/components/schemas/AzureContentFilterBlocklistResult' + description: A collection of binary filtering outcomes for configured custom blocklists. + custom_topics: + allOf: + - $ref: '#/components/schemas/AzureContentFilterCustomTopicResult' + description: A collection of binary filtering outcomes for configured custom topics. + error: + type: object + properties: + code: + type: integer + format: int32 + description: A distinct, machine-readable code associated with the error. + message: + type: string + description: A human-readable message associated with the error. + required: + - code + - message + description: If present, details about an error that prevented content filtering from completing its evaluation. + jailbreak: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that describes user prompt injection attacks, where malicious users deliberately exploit + system vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content + generation or violations of system-imposed restrictions. + indirect_attack: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that describes attacks on systems powered by Generative AI models that can happen every time + an application processes information that wasn’t directly authored by either the developer of the application or + the user. + required: + - jailbreak + - indirect_attack + description: The content filter category details for the result. + description: A content filter result associated with a single input prompt item into a generative AI system. + AzureContentFilterResultOffsets: + type: object + required: + - start_offset + - end_offset + - check_offset + properties: + start_offset: + type: integer + format: int32 + end_offset: + type: integer + format: int32 + check_offset: + type: integer + format: int32 + AzureContentFilterResultsForResponsesAPI: + type: object + required: + - jailbreak + - task_adherence + properties: + sexual: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to anatomical organs and genitals, romantic relationships, acts + portrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an + assault or a forced sexual violent act against one's will, prostitution, pornography, and abuse. + hate: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that can refer to any content that attacks or uses pejorative or discriminatory + language with reference to a person or identity group based on certain differentiating attributes of these groups + including but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation, + religion, immigration status, ability status, personal appearance, and body size. + violence: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to physical actions intended to hurt, injure, damage, or kill + someone or something; describes weapons, guns and related entities, such as manufactures, associations, + legislation, and so on. + self_harm: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that describes language related to physical actions intended to purposely hurt, injure, + damage one's body or kill oneself. + profanity: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the + content. + custom_blocklists: + allOf: + - $ref: '#/components/schemas/AzureContentFilterBlocklistResult' + description: A collection of binary filtering outcomes for configured custom blocklists. + custom_topics: + allOf: + - $ref: '#/components/schemas/AzureContentFilterCustomTopicResult' + description: A collection of binary filtering outcomes for configured custom topics. + error: + type: object + properties: + code: + type: integer + format: int32 + description: A distinct, machine-readable code associated with the error. + message: + type: string + description: A human-readable message associated with the error. + required: + - code + - message + description: If present, details about an error that prevented content filtering from completing its evaluation. + jailbreak: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that describes user prompt injection attacks, where malicious users deliberately exploit + system vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content + generation or violations of system-imposed restrictions. + task_adherence: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: A detection result that indicates if the execution flow still sticks the plan. + protected_material_text: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: A detection result that describes a match against text protected under copyright or other status. + protected_material_code: + type: object + properties: + filtered: + type: boolean + description: Whether the content detection resulted in a content filtering action. + detected: + type: boolean + description: Whether the labeled content category was detected in the content. + citation: + type: object + properties: + license: + type: string + description: The name or identifier of the license associated with the detection. + URL: + type: string + format: uri + description: The URL associated with the license. + description: If available, the citation details describing the associated license and its location. + required: + - filtered + - detected + description: A detection result that describes a match against licensed code or other protected source material. + ungrounded_material: + $ref: '#/components/schemas/AzureContentFilterCompletionTextSpanDetectionResult' + personally_identifiable_information: + allOf: + - $ref: '#/components/schemas/AzureContentFilterPersonallyIdentifiableInformationResult' + description: A detection result that describes matches against Personal Identifiable Information with configurable subcategories. + indirect_attack: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that describes attacks on systems powered by Generative AI models that can happen every time + an application processes information that wasn’t directly authored by either the developer of the application or + the user. + AzureContentFilterSeverityResult: + type: object + required: + - filtered + - severity + properties: + filtered: + type: boolean + description: Whether the content severity resulted in a content filtering action. + severity: + type: string + enum: + - safe + - low + - medium + - high + description: The labeled severity of the content. + description: |- + A labeled content filter result item that indicates whether the content was filtered and what the qualitative + severity level of the content was, as evaluated against content filter configuration for the category. + AzureErrorResponse: + type: object + properties: + error: + type: object + properties: + code: + type: string + description: The distinct, machine-generated identifier for the error. + message: + type: string + description: A human-readable message associated with the error. + param: + type: string + description: If applicable, the request input parameter associated with the error + type: + type: string + enum: + - error + description: The object type, always 'error.' + inner_error: {} + description: The error details. + AzureFileExpiryAnchor: + type: string + enum: + - created_at + AzureFineTuneReinforcementMethod: + type: object + required: + - grader + properties: + grader: + anyOf: + - $ref: '#/components/schemas/OpenAI.GraderStringCheck' + - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' + - $ref: '#/components/schemas/OpenAI.GraderScoreModel' + - $ref: '#/components/schemas/OpenAI.GraderMulti' + - $ref: '#/components/schemas/GraderEndpoint' + response_format: + allOf: + - $ref: '#/components/schemas/ResponseFormatJSONSchemaRequest' + description: Response format to be used while sampling during RFT training + hyperparameters: + $ref: '#/components/schemas/OpenAI.FineTuneReinforcementHyperparameters' + AzureOpenAIVideoGenerationErrorResponse: + type: object + properties: + code: + type: string + description: The distinct, machine-generated identifier for the error. + message: + type: string + description: A human-readable message associated with the error. + param: + type: string + description: If applicable, the request input parameter associated with the error + type: + type: string + description: If applicable, the input line number associated with the error. + inner_error: + type: object + properties: + code: + type: string + enum: + - ResponsibleAIPolicyViolation + description: The code associated with the inner error. + revised_prompt: + type: string + description: If applicable, the modified prompt used for generation. + error_details: + description: The content filter result details associated with the inner error. + description: If applicable, an upstream error that originated this error. + AzurePiiSubCategory: + type: object + required: + - sub_category + - detect + - redact + - filter + properties: + sub_category: + type: string + description: The PIIHarmSubCategory being configured. + detect: + type: boolean + description: Whether detection is enabled for this subcategory. + redact: + type: boolean + description: Whether content containing this subcategory should be redacted. + filter: + type: boolean + description: Whether content containing this subcategory should be blocked. + description: Configuration for individual PIIHarmSubCategory(s) within the harm extensions framework. + AzurePiiSubCategoryResult: + type: object + required: + - sub_category + - filtered + - detected + - redacted + properties: + sub_category: + type: string + description: The PIIHarmSubCategory that was evaluated. + filtered: + type: boolean + description: Whether the content detection resulted in a content filtering action for this subcategory. + detected: + type: boolean + description: Whether the labeled content subcategory was detected in the content. + redacted: + type: boolean + description: Whether the content was redacted for this subcategory. + description: Result details for individual PIIHarmSubCategory(s). + AzureResponsesSamplingParams: + type: object + properties: + max_tokens: + type: integer + format: int32 + description: The maximum number of tokens in the generated output. + allOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceSamplingParams' + description: Sampling parameters for controlling the behavior of responses. + AzureUserSecurityContext: + type: object + properties: + application_name: + type: string + description: The name of the application. Sensitive personal information should not be included in this field. + end_user_id: + type: string + description: This identifier is the Microsoft Entra ID (formerly Azure Active Directory) user object ID used to authenticate end-users within the generative AI application. Sensitive personal information should not be included in this field. + end_user_tenant_id: + type: string + description: The Microsoft 365 tenant ID the end user belongs to. It's required when the generative AI application is multitenant. + source_ip: + type: string + description: Captures the original client's IP address. + description: User security context contains several parameters that describe the application itself, and the end user that interacts with the application. These fields assist your security operations teams to investigate and mitigate security incidents by providing a comprehensive approach to protecting your AI applications. [Learn more](https://aka.ms/TP4AI/Documentation/EndUserContext) about protecting AI applications using Microsoft Defender for Cloud. + CopiedAccountDetails: + type: object + required: + - destinationResourceId + - region + - status + properties: + destinationResourceId: + type: string + description: The ID of the destination resource where the model was copied to. + region: + type: string + description: The region where the model was copied to. + status: + type: string + enum: + - Completed + - Failed + - InProgress + description: The status of the copy operation. + CopyModelRequest: + type: object + required: + - destinationResourceId + - region + properties: + destinationResourceId: + type: string + description: The ID of the destination Resource to copy. + region: + type: string + description: The region to copy the model to. + CopyModelResponse: + type: object + required: + - checkpointedModelName + - fineTuningJobId + - copiedAccountDetails + properties: + checkpointedModelName: + type: string + description: The ID of the copied model. + fineTuningJobId: + type: string + description: The ID of the fine-tuning job that the checkpoint was copied from. + copiedAccountDetails: + type: array + items: + $ref: '#/components/schemas/CopiedAccountDetails' + description: The ID of the destination resource id where it was copied + CreateVideoBody: + type: object + required: + - model + - prompt + properties: + model: + type: string + description: The name of the deployment to use for this request. + prompt: + type: string + minLength: 1 + description: Text prompt that describes the video to generate. + seconds: + allOf: + - $ref: '#/components/schemas/VideoSeconds' + description: Clip duration in seconds. Defaults to 4 seconds. + default: '4' + size: + allOf: + - $ref: '#/components/schemas/VideoSize' + description: Output resolution formatted as width x height. Defaults to 720x1280. + default: 720x1280 + CreateVideoBodyWithInputReference: + type: object + properties: + model: + type: string + description: The name of the deployment to use for this request. + prompt: + type: string + description: Text prompt that describes the video to generate. + seconds: + allOf: + - $ref: '#/components/schemas/VideoSeconds' + description: Clip duration in seconds. Defaults to 4 seconds. + size: + allOf: + - $ref: '#/components/schemas/VideoSize' + description: Output resolution formatted as width x height. Defaults to 720x1280. + input_reference: + description: Optional image reference that guides generation. + x-oaiTypeLabel: file + required: + - model + - prompt + - input_reference + CreateVideoRemixBody: + type: object + required: + - prompt + properties: + prompt: + type: string + minLength: 1 + description: Updated text prompt that directs the remix generation. + description: Parameters for remixing an existing generated video. + DeletedVideoResource: + type: object + required: + - object + - deleted + - id + properties: + object: + type: string + description: The object type that signals the deletion response. + default: video.deleted + deleted: + type: boolean + description: Indicates that the video resource was deleted. + default: true + id: + type: string + description: Identifier of the deleted video. + description: Confirmation payload returned after deleting a video. + Error: + type: object + required: + - code + - message + properties: + code: + type: string + message: + type: string + EvalGraderEndpoint: + type: object + required: + - type + - name + - url + properties: + type: + type: string + enum: + - endpoint + default: endpoint + name: + type: string + description: The name of the grader + url: + type: string + pattern: ^https:// + description: The HTTPS URL of the endpoint to call for grading + headers: + anyOf: + - type: object + unevaluatedProperties: + type: string + - type: 'null' + description: Optional HTTP headers to include in requests to the endpoint + rate_limit: + anyOf: + - type: integer + format: int32 + - type: 'null' + description: |- + Optional rate limit for requests per second to the endpoint + Must be a positive integer + pass_threshold: + anyOf: + - type: number + format: decimal + - type: 'null' + description: |- + Optional threshold score above which the grade is considered passing + If not specified, all scores are considered valid + FileExpiresAfter: + type: object + required: + - anchor + - seconds + properties: + anchor: + type: string + enum: + - created_at + description: Defines the anchor relative to what time the absolute expiration should be generated from. + seconds: + type: integer + format: int64 + minimum: 1209600 + maximum: 2592000 + description: '"The relative expiration time in seconds.\r\nRange: [1209600 - 2592000].' + description: Defines a expiration for the file. + GraderEndpoint: + type: object + required: + - type + - name + - url + properties: + type: + type: string + enum: + - endpoint + default: endpoint + name: + type: string + description: The name of the grader + url: + type: string + pattern: ^https:// + description: The HTTPS URL of the endpoint to call for grading + headers: + anyOf: + - type: object + unevaluatedProperties: + type: string + - type: 'null' + description: Optional HTTP headers to include in requests to the endpoint + rate_limit: + anyOf: + - type: integer + format: int32 + - type: 'null' + description: |- + Optional rate limit for requests per second to the endpoint + Must be a positive integer + pass_threshold: + anyOf: + - type: number + format: decimal + - type: 'null' + description: |- + Optional threshold score above which the grade is considered passing + If not specified, all scores are considered valid + description: Endpoint grader configuration for external HTTP endpoint evaluation + OpenAI.Annotation: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.AnnotationType' + discriminator: + propertyName: type + mapping: + file_citation: '#/components/schemas/OpenAI.FileCitationBody' + url_citation: '#/components/schemas/OpenAI.UrlCitationBody' + container_file_citation: '#/components/schemas/OpenAI.ContainerFileCitationBody' + file_path: '#/components/schemas/OpenAI.FilePath' + OpenAI.AnnotationType: + anyOf: + - type: string + - type: string + enum: + - file_citation + - url_citation + - container_file_citation + - file_path + OpenAI.ApplyPatchCallOutputStatus: + type: string + enum: + - completed + - failed + OpenAI.ApplyPatchCallStatus: + type: string + enum: + - in_progress + - completed + OpenAI.ApplyPatchCreateFileOperation: + type: object + required: + - type + - path + - diff + properties: + type: + type: string + enum: + - create_file + description: Create a new file with the provided diff. + x-stainless-const: true + default: create_file + path: + type: string + description: Path of the file to create. + diff: + type: string + description: Diff to apply. + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperation' + description: Instruction describing how to create a file via the apply_patch tool. + title: Apply patch create file operation + OpenAI.ApplyPatchDeleteFileOperation: + type: object + required: + - type + - path + properties: + type: + type: string + enum: + - delete_file + description: Delete the specified file. + x-stainless-const: true + default: delete_file + path: + type: string + description: Path of the file to delete. + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperation' + description: Instruction describing how to delete a file via the apply_patch tool. + title: Apply patch delete file operation + OpenAI.ApplyPatchFileOperation: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperationType' + discriminator: + propertyName: type + mapping: + create_file: '#/components/schemas/OpenAI.ApplyPatchCreateFileOperation' + delete_file: '#/components/schemas/OpenAI.ApplyPatchDeleteFileOperation' + update_file: '#/components/schemas/OpenAI.ApplyPatchUpdateFileOperation' + description: One of the create_file, delete_file, or update_file operations applied via apply_patch. + title: Apply patch operation + OpenAI.ApplyPatchFileOperationType: + anyOf: + - type: string + - type: string + enum: + - create_file + - delete_file + - update_file + OpenAI.ApplyPatchToolCall: + type: object + required: + - type + - id + - call_id + - status + - operation + properties: + type: + type: string + enum: + - apply_patch_call + description: The type of the item. Always `apply_patch_call`. + x-stainless-const: true + default: apply_patch_call + id: + type: string + description: The unique ID of the apply patch tool call. Populated when this item is returned via API. + call_id: + type: string + description: The unique ID of the apply patch tool call generated by the model. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchCallStatus' + description: The status of the apply patch tool call. One of `in_progress` or `completed`. + operation: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperation' + description: One of the create_file, delete_file, or update_file operations applied via apply_patch. + created_by: + type: string + description: The ID of the entity that created this tool call. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + description: A tool call that applies file diffs by creating, deleting, or updating files. + title: Apply patch tool call + OpenAI.ApplyPatchToolCallOutput: + type: object + required: + - type + - id + - call_id + - status + properties: + type: + type: string + enum: + - apply_patch_call_output + description: The type of the item. Always `apply_patch_call_output`. + x-stainless-const: true + default: apply_patch_call_output + id: + type: string + description: The unique ID of the apply patch tool call output. Populated when this item is returned via API. + call_id: + type: string + description: The unique ID of the apply patch tool call generated by the model. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchCallOutputStatus' + description: The status of the apply patch tool call output. One of `completed` or `failed`. + output: + anyOf: + - type: string + - type: 'null' + created_by: + type: string + description: The ID of the entity that created this tool call output. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + description: The output emitted by an apply patch tool call. + title: Apply patch tool call output + OpenAI.ApplyPatchToolParam: + type: object + required: + - type + properties: + type: + type: string + enum: + - apply_patch + description: The type of the tool. Always `apply_patch`. + x-stainless-const: true + default: apply_patch + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: Allows the assistant to create, delete, or update files using unified diffs. + title: Apply patch tool + OpenAI.ApplyPatchUpdateFileOperation: + type: object + required: + - type + - path + - diff + properties: + type: + type: string + enum: + - update_file + description: Update an existing file with the provided diff. + x-stainless-const: true + default: update_file + path: + type: string + description: Path of the file to update. + diff: + type: string + description: Diff to apply. + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperation' + description: Instruction describing how to update a file via the apply_patch tool. + title: Apply patch update file operation + OpenAI.ApproximateLocation: + type: object + required: + - type + properties: + type: + type: string + enum: + - approximate + description: The type of location approximation. Always `approximate`. + x-stainless-const: true + default: approximate + country: + anyOf: + - type: string + - type: 'null' + region: + anyOf: + - type: string + - type: 'null' + city: + anyOf: + - type: string + - type: 'null' + timezone: + anyOf: + - type: string + - type: 'null' + OpenAI.AssistantTool: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.AssistantToolType' + discriminator: + propertyName: type + mapping: + code_interpreter: '#/components/schemas/OpenAI.AssistantToolsCode' + file_search: '#/components/schemas/OpenAI.AssistantToolsFileSearch' + function: '#/components/schemas/OpenAI.AssistantToolsFunction' + OpenAI.AssistantToolType: + anyOf: + - type: string + - type: string + enum: + - code_interpreter + - file_search + - function + OpenAI.AssistantToolsCode: + type: object + required: + - type + properties: + type: + type: string + enum: + - code_interpreter + description: 'The type of tool being defined: `code_interpreter`' + x-stainless-const: true + allOf: + - $ref: '#/components/schemas/OpenAI.AssistantTool' + title: Code interpreter tool + OpenAI.AssistantToolsFileSearch: + type: object + required: + - type + properties: + type: + type: string + enum: + - file_search + description: 'The type of tool being defined: `file_search`' + x-stainless-const: true + file_search: + allOf: + - $ref: '#/components/schemas/OpenAI.AssistantToolsFileSearchFileSearch' + description: Overrides for the file search tool. + allOf: + - $ref: '#/components/schemas/OpenAI.AssistantTool' + title: FileSearch tool + OpenAI.AssistantToolsFileSearchFileSearch: + type: object + properties: + max_num_results: + type: integer + minimum: 1 + maximum: 50 + ranking_options: + $ref: '#/components/schemas/OpenAI.FileSearchRankingOptions' + OpenAI.AssistantToolsFileSearchTypeOnly: + type: object + required: + - type + properties: + type: + type: string + enum: + - file_search + description: 'The type of tool being defined: `file_search`' + x-stainless-const: true + title: AssistantToolsFileSearchTypeOnly + OpenAI.AssistantToolsFunction: + type: object + required: + - type + - function + properties: + type: + type: string + enum: + - function + description: 'The type of tool being defined: `function`' + x-stainless-const: true + function: + $ref: '#/components/schemas/OpenAI.FunctionObject' + allOf: + - $ref: '#/components/schemas/OpenAI.AssistantTool' + title: Function tool + OpenAI.AssistantsApiResponseFormatOption: + anyOf: + - type: string + enum: + - auto + - $ref: '#/components/schemas/OpenAI.ResponseFormatText' + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonObject' + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchema' + description: |- + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "json_schema": {...} }` enables Structured Outputs which ensures the model will match your supplied JSON schema. Learn more in the [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + *Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + OpenAI.AssistantsApiToolChoiceOption: + anyOf: + - type: string + enum: + - none + - auto + - required + - $ref: '#/components/schemas/OpenAI.AssistantsNamedToolChoice' + description: |- + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and means the model can pick between generating a message or calling one or more tools. + `required` means the model must call one or more tools before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + OpenAI.AssistantsNamedToolChoice: + type: object + required: + - type + properties: + type: + type: string + enum: + - function + - code_interpreter + - file_search + description: The type of the tool. If type is `function`, the function name must be set + function: + $ref: '#/components/schemas/OpenAI.AssistantsNamedToolChoiceFunction' + description: Specifies a tool the model should use. Use to force the model to call a specific tool. + OpenAI.AssistantsNamedToolChoiceFunction: + type: object + required: + - name + properties: + name: + type: string + OpenAI.AudioTranscription: + type: object + properties: + model: + type: string + description: The model to use for transcription. Current options are `whisper-1`, `gpt-4o-mini-transcribe`, `gpt-4o-transcribe`, and `gpt-4o-transcribe-diarize`. Use `gpt-4o-transcribe-diarize` when you need diarization with speaker labels. + language: + type: string + description: |- + The language of the input audio. Supplying the input language in + [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`) format + will improve accuracy and latency. + prompt: + type: string + description: |- + An optional text to guide the model's style or continue a previous audio + segment. + For `whisper-1`, the [prompt is a list of keywords](https://platform.openai.com/docs/guides/speech-to-text#prompting). + For `gpt-4o-transcribe` models (excluding `gpt-4o-transcribe-diarize`), the prompt is a free text string, for example "expect words related to technology". + OpenAI.AutoChunkingStrategyRequestParam: + type: object + required: + - type + properties: + type: + type: string + enum: + - auto + description: Always `auto`. + x-stainless-const: true + allOf: + - $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' + description: The default strategy. This strategy currently uses a `max_chunk_size_tokens` of `800` and `chunk_overlap_tokens` of `400`. + title: Auto Chunking Strategy + OpenAI.Batch: + type: object + required: + - id + - object + - endpoint + - completion_window + - status + - created_at + - input_blob + - output_blob + - error_blob + properties: + id: + type: string + object: + type: string + enum: + - batch + description: The object type, which is always `batch`. + x-stainless-const: true + endpoint: + type: string + description: The OpenAI API endpoint used by the batch. + model: + type: string + description: |- + Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model + guide](https://platform.openai.com/docs/models) to browse and compare available models. + errors: + $ref: '#/components/schemas/OpenAI.BatchErrors' + completion_window: + type: string + description: The time frame within which the batch should be processed. + status: + type: string + enum: + - validating + - failed + - in_progress + - finalizing + - completed + - expired + - cancelling + - cancelled + description: The current status of the batch. + output_file_id: + type: string + description: The ID of the file containing the outputs of successfully executed requests. + error_file_id: + type: string + description: The ID of the file containing the outputs of requests with errors. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was created. + in_progress_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started processing. + expires_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch will expire. + finalizing_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started finalizing. + completed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was completed. + failed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch failed. + expired_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch expired. + cancelling_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started cancelling. + cancelled_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was cancelled. + request_counts: + $ref: '#/components/schemas/OpenAI.BatchRequestCounts' + usage: + allOf: + - $ref: '#/components/schemas/OpenAI.BatchUsage' + description: |- + Represents token usage details including input tokens, output tokens, a + breakdown of output tokens, and the total tokens used. Only populated on + batches created after September 7, 2025. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + input_blob: + anyOf: + - type: string + - type: 'null' + description: The blob url containing the input file for the batch. + output_blob: + anyOf: + - type: string + - type: 'null' + description: The blob url containing outputs of successfully executed requests. + error_blob: + anyOf: + - type: string + - type: 'null' + description: The blob url containing outputs of requests with errors. + input_file_id: + anyOf: + - type: string + - type: 'null' + x-oaiMeta: + name: The batch object + example: | + { + "id": "batch_abc123", + "object": "batch", + "endpoint": "/v1/completions", + "model": "gpt-5-2025-08-07", + "errors": null, + "input_file_id": "file-abc123", + "completion_window": "24h", + "status": "completed", + "output_file_id": "file-cvaTdG", + "error_file_id": "file-HOWS94", + "created_at": 1711471533, + "in_progress_at": 1711471538, + "expires_at": 1711557933, + "finalizing_at": 1711493133, + "completed_at": 1711493163, + "failed_at": null, + "expired_at": null, + "cancelling_at": null, + "cancelled_at": null, + "request_counts": { + "total": 100, + "completed": 95, + "failed": 5 + }, + "usage": { + "input_tokens": 1500, + "input_tokens_details": { + "cached_tokens": 1024 + }, + "output_tokens": 500, + "output_tokens_details": { + "reasoning_tokens": 300 + }, + "total_tokens": 2000 + }, + "metadata": { + "customer_id": "user_123456789", + "batch_description": "Nightly eval job", + } + } + OpenAI.BatchError: + type: object + properties: + code: + type: string + description: An error code identifying the error type. + message: + type: string + description: A human-readable message providing more details about the error. + param: + anyOf: + - type: string + - type: 'null' + line: + anyOf: + - type: integer + - type: 'null' + OpenAI.BatchErrors: + type: object + properties: + object: + type: string + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.BatchError' + OpenAI.BatchRequestCounts: + type: object + required: + - total + - completed + - failed + properties: + total: + type: integer + description: Total number of requests in the batch. + completed: + type: integer + description: Number of requests that have been completed successfully. + failed: + type: integer + description: Number of requests that have failed. + description: The request counts for different statuses within the batch. + OpenAI.BatchUsage: + type: object + required: + - input_tokens + - input_tokens_details + - output_tokens + - output_tokens_details + - total_tokens + properties: + input_tokens: + type: integer + input_tokens_details: + $ref: '#/components/schemas/OpenAI.BatchUsageInputTokensDetails' + output_tokens: + type: integer + output_tokens_details: + $ref: '#/components/schemas/OpenAI.BatchUsageOutputTokensDetails' + total_tokens: + type: integer + OpenAI.BatchUsageInputTokensDetails: + type: object + required: + - cached_tokens + properties: + cached_tokens: + type: integer + OpenAI.BatchUsageOutputTokensDetails: + type: object + required: + - reasoning_tokens + properties: + reasoning_tokens: + type: integer + OpenAI.ChatCompletionAllowedTools: + type: object + required: + - mode + - tools + properties: + mode: + type: string + enum: + - auto + - required + description: |- + Constrains the tools available to the model to a pre-defined set. + + `auto` allows the model to pick from among the allowed tools and generate a + message. + + `required` requires the model to call one or more of the allowed tools. + tools: + type: array + items: + type: object + unevaluatedProperties: {} + description: |- + A list of tool definitions that the model should be allowed to call. + + For the Chat Completions API, the list of tool definitions might look like: + ```json + [ + { "type": "function", "function": { "name": "get_weather" } }, + { "type": "function", "function": { "name": "get_time" } } + ] + ``` + description: Constrains the tools available to the model to a pre-defined set. + title: Allowed tools + OpenAI.ChatCompletionAllowedToolsChoice: + type: object + required: + - type + - allowed_tools + properties: + type: + type: string + enum: + - allowed_tools + description: Allowed tool configuration type. Always `allowed_tools`. + x-stainless-const: true + allowed_tools: + $ref: '#/components/schemas/OpenAI.ChatCompletionAllowedTools' + description: Constrains the tools available to the model to a pre-defined set. + title: Allowed tools + OpenAI.ChatCompletionFunctionCallOption: + type: object + required: + - name + properties: + name: + type: string + description: The name of the function to call. + description: 'Specifying a particular function via `{"name": "my_function"}` forces the model to call that function.' + x-stainless-variantName: function_call_option + OpenAI.ChatCompletionFunctions: + type: object + required: + - name + properties: + description: + type: string + description: A description of what the function does, used by the model to choose when and how to call the function. + name: + type: string + description: The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. + parameters: + allOf: + - $ref: '#/components/schemas/OpenAI.FunctionParameters' + description: |- + The parameters the functions accepts, described as a JSON Schema object. + See the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) + for documentation about the format. + + Omitting `parameters` defines a function with an empty parameter list. + OpenAI.ChatCompletionMessageCustomToolCall: + type: object + required: + - id + - type + - custom + properties: + id: + type: string + description: The ID of the tool call. + type: + type: string + enum: + - custom + description: The type of the tool. Always `custom`. + x-stainless-const: true + custom: + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageCustomToolCallCustom' + description: The custom tool that the model called. + description: A call to a custom tool created by the model. + title: Custom tool call + OpenAI.ChatCompletionMessageCustomToolCallCustom: + type: object + required: + - name + - input + properties: + name: + type: string + input: + type: string + OpenAI.ChatCompletionMessageToolCall: + type: object + required: + - id + - type + - function + properties: + id: + type: string + description: The ID of the tool call. + type: + type: string + enum: + - function + description: The type of the tool. Currently, only `function` is supported. + x-stainless-const: true + function: + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCallFunction' + description: The function that the model called. + description: A call to a function tool created by the model. + title: Function tool call + OpenAI.ChatCompletionMessageToolCallChunk: + type: object + required: + - index + properties: + index: + type: integer + id: + type: string + description: The ID of the tool call. + type: + type: string + enum: + - function + description: The type of the tool. Currently, only `function` is supported. + x-stainless-const: true + function: + $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunkFunction' + OpenAI.ChatCompletionMessageToolCallChunkFunction: + type: object + properties: + name: + type: string + arguments: + type: string + OpenAI.ChatCompletionMessageToolCallFunction: + type: object + required: + - name + - arguments + properties: + name: + type: string + arguments: + type: string + OpenAI.ChatCompletionMessageToolCalls: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCall' + - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageCustomToolCall' + description: The tool calls generated by the model, such as function calls. + OpenAI.ChatCompletionMessageToolCallsItem: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCall' + - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageCustomToolCall' + description: The tool calls generated by the model, such as function calls. + OpenAI.ChatCompletionNamedToolChoice: + type: object + required: + - type + - function + properties: + type: + type: string + enum: + - function + description: For function calling, the type is always `function`. + x-stainless-const: true + function: + $ref: '#/components/schemas/OpenAI.ChatCompletionNamedToolChoiceFunction' + description: Specifies a tool the model should use. Use to force the model to call a specific function. + title: Function tool choice + OpenAI.ChatCompletionNamedToolChoiceCustom: + type: object + required: + - type + - custom + properties: + type: + type: string + enum: + - custom + description: For custom tool calling, the type is always `custom`. + x-stainless-const: true + custom: + $ref: '#/components/schemas/OpenAI.ChatCompletionNamedToolChoiceCustomCustom' + description: Specifies a tool the model should use. Use to force the model to call a specific custom tool. + title: Custom tool choice + OpenAI.ChatCompletionNamedToolChoiceCustomCustom: + type: object + required: + - name + properties: + name: + type: string + OpenAI.ChatCompletionNamedToolChoiceFunction: + type: object + required: + - name + properties: + name: + type: string + OpenAI.ChatCompletionRequestAssistantMessage: + type: object + required: + - role + properties: + content: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPart' + - type: 'null' + refusal: + anyOf: + - type: string + - type: 'null' + role: + type: string + enum: + - assistant + description: The role of the messages author, in this case `assistant`. + x-stainless-const: true + name: + type: string + description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. + audio: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageAudio' + - type: 'null' + description: Data about a previous audio response from the model. + tool_calls: + $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCalls' + function_call: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageFunctionCall' + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + description: Messages sent by the model in response to user messages. + title: Assistant message + x-stainless-soft-required: + - content + OpenAI.ChatCompletionRequestAssistantMessageAudio: + type: object + required: + - id + properties: + id: + type: string + OpenAI.ChatCompletionRequestAssistantMessageContentPart: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPartType' + discriminator: + propertyName: type + mapping: + refusal: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartRefusal' + OpenAI.ChatCompletionRequestAssistantMessageContentPartType: + anyOf: + - type: string + - type: string + enum: + - text + - refusal + OpenAI.ChatCompletionRequestAssistantMessageFunctionCall: + type: object + required: + - arguments + - name + properties: + arguments: + type: string + name: + type: string + OpenAI.ChatCompletionRequestDeveloperMessage: + type: object + required: + - content + - role + properties: + content: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' + description: The contents of the developer message. + role: + type: string + enum: + - developer + description: The role of the messages author, in this case `developer`. + x-stainless-const: true + name: + type: string + description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + description: |- + Developer-provided instructions that the model should follow, regardless of + messages sent by the user. With o1 models and newer, `developer` messages + replace the previous `system` messages. + title: Developer message + x-stainless-naming: + go: + variant_constructor: DeveloperMessage + OpenAI.ChatCompletionRequestFunctionMessage: + type: object + required: + - role + - content + - name + properties: + role: + type: string + enum: + - function + description: The role of the messages author, in this case `function`. + x-stainless-const: true + content: + anyOf: + - type: string + - type: 'null' + name: + type: string + description: The name of the function to call. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + title: Function message + OpenAI.ChatCompletionRequestMessage: + type: object + required: + - role + properties: + role: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageType' + discriminator: + propertyName: role + mapping: + assistant: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessage' + developer: '#/components/schemas/OpenAI.ChatCompletionRequestDeveloperMessage' + function: '#/components/schemas/OpenAI.ChatCompletionRequestFunctionMessage' + system: '#/components/schemas/OpenAI.ChatCompletionRequestSystemMessage' + user: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessage' + tool: '#/components/schemas/OpenAI.ChatCompletionRequestToolMessage' + OpenAI.ChatCompletionRequestMessageContentPartAudio: + type: object + required: + - type + - input_audio + properties: + type: + type: string + enum: + - input_audio + description: The type of the content part. Always `input_audio`. + x-stainless-const: true + input_audio: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudioInputAudio' + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart' + description: '' + title: Audio content part + x-stainless-naming: + go: + variant_constructor: InputAudioContentPart + OpenAI.ChatCompletionRequestMessageContentPartAudioInputAudio: + type: object + required: + - data + - format + properties: + data: + type: string + format: + type: string + enum: + - wav + - mp3 + OpenAI.ChatCompletionRequestMessageContentPartFile: + type: object + required: + - type + - file + properties: + type: + type: string + enum: + - file + description: The type of the content part. Always `file`. + x-stainless-const: true + file: + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFileFile' + x-stainless-naming: + java: + type_name: FileObject + kotlin: + type_name: FileObject + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart' + description: Learn about [file inputs](https://platform.openai.com/docs/guides/text) for text generation. + title: File content part + x-stainless-naming: + go: + variant_constructor: FileContentPart + OpenAI.ChatCompletionRequestMessageContentPartFileFile: + type: object + properties: + filename: + type: string + file_data: + type: string + file_id: + type: string + OpenAI.ChatCompletionRequestMessageContentPartImage: + type: object + required: + - type + - image_url + properties: + type: + type: string + enum: + - image_url + description: The type of the content part. + x-stainless-const: true + image_url: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImageImageUrl' + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart' + description: '' + title: Image content part + x-stainless-naming: + go: + variant_constructor: ImageContentPart + OpenAI.ChatCompletionRequestMessageContentPartImageImageUrl: + type: object + required: + - url + properties: + url: + type: string + format: uri + detail: + type: string + enum: + - auto + - low + - high + default: auto + OpenAI.ChatCompletionRequestMessageContentPartRefusal: + type: object + required: + - type + - refusal + properties: + type: + type: string + enum: + - refusal + description: The type of the content part. + x-stainless-const: true + refusal: + type: string + description: The refusal message generated by the model. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPart' + title: Refusal content part + OpenAI.ChatCompletionRequestMessageContentPartText: + type: object + required: + - type + - text + properties: + type: + type: string + enum: + - text + description: The type of the content part. + x-stainless-const: true + text: + type: string + description: The text content. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart' + description: '' + title: Text content part + x-stainless-naming: + go: + variant_constructor: TextContentPart + OpenAI.ChatCompletionRequestMessageType: + anyOf: + - type: string + - type: string + enum: + - developer + - system + - user + - assistant + - tool + - function + OpenAI.ChatCompletionRequestSystemMessage: + type: object + required: + - content + - role + properties: + content: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestSystemMessageContentPart' + description: The contents of the system message. + role: + type: string + enum: + - system + description: The role of the messages author, in this case `system`. + x-stainless-const: true + name: + type: string + description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + description: |- + Developer-provided instructions that the model should follow, regardless of + messages sent by the user. With o1 models and newer, use `developer` messages + for this purpose instead. + title: System message + x-stainless-naming: + go: + variant_constructor: SystemMessage + OpenAI.ChatCompletionRequestSystemMessageContentPart: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' + OpenAI.ChatCompletionRequestToolMessage: + type: object + required: + - role + - content + - tool_call_id + properties: + role: + type: string + enum: + - tool + description: The role of the messages author, in this case `tool`. + x-stainless-const: true + content: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestToolMessageContentPart' + description: The contents of the tool message. + tool_call_id: + type: string + description: Tool call that this message is responding to. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + title: Tool message + x-stainless-naming: + go: + variant_constructor: ToolMessage + OpenAI.ChatCompletionRequestToolMessageContentPart: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' + OpenAI.ChatCompletionRequestUserMessage: + type: object + required: + - content + - role + properties: + content: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart' + description: The contents of the user message. + role: + type: string + enum: + - user + description: The role of the messages author, in this case `user`. + x-stainless-const: true + name: + type: string + description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + description: |- + Messages sent by an end user, containing prompts or additional context + information. + title: User message + x-stainless-naming: + go: + variant_constructor: UserMessage + OpenAI.ChatCompletionRequestUserMessageContentPart: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPartType' + discriminator: + propertyName: type + mapping: + image_url: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImage' + input_audio: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudio' + file: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFile' + OpenAI.ChatCompletionRequestUserMessageContentPartType: + anyOf: + - type: string + - type: string + enum: + - text + - image_url + - input_audio + - file + OpenAI.ChatCompletionResponseMessage: + type: object + required: + - content + - refusal + - role + properties: + content: + anyOf: + - type: string + - type: 'null' + refusal: + anyOf: + - type: string + - type: 'null' + tool_calls: + $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCallsItem' + annotations: + type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionResponseMessageAnnotations' + description: |- + Annotations for the message, when applicable, as when using the + [web search tool](https://platform.openai.com/docs/guides/tools-web-search?api-mode=chat). + role: + type: string + enum: + - assistant + description: The role of the author of this message. + x-stainless-const: true + function_call: + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionResponseMessageFunctionCall' + description: Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model. + audio: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionResponseMessageAudio' + - type: 'null' + reasoning_content: + type: string + description: An Azure-specific extension property containing generated reasoning content from supported models. + description: |- + If the audio output modality is requested, this object contains data + about the audio response from the model. + OpenAI.ChatCompletionResponseMessageAnnotations: + type: object + required: + - type + - url_citation + properties: + type: + type: string + enum: + - url_citation + x-stainless-const: true + url_citation: + $ref: '#/components/schemas/OpenAI.ChatCompletionResponseMessageAnnotationsUrlCitation' + OpenAI.ChatCompletionResponseMessageAnnotationsUrlCitation: + type: object + required: + - end_index + - start_index + - url + - title + properties: + end_index: + type: integer + start_index: + type: integer + url: + type: string + title: + type: string + OpenAI.ChatCompletionResponseMessageAudio: + type: object + required: + - id + - expires_at + - data + - transcript + properties: + id: + type: string + expires_at: + type: integer + format: unixtime + data: + type: string + transcript: + type: string + OpenAI.ChatCompletionResponseMessageFunctionCall: + type: object + required: + - arguments + - name + properties: + arguments: + type: string + name: + type: string + OpenAI.ChatCompletionStreamOptions: + type: object + properties: + include_usage: + type: boolean + description: |- + If set, an additional chunk will be streamed before the `data: [DONE]` + message. The `usage` field on this chunk shows the token usage statistics + for the entire request, and the `choices` field will always be an empty + array. + + All other chunks will also include a `usage` field, but with a null + value. **NOTE:** If the stream is interrupted, you may not receive the + final usage chunk which contains the total token usage for the request. + include_obfuscation: + type: boolean + description: |- + When true, stream obfuscation will be enabled. Stream obfuscation adds + random characters to an `obfuscation` field on streaming delta events to + normalize payload sizes as a mitigation to certain side-channel attacks. + These obfuscation fields are included by default, but add a small amount + of overhead to the data stream. You can set `include_obfuscation` to + false to optimize for bandwidth if you trust the network links between + your application and the OpenAI API. + description: 'Options for streaming response. Only set this when you set `stream: true`.' + OpenAI.ChatCompletionStreamResponseDelta: + type: object + properties: + content: + anyOf: + - type: string + - type: 'null' + function_call: + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionStreamResponseDeltaFunctionCall' + description: Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model. + tool_calls: + type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunk' + role: + type: string + enum: + - developer + - system + - user + - assistant + - tool + description: The role of the author of this message. + refusal: + anyOf: + - type: string + - type: 'null' + reasoning_content: + type: string + description: An Azure-specific extension property containing generated reasoning content from supported models. + description: A chat completion delta generated by streamed model responses. + OpenAI.ChatCompletionStreamResponseDeltaFunctionCall: + type: object + properties: + arguments: + type: string + name: + type: string + OpenAI.ChatCompletionTokenLogprob: + type: object + required: + - token + - logprob + - bytes + - top_logprobs + properties: + token: + type: string + description: The token. + logprob: + type: number + description: The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely. + bytes: + anyOf: + - type: array + items: + type: integer + - type: 'null' + top_logprobs: + type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprobTopLogprobs' + description: List of the most likely tokens and their log probability, at this token position. In rare cases, there may be fewer than the number of requested `top_logprobs` returned. + OpenAI.ChatCompletionTokenLogprobTopLogprobs: + type: object + required: + - token + - logprob + - bytes + properties: + token: + type: string + logprob: + type: number + bytes: + anyOf: + - type: array + items: + type: integer + - type: 'null' + OpenAI.ChatCompletionTool: + type: object + required: + - type + - function + properties: + type: + type: string + enum: + - function + description: The type of the tool. Currently, only `function` is supported. + x-stainless-const: true + function: + $ref: '#/components/schemas/OpenAI.FunctionObject' + description: A function tool that can be used to generate a response. + title: Function tool + OpenAI.ChatCompletionToolChoiceOption: + anyOf: + - type: string + enum: + - none + - auto + - required + - $ref: '#/components/schemas/OpenAI.ChatCompletionAllowedToolsChoice' + - $ref: '#/components/schemas/OpenAI.ChatCompletionNamedToolChoice' + - $ref: '#/components/schemas/OpenAI.ChatCompletionNamedToolChoiceCustom' + description: |- + Controls which (if any) tool is called by the model. + `none` means the model will not call any tool and instead generates a message. + `auto` means the model can pick between generating a message or calling one or more tools. + `required` means the model must call one or more tools. + Specifying a particular tool via `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + `none` is the default when no tools are present. `auto` is the default if tools are present. + x-stainless-go-variant-constructor: + naming: tool_choice_option_{variant} + OpenAI.ChunkingStrategyRequestParam: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParamType' + discriminator: + propertyName: type + mapping: + auto: '#/components/schemas/OpenAI.AutoChunkingStrategyRequestParam' + static: '#/components/schemas/OpenAI.StaticChunkingStrategyRequestParam' + description: The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. Only applicable if `file_ids` is non-empty. + OpenAI.ChunkingStrategyRequestParamType: + anyOf: + - type: string + - type: string + enum: + - auto + - static + OpenAI.ChunkingStrategyResponse: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponseType' + discriminator: + propertyName: type + mapping: + static: '#/components/schemas/OpenAI.StaticChunkingStrategyResponseParam' + other: '#/components/schemas/OpenAI.OtherChunkingStrategyResponseParam' + description: The strategy used to chunk the file. + OpenAI.ChunkingStrategyResponseType: + anyOf: + - type: string + - type: string + enum: + - static + - other + OpenAI.ClickButtonType: + type: string + enum: + - left + - right + - wheel + - back + - forward + OpenAI.ClickParam: + type: object + required: + - type + - button + - x + - 'y' + properties: + type: + type: string + enum: + - click + description: Specifies the event type. For a click action, this property is always `click`. + x-stainless-const: true + default: click + button: + allOf: + - $ref: '#/components/schemas/OpenAI.ClickButtonType' + description: Indicates which mouse button was pressed during the click. One of `left`, `right`, `wheel`, `back`, or `forward`. + x: + type: integer + description: The x-coordinate where the click occurred. + 'y': + type: integer + description: The y-coordinate where the click occurred. + allOf: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A click action. + title: Click + OpenAI.CodeInterpreterContainerAuto: + type: object + required: + - type + properties: + type: + type: string + enum: + - auto + description: Always `auto`. + x-stainless-const: true + default: auto + file_ids: + type: array + items: + type: string + maxItems: 50 + description: An optional list of uploaded files to make available to your code. + memory_limit: + anyOf: + - $ref: '#/components/schemas/OpenAI.ContainerMemoryLimit' + - type: 'null' + description: Configuration for a code interpreter container. Optionally specify the IDs of the files to run the code on. + title: CodeInterpreterToolAuto + x-stainless-naming: + go: + type_name: ToolCodeInterpreterContainerCodeInterpreterContainerAuto + OpenAI.CodeInterpreterOutputImage: + type: object + required: + - type + - url + properties: + type: + type: string + enum: + - image + description: The type of the output. Always `image`. + x-stainless-const: true + default: image + url: + type: string + description: The URL of the image output from the code interpreter. + description: The image output from the code interpreter. + title: Code interpreter output image + OpenAI.CodeInterpreterOutputLogs: + type: object + required: + - type + - logs + properties: + type: + type: string + enum: + - logs + description: The type of the output. Always `logs`. + x-stainless-const: true + default: logs + logs: + type: string + description: The logs output from the code interpreter. + description: The logs output from the code interpreter. + title: Code interpreter output logs + OpenAI.CodeInterpreterTool: + type: object + required: + - type + - container + properties: + type: + type: string + enum: + - code_interpreter + description: The type of the code interpreter tool. Always `code_interpreter`. + x-stainless-const: true + container: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAI.CodeInterpreterContainerAuto' + description: |- + The code interpreter container. Can be a container ID or an object that + specifies uploaded file IDs to make available to your code, along with an + optional `memory_limit` setting. + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A tool that runs Python code to help generate a response to a prompt. + title: Code interpreter + OpenAI.CompactionBody: + type: object + required: + - type + - id + - encrypted_content + properties: + type: + type: string + enum: + - compaction + description: The type of the item. Always `compaction`. + x-stainless-const: true + default: compaction + id: + type: string + description: The unique ID of the compaction item. + encrypted_content: + type: string + created_by: + type: string + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + description: A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact). + title: Compaction item + OpenAI.ComparisonFilter: + type: object + required: + - type + - key + - value + properties: + type: + type: string + enum: + - eq + - ne + - gt + - gte + - lt + - lte + description: |- + Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`. + - `eq`: equals + - `ne`: not equal + - `gt`: greater than + - `gte`: greater than or equal + - `lt`: less than + - `lte`: less than or equal + - `in`: in + - `nin`: not in + default: eq + key: + type: string + description: The key to compare against the value. + value: + anyOf: + - type: string + - type: number + - type: boolean + - type: array + items: + $ref: '#/components/schemas/OpenAI.ComparisonFilterValueItems' + description: The value to compare against the attribute key; supports string, number, or boolean types. + description: A filter used to compare a specified attribute key to a given value using a defined comparison operation. + title: Comparison Filter + x-oaiMeta: + name: ComparisonFilter + OpenAI.ComparisonFilterValueItems: + anyOf: + - type: string + - type: number + OpenAI.CompletionUsage: + type: object + required: + - completion_tokens + - prompt_tokens + - total_tokens + properties: + completion_tokens: + type: integer + description: Number of tokens in the generated completion. + prompt_tokens: + type: integer + description: Number of tokens in the prompt. + total_tokens: + type: integer + description: Total number of tokens used in the request (prompt + completion). + completion_tokens_details: + allOf: + - $ref: '#/components/schemas/OpenAI.CompletionUsageCompletionTokensDetails' + description: Breakdown of tokens used in a completion. + prompt_tokens_details: + allOf: + - $ref: '#/components/schemas/OpenAI.CompletionUsagePromptTokensDetails' + description: Breakdown of tokens used in the prompt. + description: Usage statistics for the completion request. + OpenAI.CompletionUsageCompletionTokensDetails: + type: object + properties: + accepted_prediction_tokens: + type: integer + audio_tokens: + type: integer + reasoning_tokens: + type: integer + rejected_prediction_tokens: + type: integer + OpenAI.CompletionUsagePromptTokensDetails: + type: object + properties: + audio_tokens: + type: integer + cached_tokens: + type: integer + OpenAI.CompoundFilter: + type: object + required: + - type + - filters + properties: + type: + type: string + enum: + - and + - or + description: 'Type of operation: `and` or `or`.' + filters: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.ComparisonFilter' + - {} + description: Array of filters to combine. Items can be `ComparisonFilter` or `CompoundFilter`. + description: Combine multiple filters using `and` or `or`. + title: Compound Filter + x-oaiMeta: + name: CompoundFilter + OpenAI.ComputerAction: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ComputerActionType' + discriminator: + propertyName: type + mapping: + click: '#/components/schemas/OpenAI.ClickParam' + double_click: '#/components/schemas/OpenAI.DoubleClickAction' + drag: '#/components/schemas/OpenAI.Drag' + keypress: '#/components/schemas/OpenAI.KeyPressAction' + move: '#/components/schemas/OpenAI.Move' + screenshot: '#/components/schemas/OpenAI.Screenshot' + scroll: '#/components/schemas/OpenAI.Scroll' + type: '#/components/schemas/OpenAI.Type' + wait: '#/components/schemas/OpenAI.Wait' + OpenAI.ComputerActionType: + anyOf: + - type: string + - type: string + enum: + - click + - double_click + - drag + - keypress + - move + - screenshot + - scroll + - type + - wait + OpenAI.ComputerCallSafetyCheckParam: + type: object + required: + - id + properties: + id: + type: string + description: The ID of the pending safety check. + code: + anyOf: + - type: string + - type: 'null' + message: + anyOf: + - type: string + - type: 'null' + description: A pending safety check for the computer call. + OpenAI.ComputerEnvironment: + type: string + enum: + - windows + - mac + - linux + - ubuntu + - browser + OpenAI.ComputerScreenshotContent: + type: object + required: + - type + - image_url + - file_id + properties: + type: + type: string + enum: + - computer_screenshot + description: Specifies the event type. For a computer screenshot, this property is always set to `computer_screenshot`. + x-stainless-const: true + default: computer_screenshot + image_url: + anyOf: + - type: string + - type: 'null' + file_id: + anyOf: + - type: string + - type: 'null' + description: A screenshot of a computer. + title: Computer screenshot + OpenAI.ComputerScreenshotImage: + type: object + required: + - type + properties: + type: + type: string + enum: + - computer_screenshot + description: |- + Specifies the event type. For a computer screenshot, this property is + always set to `computer_screenshot`. + x-stainless-const: true + default: computer_screenshot + image_url: + type: string + description: The URL of the screenshot image. + file_id: + type: string + description: The identifier of an uploaded file that contains the screenshot. + description: A computer screenshot image used with the computer use tool. + OpenAI.ComputerToolCallOutputResource: + type: object + required: + - type + - call_id + - output + properties: + type: + type: string + enum: + - computer_call_output + description: The type of the computer tool call output. Always `computer_call_output`. + x-stainless-const: true + default: computer_call_output + id: + type: string + description: The ID of the computer tool call output. + call_id: + type: string + description: The ID of the computer tool call that produced the output. + acknowledged_safety_checks: + type: array + items: + $ref: '#/components/schemas/OpenAI.ComputerCallSafetyCheckParam' + description: |- + The safety checks reported by the API that have been acknowledged by the + developer. + output: + $ref: '#/components/schemas/OpenAI.ComputerScreenshotImage' + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the message input. One of `in_progress`, `completed`, or + `incomplete`. Populated when input items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ComputerUsePreviewTool: + type: object + required: + - type + - environment + - display_width + - display_height + properties: + type: + type: string + enum: + - computer_use_preview + description: The type of the computer use tool. Always `computer_use_preview`. + x-stainless-const: true + default: computer_use_preview + environment: + allOf: + - $ref: '#/components/schemas/OpenAI.ComputerEnvironment' + description: The type of computer environment to control. + display_width: + type: integer + description: The width of the computer display. + display_height: + type: integer + description: The height of the computer display. + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A tool that controls a virtual computer. Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use). + title: Computer use preview + OpenAI.ContainerFileCitationBody: + type: object + required: + - type + - container_id + - file_id + - start_index + - end_index + - filename + properties: + type: + type: string + enum: + - container_file_citation + description: The type of the container file citation. Always `container_file_citation`. + x-stainless-const: true + default: container_file_citation + container_id: + type: string + description: The ID of the container file. + file_id: + type: string + description: The ID of the file. + start_index: + type: integer + description: The index of the first character of the container file citation in the message. + end_index: + type: integer + description: The index of the last character of the container file citation in the message. + filename: + type: string + description: The filename of the container file cited. + allOf: + - $ref: '#/components/schemas/OpenAI.Annotation' + description: A citation for a container file used to generate a model response. + title: Container file citation + OpenAI.ContainerFileListResource: + type: object + required: + - object + - data + - first_id + - last_id + - has_more + properties: + object: + type: string + enum: + - list + description: The type of object returned, must be 'list'. + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.ContainerFileResource' + description: A list of container files. + first_id: + type: string + description: The ID of the first file in the list. + last_id: + type: string + description: The ID of the last file in the list. + has_more: + type: boolean + description: Whether there are more files available. + OpenAI.ContainerFileResource: + type: object + required: + - id + - object + - container_id + - created_at + - bytes + - path + - source + properties: + id: + type: string + description: Unique identifier for the file. + object: + type: string + enum: + - container.file + description: The type of this object (`container.file`). + container_id: + type: string + description: The container this file belongs to. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) when the file was created. + bytes: + type: integer + description: Size of the file in bytes. + path: + type: string + description: Path of the file in the container. + source: + type: string + description: Source of the file (e.g., `user`, `assistant`). + title: The container file object + x-oaiMeta: + name: The container file object + example: | + { + "id": "cfile_682e0e8a43c88191a7978f477a09bdf5", + "object": "container.file", + "created_at": 1747848842, + "bytes": 880, + "container_id": "cntr_682e0e7318108198aa783fd921ff305e08e78805b9fdbb04", + "path": "/mnt/data/88e12fa445d32636f190a0b33daed6cb-tsconfig.json", + "source": "user" + } + OpenAI.ContainerListResource: + type: object + required: + - object + - data + - first_id + - last_id + - has_more + properties: + object: + type: string + enum: + - list + description: The type of object returned, must be 'list'. + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.ContainerResource' + description: A list of containers. + first_id: + type: string + description: The ID of the first container in the list. + last_id: + type: string + description: The ID of the last container in the list. + has_more: + type: boolean + description: Whether there are more containers available. + OpenAI.ContainerMemoryLimit: + type: string + enum: + - 1g + - 4g + - 16g + - 64g + OpenAI.ContainerResource: + type: object + required: + - id + - object + - name + - created_at + - status + properties: + id: + type: string + description: Unique identifier for the container. + object: + type: string + description: The type of this object. + name: + type: string + description: Name of the container. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) when the container was created. + status: + type: string + description: Status of the container (e.g., active, deleted). + last_active_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) when the container was last active. + expires_after: + allOf: + - $ref: '#/components/schemas/OpenAI.ContainerResourceExpiresAfter' + description: |- + The container will expire after this time period. + The anchor is the reference point for the expiration. + The minutes is the number of minutes after the anchor before the container expires. + memory_limit: + type: string + enum: + - 1g + - 4g + - 16g + - 64g + description: The memory limit configured for the container. + title: The container object + x-oaiMeta: + name: The container object + example: | + { + "id": "cntr_682dfebaacac8198bbfe9c2474fb6f4a085685cbe3cb5863", + "object": "container", + "created_at": 1747844794, + "status": "running", + "expires_after": { + "anchor": "last_active_at", + "minutes": 20 + }, + "last_active_at": 1747844794, + "memory_limit": "1g", + "name": "My Container" + } + OpenAI.ContainerResourceExpiresAfter: + type: object + properties: + anchor: + type: string + enum: + - last_active_at + minutes: + type: integer + OpenAI.Conversation: + type: object + required: + - id + - object + - metadata + - created_at + properties: + id: + type: string + description: The unique ID of the conversation. + object: + type: string + enum: + - conversation + description: The object type, which is always `conversation`. + x-stainless-const: true + default: conversation + metadata: + description: |- + Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. + Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters. + created_at: + type: integer + format: unixtime + description: The time at which the conversation was created, measured in seconds since the Unix epoch. + title: The conversation object + x-oaiMeta: + name: The conversation object + group: conversations + OpenAI.ConversationItem: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ConversationItemType' + discriminator: + propertyName: type + mapping: + message: '#/components/schemas/OpenAI.Message' + function_call: '#/components/schemas/OpenAI.ConversationItemFunctionToolCallResource' + function_call_output: '#/components/schemas/OpenAI.ConversationItemFunctionToolCallOutputResource' + file_search_call: '#/components/schemas/OpenAI.ConversationItemFileSearchToolCall' + web_search_call: '#/components/schemas/OpenAI.ConversationItemWebSearchToolCall' + image_generation_call: '#/components/schemas/OpenAI.ConversationItemImageGenToolCall' + computer_call: '#/components/schemas/OpenAI.ConversationItemComputerToolCall' + computer_call_output: '#/components/schemas/OpenAI.ConversationItemComputerToolCallOutputResource' + reasoning: '#/components/schemas/OpenAI.ConversationItemReasoningItem' + code_interpreter_call: '#/components/schemas/OpenAI.ConversationItemCodeInterpreterToolCall' + local_shell_call: '#/components/schemas/OpenAI.ConversationItemLocalShellToolCall' + local_shell_call_output: '#/components/schemas/OpenAI.ConversationItemLocalShellToolCallOutput' + shell_call: '#/components/schemas/OpenAI.ConversationItemFunctionShellCall' + shell_call_output: '#/components/schemas/OpenAI.ConversationItemFunctionShellCallOutput' + apply_patch_call: '#/components/schemas/OpenAI.ConversationItemApplyPatchToolCall' + apply_patch_call_output: '#/components/schemas/OpenAI.ConversationItemApplyPatchToolCallOutput' + mcp_list_tools: '#/components/schemas/OpenAI.ConversationItemMCPListTools' + mcp_approval_request: '#/components/schemas/OpenAI.ConversationItemMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAI.ConversationItemMCPApprovalResponseResource' + mcp_call: '#/components/schemas/OpenAI.ConversationItemMCPToolCall' + custom_tool_call: '#/components/schemas/OpenAI.ConversationItemCustomToolCall' + custom_tool_call_output: '#/components/schemas/OpenAI.ConversationItemCustomToolCallOutput' + description: A single item within a conversation. The set of possible types are the same as the `output` type of a [Response object](https://platform.openai.com/docs/api-reference/responses/object#responses/object-output). + title: Conversation item + OpenAI.ConversationItemApplyPatchToolCall: + type: object + required: + - type + - id + - call_id + - status + - operation + properties: + type: + type: string + enum: + - apply_patch_call + description: The type of the item. Always `apply_patch_call`. + x-stainless-const: true + default: apply_patch_call + id: + type: string + description: The unique ID of the apply patch tool call. Populated when this item is returned via API. + call_id: + type: string + description: The unique ID of the apply patch tool call generated by the model. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchCallStatus' + description: The status of the apply patch tool call. One of `in_progress` or `completed`. + operation: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperation' + description: One of the create_file, delete_file, or update_file operations applied via apply_patch. + created_by: + type: string + description: The ID of the entity that created this tool call. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemApplyPatchToolCallOutput: + type: object + required: + - type + - id + - call_id + - status + properties: + type: + type: string + enum: + - apply_patch_call_output + description: The type of the item. Always `apply_patch_call_output`. + x-stainless-const: true + default: apply_patch_call_output + id: + type: string + description: The unique ID of the apply patch tool call output. Populated when this item is returned via API. + call_id: + type: string + description: The unique ID of the apply patch tool call generated by the model. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchCallOutputStatus' + description: The status of the apply patch tool call output. One of `completed` or `failed`. + output: + anyOf: + - type: string + - type: 'null' + created_by: + type: string + description: The ID of the entity that created this tool call output. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemCodeInterpreterToolCall: + type: object + required: + - type + - id + - status + - container_id + - code + - outputs + properties: + type: + type: string + enum: + - code_interpreter_call + description: The type of the code interpreter tool call. Always `code_interpreter_call`. + x-stainless-const: true + default: code_interpreter_call + id: + type: string + description: The unique ID of the code interpreter tool call. + status: + type: string + enum: + - in_progress + - completed + - incomplete + - interpreting + - failed + description: The status of the code interpreter tool call. Valid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`. + container_id: + type: string + description: The ID of the container used to run the code. + code: + anyOf: + - type: string + - type: 'null' + outputs: + anyOf: + - type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputLogs' + - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputImage' + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemComputerToolCall: + type: object + required: + - type + - id + - call_id + - action + - pending_safety_checks + - status + properties: + type: + type: string + enum: + - computer_call + description: The type of the computer call. Always `computer_call`. + default: computer_call + id: + type: string + description: The unique ID of the computer call. + call_id: + type: string + description: An identifier used when responding to the tool call with output. + action: + $ref: '#/components/schemas/OpenAI.ComputerAction' + pending_safety_checks: + type: array + items: + $ref: '#/components/schemas/OpenAI.ComputerCallSafetyCheckParam' + description: The pending safety checks for the computer call. + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemComputerToolCallOutputResource: + type: object + required: + - type + - call_id + - output + properties: + type: + type: string + enum: + - computer_call_output + description: The type of the computer tool call output. Always `computer_call_output`. + x-stainless-const: true + default: computer_call_output + id: + type: string + description: The ID of the computer tool call output. + call_id: + type: string + description: The ID of the computer tool call that produced the output. + acknowledged_safety_checks: + type: array + items: + $ref: '#/components/schemas/OpenAI.ComputerCallSafetyCheckParam' + description: |- + The safety checks reported by the API that have been acknowledged by the + developer. + output: + $ref: '#/components/schemas/OpenAI.ComputerScreenshotImage' + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the message input. One of `in_progress`, `completed`, or + `incomplete`. Populated when input items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemCustomToolCall: + type: object + required: + - type + - call_id + - name + - input + properties: + type: + type: string + enum: + - custom_tool_call + description: The type of the custom tool call. Always `custom_tool_call`. + x-stainless-const: true + id: + type: string + description: The unique ID of the custom tool call in the OpenAI platform. + call_id: + type: string + description: An identifier used to map this custom tool call to a tool call output. + name: + type: string + description: The name of the custom tool being called. + input: + type: string + description: The input for the custom tool call generated by the model. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemCustomToolCallOutput: + type: object + required: + - type + - call_id + - output + properties: + type: + type: string + enum: + - custom_tool_call_output + description: The type of the custom tool call output. Always `custom_tool_call_output`. + x-stainless-const: true + id: + type: string + description: The unique ID of the custom tool call output in the OpenAI platform. + call_id: + type: string + description: The call ID, used to map this custom tool call output to a custom tool call. + output: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.FunctionAndCustomToolCallOutput' + description: |- + The output from the custom tool call generated by your code. + Can be a string or an list of output content. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemFileSearchToolCall: type: object required: - - content - - refusal - - role + - id + - type + - status + - queries properties: - content: + id: type: string - nullable: true - description: The contents of the message. - refusal: + description: The unique ID of the file search tool call. + type: type: string - nullable: true - description: The refusal message generated by the model. - tool_calls: - $ref: '#/components/schemas/ChatCompletionMessageToolCallsItem' - readOnly: true - annotations: + enum: + - file_search_call + description: The type of the file search tool call. Always `file_search_call`. + x-stainless-const: true + status: + type: string + enum: + - in_progress + - searching + - completed + - incomplete + - failed + description: |- + The status of the file search tool call. One of `in_progress`, + `searching`, `incomplete` or `failed`, + queries: type: array items: - type: object - properties: - type: - type: string - enum: - - url_citation - description: The type of the URL citation. Always `url_citation`. - url_citation: - type: object - properties: - end_index: - type: integer - format: int32 - description: The index of the last character of the URL citation in the message. - start_index: - type: integer - format: int32 - description: The index of the first character of the URL citation in the message. - url: - type: string - format: uri - description: The URL of the web resource. - title: - type: string - description: The title of the web resource. - required: - - end_index - - start_index - - url - - title - description: A URL citation when using web search. - required: - - type - - url_citation + type: string + description: The queries used to search for files. + results: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.FileSearchToolCallResults' + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemFunctionShellCall: + type: object + required: + - type + - id + - call_id + - action + - status + properties: + type: + type: string + enum: + - shell_call + description: The type of the item. Always `shell_call`. + x-stainless-const: true + default: shell_call + id: + type: string + description: The unique ID of the shell tool call. Populated when this item is returned via API. + call_id: + type: string + description: The unique ID of the shell tool call generated by the model. + action: + allOf: + - $ref: '#/components/schemas/OpenAI.FunctionShellAction' + description: The shell commands and limits that describe how to run the tool call. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.LocalShellCallStatus' + description: The status of the shell call. One of `in_progress`, `completed`, or `incomplete`. + created_by: + type: string + description: The ID of the entity that created this tool call. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemFunctionShellCallOutput: + type: object + required: + - type + - id + - call_id + - output + - max_output_length + properties: + type: + type: string + enum: + - shell_call_output + description: The type of the shell call output. Always `shell_call_output`. + x-stainless-const: true + default: shell_call_output + id: + type: string + description: The unique ID of the shell call output. Populated when this item is returned via API. + call_id: + type: string + description: The unique ID of the shell tool call generated by the model. + output: + type: array + items: + $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputContent' + description: An array of shell call output contents + max_output_length: + anyOf: + - type: integer + - type: 'null' + created_by: + type: string + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemFunctionToolCallOutputResource: + type: object + required: + - type + - call_id + - output + properties: + id: + type: string description: |- - Annotations for the message, when applicable, as when using the - [web search tool](/docs/guides/tools-web-search?api-mode=chat). - role: + The unique ID of the function tool call output. Populated when this item + is returned via API. + type: type: string enum: - - assistant - description: The role of the author of this message. - function_call: - type: object - properties: - name: - type: string - arguments: - type: string - required: - - name - - arguments - description: Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model. - deprecated: true - audio: - type: object - properties: - id: - type: string - description: Unique identifier for this audio response. - expires_at: - type: integer - format: unixtime - description: |- - The Unix timestamp (in seconds) for when this audio response will - no longer be accessible on the server for use in multi-turn - conversations. - data: - type: string - format: base64 - description: |- - Base64 encoded audio bytes generated by the model, in the format - specified in the request. - transcript: - type: string - description: Transcript of the audio generated by the model. - required: - - id - - expires_at - - data - - transcript - nullable: true - description: |- - If the audio output modality is requested, this object contains data - about the audio response from the model. [Learn more](/docs/guides/audio). - context: - allOf: - - $ref: '#/components/schemas/AzureChatMessageContext' - description: The Azure-specific context information associated with the chat completion response message. - reasoning_content: + - function_call_output + description: The type of the function tool call output. Always `function_call_output`. + x-stainless-const: true + call_id: type: string - description: An Azure-specific extension property containing generated reasoning content from supported models. - description: |- - The extended response model component for chat completion response messages on the Azure OpenAI service. - This model adds support for chat message context, used by the On Your Data feature for intent, citations, and other - information related to retrieval-augmented generation performed. - AzureChatCompletionStreamResponseDelta: + description: The unique ID of the function tool call generated by the model. + output: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.FunctionAndCustomToolCallOutput' + description: |- + The output from the function call generated by your code. + Can be a string or an list of output content. + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemFunctionToolCallResource: type: object + required: + - type + - call_id + - name + - arguments properties: - audio: - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageAudioChunk' - description: Response audio associated with the streaming chat delta payload. - content: + id: type: string - nullable: true - description: The contents of the chunk message. - function_call: - type: object - properties: - name: - type: string - arguments: - type: string - description: Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model. - deprecated: true - tool_calls: + description: The unique ID of the function tool call. + type: + type: string + enum: + - function_call + description: The type of the function tool call. Always `function_call`. + x-stainless-const: true + call_id: + type: string + description: The unique ID of the function tool call generated by the model. + name: + type: string + description: The name of the function to run. + arguments: + type: string + description: A JSON string of the arguments to pass to the function. + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemImageGenToolCall: + type: object + required: + - type + - id + - status + - result + properties: + type: + type: string + enum: + - image_generation_call + description: The type of the image generation call. Always `image_generation_call`. + x-stainless-const: true + id: + type: string + description: The unique ID of the image generation call. + status: + type: string + enum: + - in_progress + - completed + - generating + - failed + description: The status of the image generation call. + result: + anyOf: + - type: string + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemList: + type: object + required: + - object + - data + - has_more + - first_id + - last_id + properties: + object: + type: string + enum: + - list + description: The type of object returned, must be `list`. + x-stainless-const: true + data: type: array items: - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunk' - readOnly: true - role: - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRole' - description: The role of the author of this message. - refusal: + $ref: '#/components/schemas/OpenAI.ConversationItem' + description: A list of conversation items. + has_more: + type: boolean + description: Whether there are more items available. + first_id: type: string - nullable: true - description: The refusal message generated by the model. - context: - allOf: - - $ref: '#/components/schemas/AzureChatMessageContext' - description: The Azure-specific context information associated with the chat completion response message. - reasoning_content: + description: The ID of the first item in the list. + last_id: type: string - description: An Azure-specific extension property containing generated reasoning content from supported models. - description: |- - The extended response model for a streaming chat response message on the Azure OpenAI service. - This model adds support for chat message context, used by the On Your Data feature for intent, citations, and other - information related to retrieval-augmented generation performed. - AzureChatDataSource: + description: The ID of the last item in the list. + description: A list of Conversation items. + title: The conversation item list + x-oaiMeta: + name: The item list + group: conversations + OpenAI.ConversationItemLocalShellToolCall: type: object required: - type + - id + - call_id + - action + - status properties: type: - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceType' - description: The differentiating type identifier for the data source. - discriminator: - propertyName: type - mapping: - azure_search: '#/components/schemas/AzureSearchChatDataSource' - azure_cosmos_db: '#/components/schemas/AzureCosmosDBChatDataSource' - elasticsearch: '#/components/schemas/ElasticsearchChatDataSource' - pinecone: '#/components/schemas/PineconeChatDataSource' - mongo_db: '#/components/schemas/MongoDBChatDataSource' - description: |- - A representation of configuration data for a single Azure OpenAI chat data source. - This will be used by a chat completions request that should use Azure OpenAI chat extensions to augment the - response behavior. - The use of this configuration is compatible only with Azure OpenAI. - AzureChatDataSourceAccessTokenAuthenticationOptions: + type: string + enum: + - local_shell_call + description: The type of the local shell call. Always `local_shell_call`. + x-stainless-const: true + id: + type: string + description: The unique ID of the local shell call. + call_id: + type: string + description: The unique ID of the local shell tool call generated by the model. + action: + $ref: '#/components/schemas/OpenAI.LocalShellExecAction' + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: The status of the local shell call. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemLocalShellToolCallOutput: type: object required: - type - - access_token + - id + - output properties: type: type: string enum: - - access_token - access_token: + - local_shell_call_output + description: The type of the local shell tool call output. Always `local_shell_call_output`. + x-stainless-const: true + id: + type: string + description: The unique ID of the local shell tool call generated by the model. + output: type: string + description: A JSON string of the output of the local shell tool call. + status: + anyOf: + - type: string + enum: + - in_progress + - completed + - incomplete + - type: 'null' allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceApiKeyAuthenticationOptions: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemMCPApprovalRequest: type: object required: - type - - key + - id + - server_label + - name + - arguments properties: type: type: string enum: - - api_key - key: + - mcp_approval_request + description: The type of the item. Always `mcp_approval_request`. + x-stainless-const: true + id: + type: string + description: The unique ID of the approval request. + server_label: + type: string + description: The label of the MCP server making the request. + name: type: string + description: The name of the tool to run. + arguments: + type: string + description: A JSON string of arguments for the tool. allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceAuthenticationOptions: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemMCPApprovalResponseResource: type: object required: - type - properties: - type: - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptionsType' - discriminator: - propertyName: type - mapping: - system_assigned_managed_identity: '#/components/schemas/AzureChatDataSourceSystemAssignedManagedIdentityAuthenticationOptions' - user_assigned_managed_identity: '#/components/schemas/AzureChatDataSourceUserAssignedManagedIdentityAuthenticationOptions' - access_token: '#/components/schemas/AzureChatDataSourceAccessTokenAuthenticationOptions' - connection_string: '#/components/schemas/AzureChatDataSourceConnectionStringAuthenticationOptions' - key_and_key_id: '#/components/schemas/AzureChatDataSourceKeyAndKeyIdAuthenticationOptions' - encoded_api_key: '#/components/schemas/AzureChatDataSourceEncodedApiKeyAuthenticationOptions' - username_and_password: '#/components/schemas/AzureChatDataSourceUsernameAndPasswordAuthenticationOptions' - AzureChatDataSourceAuthenticationOptionsType: - type: string - enum: - - api_key - - username_and_password - - connection_string - - key_and_key_id - - encoded_api_key - - access_token - - system_assigned_managed_identity - - user_assigned_managed_identity - AzureChatDataSourceConnectionStringAuthenticationOptions: - type: object - required: - - type - - connection_string + - id + - approval_request_id + - approve properties: type: type: string enum: - - connection_string - connection_string: + - mcp_approval_response + description: The type of the item. Always `mcp_approval_response`. + x-stainless-const: true + id: + type: string + description: The unique ID of the approval response + approval_request_id: type: string + description: The ID of the approval request being answered. + approve: + type: boolean + description: Whether the request was approved. + reason: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceDeploymentNameVectorizationSource: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemMCPListTools: type: object required: - type - - deployment_name + - id + - server_label + - tools properties: type: type: string enum: - - deployment_name - description: The type identifier, always 'deployment_name' for this vectorization source type. - deployment_name: + - mcp_list_tools + description: The type of the item. Always `mcp_list_tools`. + x-stainless-const: true + id: type: string - description: |- - The embedding model deployment to use for vectorization. This deployment must exist within the same Azure OpenAI - resource as the model deployment being used for chat completions. - dimensions: - type: integer - format: int32 - description: |- - The number of dimensions to request on embeddings. - Only supported in 'text-embedding-3' and later models. + description: The unique ID of the list. + server_label: + type: string + description: The label of the MCP server. + tools: + type: array + items: + $ref: '#/components/schemas/OpenAI.MCPListToolsTool' + description: The tools available on the server. + error: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - description: |- - Represents a vectorization source that makes internal service calls against an Azure OpenAI embedding model - deployment. In contrast with the endpoint-based vectorization source, a deployment-name-based vectorization source - must be part of the same Azure OpenAI resource but can be used even in private networks. - AzureChatDataSourceEncodedApiKeyAuthenticationOptions: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemMCPToolCall: type: object required: - type - - encoded_api_key + - id + - server_label + - name + - arguments properties: type: type: string enum: - - encoded_api_key - encoded_api_key: + - mcp_call + description: The type of the item. Always `mcp_call`. + x-stainless-const: true + id: + type: string + description: The unique ID of the tool call. + server_label: + type: string + description: The label of the MCP server running the tool. + name: + type: string + description: The name of the tool that was run. + arguments: type: string + description: A JSON string of the arguments passed to the tool. + output: + anyOf: + - type: string + - type: 'null' + error: + anyOf: + - type: string + - type: 'null' + status: + allOf: + - $ref: '#/components/schemas/OpenAI.MCPToolCallStatus' + description: The status of the tool call. One of `in_progress`, `completed`, `incomplete`, `calling`, or `failed`. + approval_request_id: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceEndpointVectorizationSource: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemReasoningItem: type: object required: - type - - endpoint - - authentication + - id + - summary properties: type: type: string enum: - - endpoint - description: The type identifier, always 'endpoint' for this vectorization source type. - endpoint: + - reasoning + description: The type of the object. Always `reasoning`. + x-stainless-const: true + id: type: string - format: uri - description: |- - Specifies the resource endpoint URL from which embeddings should be retrieved. - It should be in the format of: - https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. - The api-version query parameter is not allowed. - authentication: + description: The unique identifier of the reasoning content. + encrypted_content: anyOf: - - $ref: '#/components/schemas/AzureChatDataSourceApiKeyAuthenticationOptions' - - $ref: '#/components/schemas/AzureChatDataSourceAccessTokenAuthenticationOptions' - description: |- - The authentication mechanism to use with the endpoint-based vectorization source. - Endpoint authentication supports API key and access token mechanisms. - dimensions: - type: integer - format: int32 + - type: string + - type: 'null' + summary: + type: array + items: + $ref: '#/components/schemas/OpenAI.Summary' + description: Reasoning summary content. + content: + type: array + items: + $ref: '#/components/schemas/OpenAI.ReasoningTextContent' + description: Reasoning text content. + status: + type: string + enum: + - in_progress + - completed + - incomplete description: |- - The number of dimensions to request on embeddings. - Only supported in 'text-embedding-3' and later models. + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. allOf: - - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - description: Represents a vectorization source that makes public service calls against an Azure OpenAI embedding model deployment. - AzureChatDataSourceIntegratedVectorizationSource: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemType: + anyOf: + - type: string + - type: string + enum: + - message + - function_call + - function_call_output + - file_search_call + - web_search_call + - image_generation_call + - computer_call + - computer_call_output + - reasoning + - code_interpreter_call + - local_shell_call + - local_shell_call_output + - shell_call + - shell_call_output + - apply_patch_call + - apply_patch_call_output + - mcp_list_tools + - mcp_approval_request + - mcp_approval_response + - mcp_call + - custom_tool_call + - custom_tool_call_output + OpenAI.ConversationItemWebSearchToolCall: type: object required: + - id - type + - status + - action properties: + id: + type: string + description: The unique ID of the web search tool call. type: type: string enum: - - integrated - description: The type identifier, always 'integrated' for this vectorization source type. + - web_search_call + description: The type of the web search tool call. Always `web_search_call`. + x-stainless-const: true + status: + type: string + enum: + - in_progress + - searching + - completed + - failed + description: The status of the web search tool call. + action: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchActionSearch' + - $ref: '#/components/schemas/OpenAI.WebSearchActionOpenPage' + - $ref: '#/components/schemas/OpenAI.WebSearchActionFind' + description: |- + An object describing the specific action taken in this web search call. + Includes details on how the model used the web (search, open_page, find). allOf: - - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - description: Represents an integrated vectorization source as defined within the supporting search resource. - AzureChatDataSourceKeyAndKeyIdAuthenticationOptions: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationParam: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAI.ConversationParam-2' + description: |- + The conversation that this response belongs to. Items from this conversation are prepended to `input_items` for this response request. + Input items and output items from this response are automatically added to this conversation after this response completes. + OpenAI.ConversationParam-2: type: object required: - - type - - key - - key_id + - id properties: - type: - type: string - enum: - - key_and_key_id - key: - type: string - key_id: + id: type: string - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceModelIdVectorizationSource: + description: The unique ID of the conversation. + description: The conversation that this response belongs to. + title: Conversation object + OpenAI.ConversationResource: type: object required: - - type - - model_id + - id + - object + - metadata + - created_at properties: - type: + id: type: string - enum: - - model_id - description: The type identifier, always 'model_id' for this vectorization source type. - model_id: + description: The unique ID of the conversation. + object: type: string - description: The embedding model build ID to use for vectorization. - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - description: |- - Represents a vectorization source that makes service calls based on a search service model ID. - This source type is currently only supported by Elasticsearch. - AzureChatDataSourceSystemAssignedManagedIdentityAuthenticationOptions: + enum: + - conversation + description: The object type, which is always `conversation`. + x-stainless-const: true + default: conversation + metadata: + description: |- + Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. + Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters. + created_at: + type: integer + format: unixtime + description: The time at which the conversation was created, measured in seconds since the Unix epoch. + OpenAI.CreateChatCompletionRequestAudio: type: object required: - - type + - voice + - format properties: - type: + voice: + $ref: '#/components/schemas/OpenAI.VoiceIdsShared' + format: type: string enum: - - system_assigned_managed_identity - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceType: - type: string - enum: - - azure_search - - azure_cosmos_db - - elasticsearch - - pinecone - - mongo_db - AzureChatDataSourceUserAssignedManagedIdentityAuthenticationOptions: + - wav + - aac + - mp3 + - flac + - opus + - pcm16 + OpenAI.CreateChatCompletionResponseChoices: type: object required: - - type - - managed_identity_resource_id + - finish_reason + - index + - message + - logprobs properties: - type: + finish_reason: type: string enum: - - user_assigned_managed_identity - managed_identity_resource_id: - type: string - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceUsernameAndPasswordAuthenticationOptions: + - stop + - length + - tool_calls + - content_filter + - function_call + index: + type: integer + message: + $ref: '#/components/schemas/OpenAI.ChatCompletionResponseMessage' + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateChatCompletionResponseChoicesLogprobs' + - type: 'null' + content_filter_results: + $ref: '#/components/schemas/AzureContentFilterResultForChoice' + OpenAI.CreateChatCompletionResponseChoicesLogprobs: + type: object + required: + - content + - refusal + properties: + content: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' + - type: 'null' + refusal: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' + - type: 'null' + OpenAI.CreateChatCompletionStreamResponseChoices: + type: object + required: + - delta + - finish_reason + - index + properties: + delta: + $ref: '#/components/schemas/OpenAI.ChatCompletionStreamResponseDelta' + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateChatCompletionStreamResponseChoicesLogprobs' + - type: 'null' + finish_reason: + anyOf: + - type: string + enum: + - stop + - length + - tool_calls + - content_filter + - function_call + - type: 'null' + index: + type: integer + OpenAI.CreateChatCompletionStreamResponseChoicesLogprobs: + type: object + required: + - content + - refusal + properties: + content: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' + - type: 'null' + refusal: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' + - type: 'null' + OpenAI.CreateCompletionResponseChoices: type: object required: - - type - - username - - password + - finish_reason + - index + - logprobs + - text properties: - type: + finish_reason: type: string enum: - - username_and_password - username: - type: string - password: + - stop + - length + - content_filter + index: + type: integer + format: int32 + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateCompletionResponseChoicesLogprobs' + - type: 'null' + text: type: string - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceVectorizationSource: - type: object - required: - - type - properties: - type: - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSourceType' - description: The differentiating identifier for the concrete vectorization source. - discriminator: - propertyName: type - mapping: - deployment_name: '#/components/schemas/AzureChatDataSourceDeploymentNameVectorizationSource' - integrated: '#/components/schemas/AzureChatDataSourceIntegratedVectorizationSource' - model_id: '#/components/schemas/AzureChatDataSourceModelIdVectorizationSource' - description: A representation of a data vectorization source usable as an embedding resource with a data source. - AzureChatDataSourceVectorizationSourceType: - type: string - enum: - - endpoint - - deployment_name - - model_id - - integrated - AzureChatMessageContext: + content_filter_results: + $ref: '#/components/schemas/AzureContentFilterResultForChoice' + OpenAI.CreateCompletionResponseChoicesLogprobs: type: object properties: - intent: - type: string - description: The detected intent from the chat history, which is used to carry conversation context between interactions - citations: + text_offset: + type: array + items: + type: integer + format: int32 + token_logprobs: + type: array + items: + type: number + format: float + tokens: + type: array + items: + type: string + top_logprobs: type: array items: type: object - properties: - content: - type: string - description: The content of the citation. - title: - type: string - description: The title for the citation. - url: - type: string - description: The URL of the citation. - filepath: - type: string - description: The file path for the citation. - chunk_id: - type: string - description: The chunk ID for the citation. - rerank_score: - type: number - format: double - description: The rerank score for the retrieval. - required: - - content - description: The citations produced by the data retrieval. - all_retrieved_documents: - type: object - properties: - content: - type: string - description: The content of the citation. - title: - type: string - description: The title for the citation. - url: - type: string - description: The URL of the citation. - filepath: - type: string - description: The file path for the citation. - chunk_id: - type: string - description: The chunk ID for the citation. - rerank_score: - type: number - format: double - description: The rerank score for the retrieval. - search_queries: - type: array - items: - type: string - description: The search queries executed to retrieve documents. - data_source_index: - type: integer - format: int32 - description: The index of the data source used for retrieval. - original_search_score: + unevaluatedProperties: type: number - format: double - description: The original search score for the retrieval. - filter_reason: - type: string - enum: - - score - - rerank - description: If applicable, an indication of why the document was filtered. - required: - - content - - search_queries - - data_source_index - description: Summary information about documents retrieved by the data retrieval operation. - description: |- - An additional property, added to chat completion response messages, produced by the Azure OpenAI service when using - extension behavior. This includes intent and citation information from the On Your Data feature. - AzureContentFilterBlocklistResult: + format: float + OpenAI.CreateContainerBody: type: object required: - - filtered + - name properties: - filtered: - type: boolean - description: A value indicating whether any of the detailed blocklists resulted in a filtering action. - details: + name: + type: string + description: Name of the container to create. + file_ids: type: array items: - type: object - properties: - filtered: - type: boolean - description: A value indicating whether the blocklist produced a filtering action. - id: - type: string - description: The ID of the custom blocklist evaluated. - required: - - filtered - - id - description: The pairs of individual blocklist IDs and whether they resulted in a filtering action. - description: A collection of true/false filtering results for configured custom blocklists. - AzureContentFilterCompletionTextSpan: + type: string + description: IDs of files to copy to the container. + expires_after: + allOf: + - $ref: '#/components/schemas/OpenAI.CreateContainerBodyExpiresAfter' + description: Container expiration time in seconds relative to the 'anchor' time. + memory_limit: + type: string + enum: + - 1g + - 4g + - 16g + - 64g + description: Optional memory limit for the container. Defaults to "1g". + OpenAI.CreateContainerBodyExpiresAfter: type: object required: - - completion_start_offset - - completion_end_offset + - anchor + - minutes properties: - completion_start_offset: - type: integer - format: int32 - description: Offset of the UTF32 code point which begins the span. - completion_end_offset: + anchor: + type: string + enum: + - last_active_at + minutes: type: integer - format: int32 - description: Offset of the first UTF32 code point which is excluded from the span. This field is always equal to completion_start_offset for empty spans. This field is always larger than completion_start_offset for non-empty spans. - description: A representation of a span of completion text as used by Azure OpenAI content filter results. - AzureContentFilterCompletionTextSpanDetectionResult: + OpenAI.CreateContainerFileBody: type: object - required: - - filtered - - detected - - details properties: - filtered: - type: boolean - description: Whether the content detection resulted in a content filtering action. - detected: - type: boolean - description: Whether the labeled content category was detected in the content. - details: - type: array - items: - $ref: '#/components/schemas/AzureContentFilterCompletionTextSpan' - description: Detailed information about the detected completion text spans. - AzureContentFilterCustomTopicResult: + file_id: + type: string + description: Name of the file to create. + file: + description: The File object (not file name) to be uploaded. + required: [] + OpenAI.CreateConversationBody: type: object - required: - - filtered properties: - filtered: - type: boolean - description: A value indicating whether any of the detailed topics resulted in a filtering action. - details: - type: array - items: - type: object - properties: - detected: - type: boolean - description: A value indicating whether the topic is detected. - id: - type: string - description: The ID of the custom topic evaluated. - required: - - detected - - id - description: The pairs of individual topic IDs and whether they are detected. - description: A collection of true/false filtering results for configured custom topics. - AzureContentFilterDetectionResult: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + items: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' + - type: 'null' + OpenAI.CreateConversationItemsParametersBody: type: object required: - - filtered - - detected + - items properties: - filtered: - type: boolean - description: Whether the content detection resulted in a content filtering action. - detected: - type: boolean - description: Whether the labeled content category was detected in the content. - description: |- - A labeled content filter result item that indicates whether the content was detected and whether the content was - filtered. - AzureContentFilterImagePromptResults: + items: + type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' + maxItems: 20 + OpenAI.CreateEmbeddingRequest: type: object required: - - jailbreak - properties: - profanity: - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: |- - A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the - content. - custom_blocklists: - allOf: - - $ref: '#/components/schemas/AzureContentFilterBlocklistResult' - description: A collection of binary filtering outcomes for configured custom blocklists. - custom_topics: - allOf: - - $ref: '#/components/schemas/AzureContentFilterCustomTopicResult' - description: A collection of binary filtering outcomes for configured custom topics. - jailbreak: - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: |- - A detection result that describes user prompt injection attacks, where malicious users deliberately exploit - system vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content - generation or violations of system-imposed restrictions. - allOf: - - $ref: '#/components/schemas/AzureContentFilterImageResponseResults' - description: A content filter result for an image generation operation's input request content. - AzureContentFilterImageResponseResults: - type: object + - input + - model properties: - sexual: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category for language related to anatomical organs and genitals, romantic relationships, acts - portrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an - assault or a forced sexual violent act against one's will, prostitution, pornography, and abuse. - violence: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category for language related to physical actions intended to hurt, injure, damage, or kill - someone or something; describes weapons, guns and related entities, such as manufactures, associations, - legislation, and so on. - hate: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category that can refer to any content that attacks or uses pejorative or discriminatory - language with reference to a person or identity group based on certain differentiating attributes of these groups - including but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation, - religion, immigration status, ability status, personal appearance, and body size. - self_harm: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category that describes language related to physical actions intended to purposely hurt, injure, - damage one's body or kill oneself. - description: A content filter result for an image generation operation's output response content. - AzureContentFilterPersonallyIdentifiableInformationResult: + input: + anyOf: + - type: string + - type: array + items: + type: string + - type: array + items: + type: integer + - type: array + items: + type: array + items: + type: integer + description: Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and any array must be 2048 dimensions or less. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens. In addition to the per-input token limit, all embedding models enforce a maximum of 300,000 tokens summed across all inputs in a single request. + model: + type: string + description: ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. + x-oaiTypeLabel: string + encoding_format: + type: string + enum: + - float + - base64 + description: The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/). + default: float + dimensions: + type: integer + minimum: 1 + description: The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models. + user: + type: string + description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids). + OpenAI.CreateEmbeddingResponse: type: object + required: + - data + - model + - object + - usage properties: - redacted_text: - type: string - description: The redacted text with PII information removed or masked. - sub_categories: + data: type: array items: - $ref: '#/components/schemas/AzurePiiSubCategoryResult' - description: Detailed results for individual PIIHarmSubCategory(s). - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: A content filter detection result for Personally Identifiable Information that includes harm extensions. - AzureContentFilterResultForChoice: - type: object - properties: - sexual: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category for language related to anatomical organs and genitals, romantic relationships, acts - portrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an - assault or a forced sexual violent act against one's will, prostitution, pornography, and abuse. - hate: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category that can refer to any content that attacks or uses pejorative or discriminatory - language with reference to a person or identity group based on certain differentiating attributes of these groups - including but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation, - religion, immigration status, ability status, personal appearance, and body size. - violence: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category for language related to physical actions intended to hurt, injure, damage, or kill - someone or something; describes weapons, guns and related entities, such as manufactures, associations, - legislation, and so on. - self_harm: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category that describes language related to physical actions intended to purposely hurt, injure, - damage one's body or kill oneself. - profanity: - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: |- - A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the - content. - custom_blocklists: - allOf: - - $ref: '#/components/schemas/AzureContentFilterBlocklistResult' - description: A collection of binary filtering outcomes for configured custom blocklists. - custom_topics: - allOf: - - $ref: '#/components/schemas/AzureContentFilterCustomTopicResult' - description: A collection of binary filtering outcomes for configured custom topics. - error: - type: object - properties: - code: - type: integer - format: int32 - description: A distinct, machine-readable code associated with the error. - message: - type: string - description: A human-readable message associated with the error. - required: - - code - - message - description: If present, details about an error that prevented content filtering from completing its evaluation. - protected_material_text: - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: A detection result that describes a match against text protected under copyright or other status. - protected_material_code: - type: object - properties: - filtered: - type: boolean - description: Whether the content detection resulted in a content filtering action. - detected: - type: boolean - description: Whether the labeled content category was detected in the content. - citation: - type: object - properties: - license: - type: string - description: The name or identifier of the license associated with the detection. - URL: - type: string - format: uri - description: The URL associated with the license. - description: If available, the citation details describing the associated license and its location. - required: - - filtered - - detected - description: A detection result that describes a match against licensed code or other protected source material. - ungrounded_material: - $ref: '#/components/schemas/AzureContentFilterCompletionTextSpanDetectionResult' - personally_identifiable_information: + $ref: '#/components/schemas/OpenAI.Embedding' + description: The list of embeddings generated by the model. + model: + type: string + description: The name of the model used to generate the embedding. + object: + type: string + enum: + - list + description: The object type, which is always "list". + x-stainless-const: true + usage: allOf: - - $ref: '#/components/schemas/AzureContentFilterPersonallyIdentifiableInformationResult' - description: A detection result that describes matches against Personal Identifiable Information with configurable subcategories. - description: A content filter result for a single response item produced by a generative AI system. - AzureContentFilterResultForPrompt: + - $ref: '#/components/schemas/OpenAI.CreateEmbeddingResponseUsage' + description: The usage information for the request. + OpenAI.CreateEmbeddingResponseUsage: type: object + required: + - prompt_tokens + - total_tokens properties: - prompt_index: + prompt_tokens: type: integer - format: int32 - description: The index of the input prompt associated with the accompanying content filter result categories. - content_filter_results: - type: object - properties: - sexual: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category for language related to anatomical organs and genitals, romantic relationships, acts - portrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an - assault or a forced sexual violent act against one's will, prostitution, pornography, and abuse. - hate: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category that can refer to any content that attacks or uses pejorative or discriminatory - language with reference to a person or identity group based on certain differentiating attributes of these groups - including but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation, - religion, immigration status, ability status, personal appearance, and body size. - violence: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category for language related to physical actions intended to hurt, injure, damage, or kill - someone or something; describes weapons, guns and related entities, such as manufactures, associations, - legislation, and so on. - self_harm: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category that describes language related to physical actions intended to purposely hurt, injure, - damage one's body or kill oneself. - profanity: - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: |- - A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the - content. - custom_blocklists: - allOf: - - $ref: '#/components/schemas/AzureContentFilterBlocklistResult' - description: A collection of binary filtering outcomes for configured custom blocklists. - custom_topics: - allOf: - - $ref: '#/components/schemas/AzureContentFilterCustomTopicResult' - description: A collection of binary filtering outcomes for configured custom topics. - error: - type: object - properties: - code: - type: integer - format: int32 - description: A distinct, machine-readable code associated with the error. - message: - type: string - description: A human-readable message associated with the error. - required: - - code - - message - description: If present, details about an error that prevented content filtering from completing its evaluation. - jailbreak: - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: |- - A detection result that describes user prompt injection attacks, where malicious users deliberately exploit - system vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content - generation or violations of system-imposed restrictions. - indirect_attack: - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: |- - A detection result that describes attacks on systems powered by Generative AI models that can happen every time - an application processes information that wasn’t directly authored by either the developer of the application or - the user. - required: - - jailbreak - - indirect_attack - description: The content filter category details for the result. - description: A content filter result associated with a single input prompt item into a generative AI system. - AzureContentFilterSeverityResult: + total_tokens: + type: integer + OpenAI.CreateEvalCompletionsRunDataSource: type: object required: - - filtered - - severity + - type + - source properties: - filtered: - type: boolean - description: Whether the content severity resulted in a content filtering action. - severity: + type: type: string enum: - - safe - - low - - medium - - high - description: The labeled severity of the content. - description: |- - A labeled content filter result item that indicates whether the content was filtered and what the qualitative - severity level of the content was, as evaluated against content filter configuration for the category. - AzureCosmosDBChatDataSource: + - completions + description: The type of run data source. Always `completions`. + default: completions + input_messages: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesTemplate' + - $ref: '#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesItemReference' + description: Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace. + sampling_params: + $ref: '#/components/schemas/AzureCompletionsSamplingParams' + model: + type: string + description: The name of the model to use for generating completions (e.g. "o3-mini"). + source: + anyOf: + - $ref: '#/components/schemas/OpenAI.EvalJsonlFileContentSource' + - $ref: '#/components/schemas/OpenAI.EvalJsonlFileIdSource' + - $ref: '#/components/schemas/OpenAI.EvalStoredCompletionsSource' + description: Determines what populates the `item` namespace in this run's data source. + description: A CompletionsRunDataSource object describing a model sampling configuration. + title: CompletionsRunDataSource + x-oaiMeta: + name: The completions data source object used to configure an individual run + group: eval runs + example: | + { + "name": "gpt-4o-mini-2024-07-18", + "data_source": { + "type": "completions", + "input_messages": { + "type": "item_reference", + "item_reference": "item.input" + }, + "model": "gpt-4o-mini-2024-07-18", + "source": { + "type": "stored_completions", + "model": "gpt-4o-mini-2024-07-18" + } + } + } + OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesItemReference: type: object required: - type - - parameters + - item_reference properties: type: type: string enum: - - azure_cosmos_db - description: The discriminated type identifier, which is always 'azure_cosmos_db'. - parameters: - type: object - properties: - top_n_documents: - type: integer - format: int32 - description: The configured number of documents to feature in the query. - in_scope: - type: boolean - description: Whether queries should be restricted to use of the indexed data. - strictness: - type: integer - format: int32 - minimum: 1 - maximum: 5 - description: |- - The configured strictness of the search relevance filtering. - Higher strictness will increase precision but lower recall of the answer. - max_search_queries: - type: integer - format: int32 - description: |- - The maximum number of rewritten queries that should be sent to the search provider for a single user message. - By default, the system will make an automatic determination. - allow_partial_result: - type: boolean - description: |- - If set to true, the system will allow partial search results to be used and the request will fail if all - partial queries fail. If not specified or specified as false, the request will fail if any search query fails. - default: false - include_contexts: - type: array - items: - type: string - enum: - - citations - - intent - - all_retrieved_documents - maxItems: 3 - description: |- - The output context properties to include on the response. - By default, citations and intent will be requested. - default: - - citations - - intent - container_name: - type: string - database_name: - type: string - embedding_dependency: - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - index_name: - type: string - authentication: - $ref: '#/components/schemas/AzureChatDataSourceConnectionStringAuthenticationOptions' - fields_mapping: - type: object - properties: - content_fields: - type: array - items: - type: string - vector_fields: - type: array - items: - type: string - title_field: - type: string - url_field: - type: string - filepath_field: - type: string - content_fields_separator: - type: string - required: - - content_fields - - vector_fields - required: - - container_name - - database_name - - embedding_dependency - - index_name - - authentication - - fields_mapping - description: The parameter information to control the use of the Azure CosmosDB data source. - allOf: - - $ref: '#/components/schemas/AzureChatDataSource' - description: Represents a data source configuration that will use an Azure CosmosDB resource. - AzureCreateChatCompletionRequest: + - item_reference + item_reference: + type: string + OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesTemplate: type: object required: - - messages - - model + - type + - template properties: - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - temperature: - type: number - format: float - nullable: true - minimum: 0 - maximum: 2 - description: |- - What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. - We generally recommend altering this or `top_p` but not both. - default: 1 - top_p: - type: number - format: float - nullable: true - minimum: 0 - maximum: 1 - description: |- - An alternative to sampling with temperature, called nucleus sampling, - where the model considers the results of the tokens with top_p probability - mass. So 0.1 means only the tokens comprising the top 10% probability mass - are considered. - - We generally recommend altering this or `temperature` but not both. - default: 1 - user: + type: type: string - description: |- - A unique identifier representing your end-user, which can help to - monitor and detect abuse. - top_logprobs: - type: integer - format: int32 - minimum: 0 - maximum: 20 - description: An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. - messages: + enum: + - template + template: type: array items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' - minItems: 1 - description: |- - A list of messages comprising the conversation so far. Depending on the - model you use, different message types (modalities) are supported, - like text, images, and audio. - modalities: - type: object - allOf: - - $ref: '#/components/schemas/ResponseModalities' - nullable: true + anyOf: + - $ref: '#/components/schemas/OpenAI.EasyInputMessage' + - $ref: '#/components/schemas/OpenAI.EvalItem' + OpenAI.CreateEvalCompletionsRunDataSourceSamplingParams: + type: object + properties: reasoning_effort: allOf: - $ref: '#/components/schemas/OpenAI.ReasoningEffort' - nullable: true - default: medium + description: Controls the level of reasoning effort applied during generation. + temperature: + type: number + description: A higher temperature increases randomness in the outputs. + default: 1 max_completion_tokens: type: integer - format: int32 - nullable: true - description: |- - An upper bound for the number of tokens that can be generated for a - completion, including visible output tokens and reasoning tokens. - frequency_penalty: - type: number - format: float - nullable: true - minimum: -2 - maximum: 2 - description: |- - Number between -2.0 and 2.0. Positive values penalize new tokens based on - their existing frequency in the text so far, decreasing the model's - likelihood to repeat the same line verbatim. - default: 0 - presence_penalty: + top_p: type: number - format: float - nullable: true - minimum: -2 - maximum: 2 - description: |- - Number between -2.0 and 2.0. Positive values penalize new tokens based on - whether they appear in the text so far, increasing the model's likelihood - to talk about new topics. - default: 0 - response_format: - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseFormat' - description: |- - An object specifying the format that the model must output. - - Setting to `{ "type": "json_schema", "json_schema": {...} }` enables - Structured Outputs which ensures the model will match your supplied JSON - schema. - - Setting to `{ "type": "json_object" }` enables JSON mode, which ensures - the message the model generates is valid JSON. - - **Important:** when using JSON mode, you **must** also instruct the model - to produce JSON yourself via a system or user message. Without this, the - model may generate an unending stream of whitespace until the generation - reaches the token limit, resulting in a long-running and seemingly "stuck" - request. Also note that the message content may be partially cut off if - `finish_reason="length"`, which indicates the generation exceeded - `max_tokens` or the conversation exceeded the max context length. - audio: - type: object - properties: - voice: - allOf: - - $ref: '#/components/schemas/OpenAI.VoiceIdsShared' - description: |- - The voice the model uses to respond. Supported voices are - `alloy`, `ash`, `ballad`, `coral`, `echo`, `fable`, `nova`, `onyx`, `sage`, and `shimmer`. - format: - type: string - enum: - - wav - - aac - - mp3 - - flac - - opus - - pcm16 - description: |- - Specifies the output audio format. Must be one of `wav`, `mp3`, `flac`, - `opus`, or `pcm16`. - required: - - voice - - format - nullable: true - description: |- - Parameters for audio output. Required when audio output is requested with - `modalities: ["audio"]`. - store: - type: boolean - nullable: true - description: |- - Whether or not to store the output of this chat completion request for - use in model distillation or evals products. - default: false - stream: - type: boolean - nullable: true - description: |- - If set to true, the model response data will be streamed to the client - as it is generated using server-sent events. - default: false - stop: - allOf: - - $ref: '#/components/schemas/OpenAI.StopConfiguration' - nullable: true - default: null - logit_bias: - type: object - additionalProperties: - type: integer - format: int32 - nullable: true - description: |- - Modify the likelihood of specified tokens appearing in the completion. - - Accepts a JSON object that maps tokens (specified by their token ID in the - tokenizer) to an associated bias value from -100 to 100. Mathematically, - the bias is added to the logits generated by the model prior to sampling. - The exact effect will vary per model, but values between -1 and 1 should - decrease or increase likelihood of selection; values like -100 or 100 - should result in a ban or exclusive selection of the relevant token. - x-oaiTypeLabel: map - default: null - logprobs: - type: boolean - nullable: true - description: |- - Whether to return log probabilities of the output tokens or not. If true, - returns the log probabilities of each output token returned in the - `content` of `message`. - default: false - max_tokens: - type: integer - format: int32 - nullable: true - description: |- - The maximum number of tokens that can be generated in the chat completion. - This value can be used to control costs for text generated via API. - - This value is now deprecated in favor of `max_completion_tokens`, and is - not compatible with o1 series models. - deprecated: true - 'n': - type: integer - format: int32 - nullable: true - minimum: 1 - maximum: 128 - description: How many chat completion choices to generate for each input message. Note that you will be charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to minimize costs. + description: An alternative to temperature for nucleus sampling; 1.0 includes all tokens. default: 1 - prediction: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.ChatOutputPrediction' - nullable: true - description: |- - Configuration for a predicted output, which can greatly improve - response times when large parts of the model response are known - ahead of time. This is most common when you are regenerating a - file with only minor changes to most of the content. seed: type: integer - format: int64 - nullable: true - minimum: -9223372036854776000 - maximum: 9223372036854776000 - description: |- - This feature is in Beta. - If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result. - Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend. - stream_options: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionStreamOptions' - nullable: true - default: null + description: A seed value initializes the randomness during sampling. + default: 42 + response_format: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseFormatText' + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchema' + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonObject' tools: type: array items: $ref: '#/components/schemas/OpenAI.ChatCompletionTool' - description: A list of tools the model may call. Currently, only functions are supported as a tool. Use this to provide a list of functions the model may generate JSON inputs for. A max of 128 functions are supported. - tool_choice: - $ref: '#/components/schemas/OpenAI.ChatCompletionToolChoiceOption' - parallel_tool_calls: - allOf: - - $ref: '#/components/schemas/OpenAI.ParallelToolCalls' - default: true - function_call: + OpenAI.CreateEvalCustomDataSourceConfig: + type: object + required: + - type + - item_schema + properties: + type: + type: string + enum: + - custom + description: The type of data source. Always `custom`. + x-stainless-const: true + default: custom + item_schema: + type: object + unevaluatedProperties: {} + description: The json schema for each row in the data source. + include_sample_schema: + type: boolean + description: Whether the eval should expect you to populate the sample namespace (ie, by generating responses off of your data source) + description: |- + A CustomDataSourceConfig object that defines the schema for the data source used for the evaluation runs. + This schema is used to define the shape of the data that will be: + - Used to define your testing criteria and + - What data is required when creating a run + title: CustomDataSourceConfig + x-oaiMeta: + name: The eval file data source config object + group: evals + example: | + { + "type": "custom", + "item_schema": { + "type": "object", + "properties": { + "name": {"type": "string"}, + "age": {"type": "integer"} + }, + "required": ["name", "age"] + }, + "include_sample_schema": true + } + OpenAI.CreateEvalItem: + type: object + required: + - role + - content + properties: + role: + type: string + description: The role of the message (e.g. "system", "assistant", "user"). + content: + type: string + description: The content of the message. + description: A chat message that makes up the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}. + title: SimpleInputMessage + x-oaiMeta: + name: The chat message object used to configure an individual run + OpenAI.CreateEvalJsonlRunDataSource: + type: object + required: + - type + - source + properties: + type: + type: string + enum: + - jsonl + description: The type of data source. Always `jsonl`. + x-stainless-const: true + default: jsonl + source: anyOf: - - type: string - enum: - - none - - auto - - $ref: '#/components/schemas/OpenAI.ChatCompletionFunctionCallOption' - description: |- - Deprecated in favor of `tool_choice`. - - Controls which (if any) function is called by the model. - - `none` means the model will not call a function and instead generates a - message. - - `auto` means the model can pick between generating a message or calling a - function. - - Specifying a particular function via `{"name": "my_function"}` forces the - model to call that function. - - `none` is the default when no functions are present. `auto` is the default - if functions are present. - deprecated: true - functions: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionFunctions' - minItems: 1 - maxItems: 128 - description: |- - Deprecated in favor of `tools`. - - A list of functions the model may generate JSON inputs for. - deprecated: true + - $ref: '#/components/schemas/OpenAI.EvalJsonlFileContentSource' + - $ref: '#/components/schemas/OpenAI.EvalJsonlFileIdSource' + description: Determines what populates the `item` namespace in the data source. + description: A JsonlRunDataSource object with that specifies a JSONL file that matches the eval + title: JsonlRunDataSource + x-oaiMeta: + name: The file data source object for the eval run configuration + group: evals + example: | + { + "type": "jsonl", + "source": { + "type": "file_id", + "id": "file-9GYS6xbkWgWhmE7VoLUWFg" + } + } + OpenAI.CreateEvalLabelModelGrader: + type: object + required: + - type + - name + - model + - input + - labels + - passing_labels + properties: + type: + type: string + enum: + - label_model + description: The object type, which is always `label_model`. + x-stainless-const: true + name: + type: string + description: The name of the grader. model: type: string - description: The model deployment identifier to use for the chat completion request. - data_sources: + description: The model to use for the evaluation. Must support structured outputs. + input: + type: array + items: + $ref: '#/components/schemas/OpenAI.CreateEvalItem' + description: A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}. + labels: + type: array + items: + type: string + description: The labels to classify to each item in the evaluation. + passing_labels: type: array items: - $ref: '#/components/schemas/AzureChatDataSource' - description: The data sources to use for the On Your Data feature, exclusive to Azure OpenAI. - user_security_context: - $ref: '#/components/schemas/AzureUserSecurityContext' + type: string + description: The labels that indicate a passing result. Must be a subset of labels. + description: |- + A LabelModelGrader object which uses a model to assign labels to each item + in the evaluation. + title: LabelModelGrader + x-oaiMeta: + name: The eval label model grader object + group: evals + example: | + { + "type": "label_model", + "model": "gpt-4o-2024-08-06", + "input": [ + { + "role": "system", + "content": "Classify the sentiment of the following statement as one of 'positive', 'neutral', or 'negative'" + }, + { + "role": "user", + "content": "Statement: {{item.response}}" + } + ], + "passing_labels": ["positive"], + "labels": ["positive", "neutral", "negative"], + "name": "Sentiment label grader" + } + OpenAI.CreateEvalLogsDataSourceConfig: + type: object + required: + - type + properties: + type: + type: string + enum: + - logs + description: The type of data source. Always `logs`. + x-stainless-const: true + default: logs + metadata: + type: object + unevaluatedProperties: {} + description: Metadata filters for the logs data source. description: |- - The extended request model for chat completions against the Azure OpenAI service. - This adds the ability to provide data sources for the On Your Data feature. - AzureCreateChatCompletionResponse: + A data source config which specifies the metadata property of your logs query. + This is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc. + title: LogsDataSourceConfig + x-oaiMeta: + name: The logs data source object for evals + group: evals + example: | + { + "type": "logs", + "metadata": { + "use_case": "customer_support_agent" + } + } + OpenAI.CreateEvalResponsesRunDataSource: type: object required: - - id - - created - - model - - object - - choices + - type + - source properties: - id: + type: type: string - description: A unique identifier for the chat completion. - created: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) of when the chat completion was created. + enum: + - responses + description: The type of run data source. Always `responses`. + default: responses + input_messages: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceInputMessagesTemplate' + - $ref: '#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceInputMessagesItemReference' + description: Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace. + sampling_params: + $ref: '#/components/schemas/AzureResponsesSamplingParams' model: type: string - description: The model used for the chat completion. - system_fingerprint: + description: The name of the model to use for generating completions (e.g. "o3-mini"). + source: + anyOf: + - $ref: '#/components/schemas/OpenAI.EvalJsonlFileContentSource' + - $ref: '#/components/schemas/OpenAI.EvalJsonlFileIdSource' + - $ref: '#/components/schemas/OpenAI.EvalResponsesSource' + description: Determines what populates the `item` namespace in this run's data source. + description: A ResponsesRunDataSource object describing a model sampling configuration. + title: CreateEvalResponsesRunDataSource + x-oaiMeta: + name: The completions data source object used to configure an individual run + group: eval runs + example: | + { + "name": "gpt-4o-mini-2024-07-18", + "data_source": { + "type": "responses", + "input_messages": { + "type": "item_reference", + "item_reference": "item.input" + }, + "model": "gpt-4o-mini-2024-07-18", + "source": { + "type": "responses", + "model": "gpt-4o-mini-2024-07-18" + } + } + } + OpenAI.CreateEvalResponsesRunDataSourceInputMessagesItemReference: + type: object + required: + - type + - item_reference + properties: + type: type: string - description: |- - This fingerprint represents the backend configuration that the model runs with. - - Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism. - object: + enum: + - item_reference + item_reference: + type: string + OpenAI.CreateEvalResponsesRunDataSourceInputMessagesTemplate: + type: object + required: + - type + - template + properties: + type: type: string enum: - - chat.completion - description: The object type, which is always `chat.completion`. - usage: - $ref: '#/components/schemas/OpenAI.CompletionUsage' - choices: + - template + template: type: array items: - type: object - properties: - finish_reason: - type: string - enum: - - stop - - length - - tool_calls - - content_filter - - function_call - description: |- - The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence, - `length` if the maximum number of tokens specified in the request was reached, - `content_filter` if content was omitted due to a flag from our content filters, - `tool_calls` if the model called a tool, or `function_call` (deprecated) if the model called a function. - index: - type: integer - format: int32 - description: The index of the choice in the list of choices. - logprobs: - type: object + anyOf: + - type: object properties: + role: + type: string content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' - nullable: true - description: A list of message content tokens with log probability information. - readOnly: true - refusal: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' - nullable: true - description: A list of message refusal tokens with log probability information. - readOnly: true + type: string required: + - role - content - - refusal - nullable: true - description: Log probability information for the choice. - content_filter_results: - $ref: '#/components/schemas/AzureContentFilterResultForChoice' - message: - allOf: - - $ref: '#/components/schemas/AzureChatCompletionResponseMessage' - description: The chat completion response message. - required: - - finish_reason - - index - - logprobs - - message - prompt_filter_results: + - $ref: '#/components/schemas/OpenAI.EvalItem' + OpenAI.CreateEvalResponsesRunDataSourceSamplingParams: + type: object + properties: + reasoning_effort: + allOf: + - $ref: '#/components/schemas/OpenAI.ReasoningEffort' + description: Controls the level of reasoning effort applied during generation. + temperature: + type: number + description: A higher temperature increases randomness in the outputs. + default: 1 + top_p: + type: number + description: An alternative to temperature for nucleus sampling; 1.0 includes all tokens. + default: 1 + seed: + type: integer + description: A seed value initializes the randomness during sampling. + default: 42 + tools: type: array items: - type: object - properties: - prompt_index: - type: integer - format: int32 - description: The index of the input prompt that this content filter result corresponds to. - content_filter_results: - allOf: - - $ref: '#/components/schemas/AzureContentFilterResultForPrompt' - description: The content filter results associated with the indexed input prompt. - required: - - prompt_index - - content_filter_results - description: The Responsible AI content filter annotations associated with prompt inputs into chat completions. - description: |- - The extended top-level chat completion response model for the Azure OpenAI service. - This model adds Responsible AI content filter annotations for prompt input. - AzureCreateChatCompletionStreamResponse: + $ref: '#/components/schemas/OpenAI.Tool' + text: + $ref: '#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceSamplingParamsText' + OpenAI.CreateEvalResponsesRunDataSourceSamplingParamsText: + type: object + properties: + format: + $ref: '#/components/schemas/OpenAI.TextResponseFormatConfiguration' + OpenAI.CreateEvalRunRequest: type: object required: - - id - - choices - - created - - model - - object + - data_source properties: - id: + name: + type: string + description: The name of the run. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + data_source: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalJsonlRunDataSource' + - $ref: '#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSource' + - $ref: '#/components/schemas/OpenAI.CreateEvalResponsesRunDataSource' + description: Details about the run's data source. + title: CreateEvalRunRequest + OpenAI.CreateEvalStoredCompletionsDataSourceConfig: + type: object + required: + - type + properties: + type: + type: string + enum: + - stored_completions + description: The type of data source. Always `stored_completions`. + x-stainless-const: true + default: stored_completions + metadata: + type: object + unevaluatedProperties: {} + description: Metadata filters for the stored completions data source. + description: Deprecated in favor of LogsDataSourceConfig. + title: StoredCompletionsDataSourceConfig + x-oaiMeta: + name: The stored completions data source object for evals + group: evals + example: | + { + "type": "stored_completions", + "metadata": { + "use_case": "customer_support_agent" + } + } + OpenAI.CreateFileRequest: + type: object + properties: + file: + description: The File object (not file name) to be uploaded. + x-oaiMeta: + exampleFilePath: fine-tune.jsonl + expires_after: + type: object + properties: + seconds: + type: integer + format: int32 + anchor: + $ref: '#/components/schemas/AzureFileExpiryAnchor' + required: + - seconds + - anchor + purpose: type: string - description: A unique identifier for the chat completion. Each chunk has the same ID. - choices: + enum: + - assistants + - batch + - fine-tune + - evals + description: 'The intended purpose of the uploaded file. One of: - `assistants`: Used in the Assistants API - `batch`: Used in the Batch API - `fine-tune`: Used for fine-tuning - `evals`: Used for eval data sets' + required: + - file + - expires_after + - purpose + OpenAI.CreateFineTuningCheckpointPermissionRequest: + type: object + required: + - project_ids + properties: + project_ids: type: array items: - type: object - properties: - delta: - $ref: '#/components/schemas/OpenAI.ChatCompletionStreamResponseDelta' - logprobs: - type: object - properties: - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' - nullable: true - description: A list of message content tokens with log probability information. - readOnly: true - refusal: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' - nullable: true - description: A list of message refusal tokens with log probability information. - readOnly: true - required: - - content - - refusal - nullable: true - description: Log probability information for the choice. - finish_reason: - type: string - enum: - - stop - - length - - tool_calls - - content_filter - - function_call - nullable: true - description: |- - The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence, - `length` if the maximum number of tokens specified in the request was reached, - `content_filter` if content was omitted due to a flag from our content filters, - `tool_calls` if the model called a tool, or `function_call` (deprecated) if the model called a function. - index: - type: integer - format: int32 - description: The index of the choice in the list of choices. - required: - - delta - - finish_reason - - index - description: |- - A list of chat completion choices. Can contain more than one elements if `n` is greater than 1. Can also be empty for the - last chunk if you set `stream_options: {"include_usage": true}`. - created: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) of when the chat completion was created. Each chunk has the same timestamp. + type: string + description: The project identifiers to grant access to. + OpenAI.CreateFineTuningJobRequest: + type: object + required: + - model + - training_file + properties: model: - type: string - description: The model to generate the completion. - system_fingerprint: - type: string + anyOf: + - type: string + - type: string + enum: + - babbage-002 + - davinci-002 + - gpt-3.5-turbo + - gpt-4o-mini description: |- - This fingerprint represents the backend configuration that the model runs with. - Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism. - object: + The name of the model to fine-tune. You can select one of the + [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned). + x-oaiTypeLabel: string + training_file: type: string - enum: - - chat.completion.chunk - description: The object type, which is always `chat.completion.chunk`. - usage: - type: object + description: |- + The ID of an uploaded file that contains training data. + + See [upload file](https://platform.openai.com/docs/api-reference/files/create) for how to upload a file. + + Your dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose `fine-tune`. + + The contents of the file should differ depending on if the model uses the [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input), [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input) format, or if the fine-tuning method uses the [preference](https://platform.openai.com/docs/api-reference/fine-tuning/preference-input) format. + + See the [fine-tuning guide](https://platform.openai.com/docs/guides/model-optimization) for more details. + hyperparameters: allOf: - - $ref: '#/components/schemas/OpenAI.CompletionUsage' - nullable: true + - $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequestHyperparameters' + description: |- + The hyperparameters used for the fine-tuning job. + This value is now deprecated in favor of `method`, and should be passed in under the `method` parameter. + suffix: + anyOf: + - type: string + - type: 'null' + minLength: 1 + maxLength: 64 description: |- - An optional field that will only be present when you set - `stream_options: {"include_usage": true}` in your request. When present, it - contains a null value **except for the last chunk** which contains the - token usage statistics for the entire request. + A string of up to 64 characters that will be added to your fine-tuned model name. - **NOTE:** If the stream is interrupted or cancelled, you may not - receive the final usage chunk which contains the total token usage for - the request. - delta: - $ref: '#/components/schemas/AzureChatCompletionStreamResponseDelta' - content_filter_results: - $ref: '#/components/schemas/AzureContentFilterResultForChoice' - AzureCreateEmbeddingRequest: + For example, a `suffix` of "custom-model-name" would produce a model name like `ft:gpt-4o-mini:openai:custom-model-name:7p4lURel`. + validation_file: + anyOf: + - type: string + - type: 'null' + description: |- + The ID of an uploaded file that contains validation data. + + If you provide this file, the data is used to generate validation + metrics periodically during fine-tuning. These metrics can be viewed in + the fine-tuning results file. + The same data should not be present in both train and validation files. + + Your dataset must be formatted as a JSONL file. You must upload your file with the purpose `fine-tune`. + + See the [fine-tuning guide](https://platform.openai.com/docs/guides/model-optimization) for more details. + integrations: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegrations' + - type: 'null' + description: A list of integrations to enable for your fine-tuning job. + seed: + anyOf: + - type: integer + - type: 'null' + minimum: 0 + maximum: 2147483647 + description: |- + The seed controls the reproducibility of the job. Passing in the same seed and job parameters should produce the same results, but may differ in rare cases. + If a seed is not specified, one will be generated for you. + method: + $ref: '#/components/schemas/OpenAI.FineTuneMethod' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.CreateFineTuningJobRequestHyperparameters: + type: object + properties: + batch_size: + anyOf: + - type: string + enum: + - auto + - type: integer + default: auto + learning_rate_multiplier: + anyOf: + - type: string + enum: + - auto + - type: number + n_epochs: + anyOf: + - type: string + enum: + - auto + - type: integer + default: auto + OpenAI.CreateFineTuningJobRequestIntegrations: + type: object + required: + - type + - wandb + properties: + type: + type: string + enum: + - wandb + x-stainless-const: true + wandb: + $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegrationsWandb' + OpenAI.CreateFineTuningJobRequestIntegrationsWandb: type: object required: - - model - - input + - project properties: - model: + project: type: string - description: The model to use for the embedding request. - input: + name: anyOf: - type: string - - type: array - items: - type: string - - type: array - items: - type: integer - format: int32 - - type: array - items: - type: array - items: - type: integer - format: int32 - description: Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and any array must be 2048 dimensions or less. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens. In addition to the per-input token limit, all embedding models enforce a maximum of 300,000 tokens summed across all inputs in a single request. - encoding_format: - type: string - enum: - - float - - base64 - description: The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/). - default: float - dimensions: - type: integer - format: int32 - minimum: 1 - description: The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models. - user: - type: string - description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids). - AzureCreateFileRequestMultiPart: + - type: 'null' + entity: + anyOf: + - type: string + - type: 'null' + tags: + type: array + items: + type: string + OpenAI.CreateImageEditRequest: type: object required: - - file - - expires_after - - purpose + - image + - prompt properties: - file: - type: string - format: binary - expires_after: + image: type: object - properties: - seconds: - type: integer - format: int32 - anchor: - $ref: '#/components/schemas/AzureFileExpiryAnchor' - required: - - seconds - - anchor - purpose: + description: |- + The image(s) to edit. Must be a supported image file or an array of images. + + For `gpt-image-1`, each image should be a `png`, `webp`, or `jpg` file less + than 50MB. You can provide up to 16 images. + + For `dall-e-2`, you can only provide one image, and it should be a square + `png` file less than 4MB. + x-oaiMeta: + exampleFilePath: otter.png + prompt: + type: object + description: A text description of the desired image(s). The maximum length is 1000 characters for `dall-e-2`, and 32000 characters for `gpt-image-1`. + mask: + type: object + description: An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where `image` should be edited. If there are multiple images provided, the mask will be applied on the first image. Must be a valid PNG file, less than 4MB, and have the same dimensions as `image`. + x-oaiMeta: + exampleFilePath: mask.png + background: + type: object + description: |- + Allows to set transparency for the background of the generated image(s). + This parameter is only supported for `gpt-image-1`. Must be one of + `transparent`, `opaque` or `auto` (default value). When `auto` is used, the + model will automatically determine the best background for the image. + + If `transparent`, the output format needs to support transparency, so it + should be set to either `png` (default value) or `webp`. + model: type: string - enum: - - assistants - - batch - - fine-tune - - evals - description: 'The intended purpose of the uploaded file. One of: - `assistants`: Used in the Assistants API - `batch`: Used in the Batch API - `fine-tune`: Used for fine-tuning - `evals`: Used for eval data sets' - AzureCreateImageRequest: + description: The model to use for image generation. Only `dall-e-2` and `gpt-image-1` are supported. Defaults to `dall-e-2` unless a parameter specific to `gpt-image-1` is used. + x-oaiTypeLabel: string + 'n': + type: object + description: The number of images to generate. Must be between 1 and 10. + size: + type: object + description: The size of the generated images. Must be one of `1024x1024`, `1536x1024` (landscape), `1024x1536` (portrait), or `auto` (default value) for `gpt-image-1`, and one of `256x256`, `512x512`, or `1024x1024` for `dall-e-2`. + response_format: + type: object + description: The format in which the generated images are returned. Must be one of `url` or `b64_json`. URLs are only valid for 60 minutes after the image has been generated. This parameter is only supported for `dall-e-2`, as `gpt-image-1` will always return base64-encoded images. + output_format: + type: object + description: |- + The format in which the generated images are returned. This parameter is + only supported for `gpt-image-1`. Must be one of `png`, `jpeg`, or `webp`. + The default value is `png`. + output_compression: + type: object + description: |- + The compression level (0-100%) for the generated images. This parameter + is only supported for `gpt-image-1` with the `webp` or `jpeg` output + formats, and defaults to 100. + user: + type: object + description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids). + input_fidelity: + type: object + stream: + type: object + description: |- + Edit the image in streaming mode. Defaults to `false`. See the + [Image generation guide](https://platform.openai.com/docs/guides/image-generation) for more information. + partial_images: + type: object + quality: + type: object + description: The quality of the image that will be generated. `high`, `medium` and `low` are only supported for `gpt-image-1`. `dall-e-2` only supports `standard` quality. Defaults to `auto`. + OpenAI.CreateImageRequest: type: object required: - prompt - - model properties: prompt: type: string description: A text description of the desired image(s). The maximum length is 32000 characters for `gpt-image-1`, 1000 characters for `dall-e-2` and 4000 characters for `dall-e-3`. + model: + type: string + description: The model to use for image generation. One of `dall-e-2`, `dall-e-3`, or `gpt-image-1`. Defaults to `dall-e-2` unless a parameter specific to `gpt-image-1` is used. + x-oaiTypeLabel: string 'n': - type: integer - format: int32 - nullable: true + anyOf: + - type: integer + - type: 'null' minimum: 1 maximum: 10 description: The number of images to generate. Must be between 1 and 10. For `dall-e-3`, only `n=1` is supported. default: 1 quality: - type: string - enum: - - standard - - hd - - low - - medium - - high - - auto - nullable: true + anyOf: + - type: string + enum: + - standard + - hd + - low + - medium + - high + - auto + - type: 'null' description: |- The quality of the image that will be generated. - - `auto` (default value) will automatically select the best quality for the given model. - - `high`, `medium` and `low` are supported for `gpt-image-1`. - - `hd` and `standard` are supported for `dall-e-3`. - - `standard` is the only option for `dall-e-2`. + - `auto` (default value) will automatically select the best quality for the given model. + - `high`, `medium` and `low` are supported for `gpt-image-1`. + - `hd` and `standard` are supported for `dall-e-3`. + - `standard` is the only option for `dall-e-2`. default: auto response_format: - type: string - enum: - - url - - b64_json - nullable: true + anyOf: + - type: string + enum: + - url + - b64_json + - type: 'null' description: The format in which generated images with `dall-e-2` and `dall-e-3` are returned. Must be one of `url` or `b64_json`. URLs are only valid for 60 minutes after the image has been generated. This parameter isn't supported for `gpt-image-1` which will always return base64-encoded images. default: url output_format: - type: string - enum: - - png - - jpeg - - webp - nullable: true + anyOf: + - type: string + enum: + - png + - jpeg + - webp + - type: 'null' description: The format in which the generated images are returned. This parameter is only supported for `gpt-image-1`. Must be one of `png`, `jpeg`, or `webp`. default: png output_compression: - type: integer - format: int32 - nullable: true + anyOf: + - type: integer + - type: 'null' description: The compression level (0-100%) for the generated images. This parameter is only supported for `gpt-image-1` with the `webp` or `jpeg` output formats, and defaults to 100. default: 100 + stream: + anyOf: + - type: boolean + - type: 'null' + description: |- + Generate the image in streaming mode. Defaults to `false`. See the + [Image generation guide](https://platform.openai.com/docs/guides/image-generation) for more information. + This parameter is only supported for `gpt-image-1`. + partial_images: + $ref: '#/components/schemas/OpenAI.PartialImages' size: - type: string - enum: - - auto - - 1024x1024 - - 1536x1024 - - 1024x1536 - - 256x256 - - 512x512 - - 1792x1024 - - 1024x1792 - nullable: true + anyOf: + - type: string + enum: + - auto + - 1024x1024 + - 1536x1024 + - 1024x1536 + - 256x256 + - 512x512 + - 1792x1024 + - 1024x1792 + - type: 'null' description: The size of the generated images. Must be one of `1024x1024`, `1536x1024` (landscape), `1024x1536` (portrait), or `auto` (default value) for `gpt-image-1`, one of `256x256`, `512x512`, or `1024x1024` for `dall-e-2`, and one of `1024x1024`, `1792x1024`, or `1024x1792` for `dall-e-3`. default: auto moderation: - type: string - enum: - - low - - auto - nullable: true + anyOf: + - type: string + enum: + - low + - auto + - type: 'null' description: Control the content-moderation level for images generated by `gpt-image-1`. Must be either `low` for less restrictive filtering or `auto` (default value). default: auto background: - type: string - enum: - - transparent - - opaque - - auto - nullable: true + anyOf: + - type: string + enum: + - transparent + - opaque + - auto + - type: 'null' description: |- Allows to set transparency for the background of the generated image(s). - This parameter is only supported for `gpt-image-1`. Must be one of - `transparent`, `opaque` or `auto` (default value). When `auto` is used, the - model will automatically determine the best background for the image. + This parameter is only supported for `gpt-image-1`. Must be one of + `transparent`, `opaque` or `auto` (default value). When `auto` is used, the + model will automatically determine the best background for the image. - If `transparent`, the output format needs to support transparency, so it - should be set to either `png` (default value) or `webp`. + If `transparent`, the output format needs to support transparency, so it + should be set to either `png` (default value) or `webp`. default: auto style: - type: string - enum: - - vivid - - natural - nullable: true + anyOf: + - type: string + enum: + - vivid + - natural + - type: 'null' description: The style of the generated images. This parameter is only supported for `dall-e-3`. Must be one of `vivid` or `natural`. Vivid causes the model to lean towards generating hyper-real and dramatic images. Natural causes the model to produce more natural, less hyper-real looking images. default: vivid user: type: string - description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids). + description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids). + OpenAI.CreateImageVariationRequest: + type: object + required: + - image + properties: + image: + type: object + description: The image to use as the basis for the variation(s). Must be a valid PNG file, less than 4MB, and square. + x-oaiMeta: + exampleFilePath: otter.png model: type: string - description: The model deployment to use for the image generation. - AzureCreateResponse: + description: The model to use for image generation. Only `dall-e-2` is supported at this time. + x-oaiTypeLabel: string + 'n': + type: object + description: The number of images to generate. Must be between 1 and 10. + response_format: + type: object + description: The format in which the generated images are returned. Must be one of `url` or `b64_json`. URLs are only valid for 60 minutes after the image has been generated. + size: + type: object + description: The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`. + user: + type: object + description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids). + OpenAI.CreateMessageRequest: type: object required: - - model + - role + - content properties: - metadata: - type: object - additionalProperties: - type: string + role: + type: string + enum: + - user + - assistant description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map + The role of the entity that is creating the message. Allowed values include: + - `user`: Indicates the message is sent by an actual user and should be used in most cases to represent user-generated messages. + - `assistant`: Indicates the message is generated by the assistant. Use this value to insert messages from the assistant into the conversation. + content: + anyOf: + - type: string + - type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.MessageContentImageFileObject' + - $ref: '#/components/schemas/OpenAI.MessageContentImageUrlObject' + - $ref: '#/components/schemas/OpenAI.MessageRequestContentTextObject' + attachments: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.CreateMessageRequestAttachments' + - type: 'null' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.CreateMessageRequestAttachments: + type: object + properties: + file_id: + type: string + tools: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.AssistantToolsCode' + - $ref: '#/components/schemas/OpenAI.AssistantToolsFileSearchTypeOnly' + OpenAI.CreateResponse: + type: object + properties: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + top_logprobs: + anyOf: + - type: integer + - type: 'null' temperature: - type: number - format: float - nullable: true - minimum: 0 - maximum: 2 - description: |- - What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. - We generally recommend altering this or `top_p` but not both. + anyOf: + - type: number + - type: 'null' default: 1 top_p: - type: number - format: float - nullable: true - minimum: 0 - maximum: 1 - description: |- - An alternative to sampling with temperature, called nucleus sampling, - where the model considers the results of the tokens with top_p probability - mass. So 0.1 means only the tokens comprising the top 10% probability mass - are considered. - - We generally recommend altering this or `temperature` but not both. + anyOf: + - type: number + - type: 'null' default: 1 user: type: string - description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids). - top_logprobs: - type: integer - format: int32 - minimum: 0 - maximum: 20 - description: An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. + description: |- + This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations. + A stable identifier for your end-users. + Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + safety_identifier: + type: string + description: |- + A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. + The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + prompt_cache_key: + type: string + description: Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching). + prompt_cache_retention: + anyOf: + - type: string + enum: + - in-memory + - 24h + - type: 'null' previous_response_id: + anyOf: + - type: string + - type: 'null' + model: type: string - nullable: true description: |- - The unique ID of the previous response to the model. Use this to - create multi-turn conversations. Learn more about - [conversation state](/docs/guides/conversation-state). + Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) + to browse and compare available models. reasoning: - type: object - allOf: + anyOf: - $ref: '#/components/schemas/OpenAI.Reasoning' - nullable: true + - type: 'null' background: - type: boolean - nullable: true - description: |- - Whether to run the model response in the background. - [Learn more](/docs/guides/background). - default: false + anyOf: + - type: boolean + - type: 'null' max_output_tokens: - type: integer - format: int32 - nullable: true - description: An upper bound for the number of tokens that can be generated for a response, including visible output tokens and [reasoning tokens](/docs/guides/reasoning). + anyOf: + - type: integer + - type: 'null' max_tool_calls: - type: integer - format: int32 - nullable: true - description: The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored. + anyOf: + - type: integer + - type: 'null' text: - type: object - properties: - format: - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - description: |- - Configuration options for a text response from the model. Can be plain - text or structured JSON data. Learn more: - - [Text inputs and outputs](/docs/guides/text) - - [Structured Outputs](/docs/guides/structured-outputs) + $ref: '#/components/schemas/OpenAI.ResponseTextParam' tools: - type: array - items: - $ref: '#/components/schemas/OpenAI.Tool' + $ref: '#/components/schemas/OpenAI.ToolsArray' description: |- - An array of tools the model may call while generating a response. You + An array of tools the model may call while generating a response. You can specify which tool to use by setting the `tool_choice` parameter. The two categories of tools you can provide the model are: @@ -5875,4033 +13963,4441 @@ components: - **Function calls (custom tools)**: Functions that are defined by you, enabling the model to call your own code. tool_choice: - anyOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceOptions' - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - description: |- - How the model should select which tool (or tools) to use when generating - a response. See the `tools` parameter to see how to specify which tools - the model can call. + $ref: '#/components/schemas/OpenAI.ToolChoiceParam' prompt: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.Prompt' - nullable: true + $ref: '#/components/schemas/OpenAI.Prompt' truncation: - type: string - enum: - - auto - - disabled - nullable: true - description: |- - The truncation strategy to use for the model response. - - `auto`: If the context of this response and previous ones exceeds - the model's context window size, the model will truncate the - response to fit the context window by dropping input items in the - middle of the conversation. - - `disabled` (default): If a model response will exceed the context window - size for a model, the request will fail with a 400 error. + anyOf: + - type: string + enum: + - auto + - disabled + - type: 'null' default: disabled input: + $ref: '#/components/schemas/OpenAI.InputParam' + include: anyOf: - - type: string - type: array items: - anyOf: - - $ref: '#/components/schemas/OpenAI.ImplicitUserMessage' - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: |- - Text, image, or file inputs to the model, used to generate a response. - - Learn more: - - [Text inputs and outputs](/docs/guides/text) - - [Image inputs](/docs/guides/images) - - [File inputs](/docs/guides/pdf-files) - - [Conversation state](/docs/guides/conversation-state) - - [Function calling](/docs/guides/function-calling) - include: - type: array - items: - $ref: '#/components/schemas/OpenAI.Includable' - nullable: true - description: |- - Specify additional output data to include in the model response. Currently - supported values are: - - `code_interpreter_call.outputs`: Includes the outputs of python code execution - in code interpreter tool call items. - - `computer_call_output.output.image_url`: Include image urls from the computer call output. - - `file_search_call.results`: Include the search results of - the file search tool call. - - `message.input_image.image_url`: Include image urls from the input message. - - `message.output_text.logprobs`: Include logprobs with assistant messages. - - `reasoning.encrypted_content`: Includes an encrypted version of reasoning - tokens in reasoning item outputs. This enables reasoning items to be used in - multi-turn conversations when using the Responses API statelessly (like - when the `store` parameter is set to `false`, or when an organization is - enrolled in the zero data retention program). + $ref: '#/components/schemas/OpenAI.IncludeEnum' + - type: 'null' parallel_tool_calls: - type: boolean - nullable: true - description: Whether to allow the model to run tool calls in parallel. + anyOf: + - type: boolean + - type: 'null' default: true store: - type: boolean - nullable: true - description: |- - Whether to store the generated model response for later retrieval via - API. + anyOf: + - type: boolean + - type: 'null' default: true instructions: + anyOf: + - type: string + - type: 'null' + stream: + anyOf: + - type: boolean + - type: 'null' + stream_options: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamOptions' + - type: 'null' + conversation: + anyOf: + - $ref: '#/components/schemas/OpenAI.ConversationParam' + - type: 'null' + OpenAI.CreateRunRequest: + type: object + required: + - assistant_id + properties: + assistant_id: + type: string + description: The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) to use to execute this run. + model: type: string - nullable: true + description: The ID of the [Model](https://platform.openai.com/docs/api-reference/models) to be used to execute this run. If a value is provided here, it will override the model associated with the assistant. If not, the model associated with the assistant will be used. + x-oaiTypeLabel: string + reasoning_effort: + $ref: '#/components/schemas/OpenAI.ReasoningEffort' + instructions: + anyOf: + - type: string + - type: 'null' + description: Overrides the [instructions](https://platform.openai.com/docs/api-reference/assistants/createAssistant) of the assistant. This is useful for modifying the behavior on a per-run basis. + additional_instructions: + anyOf: + - type: string + - type: 'null' + description: Appends additional instructions at the end of the instructions for the run. This is useful for modifying the behavior on a per-run basis without overriding other instructions. + additional_messages: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.CreateMessageRequest' + - type: 'null' + description: Adds additional messages to the thread before creating the run. + tools: + type: array + items: + $ref: '#/components/schemas/OpenAI.AssistantTool' + maxItems: 20 + description: Override the tools the assistant can use for this run. This is useful for modifying the behavior on a per-run basis. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + minimum: 0 + maximum: 2 + description: What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + minimum: 0 + maximum: 1 description: |- - A system (or developer) message inserted into the model's context. + An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. - When using along with `previous_response_id`, the instructions from a previous - response will not be carried over to the next response. This makes it simple - to swap out system (or developer) messages in new responses. + We generally recommend altering this or temperature but not both. + default: 1 stream: - type: boolean - nullable: true - description: |- - If set to true, the model response data will be streamed to the client - as it is generated using [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format). - See the [Streaming section below](/docs/api-reference/responses-streaming) - for more information. - default: false + anyOf: + - type: boolean + - type: 'null' + description: 'If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message.' + max_prompt_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 256 + description: The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + max_completion_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 256 + description: The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + truncation_strategy: + $ref: '#/components/schemas/OpenAI.TruncationObject' + tool_choice: + $ref: '#/components/schemas/OpenAI.AssistantsApiToolChoiceOption' + parallel_tool_calls: + $ref: '#/components/schemas/OpenAI.ParallelToolCalls' + response_format: + $ref: '#/components/schemas/OpenAI.AssistantsApiResponseFormatOption' + OpenAI.CreateThreadAndRunRequest: + type: object + required: + - assistant_id + properties: + assistant_id: + type: string + description: The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) to use to execute this run. + thread: + $ref: '#/components/schemas/OpenAI.CreateThreadRequest' model: type: string - description: The model deployment to use for the creation of this response. - AzureErrorResponse: + description: The ID of the [Model](https://platform.openai.com/docs/api-reference/models) to be used to execute this run. If a value is provided here, it will override the model associated with the assistant. If not, the model associated with the assistant will be used. + x-oaiTypeLabel: string + instructions: + anyOf: + - type: string + - type: 'null' + description: Override the default system message of the assistant. This is useful for modifying the behavior on a per-run basis. + tools: + type: array + items: + $ref: '#/components/schemas/OpenAI.AssistantTool' + maxItems: 20 + description: Override the tools the assistant can use for this run. This is useful for modifying the behavior on a per-run basis. + tool_resources: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateThreadAndRunRequestToolResources' + - type: 'null' + description: A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + minimum: 0 + maximum: 2 + description: What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + minimum: 0 + maximum: 1 + description: |- + An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. + + We generally recommend altering this or temperature but not both. + default: 1 + stream: + anyOf: + - type: boolean + - type: 'null' + description: 'If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message.' + max_prompt_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 256 + description: The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + max_completion_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 256 + description: The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + truncation_strategy: + $ref: '#/components/schemas/OpenAI.TruncationObject' + tool_choice: + $ref: '#/components/schemas/OpenAI.AssistantsApiToolChoiceOption' + parallel_tool_calls: + $ref: '#/components/schemas/OpenAI.ParallelToolCalls' + response_format: + $ref: '#/components/schemas/OpenAI.AssistantsApiResponseFormatOption' + OpenAI.CreateThreadAndRunRequestToolResources: type: object properties: - error: - type: object - properties: - code: - type: string - description: The distinct, machine-generated identifier for the error. - message: - type: string - description: A human-readable message associated with the error. - param: - type: string - description: If applicable, the request input parameter associated with the error - type: - type: string - enum: - - error - description: The object type, always 'error.' - inner_error: {} - description: The error details. - AzureEvalAPICompletionsSamplingParams: + code_interpreter: + $ref: '#/components/schemas/OpenAI.CreateThreadAndRunRequestToolResourcesCodeInterpreter' + file_search: + $ref: '#/components/schemas/OpenAI.CreateThreadAndRunRequestToolResourcesFileSearch' + OpenAI.CreateThreadAndRunRequestToolResourcesCodeInterpreter: type: object properties: - tools: + file_ids: type: array items: - $ref: '#/components/schemas/OpenAI.ChatCompletionTool' - parallel_tool_calls: - type: boolean - response_format: - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - allOf: - - $ref: '#/components/schemas/AzureEvalAPIModelSamplingParams' - AzureEvalAPIModelSamplingParams: + type: string + maxItems: 20 + default: [] + OpenAI.CreateThreadAndRunRequestToolResourcesFileSearch: type: object properties: - seed: - type: integer - format: int32 - description: A seed value to initialize the randomness during sampling. - temperature: - type: number - format: float - description: A higher temperature increases randomness in the outputs. - max_tokens: - type: integer - format: int32 - description: The maximum number of tokens in the generated output. - top_p: - type: number - format: float - description: An alternative to temperature for nucleus sampling; 1.0 includes all tokens. - reasoning_effort: + vector_store_ids: + type: array + items: + type: string + maxItems: 1 + OpenAI.CreateThreadRequest: + type: object + properties: + messages: + type: array + items: + $ref: '#/components/schemas/OpenAI.CreateMessageRequest' + description: A list of [messages](https://platform.openai.com/docs/api-reference/messages) to start the thread with. + tool_resources: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateThreadRequestToolResources' + - type: 'null' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + description: |- + Options to create a new thread. If no thread is provided when running a + request, an empty thread will be created. + OpenAI.CreateThreadRequestToolResources: + type: object + properties: + code_interpreter: + $ref: '#/components/schemas/OpenAI.CreateThreadRequestToolResourcesCodeInterpreter' + file_search: + anyOf: + - {} + - {} + OpenAI.CreateThreadRequestToolResourcesCodeInterpreter: + type: object + properties: + file_ids: + type: array + items: + type: string + maxItems: 20 + OpenAI.CreateVectorStoreFileBatchRequest: + type: object + properties: + file_ids: + type: array + items: + type: string + minItems: 1 + maxItems: 500 + description: A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files. If `attributes` or `chunking_strategy` are provided, they will be applied to all files in the batch. Mutually exclusive with `files`. + files: + type: array + items: + $ref: '#/components/schemas/OpenAI.CreateVectorStoreFileRequest' + minItems: 1 + maxItems: 500 + description: A list of objects that each include a `file_id` plus optional `attributes` or `chunking_strategy`. Use this when you need to override metadata for specific files. The global `attributes` or `chunking_strategy` will be ignored and must be specified for each file. Mutually exclusive with `file_ids`. + chunking_strategy: + $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' + attributes: + anyOf: + - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' + - type: 'null' + OpenAI.CreateVectorStoreFileRequest: + type: object + required: + - file_id + properties: + file_id: + type: string + description: A [File](https://platform.openai.com/docs/api-reference/files) ID that the vector store should use. Useful for tools like `file_search` that can access files. + chunking_strategy: + $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' + attributes: + anyOf: + - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' + - type: 'null' + OpenAI.CreateVectorStoreRequest: + type: object + properties: + file_ids: + type: array + items: + type: string + maxItems: 500 + description: A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files. + name: + type: string + description: The name of the vector store. + description: + type: string + description: A description for the vector store. Can be used to describe the vector store's purpose. + expires_after: + $ref: '#/components/schemas/OpenAI.VectorStoreExpirationAfter' + chunking_strategy: + $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.CustomGrammarFormatParam: + type: object + required: + - type + - syntax + - definition + properties: + type: type: string enum: - - low - - medium - - high - description: Controls the level of reasoning effort applied during generation. - AzureEvalAPIResponseSamplingParams: + - grammar + description: Grammar format. Always `grammar`. + x-stainless-const: true + default: grammar + syntax: + allOf: + - $ref: '#/components/schemas/OpenAI.GrammarSyntax1' + description: The syntax of the grammar definition. One of `lark` or `regex`. + definition: + type: string + description: The grammar definition. + description: A grammar defined by the user. + title: Grammar format + OpenAI.CustomTextFormatParam: type: object + required: + - type properties: - tools: - type: array - items: - $ref: '#/components/schemas/OpenAI.Tool' - parallel_tool_calls: - type: boolean - response_format: - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - allOf: - - $ref: '#/components/schemas/AzureEvalAPIModelSamplingParams' - AzureFileExpiryAnchor: - type: string - enum: - - created_at - AzureFineTuneReinforcementMethod: + type: + type: string + enum: + - text + description: Unconstrained text format. Always `text`. + x-stainless-const: true + default: text + description: Unconstrained free-form text. + title: Text format + OpenAI.CustomToolChatCompletions: type: object required: - - grader + - type + - custom properties: - grader: - anyOf: - - $ref: '#/components/schemas/OpenAI.GraderStringCheck' - - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' - - $ref: '#/components/schemas/OpenAI.GraderScoreModel' - - $ref: '#/components/schemas/OpenAI.GraderMulti' - response_format: + type: + type: string + enum: + - custom + description: The type of the custom tool. Always `custom`. + x-stainless-const: true + custom: allOf: - - $ref: '#/components/schemas/ResponseFormatJSONSchemaRequest' - description: Response format to be used while sampling during RFT training - hyperparameters: - $ref: '#/components/schemas/OpenAI.FineTuneReinforcementHyperparameters' - AzureImage: + - $ref: '#/components/schemas/OpenAI.CustomToolChatCompletionsCustom' + description: Properties of the custom tool. + title: Custom tool properties + description: A custom tool that processes input using a specified format. + title: Custom tool + OpenAI.CustomToolChatCompletionsCustom: type: object required: - - prompt_filter_results - - content_filter_results + - name properties: - b64_json: - type: string - format: base64 - description: The base64-encoded JSON of the generated image. Default value for `gpt-image-1`, and only present if `response_format` is set to `b64_json` for `dall-e-2` and `dall-e-3`. - url: + name: type: string - format: uri - description: When using `dall-e-2` or `dall-e-3`, the URL of the generated image if `response_format` is set to `url` (default value). Unsupported for `gpt-image-1`. - revised_prompt: + description: type: string - description: For `dall-e-3` only, the revised prompt that was used to generate the image. - prompt_filter_results: - $ref: '#/components/schemas/AzureContentFilterImagePromptResults' - content_filter_results: - $ref: '#/components/schemas/AzureContentFilterImageResponseResults' - AzureImagesResponse: + format: + anyOf: + - $ref: '#/components/schemas/OpenAI.CustomToolChatCompletionsCustomFormatText' + - $ref: '#/components/schemas/OpenAI.CustomToolChatCompletionsCustomFormatGrammar' + OpenAI.CustomToolChatCompletionsCustomFormatGrammar: type: object required: - - created + - type + - grammar properties: - created: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) of when the image was created. - background: + type: type: string enum: - - transparent - - opaque - description: The background parameter used for the image generation. Either `transparent` or `opaque`. - output_format: + - grammar + x-stainless-const: true + grammar: + allOf: + - $ref: '#/components/schemas/OpenAI.CustomToolChatCompletionsCustomFormatGrammarGrammar' + title: Grammar format + OpenAI.CustomToolChatCompletionsCustomFormatGrammarGrammar: + type: object + required: + - definition + - syntax + properties: + definition: type: string - enum: - - png - - webp - - jpeg - description: The output format of the image generation. Either `png`, `webp`, or `jpeg`. - size: + syntax: type: string enum: - - 1024x1024 - - 1024x1536 - - 1536x1024 - description: The size of the image generated. Either `1024x1024`, `1024x1536`, or `1536x1024`. - quality: + - lark + - regex + OpenAI.CustomToolChatCompletionsCustomFormatText: + type: object + required: + - type + properties: + type: type: string enum: - - low - - medium - - high - description: The quality of the image generated. Either `low`, `medium`, or `high`. - usage: - type: object - properties: - total_tokens: - type: integer - format: int32 - description: The total number of tokens (images and text) used for the image generation. - input_tokens: - type: integer - format: int32 - description: The number of tokens (images and text) in the input prompt. - output_tokens: - type: integer - format: int32 - description: The number of image tokens in the output image. - input_tokens_details: - type: object - properties: - text_tokens: - type: integer - format: int32 - description: The number of text tokens in the input prompt. - image_tokens: - type: integer - format: int32 - description: The number of image tokens in the input prompt. - required: - - text_tokens - - image_tokens - description: The input tokens detailed information for the image generation. - required: - - total_tokens - - input_tokens - - output_tokens - - input_tokens_details - description: For `gpt-image-1` only, the token usage information for the image generation. - data: - type: array - items: - $ref: '#/components/schemas/AzureImage' - AzureListFilesResponse: + - text + x-stainless-const: true + OpenAI.CustomToolParam: type: object required: - - object - - data - - first_id - - last_id - - has_more + - type + - name properties: - object: + type: type: string enum: - - list - data: - type: array - items: - $ref: '#/components/schemas/AzureOpenAIFile' - first_id: + - custom + description: The type of the custom tool. Always `custom`. + x-stainless-const: true + default: custom + name: type: string - last_id: + description: The name of the custom tool, used to identify it in tool calls. + description: type: string - has_more: - type: boolean - AzureOpenAIFile: + description: Optional description of the custom tool, used to provide more context. + format: + anyOf: + - $ref: '#/components/schemas/OpenAI.CustomTextFormatParam' + - $ref: '#/components/schemas/OpenAI.CustomGrammarFormatParam' + description: The input format for the custom tool. Default is unconstrained text. + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A custom tool that processes input using a specified format. Learn more about [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) + title: Custom tool + OpenAI.DeleteFileResponse: type: object required: - id - - bytes - - created_at - - filename - object - - purpose - - status + - deleted properties: id: type: string - description: The file identifier, which can be referenced in the API endpoints. - bytes: - type: integer - format: int64 - nullable: true - description: The size of the file, in bytes. - created_at: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) for when the file was created. - expires_at: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) for when the file will expire. - filename: - type: string - description: The name of the file. object: type: string enum: - file - description: The object type, which is always `file`. - status_details: - type: string - description: Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`. - deprecated: true - purpose: + x-stainless-const: true + deleted: + type: boolean + OpenAI.DeleteFineTuningCheckpointPermissionResponse: + type: object + required: + - id + - object + - deleted + properties: + id: type: string - enum: - - assistants - - assistants_output - - batch - - batch_output - - fine-tune - - fine-tune-results - - evals - description: The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`. - status: + description: The ID of the fine-tuned model checkpoint permission that was deleted. + object: type: string enum: - - uploaded - - pending - - running - - processed - - error - - deleting - - deleted - AzureOpenAIVideoGenerationErrorResponse: + - checkpoint.permission + description: The object type, which is always "checkpoint.permission". + x-stainless-const: true + deleted: + type: boolean + description: Whether the fine-tuned model checkpoint permission was successfully deleted. + OpenAI.DeleteMessageResponse: type: object + required: + - id + - deleted + - object properties: - code: + id: type: string - description: The distinct, machine-generated identifier for the error. - message: + deleted: + type: boolean + object: type: string - description: A human-readable message associated with the error. - param: + enum: + - thread.message.deleted + x-stainless-const: true + OpenAI.DeleteModelResponse: + type: object + required: + - id + - deleted + - object + properties: + id: type: string - description: If applicable, the request input parameter associated with the error - type: + deleted: + type: boolean + object: type: string - description: If applicable, the input line number associated with the error. - inner_error: - type: object - properties: - code: - type: string - enum: - - ResponsibleAIPolicyViolation - description: The code associated with the inner error. - revised_prompt: - type: string - description: If applicable, the modified prompt used for generation. - error_details: - description: The content filter result details associated with the inner error. - description: If applicable, an upstream error that originated this error. - AzurePiiSubCategoryResult: + OpenAI.DeleteThreadResponse: type: object required: - - sub_category - - filtered - - detected - - redacted + - id + - deleted + - object properties: - sub_category: + id: type: string - description: The PIIHarmSubCategory that was evaluated. - filtered: - type: boolean - description: Whether the content detection resulted in a content filtering action for this subcategory. - detected: - type: boolean - description: Whether the labeled content subcategory was detected in the content. - redacted: + deleted: type: boolean - description: Whether the content was redacted for this subcategory. - description: Result details for individual PIIHarmSubCategory(s). - AzureResponse: + object: + type: string + enum: + - thread.deleted + x-stainless-const: true + OpenAI.DeleteVectorStoreFileResponse: type: object required: - - metadata - - temperature - - top_p - - user - id + - deleted - object - - created_at - - error - - incomplete_details - - output - - instructions - - parallel_tool_calls - - model properties: - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - temperature: - type: number - format: float - nullable: true - minimum: 0 - maximum: 2 - description: |- - What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. - We generally recommend altering this or `top_p` but not both. - top_p: - type: number - format: float - nullable: true - minimum: 0 - maximum: 1 - description: |- - An alternative to sampling with temperature, called nucleus sampling, - where the model considers the results of the tokens with top_p probability - mass. So 0.1 means only the tokens comprising the top 10% probability mass - are considered. - - We generally recommend altering this or `temperature` but not both. - user: - type: string - nullable: true - description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids). - top_logprobs: - type: integer - format: int32 - nullable: true - description: An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. - previous_response_id: + id: type: string - nullable: true - description: |- - The unique ID of the previous response to the model. Use this to - create multi-turn conversations. Learn more about - [conversation state](/docs/guides/conversation-state). - reasoning: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.Reasoning' - nullable: true - background: + deleted: type: boolean - nullable: true - description: |- - Whether to run the model response in the background. - [Learn more](/docs/guides/background). - default: false - max_output_tokens: - type: integer - format: int32 - nullable: true - description: An upper bound for the number of tokens that can be generated for a response, including visible output tokens and [reasoning tokens](/docs/guides/reasoning). - max_tool_calls: - type: integer - format: int32 - nullable: true - description: The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored. - text: - type: object - properties: - format: - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - description: |- - Configuration options for a text response from the model. Can be plain - text or structured JSON data. Learn more: - - [Text inputs and outputs](/docs/guides/text) - - [Structured Outputs](/docs/guides/structured-outputs) - tools: - type: array - items: - $ref: '#/components/schemas/OpenAI.Tool' - description: |- - An array of tools the model may call while generating a response. You - can specify which tool to use by setting the `tool_choice` parameter. - - The two categories of tools you can provide the model are: - - - **Built-in tools**: Tools that are provided by OpenAI that extend the - model's capabilities, like [web search](/docs/guides/tools-web-search) - or [file search](/docs/guides/tools-file-search). Learn more about - [built-in tools](/docs/guides/tools). - - **Function calls (custom tools)**: Functions that are defined by you, - enabling the model to call your own code. Learn more about - [function calling](/docs/guides/function-calling). - tool_choice: - anyOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceOptions' - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - description: |- - How the model should select which tool (or tools) to use when generating - a response. See the `tools` parameter to see how to specify which tools - the model can call. - prompt: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.Prompt' - nullable: true - truncation: + object: type: string enum: - - auto - - disabled - nullable: true - description: |- - The truncation strategy to use for the model response. - - `auto`: If the context of this response and previous ones exceeds - the model's context window size, the model will truncate the - response to fit the context window by dropping input items in the - middle of the conversation. - - `disabled` (default): If a model response will exceed the context window - size for a model, the request will fail with a 400 error. - default: disabled + - vector_store.file.deleted + x-stainless-const: true + OpenAI.DeleteVectorStoreResponse: + type: object + required: + - id + - deleted + - object + properties: id: type: string - description: Unique identifier for this Response. + deleted: + type: boolean object: type: string enum: - - response - description: The object type of this resource - always set to `response`. - status: + - vector_store.deleted + x-stainless-const: true + OpenAI.DeletedConversationResource: + type: object + required: + - object + - deleted + - id + properties: + object: type: string enum: - - completed - - failed - - in_progress - - cancelled - - queued - - incomplete - description: |- - The status of the response generation. One of `completed`, `failed`, - `in_progress`, `cancelled`, `queued`, or `incomplete`. - created_at: - type: integer - format: unixtime - description: Unix timestamp (in seconds) of when this Response was created. - error: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseError' - nullable: true - incomplete_details: - type: object - properties: - reason: - type: string - enum: - - max_output_tokens - - content_filter - description: The reason why the response is incomplete. - nullable: true - description: Details about why the response is incomplete. - output: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemResource' - description: |- - An array of content items generated by the model. - - - The length and order of items in the `output` array is dependent - on the model's response. - - Rather than accessing the first item in the `output` array and - assuming it's an `assistant` message with the content generated by - the model, you might consider using the `output_text` property where - supported in SDKs. - instructions: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemParam' - nullable: true - description: |- - A system (or developer) message inserted into the model's context. - - When using along with `previous_response_id`, the instructions from a previous - response will not be carried over to the next response. This makes it simple - to swap out system (or developer) messages in new responses. - output_text: - type: string - nullable: true - description: |- - SDK-only convenience property that contains the aggregated text output - from all `output_text` items in the `output` array, if any are present. - Supported in the Python and JavaScript SDKs. - usage: - $ref: '#/components/schemas/OpenAI.ResponseUsage' - parallel_tool_calls: + - conversation.deleted + x-stainless-const: true + default: conversation.deleted + deleted: type: boolean - description: Whether to allow the model to run tool calls in parallel. - default: true - model: + id: type: string - description: The model used to generate this response. - AzureSearchChatDataSource: + OpenAI.DoubleClickAction: type: object required: - type - - parameters + - x + - 'y' properties: type: type: string enum: - - azure_search - description: The discriminated type identifier, which is always 'azure_search'. - parameters: - type: object - properties: - top_n_documents: - type: integer - format: int32 - description: The configured number of documents to feature in the query. - in_scope: - type: boolean - description: Whether queries should be restricted to use of the indexed data. - strictness: - type: integer - format: int32 - minimum: 1 - maximum: 5 - description: |- - The configured strictness of the search relevance filtering. - Higher strictness will increase precision but lower recall of the answer. - max_search_queries: - type: integer - format: int32 - description: |- - The maximum number of rewritten queries that should be sent to the search provider for a single user message. - By default, the system will make an automatic determination. - allow_partial_result: - type: boolean - description: |- - If set to true, the system will allow partial search results to be used and the request will fail if all - partial queries fail. If not specified or specified as false, the request will fail if any search query fails. - default: false - include_contexts: - type: array - items: - type: string - enum: - - citations - - intent - - all_retrieved_documents - maxItems: 3 - description: |- - The output context properties to include on the response. - By default, citations and intent will be requested. - default: - - citations - - intent - endpoint: - type: string - format: uri - description: The absolute endpoint path for the Azure Search resource to use. - index_name: - type: string - description: The name of the index to use, as specified in the Azure Search resource. - authentication: - anyOf: - - $ref: '#/components/schemas/AzureChatDataSourceApiKeyAuthenticationOptions' - - $ref: '#/components/schemas/AzureChatDataSourceSystemAssignedManagedIdentityAuthenticationOptions' - - $ref: '#/components/schemas/AzureChatDataSourceUserAssignedManagedIdentityAuthenticationOptions' - - $ref: '#/components/schemas/AzureChatDataSourceAccessTokenAuthenticationOptions' - description: The authentication mechanism to use with Azure Search. - fields_mapping: - type: object - properties: - title_field: - type: string - description: The name of the index field to use as a title. - url_field: - type: string - description: The name of the index field to use as a URL. - filepath_field: - type: string - description: The name of the index field to use as a filepath. - content_fields: - type: array - items: - type: string - description: The names of index fields that should be treated as content. - content_fields_separator: - type: string - description: The separator pattern that content fields should use. - vector_fields: - type: array - items: - type: string - description: The names of fields that represent vector data. - image_vector_fields: - type: array - items: - type: string - description: The names of fields that represent image vector data. - description: The field mappings to use with the Azure Search resource. - query_type: - type: string - enum: - - simple - - semantic - - vector - - vector_simple_hybrid - - vector_semantic_hybrid - description: The query type for the Azure Search resource to use. - semantic_configuration: - type: string - description: Additional semantic configuration for the query. - filter: - type: string - description: A filter to apply to the search. - embedding_dependency: - anyOf: - - $ref: '#/components/schemas/AzureChatDataSourceEndpointVectorizationSource' - - $ref: '#/components/schemas/AzureChatDataSourceDeploymentNameVectorizationSource' - - $ref: '#/components/schemas/AzureChatDataSourceIntegratedVectorizationSource' - description: |- - The vectorization source to use with Azure Search. - Supported sources for Azure Search include endpoint, deployment name, and integrated. - required: - - endpoint - - index_name - - authentication - description: The parameter information to control the use of the Azure Search data source. + - double_click + description: Specifies the event type. For a double click action, this property is always set to `double_click`. + x-stainless-const: true + default: double_click + x: + type: integer + description: The x-coordinate where the double click occurred. + 'y': + type: integer + description: The y-coordinate where the double click occurred. allOf: - - $ref: '#/components/schemas/AzureChatDataSource' - description: Represents a data source configuration that will use an Azure Search resource. - AzureUserSecurityContext: - type: object - properties: - application_name: - type: string - description: The name of the application. Sensitive personal information should not be included in this field. - end_user_id: - type: string - description: This identifier is the Microsoft Entra ID (formerly Azure Active Directory) user object ID used to authenticate end-users within the generative AI application. Sensitive personal information should not be included in this field. - end_user_tenant_id: - type: string - description: The Microsoft 365 tenant ID the end user belongs to. It's required when the generative AI application is multitenant. - source_ip: - type: string - description: Captures the original client's IP address. - description: User security context contains several parameters that describe the application itself, and the end user that interacts with the application. These fields assist your security operations teams to investigate and mitigate security incidents by providing a comprehensive approach to protecting your AI applications. [Learn more](https://aka.ms/TP4AI/Documentation/EndUserContext) about protecting AI applications using Microsoft Defender for Cloud. - ChatCompletionMessageToolCallsItem: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCall' - description: The tool calls generated by the model, such as function calls. - CopiedAccountDetails: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A double click action. + title: DoubleClick + OpenAI.Drag: type: object required: - - destinationResourceId - - region - - status + - type + - path properties: - destinationResourceId: - type: string - description: The ID of the destination resource where the model was copied to. - region: - type: string - description: The region where the model was copied to. - status: + type: type: string enum: - - Completed - - Failed - - InProgress - description: The status of the copy operation. - CopyModelRequest: + - drag + description: |- + Specifies the event type. For a drag action, this property is + always set to `drag`. + x-stainless-const: true + default: drag + path: + type: array + items: + $ref: '#/components/schemas/OpenAI.DragPoint' + description: |- + An array of coordinates representing the path of the drag action. Coordinates will appear as an array + of objects, eg + ``` + [ + { x: 100, y: 200 }, + { x: 200, y: 300 } + ] + ``` + allOf: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A drag action. + title: Drag + OpenAI.DragPoint: type: object required: - - destinationResourceId - - region + - x + - 'y' properties: - destinationResourceId: - type: string - description: The ID of the destination Resource to copy. - region: - type: string - description: The region to copy the model to. - CopyModelResponse: + x: + type: integer + description: The x-coordinate. + 'y': + type: integer + description: The y-coordinate. + description: 'An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`.' + title: Coordinate + OpenAI.EasyInputMessage: type: object required: - - checkpointedModelName - - fineTuningJobId - - copiedAccountDetails + - role + - content + - type properties: - checkpointedModelName: + role: type: string - description: The ID of the copied model. - fineTuningJobId: + enum: + - user + - assistant + - system + - developer + description: |- + The role of the message input. One of `user`, `assistant`, `system`, or + `developer`. + content: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAI.InputMessageContentList' + description: |- + Text, image, or audio input to the model, used to generate a response. + Can also contain previous assistant responses. + type: type: string - description: The ID of the fine-tuning job that the checkpoint was copied from. - copiedAccountDetails: - type: array - items: - $ref: '#/components/schemas/CopiedAccountDetails' - description: The ID of the destination resource id where it was copied - CreateVideoGenerationRequest: + enum: + - message + description: The type of the message input. Always `message`. + x-stainless-const: true + allOf: + - $ref: '#/components/schemas/OpenAI.InputItem' + description: |- + A message input to the model with a role indicating instruction following + hierarchy. Instructions given with the `developer` or `system` role take + precedence over instructions given with the `user` role. Messages with the + `assistant` role are presumed to have been generated by the model in previous + interactions. + title: Input message + OpenAI.Embedding: type: object required: - - prompt - - height - - width - - model + - index + - embedding + - object properties: - prompt: - type: string - description: The prompt for this video generation job. - height: - type: integer - format: int32 - description: 'The height of the video. The following dimensions are supported: 480x480, 854x480, 720x720, 1280x720, 1080x1080 and 1920x1080 in both landscape and portrait orientations.' - width: - type: integer - format: int32 - description: 'The width of the video. The following dimensions are supported: 480x480, 854x480, 720x720, 1280x720, 1080x1080 and 1920x1080 in both landscape and portrait orientations.' - n_seconds: - type: integer - format: int32 - minimum: 1 - description: The duration of the video generation job. Must be between 1 and 20 seconds. - default: 5 - n_variants: + index: type: integer - format: int32 - minimum: 1 - description: The number of videos to create as variants for this job. Must be between 1 and 5. Smaller dimensions allow more variants. - default: 1 - model: + description: The index of the embedding in the list of embeddings. + embedding: + type: array + items: + type: number + format: float + description: The embedding vector, which is a list of floats. The length of vector depends on the model as listed in the [embedding guide](https://platform.openai.com/docs/guides/embeddings). + object: type: string - description: The name of the deployment to use for this request. - CreateVideoGenerationWithMediaRequestMultiPart: + enum: + - embedding + description: The object type, which is always "embedding". + x-stainless-const: true + description: Represents an embedding vector returned by embedding endpoint. + x-oaiMeta: + name: The embedding object + example: | + { + "object": "embedding", + "embedding": [ + 0.0023064255, + -0.009327292, + .... (1536 floats total for ada-002) + -0.0028842222, + ], + "index": 0 + } + OpenAI.Eval: type: object required: - - prompt - - height - - width - - model - - files + - object + - id + - name + - data_source_config + - testing_criteria + - created_at + - metadata properties: - prompt: + object: type: string - description: The prompt for this video generation job. - height: - type: integer - format: int32 - description: 'The height of the video. The following dimensions are supported: 480x480, 854x480, 720x720, 1280x720, 1080x1080 and 1920x1080 in both landscape and portrait orientations.' - width: - type: integer - format: int32 - description: 'The width of the video. The following dimensions are supported: 480x480, 854x480, 720x720, 1280x720, 1080x1080 and 1920x1080 in both landscape and portrait orientations.' - n_seconds: - type: integer - format: int32 - minimum: 1 - description: The duration of the video generation job. Must be between 1 and 20 seconds. - default: 5 - n_variants: - type: integer - format: int32 - minimum: 1 - description: The number of videos to create as variants for this job. Must be between 1 and 5. Smaller dimensions allow more variants. - default: 1 - model: + enum: + - eval + description: The object type. + x-stainless-const: true + default: eval + id: type: string - description: The name of the deployment to use for this request. - inpaint_items: - type: array - items: - $ref: '#/components/schemas/InpaintItem' - description: Optional inpainting items for this video generation job. - files: + description: Unique identifier for the evaluation. + name: + type: string + description: The name of the evaluation. + data_source_config: + anyOf: + - $ref: '#/components/schemas/OpenAI.EvalCustomDataSourceConfig' + - $ref: '#/components/schemas/OpenAI.EvalLogsDataSourceConfig' + - $ref: '#/components/schemas/OpenAI.EvalStoredCompletionsDataSourceConfig' + description: Configuration of data sources used in runs of the evaluation. + testing_criteria: type: array items: - type: string - format: binary - description: The properties of a video generation job request with media files. - CropBounds: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalLabelModelGrader' + - $ref: '#/components/schemas/OpenAI.EvalGraderStringCheck' + - $ref: '#/components/schemas/OpenAI.EvalGraderTextSimilarity' + - $ref: '#/components/schemas/OpenAI.EvalGraderPython' + - $ref: '#/components/schemas/OpenAI.EvalGraderScoreModel' + - $ref: '#/components/schemas/EvalGraderEndpoint' + description: A list of testing criteria. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the eval was created. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + description: |- + An Eval object with a data source config and testing criteria. + An Eval represents a task to be done for your LLM integration. + Like: + - Improve the quality of my chatbot + - See how well my chatbot handles customer support + - Check if o4-mini is better at my usecase than gpt-4o + title: Eval + x-oaiMeta: + name: The eval object + group: evals + example: | + { + "object": "eval", + "id": "eval_67abd54d9b0081909a86353f6fb9317a", + "data_source_config": { + "type": "custom", + "item_schema": { + "type": "object", + "properties": { + "label": {"type": "string"}, + }, + "required": ["label"] + }, + "include_sample_schema": true + }, + "testing_criteria": [ + { + "name": "My string check grader", + "type": "string_check", + "input": "{{sample.output_text}}", + "reference": "{{item.label}}", + "operation": "eq", + } + ], + "name": "External Data Eval", + "created_at": 1739314509, + "metadata": { + "test": "synthetics", + } + } + OpenAI.EvalApiError: type: object + required: + - code + - message properties: - left_fraction: - type: number - minimum: 0 - maximum: 1 - description: The left boundary of the crop box specified as fraction of the width of the original media item. Must be between 0.0 and 1.0. Use e.g. 0.5 for half the width of the original media item. - default: 0 - top_fraction: - type: number - minimum: 0 - maximum: 1 - description: The top boundary of the crop box specified as fraction of the height of the original media item. Must be between 0.0 and 1.0. Use e.g. 0.5 for half the height of the original media item. - default: 0 - right_fraction: - type: number - minimum: 0 - maximum: 1 - description: The right boundary of the crop box specified as fraction of the width of the original media item. Must be between 0.0 and 1.0. Use e.g. 0.5 for half the width of the original media item. - default: 1 - bottom_fraction: - type: number - minimum: 0 - maximum: 1 - description: The bottom boundary of the crop box specified as fraction of the height of the original media item. Must be between 0.0 and 1.0. Use e.g. 0.5 for half the height of the original media item. - default: 1 - description: |- - The crop bounds for an inpainting item. - This specifies the area of the media item that should be used for inpainting. - ElasticsearchChatDataSource: + code: + type: string + description: The error code. + message: + type: string + description: The error message. + description: An object representing an error response from the Eval API. + title: EvalApiError + x-oaiMeta: + name: The API error object + group: evals + example: | + { + "code": "internal_error", + "message": "The eval run failed due to an internal error." + } + OpenAI.EvalCustomDataSourceConfig: type: object required: - type - - parameters + - schema properties: type: type: string enum: - - elasticsearch - description: The discriminated type identifier, which is always 'elasticsearch'. - parameters: + - custom + description: The type of data source. Always `custom`. + x-stainless-const: true + default: custom + schema: type: object - properties: - top_n_documents: - type: integer - format: int32 - description: The configured number of documents to feature in the query. - in_scope: - type: boolean - description: Whether queries should be restricted to use of the indexed data. - strictness: - type: integer - format: int32 - minimum: 1 - maximum: 5 - description: |- - The configured strictness of the search relevance filtering. - Higher strictness will increase precision but lower recall of the answer. - max_search_queries: - type: integer - format: int32 - description: |- - The maximum number of rewritten queries that should be sent to the search provider for a single user message. - By default, the system will make an automatic determination. - allow_partial_result: - type: boolean - description: |- - If set to true, the system will allow partial search results to be used and the request will fail if all - partial queries fail. If not specified or specified as false, the request will fail if any search query fails. - default: false - include_contexts: - type: array - items: - type: string - enum: - - citations - - intent - - all_retrieved_documents - maxItems: 3 - description: |- - The output context properties to include on the response. - By default, citations and intent will be requested. - default: - - citations - - intent - endpoint: - type: string - format: uri - index_name: - type: string - authentication: - anyOf: - - $ref: '#/components/schemas/AzureChatDataSourceKeyAndKeyIdAuthenticationOptions' - - $ref: '#/components/schemas/AzureChatDataSourceEncodedApiKeyAuthenticationOptions' - fields_mapping: - type: object - properties: - title_field: - type: string - url_field: - type: string - filepath_field: - type: string - content_fields: - type: array - items: - type: string - content_fields_separator: - type: string - vector_fields: - type: array - items: - type: string - query_type: - type: string - enum: - - simple - - vector - embedding_dependency: - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - required: - - endpoint - - index_name - - authentication - description: The parameter information to control the use of the Elasticsearch data source. - allOf: - - $ref: '#/components/schemas/AzureChatDataSource' - InpaintItem: + unevaluatedProperties: {} + description: |- + The json schema for the run data source items. + Learn how to build JSON schemas [here](https://json-schema.org/). + description: |- + A CustomDataSourceConfig which specifies the schema of your `item` and optionally `sample` namespaces. + The response schema defines the shape of the data that will be: + - Used to define your testing criteria and + - What data is required when creating a run + title: CustomDataSourceConfig + x-oaiMeta: + name: The eval custom data source config object + group: evals + example: | + { + "type": "custom", + "schema": { + "type": "object", + "properties": { + "item": { + "type": "object", + "properties": { + "label": {"type": "string"}, + }, + "required": ["label"] + } + }, + "required": ["item"] + } + } + OpenAI.EvalGraderPython: type: object required: - - frame_index - type - - file_name + - name + - source properties: - frame_index: - type: integer - format: int32 - description: The frame index for this media item. This specifies the starting frame in the resulting generated video for this inpainting item. - default: 0 type: - allOf: - - $ref: '#/components/schemas/MediaItemType' - description: The type of the media item, either 'image' or 'video'. - file_name: type: string - description: The file name of the media item. It must match the file name of a file attachment in this request. - crop_bounds: - allOf: - - $ref: '#/components/schemas/CropBounds' - description: The crop bounds for this media item. This specifies the area of the media item that should be used for inpainting. Default is the full media item. - description: |- - An inpainting item for a video generation job. - This specifies the media item that should be used for inpainting in the video generation. - JobStatus: - type: string - enum: - - preprocessing - - queued - - running - - processing - - cancelled - - succeeded - - failed - description: The status of a video generation job. - MediaItemType: - type: string - enum: - - image - description: The type of the inpainting item. - MongoDBChatDataSource: + enum: + - python + description: The object type, which is always `python`. + x-stainless-const: true + name: + type: string + description: The name of the grader. + source: + type: string + description: The source code of the python script. + image_tag: + type: string + description: The image tag to use for the python script. + pass_threshold: + type: number + description: The threshold for the score. + title: EvalGraderPython + OpenAI.EvalGraderScoreModel: type: object required: - type - - parameters + - name + - model + - input properties: type: type: string enum: - - mongo_db - description: The discriminated type identifier, which is always 'mongo_db'. - parameters: - type: object - properties: - top_n_documents: - type: integer - format: int32 - description: The configured number of documents to feature in the query. - in_scope: - type: boolean - description: Whether queries should be restricted to use of the indexed data. - strictness: - type: integer - format: int32 - minimum: 1 - maximum: 5 - description: |- - The configured strictness of the search relevance filtering. - Higher strictness will increase precision but lower recall of the answer. - max_search_queries: - type: integer - format: int32 - description: |- - The maximum number of rewritten queries that should be sent to the search provider for a single user message. - By default, the system will make an automatic determination. - allow_partial_result: - type: boolean - description: |- - If set to true, the system will allow partial search results to be used and the request will fail if all - partial queries fail. If not specified or specified as false, the request will fail if any search query fails. - default: false - include_contexts: - type: array - items: - type: string - enum: - - citations - - intent - - all_retrieved_documents - maxItems: 3 - description: |- - The output context properties to include on the response. - By default, citations and intent will be requested. - default: - - citations - - intent - endpoint: - type: string - description: The name of the MongoDB cluster endpoint. - database_name: - type: string - description: The name of the MongoDB database. - collection_name: - type: string - description: The name of the MongoDB collection. - app_name: - type: string - description: The name of the MongoDB application. - index_name: - type: string - description: The name of the MongoDB index. - authentication: - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceUsernameAndPasswordAuthenticationOptions' - description: |- - The authentication mechanism to use with Pinecone. - Supported authentication mechanisms for Pinecone include: username and password. - embedding_dependency: - anyOf: - - $ref: '#/components/schemas/AzureChatDataSourceEndpointVectorizationSource' - - $ref: '#/components/schemas/AzureChatDataSourceDeploymentNameVectorizationSource' - description: |- - The vectorization source to use as an embedding dependency for the MongoDB data source. - Supported vectorization sources for MongoDB include: endpoint, deployment name. - fields_mapping: - type: object - properties: - content_fields: - type: array - items: - type: string - vector_fields: - type: array - items: - type: string - title_field: - type: string - url_field: - type: string - filepath_field: - type: string - content_fields_separator: - type: string - required: - - content_fields - - vector_fields - description: |- - Field mappings to apply to data used by the MongoDB data source. - Note that content and vector field mappings are required for MongoDB. - required: - - endpoint - - database_name - - collection_name - - app_name - - index_name - - authentication - - embedding_dependency - - fields_mapping - description: The parameter information to control the use of the MongoDB data source. - allOf: - - $ref: '#/components/schemas/AzureChatDataSource' - OpenAI.Annotation: + - score_model + description: The object type, which is always `score_model`. + x-stainless-const: true + name: + type: string + description: The name of the grader. + model: + type: string + description: The model to use for the evaluation. + sampling_params: + allOf: + - $ref: '#/components/schemas/OpenAI.EvalGraderScoreModelSamplingParams' + description: The sampling parameters for the model. + input: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalItem' + description: The input text. This may include template strings. + range: + type: array + items: + type: number + description: The range of the score. Defaults to `[0, 1]`. + pass_threshold: + type: number + description: The threshold for the score. + title: EvalGraderScoreModel + OpenAI.EvalGraderScoreModelSamplingParams: + type: object + properties: + seed: + anyOf: + - type: integer + - type: 'null' + top_p: + anyOf: + - type: number + - type: 'null' + default: 1 + temperature: + anyOf: + - type: number + - type: 'null' + max_completions_tokens: + anyOf: + - type: integer + - type: 'null' + reasoning_effort: + $ref: '#/components/schemas/OpenAI.ReasoningEffort' + OpenAI.EvalGraderStringCheck: type: object required: - type + - name + - input + - reference + - operation properties: type: - $ref: '#/components/schemas/OpenAI.AnnotationType' - discriminator: - propertyName: type - mapping: - file_citation: '#/components/schemas/OpenAI.AnnotationFileCitation' - url_citation: '#/components/schemas/OpenAI.AnnotationUrlCitation' - file_path: '#/components/schemas/OpenAI.AnnotationFilePath' - OpenAI.AnnotationFileCitation: + type: string + enum: + - string_check + description: The object type, which is always `string_check`. + x-stainless-const: true + name: + type: string + description: The name of the grader. + input: + type: string + description: The input text. This may include template strings. + reference: + type: string + description: The reference text. This may include template strings. + operation: + type: string + enum: + - eq + - ne + - like + - ilike + description: The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`. + title: StringCheckGrader + OpenAI.EvalGraderTextSimilarity: type: object required: - type - - file_id - - index - - filename + - name + - input + - reference + - evaluation_metric + - pass_threshold properties: type: type: string enum: - - file_citation - description: The type of the file citation. Always `file_citation`. - file_id: + - text_similarity + description: The type of grader. + x-stainless-const: true + default: text_similarity + name: type: string - description: The ID of the file. - index: - type: integer - format: int32 - description: The index of the file in the list of files. - filename: + description: The name of the grader. + input: type: string - description: The filename of the file cited. - allOf: - - $ref: '#/components/schemas/OpenAI.Annotation' - description: A citation to a file. - OpenAI.AnnotationFilePath: + description: The text being graded. + reference: + type: string + description: The text being graded against. + evaluation_metric: + type: string + enum: + - cosine + - fuzzy_match + - bleu + - gleu + - meteor + - rouge_1 + - rouge_2 + - rouge_3 + - rouge_4 + - rouge_5 + - rouge_l + description: |- + The evaluation metric to use. One of `cosine`, `fuzzy_match`, `bleu`, + `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, + or `rouge_l`. + pass_threshold: + type: number + description: The threshold for the score. + title: EvalGraderTextSimilarity + OpenAI.EvalItem: type: object required: - - type - - file_id - - index + - role + - content properties: - type: + role: type: string enum: - - file_path - description: The type of the file path. Always `file_path`. - file_id: + - user + - assistant + - system + - developer + description: |- + The role of the message input. One of `user`, `assistant`, `system`, or + `developer`. + content: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAI.InputTextContent' + - $ref: '#/components/schemas/OpenAI.EvalItemContentOutputText' + - $ref: '#/components/schemas/OpenAI.EvalItemContentInputImage' + - $ref: '#/components/schemas/OpenAI.InputAudio' + - type: array + items: {} + description: Inputs to the model - can contain template strings. + type: type: string - description: The ID of the file. - index: - type: integer - format: int32 - description: The index of the file in the list of files. - allOf: - - $ref: '#/components/schemas/OpenAI.Annotation' - description: A path to a file. - OpenAI.AnnotationType: - anyOf: - - type: string - - type: string enum: - - file_citation - - url_citation - - file_path - - container_file_citation - OpenAI.AnnotationUrlCitation: + - message + description: The type of the message input. Always `message`. + x-stainless-const: true + description: |- + A message input to the model with a role indicating instruction following + hierarchy. Instructions given with the `developer` or `system` role take + precedence over instructions given with the `user` role. Messages with the + `assistant` role are presumed to have been generated by the model in previous + interactions. + title: EvalItem + OpenAI.EvalItemContentInputImage: type: object required: - type - - url - - start_index - - end_index - - title + - image_url properties: type: type: string enum: - - url_citation - description: The type of the URL citation. Always `url_citation`. - url: + - input_image + x-stainless-const: true + image_url: type: string - format: uri - description: The URL of the web resource. - start_index: - type: integer - format: int32 - description: The index of the first character of the URL citation in the message. - end_index: - type: integer - format: int32 - description: The index of the last character of the URL citation in the message. - title: + detail: type: string - description: The title of the web resource. - allOf: - - $ref: '#/components/schemas/OpenAI.Annotation' - description: A citation for a web resource used to generate a model response. - OpenAI.ApproximateLocation: + OpenAI.EvalItemContentOutputText: type: object required: - type + - text properties: type: type: string enum: - - approximate - country: - type: string - nullable: true - region: - type: string - nullable: true - city: - type: string - nullable: true - timezone: + - output_text + x-stainless-const: true + text: type: string - nullable: true - allOf: - - $ref: '#/components/schemas/OpenAI.Location' - OpenAI.AutoChunkingStrategyRequestParam: + OpenAI.EvalJsonlFileContentSource: type: object required: - type + - content properties: type: type: string enum: - - auto - description: Always `auto`. - allOf: - - $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' - description: The default strategy. This strategy currently uses a `max_chunk_size_tokens` of `800` and `chunk_overlap_tokens` of `400`. - OpenAI.ChatCompletionFunctionCallOption: + - file_content + description: The type of jsonl source. Always `file_content`. + x-stainless-const: true + default: file_content + content: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalJsonlFileContentSourceContent' + description: The content of the jsonl file. + title: EvalJsonlFileContentSource + OpenAI.EvalJsonlFileContentSourceContent: type: object required: - - name + - item properties: - name: - type: string - description: The name of the function to call. - description: 'Specifying a particular function via `{"name": "my_function"}` forces the model to call that function.' - OpenAI.ChatCompletionFunctions: + item: + type: object + unevaluatedProperties: {} + sample: + type: object + unevaluatedProperties: {} + OpenAI.EvalJsonlFileIdSource: type: object required: - - name + - type + - id properties: - description: - type: string - description: A description of what the function does, used by the model to choose when and how to call the function. - name: + type: type: string - description: The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. - parameters: - description: |- - The parameters the functions accepts, described as a JSON Schema object. - See the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) - for documentation about the format. - - Omitting `parameters` defines a function with an empty parameter list. - deprecated: true - OpenAI.ChatCompletionMessageAudioChunk: - type: object - properties: + enum: + - file_id + description: The type of jsonl source. Always `file_id`. + x-stainless-const: true + default: file_id id: type: string - transcript: - type: string - data: - type: string - format: base64 - expires_at: - type: integer - format: unixtime - OpenAI.ChatCompletionMessageToolCall: + description: The identifier of the file. + title: EvalJsonlFileIdSource + OpenAI.EvalList: type: object required: - - id - - type - - function + - object + - data + - first_id + - last_id + - has_more properties: - id: - type: string - description: The ID of the tool call. - type: + object: type: string enum: - - function - description: The type of the tool. Currently, only `function` is supported. - function: - type: object - properties: - name: - type: string - description: The name of the function to call. - arguments: - type: string - description: The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function. - required: - - name - - arguments - description: The function that the model called. - OpenAI.ChatCompletionMessageToolCallChunk: + - list + description: The type of this object. It is always set to "list". + x-stainless-const: true + default: list + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.Eval' + description: An array of eval objects. + first_id: + type: string + description: The identifier of the first eval in the data array. + last_id: + type: string + description: The identifier of the last eval in the data array. + has_more: + type: boolean + description: Indicates whether there are more evals available. + description: An object representing a list of evals. + title: EvalList + x-oaiMeta: + name: The eval list object + group: evals + example: | + { + "object": "list", + "data": [ + { + "object": "eval", + "id": "eval_67abd54d9b0081909a86353f6fb9317a", + "data_source_config": { + "type": "custom", + "schema": { + "type": "object", + "properties": { + "item": { + "type": "object", + "properties": { + "input": { + "type": "string" + }, + "ground_truth": { + "type": "string" + } + }, + "required": [ + "input", + "ground_truth" + ] + } + }, + "required": [ + "item" + ] + } + }, + "testing_criteria": [ + { + "name": "String check", + "id": "String check-2eaf2d8d-d649-4335-8148-9535a7ca73c2", + "type": "string_check", + "input": "{{item.input}}", + "reference": "{{item.ground_truth}}", + "operation": "eq" + } + ], + "name": "External Data Eval", + "created_at": 1739314509, + "metadata": {}, + } + ], + "first_id": "eval_67abd54d9b0081909a86353f6fb9317a", + "last_id": "eval_67abd54d9b0081909a86353f6fb9317a", + "has_more": true + } + OpenAI.EvalLogsDataSourceConfig: type: object required: - - index + - type + - schema properties: - index: - type: integer - format: int32 - id: - type: string - description: The ID of the tool call. type: type: string enum: - - function - description: The type of the tool. Currently, only `function` is supported. - function: + - logs + description: The type of data source. Always `logs`. + x-stainless-const: true + default: logs + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + schema: type: object - properties: - name: - type: string - description: The name of the function to call. - arguments: - type: string - description: The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function. - OpenAI.ChatCompletionNamedToolChoice: + unevaluatedProperties: {} + description: |- + The json schema for the run data source items. + Learn how to build JSON schemas [here](https://json-schema.org/). + description: |- + A LogsDataSourceConfig which specifies the metadata property of your logs query. + This is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc. + The schema returned by this data source config is used to defined what variables are available in your evals. + `item` and `sample` are both defined when using this data source config. + title: LogsDataSourceConfig + x-oaiMeta: + name: The logs data source object for evals + group: evals + example: | + { + "type": "logs", + "metadata": { + "language": "english" + }, + "schema": { + "type": "object", + "properties": { + "item": { + "type": "object" + }, + "sample": { + "type": "object" + } + }, + "required": [ + "item", + "sample" + } + } + OpenAI.EvalResponsesSource: type: object required: - type - - function properties: type: type: string enum: - - function - description: The type of the tool. Currently, only `function` is supported. - function: - type: object - properties: - name: - type: string - description: The name of the function to call. - required: - - name - description: Specifies a tool the model should use. Use to force the model to call a specific function. - OpenAI.ChatCompletionRequestAssistantMessage: - type: object - required: - - role - properties: - content: + - responses + description: The type of run data source. Always `responses`. + metadata: + anyOf: + - type: object + unevaluatedProperties: {} + - type: 'null' + model: anyOf: - type: string + - type: 'null' + instructions_search: + anyOf: + - type: string + - type: 'null' + created_after: + anyOf: + - type: integer + - type: 'null' + created_before: + anyOf: + - type: integer + - type: 'null' + reasoning_effort: + anyOf: + - $ref: '#/components/schemas/OpenAI.ReasoningEffort' + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + top_p: + anyOf: + - type: number + - type: 'null' + users: + anyOf: - type: array items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPart' - nullable: true - description: The contents of the assistant message. Required unless `tool_calls` or `function_call` is specified. - refusal: - type: string - nullable: true - description: The refusal message by the assistant. - role: - type: string - enum: - - assistant - description: The role of the messages author, in this case `assistant`. - name: - type: string - description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. - audio: - type: object - properties: - id: - type: string - description: Unique identifier for a previous audio response from the model. - required: - - id - nullable: true - description: Data about a previous audio response from the model. - tool_calls: - $ref: '#/components/schemas/ChatCompletionMessageToolCallsItem' - function_call: - type: object - properties: - name: - type: string - arguments: - type: string - required: - - name - - arguments - nullable: true - description: Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model. - deprecated: true - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' - description: Messages sent by the model in response to user messages. - OpenAI.ChatCompletionRequestAssistantMessageContentPart: - anyOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartRefusal' - OpenAI.ChatCompletionRequestDeveloperMessage: - type: object - required: - - content - - role - properties: - content: + type: string + - type: 'null' + tools: anyOf: - - type: string - type: array items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - description: The contents of the developer message. - role: - type: string - enum: - - developer - description: The role of the messages author, in this case `developer`. - name: - type: string - description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' - description: |- - Developer-provided instructions that the model should follow, regardless of - messages sent by the user. With o1 models and newer, `developer` messages - replace the previous `system` messages. - OpenAI.ChatCompletionRequestFunctionMessage: + type: string + - type: 'null' + description: A EvalResponsesSource object describing a run data source configuration. + title: EvalResponsesSource + x-oaiMeta: + name: The run data source object used to configure an individual run + group: eval runs + example: | + { + "type": "responses", + "model": "gpt-4o-mini-2024-07-18", + "temperature": 0.7, + "top_p": 1.0, + "users": ["user1", "user2"], + "tools": ["tool1", "tool2"], + "instructions_search": "You are a coding assistant" + } + OpenAI.EvalRun: type: object required: - - role - - content + - object + - id + - eval_id + - status + - model - name + - created_at + - report_url + - result_counts + - per_model_usage + - per_testing_criteria_results + - data_source + - metadata + - error properties: - role: + object: + type: string + enum: + - eval.run + description: The type of the object. Always "eval.run". + x-stainless-const: true + default: eval.run + id: + type: string + description: Unique identifier for the evaluation run. + eval_id: + type: string + description: The identifier of the associated evaluation. + status: type: string - enum: - - function - description: The role of the messages author, in this case `function`. - content: + description: The status of the evaluation run. + model: type: string - nullable: true - description: The contents of the function message. + description: The model that is evaluated, if applicable. name: type: string - description: The name of the function to call. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' - deprecated: true - OpenAI.ChatCompletionRequestMessage: - type: object - required: - - role - properties: - role: + description: The name of the evaluation run. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) when the evaluation run was created. + report_url: + type: string + description: The URL to the rendered evaluation run report on the UI dashboard. + result_counts: allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRole' - description: The role of the author of this message. - content: + - $ref: '#/components/schemas/OpenAI.EvalRunResultCounts' + description: Counters summarizing the outcomes of the evaluation run. + per_model_usage: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalRunPerModelUsage' + description: Usage statistics for each model during the evaluation run. + per_testing_criteria_results: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalRunPerTestingCriteriaResults' + description: Results per testing criteria applied during the evaluation run. + data_source: anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart' - nullable: true - description: The content of the message. Valid content part types vary per message role. - discriminator: - propertyName: role - mapping: - system: '#/components/schemas/OpenAI.ChatCompletionRequestSystemMessage' - developer: '#/components/schemas/OpenAI.ChatCompletionRequestDeveloperMessage' - user: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessage' - assistant: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessage' - tool: '#/components/schemas/OpenAI.ChatCompletionRequestToolMessage' - function: '#/components/schemas/OpenAI.ChatCompletionRequestFunctionMessage' - OpenAI.ChatCompletionRequestMessageContentPart: - type: object - required: - - type - properties: - type: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartType' - discriminator: - propertyName: type - mapping: - text: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - image_url: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImage' - refusal: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartRefusal' - file: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFile' - input_audio: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudio' - OpenAI.ChatCompletionRequestMessageContentPartAudio: + - $ref: '#/components/schemas/OpenAI.CreateEvalJsonlRunDataSource' + - $ref: '#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSource' + - $ref: '#/components/schemas/OpenAI.CreateEvalResponsesRunDataSource' + description: Information about the run's data source. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + error: + $ref: '#/components/schemas/OpenAI.EvalApiError' + description: A schema representing an evaluation run. + title: EvalRun + x-oaiMeta: + name: The eval run object + group: evals + example: | + { + "object": "eval.run", + "id": "evalrun_67e57965b480819094274e3a32235e4c", + "eval_id": "eval_67e579652b548190aaa83ada4b125f47", + "report_url": "https://platform.openai.com/evaluations/eval_67e579652b548190aaa83ada4b125f47?run_id=evalrun_67e57965b480819094274e3a32235e4c", + "status": "queued", + "model": "gpt-4o-mini", + "name": "gpt-4o-mini", + "created_at": 1743092069, + "result_counts": { + "total": 0, + "errored": 0, + "failed": 0, + "passed": 0 + }, + "per_model_usage": null, + "per_testing_criteria_results": null, + "data_source": { + "type": "completions", + "source": { + "type": "file_content", + "content": [ + { + "item": { + "input": "Tech Company Launches Advanced Artificial Intelligence Platform", + "ground_truth": "Technology" + } + }, + { + "item": { + "input": "Central Bank Increases Interest Rates Amid Inflation Concerns", + "ground_truth": "Markets" + } + }, + { + "item": { + "input": "International Summit Addresses Climate Change Strategies", + "ground_truth": "World" + } + }, + { + "item": { + "input": "Major Retailer Reports Record-Breaking Holiday Sales", + "ground_truth": "Business" + } + }, + { + "item": { + "input": "National Team Qualifies for World Championship Finals", + "ground_truth": "Sports" + } + }, + { + "item": { + "input": "Stock Markets Rally After Positive Economic Data Released", + "ground_truth": "Markets" + } + }, + { + "item": { + "input": "Global Manufacturer Announces Merger with Competitor", + "ground_truth": "Business" + } + }, + { + "item": { + "input": "Breakthrough in Renewable Energy Technology Unveiled", + "ground_truth": "Technology" + } + }, + { + "item": { + "input": "World Leaders Sign Historic Climate Agreement", + "ground_truth": "World" + } + }, + { + "item": { + "input": "Professional Athlete Sets New Record in Championship Event", + "ground_truth": "Sports" + } + }, + { + "item": { + "input": "Financial Institutions Adapt to New Regulatory Requirements", + "ground_truth": "Business" + } + }, + { + "item": { + "input": "Tech Conference Showcases Advances in Artificial Intelligence", + "ground_truth": "Technology" + } + }, + { + "item": { + "input": "Global Markets Respond to Oil Price Fluctuations", + "ground_truth": "Markets" + } + }, + { + "item": { + "input": "International Cooperation Strengthened Through New Treaty", + "ground_truth": "World" + } + }, + { + "item": { + "input": "Sports League Announces Revised Schedule for Upcoming Season", + "ground_truth": "Sports" + } + } + ] + }, + "input_messages": { + "type": "template", + "template": [ + { + "type": "message", + "role": "developer", + "content": { + "type": "input_text", + "text": "Categorize a given news headline into one of the following topics: Technology, Markets, World, Business, or Sports.\n\n# Steps\n\n1. Analyze the content of the news headline to understand its primary focus.\n2. Extract the subject matter, identifying any key indicators or keywords.\n3. Use the identified indicators to determine the most suitable category out of the five options: Technology, Markets, World, Business, or Sports.\n4. Ensure only one category is selected per headline.\n\n# Output Format\n\nRespond with the chosen category as a single word. For instance: \"Technology\", \"Markets\", \"World\", \"Business\", or \"Sports\".\n\n# Examples\n\n**Input**: \"Apple Unveils New iPhone Model, Featuring Advanced AI Features\" \n**Output**: \"Technology\"\n\n**Input**: \"Global Stocks Mixed as Investors Await Central Bank Decisions\" \n**Output**: \"Markets\"\n\n**Input**: \"War in Ukraine: Latest Updates on Negotiation Status\" \n**Output**: \"World\"\n\n**Input**: \"Microsoft in Talks to Acquire Gaming Company for $2 Billion\" \n**Output**: \"Business\"\n\n**Input**: \"Manchester United Secures Win in Premier League Football Match\" \n**Output**: \"Sports\" \n\n# Notes\n\n- If the headline appears to fit into more than one category, choose the most dominant theme.\n- Keywords or phrases such as \"stocks\", \"company acquisition\", \"match\", or technological brands can be good indicators for classification.\n" + } + }, + { + "type": "message", + "role": "user", + "content": { + "type": "input_text", + "text": "{{item.input}}" + } + } + ] + }, + "model": "gpt-4o-mini", + "sampling_params": { + "seed": 42, + "temperature": 1.0, + "top_p": 1.0, + "max_completions_tokens": 2048 + } + }, + "error": null, + "metadata": {} + } + OpenAI.EvalRunList: type: object required: - - type - - input_audio + - object + - data + - first_id + - last_id + - has_more properties: - type: + object: type: string enum: - - input_audio - description: The type of the content part. Always `input_audio`. - input_audio: - type: object - properties: - data: - type: string - format: base64 - description: Base64 encoded audio data. - format: - type: string - enum: - - wav - - mp3 - description: The format of the encoded audio data. Currently supports "wav" and "mp3". - required: - - data - - format - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart' - description: '' - OpenAI.ChatCompletionRequestMessageContentPartFile: - type: object - required: - - type - - file - properties: - type: + - list + description: The type of this object. It is always set to "list". + x-stainless-const: true + default: list + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalRun' + description: An array of eval run objects. + first_id: type: string - enum: - - file - description: The type of the content part. Always `file`. - file: - type: object - properties: - filename: - type: string - description: |- - The name of the file, used when passing the file to the model as a - string. - file_data: - type: string - description: |- - The base64 encoded file data, used when passing the file to the model - as a string. - file_id: - type: string - description: The ID of an uploaded file to use as input. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart' - description: Learn about [file inputs](/docs/guides/text) for text generation. - OpenAI.ChatCompletionRequestMessageContentPartImage: + description: The identifier of the first eval run in the data array. + last_id: + type: string + description: The identifier of the last eval run in the data array. + has_more: + type: boolean + description: Indicates whether there are more evals available. + description: An object representing a list of runs for an evaluation. + title: EvalRunList + x-oaiMeta: + name: The eval run list object + group: evals + example: | + { + "object": "list", + "data": [ + { + "object": "eval.run", + "id": "evalrun_67b7fbdad46c819092f6fe7a14189620", + "eval_id": "eval_67b7fa9a81a88190ab4aa417e397ea21", + "report_url": "https://platform.openai.com/evaluations/eval_67b7fa9a81a88190ab4aa417e397ea21?run_id=evalrun_67b7fbdad46c819092f6fe7a14189620", + "status": "completed", + "model": "o3-mini", + "name": "Academic Assistant", + "created_at": 1740110812, + "result_counts": { + "total": 171, + "errored": 0, + "failed": 80, + "passed": 91 + }, + "per_model_usage": null, + "per_testing_criteria_results": [ + { + "testing_criteria": "String check grader", + "passed": 91, + "failed": 80 + } + ], + "run_data_source": { + "type": "completions", + "template_messages": [ + { + "type": "message", + "role": "system", + "content": { + "type": "input_text", + "text": "You are a helpful assistant." + } + }, + { + "type": "message", + "role": "user", + "content": { + "type": "input_text", + "text": "Hello, can you help me with my homework?" + } + } + ], + "datasource_reference": null, + "model": "o3-mini", + "max_completion_tokens": null, + "seed": null, + "temperature": null, + "top_p": null + }, + "error": null, + "metadata": {"test": "synthetics"} + } + ], + "first_id": "evalrun_67abd54d60ec8190832b46859da808f7", + "last_id": "evalrun_67abd54d60ec8190832b46859da808f7", + "has_more": false + } + OpenAI.EvalRunOutputItem: type: object required: - - type - - image_url + - object + - id + - run_id + - eval_id + - created_at + - status + - datasource_item_id + - datasource_item + - results + - sample properties: - type: + object: type: string enum: - - image_url - description: The type of the content part. - image_url: + - eval.run.output_item + description: The type of the object. Always "eval.run.output_item". + x-stainless-const: true + default: eval.run.output_item + id: + type: string + description: Unique identifier for the evaluation run output item. + run_id: + type: string + description: The identifier of the evaluation run associated with this output item. + eval_id: + type: string + description: The identifier of the evaluation group. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) when the evaluation run was created. + status: + type: string + description: The status of the evaluation run. + datasource_item_id: + type: integer + description: The identifier for the data source item. + datasource_item: type: object - properties: - url: - type: string - format: uri - description: Either a URL of the image or the base64 encoded image data. - detail: - type: string - enum: - - auto - - low - - high - description: Specifies the detail level of the image. Learn more in the [Vision guide](/docs/guides/vision#low-or-high-fidelity-image-understanding). - default: auto - required: - - url - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart' - description: '' - OpenAI.ChatCompletionRequestMessageContentPartRefusal: + unevaluatedProperties: {} + description: Details of the input data source item. + results: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalRunOutputItemResult' + description: A list of grader results for this output item. + sample: + allOf: + - $ref: '#/components/schemas/OpenAI.EvalRunOutputItemSample' + description: A sample containing the input and output of the evaluation run. + description: A schema representing an evaluation run output item. + title: EvalRunOutputItem + x-oaiMeta: + name: The eval run output item object + group: evals + example: | + { + "object": "eval.run.output_item", + "id": "outputitem_67abd55eb6548190bb580745d5644a33", + "run_id": "evalrun_67abd54d60ec8190832b46859da808f7", + "eval_id": "eval_67abd54d9b0081909a86353f6fb9317a", + "created_at": 1739314509, + "status": "pass", + "datasource_item_id": 137, + "datasource_item": { + "teacher": "To grade essays, I only check for style, content, and grammar.", + "student": "I am a student who is trying to write the best essay." + }, + "results": [ + { + "name": "String Check Grader", + "type": "string-check-grader", + "score": 1.0, + "passed": true, + } + ], + "sample": { + "input": [ + { + "role": "system", + "content": "You are an evaluator bot..." + }, + { + "role": "user", + "content": "You are assessing..." + } + ], + "output": [ + { + "role": "assistant", + "content": "The rubric is not clear nor concise." + } + ], + "finish_reason": "stop", + "model": "gpt-4o-2024-08-06", + "usage": { + "total_tokens": 521, + "completion_tokens": 2, + "prompt_tokens": 519, + "cached_tokens": 0 + }, + "error": null, + "temperature": 1.0, + "max_completion_tokens": 2048, + "top_p": 1.0, + "seed": 42 + } + } + OpenAI.EvalRunOutputItemList: type: object required: - - type - - refusal + - object + - data + - first_id + - last_id + - has_more properties: - type: + object: type: string enum: - - refusal - description: The type of the content part. - refusal: + - list + description: The type of this object. It is always set to "list". + x-stainless-const: true + default: list + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalRunOutputItem' + description: An array of eval run output item objects. + first_id: type: string - description: The refusal message generated by the model. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart' - OpenAI.ChatCompletionRequestMessageContentPartText: + description: The identifier of the first eval run output item in the data array. + last_id: + type: string + description: The identifier of the last eval run output item in the data array. + has_more: + type: boolean + description: Indicates whether there are more eval run output items available. + description: An object representing a list of output items for an evaluation run. + title: EvalRunOutputItemList + x-oaiMeta: + name: The eval run output item list object + group: evals + example: | + { + "object": "list", + "data": [ + { + "object": "eval.run.output_item", + "id": "outputitem_67abd55eb6548190bb580745d5644a33", + "run_id": "evalrun_67abd54d60ec8190832b46859da808f7", + "eval_id": "eval_67abd54d9b0081909a86353f6fb9317a", + "created_at": 1739314509, + "status": "pass", + "datasource_item_id": 137, + "datasource_item": { + "teacher": "To grade essays, I only check for style, content, and grammar.", + "student": "I am a student who is trying to write the best essay." + }, + "results": [ + { + "name": "String Check Grader", + "type": "string-check-grader", + "score": 1.0, + "passed": true, + } + ], + "sample": { + "input": [ + { + "role": "system", + "content": "You are an evaluator bot..." + }, + { + "role": "user", + "content": "You are assessing..." + } + ], + "output": [ + { + "role": "assistant", + "content": "The rubric is not clear nor concise." + } + ], + "finish_reason": "stop", + "model": "gpt-4o-2024-08-06", + "usage": { + "total_tokens": 521, + "completion_tokens": 2, + "prompt_tokens": 519, + "cached_tokens": 0 + }, + "error": null, + "temperature": 1.0, + "max_completion_tokens": 2048, + "top_p": 1.0, + "seed": 42 + } + }, + ], + "first_id": "outputitem_67abd55eb6548190bb580745d5644a33", + "last_id": "outputitem_67abd55eb6548190bb580745d5644a33", + "has_more": false + } + OpenAI.EvalRunOutputItemResult: type: object required: - - type - - text + - name + - score + - passed properties: - type: + name: type: string - enum: - - text - description: The type of the content part. - text: + description: The name of the grader. + type: type: string - description: The text content. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart' - description: '' - OpenAI.ChatCompletionRequestMessageContentPartType: - type: string - enum: - - text - - file - - input_audio - - image_url - - refusal - OpenAI.ChatCompletionRequestSystemMessage: + description: The grader type (for example, "string-check-grader"). + score: + type: number + description: The numeric score produced by the grader. + passed: + type: boolean + description: Whether the grader considered the output a pass. + sample: + anyOf: + - type: object + unevaluatedProperties: {} + - type: 'null' + description: Optional sample or intermediate data produced by the grader. + description: A single grader result for an evaluation run output item. + title: EvalRunOutputItemResult + OpenAI.EvalRunOutputItemSample: type: object required: - - content - - role + - input + - output + - finish_reason + - model + - usage + - error + - temperature + - max_completion_tokens + - top_p + - seed properties: - content: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestSystemMessageContentPart' - description: The contents of the system message. - role: + input: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalRunOutputItemSampleInput' + output: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalRunOutputItemSampleOutput' + finish_reason: type: string - enum: - - system - description: The role of the messages author, in this case `system`. - name: + model: type: string - description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' - description: |- - Developer-provided instructions that the model should follow, regardless of - messages sent by the user. With o1 models and newer, use `developer` messages - for this purpose instead. - OpenAI.ChatCompletionRequestSystemMessageContentPart: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - OpenAI.ChatCompletionRequestToolMessage: + usage: + $ref: '#/components/schemas/OpenAI.EvalRunOutputItemSampleUsage' + error: + $ref: '#/components/schemas/OpenAI.EvalApiError' + temperature: + type: number + max_completion_tokens: + type: integer + top_p: + type: number + seed: + type: integer + OpenAI.EvalRunOutputItemSampleInput: type: object required: - role - content - - tool_call_id properties: role: type: string - enum: - - tool - description: The role of the messages author, in this case `tool`. content: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestToolMessageContentPart' - description: The contents of the tool message. - tool_call_id: type: string - description: Tool call that this message is responding to. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' - OpenAI.ChatCompletionRequestToolMessageContentPart: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - OpenAI.ChatCompletionRequestUserMessage: + OpenAI.EvalRunOutputItemSampleOutput: type: object - required: - - content - - role properties: - content: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart' - description: The contents of the user message. role: type: string - enum: - - user - description: The role of the messages author, in this case `user`. - name: + content: type: string - description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' - description: |- - Messages sent by an end user, containing prompts or additional context - information. - OpenAI.ChatCompletionRequestUserMessageContentPart: - anyOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImage' - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudio' - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFile' - OpenAI.ChatCompletionRole: - type: string - enum: - - system - - developer - - user - - assistant - - tool - - function - description: The role of the author of a message - OpenAI.ChatCompletionStreamOptions: + OpenAI.EvalRunOutputItemSampleUsage: type: object + required: + - total_tokens + - completion_tokens + - prompt_tokens + - cached_tokens properties: - include_usage: - type: boolean - description: |- - If set, an additional chunk will be streamed before the `data: [DONE]` - message. The `usage` field on this chunk shows the token usage statistics - for the entire request, and the `choices` field will always be an empty - array. - - All other chunks will also include a `usage` field, but with a null - value. **NOTE:** If the stream is interrupted, you may not receive the - final usage chunk which contains the total token usage for the request. - description: 'Options for streaming response. Only set this when you set `stream: true`.' - OpenAI.ChatCompletionStreamResponseDelta: + total_tokens: + type: integer + completion_tokens: + type: integer + prompt_tokens: + type: integer + cached_tokens: + type: integer + OpenAI.EvalRunPerModelUsage: type: object + required: + - model_name + - invocation_count + - prompt_tokens + - completion_tokens + - total_tokens + - cached_tokens properties: - audio: - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageAudioChunk' - description: Response audio associated with the streaming chat delta payload. - content: - type: string - nullable: true - description: The contents of the chunk message. - function_call: - type: object - properties: - name: - type: string - arguments: - type: string - description: Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model. - deprecated: true - tool_calls: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunk' - readOnly: true - role: - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRole' - description: The role of the author of this message. - refusal: + model_name: type: string - nullable: true - description: The refusal message generated by the model. - description: A chat completion delta generated by streamed model responses. - OpenAI.ChatCompletionTokenLogprob: + x-stainless-naming: + python: + property_name: run_model_name + invocation_count: + type: integer + prompt_tokens: + type: integer + completion_tokens: + type: integer + total_tokens: + type: integer + cached_tokens: + type: integer + OpenAI.EvalRunPerTestingCriteriaResults: type: object required: - - token - - logprob - - bytes - - top_logprobs + - testing_criteria + - passed + - failed properties: - token: + testing_criteria: type: string - description: The token. - logprob: - type: number - format: float - description: The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely. - bytes: - type: array - items: - type: integer - format: int32 - nullable: true - description: A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token. - top_logprobs: - type: array - items: - type: object - properties: - token: - type: string - description: The token. - logprob: - type: number - format: float - description: The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely. - bytes: - type: array - items: - type: integer - format: int32 - nullable: true - description: A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token. - required: - - token - - logprob - - bytes - description: List of the most likely tokens and their log probability, at this token position. In rare cases, there may be fewer than the number of requested `top_logprobs` returned. - OpenAI.ChatCompletionTool: + passed: + type: integer + failed: + type: integer + OpenAI.EvalRunResultCounts: type: object required: - - type - - function + - total + - errored + - failed + - passed properties: - type: - type: string - enum: - - function - description: The type of the tool. Currently, only `function` is supported. - function: - $ref: '#/components/schemas/OpenAI.FunctionObject' - OpenAI.ChatCompletionToolChoiceOption: - anyOf: - - type: string - enum: - - none - - auto - - required - - $ref: '#/components/schemas/OpenAI.ChatCompletionNamedToolChoice' - description: |- - Controls which (if any) tool is called by the model. - `none` means the model will not call any tool and instead generates a message. - `auto` means the model can pick between generating a message or calling one or more tools. - `required` means the model must call one or more tools. - Specifying a particular tool via `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. - - `none` is the default when no tools are present. `auto` is the default if tools are present. - OpenAI.ChatOutputPrediction: + total: + type: integer + errored: + type: integer + failed: + type: integer + passed: + type: integer + OpenAI.EvalStoredCompletionsDataSourceConfig: type: object required: - type + - schema properties: type: - $ref: '#/components/schemas/OpenAI.ChatOutputPredictionType' - discriminator: - propertyName: type - mapping: - content: '#/components/schemas/OpenAI.ChatOutputPredictionContent' - description: Base representation of predicted output from a model. - OpenAI.ChatOutputPredictionContent: + type: string + enum: + - stored_completions + description: The type of data source. Always `stored_completions`. + x-stainless-const: true + default: stored_completions + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + schema: + type: object + unevaluatedProperties: {} + description: |- + The json schema for the run data source items. + Learn how to build JSON schemas [here](https://json-schema.org/). + description: Deprecated in favor of LogsDataSourceConfig. + title: StoredCompletionsDataSourceConfig + x-oaiMeta: + name: The stored completions data source object for evals + group: evals + example: | + { + "type": "stored_completions", + "metadata": { + "language": "english" + }, + "schema": { + "type": "object", + "properties": { + "item": { + "type": "object" + }, + "sample": { + "type": "object" + } + }, + "required": [ + "item", + "sample" + } + } + OpenAI.EvalStoredCompletionsSource: type: object required: - type - - content properties: type: type: string enum: - - content - description: |- - The type of the predicted content you want to provide. This type is - currently always `content`. - content: + - stored_completions + description: The type of source. Always `stored_completions`. + x-stainless-const: true + default: stored_completions + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + model: anyOf: - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - description: |- - The content that should be matched when generating a model response. - If generated tokens would match this content, the entire model response - can be returned much more quickly. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatOutputPrediction' - description: |- - Static predicted output content, such as the content of a text file that is - being regenerated. - OpenAI.ChatOutputPredictionType: - anyOf: - - type: string - - type: string - enum: - - content - OpenAI.ChunkingStrategyRequestParam: + - type: 'null' + created_after: + anyOf: + - type: integer + - type: 'null' + created_before: + anyOf: + - type: integer + - type: 'null' + limit: + anyOf: + - type: integer + - type: 'null' + description: A StoredCompletionsRunDataSource configuration describing a set of filters + title: StoredCompletionsRunDataSource + x-oaiMeta: + name: The stored completions data source object used to configure an individual run + group: eval runs + example: | + { + "type": "stored_completions", + "model": "gpt-4o", + "created_after": 1668124800, + "created_before": 1668124900, + "limit": 100, + "metadata": {} + } + OpenAI.FileCitationBody: type: object required: - type + - file_id + - index + - filename properties: type: type: string enum: - - auto - - static - description: The type of chunking strategy. - discriminator: - propertyName: type - mapping: - static: '#/components/schemas/OpenAI.StaticChunkingStrategyRequestParam' - description: The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. - OpenAI.ChunkingStrategyResponseParam: + - file_citation + description: The type of the file citation. Always `file_citation`. + x-stainless-const: true + default: file_citation + file_id: + type: string + description: The ID of the file. + index: + type: integer + description: The index of the file in the list of files. + filename: + type: string + description: The filename of the file cited. + allOf: + - $ref: '#/components/schemas/OpenAI.Annotation' + description: A citation to a file. + title: File citation + OpenAI.FilePath: type: object required: - type + - file_id + - index properties: type: type: string enum: - - static - - other - discriminator: - propertyName: type - mapping: - other: '#/components/schemas/OpenAI.OtherChunkingStrategyResponseParam' - static: '#/components/schemas/OpenAI.StaticChunkingStrategyResponseParam' - OpenAI.CodeInterpreterOutput: + - file_path + description: The type of the file path. Always `file_path`. + x-stainless-const: true + file_id: + type: string + description: The ID of the file. + index: + type: integer + description: The index of the file in the list of files. + allOf: + - $ref: '#/components/schemas/OpenAI.Annotation' + description: A path to a file. + title: File path + OpenAI.FileSearchRanker: + type: string + enum: + - auto + - default_2024_08_21 + description: The ranker to use for the file search. If not specified will use the `auto` ranker. + OpenAI.FileSearchRankingOptions: type: object required: - - type + - score_threshold properties: - type: - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputType' - discriminator: - propertyName: type - mapping: - image: '#/components/schemas/OpenAI.CodeInterpreterOutputImage' - logs: '#/components/schemas/OpenAI.CodeInterpreterOutputLogs' - OpenAI.CodeInterpreterOutputImage: + ranker: + $ref: '#/components/schemas/OpenAI.FileSearchRanker' + score_threshold: + type: number + minimum: 0 + maximum: 1 + description: The score threshold for the file search. All values must be a floating point number between 0 and 1. + description: |- + The ranking options for the file search. If not specified, the file search tool will use the `auto` ranker and a score_threshold of 0. + + See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + title: File search tool call ranking options + OpenAI.FileSearchTool: type: object required: - type - - url + - vector_store_ids properties: type: type: string enum: - - image - description: The type of the output. Always 'image'. - url: - type: string - format: uri - description: The URL of the image output from the code interpreter. + - file_search + description: The type of the file search tool. Always `file_search`. + x-stainless-const: true + default: file_search + vector_store_ids: + type: array + items: + type: string + description: The IDs of the vector stores to search. + max_num_results: + type: integer + description: The maximum number of results to return. This number should be between 1 and 50 inclusive. + ranking_options: + allOf: + - $ref: '#/components/schemas/OpenAI.RankingOptions' + description: Ranking options for search. + filters: + anyOf: + - $ref: '#/components/schemas/OpenAI.Filters' + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutput' - description: The image output from the code interpreter. - OpenAI.CodeInterpreterOutputLogs: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search). + title: File search + OpenAI.FileSearchToolCallResults: type: object - required: - - type - - logs properties: - type: + file_id: type: string - enum: - - logs - description: The type of the output. Always 'logs'. - logs: + text: type: string - description: The logs output from the code interpreter. - allOf: - - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutput' - description: The logs output from the code interpreter. - OpenAI.CodeInterpreterOutputType: - type: string - enum: - - logs - - image - OpenAI.CodeInterpreterTool: + filename: + type: string + attributes: + anyOf: + - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' + - type: 'null' + score: + type: number + format: float + OpenAI.Filters: + anyOf: + - $ref: '#/components/schemas/OpenAI.ComparisonFilter' + - $ref: '#/components/schemas/OpenAI.CompoundFilter' + OpenAI.FineTuneDPOHyperparameters: + type: object + properties: + beta: + anyOf: + - type: string + enum: + - auto + - type: number + description: The beta value for the DPO method. A higher beta value will increase the weight of the penalty between the policy and reference model. + batch_size: + anyOf: + - type: string + enum: + - auto + - type: integer + description: Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance. + default: auto + learning_rate_multiplier: + anyOf: + - type: string + enum: + - auto + - type: number + description: Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting. + n_epochs: + anyOf: + - type: string + enum: + - auto + - type: integer + description: The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset. + default: auto + description: The hyperparameters used for the DPO fine-tuning job. + OpenAI.FineTuneDPOMethod: + type: object + properties: + hyperparameters: + $ref: '#/components/schemas/OpenAI.FineTuneDPOHyperparameters' + description: Configuration for the DPO fine-tuning method. + OpenAI.FineTuneMethod: type: object required: - type - - container properties: type: type: string enum: - - code_interpreter - description: The type of the code interpreter tool. Always `code_interpreter`. - container: + - supervised + - dpo + - reinforcement + description: The type of method. Is either `supervised`, `dpo`, or `reinforcement`. + supervised: + $ref: '#/components/schemas/OpenAI.FineTuneSupervisedMethod' + dpo: + $ref: '#/components/schemas/OpenAI.FineTuneDPOMethod' + reinforcement: + $ref: '#/components/schemas/AzureFineTuneReinforcementMethod' + description: The method used for fine-tuning. + OpenAI.FineTuneReinforcementHyperparameters: + type: object + properties: + batch_size: anyOf: - type: string - - $ref: '#/components/schemas/OpenAI.CodeInterpreterToolAuto' - description: |- - The code interpreter container. Can be a container ID or an object that - specifies uploaded file IDs to make available to your code. - allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: A tool that runs Python code to help generate a response to a prompt. - OpenAI.CodeInterpreterToolAuto: + enum: + - auto + - type: integer + description: Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance. + default: auto + learning_rate_multiplier: + anyOf: + - type: string + enum: + - auto + - type: number + description: Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting. + n_epochs: + anyOf: + - type: string + enum: + - auto + - type: integer + description: The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset. + default: auto + reasoning_effort: + type: string + enum: + - default + - low + - medium + - high + description: Level of reasoning effort. + default: default + compute_multiplier: + anyOf: + - type: string + enum: + - auto + - type: number + description: Multiplier on amount of compute used for exploring search space during training. + eval_interval: + anyOf: + - type: string + enum: + - auto + - type: integer + description: The number of training steps between evaluation runs. + default: auto + eval_samples: + anyOf: + - type: string + enum: + - auto + - type: integer + description: Number of evaluation samples to generate per training step. + default: auto + description: The hyperparameters used for the reinforcement fine-tuning job. + OpenAI.FineTuneSupervisedHyperparameters: + type: object + properties: + batch_size: + anyOf: + - type: string + enum: + - auto + - type: integer + description: Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance. + default: auto + learning_rate_multiplier: + anyOf: + - type: string + enum: + - auto + - type: number + description: Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting. + n_epochs: + anyOf: + - type: string + enum: + - auto + - type: integer + description: The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset. + default: auto + description: The hyperparameters used for the fine-tuning job. + OpenAI.FineTuneSupervisedMethod: type: object - required: - - type properties: - type: - type: string - enum: - - auto - description: Always `auto`. - file_ids: - type: array - items: - type: string - description: An optional list of uploaded files to make available to your code. - description: |- - Configuration for a code interpreter container. Optionally specify the IDs - of the files to run the code on. - OpenAI.CodeInterpreterToolCallItemParam: + hyperparameters: + $ref: '#/components/schemas/OpenAI.FineTuneSupervisedHyperparameters' + description: Configuration for the supervised fine-tuning method. + OpenAI.FineTuningCheckpointPermission: type: object required: - - type - - container_id - - code - - outputs + - id + - created_at + - project_id + - object properties: - type: + id: type: string - enum: - - code_interpreter_call - container_id: + description: The permission identifier, which can be referenced in the API endpoints. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the permission was created. + project_id: type: string - description: The ID of the container used to run the code. - code: + description: The project identifier that the permission is for. + object: type: string - nullable: true - description: The code to run, or null if not available. - outputs: - type: array - items: - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutput' - nullable: true - description: |- - The outputs generated by the code interpreter, such as logs or images. - Can be null if no outputs are available. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A tool call to run code. - OpenAI.CodeInterpreterToolCallItemResource: + enum: + - checkpoint.permission + description: The object type, which is always "checkpoint.permission". + x-stainless-const: true + description: The `checkpoint.permission` object represents a permission for a fine-tuned model checkpoint. + title: FineTuningCheckpointPermission + x-oaiMeta: + name: The fine-tuned model checkpoint permission object + example: | + { + "object": "checkpoint.permission", + "id": "cp_zc4Q7MP6XxulcVzj4MZdwsAB", + "created_at": 1712211699, + "project_id": "proj_abGMw1llN8IrBb6SvvY5A1iH" + } + OpenAI.FineTuningIntegration: type: object required: - type - - status - - container_id - - code - - outputs + - wandb properties: type: type: string enum: - - code_interpreter_call - status: - type: string - enum: - - in_progress - - completed - - incomplete - - interpreting - - failed - container_id: - type: string - description: The ID of the container used to run the code. - code: - type: string - nullable: true - description: The code to run, or null if not available. - outputs: - type: array - items: - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutput' - nullable: true + - wandb + description: The type of the integration being enabled for the fine-tuning job + x-stainless-const: true + wandb: + allOf: + - $ref: '#/components/schemas/OpenAI.FineTuningIntegrationWandb' description: |- - The outputs generated by the code interpreter, such as logs or images. - Can be null if no outputs are available. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A tool call to run code. - OpenAI.ComparisonFilter: + The settings for your integration with Weights and Biases. This payload specifies the project that + metrics will be sent to. Optionally, you can set an explicit display name for your run, add tags + to your run, and set a default entity (team, username, etc) to be associated with your run. + title: Fine-Tuning Job Integration + OpenAI.FineTuningIntegrationWandb: type: object required: - - type - - key - - value + - project properties: - type: + project: type: string - enum: - - eq - - ne - - gt - - gte - - lt - - lte - description: |- - Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`. - - `eq`: equals - - `ne`: not equal - - `gt`: greater than - - `gte`: greater than or equal - - `lt`: less than - - `lte`: less than or equal - default: eq - key: - type: string - description: The key to compare against the value. - value: + name: anyOf: - type: string - - type: number - format: float - - type: boolean - description: The value to compare against the attribute key; supports string, number, or boolean types. - description: A filter used to compare a specified attribute key to a given value using a defined comparison operation. - OpenAI.CompletionUsage: + - type: 'null' + entity: + anyOf: + - type: string + - type: 'null' + tags: + type: array + items: + type: string + OpenAI.FineTuningJob: type: object required: - - completion_tokens - - prompt_tokens - - total_tokens + - id + - created_at + - error + - fine_tuned_model + - finished_at + - hyperparameters + - model + - object + - organization_id + - result_files + - status + - trained_tokens + - training_file + - validation_file + - seed properties: - completion_tokens: - type: integer - format: int32 - description: Number of tokens in the generated completion. - default: 0 - prompt_tokens: + id: + type: string + description: The object identifier, which can be referenced in the API endpoints. + created_at: type: integer - format: int32 - description: Number of tokens in the prompt. - default: 0 - total_tokens: + format: unixtime + description: The Unix timestamp (in seconds) for when the fine-tuning job was created. + error: + anyOf: + - $ref: '#/components/schemas/OpenAI.FineTuningJobError' + - type: 'null' + fine_tuned_model: + anyOf: + - type: string + - type: 'null' + finished_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: int32 - description: Total number of tokens used in the request (prompt + completion). - default: 0 - completion_tokens_details: - type: object - properties: - accepted_prediction_tokens: - type: integer - format: int32 - description: |- - When using Predicted Outputs, the number of tokens in the - prediction that appeared in the completion. - default: 0 - audio_tokens: - type: integer - format: int32 - description: Audio input tokens generated by the model. - default: 0 - reasoning_tokens: - type: integer - format: int32 - description: Tokens generated by the model for reasoning. - default: 0 - rejected_prediction_tokens: - type: integer - format: int32 - description: |- - When using Predicted Outputs, the number of tokens in the - prediction that did not appear in the completion. However, like - reasoning tokens, these tokens are still counted in the total - completion tokens for purposes of billing, output, and context window - limits. - default: 0 - description: Breakdown of tokens used in a completion. - prompt_tokens_details: - type: object - properties: - audio_tokens: - type: integer - format: int32 - description: Audio input tokens present in the prompt. - default: 0 - cached_tokens: - type: integer - format: int32 - description: Cached tokens present in the prompt. - default: 0 - description: Breakdown of tokens used in the prompt. - description: Usage statistics for the completion request. - OpenAI.CompoundFilter: - type: object - required: - - type - - filters - properties: - type: + format: unixTimestamp + hyperparameters: + allOf: + - $ref: '#/components/schemas/OpenAI.FineTuningJobHyperparameters' + description: The hyperparameters used for the fine-tuning job. This value will only be returned when running `supervised` jobs. + model: + type: string + description: The base model that is being fine-tuned. + object: type: string enum: - - and - - or - description: 'Type of operation: `and` or `or`.' - filters: + - fine_tuning.job + description: The object type, which is always "fine_tuning.job". + x-stainless-const: true + organization_id: + type: string + description: The organization that owns the fine-tuning job. + result_files: type: array items: - anyOf: - - $ref: '#/components/schemas/OpenAI.ComparisonFilter' - - $ref: '#/components/schemas/OpenAI.CompoundFilter' - description: Array of filters to combine. Items can be `ComparisonFilter` or `CompoundFilter`. - description: Combine multiple filters using `and` or `or`. - OpenAI.ComputerAction: - type: object - required: - - type - properties: - type: - $ref: '#/components/schemas/OpenAI.ComputerActionType' - discriminator: - propertyName: type - mapping: - click: '#/components/schemas/OpenAI.ComputerActionClick' - double_click: '#/components/schemas/OpenAI.ComputerActionDoubleClick' - drag: '#/components/schemas/OpenAI.ComputerActionDrag' - move: '#/components/schemas/OpenAI.ComputerActionMove' - screenshot: '#/components/schemas/OpenAI.ComputerActionScreenshot' - scroll: '#/components/schemas/OpenAI.ComputerActionScroll' - type: '#/components/schemas/OpenAI.ComputerActionTypeKeys' - wait: '#/components/schemas/OpenAI.ComputerActionWait' - keypress: '#/components/schemas/OpenAI.ComputerActionKeyPress' - OpenAI.ComputerActionClick: - type: object - required: - - type - - button - - x - - 'y' - properties: - type: + type: string + description: The compiled results file ID(s) for the fine-tuning job. You can retrieve the results with the [Files API](https://platform.openai.com/docs/api-reference/files/retrieve-contents). + status: type: string enum: - - click - description: |- - Specifies the event type. For a click action, this property is - always set to `click`. - button: + - validating_files + - queued + - running + - succeeded + - failed + - cancelled + description: The current status of the fine-tuning job, which can be either `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`. + trained_tokens: + anyOf: + - type: integer + - type: 'null' + training_file: type: string - enum: - - left - - right - - wheel - - back - - forward - description: Indicates which mouse button was pressed during the click. One of `left`, `right`, `wheel`, `back`, or `forward`. - x: + description: The file ID used for training. You can retrieve the training data with the [Files API](https://platform.openai.com/docs/api-reference/files/retrieve-contents). + validation_file: + anyOf: + - type: string + - type: 'null' + integrations: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.FineTuningIntegration' + - type: 'null' + seed: type: integer - format: int32 - description: The x-coordinate where the click occurred. - 'y': + description: The seed used for the fine-tuning job. + estimated_finish: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: int32 - description: The y-coordinate where the click occurred. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A click action. - OpenAI.ComputerActionDoubleClick: + format: unixTimestamp + method: + $ref: '#/components/schemas/OpenAI.FineTuneMethod' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + description: The `fine_tuning.job` object represents a fine-tuning job that has been created through the API. + title: FineTuningJob + x-oaiMeta: + name: The fine-tuning job object + example: | + { + "object": "fine_tuning.job", + "id": "ftjob-abc123", + "model": "davinci-002", + "created_at": 1692661014, + "finished_at": 1692661190, + "fine_tuned_model": "ft:davinci-002:my-org:custom_suffix:7q8mpxmy", + "organization_id": "org-123", + "result_files": [ + "file-abc123" + ], + "status": "succeeded", + "validation_file": null, + "training_file": "file-abc123", + "hyperparameters": { + "n_epochs": 4, + "batch_size": 1, + "learning_rate_multiplier": 1.0 + }, + "trained_tokens": 5768, + "integrations": [], + "seed": 0, + "estimated_finish": 0, + "method": { + "type": "supervised", + "supervised": { + "hyperparameters": { + "n_epochs": 4, + "batch_size": 1, + "learning_rate_multiplier": 1.0 + } + } + }, + "metadata": { + "key": "value" + } + } + OpenAI.FineTuningJobCheckpoint: type: object required: - - type - - x - - 'y' + - id + - created_at + - fine_tuned_model_checkpoint + - step_number + - metrics + - fine_tuning_job_id + - object properties: - type: + id: type: string - enum: - - double_click - description: |- - Specifies the event type. For a double click action, this property is - always set to `double_click`. - x: + description: The checkpoint identifier, which can be referenced in the API endpoints. + created_at: type: integer - format: int32 - description: The x-coordinate where the double click occurred. - 'y': + format: unixtime + description: The Unix timestamp (in seconds) for when the checkpoint was created. + fine_tuned_model_checkpoint: + type: string + description: The name of the fine-tuned checkpoint model that is created. + step_number: type: integer - format: int32 - description: The y-coordinate where the double click occurred. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A double click action. - OpenAI.ComputerActionDrag: - type: object - required: - - type - - path - properties: - type: + description: The step number that the checkpoint was created at. + metrics: + allOf: + - $ref: '#/components/schemas/OpenAI.FineTuningJobCheckpointMetrics' + description: Metrics at the step number during the fine-tuning job. + fine_tuning_job_id: + type: string + description: The name of the fine-tuning job that this checkpoint was created from. + object: type: string enum: - - drag - description: |- - Specifies the event type. For a drag action, this property is - always set to `drag`. - path: - type: array - items: - $ref: '#/components/schemas/OpenAI.Coordinate' - description: |- - An array of coordinates representing the path of the drag action. Coordinates will appear as an array - of objects, eg - ``` - [ - { x: 100, y: 200 }, - { x: 200, y: 300 } - ] - ``` - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A drag action. - OpenAI.ComputerActionKeyPress: + - fine_tuning.job.checkpoint + description: The object type, which is always "fine_tuning.job.checkpoint". + x-stainless-const: true + description: The `fine_tuning.job.checkpoint` object represents a model checkpoint for a fine-tuning job that is ready to use. + title: FineTuningJobCheckpoint + x-oaiMeta: + name: The fine-tuning job checkpoint object + example: | + { + "object": "fine_tuning.job.checkpoint", + "id": "ftckpt_qtZ5Gyk4BLq1SfLFWp3RtO3P", + "created_at": 1712211699, + "fine_tuned_model_checkpoint": "ft:gpt-4o-mini-2024-07-18:my-org:custom_suffix:9ABel2dg:ckpt-step-88", + "fine_tuning_job_id": "ftjob-fpbNQ3H1GrMehXRf8cO97xTN", + "metrics": { + "step": 88, + "train_loss": 0.478, + "train_mean_token_accuracy": 0.924, + "valid_loss": 10.112, + "valid_mean_token_accuracy": 0.145, + "full_valid_loss": 0.567, + "full_valid_mean_token_accuracy": 0.944 + }, + "step_number": 88 + } + OpenAI.FineTuningJobCheckpointMetrics: + type: object + properties: + step: + type: number + train_loss: + type: number + train_mean_token_accuracy: + type: number + valid_loss: + type: number + valid_mean_token_accuracy: + type: number + full_valid_loss: + type: number + full_valid_mean_token_accuracy: + type: number + OpenAI.FineTuningJobError: type: object required: - - type - - keys + - code + - message + - param properties: - type: + code: type: string - enum: - - keypress - description: |- - Specifies the event type. For a keypress action, this property is - always set to `keypress`. - keys: - type: array - items: - type: string - description: |- - The combination of keys the model is requesting to be pressed. This is an - array of strings, each representing a key. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A collection of keypresses the model would like to perform. - OpenAI.ComputerActionMove: + message: + type: string + param: + anyOf: + - type: string + - type: 'null' + OpenAI.FineTuningJobEvent: type: object required: - - type - - x - - 'y' + - object + - id + - created_at + - level + - message properties: - type: + object: type: string enum: - - move - description: |- - Specifies the event type. For a move action, this property is - always set to `move`. - x: - type: integer - format: int32 - description: The x-coordinate to move to. - 'y': + - fine_tuning.job.event + description: The object type, which is always "fine_tuning.job.event". + x-stainless-const: true + id: + type: string + description: The object identifier. + created_at: type: integer - format: int32 - description: The y-coordinate to move to. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A mouse move action. - OpenAI.ComputerActionScreenshot: - type: object - required: - - type - properties: + format: unixtime + description: The Unix timestamp (in seconds) for when the fine-tuning job was created. + level: + type: string + enum: + - info + - warn + - error + description: The log level of the event. + message: + type: string + description: The message of the event. type: type: string enum: - - screenshot - description: |- - Specifies the event type. For a screenshot action, this property is - always set to `screenshot`. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A screenshot action. - OpenAI.ComputerActionScroll: + - message + - metrics + description: The type of event. + data: + allOf: + - $ref: '#/components/schemas/OpenAI.FineTuningJobEventData' + description: The data associated with the event. + description: Fine-tuning job event object + x-oaiMeta: + name: The fine-tuning job event object + example: | + { + "object": "fine_tuning.job.event", + "id": "ftevent-abc123" + "created_at": 1677610602, + "level": "info", + "message": "Created fine-tuning job", + "data": {}, + "type": "message" + } + OpenAI.FineTuningJobEventData: + type: object + OpenAI.FineTuningJobHyperparameters: + type: object + properties: + batch_size: + anyOf: + - type: string + enum: + - auto + - type: integer + - type: 'null' + default: auto + learning_rate_multiplier: + anyOf: + - type: string + enum: + - auto + - type: number + n_epochs: + anyOf: + - type: string + enum: + - auto + - type: integer + default: auto + OpenAI.FunctionAndCustomToolCallOutput: type: object required: - type - - x - - 'y' - - scroll_x - - scroll_y properties: type: - type: string + $ref: '#/components/schemas/OpenAI.FunctionAndCustomToolCallOutputType' + discriminator: + propertyName: type + OpenAI.FunctionAndCustomToolCallOutputType: + anyOf: + - type: string + - type: string enum: - - scroll - description: |- - Specifies the event type. For a scroll action, this property is - always set to `scroll`. - x: - type: integer - format: int32 - description: The x-coordinate where the scroll occurred. - 'y': - type: integer - format: int32 - description: The y-coordinate where the scroll occurred. - scroll_x: - type: integer - format: int32 - description: The horizontal scroll distance. - scroll_y: - type: integer - format: int32 - description: The vertical scroll distance. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A scroll action. - OpenAI.ComputerActionType: - type: string - enum: - - screenshot - - click - - double_click - - scroll - - type - - wait - - keypress - - drag - - move - OpenAI.ComputerActionTypeKeys: + - input_text + - input_image + - input_file + OpenAI.FunctionObject: type: object required: - - type - - text + - name properties: - type: + description: type: string - enum: - - type - description: |- - Specifies the event type. For a type action, this property is - always set to `type`. - text: + description: A description of what the function does, used by the model to choose when and how to call the function. + name: type: string - description: The text to type. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: An action to type in text. - OpenAI.ComputerActionWait: + description: The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. + parameters: + $ref: '#/components/schemas/OpenAI.FunctionParameters' + strict: + anyOf: + - type: boolean + - type: 'null' + OpenAI.FunctionParameters: + type: object + description: |- + The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. + + Omitting `parameters` defines a function with an empty parameter list. + OpenAI.FunctionShellAction: type: object required: - - type + - commands + - timeout_ms + - max_output_length properties: - type: - type: string - enum: - - wait - description: |- - Specifies the event type. For a wait action, this property is - always set to `wait`. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A wait action. - OpenAI.ComputerToolCallItemParam: + commands: + type: array + items: + type: string + timeout_ms: + anyOf: + - type: integer + - type: 'null' + max_output_length: + anyOf: + - type: integer + - type: 'null' + description: Execute a shell command. + title: Shell exec action + OpenAI.FunctionShellCall: type: object required: - type + - id - call_id - action - - pending_safety_checks + - status properties: type: type: string enum: - - computer_call + - shell_call + description: The type of the item. Always `shell_call`. + x-stainless-const: true + default: shell_call + id: + type: string + description: The unique ID of the shell tool call. Populated when this item is returned via API. call_id: type: string - description: An identifier used when responding to the tool call with output. + description: The unique ID of the shell tool call generated by the model. action: - $ref: '#/components/schemas/OpenAI.ComputerAction' - pending_safety_checks: - type: array - items: - $ref: '#/components/schemas/OpenAI.ComputerToolCallSafetyCheck' - description: The pending safety checks for the computer call. + allOf: + - $ref: '#/components/schemas/OpenAI.FunctionShellAction' + description: The shell commands and limits that describe how to run the tool call. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.LocalShellCallStatus' + description: The status of the shell call. One of `in_progress`, `completed`, or `incomplete`. + created_by: + type: string + description: The ID of the entity that created this tool call. allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A tool call to a computer use tool. See the - [computer use guide](/docs/guides/tools-computer-use) for more information. - OpenAI.ComputerToolCallItemResource: + - $ref: '#/components/schemas/OpenAI.ItemResource' + description: A tool call that executes one or more shell commands in a managed environment. + title: Shell tool call + OpenAI.FunctionShellCallOutput: type: object required: - type - - status + - id - call_id - - action - - pending_safety_checks + - output + - max_output_length properties: type: type: string enum: - - computer_call - status: + - shell_call_output + description: The type of the shell call output. Always `shell_call_output`. + x-stainless-const: true + default: shell_call_output + id: type: string - enum: - - in_progress - - completed - - incomplete - description: |- - The status of the item. One of `in_progress`, `completed`, or - `incomplete`. Populated when items are returned via API. + description: The unique ID of the shell call output. Populated when this item is returned via API. call_id: type: string - description: An identifier used when responding to the tool call with output. - action: - $ref: '#/components/schemas/OpenAI.ComputerAction' - pending_safety_checks: + description: The unique ID of the shell tool call generated by the model. + output: type: array items: - $ref: '#/components/schemas/OpenAI.ComputerToolCallSafetyCheck' - description: The pending safety checks for the computer call. + $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputContent' + description: An array of shell call output contents + max_output_length: + anyOf: + - type: integer + - type: 'null' + created_by: + type: string allOf: - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A tool call to a computer use tool. See the - [computer use guide](/docs/guides/tools-computer-use) for more information. - OpenAI.ComputerToolCallOutputItemOutput: + description: The output of a shell tool call. + title: Shell call output + OpenAI.FunctionShellCallOutputContent: type: object required: - - type + - stdout + - stderr + - outcome properties: - type: - $ref: '#/components/schemas/OpenAI.ComputerToolCallOutputItemOutputType' - discriminator: - propertyName: type - mapping: - computer_screenshot: '#/components/schemas/OpenAI.ComputerToolCallOutputItemOutputComputerScreenshot' - OpenAI.ComputerToolCallOutputItemOutputComputerScreenshot: + stdout: + type: string + stderr: + type: string + outcome: + allOf: + - $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputOutcome' + description: Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk. + created_by: + type: string + description: The content of a shell call output. + title: Shell call output content + OpenAI.FunctionShellCallOutputExitOutcome: type: object required: - type + - exit_code properties: type: type: string enum: - - computer_screenshot - image_url: - type: string - file_id: - type: string + - exit + description: The outcome type. Always `exit`. + x-stainless-const: true + default: exit + exit_code: + type: integer + description: Exit code from the shell process. allOf: - - $ref: '#/components/schemas/OpenAI.ComputerToolCallOutputItemOutput' - OpenAI.ComputerToolCallOutputItemOutputType: + - $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputOutcome' + description: Indicates that the shell commands finished and returned an exit code. + title: Shell call exit outcome + OpenAI.FunctionShellCallOutputOutcome: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputOutcomeType' + discriminator: + propertyName: type + mapping: + timeout: '#/components/schemas/OpenAI.FunctionShellCallOutputTimeoutOutcome' + exit: '#/components/schemas/OpenAI.FunctionShellCallOutputExitOutcome' + description: Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk. + title: Shell call outcome + OpenAI.FunctionShellCallOutputOutcomeType: anyOf: - type: string - type: string enum: - - computer_screenshot - description: A computer screenshot image used with the computer use tool. - OpenAI.ComputerToolCallOutputItemParam: + - timeout + - exit + OpenAI.FunctionShellCallOutputTimeoutOutcome: type: object required: - type - - call_id - - output properties: type: type: string enum: - - computer_call_output - call_id: - type: string - description: The ID of the computer tool call that produced the output. - acknowledged_safety_checks: - type: array - items: - $ref: '#/components/schemas/OpenAI.ComputerToolCallSafetyCheck' - description: |- - The safety checks reported by the API that have been acknowledged by the - developer. - output: - $ref: '#/components/schemas/OpenAI.ComputerToolCallOutputItemOutput' + - timeout + description: The outcome type. Always `timeout`. + x-stainless-const: true + default: timeout allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - The output of a computer tool call. - OpenAI.ComputerToolCallOutputItemResource: + - $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputOutcome' + description: Indicates that the shell call exceeded its configured time limit. + title: Shell call timeout outcome + OpenAI.FunctionShellToolParam: type: object required: - type - - status - - call_id - - output properties: type: type: string enum: - - computer_call_output - status: - type: string - enum: - - in_progress - - completed - - incomplete - description: |- - The status of the item. One of `in_progress`, `completed`, or - `incomplete`. Populated when items are returned via API. - call_id: - type: string - description: The ID of the computer tool call that produced the output. - acknowledged_safety_checks: - type: array - items: - $ref: '#/components/schemas/OpenAI.ComputerToolCallSafetyCheck' - description: |- - The safety checks reported by the API that have been acknowledged by the - developer. - output: - $ref: '#/components/schemas/OpenAI.ComputerToolCallOutputItemOutput' + - shell + description: The type of the shell tool. Always `shell`. + x-stainless-const: true + default: shell allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - The output of a computer tool call. - OpenAI.ComputerToolCallSafetyCheck: - type: object - required: - - id - - code - - message - properties: - id: - type: string - description: The ID of the pending safety check. - code: - type: string - description: The type of the pending safety check. - message: - type: string - description: Details about the pending safety check. - description: A pending safety check for the computer call. - OpenAI.ComputerUsePreviewTool: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A tool that allows the model to execute shell commands. + title: Shell tool + OpenAI.FunctionTool: type: object required: - type - - environment - - display_width - - display_height + - name + - parameters + - strict properties: type: type: string enum: - - computer_use_preview - description: The type of the computer use tool. Always `computer_use_preview`. - environment: + - function + description: The type of the function tool. Always `function`. + x-stainless-const: true + default: function + name: type: string - enum: - - windows - - mac - - linux - - ubuntu - - browser - description: The type of computer environment to control. - display_width: - type: integer - format: int32 - description: The width of the computer display. - display_height: - type: integer - format: int32 - description: The height of the computer display. + description: The name of the function to call. + description: + anyOf: + - type: string + - type: 'null' + parameters: + anyOf: + - type: object + unevaluatedProperties: {} + - type: 'null' + strict: + anyOf: + - type: boolean + - type: 'null' allOf: - $ref: '#/components/schemas/OpenAI.Tool' - description: A tool that controls a virtual computer. Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use). - OpenAI.ContainerFileListResource: + description: Defines a function in your own code the model can choose to call. Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling). + title: Function + OpenAI.FunctionToolCallOutputResource: type: object required: - - object - - data - - first_id - - last_id - - has_more + - type + - call_id + - output properties: - object: + id: + type: string + description: |- + The unique ID of the function tool call output. Populated when this item + is returned via API. + type: type: string enum: - - list - description: The type of object returned, must be 'list'. - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.ContainerFileResource' - description: A list of container files. - first_id: + - function_call_output + description: The type of the function tool call output. Always `function_call_output`. + x-stainless-const: true + call_id: type: string - description: The ID of the first file in the list. - last_id: + description: The unique ID of the function tool call generated by the model. + output: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.FunctionAndCustomToolCallOutput' + description: |- + The output from the function call generated by your code. + Can be a string or an list of output content. + status: type: string - description: The ID of the last file in the list. - has_more: - type: boolean - description: Whether there are more files available. - OpenAI.ContainerFileResource: + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.FunctionToolCallResource: type: object required: - - id - - object - - container_id - - created_at - - bytes - - path - - source + - type + - call_id + - name + - arguments properties: id: type: string - description: Unique identifier for the file. - object: + description: The unique ID of the function tool call. + type: type: string - description: The type of this object (`container.file`). - container_id: + enum: + - function_call + description: The type of the function tool call. Always `function_call`. + x-stainless-const: true + call_id: type: string - description: The container this file belongs to. - created_at: - type: integer - format: unixtime - description: Unix timestamp (in seconds) when the file was created. - bytes: - type: integer - format: int32 - description: Size of the file in bytes. - path: + description: The unique ID of the function tool call generated by the model. + name: type: string - description: Path of the file in the container. - source: + description: The name of the function to run. + arguments: type: string - description: Source of the file (e.g., `user`, `assistant`). - OpenAI.ContainerListResource: + description: A JSON string of the arguments to pass to the function. + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.GraderMulti: type: object required: - - object - - data - - first_id - - last_id - - has_more + - type + - name + - graders + - calculate_output properties: - object: + type: type: string enum: - - list - description: The type of object returned, must be 'list'. - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.ContainerResource' - description: A list of containers. - first_id: + - multi + description: The object type, which is always `multi`. + x-stainless-const: true + default: multi + name: type: string - description: The ID of the first container in the list. - last_id: + description: The name of the grader. + graders: + anyOf: + - $ref: '#/components/schemas/OpenAI.GraderStringCheck' + - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' + - $ref: '#/components/schemas/OpenAI.GraderScoreModel' + - $ref: '#/components/schemas/GraderEndpoint' + calculate_output: type: string - description: The ID of the last container in the list. - has_more: - type: boolean - description: Whether there are more containers available. - OpenAI.ContainerResource: + description: A formula to calculate the output based on grader results. + description: A MultiGrader object combines the output of multiple graders to produce a single score. + title: MultiGrader + x-oaiMeta: + name: Multi Grader + group: graders + example: | + { + "type": "multi", + "name": "example multi grader", + "graders": [ + { + "type": "text_similarity", + "name": "example text similarity grader", + "input": "The graded text", + "reference": "The reference text", + "evaluation_metric": "fuzzy_match" + }, + { + "type": "string_check", + "name": "Example string check grader", + "input": "{{sample.output_text}}", + "reference": "{{item.label}}", + "operation": "eq" + } + ], + "calculate_output": "0.5 * text_similarity_score + 0.5 * string_check_score)" + } + OpenAI.GraderPython: type: object required: - - id - - object + - type - name - - created_at - - status + - source properties: - id: - type: string - description: Unique identifier for the container. - object: + type: type: string - description: The type of this object. + enum: + - python + description: The object type, which is always `python`. + x-stainless-const: true name: type: string - description: Name of the container. - created_at: - type: integer - format: unixtime - description: Unix timestamp (in seconds) when the container was created. - status: + description: The name of the grader. + source: type: string - description: Status of the container (e.g., active, deleted). - expires_after: - type: object - properties: - anchor: - type: string - enum: - - last_active_at - description: The reference point for the expiration. - minutes: - type: integer - format: int32 - description: The number of minutes after the anchor before the container expires. - description: |- - The container will expire after this time period. - The anchor is the reference point for the expiration. - The minutes is the number of minutes after the anchor before the container expires. - OpenAI.Coordinate: - type: object - required: - - x - - 'y' - properties: - x: - type: integer - format: int32 - description: The x-coordinate. - 'y': - type: integer - format: int32 - description: The y-coordinate. - description: 'An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`.' - OpenAI.CreateContainerBody: + description: The source code of the python script. + image_tag: + type: string + description: The image tag to use for the python script. + description: A PythonGrader object that runs a python script on the input. + title: PythonGrader + x-oaiMeta: + name: Python Grader + group: graders + example: | + { + "type": "python", + "name": "Example python grader", + "image_tag": "2025-05-08", + "source": """ + def grade(sample: dict, item: dict) -> float: + \""" + Returns 1.0 if `output_text` equals `label`, otherwise 0.0. + \""" + output = sample.get("output_text") + label = item.get("label") + return 1.0 if output == label else 0.0 + """, + } + OpenAI.GraderScoreModel: type: object required: + - type - name + - model + - input properties: + type: + type: string + enum: + - score_model + description: The object type, which is always `score_model`. + x-stainless-const: true name: type: string - description: Name of the container to create. - file_ids: + description: The name of the grader. + model: + type: string + description: The model to use for the evaluation. + sampling_params: + allOf: + - $ref: '#/components/schemas/OpenAI.EvalGraderScoreModelSamplingParams' + description: The sampling parameters for the model. + input: type: array items: - type: string - description: IDs of files to copy to the container. - expires_after: - type: object - properties: - anchor: - type: string - enum: - - last_active_at - description: Time anchor for the expiration time. Currently only 'last_active_at' is supported. - minutes: - type: integer - format: int32 - required: - - anchor - - minutes - description: Container expiration time in seconds relative to the 'anchor' time. - OpenAI.CreateContainerFileBodyMultiPart: + $ref: '#/components/schemas/OpenAI.EvalItem' + description: The input text. This may include template strings. + range: + type: array + items: + type: number + description: The range of the score. Defaults to `[0, 1]`. + description: A ScoreModelGrader object that uses a model to assign a score to the input. + title: ScoreModelGrader + x-oaiMeta: + name: Score Model Grader + group: graders + example: | + { + "type": "score_model", + "name": "Example score model grader", + "input": [ + { + "role": "user", + "content": ( + "Score how close the reference answer is to the model answer. Score 1.0 if they are the same and 0.0 if they are different." + " Return just a floating point score\n\n" + " Reference answer: {{item.label}}\n\n" + " Model answer: {{sample.output_text}}" + ), + } + ], + "model": "o4-mini-2025-04-16", + "sampling_params": { + "temperature": 1, + "top_p": 1, + "seed": 42, + "max_completions_tokens": 32768, + "reasoning_effort": "medium" + }, + } + OpenAI.GraderStringCheck: type: object + required: + - type + - name + - input + - reference + - operation properties: - file_id: + type: type: string - description: Name of the file to create. - file: + enum: + - string_check + description: The object type, which is always `string_check`. + x-stainless-const: true + name: type: string - format: binary - OpenAI.CreateEmbeddingResponse: - type: object - required: - - data - - model - - object - - usage - properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.Embedding' - description: The list of embeddings generated by the model. - model: + description: The name of the grader. + input: type: string - description: The name of the model used to generate the embedding. - object: + description: The input text. This may include template strings. + reference: + type: string + description: The reference text. This may include template strings. + operation: type: string enum: - - list - description: The object type, which is always "list". - usage: - type: object - properties: - prompt_tokens: - type: integer - format: int32 - description: The number of tokens used by the prompt. - total_tokens: - type: integer - format: int32 - description: The total number of tokens used by the request. - required: - - prompt_tokens - - total_tokens - description: The usage information for the request. - OpenAI.CreateEvalItem: - anyOf: - - type: object - properties: - role: - type: string - description: The role of the message (e.g. "system", "assistant", "user"). - content: - type: string - description: The content of the message. - required: - - role - - content - - $ref: '#/components/schemas/OpenAI.EvalItem' - description: A chat message that makes up the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}. - OpenAI.CreateEvalRunRequest: + - eq + - ne + - like + - ilike + description: The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`. + description: A StringCheckGrader object that performs a string comparison between input and reference using a specified operation. + title: StringCheckGrader + x-oaiMeta: + name: String Check Grader + group: graders + example: | + { + "type": "string_check", + "name": "Example string check grader", + "input": "{{sample.output_text}}", + "reference": "{{item.label}}", + "operation": "eq" + } + OpenAI.GraderTextSimilarity: type: object required: - - data_source + - type + - name + - input + - reference + - evaluation_metric properties: + type: + type: string + enum: + - text_similarity + description: The type of grader. + x-stainless-const: true + default: text_similarity name: type: string - description: The name of the run. - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - data_source: - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceParams' - description: Details about the run's data source. - OpenAI.CreateFineTuningJobRequest: - type: object - required: - - model - - training_file - properties: - model: - anyOf: - - type: string - - type: string - enum: - - babbage-002 - - davinci-002 - - gpt-3.5-turbo - - gpt-4o-mini - description: |- - The name of the model to fine-tune. You can select one of the - [supported models](/docs/guides/fine-tuning#which-models-can-be-fine-tuned). - x-oaiTypeLabel: string - training_file: + description: The name of the grader. + input: type: string - description: |- - The ID of an uploaded file that contains training data. - - See [upload file](/docs/api-reference/files/create) for how to upload a file. - - Your dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose `fine-tune`. - - The contents of the file should differ depending on if the model uses the [chat](/docs/api-reference/fine-tuning/chat-input), [completions](/docs/api-reference/fine-tuning/completions-input) format, or if the fine-tuning method uses the [preference](/docs/api-reference/fine-tuning/preference-input) format. - - See the [fine-tuning guide](/docs/guides/model-optimization) for more details. - hyperparameters: - type: object - properties: - batch_size: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: |- - Number of examples in each batch. A larger batch size means that model parameters - are updated less frequently, but with lower variance. - default: auto - learning_rate_multiplier: - anyOf: - - type: string - enum: - - auto - - type: number - format: float - description: |- - Scaling factor for the learning rate. A smaller learning rate may be useful to avoid - overfitting. - default: auto - n_epochs: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: |- - The number of epochs to train the model for. An epoch refers to one full cycle - through the training dataset. - default: auto - description: |- - The hyperparameters used for the fine-tuning job. - This value is now deprecated in favor of `method`, and should be passed in under the `method` parameter. - deprecated: true - suffix: + description: The text being graded. + reference: type: string - nullable: true - minLength: 1 - maxLength: 64 - description: |- - A string of up to 64 characters that will be added to your fine-tuned model name. - - For example, a `suffix` of "custom-model-name" would produce a model name like `ft:gpt-4o-mini:openai:custom-model-name:7p4lURel`. - default: null - validation_file: + description: The text being graded against. + evaluation_metric: type: string - nullable: true - description: |- - The ID of an uploaded file that contains validation data. - - If you provide this file, the data is used to generate validation - metrics periodically during fine-tuning. These metrics can be viewed in - the fine-tuning results file. - The same data should not be present in both train and validation files. - - Your dataset must be formatted as a JSONL file. You must upload your file with the purpose `fine-tune`. - - See the [fine-tuning guide](/docs/guides/model-optimization) for more details. - integrations: - type: array - items: - $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegration' - nullable: true - description: A list of integrations to enable for your fine-tuning job. - seed: - type: integer - format: int32 - nullable: true - minimum: 0 - maximum: 2147483647 - description: |- - The seed controls the reproducibility of the job. Passing in the same seed and job parameters should produce the same results, but may differ in rare cases. - If a seed is not specified, one will be generated for you. - method: - $ref: '#/components/schemas/OpenAI.FineTuneMethod' - metadata: - type: object - additionalProperties: - type: string + enum: + - cosine + - fuzzy_match + - bleu + - gleu + - meteor + - rouge_1 + - rouge_2 + - rouge_3 + - rouge_4 + - rouge_5 + - rouge_l description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - OpenAI.CreateFineTuningJobRequestIntegration: + The evaluation metric to use. One of `cosine`, `fuzzy_match`, `bleu`, + `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, + or `rouge_l`. + description: A TextSimilarityGrader object which grades text based on similarity metrics. + title: TextSimilarityGrader + x-oaiMeta: + name: Text Similarity Grader + group: graders + example: | + { + "type": "text_similarity", + "name": "Example text similarity grader", + "input": "{{sample.output_text}}", + "reference": "{{item.label}}", + "evaluation_metric": "fuzzy_match" + } + OpenAI.GrammarSyntax1: + type: string + enum: + - lark + - regex + OpenAI.HybridSearchOptions: type: object required: - - type + - embedding_weight + - text_weight properties: - type: - anyOf: - - type: string - - type: string - enum: - - wandb - discriminator: - propertyName: type - mapping: - wandb: '#/components/schemas/OpenAI.CreateFineTuningJobRequestWandbIntegration' - OpenAI.CreateFineTuningJobRequestWandbIntegration: + embedding_weight: + type: number + description: The weight of the embedding in the reciprocal ranking fusion. + text_weight: + type: number + description: The weight of the text in the reciprocal ranking fusion. + OpenAI.Image: type: object required: - - type - - wandb + - prompt_filter_results + - content_filter_results properties: - type: + b64_json: type: string - enum: - - wandb - wandb: - type: object - properties: - project: - type: string - name: - type: string - nullable: true - entity: - type: string - nullable: true - tags: - type: array - items: - type: string - required: - - project - allOf: - - $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegration' - OpenAI.CreateVectorStoreFileBatchRequest: + contentEncoding: base64 + description: The base64-encoded JSON of the generated image. Default value for `gpt-image-1`, and only present if `response_format` is set to `b64_json` for `dall-e-2` and `dall-e-3`. + url: + type: string + description: When using `dall-e-2` or `dall-e-3`, the URL of the generated image if `response_format` is set to `url` (default value). Unsupported for `gpt-image-1`. + revised_prompt: + type: string + description: For `dall-e-3` only, the revised prompt that was used to generate the image. + prompt_filter_results: + $ref: '#/components/schemas/AzureContentFilterImagePromptResults' + content_filter_results: + $ref: '#/components/schemas/AzureContentFilterImageResponseResults' + description: Represents the content or the URL of an image generated by the OpenAI API. + OpenAI.ImageDetail: + type: string + enum: + - low + - high + - auto + OpenAI.ImageGenInputUsageDetails: type: object required: - - file_ids + - text_tokens + - image_tokens properties: - file_ids: - type: array - items: - type: string - minItems: 1 - maxItems: 500 - description: A list of [File](/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files. - chunking_strategy: - $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' - attributes: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' - nullable: true - OpenAI.CreateVectorStoreFileRequest: + text_tokens: + type: integer + description: The number of text tokens in the input prompt. + image_tokens: + type: integer + description: The number of image tokens in the input prompt. + description: The input tokens detailed information for the image generation. + title: Input usage details + OpenAI.ImageGenTool: type: object required: - - file_id + - type properties: - file_id: + type: type: string - description: A [File](/docs/api-reference/files) ID that the vector store should use. Useful for tools like `file_search` that can access files. - chunking_strategy: - $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' - attributes: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' - nullable: true - OpenAI.CreateVectorStoreRequest: - type: object - properties: - file_ids: - type: array - items: - type: string - maxItems: 500 - description: A list of [File](/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files. - name: + enum: + - image_generation + description: The type of the image generation tool. Always `image_generation`. + x-stainless-const: true + default: image_generation + model: type: string - description: The name of the vector store. - expires_after: - $ref: '#/components/schemas/OpenAI.VectorStoreExpirationAfter' - chunking_strategy: + enum: + - gpt-image-1 + - gpt-image-1-mini + description: 'The image generation model to use. Default: `gpt-image-1`.' + default: gpt-image-1 + quality: + type: string + enum: + - low + - medium + - high + - auto + description: |- + The quality of the generated image. One of `low`, `medium`, `high`, + or `auto`. Default: `auto`. + default: auto + size: + type: string + enum: + - 1024x1024 + - 1024x1536 + - 1536x1024 + - auto + description: |- + The size of the generated image. One of `1024x1024`, `1024x1536`, + `1536x1024`, or `auto`. Default: `auto`. + default: auto + output_format: + type: string + enum: + - png + - webp + - jpeg + description: |- + The output format of the generated image. One of `png`, `webp`, or + `jpeg`. Default: `png`. + default: png + output_compression: + type: integer + minimum: 0 + maximum: 100 + description: 'Compression level for the output image. Default: 100.' + default: 100 + moderation: + type: string + enum: + - auto + - low + description: 'Moderation level for the generated image. Default: `auto`.' + default: auto + background: + type: string + enum: + - transparent + - opaque + - auto + description: |- + Background type for the generated image. One of `transparent`, + `opaque`, or `auto`. Default: `auto`. + default: auto + input_fidelity: anyOf: - - $ref: '#/components/schemas/OpenAI.AutoChunkingStrategyRequestParam' - - $ref: '#/components/schemas/OpenAI.StaticChunkingStrategyRequestParam' - description: The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. Only applicable if `file_ids` is non-empty. - metadata: - type: object - additionalProperties: - type: string + - $ref: '#/components/schemas/OpenAI.InputFidelity' + - type: 'null' + input_image_mask: + allOf: + - $ref: '#/components/schemas/OpenAI.ImageGenToolInputImageMask' description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - OpenAI.DeleteFileResponse: + Optional mask for inpainting. Contains `image_url` + (string, optional) and `file_id` (string, optional). + partial_images: + type: integer + minimum: 0 + maximum: 3 + description: Number of partial images to generate in streaming mode, from 0 (default value) to 3. + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A tool that generates images using a model like `gpt-image-1`. + title: Image generation tool + OpenAI.ImageGenToolInputImageMask: type: object - required: - - id - - object - - deleted properties: - id: + image_url: type: string - object: + file_id: type: string - enum: - - file - deleted: - type: boolean - OpenAI.DeleteVectorStoreFileResponse: + OpenAI.ImageGenUsage: type: object required: - - id - - deleted - - object + - input_tokens + - total_tokens + - output_tokens + - input_tokens_details properties: - id: - type: string - deleted: - type: boolean - object: - type: string - enum: - - vector_store.file.deleted - OpenAI.DeleteVectorStoreResponse: + input_tokens: + type: integer + description: The number of tokens (images and text) in the input prompt. + total_tokens: + type: integer + description: The total number of tokens (images and text) used for the image generation. + output_tokens: + type: integer + description: The number of output tokens generated by the model. + input_tokens_details: + $ref: '#/components/schemas/OpenAI.ImageGenInputUsageDetails' + description: For `gpt-image-1` only, the token usage information for the image generation. + title: Image generation usage + OpenAI.ImagesResponse: type: object required: - - id - - deleted - - object + - created properties: - id: + created: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) of when the image was created. + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.Image' + description: The list of generated images. + background: type: string - deleted: - type: boolean - object: + enum: + - transparent + - opaque + description: The background parameter used for the image generation. Either `transparent` or `opaque`. + output_format: type: string enum: - - vector_store.deleted - OpenAI.Embedding: - type: object - required: - - index - - embedding - - object - properties: - index: - type: integer - format: int32 - description: The index of the embedding in the list of embeddings. - embedding: - anyOf: - - type: array - items: - type: number - - type: string - description: The embedding vector, which is a list of floats. The length of vector depends on the model as listed in the [embedding guide](/docs/guides/embeddings). - object: + - png + - webp + - jpeg + description: The output format of the image generation. Either `png`, `webp`, or `jpeg`. + size: type: string enum: - - embedding - description: The object type, which is always "embedding". - description: Represents an embedding vector returned by embedding endpoint. - OpenAI.Eval: + - 1024x1024 + - 1024x1536 + - 1536x1024 + description: The size of the image generated. Either `1024x1024`, `1024x1536`, or `1536x1024`. + quality: + type: string + enum: + - low + - medium + - high + description: The quality of the image generated. Either `low`, `medium`, or `high`. + usage: + $ref: '#/components/schemas/OpenAI.ImageGenUsage' + description: The response from the image generation endpoint. + title: Image generation response + x-oaiMeta: + name: The image generation response + group: images + example: | + { + "created": 1713833628, + "data": [ + { + "b64_json": "..." + } + ], + "background": "transparent", + "output_format": "png", + "size": "1024x1024", + "quality": "high", + "usage": { + "total_tokens": 100, + "input_tokens": 50, + "output_tokens": 50, + "input_tokens_details": { + "text_tokens": 10, + "image_tokens": 40 + } + } + } + OpenAI.IncludeEnum: + type: string + enum: + - file_search_call.results + - web_search_call.results + - web_search_call.action.sources + - message.input_image.image_url + - computer_call_output.output.image_url + - code_interpreter_call.outputs + - reasoning.encrypted_content + - message.output_text.logprobs + description: |- + Specify additional output data to include in the model response. Currently supported values are: + - `web_search_call.action.sources`: Include the sources of the web search tool call. + - `code_interpreter_call.outputs`: Includes the outputs of python code execution in code interpreter tool call items. + - `computer_call_output.output.image_url`: Include image urls from the computer call output. + - `file_search_call.results`: Include the search results of the file search tool call. + - `message.input_image.image_url`: Include image urls from the input message. + - `message.output_text.logprobs`: Include logprobs with assistant messages. + - `reasoning.encrypted_content`: Includes an encrypted version of reasoning tokens in reasoning item outputs. This enables reasoning items to be used in multi-turn conversations when using the Responses API statelessly (like when the `store` parameter is set to `false`, or when an organization is enrolled in the zero data retention program). + OpenAI.InputAudio: type: object required: - - object - - id - - name - - data_source_config - - testing_criteria - - created_at - - metadata + - type + - input_audio properties: - object: + type: type: string enum: - - eval - description: The object type. - default: eval - id: - type: string - description: Unique identifier for the evaluation. - name: - type: string - description: The name of the evaluation. - data_source_config: - allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigResource' - description: Configuration of data sources used in runs of the evaluation. - testing_criteria: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalGraderResource' - nullable: true - description: A list of testing criteria. - default: null - created_at: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) for when the eval was created. - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - description: |- - An Eval object with a data source config and testing criteria. - An Eval represents a task to be done for your LLM integration. - Like: - - Improve the quality of my chatbot - - See how well my chatbot handles customer support - - Check if o4-mini is better at my usecase than gpt-4o - OpenAI.EvalApiError: + - input_audio + description: The type of the input item. Always `input_audio`. + x-stainless-const: true + input_audio: + $ref: '#/components/schemas/OpenAI.InputAudioInputAudio' + description: An audio input to the model. + title: Input audio + OpenAI.InputAudioInputAudio: type: object required: - - code - - message + - data + - format properties: - code: + data: type: string - description: The error code. - message: + format: type: string - description: The error message. - description: An object representing an error response from the Eval API. - OpenAI.EvalCompletionsRunDataSourceParams: + enum: + - mp3 + - wav + OpenAI.InputContent: type: object required: - type - - source properties: type: - type: string + $ref: '#/components/schemas/OpenAI.InputContentType' + discriminator: + propertyName: type + mapping: + input_text: '#/components/schemas/OpenAI.InputTextContent' + input_image: '#/components/schemas/OpenAI.InputImageContent' + input_file: '#/components/schemas/OpenAI.InputFileContent' + OpenAI.InputContentType: + anyOf: + - type: string + - type: string enum: - - completions - description: The type of run data source. Always `completions`. - input_messages: - anyOf: - - type: object - properties: - type: - type: string - enum: - - template - description: The type of input messages. Always `template`. - template: - type: array - items: - anyOf: - - {} - - $ref: '#/components/schemas/OpenAI.EvalItem' - description: A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}. - required: - - type - - template - - type: object - properties: - type: - type: string - enum: - - item_reference - description: The type of input messages. Always `item_reference`. - item_reference: - type: string - description: A reference to a variable in the `item` namespace. Ie, "item.input_trajectory" - required: - - type - - item_reference - description: Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace. - sampling_params: - $ref: '#/components/schemas/AzureEvalAPICompletionsSamplingParams' - model: - type: string - description: The name of the model to use for generating completions (e.g. "o3-mini"). - source: - anyOf: - - $ref: '#/components/schemas/OpenAI.EvalRunFileContentDataContentSource' - - $ref: '#/components/schemas/OpenAI.EvalRunFileIdDataContentSource' - - $ref: '#/components/schemas/OpenAI.EvalRunStoredCompletionsDataContentSource' - description: Determines what populates the `item` namespace in this run's data source. - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceParams' - description: A CompletionsRunDataSource object describing a model sampling configuration. - OpenAI.EvalCustomDataSourceConfigParams: + - input_text + - input_image + - input_file + OpenAI.InputFidelity: + type: string + enum: + - high + - low + description: Control how much effort the model will exert to match the style and features, especially facial features, of input images. This parameter is only supported for `gpt-image-1`. Unsupported for `gpt-image-1-mini`. Supports `high` and `low`. Defaults to `low`. + OpenAI.InputFileContent: type: object required: - type - - item_schema properties: type: type: string enum: - - custom - description: The type of data source. Always `custom`. - item_schema: - type: object - additionalProperties: {} - description: The json schema for each row in the data source. - include_sample_schema: - type: boolean - description: Whether the eval should expect you to populate the sample namespace (ie, by generating responses off of your data source) - default: false + - input_file + description: The type of the input item. Always `input_file`. + x-stainless-const: true + default: input_file + file_id: + anyOf: + - type: string + - type: 'null' + filename: + type: string + description: The name of the file to be sent to the model. + file_url: + type: string + description: The URL of the file to be sent to the model. + file_data: + type: string + description: The content of the file to be sent to the model. allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigParams' - description: |- - A CustomDataSourceConfig object that defines the schema for the data source used for the evaluation runs. - This schema is used to define the shape of the data that will be: - - Used to define your testing criteria and - - What data is required when creating a run - OpenAI.EvalCustomDataSourceConfigResource: + - $ref: '#/components/schemas/OpenAI.InputContent' + description: A file input to the model. + title: Input file + OpenAI.InputImageContent: type: object required: - type - - schema + - detail properties: type: type: string enum: - - custom - description: The type of data source. Always `custom`. - schema: - type: object - additionalProperties: {} - description: |- - The json schema for the run data source items. - Learn how to build JSON schemas [here](https://json-schema.org/). + - input_image + description: The type of the input item. Always `input_image`. + x-stainless-const: true + default: input_image + image_url: + anyOf: + - type: string + - type: 'null' + file_id: + anyOf: + - type: string + - type: 'null' + detail: + allOf: + - $ref: '#/components/schemas/OpenAI.ImageDetail' + description: The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`. Defaults to `auto`. allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigResource' - description: |- - A CustomDataSourceConfig which specifies the schema of your `item` and optionally `sample` namespaces. - The response schema defines the shape of the data that will be: - - Used to define your testing criteria and - - What data is required when creating a run - OpenAI.EvalDataSourceConfigParams: + - $ref: '#/components/schemas/OpenAI.InputContent' + description: An image input to the model. Learn about [image inputs](https://platform.openai.com/docs/guides/vision). + title: Input image + OpenAI.InputItem: type: object required: - type properties: type: - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigType' + $ref: '#/components/schemas/OpenAI.InputItemType' discriminator: propertyName: type mapping: - custom: '#/components/schemas/OpenAI.EvalCustomDataSourceConfigParams' - logs: '#/components/schemas/OpenAI.EvalLogsDataSourceConfigParams' - stored_completions: '#/components/schemas/OpenAI.EvalStoredCompletionsDataSourceConfigParams' - OpenAI.EvalDataSourceConfigResource: + message: '#/components/schemas/OpenAI.EasyInputMessage' + item_reference: '#/components/schemas/OpenAI.ItemReferenceParam' + OpenAI.InputItemType: + anyOf: + - type: string + - type: string + enum: + - message + - item_reference + OpenAI.InputMessageContentList: + type: array + items: + $ref: '#/components/schemas/OpenAI.InputContent' + description: |- + A list of one or many input items to the model, containing different content + types. + title: Input item content list + OpenAI.InputMessageResource: type: object required: - type + - role + - content + - id properties: type: - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigType' - discriminator: - propertyName: type - mapping: - custom: '#/components/schemas/OpenAI.EvalCustomDataSourceConfigResource' - stored_completions: '#/components/schemas/OpenAI.EvalStoredCompletionsDataSourceConfigResource' - logs: '#/components/schemas/OpenAI.EvalLogsDataSourceConfigResource' - OpenAI.EvalDataSourceConfigType: - type: string - enum: - - custom - - logs - - stored_completions - OpenAI.EvalGraderLabelModelParams: + type: string + enum: + - message + description: The type of the message input. Always set to `message`. + x-stainless-const: true + role: + type: string + enum: + - user + - system + - developer + description: The role of the message input. One of `user`, `system`, or `developer`. + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + content: + $ref: '#/components/schemas/OpenAI.InputMessageContentList' + id: + type: string + description: The unique ID of the message input. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.InputParam: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' + description: |- + Text, image, or file inputs to the model, used to generate a response. + + Learn more: + - [Text inputs and outputs](https://platform.openai.com/docs/guides/text) + - [Image inputs](https://platform.openai.com/docs/guides/images) + - [File inputs](https://platform.openai.com/docs/guides/pdf-files) + - [Conversation state](https://platform.openai.com/docs/guides/conversation-state) + - [Function calling](https://platform.openai.com/docs/guides/function-calling) + OpenAI.InputTextContent: type: object required: - type - - name - - model - - input - - labels - - passing_labels + - text properties: type: type: string enum: - - label_model - description: The object type, which is always `label_model`. - name: - type: string - description: The name of the grader. - model: + - input_text + description: The type of the input item. Always `input_text`. + x-stainless-const: true + default: input_text + text: type: string - description: The model to use for the evaluation. Must support structured outputs. - input: - type: array - items: - $ref: '#/components/schemas/OpenAI.CreateEvalItem' - description: A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}. - labels: - type: array - items: - type: string - description: The labels to classify to each item in the evaluation. - passing_labels: - type: array - items: - type: string - description: The labels that indicate a passing result. Must be a subset of labels. + description: The text input to the model. allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderParams' - description: |- - A LabelModelGrader object which uses a model to assign labels to each item - in the evaluation. - OpenAI.EvalGraderLabelModelResource: + - $ref: '#/components/schemas/OpenAI.InputContent' + description: A text input to the model. + title: Input text + OpenAI.ItemReferenceParam: type: object required: - type - - name - - model - - input - - labels - - passing_labels + - id properties: type: type: string enum: - - label_model - description: The object type, which is always `label_model`. - name: - type: string - description: The name of the grader. - model: + - item_reference + description: The type of item to reference. Always `item_reference`. + x-stainless-const: true + default: item_reference + id: type: string - description: The model to use for the evaluation. Must support structured outputs. - input: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalItem' - labels: - type: array - items: - type: string - description: The labels to assign to each item in the evaluation. - passing_labels: - type: array - items: - type: string - description: The labels that indicate a passing result. Must be a subset of labels. + description: The ID of the item to reference. allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderResource' - OpenAI.EvalGraderParams: + - $ref: '#/components/schemas/OpenAI.InputItem' + description: An internal identifier for an item to reference. + title: Item reference + OpenAI.ItemResource: type: object required: - type properties: type: - $ref: '#/components/schemas/OpenAI.GraderType' + $ref: '#/components/schemas/OpenAI.ItemResourceType' discriminator: propertyName: type mapping: - label_model: '#/components/schemas/OpenAI.EvalGraderLabelModelParams' - string_check: '#/components/schemas/OpenAI.EvalGraderStringCheckParams' - text_similarity: '#/components/schemas/OpenAI.EvalGraderTextSimilarityParams' - python: '#/components/schemas/OpenAI.EvalGraderPythonParams' - score_model: '#/components/schemas/OpenAI.EvalGraderScoreModelParams' - OpenAI.EvalGraderPythonParams: + computer_call_output: '#/components/schemas/OpenAI.ComputerToolCallOutputResource' + function_call: '#/components/schemas/OpenAI.FunctionToolCallResource' + function_call_output: '#/components/schemas/OpenAI.FunctionToolCallOutputResource' + shell_call: '#/components/schemas/OpenAI.FunctionShellCall' + shell_call_output: '#/components/schemas/OpenAI.FunctionShellCallOutput' + apply_patch_call: '#/components/schemas/OpenAI.ApplyPatchToolCall' + apply_patch_call_output: '#/components/schemas/OpenAI.ApplyPatchToolCallOutput' + mcp_approval_response: '#/components/schemas/OpenAI.MCPApprovalResponseResource' + message: '#/components/schemas/OpenAI.InputMessageResource' + output_message: '#/components/schemas/OpenAI.ItemResourceOutputMessage' + file_search_call: '#/components/schemas/OpenAI.ItemResourceFileSearchToolCall' + computer_call: '#/components/schemas/OpenAI.ItemResourceComputerToolCall' + web_search_call: '#/components/schemas/OpenAI.ItemResourceWebSearchToolCall' + image_generation_call: '#/components/schemas/OpenAI.ItemResourceImageGenToolCall' + code_interpreter_call: '#/components/schemas/OpenAI.ItemResourceCodeInterpreterToolCall' + local_shell_call: '#/components/schemas/OpenAI.ItemResourceLocalShellToolCall' + local_shell_call_output: '#/components/schemas/OpenAI.ItemResourceLocalShellToolCallOutput' + mcp_list_tools: '#/components/schemas/OpenAI.ItemResourceMCPListTools' + mcp_approval_request: '#/components/schemas/OpenAI.ItemResourceMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAI.ItemResourceMCPToolCall' + description: Content item used to generate a response. + OpenAI.ItemResourceCodeInterpreterToolCall: type: object required: - type - - name - - source + - id + - status + - container_id + - code + - outputs properties: type: type: string enum: - - python - description: The object type, which is always `python`. - name: + - code_interpreter_call + description: The type of the code interpreter tool call. Always `code_interpreter_call`. + x-stainless-const: true + default: code_interpreter_call + id: type: string - description: The name of the grader. - source: + description: The unique ID of the code interpreter tool call. + status: type: string - description: The source code of the python script. - image_tag: + enum: + - in_progress + - completed + - incomplete + - interpreting + - failed + description: The status of the code interpreter tool call. Valid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`. + container_id: type: string - description: The image tag to use for the python script. - pass_threshold: - type: number - format: float - description: The threshold for the score. + description: The ID of the container used to run the code. + code: + anyOf: + - type: string + - type: 'null' + outputs: + anyOf: + - type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputLogs' + - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputImage' + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderParams' - OpenAI.EvalGraderPythonResource: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceComputerToolCall: type: object required: - type - - name - - source + - id + - call_id + - action + - pending_safety_checks + - status properties: type: type: string enum: - - python - description: The object type, which is always `python`. - name: + - computer_call + description: The type of the computer call. Always `computer_call`. + default: computer_call + id: type: string - description: The name of the grader. - source: + description: The unique ID of the computer call. + call_id: type: string - description: The source code of the python script. - image_tag: + description: An identifier used when responding to the tool call with output. + action: + $ref: '#/components/schemas/OpenAI.ComputerAction' + pending_safety_checks: + type: array + items: + $ref: '#/components/schemas/OpenAI.ComputerCallSafetyCheckParam' + description: The pending safety checks for the computer call. + status: type: string - description: The image tag to use for the python script. - pass_threshold: - type: number - format: float - description: The threshold for the score. + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderResource' - OpenAI.EvalGraderResource: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceFileSearchToolCall: type: object required: + - id - type + - status + - queries properties: + id: + type: string + description: The unique ID of the file search tool call. type: - $ref: '#/components/schemas/OpenAI.GraderType' - discriminator: - propertyName: type - mapping: - label_model: '#/components/schemas/OpenAI.EvalGraderLabelModelResource' - text_similarity: '#/components/schemas/OpenAI.EvalGraderTextSimilarityResource' - python: '#/components/schemas/OpenAI.EvalGraderPythonResource' - score_model: '#/components/schemas/OpenAI.EvalGraderScoreModelResource' - OpenAI.EvalGraderScoreModelParams: + type: string + enum: + - file_search_call + description: The type of the file search tool call. Always `file_search_call`. + x-stainless-const: true + status: + type: string + enum: + - in_progress + - searching + - completed + - incomplete + - failed + description: |- + The status of the file search tool call. One of `in_progress`, + `searching`, `incomplete` or `failed`, + queries: + type: array + items: + type: string + description: The queries used to search for files. + results: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.FileSearchToolCallResults' + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceImageGenToolCall: type: object required: - type - - name - - model - - input + - id + - status + - result properties: type: type: string enum: - - score_model - description: The object type, which is always `score_model`. - name: + - image_generation_call + description: The type of the image generation call. Always `image_generation_call`. + x-stainless-const: true + id: type: string - description: The name of the grader. - model: + description: The unique ID of the image generation call. + status: type: string - description: The model to use for the evaluation. - sampling_params: - description: The sampling parameters for the model. - input: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalItem' - description: The input text. This may include template strings. - range: - type: array - items: - type: number - format: float - description: The range of the score. Defaults to `[0, 1]`. - pass_threshold: - type: number - format: float - description: The threshold for the score. + enum: + - in_progress + - completed + - generating + - failed + description: The status of the image generation call. + result: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderParams' - OpenAI.EvalGraderScoreModelResource: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceLocalShellToolCall: type: object required: - type - - name - - model - - input + - id + - call_id + - action + - status properties: type: type: string enum: - - score_model - description: The object type, which is always `score_model`. - name: + - local_shell_call + description: The type of the local shell call. Always `local_shell_call`. + x-stainless-const: true + id: type: string - description: The name of the grader. - model: + description: The unique ID of the local shell call. + call_id: type: string - description: The model to use for the evaluation. - sampling_params: - description: The sampling parameters for the model. - input: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalItem' - description: The input text. This may include template strings. - range: - type: array - items: - type: number - format: float - description: The range of the score. Defaults to `[0, 1]`. - pass_threshold: - type: number - format: float - description: The threshold for the score. + description: The unique ID of the local shell tool call generated by the model. + action: + $ref: '#/components/schemas/OpenAI.LocalShellExecAction' + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: The status of the local shell call. allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderResource' - OpenAI.EvalGraderStringCheckParams: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceLocalShellToolCallOutput: type: object required: - type - - name - - input - - reference - - operation + - id + - output properties: type: type: string enum: - - string_check - description: The object type, which is always `string_check`. - name: - type: string - description: The name of the grader. - input: - type: string - description: The input text. This may include template strings. - reference: + - local_shell_call_output + description: The type of the local shell tool call output. Always `local_shell_call_output`. + x-stainless-const: true + id: type: string - description: The reference text. This may include template strings. - operation: + description: The unique ID of the local shell tool call generated by the model. + output: type: string - enum: - - eq - - ne - - like - - ilike - description: The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`. + description: A JSON string of the output of the local shell tool call. + status: + anyOf: + - type: string + enum: + - in_progress + - completed + - incomplete + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderParams' - OpenAI.EvalGraderTextSimilarityParams: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceMCPApprovalRequest: type: object required: - type + - id + - server_label - name - - input - - reference - - evaluation_metric - - pass_threshold + - arguments properties: type: type: string enum: - - text_similarity - description: The type of grader. - name: + - mcp_approval_request + description: The type of the item. Always `mcp_approval_request`. + x-stainless-const: true + id: type: string - description: The name of the grader. - input: + description: The unique ID of the approval request. + server_label: type: string - description: The text being graded. - reference: + description: The label of the MCP server making the request. + name: type: string - description: The text being graded against. - evaluation_metric: + description: The name of the tool to run. + arguments: + type: string + description: A JSON string of arguments for the tool. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceMCPListTools: + type: object + required: + - type + - id + - server_label + - tools + properties: + type: type: string enum: - - fuzzy_match - - bleu - - gleu - - meteor - - rouge_1 - - rouge_2 - - rouge_3 - - rouge_4 - - rouge_5 - - rouge_l - description: The evaluation metric to use. One of `fuzzy_match`, `bleu`, `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`. - pass_threshold: - type: number - format: float - description: The threshold for the score. + - mcp_list_tools + description: The type of the item. Always `mcp_list_tools`. + x-stainless-const: true + id: + type: string + description: The unique ID of the list. + server_label: + type: string + description: The label of the MCP server. + tools: + type: array + items: + $ref: '#/components/schemas/OpenAI.MCPListToolsTool' + description: The tools available on the server. + error: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderParams' - OpenAI.EvalGraderTextSimilarityResource: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceMCPToolCall: type: object required: - type + - id + - server_label - name - - input - - reference - - evaluation_metric - - pass_threshold + - arguments properties: type: type: string enum: - - text_similarity - description: The type of grader. - name: + - mcp_call + description: The type of the item. Always `mcp_call`. + x-stainless-const: true + id: type: string - description: The name of the grader. - input: + description: The unique ID of the tool call. + server_label: type: string - description: The text being graded. - reference: + description: The label of the MCP server running the tool. + name: type: string - description: The text being graded against. - evaluation_metric: + description: The name of the tool that was run. + arguments: type: string - enum: - - fuzzy_match - - bleu - - gleu - - meteor - - rouge_1 - - rouge_2 - - rouge_3 - - rouge_4 - - rouge_5 - - rouge_l - description: The evaluation metric to use. One of `fuzzy_match`, `bleu`, `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`. - pass_threshold: - type: number - format: float - description: The threshold for the score. + description: A JSON string of the arguments passed to the tool. + output: + anyOf: + - type: string + - type: 'null' + error: + anyOf: + - type: string + - type: 'null' + status: + allOf: + - $ref: '#/components/schemas/OpenAI.MCPToolCallStatus' + description: The status of the tool call. One of `in_progress`, `completed`, `incomplete`, `calling`, or `failed`. + approval_request_id: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderResource' - OpenAI.EvalItem: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceOutputMessage: type: object required: + - id + - type - role - content + - status properties: + id: + type: string + description: The unique ID of the output message. + x-stainless-go-json: omitzero + type: + type: string + enum: + - output_message + description: The type of the output message. Always `message`. + x-stainless-const: true role: type: string enum: - - user - assistant - - system - - developer - description: |- - The role of the message input. One of `user`, `assistant`, `system`, or - `developer`. + description: The role of the output message. Always `assistant`. + x-stainless-const: true content: - anyOf: - - type: string - - $ref: '#/components/schemas/OpenAI.EvalItemContent' - description: Text inputs to the model - can contain template strings. - type: + type: array + items: + $ref: '#/components/schemas/OpenAI.OutputMessageContent' + description: The content of the output message. + status: type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the message input. One of `in_progress`, `completed`, or + `incomplete`. Populated when input items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceType: + anyOf: + - type: string + - type: string enum: - message - description: The type of the message input. Always `message`. - description: |- - A message input to the model with a role indicating instruction following - hierarchy. Instructions given with the `developer` or `system` role take - precedence over instructions given with the `user` role. Messages with the - `assistant` role are presumed to have been generated by the model in previous - interactions. - OpenAI.EvalItemContent: - type: object - required: - - type - properties: - type: - $ref: '#/components/schemas/OpenAI.EvalItemContentType' - discriminator: - propertyName: type - mapping: - input_text: '#/components/schemas/OpenAI.EvalItemContentInputText' - output_text: '#/components/schemas/OpenAI.EvalItemContentOutputText' - OpenAI.EvalItemContentInputText: + - output_message + - file_search_call + - computer_call + - computer_call_output + - web_search_call + - function_call + - function_call_output + - image_generation_call + - code_interpreter_call + - local_shell_call + - local_shell_call_output + - shell_call + - shell_call_output + - apply_patch_call + - apply_patch_call_output + - mcp_list_tools + - mcp_approval_request + - mcp_approval_response + - mcp_call + OpenAI.ItemResourceWebSearchToolCall: type: object required: + - id - type - - text + - status + - action properties: + id: + type: string + description: The unique ID of the web search tool call. type: type: string enum: - - input_text - text: + - web_search_call + description: The type of the web search tool call. Always `web_search_call`. + x-stainless-const: true + status: type: string + enum: + - in_progress + - searching + - completed + - failed + description: The status of the web search tool call. + action: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchActionSearch' + - $ref: '#/components/schemas/OpenAI.WebSearchActionOpenPage' + - $ref: '#/components/schemas/OpenAI.WebSearchActionFind' + description: |- + An object describing the specific action taken in this web search call. + Includes details on how the model used the web (search, open_page, find). allOf: - - $ref: '#/components/schemas/OpenAI.EvalItemContent' - OpenAI.EvalItemContentOutputText: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.KeyPressAction: type: object required: - type - - text + - keys properties: type: type: string enum: - - output_text - text: - type: string + - keypress + description: Specifies the event type. For a keypress action, this property is always set to `keypress`. + x-stainless-const: true + default: keypress + keys: + type: array + items: + type: string + description: The combination of keys the model is requesting to be pressed. This is an array of strings, each representing a key. allOf: - - $ref: '#/components/schemas/OpenAI.EvalItemContent' - OpenAI.EvalItemContentType: - type: string - enum: - - input_text - - output_text - OpenAI.EvalJsonlRunDataSourceParams: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A collection of keypresses the model would like to perform. + title: KeyPress + OpenAI.ListBatchesResponse: type: object required: - - type - - source + - data + - has_more + - object properties: - type: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.Batch' + first_id: + type: string + last_id: + type: string + has_more: + type: boolean + object: type: string enum: - - jsonl - description: The type of data source. Always `jsonl`. - source: - anyOf: - - $ref: '#/components/schemas/OpenAI.EvalRunFileContentDataContentSource' - - $ref: '#/components/schemas/OpenAI.EvalRunFileIdDataContentSource' - description: Determines what populates the `item` namespace in the data source. - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceParams' - description: A JsonlRunDataSource object with that specifies a JSONL file that matches the eval - OpenAI.EvalList: + - list + x-stainless-const: true + OpenAI.ListFilesResponse: type: object required: - object @@ -9912,369 +18408,270 @@ components: properties: object: type: string - enum: - - list - description: The type of this object. It is always set to "list". - default: list data: type: array items: - $ref: '#/components/schemas/OpenAI.Eval' - description: An array of eval objects. + $ref: '#/components/schemas/OpenAI.OpenAIFile' first_id: type: string - description: The identifier of the first eval in the data array. last_id: type: string - description: The identifier of the last eval in the data array. has_more: type: boolean - description: Indicates whether there are more evals available. - description: An object representing a list of evals. - OpenAI.EvalLogsDataSourceConfigParams: + OpenAI.ListFineTuningCheckpointPermissionResponse: type: object required: - - type + - data + - object + - has_more properties: - type: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.FineTuningCheckpointPermission' + object: type: string enum: - - logs - description: The type of data source. Always `logs`. - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigParams' - description: |- - A data source config which specifies the metadata property of your logs query. - This is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc. - OpenAI.EvalLogsDataSourceConfigResource: + - list + x-stainless-const: true + first_id: + anyOf: + - type: string + - type: 'null' + last_id: + anyOf: + - type: string + - type: 'null' + has_more: + type: boolean + OpenAI.ListFineTuningJobCheckpointsResponse: type: object required: - - type - - metadata - - schema + - data + - object + - has_more properties: - type: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.FineTuningJobCheckpoint' + object: type: string enum: - - logs - description: The type of data source. Always `logs`. - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - schema: - type: object - additionalProperties: {} - description: |- - The json schema for the run data source items. - Learn how to build JSON schemas [here](https://json-schema.org/). - allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigResource' - description: |- - A LogsDataSourceConfig which specifies the metadata property of your logs query. - This is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc. - The schema returned by this data source config is used to defined what variables are available in your evals. - `item` and `sample` are both defined when using this data source config. - OpenAI.EvalResponsesRunDataSourceParams: + - list + x-stainless-const: true + first_id: + anyOf: + - type: string + - type: 'null' + last_id: + anyOf: + - type: string + - type: 'null' + has_more: + type: boolean + OpenAI.ListFineTuningJobEventsResponse: type: object required: - - type - - source + - data + - object + - has_more properties: - type: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.FineTuningJobEvent' + object: type: string enum: - - responses - description: The type of run data source. Always `responses`. - input_messages: - anyOf: - - type: object - properties: - type: - type: string - enum: - - template - description: The type of input messages. Always `template`. - template: - type: array - items: - anyOf: - - type: object - properties: - role: - type: string - description: The role of the message (e.g. "system", "assistant", "user"). - content: - type: string - description: The content of the message. - required: - - role - - content - - $ref: '#/components/schemas/OpenAI.EvalItem' - description: A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}. - required: - - type - - template - - type: object - properties: - type: - type: string - enum: - - item_reference - description: The type of input messages. Always `item_reference`. - item_reference: - type: string - description: A reference to a variable in the `item` namespace. Ie, "item.name" - required: - - type - - item_reference - description: Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace. - sampling_params: - $ref: '#/components/schemas/AzureEvalAPIResponseSamplingParams' - model: - type: string - description: The name of the model to use for generating completions (e.g. "o3-mini"). - source: - anyOf: - - $ref: '#/components/schemas/OpenAI.EvalRunFileContentDataContentSource' - - $ref: '#/components/schemas/OpenAI.EvalRunFileIdDataContentSource' - - $ref: '#/components/schemas/OpenAI.EvalRunResponsesDataContentSource' - description: Determines what populates the `item` namespace in this run's data source. - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceParams' - description: A ResponsesRunDataSource object describing a model sampling configuration. - OpenAI.EvalRun: + - list + x-stainless-const: true + has_more: + type: boolean + OpenAI.ListMessagesResponse: type: object required: - object - - id - - eval_id - - status - - model - - name - - created_at - - report_url - - result_counts - - per_model_usage - - per_testing_criteria_results - - data_source - - metadata - - error + - data + - first_id + - last_id + - has_more properties: object: type: string - enum: - - eval.run - description: The type of the object. Always "eval.run". - default: eval.run - id: - type: string - description: Unique identifier for the evaluation run. - eval_id: - type: string - description: The identifier of the associated evaluation. - status: - type: string - description: The status of the evaluation run. - model: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.MessageObject' + first_id: type: string - description: The model that is evaluated, if applicable. - name: + last_id: type: string - description: The name of the evaluation run. - created_at: - type: integer - format: unixtime - description: Unix timestamp (in seconds) when the evaluation run was created. - report_url: + has_more: + type: boolean + OpenAI.ListModelsResponse: + type: object + required: + - object + - data + properties: + object: type: string - description: The URL to the rendered evaluation run report on the UI dashboard. - result_counts: - type: object - properties: - total: - type: integer - format: int32 - description: Total number of executed output items. - errored: - type: integer - format: int32 - description: Number of output items that resulted in an error. - failed: - type: integer - format: int32 - description: Number of output items that failed to pass the evaluation. - passed: - type: integer - format: int32 - description: Number of output items that passed the evaluation. - required: - - total - - errored - - failed - - passed - description: Counters summarizing the outcomes of the evaluation run. - per_model_usage: + enum: + - list + x-stainless-const: true + data: type: array items: - type: object - properties: - model_name: - type: string - description: The name of the model. - invocation_count: - type: integer - format: int32 - description: The number of invocations. - prompt_tokens: - type: integer - format: int32 - description: The number of prompt tokens used. - completion_tokens: - type: integer - format: int32 - description: The number of completion tokens generated. - total_tokens: - type: integer - format: int32 - description: The total number of tokens used. - cached_tokens: - type: integer - format: int32 - description: The number of tokens retrieved from cache. - required: - - model_name - - invocation_count - - prompt_tokens - - completion_tokens - - total_tokens - - cached_tokens - description: Usage statistics for each model during the evaluation run. - per_testing_criteria_results: + $ref: '#/components/schemas/OpenAI.Model' + OpenAI.ListPaginatedFineTuningJobsResponse: + type: object + required: + - data + - has_more + - object + properties: + data: type: array items: - type: object - properties: - testing_criteria: - type: string - description: A description of the testing criteria. - passed: - type: integer - format: int32 - description: Number of tests passed for this criteria. - failed: - type: integer - format: int32 - description: Number of tests failed for this criteria. - required: - - testing_criteria - - passed - - failed - description: Results per testing criteria applied during the evaluation run. - data_source: - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceResource' - description: Information about the run's data source. - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - error: - $ref: '#/components/schemas/OpenAI.EvalApiError' - description: A schema representing an evaluation run. - OpenAI.EvalRunDataContentSource: + $ref: '#/components/schemas/OpenAI.FineTuningJob' + has_more: + type: boolean + object: + type: string + enum: + - list + x-stainless-const: true + OpenAI.ListRunStepsResponse: type: object required: - - type + - object + - data + - first_id + - last_id + - has_more properties: - type: - $ref: '#/components/schemas/OpenAI.EvalRunDataContentSourceType' - discriminator: - propertyName: type - mapping: - file_id: '#/components/schemas/OpenAI.EvalRunFileIdDataContentSource' - stored_completions: '#/components/schemas/OpenAI.EvalRunStoredCompletionsDataContentSource' - responses: '#/components/schemas/OpenAI.EvalRunResponsesDataContentSource' - OpenAI.EvalRunDataContentSourceType: - type: string - enum: - - file_id - - file_content - - stored_completions - - responses - OpenAI.EvalRunDataSourceCompletionsResource: + object: + type: string + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.RunStepObject' + first_id: + type: string + last_id: + type: string + has_more: + type: boolean + OpenAI.ListRunsResponse: type: object required: - - type + - object + - data + - first_id + - last_id + - has_more properties: - type: + object: type: string - enum: - - completions - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceResource' - OpenAI.EvalRunDataSourceJsonlResource: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.RunObject' + first_id: + type: string + last_id: + type: string + has_more: + type: boolean + OpenAI.ListVectorStoreFilesResponse: type: object required: - - type + - object + - data + - first_id + - last_id + - has_more properties: - type: + object: type: string - enum: - - jsonl - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceResource' - OpenAI.EvalRunDataSourceParams: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + first_id: + type: string + last_id: + type: string + has_more: + type: boolean + OpenAI.ListVectorStoresResponse: type: object required: - - type + - object + - data + - first_id + - last_id + - has_more properties: - type: - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceType' - discriminator: - propertyName: type - mapping: - jsonl: '#/components/schemas/OpenAI.EvalJsonlRunDataSourceParams' - completions: '#/components/schemas/OpenAI.EvalCompletionsRunDataSourceParams' - responses: '#/components/schemas/OpenAI.EvalResponsesRunDataSourceParams' - OpenAI.EvalRunDataSourceResource: + object: + type: string + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.VectorStoreObject' + first_id: + type: string + last_id: + type: string + has_more: + type: boolean + OpenAI.LocalShellCallStatus: + type: string + enum: + - in_progress + - completed + - incomplete + OpenAI.LocalShellExecAction: type: object required: - type + - command + - env properties: type: - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceType' - OpenAI.EvalRunDataSourceResponsesResource: + type: string + enum: + - exec + description: The type of the local shell action. Always `exec`. + x-stainless-const: true + default: exec + command: + type: array + items: + type: string + description: The command to run. + timeout_ms: + anyOf: + - type: integer + - type: 'null' + working_directory: + anyOf: + - type: string + - type: 'null' + env: + type: object + unevaluatedProperties: + type: string + description: Environment variables to set for the command. + x-oaiTypeLabel: map + user: + anyOf: + - type: string + - type: 'null' + description: Execute a shell command on the server. + title: Local shell exec action + OpenAI.LocalShellToolParam: type: object required: - type @@ -10282,1154 +18679,1206 @@ components: type: type: string enum: - - responses + - local_shell + description: The type of the local shell tool. Always `local_shell`. + x-stainless-const: true + default: local_shell allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceResource' - OpenAI.EvalRunDataSourceType: - type: string - enum: - - jsonl - - completions - - responses - OpenAI.EvalRunFileContentDataContentSource: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A tool that allows the model to execute shell commands in a local environment. + title: Local shell tool + OpenAI.LogProb: type: object required: - - type - - content + - token + - logprob + - bytes + - top_logprobs properties: - type: + token: type: string - enum: - - file_content - description: The type of jsonl source. Always `file_content`. - content: + logprob: + type: number + bytes: type: array items: - type: object - properties: - item: - type: object - additionalProperties: {} - sample: - type: object - additionalProperties: {} - required: - - item - description: The content of the jsonl file. - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataContentSource' - OpenAI.EvalRunFileIdDataContentSource: + type: integer + top_logprobs: + type: array + items: + $ref: '#/components/schemas/OpenAI.TopLogProb' + description: The log probability of a token. + title: Log probability + OpenAI.MCPApprovalResponseResource: type: object required: - type - id + - approval_request_id + - approve properties: type: type: string enum: - - file_id - description: The type of jsonl source. Always `file_id`. + - mcp_approval_response + description: The type of the item. Always `mcp_approval_response`. + x-stainless-const: true id: type: string - description: The identifier of the file. + description: The unique ID of the approval response + approval_request_id: + type: string + description: The ID of the approval request being answered. + approve: + type: boolean + description: Whether the request was approved. + reason: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataContentSource' - OpenAI.EvalRunList: + - $ref: '#/components/schemas/OpenAI.ItemResource' + description: A response to an MCP approval request. + title: MCP approval response + OpenAI.MCPListToolsTool: type: object required: - - object - - data - - first_id - - last_id - - has_more + - name + - input_schema properties: - object: + name: + type: string + description: The name of the tool. + description: + anyOf: + - type: string + - type: 'null' + input_schema: + allOf: + - $ref: '#/components/schemas/OpenAI.MCPListToolsToolInputSchema' + description: The JSON schema describing the tool's input. + annotations: + anyOf: + - $ref: '#/components/schemas/OpenAI.MCPListToolsToolAnnotations' + - type: 'null' + description: A tool available on an MCP server. + title: MCP list tools tool + OpenAI.MCPListToolsToolAnnotations: + type: object + OpenAI.MCPListToolsToolInputSchema: + type: object + OpenAI.MCPTool: + type: object + required: + - type + - server_label + properties: + type: type: string enum: - - list - description: The type of this object. It is always set to "list". - default: list - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalRun' - description: An array of eval run objects. - first_id: + - mcp + description: The type of the MCP tool. Always `mcp`. + x-stainless-const: true + server_label: type: string - description: The identifier of the first eval run in the data array. - last_id: + description: A label for this MCP server, used to identify it in tool calls. + server_url: type: string - description: The identifier of the last eval run in the data array. - has_more: + description: |- + The URL for the MCP server. One of `server_url` or `connector_id` must be + provided. + connector_id: + type: string + enum: + - connector_dropbox + - connector_gmail + - connector_googlecalendar + - connector_googledrive + - connector_microsoftteams + - connector_outlookcalendar + - connector_outlookemail + - connector_sharepoint + description: |- + Identifier for service connectors, like those available in ChatGPT. One of + `server_url` or `connector_id` must be provided. Learn more about service + connectors [here](https://platform.openai.com/docs/guides/tools-remote-mcp#connectors). + + Currently supported `connector_id` values are: + + - Dropbox: `connector_dropbox` + - Gmail: `connector_gmail` + - Google Calendar: `connector_googlecalendar` + - Google Drive: `connector_googledrive` + - Microsoft Teams: `connector_microsoftteams` + - Outlook Calendar: `connector_outlookcalendar` + - Outlook Email: `connector_outlookemail` + - SharePoint: `connector_sharepoint` + authorization: + type: string + description: |- + An OAuth access token that can be used with a remote MCP server, either + with a custom MCP server URL or a service connector. Your application + must handle the OAuth authorization flow and provide the token here. + server_description: + type: string + description: Optional description of the MCP server, used to provide more context. + headers: + anyOf: + - type: object + unevaluatedProperties: + type: string + - type: 'null' + allowed_tools: + anyOf: + - type: array + items: + type: string + - $ref: '#/components/schemas/OpenAI.MCPToolFilter' + - type: 'null' + require_approval: + anyOf: + - $ref: '#/components/schemas/OpenAI.MCPToolRequireApproval' + - type: string + enum: + - always + - never + - type: 'null' + default: always + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: |- + Give the model access to additional tools via remote Model Context Protocol + (MCP) servers. [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp). + title: MCP tool + OpenAI.MCPToolCallStatus: + type: string + enum: + - in_progress + - completed + - incomplete + - calling + - failed + OpenAI.MCPToolFilter: + type: object + properties: + tool_names: + type: array + items: + type: string + description: List of allowed tool names. + title: MCP allowed tools + read_only: type: boolean - description: Indicates whether there are more evals available. - description: An object representing a list of runs for an evaluation. - OpenAI.EvalRunOutputItem: + description: |- + Indicates whether or not a tool modifies data or is read-only. If an + MCP server is [annotated with `readOnlyHint`](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint), + it will match this filter. + description: A filter object to specify which tools are allowed. + title: MCP tool filter + OpenAI.MCPToolRequireApproval: + type: object + properties: + always: + $ref: '#/components/schemas/OpenAI.MCPToolFilter' + never: + $ref: '#/components/schemas/OpenAI.MCPToolFilter' + OpenAI.Message: type: object required: - - object + - type - id - - run_id - - eval_id - - created_at - status - - datasource_item_id - - datasource_item - - results - - sample + - role + - content properties: - object: + type: type: string enum: - - eval.run.output_item - description: The type of the object. Always "eval.run.output_item". - default: eval.run.output_item + - message + description: The type of the message. Always set to `message`. + x-stainless-const: true + default: message id: type: string - description: Unique identifier for the evaluation run output item. - run_id: - type: string - description: The identifier of the evaluation run associated with this output item. - eval_id: - type: string - description: The identifier of the evaluation group. - created_at: - type: integer - format: unixtime - description: Unix timestamp (in seconds) when the evaluation run was created. + description: The unique ID of the message. status: - type: string - description: The status of the evaluation run. - datasource_item_id: - type: integer - format: int32 - description: The identifier for the data source item. - datasource_item: - type: object - additionalProperties: {} - description: Details of the input data source item. - results: + allOf: + - $ref: '#/components/schemas/OpenAI.MessageStatus' + description: The status of item. One of `in_progress`, `completed`, or `incomplete`. Populated when items are returned via API. + role: + allOf: + - $ref: '#/components/schemas/OpenAI.MessageRole' + description: The role of the message. One of `unknown`, `user`, `assistant`, `system`, `critic`, `discriminator`, `developer`, or `tool`. + content: type: array items: - type: object - additionalProperties: {} - description: A list of results from the evaluation run. - sample: - type: object - properties: - input: - type: array - items: - type: object - properties: - role: - type: string - description: The role of the message sender (e.g., system, user, developer). - content: - type: string - description: The content of the message. - required: - - role - - content - description: An array of input messages. - output: - type: array - items: - type: object - properties: - role: - type: string - description: The role of the message (e.g. "system", "assistant", "user"). - content: - type: string - description: The content of the message. - description: An array of output messages. - finish_reason: - type: string - description: The reason why the sample generation was finished. - model: - type: string - description: The model used for generating the sample. - usage: - type: object - properties: - total_tokens: - type: integer - format: int32 - description: The total number of tokens used. - completion_tokens: - type: integer - format: int32 - description: The number of completion tokens generated. - prompt_tokens: - type: integer - format: int32 - description: The number of prompt tokens used. - cached_tokens: - type: integer - format: int32 - description: The number of tokens retrieved from cache. - required: - - total_tokens - - completion_tokens - - prompt_tokens - - cached_tokens - description: Token usage details for the sample. - error: - $ref: '#/components/schemas/OpenAI.EvalApiError' - temperature: - type: number - format: float - description: The sampling temperature used. - max_completion_tokens: - type: integer - format: int32 - description: The maximum number of tokens allowed for completion. - top_p: - type: number - format: float - description: The top_p value used for sampling. - seed: - type: integer - format: int32 - description: The seed used for generating the sample. - required: - - input - - output - - finish_reason - - model - - usage - - error - - temperature - - max_completion_tokens - - top_p - - seed - description: A sample containing the input and output of the evaluation run. - description: A schema representing an evaluation run output item. - OpenAI.EvalRunOutputItemList: + anyOf: + - $ref: '#/components/schemas/OpenAI.InputTextContent' + - $ref: '#/components/schemas/OpenAI.OutputTextContent' + - $ref: '#/components/schemas/OpenAI.TextContent' + - $ref: '#/components/schemas/OpenAI.SummaryTextContent' + - $ref: '#/components/schemas/OpenAI.ReasoningTextContent' + - $ref: '#/components/schemas/OpenAI.RefusalContent' + - $ref: '#/components/schemas/OpenAI.InputImageContent' + - $ref: '#/components/schemas/OpenAI.ComputerScreenshotContent' + - $ref: '#/components/schemas/OpenAI.InputFileContent' + description: The content of the message + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + description: A message to or from the model. + title: Message + OpenAI.MessageContent: type: object required: - - object - - data - - first_id - - last_id - - has_more + - type properties: - object: - type: string - enum: - - list - description: The type of this object. It is always set to "list". - default: list - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalRunOutputItem' - description: An array of eval run output item objects. - first_id: - type: string - description: The identifier of the first eval run output item in the data array. - last_id: - type: string - description: The identifier of the last eval run output item in the data array. - has_more: - type: boolean - description: Indicates whether there are more eval run output items available. - description: An object representing a list of output items for an evaluation run. - OpenAI.EvalRunResponsesDataContentSource: + type: + $ref: '#/components/schemas/OpenAI.MessageContentType' + discriminator: + propertyName: type + mapping: + image_url: '#/components/schemas/OpenAI.MessageContentImageUrlObject' + text: '#/components/schemas/OpenAI.MessageContentTextObject' + refusal: '#/components/schemas/OpenAI.MessageContentRefusalObject' + OpenAI.MessageContentImageFileObject: type: object required: - type + - image_file properties: type: type: string enum: - - responses - description: The type of run data source. Always `responses`. - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - model: + - image_file + description: Always `image_file`. + x-stainless-const: true + image_file: + $ref: '#/components/schemas/OpenAI.MessageContentImageFileObjectImageFile' + allOf: + - $ref: '#/components/schemas/OpenAI.MessageContent' + description: References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message. + title: Image file + OpenAI.MessageContentImageFileObjectImageFile: + type: object + required: + - file_id + properties: + file_id: type: string - nullable: true - description: The name of the model to find responses for. This is a query parameter used to select responses. - instructions_search: + detail: type: string - nullable: true - description: Optional string to search the 'instructions' field. This is a query parameter used to select responses. - created_after: - type: integer - format: int32 - nullable: true - minimum: 0 - description: Only include items created after this timestamp (inclusive). This is a query parameter used to select responses. - created_before: - type: integer - format: int32 - nullable: true - minimum: 0 - description: Only include items created before this timestamp (inclusive). This is a query parameter used to select responses. - reasoning_effort: - allOf: - - $ref: '#/components/schemas/OpenAI.ReasoningEffort' - nullable: true - description: Optional reasoning effort parameter. This is a query parameter used to select responses. - default: medium - temperature: - type: number - format: float - nullable: true - description: Sampling temperature. This is a query parameter used to select responses. - top_p: - type: number - format: float - nullable: true - description: Nucleus sampling parameter. This is a query parameter used to select responses. - users: - type: array - items: - type: string - nullable: true - description: List of user identifiers. This is a query parameter used to select responses. - tools: - type: array - items: - type: string - nullable: true - description: List of tool names. This is a query parameter used to select responses. - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataContentSource' - description: A EvalResponsesSource object describing a run data source configuration. - OpenAI.EvalRunStoredCompletionsDataContentSource: + enum: + - auto + - low + - high + default: auto + OpenAI.MessageContentImageUrlObject: type: object required: - type - - metadata + - image_url properties: type: type: string enum: - - stored_completions - description: The type of source. Always `stored_completions`. - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - model: - type: string - nullable: true - description: An optional model to filter by (e.g., 'gpt-4o'). - created_after: - type: integer - format: int32 - nullable: true - description: An optional Unix timestamp to filter items created after this time. - created_before: - type: integer - format: int32 - nullable: true - description: An optional Unix timestamp to filter items created before this time. - limit: - type: integer - format: int32 - nullable: true - description: An optional maximum number of items to return. + - image_url + description: The type of the content part. + x-stainless-const: true + image_url: + $ref: '#/components/schemas/OpenAI.MessageContentImageUrlObjectImageUrl' allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataContentSource' - description: A StoredCompletionsRunDataSource configuration describing a set of filters - OpenAI.EvalStoredCompletionsDataSourceConfigParams: + - $ref: '#/components/schemas/OpenAI.MessageContent' + description: References an image URL in the content of a message. + title: Image URL + OpenAI.MessageContentImageUrlObjectImageUrl: + type: object + required: + - url + properties: + url: + type: string + format: uri + detail: + type: string + enum: + - auto + - low + - high + default: auto + OpenAI.MessageContentRefusalObject: type: object required: - type + - refusal properties: type: type: string enum: - - stored_completions - description: The type of data source. Always `stored_completions`. - metadata: - type: object - additionalProperties: {} - description: Metadata filters for the stored completions data source. + - refusal + description: Always `refusal`. + x-stainless-const: true + refusal: + type: string allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigParams' - description: Deprecated in favor of LogsDataSourceConfig. - deprecated: true - OpenAI.EvalStoredCompletionsDataSourceConfigResource: + - $ref: '#/components/schemas/OpenAI.MessageContent' + description: The refusal content generated by the assistant. + title: Refusal + OpenAI.MessageContentTextAnnotationsFileCitationObject: type: object required: - type - - metadata - - schema + - text + - file_citation + - start_index + - end_index properties: type: type: string enum: - - stored_completions - description: The type of data source. Always `stored_completions`. - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - schema: - type: object - additionalProperties: {} - description: |- - The json schema for the run data source items. - Learn how to build JSON schemas [here](https://json-schema.org/). + - file_citation + description: Always `file_citation`. + x-stainless-const: true + text: + type: string + description: The text in the message content that needs to be replaced. + file_citation: + $ref: '#/components/schemas/OpenAI.MessageContentTextAnnotationsFileCitationObjectFileCitation' + start_index: + type: integer + minimum: 0 + end_index: + type: integer + minimum: 0 allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigResource' - description: Deprecated in favor of LogsDataSourceConfig. - deprecated: true - OpenAI.FileSearchTool: + - $ref: '#/components/schemas/OpenAI.TextAnnotation' + description: A citation within the message that points to a specific quote from a specific File associated with the assistant or the message. Generated when the assistant uses the "file_search" tool to search files. + title: File citation + OpenAI.MessageContentTextAnnotationsFileCitationObjectFileCitation: + type: object + required: + - file_id + properties: + file_id: + type: string + OpenAI.MessageContentTextAnnotationsFilePathObject: type: object required: - type - - vector_store_ids + - text + - file_path + - start_index + - end_index properties: type: type: string enum: - - file_search - description: The type of the file search tool. Always `file_search`. - vector_store_ids: - type: array - items: - type: string - description: The IDs of the vector stores to search. - max_num_results: + - file_path + description: Always `file_path`. + x-stainless-const: true + text: + type: string + description: The text in the message content that needs to be replaced. + file_path: + $ref: '#/components/schemas/OpenAI.MessageContentTextAnnotationsFilePathObjectFilePath' + start_index: type: integer - format: int32 - description: The maximum number of results to return. This number should be between 1 and 50 inclusive. - ranking_options: - allOf: - - $ref: '#/components/schemas/OpenAI.RankingOptions' - description: Ranking options for search. - filters: - allOf: - - $ref: '#/components/schemas/OpenAI.Filters' - nullable: true - description: A filter to apply. + minimum: 0 + end_index: + type: integer + minimum: 0 allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search). - OpenAI.FileSearchToolCallItemParam: + - $ref: '#/components/schemas/OpenAI.TextAnnotation' + description: A URL for the file that's generated when the assistant used the `code_interpreter` tool to generate a file. + title: File path + OpenAI.MessageContentTextAnnotationsFilePathObjectFilePath: + type: object + required: + - file_id + properties: + file_id: + type: string + OpenAI.MessageContentTextObject: type: object required: - type - - queries + - text properties: type: type: string enum: - - file_search_call - queries: - type: array - items: - type: string - description: The queries used to search for files. - results: + - text + description: Always `text`. + x-stainless-const: true + text: + $ref: '#/components/schemas/OpenAI.MessageContentTextObjectText' + allOf: + - $ref: '#/components/schemas/OpenAI.MessageContent' + description: The text content that is part of a message. + title: Text + OpenAI.MessageContentTextObjectText: + type: object + required: + - value + - annotations + properties: + value: + type: string + annotations: type: array items: - type: object - properties: - file_id: - type: string - description: The unique ID of the file. - text: - type: string - description: The text that was retrieved from the file. - filename: - type: string - description: The name of the file. - attributes: - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' - score: - type: number - format: float - description: The relevance score of the file - a value between 0 and 1. - nullable: true - description: The results of the file search tool call. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - The results of a file search tool call. See the - [file search guide](/docs/guides/tools-file-search) for more information. - OpenAI.FileSearchToolCallItemResource: + $ref: '#/components/schemas/OpenAI.TextAnnotation' + OpenAI.MessageContentType: + anyOf: + - type: string + - type: string + enum: + - image_file + - image_url + - text + - refusal + OpenAI.MessageObject: type: object required: - - type + - id + - object + - created_at + - thread_id - status - - queries + - incomplete_details + - completed_at + - incomplete_at + - role + - content + - assistant_id + - run_id + - attachments + - metadata properties: - type: + id: + type: string + description: The identifier, which can be referenced in API endpoints. + object: type: string enum: - - file_search_call + - thread.message + description: The object type, which is always `thread.message`. + x-stainless-const: true + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the message was created. + thread_id: + type: string + description: The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to. status: type: string enum: - in_progress - - searching - - completed - incomplete - - failed - description: |- - The status of the file search tool call. One of `in_progress`, - `searching`, `incomplete` or `failed`, - queries: + - completed + description: The status of the message, which can be either `in_progress`, `incomplete`, or `completed`. + incomplete_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.MessageObjectIncompleteDetails' + - type: 'null' + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + type: integer + format: unixTimestamp + incomplete_at: + anyOf: + - type: string + format: date-time + - type: 'null' + type: integer + format: unixTimestamp + role: + type: string + enum: + - user + - assistant + description: The entity that produced the message. One of `user` or `assistant`. + content: type: array items: - type: string - description: The queries used to search for files. - results: + $ref: '#/components/schemas/OpenAI.MessageContent' + description: The content of the message in array of text and/or images. + assistant_id: + anyOf: + - type: string + - type: 'null' + run_id: + anyOf: + - type: string + - type: 'null' + attachments: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.MessageObjectAttachments' + - type: 'null' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + description: Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + title: The message object + x-oaiMeta: + name: The message object + beta: true + example: | + { + "id": "msg_abc123", + "object": "thread.message", + "created_at": 1698983503, + "thread_id": "thread_abc123", + "role": "assistant", + "content": [ + { + "type": "text", + "text": { + "value": "Hi! How can I help you today?", + "annotations": [] + } + } + ], + "assistant_id": "asst_abc123", + "run_id": "run_abc123", + "attachments": [], + "metadata": {} + } + OpenAI.MessageObjectAttachments: + type: object + properties: + file_id: + type: string + tools: type: array items: - type: object - properties: - file_id: - type: string - description: The unique ID of the file. - text: - type: string - description: The text that was retrieved from the file. - filename: - type: string - description: The name of the file. - attributes: - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' - score: - type: number - format: float - description: The relevance score of the file - a value between 0 and 1. - nullable: true - description: The results of the file search tool call. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - The results of a file search tool call. See the - [file search guide](/docs/guides/tools-file-search) for more information. - OpenAI.Filters: - anyOf: - - $ref: '#/components/schemas/OpenAI.ComparisonFilter' - - $ref: '#/components/schemas/OpenAI.CompoundFilter' - OpenAI.FineTuneDPOHyperparameters: + anyOf: + - $ref: '#/components/schemas/OpenAI.AssistantToolsCode' + - $ref: '#/components/schemas/OpenAI.AssistantToolsFileSearchTypeOnly' + OpenAI.MessageObjectIncompleteDetails: type: object + required: + - reason properties: - beta: + reason: + type: string + enum: + - content_filter + - max_tokens + - run_cancelled + - run_expired + - run_failed + OpenAI.MessageRequestContentTextObject: + type: object + required: + - type + - text + properties: + type: + type: string + enum: + - text + description: Always `text`. + x-stainless-const: true + text: + type: string + description: Text content to be sent to the model + description: The text content that is part of a message. + title: Text + OpenAI.MessageRole: + type: string + enum: + - unknown + - user + - assistant + - system + - critic + - discriminator + - developer + - tool + OpenAI.MessageStatus: + type: string + enum: + - in_progress + - completed + - incomplete + OpenAI.Metadata: + type: object + description: |- + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + x-oaiTypeLabel: map + OpenAI.Model: + type: object + required: + - id + - created + - object + - owned_by + properties: + id: + type: string + description: The model identifier, which can be referenced in the API endpoints. + created: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) when the model was created. + object: + type: string + enum: + - model + description: The object type, which is always "model". + x-stainless-const: true + owned_by: + type: string + description: The organization that owns the model. + description: Describes an OpenAI model offering that can be used with the API. + title: Model + x-oaiMeta: + name: The model object + example: | + { + "id": "VAR_chat_model_id", + "object": "model", + "created": 1686935002, + "owned_by": "openai" + } + OpenAI.ModifyMessageRequest: + type: object + properties: + metadata: anyOf: - - type: string - enum: - - auto - - type: number - format: float - description: The beta value for the DPO method. A higher beta value will increase the weight of the penalty between the policy and reference model. - default: auto - batch_size: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.ModifyRunRequest: + type: object + properties: + metadata: anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance. - default: auto - learning_rate_multiplier: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.ModifyThreadRequest: + type: object + properties: + tool_resources: anyOf: - - type: string - enum: - - auto - - type: number - format: float - description: Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting. - default: auto - n_epochs: + - $ref: '#/components/schemas/OpenAI.ModifyThreadRequestToolResources' + - type: 'null' + metadata: anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset. - default: auto - description: The hyperparameters used for the DPO fine-tuning job. - OpenAI.FineTuneDPOMethod: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.ModifyThreadRequestToolResources: + type: object + properties: + code_interpreter: + $ref: '#/components/schemas/OpenAI.ModifyThreadRequestToolResourcesCodeInterpreter' + file_search: + $ref: '#/components/schemas/OpenAI.ModifyThreadRequestToolResourcesFileSearch' + OpenAI.ModifyThreadRequestToolResourcesCodeInterpreter: + type: object + properties: + file_ids: + type: array + items: + type: string + maxItems: 20 + OpenAI.ModifyThreadRequestToolResourcesFileSearch: type: object properties: - hyperparameters: - $ref: '#/components/schemas/OpenAI.FineTuneDPOHyperparameters' - description: Configuration for the DPO fine-tuning method. - OpenAI.FineTuneMethod: + vector_store_ids: + type: array + items: + type: string + maxItems: 1 + OpenAI.Move: type: object required: - type + - x + - 'y' properties: type: type: string enum: - - supervised - - dpo - - reinforcement - description: The type of method. Is either `supervised`, `dpo`, or `reinforcement`. - supervised: - $ref: '#/components/schemas/OpenAI.FineTuneSupervisedMethod' - dpo: - $ref: '#/components/schemas/OpenAI.FineTuneDPOMethod' - reinforcement: - $ref: '#/components/schemas/AzureFineTuneReinforcementMethod' - description: The method used for fine-tuning. - OpenAI.FineTuneReinforcementHyperparameters: + - move + description: |- + Specifies the event type. For a move action, this property is + always set to `move`. + x-stainless-const: true + default: move + x: + type: integer + description: The x-coordinate to move to. + 'y': + type: integer + description: The y-coordinate to move to. + allOf: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A mouse move action. + title: Move + OpenAI.NoiseReductionType: + type: string + enum: + - near_field + - far_field + description: Type of noise reduction. `near_field` is for close-talking microphones such as headphones, `far_field` is for far-field microphones such as laptop or conference room microphones. + OpenAI.OpenAIFile: type: object + required: + - id + - bytes + - created_at + - filename + - object + - purpose + - status properties: - batch_size: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance. - default: auto - learning_rate_multiplier: - anyOf: - - type: string - enum: - - auto - - type: number - format: float - description: Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting. - default: auto - n_epochs: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset. - default: auto - reasoning_effort: + id: + type: string + description: The file identifier, which can be referenced in the API endpoints. + bytes: + type: integer + description: The size of the file, in bytes. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the file was created. + expires_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the file will expire. + filename: + type: string + description: The name of the file. + object: type: string enum: - - default - - low - - medium - - high - description: Level of reasoning effort. - default: default - compute_multiplier: - anyOf: - - type: string - enum: - - auto - - type: number - format: float - description: Multiplier on amount of compute used for exploring search space during training. - default: auto - eval_interval: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: The number of training steps between evaluation runs. - default: auto - eval_samples: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: Number of evaluation samples to generate per training step. - default: auto - description: The hyperparameters used for the reinforcement fine-tuning job. - OpenAI.FineTuneSupervisedHyperparameters: + - file + description: The object type, which is always `file`. + x-stainless-const: true + status_details: + type: string + description: Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`. + purpose: + type: string + enum: + - assistants + - assistants_output + - batch + - batch_output + - fine-tune + - fine-tune-results + - evals + description: The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`. + status: + type: string + enum: + - uploaded + - pending + - running + - processed + - error + - deleting + - deleted + description: The `File` object represents a document that has been uploaded to OpenAI. + title: OpenAIFile + x-oaiMeta: + name: The file object + example: | + { + "id": "file-abc123", + "object": "file", + "bytes": 120000, + "created_at": 1677610602, + "expires_at": 1680202602, + "filename": "salesOverview.pdf", + "purpose": "assistants", + } + OpenAI.OtherChunkingStrategyResponseParam: type: object + required: + - type properties: - batch_size: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance. - default: auto - learning_rate_multiplier: - anyOf: - - type: string - enum: - - auto - - type: number - format: float - description: Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting. - default: auto - n_epochs: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset. - default: auto - description: The hyperparameters used for the fine-tuning job. - OpenAI.FineTuneSupervisedMethod: + type: + type: string + enum: + - other + description: Always `other`. + x-stainless-const: true + allOf: + - $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponse' + description: This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the `chunking_strategy` concept was introduced in the API. + title: Other Chunking Strategy + OpenAI.OutputContent: type: object + required: + - type properties: - hyperparameters: - $ref: '#/components/schemas/OpenAI.FineTuneSupervisedHyperparameters' - description: Configuration for the supervised fine-tuning method. - OpenAI.FineTuningIntegration: + type: + $ref: '#/components/schemas/OpenAI.OutputContentType' + discriminator: + propertyName: type + mapping: + refusal: '#/components/schemas/OpenAI.RefusalContent' + reasoning_text: '#/components/schemas/OpenAI.ReasoningTextContent' + OpenAI.OutputContentType: + anyOf: + - type: string + - type: string + enum: + - output_text + - refusal + - reasoning_text + OpenAI.OutputItem: type: object required: - type properties: type: - anyOf: - - type: string - - type: string - enum: - - wandb + $ref: '#/components/schemas/OpenAI.OutputItemType' discriminator: propertyName: type mapping: - wandb: '#/components/schemas/OpenAI.FineTuningIntegrationWandb' - OpenAI.FineTuningIntegrationWandb: + output_message: '#/components/schemas/OpenAI.OutputItemOutputMessage' + file_search_call: '#/components/schemas/OpenAI.OutputItemFileSearchToolCall' + function_call: '#/components/schemas/OpenAI.OutputItemFunctionToolCall' + web_search_call: '#/components/schemas/OpenAI.OutputItemWebSearchToolCall' + computer_call: '#/components/schemas/OpenAI.OutputItemComputerToolCall' + reasoning: '#/components/schemas/OpenAI.OutputItemReasoningItem' + compaction: '#/components/schemas/OpenAI.CompactionBody' + image_generation_call: '#/components/schemas/OpenAI.OutputItemImageGenToolCall' + code_interpreter_call: '#/components/schemas/OpenAI.OutputItemCodeInterpreterToolCall' + local_shell_call: '#/components/schemas/OpenAI.OutputItemLocalShellToolCall' + shell_call: '#/components/schemas/OpenAI.OutputItemFunctionShellCall' + shell_call_output: '#/components/schemas/OpenAI.OutputItemFunctionShellCallOutput' + apply_patch_call: '#/components/schemas/OpenAI.OutputItemApplyPatchToolCall' + apply_patch_call_output: '#/components/schemas/OpenAI.OutputItemApplyPatchToolCallOutput' + mcp_call: '#/components/schemas/OpenAI.OutputItemMCPToolCall' + mcp_list_tools: '#/components/schemas/OpenAI.OutputItemMCPListTools' + mcp_approval_request: '#/components/schemas/OpenAI.OutputItemMCPApprovalRequest' + custom_tool_call: '#/components/schemas/OpenAI.OutputItemCustomToolCall' + OpenAI.OutputItemApplyPatchToolCall: type: object required: - type - - wandb + - id + - call_id + - status + - operation properties: type: type: string enum: - - wandb - description: The type of the integration being enabled for the fine-tuning job - wandb: - type: object - properties: - project: - type: string - description: The name of the project that the new run will be created under. - name: - type: string - nullable: true - description: A display name to set for the run. If not set, we will use the Job ID as the name. - entity: - type: string - nullable: true - description: |- - The entity to use for the run. This allows you to set the team or username of the WandB user that you would - like associated with the run. If not set, the default entity for the registered WandB API key is used. - tags: - type: array - items: - type: string - description: |- - A list of tags to be attached to the newly created run. These tags are passed through directly to WandB. Some - default tags are generated by OpenAI: "openai/finetune", "openai/{base-model}", "openai/{ftjob-abcdef}". - required: - - project - description: |- - The settings for your integration with Weights and Biases. This payload specifies the project that - metrics will be sent to. Optionally, you can set an explicit display name for your run, add tags - to your run, and set a default entity (team, username, etc) to be associated with your run. + - apply_patch_call + description: The type of the item. Always `apply_patch_call`. + x-stainless-const: true + default: apply_patch_call + id: + type: string + description: The unique ID of the apply patch tool call. Populated when this item is returned via API. + call_id: + type: string + description: The unique ID of the apply patch tool call generated by the model. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchCallStatus' + description: The status of the apply patch tool call. One of `in_progress` or `completed`. + operation: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperation' + description: One of the create_file, delete_file, or update_file operations applied via apply_patch. + created_by: + type: string + description: The ID of the entity that created this tool call. allOf: - - $ref: '#/components/schemas/OpenAI.FineTuningIntegration' - OpenAI.FineTuningJob: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemApplyPatchToolCallOutput: type: object - required: - - id - - created_at - - error - - fine_tuned_model - - finished_at - - hyperparameters - - model - - object - - organization_id - - result_files + required: + - type + - id + - call_id - status - - trained_tokens - - training_file - - validation_file - - seed - - metadata properties: - user_provided_suffix: + type: type: string - nullable: true - description: The descriptive suffix applied to the job, as specified in the job creation request. + enum: + - apply_patch_call_output + description: The type of the item. Always `apply_patch_call_output`. + x-stainless-const: true + default: apply_patch_call_output id: type: string - description: The object identifier, which can be referenced in the API endpoints. - created_at: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) for when the fine-tuning job was created. - error: - type: object - properties: - code: - type: string - description: A machine-readable error code. - message: - type: string - description: A human-readable error message. - param: - type: string - nullable: true - description: The parameter that was invalid, usually `training_file` or `validation_file`. This field will be null if the failure was not parameter-specific. - required: - - code - - message - - param - nullable: true - description: For fine-tuning jobs that have `failed`, this will contain more information on the cause of the failure. - fine_tuned_model: + description: The unique ID of the apply patch tool call output. Populated when this item is returned via API. + call_id: type: string - nullable: true - description: The name of the fine-tuned model that is being created. The value will be null if the fine-tuning job is still running. - finished_at: - type: integer - format: unixtime - nullable: true - description: The Unix timestamp (in seconds) for when the fine-tuning job was finished. The value will be null if the fine-tuning job is still running. - hyperparameters: - type: object - properties: - batch_size: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - nullable: true - description: |- - Number of examples in each batch. A larger batch size means that model parameters - are updated less frequently, but with lower variance. - default: auto - learning_rate_multiplier: - anyOf: - - type: string - enum: - - auto - - type: number - format: float - description: |- - Scaling factor for the learning rate. A smaller learning rate may be useful to avoid - overfitting. - default: auto - n_epochs: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: |- - The number of epochs to train the model for. An epoch refers to one full cycle - through the training dataset. - default: auto - description: The hyperparameters used for the fine-tuning job. This value will only be returned when running `supervised` jobs. - model: + description: The unique ID of the apply patch tool call generated by the model. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchCallOutputStatus' + description: The status of the apply patch tool call output. One of `completed` or `failed`. + output: + anyOf: + - type: string + - type: 'null' + created_by: type: string - description: The base model that is being fine-tuned. - object: + description: The ID of the entity that created this tool call output. + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemCodeInterpreterToolCall: + type: object + required: + - type + - id + - status + - container_id + - code + - outputs + properties: + type: type: string enum: - - fine_tuning.job - description: The object type, which is always "fine_tuning.job". - organization_id: + - code_interpreter_call + description: The type of the code interpreter tool call. Always `code_interpreter_call`. + x-stainless-const: true + default: code_interpreter_call + id: type: string - description: The organization that owns the fine-tuning job. - result_files: - type: array - items: - type: string - description: The compiled results file ID(s) for the fine-tuning job. You can retrieve the results with the [Files API](/docs/api-reference/files/retrieve-contents). + description: The unique ID of the code interpreter tool call. status: type: string enum: - - validating_files - - queued - - running - - succeeded + - in_progress + - completed + - incomplete + - interpreting - failed - - cancelled - description: The current status of the fine-tuning job, which can be either `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`. - trained_tokens: - type: integer - format: int32 - nullable: true - description: The total number of billable tokens processed by this fine-tuning job. The value will be null if the fine-tuning job is still running. - training_file: - type: string - description: The file ID used for training. You can retrieve the training data with the [Files API](/docs/api-reference/files/retrieve-contents). - validation_file: + description: The status of the code interpreter tool call. Valid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`. + container_id: type: string - nullable: true - description: The file ID used for validation. You can retrieve the validation results with the [Files API](/docs/api-reference/files/retrieve-contents). - integrations: - type: array - items: - $ref: '#/components/schemas/OpenAI.FineTuningIntegration' - nullable: true - description: A list of integrations to enable for this fine-tuning job. - seed: - type: integer - format: int32 - description: The seed used for the fine-tuning job. - estimated_finish: - type: integer - format: unixtime - nullable: true - description: The Unix timestamp (in seconds) for when the fine-tuning job is estimated to finish. The value will be null if the fine-tuning job is not running. - method: - $ref: '#/components/schemas/OpenAI.FineTuneMethod' - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - description: The `fine_tuning.job` object represents a fine-tuning job that has been created through the API. - OpenAI.FineTuningJobCheckpoint: + description: The ID of the container used to run the code. + code: + anyOf: + - type: string + - type: 'null' + outputs: + anyOf: + - type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputLogs' + - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputImage' + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemComputerToolCall: type: object required: + - type - id - - created_at - - fine_tuned_model_checkpoint - - step_number - - metrics - - fine_tuning_job_id - - object + - call_id + - action + - pending_safety_checks + - status properties: - id: + type: type: string - description: The checkpoint identifier, which can be referenced in the API endpoints. - created_at: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) for when the checkpoint was created. - fine_tuned_model_checkpoint: + enum: + - computer_call + description: The type of the computer call. Always `computer_call`. + default: computer_call + id: type: string - description: The name of the fine-tuned checkpoint model that is created. - step_number: - type: integer - format: int32 - description: The step number that the checkpoint was created at. - metrics: - type: object - properties: - step: - type: number - format: float - train_loss: - type: number - format: float - train_mean_token_accuracy: - type: number - format: float - valid_loss: - type: number - format: float - valid_mean_token_accuracy: - type: number - format: float - full_valid_loss: - type: number - format: float - full_valid_mean_token_accuracy: - type: number - format: float - description: Metrics at the step number during the fine-tuning job. - fine_tuning_job_id: + description: The unique ID of the computer call. + call_id: type: string - description: The name of the fine-tuning job that this checkpoint was created from. - object: + description: An identifier used when responding to the tool call with output. + action: + $ref: '#/components/schemas/OpenAI.ComputerAction' + pending_safety_checks: + type: array + items: + $ref: '#/components/schemas/OpenAI.ComputerCallSafetyCheckParam' + description: The pending safety checks for the computer call. + status: type: string enum: - - fine_tuning.job.checkpoint - description: The object type, which is always "fine_tuning.job.checkpoint". - description: The `fine_tuning.job.checkpoint` object represents a model checkpoint for a fine-tuning job that is ready to use. - OpenAI.FineTuningJobEvent: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemCustomToolCall: type: object required: - - object - - id - - created_at - - level - - message + - type + - call_id + - name + - input properties: - object: + type: type: string enum: - - fine_tuning.job.event - description: The object type, which is always "fine_tuning.job.event". + - custom_tool_call + description: The type of the custom tool call. Always `custom_tool_call`. + x-stainless-const: true id: type: string - description: The object identifier. - created_at: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) for when the fine-tuning job was created. - level: + description: The unique ID of the custom tool call in the OpenAI platform. + call_id: type: string - enum: - - info - - warn - - error - description: The log level of the event. - message: + description: An identifier used to map this custom tool call to a tool call output. + name: type: string - description: The message of the event. - type: + description: The name of the custom tool being called. + input: type: string - enum: - - message - - metrics - description: The type of event. - data: - description: The data associated with the event. - description: Fine-tuning job event object - OpenAI.FunctionObject: + description: The input for the custom tool call generated by the model. + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemFileSearchToolCall: type: object required: - - name + - id + - type + - status + - queries properties: - description: + id: type: string - description: A description of what the function does, used by the model to choose when and how to call the function. - name: + description: The unique ID of the file search tool call. + type: type: string - description: The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. - parameters: + enum: + - file_search_call + description: The type of the file search tool call. Always `file_search_call`. + x-stainless-const: true + status: + type: string + enum: + - in_progress + - searching + - completed + - incomplete + - failed description: |- - The parameters the functions accepts, described as a JSON Schema object. See the [guide](/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. - - Omitting `parameters` defines a function with an empty parameter list. - strict: - type: boolean - nullable: true - description: Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](docs/guides/function-calling). - default: false - OpenAI.FunctionTool: + The status of the file search tool call. One of `in_progress`, + `searching`, `incomplete` or `failed`, + queries: + type: array + items: + type: string + description: The queries used to search for files. + results: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.FileSearchToolCallResults' + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemFunctionShellCall: type: object required: - type - - name - - parameters - - strict + - id + - call_id + - action + - status properties: type: type: string enum: - - function - description: The type of the function tool. Always `function`. - name: + - shell_call + description: The type of the item. Always `shell_call`. + x-stainless-const: true + default: shell_call + id: type: string - description: The name of the function to call. - description: + description: The unique ID of the shell tool call. Populated when this item is returned via API. + call_id: type: string - nullable: true - description: A description of the function. Used by the model to determine whether or not to call the function. - parameters: - nullable: true - description: A JSON schema object describing the parameters of the function. - strict: - type: boolean - nullable: true - description: Whether to enforce strict parameter validation. Default `true`. + description: The unique ID of the shell tool call generated by the model. + action: + allOf: + - $ref: '#/components/schemas/OpenAI.FunctionShellAction' + description: The shell commands and limits that describe how to run the tool call. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.LocalShellCallStatus' + description: The status of the shell call. One of `in_progress`, `completed`, or `incomplete`. + created_by: + type: string + description: The ID of the entity that created this tool call. allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: Defines a function in your own code the model can choose to call. Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling). - OpenAI.FunctionToolCallItemParam: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemFunctionShellCallOutput: type: object required: - type + - id - call_id - - name - - arguments + - output + - max_output_length properties: type: type: string enum: - - function_call - call_id: + - shell_call_output + description: The type of the shell call output. Always `shell_call_output`. + x-stainless-const: true + default: shell_call_output + id: type: string - description: The unique ID of the function tool call generated by the model. - name: + description: The unique ID of the shell call output. Populated when this item is returned via API. + call_id: type: string - description: The name of the function to run. - arguments: + description: The unique ID of the shell tool call generated by the model. + output: + type: array + items: + $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputContent' + description: An array of shell call output contents + max_output_length: + anyOf: + - type: integer + - type: 'null' + created_by: type: string - description: A JSON string of the arguments to pass to the function. allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A tool call to run a function. See the - [function calling guide](/docs/guides/function-calling) for more information. - OpenAI.FunctionToolCallItemResource: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemFunctionToolCall: type: object required: - type - - status - call_id - name - arguments properties: + id: + type: string + description: The unique ID of the function tool call. type: type: string enum: - function_call - status: - type: string - enum: - - in_progress - - completed - - incomplete - description: |- - The status of the item. One of `in_progress`, `completed`, or - `incomplete`. Populated when items are returned via API. + description: The type of the function tool call. Always `function_call`. + x-stainless-const: true call_id: type: string description: The unique ID of the function tool call generated by the model. @@ -11439,2715 +19888,4207 @@ components: arguments: type: string description: A JSON string of the arguments to pass to the function. + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A tool call to run a function. See the - [function calling guide](/docs/guides/function-calling) for more information. - OpenAI.FunctionToolCallOutputItemParam: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemImageGenToolCall: type: object required: - type - - call_id - - output + - id + - status + - result properties: type: type: string enum: - - function_call_output - call_id: + - image_generation_call + description: The type of the image generation call. Always `image_generation_call`. + x-stainless-const: true + id: type: string - description: The unique ID of the function tool call generated by the model. - output: + description: The unique ID of the image generation call. + status: type: string - description: A JSON string of the output of the function tool call. + enum: + - in_progress + - completed + - generating + - failed + description: The status of the image generation call. + result: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - The output of a function tool call. - OpenAI.FunctionToolCallOutputItemResource: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemLocalShellToolCall: type: object required: - type - - status + - id - call_id - - output + - action + - status properties: type: type: string enum: - - function_call_output + - local_shell_call + description: The type of the local shell call. Always `local_shell_call`. + x-stainless-const: true + id: + type: string + description: The unique ID of the local shell call. + call_id: + type: string + description: The unique ID of the local shell tool call generated by the model. + action: + $ref: '#/components/schemas/OpenAI.LocalShellExecAction' status: type: string enum: - in_progress - completed - incomplete - description: |- - The status of the item. One of `in_progress`, `completed`, or - `incomplete`. Populated when items are returned via API. - call_id: - type: string - description: The unique ID of the function tool call generated by the model. - output: - type: string - description: A JSON string of the output of the function tool call. + description: The status of the local shell call. allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - The output of a function tool call. - OpenAI.Grader: - type: object - required: - - type - properties: - type: - $ref: '#/components/schemas/OpenAI.GraderType' - discriminator: - propertyName: type - mapping: - label_model: '#/components/schemas/OpenAI.GraderLabelModel' - text_similarity: '#/components/schemas/OpenAI.GraderTextSimilarity' - python: '#/components/schemas/OpenAI.GraderPython' - score_model: '#/components/schemas/OpenAI.GraderScoreModel' - multi: '#/components/schemas/OpenAI.GraderMulti' - OpenAI.GraderLabelModel: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemMCPApprovalRequest: type: object required: - type + - id + - server_label - name - - model - - input - - labels - - passing_labels + - arguments properties: type: type: string enum: - - label_model - description: The object type, which is always `label_model`. + - mcp_approval_request + description: The type of the item. Always `mcp_approval_request`. + x-stainless-const: true + id: + type: string + description: The unique ID of the approval request. + server_label: + type: string + description: The label of the MCP server making the request. name: type: string - description: The name of the grader. - model: + description: The name of the tool to run. + arguments: type: string - description: The model to use for the evaluation. Must support structured outputs. - input: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalItem' - labels: - type: array - items: - type: string - description: The labels to assign to each item in the evaluation. - passing_labels: - type: array - items: - type: string - description: The labels that indicate a passing result. Must be a subset of labels. + description: A JSON string of arguments for the tool. allOf: - - $ref: '#/components/schemas/OpenAI.Grader' - description: |- - A LabelModelGrader object which uses a model to assign labels to each item - in the evaluation. - OpenAI.GraderMulti: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemMCPListTools: type: object required: - type - - name - - graders - - calculate_output + - id + - server_label + - tools properties: type: type: string enum: - - multi - description: The object type, which is always `multi`. - name: + - mcp_list_tools + description: The type of the item. Always `mcp_list_tools`. + x-stainless-const: true + id: type: string - description: The name of the grader. - graders: - type: object - additionalProperties: - anyOf: - - $ref: '#/components/schemas/OpenAI.GraderStringCheck' - - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' - - $ref: '#/components/schemas/OpenAI.GraderScoreModel' - calculate_output: + description: The unique ID of the list. + server_label: type: string - description: A formula to calculate the output based on grader results. + description: The label of the MCP server. + tools: + type: array + items: + $ref: '#/components/schemas/OpenAI.MCPListToolsTool' + description: The tools available on the server. + error: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.Grader' - description: A MultiGrader object combines the output of multiple graders to produce a single score. - OpenAI.GraderPython: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemMCPToolCall: type: object required: - type + - id + - server_label - name - - source + - arguments properties: type: type: string enum: - - python - description: The object type, which is always `python`. - name: + - mcp_call + description: The type of the item. Always `mcp_call`. + x-stainless-const: true + id: type: string - description: The name of the grader. - source: + description: The unique ID of the tool call. + server_label: type: string - description: The source code of the python script. - image_tag: + description: The label of the MCP server running the tool. + name: type: string - description: The image tag to use for the python script. + description: The name of the tool that was run. + arguments: + type: string + description: A JSON string of the arguments passed to the tool. + output: + anyOf: + - type: string + - type: 'null' + error: + anyOf: + - type: string + - type: 'null' + status: + allOf: + - $ref: '#/components/schemas/OpenAI.MCPToolCallStatus' + description: The status of the tool call. One of `in_progress`, `completed`, `incomplete`, `calling`, or `failed`. + approval_request_id: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.Grader' - description: A PythonGrader object that runs a python script on the input. - OpenAI.GraderScoreModel: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemOutputMessage: type: object required: + - id - type - - name - - model - - input + - role + - content + - status properties: + id: + type: string + description: The unique ID of the output message. + x-stainless-go-json: omitzero type: type: string enum: - - score_model - description: The object type, which is always `score_model`. - name: - type: string - description: The name of the grader. - model: + - output_message + description: The type of the output message. Always `message`. + x-stainless-const: true + role: type: string - description: The model to use for the evaluation. - sampling_params: - description: The sampling parameters for the model. - input: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalItem' - description: The input text. This may include template strings. - range: + enum: + - assistant + description: The role of the output message. Always `assistant`. + x-stainless-const: true + content: type: array items: - type: number - format: float - description: The range of the score. Defaults to `[0, 1]`. + $ref: '#/components/schemas/OpenAI.OutputMessageContent' + description: The content of the output message. + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the message input. One of `in_progress`, `completed`, or + `incomplete`. Populated when input items are returned via API. allOf: - - $ref: '#/components/schemas/OpenAI.Grader' - description: A ScoreModelGrader object that uses a model to assign a score to the input. - OpenAI.GraderStringCheck: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemReasoningItem: type: object required: - type - - name - - input - - reference - - operation + - id + - summary properties: type: type: string enum: - - string_check - description: The object type, which is always `string_check`. - name: - type: string - description: The name of the grader. - input: - type: string - description: The input text. This may include template strings. - reference: + - reasoning + description: The type of the object. Always `reasoning`. + x-stainless-const: true + id: type: string - description: The reference text. This may include template strings. - operation: + description: The unique identifier of the reasoning content. + encrypted_content: + anyOf: + - type: string + - type: 'null' + summary: + type: array + items: + $ref: '#/components/schemas/OpenAI.Summary' + description: Reasoning summary content. + content: + type: array + items: + $ref: '#/components/schemas/OpenAI.ReasoningTextContent' + description: Reasoning text content. + status: type: string enum: - - eq - - ne - - like - - ilike - description: The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`. + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. allOf: - - $ref: '#/components/schemas/OpenAI.Grader' - description: A StringCheckGrader object that performs a string comparison between input and reference using a specified operation. - OpenAI.GraderTextSimilarity: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemType: + anyOf: + - type: string + - type: string + enum: + - output_message + - file_search_call + - function_call + - web_search_call + - computer_call + - reasoning + - compaction + - image_generation_call + - code_interpreter_call + - local_shell_call + - shell_call + - shell_call_output + - apply_patch_call + - apply_patch_call_output + - mcp_call + - mcp_list_tools + - mcp_approval_request + - custom_tool_call + OpenAI.OutputItemWebSearchToolCall: type: object required: + - id - type - - name - - input - - reference - - evaluation_metric + - status + - action properties: + id: + type: string + description: The unique ID of the web search tool call. type: type: string enum: - - text_similarity - description: The type of grader. - name: - type: string - description: The name of the grader. - input: - type: string - description: The text being graded. - reference: - type: string - description: The text being graded against. - evaluation_metric: + - web_search_call + description: The type of the web search tool call. Always `web_search_call`. + x-stainless-const: true + status: type: string enum: - - fuzzy_match - - bleu - - gleu - - meteor - - rouge_1 - - rouge_2 - - rouge_3 - - rouge_4 - - rouge_5 - - rouge_l - description: The evaluation metric to use. One of `fuzzy_match`, `bleu`, `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`. + - in_progress + - searching + - completed + - failed + description: The status of the web search tool call. + action: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchActionSearch' + - $ref: '#/components/schemas/OpenAI.WebSearchActionOpenPage' + - $ref: '#/components/schemas/OpenAI.WebSearchActionFind' + description: |- + An object describing the specific action taken in this web search call. + Includes details on how the model used the web (search, open_page, find). allOf: - - $ref: '#/components/schemas/OpenAI.Grader' - description: A TextSimilarityGrader object which grades text based on similarity metrics. - OpenAI.GraderType: - type: string - enum: - - string_check - - text_similarity - - score_model - - label_model - - python - - multi - OpenAI.ImageGenTool: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputMessageContent: type: object required: - type properties: type: - type: string + $ref: '#/components/schemas/OpenAI.OutputMessageContentType' + discriminator: + propertyName: type + OpenAI.OutputMessageContentType: + anyOf: + - type: string + - type: string enum: - - image_generation - description: The type of the image generation tool. Always `image_generation`. - model: + - output_text + - refusal + OpenAI.OutputTextContent: + type: object + required: + - type + - text + - annotations + properties: + type: type: string enum: - - gpt-image-1 - description: 'The image generation model to use. Default: `gpt-image-1`.' - default: gpt-image-1 - quality: + - output_text + description: The type of the output text. Always `output_text`. + x-stainless-const: true + default: output_text + text: type: string - enum: - - low - - medium - - high - - auto - description: |- - The quality of the generated image. One of `low`, `medium`, `high`, - or `auto`. Default: `auto`. - default: auto - size: + description: The text output from the model. + annotations: + type: array + items: + $ref: '#/components/schemas/OpenAI.Annotation' + description: The annotations of the text output. + logprobs: + type: array + items: + $ref: '#/components/schemas/OpenAI.LogProb' + allOf: + - $ref: '#/components/schemas/OpenAI.OutputContent' + description: A text output from the model. + title: Output text + OpenAI.ParallelToolCalls: + type: boolean + description: Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + OpenAI.PartialImages: + anyOf: + - type: integer + - type: 'null' + minimum: 0 + maximum: 3 + description: |- + The number of partial images to generate. This parameter is used for + streaming responses that return partial images. Value must be between 0 and 3. + When set to 0, the response will be a single image sent in one streaming event. + + Note that the final image may be sent before the full number of partial images + are generated if the full image is generated more quickly. + OpenAI.PredictionContent: + type: object + required: + - type + - content + properties: + type: type: string enum: - - 1024x1024 - - 1024x1536 - - 1536x1024 - - auto + - content description: |- - The size of the generated image. One of `1024x1024`, `1024x1536`, - `1536x1024`, or `auto`. Default: `auto`. - default: auto - output_format: - type: string - enum: - - png - - webp - - jpeg + The type of the predicted content you want to provide. This type is + currently always `content`. + x-stainless-const: true + content: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' description: |- - The output format of the generated image. One of `png`, `webp`, or - `jpeg`. Default: `png`. - default: png - output_compression: - type: integer - format: int32 - minimum: 0 - maximum: 100 - description: 'Compression level for the output image. Default: 100.' - default: 100 - moderation: - type: string - enum: - - auto - - low - description: 'Moderation level for the generated image. Default: `auto`.' - default: auto - background: + The content that should be matched when generating a model response. + If generated tokens would match this content, the entire model response + can be returned much more quickly. + description: |- + Static predicted output content, such as the content of a text file that is + being regenerated. + title: Static Content + OpenAI.Prompt: + type: object + required: + - id + properties: + id: type: string - enum: - - transparent - - opaque - - auto - description: |- - Background type for the generated image. One of `transparent`, - `opaque`, or `auto`. Default: `auto`. - default: auto - input_image_mask: - type: object - properties: - image_url: - type: string - description: Base64-encoded mask image. - file_id: - type: string - description: File ID for the mask image. - description: |- - Optional mask for inpainting. Contains `image_url` - (string, optional) and `file_id` (string, optional). - partial_images: - type: integer - format: int32 - minimum: 0 - maximum: 3 - description: Number of partial images to generate in streaming mode, from 0 (default value) to 3. - default: 0 - allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: A tool that generates images using a model like `gpt-image-1`. - OpenAI.ImageGenToolCallItemParam: + description: The unique identifier of the prompt template to use. + version: + anyOf: + - type: string + - type: 'null' + variables: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponsePromptVariables' + - type: 'null' + description: |- + Reference to a prompt template and its variables. + [Learn more](https://platform.openai.com/docs/guides/text?api-mode=responses#reusable-prompts). + OpenAI.RankerVersionType: + type: string + enum: + - auto + - default-2024-11-15 + OpenAI.RankingOptions: + type: object + properties: + ranker: + allOf: + - $ref: '#/components/schemas/OpenAI.RankerVersionType' + description: The ranker to use for the file search. + score_threshold: + type: number + description: The score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will attempt to return only the most relevant results, but may return fewer results. + hybrid_search: + allOf: + - $ref: '#/components/schemas/OpenAI.HybridSearchOptions' + description: Weights that control how reciprocal rank fusion balances semantic embedding matches versus sparse keyword matches when hybrid search is enabled. + OpenAI.RealtimeAudioFormats: type: object required: - type - - result properties: type: - type: string - enum: - - image_generation_call - result: - type: string - nullable: true - description: The generated image encoded in base64. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - An image generation request made by the model. - OpenAI.ImageGenToolCallItemResource: + $ref: '#/components/schemas/OpenAI.RealtimeAudioFormatsType' + discriminator: + propertyName: type + mapping: + audio/pcm: '#/components/schemas/OpenAI.RealtimeAudioFormatsAudioPcm' + audio/pcmu: '#/components/schemas/OpenAI.RealtimeAudioFormatsAudioPcmu' + audio/pcma: '#/components/schemas/OpenAI.RealtimeAudioFormatsAudioPcma' + OpenAI.RealtimeAudioFormatsAudioPcm: type: object required: - type - - status - - result properties: type: type: string enum: - - image_generation_call - status: - type: string + - audio/pcm + rate: + type: number enum: - - in_progress - - completed - - generating - - failed - result: - type: string - nullable: true - description: The generated image encoded in base64. + - 24000 allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - An image generation request made by the model. - OpenAI.ImplicitUserMessage: - type: object - required: - - content - properties: - content: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - OpenAI.Includable: - type: string - enum: - - code_interpreter_call.outputs - - computer_call_output.output.image_url - - file_search_call.results - - message.input_image.image_url - - message.output_text.logprobs - - reasoning.encrypted_content - description: |- - Specify additional output data to include in the model response. Currently - supported values are: - - `code_interpreter_call.outputs`: Includes the outputs of python code execution - in code interpreter tool call items. - - `computer_call_output.output.image_url`: Include image urls from the computer call output. - - `file_search_call.results`: Include the search results of - the file search tool call. - - `message.input_image.image_url`: Include image urls from the input message. - - `message.output_text.logprobs`: Include logprobs with assistant messages. - - `reasoning.encrypted_content`: Includes an encrypted version of reasoning - tokens in reasoning item outputs. This enables reasoning items to be used in - multi-turn conversations when using the Responses API statelessly (like - when the `store` parameter is set to `false`, or when an organization is - enrolled in the zero data retention program). - OpenAI.ItemContent: + - $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + OpenAI.RealtimeAudioFormatsAudioPcma: type: object required: - type properties: type: - $ref: '#/components/schemas/OpenAI.ItemContentType' - discriminator: - propertyName: type - mapping: - input_audio: '#/components/schemas/OpenAI.ItemContentInputAudio' - output_audio: '#/components/schemas/OpenAI.ItemContentOutputAudio' - refusal: '#/components/schemas/OpenAI.ItemContentRefusal' - input_text: '#/components/schemas/OpenAI.ItemContentInputText' - input_image: '#/components/schemas/OpenAI.ItemContentInputImage' - input_file: '#/components/schemas/OpenAI.ItemContentInputFile' - output_text: '#/components/schemas/OpenAI.ItemContentOutputText' - OpenAI.ItemContentInputAudio: + type: string + enum: + - audio/pcma + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + OpenAI.RealtimeAudioFormatsAudioPcmu: type: object required: - type - - data - - format properties: type: type: string enum: - - input_audio - description: The type of the input item. Always `input_audio`. - data: + - audio/pcmu + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + OpenAI.RealtimeAudioFormatsType: + anyOf: + - type: string + - type: string + enum: + - audio/pcm + - audio/pcmu + - audio/pcma + OpenAI.RealtimeCallCreateRequest: + type: object + properties: + sdp: type: string - description: Base64-encoded audio data. - format: + description: WebRTC Session Description Protocol (SDP) offer generated by the caller. + session: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGA' + description: |- + Optional session configuration to apply before the realtime session is + created. Use the same parameters you would send in a [`create client secret`](https://platform.openai.com/docs/api-reference/realtime-sessions/create-realtime-client-secret) + request. + required: + - sdp + OpenAI.RealtimeCallReferRequest: + type: object + required: + - target_uri + properties: + target_uri: type: string - enum: - - mp3 - - wav description: |- - The format of the audio data. Currently supported formats are `mp3` and - `wav`. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: An audio input to the model. - OpenAI.ItemContentInputFile: + URI that should appear in the SIP Refer-To header. Supports values like + `tel:+14155550123` or `sip:agent\@example.com`. + description: |- + Parameters required to transfer a SIP call to a new destination using the + Realtime API. + title: Realtime call refer request + OpenAI.RealtimeCallRejectRequest: + type: object + properties: + status_code: + type: integer + description: |- + SIP response code to send back to the caller. Defaults to `603` (Decline) + when omitted. + description: Parameters used to decline an incoming SIP call handled by the Realtime API. + title: Realtime call reject request + OpenAI.RealtimeCreateClientSecretRequest: + type: object + properties: + expires_after: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeCreateClientSecretRequestExpiresAfter' + description: |- + Configuration for the client secret expiration. Expiration refers to the time after which + a client secret will no longer be valid for creating sessions. The session itself may + continue after that time once started. A secret can be used to create multiple sessions + until it expires. + title: Client secret expiration + session: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnion' + description: |- + Session configuration to use for the client secret. Choose either a realtime + session or a transcription session. + description: |- + Create a session and client secret for the Realtime API. The request can specify + either a realtime or a transcription session configuration. + [Learn more about the Realtime API](https://platform.openai.com/docs/guides/realtime). + title: Realtime client secret creation request + OpenAI.RealtimeCreateClientSecretRequestExpiresAfter: + type: object + properties: + anchor: + type: string + enum: + - created_at + x-stainless-const: true + default: created_at + seconds: + type: integer + minimum: 10 + maximum: 7200 + default: 600 + OpenAI.RealtimeCreateClientSecretResponse: type: object required: - - type + - value + - expires_at + - session + properties: + value: + type: string + description: The generated client secret value. + expires_at: + type: integer + format: unixtime + description: Expiration timestamp for the client secret, in seconds since epoch. + session: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnion' + description: The session configuration for either a realtime or transcription session. + description: Response from creating a session and client secret for the Realtime API. + title: Realtime session and client secret + x-oaiMeta: + name: Session response object + group: realtime + example: | + { + "value": "ek_68af296e8e408191a1120ab6383263c2", + "expires_at": 1756310470, + "session": { + "type": "realtime", + "object": "realtime.session", + "id": "sess_C9CiUVUzUzYIssh3ELY1d", + "model": "gpt-realtime-2025-08-25", + "output_modalities": [ + "audio" + ], + "instructions": "You are a friendly assistant.", + "tools": [], + "tool_choice": "auto", + "max_output_tokens": "inf", + "tracing": null, + "truncation": "auto", + "prompt": null, + "expires_at": 0, + "audio": { + "input": { + "format": { + "type": "audio/pcm", + "rate": 24000 + }, + "transcription": null, + "noise_reduction": null, + "turn_detection": { + "type": "server_vad", + "threshold": 0.5, + "prefix_padding_ms": 300, + "silence_duration_ms": 200, + "idle_timeout_ms": null, + "create_response": true, + "interrupt_response": true + } + }, + "output": { + "format": { + "type": "audio/pcm", + "rate": 24000 + }, + "voice": "alloy", + "speed": 1.0 + } + }, + "include": null + } + } + OpenAI.RealtimeFunctionTool: + type: object properties: type: type: string enum: - - input_file - description: The type of the input item. Always `input_file`. - file_id: - type: string - nullable: true - description: The ID of the file to be sent to the model. - filename: + - function + description: The type of the tool, i.e. `function`. + x-stainless-const: true + name: type: string - description: The name of the file to be sent to the model. - file_data: + description: The name of the function. + description: type: string - description: The content of the file to be sent to the model. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: A file input to the model. - OpenAI.ItemContentInputImage: + description: |- + The description of the function, including guidance on when and how + to call it, and guidance about what to tell the user when calling + (if anything). + parameters: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeFunctionToolParameters' + description: Parameters of the function in JSON Schema. + title: Function tool + OpenAI.RealtimeFunctionToolParameters: + type: object + OpenAI.RealtimeSessionCreateRequest: type: object required: + - client_secret - type properties: - type: + client_secret: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestClientSecret' + description: Ephemeral key returned by the API. + modalities: + type: array + items: + type: string + enum: + - text + - audio + description: |- + The set of modalities the model can respond with. To disable audio, + set this to ["text"]. + default: + - text + - audio + instructions: type: string - enum: - - input_image - description: The type of the input item. Always `input_image`. - image_url: + description: |- + The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. "be extremely succinct", "act friendly", "here are examples of good responses") and on audio behavior (e.g. "talk quickly", "inject emotion into your voice", "laugh frequently"). The instructions are not guaranteed to be followed by the model, but they provide guidance to the model on the desired behavior. + Note that the server sets default instructions which will be used if this field is not set and are visible in the `session.created` event at the start of the session. + voice: + allOf: + - $ref: '#/components/schemas/OpenAI.VoiceIdsShared' + description: |- + The voice the model uses to respond. Voice cannot be changed during the + session once the model has responded with audio at least once. Current + voice options are `alloy`, `ash`, `ballad`, `coral`, `echo`, `sage`, + `shimmer`, and `verse`. + input_audio_format: type: string - nullable: true - description: The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL. - file_id: + description: The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`. + output_audio_format: type: string - nullable: true - description: The ID of the file to be sent to the model. - detail: + description: The format of output audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`. + input_audio_transcription: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestInputAudioTranscription' + description: |- + Configuration for input audio transcription, defaults to off and can be + set to `null` to turn off once on. Input audio transcription is not native + to the model, since the model consumes audio directly. Transcription runs + asynchronously and should be treated as rough guidance + rather than the representation understood by the model. + speed: + type: number + minimum: 0.25 + maximum: 1.5 + description: |- + The speed of the model's spoken response. 1.0 is the default speed. 0.25 is + the minimum speed. 1.5 is the maximum speed. This value can only be changed + in between model turns, not while a response is in progress. + default: 1 + tracing: + anyOf: + - type: string + enum: + - auto + - type: object + properties: + workflow_name: + type: string + group_id: + type: string + metadata: + type: object + unevaluatedProperties: {} + description: |- + Configuration options for tracing. Set to null to disable tracing. Once + tracing is enabled for a session, the configuration cannot be modified. + + `auto` will create a trace for the session with default values for the + workflow name, group id, and metadata. + title: Tracing Configuration + default: auto + turn_detection: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestTurnDetection' + description: |- + Configuration for turn detection. Can be set to `null` to turn off. Server + VAD means that the model will detect the start and end of speech based on + audio volume and respond at the end of user speech. + tools: + type: array + items: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestTools' + description: Tools (functions) available to the model. + tool_choice: + type: string + description: |- + How the model chooses tools. Options are `auto`, `none`, `required`, or + specify a function. + temperature: + type: number + description: Sampling temperature for the model, limited to [0.6, 1.2]. Defaults to 0.8. + max_response_output_tokens: + anyOf: + - type: integer + - type: string + enum: + - inf + description: |- + Maximum number of output tokens for a single assistant response, + inclusive of tool calls. Provide an integer between 1 and 4096 to + limit output tokens, or `inf` for the maximum available tokens for a + given model. Defaults to `inf`. + truncation: + $ref: '#/components/schemas/OpenAI.RealtimeTruncation' + prompt: + $ref: '#/components/schemas/OpenAI.Prompt' + type: type: string enum: - - low - - high - - auto - description: The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`. Defaults to `auto`. - default: auto + - realtime + default: realtime allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: An image input to the model. Learn about [image inputs](/docs/guides/vision). - OpenAI.ItemContentInputText: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnion' + description: |- + A new Realtime session configuration, with an ephemeral key. Default TTL + for keys is one minute. + x-oaiMeta: + name: The session object + group: realtime + example: | + { + "id": "sess_001", + "object": "realtime.session", + "model": "gpt-realtime-2025-08-25", + "modalities": ["audio", "text"], + "instructions": "You are a friendly assistant.", + "voice": "alloy", + "input_audio_format": "pcm16", + "output_audio_format": "pcm16", + "input_audio_transcription": { + "model": "whisper-1" + }, + "turn_detection": null, + "tools": [], + "tool_choice": "none", + "temperature": 0.7, + "speed": 1.1, + "tracing": "auto", + "max_response_output_tokens": 200, + "truncation": "auto", + "prompt": null, + "client_secret": { + "value": "ek_abc123", + "expires_at": 1234567890 + } + } + OpenAI.RealtimeSessionCreateRequestClientSecret: + type: object + required: + - value + - expires_at + properties: + value: + type: string + expires_at: + type: integer + format: unixtime + OpenAI.RealtimeSessionCreateRequestGA: type: object required: - type - - text properties: type: type: string enum: - - input_text - description: The type of the input item. Always `input_text`. - text: + - realtime + description: The type of session to create. Always `realtime` for the Realtime API. + x-stainless-const: true + output_modalities: + type: array + items: + type: string + enum: + - text + - audio + description: |- + The set of modalities the model can respond with. It defaults to `["audio"]`, indicating + that the model will respond with audio plus a transcript. `["text"]` can be used to make + the model respond with text only. It is not possible to request both `text` and `audio` at the same time. + default: + - audio + model: type: string - description: The text input to the model. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: A text input to the model. - OpenAI.ItemContentOutputAudio: + description: The Realtime model used for this session. + instructions: + type: string + description: |- + The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. "be extremely succinct", "act friendly", "here are examples of good responses") and on audio behavior (e.g. "talk quickly", "inject emotion into your voice", "laugh frequently"). The instructions are not guaranteed to be followed by the model, but they provide guidance to the model on the desired behavior. + + Note that the server sets default instructions which will be used if this field is not set and are visible in the `session.created` event at the start of the session. + audio: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudio' + description: Configuration for input and output audio. + include: + type: array + items: + type: string + enum: + - item.input_audio_transcription.logprobs + description: |- + Additional fields to include in server outputs. + + `item.input_audio_transcription.logprobs`: Include logprobs for input audio transcription. + tracing: + anyOf: + - type: string + enum: + - auto + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGATracing' + - type: 'null' + description: |- + Realtime API can write session traces to the [Traces Dashboard](/logs?api=traces). Set to null to disable tracing. Once + tracing is enabled for a session, the configuration cannot be modified. + + `auto` will create a trace for the session with default values for the + workflow name, group id, and metadata. + title: Tracing Configuration + default: auto + tools: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.RealtimeFunctionTool' + - $ref: '#/components/schemas/OpenAI.MCPTool' + description: Tools available to the model. + tool_choice: + anyOf: + - $ref: '#/components/schemas/OpenAI.ToolChoiceOptions' + - $ref: '#/components/schemas/OpenAI.ToolChoiceFunction' + - $ref: '#/components/schemas/OpenAI.ToolChoiceMCP' + description: |- + How the model chooses tools. Provide one of the string modes or force a specific + function/MCP tool. + default: auto + max_output_tokens: + anyOf: + - type: integer + - type: string + enum: + - inf + description: |- + Maximum number of output tokens for a single assistant response, + inclusive of tool calls. Provide an integer between 1 and 4096 to + limit output tokens, or `inf` for the maximum available tokens for a + given model. Defaults to `inf`. + truncation: + $ref: '#/components/schemas/OpenAI.RealtimeTruncation' + prompt: + $ref: '#/components/schemas/OpenAI.Prompt' + description: Realtime session object configuration. + title: Realtime session configuration + OpenAI.RealtimeSessionCreateRequestGAAudio: + type: object + properties: + input: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudioInput' + output: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudioOutput' + OpenAI.RealtimeSessionCreateRequestGAAudioInput: + type: object + properties: + format: + $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + transcription: + $ref: '#/components/schemas/OpenAI.AudioTranscription' + noise_reduction: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudioInputNoiseReduction' + turn_detection: + $ref: '#/components/schemas/OpenAI.RealtimeTurnDetection' + OpenAI.RealtimeSessionCreateRequestGAAudioInputNoiseReduction: type: object - required: - - type - - data - - transcript properties: type: + $ref: '#/components/schemas/OpenAI.NoiseReductionType' + OpenAI.RealtimeSessionCreateRequestGAAudioOutput: + type: object + properties: + format: + $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + voice: + $ref: '#/components/schemas/OpenAI.VoiceIdsShared' + speed: + type: number + minimum: 0.25 + maximum: 1.5 + default: 1 + OpenAI.RealtimeSessionCreateRequestGATracing: + type: object + properties: + workflow_name: type: string - enum: - - output_audio - description: The type of the output audio. Always `output_audio`. - data: + group_id: type: string - description: Base64-encoded audio data from the model. - transcript: + metadata: + type: object + unevaluatedProperties: {} + OpenAI.RealtimeSessionCreateRequestInputAudioTranscription: + type: object + properties: + model: type: string - description: The transcript of the audio data from the model. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: An audio output from the model. - OpenAI.ItemContentOutputText: + OpenAI.RealtimeSessionCreateRequestTools: type: object - required: - - type - - text - - annotations properties: type: type: string enum: - - output_text - description: The type of the output text. Always `output_text`. - text: + - function + x-stainless-const: true + name: type: string - description: The text output from the model. - annotations: - type: array - items: - $ref: '#/components/schemas/OpenAI.Annotation' - description: The annotations of the text output. - logprobs: - type: array - items: - $ref: '#/components/schemas/OpenAI.LogProb' - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: A text output from the model. - OpenAI.ItemContentRefusal: + description: + type: string + parameters: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestToolsParameters' + OpenAI.RealtimeSessionCreateRequestToolsParameters: + type: object + OpenAI.RealtimeSessionCreateRequestTurnDetection: type: object - required: - - type - - refusal properties: type: type: string - enum: - - refusal - description: The type of the refusal. Always `refusal`. - refusal: - type: string - description: The refusal explanationfrom the model. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: A refusal from the model. - OpenAI.ItemContentType: - type: string - enum: - - input_text - - input_audio - - input_image - - input_file - - output_text - - output_audio - - refusal - description: Multi-modal input and output contents. - OpenAI.ItemParam: + threshold: + type: number + prefix_padding_ms: + type: integer + silence_duration_ms: + type: integer + OpenAI.RealtimeSessionCreateRequestUnion: type: object required: - type properties: type: - $ref: '#/components/schemas/OpenAI.ItemType' + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnionType' discriminator: propertyName: type mapping: - file_search_call: '#/components/schemas/OpenAI.FileSearchToolCallItemParam' - computer_call: '#/components/schemas/OpenAI.ComputerToolCallItemParam' - computer_call_output: '#/components/schemas/OpenAI.ComputerToolCallOutputItemParam' - web_search_call: '#/components/schemas/OpenAI.WebSearchToolCallItemParam' - function_call: '#/components/schemas/OpenAI.FunctionToolCallItemParam' - function_call_output: '#/components/schemas/OpenAI.FunctionToolCallOutputItemParam' - reasoning: '#/components/schemas/OpenAI.ReasoningItemParam' - item_reference: '#/components/schemas/OpenAI.ItemReferenceItemParam' - image_generation_call: '#/components/schemas/OpenAI.ImageGenToolCallItemParam' - code_interpreter_call: '#/components/schemas/OpenAI.CodeInterpreterToolCallItemParam' - local_shell_call: '#/components/schemas/OpenAI.LocalShellToolCallItemParam' - local_shell_call_output: '#/components/schemas/OpenAI.LocalShellToolCallOutputItemParam' - mcp_list_tools: '#/components/schemas/OpenAI.MCPListToolsItemParam' - mcp_approval_request: '#/components/schemas/OpenAI.MCPApprovalRequestItemParam' - mcp_approval_response: '#/components/schemas/OpenAI.MCPApprovalResponseItemParam' - mcp_call: '#/components/schemas/OpenAI.MCPCallItemParam' - message: '#/components/schemas/OpenAI.ResponsesMessageItemParam' - description: Content item used to generate a response. - OpenAI.ItemReferenceItemParam: - type: object - required: - - type - - id - properties: - type: - type: string + realtime: '#/components/schemas/OpenAI.RealtimeSessionCreateRequest' + transcription: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequest' + OpenAI.RealtimeSessionCreateRequestUnionType: + anyOf: + - type: string + - type: string enum: - - item_reference - id: - type: string - description: The service-originated ID of the previously generated response item being referenced. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: An internal identifier for an item to reference. - OpenAI.ItemResource: + - realtime + - transcription + OpenAI.RealtimeSessionCreateResponse: type: object required: - type - - id properties: - type: - $ref: '#/components/schemas/OpenAI.ItemType' id: type: string - discriminator: - propertyName: type - mapping: - file_search_call: '#/components/schemas/OpenAI.FileSearchToolCallItemResource' - computer_call: '#/components/schemas/OpenAI.ComputerToolCallItemResource' - computer_call_output: '#/components/schemas/OpenAI.ComputerToolCallOutputItemResource' - web_search_call: '#/components/schemas/OpenAI.WebSearchToolCallItemResource' - function_call: '#/components/schemas/OpenAI.FunctionToolCallItemResource' - function_call_output: '#/components/schemas/OpenAI.FunctionToolCallOutputItemResource' - reasoning: '#/components/schemas/OpenAI.ReasoningItemResource' - image_generation_call: '#/components/schemas/OpenAI.ImageGenToolCallItemResource' - code_interpreter_call: '#/components/schemas/OpenAI.CodeInterpreterToolCallItemResource' - local_shell_call: '#/components/schemas/OpenAI.LocalShellToolCallItemResource' - local_shell_call_output: '#/components/schemas/OpenAI.LocalShellToolCallOutputItemResource' - mcp_list_tools: '#/components/schemas/OpenAI.MCPListToolsItemResource' - mcp_approval_request: '#/components/schemas/OpenAI.MCPApprovalRequestItemResource' - mcp_approval_response: '#/components/schemas/OpenAI.MCPApprovalResponseItemResource' - mcp_call: '#/components/schemas/OpenAI.MCPCallItemResource' - message: '#/components/schemas/OpenAI.ResponsesMessageItemResource' - description: Content item used to generate a response. - OpenAI.ItemType: - type: string - enum: - - message - - file_search_call - - function_call - - function_call_output - - computer_call - - computer_call_output - - web_search_call - - reasoning - - item_reference - - image_generation_call - - code_interpreter_call - - local_shell_call - - local_shell_call_output - - mcp_list_tools - - mcp_approval_request - - mcp_approval_response - - mcp_call - OpenAI.ListFineTuningJobCheckpointsResponse: - type: object - required: - - data - - object - - has_more - properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.FineTuningJobCheckpoint' + description: Unique identifier for the session that looks like `sess_1234567890abcdef`. object: type: string - enum: - - list - first_id: + description: The object type. Always `realtime.session`. + expires_at: + type: integer + format: unixtime + description: Expiration timestamp for the session, in seconds since epoch. + include: + type: array + items: + type: string + enum: + - item.input_audio_transcription.logprobs + description: |- + Additional fields to include in server outputs. + - `item.input_audio_transcription.logprobs`: Include logprobs for input audio transcription. + model: type: string - nullable: true - last_id: + description: The Realtime model used for this session. + output_modalities: + type: array + items: + type: string + enum: + - text + - audio + description: |- + The set of modalities the model can respond with. To disable audio, + set this to ["text"]. + instructions: type: string - nullable: true - has_more: - type: boolean - OpenAI.ListFineTuningJobEventsResponse: - type: object - required: - - data - - object - - has_more - properties: - data: + description: |- + The default system instructions (i.e. system message) prepended to model + calls. This field allows the client to guide the model on desired + responses. The model can be instructed on response content and format, + (e.g. "be extremely succinct", "act friendly", "here are examples of good + responses") and on audio behavior (e.g. "talk quickly", "inject emotion + into your voice", "laugh frequently"). The instructions are not guaranteed + to be followed by the model, but they provide guidance to the model on the + desired behavior. + + Note that the server sets default instructions which will be used if this + field is not set and are visible in the `session.created` event at the + start of the session. + audio: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudio' + description: Configuration for input and output audio for the session. + tracing: + anyOf: + - type: string + enum: + - auto + - type: object + properties: + workflow_name: + type: string + group_id: + type: string + metadata: + type: object + unevaluatedProperties: {} + description: |- + Configuration options for tracing. Set to null to disable tracing. Once + tracing is enabled for a session, the configuration cannot be modified. + + `auto` will create a trace for the session with default values for the + workflow name, group id, and metadata. + title: Tracing Configuration + default: auto + turn_detection: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseTurnDetection' + description: |- + Configuration for turn detection. Can be set to `null` to turn off. Server + VAD means that the model will detect the start and end of speech based on + audio volume and respond at the end of user speech. + tools: type: array items: - $ref: '#/components/schemas/OpenAI.FineTuningJobEvent' - object: + $ref: '#/components/schemas/OpenAI.RealtimeFunctionTool' + description: Tools (functions) available to the model. + tool_choice: + type: string + description: |- + How the model chooses tools. Options are `auto`, `none`, `required`, or + specify a function. + max_output_tokens: + anyOf: + - type: integer + - type: string + enum: + - inf + description: |- + Maximum number of output tokens for a single assistant response, + inclusive of tool calls. Provide an integer between 1 and 4096 to + limit output tokens, or `inf` for the maximum available tokens for a + given model. Defaults to `inf`. + type: type: string enum: - - list - has_more: - type: boolean - OpenAI.ListModelsResponse: + - realtime + default: realtime + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnion' + description: A Realtime session configuration object. + title: Realtime session configuration object + x-oaiMeta: + name: The session object + group: realtime + example: | + { + "id": "sess_001", + "object": "realtime.session", + "expires_at": 1742188264, + "model": "gpt-realtime", + "output_modalities": ["audio"], + "instructions": "You are a friendly assistant.", + "tools": [], + "tool_choice": "none", + "max_output_tokens": "inf", + "tracing": "auto", + "truncation": "auto", + "prompt": null, + "audio": { + "input": { + "format": { + "type": "audio/pcm", + "rate": 24000 + }, + "transcription": { "model": "whisper-1" }, + "noise_reduction": null, + "turn_detection": null + }, + "output": { + "format": { + "type": "audio/pcm", + "rate": 24000 + }, + "voice": "alloy", + "speed": 1.0 + } + } + } + OpenAI.RealtimeSessionCreateResponseAudio: type: object - required: - - object - - data properties: - object: - type: string - enum: - - list - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.Model' - OpenAI.ListPaginatedFineTuningJobsResponse: + input: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioInput' + output: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioOutput' + OpenAI.RealtimeSessionCreateResponseAudioInput: type: object - required: - - data - - has_more - - object properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.FineTuningJob' - has_more: - type: boolean - object: - type: string - enum: - - list - OpenAI.ListVectorStoreFilesFilter: - anyOf: - - type: string - - type: string - enum: - - in_progress - - completed - - failed - - cancelled - OpenAI.ListVectorStoreFilesResponse: + format: + $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + transcription: + $ref: '#/components/schemas/OpenAI.AudioTranscription' + noise_reduction: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioInputNoiseReduction' + turn_detection: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioInputTurnDetection' + OpenAI.RealtimeSessionCreateResponseAudioInputNoiseReduction: type: object - required: - - object - - data - - first_id - - last_id - - has_more properties: - object: - type: string - enum: - - list - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' - first_id: + type: + $ref: '#/components/schemas/OpenAI.NoiseReductionType' + OpenAI.RealtimeSessionCreateResponseAudioInputTurnDetection: + type: object + properties: + type: type: string - last_id: + threshold: + type: number + prefix_padding_ms: + type: integer + silence_duration_ms: + type: integer + OpenAI.RealtimeSessionCreateResponseAudioOutput: + type: object + properties: + format: + $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + voice: + $ref: '#/components/schemas/OpenAI.VoiceIdsShared' + speed: + type: number + OpenAI.RealtimeSessionCreateResponseTurnDetection: + type: object + properties: + type: type: string - has_more: - type: boolean - OpenAI.ListVectorStoresResponse: + threshold: + type: number + prefix_padding_ms: + type: integer + silence_duration_ms: + type: integer + OpenAI.RealtimeSessionCreateResponseUnion: type: object required: - - object - - data - - first_id - - last_id - - has_more + - type properties: - object: - type: string - enum: - - list - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.VectorStoreObject' - first_id: - type: string - last_id: - type: string - has_more: - type: boolean - OpenAI.LocalShellExecAction: + type: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnionType' + discriminator: + propertyName: type + mapping: + realtime: '#/components/schemas/OpenAI.RealtimeSessionCreateResponse' + transcription: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponse' + OpenAI.RealtimeSessionCreateResponseUnionType: + anyOf: + - type: string + - type: string + enum: + - realtime + - transcription + OpenAI.RealtimeTranscriptionSessionCreateRequest: type: object required: - type - - command - - env properties: - type: + turn_detection: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequestTurnDetection' + description: Configuration for turn detection. Can be set to `null` to turn off. Server VAD means that the model will detect the start and end of speech based on audio volume and respond at the end of user speech. + input_audio_noise_reduction: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequestInputAudioNoiseReduction' + description: |- + Configuration for input audio noise reduction. This can be set to `null` to turn off. + Noise reduction filters audio added to the input audio buffer before it is sent to VAD and the model. + Filtering the audio can improve VAD and turn detection accuracy (reducing false positives) and model performance by improving perception of the input audio. + input_audio_format: type: string enum: - - exec - description: The type of the local shell action. Always `exec`. - command: + - pcm16 + - g711_ulaw + - g711_alaw + description: |- + The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`. + For `pcm16`, input audio must be 16-bit PCM at a 24kHz sample rate, + single channel (mono), and little-endian byte order. + default: pcm16 + input_audio_transcription: + allOf: + - $ref: '#/components/schemas/OpenAI.AudioTranscription' + description: Configuration for input audio transcription. The client can optionally set the language and prompt for transcription, these offer additional guidance to the transcription service. + include: type: array items: type: string - description: The command to run. - timeout_ms: - type: integer - format: int32 - nullable: true - description: Optional timeout in milliseconds for the command. - working_directory: - type: string - nullable: true - description: Optional working directory to run the command in. - env: - type: object - additionalProperties: - type: string - description: Environment variables to set for the command. - user: + enum: + - item.input_audio_transcription.logprobs + description: |- + The set of items to include in the transcription. Current available items are: + `item.input_audio_transcription.logprobs` + type: type: string - nullable: true - description: Optional user to run the command as. - description: Execute a shell command on the server. - OpenAI.LocalShellTool: + enum: + - transcription + default: transcription + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnion' + description: Realtime transcription session object configuration. + title: Realtime transcription session configuration + OpenAI.RealtimeTranscriptionSessionCreateRequestInputAudioNoiseReduction: + type: object + properties: + type: + $ref: '#/components/schemas/OpenAI.NoiseReductionType' + OpenAI.RealtimeTranscriptionSessionCreateRequestTurnDetection: type: object - required: - - type properties: type: type: string enum: - - local_shell - description: The type of the local shell tool. Always `local_shell`. - allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: A tool that allows the model to execute shell commands in a local environment. - OpenAI.LocalShellToolCallItemParam: + - server_vad + threshold: + type: number + prefix_padding_ms: + type: integer + silence_duration_ms: + type: integer + OpenAI.RealtimeTranscriptionSessionCreateResponse: type: object required: + - client_secret - type - - call_id - - action properties: + client_secret: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponseClientSecret' + description: |- + Ephemeral key returned by the API. Only present when the session is + created on the server via REST API. + modalities: + type: array + items: + type: string + enum: + - text + - audio + description: |- + The set of modalities the model can respond with. To disable audio, + set this to ["text"]. + input_audio_format: + type: string + description: The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`. + input_audio_transcription: + allOf: + - $ref: '#/components/schemas/OpenAI.AudioTranscription' + description: Configuration of the transcription model. + turn_detection: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponseTurnDetection' + description: |- + Configuration for turn detection. Can be set to `null` to turn off. Server + VAD means that the model will detect the start and end of speech based on + audio volume and respond at the end of user speech. type: type: string enum: - - local_shell_call - call_id: - type: string - description: The unique ID of the local shell tool call generated by the model. - action: - $ref: '#/components/schemas/OpenAI.LocalShellExecAction' + - transcription + x-stainless-const: true allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A tool call to run a command on the local shell. - OpenAI.LocalShellToolCallItemResource: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnion' + description: |- + A new Realtime transcription session configuration. + + When a session is created on the server via REST API, the session object + also contains an ephemeral key. Default TTL for keys is 10 minutes. This + property is not present when a session is updated via the WebSocket API. + x-oaiMeta: + name: The transcription session object + group: realtime + example: | + { + "id": "sess_BBwZc7cFV3XizEyKGDCGL", + "object": "realtime.transcription_session", + "expires_at": 1742188264, + "modalities": ["audio", "text"], + "turn_detection": { + "type": "server_vad", + "threshold": 0.5, + "prefix_padding_ms": 300, + "silence_duration_ms": 200 + }, + "input_audio_format": "pcm16", + "input_audio_transcription": { + "model": "gpt-4o-transcribe", + "language": null, + "prompt": "" + }, + "client_secret": null + } + OpenAI.RealtimeTranscriptionSessionCreateResponseClientSecret: type: object required: - - type - - status - - call_id - - action + - value + - expires_at properties: - type: + value: type: string - enum: - - local_shell_call - status: + expires_at: + type: integer + format: unixtime + OpenAI.RealtimeTranscriptionSessionCreateResponseTurnDetection: + type: object + properties: + type: type: string + threshold: + type: number + prefix_padding_ms: + type: integer + silence_duration_ms: + type: integer + OpenAI.RealtimeTruncation: + anyOf: + - type: string enum: - - in_progress - - completed - - incomplete - call_id: - type: string - description: The unique ID of the local shell tool call generated by the model. - action: - $ref: '#/components/schemas/OpenAI.LocalShellExecAction' - allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A tool call to run a command on the local shell. - OpenAI.LocalShellToolCallOutputItemParam: + - auto + - disabled + - type: object + properties: + type: + type: string + enum: + - retention_ratio + x-stainless-const: true + retention_ratio: + type: number + minimum: 0 + maximum: 1 + token_limits: + $ref: '#/components/schemas/OpenAI.TokenLimits' + required: + - type + - retention_ratio + description: |- + When the number of tokens in a conversation exceeds the model's input token limit, the conversation be truncated, meaning messages (starting from the oldest) will not be included in the model's context. A 32k context model with 4,096 max output tokens can only include 28,224 tokens in the context before truncation occurs. + + Clients can configure truncation behavior to truncate with a lower max token limit, which is an effective way to control token usage and cost. + + Truncation will reduce the number of cached tokens on the next turn (busting the cache), since messages are dropped from the beginning of the context. However, clients can also configure truncation to retain messages up to a fraction of the maximum context size, which will reduce the need for future truncations and thus improve the cache rate. + + Truncation can be disabled entirely, which means the server will never truncate but would instead return an error if the conversation exceeds the model's input token limit. + title: Realtime Truncation Controls + OpenAI.RealtimeTurnDetection: type: object required: - type - - output properties: type: - type: string + $ref: '#/components/schemas/OpenAI.RealtimeTurnDetectionType' + discriminator: + propertyName: type + OpenAI.RealtimeTurnDetectionType: + type: string + OpenAI.Reasoning: + type: object + properties: + effort: + $ref: '#/components/schemas/OpenAI.ReasoningEffort' + summary: + anyOf: + - type: string + enum: + - auto + - concise + - detailed + - type: 'null' + generate_summary: + anyOf: + - type: string + enum: + - auto + - concise + - detailed + - type: 'null' + description: |- + **gpt-5 and o-series models only** + + Configuration options for + [reasoning models](https://platform.openai.com/docs/guides/reasoning). + title: Reasoning + OpenAI.ReasoningEffort: + anyOf: + - type: string enum: - - local_shell_call_output - output: - type: string - description: A JSON string of the output of the local shell tool call. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - The output of a local shell tool call. - OpenAI.LocalShellToolCallOutputItemResource: + - none + - minimal + - low + - medium + - high + - xhigh + - type: 'null' + description: |- + Constrains effort on reasoning for + [reasoning models](https://platform.openai.com/docs/guides/reasoning). + Currently supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`. Reducing + reasoning effort can result in faster responses and fewer tokens used + on reasoning in a response. + + - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool calls are supported for all reasoning values in gpt-5.1. + - All models before `gpt-5.1` default to `medium` reasoning effort, and do not support `none`. + - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort. + - `xhigh` is currently only supported for `gpt-5.1-codex-max`. + OpenAI.ReasoningTextContent: type: object required: - type - - status - - output + - text properties: type: type: string enum: - - local_shell_call_output - status: - type: string - enum: - - in_progress - - completed - - incomplete - output: + - reasoning_text + description: The type of the reasoning text. Always `reasoning_text`. + x-stainless-const: true + default: reasoning_text + text: type: string - description: A JSON string of the output of the local shell tool call. + description: The reasoning text from the model. allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - The output of a local shell tool call. - OpenAI.Location: + - $ref: '#/components/schemas/OpenAI.OutputContent' + description: Reasoning text from the model. + title: ReasoningTextContent + OpenAI.RefusalContent: type: object required: - type + - refusal properties: type: - $ref: '#/components/schemas/OpenAI.LocationType' - discriminator: - propertyName: type - mapping: - approximate: '#/components/schemas/OpenAI.ApproximateLocation' - OpenAI.LocationType: - anyOf: - - type: string - - type: string + type: string enum: - - approximate - OpenAI.LogProb: + - refusal + description: The type of the refusal. Always `refusal`. + x-stainless-const: true + default: refusal + refusal: + type: string + description: The refusal explanation from the model. + allOf: + - $ref: '#/components/schemas/OpenAI.OutputContent' + description: A refusal from the model. + title: Refusal + OpenAI.Response: type: object required: - - token - - logprob - - bytes - - top_logprobs + - id + - object + - created_at + - error + - incomplete_details + - output + - instructions + - parallel_tool_calls + - content_filters properties: - token: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + top_logprobs: + anyOf: + - type: integer + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + default: 1 + user: + type: string + description: |- + This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations. + A stable identifier for your end-users. + Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + safety_identifier: + type: string + description: |- + A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. + The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + prompt_cache_key: + type: string + description: Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching). + prompt_cache_retention: + anyOf: + - type: string + enum: + - in-memory + - 24h + - type: 'null' + previous_response_id: + anyOf: + - type: string + - type: 'null' + model: + type: string + description: |- + Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) + to browse and compare available models. + reasoning: + anyOf: + - $ref: '#/components/schemas/OpenAI.Reasoning' + - type: 'null' + background: + anyOf: + - type: boolean + - type: 'null' + max_output_tokens: + anyOf: + - type: integer + - type: 'null' + max_tool_calls: + anyOf: + - type: integer + - type: 'null' + text: + $ref: '#/components/schemas/OpenAI.ResponseTextParam' + tools: + $ref: '#/components/schemas/OpenAI.ToolsArray' + tool_choice: + $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + prompt: + $ref: '#/components/schemas/OpenAI.Prompt' + truncation: + anyOf: + - type: string + enum: + - auto + - disabled + - type: 'null' + default: disabled + id: + type: string + description: Unique identifier for this Response. + object: + type: string + enum: + - response + description: The object type of this resource - always set to `response`. + x-stainless-const: true + status: type: string - logprob: - type: number - format: float - bytes: + enum: + - completed + - failed + - in_progress + - cancelled + - queued + - incomplete + description: |- + The status of the response generation. One of `completed`, `failed`, + `in_progress`, `cancelled`, `queued`, or `incomplete`. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) of when this Response was created. + error: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseError' + - type: 'null' + incomplete_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseIncompleteDetails' + - type: 'null' + output: type: array items: - type: integer - format: int32 - top_logprobs: + $ref: '#/components/schemas/OpenAI.OutputItem' + description: |- + An array of content items generated by the model. + + - The length and order of items in the `output` array is dependent + on the model's response. + - Rather than accessing the first item in the `output` array and + assuming it's an `assistant` message with the content generated by + the model, you might consider using the `output_text` property where + supported in SDKs. + instructions: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' + - type: 'null' + output_text: + anyOf: + - type: string + - type: 'null' + x-stainless-skip: true + usage: + $ref: '#/components/schemas/OpenAI.ResponseUsage' + parallel_tool_calls: + type: boolean + description: Whether to allow the model to run tool calls in parallel. + default: true + conversation: + anyOf: + - $ref: '#/components/schemas/OpenAI.Conversation' + - type: 'null' + content_filters: type: array items: - $ref: '#/components/schemas/OpenAI.TopLogProb' - description: The log probability of a token. - OpenAI.MCPApprovalRequestItemParam: - type: object - required: - - type - - server_label - - name - - arguments - properties: - type: - type: string - enum: - - mcp_approval_request - server_label: - type: string - description: The label of the MCP server making the request. - name: - type: string - description: The name of the tool to run. - arguments: - type: string - description: A JSON string of arguments for the tool. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A request for human approval of a tool invocation. - OpenAI.MCPApprovalRequestItemResource: + $ref: '#/components/schemas/AzureContentFilterForResponsesAPI' + description: The content filter results from RAI. + title: The response object + OpenAI.ResponseAudioDeltaEvent: type: object required: - type - - server_label - - name - - arguments + - sequence_number + - delta properties: type: type: string enum: - - mcp_approval_request - server_label: - type: string - description: The label of the MCP server making the request. - name: - type: string - description: The name of the tool to run. - arguments: + - response.audio.delta + description: The type of the event. Always `response.audio.delta`. + x-stainless-const: true + sequence_number: + type: integer + description: A sequence number for this chunk of the stream response. + delta: type: string - description: A JSON string of arguments for the tool. + description: A chunk of Base64 encoded response audio bytes. allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A request for human approval of a tool invocation. - OpenAI.MCPApprovalResponseItemParam: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when there is a partial audio response. + x-oaiMeta: + name: response.audio.delta + group: responses + example: | + { + "type": "response.audio.delta", + "response_id": "resp_123", + "delta": "base64encoded...", + "sequence_number": 1 + } + OpenAI.ResponseAudioDoneEvent: type: object required: - type - - approval_request_id - - approve + - sequence_number properties: type: type: string enum: - - mcp_approval_response - approval_request_id: - type: string - description: The ID of the approval request being answered. - approve: - type: boolean - description: Whether the request was approved. - reason: - type: string - nullable: true - description: Optional reason for the decision. + - response.audio.done + description: The type of the event. Always `response.audio.done`. + x-stainless-const: true + sequence_number: + type: integer + description: The sequence number of the delta. allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A response to an MCP approval request. - OpenAI.MCPApprovalResponseItemResource: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when the audio response is complete. + x-oaiMeta: + name: response.audio.done + group: responses + example: | + { + "type": "response.audio.done", + "response_id": "resp-123", + "sequence_number": 1 + } + OpenAI.ResponseAudioTranscriptDeltaEvent: type: object required: - type - - approval_request_id - - approve + - delta + - sequence_number properties: type: type: string enum: - - mcp_approval_response - approval_request_id: - type: string - description: The ID of the approval request being answered. - approve: - type: boolean - description: Whether the request was approved. - reason: + - response.audio.transcript.delta + description: The type of the event. Always `response.audio.transcript.delta`. + x-stainless-const: true + delta: type: string - nullable: true - description: Optional reason for the decision. + description: The partial transcript of the audio response. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A response to an MCP approval request. - OpenAI.MCPCallItemParam: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when there is a partial transcript of audio. + x-oaiMeta: + name: response.audio.transcript.delta + group: responses + example: | + { + "type": "response.audio.transcript.delta", + "response_id": "resp_123", + "delta": " ... partial transcript ... ", + "sequence_number": 1 + } + OpenAI.ResponseAudioTranscriptDoneEvent: type: object required: - type - - server_label - - name - - arguments + - sequence_number properties: type: type: string enum: - - mcp_call - server_label: - type: string - description: The label of the MCP server running the tool. - name: - type: string - description: The name of the tool that was run. - arguments: - type: string - description: A JSON string of the arguments passed to the tool. - output: - type: string - nullable: true - description: The output from the tool call. - error: - type: string - nullable: true - description: The error from the tool call, if any. + - response.audio.transcript.done + description: The type of the event. Always `response.audio.transcript.done`. + x-stainless-const: true + sequence_number: + type: integer + description: The sequence number of this event. allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - An invocation of a tool on an MCP server. - OpenAI.MCPCallItemResource: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when the full audio transcript is completed. + x-oaiMeta: + name: response.audio.transcript.done + group: responses + example: | + { + "type": "response.audio.transcript.done", + "response_id": "resp_123", + "sequence_number": 1 + } + OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent: type: object required: - type - - server_label - - name - - arguments + - output_index + - item_id + - delta + - sequence_number properties: type: type: string enum: - - mcp_call - server_label: - type: string - description: The label of the MCP server running the tool. - name: - type: string - description: The name of the tool that was run. - arguments: - type: string - description: A JSON string of the arguments passed to the tool. - output: + - response.code_interpreter_call_code.delta + description: The type of the event. Always `response.code_interpreter_call_code.delta`. + x-stainless-const: true + output_index: + type: integer + description: The index of the output item in the response for which the code is being streamed. + item_id: type: string - nullable: true - description: The output from the tool call. - error: + description: The unique identifier of the code interpreter tool call item. + delta: type: string - nullable: true - description: The error from the tool call, if any. + description: The partial code snippet being streamed by the code interpreter. + sequence_number: + type: integer + description: The sequence number of this event, used to order streaming events. allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - An invocation of a tool on an MCP server. - OpenAI.MCPListToolsItemParam: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when a partial code snippet is streamed by the code interpreter. + x-oaiMeta: + name: response.code_interpreter_call_code.delta + group: responses + example: | + { + "type": "response.code_interpreter_call_code.delta", + "output_index": 0, + "item_id": "ci_12345", + "delta": "print('Hello, world')", + "sequence_number": 1 + } + OpenAI.ResponseCodeInterpreterCallCodeDoneEvent: type: object required: - type - - server_label - - tools + - output_index + - item_id + - code + - sequence_number properties: type: type: string enum: - - mcp_list_tools - server_label: + - response.code_interpreter_call_code.done + description: The type of the event. Always `response.code_interpreter_call_code.done`. + x-stainless-const: true + output_index: + type: integer + description: The index of the output item in the response for which the code is finalized. + item_id: type: string - description: The label of the MCP server. - tools: - type: array - items: - $ref: '#/components/schemas/OpenAI.MCPListToolsTool' - description: The tools available on the server. - error: + description: The unique identifier of the code interpreter tool call item. + code: type: string - nullable: true - description: Error message if the server could not list tools. + description: The final code snippet output by the code interpreter. + sequence_number: + type: integer + description: The sequence number of this event, used to order streaming events. allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A list of tools available on an MCP server. - OpenAI.MCPListToolsItemResource: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when the code snippet is finalized by the code interpreter. + x-oaiMeta: + name: response.code_interpreter_call_code.done + group: responses + example: | + { + "type": "response.code_interpreter_call_code.done", + "output_index": 3, + "item_id": "ci_12345", + "code": "print('done')", + "sequence_number": 1 + } + OpenAI.ResponseCodeInterpreterCallCompletedEvent: type: object required: - type - - server_label - - tools + - output_index + - item_id + - sequence_number properties: type: type: string enum: - - mcp_list_tools - server_label: - type: string - description: The label of the MCP server. - tools: - type: array - items: - $ref: '#/components/schemas/OpenAI.MCPListToolsTool' - description: The tools available on the server. - error: + - response.code_interpreter_call.completed + description: The type of the event. Always `response.code_interpreter_call.completed`. + x-stainless-const: true + output_index: + type: integer + description: The index of the output item in the response for which the code interpreter call is completed. + item_id: type: string - nullable: true - description: Error message if the server could not list tools. + description: The unique identifier of the code interpreter tool call item. + sequence_number: + type: integer + description: The sequence number of this event, used to order streaming events. allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A list of tools available on an MCP server. - OpenAI.MCPListToolsTool: - type: object - required: - - name - - input_schema - properties: - name: - type: string - description: The name of the tool. - description: - type: string - nullable: true - description: The description of the tool. - input_schema: - description: The JSON schema describing the tool's input. - annotations: - nullable: true - description: Additional annotations about the tool. - description: A tool available on an MCP server. - OpenAI.MCPTool: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when the code interpreter call is completed. + x-oaiMeta: + name: response.code_interpreter_call.completed + group: responses + example: | + { + "type": "response.code_interpreter_call.completed", + "output_index": 5, + "item_id": "ci_12345", + "sequence_number": 1 + } + OpenAI.ResponseCodeInterpreterCallInProgressEvent: type: object required: - type - - server_label - - server_url + - output_index + - item_id + - sequence_number properties: type: type: string enum: - - mcp - description: The type of the MCP tool. Always `mcp`. - server_label: - type: string - description: A label for this MCP server, used to identify it in tool calls. - server_url: + - response.code_interpreter_call.in_progress + description: The type of the event. Always `response.code_interpreter_call.in_progress`. + x-stainless-const: true + output_index: + type: integer + description: The index of the output item in the response for which the code interpreter call is in progress. + item_id: type: string - description: The URL for the MCP server. - headers: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Optional HTTP headers to send to the MCP server. Use for authentication - or other purposes. - allowed_tools: - anyOf: - - type: array - items: - type: string - - type: object - properties: - tool_names: - type: array - items: - type: string - description: List of allowed tool names. - nullable: true - description: List of allowed tool names or a filter object. - require_approval: - anyOf: - - type: object - properties: - always: - type: object - properties: - tool_names: - type: array - items: - type: string - description: List of tools that require approval. - description: A list of tools that always require approval. - never: - type: object - properties: - tool_names: - type: array - items: - type: string - description: List of tools that do not require approval. - description: A list of tools that never require approval. - - type: string - enum: - - always - - never - nullable: true - description: Specify which of the MCP server's tools require approval. - default: always + description: The unique identifier of the code interpreter tool call item. + sequence_number: + type: integer + description: The sequence number of this event, used to order streaming events. allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: |- - Give the model access to additional tools via remote Model Context Protocol - (MCP) servers. [Learn more about MCP](/docs/guides/tools-remote-mcp). - OpenAI.MetadataPropertyForRequest: - type: object - properties: - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - OpenAI.Model: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when a code interpreter call is in progress. + x-oaiMeta: + name: response.code_interpreter_call.in_progress + group: responses + example: | + { + "type": "response.code_interpreter_call.in_progress", + "output_index": 0, + "item_id": "ci_12345", + "sequence_number": 1 + } + OpenAI.ResponseCodeInterpreterCallInterpretingEvent: type: object required: - - id - - created - - object - - owned_by + - type + - output_index + - item_id + - sequence_number properties: - id: - type: string - description: The model identifier, which can be referenced in the API endpoints. - created: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) when the model was created. - object: + type: type: string enum: - - model - description: The object type, which is always "model". - owned_by: + - response.code_interpreter_call.interpreting + description: The type of the event. Always `response.code_interpreter_call.interpreting`. + x-stainless-const: true + output_index: + type: integer + description: The index of the output item in the response for which the code interpreter is interpreting code. + item_id: type: string - description: The organization that owns the model. - description: Describes an OpenAI model offering that can be used with the API. - OpenAI.OtherChunkingStrategyResponseParam: + description: The unique identifier of the code interpreter tool call item. + sequence_number: + type: integer + description: The sequence number of this event, used to order streaming events. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when the code interpreter is actively interpreting the code snippet. + x-oaiMeta: + name: response.code_interpreter_call.interpreting + group: responses + example: | + { + "type": "response.code_interpreter_call.interpreting", + "output_index": 4, + "item_id": "ci_12345", + "sequence_number": 1 + } + OpenAI.ResponseCompletedEvent: type: object required: - type + - response + - sequence_number properties: type: type: string enum: - - other - description: Always `other`. + - response.completed + description: The type of the event. Always `response.completed`. + x-stainless-const: true + response: + allOf: + - $ref: '#/components/schemas/OpenAI.Response' + description: Properties of the completed response. + sequence_number: + type: integer + description: The sequence number for this event. allOf: - - $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponseParam' - description: This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the `chunking_strategy` concept was introduced in the API. - OpenAI.ParallelToolCalls: - type: boolean - description: Whether to enable [parallel function calling](/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. - OpenAI.Prompt: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when the model response is complete. + x-oaiMeta: + name: response.completed + group: responses + example: | + { + "type": "response.completed", + "response": { + "id": "resp_123", + "object": "response", + "created_at": 1740855869, + "status": "completed", + "error": null, + "incomplete_details": null, + "input": [], + "instructions": null, + "max_output_tokens": null, + "model": "gpt-4o-mini-2024-07-18", + "output": [ + { + "id": "msg_123", + "type": "message", + "role": "assistant", + "content": [ + { + "type": "output_text", + "text": "In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.", + "annotations": [] + } + ] + } + ], + "previous_response_id": null, + "reasoning_effort": null, + "store": false, + "temperature": 1, + "text": { + "format": { + "type": "text" + } + }, + "tool_choice": "auto", + "tools": [], + "top_p": 1, + "truncation": "disabled", + "usage": { + "input_tokens": 0, + "output_tokens": 0, + "output_tokens_details": { + "reasoning_tokens": 0 + }, + "total_tokens": 0 + }, + "user": null, + "metadata": {} + }, + "sequence_number": 1 + } + OpenAI.ResponseContentPartAddedEvent: type: object required: - - id + - type + - item_id + - output_index + - content_index + - part + - sequence_number properties: - id: + type: type: string - description: The unique identifier of the prompt template to use. - version: + enum: + - response.content_part.added + description: The type of the event. Always `response.content_part.added`. + x-stainless-const: true + item_id: type: string - nullable: true - description: Optional version of the prompt template. - variables: - type: object + description: The ID of the output item that the content part was added to. + output_index: + type: integer + description: The index of the output item that the content part was added to. + content_index: + type: integer + description: The index of the content part that was added. + part: allOf: - - $ref: '#/components/schemas/OpenAI.ResponsePromptVariables' - nullable: true - description: |- - Reference to a prompt template and its variables. - [Learn more](/docs/guides/text?api-mode=responses#reusable-prompts). - OpenAI.RankingOptions: + - $ref: '#/components/schemas/OpenAI.OutputContent' + description: The content part that was added. + sequence_number: + type: integer + description: The sequence number of this event. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when a new content part is added. + x-oaiMeta: + name: response.content_part.added + group: responses + example: | + { + "type": "response.content_part.added", + "item_id": "msg_123", + "output_index": 0, + "content_index": 0, + "part": { + "type": "output_text", + "text": "", + "annotations": [] + }, + "sequence_number": 1 + } + OpenAI.ResponseContentPartDoneEvent: type: object + required: + - type + - item_id + - output_index + - content_index + - sequence_number + - part properties: - ranker: + type: type: string enum: - - auto - - default-2024-11-15 - description: The ranker to use for the file search. - score_threshold: - type: number - format: float - description: The score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will attempt to return only the most relevant results, but may return fewer results. - OpenAI.Reasoning: + - response.content_part.done + description: The type of the event. Always `response.content_part.done`. + x-stainless-const: true + item_id: + type: string + description: The ID of the output item that the content part was added to. + output_index: + type: integer + description: The index of the output item that the content part was added to. + content_index: + type: integer + description: The index of the content part that is done. + sequence_number: + type: integer + description: The sequence number of this event. + part: + allOf: + - $ref: '#/components/schemas/OpenAI.OutputContent' + description: The content part that is done. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when a content part is done. + x-oaiMeta: + name: response.content_part.done + group: responses + example: | + { + "type": "response.content_part.done", + "item_id": "msg_123", + "output_index": 0, + "content_index": 0, + "sequence_number": 1, + "part": { + "type": "output_text", + "text": "In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.", + "annotations": [] + } + } + OpenAI.ResponseCreatedEvent: type: object + required: + - type + - response + - sequence_number properties: - effort: - allOf: - - $ref: '#/components/schemas/OpenAI.ReasoningEffort' - nullable: true - default: medium - summary: - type: string - enum: - - auto - - concise - - detailed - nullable: true - description: |- - A summary of the reasoning performed by the model. This can be - useful for debugging and understanding the model's reasoning process. - One of `auto`, `concise`, or `detailed`. - generate_summary: + type: type: string enum: - - auto - - concise - - detailed - nullable: true - description: |- - **Deprecated:** use `summary` instead. - - A summary of the reasoning performed by the model. This can be - useful for debugging and understanding the model's reasoning process. - One of `auto`, `concise`, or `detailed`. - deprecated: true - default: null - description: |- - **o-series models only** - - Configuration options for - [reasoning models](https://platform.openai.com/docs/guides/reasoning). - OpenAI.ReasoningEffort: - type: string - enum: - - low - - medium - - high - description: |- - **o-series models only** - - Constrains effort on reasoning for - [reasoning models](https://platform.openai.com/docs/guides/reasoning). - Currently supported values are `low`, `medium`, and `high`. Reducing - reasoning effort can result in faster responses and fewer tokens used - on reasoning in a response. - OpenAI.ReasoningItemParam: + - response.created + description: The type of the event. Always `response.created`. + x-stainless-const: true + response: + allOf: + - $ref: '#/components/schemas/OpenAI.Response' + description: The response that was created. + sequence_number: + type: integer + description: The sequence number for this event. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: An event that is emitted when a response is created. + x-oaiMeta: + name: response.created + group: responses + example: | + { + "type": "response.created", + "response": { + "id": "resp_67ccfcdd16748190a91872c75d38539e09e4d4aac714747c", + "object": "response", + "created_at": 1741487325, + "status": "in_progress", + "error": null, + "incomplete_details": null, + "instructions": null, + "max_output_tokens": null, + "model": "gpt-4o-2024-08-06", + "output": [], + "parallel_tool_calls": true, + "previous_response_id": null, + "reasoning": { + "effort": null, + "summary": null + }, + "store": true, + "temperature": 1, + "text": { + "format": { + "type": "text" + } + }, + "tool_choice": "auto", + "tools": [], + "top_p": 1, + "truncation": "disabled", + "usage": null, + "user": null, + "metadata": {} + }, + "sequence_number": 1 + } + OpenAI.ResponseCustomToolCallInputDeltaEvent: type: object required: - type - - summary + - sequence_number + - output_index + - item_id + - delta properties: type: type: string enum: - - reasoning - encrypted_content: + - response.custom_tool_call_input.delta + description: The event type identifier. + x-stainless-const: true + sequence_number: + type: integer + description: The sequence number of this event. + output_index: + type: integer + description: The index of the output this delta applies to. + item_id: type: string - nullable: true - description: |- - The encrypted content of the reasoning item - populated when a response is - generated with `reasoning.encrypted_content` in the `include` parameter. - summary: - type: array - items: - $ref: '#/components/schemas/OpenAI.ReasoningItemSummaryPart' - description: Reasoning text contents. + description: Unique identifier for the API item associated with this event. + delta: + type: string + description: The incremental input data (delta) for the custom tool call. allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A description of the chain of thought used by a reasoning model while generating - a response. Be sure to include these items in your `input` to the Responses API - for subsequent turns of a conversation if you are manually - [managing context](/docs/guides/conversation-state). - OpenAI.ReasoningItemResource: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Event representing a delta (partial update) to the input of a custom tool call. + title: ResponseCustomToolCallInputDelta + x-oaiMeta: + name: response.custom_tool_call_input.delta + group: responses + example: | + { + "type": "response.custom_tool_call_input.delta", + "output_index": 0, + "item_id": "ctc_1234567890abcdef", + "delta": "partial input text" + } + OpenAI.ResponseCustomToolCallInputDoneEvent: type: object required: - type - - summary + - sequence_number + - output_index + - item_id + - input properties: type: type: string enum: - - reasoning - encrypted_content: + - response.custom_tool_call_input.done + description: The event type identifier. + x-stainless-const: true + sequence_number: + type: integer + description: The sequence number of this event. + output_index: + type: integer + description: The index of the output this event applies to. + item_id: type: string - nullable: true - description: |- - The encrypted content of the reasoning item - populated when a response is - generated with `reasoning.encrypted_content` in the `include` parameter. - summary: - type: array - items: - $ref: '#/components/schemas/OpenAI.ReasoningItemSummaryPart' - description: Reasoning text contents. + description: Unique identifier for the API item associated with this event. + input: + type: string + description: The complete input data for the custom tool call. allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A description of the chain of thought used by a reasoning model while generating - a response. Be sure to include these items in your `input` to the Responses API - for subsequent turns of a conversation if you are manually - [managing context](/docs/guides/conversation-state). - OpenAI.ReasoningItemSummaryPart: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Event indicating that input for a custom tool call is complete. + title: ResponseCustomToolCallInputDone + x-oaiMeta: + name: response.custom_tool_call_input.done + group: responses + example: | + { + "type": "response.custom_tool_call_input.done", + "output_index": 0, + "item_id": "ctc_1234567890abcdef", + "input": "final complete input text" + } + OpenAI.ResponseError: type: object required: - - type + - code + - message properties: - type: - $ref: '#/components/schemas/OpenAI.ReasoningItemSummaryPartType' - discriminator: - propertyName: type - mapping: - summary_text: '#/components/schemas/OpenAI.ReasoningItemSummaryTextPart' - OpenAI.ReasoningItemSummaryPartType: - anyOf: - - type: string - - type: string - enum: - - summary_text - OpenAI.ReasoningItemSummaryTextPart: + code: + $ref: '#/components/schemas/OpenAI.ResponseErrorCode' + message: + type: string + description: A human-readable description of the error. + description: An error object returned when the model fails to generate a Response. + OpenAI.ResponseErrorCode: + type: string + enum: + - server_error + - rate_limit_exceeded + - invalid_prompt + - vector_store_timeout + - invalid_image + - invalid_image_format + - invalid_base64_image + - invalid_image_url + - image_too_large + - image_too_small + - image_parse_error + - image_content_policy_violation + - invalid_image_mode + - image_file_too_large + - unsupported_image_media_type + - empty_image_file + - failed_to_download_image + - image_file_not_found + description: The error code for the response. + OpenAI.ResponseErrorEvent: type: object required: - type - - text + - code + - message + - param + - sequence_number properties: type: type: string enum: - - summary_text - text: + - error + description: The type of the event. Always `error`. + x-stainless-const: true + code: + anyOf: + - type: string + - type: 'null' + message: type: string + description: The error message. + param: + anyOf: + - type: string + - type: 'null' + sequence_number: + type: integer + description: The sequence number of this event. allOf: - - $ref: '#/components/schemas/OpenAI.ReasoningItemSummaryPart' - OpenAI.Response: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when an error occurs. + x-oaiMeta: + name: error + group: responses + example: | + { + "type": "error", + "code": "ERR_SOMETHING", + "message": "Something went wrong", + "param": null, + "sequence_number": 1 + } + OpenAI.ResponseFailedEvent: type: object required: - - metadata - - temperature - - top_p - - user - - id - - object - - created_at - - error - - incomplete_details - - output - - instructions - - parallel_tool_calls + - type + - sequence_number + - response properties: - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - temperature: - type: number - format: float - nullable: true - minimum: 0 - maximum: 2 - description: |- - What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. - We generally recommend altering this or `top_p` but not both. - top_p: - type: number - format: float - nullable: true - minimum: 0 - maximum: 1 - description: |- - An alternative to sampling with temperature, called nucleus sampling, - where the model considers the results of the tokens with top_p probability - mass. So 0.1 means only the tokens comprising the top 10% probability mass - are considered. - - We generally recommend altering this or `temperature` but not both. - user: - type: string - nullable: true - description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids). - top_logprobs: - type: integer - format: int32 - nullable: true - description: An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. - previous_response_id: + type: type: string - nullable: true - description: |- - The unique ID of the previous response to the model. Use this to - create multi-turn conversations. Learn more about - [conversation state](/docs/guides/conversation-state). - reasoning: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.Reasoning' - nullable: true - background: - type: boolean - nullable: true - description: |- - Whether to run the model response in the background. - [Learn more](/docs/guides/background). - default: false - max_output_tokens: - type: integer - format: int32 - nullable: true - description: An upper bound for the number of tokens that can be generated for a response, including visible output tokens and [reasoning tokens](/docs/guides/reasoning). - max_tool_calls: + enum: + - response.failed + description: The type of the event. Always `response.failed`. + x-stainless-const: true + sequence_number: type: integer - format: int32 - nullable: true - description: The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored. - text: - type: object - properties: - format: - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - description: |- - Configuration options for a text response from the model. Can be plain - text or structured JSON data. Learn more: - - [Text inputs and outputs](/docs/guides/text) - - [Structured Outputs](/docs/guides/structured-outputs) - tools: - type: array - items: - $ref: '#/components/schemas/OpenAI.Tool' - description: |- - An array of tools the model may call while generating a response. You - can specify which tool to use by setting the `tool_choice` parameter. - - The two categories of tools you can provide the model are: - - - **Built-in tools**: Tools that are provided by OpenAI that extend the - model's capabilities, like [web search](/docs/guides/tools-web-search) - or [file search](/docs/guides/tools-file-search). Learn more about - [built-in tools](/docs/guides/tools). - - **Function calls (custom tools)**: Functions that are defined by you, - enabling the model to call your own code. Learn more about - [function calling](/docs/guides/function-calling). - tool_choice: - anyOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceOptions' - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - description: |- - How the model should select which tool (or tools) to use when generating - a response. See the `tools` parameter to see how to specify which tools - the model can call. - prompt: - type: object + description: The sequence number of this event. + response: allOf: - - $ref: '#/components/schemas/OpenAI.Prompt' - nullable: true - truncation: - type: string - enum: - - auto - - disabled - nullable: true - description: |- - The truncation strategy to use for the model response. - - `auto`: If the context of this response and previous ones exceeds - the model's context window size, the model will truncate the - response to fit the context window by dropping input items in the - middle of the conversation. - - `disabled` (default): If a model response will exceed the context window - size for a model, the request will fail with a 400 error. - default: disabled - id: - type: string - description: Unique identifier for this Response. - object: - type: string - enum: - - response - description: The object type of this resource - always set to `response`. - status: + - $ref: '#/components/schemas/OpenAI.Response' + description: The response that failed. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: An event that is emitted when a response fails. + x-oaiMeta: + name: response.failed + group: responses + example: | + { + "type": "response.failed", + "response": { + "id": "resp_123", + "object": "response", + "created_at": 1740855869, + "status": "failed", + "error": { + "code": "server_error", + "message": "The model failed to generate a response." + }, + "incomplete_details": null, + "instructions": null, + "max_output_tokens": null, + "model": "gpt-4o-mini-2024-07-18", + "output": [], + "previous_response_id": null, + "reasoning_effort": null, + "store": false, + "temperature": 1, + "text": { + "format": { + "type": "text" + } + }, + "tool_choice": "auto", + "tools": [], + "top_p": 1, + "truncation": "disabled", + "usage": null, + "user": null, + "metadata": {} + } + } + OpenAI.ResponseFileSearchCallCompletedEvent: + type: object + required: + - type + - output_index + - item_id + - sequence_number + properties: + type: type: string enum: - - completed - - failed - - in_progress - - cancelled - - queued - - incomplete - description: |- - The status of the response generation. One of `completed`, `failed`, - `in_progress`, `cancelled`, `queued`, or `incomplete`. - created_at: + - response.file_search_call.completed + description: The type of the event. Always `response.file_search_call.completed`. + x-stainless-const: true + output_index: type: integer - format: unixtime - description: Unix timestamp (in seconds) of when this Response was created. - error: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseError' - nullable: true - incomplete_details: - type: object - properties: - reason: - type: string - enum: - - max_output_tokens - - content_filter - description: The reason why the response is incomplete. - nullable: true - description: Details about why the response is incomplete. - output: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemResource' - description: |- - An array of content items generated by the model. - - - The length and order of items in the `output` array is dependent - on the model's response. - - Rather than accessing the first item in the `output` array and - assuming it's an `assistant` message with the content generated by - the model, you might consider using the `output_text` property where - supported in SDKs. - instructions: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemParam' - nullable: true - description: |- - A system (or developer) message inserted into the model's context. - - When using along with `previous_response_id`, the instructions from a previous - response will not be carried over to the next response. This makes it simple - to swap out system (or developer) messages in new responses. - output_text: + description: The index of the output item that the file search call is initiated. + item_id: type: string - nullable: true - description: |- - SDK-only convenience property that contains the aggregated text output - from all `output_text` items in the `output` array, if any are present. - Supported in the Python and JavaScript SDKs. - usage: - $ref: '#/components/schemas/OpenAI.ResponseUsage' - parallel_tool_calls: - type: boolean - description: Whether to allow the model to run tool calls in parallel. - default: true - OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent: + description: The ID of the output item that the file search call is initiated. + sequence_number: + type: integer + description: The sequence number of this event. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when a file search call is completed (results found). + x-oaiMeta: + name: response.file_search_call.completed + group: responses + example: | + { + "type": "response.file_search_call.completed", + "output_index": 0, + "item_id": "fs_123", + "sequence_number": 1 + } + OpenAI.ResponseFileSearchCallInProgressEvent: type: object required: - type - output_index - item_id - - delta - - obfuscation + - sequence_number properties: type: type: string enum: - - response.code_interpreter_call_code.delta - description: The type of the event. Always `response.code_interpreter_call_code.delta`. + - response.file_search_call.in_progress + description: The type of the event. Always `response.file_search_call.in_progress`. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item in the response for which the code is being streamed. + description: The index of the output item that the file search call is initiated. item_id: type: string - description: The unique identifier of the code interpreter tool call item. - delta: - type: string - description: The partial code snippet being streamed by the code interpreter. - obfuscation: - type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. + description: The ID of the output item that the file search call is initiated. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a partial code snippet is streamed by the code interpreter. - OpenAI.ResponseCodeInterpreterCallCodeDoneEvent: + description: Emitted when a file search call is initiated. + x-oaiMeta: + name: response.file_search_call.in_progress + group: responses + example: | + { + "type": "response.file_search_call.in_progress", + "output_index": 0, + "item_id": "fs_123", + "sequence_number": 1 + } + OpenAI.ResponseFileSearchCallSearchingEvent: type: object required: - type - output_index - item_id - - code + - sequence_number properties: type: type: string enum: - - response.code_interpreter_call_code.done - description: The type of the event. Always `response.code_interpreter_call_code.done`. + - response.file_search_call.searching + description: The type of the event. Always `response.file_search_call.searching`. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item in the response for which the code is finalized. + description: The index of the output item that the file search call is searching. item_id: type: string - description: The unique identifier of the code interpreter tool call item. - code: - type: string - description: The final code snippet output by the code interpreter. + description: The ID of the output item that the file search call is initiated. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the code snippet is finalized by the code interpreter. - OpenAI.ResponseCodeInterpreterCallCompletedEvent: + description: Emitted when a file search is currently searching. + x-oaiMeta: + name: response.file_search_call.searching + group: responses + example: | + { + "type": "response.file_search_call.searching", + "output_index": 0, + "item_id": "fs_123", + "sequence_number": 1 + } + OpenAI.ResponseFormatJsonObject: + type: object + required: + - type + properties: + type: + type: string + enum: + - json_object + description: The type of response format being defined. Always `json_object`. + x-stainless-const: true + allOf: + - $ref: '#/components/schemas/OpenAI.TextResponseFormatConfiguration' + description: |- + JSON object response format. An older method of generating JSON responses. + Using `json_schema` is recommended for models that support it. Note that the + model will not generate JSON without a system or user message instructing it + to do so. + title: JSON object + OpenAI.ResponseFormatJsonSchema: + type: object + required: + - type + - json_schema + properties: + type: + type: string + enum: + - json_schema + description: The type of response format being defined. Always `json_schema`. + x-stainless-const: true + json_schema: + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchemaJsonSchema' + description: Structured Outputs configuration options, including a JSON Schema. + title: JSON schema + description: |- + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + title: JSON schema + OpenAI.ResponseFormatJsonSchemaJsonSchema: + type: object + required: + - name + properties: + description: + type: string + name: + type: string + schema: + $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema' + strict: + anyOf: + - type: boolean + - type: 'null' + OpenAI.ResponseFormatJsonSchemaSchema: + type: object + description: |- + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + title: JSON schema + OpenAI.ResponseFormatText: + type: object + required: + - type + properties: + type: + type: string + enum: + - text + description: The type of response format being defined. Always `text`. + x-stainless-const: true + allOf: + - $ref: '#/components/schemas/OpenAI.TextResponseFormatConfiguration' + description: Default response format. Used to generate text responses. + title: Text + OpenAI.ResponseFunctionCallArgumentsDeltaEvent: type: object required: - type - - output_index - item_id + - output_index + - sequence_number + - delta properties: type: type: string enum: - - response.code_interpreter_call.completed - description: The type of the event. Always `response.code_interpreter_call.completed`. + - response.function_call_arguments.delta + description: The type of the event. Always `response.function_call_arguments.delta`. + x-stainless-const: true + item_id: + type: string + description: The ID of the output item that the function-call arguments delta is added to. output_index: type: integer - format: int32 - description: The index of the output item in the response for which the code interpreter call is completed. - item_id: + description: The index of the output item that the function-call arguments delta is added to. + sequence_number: + type: integer + description: The sequence number of this event. + delta: type: string - description: The unique identifier of the code interpreter tool call item. + description: The function-call arguments delta that is added. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the code interpreter call is completed. - OpenAI.ResponseCodeInterpreterCallInProgressEvent: + description: Emitted when there is a partial function-call arguments delta. + x-oaiMeta: + name: response.function_call_arguments.delta + group: responses + example: | + { + "type": "response.function_call_arguments.delta", + "item_id": "item-abc", + "output_index": 0, + "delta": "{ \"arg\":" + "sequence_number": 1 + } + OpenAI.ResponseFunctionCallArgumentsDoneEvent: type: object required: - type - - output_index - item_id + - name + - output_index + - sequence_number + - arguments properties: type: type: string enum: - - response.code_interpreter_call.in_progress - description: The type of the event. Always `response.code_interpreter_call.in_progress`. + - response.function_call_arguments.done + x-stainless-const: true + item_id: + type: string + description: The ID of the item. + name: + type: string + description: The name of the function that was called. output_index: type: integer - format: int32 - description: The index of the output item in the response for which the code interpreter call is in progress. - item_id: + description: The index of the output item. + sequence_number: + type: integer + description: The sequence number of this event. + arguments: type: string - description: The unique identifier of the code interpreter tool call item. + description: The function-call arguments. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a code interpreter call is in progress. - OpenAI.ResponseCodeInterpreterCallInterpretingEvent: + description: Emitted when function-call arguments are finalized. + x-oaiMeta: + name: response.function_call_arguments.done + group: responses + example: | + { + "type": "response.function_call_arguments.done", + "item_id": "item-abc", + "name": "get_weather", + "output_index": 1, + "arguments": "{ \"arg\": 123 }", + "sequence_number": 1 + } + OpenAI.ResponseImageGenCallCompletedEvent: type: object required: - type - output_index + - sequence_number - item_id properties: type: type: string enum: - - response.code_interpreter_call.interpreting - description: The type of the event. Always `response.code_interpreter_call.interpreting`. + - response.image_generation_call.completed + description: The type of the event. Always 'response.image_generation_call.completed'. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item in the response for which the code interpreter is interpreting code. + description: The index of the output item in the response's output array. + sequence_number: + type: integer + description: The sequence number of this event. item_id: type: string - description: The unique identifier of the code interpreter tool call item. + description: The unique identifier of the image generation item being processed. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the code interpreter is actively interpreting the code snippet. - OpenAI.ResponseCompletedEvent: + description: Emitted when an image generation tool call has completed and the final image is available. + title: ResponseImageGenCallCompletedEvent + x-oaiMeta: + name: response.image_generation_call.completed + group: responses + example: | + { + "type": "response.image_generation_call.completed", + "output_index": 0, + "item_id": "item-123", + "sequence_number": 1 + } + OpenAI.ResponseImageGenCallGeneratingEvent: type: object required: - type - - response + - output_index + - item_id + - sequence_number properties: type: type: string enum: - - response.completed - description: The type of the event. Always `response.completed`. - response: - allOf: - - $ref: '#/components/schemas/OpenAI.Response' - description: Properties of the completed response. + - response.image_generation_call.generating + description: The type of the event. Always 'response.image_generation_call.generating'. + x-stainless-const: true + output_index: + type: integer + description: The index of the output item in the response's output array. + item_id: + type: string + description: The unique identifier of the image generation item being processed. + sequence_number: + type: integer + description: The sequence number of the image generation item being processed. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the model response is complete. - OpenAI.ResponseContentPartAddedEvent: + description: Emitted when an image generation tool call is actively generating an image (intermediate state). + title: ResponseImageGenCallGeneratingEvent + x-oaiMeta: + name: response.image_generation_call.generating + group: responses + example: | + { + "type": "response.image_generation_call.generating", + "output_index": 0, + "item_id": "item-123", + "sequence_number": 0 + } + OpenAI.ResponseImageGenCallInProgressEvent: type: object required: - type - - item_id - output_index - - content_index - - part + - item_id + - sequence_number properties: type: type: string enum: - - response.content_part.added - description: The type of the event. Always `response.content_part.added`. - item_id: - type: string - description: The ID of the output item that the content part was added to. + - response.image_generation_call.in_progress + description: The type of the event. Always 'response.image_generation_call.in_progress'. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item that the content part was added to. - content_index: + description: The index of the output item in the response's output array. + item_id: + type: string + description: The unique identifier of the image generation item being processed. + sequence_number: type: integer - format: int32 - description: The index of the content part that was added. - part: - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content part that was added. + description: The sequence number of the image generation item being processed. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a new content part is added. - OpenAI.ResponseContentPartDoneEvent: + description: Emitted when an image generation tool call is in progress. + title: ResponseImageGenCallInProgressEvent + x-oaiMeta: + name: response.image_generation_call.in_progress + group: responses + example: | + { + "type": "response.image_generation_call.in_progress", + "output_index": 0, + "item_id": "item-123", + "sequence_number": 0 + } + OpenAI.ResponseImageGenCallPartialImageEvent: type: object required: - type - - item_id - output_index - - content_index - - part + - item_id + - sequence_number + - partial_image_index + - partial_image_b64 properties: type: type: string enum: - - response.content_part.done - description: The type of the event. Always `response.content_part.done`. - item_id: - type: string - description: The ID of the output item that the content part was added to. + - response.image_generation_call.partial_image + description: The type of the event. Always 'response.image_generation_call.partial_image'. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item that the content part was added to. - content_index: - type: integer - format: int32 - description: The index of the content part that is done. - part: - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content part that is done. + description: The index of the output item in the response's output array. + item_id: + type: string + description: The unique identifier of the image generation item being processed. + sequence_number: + type: integer + description: The sequence number of the image generation item being processed. + partial_image_index: + type: integer + description: 0-based index for the partial image (backend is 1-based, but this is 0-based for the user). + partial_image_b64: + type: string + description: Base64-encoded partial image data, suitable for rendering as an image. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a content part is done. - OpenAI.ResponseCreatedEvent: + description: Emitted when a partial image is available during image generation streaming. + title: ResponseImageGenCallPartialImageEvent + x-oaiMeta: + name: response.image_generation_call.partial_image + group: responses + example: | + { + "type": "response.image_generation_call.partial_image", + "output_index": 0, + "item_id": "item-123", + "sequence_number": 0, + "partial_image_index": 0, + "partial_image_b64": "..." + } + OpenAI.ResponseInProgressEvent: type: object required: - type - response + - sequence_number properties: type: type: string enum: - - response.created - description: The type of the event. Always `response.created`. + - response.in_progress + description: The type of the event. Always `response.in_progress`. + x-stainless-const: true response: allOf: - $ref: '#/components/schemas/OpenAI.Response' - description: The response that was created. + description: The response that is in progress. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: An event that is emitted when a response is created. - OpenAI.ResponseError: - type: object - required: - - code - - message - properties: - code: - $ref: '#/components/schemas/OpenAI.ResponseErrorCode' - message: - type: string - description: A human-readable description of the error. - description: An error object returned when the model fails to generate a Response. - OpenAI.ResponseErrorCode: - type: string - enum: - - server_error - - rate_limit_exceeded - - invalid_prompt - - vector_store_timeout - - invalid_image - - invalid_image_format - - invalid_base64_image - - invalid_image_url - - image_too_large - - image_too_small - - image_parse_error - - image_content_policy_violation - - invalid_image_mode - - image_file_too_large - - unsupported_image_media_type - - empty_image_file - - failed_to_download_image - - image_file_not_found - description: The error code for the response. - OpenAI.ResponseErrorEvent: + description: Emitted when the response is in progress. + x-oaiMeta: + name: response.in_progress + group: responses + example: | + { + "type": "response.in_progress", + "response": { + "id": "resp_67ccfcdd16748190a91872c75d38539e09e4d4aac714747c", + "object": "response", + "created_at": 1741487325, + "status": "in_progress", + "error": null, + "incomplete_details": null, + "instructions": null, + "max_output_tokens": null, + "model": "gpt-4o-2024-08-06", + "output": [], + "parallel_tool_calls": true, + "previous_response_id": null, + "reasoning": { + "effort": null, + "summary": null + }, + "store": true, + "temperature": 1, + "text": { + "format": { + "type": "text" + } + }, + "tool_choice": "auto", + "tools": [], + "top_p": 1, + "truncation": "disabled", + "usage": null, + "user": null, + "metadata": {} + }, + "sequence_number": 1 + } + OpenAI.ResponseIncompleteDetails: type: object - required: - - type - - code - - message - - param properties: - type: + reason: type: string enum: - - error - description: The type of the event. Always `error`. - code: - type: string - nullable: true - description: The error code. - message: - type: string - description: The error message. - param: - type: string - nullable: true - description: The error parameter. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an error occurs. - OpenAI.ResponseFailedEvent: + - max_output_tokens + - content_filter + OpenAI.ResponseIncompleteEvent: type: object required: - type - response + - sequence_number properties: type: type: string enum: - - response.failed - description: The type of the event. Always `response.failed`. + - response.incomplete + description: The type of the event. Always `response.incomplete`. + x-stainless-const: true response: allOf: - $ref: '#/components/schemas/OpenAI.Response' - description: The response that failed. + description: The response that was incomplete. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: An event that is emitted when a response fails. - OpenAI.ResponseFileSearchCallCompletedEvent: + description: An event that is emitted when a response finishes as incomplete. + x-oaiMeta: + name: response.incomplete + group: responses + example: | + { + "type": "response.incomplete", + "response": { + "id": "resp_123", + "object": "response", + "created_at": 1740855869, + "status": "incomplete", + "error": null, + "incomplete_details": { + "reason": "max_tokens" + }, + "instructions": null, + "max_output_tokens": null, + "model": "gpt-4o-mini-2024-07-18", + "output": [], + "previous_response_id": null, + "reasoning_effort": null, + "store": false, + "temperature": 1, + "text": { + "format": { + "type": "text" + } + }, + "tool_choice": "auto", + "tools": [], + "top_p": 1, + "truncation": "disabled", + "usage": null, + "user": null, + "metadata": {} + }, + "sequence_number": 1 + } + OpenAI.ResponseItemList: type: object required: - - type - - output_index - - item_id + - object + - data + - has_more + - first_id + - last_id properties: - type: + object: type: string enum: - - response.file_search_call.completed - description: The type of the event. Always `response.file_search_call.completed`. - output_index: - type: integer - format: int32 - description: The index of the output item that the file search call is initiated. - item_id: + - list + description: The type of object returned, must be `list`. + x-stainless-const: true + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.ItemResource' + description: A list of items used to generate this response. + has_more: + type: boolean + description: Whether there are more items available. + first_id: type: string - description: The ID of the output item that the file search call is initiated. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a file search call is completed (results found). - OpenAI.ResponseFileSearchCallInProgressEvent: + description: The ID of the first item in the list. + last_id: + type: string + description: The ID of the last item in the list. + description: A list of Response items. + x-oaiMeta: + name: The input item list + group: responses + example: | + { + "object": "list", + "data": [ + { + "id": "msg_abc123", + "type": "message", + "role": "user", + "content": [ + { + "type": "input_text", + "text": "Tell me a three sentence bedtime story about a unicorn." + } + ] + } + ], + "first_id": "msg_abc123", + "last_id": "msg_abc123", + "has_more": false + } + OpenAI.ResponseLogProb: + type: object + required: + - token + - logprob + properties: + token: + type: string + description: A possible text token. + logprob: + type: number + description: The log probability of this token. + top_logprobs: + type: array + items: + $ref: '#/components/schemas/OpenAI.ResponseLogProbTopLogprobs' + description: The log probability of the top 20 most likely tokens. + description: |- + A logprob is the logarithmic probability that the model assigns to producing + a particular token at a given position in the sequence. Less-negative (higher) + logprob values indicate greater model confidence in that token choice. + OpenAI.ResponseLogProbTopLogprobs: + type: object + properties: + token: + type: string + logprob: + type: number + OpenAI.ResponseMCPCallArgumentsDeltaEvent: type: object required: - type - output_index - item_id + - delta + - sequence_number properties: type: type: string enum: - - response.file_search_call.in_progress - description: The type of the event. Always `response.file_search_call.in_progress`. + - response.mcp_call_arguments.delta + description: The type of the event. Always 'response.mcp_call_arguments.delta'. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item that the file search call is initiated. + description: The index of the output item in the response's output array. item_id: type: string - description: The ID of the output item that the file search call is initiated. + description: The unique identifier of the MCP tool call item being processed. + delta: + type: string + description: A JSON string containing the partial update to the arguments for the MCP tool call. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a file search call is initiated. - OpenAI.ResponseFileSearchCallSearchingEvent: + description: Emitted when there is a delta (partial update) to the arguments of an MCP tool call. + title: ResponseMCPCallArgumentsDeltaEvent + x-oaiMeta: + name: response.mcp_call_arguments.delta + group: responses + example: | + { + "type": "response.mcp_call_arguments.delta", + "output_index": 0, + "item_id": "item-abc", + "delta": "{", + "sequence_number": 1 + } + OpenAI.ResponseMCPCallArgumentsDoneEvent: type: object required: - type - output_index - item_id + - arguments + - sequence_number properties: type: type: string enum: - - response.file_search_call.searching - description: The type of the event. Always `response.file_search_call.searching`. + - response.mcp_call_arguments.done + description: The type of the event. Always 'response.mcp_call_arguments.done'. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item that the file search call is searching. + description: The index of the output item in the response's output array. item_id: type: string - description: The ID of the output item that the file search call is initiated. + description: The unique identifier of the MCP tool call item being processed. + arguments: + type: string + description: A JSON string containing the finalized arguments for the MCP tool call. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a file search is currently searching. - OpenAI.ResponseFormat: + description: Emitted when the arguments for an MCP tool call are finalized. + title: ResponseMCPCallArgumentsDoneEvent + x-oaiMeta: + name: response.mcp_call_arguments.done + group: responses + example: | + { + "type": "response.mcp_call_arguments.done", + "output_index": 0, + "item_id": "item-abc", + "arguments": "{\"arg1\": \"value1\", \"arg2\": \"value2\"}", + "sequence_number": 1 + } + OpenAI.ResponseMCPCallCompletedEvent: type: object required: - type + - item_id + - output_index + - sequence_number properties: type: type: string enum: - - text - - json_object - - json_schema - discriminator: - propertyName: type - mapping: - text: '#/components/schemas/OpenAI.ResponseFormatText' - json_object: '#/components/schemas/OpenAI.ResponseFormatJsonObject' - json_schema: '#/components/schemas/OpenAI.ResponseFormatJsonSchema' - OpenAI.ResponseFormatJsonObject: - type: object - required: - - type - properties: - type: + - response.mcp_call.completed + description: The type of the event. Always 'response.mcp_call.completed'. + x-stainless-const: true + item_id: type: string - enum: - - json_object - description: The type of response format being defined. Always `json_object`. + description: The ID of the MCP tool call item that completed. + output_index: + type: integer + description: The index of the output item that completed. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - - $ref: '#/components/schemas/OpenAI.ResponseFormat' - description: |- - JSON object response format. An older method of generating JSON responses. - Using `json_schema` is recommended for models that support it. Note that the - model will not generate JSON without a system or user message instructing it - to do so. - OpenAI.ResponseFormatJsonSchema: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when an MCP tool call has completed successfully. + title: ResponseMCPCallCompletedEvent + x-oaiMeta: + name: response.mcp_call.completed + group: responses + example: | + { + "type": "response.mcp_call.completed", + "sequence_number": 1, + "item_id": "mcp_682d437d90a88191bf88cd03aae0c3e503937d5f622d7a90", + "output_index": 0 + } + OpenAI.ResponseMCPCallFailedEvent: type: object required: - type - - json_schema + - item_id + - output_index + - sequence_number properties: type: type: string enum: - - json_schema - description: The type of response format being defined. Always `json_schema`. - json_schema: - type: object - properties: - description: - type: string - description: |- - A description of what the response format is for, used by the model to - determine how to respond in the format. - name: - type: string - description: |- - The name of the response format. Must be a-z, A-Z, 0-9, or contain - underscores and dashes, with a maximum length of 64. - schema: - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema' - strict: - type: boolean - nullable: true - description: |- - Whether to enable strict schema adherence when generating the output. - If set to true, the model will always follow the exact schema defined - in the `schema` field. Only a subset of JSON Schema is supported when - `strict` is `true`. To learn more, read the [Structured Outputs - guide](/docs/guides/structured-outputs). - default: false - required: - - name - description: Structured Outputs configuration options, including a JSON Schema. + - response.mcp_call.failed + description: The type of the event. Always 'response.mcp_call.failed'. + x-stainless-const: true + item_id: + type: string + description: The ID of the MCP tool call item that failed. + output_index: + type: integer + description: The index of the output item that failed. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - - $ref: '#/components/schemas/OpenAI.ResponseFormat' - description: |- - JSON Schema response format. Used to generate structured JSON responses. - Learn more about [Structured Outputs](/docs/guides/structured-outputs). - OpenAI.ResponseFormatJsonSchemaSchema: - type: object - additionalProperties: {} - description: |- - The schema for the response format, described as a JSON Schema object. - Learn how to build JSON schemas [here](https://json-schema.org/). - OpenAI.ResponseFormatText: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when an MCP tool call has failed. + title: ResponseMCPCallFailedEvent + x-oaiMeta: + name: response.mcp_call.failed + group: responses + example: | + { + "type": "response.mcp_call.failed", + "sequence_number": 1, + "item_id": "mcp_682d437d90a88191bf88cd03aae0c3e503937d5f622d7a90", + "output_index": 0 + } + OpenAI.ResponseMCPCallInProgressEvent: type: object required: - type + - sequence_number + - output_index + - item_id properties: type: type: string enum: - - text - description: The type of response format being defined. Always `text`. + - response.mcp_call.in_progress + description: The type of the event. Always 'response.mcp_call.in_progress'. + x-stainless-const: true + sequence_number: + type: integer + description: The sequence number of this event. + output_index: + type: integer + description: The index of the output item in the response's output array. + item_id: + type: string + description: The unique identifier of the MCP tool call item being processed. allOf: - - $ref: '#/components/schemas/OpenAI.ResponseFormat' - description: Default response format. Used to generate text responses. - OpenAI.ResponseFunctionCallArgumentsDeltaEvent: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when an MCP tool call is in progress. + title: ResponseMCPCallInProgressEvent + x-oaiMeta: + name: response.mcp_call.in_progress + group: responses + example: | + { + "type": "response.mcp_call.in_progress", + "sequence_number": 1, + "output_index": 0, + "item_id": "mcp_682d437d90a88191bf88cd03aae0c3e503937d5f622d7a90" + } + OpenAI.ResponseMCPListToolsCompletedEvent: type: object required: - type - item_id - output_index - - delta - - obfuscation + - sequence_number properties: type: type: string enum: - - response.function_call_arguments.delta - description: The type of the event. Always `response.function_call_arguments.delta`. + - response.mcp_list_tools.completed + description: The type of the event. Always 'response.mcp_list_tools.completed'. + x-stainless-const: true item_id: type: string - description: The ID of the output item that the function-call arguments delta is added to. + description: The ID of the MCP tool call item that produced this output. output_index: type: integer - format: int32 - description: The index of the output item that the function-call arguments delta is added to. - delta: - type: string - description: The function-call arguments delta that is added. - obfuscation: - type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. + description: The index of the output item that was processed. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when there is a partial function-call arguments delta. - OpenAI.ResponseFunctionCallArgumentsDoneEvent: + description: Emitted when the list of available MCP tools has been successfully retrieved. + title: ResponseMCPListToolsCompletedEvent + x-oaiMeta: + name: response.mcp_list_tools.completed + group: responses + example: | + { + "type": "response.mcp_list_tools.completed", + "sequence_number": 1, + "output_index": 0, + "item_id": "mcpl_682d4379df088191886b70f4ec39f90403937d5f622d7a90" + } + OpenAI.ResponseMCPListToolsFailedEvent: type: object required: - type - item_id - output_index - - arguments + - sequence_number properties: type: type: string enum: - - response.function_call_arguments.done + - response.mcp_list_tools.failed + description: The type of the event. Always 'response.mcp_list_tools.failed'. + x-stainless-const: true item_id: type: string - description: The ID of the item. + description: The ID of the MCP tool call item that failed. output_index: type: integer - format: int32 - description: The index of the output item. - arguments: - type: string - description: The function-call arguments. + description: The index of the output item that failed. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when function-call arguments are finalized. - OpenAI.ResponseImageGenCallCompletedEvent: + description: Emitted when the attempt to list available MCP tools has failed. + title: ResponseMCPListToolsFailedEvent + x-oaiMeta: + name: response.mcp_list_tools.failed + group: responses + example: | + { + "type": "response.mcp_list_tools.failed", + "sequence_number": 1, + "output_index": 0, + "item_id": "mcpl_682d4379df088191886b70f4ec39f90403937d5f622d7a90" + } + OpenAI.ResponseMCPListToolsInProgressEvent: type: object required: - type - - output_index - item_id + - output_index + - sequence_number properties: type: type: string enum: - - response.image_generation_call.completed - description: The type of the event. Always 'response.image_generation_call.completed'. - output_index: - type: integer - format: int32 - description: The index of the output item in the response's output array. + - response.mcp_list_tools.in_progress + description: The type of the event. Always 'response.mcp_list_tools.in_progress'. + x-stainless-const: true item_id: type: string - description: The unique identifier of the image generation item being processed. + description: The ID of the MCP tool call item that is being processed. + output_index: + type: integer + description: The index of the output item that is being processed. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an image generation tool call has completed and the final image is available. - OpenAI.ResponseImageGenCallGeneratingEvent: + description: Emitted when the system is in the process of retrieving the list of available MCP tools. + title: ResponseMCPListToolsInProgressEvent + x-oaiMeta: + name: response.mcp_list_tools.in_progress + group: responses + example: | + { + "type": "response.mcp_list_tools.in_progress", + "sequence_number": 1, + "output_index": 0, + "item_id": "mcpl_682d4379df088191886b70f4ec39f90403937d5f622d7a90" + } + OpenAI.ResponseModalities: + anyOf: + - type: array + items: + type: string + enum: + - text + - audio + - type: 'null' + description: |- + Output types that you would like the model to generate. + Most models are capable of generating text, which is the default: + + `["text"]` + + The `gpt-4o-audio-preview` model can also be used to + [generate audio](https://platform.openai.com/docs/guides/audio). To request that this model generate + both text and audio responses, you can use: + + `["text", "audio"]` + OpenAI.ResponseOutputItemAddedEvent: type: object required: - type - output_index - - item_id + - sequence_number + - item properties: type: type: string enum: - - response.image_generation_call.generating - description: The type of the event. Always 'response.image_generation_call.generating'. + - response.output_item.added + description: The type of the event. Always `response.output_item.added`. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item in the response's output array. - item_id: - type: string - description: The unique identifier of the image generation item being processed. + description: The index of the output item that was added. + sequence_number: + type: integer + description: The sequence number of this event. + item: + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + description: The output item that was added. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an image generation tool call is actively generating an image (intermediate state). - OpenAI.ResponseImageGenCallInProgressEvent: + description: Emitted when a new output item is added. + x-oaiMeta: + name: response.output_item.added + group: responses + example: | + { + "type": "response.output_item.added", + "output_index": 0, + "item": { + "id": "msg_123", + "status": "in_progress", + "type": "message", + "role": "assistant", + "content": [] + }, + "sequence_number": 1 + } + OpenAI.ResponseOutputItemDoneEvent: type: object required: - type - output_index - - item_id + - sequence_number + - item properties: type: type: string enum: - - response.image_generation_call.in_progress - description: The type of the event. Always 'response.image_generation_call.in_progress'. + - response.output_item.done + description: The type of the event. Always `response.output_item.done`. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item in the response's output array. - item_id: - type: string - description: The unique identifier of the image generation item being processed. + description: The index of the output item that was marked done. + sequence_number: + type: integer + description: The sequence number of this event. + item: + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + description: The output item that was marked done. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an image generation tool call is in progress. - OpenAI.ResponseImageGenCallPartialImageEvent: + description: Emitted when an output item is marked done. + x-oaiMeta: + name: response.output_item.done + group: responses + example: | + { + "type": "response.output_item.done", + "output_index": 0, + "item": { + "id": "msg_123", + "status": "completed", + "type": "message", + "role": "assistant", + "content": [ + { + "type": "output_text", + "text": "In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.", + "annotations": [] + } + ] + }, + "sequence_number": 1 + } + OpenAI.ResponseOutputTextAnnotationAddedEvent: type: object required: - type - - output_index - item_id - - partial_image_index - - partial_image_b64 + - output_index + - content_index + - annotation_index + - sequence_number + - annotation properties: type: type: string enum: - - response.image_generation_call.partial_image - description: The type of the event. Always 'response.image_generation_call.partial_image'. + - response.output_text.annotation.added + description: The type of the event. Always 'response.output_text.annotation.added'. + x-stainless-const: true + item_id: + type: string + description: The unique identifier of the item to which the annotation is being added. output_index: type: integer - format: int32 description: The index of the output item in the response's output array. - item_id: - type: string - description: The unique identifier of the image generation item being processed. - partial_image_index: + content_index: type: integer - format: int32 - description: 0-based index for the partial image (backend is 1-based, but this is 0-based for the user). - partial_image_b64: - type: string - description: Base64-encoded partial image data, suitable for rendering as an image. + description: The index of the content part within the output item. + annotation_index: + type: integer + description: The index of the annotation within the content part. + sequence_number: + type: integer + description: The sequence number of this event. + annotation: + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseOutputTextAnnotationAddedEventAnnotation' + description: The annotation object being added. (See annotation schema for details.) allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a partial image is available during image generation streaming. - OpenAI.ResponseInProgressEvent: + description: Emitted when an annotation is added to output text content. + title: ResponseOutputTextAnnotationAddedEvent + x-oaiMeta: + name: response.output_text.annotation.added + group: responses + example: | + { + "type": "response.output_text.annotation.added", + "item_id": "item-abc", + "output_index": 0, + "content_index": 0, + "annotation_index": 0, + "annotation": { + "type": "text_annotation", + "text": "This is a test annotation", + "start": 0, + "end": 10 + }, + "sequence_number": 1 + } + OpenAI.ResponseOutputTextAnnotationAddedEventAnnotation: + type: object + OpenAI.ResponsePromptVariables: + type: object + description: |- + Optional map of values to substitute in for variables in your + prompt. The substitution values can either be strings, or other + Response input types like images or files. + title: Prompt Variables + x-oaiExpandable: true + x-oaiTypeLabel: map + OpenAI.ResponseQueuedEvent: type: object required: - type - response + - sequence_number properties: type: type: string enum: - - response.in_progress - description: The type of the event. Always `response.in_progress`. + - response.queued + description: The type of the event. Always 'response.queued'. + x-stainless-const: true response: allOf: - $ref: '#/components/schemas/OpenAI.Response' - description: The response that is in progress. + description: The full response object that is queued. + sequence_number: + type: integer + description: The sequence number for this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the response is in progress. - OpenAI.ResponseIncompleteEvent: + description: Emitted when a response is queued and waiting to be processed. + title: ResponseQueuedEvent + x-oaiMeta: + name: response.queued + group: responses + example: | + { + "type": "response.queued", + "response": { + "id": "res_123", + "status": "queued", + "created_at": "2021-01-01T00:00:00Z", + "updated_at": "2021-01-01T00:00:00Z" + }, + "sequence_number": 1 + } + OpenAI.ResponseReasoningSummaryPartAddedEvent: type: object required: - type - - response + - item_id + - output_index + - summary_index + - sequence_number + - part properties: type: type: string enum: - - response.incomplete - description: The type of the event. Always `response.incomplete`. - response: + - response.reasoning_summary_part.added + description: The type of the event. Always `response.reasoning_summary_part.added`. + x-stainless-const: true + item_id: + type: string + description: The ID of the item this summary part is associated with. + output_index: + type: integer + description: The index of the output item this summary part is associated with. + summary_index: + type: integer + description: The index of the summary part within the reasoning summary. + sequence_number: + type: integer + description: The sequence number of this event. + part: allOf: - - $ref: '#/components/schemas/OpenAI.Response' - description: The response that was incomplete. + - $ref: '#/components/schemas/OpenAI.ResponseReasoningSummaryPartAddedEventPart' + description: The summary part that was added. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: An event that is emitted when a response finishes as incomplete. - OpenAI.ResponseItemList: - type: object - required: - - object - - data - - has_more - - first_id - - last_id - properties: - object: - type: string - enum: - - list - description: The type of object returned, must be `list`. - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemResource' - description: A list of items used to generate this response. - has_more: - type: boolean - description: Whether there are more items available. - first_id: - type: string - description: The ID of the first item in the list. - last_id: - type: string - description: The ID of the last item in the list. - description: A list of Response items. - OpenAI.ResponseMCPCallArgumentsDeltaEvent: + description: Emitted when a new reasoning summary part is added. + x-oaiMeta: + name: response.reasoning_summary_part.added + group: responses + example: | + { + "type": "response.reasoning_summary_part.added", + "item_id": "rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476", + "output_index": 0, + "summary_index": 0, + "part": { + "type": "summary_text", + "text": "" + }, + "sequence_number": 1 + } + OpenAI.ResponseReasoningSummaryPartAddedEventPart: type: object required: - type - - output_index - - item_id - - delta - - obfuscation + - text properties: type: type: string - enum: - - response.mcp_call.arguments_delta - description: The type of the event. Always 'response.mcp_call.arguments_delta'. - output_index: - type: integer - format: int32 - description: The index of the output item in the response's output array. - item_id: - type: string - description: The unique identifier of the MCP tool call item being processed. - delta: - description: The partial update to the arguments for the MCP tool call. - obfuscation: + enum: + - summary_text + x-stainless-const: true + text: type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when there is a delta (partial update) to the arguments of an MCP tool call. - OpenAI.ResponseMCPCallArgumentsDoneEvent: + OpenAI.ResponseReasoningSummaryPartDoneEvent: type: object required: - type - - output_index - item_id - - arguments + - output_index + - summary_index + - sequence_number + - part properties: type: type: string enum: - - response.mcp_call.arguments_done - description: The type of the event. Always 'response.mcp_call.arguments_done'. - output_index: - type: integer - format: int32 - description: The index of the output item in the response's output array. + - response.reasoning_summary_part.done + description: The type of the event. Always `response.reasoning_summary_part.done`. + x-stainless-const: true item_id: type: string - description: The unique identifier of the MCP tool call item being processed. - arguments: - description: The finalized arguments for the MCP tool call. + description: The ID of the item this summary part is associated with. + output_index: + type: integer + description: The index of the output item this summary part is associated with. + summary_index: + type: integer + description: The index of the summary part within the reasoning summary. + sequence_number: + type: integer + description: The sequence number of this event. + part: + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseReasoningSummaryPartDoneEventPart' + description: The completed summary part. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the arguments for an MCP tool call are finalized. - OpenAI.ResponseMCPCallCompletedEvent: + description: Emitted when a reasoning summary part is completed. + x-oaiMeta: + name: response.reasoning_summary_part.done + group: responses + example: | + { + "type": "response.reasoning_summary_part.done", + "item_id": "rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476", + "output_index": 0, + "summary_index": 0, + "part": { + "type": "summary_text", + "text": "**Responding to a greeting**\n\nThe user just said, \"Hello!\" So, it seems I need to engage. I'll greet them back and offer help since they're looking to chat. I could say something like, \"Hello! How can I assist you today?\" That feels friendly and open. They didn't ask a specific question, so this approach will work well for starting a conversation. Let's see where it goes from there!" + }, + "sequence_number": 1 + } + OpenAI.ResponseReasoningSummaryPartDoneEventPart: type: object required: - type + - text properties: type: type: string enum: - - response.mcp_call.completed - description: The type of the event. Always 'response.mcp_call.completed'. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an MCP tool call has completed successfully. - OpenAI.ResponseMCPCallFailedEvent: + - summary_text + x-stainless-const: true + text: + type: string + OpenAI.ResponseReasoningSummaryTextDeltaEvent: type: object required: - type + - item_id + - output_index + - summary_index + - delta + - sequence_number properties: type: type: string enum: - - response.mcp_call.failed - description: The type of the event. Always 'response.mcp_call.failed'. + - response.reasoning_summary_text.delta + description: The type of the event. Always `response.reasoning_summary_text.delta`. + x-stainless-const: true + item_id: + type: string + description: The ID of the item this summary text delta is associated with. + output_index: + type: integer + description: The index of the output item this summary text delta is associated with. + summary_index: + type: integer + description: The index of the summary part within the reasoning summary. + delta: + type: string + description: The text delta that was added to the summary. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an MCP tool call has failed. - OpenAI.ResponseMCPCallInProgressEvent: + description: Emitted when a delta is added to a reasoning summary text. + x-oaiMeta: + name: response.reasoning_summary_text.delta + group: responses + example: | + { + "type": "response.reasoning_summary_text.delta", + "item_id": "rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476", + "output_index": 0, + "summary_index": 0, + "delta": "**Responding to a greeting**\n\nThe user just said, \"Hello!\" So, it seems I need to engage. I'll greet them back and offer help since they're looking to chat. I could say something like, \"Hello! How can I assist you today?\" That feels friendly and open. They didn't ask a specific question, so this approach will work well for starting a conversation. Let's see where it goes from there!", + "sequence_number": 1 + } + OpenAI.ResponseReasoningSummaryTextDoneEvent: type: object required: - type - - output_index - item_id + - output_index + - summary_index + - text + - sequence_number properties: type: type: string enum: - - response.mcp_call.in_progress - description: The type of the event. Always 'response.mcp_call.in_progress'. + - response.reasoning_summary_text.done + description: The type of the event. Always `response.reasoning_summary_text.done`. + x-stainless-const: true + item_id: + type: string + description: The ID of the item this summary text is associated with. output_index: type: integer - format: int32 - description: The index of the output item in the response's output array. - item_id: + description: The index of the output item this summary text is associated with. + summary_index: + type: integer + description: The index of the summary part within the reasoning summary. + text: type: string - description: The unique identifier of the MCP tool call item being processed. + description: The full text of the completed reasoning summary. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an MCP tool call is in progress. - OpenAI.ResponseMCPListToolsCompletedEvent: + description: Emitted when a reasoning summary text is completed. + x-oaiMeta: + name: response.reasoning_summary_text.done + group: responses + example: | + { + "type": "response.reasoning_summary_text.done", + "item_id": "rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476", + "output_index": 0, + "summary_index": 0, + "text": "**Responding to a greeting**\n\nThe user just said, \"Hello!\" So, it seems I need to engage. I'll greet them back and offer help since they're looking to chat. I could say something like, \"Hello! How can I assist you today?\" That feels friendly and open. They didn't ask a specific question, so this approach will work well for starting a conversation. Let's see where it goes from there!", + "sequence_number": 1 + } + OpenAI.ResponseReasoningTextDeltaEvent: type: object required: - type + - item_id + - output_index + - content_index + - delta + - sequence_number properties: type: type: string enum: - - response.mcp_list_tools.completed - description: The type of the event. Always 'response.mcp_list_tools.completed'. + - response.reasoning_text.delta + description: The type of the event. Always `response.reasoning_text.delta`. + x-stainless-const: true + item_id: + type: string + description: The ID of the item this reasoning text delta is associated with. + output_index: + type: integer + description: The index of the output item this reasoning text delta is associated with. + content_index: + type: integer + description: The index of the reasoning content part this delta is associated with. + delta: + type: string + description: The text delta that was added to the reasoning content. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the list of available MCP tools has been successfully retrieved. - OpenAI.ResponseMCPListToolsFailedEvent: + description: Emitted when a delta is added to a reasoning text. + x-oaiMeta: + name: response.reasoning_text.delta + group: responses + example: | + { + "type": "response.reasoning_text.delta", + "item_id": "rs_123", + "output_index": 0, + "content_index": 0, + "delta": "The", + "sequence_number": 1 + } + OpenAI.ResponseReasoningTextDoneEvent: type: object required: - type + - item_id + - output_index + - content_index + - text + - sequence_number properties: type: type: string enum: - - response.mcp_list_tools.failed - description: The type of the event. Always 'response.mcp_list_tools.failed'. + - response.reasoning_text.done + description: The type of the event. Always `response.reasoning_text.done`. + x-stainless-const: true + item_id: + type: string + description: The ID of the item this reasoning text is associated with. + output_index: + type: integer + description: The index of the output item this reasoning text is associated with. + content_index: + type: integer + description: The index of the reasoning content part. + text: + type: string + description: The full text of the completed reasoning content. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the attempt to list available MCP tools has failed. - OpenAI.ResponseMCPListToolsInProgressEvent: + description: Emitted when a reasoning text is completed. + x-oaiMeta: + name: response.reasoning_text.done + group: responses + example: | + { + "type": "response.reasoning_text.done", + "item_id": "rs_123", + "output_index": 0, + "content_index": 0, + "text": "The user is asking...", + "sequence_number": 4 + } + OpenAI.ResponseRefusalDeltaEvent: type: object required: - type + - item_id + - output_index + - content_index + - delta + - sequence_number properties: type: type: string enum: - - response.mcp_list_tools.in_progress - description: The type of the event. Always 'response.mcp_list_tools.in_progress'. + - response.refusal.delta + description: The type of the event. Always `response.refusal.delta`. + x-stainless-const: true + item_id: + type: string + description: The ID of the output item that the refusal text is added to. + output_index: + type: integer + description: The index of the output item that the refusal text is added to. + content_index: + type: integer + description: The index of the content part that the refusal text is added to. + delta: + type: string + description: The refusal text that is added. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the system is in the process of retrieving the list of available MCP tools. - OpenAI.ResponseOutputItemAddedEvent: + description: Emitted when there is a partial refusal text. + x-oaiMeta: + name: response.refusal.delta + group: responses + example: | + { + "type": "response.refusal.delta", + "item_id": "msg_123", + "output_index": 0, + "content_index": 0, + "delta": "refusal text so far", + "sequence_number": 1 + } + OpenAI.ResponseRefusalDoneEvent: type: object required: - type + - item_id - output_index - - item + - content_index + - refusal + - sequence_number properties: type: type: string enum: - - response.output_item.added - description: The type of the event. Always `response.output_item.added`. + - response.refusal.done + description: The type of the event. Always `response.refusal.done`. + x-stainless-const: true + item_id: + type: string + description: The ID of the output item that the refusal text is finalized. output_index: type: integer - format: int32 - description: The index of the output item that was added. - item: - allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: The output item that was added. + description: The index of the output item that the refusal text is finalized. + content_index: + type: integer + description: The index of the content part that the refusal text is finalized. + refusal: + type: string + description: The refusal text that is finalized. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a new output item is added. - OpenAI.ResponseOutputItemDoneEvent: + description: Emitted when refusal text is finalized. + x-oaiMeta: + name: response.refusal.done + group: responses + example: | + { + "type": "response.refusal.done", + "item_id": "item-abc", + "output_index": 1, + "content_index": 2, + "refusal": "final refusal text", + "sequence_number": 1 + } + OpenAI.ResponseStreamEvent: type: object required: - type - - output_index - - item properties: type: - type: string + $ref: '#/components/schemas/OpenAI.ResponseStreamEventType' + discriminator: + propertyName: type + mapping: + response.audio.delta: '#/components/schemas/OpenAI.ResponseAudioDeltaEvent' + response.audio.done: '#/components/schemas/OpenAI.ResponseAudioDoneEvent' + response.audio.transcript.delta: '#/components/schemas/OpenAI.ResponseAudioTranscriptDeltaEvent' + response.audio.transcript.done: '#/components/schemas/OpenAI.ResponseAudioTranscriptDoneEvent' + response.code_interpreter_call_code.delta: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent' + response.code_interpreter_call_code.done: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDoneEvent' + response.code_interpreter_call.completed: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallCompletedEvent' + response.code_interpreter_call.in_progress: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallInProgressEvent' + response.code_interpreter_call.interpreting: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallInterpretingEvent' + response.completed: '#/components/schemas/OpenAI.ResponseCompletedEvent' + response.content_part.added: '#/components/schemas/OpenAI.ResponseContentPartAddedEvent' + response.content_part.done: '#/components/schemas/OpenAI.ResponseContentPartDoneEvent' + response.created: '#/components/schemas/OpenAI.ResponseCreatedEvent' + response.custom_tool_call_input.delta: '#/components/schemas/OpenAI.ResponseCustomToolCallInputDeltaEvent' + response.custom_tool_call_input.done: '#/components/schemas/OpenAI.ResponseCustomToolCallInputDoneEvent' + error: '#/components/schemas/OpenAI.ResponseErrorEvent' + response.failed: '#/components/schemas/OpenAI.ResponseFailedEvent' + response.file_search_call.completed: '#/components/schemas/OpenAI.ResponseFileSearchCallCompletedEvent' + response.file_search_call.in_progress: '#/components/schemas/OpenAI.ResponseFileSearchCallInProgressEvent' + response.file_search_call.searching: '#/components/schemas/OpenAI.ResponseFileSearchCallSearchingEvent' + response.function_call_arguments.delta: '#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDeltaEvent' + response.function_call_arguments.done: '#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDoneEvent' + response.image_generation_call.completed: '#/components/schemas/OpenAI.ResponseImageGenCallCompletedEvent' + response.image_generation_call.generating: '#/components/schemas/OpenAI.ResponseImageGenCallGeneratingEvent' + response.image_generation_call.in_progress: '#/components/schemas/OpenAI.ResponseImageGenCallInProgressEvent' + response.image_generation_call.partial_image: '#/components/schemas/OpenAI.ResponseImageGenCallPartialImageEvent' + response.in_progress: '#/components/schemas/OpenAI.ResponseInProgressEvent' + response.incomplete: '#/components/schemas/OpenAI.ResponseIncompleteEvent' + response.mcp_call_arguments.delta: '#/components/schemas/OpenAI.ResponseMCPCallArgumentsDeltaEvent' + response.mcp_call_arguments.done: '#/components/schemas/OpenAI.ResponseMCPCallArgumentsDoneEvent' + response.mcp_call.completed: '#/components/schemas/OpenAI.ResponseMCPCallCompletedEvent' + response.mcp_call.failed: '#/components/schemas/OpenAI.ResponseMCPCallFailedEvent' + response.mcp_call.in_progress: '#/components/schemas/OpenAI.ResponseMCPCallInProgressEvent' + response.mcp_list_tools.completed: '#/components/schemas/OpenAI.ResponseMCPListToolsCompletedEvent' + response.mcp_list_tools.failed: '#/components/schemas/OpenAI.ResponseMCPListToolsFailedEvent' + response.mcp_list_tools.in_progress: '#/components/schemas/OpenAI.ResponseMCPListToolsInProgressEvent' + response.output_item.added: '#/components/schemas/OpenAI.ResponseOutputItemAddedEvent' + response.output_item.done: '#/components/schemas/OpenAI.ResponseOutputItemDoneEvent' + response.output_text.annotation.added: '#/components/schemas/OpenAI.ResponseOutputTextAnnotationAddedEvent' + response.queued: '#/components/schemas/OpenAI.ResponseQueuedEvent' + response.reasoning_summary_part.added: '#/components/schemas/OpenAI.ResponseReasoningSummaryPartAddedEvent' + response.reasoning_summary_part.done: '#/components/schemas/OpenAI.ResponseReasoningSummaryPartDoneEvent' + response.reasoning_summary_text.delta: '#/components/schemas/OpenAI.ResponseReasoningSummaryTextDeltaEvent' + response.reasoning_summary_text.done: '#/components/schemas/OpenAI.ResponseReasoningSummaryTextDoneEvent' + response.reasoning_text.delta: '#/components/schemas/OpenAI.ResponseReasoningTextDeltaEvent' + response.reasoning_text.done: '#/components/schemas/OpenAI.ResponseReasoningTextDoneEvent' + response.refusal.delta: '#/components/schemas/OpenAI.ResponseRefusalDeltaEvent' + response.refusal.done: '#/components/schemas/OpenAI.ResponseRefusalDoneEvent' + response.output_text.delta: '#/components/schemas/OpenAI.ResponseTextDeltaEvent' + response.output_text.done: '#/components/schemas/OpenAI.ResponseTextDoneEvent' + response.web_search_call.completed: '#/components/schemas/OpenAI.ResponseWebSearchCallCompletedEvent' + response.web_search_call.in_progress: '#/components/schemas/OpenAI.ResponseWebSearchCallInProgressEvent' + response.web_search_call.searching: '#/components/schemas/OpenAI.ResponseWebSearchCallSearchingEvent' + OpenAI.ResponseStreamEventType: + anyOf: + - type: string + - type: string enum: + - response.audio.delta + - response.audio.done + - response.audio.transcript.delta + - response.audio.transcript.done + - response.code_interpreter_call_code.delta + - response.code_interpreter_call_code.done + - response.code_interpreter_call.completed + - response.code_interpreter_call.in_progress + - response.code_interpreter_call.interpreting + - response.completed + - response.content_part.added + - response.content_part.done + - response.created + - error + - response.file_search_call.completed + - response.file_search_call.in_progress + - response.file_search_call.searching + - response.function_call_arguments.delta + - response.function_call_arguments.done + - response.in_progress + - response.failed + - response.incomplete + - response.output_item.added - response.output_item.done - description: The type of the event. Always `response.output_item.done`. - output_index: - type: integer - format: int32 - description: The index of the output item that was marked done. - item: - allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: The output item that was marked done. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an output item is marked done. - OpenAI.ResponsePromptVariables: - type: object - additionalProperties: - $ref: '#/components/schemas/OpenAI.ItemParam' - description: |- - Optional map of values to substitute in for variables in your - prompt. The substitution values can either be strings, or other - Response input types like images or files. - x-oaiExpandable: true - x-oaiTypeLabel: map - OpenAI.ResponseQueuedEvent: + - response.reasoning_summary_part.added + - response.reasoning_summary_part.done + - response.reasoning_summary_text.delta + - response.reasoning_summary_text.done + - response.reasoning_text.delta + - response.reasoning_text.done + - response.refusal.delta + - response.refusal.done + - response.output_text.delta + - response.output_text.done + - response.web_search_call.completed + - response.web_search_call.in_progress + - response.web_search_call.searching + - response.image_generation_call.completed + - response.image_generation_call.generating + - response.image_generation_call.in_progress + - response.image_generation_call.partial_image + - response.mcp_call_arguments.delta + - response.mcp_call_arguments.done + - response.mcp_call.completed + - response.mcp_call.failed + - response.mcp_call.in_progress + - response.mcp_list_tools.completed + - response.mcp_list_tools.failed + - response.mcp_list_tools.in_progress + - response.output_text.annotation.added + - response.queued + - response.custom_tool_call_input.delta + - response.custom_tool_call_input.done + OpenAI.ResponseStreamOptions: type: object - required: - - type - - response properties: - type: - type: string - enum: - - response.queued - description: The type of the event. Always 'response.queued'. - response: - allOf: - - $ref: '#/components/schemas/OpenAI.Response' - description: The full response object that is queued. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a response is queued and waiting to be processed. - OpenAI.ResponseReasoningDeltaEvent: + include_obfuscation: + type: boolean + description: |- + When true, stream obfuscation will be enabled. Stream obfuscation adds + random characters to an `obfuscation` field on streaming delta events to + normalize payload sizes as a mitigation to certain side-channel attacks. + These obfuscation fields are included by default, but add a small amount + of overhead to the data stream. You can set `include_obfuscation` to + false to optimize for bandwidth if you trust the network links between + your application and the OpenAI API. + description: 'Options for streaming responses. Only set this when you set `stream: true`.' + OpenAI.ResponseTextDeltaEvent: type: object required: - type @@ -14155,33 +24096,51 @@ components: - output_index - content_index - delta - - obfuscation + - sequence_number + - logprobs properties: type: type: string enum: - - response.reasoning.delta - description: The type of the event. Always 'response.reasoning.delta'. + - response.output_text.delta + description: The type of the event. Always `response.output_text.delta`. + x-stainless-const: true item_id: type: string - description: The unique identifier of the item for which reasoning is being updated. + description: The ID of the output item that the text delta was added to. output_index: type: integer - format: int32 - description: The index of the output item in the response's output array. + description: The index of the output item that the text delta was added to. content_index: type: integer - format: int32 - description: The index of the reasoning content part within the output item. + description: The index of the content part that the text delta was added to. delta: - description: The partial update to the reasoning content. - obfuscation: type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. + description: The text delta that was added. + sequence_number: + type: integer + description: The sequence number for this event. + logprobs: + type: array + items: + $ref: '#/components/schemas/OpenAI.ResponseLogProb' + description: The log probabilities of the tokens in the delta. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when there is a delta (partial update) to the reasoning content. - OpenAI.ResponseReasoningDoneEvent: + description: Emitted when there is an additional text delta. + x-oaiMeta: + name: response.output_text.delta + group: responses + example: | + { + "type": "response.output_text.delta", + "item_id": "msg_123", + "output_index": 0, + "content_index": 0, + "delta": "In", + "sequence_number": 1 + } + OpenAI.ResponseTextDoneEvent: type: object required: - type @@ -14189,1079 +24148,1468 @@ components: - output_index - content_index - text + - sequence_number + - logprobs properties: type: type: string enum: - - response.reasoning.done - description: The type of the event. Always 'response.reasoning.done'. + - response.output_text.done + description: The type of the event. Always `response.output_text.done`. + x-stainless-const: true item_id: type: string - description: The unique identifier of the item for which reasoning is finalized. + description: The ID of the output item that the text content is finalized. output_index: type: integer - format: int32 - description: The index of the output item in the response's output array. + description: The index of the output item that the text content is finalized. content_index: type: integer - format: int32 - description: The index of the reasoning content part within the output item. + description: The index of the content part that the text content is finalized. text: type: string - description: The finalized reasoning text. + description: The text content that is finalized. + sequence_number: + type: integer + description: The sequence number for this event. + logprobs: + type: array + items: + $ref: '#/components/schemas/OpenAI.ResponseLogProb' + description: The log probabilities of the tokens in the delta. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the reasoning content is finalized for an item. - OpenAI.ResponseReasoningSummaryDeltaEvent: + description: Emitted when text content is finalized. + x-oaiMeta: + name: response.output_text.done + group: responses + example: | + { + "type": "response.output_text.done", + "item_id": "msg_123", + "output_index": 0, + "content_index": 0, + "text": "In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.", + "sequence_number": 1 + } + OpenAI.ResponseTextParam: + type: object + properties: + format: + $ref: '#/components/schemas/OpenAI.TextResponseFormatConfiguration' + verbosity: + $ref: '#/components/schemas/OpenAI.Verbosity' + description: |- + Configuration options for a text response from the model. Can be plain + text or structured JSON data. Learn more: + - [Text inputs and outputs](https://platform.openai.com/docs/guides/text) + - [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs) + OpenAI.ResponseUsage: type: object required: - - type - - item_id - - output_index - - summary_index - - delta - - obfuscation + - input_tokens + - input_tokens_details + - output_tokens + - output_tokens_details + - total_tokens properties: - type: - type: string - enum: - - response.reasoning_summary.delta - description: The type of the event. Always 'response.reasoning_summary.delta'. - item_id: - type: string - description: The unique identifier of the item for which the reasoning summary is being updated. - output_index: + input_tokens: type: integer - format: int32 - description: The index of the output item in the response's output array. - summary_index: + description: The number of input tokens. + input_tokens_details: + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseUsageInputTokensDetails' + description: A detailed breakdown of the input tokens. + output_tokens: type: integer - format: int32 - description: The index of the summary part within the output item. - delta: - description: The partial update to the reasoning summary content. - obfuscation: - type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when there is a delta (partial update) to the reasoning summary content. - OpenAI.ResponseReasoningSummaryDoneEvent: + description: The number of output tokens. + output_tokens_details: + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseUsageOutputTokensDetails' + description: A detailed breakdown of the output tokens. + total_tokens: + type: integer + description: The total number of tokens used. + description: |- + Represents token usage details including input tokens, output tokens, + a breakdown of output tokens, and the total tokens used. + OpenAI.ResponseUsageInputTokensDetails: type: object required: - - type - - item_id - - output_index - - summary_index - - text + - cached_tokens properties: - type: - type: string - enum: - - response.reasoning_summary.done - description: The type of the event. Always 'response.reasoning_summary.done'. - item_id: - type: string - description: The unique identifier of the item for which the reasoning summary is finalized. - output_index: + cached_tokens: type: integer - format: int32 - description: The index of the output item in the response's output array. - summary_index: - type: integer - format: int32 - description: The index of the summary part within the output item. - text: - type: string - description: The finalized reasoning summary text. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the reasoning summary content is finalized for an item. - OpenAI.ResponseReasoningSummaryPartAddedEvent: + OpenAI.ResponseUsageOutputTokensDetails: type: object required: - - type - - item_id - - output_index - - summary_index - - part + - reasoning_tokens properties: - type: - type: string - enum: - - response.reasoning_summary_part.added - description: The type of the event. Always `response.reasoning_summary_part.added`. - item_id: - type: string - description: The ID of the item this summary part is associated with. - output_index: + reasoning_tokens: type: integer - format: int32 - description: The index of the output item this summary part is associated with. - summary_index: - type: integer - format: int32 - description: The index of the summary part within the reasoning summary. - part: - allOf: - - $ref: '#/components/schemas/OpenAI.ReasoningItemSummaryPart' - description: The summary part that was added. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a new reasoning summary part is added. - OpenAI.ResponseReasoningSummaryPartDoneEvent: + OpenAI.ResponseWebSearchCallCompletedEvent: type: object required: - type - - item_id - output_index - - summary_index - - part + - item_id + - sequence_number properties: type: type: string enum: - - response.reasoning_summary_part.done - description: The type of the event. Always `response.reasoning_summary_part.done`. - item_id: - type: string - description: The ID of the item this summary part is associated with. + - response.web_search_call.completed + description: The type of the event. Always `response.web_search_call.completed`. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item this summary part is associated with. - summary_index: + description: The index of the output item that the web search call is associated with. + item_id: + type: string + description: Unique ID for the output item associated with the web search call. + sequence_number: type: integer - format: int32 - description: The index of the summary part within the reasoning summary. - part: - allOf: - - $ref: '#/components/schemas/OpenAI.ReasoningItemSummaryPart' - description: The completed summary part. + description: The sequence number of the web search call being processed. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a reasoning summary part is completed. - OpenAI.ResponseReasoningSummaryTextDeltaEvent: + description: 'Note: web_search is not yet available via Azure OpenAI.' + x-oaiMeta: + name: response.web_search_call.completed + group: responses + example: | + { + "type": "response.web_search_call.completed", + "output_index": 0, + "item_id": "ws_123", + "sequence_number": 0 + } + OpenAI.ResponseWebSearchCallInProgressEvent: type: object required: - type - - item_id - output_index - - summary_index - - delta - - obfuscation + - item_id + - sequence_number properties: type: type: string - enum: - - response.reasoning_summary_text.delta - description: The type of the event. Always `response.reasoning_summary_text.delta`. - item_id: - type: string - description: The ID of the item this summary text delta is associated with. - output_index: - type: integer - format: int32 - description: The index of the output item this summary text delta is associated with. - summary_index: - type: integer - format: int32 - description: The index of the summary part within the reasoning summary. - delta: - type: string - description: The text delta that was added to the summary. - obfuscation: + enum: + - response.web_search_call.in_progress + description: The type of the event. Always `response.web_search_call.in_progress`. + x-stainless-const: true + output_index: + type: integer + description: The index of the output item that the web search call is associated with. + item_id: type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. + description: Unique ID for the output item associated with the web search call. + sequence_number: + type: integer + description: The sequence number of the web search call being processed. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a delta is added to a reasoning summary text. - OpenAI.ResponseReasoningSummaryTextDoneEvent: + description: 'Note: web_search is not yet available via Azure OpenAI.' + x-oaiMeta: + name: response.web_search_call.in_progress + group: responses + example: | + { + "type": "response.web_search_call.in_progress", + "output_index": 0, + "item_id": "ws_123", + "sequence_number": 0 + } + OpenAI.ResponseWebSearchCallSearchingEvent: type: object required: - type - - item_id - output_index - - summary_index - - text + - item_id + - sequence_number properties: type: type: string enum: - - response.reasoning_summary_text.done - description: The type of the event. Always `response.reasoning_summary_text.done`. - item_id: - type: string - description: The ID of the item this summary text is associated with. + - response.web_search_call.searching + description: The type of the event. Always `response.web_search_call.searching`. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item this summary text is associated with. - summary_index: - type: integer - format: int32 - description: The index of the summary part within the reasoning summary. - text: + description: The index of the output item that the web search call is associated with. + item_id: type: string - description: The full text of the completed reasoning summary. + description: Unique ID for the output item associated with the web search call. + sequence_number: + type: integer + description: The sequence number of the web search call being processed. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a reasoning summary text is completed. - OpenAI.ResponseRefusalDeltaEvent: + description: 'Note: web_search is not yet available via Azure OpenAI.' + x-oaiMeta: + name: response.web_search_call.searching + group: responses + example: | + { + "type": "response.web_search_call.searching", + "output_index": 0, + "item_id": "ws_123", + "sequence_number": 0 + } + OpenAI.RunCompletionUsage: + type: object + required: + - completion_tokens + - prompt_tokens + - total_tokens + properties: + completion_tokens: + type: integer + description: Number of completion tokens used over the course of the run. + prompt_tokens: + type: integer + description: Number of prompt tokens used over the course of the run. + total_tokens: + type: integer + description: Total number of tokens used (prompt + completion). + description: Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + OpenAI.RunGraderRequest: + type: object + required: + - grader + - model_sample + properties: + grader: + anyOf: + - $ref: '#/components/schemas/OpenAI.GraderStringCheck' + - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' + - $ref: '#/components/schemas/OpenAI.GraderPython' + - $ref: '#/components/schemas/OpenAI.GraderScoreModel' + - $ref: '#/components/schemas/OpenAI.GraderMulti' + - $ref: '#/components/schemas/GraderEndpoint' + description: The grader used for the fine-tuning job. + item: + allOf: + - $ref: '#/components/schemas/OpenAI.RunGraderRequestItem' + description: |- + The dataset item provided to the grader. This will be used to populate + the `item` namespace. See [the guide](https://platform.openai.com/docs/guides/graders) for more details. + model_sample: + type: string + description: |- + The model sample to be evaluated. This value will be used to populate + the `sample` namespace. See [the guide](https://platform.openai.com/docs/guides/graders) for more details. + The `output_json` variable will be populated if the model sample is a + valid JSON string. + title: RunGraderRequest + OpenAI.RunGraderRequestItem: + type: object + OpenAI.RunGraderResponse: + type: object + required: + - reward + - metadata + - sub_rewards + - model_grader_token_usage_per_model + properties: + reward: + type: number + metadata: + $ref: '#/components/schemas/OpenAI.RunGraderResponseMetadata' + sub_rewards: + type: object + unevaluatedProperties: {} + model_grader_token_usage_per_model: + type: object + unevaluatedProperties: {} + OpenAI.RunGraderResponseMetadata: type: object required: + - name - type - - item_id - - output_index - - content_index - - delta - - obfuscation + - errors + - execution_time + - scores + - token_usage + - sampled_model_name properties: + name: + type: string type: type: string + errors: + $ref: '#/components/schemas/OpenAI.RunGraderResponseMetadataErrors' + execution_time: + type: number + scores: + type: object + unevaluatedProperties: {} + token_usage: + anyOf: + - type: integer + - type: 'null' + sampled_model_name: + anyOf: + - type: string + - type: 'null' + OpenAI.RunGraderResponseMetadataErrors: + type: object + required: + - formula_parse_error + - sample_parse_error + - truncated_observation_error + - unresponsive_reward_error + - invalid_variable_error + - other_error + - python_grader_server_error + - python_grader_server_error_type + - python_grader_runtime_error + - python_grader_runtime_error_details + - model_grader_server_error + - model_grader_refusal_error + - model_grader_parse_error + - model_grader_server_error_details + properties: + formula_parse_error: + type: boolean + sample_parse_error: + type: boolean + truncated_observation_error: + type: boolean + unresponsive_reward_error: + type: boolean + invalid_variable_error: + type: boolean + other_error: + type: boolean + python_grader_server_error: + type: boolean + python_grader_server_error_type: + anyOf: + - type: string + - type: 'null' + python_grader_runtime_error: + type: boolean + python_grader_runtime_error_details: + anyOf: + - type: string + - type: 'null' + model_grader_server_error: + type: boolean + model_grader_refusal_error: + type: boolean + model_grader_parse_error: + type: boolean + model_grader_server_error_details: + anyOf: + - type: string + - type: 'null' + OpenAI.RunObject: + type: object + required: + - id + - object + - created_at + - thread_id + - assistant_id + - status + - required_action + - last_error + - expires_at + - started_at + - cancelled_at + - failed_at + - completed_at + - incomplete_details + - model + - instructions + - tools + - metadata + - usage + - max_prompt_tokens + - max_completion_tokens + - truncation_strategy + - tool_choice + - parallel_tool_calls + - response_format + properties: + id: + type: string + description: The identifier, which can be referenced in API endpoints. + object: + type: string enum: - - response.refusal.delta - description: The type of the event. Always `response.refusal.delta`. - item_id: + - thread.run + description: The object type, which is always `thread.run`. + x-stainless-const: true + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the run was created. + thread_id: type: string - description: The ID of the output item that the refusal text is added to. - output_index: + description: The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + assistant_id: + type: string + description: The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + status: + $ref: '#/components/schemas/OpenAI.RunStatus' + required_action: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunObjectRequiredAction' + - type: 'null' + description: Details on the action required to continue the run. Will be `null` if no action is required. + last_error: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunObjectLastError' + - type: 'null' + description: The last error associated with this run. Will be `null` if there are no errors. + expires_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: int32 - description: The index of the output item that the refusal text is added to. - content_index: + format: unixTimestamp + description: The Unix timestamp (in seconds) for when the run will expire. + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: int32 - description: The index of the content part that the refusal text is added to. - delta: + format: unixTimestamp + description: The Unix timestamp (in seconds) for when the run was started. + cancelled_at: + anyOf: + - type: string + format: date-time + - type: 'null' + type: integer + format: unixTimestamp + description: The Unix timestamp (in seconds) for when the run was cancelled. + failed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + type: integer + format: unixTimestamp + description: The Unix timestamp (in seconds) for when the run failed. + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + type: integer + format: unixTimestamp + description: The Unix timestamp (in seconds) for when the run was completed. + incomplete_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunObjectIncompleteDetails' + - type: 'null' + description: Details on why the run is incomplete. Will be `null` if the run is not incomplete. + model: type: string - description: The refusal text that is added. - obfuscation: + description: The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + instructions: type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when there is a partial refusal text. - OpenAI.ResponseRefusalDoneEvent: + description: The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + tools: + type: array + items: + $ref: '#/components/schemas/OpenAI.AssistantTool' + maxItems: 20 + description: The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + default: [] + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + usage: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunCompletionUsage' + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + description: The sampling temperature used for this run. If not set, defaults to 1. + top_p: + anyOf: + - type: number + - type: 'null' + description: The nucleus sampling value used for this run. If not set, defaults to 1. + max_prompt_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 256 + description: The maximum number of prompt tokens specified to have been used over the course of the run. + max_completion_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 256 + description: The maximum number of completion tokens specified to have been used over the course of the run. + truncation_strategy: + $ref: '#/components/schemas/OpenAI.TruncationObject' + tool_choice: + $ref: '#/components/schemas/OpenAI.AssistantsApiToolChoiceOption' + parallel_tool_calls: + $ref: '#/components/schemas/OpenAI.ParallelToolCalls' + response_format: + $ref: '#/components/schemas/OpenAI.AssistantsApiResponseFormatOption' + description: Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + title: A run on a thread + x-oaiMeta: + name: The run object + beta: true + example: | + { + "id": "run_abc123", + "object": "thread.run", + "created_at": 1698107661, + "assistant_id": "asst_abc123", + "thread_id": "thread_abc123", + "status": "completed", + "started_at": 1699073476, + "expires_at": null, + "cancelled_at": null, + "failed_at": null, + "completed_at": 1699073498, + "last_error": null, + "model": "gpt-4o", + "instructions": null, + "tools": [{"type": "file_search"}, {"type": "code_interpreter"}], + "metadata": {}, + "incomplete_details": null, + "usage": { + "prompt_tokens": 123, + "completion_tokens": 456, + "total_tokens": 579 + }, + "temperature": 1.0, + "top_p": 1.0, + "max_prompt_tokens": 1000, + "max_completion_tokens": 1000, + "truncation_strategy": { + "type": "auto", + "last_messages": null + }, + "response_format": "auto", + "tool_choice": "auto", + "parallel_tool_calls": true + } + OpenAI.RunObjectIncompleteDetails: + type: object + properties: + reason: + type: string + enum: + - max_completion_tokens + - max_prompt_tokens + OpenAI.RunObjectLastError: + type: object + required: + - code + - message + properties: + code: + type: string + enum: + - server_error + - rate_limit_exceeded + - invalid_prompt + message: + type: string + OpenAI.RunObjectRequiredAction: type: object required: - type - - item_id - - output_index - - content_index - - refusal + - submit_tool_outputs properties: type: type: string enum: - - response.refusal.done - description: The type of the event. Always `response.refusal.done`. - item_id: - type: string - description: The ID of the output item that the refusal text is finalized. - output_index: + - submit_tool_outputs + x-stainless-const: true + submit_tool_outputs: + $ref: '#/components/schemas/OpenAI.RunObjectRequiredActionSubmitToolOutputs' + OpenAI.RunObjectRequiredActionSubmitToolOutputs: + type: object + required: + - tool_calls + properties: + tool_calls: + type: array + items: + $ref: '#/components/schemas/OpenAI.RunToolCallObject' + OpenAI.RunStatus: + type: string + enum: + - queued + - in_progress + - requires_action + - cancelling + - cancelled + - failed + - completed + - incomplete + - expired + description: The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + OpenAI.RunStepCompletionUsage: + type: object + required: + - completion_tokens + - prompt_tokens + - total_tokens + properties: + completion_tokens: type: integer - format: int32 - description: The index of the output item that the refusal text is finalized. - content_index: + description: Number of completion tokens used over the course of the run step. + prompt_tokens: type: integer - format: int32 - description: The index of the content part that the refusal text is finalized. - refusal: + description: Number of prompt tokens used over the course of the run step. + total_tokens: + type: integer + description: Total number of tokens used (prompt + completion). + description: Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + OpenAI.RunStepDetailsMessageCreationObject: + type: object + required: + - type + - message_creation + properties: + type: type: string - description: The refusal text that is finalized. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when refusal text is finalized. - OpenAI.ResponseStreamEvent: + enum: + - message_creation + description: Always `message_creation`. + x-stainless-const: true + message_creation: + $ref: '#/components/schemas/OpenAI.RunStepDetailsMessageCreationObjectMessageCreation' + description: Details of the message creation by the run step. + title: Message creation + OpenAI.RunStepDetailsMessageCreationObjectMessageCreation: + type: object + required: + - message_id + properties: + message_id: + type: string + OpenAI.RunStepDetailsToolCall: type: object required: - type - - sequence_number properties: type: - $ref: '#/components/schemas/OpenAI.ResponseStreamEventType' - sequence_number: - type: integer - format: int32 - description: The sequence number for this event. + $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallType' discriminator: propertyName: type mapping: - response.completed: '#/components/schemas/OpenAI.ResponseCompletedEvent' - response.content_part.added: '#/components/schemas/OpenAI.ResponseContentPartAddedEvent' - response.content_part.done: '#/components/schemas/OpenAI.ResponseContentPartDoneEvent' - response.created: '#/components/schemas/OpenAI.ResponseCreatedEvent' - error: '#/components/schemas/OpenAI.ResponseErrorEvent' - response.file_search_call.completed: '#/components/schemas/OpenAI.ResponseFileSearchCallCompletedEvent' - response.file_search_call.in_progress: '#/components/schemas/OpenAI.ResponseFileSearchCallInProgressEvent' - response.file_search_call.searching: '#/components/schemas/OpenAI.ResponseFileSearchCallSearchingEvent' - response.function_call_arguments.delta: '#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDeltaEvent' - response.function_call_arguments.done: '#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDoneEvent' - response.in_progress: '#/components/schemas/OpenAI.ResponseInProgressEvent' - response.failed: '#/components/schemas/OpenAI.ResponseFailedEvent' - response.incomplete: '#/components/schemas/OpenAI.ResponseIncompleteEvent' - response.output_item.added: '#/components/schemas/OpenAI.ResponseOutputItemAddedEvent' - response.output_item.done: '#/components/schemas/OpenAI.ResponseOutputItemDoneEvent' - response.refusal.delta: '#/components/schemas/OpenAI.ResponseRefusalDeltaEvent' - response.refusal.done: '#/components/schemas/OpenAI.ResponseRefusalDoneEvent' - response.output_text.delta: '#/components/schemas/OpenAI.ResponseTextDeltaEvent' - response.output_text.done: '#/components/schemas/OpenAI.ResponseTextDoneEvent' - response.reasoning_summary_part.added: '#/components/schemas/OpenAI.ResponseReasoningSummaryPartAddedEvent' - response.reasoning_summary_part.done: '#/components/schemas/OpenAI.ResponseReasoningSummaryPartDoneEvent' - response.reasoning_summary_text.delta: '#/components/schemas/OpenAI.ResponseReasoningSummaryTextDeltaEvent' - response.reasoning_summary_text.done: '#/components/schemas/OpenAI.ResponseReasoningSummaryTextDoneEvent' - response.web_search_call.completed: '#/components/schemas/OpenAI.ResponseWebSearchCallCompletedEvent' - response.web_search_call.in_progress: '#/components/schemas/OpenAI.ResponseWebSearchCallInProgressEvent' - response.web_search_call.searching: '#/components/schemas/OpenAI.ResponseWebSearchCallSearchingEvent' - response.image_generation_call.completed: '#/components/schemas/OpenAI.ResponseImageGenCallCompletedEvent' - response.image_generation_call.generating: '#/components/schemas/OpenAI.ResponseImageGenCallGeneratingEvent' - response.image_generation_call.in_progress: '#/components/schemas/OpenAI.ResponseImageGenCallInProgressEvent' - response.image_generation_call.partial_image: '#/components/schemas/OpenAI.ResponseImageGenCallPartialImageEvent' - response.mcp_call.arguments_delta: '#/components/schemas/OpenAI.ResponseMCPCallArgumentsDeltaEvent' - response.mcp_call.arguments_done: '#/components/schemas/OpenAI.ResponseMCPCallArgumentsDoneEvent' - response.mcp_call.completed: '#/components/schemas/OpenAI.ResponseMCPCallCompletedEvent' - response.mcp_call.failed: '#/components/schemas/OpenAI.ResponseMCPCallFailedEvent' - response.mcp_call.in_progress: '#/components/schemas/OpenAI.ResponseMCPCallInProgressEvent' - response.mcp_list_tools.completed: '#/components/schemas/OpenAI.ResponseMCPListToolsCompletedEvent' - response.mcp_list_tools.failed: '#/components/schemas/OpenAI.ResponseMCPListToolsFailedEvent' - response.mcp_list_tools.in_progress: '#/components/schemas/OpenAI.ResponseMCPListToolsInProgressEvent' - response.queued: '#/components/schemas/OpenAI.ResponseQueuedEvent' - response.reasoning.delta: '#/components/schemas/OpenAI.ResponseReasoningDeltaEvent' - response.reasoning.done: '#/components/schemas/OpenAI.ResponseReasoningDoneEvent' - response.reasoning_summary.delta: '#/components/schemas/OpenAI.ResponseReasoningSummaryDeltaEvent' - response.reasoning_summary.done: '#/components/schemas/OpenAI.ResponseReasoningSummaryDoneEvent' - response.code_interpreter_call_code.delta: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent' - response.code_interpreter_call_code.done: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDoneEvent' - response.code_interpreter_call.completed: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallCompletedEvent' - response.code_interpreter_call.in_progress: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallInProgressEvent' - response.code_interpreter_call.interpreting: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallInterpretingEvent' - OpenAI.ResponseStreamEventType: + code_interpreter: '#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeObject' + file_search: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchObject' + function: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFunctionObject' + OpenAI.RunStepDetailsToolCallType: anyOf: - type: string - type: string enum: - - response.audio.delta - - response.audio.done - - response.audio_transcript.delta - - response.audio_transcript.done - - response.code_interpreter_call_code.delta - - response.code_interpreter_call_code.done - - response.code_interpreter_call.completed - - response.code_interpreter_call.in_progress - - response.code_interpreter_call.interpreting - - response.completed - - response.content_part.added - - response.content_part.done - - response.created - - error - - response.file_search_call.completed - - response.file_search_call.in_progress - - response.file_search_call.searching - - response.function_call_arguments.delta - - response.function_call_arguments.done - - response.in_progress - - response.failed - - response.incomplete - - response.output_item.added - - response.output_item.done - - response.refusal.delta - - response.refusal.done - - response.output_text.annotation.added - - response.output_text.delta - - response.output_text.done - - response.reasoning_summary_part.added - - response.reasoning_summary_part.done - - response.reasoning_summary_text.delta - - response.reasoning_summary_text.done - - response.web_search_call.completed - - response.web_search_call.in_progress - - response.web_search_call.searching - - response.image_generation_call.completed - - response.image_generation_call.generating - - response.image_generation_call.in_progress - - response.image_generation_call.partial_image - - response.mcp_call.arguments_delta - - response.mcp_call.arguments_done - - response.mcp_call.completed - - response.mcp_call.failed - - response.mcp_call.in_progress - - response.mcp_list_tools.completed - - response.mcp_list_tools.failed - - response.mcp_list_tools.in_progress - - response.queued - - response.reasoning.delta - - response.reasoning.done - - response.reasoning_summary.delta - - response.reasoning_summary.done - OpenAI.ResponseTextDeltaEvent: + - code_interpreter + - file_search + - function + OpenAI.RunStepDetailsToolCallsCodeObject: type: object required: + - id - type - - item_id - - output_index - - content_index - - delta - - obfuscation + - code_interpreter properties: + id: + type: string + description: The ID of the tool call. type: type: string enum: - - response.output_text.delta - description: The type of the event. Always `response.output_text.delta`. - item_id: + - code_interpreter + description: The type of tool call. This is always going to be `code_interpreter` for this type of tool call. + x-stainless-const: true + code_interpreter: + allOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeObjectCodeInterpreter' + description: The Code Interpreter tool call definition. + allOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCall' + description: Details of the Code Interpreter tool call the run step was involved in. + title: Code Interpreter tool call + OpenAI.RunStepDetailsToolCallsCodeObjectCodeInterpreter: + type: object + required: + - input + - outputs + properties: + input: type: string - description: The ID of the output item that the text delta was added to. - output_index: - type: integer - format: int32 - description: The index of the output item that the text delta was added to. - content_index: - type: integer - format: int32 - description: The index of the content part that the text delta was added to. - delta: + outputs: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeOutputLogsObject' + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeOutputImageObject' + OpenAI.RunStepDetailsToolCallsCodeOutputImageObject: + type: object + required: + - type + - image + properties: + type: type: string - description: The text delta that was added. - obfuscation: + enum: + - image + description: Always `image`. + x-stainless-const: true + image: + $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeOutputImageObjectImage' + title: Code Interpreter image output + x-stainless-naming: + java: + type_name: ImageOutput + kotlin: + type_name: ImageOutput + OpenAI.RunStepDetailsToolCallsCodeOutputImageObjectImage: + type: object + required: + - file_id + properties: + file_id: type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when there is an additional text delta. - OpenAI.ResponseTextDoneEvent: + OpenAI.RunStepDetailsToolCallsCodeOutputLogsObject: type: object required: - type - - item_id - - output_index - - content_index - - text + - logs properties: type: type: string enum: - - response.output_text.done - description: The type of the event. Always `response.output_text.done`. - item_id: + - logs + description: Always `logs`. + x-stainless-const: true + logs: type: string - description: The ID of the output item that the text content is finalized. - output_index: - type: integer - format: int32 - description: The index of the output item that the text content is finalized. - content_index: - type: integer - format: int32 - description: The index of the content part that the text content is finalized. - text: + description: The text output from the Code Interpreter tool call. + description: Text output from the Code Interpreter tool call as part of a run step. + title: Code Interpreter log output + x-stainless-naming: + java: + type_name: LogsOutput + kotlin: + type_name: LogsOutput + OpenAI.RunStepDetailsToolCallsFileSearchObject: + type: object + required: + - id + - type + - file_search + properties: + id: type: string - description: The text content that is finalized. + description: The ID of the tool call object. + type: + type: string + enum: + - file_search + description: The type of tool call. This is always going to be `file_search` for this type of tool call. + x-stainless-const: true + file_search: + allOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchObjectFileSearch' + description: For now, this is always going to be an empty object. + x-oaiTypeLabel: map allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when text content is finalized. - OpenAI.ResponseTextFormatConfiguration: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCall' + title: File search tool call + OpenAI.RunStepDetailsToolCallsFileSearchObjectFileSearch: + type: object + properties: + ranking_options: + $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchRankingOptionsObject' + results: + type: array + items: + $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchResultObject' + OpenAI.RunStepDetailsToolCallsFileSearchRankingOptionsObject: + type: object + required: + - ranker + - score_threshold + properties: + ranker: + $ref: '#/components/schemas/OpenAI.FileSearchRanker' + score_threshold: + type: number + minimum: 0 + maximum: 1 + description: The score threshold for the file search. All values must be a floating point number between 0 and 1. + description: The ranking options for the file search. + title: File search tool call ranking options + OpenAI.RunStepDetailsToolCallsFileSearchResultObject: + type: object + required: + - file_id + - file_name + - score + properties: + file_id: + type: string + description: The ID of the file that result was found in. + file_name: + type: string + description: The name of the file that result was found in. + score: + type: number + minimum: 0 + maximum: 1 + description: The score of the result. All values must be a floating point number between 0 and 1. + content: + type: array + items: + $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchResultObjectContent' + description: The content of the result that was found. The content is only included if requested via the include query parameter. + description: A result instance of the file search. + title: File search tool call result + x-oaiTypeLabel: map + OpenAI.RunStepDetailsToolCallsFileSearchResultObjectContent: + type: object + properties: + type: + type: string + enum: + - text + x-stainless-const: true + text: + type: string + OpenAI.RunStepDetailsToolCallsFunctionObject: type: object required: + - id - type + - function properties: + id: + type: string + description: The ID of the tool call object. type: - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfigurationType' - discriminator: - propertyName: type - mapping: - text: '#/components/schemas/OpenAI.ResponseTextFormatConfigurationText' - json_object: '#/components/schemas/OpenAI.ResponseTextFormatConfigurationJsonObject' - json_schema: '#/components/schemas/OpenAI.ResponseTextFormatConfigurationJsonSchema' - OpenAI.ResponseTextFormatConfigurationJsonObject: + type: string + enum: + - function + description: The type of tool call. This is always going to be `function` for this type of tool call. + x-stainless-const: true + function: + allOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFunctionObjectFunction' + description: The definition of the function that was called. + allOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCall' + title: Function tool call + OpenAI.RunStepDetailsToolCallsFunctionObjectFunction: + type: object + required: + - name + - arguments + - output + properties: + name: + type: string + arguments: + type: string + output: + anyOf: + - type: string + - type: 'null' + OpenAI.RunStepDetailsToolCallsObject: type: object required: - type + - tool_calls properties: type: type: string enum: - - json_object - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - OpenAI.ResponseTextFormatConfigurationJsonSchema: + - tool_calls + description: Always `tool_calls`. + x-stainless-const: true + tool_calls: + type: array + items: + $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCall' + description: 'An array of tool calls the run step was involved in. These can be associated with one of three types of tools: `code_interpreter`, `file_search`, or `function`.' + description: Details of the tool call. + title: Tool calls + OpenAI.RunStepObject: type: object required: + - id + - object + - created_at + - assistant_id + - thread_id + - run_id - type - - name - - schema + - status + - step_details + - last_error + - expired_at + - cancelled_at + - failed_at + - completed_at + - metadata + - usage properties: - type: + id: + type: string + description: The identifier of the run step, which can be referenced in API endpoints. + object: type: string enum: - - json_schema - description: The type of response format being defined. Always `json_schema`. - description: + - thread.run.step + description: The object type, which is always `thread.run.step`. + x-stainless-const: true + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the run step was created. + assistant_id: type: string - description: |- - A description of what the response format is for, used by the model to - determine how to respond in the format. - name: + description: The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + thread_id: type: string - description: |- - The name of the response format. Must be a-z, A-Z, 0-9, or contain - underscores and dashes, with a maximum length of 64. - schema: - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema' - strict: - type: boolean - nullable: true - description: |- - Whether to enable strict schema adherence when generating the output. - If set to true, the model will always follow the exact schema defined - in the `schema` field. Only a subset of JSON Schema is supported when - `strict` is `true`. To learn more, read the [Structured Outputs - guide](/docs/guides/structured-outputs). - default: false - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - description: |- - JSON Schema response format. Used to generate structured JSON responses. - Learn more about [Structured Outputs](/docs/guides/structured-outputs). - OpenAI.ResponseTextFormatConfigurationText: - type: object - required: - - type - properties: + description: The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + run_id: + type: string + description: The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. type: type: string enum: - - text - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - OpenAI.ResponseTextFormatConfigurationType: - anyOf: - - type: string - - type: string + - message_creation + - tool_calls + description: The type of run step, which can be either `message_creation` or `tool_calls`. + status: + type: string enum: - - text - - json_schema - - json_object - description: |- - An object specifying the format that the model must output. - - Configuring `{ "type": "json_schema" }` enables Structured Outputs, - which ensures the model will match your supplied JSON schema. Learn more in the - [Structured Outputs guide](/docs/guides/structured-outputs). - - The default format is `{ "type": "text" }` with no additional options. - - **Not recommended for gpt-4o and newer models:** - - Setting to `{ "type": "json_object" }` enables the older JSON mode, which - ensures the message the model generates is valid JSON. Using `json_schema` - is preferred for models that support it. - OpenAI.ResponseUsage: - type: object - required: - - input_tokens - - input_tokens_details - - output_tokens - - output_tokens_details - - total_tokens - properties: - input_tokens: + - in_progress + - cancelled + - failed + - completed + - expired + description: The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + step_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsMessageCreationObject' + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsObject' + description: The details of the run step. + last_error: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunStepObjectLastError' + - type: 'null' + expired_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: int32 - description: The number of input tokens. - input_tokens_details: - type: object - properties: - cached_tokens: - type: integer - format: int32 - description: |- - The number of tokens that were retrieved from the cache. - [More on prompt caching](/docs/guides/prompt-caching). - required: - - cached_tokens - description: A detailed breakdown of the input tokens. - output_tokens: + format: unixTimestamp + cancelled_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: int32 - description: The number of output tokens. - output_tokens_details: - type: object - properties: - reasoning_tokens: - type: integer - format: int32 - description: The number of reasoning tokens. - required: - - reasoning_tokens - description: A detailed breakdown of the output tokens. - total_tokens: + format: unixTimestamp + failed_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: int32 - description: The total number of tokens used. - description: |- - Represents token usage details including input tokens, output tokens, - a breakdown of output tokens, and the total tokens used. - OpenAI.ResponseWebSearchCallCompletedEvent: - type: object - required: - - type - - output_index - - item_id - properties: - type: - type: string - enum: - - response.web_search_call.completed - description: The type of the event. Always `response.web_search_call.completed`. - output_index: + format: unixTimestamp + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: int32 - description: The index of the output item that the web search call is associated with. - item_id: - type: string - description: Unique ID for the output item associated with the web search call. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: 'Note: web_search is not yet available via Azure OpenAI.' - OpenAI.ResponseWebSearchCallInProgressEvent: + format: unixTimestamp + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + usage: + $ref: '#/components/schemas/OpenAI.RunStepCompletionUsage' + description: Represents a step in execution of a run. + title: Run steps + x-oaiMeta: + name: The run step object + beta: true + example: | + { + "id": "step_abc123", + "object": "thread.run.step", + "created_at": 1699063291, + "run_id": "run_abc123", + "assistant_id": "asst_abc123", + "thread_id": "thread_abc123", + "type": "message_creation", + "status": "completed", + "cancelled_at": null, + "completed_at": 1699063291, + "expired_at": null, + "failed_at": null, + "last_error": null, + "step_details": { + "type": "message_creation", + "message_creation": { + "message_id": "msg_abc123" + } + }, + "usage": { + "prompt_tokens": 123, + "completion_tokens": 456, + "total_tokens": 579 + } + } + OpenAI.RunStepObjectLastError: type: object required: - - type - - output_index - - item_id + - code + - message properties: - type: + code: type: string enum: - - response.web_search_call.in_progress - description: The type of the event. Always `response.web_search_call.in_progress`. - output_index: - type: integer - format: int32 - description: The index of the output item that the web search call is associated with. - item_id: + - server_error + - rate_limit_exceeded + message: type: string - description: Unique ID for the output item associated with the web search call. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: 'Note: web_search is not yet available via Azure OpenAI.' - OpenAI.ResponseWebSearchCallSearchingEvent: + OpenAI.RunToolCallObject: type: object required: + - id - type - - output_index - - item_id + - function properties: + id: + type: string + description: The ID of the tool call. This ID must be referenced when you submit the tool outputs in using the [Submit tool outputs to run](https://platform.openai.com/docs/api-reference/runs/submitToolOutputs) endpoint. type: type: string enum: - - response.web_search_call.searching - description: The type of the event. Always `response.web_search_call.searching`. - output_index: - type: integer - format: int32 - description: The index of the output item that the web search call is associated with. - item_id: - type: string - description: Unique ID for the output item associated with the web search call. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: 'Note: web_search is not yet available via Azure OpenAI.' - OpenAI.ResponsesAssistantMessageItemParam: + - function + description: The type of tool call the output is required for. For now, this is always `function`. + x-stainless-const: true + function: + allOf: + - $ref: '#/components/schemas/OpenAI.RunToolCallObjectFunction' + description: The function definition. + description: Tool call objects + OpenAI.RunToolCallObjectFunction: type: object required: - - role - - content + - name + - arguments properties: - role: + name: type: string - enum: - - assistant - description: The role of the message, which is always `assistant`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemParam' - description: A message parameter item with the `assistant` role. - OpenAI.ResponsesAssistantMessageItemResource: + arguments: + type: string + OpenAI.Screenshot: type: object required: - - role - - content + - type properties: - role: + type: type: string enum: - - assistant - description: The role of the message, which is always `assistant`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. + - screenshot + description: |- + Specifies the event type. For a screenshot action, this property is + always set to `screenshot`. + x-stainless-const: true + default: screenshot allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemResource' - description: A message resource item with the `assistant` role. - OpenAI.ResponsesDeveloperMessageItemParam: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A screenshot action. + title: Screenshot + OpenAI.Scroll: type: object required: - - role - - content + - type + - x + - 'y' + - scroll_x + - scroll_y properties: - role: + type: type: string enum: - - developer - description: The role of the message, which is always `developer`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. + - scroll + description: |- + Specifies the event type. For a scroll action, this property is + always set to `scroll`. + x-stainless-const: true + default: scroll + x: + type: integer + description: The x-coordinate where the scroll occurred. + 'y': + type: integer + description: The y-coordinate where the scroll occurred. + scroll_x: + type: integer + description: The horizontal scroll distance. + scroll_y: + type: integer + description: The vertical scroll distance. allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemParam' - description: A message parameter item with the `developer` role. - OpenAI.ResponsesDeveloperMessageItemResource: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A scroll action. + title: Scroll + OpenAI.SearchContextSize: + type: string + enum: + - low + - medium + - high + OpenAI.SpecificApplyPatchParam: type: object required: - - role - - content + - type properties: - role: + type: type: string enum: - - developer - description: The role of the message, which is always `developer`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. + - apply_patch + description: The tool to call. Always `apply_patch`. + x-stainless-const: true + default: apply_patch allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemResource' - description: A message resource item with the `developer` role. - OpenAI.ResponsesMessageItemParam: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: Forces the model to call the apply_patch tool when executing a tool call. + title: Specific apply patch tool choice + OpenAI.SpecificFunctionShellParam: type: object required: - type - - role properties: type: type: string enum: - - message - description: The type of the responses item, which is always 'message'. - role: - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageRole' - description: The role associated with the message. - discriminator: - propertyName: role - mapping: - user: '#/components/schemas/OpenAI.ResponsesUserMessageItemParam' - system: '#/components/schemas/OpenAI.ResponsesSystemMessageItemParam' - developer: '#/components/schemas/OpenAI.ResponsesDeveloperMessageItemParam' - assistant: '#/components/schemas/OpenAI.ResponsesAssistantMessageItemParam' + - shell + description: The tool to call. Always `shell`. + x-stainless-const: true + default: shell allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: A response message item, representing a role and content, as provided as client request parameters. - OpenAI.ResponsesMessageItemResource: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: Forces the model to call the shell tool when a tool call is required. + title: Specific shell tool choice + OpenAI.StaticChunkingStrategy: + type: object + required: + - max_chunk_size_tokens + - chunk_overlap_tokens + properties: + max_chunk_size_tokens: + type: integer + minimum: 100 + maximum: 4096 + description: The maximum number of tokens in each chunk. The default value is `800`. The minimum value is `100` and the maximum value is `4096`. + chunk_overlap_tokens: + type: integer + description: |- + The number of tokens that overlap between chunks. The default value is `400`. + + Note that the overlap must not exceed half of `max_chunk_size_tokens`. + OpenAI.StaticChunkingStrategyRequestParam: type: object required: - type - - status - - role + - static properties: type: type: string enum: - - message - description: The type of the responses item, which is always 'message'. - status: - type: string - enum: - - in_progress - - completed - - incomplete - description: |- - The status of the item. One of `in_progress`, `completed`, or - `incomplete`. Populated when items are returned via API. - role: - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageRole' - description: The role associated with the message. - discriminator: - propertyName: role - mapping: - user: '#/components/schemas/OpenAI.ResponsesUserMessageItemResource' - system: '#/components/schemas/OpenAI.ResponsesSystemMessageItemResource' - developer: '#/components/schemas/OpenAI.ResponsesDeveloperMessageItemResource' - assistant: '#/components/schemas/OpenAI.ResponsesAssistantMessageItemResource' + - static + description: Always `static`. + x-stainless-const: true + static: + $ref: '#/components/schemas/OpenAI.StaticChunkingStrategy' allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: A response message resource item, representing a role and content, as provided on service responses. - OpenAI.ResponsesMessageRole: - type: string - enum: - - system - - developer - - user - - assistant - description: The collection of valid roles for responses message items. - OpenAI.ResponsesSystemMessageItemParam: + - $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' + description: Customize your own chunking strategy by setting chunk size and chunk overlap. + title: Static Chunking Strategy + OpenAI.StaticChunkingStrategyResponseParam: type: object required: - - role - - content + - type + - static properties: - role: + type: type: string enum: - - system - description: The role of the message, which is always `system`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. + - static + description: Always `static`. + x-stainless-const: true + static: + $ref: '#/components/schemas/OpenAI.StaticChunkingStrategy' allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemParam' - description: A message parameter item with the `system` role. - OpenAI.ResponsesSystemMessageItemResource: + - $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponse' + title: Static Chunking Strategy + OpenAI.StopConfiguration: + anyOf: + - anyOf: + - type: string + - type: 'null' + - type: array + items: + type: string + - type: 'null' + description: |- + Not supported with latest reasoning models `o3` and `o4-mini`. + + Up to 4 sequences where the API will stop generating further tokens. The + returned text will not contain the stop sequence. + OpenAI.SubmitToolOutputsRunRequest: type: object required: - - role - - content + - tool_outputs properties: - role: - type: string - enum: - - system - description: The role of the message, which is always `system`. - content: + tool_outputs: type: array items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemResource' - description: A message resource item with the `system` role. - OpenAI.ResponsesUserMessageItemParam: + $ref: '#/components/schemas/OpenAI.SubmitToolOutputsRunRequestToolOutputs' + description: A list of tools for which the outputs are being submitted. + stream: + anyOf: + - type: boolean + - type: 'null' + OpenAI.SubmitToolOutputsRunRequestToolOutputs: + type: object + properties: + tool_call_id: + type: string + output: + type: string + OpenAI.Summary: type: object required: - - role - - content + - type + - text properties: - role: + type: type: string enum: - - user - description: The role of the message, which is always `user`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemParam' - description: A message parameter item with the `user` role. - OpenAI.ResponsesUserMessageItemResource: + - summary_text + description: The type of the object. Always `summary_text`. + x-stainless-const: true + default: summary_text + text: + type: string + description: A summary of the reasoning output from the model so far. + description: A summary text from the model. + title: Summary text + OpenAI.SummaryTextContent: type: object required: - - role - - content + - type + - text properties: - role: + type: type: string enum: - - user - description: The role of the message, which is always `user`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemResource' - description: A message resource item with the `user` role. - OpenAI.RunGraderRequest: + - summary_text + description: The type of the object. Always `summary_text`. + x-stainless-const: true + default: summary_text + text: + type: string + description: A summary of the reasoning output from the model so far. + description: A summary text from the model. + title: Summary text + OpenAI.TextAnnotation: type: object required: - - grader - - model_sample + - type properties: - grader: - anyOf: - - $ref: '#/components/schemas/OpenAI.GraderStringCheck' - - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' - - $ref: '#/components/schemas/OpenAI.GraderPython' - - $ref: '#/components/schemas/OpenAI.GraderScoreModel' - - $ref: '#/components/schemas/OpenAI.GraderMulti' - description: The grader used for the fine-tuning job. - item: - description: |- - The dataset item provided to the grader. This will be used to populate - the `item` namespace. See [the guide](/docs/guides/graders) for more details. - model_sample: - type: string - description: |- - The model sample to be evaluated. This value will be used to populate - the `sample` namespace. See [the guide](/docs/guides/graders) for more details. - The `output_json` variable will be populated if the model sample is a - valid JSON string. - OpenAI.RunGraderResponse: + type: + $ref: '#/components/schemas/OpenAI.TextAnnotationType' + discriminator: + propertyName: type + mapping: + file_citation: '#/components/schemas/OpenAI.MessageContentTextAnnotationsFileCitationObject' + file_path: '#/components/schemas/OpenAI.MessageContentTextAnnotationsFilePathObject' + OpenAI.TextAnnotationType: + anyOf: + - type: string + - type: string + enum: + - file_citation + - file_path + OpenAI.TextContent: type: object required: - - reward - - metadata - - sub_rewards - - model_grader_token_usage_per_model + - type + - text properties: - reward: - type: number - format: float - metadata: - type: object - properties: - name: - type: string - type: - type: string - errors: - type: object - properties: - formula_parse_error: - type: boolean - sample_parse_error: - type: boolean - truncated_observation_error: - type: boolean - unresponsive_reward_error: - type: boolean - invalid_variable_error: - type: boolean - other_error: - type: boolean - python_grader_server_error: - type: boolean - python_grader_server_error_type: - type: string - nullable: true - python_grader_runtime_error: - type: boolean - python_grader_runtime_error_details: - type: string - nullable: true - model_grader_server_error: - type: boolean - model_grader_refusal_error: - type: boolean - model_grader_parse_error: - type: boolean - model_grader_server_error_details: - type: string - nullable: true - required: - - formula_parse_error - - sample_parse_error - - truncated_observation_error - - unresponsive_reward_error - - invalid_variable_error - - other_error - - python_grader_server_error - - python_grader_server_error_type - - python_grader_runtime_error - - python_grader_runtime_error_details - - model_grader_server_error - - model_grader_refusal_error - - model_grader_parse_error - - model_grader_server_error_details - execution_time: - type: number - format: float - scores: {} - token_usage: - type: integer - format: int32 - nullable: true - sampled_model_name: - type: string - nullable: true - required: - - name - - type - - errors - - execution_time - - scores - - token_usage - - sampled_model_name - sub_rewards: {} - model_grader_token_usage_per_model: {} - OpenAI.StaticChunkingStrategy: + type: + type: string + enum: + - text + x-stainless-const: true + default: text + text: + type: string + description: A text content. + title: Text Content + OpenAI.TextResponseFormatConfiguration: type: object required: - - max_chunk_size_tokens - - chunk_overlap_tokens + - type properties: - max_chunk_size_tokens: - type: integer - format: int32 - minimum: 100 - maximum: 4096 - description: The maximum number of tokens in each chunk. The default value is `800`. The minimum value is `100` and the maximum value is `4096`. - chunk_overlap_tokens: - type: integer - format: int32 - description: |- - The number of tokens that overlap between chunks. The default value is `400`. + type: + $ref: '#/components/schemas/OpenAI.TextResponseFormatConfigurationType' + discriminator: + propertyName: type + mapping: + json_object: '#/components/schemas/OpenAI.ResponseFormatJsonObject' + json_schema: '#/components/schemas/OpenAI.TextResponseFormatJsonSchema' + description: |- + An object specifying the format that the model must output. - Note that the overlap must not exceed half of `max_chunk_size_tokens`. - OpenAI.StaticChunkingStrategyRequestParam: + Configuring `{ "type": "json_schema" }` enables Structured Outputs, + which ensures the model will match your supplied JSON schema. Learn more in the + [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs). + + The default format is `{ "type": "text" }` with no additional options. + + *Not recommended for gpt-4o and newer models:** + + Setting to `{ "type": "json_object" }` enables the older JSON mode, which + ensures the message the model generates is valid JSON. Using `json_schema` + is preferred for models that support it. + OpenAI.TextResponseFormatConfigurationType: + anyOf: + - type: string + - type: string + enum: + - text + - json_schema + - json_object + OpenAI.TextResponseFormatJsonSchema: type: object required: - type - - static + - name + - schema properties: type: type: string enum: - - static - description: Always `static`. - static: - $ref: '#/components/schemas/OpenAI.StaticChunkingStrategy' + - json_schema + description: The type of response format being defined. Always `json_schema`. + x-stainless-const: true + description: + type: string + description: |- + A description of what the response format is for, used by the model to + determine how to respond in the format. + name: + type: string + description: |- + The name of the response format. Must be a-z, A-Z, 0-9, or contain + underscores and dashes, with a maximum length of 64. + schema: + $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema' + strict: + anyOf: + - type: boolean + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' - description: Customize your own chunking strategy by setting chunk size and chunk overlap. - OpenAI.StaticChunkingStrategyResponseParam: + - $ref: '#/components/schemas/OpenAI.TextResponseFormatConfiguration' + description: |- + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + title: JSON schema + OpenAI.ThreadObject: type: object required: - - type - - static + - id + - object + - created_at + - tool_resources + - metadata properties: - type: + id: + type: string + description: The identifier, which can be referenced in API endpoints. + object: type: string enum: - - static - description: Always `static`. - static: - $ref: '#/components/schemas/OpenAI.StaticChunkingStrategy' - allOf: - - $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponseParam' - OpenAI.StopConfiguration: - anyOf: - - type: string - - type: array + - thread + description: The object type, which is always `thread`. + x-stainless-const: true + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the thread was created. + tool_resources: + anyOf: + - $ref: '#/components/schemas/OpenAI.ThreadObjectToolResources' + - type: 'null' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + description: Represents a thread that contains [messages](https://platform.openai.com/docs/api-reference/messages). + title: Thread + x-oaiMeta: + name: The thread object + beta: true + example: | + { + "id": "thread_abc123", + "object": "thread", + "created_at": 1698107661, + "metadata": {} + } + OpenAI.ThreadObjectToolResources: + type: object + properties: + code_interpreter: + $ref: '#/components/schemas/OpenAI.ThreadObjectToolResourcesCodeInterpreter' + file_search: + $ref: '#/components/schemas/OpenAI.ThreadObjectToolResourcesFileSearch' + OpenAI.ThreadObjectToolResourcesCodeInterpreter: + type: object + properties: + file_ids: + type: array items: type: string - description: |- - Not supported with latest reasoning models `o3` and `o4-mini`. - - Up to 4 sequences where the API will stop generating further tokens. The - returned text will not contain the stop sequence. + maxItems: 20 + OpenAI.ThreadObjectToolResourcesFileSearch: + type: object + properties: + vector_store_ids: + type: array + items: + type: string + maxItems: 1 + OpenAI.TokenLimits: + type: object + properties: + post_instructions: + type: integer + minimum: 0 OpenAI.Tool: type: object required: @@ -15272,32 +25620,65 @@ components: discriminator: propertyName: type mapping: + code_interpreter: '#/components/schemas/OpenAI.CodeInterpreterTool' function: '#/components/schemas/OpenAI.FunctionTool' file_search: '#/components/schemas/OpenAI.FileSearchTool' computer_use_preview: '#/components/schemas/OpenAI.ComputerUsePreviewTool' - web_search_preview: '#/components/schemas/OpenAI.WebSearchPreviewTool' - code_interpreter: '#/components/schemas/OpenAI.CodeInterpreterTool' - image_generation: '#/components/schemas/OpenAI.ImageGenTool' - local_shell: '#/components/schemas/OpenAI.LocalShellTool' + web_search: '#/components/schemas/OpenAI.WebSearchTool' mcp: '#/components/schemas/OpenAI.MCPTool' - OpenAI.ToolChoiceObject: + image_generation: '#/components/schemas/OpenAI.ImageGenTool' + local_shell: '#/components/schemas/OpenAI.LocalShellToolParam' + shell: '#/components/schemas/OpenAI.FunctionShellToolParam' + custom: '#/components/schemas/OpenAI.CustomToolParam' + web_search_preview: '#/components/schemas/OpenAI.WebSearchPreviewTool' + apply_patch: '#/components/schemas/OpenAI.ApplyPatchToolParam' + description: A tool that can be used to generate a response. + OpenAI.ToolChoiceAllowed: type: object required: - type + - mode + - tools properties: type: - $ref: '#/components/schemas/OpenAI.ToolChoiceObjectType' - discriminator: - propertyName: type - mapping: - file_search: '#/components/schemas/OpenAI.ToolChoiceObjectFileSearch' - computer_use_preview: '#/components/schemas/OpenAI.ToolChoiceObjectComputer' - web_search_preview: '#/components/schemas/OpenAI.ToolChoiceObjectWebSearch' - image_generation: '#/components/schemas/OpenAI.ToolChoiceObjectImageGen' - code_interpreter: '#/components/schemas/OpenAI.ToolChoiceObjectCodeInterpreter' - function: '#/components/schemas/OpenAI.ToolChoiceObjectFunction' - mcp: '#/components/schemas/OpenAI.ToolChoiceObjectMCP' - OpenAI.ToolChoiceObjectCodeInterpreter: + type: string + enum: + - allowed_tools + description: Allowed tool configuration type. Always `allowed_tools`. + x-stainless-const: true + mode: + type: string + enum: + - auto + - required + description: |- + Constrains the tools available to the model to a pre-defined set. + + `auto` allows the model to pick from among the allowed tools and generate a + message. + + `required` requires the model to call one or more of the allowed tools. + tools: + type: array + items: + type: object + unevaluatedProperties: {} + description: |- + A list of tool definitions that the model should be allowed to call. + + For the Responses API, the list of tool definitions might look like: + ```json + [ + { "type": "function", "name": "get_weather" }, + { "type": "mcp", "server_label": "deepwiki" }, + { "type": "image_generation" } + ] + ``` + allOf: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: Constrains the tools available to the model to a pre-defined set. + title: Allowed tools + OpenAI.ToolChoiceCodeInterpreter: type: object required: - type @@ -15307,8 +25688,11 @@ components: enum: - code_interpreter allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - OpenAI.ToolChoiceObjectComputer: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: |- + Indicates that the model should use a built-in tool to generate a response. + [Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools). + OpenAI.ToolChoiceComputerUsePreview: type: object required: - type @@ -15318,8 +25702,30 @@ components: enum: - computer_use_preview allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - OpenAI.ToolChoiceObjectFileSearch: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: |- + Indicates that the model should use a built-in tool to generate a response. + [Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools). + OpenAI.ToolChoiceCustom: + type: object + required: + - type + - name + properties: + type: + type: string + enum: + - custom + description: For custom tool calling, the type is always `custom`. + x-stainless-const: true + name: + type: string + description: The name of the custom tool to call. + allOf: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: Use this option to force the model to call a specific custom tool. + title: Custom tool + OpenAI.ToolChoiceFileSearch: type: object required: - type @@ -15329,8 +25735,11 @@ components: enum: - file_search allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - OpenAI.ToolChoiceObjectFunction: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: |- + Indicates that the model should use a built-in tool to generate a response. + [Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools). + OpenAI.ToolChoiceFunction: type: object required: - type @@ -15341,13 +25750,15 @@ components: enum: - function description: For function calling, the type is always `function`. + x-stainless-const: true name: type: string description: The name of the function to call. allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' description: Use this option to force the model to call a specific function. - OpenAI.ToolChoiceObjectImageGen: + title: Function tool + OpenAI.ToolChoiceImageGeneration: type: object required: - type @@ -15357,8 +25768,11 @@ components: enum: - image_generation allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - OpenAI.ToolChoiceObjectMCP: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: |- + Indicates that the model should use a built-in tool to generate a response. + [Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools). + OpenAI.ToolChoiceMCP: type: object required: - type @@ -15369,32 +25783,77 @@ components: enum: - mcp description: For MCP tools, the type is always `mcp`. + x-stainless-const: true server_label: type: string description: The label of the MCP server to use. name: - type: string - nullable: true - description: The name of the tool to call on the server. + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' description: Use this option to force the model to call a specific tool on a remote MCP server. - OpenAI.ToolChoiceObjectType: + title: MCP tool + OpenAI.ToolChoiceOptions: + type: string + enum: + - none + - auto + - required + description: |- + Controls which (if any) tool is called by the model. + + `none` means the model will not call any tool and instead generates a message. + + `auto` means the model can pick between generating a message or calling one or + more tools. + + `required` means the model must call one or more tools. + title: Tool choice mode + OpenAI.ToolChoiceParam: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ToolChoiceParamType' + discriminator: + propertyName: type + mapping: + allowed_tools: '#/components/schemas/OpenAI.ToolChoiceAllowed' + mcp: '#/components/schemas/OpenAI.ToolChoiceMCP' + custom: '#/components/schemas/OpenAI.ToolChoiceCustom' + apply_patch: '#/components/schemas/OpenAI.SpecificApplyPatchParam' + shell: '#/components/schemas/OpenAI.SpecificFunctionShellParam' + file_search: '#/components/schemas/OpenAI.ToolChoiceFileSearch' + web_search_preview: '#/components/schemas/OpenAI.ToolChoiceWebSearchPreview' + computer_use_preview: '#/components/schemas/OpenAI.ToolChoiceComputerUsePreview' + web_search_preview_2025_03_11: '#/components/schemas/OpenAI.ToolChoiceWebSearchPreview20250311' + image_generation: '#/components/schemas/OpenAI.ToolChoiceImageGeneration' + code_interpreter: '#/components/schemas/OpenAI.ToolChoiceCodeInterpreter' + description: |- + How the model should select which tool (or tools) to use when generating + a response. See the `tools` parameter to see how to specify which tools + the model can call. + OpenAI.ToolChoiceParamType: anyOf: - type: string - type: string enum: - - file_search + - allowed_tools - function - - computer_use_preview + - mcp + - custom + - apply_patch + - shell + - file_search - web_search_preview + - computer_use_preview + - web_search_preview_2025_03_11 - image_generation - code_interpreter - - mcp - description: |- - Indicates that the model should use a built-in tool to generate a response. - [Learn more about built-in tools](/docs/guides/tools). - OpenAI.ToolChoiceObjectWebSearch: + OpenAI.ToolChoiceWebSearchPreview: type: object required: - type @@ -15404,37 +25863,60 @@ components: enum: - web_search_preview allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' description: 'Note: web_search is not yet available via Azure OpenAI.' - OpenAI.ToolChoiceOptions: - type: string - enum: - - none - - auto - - required + OpenAI.ToolChoiceWebSearchPreview20250311: + type: object + required: + - type + properties: + type: + type: string + enum: + - web_search_preview_2025_03_11 + allOf: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' description: |- - Controls which (if any) tool is called by the model. - - `none` means the model will not call any tool and instead generates a message. - - `auto` means the model can pick between generating a message or calling one or - more tools. - - `required` means the model must call one or more tools. + Indicates that the model should use a built-in tool to generate a response. + [Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools). OpenAI.ToolType: anyOf: - type: string - type: string enum: - - file_search - function + - file_search - computer_use_preview - - web_search_preview + - web_search - mcp - code_interpreter - image_generation - local_shell - description: A tool that can be used to generate a response. + - shell + - custom + - web_search_preview + - apply_patch + OpenAI.ToolsArray: + type: array + items: + $ref: '#/components/schemas/OpenAI.Tool' + description: |- + An array of tools the model may call while generating a response. You + can specify which tool to use by setting the `tool_choice` parameter. + + We support the following categories of tools: + - **Built-in tools**: Tools that are provided by OpenAI that extend the + model's capabilities, like [web search](https://platform.openai.com/docs/guides/tools-web-search) + or [file search](https://platform.openai.com/docs/guides/tools-file-search). Learn more about + [built-in tools](https://platform.openai.com/docs/guides/tools). + - **MCP Tools**: Integrations with third-party systems via custom MCP servers + or predefined connectors such as Google Drive and SharePoint. Learn more about + [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp). + - **Function calls (custom tools)**: Functions that are defined by you, + enabling the model to call your own code with strongly typed arguments + and outputs. Learn more about + [function calling](https://platform.openai.com/docs/guides/function-calling). You can also use + custom tools to call your own code. OpenAI.TopLogProb: type: object required: @@ -15446,60 +25928,190 @@ components: type: string logprob: type: number - format: float bytes: type: array items: type: integer - format: int32 description: The top log probability of a token. + title: Top log probability + OpenAI.TranscriptionSegment: + type: object + required: + - id + - seek + - start + - end + - text + - tokens + - temperature + - avg_logprob + - compression_ratio + - no_speech_prob + properties: + id: + type: integer + description: Unique identifier of the segment. + seek: + type: integer + description: Seek offset of the segment. + start: + type: number + format: float + description: Start time of the segment in seconds. + end: + type: number + format: float + description: End time of the segment in seconds. + text: + type: string + description: Text content of the segment. + tokens: + type: array + items: + type: integer + description: Array of token IDs for the text content. + temperature: + type: number + format: float + description: Temperature parameter used for generating the segment. + avg_logprob: + type: number + format: float + description: Average logprob of the segment. If the value is lower than -1, consider the logprobs failed. + compression_ratio: + type: number + format: float + description: Compression ratio of the segment. If the value is greater than 2.4, consider the compression failed. + no_speech_prob: + type: number + format: float + description: Probability of no speech in the segment. If the value is higher than 1.0 and the `avg_logprob` is below -1, consider this segment silent. + OpenAI.TranscriptionWord: + type: object + required: + - word + - start + - end + properties: + word: + type: string + description: The text content of the word. + start: + type: number + format: float + description: Start time of the word in seconds. + end: + type: number + format: float + description: End time of the word in seconds. + OpenAI.TruncationObject: + type: object + required: + - type + properties: + type: + type: string + enum: + - auto + - last_messages + description: The truncation strategy to use for the thread. The default is `auto`. If set to `last_messages`, the thread will be truncated to the n most recent messages in the thread. When set to `auto`, messages in the middle of the thread will be dropped to fit the context length of the model, `max_prompt_tokens`. + last_messages: + anyOf: + - type: integer + - type: 'null' + description: Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + title: Thread Truncation Controls + OpenAI.Type: + type: object + required: + - type + - text + properties: + type: + type: string + enum: + - type + description: |- + Specifies the event type. For a type action, this property is + always set to `type`. + x-stainless-const: true + default: type + text: + type: string + description: The text to type. + allOf: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: An action to type in text. + title: Type + OpenAI.UpdateConversationBody: + type: object + required: + - metadata + properties: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + description: |- + Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. + Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters. OpenAI.UpdateVectorStoreFileAttributesRequest: type: object required: - attributes properties: attributes: - type: object - allOf: + anyOf: - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' - nullable: true + - type: 'null' + x-oaiMeta: + name: Update vector store file attributes request OpenAI.UpdateVectorStoreRequest: type: object properties: name: - type: string - nullable: true - description: The name of the vector store. - expires_after: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.VectorStoreExpirationAfter' - nullable: true - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - OpenAI.ValidateGraderRequest: + anyOf: + - type: string + - type: 'null' + description: The name of the vector store. + expires_after: + $ref: '#/components/schemas/OpenAI.VectorStoreExpirationAfter' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.UrlCitationBody: type: object required: - - grader + - type + - url + - start_index + - end_index + - title properties: - grader: - anyOf: - - $ref: '#/components/schemas/OpenAI.GraderStringCheck' - - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' - - $ref: '#/components/schemas/OpenAI.GraderPython' - - $ref: '#/components/schemas/OpenAI.GraderScoreModel' - - $ref: '#/components/schemas/OpenAI.GraderMulti' - description: The grader used for the fine-tuning job. + type: + type: string + enum: + - url_citation + description: The type of the URL citation. Always `url_citation`. + x-stainless-const: true + default: url_citation + url: + type: string + description: The URL of the web resource. + start_index: + type: integer + description: The index of the first character of the URL citation in the message. + end_index: + type: integer + description: The index of the last character of the URL citation in the message. + title: + type: string + description: The title of the web resource. + allOf: + - $ref: '#/components/schemas/OpenAI.Annotation' + description: A citation for a web resource used to generate a model response. + title: URL citation OpenAI.ValidateGraderResponse: type: object properties: @@ -15510,7 +26122,9 @@ components: - $ref: '#/components/schemas/OpenAI.GraderPython' - $ref: '#/components/schemas/OpenAI.GraderScoreModel' - $ref: '#/components/schemas/OpenAI.GraderMulti' + - $ref: '#/components/schemas/GraderEndpoint' description: The grader used for the fine-tuning job. + title: ValidateGraderResponse OpenAI.VectorStoreExpirationAfter: type: object required: @@ -15522,23 +26136,16 @@ components: enum: - last_active_at description: 'Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`.' + x-stainless-const: true days: type: integer - format: int32 minimum: 1 maximum: 365 description: The number of days after the anchor time that the vector store will expire. description: The expiration policy for a vector store. + title: Vector store expiration policy OpenAI.VectorStoreFileAttributes: type: object - additionalProperties: - anyOf: - - type: string - - type: boolean - - type: integer - format: int32 - - type: number - format: float description: |- Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured @@ -15564,13 +26171,14 @@ components: enum: - vector_store.files_batch description: The object type, which is always `vector_store.file_batch`. + x-stainless-const: true created_at: type: integer format: unixtime description: The Unix timestamp (in seconds) for when the vector store files batch was created. vector_store_id: type: string - description: The ID of the [vector store](/docs/api-reference/vector-stores/object) that the [File](/docs/api-reference/files) is attached to. + description: The ID of the [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) that the [File](https://platform.openai.com/docs/api-reference/files) is attached to. status: type: string enum: @@ -15580,35 +26188,46 @@ components: - failed description: The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`. file_counts: - type: object - properties: - in_progress: - type: integer - format: int32 - description: The number of files that are currently being processed. - completed: - type: integer - format: int32 - description: The number of files that have been processed. - failed: - type: integer - format: int32 - description: The number of files that have failed to process. - cancelled: - type: integer - format: int32 - description: The number of files that where cancelled. - total: - type: integer - format: int32 - description: The total number of files. - required: - - in_progress - - completed - - failed - - cancelled - - total + $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObjectFileCounts' description: A batch of files attached to a vector store. + title: Vector store file batch + x-oaiMeta: + name: The vector store files batch object + beta: true + example: | + { + "id": "vsfb_123", + "object": "vector_store.files_batch", + "created_at": 1698107661, + "vector_store_id": "vs_abc123", + "status": "completed", + "file_counts": { + "in_progress": 0, + "completed": 100, + "failed": 0, + "cancelled": 0, + "total": 100 + } + } + OpenAI.VectorStoreFileBatchObjectFileCounts: + type: object + required: + - in_progress + - completed + - failed + - cancelled + - total + properties: + in_progress: + type: integer + completed: + type: integer + failed: + type: integer + cancelled: + type: integer + total: + type: integer OpenAI.VectorStoreFileObject: type: object required: @@ -15628,9 +26247,9 @@ components: enum: - vector_store.file description: The object type, which is always `vector_store.file`. + x-stainless-const: true usage_bytes: type: integer - format: int32 description: The total vector store usage in bytes. Note that this may be different from the original file size. created_at: type: integer @@ -15638,7 +26257,7 @@ components: description: The Unix timestamp (in seconds) for when the vector store file was created. vector_store_id: type: string - description: The ID of the [vector store](/docs/api-reference/vector-stores/object) that the [File](/docs/api-reference/files) is attached to. + description: The ID of the [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) that the [File](https://platform.openai.com/docs/api-reference/files) is attached to. status: type: string enum: @@ -15648,33 +26267,51 @@ components: - failed description: The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use. last_error: - type: object - properties: - code: - type: string - enum: - - server_error - - unsupported_file - - invalid_file - description: One of `server_error` or `rate_limit_exceeded`. - message: - type: string - description: A human-readable description of the error. - required: - - code - - message - nullable: true - description: The last error associated with this vector store file. Will be `null` if there are no errors. + anyOf: + - $ref: '#/components/schemas/OpenAI.VectorStoreFileObjectLastError' + - type: 'null' chunking_strategy: - allOf: - - $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponseParam' - description: The strategy used to chunk the file. + $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponse' attributes: - type: object - allOf: + anyOf: - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' - nullable: true + - type: 'null' description: A list of files attached to a vector store. + title: Vector store files + x-oaiMeta: + name: The vector store file object + beta: true + example: | + { + "id": "file-abc123", + "object": "vector_store.file", + "usage_bytes": 1234, + "created_at": 1698107661, + "vector_store_id": "vs_abc123", + "status": "completed", + "last_error": null, + "chunking_strategy": { + "type": "static", + "static": { + "max_chunk_size_tokens": 800, + "chunk_overlap_tokens": 400 + } + } + } + OpenAI.VectorStoreFileObjectLastError: + type: object + required: + - code + - message + properties: + code: + type: string + enum: + - server_error + - unsupported_file + - invalid_file + message: + type: string OpenAI.VectorStoreObject: type: object required: @@ -15696,6 +26333,7 @@ components: enum: - vector_store description: The object type, which is always `vector_store`. + x-stainless-const: true created_at: type: integer format: unixtime @@ -15705,37 +26343,9 @@ components: description: The name of the vector store. usage_bytes: type: integer - format: int32 description: The total number of bytes used by the files in the vector store. file_counts: - type: object - properties: - in_progress: - type: integer - format: int32 - description: The number of files that are currently being processed. - completed: - type: integer - format: int32 - description: The number of files that have been successfully processed. - failed: - type: integer - format: int32 - description: The number of files that have failed to process. - cancelled: - type: integer - format: int32 - description: The number of files that were cancelled. - total: - type: integer - format: int32 - description: The total number of files. - required: - - in_progress - - completed - - failed - - cancelled - - total + $ref: '#/components/schemas/OpenAI.VectorStoreObjectFileCounts' status: type: string enum: @@ -15746,29 +26356,202 @@ components: expires_after: $ref: '#/components/schemas/OpenAI.VectorStoreExpirationAfter' expires_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: unixtime - nullable: true - description: The Unix timestamp (in seconds) for when the vector store will expire. + format: unixTimestamp last_active_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: unixtime - nullable: true - description: The Unix timestamp (in seconds) for when the vector store was last active. + format: unixTimestamp metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' description: A vector store is a collection of processed files can be used by the `file_search` tool. + title: Vector store + x-oaiMeta: + name: The vector store object + example: | + { + "id": "vs_123", + "object": "vector_store", + "created_at": 1698107661, + "usage_bytes": 123456, + "last_active_at": 1698107661, + "name": "my_vector_store", + "status": "completed", + "file_counts": { + "in_progress": 0, + "completed": 100, + "cancelled": 0, + "failed": 0, + "total": 100 + }, + "last_used_at": 1698107661 + } + OpenAI.VectorStoreObjectFileCounts: + type: object + required: + - in_progress + - completed + - failed + - cancelled + - total + properties: + in_progress: + type: integer + completed: + type: integer + failed: + type: integer + cancelled: + type: integer + total: + type: integer + OpenAI.VectorStoreSearchRequest: + type: object + required: + - query + properties: + query: + anyOf: + - type: string + - type: array + items: + type: string + description: A query string for a search + rewrite_query: + type: boolean + description: Whether to rewrite the natural language query for vector search. + max_num_results: + type: integer + minimum: 1 + maximum: 50 + description: The maximum number of results to return. This number should be between 1 and 50 inclusive. + default: 10 + filters: + anyOf: + - $ref: '#/components/schemas/OpenAI.ComparisonFilter' + - $ref: '#/components/schemas/OpenAI.CompoundFilter' + description: A filter to apply based on file attributes. + ranking_options: + allOf: + - $ref: '#/components/schemas/OpenAI.VectorStoreSearchRequestRankingOptions' + description: Ranking options for search. + x-oaiMeta: + name: Vector store search request + OpenAI.VectorStoreSearchRequestRankingOptions: + type: object + properties: + ranker: + type: string + enum: + - none + - auto + - default-2024-11-15 + default: auto + score_threshold: + type: number + minimum: 0 + maximum: 1 + OpenAI.VectorStoreSearchResultContentObject: + type: object + required: + - type + - text + properties: + type: + type: string + enum: + - text + description: The type of content. + text: + type: string + description: The text content returned from search. + x-oaiMeta: + name: Vector store search result content object + OpenAI.VectorStoreSearchResultItem: + type: object + required: + - file_id + - filename + - score + - attributes + - content + properties: + file_id: + type: string + description: The ID of the vector store file. + filename: + type: string + description: The name of the vector store file. + score: + type: number + minimum: 0 + maximum: 1 + description: The similarity score for the result. + attributes: + anyOf: + - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' + - type: 'null' + content: + type: array + items: + $ref: '#/components/schemas/OpenAI.VectorStoreSearchResultContentObject' + description: Content chunks from the file. + x-oaiMeta: + name: Vector store search result item + OpenAI.VectorStoreSearchResultsPage: + type: object + required: + - object + - search_query + - data + - has_more + - next_page + properties: + object: + type: string + enum: + - vector_store.search_results.page + description: The object type, which is always `vector_store.search_results.page` + x-stainless-const: true + search_query: + type: array + items: + type: string + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.VectorStoreSearchResultItem' + description: The list of search result items. + has_more: + type: boolean + description: Indicates if there are more results to fetch. + next_page: + anyOf: + - type: string + - type: 'null' + x-oaiMeta: + name: Vector store search results page + OpenAI.Verbosity: + anyOf: + - type: string + enum: + - low + - medium + - high + - type: 'null' + description: |- + Constrains the verbosity of the model's response. Lower values will result in + more concise responses, while higher values will result in more verbose responses. + Currently supported values are `low`, `medium`, and `high`. OpenAI.VoiceIdsShared: anyOf: - type: string @@ -15779,25 +26562,29 @@ components: - ballad - coral - echo - - fable - - onyx - - nova - sage - shimmer - verse - OpenAI.WebSearchAction: + - marin + - cedar + OpenAI.Wait: type: object required: - type properties: type: - $ref: '#/components/schemas/OpenAI.WebSearchActionType' - discriminator: - propertyName: type - mapping: - find: '#/components/schemas/OpenAI.WebSearchActionFind' - open_page: '#/components/schemas/OpenAI.WebSearchActionOpenPage' - search: '#/components/schemas/OpenAI.WebSearchActionSearch' + type: string + enum: + - wait + description: |- + Specifies the event type. For a wait action, this property is + always set to `wait`. + x-stainless-const: true + default: wait + allOf: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A wait action. + title: Wait OpenAI.WebSearchActionFind: type: object required: @@ -15810,6 +26597,7 @@ components: enum: - find description: The action type. + x-stainless-const: true url: type: string format: uri @@ -15817,9 +26605,8 @@ components: pattern: type: string description: The pattern or text to search for within the page. - allOf: - - $ref: '#/components/schemas/OpenAI.WebSearchAction' description: 'Action type "find": Searches for a pattern within a loaded page.' + title: Find action OpenAI.WebSearchActionOpenPage: type: object required: @@ -15831,13 +26618,13 @@ components: enum: - open_page description: The action type. + x-stainless-const: true url: type: string format: uri description: The URL opened by the model. - allOf: - - $ref: '#/components/schemas/OpenAI.WebSearchAction' description: Action type "open_page" - Opens a specific URL from search results. + title: Open page action OpenAI.WebSearchActionSearch: type: object required: @@ -15849,18 +26636,59 @@ components: enum: - search description: The action type. + x-stainless-const: true query: type: string - description: The search query. - allOf: - - $ref: '#/components/schemas/OpenAI.WebSearchAction' - description: Action type "search" - Performs a web search query. - OpenAI.WebSearchActionType: - type: string - enum: - - search - - open_page - - find + description: The search query. + sources: + type: array + items: + $ref: '#/components/schemas/OpenAI.WebSearchActionSearchSources' + description: The sources used in the search. + title: Web search sources + description: Action type "search" - Performs a web search query. + title: Search action + OpenAI.WebSearchActionSearchSources: + type: object + required: + - type + - url + properties: + type: + type: string + enum: + - url + x-stainless-const: true + url: + type: string + OpenAI.WebSearchApproximateLocation: + type: object + properties: + type: + type: string + enum: + - approximate + description: The type of location approximation. Always `approximate`. + x-stainless-const: true + default: approximate + country: + anyOf: + - type: string + - type: 'null' + region: + anyOf: + - type: string + - type: 'null' + city: + anyOf: + - type: string + - type: 'null' + timezone: + anyOf: + - type: string + - type: 'null' + description: The approximate location of the user. + title: Web search approximate location OpenAI.WebSearchPreviewTool: type: object required: @@ -15871,180 +26699,65 @@ components: enum: - web_search_preview description: The type of the web search tool. One of `web_search_preview` or `web_search_preview_2025_03_11`. + x-stainless-const: true + default: web_search_preview user_location: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.Location' - nullable: true - description: The user's location. + anyOf: + - $ref: '#/components/schemas/OpenAI.ApproximateLocation' + - type: 'null' search_context_size: - type: string - enum: - - low - - medium - - high + allOf: + - $ref: '#/components/schemas/OpenAI.SearchContextSize' description: High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default. allOf: - $ref: '#/components/schemas/OpenAI.Tool' description: 'Note: web_search is not yet available via Azure OpenAI.' - OpenAI.WebSearchToolCallItemParam: - type: object - required: - - type - - action - properties: - type: - type: string - enum: - - web_search_call - action: - allOf: - - $ref: '#/components/schemas/OpenAI.WebSearchAction' - description: |- - An object describing the specific action taken in this web search call. - Includes details on how the model used the web (search, open_page, find). - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: 'Note: web_search is not yet available via Azure OpenAI.' - OpenAI.WebSearchToolCallItemResource: + title: Web search preview + OpenAI.WebSearchTool: type: object required: - type - - status - - action properties: type: type: string enum: - - web_search_call - status: + - web_search + description: The type of the web search tool. One of `web_search` or `web_search_2025_08_26`. + default: web_search + filters: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchToolFilters' + - type: 'null' + user_location: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchApproximateLocation' + - type: 'null' + search_context_size: type: string enum: - - in_progress - - searching - - completed - - failed - description: The status of the web search tool call. - action: - allOf: - - $ref: '#/components/schemas/OpenAI.WebSearchAction' - description: |- - An object describing the specific action taken in this web search call. - Includes details on how the model used the web (search, open_page, find). + - low + - medium + - high + description: High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default. + default: medium allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' + - $ref: '#/components/schemas/OpenAI.Tool' description: 'Note: web_search is not yet available via Azure OpenAI.' - PineconeChatDataSource: + title: Web search + OpenAI.WebSearchToolFilters: type: object - required: - - type - - parameters properties: - type: - type: string - enum: - - pinecone - description: The discriminated type identifier, which is always 'pinecone'. - parameters: - type: object - properties: - top_n_documents: - type: integer - format: int32 - description: The configured number of documents to feature in the query. - in_scope: - type: boolean - description: Whether queries should be restricted to use of the indexed data. - strictness: - type: integer - format: int32 - minimum: 1 - maximum: 5 - description: |- - The configured strictness of the search relevance filtering. - Higher strictness will increase precision but lower recall of the answer. - max_search_queries: - type: integer - format: int32 - description: |- - The maximum number of rewritten queries that should be sent to the search provider for a single user message. - By default, the system will make an automatic determination. - allow_partial_result: - type: boolean - description: |- - If set to true, the system will allow partial search results to be used and the request will fail if all - partial queries fail. If not specified or specified as false, the request will fail if any search query fails. - default: false - include_contexts: - type: array + allowed_domains: + anyOf: + - type: array items: type: string - enum: - - citations - - intent - - all_retrieved_documents - maxItems: 3 - description: |- - The output context properties to include on the response. - By default, citations and intent will be requested. - default: - - citations - - intent - environment: - type: string - description: The environment name to use with Pinecone. - index_name: - type: string - description: The name of the Pinecone database index to use. - authentication: - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceApiKeyAuthenticationOptions' - description: |- - The authentication mechanism to use with Pinecone. - Supported authentication mechanisms for Pinecone include: API key. - embedding_dependency: - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - description: |- - The vectorization source to use as an embedding dependency for the Pinecone data source. - Supported vectorization sources for Pinecone include: deployment name. - fields_mapping: - type: object - properties: - content_fields: - type: array - items: - type: string - title_field: - type: string - url_field: - type: string - filepath_field: - type: string - content_fields_separator: - type: string - required: - - content_fields - description: |- - Field mappings to apply to data used by the Pinecone data source. - Note that content field mappings are required for Pinecone. - required: - - environment - - index_name - - authentication - - embedding_dependency - - fields_mapping - description: The parameter information to control the use of the Pinecone data source. - allOf: - - $ref: '#/components/schemas/AzureChatDataSource' - Quality: + - type: 'null' + Order: type: string enum: - - high - - low - description: |- - The quality of the video content to retrieve. - This specifies the quality of the video content that should be returned. + - asc + - desc ResponseFormatJSONSchemaRequest: type: object required: @@ -16058,147 +26771,60 @@ components: description: Type of response format json_schema: type: object - additionalProperties: {} + unevaluatedProperties: {} description: JSON Schema for the response format - ResponseModalities: - type: array - items: - type: string - enum: - - text - - audio - description: |- - Output types that you would like the model to generate. - Most models are capable of generating text, which is the default: - - `["text"]` - - The `gpt-4o-audio-preview` model can also be used to - [generate audio](/docs/guides/audio). To request that this model generate - both text and audio responses, you can use: - - `["text", "audio"]` - VideoGeneration: + SpeechGenerationResponse: type: object required: - - object - - id - - job_id - - created_at - - width - - height - - n_seconds - - prompt + - audio properties: - object: + audio: type: string + contentEncoding: base64 + description: The generated audio, generated in the requested audio output format. + description: A representation of a response for a text-to-speech operation. + SpeechGenerationResponseFormat: + oneOf: + - type: string + - type: string enum: - - video.generation - id: - type: string - description: The id of the video generation. - job_id: - type: string - description: The id of the video generation job for this video. - created_at: - type: integer - format: unixtime - description: The time when the video generation was created. - width: - type: integer - format: int32 - description: The width of the video. - height: - type: integer - format: int32 - description: The height of the video. - n_seconds: - type: integer - format: int32 - description: The duration of the video generation. - prompt: - type: string - description: The prompt for this video generation. - description: A video generation result. - VideoGenerationJob: + - mp3 + - opus + - aac + - flac + - wav + - pcm + description: The supported audio output formats for text-to-speech. + SpeechVoice: + anyOf: + - type: string + - type: string + enum: + - alloy + - echo + - fable + - onyx + - nova + - shimmer + description: The available voices for text-to-speech. + VideoContent: type: object required: - - object - - id - - status - - created_at - - prompt - - model - - n_variants - - n_seconds - - height - - width + - content properties: - object: + content: type: string + contentEncoding: base64 + VideoContentVariant: + anyOf: + - type: string enum: - - video.generation.job - id: - type: string - description: The id of the job. - status: - allOf: - - $ref: '#/components/schemas/JobStatus' - description: The status of the job. - created_at: - type: integer - format: unixtime - description: The time when the job was created. - finished_at: - type: integer - format: unixtime - description: The time when the job finished with all video generations. - expires_at: - type: integer - format: unixtime - description: The time when the job gets automatically deleted from the service. The video content and metadata of the job should be stored before this date to avoid data loss. - generations: - type: array - items: - $ref: '#/components/schemas/VideoGeneration' - description: The generated videos for this job. The number depends on the given n_variants and the creation success of the generations. - prompt: - type: string - description: The prompt for this video generation job. - model: - type: string - description: The name of the deployment to use for this video generation job. - n_variants: - type: integer - format: int32 - description: The number of videos to create as variants for this video generation job. - n_seconds: - type: integer - format: int32 - description: The duration of the video generation job. - height: - type: integer - format: int32 - description: The height of the video. - width: - type: integer - format: int32 - description: The height of the video. - inpaint_items: - type: array - items: - $ref: '#/components/schemas/InpaintItem' - description: Optional inpainting items for this video generation job. - failure_reason: - anyOf: - - type: string - - type: string - enum: - - input_moderation - - internal_error - x-oaiTypeLabel: string - description: A video generation job. - VideoGenerationJobList: + - video + - thumbnail + - spritesheet + - type: string + description: Selectable asset variants for downloaded content. + VideoList: type: object required: - object @@ -16212,18 +26838,104 @@ components: data: type: array items: - $ref: '#/components/schemas/VideoGenerationJob' + $ref: '#/components/schemas/VideoResource' description: The list of video generation jobs. has_more: type: boolean description: A flag indicating whether there are more jobs available after the list. first_id: type: string - description: The ID of the first job in the current page, if available. + description: The ID of the first video in the current page, if available. last_id: type: string - description: The ID of the last job in the current page, if available. + description: The ID of the last video in the current page, if available. description: A list of video generation jobs. + VideoResource: + type: object + required: + - id + - object + - model + - status + - progress + - created_at + - size + - seconds + properties: + id: + type: string + description: Unique identifier for the video job. + object: + type: string + description: The object type, which is always `video`. + model: + type: string + description: The video generation model deployment that produced the job. + status: + allOf: + - $ref: '#/components/schemas/VideoStatus' + description: Current lifecycle status of the video job. + progress: + type: integer + format: int32 + description: Approximate completion percentage for the generation task. + created_at: + type: integer + format: unixtime + description: Unix timestamp (seconds) for when the job was created. + completed_at: + type: integer + format: unixtime + description: Unix timestamp (seconds) for when the job completed, if finished. + expires_at: + type: integer + format: unixtime + description: Unix timestamp (seconds) for when the video generation expires (and will be deleted). + size: + allOf: + - $ref: '#/components/schemas/VideoSize' + description: The resolution of the generated video. + seconds: + allOf: + - $ref: '#/components/schemas/VideoSeconds' + description: Duration of the generated clip in seconds. + remixed_from_video_id: + type: string + description: Identifier of the source video if this video is a remix. + error: + allOf: + - $ref: '#/components/schemas/Error' + description: Error payload that explains why generation failed, if applicable. + description: Structured information describing a generated video job. + VideoSeconds: + anyOf: + - type: string + enum: + - '4' + - '8' + - '12' + - type: string + description: Supported clip durations, measured in seconds. + VideoSize: + anyOf: + - type: string + enum: + - 720x1280 + - 1280x720 + - 1024x1792 + - 1792x1024 + - type: string + description: Output dimensions formatted as `{width}x{height}`. + VideoStatus: + anyOf: + - type: string + enum: + - queued + - in_progress + - completed + - failed + - type: string + description: Lifecycle state of a generated video. securitySchemes: ApiKeyAuth: type: apiKey diff --git a/specification/ai/data-plane/OpenAI.v1/azure-v1-v1-generated.json b/specification/ai/data-plane/OpenAI.v1/azure-v1-v1-generated.json index f99858cd9f1a..ce0a3a7c4e3e 100644 --- a/specification/ai/data-plane/OpenAI.v1/azure-v1-v1-generated.json +++ b/specification/ai/data-plane/OpenAI.v1/azure-v1-v1-generated.json @@ -1,5 +1,5 @@ { - "openapi": "3.0.0", + "openapi": "3.2.0", "info": { "title": "Azure AI Foundry Models Service", "license": { @@ -9,14 +9,20 @@ "version": "v1" }, "tags": [ + { + "name": "Batch" + }, { "name": "Chat" }, + { + "name": "Completions" + }, { "name": "Containers" }, { - "name": "Embeddings" + "name": "Conversations" }, { "name": "Evals" @@ -24,24 +30,33 @@ { "name": "Files" }, + { + "name": "Embeddings" + }, { "name": "Fine-tuning" }, { "name": "Models" }, + { + "name": "Realtime" + }, { "name": "Responses" }, + { + "name": "Threads" + }, { "name": "Vector Stores" } ], "paths": { - "/chat/completions": { + "/batches": { "post": { - "operationId": "createChatCompletion", - "description": "Creates a chat completion.", + "operationId": "createBatch", + "summary": "Creates and executes a batch from an uploaded file of requests", "parameters": [ { "name": "api-version", @@ -52,11 +67,22 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } + }, + { + "name": "accept", + "in": "header", + "required": true, + "schema": { + "type": "string", + "enum": [ + "application/json" + ] + } } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { "apim-request-id": { "required": false, @@ -69,12 +95,141 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureCreateChatCompletionResponse" - } - }, - "text/event-stream": { - "schema": { - "$ref": "#/components/schemas/AzureCreateChatCompletionStreamResponse" + "type": "object", + "required": [ + "id", + "object", + "endpoint", + "completion_window", + "status", + "created_at" + ], + "properties": { + "id": { + "type": "string" + }, + "object": { + "type": "string", + "enum": [ + "batch" + ], + "description": "The object type, which is always `batch`.", + "x-stainless-const": true + }, + "endpoint": { + "type": "string", + "description": "The OpenAI API endpoint used by the batch." + }, + "model": { + "type": "string", + "description": "Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model\n guide](https://platform.openai.com/docs/models) to browse and compare available models." + }, + "errors": { + "$ref": "#/components/schemas/OpenAI.BatchErrors" + }, + "completion_window": { + "type": "string", + "description": "The time frame within which the batch should be processed." + }, + "status": { + "type": "string", + "enum": [ + "validating", + "failed", + "in_progress", + "finalizing", + "completed", + "expired", + "cancelling", + "cancelled" + ], + "description": "The current status of the batch." + }, + "output_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of successfully executed requests." + }, + "error_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of requests with errors." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was created." + }, + "in_progress_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started processing." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch will expire." + }, + "finalizing_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started finalizing." + }, + "completed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was completed." + }, + "failed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch failed." + }, + "expired_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch expired." + }, + "cancelling_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started cancelling." + }, + "cancelled_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was cancelled." + }, + "request_counts": { + "$ref": "#/components/schemas/OpenAI.BatchRequestCounts" + }, + "usage": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.BatchUsage" + } + ], + "description": "Represents token usage details including input tokens, output tokens, a\n breakdown of output tokens, and the total tokens used. Only populated on\n batches created after September 7, 2025." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "input_file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + } } } } @@ -100,28 +255,47 @@ } }, "tags": [ - "Chat" + "Batch" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureCreateChatCompletionRequest" + "type": "object", + "properties": { + "input_file_id": { + "type": "string", + "description": "The ID of an uploaded file that contains requests for the new batch.\n\nSee [upload file](/docs/api-reference/files/create) for how to upload a file.\n\nYour input file must be formatted as a [JSONL file](/docs/api-reference/batch/requestInput),\nand must be uploaded with the purpose `batch`." + }, + "endpoint": { + "type": "string", + "enum": [ + "/v1/chat/completions", + "/v1/embeddings" + ], + "description": "The endpoint to be used for all requests in the batch. Currently `/v1/chat/completions` is supported." + }, + "completion_window": { + "type": "string", + "enum": [ + "24h" + ], + "description": "The time frame within which the batch should be processed. Currently only `24h` is supported." + } + }, + "required": [ + "endpoint", + "completion_window" + ] } } } - }, - "x-ms-examples": { - "Create a chat completion": { - "$ref": "./examples/chat_completions.yaml" - } } - } - }, - "/containers": { + }, "get": { - "operationId": "ListContainers", + "operationId": "listBatches", + "summary": "List your organization's batches.", "parameters": [ { "name": "api-version", @@ -134,38 +308,35 @@ } }, { - "name": "limit", - "in": "query", - "required": false, - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", + "name": "accept", + "in": "header", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false + "type": "string", + "enum": [ + "application/json" + ] + } }, { - "name": "order", + "name": "after", "in": "query", "required": false, - "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] + "type": "string" }, "explode": false }, { - "name": "after", + "name": "limit", "in": "query", "required": false, - "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", "schema": { - "type": "string" + "type": "integer", + "format": "int32", + "default": 20 }, "explode": false } @@ -185,7 +356,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ContainerListResource" + "$ref": "#/components/schemas/OpenAI.ListBatchesResponse" } } } @@ -211,11 +382,14 @@ } }, "tags": [ - "Containers" + "Batch" ] - }, - "post": { - "operationId": "CreateContainer", + } + }, + "/batches/{batch_id}": { + "get": { + "operationId": "retrieveBatch", + "summary": "Retrieves a batch.", "parameters": [ { "name": "api-version", @@ -226,6 +400,26 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } + }, + { + "name": "accept", + "in": "header", + "required": true, + "schema": { + "type": "string", + "enum": [ + "application/json" + ] + } + }, + { + "name": "batch_id", + "in": "path", + "required": true, + "description": "The ID of the batch to retrieve.", + "schema": { + "type": "string" + } } ], "responses": { @@ -243,7 +437,141 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ContainerResource" + "type": "object", + "required": [ + "id", + "object", + "endpoint", + "completion_window", + "status", + "created_at" + ], + "properties": { + "id": { + "type": "string" + }, + "object": { + "type": "string", + "enum": [ + "batch" + ], + "description": "The object type, which is always `batch`.", + "x-stainless-const": true + }, + "endpoint": { + "type": "string", + "description": "The OpenAI API endpoint used by the batch." + }, + "model": { + "type": "string", + "description": "Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model\n guide](https://platform.openai.com/docs/models) to browse and compare available models." + }, + "errors": { + "$ref": "#/components/schemas/OpenAI.BatchErrors" + }, + "completion_window": { + "type": "string", + "description": "The time frame within which the batch should be processed." + }, + "status": { + "type": "string", + "enum": [ + "validating", + "failed", + "in_progress", + "finalizing", + "completed", + "expired", + "cancelling", + "cancelled" + ], + "description": "The current status of the batch." + }, + "output_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of successfully executed requests." + }, + "error_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of requests with errors." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was created." + }, + "in_progress_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started processing." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch will expire." + }, + "finalizing_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started finalizing." + }, + "completed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was completed." + }, + "failed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch failed." + }, + "expired_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch expired." + }, + "cancelling_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started cancelling." + }, + "cancelled_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was cancelled." + }, + "request_counts": { + "$ref": "#/components/schemas/OpenAI.BatchRequestCounts" + }, + "usage": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.BatchUsage" + } + ], + "description": "Represents token usage details including input tokens, output tokens, a\n breakdown of output tokens, and the total tokens used. Only populated on\n batches created after September 7, 2025." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "input_file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + } } } } @@ -269,23 +597,14 @@ } }, "tags": [ - "Containers" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.CreateContainerBody" - } - } - } - } + "Batch" + ] } }, - "/containers/{container_id}": { - "get": { - "operationId": "RetrieveContainer", + "/batches/{batch_id}/cancel": { + "post": { + "operationId": "cancelBatch", + "summary": "Cancels an in-progress batch.", "parameters": [ { "name": "api-version", @@ -298,75 +617,21 @@ } }, { - "name": "container_id", - "in": "path", + "name": "accept", + "in": "header", "required": true, "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.ContainerResource" - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AzureErrorResponse" - } - } - } - } - }, - "tags": [ - "Containers" - ] - }, - "delete": { - "operationId": "DeleteContainer", - "parameters": [ - { - "name": "api-version", - "in": "query", - "required": false, - "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", - "schema": { - "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", - "default": "v1" + "type": "string", + "enum": [ + "application/json" + ] } }, { - "name": "container_id", + "name": "batch_id", "in": "path", "required": true, + "description": "The ID of the batch to cancel.", "schema": { "type": "string" } @@ -391,7 +656,10 @@ "required": [ "id", "object", - "deleted" + "endpoint", + "completion_window", + "status", + "created_at" ], "properties": { "id": { @@ -400,13 +668,122 @@ "object": { "type": "string", "enum": [ - "container.deleted" - ] + "batch" + ], + "description": "The object type, which is always `batch`.", + "x-stainless-const": true }, - "deleted": { - "type": "boolean", + "endpoint": { + "type": "string", + "description": "The OpenAI API endpoint used by the batch." + }, + "model": { + "type": "string", + "description": "Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model\n guide](https://platform.openai.com/docs/models) to browse and compare available models." + }, + "errors": { + "$ref": "#/components/schemas/OpenAI.BatchErrors" + }, + "completion_window": { + "type": "string", + "description": "The time frame within which the batch should be processed." + }, + "status": { + "type": "string", "enum": [ - true + "validating", + "failed", + "in_progress", + "finalizing", + "completed", + "expired", + "cancelling", + "cancelled" + ], + "description": "The current status of the batch." + }, + "output_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of successfully executed requests." + }, + "error_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of requests with errors." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was created." + }, + "in_progress_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started processing." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch will expire." + }, + "finalizing_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started finalizing." + }, + "completed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was completed." + }, + "failed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch failed." + }, + "expired_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch expired." + }, + "cancelling_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started cancelling." + }, + "cancelled_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was cancelled." + }, + "request_counts": { + "$ref": "#/components/schemas/OpenAI.BatchRequestCounts" + }, + "usage": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.BatchUsage" + } + ], + "description": "Represents token usage details including input tokens, output tokens, a\n breakdown of output tokens, and the total tokens used. Only populated on\n batches created after September 7, 2025." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "input_file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } ] } } @@ -435,13 +812,14 @@ } }, "tags": [ - "Containers" + "Batch" ] } }, - "/containers/{container_id}/files": { + "/chat/completions": { "post": { - "operationId": "CreateContainerFile", + "operationId": "createChatCompletion", + "description": "Creates a chat completion.", "parameters": [ { "name": "api-version", @@ -452,14 +830,6 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "container_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } } ], "responses": { @@ -477,7 +847,138 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ContainerFileResource" + "anyOf": [ + { + "type": "object", + "required": [ + "id", + "choices", + "created", + "model", + "object" + ], + "properties": { + "id": { + "type": "string", + "description": "A unique identifier for the chat completion." + }, + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateChatCompletionResponseChoices" + }, + "description": "A list of chat completion choices. Can be more than one if `n` is greater than 1." + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) of when the chat completion was created." + }, + "model": { + "type": "string", + "description": "The model used for the chat completion." + }, + "system_fingerprint": { + "type": "string", + "description": "This fingerprint represents the backend configuration that the model runs with.\n\n Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism." + }, + "object": { + "type": "string", + "enum": [ + "chat.completion" + ], + "description": "The object type, which is always `chat.completion`.", + "x-stainless-const": true + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.CompletionUsage" + }, + "prompt_filter_results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "prompt_index": { + "type": "integer", + "format": "int32", + "description": "The index of the input prompt that this content filter result corresponds to." + }, + "content_filter_results": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterResultForPrompt" + } + ], + "description": "The content filter results associated with the indexed input prompt." + } + }, + "required": [ + "prompt_index", + "content_filter_results" + ] + } + } + } + }, + { + "type": "object", + "required": [ + "id", + "choices", + "created", + "model", + "object" + ], + "properties": { + "id": { + "type": "string", + "description": "A unique identifier for the chat completion. Each chunk has the same ID." + }, + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateChatCompletionStreamResponseChoices" + }, + "description": "A list of chat completion choices. Can contain more than one elements if `n` is greater than 1. Can also be empty for the\n last chunk if you set `stream_options: {\"include_usage\": true}`." + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) of when the chat completion was created. Each chunk has the same timestamp." + }, + "model": { + "type": "string", + "description": "The model to generate the completion." + }, + "system_fingerprint": { + "type": "string", + "description": "This fingerprint represents the backend configuration that the model runs with.\n Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism." + }, + "object": { + "type": "string", + "enum": [ + "chat.completion.chunk" + ], + "description": "The object type, which is always `chat.completion.chunk`.", + "x-stainless-const": true + }, + "usage": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.CompletionUsage" + } + ], + "description": "An optional field that will only be present when you set\n `stream_options: {\"include_usage\": true}` in your request. When present, it\n contains a null value **except for the last chunk** which contains the\n token usage statistics for the entire request.\n\n*NOTE:** If the stream is interrupted or cancelled, you may not\n receive the final usage chunk which contains the total token usage for\n the request." + }, + "delta": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamResponseDelta" + }, + "content_filter_results": { + "$ref": "#/components/schemas/AzureContentFilterResultForChoice" + } + } + } + ] } } } @@ -503,125 +1004,343 @@ } }, "tags": [ - "Containers" + "Chat" ], "requestBody": { "required": true, "content": { - "multipart/form-data": { + "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.CreateContainerFileBodyMultiPart" - } - } - } - } - }, - "get": { - "operationId": "ListContainerFiles", - "parameters": [ - { - "name": "api-version", - "in": "query", - "required": false, - "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", - "schema": { - "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", - "default": "v1" - } - }, - { - "name": "container_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false - }, - { - "name": "order", - "in": "query", - "required": false, - "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - }, - "explode": false - }, - { - "name": "after", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", - "schema": { - "type": "string" - }, - "explode": false - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.ContainerFileListResource" - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AzureErrorResponse" - } + "type": "object", + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "top_logprobs": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "user": { + "type": "string", + "description": "A unique identifier representing your end-user, which can help to\nmonitor and detect abuse." + }, + "safety_identifier": { + "type": "string", + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies.\n The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "prompt_cache_key": { + "type": "string", + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "anyOf": [ + { + "type": "string", + "enum": [ + "in-memory", + "24h" + ] + }, + { + "type": "null" + } + ] + }, + "messages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + }, + "minItems": 1, + "description": "A list of messages comprising the conversation so far. Depending on the\nmodel you use, different message types (modalities) are supported,\nlike text, images, and audio." + }, + "model": { + "type": "string", + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\n to browse and compare available models." + }, + "modalities": { + "$ref": "#/components/schemas/OpenAI.ResponseModalities" + }, + "verbosity": { + "$ref": "#/components/schemas/OpenAI.Verbosity" + }, + "reasoning_effort": { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + }, + "max_completion_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "An upper bound for the number of tokens that can be generated for a\ncompletion, including visible output tokens and reasoning tokens." + }, + "frequency_penalty": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "minimum": -2, + "maximum": 2, + "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on\n their existing frequency in the text so far, decreasing the model's\n likelihood to repeat the same line verbatim." + }, + "presence_penalty": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "minimum": -2, + "maximum": 2, + "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on\n whether they appear in the text so far, increasing the model's likelihood\n to talk about new topics." + }, + "response_format": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatText" + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchema" + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonObject" + } + ], + "description": "An object specifying the format that the model must output.\n\nSetting to `{ \"type\": \"json_schema\", \"json_schema\": {...} }` enables\nStructured Outputs which ensures the model will match your supplied JSON\nschema.\n\nSetting to `{ \"type\": \"json_object\" }` enables JSON mode, which ensures\nthe message the model generates is valid JSON.\n\n**Important:** when using JSON mode, you **must** also instruct the model\nto produce JSON yourself via a system or user message. Without this, the\nmodel may generate an unending stream of whitespace until the generation\nreaches the token limit, resulting in a long-running and seemingly \"stuck\"\nrequest. Also note that the message content may be partially cut off if\n`finish_reason=\"length\"`, which indicates the generation exceeded\n`max_tokens` or the conversation exceeded the max context length." + }, + "audio": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateChatCompletionRequestAudio" + }, + { + "type": "null" + } + ], + "description": "Parameters for audio output. Required when audio output is requested with\n`modalities: [\"audio\"]`." + }, + "store": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Whether or not to store the output of this chat completion request for\nuse in model distillation or evals products." + }, + "stream": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "If set to true, the model response data will be streamed to the client\nas it is generated using server-sent events." + }, + "stop": { + "$ref": "#/components/schemas/OpenAI.StopConfiguration" + }, + "logit_bias": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": { + "type": "integer" + } + }, + { + "type": "null" + } + ], + "description": "Modify the likelihood of specified tokens appearing in the completion.\n\n Accepts a JSON object that maps tokens (specified by their token ID in the\n tokenizer) to an associated bias value from -100 to 100. Mathematically,\n the bias is added to the logits generated by the model prior to sampling.\n The exact effect will vary per model, but values between -1 and 1 should\n decrease or increase likelihood of selection; values like -100 or 100\n should result in a ban or exclusive selection of the relevant token.", + "x-oaiTypeLabel": "map" + }, + "logprobs": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Whether to return log probabilities of the output tokens or not. If true,\n returns the log probabilities of each output token returned in the\n `content` of `message`." + }, + "max_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "The maximum number of tokens that can be generated in the chat completion.\nThis value can be used to control costs for text generated via API.\n\nThis value is now deprecated in favor of `max_completion_tokens`, and is\nnot compatible with o1 series models." + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 1, + "maximum": 128, + "description": "How many chat completion choices to generate for each input message. Note that you will be charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to minimize costs.", + "default": 1 + }, + "prediction": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.PredictionContent" + } + ], + "description": "Configuration for a predicted output, which can greatly improve\nresponse times when large parts of the model response are known\nahead of time. This is most common when you are regenerating a\nfile with only minor changes to most of the content." + }, + "seed": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": -9223372036854776000, + "maximum": 9223372036854776000, + "description": "This feature is in Beta.\n If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result.\n Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend.", + "x-oaiMeta": { + "beta": true + } + }, + "stream_options": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamOptions" + }, + { + "type": "null" + } + ] + }, + "tools": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTool" + }, + { + "$ref": "#/components/schemas/OpenAI.CustomToolChatCompletions" + } + ] + }, + "description": "A list of tools the model may call. You can provide either\n [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) or\n [function tools](https://platform.openai.com/docs/guides/function-calling)." + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionToolChoiceOption" + }, + "parallel_tool_calls": { + "$ref": "#/components/schemas/OpenAI.ParallelToolCalls" + }, + "function_call": { + "anyOf": [ + { + "type": "string", + "enum": [ + "none", + "auto" + ] + }, + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionFunctionCallOption" + } + ], + "description": "Deprecated in favor of `tool_choice`.\n\n Controls which (if any) function is called by the model.\n\n `none` means the model will not call a function and instead generates a\n message.\n\n `auto` means the model can pick between generating a message or calling a\n function.\n\n Specifying a particular function via `{\"name\": \"my_function\"}` forces the\n model to call that function.\n\n `none` is the default when no functions are present. `auto` is the default\n if functions are present." + }, + "functions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionFunctions" + }, + "minItems": 1, + "maxItems": 128, + "description": "Deprecated in favor of `tools`.\n\n A list of functions the model may generate JSON inputs for." + }, + "user_security_context": { + "$ref": "#/components/schemas/AzureUserSecurityContext" + } + }, + "required": [ + "messages", + "model" + ] } } } }, - "tags": [ - "Containers" - ] + "x-ms-examples": { + "Create a chat completion": { + "$ref": "./examples/chat_completions.yaml" + } + } } }, - "/containers/{container_id}/files/{file_id}": { - "get": { - "operationId": "RetrieveContainerFile", + "/completions": { + "post": { + "operationId": "createCompletion", + "description": "Creates a completion.", "parameters": [ { "name": "api-version", @@ -632,22 +1351,6 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "container_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } } ], "responses": { @@ -665,7 +1368,57 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ContainerFileResource" + "type": "object", + "required": [ + "id", + "choices", + "created", + "model", + "object" + ], + "properties": { + "id": { + "type": "string", + "description": "A unique identifier for the completion." + }, + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateCompletionResponseChoices" + }, + "description": "The list of completion choices the model generated for the input prompt." + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) of when the completion was created." + }, + "model": { + "type": "string", + "description": "The model used for completion." + }, + "system_fingerprint": { + "type": "string", + "description": "This fingerprint represents the backend configuration that the model runs with.\n\n Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism." + }, + "object": { + "type": "string", + "enum": [ + "text_completion" + ], + "description": "The object type, which is always \"text_completion\"", + "x-stainless-const": true + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.CompletionUsage" + }, + "prompt_filter_results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureContentFilterResultForPrompt" + } + } + } } } } @@ -691,109 +1444,240 @@ } }, "tags": [ - "Containers" - ] - }, - "delete": { - "operationId": "DeleteContainerFile", - "parameters": [ - { - "name": "api-version", - "in": "query", - "required": false, - "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", - "schema": { - "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", - "default": "v1" - } - }, - { - "name": "container_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "file_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } + "Completions" ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "id", - "object", - "deleted" - ], - "properties": { - "id": { - "type": "string" - }, - "object": { - "type": "string", - "enum": [ - "container.file.deleted" - ] - }, - "deleted": { - "type": "boolean", - "enum": [ - true - ] - } + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them.", + "x-oaiTypeLabel": "string" + }, + "best_of": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 0, + "maximum": 20, + "description": "Generates `best_of` completions server-side and returns the \"best\" (the one with the highest log probability per token). Results cannot be streamed.\n\n When used with `n`, `best_of` controls the number of candidate completions and `n` specifies how many to return – `best_of` must be greater than `n`.\n\n*Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.", + "default": 1 + }, + "echo": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Echo back the prompt in addition to the completion" + }, + "frequency_penalty": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "minimum": -2, + "maximum": 2, + "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.\n\n [See more information about frequency and presence penalties.](https://platform.openai.com/docs/guides/text-generation)" + }, + "logit_bias": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": { + "type": "integer" + } + }, + { + "type": "null" + } + ], + "description": "Modify the likelihood of specified tokens appearing in the completion.\n\n Accepts a JSON object that maps tokens (specified by their token ID in the GPT tokenizer) to an associated bias value from -100 to 100. You can use this [tokenizer tool](/tokenizer?view=bpe) to convert text to token IDs. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.\n\n As an example, you can pass `{\"50256\": -100}` to prevent the <|endoftext|> token from being generated.", + "x-oaiTypeLabel": "map" + }, + "logprobs": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 0, + "maximum": 5, + "description": "Include the log probabilities on the `logprobs` most likely output tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response.\n\n The maximum value for `logprobs` is 5." + }, + "max_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 0, + "description": "The maximum number of [tokens](/tokenizer) that can be generated in the completion.\n\n The token count of your prompt plus `max_tokens` cannot exceed the model's context length. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens.", + "default": 16 + }, + "n": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 1, + "maximum": 128, + "description": "How many completions to generate for each prompt.\n\n*Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.", + "default": 1 + }, + "presence_penalty": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "minimum": -2, + "maximum": 2, + "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.\n\n [See more information about frequency and presence penalties.](https://platform.openai.com/docs/guides/text-generation)" + }, + "seed": { + "anyOf": [ + { + "type": "integer", + "format": "int64" + }, + { + "type": "null" + } + ], + "description": "If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result.\n\n Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend." + }, + "stop": { + "$ref": "#/components/schemas/OpenAI.StopConfiguration" + }, + "stream": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "Whether to stream back partial progress. If set, tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions)." + }, + "stream_options": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamOptions" + }, + { + "type": "null" + } + ] + }, + "suffix": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "The suffix that comes after a completion of inserted text.\n\n This parameter is only supported for `gpt-3.5-turbo-instruct`." + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "minimum": 0, + "maximum": 2, + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.\n\n We generally recommend altering this or `top_p` but not both.", + "default": 1 + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "minimum": 0, + "maximum": 1, + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\n We generally recommend altering this or `temperature` but not both.", + "default": 1 + }, + "user": { + "type": "string", + "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids)." + }, + "prompt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "null" + } + ], + "default": "<|endoftext|>" } - } - } - } - }, - "default": { - "description": "An unexpected error response.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AzureErrorResponse" - } + }, + "required": [ + "model" + ] } } } }, - "tags": [ - "Containers" - ] + "x-ms-examples": { + "Create a chat completion": { + "$ref": "./examples/completions.yaml" + } + } } }, - "/containers/{container_id}/files/{file_id}/content": { + "/containers": { "get": { - "operationId": "RetrieveContainerFileContent", + "operationId": "listContainers", "parameters": [ { "name": "api-version", @@ -806,20 +1690,50 @@ } }, { - "name": "container_id", - "in": "path", - "required": true, + "name": "limit", + "in": "query", + "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", "schema": { "type": "string" - } + }, + "explode": false }, { - "name": "file_id", - "in": "path", - "required": true, + "name": "before", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", "schema": { "type": "string" - } + }, + "explode": false } ], "responses": { @@ -835,10 +1749,9 @@ } }, "content": { - "application/octet-stream": { + "application/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#/components/schemas/OpenAI.ContainerListResource" } } } @@ -866,12 +1779,9 @@ "tags": [ "Containers" ] - } - }, - "/embeddings": { + }, "post": { - "operationId": "createEmbedding", - "summary": "Creates an embedding vector representing the input text.", + "operationId": "createContainer", "parameters": [ { "name": "api-version", @@ -899,7 +1809,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.CreateEmbeddingResponse" + "$ref": "#/components/schemas/OpenAI.ContainerResource" } } } @@ -925,29 +1835,23 @@ } }, "tags": [ - "Embeddings" + "Containers" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureCreateEmbeddingRequest" + "$ref": "#/components/schemas/OpenAI.CreateContainerBody" } } } - }, - "x-ms-examples": { - "Create an embedding request": { - "$ref": "./examples/embeddings.yaml" - } } } }, - "/evals": { + "/containers/{container_id}": { "get": { - "operationId": "listEvals", - "summary": "List evaluations for a project.", + "operationId": "retrieveContainer", "parameters": [ { "name": "api-version", @@ -960,68 +1864,13 @@ } }, { - "name": "aoai-evals", - "in": "header", + "name": "container_id", + "in": "path", "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "after", - "in": "query", - "required": false, - "description": "Identifier for the last eval from the previous pagination request.", + "description": "The ID of the container to retrieve.", "schema": { "type": "string" - }, - "explode": false - }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "A limit on the number of evals to be returned in a single pagination response.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false - }, - { - "name": "order", - "in": "query", - "required": false, - "description": "Sort order for evals by timestamp. Use `asc` for ascending order or\n`desc` for descending order.", - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - }, - "explode": false - }, - { - "name": "order_by", - "in": "query", - "required": false, - "description": "Evals can be ordered by creation time or last updated time. Use\n`created_at` for creation time or `updated_at` for last updated\ntime.", - "schema": { - "type": "string", - "enum": [ - "created_at", - "updated_at" - ], - "default": "created_at" - }, - "explode": false + } } ], "responses": { @@ -1039,7 +1888,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.EvalList" + "$ref": "#/components/schemas/OpenAI.ContainerResource" } } } @@ -1065,12 +1914,11 @@ } }, "tags": [ - "Evals" + "Containers" ] }, - "post": { - "operationId": "createEval", - "description": "Create the structure of an evaluation that can be used to test a model's\nperformance.\n\nAn evaluation is a set of testing criteria and a datasource. After\ncreating an evaluation, you can run it on different models and model\nparameters. We support several types of graders and datasources.\n\nFor more information, see the [Evals guide](/docs/guides/evals).\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "delete": { + "operationId": "deleteContainer", "parameters": [ { "name": "api-version", @@ -1083,15 +1931,12 @@ } }, { - "name": "aoai-evals", - "in": "header", + "name": "container_id", + "in": "path", "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "description": "The ID of the container to delete.", "schema": { - "type": "string", - "enum": [ - "preview" - ] + "type": "string" } } ], @@ -1106,13 +1951,6 @@ "type": "string" } } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.Eval" - } - } } }, "default": { @@ -1136,65 +1974,13 @@ } }, "tags": [ - "Evals" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "statusCode": { - "type": "number", - "enum": [ - 201 - ] - }, - "name": { - "type": "string", - "description": "The name of the evaluation." - }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - }, - "data_source_config": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigParams" - } - ], - "description": "The configuration for the data source used for the evaluation runs. Dictates the schema of the data used in the evaluation." - }, - "testing_criteria": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.EvalGraderParams" - }, - "description": "A list of graders for all eval runs in this group. Graders can reference variables in the data source using double curly braces notation, like `{{item.variable_name}}`. To reference the model's output, use the `sample` namespace (ie, `{{sample.output_text}}`)." - } - }, - "required": [ - "statusCode", - "data_source_config", - "testing_criteria" - ] - } - } - } - } + "Containers" + ] } }, - "/evals/{eval_id}": { + "/containers/{container_id}/files": { "get": { - "operationId": "getEval", - "summary": "Retrieve an evaluation by its ID.", - "description": "Retrieves an evaluation by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "operationId": "listContainerFiles", "parameters": [ { "name": "api-version", @@ -1207,24 +1993,59 @@ } }, { - "name": "aoai-evals", - "in": "header", + "name": "container_id", + "in": "path", "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "description": "The ID of the container to list files from.", + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", "schema": { "type": "string", "enum": [ - "preview" + "asc", + "desc" ] - } + }, + "explode": false }, { - "name": "eval_id", - "in": "path", - "required": true, + "name": "after", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", "schema": { "type": "string" - } + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "schema": { + "type": "string" + }, + "explode": false } ], "responses": { @@ -1242,7 +2063,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.Eval" + "$ref": "#/components/schemas/OpenAI.ContainerFileListResource" } } } @@ -1268,12 +2089,11 @@ } }, "tags": [ - "Evals" + "Containers" ] }, "post": { - "operationId": "updateEval", - "description": "Update select, mutable properties of a specified evaluation.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "operationId": "createContainerFile", "parameters": [ { "name": "api-version", @@ -1286,21 +2106,10 @@ } }, { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", + "name": "container_id", "in": "path", "required": true, + "description": "The ID of the container to create a file in.", "schema": { "type": "string" } @@ -1321,7 +2130,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.Eval" + "$ref": "#/components/schemas/OpenAI.ContainerFileResource" } } } @@ -1347,30 +2156,23 @@ } }, "tags": [ - "Evals" + "Containers" ], "requestBody": { "required": true, "content": { - "application/json": { + "multipart/form-data": { "schema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "metadata": { - "$ref": "#/components/schemas/OpenAI.MetadataPropertyForRequest" - } - } + "$ref": "#/components/schemas/OpenAI.CreateContainerFileBody" } } } } - }, - "delete": { - "operationId": "deleteEval", - "description": "Delete a specified evaluation.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + } + }, + "/containers/{container_id}/files/{file_id}": { + "get": { + "operationId": "retrieveContainerFile", "parameters": [ { "name": "api-version", @@ -1383,21 +2185,19 @@ } }, { - "name": "aoai-evals", - "in": "header", + "name": "container_id", + "in": "path", "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "description": "The ID of the container.", "schema": { - "type": "string", - "enum": [ - "preview" - ] + "type": "string" } }, { - "name": "eval_id", + "name": "file_id", "in": "path", "required": true, + "description": "The ID of the file to retrieve.", "schema": { "type": "string" } @@ -1418,26 +2218,7 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "object", - "deleted", - "eval_id" - ], - "properties": { - "object": { - "type": "string", - "enum": [ - "eval.deleted" - ] - }, - "deleted": { - "type": "boolean" - }, - "eval_id": { - "type": "string" - } - } + "$ref": "#/components/schemas/OpenAI.ContainerFileResource" } } } @@ -1463,15 +2244,11 @@ } }, "tags": [ - "Evals" + "Containers" ] - } - }, - "/evals/{eval_id}/runs": { - "get": { - "operationId": "getEvalRuns", - "summary": "", - "description": "Retrieve a list of runs for a specified evaluation.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + }, + "delete": { + "operationId": "deleteContainerFile", "parameters": [ { "name": "api-version", @@ -1484,74 +2261,93 @@ } }, { - "name": "aoai-evals", - "in": "header", + "name": "container_id", + "in": "path", "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "description": "The ID of the container.", "schema": { - "type": "string", - "enum": [ - "preview" - ] + "type": "string" } }, { - "name": "eval_id", + "name": "file_id", "in": "path", "required": true, + "description": "The ID of the file to delete.", "schema": { "type": "string" } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + } }, - { - "name": "after", - "in": "query", - "required": false, - "schema": { - "type": "string" + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } }, - "explode": false - }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Containers" + ] + } + }, + "/containers/{container_id}/files/{file_id}/content": { + "get": { + "operationId": "retrieveContainerFileContent", + "parameters": [ { - "name": "limit", + "name": "api-version", "in": "query", "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } }, { - "name": "order", - "in": "query", - "required": false, + "name": "container_id", + "in": "path", + "required": true, + "description": "The ID of the container.", "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" - }, - "explode": false + "type": "string" + } }, { - "name": "status", - "in": "query", - "required": false, + "name": "file_id", + "in": "path", + "required": true, + "description": "The ID of the file to retrieve content from.", "schema": { - "type": "string", - "enum": [ - "queued", - "in_progress", - "completed", - "canceled", - "failed" - ] - }, - "explode": false + "type": "string" + } } ], "responses": { @@ -1567,9 +2363,9 @@ } }, "content": { - "application/json": { + "application/octet-stream": { "schema": { - "$ref": "#/components/schemas/OpenAI.EvalRunList" + "contentMediaType": "application/octet-stream" } } } @@ -1595,12 +2391,13 @@ } }, "tags": [ - "Evals" + "Containers" ] - }, + } + }, + "/conversations": { "post": { - "operationId": "createEvalRun", - "description": "Create a new evaluation run, beginning the grading process.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "operationId": "createConversation", "parameters": [ { "name": "api-version", @@ -1611,31 +2408,11 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } } ], "responses": { - "201": { - "description": "The request has succeeded and a new resource has been created as a result.", + "200": { + "description": "The request has succeeded.", "headers": { "apim-request-id": { "required": false, @@ -1648,7 +2425,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.EvalRun" + "$ref": "#/components/schemas/OpenAI.ConversationResource" } } } @@ -1674,24 +2451,23 @@ } }, "tags": [ - "Evals" + "Conversations" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.CreateEvalRunRequest" + "$ref": "#/components/schemas/OpenAI.CreateConversationBody" } } } } } }, - "/evals/{eval_id}/runs/{run_id}": { + "/conversations/{conversation_id}": { "get": { - "operationId": "getEvalRun", - "description": "Retrieve a specific evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "operationId": "retrieveConversation", "parameters": [ { "name": "api-version", @@ -1704,29 +2480,10 @@ } }, { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "run_id", + "name": "conversation_id", "in": "path", "required": true, + "description": "The ID of the conversation to retrieve.", "schema": { "type": "string" } @@ -1747,7 +2504,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.EvalRun" + "$ref": "#/components/schemas/OpenAI.ConversationResource" } } } @@ -1773,12 +2530,11 @@ } }, "tags": [ - "Evals" + "Conversations" ] }, "post": { - "operationId": "cancelEvalRun", - "description": "Cancel a specific evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "operationId": "updateConversation", "parameters": [ { "name": "api-version", @@ -1791,29 +2547,10 @@ } }, { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "run_id", + "name": "conversation_id", "in": "path", "required": true, + "description": "The ID of the conversation to update.", "schema": { "type": "string" } @@ -1834,7 +2571,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.EvalRun" + "$ref": "#/components/schemas/OpenAI.ConversationResource" } } } @@ -1860,12 +2597,21 @@ } }, "tags": [ - "Evals" - ] + "Conversations" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.UpdateConversationBody" + } + } + } + } }, "delete": { - "operationId": "deleteEvalRun", - "description": "Delete a specific evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "operationId": "deleteConversation", "parameters": [ { "name": "api-version", @@ -1878,29 +2624,10 @@ } }, { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "run_id", + "name": "conversation_id", "in": "path", "required": true, + "description": "The ID of the conversation to delete.", "schema": { "type": "string" } @@ -1921,26 +2648,7 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "object", - "deleted", - "eval_run_id" - ], - "properties": { - "object": { - "type": "string", - "enum": [ - "eval_run.deleted" - ] - }, - "deleted": { - "type": "boolean" - }, - "eval_run_id": { - "type": "string" - } - } + "$ref": "#/components/schemas/OpenAI.DeletedConversationResource" } } } @@ -1966,14 +2674,13 @@ } }, "tags": [ - "Evals" + "Conversations" ] } }, - "/evals/{eval_id}/runs/{run_id}/output_items": { + "/conversations/{conversation_id}/items": { "get": { - "operationId": "getEvalRunOutputItems", - "description": "Get a list of output items for a specified evaluation run.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "operationId": "listConversationItems", "parameters": [ { "name": "api-version", @@ -1986,46 +2693,19 @@ } }, { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "run_id", + "name": "conversation_id", "in": "path", "required": true, + "description": "The ID of the conversation to list items for.", "schema": { "type": "string" } }, - { - "name": "after", - "in": "query", - "required": false, - "schema": { - "type": "string" - }, - "explode": false - }, { "name": "limit", "in": "query", "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.", "schema": { "type": "integer", "format": "int32", @@ -2034,29 +2714,39 @@ "explode": false }, { - "name": "status", + "name": "order", "in": "query", "required": false, + "description": "The order to return the input items in. Default is `desc`.", "schema": { "type": "string", "enum": [ - "fail", - "pass" + "asc", + "desc" ] }, "explode": false }, { - "name": "order", + "name": "after", "in": "query", "required": false, + "description": "An item ID to list items after, used in pagination.", "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" + "type": "string" + }, + "explode": false + }, + { + "name": "include", + "in": "query", + "required": false, + "description": "Specify additional output data to include in the model response.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.IncludeEnum" + } }, "explode": false } @@ -2076,7 +2766,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemList" + "$ref": "#/components/schemas/OpenAI.ConversationItemList" } } } @@ -2102,14 +2792,11 @@ } }, "tags": [ - "Evals" + "Conversations" ] - } - }, - "/evals/{eval_id}/runs/{run_id}/output_items/{output_item_id}": { - "get": { - "operationId": "getEvalRunOutputItem", - "description": "Retrieve a specific output item from an evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + }, + "post": { + "operationId": "createConversationItems", "parameters": [ { "name": "api-version", @@ -2122,100 +2809,26 @@ } }, { - "name": "aoai-evals", - "in": "header", - "required": true, - "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", - "schema": { - "type": "string", - "enum": [ - "preview" - ] - } - }, - { - "name": "eval_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "run_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "output_item_id", + "name": "conversation_id", "in": "path", "required": true, + "description": "The ID of the conversation to add the item to.", "schema": { "type": "string" } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.EvalRunOutputItem" - } - } - } }, - "default": { - "description": "An unexpected error response.", - "headers": { - "apim-request-id": { - "required": false, - "description": "A request ID used for troubleshooting purposes.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AzureErrorResponse" - } - } - } - } - }, - "tags": [ - "Evals" - ] - } - }, - "/files": { - "post": { - "operationId": "createFile", - "parameters": [ { - "name": "api-version", + "name": "include", "in": "query", "required": false, - "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "description": "Additional fields to include in the response.", "schema": { - "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", - "default": "v1" - } + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.IncludeEnum" + } + }, + "explode": false } ], "responses": { @@ -2233,7 +2846,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureOpenAIFile" + "$ref": "#/components/schemas/OpenAI.ConversationItemList" } } } @@ -2259,26 +2872,23 @@ } }, "tags": [ - "Files" + "Conversations" ], "requestBody": { "required": true, "content": { - "multipart/form-data": { + "application/json": { "schema": { - "$ref": "#/components/schemas/AzureCreateFileRequestMultiPart" + "$ref": "#/components/schemas/OpenAI.CreateConversationItemsParametersBody" } } } - }, - "x-ms-examples": { - "Create a file request": { - "$ref": "./examples/files.yaml" - } } - }, + } + }, + "/conversations/{conversation_id}/items/{item_id}": { "get": { - "operationId": "listFiles", + "operationId": "retrieveConversationItem", "parameters": [ { "name": "api-version", @@ -2291,11 +2901,33 @@ } }, { - "name": "purpose", + "name": "conversation_id", + "in": "path", + "required": true, + "description": "The ID of the conversation that contains the item.", + "schema": { + "type": "string" + } + }, + { + "name": "item_id", + "in": "path", + "required": true, + "description": "The ID of the item to retrieve.", + "schema": { + "type": "string" + } + }, + { + "name": "include", "in": "query", "required": false, + "description": "Additional fields to include in the response.", "schema": { - "type": "string" + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.IncludeEnum" + } }, "explode": false } @@ -2315,7 +2947,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureListFilesResponse" + "$ref": "#/components/schemas/OpenAI.ConversationItem" } } } @@ -2341,13 +2973,11 @@ } }, "tags": [ - "Files" + "Conversations" ] - } - }, - "/files/{file_id}": { - "get": { - "operationId": "retrieveFile", + }, + "delete": { + "operationId": "deleteConversationItem", "parameters": [ { "name": "api-version", @@ -2360,10 +2990,19 @@ } }, { - "name": "file_id", + "name": "conversation_id", "in": "path", "required": true, - "description": "The ID of the file to use for this request.", + "description": "The ID of the conversation that contains the item.", + "schema": { + "type": "string" + } + }, + { + "name": "item_id", + "in": "path", + "required": true, + "description": "The ID of the item to delete.", "schema": { "type": "string" } @@ -2384,7 +3023,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureOpenAIFile" + "$ref": "#/components/schemas/OpenAI.ConversationResource" } } } @@ -2410,11 +3049,14 @@ } }, "tags": [ - "Files" + "Conversations" ] - }, - "delete": { - "operationId": "deleteFile", + } + }, + "/embeddings": { + "post": { + "operationId": "createEmbedding", + "summary": "Creates an embedding vector representing the input text.", "parameters": [ { "name": "api-version", @@ -2425,15 +3067,6 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "file_id", - "in": "path", - "required": true, - "description": "The ID of the file to use for this request.", - "schema": { - "type": "string" - } } ], "responses": { @@ -2451,7 +3084,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.DeleteFileResponse" + "$ref": "#/components/schemas/OpenAI.CreateEmbeddingResponse" } } } @@ -2477,13 +3110,29 @@ } }, "tags": [ - "Files" - ] - } - }, - "/files/{file_id}/content": { + "Embeddings" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateEmbeddingRequest" + } + } + } + }, + "x-ms-examples": { + "Create an embedding request": { + "$ref": "./examples/embeddings.yaml" + } + } + } + }, + "/evals": { "get": { - "operationId": "downloadFile", + "operationId": "listEvals", + "summary": "List evaluations for a project.", "parameters": [ { "name": "api-version", @@ -2496,13 +3145,68 @@ } }, { - "name": "file_id", - "in": "path", + "name": "aoai-evals", + "in": "header", "required": true, - "description": "The ID of the file to use for this request.", + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", "schema": { - "type": "string" + "type": "string", + "enum": [ + "preview" + ] } + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "Identifier for the last eval from the previous pagination request.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "A limit on the number of evals to be returned in a single pagination response.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "Sort order for evals by timestamp. Use `asc` for ascending order or\n`desc` for descending order.", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "explode": false + }, + { + "name": "order_by", + "in": "query", + "required": false, + "description": "Evals can be ordered by creation time or last updated time. Use\n`created_at` for creation time or `updated_at` for last updated\ntime.", + "schema": { + "type": "string", + "enum": [ + "created_at", + "updated_at" + ], + "default": "created_at" + }, + "explode": false } ], "responses": { @@ -2518,10 +3222,9 @@ } }, "content": { - "application/octet-stream": { + "application/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#/components/schemas/OpenAI.EvalList" } } } @@ -2547,14 +3250,12 @@ } }, "tags": [ - "Files" + "Evals" ] - } - }, - "/fine_tuning/alpha/graders/run": { + }, "post": { - "operationId": "runGrader", - "summary": "Run a grader.", + "operationId": "createEval", + "description": "Create the structure of an evaluation that can be used to test a model's\nperformance.\n\nAn evaluation is a set of testing criteria and a datasource. After\ncreating an evaluation, you can run it on different models and model\nparameters. We support several types of graders and datasources.\n\nFor more information, see the [Evals guide](/docs/guides/evals).\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -2565,21 +3266,23 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } + }, + { + "name": "aoai-evals", + "in": "header", + "required": true, + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } } ], "responses": { "200": { "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.RunGraderResponse" - } - } - } - }, - "default": { - "description": "An unexpected error response.", "headers": { "apim-request-id": { "required": false, @@ -2592,50 +3295,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureErrorResponse" - } - } - } - } - }, - "tags": [ - "Fine-tuning" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.RunGraderRequest" - } - } - } - } - } - }, - "/fine_tuning/alpha/graders/validate": { - "post": { - "operationId": "validateGrader", - "summary": "Validate a grader.", - "parameters": [ - { - "name": "api-version", - "in": "query", - "required": false, - "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", - "schema": { - "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", - "default": "v1" - } - } - ], - "responses": { - "200": { - "description": "The request has succeeded.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.ValidateGraderResponse" + "$ref": "#/components/schemas/OpenAI.Eval" } } } @@ -2661,24 +3321,92 @@ } }, "tags": [ - "Fine-tuning" + "Evals" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ValidateGraderRequest" + "type": "object", + "properties": { + "statusCode": { + "type": "number", + "enum": [ + 201 + ] + }, + "name": { + "type": "string", + "description": "The name of the evaluation." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "data_source_config": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalCustomDataSourceConfig" + }, + { + "$ref": "#/components/schemas/OpenAI.CreateEvalLogsDataSourceConfig" + }, + { + "$ref": "#/components/schemas/OpenAI.CreateEvalStoredCompletionsDataSourceConfig" + } + ], + "description": "The configuration for the data source used for the evaluation runs. Dictates the schema of the data used in the evaluation." + }, + "testing_criteria": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalLabelModelGrader" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderStringCheck" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderTextSimilarity" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderPython" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderScoreModel" + }, + { + "$ref": "#/components/schemas/EvalGraderEndpoint" + } + ] + }, + "description": "A list of graders for all eval runs in this group. Graders can reference variables in the data source using double curly braces notation, like `{{item.variable_name}}`. To reference the model's output, use the `sample` namespace (ie, `{{sample.output_text}}`)." + } + }, + "required": [ + "statusCode", + "data_source_config", + "testing_criteria" + ] } } } } } }, - "/fine_tuning/jobs": { - "post": { - "operationId": "createFineTuningJob", - "summary": "Creates a fine-tuning job which begins the process of creating a new model from a given dataset.\n\nResponse includes details of the enqueued job including job status and the name of the fine-tuned models once complete.\n\n[Learn more about fine-tuning](/docs/guides/fine-tuning)", + "/evals/{eval_id}": { + "get": { + "operationId": "getEval", + "summary": "Retrieve an evaluation by its ID.", + "description": "Retrieves an evaluation by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -2689,6 +3417,26 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } + }, + { + "name": "aoai-evals", + "in": "header", + "required": true, + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } + }, + { + "name": "eval_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { @@ -2706,7 +3454,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.FineTuningJob" + "$ref": "#/components/schemas/OpenAI.Eval" } } } @@ -2732,22 +3480,12 @@ } }, "tags": [ - "Fine-tuning" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequest" - } - } - } - } + "Evals" + ] }, - "get": { - "operationId": "listPaginatedFineTuningJobs", - "summary": "List your organization's fine-tuning jobs", + "post": { + "operationId": "updateEval", + "description": "Update select, mutable properties of a specified evaluation.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -2760,26 +3498,24 @@ } }, { - "name": "after", - "in": "query", - "required": false, - "description": "Identifier for the last job from the previous pagination request.", + "name": "aoai-evals", + "in": "header", + "required": true, + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", "schema": { - "type": "string" - }, - "explode": false + "type": "string", + "enum": [ + "preview" + ] + } }, { - "name": "limit", - "in": "query", - "required": false, - "description": "Number of fine-tuning jobs to retrieve.", + "name": "eval_id", + "in": "path", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false + "type": "string" + } } ], "responses": { @@ -2797,7 +3533,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListPaginatedFineTuningJobsResponse" + "$ref": "#/components/schemas/OpenAI.Eval" } } } @@ -2823,14 +3559,30 @@ } }, "tags": [ - "Fine-tuning" - ] - } - }, - "/fine_tuning/jobs/{fine_tuning_job_id}": { - "get": { - "operationId": "retrieveFineTuningJob", - "summary": "Get info about a fine-tuning job.\n\n[Learn more about fine-tuning](/docs/guides/fine-tuning)", + "Evals" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/OpenAI.Metadata" + } + } + } + } + } + } + }, + "delete": { + "operationId": "deleteEval", + "description": "Delete a specified evaluation.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -2843,10 +3595,21 @@ } }, { - "name": "fine_tuning_job_id", + "name": "aoai-evals", + "in": "header", + "required": true, + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } + }, + { + "name": "eval_id", "in": "path", "required": true, - "description": "The ID of the fine-tuning job.", "schema": { "type": "string" } @@ -2867,7 +3630,26 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.FineTuningJob" + "type": "object", + "required": [ + "object", + "deleted", + "eval_id" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "eval.deleted" + ] + }, + "deleted": { + "type": "boolean" + }, + "eval_id": { + "type": "string" + } + } } } } @@ -2893,14 +3675,15 @@ } }, "tags": [ - "Fine-tuning" + "Evals" ] } }, - "/fine_tuning/jobs/{fine_tuning_job_id}/cancel": { - "post": { - "operationId": "cancelFineTuningJob", - "summary": "Immediately cancel a fine-tune job.", + "/evals/{eval_id}/runs": { + "get": { + "operationId": "getEvalRuns", + "summary": "", + "description": "Retrieve a list of runs for a specified evaluation.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -2913,13 +3696,74 @@ } }, { - "name": "fine_tuning_job_id", + "name": "aoai-evals", + "in": "header", + "required": true, + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } + }, + { + "name": "eval_id", "in": "path", "required": true, - "description": "The ID of the fine-tuning job to cancel.", "schema": { "type": "string" } + }, + { + "name": "after", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "explode": false + }, + { + "name": "status", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "queued", + "in_progress", + "completed", + "canceled", + "failed" + ] + }, + "explode": false } ], "responses": { @@ -2937,7 +3781,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.FineTuningJob" + "$ref": "#/components/schemas/OpenAI.EvalRunList" } } } @@ -2963,14 +3807,12 @@ } }, "tags": [ - "Fine-tuning" + "Evals" ] - } - }, - "/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints": { - "get": { - "operationId": "listFineTuningJobCheckpoints", - "summary": "List the checkpoints for a fine-tuning job.", + }, + "post": { + "operationId": "createEvalRun", + "description": "Create a new evaluation run, beginning the grading process.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -2983,40 +3825,29 @@ } }, { - "name": "fine_tuning_job_id", - "in": "path", + "name": "aoai-evals", + "in": "header", "required": true, - "description": "The ID of the fine-tuning job to get checkpoints for.", + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", "schema": { - "type": "string" + "type": "string", + "enum": [ + "preview" + ] } }, { - "name": "after", - "in": "query", - "required": false, - "description": "Identifier for the last checkpoint ID from the previous pagination request.", + "name": "eval_id", + "in": "path", + "required": true, "schema": { "type": "string" - }, - "explode": false - }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "Number of checkpoints to retrieve.", - "schema": { - "type": "integer", - "format": "int32", - "default": 10 - }, - "explode": false + } } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { "apim-request-id": { "required": false, @@ -3029,7 +3860,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListFineTuningJobCheckpointsResponse" + "$ref": "#/components/schemas/OpenAI.EvalRun" } } } @@ -3055,16 +3886,26 @@ } }, "tags": [ - "Fine-tuning" - ] - } - }, - "/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints/{fine_tuning_checkpoint_id}/copy": { - "post": { - "operationId": "FineTuning_CopyCheckpoint", - "description": "Creates a copy of a fine-tuning checkpoint at the given destination account and region.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", - "parameters": [ - { + "Evals" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateEvalRunRequest" + } + } + } + } + } + }, + "/evals/{eval_id}/runs/{run_id}": { + "get": { + "operationId": "getEvalRun", + "description": "Retrieve a specific evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "parameters": [ + { "name": "api-version", "in": "query", "required": false, @@ -3075,10 +3916,10 @@ } }, { - "name": "aoai-copy-ft-checkpoints", + "name": "aoai-evals", "in": "header", "required": true, - "description": "Enables access to checkpoint copy operations for models, an AOAI preview feature.\nThis feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'.", + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", "schema": { "type": "string", "enum": [ @@ -3087,18 +3928,7 @@ } }, { - "name": "accept", - "in": "header", - "required": true, - "schema": { - "type": "string", - "enum": [ - "application/json" - ] - } - }, - { - "name": "fine_tuning_job_id", + "name": "eval_id", "in": "path", "required": true, "schema": { @@ -3106,7 +3936,7 @@ } }, { - "name": "fine_tuning_checkpoint_id", + "name": "run_id", "in": "path", "required": true, "schema": { @@ -3129,7 +3959,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CopyModelResponse" + "$ref": "#/components/schemas/OpenAI.EvalRun" } } } @@ -3155,22 +3985,12 @@ } }, "tags": [ - "Fine-tuning" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CopyModelRequest" - } - } - } - } + "Evals" + ] }, - "get": { - "operationId": "FineTuning_GetCheckpoint", - "description": "Gets the status of a fine-tuning checkpoint copy.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", + "post": { + "operationId": "cancelEvalRun", + "description": "Cancel a specific evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -3183,10 +4003,10 @@ } }, { - "name": "aoai-copy-ft-checkpoints", + "name": "aoai-evals", "in": "header", "required": true, - "description": "Enables access to checkpoint copy operations for models, an AOAI preview feature.\nThis feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'.", + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", "schema": { "type": "string", "enum": [ @@ -3195,18 +4015,7 @@ } }, { - "name": "accept", - "in": "header", - "required": true, - "schema": { - "type": "string", - "enum": [ - "application/json" - ] - } - }, - { - "name": "fine_tuning_job_id", + "name": "eval_id", "in": "path", "required": true, "schema": { @@ -3214,7 +4023,7 @@ } }, { - "name": "fine_tuning_checkpoint_id", + "name": "run_id", "in": "path", "required": true, "schema": { @@ -3237,7 +4046,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CopyModelResponse" + "$ref": "#/components/schemas/OpenAI.EvalRun" } } } @@ -3263,14 +4072,12 @@ } }, "tags": [ - "Fine-tuning" + "Evals" ] - } - }, - "/fine_tuning/jobs/{fine_tuning_job_id}/events": { - "get": { - "operationId": "listFineTuningEvents", - "summary": "Get status updates for a fine-tuning job.", + }, + "delete": { + "operationId": "deleteEvalRun", + "description": "Delete a specific evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -3283,35 +4090,32 @@ } }, { - "name": "fine_tuning_job_id", - "in": "path", + "name": "aoai-evals", + "in": "header", "required": true, - "description": "The ID of the fine-tuning job to get events for.", + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", "schema": { - "type": "string" + "type": "string", + "enum": [ + "preview" + ] } }, { - "name": "after", - "in": "query", - "required": false, - "description": "Identifier for the last event from the previous pagination request.", + "name": "eval_id", + "in": "path", + "required": true, "schema": { "type": "string" - }, - "explode": false + } }, { - "name": "limit", - "in": "query", - "required": false, - "description": "Number of events to retrieve.", + "name": "run_id", + "in": "path", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false + "type": "string" + } } ], "responses": { @@ -3329,7 +4133,26 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListFineTuningJobEventsResponse" + "type": "object", + "required": [ + "object", + "deleted", + "eval_run_id" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "eval_run.deleted" + ] + }, + "deleted": { + "type": "boolean" + }, + "eval_run_id": { + "type": "string" + } + } } } } @@ -3355,14 +4178,14 @@ } }, "tags": [ - "Fine-tuning" + "Evals" ] } }, - "/fine_tuning/jobs/{fine_tuning_job_id}/pause": { - "post": { - "operationId": "pauseFineTuningJob", - "summary": "Pause a fine-tune job.", + "/evals/{eval_id}/runs/{run_id}/output_items": { + "get": { + "operationId": "getEvalRunOutputItems", + "description": "Get a list of output items for a specified evaluation run.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -3375,13 +4198,79 @@ } }, { - "name": "fine_tuning_job_id", + "name": "aoai-evals", + "in": "header", + "required": true, + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", + "schema": { + "type": "string", + "enum": [ + "preview" + ] + } + }, + { + "name": "eval_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", "in": "path", "required": true, - "description": "The ID of the fine-tuning job to pause.", "schema": { "type": "string" } + }, + { + "name": "after", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "status", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "fail", + "pass" + ] + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "explode": false } ], "responses": { @@ -3399,7 +4288,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.FineTuningJob" + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemList" } } } @@ -3425,14 +4314,14 @@ } }, "tags": [ - "Fine-tuning" + "Evals" ] } }, - "/fine_tuning/jobs/{fine_tuning_job_id}/resume": { - "post": { - "operationId": "resumeFineTuningJob", - "summary": "Resume a paused fine-tune job.", + "/evals/{eval_id}/runs/{run_id}/output_items/{output_item_id}": { + "get": { + "operationId": "getEvalRunOutputItem", + "description": "Retrieve a specific output item from an evaluation run by its ID.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -3445,16 +4334,43 @@ } }, { - "name": "fine_tuning_job_id", - "in": "path", + "name": "aoai-evals", + "in": "header", "required": true, - "description": "The ID of the fine-tuning job to resume.", + "description": "Enables access to AOAI Evals, a preview feature.\nThis feature requires the 'aoai-evals' header to be set to 'preview'.", "schema": { - "type": "string" + "type": "string", + "enum": [ + "preview" + ] } - } - ], - "responses": { + }, + { + "name": "eval_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "output_item_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { "200": { "description": "The request has succeeded.", "headers": { @@ -3469,7 +4385,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.FineTuningJob" + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItem" } } } @@ -3495,14 +4411,13 @@ } }, "tags": [ - "Fine-tuning" + "Evals" ] } }, - "/models": { - "get": { - "operationId": "listModels", - "summary": "Lists the currently available models, and provides basic information about each one such as the\nowner and availability.", + "/files": { + "post": { + "operationId": "createFile", "parameters": [ { "name": "api-version", @@ -3530,7 +4445,77 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListModelsResponse" + "type": "object", + "required": [ + "id", + "bytes", + "created_at", + "filename", + "object", + "purpose", + "status" + ], + "properties": { + "id": { + "type": "string", + "description": "The file identifier, which can be referenced in the API endpoints." + }, + "bytes": { + "type": "integer", + "description": "The size of the file, in bytes." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the file was created." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the file will expire." + }, + "filename": { + "type": "string", + "description": "The name of the file." + }, + "object": { + "type": "string", + "enum": [ + "file" + ], + "description": "The object type, which is always `file`.", + "x-stainless-const": true + }, + "status_details": { + "type": "string", + "description": "Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`." + }, + "purpose": { + "type": "string", + "enum": [ + "assistants", + "assistants_output", + "batch", + "batch_output", + "fine-tune", + "fine-tune-results", + "evals" + ], + "description": "The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`." + }, + "status": { + "type": "string", + "enum": [ + "uploaded", + "pending", + "running", + "processed", + "error", + "deleting", + "deleted" + ] + } + } } } } @@ -3556,14 +4541,26 @@ } }, "tags": [ - "Models" - ] - } - }, - "/models/{model}": { + "Files" + ], + "requestBody": { + "required": true, + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateFileRequest" + } + } + } + }, + "x-ms-examples": { + "Create a file request": { + "$ref": "./examples/files.yaml" + } + } + }, "get": { - "operationId": "retrieveModel", - "summary": "Retrieves a model instance, providing basic information about the model such as the owner and\npermissioning.", + "operationId": "listFiles", "parameters": [ { "name": "api-version", @@ -3576,13 +4573,44 @@ } }, { - "name": "model", - "in": "path", - "required": true, - "description": "The ID of the model to use for this request.", + "name": "purpose", + "in": "query", + "required": false, "schema": { "type": "string" - } + }, + "explode": false + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer" + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false } ], "responses": { @@ -3600,7 +4628,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.Model" + "$ref": "#/components/schemas/OpenAI.ListFilesResponse" } } } @@ -3626,14 +4654,13 @@ } }, "tags": [ - "Models" + "Files" ] } }, - "/responses": { - "post": { - "operationId": "createResponse", - "description": "Creates a model response.", + "/files/{file_id}": { + "get": { + "operationId": "retrieveFile", "parameters": [ { "name": "api-version", @@ -3644,6 +4671,15 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } + }, + { + "name": "file_id", + "in": "path", + "required": true, + "description": "The ID of the file to use for this request.", + "schema": { + "type": "string" + } } ], "responses": { @@ -3661,12 +4697,77 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureResponse" - } - }, - "text/event-stream": { - "schema": { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + "type": "object", + "required": [ + "id", + "bytes", + "created_at", + "filename", + "object", + "purpose", + "status" + ], + "properties": { + "id": { + "type": "string", + "description": "The file identifier, which can be referenced in the API endpoints." + }, + "bytes": { + "type": "integer", + "description": "The size of the file, in bytes." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the file was created." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the file will expire." + }, + "filename": { + "type": "string", + "description": "The name of the file." + }, + "object": { + "type": "string", + "enum": [ + "file" + ], + "description": "The object type, which is always `file`.", + "x-stainless-const": true + }, + "status_details": { + "type": "string", + "description": "Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`." + }, + "purpose": { + "type": "string", + "enum": [ + "assistants", + "assistants_output", + "batch", + "batch_output", + "fine-tune", + "fine-tune-results", + "evals" + ], + "description": "The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`." + }, + "status": { + "type": "string", + "enum": [ + "uploaded", + "pending", + "running", + "processed", + "error", + "deleting", + "deleted" + ] + } + } } } } @@ -3692,29 +4793,11 @@ } }, "tags": [ - "Responses" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AzureCreateResponse" - } - } - } - }, - "x-ms-examples": { - "Create a response request": { - "$ref": "./examples/responses.yaml" - } - } - } - }, - "/responses/{response_id}": { - "get": { - "operationId": "getResponse", - "description": "Retrieves a model response with the given ID.", + "Files" + ] + }, + "delete": { + "operationId": "deleteFile", "parameters": [ { "name": "api-version", @@ -3727,35 +4810,13 @@ } }, { - "name": "response_id", + "name": "file_id", "in": "path", "required": true, + "description": "The ID of the file to use for this request.", "schema": { "type": "string" } - }, - { - "name": "include_obfuscation", - "in": "query", - "required": false, - "description": "When true, stream obfuscation will be enabled. Stream obfuscation adds random characters to an `obfuscation` field on streaming delta events to normalize payload sizes as a mitigation to certain side-channel attacks. These obfuscation fields are included by default, but add a small amount of overhead to the data stream. You can set `include_obfuscation` to false to optimize for bandwidth if you trust the network links between your application and the OpenAI API.", - "schema": { - "type": "boolean", - "default": true - }, - "explode": false - }, - { - "name": "include[]", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Includable" - }, - "default": [] - } } ], "responses": { @@ -3773,7 +4834,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/AzureResponse" + "$ref": "#/components/schemas/OpenAI.DeleteFileResponse" } } } @@ -3799,12 +4860,13 @@ } }, "tags": [ - "Responses" + "Files" ] - }, - "delete": { - "operationId": "deleteResponse", - "description": "Deletes a response by ID.", + } + }, + "/files/{file_id}/content": { + "get": { + "operationId": "downloadFile", "parameters": [ { "name": "api-version", @@ -3817,9 +4879,10 @@ } }, { - "name": "response_id", + "name": "file_id", "in": "path", "required": true, + "description": "The ID of the file to use for this request.", "schema": { "type": "string" } @@ -3838,31 +4901,9 @@ } }, "content": { - "application/json": { + "application/octet-stream": { "schema": { - "type": "object", - "required": [ - "object", - "id", - "deleted" - ], - "properties": { - "object": { - "type": "string", - "enum": [ - "response.deleted" - ] - }, - "id": { - "type": "string" - }, - "deleted": { - "type": "boolean", - "enum": [ - true - ] - } - } + "contentMediaType": "application/octet-stream" } } } @@ -3888,14 +4929,14 @@ } }, "tags": [ - "Responses" + "Files" ] } }, - "/responses/{response_id}/input_items": { - "get": { - "operationId": "listInputItems", - "description": "Returns a list of input items for a given response.", + "/fine_tuning/alpha/graders/run": { + "post": { + "operationId": "runGrader", + "summary": "Run a grader.", "parameters": [ { "name": "api-version", @@ -3906,65 +4947,21 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "response_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false - }, - { - "name": "order", - "in": "query", - "required": false, - "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - }, - "explode": false - }, - { - "name": "after", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", - "schema": { - "type": "string" - }, - "explode": false - }, - { - "name": "before", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", - "schema": { - "type": "string" - }, - "explode": false } ], "responses": { "200": { "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunGraderResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", "headers": { "apim-request-id": { "required": false, @@ -3977,7 +4974,50 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ResponseItemList" + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Fine-tuning" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunGraderRequest" + } + } + } + } + } + }, + "/fine_tuning/alpha/graders/validate": { + "post": { + "operationId": "validateGrader", + "summary": "Validate a grader.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ValidateGraderResponse" } } } @@ -4003,14 +5043,48 @@ } }, "tags": [ - "Responses" - ] + "Fine-tuning" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "grader": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.GraderStringCheck" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderPython" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderScoreModel" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderMulti" + }, + { + "$ref": "#/components/schemas/GraderEndpoint" + } + ] + } + } + } + } + } + } } }, - "/vector_stores": { + "/fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions": { "get": { - "operationId": "listVectorStores", - "summary": "Returns a list of vector stores.", + "operationId": "listFineTuningCheckpointPermissions", + "summary": "List checkpoint permissions", "parameters": [ { "name": "api-version", @@ -4023,48 +5097,58 @@ } }, { - "name": "limit", + "name": "fine_tuned_model_checkpoint", + "in": "path", + "required": true, + "description": "The ID of the fine-tuned model checkpoint to get permissions for.", + "schema": { + "type": "string" + } + }, + { + "name": "project_id", "in": "query", "required": false, - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", + "description": "The ID of the project to get permissions for.", "schema": { - "type": "integer", - "format": "int32", - "default": 20 + "type": "string" }, "explode": false }, { - "name": "order", + "name": "after", "in": "query", "required": false, - "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", + "description": "Identifier for the last permission ID from the previous pagination request.", "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] + "type": "string" }, "explode": false }, { - "name": "after", + "name": "limit", "in": "query", "required": false, - "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "description": "Number of permissions to retrieve.", "schema": { - "type": "string" + "type": "integer", + "format": "int32", + "default": 10 }, "explode": false }, { - "name": "before", + "name": "order", "in": "query", "required": false, - "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "description": "The order in which to retrieve permissions.", "schema": { - "type": "string" + "type": "string", + "enum": [ + "ascending", + "descending" + ], + "default": "descending" }, "explode": false } @@ -4084,7 +5168,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListVectorStoresResponse" + "$ref": "#/components/schemas/OpenAI.ListFineTuningCheckpointPermissionResponse" } } } @@ -4110,12 +5194,12 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] }, "post": { - "operationId": "createVectorStore", - "summary": "Creates a vector store.", + "operationId": "createFineTuningCheckpointPermission", + "summary": "Create checkpoint permissions", "parameters": [ { "name": "api-version", @@ -4126,6 +5210,15 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } + }, + { + "name": "fine_tuned_model_checkpoint", + "in": "path", + "required": true, + "description": "The ID of the fine-tuned model checkpoint to create a permission for.", + "schema": { + "type": "string" + } } ], "responses": { @@ -4143,7 +5236,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + "$ref": "#/components/schemas/OpenAI.ListFineTuningCheckpointPermissionResponse" } } } @@ -4169,29 +5262,24 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.CreateVectorStoreRequest" + "$ref": "#/components/schemas/OpenAI.CreateFineTuningCheckpointPermissionRequest" } } } - }, - "x-ms-examples": { - "Create a vector store request": { - "$ref": "./examples/vector_stores.yaml" - } } } }, - "/vector_stores/{vector_store_id}": { - "get": { - "operationId": "getVectorStore", - "summary": "Retrieves a vector store.", + "/fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions/{permission_id}": { + "delete": { + "operationId": "deleteFineTuningCheckpointPermission", + "summary": "Delete checkpoint permission", "parameters": [ { "name": "api-version", @@ -4204,10 +5292,19 @@ } }, { - "name": "vector_store_id", + "name": "fine_tuned_model_checkpoint", "in": "path", "required": true, - "description": "The ID of the vector store to retrieve.", + "description": "The ID of the fine-tuned model checkpoint to delete a permission for.", + "schema": { + "type": "string" + } + }, + { + "name": "permission_id", + "in": "path", + "required": true, + "description": "The ID of the fine-tuned model checkpoint permission to delete.", "schema": { "type": "string" } @@ -4228,7 +5325,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + "$ref": "#/components/schemas/OpenAI.DeleteFineTuningCheckpointPermissionResponse" } } } @@ -4254,12 +5351,14 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] - }, + } + }, + "/fine_tuning/jobs": { "post": { - "operationId": "modifyVectorStore", - "summary": "Modifies a vector store.", + "operationId": "createFineTuningJob", + "summary": "Creates a fine-tuning job which begins the process of creating a new model from a given dataset.\n\nResponse includes details of the enqueued job including job status and the name of the fine-tuned models once complete.\n\n[Learn more about fine-tuning](/docs/guides/fine-tuning)", "parameters": [ { "name": "api-version", @@ -4270,15 +5369,6 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "description": "The ID of the vector store to modify.", - "schema": { - "type": "string" - } } ], "responses": { @@ -4296,7 +5386,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + "$ref": "#/components/schemas/OpenAI.FineTuningJob" } } } @@ -4322,22 +5412,22 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.UpdateVectorStoreRequest" + "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequest" } } } } }, - "delete": { - "operationId": "deleteVectorStore", - "summary": "Delete a vector store.", + "get": { + "operationId": "listPaginatedFineTuningJobs", + "summary": "List your organization's fine-tuning jobs", "parameters": [ { "name": "api-version", @@ -4350,13 +5440,26 @@ } }, { - "name": "vector_store_id", - "in": "path", - "required": true, - "description": "The ID of the vector store to delete.", + "name": "after", + "in": "query", + "required": false, + "description": "Identifier for the last job from the previous pagination request.", "schema": { "type": "string" - } + }, + "explode": false + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "Number of fine-tuning jobs to retrieve.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false } ], "responses": { @@ -4374,7 +5477,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.DeleteVectorStoreResponse" + "$ref": "#/components/schemas/OpenAI.ListPaginatedFineTuningJobsResponse" } } } @@ -4400,14 +5503,14 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] } }, - "/vector_stores/{vector_store_id}/file_batches": { - "post": { - "operationId": "createVectorStoreFileBatch", - "summary": "Create a vector store file batch.", + "/fine_tuning/jobs/{fine_tuning_job_id}": { + "get": { + "operationId": "retrieveFineTuningJob", + "summary": "Get info about a fine-tuning job.\n\n[Learn more about fine-tuning](/docs/guides/fine-tuning)", "parameters": [ { "name": "api-version", @@ -4420,10 +5523,10 @@ } }, { - "name": "vector_store_id", + "name": "fine_tuning_job_id", "in": "path", "required": true, - "description": "The ID of the vector store for which to create a file batch.", + "description": "The ID of the fine-tuning job.", "schema": { "type": "string" } @@ -4444,7 +5547,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObject" + "$ref": "#/components/schemas/OpenAI.FineTuningJob" } } } @@ -4470,24 +5573,14 @@ } }, "tags": [ - "Vector Stores" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.CreateVectorStoreFileBatchRequest" - } - } - } - } + "Fine-tuning" + ] } }, - "/vector_stores/{vector_store_id}/file_batches/{batch_id}": { - "get": { - "operationId": "getVectorStoreFileBatch", - "summary": "Retrieves a vector store file batch.", + "/fine_tuning/jobs/{fine_tuning_job_id}/cancel": { + "post": { + "operationId": "cancelFineTuningJob", + "summary": "Immediately cancel a fine-tune job.", "parameters": [ { "name": "api-version", @@ -4500,19 +5593,10 @@ } }, { - "name": "vector_store_id", - "in": "path", - "required": true, - "description": "The ID of the vector store that the file batch belongs to.", - "schema": { - "type": "string" - } - }, - { - "name": "batch_id", + "name": "fine_tuning_job_id", "in": "path", "required": true, - "description": "The ID of the file batch being retrieved.", + "description": "The ID of the fine-tuning job to cancel.", "schema": { "type": "string" } @@ -4533,7 +5617,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObject" + "$ref": "#/components/schemas/OpenAI.FineTuningJob" } } } @@ -4559,14 +5643,14 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] } }, - "/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel": { - "post": { - "operationId": "cancelVectorStoreFileBatch", - "summary": "Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible.", + "/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints": { + "get": { + "operationId": "listFineTuningJobCheckpoints", + "summary": "List the checkpoints for a fine-tuning job.", "parameters": [ { "name": "api-version", @@ -4579,22 +5663,35 @@ } }, { - "name": "vector_store_id", + "name": "fine_tuning_job_id", "in": "path", "required": true, - "description": "The ID of the vector store that the file batch belongs to.", + "description": "The ID of the fine-tuning job to get checkpoints for.", "schema": { "type": "string" } }, { - "name": "batch_id", - "in": "path", - "required": true, - "description": "The ID of the file batch to cancel.", + "name": "after", + "in": "query", + "required": false, + "description": "Identifier for the last checkpoint ID from the previous pagination request.", "schema": { "type": "string" - } + }, + "explode": false + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "Number of checkpoints to retrieve.", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + }, + "explode": false } ], "responses": { @@ -4612,7 +5709,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObject" + "$ref": "#/components/schemas/OpenAI.ListFineTuningJobCheckpointsResponse" } } } @@ -4638,14 +5735,14 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] } }, - "/vector_stores/{vector_store_id}/file_batches/{batch_id}/files": { - "get": { - "operationId": "listFilesInVectorStoreBatch", - "summary": "Returns a list of vector store files in a batch.", + "/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints/{fine_tuning_checkpoint_id}/copy": { + "post": { + "operationId": "FineTuning_CopyCheckpoint", + "description": "Creates a copy of a fine-tuning checkpoint at the given destination account and region.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -4658,78 +5755,43 @@ } }, { - "name": "vector_store_id", - "in": "path", + "name": "aoai-copy-ft-checkpoints", + "in": "header", "required": true, - "description": "The ID of the vector store that the file batch belongs to.", + "description": "Enables access to checkpoint copy operations for models, an AOAI preview feature.\nThis feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'.", "schema": { - "type": "string" + "type": "string", + "enum": [ + "preview" + ] } }, { - "name": "batch_id", - "in": "path", + "name": "accept", + "in": "header", "required": true, - "description": "The ID of the file batch that the files belong to.", - "schema": { - "type": "string" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false - }, - { - "name": "order", - "in": "query", - "required": false, - "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", "schema": { "type": "string", "enum": [ - "asc", - "desc" + "application/json" ] - }, - "explode": false + } }, { - "name": "after", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "name": "fine_tuning_job_id", + "in": "path", + "required": true, "schema": { "type": "string" - }, - "explode": false + } }, { - "name": "before", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "name": "fine_tuning_checkpoint_id", + "in": "path", + "required": true, "schema": { "type": "string" - }, - "explode": false - }, - { - "name": "filter", - "in": "query", - "required": false, - "description": "Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`.", - "schema": { - "$ref": "#/components/schemas/OpenAI.ListVectorStoreFilesFilter" - }, - "explode": false + } } ], "responses": { @@ -4747,7 +5809,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListVectorStoreFilesResponse" + "$ref": "#/components/schemas/CopyModelResponse" } } } @@ -4773,14 +5835,22 @@ } }, "tags": [ - "Vector Stores" - ] - } - }, - "/vector_stores/{vector_store_id}/files": { + "Fine-tuning" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CopyModelRequest" + } + } + } + } + }, "get": { - "operationId": "listVectorStoreFiles", - "summary": "Returns a list of vector store files.", + "operationId": "FineTuning_GetCheckpoint", + "description": "Gets the status of a fine-tuning checkpoint copy.\n\nNOTE: This Azure OpenAI API is in preview and subject to change.", "parameters": [ { "name": "api-version", @@ -4793,69 +5863,43 @@ } }, { - "name": "vector_store_id", - "in": "path", + "name": "aoai-copy-ft-checkpoints", + "in": "header", "required": true, - "description": "The ID of the vector store that the files belong to.", + "description": "Enables access to checkpoint copy operations for models, an AOAI preview feature.\nThis feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'.", "schema": { - "type": "string" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false + "type": "string", + "enum": [ + "preview" + ] + } }, { - "name": "order", - "in": "query", - "required": false, - "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", + "name": "accept", + "in": "header", + "required": true, "schema": { "type": "string", "enum": [ - "asc", - "desc" + "application/json" ] - }, - "explode": false + } }, { - "name": "after", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "name": "fine_tuning_job_id", + "in": "path", + "required": true, "schema": { "type": "string" - }, - "explode": false + } }, { - "name": "before", - "in": "query", - "required": false, - "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "name": "fine_tuning_checkpoint_id", + "in": "path", + "required": true, "schema": { "type": "string" - }, - "explode": false - }, - { - "name": "filter", - "in": "query", - "required": false, - "description": "Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`.", - "schema": { - "$ref": "#/components/schemas/OpenAI.ListVectorStoreFilesFilter" - }, - "explode": false + } } ], "responses": { @@ -4873,7 +5917,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.ListVectorStoreFilesResponse" + "$ref": "#/components/schemas/CopyModelResponse" } } } @@ -4899,12 +5943,14 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] - }, - "post": { - "operationId": "createVectorStoreFile", - "summary": "Create a vector store file by attaching a [File](/docs/api-reference/files) to a [vector store](/docs/api-reference/vector-stores/object).", + } + }, + "/fine_tuning/jobs/{fine_tuning_job_id}/events": { + "get": { + "operationId": "listFineTuningEvents", + "summary": "Get status updates for a fine-tuning job.", "parameters": [ { "name": "api-version", @@ -4917,13 +5963,35 @@ } }, { - "name": "vector_store_id", + "name": "fine_tuning_job_id", "in": "path", "required": true, - "description": "The ID of the vector store for which to create a File.", + "description": "The ID of the fine-tuning job to get events for.", "schema": { "type": "string" } + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "Identifier for the last event from the previous pagination request.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "Number of events to retrieve.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false } ], "responses": { @@ -4941,7 +6009,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + "$ref": "#/components/schemas/OpenAI.ListFineTuningJobEventsResponse" } } } @@ -4967,24 +6035,14 @@ } }, "tags": [ - "Vector Stores" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.CreateVectorStoreFileRequest" - } - } - } - } + "Fine-tuning" + ] } }, - "/vector_stores/{vector_store_id}/files/{file_id}": { - "get": { - "operationId": "getVectorStoreFile", - "summary": "Retrieves a vector store file.", + "/fine_tuning/jobs/{fine_tuning_job_id}/pause": { + "post": { + "operationId": "pauseFineTuningJob", + "summary": "Pause a fine-tune job.", "parameters": [ { "name": "api-version", @@ -4997,19 +6055,10 @@ } }, { - "name": "vector_store_id", - "in": "path", - "required": true, - "description": "The ID of the vector store that the file belongs to.", - "schema": { - "type": "string" - } - }, - { - "name": "file_id", + "name": "fine_tuning_job_id", "in": "path", "required": true, - "description": "The ID of the file being retrieved.", + "description": "The ID of the fine-tuning job to pause.", "schema": { "type": "string" } @@ -5030,7 +6079,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + "$ref": "#/components/schemas/OpenAI.FineTuningJob" } } } @@ -5056,11 +6105,14 @@ } }, "tags": [ - "Vector Stores" + "Fine-tuning" ] - }, + } + }, + "/fine_tuning/jobs/{fine_tuning_job_id}/resume": { "post": { - "operationId": "updateVectorStoreFileAttributes", + "operationId": "resumeFineTuningJob", + "summary": "Resume a paused fine-tune job.", "parameters": [ { "name": "api-version", @@ -5073,17 +6125,10 @@ } }, { - "name": "vector_store_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "file_id", + "name": "fine_tuning_job_id", "in": "path", "required": true, + "description": "The ID of the fine-tuning job to resume.", "schema": { "type": "string" } @@ -5104,7 +6149,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + "$ref": "#/components/schemas/OpenAI.FineTuningJob" } } } @@ -5130,22 +6175,14 @@ } }, "tags": [ - "Vector Stores" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OpenAI.UpdateVectorStoreFileAttributesRequest" - } - } - } - } - }, - "delete": { - "operationId": "deleteVectorStoreFile", - "summary": "Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. To delete the file, use the [delete file](/docs/api-reference/files/delete) endpoint.", + "Fine-tuning" + ] + } + }, + "/models": { + "get": { + "operationId": "listModels", + "summary": "Lists the currently available models, and provides basic information about each one such as the\nowner and availability.", "parameters": [ { "name": "api-version", @@ -5156,24 +6193,6 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "name": "vector_store_id", - "in": "path", - "required": true, - "description": "The ID of the vector store that the file belongs to.", - "schema": { - "type": "string" - } - }, - { - "name": "file_id", - "in": "path", - "required": true, - "description": "The ID of the file to delete.", - "schema": { - "type": "string" - } } ], "responses": { @@ -5191,7 +6210,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OpenAI.DeleteVectorStoreFileResponse" + "$ref": "#/components/schemas/OpenAI.ListModelsResponse" } } } @@ -5217,13 +6236,14 @@ } }, "tags": [ - "Vector Stores" + "Models" ] } }, - "/videos": { - "post": { - "operationId": "Videos_Create", + "/models/{model}": { + "get": { + "operationId": "retrieveModel", + "summary": "Retrieves a model instance, providing basic information about the model such as the owner and\npermissioning.", "parameters": [ { "name": "api-version", @@ -5234,9 +6254,17 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } + }, + { + "name": "model", + "in": "path", + "required": true, + "description": "The ID of the model to use for this request.", + "schema": { + "type": "string" + } } ], - "description": "Creates a new video generation job.", "responses": { "200": { "description": "The request has succeeded.", @@ -5252,13 +6280,22 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/VideoResource" + "$ref": "#/components/schemas/OpenAI.Model" } } } }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { @@ -5269,38 +6306,12 @@ } }, "tags": [ - "Videos" - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateVideoBody" - } - }, - "multipart/form-data": { - "schema": { - "$ref": "#/components/schemas/CreateVideoBodyWithInputReference" - }, - "encoding": { - "seconds": { - "contentType": "text/plain" - }, - "size": { - "contentType": "text/plain" - }, - "input_reference": { - "contentType": "*/*" - } - } - } - } - } + "Models" + ] }, - "get": { - "operationId": "Videos_List", - "description": "Lists video generation jobs.", + "delete": { + "operationId": "deleteModel", + "summary": "Deletes a model instance.", "parameters": [ { "name": "api-version", @@ -5313,34 +6324,13 @@ } }, { - "name": "after", - "in": "query", - "required": false, + "name": "model", + "in": "path", + "required": true, + "description": "The ID of the model to delete.", "schema": { "type": "string" - }, - "explode": false - }, - { - "name": "limit", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "explode": false - }, - { - "name": "order", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/Order", - "default": "desc" - }, - "explode": false + } } ], "responses": { @@ -5358,13 +6348,22 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/VideoList" + "$ref": "#/components/schemas/OpenAI.DeleteModelResponse" } } } }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { @@ -5375,14 +6374,14 @@ } }, "tags": [ - "Videos" + "Models" ] } }, - "/videos/{video-id}": { - "get": { - "operationId": "Videos_Get", - "description": "Retrieves properties of a video generation job.", + "/realtime/calls": { + "post": { + "operationId": "createRealtimeCall", + "summary": "Create a new Realtime API call over WebRTC and receive the SDP answer needed to complete the peer connection.", "parameters": [ { "name": "api-version", @@ -5393,33 +6392,39 @@ "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", "default": "v1" } - }, - { - "$ref": "#/components/parameters/VideoIdParameter" } ], "responses": { - "200": { - "description": "The request has succeeded.", + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", "headers": { - "apim-request-id": { + "location": { "required": false, - "description": "A request ID used for troubleshooting purposes.", + "description": "Relative URL containing the call ID for subsequent control requests.", "schema": { "type": "string" } } }, "content": { - "application/json": { + "application/sdp": { "schema": { - "$ref": "#/components/schemas/VideoResource" + "type": "string" } } } }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { @@ -5430,12 +6435,29 @@ } }, "tags": [ - "Videos" - ] - }, - "delete": { - "operationId": "Videos_Delete", - "description": "Deletes a video generation job.", + "Realtime" + ], + "requestBody": { + "required": true, + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeCallCreateRequest" + }, + "encoding": { + "session": { + "contentType": "application/json" + } + } + } + } + } + } + }, + "/realtime/calls/{call_id}/accept": { + "post": { + "operationId": "acceptRealtimeCall", + "summary": "Accept an incoming SIP call and configure the realtime session that will handle it.", "parameters": [ { "name": "api-version", @@ -5448,12 +6470,21 @@ } }, { - "$ref": "#/components/parameters/VideoIdParameter" + "name": "call_id", + "in": "path", + "required": true, + "description": "The identifier for the call provided in the realtime.call.incoming webhook.", + "schema": { + "type": "string" + } } ], "responses": { "200": { - "description": "The request has succeeded.", + "description": "The request has succeeded." + }, + "default": { + "description": "An unexpected error response.", "headers": { "apim-request-id": { "required": false, @@ -5466,13 +6497,68 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DeletedVideoResource" + "$ref": "#/components/schemas/AzureErrorResponse" } } } + } + }, + "tags": [ + "Realtime" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGA" + } + } + }, + "description": "Session configuration to apply before the caller is bridged to the model." + } + } + }, + "/realtime/calls/{call_id}/hangup": { + "post": { + "operationId": "hangupRealtimeCall", + "summary": "End an active Realtime API call, whether it was initiated over SIP or WebRTC.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "call_id", + "in": "path", + "required": true, + "description": "The identifier for the call.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded." }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { @@ -5483,14 +6569,14 @@ } }, "tags": [ - "Videos" + "Realtime" ] } }, - "/videos/{video-id}/content": { - "get": { - "operationId": "Videos_RetrieveContent", - "description": "Retrieves a thumbnail of the generated video content.", + "/realtime/calls/{call_id}/refer": { + "post": { + "operationId": "referRealtimeCall", + "summary": "Transfer an active SIP call to a new destination using the SIP REFER verb.", "parameters": [ { "name": "api-version", @@ -5503,22 +6589,21 @@ } }, { - "$ref": "#/components/parameters/VideoIdParameter" - }, - { - "name": "variant", - "in": "query", - "required": false, + "name": "call_id", + "in": "path", + "required": true, + "description": "The identifier for the call provided in the realtime.call.incoming webhook.", "schema": { - "$ref": "#/components/schemas/VideoContentVariant", - "default": "video" - }, - "explode": false + "type": "string" + } } ], "responses": { "200": { - "description": "The request has succeeded.", + "description": "The request has succeeded." + }, + "default": { + "description": "An unexpected error response.", "headers": { "apim-request-id": { "required": false, @@ -5526,37 +6611,73 @@ "schema": { "type": "string" } - }, - "content-length": { - "required": true, - "schema": { - "type": "integer" - } } }, "content": { - "image/jpg": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "image/webp": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "video/mp4": { + "application/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#/components/schemas/AzureErrorResponse" } } } + } + }, + "tags": [ + "Realtime" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeCallReferRequest" + } + } + }, + "description": "Destination URI for the REFER request." + } + } + }, + "/realtime/calls/{call_id}/reject": { + "post": { + "operationId": "rejectRealtimeCall", + "summary": "Decline an incoming SIP call by returning a SIP status code to the caller.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "call_id", + "in": "path", + "required": true, + "description": "The identifier for the call provided in the realtime.call.incoming webhook.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded." }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { @@ -5567,17 +6688,35 @@ } }, "tags": [ - "Videos" - ] + "Realtime" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeCallRejectRequest" + } + } + }, + "description": "Provide an optional SIP status code. When omitted the API responds with 603 Decline." + } } }, - "/videos/{video-id}/remix": { + "/realtime/client_secrets": { "post": { - "operationId": "Videos_Remix", - "description": "Use an existing generated video and change it with a prompt.", + "operationId": "createRealtimeClientSecret", + "summary": "Create a Realtime client secret with an associated session configuration.", "parameters": [ { - "$ref": "#/components/parameters/VideoIdParameter" + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } } ], "responses": { @@ -5595,13 +6734,22 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/VideoResource" + "$ref": "#/components/schemas/OpenAI.RealtimeCreateClientSecretResponse" } } } }, "default": { "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { @@ -5612,4638 +6760,15438 @@ } }, "tags": [ - "Videos" + "Realtime" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "minLength": 1 - } - }, - "required": [ - "prompt" - ] + "$ref": "#/components/schemas/OpenAI.RealtimeCreateClientSecretRequest" } } - } + }, + "description": "Create a client secret with the given session configuration." } } - } - }, - "security": [ - { - "ApiKeyAuth": [] }, - { - "ApiKeyAuth_": [] - }, - { + "/realtime/sessions": { + "post": { + "operationId": "createRealtimeSession", + "summary": "Create an ephemeral API token for use in client-side applications with the Realtime API.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Realtime" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequest" + } + } + }, + "description": "Create an ephemeral API key with the given session configuration." + } + } + }, + "/realtime/transcription_sessions": { + "post": { + "operationId": "createRealtimeTranscriptionSession", + "summary": "Create an ephemeral API token for use in client-side applications with the Realtime API specifically for realtime transcriptions.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Realtime" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequest" + } + } + }, + "description": "Create an ephemeral API key with the given session configuration." + } + } + }, + "/responses": { + "post": { + "operationId": "createResponse", + "description": "Creates a model response.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "id", + "object", + "created_at", + "error", + "incomplete_details", + "output", + "instructions", + "parallel_tool_calls", + "content_filters" + ], + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "top_logprobs": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "user": { + "type": "string", + "description": "This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations.\n A stable identifier for your end-users.\n Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "safety_identifier": { + "type": "string", + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies.\n The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "prompt_cache_key": { + "type": "string", + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "anyOf": [ + { + "type": "string", + "enum": [ + "in-memory", + "24h" + ] + }, + { + "type": "null" + } + ] + }, + "previous_response_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "model": { + "type": "string", + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\n to browse and compare available models." + }, + "reasoning": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Reasoning" + }, + { + "type": "null" + } + ] + }, + "background": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "max_tool_calls": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "text": { + "$ref": "#/components/schemas/OpenAI.ResponseTextParam" + }, + "tools": { + "$ref": "#/components/schemas/OpenAI.ToolsArray" + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" + }, + "truncation": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "disabled" + ] + }, + { + "type": "null" + } + ], + "default": "disabled" + }, + "id": { + "type": "string", + "description": "Unique identifier for this Response." + }, + "object": { + "type": "string", + "enum": [ + "response" + ], + "description": "The object type of this resource - always set to `response`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "completed", + "failed", + "in_progress", + "cancelled", + "queued", + "incomplete" + ], + "description": "The status of the response generation. One of `completed`, `failed`,\n `in_progress`, `cancelled`, `queued`, or `incomplete`." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) of when this Response was created." + }, + "error": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseError" + }, + { + "type": "null" + } + ] + }, + "incomplete_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseIncompleteDetails" + }, + { + "type": "null" + } + ] + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.OutputItem" + }, + "description": "An array of content items generated by the model.\n\n - The length and order of items in the `output` array is dependent\n on the model's response.\n - Rather than accessing the first item in the `output` array and\n assuming it's an `assistant` message with the content generated by\n the model, you might consider using the `output_text` property where\n supported in SDKs." + }, + "instructions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputItem" + } + }, + { + "type": "null" + } + ] + }, + "output_text": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "x-stainless-skip": true + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.ResponseUsage" + }, + "parallel_tool_calls": { + "type": "boolean", + "description": "Whether to allow the model to run tool calls in parallel.", + "default": true + }, + "conversation": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Conversation" + }, + { + "type": "null" + } + ] + }, + "content_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureContentFilterForResponsesAPI" + }, + "description": "The content filter results from RAI." + } + } + } + }, + "text/event-stream": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Responses" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateResponse" + } + } + } + }, + "x-ms-examples": { + "Create a response request": { + "$ref": "./examples/responses.yaml" + } + } + } + }, + "/responses/{response_id}": { + "get": { + "operationId": "getResponse", + "description": "Retrieves a model response with the given ID.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "response_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "include[]", + "in": "query", + "required": false, + "description": "Additional fields to include in the response. See the include parameter for Response creation above for more information.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.IncludeEnum" + }, + "default": [] + } + }, + { + "name": "stream", + "in": "query", + "required": false, + "description": "If set to true, the model response data will be streamed to the client as it is generated using server-sent events.", + "schema": { + "type": "boolean" + }, + "explode": false + }, + { + "name": "starting_after", + "in": "query", + "required": false, + "description": "The sequence number of the event after which to start streaming.", + "schema": { + "type": "integer", + "format": "int32" + }, + "explode": false + }, + { + "name": "include_obfuscation", + "in": "query", + "required": false, + "description": "When true, stream obfuscation will be enabled. Stream obfuscation adds random characters to an `obfuscation` field on streaming delta events to normalize payload sizes as a mitigation to certain side-channel attacks. These obfuscation fields are included by default, but add a small amount of overhead to the data stream. You can set `include_obfuscation` to false to optimize for bandwidth if you trust the network links between your application and the OpenAI API.", + "schema": { + "type": "boolean", + "default": true + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "id", + "object", + "created_at", + "error", + "incomplete_details", + "output", + "instructions", + "parallel_tool_calls", + "content_filters" + ], + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "top_logprobs": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "user": { + "type": "string", + "description": "This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations.\n A stable identifier for your end-users.\n Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "safety_identifier": { + "type": "string", + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies.\n The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "prompt_cache_key": { + "type": "string", + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "anyOf": [ + { + "type": "string", + "enum": [ + "in-memory", + "24h" + ] + }, + { + "type": "null" + } + ] + }, + "previous_response_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "model": { + "type": "string", + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\n to browse and compare available models." + }, + "reasoning": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Reasoning" + }, + { + "type": "null" + } + ] + }, + "background": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "max_tool_calls": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "text": { + "$ref": "#/components/schemas/OpenAI.ResponseTextParam" + }, + "tools": { + "$ref": "#/components/schemas/OpenAI.ToolsArray" + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" + }, + "truncation": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "disabled" + ] + }, + { + "type": "null" + } + ], + "default": "disabled" + }, + "id": { + "type": "string", + "description": "Unique identifier for this Response." + }, + "object": { + "type": "string", + "enum": [ + "response" + ], + "description": "The object type of this resource - always set to `response`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "completed", + "failed", + "in_progress", + "cancelled", + "queued", + "incomplete" + ], + "description": "The status of the response generation. One of `completed`, `failed`,\n `in_progress`, `cancelled`, `queued`, or `incomplete`." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) of when this Response was created." + }, + "error": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseError" + }, + { + "type": "null" + } + ] + }, + "incomplete_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseIncompleteDetails" + }, + { + "type": "null" + } + ] + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.OutputItem" + }, + "description": "An array of content items generated by the model.\n\n - The length and order of items in the `output` array is dependent\n on the model's response.\n - Rather than accessing the first item in the `output` array and\n assuming it's an `assistant` message with the content generated by\n the model, you might consider using the `output_text` property where\n supported in SDKs." + }, + "instructions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputItem" + } + }, + { + "type": "null" + } + ] + }, + "output_text": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "x-stainless-skip": true + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.ResponseUsage" + }, + "parallel_tool_calls": { + "type": "boolean", + "description": "Whether to allow the model to run tool calls in parallel.", + "default": true + }, + "conversation": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Conversation" + }, + { + "type": "null" + } + ] + }, + "content_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureContentFilterForResponsesAPI" + }, + "description": "The content filter results from RAI." + } + } + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Responses" + ] + }, + "delete": { + "operationId": "deleteResponse", + "description": "Deletes a response by ID.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "response_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "object", + "id", + "deleted" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "response.deleted" + ] + }, + "id": { + "type": "string" + }, + "deleted": { + "type": "boolean", + "enum": [ + true + ] + } + } + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Responses" + ] + } + }, + "/responses/{response_id}/cancel": { + "post": { + "operationId": "cancelResponse", + "description": "Cancels a model response with the given ID. Only responses created with the background parameter set to true can be cancelled.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "response_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "id", + "object", + "created_at", + "error", + "incomplete_details", + "output", + "instructions", + "parallel_tool_calls", + "content_filters" + ], + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "top_logprobs": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "user": { + "type": "string", + "description": "This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations.\n A stable identifier for your end-users.\n Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "safety_identifier": { + "type": "string", + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies.\n The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "prompt_cache_key": { + "type": "string", + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "anyOf": [ + { + "type": "string", + "enum": [ + "in-memory", + "24h" + ] + }, + { + "type": "null" + } + ] + }, + "previous_response_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "model": { + "type": "string", + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\n to browse and compare available models." + }, + "reasoning": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Reasoning" + }, + { + "type": "null" + } + ] + }, + "background": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "max_tool_calls": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "text": { + "$ref": "#/components/schemas/OpenAI.ResponseTextParam" + }, + "tools": { + "$ref": "#/components/schemas/OpenAI.ToolsArray" + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" + }, + "truncation": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "disabled" + ] + }, + { + "type": "null" + } + ], + "default": "disabled" + }, + "id": { + "type": "string", + "description": "Unique identifier for this Response." + }, + "object": { + "type": "string", + "enum": [ + "response" + ], + "description": "The object type of this resource - always set to `response`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "completed", + "failed", + "in_progress", + "cancelled", + "queued", + "incomplete" + ], + "description": "The status of the response generation. One of `completed`, `failed`,\n `in_progress`, `cancelled`, `queued`, or `incomplete`." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) of when this Response was created." + }, + "error": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseError" + }, + { + "type": "null" + } + ] + }, + "incomplete_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseIncompleteDetails" + }, + { + "type": "null" + } + ] + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.OutputItem" + }, + "description": "An array of content items generated by the model.\n\n - The length and order of items in the `output` array is dependent\n on the model's response.\n - Rather than accessing the first item in the `output` array and\n assuming it's an `assistant` message with the content generated by\n the model, you might consider using the `output_text` property where\n supported in SDKs." + }, + "instructions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputItem" + } + }, + { + "type": "null" + } + ] + }, + "output_text": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "x-stainless-skip": true + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.ResponseUsage" + }, + "parallel_tool_calls": { + "type": "boolean", + "description": "Whether to allow the model to run tool calls in parallel.", + "default": true + }, + "conversation": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Conversation" + }, + { + "type": "null" + } + ] + }, + "content_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureContentFilterForResponsesAPI" + }, + "description": "The content filter results from RAI." + } + } + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Responses" + ] + } + }, + "/responses/{response_id}/input_items": { + "get": { + "operationId": "listInputItems", + "description": "Returns a list of input items for a given response.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "response_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "schema": { + "type": "string" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ResponseItemList" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Responses" + ] + } + }, + "/threads": { + "post": { + "operationId": "createThread", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ThreadObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateThreadRequest" + } + } + } + } + } + }, + "/threads/runs": { + "post": { + "operationId": "createThreadAndRun", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateThreadAndRunRequest" + } + } + } + } + } + }, + "/threads/{thread_id}": { + "delete": { + "operationId": "deleteThread", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.DeleteThreadResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + }, + "get": { + "operationId": "retrieveThread", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ThreadObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + }, + "post": { + "operationId": "modifyThread", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ThreadObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ModifyThreadRequest" + } + } + } + } + } + }, + "/threads/{thread_id}/messages": { + "get": { + "operationId": "listMessages", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "run_id", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ListMessagesResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + }, + "post": { + "operationId": "createMessage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.MessageObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateMessageRequest" + } + } + } + } + } + }, + "/threads/{thread_id}/messages/{message_id}": { + "delete": { + "operationId": "deleteMessage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.DeleteMessageResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + }, + "get": { + "operationId": "retrieveMessage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.MessageObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + }, + "post": { + "operationId": "modifyMessage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.MessageObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ModifyMessageRequest" + } + } + } + } + } + }, + "/threads/{thread_id}/runs": { + "post": { + "operationId": "createRun", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateRunRequest" + } + } + } + } + }, + "get": { + "operationId": "listRuns", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ListRunsResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + } + }, + "/threads/{thread_id}/runs/{run_id}": { + "get": { + "operationId": "retrieveRun", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + }, + "post": { + "operationId": "modifyRun", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ModifyRunRequest" + } + } + } + } + } + }, + "/threads/{thread_id}/runs/{run_id}/cancel": { + "post": { + "operationId": "cancelRun", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + } + }, + "/threads/{thread_id}/runs/{run_id}/steps": { + "get": { + "operationId": "listRunSteps", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ListRunStepsResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + } + }, + "/threads/{thread_id}/runs/{run_id}/steps/{step_id}": { + "get": { + "operationId": "getRunStep", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "step_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunStepObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ] + } + }, + "/threads/{thread_id}/runs/{run_id}/submit_tool_outputs": { + "post": { + "operationId": "submitToolOutputsToRun", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "thread_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "run_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Threads" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.SubmitToolOutputsRunRequest" + } + } + } + } + } + }, + "/vector_stores": { + "get": { + "operationId": "listVectorStores", + "summary": "Returns a list of vector stores.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "schema": { + "type": "string" + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ListVectorStoresResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + }, + "post": { + "operationId": "createVectorStore", + "summary": "Creates a vector store.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateVectorStoreRequest" + } + } + } + }, + "x-ms-examples": { + "Create a vector store request": { + "$ref": "./examples/vector_stores.yaml" + } + } + } + }, + "/vector_stores/{vector_store_id}": { + "get": { + "operationId": "getVectorStore", + "summary": "Retrieves a vector store.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store to retrieve.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + }, + "post": { + "operationId": "modifyVectorStore", + "summary": "Modifies a vector store.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store to modify.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.UpdateVectorStoreRequest" + } + } + } + } + }, + "delete": { + "operationId": "deleteVectorStore", + "summary": "Delete a vector store.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store to delete.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.DeleteVectorStoreResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + } + }, + "/vector_stores/{vector_store_id}/file_batches": { + "post": { + "operationId": "createVectorStoreFileBatch", + "summary": "Create a vector store file batch.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store for which to create a file batch.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateVectorStoreFileBatchRequest" + } + } + } + } + } + }, + "/vector_stores/{vector_store_id}/file_batches/{batch_id}": { + "get": { + "operationId": "getVectorStoreFileBatch", + "summary": "Retrieves a vector store file batch.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store that the file batch belongs to.", + "schema": { + "type": "string" + } + }, + { + "name": "batch_id", + "in": "path", + "required": true, + "description": "The ID of the file batch being retrieved.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + } + }, + "/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel": { + "post": { + "operationId": "cancelVectorStoreFileBatch", + "summary": "Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store that the file batch belongs to.", + "schema": { + "type": "string" + } + }, + { + "name": "batch_id", + "in": "path", + "required": true, + "description": "The ID of the file batch to cancel.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + } + }, + "/vector_stores/{vector_store_id}/file_batches/{batch_id}/files": { + "get": { + "operationId": "listFilesInVectorStoreBatch", + "summary": "Returns a list of vector store files in a batch.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store that the file batch belongs to.", + "schema": { + "type": "string" + } + }, + { + "name": "batch_id", + "in": "path", + "required": true, + "description": "The ID of the file batch that the files belong to.", + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "required": false, + "description": "Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`.", + "schema": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "failed", + "cancelled" + ] + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ListVectorStoreFilesResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + } + }, + "/vector_stores/{vector_store_id}/files": { + "get": { + "operationId": "listVectorStoreFiles", + "summary": "Returns a list of vector store files.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store that the files belong to.", + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the\ndefault is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + }, + "explode": false + }, + { + "name": "order", + "in": "query", + "required": false, + "description": "Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc`\nfor descending order.", + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "explode": false + }, + { + "name": "after", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `after` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include after=obj_foo in order to fetch the next page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "before", + "in": "query", + "required": false, + "description": "A cursor for use in pagination. `before` is an object ID that defines your place in the list.\nFor instance, if you make a list request and receive 100 objects, ending with obj_foo, your\nsubsequent call can include before=obj_foo in order to fetch the previous page of the list.", + "schema": { + "type": "string" + }, + "explode": false + }, + { + "name": "filter", + "in": "query", + "required": false, + "description": "Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`.", + "schema": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "failed", + "cancelled" + ] + }, + "explode": false + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.ListVectorStoreFilesResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + }, + "post": { + "operationId": "createVectorStoreFile", + "summary": "Create a vector store file by attaching a [File](/docs/api-reference/files) to a [vector store](/docs/api-reference/vector-stores/object).", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store for which to create a File.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.CreateVectorStoreFileRequest" + } + } + } + } + } + }, + "/vector_stores/{vector_store_id}/files/{file_id}": { + "get": { + "operationId": "getVectorStoreFile", + "summary": "Retrieves a vector store file.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store that the file belongs to.", + "schema": { + "type": "string" + } + }, + { + "name": "file_id", + "in": "path", + "required": true, + "description": "The ID of the file being retrieved.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + }, + "post": { + "operationId": "updateVectorStoreFileAttributes", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "file_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.UpdateVectorStoreFileAttributesRequest" + } + } + } + } + }, + "delete": { + "operationId": "deleteVectorStoreFile", + "summary": "Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. To delete the file, use the [delete file](/docs/api-reference/files/delete) endpoint.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store that the file belongs to.", + "schema": { + "type": "string" + } + }, + { + "name": "file_id", + "in": "path", + "required": true, + "description": "The ID of the file to delete.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.DeleteVectorStoreFileResponse" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + } + }, + "/vector_stores/{vector_store_id}/files/{file_id}/content": { + "get": { + "operationId": "retrieveVectorStoreFileContent", + "summary": "Retrieve vector store file content", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store to search.", + "schema": { + "type": "string" + } + }, + { + "name": "file_id", + "in": "path", + "required": true, + "description": "The ID of the file to retrieve content for.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreSearchResultsPage" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ] + } + }, + "/vector_stores/{vector_store_id}/search": { + "post": { + "operationId": "searchVectorStore", + "summary": "Search vector store", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": false, + "description": "The explicit Azure AI Foundry Models API version to use for this request.\n`v1` if not otherwise specified.", + "schema": { + "$ref": "#/components/schemas/AzureAIFoundryModelsApiVersion", + "default": "v1" + } + }, + { + "name": "vector_store_id", + "in": "path", + "required": true, + "description": "The ID of the vector store to search.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreSearchResultsPage" + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "headers": { + "apim-request-id": { + "required": false, + "description": "A request ID used for troubleshooting purposes.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AzureErrorResponse" + } + } + } + } + }, + "tags": [ + "Vector Stores" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OpenAI.VectorStoreSearchRequest" + } + } + } + } + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "ApiKeyAuth_": [] + }, + { "OAuth2Auth": [ "https://cognitiveservices.azure.com/.default" ] } ], "components": { - "parameters": { - "VideoIdParameter": { - "name": "video-id", - "in": "path", - "required": true, - "description": "The ID of the video to use for the Azure OpenAI request.", - "schema": { - "type": "string" + "schemas": { + "AudioSegment": { + "type": "object", + "required": [ + "id", + "start", + "end", + "text", + "temperature", + "avg_logprob", + "compression_ratio", + "no_speech_prob", + "tokens", + "seek" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The 0-based index of this segment within a translation." + }, + "start": { + "type": "number", + "format": "float", + "description": "The time at which this segment started relative to the beginning of the translated audio." + }, + "end": { + "type": "number", + "format": "float", + "description": "The time at which this segment ended relative to the beginning of the translated audio." + }, + "text": { + "type": "string", + "description": "The translated text that was part of this audio segment." + }, + "temperature": { + "type": "number", + "format": "float", + "description": "The temperature score associated with this audio segment." + }, + "avg_logprob": { + "type": "number", + "format": "float", + "description": "The average log probability associated with this audio segment." + }, + "compression_ratio": { + "type": "number", + "format": "float", + "description": "The compression ratio of this audio segment." + }, + "no_speech_prob": { + "type": "number", + "format": "float", + "description": "The probability of no speech detection within this audio segment." + }, + "tokens": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "The token IDs matching the translated text in this audio segment." + }, + "seek": { + "type": "integer", + "format": "int32", + "description": "The seek position associated with the processing of this audio segment.\nSeek positions are expressed as hundredths of seconds.\nThe model may process several segments from a single seek position, so while the seek position will never represent\na later time than the segment's start, the segment's start may represent a significantly later time than the\nsegment's associated seek position." + } + } + }, + "AudioTaskLabel": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "transcribe", + "translate" + ] + } + ], + "description": "Defines the possible descriptors for available audio operation responses." + }, + "AudioTranslationSegment": { + "type": "object", + "required": [ + "id", + "start", + "end", + "text", + "temperature", + "avg_logprob", + "compression_ratio", + "no_speech_prob", + "tokens", + "seek" + ], + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The 0-based index of this segment within a translation." + }, + "start": { + "type": "number", + "format": "float", + "description": "The time at which this segment started relative to the beginning of the translated audio." + }, + "end": { + "type": "number", + "format": "float", + "description": "The time at which this segment ended relative to the beginning of the translated audio." + }, + "text": { + "type": "string", + "description": "The translated text that was part of this audio segment." + }, + "temperature": { + "type": "number", + "format": "float", + "description": "The temperature score associated with this audio segment." + }, + "avg_logprob": { + "type": "number", + "format": "float", + "description": "The average log probability associated with this audio segment." + }, + "compression_ratio": { + "type": "number", + "format": "float", + "description": "The compression ratio of this audio segment." + }, + "no_speech_prob": { + "type": "number", + "format": "float", + "description": "The probability of no speech detection within this audio segment." + }, + "tokens": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "The token IDs matching the translated text in this audio segment." + }, + "seek": { + "type": "integer", + "format": "int32", + "description": "The seek position associated with the processing of this audio segment.\nSeek positions are expressed as hundredths of seconds.\nThe model may process several segments from a single seek position, so while the seek position will never represent\na later time than the segment's start, the segment's start may represent a significantly later time than the\nsegment's associated seek position." + } + }, + "description": "Extended information about a single segment of translated audio data.\nSegments generally represent roughly 5-10 seconds of speech. Segment boundaries typically occur between words but not\nnecessarily sentences." + }, + "AzureAIFoundryModelsApiVersion": { + "type": "string", + "enum": [ + "v1", + "preview" + ] + }, + "AzureAudioTranscriptionResponse": { + "type": "object", + "required": [ + "text" + ], + "properties": { + "text": { + "type": "string", + "description": "The transcribed text for the provided audio data." + }, + "task": { + "allOf": [ + { + "$ref": "#/components/schemas/AudioTaskLabel" + } + ], + "description": "The label that describes which operation type generated the accompanying response data." + }, + "language": { + "type": "string", + "description": "The spoken language that was detected in the transcribed audio data.\nThis is expressed as a two-letter ISO-639-1 language code like 'en' or 'fr'." + }, + "duration": { + "type": "number", + "format": "float", + "description": "The total duration of the audio processed to produce accompanying transcription information." + }, + "segments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.TranscriptionSegment" + }, + "description": "A collection of information about the timing, probabilities, and other detail of each processed audio segment." + }, + "words": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.TranscriptionWord" + }, + "description": "A collection of information about the timing of each processed word." + } + }, + "description": "Result information for an operation that transcribed spoken audio into written text." + }, + "AzureAudioTranslationResponse": { + "type": "object", + "required": [ + "text" + ], + "properties": { + "text": { + "type": "string", + "description": "The translated text for the provided audio data." + }, + "task": { + "allOf": [ + { + "$ref": "#/components/schemas/AudioTaskLabel" + } + ], + "description": "The label that describes which operation type generated the accompanying response data." + }, + "language": { + "type": "string", + "description": "The spoken language that was detected in the translated audio data.\nThis is expressed as a two-letter ISO-639-1 language code like 'en' or 'fr'." + }, + "duration": { + "type": "number", + "format": "float", + "description": "The total duration of the audio processed to produce accompanying translation information." + }, + "segments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AudioTranslationSegment" + }, + "description": "A collection of information about the timing, probabilities, and other detail of each processed audio segment." + } + }, + "description": "Result information for an operation that translated spoken audio into written text." + }, + "AzureCompletionsSamplingParams": { + "type": "object", + "properties": { + "max_tokens": { + "type": "integer", + "format": "int32", + "description": "The maximum number of tokens in the generated output." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSourceSamplingParams" + } + ], + "description": "Sampling parameters for controlling the behavior of completions." + }, + "AzureContentFilterBlocklistIdResult": { + "type": "object", + "required": [ + "id", + "filtered" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the custom blocklist associated with the filtered status." + }, + "filtered": { + "type": "boolean", + "description": "Whether the associated blocklist resulted in the content being filtered." + } + }, + "description": "A content filter result item that associates an existing custom blocklist ID with a value indicating whether or not\nthe corresponding blocklist resulted in content being filtered." + }, + "AzureContentFilterBlocklistResult": { + "type": "object", + "required": [ + "filtered" + ], + "properties": { + "filtered": { + "type": "boolean", + "description": "A value indicating whether any of the detailed blocklists resulted in a filtering action." + }, + "details": { + "type": "array", + "items": { + "type": "object", + "properties": { + "filtered": { + "type": "boolean", + "description": "A value indicating whether the blocklist produced a filtering action." + }, + "id": { + "type": "string", + "description": "The ID of the custom blocklist evaluated." + } + }, + "required": [ + "filtered", + "id" + ] + }, + "description": "The pairs of individual blocklist IDs and whether they resulted in a filtering action." + } + }, + "description": "A collection of true/false filtering results for configured custom blocklists." + }, + "AzureContentFilterCompletionTextSpan": { + "type": "object", + "required": [ + "completion_start_offset", + "completion_end_offset" + ], + "properties": { + "completion_start_offset": { + "type": "integer", + "format": "int32", + "description": "Offset of the UTF32 code point which begins the span." + }, + "completion_end_offset": { + "type": "integer", + "format": "int32", + "description": "Offset of the first UTF32 code point which is excluded from the span. This field is always equal to completion_start_offset for empty spans. This field is always larger than completion_start_offset for non-empty spans." + } + }, + "description": "A representation of a span of completion text as used by Azure OpenAI content filter results." + }, + "AzureContentFilterCompletionTextSpanDetectionResult": { + "type": "object", + "required": [ + "filtered", + "detected", + "details" + ], + "properties": { + "filtered": { + "type": "boolean", + "description": "Whether the content detection resulted in a content filtering action." + }, + "detected": { + "type": "boolean", + "description": "Whether the labeled content category was detected in the content." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureContentFilterCompletionTextSpan" + }, + "description": "Detailed information about the detected completion text spans." + } + } + }, + "AzureContentFilterCustomTopicIdResult": { + "type": "object", + "required": [ + "id", + "detected" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the custom topic associated with the detected status." + }, + "detected": { + "type": "boolean", + "description": "Whether the associated custom topic resulted in the content being detected." + } + }, + "description": "A content filter result item that associates an existing custom topic ID with a value indicating whether or not\nthe corresponding topic resulted in content being detected." + }, + "AzureContentFilterCustomTopicResult": { + "type": "object", + "required": [ + "filtered" + ], + "properties": { + "filtered": { + "type": "boolean", + "description": "A value indicating whether any of the detailed topics resulted in a filtering action." + }, + "details": { + "type": "array", + "items": { + "type": "object", + "properties": { + "detected": { + "type": "boolean", + "description": "A value indicating whether the topic is detected." + }, + "id": { + "type": "string", + "description": "The ID of the custom topic evaluated." + } + }, + "required": [ + "detected", + "id" + ] + }, + "description": "The pairs of individual topic IDs and whether they are detected." + } + }, + "description": "A collection of true/false filtering results for configured custom topics." + }, + "AzureContentFilterDetectionResult": { + "type": "object", + "required": [ + "filtered", + "detected" + ], + "properties": { + "filtered": { + "type": "boolean", + "description": "Whether the content detection resulted in a content filtering action." + }, + "detected": { + "type": "boolean", + "description": "Whether the labeled content category was detected in the content." + } + }, + "description": "A labeled content filter result item that indicates whether the content was detected and whether the content was\nfiltered." + }, + "AzureContentFilterForResponsesAPI": { + "type": "object", + "required": [ + "blocked", + "source_type", + "content_filter_results", + "content_filter_offsets" + ], + "properties": { + "blocked": { + "type": "boolean", + "description": "Indicate if the response is blocked." + }, + "source_type": { + "type": "string", + "description": "The name of the source type of the message." + }, + "content_filter_results": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterResultsForResponsesAPI" + } + ], + "description": "A content filter result for a single response item produced by a generative AI system." + }, + "content_filter_offsets": { + "$ref": "#/components/schemas/AzureContentFilterResultOffsets" + } + } + }, + "AzureContentFilterHarmExtensions": { + "type": "object", + "properties": { + "pii_sub_categories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzurePiiSubCategory" + }, + "description": "Configuration for PIIHarmSubCategory(s)." + } + }, + "description": "Extensions for harm categories, providing additional configuration options." + }, + "AzureContentFilterImagePromptResults": { + "type": "object", + "required": [ + "jailbreak" + ], + "properties": { + "profanity": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the\ncontent." + }, + "custom_blocklists": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterBlocklistResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom blocklists." + }, + "custom_topics": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterCustomTopicResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom topics." + }, + "jailbreak": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes user prompt injection attacks, where malicious users deliberately exploit\nsystem vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content\ngeneration or violations of system-imposed restrictions." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterImageResponseResults" + } + ], + "description": "A content filter result for an image generation operation's input request content." + }, + "AzureContentFilterImageResponseResults": { + "type": "object", + "properties": { + "sexual": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to anatomical organs and genitals, romantic relationships, acts\nportrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an\nassault or a forced sexual violent act against one's will, prostitution, pornography, and abuse." + }, + "violence": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to physical actions intended to hurt, injure, damage, or kill\nsomeone or something; describes weapons, guns and related entities, such as manufactures, associations,\nlegislation, and so on." + }, + "hate": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that can refer to any content that attacks or uses pejorative or discriminatory\nlanguage with reference to a person or identity group based on certain differentiating attributes of these groups\nincluding but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation,\nreligion, immigration status, ability status, personal appearance, and body size." + }, + "self_harm": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that describes language related to physical actions intended to purposely hurt, injure,\ndamage one's body or kill oneself." + } + }, + "description": "A content filter result for an image generation operation's output response content." + }, + "AzureContentFilterPersonallyIdentifiableInformationResult": { + "type": "object", + "properties": { + "redacted_text": { + "type": "string", + "description": "The redacted text with PII information removed or masked." + }, + "sub_categories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzurePiiSubCategoryResult" + }, + "description": "Detailed results for individual PIIHarmSubCategory(s)." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A content filter detection result for Personally Identifiable Information that includes harm extensions." + }, + "AzureContentFilterResultForChoice": { + "type": "object", + "properties": { + "sexual": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to anatomical organs and genitals, romantic relationships, acts\nportrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an\nassault or a forced sexual violent act against one's will, prostitution, pornography, and abuse." + }, + "hate": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that can refer to any content that attacks or uses pejorative or discriminatory\nlanguage with reference to a person or identity group based on certain differentiating attributes of these groups\nincluding but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation,\nreligion, immigration status, ability status, personal appearance, and body size." + }, + "violence": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to physical actions intended to hurt, injure, damage, or kill\nsomeone or something; describes weapons, guns and related entities, such as manufactures, associations,\nlegislation, and so on." + }, + "self_harm": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that describes language related to physical actions intended to purposely hurt, injure,\ndamage one's body or kill oneself." + }, + "profanity": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the\ncontent." + }, + "custom_blocklists": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterBlocklistResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom blocklists." + }, + "custom_topics": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterCustomTopicResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom topics." + }, + "error": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "A distinct, machine-readable code associated with the error." + }, + "message": { + "type": "string", + "description": "A human-readable message associated with the error." + } + }, + "required": [ + "code", + "message" + ], + "description": "If present, details about an error that prevented content filtering from completing its evaluation." + }, + "protected_material_text": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes a match against text protected under copyright or other status." + }, + "protected_material_code": { + "type": "object", + "properties": { + "filtered": { + "type": "boolean", + "description": "Whether the content detection resulted in a content filtering action." + }, + "detected": { + "type": "boolean", + "description": "Whether the labeled content category was detected in the content." + }, + "citation": { + "type": "object", + "properties": { + "license": { + "type": "string", + "description": "The name or identifier of the license associated with the detection." + }, + "URL": { + "type": "string", + "format": "uri", + "description": "The URL associated with the license." + } + }, + "description": "If available, the citation details describing the associated license and its location." + } + }, + "required": [ + "filtered", + "detected" + ], + "description": "A detection result that describes a match against licensed code or other protected source material." + }, + "ungrounded_material": { + "$ref": "#/components/schemas/AzureContentFilterCompletionTextSpanDetectionResult" + }, + "personally_identifiable_information": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterPersonallyIdentifiableInformationResult" + } + ], + "description": "A detection result that describes matches against Personal Identifiable Information with configurable subcategories." + } + }, + "description": "A content filter result for a single response item produced by a generative AI system." + }, + "AzureContentFilterResultForPrompt": { + "type": "object", + "properties": { + "prompt_index": { + "type": "integer", + "format": "int32", + "description": "The index of the input prompt associated with the accompanying content filter result categories." + }, + "content_filter_results": { + "type": "object", + "properties": { + "sexual": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to anatomical organs and genitals, romantic relationships, acts\nportrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an\nassault or a forced sexual violent act against one's will, prostitution, pornography, and abuse." + }, + "hate": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that can refer to any content that attacks or uses pejorative or discriminatory\nlanguage with reference to a person or identity group based on certain differentiating attributes of these groups\nincluding but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation,\nreligion, immigration status, ability status, personal appearance, and body size." + }, + "violence": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to physical actions intended to hurt, injure, damage, or kill\nsomeone or something; describes weapons, guns and related entities, such as manufactures, associations,\nlegislation, and so on." + }, + "self_harm": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that describes language related to physical actions intended to purposely hurt, injure,\ndamage one's body or kill oneself." + }, + "profanity": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the\ncontent." + }, + "custom_blocklists": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterBlocklistResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom blocklists." + }, + "custom_topics": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterCustomTopicResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom topics." + }, + "error": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "A distinct, machine-readable code associated with the error." + }, + "message": { + "type": "string", + "description": "A human-readable message associated with the error." + } + }, + "required": [ + "code", + "message" + ], + "description": "If present, details about an error that prevented content filtering from completing its evaluation." + }, + "jailbreak": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes user prompt injection attacks, where malicious users deliberately exploit\nsystem vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content\ngeneration or violations of system-imposed restrictions." + }, + "indirect_attack": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes attacks on systems powered by Generative AI models that can happen every time\nan application processes information that wasn’t directly authored by either the developer of the application or\nthe user." + } + }, + "required": [ + "jailbreak", + "indirect_attack" + ], + "description": "The content filter category details for the result." + } + }, + "description": "A content filter result associated with a single input prompt item into a generative AI system." + }, + "AzureContentFilterResultOffsets": { + "type": "object", + "required": [ + "start_offset", + "end_offset", + "check_offset" + ], + "properties": { + "start_offset": { + "type": "integer", + "format": "int32" + }, + "end_offset": { + "type": "integer", + "format": "int32" + }, + "check_offset": { + "type": "integer", + "format": "int32" + } + } + }, + "AzureContentFilterResultsForResponsesAPI": { + "type": "object", + "required": [ + "jailbreak", + "task_adherence" + ], + "properties": { + "sexual": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to anatomical organs and genitals, romantic relationships, acts\nportrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an\nassault or a forced sexual violent act against one's will, prostitution, pornography, and abuse." + }, + "hate": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that can refer to any content that attacks or uses pejorative or discriminatory\nlanguage with reference to a person or identity group based on certain differentiating attributes of these groups\nincluding but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation,\nreligion, immigration status, ability status, personal appearance, and body size." + }, + "violence": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category for language related to physical actions intended to hurt, injure, damage, or kill\nsomeone or something; describes weapons, guns and related entities, such as manufactures, associations,\nlegislation, and so on." + }, + "self_harm": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + } + ], + "description": "A content filter category that describes language related to physical actions intended to purposely hurt, injure,\ndamage one's body or kill oneself." + }, + "profanity": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the\ncontent." + }, + "custom_blocklists": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterBlocklistResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom blocklists." + }, + "custom_topics": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterCustomTopicResult" + } + ], + "description": "A collection of binary filtering outcomes for configured custom topics." + }, + "error": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "A distinct, machine-readable code associated with the error." + }, + "message": { + "type": "string", + "description": "A human-readable message associated with the error." + } + }, + "required": [ + "code", + "message" + ], + "description": "If present, details about an error that prevented content filtering from completing its evaluation." + }, + "jailbreak": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes user prompt injection attacks, where malicious users deliberately exploit\nsystem vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content\ngeneration or violations of system-imposed restrictions." + }, + "task_adherence": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that indicates if the execution flow still sticks the plan." + }, + "protected_material_text": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes a match against text protected under copyright or other status." + }, + "protected_material_code": { + "type": "object", + "properties": { + "filtered": { + "type": "boolean", + "description": "Whether the content detection resulted in a content filtering action." + }, + "detected": { + "type": "boolean", + "description": "Whether the labeled content category was detected in the content." + }, + "citation": { + "type": "object", + "properties": { + "license": { + "type": "string", + "description": "The name or identifier of the license associated with the detection." + }, + "URL": { + "type": "string", + "format": "uri", + "description": "The URL associated with the license." + } + }, + "description": "If available, the citation details describing the associated license and its location." + } + }, + "required": [ + "filtered", + "detected" + ], + "description": "A detection result that describes a match against licensed code or other protected source material." + }, + "ungrounded_material": { + "$ref": "#/components/schemas/AzureContentFilterCompletionTextSpanDetectionResult" + }, + "personally_identifiable_information": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterPersonallyIdentifiableInformationResult" + } + ], + "description": "A detection result that describes matches against Personal Identifiable Information with configurable subcategories." + }, + "indirect_attack": { + "allOf": [ + { + "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + } + ], + "description": "A detection result that describes attacks on systems powered by Generative AI models that can happen every time\nan application processes information that wasn’t directly authored by either the developer of the application or\nthe user." + } + } + }, + "AzureContentFilterSeverityResult": { + "type": "object", + "required": [ + "filtered", + "severity" + ], + "properties": { + "filtered": { + "type": "boolean", + "description": "Whether the content severity resulted in a content filtering action." + }, + "severity": { + "type": "string", + "enum": [ + "safe", + "low", + "medium", + "high" + ], + "description": "The labeled severity of the content." + } + }, + "description": "A labeled content filter result item that indicates whether the content was filtered and what the qualitative\nseverity level of the content was, as evaluated against content filter configuration for the category." + }, + "AzureErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The distinct, machine-generated identifier for the error." + }, + "message": { + "type": "string", + "description": "A human-readable message associated with the error." + }, + "param": { + "type": "string", + "description": "If applicable, the request input parameter associated with the error" + }, + "type": { + "type": "string", + "enum": [ + "error" + ], + "description": "The object type, always 'error.'" + }, + "inner_error": {} + }, + "description": "The error details." + } + } + }, + "AzureFileExpiryAnchor": { + "type": "string", + "enum": [ + "created_at" + ] + }, + "AzureFineTuneReinforcementMethod": { + "type": "object", + "required": [ + "grader" + ], + "properties": { + "grader": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.GraderStringCheck" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderScoreModel" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderMulti" + }, + { + "$ref": "#/components/schemas/GraderEndpoint" + } + ] + }, + "response_format": { + "allOf": [ + { + "$ref": "#/components/schemas/ResponseFormatJSONSchemaRequest" + } + ], + "description": "Response format to be used while sampling during RFT training" + }, + "hyperparameters": { + "$ref": "#/components/schemas/OpenAI.FineTuneReinforcementHyperparameters" + } + } + }, + "AzurePiiSubCategory": { + "type": "object", + "required": [ + "sub_category", + "detect", + "redact", + "filter" + ], + "properties": { + "sub_category": { + "type": "string", + "description": "The PIIHarmSubCategory being configured." + }, + "detect": { + "type": "boolean", + "description": "Whether detection is enabled for this subcategory." + }, + "redact": { + "type": "boolean", + "description": "Whether content containing this subcategory should be redacted." + }, + "filter": { + "type": "boolean", + "description": "Whether content containing this subcategory should be blocked." + } + }, + "description": "Configuration for individual PIIHarmSubCategory(s) within the harm extensions framework." + }, + "AzurePiiSubCategoryResult": { + "type": "object", + "required": [ + "sub_category", + "filtered", + "detected", + "redacted" + ], + "properties": { + "sub_category": { + "type": "string", + "description": "The PIIHarmSubCategory that was evaluated." + }, + "filtered": { + "type": "boolean", + "description": "Whether the content detection resulted in a content filtering action for this subcategory." + }, + "detected": { + "type": "boolean", + "description": "Whether the labeled content subcategory was detected in the content." + }, + "redacted": { + "type": "boolean", + "description": "Whether the content was redacted for this subcategory." + } + }, + "description": "Result details for individual PIIHarmSubCategory(s)." + }, + "AzureResponsesSamplingParams": { + "type": "object", + "properties": { + "max_tokens": { + "type": "integer", + "format": "int32", + "description": "The maximum number of tokens in the generated output." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceSamplingParams" + } + ], + "description": "Sampling parameters for controlling the behavior of responses." + }, + "AzureUserSecurityContext": { + "type": "object", + "properties": { + "application_name": { + "type": "string", + "description": "The name of the application. Sensitive personal information should not be included in this field." + }, + "end_user_id": { + "type": "string", + "description": "This identifier is the Microsoft Entra ID (formerly Azure Active Directory) user object ID used to authenticate end-users within the generative AI application. Sensitive personal information should not be included in this field." + }, + "end_user_tenant_id": { + "type": "string", + "description": "The Microsoft 365 tenant ID the end user belongs to. It's required when the generative AI application is multitenant." + }, + "source_ip": { + "type": "string", + "description": "Captures the original client's IP address." + } + }, + "description": "User security context contains several parameters that describe the application itself, and the end user that interacts with the application. These fields assist your security operations teams to investigate and mitigate security incidents by providing a comprehensive approach to protecting your AI applications. [Learn more](https://aka.ms/TP4AI/Documentation/EndUserContext) about protecting AI applications using Microsoft Defender for Cloud." + }, + "CopiedAccountDetails": { + "type": "object", + "required": [ + "destinationResourceId", + "region", + "status" + ], + "properties": { + "destinationResourceId": { + "type": "string", + "description": "The ID of the destination resource where the model was copied to." + }, + "region": { + "type": "string", + "description": "The region where the model was copied to." + }, + "status": { + "type": "string", + "enum": [ + "Completed", + "Failed", + "InProgress" + ], + "description": "The status of the copy operation." + } + } + }, + "CopyModelRequest": { + "type": "object", + "required": [ + "destinationResourceId", + "region" + ], + "properties": { + "destinationResourceId": { + "type": "string", + "description": "The ID of the destination Resource to copy." + }, + "region": { + "type": "string", + "description": "The region to copy the model to." + } + } + }, + "CopyModelResponse": { + "type": "object", + "required": [ + "checkpointedModelName", + "fineTuningJobId", + "copiedAccountDetails" + ], + "properties": { + "checkpointedModelName": { + "type": "string", + "description": "The ID of the copied model." + }, + "fineTuningJobId": { + "type": "string", + "description": "The ID of the fine-tuning job that the checkpoint was copied from." + }, + "copiedAccountDetails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CopiedAccountDetails" + }, + "description": "The ID of the destination resource id where it was copied" + } + } + }, + "CreateVideoBody": { + "type": "object", + "required": [ + "model", + "prompt" + ], + "properties": { + "model": { + "type": "string", + "description": "The name of the deployment to use for this request." + }, + "prompt": { + "type": "string", + "minLength": 1, + "description": "Text prompt that describes the video to generate." + }, + "seconds": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoSeconds" + } + ], + "description": "Clip duration in seconds. Defaults to 4 seconds.", + "default": "4" + }, + "size": { + "allOf": [ + { + "$ref": "#/components/schemas/VideoSize" + } + ], + "description": "Output resolution formatted as width x height. Defaults to 720x1280.", + "default": "720x1280" + } + } + }, + "CreateVideoBodyWithInputReference": { + "type": "object", + "required": [ + "model", + "prompt", + "input_reference" + ], + "properties": { + "model": { + "type": "object", + "description": "The name of the deployment to use for this request." + }, + "prompt": { + "type": "object", + "description": "Text prompt that describes the video to generate." + }, + "seconds": { + "type": "object", + "description": "Clip duration in seconds. Defaults to 4 seconds." + }, + "size": { + "type": "object", + "description": "Output resolution formatted as width x height. Defaults to 720x1280." + }, + "input_reference": { + "type": "object", + "description": "Optional image reference that guides generation.", + "x-oaiTypeLabel": "file" + } + }, + "description": "The properties of a video generation job request with media files." + }, + "CreateVideoRemixBody": { + "type": "object", + "required": [ + "prompt" + ], + "properties": { + "prompt": { + "type": "string", + "minLength": 1, + "description": "Updated text prompt that directs the remix generation." + } + }, + "description": "Parameters for remixing an existing generated video." + }, + "DeletedVideoResource": { + "type": "object", + "required": [ + "object", + "deleted", + "id" + ], + "properties": { + "object": { + "type": "string", + "description": "The object type that signals the deletion response.", + "default": "video.deleted" + }, + "deleted": { + "type": "boolean", + "description": "Indicates that the video resource was deleted.", + "default": true + }, + "id": { + "type": "string", + "description": "Identifier of the deleted video." + } + }, + "description": "Confirmation payload returned after deleting a video." + }, + "Error": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "EvalGraderEndpoint": { + "type": "object", + "required": [ + "type", + "name", + "url" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "endpoint" + ], + "default": "endpoint" + }, + "name": { + "type": "string", + "description": "The name of the grader" + }, + "url": { + "type": "string", + "pattern": "^https://", + "description": "The HTTPS URL of the endpoint to call for grading" + }, + "headers": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": { + "type": "string" + } + }, + { + "type": "null" + } + ], + "description": "Optional HTTP headers to include in requests to the endpoint" + }, + "rate_limit": { + "anyOf": [ + { + "type": "integer", + "format": "int32" + }, + { + "type": "null" + } + ], + "description": "Optional rate limit for requests per second to the endpoint\nMust be a positive integer" + }, + "pass_threshold": { + "anyOf": [ + { + "type": "number", + "format": "decimal" + }, + { + "type": "null" + } + ], + "description": "Optional threshold score above which the grade is considered passing\nIf not specified, all scores are considered valid" + } + } + }, + "GraderEndpoint": { + "type": "object", + "required": [ + "type", + "name", + "url" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "endpoint" + ], + "default": "endpoint" + }, + "name": { + "type": "string", + "description": "The name of the grader" + }, + "url": { + "type": "string", + "pattern": "^https://", + "description": "The HTTPS URL of the endpoint to call for grading" + }, + "headers": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": { + "type": "string" + } + }, + { + "type": "null" + } + ], + "description": "Optional HTTP headers to include in requests to the endpoint" + }, + "rate_limit": { + "anyOf": [ + { + "type": "integer", + "format": "int32" + }, + { + "type": "null" + } + ], + "description": "Optional rate limit for requests per second to the endpoint\nMust be a positive integer" + }, + "pass_threshold": { + "anyOf": [ + { + "type": "number", + "format": "decimal" + }, + { + "type": "null" + } + ], + "description": "Optional threshold score above which the grade is considered passing\nIf not specified, all scores are considered valid" + } + }, + "description": "Endpoint grader configuration for external HTTP endpoint evaluation" + }, + "OpenAI.Annotation": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.AnnotationType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "file_citation": "#/components/schemas/OpenAI.FileCitationBody", + "url_citation": "#/components/schemas/OpenAI.UrlCitationBody", + "container_file_citation": "#/components/schemas/OpenAI.ContainerFileCitationBody", + "file_path": "#/components/schemas/OpenAI.FilePath" + } + } + }, + "OpenAI.AnnotationType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "file_citation", + "url_citation", + "container_file_citation", + "file_path" + ] + } + ] + }, + "OpenAI.ApplyPatchCallOutputStatus": { + "type": "string", + "enum": [ + "completed", + "failed" + ] + }, + "OpenAI.ApplyPatchCallStatus": { + "type": "string", + "enum": [ + "in_progress", + "completed" + ] + }, + "OpenAI.ApplyPatchCreateFileOperation": { + "type": "object", + "required": [ + "type", + "path", + "diff" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "create_file" + ], + "description": "Create a new file with the provided diff.", + "x-stainless-const": true, + "default": "create_file" + }, + "path": { + "type": "string", + "description": "Path of the file to create." + }, + "diff": { + "type": "string", + "description": "Diff to apply." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperation" + } + ], + "description": "Instruction describing how to create a file via the apply_patch tool.", + "title": "Apply patch create file operation" + }, + "OpenAI.ApplyPatchDeleteFileOperation": { + "type": "object", + "required": [ + "type", + "path" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "delete_file" + ], + "description": "Delete the specified file.", + "x-stainless-const": true, + "default": "delete_file" + }, + "path": { + "type": "string", + "description": "Path of the file to delete." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperation" + } + ], + "description": "Instruction describing how to delete a file via the apply_patch tool.", + "title": "Apply patch delete file operation" + }, + "OpenAI.ApplyPatchFileOperation": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperationType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "create_file": "#/components/schemas/OpenAI.ApplyPatchCreateFileOperation", + "delete_file": "#/components/schemas/OpenAI.ApplyPatchDeleteFileOperation", + "update_file": "#/components/schemas/OpenAI.ApplyPatchUpdateFileOperation" + } + }, + "description": "One of the create_file, delete_file, or update_file operations applied via apply_patch.", + "title": "Apply patch operation" + }, + "OpenAI.ApplyPatchFileOperationType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "create_file", + "delete_file", + "update_file" + ] + } + ] + }, + "OpenAI.ApplyPatchToolCall": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "status", + "operation" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch_call" + ], + "description": "The type of the item. Always `apply_patch_call`.", + "x-stainless-const": true, + "default": "apply_patch_call" + }, + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchCallStatus" + } + ], + "description": "The status of the apply patch tool call. One of `in_progress` or `completed`." + }, + "operation": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperation" + } + ], + "description": "One of the create_file, delete_file, or update_file operations applied via apply_patch." + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ], + "description": "A tool call that applies file diffs by creating, deleting, or updating files.", + "title": "Apply patch tool call" + }, + "OpenAI.ApplyPatchToolCallOutput": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "status" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch_call_output" + ], + "description": "The type of the item. Always `apply_patch_call_output`.", + "x-stainless-const": true, + "default": "apply_patch_call_output" + }, + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call output. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchCallOutputStatus" + } + ], + "description": "The status of the apply patch tool call output. One of `completed` or `failed`." + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call output." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ], + "description": "The output emitted by an apply patch tool call.", + "title": "Apply patch tool call output" + }, + "OpenAI.ApplyPatchToolParam": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch" + ], + "description": "The type of the tool. Always `apply_patch`.", + "x-stainless-const": true, + "default": "apply_patch" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Tool" + } + ], + "description": "Allows the assistant to create, delete, or update files using unified diffs.", + "title": "Apply patch tool" + }, + "OpenAI.ApplyPatchUpdateFileOperation": { + "type": "object", + "required": [ + "type", + "path", + "diff" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "update_file" + ], + "description": "Update an existing file with the provided diff.", + "x-stainless-const": true, + "default": "update_file" + }, + "path": { + "type": "string", + "description": "Path of the file to update." + }, + "diff": { + "type": "string", + "description": "Diff to apply." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperation" + } + ], + "description": "Instruction describing how to update a file via the apply_patch tool.", + "title": "Apply patch update file operation" + }, + "OpenAI.ApproximateLocation": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "approximate" + ], + "description": "The type of location approximation. Always `approximate`.", + "x-stainless-const": true, + "default": "approximate" + }, + "country": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "region": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "city": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "timezone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.AssistantTool": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.AssistantToolType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "code_interpreter": "#/components/schemas/OpenAI.AssistantToolsCode", + "file_search": "#/components/schemas/OpenAI.AssistantToolsFileSearch", + "function": "#/components/schemas/OpenAI.AssistantToolsFunction" + } + } + }, + "OpenAI.AssistantToolType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "code_interpreter", + "file_search", + "function" + ] + } + ] + }, + "OpenAI.AssistantToolsCode": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "code_interpreter" + ], + "description": "The type of tool being defined: `code_interpreter`", + "x-stainless-const": true + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.AssistantTool" + } + ], + "title": "Code interpreter tool" + }, + "OpenAI.AssistantToolsFileSearch": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_search" + ], + "description": "The type of tool being defined: `file_search`", + "x-stainless-const": true + }, + "file_search": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.AssistantToolsFileSearchFileSearch" + } + ], + "description": "Overrides for the file search tool." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.AssistantTool" + } + ], + "title": "FileSearch tool" + }, + "OpenAI.AssistantToolsFileSearchFileSearch": { + "type": "object", + "properties": { + "max_num_results": { + "type": "integer", + "minimum": 1, + "maximum": 50 + }, + "ranking_options": { + "$ref": "#/components/schemas/OpenAI.FileSearchRankingOptions" + } + } + }, + "OpenAI.AssistantToolsFileSearchTypeOnly": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file_search" + ], + "description": "The type of tool being defined: `file_search`", + "x-stainless-const": true + } + }, + "title": "AssistantToolsFileSearchTypeOnly" + }, + "OpenAI.AssistantToolsFunction": { + "type": "object", + "required": [ + "type", + "function" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function" + ], + "description": "The type of tool being defined: `function`", + "x-stainless-const": true + }, + "function": { + "$ref": "#/components/schemas/OpenAI.FunctionObject" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.AssistantTool" + } + ], + "title": "Function tool" + }, + "OpenAI.AssistantsApiResponseFormatOption": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatText" + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonObject" + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchema" + } + ], + "description": "Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`.\n\nSetting to `{ \"type\": \"json_schema\", \"json_schema\": {...} }` enables Structured Outputs which ensures the model will match your supplied JSON schema. Learn more in the [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).\n\nSetting to `{ \"type\": \"json_object\" }` enables JSON mode, which ensures the message the model generates is valid JSON.\n\n*Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly \"stuck\" request. Also note that the message content may be partially cut off if `finish_reason=\"length\"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length." + }, + "OpenAI.AssistantsApiToolChoiceOption": { + "anyOf": [ + { + "type": "string", + "enum": [ + "none", + "auto", + "required" + ] + }, + { + "$ref": "#/components/schemas/OpenAI.AssistantsNamedToolChoice" + } + ], + "description": "Controls which (if any) tool is called by the model.\n`none` means the model will not call any tools and instead generates a message.\n`auto` is the default value and means the model can pick between generating a message or calling one or more tools.\n`required` means the model must call one or more tools before responding to the user.\nSpecifying a particular tool like `{\"type\": \"file_search\"}` or `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces the model to call that tool." + }, + "OpenAI.AssistantsNamedToolChoice": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function", + "code_interpreter", + "file_search" + ], + "description": "The type of the tool. If type is `function`, the function name must be set" + }, + "function": { + "$ref": "#/components/schemas/OpenAI.AssistantsNamedToolChoiceFunction" + } + }, + "description": "Specifies a tool the model should use. Use to force the model to call a specific tool." + }, + "OpenAI.AssistantsNamedToolChoiceFunction": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + } + } + }, + "OpenAI.AudioTranscription": { + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "The model to use for transcription. Current options are `whisper-1`, `gpt-4o-mini-transcribe`, `gpt-4o-transcribe`, and `gpt-4o-transcribe-diarize`. Use `gpt-4o-transcribe-diarize` when you need diarization with speaker labels." + }, + "language": { + "type": "string", + "description": "The language of the input audio. Supplying the input language in\n [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`) format\n will improve accuracy and latency." + }, + "prompt": { + "type": "string", + "description": "An optional text to guide the model's style or continue a previous audio\n segment.\n For `whisper-1`, the [prompt is a list of keywords](https://platform.openai.com/docs/guides/speech-to-text#prompting).\n For `gpt-4o-transcribe` models (excluding `gpt-4o-transcribe-diarize`), the prompt is a free text string, for example \"expect words related to technology\"." + } + } + }, + "OpenAI.AutoChunkingStrategyRequestParam": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "auto" + ], + "description": "Always `auto`.", + "x-stainless-const": true + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" + } + ], + "description": "The default strategy. This strategy currently uses a `max_chunk_size_tokens` of `800` and `chunk_overlap_tokens` of `400`.", + "title": "Auto Chunking Strategy" + }, + "OpenAI.Batch": { + "type": "object", + "required": [ + "id", + "object", + "endpoint", + "completion_window", + "status", + "created_at" + ], + "properties": { + "id": { + "type": "string" + }, + "object": { + "type": "string", + "enum": [ + "batch" + ], + "description": "The object type, which is always `batch`.", + "x-stainless-const": true + }, + "endpoint": { + "type": "string", + "description": "The OpenAI API endpoint used by the batch." + }, + "model": { + "type": "string", + "description": "Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model\n guide](https://platform.openai.com/docs/models) to browse and compare available models." + }, + "errors": { + "$ref": "#/components/schemas/OpenAI.BatchErrors" + }, + "completion_window": { + "type": "string", + "description": "The time frame within which the batch should be processed." + }, + "status": { + "type": "string", + "enum": [ + "validating", + "failed", + "in_progress", + "finalizing", + "completed", + "expired", + "cancelling", + "cancelled" + ], + "description": "The current status of the batch." + }, + "output_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of successfully executed requests." + }, + "error_file_id": { + "type": "string", + "description": "The ID of the file containing the outputs of requests with errors." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was created." + }, + "in_progress_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started processing." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch will expire." + }, + "finalizing_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started finalizing." + }, + "completed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was completed." + }, + "failed_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch failed." + }, + "expired_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch expired." + }, + "cancelling_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch started cancelling." + }, + "cancelled_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the batch was cancelled." + }, + "request_counts": { + "$ref": "#/components/schemas/OpenAI.BatchRequestCounts" + }, + "usage": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.BatchUsage" + } + ], + "description": "Represents token usage details including input tokens, output tokens, a\n breakdown of output tokens, and the total tokens used. Only populated on\n batches created after September 7, 2025." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "input_file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "x-oaiMeta": { + "name": "The batch object", + "example": "{\n \"id\": \"batch_abc123\",\n \"object\": \"batch\",\n \"endpoint\": \"/v1/completions\",\n \"model\": \"gpt-5-2025-08-07\",\n \"errors\": null,\n \"input_file_id\": \"file-abc123\",\n \"completion_window\": \"24h\",\n \"status\": \"completed\",\n \"output_file_id\": \"file-cvaTdG\",\n \"error_file_id\": \"file-HOWS94\",\n \"created_at\": 1711471533,\n \"in_progress_at\": 1711471538,\n \"expires_at\": 1711557933,\n \"finalizing_at\": 1711493133,\n \"completed_at\": 1711493163,\n \"failed_at\": null,\n \"expired_at\": null,\n \"cancelling_at\": null,\n \"cancelled_at\": null,\n \"request_counts\": {\n \"total\": 100,\n \"completed\": 95,\n \"failed\": 5\n },\n \"usage\": {\n \"input_tokens\": 1500,\n \"input_tokens_details\": {\n \"cached_tokens\": 1024\n },\n \"output_tokens\": 500,\n \"output_tokens_details\": {\n \"reasoning_tokens\": 300\n },\n \"total_tokens\": 2000\n },\n \"metadata\": {\n \"customer_id\": \"user_123456789\",\n \"batch_description\": \"Nightly eval job\",\n }\n}\n" + } + }, + "OpenAI.BatchError": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "An error code identifying the error type." + }, + "message": { + "type": "string", + "description": "A human-readable message providing more details about the error." + }, + "param": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "line": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.BatchErrors": { + "type": "object", + "properties": { + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.BatchError" + } + } + } + }, + "OpenAI.BatchRequestCounts": { + "type": "object", + "required": [ + "total", + "completed", + "failed" + ], + "properties": { + "total": { + "type": "integer", + "description": "Total number of requests in the batch." + }, + "completed": { + "type": "integer", + "description": "Number of requests that have been completed successfully." + }, + "failed": { + "type": "integer", + "description": "Number of requests that have failed." + } + }, + "description": "The request counts for different statuses within the batch." + }, + "OpenAI.BatchUsage": { + "type": "object", + "required": [ + "input_tokens", + "input_tokens_details", + "output_tokens", + "output_tokens_details", + "total_tokens" + ], + "properties": { + "input_tokens": { + "type": "integer" + }, + "input_tokens_details": { + "$ref": "#/components/schemas/OpenAI.BatchUsageInputTokensDetails" + }, + "output_tokens": { + "type": "integer" + }, + "output_tokens_details": { + "$ref": "#/components/schemas/OpenAI.BatchUsageOutputTokensDetails" + }, + "total_tokens": { + "type": "integer" + } + } + }, + "OpenAI.BatchUsageInputTokensDetails": { + "type": "object", + "required": [ + "cached_tokens" + ], + "properties": { + "cached_tokens": { + "type": "integer" + } + } + }, + "OpenAI.BatchUsageOutputTokensDetails": { + "type": "object", + "required": [ + "reasoning_tokens" + ], + "properties": { + "reasoning_tokens": { + "type": "integer" + } + } + }, + "OpenAI.ChatCompletionAllowedTools": { + "type": "object", + "required": [ + "mode", + "tools" + ], + "properties": { + "mode": { + "type": "string", + "enum": [ + "auto", + "required" + ], + "description": "Constrains the tools available to the model to a pre-defined set.\n\n `auto` allows the model to pick from among the allowed tools and generate a\n message.\n\n `required` requires the model to call one or more of the allowed tools." + }, + "tools": { + "type": "array", + "items": { + "type": "object", + "unevaluatedProperties": {} + }, + "description": "A list of tool definitions that the model should be allowed to call.\n\n For the Chat Completions API, the list of tool definitions might look like:\n ```json\n [\n { \"type\": \"function\", \"function\": { \"name\": \"get_weather\" } },\n { \"type\": \"function\", \"function\": { \"name\": \"get_time\" } }\n ]\n ```" + } + }, + "description": "Constrains the tools available to the model to a pre-defined set.", + "title": "Allowed tools" + }, + "OpenAI.ChatCompletionAllowedToolsChoice": { + "type": "object", + "required": [ + "type", + "allowed_tools" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "allowed_tools" + ], + "description": "Allowed tool configuration type. Always `allowed_tools`.", + "x-stainless-const": true + }, + "allowed_tools": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionAllowedTools" + } + }, + "description": "Constrains the tools available to the model to a pre-defined set.", + "title": "Allowed tools" + }, + "OpenAI.ChatCompletionFunctionCallOption": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the function to call." + } + }, + "description": "Specifying a particular function via `{\"name\": \"my_function\"}` forces the model to call that function.", + "x-stainless-variantName": "function_call_option" + }, + "OpenAI.ChatCompletionFunctions": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "description": { + "type": "string", + "description": "A description of what the function does, used by the model to choose when and how to call the function." + }, + "name": { + "type": "string", + "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + }, + "parameters": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FunctionParameters" + } + ], + "description": "The parameters the functions accepts, described as a JSON Schema object.\nSee the [JSON Schema reference](https://json-schema.org/understanding-json-schema/)\nfor documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list." + } + } + }, + "OpenAI.ChatCompletionMessageCustomToolCall": { + "type": "object", + "required": [ + "id", + "type", + "custom" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call." + }, + "type": { + "type": "string", + "enum": [ + "custom" + ], + "description": "The type of the tool. Always `custom`.", + "x-stainless-const": true + }, + "custom": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageCustomToolCallCustom" + } + ], + "description": "The custom tool that the model called." + } + }, + "description": "A call to a custom tool created by the model.", + "title": "Custom tool call" + }, + "OpenAI.ChatCompletionMessageCustomToolCallCustom": { + "type": "object", + "required": [ + "name", + "input" + ], + "properties": { + "name": { + "type": "string" + }, + "input": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionMessageToolCall": { + "type": "object", + "required": [ + "id", + "type", + "function" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call." + }, + "type": { + "type": "string", + "enum": [ + "function" + ], + "description": "The type of the tool. Currently, only `function` is supported.", + "x-stainless-const": true + }, + "function": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCallFunction" + } + ], + "description": "The function that the model called." + } + }, + "description": "A call to a function tool created by the model.", + "title": "Function tool call" + }, + "OpenAI.ChatCompletionMessageToolCallChunk": { + "type": "object", + "required": [ + "index" + ], + "properties": { + "index": { + "type": "integer" + }, + "id": { + "type": "string", + "description": "The ID of the tool call." + }, + "type": { + "type": "string", + "enum": [ + "function" + ], + "description": "The type of the tool. Currently, only `function` is supported.", + "x-stainless-const": true + }, + "function": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunkFunction" + } + } + }, + "OpenAI.ChatCompletionMessageToolCallChunkFunction": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "arguments": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionMessageToolCallFunction": { + "type": "object", + "required": [ + "name", + "arguments" + ], + "properties": { + "name": { + "type": "string" + }, + "arguments": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionMessageToolCalls": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCall" + }, + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageCustomToolCall" + } + ] + }, + "description": "The tool calls generated by the model, such as function calls." + }, + "OpenAI.ChatCompletionMessageToolCallsItem": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCall" + }, + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageCustomToolCall" + } + ] + }, + "description": "The tool calls generated by the model, such as function calls." + }, + "OpenAI.ChatCompletionNamedToolChoice": { + "type": "object", + "required": [ + "type", + "function" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function" + ], + "description": "For function calling, the type is always `function`.", + "x-stainless-const": true + }, + "function": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionNamedToolChoiceFunction" + } + }, + "description": "Specifies a tool the model should use. Use to force the model to call a specific function.", + "title": "Function tool choice" + }, + "OpenAI.ChatCompletionNamedToolChoiceCustom": { + "type": "object", + "required": [ + "type", + "custom" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom" + ], + "description": "For custom tool calling, the type is always `custom`.", + "x-stainless-const": true + }, + "custom": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionNamedToolChoiceCustomCustom" + } + }, + "description": "Specifies a tool the model should use. Use to force the model to call a specific custom tool.", + "title": "Custom tool choice" + }, + "OpenAI.ChatCompletionNamedToolChoiceCustomCustom": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionNamedToolChoiceFunction": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionRequestAssistantMessage": { + "type": "object", + "required": [ + "role" + ], + "properties": { + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPart" + } + }, + { + "type": "null" + } + ] + }, + "refusal": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "type": "string", + "enum": [ + "assistant" + ], + "description": "The role of the messages author, in this case `assistant`.", + "x-stainless-const": true + }, + "name": { + "type": "string", + "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + }, + "audio": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageAudio" + }, + { + "type": "null" + } + ], + "description": "Data about a previous audio response from the model." + }, + "tool_calls": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCalls" + }, + "function_call": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageFunctionCall" + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + } + ], + "description": "Messages sent by the model in response to user messages.", + "title": "Assistant message", + "x-stainless-soft-required": [ + "content" + ] + }, + "OpenAI.ChatCompletionRequestAssistantMessageAudio": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionRequestAssistantMessageContentPart": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPartType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "refusal": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartRefusal" + } + } + }, + "OpenAI.ChatCompletionRequestAssistantMessageContentPartType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "text", + "refusal" + ] + } + ] + }, + "OpenAI.ChatCompletionRequestAssistantMessageFunctionCall": { + "type": "object", + "required": [ + "arguments", + "name" + ], + "properties": { + "arguments": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionRequestDeveloperMessage": { + "type": "object", + "required": [ + "content", + "role" + ], + "properties": { + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + } + } + ], + "description": "The contents of the developer message." + }, + "role": { + "type": "string", + "enum": [ + "developer" + ], + "description": "The role of the messages author, in this case `developer`.", + "x-stainless-const": true + }, + "name": { + "type": "string", + "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + } + ], + "description": "Developer-provided instructions that the model should follow, regardless of\nmessages sent by the user. With o1 models and newer, `developer` messages\nreplace the previous `system` messages.", + "title": "Developer message", + "x-stainless-naming": { + "go": { + "variant_constructor": "DeveloperMessage" + } + } + }, + "OpenAI.ChatCompletionRequestFunctionMessage": { + "type": "object", + "required": [ + "role", + "content", + "name" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "function" + ], + "description": "The role of the messages author, in this case `function`.", + "x-stainless-const": true + }, + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "type": "string", + "description": "The name of the function to call." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + } + ], + "title": "Function message" + }, + "OpenAI.ChatCompletionRequestMessage": { + "type": "object", + "required": [ + "role" + ], + "properties": { + "role": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageType" + } + }, + "discriminator": { + "propertyName": "role", + "mapping": { + "assistant": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessage", + "developer": "#/components/schemas/OpenAI.ChatCompletionRequestDeveloperMessage", + "function": "#/components/schemas/OpenAI.ChatCompletionRequestFunctionMessage", + "system": "#/components/schemas/OpenAI.ChatCompletionRequestSystemMessage", + "user": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessage", + "tool": "#/components/schemas/OpenAI.ChatCompletionRequestToolMessage" + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartAudio": { + "type": "object", + "required": [ + "type", + "input_audio" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "input_audio" + ], + "description": "The type of the content part. Always `input_audio`.", + "x-stainless-const": true + }, + "input_audio": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudioInputAudio" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart" + } + ], + "description": "", + "title": "Audio content part", + "x-stainless-naming": { + "go": { + "variant_constructor": "InputAudioContentPart" + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartAudioInputAudio": { + "type": "object", + "required": [ + "data", + "format" + ], + "properties": { + "data": { + "type": "string" + }, + "format": { + "type": "string", + "enum": [ + "wav", + "mp3" + ] + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartFile": { + "type": "object", + "required": [ + "type", + "file" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "file" + ], + "description": "The type of the content part. Always `file`.", + "x-stainless-const": true + }, + "file": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFileFile" + } + ], + "x-stainless-naming": { + "java": { + "type_name": "FileObject" + }, + "kotlin": { + "type_name": "FileObject" + } + } + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart" + } + ], + "description": "Learn about [file inputs](https://platform.openai.com/docs/guides/text) for text generation.", + "title": "File content part", + "x-stainless-naming": { + "go": { + "variant_constructor": "FileContentPart" + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartFileFile": { + "type": "object", + "properties": { + "filename": { + "type": "string" + }, + "file_data": { + "type": "string" + }, + "file_id": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartImage": { + "type": "object", + "required": [ + "type", + "image_url" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "image_url" + ], + "description": "The type of the content part.", + "x-stainless-const": true + }, + "image_url": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImageImageUrl" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart" + } + ], + "description": "", + "title": "Image content part", + "x-stainless-naming": { + "go": { + "variant_constructor": "ImageContentPart" + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartImageImageUrl": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "detail": { + "type": "string", + "enum": [ + "auto", + "low", + "high" + ], + "default": "auto" + } + } + }, + "OpenAI.ChatCompletionRequestMessageContentPartRefusal": { + "type": "object", + "required": [ + "type", + "refusal" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "refusal" + ], + "description": "The type of the content part.", + "x-stainless-const": true + }, + "refusal": { + "type": "string", + "description": "The refusal message generated by the model." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPart" + } + ], + "title": "Refusal content part" + }, + "OpenAI.ChatCompletionRequestMessageContentPartText": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ], + "description": "The type of the content part.", + "x-stainless-const": true + }, + "text": { + "type": "string", + "description": "The text content." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart" + } + ], + "description": "", + "title": "Text content part", + "x-stainless-naming": { + "go": { + "variant_constructor": "TextContentPart" + } + } + }, + "OpenAI.ChatCompletionRequestMessageType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "developer", + "system", + "user", + "assistant", + "tool", + "function" + ] + } + ] + }, + "OpenAI.ChatCompletionRequestSystemMessage": { + "type": "object", + "required": [ + "content", + "role" + ], + "properties": { + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestSystemMessageContentPart" + } + } + ], + "description": "The contents of the system message." + }, + "role": { + "type": "string", + "enum": [ + "system" + ], + "description": "The role of the messages author, in this case `system`.", + "x-stainless-const": true + }, + "name": { + "type": "string", + "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + } + ], + "description": "Developer-provided instructions that the model should follow, regardless of\nmessages sent by the user. With o1 models and newer, use `developer` messages\nfor this purpose instead.", + "title": "System message", + "x-stainless-naming": { + "go": { + "variant_constructor": "SystemMessage" + } + } + }, + "OpenAI.ChatCompletionRequestSystemMessageContentPart": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + }, + "OpenAI.ChatCompletionRequestToolMessage": { + "type": "object", + "required": [ + "role", + "content", + "tool_call_id" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "tool" + ], + "description": "The role of the messages author, in this case `tool`.", + "x-stainless-const": true + }, + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestToolMessageContentPart" + } + } + ], + "description": "The contents of the tool message." + }, + "tool_call_id": { + "type": "string", + "description": "Tool call that this message is responding to." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + } + ], + "title": "Tool message", + "x-stainless-naming": { + "go": { + "variant_constructor": "ToolMessage" + } + } + }, + "OpenAI.ChatCompletionRequestToolMessageContentPart": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + }, + "OpenAI.ChatCompletionRequestUserMessage": { + "type": "object", + "required": [ + "content", + "role" + ], + "properties": { + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart" + } + } + ], + "description": "The contents of the user message." + }, + "role": { + "type": "string", + "enum": [ + "user" + ], + "description": "The role of the messages author, in this case `user`.", + "x-stainless-const": true + }, + "name": { + "type": "string", + "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + } + ], + "description": "Messages sent by an end user, containing prompts or additional context\ninformation.", + "title": "User message", + "x-stainless-naming": { + "go": { + "variant_constructor": "UserMessage" + } + } + }, + "OpenAI.ChatCompletionRequestUserMessageContentPart": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPartType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "image_url": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImage", + "input_audio": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudio", + "file": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFile" + } + } + }, + "OpenAI.ChatCompletionRequestUserMessageContentPartType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "text", + "image_url", + "input_audio", + "file" + ] + } + ] + }, + "OpenAI.ChatCompletionResponseMessage": { + "type": "object", + "required": [ + "content", + "refusal", + "role" + ], + "properties": { + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "refusal": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tool_calls": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCallsItem" + }, + "annotations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionResponseMessageAnnotations" + }, + "description": "Annotations for the message, when applicable, as when using the\n [web search tool](https://platform.openai.com/docs/guides/tools-web-search?api-mode=chat)." + }, + "role": { + "type": "string", + "enum": [ + "assistant" + ], + "description": "The role of the author of this message.", + "x-stainless-const": true + }, + "function_call": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionResponseMessageFunctionCall" + } + ], + "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model." + }, + "audio": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionResponseMessageAudio" + }, + { + "type": "null" + } + ] + }, + "reasoning_content": { + "type": "string", + "description": "An Azure-specific extension property containing generated reasoning content from supported models." + } + }, + "description": "If the audio output modality is requested, this object contains data\nabout the audio response from the model." + }, + "OpenAI.ChatCompletionResponseMessageAnnotations": { + "type": "object", + "required": [ + "type", + "url_citation" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "url_citation" + ], + "x-stainless-const": true + }, + "url_citation": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionResponseMessageAnnotationsUrlCitation" + } + } + }, + "OpenAI.ChatCompletionResponseMessageAnnotationsUrlCitation": { + "type": "object", + "required": [ + "end_index", + "start_index", + "url", + "title" + ], + "properties": { + "end_index": { + "type": "integer" + }, + "start_index": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionResponseMessageAudio": { + "type": "object", + "required": [ + "id", + "expires_at", + "data", + "transcript" + ], + "properties": { + "id": { + "type": "string" + }, + "expires_at": { + "type": "integer", + "format": "unixtime" + }, + "data": { + "type": "string" + }, + "transcript": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionResponseMessageFunctionCall": { + "type": "object", + "required": [ + "arguments", + "name" + ], + "properties": { + "arguments": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionStreamOptions": { + "type": "object", + "properties": { + "include_usage": { + "type": "boolean", + "description": "If set, an additional chunk will be streamed before the `data: [DONE]`\n message. The `usage` field on this chunk shows the token usage statistics\n for the entire request, and the `choices` field will always be an empty\n array.\n\n All other chunks will also include a `usage` field, but with a null\n value. **NOTE:** If the stream is interrupted, you may not receive the\n final usage chunk which contains the total token usage for the request." + }, + "include_obfuscation": { + "type": "boolean", + "description": "When true, stream obfuscation will be enabled. Stream obfuscation adds\n random characters to an `obfuscation` field on streaming delta events to\n normalize payload sizes as a mitigation to certain side-channel attacks.\n These obfuscation fields are included by default, but add a small amount\n of overhead to the data stream. You can set `include_obfuscation` to\n false to optimize for bandwidth if you trust the network links between\n your application and the OpenAI API." + } + }, + "description": "Options for streaming response. Only set this when you set `stream: true`." + }, + "OpenAI.ChatCompletionStreamResponseDelta": { + "type": "object", + "properties": { + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "function_call": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamResponseDeltaFunctionCall" + } + ], + "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model." + }, + "tool_calls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunk" + } + }, + "role": { + "type": "string", + "enum": [ + "developer", + "system", + "user", + "assistant", + "tool" + ], + "description": "The role of the author of this message." + }, + "refusal": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "reasoning_content": { + "type": "string", + "description": "An Azure-specific extension property containing generated reasoning content from supported models." + } + }, + "description": "A chat completion delta generated by streamed model responses." + }, + "OpenAI.ChatCompletionStreamResponseDeltaFunctionCall": { + "type": "object", + "properties": { + "arguments": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "OpenAI.ChatCompletionTokenLogprob": { + "type": "object", + "required": [ + "token", + "logprob", + "bytes", + "top_logprobs" + ], + "properties": { + "token": { + "type": "string", + "description": "The token." + }, + "logprob": { + "type": "number", + "description": "The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely." + }, + "bytes": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "integer" + } + }, + { + "type": "null" + } + ] + }, + "top_logprobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprobTopLogprobs" + }, + "description": "List of the most likely tokens and their log probability, at this token position. In rare cases, there may be fewer than the number of requested `top_logprobs` returned." + } + } + }, + "OpenAI.ChatCompletionTokenLogprobTopLogprobs": { + "type": "object", + "required": [ + "token", + "logprob", + "bytes" + ], + "properties": { + "token": { + "type": "string" + }, + "logprob": { + "type": "number" + }, + "bytes": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "integer" + } + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.ChatCompletionTool": { + "type": "object", + "required": [ + "type", + "function" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "function" + ], + "description": "The type of the tool. Currently, only `function` is supported.", + "x-stainless-const": true + }, + "function": { + "$ref": "#/components/schemas/OpenAI.FunctionObject" + } + }, + "description": "A function tool that can be used to generate a response.", + "title": "Function tool" + }, + "OpenAI.ChatCompletionToolChoiceOption": { + "anyOf": [ + { + "type": "string", + "enum": [ + "none", + "auto", + "required" + ] + }, + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionAllowedToolsChoice" + }, + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionNamedToolChoice" + }, + { + "$ref": "#/components/schemas/OpenAI.ChatCompletionNamedToolChoiceCustom" + } + ], + "description": "Controls which (if any) tool is called by the model.\n`none` means the model will not call any tool and instead generates a message.\n`auto` means the model can pick between generating a message or calling one or more tools.\n`required` means the model must call one or more tools.\nSpecifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces the model to call that tool.\n\n`none` is the default when no tools are present. `auto` is the default if tools are present.", + "x-stainless-go-variant-constructor": { + "naming": "tool_choice_option_{variant}" + } + }, + "OpenAI.ChunkingStrategyRequestParam": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParamType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "auto": "#/components/schemas/OpenAI.AutoChunkingStrategyRequestParam", + "static": "#/components/schemas/OpenAI.StaticChunkingStrategyRequestParam" + } + }, + "description": "The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. Only applicable if `file_ids` is non-empty." + }, + "OpenAI.ChunkingStrategyRequestParamType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "auto", + "static" + ] + } + ] + }, + "OpenAI.ChunkingStrategyResponse": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponseType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "static": "#/components/schemas/OpenAI.StaticChunkingStrategyResponseParam", + "other": "#/components/schemas/OpenAI.OtherChunkingStrategyResponseParam" + } + }, + "description": "The strategy used to chunk the file." + }, + "OpenAI.ChunkingStrategyResponseType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "static", + "other" + ] + } + ] + }, + "OpenAI.ClickButtonType": { + "type": "string", + "enum": [ + "left", + "right", + "wheel", + "back", + "forward" + ] + }, + "OpenAI.ClickParam": { + "type": "object", + "required": [ + "type", + "button", + "x", + "y" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "click" + ], + "description": "Specifies the event type. For a click action, this property is always `click`.", + "x-stainless-const": true, + "default": "click" + }, + "button": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ClickButtonType" + } + ], + "description": "Indicates which mouse button was pressed during the click. One of `left`, `right`, `wheel`, `back`, or `forward`." + }, + "x": { + "type": "integer", + "description": "The x-coordinate where the click occurred." + }, + "y": { + "type": "integer", + "description": "The y-coordinate where the click occurred." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + } + ], + "description": "A click action.", + "title": "Click" + }, + "OpenAI.CodeInterpreterContainerAuto": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "auto" + ], + "description": "Always `auto`.", + "x-stainless-const": true, + "default": "auto" + }, + "file_ids": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 50, + "description": "An optional list of uploaded files to make available to your code." + }, + "memory_limit": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ContainerMemoryLimit" + }, + { + "type": "null" + } + ] + } + }, + "description": "Configuration for a code interpreter container. Optionally specify the IDs of the files to run the code on.", + "title": "CodeInterpreterToolAuto", + "x-stainless-naming": { + "go": { + "type_name": "ToolCodeInterpreterContainerCodeInterpreterContainerAuto" + } + } + }, + "OpenAI.CodeInterpreterOutputImage": { + "type": "object", + "required": [ + "type", + "url" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "image" + ], + "description": "The type of the output. Always `image`.", + "x-stainless-const": true, + "default": "image" + }, + "url": { + "type": "string", + "description": "The URL of the image output from the code interpreter." + } + }, + "description": "The image output from the code interpreter.", + "title": "Code interpreter output image" + }, + "OpenAI.CodeInterpreterOutputLogs": { + "type": "object", + "required": [ + "type", + "logs" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "logs" + ], + "description": "The type of the output. Always `logs`.", + "x-stainless-const": true, + "default": "logs" + }, + "logs": { + "type": "string", + "description": "The logs output from the code interpreter." + } + }, + "description": "The logs output from the code interpreter.", + "title": "Code interpreter output logs" + }, + "OpenAI.CodeInterpreterTool": { + "type": "object", + "required": [ + "type", + "container" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "code_interpreter" + ], + "description": "The type of the code interpreter tool. Always `code_interpreter`.", + "x-stainless-const": true + }, + "container": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterContainerAuto" + } + ], + "description": "The code interpreter container. Can be a container ID or an object that\n specifies uploaded file IDs to make available to your code, along with an\n optional `memory_limit` setting." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Tool" + } + ], + "description": "A tool that runs Python code to help generate a response to a prompt.", + "title": "Code interpreter" + }, + "OpenAI.CompactionBody": { + "type": "object", + "required": [ + "type", + "id", + "encrypted_content" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "compaction" + ], + "description": "The type of the item. Always `compaction`.", + "x-stainless-const": true, + "default": "compaction" + }, + "id": { + "type": "string", + "description": "The unique ID of the compaction item." + }, + "encrypted_content": { + "type": "string" + }, + "created_by": { + "type": "string" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ], + "description": "A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact).", + "title": "Compaction item" + }, + "OpenAI.ComparisonFilter": { + "type": "object", + "required": [ + "type", + "key", + "value" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "eq", + "ne", + "gt", + "gte", + "lt", + "lte" + ], + "description": "Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.\n - `eq`: equals\n - `ne`: not equal\n - `gt`: greater than\n - `gte`: greater than or equal\n - `lt`: less than\n - `lte`: less than or equal\n - `in`: in\n - `nin`: not in", + "default": "eq" + }, + "key": { + "type": "string", + "description": "The key to compare against the value." + }, + "value": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ComparisonFilterValueItems" + } + } + ], + "description": "The value to compare against the attribute key; supports string, number, or boolean types." + } + }, + "description": "A filter used to compare a specified attribute key to a given value using a defined comparison operation.", + "title": "Comparison Filter", + "x-oaiMeta": { + "name": "ComparisonFilter" + } + }, + "OpenAI.ComparisonFilterValueItems": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "OpenAI.CompletionUsage": { + "type": "object", + "required": [ + "completion_tokens", + "prompt_tokens", + "total_tokens" + ], + "properties": { + "completion_tokens": { + "type": "integer", + "description": "Number of tokens in the generated completion." + }, + "prompt_tokens": { + "type": "integer", + "description": "Number of tokens in the prompt." + }, + "total_tokens": { + "type": "integer", + "description": "Total number of tokens used in the request (prompt + completion)." + }, + "completion_tokens_details": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.CompletionUsageCompletionTokensDetails" + } + ], + "description": "Breakdown of tokens used in a completion." + }, + "prompt_tokens_details": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.CompletionUsagePromptTokensDetails" + } + ], + "description": "Breakdown of tokens used in the prompt." + } + }, + "description": "Usage statistics for the completion request." + }, + "OpenAI.CompletionUsageCompletionTokensDetails": { + "type": "object", + "properties": { + "accepted_prediction_tokens": { + "type": "integer" + }, + "audio_tokens": { + "type": "integer" + }, + "reasoning_tokens": { + "type": "integer" + }, + "rejected_prediction_tokens": { + "type": "integer" + } + } + }, + "OpenAI.CompletionUsagePromptTokensDetails": { + "type": "object", + "properties": { + "audio_tokens": { + "type": "integer" + }, + "cached_tokens": { + "type": "integer" + } + } + }, + "OpenAI.CompoundFilter": { + "type": "object", + "required": [ + "type", + "filters" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "and", + "or" + ], + "description": "Type of operation: `and` or `or`." + }, + "filters": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComparisonFilter" + }, + {} + ] + }, + "description": "Array of filters to combine. Items can be `ComparisonFilter` or `CompoundFilter`." + } + }, + "description": "Combine multiple filters using `and` or `or`.", + "title": "Compound Filter", + "x-oaiMeta": { + "name": "CompoundFilter" + } + }, + "OpenAI.ComputerAction": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ComputerActionType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "click": "#/components/schemas/OpenAI.ClickParam", + "double_click": "#/components/schemas/OpenAI.DoubleClickAction", + "drag": "#/components/schemas/OpenAI.Drag", + "keypress": "#/components/schemas/OpenAI.KeyPressAction", + "move": "#/components/schemas/OpenAI.Move", + "screenshot": "#/components/schemas/OpenAI.Screenshot", + "scroll": "#/components/schemas/OpenAI.Scroll", + "type": "#/components/schemas/OpenAI.Type", + "wait": "#/components/schemas/OpenAI.Wait" + } + } + }, + "OpenAI.ComputerActionType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "click", + "double_click", + "drag", + "keypress", + "move", + "screenshot", + "scroll", + "type", + "wait" + ] + } + ] + }, + "OpenAI.ComputerCallSafetyCheckParam": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the pending safety check." + }, + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "message": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "description": "A pending safety check for the computer call." + }, + "OpenAI.ComputerEnvironment": { + "type": "string", + "enum": [ + "windows", + "mac", + "linux", + "ubuntu", + "browser" + ] + }, + "OpenAI.ComputerScreenshotContent": { + "type": "object", + "required": [ + "type", + "image_url", + "file_id" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_screenshot" + ], + "description": "Specifies the event type. For a computer screenshot, this property is always set to `computer_screenshot`.", + "x-stainless-const": true, + "default": "computer_screenshot" + }, + "image_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "description": "A screenshot of a computer.", + "title": "Computer screenshot" + }, + "OpenAI.ComputerScreenshotImage": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_screenshot" + ], + "description": "Specifies the event type. For a computer screenshot, this property is\n always set to `computer_screenshot`.", + "x-stainless-const": true, + "default": "computer_screenshot" + }, + "image_url": { + "type": "string", + "description": "The URL of the screenshot image." + }, + "file_id": { + "type": "string", + "description": "The identifier of an uploaded file that contains the screenshot." + } + }, + "description": "A computer screenshot image used with the computer use tool." + }, + "OpenAI.ComputerToolCallOutputResource": { + "type": "object", + "required": [ + "type", + "call_id", + "output" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_call_output" + ], + "description": "The type of the computer tool call output. Always `computer_call_output`.", + "x-stainless-const": true, + "default": "computer_call_output" + }, + "id": { + "type": "string", + "description": "The ID of the computer tool call output." + }, + "call_id": { + "type": "string", + "description": "The ID of the computer tool call that produced the output." + }, + "acknowledged_safety_checks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ComputerCallSafetyCheckParam" + }, + "description": "The safety checks reported by the API that have been acknowledged by the\n developer." + }, + "output": { + "$ref": "#/components/schemas/OpenAI.ComputerScreenshotImage" + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the message input. One of `in_progress`, `completed`, or\n `incomplete`. Populated when input items are returned via API." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] + }, + "OpenAI.ComputerUsePreviewTool": { + "type": "object", + "required": [ + "type", + "environment", + "display_width", + "display_height" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_use_preview" + ], + "description": "The type of the computer use tool. Always `computer_use_preview`.", + "x-stainless-const": true, + "default": "computer_use_preview" + }, + "environment": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComputerEnvironment" + } + ], + "description": "The type of computer environment to control." + }, + "display_width": { + "type": "integer", + "description": "The width of the computer display." + }, + "display_height": { + "type": "integer", + "description": "The height of the computer display." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Tool" + } + ], + "description": "A tool that controls a virtual computer. Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use).", + "title": "Computer use preview" + }, + "OpenAI.ContainerFileCitationBody": { + "type": "object", + "required": [ + "type", + "container_id", + "file_id", + "start_index", + "end_index", + "filename" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "container_file_citation" + ], + "description": "The type of the container file citation. Always `container_file_citation`.", + "x-stainless-const": true, + "default": "container_file_citation" + }, + "container_id": { + "type": "string", + "description": "The ID of the container file." + }, + "file_id": { + "type": "string", + "description": "The ID of the file." + }, + "start_index": { + "type": "integer", + "description": "The index of the first character of the container file citation in the message." + }, + "end_index": { + "type": "integer", + "description": "The index of the last character of the container file citation in the message." + }, + "filename": { + "type": "string", + "description": "The filename of the container file cited." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Annotation" + } + ], + "description": "A citation for a container file used to generate a model response.", + "title": "Container file citation" + }, + "OpenAI.ContainerFileListResource": { + "type": "object", + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "list" + ], + "description": "The type of object returned, must be 'list'." + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ContainerFileResource" + }, + "description": "A list of container files." + }, + "first_id": { + "type": "string", + "description": "The ID of the first file in the list." + }, + "last_id": { + "type": "string", + "description": "The ID of the last file in the list." + }, + "has_more": { + "type": "boolean", + "description": "Whether there are more files available." + } + } + }, + "OpenAI.ContainerFileResource": { + "type": "object", + "required": [ + "id", + "object", + "container_id", + "created_at", + "bytes", + "path", + "source" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the file." + }, + "object": { + "type": "string", + "enum": [ + "container.file" + ], + "description": "The type of this object (`container.file`)." + }, + "container_id": { + "type": "string", + "description": "The container this file belongs to." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) when the file was created." + }, + "bytes": { + "type": "integer", + "description": "Size of the file in bytes." + }, + "path": { + "type": "string", + "description": "Path of the file in the container." + }, + "source": { + "type": "string", + "description": "Source of the file (e.g., `user`, `assistant`)." + } + }, + "title": "The container file object", + "x-oaiMeta": { + "name": "The container file object", + "example": "{\n \"id\": \"cfile_682e0e8a43c88191a7978f477a09bdf5\",\n \"object\": \"container.file\",\n \"created_at\": 1747848842,\n \"bytes\": 880,\n \"container_id\": \"cntr_682e0e7318108198aa783fd921ff305e08e78805b9fdbb04\",\n \"path\": \"/mnt/data/88e12fa445d32636f190a0b33daed6cb-tsconfig.json\",\n \"source\": \"user\"\n}\n" + } + }, + "OpenAI.ContainerListResource": { + "type": "object", + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "list" + ], + "description": "The type of object returned, must be 'list'." + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ContainerResource" + }, + "description": "A list of containers." + }, + "first_id": { + "type": "string", + "description": "The ID of the first container in the list." + }, + "last_id": { + "type": "string", + "description": "The ID of the last container in the list." + }, + "has_more": { + "type": "boolean", + "description": "Whether there are more containers available." + } + } + }, + "OpenAI.ContainerMemoryLimit": { + "type": "string", + "enum": [ + "1g", + "4g", + "16g", + "64g" + ] + }, + "OpenAI.ContainerResource": { + "type": "object", + "required": [ + "id", + "object", + "name", + "created_at", + "status" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the container." + }, + "object": { + "type": "string", + "description": "The type of this object." + }, + "name": { + "type": "string", + "description": "Name of the container." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) when the container was created." + }, + "status": { + "type": "string", + "description": "Status of the container (e.g., active, deleted)." + }, + "last_active_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) when the container was last active." + }, + "expires_after": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ContainerResourceExpiresAfter" + } + ], + "description": "The container will expire after this time period.\n The anchor is the reference point for the expiration.\n The minutes is the number of minutes after the anchor before the container expires." + }, + "memory_limit": { + "type": "string", + "enum": [ + "1g", + "4g", + "16g", + "64g" + ], + "description": "The memory limit configured for the container." + } + }, + "title": "The container object", + "x-oaiMeta": { + "name": "The container object", + "example": "{\n \"id\": \"cntr_682dfebaacac8198bbfe9c2474fb6f4a085685cbe3cb5863\",\n \"object\": \"container\",\n \"created_at\": 1747844794,\n \"status\": \"running\",\n \"expires_after\": {\n \"anchor\": \"last_active_at\",\n \"minutes\": 20\n },\n \"last_active_at\": 1747844794,\n \"memory_limit\": \"1g\",\n \"name\": \"My Container\"\n}\n" + } + }, + "OpenAI.ContainerResourceExpiresAfter": { + "type": "object", + "properties": { + "anchor": { + "type": "string", + "enum": [ + "last_active_at" + ] + }, + "minutes": { + "type": "integer" + } + } + }, + "OpenAI.Conversation": { + "type": "object", + "required": [ + "id", + "object", + "metadata", + "created_at" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the conversation." + }, + "object": { + "type": "string", + "enum": [ + "conversation" + ], + "description": "The object type, which is always `conversation`.", + "x-stainless-const": true, + "default": "conversation" + }, + "metadata": { + "description": "Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.\n Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The time at which the conversation was created, measured in seconds since the Unix epoch." + } + }, + "title": "The conversation object", + "x-oaiMeta": { + "name": "The conversation object", + "group": "conversations" + } + }, + "OpenAI.ConversationItem": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ConversationItemType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "message": "#/components/schemas/OpenAI.Message", + "function_call": "#/components/schemas/OpenAI.ConversationItemFunctionToolCallResource", + "function_call_output": "#/components/schemas/OpenAI.ConversationItemFunctionToolCallOutputResource", + "file_search_call": "#/components/schemas/OpenAI.ConversationItemFileSearchToolCall", + "web_search_call": "#/components/schemas/OpenAI.ConversationItemWebSearchToolCall", + "image_generation_call": "#/components/schemas/OpenAI.ConversationItemImageGenToolCall", + "computer_call": "#/components/schemas/OpenAI.ConversationItemComputerToolCall", + "computer_call_output": "#/components/schemas/OpenAI.ConversationItemComputerToolCallOutputResource", + "reasoning": "#/components/schemas/OpenAI.ConversationItemReasoningItem", + "code_interpreter_call": "#/components/schemas/OpenAI.ConversationItemCodeInterpreterToolCall", + "local_shell_call": "#/components/schemas/OpenAI.ConversationItemLocalShellToolCall", + "local_shell_call_output": "#/components/schemas/OpenAI.ConversationItemLocalShellToolCallOutput", + "shell_call": "#/components/schemas/OpenAI.ConversationItemFunctionShellCall", + "shell_call_output": "#/components/schemas/OpenAI.ConversationItemFunctionShellCallOutput", + "apply_patch_call": "#/components/schemas/OpenAI.ConversationItemApplyPatchToolCall", + "apply_patch_call_output": "#/components/schemas/OpenAI.ConversationItemApplyPatchToolCallOutput", + "mcp_list_tools": "#/components/schemas/OpenAI.ConversationItemMCPListTools", + "mcp_approval_request": "#/components/schemas/OpenAI.ConversationItemMCPApprovalRequest", + "mcp_approval_response": "#/components/schemas/OpenAI.ConversationItemMCPApprovalResponseResource", + "mcp_call": "#/components/schemas/OpenAI.ConversationItemMCPToolCall", + "custom_tool_call": "#/components/schemas/OpenAI.ConversationItemCustomToolCall", + "custom_tool_call_output": "#/components/schemas/OpenAI.ConversationItemCustomToolCallOutput" + } + }, + "description": "A single item within a conversation. The set of possible types are the same as the `output` type of a [Response object](https://platform.openai.com/docs/api-reference/responses/object#responses/object-output).", + "title": "Conversation item" + }, + "OpenAI.ConversationItemApplyPatchToolCall": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "status", + "operation" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch_call" + ], + "description": "The type of the item. Always `apply_patch_call`.", + "x-stainless-const": true, + "default": "apply_patch_call" + }, + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchCallStatus" + } + ], + "description": "The status of the apply patch tool call. One of `in_progress` or `completed`." + }, + "operation": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperation" + } + ], + "description": "One of the create_file, delete_file, or update_file operations applied via apply_patch." + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemApplyPatchToolCallOutput": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "status" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "apply_patch_call_output" + ], + "description": "The type of the item. Always `apply_patch_call_output`.", + "x-stainless-const": true, + "default": "apply_patch_call_output" + }, + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call output. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchCallOutputStatus" + } + ], + "description": "The status of the apply patch tool call output. One of `completed` or `failed`." + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call output." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemCodeInterpreterToolCall": { + "type": "object", + "required": [ + "type", + "id", + "status", + "container_id", + "code", + "outputs" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "code_interpreter_call" + ], + "description": "The type of the code interpreter tool call. Always `code_interpreter_call`.", + "x-stainless-const": true, + "default": "code_interpreter_call" + }, + "id": { + "type": "string", + "description": "The unique ID of the code interpreter tool call." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete", + "interpreting", + "failed" + ], + "description": "The status of the code interpreter tool call. Valid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`." + }, + "container_id": { + "type": "string", + "description": "The ID of the container used to run the code." + }, + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "outputs": { + "anyOf": [ + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputLogs" + }, + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputImage" + } + ] + } + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemComputerToolCall": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "action", + "pending_safety_checks", + "status" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_call" + ], + "description": "The type of the computer call. Always `computer_call`.", + "default": "computer_call" + }, + "id": { + "type": "string", + "description": "The unique ID of the computer call." + }, + "call_id": { + "type": "string", + "description": "An identifier used when responding to the tool call with output." + }, + "action": { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + }, + "pending_safety_checks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ComputerCallSafetyCheckParam" + }, + "description": "The pending safety checks for the computer call." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemComputerToolCallOutputResource": { + "type": "object", + "required": [ + "type", + "call_id", + "output" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "computer_call_output" + ], + "description": "The type of the computer tool call output. Always `computer_call_output`.", + "x-stainless-const": true, + "default": "computer_call_output" + }, + "id": { + "type": "string", + "description": "The ID of the computer tool call output." + }, + "call_id": { + "type": "string", + "description": "The ID of the computer tool call that produced the output." + }, + "acknowledged_safety_checks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ComputerCallSafetyCheckParam" + }, + "description": "The safety checks reported by the API that have been acknowledged by the\n developer." + }, + "output": { + "$ref": "#/components/schemas/OpenAI.ComputerScreenshotImage" + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the message input. One of `in_progress`, `completed`, or\n `incomplete`. Populated when input items are returned via API." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemCustomToolCall": { + "type": "object", + "required": [ + "type", + "call_id", + "name", + "input" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom_tool_call" + ], + "description": "The type of the custom tool call. Always `custom_tool_call`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the custom tool call in the OpenAI platform." + }, + "call_id": { + "type": "string", + "description": "An identifier used to map this custom tool call to a tool call output." + }, + "name": { + "type": "string", + "description": "The name of the custom tool being called." + }, + "input": { + "type": "string", + "description": "The input for the custom tool call generated by the model." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemCustomToolCallOutput": { + "type": "object", + "required": [ + "type", + "call_id", + "output" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom_tool_call_output" + ], + "description": "The type of the custom tool call output. Always `custom_tool_call_output`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the custom tool call output in the OpenAI platform." + }, + "call_id": { + "type": "string", + "description": "The call ID, used to map this custom tool call output to a custom tool call." + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FunctionAndCustomToolCallOutput" + } + } + ], + "description": "The output from the custom tool call generated by your code.\n Can be a string or an list of output content." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemFileSearchToolCall": { + "type": "object", + "required": [ + "id", + "type", + "status", + "queries" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the file search tool call." + }, + "type": { + "type": "string", + "enum": [ + "file_search_call" + ], + "description": "The type of the file search tool call. Always `file_search_call`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "searching", + "completed", + "incomplete", + "failed" + ], + "description": "The status of the file search tool call. One of `in_progress`,\n `searching`, `incomplete` or `failed`," + }, + "queries": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The queries used to search for files." + }, + "results": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FileSearchToolCallResults" + } + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemFunctionShellCall": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "action", + "status" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "shell_call" + ], + "description": "The type of the item. Always `shell_call`.", + "x-stainless-const": true, + "default": "shell_call" + }, + "id": { + "type": "string", + "description": "The unique ID of the shell tool call. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the shell tool call generated by the model." + }, + "action": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FunctionShellAction" + } + ], + "description": "The shell commands and limits that describe how to run the tool call." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.LocalShellCallStatus" + } + ], + "description": "The status of the shell call. One of `in_progress`, `completed`, or `incomplete`." + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemFunctionShellCallOutput": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "output", + "max_output_length" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "shell_call_output" + ], + "description": "The type of the shell call output. Always `shell_call_output`.", + "x-stainless-const": true, + "default": "shell_call_output" + }, + "id": { + "type": "string", + "description": "The unique ID of the shell call output. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the shell tool call generated by the model." + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputContent" + }, + "description": "An array of shell call output contents" + }, + "max_output_length": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "created_by": { + "type": "string" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemFunctionToolCallOutputResource": { + "type": "object", + "required": [ + "type", + "call_id", + "output" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the function tool call output. Populated when this item\n is returned via API." + }, + "type": { + "type": "string", + "enum": [ + "function_call_output" + ], + "description": "The type of the function tool call output. Always `function_call_output`.", + "x-stainless-const": true + }, + "call_id": { + "type": "string", + "description": "The unique ID of the function tool call generated by the model." + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FunctionAndCustomToolCallOutput" + } + } + ], + "description": "The output from the function call generated by your code.\n Can be a string or an list of output content." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemFunctionToolCallResource": { + "type": "object", + "required": [ + "type", + "call_id", + "name", + "arguments" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the function tool call." + }, + "type": { + "type": "string", + "enum": [ + "function_call" + ], + "description": "The type of the function tool call. Always `function_call`.", + "x-stainless-const": true + }, + "call_id": { + "type": "string", + "description": "The unique ID of the function tool call generated by the model." + }, + "name": { + "type": "string", + "description": "The name of the function to run." + }, + "arguments": { + "type": "string", + "description": "A JSON string of the arguments to pass to the function." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemImageGenToolCall": { + "type": "object", + "required": [ + "type", + "id", + "status", + "result" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "image_generation_call" + ], + "description": "The type of the image generation call. Always `image_generation_call`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the image generation call." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "generating", + "failed" + ], + "description": "The status of the image generation call." + }, + "result": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemList": { + "type": "object", + "required": [ + "object", + "data", + "has_more", + "first_id", + "last_id" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "list" + ], + "description": "The type of object returned, must be `list`.", + "x-stainless-const": true + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + }, + "description": "A list of conversation items." + }, + "has_more": { + "type": "boolean", + "description": "Whether there are more items available." + }, + "first_id": { + "type": "string", + "description": "The ID of the first item in the list." + }, + "last_id": { + "type": "string", + "description": "The ID of the last item in the list." + } + }, + "description": "A list of Conversation items.", + "title": "The conversation item list", + "x-oaiMeta": { + "name": "The item list", + "group": "conversations" + } + }, + "OpenAI.ConversationItemLocalShellToolCall": { + "type": "object", + "required": [ + "type", + "id", + "call_id", + "action", + "status" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "local_shell_call" + ], + "description": "The type of the local shell call. Always `local_shell_call`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the local shell call." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the local shell tool call generated by the model." + }, + "action": { + "$ref": "#/components/schemas/OpenAI.LocalShellExecAction" + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the local shell call." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemLocalShellToolCallOutput": { + "type": "object", + "required": [ + "type", + "id", + "output" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "local_shell_call_output" + ], + "description": "The type of the local shell tool call output. Always `local_shell_call_output`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the local shell tool call generated by the model." + }, + "output": { + "type": "string", + "description": "A JSON string of the output of the local shell tool call." + }, + "status": { + "anyOf": [ + { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ] + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemMCPApprovalRequest": { + "type": "object", + "required": [ + "type", + "id", + "server_label", + "name", + "arguments" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_approval_request" + ], + "description": "The type of the item. Always `mcp_approval_request`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the approval request." + }, + "server_label": { + "type": "string", + "description": "The label of the MCP server making the request." + }, + "name": { + "type": "string", + "description": "The name of the tool to run." + }, + "arguments": { + "type": "string", + "description": "A JSON string of arguments for the tool." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemMCPApprovalResponseResource": { + "type": "object", + "required": [ + "type", + "id", + "approval_request_id", + "approve" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_approval_response" + ], + "description": "The type of the item. Always `mcp_approval_response`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the approval response" + }, + "approval_request_id": { + "type": "string", + "description": "The ID of the approval request being answered." + }, + "approve": { + "type": "boolean", + "description": "Whether the request was approved." + }, + "reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemMCPListTools": { + "type": "object", + "required": [ + "type", + "id", + "server_label", + "tools" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_list_tools" + ], + "description": "The type of the item. Always `mcp_list_tools`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the list." + }, + "server_label": { + "type": "string", + "description": "The label of the MCP server." + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.MCPListToolsTool" + }, + "description": "The tools available on the server." + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemMCPToolCall": { + "type": "object", + "required": [ + "type", + "id", + "server_label", + "name", + "arguments" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_call" + ], + "description": "The type of the item. Always `mcp_call`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the tool call." + }, + "server_label": { + "type": "string", + "description": "The label of the MCP server running the tool." + }, + "name": { + "type": "string", + "description": "The name of the tool that was run." + }, + "arguments": { + "type": "string", + "description": "A JSON string of the arguments passed to the tool." + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPToolCallStatus" + } + ], + "description": "The status of the tool call. One of `in_progress`, `completed`, `incomplete`, `calling`, or `failed`." + }, + "approval_request_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemReasoningItem": { + "type": "object", + "required": [ + "type", + "id", + "summary" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "reasoning" + ], + "description": "The type of the object. Always `reasoning`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique identifier of the reasoning content." + }, + "encrypted_content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "summary": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.Summary" + }, + "description": "Reasoning summary content." + }, + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ReasoningTextContent" + }, + "description": "Reasoning text content." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationItemType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "message", + "function_call", + "function_call_output", + "file_search_call", + "web_search_call", + "image_generation_call", + "computer_call", + "computer_call_output", + "reasoning", + "code_interpreter_call", + "local_shell_call", + "local_shell_call_output", + "shell_call", + "shell_call_output", + "apply_patch_call", + "apply_patch_call_output", + "mcp_list_tools", + "mcp_approval_request", + "mcp_approval_response", + "mcp_call", + "custom_tool_call", + "custom_tool_call_output" + ] + } + ] + }, + "OpenAI.ConversationItemWebSearchToolCall": { + "type": "object", + "required": [ + "id", + "type", + "status", + "action" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the web search tool call." + }, + "type": { + "type": "string", + "enum": [ + "web_search_call" + ], + "description": "The type of the web search tool call. Always `web_search_call`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "searching", + "completed", + "failed" + ], + "description": "The status of the web search tool call." + }, + "action": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionSearch" + }, + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionOpenPage" + }, + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionFind" + } + ], + "description": "An object describing the specific action taken in this web search call.\n Includes details on how the model used the web (search, open_page, find)." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ] + }, + "OpenAI.ConversationParam": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/OpenAI.ConversationParam-2" + } + ], + "description": "The conversation that this response belongs to. Items from this conversation are prepended to `input_items` for this response request.\nInput items and output items from this response are automatically added to this conversation after this response completes." + }, + "OpenAI.ConversationParam-2": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the conversation." + } + }, + "description": "The conversation that this response belongs to.", + "title": "Conversation object" + }, + "OpenAI.ConversationResource": { + "type": "object", + "required": [ + "id", + "object", + "metadata", + "created_at" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the conversation." + }, + "object": { + "type": "string", + "enum": [ + "conversation" + ], + "description": "The object type, which is always `conversation`.", + "x-stainless-const": true, + "default": "conversation" + }, + "metadata": { + "description": "Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.\n Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The time at which the conversation was created, measured in seconds since the Unix epoch." + } + } + }, + "OpenAI.CreateChatCompletionRequestAudio": { + "type": "object", + "required": [ + "voice", + "format" + ], + "properties": { + "voice": { + "$ref": "#/components/schemas/OpenAI.VoiceIdsShared" + }, + "format": { + "type": "string", + "enum": [ + "wav", + "aac", + "mp3", + "flac", + "opus", + "pcm16" + ] + } + } + }, + "OpenAI.CreateChatCompletionResponseChoices": { + "type": "object", + "required": [ + "finish_reason", + "index", + "message", + "logprobs" + ], + "properties": { + "finish_reason": { + "type": "string", + "enum": [ + "stop", + "length", + "tool_calls", + "content_filter", + "function_call" + ] + }, + "index": { + "type": "integer" + }, + "message": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionResponseMessage" + }, + "logprobs": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateChatCompletionResponseChoicesLogprobs" + }, + { + "type": "null" + } + ] + }, + "content_filter_results": { + "$ref": "#/components/schemas/AzureContentFilterResultForChoice" + } + } + }, + "OpenAI.CreateChatCompletionResponseChoicesLogprobs": { + "type": "object", + "required": [ + "content", + "refusal" + ], + "properties": { + "content": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" + } + }, + { + "type": "null" + } + ] + }, + "refusal": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" + } + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.CreateChatCompletionStreamResponseChoices": { + "type": "object", + "required": [ + "delta", + "finish_reason", + "index" + ], + "properties": { + "delta": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamResponseDelta" + }, + "logprobs": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateChatCompletionStreamResponseChoicesLogprobs" + }, + { + "type": "null" + } + ] + }, + "finish_reason": { + "anyOf": [ + { + "type": "string", + "enum": [ + "stop", + "length", + "tool_calls", + "content_filter", + "function_call" + ] + }, + { + "type": "null" + } + ] + }, + "index": { + "type": "integer" + } + } + }, + "OpenAI.CreateChatCompletionStreamResponseChoicesLogprobs": { + "type": "object", + "required": [ + "content", + "refusal" + ], + "properties": { + "content": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" + } + }, + { + "type": "null" + } + ] + }, + "refusal": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" + } + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.CreateCompletionResponseChoices": { + "type": "object", + "required": [ + "finish_reason", + "index", + "logprobs", + "text" + ], + "properties": { + "finish_reason": { + "type": "string", + "enum": [ + "stop", + "length", + "content_filter" + ] + }, + "index": { + "type": "integer", + "format": "int32" + }, + "logprobs": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateCompletionResponseChoicesLogprobs" + }, + { + "type": "null" + } + ] + }, + "text": { + "type": "string" + }, + "content_filter_results": { + "$ref": "#/components/schemas/AzureContentFilterResultForChoice" + } } - } - }, - "schemas": { - "AzureAIFoundryModelsApiVersion": { - "type": "string", - "enum": [ - "v1", - "preview" - ] }, - "AzureChatCompletionResponseMessage": { + "OpenAI.CreateCompletionResponseChoicesLogprobs": { "type": "object", - "required": [ - "content", - "refusal", - "role" - ], "properties": { - "content": { - "type": "string", - "nullable": true, - "description": "The contents of the message." + "text_offset": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } }, - "refusal": { - "type": "string", - "nullable": true, - "description": "The refusal message generated by the model." + "token_logprobs": { + "type": "array", + "items": { + "type": "number", + "format": "float" + } }, - "tool_calls": { - "$ref": "#/components/schemas/ChatCompletionMessageToolCallsItem", - "readOnly": true + "tokens": { + "type": "array", + "items": { + "type": "string" + } }, - "annotations": { + "top_logprobs": { "type": "array", "items": { "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "url_citation" - ], - "description": "The type of the URL citation. Always `url_citation`." - }, - "url_citation": { - "type": "object", - "properties": { - "end_index": { - "type": "integer", - "format": "int32", - "description": "The index of the last character of the URL citation in the message." - }, - "start_index": { - "type": "integer", - "format": "int32", - "description": "The index of the first character of the URL citation in the message." - }, - "url": { - "type": "string", - "format": "uri", - "description": "The URL of the web resource." - }, - "title": { - "type": "string", - "description": "The title of the web resource." - } - }, - "required": [ - "end_index", - "start_index", - "url", - "title" - ], - "description": "A URL citation when using web search." - } - }, - "required": [ - "type", - "url_citation" - ] + "unevaluatedProperties": { + "type": "number", + "format": "float" + } + } + } + } + }, + "OpenAI.CreateContainerBody": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "Name of the container to create." + }, + "file_ids": { + "type": "array", + "items": { + "type": "string" }, - "description": "Annotations for the message, when applicable, as when using the\n[web search tool](/docs/guides/tools-web-search?api-mode=chat)." + "description": "IDs of files to copy to the container." }, - "role": { + "expires_after": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateContainerBodyExpiresAfter" + } + ], + "description": "Container expiration time in seconds relative to the 'anchor' time." + }, + "memory_limit": { "type": "string", "enum": [ - "assistant" + "1g", + "4g", + "16g", + "64g" ], - "description": "The role of the author of this message." + "description": "Optional memory limit for the container. Defaults to \"1g\"." + } + } + }, + "OpenAI.CreateContainerBodyExpiresAfter": { + "type": "object", + "required": [ + "anchor", + "minutes" + ], + "properties": { + "anchor": { + "type": "string", + "enum": [ + "last_active_at" + ] }, - "function_call": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "required": [ - "name", - "arguments" - ], - "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model.", - "deprecated": true + "minutes": { + "type": "integer" + } + } + }, + "OpenAI.CreateContainerFileBody": { + "type": "object", + "properties": { + "file_id": { + "type": "string", + "description": "Name of the file to create." }, - "audio": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for this audio response." - }, - "expires_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when this audio response will\nno longer be accessible on the server for use in multi-turn\nconversations." - }, - "data": { - "type": "string", - "format": "base64", - "description": "Base64 encoded audio bytes generated by the model, in the format\nspecified in the request." + "file": { + "description": "The File object (not file name) to be uploaded." + } + }, + "required": [] + }, + "OpenAI.CreateConversationBody": { + "type": "object", + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" }, - "transcript": { - "type": "string", - "description": "Transcript of the audio generated by the model." + { + "type": "null" } - }, - "required": [ - "id", - "expires_at", - "data", - "transcript" - ], - "nullable": true, - "description": "If the audio output modality is requested, this object contains data\nabout the audio response from the model. [Learn more](/docs/guides/audio)." + ] }, - "context": { - "allOf": [ + "items": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputItem" + } + }, { - "$ref": "#/components/schemas/AzureChatMessageContext" + "type": "null" } - ], - "description": "The Azure-specific context information associated with the chat completion response message." - }, - "reasoning_content": { - "type": "string", - "description": "An Azure-specific extension property containing generated reasoning content from supported models." + ] } - }, - "description": "The extended response model component for chat completion response messages on the Azure OpenAI service.\nThis model adds support for chat message context, used by the On Your Data feature for intent, citations, and other\ninformation related to retrieval-augmented generation performed." + } }, - "AzureChatCompletionStreamResponseDelta": { + "OpenAI.CreateConversationItemsParametersBody": { "type": "object", + "required": [ + "items" + ], "properties": { - "audio": { - "allOf": [ + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputItem" + }, + "maxItems": 20 + } + } + }, + "OpenAI.CreateEmbeddingRequest": { + "type": "object", + "required": [ + "input", + "model" + ], + "properties": { + "input": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "array", + "items": { + "type": "integer" + } + }, { - "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageAudioChunk" + "type": "array", + "items": { + "type": "array", + "items": { + "type": "integer" + } + } } ], - "description": "Response audio associated with the streaming chat delta payload." + "description": "Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and any array must be 2048 dimensions or less. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens. In addition to the per-input token limit, all embedding models enforce a maximum of 300,000 tokens summed across all inputs in a single request." }, - "content": { + "model": { "type": "string", - "nullable": true, - "description": "The contents of the chunk message." + "description": "ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them.", + "x-oaiTypeLabel": "string" }, - "function_call": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "arguments": { - "type": "string" - } - }, - "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model.", - "deprecated": true + "encoding_format": { + "type": "string", + "enum": [ + "float", + "base64" + ], + "description": "The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/).", + "default": "float" }, - "tool_calls": { + "dimensions": { + "type": "integer", + "minimum": 1, + "description": "The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models." + }, + "user": { + "type": "string", + "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids)." + } + } + }, + "OpenAI.CreateEmbeddingResponse": { + "type": "object", + "required": [ + "data", + "model", + "object", + "usage" + ], + "properties": { + "data": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunk" + "$ref": "#/components/schemas/OpenAI.Embedding" }, - "readOnly": true + "description": "The list of embeddings generated by the model." }, - "role": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRole" - } - ], - "description": "The role of the author of this message." + "model": { + "type": "string", + "description": "The name of the model used to generate the embedding." }, - "refusal": { + "object": { "type": "string", - "nullable": true, - "description": "The refusal message generated by the model." + "enum": [ + "list" + ], + "description": "The object type, which is always \"list\".", + "x-stainless-const": true }, - "context": { + "usage": { "allOf": [ { - "$ref": "#/components/schemas/AzureChatMessageContext" + "$ref": "#/components/schemas/OpenAI.CreateEmbeddingResponseUsage" } ], - "description": "The Azure-specific context information associated with the chat completion response message." + "description": "The usage information for the request." + } + } + }, + "OpenAI.CreateEmbeddingResponseUsage": { + "type": "object", + "required": [ + "prompt_tokens", + "total_tokens" + ], + "properties": { + "prompt_tokens": { + "type": "integer" }, - "reasoning_content": { - "type": "string", - "description": "An Azure-specific extension property containing generated reasoning content from supported models." + "total_tokens": { + "type": "integer" } - }, - "description": "The extended response model for a streaming chat response message on the Azure OpenAI service.\nThis model adds support for chat message context, used by the On Your Data feature for intent, citations, and other\ninformation related to retrieval-augmented generation performed." + } }, - "AzureChatDataSource": { + "OpenAI.CreateEvalCompletionsRunDataSource": { "type": "object", "required": [ - "type" + "type", + "source" ], "properties": { "type": { - "allOf": [ + "type": "string", + "enum": [ + "completions" + ], + "description": "The type of run data source. Always `completions`.", + "default": "completions" + }, + "input_messages": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesTemplate" + }, { - "$ref": "#/components/schemas/AzureChatDataSourceType" + "$ref": "#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesItemReference" } ], - "description": "The differentiating type identifier for the data source." - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "azure_search": "#/components/schemas/AzureSearchChatDataSource", - "azure_cosmos_db": "#/components/schemas/AzureCosmosDBChatDataSource", - "elasticsearch": "#/components/schemas/ElasticsearchChatDataSource", - "pinecone": "#/components/schemas/PineconeChatDataSource", - "mongo_db": "#/components/schemas/MongoDBChatDataSource" + "description": "Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace." + }, + "sampling_params": { + "$ref": "#/components/schemas/AzureCompletionsSamplingParams" + }, + "model": { + "type": "string", + "description": "The name of the model to use for generating completions (e.g. \"o3-mini\")." + }, + "source": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileContentSource" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileIdSource" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalStoredCompletionsSource" + } + ], + "description": "Determines what populates the `item` namespace in this run's data source." } }, - "description": "A representation of configuration data for a single Azure OpenAI chat data source.\nThis will be used by a chat completions request that should use Azure OpenAI chat extensions to augment the\nresponse behavior.\nThe use of this configuration is compatible only with Azure OpenAI." + "description": "A CompletionsRunDataSource object describing a model sampling configuration.", + "title": "CompletionsRunDataSource", + "x-oaiMeta": { + "name": "The completions data source object used to configure an individual run", + "group": "eval runs", + "example": "{\n \"name\": \"gpt-4o-mini-2024-07-18\",\n \"data_source\": {\n \"type\": \"completions\",\n \"input_messages\": {\n \"type\": \"item_reference\",\n \"item_reference\": \"item.input\"\n },\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \"source\": {\n \"type\": \"stored_completions\",\n \"model\": \"gpt-4o-mini-2024-07-18\"\n }\n }\n}\n" + } }, - "AzureChatDataSourceAccessTokenAuthenticationOptions": { + "OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesItemReference": { "type": "object", "required": [ "type", - "access_token" + "item_reference" ], "properties": { "type": { "type": "string", "enum": [ - "access_token" + "item_reference" ] }, - "access_token": { + "item_reference": { "type": "string" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" - } - ] + } }, - "AzureChatDataSourceApiKeyAuthenticationOptions": { + "OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesTemplate": { "type": "object", "required": [ "type", - "key" + "template" ], "properties": { "type": { "type": "string", "enum": [ - "api_key" + "template" ] }, - "key": { - "type": "string" + "template": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.EasyInputMessage" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalItem" + } + ] + } } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" + } + }, + "OpenAI.CreateEvalCompletionsRunDataSourceSamplingParams": { + "type": "object", + "properties": { + "reasoning_effort": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + } + ], + "description": "Controls the level of reasoning effort applied during generation." + }, + "temperature": { + "type": "number", + "description": "A higher temperature increases randomness in the outputs.", + "default": 1 + }, + "max_completion_tokens": { + "type": "integer" + }, + "top_p": { + "type": "number", + "description": "An alternative to temperature for nucleus sampling; 1.0 includes all tokens.", + "default": 1 + }, + "seed": { + "type": "integer", + "description": "A seed value initializes the randomness during sampling.", + "default": 42 + }, + "response_format": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatText" + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchema" + }, + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonObject" + } + ] + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionTool" + } } - ] + } }, - "AzureChatDataSourceAuthenticationOptions": { + "OpenAI.CreateEvalCustomDataSourceConfig": { "type": "object", "required": [ - "type" + "type", + "item_schema" ], "properties": { "type": { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptionsType" + "type": "string", + "enum": [ + "custom" + ], + "description": "The type of data source. Always `custom`.", + "x-stainless-const": true, + "default": "custom" + }, + "item_schema": { + "type": "object", + "unevaluatedProperties": {}, + "description": "The json schema for each row in the data source." + }, + "include_sample_schema": { + "type": "boolean", + "description": "Whether the eval should expect you to populate the sample namespace (ie, by generating responses off of your data source)" } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "system_assigned_managed_identity": "#/components/schemas/AzureChatDataSourceSystemAssignedManagedIdentityAuthenticationOptions", - "user_assigned_managed_identity": "#/components/schemas/AzureChatDataSourceUserAssignedManagedIdentityAuthenticationOptions", - "access_token": "#/components/schemas/AzureChatDataSourceAccessTokenAuthenticationOptions", - "connection_string": "#/components/schemas/AzureChatDataSourceConnectionStringAuthenticationOptions", - "key_and_key_id": "#/components/schemas/AzureChatDataSourceKeyAndKeyIdAuthenticationOptions", - "encoded_api_key": "#/components/schemas/AzureChatDataSourceEncodedApiKeyAuthenticationOptions", - "username_and_password": "#/components/schemas/AzureChatDataSourceUsernameAndPasswordAuthenticationOptions" - } + "description": "A CustomDataSourceConfig object that defines the schema for the data source used for the evaluation runs.\nThis schema is used to define the shape of the data that will be:\n- Used to define your testing criteria and\n- What data is required when creating a run", + "title": "CustomDataSourceConfig", + "x-oaiMeta": { + "name": "The eval file data source config object", + "group": "evals", + "example": "{\n \"type\": \"custom\",\n \"item_schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\"type\": \"string\"},\n \"age\": {\"type\": \"integer\"}\n },\n \"required\": [\"name\", \"age\"]\n },\n \"include_sample_schema\": true\n}\n" } }, - "AzureChatDataSourceAuthenticationOptionsType": { - "type": "string", - "enum": [ - "api_key", - "username_and_password", - "connection_string", - "key_and_key_id", - "encoded_api_key", - "access_token", - "system_assigned_managed_identity", - "user_assigned_managed_identity" - ] + "OpenAI.CreateEvalItem": { + "type": "object", + "required": [ + "role", + "content" + ], + "properties": { + "role": { + "type": "string", + "description": "The role of the message (e.g. \"system\", \"assistant\", \"user\")." + }, + "content": { + "type": "string", + "description": "The content of the message." + } + }, + "description": "A chat message that makes up the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}.", + "title": "SimpleInputMessage", + "x-oaiMeta": { + "name": "The chat message object used to configure an individual run" + } }, - "AzureChatDataSourceConnectionStringAuthenticationOptions": { + "OpenAI.CreateEvalJsonlRunDataSource": { "type": "object", "required": [ "type", - "connection_string" + "source" ], "properties": { "type": { "type": "string", "enum": [ - "connection_string" - ] + "jsonl" + ], + "description": "The type of data source. Always `jsonl`.", + "x-stainless-const": true, + "default": "jsonl" }, - "connection_string": { - "type": "string" + "source": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileContentSource" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileIdSource" + } + ], + "description": "Determines what populates the `item` namespace in the data source." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" - } - ] + "description": "A JsonlRunDataSource object with that specifies a JSONL file that matches the eval", + "title": "JsonlRunDataSource", + "x-oaiMeta": { + "name": "The file data source object for the eval run configuration", + "group": "evals", + "example": "{\n \"type\": \"jsonl\",\n \"source\": {\n \"type\": \"file_id\",\n \"id\": \"file-9GYS6xbkWgWhmE7VoLUWFg\"\n }\n}\n" + } }, - "AzureChatDataSourceDeploymentNameVectorizationSource": { + "OpenAI.CreateEvalLabelModelGrader": { "type": "object", "required": [ "type", - "deployment_name" + "name", + "model", + "input", + "labels", + "passing_labels" ], "properties": { "type": { "type": "string", "enum": [ - "deployment_name" + "label_model" ], - "description": "The type identifier, always 'deployment_name' for this vectorization source type." + "description": "The object type, which is always `label_model`.", + "x-stainless-const": true + }, + "name": { + "type": "string", + "description": "The name of the grader." }, - "deployment_name": { + "model": { "type": "string", - "description": "The embedding model deployment to use for vectorization. This deployment must exist within the same Azure OpenAI\nresource as the model deployment being used for chat completions." + "description": "The model to use for the evaluation. Must support structured outputs." }, - "dimensions": { - "type": "integer", - "format": "int32", - "description": "The number of dimensions to request on embeddings.\nOnly supported in 'text-embedding-3' and later models." + "input": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateEvalItem" + }, + "description": "A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}." + }, + "labels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The labels to classify to each item in the evaluation." + }, + "passing_labels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The labels that indicate a passing result. Must be a subset of labels." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" - } - ], - "description": "Represents a vectorization source that makes internal service calls against an Azure OpenAI embedding model\ndeployment. In contrast with the endpoint-based vectorization source, a deployment-name-based vectorization source\nmust be part of the same Azure OpenAI resource but can be used even in private networks." + "description": "A LabelModelGrader object which uses a model to assign labels to each item\nin the evaluation.", + "title": "LabelModelGrader", + "x-oaiMeta": { + "name": "The eval label model grader object", + "group": "evals", + "example": "{\n \"type\": \"label_model\",\n \"model\": \"gpt-4o-2024-08-06\",\n \"input\": [\n {\n \"role\": \"system\",\n \"content\": \"Classify the sentiment of the following statement as one of 'positive', 'neutral', or 'negative'\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Statement: {{item.response}}\"\n }\n ],\n \"passing_labels\": [\"positive\"],\n \"labels\": [\"positive\", \"neutral\", \"negative\"],\n \"name\": \"Sentiment label grader\"\n}\n" + } }, - "AzureChatDataSourceEncodedApiKeyAuthenticationOptions": { + "OpenAI.CreateEvalLogsDataSourceConfig": { "type": "object", "required": [ - "type", - "encoded_api_key" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "encoded_api_key" - ] + "logs" + ], + "description": "The type of data source. Always `logs`.", + "x-stainless-const": true, + "default": "logs" }, - "encoded_api_key": { - "type": "string" + "metadata": { + "type": "object", + "unevaluatedProperties": {}, + "description": "Metadata filters for the logs data source." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" - } - ] + "description": "A data source config which specifies the metadata property of your logs query.\nThis is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc.", + "title": "LogsDataSourceConfig", + "x-oaiMeta": { + "name": "The logs data source object for evals", + "group": "evals", + "example": "{\n \"type\": \"logs\",\n \"metadata\": {\n \"use_case\": \"customer_support_agent\"\n }\n}\n" + } }, - "AzureChatDataSourceEndpointVectorizationSource": { + "OpenAI.CreateEvalResponsesRunDataSource": { "type": "object", "required": [ "type", - "endpoint", - "authentication" + "source" ], "properties": { "type": { "type": "string", "enum": [ - "endpoint" + "responses" ], - "description": "The type identifier, always 'endpoint' for this vectorization source type." - }, - "endpoint": { - "type": "string", - "format": "uri", - "description": "Specifies the resource endpoint URL from which embeddings should be retrieved.\nIt should be in the format of:\nhttps://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings.\nThe api-version query parameter is not allowed." + "description": "The type of run data source. Always `responses`.", + "default": "responses" }, - "authentication": { + "input_messages": { "anyOf": [ { - "$ref": "#/components/schemas/AzureChatDataSourceApiKeyAuthenticationOptions" + "$ref": "#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceInputMessagesTemplate" }, { - "$ref": "#/components/schemas/AzureChatDataSourceAccessTokenAuthenticationOptions" + "$ref": "#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceInputMessagesItemReference" } ], - "description": "The authentication mechanism to use with the endpoint-based vectorization source.\nEndpoint authentication supports API key and access token mechanisms." - }, - "dimensions": { - "type": "integer", - "format": "int32", - "description": "The number of dimensions to request on embeddings.\nOnly supported in 'text-embedding-3' and later models." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" - } - ], - "description": "Represents a vectorization source that makes public service calls against an Azure OpenAI embedding model deployment." - }, - "AzureChatDataSourceIntegratedVectorizationSource": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { + "description": "Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace." + }, + "sampling_params": { + "$ref": "#/components/schemas/AzureResponsesSamplingParams" + }, + "model": { "type": "string", - "enum": [ - "integrated" + "description": "The name of the model to use for generating completions (e.g. \"o3-mini\")." + }, + "source": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileContentSource" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileIdSource" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalResponsesSource" + } ], - "description": "The type identifier, always 'integrated' for this vectorization source type." + "description": "Determines what populates the `item` namespace in this run's data source." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" - } - ], - "description": "Represents an integrated vectorization source as defined within the supporting search resource." + "description": "A ResponsesRunDataSource object describing a model sampling configuration.", + "title": "CreateEvalResponsesRunDataSource", + "x-oaiMeta": { + "name": "The completions data source object used to configure an individual run", + "group": "eval runs", + "example": "{\n \"name\": \"gpt-4o-mini-2024-07-18\",\n \"data_source\": {\n \"type\": \"responses\",\n \"input_messages\": {\n \"type\": \"item_reference\",\n \"item_reference\": \"item.input\"\n },\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \"source\": {\n \"type\": \"responses\",\n \"model\": \"gpt-4o-mini-2024-07-18\"\n }\n }\n}\n" + } }, - "AzureChatDataSourceKeyAndKeyIdAuthenticationOptions": { + "OpenAI.CreateEvalResponsesRunDataSourceInputMessagesItemReference": { "type": "object", "required": [ "type", - "key", - "key_id" + "item_reference" ], "properties": { "type": { "type": "string", "enum": [ - "key_and_key_id" + "item_reference" ] }, - "key": { - "type": "string" - }, - "key_id": { + "item_reference": { "type": "string" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" - } - ] + } }, - "AzureChatDataSourceModelIdVectorizationSource": { + "OpenAI.CreateEvalResponsesRunDataSourceInputMessagesTemplate": { "type": "object", "required": [ "type", - "model_id" + "template" ], "properties": { "type": { "type": "string", "enum": [ - "model_id" + "template" + ] + }, + "template": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "role": { + "type": "string" + }, + "content": { + "type": "string" + } + }, + "required": [ + "role", + "content" + ] + }, + { + "$ref": "#/components/schemas/OpenAI.EvalItem" + } + ] + } + } + } + }, + "OpenAI.CreateEvalResponsesRunDataSourceSamplingParams": { + "type": "object", + "properties": { + "reasoning_effort": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + } ], - "description": "The type identifier, always 'model_id' for this vectorization source type." + "description": "Controls the level of reasoning effort applied during generation." }, - "model_id": { - "type": "string", - "description": "The embedding model build ID to use for vectorization." + "temperature": { + "type": "number", + "description": "A higher temperature increases randomness in the outputs.", + "default": 1 + }, + "top_p": { + "type": "number", + "description": "An alternative to temperature for nucleus sampling; 1.0 includes all tokens.", + "default": 1 + }, + "seed": { + "type": "integer", + "description": "A seed value initializes the randomness during sampling.", + "default": 42 + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.Tool" + } + }, + "text": { + "$ref": "#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceSamplingParamsText" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" + } + }, + "OpenAI.CreateEvalResponsesRunDataSourceSamplingParamsText": { + "type": "object", + "properties": { + "format": { + "$ref": "#/components/schemas/OpenAI.TextResponseFormatConfiguration" } - ], - "description": "Represents a vectorization source that makes service calls based on a search service model ID.\nThis source type is currently only supported by Elasticsearch." + } }, - "AzureChatDataSourceSystemAssignedManagedIdentityAuthenticationOptions": { + "OpenAI.CreateEvalRunRequest": { "type": "object", "required": [ - "type" + "data_source" ], "properties": { - "type": { + "name": { "type": "string", - "enum": [ - "system_assigned_managed_identity" + "description": "The name of the run." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } ] + }, + "data_source": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalJsonlRunDataSource" + }, + { + "$ref": "#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSource" + }, + { + "$ref": "#/components/schemas/OpenAI.CreateEvalResponsesRunDataSource" + } + ], + "description": "Details about the run's data source." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" - } - ] - }, - "AzureChatDataSourceType": { - "type": "string", - "enum": [ - "azure_search", - "azure_cosmos_db", - "elasticsearch", - "pinecone", - "mongo_db" - ] + "title": "CreateEvalRunRequest" }, - "AzureChatDataSourceUserAssignedManagedIdentityAuthenticationOptions": { + "OpenAI.CreateEvalStoredCompletionsDataSourceConfig": { "type": "object", "required": [ - "type", - "managed_identity_resource_id" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "user_assigned_managed_identity" - ] + "stored_completions" + ], + "description": "The type of data source. Always `stored_completions`.", + "x-stainless-const": true, + "default": "stored_completions" }, - "managed_identity_resource_id": { - "type": "string" + "metadata": { + "type": "object", + "unevaluatedProperties": {}, + "description": "Metadata filters for the stored completions data source." } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" - } - ] + "description": "Deprecated in favor of LogsDataSourceConfig.", + "title": "StoredCompletionsDataSourceConfig", + "x-oaiMeta": { + "name": "The stored completions data source object for evals", + "group": "evals", + "example": "{\n \"type\": \"stored_completions\",\n \"metadata\": {\n \"use_case\": \"customer_support_agent\"\n }\n}\n" + } }, - "AzureChatDataSourceUsernameAndPasswordAuthenticationOptions": { + "OpenAI.CreateFileRequest": { "type": "object", - "required": [ - "type", - "username", - "password" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "username_and_password" - ] + "file": { + "description": "The File object (not file name) to be uploaded.", + "x-oaiMeta": { + "exampleFilePath": "fine-tune.jsonl" + } }, - "username": { - "type": "string" + "expires_after": { + "type": "object", + "properties": { + "seconds": { + "type": "integer", + "format": "int32" + }, + "anchor": { + "$ref": "#/components/schemas/AzureFileExpiryAnchor" + } + }, + "required": [ + "seconds", + "anchor" + ] }, - "password": { - "type": "string" + "purpose": { + "type": "string", + "enum": [ + "assistants", + "batch", + "fine-tune", + "evals" + ], + "description": "The intended purpose of the uploaded file. One of: - `assistants`: Used in the Assistants API - `batch`: Used in the Batch API - `fine-tune`: Used for fine-tuning - `evals`: Used for eval data sets" } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceAuthenticationOptions" - } + "required": [ + "file", + "expires_after", + "purpose" ] }, - "AzureChatDataSourceVectorizationSource": { + "OpenAI.CreateFineTuningCheckpointPermissionRequest": { "type": "object", "required": [ - "type" + "project_ids" ], "properties": { - "type": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSourceType" - } - ], - "description": "The differentiating identifier for the concrete vectorization source." - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "deployment_name": "#/components/schemas/AzureChatDataSourceDeploymentNameVectorizationSource", - "integrated": "#/components/schemas/AzureChatDataSourceIntegratedVectorizationSource", - "model_id": "#/components/schemas/AzureChatDataSourceModelIdVectorizationSource" + "project_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The project identifiers to grant access to." } - }, - "description": "A representation of a data vectorization source usable as an embedding resource with a data source." - }, - "AzureChatDataSourceVectorizationSourceType": { - "type": "string", - "enum": [ - "endpoint", - "deployment_name", - "model_id", - "integrated" - ] + } }, - "AzureChatMessageContext": { + "OpenAI.CreateFineTuningJobRequest": { "type": "object", + "required": [ + "model", + "training_file" + ], "properties": { - "intent": { + "model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "babbage-002", + "davinci-002", + "gpt-3.5-turbo", + "gpt-4o-mini" + ] + } + ], + "description": "The name of the model to fine-tune. You can select one of the\n [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned).", + "x-oaiTypeLabel": "string" + }, + "training_file": { "type": "string", - "description": "The detected intent from the chat history, which is used to carry conversation context between interactions" + "description": "The ID of an uploaded file that contains training data.\n\n See [upload file](https://platform.openai.com/docs/api-reference/files/create) for how to upload a file.\n\n Your dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose `fine-tune`.\n\n The contents of the file should differ depending on if the model uses the [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input), [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input) format, or if the fine-tuning method uses the [preference](https://platform.openai.com/docs/api-reference/fine-tuning/preference-input) format.\n\n See the [fine-tuning guide](https://platform.openai.com/docs/guides/model-optimization) for more details." }, - "citations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "The content of the citation." - }, - "title": { - "type": "string", - "description": "The title for the citation." - }, - "url": { - "type": "string", - "description": "The URL of the citation." - }, - "filepath": { - "type": "string", - "description": "The file path for the citation." - }, - "chunk_id": { - "type": "string", - "description": "The chunk ID for the citation." - }, - "rerank_score": { - "type": "number", - "format": "double", - "description": "The rerank score for the retrieval." - } + "hyperparameters": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequestHyperparameters" + } + ], + "description": "The hyperparameters used for the fine-tuning job.\n This value is now deprecated in favor of `method`, and should be passed in under the `method` parameter." + }, + "suffix": { + "anyOf": [ + { + "type": "string" }, - "required": [ - "content" - ] - }, - "description": "The citations produced by the data retrieval." + { + "type": "null" + } + ], + "minLength": 1, + "maxLength": 64, + "description": "A string of up to 64 characters that will be added to your fine-tuned model name.\n\n For example, a `suffix` of \"custom-model-name\" would produce a model name like `ft:gpt-4o-mini:openai:custom-model-name:7p4lURel`." }, - "all_retrieved_documents": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "The content of the citation." - }, - "title": { - "type": "string", - "description": "The title for the citation." - }, - "url": { - "type": "string", - "description": "The URL of the citation." - }, - "filepath": { - "type": "string", - "description": "The file path for the citation." - }, - "chunk_id": { - "type": "string", - "description": "The chunk ID for the citation." - }, - "rerank_score": { - "type": "number", - "format": "double", - "description": "The rerank score for the retrieval." + "validation_file": { + "anyOf": [ + { + "type": "string" }, - "search_queries": { + { + "type": "null" + } + ], + "description": "The ID of an uploaded file that contains validation data.\n\n If you provide this file, the data is used to generate validation\n metrics periodically during fine-tuning. These metrics can be viewed in\n the fine-tuning results file.\n The same data should not be present in both train and validation files.\n\n Your dataset must be formatted as a JSONL file. You must upload your file with the purpose `fine-tune`.\n\n See the [fine-tuning guide](https://platform.openai.com/docs/guides/model-optimization) for more details." + }, + "integrations": { + "anyOf": [ + { "type": "array", "items": { - "type": "string" - }, - "description": "The search queries executed to retrieve documents." - }, - "data_source_index": { - "type": "integer", - "format": "int32", - "description": "The index of the data source used for retrieval." + "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegrations" + } }, - "original_search_score": { - "type": "number", - "format": "double", - "description": "The original search score for the retrieval." + { + "type": "null" + } + ], + "description": "A list of integrations to enable for your fine-tuning job." + }, + "seed": { + "anyOf": [ + { + "type": "integer" }, - "filter_reason": { - "type": "string", - "enum": [ - "score", - "rerank" - ], - "description": "If applicable, an indication of why the document was filtered." + { + "type": "null" } - }, - "required": [ - "content", - "search_queries", - "data_source_index" ], - "description": "Summary information about documents retrieved by the data retrieval operation." + "minimum": 0, + "maximum": 2147483647, + "description": "The seed controls the reproducibility of the job. Passing in the same seed and job parameters should produce the same results, but may differ in rare cases.\n If a seed is not specified, one will be generated for you." + }, + "method": { + "$ref": "#/components/schemas/OpenAI.FineTuneMethod" + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] } - }, - "description": "An additional property, added to chat completion response messages, produced by the Azure OpenAI service when using\nextension behavior. This includes intent and citation information from the On Your Data feature." + } }, - "AzureContentFilterBlocklistResult": { + "OpenAI.CreateFineTuningJobRequestHyperparameters": { "type": "object", - "required": [ - "filtered" - ], "properties": { - "filtered": { - "type": "boolean", - "description": "A value indicating whether any of the detailed blocklists resulted in a filtering action." + "batch_size": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "integer" + } + ], + "default": "auto" }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "filtered": { - "type": "boolean", - "description": "A value indicating whether the blocklist produced a filtering action." - }, - "id": { - "type": "string", - "description": "The ID of the custom blocklist evaluated." - } + "learning_rate_multiplier": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] }, - "required": [ - "filtered", - "id" - ] - }, - "description": "The pairs of individual blocklist IDs and whether they resulted in a filtering action." + { + "type": "number" + } + ] + }, + "n_epochs": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "integer" + } + ], + "default": "auto" } - }, - "description": "A collection of true/false filtering results for configured custom blocklists." + } }, - "AzureContentFilterCompletionTextSpan": { + "OpenAI.CreateFineTuningJobRequestIntegrations": { "type": "object", "required": [ - "completion_start_offset", - "completion_end_offset" + "type", + "wandb" ], "properties": { - "completion_start_offset": { - "type": "integer", - "format": "int32", - "description": "Offset of the UTF32 code point which begins the span." + "type": { + "type": "string", + "enum": [ + "wandb" + ], + "x-stainless-const": true }, - "completion_end_offset": { - "type": "integer", - "format": "int32", - "description": "Offset of the first UTF32 code point which is excluded from the span. This field is always equal to completion_start_offset for empty spans. This field is always larger than completion_start_offset for non-empty spans." + "wandb": { + "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegrationsWandb" } - }, - "description": "A representation of a span of completion text as used by Azure OpenAI content filter results." + } }, - "AzureContentFilterCompletionTextSpanDetectionResult": { + "OpenAI.CreateFineTuningJobRequestIntegrationsWandb": { "type": "object", "required": [ - "filtered", - "detected", - "details" + "project" ], "properties": { - "filtered": { - "type": "boolean", - "description": "Whether the content detection resulted in a content filtering action." + "project": { + "type": "string" }, - "detected": { - "type": "boolean", - "description": "Whether the labeled content category was detected in the content." + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "details": { + "entity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tags": { "type": "array", "items": { - "$ref": "#/components/schemas/AzureContentFilterCompletionTextSpan" - }, - "description": "Detailed information about the detected completion text spans." + "type": "string" + } } } }, - "AzureContentFilterCustomTopicResult": { + "OpenAI.CreateMessageRequest": { "type": "object", "required": [ - "filtered" + "role", + "content" ], "properties": { - "filtered": { - "type": "boolean", - "description": "A value indicating whether any of the detailed topics resulted in a filtering action." + "role": { + "type": "string", + "enum": [ + "user", + "assistant" + ], + "description": "The role of the entity that is creating the message. Allowed values include:\n - `user`: Indicates the message is sent by an actual user and should be used in most cases to represent user-generated messages.\n - `assistant`: Indicates the message is generated by the assistant. Use this value to insert messages from the assistant into the conversation." }, - "details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "detected": { - "type": "boolean", - "description": "A value indicating whether the topic is detected." - }, - "id": { - "type": "string", - "description": "The ID of the custom topic evaluated." - } + "content": { + "anyOf": [ + { + "type": "string" }, - "required": [ - "detected", - "id" - ] - }, - "description": "The pairs of individual topic IDs and whether they are detected." - } - }, - "description": "A collection of true/false filtering results for configured custom topics." - }, - "AzureContentFilterDetectionResult": { - "type": "object", - "required": [ - "filtered", - "detected" - ], - "properties": { - "filtered": { - "type": "boolean", - "description": "Whether the content detection resulted in a content filtering action." + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.MessageContentImageFileObject" + }, + { + "$ref": "#/components/schemas/OpenAI.MessageContentImageUrlObject" + }, + { + "$ref": "#/components/schemas/OpenAI.MessageRequestContentTextObject" + } + ] + } + } + ] + }, + "attachments": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateMessageRequestAttachments" + } + }, + { + "type": "null" + } + ] }, - "detected": { - "type": "boolean", - "description": "Whether the labeled content category was detected in the content." + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] } - }, - "description": "A labeled content filter result item that indicates whether the content was detected and whether the content was\nfiltered." + } }, - "AzureContentFilterPersonallyIdentifiableInformationResult": { + "OpenAI.CreateMessageRequestAttachments": { "type": "object", "properties": { - "redacted_text": { - "type": "string", - "description": "The redacted text with PII information removed or masked." + "file_id": { + "type": "string" }, - "sub_categories": { + "tools": { "type": "array", "items": { - "$ref": "#/components/schemas/AzurePiiSubCategoryResult" - }, - "description": "Detailed results for individual PIIHarmSubCategory(s)." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.AssistantToolsCode" + }, + { + "$ref": "#/components/schemas/OpenAI.AssistantToolsFileSearchTypeOnly" + } + ] + } } - ], - "description": "A content filter detection result for Personally Identifiable Information that includes harm extensions." + } }, - "AzureContentFilterResultForChoice": { + "OpenAI.CreateResponse": { "type": "object", "properties": { - "sexual": { - "allOf": [ + "metadata": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" } - ], - "description": "A content filter category for language related to anatomical organs and genitals, romantic relationships, acts\nportrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an\nassault or a forced sexual violent act against one's will, prostitution, pornography, and abuse." + ] }, - "hate": { - "allOf": [ + "top_logprobs": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + "type": "integer" + }, + { + "type": "null" } - ], - "description": "A content filter category that can refer to any content that attacks or uses pejorative or discriminatory\nlanguage with reference to a person or identity group based on certain differentiating attributes of these groups\nincluding but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation,\nreligion, immigration status, ability status, personal appearance, and body size." + ] }, - "violence": { - "allOf": [ + "temperature": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + "type": "number" + }, + { + "type": "null" } ], - "description": "A content filter category for language related to physical actions intended to hurt, injure, damage, or kill\nsomeone or something; describes weapons, guns and related entities, such as manufactures, associations,\nlegislation, and so on." + "default": 1 }, - "self_harm": { - "allOf": [ + "top_p": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" + "type": "number" + }, + { + "type": "null" } ], - "description": "A content filter category that describes language related to physical actions intended to purposely hurt, injure,\ndamage one's body or kill oneself." + "default": 1 }, - "profanity": { - "allOf": [ + "user": { + "type": "string", + "description": "This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations.\n A stable identifier for your end-users.\n Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "safety_identifier": { + "type": "string", + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies.\n The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "prompt_cache_key": { + "type": "string", + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + "type": "string", + "enum": [ + "in-memory", + "24h" + ] + }, + { + "type": "null" } - ], - "description": "A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the\ncontent." + ] }, - "custom_blocklists": { - "allOf": [ + "previous_response_id": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterBlocklistResult" + "type": "string" + }, + { + "type": "null" } - ], - "description": "A collection of binary filtering outcomes for configured custom blocklists." + ] }, - "custom_topics": { - "allOf": [ + "model": { + "type": "string", + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\n to browse and compare available models." + }, + "reasoning": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterCustomTopicResult" + "$ref": "#/components/schemas/OpenAI.Reasoning" + }, + { + "type": "null" } - ], - "description": "A collection of binary filtering outcomes for configured custom topics." + ] }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "description": "A distinct, machine-readable code associated with the error." + "background": { + "anyOf": [ + { + "type": "boolean" }, - "message": { - "type": "string", - "description": "A human-readable message associated with the error." + { + "type": "null" } - }, - "required": [ - "code", - "message" - ], - "description": "If present, details about an error that prevented content filtering from completing its evaluation." + ] }, - "protected_material_text": { - "allOf": [ + "max_output_tokens": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" + "type": "integer" + }, + { + "type": "null" } - ], - "description": "A detection result that describes a match against text protected under copyright or other status." + ] }, - "protected_material_code": { - "type": "object", - "properties": { - "filtered": { - "type": "boolean", - "description": "Whether the content detection resulted in a content filtering action." - }, - "detected": { - "type": "boolean", - "description": "Whether the labeled content category was detected in the content." + "max_tool_calls": { + "anyOf": [ + { + "type": "integer" }, - "citation": { - "type": "object", - "properties": { - "license": { - "type": "string", - "description": "The name or identifier of the license associated with the detection." - }, - "URL": { - "type": "string", - "format": "uri", - "description": "The URL associated with the license." - } - }, - "description": "If available, the citation details describing the associated license and its location." + { + "type": "null" } - }, - "required": [ - "filtered", - "detected" - ], - "description": "A detection result that describes a match against licensed code or other protected source material." + ] }, - "ungrounded_material": { - "$ref": "#/components/schemas/AzureContentFilterCompletionTextSpanDetectionResult" + "text": { + "$ref": "#/components/schemas/OpenAI.ResponseTextParam" }, - "personally_identifiable_information": { - "allOf": [ + "tools": { + "$ref": "#/components/schemas/OpenAI.ToolsArray", + "description": "An array of tools the model may call while generating a response. You\ncan specify which tool to use by setting the `tool_choice` parameter.\n\nThe two categories of tools you can provide the model are:\n\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\n model's capabilities, like file search.\n- **Function calls (custom tools)**: Functions that are defined by you,\n enabling the model to call your own code." + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" + }, + "truncation": { + "anyOf": [ { - "$ref": "#/components/schemas/AzureContentFilterPersonallyIdentifiableInformationResult" + "type": "string", + "enum": [ + "auto", + "disabled" + ] + }, + { + "type": "null" } ], - "description": "A detection result that describes matches against Personal Identifiable Information with configurable subcategories." - } - }, - "description": "A content filter result for a single response item produced by a generative AI system." - }, - "AzureContentFilterResultForPrompt": { - "type": "object", - "properties": { - "prompt_index": { - "type": "integer", - "format": "int32", - "description": "The index of the input prompt associated with the accompanying content filter result categories." + "default": "disabled" }, - "content_filter_results": { - "type": "object", - "properties": { - "sexual": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" - } - ], - "description": "A content filter category for language related to anatomical organs and genitals, romantic relationships, acts\nportrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an\nassault or a forced sexual violent act against one's will, prostitution, pornography, and abuse." - }, - "hate": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" - } - ], - "description": "A content filter category that can refer to any content that attacks or uses pejorative or discriminatory\nlanguage with reference to a person or identity group based on certain differentiating attributes of these groups\nincluding but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation,\nreligion, immigration status, ability status, personal appearance, and body size." - }, - "violence": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" - } - ], - "description": "A content filter category for language related to physical actions intended to hurt, injure, damage, or kill\nsomeone or something; describes weapons, guns and related entities, such as manufactures, associations,\nlegislation, and so on." + "input": { + "$ref": "#/components/schemas/OpenAI.InputParam" + }, + "include": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.IncludeEnum" + } }, - "self_harm": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterSeverityResult" - } - ], - "description": "A content filter category that describes language related to physical actions intended to purposely hurt, injure,\ndamage one's body or kill oneself." + { + "type": "null" + } + ] + }, + "parallel_tool_calls": { + "anyOf": [ + { + "type": "boolean" }, - "profanity": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" - } - ], - "description": "A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the\ncontent." + { + "type": "null" + } + ], + "default": true + }, + "store": { + "anyOf": [ + { + "type": "boolean" }, - "custom_blocklists": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterBlocklistResult" - } - ], - "description": "A collection of binary filtering outcomes for configured custom blocklists." + { + "type": "null" + } + ], + "default": true + }, + "instructions": { + "anyOf": [ + { + "type": "string" }, - "custom_topics": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterCustomTopicResult" - } - ], - "description": "A collection of binary filtering outcomes for configured custom topics." + { + "type": "null" + } + ] + }, + "stream": { + "anyOf": [ + { + "type": "boolean" }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32", - "description": "A distinct, machine-readable code associated with the error." - }, - "message": { - "type": "string", - "description": "A human-readable message associated with the error." - } - }, - "required": [ - "code", - "message" - ], - "description": "If present, details about an error that prevented content filtering from completing its evaluation." + { + "type": "null" + } + ] + }, + "stream_options": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamOptions" }, - "jailbreak": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" - } - ], - "description": "A detection result that describes user prompt injection attacks, where malicious users deliberately exploit\nsystem vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content\ngeneration or violations of system-imposed restrictions." + { + "type": "null" + } + ] + }, + "conversation": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationParam" }, - "indirect_attack": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterDetectionResult" - } - ], - "description": "A detection result that describes attacks on systems powered by Generative AI models that can happen every time\nan application processes information that wasn’t directly authored by either the developer of the application or\nthe user." + { + "type": "null" } - }, - "required": [ - "jailbreak", - "indirect_attack" - ], - "description": "The content filter category details for the result." + ] } - }, - "description": "A content filter result associated with a single input prompt item into a generative AI system." + } }, - "AzureContentFilterSeverityResult": { + "OpenAI.CreateRunRequest": { "type": "object", "required": [ - "filtered", - "severity" + "assistant_id" ], "properties": { - "filtered": { - "type": "boolean", - "description": "Whether the content severity resulted in a content filtering action." - }, - "severity": { + "assistant_id": { "type": "string", - "enum": [ - "safe", - "low", - "medium", - "high" - ], - "description": "The labeled severity of the content." - } - }, - "description": "A labeled content filter result item that indicates whether the content was filtered and what the qualitative\nseverity level of the content was, as evaluated against content filter configuration for the category." - }, - "AzureCosmosDBChatDataSource": { - "type": "object", - "required": [ - "type", - "parameters" - ], - "properties": { - "type": { + "description": "The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) to use to execute this run." + }, + "model": { "type": "string", - "enum": [ - "azure_cosmos_db" - ], - "description": "The discriminated type identifier, which is always 'azure_cosmos_db'." + "description": "The ID of the [Model](https://platform.openai.com/docs/api-reference/models) to be used to execute this run. If a value is provided here, it will override the model associated with the assistant. If not, the model associated with the assistant will be used.", + "x-oaiTypeLabel": "string" }, - "parameters": { - "type": "object", - "properties": { - "top_n_documents": { - "type": "integer", - "format": "int32", - "description": "The configured number of documents to feature in the query." - }, - "in_scope": { - "type": "boolean", - "description": "Whether queries should be restricted to use of the indexed data." - }, - "strictness": { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 5, - "description": "The configured strictness of the search relevance filtering.\nHigher strictness will increase precision but lower recall of the answer." - }, - "max_search_queries": { - "type": "integer", - "format": "int32", - "description": "The maximum number of rewritten queries that should be sent to the search provider for a single user message.\nBy default, the system will make an automatic determination." + "reasoning_effort": { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + }, + "instructions": { + "anyOf": [ + { + "type": "string" }, - "allow_partial_result": { - "type": "boolean", - "description": "If set to true, the system will allow partial search results to be used and the request will fail if all\npartial queries fail. If not specified or specified as false, the request will fail if any search query fails.", - "default": false + { + "type": "null" + } + ], + "description": "Overrides the [instructions](https://platform.openai.com/docs/api-reference/assistants/createAssistant) of the assistant. This is useful for modifying the behavior on a per-run basis." + }, + "additional_instructions": { + "anyOf": [ + { + "type": "string" }, - "include_contexts": { + { + "type": "null" + } + ], + "description": "Appends additional instructions at the end of the instructions for the run. This is useful for modifying the behavior on a per-run basis without overriding other instructions." + }, + "additional_messages": { + "anyOf": [ + { "type": "array", "items": { - "type": "string", - "enum": [ - "citations", - "intent", - "all_retrieved_documents" - ] - }, - "maxItems": 3, - "description": "The output context properties to include on the response.\nBy default, citations and intent will be requested.", - "default": [ - "citations", - "intent" - ] - }, - "container_name": { - "type": "string" - }, - "database_name": { - "type": "string" + "$ref": "#/components/schemas/OpenAI.CreateMessageRequest" + } }, - "embedding_dependency": { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" + { + "type": "null" + } + ], + "description": "Adds additional messages to the thread before creating the run." + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.AssistantTool" + }, + "maxItems": 20, + "description": "Override the tools the assistant can use for this run. This is useful for modifying the behavior on a per-run basis." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" }, - "index_name": { - "type": "string" + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" }, - "authentication": { - "$ref": "#/components/schemas/AzureChatDataSourceConnectionStringAuthenticationOptions" + { + "type": "null" + } + ], + "minimum": 0, + "maximum": 2, + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.", + "default": 1 + }, + "top_p": { + "anyOf": [ + { + "type": "number" }, - "fields_mapping": { - "type": "object", - "properties": { - "content_fields": { - "type": "array", - "items": { - "type": "string" - } - }, - "vector_fields": { - "type": "array", - "items": { - "type": "string" - } - }, - "title_field": { - "type": "string" - }, - "url_field": { - "type": "string" - }, - "filepath_field": { - "type": "string" - }, - "content_fields_separator": { - "type": "string" - } - }, - "required": [ - "content_fields", - "vector_fields" - ] + { + "type": "null" + } + ], + "minimum": 0, + "maximum": 1, + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\n We generally recommend altering this or temperature but not both.", + "default": 1 + }, + "stream": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" } - }, - "required": [ - "container_name", - "database_name", - "embedding_dependency", - "index_name", - "authentication", - "fields_mapping" ], - "description": "The parameter information to control the use of the Azure CosmosDB data source." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSource" + "description": "If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message." + }, + "max_prompt_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 256, + "description": "The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info." + }, + "max_completion_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 256, + "description": "The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info." + }, + "truncation_strategy": { + "$ref": "#/components/schemas/OpenAI.TruncationObject" + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.AssistantsApiToolChoiceOption" + }, + "parallel_tool_calls": { + "$ref": "#/components/schemas/OpenAI.ParallelToolCalls" + }, + "response_format": { + "$ref": "#/components/schemas/OpenAI.AssistantsApiResponseFormatOption" } - ], - "description": "Represents a data source configuration that will use an Azure CosmosDB resource." + } }, - "AzureCreateChatCompletionRequest": { + "OpenAI.CreateThreadAndRunRequest": { "type": "object", "required": [ - "messages", - "model" + "assistant_id" ], "properties": { - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - }, - "temperature": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 2, - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.\nWe generally recommend altering this or `top_p` but not both.", - "default": 1 + "assistant_id": { + "type": "string", + "description": "The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) to use to execute this run." }, - "top_p": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 1, - "description": "An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability\nmass. So 0.1 means only the tokens comprising the top 10% probability mass\nare considered.\n\nWe generally recommend altering this or `temperature` but not both.", - "default": 1 + "thread": { + "$ref": "#/components/schemas/OpenAI.CreateThreadRequest" }, - "user": { + "model": { "type": "string", - "description": "A unique identifier representing your end-user, which can help to\nmonitor and detect abuse." + "description": "The ID of the [Model](https://platform.openai.com/docs/api-reference/models) to be used to execute this run. If a value is provided here, it will override the model associated with the assistant. If not, the model associated with the assistant will be used.", + "x-oaiTypeLabel": "string" }, - "top_logprobs": { - "type": "integer", - "format": "int32", - "minimum": 0, - "maximum": 20, - "description": "An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability." + "instructions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Override the default system message of the assistant. This is useful for modifying the behavior on a per-run basis." }, - "messages": { + "tools": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + "$ref": "#/components/schemas/OpenAI.AssistantTool" }, - "minItems": 1, - "description": "A list of messages comprising the conversation so far. Depending on the\nmodel you use, different message types (modalities) are supported,\nlike text, images, and audio." + "maxItems": 20, + "description": "Override the tools the assistant can use for this run. This is useful for modifying the behavior on a per-run basis." }, - "modalities": { - "type": "object", - "allOf": [ + "tool_resources": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateThreadAndRunRequestToolResources" + }, { - "$ref": "#/components/schemas/ResponseModalities" + "type": "null" } ], - "nullable": true + "description": "A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs." }, - "reasoning_effort": { - "allOf": [ + "metadata": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" } - ], - "nullable": true, - "default": "medium" - }, - "max_completion_tokens": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An upper bound for the number of tokens that can be generated for a\ncompletion, including visible output tokens and reasoning tokens." - }, - "frequency_penalty": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": -2, - "maximum": 2, - "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on\ntheir existing frequency in the text so far, decreasing the model's\nlikelihood to repeat the same line verbatim.", - "default": 0 + ] }, - "presence_penalty": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": -2, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "minimum": 0, "maximum": 2, - "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on\nwhether they appear in the text so far, increasing the model's likelihood\nto talk about new topics.", - "default": 0 + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.", + "default": 1 }, - "response_format": { - "allOf": [ + "top_p": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponseFormat" + "type": "number" + }, + { + "type": "null" } ], - "description": "An object specifying the format that the model must output.\n\nSetting to `{ \"type\": \"json_schema\", \"json_schema\": {...} }` enables\nStructured Outputs which ensures the model will match your supplied JSON\nschema.\n\nSetting to `{ \"type\": \"json_object\" }` enables JSON mode, which ensures\nthe message the model generates is valid JSON.\n\n**Important:** when using JSON mode, you **must** also instruct the model\nto produce JSON yourself via a system or user message. Without this, the\nmodel may generate an unending stream of whitespace until the generation\nreaches the token limit, resulting in a long-running and seemingly \"stuck\"\nrequest. Also note that the message content may be partially cut off if\n`finish_reason=\"length\"`, which indicates the generation exceeded\n`max_tokens` or the conversation exceeded the max context length." + "minimum": 0, + "maximum": 1, + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.\n\n We generally recommend altering this or temperature but not both.", + "default": 1 }, - "audio": { - "type": "object", - "properties": { - "voice": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.VoiceIdsShared" - } - ], - "description": "The voice the model uses to respond. Supported voices are\n`alloy`, `ash`, `ballad`, `coral`, `echo`, `fable`, `nova`, `onyx`, `sage`, and `shimmer`." + "stream": { + "anyOf": [ + { + "type": "boolean" }, - "format": { - "type": "string", - "enum": [ - "wav", - "aac", - "mp3", - "flac", - "opus", - "pcm16" - ], - "description": "Specifies the output audio format. Must be one of `wav`, `mp3`, `flac`,\n`opus`, or `pcm16`." + { + "type": "null" } - }, - "required": [ - "voice", - "format" ], - "nullable": true, - "description": "Parameters for audio output. Required when audio output is requested with\n`modalities: [\"audio\"]`." - }, - "store": { - "type": "boolean", - "nullable": true, - "description": "Whether or not to store the output of this chat completion request for\nuse in model distillation or evals products.", - "default": false + "description": "If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message." }, - "stream": { - "type": "boolean", - "nullable": true, - "description": "If set to true, the model response data will be streamed to the client\nas it is generated using server-sent events.", - "default": false + "max_prompt_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 256, + "description": "The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info." }, - "stop": { - "allOf": [ + "max_completion_tokens": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.StopConfiguration" + "type": "integer" + }, + { + "type": "null" } ], - "nullable": true, - "default": null + "minimum": 256, + "description": "The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info." }, - "logit_bias": { - "type": "object", - "additionalProperties": { - "type": "integer", - "format": "int32" - }, - "nullable": true, - "description": "Modify the likelihood of specified tokens appearing in the completion.\n\nAccepts a JSON object that maps tokens (specified by their token ID in the\ntokenizer) to an associated bias value from -100 to 100. Mathematically,\nthe bias is added to the logits generated by the model prior to sampling.\nThe exact effect will vary per model, but values between -1 and 1 should\ndecrease or increase likelihood of selection; values like -100 or 100\nshould result in a ban or exclusive selection of the relevant token.", - "x-oaiTypeLabel": "map", - "default": null + "truncation_strategy": { + "$ref": "#/components/schemas/OpenAI.TruncationObject" }, - "logprobs": { - "type": "boolean", - "nullable": true, - "description": "Whether to return log probabilities of the output tokens or not. If true,\nreturns the log probabilities of each output token returned in the\n`content` of `message`.", - "default": false + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.AssistantsApiToolChoiceOption" }, - "max_tokens": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "The maximum number of tokens that can be generated in the chat completion.\nThis value can be used to control costs for text generated via API.\n\nThis value is now deprecated in favor of `max_completion_tokens`, and is\nnot compatible with o1 series models.", - "deprecated": true + "parallel_tool_calls": { + "$ref": "#/components/schemas/OpenAI.ParallelToolCalls" }, - "n": { - "type": "integer", - "format": "int32", - "nullable": true, - "minimum": 1, - "maximum": 128, - "description": "How many chat completion choices to generate for each input message. Note that you will be charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to minimize costs.", - "default": 1 + "response_format": { + "$ref": "#/components/schemas/OpenAI.AssistantsApiResponseFormatOption" + } + } + }, + "OpenAI.CreateThreadAndRunRequestToolResources": { + "type": "object", + "properties": { + "code_interpreter": { + "$ref": "#/components/schemas/OpenAI.CreateThreadAndRunRequestToolResourcesCodeInterpreter" }, - "prediction": { - "type": "object", - "allOf": [ + "file_search": { + "$ref": "#/components/schemas/OpenAI.CreateThreadAndRunRequestToolResourcesFileSearch" + } + } + }, + "OpenAI.CreateThreadAndRunRequestToolResourcesCodeInterpreter": { + "type": "object", + "properties": { + "file_ids": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 20, + "default": [] + } + } + }, + "OpenAI.CreateThreadAndRunRequestToolResourcesFileSearch": { + "type": "object", + "properties": { + "vector_store_ids": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 1 + } + } + }, + "OpenAI.CreateThreadRequest": { + "type": "object", + "properties": { + "messages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateMessageRequest" + }, + "description": "A list of [messages](https://platform.openai.com/docs/api-reference/messages) to start the thread with." + }, + "tool_resources": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ChatOutputPrediction" + "$ref": "#/components/schemas/OpenAI.CreateThreadRequestToolResources" + }, + { + "type": "null" } - ], - "nullable": true, - "description": "Configuration for a predicted output, which can greatly improve\nresponse times when large parts of the model response are known\nahead of time. This is most common when you are regenerating a\nfile with only minor changes to most of the content." - }, - "seed": { - "type": "integer", - "format": "int64", - "nullable": true, - "minimum": -9223372036854776000, - "maximum": 9223372036854776000, - "description": "This feature is in Beta.\nIf specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result.\nDeterminism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend." + ] }, - "stream_options": { - "type": "object", - "allOf": [ + "metadata": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamOptions" + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" } - ], - "nullable": true, - "default": null + ] + } + }, + "description": "Options to create a new thread. If no thread is provided when running a\nrequest, an empty thread will be created." + }, + "OpenAI.CreateThreadRequestToolResources": { + "type": "object", + "properties": { + "code_interpreter": { + "$ref": "#/components/schemas/OpenAI.CreateThreadRequestToolResourcesCodeInterpreter" }, - "tools": { + "file_search": { + "anyOf": [ + {}, + {} + ] + } + } + }, + "OpenAI.CreateThreadRequestToolResourcesCodeInterpreter": { + "type": "object", + "properties": { + "file_ids": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionTool" + "type": "string" + }, + "maxItems": 20 + } + } + }, + "OpenAI.CreateVectorStoreFileBatchRequest": { + "type": "object", + "properties": { + "file_ids": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 500, + "description": "A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files. If `attributes` or `chunking_strategy` are provided, they will be applied to all files in the batch. Mutually exclusive with `files`." + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.CreateVectorStoreFileRequest" }, - "description": "A list of tools the model may call. Currently, only functions are supported as a tool. Use this to provide a list of functions the model may generate JSON inputs for. A max of 128 functions are supported." + "minItems": 1, + "maxItems": 500, + "description": "A list of objects that each include a `file_id` plus optional `attributes` or `chunking_strategy`. Use this when you need to override metadata for specific files. The global `attributes` or `chunking_strategy` will be ignored and must be specified for each file. Mutually exclusive with `file_ids`." }, - "tool_choice": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionToolChoiceOption" + "chunking_strategy": { + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" }, - "parallel_tool_calls": { - "allOf": [ + "attributes": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" + }, { - "$ref": "#/components/schemas/OpenAI.ParallelToolCalls" + "type": "null" } - ], - "default": true + ] + } + } + }, + "OpenAI.CreateVectorStoreFileRequest": { + "type": "object", + "required": [ + "file_id" + ], + "properties": { + "file_id": { + "type": "string", + "description": "A [File](https://platform.openai.com/docs/api-reference/files) ID that the vector store should use. Useful for tools like `file_search` that can access files." }, - "function_call": { + "chunking_strategy": { + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" + }, + "attributes": { "anyOf": [ { - "type": "string", - "enum": [ - "none", - "auto" - ] + "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" }, { - "$ref": "#/components/schemas/OpenAI.ChatCompletionFunctionCallOption" + "type": "null" } - ], - "description": "Deprecated in favor of `tool_choice`.\n\nControls which (if any) function is called by the model.\n\n`none` means the model will not call a function and instead generates a\nmessage.\n\n`auto` means the model can pick between generating a message or calling a\nfunction.\n\nSpecifying a particular function via `{\"name\": \"my_function\"}` forces the\nmodel to call that function.\n\n`none` is the default when no functions are present. `auto` is the default\nif functions are present.", - "deprecated": true - }, - "functions": { + ] + } + } + }, + "OpenAI.CreateVectorStoreRequest": { + "type": "object", + "properties": { + "file_ids": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionFunctions" + "type": "string" }, - "minItems": 1, - "maxItems": 128, - "description": "Deprecated in favor of `tools`.\n\nA list of functions the model may generate JSON inputs for.", - "deprecated": true + "maxItems": 500, + "description": "A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files." }, - "model": { + "name": { "type": "string", - "description": "The model deployment identifier to use for the chat completion request." + "description": "The name of the vector store." }, - "data_sources": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AzureChatDataSource" - }, - "description": "The data sources to use for the On Your Data feature, exclusive to Azure OpenAI." + "description": { + "type": "string", + "description": "A description for the vector store. Can be used to describe the vector store's purpose." + }, + "expires_after": { + "$ref": "#/components/schemas/OpenAI.VectorStoreExpirationAfter" + }, + "chunking_strategy": { + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" }, - "user_security_context": { - "$ref": "#/components/schemas/AzureUserSecurityContext" + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] } - }, - "description": "The extended request model for chat completions against the Azure OpenAI service.\nThis adds the ability to provide data sources for the On Your Data feature." + } }, - "AzureCreateChatCompletionResponse": { + "OpenAI.CustomGrammarFormatParam": { "type": "object", "required": [ - "id", - "created", - "model", - "object", - "choices" + "type", + "syntax", + "definition" ], "properties": { - "id": { + "type": { "type": "string", - "description": "A unique identifier for the chat completion." - }, - "created": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) of when the chat completion was created." + "enum": [ + "grammar" + ], + "description": "Grammar format. Always `grammar`.", + "x-stainless-const": true, + "default": "grammar" }, - "model": { - "type": "string", - "description": "The model used for the chat completion." + "syntax": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.GrammarSyntax1" + } + ], + "description": "The syntax of the grammar definition. One of `lark` or `regex`." }, - "system_fingerprint": { + "definition": { "type": "string", - "description": "This fingerprint represents the backend configuration that the model runs with.\n\nCan be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism." - }, - "object": { + "description": "The grammar definition." + } + }, + "description": "A grammar defined by the user.", + "title": "Grammar format" + }, + "OpenAI.CustomTextFormatParam": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { "type": "string", "enum": [ - "chat.completion" + "text" ], - "description": "The object type, which is always `chat.completion`." - }, - "usage": { - "$ref": "#/components/schemas/OpenAI.CompletionUsage" - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "finish_reason": { - "type": "string", - "enum": [ - "stop", - "length", - "tool_calls", - "content_filter", - "function_call" - ], - "description": "The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,\n`length` if the maximum number of tokens specified in the request was reached,\n`content_filter` if content was omitted due to a flag from our content filters,\n`tool_calls` if the model called a tool, or `function_call` (deprecated) if the model called a function." - }, - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the choice in the list of choices." - }, - "logprobs": { - "type": "object", - "properties": { - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" - }, - "nullable": true, - "description": "A list of message content tokens with log probability information.", - "readOnly": true - }, - "refusal": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" - }, - "nullable": true, - "description": "A list of message refusal tokens with log probability information.", - "readOnly": true - } - }, - "required": [ - "content", - "refusal" - ], - "nullable": true, - "description": "Log probability information for the choice." - }, - "content_filter_results": { - "$ref": "#/components/schemas/AzureContentFilterResultForChoice" - }, - "message": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatCompletionResponseMessage" - } - ], - "description": "The chat completion response message." - } - }, - "required": [ - "finish_reason", - "index", - "logprobs", - "message" - ] - } - }, - "prompt_filter_results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "prompt_index": { - "type": "integer", - "format": "int32", - "description": "The index of the input prompt that this content filter result corresponds to." - }, - "content_filter_results": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureContentFilterResultForPrompt" - } - ], - "description": "The content filter results associated with the indexed input prompt." - } - }, - "required": [ - "prompt_index", - "content_filter_results" - ] - }, - "description": "The Responsible AI content filter annotations associated with prompt inputs into chat completions." + "description": "Unconstrained text format. Always `text`.", + "x-stainless-const": true, + "default": "text" } }, - "description": "The extended top-level chat completion response model for the Azure OpenAI service.\nThis model adds Responsible AI content filter annotations for prompt input." + "description": "Unconstrained free-form text.", + "title": "Text format" }, - "AzureCreateChatCompletionStreamResponse": { + "OpenAI.CustomToolChatCompletions": { "type": "object", "required": [ - "id", - "choices", - "created", - "model", - "object" + "type", + "custom" ], "properties": { - "id": { + "type": { "type": "string", - "description": "A unique identifier for the chat completion. Each chunk has the same ID." - }, - "choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "delta": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionStreamResponseDelta" - }, - "logprobs": { - "type": "object", - "properties": { - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" - }, - "nullable": true, - "description": "A list of message content tokens with log probability information.", - "readOnly": true - }, - "refusal": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionTokenLogprob" - }, - "nullable": true, - "description": "A list of message refusal tokens with log probability information.", - "readOnly": true - } - }, - "required": [ - "content", - "refusal" - ], - "nullable": true, - "description": "Log probability information for the choice." - }, - "finish_reason": { - "type": "string", - "enum": [ - "stop", - "length", - "tool_calls", - "content_filter", - "function_call" - ], - "nullable": true, - "description": "The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence,\n`length` if the maximum number of tokens specified in the request was reached,\n`content_filter` if content was omitted due to a flag from our content filters,\n`tool_calls` if the model called a tool, or `function_call` (deprecated) if the model called a function." - }, - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the choice in the list of choices." - } - }, - "required": [ - "delta", - "finish_reason", - "index" - ] - }, - "description": "A list of chat completion choices. Can contain more than one elements if `n` is greater than 1. Can also be empty for the\nlast chunk if you set `stream_options: {\"include_usage\": true}`." - }, - "created": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) of when the chat completion was created. Each chunk has the same timestamp." + "enum": [ + "custom" + ], + "description": "The type of the custom tool. Always `custom`.", + "x-stainless-const": true }, - "model": { - "type": "string", - "description": "The model to generate the completion." + "custom": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.CustomToolChatCompletionsCustom" + } + ], + "description": "Properties of the custom tool.", + "title": "Custom tool properties" + } + }, + "description": "A custom tool that processes input using a specified format.", + "title": "Custom tool" + }, + "OpenAI.CustomToolChatCompletionsCustom": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" }, - "system_fingerprint": { - "type": "string", - "description": "This fingerprint represents the backend configuration that the model runs with.\nCan be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism." + "description": { + "type": "string" }, - "object": { + "format": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CustomToolChatCompletionsCustomFormatText" + }, + { + "$ref": "#/components/schemas/OpenAI.CustomToolChatCompletionsCustomFormatGrammar" + } + ] + } + } + }, + "OpenAI.CustomToolChatCompletionsCustomFormatGrammar": { + "type": "object", + "required": [ + "type", + "grammar" + ], + "properties": { + "type": { "type": "string", "enum": [ - "chat.completion.chunk" + "grammar" ], - "description": "The object type, which is always `chat.completion.chunk`." + "x-stainless-const": true }, - "usage": { - "type": "object", + "grammar": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.CompletionUsage" + "$ref": "#/components/schemas/OpenAI.CustomToolChatCompletionsCustomFormatGrammarGrammar" } ], - "nullable": true, - "description": "An optional field that will only be present when you set\n`stream_options: {\"include_usage\": true}` in your request. When present, it\ncontains a null value **except for the last chunk** which contains the\ntoken usage statistics for the entire request.\n\n**NOTE:** If the stream is interrupted or cancelled, you may not\nreceive the final usage chunk which contains the total token usage for\nthe request." - }, - "delta": { - "$ref": "#/components/schemas/AzureChatCompletionStreamResponseDelta" + "title": "Grammar format" + } + } + }, + "OpenAI.CustomToolChatCompletionsCustomFormatGrammarGrammar": { + "type": "object", + "required": [ + "definition", + "syntax" + ], + "properties": { + "definition": { + "type": "string" }, - "content_filter_results": { - "$ref": "#/components/schemas/AzureContentFilterResultForChoice" + "syntax": { + "type": "string", + "enum": [ + "lark", + "regex" + ] + } + } + }, + "OpenAI.CustomToolChatCompletionsCustomFormatText": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ], + "x-stainless-const": true } } }, - "AzureCreateEmbeddingRequest": { + "OpenAI.CustomToolParam": { "type": "object", "required": [ - "model", - "input" + "type", + "name" ], "properties": { - "model": { + "type": { "type": "string", - "description": "The model to use for the embedding request." + "enum": [ + "custom" + ], + "description": "The type of the custom tool. Always `custom`.", + "x-stainless-const": true, + "default": "custom" }, - "input": { + "name": { + "type": "string", + "description": "The name of the custom tool, used to identify it in tool calls." + }, + "description": { + "type": "string", + "description": "Optional description of the custom tool, used to provide more context." + }, + "format": { "anyOf": [ { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - } + "$ref": "#/components/schemas/OpenAI.CustomTextFormatParam" }, { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - } - } + "$ref": "#/components/schemas/OpenAI.CustomGrammarFormatParam" } ], - "description": "Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and any array must be 2048 dimensions or less. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens. In addition to the per-input token limit, all embedding models enforce a maximum of 300,000 tokens summed across all inputs in a single request." + "description": "The input format for the custom tool. Default is unconstrained text." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Tool" + } + ], + "description": "A custom tool that processes input using a specified format. Learn more about [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools)", + "title": "Custom tool" + }, + "OpenAI.DeleteFileResponse": { + "type": "object", + "required": [ + "id", + "object", + "deleted" + ], + "properties": { + "id": { + "type": "string" }, - "encoding_format": { + "object": { "type": "string", "enum": [ - "float", - "base64" + "file" ], - "description": "The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/).", - "default": "float" + "x-stainless-const": true }, - "dimensions": { - "type": "integer", - "format": "int32", - "minimum": 1, - "description": "The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models." - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids)." + "deleted": { + "type": "boolean" } } }, - "AzureCreateFileRequestMultiPart": { + "OpenAI.DeleteFineTuningCheckpointPermissionResponse": { "type": "object", "required": [ - "file", - "expires_after", - "purpose" + "id", + "object", + "deleted" ], "properties": { - "file": { + "id": { "type": "string", - "format": "binary" - }, - "expires_after": { - "type": "object", - "properties": { - "seconds": { - "type": "integer", - "format": "int32" - }, - "anchor": { - "$ref": "#/components/schemas/AzureFileExpiryAnchor" - } - }, - "required": [ - "seconds", - "anchor" - ] + "description": "The ID of the fine-tuned model checkpoint permission that was deleted." }, - "purpose": { + "object": { "type": "string", "enum": [ - "assistants", - "batch", - "fine-tune", - "evals" + "checkpoint.permission" ], - "description": "The intended purpose of the uploaded file. One of: - `assistants`: Used in the Assistants API - `batch`: Used in the Batch API - `fine-tune`: Used for fine-tuning - `evals`: Used for eval data sets" + "description": "The object type, which is always \"checkpoint.permission\".", + "x-stainless-const": true + }, + "deleted": { + "type": "boolean", + "description": "Whether the fine-tuned model checkpoint permission was successfully deleted." } } }, - "AzureCreateResponse": { + "OpenAI.DeleteMessageResponse": { "type": "object", "required": [ - "model" + "id", + "deleted", + "object" ], "properties": { - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - }, - "temperature": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 2, - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.\nWe generally recommend altering this or `top_p` but not both.", - "default": 1 - }, - "top_p": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 1, - "description": "An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability\nmass. So 0.1 means only the tokens comprising the top 10% probability mass\nare considered.\n\nWe generally recommend altering this or `temperature` but not both.", - "default": 1 - }, - "user": { - "type": "string", - "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids)." - }, - "top_logprobs": { - "type": "integer", - "format": "int32", - "minimum": 0, - "maximum": 20, - "description": "An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability." - }, - "previous_response_id": { - "type": "string", - "nullable": true, - "description": "The unique ID of the previous response to the model. Use this to\ncreate multi-turn conversations. Learn more about\n[conversation state](/docs/guides/conversation-state)." - }, - "reasoning": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Reasoning" - } - ], - "nullable": true - }, - "background": { - "type": "boolean", - "nullable": true, - "description": "Whether to run the model response in the background.\n[Learn more](/docs/guides/background).", - "default": false - }, - "max_output_tokens": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An upper bound for the number of tokens that can be generated for a response, including visible output tokens and [reasoning tokens](/docs/guides/reasoning)." - }, - "max_tool_calls": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored." - }, - "text": { - "type": "object", - "properties": { - "format": { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" - } - }, - "description": "Configuration options for a text response from the model. Can be plain\ntext or structured JSON data. Learn more:\n- [Text inputs and outputs](/docs/guides/text)\n- [Structured Outputs](/docs/guides/structured-outputs)" - }, - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Tool" - }, - "description": "An array of tools the model may call while generating a response. You \ncan specify which tool to use by setting the `tool_choice` parameter.\n\nThe two categories of tools you can provide the model are:\n\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\n model's capabilities, like file search.\n- **Function calls (custom tools)**: Functions that are defined by you,\n enabling the model to call your own code." - }, - "tool_choice": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.ToolChoiceOptions" - }, - { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" - } - ], - "description": "How the model should select which tool (or tools) to use when generating\na response. See the `tools` parameter to see how to specify which tools\nthe model can call." + "id": { + "type": "string" }, - "prompt": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Prompt" - } - ], - "nullable": true + "deleted": { + "type": "boolean" }, - "truncation": { + "object": { "type": "string", "enum": [ - "auto", - "disabled" - ], - "nullable": true, - "description": "The truncation strategy to use for the model response.\n- `auto`: If the context of this response and previous ones exceeds\n the model's context window size, the model will truncate the\n response to fit the context window by dropping input items in the\n middle of the conversation.\n- `disabled` (default): If a model response will exceed the context window\n size for a model, the request will fail with a 400 error.", - "default": "disabled" - }, - "input": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.ImplicitUserMessage" - }, - { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } - ] - } - } + "thread.message.deleted" ], - "description": "Text, image, or file inputs to the model, used to generate a response.\n\nLearn more:\n- [Text inputs and outputs](/docs/guides/text)\n- [Image inputs](/docs/guides/images)\n- [File inputs](/docs/guides/pdf-files)\n- [Conversation state](/docs/guides/conversation-state)\n- [Function calling](/docs/guides/function-calling)" + "x-stainless-const": true + } + } + }, + "OpenAI.DeleteModelResponse": { + "type": "object", + "required": [ + "id", + "deleted", + "object" + ], + "properties": { + "id": { + "type": "string" }, - "include": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Includable" - }, - "nullable": true, - "description": "Specify additional output data to include in the model response. Currently\nsupported values are:\n- `code_interpreter_call.outputs`: Includes the outputs of python code execution\n in code interpreter tool call items.\n- `computer_call_output.output.image_url`: Include image urls from the computer call output.\n- `file_search_call.results`: Include the search results of\n the file search tool call.\n- `message.input_image.image_url`: Include image urls from the input message.\n- `message.output_text.logprobs`: Include logprobs with assistant messages.\n- `reasoning.encrypted_content`: Includes an encrypted version of reasoning\n tokens in reasoning item outputs. This enables reasoning items to be used in\n multi-turn conversations when using the Responses API statelessly (like\n when the `store` parameter is set to `false`, or when an organization is\n enrolled in the zero data retention program)." + "deleted": { + "type": "boolean" }, - "parallel_tool_calls": { - "type": "boolean", - "nullable": true, - "description": "Whether to allow the model to run tool calls in parallel.", - "default": true + "object": { + "type": "string" + } + } + }, + "OpenAI.DeleteThreadResponse": { + "type": "object", + "required": [ + "id", + "deleted", + "object" + ], + "properties": { + "id": { + "type": "string" }, - "store": { - "type": "boolean", - "nullable": true, - "description": "Whether to store the generated model response for later retrieval via\nAPI.", - "default": true + "deleted": { + "type": "boolean" }, - "instructions": { + "object": { "type": "string", - "nullable": true, - "description": "A system (or developer) message inserted into the model's context.\n\nWhen using along with `previous_response_id`, the instructions from a previous\nresponse will not be carried over to the next response. This makes it simple\nto swap out system (or developer) messages in new responses." + "enum": [ + "thread.deleted" + ], + "x-stainless-const": true + } + } + }, + "OpenAI.DeleteVectorStoreFileResponse": { + "type": "object", + "required": [ + "id", + "deleted", + "object" + ], + "properties": { + "id": { + "type": "string" }, - "stream": { - "type": "boolean", - "nullable": true, - "description": "If set to true, the model response data will be streamed to the client\nas it is generated using [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).\nSee the [Streaming section below](/docs/api-reference/responses-streaming)\nfor more information.", - "default": false + "deleted": { + "type": "boolean" }, - "model": { + "object": { "type": "string", - "description": "The model deployment to use for the creation of this response." + "enum": [ + "vector_store.file.deleted" + ], + "x-stainless-const": true } } }, - "AzureErrorResponse": { + "OpenAI.DeleteVectorStoreResponse": { "type": "object", + "required": [ + "id", + "deleted", + "object" + ], "properties": { - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "The distinct, machine-generated identifier for the error." - }, - "message": { - "type": "string", - "description": "A human-readable message associated with the error." - }, - "param": { - "type": "string", - "description": "If applicable, the request input parameter associated with the error" - }, - "type": { - "type": "string", - "enum": [ - "error" - ], - "description": "The object type, always 'error.'" - }, - "inner_error": {} - }, - "description": "The error details." + "id": { + "type": "string" + }, + "deleted": { + "type": "boolean" + }, + "object": { + "type": "string", + "enum": [ + "vector_store.deleted" + ], + "x-stainless-const": true } } }, - "AzureEvalAPICompletionsSamplingParams": { + "OpenAI.DeletedConversationResource": { "type": "object", + "required": [ + "object", + "deleted", + "id" + ], "properties": { - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionTool" - } + "object": { + "type": "string", + "enum": [ + "conversation.deleted" + ], + "x-stainless-const": true, + "default": "conversation.deleted" }, - "parallel_tool_calls": { + "deleted": { "type": "boolean" }, - "response_format": { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" + "id": { + "type": "string" + } + } + }, + "OpenAI.DoubleClickAction": { + "type": "object", + "required": [ + "type", + "x", + "y" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "double_click" + ], + "description": "Specifies the event type. For a double click action, this property is always set to `double_click`.", + "x-stainless-const": true, + "default": "double_click" + }, + "x": { + "type": "integer", + "description": "The x-coordinate where the double click occurred." + }, + "y": { + "type": "integer", + "description": "The y-coordinate where the double click occurred." } }, "allOf": [ { - "$ref": "#/components/schemas/AzureEvalAPIModelSamplingParams" + "$ref": "#/components/schemas/OpenAI.ComputerAction" } - ] + ], + "description": "A double click action.", + "title": "DoubleClick" }, - "AzureEvalAPIModelSamplingParams": { + "OpenAI.Drag": { "type": "object", + "required": [ + "type", + "path" + ], "properties": { - "seed": { - "type": "integer", - "format": "int32", - "description": "A seed value to initialize the randomness during sampling." + "type": { + "type": "string", + "enum": [ + "drag" + ], + "description": "Specifies the event type. For a drag action, this property is\n always set to `drag`.", + "x-stainless-const": true, + "default": "drag" }, - "temperature": { - "type": "number", - "format": "float", - "description": "A higher temperature increases randomness in the outputs." + "path": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.DragPoint" + }, + "description": "An array of coordinates representing the path of the drag action. Coordinates will appear as an array\n of objects, eg\n ```\n [\n { x: 100, y: 200 },\n { x: 200, y: 300 }\n ]\n ```" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + } + ], + "description": "A drag action.", + "title": "Drag" + }, + "OpenAI.DragPoint": { + "type": "object", + "required": [ + "x", + "y" + ], + "properties": { + "x": { + "type": "integer", + "description": "The x-coordinate." }, - "max_tokens": { + "y": { "type": "integer", - "format": "int32", - "description": "The maximum number of tokens in the generated output." + "description": "The y-coordinate." + } + }, + "description": "An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`.", + "title": "Coordinate" + }, + "OpenAI.EasyInputMessage": { + "type": "object", + "required": [ + "role", + "content", + "type" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "user", + "assistant", + "system", + "developer" + ], + "description": "The role of the message input. One of `user`, `assistant`, `system`, or\n `developer`." }, - "top_p": { - "type": "number", - "format": "float", - "description": "An alternative to temperature for nucleus sampling; 1.0 includes all tokens." + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/OpenAI.InputMessageContentList" + } + ], + "description": "Text, image, or audio input to the model, used to generate a response.\n Can also contain previous assistant responses." }, - "reasoning_effort": { + "type": { "type": "string", "enum": [ - "low", - "medium", - "high" + "message" ], - "description": "Controls the level of reasoning effort applied during generation." + "description": "The type of the message input. Always `message`.", + "x-stainless-const": true } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.InputItem" + } + ], + "description": "A message input to the model with a role indicating instruction following\nhierarchy. Instructions given with the `developer` or `system` role take\nprecedence over instructions given with the `user` role. Messages with the\n`assistant` role are presumed to have been generated by the model in previous\ninteractions.", + "title": "Input message" }, - "AzureEvalAPIResponseSamplingParams": { + "OpenAI.Embedding": { "type": "object", + "required": [ + "index", + "embedding", + "object" + ], "properties": { - "tools": { + "index": { + "type": "integer", + "description": "The index of the embedding in the list of embeddings." + }, + "embedding": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.Tool" - } - }, - "parallel_tool_calls": { - "type": "boolean" + "type": "number", + "format": "float" + }, + "description": "The embedding vector, which is a list of floats. The length of vector depends on the model as listed in the [embedding guide](https://platform.openai.com/docs/guides/embeddings)." }, - "response_format": { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" + "object": { + "type": "string", + "enum": [ + "embedding" + ], + "description": "The object type, which is always \"embedding\".", + "x-stainless-const": true } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureEvalAPIModelSamplingParams" - } - ] - }, - "AzureFileExpiryAnchor": { - "type": "string", - "enum": [ - "created_at" - ] + "description": "Represents an embedding vector returned by embedding endpoint.", + "x-oaiMeta": { + "name": "The embedding object", + "example": "{\n \"object\": \"embedding\",\n \"embedding\": [\n 0.0023064255,\n -0.009327292,\n .... (1536 floats total for ada-002)\n -0.0028842222,\n ],\n \"index\": 0\n}\n" + } }, - "AzureFineTuneReinforcementMethod": { + "OpenAI.Eval": { "type": "object", "required": [ - "grader" + "object", + "id", + "name", + "data_source_config", + "testing_criteria", + "created_at", + "metadata" ], "properties": { - "grader": { + "object": { + "type": "string", + "enum": [ + "eval" + ], + "description": "The object type.", + "x-stainless-const": true, + "default": "eval" + }, + "id": { + "type": "string", + "description": "Unique identifier for the evaluation." + }, + "name": { + "type": "string", + "description": "The name of the evaluation." + }, + "data_source_config": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.GraderStringCheck" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" + "$ref": "#/components/schemas/OpenAI.EvalCustomDataSourceConfig" }, { - "$ref": "#/components/schemas/OpenAI.GraderScoreModel" + "$ref": "#/components/schemas/OpenAI.EvalLogsDataSourceConfig" }, { - "$ref": "#/components/schemas/OpenAI.GraderMulti" + "$ref": "#/components/schemas/OpenAI.EvalStoredCompletionsDataSourceConfig" } - ] + ], + "description": "Configuration of data sources used in runs of the evaluation." }, - "response_format": { - "allOf": [ + "testing_criteria": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalLabelModelGrader" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderStringCheck" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderTextSimilarity" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderPython" + }, + { + "$ref": "#/components/schemas/OpenAI.EvalGraderScoreModel" + }, + { + "$ref": "#/components/schemas/EvalGraderEndpoint" + } + ] + }, + "description": "A list of testing criteria." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the eval was created." + }, + "metadata": { + "anyOf": [ { - "$ref": "#/components/schemas/ResponseFormatJSONSchemaRequest" + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" } - ], - "description": "Response format to be used while sampling during RFT training" - }, - "hyperparameters": { - "$ref": "#/components/schemas/OpenAI.FineTuneReinforcementHyperparameters" + ] } + }, + "description": "An Eval object with a data source config and testing criteria.\nAn Eval represents a task to be done for your LLM integration.\nLike:\n- Improve the quality of my chatbot\n- See how well my chatbot handles customer support\n- Check if o4-mini is better at my usecase than gpt-4o", + "title": "Eval", + "x-oaiMeta": { + "name": "The eval object", + "group": "evals", + "example": "{\n \"object\": \"eval\",\n \"id\": \"eval_67abd54d9b0081909a86353f6fb9317a\",\n \"data_source_config\": {\n \"type\": \"custom\",\n \"item_schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"label\": {\"type\": \"string\"},\n },\n \"required\": [\"label\"]\n },\n \"include_sample_schema\": true\n },\n \"testing_criteria\": [\n {\n \"name\": \"My string check grader\",\n \"type\": \"string_check\",\n \"input\": \"{{sample.output_text}}\",\n \"reference\": \"{{item.label}}\",\n \"operation\": \"eq\",\n }\n ],\n \"name\": \"External Data Eval\",\n \"created_at\": 1739314509,\n \"metadata\": {\n \"test\": \"synthetics\",\n }\n}\n" } }, - "AzureListFilesResponse": { + "OpenAI.EvalApiError": { "type": "object", "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" + "code", + "message" ], "properties": { - "object": { + "code": { "type": "string", - "enum": [ - "list" - ] - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AzureOpenAIFile" - } - }, - "first_id": { - "type": "string" - }, - "last_id": { - "type": "string" + "description": "The error code." }, - "has_more": { - "type": "boolean" + "message": { + "type": "string", + "description": "The error message." } + }, + "description": "An object representing an error response from the Eval API.", + "title": "EvalApiError", + "x-oaiMeta": { + "name": "The API error object", + "group": "evals", + "example": "{\n \"code\": \"internal_error\",\n \"message\": \"The eval run failed due to an internal error.\"\n}\n" } }, - "AzureOpenAIFile": { + "OpenAI.EvalCustomDataSourceConfig": { "type": "object", "required": [ - "id", - "bytes", - "created_at", - "filename", - "object", - "purpose", - "status" + "type", + "schema" ], "properties": { - "id": { - "type": "string", - "description": "The file identifier, which can be referenced in the API endpoints." - }, - "bytes": { - "type": "integer", - "format": "int64", - "nullable": true, - "description": "The size of the file, in bytes." - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the file was created." - }, - "expires_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the file will expire." - }, - "filename": { - "type": "string", - "description": "The name of the file." - }, - "object": { - "type": "string", - "enum": [ - "file" - ], - "description": "The object type, which is always `file`." - }, - "status_details": { - "type": "string", - "description": "Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`.", - "deprecated": true - }, - "purpose": { + "type": { "type": "string", "enum": [ - "assistants", - "assistants_output", - "batch", - "batch_output", - "fine-tune", - "fine-tune-results", - "evals" + "custom" ], - "description": "The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`." + "description": "The type of data source. Always `custom`.", + "x-stainless-const": true, + "default": "custom" }, - "status": { - "type": "string", - "enum": [ - "uploaded", - "pending", - "running", - "processed", - "error", - "deleting", - "deleted" - ] + "schema": { + "type": "object", + "unevaluatedProperties": {}, + "description": "The json schema for the run data source items.\n Learn how to build JSON schemas [here](https://json-schema.org/)." } + }, + "description": "A CustomDataSourceConfig which specifies the schema of your `item` and optionally `sample` namespaces.\nThe response schema defines the shape of the data that will be:\n- Used to define your testing criteria and\n- What data is required when creating a run", + "title": "CustomDataSourceConfig", + "x-oaiMeta": { + "name": "The eval custom data source config object", + "group": "evals", + "example": "{\n \"type\": \"custom\",\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"item\": {\n \"type\": \"object\",\n \"properties\": {\n \"label\": {\"type\": \"string\"},\n },\n \"required\": [\"label\"]\n }\n },\n \"required\": [\"item\"]\n }\n}\n" } }, - "AzurePiiSubCategoryResult": { + "OpenAI.EvalGraderPython": { "type": "object", "required": [ - "sub_category", - "filtered", - "detected", - "redacted" + "type", + "name", + "source" ], "properties": { - "sub_category": { + "type": { "type": "string", - "description": "The PIIHarmSubCategory that was evaluated." + "enum": [ + "python" + ], + "description": "The object type, which is always `python`.", + "x-stainless-const": true }, - "filtered": { - "type": "boolean", - "description": "Whether the content detection resulted in a content filtering action for this subcategory." + "name": { + "type": "string", + "description": "The name of the grader." }, - "detected": { - "type": "boolean", - "description": "Whether the labeled content subcategory was detected in the content." + "source": { + "type": "string", + "description": "The source code of the python script." }, - "redacted": { - "type": "boolean", - "description": "Whether the content was redacted for this subcategory." + "image_tag": { + "type": "string", + "description": "The image tag to use for the python script." + }, + "pass_threshold": { + "type": "number", + "description": "The threshold for the score." } }, - "description": "Result details for individual PIIHarmSubCategory(s)." + "title": "EvalGraderPython" }, - "AzureResponse": { + "OpenAI.EvalGraderScoreModel": { "type": "object", "required": [ - "metadata", - "temperature", - "top_p", - "user", - "id", - "object", - "created_at", - "error", - "incomplete_details", - "output", - "instructions", - "parallel_tool_calls", - "model" + "type", + "name", + "model", + "input" ], "properties": { - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - }, - "temperature": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 2, - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.\nWe generally recommend altering this or `top_p` but not both." - }, - "top_p": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 1, - "description": "An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability\nmass. So 0.1 means only the tokens comprising the top 10% probability mass\nare considered.\n\nWe generally recommend altering this or `temperature` but not both." - }, - "user": { + "type": { "type": "string", - "nullable": true, - "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids)." + "enum": [ + "score_model" + ], + "description": "The object type, which is always `score_model`.", + "x-stainless-const": true }, - "top_logprobs": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability." + "name": { + "type": "string", + "description": "The name of the grader." }, - "previous_response_id": { + "model": { "type": "string", - "nullable": true, - "description": "The unique ID of the previous response to the model. Use this to\ncreate multi-turn conversations. Learn more about\n[conversation state](/docs/guides/conversation-state)." + "description": "The model to use for the evaluation." }, - "reasoning": { - "type": "object", + "sampling_params": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Reasoning" + "$ref": "#/components/schemas/OpenAI.EvalGraderScoreModelSamplingParams" } ], - "nullable": true - }, - "background": { - "type": "boolean", - "nullable": true, - "description": "Whether to run the model response in the background.\n[Learn more](/docs/guides/background).", - "default": false - }, - "max_output_tokens": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An upper bound for the number of tokens that can be generated for a response, including visible output tokens and [reasoning tokens](/docs/guides/reasoning)." - }, - "max_tool_calls": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored." - }, - "text": { - "type": "object", - "properties": { - "format": { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" - } + "description": "The sampling parameters for the model." + }, + "input": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalItem" }, - "description": "Configuration options for a text response from the model. Can be plain\ntext or structured JSON data. Learn more:\n- [Text inputs and outputs](/docs/guides/text)\n- [Structured Outputs](/docs/guides/structured-outputs)" + "description": "The input text. This may include template strings." }, - "tools": { + "range": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.Tool" + "type": "number" }, - "description": "An array of tools the model may call while generating a response. You\ncan specify which tool to use by setting the `tool_choice` parameter.\n\nThe two categories of tools you can provide the model are:\n\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\n model's capabilities, like [web search](/docs/guides/tools-web-search)\n or [file search](/docs/guides/tools-file-search). Learn more about\n [built-in tools](/docs/guides/tools).\n- **Function calls (custom tools)**: Functions that are defined by you,\n enabling the model to call your own code. Learn more about\n [function calling](/docs/guides/function-calling)." + "description": "The range of the score. Defaults to `[0, 1]`." }, - "tool_choice": { + "pass_threshold": { + "type": "number", + "description": "The threshold for the score." + } + }, + "title": "EvalGraderScoreModel" + }, + "OpenAI.EvalGraderScoreModelSamplingParams": { + "type": "object", + "properties": { + "seed": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceOptions" + "type": "integer" }, { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "type": "null" } - ], - "description": "How the model should select which tool (or tools) to use when generating\na response. See the `tools` parameter to see how to specify which tools\nthe model can call." + ] }, - "prompt": { - "type": "object", - "allOf": [ + "top_p": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.Prompt" + "type": "number" + }, + { + "type": "null" } ], - "nullable": true + "default": 1 }, - "truncation": { + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "max_completions_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "reasoning_effort": { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + } + } + }, + "OpenAI.EvalGraderStringCheck": { + "type": "object", + "required": [ + "type", + "name", + "input", + "reference", + "operation" + ], + "properties": { + "type": { "type": "string", "enum": [ - "auto", - "disabled" + "string_check" ], - "nullable": true, - "description": "The truncation strategy to use for the model response.\n- `auto`: If the context of this response and previous ones exceeds\n the model's context window size, the model will truncate the\n response to fit the context window by dropping input items in the\n middle of the conversation.\n- `disabled` (default): If a model response will exceed the context window\n size for a model, the request will fail with a 400 error.", - "default": "disabled" + "description": "The object type, which is always `string_check`.", + "x-stainless-const": true }, - "id": { + "name": { "type": "string", - "description": "Unique identifier for this Response." + "description": "The name of the grader." }, - "object": { + "input": { "type": "string", - "enum": [ - "response" - ], - "description": "The object type of this resource - always set to `response`." + "description": "The input text. This may include template strings." }, - "status": { + "reference": { "type": "string", - "enum": [ - "completed", - "failed", - "in_progress", - "cancelled", - "queued", - "incomplete" - ], - "description": "The status of the response generation. One of `completed`, `failed`,\n`in_progress`, `cancelled`, `queued`, or `incomplete`." - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "Unix timestamp (in seconds) of when this Response was created." + "description": "The reference text. This may include template strings." }, - "error": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseError" - } + "operation": { + "type": "string", + "enum": [ + "eq", + "ne", + "like", + "ilike" ], - "nullable": true - }, - "incomplete_details": { - "type": "object", - "properties": { - "reason": { - "type": "string", - "enum": [ - "max_output_tokens", - "content_filter" - ], - "description": "The reason why the response is incomplete." - } - }, - "nullable": true, - "description": "Details about why the response is incomplete." - }, - "output": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemResource" - }, - "description": "An array of content items generated by the model.\n\n- The length and order of items in the `output` array is dependent\n on the model's response.\n- Rather than accessing the first item in the `output` array and\n assuming it's an `assistant` message with the content generated by\n the model, you might consider using the `output_text` property where\n supported in SDKs." - }, - "instructions": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } - } + "description": "The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`." + } + }, + "title": "StringCheckGrader" + }, + "OpenAI.EvalGraderTextSimilarity": { + "type": "object", + "required": [ + "type", + "name", + "input", + "reference", + "evaluation_metric", + "pass_threshold" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text_similarity" ], - "nullable": true, - "description": "A system (or developer) message inserted into the model's context.\n\nWhen using along with `previous_response_id`, the instructions from a previous\nresponse will not be carried over to the next response. This makes it simple\nto swap out system (or developer) messages in new responses." + "description": "The type of grader.", + "x-stainless-const": true, + "default": "text_similarity" }, - "output_text": { + "name": { "type": "string", - "nullable": true, - "description": "SDK-only convenience property that contains the aggregated text output\nfrom all `output_text` items in the `output` array, if any are present.\nSupported in the Python and JavaScript SDKs." + "description": "The name of the grader." }, - "usage": { - "$ref": "#/components/schemas/OpenAI.ResponseUsage" + "input": { + "type": "string", + "description": "The text being graded." }, - "parallel_tool_calls": { - "type": "boolean", - "description": "Whether to allow the model to run tool calls in parallel.", - "default": true + "reference": { + "type": "string", + "description": "The text being graded against." }, - "model": { + "evaluation_metric": { "type": "string", - "description": "The model used to generate this response." + "enum": [ + "cosine", + "fuzzy_match", + "bleu", + "gleu", + "meteor", + "rouge_1", + "rouge_2", + "rouge_3", + "rouge_4", + "rouge_5", + "rouge_l" + ], + "description": "The evaluation metric to use. One of `cosine`, `fuzzy_match`, `bleu`,\n `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`,\n or `rouge_l`." + }, + "pass_threshold": { + "type": "number", + "description": "The threshold for the score." } - } + }, + "title": "EvalGraderTextSimilarity" }, - "AzureSearchChatDataSource": { + "OpenAI.EvalItem": { "type": "object", "required": [ - "type", - "parameters" + "role", + "content" ], "properties": { - "type": { + "role": { "type": "string", "enum": [ - "azure_search" + "user", + "assistant", + "system", + "developer" ], - "description": "The discriminated type identifier, which is always 'azure_search'." + "description": "The role of the message input. One of `user`, `assistant`, `system`, or\n `developer`." }, - "parameters": { - "type": "object", - "properties": { - "top_n_documents": { - "type": "integer", - "format": "int32", - "description": "The configured number of documents to feature in the query." - }, - "in_scope": { - "type": "boolean", - "description": "Whether queries should be restricted to use of the indexed data." - }, - "strictness": { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 5, - "description": "The configured strictness of the search relevance filtering.\nHigher strictness will increase precision but lower recall of the answer." - }, - "max_search_queries": { - "type": "integer", - "format": "int32", - "description": "The maximum number of rewritten queries that should be sent to the search provider for a single user message.\nBy default, the system will make an automatic determination." - }, - "allow_partial_result": { - "type": "boolean", - "description": "If set to true, the system will allow partial search results to be used and the request will fail if all\npartial queries fail. If not specified or specified as false, the request will fail if any search query fails.", - "default": false - }, - "include_contexts": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "citations", - "intent", - "all_retrieved_documents" - ] - }, - "maxItems": 3, - "description": "The output context properties to include on the response.\nBy default, citations and intent will be requested.", - "default": [ - "citations", - "intent" - ] - }, - "endpoint": { - "type": "string", - "format": "uri", - "description": "The absolute endpoint path for the Azure Search resource to use." - }, - "index_name": { - "type": "string", - "description": "The name of the index to use, as specified in the Azure Search resource." - }, - "authentication": { - "anyOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceApiKeyAuthenticationOptions" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceSystemAssignedManagedIdentityAuthenticationOptions" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceUserAssignedManagedIdentityAuthenticationOptions" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceAccessTokenAuthenticationOptions" - } - ], - "description": "The authentication mechanism to use with Azure Search." - }, - "fields_mapping": { - "type": "object", - "properties": { - "title_field": { - "type": "string", - "description": "The name of the index field to use as a title." - }, - "url_field": { - "type": "string", - "description": "The name of the index field to use as a URL." - }, - "filepath_field": { - "type": "string", - "description": "The name of the index field to use as a filepath." - }, - "content_fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The names of index fields that should be treated as content." - }, - "content_fields_separator": { - "type": "string", - "description": "The separator pattern that content fields should use." - }, - "vector_fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The names of fields that represent vector data." - }, - "image_vector_fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The names of fields that represent image vector data." - } - }, - "description": "The field mappings to use with the Azure Search resource." + "content": { + "anyOf": [ + { + "type": "string" }, - "query_type": { - "type": "string", - "enum": [ - "simple", - "semantic", - "vector", - "vector_simple_hybrid", - "vector_semantic_hybrid" - ], - "description": "The query type for the Azure Search resource to use." + { + "$ref": "#/components/schemas/OpenAI.InputTextContent" }, - "semantic_configuration": { - "type": "string", - "description": "Additional semantic configuration for the query." + { + "$ref": "#/components/schemas/OpenAI.EvalItemContentOutputText" }, - "filter": { - "type": "string", - "description": "A filter to apply to the search." + { + "$ref": "#/components/schemas/OpenAI.EvalItemContentInputImage" }, - "embedding_dependency": { - "anyOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceEndpointVectorizationSource" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceDeploymentNameVectorizationSource" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceIntegratedVectorizationSource" - } - ], - "description": "The vectorization source to use with Azure Search.\nSupported sources for Azure Search include endpoint, deployment name, and integrated." + { + "$ref": "#/components/schemas/OpenAI.InputAudio" + }, + { + "type": "array", + "items": {} } - }, - "required": [ - "endpoint", - "index_name", - "authentication" ], - "description": "The parameter information to control the use of the Azure Search data source." + "description": "Inputs to the model - can contain template strings." + }, + "type": { + "type": "string", + "enum": [ + "message" + ], + "description": "The type of the message input. Always `message`.", + "x-stainless-const": true } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSource" - } - ], - "description": "Represents a data source configuration that will use an Azure Search resource." + "description": "A message input to the model with a role indicating instruction following\nhierarchy. Instructions given with the `developer` or `system` role take\nprecedence over instructions given with the `user` role. Messages with the\n`assistant` role are presumed to have been generated by the model in previous\ninteractions.", + "title": "EvalItem" }, - "AzureUserSecurityContext": { + "OpenAI.EvalItemContentInputImage": { "type": "object", + "required": [ + "type", + "image_url" + ], "properties": { - "application_name": { - "type": "string", - "description": "The name of the application. Sensitive personal information should not be included in this field." - }, - "end_user_id": { + "type": { "type": "string", - "description": "This identifier is the Microsoft Entra ID (formerly Azure Active Directory) user object ID used to authenticate end-users within the generative AI application. Sensitive personal information should not be included in this field." + "enum": [ + "input_image" + ], + "x-stainless-const": true }, - "end_user_tenant_id": { - "type": "string", - "description": "The Microsoft 365 tenant ID the end user belongs to. It's required when the generative AI application is multitenant." + "image_url": { + "type": "string" }, - "source_ip": { - "type": "string", - "description": "Captures the original client's IP address." + "detail": { + "type": "string" } - }, - "description": "User security context contains several parameters that describe the application itself, and the end user that interacts with the application. These fields assist your security operations teams to investigate and mitigate security incidents by providing a comprehensive approach to protecting your AI applications. [Learn more](https://aka.ms/TP4AI/Documentation/EndUserContext) about protecting AI applications using Microsoft Defender for Cloud." - }, - "ChatCompletionMessageToolCallsItem": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCall" - }, - "description": "The tool calls generated by the model, such as function calls." + } }, - "CopiedAccountDetails": { + "OpenAI.EvalItemContentOutputText": { "type": "object", "required": [ - "destinationResourceId", - "region", - "status" + "type", + "text" ], "properties": { - "destinationResourceId": { - "type": "string", - "description": "The ID of the destination resource where the model was copied to." - }, - "region": { - "type": "string", - "description": "The region where the model was copied to." - }, - "status": { + "type": { "type": "string", "enum": [ - "Completed", - "Failed", - "InProgress" + "output_text" ], - "description": "The status of the copy operation." + "x-stainless-const": true + }, + "text": { + "type": "string" } } }, - "CopyModelRequest": { + "OpenAI.EvalJsonlFileContentSource": { "type": "object", "required": [ - "destinationResourceId", - "region" + "type", + "content" ], "properties": { - "destinationResourceId": { + "type": { "type": "string", - "description": "The ID of the destination Resource to copy." + "enum": [ + "file_content" + ], + "description": "The type of jsonl source. Always `file_content`.", + "x-stainless-const": true, + "default": "file_content" }, - "region": { - "type": "string", - "description": "The region to copy the model to." + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalJsonlFileContentSourceContent" + }, + "description": "The content of the jsonl file." + } + }, + "title": "EvalJsonlFileContentSource" + }, + "OpenAI.EvalJsonlFileContentSourceContent": { + "type": "object", + "required": [ + "item" + ], + "properties": { + "item": { + "type": "object", + "unevaluatedProperties": {} + }, + "sample": { + "type": "object", + "unevaluatedProperties": {} } } }, - "CopyModelResponse": { + "OpenAI.EvalJsonlFileIdSource": { "type": "object", "required": [ - "checkpointedModelName", - "fineTuningJobId", - "copiedAccountDetails" + "type", + "id" ], "properties": { - "checkpointedModelName": { + "type": { "type": "string", - "description": "The ID of the copied model." + "enum": [ + "file_id" + ], + "description": "The type of jsonl source. Always `file_id`.", + "x-stainless-const": true, + "default": "file_id" }, - "fineTuningJobId": { + "id": { "type": "string", - "description": "The ID of the fine-tuning job that the checkpoint was copied from." + "description": "The identifier of the file." + } + }, + "title": "EvalJsonlFileIdSource" + }, + "OpenAI.EvalList": { + "type": "object", + "required": [ + "object", + "data", + "first_id", + "last_id", + "has_more" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "list" + ], + "description": "The type of this object. It is always set to \"list\".", + "x-stainless-const": true, + "default": "list" }, - "copiedAccountDetails": { + "data": { "type": "array", "items": { - "$ref": "#/components/schemas/CopiedAccountDetails" + "$ref": "#/components/schemas/OpenAI.Eval" }, - "description": "The ID of the destination resource id where it was copied" + "description": "An array of eval objects." + }, + "first_id": { + "type": "string", + "description": "The identifier of the first eval in the data array." + }, + "last_id": { + "type": "string", + "description": "The identifier of the last eval in the data array." + }, + "has_more": { + "type": "boolean", + "description": "Indicates whether there are more evals available." } + }, + "description": "An object representing a list of evals.", + "title": "EvalList", + "x-oaiMeta": { + "name": "The eval list object", + "group": "evals", + "example": "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": \"eval\",\n \"id\": \"eval_67abd54d9b0081909a86353f6fb9317a\",\n \"data_source_config\": {\n \"type\": \"custom\",\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"item\": {\n \"type\": \"object\",\n \"properties\": {\n \"input\": {\n \"type\": \"string\"\n },\n \"ground_truth\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"input\",\n \"ground_truth\"\n ]\n }\n },\n \"required\": [\n \"item\"\n ]\n }\n },\n \"testing_criteria\": [\n {\n \"name\": \"String check\",\n \"id\": \"String check-2eaf2d8d-d649-4335-8148-9535a7ca73c2\",\n \"type\": \"string_check\",\n \"input\": \"{{item.input}}\",\n \"reference\": \"{{item.ground_truth}}\",\n \"operation\": \"eq\"\n }\n ],\n \"name\": \"External Data Eval\",\n \"created_at\": 1739314509,\n \"metadata\": {},\n }\n ],\n \"first_id\": \"eval_67abd54d9b0081909a86353f6fb9317a\",\n \"last_id\": \"eval_67abd54d9b0081909a86353f6fb9317a\",\n \"has_more\": true\n}\n" } }, - "ElasticsearchChatDataSource": { + "OpenAI.EvalLogsDataSourceConfig": { "type": "object", "required": [ "type", - "parameters" + "schema" ], "properties": { "type": { "type": "string", "enum": [ - "elasticsearch" + "logs" ], - "description": "The discriminated type identifier, which is always 'elasticsearch'." + "description": "The type of data source. Always `logs`.", + "x-stainless-const": true, + "default": "logs" }, - "parameters": { - "type": "object", - "properties": { - "top_n_documents": { - "type": "integer", - "format": "int32", - "description": "The configured number of documents to feature in the query." - }, - "in_scope": { - "type": "boolean", - "description": "Whether queries should be restricted to use of the indexed data." - }, - "strictness": { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 5, - "description": "The configured strictness of the search relevance filtering.\nHigher strictness will increase precision but lower recall of the answer." - }, - "max_search_queries": { - "type": "integer", - "format": "int32", - "description": "The maximum number of rewritten queries that should be sent to the search provider for a single user message.\nBy default, the system will make an automatic determination." - }, - "allow_partial_result": { - "type": "boolean", - "description": "If set to true, the system will allow partial search results to be used and the request will fail if all\npartial queries fail. If not specified or specified as false, the request will fail if any search query fails.", - "default": false - }, - "include_contexts": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "citations", - "intent", - "all_retrieved_documents" - ] - }, - "maxItems": 3, - "description": "The output context properties to include on the response.\nBy default, citations and intent will be requested.", - "default": [ - "citations", - "intent" - ] - }, - "endpoint": { - "type": "string", - "format": "uri" - }, - "index_name": { - "type": "string" - }, - "authentication": { - "anyOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceKeyAndKeyIdAuthenticationOptions" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceEncodedApiKeyAuthenticationOptions" - } - ] - }, - "fields_mapping": { - "type": "object", - "properties": { - "title_field": { - "type": "string" - }, - "url_field": { - "type": "string" - }, - "filepath_field": { - "type": "string" - }, - "content_fields": { - "type": "array", - "items": { - "type": "string" - } - }, - "content_fields_separator": { - "type": "string" - }, - "vector_fields": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "query_type": { - "type": "string", - "enum": [ - "simple", - "vector" - ] + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" }, - "embedding_dependency": { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" + { + "type": "null" } - }, - "required": [ - "endpoint", - "index_name", - "authentication" - ], - "description": "The parameter information to control the use of the Elasticsearch data source." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSource" + ] + }, + "schema": { + "type": "object", + "unevaluatedProperties": {}, + "description": "The json schema for the run data source items.\n Learn how to build JSON schemas [here](https://json-schema.org/)." } - ] + }, + "description": "A LogsDataSourceConfig which specifies the metadata property of your logs query.\nThis is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc.\nThe schema returned by this data source config is used to defined what variables are available in your evals.\n`item` and `sample` are both defined when using this data source config.", + "title": "LogsDataSourceConfig", + "x-oaiMeta": { + "name": "The logs data source object for evals", + "group": "evals", + "example": "{\n \"type\": \"logs\",\n \"metadata\": {\n \"language\": \"english\"\n },\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"item\": {\n \"type\": \"object\"\n },\n \"sample\": {\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"item\",\n \"sample\"\n }\n}\n" + } }, - "MongoDBChatDataSource": { + "OpenAI.EvalResponsesSource": { "type": "object", "required": [ - "type", - "parameters" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "mongo_db" + "responses" ], - "description": "The discriminated type identifier, which is always 'mongo_db'." + "description": "The type of run data source. Always `responses`." }, - "parameters": { - "type": "object", - "properties": { - "top_n_documents": { - "type": "integer", - "format": "int32", - "description": "The configured number of documents to feature in the query." - }, - "in_scope": { - "type": "boolean", - "description": "Whether queries should be restricted to use of the indexed data." + "metadata": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": {} }, - "strictness": { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 5, - "description": "The configured strictness of the search relevance filtering.\nHigher strictness will increase precision but lower recall of the answer." + { + "type": "null" + } + ] + }, + "model": { + "anyOf": [ + { + "type": "string" }, - "max_search_queries": { - "type": "integer", - "format": "int32", - "description": "The maximum number of rewritten queries that should be sent to the search provider for a single user message.\nBy default, the system will make an automatic determination." + { + "type": "null" + } + ] + }, + "instructions_search": { + "anyOf": [ + { + "type": "string" }, - "allow_partial_result": { - "type": "boolean", - "description": "If set to true, the system will allow partial search results to be used and the request will fail if all\npartial queries fail. If not specified or specified as false, the request will fail if any search query fails.", - "default": false + { + "type": "null" + } + ] + }, + "created_after": { + "anyOf": [ + { + "type": "integer" }, - "include_contexts": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "citations", - "intent", - "all_retrieved_documents" - ] - }, - "maxItems": 3, - "description": "The output context properties to include on the response.\nBy default, citations and intent will be requested.", - "default": [ - "citations", - "intent" - ] + { + "type": "null" + } + ] + }, + "created_before": { + "anyOf": [ + { + "type": "integer" }, - "endpoint": { - "type": "string", - "description": "The name of the MongoDB cluster endpoint." + { + "type": "null" + } + ] + }, + "reasoning_effort": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" }, - "database_name": { - "type": "string", - "description": "The name of the MongoDB database." + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" }, - "collection_name": { - "type": "string", - "description": "The name of the MongoDB collection." + { + "type": "null" + } + ] + }, + "top_p": { + "anyOf": [ + { + "type": "number" }, - "app_name": { - "type": "string", - "description": "The name of the MongoDB application." + { + "type": "null" + } + ] + }, + "users": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } }, - "index_name": { - "type": "string", - "description": "The name of the MongoDB index." + { + "type": "null" + } + ] + }, + "tools": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } }, - "authentication": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceUsernameAndPasswordAuthenticationOptions" - } - ], - "description": "The authentication mechanism to use with Pinecone.\nSupported authentication mechanisms for Pinecone include: username and password." + { + "type": "null" + } + ] + } + }, + "description": "A EvalResponsesSource object describing a run data source configuration.", + "title": "EvalResponsesSource", + "x-oaiMeta": { + "name": "The run data source object used to configure an individual run", + "group": "eval runs", + "example": "{\n \"type\": \"responses\",\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \"temperature\": 0.7,\n \"top_p\": 1.0,\n \"users\": [\"user1\", \"user2\"],\n \"tools\": [\"tool1\", \"tool2\"],\n \"instructions_search\": \"You are a coding assistant\"\n}\n" + } + }, + "OpenAI.EvalRun": { + "type": "object", + "required": [ + "object", + "id", + "eval_id", + "status", + "model", + "name", + "created_at", + "report_url", + "result_counts", + "per_model_usage", + "per_testing_criteria_results", + "data_source", + "metadata", + "error" + ], + "properties": { + "object": { + "type": "string", + "enum": [ + "eval.run" + ], + "description": "The type of the object. Always \"eval.run\".", + "x-stainless-const": true, + "default": "eval.run" + }, + "id": { + "type": "string", + "description": "Unique identifier for the evaluation run." + }, + "eval_id": { + "type": "string", + "description": "The identifier of the associated evaluation." + }, + "status": { + "type": "string", + "description": "The status of the evaluation run." + }, + "model": { + "type": "string", + "description": "The model that is evaluated, if applicable." + }, + "name": { + "type": "string", + "description": "The name of the evaluation run." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) when the evaluation run was created." + }, + "report_url": { + "type": "string", + "description": "The URL to the rendered evaluation run report on the UI dashboard." + }, + "result_counts": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.EvalRunResultCounts" + } + ], + "description": "Counters summarizing the outcomes of the evaluation run." + }, + "per_model_usage": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalRunPerModelUsage" + }, + "description": "Usage statistics for each model during the evaluation run." + }, + "per_testing_criteria_results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalRunPerTestingCriteriaResults" + }, + "description": "Results per testing criteria applied during the evaluation run." + }, + "data_source": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CreateEvalJsonlRunDataSource" }, - "embedding_dependency": { - "anyOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceEndpointVectorizationSource" - }, - { - "$ref": "#/components/schemas/AzureChatDataSourceDeploymentNameVectorizationSource" - } - ], - "description": "The vectorization source to use as an embedding dependency for the MongoDB data source.\nSupported vectorization sources for MongoDB include: endpoint, deployment name." + { + "$ref": "#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSource" }, - "fields_mapping": { - "type": "object", - "properties": { - "content_fields": { - "type": "array", - "items": { - "type": "string" - } - }, - "vector_fields": { - "type": "array", - "items": { - "type": "string" - } - }, - "title_field": { - "type": "string" - }, - "url_field": { - "type": "string" - }, - "filepath_field": { - "type": "string" - }, - "content_fields_separator": { - "type": "string" - } - }, - "required": [ - "content_fields", - "vector_fields" - ], - "description": "Field mappings to apply to data used by the MongoDB data source.\nNote that content and vector field mappings are required for MongoDB." + { + "$ref": "#/components/schemas/OpenAI.CreateEvalResponsesRunDataSource" } - }, - "required": [ - "endpoint", - "database_name", - "collection_name", - "app_name", - "index_name", - "authentication", - "embedding_dependency", - "fields_mapping" ], - "description": "The parameter information to control the use of the MongoDB data source." + "description": "Information about the run's data source." + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "error": { + "$ref": "#/components/schemas/OpenAI.EvalApiError" } }, - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSource" - } - ] + "description": "A schema representing an evaluation run.", + "title": "EvalRun", + "x-oaiMeta": { + "name": "The eval run object", + "group": "evals", + "example": "{\n \"object\": \"eval.run\",\n \"id\": \"evalrun_67e57965b480819094274e3a32235e4c\",\n \"eval_id\": \"eval_67e579652b548190aaa83ada4b125f47\",\n \"report_url\": \"https://platform.openai.com/evaluations/eval_67e579652b548190aaa83ada4b125f47?run_id=evalrun_67e57965b480819094274e3a32235e4c\",\n \"status\": \"queued\",\n \"model\": \"gpt-4o-mini\",\n \"name\": \"gpt-4o-mini\",\n \"created_at\": 1743092069,\n \"result_counts\": {\n \"total\": 0,\n \"errored\": 0,\n \"failed\": 0,\n \"passed\": 0\n },\n \"per_model_usage\": null,\n \"per_testing_criteria_results\": null,\n \"data_source\": {\n \"type\": \"completions\",\n \"source\": {\n \"type\": \"file_content\",\n \"content\": [\n {\n \"item\": {\n \"input\": \"Tech Company Launches Advanced Artificial Intelligence Platform\",\n \"ground_truth\": \"Technology\"\n }\n },\n {\n \"item\": {\n \"input\": \"Central Bank Increases Interest Rates Amid Inflation Concerns\",\n \"ground_truth\": \"Markets\"\n }\n },\n {\n \"item\": {\n \"input\": \"International Summit Addresses Climate Change Strategies\",\n \"ground_truth\": \"World\"\n }\n },\n {\n \"item\": {\n \"input\": \"Major Retailer Reports Record-Breaking Holiday Sales\",\n \"ground_truth\": \"Business\"\n }\n },\n {\n \"item\": {\n \"input\": \"National Team Qualifies for World Championship Finals\",\n \"ground_truth\": \"Sports\"\n }\n },\n {\n \"item\": {\n \"input\": \"Stock Markets Rally After Positive Economic Data Released\",\n \"ground_truth\": \"Markets\"\n }\n },\n {\n \"item\": {\n \"input\": \"Global Manufacturer Announces Merger with Competitor\",\n \"ground_truth\": \"Business\"\n }\n },\n {\n \"item\": {\n \"input\": \"Breakthrough in Renewable Energy Technology Unveiled\",\n \"ground_truth\": \"Technology\"\n }\n },\n {\n \"item\": {\n \"input\": \"World Leaders Sign Historic Climate Agreement\",\n \"ground_truth\": \"World\"\n }\n },\n {\n \"item\": {\n \"input\": \"Professional Athlete Sets New Record in Championship Event\",\n \"ground_truth\": \"Sports\"\n }\n },\n {\n \"item\": {\n \"input\": \"Financial Institutions Adapt to New Regulatory Requirements\",\n \"ground_truth\": \"Business\"\n }\n },\n {\n \"item\": {\n \"input\": \"Tech Conference Showcases Advances in Artificial Intelligence\",\n \"ground_truth\": \"Technology\"\n }\n },\n {\n \"item\": {\n \"input\": \"Global Markets Respond to Oil Price Fluctuations\",\n \"ground_truth\": \"Markets\"\n }\n },\n {\n \"item\": {\n \"input\": \"International Cooperation Strengthened Through New Treaty\",\n \"ground_truth\": \"World\"\n }\n },\n {\n \"item\": {\n \"input\": \"Sports League Announces Revised Schedule for Upcoming Season\",\n \"ground_truth\": \"Sports\"\n }\n }\n ]\n },\n \"input_messages\": {\n \"type\": \"template\",\n \"template\": [\n {\n \"type\": \"message\",\n \"role\": \"developer\",\n \"content\": {\n \"type\": \"input_text\",\n \"text\": \"Categorize a given news headline into one of the following topics: Technology, Markets, World, Business, or Sports.\\n\\n# Steps\\n\\n1. Analyze the content of the news headline to understand its primary focus.\\n2. Extract the subject matter, identifying any key indicators or keywords.\\n3. Use the identified indicators to determine the most suitable category out of the five options: Technology, Markets, World, Business, or Sports.\\n4. Ensure only one category is selected per headline.\\n\\n# Output Format\\n\\nRespond with the chosen category as a single word. For instance: \\\"Technology\\\", \\\"Markets\\\", \\\"World\\\", \\\"Business\\\", or \\\"Sports\\\".\\n\\n# Examples\\n\\n**Input**: \\\"Apple Unveils New iPhone Model, Featuring Advanced AI Features\\\" \\n**Output**: \\\"Technology\\\"\\n\\n**Input**: \\\"Global Stocks Mixed as Investors Await Central Bank Decisions\\\" \\n**Output**: \\\"Markets\\\"\\n\\n**Input**: \\\"War in Ukraine: Latest Updates on Negotiation Status\\\" \\n**Output**: \\\"World\\\"\\n\\n**Input**: \\\"Microsoft in Talks to Acquire Gaming Company for $2 Billion\\\" \\n**Output**: \\\"Business\\\"\\n\\n**Input**: \\\"Manchester United Secures Win in Premier League Football Match\\\" \\n**Output**: \\\"Sports\\\" \\n\\n# Notes\\n\\n- If the headline appears to fit into more than one category, choose the most dominant theme.\\n- Keywords or phrases such as \\\"stocks\\\", \\\"company acquisition\\\", \\\"match\\\", or technological brands can be good indicators for classification.\\n\"\n }\n },\n {\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": {\n \"type\": \"input_text\",\n \"text\": \"{{item.input}}\"\n }\n }\n ]\n },\n \"model\": \"gpt-4o-mini\",\n \"sampling_params\": {\n \"seed\": 42,\n \"temperature\": 1.0,\n \"top_p\": 1.0,\n \"max_completions_tokens\": 2048\n }\n },\n \"error\": null,\n \"metadata\": {}\n}\n" + } }, - "OpenAI.Annotation": { + "OpenAI.EvalRunList": { "type": "object", "required": [ - "type" + "object", + "data", + "first_id", + "last_id", + "has_more" ], - "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.AnnotationType" + "properties": { + "object": { + "type": "string", + "enum": [ + "list" + ], + "description": "The type of this object. It is always set to \"list\".", + "x-stainless-const": true, + "default": "list" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalRun" + }, + "description": "An array of eval run objects." + }, + "first_id": { + "type": "string", + "description": "The identifier of the first eval run in the data array." + }, + "last_id": { + "type": "string", + "description": "The identifier of the last eval run in the data array." + }, + "has_more": { + "type": "boolean", + "description": "Indicates whether there are more evals available." } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "file_citation": "#/components/schemas/OpenAI.AnnotationFileCitation", - "url_citation": "#/components/schemas/OpenAI.AnnotationUrlCitation", - "file_path": "#/components/schemas/OpenAI.AnnotationFilePath" - } + "description": "An object representing a list of runs for an evaluation.", + "title": "EvalRunList", + "x-oaiMeta": { + "name": "The eval run list object", + "group": "evals", + "example": "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": \"eval.run\",\n \"id\": \"evalrun_67b7fbdad46c819092f6fe7a14189620\",\n \"eval_id\": \"eval_67b7fa9a81a88190ab4aa417e397ea21\",\n \"report_url\": \"https://platform.openai.com/evaluations/eval_67b7fa9a81a88190ab4aa417e397ea21?run_id=evalrun_67b7fbdad46c819092f6fe7a14189620\",\n \"status\": \"completed\",\n \"model\": \"o3-mini\",\n \"name\": \"Academic Assistant\",\n \"created_at\": 1740110812,\n \"result_counts\": {\n \"total\": 171,\n \"errored\": 0,\n \"failed\": 80,\n \"passed\": 91\n },\n \"per_model_usage\": null,\n \"per_testing_criteria_results\": [\n {\n \"testing_criteria\": \"String check grader\",\n \"passed\": 91,\n \"failed\": 80\n }\n ],\n \"run_data_source\": {\n \"type\": \"completions\",\n \"template_messages\": [\n {\n \"type\": \"message\",\n \"role\": \"system\",\n \"content\": {\n \"type\": \"input_text\",\n \"text\": \"You are a helpful assistant.\"\n }\n },\n {\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": {\n \"type\": \"input_text\",\n \"text\": \"Hello, can you help me with my homework?\"\n }\n }\n ],\n \"datasource_reference\": null,\n \"model\": \"o3-mini\",\n \"max_completion_tokens\": null,\n \"seed\": null,\n \"temperature\": null,\n \"top_p\": null\n },\n \"error\": null,\n \"metadata\": {\"test\": \"synthetics\"}\n }\n ],\n \"first_id\": \"evalrun_67abd54d60ec8190832b46859da808f7\",\n \"last_id\": \"evalrun_67abd54d60ec8190832b46859da808f7\",\n \"has_more\": false\n}\n" } }, - "OpenAI.AnnotationFileCitation": { + "OpenAI.EvalRunOutputItem": { "type": "object", "required": [ - "type", - "file_id", - "index", - "filename" + "object", + "id", + "run_id", + "eval_id", + "created_at", + "status", + "datasource_item_id", + "datasource_item", + "results", + "sample" ], "properties": { - "type": { + "object": { "type": "string", "enum": [ - "file_citation" + "eval.run.output_item" ], - "description": "The type of the file citation. Always `file_citation`." + "description": "The type of the object. Always \"eval.run.output_item\".", + "x-stainless-const": true, + "default": "eval.run.output_item" }, - "file_id": { + "id": { "type": "string", - "description": "The ID of the file." + "description": "Unique identifier for the evaluation run output item." }, - "index": { + "run_id": { + "type": "string", + "description": "The identifier of the evaluation run associated with this output item." + }, + "eval_id": { + "type": "string", + "description": "The identifier of the evaluation group." + }, + "created_at": { "type": "integer", - "format": "int32", - "description": "The index of the file in the list of files." + "format": "unixtime", + "description": "Unix timestamp (in seconds) when the evaluation run was created." }, - "filename": { + "status": { "type": "string", - "description": "The filename of the file cited." + "description": "The status of the evaluation run." + }, + "datasource_item_id": { + "type": "integer", + "description": "The identifier for the data source item." + }, + "datasource_item": { + "type": "object", + "unevaluatedProperties": {}, + "description": "Details of the input data source item." + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemResult" + }, + "description": "A list of grader results for this output item." + }, + "sample": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemSample" + } + ], + "description": "A sample containing the input and output of the evaluation run." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Annotation" - } - ], - "description": "A citation to a file." + "description": "A schema representing an evaluation run output item.", + "title": "EvalRunOutputItem", + "x-oaiMeta": { + "name": "The eval run output item object", + "group": "evals", + "example": "{\n \"object\": \"eval.run.output_item\",\n \"id\": \"outputitem_67abd55eb6548190bb580745d5644a33\",\n \"run_id\": \"evalrun_67abd54d60ec8190832b46859da808f7\",\n \"eval_id\": \"eval_67abd54d9b0081909a86353f6fb9317a\",\n \"created_at\": 1739314509,\n \"status\": \"pass\",\n \"datasource_item_id\": 137,\n \"datasource_item\": {\n \"teacher\": \"To grade essays, I only check for style, content, and grammar.\",\n \"student\": \"I am a student who is trying to write the best essay.\"\n },\n \"results\": [\n {\n \"name\": \"String Check Grader\",\n \"type\": \"string-check-grader\",\n \"score\": 1.0,\n \"passed\": true,\n }\n ],\n \"sample\": {\n \"input\": [\n {\n \"role\": \"system\",\n \"content\": \"You are an evaluator bot...\"\n },\n {\n \"role\": \"user\",\n \"content\": \"You are assessing...\"\n }\n ],\n \"output\": [\n {\n \"role\": \"assistant\",\n \"content\": \"The rubric is not clear nor concise.\"\n }\n ],\n \"finish_reason\": \"stop\",\n \"model\": \"gpt-4o-2024-08-06\",\n \"usage\": {\n \"total_tokens\": 521,\n \"completion_tokens\": 2,\n \"prompt_tokens\": 519,\n \"cached_tokens\": 0\n },\n \"error\": null,\n \"temperature\": 1.0,\n \"max_completion_tokens\": 2048,\n \"top_p\": 1.0,\n \"seed\": 42\n }\n}\n" + } }, - "OpenAI.AnnotationFilePath": { + "OpenAI.EvalRunOutputItemList": { "type": "object", "required": [ - "type", - "file_id", - "index" + "object", + "data", + "first_id", + "last_id", + "has_more" ], "properties": { - "type": { + "object": { "type": "string", "enum": [ - "file_path" + "list" ], - "description": "The type of the file path. Always `file_path`." + "description": "The type of this object. It is always set to \"list\".", + "x-stainless-const": true, + "default": "list" }, - "file_id": { - "type": "string", - "description": "The ID of the file." + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItem" + }, + "description": "An array of eval run output item objects." }, - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the file in the list of files." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Annotation" - } - ], - "description": "A path to a file." - }, - "OpenAI.AnnotationType": { - "anyOf": [ - { - "type": "string" + "first_id": { + "type": "string", + "description": "The identifier of the first eval run output item in the data array." }, - { + "last_id": { "type": "string", - "enum": [ - "file_citation", - "url_citation", - "file_path", - "container_file_citation" - ] + "description": "The identifier of the last eval run output item in the data array." + }, + "has_more": { + "type": "boolean", + "description": "Indicates whether there are more eval run output items available." } - ] + }, + "description": "An object representing a list of output items for an evaluation run.", + "title": "EvalRunOutputItemList", + "x-oaiMeta": { + "name": "The eval run output item list object", + "group": "evals", + "example": "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": \"eval.run.output_item\",\n \"id\": \"outputitem_67abd55eb6548190bb580745d5644a33\",\n \"run_id\": \"evalrun_67abd54d60ec8190832b46859da808f7\",\n \"eval_id\": \"eval_67abd54d9b0081909a86353f6fb9317a\",\n \"created_at\": 1739314509,\n \"status\": \"pass\",\n \"datasource_item_id\": 137,\n \"datasource_item\": {\n \"teacher\": \"To grade essays, I only check for style, content, and grammar.\",\n \"student\": \"I am a student who is trying to write the best essay.\"\n },\n \"results\": [\n {\n \"name\": \"String Check Grader\",\n \"type\": \"string-check-grader\",\n \"score\": 1.0,\n \"passed\": true,\n }\n ],\n \"sample\": {\n \"input\": [\n {\n \"role\": \"system\",\n \"content\": \"You are an evaluator bot...\"\n },\n {\n \"role\": \"user\",\n \"content\": \"You are assessing...\"\n }\n ],\n \"output\": [\n {\n \"role\": \"assistant\",\n \"content\": \"The rubric is not clear nor concise.\"\n }\n ],\n \"finish_reason\": \"stop\",\n \"model\": \"gpt-4o-2024-08-06\",\n \"usage\": {\n \"total_tokens\": 521,\n \"completion_tokens\": 2,\n \"prompt_tokens\": 519,\n \"cached_tokens\": 0\n },\n \"error\": null,\n \"temperature\": 1.0,\n \"max_completion_tokens\": 2048,\n \"top_p\": 1.0,\n \"seed\": 42\n }\n },\n ],\n \"first_id\": \"outputitem_67abd55eb6548190bb580745d5644a33\",\n \"last_id\": \"outputitem_67abd55eb6548190bb580745d5644a33\",\n \"has_more\": false\n}\n" + } }, - "OpenAI.AnnotationUrlCitation": { + "OpenAI.EvalRunOutputItemResult": { "type": "object", "required": [ - "type", - "url", - "start_index", - "end_index", - "title" + "name", + "score", + "passed" ], "properties": { - "type": { + "name": { "type": "string", - "enum": [ - "url_citation" - ], - "description": "The type of the URL citation. Always `url_citation`." + "description": "The name of the grader." }, - "url": { + "type": { "type": "string", - "format": "uri", - "description": "The URL of the web resource." + "description": "The grader type (for example, \"string-check-grader\")." }, - "start_index": { - "type": "integer", - "format": "int32", - "description": "The index of the first character of the URL citation in the message." + "score": { + "type": "number", + "description": "The numeric score produced by the grader." }, - "end_index": { - "type": "integer", - "format": "int32", - "description": "The index of the last character of the URL citation in the message." + "passed": { + "type": "boolean", + "description": "Whether the grader considered the output a pass." }, - "title": { - "type": "string", - "description": "The title of the web resource." + "sample": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": {} + }, + { + "type": "null" + } + ], + "description": "Optional sample or intermediate data produced by the grader." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Annotation" - } - ], - "description": "A citation for a web resource used to generate a model response." + "description": "A single grader result for an evaluation run output item.", + "title": "EvalRunOutputItemResult" }, - "OpenAI.ApproximateLocation": { + "OpenAI.EvalRunOutputItemSample": { "type": "object", "required": [ - "type" + "input", + "output", + "finish_reason", + "model", + "usage", + "error", + "temperature", + "max_completion_tokens", + "top_p", + "seed" ], "properties": { - "type": { - "type": "string", - "enum": [ - "approximate" - ] + "input": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemSampleInput" + } }, - "country": { - "type": "string", - "nullable": true + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemSampleOutput" + } }, - "region": { - "type": "string", - "nullable": true + "finish_reason": { + "type": "string" }, - "city": { - "type": "string", - "nullable": true + "model": { + "type": "string" }, - "timezone": { - "type": "string", - "nullable": true + "usage": { + "$ref": "#/components/schemas/OpenAI.EvalRunOutputItemSampleUsage" + }, + "error": { + "$ref": "#/components/schemas/OpenAI.EvalApiError" + }, + "temperature": { + "type": "number" + }, + "max_completion_tokens": { + "type": "integer" + }, + "top_p": { + "type": "number" + }, + "seed": { + "type": "integer" + } + } + }, + "OpenAI.EvalRunOutputItemSampleInput": { + "type": "object", + "required": [ + "role", + "content" + ], + "properties": { + "role": { + "type": "string" + }, + "content": { + "type": "string" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Location" + } + }, + "OpenAI.EvalRunOutputItemSampleOutput": { + "type": "object", + "properties": { + "role": { + "type": "string" + }, + "content": { + "type": "string" } - ] + } }, - "OpenAI.AutoChunkingStrategyRequestParam": { + "OpenAI.EvalRunOutputItemSampleUsage": { "type": "object", "required": [ - "type" + "total_tokens", + "completion_tokens", + "prompt_tokens", + "cached_tokens" ], "properties": { - "type": { - "type": "string", - "enum": [ - "auto" - ], - "description": "Always `auto`." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" + "total_tokens": { + "type": "integer" + }, + "completion_tokens": { + "type": "integer" + }, + "prompt_tokens": { + "type": "integer" + }, + "cached_tokens": { + "type": "integer" } - ], - "description": "The default strategy. This strategy currently uses a `max_chunk_size_tokens` of `800` and `chunk_overlap_tokens` of `400`." + } }, - "OpenAI.ChatCompletionFunctionCallOption": { + "OpenAI.EvalRunPerModelUsage": { "type": "object", "required": [ - "name" + "model_name", + "invocation_count", + "prompt_tokens", + "completion_tokens", + "total_tokens", + "cached_tokens" ], "properties": { - "name": { + "model_name": { "type": "string", - "description": "The name of the function to call." + "x-stainless-naming": { + "python": { + "property_name": "run_model_name" + } + } + }, + "invocation_count": { + "type": "integer" + }, + "prompt_tokens": { + "type": "integer" + }, + "completion_tokens": { + "type": "integer" + }, + "total_tokens": { + "type": "integer" + }, + "cached_tokens": { + "type": "integer" } - }, - "description": "Specifying a particular function via `{\"name\": \"my_function\"}` forces the model to call that function." + } }, - "OpenAI.ChatCompletionFunctions": { + "OpenAI.EvalRunPerTestingCriteriaResults": { "type": "object", "required": [ - "name" + "testing_criteria", + "passed", + "failed" ], "properties": { - "description": { - "type": "string", - "description": "A description of what the function does, used by the model to choose when and how to call the function." + "testing_criteria": { + "type": "string" }, - "name": { - "type": "string", - "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + "passed": { + "type": "integer" }, - "parameters": { - "description": "The parameters the functions accepts, described as a JSON Schema object.\nSee the [JSON Schema reference](https://json-schema.org/understanding-json-schema/)\nfor documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list." + "failed": { + "type": "integer" } - }, - "deprecated": true + } }, - "OpenAI.ChatCompletionMessageAudioChunk": { + "OpenAI.EvalRunResultCounts": { "type": "object", + "required": [ + "total", + "errored", + "failed", + "passed" + ], "properties": { - "id": { - "type": "string" + "total": { + "type": "integer" }, - "transcript": { - "type": "string" + "errored": { + "type": "integer" }, - "data": { - "type": "string", - "format": "base64" + "failed": { + "type": "integer" }, - "expires_at": { - "type": "integer", - "format": "unixtime" + "passed": { + "type": "integer" } } }, - "OpenAI.ChatCompletionMessageToolCall": { + "OpenAI.EvalStoredCompletionsDataSourceConfig": { "type": "object", "required": [ - "id", "type", - "function" + "schema" ], "properties": { - "id": { - "type": "string", - "description": "The ID of the tool call." - }, "type": { "type": "string", "enum": [ - "function" + "stored_completions" ], - "description": "The type of the tool. Currently, only `function` is supported." + "description": "The type of data source. Always `stored_completions`.", + "x-stainless-const": true, + "default": "stored_completions" }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to call." + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" }, - "arguments": { - "type": "string", - "description": "The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function." + { + "type": "null" } - }, - "required": [ - "name", - "arguments" - ], - "description": "The function that the model called." + ] + }, + "schema": { + "type": "object", + "unevaluatedProperties": {}, + "description": "The json schema for the run data source items.\n Learn how to build JSON schemas [here](https://json-schema.org/)." } + }, + "description": "Deprecated in favor of LogsDataSourceConfig.", + "title": "StoredCompletionsDataSourceConfig", + "x-oaiMeta": { + "name": "The stored completions data source object for evals", + "group": "evals", + "example": "{\n \"type\": \"stored_completions\",\n \"metadata\": {\n \"language\": \"english\"\n },\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"item\": {\n \"type\": \"object\"\n },\n \"sample\": {\n \"type\": \"object\"\n }\n },\n \"required\": [\n \"item\",\n \"sample\"\n }\n}\n" } }, - "OpenAI.ChatCompletionMessageToolCallChunk": { + "OpenAI.EvalStoredCompletionsSource": { "type": "object", "required": [ - "index" + "type" ], "properties": { - "index": { - "type": "integer", - "format": "int32" - }, - "id": { - "type": "string", - "description": "The ID of the tool call." - }, "type": { "type": "string", "enum": [ - "function" + "stored_completions" ], - "description": "The type of the tool. Currently, only `function` is supported." + "description": "The type of source. Always `stored_completions`.", + "x-stainless-const": true, + "default": "stored_completions" }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to call." + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" }, - "arguments": { - "type": "string", - "description": "The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function." + { + "type": "null" } - } + ] + }, + "model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "created_after": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "created_before": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "limit": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] } + }, + "description": "A StoredCompletionsRunDataSource configuration describing a set of filters", + "title": "StoredCompletionsRunDataSource", + "x-oaiMeta": { + "name": "The stored completions data source object used to configure an individual run", + "group": "eval runs", + "example": "{\n \"type\": \"stored_completions\",\n \"model\": \"gpt-4o\",\n \"created_after\": 1668124800,\n \"created_before\": 1668124900,\n \"limit\": 100,\n \"metadata\": {}\n}\n" } }, - "OpenAI.ChatCompletionNamedToolChoice": { + "OpenAI.FileCitationBody": { "type": "object", "required": [ "type", - "function" + "file_id", + "index", + "filename" ], "properties": { "type": { "type": "string", "enum": [ - "function" + "file_citation" ], - "description": "The type of the tool. Currently, only `function` is supported." + "description": "The type of the file citation. Always `file_citation`.", + "x-stainless-const": true, + "default": "file_citation" }, - "function": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the function to call." - } - }, - "required": [ - "name" - ] + "file_id": { + "type": "string", + "description": "The ID of the file." + }, + "index": { + "type": "integer", + "description": "The index of the file in the list of files." + }, + "filename": { + "type": "string", + "description": "The filename of the file cited." } }, - "description": "Specifies a tool the model should use. Use to force the model to call a specific function." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Annotation" + } + ], + "description": "A citation to a file.", + "title": "File citation" }, - "OpenAI.ChatCompletionRequestAssistantMessage": { + "OpenAI.FilePath": { "type": "object", "required": [ - "role" + "type", + "file_id", + "index" ], "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPart" - } - } + "type": { + "type": "string", + "enum": [ + "file_path" ], - "nullable": true, - "description": "The contents of the assistant message. Required unless `tool_calls` or `function_call` is specified." + "description": "The type of the file path. Always `file_path`.", + "x-stainless-const": true }, - "refusal": { + "file_id": { "type": "string", - "nullable": true, - "description": "The refusal message by the assistant." + "description": "The ID of the file." }, - "role": { + "index": { + "type": "integer", + "description": "The index of the file in the list of files." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Annotation" + } + ], + "description": "A path to a file.", + "title": "File path" + }, + "OpenAI.FileSearchRanker": { + "type": "string", + "enum": [ + "auto", + "default_2024_08_21" + ], + "description": "The ranker to use for the file search. If not specified will use the `auto` ranker." + }, + "OpenAI.FileSearchRankingOptions": { + "type": "object", + "required": [ + "score_threshold" + ], + "properties": { + "ranker": { + "$ref": "#/components/schemas/OpenAI.FileSearchRanker" + }, + "score_threshold": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "The score threshold for the file search. All values must be a floating point number between 0 and 1." + } + }, + "description": "The ranking options for the file search. If not specified, the file search tool will use the `auto` ranker and a score_threshold of 0.\n\nSee the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information.", + "title": "File search tool call ranking options" + }, + "OpenAI.FileSearchTool": { + "type": "object", + "required": [ + "type", + "vector_store_ids" + ], + "properties": { + "type": { "type": "string", "enum": [ - "assistant" + "file_search" ], - "description": "The role of the messages author, in this case `assistant`." + "description": "The type of the file search tool. Always `file_search`.", + "x-stainless-const": true, + "default": "file_search" }, - "name": { - "type": "string", - "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + "vector_store_ids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The IDs of the vector stores to search." }, - "audio": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for a previous audio response from the model." + "max_num_results": { + "type": "integer", + "description": "The maximum number of results to return. This number should be between 1 and 50 inclusive." + }, + "ranking_options": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RankingOptions" } - }, - "required": [ - "id" ], - "nullable": true, - "description": "Data about a previous audio response from the model." - }, - "tool_calls": { - "$ref": "#/components/schemas/ChatCompletionMessageToolCallsItem" + "description": "Ranking options for search." }, - "function_call": { - "type": "object", - "properties": { - "name": { - "type": "string" + "filters": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Filters" }, - "arguments": { - "type": "string" + { + "type": "null" } - }, - "required": [ - "name", - "arguments" - ], - "nullable": true, - "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model.", - "deprecated": true + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + "$ref": "#/components/schemas/OpenAI.Tool" } ], - "description": "Messages sent by the model in response to user messages." + "description": "A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search).", + "title": "File search" }, - "OpenAI.ChatCompletionRequestAssistantMessageContentPart": { + "OpenAI.FileSearchToolCallResults": { + "type": "object", + "properties": { + "file_id": { + "type": "string" + }, + "text": { + "type": "string" + }, + "filename": { + "type": "string" + }, + "attributes": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" + }, + { + "type": "null" + } + ] + }, + "score": { + "type": "number", + "format": "float" + } + } + }, + "OpenAI.Filters": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + "$ref": "#/components/schemas/OpenAI.ComparisonFilter" }, { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartRefusal" + "$ref": "#/components/schemas/OpenAI.CompoundFilter" } ] }, - "OpenAI.ChatCompletionRequestDeveloperMessage": { + "OpenAI.FineTuneDPOHyperparameters": { "type": "object", - "required": [ - "content", - "role" - ], "properties": { - "content": { + "beta": { "anyOf": [ { - "type": "string" + "type": "string", + "enum": [ + "auto" + ] }, { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" - } + "type": "number" } ], - "description": "The contents of the developer message." + "description": "The beta value for the DPO method. A higher beta value will increase the weight of the penalty between the policy and reference model." }, - "role": { - "type": "string", - "enum": [ - "developer" + "batch_size": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "integer" + } + ], + "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.", + "default": "auto" + }, + "learning_rate_multiplier": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "number" + } ], - "description": "The role of the messages author, in this case `developer`." + "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting." }, - "name": { - "type": "string", - "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." + "n_epochs": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "integer" + } + ], + "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.", + "default": "auto" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + "description": "The hyperparameters used for the DPO fine-tuning job." + }, + "OpenAI.FineTuneDPOMethod": { + "type": "object", + "properties": { + "hyperparameters": { + "$ref": "#/components/schemas/OpenAI.FineTuneDPOHyperparameters" } - ], - "description": "Developer-provided instructions that the model should follow, regardless of\nmessages sent by the user. With o1 models and newer, `developer` messages\nreplace the previous `system` messages." + }, + "description": "Configuration for the DPO fine-tuning method." }, - "OpenAI.ChatCompletionRequestFunctionMessage": { + "OpenAI.FineTuneMethod": { "type": "object", "required": [ - "role", - "content", - "name" + "type" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "function" + "supervised", + "dpo", + "reinforcement" ], - "description": "The role of the messages author, in this case `function`." + "description": "The type of method. Is either `supervised`, `dpo`, or `reinforcement`." }, - "content": { - "type": "string", - "nullable": true, - "description": "The contents of the function message." + "supervised": { + "$ref": "#/components/schemas/OpenAI.FineTuneSupervisedMethod" }, - "name": { - "type": "string", - "description": "The name of the function to call." + "dpo": { + "$ref": "#/components/schemas/OpenAI.FineTuneDPOMethod" + }, + "reinforcement": { + "$ref": "#/components/schemas/AzureFineTuneReinforcementMethod" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" - } - ], - "deprecated": true + "description": "The method used for fine-tuning." }, - "OpenAI.ChatCompletionRequestMessage": { + "OpenAI.FineTuneReinforcementHyperparameters": { "type": "object", - "required": [ - "role" - ], "properties": { - "role": { - "allOf": [ + "batch_size": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRole" + "type": "integer" } ], - "description": "The role of the author of this message." + "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.", + "default": "auto" }, - "content": { + "learning_rate_multiplier": { "anyOf": [ { - "type": "string" + "type": "string", + "enum": [ + "auto" + ] }, { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart" - } + "type": "number" } ], - "nullable": true, - "description": "The content of the message. Valid content part types vary per message role." - } - }, - "discriminator": { - "propertyName": "role", - "mapping": { - "system": "#/components/schemas/OpenAI.ChatCompletionRequestSystemMessage", - "developer": "#/components/schemas/OpenAI.ChatCompletionRequestDeveloperMessage", - "user": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessage", - "assistant": "#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessage", - "tool": "#/components/schemas/OpenAI.ChatCompletionRequestToolMessage", - "function": "#/components/schemas/OpenAI.ChatCompletionRequestFunctionMessage" - } - } - }, - "OpenAI.ChatCompletionRequestMessageContentPart": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "text": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText", - "image_url": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImage", - "refusal": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartRefusal", - "file": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFile", - "input_audio": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudio" - } - } - }, - "OpenAI.ChatCompletionRequestMessageContentPartAudio": { - "type": "object", - "required": [ - "type", - "input_audio" - ], - "properties": { - "type": { + "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting." + }, + "n_epochs": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "integer" + } + ], + "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.", + "default": "auto" + }, + "reasoning_effort": { "type": "string", "enum": [ - "input_audio" + "default", + "low", + "medium", + "high" ], - "description": "The type of the content part. Always `input_audio`." + "description": "Level of reasoning effort.", + "default": "default" }, - "input_audio": { - "type": "object", - "properties": { - "data": { - "type": "string", - "format": "base64", - "description": "Base64 encoded audio data." - }, - "format": { + "compute_multiplier": { + "anyOf": [ + { "type": "string", "enum": [ - "wav", - "mp3" - ], - "description": "The format of the encoded audio data. Currently supports \"wav\" and \"mp3\"." + "auto" + ] + }, + { + "type": "number" } - }, - "required": [ - "data", - "format" - ] - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart" - } - ], - "description": "" - }, - "OpenAI.ChatCompletionRequestMessageContentPartFile": { - "type": "object", - "required": [ - "type", - "file" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "file" ], - "description": "The type of the content part. Always `file`." + "description": "Multiplier on amount of compute used for exploring search space during training." }, - "file": { - "type": "object", - "properties": { - "filename": { + "eval_interval": { + "anyOf": [ + { "type": "string", - "description": "The name of the file, used when passing the file to the model as a\nstring." + "enum": [ + "auto" + ] }, - "file_data": { + { + "type": "integer" + } + ], + "description": "The number of training steps between evaluation runs.", + "default": "auto" + }, + "eval_samples": { + "anyOf": [ + { "type": "string", - "description": "The base64 encoded file data, used when passing the file to the model\nas a string." + "enum": [ + "auto" + ] }, - "file_id": { - "type": "string", - "description": "The ID of an uploaded file to use as input." + { + "type": "integer" } - } + ], + "description": "Number of evaluation samples to generate per training step.", + "default": "auto" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart" - } - ], - "description": "Learn about [file inputs](/docs/guides/text) for text generation." + "description": "The hyperparameters used for the reinforcement fine-tuning job." }, - "OpenAI.ChatCompletionRequestMessageContentPartImage": { + "OpenAI.FineTuneSupervisedHyperparameters": { "type": "object", - "required": [ - "type", - "image_url" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "image_url" + "batch_size": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "integer" + } ], - "description": "The type of the content part." + "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.", + "default": "auto" }, - "image_url": { - "type": "object", - "properties": { - "url": { + "learning_rate_multiplier": { + "anyOf": [ + { "type": "string", - "format": "uri", - "description": "Either a URL of the image or the base64 encoded image data." + "enum": [ + "auto" + ] }, - "detail": { + { + "type": "number" + } + ], + "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting." + }, + "n_epochs": { + "anyOf": [ + { "type": "string", "enum": [ - "auto", - "low", - "high" - ], - "description": "Specifies the detail level of the image. Learn more in the [Vision guide](/docs/guides/vision#low-or-high-fidelity-image-understanding).", - "default": "auto" + "auto" + ] + }, + { + "type": "integer" } - }, - "required": [ - "url" - ] + ], + "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.", + "default": "auto" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart" + "description": "The hyperparameters used for the fine-tuning job." + }, + "OpenAI.FineTuneSupervisedMethod": { + "type": "object", + "properties": { + "hyperparameters": { + "$ref": "#/components/schemas/OpenAI.FineTuneSupervisedHyperparameters" } - ], - "description": "" + }, + "description": "Configuration for the supervised fine-tuning method." }, - "OpenAI.ChatCompletionRequestMessageContentPartRefusal": { + "OpenAI.FineTuningCheckpointPermission": { "type": "object", "required": [ - "type", - "refusal" + "id", + "created_at", + "project_id", + "object" ], "properties": { - "type": { + "id": { "type": "string", - "enum": [ - "refusal" - ], - "description": "The type of the content part." + "description": "The permission identifier, which can be referenced in the API endpoints." }, - "refusal": { + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the permission was created." + }, + "project_id": { "type": "string", - "description": "The refusal message generated by the model." + "description": "The project identifier that the permission is for." + }, + "object": { + "type": "string", + "enum": [ + "checkpoint.permission" + ], + "description": "The object type, which is always \"checkpoint.permission\".", + "x-stainless-const": true } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart" - } - ] + "description": "The `checkpoint.permission` object represents a permission for a fine-tuned model checkpoint.", + "title": "FineTuningCheckpointPermission", + "x-oaiMeta": { + "name": "The fine-tuned model checkpoint permission object", + "example": "{\n \"object\": \"checkpoint.permission\",\n \"id\": \"cp_zc4Q7MP6XxulcVzj4MZdwsAB\",\n \"created_at\": 1712211699,\n \"project_id\": \"proj_abGMw1llN8IrBb6SvvY5A1iH\"\n}\n" + } }, - "OpenAI.ChatCompletionRequestMessageContentPartText": { + "OpenAI.FineTuningIntegration": { "type": "object", "required": [ "type", - "text" + "wandb" ], "properties": { "type": { "type": "string", "enum": [ - "text" + "wandb" ], - "description": "The type of the content part." + "description": "The type of the integration being enabled for the fine-tuning job", + "x-stainless-const": true }, - "text": { - "type": "string", - "description": "The text content." + "wandb": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FineTuningIntegrationWandb" + } + ], + "description": "The settings for your integration with Weights and Biases. This payload specifies the project that\n metrics will be sent to. Optionally, you can set an explicit display name for your run, add tags\n to your run, and set a default entity (team, username, etc) to be associated with your run." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart" - } - ], - "description": "" - }, - "OpenAI.ChatCompletionRequestMessageContentPartType": { - "type": "string", - "enum": [ - "text", - "file", - "input_audio", - "image_url", - "refusal" - ] + "title": "Fine-Tuning Job Integration" }, - "OpenAI.ChatCompletionRequestSystemMessage": { + "OpenAI.FineTuningIntegrationWandb": { "type": "object", "required": [ - "content", - "role" + "project" ], "properties": { - "content": { + "project": { + "type": "string" + }, + "name": { "anyOf": [ { "type": "string" }, { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestSystemMessageContentPart" - } + "type": "null" } - ], - "description": "The contents of the system message." + ] }, - "role": { - "type": "string", - "enum": [ - "system" - ], - "description": "The role of the messages author, in this case `system`." + "entity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "name": { - "type": "string", - "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" + "tags": { + "type": "array", + "items": { + "type": "string" + } } - ], - "description": "Developer-provided instructions that the model should follow, regardless of\nmessages sent by the user. With o1 models and newer, use `developer` messages\nfor this purpose instead." - }, - "OpenAI.ChatCompletionRequestSystemMessageContentPart": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + } }, - "OpenAI.ChatCompletionRequestToolMessage": { + "OpenAI.FineTuningJob": { "type": "object", "required": [ - "role", - "content", - "tool_call_id" + "id", + "created_at", + "error", + "fine_tuned_model", + "finished_at", + "hyperparameters", + "model", + "object", + "organization_id", + "result_files", + "status", + "trained_tokens", + "training_file", + "validation_file", + "seed" ], "properties": { - "role": { + "id": { "type": "string", - "enum": [ - "tool" - ], - "description": "The role of the messages author, in this case `tool`." + "description": "The object identifier, which can be referenced in the API endpoints." }, - "content": { + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the fine-tuning job was created." + }, + "error": { "anyOf": [ { - "type": "string" + "$ref": "#/components/schemas/OpenAI.FineTuningJobError" }, { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestToolMessageContentPart" - } + "type": "null" } - ], - "description": "The contents of the tool message." + ] }, - "tool_call_id": { - "type": "string", - "description": "Tool call that this message is responding to." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" - } - ] - }, - "OpenAI.ChatCompletionRequestToolMessageContentPart": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" - }, - "OpenAI.ChatCompletionRequestUserMessage": { - "type": "object", - "required": [ - "content", - "role" - ], - "properties": { - "content": { + "fine_tuned_model": { "anyOf": [ { "type": "string" }, { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart" - } + "type": "null" + } + ] + }, + "finished_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" } ], - "description": "The contents of the user message." + "type": "integer", + "format": "unixTimestamp" }, - "role": { + "hyperparameters": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FineTuningJobHyperparameters" + } + ], + "description": "The hyperparameters used for the fine-tuning job. This value will only be returned when running `supervised` jobs." + }, + "model": { + "type": "string", + "description": "The base model that is being fine-tuned." + }, + "object": { "type": "string", "enum": [ - "user" + "fine_tuning.job" ], - "description": "The role of the messages author, in this case `user`." + "description": "The object type, which is always \"fine_tuning.job\".", + "x-stainless-const": true }, - "name": { + "organization_id": { "type": "string", - "description": "An optional name for the participant. Provides the model information to differentiate between participants of the same role." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessage" - } - ], - "description": "Messages sent by an end user, containing prompts or additional context\ninformation." - }, - "OpenAI.ChatCompletionRequestUserMessageContentPart": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + "description": "The organization that owns the fine-tuning job." }, - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImage" + "result_files": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The compiled results file ID(s) for the fine-tuning job. You can retrieve the results with the [Files API](https://platform.openai.com/docs/api-reference/files/retrieve-contents)." }, - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudio" + "status": { + "type": "string", + "enum": [ + "validating_files", + "queued", + "running", + "succeeded", + "failed", + "cancelled" + ], + "description": "The current status of the fine-tuning job, which can be either `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`." }, - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFile" - } - ] - }, - "OpenAI.ChatCompletionRole": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant", - "tool", - "function" - ], - "description": "The role of the author of a message" - }, - "OpenAI.ChatCompletionStreamOptions": { - "type": "object", - "properties": { - "include_usage": { - "type": "boolean", - "description": "If set, an additional chunk will be streamed before the `data: [DONE]`\nmessage. The `usage` field on this chunk shows the token usage statistics\nfor the entire request, and the `choices` field will always be an empty\narray.\n\nAll other chunks will also include a `usage` field, but with a null\nvalue. **NOTE:** If the stream is interrupted, you may not receive the\nfinal usage chunk which contains the total token usage for the request." - } - }, - "description": "Options for streaming response. Only set this when you set `stream: true`." - }, - "OpenAI.ChatCompletionStreamResponseDelta": { - "type": "object", - "properties": { - "audio": { - "allOf": [ + "trained_tokens": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageAudioChunk" + "type": "integer" + }, + { + "type": "null" } - ], - "description": "Response audio associated with the streaming chat delta payload." + ] }, - "content": { + "training_file": { "type": "string", - "nullable": true, - "description": "The contents of the chunk message." + "description": "The file ID used for training. You can retrieve the training data with the [Files API](https://platform.openai.com/docs/api-reference/files/retrieve-contents)." }, - "function_call": { - "type": "object", - "properties": { - "name": { + "validation_file": { + "anyOf": [ + { "type": "string" }, - "arguments": { - "type": "string" + { + "type": "null" } - }, - "description": "Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model.", - "deprecated": true - }, - "tool_calls": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunk" - }, - "readOnly": true + ] }, - "role": { - "allOf": [ + "integrations": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FineTuningIntegration" + } + }, { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRole" + "type": "null" } - ], - "description": "The role of the author of this message." + ] }, - "refusal": { - "type": "string", - "nullable": true, - "description": "The refusal message generated by the model." - } - }, - "description": "A chat completion delta generated by streamed model responses." - }, - "OpenAI.ChatCompletionTokenLogprob": { - "type": "object", - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ], - "properties": { - "token": { - "type": "string", - "description": "The token." + "seed": { + "type": "integer", + "description": "The seed used for the fine-tuning job." }, - "logprob": { - "type": "number", - "format": "float", - "description": "The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely." + "estimated_finish": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" }, - "bytes": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true, - "description": "A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token." + "method": { + "$ref": "#/components/schemas/OpenAI.FineTuneMethod" }, - "top_logprobs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "token": { - "type": "string", - "description": "The token." - }, - "logprob": { - "type": "number", - "format": "float", - "description": "The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely." - }, - "bytes": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true, - "description": "A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token." - } + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" }, - "required": [ - "token", - "logprob", - "bytes" - ] - }, - "description": "List of the most likely tokens and their log probability, at this token position. In rare cases, there may be fewer than the number of requested `top_logprobs` returned." + { + "type": "null" + } + ] } + }, + "description": "The `fine_tuning.job` object represents a fine-tuning job that has been created through the API.", + "title": "FineTuningJob", + "x-oaiMeta": { + "name": "The fine-tuning job object", + "example": "{\n \"object\": \"fine_tuning.job\",\n \"id\": \"ftjob-abc123\",\n \"model\": \"davinci-002\",\n \"created_at\": 1692661014,\n \"finished_at\": 1692661190,\n \"fine_tuned_model\": \"ft:davinci-002:my-org:custom_suffix:7q8mpxmy\",\n \"organization_id\": \"org-123\",\n \"result_files\": [\n \"file-abc123\"\n ],\n \"status\": \"succeeded\",\n \"validation_file\": null,\n \"training_file\": \"file-abc123\",\n \"hyperparameters\": {\n \"n_epochs\": 4,\n \"batch_size\": 1,\n \"learning_rate_multiplier\": 1.0\n },\n \"trained_tokens\": 5768,\n \"integrations\": [],\n \"seed\": 0,\n \"estimated_finish\": 0,\n \"method\": {\n \"type\": \"supervised\",\n \"supervised\": {\n \"hyperparameters\": {\n \"n_epochs\": 4,\n \"batch_size\": 1,\n \"learning_rate_multiplier\": 1.0\n }\n }\n },\n \"metadata\": {\n \"key\": \"value\"\n }\n}\n" } }, - "OpenAI.ChatCompletionTool": { + "OpenAI.FineTuningJobCheckpoint": { "type": "object", "required": [ - "type", - "function" + "id", + "created_at", + "fine_tuned_model_checkpoint", + "step_number", + "metrics", + "fine_tuning_job_id", + "object" ], "properties": { - "type": { + "id": { + "type": "string", + "description": "The checkpoint identifier, which can be referenced in the API endpoints." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the checkpoint was created." + }, + "fine_tuned_model_checkpoint": { "type": "string", - "enum": [ - "function" + "description": "The name of the fine-tuned checkpoint model that is created." + }, + "step_number": { + "type": "integer", + "description": "The step number that the checkpoint was created at." + }, + "metrics": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FineTuningJobCheckpointMetrics" + } ], - "description": "The type of the tool. Currently, only `function` is supported." + "description": "Metrics at the step number during the fine-tuning job." }, - "function": { - "$ref": "#/components/schemas/OpenAI.FunctionObject" - } - } - }, - "OpenAI.ChatCompletionToolChoiceOption": { - "anyOf": [ - { + "fine_tuning_job_id": { "type": "string", - "enum": [ - "none", - "auto", - "required" - ] + "description": "The name of the fine-tuning job that this checkpoint was created from." }, - { - "$ref": "#/components/schemas/OpenAI.ChatCompletionNamedToolChoice" + "object": { + "type": "string", + "enum": [ + "fine_tuning.job.checkpoint" + ], + "description": "The object type, which is always \"fine_tuning.job.checkpoint\".", + "x-stainless-const": true } - ], - "description": "Controls which (if any) tool is called by the model.\n`none` means the model will not call any tool and instead generates a message.\n`auto` means the model can pick between generating a message or calling one or more tools.\n`required` means the model must call one or more tools.\nSpecifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces the model to call that tool.\n\n`none` is the default when no tools are present. `auto` is the default if tools are present." + }, + "description": "The `fine_tuning.job.checkpoint` object represents a model checkpoint for a fine-tuning job that is ready to use.", + "title": "FineTuningJobCheckpoint", + "x-oaiMeta": { + "name": "The fine-tuning job checkpoint object", + "example": "{\n \"object\": \"fine_tuning.job.checkpoint\",\n \"id\": \"ftckpt_qtZ5Gyk4BLq1SfLFWp3RtO3P\",\n \"created_at\": 1712211699,\n \"fine_tuned_model_checkpoint\": \"ft:gpt-4o-mini-2024-07-18:my-org:custom_suffix:9ABel2dg:ckpt-step-88\",\n \"fine_tuning_job_id\": \"ftjob-fpbNQ3H1GrMehXRf8cO97xTN\",\n \"metrics\": {\n \"step\": 88,\n \"train_loss\": 0.478,\n \"train_mean_token_accuracy\": 0.924,\n \"valid_loss\": 10.112,\n \"valid_mean_token_accuracy\": 0.145,\n \"full_valid_loss\": 0.567,\n \"full_valid_mean_token_accuracy\": 0.944\n },\n \"step_number\": 88\n}\n" + } }, - "OpenAI.ChatOutputPrediction": { + "OpenAI.FineTuningJobCheckpointMetrics": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.ChatOutputPredictionType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "content": "#/components/schemas/OpenAI.ChatOutputPredictionContent" + "step": { + "type": "number" + }, + "train_loss": { + "type": "number" + }, + "train_mean_token_accuracy": { + "type": "number" + }, + "valid_loss": { + "type": "number" + }, + "valid_mean_token_accuracy": { + "type": "number" + }, + "full_valid_loss": { + "type": "number" + }, + "full_valid_mean_token_accuracy": { + "type": "number" } - }, - "description": "Base representation of predicted output from a model." + } }, - "OpenAI.ChatOutputPredictionContent": { + "OpenAI.FineTuningJobError": { "type": "object", "required": [ - "type", - "content" + "code", + "message", + "param" ], "properties": { - "type": { - "type": "string", - "enum": [ - "content" - ], - "description": "The type of the predicted content you want to provide. This type is\ncurrently always `content`." + "code": { + "type": "string" }, - "content": { + "message": { + "type": "string" + }, + "param": { "anyOf": [ { "type": "string" }, { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" - } + "type": "null" } - ], - "description": "The content that should be matched when generating a model response.\nIf generated tokens would match this content, the entire model response\ncan be returned much more quickly." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChatOutputPrediction" - } - ], - "description": "Static predicted output content, such as the content of a text file that is\nbeing regenerated." - }, - "OpenAI.ChatOutputPredictionType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string", - "enum": [ - "content" ] } - ] + } }, - "OpenAI.ChunkingStrategyRequestParam": { + "OpenAI.FineTuningJobEvent": { "type": "object", "required": [ - "type" + "object", + "id", + "created_at", + "level", + "message" ], "properties": { + "object": { + "type": "string", + "enum": [ + "fine_tuning.job.event" + ], + "description": "The object type, which is always \"fine_tuning.job.event\".", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The object identifier." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the fine-tuning job was created." + }, + "level": { + "type": "string", + "enum": [ + "info", + "warn", + "error" + ], + "description": "The log level of the event." + }, + "message": { + "type": "string", + "description": "The message of the event." + }, "type": { "type": "string", "enum": [ - "auto", - "static" + "message", + "metrics" ], - "description": "The type of chunking strategy." - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "static": "#/components/schemas/OpenAI.StaticChunkingStrategyRequestParam" + "description": "The type of event." + }, + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FineTuningJobEventData" + } + ], + "description": "The data associated with the event." } }, - "description": "The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy." + "description": "Fine-tuning job event object", + "x-oaiMeta": { + "name": "The fine-tuning job event object", + "example": "{\n \"object\": \"fine_tuning.job.event\",\n \"id\": \"ftevent-abc123\"\n \"created_at\": 1677610602,\n \"level\": \"info\",\n \"message\": \"Created fine-tuning job\",\n \"data\": {},\n \"type\": \"message\"\n}\n" + } }, - "OpenAI.ChunkingStrategyResponseParam": { + "OpenAI.FineTuningJobEventData": { + "type": "object" + }, + "OpenAI.FineTuningJobHyperparameters": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "static", - "other" + "batch_size": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": "auto" + }, + "learning_rate_multiplier": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "number" + } ] - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "other": "#/components/schemas/OpenAI.OtherChunkingStrategyResponseParam", - "static": "#/components/schemas/OpenAI.StaticChunkingStrategyResponseParam" + }, + "n_epochs": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "integer" + } + ], + "default": "auto" } } }, - "OpenAI.CodeInterpreterOutput": { + "OpenAI.FunctionAndCustomToolCallOutput": { "type": "object", "required": [ "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputType" + "$ref": "#/components/schemas/OpenAI.FunctionAndCustomToolCallOutputType" } }, "discriminator": { - "propertyName": "type", - "mapping": { - "image": "#/components/schemas/OpenAI.CodeInterpreterOutputImage", - "logs": "#/components/schemas/OpenAI.CodeInterpreterOutputLogs" - } + "propertyName": "type" } }, - "OpenAI.CodeInterpreterOutputImage": { - "type": "object", - "required": [ - "type", - "url" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "image" - ], - "description": "The type of the output. Always 'image'." + "OpenAI.FunctionAndCustomToolCallOutputType": { + "anyOf": [ + { + "type": "string" }, - "url": { - "type": "string", - "format": "uri", - "description": "The URL of the image output from the code interpreter." - } - }, - "allOf": [ { - "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutput" - } - ], - "description": "The image output from the code interpreter." - }, - "OpenAI.CodeInterpreterOutputLogs": { - "type": "object", - "required": [ - "type", - "logs" - ], - "properties": { - "type": { "type": "string", "enum": [ - "logs" - ], - "description": "The type of the output. Always 'logs'." - }, - "logs": { - "type": "string", - "description": "The logs output from the code interpreter." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutput" + "input_text", + "input_image", + "input_file" + ] } - ], - "description": "The logs output from the code interpreter." - }, - "OpenAI.CodeInterpreterOutputType": { - "type": "string", - "enum": [ - "logs", - "image" ] }, - "OpenAI.CodeInterpreterTool": { + "OpenAI.FunctionObject": { "type": "object", "required": [ - "type", - "container" + "name" ], "properties": { - "type": { + "description": { "type": "string", - "enum": [ - "code_interpreter" - ], - "description": "The type of the code interpreter tool. Always `code_interpreter`." + "description": "A description of what the function does, used by the model to choose when and how to call the function." }, - "container": { + "name": { + "type": "string", + "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + }, + "parameters": { + "$ref": "#/components/schemas/OpenAI.FunctionParameters" + }, + "strict": { "anyOf": [ { - "type": "string" + "type": "boolean" }, { - "$ref": "#/components/schemas/OpenAI.CodeInterpreterToolAuto" + "type": "null" } - ], - "description": "The code interpreter container. Can be a container ID or an object that\nspecifies uploaded file IDs to make available to your code." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Tool" + ] } - ], - "description": "A tool that runs Python code to help generate a response to a prompt." + } + }, + "OpenAI.FunctionParameters": { + "type": "object", + "description": "The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list." }, - "OpenAI.CodeInterpreterToolAuto": { + "OpenAI.FunctionShellAction": { "type": "object", "required": [ - "type" + "commands", + "timeout_ms", + "max_output_length" ], "properties": { - "type": { - "type": "string", - "enum": [ - "auto" - ], - "description": "Always `auto`." - }, - "file_ids": { + "commands": { "type": "array", "items": { "type": "string" - }, - "description": "An optional list of uploaded files to make available to your code." + } + }, + "timeout_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "max_output_length": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] } }, - "description": "Configuration for a code interpreter container. Optionally specify the IDs\nof the files to run the code on." + "description": "Execute a shell command.", + "title": "Shell exec action" }, - "OpenAI.CodeInterpreterToolCallItemParam": { + "OpenAI.FunctionShellCall": { "type": "object", "required": [ "type", - "container_id", - "code", - "outputs" + "id", + "call_id", + "action", + "status" ], "properties": { "type": { "type": "string", "enum": [ - "code_interpreter_call" - ] + "shell_call" + ], + "description": "The type of the item. Always `shell_call`.", + "x-stainless-const": true, + "default": "shell_call" }, - "container_id": { + "id": { "type": "string", - "description": "The ID of the container used to run the code." + "description": "The unique ID of the shell tool call. Populated when this item is returned via API." }, - "code": { + "call_id": { "type": "string", - "nullable": true, - "description": "The code to run, or null if not available." + "description": "The unique ID of the shell tool call generated by the model." }, - "outputs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutput" - }, - "nullable": true, - "description": "The outputs generated by the code interpreter, such as logs or images.\nCan be null if no outputs are available." + "action": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FunctionShellAction" + } + ], + "description": "The shell commands and limits that describe how to run the tool call." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.LocalShellCallStatus" + } + ], + "description": "The status of the shell call. One of `in_progress`, `completed`, or `incomplete`." + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ItemResource" } ], - "description": "A tool call to run code.\n" + "description": "A tool call that executes one or more shell commands in a managed environment.", + "title": "Shell tool call" }, - "OpenAI.CodeInterpreterToolCallItemResource": { + "OpenAI.FunctionShellCallOutput": { "type": "object", "required": [ "type", - "status", - "container_id", - "code", - "outputs" + "id", + "call_id", + "output", + "max_output_length" ], "properties": { "type": { "type": "string", "enum": [ - "code_interpreter_call" - ] - }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete", - "interpreting", - "failed" - ] + "shell_call_output" + ], + "description": "The type of the shell call output. Always `shell_call_output`.", + "x-stainless-const": true, + "default": "shell_call_output" }, - "container_id": { + "id": { "type": "string", - "description": "The ID of the container used to run the code." + "description": "The unique ID of the shell call output. Populated when this item is returned via API." }, - "code": { + "call_id": { "type": "string", - "nullable": true, - "description": "The code to run, or null if not available." + "description": "The unique ID of the shell tool call generated by the model." }, - "outputs": { + "output": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutput" + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputContent" }, - "nullable": true, - "description": "The outputs generated by the code interpreter, such as logs or images.\nCan be null if no outputs are available." + "description": "An array of shell call output contents" + }, + "max_output_length": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "created_by": { + "type": "string" } }, "allOf": [ @@ -10251,461 +22199,597 @@ "$ref": "#/components/schemas/OpenAI.ItemResource" } ], - "description": "A tool call to run code.\n" + "description": "The output of a shell tool call.", + "title": "Shell call output" }, - "OpenAI.ComparisonFilter": { + "OpenAI.FunctionShellCallOutputContent": { "type": "object", "required": [ - "type", - "key", - "value" + "stdout", + "stderr", + "outcome" ], "properties": { - "type": { - "type": "string", - "enum": [ - "eq", - "ne", - "gt", - "gte", - "lt", - "lte" - ], - "description": "Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`.\n- `eq`: equals\n- `ne`: not equal\n- `gt`: greater than\n- `gte`: greater than or equal\n- `lt`: less than\n- `lte`: less than or equal", - "default": "eq" + "stdout": { + "type": "string" }, - "key": { - "type": "string", - "description": "The key to compare against the value." + "stderr": { + "type": "string" }, - "value": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number", - "format": "float" - }, + "outcome": { + "allOf": [ { - "type": "boolean" + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputOutcome" } ], - "description": "The value to compare against the attribute key; supports string, number, or boolean types." + "description": "Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk." + }, + "created_by": { + "type": "string" } }, - "description": "A filter used to compare a specified attribute key to a given value using a defined comparison operation." + "description": "The content of a shell call output.", + "title": "Shell call output content" }, - "OpenAI.CompletionUsage": { + "OpenAI.FunctionShellCallOutputExitOutcome": { "type": "object", "required": [ - "completion_tokens", - "prompt_tokens", - "total_tokens" + "type", + "exit_code" ], "properties": { - "completion_tokens": { - "type": "integer", - "format": "int32", - "description": "Number of tokens in the generated completion.", - "default": 0 - }, - "prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "Number of tokens in the prompt.", - "default": 0 + "type": { + "type": "string", + "enum": [ + "exit" + ], + "description": "The outcome type. Always `exit`.", + "x-stainless-const": true, + "default": "exit" }, - "total_tokens": { + "exit_code": { "type": "integer", - "format": "int32", - "description": "Total number of tokens used in the request (prompt + completion).", - "default": 0 - }, - "completion_tokens_details": { - "type": "object", - "properties": { - "accepted_prediction_tokens": { - "type": "integer", - "format": "int32", - "description": "When using Predicted Outputs, the number of tokens in the\nprediction that appeared in the completion.", - "default": 0 - }, - "audio_tokens": { - "type": "integer", - "format": "int32", - "description": "Audio input tokens generated by the model.", - "default": 0 - }, - "reasoning_tokens": { - "type": "integer", - "format": "int32", - "description": "Tokens generated by the model for reasoning.", - "default": 0 - }, - "rejected_prediction_tokens": { - "type": "integer", - "format": "int32", - "description": "When using Predicted Outputs, the number of tokens in the\nprediction that did not appear in the completion. However, like\nreasoning tokens, these tokens are still counted in the total\ncompletion tokens for purposes of billing, output, and context window\nlimits.", - "default": 0 - } - }, - "description": "Breakdown of tokens used in a completion." - }, - "prompt_tokens_details": { - "type": "object", - "properties": { - "audio_tokens": { - "type": "integer", - "format": "int32", - "description": "Audio input tokens present in the prompt.", - "default": 0 - }, - "cached_tokens": { - "type": "integer", - "format": "int32", - "description": "Cached tokens present in the prompt.", - "default": 0 - } - }, - "description": "Breakdown of tokens used in the prompt." + "description": "Exit code from the shell process." } }, - "description": "Usage statistics for the completion request." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputOutcome" + } + ], + "description": "Indicates that the shell commands finished and returned an exit code.", + "title": "Shell call exit outcome" }, - "OpenAI.CompoundFilter": { + "OpenAI.FunctionShellCallOutputOutcome": { "type": "object", "required": [ - "type", - "filters" + "type" ], "properties": { "type": { + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputOutcomeType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "timeout": "#/components/schemas/OpenAI.FunctionShellCallOutputTimeoutOutcome", + "exit": "#/components/schemas/OpenAI.FunctionShellCallOutputExitOutcome" + } + }, + "description": "Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk.", + "title": "Shell call outcome" + }, + "OpenAI.FunctionShellCallOutputOutcomeType": { + "anyOf": [ + { + "type": "string" + }, + { "type": "string", "enum": [ - "and", - "or" - ], - "description": "Type of operation: `and` or `or`." - }, - "filters": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.ComparisonFilter" - }, - { - "$ref": "#/components/schemas/OpenAI.CompoundFilter" - } - ] - }, - "description": "Array of filters to combine. Items can be `ComparisonFilter` or `CompoundFilter`." + "timeout", + "exit" + ] + } + ] + }, + "OpenAI.FunctionShellCallOutputTimeoutOutcome": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "timeout" + ], + "description": "The outcome type. Always `timeout`.", + "x-stainless-const": true, + "default": "timeout" } }, - "description": "Combine multiple filters using `and` or `or`." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputOutcome" + } + ], + "description": "Indicates that the shell call exceeded its configured time limit.", + "title": "Shell call timeout outcome" }, - "OpenAI.ComputerAction": { + "OpenAI.FunctionShellToolParam": { "type": "object", "required": [ "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.ComputerActionType" + "type": "string", + "enum": [ + "shell" + ], + "description": "The type of the shell tool. Always `shell`.", + "x-stainless-const": true, + "default": "shell" } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "click": "#/components/schemas/OpenAI.ComputerActionClick", - "double_click": "#/components/schemas/OpenAI.ComputerActionDoubleClick", - "drag": "#/components/schemas/OpenAI.ComputerActionDrag", - "move": "#/components/schemas/OpenAI.ComputerActionMove", - "screenshot": "#/components/schemas/OpenAI.ComputerActionScreenshot", - "scroll": "#/components/schemas/OpenAI.ComputerActionScroll", - "type": "#/components/schemas/OpenAI.ComputerActionTypeKeys", - "wait": "#/components/schemas/OpenAI.ComputerActionWait", - "keypress": "#/components/schemas/OpenAI.ComputerActionKeyPress" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Tool" } - } + ], + "description": "A tool that allows the model to execute shell commands.", + "title": "Shell tool" }, - "OpenAI.ComputerActionClick": { + "OpenAI.FunctionTool": { "type": "object", "required": [ "type", - "button", - "x", - "y" + "name", + "parameters", + "strict" ], "properties": { "type": { "type": "string", "enum": [ - "click" + "function" ], - "description": "Specifies the event type. For a click action, this property is\nalways set to `click`." + "description": "The type of the function tool. Always `function`.", + "x-stainless-const": true, + "default": "function" }, - "button": { + "name": { "type": "string", - "enum": [ - "left", - "right", - "wheel", - "back", - "forward" - ], - "description": "Indicates which mouse button was pressed during the click. One of `left`, `right`, `wheel`, `back`, or `forward`." + "description": "The name of the function to call." }, - "x": { - "type": "integer", - "format": "int32", - "description": "The x-coordinate where the click occurred." + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "y": { - "type": "integer", - "format": "int32", - "description": "The y-coordinate where the click occurred." + "parameters": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": {} + }, + { + "type": "null" + } + ] + }, + "strict": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "$ref": "#/components/schemas/OpenAI.Tool" } ], - "description": "A click action." + "description": "Defines a function in your own code the model can choose to call. Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling).", + "title": "Function" }, - "OpenAI.ComputerActionDoubleClick": { + "OpenAI.FunctionToolCallOutputResource": { "type": "object", "required": [ "type", - "x", - "y" + "call_id", + "output" ], "properties": { + "id": { + "type": "string", + "description": "The unique ID of the function tool call output. Populated when this item\n is returned via API." + }, "type": { "type": "string", "enum": [ - "double_click" + "function_call_output" ], - "description": "Specifies the event type. For a double click action, this property is\nalways set to `double_click`." + "description": "The type of the function tool call output. Always `function_call_output`.", + "x-stainless-const": true }, - "x": { - "type": "integer", - "format": "int32", - "description": "The x-coordinate where the double click occurred." + "call_id": { + "type": "string", + "description": "The unique ID of the function tool call generated by the model." }, - "y": { - "type": "integer", - "format": "int32", - "description": "The y-coordinate where the double click occurred." + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FunctionAndCustomToolCallOutput" + } + } + ], + "description": "The output from the function call generated by your code.\n Can be a string or an list of output content." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "$ref": "#/components/schemas/OpenAI.ItemResource" } - ], - "description": "A double click action." + ] }, - "OpenAI.ComputerActionDrag": { + "OpenAI.FunctionToolCallResource": { "type": "object", "required": [ "type", - "path" + "call_id", + "name", + "arguments" ], "properties": { + "id": { + "type": "string", + "description": "The unique ID of the function tool call." + }, "type": { "type": "string", "enum": [ - "drag" + "function_call" ], - "description": "Specifies the event type. For a drag action, this property is\nalways set to `drag`." + "description": "The type of the function tool call. Always `function_call`.", + "x-stainless-const": true }, - "path": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Coordinate" - }, - "description": "An array of coordinates representing the path of the drag action. Coordinates will appear as an array\nof objects, eg\n```\n[\n { x: 100, y: 200 },\n { x: 200, y: 300 }\n]\n```" + "call_id": { + "type": "string", + "description": "The unique ID of the function tool call generated by the model." + }, + "name": { + "type": "string", + "description": "The name of the function to run." + }, + "arguments": { + "type": "string", + "description": "A JSON string of the arguments to pass to the function." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "$ref": "#/components/schemas/OpenAI.ItemResource" } - ], - "description": "A drag action." + ] }, - "OpenAI.ComputerActionKeyPress": { + "OpenAI.GraderMulti": { "type": "object", "required": [ "type", - "keys" + "name", + "graders", + "calculate_output" ], "properties": { "type": { "type": "string", "enum": [ - "keypress" + "multi" ], - "description": "Specifies the event type. For a keypress action, this property is\nalways set to `keypress`." + "description": "The object type, which is always `multi`.", + "x-stainless-const": true, + "default": "multi" }, - "keys": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The combination of keys the model is requesting to be pressed. This is an\narray of strings, each representing a key." + "name": { + "type": "string", + "description": "The name of the grader." + }, + "graders": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.GraderStringCheck" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderScoreModel" + }, + { + "$ref": "#/components/schemas/GraderEndpoint" + } + ] + }, + "calculate_output": { + "type": "string", + "description": "A formula to calculate the output based on grader results." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ComputerAction" - } + "description": "A MultiGrader object combines the output of multiple graders to produce a single score.", + "title": "MultiGrader", + "x-oaiMeta": { + "name": "Multi Grader", + "group": "graders", + "example": "{\n \"type\": \"multi\",\n \"name\": \"example multi grader\",\n \"graders\": [\n {\n \"type\": \"text_similarity\",\n \"name\": \"example text similarity grader\",\n \"input\": \"The graded text\",\n \"reference\": \"The reference text\",\n \"evaluation_metric\": \"fuzzy_match\"\n },\n {\n \"type\": \"string_check\",\n \"name\": \"Example string check grader\",\n \"input\": \"{{sample.output_text}}\",\n \"reference\": \"{{item.label}}\",\n \"operation\": \"eq\"\n }\n ],\n \"calculate_output\": \"0.5 * text_similarity_score + 0.5 * string_check_score)\"\n}\n" + } + }, + "OpenAI.GraderPython": { + "type": "object", + "required": [ + "type", + "name", + "source" ], - "description": "A collection of keypresses the model would like to perform." + "properties": { + "type": { + "type": "string", + "enum": [ + "python" + ], + "description": "The object type, which is always `python`.", + "x-stainless-const": true + }, + "name": { + "type": "string", + "description": "The name of the grader." + }, + "source": { + "type": "string", + "description": "The source code of the python script." + }, + "image_tag": { + "type": "string", + "description": "The image tag to use for the python script." + } + }, + "description": "A PythonGrader object that runs a python script on the input.", + "title": "PythonGrader", + "x-oaiMeta": { + "name": "Python Grader", + "group": "graders", + "example": "{\n \"type\": \"python\",\n \"name\": \"Example python grader\",\n \"image_tag\": \"2025-05-08\",\n \"source\": \"\"\"\ndef grade(sample: dict, item: dict) -> float:\n \\\"\"\"\n Returns 1.0 if `output_text` equals `label`, otherwise 0.0.\n \\\"\"\"\n output = sample.get(\"output_text\")\n label = item.get(\"label\")\n return 1.0 if output == label else 0.0\n\"\"\",\n}\n" + } }, - "OpenAI.ComputerActionMove": { + "OpenAI.GraderScoreModel": { "type": "object", "required": [ "type", - "x", - "y" + "name", + "model", + "input" ], "properties": { "type": { "type": "string", "enum": [ - "move" + "score_model" ], - "description": "Specifies the event type. For a move action, this property is\nalways set to `move`." + "description": "The object type, which is always `score_model`.", + "x-stainless-const": true }, - "x": { - "type": "integer", - "format": "int32", - "description": "The x-coordinate to move to." + "name": { + "type": "string", + "description": "The name of the grader." + }, + "model": { + "type": "string", + "description": "The model to use for the evaluation." + }, + "sampling_params": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.EvalGraderScoreModelSamplingParams" + } + ], + "description": "The sampling parameters for the model." + }, + "input": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.EvalItem" + }, + "description": "The input text. This may include template strings." }, - "y": { - "type": "integer", - "format": "int32", - "description": "The y-coordinate to move to." + "range": { + "type": "array", + "items": { + "type": "number" + }, + "description": "The range of the score. Defaults to `[0, 1]`." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ComputerAction" - } - ], - "description": "A mouse move action." + "description": "A ScoreModelGrader object that uses a model to assign a score to the input.", + "title": "ScoreModelGrader", + "x-oaiMeta": { + "name": "Score Model Grader", + "group": "graders", + "example": "{\n \"type\": \"score_model\",\n \"name\": \"Example score model grader\",\n \"input\": [\n {\n \"role\": \"user\",\n \"content\": (\n \"Score how close the reference answer is to the model answer. Score 1.0 if they are the same and 0.0 if they are different.\"\n \" Return just a floating point score\\n\\n\"\n \" Reference answer: {{item.label}}\\n\\n\"\n \" Model answer: {{sample.output_text}}\"\n ),\n }\n ],\n \"model\": \"o4-mini-2025-04-16\",\n \"sampling_params\": {\n \"temperature\": 1,\n \"top_p\": 1,\n \"seed\": 42,\n \"max_completions_tokens\": 32768,\n \"reasoning_effort\": \"medium\"\n },\n}\n" + } }, - "OpenAI.ComputerActionScreenshot": { + "OpenAI.GraderStringCheck": { "type": "object", "required": [ - "type" + "type", + "name", + "input", + "reference", + "operation" ], "properties": { "type": { "type": "string", "enum": [ - "screenshot" + "string_check" + ], + "description": "The object type, which is always `string_check`.", + "x-stainless-const": true + }, + "name": { + "type": "string", + "description": "The name of the grader." + }, + "input": { + "type": "string", + "description": "The input text. This may include template strings." + }, + "reference": { + "type": "string", + "description": "The reference text. This may include template strings." + }, + "operation": { + "type": "string", + "enum": [ + "eq", + "ne", + "like", + "ilike" ], - "description": "Specifies the event type. For a screenshot action, this property is\nalways set to `screenshot`." + "description": "The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ComputerAction" - } - ], - "description": "A screenshot action." + "description": "A StringCheckGrader object that performs a string comparison between input and reference using a specified operation.", + "title": "StringCheckGrader", + "x-oaiMeta": { + "name": "String Check Grader", + "group": "graders", + "example": "{\n \"type\": \"string_check\",\n \"name\": \"Example string check grader\",\n \"input\": \"{{sample.output_text}}\",\n \"reference\": \"{{item.label}}\",\n \"operation\": \"eq\"\n}\n" + } }, - "OpenAI.ComputerActionScroll": { + "OpenAI.GraderTextSimilarity": { "type": "object", "required": [ "type", - "x", - "y", - "scroll_x", - "scroll_y" + "name", + "input", + "reference", + "evaluation_metric" ], "properties": { "type": { "type": "string", "enum": [ - "scroll" + "text_similarity" ], - "description": "Specifies the event type. For a scroll action, this property is\nalways set to `scroll`." + "description": "The type of grader.", + "x-stainless-const": true, + "default": "text_similarity" }, - "x": { - "type": "integer", - "format": "int32", - "description": "The x-coordinate where the scroll occurred." + "name": { + "type": "string", + "description": "The name of the grader." }, - "y": { - "type": "integer", - "format": "int32", - "description": "The y-coordinate where the scroll occurred." + "input": { + "type": "string", + "description": "The text being graded." }, - "scroll_x": { - "type": "integer", - "format": "int32", - "description": "The horizontal scroll distance." + "reference": { + "type": "string", + "description": "The text being graded against." }, - "scroll_y": { - "type": "integer", - "format": "int32", - "description": "The vertical scroll distance." + "evaluation_metric": { + "type": "string", + "enum": [ + "cosine", + "fuzzy_match", + "bleu", + "gleu", + "meteor", + "rouge_1", + "rouge_2", + "rouge_3", + "rouge_4", + "rouge_5", + "rouge_l" + ], + "description": "The evaluation metric to use. One of `cosine`, `fuzzy_match`, `bleu`,\n `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`,\n or `rouge_l`." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ComputerAction" - } - ], - "description": "A scroll action." + "description": "A TextSimilarityGrader object which grades text based on similarity metrics.", + "title": "TextSimilarityGrader", + "x-oaiMeta": { + "name": "Text Similarity Grader", + "group": "graders", + "example": "{\n \"type\": \"text_similarity\",\n \"name\": \"Example text similarity grader\",\n \"input\": \"{{sample.output_text}}\",\n \"reference\": \"{{item.label}}\",\n \"evaluation_metric\": \"fuzzy_match\"\n}\n" + } }, - "OpenAI.ComputerActionType": { + "OpenAI.GrammarSyntax1": { "type": "string", "enum": [ - "screenshot", - "click", - "double_click", - "scroll", - "type", - "wait", - "keypress", - "drag", - "move" + "lark", + "regex" ] }, - "OpenAI.ComputerActionTypeKeys": { + "OpenAI.HybridSearchOptions": { "type": "object", "required": [ - "type", - "text" + "embedding_weight", + "text_weight" ], "properties": { - "type": { - "type": "string", - "enum": [ - "type" - ], - "description": "Specifies the event type. For a type action, this property is\nalways set to `type`." + "embedding_weight": { + "type": "number", + "description": "The weight of the embedding in the reciprocal ranking fusion." }, - "text": { - "type": "string", - "description": "The text to type." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "text_weight": { + "type": "number", + "description": "The weight of the text in the reciprocal ranking fusion." } - ], - "description": "An action to type in text." + } + }, + "OpenAI.ImageDetail": { + "type": "string", + "enum": [ + "low", + "high", + "auto" + ] }, - "OpenAI.ComputerActionWait": { + "OpenAI.ImageGenTool": { "type": "object", "required": [ "type" @@ -10714,145 +22798,198 @@ "type": { "type": "string", "enum": [ - "wait" + "image_generation" ], - "description": "Specifies the event type. For a wait action, this property is\nalways set to `wait`." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ComputerAction" - } - ], - "description": "A wait action." - }, - "OpenAI.ComputerToolCallItemParam": { - "type": "object", - "required": [ - "type", - "call_id", - "action", - "pending_safety_checks" - ], - "properties": { - "type": { + "description": "The type of the image generation tool. Always `image_generation`.", + "x-stainless-const": true, + "default": "image_generation" + }, + "model": { "type": "string", "enum": [ - "computer_call" - ] + "gpt-image-1", + "gpt-image-1-mini" + ], + "description": "The image generation model to use. Default: `gpt-image-1`.", + "default": "gpt-image-1" }, - "call_id": { + "quality": { "type": "string", - "description": "An identifier used when responding to the tool call with output." + "enum": [ + "low", + "medium", + "high", + "auto" + ], + "description": "The quality of the generated image. One of `low`, `medium`, `high`,\n or `auto`. Default: `auto`.", + "default": "auto" }, - "action": { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "size": { + "type": "string", + "enum": [ + "1024x1024", + "1024x1536", + "1536x1024", + "auto" + ], + "description": "The size of the generated image. One of `1024x1024`, `1024x1536`,\n `1536x1024`, or `auto`. Default: `auto`.", + "default": "auto" }, - "pending_safety_checks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallSafetyCheck" - }, - "description": "The pending safety checks for the computer call." + "output_format": { + "type": "string", + "enum": [ + "png", + "webp", + "jpeg" + ], + "description": "The output format of the generated image. One of `png`, `webp`, or\n `jpeg`. Default: `png`.", + "default": "png" + }, + "output_compression": { + "type": "integer", + "minimum": 0, + "maximum": 100, + "description": "Compression level for the output image. Default: 100.", + "default": 100 + }, + "moderation": { + "type": "string", + "enum": [ + "auto", + "low" + ], + "description": "Moderation level for the generated image. Default: `auto`.", + "default": "auto" + }, + "background": { + "type": "string", + "enum": [ + "transparent", + "opaque", + "auto" + ], + "description": "Background type for the generated image. One of `transparent`,\n `opaque`, or `auto`. Default: `auto`.", + "default": "auto" + }, + "input_fidelity": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.InputFidelity" + }, + { + "type": "null" + } + ] + }, + "input_image_mask": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ImageGenToolInputImageMask" + } + ], + "description": "Optional mask for inpainting. Contains `image_url`\n (string, optional) and `file_id` (string, optional)." + }, + "partial_images": { + "type": "integer", + "minimum": 0, + "maximum": 3, + "description": "Number of partial images to generate in streaming mode, from 0 (default value) to 3." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.Tool" + } + ], + "description": "A tool that generates images using a model like `gpt-image-1`.", + "title": "Image generation tool" + }, + "OpenAI.ImageGenToolInputImageMask": { + "type": "object", + "properties": { + "image_url": { + "type": "string" + }, + "file_id": { + "type": "string" } + } + }, + "OpenAI.IncludeEnum": { + "type": "string", + "enum": [ + "file_search_call.results", + "web_search_call.results", + "web_search_call.action.sources", + "message.input_image.image_url", + "computer_call_output.output.image_url", + "code_interpreter_call.outputs", + "reasoning.encrypted_content", + "message.output_text.logprobs" ], - "description": "A tool call to a computer use tool. See the\n[computer use guide](/docs/guides/tools-computer-use) for more information.\n" + "description": "Specify additional output data to include in the model response. Currently supported values are:\n- `web_search_call.action.sources`: Include the sources of the web search tool call.\n- `code_interpreter_call.outputs`: Includes the outputs of python code execution in code interpreter tool call items.\n- `computer_call_output.output.image_url`: Include image urls from the computer call output.\n- `file_search_call.results`: Include the search results of the file search tool call.\n- `message.input_image.image_url`: Include image urls from the input message.\n- `message.output_text.logprobs`: Include logprobs with assistant messages.\n- `reasoning.encrypted_content`: Includes an encrypted version of reasoning tokens in reasoning item outputs. This enables reasoning items to be used in multi-turn conversations when using the Responses API statelessly (like when the `store` parameter is set to `false`, or when an organization is enrolled in the zero data retention program)." }, - "OpenAI.ComputerToolCallItemResource": { + "OpenAI.InputAudio": { "type": "object", "required": [ "type", - "status", - "call_id", - "action", - "pending_safety_checks" + "input_audio" ], "properties": { "type": { "type": "string", "enum": [ - "computer_call" - ] - }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete" + "input_audio" ], - "description": "The status of the item. One of `in_progress`, `completed`, or\n`incomplete`. Populated when items are returned via API." - }, - "call_id": { - "type": "string", - "description": "An identifier used when responding to the tool call with output." - }, - "action": { - "$ref": "#/components/schemas/OpenAI.ComputerAction" + "description": "The type of the input item. Always `input_audio`.", + "x-stainless-const": true }, - "pending_safety_checks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallSafetyCheck" - }, - "description": "The pending safety checks for the computer call." + "input_audio": { + "$ref": "#/components/schemas/OpenAI.InputAudioInputAudio" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemResource" - } - ], - "description": "A tool call to a computer use tool. See the\n[computer use guide](/docs/guides/tools-computer-use) for more information.\n" + "description": "An audio input to the model.", + "title": "Input audio" }, - "OpenAI.ComputerToolCallOutputItemOutput": { + "OpenAI.InputAudioInputAudio": { "type": "object", "required": [ - "type" + "data", + "format" ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallOutputItemOutputType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "computer_screenshot": "#/components/schemas/OpenAI.ComputerToolCallOutputItemOutputComputerScreenshot" + "data": { + "type": "string" + }, + "format": { + "type": "string", + "enum": [ + "mp3", + "wav" + ] } } }, - "OpenAI.ComputerToolCallOutputItemOutputComputerScreenshot": { + "OpenAI.InputContent": { "type": "object", "required": [ "type" ], "properties": { "type": { - "type": "string", - "enum": [ - "computer_screenshot" - ] - }, - "image_url": { - "type": "string" - }, - "file_id": { - "type": "string" + "$ref": "#/components/schemas/OpenAI.InputContentType" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallOutputItemOutput" + "discriminator": { + "propertyName": "type", + "mapping": { + "input_text": "#/components/schemas/OpenAI.InputTextContent", + "input_image": "#/components/schemas/OpenAI.InputImageContent", + "input_file": "#/components/schemas/OpenAI.InputFileContent" } - ] + } }, - "OpenAI.ComputerToolCallOutputItemOutputType": { + "OpenAI.InputContentType": { "anyOf": [ { "type": "string" @@ -10860,2678 +22997,2610 @@ { "type": "string", "enum": [ - "computer_screenshot" + "input_text", + "input_image", + "input_file" ] } + ] + }, + "OpenAI.InputFidelity": { + "type": "string", + "enum": [ + "high", + "low" ], - "description": "A computer screenshot image used with the computer use tool." + "description": "Control how much effort the model will exert to match the style and features, especially facial features, of input images. This parameter is only supported for `gpt-image-1`. Unsupported for `gpt-image-1-mini`. Supports `high` and `low`. Defaults to `low`." }, - "OpenAI.ComputerToolCallOutputItemParam": { + "OpenAI.InputFileContent": { "type": "object", "required": [ - "type", - "call_id", - "output" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "computer_call_output" + "input_file" + ], + "description": "The type of the input item. Always `input_file`.", + "x-stainless-const": true, + "default": "input_file" + }, + "file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } ] }, - "call_id": { + "filename": { "type": "string", - "description": "The ID of the computer tool call that produced the output." + "description": "The name of the file to be sent to the model." }, - "acknowledged_safety_checks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallSafetyCheck" - }, - "description": "The safety checks reported by the API that have been acknowledged by the\ndeveloper." + "file_url": { + "type": "string", + "description": "The URL of the file to be sent to the model." }, - "output": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallOutputItemOutput" + "file_data": { + "type": "string", + "description": "The content of the file to be sent to the model." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.InputContent" } ], - "description": "The output of a computer tool call.\n" + "description": "A file input to the model.", + "title": "Input file" }, - "OpenAI.ComputerToolCallOutputItemResource": { + "OpenAI.InputImageContent": { "type": "object", "required": [ "type", - "status", - "call_id", - "output" + "detail" ], "properties": { "type": { "type": "string", "enum": [ - "computer_call_output" - ] - }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete" + "input_image" ], - "description": "The status of the item. One of `in_progress`, `completed`, or\n`incomplete`. Populated when items are returned via API." + "description": "The type of the input item. Always `input_image`.", + "x-stainless-const": true, + "default": "input_image" }, - "call_id": { - "type": "string", - "description": "The ID of the computer tool call that produced the output." + "image_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "acknowledged_safety_checks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallSafetyCheck" - }, - "description": "The safety checks reported by the API that have been acknowledged by the\ndeveloper." + "file_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "output": { - "$ref": "#/components/schemas/OpenAI.ComputerToolCallOutputItemOutput" + "detail": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ImageDetail" + } + ], + "description": "The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`. Defaults to `auto`." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.InputContent" } ], - "description": "The output of a computer tool call.\n" + "description": "An image input to the model. Learn about [image inputs](https://platform.openai.com/docs/guides/vision).", + "title": "Input image" }, - "OpenAI.ComputerToolCallSafetyCheck": { + "OpenAI.InputItem": { "type": "object", "required": [ - "id", - "code", - "message" + "type" ], "properties": { - "id": { - "type": "string", - "description": "The ID of the pending safety check." - }, - "code": { - "type": "string", - "description": "The type of the pending safety check." + "type": { + "$ref": "#/components/schemas/OpenAI.InputItemType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "message": "#/components/schemas/OpenAI.EasyInputMessage", + "item_reference": "#/components/schemas/OpenAI.ItemReferenceParam" + } + } + }, + "OpenAI.InputItemType": { + "anyOf": [ + { + "type": "string" }, - "message": { + { "type": "string", - "description": "Details about the pending safety check." + "enum": [ + "message", + "item_reference" + ] } + ] + }, + "OpenAI.InputMessageContentList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputContent" }, - "description": "A pending safety check for the computer call." + "description": "A list of one or many input items to the model, containing different content\ntypes.", + "title": "Input item content list" }, - "OpenAI.ComputerUsePreviewTool": { + "OpenAI.InputMessageResource": { "type": "object", "required": [ "type", - "environment", - "display_width", - "display_height" + "role", + "content", + "id" ], "properties": { "type": { "type": "string", "enum": [ - "computer_use_preview" + "message" ], - "description": "The type of the computer use tool. Always `computer_use_preview`." + "description": "The type of the message input. Always set to `message`.", + "x-stainless-const": true }, - "environment": { + "role": { + "type": "string", + "enum": [ + "user", + "system", + "developer" + ], + "description": "The role of the message input. One of `user`, `system`, or `developer`." + }, + "status": { "type": "string", "enum": [ - "windows", - "mac", - "linux", - "ubuntu", - "browser" + "in_progress", + "completed", + "incomplete" ], - "description": "The type of computer environment to control." + "description": "The status of item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." }, - "display_width": { - "type": "integer", - "format": "int32", - "description": "The width of the computer display." + "content": { + "$ref": "#/components/schemas/OpenAI.InputMessageContentList" }, - "display_height": { - "type": "integer", - "format": "int32", - "description": "The height of the computer display." + "id": { + "type": "string", + "description": "The unique ID of the message input." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] + }, + "OpenAI.InputParam": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputItem" + } } ], - "description": "A tool that controls a virtual computer. Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use)." + "description": "Text, image, or file inputs to the model, used to generate a response.\n\nLearn more:\n- [Text inputs and outputs](https://platform.openai.com/docs/guides/text)\n- [Image inputs](https://platform.openai.com/docs/guides/images)\n- [File inputs](https://platform.openai.com/docs/guides/pdf-files)\n- [Conversation state](https://platform.openai.com/docs/guides/conversation-state)\n- [Function calling](https://platform.openai.com/docs/guides/function-calling)" }, - "OpenAI.ContainerFileListResource": { + "OpenAI.InputTextContent": { "type": "object", "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" + "type", + "text" ], "properties": { - "object": { + "type": { "type": "string", "enum": [ - "list" + "input_text" ], - "description": "The type of object returned, must be 'list'." - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ContainerFileResource" - }, - "description": "A list of container files." - }, - "first_id": { - "type": "string", - "description": "The ID of the first file in the list." + "description": "The type of the input item. Always `input_text`.", + "x-stainless-const": true, + "default": "input_text" }, - "last_id": { + "text": { "type": "string", - "description": "The ID of the last file in the list." - }, - "has_more": { - "type": "boolean", - "description": "Whether there are more files available." + "description": "The text input to the model." } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.InputContent" + } + ], + "description": "A text input to the model.", + "title": "Input text" }, - "OpenAI.ContainerFileResource": { + "OpenAI.ItemReferenceParam": { "type": "object", "required": [ - "id", - "object", - "container_id", - "created_at", - "bytes", - "path", - "source" + "type", + "id" ], "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the file." - }, - "object": { - "type": "string", - "description": "The type of this object (`container.file`)." - }, - "container_id": { - "type": "string", - "description": "The container this file belongs to." - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "Unix timestamp (in seconds) when the file was created." - }, - "bytes": { - "type": "integer", - "format": "int32", - "description": "Size of the file in bytes." - }, - "path": { + "type": { "type": "string", - "description": "Path of the file in the container." + "enum": [ + "item_reference" + ], + "description": "The type of item to reference. Always `item_reference`.", + "x-stainless-const": true, + "default": "item_reference" }, - "source": { + "id": { "type": "string", - "description": "Source of the file (e.g., `user`, `assistant`)." + "description": "The ID of the item to reference." } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.InputItem" + } + ], + "description": "An internal identifier for an item to reference.", + "title": "Item reference" }, - "OpenAI.ContainerListResource": { + "OpenAI.ItemResource": { "type": "object", "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" + "type" ], "properties": { - "object": { + "type": { + "$ref": "#/components/schemas/OpenAI.ItemResourceType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "computer_call_output": "#/components/schemas/OpenAI.ComputerToolCallOutputResource", + "function_call": "#/components/schemas/OpenAI.FunctionToolCallResource", + "function_call_output": "#/components/schemas/OpenAI.FunctionToolCallOutputResource", + "shell_call": "#/components/schemas/OpenAI.FunctionShellCall", + "shell_call_output": "#/components/schemas/OpenAI.FunctionShellCallOutput", + "apply_patch_call": "#/components/schemas/OpenAI.ApplyPatchToolCall", + "apply_patch_call_output": "#/components/schemas/OpenAI.ApplyPatchToolCallOutput", + "mcp_approval_response": "#/components/schemas/OpenAI.MCPApprovalResponseResource", + "message": "#/components/schemas/OpenAI.InputMessageResource", + "output_message": "#/components/schemas/OpenAI.ItemResourceOutputMessage", + "file_search_call": "#/components/schemas/OpenAI.ItemResourceFileSearchToolCall", + "computer_call": "#/components/schemas/OpenAI.ItemResourceComputerToolCall", + "web_search_call": "#/components/schemas/OpenAI.ItemResourceWebSearchToolCall", + "image_generation_call": "#/components/schemas/OpenAI.ItemResourceImageGenToolCall", + "code_interpreter_call": "#/components/schemas/OpenAI.ItemResourceCodeInterpreterToolCall", + "local_shell_call": "#/components/schemas/OpenAI.ItemResourceLocalShellToolCall", + "local_shell_call_output": "#/components/schemas/OpenAI.ItemResourceLocalShellToolCallOutput", + "mcp_list_tools": "#/components/schemas/OpenAI.ItemResourceMCPListTools", + "mcp_approval_request": "#/components/schemas/OpenAI.ItemResourceMCPApprovalRequest", + "mcp_call": "#/components/schemas/OpenAI.ItemResourceMCPToolCall" + } + }, + "description": "Content item used to generate a response." + }, + "OpenAI.ItemResourceCodeInterpreterToolCall": { + "type": "object", + "required": [ + "type", + "id", + "status", + "container_id", + "code", + "outputs" + ], + "properties": { + "type": { "type": "string", "enum": [ - "list" + "code_interpreter_call" ], - "description": "The type of object returned, must be 'list'." + "description": "The type of the code interpreter tool call. Always `code_interpreter_call`.", + "x-stainless-const": true, + "default": "code_interpreter_call" }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ContainerResource" - }, - "description": "A list of containers." + "id": { + "type": "string", + "description": "The unique ID of the code interpreter tool call." }, - "first_id": { + "status": { "type": "string", - "description": "The ID of the first container in the list." + "enum": [ + "in_progress", + "completed", + "incomplete", + "interpreting", + "failed" + ], + "description": "The status of the code interpreter tool call. Valid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`." }, - "last_id": { + "container_id": { "type": "string", - "description": "The ID of the last container in the list." + "description": "The ID of the container used to run the code." }, - "has_more": { - "type": "boolean", - "description": "Whether there are more containers available." + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "outputs": { + "anyOf": [ + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputLogs" + }, + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputImage" + } + ] + } + }, + { + "type": "null" + } + ] } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] }, - "OpenAI.ContainerResource": { + "OpenAI.ItemResourceComputerToolCall": { "type": "object", "required": [ + "type", "id", - "object", - "name", - "created_at", + "call_id", + "action", + "pending_safety_checks", "status" ], "properties": { - "id": { + "type": { "type": "string", - "description": "Unique identifier for the container." + "enum": [ + "computer_call" + ], + "description": "The type of the computer call. Always `computer_call`.", + "default": "computer_call" }, - "object": { + "id": { "type": "string", - "description": "The type of this object." + "description": "The unique ID of the computer call." }, - "name": { + "call_id": { "type": "string", - "description": "Name of the container." - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "Unix timestamp (in seconds) when the container was created." + "description": "An identifier used when responding to the tool call with output." }, - "status": { - "type": "string", - "description": "Status of the container (e.g., active, deleted)." + "action": { + "$ref": "#/components/schemas/OpenAI.ComputerAction" }, - "expires_after": { - "type": "object", - "properties": { - "anchor": { - "type": "string", - "enum": [ - "last_active_at" - ], - "description": "The reference point for the expiration." - }, - "minutes": { - "type": "integer", - "format": "int32", - "description": "The number of minutes after the anchor before the container expires." - } + "pending_safety_checks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ComputerCallSafetyCheckParam" }, - "description": "The container will expire after this time period.\nThe anchor is the reference point for the expiration.\nThe minutes is the number of minutes after the anchor before the container expires." - } - } - }, - "OpenAI.Coordinate": { - "type": "object", - "required": [ - "x", - "y" - ], - "properties": { - "x": { - "type": "integer", - "format": "int32", - "description": "The x-coordinate." + "description": "The pending safety checks for the computer call." }, - "y": { - "type": "integer", - "format": "int32", - "description": "The y-coordinate." + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." } }, - "description": "An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] }, - "OpenAI.CreateContainerBody": { + "OpenAI.ItemResourceFileSearchToolCall": { "type": "object", "required": [ - "name" + "id", + "type", + "status", + "queries" ], "properties": { - "name": { + "id": { "type": "string", - "description": "Name of the container to create." + "description": "The unique ID of the file search tool call." }, - "file_ids": { + "type": { + "type": "string", + "enum": [ + "file_search_call" + ], + "description": "The type of the file search tool call. Always `file_search_call`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "searching", + "completed", + "incomplete", + "failed" + ], + "description": "The status of the file search tool call. One of `in_progress`,\n `searching`, `incomplete` or `failed`," + }, + "queries": { "type": "array", "items": { "type": "string" }, - "description": "IDs of files to copy to the container." + "description": "The queries used to search for files." }, - "expires_after": { - "type": "object", - "properties": { - "anchor": { - "type": "string", - "enum": [ - "last_active_at" - ], - "description": "Time anchor for the expiration time. Currently only 'last_active_at' is supported." + "results": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FileSearchToolCallResults" + } }, - "minutes": { - "type": "integer", - "format": "int32" + { + "type": "null" } - }, - "required": [ - "anchor", - "minutes" - ], - "description": "Container expiration time in seconds relative to the 'anchor' time." + ] } - } - }, - "OpenAI.CreateContainerFileBodyMultiPart": { - "type": "object", - "properties": { - "file_id": { - "type": "string", - "description": "Name of the file to create." - }, - "file": { - "type": "string", - "format": "binary" + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" } - } + ] }, - "OpenAI.CreateEmbeddingResponse": { + "OpenAI.ItemResourceImageGenToolCall": { "type": "object", "required": [ - "data", - "model", - "object", - "usage" + "type", + "id", + "status", + "result" ], "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Embedding" - }, - "description": "The list of embeddings generated by the model." + "type": { + "type": "string", + "enum": [ + "image_generation_call" + ], + "description": "The type of the image generation call. Always `image_generation_call`.", + "x-stainless-const": true }, - "model": { + "id": { "type": "string", - "description": "The name of the model used to generate the embedding." + "description": "The unique ID of the image generation call." }, - "object": { + "status": { "type": "string", "enum": [ - "list" + "in_progress", + "completed", + "generating", + "failed" ], - "description": "The object type, which is always \"list\"." + "description": "The status of the image generation call." }, - "usage": { - "type": "object", - "properties": { - "prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens used by the prompt." - }, - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "The total number of tokens used by the request." - } - }, - "required": [ - "prompt_tokens", - "total_tokens" - ], - "description": "The usage information for the request." - } - } - }, - "OpenAI.CreateEvalItem": { - "anyOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message (e.g. \"system\", \"assistant\", \"user\")." + "result": { + "anyOf": [ + { + "type": "string" }, - "content": { - "type": "string", - "description": "The content of the message." + { + "type": "null" } - }, - "required": [ - "role", - "content" ] - }, + } + }, + "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalItem" + "$ref": "#/components/schemas/OpenAI.ItemResource" } - ], - "description": "A chat message that makes up the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}." + ] }, - "OpenAI.CreateEvalRunRequest": { + "OpenAI.ItemResourceLocalShellToolCall": { "type": "object", "required": [ - "data_source" + "type", + "id", + "call_id", + "action", + "status" ], "properties": { - "name": { + "type": { "type": "string", - "description": "The name of the run." + "enum": [ + "local_shell_call" + ], + "description": "The type of the local shell call. Always `local_shell_call`.", + "x-stainless-const": true }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "id": { + "type": "string", + "description": "The unique ID of the local shell call." }, - "data_source": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceParams" - } + "call_id": { + "type": "string", + "description": "The unique ID of the local shell tool call generated by the model." + }, + "action": { + "$ref": "#/components/schemas/OpenAI.LocalShellExecAction" + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" ], - "description": "Details about the run's data source." + "description": "The status of the local shell call." } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] }, - "OpenAI.CreateFineTuningJobRequest": { + "OpenAI.ItemResourceLocalShellToolCallOutput": { "type": "object", "required": [ - "model", - "training_file" + "type", + "id", + "output" ], "properties": { - "model": { + "type": { + "type": "string", + "enum": [ + "local_shell_call_output" + ], + "description": "The type of the local shell tool call output. Always `local_shell_call_output`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the local shell tool call generated by the model." + }, + "output": { + "type": "string", + "description": "A JSON string of the output of the local shell tool call." + }, + "status": { "anyOf": [ - { - "type": "string" - }, { "type": "string", "enum": [ - "babbage-002", - "davinci-002", - "gpt-3.5-turbo", - "gpt-4o-mini" + "in_progress", + "completed", + "incomplete" ] + }, + { + "type": "null" } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] + }, + "OpenAI.ItemResourceMCPApprovalRequest": { + "type": "object", + "required": [ + "type", + "id", + "server_label", + "name", + "arguments" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_approval_request" ], - "description": "The name of the model to fine-tune. You can select one of the\n[supported models](/docs/guides/fine-tuning#which-models-can-be-fine-tuned).", - "x-oaiTypeLabel": "string" + "description": "The type of the item. Always `mcp_approval_request`.", + "x-stainless-const": true }, - "training_file": { + "id": { "type": "string", - "description": "The ID of an uploaded file that contains training data.\n\nSee [upload file](/docs/api-reference/files/create) for how to upload a file.\n\nYour dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose `fine-tune`.\n\nThe contents of the file should differ depending on if the model uses the [chat](/docs/api-reference/fine-tuning/chat-input), [completions](/docs/api-reference/fine-tuning/completions-input) format, or if the fine-tuning method uses the [preference](/docs/api-reference/fine-tuning/preference-input) format.\n\nSee the [fine-tuning guide](/docs/guides/model-optimization) for more details." + "description": "The unique ID of the approval request." }, - "hyperparameters": { - "type": "object", - "properties": { - "batch_size": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "description": "Number of examples in each batch. A larger batch size means that model parameters\nare updated less frequently, but with lower variance.", - "default": "auto" - }, - "learning_rate_multiplier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "number", - "format": "float" - } - ], - "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid\noverfitting.", - "default": "auto" - }, - "n_epochs": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "description": "The number of epochs to train the model for. An epoch refers to one full cycle\nthrough the training dataset.", - "default": "auto" - } - }, - "description": "The hyperparameters used for the fine-tuning job.\nThis value is now deprecated in favor of `method`, and should be passed in under the `method` parameter.", - "deprecated": true + "server_label": { + "type": "string", + "description": "The label of the MCP server making the request." + }, + "name": { + "type": "string", + "description": "The name of the tool to run." + }, + "arguments": { + "type": "string", + "description": "A JSON string of arguments for the tool." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] + }, + "OpenAI.ItemResourceMCPListTools": { + "type": "object", + "required": [ + "type", + "id", + "server_label", + "tools" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "mcp_list_tools" + ], + "description": "The type of the item. Always `mcp_list_tools`.", + "x-stainless-const": true }, - "suffix": { + "id": { "type": "string", - "nullable": true, - "minLength": 1, - "maxLength": 64, - "description": "A string of up to 64 characters that will be added to your fine-tuned model name.\n\nFor example, a `suffix` of \"custom-model-name\" would produce a model name like `ft:gpt-4o-mini:openai:custom-model-name:7p4lURel`.", - "default": null + "description": "The unique ID of the list." }, - "validation_file": { + "server_label": { "type": "string", - "nullable": true, - "description": "The ID of an uploaded file that contains validation data.\n\nIf you provide this file, the data is used to generate validation\nmetrics periodically during fine-tuning. These metrics can be viewed in\nthe fine-tuning results file.\nThe same data should not be present in both train and validation files.\n\nYour dataset must be formatted as a JSONL file. You must upload your file with the purpose `fine-tune`.\n\nSee the [fine-tuning guide](/docs/guides/model-optimization) for more details." + "description": "The label of the MCP server." }, - "integrations": { + "tools": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegration" + "$ref": "#/components/schemas/OpenAI.MCPListToolsTool" }, - "nullable": true, - "description": "A list of integrations to enable for your fine-tuning job." - }, - "seed": { - "type": "integer", - "format": "int32", - "nullable": true, - "minimum": 0, - "maximum": 2147483647, - "description": "The seed controls the reproducibility of the job. Passing in the same seed and job parameters should produce the same results, but may differ in rare cases.\nIf a seed is not specified, one will be generated for you." - }, - "method": { - "$ref": "#/components/schemas/OpenAI.FineTuneMethod" + "description": "The tools available on the server." }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - } - } - }, - "OpenAI.CreateFineTuningJobRequestIntegration": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { + "error": { "anyOf": [ { "type": "string" }, { - "type": "string", - "enum": [ - "wandb" - ] + "type": "null" } ] } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "wandb": "#/components/schemas/OpenAI.CreateFineTuningJobRequestWandbIntegration" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" } - } + ] }, - "OpenAI.CreateFineTuningJobRequestWandbIntegration": { + "OpenAI.ItemResourceMCPToolCall": { "type": "object", "required": [ "type", - "wandb" + "id", + "server_label", + "name", + "arguments" ], "properties": { "type": { "type": "string", "enum": [ - "wandb" - ] + "mcp_call" + ], + "description": "The type of the item. Always `mcp_call`.", + "x-stainless-const": true }, - "wandb": { - "type": "object", - "properties": { - "project": { + "id": { + "type": "string", + "description": "The unique ID of the tool call." + }, + "server_label": { + "type": "string", + "description": "The label of the MCP server running the tool." + }, + "name": { + "type": "string", + "description": "The name of the tool that was run." + }, + "arguments": { + "type": "string", + "description": "A JSON string of the arguments passed to the tool." + }, + "output": { + "anyOf": [ + { "type": "string" }, - "name": { - "type": "string", - "nullable": true + { + "type": "null" + } + ] + }, + "error": { + "anyOf": [ + { + "type": "string" }, - "entity": { - "type": "string", - "nullable": true + { + "type": "null" + } + ] + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPToolCallStatus" + } + ], + "description": "The status of the tool call. One of `in_progress`, `completed`, `incomplete`, `calling`, or `failed`." + }, + "approval_request_id": { + "anyOf": [ + { + "type": "string" }, - "tags": { - "type": "array", - "items": { - "type": "string" - } + { + "type": "null" } - }, - "required": [ - "project" ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegration" + "$ref": "#/components/schemas/OpenAI.ItemResource" } ] }, - "OpenAI.CreateVectorStoreFileBatchRequest": { - "type": "object", - "required": [ - "file_ids" - ], - "properties": { - "file_ids": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 500, - "description": "A list of [File](/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files." - }, - "chunking_strategy": { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" - }, - "attributes": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" - } - ], - "nullable": true - } - } - }, - "OpenAI.CreateVectorStoreFileRequest": { + "OpenAI.ItemResourceOutputMessage": { "type": "object", "required": [ - "file_id" + "id", + "type", + "role", + "content", + "status" ], "properties": { - "file_id": { + "id": { "type": "string", - "description": "A [File](/docs/api-reference/files) ID that the vector store should use. Useful for tools like `file_search` that can access files." + "description": "The unique ID of the output message.", + "x-stainless-go-json": "omitzero" }, - "chunking_strategy": { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" + "type": { + "type": "string", + "enum": [ + "output_message" + ], + "description": "The type of the output message. Always `message`.", + "x-stainless-const": true }, - "attributes": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" - } + "role": { + "type": "string", + "enum": [ + "assistant" ], - "nullable": true - } - } - }, - "OpenAI.CreateVectorStoreRequest": { - "type": "object", - "properties": { - "file_ids": { + "description": "The role of the output message. Always `assistant`.", + "x-stainless-const": true + }, + "content": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/OpenAI.OutputMessageContent" }, - "maxItems": 500, - "description": "A list of [File](/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files." + "description": "The content of the output message." }, - "name": { + "status": { "type": "string", - "description": "The name of the vector store." - }, - "expires_after": { - "$ref": "#/components/schemas/OpenAI.VectorStoreExpirationAfter" - }, - "chunking_strategy": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.AutoChunkingStrategyRequestParam" - }, - { - "$ref": "#/components/schemas/OpenAI.StaticChunkingStrategyRequestParam" - } + "enum": [ + "in_progress", + "completed", + "incomplete" ], - "description": "The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. Only applicable if `file_ids` is non-empty." - }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "description": "The status of the message input. One of `in_progress`, `completed`, or\n `incomplete`. Populated when input items are returned via API." } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] }, - "OpenAI.DeleteFileResponse": { - "type": "object", - "required": [ - "id", - "object", - "deleted" - ], - "properties": { - "id": { + "OpenAI.ItemResourceType": { + "anyOf": [ + { "type": "string" }, - "object": { + { "type": "string", "enum": [ - "file" + "message", + "output_message", + "file_search_call", + "computer_call", + "computer_call_output", + "web_search_call", + "function_call", + "function_call_output", + "image_generation_call", + "code_interpreter_call", + "local_shell_call", + "local_shell_call_output", + "shell_call", + "shell_call_output", + "apply_patch_call", + "apply_patch_call_output", + "mcp_list_tools", + "mcp_approval_request", + "mcp_approval_response", + "mcp_call" ] - }, - "deleted": { - "type": "boolean" } - } + ] }, - "OpenAI.DeleteVectorStoreFileResponse": { + "OpenAI.ItemResourceWebSearchToolCall": { "type": "object", "required": [ "id", - "deleted", - "object" + "type", + "status", + "action" ], "properties": { "id": { - "type": "string" + "type": "string", + "description": "The unique ID of the web search tool call." }, - "deleted": { - "type": "boolean" + "type": { + "type": "string", + "enum": [ + "web_search_call" + ], + "description": "The type of the web search tool call. Always `web_search_call`.", + "x-stainless-const": true }, - "object": { + "status": { "type": "string", "enum": [ - "vector_store.file.deleted" - ] + "in_progress", + "searching", + "completed", + "failed" + ], + "description": "The status of the web search tool call." + }, + "action": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionSearch" + }, + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionOpenPage" + }, + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionFind" + } + ], + "description": "An object describing the specific action taken in this web search call.\n Includes details on how the model used the web (search, open_page, find)." } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ItemResource" + } + ] }, - "OpenAI.DeleteVectorStoreResponse": { + "OpenAI.KeyPressAction": { "type": "object", "required": [ - "id", - "deleted", - "object" + "type", + "keys" ], "properties": { - "id": { - "type": "string" - }, - "deleted": { - "type": "boolean" - }, - "object": { + "type": { "type": "string", "enum": [ - "vector_store.deleted" - ] + "keypress" + ], + "description": "Specifies the event type. For a keypress action, this property is always set to `keypress`.", + "x-stainless-const": true, + "default": "keypress" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The combination of keys the model is requesting to be pressed. This is an array of strings, each representing a key." } - } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + } + ], + "description": "A collection of keypresses the model would like to perform.", + "title": "KeyPress" }, - "OpenAI.Embedding": { + "OpenAI.ListBatchesResponse": { "type": "object", "required": [ - "index", - "embedding", + "data", + "has_more", "object" ], "properties": { - "index": { - "type": "integer", - "format": "int32", - "description": "The index of the embedding in the list of embeddings." + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.Batch" + } }, - "embedding": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "number" - } - }, - { - "type": "string" - } - ], - "description": "The embedding vector, which is a list of floats. The length of vector depends on the model as listed in the [embedding guide](/docs/guides/embeddings)." + "first_id": { + "type": "string" + }, + "last_id": { + "type": "string" + }, + "has_more": { + "type": "boolean" }, "object": { "type": "string", "enum": [ - "embedding" + "list" ], - "description": "The object type, which is always \"embedding\"." + "x-stainless-const": true } - }, - "description": "Represents an embedding vector returned by embedding endpoint." + } }, - "OpenAI.Eval": { + "OpenAI.ListFilesResponse": { "type": "object", "required": [ "object", - "id", - "name", - "data_source_config", - "testing_criteria", - "created_at", - "metadata" + "data", + "first_id", + "last_id", + "has_more" ], "properties": { "object": { - "type": "string", - "enum": [ - "eval" - ], - "description": "The object type.", - "default": "eval" - }, - "id": { - "type": "string", - "description": "Unique identifier for the evaluation." - }, - "name": { - "type": "string", - "description": "The name of the evaluation." - }, - "data_source_config": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigResource" - } - ], - "description": "Configuration of data sources used in runs of the evaluation." + "type": "string" }, - "testing_criteria": { + "data": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.EvalGraderResource" - }, - "nullable": true, - "description": "A list of testing criteria.", - "default": null + "$ref": "#/components/schemas/OpenAI.OpenAIFile" + } }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the eval was created." + "first_id": { + "type": "string" }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - } - }, - "description": "An Eval object with a data source config and testing criteria.\nAn Eval represents a task to be done for your LLM integration.\nLike:\n- Improve the quality of my chatbot\n- See how well my chatbot handles customer support\n- Check if o4-mini is better at my usecase than gpt-4o" - }, - "OpenAI.EvalApiError": { - "type": "object", - "required": [ - "code", - "message" - ], - "properties": { - "code": { - "type": "string", - "description": "The error code." + "last_id": { + "type": "string" }, - "message": { - "type": "string", - "description": "The error message." + "has_more": { + "type": "boolean" } - }, - "description": "An object representing an error response from the Eval API." + } }, - "OpenAI.EvalCompletionsRunDataSourceParams": { + "OpenAI.ListFineTuningCheckpointPermissionResponse": { "type": "object", "required": [ - "type", - "source" + "data", + "object", + "has_more" ], "properties": { - "type": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FineTuningCheckpointPermission" + } + }, + "object": { "type": "string", "enum": [ - "completions" + "list" ], - "description": "The type of run data source. Always `completions`." + "x-stainless-const": true }, - "input_messages": { + "first_id": { "anyOf": [ { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "template" - ], - "description": "The type of input messages. Always `template`." - }, - "template": { - "type": "array", - "items": { - "anyOf": [ - {}, - { - "$ref": "#/components/schemas/OpenAI.EvalItem" - } - ] - }, - "description": "A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}." - } - }, - "required": [ - "type", - "template" - ] + "type": "string" }, { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "item_reference" - ], - "description": "The type of input messages. Always `item_reference`." - }, - "item_reference": { - "type": "string", - "description": "A reference to a variable in the `item` namespace. Ie, \"item.input_trajectory\"" - } - }, - "required": [ - "type", - "item_reference" - ] + "type": "null" } - ], - "description": "Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace." - }, - "sampling_params": { - "$ref": "#/components/schemas/AzureEvalAPICompletionsSamplingParams" - }, - "model": { - "type": "string", - "description": "The name of the model to use for generating completions (e.g. \"o3-mini\")." + ] }, - "source": { + "last_id": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunFileContentDataContentSource" - }, - { - "$ref": "#/components/schemas/OpenAI.EvalRunFileIdDataContentSource" + "type": "string" }, { - "$ref": "#/components/schemas/OpenAI.EvalRunStoredCompletionsDataContentSource" + "type": "null" } - ], - "description": "Determines what populates the `item` namespace in this run's data source." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceParams" + ] + }, + "has_more": { + "type": "boolean" } - ], - "description": "A CompletionsRunDataSource object describing a model sampling configuration." + } }, - "OpenAI.EvalCustomDataSourceConfigParams": { + "OpenAI.ListFineTuningJobCheckpointsResponse": { "type": "object", "required": [ - "type", - "item_schema" + "data", + "object", + "has_more" ], "properties": { - "type": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FineTuningJobCheckpoint" + } + }, + "object": { "type": "string", "enum": [ - "custom" + "list" ], - "description": "The type of data source. Always `custom`." + "x-stainless-const": true }, - "item_schema": { - "type": "object", - "additionalProperties": {}, - "description": "The json schema for each row in the data source." + "first_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "last_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "include_sample_schema": { - "type": "boolean", - "description": "Whether the eval should expect you to populate the sample namespace (ie, by generating responses off of your data source)", - "default": false - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigParams" + "has_more": { + "type": "boolean" } - ], - "description": "A CustomDataSourceConfig object that defines the schema for the data source used for the evaluation runs.\nThis schema is used to define the shape of the data that will be:\n- Used to define your testing criteria and\n- What data is required when creating a run" + } }, - "OpenAI.EvalCustomDataSourceConfigResource": { + "OpenAI.ListFineTuningJobEventsResponse": { "type": "object", "required": [ - "type", - "schema" + "data", + "object", + "has_more" ], "properties": { - "type": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FineTuningJobEvent" + } + }, + "object": { "type": "string", "enum": [ - "custom" + "list" ], - "description": "The type of data source. Always `custom`." + "x-stainless-const": true }, - "schema": { - "type": "object", - "additionalProperties": {}, - "description": "The json schema for the run data source items.\nLearn how to build JSON schemas [here](https://json-schema.org/)." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigResource" - } - ], - "description": "A CustomDataSourceConfig which specifies the schema of your `item` and optionally `sample` namespaces.\nThe response schema defines the shape of the data that will be:\n- Used to define your testing criteria and\n- What data is required when creating a run" - }, - "OpenAI.EvalDataSourceConfigParams": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "custom": "#/components/schemas/OpenAI.EvalCustomDataSourceConfigParams", - "logs": "#/components/schemas/OpenAI.EvalLogsDataSourceConfigParams", - "stored_completions": "#/components/schemas/OpenAI.EvalStoredCompletionsDataSourceConfigParams" + "has_more": { + "type": "boolean" } } }, - "OpenAI.EvalDataSourceConfigResource": { + "OpenAI.ListMessagesResponse": { "type": "object", "required": [ - "type" + "object", + "data", + "first_id", + "last_id", + "has_more" ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "custom": "#/components/schemas/OpenAI.EvalCustomDataSourceConfigResource", - "stored_completions": "#/components/schemas/OpenAI.EvalStoredCompletionsDataSourceConfigResource", - "logs": "#/components/schemas/OpenAI.EvalLogsDataSourceConfigResource" + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.MessageObject" + } + }, + "first_id": { + "type": "string" + }, + "last_id": { + "type": "string" + }, + "has_more": { + "type": "boolean" } } }, - "OpenAI.EvalDataSourceConfigType": { - "type": "string", - "enum": [ - "custom", - "logs", - "stored_completions" - ] - }, - "OpenAI.EvalGraderLabelModelParams": { + "OpenAI.ListModelsResponse": { "type": "object", "required": [ - "type", - "name", - "model", - "input", - "labels", - "passing_labels" + "object", + "data" ], "properties": { - "type": { + "object": { "type": "string", "enum": [ - "label_model" + "list" ], - "description": "The object type, which is always `label_model`." + "x-stainless-const": true }, - "name": { - "type": "string", - "description": "The name of the grader." - }, - "model": { - "type": "string", - "description": "The model to use for the evaluation. Must support structured outputs." - }, - "input": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.CreateEvalItem" - }, - "description": "A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}." - }, - "labels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The labels to classify to each item in the evaluation." - }, - "passing_labels": { + "data": { "type": "array", "items": { - "type": "string" - }, - "description": "The labels that indicate a passing result. Must be a subset of labels." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderParams" + "$ref": "#/components/schemas/OpenAI.Model" + } } - ], - "description": "A LabelModelGrader object which uses a model to assign labels to each item\nin the evaluation." + } }, - "OpenAI.EvalGraderLabelModelResource": { + "OpenAI.ListPaginatedFineTuningJobsResponse": { "type": "object", "required": [ - "type", - "name", - "model", - "input", - "labels", - "passing_labels" + "data", + "has_more", + "object" ], "properties": { - "type": { - "type": "string", - "enum": [ - "label_model" - ], - "description": "The object type, which is always `label_model`." - }, - "name": { - "type": "string", - "description": "The name of the grader." - }, - "model": { - "type": "string", - "description": "The model to use for the evaluation. Must support structured outputs." - }, - "input": { + "data": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.EvalItem" + "$ref": "#/components/schemas/OpenAI.FineTuningJob" } }, - "labels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The labels to assign to each item in the evaluation." + "has_more": { + "type": "boolean" }, - "passing_labels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The labels that indicate a passing result. Must be a subset of labels." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderResource" + "object": { + "type": "string", + "enum": [ + "list" + ], + "x-stainless-const": true } - ] + } }, - "OpenAI.EvalGraderParams": { + "OpenAI.ListRunStepsResponse": { "type": "object", "required": [ - "type" + "object", + "data", + "first_id", + "last_id", + "has_more" ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.GraderType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "label_model": "#/components/schemas/OpenAI.EvalGraderLabelModelParams", - "string_check": "#/components/schemas/OpenAI.EvalGraderStringCheckParams", - "text_similarity": "#/components/schemas/OpenAI.EvalGraderTextSimilarityParams", - "python": "#/components/schemas/OpenAI.EvalGraderPythonParams", - "score_model": "#/components/schemas/OpenAI.EvalGraderScoreModelParams" + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RunStepObject" + } + }, + "first_id": { + "type": "string" + }, + "last_id": { + "type": "string" + }, + "has_more": { + "type": "boolean" } } }, - "OpenAI.EvalGraderPythonParams": { + "OpenAI.ListRunsResponse": { "type": "object", "required": [ - "type", - "name", - "source" + "object", + "data", + "first_id", + "last_id", + "has_more" ], "properties": { - "type": { - "type": "string", - "enum": [ - "python" - ], - "description": "The object type, which is always `python`." + "object": { + "type": "string" }, - "name": { - "type": "string", - "description": "The name of the grader." + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RunObject" + } }, - "source": { - "type": "string", - "description": "The source code of the python script." + "first_id": { + "type": "string" }, - "image_tag": { - "type": "string", - "description": "The image tag to use for the python script." + "last_id": { + "type": "string" }, - "pass_threshold": { - "type": "number", - "format": "float", - "description": "The threshold for the score." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderParams" + "has_more": { + "type": "boolean" } - ] + } }, - "OpenAI.EvalGraderPythonResource": { + "OpenAI.ListVectorStoreFilesResponse": { "type": "object", "required": [ - "type", - "name", - "source" + "object", + "data", + "first_id", + "last_id", + "has_more" ], "properties": { - "type": { - "type": "string", - "enum": [ - "python" - ], - "description": "The object type, which is always `python`." + "object": { + "type": "string" }, - "name": { - "type": "string", - "description": "The name of the grader." + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" + } }, - "source": { - "type": "string", - "description": "The source code of the python script." + "first_id": { + "type": "string" }, - "image_tag": { - "type": "string", - "description": "The image tag to use for the python script." + "last_id": { + "type": "string" }, - "pass_threshold": { - "type": "number", - "format": "float", - "description": "The threshold for the score." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderResource" + "has_more": { + "type": "boolean" } - ] + } }, - "OpenAI.EvalGraderResource": { + "OpenAI.ListVectorStoresResponse": { "type": "object", "required": [ - "type" + "object", + "data", + "first_id", + "last_id", + "has_more" ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.GraderType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "label_model": "#/components/schemas/OpenAI.EvalGraderLabelModelResource", - "text_similarity": "#/components/schemas/OpenAI.EvalGraderTextSimilarityResource", - "python": "#/components/schemas/OpenAI.EvalGraderPythonResource", - "score_model": "#/components/schemas/OpenAI.EvalGraderScoreModelResource" + "object": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.VectorStoreObject" + } + }, + "first_id": { + "type": "string" + }, + "last_id": { + "type": "string" + }, + "has_more": { + "type": "boolean" } } }, - "OpenAI.EvalGraderScoreModelParams": { + "OpenAI.LocalShellCallStatus": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ] + }, + "OpenAI.LocalShellExecAction": { "type": "object", "required": [ "type", - "name", - "model", - "input" + "command", + "env" ], "properties": { "type": { "type": "string", "enum": [ - "score_model" + "exec" ], - "description": "The object type, which is always `score_model`." - }, - "name": { - "type": "string", - "description": "The name of the grader." - }, - "model": { - "type": "string", - "description": "The model to use for the evaluation." - }, - "sampling_params": { - "description": "The sampling parameters for the model." + "description": "The type of the local shell action. Always `exec`.", + "x-stainless-const": true, + "default": "exec" }, - "input": { + "command": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.EvalItem" + "type": "string" }, - "description": "The input text. This may include template strings." + "description": "The command to run." }, - "range": { - "type": "array", - "items": { - "type": "number", - "format": "float" + "timeout_ms": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "working_directory": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "env": { + "type": "object", + "unevaluatedProperties": { + "type": "string" }, - "description": "The range of the score. Defaults to `[0, 1]`." + "description": "Environment variables to set for the command.", + "x-oaiTypeLabel": "map" }, - "pass_threshold": { - "type": "number", - "format": "float", - "description": "The threshold for the score." + "user": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderParams" - } - ] + "description": "Execute a shell command on the server.", + "title": "Local shell exec action" }, - "OpenAI.EvalGraderScoreModelResource": { + "OpenAI.LocalShellToolParam": { "type": "object", "required": [ - "type", - "name", - "model", - "input" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "score_model" + "local_shell" ], - "description": "The object type, which is always `score_model`." - }, - "name": { - "type": "string", - "description": "The name of the grader." - }, - "model": { - "type": "string", - "description": "The model to use for the evaluation." + "description": "The type of the local shell tool. Always `local_shell`.", + "x-stainless-const": true, + "default": "local_shell" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Tool" + } + ], + "description": "A tool that allows the model to execute shell commands in a local environment.", + "title": "Local shell tool" + }, + "OpenAI.LogProb": { + "type": "object", + "required": [ + "token", + "logprob", + "bytes", + "top_logprobs" + ], + "properties": { + "token": { + "type": "string" }, - "sampling_params": { - "description": "The sampling parameters for the model." + "logprob": { + "type": "number" }, - "input": { + "bytes": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.EvalItem" - }, - "description": "The input text. This may include template strings." + "type": "integer" + } }, - "range": { + "top_logprobs": { "type": "array", "items": { - "type": "number", - "format": "float" - }, - "description": "The range of the score. Defaults to `[0, 1]`." - }, - "pass_threshold": { - "type": "number", - "format": "float", - "description": "The threshold for the score." + "$ref": "#/components/schemas/OpenAI.TopLogProb" + } } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderResource" - } - ] + "description": "The log probability of a token.", + "title": "Log probability" }, - "OpenAI.EvalGraderStringCheckParams": { + "OpenAI.MCPApprovalResponseResource": { "type": "object", "required": [ "type", - "name", - "input", - "reference", - "operation" + "id", + "approval_request_id", + "approve" ], "properties": { "type": { "type": "string", "enum": [ - "string_check" + "mcp_approval_response" ], - "description": "The object type, which is always `string_check`." + "description": "The type of the item. Always `mcp_approval_response`.", + "x-stainless-const": true }, - "name": { + "id": { "type": "string", - "description": "The name of the grader." + "description": "The unique ID of the approval response" }, - "input": { + "approval_request_id": { "type": "string", - "description": "The input text. This may include template strings." + "description": "The ID of the approval request being answered." }, - "reference": { - "type": "string", - "description": "The reference text. This may include template strings." + "approve": { + "type": "boolean", + "description": "Whether the request was approved." }, - "operation": { - "type": "string", - "enum": [ - "eq", - "ne", - "like", - "ilike" - ], - "description": "The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`." + "reason": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalGraderParams" + "$ref": "#/components/schemas/OpenAI.ItemResource" } - ] + ], + "description": "A response to an MCP approval request.", + "title": "MCP approval response" }, - "OpenAI.EvalGraderTextSimilarityParams": { + "OpenAI.MCPListToolsTool": { "type": "object", "required": [ - "type", - "name", - "input", - "reference", - "evaluation_metric", - "pass_threshold" + "name", + "input_schema" ], "properties": { - "type": { - "type": "string", - "enum": [ - "text_similarity" - ], - "description": "The type of grader." - }, "name": { "type": "string", - "description": "The name of the grader." - }, - "input": { - "type": "string", - "description": "The text being graded." + "description": "The name of the tool." }, - "reference": { - "type": "string", - "description": "The text being graded against." + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "evaluation_metric": { - "type": "string", - "enum": [ - "fuzzy_match", - "bleu", - "gleu", - "meteor", - "rouge_1", - "rouge_2", - "rouge_3", - "rouge_4", - "rouge_5", - "rouge_l" + "input_schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPListToolsToolInputSchema" + } ], - "description": "The evaluation metric to use. One of `fuzzy_match`, `bleu`, `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`." + "description": "The JSON schema describing the tool's input." }, - "pass_threshold": { - "type": "number", - "format": "float", - "description": "The threshold for the score." + "annotations": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPListToolsToolAnnotations" + }, + { + "type": "null" + } + ] } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalGraderParams" - } - ] + "description": "A tool available on an MCP server.", + "title": "MCP list tools tool" + }, + "OpenAI.MCPListToolsToolAnnotations": { + "type": "object" + }, + "OpenAI.MCPListToolsToolInputSchema": { + "type": "object" }, - "OpenAI.EvalGraderTextSimilarityResource": { + "OpenAI.MCPTool": { "type": "object", "required": [ "type", - "name", - "input", - "reference", - "evaluation_metric", - "pass_threshold" + "server_label" ], "properties": { "type": { "type": "string", "enum": [ - "text_similarity" + "mcp" ], - "description": "The type of grader." - }, - "name": { - "type": "string", - "description": "The name of the grader." + "description": "The type of the MCP tool. Always `mcp`.", + "x-stainless-const": true }, - "input": { + "server_label": { "type": "string", - "description": "The text being graded." + "description": "A label for this MCP server, used to identify it in tool calls." }, - "reference": { + "server_url": { "type": "string", - "description": "The text being graded against." + "description": "The URL for the MCP server. One of `server_url` or `connector_id` must be\n provided." }, - "evaluation_metric": { + "connector_id": { "type": "string", "enum": [ - "fuzzy_match", - "bleu", - "gleu", - "meteor", - "rouge_1", - "rouge_2", - "rouge_3", - "rouge_4", - "rouge_5", - "rouge_l" + "connector_dropbox", + "connector_gmail", + "connector_googlecalendar", + "connector_googledrive", + "connector_microsoftteams", + "connector_outlookcalendar", + "connector_outlookemail", + "connector_sharepoint" ], - "description": "The evaluation metric to use. One of `fuzzy_match`, `bleu`, `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`." + "description": "Identifier for service connectors, like those available in ChatGPT. One of\n `server_url` or `connector_id` must be provided. Learn more about service\n connectors [here](https://platform.openai.com/docs/guides/tools-remote-mcp#connectors).\n\n Currently supported `connector_id` values are:\n\n - Dropbox: `connector_dropbox`\n - Gmail: `connector_gmail`\n - Google Calendar: `connector_googlecalendar`\n - Google Drive: `connector_googledrive`\n - Microsoft Teams: `connector_microsoftteams`\n - Outlook Calendar: `connector_outlookcalendar`\n - Outlook Email: `connector_outlookemail`\n - SharePoint: `connector_sharepoint`" }, - "pass_threshold": { - "type": "number", - "format": "float", - "description": "The threshold for the score." + "authorization": { + "type": "string", + "description": "An OAuth access token that can be used with a remote MCP server, either\n with a custom MCP server URL or a service connector. Your application\n must handle the OAuth authorization flow and provide the token here." + }, + "server_description": { + "type": "string", + "description": "Optional description of the MCP server, used to provide more context." + }, + "headers": { + "anyOf": [ + { + "type": "object", + "unevaluatedProperties": { + "type": "string" + } + }, + { + "type": "null" + } + ] + }, + "allowed_tools": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "#/components/schemas/OpenAI.MCPToolFilter" + }, + { + "type": "null" + } + ] + }, + "require_approval": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPToolRequireApproval" + }, + { + "type": "string", + "enum": [ + "always", + "never" + ] + }, + { + "type": "null" + } + ], + "default": "always" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalGraderResource" + "$ref": "#/components/schemas/OpenAI.Tool" } + ], + "description": "Give the model access to additional tools via remote Model Context Protocol\n(MCP) servers. [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp).", + "title": "MCP tool" + }, + "OpenAI.MCPToolCallStatus": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete", + "calling", + "failed" ] }, - "OpenAI.EvalItem": { + "OpenAI.MCPToolFilter": { + "type": "object", + "properties": { + "tool_names": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of allowed tool names.", + "title": "MCP allowed tools" + }, + "read_only": { + "type": "boolean", + "description": "Indicates whether or not a tool modifies data or is read-only. If an\n MCP server is [annotated with `readOnlyHint`](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),\n it will match this filter." + } + }, + "description": "A filter object to specify which tools are allowed.", + "title": "MCP tool filter" + }, + "OpenAI.MCPToolRequireApproval": { + "type": "object", + "properties": { + "always": { + "$ref": "#/components/schemas/OpenAI.MCPToolFilter" + }, + "never": { + "$ref": "#/components/schemas/OpenAI.MCPToolFilter" + } + } + }, + "OpenAI.Message": { "type": "object", "required": [ + "type", + "id", + "status", "role", "content" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "user", - "assistant", - "system", - "developer" + "message" ], - "description": "The role of the message input. One of `user`, `assistant`, `system`, or\n`developer`." + "description": "The type of the message. Always set to `message`.", + "x-stainless-const": true, + "default": "message" }, - "content": { - "anyOf": [ - { - "type": "string" - }, + "id": { + "type": "string", + "description": "The unique ID of the message." + }, + "status": { + "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalItemContent" + "$ref": "#/components/schemas/OpenAI.MessageStatus" } ], - "description": "Text inputs to the model - can contain template strings." + "description": "The status of item. One of `in_progress`, `completed`, or `incomplete`. Populated when items are returned via API." }, - "type": { - "type": "string", - "enum": [ - "message" + "role": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MessageRole" + } ], - "description": "The type of the message input. Always `message`." + "description": "The role of the message. One of `unknown`, `user`, `assistant`, `system`, `critic`, `discriminator`, `developer`, or `tool`." + }, + "content": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.InputTextContent" + }, + { + "$ref": "#/components/schemas/OpenAI.OutputTextContent" + }, + { + "$ref": "#/components/schemas/OpenAI.TextContent" + }, + { + "$ref": "#/components/schemas/OpenAI.SummaryTextContent" + }, + { + "$ref": "#/components/schemas/OpenAI.ReasoningTextContent" + }, + { + "$ref": "#/components/schemas/OpenAI.RefusalContent" + }, + { + "$ref": "#/components/schemas/OpenAI.InputImageContent" + }, + { + "$ref": "#/components/schemas/OpenAI.ComputerScreenshotContent" + }, + { + "$ref": "#/components/schemas/OpenAI.InputFileContent" + } + ] + }, + "description": "The content of the message" } }, - "description": "A message input to the model with a role indicating instruction following\nhierarchy. Instructions given with the `developer` or `system` role take\nprecedence over instructions given with the `user` role. Messages with the\n`assistant` role are presumed to have been generated by the model in previous\ninteractions." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ConversationItem" + } + ], + "description": "A message to or from the model.", + "title": "Message" }, - "OpenAI.EvalItemContent": { + "OpenAI.MessageContent": { "type": "object", "required": [ "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.EvalItemContentType" + "$ref": "#/components/schemas/OpenAI.MessageContentType" } }, "discriminator": { "propertyName": "type", "mapping": { - "input_text": "#/components/schemas/OpenAI.EvalItemContentInputText", - "output_text": "#/components/schemas/OpenAI.EvalItemContentOutputText" + "image_url": "#/components/schemas/OpenAI.MessageContentImageUrlObject", + "text": "#/components/schemas/OpenAI.MessageContentTextObject", + "refusal": "#/components/schemas/OpenAI.MessageContentRefusalObject" } } }, - "OpenAI.EvalItemContentInputText": { + "OpenAI.MessageContentImageFileObject": { "type": "object", "required": [ "type", - "text" + "image_file" ], "properties": { "type": { "type": "string", "enum": [ - "input_text" - ] + "image_file" + ], + "description": "Always `image_file`.", + "x-stainless-const": true }, - "text": { - "type": "string" + "image_file": { + "$ref": "#/components/schemas/OpenAI.MessageContentImageFileObjectImageFile" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalItemContent" + "$ref": "#/components/schemas/OpenAI.MessageContent" } - ] + ], + "description": "References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message.", + "title": "Image file" }, - "OpenAI.EvalItemContentOutputText": { + "OpenAI.MessageContentImageFileObjectImageFile": { "type": "object", "required": [ - "type", - "text" + "file_id" ], "properties": { - "type": { + "file_id": { + "type": "string" + }, + "detail": { "type": "string", "enum": [ - "output_text" - ] - }, - "text": { - "type": "string" - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalItemContent" + "auto", + "low", + "high" + ], + "default": "auto" } - ] - }, - "OpenAI.EvalItemContentType": { - "type": "string", - "enum": [ - "input_text", - "output_text" - ] + } }, - "OpenAI.EvalJsonlRunDataSourceParams": { + "OpenAI.MessageContentImageUrlObject": { "type": "object", "required": [ "type", - "source" + "image_url" ], "properties": { "type": { "type": "string", "enum": [ - "jsonl" + "image_url" ], - "description": "The type of data source. Always `jsonl`." + "description": "The type of the content part.", + "x-stainless-const": true }, - "source": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalRunFileContentDataContentSource" - }, - { - "$ref": "#/components/schemas/OpenAI.EvalRunFileIdDataContentSource" - } - ], - "description": "Determines what populates the `item` namespace in the data source." + "image_url": { + "$ref": "#/components/schemas/OpenAI.MessageContentImageUrlObjectImageUrl" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceParams" + "$ref": "#/components/schemas/OpenAI.MessageContent" } ], - "description": "A JsonlRunDataSource object with that specifies a JSONL file that matches the eval" + "description": "References an image URL in the content of a message.", + "title": "Image URL" }, - "OpenAI.EvalList": { + "OpenAI.MessageContentImageUrlObjectImageUrl": { "type": "object", "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" + "url" ], "properties": { - "object": { - "type": "string", - "enum": [ - "list" - ], - "description": "The type of this object. It is always set to \"list\".", - "default": "list" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Eval" - }, - "description": "An array of eval objects." - }, - "first_id": { + "url": { "type": "string", - "description": "The identifier of the first eval in the data array." + "format": "uri" }, - "last_id": { + "detail": { "type": "string", - "description": "The identifier of the last eval in the data array." - }, - "has_more": { - "type": "boolean", - "description": "Indicates whether there are more evals available." + "enum": [ + "auto", + "low", + "high" + ], + "default": "auto" } - }, - "description": "An object representing a list of evals." + } }, - "OpenAI.EvalLogsDataSourceConfigParams": { + "OpenAI.MessageContentRefusalObject": { "type": "object", "required": [ - "type" + "type", + "refusal" ], "properties": { "type": { "type": "string", "enum": [ - "logs" + "refusal" ], - "description": "The type of data source. Always `logs`." + "description": "Always `refusal`.", + "x-stainless-const": true }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "refusal": { + "type": "string" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigParams" + "$ref": "#/components/schemas/OpenAI.MessageContent" } ], - "description": "A data source config which specifies the metadata property of your logs query.\nThis is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc." + "description": "The refusal content generated by the assistant.", + "title": "Refusal" }, - "OpenAI.EvalLogsDataSourceConfigResource": { + "OpenAI.MessageContentTextAnnotationsFileCitationObject": { "type": "object", "required": [ "type", - "metadata", - "schema" + "text", + "file_citation", + "start_index", + "end_index" ], "properties": { "type": { "type": "string", "enum": [ - "logs" + "file_citation" ], - "description": "The type of data source. Always `logs`." + "description": "Always `file_citation`.", + "x-stainless-const": true }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "text": { + "type": "string", + "description": "The text in the message content that needs to be replaced." }, - "schema": { - "type": "object", - "additionalProperties": {}, - "description": "The json schema for the run data source items.\nLearn how to build JSON schemas [here](https://json-schema.org/)." + "file_citation": { + "$ref": "#/components/schemas/OpenAI.MessageContentTextAnnotationsFileCitationObjectFileCitation" + }, + "start_index": { + "type": "integer", + "minimum": 0 + }, + "end_index": { + "type": "integer", + "minimum": 0 } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigResource" + "$ref": "#/components/schemas/OpenAI.TextAnnotation" } ], - "description": "A LogsDataSourceConfig which specifies the metadata property of your logs query.\nThis is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc.\nThe schema returned by this data source config is used to defined what variables are available in your evals.\n`item` and `sample` are both defined when using this data source config." + "description": "A citation within the message that points to a specific quote from a specific File associated with the assistant or the message. Generated when the assistant uses the \"file_search\" tool to search files.", + "title": "File citation" + }, + "OpenAI.MessageContentTextAnnotationsFileCitationObjectFileCitation": { + "type": "object", + "required": [ + "file_id" + ], + "properties": { + "file_id": { + "type": "string" + } + } }, - "OpenAI.EvalResponsesRunDataSourceParams": { + "OpenAI.MessageContentTextAnnotationsFilePathObject": { "type": "object", "required": [ "type", - "source" + "text", + "file_path", + "start_index", + "end_index" ], "properties": { "type": { "type": "string", "enum": [ - "responses" + "file_path" ], - "description": "The type of run data source. Always `responses`." + "description": "Always `file_path`.", + "x-stainless-const": true }, - "input_messages": { - "anyOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "template" - ], - "description": "The type of input messages. Always `template`." - }, - "template": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message (e.g. \"system\", \"assistant\", \"user\")." - }, - "content": { - "type": "string", - "description": "The content of the message." - } - }, - "required": [ - "role", - "content" - ] - }, - { - "$ref": "#/components/schemas/OpenAI.EvalItem" - } - ] - }, - "description": "A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}." - } - }, - "required": [ - "type", - "template" - ] - }, - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "item_reference" - ], - "description": "The type of input messages. Always `item_reference`." - }, - "item_reference": { - "type": "string", - "description": "A reference to a variable in the `item` namespace. Ie, \"item.name\"" - } - }, - "required": [ - "type", - "item_reference" - ] - } - ], - "description": "Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace." + "text": { + "type": "string", + "description": "The text in the message content that needs to be replaced." }, - "sampling_params": { - "$ref": "#/components/schemas/AzureEvalAPIResponseSamplingParams" + "file_path": { + "$ref": "#/components/schemas/OpenAI.MessageContentTextAnnotationsFilePathObjectFilePath" }, - "model": { - "type": "string", - "description": "The name of the model to use for generating completions (e.g. \"o3-mini\")." + "start_index": { + "type": "integer", + "minimum": 0 }, - "source": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalRunFileContentDataContentSource" - }, - { - "$ref": "#/components/schemas/OpenAI.EvalRunFileIdDataContentSource" - }, - { - "$ref": "#/components/schemas/OpenAI.EvalRunResponsesDataContentSource" - } - ], - "description": "Determines what populates the `item` namespace in this run's data source." + "end_index": { + "type": "integer", + "minimum": 0 } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceParams" + "$ref": "#/components/schemas/OpenAI.TextAnnotation" } ], - "description": "A ResponsesRunDataSource object describing a model sampling configuration." + "description": "A URL for the file that's generated when the assistant used the `code_interpreter` tool to generate a file.", + "title": "File path" }, - "OpenAI.EvalRun": { + "OpenAI.MessageContentTextAnnotationsFilePathObjectFilePath": { "type": "object", "required": [ - "object", - "id", - "eval_id", - "status", - "model", - "name", - "created_at", - "report_url", - "result_counts", - "per_model_usage", - "per_testing_criteria_results", - "data_source", - "metadata", - "error" + "file_id" ], "properties": { - "object": { + "file_id": { + "type": "string" + } + } + }, + "OpenAI.MessageContentTextObject": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { "type": "string", "enum": [ - "eval.run" + "text" ], - "description": "The type of the object. Always \"eval.run\".", - "default": "eval.run" + "description": "Always `text`.", + "x-stainless-const": true }, - "id": { - "type": "string", - "description": "Unique identifier for the evaluation run." + "text": { + "$ref": "#/components/schemas/OpenAI.MessageContentTextObjectText" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MessageContent" + } + ], + "description": "The text content that is part of a message.", + "title": "Text" + }, + "OpenAI.MessageContentTextObjectText": { + "type": "object", + "required": [ + "value", + "annotations" + ], + "properties": { + "value": { + "type": "string" }, - "eval_id": { - "type": "string", - "description": "The identifier of the associated evaluation." + "annotations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.TextAnnotation" + } + } + } + }, + "OpenAI.MessageContentType": { + "anyOf": [ + { + "type": "string" }, - "status": { + { "type": "string", - "description": "The status of the evaluation run." - }, - "model": { + "enum": [ + "image_file", + "image_url", + "text", + "refusal" + ] + } + ] + }, + "OpenAI.MessageObject": { + "type": "object", + "required": [ + "id", + "object", + "created_at", + "thread_id", + "status", + "incomplete_details", + "completed_at", + "incomplete_at", + "role", + "content", + "assistant_id", + "run_id", + "attachments", + "metadata" + ], + "properties": { + "id": { "type": "string", - "description": "The model that is evaluated, if applicable." + "description": "The identifier, which can be referenced in API endpoints." }, - "name": { + "object": { "type": "string", - "description": "The name of the evaluation run." + "enum": [ + "thread.message" + ], + "description": "The object type, which is always `thread.message`.", + "x-stainless-const": true }, "created_at": { "type": "integer", "format": "unixtime", - "description": "Unix timestamp (in seconds) when the evaluation run was created." + "description": "The Unix timestamp (in seconds) for when the message was created." }, - "report_url": { + "thread_id": { "type": "string", - "description": "The URL to the rendered evaluation run report on the UI dashboard." + "description": "The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to." }, - "result_counts": { - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int32", - "description": "Total number of executed output items." + "status": { + "type": "string", + "enum": [ + "in_progress", + "incomplete", + "completed" + ], + "description": "The status of the message, which can be either `in_progress`, `incomplete`, or `completed`." + }, + "incomplete_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.MessageObjectIncompleteDetails" }, - "errored": { - "type": "integer", - "format": "int32", - "description": "Number of output items that resulted in an error." + { + "type": "null" + } + ] + }, + "completed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" }, - "failed": { - "type": "integer", - "format": "int32", - "description": "Number of output items that failed to pass the evaluation." + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" + }, + "incomplete_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" }, - "passed": { - "type": "integer", - "format": "int32", - "description": "Number of output items that passed the evaluation." + { + "type": "null" } - }, - "required": [ - "total", - "errored", - "failed", - "passed" ], - "description": "Counters summarizing the outcomes of the evaluation run." + "type": "integer", + "format": "unixTimestamp" }, - "per_model_usage": { + "role": { + "type": "string", + "enum": [ + "user", + "assistant" + ], + "description": "The entity that produced the message. One of `user` or `assistant`." + }, + "content": { "type": "array", "items": { - "type": "object", - "properties": { - "model_name": { - "type": "string", - "description": "The name of the model." - }, - "invocation_count": { - "type": "integer", - "format": "int32", - "description": "The number of invocations." - }, - "prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of prompt tokens used." - }, - "completion_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of completion tokens generated." - }, - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "The total number of tokens used." - }, - "cached_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens retrieved from cache." - } - }, - "required": [ - "model_name", - "invocation_count", - "prompt_tokens", - "completion_tokens", - "total_tokens", - "cached_tokens" - ] + "$ref": "#/components/schemas/OpenAI.MessageContent" }, - "description": "Usage statistics for each model during the evaluation run." + "description": "The content of the message in array of text and/or images." }, - "per_testing_criteria_results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "testing_criteria": { - "type": "string", - "description": "A description of the testing criteria." - }, - "passed": { - "type": "integer", - "format": "int32", - "description": "Number of tests passed for this criteria." - }, - "failed": { - "type": "integer", - "format": "int32", - "description": "Number of tests failed for this criteria." - } + "assistant_id": { + "anyOf": [ + { + "type": "string" }, - "required": [ - "testing_criteria", - "passed", - "failed" - ] - }, - "description": "Results per testing criteria applied during the evaluation run." + { + "type": "null" + } + ] }, - "data_source": { - "allOf": [ + "run_id": { + "anyOf": [ + { + "type": "string" + }, { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceResource" + "type": "null" } - ], - "description": "Information about the run's data source." + ] }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "attachments": { + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.MessageObjectAttachments" + } + }, + { + "type": "null" + } + ] }, - "error": { - "$ref": "#/components/schemas/OpenAI.EvalApiError" + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] } }, - "description": "A schema representing an evaluation run." + "description": "Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads).", + "title": "The message object", + "x-oaiMeta": { + "name": "The message object", + "beta": true, + "example": "{\n \"id\": \"msg_abc123\",\n \"object\": \"thread.message\",\n \"created_at\": 1698983503,\n \"thread_id\": \"thread_abc123\",\n \"role\": \"assistant\",\n \"content\": [\n {\n \"type\": \"text\",\n \"text\": {\n \"value\": \"Hi! How can I help you today?\",\n \"annotations\": []\n }\n }\n ],\n \"assistant_id\": \"asst_abc123\",\n \"run_id\": \"run_abc123\",\n \"attachments\": [],\n \"metadata\": {}\n}\n" + } }, - "OpenAI.EvalRunDataContentSource": { + "OpenAI.MessageObjectAttachments": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.EvalRunDataContentSourceType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "file_id": "#/components/schemas/OpenAI.EvalRunFileIdDataContentSource", - "stored_completions": "#/components/schemas/OpenAI.EvalRunStoredCompletionsDataContentSource", - "responses": "#/components/schemas/OpenAI.EvalRunResponsesDataContentSource" + "file_id": { + "type": "string" + }, + "tools": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.AssistantToolsCode" + }, + { + "$ref": "#/components/schemas/OpenAI.AssistantToolsFileSearchTypeOnly" + } + ] + } } } }, - "OpenAI.EvalRunDataContentSourceType": { - "type": "string", - "enum": [ - "file_id", - "file_content", - "stored_completions", - "responses" - ] - }, - "OpenAI.EvalRunDataSourceCompletionsResource": { + "OpenAI.MessageObjectIncompleteDetails": { "type": "object", "required": [ - "type" + "reason" ], "properties": { - "type": { + "reason": { "type": "string", "enum": [ - "completions" + "content_filter", + "max_tokens", + "run_cancelled", + "run_expired", + "run_failed" ] } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceResource" - } - ] + } }, - "OpenAI.EvalRunDataSourceJsonlResource": { + "OpenAI.MessageRequestContentTextObject": { "type": "object", "required": [ - "type" + "type", + "text" ], "properties": { "type": { "type": "string", "enum": [ - "jsonl" - ] + "text" + ], + "description": "Always `text`.", + "x-stainless-const": true + }, + "text": { + "type": "string", + "description": "Text content to be sent to the model" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceResource" - } + "description": "The text content that is part of a message.", + "title": "Text" + }, + "OpenAI.MessageRole": { + "type": "string", + "enum": [ + "unknown", + "user", + "assistant", + "system", + "critic", + "discriminator", + "developer", + "tool" + ] + }, + "OpenAI.MessageStatus": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" ] }, - "OpenAI.EvalRunDataSourceParams": { + "OpenAI.Metadata": { + "type": "object", + "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", + "x-oaiTypeLabel": "map" + }, + "OpenAI.Model": { "type": "object", "required": [ - "type" + "id", + "created", + "object", + "owned_by" ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceType" + "id": { + "type": "string", + "description": "The model identifier, which can be referenced in the API endpoints." + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) when the model was created." + }, + "object": { + "type": "string", + "enum": [ + "model" + ], + "description": "The object type, which is always \"model\".", + "x-stainless-const": true + }, + "owned_by": { + "type": "string", + "description": "The organization that owns the model." } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "jsonl": "#/components/schemas/OpenAI.EvalJsonlRunDataSourceParams", - "completions": "#/components/schemas/OpenAI.EvalCompletionsRunDataSourceParams", - "responses": "#/components/schemas/OpenAI.EvalResponsesRunDataSourceParams" + "description": "Describes an OpenAI model offering that can be used with the API.", + "title": "Model", + "x-oaiMeta": { + "name": "The model object", + "example": "{\n \"id\": \"VAR_chat_model_id\",\n \"object\": \"model\",\n \"created\": 1686935002,\n \"owned_by\": \"openai\"\n}\n" + } + }, + "OpenAI.ModifyMessageRequest": { + "type": "object", + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.ModifyRunRequest": { + "type": "object", + "properties": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.ModifyThreadRequest": { + "type": "object", + "properties": { + "tool_resources": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ModifyThreadRequestToolResources" + }, + { + "type": "null" + } + ] + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] } } }, - "OpenAI.EvalRunDataSourceResource": { + "OpenAI.ModifyThreadRequestToolResources": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceType" + "code_interpreter": { + "$ref": "#/components/schemas/OpenAI.ModifyThreadRequestToolResourcesCodeInterpreter" + }, + "file_search": { + "$ref": "#/components/schemas/OpenAI.ModifyThreadRequestToolResourcesFileSearch" } } }, - "OpenAI.EvalRunDataSourceResponsesResource": { + "OpenAI.ModifyThreadRequestToolResourcesCodeInterpreter": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "responses" - ] - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalRunDataSourceResource" + "file_ids": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 20 } - ] - }, - "OpenAI.EvalRunDataSourceType": { - "type": "string", - "enum": [ - "jsonl", - "completions", - "responses" - ] + } }, - "OpenAI.EvalRunFileContentDataContentSource": { + "OpenAI.ModifyThreadRequestToolResourcesFileSearch": { "type": "object", - "required": [ - "type", - "content" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "file_content" - ], - "description": "The type of jsonl source. Always `file_content`." - }, - "content": { + "vector_store_ids": { "type": "array", "items": { - "type": "object", - "properties": { - "item": { - "type": "object", - "additionalProperties": {} - }, - "sample": { - "type": "object", - "additionalProperties": {} - } - }, - "required": [ - "item" - ] + "type": "string" }, - "description": "The content of the jsonl file." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.EvalRunDataContentSource" + "maxItems": 1 } - ] + } }, - "OpenAI.EvalRunFileIdDataContentSource": { + "OpenAI.Move": { "type": "object", "required": [ "type", - "id" + "x", + "y" ], "properties": { "type": { "type": "string", "enum": [ - "file_id" + "move" ], - "description": "The type of jsonl source. Always `file_id`." + "description": "Specifies the event type. For a move action, this property is\n always set to `move`.", + "x-stainless-const": true, + "default": "move" }, - "id": { - "type": "string", - "description": "The identifier of the file." + "x": { + "type": "integer", + "description": "The x-coordinate to move to." + }, + "y": { + "type": "integer", + "description": "The y-coordinate to move to." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunDataContentSource" + "$ref": "#/components/schemas/OpenAI.ComputerAction" } - ] - }, - "OpenAI.EvalRunList": { - "type": "object", - "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" ], - "properties": { - "object": { - "type": "string", - "enum": [ - "list" - ], - "description": "The type of this object. It is always set to \"list\".", - "default": "list" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.EvalRun" - }, - "description": "An array of eval run objects." - }, - "first_id": { - "type": "string", - "description": "The identifier of the first eval run in the data array." - }, - "last_id": { - "type": "string", - "description": "The identifier of the last eval run in the data array." - }, - "has_more": { - "type": "boolean", - "description": "Indicates whether there are more evals available." - } - }, - "description": "An object representing a list of runs for an evaluation." + "description": "A mouse move action.", + "title": "Move" }, - "OpenAI.EvalRunOutputItem": { - "type": "object", - "required": [ - "object", - "id", - "run_id", - "eval_id", - "created_at", - "status", - "datasource_item_id", - "datasource_item", - "results", - "sample" + "OpenAI.NoiseReductionType": { + "type": "string", + "enum": [ + "near_field", + "far_field" ], - "properties": { - "object": { - "type": "string", - "enum": [ - "eval.run.output_item" - ], - "description": "The type of the object. Always \"eval.run.output_item\".", - "default": "eval.run.output_item" - }, - "id": { - "type": "string", - "description": "Unique identifier for the evaluation run output item." - }, - "run_id": { - "type": "string", - "description": "The identifier of the evaluation run associated with this output item." - }, - "eval_id": { - "type": "string", - "description": "The identifier of the evaluation group." - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "Unix timestamp (in seconds) when the evaluation run was created." - }, - "status": { - "type": "string", - "description": "The status of the evaluation run." - }, - "datasource_item_id": { - "type": "integer", - "format": "int32", - "description": "The identifier for the data source item." - }, - "datasource_item": { - "type": "object", - "additionalProperties": {}, - "description": "Details of the input data source item." - }, - "results": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": {} - }, - "description": "A list of results from the evaluation run." - }, - "sample": { - "type": "object", - "properties": { - "input": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message sender (e.g., system, user, developer)." - }, - "content": { - "type": "string", - "description": "The content of the message." - } - }, - "required": [ - "role", - "content" - ] - }, - "description": "An array of input messages." - }, - "output": { - "type": "array", - "items": { - "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the message (e.g. \"system\", \"assistant\", \"user\")." - }, - "content": { - "type": "string", - "description": "The content of the message." - } - } - }, - "description": "An array of output messages." - }, - "finish_reason": { - "type": "string", - "description": "The reason why the sample generation was finished." - }, - "model": { - "type": "string", - "description": "The model used for generating the sample." - }, - "usage": { - "type": "object", - "properties": { - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "The total number of tokens used." - }, - "completion_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of completion tokens generated." - }, - "prompt_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of prompt tokens used." - }, - "cached_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens retrieved from cache." - } - }, - "required": [ - "total_tokens", - "completion_tokens", - "prompt_tokens", - "cached_tokens" - ], - "description": "Token usage details for the sample." - }, - "error": { - "$ref": "#/components/schemas/OpenAI.EvalApiError" - }, - "temperature": { - "type": "number", - "format": "float", - "description": "The sampling temperature used." - }, - "max_completion_tokens": { - "type": "integer", - "format": "int32", - "description": "The maximum number of tokens allowed for completion." - }, - "top_p": { - "type": "number", - "format": "float", - "description": "The top_p value used for sampling." - }, - "seed": { - "type": "integer", - "format": "int32", - "description": "The seed used for generating the sample." - } - }, - "required": [ - "input", - "output", - "finish_reason", - "model", - "usage", - "error", - "temperature", - "max_completion_tokens", - "top_p", - "seed" - ], - "description": "A sample containing the input and output of the evaluation run." - } - }, - "description": "A schema representing an evaluation run output item." + "description": "Type of noise reduction. `near_field` is for close-talking microphones such as headphones, `far_field` is for far-field microphones such as laptop or conference room microphones." }, - "OpenAI.EvalRunOutputItemList": { + "OpenAI.OpenAIFile": { "type": "object", "required": [ + "id", + "bytes", + "created_at", + "filename", "object", - "data", - "first_id", - "last_id", - "has_more" + "purpose", + "status" ], "properties": { + "id": { + "type": "string", + "description": "The file identifier, which can be referenced in the API endpoints." + }, + "bytes": { + "type": "integer", + "description": "The size of the file, in bytes." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the file was created." + }, + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the file will expire." + }, + "filename": { + "type": "string", + "description": "The name of the file." + }, "object": { "type": "string", "enum": [ - "list" + "file" ], - "description": "The type of this object. It is always set to \"list\".", - "default": "list" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.EvalRunOutputItem" - }, - "description": "An array of eval run output item objects." + "description": "The object type, which is always `file`.", + "x-stainless-const": true }, - "first_id": { + "status_details": { "type": "string", - "description": "The identifier of the first eval run output item in the data array." + "description": "Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`." }, - "last_id": { + "purpose": { "type": "string", - "description": "The identifier of the last eval run output item in the data array." + "enum": [ + "assistants", + "assistants_output", + "batch", + "batch_output", + "fine-tune", + "fine-tune-results", + "evals" + ], + "description": "The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`." }, - "has_more": { - "type": "boolean", - "description": "Indicates whether there are more eval run output items available." + "status": { + "type": "string", + "enum": [ + "uploaded", + "pending", + "running", + "processed", + "error", + "deleting", + "deleted" + ] } }, - "description": "An object representing a list of output items for an evaluation run." + "description": "The `File` object represents a document that has been uploaded to OpenAI.", + "title": "OpenAIFile", + "x-oaiMeta": { + "name": "The file object", + "example": "{\n \"id\": \"file-abc123\",\n \"object\": \"file\",\n \"bytes\": 120000,\n \"created_at\": 1677610602,\n \"expires_at\": 1680202602,\n \"filename\": \"salesOverview.pdf\",\n \"purpose\": \"assistants\",\n}\n" + } }, - "OpenAI.EvalRunResponsesDataContentSource": { + "OpenAI.OtherChunkingStrategyResponseParam": { "type": "object", "required": [ "type" @@ -13540,329 +25609,385 @@ "type": { "type": "string", "enum": [ - "responses" - ], - "description": "The type of run data source. Always `responses`." - }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - }, - "model": { - "type": "string", - "nullable": true, - "description": "The name of the model to find responses for. This is a query parameter used to select responses." - }, - "instructions_search": { - "type": "string", - "nullable": true, - "description": "Optional string to search the 'instructions' field. This is a query parameter used to select responses." - }, - "created_after": { - "type": "integer", - "format": "int32", - "nullable": true, - "minimum": 0, - "description": "Only include items created after this timestamp (inclusive). This is a query parameter used to select responses." - }, - "created_before": { - "type": "integer", - "format": "int32", - "nullable": true, - "minimum": 0, - "description": "Only include items created before this timestamp (inclusive). This is a query parameter used to select responses." - }, - "reasoning_effort": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ReasoningEffort" - } + "other" ], - "nullable": true, - "description": "Optional reasoning effort parameter. This is a query parameter used to select responses.", - "default": "medium" - }, - "temperature": { - "type": "number", - "format": "float", - "nullable": true, - "description": "Sampling temperature. This is a query parameter used to select responses." - }, - "top_p": { - "type": "number", - "format": "float", - "nullable": true, - "description": "Nucleus sampling parameter. This is a query parameter used to select responses." - }, - "users": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true, - "description": "List of user identifiers. This is a query parameter used to select responses." - }, - "tools": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true, - "description": "List of tool names. This is a query parameter used to select responses." + "description": "Always `other`.", + "x-stainless-const": true } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunDataContentSource" + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponse" + } + ], + "description": "This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the `chunking_strategy` concept was introduced in the API.", + "title": "Other Chunking Strategy" + }, + "OpenAI.OutputContent": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.OutputContentType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "refusal": "#/components/schemas/OpenAI.RefusalContent", + "reasoning_text": "#/components/schemas/OpenAI.ReasoningTextContent" + } + } + }, + "OpenAI.OutputContentType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "output_text", + "refusal", + "reasoning_text" + ] } + ] + }, + "OpenAI.OutputItem": { + "type": "object", + "required": [ + "type" ], - "description": "A EvalResponsesSource object describing a run data source configuration." + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.OutputItemType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "output_message": "#/components/schemas/OpenAI.OutputItemOutputMessage", + "file_search_call": "#/components/schemas/OpenAI.OutputItemFileSearchToolCall", + "function_call": "#/components/schemas/OpenAI.OutputItemFunctionToolCall", + "web_search_call": "#/components/schemas/OpenAI.OutputItemWebSearchToolCall", + "computer_call": "#/components/schemas/OpenAI.OutputItemComputerToolCall", + "reasoning": "#/components/schemas/OpenAI.OutputItemReasoningItem", + "compaction": "#/components/schemas/OpenAI.CompactionBody", + "image_generation_call": "#/components/schemas/OpenAI.OutputItemImageGenToolCall", + "code_interpreter_call": "#/components/schemas/OpenAI.OutputItemCodeInterpreterToolCall", + "local_shell_call": "#/components/schemas/OpenAI.OutputItemLocalShellToolCall", + "shell_call": "#/components/schemas/OpenAI.OutputItemFunctionShellCall", + "shell_call_output": "#/components/schemas/OpenAI.OutputItemFunctionShellCallOutput", + "apply_patch_call": "#/components/schemas/OpenAI.OutputItemApplyPatchToolCall", + "apply_patch_call_output": "#/components/schemas/OpenAI.OutputItemApplyPatchToolCallOutput", + "mcp_call": "#/components/schemas/OpenAI.OutputItemMCPToolCall", + "mcp_list_tools": "#/components/schemas/OpenAI.OutputItemMCPListTools", + "mcp_approval_request": "#/components/schemas/OpenAI.OutputItemMCPApprovalRequest", + "custom_tool_call": "#/components/schemas/OpenAI.OutputItemCustomToolCall" + } + } }, - "OpenAI.EvalRunStoredCompletionsDataContentSource": { + "OpenAI.OutputItemApplyPatchToolCall": { "type": "object", "required": [ "type", - "metadata" + "id", + "call_id", + "status", + "operation" ], "properties": { "type": { "type": "string", "enum": [ - "stored_completions" + "apply_patch_call" ], - "description": "The type of source. Always `stored_completions`." + "description": "The type of the item. Always `apply_patch_call`.", + "x-stainless-const": true, + "default": "apply_patch_call" }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call. Populated when this item is returned via API." }, - "model": { + "call_id": { "type": "string", - "nullable": true, - "description": "An optional model to filter by (e.g., 'gpt-4o')." + "description": "The unique ID of the apply patch tool call generated by the model." }, - "created_after": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An optional Unix timestamp to filter items created after this time." + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchCallStatus" + } + ], + "description": "The status of the apply patch tool call. One of `in_progress` or `completed`." }, - "created_before": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An optional Unix timestamp to filter items created before this time." + "operation": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchFileOperation" + } + ], + "description": "One of the create_file, delete_file, or update_file operations applied via apply_patch." }, - "limit": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An optional maximum number of items to return." + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalRunDataContentSource" + "$ref": "#/components/schemas/OpenAI.OutputItem" } - ], - "description": "A StoredCompletionsRunDataSource configuration describing a set of filters" + ] }, - "OpenAI.EvalStoredCompletionsDataSourceConfigParams": { + "OpenAI.OutputItemApplyPatchToolCallOutput": { "type": "object", "required": [ - "type" + "type", + "id", + "call_id", + "status" ], "properties": { "type": { "type": "string", "enum": [ - "stored_completions" + "apply_patch_call_output" ], - "description": "The type of data source. Always `stored_completions`." + "description": "The type of the item. Always `apply_patch_call_output`.", + "x-stainless-const": true, + "default": "apply_patch_call_output" }, - "metadata": { - "type": "object", - "additionalProperties": {}, - "description": "Metadata filters for the stored completions data source." + "id": { + "type": "string", + "description": "The unique ID of the apply patch tool call output. Populated when this item is returned via API." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the apply patch tool call generated by the model." + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApplyPatchCallOutputStatus" + } + ], + "description": "The status of the apply patch tool call output. One of `completed` or `failed`." + }, + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call output." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigParams" + "$ref": "#/components/schemas/OpenAI.OutputItem" } - ], - "description": "Deprecated in favor of LogsDataSourceConfig.", - "deprecated": true + ] }, - "OpenAI.EvalStoredCompletionsDataSourceConfigResource": { + "OpenAI.OutputItemCodeInterpreterToolCall": { "type": "object", "required": [ "type", - "metadata", - "schema" + "id", + "status", + "container_id", + "code", + "outputs" ], "properties": { "type": { "type": "string", "enum": [ - "stored_completions" + "code_interpreter_call" + ], + "description": "The type of the code interpreter tool call. Always `code_interpreter_call`.", + "x-stainless-const": true, + "default": "code_interpreter_call" + }, + "id": { + "type": "string", + "description": "The unique ID of the code interpreter tool call." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete", + "interpreting", + "failed" ], - "description": "The type of data source. Always `stored_completions`." + "description": "The status of the code interpreter tool call. Valid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`." }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "container_id": { + "type": "string", + "description": "The ID of the container used to run the code." }, - "schema": { - "type": "object", - "additionalProperties": {}, - "description": "The json schema for the run data source items.\nLearn how to build JSON schemas [here](https://json-schema.org/)." + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "outputs": { + "anyOf": [ + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputLogs" + }, + { + "$ref": "#/components/schemas/OpenAI.CodeInterpreterOutputImage" + } + ] + } + }, + { + "type": "null" + } + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.EvalDataSourceConfigResource" + "$ref": "#/components/schemas/OpenAI.OutputItem" } - ], - "description": "Deprecated in favor of LogsDataSourceConfig.", - "deprecated": true + ] }, - "OpenAI.FileSearchTool": { + "OpenAI.OutputItemComputerToolCall": { "type": "object", "required": [ "type", - "vector_store_ids" + "id", + "call_id", + "action", + "pending_safety_checks", + "status" ], "properties": { "type": { "type": "string", "enum": [ - "file_search" + "computer_call" ], - "description": "The type of the file search tool. Always `file_search`." + "description": "The type of the computer call. Always `computer_call`.", + "default": "computer_call" }, - "vector_store_ids": { + "id": { + "type": "string", + "description": "The unique ID of the computer call." + }, + "call_id": { + "type": "string", + "description": "An identifier used when responding to the tool call with output." + }, + "action": { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + }, + "pending_safety_checks": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/OpenAI.ComputerCallSafetyCheckParam" }, - "description": "The IDs of the vector stores to search." - }, - "max_num_results": { - "type": "integer", - "format": "int32", - "description": "The maximum number of results to return. This number should be between 1 and 50 inclusive." - }, - "ranking_options": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.RankingOptions" - } - ], - "description": "Ranking options for search." + "description": "The pending safety checks for the computer call." }, - "filters": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Filters" - } + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" ], - "nullable": true, - "description": "A filter to apply." + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/OpenAI.OutputItem" } - ], - "description": "A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search)." + ] }, - "OpenAI.FileSearchToolCallItemParam": { + "OpenAI.OutputItemCustomToolCall": { "type": "object", "required": [ "type", - "queries" + "call_id", + "name", + "input" ], "properties": { "type": { "type": "string", "enum": [ - "file_search_call" - ] + "custom_tool_call" + ], + "description": "The type of the custom tool call. Always `custom_tool_call`.", + "x-stainless-const": true }, - "queries": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The queries used to search for files." + "id": { + "type": "string", + "description": "The unique ID of the custom tool call in the OpenAI platform." }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "file_id": { - "type": "string", - "description": "The unique ID of the file." - }, - "text": { - "type": "string", - "description": "The text that was retrieved from the file." - }, - "filename": { - "type": "string", - "description": "The name of the file." - }, - "attributes": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" - }, - "score": { - "type": "number", - "format": "float", - "description": "The relevance score of the file - a value between 0 and 1." - } - } - }, - "nullable": true, - "description": "The results of the file search tool call." + "call_id": { + "type": "string", + "description": "An identifier used to map this custom tool call to a tool call output." + }, + "name": { + "type": "string", + "description": "The name of the custom tool being called." + }, + "input": { + "type": "string", + "description": "The input for the custom tool call generated by the model." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.OutputItem" } - ], - "description": "The results of a file search tool call. See the\n[file search guide](/docs/guides/tools-file-search) for more information.\n" + ] }, - "OpenAI.FileSearchToolCallItemResource": { + "OpenAI.OutputItemFileSearchToolCall": { "type": "object", "required": [ + "id", "type", "status", "queries" ], "properties": { + "id": { + "type": "string", + "description": "The unique ID of the file search tool call." + }, "type": { "type": "string", "enum": [ "file_search_call" - ] + ], + "description": "The type of the file search tool call. Always `file_search_call`.", + "x-stainless-const": true }, "status": { "type": "string", @@ -13873,7 +25998,7 @@ "incomplete", "failed" ], - "description": "The status of the file search tool call. One of `in_progress`, \n`searching`, `incomplete` or `failed`," + "description": "The status of the file search tool call. One of `in_progress`,\n `searching`, `incomplete` or `failed`," }, "queries": { "type": "array", @@ -13883,1290 +26008,1238 @@ "description": "The queries used to search for files." }, "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "file_id": { - "type": "string", - "description": "The unique ID of the file." - }, - "text": { - "type": "string", - "description": "The text that was retrieved from the file." - }, - "filename": { - "type": "string", - "description": "The name of the file." - }, - "attributes": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" - }, - "score": { - "type": "number", - "format": "float", - "description": "The relevance score of the file - a value between 0 and 1." + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FileSearchToolCallResults" } + }, + { + "type": "null" } - }, - "nullable": true, - "description": "The results of the file search tool call." + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" - } - ], - "description": "The results of a file search tool call. See the\n[file search guide](/docs/guides/tools-file-search) for more information.\n" - }, - "OpenAI.Filters": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.ComparisonFilter" - }, - { - "$ref": "#/components/schemas/OpenAI.CompoundFilter" + "$ref": "#/components/schemas/OpenAI.OutputItem" } ] }, - "OpenAI.FineTuneDPOHyperparameters": { + "OpenAI.OutputItemFunctionShellCall": { "type": "object", + "required": [ + "type", + "id", + "call_id", + "action", + "status" + ], "properties": { - "beta": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "number", - "format": "float" - } + "type": { + "type": "string", + "enum": [ + "shell_call" ], - "description": "The beta value for the DPO method. A higher beta value will increase the weight of the penalty between the policy and reference model.", - "default": "auto" + "description": "The type of the item. Always `shell_call`.", + "x-stainless-const": true, + "default": "shell_call" }, - "batch_size": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.", - "default": "auto" + "id": { + "type": "string", + "description": "The unique ID of the shell tool call. Populated when this item is returned via API." }, - "learning_rate_multiplier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, + "call_id": { + "type": "string", + "description": "The unique ID of the shell tool call generated by the model." + }, + "action": { + "allOf": [ { - "type": "number", - "format": "float" + "$ref": "#/components/schemas/OpenAI.FunctionShellAction" } ], - "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting.", - "default": "auto" + "description": "The shell commands and limits that describe how to run the tool call." }, - "n_epochs": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, + "status": { + "allOf": [ { - "type": "integer", - "format": "int32" + "$ref": "#/components/schemas/OpenAI.LocalShellCallStatus" } ], - "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.", - "default": "auto" + "description": "The status of the shell call. One of `in_progress`, `completed`, or `incomplete`." + }, + "created_by": { + "type": "string", + "description": "The ID of the entity that created this tool call." } }, - "description": "The hyperparameters used for the DPO fine-tuning job." - }, - "OpenAI.FineTuneDPOMethod": { - "type": "object", - "properties": { - "hyperparameters": { - "$ref": "#/components/schemas/OpenAI.FineTuneDPOHyperparameters" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" } - }, - "description": "Configuration for the DPO fine-tuning method." + ] }, - "OpenAI.FineTuneMethod": { + "OpenAI.OutputItemFunctionShellCallOutput": { "type": "object", "required": [ - "type" + "type", + "id", + "call_id", + "output", + "max_output_length" ], "properties": { "type": { "type": "string", "enum": [ - "supervised", - "dpo", - "reinforcement" + "shell_call_output" ], - "description": "The type of method. Is either `supervised`, `dpo`, or `reinforcement`." + "description": "The type of the shell call output. Always `shell_call_output`.", + "x-stainless-const": true, + "default": "shell_call_output" }, - "supervised": { - "$ref": "#/components/schemas/OpenAI.FineTuneSupervisedMethod" + "id": { + "type": "string", + "description": "The unique ID of the shell call output. Populated when this item is returned via API." }, - "dpo": { - "$ref": "#/components/schemas/OpenAI.FineTuneDPOMethod" + "call_id": { + "type": "string", + "description": "The unique ID of the shell tool call generated by the model." }, - "reinforcement": { - "$ref": "#/components/schemas/AzureFineTuneReinforcementMethod" - } - }, - "description": "The method used for fine-tuning." - }, - "OpenAI.FineTuneReinforcementHyperparameters": { - "type": "object", - "properties": { - "batch_size": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.", - "default": "auto" + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.FunctionShellCallOutputContent" + }, + "description": "An array of shell call output contents" }, - "learning_rate_multiplier": { + "max_output_length": { "anyOf": [ { - "type": "string", - "enum": [ - "auto" - ] + "type": "integer" }, { - "type": "number", - "format": "float" + "type": "null" } - ], - "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting.", - "default": "auto" + ] }, - "n_epochs": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.", - "default": "auto" + "created_by": { + "type": "string" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] + }, + "OpenAI.OutputItemFunctionToolCall": { + "type": "object", + "required": [ + "type", + "call_id", + "name", + "arguments" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the function tool call." }, - "reasoning_effort": { + "type": { "type": "string", "enum": [ - "default", - "low", - "medium", - "high" + "function_call" ], - "description": "Level of reasoning effort.", - "default": "default" + "description": "The type of the function tool call. Always `function_call`.", + "x-stainless-const": true }, - "compute_multiplier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "number", - "format": "float" - } - ], - "description": "Multiplier on amount of compute used for exploring search space during training.", - "default": "auto" + "call_id": { + "type": "string", + "description": "The unique ID of the function tool call generated by the model." }, - "eval_interval": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "description": "The number of training steps between evaluation runs.", - "default": "auto" + "name": { + "type": "string", + "description": "The name of the function to run." }, - "eval_samples": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } + "arguments": { + "type": "string", + "description": "A JSON string of the arguments to pass to the function." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" ], - "description": "Number of evaluation samples to generate per training step.", - "default": "auto" + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." } }, - "description": "The hyperparameters used for the reinforcement fine-tuning job." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] }, - "OpenAI.FineTuneSupervisedHyperparameters": { + "OpenAI.OutputItemImageGenToolCall": { "type": "object", + "required": [ + "type", + "id", + "status", + "result" + ], "properties": { - "batch_size": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } + "type": { + "type": "string", + "enum": [ + "image_generation_call" ], - "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.", - "default": "auto" + "description": "The type of the image generation call. Always `image_generation_call`.", + "x-stainless-const": true }, - "learning_rate_multiplier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "number", - "format": "float" - } + "id": { + "type": "string", + "description": "The unique ID of the image generation call." + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "generating", + "failed" ], - "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting.", - "default": "auto" + "description": "The status of the image generation call." }, - "n_epochs": { + "result": { "anyOf": [ { - "type": "string", - "enum": [ - "auto" - ] + "type": "string" }, { - "type": "integer", - "format": "int32" + "type": "null" } - ], - "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.", - "default": "auto" + ] } }, - "description": "The hyperparameters used for the fine-tuning job." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] }, - "OpenAI.FineTuneSupervisedMethod": { + "OpenAI.OutputItemLocalShellToolCall": { "type": "object", + "required": [ + "type", + "id", + "call_id", + "action", + "status" + ], "properties": { - "hyperparameters": { - "$ref": "#/components/schemas/OpenAI.FineTuneSupervisedHyperparameters" + "type": { + "type": "string", + "enum": [ + "local_shell_call" + ], + "description": "The type of the local shell call. Always `local_shell_call`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the local shell call." + }, + "call_id": { + "type": "string", + "description": "The unique ID of the local shell tool call generated by the model." + }, + "action": { + "$ref": "#/components/schemas/OpenAI.LocalShellExecAction" + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the local shell call." } }, - "description": "Configuration for the supervised fine-tuning method." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] }, - "OpenAI.FineTuningIntegration": { + "OpenAI.OutputItemMCPApprovalRequest": { "type": "object", "required": [ - "type" + "type", + "id", + "server_label", + "name", + "arguments" ], "properties": { "type": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string", - "enum": [ - "wandb" - ] - } - ] + "type": "string", + "enum": [ + "mcp_approval_request" + ], + "description": "The type of the item. Always `mcp_approval_request`.", + "x-stainless-const": true + }, + "id": { + "type": "string", + "description": "The unique ID of the approval request." + }, + "server_label": { + "type": "string", + "description": "The label of the MCP server making the request." + }, + "name": { + "type": "string", + "description": "The name of the tool to run." + }, + "arguments": { + "type": "string", + "description": "A JSON string of arguments for the tool." } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "wandb": "#/components/schemas/OpenAI.FineTuningIntegrationWandb" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" } - } + ] }, - "OpenAI.FineTuningIntegrationWandb": { + "OpenAI.OutputItemMCPListTools": { "type": "object", "required": [ "type", - "wandb" + "id", + "server_label", + "tools" ], "properties": { "type": { "type": "string", "enum": [ - "wandb" + "mcp_list_tools" ], - "description": "The type of the integration being enabled for the fine-tuning job" + "description": "The type of the item. Always `mcp_list_tools`.", + "x-stainless-const": true }, - "wandb": { - "type": "object", - "properties": { - "project": { - "type": "string", - "description": "The name of the project that the new run will be created under." - }, - "name": { - "type": "string", - "nullable": true, - "description": "A display name to set for the run. If not set, we will use the Job ID as the name." - }, - "entity": { - "type": "string", - "nullable": true, - "description": "The entity to use for the run. This allows you to set the team or username of the WandB user that you would\nlike associated with the run. If not set, the default entity for the registered WandB API key is used." + "id": { + "type": "string", + "description": "The unique ID of the list." + }, + "server_label": { + "type": "string", + "description": "The label of the MCP server." + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.MCPListToolsTool" + }, + "description": "The tools available on the server." + }, + "error": { + "anyOf": [ + { + "type": "string" }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of tags to be attached to the newly created run. These tags are passed through directly to WandB. Some\ndefault tags are generated by OpenAI: \"openai/finetune\", \"openai/{base-model}\", \"openai/{ftjob-abcdef}\"." + { + "type": "null" } - }, - "required": [ - "project" - ], - "description": "The settings for your integration with Weights and Biases. This payload specifies the project that\nmetrics will be sent to. Optionally, you can set an explicit display name for your run, add tags\nto your run, and set a default entity (team, username, etc) to be associated with your run." + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.FineTuningIntegration" + "$ref": "#/components/schemas/OpenAI.OutputItem" } ] }, - "OpenAI.FineTuningJob": { + "OpenAI.OutputItemMCPToolCall": { "type": "object", "required": [ + "type", "id", - "created_at", - "error", - "fine_tuned_model", - "finished_at", - "hyperparameters", - "model", - "object", - "organization_id", - "result_files", - "status", - "trained_tokens", - "training_file", - "validation_file", - "seed", - "metadata" + "server_label", + "name", + "arguments" ], "properties": { - "user_provided_suffix": { + "type": { "type": "string", - "nullable": true, - "description": "The descriptive suffix applied to the job, as specified in the job creation request." + "enum": [ + "mcp_call" + ], + "description": "The type of the item. Always `mcp_call`.", + "x-stainless-const": true }, "id": { "type": "string", - "description": "The object identifier, which can be referenced in the API endpoints." - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the fine-tuning job was created." - }, - "error": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "A machine-readable error code." - }, - "message": { - "type": "string", - "description": "A human-readable error message." - }, - "param": { - "type": "string", - "nullable": true, - "description": "The parameter that was invalid, usually `training_file` or `validation_file`. This field will be null if the failure was not parameter-specific." - } - }, - "required": [ - "code", - "message", - "param" - ], - "nullable": true, - "description": "For fine-tuning jobs that have `failed`, this will contain more information on the cause of the failure." + "description": "The unique ID of the tool call." }, - "fine_tuned_model": { + "server_label": { "type": "string", - "nullable": true, - "description": "The name of the fine-tuned model that is being created. The value will be null if the fine-tuning job is still running." - }, - "finished_at": { - "type": "integer", - "format": "unixtime", - "nullable": true, - "description": "The Unix timestamp (in seconds) for when the fine-tuning job was finished. The value will be null if the fine-tuning job is still running." - }, - "hyperparameters": { - "type": "object", - "properties": { - "batch_size": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "nullable": true, - "description": "Number of examples in each batch. A larger batch size means that model parameters\nare updated less frequently, but with lower variance.", - "default": "auto" - }, - "learning_rate_multiplier": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "number", - "format": "float" - } - ], - "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid\noverfitting.", - "default": "auto" - }, - "n_epochs": { - "anyOf": [ - { - "type": "string", - "enum": [ - "auto" - ] - }, - { - "type": "integer", - "format": "int32" - } - ], - "description": "The number of epochs to train the model for. An epoch refers to one full cycle\nthrough the training dataset.", - "default": "auto" - } - }, - "description": "The hyperparameters used for the fine-tuning job. This value will only be returned when running `supervised` jobs." + "description": "The label of the MCP server running the tool." }, - "model": { + "name": { "type": "string", - "description": "The base model that is being fine-tuned." + "description": "The name of the tool that was run." }, - "object": { + "arguments": { "type": "string", - "enum": [ - "fine_tuning.job" - ], - "description": "The object type, which is always \"fine_tuning.job\"." + "description": "A JSON string of the arguments passed to the tool." }, - "organization_id": { - "type": "string", - "description": "The organization that owns the fine-tuning job." + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "result_files": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The compiled results file ID(s) for the fine-tuning job. You can retrieve the results with the [Files API](/docs/api-reference/files/retrieve-contents)." + "error": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, "status": { - "type": "string", - "enum": [ - "validating_files", - "queued", - "running", - "succeeded", - "failed", - "cancelled" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.MCPToolCallStatus" + } ], - "description": "The current status of the fine-tuning job, which can be either `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`." + "description": "The status of the tool call. One of `in_progress`, `completed`, `incomplete`, `calling`, or `failed`." }, - "trained_tokens": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "The total number of billable tokens processed by this fine-tuning job. The value will be null if the fine-tuning job is still running." + "approval_request_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] + }, + "OpenAI.OutputItemOutputMessage": { + "type": "object", + "required": [ + "id", + "type", + "role", + "content", + "status" + ], + "properties": { + "id": { + "type": "string", + "description": "The unique ID of the output message.", + "x-stainless-go-json": "omitzero" }, - "training_file": { + "type": { "type": "string", - "description": "The file ID used for training. You can retrieve the training data with the [Files API](/docs/api-reference/files/retrieve-contents)." + "enum": [ + "output_message" + ], + "description": "The type of the output message. Always `message`.", + "x-stainless-const": true }, - "validation_file": { + "role": { "type": "string", - "nullable": true, - "description": "The file ID used for validation. You can retrieve the validation results with the [Files API](/docs/api-reference/files/retrieve-contents)." + "enum": [ + "assistant" + ], + "description": "The role of the output message. Always `assistant`.", + "x-stainless-const": true }, - "integrations": { + "content": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.FineTuningIntegration" + "$ref": "#/components/schemas/OpenAI.OutputMessageContent" }, - "nullable": true, - "description": "A list of integrations to enable for this fine-tuning job." - }, - "seed": { - "type": "integer", - "format": "int32", - "description": "The seed used for the fine-tuning job." - }, - "estimated_finish": { - "type": "integer", - "format": "unixtime", - "nullable": true, - "description": "The Unix timestamp (in seconds) for when the fine-tuning job is estimated to finish. The value will be null if the fine-tuning job is not running." - }, - "method": { - "$ref": "#/components/schemas/OpenAI.FineTuneMethod" + "description": "The content of the output message." }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "status": { + "type": "string", + "enum": [ + "in_progress", + "completed", + "incomplete" + ], + "description": "The status of the message input. One of `in_progress`, `completed`, or\n `incomplete`. Populated when input items are returned via API." } }, - "description": "The `fine_tuning.job` object represents a fine-tuning job that has been created through the API." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] }, - "OpenAI.FineTuningJobCheckpoint": { + "OpenAI.OutputItemReasoningItem": { "type": "object", "required": [ + "type", "id", - "created_at", - "fine_tuned_model_checkpoint", - "step_number", - "metrics", - "fine_tuning_job_id", - "object" + "summary" ], "properties": { - "id": { + "type": { "type": "string", - "description": "The checkpoint identifier, which can be referenced in the API endpoints." - }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the checkpoint was created." + "enum": [ + "reasoning" + ], + "description": "The type of the object. Always `reasoning`.", + "x-stainless-const": true }, - "fine_tuned_model_checkpoint": { + "id": { "type": "string", - "description": "The name of the fine-tuned checkpoint model that is created." - }, - "step_number": { - "type": "integer", - "format": "int32", - "description": "The step number that the checkpoint was created at." + "description": "The unique identifier of the reasoning content." }, - "metrics": { - "type": "object", - "properties": { - "step": { - "type": "number", - "format": "float" - }, - "train_loss": { - "type": "number", - "format": "float" - }, - "train_mean_token_accuracy": { - "type": "number", - "format": "float" - }, - "valid_loss": { - "type": "number", - "format": "float" - }, - "valid_mean_token_accuracy": { - "type": "number", - "format": "float" - }, - "full_valid_loss": { - "type": "number", - "format": "float" + "encrypted_content": { + "anyOf": [ + { + "type": "string" }, - "full_valid_mean_token_accuracy": { - "type": "number", - "format": "float" + { + "type": "null" } + ] + }, + "summary": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.Summary" }, - "description": "Metrics at the step number during the fine-tuning job." + "description": "Reasoning summary content." }, - "fine_tuning_job_id": { - "type": "string", - "description": "The name of the fine-tuning job that this checkpoint was created from." + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ReasoningTextContent" + }, + "description": "Reasoning text content." }, - "object": { + "status": { "type": "string", "enum": [ - "fine_tuning.job.checkpoint" + "in_progress", + "completed", + "incomplete" ], - "description": "The object type, which is always \"fine_tuning.job.checkpoint\"." + "description": "The status of the item. One of `in_progress`, `completed`, or\n `incomplete`. Populated when items are returned via API." } }, - "description": "The `fine_tuning.job.checkpoint` object represents a model checkpoint for a fine-tuning job that is ready to use." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] }, - "OpenAI.FineTuningJobEvent": { + "OpenAI.OutputItemType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "output_message", + "file_search_call", + "function_call", + "web_search_call", + "computer_call", + "reasoning", + "compaction", + "image_generation_call", + "code_interpreter_call", + "local_shell_call", + "shell_call", + "shell_call_output", + "apply_patch_call", + "apply_patch_call_output", + "mcp_call", + "mcp_list_tools", + "mcp_approval_request", + "custom_tool_call" + ] + } + ] + }, + "OpenAI.OutputItemWebSearchToolCall": { "type": "object", "required": [ - "object", "id", - "created_at", - "level", - "message" + "type", + "status", + "action" ], "properties": { - "object": { + "id": { + "type": "string", + "description": "The unique ID of the web search tool call." + }, + "type": { "type": "string", "enum": [ - "fine_tuning.job.event" + "web_search_call" ], - "description": "The object type, which is always \"fine_tuning.job.event\"." + "description": "The type of the web search tool call. Always `web_search_call`.", + "x-stainless-const": true }, - "id": { + "status": { "type": "string", - "description": "The object identifier." + "enum": [ + "in_progress", + "searching", + "completed", + "failed" + ], + "description": "The status of the web search tool call." }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the fine-tuning job was created." + "action": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionSearch" + }, + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionOpenPage" + }, + { + "$ref": "#/components/schemas/OpenAI.WebSearchActionFind" + } + ], + "description": "An object describing the specific action taken in this web search call.\n Includes details on how the model used the web (search, open_page, find)." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ] + }, + "OpenAI.OutputMessageContent": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.OutputMessageContentType" + } + }, + "discriminator": { + "propertyName": "type" + } + }, + "OpenAI.OutputMessageContentType": { + "anyOf": [ + { + "type": "string" }, - "level": { + { "type": "string", "enum": [ - "info", - "warn", - "error" + "output_text", + "refusal" + ] + } + ] + }, + "OpenAI.OutputTextContent": { + "type": "object", + "required": [ + "type", + "text", + "annotations" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "output_text" ], - "description": "The log level of the event." + "description": "The type of the output text. Always `output_text`.", + "x-stainless-const": true, + "default": "output_text" }, - "message": { + "text": { "type": "string", - "description": "The message of the event." + "description": "The text output from the model." + }, + "annotations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.Annotation" + }, + "description": "The annotations of the text output." }, + "logprobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.LogProb" + } + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputContent" + } + ], + "description": "A text output from the model.", + "title": "Output text" + }, + "OpenAI.ParallelToolCalls": { + "type": "boolean", + "description": "Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use." + }, + "OpenAI.PredictionContent": { + "type": "object", + "required": [ + "type", + "content" + ], + "properties": { "type": { "type": "string", "enum": [ - "message", - "metrics" + "content" + ], + "description": "The type of the predicted content you want to provide. This type is\n currently always `content`.", + "x-stainless-const": true + }, + "content": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText" + } + } ], - "description": "The type of event." - }, - "data": { - "description": "The data associated with the event." + "description": "The content that should be matched when generating a model response.\n If generated tokens would match this content, the entire model response\n can be returned much more quickly." } }, - "description": "Fine-tuning job event object" + "description": "Static predicted output content, such as the content of a text file that is\nbeing regenerated.", + "title": "Static Content" }, - "OpenAI.FunctionObject": { + "OpenAI.Prompt": { "type": "object", "required": [ - "name" + "id" ], "properties": { - "description": { - "type": "string", - "description": "A description of what the function does, used by the model to choose when and how to call the function." - }, - "name": { + "id": { "type": "string", - "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + "description": "The unique identifier of the prompt template to use." }, - "parameters": { - "description": "The parameters the functions accepts, described as a JSON Schema object. See the [guide](/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.\n\nOmitting `parameters` defines a function with an empty parameter list." + "version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "strict": { - "type": "boolean", - "nullable": true, - "description": "Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](docs/guides/function-calling).", - "default": false + "variables": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponsePromptVariables" + }, + { + "type": "null" + } + ] } - } + }, + "description": "Reference to a prompt template and its variables.\n[Learn more](https://platform.openai.com/docs/guides/text?api-mode=responses#reusable-prompts)." }, - "OpenAI.FunctionTool": { + "OpenAI.RankerVersionType": { + "type": "string", + "enum": [ + "auto", + "default-2024-11-15" + ] + }, + "OpenAI.RankingOptions": { "type": "object", - "required": [ - "type", - "name", - "parameters", - "strict" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "function" + "ranker": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RankerVersionType" + } ], - "description": "The type of the function tool. Always `function`." - }, - "name": { - "type": "string", - "description": "The name of the function to call." - }, - "description": { - "type": "string", - "nullable": true, - "description": "A description of the function. Used by the model to determine whether or not to call the function." + "description": "The ranker to use for the file search." }, - "parameters": { - "nullable": true, - "description": "A JSON schema object describing the parameters of the function." + "score_threshold": { + "type": "number", + "description": "The score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will attempt to return only the most relevant results, but may return fewer results." }, - "strict": { - "type": "boolean", - "nullable": true, - "description": "Whether to enforce strict parameter validation. Default `true`." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Tool" + "hybrid_search": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.HybridSearchOptions" + } + ], + "description": "Weights that control how reciprocal rank fusion balances semantic embedding matches versus sparse keyword matches when hybrid search is enabled." } - ], - "description": "Defines a function in your own code the model can choose to call. Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling)." + } }, - "OpenAI.FunctionToolCallItemParam": { + "OpenAI.RealtimeAudioFormats": { "type": "object", "required": [ - "type", - "call_id", - "name", - "arguments" + "type" ], "properties": { "type": { - "type": "string", - "enum": [ - "function_call" - ] - }, - "call_id": { - "type": "string", - "description": "The unique ID of the function tool call generated by the model." - }, - "name": { - "type": "string", - "description": "The name of the function to run." - }, - "arguments": { - "type": "string", - "description": "A JSON string of the arguments to pass to the function." + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormatsType" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "discriminator": { + "propertyName": "type", + "mapping": { + "audio/pcm": "#/components/schemas/OpenAI.RealtimeAudioFormatsAudioPcm", + "audio/pcmu": "#/components/schemas/OpenAI.RealtimeAudioFormatsAudioPcmu", + "audio/pcma": "#/components/schemas/OpenAI.RealtimeAudioFormatsAudioPcma" } - ], - "description": "A tool call to run a function. See the\n[function calling guide](/docs/guides/function-calling) for more information.\n" + } }, - "OpenAI.FunctionToolCallItemResource": { + "OpenAI.RealtimeAudioFormatsAudioPcm": { "type": "object", "required": [ - "type", - "status", - "call_id", - "name", - "arguments" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "function_call" + "audio/pcm" ] }, - "status": { - "type": "string", + "rate": { + "type": "number", "enum": [ - "in_progress", - "completed", - "incomplete" - ], - "description": "The status of the item. One of `in_progress`, `completed`, or\n`incomplete`. Populated when items are returned via API." - }, - "call_id": { - "type": "string", - "description": "The unique ID of the function tool call generated by the model." - }, - "name": { - "type": "string", - "description": "The name of the function to run." - }, - "arguments": { - "type": "string", - "description": "A JSON string of the arguments to pass to the function." + 24000 + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" } - ], - "description": "A tool call to run a function. See the\n[function calling guide](/docs/guides/function-calling) for more information.\n" + ] }, - "OpenAI.FunctionToolCallOutputItemParam": { + "OpenAI.RealtimeAudioFormatsAudioPcma": { "type": "object", "required": [ - "type", - "call_id", - "output" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "function_call_output" + "audio/pcma" ] - }, - "call_id": { - "type": "string", - "description": "The unique ID of the function tool call generated by the model." - }, - "output": { - "type": "string", - "description": "A JSON string of the output of the function tool call." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" } - ], - "description": "The output of a function tool call.\n" + ] }, - "OpenAI.FunctionToolCallOutputItemResource": { + "OpenAI.RealtimeAudioFormatsAudioPcmu": { "type": "object", "required": [ - "type", - "status", - "call_id", - "output" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "function_call_output" + "audio/pcmu" ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" + } + ] + }, + "OpenAI.RealtimeAudioFormatsType": { + "anyOf": [ + { + "type": "string" }, - "status": { + { "type": "string", "enum": [ - "in_progress", - "completed", - "incomplete" - ], - "description": "The status of the item. One of `in_progress`, `completed`, or\n`incomplete`. Populated when items are returned via API." - }, - "call_id": { + "audio/pcm", + "audio/pcmu", + "audio/pcma" + ] + } + ] + }, + "OpenAI.RealtimeCallCreateRequest": { + "type": "object", + "properties": { + "sdp": { "type": "string", - "description": "The unique ID of the function tool call generated by the model." + "description": "WebRTC Session Description Protocol (SDP) offer generated by the caller." }, - "output": { - "type": "string", - "description": "A JSON string of the output of the function tool call." + "session": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGA" + } + ], + "description": "Optional session configuration to apply before the realtime session is\n created. Use the same parameters you would send in a [`create client secret`](https://platform.openai.com/docs/api-reference/realtime-sessions/create-realtime-client-secret)\n request." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemResource" - } - ], - "description": "The output of a function tool call.\n" + "required": [ + "sdp" + ] }, - "OpenAI.Grader": { + "OpenAI.RealtimeCallReferRequest": { "type": "object", "required": [ - "type" + "target_uri" ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.GraderType" + "target_uri": { + "type": "string", + "description": "URI that should appear in the SIP Refer-To header. Supports values like\n `tel:+14155550123` or `sip:agent\\@example.com`." } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "label_model": "#/components/schemas/OpenAI.GraderLabelModel", - "text_similarity": "#/components/schemas/OpenAI.GraderTextSimilarity", - "python": "#/components/schemas/OpenAI.GraderPython", - "score_model": "#/components/schemas/OpenAI.GraderScoreModel", - "multi": "#/components/schemas/OpenAI.GraderMulti" + "description": "Parameters required to transfer a SIP call to a new destination using the\nRealtime API.", + "title": "Realtime call refer request" + }, + "OpenAI.RealtimeCallRejectRequest": { + "type": "object", + "properties": { + "status_code": { + "type": "integer", + "description": "SIP response code to send back to the caller. Defaults to `603` (Decline)\n when omitted." } - } + }, + "description": "Parameters used to decline an incoming SIP call handled by the Realtime API.", + "title": "Realtime call reject request" }, - "OpenAI.GraderLabelModel": { + "OpenAI.RealtimeCreateClientSecretRequest": { "type": "object", - "required": [ - "type", - "name", - "model", - "input", - "labels", - "passing_labels" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "label_model" + "expires_after": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeCreateClientSecretRequestExpiresAfter" + } ], - "description": "The object type, which is always `label_model`." - }, - "name": { - "type": "string", - "description": "The name of the grader." - }, - "model": { - "type": "string", - "description": "The model to use for the evaluation. Must support structured outputs." - }, - "input": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.EvalItem" - } - }, - "labels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The labels to assign to each item in the evaluation." + "description": "Configuration for the client secret expiration. Expiration refers to the time after which\n a client secret will no longer be valid for creating sessions. The session itself may\n continue after that time once started. A secret can be used to create multiple sessions\n until it expires.", + "title": "Client secret expiration" }, - "passing_labels": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The labels that indicate a passing result. Must be a subset of labels." + "session": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnion" + } + ], + "description": "Session configuration to use for the client secret. Choose either a realtime\n session or a transcription session." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Grader" - } - ], - "description": "A LabelModelGrader object which uses a model to assign labels to each item\nin the evaluation." + "description": "Create a session and client secret for the Realtime API. The request can specify\neither a realtime or a transcription session configuration.\n[Learn more about the Realtime API](https://platform.openai.com/docs/guides/realtime).", + "title": "Realtime client secret creation request" }, - "OpenAI.GraderMulti": { + "OpenAI.RealtimeCreateClientSecretRequestExpiresAfter": { "type": "object", - "required": [ - "type", - "name", - "graders", - "calculate_output" - ], "properties": { - "type": { + "anchor": { "type": "string", "enum": [ - "multi" + "created_at" ], - "description": "The object type, which is always `multi`." + "x-stainless-const": true, + "default": "created_at" }, - "name": { + "seconds": { + "type": "integer", + "minimum": 10, + "maximum": 7200, + "default": 600 + } + } + }, + "OpenAI.RealtimeCreateClientSecretResponse": { + "type": "object", + "required": [ + "value", + "expires_at", + "session" + ], + "properties": { + "value": { "type": "string", - "description": "The name of the grader." + "description": "The generated client secret value." }, - "graders": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.GraderStringCheck" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderScoreModel" - } - ] - } + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "Expiration timestamp for the client secret, in seconds since epoch." }, - "calculate_output": { - "type": "string", - "description": "A formula to calculate the output based on grader results." + "session": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnion" + } + ], + "description": "The session configuration for either a realtime or transcription session." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Grader" - } - ], - "description": "A MultiGrader object combines the output of multiple graders to produce a single score." + "description": "Response from creating a session and client secret for the Realtime API.", + "title": "Realtime session and client secret", + "x-oaiMeta": { + "name": "Session response object", + "group": "realtime", + "example": "{\n \"value\": \"ek_68af296e8e408191a1120ab6383263c2\",\n \"expires_at\": 1756310470,\n \"session\": {\n \"type\": \"realtime\",\n \"object\": \"realtime.session\",\n \"id\": \"sess_C9CiUVUzUzYIssh3ELY1d\",\n \"model\": \"gpt-realtime-2025-08-25\",\n \"output_modalities\": [\n \"audio\"\n ],\n \"instructions\": \"You are a friendly assistant.\",\n \"tools\": [],\n \"tool_choice\": \"auto\",\n \"max_output_tokens\": \"inf\",\n \"tracing\": null,\n \"truncation\": \"auto\",\n \"prompt\": null,\n \"expires_at\": 0,\n \"audio\": {\n \"input\": {\n \"format\": {\n \"type\": \"audio/pcm\",\n \"rate\": 24000\n },\n \"transcription\": null,\n \"noise_reduction\": null,\n \"turn_detection\": {\n \"type\": \"server_vad\",\n \"threshold\": 0.5,\n \"prefix_padding_ms\": 300,\n \"silence_duration_ms\": 200,\n \"idle_timeout_ms\": null,\n \"create_response\": true,\n \"interrupt_response\": true\n }\n },\n \"output\": {\n \"format\": {\n \"type\": \"audio/pcm\",\n \"rate\": 24000\n },\n \"voice\": \"alloy\",\n \"speed\": 1.0\n }\n },\n \"include\": null\n }\n}\n" + } }, - "OpenAI.GraderPython": { + "OpenAI.RealtimeFunctionTool": { "type": "object", - "required": [ - "type", - "name", - "source" - ], "properties": { "type": { "type": "string", "enum": [ - "python" + "function" ], - "description": "The object type, which is always `python`." + "description": "The type of the tool, i.e. `function`.", + "x-stainless-const": true }, "name": { "type": "string", - "description": "The name of the grader." + "description": "The name of the function." }, - "source": { + "description": { "type": "string", - "description": "The source code of the python script." + "description": "The description of the function, including guidance on when and how\n to call it, and guidance about what to tell the user when calling\n (if anything)." }, - "image_tag": { - "type": "string", - "description": "The image tag to use for the python script." + "parameters": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeFunctionToolParameters" + } + ], + "description": "Parameters of the function in JSON Schema." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Grader" - } - ], - "description": "A PythonGrader object that runs a python script on the input." + "title": "Function tool" }, - "OpenAI.GraderScoreModel": { + "OpenAI.RealtimeFunctionToolParameters": { + "type": "object" + }, + "OpenAI.RealtimeSessionCreateRequest": { "type": "object", "required": [ - "type", - "name", - "model", - "input" + "client_secret", + "type" ], "properties": { - "type": { + "client_secret": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestClientSecret" + } + ], + "description": "Ephemeral key returned by the API." + }, + "modalities": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "text", + "audio" + ] + }, + "description": "The set of modalities the model can respond with. To disable audio,\n set this to [\"text\"].", + "default": [ + "text", + "audio" + ] + }, + "instructions": { "type": "string", - "enum": [ - "score_model" + "description": "The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. \"be extremely succinct\", \"act friendly\", \"here are examples of good responses\") and on audio behavior (e.g. \"talk quickly\", \"inject emotion into your voice\", \"laugh frequently\"). The instructions are not guaranteed to be followed by the model, but they provide guidance to the model on the desired behavior.\n Note that the server sets default instructions which will be used if this field is not set and are visible in the `session.created` event at the start of the session." + }, + "voice": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.VoiceIdsShared" + } ], - "description": "The object type, which is always `score_model`." + "description": "The voice the model uses to respond. Voice cannot be changed during the\n session once the model has responded with audio at least once. Current\n voice options are `alloy`, `ash`, `ballad`, `coral`, `echo`, `sage`,\n `shimmer`, and `verse`." }, - "name": { + "input_audio_format": { "type": "string", - "description": "The name of the grader." + "description": "The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`." }, - "model": { + "output_audio_format": { "type": "string", - "description": "The model to use for the evaluation." + "description": "The format of output audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`." }, - "sampling_params": { - "description": "The sampling parameters for the model." + "input_audio_transcription": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestInputAudioTranscription" + } + ], + "description": "Configuration for input audio transcription, defaults to off and can be\n set to `null` to turn off once on. Input audio transcription is not native\n to the model, since the model consumes audio directly. Transcription runs\n asynchronously and should be treated as rough guidance\n rather than the representation understood by the model." }, - "input": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.EvalItem" - }, - "description": "The input text. This may include template strings." + "speed": { + "type": "number", + "minimum": 0.25, + "maximum": 1.5, + "description": "The speed of the model's spoken response. 1.0 is the default speed. 0.25 is\n the minimum speed. 1.5 is the maximum speed. This value can only be changed\n in between model turns, not while a response is in progress.", + "default": 1 }, - "range": { + "tracing": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "object", + "properties": { + "workflow_name": { + "type": "string" + }, + "group_id": { + "type": "string" + }, + "metadata": { + "type": "object", + "unevaluatedProperties": {} + } + } + } + ], + "description": "Configuration options for tracing. Set to null to disable tracing. Once\n tracing is enabled for a session, the configuration cannot be modified.\n\n `auto` will create a trace for the session with default values for the\n workflow name, group id, and metadata.", + "title": "Tracing Configuration", + "default": "auto" + }, + "turn_detection": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestTurnDetection" + } + ], + "description": "Configuration for turn detection. Can be set to `null` to turn off. Server\n VAD means that the model will detect the start and end of speech based on\n audio volume and respond at the end of user speech." + }, + "tools": { "type": "array", "items": { - "type": "number", - "format": "float" + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestTools" }, - "description": "The range of the score. Defaults to `[0, 1]`." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Grader" - } - ], - "description": "A ScoreModelGrader object that uses a model to assign a score to the input." - }, - "OpenAI.GraderStringCheck": { - "type": "object", - "required": [ - "type", - "name", - "input", - "reference", - "operation" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "string_check" - ], - "description": "The object type, which is always `string_check`." + "description": "Tools (functions) available to the model." }, - "name": { + "tool_choice": { "type": "string", - "description": "The name of the grader." + "description": "How the model chooses tools. Options are `auto`, `none`, `required`, or\n specify a function." }, - "input": { - "type": "string", - "description": "The input text. This may include template strings." + "temperature": { + "type": "number", + "description": "Sampling temperature for the model, limited to [0.6, 1.2]. Defaults to 0.8." }, - "reference": { - "type": "string", - "description": "The reference text. This may include template strings." + "max_response_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string", + "enum": [ + "inf" + ] + } + ], + "description": "Maximum number of output tokens for a single assistant response,\n inclusive of tool calls. Provide an integer between 1 and 4096 to\n limit output tokens, or `inf` for the maximum available tokens for a\n given model. Defaults to `inf`." }, - "operation": { + "truncation": { + "$ref": "#/components/schemas/OpenAI.RealtimeTruncation" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" + }, + "type": { "type": "string", "enum": [ - "eq", - "ne", - "like", - "ilike" + "realtime" ], - "description": "The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`." + "default": "realtime" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Grader" + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnion" } ], - "description": "A StringCheckGrader object that performs a string comparison between input and reference using a specified operation." + "description": "A new Realtime session configuration, with an ephemeral key. Default TTL\nfor keys is one minute.", + "x-oaiMeta": { + "name": "The session object", + "group": "realtime", + "example": "{\n \"id\": \"sess_001\",\n \"object\": \"realtime.session\",\n \"model\": \"gpt-realtime-2025-08-25\",\n \"modalities\": [\"audio\", \"text\"],\n \"instructions\": \"You are a friendly assistant.\",\n \"voice\": \"alloy\",\n \"input_audio_format\": \"pcm16\",\n \"output_audio_format\": \"pcm16\",\n \"input_audio_transcription\": {\n \"model\": \"whisper-1\"\n },\n \"turn_detection\": null,\n \"tools\": [],\n \"tool_choice\": \"none\",\n \"temperature\": 0.7,\n \"speed\": 1.1,\n \"tracing\": \"auto\",\n \"max_response_output_tokens\": 200,\n \"truncation\": \"auto\",\n \"prompt\": null,\n \"client_secret\": {\n \"value\": \"ek_abc123\",\n \"expires_at\": 1234567890\n }\n}\n" + } }, - "OpenAI.GraderTextSimilarity": { + "OpenAI.RealtimeSessionCreateRequestClientSecret": { "type": "object", "required": [ - "type", - "name", - "input", - "reference", - "evaluation_metric" + "value", + "expires_at" ], "properties": { - "type": { - "type": "string", - "enum": [ - "text_similarity" - ], - "description": "The type of grader." - }, - "name": { - "type": "string", - "description": "The name of the grader." - }, - "input": { - "type": "string", - "description": "The text being graded." - }, - "reference": { - "type": "string", - "description": "The text being graded against." + "value": { + "type": "string" }, - "evaluation_metric": { - "type": "string", - "enum": [ - "fuzzy_match", - "bleu", - "gleu", - "meteor", - "rouge_1", - "rouge_2", - "rouge_3", - "rouge_4", - "rouge_5", - "rouge_l" - ], - "description": "The evaluation metric to use. One of `fuzzy_match`, `bleu`, `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Grader" + "expires_at": { + "type": "integer", + "format": "unixtime" } - ], - "description": "A TextSimilarityGrader object which grades text based on similarity metrics." - }, - "OpenAI.GraderType": { - "type": "string", - "enum": [ - "string_check", - "text_similarity", - "score_model", - "label_model", - "python", - "multi" - ] + } }, - "OpenAI.ImageGenTool": { + "OpenAI.RealtimeSessionCreateRequestGA": { "type": "object", "required": [ "type" @@ -15175,2006 +27248,2269 @@ "type": { "type": "string", "enum": [ - "image_generation" + "realtime" ], - "description": "The type of the image generation tool. Always `image_generation`." + "description": "The type of session to create. Always `realtime` for the Realtime API.", + "x-stainless-const": true }, - "model": { - "type": "string", - "enum": [ - "gpt-image-1" - ], - "description": "The image generation model to use. Default: `gpt-image-1`.", - "default": "gpt-image-1" + "output_modalities": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "text", + "audio" + ] + }, + "description": "The set of modalities the model can respond with. It defaults to `[\"audio\"]`, indicating\n that the model will respond with audio plus a transcript. `[\"text\"]` can be used to make\n the model respond with text only. It is not possible to request both `text` and `audio` at the same time.", + "default": [ + "audio" + ] }, - "quality": { + "model": { "type": "string", - "enum": [ - "low", - "medium", - "high", - "auto" - ], - "description": "The quality of the generated image. One of `low`, `medium`, `high`,\nor `auto`. Default: `auto`.", - "default": "auto" + "description": "The Realtime model used for this session." }, - "size": { + "instructions": { "type": "string", - "enum": [ - "1024x1024", - "1024x1536", - "1536x1024", - "auto" - ], - "description": "The size of the generated image. One of `1024x1024`, `1024x1536`,\n`1536x1024`, or `auto`. Default: `auto`.", - "default": "auto" + "description": "The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. \"be extremely succinct\", \"act friendly\", \"here are examples of good responses\") and on audio behavior (e.g. \"talk quickly\", \"inject emotion into your voice\", \"laugh frequently\"). The instructions are not guaranteed to be followed by the model, but they provide guidance to the model on the desired behavior.\n\n Note that the server sets default instructions which will be used if this field is not set and are visible in the `session.created` event at the start of the session." }, - "output_format": { - "type": "string", - "enum": [ - "png", - "webp", - "jpeg" + "audio": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudio" + } ], - "description": "The output format of the generated image. One of `png`, `webp`, or\n`jpeg`. Default: `png`.", - "default": "png" + "description": "Configuration for input and output audio." }, - "output_compression": { - "type": "integer", - "format": "int32", - "minimum": 0, - "maximum": 100, - "description": "Compression level for the output image. Default: 100.", - "default": 100 + "include": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "item.input_audio_transcription.logprobs" + ] + }, + "description": "Additional fields to include in server outputs.\n\n `item.input_audio_transcription.logprobs`: Include logprobs for input audio transcription." }, - "moderation": { - "type": "string", - "enum": [ - "auto", - "low" + "tracing": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGATracing" + }, + { + "type": "null" + } ], - "description": "Moderation level for the generated image. Default: `auto`.", + "description": "Realtime API can write session traces to the [Traces Dashboard](/logs?api=traces). Set to null to disable tracing. Once\n tracing is enabled for a session, the configuration cannot be modified.\n\n `auto` will create a trace for the session with default values for the\n workflow name, group id, and metadata.", + "title": "Tracing Configuration", "default": "auto" }, - "background": { - "type": "string", - "enum": [ - "transparent", - "opaque", - "auto" + "tools": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeFunctionTool" + }, + { + "$ref": "#/components/schemas/OpenAI.MCPTool" + } + ] + }, + "description": "Tools available to the model." + }, + "tool_choice": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ToolChoiceOptions" + }, + { + "$ref": "#/components/schemas/OpenAI.ToolChoiceFunction" + }, + { + "$ref": "#/components/schemas/OpenAI.ToolChoiceMCP" + } ], - "description": "Background type for the generated image. One of `transparent`,\n`opaque`, or `auto`. Default: `auto`.", + "description": "How the model chooses tools. Provide one of the string modes or force a specific\n function/MCP tool.", "default": "auto" }, - "input_image_mask": { - "type": "object", - "properties": { - "image_url": { - "type": "string", - "description": "Base64-encoded mask image." + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" }, - "file_id": { + { "type": "string", - "description": "File ID for the mask image." + "enum": [ + "inf" + ] } - }, - "description": "Optional mask for inpainting. Contains `image_url`\n(string, optional) and `file_id` (string, optional)." + ], + "description": "Maximum number of output tokens for a single assistant response,\n inclusive of tool calls. Provide an integer between 1 and 4096 to\n limit output tokens, or `inf` for the maximum available tokens for a\n given model. Defaults to `inf`." }, - "partial_images": { - "type": "integer", - "format": "int32", - "minimum": 0, - "maximum": 3, - "description": "Number of partial images to generate in streaming mode, from 0 (default value) to 3.", - "default": 0 + "truncation": { + "$ref": "#/components/schemas/OpenAI.RealtimeTruncation" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Tool" - } - ], - "description": "A tool that generates images using a model like `gpt-image-1`." + "description": "Realtime session object configuration.", + "title": "Realtime session configuration" }, - "OpenAI.ImageGenToolCallItemParam": { + "OpenAI.RealtimeSessionCreateRequestGAAudio": { "type": "object", - "required": [ - "type", - "result" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "image_generation_call" - ] + "input": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudioInput" }, - "result": { - "type": "string", - "nullable": true, - "description": "The generated image encoded in base64." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "output": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudioOutput" } - ], - "description": "An image generation request made by the model.\n" + } }, - "OpenAI.ImageGenToolCallItemResource": { + "OpenAI.RealtimeSessionCreateRequestGAAudioInput": { "type": "object", - "required": [ - "type", - "status", - "result" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "image_generation_call" - ] + "format": { + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "completed", - "generating", - "failed" - ] + "transcription": { + "$ref": "#/components/schemas/OpenAI.AudioTranscription" }, - "result": { - "type": "string", - "nullable": true, - "description": "The generated image encoded in base64." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "noise_reduction": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudioInputNoiseReduction" + }, + "turn_detection": { + "$ref": "#/components/schemas/OpenAI.RealtimeTurnDetection" } - ], - "description": "An image generation request made by the model.\n" + } }, - "OpenAI.ImplicitUserMessage": { + "OpenAI.RealtimeSessionCreateRequestGAAudioInputNoiseReduction": { "type": "object", - "required": [ - "content" - ], "properties": { - "content": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - } - } - ] + "type": { + "$ref": "#/components/schemas/OpenAI.NoiseReductionType" } } }, - "OpenAI.Includable": { - "type": "string", - "enum": [ - "code_interpreter_call.outputs", - "computer_call_output.output.image_url", - "file_search_call.results", - "message.input_image.image_url", - "message.output_text.logprobs", - "reasoning.encrypted_content" - ], - "description": "Specify additional output data to include in the model response. Currently\nsupported values are:\n- `code_interpreter_call.outputs`: Includes the outputs of python code execution\n in code interpreter tool call items.\n- `computer_call_output.output.image_url`: Include image urls from the computer call output.\n- `file_search_call.results`: Include the search results of\n the file search tool call.\n- `message.input_image.image_url`: Include image urls from the input message.\n- `message.output_text.logprobs`: Include logprobs with assistant messages.\n- `reasoning.encrypted_content`: Includes an encrypted version of reasoning\n tokens in reasoning item outputs. This enables reasoning items to be used in\n multi-turn conversations when using the Responses API statelessly (like\n when the `store` parameter is set to `false`, or when an organization is\n enrolled in the zero data retention program)." + "OpenAI.RealtimeSessionCreateRequestGAAudioOutput": { + "type": "object", + "properties": { + "format": { + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" + }, + "voice": { + "$ref": "#/components/schemas/OpenAI.VoiceIdsShared" + }, + "speed": { + "type": "number", + "minimum": 0.25, + "maximum": 1.5, + "default": 1 + } + } }, - "OpenAI.ItemContent": { + "OpenAI.RealtimeSessionCreateRequestGATracing": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.ItemContentType" + "workflow_name": { + "type": "string" + }, + "group_id": { + "type": "string" + }, + "metadata": { + "type": "object", + "unevaluatedProperties": {} } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "input_audio": "#/components/schemas/OpenAI.ItemContentInputAudio", - "output_audio": "#/components/schemas/OpenAI.ItemContentOutputAudio", - "refusal": "#/components/schemas/OpenAI.ItemContentRefusal", - "input_text": "#/components/schemas/OpenAI.ItemContentInputText", - "input_image": "#/components/schemas/OpenAI.ItemContentInputImage", - "input_file": "#/components/schemas/OpenAI.ItemContentInputFile", - "output_text": "#/components/schemas/OpenAI.ItemContentOutputText" + } + }, + "OpenAI.RealtimeSessionCreateRequestInputAudioTranscription": { + "type": "object", + "properties": { + "model": { + "type": "string" } } }, - "OpenAI.ItemContentInputAudio": { + "OpenAI.RealtimeSessionCreateRequestTools": { "type": "object", - "required": [ - "type", - "data", - "format" - ], "properties": { "type": { "type": "string", "enum": [ - "input_audio" + "function" ], - "description": "The type of the input item. Always `input_audio`." + "x-stainless-const": true + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "parameters": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestToolsParameters" + } + } + }, + "OpenAI.RealtimeSessionCreateRequestToolsParameters": { + "type": "object" + }, + "OpenAI.RealtimeSessionCreateRequestTurnDetection": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "threshold": { + "type": "number" }, - "data": { - "type": "string", - "description": "Base64-encoded audio data." + "prefix_padding_ms": { + "type": "integer" }, - "format": { - "type": "string", - "enum": [ - "mp3", - "wav" - ], - "description": "The format of the audio data. Currently supported formats are `mp3` and\n`wav`." + "silence_duration_ms": { + "type": "integer" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" - } - ], - "description": "An audio input to the model." + } }, - "OpenAI.ItemContentInputFile": { + "OpenAI.RealtimeSessionCreateRequestUnion": { "type": "object", "required": [ "type" ], "properties": { "type": { - "type": "string", - "enum": [ - "input_file" - ], - "description": "The type of the input item. Always `input_file`." - }, - "file_id": { - "type": "string", - "nullable": true, - "description": "The ID of the file to be sent to the model." - }, - "filename": { - "type": "string", - "description": "The name of the file to be sent to the model." - }, - "file_data": { - "type": "string", - "description": "The content of the file to be sent to the model." + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnionType" } }, - "allOf": [ + "discriminator": { + "propertyName": "type", + "mapping": { + "realtime": "#/components/schemas/OpenAI.RealtimeSessionCreateRequest", + "transcription": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequest" + } + } + }, + "OpenAI.RealtimeSessionCreateRequestUnionType": { + "anyOf": [ + { + "type": "string" + }, { - "$ref": "#/components/schemas/OpenAI.ItemContent" + "type": "string", + "enum": [ + "realtime", + "transcription" + ] } - ], - "description": "A file input to the model." + ] }, - "OpenAI.ItemContentInputImage": { + "OpenAI.RealtimeSessionCreateResponse": { "type": "object", "required": [ "type" ], "properties": { - "type": { + "id": { "type": "string", - "enum": [ - "input_image" - ], - "description": "The type of the input item. Always `input_image`." + "description": "Unique identifier for the session that looks like `sess_1234567890abcdef`." }, - "image_url": { + "object": { "type": "string", - "nullable": true, - "description": "The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL." + "description": "The object type. Always `realtime.session`." }, - "file_id": { + "expires_at": { + "type": "integer", + "format": "unixtime", + "description": "Expiration timestamp for the session, in seconds since epoch." + }, + "include": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "item.input_audio_transcription.logprobs" + ] + }, + "description": "Additional fields to include in server outputs.\n - `item.input_audio_transcription.logprobs`: Include logprobs for input audio transcription." + }, + "model": { "type": "string", - "nullable": true, - "description": "The ID of the file to be sent to the model." + "description": "The Realtime model used for this session." }, - "detail": { + "output_modalities": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "text", + "audio" + ] + }, + "description": "The set of modalities the model can respond with. To disable audio,\n set this to [\"text\"]." + }, + "instructions": { "type": "string", - "enum": [ - "low", - "high", - "auto" + "description": "The default system instructions (i.e. system message) prepended to model\n calls. This field allows the client to guide the model on desired\n responses. The model can be instructed on response content and format,\n (e.g. \"be extremely succinct\", \"act friendly\", \"here are examples of good\n responses\") and on audio behavior (e.g. \"talk quickly\", \"inject emotion\n into your voice\", \"laugh frequently\"). The instructions are not guaranteed\n to be followed by the model, but they provide guidance to the model on the\n desired behavior.\n\n Note that the server sets default instructions which will be used if this\n field is not set and are visible in the `session.created` event at the\n start of the session." + }, + "audio": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudio" + } + ], + "description": "Configuration for input and output audio for the session." + }, + "tracing": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto" + ] + }, + { + "type": "object", + "properties": { + "workflow_name": { + "type": "string" + }, + "group_id": { + "type": "string" + }, + "metadata": { + "type": "object", + "unevaluatedProperties": {} + } + } + } ], - "description": "The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`. Defaults to `auto`.", + "description": "Configuration options for tracing. Set to null to disable tracing. Once\n tracing is enabled for a session, the configuration cannot be modified.\n\n `auto` will create a trace for the session with default values for the\n workflow name, group id, and metadata.", + "title": "Tracing Configuration", "default": "auto" + }, + "turn_detection": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseTurnDetection" + } + ], + "description": "Configuration for turn detection. Can be set to `null` to turn off. Server\n VAD means that the model will detect the start and end of speech based on\n audio volume and respond at the end of user speech." + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RealtimeFunctionTool" + }, + "description": "Tools (functions) available to the model." + }, + "tool_choice": { + "type": "string", + "description": "How the model chooses tools. Options are `auto`, `none`, `required`, or\n specify a function." + }, + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string", + "enum": [ + "inf" + ] + } + ], + "description": "Maximum number of output tokens for a single assistant response,\n inclusive of tool calls. Provide an integer between 1 and 4096 to\n limit output tokens, or `inf` for the maximum available tokens for a\n given model. Defaults to `inf`." + }, + "type": { + "type": "string", + "enum": [ + "realtime" + ], + "default": "realtime" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemContent" + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnion" } ], - "description": "An image input to the model. Learn about [image inputs](/docs/guides/vision)." + "description": "A Realtime session configuration object.", + "title": "Realtime session configuration object", + "x-oaiMeta": { + "name": "The session object", + "group": "realtime", + "example": "{\n \"id\": \"sess_001\",\n \"object\": \"realtime.session\",\n \"expires_at\": 1742188264,\n \"model\": \"gpt-realtime\",\n \"output_modalities\": [\"audio\"],\n \"instructions\": \"You are a friendly assistant.\",\n \"tools\": [],\n \"tool_choice\": \"none\",\n \"max_output_tokens\": \"inf\",\n \"tracing\": \"auto\",\n \"truncation\": \"auto\",\n \"prompt\": null,\n \"audio\": {\n \"input\": {\n \"format\": {\n \"type\": \"audio/pcm\",\n \"rate\": 24000\n },\n \"transcription\": { \"model\": \"whisper-1\" },\n \"noise_reduction\": null,\n \"turn_detection\": null\n },\n \"output\": {\n \"format\": {\n \"type\": \"audio/pcm\",\n \"rate\": 24000\n },\n \"voice\": \"alloy\",\n \"speed\": 1.0\n }\n }\n}\n" + } }, - "OpenAI.ItemContentInputText": { + "OpenAI.RealtimeSessionCreateResponseAudio": { "type": "object", - "required": [ - "type", - "text" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "input_text" - ], - "description": "The type of the input item. Always `input_text`." + "input": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioInput" }, - "text": { - "type": "string", - "description": "The text input to the model." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" + "output": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioOutput" } - ], - "description": "A text input to the model." + } }, - "OpenAI.ItemContentOutputAudio": { + "OpenAI.RealtimeSessionCreateResponseAudioInput": { "type": "object", - "required": [ - "type", - "data", - "transcript" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "output_audio" - ], - "description": "The type of the output audio. Always `output_audio`." + "format": { + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" }, - "data": { - "type": "string", - "description": "Base64-encoded audio data from the model." + "transcription": { + "$ref": "#/components/schemas/OpenAI.AudioTranscription" }, - "transcript": { - "type": "string", - "description": "The transcript of the audio data from the model." + "noise_reduction": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioInputNoiseReduction" + }, + "turn_detection": { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioInputTurnDetection" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" + } + }, + "OpenAI.RealtimeSessionCreateResponseAudioInputNoiseReduction": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.NoiseReductionType" } - ], - "description": "An audio output from the model." + } }, - "OpenAI.ItemContentOutputText": { + "OpenAI.RealtimeSessionCreateResponseAudioInputTurnDetection": { "type": "object", - "required": [ - "type", - "text", - "annotations" - ], "properties": { "type": { - "type": "string", - "enum": [ - "output_text" - ], - "description": "The type of the output text. Always `output_text`." + "type": "string" }, - "text": { - "type": "string", - "description": "The text output from the model." + "threshold": { + "type": "number" }, - "annotations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Annotation" - }, - "description": "The annotations of the text output." + "prefix_padding_ms": { + "type": "integer" }, - "logprobs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.LogProb" - } + "silence_duration_ms": { + "type": "integer" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" + } + }, + "OpenAI.RealtimeSessionCreateResponseAudioOutput": { + "type": "object", + "properties": { + "format": { + "$ref": "#/components/schemas/OpenAI.RealtimeAudioFormats" + }, + "voice": { + "$ref": "#/components/schemas/OpenAI.VoiceIdsShared" + }, + "speed": { + "type": "number" } - ], - "description": "A text output from the model." + } }, - "OpenAI.ItemContentRefusal": { + "OpenAI.RealtimeSessionCreateResponseTurnDetection": { "type": "object", - "required": [ - "type", - "refusal" - ], "properties": { "type": { - "type": "string", - "enum": [ - "refusal" - ], - "description": "The type of the refusal. Always `refusal`." + "type": "string" }, - "refusal": { - "type": "string", - "description": "The refusal explanationfrom the model." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" + "threshold": { + "type": "number" + }, + "prefix_padding_ms": { + "type": "integer" + }, + "silence_duration_ms": { + "type": "integer" } - ], - "description": "A refusal from the model." - }, - "OpenAI.ItemContentType": { - "type": "string", - "enum": [ - "input_text", - "input_audio", - "input_image", - "input_file", - "output_text", - "output_audio", - "refusal" - ], - "description": "Multi-modal input and output contents." + } }, - "OpenAI.ItemParam": { + "OpenAI.RealtimeSessionCreateResponseUnion": { "type": "object", "required": [ "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.ItemType" + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnionType" } }, "discriminator": { "propertyName": "type", "mapping": { - "file_search_call": "#/components/schemas/OpenAI.FileSearchToolCallItemParam", - "computer_call": "#/components/schemas/OpenAI.ComputerToolCallItemParam", - "computer_call_output": "#/components/schemas/OpenAI.ComputerToolCallOutputItemParam", - "web_search_call": "#/components/schemas/OpenAI.WebSearchToolCallItemParam", - "function_call": "#/components/schemas/OpenAI.FunctionToolCallItemParam", - "function_call_output": "#/components/schemas/OpenAI.FunctionToolCallOutputItemParam", - "reasoning": "#/components/schemas/OpenAI.ReasoningItemParam", - "item_reference": "#/components/schemas/OpenAI.ItemReferenceItemParam", - "image_generation_call": "#/components/schemas/OpenAI.ImageGenToolCallItemParam", - "code_interpreter_call": "#/components/schemas/OpenAI.CodeInterpreterToolCallItemParam", - "local_shell_call": "#/components/schemas/OpenAI.LocalShellToolCallItemParam", - "local_shell_call_output": "#/components/schemas/OpenAI.LocalShellToolCallOutputItemParam", - "mcp_list_tools": "#/components/schemas/OpenAI.MCPListToolsItemParam", - "mcp_approval_request": "#/components/schemas/OpenAI.MCPApprovalRequestItemParam", - "mcp_approval_response": "#/components/schemas/OpenAI.MCPApprovalResponseItemParam", - "mcp_call": "#/components/schemas/OpenAI.MCPCallItemParam", - "message": "#/components/schemas/OpenAI.ResponsesMessageItemParam" + "realtime": "#/components/schemas/OpenAI.RealtimeSessionCreateResponse", + "transcription": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponse" } - }, - "description": "Content item used to generate a response." + } + }, + "OpenAI.RealtimeSessionCreateResponseUnionType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "realtime", + "transcription" + ] + } + ] }, - "OpenAI.ItemReferenceItemParam": { + "OpenAI.RealtimeTranscriptionSessionCreateRequest": { "type": "object", "required": [ - "type", - "id" + "type" ], "properties": { - "type": { + "turn_detection": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequestTurnDetection" + } + ], + "description": "Configuration for turn detection. Can be set to `null` to turn off. Server VAD means that the model will detect the start and end of speech based on audio volume and respond at the end of user speech." + }, + "input_audio_noise_reduction": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequestInputAudioNoiseReduction" + } + ], + "description": "Configuration for input audio noise reduction. This can be set to `null` to turn off.\n Noise reduction filters audio added to the input audio buffer before it is sent to VAD and the model.\n Filtering the audio can improve VAD and turn detection accuracy (reducing false positives) and model performance by improving perception of the input audio." + }, + "input_audio_format": { "type": "string", "enum": [ - "item_reference" - ] + "pcm16", + "g711_ulaw", + "g711_alaw" + ], + "description": "The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.\n For `pcm16`, input audio must be 16-bit PCM at a 24kHz sample rate,\n single channel (mono), and little-endian byte order.", + "default": "pcm16" }, - "id": { + "input_audio_transcription": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.AudioTranscription" + } + ], + "description": "Configuration for input audio transcription. The client can optionally set the language and prompt for transcription, these offer additional guidance to the transcription service." + }, + "include": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "item.input_audio_transcription.logprobs" + ] + }, + "description": "The set of items to include in the transcription. Current available items are:\n `item.input_audio_transcription.logprobs`" + }, + "type": { "type": "string", - "description": "The service-originated ID of the previously generated response item being referenced." + "enum": [ + "transcription" + ], + "default": "transcription" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnion" } ], - "description": "An internal identifier for an item to reference." + "description": "Realtime transcription session object configuration.", + "title": "Realtime transcription session configuration" }, - "OpenAI.ItemResource": { + "OpenAI.RealtimeTranscriptionSessionCreateRequestInputAudioNoiseReduction": { "type": "object", - "required": [ - "type", - "id" - ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.ItemType" - }, - "id": { - "type": "string" + "$ref": "#/components/schemas/OpenAI.NoiseReductionType" } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search_call": "#/components/schemas/OpenAI.FileSearchToolCallItemResource", - "computer_call": "#/components/schemas/OpenAI.ComputerToolCallItemResource", - "computer_call_output": "#/components/schemas/OpenAI.ComputerToolCallOutputItemResource", - "web_search_call": "#/components/schemas/OpenAI.WebSearchToolCallItemResource", - "function_call": "#/components/schemas/OpenAI.FunctionToolCallItemResource", - "function_call_output": "#/components/schemas/OpenAI.FunctionToolCallOutputItemResource", - "reasoning": "#/components/schemas/OpenAI.ReasoningItemResource", - "image_generation_call": "#/components/schemas/OpenAI.ImageGenToolCallItemResource", - "code_interpreter_call": "#/components/schemas/OpenAI.CodeInterpreterToolCallItemResource", - "local_shell_call": "#/components/schemas/OpenAI.LocalShellToolCallItemResource", - "local_shell_call_output": "#/components/schemas/OpenAI.LocalShellToolCallOutputItemResource", - "mcp_list_tools": "#/components/schemas/OpenAI.MCPListToolsItemResource", - "mcp_approval_request": "#/components/schemas/OpenAI.MCPApprovalRequestItemResource", - "mcp_approval_response": "#/components/schemas/OpenAI.MCPApprovalResponseItemResource", - "mcp_call": "#/components/schemas/OpenAI.MCPCallItemResource", - "message": "#/components/schemas/OpenAI.ResponsesMessageItemResource" - } - }, - "description": "Content item used to generate a response." - }, - "OpenAI.ItemType": { - "type": "string", - "enum": [ - "message", - "file_search_call", - "function_call", - "function_call_output", - "computer_call", - "computer_call_output", - "web_search_call", - "reasoning", - "item_reference", - "image_generation_call", - "code_interpreter_call", - "local_shell_call", - "local_shell_call_output", - "mcp_list_tools", - "mcp_approval_request", - "mcp_approval_response", - "mcp_call" - ] + } }, - "OpenAI.ListFineTuningJobCheckpointsResponse": { + "OpenAI.RealtimeTranscriptionSessionCreateRequestTurnDetection": { "type": "object", - "required": [ - "data", - "object", - "has_more" - ], "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.FineTuningJobCheckpoint" - } - }, - "object": { + "type": { "type": "string", "enum": [ - "list" + "server_vad" ] }, - "first_id": { - "type": "string", - "nullable": true + "threshold": { + "type": "number" }, - "last_id": { - "type": "string", - "nullable": true + "prefix_padding_ms": { + "type": "integer" }, - "has_more": { - "type": "boolean" + "silence_duration_ms": { + "type": "integer" } } }, - "OpenAI.ListFineTuningJobEventsResponse": { + "OpenAI.RealtimeTranscriptionSessionCreateResponse": { "type": "object", "required": [ - "data", - "object", - "has_more" + "client_secret", + "type" ], "properties": { - "data": { + "client_secret": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponseClientSecret" + } + ], + "description": "Ephemeral key returned by the API. Only present when the session is\n created on the server via REST API." + }, + "modalities": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.FineTuningJobEvent" - } + "type": "string", + "enum": [ + "text", + "audio" + ] + }, + "description": "The set of modalities the model can respond with. To disable audio,\n set this to [\"text\"]." }, - "object": { + "input_audio_format": { "type": "string", - "enum": [ - "list" - ] + "description": "The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`." }, - "has_more": { - "type": "boolean" + "input_audio_transcription": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.AudioTranscription" + } + ], + "description": "Configuration of the transcription model." + }, + "turn_detection": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponseTurnDetection" + } + ], + "description": "Configuration for turn detection. Can be set to `null` to turn off. Server\n VAD means that the model will detect the start and end of speech based on\n audio volume and respond at the end of user speech." + }, + "type": { + "type": "string", + "enum": [ + "transcription" + ], + "x-stainless-const": true } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnion" + } + ], + "description": "A new Realtime transcription session configuration.\n\nWhen a session is created on the server via REST API, the session object\nalso contains an ephemeral key. Default TTL for keys is 10 minutes. This\nproperty is not present when a session is updated via the WebSocket API.", + "x-oaiMeta": { + "name": "The transcription session object", + "group": "realtime", + "example": "{\n \"id\": \"sess_BBwZc7cFV3XizEyKGDCGL\",\n \"object\": \"realtime.transcription_session\",\n \"expires_at\": 1742188264,\n \"modalities\": [\"audio\", \"text\"],\n \"turn_detection\": {\n \"type\": \"server_vad\",\n \"threshold\": 0.5,\n \"prefix_padding_ms\": 300,\n \"silence_duration_ms\": 200\n },\n \"input_audio_format\": \"pcm16\",\n \"input_audio_transcription\": {\n \"model\": \"gpt-4o-transcribe\",\n \"language\": null,\n \"prompt\": \"\"\n },\n \"client_secret\": null\n}\n" } }, - "OpenAI.ListModelsResponse": { + "OpenAI.RealtimeTranscriptionSessionCreateResponseClientSecret": { "type": "object", "required": [ - "object", - "data" + "value", + "expires_at" ], "properties": { - "object": { - "type": "string", - "enum": [ - "list" - ] + "value": { + "type": "string" }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Model" - } + "expires_at": { + "type": "integer", + "format": "unixtime" } } }, - "OpenAI.ListPaginatedFineTuningJobsResponse": { + "OpenAI.RealtimeTranscriptionSessionCreateResponseTurnDetection": { "type": "object", - "required": [ - "data", - "has_more", - "object" - ], "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.FineTuningJob" - } + "type": { + "type": "string" }, - "has_more": { - "type": "boolean" + "threshold": { + "type": "number" }, - "object": { - "type": "string", - "enum": [ - "list" - ] + "prefix_padding_ms": { + "type": "integer" + }, + "silence_duration_ms": { + "type": "integer" } } }, - "OpenAI.ListVectorStoreFilesFilter": { + "OpenAI.RealtimeTruncation": { "anyOf": [ - { - "type": "string" - }, { "type": "string", "enum": [ - "in_progress", - "completed", - "failed", - "cancelled" + "auto", + "disabled" + ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "retention_ratio" + ], + "x-stainless-const": true + }, + "retention_ratio": { + "type": "number", + "minimum": 0, + "maximum": 1 + }, + "token_limits": { + "$ref": "#/components/schemas/OpenAI.TokenLimits" + } + }, + "required": [ + "type", + "retention_ratio" ] } - ] + ], + "description": "When the number of tokens in a conversation exceeds the model's input token limit, the conversation be truncated, meaning messages (starting from the oldest) will not be included in the model's context. A 32k context model with 4,096 max output tokens can only include 28,224 tokens in the context before truncation occurs.\n\nClients can configure truncation behavior to truncate with a lower max token limit, which is an effective way to control token usage and cost.\n\nTruncation will reduce the number of cached tokens on the next turn (busting the cache), since messages are dropped from the beginning of the context. However, clients can also configure truncation to retain messages up to a fraction of the maximum context size, which will reduce the need for future truncations and thus improve the cache rate.\n\nTruncation can be disabled entirely, which means the server will never truncate but would instead return an error if the conversation exceeds the model's input token limit.", + "title": "Realtime Truncation Controls" }, - "OpenAI.ListVectorStoreFilesResponse": { + "OpenAI.RealtimeTurnDetection": { "type": "object", "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" + "type" ], "properties": { - "object": { - "type": "string", - "enum": [ - "list" - ] - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileObject" - } - }, - "first_id": { - "type": "string" - }, - "last_id": { - "type": "string" - }, - "has_more": { - "type": "boolean" + "type": { + "$ref": "#/components/schemas/OpenAI.RealtimeTurnDetectionType" } + }, + "discriminator": { + "propertyName": "type" } }, - "OpenAI.ListVectorStoresResponse": { + "OpenAI.RealtimeTurnDetectionType": { + "type": "string" + }, + "OpenAI.Reasoning": { "type": "object", - "required": [ - "object", - "data", - "first_id", - "last_id", - "has_more" - ], "properties": { - "object": { + "effort": { + "$ref": "#/components/schemas/OpenAI.ReasoningEffort" + }, + "summary": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "concise", + "detailed" + ] + }, + { + "type": "null" + } + ] + }, + "generate_summary": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "concise", + "detailed" + ] + }, + { + "type": "null" + } + ] + } + }, + "description": "**gpt-5 and o-series models only**\n\nConfiguration options for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning).", + "title": "Reasoning" + }, + "OpenAI.ReasoningEffort": { + "anyOf": [ + { "type": "string", "enum": [ - "list" + "none", + "minimal", + "low", + "medium", + "high", + "xhigh" ] }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.VectorStoreObject" - } - }, - "first_id": { - "type": "string" - }, - "last_id": { - "type": "string" - }, - "has_more": { - "type": "boolean" + { + "type": "null" } - } + ], + "description": "Constrains effort on reasoning for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning).\nCurrently supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`. Reducing\nreasoning effort can result in faster responses and fewer tokens used\non reasoning in a response.\n\n- `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool calls are supported for all reasoning values in gpt-5.1.\n- All models before `gpt-5.1` default to `medium` reasoning effort, and do not support `none`.\n- The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.\n- `xhigh` is currently only supported for `gpt-5.1-codex-max`." }, - "OpenAI.LocalShellExecAction": { + "OpenAI.ReasoningTextContent": { "type": "object", "required": [ "type", - "command", - "env" + "text" ], "properties": { "type": { "type": "string", "enum": [ - "exec" + "reasoning_text" ], - "description": "The type of the local shell action. Always `exec`." - }, - "command": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The command to run." - }, - "timeout_ms": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "Optional timeout in milliseconds for the command." - }, - "working_directory": { - "type": "string", - "nullable": true, - "description": "Optional working directory to run the command in." + "description": "The type of the reasoning text. Always `reasoning_text`.", + "x-stainless-const": true, + "default": "reasoning_text" }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables to set for the command." - }, - "user": { + "text": { "type": "string", - "nullable": true, - "description": "Optional user to run the command as." + "description": "The reasoning text from the model." } }, - "description": "Execute a shell command on the server." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputContent" + } + ], + "description": "Reasoning text from the model.", + "title": "ReasoningTextContent" }, - "OpenAI.LocalShellTool": { + "OpenAI.RefusalContent": { "type": "object", "required": [ - "type" + "type", + "refusal" ], "properties": { "type": { "type": "string", "enum": [ - "local_shell" + "refusal" ], - "description": "The type of the local shell tool. Always `local_shell`." + "description": "The type of the refusal. Always `refusal`.", + "x-stainless-const": true, + "default": "refusal" + }, + "refusal": { + "type": "string", + "description": "The refusal explanation from the model." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/OpenAI.OutputContent" } ], - "description": "A tool that allows the model to execute shell commands in a local environment." + "description": "A refusal from the model.", + "title": "Refusal" }, - "OpenAI.LocalShellToolCallItemParam": { + "OpenAI.Response": { "type": "object", "required": [ - "type", - "call_id", - "action" + "id", + "object", + "created_at", + "error", + "incomplete_details", + "output", + "instructions", + "parallel_tool_calls", + "content_filters" ], "properties": { - "type": { + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "top_logprobs": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": 1 + }, + "user": { + "type": "string", + "description": "This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations.\n A stable identifier for your end-users.\n Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "safety_identifier": { + "type": "string", + "description": "A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies.\n The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers)." + }, + "prompt_cache_key": { + "type": "string", + "description": "Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching)." + }, + "prompt_cache_retention": { + "anyOf": [ + { + "type": "string", + "enum": [ + "in-memory", + "24h" + ] + }, + { + "type": "null" + } + ] + }, + "previous_response_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "model": { + "type": "string", + "description": "Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI\n offers a wide range of models with different capabilities, performance\n characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models)\n to browse and compare available models." + }, + "reasoning": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Reasoning" + }, + { + "type": "null" + } + ] + }, + "background": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "max_output_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "max_tool_calls": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "text": { + "$ref": "#/components/schemas/OpenAI.ResponseTextParam" + }, + "tools": { + "$ref": "#/components/schemas/OpenAI.ToolsArray" + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + }, + "prompt": { + "$ref": "#/components/schemas/OpenAI.Prompt" + }, + "truncation": { + "anyOf": [ + { + "type": "string", + "enum": [ + "auto", + "disabled" + ] + }, + { + "type": "null" + } + ], + "default": "disabled" + }, + "id": { + "type": "string", + "description": "Unique identifier for this Response." + }, + "object": { "type": "string", "enum": [ - "local_shell_call" + "response" + ], + "description": "The object type of this resource - always set to `response`.", + "x-stainless-const": true + }, + "status": { + "type": "string", + "enum": [ + "completed", + "failed", + "in_progress", + "cancelled", + "queued", + "incomplete" + ], + "description": "The status of the response generation. One of `completed`, `failed`,\n `in_progress`, `cancelled`, `queued`, or `incomplete`." + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "Unix timestamp (in seconds) of when this Response was created." + }, + "error": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseError" + }, + { + "type": "null" + } + ] + }, + "incomplete_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseIncompleteDetails" + }, + { + "type": "null" + } + ] + }, + "output": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.OutputItem" + }, + "description": "An array of content items generated by the model.\n\n - The length and order of items in the `output` array is dependent\n on the model's response.\n - Rather than accessing the first item in the `output` array and\n assuming it's an `assistant` message with the content generated by\n the model, you might consider using the `output_text` property where\n supported in SDKs." + }, + "instructions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.InputItem" + } + }, + { + "type": "null" + } ] }, - "call_id": { - "type": "string", - "description": "The unique ID of the local shell tool call generated by the model." + "output_text": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "x-stainless-skip": true + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.ResponseUsage" }, - "action": { - "$ref": "#/components/schemas/OpenAI.LocalShellExecAction" + "parallel_tool_calls": { + "type": "boolean", + "description": "Whether to allow the model to run tool calls in parallel.", + "default": true + }, + "conversation": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Conversation" + }, + { + "type": "null" + } + ] + }, + "content_filters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AzureContentFilterForResponsesAPI" + }, + "description": "The content filter results from RAI." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } - ], - "description": "A tool call to run a command on the local shell.\n" + "title": "The response object" }, - "OpenAI.LocalShellToolCallItemResource": { + "OpenAI.ResponseAudioDeltaEvent": { "type": "object", "required": [ "type", - "status", - "call_id", - "action" + "sequence_number", + "delta" ], "properties": { "type": { "type": "string", "enum": [ - "local_shell_call" - ] + "response.audio.delta" + ], + "description": "The type of the event. Always `response.audio.delta`.", + "x-stainless-const": true }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete" - ] + "sequence_number": { + "type": "integer", + "description": "A sequence number for this chunk of the stream response." }, - "call_id": { + "delta": { "type": "string", - "description": "The unique ID of the local shell tool call generated by the model." - }, - "action": { - "$ref": "#/components/schemas/OpenAI.LocalShellExecAction" + "description": "A chunk of Base64 encoded response audio bytes." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A tool call to run a command on the local shell.\n" + "description": "Emitted when there is a partial audio response.", + "x-oaiMeta": { + "name": "response.audio.delta", + "group": "responses", + "example": "{\n \"type\": \"response.audio.delta\",\n \"response_id\": \"resp_123\",\n \"delta\": \"base64encoded...\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.LocalShellToolCallOutputItemParam": { + "OpenAI.ResponseAudioDoneEvent": { "type": "object", "required": [ "type", - "output" + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "local_shell_call_output" - ] + "response.audio.done" + ], + "description": "The type of the event. Always `response.audio.done`.", + "x-stainless-const": true }, - "output": { - "type": "string", - "description": "A JSON string of the output of the local shell tool call." + "sequence_number": { + "type": "integer", + "description": "The sequence number of the delta." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "The output of a local shell tool call.\n" + "description": "Emitted when the audio response is complete.", + "x-oaiMeta": { + "name": "response.audio.done", + "group": "responses", + "example": "{\n \"type\": \"response.audio.done\",\n \"response_id\": \"resp-123\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.LocalShellToolCallOutputItemResource": { + "OpenAI.ResponseAudioTranscriptDeltaEvent": { "type": "object", "required": [ "type", - "status", - "output" + "delta", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "local_shell_call_output" - ] + "response.audio.transcript.delta" + ], + "description": "The type of the event. Always `response.audio.transcript.delta`.", + "x-stainless-const": true }, - "status": { + "delta": { "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete" - ] + "description": "The partial transcript of the audio response." }, - "output": { - "type": "string", - "description": "A JSON string of the output of the local shell tool call." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "The output of a local shell tool call.\n" - }, - "OpenAI.Location": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.LocationType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "approximate": "#/components/schemas/OpenAI.ApproximateLocation" - } + "description": "Emitted when there is a partial transcript of audio.", + "x-oaiMeta": { + "name": "response.audio.transcript.delta", + "group": "responses", + "example": "{\n \"type\": \"response.audio.transcript.delta\",\n \"response_id\": \"resp_123\",\n \"delta\": \" ... partial transcript ... \",\n \"sequence_number\": 1\n}\n" } }, - "OpenAI.LocationType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string", - "enum": [ - "approximate" - ] - } - ] - }, - "OpenAI.LogProb": { - "type": "object", - "required": [ - "token", - "logprob", - "bytes", - "top_logprobs" - ], - "properties": { - "token": { - "type": "string" - }, - "logprob": { - "type": "number", - "format": "float" - }, - "bytes": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - } - }, - "top_logprobs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.TopLogProb" - } - } - }, - "description": "The log probability of a token." - }, - "OpenAI.MCPApprovalRequestItemParam": { + "OpenAI.ResponseAudioTranscriptDoneEvent": { "type": "object", "required": [ "type", - "server_label", - "name", - "arguments" + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_approval_request" - ] - }, - "server_label": { - "type": "string", - "description": "The label of the MCP server making the request." - }, - "name": { - "type": "string", - "description": "The name of the tool to run." + "response.audio.transcript.done" + ], + "description": "The type of the event. Always `response.audio.transcript.done`.", + "x-stainless-const": true }, - "arguments": { - "type": "string", - "description": "A JSON string of arguments for the tool." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A request for human approval of a tool invocation.\n" + "description": "Emitted when the full audio transcript is completed.", + "x-oaiMeta": { + "name": "response.audio.transcript.done", + "group": "responses", + "example": "{\n \"type\": \"response.audio.transcript.done\",\n \"response_id\": \"resp_123\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPApprovalRequestItemResource": { + "OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent": { "type": "object", "required": [ "type", - "server_label", - "name", - "arguments" + "output_index", + "item_id", + "delta", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_approval_request" - ] + "response.code_interpreter_call_code.delta" + ], + "description": "The type of the event. Always `response.code_interpreter_call_code.delta`.", + "x-stainless-const": true }, - "server_label": { - "type": "string", - "description": "The label of the MCP server making the request." + "output_index": { + "type": "integer", + "description": "The index of the output item in the response for which the code is being streamed." }, - "name": { + "item_id": { "type": "string", - "description": "The name of the tool to run." + "description": "The unique identifier of the code interpreter tool call item." }, - "arguments": { + "delta": { "type": "string", - "description": "A JSON string of arguments for the tool." + "description": "The partial code snippet being streamed by the code interpreter." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event, used to order streaming events." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A request for human approval of a tool invocation.\n" + "description": "Emitted when a partial code snippet is streamed by the code interpreter.", + "x-oaiMeta": { + "name": "response.code_interpreter_call_code.delta", + "group": "responses", + "example": "{\n \"type\": \"response.code_interpreter_call_code.delta\",\n \"output_index\": 0,\n \"item_id\": \"ci_12345\",\n \"delta\": \"print('Hello, world')\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPApprovalResponseItemParam": { + "OpenAI.ResponseCodeInterpreterCallCodeDoneEvent": { "type": "object", "required": [ "type", - "approval_request_id", - "approve" + "output_index", + "item_id", + "code", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_approval_response" - ] + "response.code_interpreter_call_code.done" + ], + "description": "The type of the event. Always `response.code_interpreter_call_code.done`.", + "x-stainless-const": true }, - "approval_request_id": { - "type": "string", - "description": "The ID of the approval request being answered." + "output_index": { + "type": "integer", + "description": "The index of the output item in the response for which the code is finalized." }, - "approve": { - "type": "boolean", - "description": "Whether the request was approved." + "item_id": { + "type": "string", + "description": "The unique identifier of the code interpreter tool call item." }, - "reason": { + "code": { "type": "string", - "nullable": true, - "description": "Optional reason for the decision." + "description": "The final code snippet output by the code interpreter." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event, used to order streaming events." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A response to an MCP approval request.\n" + "description": "Emitted when the code snippet is finalized by the code interpreter.", + "x-oaiMeta": { + "name": "response.code_interpreter_call_code.done", + "group": "responses", + "example": "{\n \"type\": \"response.code_interpreter_call_code.done\",\n \"output_index\": 3,\n \"item_id\": \"ci_12345\",\n \"code\": \"print('done')\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPApprovalResponseItemResource": { + "OpenAI.ResponseCodeInterpreterCallCompletedEvent": { "type": "object", "required": [ "type", - "approval_request_id", - "approve" + "output_index", + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_approval_response" - ] - }, - "approval_request_id": { - "type": "string", - "description": "The ID of the approval request being answered." + "response.code_interpreter_call.completed" + ], + "description": "The type of the event. Always `response.code_interpreter_call.completed`.", + "x-stainless-const": true }, - "approve": { - "type": "boolean", - "description": "Whether the request was approved." + "output_index": { + "type": "integer", + "description": "The index of the output item in the response for which the code interpreter call is completed." }, - "reason": { + "item_id": { "type": "string", - "nullable": true, - "description": "Optional reason for the decision." + "description": "The unique identifier of the code interpreter tool call item." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event, used to order streaming events." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A response to an MCP approval request.\n" + "description": "Emitted when the code interpreter call is completed.", + "x-oaiMeta": { + "name": "response.code_interpreter_call.completed", + "group": "responses", + "example": "{\n \"type\": \"response.code_interpreter_call.completed\",\n \"output_index\": 5,\n \"item_id\": \"ci_12345\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPCallItemParam": { + "OpenAI.ResponseCodeInterpreterCallInProgressEvent": { "type": "object", "required": [ "type", - "server_label", - "name", - "arguments" + "output_index", + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_call" - ] - }, - "server_label": { - "type": "string", - "description": "The label of the MCP server running the tool." - }, - "name": { - "type": "string", - "description": "The name of the tool that was run." + "response.code_interpreter_call.in_progress" + ], + "description": "The type of the event. Always `response.code_interpreter_call.in_progress`.", + "x-stainless-const": true }, - "arguments": { - "type": "string", - "description": "A JSON string of the arguments passed to the tool." + "output_index": { + "type": "integer", + "description": "The index of the output item in the response for which the code interpreter call is in progress." }, - "output": { + "item_id": { "type": "string", - "nullable": true, - "description": "The output from the tool call." + "description": "The unique identifier of the code interpreter tool call item." }, - "error": { - "type": "string", - "nullable": true, - "description": "The error from the tool call, if any." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event, used to order streaming events." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "An invocation of a tool on an MCP server.\n" + "description": "Emitted when a code interpreter call is in progress.", + "x-oaiMeta": { + "name": "response.code_interpreter_call.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.code_interpreter_call.in_progress\",\n \"output_index\": 0,\n \"item_id\": \"ci_12345\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPCallItemResource": { + "OpenAI.ResponseCodeInterpreterCallInterpretingEvent": { "type": "object", "required": [ "type", - "server_label", - "name", - "arguments" + "output_index", + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_call" - ] - }, - "server_label": { - "type": "string", - "description": "The label of the MCP server running the tool." - }, - "name": { - "type": "string", - "description": "The name of the tool that was run." + "response.code_interpreter_call.interpreting" + ], + "description": "The type of the event. Always `response.code_interpreter_call.interpreting`.", + "x-stainless-const": true }, - "arguments": { - "type": "string", - "description": "A JSON string of the arguments passed to the tool." + "output_index": { + "type": "integer", + "description": "The index of the output item in the response for which the code interpreter is interpreting code." }, - "output": { + "item_id": { "type": "string", - "nullable": true, - "description": "The output from the tool call." + "description": "The unique identifier of the code interpreter tool call item." }, - "error": { - "type": "string", - "nullable": true, - "description": "The error from the tool call, if any." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event, used to order streaming events." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "An invocation of a tool on an MCP server.\n" + "description": "Emitted when the code interpreter is actively interpreting the code snippet.", + "x-oaiMeta": { + "name": "response.code_interpreter_call.interpreting", + "group": "responses", + "example": "{\n \"type\": \"response.code_interpreter_call.interpreting\",\n \"output_index\": 4,\n \"item_id\": \"ci_12345\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPListToolsItemParam": { + "OpenAI.ResponseCompletedEvent": { "type": "object", "required": [ "type", - "server_label", - "tools" + "response", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_list_tools" - ] - }, - "server_label": { - "type": "string", - "description": "The label of the MCP server." + "response.completed" + ], + "description": "The type of the event. Always `response.completed`.", + "x-stainless-const": true }, - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.MCPListToolsTool" - }, - "description": "The tools available on the server." + "response": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Response" + } + ], + "description": "Properties of the completed response." }, - "error": { - "type": "string", - "nullable": true, - "description": "Error message if the server could not list tools." + "sequence_number": { + "type": "integer", + "description": "The sequence number for this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A list of tools available on an MCP server.\n" + "description": "Emitted when the model response is complete.", + "x-oaiMeta": { + "name": "response.completed", + "group": "responses", + "example": "{\n \"type\": \"response.completed\",\n \"response\": {\n \"id\": \"resp_123\",\n \"object\": \"response\",\n \"created_at\": 1740855869,\n \"status\": \"completed\",\n \"error\": null,\n \"incomplete_details\": null,\n \"input\": [],\n \"instructions\": null,\n \"max_output_tokens\": null,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \"output\": [\n {\n \"id\": \"msg_123\",\n \"type\": \"message\",\n \"role\": \"assistant\",\n \"content\": [\n {\n \"type\": \"output_text\",\n \"text\": \"In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.\",\n \"annotations\": []\n }\n ]\n }\n ],\n \"previous_response_id\": null,\n \"reasoning_effort\": null,\n \"store\": false,\n \"temperature\": 1,\n \"text\": {\n \"format\": {\n \"type\": \"text\"\n }\n },\n \"tool_choice\": \"auto\",\n \"tools\": [],\n \"top_p\": 1,\n \"truncation\": \"disabled\",\n \"usage\": {\n \"input_tokens\": 0,\n \"output_tokens\": 0,\n \"output_tokens_details\": {\n \"reasoning_tokens\": 0\n },\n \"total_tokens\": 0\n },\n \"user\": null,\n \"metadata\": {}\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPListToolsItemResource": { + "OpenAI.ResponseContentPartAddedEvent": { "type": "object", "required": [ "type", - "server_label", - "tools" + "item_id", + "output_index", + "content_index", + "part", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp_list_tools" - ] + "response.content_part.added" + ], + "description": "The type of the event. Always `response.content_part.added`.", + "x-stainless-const": true }, - "server_label": { + "item_id": { "type": "string", - "description": "The label of the MCP server." + "description": "The ID of the output item that the content part was added to." }, - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.MCPListToolsTool" - }, - "description": "The tools available on the server." + "output_index": { + "type": "integer", + "description": "The index of the output item that the content part was added to." }, - "error": { - "type": "string", - "nullable": true, - "description": "Error message if the server could not list tools." + "content_index": { + "type": "integer", + "description": "The index of the content part that was added." + }, + "part": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputContent" + } + ], + "description": "The content part that was added." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A list of tools available on an MCP server.\n" + "description": "Emitted when a new content part is added.", + "x-oaiMeta": { + "name": "response.content_part.added", + "group": "responses", + "example": "{\n \"type\": \"response.content_part.added\",\n \"item_id\": \"msg_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"part\": {\n \"type\": \"output_text\",\n \"text\": \"\",\n \"annotations\": []\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.MCPListToolsTool": { + "OpenAI.ResponseContentPartDoneEvent": { "type": "object", "required": [ - "name", - "input_schema" + "type", + "item_id", + "output_index", + "content_index", + "sequence_number", + "part" ], "properties": { - "name": { + "type": { "type": "string", - "description": "The name of the tool." + "enum": [ + "response.content_part.done" + ], + "description": "The type of the event. Always `response.content_part.done`.", + "x-stainless-const": true }, - "description": { + "item_id": { "type": "string", - "nullable": true, - "description": "The description of the tool." + "description": "The ID of the output item that the content part was added to." }, - "input_schema": { - "description": "The JSON schema describing the tool's input." + "output_index": { + "type": "integer", + "description": "The index of the output item that the content part was added to." }, - "annotations": { - "nullable": true, - "description": "Additional annotations about the tool." + "content_index": { + "type": "integer", + "description": "The index of the content part that is done." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "part": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputContent" + } + ], + "description": "The content part that is done." } }, - "description": "A tool available on an MCP server." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + ], + "description": "Emitted when a content part is done.", + "x-oaiMeta": { + "name": "response.content_part.done", + "group": "responses", + "example": "{\n \"type\": \"response.content_part.done\",\n \"item_id\": \"msg_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"sequence_number\": 1,\n \"part\": {\n \"type\": \"output_text\",\n \"text\": \"In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.\",\n \"annotations\": []\n }\n}\n" + } }, - "OpenAI.MCPTool": { + "OpenAI.ResponseCreatedEvent": { "type": "object", "required": [ "type", - "server_label", - "server_url" + "response", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "mcp" + "response.created" ], - "description": "The type of the MCP tool. Always `mcp`." + "description": "The type of the event. Always `response.created`.", + "x-stainless-const": true }, - "server_label": { - "type": "string", - "description": "A label for this MCP server, used to identify it in tool calls." - }, - "server_url": { - "type": "string", - "description": "The URL for the MCP server." - }, - "headers": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Optional HTTP headers to send to the MCP server. Use for authentication\nor other purposes." - }, - "allowed_tools": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string" - } - }, + "response": { + "allOf": [ { - "type": "object", - "properties": { - "tool_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of allowed tool names." - } - } + "$ref": "#/components/schemas/OpenAI.Response" } ], - "nullable": true, - "description": "List of allowed tool names or a filter object." + "description": "The response that was created." }, - "require_approval": { - "anyOf": [ - { - "type": "object", - "properties": { - "always": { - "type": "object", - "properties": { - "tool_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of tools that require approval." - } - }, - "description": "A list of tools that always require approval." - }, - "never": { - "type": "object", - "properties": { - "tool_names": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of tools that do not require approval." - } - }, - "description": "A list of tools that never require approval." - } - } - }, - { - "type": "string", - "enum": [ - "always", - "never" - ] - } - ], - "nullable": true, - "description": "Specify which of the MCP server's tools require approval.", - "default": "always" + "sequence_number": { + "type": "integer", + "description": "The sequence number for this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.Tool" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Give the model access to additional tools via remote Model Context Protocol\n(MCP) servers. [Learn more about MCP](/docs/guides/tools-remote-mcp)." - }, - "OpenAI.MetadataPropertyForRequest": { - "type": "object", - "properties": { - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - } - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters." + "description": "An event that is emitted when a response is created.", + "x-oaiMeta": { + "name": "response.created", + "group": "responses", + "example": "{\n \"type\": \"response.created\",\n \"response\": {\n \"id\": \"resp_67ccfcdd16748190a91872c75d38539e09e4d4aac714747c\",\n \"object\": \"response\",\n \"created_at\": 1741487325,\n \"status\": \"in_progress\",\n \"error\": null,\n \"incomplete_details\": null,\n \"instructions\": null,\n \"max_output_tokens\": null,\n \"model\": \"gpt-4o-2024-08-06\",\n \"output\": [],\n \"parallel_tool_calls\": true,\n \"previous_response_id\": null,\n \"reasoning\": {\n \"effort\": null,\n \"summary\": null\n },\n \"store\": true,\n \"temperature\": 1,\n \"text\": {\n \"format\": {\n \"type\": \"text\"\n }\n },\n \"tool_choice\": \"auto\",\n \"tools\": [],\n \"top_p\": 1,\n \"truncation\": \"disabled\",\n \"usage\": null,\n \"user\": null,\n \"metadata\": {}\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.Model": { + "OpenAI.ResponseCustomToolCallInputDeltaEvent": { "type": "object", "required": [ - "id", - "created", - "object", - "owned_by" + "type", + "sequence_number", + "output_index", + "item_id", + "delta" ], "properties": { - "id": { + "type": { "type": "string", - "description": "The model identifier, which can be referenced in the API endpoints." + "enum": [ + "response.custom_tool_call_input.delta" + ], + "description": "The event type identifier.", + "x-stainless-const": true }, - "created": { + "sequence_number": { "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) when the model was created." + "description": "The sequence number of this event." }, - "object": { + "output_index": { + "type": "integer", + "description": "The index of the output this delta applies to." + }, + "item_id": { "type": "string", - "enum": [ - "model" - ], - "description": "The object type, which is always \"model\"." + "description": "Unique identifier for the API item associated with this event." }, - "owned_by": { + "delta": { "type": "string", - "description": "The organization that owns the model." + "description": "The incremental input data (delta) for the custom tool call." } }, - "description": "Describes an OpenAI model offering that can be used with the API." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + ], + "description": "Event representing a delta (partial update) to the input of a custom tool call.", + "title": "ResponseCustomToolCallInputDelta", + "x-oaiMeta": { + "name": "response.custom_tool_call_input.delta", + "group": "responses", + "example": "{\n \"type\": \"response.custom_tool_call_input.delta\",\n \"output_index\": 0,\n \"item_id\": \"ctc_1234567890abcdef\",\n \"delta\": \"partial input text\"\n}\n" + } }, - "OpenAI.OtherChunkingStrategyResponseParam": { + "OpenAI.ResponseCustomToolCallInputDoneEvent": { "type": "object", "required": [ - "type" + "type", + "sequence_number", + "output_index", + "item_id", + "input" ], "properties": { "type": { "type": "string", "enum": [ - "other" + "response.custom_tool_call_input.done" ], - "description": "Always `other`." + "description": "The event type identifier.", + "x-stainless-const": true + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "output_index": { + "type": "integer", + "description": "The index of the output this event applies to." + }, + "item_id": { + "type": "string", + "description": "Unique identifier for the API item associated with this event." + }, + "input": { + "type": "string", + "description": "The complete input data for the custom tool call." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponseParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the `chunking_strategy` concept was introduced in the API." + "description": "Event indicating that input for a custom tool call is complete.", + "title": "ResponseCustomToolCallInputDone", + "x-oaiMeta": { + "name": "response.custom_tool_call_input.done", + "group": "responses", + "example": "{\n \"type\": \"response.custom_tool_call_input.done\",\n \"output_index\": 0,\n \"item_id\": \"ctc_1234567890abcdef\",\n \"input\": \"final complete input text\"\n}\n" + } }, - "OpenAI.ParallelToolCalls": { - "type": "boolean", - "description": "Whether to enable [parallel function calling](/docs/guides/function-calling#configuring-parallel-function-calling) during tool use." + "OpenAI.ResponseError": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "$ref": "#/components/schemas/OpenAI.ResponseErrorCode" + }, + "message": { + "type": "string", + "description": "A human-readable description of the error." + } + }, + "description": "An error object returned when the model fails to generate a Response." }, - "OpenAI.Prompt": { + "OpenAI.ResponseErrorCode": { + "type": "string", + "enum": [ + "server_error", + "rate_limit_exceeded", + "invalid_prompt", + "vector_store_timeout", + "invalid_image", + "invalid_image_format", + "invalid_base64_image", + "invalid_image_url", + "image_too_large", + "image_too_small", + "image_parse_error", + "image_content_policy_violation", + "invalid_image_mode", + "image_file_too_large", + "unsupported_image_media_type", + "empty_image_file", + "failed_to_download_image", + "image_file_not_found" + ], + "description": "The error code for the response." + }, + "OpenAI.ResponseErrorEvent": { "type": "object", "required": [ - "id" + "type", + "code", + "message", + "param", + "sequence_number" ], "properties": { - "id": { + "type": { "type": "string", - "description": "The unique identifier of the prompt template to use." + "enum": [ + "error" + ], + "description": "The type of the event. Always `error`.", + "x-stainless-const": true }, - "version": { + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "message": { "type": "string", - "nullable": true, - "description": "Optional version of the prompt template." + "description": "The error message." }, - "variables": { - "type": "object", - "allOf": [ + "param": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponsePromptVariables" + "type": "string" + }, + { + "type": "null" } - ], - "nullable": true + ] + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, - "description": "Reference to a prompt template and its variables.\n[Learn more](/docs/guides/text?api-mode=responses#reusable-prompts)." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + ], + "description": "Emitted when an error occurs.", + "x-oaiMeta": { + "name": "error", + "group": "responses", + "example": "{\n \"type\": \"error\",\n \"code\": \"ERR_SOMETHING\",\n \"message\": \"Something went wrong\",\n \"param\": null,\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.RankingOptions": { + "OpenAI.ResponseFailedEvent": { "type": "object", + "required": [ + "type", + "sequence_number", + "response" + ], "properties": { - "ranker": { + "type": { "type": "string", "enum": [ - "auto", - "default-2024-11-15" + "response.failed" ], - "description": "The ranker to use for the file search." + "description": "The type of the event. Always `response.failed`.", + "x-stainless-const": true }, - "score_threshold": { - "type": "number", - "format": "float", - "description": "The score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will attempt to return only the most relevant results, but may return fewer results." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "response": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Response" + } + ], + "description": "The response that failed." } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + ], + "description": "An event that is emitted when a response fails.", + "x-oaiMeta": { + "name": "response.failed", + "group": "responses", + "example": "{\n \"type\": \"response.failed\",\n \"response\": {\n \"id\": \"resp_123\",\n \"object\": \"response\",\n \"created_at\": 1740855869,\n \"status\": \"failed\",\n \"error\": {\n \"code\": \"server_error\",\n \"message\": \"The model failed to generate a response.\"\n },\n \"incomplete_details\": null,\n \"instructions\": null,\n \"max_output_tokens\": null,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \"output\": [],\n \"previous_response_id\": null,\n \"reasoning_effort\": null,\n \"store\": false,\n \"temperature\": 1,\n \"text\": {\n \"format\": {\n \"type\": \"text\"\n }\n },\n \"tool_choice\": \"auto\",\n \"tools\": [],\n \"top_p\": 1,\n \"truncation\": \"disabled\",\n \"usage\": null,\n \"user\": null,\n \"metadata\": {}\n }\n}\n" } }, - "OpenAI.Reasoning": { + "OpenAI.ResponseFileSearchCallCompletedEvent": { "type": "object", + "required": [ + "type", + "output_index", + "item_id", + "sequence_number" + ], "properties": { - "effort": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ReasoningEffort" - } - ], - "nullable": true, - "default": "medium" - }, - "summary": { + "type": { "type": "string", "enum": [ - "auto", - "concise", - "detailed" + "response.file_search_call.completed" ], - "nullable": true, - "description": "A summary of the reasoning performed by the model. This can be\nuseful for debugging and understanding the model's reasoning process.\nOne of `auto`, `concise`, or `detailed`." + "description": "The type of the event. Always `response.file_search_call.completed`.", + "x-stainless-const": true }, - "generate_summary": { + "output_index": { + "type": "integer", + "description": "The index of the output item that the file search call is initiated." + }, + "item_id": { "type": "string", - "enum": [ - "auto", - "concise", - "detailed" - ], - "nullable": true, - "description": "**Deprecated:** use `summary` instead.\n\nA summary of the reasoning performed by the model. This can be\nuseful for debugging and understanding the model's reasoning process.\nOne of `auto`, `concise`, or `detailed`.", - "deprecated": true, - "default": null + "description": "The ID of the output item that the file search call is initiated." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, - "description": "**o-series models only**\n\nConfiguration options for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning)." - }, - "OpenAI.ReasoningEffort": { - "type": "string", - "enum": [ - "low", - "medium", - "high" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } ], - "description": "**o-series models only**\n\nConstrains effort on reasoning for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning).\nCurrently supported values are `low`, `medium`, and `high`. Reducing\nreasoning effort can result in faster responses and fewer tokens used\non reasoning in a response." + "description": "Emitted when a file search call is completed (results found).", + "x-oaiMeta": { + "name": "response.file_search_call.completed", + "group": "responses", + "example": "{\n \"type\": \"response.file_search_call.completed\",\n \"output_index\": 0,\n \"item_id\": \"fs_123\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ReasoningItemParam": { + "OpenAI.ResponseFileSearchCallInProgressEvent": { "type": "object", "required": [ "type", - "summary" + "output_index", + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "reasoning" - ] + "response.file_search_call.in_progress" + ], + "description": "The type of the event. Always `response.file_search_call.in_progress`.", + "x-stainless-const": true }, - "encrypted_content": { + "output_index": { + "type": "integer", + "description": "The index of the output item that the file search call is initiated." + }, + "item_id": { "type": "string", - "nullable": true, - "description": "The encrypted content of the reasoning item - populated when a response is\ngenerated with `reasoning.encrypted_content` in the `include` parameter." + "description": "The ID of the output item that the file search call is initiated." }, - "summary": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ReasoningItemSummaryPart" - }, - "description": "Reasoning text contents." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API\nfor subsequent turns of a conversation if you are manually\n[managing context](/docs/guides/conversation-state).\n" + "description": "Emitted when a file search call is initiated.", + "x-oaiMeta": { + "name": "response.file_search_call.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.file_search_call.in_progress\",\n \"output_index\": 0,\n \"item_id\": \"fs_123\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ReasoningItemResource": { + "OpenAI.ResponseFileSearchCallSearchingEvent": { "type": "object", "required": [ "type", - "summary" + "output_index", + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "reasoning" - ] + "response.file_search_call.searching" + ], + "description": "The type of the event. Always `response.file_search_call.searching`.", + "x-stainless-const": true }, - "encrypted_content": { + "output_index": { + "type": "integer", + "description": "The index of the output item that the file search call is searching." + }, + "item_id": { "type": "string", - "nullable": true, - "description": "The encrypted content of the reasoning item - populated when a response is\ngenerated with `reasoning.encrypted_content` in the `include` parameter." + "description": "The ID of the output item that the file search call is initiated." }, - "summary": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ReasoningItemSummaryPart" - }, - "description": "Reasoning text contents." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "A description of the chain of thought used by a reasoning model while generating\na response. Be sure to include these items in your `input` to the Responses API\nfor subsequent turns of a conversation if you are manually\n[managing context](/docs/guides/conversation-state).\n" + "description": "Emitted when a file search is currently searching.", + "x-oaiMeta": { + "name": "response.file_search_call.searching", + "group": "responses", + "example": "{\n \"type\": \"response.file_search_call.searching\",\n \"output_index\": 0,\n \"item_id\": \"fs_123\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ReasoningItemSummaryPart": { + "OpenAI.ResponseFormatJsonObject": { "type": "object", "required": [ "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.ReasoningItemSummaryPartType" + "type": "string", + "enum": [ + "json_object" + ], + "description": "The type of response format being defined. Always `json_object`.", + "x-stainless-const": true } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "summary_text": "#/components/schemas/OpenAI.ReasoningItemSummaryTextPart" - } - } - }, - "OpenAI.ReasoningItemSummaryPartType": { - "anyOf": [ - { - "type": "string" - }, + "allOf": [ { - "type": "string", - "enum": [ - "summary_text" - ] + "$ref": "#/components/schemas/OpenAI.TextResponseFormatConfiguration" } - ] + ], + "description": "JSON object response format. An older method of generating JSON responses.\nUsing `json_schema` is recommended for models that support it. Note that the\nmodel will not generate JSON without a system or user message instructing it\nto do so.", + "title": "JSON object" }, - "OpenAI.ReasoningItemSummaryTextPart": { + "OpenAI.ResponseFormatJsonSchema": { "type": "object", "required": [ "type", - "text" + "json_schema" ], "properties": { "type": { "type": "string", "enum": [ - "summary_text" - ] + "json_schema" + ], + "description": "The type of response format being defined. Always `json_schema`.", + "x-stainless-const": true }, - "text": { - "type": "string" + "json_schema": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchemaJsonSchema" + } + ], + "description": "Structured Outputs configuration options, including a JSON Schema.", + "title": "JSON schema" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ReasoningItemSummaryPart" - } - ] + "description": "JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs).", + "title": "JSON schema" }, - "OpenAI.Response": { + "OpenAI.ResponseFormatJsonSchemaJsonSchema": { "type": "object", "required": [ - "metadata", - "temperature", - "top_p", - "user", - "id", - "object", - "created_at", - "error", - "incomplete_details", - "output", - "instructions", - "parallel_tool_calls" + "name" ], "properties": { - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" - }, - "temperature": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 2, - "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.\nWe generally recommend altering this or `top_p` but not both." - }, - "top_p": { - "type": "number", - "format": "float", - "nullable": true, - "minimum": 0, - "maximum": 1, - "description": "An alternative to sampling with temperature, called nucleus sampling,\nwhere the model considers the results of the tokens with top_p probability\nmass. So 0.1 means only the tokens comprising the top 10% probability mass\nare considered.\n\nWe generally recommend altering this or `temperature` but not both." - }, - "user": { - "type": "string", - "nullable": true, - "description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids)." - }, - "top_logprobs": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability." - }, - "previous_response_id": { - "type": "string", - "nullable": true, - "description": "The unique ID of the previous response to the model. Use this to\ncreate multi-turn conversations. Learn more about\n[conversation state](/docs/guides/conversation-state)." - }, - "reasoning": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Reasoning" - } - ], - "nullable": true - }, - "background": { - "type": "boolean", - "nullable": true, - "description": "Whether to run the model response in the background.\n[Learn more](/docs/guides/background).", - "default": false - }, - "max_output_tokens": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "An upper bound for the number of tokens that can be generated for a response, including visible output tokens and [reasoning tokens](/docs/guides/reasoning)." - }, - "max_tool_calls": { - "type": "integer", - "format": "int32", - "nullable": true, - "description": "The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored." + "description": { + "type": "string" }, - "text": { - "type": "object", - "properties": { - "format": { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" - } - }, - "description": "Configuration options for a text response from the model. Can be plain\ntext or structured JSON data. Learn more:\n- [Text inputs and outputs](/docs/guides/text)\n- [Structured Outputs](/docs/guides/structured-outputs)" + "name": { + "type": "string" }, - "tools": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.Tool" - }, - "description": "An array of tools the model may call while generating a response. You\ncan specify which tool to use by setting the `tool_choice` parameter.\n\nThe two categories of tools you can provide the model are:\n\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\n model's capabilities, like [web search](/docs/guides/tools-web-search)\n or [file search](/docs/guides/tools-file-search). Learn more about\n [built-in tools](/docs/guides/tools).\n- **Function calls (custom tools)**: Functions that are defined by you,\n enabling the model to call your own code. Learn more about\n [function calling](/docs/guides/function-calling)." + "schema": { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema" }, - "tool_choice": { + "strict": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceOptions" + "type": "boolean" }, { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" - } - ], - "description": "How the model should select which tool (or tools) to use when generating\na response. See the `tools` parameter to see how to specify which tools\nthe model can call." - }, - "prompt": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Prompt" + "type": "null" } - ], - "nullable": true - }, - "truncation": { + ] + } + } + }, + "OpenAI.ResponseFormatJsonSchemaSchema": { + "type": "object", + "description": "The schema for the response format, described as a JSON Schema object.\nLearn how to build JSON schemas [here](https://json-schema.org/).", + "title": "JSON schema" + }, + "OpenAI.ResponseFormatText": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { "type": "string", "enum": [ - "auto", - "disabled" + "text" ], - "nullable": true, - "description": "The truncation strategy to use for the model response.\n- `auto`: If the context of this response and previous ones exceeds\n the model's context window size, the model will truncate the\n response to fit the context window by dropping input items in the\n middle of the conversation.\n- `disabled` (default): If a model response will exceed the context window\n size for a model, the request will fail with a 400 error.", - "default": "disabled" - }, - "id": { - "type": "string", - "description": "Unique identifier for this Response." - }, - "object": { + "description": "The type of response format being defined. Always `text`.", + "x-stainless-const": true + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.TextResponseFormatConfiguration" + } + ], + "description": "Default response format. Used to generate text responses.", + "title": "Text" + }, + "OpenAI.ResponseFunctionCallArgumentsDeltaEvent": { + "type": "object", + "required": [ + "type", + "item_id", + "output_index", + "sequence_number", + "delta" + ], + "properties": { + "type": { "type": "string", "enum": [ - "response" + "response.function_call_arguments.delta" ], - "description": "The object type of this resource - always set to `response`." + "description": "The type of the event. Always `response.function_call_arguments.delta`.", + "x-stainless-const": true }, - "status": { + "item_id": { "type": "string", - "enum": [ - "completed", - "failed", - "in_progress", - "cancelled", - "queued", - "incomplete" - ], - "description": "The status of the response generation. One of `completed`, `failed`,\n`in_progress`, `cancelled`, `queued`, or `incomplete`." + "description": "The ID of the output item that the function-call arguments delta is added to." }, - "created_at": { + "output_index": { "type": "integer", - "format": "unixtime", - "description": "Unix timestamp (in seconds) of when this Response was created." - }, - "error": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseError" - } - ], - "nullable": true - }, - "incomplete_details": { - "type": "object", - "properties": { - "reason": { - "type": "string", - "enum": [ - "max_output_tokens", - "content_filter" - ], - "description": "The reason why the response is incomplete." - } - }, - "nullable": true, - "description": "Details about why the response is incomplete." - }, - "output": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemResource" - }, - "description": "An array of content items generated by the model.\n\n- The length and order of items in the `output` array is dependent\n on the model's response.\n- Rather than accessing the first item in the `output` array and\n assuming it's an `assistant` message with the content generated by\n the model, you might consider using the `output_text` property where\n supported in SDKs." - }, - "instructions": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } - } - ], - "nullable": true, - "description": "A system (or developer) message inserted into the model's context.\n\nWhen using along with `previous_response_id`, the instructions from a previous\nresponse will not be carried over to the next response. This makes it simple\nto swap out system (or developer) messages in new responses." - }, - "output_text": { - "type": "string", - "nullable": true, - "description": "SDK-only convenience property that contains the aggregated text output\nfrom all `output_text` items in the `output` array, if any are present.\nSupported in the Python and JavaScript SDKs." + "description": "The index of the output item that the function-call arguments delta is added to." }, - "usage": { - "$ref": "#/components/schemas/OpenAI.ResponseUsage" + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." }, - "parallel_tool_calls": { - "type": "boolean", - "description": "Whether to allow the model to run tool calls in parallel.", - "default": true + "delta": { + "type": "string", + "description": "The function-call arguments delta that is added." } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + ], + "description": "Emitted when there is a partial function-call arguments delta.", + "x-oaiMeta": { + "name": "response.function_call_arguments.delta", + "group": "responses", + "example": "{\n \"type\": \"response.function_call_arguments.delta\",\n \"item_id\": \"item-abc\",\n \"output_index\": 0,\n \"delta\": \"{ \\\"arg\\\":\"\n \"sequence_number\": 1\n}\n" } }, - "OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent": { + "OpenAI.ResponseFunctionCallArgumentsDoneEvent": { "type": "object", "required": [ "type", - "output_index", "item_id", - "delta", - "obfuscation" + "name", + "output_index", + "sequence_number", + "arguments" ], "properties": { "type": { "type": "string", "enum": [ - "response.code_interpreter_call_code.delta" + "response.function_call_arguments.done" ], - "description": "The type of the event. Always `response.code_interpreter_call_code.delta`." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item in the response for which the code is being streamed." + "x-stainless-const": true }, "item_id": { "type": "string", - "description": "The unique identifier of the code interpreter tool call item." + "description": "The ID of the item." }, - "delta": { + "name": { "type": "string", - "description": "The partial code snippet being streamed by the code interpreter." + "description": "The name of the function that was called." + }, + "output_index": { + "type": "integer", + "description": "The index of the output item." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." }, - "obfuscation": { + "arguments": { "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." + "description": "The function-call arguments." } }, "allOf": [ @@ -17182,36 +29518,41 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a partial code snippet is streamed by the code interpreter." + "description": "Emitted when function-call arguments are finalized.", + "x-oaiMeta": { + "name": "response.function_call_arguments.done", + "group": "responses", + "example": "{\n \"type\": \"response.function_call_arguments.done\",\n \"item_id\": \"item-abc\",\n \"name\": \"get_weather\",\n \"output_index\": 1,\n \"arguments\": \"{ \\\"arg\\\": 123 }\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseCodeInterpreterCallCodeDoneEvent": { + "OpenAI.ResponseImageGenCallCompletedEvent": { "type": "object", "required": [ "type", "output_index", - "item_id", - "code" + "sequence_number", + "item_id" ], "properties": { "type": { "type": "string", "enum": [ - "response.code_interpreter_call_code.done" + "response.image_generation_call.completed" ], - "description": "The type of the event. Always `response.code_interpreter_call_code.done`." + "description": "The type of the event. Always 'response.image_generation_call.completed'.", + "x-stainless-const": true }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response for which the code is finalized." + "description": "The index of the output item in the response's output array." }, - "item_id": { - "type": "string", - "description": "The unique identifier of the code interpreter tool call item." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." }, - "code": { + "item_id": { "type": "string", - "description": "The final code snippet output by the code interpreter." + "description": "The unique identifier of the image generation item being processed." } }, "allOf": [ @@ -17219,31 +29560,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the code snippet is finalized by the code interpreter." + "description": "Emitted when an image generation tool call has completed and the final image is available.", + "title": "ResponseImageGenCallCompletedEvent", + "x-oaiMeta": { + "name": "response.image_generation_call.completed", + "group": "responses", + "example": "{\n \"type\": \"response.image_generation_call.completed\",\n \"output_index\": 0,\n \"item_id\": \"item-123\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseCodeInterpreterCallCompletedEvent": { + "OpenAI.ResponseImageGenCallGeneratingEvent": { "type": "object", "required": [ "type", "output_index", - "item_id" + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.code_interpreter_call.completed" + "response.image_generation_call.generating" ], - "description": "The type of the event. Always `response.code_interpreter_call.completed`." + "description": "The type of the event. Always 'response.image_generation_call.generating'.", + "x-stainless-const": true }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response for which the code interpreter call is completed." + "description": "The index of the output item in the response's output array." }, "item_id": { "type": "string", - "description": "The unique identifier of the code interpreter tool call item." + "description": "The unique identifier of the image generation item being processed." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of the image generation item being processed." } }, "allOf": [ @@ -17251,31 +29603,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the code interpreter call is completed." + "description": "Emitted when an image generation tool call is actively generating an image (intermediate state).", + "title": "ResponseImageGenCallGeneratingEvent", + "x-oaiMeta": { + "name": "response.image_generation_call.generating", + "group": "responses", + "example": "{\n \"type\": \"response.image_generation_call.generating\",\n \"output_index\": 0,\n \"item_id\": \"item-123\",\n \"sequence_number\": 0\n}\n" + } }, - "OpenAI.ResponseCodeInterpreterCallInProgressEvent": { + "OpenAI.ResponseImageGenCallInProgressEvent": { "type": "object", "required": [ "type", "output_index", - "item_id" + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.code_interpreter_call.in_progress" + "response.image_generation_call.in_progress" ], - "description": "The type of the event. Always `response.code_interpreter_call.in_progress`." + "description": "The type of the event. Always 'response.image_generation_call.in_progress'.", + "x-stainless-const": true }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response for which the code interpreter call is in progress." + "description": "The index of the output item in the response's output array." }, "item_id": { "type": "string", - "description": "The unique identifier of the code interpreter tool call item." + "description": "The unique identifier of the image generation item being processed." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of the image generation item being processed." } }, "allOf": [ @@ -17283,31 +29646,52 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a code interpreter call is in progress." + "description": "Emitted when an image generation tool call is in progress.", + "title": "ResponseImageGenCallInProgressEvent", + "x-oaiMeta": { + "name": "response.image_generation_call.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.image_generation_call.in_progress\",\n \"output_index\": 0,\n \"item_id\": \"item-123\",\n \"sequence_number\": 0\n}\n" + } }, - "OpenAI.ResponseCodeInterpreterCallInterpretingEvent": { + "OpenAI.ResponseImageGenCallPartialImageEvent": { "type": "object", "required": [ "type", "output_index", - "item_id" + "item_id", + "sequence_number", + "partial_image_index", + "partial_image_b64" ], "properties": { "type": { "type": "string", "enum": [ - "response.code_interpreter_call.interpreting" + "response.image_generation_call.partial_image" ], - "description": "The type of the event. Always `response.code_interpreter_call.interpreting`." + "description": "The type of the event. Always 'response.image_generation_call.partial_image'.", + "x-stainless-const": true }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response for which the code interpreter is interpreting code." + "description": "The index of the output item in the response's output array." }, "item_id": { "type": "string", - "description": "The unique identifier of the code interpreter tool call item." + "description": "The unique identifier of the image generation item being processed." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of the image generation item being processed." + }, + "partial_image_index": { + "type": "integer", + "description": "0-based index for the partial image (backend is 1-based, but this is 0-based for the user)." + }, + "partial_image_b64": { + "type": "string", + "description": "Base64-encoded partial image data, suitable for rendering as an image." } }, "allOf": [ @@ -17315,21 +29699,29 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the code interpreter is actively interpreting the code snippet." + "description": "Emitted when a partial image is available during image generation streaming.", + "title": "ResponseImageGenCallPartialImageEvent", + "x-oaiMeta": { + "name": "response.image_generation_call.partial_image", + "group": "responses", + "example": "{\n \"type\": \"response.image_generation_call.partial_image\",\n \"output_index\": 0,\n \"item_id\": \"item-123\",\n \"sequence_number\": 0,\n \"partial_image_index\": 0,\n \"partial_image_b64\": \"...\"\n}\n" + } }, - "OpenAI.ResponseCompletedEvent": { + "OpenAI.ResponseInProgressEvent": { "type": "object", "required": [ "type", - "response" + "response", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.completed" + "response.in_progress" ], - "description": "The type of the event. Always `response.completed`." + "description": "The type of the event. Always `response.in_progress`.", + "x-stainless-const": true }, "response": { "allOf": [ @@ -17337,7 +29729,11 @@ "$ref": "#/components/schemas/OpenAI.Response" } ], - "description": "Properties of the completed response." + "description": "The response that is in progress." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -17345,46 +29741,180 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the model response is complete." + "description": "Emitted when the response is in progress.", + "x-oaiMeta": { + "name": "response.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.in_progress\",\n \"response\": {\n \"id\": \"resp_67ccfcdd16748190a91872c75d38539e09e4d4aac714747c\",\n \"object\": \"response\",\n \"created_at\": 1741487325,\n \"status\": \"in_progress\",\n \"error\": null,\n \"incomplete_details\": null,\n \"instructions\": null,\n \"max_output_tokens\": null,\n \"model\": \"gpt-4o-2024-08-06\",\n \"output\": [],\n \"parallel_tool_calls\": true,\n \"previous_response_id\": null,\n \"reasoning\": {\n \"effort\": null,\n \"summary\": null\n },\n \"store\": true,\n \"temperature\": 1,\n \"text\": {\n \"format\": {\n \"type\": \"text\"\n }\n },\n \"tool_choice\": \"auto\",\n \"tools\": [],\n \"top_p\": 1,\n \"truncation\": \"disabled\",\n \"usage\": null,\n \"user\": null,\n \"metadata\": {}\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseContentPartAddedEvent": { + "OpenAI.ResponseIncompleteDetails": { + "type": "object", + "properties": { + "reason": { + "type": "string", + "enum": [ + "max_output_tokens", + "content_filter" + ] + } + } + }, + "OpenAI.ResponseIncompleteEvent": { "type": "object", "required": [ "type", - "item_id", - "output_index", - "content_index", - "part" + "response", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.content_part.added" + "response.incomplete" ], - "description": "The type of the event. Always `response.content_part.added`." + "description": "The type of the event. Always `response.incomplete`.", + "x-stainless-const": true }, - "item_id": { + "response": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Response" + } + ], + "description": "The response that was incomplete." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + ], + "description": "An event that is emitted when a response finishes as incomplete.", + "x-oaiMeta": { + "name": "response.incomplete", + "group": "responses", + "example": "{\n \"type\": \"response.incomplete\",\n \"response\": {\n \"id\": \"resp_123\",\n \"object\": \"response\",\n \"created_at\": 1740855869,\n \"status\": \"incomplete\",\n \"error\": null, \n \"incomplete_details\": {\n \"reason\": \"max_tokens\"\n },\n \"instructions\": null,\n \"max_output_tokens\": null,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \"output\": [],\n \"previous_response_id\": null,\n \"reasoning_effort\": null,\n \"store\": false,\n \"temperature\": 1,\n \"text\": {\n \"format\": {\n \"type\": \"text\"\n }\n },\n \"tool_choice\": \"auto\",\n \"tools\": [],\n \"top_p\": 1,\n \"truncation\": \"disabled\",\n \"usage\": null,\n \"user\": null,\n \"metadata\": {}\n },\n \"sequence_number\": 1\n}\n" + } + }, + "OpenAI.ResponseItemList": { + "type": "object", + "required": [ + "object", + "data", + "has_more", + "first_id", + "last_id" + ], + "properties": { + "object": { "type": "string", - "description": "The ID of the output item that the content part was added to." + "enum": [ + "list" + ], + "description": "The type of object returned, must be `list`.", + "x-stainless-const": true + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ItemResource" + }, + "description": "A list of items used to generate this response." + }, + "has_more": { + "type": "boolean", + "description": "Whether there are more items available." + }, + "first_id": { + "type": "string", + "description": "The ID of the first item in the list." + }, + "last_id": { + "type": "string", + "description": "The ID of the last item in the list." + } + }, + "description": "A list of Response items.", + "x-oaiMeta": { + "name": "The input item list", + "group": "responses", + "example": "{\n \"object\": \"list\",\n \"data\": [\n {\n \"id\": \"msg_abc123\",\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": [\n {\n \"type\": \"input_text\",\n \"text\": \"Tell me a three sentence bedtime story about a unicorn.\"\n }\n ]\n }\n ],\n \"first_id\": \"msg_abc123\",\n \"last_id\": \"msg_abc123\",\n \"has_more\": false\n}\n" + } + }, + "OpenAI.ResponseLogProb": { + "type": "object", + "required": [ + "token", + "logprob" + ], + "properties": { + "token": { + "type": "string", + "description": "A possible text token." + }, + "logprob": { + "type": "number", + "description": "The log probability of this token." + }, + "top_logprobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ResponseLogProbTopLogprobs" + }, + "description": "The log probability of the top 20 most likely tokens." + } + }, + "description": "A logprob is the logarithmic probability that the model assigns to producing\na particular token at a given position in the sequence. Less-negative (higher)\nlogprob values indicate greater model confidence in that token choice." + }, + "OpenAI.ResponseLogProbTopLogprobs": { + "type": "object", + "properties": { + "token": { + "type": "string" + }, + "logprob": { + "type": "number" + } + } + }, + "OpenAI.ResponseMCPCallArgumentsDeltaEvent": { + "type": "object", + "required": [ + "type", + "output_index", + "item_id", + "delta", + "sequence_number" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "response.mcp_call_arguments.delta" + ], + "description": "The type of the event. Always 'response.mcp_call_arguments.delta'.", + "x-stainless-const": true }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item that the content part was added to." + "description": "The index of the output item in the response's output array." + }, + "item_id": { + "type": "string", + "description": "The unique identifier of the MCP tool call item being processed." + }, + "delta": { + "type": "string", + "description": "A JSON string containing the partial update to the arguments for the MCP tool call." }, - "content_index": { + "sequence_number": { "type": "integer", - "format": "int32", - "description": "The index of the content part that was added." - }, - "part": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" - } - ], - "description": "The content part that was added." + "description": "The sequence number of this event." } }, "allOf": [ @@ -17392,46 +29922,47 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a new content part is added." + "description": "Emitted when there is a delta (partial update) to the arguments of an MCP tool call.", + "title": "ResponseMCPCallArgumentsDeltaEvent", + "x-oaiMeta": { + "name": "response.mcp_call_arguments.delta", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_call_arguments.delta\",\n \"output_index\": 0,\n \"item_id\": \"item-abc\",\n \"delta\": \"{\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseContentPartDoneEvent": { + "OpenAI.ResponseMCPCallArgumentsDoneEvent": { "type": "object", "required": [ "type", - "item_id", "output_index", - "content_index", - "part" + "item_id", + "arguments", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.content_part.done" + "response.mcp_call_arguments.done" ], - "description": "The type of the event. Always `response.content_part.done`." + "description": "The type of the event. Always 'response.mcp_call_arguments.done'.", + "x-stainless-const": true + }, + "output_index": { + "type": "integer", + "description": "The index of the output item in the response's output array." }, "item_id": { "type": "string", - "description": "The ID of the output item that the content part was added to." + "description": "The unique identifier of the MCP tool call item being processed." }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item that the content part was added to." + "arguments": { + "type": "string", + "description": "A JSON string containing the finalized arguments for the MCP tool call." }, - "content_index": { + "sequence_number": { "type": "integer", - "format": "int32", - "description": "The index of the content part that is done." - }, - "part": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemContent" - } - ], - "description": "The content part that is done." + "description": "The sequence number of this event." } }, "allOf": [ @@ -17439,29 +29970,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a content part is done." + "description": "Emitted when the arguments for an MCP tool call are finalized.", + "title": "ResponseMCPCallArgumentsDoneEvent", + "x-oaiMeta": { + "name": "response.mcp_call_arguments.done", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_call_arguments.done\",\n \"output_index\": 0,\n \"item_id\": \"item-abc\",\n \"arguments\": \"{\\\"arg1\\\": \\\"value1\\\", \\\"arg2\\\": \\\"value2\\\"}\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseCreatedEvent": { + "OpenAI.ResponseMCPCallCompletedEvent": { "type": "object", "required": [ "type", - "response" + "item_id", + "output_index", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.created" + "response.mcp_call.completed" ], - "description": "The type of the event. Always `response.created`." + "description": "The type of the event. Always 'response.mcp_call.completed'.", + "x-stainless-const": true }, - "response": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Response" - } - ], - "description": "The response that was created." + "item_id": { + "type": "string", + "description": "The ID of the MCP tool call item that completed." + }, + "output_index": { + "type": "integer", + "description": "The index of the output item that completed." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -17469,78 +30013,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "An event that is emitted when a response is created." - }, - "OpenAI.ResponseError": { - "type": "object", - "required": [ - "code", - "message" - ], - "properties": { - "code": { - "$ref": "#/components/schemas/OpenAI.ResponseErrorCode" - }, - "message": { - "type": "string", - "description": "A human-readable description of the error." - } - }, - "description": "An error object returned when the model fails to generate a Response." - }, - "OpenAI.ResponseErrorCode": { - "type": "string", - "enum": [ - "server_error", - "rate_limit_exceeded", - "invalid_prompt", - "vector_store_timeout", - "invalid_image", - "invalid_image_format", - "invalid_base64_image", - "invalid_image_url", - "image_too_large", - "image_too_small", - "image_parse_error", - "image_content_policy_violation", - "invalid_image_mode", - "image_file_too_large", - "unsupported_image_media_type", - "empty_image_file", - "failed_to_download_image", - "image_file_not_found" - ], - "description": "The error code for the response." + "description": "Emitted when an MCP tool call has completed successfully.", + "title": "ResponseMCPCallCompletedEvent", + "x-oaiMeta": { + "name": "response.mcp_call.completed", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_call.completed\",\n \"sequence_number\": 1,\n \"item_id\": \"mcp_682d437d90a88191bf88cd03aae0c3e503937d5f622d7a90\",\n \"output_index\": 0\n}\n" + } }, - "OpenAI.ResponseErrorEvent": { + "OpenAI.ResponseMCPCallFailedEvent": { "type": "object", "required": [ "type", - "code", - "message", - "param" + "item_id", + "output_index", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "error" + "response.mcp_call.failed" ], - "description": "The type of the event. Always `error`." + "description": "The type of the event. Always 'response.mcp_call.failed'.", + "x-stainless-const": true }, - "code": { + "item_id": { "type": "string", - "nullable": true, - "description": "The error code." + "description": "The ID of the MCP tool call item that failed." }, - "message": { - "type": "string", - "description": "The error message." + "output_index": { + "type": "integer", + "description": "The index of the output item that failed." }, - "param": { - "type": "string", - "nullable": true, - "description": "The error parameter." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -17548,29 +30056,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when an error occurs." + "description": "Emitted when an MCP tool call has failed.", + "title": "ResponseMCPCallFailedEvent", + "x-oaiMeta": { + "name": "response.mcp_call.failed", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_call.failed\",\n \"sequence_number\": 1,\n \"item_id\": \"mcp_682d437d90a88191bf88cd03aae0c3e503937d5f622d7a90\",\n \"output_index\": 0\n}\n" + } }, - "OpenAI.ResponseFailedEvent": { + "OpenAI.ResponseMCPCallInProgressEvent": { "type": "object", "required": [ "type", - "response" + "sequence_number", + "output_index", + "item_id" ], "properties": { "type": { "type": "string", "enum": [ - "response.failed" + "response.mcp_call.in_progress" ], - "description": "The type of the event. Always `response.failed`." + "description": "The type of the event. Always 'response.mcp_call.in_progress'.", + "x-stainless-const": true }, - "response": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Response" - } - ], - "description": "The response that failed." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "output_index": { + "type": "integer", + "description": "The index of the output item in the response's output array." + }, + "item_id": { + "type": "string", + "description": "The unique identifier of the MCP tool call item being processed." } }, "allOf": [ @@ -17578,31 +30099,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "An event that is emitted when a response fails." + "description": "Emitted when an MCP tool call is in progress.", + "title": "ResponseMCPCallInProgressEvent", + "x-oaiMeta": { + "name": "response.mcp_call.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_call.in_progress\",\n \"sequence_number\": 1,\n \"output_index\": 0,\n \"item_id\": \"mcp_682d437d90a88191bf88cd03aae0c3e503937d5f622d7a90\"\n}\n" + } }, - "OpenAI.ResponseFileSearchCallCompletedEvent": { + "OpenAI.ResponseMCPListToolsCompletedEvent": { "type": "object", "required": [ "type", + "item_id", "output_index", - "item_id" + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.file_search_call.completed" + "response.mcp_list_tools.completed" ], - "description": "The type of the event. Always `response.file_search_call.completed`." + "description": "The type of the event. Always 'response.mcp_list_tools.completed'.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the MCP tool call item that produced this output." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item that the file search call is initiated." + "description": "The index of the output item that was processed." }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the file search call is initiated." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -17610,31 +30142,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a file search call is completed (results found)." + "description": "Emitted when the list of available MCP tools has been successfully retrieved.", + "title": "ResponseMCPListToolsCompletedEvent", + "x-oaiMeta": { + "name": "response.mcp_list_tools.completed", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_list_tools.completed\",\n \"sequence_number\": 1,\n \"output_index\": 0,\n \"item_id\": \"mcpl_682d4379df088191886b70f4ec39f90403937d5f622d7a90\"\n}\n" + } }, - "OpenAI.ResponseFileSearchCallInProgressEvent": { + "OpenAI.ResponseMCPListToolsFailedEvent": { "type": "object", "required": [ "type", + "item_id", "output_index", - "item_id" + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.file_search_call.in_progress" + "response.mcp_list_tools.failed" ], - "description": "The type of the event. Always `response.file_search_call.in_progress`." + "description": "The type of the event. Always 'response.mcp_list_tools.failed'.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the MCP tool call item that failed." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item that the file search call is initiated." + "description": "The index of the output item that failed." }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the file search call is initiated." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -17642,31 +30185,42 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a file search call is initiated." + "description": "Emitted when the attempt to list available MCP tools has failed.", + "title": "ResponseMCPListToolsFailedEvent", + "x-oaiMeta": { + "name": "response.mcp_list_tools.failed", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_list_tools.failed\",\n \"sequence_number\": 1,\n \"output_index\": 0,\n \"item_id\": \"mcpl_682d4379df088191886b70f4ec39f90403937d5f622d7a90\"\n}\n" + } }, - "OpenAI.ResponseFileSearchCallSearchingEvent": { + "OpenAI.ResponseMCPListToolsInProgressEvent": { "type": "object", "required": [ "type", + "item_id", "output_index", - "item_id" + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.file_search_call.searching" + "response.mcp_list_tools.in_progress" ], - "description": "The type of the event. Always `response.file_search_call.searching`." + "description": "The type of the event. Always 'response.mcp_list_tools.in_progress'.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the MCP tool call item that is being processed." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item that the file search call is searching." + "description": "The index of the output item that is being processed." }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the file search call is initiated." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -17674,160 +30228,280 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a file search is currently searching." + "description": "Emitted when the system is in the process of retrieving the list of available MCP tools.", + "title": "ResponseMCPListToolsInProgressEvent", + "x-oaiMeta": { + "name": "response.mcp_list_tools.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.mcp_list_tools.in_progress\",\n \"sequence_number\": 1,\n \"output_index\": 0,\n \"item_id\": \"mcpl_682d4379df088191886b70f4ec39f90403937d5f622d7a90\"\n}\n" + } + }, + "OpenAI.ResponseModalities": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "text", + "audio" + ] + } + }, + { + "type": "null" + } + ], + "description": "Output types that you would like the model to generate.\nMost models are capable of generating text, which is the default:\n\n`[\"text\"]`\n\nThe `gpt-4o-audio-preview` model can also be used to\n[generate audio](https://platform.openai.com/docs/guides/audio). To request that this model generate\nboth text and audio responses, you can use:\n\n`[\"text\", \"audio\"]`" }, - "OpenAI.ResponseFormat": { + "OpenAI.ResponseOutputItemAddedEvent": { "type": "object", "required": [ - "type" + "type", + "output_index", + "sequence_number", + "item" ], "properties": { "type": { "type": "string", "enum": [ - "text", - "json_object", - "json_schema" - ] - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "text": "#/components/schemas/OpenAI.ResponseFormatText", - "json_object": "#/components/schemas/OpenAI.ResponseFormatJsonObject", - "json_schema": "#/components/schemas/OpenAI.ResponseFormatJsonSchema" + "response.output_item.added" + ], + "description": "The type of the event. Always `response.output_item.added`.", + "x-stainless-const": true + }, + "output_index": { + "type": "integer", + "description": "The index of the output item that was added." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "item": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } + ], + "description": "The output item that was added." } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + ], + "description": "Emitted when a new output item is added.", + "x-oaiMeta": { + "name": "response.output_item.added", + "group": "responses", + "example": "{\n \"type\": \"response.output_item.added\",\n \"output_index\": 0,\n \"item\": {\n \"id\": \"msg_123\",\n \"status\": \"in_progress\",\n \"type\": \"message\",\n \"role\": \"assistant\",\n \"content\": []\n },\n \"sequence_number\": 1\n}\n" } }, - "OpenAI.ResponseFormatJsonObject": { + "OpenAI.ResponseOutputItemDoneEvent": { "type": "object", "required": [ - "type" + "type", + "output_index", + "sequence_number", + "item" ], "properties": { "type": { "type": "string", "enum": [ - "json_object" + "response.output_item.done" + ], + "description": "The type of the event. Always `response.output_item.done`.", + "x-stainless-const": true + }, + "output_index": { + "type": "integer", + "description": "The index of the output item that was marked done." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "item": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.OutputItem" + } ], - "description": "The type of response format being defined. Always `json_object`." + "description": "The output item that was marked done." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponseFormat" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "JSON object response format. An older method of generating JSON responses.\nUsing `json_schema` is recommended for models that support it. Note that the\nmodel will not generate JSON without a system or user message instructing it\nto do so." + "description": "Emitted when an output item is marked done.", + "x-oaiMeta": { + "name": "response.output_item.done", + "group": "responses", + "example": "{\n \"type\": \"response.output_item.done\",\n \"output_index\": 0,\n \"item\": {\n \"id\": \"msg_123\",\n \"status\": \"completed\",\n \"type\": \"message\",\n \"role\": \"assistant\",\n \"content\": [\n {\n \"type\": \"output_text\",\n \"text\": \"In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.\",\n \"annotations\": []\n }\n ]\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseFormatJsonSchema": { + "OpenAI.ResponseOutputTextAnnotationAddedEvent": { "type": "object", "required": [ "type", - "json_schema" + "item_id", + "output_index", + "content_index", + "annotation_index", + "sequence_number", + "annotation" ], "properties": { "type": { "type": "string", "enum": [ - "json_schema" + "response.output_text.annotation.added" ], - "description": "The type of response format being defined. Always `json_schema`." + "description": "The type of the event. Always 'response.output_text.annotation.added'.", + "x-stainless-const": true }, - "json_schema": { - "type": "object", - "properties": { - "description": { - "type": "string", - "description": "A description of what the response format is for, used by the model to\ndetermine how to respond in the format." - }, - "name": { - "type": "string", - "description": "The name of the response format. Must be a-z, A-Z, 0-9, or contain\nunderscores and dashes, with a maximum length of 64." - }, - "schema": { - "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema" - }, - "strict": { - "type": "boolean", - "nullable": true, - "description": "Whether to enable strict schema adherence when generating the output.\nIf set to true, the model will always follow the exact schema defined\nin the `schema` field. Only a subset of JSON Schema is supported when\n`strict` is `true`. To learn more, read the [Structured Outputs\nguide](/docs/guides/structured-outputs).", - "default": false + "item_id": { + "type": "string", + "description": "The unique identifier of the item to which the annotation is being added." + }, + "output_index": { + "type": "integer", + "description": "The index of the output item in the response's output array." + }, + "content_index": { + "type": "integer", + "description": "The index of the content part within the output item." + }, + "annotation_index": { + "type": "integer", + "description": "The index of the annotation within the content part." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "annotation": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseOutputTextAnnotationAddedEventAnnotation" } - }, - "required": [ - "name" ], - "description": "Structured Outputs configuration options, including a JSON Schema." + "description": "The annotation object being added. (See annotation schema for details.)" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponseFormat" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](/docs/guides/structured-outputs)." + "description": "Emitted when an annotation is added to output text content.", + "title": "ResponseOutputTextAnnotationAddedEvent", + "x-oaiMeta": { + "name": "response.output_text.annotation.added", + "group": "responses", + "example": "{\n \"type\": \"response.output_text.annotation.added\",\n \"item_id\": \"item-abc\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"annotation_index\": 0,\n \"annotation\": {\n \"type\": \"text_annotation\",\n \"text\": \"This is a test annotation\",\n \"start\": 0,\n \"end\": 10\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseFormatJsonSchemaSchema": { + "OpenAI.ResponseOutputTextAnnotationAddedEventAnnotation": { + "type": "object" + }, + "OpenAI.ResponsePromptVariables": { "type": "object", - "additionalProperties": {}, - "description": "The schema for the response format, described as a JSON Schema object.\nLearn how to build JSON schemas [here](https://json-schema.org/)." + "description": "Optional map of values to substitute in for variables in your\nprompt. The substitution values can either be strings, or other\nResponse input types like images or files.", + "title": "Prompt Variables", + "x-oaiExpandable": true, + "x-oaiTypeLabel": "map" }, - "OpenAI.ResponseFormatText": { + "OpenAI.ResponseQueuedEvent": { "type": "object", "required": [ - "type" + "type", + "response", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "text" + "response.queued" ], - "description": "The type of response format being defined. Always `text`." + "description": "The type of the event. Always 'response.queued'.", + "x-stainless-const": true + }, + "response": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Response" + } + ], + "description": "The full response object that is queued." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number for this event." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponseFormat" + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Default response format. Used to generate text responses." + "description": "Emitted when a response is queued and waiting to be processed.", + "title": "ResponseQueuedEvent", + "x-oaiMeta": { + "name": "response.queued", + "group": "responses", + "example": "{\n \"type\": \"response.queued\",\n \"response\": {\n \"id\": \"res_123\",\n \"status\": \"queued\",\n \"created_at\": \"2021-01-01T00:00:00Z\",\n \"updated_at\": \"2021-01-01T00:00:00Z\"\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseFunctionCallArgumentsDeltaEvent": { + "OpenAI.ResponseReasoningSummaryPartAddedEvent": { "type": "object", "required": [ "type", "item_id", "output_index", - "delta", - "obfuscation" + "summary_index", + "sequence_number", + "part" ], "properties": { "type": { "type": "string", "enum": [ - "response.function_call_arguments.delta" + "response.reasoning_summary_part.added" ], - "description": "The type of the event. Always `response.function_call_arguments.delta`." + "description": "The type of the event. Always `response.reasoning_summary_part.added`.", + "x-stainless-const": true }, "item_id": { "type": "string", - "description": "The ID of the output item that the function-call arguments delta is added to." + "description": "The ID of the item this summary part is associated with." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item that the function-call arguments delta is added to." + "description": "The index of the output item this summary part is associated with." }, - "delta": { - "type": "string", - "description": "The function-call arguments delta that is added." + "summary_index": { + "type": "integer", + "description": "The index of the summary part within the reasoning summary." }, - "obfuscation": { - "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "part": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseReasoningSummaryPartAddedEventPart" + } + ], + "description": "The summary part that was added." } }, "allOf": [ @@ -17835,35 +30509,74 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when there is a partial function-call arguments delta." + "description": "Emitted when a new reasoning summary part is added.", + "x-oaiMeta": { + "name": "response.reasoning_summary_part.added", + "group": "responses", + "example": "{\n \"type\": \"response.reasoning_summary_part.added\",\n \"item_id\": \"rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476\",\n \"output_index\": 0,\n \"summary_index\": 0,\n \"part\": {\n \"type\": \"summary_text\",\n \"text\": \"\"\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseFunctionCallArgumentsDoneEvent": { + "OpenAI.ResponseReasoningSummaryPartAddedEventPart": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "summary_text" + ], + "x-stainless-const": true + }, + "text": { + "type": "string" + } + } + }, + "OpenAI.ResponseReasoningSummaryPartDoneEvent": { "type": "object", "required": [ "type", "item_id", "output_index", - "arguments" + "summary_index", + "sequence_number", + "part" ], "properties": { "type": { "type": "string", "enum": [ - "response.function_call_arguments.done" - ] + "response.reasoning_summary_part.done" + ], + "description": "The type of the event. Always `response.reasoning_summary_part.done`.", + "x-stainless-const": true }, "item_id": { "type": "string", - "description": "The ID of the item." + "description": "The ID of the item this summary part is associated with." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item." + "description": "The index of the output item this summary part is associated with." }, - "arguments": { - "type": "string", - "description": "The function-call arguments." + "summary_index": { + "type": "integer", + "description": "The index of the summary part within the reasoning summary." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." + }, + "part": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseReasoningSummaryPartDoneEventPart" + } + ], + "description": "The completed summary part." } }, "allOf": [ @@ -17871,63 +30584,70 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when function-call arguments are finalized." + "description": "Emitted when a reasoning summary part is completed.", + "x-oaiMeta": { + "name": "response.reasoning_summary_part.done", + "group": "responses", + "example": "{\n \"type\": \"response.reasoning_summary_part.done\",\n \"item_id\": \"rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476\",\n \"output_index\": 0,\n \"summary_index\": 0,\n \"part\": {\n \"type\": \"summary_text\",\n \"text\": \"**Responding to a greeting**\\n\\nThe user just said, \\\"Hello!\\\" So, it seems I need to engage. I'll greet them back and offer help since they're looking to chat. I could say something like, \\\"Hello! How can I assist you today?\\\" That feels friendly and open. They didn't ask a specific question, so this approach will work well for starting a conversation. Let's see where it goes from there!\"\n },\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseImageGenCallCompletedEvent": { + "OpenAI.ResponseReasoningSummaryPartDoneEventPart": { "type": "object", "required": [ "type", - "output_index", - "item_id" + "text" ], "properties": { "type": { "type": "string", "enum": [ - "response.image_generation_call.completed" + "summary_text" ], - "description": "The type of the event. Always 'response.image_generation_call.completed'." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "x-stainless-const": true }, - "item_id": { - "type": "string", - "description": "The unique identifier of the image generation item being processed." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + "text": { + "type": "string" } - ], - "description": "Emitted when an image generation tool call has completed and the final image is available." + } }, - "OpenAI.ResponseImageGenCallGeneratingEvent": { + "OpenAI.ResponseReasoningSummaryTextDeltaEvent": { "type": "object", "required": [ "type", + "item_id", "output_index", - "item_id" + "summary_index", + "delta", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.image_generation_call.generating" + "response.reasoning_summary_text.delta" ], - "description": "The type of the event. Always 'response.image_generation_call.generating'." + "description": "The type of the event. Always `response.reasoning_summary_text.delta`.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the item this summary text delta is associated with." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "description": "The index of the output item this summary text delta is associated with." }, - "item_id": { + "summary_index": { + "type": "integer", + "description": "The index of the summary part within the reasoning summary." + }, + "delta": { "type": "string", - "description": "The unique identifier of the image generation item being processed." + "description": "The text delta that was added to the summary." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -17935,31 +30655,51 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when an image generation tool call is actively generating an image (intermediate state)." + "description": "Emitted when a delta is added to a reasoning summary text.", + "x-oaiMeta": { + "name": "response.reasoning_summary_text.delta", + "group": "responses", + "example": "{\n \"type\": \"response.reasoning_summary_text.delta\",\n \"item_id\": \"rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476\",\n \"output_index\": 0,\n \"summary_index\": 0,\n \"delta\": \"**Responding to a greeting**\\n\\nThe user just said, \\\"Hello!\\\" So, it seems I need to engage. I'll greet them back and offer help since they're looking to chat. I could say something like, \\\"Hello! How can I assist you today?\\\" That feels friendly and open. They didn't ask a specific question, so this approach will work well for starting a conversation. Let's see where it goes from there!\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseImageGenCallInProgressEvent": { + "OpenAI.ResponseReasoningSummaryTextDoneEvent": { "type": "object", "required": [ "type", + "item_id", "output_index", - "item_id" + "summary_index", + "text", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.image_generation_call.in_progress" + "response.reasoning_summary_text.done" ], - "description": "The type of the event. Always 'response.image_generation_call.in_progress'." + "description": "The type of the event. Always `response.reasoning_summary_text.done`.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the item this summary text is associated with." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "description": "The index of the output item this summary text is associated with." }, - "item_id": { + "summary_index": { + "type": "integer", + "description": "The index of the summary part within the reasoning summary." + }, + "text": { "type": "string", - "description": "The unique identifier of the image generation item being processed." + "description": "The full text of the completed reasoning summary." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -17967,42 +30707,51 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when an image generation tool call is in progress." + "description": "Emitted when a reasoning summary text is completed.", + "x-oaiMeta": { + "name": "response.reasoning_summary_text.done", + "group": "responses", + "example": "{\n \"type\": \"response.reasoning_summary_text.done\",\n \"item_id\": \"rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476\",\n \"output_index\": 0,\n \"summary_index\": 0,\n \"text\": \"**Responding to a greeting**\\n\\nThe user just said, \\\"Hello!\\\" So, it seems I need to engage. I'll greet them back and offer help since they're looking to chat. I could say something like, \\\"Hello! How can I assist you today?\\\" That feels friendly and open. They didn't ask a specific question, so this approach will work well for starting a conversation. Let's see where it goes from there!\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseImageGenCallPartialImageEvent": { + "OpenAI.ResponseReasoningTextDeltaEvent": { "type": "object", "required": [ "type", - "output_index", "item_id", - "partial_image_index", - "partial_image_b64" + "output_index", + "content_index", + "delta", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.image_generation_call.partial_image" + "response.reasoning_text.delta" ], - "description": "The type of the event. Always 'response.image_generation_call.partial_image'." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "description": "The type of the event. Always `response.reasoning_text.delta`.", + "x-stainless-const": true }, "item_id": { "type": "string", - "description": "The unique identifier of the image generation item being processed." + "description": "The ID of the item this reasoning text delta is associated with." }, - "partial_image_index": { + "output_index": { "type": "integer", - "format": "int32", - "description": "0-based index for the partial image (backend is 1-based, but this is 0-based for the user)." + "description": "The index of the output item this reasoning text delta is associated with." }, - "partial_image_b64": { + "content_index": { + "type": "integer", + "description": "The index of the reasoning content part this delta is associated with." + }, + "delta": { "type": "string", - "description": "Base64-encoded partial image data, suitable for rendering as an image." + "description": "The text delta that was added to the reasoning content." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18010,29 +30759,51 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a partial image is available during image generation streaming." + "description": "Emitted when a delta is added to a reasoning text.", + "x-oaiMeta": { + "name": "response.reasoning_text.delta", + "group": "responses", + "example": "{\n \"type\": \"response.reasoning_text.delta\",\n \"item_id\": \"rs_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"delta\": \"The\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseInProgressEvent": { + "OpenAI.ResponseReasoningTextDoneEvent": { "type": "object", "required": [ "type", - "response" + "item_id", + "output_index", + "content_index", + "text", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.in_progress" + "response.reasoning_text.done" ], - "description": "The type of the event. Always `response.in_progress`." + "description": "The type of the event. Always `response.reasoning_text.done`.", + "x-stainless-const": true }, - "response": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Response" - } - ], - "description": "The response that is in progress." + "item_id": { + "type": "string", + "description": "The ID of the item this reasoning text is associated with." + }, + "output_index": { + "type": "integer", + "description": "The index of the output item this reasoning text is associated with." + }, + "content_index": { + "type": "integer", + "description": "The index of the reasoning content part." + }, + "text": { + "type": "string", + "description": "The full text of the completed reasoning content." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18040,29 +30811,51 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the response is in progress." + "description": "Emitted when a reasoning text is completed.", + "x-oaiMeta": { + "name": "response.reasoning_text.done", + "group": "responses", + "example": "{\n \"type\": \"response.reasoning_text.done\",\n \"item_id\": \"rs_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"text\": \"The user is asking...\",\n \"sequence_number\": 4\n}\n" + } }, - "OpenAI.ResponseIncompleteEvent": { + "OpenAI.ResponseRefusalDeltaEvent": { "type": "object", "required": [ "type", - "response" + "item_id", + "output_index", + "content_index", + "delta", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.incomplete" + "response.refusal.delta" ], - "description": "The type of the event. Always `response.incomplete`." + "description": "The type of the event. Always `response.refusal.delta`.", + "x-stainless-const": true }, - "response": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Response" - } - ], - "description": "The response that was incomplete." + "item_id": { + "type": "string", + "description": "The ID of the output item that the refusal text is added to." + }, + "output_index": { + "type": "integer", + "description": "The index of the output item that the refusal text is added to." + }, + "content_index": { + "type": "integer", + "description": "The index of the content part that the refusal text is added to." + }, + "delta": { + "type": "string", + "description": "The refusal text that is added." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, "allOf": [ @@ -18070,157 +30863,255 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "An event that is emitted when a response finishes as incomplete." + "description": "Emitted when there is a partial refusal text.", + "x-oaiMeta": { + "name": "response.refusal.delta", + "group": "responses", + "example": "{\n \"type\": \"response.refusal.delta\",\n \"item_id\": \"msg_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"delta\": \"refusal text so far\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseItemList": { + "OpenAI.ResponseRefusalDoneEvent": { "type": "object", "required": [ - "object", - "data", - "has_more", - "first_id", - "last_id" + "type", + "item_id", + "output_index", + "content_index", + "refusal", + "sequence_number" ], "properties": { - "object": { + "type": { "type": "string", "enum": [ - "list" + "response.refusal.done" ], - "description": "The type of object returned, must be `list`." + "description": "The type of the event. Always `response.refusal.done`.", + "x-stainless-const": true }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemResource" - }, - "description": "A list of items used to generate this response." + "item_id": { + "type": "string", + "description": "The ID of the output item that the refusal text is finalized." }, - "has_more": { - "type": "boolean", - "description": "Whether there are more items available." + "output_index": { + "type": "integer", + "description": "The index of the output item that the refusal text is finalized." }, - "first_id": { - "type": "string", - "description": "The ID of the first item in the list." + "content_index": { + "type": "integer", + "description": "The index of the content part that the refusal text is finalized." }, - "last_id": { + "refusal": { "type": "string", - "description": "The ID of the last item in the list." + "description": "The refusal text that is finalized." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of this event." } }, - "description": "A list of Response items." + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + ], + "description": "Emitted when refusal text is finalized.", + "x-oaiMeta": { + "name": "response.refusal.done", + "group": "responses", + "example": "{\n \"type\": \"response.refusal.done\",\n \"item_id\": \"item-abc\",\n \"output_index\": 1,\n \"content_index\": 2,\n \"refusal\": \"final refusal text\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseMCPCallArgumentsDeltaEvent": { + "OpenAI.ResponseStreamEvent": { "type": "object", "required": [ - "type", - "output_index", - "item_id", - "delta", - "obfuscation" + "type" ], "properties": { "type": { - "type": "string", - "enum": [ - "response.mcp_call.arguments_delta" - ], - "description": "The type of the event. Always 'response.mcp_call.arguments_delta'." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." - }, - "item_id": { - "type": "string", - "description": "The unique identifier of the MCP tool call item being processed." - }, - "delta": { - "description": "The partial update to the arguments for the MCP tool call." + "$ref": "#/components/schemas/OpenAI.ResponseStreamEventType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "response.audio.delta": "#/components/schemas/OpenAI.ResponseAudioDeltaEvent", + "response.audio.done": "#/components/schemas/OpenAI.ResponseAudioDoneEvent", + "response.audio.transcript.delta": "#/components/schemas/OpenAI.ResponseAudioTranscriptDeltaEvent", + "response.audio.transcript.done": "#/components/schemas/OpenAI.ResponseAudioTranscriptDoneEvent", + "response.code_interpreter_call_code.delta": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent", + "response.code_interpreter_call_code.done": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDoneEvent", + "response.code_interpreter_call.completed": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallCompletedEvent", + "response.code_interpreter_call.in_progress": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallInProgressEvent", + "response.code_interpreter_call.interpreting": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallInterpretingEvent", + "response.completed": "#/components/schemas/OpenAI.ResponseCompletedEvent", + "response.content_part.added": "#/components/schemas/OpenAI.ResponseContentPartAddedEvent", + "response.content_part.done": "#/components/schemas/OpenAI.ResponseContentPartDoneEvent", + "response.created": "#/components/schemas/OpenAI.ResponseCreatedEvent", + "response.custom_tool_call_input.delta": "#/components/schemas/OpenAI.ResponseCustomToolCallInputDeltaEvent", + "response.custom_tool_call_input.done": "#/components/schemas/OpenAI.ResponseCustomToolCallInputDoneEvent", + "error": "#/components/schemas/OpenAI.ResponseErrorEvent", + "response.failed": "#/components/schemas/OpenAI.ResponseFailedEvent", + "response.file_search_call.completed": "#/components/schemas/OpenAI.ResponseFileSearchCallCompletedEvent", + "response.file_search_call.in_progress": "#/components/schemas/OpenAI.ResponseFileSearchCallInProgressEvent", + "response.file_search_call.searching": "#/components/schemas/OpenAI.ResponseFileSearchCallSearchingEvent", + "response.function_call_arguments.delta": "#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDeltaEvent", + "response.function_call_arguments.done": "#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDoneEvent", + "response.image_generation_call.completed": "#/components/schemas/OpenAI.ResponseImageGenCallCompletedEvent", + "response.image_generation_call.generating": "#/components/schemas/OpenAI.ResponseImageGenCallGeneratingEvent", + "response.image_generation_call.in_progress": "#/components/schemas/OpenAI.ResponseImageGenCallInProgressEvent", + "response.image_generation_call.partial_image": "#/components/schemas/OpenAI.ResponseImageGenCallPartialImageEvent", + "response.in_progress": "#/components/schemas/OpenAI.ResponseInProgressEvent", + "response.incomplete": "#/components/schemas/OpenAI.ResponseIncompleteEvent", + "response.mcp_call_arguments.delta": "#/components/schemas/OpenAI.ResponseMCPCallArgumentsDeltaEvent", + "response.mcp_call_arguments.done": "#/components/schemas/OpenAI.ResponseMCPCallArgumentsDoneEvent", + "response.mcp_call.completed": "#/components/schemas/OpenAI.ResponseMCPCallCompletedEvent", + "response.mcp_call.failed": "#/components/schemas/OpenAI.ResponseMCPCallFailedEvent", + "response.mcp_call.in_progress": "#/components/schemas/OpenAI.ResponseMCPCallInProgressEvent", + "response.mcp_list_tools.completed": "#/components/schemas/OpenAI.ResponseMCPListToolsCompletedEvent", + "response.mcp_list_tools.failed": "#/components/schemas/OpenAI.ResponseMCPListToolsFailedEvent", + "response.mcp_list_tools.in_progress": "#/components/schemas/OpenAI.ResponseMCPListToolsInProgressEvent", + "response.output_item.added": "#/components/schemas/OpenAI.ResponseOutputItemAddedEvent", + "response.output_item.done": "#/components/schemas/OpenAI.ResponseOutputItemDoneEvent", + "response.output_text.annotation.added": "#/components/schemas/OpenAI.ResponseOutputTextAnnotationAddedEvent", + "response.queued": "#/components/schemas/OpenAI.ResponseQueuedEvent", + "response.reasoning_summary_part.added": "#/components/schemas/OpenAI.ResponseReasoningSummaryPartAddedEvent", + "response.reasoning_summary_part.done": "#/components/schemas/OpenAI.ResponseReasoningSummaryPartDoneEvent", + "response.reasoning_summary_text.delta": "#/components/schemas/OpenAI.ResponseReasoningSummaryTextDeltaEvent", + "response.reasoning_summary_text.done": "#/components/schemas/OpenAI.ResponseReasoningSummaryTextDoneEvent", + "response.reasoning_text.delta": "#/components/schemas/OpenAI.ResponseReasoningTextDeltaEvent", + "response.reasoning_text.done": "#/components/schemas/OpenAI.ResponseReasoningTextDoneEvent", + "response.refusal.delta": "#/components/schemas/OpenAI.ResponseRefusalDeltaEvent", + "response.refusal.done": "#/components/schemas/OpenAI.ResponseRefusalDoneEvent", + "response.output_text.delta": "#/components/schemas/OpenAI.ResponseTextDeltaEvent", + "response.output_text.done": "#/components/schemas/OpenAI.ResponseTextDoneEvent", + "response.web_search_call.completed": "#/components/schemas/OpenAI.ResponseWebSearchCallCompletedEvent", + "response.web_search_call.in_progress": "#/components/schemas/OpenAI.ResponseWebSearchCallInProgressEvent", + "response.web_search_call.searching": "#/components/schemas/OpenAI.ResponseWebSearchCallSearchingEvent" + } + } + }, + "OpenAI.ResponseStreamEventType": { + "anyOf": [ + { + "type": "string" }, - "obfuscation": { + { "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." + "enum": [ + "response.audio.delta", + "response.audio.done", + "response.audio.transcript.delta", + "response.audio.transcript.done", + "response.code_interpreter_call_code.delta", + "response.code_interpreter_call_code.done", + "response.code_interpreter_call.completed", + "response.code_interpreter_call.in_progress", + "response.code_interpreter_call.interpreting", + "response.completed", + "response.content_part.added", + "response.content_part.done", + "response.created", + "error", + "response.file_search_call.completed", + "response.file_search_call.in_progress", + "response.file_search_call.searching", + "response.function_call_arguments.delta", + "response.function_call_arguments.done", + "response.in_progress", + "response.failed", + "response.incomplete", + "response.output_item.added", + "response.output_item.done", + "response.reasoning_summary_part.added", + "response.reasoning_summary_part.done", + "response.reasoning_summary_text.delta", + "response.reasoning_summary_text.done", + "response.reasoning_text.delta", + "response.reasoning_text.done", + "response.refusal.delta", + "response.refusal.done", + "response.output_text.delta", + "response.output_text.done", + "response.web_search_call.completed", + "response.web_search_call.in_progress", + "response.web_search_call.searching", + "response.image_generation_call.completed", + "response.image_generation_call.generating", + "response.image_generation_call.in_progress", + "response.image_generation_call.partial_image", + "response.mcp_call_arguments.delta", + "response.mcp_call_arguments.done", + "response.mcp_call.completed", + "response.mcp_call.failed", + "response.mcp_call.in_progress", + "response.mcp_list_tools.completed", + "response.mcp_list_tools.failed", + "response.mcp_list_tools.in_progress", + "response.output_text.annotation.added", + "response.queued", + "response.custom_tool_call_input.delta", + "response.custom_tool_call_input.done" + ] } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + ] + }, + "OpenAI.ResponseStreamOptions": { + "type": "object", + "properties": { + "include_obfuscation": { + "type": "boolean", + "description": "When true, stream obfuscation will be enabled. Stream obfuscation adds\n random characters to an `obfuscation` field on streaming delta events to\n normalize payload sizes as a mitigation to certain side-channel attacks.\n These obfuscation fields are included by default, but add a small amount\n of overhead to the data stream. You can set `include_obfuscation` to\n false to optimize for bandwidth if you trust the network links between\n your application and the OpenAI API." } - ], - "description": "Emitted when there is a delta (partial update) to the arguments of an MCP tool call." + }, + "description": "Options for streaming responses. Only set this when you set `stream: true`." }, - "OpenAI.ResponseMCPCallArgumentsDoneEvent": { + "OpenAI.ResponseTextDeltaEvent": { "type": "object", "required": [ "type", - "output_index", "item_id", - "arguments" + "output_index", + "content_index", + "delta", + "sequence_number", + "logprobs" ], "properties": { "type": { "type": "string", "enum": [ - "response.mcp_call.arguments_done" + "response.output_text.delta" ], - "description": "The type of the event. Always 'response.mcp_call.arguments_done'." + "description": "The type of the event. Always `response.output_text.delta`.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the output item that the text delta was added to." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "description": "The index of the output item that the text delta was added to." }, - "item_id": { - "type": "string", - "description": "The unique identifier of the MCP tool call item being processed." + "content_index": { + "type": "integer", + "description": "The index of the content part that the text delta was added to." }, - "arguments": { - "description": "The finalized arguments for the MCP tool call." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when the arguments for an MCP tool call are finalized." - }, - "OpenAI.ResponseMCPCallCompletedEvent": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "response.mcp_call.completed" - ], - "description": "The type of the event. Always 'response.mcp_call.completed'." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when an MCP tool call has completed successfully." - }, - "OpenAI.ResponseMCPCallFailedEvent": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { + "delta": { "type": "string", - "enum": [ - "response.mcp_call.failed" - ], - "description": "The type of the event. Always 'response.mcp_call.failed'." + "description": "The text delta that was added." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number for this event." + }, + "logprobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ResponseLogProb" + }, + "description": "The log probabilities of the tokens in the delta." } }, "allOf": [ @@ -18228,73 +31119,59 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when an MCP tool call has failed." + "description": "Emitted when there is an additional text delta.", + "x-oaiMeta": { + "name": "response.output_text.delta", + "group": "responses", + "example": "{\n \"type\": \"response.output_text.delta\",\n \"item_id\": \"msg_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"delta\": \"In\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseMCPCallInProgressEvent": { + "OpenAI.ResponseTextDoneEvent": { "type": "object", "required": [ "type", + "item_id", "output_index", - "item_id" + "content_index", + "text", + "sequence_number", + "logprobs" ], "properties": { "type": { "type": "string", "enum": [ - "response.mcp_call.in_progress" + "response.output_text.done" ], - "description": "The type of the event. Always 'response.mcp_call.in_progress'." + "description": "The type of the event. Always `response.output_text.done`.", + "x-stainless-const": true + }, + "item_id": { + "type": "string", + "description": "The ID of the output item that the text content is finalized." }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "description": "The index of the output item that the text content is finalized." }, - "item_id": { - "type": "string", - "description": "The unique identifier of the MCP tool call item being processed." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when an MCP tool call is in progress." - }, - "OpenAI.ResponseMCPListToolsCompletedEvent": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "response.mcp_list_tools.completed" - ], - "description": "The type of the event. Always 'response.mcp_list_tools.completed'." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when the list of available MCP tools has been successfully retrieved." - }, - "OpenAI.ResponseMCPListToolsFailedEvent": { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { + "content_index": { + "type": "integer", + "description": "The index of the content part that the text content is finalized." + }, + "text": { "type": "string", - "enum": [ - "response.mcp_list_tools.failed" - ], - "description": "The type of the event. Always 'response.mcp_list_tools.failed'." + "description": "The text content that is finalized." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number for this event." + }, + "logprobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.ResponseLogProb" + }, + "description": "The log probabilities of the tokens in the delta." } }, "allOf": [ @@ -18302,131 +31179,116 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the attempt to list available MCP tools has failed." + "description": "Emitted when text content is finalized.", + "x-oaiMeta": { + "name": "response.output_text.done", + "group": "responses", + "example": "{\n \"type\": \"response.output_text.done\",\n \"item_id\": \"msg_123\",\n \"output_index\": 0,\n \"content_index\": 0,\n \"text\": \"In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.\",\n \"sequence_number\": 1\n}\n" + } }, - "OpenAI.ResponseMCPListToolsInProgressEvent": { + "OpenAI.ResponseTextParam": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "response.mcp_list_tools.in_progress" - ], - "description": "The type of the event. Always 'response.mcp_list_tools.in_progress'." + "format": { + "$ref": "#/components/schemas/OpenAI.TextResponseFormatConfiguration" + }, + "verbosity": { + "$ref": "#/components/schemas/OpenAI.Verbosity" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when the system is in the process of retrieving the list of available MCP tools." + "description": "Configuration options for a text response from the model. Can be plain\ntext or structured JSON data. Learn more:\n- [Text inputs and outputs](https://platform.openai.com/docs/guides/text)\n- [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs)" }, - "OpenAI.ResponseOutputItemAddedEvent": { + "OpenAI.ResponseUsage": { "type": "object", "required": [ - "type", - "output_index", - "item" + "input_tokens", + "input_tokens_details", + "output_tokens", + "output_tokens_details", + "total_tokens" ], "properties": { - "type": { - "type": "string", - "enum": [ - "response.output_item.added" - ], - "description": "The type of the event. Always `response.output_item.added`." - }, - "output_index": { + "input_tokens": { "type": "integer", - "format": "int32", - "description": "The index of the output item that was added." + "description": "The number of input tokens." }, - "item": { + "input_tokens_details": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseUsageInputTokensDetails" } ], - "description": "The output item that was added." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when a new output item is added." - }, - "OpenAI.ResponseOutputItemDoneEvent": { - "type": "object", - "required": [ - "type", - "output_index", - "item" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "response.output_item.done" - ], - "description": "The type of the event. Always `response.output_item.done`." + "description": "A detailed breakdown of the input tokens." }, - "output_index": { + "output_tokens": { "type": "integer", - "format": "int32", - "description": "The index of the output item that was marked done." + "description": "The number of output tokens." }, - "item": { + "output_tokens_details": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ResponseUsageOutputTokensDetails" } ], - "description": "The output item that was marked done." + "description": "A detailed breakdown of the output tokens." + }, + "total_tokens": { + "type": "integer", + "description": "The total number of tokens used." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } + "description": "Represents token usage details including input tokens, output tokens,\na breakdown of output tokens, and the total tokens used." + }, + "OpenAI.ResponseUsageInputTokensDetails": { + "type": "object", + "required": [ + "cached_tokens" ], - "description": "Emitted when an output item is marked done." + "properties": { + "cached_tokens": { + "type": "integer" + } + } }, - "OpenAI.ResponsePromptVariables": { + "OpenAI.ResponseUsageOutputTokensDetails": { "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/OpenAI.ItemParam" - }, - "description": "Optional map of values to substitute in for variables in your\nprompt. The substitution values can either be strings, or other\nResponse input types like images or files.", - "x-oaiExpandable": true, - "x-oaiTypeLabel": "map" + "required": [ + "reasoning_tokens" + ], + "properties": { + "reasoning_tokens": { + "type": "integer" + } + } }, - "OpenAI.ResponseQueuedEvent": { + "OpenAI.ResponseWebSearchCallCompletedEvent": { "type": "object", "required": [ "type", - "response" + "output_index", + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.queued" + "response.web_search_call.completed" ], - "description": "The type of the event. Always 'response.queued'." + "description": "The type of the event. Always `response.web_search_call.completed`.", + "x-stainless-const": true }, - "response": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Response" - } - ], - "description": "The full response object that is queued." + "output_index": { + "type": "integer", + "description": "The index of the output item that the web search call is associated with." + }, + "item_id": { + "type": "string", + "description": "Unique ID for the output item associated with the web search call." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of the web search call being processed." } }, "allOf": [ @@ -18434,46 +31296,41 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when a response is queued and waiting to be processed." + "description": "Note: web_search is not yet available via Azure OpenAI.", + "x-oaiMeta": { + "name": "response.web_search_call.completed", + "group": "responses", + "example": "{\n \"type\": \"response.web_search_call.completed\",\n \"output_index\": 0,\n \"item_id\": \"ws_123\",\n \"sequence_number\": 0\n}\n" + } }, - "OpenAI.ResponseReasoningDeltaEvent": { + "OpenAI.ResponseWebSearchCallInProgressEvent": { "type": "object", "required": [ "type", - "item_id", "output_index", - "content_index", - "delta", - "obfuscation" + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.reasoning.delta" + "response.web_search_call.in_progress" ], - "description": "The type of the event. Always 'response.reasoning.delta'." - }, - "item_id": { - "type": "string", - "description": "The unique identifier of the item for which reasoning is being updated." + "description": "The type of the event. Always `response.web_search_call.in_progress`.", + "x-stainless-const": true }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." - }, - "content_index": { - "type": "integer", - "format": "int32", - "description": "The index of the reasoning content part within the output item." - }, - "delta": { - "description": "The partial update to the reasoning content." + "description": "The index of the output item that the web search call is associated with." }, - "obfuscation": { + "item_id": { "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." + "description": "Unique ID for the output item associated with the web search call." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of the web search call being processed." } }, "allOf": [ @@ -18481,42 +31338,41 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when there is a delta (partial update) to the reasoning content." + "description": "Note: web_search is not yet available via Azure OpenAI.", + "x-oaiMeta": { + "name": "response.web_search_call.in_progress", + "group": "responses", + "example": "{\n \"type\": \"response.web_search_call.in_progress\",\n \"output_index\": 0,\n \"item_id\": \"ws_123\",\n \"sequence_number\": 0\n}\n" + } }, - "OpenAI.ResponseReasoningDoneEvent": { + "OpenAI.ResponseWebSearchCallSearchingEvent": { "type": "object", "required": [ "type", - "item_id", "output_index", - "content_index", - "text" + "item_id", + "sequence_number" ], "properties": { "type": { "type": "string", "enum": [ - "response.reasoning.done" + "response.web_search_call.searching" ], - "description": "The type of the event. Always 'response.reasoning.done'." - }, - "item_id": { - "type": "string", - "description": "The unique identifier of the item for which reasoning is finalized." + "description": "The type of the event. Always `response.web_search_call.searching`.", + "x-stainless-const": true }, "output_index": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." - }, - "content_index": { - "type": "integer", - "format": "int32", - "description": "The index of the reasoning content part within the output item." + "description": "The index of the output item that the web search call is associated with." }, - "text": { + "item_id": { "type": "string", - "description": "The finalized reasoning text." + "description": "Unique ID for the output item associated with the web search call." + }, + "sequence_number": { + "type": "integer", + "description": "The sequence number of the web search call being processed." } }, "allOf": [ @@ -18524,445 +31380,664 @@ "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" } ], - "description": "Emitted when the reasoning content is finalized for an item." + "description": "Note: web_search is not yet available via Azure OpenAI.", + "x-oaiMeta": { + "name": "response.web_search_call.searching", + "group": "responses", + "example": "{\n \"type\": \"response.web_search_call.searching\",\n \"output_index\": 0,\n \"item_id\": \"ws_123\",\n \"sequence_number\": 0\n}\n" + } }, - "OpenAI.ResponseReasoningSummaryDeltaEvent": { + "OpenAI.RunCompletionUsage": { "type": "object", "required": [ - "type", - "item_id", - "output_index", - "summary_index", - "delta", - "obfuscation" + "completion_tokens", + "prompt_tokens", + "total_tokens" ], "properties": { - "type": { - "type": "string", - "enum": [ - "response.reasoning_summary.delta" - ], - "description": "The type of the event. Always 'response.reasoning_summary.delta'." - }, - "item_id": { - "type": "string", - "description": "The unique identifier of the item for which the reasoning summary is being updated." + "completion_tokens": { + "type": "integer", + "description": "Number of completion tokens used over the course of the run." }, - "output_index": { + "prompt_tokens": { "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "description": "Number of prompt tokens used over the course of the run." }, - "summary_index": { + "total_tokens": { "type": "integer", - "format": "int32", - "description": "The index of the summary part within the output item." + "description": "Total number of tokens used (prompt + completion)." + } + }, + "description": "Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.)." + }, + "OpenAI.RunGraderRequest": { + "type": "object", + "required": [ + "grader", + "model_sample" + ], + "properties": { + "grader": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.GraderStringCheck" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderPython" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderScoreModel" + }, + { + "$ref": "#/components/schemas/OpenAI.GraderMulti" + }, + { + "$ref": "#/components/schemas/GraderEndpoint" + } + ], + "description": "The grader used for the fine-tuning job." }, - "delta": { - "description": "The partial update to the reasoning summary content." + "item": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunGraderRequestItem" + } + ], + "description": "The dataset item provided to the grader. This will be used to populate\n the `item` namespace. See [the guide](https://platform.openai.com/docs/guides/graders) for more details." }, - "obfuscation": { + "model_sample": { "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." + "description": "The model sample to be evaluated. This value will be used to populate\n the `sample` namespace. See [the guide](https://platform.openai.com/docs/guides/graders) for more details.\n The `output_json` variable will be populated if the model sample is a\n valid JSON string." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } + "title": "RunGraderRequest" + }, + "OpenAI.RunGraderRequestItem": { + "type": "object" + }, + "OpenAI.RunGraderResponse": { + "type": "object", + "required": [ + "reward", + "metadata", + "sub_rewards", + "model_grader_token_usage_per_model" ], - "description": "Emitted when there is a delta (partial update) to the reasoning summary content." + "properties": { + "reward": { + "type": "number" + }, + "metadata": { + "$ref": "#/components/schemas/OpenAI.RunGraderResponseMetadata" + }, + "sub_rewards": { + "type": "object", + "unevaluatedProperties": {} + }, + "model_grader_token_usage_per_model": { + "type": "object", + "unevaluatedProperties": {} + } + } }, - "OpenAI.ResponseReasoningSummaryDoneEvent": { + "OpenAI.RunGraderResponseMetadata": { "type": "object", "required": [ + "name", "type", - "item_id", - "output_index", - "summary_index", - "text" + "errors", + "execution_time", + "scores", + "token_usage", + "sampled_model_name" + ], + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "errors": { + "$ref": "#/components/schemas/OpenAI.RunGraderResponseMetadataErrors" + }, + "execution_time": { + "type": "number" + }, + "scores": { + "type": "object", + "unevaluatedProperties": {} + }, + "token_usage": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "sampled_model_name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.RunGraderResponseMetadataErrors": { + "type": "object", + "required": [ + "formula_parse_error", + "sample_parse_error", + "truncated_observation_error", + "unresponsive_reward_error", + "invalid_variable_error", + "other_error", + "python_grader_server_error", + "python_grader_server_error_type", + "python_grader_runtime_error", + "python_grader_runtime_error_details", + "model_grader_server_error", + "model_grader_refusal_error", + "model_grader_parse_error", + "model_grader_server_error_details" + ], + "properties": { + "formula_parse_error": { + "type": "boolean" + }, + "sample_parse_error": { + "type": "boolean" + }, + "truncated_observation_error": { + "type": "boolean" + }, + "unresponsive_reward_error": { + "type": "boolean" + }, + "invalid_variable_error": { + "type": "boolean" + }, + "other_error": { + "type": "boolean" + }, + "python_grader_server_error": { + "type": "boolean" + }, + "python_grader_server_error_type": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "python_grader_runtime_error": { + "type": "boolean" + }, + "python_grader_runtime_error_details": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "model_grader_server_error": { + "type": "boolean" + }, + "model_grader_refusal_error": { + "type": "boolean" + }, + "model_grader_parse_error": { + "type": "boolean" + }, + "model_grader_server_error_details": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + } + }, + "OpenAI.RunObject": { + "type": "object", + "required": [ + "id", + "object", + "created_at", + "thread_id", + "assistant_id", + "status", + "required_action", + "last_error", + "expires_at", + "started_at", + "cancelled_at", + "failed_at", + "completed_at", + "incomplete_details", + "model", + "instructions", + "tools", + "metadata", + "usage", + "max_prompt_tokens", + "max_completion_tokens", + "truncation_strategy", + "tool_choice", + "parallel_tool_calls", + "response_format" ], "properties": { - "type": { + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "object": { "type": "string", "enum": [ - "response.reasoning_summary.done" + "thread.run" ], - "description": "The type of the event. Always 'response.reasoning_summary.done'." + "description": "The object type, which is always `thread.run`.", + "x-stainless-const": true }, - "item_id": { + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the run was created." + }, + "thread_id": { "type": "string", - "description": "The unique identifier of the item for which the reasoning summary is finalized." + "description": "The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run." }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item in the response's output array." + "assistant_id": { + "type": "string", + "description": "The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run." }, - "summary_index": { + "status": { + "$ref": "#/components/schemas/OpenAI.RunStatus" + }, + "required_action": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunObjectRequiredAction" + }, + { + "type": "null" + } + ], + "description": "Details on the action required to continue the run. Will be `null` if no action is required." + }, + "last_error": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunObjectLastError" + }, + { + "type": "null" + } + ], + "description": "The last error associated with this run. Will be `null` if there are no errors." + }, + "expires_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], "type": "integer", - "format": "int32", - "description": "The index of the summary part within the output item." + "format": "unixTimestamp", + "description": "The Unix timestamp (in seconds) for when the run will expire." }, - "text": { - "type": "string", - "description": "The finalized reasoning summary text." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when the reasoning summary content is finalized for an item." - }, - "OpenAI.ResponseReasoningSummaryPartAddedEvent": { - "type": "object", - "required": [ - "type", - "item_id", - "output_index", - "summary_index", - "part" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "response.reasoning_summary_part.added" + "started_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } ], - "description": "The type of the event. Always `response.reasoning_summary_part.added`." + "type": "integer", + "format": "unixTimestamp", + "description": "The Unix timestamp (in seconds) for when the run was started." }, - "item_id": { - "type": "string", - "description": "The ID of the item this summary part is associated with." + "cancelled_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp", + "description": "The Unix timestamp (in seconds) for when the run was cancelled." }, - "output_index": { + "failed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], "type": "integer", - "format": "int32", - "description": "The index of the output item this summary part is associated with." + "format": "unixTimestamp", + "description": "The Unix timestamp (in seconds) for when the run failed." }, - "summary_index": { + "completed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], "type": "integer", - "format": "int32", - "description": "The index of the summary part within the reasoning summary." + "format": "unixTimestamp", + "description": "The Unix timestamp (in seconds) for when the run was completed." }, - "part": { - "allOf": [ + "incomplete_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunObjectIncompleteDetails" + }, { - "$ref": "#/components/schemas/OpenAI.ReasoningItemSummaryPart" + "type": "null" } ], - "description": "The summary part that was added." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when a new reasoning summary part is added." - }, - "OpenAI.ResponseReasoningSummaryPartDoneEvent": { - "type": "object", - "required": [ - "type", - "item_id", - "output_index", - "summary_index", - "part" - ], - "properties": { - "type": { + "description": "Details on why the run is incomplete. Will be `null` if the run is not incomplete." + }, + "model": { "type": "string", - "enum": [ - "response.reasoning_summary_part.done" - ], - "description": "The type of the event. Always `response.reasoning_summary_part.done`." + "description": "The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run." }, - "item_id": { + "instructions": { "type": "string", - "description": "The ID of the item this summary part is associated with." + "description": "The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run." }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item this summary part is associated with." + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.AssistantTool" + }, + "maxItems": 20, + "description": "The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run.", + "default": [] }, - "summary_index": { - "type": "integer", - "format": "int32", - "description": "The index of the summary part within the reasoning summary." + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] }, - "part": { - "allOf": [ + "usage": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunCompletionUsage" + }, + { + "type": "null" + } + ] + }, + "temperature": { + "anyOf": [ + { + "type": "number" + }, { - "$ref": "#/components/schemas/OpenAI.ReasoningItemSummaryPart" + "type": "null" } ], - "description": "The completed summary part." + "description": "The sampling temperature used for this run. If not set, defaults to 1." + }, + "top_p": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "description": "The nucleus sampling value used for this run. If not set, defaults to 1." + }, + "max_prompt_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 256, + "description": "The maximum number of prompt tokens specified to have been used over the course of the run." + }, + "max_completion_tokens": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "minimum": 256, + "description": "The maximum number of completion tokens specified to have been used over the course of the run." + }, + "truncation_strategy": { + "$ref": "#/components/schemas/OpenAI.TruncationObject" + }, + "tool_choice": { + "$ref": "#/components/schemas/OpenAI.AssistantsApiToolChoiceOption" + }, + "parallel_tool_calls": { + "$ref": "#/components/schemas/OpenAI.ParallelToolCalls" + }, + "response_format": { + "$ref": "#/components/schemas/OpenAI.AssistantsApiResponseFormatOption" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + "description": "Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads).", + "title": "A run on a thread", + "x-oaiMeta": { + "name": "The run object", + "beta": true, + "example": "{\n \"id\": \"run_abc123\",\n \"object\": \"thread.run\",\n \"created_at\": 1698107661,\n \"assistant_id\": \"asst_abc123\",\n \"thread_id\": \"thread_abc123\",\n \"status\": \"completed\",\n \"started_at\": 1699073476,\n \"expires_at\": null,\n \"cancelled_at\": null,\n \"failed_at\": null,\n \"completed_at\": 1699073498,\n \"last_error\": null,\n \"model\": \"gpt-4o\",\n \"instructions\": null,\n \"tools\": [{\"type\": \"file_search\"}, {\"type\": \"code_interpreter\"}],\n \"metadata\": {},\n \"incomplete_details\": null,\n \"usage\": {\n \"prompt_tokens\": 123,\n \"completion_tokens\": 456,\n \"total_tokens\": 579\n },\n \"temperature\": 1.0,\n \"top_p\": 1.0,\n \"max_prompt_tokens\": 1000,\n \"max_completion_tokens\": 1000,\n \"truncation_strategy\": {\n \"type\": \"auto\",\n \"last_messages\": null\n },\n \"response_format\": \"auto\",\n \"tool_choice\": \"auto\",\n \"parallel_tool_calls\": true\n}\n" + } + }, + "OpenAI.RunObjectIncompleteDetails": { + "type": "object", + "properties": { + "reason": { + "type": "string", + "enum": [ + "max_completion_tokens", + "max_prompt_tokens" + ] } - ], - "description": "Emitted when a reasoning summary part is completed." + } }, - "OpenAI.ResponseReasoningSummaryTextDeltaEvent": { + "OpenAI.RunObjectLastError": { "type": "object", "required": [ - "type", - "item_id", - "output_index", - "summary_index", - "delta", - "obfuscation" + "code", + "message" ], "properties": { - "type": { + "code": { "type": "string", "enum": [ - "response.reasoning_summary_text.delta" - ], - "description": "The type of the event. Always `response.reasoning_summary_text.delta`." - }, - "item_id": { - "type": "string", - "description": "The ID of the item this summary text delta is associated with." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item this summary text delta is associated with." - }, - "summary_index": { - "type": "integer", - "format": "int32", - "description": "The index of the summary part within the reasoning summary." - }, - "delta": { - "type": "string", - "description": "The text delta that was added to the summary." - }, - "obfuscation": { - "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + "server_error", + "rate_limit_exceeded", + "invalid_prompt" + ] + }, + "message": { + "type": "string" } - ], - "description": "Emitted when a delta is added to a reasoning summary text." + } }, - "OpenAI.ResponseReasoningSummaryTextDoneEvent": { + "OpenAI.RunObjectRequiredAction": { "type": "object", "required": [ "type", - "item_id", - "output_index", - "summary_index", - "text" + "submit_tool_outputs" ], "properties": { "type": { "type": "string", "enum": [ - "response.reasoning_summary_text.done" + "submit_tool_outputs" ], - "description": "The type of the event. Always `response.reasoning_summary_text.done`." - }, - "item_id": { - "type": "string", - "description": "The ID of the item this summary text is associated with." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item this summary text is associated with." - }, - "summary_index": { - "type": "integer", - "format": "int32", - "description": "The index of the summary part within the reasoning summary." + "x-stainless-const": true }, - "text": { - "type": "string", - "description": "The full text of the completed reasoning summary." + "submit_tool_outputs": { + "$ref": "#/components/schemas/OpenAI.RunObjectRequiredActionSubmitToolOutputs" } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + } + }, + "OpenAI.RunObjectRequiredActionSubmitToolOutputs": { + "type": "object", + "required": [ + "tool_calls" + ], + "properties": { + "tool_calls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RunToolCallObject" + } } + } + }, + "OpenAI.RunStatus": { + "type": "string", + "enum": [ + "queued", + "in_progress", + "requires_action", + "cancelling", + "cancelled", + "failed", + "completed", + "incomplete", + "expired" ], - "description": "Emitted when a reasoning summary text is completed." + "description": "The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`." }, - "OpenAI.ResponseRefusalDeltaEvent": { + "OpenAI.RunStepCompletionUsage": { "type": "object", "required": [ - "type", - "item_id", - "output_index", - "content_index", - "delta", - "obfuscation" + "completion_tokens", + "prompt_tokens", + "total_tokens" ], "properties": { - "type": { - "type": "string", - "enum": [ - "response.refusal.delta" - ], - "description": "The type of the event. Always `response.refusal.delta`." - }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the refusal text is added to." - }, - "output_index": { + "completion_tokens": { "type": "integer", - "format": "int32", - "description": "The index of the output item that the refusal text is added to." + "description": "Number of completion tokens used over the course of the run step." }, - "content_index": { + "prompt_tokens": { "type": "integer", - "format": "int32", - "description": "The index of the content part that the refusal text is added to." - }, - "delta": { - "type": "string", - "description": "The refusal text that is added." + "description": "Number of prompt tokens used over the course of the run step." }, - "obfuscation": { - "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." + "total_tokens": { + "type": "integer", + "description": "Total number of tokens used (prompt + completion)." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Emitted when there is a partial refusal text." + "description": "Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`." }, - "OpenAI.ResponseRefusalDoneEvent": { + "OpenAI.RunStepDetailsMessageCreationObject": { "type": "object", "required": [ "type", - "item_id", - "output_index", - "content_index", - "refusal" + "message_creation" ], "properties": { "type": { "type": "string", "enum": [ - "response.refusal.done" + "message_creation" ], - "description": "The type of the event. Always `response.refusal.done`." - }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the refusal text is finalized." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item that the refusal text is finalized." - }, - "content_index": { - "type": "integer", - "format": "int32", - "description": "The index of the content part that the refusal text is finalized." + "description": "Always `message_creation`.", + "x-stainless-const": true }, - "refusal": { - "type": "string", - "description": "The refusal text that is finalized." + "message_creation": { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsMessageCreationObjectMessageCreation" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } + "description": "Details of the message creation by the run step.", + "title": "Message creation" + }, + "OpenAI.RunStepDetailsMessageCreationObjectMessageCreation": { + "type": "object", + "required": [ + "message_id" ], - "description": "Emitted when refusal text is finalized." + "properties": { + "message_id": { + "type": "string" + } + } }, - "OpenAI.ResponseStreamEvent": { + "OpenAI.RunStepDetailsToolCall": { "type": "object", "required": [ - "type", - "sequence_number" + "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEventType" - }, - "sequence_number": { - "type": "integer", - "format": "int32", - "description": "The sequence number for this event." + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallType" } }, "discriminator": { "propertyName": "type", "mapping": { - "response.completed": "#/components/schemas/OpenAI.ResponseCompletedEvent", - "response.content_part.added": "#/components/schemas/OpenAI.ResponseContentPartAddedEvent", - "response.content_part.done": "#/components/schemas/OpenAI.ResponseContentPartDoneEvent", - "response.created": "#/components/schemas/OpenAI.ResponseCreatedEvent", - "error": "#/components/schemas/OpenAI.ResponseErrorEvent", - "response.file_search_call.completed": "#/components/schemas/OpenAI.ResponseFileSearchCallCompletedEvent", - "response.file_search_call.in_progress": "#/components/schemas/OpenAI.ResponseFileSearchCallInProgressEvent", - "response.file_search_call.searching": "#/components/schemas/OpenAI.ResponseFileSearchCallSearchingEvent", - "response.function_call_arguments.delta": "#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDeltaEvent", - "response.function_call_arguments.done": "#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDoneEvent", - "response.in_progress": "#/components/schemas/OpenAI.ResponseInProgressEvent", - "response.failed": "#/components/schemas/OpenAI.ResponseFailedEvent", - "response.incomplete": "#/components/schemas/OpenAI.ResponseIncompleteEvent", - "response.output_item.added": "#/components/schemas/OpenAI.ResponseOutputItemAddedEvent", - "response.output_item.done": "#/components/schemas/OpenAI.ResponseOutputItemDoneEvent", - "response.refusal.delta": "#/components/schemas/OpenAI.ResponseRefusalDeltaEvent", - "response.refusal.done": "#/components/schemas/OpenAI.ResponseRefusalDoneEvent", - "response.output_text.delta": "#/components/schemas/OpenAI.ResponseTextDeltaEvent", - "response.output_text.done": "#/components/schemas/OpenAI.ResponseTextDoneEvent", - "response.reasoning_summary_part.added": "#/components/schemas/OpenAI.ResponseReasoningSummaryPartAddedEvent", - "response.reasoning_summary_part.done": "#/components/schemas/OpenAI.ResponseReasoningSummaryPartDoneEvent", - "response.reasoning_summary_text.delta": "#/components/schemas/OpenAI.ResponseReasoningSummaryTextDeltaEvent", - "response.reasoning_summary_text.done": "#/components/schemas/OpenAI.ResponseReasoningSummaryTextDoneEvent", - "response.web_search_call.completed": "#/components/schemas/OpenAI.ResponseWebSearchCallCompletedEvent", - "response.web_search_call.in_progress": "#/components/schemas/OpenAI.ResponseWebSearchCallInProgressEvent", - "response.web_search_call.searching": "#/components/schemas/OpenAI.ResponseWebSearchCallSearchingEvent", - "response.image_generation_call.completed": "#/components/schemas/OpenAI.ResponseImageGenCallCompletedEvent", - "response.image_generation_call.generating": "#/components/schemas/OpenAI.ResponseImageGenCallGeneratingEvent", - "response.image_generation_call.in_progress": "#/components/schemas/OpenAI.ResponseImageGenCallInProgressEvent", - "response.image_generation_call.partial_image": "#/components/schemas/OpenAI.ResponseImageGenCallPartialImageEvent", - "response.mcp_call.arguments_delta": "#/components/schemas/OpenAI.ResponseMCPCallArgumentsDeltaEvent", - "response.mcp_call.arguments_done": "#/components/schemas/OpenAI.ResponseMCPCallArgumentsDoneEvent", - "response.mcp_call.completed": "#/components/schemas/OpenAI.ResponseMCPCallCompletedEvent", - "response.mcp_call.failed": "#/components/schemas/OpenAI.ResponseMCPCallFailedEvent", - "response.mcp_call.in_progress": "#/components/schemas/OpenAI.ResponseMCPCallInProgressEvent", - "response.mcp_list_tools.completed": "#/components/schemas/OpenAI.ResponseMCPListToolsCompletedEvent", - "response.mcp_list_tools.failed": "#/components/schemas/OpenAI.ResponseMCPListToolsFailedEvent", - "response.mcp_list_tools.in_progress": "#/components/schemas/OpenAI.ResponseMCPListToolsInProgressEvent", - "response.queued": "#/components/schemas/OpenAI.ResponseQueuedEvent", - "response.reasoning.delta": "#/components/schemas/OpenAI.ResponseReasoningDeltaEvent", - "response.reasoning.done": "#/components/schemas/OpenAI.ResponseReasoningDoneEvent", - "response.reasoning_summary.delta": "#/components/schemas/OpenAI.ResponseReasoningSummaryDeltaEvent", - "response.reasoning_summary.done": "#/components/schemas/OpenAI.ResponseReasoningSummaryDoneEvent", - "response.code_interpreter_call_code.delta": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent", - "response.code_interpreter_call_code.done": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDoneEvent", - "response.code_interpreter_call.completed": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallCompletedEvent", - "response.code_interpreter_call.in_progress": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallInProgressEvent", - "response.code_interpreter_call.interpreting": "#/components/schemas/OpenAI.ResponseCodeInterpreterCallInterpretingEvent" + "code_interpreter": "#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeObject", + "file_search": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchObject", + "function": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFunctionObject" } } }, - "OpenAI.ResponseStreamEventType": { + "OpenAI.RunStepDetailsToolCallType": { "anyOf": [ { "type": "string" @@ -18970,985 +32045,1120 @@ { "type": "string", "enum": [ - "response.audio.delta", - "response.audio.done", - "response.audio_transcript.delta", - "response.audio_transcript.done", - "response.code_interpreter_call_code.delta", - "response.code_interpreter_call_code.done", - "response.code_interpreter_call.completed", - "response.code_interpreter_call.in_progress", - "response.code_interpreter_call.interpreting", - "response.completed", - "response.content_part.added", - "response.content_part.done", - "response.created", - "error", - "response.file_search_call.completed", - "response.file_search_call.in_progress", - "response.file_search_call.searching", - "response.function_call_arguments.delta", - "response.function_call_arguments.done", - "response.in_progress", - "response.failed", - "response.incomplete", - "response.output_item.added", - "response.output_item.done", - "response.refusal.delta", - "response.refusal.done", - "response.output_text.annotation.added", - "response.output_text.delta", - "response.output_text.done", - "response.reasoning_summary_part.added", - "response.reasoning_summary_part.done", - "response.reasoning_summary_text.delta", - "response.reasoning_summary_text.done", - "response.web_search_call.completed", - "response.web_search_call.in_progress", - "response.web_search_call.searching", - "response.image_generation_call.completed", - "response.image_generation_call.generating", - "response.image_generation_call.in_progress", - "response.image_generation_call.partial_image", - "response.mcp_call.arguments_delta", - "response.mcp_call.arguments_done", - "response.mcp_call.completed", - "response.mcp_call.failed", - "response.mcp_call.in_progress", - "response.mcp_list_tools.completed", - "response.mcp_list_tools.failed", - "response.mcp_list_tools.in_progress", - "response.queued", - "response.reasoning.delta", - "response.reasoning.done", - "response.reasoning_summary.delta", - "response.reasoning_summary.done" + "code_interpreter", + "file_search", + "function" ] } - ] + ] + }, + "OpenAI.RunStepDetailsToolCallsCodeObject": { + "type": "object", + "required": [ + "id", + "type", + "code_interpreter" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call." + }, + "type": { + "type": "string", + "enum": [ + "code_interpreter" + ], + "description": "The type of tool call. This is always going to be `code_interpreter` for this type of tool call.", + "x-stainless-const": true + }, + "code_interpreter": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeObjectCodeInterpreter" + } + ], + "description": "The Code Interpreter tool call definition." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCall" + } + ], + "description": "Details of the Code Interpreter tool call the run step was involved in.", + "title": "Code Interpreter tool call" + }, + "OpenAI.RunStepDetailsToolCallsCodeObjectCodeInterpreter": { + "type": "object", + "required": [ + "input", + "outputs" + ], + "properties": { + "input": { + "type": "string" + }, + "outputs": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeOutputLogsObject" + }, + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeOutputImageObject" + } + ] + } + } + } }, - "OpenAI.ResponseTextDeltaEvent": { + "OpenAI.RunStepDetailsToolCallsCodeOutputImageObject": { "type": "object", "required": [ "type", - "item_id", - "output_index", - "content_index", - "delta", - "obfuscation" + "image" ], "properties": { "type": { "type": "string", "enum": [ - "response.output_text.delta" + "image" ], - "description": "The type of the event. Always `response.output_text.delta`." - }, - "item_id": { - "type": "string", - "description": "The ID of the output item that the text delta was added to." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item that the text delta was added to." - }, - "content_index": { - "type": "integer", - "format": "int32", - "description": "The index of the content part that the text delta was added to." - }, - "delta": { - "type": "string", - "description": "The text delta that was added." + "description": "Always `image`.", + "x-stainless-const": true }, - "obfuscation": { - "type": "string", - "description": "A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks." + "image": { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeOutputImageObjectImage" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + "title": "Code Interpreter image output", + "x-stainless-naming": { + "java": { + "type_name": "ImageOutput" + }, + "kotlin": { + "type_name": "ImageOutput" } + } + }, + "OpenAI.RunStepDetailsToolCallsCodeOutputImageObjectImage": { + "type": "object", + "required": [ + "file_id" ], - "description": "Emitted when there is an additional text delta." + "properties": { + "file_id": { + "type": "string" + } + } }, - "OpenAI.ResponseTextDoneEvent": { + "OpenAI.RunStepDetailsToolCallsCodeOutputLogsObject": { "type": "object", "required": [ "type", - "item_id", - "output_index", - "content_index", - "text" + "logs" ], "properties": { "type": { "type": "string", "enum": [ - "response.output_text.done" + "logs" ], - "description": "The type of the event. Always `response.output_text.done`." + "description": "Always `logs`.", + "x-stainless-const": true }, - "item_id": { + "logs": { "type": "string", - "description": "The ID of the output item that the text content is finalized." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item that the text content is finalized." + "description": "The text output from the Code Interpreter tool call." + } + }, + "description": "Text output from the Code Interpreter tool call as part of a run step.", + "title": "Code Interpreter log output", + "x-stainless-naming": { + "java": { + "type_name": "LogsOutput" }, - "content_index": { - "type": "integer", - "format": "int32", - "description": "The index of the content part that the text content is finalized." + "kotlin": { + "type_name": "LogsOutput" + } + } + }, + "OpenAI.RunStepDetailsToolCallsFileSearchObject": { + "type": "object", + "required": [ + "id", + "type", + "file_search" + ], + "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call object." }, - "text": { + "type": { "type": "string", - "description": "The text content that is finalized." + "enum": [ + "file_search" + ], + "description": "The type of tool call. This is always going to be `file_search` for this type of tool call.", + "x-stainless-const": true + }, + "file_search": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchObjectFileSearch" + } + ], + "description": "For now, this is always going to be an empty object.", + "x-oaiTypeLabel": "map" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCall" } ], - "description": "Emitted when text content is finalized." + "title": "File search tool call" }, - "OpenAI.ResponseTextFormatConfiguration": { + "OpenAI.RunStepDetailsToolCallsFileSearchObjectFileSearch": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfigurationType" - } - }, - "discriminator": { - "propertyName": "type", - "mapping": { - "text": "#/components/schemas/OpenAI.ResponseTextFormatConfigurationText", - "json_object": "#/components/schemas/OpenAI.ResponseTextFormatConfigurationJsonObject", - "json_schema": "#/components/schemas/OpenAI.ResponseTextFormatConfigurationJsonSchema" + "ranking_options": { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchRankingOptionsObject" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchResultObject" + } } } }, - "OpenAI.ResponseTextFormatConfigurationJsonObject": { + "OpenAI.RunStepDetailsToolCallsFileSearchRankingOptionsObject": { "type": "object", "required": [ - "type" + "ranker", + "score_threshold" ], "properties": { - "type": { - "type": "string", - "enum": [ - "json_object" - ] + "ranker": { + "$ref": "#/components/schemas/OpenAI.FileSearchRanker" + }, + "score_threshold": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "The score threshold for the file search. All values must be a floating point number between 0 and 1." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" - } - ] + "description": "The ranking options for the file search.", + "title": "File search tool call ranking options" }, - "OpenAI.ResponseTextFormatConfigurationJsonSchema": { + "OpenAI.RunStepDetailsToolCallsFileSearchResultObject": { "type": "object", "required": [ - "type", - "name", - "schema" + "file_id", + "file_name", + "score" ], "properties": { - "type": { - "type": "string", - "enum": [ - "json_schema" - ], - "description": "The type of response format being defined. Always `json_schema`." - }, - "description": { + "file_id": { "type": "string", - "description": "A description of what the response format is for, used by the model to\ndetermine how to respond in the format." + "description": "The ID of the file that result was found in." }, - "name": { + "file_name": { "type": "string", - "description": "The name of the response format. Must be a-z, A-Z, 0-9, or contain\nunderscores and dashes, with a maximum length of 64." + "description": "The name of the file that result was found in." }, - "schema": { - "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema" + "score": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "The score of the result. All values must be a floating point number between 0 and 1." }, - "strict": { - "type": "boolean", - "nullable": true, - "description": "Whether to enable strict schema adherence when generating the output.\nIf set to true, the model will always follow the exact schema defined\nin the `schema` field. Only a subset of JSON Schema is supported when\n`strict` is `true`. To learn more, read the [Structured Outputs\nguide](/docs/guides/structured-outputs).", - "default": false + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchResultObjectContent" + }, + "description": "The content of the result that was found. The content is only included if requested via the include query parameter." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" + "description": "A result instance of the file search.", + "title": "File search tool call result", + "x-oaiTypeLabel": "map" + }, + "OpenAI.RunStepDetailsToolCallsFileSearchResultObjectContent": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ], + "x-stainless-const": true + }, + "text": { + "type": "string" } - ], - "description": "JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](/docs/guides/structured-outputs)." + } }, - "OpenAI.ResponseTextFormatConfigurationText": { + "OpenAI.RunStepDetailsToolCallsFunctionObject": { "type": "object", "required": [ - "type" + "id", + "type", + "function" ], "properties": { + "id": { + "type": "string", + "description": "The ID of the tool call object." + }, "type": { "type": "string", "enum": [ - "text" - ] + "function" + ], + "description": "The type of tool call. This is always going to be `function` for this type of tool call.", + "x-stainless-const": true + }, + "function": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsFunctionObjectFunction" + } + ], + "description": "The definition of the function that was called." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponseTextFormatConfiguration" - } - ] - }, - "OpenAI.ResponseTextFormatConfigurationType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string", - "enum": [ - "text", - "json_schema", - "json_object" - ] + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCall" } ], - "description": "An object specifying the format that the model must output.\n\nConfiguring `{ \"type\": \"json_schema\" }` enables Structured Outputs,\nwhich ensures the model will match your supplied JSON schema. Learn more in the\n[Structured Outputs guide](/docs/guides/structured-outputs).\n\nThe default format is `{ \"type\": \"text\" }` with no additional options.\n\n**Not recommended for gpt-4o and newer models:**\n\nSetting to `{ \"type\": \"json_object\" }` enables the older JSON mode, which\nensures the message the model generates is valid JSON. Using `json_schema`\nis preferred for models that support it." + "title": "Function tool call" }, - "OpenAI.ResponseUsage": { + "OpenAI.RunStepDetailsToolCallsFunctionObjectFunction": { "type": "object", "required": [ - "input_tokens", - "input_tokens_details", - "output_tokens", - "output_tokens_details", - "total_tokens" + "name", + "arguments", + "output" ], "properties": { - "input_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of input tokens." - }, - "input_tokens_details": { - "type": "object", - "properties": { - "cached_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens that were retrieved from the cache.\n[More on prompt caching](/docs/guides/prompt-caching)." - } - }, - "required": [ - "cached_tokens" - ], - "description": "A detailed breakdown of the input tokens." + "name": { + "type": "string" }, - "output_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of output tokens." + "arguments": { + "type": "string" }, - "output_tokens_details": { - "type": "object", - "properties": { - "reasoning_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of reasoning tokens." + "output": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - }, - "required": [ - "reasoning_tokens" - ], - "description": "A detailed breakdown of the output tokens." - }, - "total_tokens": { - "type": "integer", - "format": "int32", - "description": "The total number of tokens used." + ] } - }, - "description": "Represents token usage details including input tokens, output tokens,\na breakdown of output tokens, and the total tokens used." + } }, - "OpenAI.ResponseWebSearchCallCompletedEvent": { + "OpenAI.RunStepDetailsToolCallsObject": { "type": "object", "required": [ "type", - "output_index", - "item_id" + "tool_calls" ], "properties": { "type": { "type": "string", "enum": [ - "response.web_search_call.completed" + "tool_calls" ], - "description": "The type of the event. Always `response.web_search_call.completed`." - }, - "output_index": { - "type": "integer", - "format": "int32", - "description": "The index of the output item that the web search call is associated with." + "description": "Always `tool_calls`.", + "x-stainless-const": true }, - "item_id": { - "type": "string", - "description": "Unique ID for the output item associated with the web search call." + "tool_calls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCall" + }, + "description": "An array of tool calls the run step was involved in. These can be associated with one of three types of tools: `code_interpreter`, `file_search`, or `function`." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Note: web_search is not yet available via Azure OpenAI." + "description": "Details of the tool call.", + "title": "Tool calls" }, - "OpenAI.ResponseWebSearchCallInProgressEvent": { + "OpenAI.RunStepObject": { "type": "object", "required": [ + "id", + "object", + "created_at", + "assistant_id", + "thread_id", + "run_id", "type", - "output_index", - "item_id" + "status", + "step_details", + "last_error", + "expired_at", + "cancelled_at", + "failed_at", + "completed_at", + "metadata", + "usage" ], "properties": { - "type": { + "id": { + "type": "string", + "description": "The identifier of the run step, which can be referenced in API endpoints." + }, + "object": { "type": "string", "enum": [ - "response.web_search_call.in_progress" + "thread.run.step" ], - "description": "The type of the event. Always `response.web_search_call.in_progress`." + "description": "The object type, which is always `thread.run.step`.", + "x-stainless-const": true }, - "output_index": { + "created_at": { "type": "integer", - "format": "int32", - "description": "The index of the output item that the web search call is associated with." + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the run step was created." }, - "item_id": { + "assistant_id": { "type": "string", - "description": "Unique ID for the output item associated with the web search call." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Note: web_search is not yet available via Azure OpenAI." - }, - "OpenAI.ResponseWebSearchCallSearchingEvent": { - "type": "object", - "required": [ - "type", - "output_index", - "item_id" - ], - "properties": { + "description": "The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step." + }, + "thread_id": { + "type": "string", + "description": "The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run." + }, + "run_id": { + "type": "string", + "description": "The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of." + }, "type": { "type": "string", "enum": [ - "response.web_search_call.searching" + "message_creation", + "tool_calls" ], - "description": "The type of the event. Always `response.web_search_call.searching`." + "description": "The type of run step, which can be either `message_creation` or `tool_calls`." }, - "output_index": { + "status": { + "type": "string", + "enum": [ + "in_progress", + "cancelled", + "failed", + "completed", + "expired" + ], + "description": "The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`." + }, + "step_details": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsMessageCreationObject" + }, + { + "$ref": "#/components/schemas/OpenAI.RunStepDetailsToolCallsObject" + } + ], + "description": "The details of the run step." + }, + "last_error": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunStepObjectLastError" + }, + { + "type": "null" + } + ] + }, + "expired_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], "type": "integer", - "format": "int32", - "description": "The index of the output item that the web search call is associated with." + "format": "unixTimestamp" }, - "item_id": { - "type": "string", - "description": "Unique ID for the output item associated with the web search call." + "cancelled_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" + }, + "failed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" + }, + "completed_at": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + }, + "usage": { + "$ref": "#/components/schemas/OpenAI.RunStepCompletionUsage" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponseStreamEvent" - } - ], - "description": "Note: web_search is not yet available via Azure OpenAI." + "description": "Represents a step in execution of a run.", + "title": "Run steps", + "x-oaiMeta": { + "name": "The run step object", + "beta": true, + "example": "{\n \"id\": \"step_abc123\",\n \"object\": \"thread.run.step\",\n \"created_at\": 1699063291,\n \"run_id\": \"run_abc123\",\n \"assistant_id\": \"asst_abc123\",\n \"thread_id\": \"thread_abc123\",\n \"type\": \"message_creation\",\n \"status\": \"completed\",\n \"cancelled_at\": null,\n \"completed_at\": 1699063291,\n \"expired_at\": null,\n \"failed_at\": null,\n \"last_error\": null,\n \"step_details\": {\n \"type\": \"message_creation\",\n \"message_creation\": {\n \"message_id\": \"msg_abc123\"\n }\n },\n \"usage\": {\n \"prompt_tokens\": 123,\n \"completion_tokens\": 456,\n \"total_tokens\": 579\n }\n}\n" + } }, - "OpenAI.ResponsesAssistantMessageItemParam": { + "OpenAI.RunStepObjectLastError": { "type": "object", "required": [ - "role", - "content" + "code", + "message" ], "properties": { - "role": { + "code": { "type": "string", "enum": [ - "assistant" - ], - "description": "The role of the message, which is always `assistant`." + "server_error", + "rate_limit_exceeded" + ] }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemParam" + "message": { + "type": "string" } - ], - "description": "A message parameter item with the `assistant` role." + } }, - "OpenAI.ResponsesAssistantMessageItemResource": { + "OpenAI.RunToolCallObject": { "type": "object", "required": [ - "role", - "content" + "id", + "type", + "function" ], "properties": { - "role": { + "id": { + "type": "string", + "description": "The ID of the tool call. This ID must be referenced when you submit the tool outputs in using the [Submit tool outputs to run](https://platform.openai.com/docs/api-reference/runs/submitToolOutputs) endpoint." + }, + "type": { "type": "string", "enum": [ - "assistant" + "function" ], - "description": "The role of the message, which is always `assistant`." + "description": "The type of tool call the output is required for. For now, this is always `function`.", + "x-stainless-const": true }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." + "function": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.RunToolCallObjectFunction" + } + ], + "description": "The function definition." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemResource" - } + "description": "Tool call objects" + }, + "OpenAI.RunToolCallObjectFunction": { + "type": "object", + "required": [ + "name", + "arguments" ], - "description": "A message resource item with the `assistant` role." + "properties": { + "name": { + "type": "string" + }, + "arguments": { + "type": "string" + } + } }, - "OpenAI.ResponsesDeveloperMessageItemParam": { + "OpenAI.Screenshot": { "type": "object", "required": [ - "role", - "content" + "type" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "developer" + "screenshot" ], - "description": "The role of the message, which is always `developer`." - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." + "description": "Specifies the event type. For a screenshot action, this property is\n always set to `screenshot`.", + "x-stainless-const": true, + "default": "screenshot" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemParam" + "$ref": "#/components/schemas/OpenAI.ComputerAction" } ], - "description": "A message parameter item with the `developer` role." + "description": "A screenshot action.", + "title": "Screenshot" }, - "OpenAI.ResponsesDeveloperMessageItemResource": { + "OpenAI.Scroll": { "type": "object", "required": [ - "role", - "content" + "type", + "x", + "y", + "scroll_x", + "scroll_y" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "developer" + "scroll" ], - "description": "The role of the message, which is always `developer`." + "description": "Specifies the event type. For a scroll action, this property is\n always set to `scroll`.", + "x-stainless-const": true, + "default": "scroll" }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." + "x": { + "type": "integer", + "description": "The x-coordinate where the scroll occurred." + }, + "y": { + "type": "integer", + "description": "The y-coordinate where the scroll occurred." + }, + "scroll_x": { + "type": "integer", + "description": "The horizontal scroll distance." + }, + "scroll_y": { + "type": "integer", + "description": "The vertical scroll distance." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemResource" + "$ref": "#/components/schemas/OpenAI.ComputerAction" } ], - "description": "A message resource item with the `developer` role." + "description": "A scroll action.", + "title": "Scroll" + }, + "OpenAI.SearchContextSize": { + "type": "string", + "enum": [ + "low", + "medium", + "high" + ] }, - "OpenAI.ResponsesMessageItemParam": { + "OpenAI.SpecificApplyPatchParam": { "type": "object", "required": [ - "type", - "role" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "message" + "apply_patch" ], - "description": "The type of the responses item, which is always 'message'." - }, - "role": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageRole" - } - ], - "description": "The role associated with the message." - } - }, - "discriminator": { - "propertyName": "role", - "mapping": { - "user": "#/components/schemas/OpenAI.ResponsesUserMessageItemParam", - "system": "#/components/schemas/OpenAI.ResponsesSystemMessageItemParam", - "developer": "#/components/schemas/OpenAI.ResponsesDeveloperMessageItemParam", - "assistant": "#/components/schemas/OpenAI.ResponsesAssistantMessageItemParam" + "description": "The tool to call. Always `apply_patch`.", + "x-stainless-const": true, + "default": "apply_patch" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemParam" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } ], - "description": "A response message item, representing a role and content, as provided as client request parameters." + "description": "Forces the model to call the apply_patch tool when executing a tool call.", + "title": "Specific apply patch tool choice" }, - "OpenAI.ResponsesMessageItemResource": { + "OpenAI.SpecificFunctionShellParam": { "type": "object", "required": [ - "type", - "status", - "role" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "message" - ], - "description": "The type of the responses item, which is always 'message'." - }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "completed", - "incomplete" + "shell" ], - "description": "The status of the item. One of `in_progress`, `completed`, or\n`incomplete`. Populated when items are returned via API." - }, - "role": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageRole" - } - ], - "description": "The role associated with the message." - } - }, - "discriminator": { - "propertyName": "role", - "mapping": { - "user": "#/components/schemas/OpenAI.ResponsesUserMessageItemResource", - "system": "#/components/schemas/OpenAI.ResponsesSystemMessageItemResource", - "developer": "#/components/schemas/OpenAI.ResponsesDeveloperMessageItemResource", - "assistant": "#/components/schemas/OpenAI.ResponsesAssistantMessageItemResource" + "description": "The tool to call. Always `shell`.", + "x-stainless-const": true, + "default": "shell" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } ], - "description": "A response message resource item, representing a role and content, as provided on service responses." + "description": "Forces the model to call the shell tool when a tool call is required.", + "title": "Specific shell tool choice" }, - "OpenAI.ResponsesMessageRole": { - "type": "string", - "enum": [ - "system", - "developer", - "user", - "assistant" + "OpenAI.StaticChunkingStrategy": { + "type": "object", + "required": [ + "max_chunk_size_tokens", + "chunk_overlap_tokens" ], - "description": "The collection of valid roles for responses message items." + "properties": { + "max_chunk_size_tokens": { + "type": "integer", + "minimum": 100, + "maximum": 4096, + "description": "The maximum number of tokens in each chunk. The default value is `800`. The minimum value is `100` and the maximum value is `4096`." + }, + "chunk_overlap_tokens": { + "type": "integer", + "description": "The number of tokens that overlap between chunks. The default value is `400`.\n\n Note that the overlap must not exceed half of `max_chunk_size_tokens`." + } + } }, - "OpenAI.ResponsesSystemMessageItemParam": { + "OpenAI.StaticChunkingStrategyRequestParam": { "type": "object", "required": [ - "role", - "content" + "type", + "static" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "system" + "static" ], - "description": "The role of the message, which is always `system`." + "description": "Always `static`.", + "x-stainless-const": true }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." + "static": { + "$ref": "#/components/schemas/OpenAI.StaticChunkingStrategy" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemParam" + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" } ], - "description": "A message parameter item with the `system` role." + "description": "Customize your own chunking strategy by setting chunk size and chunk overlap.", + "title": "Static Chunking Strategy" }, - "OpenAI.ResponsesSystemMessageItemResource": { + "OpenAI.StaticChunkingStrategyResponseParam": { "type": "object", "required": [ - "role", - "content" + "type", + "static" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "system" + "static" ], - "description": "The role of the message, which is always `system`." + "description": "Always `static`.", + "x-stainless-const": true }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." + "static": { + "$ref": "#/components/schemas/OpenAI.StaticChunkingStrategy" } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemResource" + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponse" } ], - "description": "A message resource item with the `system` role." + "title": "Static Chunking Strategy" }, - "OpenAI.ResponsesUserMessageItemParam": { + "OpenAI.StopConfiguration": { + "anyOf": [ + { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "null" + } + ], + "description": "Not supported with latest reasoning models `o3` and `o4-mini`.\n\nUp to 4 sequences where the API will stop generating further tokens. The\nreturned text will not contain the stop sequence." + }, + "OpenAI.SubmitToolOutputsRunRequest": { "type": "object", "required": [ - "role", - "content" + "tool_outputs" ], "properties": { - "role": { - "type": "string", - "enum": [ - "user" - ], - "description": "The role of the message, which is always `user`." - }, - "content": { + "tool_outputs": { "type": "array", "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" + "$ref": "#/components/schemas/OpenAI.SubmitToolOutputsRunRequestToolOutputs" }, - "description": "The content associated with the message." + "description": "A list of tools for which the outputs are being submitted." + }, + "stream": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemParam" + } + }, + "OpenAI.SubmitToolOutputsRunRequestToolOutputs": { + "type": "object", + "properties": { + "tool_call_id": { + "type": "string" + }, + "output": { + "type": "string" } - ], - "description": "A message parameter item with the `user` role." + } }, - "OpenAI.ResponsesUserMessageItemResource": { + "OpenAI.Summary": { "type": "object", "required": [ - "role", - "content" + "type", + "text" ], "properties": { - "role": { + "type": { "type": "string", "enum": [ - "user" + "summary_text" ], - "description": "The role of the message, which is always `user`." + "description": "The type of the object. Always `summary_text`.", + "x-stainless-const": true, + "default": "summary_text" }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpenAI.ItemContent" - }, - "description": "The content associated with the message." + "text": { + "type": "string", + "description": "A summary of the reasoning output from the model so far." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ResponsesMessageItemResource" - } - ], - "description": "A message resource item with the `user` role." + "description": "A summary text from the model.", + "title": "Summary text" }, - "OpenAI.RunGraderRequest": { + "OpenAI.SummaryTextContent": { "type": "object", "required": [ - "grader", - "model_sample" + "type", + "text" ], "properties": { - "grader": { - "anyOf": [ - { - "$ref": "#/components/schemas/OpenAI.GraderStringCheck" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderPython" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderScoreModel" - }, - { - "$ref": "#/components/schemas/OpenAI.GraderMulti" - } + "type": { + "type": "string", + "enum": [ + "summary_text" ], - "description": "The grader used for the fine-tuning job." - }, - "item": { - "description": "The dataset item provided to the grader. This will be used to populate\nthe `item` namespace. See [the guide](/docs/guides/graders) for more details." + "description": "The type of the object. Always `summary_text`.", + "x-stainless-const": true, + "default": "summary_text" }, - "model_sample": { + "text": { "type": "string", - "description": "The model sample to be evaluated. This value will be used to populate\nthe `sample` namespace. See [the guide](/docs/guides/graders) for more details.\nThe `output_json` variable will be populated if the model sample is a\nvalid JSON string." + "description": "A summary of the reasoning output from the model so far." } - } + }, + "description": "A summary text from the model.", + "title": "Summary text" }, - "OpenAI.RunGraderResponse": { + "OpenAI.TextAnnotation": { "type": "object", "required": [ - "reward", - "metadata", - "sub_rewards", - "model_grader_token_usage_per_model" + "type" ], "properties": { - "reward": { - "type": "number", - "format": "float" - }, - "metadata": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "errors": { - "type": "object", - "properties": { - "formula_parse_error": { - "type": "boolean" - }, - "sample_parse_error": { - "type": "boolean" - }, - "truncated_observation_error": { - "type": "boolean" - }, - "unresponsive_reward_error": { - "type": "boolean" - }, - "invalid_variable_error": { - "type": "boolean" - }, - "other_error": { - "type": "boolean" - }, - "python_grader_server_error": { - "type": "boolean" - }, - "python_grader_server_error_type": { - "type": "string", - "nullable": true - }, - "python_grader_runtime_error": { - "type": "boolean" - }, - "python_grader_runtime_error_details": { - "type": "string", - "nullable": true - }, - "model_grader_server_error": { - "type": "boolean" - }, - "model_grader_refusal_error": { - "type": "boolean" - }, - "model_grader_parse_error": { - "type": "boolean" - }, - "model_grader_server_error_details": { - "type": "string", - "nullable": true - } - }, - "required": [ - "formula_parse_error", - "sample_parse_error", - "truncated_observation_error", - "unresponsive_reward_error", - "invalid_variable_error", - "other_error", - "python_grader_server_error", - "python_grader_server_error_type", - "python_grader_runtime_error", - "python_grader_runtime_error_details", - "model_grader_server_error", - "model_grader_refusal_error", - "model_grader_parse_error", - "model_grader_server_error_details" - ] - }, - "execution_time": { - "type": "number", - "format": "float" - }, - "scores": {}, - "token_usage": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "sampled_model_name": { - "type": "string", - "nullable": true - } - }, - "required": [ - "name", - "type", - "errors", - "execution_time", - "scores", - "token_usage", - "sampled_model_name" + "type": { + "$ref": "#/components/schemas/OpenAI.TextAnnotationType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "file_citation": "#/components/schemas/OpenAI.MessageContentTextAnnotationsFileCitationObject", + "file_path": "#/components/schemas/OpenAI.MessageContentTextAnnotationsFilePathObject" + } + } + }, + "OpenAI.TextAnnotationType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "string", + "enum": [ + "file_citation", + "file_path" ] + } + ] + }, + "OpenAI.TextContent": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ], + "x-stainless-const": true, + "default": "text" }, - "sub_rewards": {}, - "model_grader_token_usage_per_model": {} - } + "text": { + "type": "string" + } + }, + "description": "A text content.", + "title": "Text Content" }, - "OpenAI.StaticChunkingStrategy": { + "OpenAI.TextResponseFormatConfiguration": { "type": "object", "required": [ - "max_chunk_size_tokens", - "chunk_overlap_tokens" + "type" ], "properties": { - "max_chunk_size_tokens": { - "type": "integer", - "format": "int32", - "minimum": 100, - "maximum": 4096, - "description": "The maximum number of tokens in each chunk. The default value is `800`. The minimum value is `100` and the maximum value is `4096`." + "type": { + "$ref": "#/components/schemas/OpenAI.TextResponseFormatConfigurationType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "json_object": "#/components/schemas/OpenAI.ResponseFormatJsonObject", + "json_schema": "#/components/schemas/OpenAI.TextResponseFormatJsonSchema" + } + }, + "description": "An object specifying the format that the model must output.\n\nConfiguring `{ \"type\": \"json_schema\" }` enables Structured Outputs,\nwhich ensures the model will match your supplied JSON schema. Learn more in the\n[Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).\n\nThe default format is `{ \"type\": \"text\" }` with no additional options.\n\n*Not recommended for gpt-4o and newer models:**\n\nSetting to `{ \"type\": \"json_object\" }` enables the older JSON mode, which\nensures the message the model generates is valid JSON. Using `json_schema`\nis preferred for models that support it." + }, + "OpenAI.TextResponseFormatConfigurationType": { + "anyOf": [ + { + "type": "string" }, - "chunk_overlap_tokens": { - "type": "integer", - "format": "int32", - "description": "The number of tokens that overlap between chunks. The default value is `400`.\n\nNote that the overlap must not exceed half of `max_chunk_size_tokens`." + { + "type": "string", + "enum": [ + "text", + "json_schema", + "json_object" + ] } - } + ] }, - "OpenAI.StaticChunkingStrategyRequestParam": { + "OpenAI.TextResponseFormatJsonSchema": { "type": "object", "required": [ "type", - "static" + "name", + "schema" ], "properties": { "type": { "type": "string", "enum": [ - "static" + "json_schema" ], - "description": "Always `static`." + "description": "The type of response format being defined. Always `json_schema`.", + "x-stainless-const": true }, - "static": { - "$ref": "#/components/schemas/OpenAI.StaticChunkingStrategy" + "description": { + "type": "string", + "description": "A description of what the response format is for, used by the model to\n determine how to respond in the format." + }, + "name": { + "type": "string", + "description": "The name of the response format. Must be a-z, A-Z, 0-9, or contain\n underscores and dashes, with a maximum length of 64." + }, + "schema": { + "$ref": "#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema" + }, + "strict": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyRequestParam" + "$ref": "#/components/schemas/OpenAI.TextResponseFormatConfiguration" } ], - "description": "Customize your own chunking strategy by setting chunk size and chunk overlap." + "description": "JSON Schema response format. Used to generate structured JSON responses.\nLearn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs).", + "title": "JSON schema" }, - "OpenAI.StaticChunkingStrategyResponseParam": { + "OpenAI.ThreadObject": { "type": "object", "required": [ - "type", - "static" + "id", + "object", + "created_at", + "tool_resources", + "metadata" ], "properties": { - "type": { + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "object": { "type": "string", "enum": [ - "static" + "thread" ], - "description": "Always `static`." + "description": "The object type, which is always `thread`.", + "x-stainless-const": true }, - "static": { - "$ref": "#/components/schemas/OpenAI.StaticChunkingStrategy" + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the thread was created." + }, + "tool_resources": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ThreadObjectToolResources" + }, + { + "type": "null" + } + ] + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponseParam" - } - ] + "description": "Represents a thread that contains [messages](https://platform.openai.com/docs/api-reference/messages).", + "title": "Thread", + "x-oaiMeta": { + "name": "The thread object", + "beta": true, + "example": "{\n \"id\": \"thread_abc123\",\n \"object\": \"thread\",\n \"created_at\": 1698107661,\n \"metadata\": {}\n}\n" + } }, - "OpenAI.StopConfiguration": { - "anyOf": [ - { - "type": "string" + "OpenAI.ThreadObjectToolResources": { + "type": "object", + "properties": { + "code_interpreter": { + "$ref": "#/components/schemas/OpenAI.ThreadObjectToolResourcesCodeInterpreter" }, - { + "file_search": { + "$ref": "#/components/schemas/OpenAI.ThreadObjectToolResourcesFileSearch" + } + } + }, + "OpenAI.ThreadObjectToolResourcesCodeInterpreter": { + "type": "object", + "properties": { + "file_ids": { "type": "array", "items": { "type": "string" - } + }, + "maxItems": 20 } - ], - "description": "Not supported with latest reasoning models `o3` and `o4-mini`.\n\nUp to 4 sequences where the API will stop generating further tokens. The\nreturned text will not contain the stop sequence." + } + }, + "OpenAI.ThreadObjectToolResourcesFileSearch": { + "type": "object", + "properties": { + "vector_store_ids": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 1 + } + } + }, + "OpenAI.TokenLimits": { + "type": "object", + "properties": { + "post_instructions": { + "type": "integer", + "minimum": 0 + } + } }, "OpenAI.Tool": { "type": "object", @@ -19963,41 +33173,64 @@ "discriminator": { "propertyName": "type", "mapping": { + "code_interpreter": "#/components/schemas/OpenAI.CodeInterpreterTool", "function": "#/components/schemas/OpenAI.FunctionTool", "file_search": "#/components/schemas/OpenAI.FileSearchTool", "computer_use_preview": "#/components/schemas/OpenAI.ComputerUsePreviewTool", - "web_search_preview": "#/components/schemas/OpenAI.WebSearchPreviewTool", - "code_interpreter": "#/components/schemas/OpenAI.CodeInterpreterTool", + "web_search": "#/components/schemas/OpenAI.WebSearchTool", + "mcp": "#/components/schemas/OpenAI.MCPTool", "image_generation": "#/components/schemas/OpenAI.ImageGenTool", - "local_shell": "#/components/schemas/OpenAI.LocalShellTool", - "mcp": "#/components/schemas/OpenAI.MCPTool" + "local_shell": "#/components/schemas/OpenAI.LocalShellToolParam", + "shell": "#/components/schemas/OpenAI.FunctionShellToolParam", + "custom": "#/components/schemas/OpenAI.CustomToolParam", + "web_search_preview": "#/components/schemas/OpenAI.WebSearchPreviewTool", + "apply_patch": "#/components/schemas/OpenAI.ApplyPatchToolParam" } - } + }, + "description": "A tool that can be used to generate a response." }, - "OpenAI.ToolChoiceObject": { + "OpenAI.ToolChoiceAllowed": { "type": "object", "required": [ - "type" + "type", + "mode", + "tools" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObjectType" + "type": "string", + "enum": [ + "allowed_tools" + ], + "description": "Allowed tool configuration type. Always `allowed_tools`.", + "x-stainless-const": true + }, + "mode": { + "type": "string", + "enum": [ + "auto", + "required" + ], + "description": "Constrains the tools available to the model to a pre-defined set.\n\n `auto` allows the model to pick from among the allowed tools and generate a\n message.\n\n `required` requires the model to call one or more of the allowed tools." + }, + "tools": { + "type": "array", + "items": { + "type": "object", + "unevaluatedProperties": {} + }, + "description": "A list of tool definitions that the model should be allowed to call.\n\n For the Responses API, the list of tool definitions might look like:\n ```json\n [\n { \"type\": \"function\", \"name\": \"get_weather\" },\n { \"type\": \"mcp\", \"server_label\": \"deepwiki\" },\n { \"type\": \"image_generation\" }\n ]\n ```" } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "file_search": "#/components/schemas/OpenAI.ToolChoiceObjectFileSearch", - "computer_use_preview": "#/components/schemas/OpenAI.ToolChoiceObjectComputer", - "web_search_preview": "#/components/schemas/OpenAI.ToolChoiceObjectWebSearch", - "image_generation": "#/components/schemas/OpenAI.ToolChoiceObjectImageGen", - "code_interpreter": "#/components/schemas/OpenAI.ToolChoiceObjectCodeInterpreter", - "function": "#/components/schemas/OpenAI.ToolChoiceObjectFunction", - "mcp": "#/components/schemas/OpenAI.ToolChoiceObjectMCP" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } - } + ], + "description": "Constrains the tools available to the model to a pre-defined set.", + "title": "Allowed tools" }, - "OpenAI.ToolChoiceObjectCodeInterpreter": { + "OpenAI.ToolChoiceCodeInterpreter": { "type": "object", "required": [ "type" @@ -20012,11 +33245,12 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } - ] + ], + "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools)." }, - "OpenAI.ToolChoiceObjectComputer": { + "OpenAI.ToolChoiceComputerUsePreview": { "type": "object", "required": [ "type" @@ -20031,11 +33265,40 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } - ] + ], + "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools)." + }, + "OpenAI.ToolChoiceCustom": { + "type": "object", + "required": [ + "type", + "name" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "custom" + ], + "description": "For custom tool calling, the type is always `custom`.", + "x-stainless-const": true + }, + "name": { + "type": "string", + "description": "The name of the custom tool to call." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + } + ], + "description": "Use this option to force the model to call a specific custom tool.", + "title": "Custom tool" }, - "OpenAI.ToolChoiceObjectFileSearch": { + "OpenAI.ToolChoiceFileSearch": { "type": "object", "required": [ "type" @@ -20050,11 +33313,12 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } - ] + ], + "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools)." }, - "OpenAI.ToolChoiceObjectFunction": { + "OpenAI.ToolChoiceFunction": { "type": "object", "required": [ "type", @@ -20066,7 +33330,8 @@ "enum": [ "function" ], - "description": "For function calling, the type is always `function`." + "description": "For function calling, the type is always `function`.", + "x-stainless-const": true }, "name": { "type": "string", @@ -20075,12 +33340,13 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } ], - "description": "Use this option to force the model to call a specific function." + "description": "Use this option to force the model to call a specific function.", + "title": "Function tool" }, - "OpenAI.ToolChoiceObjectImageGen": { + "OpenAI.ToolChoiceImageGeneration": { "type": "object", "required": [ "type" @@ -20095,11 +33361,12 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } - ] + ], + "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools)." }, - "OpenAI.ToolChoiceObjectMCP": { + "OpenAI.ToolChoiceMCP": { "type": "object", "required": [ "type", @@ -20111,26 +33378,71 @@ "enum": [ "mcp" ], - "description": "For MCP tools, the type is always `mcp`." + "description": "For MCP tools, the type is always `mcp`.", + "x-stainless-const": true }, "server_label": { "type": "string", "description": "The label of the MCP server to use." }, "name": { - "type": "string", - "nullable": true, - "description": "The name of the tool to call on the server." + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } ], - "description": "Use this option to force the model to call a specific tool on a remote MCP server." + "description": "Use this option to force the model to call a specific tool on a remote MCP server.", + "title": "MCP tool" + }, + "OpenAI.ToolChoiceOptions": { + "type": "string", + "enum": [ + "none", + "auto", + "required" + ], + "description": "Controls which (if any) tool is called by the model.\n\n`none` means the model will not call any tool and instead generates a message.\n\n`auto` means the model can pick between generating a message or calling one or\nmore tools.\n\n`required` means the model must call one or more tools.", + "title": "Tool choice mode" }, - "OpenAI.ToolChoiceObjectType": { + "OpenAI.ToolChoiceParam": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParamType" + } + }, + "discriminator": { + "propertyName": "type", + "mapping": { + "allowed_tools": "#/components/schemas/OpenAI.ToolChoiceAllowed", + "mcp": "#/components/schemas/OpenAI.ToolChoiceMCP", + "custom": "#/components/schemas/OpenAI.ToolChoiceCustom", + "apply_patch": "#/components/schemas/OpenAI.SpecificApplyPatchParam", + "shell": "#/components/schemas/OpenAI.SpecificFunctionShellParam", + "file_search": "#/components/schemas/OpenAI.ToolChoiceFileSearch", + "web_search_preview": "#/components/schemas/OpenAI.ToolChoiceWebSearchPreview", + "computer_use_preview": "#/components/schemas/OpenAI.ToolChoiceComputerUsePreview", + "web_search_preview_2025_03_11": "#/components/schemas/OpenAI.ToolChoiceWebSearchPreview20250311", + "image_generation": "#/components/schemas/OpenAI.ToolChoiceImageGeneration", + "code_interpreter": "#/components/schemas/OpenAI.ToolChoiceCodeInterpreter" + } + }, + "description": "How the model should select which tool (or tools) to use when generating\na response. See the `tools` parameter to see how to specify which tools\nthe model can call." + }, + "OpenAI.ToolChoiceParamType": { "anyOf": [ { "type": "string" @@ -20138,19 +33450,23 @@ { "type": "string", "enum": [ - "file_search", + "allowed_tools", "function", - "computer_use_preview", + "mcp", + "custom", + "apply_patch", + "shell", + "file_search", "web_search_preview", + "computer_use_preview", + "web_search_preview_2025_03_11", "image_generation", - "code_interpreter", - "mcp" + "code_interpreter" ] } - ], - "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](/docs/guides/tools)." + ] }, - "OpenAI.ToolChoiceObjectWebSearch": { + "OpenAI.ToolChoiceWebSearchPreview": { "type": "object", "required": [ "type" @@ -20165,19 +33481,30 @@ }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ToolChoiceObject" + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" } ], "description": "Note: web_search is not yet available via Azure OpenAI." }, - "OpenAI.ToolChoiceOptions": { - "type": "string", - "enum": [ - "none", - "auto", - "required" + "OpenAI.ToolChoiceWebSearchPreview20250311": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "web_search_preview_2025_03_11" + ] + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ToolChoiceParam" + } ], - "description": "Controls which (if any) tool is called by the model.\n\n`none` means the model will not call any tool and instead generates a message.\n\n`auto` means the model can pick between generating a message or calling one or\nmore tools.\n\n`required` means the model must call one or more tools." + "description": "Indicates that the model should use a built-in tool to generate a response.\n[Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools)." }, "OpenAI.ToolType": { "anyOf": [ @@ -20187,18 +33514,28 @@ { "type": "string", "enum": [ - "file_search", "function", + "file_search", "computer_use_preview", - "web_search_preview", + "web_search", "mcp", "code_interpreter", "image_generation", - "local_shell" + "local_shell", + "shell", + "custom", + "web_search_preview", + "apply_patch" ] } - ], - "description": "A tool that can be used to generate a response." + ] + }, + "OpenAI.ToolsArray": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.Tool" + }, + "description": "An array of tools the model may call while generating a response. You\ncan specify which tool to use by setting the `tool_choice` parameter.\n\nWe support the following categories of tools:\n- **Built-in tools**: Tools that are provided by OpenAI that extend the\nmodel's capabilities, like [web search](https://platform.openai.com/docs/guides/tools-web-search)\nor [file search](https://platform.openai.com/docs/guides/tools-file-search). Learn more about\n[built-in tools](https://platform.openai.com/docs/guides/tools).\n- **MCP Tools**: Integrations with third-party systems via custom MCP servers\nor predefined connectors such as Google Drive and SharePoint. Learn more about\n[MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).\n- **Function calls (custom tools)**: Functions that are defined by you,\nenabling the model to call your own code with strongly typed arguments\nand outputs. Learn more about\n[function calling](https://platform.openai.com/docs/guides/function-calling). You can also use\ncustom tools to call your own code." }, "OpenAI.TopLogProb": { "type": "object", @@ -20212,91 +33549,278 @@ "type": "string" }, "logprob": { - "type": "number", - "format": "float" + "type": "number" }, "bytes": { "type": "array", "items": { - "type": "integer", - "format": "int32" + "type": "integer" } } }, - "description": "The top log probability of a token." + "description": "The top log probability of a token.", + "title": "Top log probability" }, - "OpenAI.UpdateVectorStoreFileAttributesRequest": { + "OpenAI.TranscriptionSegment": { "type": "object", "required": [ - "attributes" + "id", + "seek", + "start", + "end", + "text", + "tokens", + "temperature", + "avg_logprob", + "compression_ratio", + "no_speech_prob" ], "properties": { - "attributes": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" - } - ], - "nullable": true + "id": { + "type": "integer", + "description": "Unique identifier of the segment." + }, + "seek": { + "type": "integer", + "description": "Seek offset of the segment." + }, + "start": { + "type": "number", + "format": "float", + "description": "Start time of the segment in seconds." + }, + "end": { + "type": "number", + "format": "float", + "description": "End time of the segment in seconds." + }, + "text": { + "type": "string", + "description": "Text content of the segment." + }, + "tokens": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "Array of token IDs for the text content." + }, + "temperature": { + "type": "number", + "format": "float", + "description": "Temperature parameter used for generating the segment." + }, + "avg_logprob": { + "type": "number", + "format": "float", + "description": "Average logprob of the segment. If the value is lower than -1, consider the logprobs failed." + }, + "compression_ratio": { + "type": "number", + "format": "float", + "description": "Compression ratio of the segment. If the value is greater than 2.4, consider the compression failed." + }, + "no_speech_prob": { + "type": "number", + "format": "float", + "description": "Probability of no speech in the segment. If the value is higher than 1.0 and the `avg_logprob` is below -1, consider this segment silent." } } }, - "OpenAI.UpdateVectorStoreRequest": { + "OpenAI.TranscriptionWord": { "type": "object", + "required": [ + "word", + "start", + "end" + ], "properties": { - "name": { + "word": { "type": "string", - "nullable": true, - "description": "The name of the vector store." + "description": "The text content of the word." }, - "expires_after": { - "type": "object", - "allOf": [ + "start": { + "type": "number", + "format": "float", + "description": "Start time of the word in seconds." + }, + "end": { + "type": "number", + "format": "float", + "description": "End time of the word in seconds." + } + } + }, + "OpenAI.TruncationObject": { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "auto", + "last_messages" + ], + "description": "The truncation strategy to use for the thread. The default is `auto`. If set to `last_messages`, the thread will be truncated to the n most recent messages in the thread. When set to `auto`, messages in the middle of the thread will be dropped to fit the context length of the model, `max_prompt_tokens`." + }, + "last_messages": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.VectorStoreExpirationAfter" + "type": "integer" + }, + { + "type": "null" } + ] + } + }, + "description": "Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run.", + "title": "Thread Truncation Controls" + }, + "OpenAI.Type": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "type" ], - "nullable": true + "description": "Specifies the event type. For a type action, this property is\n always set to `type`.", + "x-stainless-const": true, + "default": "type" }, + "text": { + "type": "string", + "description": "The text to type." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComputerAction" + } + ], + "description": "An action to type in text.", + "title": "Type" + }, + "OpenAI.UpdateConversationBody": { + "type": "object", + "required": [ + "metadata" + ], + "properties": { "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ], + "description": "Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.\n Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters." } } }, - "OpenAI.ValidateGraderRequest": { + "OpenAI.UpdateVectorStoreFileAttributesRequest": { "type": "object", "required": [ - "grader" + "attributes" ], "properties": { - "grader": { + "attributes": { "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.GraderStringCheck" + "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" }, { - "$ref": "#/components/schemas/OpenAI.GraderTextSimilarity" - }, + "type": "null" + } + ] + } + }, + "x-oaiMeta": { + "name": "Update vector store file attributes request" + } + }, + "OpenAI.UpdateVectorStoreRequest": { + "type": "object", + "properties": { + "name": { + "anyOf": [ { - "$ref": "#/components/schemas/OpenAI.GraderPython" + "type": "string" }, { - "$ref": "#/components/schemas/OpenAI.GraderScoreModel" + "type": "null" + } + ], + "description": "The name of the vector store." + }, + "expires_after": { + "$ref": "#/components/schemas/OpenAI.VectorStoreExpirationAfter" + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" }, { - "$ref": "#/components/schemas/OpenAI.GraderMulti" + "type": "null" } - ], - "description": "The grader used for the fine-tuning job." + ] } } }, + "OpenAI.UrlCitationBody": { + "type": "object", + "required": [ + "type", + "url", + "start_index", + "end_index", + "title" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "url_citation" + ], + "description": "The type of the URL citation. Always `url_citation`.", + "x-stainless-const": true, + "default": "url_citation" + }, + "url": { + "type": "string", + "description": "The URL of the web resource." + }, + "start_index": { + "type": "integer", + "description": "The index of the first character of the URL citation in the message." + }, + "end_index": { + "type": "integer", + "description": "The index of the last character of the URL citation in the message." + }, + "title": { + "type": "string", + "description": "The title of the web resource." + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.Annotation" + } + ], + "description": "A citation for a web resource used to generate a model response.", + "title": "URL citation" + }, "OpenAI.ValidateGraderResponse": { "type": "object", "properties": { @@ -20316,11 +33840,15 @@ }, { "$ref": "#/components/schemas/OpenAI.GraderMulti" + }, + { + "$ref": "#/components/schemas/GraderEndpoint" } ], "description": "The grader used for the fine-tuning job." } - } + }, + "title": "ValidateGraderResponse" }, "OpenAI.VectorStoreExpirationAfter": { "type": "object", @@ -20334,38 +33862,21 @@ "enum": [ "last_active_at" ], - "description": "Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`." + "description": "Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`.", + "x-stainless-const": true }, "days": { "type": "integer", - "format": "int32", "minimum": 1, "maximum": 365, "description": "The number of days after the anchor time that the vector store will expire." } }, - "description": "The expiration policy for a vector store." + "description": "The expiration policy for a vector store.", + "title": "Vector store expiration policy" }, "OpenAI.VectorStoreFileAttributes": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "integer", - "format": "int32" - }, - { - "type": "number", - "format": "float" - } - ] - }, + "type": "object", "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard. Keys are strings\nwith a maximum length of 64 characters. Values are strings with a maximum\nlength of 512 characters, booleans, or numbers.", "x-oaiTypeLabel": "map" }, @@ -20389,7 +33900,8 @@ "enum": [ "vector_store.files_batch" ], - "description": "The object type, which is always `vector_store.file_batch`." + "description": "The object type, which is always `vector_store.file_batch`.", + "x-stainless-const": true }, "created_at": { "type": "integer", @@ -20398,7 +33910,7 @@ }, "vector_store_id": { "type": "string", - "description": "The ID of the [vector store](/docs/api-reference/vector-stores/object) that the [File](/docs/api-reference/files) is attached to." + "description": "The ID of the [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) that the [File](https://platform.openai.com/docs/api-reference/files) is attached to." }, "status": { "type": "string", @@ -20411,44 +33923,43 @@ "description": "The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`." }, "file_counts": { - "type": "object", - "properties": { - "in_progress": { - "type": "integer", - "format": "int32", - "description": "The number of files that are currently being processed." - }, - "completed": { - "type": "integer", - "format": "int32", - "description": "The number of files that have been processed." - }, - "failed": { - "type": "integer", - "format": "int32", - "description": "The number of files that have failed to process." - }, - "cancelled": { - "type": "integer", - "format": "int32", - "description": "The number of files that where cancelled." - }, - "total": { - "type": "integer", - "format": "int32", - "description": "The total number of files." - } - }, - "required": [ - "in_progress", - "completed", - "failed", - "cancelled", - "total" - ] + "$ref": "#/components/schemas/OpenAI.VectorStoreFileBatchObjectFileCounts" } }, - "description": "A batch of files attached to a vector store." + "description": "A batch of files attached to a vector store.", + "title": "Vector store file batch", + "x-oaiMeta": { + "name": "The vector store files batch object", + "beta": true, + "example": "{\n \"id\": \"vsfb_123\",\n \"object\": \"vector_store.files_batch\",\n \"created_at\": 1698107661,\n \"vector_store_id\": \"vs_abc123\",\n \"status\": \"completed\",\n \"file_counts\": {\n \"in_progress\": 0,\n \"completed\": 100,\n \"failed\": 0,\n \"cancelled\": 0,\n \"total\": 100\n }\n}\n" + } + }, + "OpenAI.VectorStoreFileBatchObjectFileCounts": { + "type": "object", + "required": [ + "in_progress", + "completed", + "failed", + "cancelled", + "total" + ], + "properties": { + "in_progress": { + "type": "integer" + }, + "completed": { + "type": "integer" + }, + "failed": { + "type": "integer" + }, + "cancelled": { + "type": "integer" + }, + "total": { + "type": "integer" + } + } }, "OpenAI.VectorStoreFileObject": { "type": "object", @@ -20471,11 +33982,11 @@ "enum": [ "vector_store.file" ], - "description": "The object type, which is always `vector_store.file`." + "description": "The object type, which is always `vector_store.file`.", + "x-stainless-const": true }, "usage_bytes": { "type": "integer", - "format": "int32", "description": "The total vector store usage in bytes. Note that this may be different from the original file size." }, "created_at": { @@ -20485,7 +33996,7 @@ }, "vector_store_id": { "type": "string", - "description": "The ID of the [vector store](/docs/api-reference/vector-stores/object) that the [File](/docs/api-reference/files) is attached to." + "description": "The ID of the [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) that the [File](https://platform.openai.com/docs/api-reference/files) is attached to." }, "status": { "type": "string", @@ -20498,160 +34009,390 @@ "description": "The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use." }, "last_error": { - "type": "object", - "properties": { - "code": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileObjectLastError" + }, + { + "type": "null" + } + ] + }, + "chunking_strategy": { + "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponse" + }, + "attributes": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" + }, + { + "type": "null" + } + ] + } + }, + "description": "A list of files attached to a vector store.", + "title": "Vector store files", + "x-oaiMeta": { + "name": "The vector store file object", + "beta": true, + "example": "{\n \"id\": \"file-abc123\",\n \"object\": \"vector_store.file\",\n \"usage_bytes\": 1234,\n \"created_at\": 1698107661,\n \"vector_store_id\": \"vs_abc123\",\n \"status\": \"completed\",\n \"last_error\": null,\n \"chunking_strategy\": {\n \"type\": \"static\",\n \"static\": {\n \"max_chunk_size_tokens\": 800,\n \"chunk_overlap_tokens\": 400\n }\n }\n}\n" + } + }, + "OpenAI.VectorStoreFileObjectLastError": { + "type": "object", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "string", + "enum": [ + "server_error", + "unsupported_file", + "invalid_file" + ] + }, + "message": { + "type": "string" + } + } + }, + "OpenAI.VectorStoreObject": { + "type": "object", + "required": [ + "id", + "object", + "created_at", + "name", + "usage_bytes", + "file_counts", + "status", + "last_active_at", + "metadata" + ], + "properties": { + "id": { + "type": "string", + "description": "The identifier, which can be referenced in API endpoints." + }, + "object": { + "type": "string", + "enum": [ + "vector_store" + ], + "description": "The object type, which is always `vector_store`.", + "x-stainless-const": true + }, + "created_at": { + "type": "integer", + "format": "unixtime", + "description": "The Unix timestamp (in seconds) for when the vector store was created." + }, + "name": { + "type": "string", + "description": "The name of the vector store." + }, + "usage_bytes": { + "type": "integer", + "description": "The total number of bytes used by the files in the vector store." + }, + "file_counts": { + "$ref": "#/components/schemas/OpenAI.VectorStoreObjectFileCounts" + }, + "status": { + "type": "string", + "enum": [ + "expired", + "in_progress", + "completed" + ], + "description": "The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use." + }, + "expires_after": { + "$ref": "#/components/schemas/OpenAI.VectorStoreExpirationAfter" + }, + "expires_at": { + "anyOf": [ + { "type": "string", - "enum": [ - "server_error", - "unsupported_file", - "invalid_file" - ], - "description": "One of `server_error` or `rate_limit_exceeded`." + "format": "date-time" }, - "message": { + { + "type": "null" + } + ], + "type": "integer", + "format": "unixTimestamp" + }, + "last_active_at": { + "anyOf": [ + { "type": "string", - "description": "A human-readable description of the error." + "format": "date-time" + }, + { + "type": "null" } - }, - "required": [ - "code", - "message" ], - "nullable": true, - "description": "The last error associated with this vector store file. Will be `null` if there are no errors." + "type": "integer", + "format": "unixTimestamp" + }, + "metadata": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.Metadata" + }, + { + "type": "null" + } + ] + } + }, + "description": "A vector store is a collection of processed files can be used by the `file_search` tool.", + "title": "Vector store", + "x-oaiMeta": { + "name": "The vector store object", + "example": "{\n \"id\": \"vs_123\",\n \"object\": \"vector_store\",\n \"created_at\": 1698107661,\n \"usage_bytes\": 123456,\n \"last_active_at\": 1698107661,\n \"name\": \"my_vector_store\",\n \"status\": \"completed\",\n \"file_counts\": {\n \"in_progress\": 0,\n \"completed\": 100,\n \"cancelled\": 0,\n \"failed\": 0,\n \"total\": 100\n },\n \"last_used_at\": 1698107661\n}\n" + } + }, + "OpenAI.VectorStoreObjectFileCounts": { + "type": "object", + "required": [ + "in_progress", + "completed", + "failed", + "cancelled", + "total" + ], + "properties": { + "in_progress": { + "type": "integer" + }, + "completed": { + "type": "integer" + }, + "failed": { + "type": "integer" + }, + "cancelled": { + "type": "integer" + }, + "total": { + "type": "integer" + } + } + }, + "OpenAI.VectorStoreSearchRequest": { + "type": "object", + "required": [ + "query" + ], + "properties": { + "query": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "A query string for a search" + }, + "rewrite_query": { + "type": "boolean", + "description": "Whether to rewrite the natural language query for vector search." + }, + "max_num_results": { + "type": "integer", + "minimum": 1, + "maximum": 50, + "description": "The maximum number of results to return. This number should be between 1 and 50 inclusive.", + "default": 10 + }, + "filters": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComparisonFilter" + }, + { + "$ref": "#/components/schemas/OpenAI.CompoundFilter" + } + ], + "description": "A filter to apply based on file attributes." + }, + "ranking_options": { + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.VectorStoreSearchRequestRankingOptions" + } + ], + "description": "Ranking options for search." + } + }, + "x-oaiMeta": { + "name": "Vector store search request" + } + }, + "OpenAI.VectorStoreSearchRequestRankingOptions": { + "type": "object", + "properties": { + "ranker": { + "type": "string", + "enum": [ + "none", + "auto", + "default-2024-11-15" + ], + "default": "auto" + }, + "score_threshold": { + "type": "number", + "minimum": 0, + "maximum": 1 + } + } + }, + "OpenAI.VectorStoreSearchResultContentObject": { + "type": "object", + "required": [ + "type", + "text" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ], + "description": "The type of content." + }, + "text": { + "type": "string", + "description": "The text content returned from search." + } + }, + "x-oaiMeta": { + "name": "Vector store search result content object" + } + }, + "OpenAI.VectorStoreSearchResultItem": { + "type": "object", + "required": [ + "file_id", + "filename", + "score", + "attributes", + "content" + ], + "properties": { + "file_id": { + "type": "string", + "description": "The ID of the vector store file." }, - "chunking_strategy": { - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ChunkingStrategyResponseParam" - } - ], - "description": "The strategy used to chunk the file." + "filename": { + "type": "string", + "description": "The name of the vector store file." + }, + "score": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "The similarity score for the result." }, "attributes": { - "type": "object", - "allOf": [ + "anyOf": [ { "$ref": "#/components/schemas/OpenAI.VectorStoreFileAttributes" + }, + { + "type": "null" } - ], - "nullable": true + ] + }, + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.VectorStoreSearchResultContentObject" + }, + "description": "Content chunks from the file." } }, - "description": "A list of files attached to a vector store." + "x-oaiMeta": { + "name": "Vector store search result item" + } }, - "OpenAI.VectorStoreObject": { + "OpenAI.VectorStoreSearchResultsPage": { "type": "object", "required": [ - "id", "object", - "created_at", - "name", - "usage_bytes", - "file_counts", - "status", - "last_active_at", - "metadata" + "search_query", + "data", + "has_more", + "next_page" ], "properties": { - "id": { - "type": "string", - "description": "The identifier, which can be referenced in API endpoints." - }, "object": { "type": "string", "enum": [ - "vector_store" + "vector_store.search_results.page" ], - "description": "The object type, which is always `vector_store`." + "description": "The object type, which is always `vector_store.search_results.page`", + "x-stainless-const": true }, - "created_at": { - "type": "integer", - "format": "unixtime", - "description": "The Unix timestamp (in seconds) for when the vector store was created." + "search_query": { + "type": "array", + "items": { + "type": "string" + } }, - "name": { - "type": "string", - "description": "The name of the vector store." + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.VectorStoreSearchResultItem" + }, + "description": "The list of search result items." }, - "usage_bytes": { - "type": "integer", - "format": "int32", - "description": "The total number of bytes used by the files in the vector store." + "has_more": { + "type": "boolean", + "description": "Indicates if there are more results to fetch." }, - "file_counts": { - "type": "object", - "properties": { - "in_progress": { - "type": "integer", - "format": "int32", - "description": "The number of files that are currently being processed." - }, - "completed": { - "type": "integer", - "format": "int32", - "description": "The number of files that have been successfully processed." - }, - "failed": { - "type": "integer", - "format": "int32", - "description": "The number of files that have failed to process." - }, - "cancelled": { - "type": "integer", - "format": "int32", - "description": "The number of files that were cancelled." + "next_page": { + "anyOf": [ + { + "type": "string" }, - "total": { - "type": "integer", - "format": "int32", - "description": "The total number of files." + { + "type": "null" } - }, - "required": [ - "in_progress", - "completed", - "failed", - "cancelled", - "total" ] - }, - "status": { + } + }, + "x-oaiMeta": { + "name": "Vector store search results page" + } + }, + "OpenAI.Verbosity": { + "anyOf": [ + { "type": "string", "enum": [ - "expired", - "in_progress", - "completed" - ], - "description": "The status of the vector store, which can be either `expired`, `in_progress`, or `completed`. A status of `completed` indicates that the vector store is ready for use." - }, - "expires_after": { - "$ref": "#/components/schemas/OpenAI.VectorStoreExpirationAfter" - }, - "expires_at": { - "type": "integer", - "format": "unixtime", - "nullable": true, - "description": "The Unix timestamp (in seconds) for when the vector store will expire." - }, - "last_active_at": { - "type": "integer", - "format": "unixtime", - "nullable": true, - "description": "The Unix timestamp (in seconds) for when the vector store was last active." + "low", + "medium", + "high" + ] }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true, - "description": "Set of 16 key-value pairs that can be attached to an object. This can be\nuseful for storing additional information about the object in a structured\nformat, and querying for objects via API or the dashboard.\n\nKeys are strings with a maximum length of 64 characters. Values are strings\nwith a maximum length of 512 characters.", - "x-oaiTypeLabel": "map" + { + "type": "null" } - }, - "description": "A vector store is a collection of processed files can be used by the `file_search` tool." + ], + "description": "Constrains the verbosity of the model's response. Lower values will result in\nmore concise responses, while higher values will result in more verbose responses.\nCurrently supported values are `low`, `medium`, and `high`." }, "OpenAI.VoiceIdsShared": { "anyOf": [ @@ -20666,34 +34407,38 @@ "ballad", "coral", "echo", - "fable", - "onyx", - "nova", "sage", "shimmer", - "verse" + "verse", + "marin", + "cedar" ] } ] }, - "OpenAI.WebSearchAction": { + "OpenAI.Wait": { "type": "object", "required": [ "type" ], "properties": { "type": { - "$ref": "#/components/schemas/OpenAI.WebSearchActionType" + "type": "string", + "enum": [ + "wait" + ], + "description": "Specifies the event type. For a wait action, this property is\n always set to `wait`.", + "x-stainless-const": true, + "default": "wait" } }, - "discriminator": { - "propertyName": "type", - "mapping": { - "find": "#/components/schemas/OpenAI.WebSearchActionFind", - "open_page": "#/components/schemas/OpenAI.WebSearchActionOpenPage", - "search": "#/components/schemas/OpenAI.WebSearchActionSearch" + "allOf": [ + { + "$ref": "#/components/schemas/OpenAI.ComputerAction" } - } + ], + "description": "A wait action.", + "title": "Wait" }, "OpenAI.WebSearchActionFind": { "type": "object", @@ -20708,7 +34453,8 @@ "enum": [ "find" ], - "description": "The action type." + "description": "The action type.", + "x-stainless-const": true }, "url": { "type": "string", @@ -20720,12 +34466,8 @@ "description": "The pattern or text to search for within the page." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.WebSearchAction" - } - ], - "description": "Action type \"find\": Searches for a pattern within a loaded page." + "description": "Action type \"find\": Searches for a pattern within a loaded page.", + "title": "Find action" }, "OpenAI.WebSearchActionOpenPage": { "type": "object", @@ -20739,7 +34481,8 @@ "enum": [ "open_page" ], - "description": "The action type." + "description": "The action type.", + "x-stainless-const": true }, "url": { "type": "string", @@ -20747,12 +34490,8 @@ "description": "The URL opened by the model." } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.WebSearchAction" - } - ], - "description": "Action type \"open_page\" - Opens a specific URL from search results." + "description": "Action type \"open_page\" - Opens a specific URL from search results.", + "title": "Open page action" }, "OpenAI.WebSearchActionSearch": { "type": "object", @@ -20766,263 +34505,218 @@ "enum": [ "search" ], - "description": "The action type." + "description": "The action type.", + "x-stainless-const": true }, "query": { "type": "string", "description": "The search query." + }, + "sources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OpenAI.WebSearchActionSearchSources" + }, + "description": "The sources used in the search.", + "title": "Web search sources" } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.WebSearchAction" - } - ], - "description": "Action type \"search\" - Performs a web search query." - }, - "OpenAI.WebSearchActionType": { - "type": "string", - "enum": [ - "search", - "open_page", - "find" - ] + "description": "Action type \"search\" - Performs a web search query.", + "title": "Search action" }, - "OpenAI.WebSearchPreviewTool": { + "OpenAI.WebSearchActionSearchSources": { "type": "object", "required": [ - "type" + "type", + "url" ], "properties": { "type": { "type": "string", "enum": [ - "web_search_preview" - ], - "description": "The type of the web search tool. One of `web_search_preview` or `web_search_preview_2025_03_11`." - }, - "user_location": { - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Location" - } + "url" ], - "nullable": true, - "description": "The user's location." + "x-stainless-const": true }, - "search_context_size": { - "type": "string", - "enum": [ - "low", - "medium", - "high" - ], - "description": "High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default." - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.Tool" + "url": { + "type": "string" } - ], - "description": "Note: web_search is not yet available via Azure OpenAI." + } }, - "OpenAI.WebSearchToolCallItemParam": { + "OpenAI.WebSearchApproximateLocation": { "type": "object", - "required": [ - "type", - "action" - ], "properties": { "type": { "type": "string", "enum": [ - "web_search_call" + "approximate" + ], + "description": "The type of location approximation. Always `approximate`.", + "x-stainless-const": true, + "default": "approximate" + }, + "country": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } ] }, - "action": { - "allOf": [ + "region": { + "anyOf": [ + { + "type": "string" + }, { - "$ref": "#/components/schemas/OpenAI.WebSearchAction" + "type": "null" } - ], - "description": "An object describing the specific action taken in this web search call.\nIncludes details on how the model used the web (search, open_page, find)." + ] + }, + "city": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "timezone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } }, - "allOf": [ - { - "$ref": "#/components/schemas/OpenAI.ItemParam" - } - ], - "description": "Note: web_search is not yet available via Azure OpenAI." + "description": "The approximate location of the user.", + "title": "Web search approximate location" }, - "OpenAI.WebSearchToolCallItemResource": { + "OpenAI.WebSearchPreviewTool": { "type": "object", "required": [ - "type", - "status", - "action" + "type" ], "properties": { "type": { - "type": "string", - "enum": [ - "web_search_call" - ] - }, - "status": { - "type": "string", - "enum": [ - "in_progress", - "searching", - "completed", - "failed" + "type": "string", + "enum": [ + "web_search_preview" ], - "description": "The status of the web search tool call." + "description": "The type of the web search tool. One of `web_search_preview` or `web_search_preview_2025_03_11`.", + "x-stainless-const": true, + "default": "web_search_preview" }, - "action": { + "user_location": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.ApproximateLocation" + }, + { + "type": "null" + } + ] + }, + "search_context_size": { "allOf": [ { - "$ref": "#/components/schemas/OpenAI.WebSearchAction" + "$ref": "#/components/schemas/OpenAI.SearchContextSize" } ], - "description": "An object describing the specific action taken in this web search call.\nIncludes details on how the model used the web (search, open_page, find)." + "description": "High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default." } }, "allOf": [ { - "$ref": "#/components/schemas/OpenAI.ItemResource" + "$ref": "#/components/schemas/OpenAI.Tool" } ], - "description": "Note: web_search is not yet available via Azure OpenAI." + "description": "Note: web_search is not yet available via Azure OpenAI.", + "title": "Web search preview" }, - "PineconeChatDataSource": { + "OpenAI.WebSearchTool": { "type": "object", "required": [ - "type", - "parameters" + "type" ], "properties": { "type": { "type": "string", "enum": [ - "pinecone" + "web_search" ], - "description": "The discriminated type identifier, which is always 'pinecone'." + "description": "The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.", + "default": "web_search" }, - "parameters": { - "type": "object", - "properties": { - "top_n_documents": { - "type": "integer", - "format": "int32", - "description": "The configured number of documents to feature in the query." - }, - "in_scope": { - "type": "boolean", - "description": "Whether queries should be restricted to use of the indexed data." - }, - "strictness": { - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 5, - "description": "The configured strictness of the search relevance filtering.\nHigher strictness will increase precision but lower recall of the answer." - }, - "max_search_queries": { - "type": "integer", - "format": "int32", - "description": "The maximum number of rewritten queries that should be sent to the search provider for a single user message.\nBy default, the system will make an automatic determination." - }, - "allow_partial_result": { - "type": "boolean", - "description": "If set to true, the system will allow partial search results to be used and the request will fail if all\npartial queries fail. If not specified or specified as false, the request will fail if any search query fails.", - "default": false - }, - "include_contexts": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "citations", - "intent", - "all_retrieved_documents" - ] - }, - "maxItems": 3, - "description": "The output context properties to include on the response.\nBy default, citations and intent will be requested.", - "default": [ - "citations", - "intent" - ] - }, - "environment": { - "type": "string", - "description": "The environment name to use with Pinecone." - }, - "index_name": { - "type": "string", - "description": "The name of the Pinecone database index to use." - }, - "authentication": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceApiKeyAuthenticationOptions" - } - ], - "description": "The authentication mechanism to use with Pinecone.\nSupported authentication mechanisms for Pinecone include: API key." + "filters": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchToolFilters" }, - "embedding_dependency": { - "allOf": [ - { - "$ref": "#/components/schemas/AzureChatDataSourceVectorizationSource" - } - ], - "description": "The vectorization source to use as an embedding dependency for the Pinecone data source.\nSupported vectorization sources for Pinecone include: deployment name." + { + "type": "null" + } + ] + }, + "user_location": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenAI.WebSearchApproximateLocation" }, - "fields_mapping": { - "type": "object", - "properties": { - "content_fields": { - "type": "array", - "items": { - "type": "string" - } - }, - "title_field": { - "type": "string" - }, - "url_field": { - "type": "string" - }, - "filepath_field": { - "type": "string" - }, - "content_fields_separator": { - "type": "string" - } - }, - "required": [ - "content_fields" - ], - "description": "Field mappings to apply to data used by the Pinecone data source.\nNote that content field mappings are required for Pinecone." + { + "type": "null" } - }, - "required": [ - "environment", - "index_name", - "authentication", - "embedding_dependency", - "fields_mapping" + ] + }, + "search_context_size": { + "type": "string", + "enum": [ + "low", + "medium", + "high" ], - "description": "The parameter information to control the use of the Pinecone data source." + "description": "High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default.", + "default": "medium" } }, "allOf": [ { - "$ref": "#/components/schemas/AzureChatDataSource" + "$ref": "#/components/schemas/OpenAI.Tool" } + ], + "description": "Note: web_search is not yet available via Azure OpenAI.", + "title": "Web search" + }, + "OpenAI.WebSearchToolFilters": { + "type": "object", + "properties": { + "allowed_domains": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "null" + } + ] + } + } + }, + "Order": { + "type": "string", + "enum": [ + "asc", + "desc" ] }, "ResponseFormatJSONSchemaRequest": { @@ -21041,145 +34735,75 @@ }, "json_schema": { "type": "object", - "additionalProperties": {}, + "unevaluatedProperties": {}, "description": "JSON Schema for the response format" } } }, - "ResponseModalities": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "text", - "audio" - ] - }, - "description": "Output types that you would like the model to generate.\nMost models are capable of generating text, which is the default:\n\n`[\"text\"]`\n\nThe `gpt-4o-audio-preview` model can also be used to\n[generate audio](/docs/guides/audio). To request that this model generate\nboth text and audio responses, you can use:\n\n`[\"text\", \"audio\"]`" - }, - "CreateVideoBody": { + "SpeechGenerationResponse": { "type": "object", "required": [ - "model", - "prompt" + "audio" ], "properties": { - "model": { - "type": "string", - "description": "The name of the deployment to use for this request." - }, - "prompt": { + "audio": { "type": "string", - "minLength": 1, - "description": "Text prompt that describes the video to generate." - }, - "seconds": { - "allOf": [ - { - "$ref": "#/components/schemas/VideoSeconds" - } - ], - "description": "Clip duration in seconds. Defaults to 4 seconds.", - "default": "4" - }, - "size": { - "allOf": [ - { - "$ref": "#/components/schemas/VideoSize" - } - ], - "description": "Output resolution formatted as width x height. Defaults to 720x1280.", - "default": "720x1280" + "contentEncoding": "base64", + "description": "The generated audio, generated in the requested audio output format." } - } + }, + "description": "A representation of a response for a text-to-speech operation." }, - "CreateVideoBodyWithInputReference": { - "type": "object", - "properties": { - "model": { - "type": "string", - "description": "The name of the deployment to use for this request." - }, - "prompt": { - "type": "string", - "description": "Text prompt that describes the video to generate." - }, - "seconds": { - "allOf": [ - { - "$ref": "#/components/schemas/VideoSeconds" - } - ], - "description": "Clip duration in seconds. Defaults to 4 seconds." - }, - "size": { - "allOf": [ - { - "$ref": "#/components/schemas/VideoSize" - } - ], - "description": "Output resolution formatted as width x height. Defaults to 720x1280." + "SpeechGenerationResponseFormat": { + "oneOf": [ + { + "type": "string" }, - "input_reference": { + { "type": "string", - "format": "binary", - "description": "Optional image reference that guides generation.", - "x-oaiTypeLabel": "file" + "enum": [ + "mp3", + "opus", + "aac", + "flac", + "wav", + "pcm" + ] } - }, - "required": [ - "model", - "prompt", - "input_reference" - ] - }, - "DeletedVideoResource": { - "type": "object", - "required": [ - "object", - "deleted", - "id" ], - "properties": { - "object": { - "type": "string", - "description": "The object type that signals the deletion response.", - "default": "video.deleted" - }, - "deleted": { - "type": "boolean", - "description": "Indicates that the video resource was deleted.", - "default": true + "description": "The supported audio output formats for text-to-speech." + }, + "SpeechVoice": { + "anyOf": [ + { + "type": "string" }, - "id": { + { "type": "string", - "description": "Identifier of the deleted video." + "enum": [ + "alloy", + "echo", + "fable", + "onyx", + "nova", + "shimmer" + ] } - }, - "description": "Confirmation payload returned after deleting a video." + ], + "description": "The available voices for text-to-speech." }, - "Error": { + "VideoContent": { "type": "object", "required": [ - "code", - "message" + "content" ], "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" + "content": { + "type": "string", + "contentEncoding": "base64" } } }, - "Order": { - "type": "string", - "enum": [ - "asc", - "desc" - ] - }, "VideoContentVariant": { "anyOf": [ { @@ -21196,6 +34820,18 @@ ], "description": "Selectable asset variants for downloaded content." }, + "VideoIdParameter": { + "type": "object", + "required": [ + "video-id" + ], + "properties": { + "video-id": { + "type": "string", + "description": "The ID of the video to use for the Azure OpenAI request." + } + } + }, "VideoList": { "type": "object", "required": [ diff --git a/specification/ai/data-plane/OpenAI.v1/azure-v1-v1-generated.yaml b/specification/ai/data-plane/OpenAI.v1/azure-v1-v1-generated.yaml index 75635e2dab1e..db02f2f3ea0e 100644 --- a/specification/ai/data-plane/OpenAI.v1/azure-v1-v1-generated.yaml +++ b/specification/ai/data-plane/OpenAI.v1/azure-v1-v1-generated.yaml @@ -1,4 +1,4 @@ -openapi: 3.0.0 +openapi: 3.2.0 info: title: Azure AI Foundry Models Service license: @@ -6,20 +6,25 @@ info: url: https://github.com/openai/openai-openapi/blob/master/LICENSE version: v1 tags: + - name: Batch - name: Chat + - name: Completions - name: Containers - - name: Embeddings + - name: Conversations - name: Evals - name: Files + - name: Embeddings - name: Fine-tuning - name: Models + - name: Realtime - name: Responses + - name: Threads - name: Vector Stores paths: - /chat/completions: + /batches: post: - operationId: createChatCompletion - description: Creates a chat completion. + operationId: createBatch + summary: Creates and executes a batch from an uploaded file of requests parameters: - name: api-version in: query @@ -30,9 +35,16 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 + - name: accept + in: header + required: true + schema: + type: string + enum: + - application/json responses: - '200': - description: The request has succeeded. + '201': + description: The request has succeeded and a new resource has been created as a result. headers: apim-request-id: required: false @@ -42,10 +54,109 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AzureCreateChatCompletionResponse' - text/event-stream: - schema: - $ref: '#/components/schemas/AzureCreateChatCompletionStreamResponse' + type: object + required: + - id + - object + - endpoint + - completion_window + - status + - created_at + properties: + id: + type: string + object: + type: string + enum: + - batch + description: The object type, which is always `batch`. + x-stainless-const: true + endpoint: + type: string + description: The OpenAI API endpoint used by the batch. + model: + type: string + description: |- + Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model + guide](https://platform.openai.com/docs/models) to browse and compare available models. + errors: + $ref: '#/components/schemas/OpenAI.BatchErrors' + completion_window: + type: string + description: The time frame within which the batch should be processed. + status: + type: string + enum: + - validating + - failed + - in_progress + - finalizing + - completed + - expired + - cancelling + - cancelled + description: The current status of the batch. + output_file_id: + type: string + description: The ID of the file containing the outputs of successfully executed requests. + error_file_id: + type: string + description: The ID of the file containing the outputs of requests with errors. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was created. + in_progress_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started processing. + expires_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch will expire. + finalizing_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started finalizing. + completed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was completed. + failed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch failed. + expired_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch expired. + cancelling_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started cancelling. + cancelled_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was cancelled. + request_counts: + $ref: '#/components/schemas/OpenAI.BatchRequestCounts' + usage: + allOf: + - $ref: '#/components/schemas/OpenAI.BatchUsage' + description: |- + Represents token usage details including input tokens, output tokens, a + breakdown of output tokens, and the total tokens used. Only populated on + batches created after September 7, 2025. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + input_file_id: + anyOf: + - type: string + - type: 'null' default: description: An unexpected error response. headers: @@ -59,19 +170,40 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Chat + - Batch requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/AzureCreateChatCompletionRequest' - x-ms-examples: - Create a chat completion: - $ref: ./examples/chat_completions.yaml - /containers: + type: object + properties: + input_file_id: + type: string + description: |- + The ID of an uploaded file that contains requests for the new batch. + + See [upload file](/docs/api-reference/files/create) for how to upload a file. + + Your input file must be formatted as a [JSONL file](/docs/api-reference/batch/requestInput), + and must be uploaded with the purpose `batch`. + endpoint: + type: string + enum: + - /v1/chat/completions + - /v1/embeddings + description: The endpoint to be used for all requests in the batch. Currently `/v1/chat/completions` is supported. + completion_window: + type: string + enum: + - 24h + description: The time frame within which the batch should be processed. Currently only `24h` is supported. + required: + - endpoint + - completion_window get: - operationId: ListContainers + operationId: listBatches + summary: List your organization's batches. parameters: - name: api-version in: query @@ -82,29 +214,13 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: limit - in: query - required: false - description: |- - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the - default is 20. - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: order - in: query - required: false - description: |- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - for descending order. + - name: accept + in: header + required: true schema: type: string enum: - - asc - - desc - explode: false + - application/json - name: after in: query required: false @@ -115,45 +231,17 @@ paths: schema: type: string explode: false - responses: - '200': - description: The request has succeeded. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. - schema: - type: string - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.ContainerListResource' - default: - description: An unexpected error response. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. - schema: - type: string - content: - application/json: - schema: - $ref: '#/components/schemas/AzureErrorResponse' - tags: - - Containers - post: - operationId: CreateContainer - parameters: - - name: api-version + - name: limit in: query required: false description: |- - The explicit Azure AI Foundry Models API version to use for this request. - `v1` if not otherwise specified. + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. schema: - $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' - default: v1 + type: integer + format: int32 + default: 20 + explode: false responses: '200': description: The request has succeeded. @@ -166,7 +254,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ContainerResource' + $ref: '#/components/schemas/OpenAI.ListBatchesResponse' default: description: An unexpected error response. headers: @@ -180,16 +268,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Containers - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.CreateContainerBody' - /containers/{container_id}: + - Batch + /batches/{batch_id}: get: - operationId: RetrieveContainer + operationId: retrieveBatch + summary: Retrieves a batch. parameters: - name: api-version in: query @@ -200,9 +283,17 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: container_id + - name: accept + in: header + required: true + schema: + type: string + enum: + - application/json + - name: batch_id in: path required: true + description: The ID of the batch to retrieve. schema: type: string responses: @@ -217,7 +308,109 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ContainerResource' + type: object + required: + - id + - object + - endpoint + - completion_window + - status + - created_at + properties: + id: + type: string + object: + type: string + enum: + - batch + description: The object type, which is always `batch`. + x-stainless-const: true + endpoint: + type: string + description: The OpenAI API endpoint used by the batch. + model: + type: string + description: |- + Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model + guide](https://platform.openai.com/docs/models) to browse and compare available models. + errors: + $ref: '#/components/schemas/OpenAI.BatchErrors' + completion_window: + type: string + description: The time frame within which the batch should be processed. + status: + type: string + enum: + - validating + - failed + - in_progress + - finalizing + - completed + - expired + - cancelling + - cancelled + description: The current status of the batch. + output_file_id: + type: string + description: The ID of the file containing the outputs of successfully executed requests. + error_file_id: + type: string + description: The ID of the file containing the outputs of requests with errors. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was created. + in_progress_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started processing. + expires_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch will expire. + finalizing_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started finalizing. + completed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was completed. + failed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch failed. + expired_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch expired. + cancelling_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started cancelling. + cancelled_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was cancelled. + request_counts: + $ref: '#/components/schemas/OpenAI.BatchRequestCounts' + usage: + allOf: + - $ref: '#/components/schemas/OpenAI.BatchUsage' + description: |- + Represents token usage details including input tokens, output tokens, a + breakdown of output tokens, and the total tokens used. Only populated on + batches created after September 7, 2025. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + input_file_id: + anyOf: + - type: string + - type: 'null' default: description: An unexpected error response. headers: @@ -231,9 +424,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Containers - delete: - operationId: DeleteContainer + - Batch + /batches/{batch_id}/cancel: + post: + operationId: cancelBatch + summary: Cancels an in-progress batch. parameters: - name: api-version in: query @@ -244,9 +439,17 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: container_id + - name: accept + in: header + required: true + schema: + type: string + enum: + - application/json + - name: batch_id in: path required: true + description: The ID of the batch to cancel. schema: type: string responses: @@ -265,18 +468,105 @@ paths: required: - id - object - - deleted + - endpoint + - completion_window + - status + - created_at properties: id: type: string object: type: string enum: - - container.deleted - deleted: - type: boolean + - batch + description: The object type, which is always `batch`. + x-stainless-const: true + endpoint: + type: string + description: The OpenAI API endpoint used by the batch. + model: + type: string + description: |- + Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model + guide](https://platform.openai.com/docs/models) to browse and compare available models. + errors: + $ref: '#/components/schemas/OpenAI.BatchErrors' + completion_window: + type: string + description: The time frame within which the batch should be processed. + status: + type: string enum: - - true + - validating + - failed + - in_progress + - finalizing + - completed + - expired + - cancelling + - cancelled + description: The current status of the batch. + output_file_id: + type: string + description: The ID of the file containing the outputs of successfully executed requests. + error_file_id: + type: string + description: The ID of the file containing the outputs of requests with errors. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was created. + in_progress_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started processing. + expires_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch will expire. + finalizing_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started finalizing. + completed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was completed. + failed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch failed. + expired_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch expired. + cancelling_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started cancelling. + cancelled_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was cancelled. + request_counts: + $ref: '#/components/schemas/OpenAI.BatchRequestCounts' + usage: + allOf: + - $ref: '#/components/schemas/OpenAI.BatchUsage' + description: |- + Represents token usage details including input tokens, output tokens, a + breakdown of output tokens, and the total tokens used. Only populated on + batches created after September 7, 2025. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + input_file_id: + anyOf: + - type: string + - type: 'null' default: description: An unexpected error response. headers: @@ -290,10 +580,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Containers - /containers/{container_id}/files: + - Batch + /chat/completions: post: - operationId: CreateContainerFile + operationId: createChatCompletion + description: Creates a chat completion. parameters: - name: api-version in: query @@ -304,11 +595,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: container_id - in: path - required: true - schema: - type: string responses: '200': description: The request has succeeded. @@ -321,7 +607,112 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ContainerFileResource' + anyOf: + - type: object + required: + - id + - choices + - created + - model + - object + properties: + id: + type: string + description: A unique identifier for the chat completion. + choices: + type: array + items: + $ref: '#/components/schemas/OpenAI.CreateChatCompletionResponseChoices' + description: A list of chat completion choices. Can be more than one if `n` is greater than 1. + created: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) of when the chat completion was created. + model: + type: string + description: The model used for the chat completion. + system_fingerprint: + type: string + description: |- + This fingerprint represents the backend configuration that the model runs with. + + Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism. + object: + type: string + enum: + - chat.completion + description: The object type, which is always `chat.completion`. + x-stainless-const: true + usage: + $ref: '#/components/schemas/OpenAI.CompletionUsage' + prompt_filter_results: + type: array + items: + type: object + properties: + prompt_index: + type: integer + format: int32 + description: The index of the input prompt that this content filter result corresponds to. + content_filter_results: + allOf: + - $ref: '#/components/schemas/AzureContentFilterResultForPrompt' + description: The content filter results associated with the indexed input prompt. + required: + - prompt_index + - content_filter_results + - type: object + required: + - id + - choices + - created + - model + - object + properties: + id: + type: string + description: A unique identifier for the chat completion. Each chunk has the same ID. + choices: + type: array + items: + $ref: '#/components/schemas/OpenAI.CreateChatCompletionStreamResponseChoices' + description: |- + A list of chat completion choices. Can contain more than one elements if `n` is greater than 1. Can also be empty for the + last chunk if you set `stream_options: {"include_usage": true}`. + created: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) of when the chat completion was created. Each chunk has the same timestamp. + model: + type: string + description: The model to generate the completion. + system_fingerprint: + type: string + description: |- + This fingerprint represents the backend configuration that the model runs with. + Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism. + object: + type: string + enum: + - chat.completion.chunk + description: The object type, which is always `chat.completion.chunk`. + x-stainless-const: true + usage: + allOf: + - $ref: '#/components/schemas/OpenAI.CompletionUsage' + description: |- + An optional field that will only be present when you set + `stream_options: {"include_usage": true}` in your request. When present, it + contains a null value **except for the last chunk** which contains the + token usage statistics for the entire request. + + *NOTE:** If the stream is interrupted or cancelled, you may not + receive the final usage chunk which contains the total token usage for + the request. + delta: + $ref: '#/components/schemas/OpenAI.ChatCompletionStreamResponseDelta' + content_filter_results: + $ref: '#/components/schemas/AzureContentFilterResultForChoice' default: description: An unexpected error response. headers: @@ -335,63 +726,281 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Containers + - Chat requestBody: required: true content: - multipart/form-data: + application/json: schema: - $ref: '#/components/schemas/OpenAI.CreateContainerFileBodyMultiPart' - get: - operationId: ListContainerFiles - parameters: - - name: api-version - in: query - required: false - description: |- - The explicit Azure AI Foundry Models API version to use for this request. - `v1` if not otherwise specified. - schema: - $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' - default: v1 - - name: container_id - in: path - required: true - schema: - type: string - - name: limit - in: query - required: false - description: |- - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the - default is 20. - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: order - in: query - required: false - description: |- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - for descending order. - schema: - type: string - enum: - - asc - - desc - explode: false - - name: after + type: object + properties: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + top_logprobs: + anyOf: + - type: integer + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + default: 1 + user: + type: string + description: |- + A unique identifier representing your end-user, which can help to + monitor and detect abuse. + safety_identifier: + type: string + description: |- + A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. + The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + prompt_cache_key: + type: string + description: Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching). + prompt_cache_retention: + anyOf: + - type: string + enum: + - in-memory + - 24h + - type: 'null' + messages: + type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + minItems: 1 + description: |- + A list of messages comprising the conversation so far. Depending on the + model you use, different message types (modalities) are supported, + like text, images, and audio. + model: + type: string + description: |- + Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) + to browse and compare available models. + modalities: + $ref: '#/components/schemas/OpenAI.ResponseModalities' + verbosity: + $ref: '#/components/schemas/OpenAI.Verbosity' + reasoning_effort: + $ref: '#/components/schemas/OpenAI.ReasoningEffort' + max_completion_tokens: + anyOf: + - type: integer + - type: 'null' + description: |- + An upper bound for the number of tokens that can be generated for a + completion, including visible output tokens and reasoning tokens. + frequency_penalty: + anyOf: + - type: number + - type: 'null' + minimum: -2 + maximum: 2 + description: |- + Number between -2.0 and 2.0. Positive values penalize new tokens based on + their existing frequency in the text so far, decreasing the model's + likelihood to repeat the same line verbatim. + presence_penalty: + anyOf: + - type: number + - type: 'null' + minimum: -2 + maximum: 2 + description: |- + Number between -2.0 and 2.0. Positive values penalize new tokens based on + whether they appear in the text so far, increasing the model's likelihood + to talk about new topics. + response_format: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseFormatText' + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchema' + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonObject' + description: |- + An object specifying the format that the model must output. + + Setting to `{ "type": "json_schema", "json_schema": {...} }` enables + Structured Outputs which ensures the model will match your supplied JSON + schema. + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures + the message the model generates is valid JSON. + + **Important:** when using JSON mode, you **must** also instruct the model + to produce JSON yourself via a system or user message. Without this, the + model may generate an unending stream of whitespace until the generation + reaches the token limit, resulting in a long-running and seemingly "stuck" + request. Also note that the message content may be partially cut off if + `finish_reason="length"`, which indicates the generation exceeded + `max_tokens` or the conversation exceeded the max context length. + audio: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateChatCompletionRequestAudio' + - type: 'null' + description: |- + Parameters for audio output. Required when audio output is requested with + `modalities: ["audio"]`. + store: + anyOf: + - type: boolean + - type: 'null' + description: |- + Whether or not to store the output of this chat completion request for + use in model distillation or evals products. + stream: + anyOf: + - type: boolean + - type: 'null' + description: |- + If set to true, the model response data will be streamed to the client + as it is generated using server-sent events. + stop: + $ref: '#/components/schemas/OpenAI.StopConfiguration' + logit_bias: + anyOf: + - type: object + unevaluatedProperties: + type: integer + - type: 'null' + description: |- + Modify the likelihood of specified tokens appearing in the completion. + + Accepts a JSON object that maps tokens (specified by their token ID in the + tokenizer) to an associated bias value from -100 to 100. Mathematically, + the bias is added to the logits generated by the model prior to sampling. + The exact effect will vary per model, but values between -1 and 1 should + decrease or increase likelihood of selection; values like -100 or 100 + should result in a ban or exclusive selection of the relevant token. + x-oaiTypeLabel: map + logprobs: + anyOf: + - type: boolean + - type: 'null' + description: |- + Whether to return log probabilities of the output tokens or not. If true, + returns the log probabilities of each output token returned in the + `content` of `message`. + max_tokens: + anyOf: + - type: integer + - type: 'null' + description: |- + The maximum number of tokens that can be generated in the chat completion. + This value can be used to control costs for text generated via API. + + This value is now deprecated in favor of `max_completion_tokens`, and is + not compatible with o1 series models. + 'n': + anyOf: + - type: integer + - type: 'null' + minimum: 1 + maximum: 128 + description: How many chat completion choices to generate for each input message. Note that you will be charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to minimize costs. + default: 1 + prediction: + allOf: + - $ref: '#/components/schemas/OpenAI.PredictionContent' + description: |- + Configuration for a predicted output, which can greatly improve + response times when large parts of the model response are known + ahead of time. This is most common when you are regenerating a + file with only minor changes to most of the content. + seed: + anyOf: + - type: integer + - type: 'null' + minimum: -9223372036854776000 + maximum: 9223372036854776000 + description: |- + This feature is in Beta. + If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result. + Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend. + x-oaiMeta: + beta: true + stream_options: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionStreamOptions' + - type: 'null' + tools: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionTool' + - $ref: '#/components/schemas/OpenAI.CustomToolChatCompletions' + description: |- + A list of tools the model may call. You can provide either + [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) or + [function tools](https://platform.openai.com/docs/guides/function-calling). + tool_choice: + $ref: '#/components/schemas/OpenAI.ChatCompletionToolChoiceOption' + parallel_tool_calls: + $ref: '#/components/schemas/OpenAI.ParallelToolCalls' + function_call: + anyOf: + - type: string + enum: + - none + - auto + - $ref: '#/components/schemas/OpenAI.ChatCompletionFunctionCallOption' + description: |- + Deprecated in favor of `tool_choice`. + + Controls which (if any) function is called by the model. + + `none` means the model will not call a function and instead generates a + message. + + `auto` means the model can pick between generating a message or calling a + function. + + Specifying a particular function via `{"name": "my_function"}` forces the + model to call that function. + + `none` is the default when no functions are present. `auto` is the default + if functions are present. + functions: + type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionFunctions' + minItems: 1 + maxItems: 128 + description: |- + Deprecated in favor of `tools`. + + A list of functions the model may generate JSON inputs for. + user_security_context: + $ref: '#/components/schemas/AzureUserSecurityContext' + required: + - messages + - model + x-ms-examples: + Create a chat completion: + $ref: ./examples/chat_completions.yaml + /completions: + post: + operationId: createCompletion + description: Creates a completion. + parameters: + - name: api-version in: query required: false description: |- - A cursor for use in pagination. `after` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include after=obj_foo in order to fetch the next page of the list. + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. schema: - type: string - explode: false + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 responses: '200': description: The request has succeeded. @@ -404,7 +1013,47 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ContainerFileListResource' + type: object + required: + - id + - choices + - created + - model + - object + properties: + id: + type: string + description: A unique identifier for the completion. + choices: + type: array + items: + $ref: '#/components/schemas/OpenAI.CreateCompletionResponseChoices' + description: The list of completion choices the model generated for the input prompt. + created: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) of when the completion was created. + model: + type: string + description: The model used for completion. + system_fingerprint: + type: string + description: |- + This fingerprint represents the backend configuration that the model runs with. + + Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism. + object: + type: string + enum: + - text_completion + description: The object type, which is always "text_completion" + x-stainless-const: true + usage: + $ref: '#/components/schemas/OpenAI.CompletionUsage' + prompt_filter_results: + type: array + items: + $ref: '#/components/schemas/AzureContentFilterResultForPrompt' default: description: An unexpected error response. headers: @@ -418,10 +1067,169 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Containers - /containers/{container_id}/files/{file_id}: + - Completions + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + model: + type: string + description: ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. + x-oaiTypeLabel: string + best_of: + anyOf: + - type: integer + - type: 'null' + minimum: 0 + maximum: 20 + description: |- + Generates `best_of` completions server-side and returns the "best" (the one with the highest log probability per token). Results cannot be streamed. + + When used with `n`, `best_of` controls the number of candidate completions and `n` specifies how many to return – `best_of` must be greater than `n`. + + *Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`. + default: 1 + echo: + anyOf: + - type: boolean + - type: 'null' + description: Echo back the prompt in addition to the completion + frequency_penalty: + anyOf: + - type: number + - type: 'null' + minimum: -2 + maximum: 2 + description: |- + Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. + + [See more information about frequency and presence penalties.](https://platform.openai.com/docs/guides/text-generation) + logit_bias: + anyOf: + - type: object + unevaluatedProperties: + type: integer + - type: 'null' + description: |- + Modify the likelihood of specified tokens appearing in the completion. + + Accepts a JSON object that maps tokens (specified by their token ID in the GPT tokenizer) to an associated bias value from -100 to 100. You can use this [tokenizer tool](/tokenizer?view=bpe) to convert text to token IDs. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token. + + As an example, you can pass `{"50256": -100}` to prevent the <|endoftext|> token from being generated. + x-oaiTypeLabel: map + logprobs: + anyOf: + - type: integer + - type: 'null' + minimum: 0 + maximum: 5 + description: |- + Include the log probabilities on the `logprobs` most likely output tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response. + + The maximum value for `logprobs` is 5. + max_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 0 + description: |- + The maximum number of [tokens](/tokenizer) that can be generated in the completion. + + The token count of your prompt plus `max_tokens` cannot exceed the model's context length. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens. + default: 16 + 'n': + anyOf: + - type: integer + - type: 'null' + minimum: 1 + maximum: 128 + description: |- + How many completions to generate for each prompt. + + *Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`. + default: 1 + presence_penalty: + anyOf: + - type: number + - type: 'null' + minimum: -2 + maximum: 2 + description: |- + Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. + + [See more information about frequency and presence penalties.](https://platform.openai.com/docs/guides/text-generation) + seed: + anyOf: + - type: integer + format: int64 + - type: 'null' + description: |- + If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result. + + Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend. + stop: + $ref: '#/components/schemas/OpenAI.StopConfiguration' + stream: + anyOf: + - type: boolean + - type: 'null' + description: 'Whether to stream back partial progress. If set, tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions).' + stream_options: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionStreamOptions' + - type: 'null' + suffix: + anyOf: + - type: string + - type: 'null' + description: |- + The suffix that comes after a completion of inserted text. + + This parameter is only supported for `gpt-3.5-turbo-instruct`. + temperature: + anyOf: + - type: number + - type: 'null' + minimum: 0 + maximum: 2 + description: |- + What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. + + We generally recommend altering this or `top_p` but not both. + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + minimum: 0 + maximum: 1 + description: |- + An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. + + We generally recommend altering this or `temperature` but not both. + default: 1 + user: + type: string + description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids). + prompt: + anyOf: + - type: string + - type: array + items: + type: string + - type: 'null' + default: <|endoftext|> + required: + - model + x-ms-examples: + Create a chat completion: + $ref: ./examples/completions.yaml + /containers: get: - operationId: RetrieveContainerFile + operationId: listContainers parameters: - name: api-version in: query @@ -432,16 +1240,49 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: container_id - in: path - required: true + - name: limit + in: query + required: false + description: |- + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + description: |- + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + for descending order. schema: type: string - - name: file_id - in: path - required: true + enum: + - asc + - desc + explode: false + - name: after + in: query + required: false + description: |- + A cursor for use in pagination. `after` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include after=obj_foo in order to fetch the next page of the list. + schema: + type: string + explode: false + - name: before + in: query + required: false + description: |- + A cursor for use in pagination. `before` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include before=obj_foo in order to fetch the previous page of the list. schema: type: string + explode: false responses: '200': description: The request has succeeded. @@ -454,7 +1295,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ContainerFileResource' + $ref: '#/components/schemas/OpenAI.ContainerListResource' default: description: An unexpected error response. headers: @@ -469,8 +1310,8 @@ paths: $ref: '#/components/schemas/AzureErrorResponse' tags: - Containers - delete: - operationId: DeleteContainerFile + post: + operationId: createContainer parameters: - name: api-version in: query @@ -481,16 +1322,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: container_id - in: path - required: true - schema: - type: string - - name: file_id - in: path - required: true - schema: - type: string responses: '200': description: The request has succeeded. @@ -503,22 +1334,7 @@ paths: content: application/json: schema: - type: object - required: - - id - - object - - deleted - properties: - id: - type: string - object: - type: string - enum: - - container.file.deleted - deleted: - type: boolean - enum: - - true + $ref: '#/components/schemas/OpenAI.ContainerResource' default: description: An unexpected error response. headers: @@ -533,9 +1349,15 @@ paths: $ref: '#/components/schemas/AzureErrorResponse' tags: - Containers - /containers/{container_id}/files/{file_id}/content: + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateContainerBody' + /containers/{container_id}: get: - operationId: RetrieveContainerFileContent + operationId: retrieveContainer parameters: - name: api-version in: query @@ -549,11 +1371,7 @@ paths: - name: container_id in: path required: true - schema: - type: string - - name: file_id - in: path - required: true + description: The ID of the container to retrieve. schema: type: string responses: @@ -566,10 +1384,9 @@ paths: schema: type: string content: - application/octet-stream: + application/json: schema: - type: string - format: binary + $ref: '#/components/schemas/OpenAI.ContainerResource' default: description: An unexpected error response. headers: @@ -584,10 +1401,8 @@ paths: $ref: '#/components/schemas/AzureErrorResponse' tags: - Containers - /embeddings: - post: - operationId: createEmbedding - summary: Creates an embedding vector representing the input text. + delete: + operationId: deleteContainer parameters: - name: api-version in: query @@ -598,6 +1413,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 + - name: container_id + in: path + required: true + description: The ID of the container to delete. + schema: + type: string responses: '200': description: The request has succeeded. @@ -607,10 +1428,6 @@ paths: description: A request ID used for troubleshooting purposes. schema: type: string - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.CreateEmbeddingResponse' default: description: An unexpected error response. headers: @@ -624,20 +1441,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Embeddings - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AzureCreateEmbeddingRequest' - x-ms-examples: - Create an embedding request: - $ref: ./examples/embeddings.yaml - /evals: + - Containers + /containers/{container_id}/files: get: - operationId: listEvals - summary: List evaluations for a project. + operationId: listContainerFiles parameters: - name: api-version in: query @@ -648,27 +1455,18 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header + - name: container_id + in: path required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: after - in: query - required: false - description: Identifier for the last eval from the previous pagination request. + description: The ID of the container to list files from. schema: type: string - explode: false - name: limit in: query required: false - description: A limit on the number of evals to be returned in a single pagination response. + description: |- + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. schema: type: integer format: int32 @@ -678,28 +1476,33 @@ paths: in: query required: false description: |- - Sort order for evals by timestamp. Use `asc` for ascending order or - `desc` for descending order. + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + for descending order. schema: type: string enum: - asc - desc - default: asc explode: false - - name: order_by + - name: after in: query required: false description: |- - Evals can be ordered by creation time or last updated time. Use - `created_at` for creation time or `updated_at` for last updated - time. + A cursor for use in pagination. `after` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include after=obj_foo in order to fetch the next page of the list. + schema: + type: string + explode: false + - name: before + in: query + required: false + description: |- + A cursor for use in pagination. `before` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include before=obj_foo in order to fetch the previous page of the list. schema: type: string - enum: - - created_at - - updated_at - default: created_at explode: false responses: '200': @@ -713,7 +1516,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.EvalList' + $ref: '#/components/schemas/OpenAI.ContainerFileListResource' default: description: An unexpected error response. headers: @@ -727,20 +1530,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals + - Containers post: - operationId: createEval - description: |- - Create the structure of an evaluation that can be used to test a model's - performance. - - An evaluation is a set of testing criteria and a datasource. After - creating an evaluation, you can run it on different models and model - parameters. We support several types of graders and datasources. - - For more information, see the [Evals guide](/docs/guides/evals). - - NOTE: This Azure OpenAI API is in preview and subject to change. + operationId: createContainerFile parameters: - name: api-version in: query @@ -751,16 +1543,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header + - name: container_id + in: path required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. + description: The ID of the container to create a file in. schema: type: string - enum: - - preview responses: '200': description: The request has succeeded. @@ -773,7 +1561,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.Eval' + $ref: '#/components/schemas/OpenAI.ContainerFileResource' default: description: An unexpected error response. headers: @@ -787,54 +1575,16 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals + - Containers requestBody: required: true content: - application/json: + multipart/form-data: schema: - type: object - properties: - statusCode: - type: number - enum: - - 201 - name: - type: string - description: The name of the evaluation. - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - data_source_config: - allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigParams' - description: The configuration for the data source used for the evaluation runs. Dictates the schema of the data used in the evaluation. - testing_criteria: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalGraderParams' - description: A list of graders for all eval runs in this group. Graders can reference variables in the data source using double curly braces notation, like `{{item.variable_name}}`. To reference the model's output, use the `sample` namespace (ie, `{{sample.output_text}}`). - required: - - statusCode - - data_source_config - - testing_criteria - /evals/{eval_id}: + $ref: '#/components/schemas/OpenAI.CreateContainerFileBody' + /containers/{container_id}/files/{file_id}: get: - operationId: getEval - summary: Retrieve an evaluation by its ID. - description: |- - Retrieves an evaluation by its ID. - - NOTE: This Azure OpenAI API is in preview and subject to change. + operationId: retrieveContainerFile parameters: - name: api-version in: query @@ -845,19 +1595,16 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header + - name: container_id + in: path required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. + description: The ID of the container. schema: type: string - enum: - - preview - - name: eval_id + - name: file_id in: path required: true + description: The ID of the file to retrieve. schema: type: string responses: @@ -872,7 +1619,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.Eval' + $ref: '#/components/schemas/OpenAI.ContainerFileResource' default: description: An unexpected error response. headers: @@ -886,13 +1633,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - post: - operationId: updateEval - description: |- - Update select, mutable properties of a specified evaluation. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Containers + delete: + operationId: deleteContainerFile parameters: - name: api-version in: query @@ -903,19 +1646,16 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header + - name: container_id + in: path required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. + description: The ID of the container. schema: type: string - enum: - - preview - - name: eval_id + - name: file_id in: path required: true + description: The ID of the file to delete. schema: type: string responses: @@ -927,10 +1667,6 @@ paths: description: A request ID used for troubleshooting purposes. schema: type: string - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.Eval' default: description: An unexpected error response. headers: @@ -944,24 +1680,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - name: - type: string - metadata: - $ref: '#/components/schemas/OpenAI.MetadataPropertyForRequest' - delete: - operationId: deleteEval - description: |- - Delete a specified evaluation. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Containers + /containers/{container_id}/files/{file_id}/content: + get: + operationId: retrieveContainerFileContent parameters: - name: api-version in: query @@ -972,21 +1694,58 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header + - name: container_id + in: path required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. + description: The ID of the container. schema: type: string - enum: - - preview - - name: eval_id + - name: file_id in: path required: true + description: The ID of the file to retrieve content from. schema: type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/octet-stream: + schema: + contentMediaType: application/octet-stream + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Containers + /conversations: + post: + operationId: createConversation + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 responses: '200': description: The request has succeeded. @@ -999,20 +1758,7 @@ paths: content: application/json: schema: - type: object - required: - - object - - deleted - - eval_id - properties: - object: - type: string - enum: - - eval.deleted - deleted: - type: boolean - eval_id: - type: string + $ref: '#/components/schemas/OpenAI.ConversationResource' default: description: An unexpected error response. headers: @@ -1026,15 +1772,16 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - /evals/{eval_id}/runs: + - Conversations + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateConversationBody' + /conversations/{conversation_id}: get: - operationId: getEvalRuns - summary: '' - description: |- - Retrieve a list of runs for a specified evaluation. - - NOTE: This Azure OpenAI API is in preview and subject to change. + operationId: retrieveConversation parameters: - name: api-version in: query @@ -1045,57 +1792,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header + - name: conversation_id + in: path required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. + description: The ID of the conversation to retrieve. schema: type: string - enum: - - preview - - name: eval_id - in: path - required: true - schema: - type: string - - name: after - in: query - required: false - schema: - type: string - explode: false - - name: limit - in: query - required: false - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: order - in: query - required: false - schema: - type: string - enum: - - asc - - desc - default: asc - explode: false - - name: status - in: query - required: false - schema: - type: string - enum: - - queued - - in_progress - - completed - - canceled - - failed - explode: false responses: '200': description: The request has succeeded. @@ -1108,7 +1810,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.EvalRunList' + $ref: '#/components/schemas/OpenAI.ConversationResource' default: description: An unexpected error response. headers: @@ -1122,13 +1824,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals + - Conversations post: - operationId: createEvalRun - description: |- - Create a new evaluation run, beginning the grading process. - - NOTE: This Azure OpenAI API is in preview and subject to change. + operationId: updateConversation parameters: - name: api-version in: query @@ -1139,24 +1837,15 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: eval_id + - name: conversation_id in: path required: true + description: The ID of the conversation to update. schema: type: string responses: - '201': - description: The request has succeeded and a new resource has been created as a result. + '200': + description: The request has succeeded. headers: apim-request-id: required: false @@ -1166,7 +1855,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.EvalRun' + $ref: '#/components/schemas/OpenAI.ConversationResource' default: description: An unexpected error response. headers: @@ -1180,20 +1869,15 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals + - Conversations requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/OpenAI.CreateEvalRunRequest' - /evals/{eval_id}/runs/{run_id}: - get: - operationId: getEvalRun - description: |- - Retrieve a specific evaluation run by its ID. - - NOTE: This Azure OpenAI API is in preview and subject to change. + $ref: '#/components/schemas/OpenAI.UpdateConversationBody' + delete: + operationId: deleteConversation parameters: - name: api-version in: query @@ -1204,24 +1888,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: eval_id - in: path - required: true - schema: - type: string - - name: run_id + - name: conversation_id in: path required: true + description: The ID of the conversation to delete. schema: type: string responses: @@ -1236,7 +1906,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.EvalRun' + $ref: '#/components/schemas/OpenAI.DeletedConversationResource' default: description: An unexpected error response. headers: @@ -1250,13 +1920,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - post: - operationId: cancelEvalRun - description: |- - Cancel a specific evaluation run by its ID. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Conversations + /conversations/{conversation_id}/items: + get: + operationId: listConversationItems parameters: - name: api-version in: query @@ -1267,26 +1934,47 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header + - name: conversation_id + in: path required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. + description: The ID of the conversation to list items for. schema: type: string - enum: - - preview - - name: eval_id - in: path - required: true + - name: limit + in: query + required: false + description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + description: The order to return the input items in. Default is `desc`. schema: type: string - - name: run_id - in: path - required: true + enum: + - asc + - desc + explode: false + - name: after + in: query + required: false + description: An item ID to list items after, used in pagination. schema: type: string + explode: false + - name: include + in: query + required: false + description: Specify additional output data to include in the model response. + schema: + type: array + items: + $ref: '#/components/schemas/OpenAI.IncludeEnum' + explode: false responses: '200': description: The request has succeeded. @@ -1299,7 +1987,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.EvalRun' + $ref: '#/components/schemas/OpenAI.ConversationItemList' default: description: An unexpected error response. headers: @@ -1313,13 +2001,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - delete: - operationId: deleteEvalRun - description: |- - Delete a specific evaluation run by its ID. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Conversations + post: + operationId: createConversationItems parameters: - name: api-version in: query @@ -1330,26 +2014,21 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: eval_id + - name: conversation_id in: path required: true + description: The ID of the conversation to add the item to. schema: type: string - - name: run_id - in: path - required: true + - name: include + in: query + required: false + description: Additional fields to include in the response. schema: - type: string + type: array + items: + $ref: '#/components/schemas/OpenAI.IncludeEnum' + explode: false responses: '200': description: The request has succeeded. @@ -1362,20 +2041,7 @@ paths: content: application/json: schema: - type: object - required: - - object - - deleted - - eval_run_id - properties: - object: - type: string - enum: - - eval_run.deleted - deleted: - type: boolean - eval_run_id: - type: string + $ref: '#/components/schemas/OpenAI.ConversationItemList' default: description: An unexpected error response. headers: @@ -1389,14 +2055,16 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - /evals/{eval_id}/runs/{run_id}/output_items: + - Conversations + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateConversationItemsParametersBody' + /conversations/{conversation_id}/items/{item_id}: get: - operationId: getEvalRunOutputItems - description: |- - Get a list of output items for a specified evaluation run. - - NOTE: This Azure OpenAI API is in preview and subject to change. + operationId: retrieveConversationItem parameters: - name: api-version in: query @@ -1407,58 +2075,26 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header - required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: eval_id + - name: conversation_id in: path required: true + description: The ID of the conversation that contains the item. schema: type: string - - name: run_id + - name: item_id in: path required: true + description: The ID of the item to retrieve. schema: type: string - - name: after - in: query - required: false - schema: - type: string - explode: false - - name: limit - in: query - required: false - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: status - in: query - required: false - schema: - type: string - enum: - - fail - - pass - explode: false - - name: order + - name: include in: query required: false + description: Additional fields to include in the response. schema: - type: string - enum: - - asc - - desc - default: asc + type: array + items: + $ref: '#/components/schemas/OpenAI.IncludeEnum' explode: false responses: '200': @@ -1472,7 +2108,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.EvalRunOutputItemList' + $ref: '#/components/schemas/OpenAI.ConversationItem' default: description: An unexpected error response. headers: @@ -1486,14 +2122,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - /evals/{eval_id}/runs/{run_id}/output_items/{output_item_id}: - get: - operationId: getEvalRunOutputItem - description: |- - Retrieve a specific output item from an evaluation run by its ID. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Conversations + delete: + operationId: deleteConversationItem parameters: - name: api-version in: query @@ -1504,29 +2135,16 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-evals - in: header + - name: conversation_id + in: path required: true - description: |- - Enables access to AOAI Evals, a preview feature. - This feature requires the 'aoai-evals' header to be set to 'preview'. + description: The ID of the conversation that contains the item. schema: type: string - enum: - - preview - - name: eval_id - in: path - required: true - schema: - type: string - - name: run_id - in: path - required: true - schema: - type: string - - name: output_item_id + - name: item_id in: path required: true + description: The ID of the item to delete. schema: type: string responses: @@ -1541,7 +2159,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.EvalRunOutputItem' + $ref: '#/components/schemas/OpenAI.ConversationResource' default: description: An unexpected error response. headers: @@ -1555,10 +2173,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Evals - /files: + - Conversations + /embeddings: post: - operationId: createFile + operationId: createEmbedding + summary: Creates an embedding vector representing the input text. parameters: - name: api-version in: query @@ -1581,7 +2200,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AzureOpenAIFile' + $ref: '#/components/schemas/OpenAI.CreateEmbeddingResponse' default: description: An unexpected error response. headers: @@ -1595,18 +2214,20 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Files + - Embeddings requestBody: required: true content: - multipart/form-data: + application/json: schema: - $ref: '#/components/schemas/AzureCreateFileRequestMultiPart' + $ref: '#/components/schemas/OpenAI.CreateEmbeddingRequest' x-ms-examples: - Create a file request: - $ref: ./examples/files.yaml + Create an embedding request: + $ref: ./examples/embeddings.yaml + /evals: get: - operationId: listFiles + operationId: listEvals + summary: List evaluations for a project. parameters: - name: api-version in: query @@ -1617,11 +2238,58 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: purpose + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: after + in: query + required: false + description: Identifier for the last eval from the previous pagination request. + schema: + type: string + explode: false + - name: limit + in: query + required: false + description: A limit on the number of evals to be returned in a single pagination response. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + description: |- + Sort order for evals by timestamp. Use `asc` for ascending order or + `desc` for descending order. + schema: + type: string + enum: + - asc + - desc + default: asc + explode: false + - name: order_by in: query required: false + description: |- + Evals can be ordered by creation time or last updated time. Use + `created_at` for creation time or `updated_at` for last updated + time. schema: type: string + enum: + - created_at + - updated_at + default: created_at explode: false responses: '200': @@ -1635,7 +2303,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AzureListFilesResponse' + $ref: '#/components/schemas/OpenAI.EvalList' default: description: An unexpected error response. headers: @@ -1649,10 +2317,20 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Files - /files/{file_id}: - get: - operationId: retrieveFile + - Evals + post: + operationId: createEval + description: |- + Create the structure of an evaluation that can be used to test a model's + performance. + + An evaluation is a set of testing criteria and a datasource. After + creating an evaluation, you can run it on different models and model + parameters. We support several types of graders and datasources. + + For more information, see the [Evals guide](/docs/guides/evals). + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -1663,12 +2341,16 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: file_id - in: path + - name: aoai-evals + in: header required: true - description: The ID of the file to use for this request. + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. schema: type: string + enum: + - preview responses: '200': description: The request has succeeded. @@ -1681,7 +2363,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AzureOpenAIFile' + $ref: '#/components/schemas/OpenAI.Eval' default: description: An unexpected error response. headers: @@ -1695,9 +2377,54 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Files - delete: - operationId: deleteFile + - Evals + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + statusCode: + type: number + enum: + - 201 + name: + type: string + description: The name of the evaluation. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + data_source_config: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalCustomDataSourceConfig' + - $ref: '#/components/schemas/OpenAI.CreateEvalLogsDataSourceConfig' + - $ref: '#/components/schemas/OpenAI.CreateEvalStoredCompletionsDataSourceConfig' + description: The configuration for the data source used for the evaluation runs. Dictates the schema of the data used in the evaluation. + testing_criteria: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalLabelModelGrader' + - $ref: '#/components/schemas/OpenAI.EvalGraderStringCheck' + - $ref: '#/components/schemas/OpenAI.EvalGraderTextSimilarity' + - $ref: '#/components/schemas/OpenAI.EvalGraderPython' + - $ref: '#/components/schemas/OpenAI.EvalGraderScoreModel' + - $ref: '#/components/schemas/EvalGraderEndpoint' + description: A list of graders for all eval runs in this group. Graders can reference variables in the data source using double curly braces notation, like `{{item.variable_name}}`. To reference the model's output, use the `sample` namespace (ie, `{{sample.output_text}}`). + required: + - statusCode + - data_source_config + - testing_criteria + /evals/{eval_id}: + get: + operationId: getEval + summary: Retrieve an evaluation by its ID. + description: |- + Retrieves an evaluation by its ID. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -1708,10 +2435,19 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: file_id + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: eval_id in: path required: true - description: The ID of the file to use for this request. schema: type: string responses: @@ -1726,7 +2462,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.DeleteFileResponse' + $ref: '#/components/schemas/OpenAI.Eval' default: description: An unexpected error response. headers: @@ -1740,10 +2476,13 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Files - /files/{file_id}/content: - get: - operationId: downloadFile + - Evals + post: + operationId: updateEval + description: |- + Update select, mutable properties of a specified evaluation. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -1754,10 +2493,19 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: file_id + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: eval_id in: path required: true - description: The ID of the file to use for this request. schema: type: string responses: @@ -1770,10 +2518,9 @@ paths: schema: type: string content: - application/octet-stream: + application/json: schema: - type: string - format: binary + $ref: '#/components/schemas/OpenAI.Eval' default: description: An unexpected error response. headers: @@ -1787,11 +2534,24 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Files - /fine_tuning/alpha/graders/run: - post: - operationId: runGrader - summary: Run a grader. + - Evals + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + metadata: + $ref: '#/components/schemas/OpenAI.Metadata' + delete: + operationId: deleteEval + description: |- + Delete a specified evaluation. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -1802,13 +2562,47 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: eval_id + in: path + required: true + schema: + type: string responses: '200': description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string content: application/json: schema: - $ref: '#/components/schemas/OpenAI.RunGraderResponse' + type: object + required: + - object + - deleted + - eval_id + properties: + object: + type: string + enum: + - eval.deleted + deleted: + type: boolean + eval_id: + type: string default: description: An unexpected error response. headers: @@ -1822,17 +2616,15 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.RunGraderRequest' - /fine_tuning/alpha/graders/validate: - post: - operationId: validateGrader - summary: Validate a grader. + - Evals + /evals/{eval_id}/runs: + get: + operationId: getEvalRuns + summary: '' + description: |- + Retrieve a list of runs for a specified evaluation. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -1843,13 +2635,70 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: eval_id + in: path + required: true + schema: + type: string + - name: after + in: query + required: false + schema: + type: string + explode: false + - name: limit + in: query + required: false + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: asc + explode: false + - name: status + in: query + required: false + schema: + type: string + enum: + - queued + - in_progress + - completed + - canceled + - failed + explode: false responses: '200': description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ValidateGraderResponse' + $ref: '#/components/schemas/OpenAI.EvalRunList' default: description: An unexpected error response. headers: @@ -1863,22 +2712,13 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.ValidateGraderRequest' - /fine_tuning/jobs: + - Evals post: - operationId: createFineTuningJob - summary: |- - Creates a fine-tuning job which begins the process of creating a new model from a given dataset. - - Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete. + operationId: createEvalRun + description: |- + Create a new evaluation run, beginning the grading process. - [Learn more about fine-tuning](/docs/guides/fine-tuning) + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -1889,9 +2729,24 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: eval_id + in: path + required: true + schema: + type: string responses: - '200': - description: The request has succeeded. + '201': + description: The request has succeeded and a new resource has been created as a result. headers: apim-request-id: required: false @@ -1901,7 +2756,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.FineTuningJob' + $ref: '#/components/schemas/OpenAI.EvalRun' default: description: An unexpected error response. headers: @@ -1915,16 +2770,20 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning + - Evals requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequest' + $ref: '#/components/schemas/OpenAI.CreateEvalRunRequest' + /evals/{eval_id}/runs/{run_id}: get: - operationId: listPaginatedFineTuningJobs - summary: List your organization's fine-tuning jobs + operationId: getEvalRun + description: |- + Retrieve a specific evaluation run by its ID. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -1935,22 +2794,26 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: after - in: query - required: false - description: Identifier for the last job from the previous pagination request. + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. schema: type: string - explode: false - - name: limit - in: query - required: false - description: Number of fine-tuning jobs to retrieve. + enum: + - preview + - name: eval_id + in: path + required: true schema: - type: integer - format: int32 - default: 20 - explode: false + type: string + - name: run_id + in: path + required: true + schema: + type: string responses: '200': description: The request has succeeded. @@ -1963,7 +2826,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ListPaginatedFineTuningJobsResponse' + $ref: '#/components/schemas/OpenAI.EvalRun' default: description: An unexpected error response. headers: @@ -1977,14 +2840,13 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}: - get: - operationId: retrieveFineTuningJob - summary: |- - Get info about a fine-tuning job. + - Evals + post: + operationId: cancelEvalRun + description: |- + Cancel a specific evaluation run by its ID. - [Learn more about fine-tuning](/docs/guides/fine-tuning) + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -1995,10 +2857,24 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: fine_tuning_job_id + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: eval_id + in: path + required: true + schema: + type: string + - name: run_id in: path required: true - description: The ID of the fine-tuning job. schema: type: string responses: @@ -2013,7 +2889,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.FineTuningJob' + $ref: '#/components/schemas/OpenAI.EvalRun' default: description: An unexpected error response. headers: @@ -2027,11 +2903,13 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}/cancel: - post: - operationId: cancelFineTuningJob - summary: Immediately cancel a fine-tune job. + - Evals + delete: + operationId: deleteEvalRun + description: |- + Delete a specific evaluation run by its ID. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -2042,10 +2920,24 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: fine_tuning_job_id + - name: aoai-evals + in: header + required: true + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: eval_id + in: path + required: true + schema: + type: string + - name: run_id in: path required: true - description: The ID of the fine-tuning job to cancel. schema: type: string responses: @@ -2060,7 +2952,20 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.FineTuningJob' + type: object + required: + - object + - deleted + - eval_run_id + properties: + object: + type: string + enum: + - eval_run.deleted + deleted: + type: boolean + eval_run_id: + type: string default: description: An unexpected error response. headers: @@ -2074,11 +2979,14 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}/checkpoints: + - Evals + /evals/{eval_id}/runs/{run_id}/output_items: get: - operationId: listFineTuningJobCheckpoints - summary: List the checkpoints for a fine-tuning job. + operationId: getEvalRunOutputItems + description: |- + Get a list of output items for a specified evaluation run. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -2089,27 +2997,58 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: fine_tuning_job_id - in: path + - name: aoai-evals + in: header required: true - description: The ID of the fine-tuning job to get checkpoints for. + description: |- + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. schema: type: string - - name: after - in: query - required: false - description: Identifier for the last checkpoint ID from the previous pagination request. + enum: + - preview + - name: eval_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string + - name: after + in: query + required: false schema: type: string explode: false - name: limit in: query required: false - description: Number of checkpoints to retrieve. schema: type: integer format: int32 - default: 10 + default: 20 + explode: false + - name: status + in: query + required: false + schema: + type: string + enum: + - fail + - pass + explode: false + - name: order + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: asc explode: false responses: '200': @@ -2123,7 +3062,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ListFineTuningJobCheckpointsResponse' + $ref: '#/components/schemas/OpenAI.EvalRunOutputItemList' default: description: An unexpected error response. headers: @@ -2137,12 +3076,12 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}/checkpoints/{fine_tuning_checkpoint_id}/copy: - post: - operationId: FineTuning_CopyCheckpoint + - Evals + /evals/{eval_id}/runs/{run_id}/output_items/{output_item_id}: + get: + operationId: getEvalRunOutputItem description: |- - Creates a copy of a fine-tuning checkpoint at the given destination account and region. + Retrieve a specific output item from an evaluation run by its ID. NOTE: This Azure OpenAI API is in preview and subject to change. parameters: @@ -2155,29 +3094,27 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-copy-ft-checkpoints + - name: aoai-evals in: header required: true description: |- - Enables access to checkpoint copy operations for models, an AOAI preview feature. - This feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'. + Enables access to AOAI Evals, a preview feature. + This feature requires the 'aoai-evals' header to be set to 'preview'. schema: type: string enum: - preview - - name: accept - in: header + - name: eval_id + in: path required: true schema: type: string - enum: - - application/json - - name: fine_tuning_job_id + - name: run_id in: path required: true schema: type: string - - name: fine_tuning_checkpoint_id + - name: output_item_id in: path required: true schema: @@ -2194,7 +3131,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CopyModelResponse' + $ref: '#/components/schemas/OpenAI.EvalRunOutputItem' default: description: An unexpected error response. headers: @@ -2208,19 +3145,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CopyModelRequest' - get: - operationId: FineTuning_GetCheckpoint - description: |- - Gets the status of a fine-tuning checkpoint copy. - - NOTE: This Azure OpenAI API is in preview and subject to change. + - Evals + /files: + post: + operationId: createFile parameters: - name: api-version in: query @@ -2231,33 +3159,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: aoai-copy-ft-checkpoints - in: header - required: true - description: |- - Enables access to checkpoint copy operations for models, an AOAI preview feature. - This feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'. - schema: - type: string - enum: - - preview - - name: accept - in: header - required: true - schema: - type: string - enum: - - application/json - - name: fine_tuning_job_id - in: path - required: true - schema: - type: string - - name: fine_tuning_checkpoint_id - in: path - required: true - schema: - type: string responses: '200': description: The request has succeeded. @@ -2270,7 +3171,63 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CopyModelResponse' + type: object + required: + - id + - bytes + - created_at + - filename + - object + - purpose + - status + properties: + id: + type: string + description: The file identifier, which can be referenced in the API endpoints. + bytes: + type: integer + description: The size of the file, in bytes. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the file was created. + expires_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the file will expire. + filename: + type: string + description: The name of the file. + object: + type: string + enum: + - file + description: The object type, which is always `file`. + x-stainless-const: true + status_details: + type: string + description: Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`. + purpose: + type: string + enum: + - assistants + - assistants_output + - batch + - batch_output + - fine-tune + - fine-tune-results + - evals + description: The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`. + status: + type: string + enum: + - uploaded + - pending + - running + - processed + - error + - deleting + - deleted default: description: An unexpected error response. headers: @@ -2284,11 +3241,18 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}/events: + - Files + requestBody: + required: true + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/OpenAI.CreateFileRequest' + x-ms-examples: + Create a file request: + $ref: ./examples/files.yaml get: - operationId: listFineTuningEvents - summary: Get status updates for a fine-tuning job. + operationId: listFiles parameters: - name: api-version in: query @@ -2299,27 +3263,32 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: fine_tuning_job_id - in: path - required: true - description: The ID of the fine-tuning job to get events for. - schema: - type: string - - name: after + - name: purpose in: query required: false - description: Identifier for the last event from the previous pagination request. schema: type: string explode: false - name: limit in: query required: false - description: Number of events to retrieve. schema: type: integer - format: int32 - default: 20 + explode: false + - name: order + in: query + required: false + schema: + type: string + enum: + - asc + - desc + explode: false + - name: after + in: query + required: false + schema: + type: string explode: false responses: '200': @@ -2333,7 +3302,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ListFineTuningJobEventsResponse' + $ref: '#/components/schemas/OpenAI.ListFilesResponse' default: description: An unexpected error response. headers: @@ -2347,11 +3316,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}/pause: - post: - operationId: pauseFineTuningJob - summary: Pause a fine-tune job. + - Files + /files/{file_id}: + get: + operationId: retrieveFile parameters: - name: api-version in: query @@ -2362,10 +3330,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: fine_tuning_job_id + - name: file_id in: path required: true - description: The ID of the fine-tuning job to pause. + description: The ID of the file to use for this request. schema: type: string responses: @@ -2380,7 +3348,63 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.FineTuningJob' + type: object + required: + - id + - bytes + - created_at + - filename + - object + - purpose + - status + properties: + id: + type: string + description: The file identifier, which can be referenced in the API endpoints. + bytes: + type: integer + description: The size of the file, in bytes. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the file was created. + expires_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the file will expire. + filename: + type: string + description: The name of the file. + object: + type: string + enum: + - file + description: The object type, which is always `file`. + x-stainless-const: true + status_details: + type: string + description: Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`. + purpose: + type: string + enum: + - assistants + - assistants_output + - batch + - batch_output + - fine-tune + - fine-tune-results + - evals + description: The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`. + status: + type: string + enum: + - uploaded + - pending + - running + - processed + - error + - deleting + - deleted default: description: An unexpected error response. headers: @@ -2394,11 +3418,9 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /fine_tuning/jobs/{fine_tuning_job_id}/resume: - post: - operationId: resumeFineTuningJob - summary: Resume a paused fine-tune job. + - Files + delete: + operationId: deleteFile parameters: - name: api-version in: query @@ -2409,10 +3431,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: fine_tuning_job_id + - name: file_id in: path required: true - description: The ID of the fine-tuning job to resume. + description: The ID of the file to use for this request. schema: type: string responses: @@ -2427,7 +3449,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.FineTuningJob' + $ref: '#/components/schemas/OpenAI.DeleteFileResponse' default: description: An unexpected error response. headers: @@ -2441,13 +3463,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Fine-tuning - /models: + - Files + /files/{file_id}/content: get: - operationId: listModels - summary: |- - Lists the currently available models, and provides basic information about each one such as the - owner and availability. + operationId: downloadFile parameters: - name: api-version in: query @@ -2458,6 +3477,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 + - name: file_id + in: path + required: true + description: The ID of the file to use for this request. + schema: + type: string responses: '200': description: The request has succeeded. @@ -2468,9 +3493,9 @@ paths: schema: type: string content: - application/json: + application/octet-stream: schema: - $ref: '#/components/schemas/OpenAI.ListModelsResponse' + contentMediaType: application/octet-stream default: description: An unexpected error response. headers: @@ -2484,13 +3509,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Models - /models/{model}: - get: - operationId: retrieveModel - summary: |- - Retrieves a model instance, providing basic information about the model such as the owner and - permissioning. + - Files + /fine_tuning/alpha/graders/run: + post: + operationId: runGrader + summary: Run a grader. parameters: - name: api-version in: query @@ -2501,25 +3524,13 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: model - in: path - required: true - description: The ID of the model to use for this request. - schema: - type: string responses: '200': description: The request has succeeded. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. - schema: - type: string content: application/json: schema: - $ref: '#/components/schemas/OpenAI.Model' + $ref: '#/components/schemas/OpenAI.RunGraderResponse' default: description: An unexpected error response. headers: @@ -2533,11 +3544,17 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Models - /responses: + - Fine-tuning + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunGraderRequest' + /fine_tuning/alpha/graders/validate: post: - operationId: createResponse - description: Creates a model response. + operationId: validateGrader + summary: Validate a grader. parameters: - name: api-version in: query @@ -2551,19 +3568,10 @@ paths: responses: '200': description: The request has succeeded. - headers: - apim-request-id: - required: false - description: A request ID used for troubleshooting purposes. - schema: - type: string content: application/json: schema: - $ref: '#/components/schemas/AzureResponse' - text/event-stream: - schema: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + $ref: '#/components/schemas/OpenAI.ValidateGraderResponse' default: description: An unexpected error response. headers: @@ -2577,20 +3585,26 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Responses + - Fine-tuning requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/AzureCreateResponse' - x-ms-examples: - Create a response request: - $ref: ./examples/responses.yaml - /responses/{response_id}: + type: object + properties: + grader: + anyOf: + - $ref: '#/components/schemas/OpenAI.GraderStringCheck' + - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' + - $ref: '#/components/schemas/OpenAI.GraderPython' + - $ref: '#/components/schemas/OpenAI.GraderScoreModel' + - $ref: '#/components/schemas/OpenAI.GraderMulti' + - $ref: '#/components/schemas/GraderEndpoint' + /fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions: get: - operationId: getResponse - description: Retrieves a model response with the given ID. + operationId: listFineTuningCheckpointPermissions + summary: List checkpoint permissions parameters: - name: api-version in: query @@ -2601,27 +3615,46 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: response_id + - name: fine_tuned_model_checkpoint in: path required: true + description: The ID of the fine-tuned model checkpoint to get permissions for. schema: type: string - - name: include_obfuscation + - name: project_id in: query required: false - description: When true, stream obfuscation will be enabled. Stream obfuscation adds random characters to an `obfuscation` field on streaming delta events to normalize payload sizes as a mitigation to certain side-channel attacks. These obfuscation fields are included by default, but add a small amount of overhead to the data stream. You can set `include_obfuscation` to false to optimize for bandwidth if you trust the network links between your application and the OpenAI API. + description: The ID of the project to get permissions for. schema: - type: boolean - default: true + type: string explode: false - - name: include[] + - name: after in: query required: false + description: Identifier for the last permission ID from the previous pagination request. schema: - type: array - items: - $ref: '#/components/schemas/OpenAI.Includable' - default: [] + type: string + explode: false + - name: limit + in: query + required: false + description: Number of permissions to retrieve. + schema: + type: integer + format: int32 + default: 10 + explode: false + - name: order + in: query + required: false + description: The order in which to retrieve permissions. + schema: + type: string + enum: + - ascending + - descending + default: descending + explode: false responses: '200': description: The request has succeeded. @@ -2634,7 +3667,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AzureResponse' + $ref: '#/components/schemas/OpenAI.ListFineTuningCheckpointPermissionResponse' default: description: An unexpected error response. headers: @@ -2648,10 +3681,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Responses - delete: - operationId: deleteResponse - description: Deletes a response by ID. + - Fine-tuning + post: + operationId: createFineTuningCheckpointPermission + summary: Create checkpoint permissions parameters: - name: api-version in: query @@ -2662,9 +3695,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: response_id + - name: fine_tuned_model_checkpoint in: path required: true + description: The ID of the fine-tuned model checkpoint to create a permission for. schema: type: string responses: @@ -2679,22 +3713,7 @@ paths: content: application/json: schema: - type: object - required: - - object - - id - - deleted - properties: - object: - type: string - enum: - - response.deleted - id: - type: string - deleted: - type: boolean - enum: - - true + $ref: '#/components/schemas/OpenAI.ListFineTuningCheckpointPermissionResponse' default: description: An unexpected error response. headers: @@ -2708,11 +3727,17 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Responses - /responses/{response_id}/input_items: - get: - operationId: listInputItems - description: Returns a list of input items for a given response. + - Fine-tuning + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateFineTuningCheckpointPermissionRequest' + /fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions/{permission_id}: + delete: + operationId: deleteFineTuningCheckpointPermission + summary: Delete checkpoint permission parameters: - name: api-version in: query @@ -2723,54 +3748,18 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: response_id + - name: fine_tuned_model_checkpoint in: path required: true + description: The ID of the fine-tuned model checkpoint to delete a permission for. schema: type: string - - name: limit - in: query - required: false - description: |- - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the - default is 20. - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: order - in: query - required: false - description: |- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - for descending order. - schema: - type: string - enum: - - asc - - desc - explode: false - - name: after - in: query - required: false - description: |- - A cursor for use in pagination. `after` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include after=obj_foo in order to fetch the next page of the list. - schema: - type: string - explode: false - - name: before - in: query - required: false - description: |- - A cursor for use in pagination. `before` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include before=obj_foo in order to fetch the previous page of the list. + - name: permission_id + in: path + required: true + description: The ID of the fine-tuned model checkpoint permission to delete. schema: type: string - explode: false responses: '200': description: The request has succeeded. @@ -2783,7 +3772,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ResponseItemList' + $ref: '#/components/schemas/OpenAI.DeleteFineTuningCheckpointPermissionResponse' default: description: An unexpected error response. headers: @@ -2797,11 +3786,16 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Responses - /vector_stores: - get: - operationId: listVectorStores - summary: Returns a list of vector stores. + - Fine-tuning + /fine_tuning/jobs: + post: + operationId: createFineTuningJob + summary: |- + Creates a fine-tuning job which begins the process of creating a new model from a given dataset. + + Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete. + + [Learn more about fine-tuning](/docs/guides/fine-tuning) parameters: - name: api-version in: query @@ -2812,49 +3806,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: limit - in: query - required: false - description: |- - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the - default is 20. - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: order - in: query - required: false - description: |- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - for descending order. - schema: - type: string - enum: - - asc - - desc - explode: false - - name: after - in: query - required: false - description: |- - A cursor for use in pagination. `after` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include after=obj_foo in order to fetch the next page of the list. - schema: - type: string - explode: false - - name: before - in: query - required: false - description: |- - A cursor for use in pagination. `before` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include before=obj_foo in order to fetch the previous page of the list. - schema: - type: string - explode: false responses: '200': description: The request has succeeded. @@ -2867,7 +3818,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ListVectorStoresResponse' + $ref: '#/components/schemas/OpenAI.FineTuningJob' default: description: An unexpected error response. headers: @@ -2881,10 +3832,16 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - post: - operationId: createVectorStore - summary: Creates a vector store. + - Fine-tuning + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequest' + get: + operationId: listPaginatedFineTuningJobs + summary: List your organization's fine-tuning jobs parameters: - name: api-version in: query @@ -2895,6 +3852,22 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 + - name: after + in: query + required: false + description: Identifier for the last job from the previous pagination request. + schema: + type: string + explode: false + - name: limit + in: query + required: false + description: Number of fine-tuning jobs to retrieve. + schema: + type: integer + format: int32 + default: 20 + explode: false responses: '200': description: The request has succeeded. @@ -2907,7 +3880,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreObject' + $ref: '#/components/schemas/OpenAI.ListPaginatedFineTuningJobsResponse' default: description: An unexpected error response. headers: @@ -2921,20 +3894,14 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.CreateVectorStoreRequest' - x-ms-examples: - Create a vector store request: - $ref: ./examples/vector_stores.yaml - /vector_stores/{vector_store_id}: + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}: get: - operationId: getVectorStore - summary: Retrieves a vector store. + operationId: retrieveFineTuningJob + summary: |- + Get info about a fine-tuning job. + + [Learn more about fine-tuning](/docs/guides/fine-tuning) parameters: - name: api-version in: query @@ -2945,10 +3912,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: fine_tuning_job_id in: path required: true - description: The ID of the vector store to retrieve. + description: The ID of the fine-tuning job. schema: type: string responses: @@ -2963,7 +3930,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreObject' + $ref: '#/components/schemas/OpenAI.FineTuningJob' default: description: An unexpected error response. headers: @@ -2977,10 +3944,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}/cancel: post: - operationId: modifyVectorStore - summary: Modifies a vector store. + operationId: cancelFineTuningJob + summary: Immediately cancel a fine-tune job. parameters: - name: api-version in: query @@ -2991,10 +3959,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: fine_tuning_job_id in: path required: true - description: The ID of the vector store to modify. + description: The ID of the fine-tuning job to cancel. schema: type: string responses: @@ -3009,7 +3977,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreObject' + $ref: '#/components/schemas/OpenAI.FineTuningJob' default: description: An unexpected error response. headers: @@ -3023,16 +3991,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.UpdateVectorStoreRequest' - delete: - operationId: deleteVectorStore - summary: Delete a vector store. + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}/checkpoints: + get: + operationId: listFineTuningJobCheckpoints + summary: List the checkpoints for a fine-tuning job. parameters: - name: api-version in: query @@ -3043,12 +4006,28 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: fine_tuning_job_id in: path required: true - description: The ID of the vector store to delete. + description: The ID of the fine-tuning job to get checkpoints for. + schema: + type: string + - name: after + in: query + required: false + description: Identifier for the last checkpoint ID from the previous pagination request. schema: type: string + explode: false + - name: limit + in: query + required: false + description: Number of checkpoints to retrieve. + schema: + type: integer + format: int32 + default: 10 + explode: false responses: '200': description: The request has succeeded. @@ -3061,7 +4040,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.DeleteVectorStoreResponse' + $ref: '#/components/schemas/OpenAI.ListFineTuningJobCheckpointsResponse' default: description: An unexpected error response. headers: @@ -3075,11 +4054,14 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - /vector_stores/{vector_store_id}/file_batches: + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}/checkpoints/{fine_tuning_checkpoint_id}/copy: post: - operationId: createVectorStoreFileBatch - summary: Create a vector store file batch. + operationId: FineTuning_CopyCheckpoint + description: |- + Creates a copy of a fine-tuning checkpoint at the given destination account and region. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -3090,10 +4072,31 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: aoai-copy-ft-checkpoints + in: header + required: true + description: |- + Enables access to checkpoint copy operations for models, an AOAI preview feature. + This feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: accept + in: header + required: true + schema: + type: string + enum: + - application/json + - name: fine_tuning_job_id + in: path + required: true + schema: + type: string + - name: fine_tuning_checkpoint_id in: path required: true - description: The ID of the vector store for which to create a file batch. schema: type: string responses: @@ -3108,7 +4111,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObject' + $ref: '#/components/schemas/CopyModelResponse' default: description: An unexpected error response. headers: @@ -3122,17 +4125,19 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores + - Fine-tuning requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/OpenAI.CreateVectorStoreFileBatchRequest' - /vector_stores/{vector_store_id}/file_batches/{batch_id}: + $ref: '#/components/schemas/CopyModelRequest' get: - operationId: getVectorStoreFileBatch - summary: Retrieves a vector store file batch. + operationId: FineTuning_GetCheckpoint + description: |- + Gets the status of a fine-tuning checkpoint copy. + + NOTE: This Azure OpenAI API is in preview and subject to change. parameters: - name: api-version in: query @@ -3143,16 +4148,31 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: aoai-copy-ft-checkpoints + in: header + required: true + description: |- + Enables access to checkpoint copy operations for models, an AOAI preview feature. + This feature requires the 'aoai-copy-ft-checkpoints' header to be set to 'preview'. + schema: + type: string + enum: + - preview + - name: accept + in: header + required: true + schema: + type: string + enum: + - application/json + - name: fine_tuning_job_id in: path required: true - description: The ID of the vector store that the file batch belongs to. schema: type: string - - name: batch_id + - name: fine_tuning_checkpoint_id in: path required: true - description: The ID of the file batch being retrieved. schema: type: string responses: @@ -3167,7 +4187,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObject' + $ref: '#/components/schemas/CopyModelResponse' default: description: An unexpected error response. headers: @@ -3181,11 +4201,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - /vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel: - post: - operationId: cancelVectorStoreFileBatch - summary: Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible. + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}/events: + get: + operationId: listFineTuningEvents + summary: Get status updates for a fine-tuning job. parameters: - name: api-version in: query @@ -3196,18 +4216,28 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: fine_tuning_job_id in: path required: true - description: The ID of the vector store that the file batch belongs to. + description: The ID of the fine-tuning job to get events for. schema: type: string - - name: batch_id - in: path - required: true - description: The ID of the file batch to cancel. + - name: after + in: query + required: false + description: Identifier for the last event from the previous pagination request. schema: type: string + explode: false + - name: limit + in: query + required: false + description: Number of events to retrieve. + schema: + type: integer + format: int32 + default: 20 + explode: false responses: '200': description: The request has succeeded. @@ -3220,7 +4250,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObject' + $ref: '#/components/schemas/OpenAI.ListFineTuningJobEventsResponse' default: description: An unexpected error response. headers: @@ -3234,11 +4264,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - /vector_stores/{vector_store_id}/file_batches/{batch_id}/files: - get: - operationId: listFilesInVectorStoreBatch - summary: Returns a list of vector store files in a batch. + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}/pause: + post: + operationId: pauseFineTuningJob + summary: Pause a fine-tune job. parameters: - name: api-version in: query @@ -3249,68 +4279,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id - in: path - required: true - description: The ID of the vector store that the file batch belongs to. - schema: - type: string - - name: batch_id + - name: fine_tuning_job_id in: path required: true - description: The ID of the file batch that the files belong to. - schema: - type: string - - name: limit - in: query - required: false - description: |- - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the - default is 20. - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: order - in: query - required: false - description: |- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - for descending order. - schema: - type: string - enum: - - asc - - desc - explode: false - - name: after - in: query - required: false - description: |- - A cursor for use in pagination. `after` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include after=obj_foo in order to fetch the next page of the list. - schema: - type: string - explode: false - - name: before - in: query - required: false - description: |- - A cursor for use in pagination. `before` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include before=obj_foo in order to fetch the previous page of the list. + description: The ID of the fine-tuning job to pause. schema: type: string - explode: false - - name: filter - in: query - required: false - description: Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. - schema: - $ref: '#/components/schemas/OpenAI.ListVectorStoreFilesFilter' - explode: false responses: '200': description: The request has succeeded. @@ -3323,7 +4297,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ListVectorStoreFilesResponse' + $ref: '#/components/schemas/OpenAI.FineTuningJob' default: description: An unexpected error response. headers: @@ -3337,11 +4311,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - /vector_stores/{vector_store_id}/files: - get: - operationId: listVectorStoreFiles - summary: Returns a list of vector store files. + - Fine-tuning + /fine_tuning/jobs/{fine_tuning_job_id}/resume: + post: + operationId: resumeFineTuningJob + summary: Resume a paused fine-tune job. parameters: - name: api-version in: query @@ -3352,62 +4326,12 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id + - name: fine_tuning_job_id in: path required: true - description: The ID of the vector store that the files belong to. + description: The ID of the fine-tuning job to resume. schema: type: string - - name: limit - in: query - required: false - description: |- - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the - default is 20. - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: order - in: query - required: false - description: |- - Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - for descending order. - schema: - type: string - enum: - - asc - - desc - explode: false - - name: after - in: query - required: false - description: |- - A cursor for use in pagination. `after` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include after=obj_foo in order to fetch the next page of the list. - schema: - type: string - explode: false - - name: before - in: query - required: false - description: |- - A cursor for use in pagination. `before` is an object ID that defines your place in the list. - For instance, if you make a list request and receive 100 objects, ending with obj_foo, your - subsequent call can include before=obj_foo in order to fetch the previous page of the list. - schema: - type: string - explode: false - - name: filter - in: query - required: false - description: Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. - schema: - $ref: '#/components/schemas/OpenAI.ListVectorStoreFilesFilter' - explode: false responses: '200': description: The request has succeeded. @@ -3420,7 +4344,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.ListVectorStoreFilesResponse' + $ref: '#/components/schemas/OpenAI.FineTuningJob' default: description: An unexpected error response. headers: @@ -3434,10 +4358,13 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - post: - operationId: createVectorStoreFile - summary: Create a vector store file by attaching a [File](/docs/api-reference/files) to a [vector store](/docs/api-reference/vector-stores/object). + - Fine-tuning + /models: + get: + operationId: listModels + summary: |- + Lists the currently available models, and provides basic information about each one such as the + owner and availability. parameters: - name: api-version in: query @@ -3448,12 +4375,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id - in: path - required: true - description: The ID of the vector store for which to create a File. - schema: - type: string responses: '200': description: The request has succeeded. @@ -3466,7 +4387,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + $ref: '#/components/schemas/OpenAI.ListModelsResponse' default: description: An unexpected error response. headers: @@ -3480,17 +4401,13 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.CreateVectorStoreFileRequest' - /vector_stores/{vector_store_id}/files/{file_id}: + - Models + /models/{model}: get: - operationId: getVectorStoreFile - summary: Retrieves a vector store file. + operationId: retrieveModel + summary: |- + Retrieves a model instance, providing basic information about the model such as the owner and + permissioning. parameters: - name: api-version in: query @@ -3501,16 +4418,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id - in: path - required: true - description: The ID of the vector store that the file belongs to. - schema: - type: string - - name: file_id + - name: model in: path required: true - description: The ID of the file being retrieved. + description: The ID of the model to use for this request. schema: type: string responses: @@ -3525,7 +4436,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + $ref: '#/components/schemas/OpenAI.Model' default: description: An unexpected error response. headers: @@ -3539,9 +4450,10 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - post: - operationId: updateVectorStoreFileAttributes + - Models + delete: + operationId: deleteModel + summary: Deletes a model instance. parameters: - name: api-version in: query @@ -3552,14 +4464,10 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id - in: path - required: true - schema: - type: string - - name: file_id + - name: model in: path required: true + description: The ID of the model to delete. schema: type: string responses: @@ -3574,7 +4482,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + $ref: '#/components/schemas/OpenAI.DeleteModelResponse' default: description: An unexpected error response. headers: @@ -3588,16 +4496,11 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/OpenAI.UpdateVectorStoreFileAttributesRequest' - delete: - operationId: deleteVectorStoreFile - summary: Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. To delete the file, use the [delete file](/docs/api-reference/files/delete) endpoint. + - Models + /realtime/calls: + post: + operationId: createRealtimeCall + summary: Create a new Realtime API call over WebRTC and receive the SDP answer needed to complete the peer connection. parameters: - name: api-version in: query @@ -3608,31 +4511,19 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: vector_store_id - in: path - required: true - description: The ID of the vector store that the file belongs to. - schema: - type: string - - name: file_id - in: path - required: true - description: The ID of the file to delete. - schema: - type: string responses: - '200': - description: The request has succeeded. + '201': + description: The request has succeeded and a new resource has been created as a result. headers: - apim-request-id: + location: required: false - description: A request ID used for troubleshooting purposes. + description: Relative URL containing the call ID for subsequent control requests. schema: type: string content: - application/json: + application/sdp: schema: - $ref: '#/components/schemas/OpenAI.DeleteVectorStoreFileResponse' + type: string default: description: An unexpected error response. headers: @@ -3646,10 +4537,20 @@ paths: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Vector Stores - /videos: + - Realtime + requestBody: + required: true + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeCallCreateRequest' + encoding: + session: + contentType: application/json + /realtime/calls/{call_id}/accept: post: - operationId: Videos_Create + operationId: acceptRealtimeCall + summary: Accept an incoming SIP call and configure the realtime session that will handle it. parameters: - name: api-version in: query @@ -3660,47 +4561,40 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - description: Creates a new video generation job. + - name: call_id + in: path + required: true + description: The identifier for the call provided in the realtime.call.incoming webhook. + schema: + type: string responses: '200': description: The request has succeeded. + default: + description: An unexpected error response. headers: apim-request-id: required: false description: A request ID used for troubleshooting purposes. schema: type: string - content: - application/json: - schema: - $ref: '#/components/schemas/VideoResource' - default: - description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Videos + - Realtime requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/CreateVideoBody' - multipart/form-data: - schema: - $ref: '#/components/schemas/CreateVideoBodyWithInputReference' - encoding: - seconds: - contentType: text/plain - size: - contentType: text/plain - input_reference: - contentType: '*/*' - get: - operationId: Videos_List - description: Lists video generation jobs. + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGA' + description: Session configuration to apply before the caller is bridged to the model. + /realtime/calls/{call_id}/hangup: + post: + operationId: hangupRealtimeCall + summary: End an active Realtime API call, whether it was initiated over SIP or WebRTC. parameters: - name: api-version in: query @@ -3711,52 +4605,33 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - name: after - in: query - required: false + - name: call_id + in: path + required: true + description: The identifier for the call. schema: type: string - explode: false - - name: limit - in: query - required: false - schema: - type: integer - format: int32 - default: 20 - explode: false - - name: order - in: query - required: false - schema: - $ref: '#/components/schemas/Order' - default: desc - explode: false responses: '200': description: The request has succeeded. + default: + description: An unexpected error response. headers: apim-request-id: required: false description: A request ID used for troubleshooting purposes. schema: type: string - content: - application/json: - schema: - $ref: '#/components/schemas/VideoList' - default: - description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Videos - /videos/{video-id}: - get: - operationId: Videos_Get - description: Retrieves properties of a video generation job. + - Realtime + /realtime/calls/{call_id}/refer: + post: + operationId: referRealtimeCall + summary: Transfer an active SIP call to a new destination using the SIP REFER verb. parameters: - name: api-version in: query @@ -3767,31 +4642,40 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - $ref: '#/components/parameters/VideoIdParameter' + - name: call_id + in: path + required: true + description: The identifier for the call provided in the realtime.call.incoming webhook. + schema: + type: string responses: '200': description: The request has succeeded. + default: + description: An unexpected error response. headers: apim-request-id: required: false description: A request ID used for troubleshooting purposes. schema: type: string - content: - application/json: - schema: - $ref: '#/components/schemas/VideoResource' - default: - description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Videos - delete: - operationId: Videos_Delete - description: Deletes a video generation job. + - Realtime + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeCallReferRequest' + description: Destination URI for the REFER request. + /realtime/calls/{call_id}/reject: + post: + operationId: rejectRealtimeCall + summary: Decline an incoming SIP call by returning a SIP status code to the caller. parameters: - name: api-version in: query @@ -3802,32 +4686,40 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - $ref: '#/components/parameters/VideoIdParameter' + - name: call_id + in: path + required: true + description: The identifier for the call provided in the realtime.call.incoming webhook. + schema: + type: string responses: '200': description: The request has succeeded. + default: + description: An unexpected error response. headers: apim-request-id: required: false description: A request ID used for troubleshooting purposes. schema: type: string - content: - application/json: - schema: - $ref: '#/components/schemas/DeletedVideoResource' - default: - description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Videos - /videos/{video-id}/content: - get: - operationId: Videos_RetrieveContent - description: Retrieves a thumbnail of the generated video content. + - Realtime + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeCallRejectRequest' + description: Provide an optional SIP status code. When omitted the API responds with 603 Decline. + /realtime/client_secrets: + post: + operationId: createRealtimeClientSecret + summary: Create a Realtime client secret with an associated session configuration. parameters: - name: api-version in: query @@ -3838,14 +4730,6 @@ paths: schema: $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' default: v1 - - $ref: '#/components/parameters/VideoIdParameter' - - name: variant - in: query - required: false - schema: - $ref: '#/components/schemas/VideoContentVariant' - default: video - explode: false responses: '200': description: The request has succeeded. @@ -3855,40 +4739,12 @@ paths: description: A request ID used for troubleshooting purposes. schema: type: string - content-length: - required: true - schema: - type: integer content: - image/jpg: - schema: - type: string - format: binary - image/webp: - schema: - type: string - format: binary - video/mp4: + application/json: schema: - type: string - format: binary + $ref: '#/components/schemas/OpenAI.RealtimeCreateClientSecretResponse' default: description: An unexpected error response. - content: - application/json: - schema: - $ref: '#/components/schemas/AzureErrorResponse' - tags: - - Videos - /videos/{video-id}/remix: - post: - operationId: Videos_Remix - description: Use an existing generated video and change it with a prompt. - parameters: - - $ref: '#/components/parameters/VideoIdParameter' - responses: - '200': - description: The request has succeeded. headers: apim-request-id: required: false @@ -3898,1652 +4754,8122 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/VideoResource' - default: - description: An unexpected error response. + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Realtime + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeCreateClientSecretRequest' + description: Create a client secret with the given session configuration. + /realtime/sessions: + post: + operationId: createRealtimeSession + summary: Create an ephemeral API token for use in client-side applications with the Realtime API. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string content: application/json: schema: $ref: '#/components/schemas/AzureErrorResponse' tags: - - Videos + - Realtime requestBody: required: true content: application/json: schema: - type: object - properties: - prompt: - type: string - minLength: 1 - required: - - prompt -security: - - ApiKeyAuth: [] - - ApiKeyAuth_: [] - - OAuth2Auth: - - https://cognitiveservices.azure.com/.default -components: - schemas: - AzureAIFoundryModelsApiVersion: - type: string - enum: - - v1 - - preview - AzureChatCompletionResponseMessage: - type: object - required: - - content - - refusal - - role - properties: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequest' + description: Create an ephemeral API key with the given session configuration. + /realtime/transcription_sessions: + post: + operationId: createRealtimeTranscriptionSession + summary: Create an ephemeral API token for use in client-side applications with the Realtime API specifically for realtime transcriptions. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Realtime + requestBody: + required: true content: - type: string - nullable: true - description: The contents of the message. - refusal: - type: string - nullable: true - description: The refusal message generated by the model. - tool_calls: - $ref: '#/components/schemas/ChatCompletionMessageToolCallsItem' - readOnly: true - annotations: - type: array - items: - type: object - properties: - type: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequest' + description: Create an ephemeral API key with the given session configuration. + /responses: + post: + operationId: createResponse + description: Creates a model response. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: type: string - enum: - - url_citation - description: The type of the URL citation. Always `url_citation`. - url_citation: + content: + application/json: + schema: type: object + required: + - id + - object + - created_at + - error + - incomplete_details + - output + - instructions + - parallel_tool_calls + - content_filters properties: - end_index: - type: integer - format: int32 - description: The index of the last character of the URL citation in the message. - start_index: - type: integer - format: int32 - description: The index of the first character of the URL citation in the message. - url: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + top_logprobs: + anyOf: + - type: integer + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + default: 1 + user: type: string - format: uri - description: The URL of the web resource. - title: + description: |- + This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations. + A stable identifier for your end-users. + Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + safety_identifier: type: string - description: The title of the web resource. - required: - - end_index - - start_index - - url - - title - description: A URL citation when using web search. - required: - - type - - url_citation - description: |- - Annotations for the message, when applicable, as when using the - [web search tool](/docs/guides/tools-web-search?api-mode=chat). - role: - type: string - enum: - - assistant - description: The role of the author of this message. - function_call: - type: object - properties: - name: - type: string - arguments: - type: string - required: - - name - - arguments - description: Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model. - deprecated: true - audio: - type: object - properties: - id: - type: string - description: Unique identifier for this audio response. - expires_at: - type: integer - format: unixtime - description: |- - The Unix timestamp (in seconds) for when this audio response will - no longer be accessible on the server for use in multi-turn - conversations. - data: - type: string - format: base64 - description: |- - Base64 encoded audio bytes generated by the model, in the format - specified in the request. - transcript: - type: string - description: Transcript of the audio generated by the model. - required: - - id - - expires_at - - data - - transcript - nullable: true - description: |- - If the audio output modality is requested, this object contains data - about the audio response from the model. [Learn more](/docs/guides/audio). - context: - allOf: - - $ref: '#/components/schemas/AzureChatMessageContext' - description: The Azure-specific context information associated with the chat completion response message. - reasoning_content: - type: string - description: An Azure-specific extension property containing generated reasoning content from supported models. - description: |- - The extended response model component for chat completion response messages on the Azure OpenAI service. - This model adds support for chat message context, used by the On Your Data feature for intent, citations, and other - information related to retrieval-augmented generation performed. - AzureChatCompletionStreamResponseDelta: - type: object - properties: - audio: - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageAudioChunk' - description: Response audio associated with the streaming chat delta payload. + description: |- + A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. + The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + prompt_cache_key: + type: string + description: Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching). + prompt_cache_retention: + anyOf: + - type: string + enum: + - in-memory + - 24h + - type: 'null' + previous_response_id: + anyOf: + - type: string + - type: 'null' + model: + type: string + description: |- + Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) + to browse and compare available models. + reasoning: + anyOf: + - $ref: '#/components/schemas/OpenAI.Reasoning' + - type: 'null' + background: + anyOf: + - type: boolean + - type: 'null' + max_output_tokens: + anyOf: + - type: integer + - type: 'null' + max_tool_calls: + anyOf: + - type: integer + - type: 'null' + text: + $ref: '#/components/schemas/OpenAI.ResponseTextParam' + tools: + $ref: '#/components/schemas/OpenAI.ToolsArray' + tool_choice: + $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + prompt: + $ref: '#/components/schemas/OpenAI.Prompt' + truncation: + anyOf: + - type: string + enum: + - auto + - disabled + - type: 'null' + default: disabled + id: + type: string + description: Unique identifier for this Response. + object: + type: string + enum: + - response + description: The object type of this resource - always set to `response`. + x-stainless-const: true + status: + type: string + enum: + - completed + - failed + - in_progress + - cancelled + - queued + - incomplete + description: |- + The status of the response generation. One of `completed`, `failed`, + `in_progress`, `cancelled`, `queued`, or `incomplete`. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) of when this Response was created. + error: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseError' + - type: 'null' + incomplete_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseIncompleteDetails' + - type: 'null' + output: + type: array + items: + $ref: '#/components/schemas/OpenAI.OutputItem' + description: |- + An array of content items generated by the model. + + - The length and order of items in the `output` array is dependent + on the model's response. + - Rather than accessing the first item in the `output` array and + assuming it's an `assistant` message with the content generated by + the model, you might consider using the `output_text` property where + supported in SDKs. + instructions: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' + - type: 'null' + output_text: + anyOf: + - type: string + - type: 'null' + x-stainless-skip: true + usage: + $ref: '#/components/schemas/OpenAI.ResponseUsage' + parallel_tool_calls: + type: boolean + description: Whether to allow the model to run tool calls in parallel. + default: true + conversation: + anyOf: + - $ref: '#/components/schemas/OpenAI.Conversation' + - type: 'null' + content_filters: + type: array + items: + $ref: '#/components/schemas/AzureContentFilterForResponsesAPI' + description: The content filter results from RAI. + text/event-stream: + schema: + $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Responses + requestBody: + required: true content: - type: string - nullable: true - description: The contents of the chunk message. - function_call: - type: object - properties: - name: - type: string - arguments: - type: string - description: Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model. - deprecated: true - tool_calls: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunk' - readOnly: true - role: - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRole' - description: The role of the author of this message. - refusal: - type: string - nullable: true - description: The refusal message generated by the model. - context: - allOf: - - $ref: '#/components/schemas/AzureChatMessageContext' - description: The Azure-specific context information associated with the chat completion response message. - reasoning_content: - type: string - description: An Azure-specific extension property containing generated reasoning content from supported models. - description: |- - The extended response model for a streaming chat response message on the Azure OpenAI service. - This model adds support for chat message context, used by the On Your Data feature for intent, citations, and other - information related to retrieval-augmented generation performed. - AzureChatDataSource: - type: object - required: - - type - properties: - type: - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceType' - description: The differentiating type identifier for the data source. - discriminator: - propertyName: type + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateResponse' + x-ms-examples: + Create a response request: + $ref: ./examples/responses.yaml + /responses/{response_id}: + get: + operationId: getResponse + description: Retrieves a model response with the given ID. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: response_id + in: path + required: true + schema: + type: string + - name: include[] + in: query + required: false + description: Additional fields to include in the response. See the include parameter for Response creation above for more information. + schema: + type: array + items: + $ref: '#/components/schemas/OpenAI.IncludeEnum' + default: [] + - name: stream + in: query + required: false + description: If set to true, the model response data will be streamed to the client as it is generated using server-sent events. + schema: + type: boolean + explode: false + - name: starting_after + in: query + required: false + description: The sequence number of the event after which to start streaming. + schema: + type: integer + format: int32 + explode: false + - name: include_obfuscation + in: query + required: false + description: When true, stream obfuscation will be enabled. Stream obfuscation adds random characters to an `obfuscation` field on streaming delta events to normalize payload sizes as a mitigation to certain side-channel attacks. These obfuscation fields are included by default, but add a small amount of overhead to the data stream. You can set `include_obfuscation` to false to optimize for bandwidth if you trust the network links between your application and the OpenAI API. + schema: + type: boolean + default: true + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + type: object + required: + - id + - object + - created_at + - error + - incomplete_details + - output + - instructions + - parallel_tool_calls + - content_filters + properties: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + top_logprobs: + anyOf: + - type: integer + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + default: 1 + user: + type: string + description: |- + This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations. + A stable identifier for your end-users. + Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + safety_identifier: + type: string + description: |- + A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. + The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + prompt_cache_key: + type: string + description: Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching). + prompt_cache_retention: + anyOf: + - type: string + enum: + - in-memory + - 24h + - type: 'null' + previous_response_id: + anyOf: + - type: string + - type: 'null' + model: + type: string + description: |- + Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) + to browse and compare available models. + reasoning: + anyOf: + - $ref: '#/components/schemas/OpenAI.Reasoning' + - type: 'null' + background: + anyOf: + - type: boolean + - type: 'null' + max_output_tokens: + anyOf: + - type: integer + - type: 'null' + max_tool_calls: + anyOf: + - type: integer + - type: 'null' + text: + $ref: '#/components/schemas/OpenAI.ResponseTextParam' + tools: + $ref: '#/components/schemas/OpenAI.ToolsArray' + tool_choice: + $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + prompt: + $ref: '#/components/schemas/OpenAI.Prompt' + truncation: + anyOf: + - type: string + enum: + - auto + - disabled + - type: 'null' + default: disabled + id: + type: string + description: Unique identifier for this Response. + object: + type: string + enum: + - response + description: The object type of this resource - always set to `response`. + x-stainless-const: true + status: + type: string + enum: + - completed + - failed + - in_progress + - cancelled + - queued + - incomplete + description: |- + The status of the response generation. One of `completed`, `failed`, + `in_progress`, `cancelled`, `queued`, or `incomplete`. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) of when this Response was created. + error: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseError' + - type: 'null' + incomplete_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseIncompleteDetails' + - type: 'null' + output: + type: array + items: + $ref: '#/components/schemas/OpenAI.OutputItem' + description: |- + An array of content items generated by the model. + + - The length and order of items in the `output` array is dependent + on the model's response. + - Rather than accessing the first item in the `output` array and + assuming it's an `assistant` message with the content generated by + the model, you might consider using the `output_text` property where + supported in SDKs. + instructions: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' + - type: 'null' + output_text: + anyOf: + - type: string + - type: 'null' + x-stainless-skip: true + usage: + $ref: '#/components/schemas/OpenAI.ResponseUsage' + parallel_tool_calls: + type: boolean + description: Whether to allow the model to run tool calls in parallel. + default: true + conversation: + anyOf: + - $ref: '#/components/schemas/OpenAI.Conversation' + - type: 'null' + content_filters: + type: array + items: + $ref: '#/components/schemas/AzureContentFilterForResponsesAPI' + description: The content filter results from RAI. + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Responses + delete: + operationId: deleteResponse + description: Deletes a response by ID. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: response_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + type: object + required: + - object + - id + - deleted + properties: + object: + type: string + enum: + - response.deleted + id: + type: string + deleted: + type: boolean + enum: + - true + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Responses + /responses/{response_id}/cancel: + post: + operationId: cancelResponse + description: Cancels a model response with the given ID. Only responses created with the background parameter set to true can be cancelled. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: response_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + type: object + required: + - id + - object + - created_at + - error + - incomplete_details + - output + - instructions + - parallel_tool_calls + - content_filters + properties: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + top_logprobs: + anyOf: + - type: integer + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + default: 1 + user: + type: string + description: |- + This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations. + A stable identifier for your end-users. + Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + safety_identifier: + type: string + description: |- + A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. + The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + prompt_cache_key: + type: string + description: Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching). + prompt_cache_retention: + anyOf: + - type: string + enum: + - in-memory + - 24h + - type: 'null' + previous_response_id: + anyOf: + - type: string + - type: 'null' + model: + type: string + description: |- + Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) + to browse and compare available models. + reasoning: + anyOf: + - $ref: '#/components/schemas/OpenAI.Reasoning' + - type: 'null' + background: + anyOf: + - type: boolean + - type: 'null' + max_output_tokens: + anyOf: + - type: integer + - type: 'null' + max_tool_calls: + anyOf: + - type: integer + - type: 'null' + text: + $ref: '#/components/schemas/OpenAI.ResponseTextParam' + tools: + $ref: '#/components/schemas/OpenAI.ToolsArray' + tool_choice: + $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + prompt: + $ref: '#/components/schemas/OpenAI.Prompt' + truncation: + anyOf: + - type: string + enum: + - auto + - disabled + - type: 'null' + default: disabled + id: + type: string + description: Unique identifier for this Response. + object: + type: string + enum: + - response + description: The object type of this resource - always set to `response`. + x-stainless-const: true + status: + type: string + enum: + - completed + - failed + - in_progress + - cancelled + - queued + - incomplete + description: |- + The status of the response generation. One of `completed`, `failed`, + `in_progress`, `cancelled`, `queued`, or `incomplete`. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) of when this Response was created. + error: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseError' + - type: 'null' + incomplete_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseIncompleteDetails' + - type: 'null' + output: + type: array + items: + $ref: '#/components/schemas/OpenAI.OutputItem' + description: |- + An array of content items generated by the model. + + - The length and order of items in the `output` array is dependent + on the model's response. + - Rather than accessing the first item in the `output` array and + assuming it's an `assistant` message with the content generated by + the model, you might consider using the `output_text` property where + supported in SDKs. + instructions: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' + - type: 'null' + output_text: + anyOf: + - type: string + - type: 'null' + x-stainless-skip: true + usage: + $ref: '#/components/schemas/OpenAI.ResponseUsage' + parallel_tool_calls: + type: boolean + description: Whether to allow the model to run tool calls in parallel. + default: true + conversation: + anyOf: + - $ref: '#/components/schemas/OpenAI.Conversation' + - type: 'null' + content_filters: + type: array + items: + $ref: '#/components/schemas/AzureContentFilterForResponsesAPI' + description: The content filter results from RAI. + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Responses + /responses/{response_id}/input_items: + get: + operationId: listInputItems + description: Returns a list of input items for a given response. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: response_id + in: path + required: true + schema: + type: string + - name: limit + in: query + required: false + description: |- + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + description: |- + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + for descending order. + schema: + type: string + enum: + - asc + - desc + explode: false + - name: after + in: query + required: false + description: |- + A cursor for use in pagination. `after` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include after=obj_foo in order to fetch the next page of the list. + schema: + type: string + explode: false + - name: before + in: query + required: false + description: |- + A cursor for use in pagination. `before` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include before=obj_foo in order to fetch the previous page of the list. + schema: + type: string + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ResponseItemList' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Responses + /threads: + post: + operationId: createThread + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ThreadObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateThreadRequest' + /threads/runs: + post: + operationId: createThreadAndRun + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateThreadAndRunRequest' + /threads/{thread_id}: + delete: + operationId: deleteThread + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.DeleteThreadResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + get: + operationId: retrieveThread + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ThreadObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + post: + operationId: modifyThread + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ThreadObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ModifyThreadRequest' + /threads/{thread_id}/messages: + get: + operationId: listMessages + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: limit + in: query + required: false + schema: + type: integer + default: 20 + explode: false + - name: order + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: desc + explode: false + - name: after + in: query + required: false + schema: + type: string + explode: false + - name: before + in: query + required: false + schema: + type: string + explode: false + - name: run_id + in: query + required: false + schema: + type: string + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ListMessagesResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + post: + operationId: createMessage + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.MessageObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateMessageRequest' + /threads/{thread_id}/messages/{message_id}: + delete: + operationId: deleteMessage + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: message_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.DeleteMessageResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + get: + operationId: retrieveMessage + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: message_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.MessageObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + post: + operationId: modifyMessage + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: message_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.MessageObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ModifyMessageRequest' + /threads/{thread_id}/runs: + post: + operationId: createRun + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateRunRequest' + get: + operationId: listRuns + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: limit + in: query + required: false + schema: + type: integer + default: 20 + explode: false + - name: order + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: desc + explode: false + - name: after + in: query + required: false + schema: + type: string + explode: false + - name: before + in: query + required: false + schema: + type: string + explode: false + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ListRunsResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + /threads/{thread_id}/runs/{run_id}: + get: + operationId: retrieveRun + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + post: + operationId: modifyRun + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ModifyRunRequest' + /threads/{thread_id}/runs/{run_id}/cancel: + post: + operationId: cancelRun + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + /threads/{thread_id}/runs/{run_id}/steps: + get: + operationId: listRunSteps + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string + - name: limit + in: query + required: false + schema: + type: integer + default: 20 + explode: false + - name: order + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: desc + explode: false + - name: after + in: query + required: false + schema: + type: string + explode: false + - name: before + in: query + required: false + schema: + type: string + explode: false + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ListRunStepsResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + /threads/{thread_id}/runs/{run_id}/steps/{step_id}: + get: + operationId: getRunStep + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string + - name: step_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunStepObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + /threads/{thread_id}/runs/{run_id}/submit_tool_outputs: + post: + operationId: submitToolOutputsToRun + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: thread_id + in: path + required: true + schema: + type: string + - name: run_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.RunObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Threads + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.SubmitToolOutputsRunRequest' + /vector_stores: + get: + operationId: listVectorStores + summary: Returns a list of vector stores. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: limit + in: query + required: false + description: |- + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + description: |- + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + for descending order. + schema: + type: string + enum: + - asc + - desc + explode: false + - name: after + in: query + required: false + description: |- + A cursor for use in pagination. `after` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include after=obj_foo in order to fetch the next page of the list. + schema: + type: string + explode: false + - name: before + in: query + required: false + description: |- + A cursor for use in pagination. `before` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include before=obj_foo in order to fetch the previous page of the list. + schema: + type: string + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ListVectorStoresResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + post: + operationId: createVectorStore + summary: Creates a vector store. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateVectorStoreRequest' + x-ms-examples: + Create a vector store request: + $ref: ./examples/vector_stores.yaml + /vector_stores/{vector_store_id}: + get: + operationId: getVectorStore + summary: Retrieves a vector store. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store to retrieve. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + post: + operationId: modifyVectorStore + summary: Modifies a vector store. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store to modify. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.UpdateVectorStoreRequest' + delete: + operationId: deleteVectorStore + summary: Delete a vector store. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store to delete. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.DeleteVectorStoreResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + /vector_stores/{vector_store_id}/file_batches: + post: + operationId: createVectorStoreFileBatch + summary: Create a vector store file batch. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store for which to create a file batch. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateVectorStoreFileBatchRequest' + /vector_stores/{vector_store_id}/file_batches/{batch_id}: + get: + operationId: getVectorStoreFileBatch + summary: Retrieves a vector store file batch. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store that the file batch belongs to. + schema: + type: string + - name: batch_id + in: path + required: true + description: The ID of the file batch being retrieved. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + /vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel: + post: + operationId: cancelVectorStoreFileBatch + summary: Cancel a vector store file batch. This attempts to cancel the processing of files in this batch as soon as possible. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store that the file batch belongs to. + schema: + type: string + - name: batch_id + in: path + required: true + description: The ID of the file batch to cancel. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + /vector_stores/{vector_store_id}/file_batches/{batch_id}/files: + get: + operationId: listFilesInVectorStoreBatch + summary: Returns a list of vector store files in a batch. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store that the file batch belongs to. + schema: + type: string + - name: batch_id + in: path + required: true + description: The ID of the file batch that the files belong to. + schema: + type: string + - name: limit + in: query + required: false + description: |- + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + description: |- + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + for descending order. + schema: + type: string + enum: + - asc + - desc + explode: false + - name: after + in: query + required: false + description: |- + A cursor for use in pagination. `after` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include after=obj_foo in order to fetch the next page of the list. + schema: + type: string + explode: false + - name: before + in: query + required: false + description: |- + A cursor for use in pagination. `before` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include before=obj_foo in order to fetch the previous page of the list. + schema: + type: string + explode: false + - name: filter + in: query + required: false + description: Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. + schema: + type: string + enum: + - in_progress + - completed + - failed + - cancelled + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ListVectorStoreFilesResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + /vector_stores/{vector_store_id}/files: + get: + operationId: listVectorStoreFiles + summary: Returns a list of vector store files. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store that the files belong to. + schema: + type: string + - name: limit + in: query + required: false + description: |- + A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + default is 20. + schema: + type: integer + format: int32 + default: 20 + explode: false + - name: order + in: query + required: false + description: |- + Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + for descending order. + schema: + type: string + enum: + - asc + - desc + explode: false + - name: after + in: query + required: false + description: |- + A cursor for use in pagination. `after` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include after=obj_foo in order to fetch the next page of the list. + schema: + type: string + explode: false + - name: before + in: query + required: false + description: |- + A cursor for use in pagination. `before` is an object ID that defines your place in the list. + For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + subsequent call can include before=obj_foo in order to fetch the previous page of the list. + schema: + type: string + explode: false + - name: filter + in: query + required: false + description: Filter by file status. One of `in_progress`, `completed`, `failed`, `cancelled`. + schema: + type: string + enum: + - in_progress + - completed + - failed + - cancelled + explode: false + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.ListVectorStoreFilesResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + post: + operationId: createVectorStoreFile + summary: Create a vector store file by attaching a [File](/docs/api-reference/files) to a [vector store](/docs/api-reference/vector-stores/object). + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store for which to create a File. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.CreateVectorStoreFileRequest' + /vector_stores/{vector_store_id}/files/{file_id}: + get: + operationId: getVectorStoreFile + summary: Retrieves a vector store file. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store that the file belongs to. + schema: + type: string + - name: file_id + in: path + required: true + description: The ID of the file being retrieved. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + post: + operationId: updateVectorStoreFileAttributes + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + schema: + type: string + - name: file_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.UpdateVectorStoreFileAttributesRequest' + delete: + operationId: deleteVectorStoreFile + summary: Delete a vector store file. This will remove the file from the vector store but the file itself will not be deleted. To delete the file, use the [delete file](/docs/api-reference/files/delete) endpoint. + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store that the file belongs to. + schema: + type: string + - name: file_id + in: path + required: true + description: The ID of the file to delete. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.DeleteVectorStoreFileResponse' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + /vector_stores/{vector_store_id}/files/{file_id}/content: + get: + operationId: retrieveVectorStoreFileContent + summary: Retrieve vector store file content + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store to search. + schema: + type: string + - name: file_id + in: path + required: true + description: The ID of the file to retrieve content for. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreSearchResultsPage' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + /vector_stores/{vector_store_id}/search: + post: + operationId: searchVectorStore + summary: Search vector store + parameters: + - name: api-version + in: query + required: false + description: |- + The explicit Azure AI Foundry Models API version to use for this request. + `v1` if not otherwise specified. + schema: + $ref: '#/components/schemas/AzureAIFoundryModelsApiVersion' + default: v1 + - name: vector_store_id + in: path + required: true + description: The ID of the vector store to search. + schema: + type: string + responses: + '200': + description: The request has succeeded. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreSearchResultsPage' + default: + description: An unexpected error response. + headers: + apim-request-id: + required: false + description: A request ID used for troubleshooting purposes. + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/AzureErrorResponse' + tags: + - Vector Stores + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/OpenAI.VectorStoreSearchRequest' +security: + - ApiKeyAuth: [] + - ApiKeyAuth_: [] + - OAuth2Auth: + - https://cognitiveservices.azure.com/.default +components: + schemas: + AudioSegment: + type: object + required: + - id + - start + - end + - text + - temperature + - avg_logprob + - compression_ratio + - no_speech_prob + - tokens + - seek + properties: + id: + type: integer + format: int32 + description: The 0-based index of this segment within a translation. + start: + type: number + format: float + description: The time at which this segment started relative to the beginning of the translated audio. + end: + type: number + format: float + description: The time at which this segment ended relative to the beginning of the translated audio. + text: + type: string + description: The translated text that was part of this audio segment. + temperature: + type: number + format: float + description: The temperature score associated with this audio segment. + avg_logprob: + type: number + format: float + description: The average log probability associated with this audio segment. + compression_ratio: + type: number + format: float + description: The compression ratio of this audio segment. + no_speech_prob: + type: number + format: float + description: The probability of no speech detection within this audio segment. + tokens: + type: array + items: + type: integer + format: int32 + description: The token IDs matching the translated text in this audio segment. + seek: + type: integer + format: int32 + description: |- + The seek position associated with the processing of this audio segment. + Seek positions are expressed as hundredths of seconds. + The model may process several segments from a single seek position, so while the seek position will never represent + a later time than the segment's start, the segment's start may represent a significantly later time than the + segment's associated seek position. + AudioTaskLabel: + anyOf: + - type: string + - type: string + enum: + - transcribe + - translate + description: Defines the possible descriptors for available audio operation responses. + AudioTranslationSegment: + type: object + required: + - id + - start + - end + - text + - temperature + - avg_logprob + - compression_ratio + - no_speech_prob + - tokens + - seek + properties: + id: + type: integer + format: int32 + description: The 0-based index of this segment within a translation. + start: + type: number + format: float + description: The time at which this segment started relative to the beginning of the translated audio. + end: + type: number + format: float + description: The time at which this segment ended relative to the beginning of the translated audio. + text: + type: string + description: The translated text that was part of this audio segment. + temperature: + type: number + format: float + description: The temperature score associated with this audio segment. + avg_logprob: + type: number + format: float + description: The average log probability associated with this audio segment. + compression_ratio: + type: number + format: float + description: The compression ratio of this audio segment. + no_speech_prob: + type: number + format: float + description: The probability of no speech detection within this audio segment. + tokens: + type: array + items: + type: integer + format: int32 + description: The token IDs matching the translated text in this audio segment. + seek: + type: integer + format: int32 + description: |- + The seek position associated with the processing of this audio segment. + Seek positions are expressed as hundredths of seconds. + The model may process several segments from a single seek position, so while the seek position will never represent + a later time than the segment's start, the segment's start may represent a significantly later time than the + segment's associated seek position. + description: |- + Extended information about a single segment of translated audio data. + Segments generally represent roughly 5-10 seconds of speech. Segment boundaries typically occur between words but not + necessarily sentences. + AzureAIFoundryModelsApiVersion: + type: string + enum: + - v1 + - preview + AzureAudioTranscriptionResponse: + type: object + required: + - text + properties: + text: + type: string + description: The transcribed text for the provided audio data. + task: + allOf: + - $ref: '#/components/schemas/AudioTaskLabel' + description: The label that describes which operation type generated the accompanying response data. + language: + type: string + description: |- + The spoken language that was detected in the transcribed audio data. + This is expressed as a two-letter ISO-639-1 language code like 'en' or 'fr'. + duration: + type: number + format: float + description: The total duration of the audio processed to produce accompanying transcription information. + segments: + type: array + items: + $ref: '#/components/schemas/OpenAI.TranscriptionSegment' + description: A collection of information about the timing, probabilities, and other detail of each processed audio segment. + words: + type: array + items: + $ref: '#/components/schemas/OpenAI.TranscriptionWord' + description: A collection of information about the timing of each processed word. + description: Result information for an operation that transcribed spoken audio into written text. + AzureAudioTranslationResponse: + type: object + required: + - text + properties: + text: + type: string + description: The translated text for the provided audio data. + task: + allOf: + - $ref: '#/components/schemas/AudioTaskLabel' + description: The label that describes which operation type generated the accompanying response data. + language: + type: string + description: |- + The spoken language that was detected in the translated audio data. + This is expressed as a two-letter ISO-639-1 language code like 'en' or 'fr'. + duration: + type: number + format: float + description: The total duration of the audio processed to produce accompanying translation information. + segments: + type: array + items: + $ref: '#/components/schemas/AudioTranslationSegment' + description: A collection of information about the timing, probabilities, and other detail of each processed audio segment. + description: Result information for an operation that translated spoken audio into written text. + AzureCompletionsSamplingParams: + type: object + properties: + max_tokens: + type: integer + format: int32 + description: The maximum number of tokens in the generated output. + allOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSourceSamplingParams' + description: Sampling parameters for controlling the behavior of completions. + AzureContentFilterBlocklistIdResult: + type: object + required: + - id + - filtered + properties: + id: + type: string + description: The ID of the custom blocklist associated with the filtered status. + filtered: + type: boolean + description: Whether the associated blocklist resulted in the content being filtered. + description: |- + A content filter result item that associates an existing custom blocklist ID with a value indicating whether or not + the corresponding blocklist resulted in content being filtered. + AzureContentFilterBlocklistResult: + type: object + required: + - filtered + properties: + filtered: + type: boolean + description: A value indicating whether any of the detailed blocklists resulted in a filtering action. + details: + type: array + items: + type: object + properties: + filtered: + type: boolean + description: A value indicating whether the blocklist produced a filtering action. + id: + type: string + description: The ID of the custom blocklist evaluated. + required: + - filtered + - id + description: The pairs of individual blocklist IDs and whether they resulted in a filtering action. + description: A collection of true/false filtering results for configured custom blocklists. + AzureContentFilterCompletionTextSpan: + type: object + required: + - completion_start_offset + - completion_end_offset + properties: + completion_start_offset: + type: integer + format: int32 + description: Offset of the UTF32 code point which begins the span. + completion_end_offset: + type: integer + format: int32 + description: Offset of the first UTF32 code point which is excluded from the span. This field is always equal to completion_start_offset for empty spans. This field is always larger than completion_start_offset for non-empty spans. + description: A representation of a span of completion text as used by Azure OpenAI content filter results. + AzureContentFilterCompletionTextSpanDetectionResult: + type: object + required: + - filtered + - detected + - details + properties: + filtered: + type: boolean + description: Whether the content detection resulted in a content filtering action. + detected: + type: boolean + description: Whether the labeled content category was detected in the content. + details: + type: array + items: + $ref: '#/components/schemas/AzureContentFilterCompletionTextSpan' + description: Detailed information about the detected completion text spans. + AzureContentFilterCustomTopicIdResult: + type: object + required: + - id + - detected + properties: + id: + type: string + description: The ID of the custom topic associated with the detected status. + detected: + type: boolean + description: Whether the associated custom topic resulted in the content being detected. + description: |- + A content filter result item that associates an existing custom topic ID with a value indicating whether or not + the corresponding topic resulted in content being detected. + AzureContentFilterCustomTopicResult: + type: object + required: + - filtered + properties: + filtered: + type: boolean + description: A value indicating whether any of the detailed topics resulted in a filtering action. + details: + type: array + items: + type: object + properties: + detected: + type: boolean + description: A value indicating whether the topic is detected. + id: + type: string + description: The ID of the custom topic evaluated. + required: + - detected + - id + description: The pairs of individual topic IDs and whether they are detected. + description: A collection of true/false filtering results for configured custom topics. + AzureContentFilterDetectionResult: + type: object + required: + - filtered + - detected + properties: + filtered: + type: boolean + description: Whether the content detection resulted in a content filtering action. + detected: + type: boolean + description: Whether the labeled content category was detected in the content. + description: |- + A labeled content filter result item that indicates whether the content was detected and whether the content was + filtered. + AzureContentFilterForResponsesAPI: + type: object + required: + - blocked + - source_type + - content_filter_results + - content_filter_offsets + properties: + blocked: + type: boolean + description: Indicate if the response is blocked. + source_type: + type: string + description: The name of the source type of the message. + content_filter_results: + allOf: + - $ref: '#/components/schemas/AzureContentFilterResultsForResponsesAPI' + description: A content filter result for a single response item produced by a generative AI system. + content_filter_offsets: + $ref: '#/components/schemas/AzureContentFilterResultOffsets' + AzureContentFilterHarmExtensions: + type: object + properties: + pii_sub_categories: + type: array + items: + $ref: '#/components/schemas/AzurePiiSubCategory' + description: Configuration for PIIHarmSubCategory(s). + description: Extensions for harm categories, providing additional configuration options. + AzureContentFilterImagePromptResults: + type: object + required: + - jailbreak + properties: + profanity: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the + content. + custom_blocklists: + allOf: + - $ref: '#/components/schemas/AzureContentFilterBlocklistResult' + description: A collection of binary filtering outcomes for configured custom blocklists. + custom_topics: + allOf: + - $ref: '#/components/schemas/AzureContentFilterCustomTopicResult' + description: A collection of binary filtering outcomes for configured custom topics. + jailbreak: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that describes user prompt injection attacks, where malicious users deliberately exploit + system vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content + generation or violations of system-imposed restrictions. + allOf: + - $ref: '#/components/schemas/AzureContentFilterImageResponseResults' + description: A content filter result for an image generation operation's input request content. + AzureContentFilterImageResponseResults: + type: object + properties: + sexual: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to anatomical organs and genitals, romantic relationships, acts + portrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an + assault or a forced sexual violent act against one's will, prostitution, pornography, and abuse. + violence: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to physical actions intended to hurt, injure, damage, or kill + someone or something; describes weapons, guns and related entities, such as manufactures, associations, + legislation, and so on. + hate: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that can refer to any content that attacks or uses pejorative or discriminatory + language with reference to a person or identity group based on certain differentiating attributes of these groups + including but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation, + religion, immigration status, ability status, personal appearance, and body size. + self_harm: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that describes language related to physical actions intended to purposely hurt, injure, + damage one's body or kill oneself. + description: A content filter result for an image generation operation's output response content. + AzureContentFilterPersonallyIdentifiableInformationResult: + type: object + properties: + redacted_text: + type: string + description: The redacted text with PII information removed or masked. + sub_categories: + type: array + items: + $ref: '#/components/schemas/AzurePiiSubCategoryResult' + description: Detailed results for individual PIIHarmSubCategory(s). + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: A content filter detection result for Personally Identifiable Information that includes harm extensions. + AzureContentFilterResultForChoice: + type: object + properties: + sexual: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to anatomical organs and genitals, romantic relationships, acts + portrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an + assault or a forced sexual violent act against one's will, prostitution, pornography, and abuse. + hate: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that can refer to any content that attacks or uses pejorative or discriminatory + language with reference to a person or identity group based on certain differentiating attributes of these groups + including but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation, + religion, immigration status, ability status, personal appearance, and body size. + violence: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to physical actions intended to hurt, injure, damage, or kill + someone or something; describes weapons, guns and related entities, such as manufactures, associations, + legislation, and so on. + self_harm: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that describes language related to physical actions intended to purposely hurt, injure, + damage one's body or kill oneself. + profanity: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the + content. + custom_blocklists: + allOf: + - $ref: '#/components/schemas/AzureContentFilterBlocklistResult' + description: A collection of binary filtering outcomes for configured custom blocklists. + custom_topics: + allOf: + - $ref: '#/components/schemas/AzureContentFilterCustomTopicResult' + description: A collection of binary filtering outcomes for configured custom topics. + error: + type: object + properties: + code: + type: integer + format: int32 + description: A distinct, machine-readable code associated with the error. + message: + type: string + description: A human-readable message associated with the error. + required: + - code + - message + description: If present, details about an error that prevented content filtering from completing its evaluation. + protected_material_text: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: A detection result that describes a match against text protected under copyright or other status. + protected_material_code: + type: object + properties: + filtered: + type: boolean + description: Whether the content detection resulted in a content filtering action. + detected: + type: boolean + description: Whether the labeled content category was detected in the content. + citation: + type: object + properties: + license: + type: string + description: The name or identifier of the license associated with the detection. + URL: + type: string + format: uri + description: The URL associated with the license. + description: If available, the citation details describing the associated license and its location. + required: + - filtered + - detected + description: A detection result that describes a match against licensed code or other protected source material. + ungrounded_material: + $ref: '#/components/schemas/AzureContentFilterCompletionTextSpanDetectionResult' + personally_identifiable_information: + allOf: + - $ref: '#/components/schemas/AzureContentFilterPersonallyIdentifiableInformationResult' + description: A detection result that describes matches against Personal Identifiable Information with configurable subcategories. + description: A content filter result for a single response item produced by a generative AI system. + AzureContentFilterResultForPrompt: + type: object + properties: + prompt_index: + type: integer + format: int32 + description: The index of the input prompt associated with the accompanying content filter result categories. + content_filter_results: + type: object + properties: + sexual: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to anatomical organs and genitals, romantic relationships, acts + portrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an + assault or a forced sexual violent act against one's will, prostitution, pornography, and abuse. + hate: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that can refer to any content that attacks or uses pejorative or discriminatory + language with reference to a person or identity group based on certain differentiating attributes of these groups + including but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation, + religion, immigration status, ability status, personal appearance, and body size. + violence: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to physical actions intended to hurt, injure, damage, or kill + someone or something; describes weapons, guns and related entities, such as manufactures, associations, + legislation, and so on. + self_harm: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that describes language related to physical actions intended to purposely hurt, injure, + damage one's body or kill oneself. + profanity: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the + content. + custom_blocklists: + allOf: + - $ref: '#/components/schemas/AzureContentFilterBlocklistResult' + description: A collection of binary filtering outcomes for configured custom blocklists. + custom_topics: + allOf: + - $ref: '#/components/schemas/AzureContentFilterCustomTopicResult' + description: A collection of binary filtering outcomes for configured custom topics. + error: + type: object + properties: + code: + type: integer + format: int32 + description: A distinct, machine-readable code associated with the error. + message: + type: string + description: A human-readable message associated with the error. + required: + - code + - message + description: If present, details about an error that prevented content filtering from completing its evaluation. + jailbreak: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that describes user prompt injection attacks, where malicious users deliberately exploit + system vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content + generation or violations of system-imposed restrictions. + indirect_attack: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that describes attacks on systems powered by Generative AI models that can happen every time + an application processes information that wasn’t directly authored by either the developer of the application or + the user. + required: + - jailbreak + - indirect_attack + description: The content filter category details for the result. + description: A content filter result associated with a single input prompt item into a generative AI system. + AzureContentFilterResultOffsets: + type: object + required: + - start_offset + - end_offset + - check_offset + properties: + start_offset: + type: integer + format: int32 + end_offset: + type: integer + format: int32 + check_offset: + type: integer + format: int32 + AzureContentFilterResultsForResponsesAPI: + type: object + required: + - jailbreak + - task_adherence + properties: + sexual: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to anatomical organs and genitals, romantic relationships, acts + portrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an + assault or a forced sexual violent act against one's will, prostitution, pornography, and abuse. + hate: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that can refer to any content that attacks or uses pejorative or discriminatory + language with reference to a person or identity group based on certain differentiating attributes of these groups + including but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation, + religion, immigration status, ability status, personal appearance, and body size. + violence: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category for language related to physical actions intended to hurt, injure, damage, or kill + someone or something; describes weapons, guns and related entities, such as manufactures, associations, + legislation, and so on. + self_harm: + allOf: + - $ref: '#/components/schemas/AzureContentFilterSeverityResult' + description: |- + A content filter category that describes language related to physical actions intended to purposely hurt, injure, + damage one's body or kill oneself. + profanity: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the + content. + custom_blocklists: + allOf: + - $ref: '#/components/schemas/AzureContentFilterBlocklistResult' + description: A collection of binary filtering outcomes for configured custom blocklists. + custom_topics: + allOf: + - $ref: '#/components/schemas/AzureContentFilterCustomTopicResult' + description: A collection of binary filtering outcomes for configured custom topics. + error: + type: object + properties: + code: + type: integer + format: int32 + description: A distinct, machine-readable code associated with the error. + message: + type: string + description: A human-readable message associated with the error. + required: + - code + - message + description: If present, details about an error that prevented content filtering from completing its evaluation. + jailbreak: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that describes user prompt injection attacks, where malicious users deliberately exploit + system vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content + generation or violations of system-imposed restrictions. + task_adherence: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: A detection result that indicates if the execution flow still sticks the plan. + protected_material_text: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: A detection result that describes a match against text protected under copyright or other status. + protected_material_code: + type: object + properties: + filtered: + type: boolean + description: Whether the content detection resulted in a content filtering action. + detected: + type: boolean + description: Whether the labeled content category was detected in the content. + citation: + type: object + properties: + license: + type: string + description: The name or identifier of the license associated with the detection. + URL: + type: string + format: uri + description: The URL associated with the license. + description: If available, the citation details describing the associated license and its location. + required: + - filtered + - detected + description: A detection result that describes a match against licensed code or other protected source material. + ungrounded_material: + $ref: '#/components/schemas/AzureContentFilterCompletionTextSpanDetectionResult' + personally_identifiable_information: + allOf: + - $ref: '#/components/schemas/AzureContentFilterPersonallyIdentifiableInformationResult' + description: A detection result that describes matches against Personal Identifiable Information with configurable subcategories. + indirect_attack: + allOf: + - $ref: '#/components/schemas/AzureContentFilterDetectionResult' + description: |- + A detection result that describes attacks on systems powered by Generative AI models that can happen every time + an application processes information that wasn’t directly authored by either the developer of the application or + the user. + AzureContentFilterSeverityResult: + type: object + required: + - filtered + - severity + properties: + filtered: + type: boolean + description: Whether the content severity resulted in a content filtering action. + severity: + type: string + enum: + - safe + - low + - medium + - high + description: The labeled severity of the content. + description: |- + A labeled content filter result item that indicates whether the content was filtered and what the qualitative + severity level of the content was, as evaluated against content filter configuration for the category. + AzureErrorResponse: + type: object + properties: + error: + type: object + properties: + code: + type: string + description: The distinct, machine-generated identifier for the error. + message: + type: string + description: A human-readable message associated with the error. + param: + type: string + description: If applicable, the request input parameter associated with the error + type: + type: string + enum: + - error + description: The object type, always 'error.' + inner_error: {} + description: The error details. + AzureFileExpiryAnchor: + type: string + enum: + - created_at + AzureFineTuneReinforcementMethod: + type: object + required: + - grader + properties: + grader: + anyOf: + - $ref: '#/components/schemas/OpenAI.GraderStringCheck' + - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' + - $ref: '#/components/schemas/OpenAI.GraderScoreModel' + - $ref: '#/components/schemas/OpenAI.GraderMulti' + - $ref: '#/components/schemas/GraderEndpoint' + response_format: + allOf: + - $ref: '#/components/schemas/ResponseFormatJSONSchemaRequest' + description: Response format to be used while sampling during RFT training + hyperparameters: + $ref: '#/components/schemas/OpenAI.FineTuneReinforcementHyperparameters' + AzurePiiSubCategory: + type: object + required: + - sub_category + - detect + - redact + - filter + properties: + sub_category: + type: string + description: The PIIHarmSubCategory being configured. + detect: + type: boolean + description: Whether detection is enabled for this subcategory. + redact: + type: boolean + description: Whether content containing this subcategory should be redacted. + filter: + type: boolean + description: Whether content containing this subcategory should be blocked. + description: Configuration for individual PIIHarmSubCategory(s) within the harm extensions framework. + AzurePiiSubCategoryResult: + type: object + required: + - sub_category + - filtered + - detected + - redacted + properties: + sub_category: + type: string + description: The PIIHarmSubCategory that was evaluated. + filtered: + type: boolean + description: Whether the content detection resulted in a content filtering action for this subcategory. + detected: + type: boolean + description: Whether the labeled content subcategory was detected in the content. + redacted: + type: boolean + description: Whether the content was redacted for this subcategory. + description: Result details for individual PIIHarmSubCategory(s). + AzureResponsesSamplingParams: + type: object + properties: + max_tokens: + type: integer + format: int32 + description: The maximum number of tokens in the generated output. + allOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceSamplingParams' + description: Sampling parameters for controlling the behavior of responses. + AzureUserSecurityContext: + type: object + properties: + application_name: + type: string + description: The name of the application. Sensitive personal information should not be included in this field. + end_user_id: + type: string + description: This identifier is the Microsoft Entra ID (formerly Azure Active Directory) user object ID used to authenticate end-users within the generative AI application. Sensitive personal information should not be included in this field. + end_user_tenant_id: + type: string + description: The Microsoft 365 tenant ID the end user belongs to. It's required when the generative AI application is multitenant. + source_ip: + type: string + description: Captures the original client's IP address. + description: User security context contains several parameters that describe the application itself, and the end user that interacts with the application. These fields assist your security operations teams to investigate and mitigate security incidents by providing a comprehensive approach to protecting your AI applications. [Learn more](https://aka.ms/TP4AI/Documentation/EndUserContext) about protecting AI applications using Microsoft Defender for Cloud. + CopiedAccountDetails: + type: object + required: + - destinationResourceId + - region + - status + properties: + destinationResourceId: + type: string + description: The ID of the destination resource where the model was copied to. + region: + type: string + description: The region where the model was copied to. + status: + type: string + enum: + - Completed + - Failed + - InProgress + description: The status of the copy operation. + CopyModelRequest: + type: object + required: + - destinationResourceId + - region + properties: + destinationResourceId: + type: string + description: The ID of the destination Resource to copy. + region: + type: string + description: The region to copy the model to. + CopyModelResponse: + type: object + required: + - checkpointedModelName + - fineTuningJobId + - copiedAccountDetails + properties: + checkpointedModelName: + type: string + description: The ID of the copied model. + fineTuningJobId: + type: string + description: The ID of the fine-tuning job that the checkpoint was copied from. + copiedAccountDetails: + type: array + items: + $ref: '#/components/schemas/CopiedAccountDetails' + description: The ID of the destination resource id where it was copied + CreateVideoBody: + type: object + required: + - model + - prompt + properties: + model: + type: string + description: The name of the deployment to use for this request. + prompt: + type: string + minLength: 1 + description: Text prompt that describes the video to generate. + seconds: + allOf: + - $ref: '#/components/schemas/VideoSeconds' + description: Clip duration in seconds. Defaults to 4 seconds. + default: '4' + size: + allOf: + - $ref: '#/components/schemas/VideoSize' + description: Output resolution formatted as width x height. Defaults to 720x1280. + default: 720x1280 + CreateVideoBodyWithInputReference: + type: object + required: + - model + - prompt + - input_reference + properties: + model: + type: object + description: The name of the deployment to use for this request. + prompt: + type: object + description: Text prompt that describes the video to generate. + seconds: + type: object + description: Clip duration in seconds. Defaults to 4 seconds. + size: + type: object + description: Output resolution formatted as width x height. Defaults to 720x1280. + input_reference: + type: object + description: Optional image reference that guides generation. + x-oaiTypeLabel: file + description: The properties of a video generation job request with media files. + CreateVideoRemixBody: + type: object + required: + - prompt + properties: + prompt: + type: string + minLength: 1 + description: Updated text prompt that directs the remix generation. + description: Parameters for remixing an existing generated video. + DeletedVideoResource: + type: object + required: + - object + - deleted + - id + properties: + object: + type: string + description: The object type that signals the deletion response. + default: video.deleted + deleted: + type: boolean + description: Indicates that the video resource was deleted. + default: true + id: + type: string + description: Identifier of the deleted video. + description: Confirmation payload returned after deleting a video. + Error: + type: object + required: + - code + - message + properties: + code: + type: string + message: + type: string + EvalGraderEndpoint: + type: object + required: + - type + - name + - url + properties: + type: + type: string + enum: + - endpoint + default: endpoint + name: + type: string + description: The name of the grader + url: + type: string + pattern: ^https:// + description: The HTTPS URL of the endpoint to call for grading + headers: + anyOf: + - type: object + unevaluatedProperties: + type: string + - type: 'null' + description: Optional HTTP headers to include in requests to the endpoint + rate_limit: + anyOf: + - type: integer + format: int32 + - type: 'null' + description: |- + Optional rate limit for requests per second to the endpoint + Must be a positive integer + pass_threshold: + anyOf: + - type: number + format: decimal + - type: 'null' + description: |- + Optional threshold score above which the grade is considered passing + If not specified, all scores are considered valid + GraderEndpoint: + type: object + required: + - type + - name + - url + properties: + type: + type: string + enum: + - endpoint + default: endpoint + name: + type: string + description: The name of the grader + url: + type: string + pattern: ^https:// + description: The HTTPS URL of the endpoint to call for grading + headers: + anyOf: + - type: object + unevaluatedProperties: + type: string + - type: 'null' + description: Optional HTTP headers to include in requests to the endpoint + rate_limit: + anyOf: + - type: integer + format: int32 + - type: 'null' + description: |- + Optional rate limit for requests per second to the endpoint + Must be a positive integer + pass_threshold: + anyOf: + - type: number + format: decimal + - type: 'null' + description: |- + Optional threshold score above which the grade is considered passing + If not specified, all scores are considered valid + description: Endpoint grader configuration for external HTTP endpoint evaluation + OpenAI.Annotation: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.AnnotationType' + discriminator: + propertyName: type + mapping: + file_citation: '#/components/schemas/OpenAI.FileCitationBody' + url_citation: '#/components/schemas/OpenAI.UrlCitationBody' + container_file_citation: '#/components/schemas/OpenAI.ContainerFileCitationBody' + file_path: '#/components/schemas/OpenAI.FilePath' + OpenAI.AnnotationType: + anyOf: + - type: string + - type: string + enum: + - file_citation + - url_citation + - container_file_citation + - file_path + OpenAI.ApplyPatchCallOutputStatus: + type: string + enum: + - completed + - failed + OpenAI.ApplyPatchCallStatus: + type: string + enum: + - in_progress + - completed + OpenAI.ApplyPatchCreateFileOperation: + type: object + required: + - type + - path + - diff + properties: + type: + type: string + enum: + - create_file + description: Create a new file with the provided diff. + x-stainless-const: true + default: create_file + path: + type: string + description: Path of the file to create. + diff: + type: string + description: Diff to apply. + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperation' + description: Instruction describing how to create a file via the apply_patch tool. + title: Apply patch create file operation + OpenAI.ApplyPatchDeleteFileOperation: + type: object + required: + - type + - path + properties: + type: + type: string + enum: + - delete_file + description: Delete the specified file. + x-stainless-const: true + default: delete_file + path: + type: string + description: Path of the file to delete. + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperation' + description: Instruction describing how to delete a file via the apply_patch tool. + title: Apply patch delete file operation + OpenAI.ApplyPatchFileOperation: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperationType' + discriminator: + propertyName: type + mapping: + create_file: '#/components/schemas/OpenAI.ApplyPatchCreateFileOperation' + delete_file: '#/components/schemas/OpenAI.ApplyPatchDeleteFileOperation' + update_file: '#/components/schemas/OpenAI.ApplyPatchUpdateFileOperation' + description: One of the create_file, delete_file, or update_file operations applied via apply_patch. + title: Apply patch operation + OpenAI.ApplyPatchFileOperationType: + anyOf: + - type: string + - type: string + enum: + - create_file + - delete_file + - update_file + OpenAI.ApplyPatchToolCall: + type: object + required: + - type + - id + - call_id + - status + - operation + properties: + type: + type: string + enum: + - apply_patch_call + description: The type of the item. Always `apply_patch_call`. + x-stainless-const: true + default: apply_patch_call + id: + type: string + description: The unique ID of the apply patch tool call. Populated when this item is returned via API. + call_id: + type: string + description: The unique ID of the apply patch tool call generated by the model. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchCallStatus' + description: The status of the apply patch tool call. One of `in_progress` or `completed`. + operation: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperation' + description: One of the create_file, delete_file, or update_file operations applied via apply_patch. + created_by: + type: string + description: The ID of the entity that created this tool call. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + description: A tool call that applies file diffs by creating, deleting, or updating files. + title: Apply patch tool call + OpenAI.ApplyPatchToolCallOutput: + type: object + required: + - type + - id + - call_id + - status + properties: + type: + type: string + enum: + - apply_patch_call_output + description: The type of the item. Always `apply_patch_call_output`. + x-stainless-const: true + default: apply_patch_call_output + id: + type: string + description: The unique ID of the apply patch tool call output. Populated when this item is returned via API. + call_id: + type: string + description: The unique ID of the apply patch tool call generated by the model. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchCallOutputStatus' + description: The status of the apply patch tool call output. One of `completed` or `failed`. + output: + anyOf: + - type: string + - type: 'null' + created_by: + type: string + description: The ID of the entity that created this tool call output. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + description: The output emitted by an apply patch tool call. + title: Apply patch tool call output + OpenAI.ApplyPatchToolParam: + type: object + required: + - type + properties: + type: + type: string + enum: + - apply_patch + description: The type of the tool. Always `apply_patch`. + x-stainless-const: true + default: apply_patch + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: Allows the assistant to create, delete, or update files using unified diffs. + title: Apply patch tool + OpenAI.ApplyPatchUpdateFileOperation: + type: object + required: + - type + - path + - diff + properties: + type: + type: string + enum: + - update_file + description: Update an existing file with the provided diff. + x-stainless-const: true + default: update_file + path: + type: string + description: Path of the file to update. + diff: + type: string + description: Diff to apply. + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperation' + description: Instruction describing how to update a file via the apply_patch tool. + title: Apply patch update file operation + OpenAI.ApproximateLocation: + type: object + required: + - type + properties: + type: + type: string + enum: + - approximate + description: The type of location approximation. Always `approximate`. + x-stainless-const: true + default: approximate + country: + anyOf: + - type: string + - type: 'null' + region: + anyOf: + - type: string + - type: 'null' + city: + anyOf: + - type: string + - type: 'null' + timezone: + anyOf: + - type: string + - type: 'null' + OpenAI.AssistantTool: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.AssistantToolType' + discriminator: + propertyName: type + mapping: + code_interpreter: '#/components/schemas/OpenAI.AssistantToolsCode' + file_search: '#/components/schemas/OpenAI.AssistantToolsFileSearch' + function: '#/components/schemas/OpenAI.AssistantToolsFunction' + OpenAI.AssistantToolType: + anyOf: + - type: string + - type: string + enum: + - code_interpreter + - file_search + - function + OpenAI.AssistantToolsCode: + type: object + required: + - type + properties: + type: + type: string + enum: + - code_interpreter + description: 'The type of tool being defined: `code_interpreter`' + x-stainless-const: true + allOf: + - $ref: '#/components/schemas/OpenAI.AssistantTool' + title: Code interpreter tool + OpenAI.AssistantToolsFileSearch: + type: object + required: + - type + properties: + type: + type: string + enum: + - file_search + description: 'The type of tool being defined: `file_search`' + x-stainless-const: true + file_search: + allOf: + - $ref: '#/components/schemas/OpenAI.AssistantToolsFileSearchFileSearch' + description: Overrides for the file search tool. + allOf: + - $ref: '#/components/schemas/OpenAI.AssistantTool' + title: FileSearch tool + OpenAI.AssistantToolsFileSearchFileSearch: + type: object + properties: + max_num_results: + type: integer + minimum: 1 + maximum: 50 + ranking_options: + $ref: '#/components/schemas/OpenAI.FileSearchRankingOptions' + OpenAI.AssistantToolsFileSearchTypeOnly: + type: object + required: + - type + properties: + type: + type: string + enum: + - file_search + description: 'The type of tool being defined: `file_search`' + x-stainless-const: true + title: AssistantToolsFileSearchTypeOnly + OpenAI.AssistantToolsFunction: + type: object + required: + - type + - function + properties: + type: + type: string + enum: + - function + description: 'The type of tool being defined: `function`' + x-stainless-const: true + function: + $ref: '#/components/schemas/OpenAI.FunctionObject' + allOf: + - $ref: '#/components/schemas/OpenAI.AssistantTool' + title: Function tool + OpenAI.AssistantsApiResponseFormatOption: + anyOf: + - type: string + enum: + - auto + - $ref: '#/components/schemas/OpenAI.ResponseFormatText' + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonObject' + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchema' + description: |- + Specifies the format that the model must output. Compatible with [GPT-4o](https://platform.openai.com/docs/models#gpt-4o), [GPT-4 Turbo](https://platform.openai.com/docs/models#gpt-4-turbo-and-gpt-4), and all GPT-3.5 Turbo models since `gpt-3.5-turbo-1106`. + + Setting to `{ "type": "json_schema", "json_schema": {...} }` enables Structured Outputs which ensures the model will match your supplied JSON schema. Learn more in the [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs). + + Setting to `{ "type": "json_object" }` enables JSON mode, which ensures the message the model generates is valid JSON. + + *Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. + OpenAI.AssistantsApiToolChoiceOption: + anyOf: + - type: string + enum: + - none + - auto + - required + - $ref: '#/components/schemas/OpenAI.AssistantsNamedToolChoice' + description: |- + Controls which (if any) tool is called by the model. + `none` means the model will not call any tools and instead generates a message. + `auto` is the default value and means the model can pick between generating a message or calling one or more tools. + `required` means the model must call one or more tools before responding to the user. + Specifying a particular tool like `{"type": "file_search"}` or `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + OpenAI.AssistantsNamedToolChoice: + type: object + required: + - type + properties: + type: + type: string + enum: + - function + - code_interpreter + - file_search + description: The type of the tool. If type is `function`, the function name must be set + function: + $ref: '#/components/schemas/OpenAI.AssistantsNamedToolChoiceFunction' + description: Specifies a tool the model should use. Use to force the model to call a specific tool. + OpenAI.AssistantsNamedToolChoiceFunction: + type: object + required: + - name + properties: + name: + type: string + OpenAI.AudioTranscription: + type: object + properties: + model: + type: string + description: The model to use for transcription. Current options are `whisper-1`, `gpt-4o-mini-transcribe`, `gpt-4o-transcribe`, and `gpt-4o-transcribe-diarize`. Use `gpt-4o-transcribe-diarize` when you need diarization with speaker labels. + language: + type: string + description: |- + The language of the input audio. Supplying the input language in + [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`) format + will improve accuracy and latency. + prompt: + type: string + description: |- + An optional text to guide the model's style or continue a previous audio + segment. + For `whisper-1`, the [prompt is a list of keywords](https://platform.openai.com/docs/guides/speech-to-text#prompting). + For `gpt-4o-transcribe` models (excluding `gpt-4o-transcribe-diarize`), the prompt is a free text string, for example "expect words related to technology". + OpenAI.AutoChunkingStrategyRequestParam: + type: object + required: + - type + properties: + type: + type: string + enum: + - auto + description: Always `auto`. + x-stainless-const: true + allOf: + - $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' + description: The default strategy. This strategy currently uses a `max_chunk_size_tokens` of `800` and `chunk_overlap_tokens` of `400`. + title: Auto Chunking Strategy + OpenAI.Batch: + type: object + required: + - id + - object + - endpoint + - completion_window + - status + - created_at + properties: + id: + type: string + object: + type: string + enum: + - batch + description: The object type, which is always `batch`. + x-stainless-const: true + endpoint: + type: string + description: The OpenAI API endpoint used by the batch. + model: + type: string + description: |- + Model ID used to process the batch, like `gpt-5-2025-08-07`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model + guide](https://platform.openai.com/docs/models) to browse and compare available models. + errors: + $ref: '#/components/schemas/OpenAI.BatchErrors' + completion_window: + type: string + description: The time frame within which the batch should be processed. + status: + type: string + enum: + - validating + - failed + - in_progress + - finalizing + - completed + - expired + - cancelling + - cancelled + description: The current status of the batch. + output_file_id: + type: string + description: The ID of the file containing the outputs of successfully executed requests. + error_file_id: + type: string + description: The ID of the file containing the outputs of requests with errors. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was created. + in_progress_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started processing. + expires_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch will expire. + finalizing_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started finalizing. + completed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was completed. + failed_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch failed. + expired_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch expired. + cancelling_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch started cancelling. + cancelled_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the batch was cancelled. + request_counts: + $ref: '#/components/schemas/OpenAI.BatchRequestCounts' + usage: + allOf: + - $ref: '#/components/schemas/OpenAI.BatchUsage' + description: |- + Represents token usage details including input tokens, output tokens, a + breakdown of output tokens, and the total tokens used. Only populated on + batches created after September 7, 2025. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + input_file_id: + anyOf: + - type: string + - type: 'null' + x-oaiMeta: + name: The batch object + example: | + { + "id": "batch_abc123", + "object": "batch", + "endpoint": "/v1/completions", + "model": "gpt-5-2025-08-07", + "errors": null, + "input_file_id": "file-abc123", + "completion_window": "24h", + "status": "completed", + "output_file_id": "file-cvaTdG", + "error_file_id": "file-HOWS94", + "created_at": 1711471533, + "in_progress_at": 1711471538, + "expires_at": 1711557933, + "finalizing_at": 1711493133, + "completed_at": 1711493163, + "failed_at": null, + "expired_at": null, + "cancelling_at": null, + "cancelled_at": null, + "request_counts": { + "total": 100, + "completed": 95, + "failed": 5 + }, + "usage": { + "input_tokens": 1500, + "input_tokens_details": { + "cached_tokens": 1024 + }, + "output_tokens": 500, + "output_tokens_details": { + "reasoning_tokens": 300 + }, + "total_tokens": 2000 + }, + "metadata": { + "customer_id": "user_123456789", + "batch_description": "Nightly eval job", + } + } + OpenAI.BatchError: + type: object + properties: + code: + type: string + description: An error code identifying the error type. + message: + type: string + description: A human-readable message providing more details about the error. + param: + anyOf: + - type: string + - type: 'null' + line: + anyOf: + - type: integer + - type: 'null' + OpenAI.BatchErrors: + type: object + properties: + object: + type: string + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.BatchError' + OpenAI.BatchRequestCounts: + type: object + required: + - total + - completed + - failed + properties: + total: + type: integer + description: Total number of requests in the batch. + completed: + type: integer + description: Number of requests that have been completed successfully. + failed: + type: integer + description: Number of requests that have failed. + description: The request counts for different statuses within the batch. + OpenAI.BatchUsage: + type: object + required: + - input_tokens + - input_tokens_details + - output_tokens + - output_tokens_details + - total_tokens + properties: + input_tokens: + type: integer + input_tokens_details: + $ref: '#/components/schemas/OpenAI.BatchUsageInputTokensDetails' + output_tokens: + type: integer + output_tokens_details: + $ref: '#/components/schemas/OpenAI.BatchUsageOutputTokensDetails' + total_tokens: + type: integer + OpenAI.BatchUsageInputTokensDetails: + type: object + required: + - cached_tokens + properties: + cached_tokens: + type: integer + OpenAI.BatchUsageOutputTokensDetails: + type: object + required: + - reasoning_tokens + properties: + reasoning_tokens: + type: integer + OpenAI.ChatCompletionAllowedTools: + type: object + required: + - mode + - tools + properties: + mode: + type: string + enum: + - auto + - required + description: |- + Constrains the tools available to the model to a pre-defined set. + + `auto` allows the model to pick from among the allowed tools and generate a + message. + + `required` requires the model to call one or more of the allowed tools. + tools: + type: array + items: + type: object + unevaluatedProperties: {} + description: |- + A list of tool definitions that the model should be allowed to call. + + For the Chat Completions API, the list of tool definitions might look like: + ```json + [ + { "type": "function", "function": { "name": "get_weather" } }, + { "type": "function", "function": { "name": "get_time" } } + ] + ``` + description: Constrains the tools available to the model to a pre-defined set. + title: Allowed tools + OpenAI.ChatCompletionAllowedToolsChoice: + type: object + required: + - type + - allowed_tools + properties: + type: + type: string + enum: + - allowed_tools + description: Allowed tool configuration type. Always `allowed_tools`. + x-stainless-const: true + allowed_tools: + $ref: '#/components/schemas/OpenAI.ChatCompletionAllowedTools' + description: Constrains the tools available to the model to a pre-defined set. + title: Allowed tools + OpenAI.ChatCompletionFunctionCallOption: + type: object + required: + - name + properties: + name: + type: string + description: The name of the function to call. + description: 'Specifying a particular function via `{"name": "my_function"}` forces the model to call that function.' + x-stainless-variantName: function_call_option + OpenAI.ChatCompletionFunctions: + type: object + required: + - name + properties: + description: + type: string + description: A description of what the function does, used by the model to choose when and how to call the function. + name: + type: string + description: The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. + parameters: + allOf: + - $ref: '#/components/schemas/OpenAI.FunctionParameters' + description: |- + The parameters the functions accepts, described as a JSON Schema object. + See the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) + for documentation about the format. + + Omitting `parameters` defines a function with an empty parameter list. + OpenAI.ChatCompletionMessageCustomToolCall: + type: object + required: + - id + - type + - custom + properties: + id: + type: string + description: The ID of the tool call. + type: + type: string + enum: + - custom + description: The type of the tool. Always `custom`. + x-stainless-const: true + custom: + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageCustomToolCallCustom' + description: The custom tool that the model called. + description: A call to a custom tool created by the model. + title: Custom tool call + OpenAI.ChatCompletionMessageCustomToolCallCustom: + type: object + required: + - name + - input + properties: + name: + type: string + input: + type: string + OpenAI.ChatCompletionMessageToolCall: + type: object + required: + - id + - type + - function + properties: + id: + type: string + description: The ID of the tool call. + type: + type: string + enum: + - function + description: The type of the tool. Currently, only `function` is supported. + x-stainless-const: true + function: + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCallFunction' + description: The function that the model called. + description: A call to a function tool created by the model. + title: Function tool call + OpenAI.ChatCompletionMessageToolCallChunk: + type: object + required: + - index + properties: + index: + type: integer + id: + type: string + description: The ID of the tool call. + type: + type: string + enum: + - function + description: The type of the tool. Currently, only `function` is supported. + x-stainless-const: true + function: + $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunkFunction' + OpenAI.ChatCompletionMessageToolCallChunkFunction: + type: object + properties: + name: + type: string + arguments: + type: string + OpenAI.ChatCompletionMessageToolCallFunction: + type: object + required: + - name + - arguments + properties: + name: + type: string + arguments: + type: string + OpenAI.ChatCompletionMessageToolCalls: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCall' + - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageCustomToolCall' + description: The tool calls generated by the model, such as function calls. + OpenAI.ChatCompletionMessageToolCallsItem: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCall' + - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageCustomToolCall' + description: The tool calls generated by the model, such as function calls. + OpenAI.ChatCompletionNamedToolChoice: + type: object + required: + - type + - function + properties: + type: + type: string + enum: + - function + description: For function calling, the type is always `function`. + x-stainless-const: true + function: + $ref: '#/components/schemas/OpenAI.ChatCompletionNamedToolChoiceFunction' + description: Specifies a tool the model should use. Use to force the model to call a specific function. + title: Function tool choice + OpenAI.ChatCompletionNamedToolChoiceCustom: + type: object + required: + - type + - custom + properties: + type: + type: string + enum: + - custom + description: For custom tool calling, the type is always `custom`. + x-stainless-const: true + custom: + $ref: '#/components/schemas/OpenAI.ChatCompletionNamedToolChoiceCustomCustom' + description: Specifies a tool the model should use. Use to force the model to call a specific custom tool. + title: Custom tool choice + OpenAI.ChatCompletionNamedToolChoiceCustomCustom: + type: object + required: + - name + properties: + name: + type: string + OpenAI.ChatCompletionNamedToolChoiceFunction: + type: object + required: + - name + properties: + name: + type: string + OpenAI.ChatCompletionRequestAssistantMessage: + type: object + required: + - role + properties: + content: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPart' + - type: 'null' + refusal: + anyOf: + - type: string + - type: 'null' + role: + type: string + enum: + - assistant + description: The role of the messages author, in this case `assistant`. + x-stainless-const: true + name: + type: string + description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. + audio: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageAudio' + - type: 'null' + description: Data about a previous audio response from the model. + tool_calls: + $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCalls' + function_call: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageFunctionCall' + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + description: Messages sent by the model in response to user messages. + title: Assistant message + x-stainless-soft-required: + - content + OpenAI.ChatCompletionRequestAssistantMessageAudio: + type: object + required: + - id + properties: + id: + type: string + OpenAI.ChatCompletionRequestAssistantMessageContentPart: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPartType' + discriminator: + propertyName: type + mapping: + refusal: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartRefusal' + OpenAI.ChatCompletionRequestAssistantMessageContentPartType: + anyOf: + - type: string + - type: string + enum: + - text + - refusal + OpenAI.ChatCompletionRequestAssistantMessageFunctionCall: + type: object + required: + - arguments + - name + properties: + arguments: + type: string + name: + type: string + OpenAI.ChatCompletionRequestDeveloperMessage: + type: object + required: + - content + - role + properties: + content: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' + description: The contents of the developer message. + role: + type: string + enum: + - developer + description: The role of the messages author, in this case `developer`. + x-stainless-const: true + name: + type: string + description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + description: |- + Developer-provided instructions that the model should follow, regardless of + messages sent by the user. With o1 models and newer, `developer` messages + replace the previous `system` messages. + title: Developer message + x-stainless-naming: + go: + variant_constructor: DeveloperMessage + OpenAI.ChatCompletionRequestFunctionMessage: + type: object + required: + - role + - content + - name + properties: + role: + type: string + enum: + - function + description: The role of the messages author, in this case `function`. + x-stainless-const: true + content: + anyOf: + - type: string + - type: 'null' + name: + type: string + description: The name of the function to call. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + title: Function message + OpenAI.ChatCompletionRequestMessage: + type: object + required: + - role + properties: + role: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageType' + discriminator: + propertyName: role + mapping: + assistant: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessage' + developer: '#/components/schemas/OpenAI.ChatCompletionRequestDeveloperMessage' + function: '#/components/schemas/OpenAI.ChatCompletionRequestFunctionMessage' + system: '#/components/schemas/OpenAI.ChatCompletionRequestSystemMessage' + user: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessage' + tool: '#/components/schemas/OpenAI.ChatCompletionRequestToolMessage' + OpenAI.ChatCompletionRequestMessageContentPartAudio: + type: object + required: + - type + - input_audio + properties: + type: + type: string + enum: + - input_audio + description: The type of the content part. Always `input_audio`. + x-stainless-const: true + input_audio: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudioInputAudio' + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart' + description: '' + title: Audio content part + x-stainless-naming: + go: + variant_constructor: InputAudioContentPart + OpenAI.ChatCompletionRequestMessageContentPartAudioInputAudio: + type: object + required: + - data + - format + properties: + data: + type: string + format: + type: string + enum: + - wav + - mp3 + OpenAI.ChatCompletionRequestMessageContentPartFile: + type: object + required: + - type + - file + properties: + type: + type: string + enum: + - file + description: The type of the content part. Always `file`. + x-stainless-const: true + file: + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFileFile' + x-stainless-naming: + java: + type_name: FileObject + kotlin: + type_name: FileObject + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart' + description: Learn about [file inputs](https://platform.openai.com/docs/guides/text) for text generation. + title: File content part + x-stainless-naming: + go: + variant_constructor: FileContentPart + OpenAI.ChatCompletionRequestMessageContentPartFileFile: + type: object + properties: + filename: + type: string + file_data: + type: string + file_id: + type: string + OpenAI.ChatCompletionRequestMessageContentPartImage: + type: object + required: + - type + - image_url + properties: + type: + type: string + enum: + - image_url + description: The type of the content part. + x-stainless-const: true + image_url: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImageImageUrl' + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart' + description: '' + title: Image content part + x-stainless-naming: + go: + variant_constructor: ImageContentPart + OpenAI.ChatCompletionRequestMessageContentPartImageImageUrl: + type: object + required: + - url + properties: + url: + type: string + format: uri + detail: + type: string + enum: + - auto + - low + - high + default: auto + OpenAI.ChatCompletionRequestMessageContentPartRefusal: + type: object + required: + - type + - refusal + properties: + type: + type: string + enum: + - refusal + description: The type of the content part. + x-stainless-const: true + refusal: + type: string + description: The refusal message generated by the model. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPart' + title: Refusal content part + OpenAI.ChatCompletionRequestMessageContentPartText: + type: object + required: + - type + - text + properties: + type: + type: string + enum: + - text + description: The type of the content part. + x-stainless-const: true + text: + type: string + description: The text content. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart' + description: '' + title: Text content part + x-stainless-naming: + go: + variant_constructor: TextContentPart + OpenAI.ChatCompletionRequestMessageType: + anyOf: + - type: string + - type: string + enum: + - developer + - system + - user + - assistant + - tool + - function + OpenAI.ChatCompletionRequestSystemMessage: + type: object + required: + - content + - role + properties: + content: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestSystemMessageContentPart' + description: The contents of the system message. + role: + type: string + enum: + - system + description: The role of the messages author, in this case `system`. + x-stainless-const: true + name: + type: string + description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + description: |- + Developer-provided instructions that the model should follow, regardless of + messages sent by the user. With o1 models and newer, use `developer` messages + for this purpose instead. + title: System message + x-stainless-naming: + go: + variant_constructor: SystemMessage + OpenAI.ChatCompletionRequestSystemMessageContentPart: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' + OpenAI.ChatCompletionRequestToolMessage: + type: object + required: + - role + - content + - tool_call_id + properties: + role: + type: string + enum: + - tool + description: The role of the messages author, in this case `tool`. + x-stainless-const: true + content: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestToolMessageContentPart' + description: The contents of the tool message. + tool_call_id: + type: string + description: Tool call that this message is responding to. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + title: Tool message + x-stainless-naming: + go: + variant_constructor: ToolMessage + OpenAI.ChatCompletionRequestToolMessageContentPart: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' + OpenAI.ChatCompletionRequestUserMessage: + type: object + required: + - content + - role + properties: + content: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart' + description: The contents of the user message. + role: + type: string + enum: + - user + description: The role of the messages author, in this case `user`. + x-stainless-const: true + name: + type: string + description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + description: |- + Messages sent by an end user, containing prompts or additional context + information. + title: User message + x-stainless-naming: + go: + variant_constructor: UserMessage + OpenAI.ChatCompletionRequestUserMessageContentPart: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPartType' + discriminator: + propertyName: type + mapping: + image_url: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImage' + input_audio: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudio' + file: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFile' + OpenAI.ChatCompletionRequestUserMessageContentPartType: + anyOf: + - type: string + - type: string + enum: + - text + - image_url + - input_audio + - file + OpenAI.ChatCompletionResponseMessage: + type: object + required: + - content + - refusal + - role + properties: + content: + anyOf: + - type: string + - type: 'null' + refusal: + anyOf: + - type: string + - type: 'null' + tool_calls: + $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCallsItem' + annotations: + type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionResponseMessageAnnotations' + description: |- + Annotations for the message, when applicable, as when using the + [web search tool](https://platform.openai.com/docs/guides/tools-web-search?api-mode=chat). + role: + type: string + enum: + - assistant + description: The role of the author of this message. + x-stainless-const: true + function_call: + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionResponseMessageFunctionCall' + description: Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model. + audio: + anyOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionResponseMessageAudio' + - type: 'null' + reasoning_content: + type: string + description: An Azure-specific extension property containing generated reasoning content from supported models. + description: |- + If the audio output modality is requested, this object contains data + about the audio response from the model. + OpenAI.ChatCompletionResponseMessageAnnotations: + type: object + required: + - type + - url_citation + properties: + type: + type: string + enum: + - url_citation + x-stainless-const: true + url_citation: + $ref: '#/components/schemas/OpenAI.ChatCompletionResponseMessageAnnotationsUrlCitation' + OpenAI.ChatCompletionResponseMessageAnnotationsUrlCitation: + type: object + required: + - end_index + - start_index + - url + - title + properties: + end_index: + type: integer + start_index: + type: integer + url: + type: string + title: + type: string + OpenAI.ChatCompletionResponseMessageAudio: + type: object + required: + - id + - expires_at + - data + - transcript + properties: + id: + type: string + expires_at: + type: integer + format: unixtime + data: + type: string + transcript: + type: string + OpenAI.ChatCompletionResponseMessageFunctionCall: + type: object + required: + - arguments + - name + properties: + arguments: + type: string + name: + type: string + OpenAI.ChatCompletionStreamOptions: + type: object + properties: + include_usage: + type: boolean + description: |- + If set, an additional chunk will be streamed before the `data: [DONE]` + message. The `usage` field on this chunk shows the token usage statistics + for the entire request, and the `choices` field will always be an empty + array. + + All other chunks will also include a `usage` field, but with a null + value. **NOTE:** If the stream is interrupted, you may not receive the + final usage chunk which contains the total token usage for the request. + include_obfuscation: + type: boolean + description: |- + When true, stream obfuscation will be enabled. Stream obfuscation adds + random characters to an `obfuscation` field on streaming delta events to + normalize payload sizes as a mitigation to certain side-channel attacks. + These obfuscation fields are included by default, but add a small amount + of overhead to the data stream. You can set `include_obfuscation` to + false to optimize for bandwidth if you trust the network links between + your application and the OpenAI API. + description: 'Options for streaming response. Only set this when you set `stream: true`.' + OpenAI.ChatCompletionStreamResponseDelta: + type: object + properties: + content: + anyOf: + - type: string + - type: 'null' + function_call: + allOf: + - $ref: '#/components/schemas/OpenAI.ChatCompletionStreamResponseDeltaFunctionCall' + description: Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model. + tool_calls: + type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunk' + role: + type: string + enum: + - developer + - system + - user + - assistant + - tool + description: The role of the author of this message. + refusal: + anyOf: + - type: string + - type: 'null' + reasoning_content: + type: string + description: An Azure-specific extension property containing generated reasoning content from supported models. + description: A chat completion delta generated by streamed model responses. + OpenAI.ChatCompletionStreamResponseDeltaFunctionCall: + type: object + properties: + arguments: + type: string + name: + type: string + OpenAI.ChatCompletionTokenLogprob: + type: object + required: + - token + - logprob + - bytes + - top_logprobs + properties: + token: + type: string + description: The token. + logprob: + type: number + description: The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely. + bytes: + anyOf: + - type: array + items: + type: integer + - type: 'null' + top_logprobs: + type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprobTopLogprobs' + description: List of the most likely tokens and their log probability, at this token position. In rare cases, there may be fewer than the number of requested `top_logprobs` returned. + OpenAI.ChatCompletionTokenLogprobTopLogprobs: + type: object + required: + - token + - logprob + - bytes + properties: + token: + type: string + logprob: + type: number + bytes: + anyOf: + - type: array + items: + type: integer + - type: 'null' + OpenAI.ChatCompletionTool: + type: object + required: + - type + - function + properties: + type: + type: string + enum: + - function + description: The type of the tool. Currently, only `function` is supported. + x-stainless-const: true + function: + $ref: '#/components/schemas/OpenAI.FunctionObject' + description: A function tool that can be used to generate a response. + title: Function tool + OpenAI.ChatCompletionToolChoiceOption: + anyOf: + - type: string + enum: + - none + - auto + - required + - $ref: '#/components/schemas/OpenAI.ChatCompletionAllowedToolsChoice' + - $ref: '#/components/schemas/OpenAI.ChatCompletionNamedToolChoice' + - $ref: '#/components/schemas/OpenAI.ChatCompletionNamedToolChoiceCustom' + description: |- + Controls which (if any) tool is called by the model. + `none` means the model will not call any tool and instead generates a message. + `auto` means the model can pick between generating a message or calling one or more tools. + `required` means the model must call one or more tools. + Specifying a particular tool via `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. + + `none` is the default when no tools are present. `auto` is the default if tools are present. + x-stainless-go-variant-constructor: + naming: tool_choice_option_{variant} + OpenAI.ChunkingStrategyRequestParam: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParamType' + discriminator: + propertyName: type + mapping: + auto: '#/components/schemas/OpenAI.AutoChunkingStrategyRequestParam' + static: '#/components/schemas/OpenAI.StaticChunkingStrategyRequestParam' + description: The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. Only applicable if `file_ids` is non-empty. + OpenAI.ChunkingStrategyRequestParamType: + anyOf: + - type: string + - type: string + enum: + - auto + - static + OpenAI.ChunkingStrategyResponse: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponseType' + discriminator: + propertyName: type + mapping: + static: '#/components/schemas/OpenAI.StaticChunkingStrategyResponseParam' + other: '#/components/schemas/OpenAI.OtherChunkingStrategyResponseParam' + description: The strategy used to chunk the file. + OpenAI.ChunkingStrategyResponseType: + anyOf: + - type: string + - type: string + enum: + - static + - other + OpenAI.ClickButtonType: + type: string + enum: + - left + - right + - wheel + - back + - forward + OpenAI.ClickParam: + type: object + required: + - type + - button + - x + - 'y' + properties: + type: + type: string + enum: + - click + description: Specifies the event type. For a click action, this property is always `click`. + x-stainless-const: true + default: click + button: + allOf: + - $ref: '#/components/schemas/OpenAI.ClickButtonType' + description: Indicates which mouse button was pressed during the click. One of `left`, `right`, `wheel`, `back`, or `forward`. + x: + type: integer + description: The x-coordinate where the click occurred. + 'y': + type: integer + description: The y-coordinate where the click occurred. + allOf: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A click action. + title: Click + OpenAI.CodeInterpreterContainerAuto: + type: object + required: + - type + properties: + type: + type: string + enum: + - auto + description: Always `auto`. + x-stainless-const: true + default: auto + file_ids: + type: array + items: + type: string + maxItems: 50 + description: An optional list of uploaded files to make available to your code. + memory_limit: + anyOf: + - $ref: '#/components/schemas/OpenAI.ContainerMemoryLimit' + - type: 'null' + description: Configuration for a code interpreter container. Optionally specify the IDs of the files to run the code on. + title: CodeInterpreterToolAuto + x-stainless-naming: + go: + type_name: ToolCodeInterpreterContainerCodeInterpreterContainerAuto + OpenAI.CodeInterpreterOutputImage: + type: object + required: + - type + - url + properties: + type: + type: string + enum: + - image + description: The type of the output. Always `image`. + x-stainless-const: true + default: image + url: + type: string + description: The URL of the image output from the code interpreter. + description: The image output from the code interpreter. + title: Code interpreter output image + OpenAI.CodeInterpreterOutputLogs: + type: object + required: + - type + - logs + properties: + type: + type: string + enum: + - logs + description: The type of the output. Always `logs`. + x-stainless-const: true + default: logs + logs: + type: string + description: The logs output from the code interpreter. + description: The logs output from the code interpreter. + title: Code interpreter output logs + OpenAI.CodeInterpreterTool: + type: object + required: + - type + - container + properties: + type: + type: string + enum: + - code_interpreter + description: The type of the code interpreter tool. Always `code_interpreter`. + x-stainless-const: true + container: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAI.CodeInterpreterContainerAuto' + description: |- + The code interpreter container. Can be a container ID or an object that + specifies uploaded file IDs to make available to your code, along with an + optional `memory_limit` setting. + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A tool that runs Python code to help generate a response to a prompt. + title: Code interpreter + OpenAI.CompactionBody: + type: object + required: + - type + - id + - encrypted_content + properties: + type: + type: string + enum: + - compaction + description: The type of the item. Always `compaction`. + x-stainless-const: true + default: compaction + id: + type: string + description: The unique ID of the compaction item. + encrypted_content: + type: string + created_by: + type: string + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + description: A compaction item generated by the [`v1/responses/compact` API](https://platform.openai.com/docs/api-reference/responses/compact). + title: Compaction item + OpenAI.ComparisonFilter: + type: object + required: + - type + - key + - value + properties: + type: + type: string + enum: + - eq + - ne + - gt + - gte + - lt + - lte + description: |- + Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`. + - `eq`: equals + - `ne`: not equal + - `gt`: greater than + - `gte`: greater than or equal + - `lt`: less than + - `lte`: less than or equal + - `in`: in + - `nin`: not in + default: eq + key: + type: string + description: The key to compare against the value. + value: + anyOf: + - type: string + - type: number + - type: boolean + - type: array + items: + $ref: '#/components/schemas/OpenAI.ComparisonFilterValueItems' + description: The value to compare against the attribute key; supports string, number, or boolean types. + description: A filter used to compare a specified attribute key to a given value using a defined comparison operation. + title: Comparison Filter + x-oaiMeta: + name: ComparisonFilter + OpenAI.ComparisonFilterValueItems: + anyOf: + - type: string + - type: number + OpenAI.CompletionUsage: + type: object + required: + - completion_tokens + - prompt_tokens + - total_tokens + properties: + completion_tokens: + type: integer + description: Number of tokens in the generated completion. + prompt_tokens: + type: integer + description: Number of tokens in the prompt. + total_tokens: + type: integer + description: Total number of tokens used in the request (prompt + completion). + completion_tokens_details: + allOf: + - $ref: '#/components/schemas/OpenAI.CompletionUsageCompletionTokensDetails' + description: Breakdown of tokens used in a completion. + prompt_tokens_details: + allOf: + - $ref: '#/components/schemas/OpenAI.CompletionUsagePromptTokensDetails' + description: Breakdown of tokens used in the prompt. + description: Usage statistics for the completion request. + OpenAI.CompletionUsageCompletionTokensDetails: + type: object + properties: + accepted_prediction_tokens: + type: integer + audio_tokens: + type: integer + reasoning_tokens: + type: integer + rejected_prediction_tokens: + type: integer + OpenAI.CompletionUsagePromptTokensDetails: + type: object + properties: + audio_tokens: + type: integer + cached_tokens: + type: integer + OpenAI.CompoundFilter: + type: object + required: + - type + - filters + properties: + type: + type: string + enum: + - and + - or + description: 'Type of operation: `and` or `or`.' + filters: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.ComparisonFilter' + - {} + description: Array of filters to combine. Items can be `ComparisonFilter` or `CompoundFilter`. + description: Combine multiple filters using `and` or `or`. + title: Compound Filter + x-oaiMeta: + name: CompoundFilter + OpenAI.ComputerAction: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ComputerActionType' + discriminator: + propertyName: type + mapping: + click: '#/components/schemas/OpenAI.ClickParam' + double_click: '#/components/schemas/OpenAI.DoubleClickAction' + drag: '#/components/schemas/OpenAI.Drag' + keypress: '#/components/schemas/OpenAI.KeyPressAction' + move: '#/components/schemas/OpenAI.Move' + screenshot: '#/components/schemas/OpenAI.Screenshot' + scroll: '#/components/schemas/OpenAI.Scroll' + type: '#/components/schemas/OpenAI.Type' + wait: '#/components/schemas/OpenAI.Wait' + OpenAI.ComputerActionType: + anyOf: + - type: string + - type: string + enum: + - click + - double_click + - drag + - keypress + - move + - screenshot + - scroll + - type + - wait + OpenAI.ComputerCallSafetyCheckParam: + type: object + required: + - id + properties: + id: + type: string + description: The ID of the pending safety check. + code: + anyOf: + - type: string + - type: 'null' + message: + anyOf: + - type: string + - type: 'null' + description: A pending safety check for the computer call. + OpenAI.ComputerEnvironment: + type: string + enum: + - windows + - mac + - linux + - ubuntu + - browser + OpenAI.ComputerScreenshotContent: + type: object + required: + - type + - image_url + - file_id + properties: + type: + type: string + enum: + - computer_screenshot + description: Specifies the event type. For a computer screenshot, this property is always set to `computer_screenshot`. + x-stainless-const: true + default: computer_screenshot + image_url: + anyOf: + - type: string + - type: 'null' + file_id: + anyOf: + - type: string + - type: 'null' + description: A screenshot of a computer. + title: Computer screenshot + OpenAI.ComputerScreenshotImage: + type: object + required: + - type + properties: + type: + type: string + enum: + - computer_screenshot + description: |- + Specifies the event type. For a computer screenshot, this property is + always set to `computer_screenshot`. + x-stainless-const: true + default: computer_screenshot + image_url: + type: string + description: The URL of the screenshot image. + file_id: + type: string + description: The identifier of an uploaded file that contains the screenshot. + description: A computer screenshot image used with the computer use tool. + OpenAI.ComputerToolCallOutputResource: + type: object + required: + - type + - call_id + - output + properties: + type: + type: string + enum: + - computer_call_output + description: The type of the computer tool call output. Always `computer_call_output`. + x-stainless-const: true + default: computer_call_output + id: + type: string + description: The ID of the computer tool call output. + call_id: + type: string + description: The ID of the computer tool call that produced the output. + acknowledged_safety_checks: + type: array + items: + $ref: '#/components/schemas/OpenAI.ComputerCallSafetyCheckParam' + description: |- + The safety checks reported by the API that have been acknowledged by the + developer. + output: + $ref: '#/components/schemas/OpenAI.ComputerScreenshotImage' + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the message input. One of `in_progress`, `completed`, or + `incomplete`. Populated when input items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ComputerUsePreviewTool: + type: object + required: + - type + - environment + - display_width + - display_height + properties: + type: + type: string + enum: + - computer_use_preview + description: The type of the computer use tool. Always `computer_use_preview`. + x-stainless-const: true + default: computer_use_preview + environment: + allOf: + - $ref: '#/components/schemas/OpenAI.ComputerEnvironment' + description: The type of computer environment to control. + display_width: + type: integer + description: The width of the computer display. + display_height: + type: integer + description: The height of the computer display. + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A tool that controls a virtual computer. Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use). + title: Computer use preview + OpenAI.ContainerFileCitationBody: + type: object + required: + - type + - container_id + - file_id + - start_index + - end_index + - filename + properties: + type: + type: string + enum: + - container_file_citation + description: The type of the container file citation. Always `container_file_citation`. + x-stainless-const: true + default: container_file_citation + container_id: + type: string + description: The ID of the container file. + file_id: + type: string + description: The ID of the file. + start_index: + type: integer + description: The index of the first character of the container file citation in the message. + end_index: + type: integer + description: The index of the last character of the container file citation in the message. + filename: + type: string + description: The filename of the container file cited. + allOf: + - $ref: '#/components/schemas/OpenAI.Annotation' + description: A citation for a container file used to generate a model response. + title: Container file citation + OpenAI.ContainerFileListResource: + type: object + required: + - object + - data + - first_id + - last_id + - has_more + properties: + object: + type: string + enum: + - list + description: The type of object returned, must be 'list'. + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.ContainerFileResource' + description: A list of container files. + first_id: + type: string + description: The ID of the first file in the list. + last_id: + type: string + description: The ID of the last file in the list. + has_more: + type: boolean + description: Whether there are more files available. + OpenAI.ContainerFileResource: + type: object + required: + - id + - object + - container_id + - created_at + - bytes + - path + - source + properties: + id: + type: string + description: Unique identifier for the file. + object: + type: string + enum: + - container.file + description: The type of this object (`container.file`). + container_id: + type: string + description: The container this file belongs to. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) when the file was created. + bytes: + type: integer + description: Size of the file in bytes. + path: + type: string + description: Path of the file in the container. + source: + type: string + description: Source of the file (e.g., `user`, `assistant`). + title: The container file object + x-oaiMeta: + name: The container file object + example: | + { + "id": "cfile_682e0e8a43c88191a7978f477a09bdf5", + "object": "container.file", + "created_at": 1747848842, + "bytes": 880, + "container_id": "cntr_682e0e7318108198aa783fd921ff305e08e78805b9fdbb04", + "path": "/mnt/data/88e12fa445d32636f190a0b33daed6cb-tsconfig.json", + "source": "user" + } + OpenAI.ContainerListResource: + type: object + required: + - object + - data + - first_id + - last_id + - has_more + properties: + object: + type: string + enum: + - list + description: The type of object returned, must be 'list'. + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.ContainerResource' + description: A list of containers. + first_id: + type: string + description: The ID of the first container in the list. + last_id: + type: string + description: The ID of the last container in the list. + has_more: + type: boolean + description: Whether there are more containers available. + OpenAI.ContainerMemoryLimit: + type: string + enum: + - 1g + - 4g + - 16g + - 64g + OpenAI.ContainerResource: + type: object + required: + - id + - object + - name + - created_at + - status + properties: + id: + type: string + description: Unique identifier for the container. + object: + type: string + description: The type of this object. + name: + type: string + description: Name of the container. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) when the container was created. + status: + type: string + description: Status of the container (e.g., active, deleted). + last_active_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) when the container was last active. + expires_after: + allOf: + - $ref: '#/components/schemas/OpenAI.ContainerResourceExpiresAfter' + description: |- + The container will expire after this time period. + The anchor is the reference point for the expiration. + The minutes is the number of minutes after the anchor before the container expires. + memory_limit: + type: string + enum: + - 1g + - 4g + - 16g + - 64g + description: The memory limit configured for the container. + title: The container object + x-oaiMeta: + name: The container object + example: | + { + "id": "cntr_682dfebaacac8198bbfe9c2474fb6f4a085685cbe3cb5863", + "object": "container", + "created_at": 1747844794, + "status": "running", + "expires_after": { + "anchor": "last_active_at", + "minutes": 20 + }, + "last_active_at": 1747844794, + "memory_limit": "1g", + "name": "My Container" + } + OpenAI.ContainerResourceExpiresAfter: + type: object + properties: + anchor: + type: string + enum: + - last_active_at + minutes: + type: integer + OpenAI.Conversation: + type: object + required: + - id + - object + - metadata + - created_at + properties: + id: + type: string + description: The unique ID of the conversation. + object: + type: string + enum: + - conversation + description: The object type, which is always `conversation`. + x-stainless-const: true + default: conversation + metadata: + description: |- + Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. + Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters. + created_at: + type: integer + format: unixtime + description: The time at which the conversation was created, measured in seconds since the Unix epoch. + title: The conversation object + x-oaiMeta: + name: The conversation object + group: conversations + OpenAI.ConversationItem: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ConversationItemType' + discriminator: + propertyName: type mapping: - azure_search: '#/components/schemas/AzureSearchChatDataSource' - azure_cosmos_db: '#/components/schemas/AzureCosmosDBChatDataSource' - elasticsearch: '#/components/schemas/ElasticsearchChatDataSource' - pinecone: '#/components/schemas/PineconeChatDataSource' - mongo_db: '#/components/schemas/MongoDBChatDataSource' - description: |- - A representation of configuration data for a single Azure OpenAI chat data source. - This will be used by a chat completions request that should use Azure OpenAI chat extensions to augment the - response behavior. - The use of this configuration is compatible only with Azure OpenAI. - AzureChatDataSourceAccessTokenAuthenticationOptions: + message: '#/components/schemas/OpenAI.Message' + function_call: '#/components/schemas/OpenAI.ConversationItemFunctionToolCallResource' + function_call_output: '#/components/schemas/OpenAI.ConversationItemFunctionToolCallOutputResource' + file_search_call: '#/components/schemas/OpenAI.ConversationItemFileSearchToolCall' + web_search_call: '#/components/schemas/OpenAI.ConversationItemWebSearchToolCall' + image_generation_call: '#/components/schemas/OpenAI.ConversationItemImageGenToolCall' + computer_call: '#/components/schemas/OpenAI.ConversationItemComputerToolCall' + computer_call_output: '#/components/schemas/OpenAI.ConversationItemComputerToolCallOutputResource' + reasoning: '#/components/schemas/OpenAI.ConversationItemReasoningItem' + code_interpreter_call: '#/components/schemas/OpenAI.ConversationItemCodeInterpreterToolCall' + local_shell_call: '#/components/schemas/OpenAI.ConversationItemLocalShellToolCall' + local_shell_call_output: '#/components/schemas/OpenAI.ConversationItemLocalShellToolCallOutput' + shell_call: '#/components/schemas/OpenAI.ConversationItemFunctionShellCall' + shell_call_output: '#/components/schemas/OpenAI.ConversationItemFunctionShellCallOutput' + apply_patch_call: '#/components/schemas/OpenAI.ConversationItemApplyPatchToolCall' + apply_patch_call_output: '#/components/schemas/OpenAI.ConversationItemApplyPatchToolCallOutput' + mcp_list_tools: '#/components/schemas/OpenAI.ConversationItemMCPListTools' + mcp_approval_request: '#/components/schemas/OpenAI.ConversationItemMCPApprovalRequest' + mcp_approval_response: '#/components/schemas/OpenAI.ConversationItemMCPApprovalResponseResource' + mcp_call: '#/components/schemas/OpenAI.ConversationItemMCPToolCall' + custom_tool_call: '#/components/schemas/OpenAI.ConversationItemCustomToolCall' + custom_tool_call_output: '#/components/schemas/OpenAI.ConversationItemCustomToolCallOutput' + description: A single item within a conversation. The set of possible types are the same as the `output` type of a [Response object](https://platform.openai.com/docs/api-reference/responses/object#responses/object-output). + title: Conversation item + OpenAI.ConversationItemApplyPatchToolCall: + type: object + required: + - type + - id + - call_id + - status + - operation + properties: + type: + type: string + enum: + - apply_patch_call + description: The type of the item. Always `apply_patch_call`. + x-stainless-const: true + default: apply_patch_call + id: + type: string + description: The unique ID of the apply patch tool call. Populated when this item is returned via API. + call_id: + type: string + description: The unique ID of the apply patch tool call generated by the model. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchCallStatus' + description: The status of the apply patch tool call. One of `in_progress` or `completed`. + operation: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperation' + description: One of the create_file, delete_file, or update_file operations applied via apply_patch. + created_by: + type: string + description: The ID of the entity that created this tool call. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemApplyPatchToolCallOutput: + type: object + required: + - type + - id + - call_id + - status + properties: + type: + type: string + enum: + - apply_patch_call_output + description: The type of the item. Always `apply_patch_call_output`. + x-stainless-const: true + default: apply_patch_call_output + id: + type: string + description: The unique ID of the apply patch tool call output. Populated when this item is returned via API. + call_id: + type: string + description: The unique ID of the apply patch tool call generated by the model. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchCallOutputStatus' + description: The status of the apply patch tool call output. One of `completed` or `failed`. + output: + anyOf: + - type: string + - type: 'null' + created_by: + type: string + description: The ID of the entity that created this tool call output. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemCodeInterpreterToolCall: + type: object + required: + - type + - id + - status + - container_id + - code + - outputs + properties: + type: + type: string + enum: + - code_interpreter_call + description: The type of the code interpreter tool call. Always `code_interpreter_call`. + x-stainless-const: true + default: code_interpreter_call + id: + type: string + description: The unique ID of the code interpreter tool call. + status: + type: string + enum: + - in_progress + - completed + - incomplete + - interpreting + - failed + description: The status of the code interpreter tool call. Valid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`. + container_id: + type: string + description: The ID of the container used to run the code. + code: + anyOf: + - type: string + - type: 'null' + outputs: + anyOf: + - type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputLogs' + - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputImage' + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemComputerToolCall: + type: object + required: + - type + - id + - call_id + - action + - pending_safety_checks + - status + properties: + type: + type: string + enum: + - computer_call + description: The type of the computer call. Always `computer_call`. + default: computer_call + id: + type: string + description: The unique ID of the computer call. + call_id: + type: string + description: An identifier used when responding to the tool call with output. + action: + $ref: '#/components/schemas/OpenAI.ComputerAction' + pending_safety_checks: + type: array + items: + $ref: '#/components/schemas/OpenAI.ComputerCallSafetyCheckParam' + description: The pending safety checks for the computer call. + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemComputerToolCallOutputResource: + type: object + required: + - type + - call_id + - output + properties: + type: + type: string + enum: + - computer_call_output + description: The type of the computer tool call output. Always `computer_call_output`. + x-stainless-const: true + default: computer_call_output + id: + type: string + description: The ID of the computer tool call output. + call_id: + type: string + description: The ID of the computer tool call that produced the output. + acknowledged_safety_checks: + type: array + items: + $ref: '#/components/schemas/OpenAI.ComputerCallSafetyCheckParam' + description: |- + The safety checks reported by the API that have been acknowledged by the + developer. + output: + $ref: '#/components/schemas/OpenAI.ComputerScreenshotImage' + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the message input. One of `in_progress`, `completed`, or + `incomplete`. Populated when input items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemCustomToolCall: + type: object + required: + - type + - call_id + - name + - input + properties: + type: + type: string + enum: + - custom_tool_call + description: The type of the custom tool call. Always `custom_tool_call`. + x-stainless-const: true + id: + type: string + description: The unique ID of the custom tool call in the OpenAI platform. + call_id: + type: string + description: An identifier used to map this custom tool call to a tool call output. + name: + type: string + description: The name of the custom tool being called. + input: + type: string + description: The input for the custom tool call generated by the model. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemCustomToolCallOutput: + type: object + required: + - type + - call_id + - output + properties: + type: + type: string + enum: + - custom_tool_call_output + description: The type of the custom tool call output. Always `custom_tool_call_output`. + x-stainless-const: true + id: + type: string + description: The unique ID of the custom tool call output in the OpenAI platform. + call_id: + type: string + description: The call ID, used to map this custom tool call output to a custom tool call. + output: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.FunctionAndCustomToolCallOutput' + description: |- + The output from the custom tool call generated by your code. + Can be a string or an list of output content. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemFileSearchToolCall: + type: object + required: + - id + - type + - status + - queries + properties: + id: + type: string + description: The unique ID of the file search tool call. + type: + type: string + enum: + - file_search_call + description: The type of the file search tool call. Always `file_search_call`. + x-stainless-const: true + status: + type: string + enum: + - in_progress + - searching + - completed + - incomplete + - failed + description: |- + The status of the file search tool call. One of `in_progress`, + `searching`, `incomplete` or `failed`, + queries: + type: array + items: + type: string + description: The queries used to search for files. + results: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.FileSearchToolCallResults' + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemFunctionShellCall: + type: object + required: + - type + - id + - call_id + - action + - status + properties: + type: + type: string + enum: + - shell_call + description: The type of the item. Always `shell_call`. + x-stainless-const: true + default: shell_call + id: + type: string + description: The unique ID of the shell tool call. Populated when this item is returned via API. + call_id: + type: string + description: The unique ID of the shell tool call generated by the model. + action: + allOf: + - $ref: '#/components/schemas/OpenAI.FunctionShellAction' + description: The shell commands and limits that describe how to run the tool call. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.LocalShellCallStatus' + description: The status of the shell call. One of `in_progress`, `completed`, or `incomplete`. + created_by: + type: string + description: The ID of the entity that created this tool call. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemFunctionShellCallOutput: + type: object + required: + - type + - id + - call_id + - output + - max_output_length + properties: + type: + type: string + enum: + - shell_call_output + description: The type of the shell call output. Always `shell_call_output`. + x-stainless-const: true + default: shell_call_output + id: + type: string + description: The unique ID of the shell call output. Populated when this item is returned via API. + call_id: + type: string + description: The unique ID of the shell tool call generated by the model. + output: + type: array + items: + $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputContent' + description: An array of shell call output contents + max_output_length: + anyOf: + - type: integer + - type: 'null' + created_by: + type: string + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemFunctionToolCallOutputResource: + type: object + required: + - type + - call_id + - output + properties: + id: + type: string + description: |- + The unique ID of the function tool call output. Populated when this item + is returned via API. + type: + type: string + enum: + - function_call_output + description: The type of the function tool call output. Always `function_call_output`. + x-stainless-const: true + call_id: + type: string + description: The unique ID of the function tool call generated by the model. + output: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.FunctionAndCustomToolCallOutput' + description: |- + The output from the function call generated by your code. + Can be a string or an list of output content. + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemFunctionToolCallResource: + type: object + required: + - type + - call_id + - name + - arguments + properties: + id: + type: string + description: The unique ID of the function tool call. + type: + type: string + enum: + - function_call + description: The type of the function tool call. Always `function_call`. + x-stainless-const: true + call_id: + type: string + description: The unique ID of the function tool call generated by the model. + name: + type: string + description: The name of the function to run. + arguments: + type: string + description: A JSON string of the arguments to pass to the function. + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemImageGenToolCall: + type: object + required: + - type + - id + - status + - result + properties: + type: + type: string + enum: + - image_generation_call + description: The type of the image generation call. Always `image_generation_call`. + x-stainless-const: true + id: + type: string + description: The unique ID of the image generation call. + status: + type: string + enum: + - in_progress + - completed + - generating + - failed + description: The status of the image generation call. + result: + anyOf: + - type: string + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemList: + type: object + required: + - object + - data + - has_more + - first_id + - last_id + properties: + object: + type: string + enum: + - list + description: The type of object returned, must be `list`. + x-stainless-const: true + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.ConversationItem' + description: A list of conversation items. + has_more: + type: boolean + description: Whether there are more items available. + first_id: + type: string + description: The ID of the first item in the list. + last_id: + type: string + description: The ID of the last item in the list. + description: A list of Conversation items. + title: The conversation item list + x-oaiMeta: + name: The item list + group: conversations + OpenAI.ConversationItemLocalShellToolCall: + type: object + required: + - type + - id + - call_id + - action + - status + properties: + type: + type: string + enum: + - local_shell_call + description: The type of the local shell call. Always `local_shell_call`. + x-stainless-const: true + id: + type: string + description: The unique ID of the local shell call. + call_id: + type: string + description: The unique ID of the local shell tool call generated by the model. + action: + $ref: '#/components/schemas/OpenAI.LocalShellExecAction' + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: The status of the local shell call. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemLocalShellToolCallOutput: + type: object + required: + - type + - id + - output + properties: + type: + type: string + enum: + - local_shell_call_output + description: The type of the local shell tool call output. Always `local_shell_call_output`. + x-stainless-const: true + id: + type: string + description: The unique ID of the local shell tool call generated by the model. + output: + type: string + description: A JSON string of the output of the local shell tool call. + status: + anyOf: + - type: string + enum: + - in_progress + - completed + - incomplete + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemMCPApprovalRequest: + type: object + required: + - type + - id + - server_label + - name + - arguments + properties: + type: + type: string + enum: + - mcp_approval_request + description: The type of the item. Always `mcp_approval_request`. + x-stainless-const: true + id: + type: string + description: The unique ID of the approval request. + server_label: + type: string + description: The label of the MCP server making the request. + name: + type: string + description: The name of the tool to run. + arguments: + type: string + description: A JSON string of arguments for the tool. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemMCPApprovalResponseResource: + type: object + required: + - type + - id + - approval_request_id + - approve + properties: + type: + type: string + enum: + - mcp_approval_response + description: The type of the item. Always `mcp_approval_response`. + x-stainless-const: true + id: + type: string + description: The unique ID of the approval response + approval_request_id: + type: string + description: The ID of the approval request being answered. + approve: + type: boolean + description: Whether the request was approved. + reason: + anyOf: + - type: string + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemMCPListTools: type: object required: - type - - access_token + - id + - server_label + - tools properties: type: type: string enum: - - access_token - access_token: + - mcp_list_tools + description: The type of the item. Always `mcp_list_tools`. + x-stainless-const: true + id: + type: string + description: The unique ID of the list. + server_label: type: string + description: The label of the MCP server. + tools: + type: array + items: + $ref: '#/components/schemas/OpenAI.MCPListToolsTool' + description: The tools available on the server. + error: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceApiKeyAuthenticationOptions: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemMCPToolCall: type: object required: - type - - key + - id + - server_label + - name + - arguments properties: type: type: string enum: - - api_key - key: + - mcp_call + description: The type of the item. Always `mcp_call`. + x-stainless-const: true + id: type: string + description: The unique ID of the tool call. + server_label: + type: string + description: The label of the MCP server running the tool. + name: + type: string + description: The name of the tool that was run. + arguments: + type: string + description: A JSON string of the arguments passed to the tool. + output: + anyOf: + - type: string + - type: 'null' + error: + anyOf: + - type: string + - type: 'null' + status: + allOf: + - $ref: '#/components/schemas/OpenAI.MCPToolCallStatus' + description: The status of the tool call. One of `in_progress`, `completed`, `incomplete`, `calling`, or `failed`. + approval_request_id: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceAuthenticationOptions: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemReasoningItem: type: object required: - type + - id + - summary properties: type: - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptionsType' - discriminator: - propertyName: type - mapping: - system_assigned_managed_identity: '#/components/schemas/AzureChatDataSourceSystemAssignedManagedIdentityAuthenticationOptions' - user_assigned_managed_identity: '#/components/schemas/AzureChatDataSourceUserAssignedManagedIdentityAuthenticationOptions' - access_token: '#/components/schemas/AzureChatDataSourceAccessTokenAuthenticationOptions' - connection_string: '#/components/schemas/AzureChatDataSourceConnectionStringAuthenticationOptions' - key_and_key_id: '#/components/schemas/AzureChatDataSourceKeyAndKeyIdAuthenticationOptions' - encoded_api_key: '#/components/schemas/AzureChatDataSourceEncodedApiKeyAuthenticationOptions' - username_and_password: '#/components/schemas/AzureChatDataSourceUsernameAndPasswordAuthenticationOptions' - AzureChatDataSourceAuthenticationOptionsType: - type: string - enum: - - api_key - - username_and_password - - connection_string - - key_and_key_id - - encoded_api_key - - access_token - - system_assigned_managed_identity - - user_assigned_managed_identity - AzureChatDataSourceConnectionStringAuthenticationOptions: + type: string + enum: + - reasoning + description: The type of the object. Always `reasoning`. + x-stainless-const: true + id: + type: string + description: The unique identifier of the reasoning content. + encrypted_content: + anyOf: + - type: string + - type: 'null' + summary: + type: array + items: + $ref: '#/components/schemas/OpenAI.Summary' + description: Reasoning summary content. + content: + type: array + items: + $ref: '#/components/schemas/OpenAI.ReasoningTextContent' + description: Reasoning text content. + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationItemType: + anyOf: + - type: string + - type: string + enum: + - message + - function_call + - function_call_output + - file_search_call + - web_search_call + - image_generation_call + - computer_call + - computer_call_output + - reasoning + - code_interpreter_call + - local_shell_call + - local_shell_call_output + - shell_call + - shell_call_output + - apply_patch_call + - apply_patch_call_output + - mcp_list_tools + - mcp_approval_request + - mcp_approval_response + - mcp_call + - custom_tool_call + - custom_tool_call_output + OpenAI.ConversationItemWebSearchToolCall: type: object required: + - id - type - - connection_string + - status + - action properties: + id: + type: string + description: The unique ID of the web search tool call. type: type: string enum: - - connection_string - connection_string: - type: string - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceDeploymentNameVectorizationSource: + - web_search_call + description: The type of the web search tool call. Always `web_search_call`. + x-stainless-const: true + status: + type: string + enum: + - in_progress + - searching + - completed + - failed + description: The status of the web search tool call. + action: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchActionSearch' + - $ref: '#/components/schemas/OpenAI.WebSearchActionOpenPage' + - $ref: '#/components/schemas/OpenAI.WebSearchActionFind' + description: |- + An object describing the specific action taken in this web search call. + Includes details on how the model used the web (search, open_page, find). + allOf: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + OpenAI.ConversationParam: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAI.ConversationParam-2' + description: |- + The conversation that this response belongs to. Items from this conversation are prepended to `input_items` for this response request. + Input items and output items from this response are automatically added to this conversation after this response completes. + OpenAI.ConversationParam-2: + type: object + required: + - id + properties: + id: + type: string + description: The unique ID of the conversation. + description: The conversation that this response belongs to. + title: Conversation object + OpenAI.ConversationResource: + type: object + required: + - id + - object + - metadata + - created_at + properties: + id: + type: string + description: The unique ID of the conversation. + object: + type: string + enum: + - conversation + description: The object type, which is always `conversation`. + x-stainless-const: true + default: conversation + metadata: + description: |- + Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. + Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters. + created_at: + type: integer + format: unixtime + description: The time at which the conversation was created, measured in seconds since the Unix epoch. + OpenAI.CreateChatCompletionRequestAudio: + type: object + required: + - voice + - format + properties: + voice: + $ref: '#/components/schemas/OpenAI.VoiceIdsShared' + format: + type: string + enum: + - wav + - aac + - mp3 + - flac + - opus + - pcm16 + OpenAI.CreateChatCompletionResponseChoices: + type: object + required: + - finish_reason + - index + - message + - logprobs + properties: + finish_reason: + type: string + enum: + - stop + - length + - tool_calls + - content_filter + - function_call + index: + type: integer + message: + $ref: '#/components/schemas/OpenAI.ChatCompletionResponseMessage' + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateChatCompletionResponseChoicesLogprobs' + - type: 'null' + content_filter_results: + $ref: '#/components/schemas/AzureContentFilterResultForChoice' + OpenAI.CreateChatCompletionResponseChoicesLogprobs: + type: object + required: + - content + - refusal + properties: + content: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' + - type: 'null' + refusal: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' + - type: 'null' + OpenAI.CreateChatCompletionStreamResponseChoices: + type: object + required: + - delta + - finish_reason + - index + properties: + delta: + $ref: '#/components/schemas/OpenAI.ChatCompletionStreamResponseDelta' + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateChatCompletionStreamResponseChoicesLogprobs' + - type: 'null' + finish_reason: + anyOf: + - type: string + enum: + - stop + - length + - tool_calls + - content_filter + - function_call + - type: 'null' + index: + type: integer + OpenAI.CreateChatCompletionStreamResponseChoicesLogprobs: + type: object + required: + - content + - refusal + properties: + content: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' + - type: 'null' + refusal: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' + - type: 'null' + OpenAI.CreateCompletionResponseChoices: + type: object + required: + - finish_reason + - index + - logprobs + - text + properties: + finish_reason: + type: string + enum: + - stop + - length + - content_filter + index: + type: integer + format: int32 + logprobs: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateCompletionResponseChoicesLogprobs' + - type: 'null' + text: + type: string + content_filter_results: + $ref: '#/components/schemas/AzureContentFilterResultForChoice' + OpenAI.CreateCompletionResponseChoicesLogprobs: + type: object + properties: + text_offset: + type: array + items: + type: integer + format: int32 + token_logprobs: + type: array + items: + type: number + format: float + tokens: + type: array + items: + type: string + top_logprobs: + type: array + items: + type: object + unevaluatedProperties: + type: number + format: float + OpenAI.CreateContainerBody: + type: object + required: + - name + properties: + name: + type: string + description: Name of the container to create. + file_ids: + type: array + items: + type: string + description: IDs of files to copy to the container. + expires_after: + allOf: + - $ref: '#/components/schemas/OpenAI.CreateContainerBodyExpiresAfter' + description: Container expiration time in seconds relative to the 'anchor' time. + memory_limit: + type: string + enum: + - 1g + - 4g + - 16g + - 64g + description: Optional memory limit for the container. Defaults to "1g". + OpenAI.CreateContainerBodyExpiresAfter: type: object required: - - type - - deployment_name + - anchor + - minutes properties: - type: + anchor: type: string enum: - - deployment_name - description: The type identifier, always 'deployment_name' for this vectorization source type. - deployment_name: - type: string - description: |- - The embedding model deployment to use for vectorization. This deployment must exist within the same Azure OpenAI - resource as the model deployment being used for chat completions. - dimensions: + - last_active_at + minutes: type: integer - format: int32 - description: |- - The number of dimensions to request on embeddings. - Only supported in 'text-embedding-3' and later models. - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - description: |- - Represents a vectorization source that makes internal service calls against an Azure OpenAI embedding model - deployment. In contrast with the endpoint-based vectorization source, a deployment-name-based vectorization source - must be part of the same Azure OpenAI resource but can be used even in private networks. - AzureChatDataSourceEncodedApiKeyAuthenticationOptions: + OpenAI.CreateContainerFileBody: type: object - required: - - type - - encoded_api_key properties: - type: - type: string - enum: - - encoded_api_key - encoded_api_key: + file_id: type: string - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceEndpointVectorizationSource: + description: Name of the file to create. + file: + description: The File object (not file name) to be uploaded. + required: [] + OpenAI.CreateConversationBody: type: object - required: - - type - - endpoint - - authentication properties: - type: - type: string - enum: - - endpoint - description: The type identifier, always 'endpoint' for this vectorization source type. - endpoint: - type: string - format: uri - description: |- - Specifies the resource endpoint URL from which embeddings should be retrieved. - It should be in the format of: - https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. - The api-version query parameter is not allowed. - authentication: + metadata: anyOf: - - $ref: '#/components/schemas/AzureChatDataSourceApiKeyAuthenticationOptions' - - $ref: '#/components/schemas/AzureChatDataSourceAccessTokenAuthenticationOptions' - description: |- - The authentication mechanism to use with the endpoint-based vectorization source. - Endpoint authentication supports API key and access token mechanisms. - dimensions: - type: integer - format: int32 - description: |- - The number of dimensions to request on embeddings. - Only supported in 'text-embedding-3' and later models. - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - description: Represents a vectorization source that makes public service calls against an Azure OpenAI embedding model deployment. - AzureChatDataSourceIntegratedVectorizationSource: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + items: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' + - type: 'null' + OpenAI.CreateConversationItemsParametersBody: type: object required: - - type + - items properties: - type: - type: string - enum: - - integrated - description: The type identifier, always 'integrated' for this vectorization source type. - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - description: Represents an integrated vectorization source as defined within the supporting search resource. - AzureChatDataSourceKeyAndKeyIdAuthenticationOptions: + items: + type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' + maxItems: 20 + OpenAI.CreateEmbeddingRequest: type: object required: - - type - - key - - key_id + - input + - model properties: - type: + input: + anyOf: + - type: string + - type: array + items: + type: string + - type: array + items: + type: integer + - type: array + items: + type: array + items: + type: integer + description: Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and any array must be 2048 dimensions or less. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens. In addition to the per-input token limit, all embedding models enforce a maximum of 300,000 tokens summed across all inputs in a single request. + model: type: string - enum: - - key_and_key_id - key: + description: ID of the model to use. You can use the [List models](https://platform.openai.com/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](https://platform.openai.com/docs/models) for descriptions of them. + x-oaiTypeLabel: string + encoding_format: type: string - key_id: + enum: + - float + - base64 + description: The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/). + default: float + dimensions: + type: integer + minimum: 1 + description: The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models. + user: type: string - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceModelIdVectorizationSource: + description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#end-user-ids). + OpenAI.CreateEmbeddingResponse: type: object required: - - type - - model_id + - data + - model + - object + - usage properties: - type: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.Embedding' + description: The list of embeddings generated by the model. + model: type: string - enum: - - model_id - description: The type identifier, always 'model_id' for this vectorization source type. - model_id: + description: The name of the model used to generate the embedding. + object: type: string - description: The embedding model build ID to use for vectorization. - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - description: |- - Represents a vectorization source that makes service calls based on a search service model ID. - This source type is currently only supported by Elasticsearch. - AzureChatDataSourceSystemAssignedManagedIdentityAuthenticationOptions: + enum: + - list + description: The object type, which is always "list". + x-stainless-const: true + usage: + allOf: + - $ref: '#/components/schemas/OpenAI.CreateEmbeddingResponseUsage' + description: The usage information for the request. + OpenAI.CreateEmbeddingResponseUsage: type: object required: - - type + - prompt_tokens + - total_tokens properties: - type: - type: string - enum: - - system_assigned_managed_identity - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceType: - type: string - enum: - - azure_search - - azure_cosmos_db - - elasticsearch - - pinecone - - mongo_db - AzureChatDataSourceUserAssignedManagedIdentityAuthenticationOptions: + prompt_tokens: + type: integer + total_tokens: + type: integer + OpenAI.CreateEvalCompletionsRunDataSource: type: object required: - type - - managed_identity_resource_id + - source properties: type: type: string enum: - - user_assigned_managed_identity - managed_identity_resource_id: + - completions + description: The type of run data source. Always `completions`. + default: completions + input_messages: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesTemplate' + - $ref: '#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesItemReference' + description: Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace. + sampling_params: + $ref: '#/components/schemas/AzureCompletionsSamplingParams' + model: type: string - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceUsernameAndPasswordAuthenticationOptions: + description: The name of the model to use for generating completions (e.g. "o3-mini"). + source: + anyOf: + - $ref: '#/components/schemas/OpenAI.EvalJsonlFileContentSource' + - $ref: '#/components/schemas/OpenAI.EvalJsonlFileIdSource' + - $ref: '#/components/schemas/OpenAI.EvalStoredCompletionsSource' + description: Determines what populates the `item` namespace in this run's data source. + description: A CompletionsRunDataSource object describing a model sampling configuration. + title: CompletionsRunDataSource + x-oaiMeta: + name: The completions data source object used to configure an individual run + group: eval runs + example: | + { + "name": "gpt-4o-mini-2024-07-18", + "data_source": { + "type": "completions", + "input_messages": { + "type": "item_reference", + "item_reference": "item.input" + }, + "model": "gpt-4o-mini-2024-07-18", + "source": { + "type": "stored_completions", + "model": "gpt-4o-mini-2024-07-18" + } + } + } + OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesItemReference: type: object required: - type - - username - - password + - item_reference properties: type: type: string enum: - - username_and_password - username: - type: string - password: + - item_reference + item_reference: type: string - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceAuthenticationOptions' - AzureChatDataSourceVectorizationSource: + OpenAI.CreateEvalCompletionsRunDataSourceInputMessagesTemplate: type: object required: - type + - template properties: type: - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSourceType' - description: The differentiating identifier for the concrete vectorization source. - discriminator: - propertyName: type - mapping: - deployment_name: '#/components/schemas/AzureChatDataSourceDeploymentNameVectorizationSource' - integrated: '#/components/schemas/AzureChatDataSourceIntegratedVectorizationSource' - model_id: '#/components/schemas/AzureChatDataSourceModelIdVectorizationSource' - description: A representation of a data vectorization source usable as an embedding resource with a data source. - AzureChatDataSourceVectorizationSourceType: - type: string - enum: - - endpoint - - deployment_name - - model_id - - integrated - AzureChatMessageContext: - type: object - properties: - intent: type: string - description: The detected intent from the chat history, which is used to carry conversation context between interactions - citations: - type: array - items: - type: object - properties: - content: - type: string - description: The content of the citation. - title: - type: string - description: The title for the citation. - url: - type: string - description: The URL of the citation. - filepath: - type: string - description: The file path for the citation. - chunk_id: - type: string - description: The chunk ID for the citation. - rerank_score: - type: number - format: double - description: The rerank score for the retrieval. - required: - - content - description: The citations produced by the data retrieval. - all_retrieved_documents: - type: object - properties: - content: - type: string - description: The content of the citation. - title: - type: string - description: The title for the citation. - url: - type: string - description: The URL of the citation. - filepath: - type: string - description: The file path for the citation. - chunk_id: - type: string - description: The chunk ID for the citation. - rerank_score: - type: number - format: double - description: The rerank score for the retrieval. - search_queries: - type: array - items: - type: string - description: The search queries executed to retrieve documents. - data_source_index: - type: integer - format: int32 - description: The index of the data source used for retrieval. - original_search_score: - type: number - format: double - description: The original search score for the retrieval. - filter_reason: - type: string - enum: - - score - - rerank - description: If applicable, an indication of why the document was filtered. - required: - - content - - search_queries - - data_source_index - description: Summary information about documents retrieved by the data retrieval operation. - description: |- - An additional property, added to chat completion response messages, produced by the Azure OpenAI service when using - extension behavior. This includes intent and citation information from the On Your Data feature. - AzureContentFilterBlocklistResult: - type: object - required: - - filtered - properties: - filtered: - type: boolean - description: A value indicating whether any of the detailed blocklists resulted in a filtering action. - details: - type: array - items: - type: object - properties: - filtered: - type: boolean - description: A value indicating whether the blocklist produced a filtering action. - id: - type: string - description: The ID of the custom blocklist evaluated. - required: - - filtered - - id - description: The pairs of individual blocklist IDs and whether they resulted in a filtering action. - description: A collection of true/false filtering results for configured custom blocklists. - AzureContentFilterCompletionTextSpan: - type: object - required: - - completion_start_offset - - completion_end_offset - properties: - completion_start_offset: - type: integer - format: int32 - description: Offset of the UTF32 code point which begins the span. - completion_end_offset: - type: integer - format: int32 - description: Offset of the first UTF32 code point which is excluded from the span. This field is always equal to completion_start_offset for empty spans. This field is always larger than completion_start_offset for non-empty spans. - description: A representation of a span of completion text as used by Azure OpenAI content filter results. - AzureContentFilterCompletionTextSpanDetectionResult: - type: object - required: - - filtered - - detected - - details - properties: - filtered: - type: boolean - description: Whether the content detection resulted in a content filtering action. - detected: - type: boolean - description: Whether the labeled content category was detected in the content. - details: + enum: + - template + template: type: array items: - $ref: '#/components/schemas/AzureContentFilterCompletionTextSpan' - description: Detailed information about the detected completion text spans. - AzureContentFilterCustomTopicResult: + anyOf: + - $ref: '#/components/schemas/OpenAI.EasyInputMessage' + - $ref: '#/components/schemas/OpenAI.EvalItem' + OpenAI.CreateEvalCompletionsRunDataSourceSamplingParams: type: object - required: - - filtered properties: - filtered: - type: boolean - description: A value indicating whether any of the detailed topics resulted in a filtering action. - details: + reasoning_effort: + allOf: + - $ref: '#/components/schemas/OpenAI.ReasoningEffort' + description: Controls the level of reasoning effort applied during generation. + temperature: + type: number + description: A higher temperature increases randomness in the outputs. + default: 1 + max_completion_tokens: + type: integer + top_p: + type: number + description: An alternative to temperature for nucleus sampling; 1.0 includes all tokens. + default: 1 + seed: + type: integer + description: A seed value initializes the randomness during sampling. + default: 42 + response_format: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseFormatText' + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchema' + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonObject' + tools: type: array items: - type: object - properties: - detected: - type: boolean - description: A value indicating whether the topic is detected. - id: - type: string - description: The ID of the custom topic evaluated. - required: - - detected - - id - description: The pairs of individual topic IDs and whether they are detected. - description: A collection of true/false filtering results for configured custom topics. - AzureContentFilterDetectionResult: + $ref: '#/components/schemas/OpenAI.ChatCompletionTool' + OpenAI.CreateEvalCustomDataSourceConfig: type: object required: - - filtered - - detected + - type + - item_schema properties: - filtered: - type: boolean - description: Whether the content detection resulted in a content filtering action. - detected: + type: + type: string + enum: + - custom + description: The type of data source. Always `custom`. + x-stainless-const: true + default: custom + item_schema: + type: object + unevaluatedProperties: {} + description: The json schema for each row in the data source. + include_sample_schema: type: boolean - description: Whether the labeled content category was detected in the content. + description: Whether the eval should expect you to populate the sample namespace (ie, by generating responses off of your data source) description: |- - A labeled content filter result item that indicates whether the content was detected and whether the content was - filtered. - AzureContentFilterPersonallyIdentifiableInformationResult: + A CustomDataSourceConfig object that defines the schema for the data source used for the evaluation runs. + This schema is used to define the shape of the data that will be: + - Used to define your testing criteria and + - What data is required when creating a run + title: CustomDataSourceConfig + x-oaiMeta: + name: The eval file data source config object + group: evals + example: | + { + "type": "custom", + "item_schema": { + "type": "object", + "properties": { + "name": {"type": "string"}, + "age": {"type": "integer"} + }, + "required": ["name", "age"] + }, + "include_sample_schema": true + } + OpenAI.CreateEvalItem: type: object + required: + - role + - content properties: - redacted_text: + role: type: string - description: The redacted text with PII information removed or masked. - sub_categories: - type: array - items: - $ref: '#/components/schemas/AzurePiiSubCategoryResult' - description: Detailed results for individual PIIHarmSubCategory(s). - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: A content filter detection result for Personally Identifiable Information that includes harm extensions. - AzureContentFilterResultForChoice: - type: object - properties: - sexual: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category for language related to anatomical organs and genitals, romantic relationships, acts - portrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an - assault or a forced sexual violent act against one's will, prostitution, pornography, and abuse. - hate: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category that can refer to any content that attacks or uses pejorative or discriminatory - language with reference to a person or identity group based on certain differentiating attributes of these groups - including but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation, - religion, immigration status, ability status, personal appearance, and body size. - violence: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category for language related to physical actions intended to hurt, injure, damage, or kill - someone or something; describes weapons, guns and related entities, such as manufactures, associations, - legislation, and so on. - self_harm: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category that describes language related to physical actions intended to purposely hurt, injure, - damage one's body or kill oneself. - profanity: - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: |- - A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the - content. - custom_blocklists: - allOf: - - $ref: '#/components/schemas/AzureContentFilterBlocklistResult' - description: A collection of binary filtering outcomes for configured custom blocklists. - custom_topics: - allOf: - - $ref: '#/components/schemas/AzureContentFilterCustomTopicResult' - description: A collection of binary filtering outcomes for configured custom topics. - error: - type: object - properties: - code: - type: integer - format: int32 - description: A distinct, machine-readable code associated with the error. - message: - type: string - description: A human-readable message associated with the error. - required: - - code - - message - description: If present, details about an error that prevented content filtering from completing its evaluation. - protected_material_text: - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: A detection result that describes a match against text protected under copyright or other status. - protected_material_code: - type: object - properties: - filtered: - type: boolean - description: Whether the content detection resulted in a content filtering action. - detected: - type: boolean - description: Whether the labeled content category was detected in the content. - citation: - type: object - properties: - license: - type: string - description: The name or identifier of the license associated with the detection. - URL: - type: string - format: uri - description: The URL associated with the license. - description: If available, the citation details describing the associated license and its location. - required: - - filtered - - detected - description: A detection result that describes a match against licensed code or other protected source material. - ungrounded_material: - $ref: '#/components/schemas/AzureContentFilterCompletionTextSpanDetectionResult' - personally_identifiable_information: - allOf: - - $ref: '#/components/schemas/AzureContentFilterPersonallyIdentifiableInformationResult' - description: A detection result that describes matches against Personal Identifiable Information with configurable subcategories. - description: A content filter result for a single response item produced by a generative AI system. - AzureContentFilterResultForPrompt: + description: The role of the message (e.g. "system", "assistant", "user"). + content: + type: string + description: The content of the message. + description: A chat message that makes up the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}. + title: SimpleInputMessage + x-oaiMeta: + name: The chat message object used to configure an individual run + OpenAI.CreateEvalJsonlRunDataSource: type: object + required: + - type + - source properties: - prompt_index: - type: integer - format: int32 - description: The index of the input prompt associated with the accompanying content filter result categories. - content_filter_results: - type: object - properties: - sexual: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category for language related to anatomical organs and genitals, romantic relationships, acts - portrayed in erotic or affectionate terms, pregnancy, physical sexual acts, including those portrayed as an - assault or a forced sexual violent act against one's will, prostitution, pornography, and abuse. - hate: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category that can refer to any content that attacks or uses pejorative or discriminatory - language with reference to a person or identity group based on certain differentiating attributes of these groups - including but not limited to race, ethnicity, nationality, gender identity and expression, sexual orientation, - religion, immigration status, ability status, personal appearance, and body size. - violence: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category for language related to physical actions intended to hurt, injure, damage, or kill - someone or something; describes weapons, guns and related entities, such as manufactures, associations, - legislation, and so on. - self_harm: - allOf: - - $ref: '#/components/schemas/AzureContentFilterSeverityResult' - description: |- - A content filter category that describes language related to physical actions intended to purposely hurt, injure, - damage one's body or kill oneself. - profanity: - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: |- - A detection result that identifies whether crude, vulgar, or otherwise objection language is present in the - content. - custom_blocklists: - allOf: - - $ref: '#/components/schemas/AzureContentFilterBlocklistResult' - description: A collection of binary filtering outcomes for configured custom blocklists. - custom_topics: - allOf: - - $ref: '#/components/schemas/AzureContentFilterCustomTopicResult' - description: A collection of binary filtering outcomes for configured custom topics. - error: - type: object - properties: - code: - type: integer - format: int32 - description: A distinct, machine-readable code associated with the error. - message: - type: string - description: A human-readable message associated with the error. - required: - - code - - message - description: If present, details about an error that prevented content filtering from completing its evaluation. - jailbreak: - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: |- - A detection result that describes user prompt injection attacks, where malicious users deliberately exploit - system vulnerabilities to elicit unauthorized behavior from the LLM. This could lead to inappropriate content - generation or violations of system-imposed restrictions. - indirect_attack: - allOf: - - $ref: '#/components/schemas/AzureContentFilterDetectionResult' - description: |- - A detection result that describes attacks on systems powered by Generative AI models that can happen every time - an application processes information that wasn’t directly authored by either the developer of the application or - the user. - required: - - jailbreak - - indirect_attack - description: The content filter category details for the result. - description: A content filter result associated with a single input prompt item into a generative AI system. - AzureContentFilterSeverityResult: + type: + type: string + enum: + - jsonl + description: The type of data source. Always `jsonl`. + x-stainless-const: true + default: jsonl + source: + anyOf: + - $ref: '#/components/schemas/OpenAI.EvalJsonlFileContentSource' + - $ref: '#/components/schemas/OpenAI.EvalJsonlFileIdSource' + description: Determines what populates the `item` namespace in the data source. + description: A JsonlRunDataSource object with that specifies a JSONL file that matches the eval + title: JsonlRunDataSource + x-oaiMeta: + name: The file data source object for the eval run configuration + group: evals + example: | + { + "type": "jsonl", + "source": { + "type": "file_id", + "id": "file-9GYS6xbkWgWhmE7VoLUWFg" + } + } + OpenAI.CreateEvalLabelModelGrader: type: object required: - - filtered - - severity + - type + - name + - model + - input + - labels + - passing_labels properties: - filtered: - type: boolean - description: Whether the content severity resulted in a content filtering action. - severity: + type: type: string enum: - - safe - - low - - medium - - high - description: The labeled severity of the content. + - label_model + description: The object type, which is always `label_model`. + x-stainless-const: true + name: + type: string + description: The name of the grader. + model: + type: string + description: The model to use for the evaluation. Must support structured outputs. + input: + type: array + items: + $ref: '#/components/schemas/OpenAI.CreateEvalItem' + description: A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}. + labels: + type: array + items: + type: string + description: The labels to classify to each item in the evaluation. + passing_labels: + type: array + items: + type: string + description: The labels that indicate a passing result. Must be a subset of labels. description: |- - A labeled content filter result item that indicates whether the content was filtered and what the qualitative - severity level of the content was, as evaluated against content filter configuration for the category. - AzureCosmosDBChatDataSource: + A LabelModelGrader object which uses a model to assign labels to each item + in the evaluation. + title: LabelModelGrader + x-oaiMeta: + name: The eval label model grader object + group: evals + example: | + { + "type": "label_model", + "model": "gpt-4o-2024-08-06", + "input": [ + { + "role": "system", + "content": "Classify the sentiment of the following statement as one of 'positive', 'neutral', or 'negative'" + }, + { + "role": "user", + "content": "Statement: {{item.response}}" + } + ], + "passing_labels": ["positive"], + "labels": ["positive", "neutral", "negative"], + "name": "Sentiment label grader" + } + OpenAI.CreateEvalLogsDataSourceConfig: type: object required: - type - - parameters properties: type: type: string enum: - - azure_cosmos_db - description: The discriminated type identifier, which is always 'azure_cosmos_db'. - parameters: + - logs + description: The type of data source. Always `logs`. + x-stainless-const: true + default: logs + metadata: type: object - properties: - top_n_documents: - type: integer - format: int32 - description: The configured number of documents to feature in the query. - in_scope: - type: boolean - description: Whether queries should be restricted to use of the indexed data. - strictness: - type: integer - format: int32 - minimum: 1 - maximum: 5 - description: |- - The configured strictness of the search relevance filtering. - Higher strictness will increase precision but lower recall of the answer. - max_search_queries: - type: integer - format: int32 - description: |- - The maximum number of rewritten queries that should be sent to the search provider for a single user message. - By default, the system will make an automatic determination. - allow_partial_result: - type: boolean - description: |- - If set to true, the system will allow partial search results to be used and the request will fail if all - partial queries fail. If not specified or specified as false, the request will fail if any search query fails. - default: false - include_contexts: - type: array - items: - type: string - enum: - - citations - - intent - - all_retrieved_documents - maxItems: 3 - description: |- - The output context properties to include on the response. - By default, citations and intent will be requested. - default: - - citations - - intent - container_name: - type: string - database_name: - type: string - embedding_dependency: - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - index_name: - type: string - authentication: - $ref: '#/components/schemas/AzureChatDataSourceConnectionStringAuthenticationOptions' - fields_mapping: - type: object - properties: - content_fields: - type: array - items: + unevaluatedProperties: {} + description: Metadata filters for the logs data source. + description: |- + A data source config which specifies the metadata property of your logs query. + This is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc. + title: LogsDataSourceConfig + x-oaiMeta: + name: The logs data source object for evals + group: evals + example: | + { + "type": "logs", + "metadata": { + "use_case": "customer_support_agent" + } + } + OpenAI.CreateEvalResponsesRunDataSource: + type: object + required: + - type + - source + properties: + type: + type: string + enum: + - responses + description: The type of run data source. Always `responses`. + default: responses + input_messages: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceInputMessagesTemplate' + - $ref: '#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceInputMessagesItemReference' + description: Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace. + sampling_params: + $ref: '#/components/schemas/AzureResponsesSamplingParams' + model: + type: string + description: The name of the model to use for generating completions (e.g. "o3-mini"). + source: + anyOf: + - $ref: '#/components/schemas/OpenAI.EvalJsonlFileContentSource' + - $ref: '#/components/schemas/OpenAI.EvalJsonlFileIdSource' + - $ref: '#/components/schemas/OpenAI.EvalResponsesSource' + description: Determines what populates the `item` namespace in this run's data source. + description: A ResponsesRunDataSource object describing a model sampling configuration. + title: CreateEvalResponsesRunDataSource + x-oaiMeta: + name: The completions data source object used to configure an individual run + group: eval runs + example: | + { + "name": "gpt-4o-mini-2024-07-18", + "data_source": { + "type": "responses", + "input_messages": { + "type": "item_reference", + "item_reference": "item.input" + }, + "model": "gpt-4o-mini-2024-07-18", + "source": { + "type": "responses", + "model": "gpt-4o-mini-2024-07-18" + } + } + } + OpenAI.CreateEvalResponsesRunDataSourceInputMessagesItemReference: + type: object + required: + - type + - item_reference + properties: + type: + type: string + enum: + - item_reference + item_reference: + type: string + OpenAI.CreateEvalResponsesRunDataSourceInputMessagesTemplate: + type: object + required: + - type + - template + properties: + type: + type: string + enum: + - template + template: + type: array + items: + anyOf: + - type: object + properties: + role: type: string - vector_fields: - type: array - items: + content: type: string - title_field: - type: string - url_field: - type: string - filepath_field: - type: string - content_fields_separator: - type: string - required: - - content_fields - - vector_fields - required: - - container_name - - database_name - - embedding_dependency - - index_name - - authentication - - fields_mapping - description: The parameter information to control the use of the Azure CosmosDB data source. - allOf: - - $ref: '#/components/schemas/AzureChatDataSource' - description: Represents a data source configuration that will use an Azure CosmosDB resource. - AzureCreateChatCompletionRequest: + required: + - role + - content + - $ref: '#/components/schemas/OpenAI.EvalItem' + OpenAI.CreateEvalResponsesRunDataSourceSamplingParams: type: object - required: - - messages - - model properties: - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map + reasoning_effort: + allOf: + - $ref: '#/components/schemas/OpenAI.ReasoningEffort' + description: Controls the level of reasoning effort applied during generation. temperature: type: number - format: float - nullable: true - minimum: 0 - maximum: 2 - description: |- - What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. - We generally recommend altering this or `top_p` but not both. + description: A higher temperature increases randomness in the outputs. default: 1 top_p: type: number - format: float - nullable: true - minimum: 0 - maximum: 1 - description: |- - An alternative to sampling with temperature, called nucleus sampling, - where the model considers the results of the tokens with top_p probability - mass. So 0.1 means only the tokens comprising the top 10% probability mass - are considered. - - We generally recommend altering this or `temperature` but not both. + description: An alternative to temperature for nucleus sampling; 1.0 includes all tokens. default: 1 - user: - type: string - description: |- - A unique identifier representing your end-user, which can help to - monitor and detect abuse. - top_logprobs: + seed: type: integer - format: int32 - minimum: 0 - maximum: 20 - description: An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. - messages: + description: A seed value initializes the randomness during sampling. + default: 42 + tools: type: array items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' - minItems: 1 - description: |- - A list of messages comprising the conversation so far. Depending on the - model you use, different message types (modalities) are supported, - like text, images, and audio. - modalities: + $ref: '#/components/schemas/OpenAI.Tool' + text: + $ref: '#/components/schemas/OpenAI.CreateEvalResponsesRunDataSourceSamplingParamsText' + OpenAI.CreateEvalResponsesRunDataSourceSamplingParamsText: + type: object + properties: + format: + $ref: '#/components/schemas/OpenAI.TextResponseFormatConfiguration' + OpenAI.CreateEvalRunRequest: + type: object + required: + - data_source + properties: + name: + type: string + description: The name of the run. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + data_source: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalJsonlRunDataSource' + - $ref: '#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSource' + - $ref: '#/components/schemas/OpenAI.CreateEvalResponsesRunDataSource' + description: Details about the run's data source. + title: CreateEvalRunRequest + OpenAI.CreateEvalStoredCompletionsDataSourceConfig: + type: object + required: + - type + properties: + type: + type: string + enum: + - stored_completions + description: The type of data source. Always `stored_completions`. + x-stainless-const: true + default: stored_completions + metadata: type: object - allOf: - - $ref: '#/components/schemas/ResponseModalities' - nullable: true - reasoning_effort: - allOf: - - $ref: '#/components/schemas/OpenAI.ReasoningEffort' - nullable: true - default: medium - max_completion_tokens: - type: integer - format: int32 - nullable: true - description: |- - An upper bound for the number of tokens that can be generated for a - completion, including visible output tokens and reasoning tokens. - frequency_penalty: - type: number - format: float - nullable: true - minimum: -2 - maximum: 2 - description: |- - Number between -2.0 and 2.0. Positive values penalize new tokens based on - their existing frequency in the text so far, decreasing the model's - likelihood to repeat the same line verbatim. - default: 0 - presence_penalty: - type: number - format: float - nullable: true - minimum: -2 - maximum: 2 + unevaluatedProperties: {} + description: Metadata filters for the stored completions data source. + description: Deprecated in favor of LogsDataSourceConfig. + title: StoredCompletionsDataSourceConfig + x-oaiMeta: + name: The stored completions data source object for evals + group: evals + example: | + { + "type": "stored_completions", + "metadata": { + "use_case": "customer_support_agent" + } + } + OpenAI.CreateFileRequest: + type: object + properties: + file: + description: The File object (not file name) to be uploaded. + x-oaiMeta: + exampleFilePath: fine-tune.jsonl + expires_after: + type: object + properties: + seconds: + type: integer + format: int32 + anchor: + $ref: '#/components/schemas/AzureFileExpiryAnchor' + required: + - seconds + - anchor + purpose: + type: string + enum: + - assistants + - batch + - fine-tune + - evals + description: 'The intended purpose of the uploaded file. One of: - `assistants`: Used in the Assistants API - `batch`: Used in the Batch API - `fine-tune`: Used for fine-tuning - `evals`: Used for eval data sets' + required: + - file + - expires_after + - purpose + OpenAI.CreateFineTuningCheckpointPermissionRequest: + type: object + required: + - project_ids + properties: + project_ids: + type: array + items: + type: string + description: The project identifiers to grant access to. + OpenAI.CreateFineTuningJobRequest: + type: object + required: + - model + - training_file + properties: + model: + anyOf: + - type: string + - type: string + enum: + - babbage-002 + - davinci-002 + - gpt-3.5-turbo + - gpt-4o-mini description: |- - Number between -2.0 and 2.0. Positive values penalize new tokens based on - whether they appear in the text so far, increasing the model's likelihood - to talk about new topics. - default: 0 - response_format: - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseFormat' + The name of the model to fine-tune. You can select one of the + [supported models](https://platform.openai.com/docs/guides/fine-tuning#which-models-can-be-fine-tuned). + x-oaiTypeLabel: string + training_file: + type: string description: |- - An object specifying the format that the model must output. - - Setting to `{ "type": "json_schema", "json_schema": {...} }` enables - Structured Outputs which ensures the model will match your supplied JSON - schema. + The ID of an uploaded file that contains training data. - Setting to `{ "type": "json_object" }` enables JSON mode, which ensures - the message the model generates is valid JSON. + See [upload file](https://platform.openai.com/docs/api-reference/files/create) for how to upload a file. - **Important:** when using JSON mode, you **must** also instruct the model - to produce JSON yourself via a system or user message. Without this, the - model may generate an unending stream of whitespace until the generation - reaches the token limit, resulting in a long-running and seemingly "stuck" - request. Also note that the message content may be partially cut off if - `finish_reason="length"`, which indicates the generation exceeded - `max_tokens` or the conversation exceeded the max context length. - audio: - type: object - properties: - voice: - allOf: - - $ref: '#/components/schemas/OpenAI.VoiceIdsShared' - description: |- - The voice the model uses to respond. Supported voices are - `alloy`, `ash`, `ballad`, `coral`, `echo`, `fable`, `nova`, `onyx`, `sage`, and `shimmer`. - format: - type: string - enum: - - wav - - aac - - mp3 - - flac - - opus - - pcm16 - description: |- - Specifies the output audio format. Must be one of `wav`, `mp3`, `flac`, - `opus`, or `pcm16`. - required: - - voice - - format - nullable: true - description: |- - Parameters for audio output. Required when audio output is requested with - `modalities: ["audio"]`. - store: - type: boolean - nullable: true - description: |- - Whether or not to store the output of this chat completion request for - use in model distillation or evals products. - default: false - stream: - type: boolean - nullable: true - description: |- - If set to true, the model response data will be streamed to the client - as it is generated using server-sent events. - default: false - stop: - allOf: - - $ref: '#/components/schemas/OpenAI.StopConfiguration' - nullable: true - default: null - logit_bias: - type: object - additionalProperties: - type: integer - format: int32 - nullable: true - description: |- - Modify the likelihood of specified tokens appearing in the completion. + Your dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose `fine-tune`. - Accepts a JSON object that maps tokens (specified by their token ID in the - tokenizer) to an associated bias value from -100 to 100. Mathematically, - the bias is added to the logits generated by the model prior to sampling. - The exact effect will vary per model, but values between -1 and 1 should - decrease or increase likelihood of selection; values like -100 or 100 - should result in a ban or exclusive selection of the relevant token. - x-oaiTypeLabel: map - default: null - logprobs: - type: boolean - nullable: true - description: |- - Whether to return log probabilities of the output tokens or not. If true, - returns the log probabilities of each output token returned in the - `content` of `message`. - default: false - max_tokens: - type: integer - format: int32 - nullable: true - description: |- - The maximum number of tokens that can be generated in the chat completion. - This value can be used to control costs for text generated via API. + The contents of the file should differ depending on if the model uses the [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input), [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input) format, or if the fine-tuning method uses the [preference](https://platform.openai.com/docs/api-reference/fine-tuning/preference-input) format. - This value is now deprecated in favor of `max_completion_tokens`, and is - not compatible with o1 series models. - deprecated: true - 'n': - type: integer - format: int32 - nullable: true - minimum: 1 - maximum: 128 - description: How many chat completion choices to generate for each input message. Note that you will be charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to minimize costs. - default: 1 - prediction: - type: object + See the [fine-tuning guide](https://platform.openai.com/docs/guides/model-optimization) for more details. + hyperparameters: allOf: - - $ref: '#/components/schemas/OpenAI.ChatOutputPrediction' - nullable: true - description: |- - Configuration for a predicted output, which can greatly improve - response times when large parts of the model response are known - ahead of time. This is most common when you are regenerating a - file with only minor changes to most of the content. - seed: - type: integer - format: int64 - nullable: true - minimum: -9223372036854776000 - maximum: 9223372036854776000 + - $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequestHyperparameters' description: |- - This feature is in Beta. - If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result. - Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend. - stream_options: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionStreamOptions' - nullable: true - default: null - tools: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionTool' - description: A list of tools the model may call. Currently, only functions are supported as a tool. Use this to provide a list of functions the model may generate JSON inputs for. A max of 128 functions are supported. - tool_choice: - $ref: '#/components/schemas/OpenAI.ChatCompletionToolChoiceOption' - parallel_tool_calls: - allOf: - - $ref: '#/components/schemas/OpenAI.ParallelToolCalls' - default: true - function_call: + The hyperparameters used for the fine-tuning job. + This value is now deprecated in favor of `method`, and should be passed in under the `method` parameter. + suffix: anyOf: - type: string - enum: - - none - - auto - - $ref: '#/components/schemas/OpenAI.ChatCompletionFunctionCallOption' + - type: 'null' + minLength: 1 + maxLength: 64 description: |- - Deprecated in favor of `tool_choice`. - - Controls which (if any) function is called by the model. + A string of up to 64 characters that will be added to your fine-tuned model name. - `none` means the model will not call a function and instead generates a - message. + For example, a `suffix` of "custom-model-name" would produce a model name like `ft:gpt-4o-mini:openai:custom-model-name:7p4lURel`. + validation_file: + anyOf: + - type: string + - type: 'null' + description: |- + The ID of an uploaded file that contains validation data. - `auto` means the model can pick between generating a message or calling a - function. + If you provide this file, the data is used to generate validation + metrics periodically during fine-tuning. These metrics can be viewed in + the fine-tuning results file. + The same data should not be present in both train and validation files. - Specifying a particular function via `{"name": "my_function"}` forces the - model to call that function. + Your dataset must be formatted as a JSONL file. You must upload your file with the purpose `fine-tune`. - `none` is the default when no functions are present. `auto` is the default - if functions are present. - deprecated: true - functions: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionFunctions' - minItems: 1 - maxItems: 128 + See the [fine-tuning guide](https://platform.openai.com/docs/guides/model-optimization) for more details. + integrations: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegrations' + - type: 'null' + description: A list of integrations to enable for your fine-tuning job. + seed: + anyOf: + - type: integer + - type: 'null' + minimum: 0 + maximum: 2147483647 description: |- - Deprecated in favor of `tools`. - - A list of functions the model may generate JSON inputs for. - deprecated: true - model: - type: string - description: The model deployment identifier to use for the chat completion request. - data_sources: - type: array - items: - $ref: '#/components/schemas/AzureChatDataSource' - description: The data sources to use for the On Your Data feature, exclusive to Azure OpenAI. - user_security_context: - $ref: '#/components/schemas/AzureUserSecurityContext' - description: |- - The extended request model for chat completions against the Azure OpenAI service. - This adds the ability to provide data sources for the On Your Data feature. - AzureCreateChatCompletionResponse: + The seed controls the reproducibility of the job. Passing in the same seed and job parameters should produce the same results, but may differ in rare cases. + If a seed is not specified, one will be generated for you. + method: + $ref: '#/components/schemas/OpenAI.FineTuneMethod' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.CreateFineTuningJobRequestHyperparameters: + type: object + properties: + batch_size: + anyOf: + - type: string + enum: + - auto + - type: integer + default: auto + learning_rate_multiplier: + anyOf: + - type: string + enum: + - auto + - type: number + n_epochs: + anyOf: + - type: string + enum: + - auto + - type: integer + default: auto + OpenAI.CreateFineTuningJobRequestIntegrations: type: object required: - - id - - created - - model - - object - - choices + - type + - wandb properties: - id: - type: string - description: A unique identifier for the chat completion. - created: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) of when the chat completion was created. - model: - type: string - description: The model used for the chat completion. - system_fingerprint: - type: string - description: |- - This fingerprint represents the backend configuration that the model runs with. - - Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism. - object: + type: type: string enum: - - chat.completion - description: The object type, which is always `chat.completion`. - usage: - $ref: '#/components/schemas/OpenAI.CompletionUsage' - choices: - type: array - items: - type: object - properties: - finish_reason: - type: string - enum: - - stop - - length - - tool_calls - - content_filter - - function_call - description: |- - The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence, - `length` if the maximum number of tokens specified in the request was reached, - `content_filter` if content was omitted due to a flag from our content filters, - `tool_calls` if the model called a tool, or `function_call` (deprecated) if the model called a function. - index: - type: integer - format: int32 - description: The index of the choice in the list of choices. - logprobs: - type: object - properties: - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' - nullable: true - description: A list of message content tokens with log probability information. - readOnly: true - refusal: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' - nullable: true - description: A list of message refusal tokens with log probability information. - readOnly: true - required: - - content - - refusal - nullable: true - description: Log probability information for the choice. - content_filter_results: - $ref: '#/components/schemas/AzureContentFilterResultForChoice' - message: - allOf: - - $ref: '#/components/schemas/AzureChatCompletionResponseMessage' - description: The chat completion response message. - required: - - finish_reason - - index - - logprobs - - message - prompt_filter_results: - type: array - items: - type: object - properties: - prompt_index: - type: integer - format: int32 - description: The index of the input prompt that this content filter result corresponds to. - content_filter_results: - allOf: - - $ref: '#/components/schemas/AzureContentFilterResultForPrompt' - description: The content filter results associated with the indexed input prompt. - required: - - prompt_index - - content_filter_results - description: The Responsible AI content filter annotations associated with prompt inputs into chat completions. - description: |- - The extended top-level chat completion response model for the Azure OpenAI service. - This model adds Responsible AI content filter annotations for prompt input. - AzureCreateChatCompletionStreamResponse: + - wandb + x-stainless-const: true + wandb: + $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegrationsWandb' + OpenAI.CreateFineTuningJobRequestIntegrationsWandb: type: object required: - - id - - choices - - created - - model - - object + - project properties: - id: + project: type: string - description: A unique identifier for the chat completion. Each chunk has the same ID. - choices: + name: + anyOf: + - type: string + - type: 'null' + entity: + anyOf: + - type: string + - type: 'null' + tags: type: array items: - type: object - properties: - delta: - $ref: '#/components/schemas/OpenAI.ChatCompletionStreamResponseDelta' - logprobs: - type: object - properties: - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' - nullable: true - description: A list of message content tokens with log probability information. - readOnly: true - refusal: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionTokenLogprob' - nullable: true - description: A list of message refusal tokens with log probability information. - readOnly: true - required: - - content - - refusal - nullable: true - description: Log probability information for the choice. - finish_reason: - type: string - enum: - - stop - - length - - tool_calls - - content_filter - - function_call - nullable: true - description: |- - The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence, - `length` if the maximum number of tokens specified in the request was reached, - `content_filter` if content was omitted due to a flag from our content filters, - `tool_calls` if the model called a tool, or `function_call` (deprecated) if the model called a function. - index: - type: integer - format: int32 - description: The index of the choice in the list of choices. - required: - - delta - - finish_reason - - index - description: |- - A list of chat completion choices. Can contain more than one elements if `n` is greater than 1. Can also be empty for the - last chunk if you set `stream_options: {"include_usage": true}`. - created: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) of when the chat completion was created. Each chunk has the same timestamp. - model: - type: string - description: The model to generate the completion. - system_fingerprint: - type: string - description: |- - This fingerprint represents the backend configuration that the model runs with. - Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that might impact determinism. - object: - type: string - enum: - - chat.completion.chunk - description: The object type, which is always `chat.completion.chunk`. - usage: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.CompletionUsage' - nullable: true - description: |- - An optional field that will only be present when you set - `stream_options: {"include_usage": true}` in your request. When present, it - contains a null value **except for the last chunk** which contains the - token usage statistics for the entire request. - - **NOTE:** If the stream is interrupted or cancelled, you may not - receive the final usage chunk which contains the total token usage for - the request. - delta: - $ref: '#/components/schemas/AzureChatCompletionStreamResponseDelta' - content_filter_results: - $ref: '#/components/schemas/AzureContentFilterResultForChoice' - AzureCreateEmbeddingRequest: + type: string + OpenAI.CreateMessageRequest: type: object required: - - model - - input + - role + - content properties: - model: + role: type: string - description: The model to use for the embedding request. - input: + enum: + - user + - assistant + description: |- + The role of the entity that is creating the message. Allowed values include: + - `user`: Indicates the message is sent by an actual user and should be used in most cases to represent user-generated messages. + - `assistant`: Indicates the message is generated by the assistant. Use this value to insert messages from the assistant into the conversation. + content: anyOf: - type: string - type: array items: - type: string - - type: array - items: - type: integer - format: int32 + anyOf: + - $ref: '#/components/schemas/OpenAI.MessageContentImageFileObject' + - $ref: '#/components/schemas/OpenAI.MessageContentImageUrlObject' + - $ref: '#/components/schemas/OpenAI.MessageRequestContentTextObject' + attachments: + anyOf: - type: array items: - type: array - items: - type: integer - format: int32 - description: Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and any array must be 2048 dimensions or less. [Example Python code](https://cookbook.openai.com/examples/how_to_count_tokens_with_tiktoken) for counting tokens. In addition to the per-input token limit, all embedding models enforce a maximum of 300,000 tokens summed across all inputs in a single request. - encoding_format: - type: string - enum: - - float - - base64 - description: The format to return the embeddings in. Can be either `float` or [`base64`](https://pypi.org/project/pybase64/). - default: float - dimensions: - type: integer - format: int32 - minimum: 1 - description: The number of dimensions the resulting output embeddings should have. Only supported in `text-embedding-3` and later models. - user: - type: string - description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids). - AzureCreateFileRequestMultiPart: + $ref: '#/components/schemas/OpenAI.CreateMessageRequestAttachments' + - type: 'null' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.CreateMessageRequestAttachments: type: object - required: - - file - - expires_after - - purpose properties: - file: - type: string - format: binary - expires_after: - type: object - properties: - seconds: - type: integer - format: int32 - anchor: - $ref: '#/components/schemas/AzureFileExpiryAnchor' - required: - - seconds - - anchor - purpose: + file_id: type: string - enum: - - assistants - - batch - - fine-tune - - evals - description: 'The intended purpose of the uploaded file. One of: - `assistants`: Used in the Assistants API - `batch`: Used in the Batch API - `fine-tune`: Used for fine-tuning - `evals`: Used for eval data sets' - AzureCreateResponse: + tools: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.AssistantToolsCode' + - $ref: '#/components/schemas/OpenAI.AssistantToolsFileSearchTypeOnly' + OpenAI.CreateResponse: type: object - required: - - model properties: metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + top_logprobs: + anyOf: + - type: integer + - type: 'null' temperature: - type: number - format: float - nullable: true - minimum: 0 - maximum: 2 - description: |- - What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. - We generally recommend altering this or `top_p` but not both. + anyOf: + - type: number + - type: 'null' default: 1 top_p: - type: number - format: float - nullable: true - minimum: 0 - maximum: 1 - description: |- - An alternative to sampling with temperature, called nucleus sampling, - where the model considers the results of the tokens with top_p probability - mass. So 0.1 means only the tokens comprising the top 10% probability mass - are considered. - - We generally recommend altering this or `temperature` but not both. + anyOf: + - type: number + - type: 'null' default: 1 user: type: string - description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids). - top_logprobs: - type: integer - format: int32 - minimum: 0 - maximum: 20 - description: An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. + description: |- + This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations. + A stable identifier for your end-users. + Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + safety_identifier: + type: string + description: |- + A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. + The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + prompt_cache_key: + type: string + description: Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching). + prompt_cache_retention: + anyOf: + - type: string + enum: + - in-memory + - 24h + - type: 'null' previous_response_id: + anyOf: + - type: string + - type: 'null' + model: type: string - nullable: true description: |- - The unique ID of the previous response to the model. Use this to - create multi-turn conversations. Learn more about - [conversation state](/docs/guides/conversation-state). + Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) + to browse and compare available models. reasoning: - type: object - allOf: + anyOf: - $ref: '#/components/schemas/OpenAI.Reasoning' - nullable: true + - type: 'null' background: - type: boolean - nullable: true - description: |- - Whether to run the model response in the background. - [Learn more](/docs/guides/background). - default: false + anyOf: + - type: boolean + - type: 'null' max_output_tokens: - type: integer - format: int32 - nullable: true - description: An upper bound for the number of tokens that can be generated for a response, including visible output tokens and [reasoning tokens](/docs/guides/reasoning). + anyOf: + - type: integer + - type: 'null' max_tool_calls: - type: integer - format: int32 - nullable: true - description: The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored. + anyOf: + - type: integer + - type: 'null' text: - type: object - properties: - format: - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - description: |- - Configuration options for a text response from the model. Can be plain - text or structured JSON data. Learn more: - - [Text inputs and outputs](/docs/guides/text) - - [Structured Outputs](/docs/guides/structured-outputs) + $ref: '#/components/schemas/OpenAI.ResponseTextParam' tools: - type: array - items: - $ref: '#/components/schemas/OpenAI.Tool' + $ref: '#/components/schemas/OpenAI.ToolsArray' description: |- - An array of tools the model may call while generating a response. You + An array of tools the model may call while generating a response. You can specify which tool to use by setting the `tool_choice` parameter. The two categories of tools you can provide the model are: @@ -5553,3755 +12879,4460 @@ components: - **Function calls (custom tools)**: Functions that are defined by you, enabling the model to call your own code. tool_choice: - anyOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceOptions' - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - description: |- - How the model should select which tool (or tools) to use when generating - a response. See the `tools` parameter to see how to specify which tools - the model can call. + $ref: '#/components/schemas/OpenAI.ToolChoiceParam' prompt: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.Prompt' - nullable: true + $ref: '#/components/schemas/OpenAI.Prompt' truncation: - type: string - enum: - - auto - - disabled - nullable: true - description: |- - The truncation strategy to use for the model response. - - `auto`: If the context of this response and previous ones exceeds - the model's context window size, the model will truncate the - response to fit the context window by dropping input items in the - middle of the conversation. - - `disabled` (default): If a model response will exceed the context window - size for a model, the request will fail with a 400 error. + anyOf: + - type: string + enum: + - auto + - disabled + - type: 'null' default: disabled input: + $ref: '#/components/schemas/OpenAI.InputParam' + include: anyOf: - - type: string - type: array items: - anyOf: - - $ref: '#/components/schemas/OpenAI.ImplicitUserMessage' - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: |- - Text, image, or file inputs to the model, used to generate a response. - - Learn more: - - [Text inputs and outputs](/docs/guides/text) - - [Image inputs](/docs/guides/images) - - [File inputs](/docs/guides/pdf-files) - - [Conversation state](/docs/guides/conversation-state) - - [Function calling](/docs/guides/function-calling) - include: - type: array - items: - $ref: '#/components/schemas/OpenAI.Includable' - nullable: true - description: |- - Specify additional output data to include in the model response. Currently - supported values are: - - `code_interpreter_call.outputs`: Includes the outputs of python code execution - in code interpreter tool call items. - - `computer_call_output.output.image_url`: Include image urls from the computer call output. - - `file_search_call.results`: Include the search results of - the file search tool call. - - `message.input_image.image_url`: Include image urls from the input message. - - `message.output_text.logprobs`: Include logprobs with assistant messages. - - `reasoning.encrypted_content`: Includes an encrypted version of reasoning - tokens in reasoning item outputs. This enables reasoning items to be used in - multi-turn conversations when using the Responses API statelessly (like - when the `store` parameter is set to `false`, or when an organization is - enrolled in the zero data retention program). + $ref: '#/components/schemas/OpenAI.IncludeEnum' + - type: 'null' parallel_tool_calls: - type: boolean - nullable: true - description: Whether to allow the model to run tool calls in parallel. + anyOf: + - type: boolean + - type: 'null' default: true store: - type: boolean - nullable: true - description: |- - Whether to store the generated model response for later retrieval via - API. + anyOf: + - type: boolean + - type: 'null' default: true instructions: + anyOf: + - type: string + - type: 'null' + stream: + anyOf: + - type: boolean + - type: 'null' + stream_options: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamOptions' + - type: 'null' + conversation: + anyOf: + - $ref: '#/components/schemas/OpenAI.ConversationParam' + - type: 'null' + OpenAI.CreateRunRequest: + type: object + required: + - assistant_id + properties: + assistant_id: + type: string + description: The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) to use to execute this run. + model: type: string - nullable: true + description: The ID of the [Model](https://platform.openai.com/docs/api-reference/models) to be used to execute this run. If a value is provided here, it will override the model associated with the assistant. If not, the model associated with the assistant will be used. + x-oaiTypeLabel: string + reasoning_effort: + $ref: '#/components/schemas/OpenAI.ReasoningEffort' + instructions: + anyOf: + - type: string + - type: 'null' + description: Overrides the [instructions](https://platform.openai.com/docs/api-reference/assistants/createAssistant) of the assistant. This is useful for modifying the behavior on a per-run basis. + additional_instructions: + anyOf: + - type: string + - type: 'null' + description: Appends additional instructions at the end of the instructions for the run. This is useful for modifying the behavior on a per-run basis without overriding other instructions. + additional_messages: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.CreateMessageRequest' + - type: 'null' + description: Adds additional messages to the thread before creating the run. + tools: + type: array + items: + $ref: '#/components/schemas/OpenAI.AssistantTool' + maxItems: 20 + description: Override the tools the assistant can use for this run. This is useful for modifying the behavior on a per-run basis. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + minimum: 0 + maximum: 2 + description: What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + minimum: 0 + maximum: 1 description: |- - A system (or developer) message inserted into the model's context. + An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. - When using along with `previous_response_id`, the instructions from a previous - response will not be carried over to the next response. This makes it simple - to swap out system (or developer) messages in new responses. + We generally recommend altering this or temperature but not both. + default: 1 stream: - type: boolean - nullable: true - description: |- - If set to true, the model response data will be streamed to the client - as it is generated using [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format). - See the [Streaming section below](/docs/api-reference/responses-streaming) - for more information. - default: false - model: - type: string - description: The model deployment to use for the creation of this response. - AzureErrorResponse: - type: object - properties: - error: - type: object - properties: - code: - type: string - description: The distinct, machine-generated identifier for the error. - message: - type: string - description: A human-readable message associated with the error. - param: - type: string - description: If applicable, the request input parameter associated with the error - type: - type: string - enum: - - error - description: The object type, always 'error.' - inner_error: {} - description: The error details. - AzureEvalAPICompletionsSamplingParams: + anyOf: + - type: boolean + - type: 'null' + description: 'If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message.' + max_prompt_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 256 + description: The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + max_completion_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 256 + description: The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + truncation_strategy: + $ref: '#/components/schemas/OpenAI.TruncationObject' + tool_choice: + $ref: '#/components/schemas/OpenAI.AssistantsApiToolChoiceOption' + parallel_tool_calls: + $ref: '#/components/schemas/OpenAI.ParallelToolCalls' + response_format: + $ref: '#/components/schemas/OpenAI.AssistantsApiResponseFormatOption' + OpenAI.CreateThreadAndRunRequest: type: object + required: + - assistant_id properties: + assistant_id: + type: string + description: The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) to use to execute this run. + thread: + $ref: '#/components/schemas/OpenAI.CreateThreadRequest' + model: + type: string + description: The ID of the [Model](https://platform.openai.com/docs/api-reference/models) to be used to execute this run. If a value is provided here, it will override the model associated with the assistant. If not, the model associated with the assistant will be used. + x-oaiTypeLabel: string + instructions: + anyOf: + - type: string + - type: 'null' + description: Override the default system message of the assistant. This is useful for modifying the behavior on a per-run basis. tools: type: array items: - $ref: '#/components/schemas/OpenAI.ChatCompletionTool' + $ref: '#/components/schemas/OpenAI.AssistantTool' + maxItems: 20 + description: Override the tools the assistant can use for this run. This is useful for modifying the behavior on a per-run basis. + tool_resources: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateThreadAndRunRequestToolResources' + - type: 'null' + description: A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` tool requires a list of file IDs, while the `file_search` tool requires a list of vector store IDs. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + minimum: 0 + maximum: 2 + description: What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + minimum: 0 + maximum: 1 + description: |- + An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. + + We generally recommend altering this or temperature but not both. + default: 1 + stream: + anyOf: + - type: boolean + - type: 'null' + description: 'If `true`, returns a stream of events that happen during the Run as server-sent events, terminating when the Run enters a terminal state with a `data: [DONE]` message.' + max_prompt_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 256 + description: The maximum number of prompt tokens that may be used over the course of the run. The run will make a best effort to use only the number of prompt tokens specified, across multiple turns of the run. If the run exceeds the number of prompt tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + max_completion_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 256 + description: The maximum number of completion tokens that may be used over the course of the run. The run will make a best effort to use only the number of completion tokens specified, across multiple turns of the run. If the run exceeds the number of completion tokens specified, the run will end with status `incomplete`. See `incomplete_details` for more info. + truncation_strategy: + $ref: '#/components/schemas/OpenAI.TruncationObject' + tool_choice: + $ref: '#/components/schemas/OpenAI.AssistantsApiToolChoiceOption' parallel_tool_calls: - type: boolean + $ref: '#/components/schemas/OpenAI.ParallelToolCalls' response_format: - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - allOf: - - $ref: '#/components/schemas/AzureEvalAPIModelSamplingParams' - AzureEvalAPIModelSamplingParams: + $ref: '#/components/schemas/OpenAI.AssistantsApiResponseFormatOption' + OpenAI.CreateThreadAndRunRequestToolResources: type: object properties: - seed: - type: integer - format: int32 - description: A seed value to initialize the randomness during sampling. - temperature: - type: number - format: float - description: A higher temperature increases randomness in the outputs. - max_tokens: - type: integer - format: int32 - description: The maximum number of tokens in the generated output. - top_p: - type: number - format: float - description: An alternative to temperature for nucleus sampling; 1.0 includes all tokens. - reasoning_effort: - type: string - enum: - - low - - medium - - high - description: Controls the level of reasoning effort applied during generation. - AzureEvalAPIResponseSamplingParams: + code_interpreter: + $ref: '#/components/schemas/OpenAI.CreateThreadAndRunRequestToolResourcesCodeInterpreter' + file_search: + $ref: '#/components/schemas/OpenAI.CreateThreadAndRunRequestToolResourcesFileSearch' + OpenAI.CreateThreadAndRunRequestToolResourcesCodeInterpreter: + type: object + properties: + file_ids: + type: array + items: + type: string + maxItems: 20 + default: [] + OpenAI.CreateThreadAndRunRequestToolResourcesFileSearch: type: object properties: - tools: + vector_store_ids: type: array items: - $ref: '#/components/schemas/OpenAI.Tool' - parallel_tool_calls: - type: boolean - response_format: - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - allOf: - - $ref: '#/components/schemas/AzureEvalAPIModelSamplingParams' - AzureFileExpiryAnchor: - type: string - enum: - - created_at - AzureFineTuneReinforcementMethod: + type: string + maxItems: 1 + OpenAI.CreateThreadRequest: type: object - required: - - grader properties: - grader: + messages: + type: array + items: + $ref: '#/components/schemas/OpenAI.CreateMessageRequest' + description: A list of [messages](https://platform.openai.com/docs/api-reference/messages) to start the thread with. + tool_resources: anyOf: - - $ref: '#/components/schemas/OpenAI.GraderStringCheck' - - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' - - $ref: '#/components/schemas/OpenAI.GraderScoreModel' - - $ref: '#/components/schemas/OpenAI.GraderMulti' - response_format: - allOf: - - $ref: '#/components/schemas/ResponseFormatJSONSchemaRequest' - description: Response format to be used while sampling during RFT training - hyperparameters: - $ref: '#/components/schemas/OpenAI.FineTuneReinforcementHyperparameters' - AzureListFilesResponse: + - $ref: '#/components/schemas/OpenAI.CreateThreadRequestToolResources' + - type: 'null' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + description: |- + Options to create a new thread. If no thread is provided when running a + request, an empty thread will be created. + OpenAI.CreateThreadRequestToolResources: + type: object + properties: + code_interpreter: + $ref: '#/components/schemas/OpenAI.CreateThreadRequestToolResourcesCodeInterpreter' + file_search: + anyOf: + - {} + - {} + OpenAI.CreateThreadRequestToolResourcesCodeInterpreter: + type: object + properties: + file_ids: + type: array + items: + type: string + maxItems: 20 + OpenAI.CreateVectorStoreFileBatchRequest: + type: object + properties: + file_ids: + type: array + items: + type: string + minItems: 1 + maxItems: 500 + description: A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files. If `attributes` or `chunking_strategy` are provided, they will be applied to all files in the batch. Mutually exclusive with `files`. + files: + type: array + items: + $ref: '#/components/schemas/OpenAI.CreateVectorStoreFileRequest' + minItems: 1 + maxItems: 500 + description: A list of objects that each include a `file_id` plus optional `attributes` or `chunking_strategy`. Use this when you need to override metadata for specific files. The global `attributes` or `chunking_strategy` will be ignored and must be specified for each file. Mutually exclusive with `file_ids`. + chunking_strategy: + $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' + attributes: + anyOf: + - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' + - type: 'null' + OpenAI.CreateVectorStoreFileRequest: type: object required: - - object - - data - - first_id - - last_id - - has_more + - file_id properties: - object: + file_id: type: string - enum: - - list - data: + description: A [File](https://platform.openai.com/docs/api-reference/files) ID that the vector store should use. Useful for tools like `file_search` that can access files. + chunking_strategy: + $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' + attributes: + anyOf: + - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' + - type: 'null' + OpenAI.CreateVectorStoreRequest: + type: object + properties: + file_ids: type: array items: - $ref: '#/components/schemas/AzureOpenAIFile' - first_id: + type: string + maxItems: 500 + description: A list of [File](https://platform.openai.com/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files. + name: type: string - last_id: + description: The name of the vector store. + description: type: string - has_more: - type: boolean - AzureOpenAIFile: + description: A description for the vector store. Can be used to describe the vector store's purpose. + expires_after: + $ref: '#/components/schemas/OpenAI.VectorStoreExpirationAfter' + chunking_strategy: + $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.CustomGrammarFormatParam: type: object required: - - id - - bytes - - created_at - - filename - - object - - purpose - - status + - type + - syntax + - definition properties: - id: - type: string - description: The file identifier, which can be referenced in the API endpoints. - bytes: - type: integer - format: int64 - nullable: true - description: The size of the file, in bytes. - created_at: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) for when the file was created. - expires_at: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) for when the file will expire. - filename: - type: string - description: The name of the file. - object: - type: string - enum: - - file - description: The object type, which is always `file`. - status_details: - type: string - description: Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`. - deprecated: true - purpose: + type: type: string enum: - - assistants - - assistants_output - - batch - - batch_output - - fine-tune - - fine-tune-results - - evals - description: The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`. - status: + - grammar + description: Grammar format. Always `grammar`. + x-stainless-const: true + default: grammar + syntax: + allOf: + - $ref: '#/components/schemas/OpenAI.GrammarSyntax1' + description: The syntax of the grammar definition. One of `lark` or `regex`. + definition: type: string - enum: - - uploaded - - pending - - running - - processed - - error - - deleting - - deleted - AzurePiiSubCategoryResult: + description: The grammar definition. + description: A grammar defined by the user. + title: Grammar format + OpenAI.CustomTextFormatParam: type: object required: - - sub_category - - filtered - - detected - - redacted + - type properties: - sub_category: + type: type: string - description: The PIIHarmSubCategory that was evaluated. - filtered: - type: boolean - description: Whether the content detection resulted in a content filtering action for this subcategory. - detected: - type: boolean - description: Whether the labeled content subcategory was detected in the content. - redacted: - type: boolean - description: Whether the content was redacted for this subcategory. - description: Result details for individual PIIHarmSubCategory(s). - AzureResponse: + enum: + - text + description: Unconstrained text format. Always `text`. + x-stainless-const: true + default: text + description: Unconstrained free-form text. + title: Text format + OpenAI.CustomToolChatCompletions: type: object required: - - metadata - - temperature - - top_p - - user - - id - - object - - created_at - - error - - incomplete_details - - output - - instructions - - parallel_tool_calls - - model + - type + - custom properties: - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - temperature: - type: number - format: float - nullable: true - minimum: 0 - maximum: 2 - description: |- - What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. - We generally recommend altering this or `top_p` but not both. - top_p: - type: number - format: float - nullable: true - minimum: 0 - maximum: 1 - description: |- - An alternative to sampling with temperature, called nucleus sampling, - where the model considers the results of the tokens with top_p probability - mass. So 0.1 means only the tokens comprising the top 10% probability mass - are considered. - - We generally recommend altering this or `temperature` but not both. - user: - type: string - nullable: true - description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids). - top_logprobs: - type: integer - format: int32 - nullable: true - description: An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. - previous_response_id: - type: string - nullable: true - description: |- - The unique ID of the previous response to the model. Use this to - create multi-turn conversations. Learn more about - [conversation state](/docs/guides/conversation-state). - reasoning: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.Reasoning' - nullable: true - background: - type: boolean - nullable: true - description: |- - Whether to run the model response in the background. - [Learn more](/docs/guides/background). - default: false - max_output_tokens: - type: integer - format: int32 - nullable: true - description: An upper bound for the number of tokens that can be generated for a response, including visible output tokens and [reasoning tokens](/docs/guides/reasoning). - max_tool_calls: - type: integer - format: int32 - nullable: true - description: The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored. - text: - type: object - properties: - format: - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - description: |- - Configuration options for a text response from the model. Can be plain - text or structured JSON data. Learn more: - - [Text inputs and outputs](/docs/guides/text) - - [Structured Outputs](/docs/guides/structured-outputs) - tools: - type: array - items: - $ref: '#/components/schemas/OpenAI.Tool' - description: |- - An array of tools the model may call while generating a response. You - can specify which tool to use by setting the `tool_choice` parameter. - - The two categories of tools you can provide the model are: - - - **Built-in tools**: Tools that are provided by OpenAI that extend the - model's capabilities, like [web search](/docs/guides/tools-web-search) - or [file search](/docs/guides/tools-file-search). Learn more about - [built-in tools](/docs/guides/tools). - - **Function calls (custom tools)**: Functions that are defined by you, - enabling the model to call your own code. Learn more about - [function calling](/docs/guides/function-calling). - tool_choice: - anyOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceOptions' - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - description: |- - How the model should select which tool (or tools) to use when generating - a response. See the `tools` parameter to see how to specify which tools - the model can call. - prompt: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.Prompt' - nullable: true - truncation: + type: type: string enum: - - auto - - disabled - nullable: true - description: |- - The truncation strategy to use for the model response. - - `auto`: If the context of this response and previous ones exceeds - the model's context window size, the model will truncate the - response to fit the context window by dropping input items in the - middle of the conversation. - - `disabled` (default): If a model response will exceed the context window - size for a model, the request will fail with a 400 error. - default: disabled - id: + - custom + description: The type of the custom tool. Always `custom`. + x-stainless-const: true + custom: + allOf: + - $ref: '#/components/schemas/OpenAI.CustomToolChatCompletionsCustom' + description: Properties of the custom tool. + title: Custom tool properties + description: A custom tool that processes input using a specified format. + title: Custom tool + OpenAI.CustomToolChatCompletionsCustom: + type: object + required: + - name + properties: + name: type: string - description: Unique identifier for this Response. - object: + description: type: string - enum: - - response - description: The object type of this resource - always set to `response`. - status: + format: + anyOf: + - $ref: '#/components/schemas/OpenAI.CustomToolChatCompletionsCustomFormatText' + - $ref: '#/components/schemas/OpenAI.CustomToolChatCompletionsCustomFormatGrammar' + OpenAI.CustomToolChatCompletionsCustomFormatGrammar: + type: object + required: + - type + - grammar + properties: + type: type: string enum: - - completed - - failed - - in_progress - - cancelled - - queued - - incomplete - description: |- - The status of the response generation. One of `completed`, `failed`, - `in_progress`, `cancelled`, `queued`, or `incomplete`. - created_at: - type: integer - format: unixtime - description: Unix timestamp (in seconds) of when this Response was created. - error: - type: object + - grammar + x-stainless-const: true + grammar: allOf: - - $ref: '#/components/schemas/OpenAI.ResponseError' - nullable: true - incomplete_details: - type: object - properties: - reason: - type: string - enum: - - max_output_tokens - - content_filter - description: The reason why the response is incomplete. - nullable: true - description: Details about why the response is incomplete. - output: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemResource' - description: |- - An array of content items generated by the model. - - - The length and order of items in the `output` array is dependent - on the model's response. - - Rather than accessing the first item in the `output` array and - assuming it's an `assistant` message with the content generated by - the model, you might consider using the `output_text` property where - supported in SDKs. - instructions: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemParam' - nullable: true - description: |- - A system (or developer) message inserted into the model's context. - - When using along with `previous_response_id`, the instructions from a previous - response will not be carried over to the next response. This makes it simple - to swap out system (or developer) messages in new responses. - output_text: + - $ref: '#/components/schemas/OpenAI.CustomToolChatCompletionsCustomFormatGrammarGrammar' + title: Grammar format + OpenAI.CustomToolChatCompletionsCustomFormatGrammarGrammar: + type: object + required: + - definition + - syntax + properties: + definition: type: string - nullable: true - description: |- - SDK-only convenience property that contains the aggregated text output - from all `output_text` items in the `output` array, if any are present. - Supported in the Python and JavaScript SDKs. - usage: - $ref: '#/components/schemas/OpenAI.ResponseUsage' - parallel_tool_calls: - type: boolean - description: Whether to allow the model to run tool calls in parallel. - default: true - model: + syntax: type: string - description: The model used to generate this response. - AzureSearchChatDataSource: + enum: + - lark + - regex + OpenAI.CustomToolChatCompletionsCustomFormatText: type: object required: - type - - parameters properties: type: type: string enum: - - azure_search - description: The discriminated type identifier, which is always 'azure_search'. - parameters: - type: object - properties: - top_n_documents: - type: integer - format: int32 - description: The configured number of documents to feature in the query. - in_scope: - type: boolean - description: Whether queries should be restricted to use of the indexed data. - strictness: - type: integer - format: int32 - minimum: 1 - maximum: 5 - description: |- - The configured strictness of the search relevance filtering. - Higher strictness will increase precision but lower recall of the answer. - max_search_queries: - type: integer - format: int32 - description: |- - The maximum number of rewritten queries that should be sent to the search provider for a single user message. - By default, the system will make an automatic determination. - allow_partial_result: - type: boolean - description: |- - If set to true, the system will allow partial search results to be used and the request will fail if all - partial queries fail. If not specified or specified as false, the request will fail if any search query fails. - default: false - include_contexts: - type: array - items: - type: string - enum: - - citations - - intent - - all_retrieved_documents - maxItems: 3 - description: |- - The output context properties to include on the response. - By default, citations and intent will be requested. - default: - - citations - - intent - endpoint: - type: string - format: uri - description: The absolute endpoint path for the Azure Search resource to use. - index_name: - type: string - description: The name of the index to use, as specified in the Azure Search resource. - authentication: - anyOf: - - $ref: '#/components/schemas/AzureChatDataSourceApiKeyAuthenticationOptions' - - $ref: '#/components/schemas/AzureChatDataSourceSystemAssignedManagedIdentityAuthenticationOptions' - - $ref: '#/components/schemas/AzureChatDataSourceUserAssignedManagedIdentityAuthenticationOptions' - - $ref: '#/components/schemas/AzureChatDataSourceAccessTokenAuthenticationOptions' - description: The authentication mechanism to use with Azure Search. - fields_mapping: - type: object - properties: - title_field: - type: string - description: The name of the index field to use as a title. - url_field: - type: string - description: The name of the index field to use as a URL. - filepath_field: - type: string - description: The name of the index field to use as a filepath. - content_fields: - type: array - items: - type: string - description: The names of index fields that should be treated as content. - content_fields_separator: - type: string - description: The separator pattern that content fields should use. - vector_fields: - type: array - items: - type: string - description: The names of fields that represent vector data. - image_vector_fields: - type: array - items: - type: string - description: The names of fields that represent image vector data. - description: The field mappings to use with the Azure Search resource. - query_type: - type: string - enum: - - simple - - semantic - - vector - - vector_simple_hybrid - - vector_semantic_hybrid - description: The query type for the Azure Search resource to use. - semantic_configuration: - type: string - description: Additional semantic configuration for the query. - filter: - type: string - description: A filter to apply to the search. - embedding_dependency: - anyOf: - - $ref: '#/components/schemas/AzureChatDataSourceEndpointVectorizationSource' - - $ref: '#/components/schemas/AzureChatDataSourceDeploymentNameVectorizationSource' - - $ref: '#/components/schemas/AzureChatDataSourceIntegratedVectorizationSource' - description: |- - The vectorization source to use with Azure Search. - Supported sources for Azure Search include endpoint, deployment name, and integrated. - required: - - endpoint - - index_name - - authentication - description: The parameter information to control the use of the Azure Search data source. + - text + x-stainless-const: true + OpenAI.CustomToolParam: + type: object + required: + - type + - name + properties: + type: + type: string + enum: + - custom + description: The type of the custom tool. Always `custom`. + x-stainless-const: true + default: custom + name: + type: string + description: The name of the custom tool, used to identify it in tool calls. + description: + type: string + description: Optional description of the custom tool, used to provide more context. + format: + anyOf: + - $ref: '#/components/schemas/OpenAI.CustomTextFormatParam' + - $ref: '#/components/schemas/OpenAI.CustomGrammarFormatParam' + description: The input format for the custom tool. Default is unconstrained text. allOf: - - $ref: '#/components/schemas/AzureChatDataSource' - description: Represents a data source configuration that will use an Azure Search resource. - AzureUserSecurityContext: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A custom tool that processes input using a specified format. Learn more about [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) + title: Custom tool + OpenAI.DeleteFileResponse: type: object + required: + - id + - object + - deleted properties: - application_name: + id: type: string - description: The name of the application. Sensitive personal information should not be included in this field. - end_user_id: + object: type: string - description: This identifier is the Microsoft Entra ID (formerly Azure Active Directory) user object ID used to authenticate end-users within the generative AI application. Sensitive personal information should not be included in this field. - end_user_tenant_id: + enum: + - file + x-stainless-const: true + deleted: + type: boolean + OpenAI.DeleteFineTuningCheckpointPermissionResponse: + type: object + required: + - id + - object + - deleted + properties: + id: type: string - description: The Microsoft 365 tenant ID the end user belongs to. It's required when the generative AI application is multitenant. - source_ip: + description: The ID of the fine-tuned model checkpoint permission that was deleted. + object: type: string - description: Captures the original client's IP address. - description: User security context contains several parameters that describe the application itself, and the end user that interacts with the application. These fields assist your security operations teams to investigate and mitigate security incidents by providing a comprehensive approach to protecting your AI applications. [Learn more](https://aka.ms/TP4AI/Documentation/EndUserContext) about protecting AI applications using Microsoft Defender for Cloud. - ChatCompletionMessageToolCallsItem: - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCall' - description: The tool calls generated by the model, such as function calls. - CopiedAccountDetails: + enum: + - checkpoint.permission + description: The object type, which is always "checkpoint.permission". + x-stainless-const: true + deleted: + type: boolean + description: Whether the fine-tuned model checkpoint permission was successfully deleted. + OpenAI.DeleteMessageResponse: type: object required: - - destinationResourceId - - region - - status + - id + - deleted + - object properties: - destinationResourceId: + id: type: string - description: The ID of the destination resource where the model was copied to. - region: + deleted: + type: boolean + object: type: string - description: The region where the model was copied to. - status: + enum: + - thread.message.deleted + x-stainless-const: true + OpenAI.DeleteModelResponse: + type: object + required: + - id + - deleted + - object + properties: + id: + type: string + deleted: + type: boolean + object: + type: string + OpenAI.DeleteThreadResponse: + type: object + required: + - id + - deleted + - object + properties: + id: + type: string + deleted: + type: boolean + object: type: string enum: - - Completed - - Failed - - InProgress - description: The status of the copy operation. - CopyModelRequest: + - thread.deleted + x-stainless-const: true + OpenAI.DeleteVectorStoreFileResponse: type: object required: - - destinationResourceId - - region + - id + - deleted + - object properties: - destinationResourceId: + id: type: string - description: The ID of the destination Resource to copy. - region: + deleted: + type: boolean + object: type: string - description: The region to copy the model to. - CopyModelResponse: + enum: + - vector_store.file.deleted + x-stainless-const: true + OpenAI.DeleteVectorStoreResponse: type: object required: - - checkpointedModelName - - fineTuningJobId - - copiedAccountDetails + - id + - deleted + - object properties: - checkpointedModelName: + id: type: string - description: The ID of the copied model. - fineTuningJobId: + deleted: + type: boolean + object: + type: string + enum: + - vector_store.deleted + x-stainless-const: true + OpenAI.DeletedConversationResource: + type: object + required: + - object + - deleted + - id + properties: + object: + type: string + enum: + - conversation.deleted + x-stainless-const: true + default: conversation.deleted + deleted: + type: boolean + id: type: string - description: The ID of the fine-tuning job that the checkpoint was copied from. - copiedAccountDetails: - type: array - items: - $ref: '#/components/schemas/CopiedAccountDetails' - description: The ID of the destination resource id where it was copied - ElasticsearchChatDataSource: + OpenAI.DoubleClickAction: type: object required: - type - - parameters + - x + - 'y' properties: type: type: string enum: - - elasticsearch - description: The discriminated type identifier, which is always 'elasticsearch'. - parameters: - type: object - properties: - top_n_documents: - type: integer - format: int32 - description: The configured number of documents to feature in the query. - in_scope: - type: boolean - description: Whether queries should be restricted to use of the indexed data. - strictness: - type: integer - format: int32 - minimum: 1 - maximum: 5 - description: |- - The configured strictness of the search relevance filtering. - Higher strictness will increase precision but lower recall of the answer. - max_search_queries: - type: integer - format: int32 - description: |- - The maximum number of rewritten queries that should be sent to the search provider for a single user message. - By default, the system will make an automatic determination. - allow_partial_result: - type: boolean - description: |- - If set to true, the system will allow partial search results to be used and the request will fail if all - partial queries fail. If not specified or specified as false, the request will fail if any search query fails. - default: false - include_contexts: - type: array - items: - type: string - enum: - - citations - - intent - - all_retrieved_documents - maxItems: 3 - description: |- - The output context properties to include on the response. - By default, citations and intent will be requested. - default: - - citations - - intent - endpoint: - type: string - format: uri - index_name: - type: string - authentication: - anyOf: - - $ref: '#/components/schemas/AzureChatDataSourceKeyAndKeyIdAuthenticationOptions' - - $ref: '#/components/schemas/AzureChatDataSourceEncodedApiKeyAuthenticationOptions' - fields_mapping: - type: object - properties: - title_field: - type: string - url_field: - type: string - filepath_field: - type: string - content_fields: - type: array - items: - type: string - content_fields_separator: - type: string - vector_fields: - type: array - items: - type: string - query_type: - type: string - enum: - - simple - - vector - embedding_dependency: - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - required: - - endpoint - - index_name - - authentication - description: The parameter information to control the use of the Elasticsearch data source. + - double_click + description: Specifies the event type. For a double click action, this property is always set to `double_click`. + x-stainless-const: true + default: double_click + x: + type: integer + description: The x-coordinate where the double click occurred. + 'y': + type: integer + description: The y-coordinate where the double click occurred. allOf: - - $ref: '#/components/schemas/AzureChatDataSource' - MongoDBChatDataSource: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A double click action. + title: DoubleClick + OpenAI.Drag: type: object required: - type - - parameters + - path properties: type: type: string enum: - - mongo_db - description: The discriminated type identifier, which is always 'mongo_db'. - parameters: - type: object - properties: - top_n_documents: - type: integer - format: int32 - description: The configured number of documents to feature in the query. - in_scope: - type: boolean - description: Whether queries should be restricted to use of the indexed data. - strictness: - type: integer - format: int32 - minimum: 1 - maximum: 5 - description: |- - The configured strictness of the search relevance filtering. - Higher strictness will increase precision but lower recall of the answer. - max_search_queries: - type: integer - format: int32 - description: |- - The maximum number of rewritten queries that should be sent to the search provider for a single user message. - By default, the system will make an automatic determination. - allow_partial_result: - type: boolean - description: |- - If set to true, the system will allow partial search results to be used and the request will fail if all - partial queries fail. If not specified or specified as false, the request will fail if any search query fails. - default: false - include_contexts: - type: array - items: - type: string - enum: - - citations - - intent - - all_retrieved_documents - maxItems: 3 - description: |- - The output context properties to include on the response. - By default, citations and intent will be requested. - default: - - citations - - intent - endpoint: - type: string - description: The name of the MongoDB cluster endpoint. - database_name: - type: string - description: The name of the MongoDB database. - collection_name: - type: string - description: The name of the MongoDB collection. - app_name: - type: string - description: The name of the MongoDB application. - index_name: - type: string - description: The name of the MongoDB index. - authentication: - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceUsernameAndPasswordAuthenticationOptions' - description: |- - The authentication mechanism to use with Pinecone. - Supported authentication mechanisms for Pinecone include: username and password. - embedding_dependency: - anyOf: - - $ref: '#/components/schemas/AzureChatDataSourceEndpointVectorizationSource' - - $ref: '#/components/schemas/AzureChatDataSourceDeploymentNameVectorizationSource' - description: |- - The vectorization source to use as an embedding dependency for the MongoDB data source. - Supported vectorization sources for MongoDB include: endpoint, deployment name. - fields_mapping: - type: object - properties: - content_fields: - type: array - items: - type: string - vector_fields: - type: array - items: - type: string - title_field: - type: string - url_field: - type: string - filepath_field: - type: string - content_fields_separator: - type: string - required: - - content_fields - - vector_fields - description: |- - Field mappings to apply to data used by the MongoDB data source. - Note that content and vector field mappings are required for MongoDB. - required: - - endpoint - - database_name - - collection_name - - app_name - - index_name - - authentication - - embedding_dependency - - fields_mapping - description: The parameter information to control the use of the MongoDB data source. - allOf: - - $ref: '#/components/schemas/AzureChatDataSource' - OpenAI.Annotation: + - drag + description: |- + Specifies the event type. For a drag action, this property is + always set to `drag`. + x-stainless-const: true + default: drag + path: + type: array + items: + $ref: '#/components/schemas/OpenAI.DragPoint' + description: |- + An array of coordinates representing the path of the drag action. Coordinates will appear as an array + of objects, eg + ``` + [ + { x: 100, y: 200 }, + { x: 200, y: 300 } + ] + ``` + allOf: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A drag action. + title: Drag + OpenAI.DragPoint: type: object required: - - type + - x + - 'y' properties: - type: - $ref: '#/components/schemas/OpenAI.AnnotationType' - discriminator: - propertyName: type - mapping: - file_citation: '#/components/schemas/OpenAI.AnnotationFileCitation' - url_citation: '#/components/schemas/OpenAI.AnnotationUrlCitation' - file_path: '#/components/schemas/OpenAI.AnnotationFilePath' - OpenAI.AnnotationFileCitation: + x: + type: integer + description: The x-coordinate. + 'y': + type: integer + description: The y-coordinate. + description: 'An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`.' + title: Coordinate + OpenAI.EasyInputMessage: type: object required: + - role + - content - type - - file_id - - index - - filename properties: - type: + role: type: string enum: - - file_citation - description: The type of the file citation. Always `file_citation`. - file_id: - type: string - description: The ID of the file. - index: - type: integer - format: int32 - description: The index of the file in the list of files. - filename: + - user + - assistant + - system + - developer + description: |- + The role of the message input. One of `user`, `assistant`, `system`, or + `developer`. + content: + anyOf: + - type: string + - $ref: '#/components/schemas/OpenAI.InputMessageContentList' + description: |- + Text, image, or audio input to the model, used to generate a response. + Can also contain previous assistant responses. + type: type: string - description: The filename of the file cited. + enum: + - message + description: The type of the message input. Always `message`. + x-stainless-const: true allOf: - - $ref: '#/components/schemas/OpenAI.Annotation' - description: A citation to a file. - OpenAI.AnnotationFilePath: + - $ref: '#/components/schemas/OpenAI.InputItem' + description: |- + A message input to the model with a role indicating instruction following + hierarchy. Instructions given with the `developer` or `system` role take + precedence over instructions given with the `user` role. Messages with the + `assistant` role are presumed to have been generated by the model in previous + interactions. + title: Input message + OpenAI.Embedding: type: object required: - - type - - file_id - index + - embedding + - object properties: - type: - type: string - enum: - - file_path - description: The type of the file path. Always `file_path`. - file_id: - type: string - description: The ID of the file. index: type: integer - format: int32 - description: The index of the file in the list of files. - allOf: - - $ref: '#/components/schemas/OpenAI.Annotation' - description: A path to a file. - OpenAI.AnnotationType: - anyOf: - - type: string - - type: string + description: The index of the embedding in the list of embeddings. + embedding: + type: array + items: + type: number + format: float + description: The embedding vector, which is a list of floats. The length of vector depends on the model as listed in the [embedding guide](https://platform.openai.com/docs/guides/embeddings). + object: + type: string enum: - - file_citation - - url_citation - - file_path - - container_file_citation - OpenAI.AnnotationUrlCitation: + - embedding + description: The object type, which is always "embedding". + x-stainless-const: true + description: Represents an embedding vector returned by embedding endpoint. + x-oaiMeta: + name: The embedding object + example: | + { + "object": "embedding", + "embedding": [ + 0.0023064255, + -0.009327292, + .... (1536 floats total for ada-002) + -0.0028842222, + ], + "index": 0 + } + OpenAI.Eval: type: object required: - - type - - url - - start_index - - end_index - - title + - object + - id + - name + - data_source_config + - testing_criteria + - created_at + - metadata properties: - type: + object: type: string enum: - - url_citation - description: The type of the URL citation. Always `url_citation`. - url: + - eval + description: The object type. + x-stainless-const: true + default: eval + id: type: string - format: uri - description: The URL of the web resource. - start_index: - type: integer - format: int32 - description: The index of the first character of the URL citation in the message. - end_index: - type: integer - format: int32 - description: The index of the last character of the URL citation in the message. - title: + description: Unique identifier for the evaluation. + name: type: string - description: The title of the web resource. - allOf: - - $ref: '#/components/schemas/OpenAI.Annotation' - description: A citation for a web resource used to generate a model response. - OpenAI.ApproximateLocation: + description: The name of the evaluation. + data_source_config: + anyOf: + - $ref: '#/components/schemas/OpenAI.EvalCustomDataSourceConfig' + - $ref: '#/components/schemas/OpenAI.EvalLogsDataSourceConfig' + - $ref: '#/components/schemas/OpenAI.EvalStoredCompletionsDataSourceConfig' + description: Configuration of data sources used in runs of the evaluation. + testing_criteria: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalLabelModelGrader' + - $ref: '#/components/schemas/OpenAI.EvalGraderStringCheck' + - $ref: '#/components/schemas/OpenAI.EvalGraderTextSimilarity' + - $ref: '#/components/schemas/OpenAI.EvalGraderPython' + - $ref: '#/components/schemas/OpenAI.EvalGraderScoreModel' + - $ref: '#/components/schemas/EvalGraderEndpoint' + description: A list of testing criteria. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the eval was created. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + description: |- + An Eval object with a data source config and testing criteria. + An Eval represents a task to be done for your LLM integration. + Like: + - Improve the quality of my chatbot + - See how well my chatbot handles customer support + - Check if o4-mini is better at my usecase than gpt-4o + title: Eval + x-oaiMeta: + name: The eval object + group: evals + example: | + { + "object": "eval", + "id": "eval_67abd54d9b0081909a86353f6fb9317a", + "data_source_config": { + "type": "custom", + "item_schema": { + "type": "object", + "properties": { + "label": {"type": "string"}, + }, + "required": ["label"] + }, + "include_sample_schema": true + }, + "testing_criteria": [ + { + "name": "My string check grader", + "type": "string_check", + "input": "{{sample.output_text}}", + "reference": "{{item.label}}", + "operation": "eq", + } + ], + "name": "External Data Eval", + "created_at": 1739314509, + "metadata": { + "test": "synthetics", + } + } + OpenAI.EvalApiError: type: object required: - - type + - code + - message properties: - type: - type: string - enum: - - approximate - country: - type: string - nullable: true - region: - type: string - nullable: true - city: + code: type: string - nullable: true - timezone: + description: The error code. + message: type: string - nullable: true - allOf: - - $ref: '#/components/schemas/OpenAI.Location' - OpenAI.AutoChunkingStrategyRequestParam: + description: The error message. + description: An object representing an error response from the Eval API. + title: EvalApiError + x-oaiMeta: + name: The API error object + group: evals + example: | + { + "code": "internal_error", + "message": "The eval run failed due to an internal error." + } + OpenAI.EvalCustomDataSourceConfig: type: object required: - type + - schema properties: type: type: string enum: - - auto - description: Always `auto`. - allOf: - - $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' - description: The default strategy. This strategy currently uses a `max_chunk_size_tokens` of `800` and `chunk_overlap_tokens` of `400`. - OpenAI.ChatCompletionFunctionCallOption: + - custom + description: The type of data source. Always `custom`. + x-stainless-const: true + default: custom + schema: + type: object + unevaluatedProperties: {} + description: |- + The json schema for the run data source items. + Learn how to build JSON schemas [here](https://json-schema.org/). + description: |- + A CustomDataSourceConfig which specifies the schema of your `item` and optionally `sample` namespaces. + The response schema defines the shape of the data that will be: + - Used to define your testing criteria and + - What data is required when creating a run + title: CustomDataSourceConfig + x-oaiMeta: + name: The eval custom data source config object + group: evals + example: | + { + "type": "custom", + "schema": { + "type": "object", + "properties": { + "item": { + "type": "object", + "properties": { + "label": {"type": "string"}, + }, + "required": ["label"] + } + }, + "required": ["item"] + } + } + OpenAI.EvalGraderPython: type: object required: + - type - name + - source properties: + type: + type: string + enum: + - python + description: The object type, which is always `python`. + x-stainless-const: true name: type: string - description: The name of the function to call. - description: 'Specifying a particular function via `{"name": "my_function"}` forces the model to call that function.' - OpenAI.ChatCompletionFunctions: + description: The name of the grader. + source: + type: string + description: The source code of the python script. + image_tag: + type: string + description: The image tag to use for the python script. + pass_threshold: + type: number + description: The threshold for the score. + title: EvalGraderPython + OpenAI.EvalGraderScoreModel: type: object required: + - type - name + - model + - input properties: - description: + type: type: string - description: A description of what the function does, used by the model to choose when and how to call the function. + enum: + - score_model + description: The object type, which is always `score_model`. + x-stainless-const: true name: type: string - description: The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. - parameters: - description: |- - The parameters the functions accepts, described as a JSON Schema object. - See the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) - for documentation about the format. - - Omitting `parameters` defines a function with an empty parameter list. - deprecated: true - OpenAI.ChatCompletionMessageAudioChunk: + description: The name of the grader. + model: + type: string + description: The model to use for the evaluation. + sampling_params: + allOf: + - $ref: '#/components/schemas/OpenAI.EvalGraderScoreModelSamplingParams' + description: The sampling parameters for the model. + input: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalItem' + description: The input text. This may include template strings. + range: + type: array + items: + type: number + description: The range of the score. Defaults to `[0, 1]`. + pass_threshold: + type: number + description: The threshold for the score. + title: EvalGraderScoreModel + OpenAI.EvalGraderScoreModelSamplingParams: type: object properties: - id: - type: string - transcript: - type: string - data: - type: string - format: base64 - expires_at: - type: integer - format: unixtime - OpenAI.ChatCompletionMessageToolCall: + seed: + anyOf: + - type: integer + - type: 'null' + top_p: + anyOf: + - type: number + - type: 'null' + default: 1 + temperature: + anyOf: + - type: number + - type: 'null' + max_completions_tokens: + anyOf: + - type: integer + - type: 'null' + reasoning_effort: + $ref: '#/components/schemas/OpenAI.ReasoningEffort' + OpenAI.EvalGraderStringCheck: type: object required: - - id - type - - function + - name + - input + - reference + - operation properties: - id: - type: string - description: The ID of the tool call. type: type: string enum: - - function - description: The type of the tool. Currently, only `function` is supported. - function: - type: object - properties: - name: - type: string - description: The name of the function to call. - arguments: - type: string - description: The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function. - required: - - name - - arguments - description: The function that the model called. - OpenAI.ChatCompletionMessageToolCallChunk: - type: object - required: - - index - properties: - index: - type: integer - format: int32 - id: + - string_check + description: The object type, which is always `string_check`. + x-stainless-const: true + name: type: string - description: The ID of the tool call. - type: + description: The name of the grader. + input: + type: string + description: The input text. This may include template strings. + reference: + type: string + description: The reference text. This may include template strings. + operation: type: string enum: - - function - description: The type of the tool. Currently, only `function` is supported. - function: - type: object - properties: - name: - type: string - description: The name of the function to call. - arguments: - type: string - description: The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function. - OpenAI.ChatCompletionNamedToolChoice: + - eq + - ne + - like + - ilike + description: The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`. + title: StringCheckGrader + OpenAI.EvalGraderTextSimilarity: type: object required: - type - - function + - name + - input + - reference + - evaluation_metric + - pass_threshold properties: type: type: string enum: - - function - description: The type of the tool. Currently, only `function` is supported. - function: - type: object - properties: - name: - type: string - description: The name of the function to call. - required: - - name - description: Specifies a tool the model should use. Use to force the model to call a specific function. - OpenAI.ChatCompletionRequestAssistantMessage: - type: object - required: - - role - properties: - content: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessageContentPart' - nullable: true - description: The contents of the assistant message. Required unless `tool_calls` or `function_call` is specified. - refusal: + - text_similarity + description: The type of grader. + x-stainless-const: true + default: text_similarity + name: type: string - nullable: true - description: The refusal message by the assistant. - role: + description: The name of the grader. + input: type: string - enum: - - assistant - description: The role of the messages author, in this case `assistant`. - name: + description: The text being graded. + reference: type: string - description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. - audio: - type: object - properties: - id: - type: string - description: Unique identifier for a previous audio response from the model. - required: - - id - nullable: true - description: Data about a previous audio response from the model. - tool_calls: - $ref: '#/components/schemas/ChatCompletionMessageToolCallsItem' - function_call: - type: object - properties: - name: - type: string - arguments: - type: string - required: - - name - - arguments - nullable: true - description: Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model. - deprecated: true - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' - description: Messages sent by the model in response to user messages. - OpenAI.ChatCompletionRequestAssistantMessageContentPart: - anyOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartRefusal' - OpenAI.ChatCompletionRequestDeveloperMessage: + description: The text being graded against. + evaluation_metric: + type: string + enum: + - cosine + - fuzzy_match + - bleu + - gleu + - meteor + - rouge_1 + - rouge_2 + - rouge_3 + - rouge_4 + - rouge_5 + - rouge_l + description: |- + The evaluation metric to use. One of `cosine`, `fuzzy_match`, `bleu`, + `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, + or `rouge_l`. + pass_threshold: + type: number + description: The threshold for the score. + title: EvalGraderTextSimilarity + OpenAI.EvalItem: type: object required: - - content - role + - content properties: + role: + type: string + enum: + - user + - assistant + - system + - developer + description: |- + The role of the message input. One of `user`, `assistant`, `system`, or + `developer`. content: anyOf: - type: string + - $ref: '#/components/schemas/OpenAI.InputTextContent' + - $ref: '#/components/schemas/OpenAI.EvalItemContentOutputText' + - $ref: '#/components/schemas/OpenAI.EvalItemContentInputImage' + - $ref: '#/components/schemas/OpenAI.InputAudio' - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - description: The contents of the developer message. - role: + items: {} + description: Inputs to the model - can contain template strings. + type: type: string enum: - - developer - description: The role of the messages author, in this case `developer`. - name: - type: string - description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' + - message + description: The type of the message input. Always `message`. + x-stainless-const: true description: |- - Developer-provided instructions that the model should follow, regardless of - messages sent by the user. With o1 models and newer, `developer` messages - replace the previous `system` messages. - OpenAI.ChatCompletionRequestFunctionMessage: + A message input to the model with a role indicating instruction following + hierarchy. Instructions given with the `developer` or `system` role take + precedence over instructions given with the `user` role. Messages with the + `assistant` role are presumed to have been generated by the model in previous + interactions. + title: EvalItem + OpenAI.EvalItemContentInputImage: type: object required: - - role - - content - - name + - type + - image_url properties: - role: + type: type: string enum: - - function - description: The role of the messages author, in this case `function`. - content: + - input_image + x-stainless-const: true + image_url: type: string - nullable: true - description: The contents of the function message. - name: + detail: type: string - description: The name of the function to call. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' - deprecated: true - OpenAI.ChatCompletionRequestMessage: - type: object - required: - - role - properties: - role: - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRole' - description: The role of the author of this message. - content: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart' - nullable: true - description: The content of the message. Valid content part types vary per message role. - discriminator: - propertyName: role - mapping: - system: '#/components/schemas/OpenAI.ChatCompletionRequestSystemMessage' - developer: '#/components/schemas/OpenAI.ChatCompletionRequestDeveloperMessage' - user: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessage' - assistant: '#/components/schemas/OpenAI.ChatCompletionRequestAssistantMessage' - tool: '#/components/schemas/OpenAI.ChatCompletionRequestToolMessage' - function: '#/components/schemas/OpenAI.ChatCompletionRequestFunctionMessage' - OpenAI.ChatCompletionRequestMessageContentPart: + OpenAI.EvalItemContentOutputText: type: object required: - type + - text properties: type: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartType' - discriminator: - propertyName: type - mapping: - text: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - image_url: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImage' - refusal: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartRefusal' - file: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFile' - input_audio: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudio' - OpenAI.ChatCompletionRequestMessageContentPartAudio: + type: string + enum: + - output_text + x-stainless-const: true + text: + type: string + OpenAI.EvalJsonlFileContentSource: type: object required: - type - - input_audio + - content properties: type: type: string enum: - - input_audio - description: The type of the content part. Always `input_audio`. - input_audio: + - file_content + description: The type of jsonl source. Always `file_content`. + x-stainless-const: true + default: file_content + content: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalJsonlFileContentSourceContent' + description: The content of the jsonl file. + title: EvalJsonlFileContentSource + OpenAI.EvalJsonlFileContentSourceContent: + type: object + required: + - item + properties: + item: type: object - properties: - data: - type: string - format: base64 - description: Base64 encoded audio data. - format: - type: string - enum: - - wav - - mp3 - description: The format of the encoded audio data. Currently supports "wav" and "mp3". - required: - - data - - format - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart' - description: '' - OpenAI.ChatCompletionRequestMessageContentPartFile: + unevaluatedProperties: {} + sample: + type: object + unevaluatedProperties: {} + OpenAI.EvalJsonlFileIdSource: type: object required: - type - - file + - id properties: type: type: string enum: - - file - description: The type of the content part. Always `file`. - file: - type: object - properties: - filename: - type: string - description: |- - The name of the file, used when passing the file to the model as a - string. - file_data: - type: string - description: |- - The base64 encoded file data, used when passing the file to the model - as a string. - file_id: - type: string - description: The ID of an uploaded file to use as input. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart' - description: Learn about [file inputs](/docs/guides/text) for text generation. - OpenAI.ChatCompletionRequestMessageContentPartImage: + - file_id + description: The type of jsonl source. Always `file_id`. + x-stainless-const: true + default: file_id + id: + type: string + description: The identifier of the file. + title: EvalJsonlFileIdSource + OpenAI.EvalList: type: object required: - - type - - image_url + - object + - data + - first_id + - last_id + - has_more properties: - type: + object: type: string enum: - - image_url - description: The type of the content part. - image_url: - type: object - properties: - url: - type: string - format: uri - description: Either a URL of the image or the base64 encoded image data. - detail: - type: string - enum: - - auto - - low - - high - description: Specifies the detail level of the image. Learn more in the [Vision guide](/docs/guides/vision#low-or-high-fidelity-image-understanding). - default: auto - required: - - url - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart' - description: '' - OpenAI.ChatCompletionRequestMessageContentPartRefusal: + - list + description: The type of this object. It is always set to "list". + x-stainless-const: true + default: list + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.Eval' + description: An array of eval objects. + first_id: + type: string + description: The identifier of the first eval in the data array. + last_id: + type: string + description: The identifier of the last eval in the data array. + has_more: + type: boolean + description: Indicates whether there are more evals available. + description: An object representing a list of evals. + title: EvalList + x-oaiMeta: + name: The eval list object + group: evals + example: | + { + "object": "list", + "data": [ + { + "object": "eval", + "id": "eval_67abd54d9b0081909a86353f6fb9317a", + "data_source_config": { + "type": "custom", + "schema": { + "type": "object", + "properties": { + "item": { + "type": "object", + "properties": { + "input": { + "type": "string" + }, + "ground_truth": { + "type": "string" + } + }, + "required": [ + "input", + "ground_truth" + ] + } + }, + "required": [ + "item" + ] + } + }, + "testing_criteria": [ + { + "name": "String check", + "id": "String check-2eaf2d8d-d649-4335-8148-9535a7ca73c2", + "type": "string_check", + "input": "{{item.input}}", + "reference": "{{item.ground_truth}}", + "operation": "eq" + } + ], + "name": "External Data Eval", + "created_at": 1739314509, + "metadata": {}, + } + ], + "first_id": "eval_67abd54d9b0081909a86353f6fb9317a", + "last_id": "eval_67abd54d9b0081909a86353f6fb9317a", + "has_more": true + } + OpenAI.EvalLogsDataSourceConfig: type: object required: - type - - refusal + - schema properties: type: type: string enum: - - refusal - description: The type of the content part. - refusal: - type: string - description: The refusal message generated by the model. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart' - OpenAI.ChatCompletionRequestMessageContentPartText: + - logs + description: The type of data source. Always `logs`. + x-stainless-const: true + default: logs + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + schema: + type: object + unevaluatedProperties: {} + description: |- + The json schema for the run data source items. + Learn how to build JSON schemas [here](https://json-schema.org/). + description: |- + A LogsDataSourceConfig which specifies the metadata property of your logs query. + This is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc. + The schema returned by this data source config is used to defined what variables are available in your evals. + `item` and `sample` are both defined when using this data source config. + title: LogsDataSourceConfig + x-oaiMeta: + name: The logs data source object for evals + group: evals + example: | + { + "type": "logs", + "metadata": { + "language": "english" + }, + "schema": { + "type": "object", + "properties": { + "item": { + "type": "object" + }, + "sample": { + "type": "object" + } + }, + "required": [ + "item", + "sample" + } + } + OpenAI.EvalResponsesSource: type: object required: - type - - text properties: type: type: string enum: - - text - description: The type of the content part. - text: - type: string - description: The text content. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPart' - description: '' - OpenAI.ChatCompletionRequestMessageContentPartType: - type: string - enum: - - text - - file - - input_audio - - image_url - - refusal - OpenAI.ChatCompletionRequestSystemMessage: + - responses + description: The type of run data source. Always `responses`. + metadata: + anyOf: + - type: object + unevaluatedProperties: {} + - type: 'null' + model: + anyOf: + - type: string + - type: 'null' + instructions_search: + anyOf: + - type: string + - type: 'null' + created_after: + anyOf: + - type: integer + - type: 'null' + created_before: + anyOf: + - type: integer + - type: 'null' + reasoning_effort: + anyOf: + - $ref: '#/components/schemas/OpenAI.ReasoningEffort' + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + top_p: + anyOf: + - type: number + - type: 'null' + users: + anyOf: + - type: array + items: + type: string + - type: 'null' + tools: + anyOf: + - type: array + items: + type: string + - type: 'null' + description: A EvalResponsesSource object describing a run data source configuration. + title: EvalResponsesSource + x-oaiMeta: + name: The run data source object used to configure an individual run + group: eval runs + example: | + { + "type": "responses", + "model": "gpt-4o-mini-2024-07-18", + "temperature": 0.7, + "top_p": 1.0, + "users": ["user1", "user2"], + "tools": ["tool1", "tool2"], + "instructions_search": "You are a coding assistant" + } + OpenAI.EvalRun: type: object required: - - content - - role + - object + - id + - eval_id + - status + - model + - name + - created_at + - report_url + - result_counts + - per_model_usage + - per_testing_criteria_results + - data_source + - metadata + - error properties: - content: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestSystemMessageContentPart' - description: The contents of the system message. - role: + object: type: string enum: - - system - description: The role of the messages author, in this case `system`. + - eval.run + description: The type of the object. Always "eval.run". + x-stainless-const: true + default: eval.run + id: + type: string + description: Unique identifier for the evaluation run. + eval_id: + type: string + description: The identifier of the associated evaluation. + status: + type: string + description: The status of the evaluation run. + model: + type: string + description: The model that is evaluated, if applicable. name: type: string - description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' - description: |- - Developer-provided instructions that the model should follow, regardless of - messages sent by the user. With o1 models and newer, use `developer` messages - for this purpose instead. - OpenAI.ChatCompletionRequestSystemMessageContentPart: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - OpenAI.ChatCompletionRequestToolMessage: + description: The name of the evaluation run. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) when the evaluation run was created. + report_url: + type: string + description: The URL to the rendered evaluation run report on the UI dashboard. + result_counts: + allOf: + - $ref: '#/components/schemas/OpenAI.EvalRunResultCounts' + description: Counters summarizing the outcomes of the evaluation run. + per_model_usage: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalRunPerModelUsage' + description: Usage statistics for each model during the evaluation run. + per_testing_criteria_results: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalRunPerTestingCriteriaResults' + description: Results per testing criteria applied during the evaluation run. + data_source: + anyOf: + - $ref: '#/components/schemas/OpenAI.CreateEvalJsonlRunDataSource' + - $ref: '#/components/schemas/OpenAI.CreateEvalCompletionsRunDataSource' + - $ref: '#/components/schemas/OpenAI.CreateEvalResponsesRunDataSource' + description: Information about the run's data source. + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + error: + $ref: '#/components/schemas/OpenAI.EvalApiError' + description: A schema representing an evaluation run. + title: EvalRun + x-oaiMeta: + name: The eval run object + group: evals + example: | + { + "object": "eval.run", + "id": "evalrun_67e57965b480819094274e3a32235e4c", + "eval_id": "eval_67e579652b548190aaa83ada4b125f47", + "report_url": "https://platform.openai.com/evaluations/eval_67e579652b548190aaa83ada4b125f47?run_id=evalrun_67e57965b480819094274e3a32235e4c", + "status": "queued", + "model": "gpt-4o-mini", + "name": "gpt-4o-mini", + "created_at": 1743092069, + "result_counts": { + "total": 0, + "errored": 0, + "failed": 0, + "passed": 0 + }, + "per_model_usage": null, + "per_testing_criteria_results": null, + "data_source": { + "type": "completions", + "source": { + "type": "file_content", + "content": [ + { + "item": { + "input": "Tech Company Launches Advanced Artificial Intelligence Platform", + "ground_truth": "Technology" + } + }, + { + "item": { + "input": "Central Bank Increases Interest Rates Amid Inflation Concerns", + "ground_truth": "Markets" + } + }, + { + "item": { + "input": "International Summit Addresses Climate Change Strategies", + "ground_truth": "World" + } + }, + { + "item": { + "input": "Major Retailer Reports Record-Breaking Holiday Sales", + "ground_truth": "Business" + } + }, + { + "item": { + "input": "National Team Qualifies for World Championship Finals", + "ground_truth": "Sports" + } + }, + { + "item": { + "input": "Stock Markets Rally After Positive Economic Data Released", + "ground_truth": "Markets" + } + }, + { + "item": { + "input": "Global Manufacturer Announces Merger with Competitor", + "ground_truth": "Business" + } + }, + { + "item": { + "input": "Breakthrough in Renewable Energy Technology Unveiled", + "ground_truth": "Technology" + } + }, + { + "item": { + "input": "World Leaders Sign Historic Climate Agreement", + "ground_truth": "World" + } + }, + { + "item": { + "input": "Professional Athlete Sets New Record in Championship Event", + "ground_truth": "Sports" + } + }, + { + "item": { + "input": "Financial Institutions Adapt to New Regulatory Requirements", + "ground_truth": "Business" + } + }, + { + "item": { + "input": "Tech Conference Showcases Advances in Artificial Intelligence", + "ground_truth": "Technology" + } + }, + { + "item": { + "input": "Global Markets Respond to Oil Price Fluctuations", + "ground_truth": "Markets" + } + }, + { + "item": { + "input": "International Cooperation Strengthened Through New Treaty", + "ground_truth": "World" + } + }, + { + "item": { + "input": "Sports League Announces Revised Schedule for Upcoming Season", + "ground_truth": "Sports" + } + } + ] + }, + "input_messages": { + "type": "template", + "template": [ + { + "type": "message", + "role": "developer", + "content": { + "type": "input_text", + "text": "Categorize a given news headline into one of the following topics: Technology, Markets, World, Business, or Sports.\n\n# Steps\n\n1. Analyze the content of the news headline to understand its primary focus.\n2. Extract the subject matter, identifying any key indicators or keywords.\n3. Use the identified indicators to determine the most suitable category out of the five options: Technology, Markets, World, Business, or Sports.\n4. Ensure only one category is selected per headline.\n\n# Output Format\n\nRespond with the chosen category as a single word. For instance: \"Technology\", \"Markets\", \"World\", \"Business\", or \"Sports\".\n\n# Examples\n\n**Input**: \"Apple Unveils New iPhone Model, Featuring Advanced AI Features\" \n**Output**: \"Technology\"\n\n**Input**: \"Global Stocks Mixed as Investors Await Central Bank Decisions\" \n**Output**: \"Markets\"\n\n**Input**: \"War in Ukraine: Latest Updates on Negotiation Status\" \n**Output**: \"World\"\n\n**Input**: \"Microsoft in Talks to Acquire Gaming Company for $2 Billion\" \n**Output**: \"Business\"\n\n**Input**: \"Manchester United Secures Win in Premier League Football Match\" \n**Output**: \"Sports\" \n\n# Notes\n\n- If the headline appears to fit into more than one category, choose the most dominant theme.\n- Keywords or phrases such as \"stocks\", \"company acquisition\", \"match\", or technological brands can be good indicators for classification.\n" + } + }, + { + "type": "message", + "role": "user", + "content": { + "type": "input_text", + "text": "{{item.input}}" + } + } + ] + }, + "model": "gpt-4o-mini", + "sampling_params": { + "seed": 42, + "temperature": 1.0, + "top_p": 1.0, + "max_completions_tokens": 2048 + } + }, + "error": null, + "metadata": {} + } + OpenAI.EvalRunList: type: object required: - - role - - content - - tool_call_id + - object + - data + - first_id + - last_id + - has_more properties: - role: + object: type: string enum: - - tool - description: The role of the messages author, in this case `tool`. - content: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestToolMessageContentPart' - description: The contents of the tool message. - tool_call_id: + - list + description: The type of this object. It is always set to "list". + x-stainless-const: true + default: list + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalRun' + description: An array of eval run objects. + first_id: type: string - description: Tool call that this message is responding to. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' - OpenAI.ChatCompletionRequestToolMessageContentPart: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - OpenAI.ChatCompletionRequestUserMessage: + description: The identifier of the first eval run in the data array. + last_id: + type: string + description: The identifier of the last eval run in the data array. + has_more: + type: boolean + description: Indicates whether there are more evals available. + description: An object representing a list of runs for an evaluation. + title: EvalRunList + x-oaiMeta: + name: The eval run list object + group: evals + example: | + { + "object": "list", + "data": [ + { + "object": "eval.run", + "id": "evalrun_67b7fbdad46c819092f6fe7a14189620", + "eval_id": "eval_67b7fa9a81a88190ab4aa417e397ea21", + "report_url": "https://platform.openai.com/evaluations/eval_67b7fa9a81a88190ab4aa417e397ea21?run_id=evalrun_67b7fbdad46c819092f6fe7a14189620", + "status": "completed", + "model": "o3-mini", + "name": "Academic Assistant", + "created_at": 1740110812, + "result_counts": { + "total": 171, + "errored": 0, + "failed": 80, + "passed": 91 + }, + "per_model_usage": null, + "per_testing_criteria_results": [ + { + "testing_criteria": "String check grader", + "passed": 91, + "failed": 80 + } + ], + "run_data_source": { + "type": "completions", + "template_messages": [ + { + "type": "message", + "role": "system", + "content": { + "type": "input_text", + "text": "You are a helpful assistant." + } + }, + { + "type": "message", + "role": "user", + "content": { + "type": "input_text", + "text": "Hello, can you help me with my homework?" + } + } + ], + "datasource_reference": null, + "model": "o3-mini", + "max_completion_tokens": null, + "seed": null, + "temperature": null, + "top_p": null + }, + "error": null, + "metadata": {"test": "synthetics"} + } + ], + "first_id": "evalrun_67abd54d60ec8190832b46859da808f7", + "last_id": "evalrun_67abd54d60ec8190832b46859da808f7", + "has_more": false + } + OpenAI.EvalRunOutputItem: type: object required: - - content - - role + - object + - id + - run_id + - eval_id + - created_at + - status + - datasource_item_id + - datasource_item + - results + - sample properties: - content: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestUserMessageContentPart' - description: The contents of the user message. - role: + object: type: string enum: - - user - description: The role of the messages author, in this case `user`. - name: + - eval.run.output_item + description: The type of the object. Always "eval.run.output_item". + x-stainless-const: true + default: eval.run.output_item + id: type: string - description: An optional name for the participant. Provides the model information to differentiate between participants of the same role. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessage' - description: |- - Messages sent by an end user, containing prompts or additional context - information. - OpenAI.ChatCompletionRequestUserMessageContentPart: - anyOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartImage' - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartAudio' - - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartFile' - OpenAI.ChatCompletionRole: - type: string - enum: - - system - - developer - - user - - assistant - - tool - - function - description: The role of the author of a message - OpenAI.ChatCompletionStreamOptions: - type: object - properties: - include_usage: - type: boolean - description: |- - If set, an additional chunk will be streamed before the `data: [DONE]` - message. The `usage` field on this chunk shows the token usage statistics - for the entire request, and the `choices` field will always be an empty - array. - - All other chunks will also include a `usage` field, but with a null - value. **NOTE:** If the stream is interrupted, you may not receive the - final usage chunk which contains the total token usage for the request. - description: 'Options for streaming response. Only set this when you set `stream: true`.' - OpenAI.ChatCompletionStreamResponseDelta: - type: object - properties: - audio: - allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageAudioChunk' - description: Response audio associated with the streaming chat delta payload. - content: + description: Unique identifier for the evaluation run output item. + run_id: type: string - nullable: true - description: The contents of the chunk message. - function_call: + description: The identifier of the evaluation run associated with this output item. + eval_id: + type: string + description: The identifier of the evaluation group. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) when the evaluation run was created. + status: + type: string + description: The status of the evaluation run. + datasource_item_id: + type: integer + description: The identifier for the data source item. + datasource_item: type: object - properties: - name: - type: string - arguments: - type: string - description: Deprecated and replaced by `tool_calls`. The name and arguments of a function that should be called, as generated by the model. - deprecated: true - tool_calls: + unevaluatedProperties: {} + description: Details of the input data source item. + results: type: array items: - $ref: '#/components/schemas/OpenAI.ChatCompletionMessageToolCallChunk' - readOnly: true - role: + $ref: '#/components/schemas/OpenAI.EvalRunOutputItemResult' + description: A list of grader results for this output item. + sample: allOf: - - $ref: '#/components/schemas/OpenAI.ChatCompletionRole' - description: The role of the author of this message. - refusal: - type: string - nullable: true - description: The refusal message generated by the model. - description: A chat completion delta generated by streamed model responses. - OpenAI.ChatCompletionTokenLogprob: + - $ref: '#/components/schemas/OpenAI.EvalRunOutputItemSample' + description: A sample containing the input and output of the evaluation run. + description: A schema representing an evaluation run output item. + title: EvalRunOutputItem + x-oaiMeta: + name: The eval run output item object + group: evals + example: | + { + "object": "eval.run.output_item", + "id": "outputitem_67abd55eb6548190bb580745d5644a33", + "run_id": "evalrun_67abd54d60ec8190832b46859da808f7", + "eval_id": "eval_67abd54d9b0081909a86353f6fb9317a", + "created_at": 1739314509, + "status": "pass", + "datasource_item_id": 137, + "datasource_item": { + "teacher": "To grade essays, I only check for style, content, and grammar.", + "student": "I am a student who is trying to write the best essay." + }, + "results": [ + { + "name": "String Check Grader", + "type": "string-check-grader", + "score": 1.0, + "passed": true, + } + ], + "sample": { + "input": [ + { + "role": "system", + "content": "You are an evaluator bot..." + }, + { + "role": "user", + "content": "You are assessing..." + } + ], + "output": [ + { + "role": "assistant", + "content": "The rubric is not clear nor concise." + } + ], + "finish_reason": "stop", + "model": "gpt-4o-2024-08-06", + "usage": { + "total_tokens": 521, + "completion_tokens": 2, + "prompt_tokens": 519, + "cached_tokens": 0 + }, + "error": null, + "temperature": 1.0, + "max_completion_tokens": 2048, + "top_p": 1.0, + "seed": 42 + } + } + OpenAI.EvalRunOutputItemList: type: object required: - - token - - logprob - - bytes - - top_logprobs + - object + - data + - first_id + - last_id + - has_more properties: - token: + object: type: string - description: The token. - logprob: - type: number - format: float - description: The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely. - bytes: - type: array - items: - type: integer - format: int32 - nullable: true - description: A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token. - top_logprobs: + enum: + - list + description: The type of this object. It is always set to "list". + x-stainless-const: true + default: list + data: type: array items: - type: object - properties: - token: - type: string - description: The token. - logprob: - type: number - format: float - description: The log probability of this token, if it is within the top 20 most likely tokens. Otherwise, the value `-9999.0` is used to signify that the token is very unlikely. - bytes: - type: array - items: - type: integer - format: int32 - nullable: true - description: A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token. - required: - - token - - logprob - - bytes - description: List of the most likely tokens and their log probability, at this token position. In rare cases, there may be fewer than the number of requested `top_logprobs` returned. - OpenAI.ChatCompletionTool: + $ref: '#/components/schemas/OpenAI.EvalRunOutputItem' + description: An array of eval run output item objects. + first_id: + type: string + description: The identifier of the first eval run output item in the data array. + last_id: + type: string + description: The identifier of the last eval run output item in the data array. + has_more: + type: boolean + description: Indicates whether there are more eval run output items available. + description: An object representing a list of output items for an evaluation run. + title: EvalRunOutputItemList + x-oaiMeta: + name: The eval run output item list object + group: evals + example: | + { + "object": "list", + "data": [ + { + "object": "eval.run.output_item", + "id": "outputitem_67abd55eb6548190bb580745d5644a33", + "run_id": "evalrun_67abd54d60ec8190832b46859da808f7", + "eval_id": "eval_67abd54d9b0081909a86353f6fb9317a", + "created_at": 1739314509, + "status": "pass", + "datasource_item_id": 137, + "datasource_item": { + "teacher": "To grade essays, I only check for style, content, and grammar.", + "student": "I am a student who is trying to write the best essay." + }, + "results": [ + { + "name": "String Check Grader", + "type": "string-check-grader", + "score": 1.0, + "passed": true, + } + ], + "sample": { + "input": [ + { + "role": "system", + "content": "You are an evaluator bot..." + }, + { + "role": "user", + "content": "You are assessing..." + } + ], + "output": [ + { + "role": "assistant", + "content": "The rubric is not clear nor concise." + } + ], + "finish_reason": "stop", + "model": "gpt-4o-2024-08-06", + "usage": { + "total_tokens": 521, + "completion_tokens": 2, + "prompt_tokens": 519, + "cached_tokens": 0 + }, + "error": null, + "temperature": 1.0, + "max_completion_tokens": 2048, + "top_p": 1.0, + "seed": 42 + } + }, + ], + "first_id": "outputitem_67abd55eb6548190bb580745d5644a33", + "last_id": "outputitem_67abd55eb6548190bb580745d5644a33", + "has_more": false + } + OpenAI.EvalRunOutputItemResult: type: object required: - - type - - function + - name + - score + - passed properties: + name: + type: string + description: The name of the grader. type: type: string - enum: - - function - description: The type of the tool. Currently, only `function` is supported. - function: - $ref: '#/components/schemas/OpenAI.FunctionObject' - OpenAI.ChatCompletionToolChoiceOption: - anyOf: - - type: string - enum: - - none - - auto - - required - - $ref: '#/components/schemas/OpenAI.ChatCompletionNamedToolChoice' - description: |- - Controls which (if any) tool is called by the model. - `none` means the model will not call any tool and instead generates a message. - `auto` means the model can pick between generating a message or calling one or more tools. - `required` means the model must call one or more tools. - Specifying a particular tool via `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. - - `none` is the default when no tools are present. `auto` is the default if tools are present. - OpenAI.ChatOutputPrediction: + description: The grader type (for example, "string-check-grader"). + score: + type: number + description: The numeric score produced by the grader. + passed: + type: boolean + description: Whether the grader considered the output a pass. + sample: + anyOf: + - type: object + unevaluatedProperties: {} + - type: 'null' + description: Optional sample or intermediate data produced by the grader. + description: A single grader result for an evaluation run output item. + title: EvalRunOutputItemResult + OpenAI.EvalRunOutputItemSample: type: object required: - - type + - input + - output + - finish_reason + - model + - usage + - error + - temperature + - max_completion_tokens + - top_p + - seed properties: - type: - $ref: '#/components/schemas/OpenAI.ChatOutputPredictionType' - discriminator: - propertyName: type - mapping: - content: '#/components/schemas/OpenAI.ChatOutputPredictionContent' - description: Base representation of predicted output from a model. - OpenAI.ChatOutputPredictionContent: + input: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalRunOutputItemSampleInput' + output: + type: array + items: + $ref: '#/components/schemas/OpenAI.EvalRunOutputItemSampleOutput' + finish_reason: + type: string + model: + type: string + usage: + $ref: '#/components/schemas/OpenAI.EvalRunOutputItemSampleUsage' + error: + $ref: '#/components/schemas/OpenAI.EvalApiError' + temperature: + type: number + max_completion_tokens: + type: integer + top_p: + type: number + seed: + type: integer + OpenAI.EvalRunOutputItemSampleInput: type: object required: - - type + - role - content properties: - type: + role: type: string - enum: - - content - description: |- - The type of the predicted content you want to provide. This type is - currently always `content`. content: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' - description: |- - The content that should be matched when generating a model response. - If generated tokens would match this content, the entire model response - can be returned much more quickly. - allOf: - - $ref: '#/components/schemas/OpenAI.ChatOutputPrediction' - description: |- - Static predicted output content, such as the content of a text file that is - being regenerated. - OpenAI.ChatOutputPredictionType: - anyOf: - - type: string - - type: string - enum: - - content - OpenAI.ChunkingStrategyRequestParam: + type: string + OpenAI.EvalRunOutputItemSampleOutput: + type: object + properties: + role: + type: string + content: + type: string + OpenAI.EvalRunOutputItemSampleUsage: type: object required: - - type + - total_tokens + - completion_tokens + - prompt_tokens + - cached_tokens properties: - type: + total_tokens: + type: integer + completion_tokens: + type: integer + prompt_tokens: + type: integer + cached_tokens: + type: integer + OpenAI.EvalRunPerModelUsage: + type: object + required: + - model_name + - invocation_count + - prompt_tokens + - completion_tokens + - total_tokens + - cached_tokens + properties: + model_name: type: string - enum: - - auto - - static - description: The type of chunking strategy. - discriminator: - propertyName: type - mapping: - static: '#/components/schemas/OpenAI.StaticChunkingStrategyRequestParam' - description: The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. - OpenAI.ChunkingStrategyResponseParam: + x-stainless-naming: + python: + property_name: run_model_name + invocation_count: + type: integer + prompt_tokens: + type: integer + completion_tokens: + type: integer + total_tokens: + type: integer + cached_tokens: + type: integer + OpenAI.EvalRunPerTestingCriteriaResults: type: object required: - - type + - testing_criteria + - passed + - failed properties: - type: + testing_criteria: type: string - enum: - - static - - other - discriminator: - propertyName: type - mapping: - other: '#/components/schemas/OpenAI.OtherChunkingStrategyResponseParam' - static: '#/components/schemas/OpenAI.StaticChunkingStrategyResponseParam' - OpenAI.CodeInterpreterOutput: + passed: + type: integer + failed: + type: integer + OpenAI.EvalRunResultCounts: type: object required: - - type + - total + - errored + - failed + - passed properties: - type: - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputType' - discriminator: - propertyName: type - mapping: - image: '#/components/schemas/OpenAI.CodeInterpreterOutputImage' - logs: '#/components/schemas/OpenAI.CodeInterpreterOutputLogs' - OpenAI.CodeInterpreterOutputImage: + total: + type: integer + errored: + type: integer + failed: + type: integer + passed: + type: integer + OpenAI.EvalStoredCompletionsDataSourceConfig: type: object required: - type - - url + - schema properties: type: type: string enum: - - image - description: The type of the output. Always 'image'. - url: - type: string - format: uri - description: The URL of the image output from the code interpreter. - allOf: - - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutput' - description: The image output from the code interpreter. - OpenAI.CodeInterpreterOutputLogs: + - stored_completions + description: The type of data source. Always `stored_completions`. + x-stainless-const: true + default: stored_completions + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + schema: + type: object + unevaluatedProperties: {} + description: |- + The json schema for the run data source items. + Learn how to build JSON schemas [here](https://json-schema.org/). + description: Deprecated in favor of LogsDataSourceConfig. + title: StoredCompletionsDataSourceConfig + x-oaiMeta: + name: The stored completions data source object for evals + group: evals + example: | + { + "type": "stored_completions", + "metadata": { + "language": "english" + }, + "schema": { + "type": "object", + "properties": { + "item": { + "type": "object" + }, + "sample": { + "type": "object" + } + }, + "required": [ + "item", + "sample" + } + } + OpenAI.EvalStoredCompletionsSource: type: object required: - type - - logs properties: type: type: string enum: - - logs - description: The type of the output. Always 'logs'. - logs: - type: string - description: The logs output from the code interpreter. - allOf: - - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutput' - description: The logs output from the code interpreter. - OpenAI.CodeInterpreterOutputType: - type: string - enum: - - logs - - image - OpenAI.CodeInterpreterTool: + - stored_completions + description: The type of source. Always `stored_completions`. + x-stainless-const: true + default: stored_completions + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + model: + anyOf: + - type: string + - type: 'null' + created_after: + anyOf: + - type: integer + - type: 'null' + created_before: + anyOf: + - type: integer + - type: 'null' + limit: + anyOf: + - type: integer + - type: 'null' + description: A StoredCompletionsRunDataSource configuration describing a set of filters + title: StoredCompletionsRunDataSource + x-oaiMeta: + name: The stored completions data source object used to configure an individual run + group: eval runs + example: | + { + "type": "stored_completions", + "model": "gpt-4o", + "created_after": 1668124800, + "created_before": 1668124900, + "limit": 100, + "metadata": {} + } + OpenAI.FileCitationBody: type: object required: - type - - container + - file_id + - index + - filename properties: type: type: string enum: - - code_interpreter - description: The type of the code interpreter tool. Always `code_interpreter`. - container: - anyOf: - - type: string - - $ref: '#/components/schemas/OpenAI.CodeInterpreterToolAuto' - description: |- - The code interpreter container. Can be a container ID or an object that - specifies uploaded file IDs to make available to your code. + - file_citation + description: The type of the file citation. Always `file_citation`. + x-stainless-const: true + default: file_citation + file_id: + type: string + description: The ID of the file. + index: + type: integer + description: The index of the file in the list of files. + filename: + type: string + description: The filename of the file cited. allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: A tool that runs Python code to help generate a response to a prompt. - OpenAI.CodeInterpreterToolAuto: + - $ref: '#/components/schemas/OpenAI.Annotation' + description: A citation to a file. + title: File citation + OpenAI.FilePath: type: object required: - type + - file_id + - index properties: type: type: string enum: - - auto - description: Always `auto`. - file_ids: - type: array - items: - type: string - description: An optional list of uploaded files to make available to your code. + - file_path + description: The type of the file path. Always `file_path`. + x-stainless-const: true + file_id: + type: string + description: The ID of the file. + index: + type: integer + description: The index of the file in the list of files. + allOf: + - $ref: '#/components/schemas/OpenAI.Annotation' + description: A path to a file. + title: File path + OpenAI.FileSearchRanker: + type: string + enum: + - auto + - default_2024_08_21 + description: The ranker to use for the file search. If not specified will use the `auto` ranker. + OpenAI.FileSearchRankingOptions: + type: object + required: + - score_threshold + properties: + ranker: + $ref: '#/components/schemas/OpenAI.FileSearchRanker' + score_threshold: + type: number + minimum: 0 + maximum: 1 + description: The score threshold for the file search. All values must be a floating point number between 0 and 1. description: |- - Configuration for a code interpreter container. Optionally specify the IDs - of the files to run the code on. - OpenAI.CodeInterpreterToolCallItemParam: + The ranking options for the file search. If not specified, the file search tool will use the `auto` ranker and a score_threshold of 0. + + See the [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings) for more information. + title: File search tool call ranking options + OpenAI.FileSearchTool: type: object required: - type - - container_id - - code - - outputs + - vector_store_ids properties: type: type: string enum: - - code_interpreter_call - container_id: - type: string - description: The ID of the container used to run the code. - code: - type: string - nullable: true - description: The code to run, or null if not available. - outputs: + - file_search + description: The type of the file search tool. Always `file_search`. + x-stainless-const: true + default: file_search + vector_store_ids: type: array items: - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutput' - nullable: true - description: |- - The outputs generated by the code interpreter, such as logs or images. - Can be null if no outputs are available. + type: string + description: The IDs of the vector stores to search. + max_num_results: + type: integer + description: The maximum number of results to return. This number should be between 1 and 50 inclusive. + ranking_options: + allOf: + - $ref: '#/components/schemas/OpenAI.RankingOptions' + description: Ranking options for search. + filters: + anyOf: + - $ref: '#/components/schemas/OpenAI.Filters' + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A tool call to run code. - OpenAI.CodeInterpreterToolCallItemResource: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search). + title: File search + OpenAI.FileSearchToolCallResults: type: object - required: - - type - - status - - container_id - - code - - outputs properties: - type: - type: string - enum: - - code_interpreter_call - status: + file_id: type: string - enum: - - in_progress - - completed - - incomplete - - interpreting - - failed - container_id: + text: type: string - description: The ID of the container used to run the code. - code: + filename: type: string - nullable: true - description: The code to run, or null if not available. - outputs: - type: array - items: - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutput' - nullable: true - description: |- - The outputs generated by the code interpreter, such as logs or images. - Can be null if no outputs are available. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A tool call to run code. - OpenAI.ComparisonFilter: + attributes: + anyOf: + - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' + - type: 'null' + score: + type: number + format: float + OpenAI.Filters: + anyOf: + - $ref: '#/components/schemas/OpenAI.ComparisonFilter' + - $ref: '#/components/schemas/OpenAI.CompoundFilter' + OpenAI.FineTuneDPOHyperparameters: type: object - required: - - type - - key - - value properties: - type: - type: string - enum: - - eq - - ne - - gt - - gte - - lt - - lte - description: |- - Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`. - - `eq`: equals - - `ne`: not equal - - `gt`: greater than - - `gte`: greater than or equal - - `lt`: less than - - `lte`: less than or equal - default: eq - key: - type: string - description: The key to compare against the value. - value: + beta: anyOf: - type: string + enum: + - auto - type: number - format: float - - type: boolean - description: The value to compare against the attribute key; supports string, number, or boolean types. - description: A filter used to compare a specified attribute key to a given value using a defined comparison operation. - OpenAI.CompletionUsage: + description: The beta value for the DPO method. A higher beta value will increase the weight of the penalty between the policy and reference model. + batch_size: + anyOf: + - type: string + enum: + - auto + - type: integer + description: Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance. + default: auto + learning_rate_multiplier: + anyOf: + - type: string + enum: + - auto + - type: number + description: Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting. + n_epochs: + anyOf: + - type: string + enum: + - auto + - type: integer + description: The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset. + default: auto + description: The hyperparameters used for the DPO fine-tuning job. + OpenAI.FineTuneDPOMethod: type: object - required: - - completion_tokens - - prompt_tokens - - total_tokens properties: - completion_tokens: - type: integer - format: int32 - description: Number of tokens in the generated completion. - default: 0 - prompt_tokens: - type: integer - format: int32 - description: Number of tokens in the prompt. - default: 0 - total_tokens: - type: integer - format: int32 - description: Total number of tokens used in the request (prompt + completion). - default: 0 - completion_tokens_details: - type: object - properties: - accepted_prediction_tokens: - type: integer - format: int32 - description: |- - When using Predicted Outputs, the number of tokens in the - prediction that appeared in the completion. - default: 0 - audio_tokens: - type: integer - format: int32 - description: Audio input tokens generated by the model. - default: 0 - reasoning_tokens: - type: integer - format: int32 - description: Tokens generated by the model for reasoning. - default: 0 - rejected_prediction_tokens: - type: integer - format: int32 - description: |- - When using Predicted Outputs, the number of tokens in the - prediction that did not appear in the completion. However, like - reasoning tokens, these tokens are still counted in the total - completion tokens for purposes of billing, output, and context window - limits. - default: 0 - description: Breakdown of tokens used in a completion. - prompt_tokens_details: - type: object - properties: - audio_tokens: - type: integer - format: int32 - description: Audio input tokens present in the prompt. - default: 0 - cached_tokens: - type: integer - format: int32 - description: Cached tokens present in the prompt. - default: 0 - description: Breakdown of tokens used in the prompt. - description: Usage statistics for the completion request. - OpenAI.CompoundFilter: + hyperparameters: + $ref: '#/components/schemas/OpenAI.FineTuneDPOHyperparameters' + description: Configuration for the DPO fine-tuning method. + OpenAI.FineTuneMethod: type: object required: - type - - filters properties: type: type: string enum: - - and - - or - description: 'Type of operation: `and` or `or`.' - filters: - type: array - items: - anyOf: - - $ref: '#/components/schemas/OpenAI.ComparisonFilter' - - $ref: '#/components/schemas/OpenAI.CompoundFilter' - description: Array of filters to combine. Items can be `ComparisonFilter` or `CompoundFilter`. - description: Combine multiple filters using `and` or `or`. - OpenAI.ComputerAction: + - supervised + - dpo + - reinforcement + description: The type of method. Is either `supervised`, `dpo`, or `reinforcement`. + supervised: + $ref: '#/components/schemas/OpenAI.FineTuneSupervisedMethod' + dpo: + $ref: '#/components/schemas/OpenAI.FineTuneDPOMethod' + reinforcement: + $ref: '#/components/schemas/AzureFineTuneReinforcementMethod' + description: The method used for fine-tuning. + OpenAI.FineTuneReinforcementHyperparameters: + type: object + properties: + batch_size: + anyOf: + - type: string + enum: + - auto + - type: integer + description: Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance. + default: auto + learning_rate_multiplier: + anyOf: + - type: string + enum: + - auto + - type: number + description: Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting. + n_epochs: + anyOf: + - type: string + enum: + - auto + - type: integer + description: The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset. + default: auto + reasoning_effort: + type: string + enum: + - default + - low + - medium + - high + description: Level of reasoning effort. + default: default + compute_multiplier: + anyOf: + - type: string + enum: + - auto + - type: number + description: Multiplier on amount of compute used for exploring search space during training. + eval_interval: + anyOf: + - type: string + enum: + - auto + - type: integer + description: The number of training steps between evaluation runs. + default: auto + eval_samples: + anyOf: + - type: string + enum: + - auto + - type: integer + description: Number of evaluation samples to generate per training step. + default: auto + description: The hyperparameters used for the reinforcement fine-tuning job. + OpenAI.FineTuneSupervisedHyperparameters: type: object - required: - - type properties: - type: - $ref: '#/components/schemas/OpenAI.ComputerActionType' - discriminator: - propertyName: type - mapping: - click: '#/components/schemas/OpenAI.ComputerActionClick' - double_click: '#/components/schemas/OpenAI.ComputerActionDoubleClick' - drag: '#/components/schemas/OpenAI.ComputerActionDrag' - move: '#/components/schemas/OpenAI.ComputerActionMove' - screenshot: '#/components/schemas/OpenAI.ComputerActionScreenshot' - scroll: '#/components/schemas/OpenAI.ComputerActionScroll' - type: '#/components/schemas/OpenAI.ComputerActionTypeKeys' - wait: '#/components/schemas/OpenAI.ComputerActionWait' - keypress: '#/components/schemas/OpenAI.ComputerActionKeyPress' - OpenAI.ComputerActionClick: + batch_size: + anyOf: + - type: string + enum: + - auto + - type: integer + description: Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance. + default: auto + learning_rate_multiplier: + anyOf: + - type: string + enum: + - auto + - type: number + description: Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting. + n_epochs: + anyOf: + - type: string + enum: + - auto + - type: integer + description: The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset. + default: auto + description: The hyperparameters used for the fine-tuning job. + OpenAI.FineTuneSupervisedMethod: type: object - required: - - type - - button - - x - - 'y' properties: - type: - type: string - enum: - - click - description: |- - Specifies the event type. For a click action, this property is - always set to `click`. - button: - type: string - enum: - - left - - right - - wheel - - back - - forward - description: Indicates which mouse button was pressed during the click. One of `left`, `right`, `wheel`, `back`, or `forward`. - x: - type: integer - format: int32 - description: The x-coordinate where the click occurred. - 'y': - type: integer - format: int32 - description: The y-coordinate where the click occurred. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A click action. - OpenAI.ComputerActionDoubleClick: + hyperparameters: + $ref: '#/components/schemas/OpenAI.FineTuneSupervisedHyperparameters' + description: Configuration for the supervised fine-tuning method. + OpenAI.FineTuningCheckpointPermission: type: object required: - - type - - x - - 'y' + - id + - created_at + - project_id + - object properties: - type: + id: type: string - enum: - - double_click - description: |- - Specifies the event type. For a double click action, this property is - always set to `double_click`. - x: - type: integer - format: int32 - description: The x-coordinate where the double click occurred. - 'y': + description: The permission identifier, which can be referenced in the API endpoints. + created_at: type: integer - format: int32 - description: The y-coordinate where the double click occurred. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A double click action. - OpenAI.ComputerActionDrag: + format: unixtime + description: The Unix timestamp (in seconds) for when the permission was created. + project_id: + type: string + description: The project identifier that the permission is for. + object: + type: string + enum: + - checkpoint.permission + description: The object type, which is always "checkpoint.permission". + x-stainless-const: true + description: The `checkpoint.permission` object represents a permission for a fine-tuned model checkpoint. + title: FineTuningCheckpointPermission + x-oaiMeta: + name: The fine-tuned model checkpoint permission object + example: | + { + "object": "checkpoint.permission", + "id": "cp_zc4Q7MP6XxulcVzj4MZdwsAB", + "created_at": 1712211699, + "project_id": "proj_abGMw1llN8IrBb6SvvY5A1iH" + } + OpenAI.FineTuningIntegration: type: object required: - type - - path + - wandb properties: type: type: string enum: - - drag - description: |- - Specifies the event type. For a drag action, this property is - always set to `drag`. - path: - type: array - items: - $ref: '#/components/schemas/OpenAI.Coordinate' + - wandb + description: The type of the integration being enabled for the fine-tuning job + x-stainless-const: true + wandb: + allOf: + - $ref: '#/components/schemas/OpenAI.FineTuningIntegrationWandb' description: |- - An array of coordinates representing the path of the drag action. Coordinates will appear as an array - of objects, eg - ``` - [ - { x: 100, y: 200 }, - { x: 200, y: 300 } - ] - ``` - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A drag action. - OpenAI.ComputerActionKeyPress: + The settings for your integration with Weights and Biases. This payload specifies the project that + metrics will be sent to. Optionally, you can set an explicit display name for your run, add tags + to your run, and set a default entity (team, username, etc) to be associated with your run. + title: Fine-Tuning Job Integration + OpenAI.FineTuningIntegrationWandb: type: object required: - - type - - keys + - project properties: - type: + project: type: string - enum: - - keypress - description: |- - Specifies the event type. For a keypress action, this property is - always set to `keypress`. - keys: + name: + anyOf: + - type: string + - type: 'null' + entity: + anyOf: + - type: string + - type: 'null' + tags: type: array items: type: string - description: |- - The combination of keys the model is requesting to be pressed. This is an - array of strings, each representing a key. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A collection of keypresses the model would like to perform. - OpenAI.ComputerActionMove: + OpenAI.FineTuningJob: type: object required: - - type - - x - - 'y' + - id + - created_at + - error + - fine_tuned_model + - finished_at + - hyperparameters + - model + - object + - organization_id + - result_files + - status + - trained_tokens + - training_file + - validation_file + - seed properties: - type: + id: type: string - enum: - - move - description: |- - Specifies the event type. For a move action, this property is - always set to `move`. - x: + description: The object identifier, which can be referenced in the API endpoints. + created_at: type: integer - format: int32 - description: The x-coordinate to move to. - 'y': + format: unixtime + description: The Unix timestamp (in seconds) for when the fine-tuning job was created. + error: + anyOf: + - $ref: '#/components/schemas/OpenAI.FineTuningJobError' + - type: 'null' + fine_tuned_model: + anyOf: + - type: string + - type: 'null' + finished_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: int32 - description: The y-coordinate to move to. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A mouse move action. - OpenAI.ComputerActionScreenshot: - type: object - required: - - type - properties: - type: + format: unixTimestamp + hyperparameters: + allOf: + - $ref: '#/components/schemas/OpenAI.FineTuningJobHyperparameters' + description: The hyperparameters used for the fine-tuning job. This value will only be returned when running `supervised` jobs. + model: + type: string + description: The base model that is being fine-tuned. + object: type: string enum: - - screenshot - description: |- - Specifies the event type. For a screenshot action, this property is - always set to `screenshot`. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A screenshot action. - OpenAI.ComputerActionScroll: - type: object - required: - - type - - x - - 'y' - - scroll_x - - scroll_y - properties: - type: + - fine_tuning.job + description: The object type, which is always "fine_tuning.job". + x-stainless-const: true + organization_id: + type: string + description: The organization that owns the fine-tuning job. + result_files: + type: array + items: + type: string + description: The compiled results file ID(s) for the fine-tuning job. You can retrieve the results with the [Files API](https://platform.openai.com/docs/api-reference/files/retrieve-contents). + status: type: string enum: - - scroll - description: |- - Specifies the event type. For a scroll action, this property is - always set to `scroll`. - x: - type: integer - format: int32 - description: The x-coordinate where the scroll occurred. - 'y': - type: integer - format: int32 - description: The y-coordinate where the scroll occurred. - scroll_x: - type: integer - format: int32 - description: The horizontal scroll distance. - scroll_y: + - validating_files + - queued + - running + - succeeded + - failed + - cancelled + description: The current status of the fine-tuning job, which can be either `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`. + trained_tokens: + anyOf: + - type: integer + - type: 'null' + training_file: + type: string + description: The file ID used for training. You can retrieve the training data with the [Files API](https://platform.openai.com/docs/api-reference/files/retrieve-contents). + validation_file: + anyOf: + - type: string + - type: 'null' + integrations: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.FineTuningIntegration' + - type: 'null' + seed: type: integer - format: int32 - description: The vertical scroll distance. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A scroll action. - OpenAI.ComputerActionType: - type: string - enum: - - screenshot - - click - - double_click - - scroll - - type - - wait - - keypress - - drag - - move - OpenAI.ComputerActionTypeKeys: + description: The seed used for the fine-tuning job. + estimated_finish: + anyOf: + - type: string + format: date-time + - type: 'null' + type: integer + format: unixTimestamp + method: + $ref: '#/components/schemas/OpenAI.FineTuneMethod' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + description: The `fine_tuning.job` object represents a fine-tuning job that has been created through the API. + title: FineTuningJob + x-oaiMeta: + name: The fine-tuning job object + example: | + { + "object": "fine_tuning.job", + "id": "ftjob-abc123", + "model": "davinci-002", + "created_at": 1692661014, + "finished_at": 1692661190, + "fine_tuned_model": "ft:davinci-002:my-org:custom_suffix:7q8mpxmy", + "organization_id": "org-123", + "result_files": [ + "file-abc123" + ], + "status": "succeeded", + "validation_file": null, + "training_file": "file-abc123", + "hyperparameters": { + "n_epochs": 4, + "batch_size": 1, + "learning_rate_multiplier": 1.0 + }, + "trained_tokens": 5768, + "integrations": [], + "seed": 0, + "estimated_finish": 0, + "method": { + "type": "supervised", + "supervised": { + "hyperparameters": { + "n_epochs": 4, + "batch_size": 1, + "learning_rate_multiplier": 1.0 + } + } + }, + "metadata": { + "key": "value" + } + } + OpenAI.FineTuningJobCheckpoint: type: object required: - - type - - text + - id + - created_at + - fine_tuned_model_checkpoint + - step_number + - metrics + - fine_tuning_job_id + - object properties: - type: + id: type: string - enum: - - type - description: |- - Specifies the event type. For a type action, this property is - always set to `type`. - text: + description: The checkpoint identifier, which can be referenced in the API endpoints. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the checkpoint was created. + fine_tuned_model_checkpoint: type: string - description: The text to type. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: An action to type in text. - OpenAI.ComputerActionWait: - type: object - required: - - type - properties: - type: + description: The name of the fine-tuned checkpoint model that is created. + step_number: + type: integer + description: The step number that the checkpoint was created at. + metrics: + allOf: + - $ref: '#/components/schemas/OpenAI.FineTuningJobCheckpointMetrics' + description: Metrics at the step number during the fine-tuning job. + fine_tuning_job_id: + type: string + description: The name of the fine-tuning job that this checkpoint was created from. + object: type: string enum: - - wait - description: |- - Specifies the event type. For a wait action, this property is - always set to `wait`. - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerAction' - description: A wait action. - OpenAI.ComputerToolCallItemParam: + - fine_tuning.job.checkpoint + description: The object type, which is always "fine_tuning.job.checkpoint". + x-stainless-const: true + description: The `fine_tuning.job.checkpoint` object represents a model checkpoint for a fine-tuning job that is ready to use. + title: FineTuningJobCheckpoint + x-oaiMeta: + name: The fine-tuning job checkpoint object + example: | + { + "object": "fine_tuning.job.checkpoint", + "id": "ftckpt_qtZ5Gyk4BLq1SfLFWp3RtO3P", + "created_at": 1712211699, + "fine_tuned_model_checkpoint": "ft:gpt-4o-mini-2024-07-18:my-org:custom_suffix:9ABel2dg:ckpt-step-88", + "fine_tuning_job_id": "ftjob-fpbNQ3H1GrMehXRf8cO97xTN", + "metrics": { + "step": 88, + "train_loss": 0.478, + "train_mean_token_accuracy": 0.924, + "valid_loss": 10.112, + "valid_mean_token_accuracy": 0.145, + "full_valid_loss": 0.567, + "full_valid_mean_token_accuracy": 0.944 + }, + "step_number": 88 + } + OpenAI.FineTuningJobCheckpointMetrics: + type: object + properties: + step: + type: number + train_loss: + type: number + train_mean_token_accuracy: + type: number + valid_loss: + type: number + valid_mean_token_accuracy: + type: number + full_valid_loss: + type: number + full_valid_mean_token_accuracy: + type: number + OpenAI.FineTuningJobError: type: object required: - - type - - call_id - - action - - pending_safety_checks + - code + - message + - param properties: - type: + code: type: string - enum: - - computer_call - call_id: + message: type: string - description: An identifier used when responding to the tool call with output. - action: - $ref: '#/components/schemas/OpenAI.ComputerAction' - pending_safety_checks: - type: array - items: - $ref: '#/components/schemas/OpenAI.ComputerToolCallSafetyCheck' - description: The pending safety checks for the computer call. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A tool call to a computer use tool. See the - [computer use guide](/docs/guides/tools-computer-use) for more information. - OpenAI.ComputerToolCallItemResource: + param: + anyOf: + - type: string + - type: 'null' + OpenAI.FineTuningJobEvent: type: object required: - - type - - status - - call_id - - action - - pending_safety_checks + - object + - id + - created_at + - level + - message properties: - type: + object: type: string enum: - - computer_call - status: + - fine_tuning.job.event + description: The object type, which is always "fine_tuning.job.event". + x-stainless-const: true + id: + type: string + description: The object identifier. + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the fine-tuning job was created. + level: type: string enum: - - in_progress - - completed - - incomplete - description: |- - The status of the item. One of `in_progress`, `completed`, or - `incomplete`. Populated when items are returned via API. - call_id: + - info + - warn + - error + description: The log level of the event. + message: type: string - description: An identifier used when responding to the tool call with output. - action: - $ref: '#/components/schemas/OpenAI.ComputerAction' - pending_safety_checks: - type: array - items: - $ref: '#/components/schemas/OpenAI.ComputerToolCallSafetyCheck' - description: The pending safety checks for the computer call. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A tool call to a computer use tool. See the - [computer use guide](/docs/guides/tools-computer-use) for more information. - OpenAI.ComputerToolCallOutputItemOutput: + description: The message of the event. + type: + type: string + enum: + - message + - metrics + description: The type of event. + data: + allOf: + - $ref: '#/components/schemas/OpenAI.FineTuningJobEventData' + description: The data associated with the event. + description: Fine-tuning job event object + x-oaiMeta: + name: The fine-tuning job event object + example: | + { + "object": "fine_tuning.job.event", + "id": "ftevent-abc123" + "created_at": 1677610602, + "level": "info", + "message": "Created fine-tuning job", + "data": {}, + "type": "message" + } + OpenAI.FineTuningJobEventData: + type: object + OpenAI.FineTuningJobHyperparameters: + type: object + properties: + batch_size: + anyOf: + - type: string + enum: + - auto + - type: integer + - type: 'null' + default: auto + learning_rate_multiplier: + anyOf: + - type: string + enum: + - auto + - type: number + n_epochs: + anyOf: + - type: string + enum: + - auto + - type: integer + default: auto + OpenAI.FunctionAndCustomToolCallOutput: type: object required: - type properties: type: - $ref: '#/components/schemas/OpenAI.ComputerToolCallOutputItemOutputType' + $ref: '#/components/schemas/OpenAI.FunctionAndCustomToolCallOutputType' discriminator: propertyName: type - mapping: - computer_screenshot: '#/components/schemas/OpenAI.ComputerToolCallOutputItemOutputComputerScreenshot' - OpenAI.ComputerToolCallOutputItemOutputComputerScreenshot: + OpenAI.FunctionAndCustomToolCallOutputType: + anyOf: + - type: string + - type: string + enum: + - input_text + - input_image + - input_file + OpenAI.FunctionObject: type: object required: - - type + - name properties: - type: - type: string - enum: - - computer_screenshot - image_url: + description: type: string - file_id: + description: A description of what the function does, used by the model to choose when and how to call the function. + name: type: string - allOf: - - $ref: '#/components/schemas/OpenAI.ComputerToolCallOutputItemOutput' - OpenAI.ComputerToolCallOutputItemOutputType: - anyOf: - - type: string - - type: string - enum: - - computer_screenshot - description: A computer screenshot image used with the computer use tool. - OpenAI.ComputerToolCallOutputItemParam: + description: The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. + parameters: + $ref: '#/components/schemas/OpenAI.FunctionParameters' + strict: + anyOf: + - type: boolean + - type: 'null' + OpenAI.FunctionParameters: + type: object + description: |- + The parameters the functions accepts, described as a JSON Schema object. See the [guide](https://platform.openai.com/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. + + Omitting `parameters` defines a function with an empty parameter list. + OpenAI.FunctionShellAction: + type: object + required: + - commands + - timeout_ms + - max_output_length + properties: + commands: + type: array + items: + type: string + timeout_ms: + anyOf: + - type: integer + - type: 'null' + max_output_length: + anyOf: + - type: integer + - type: 'null' + description: Execute a shell command. + title: Shell exec action + OpenAI.FunctionShellCall: type: object required: - type + - id - call_id - - output + - action + - status properties: type: type: string enum: - - computer_call_output + - shell_call + description: The type of the item. Always `shell_call`. + x-stainless-const: true + default: shell_call + id: + type: string + description: The unique ID of the shell tool call. Populated when this item is returned via API. call_id: type: string - description: The ID of the computer tool call that produced the output. - acknowledged_safety_checks: - type: array - items: - $ref: '#/components/schemas/OpenAI.ComputerToolCallSafetyCheck' - description: |- - The safety checks reported by the API that have been acknowledged by the - developer. - output: - $ref: '#/components/schemas/OpenAI.ComputerToolCallOutputItemOutput' + description: The unique ID of the shell tool call generated by the model. + action: + allOf: + - $ref: '#/components/schemas/OpenAI.FunctionShellAction' + description: The shell commands and limits that describe how to run the tool call. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.LocalShellCallStatus' + description: The status of the shell call. One of `in_progress`, `completed`, or `incomplete`. + created_by: + type: string + description: The ID of the entity that created this tool call. allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - The output of a computer tool call. - OpenAI.ComputerToolCallOutputItemResource: + - $ref: '#/components/schemas/OpenAI.ItemResource' + description: A tool call that executes one or more shell commands in a managed environment. + title: Shell tool call + OpenAI.FunctionShellCallOutput: type: object required: - type - - status + - id - call_id - output + - max_output_length properties: type: type: string enum: - - computer_call_output - status: + - shell_call_output + description: The type of the shell call output. Always `shell_call_output`. + x-stainless-const: true + default: shell_call_output + id: type: string - enum: - - in_progress - - completed - - incomplete - description: |- - The status of the item. One of `in_progress`, `completed`, or - `incomplete`. Populated when items are returned via API. + description: The unique ID of the shell call output. Populated when this item is returned via API. call_id: type: string - description: The ID of the computer tool call that produced the output. - acknowledged_safety_checks: + description: The unique ID of the shell tool call generated by the model. + output: type: array items: - $ref: '#/components/schemas/OpenAI.ComputerToolCallSafetyCheck' - description: |- - The safety checks reported by the API that have been acknowledged by the - developer. - output: - $ref: '#/components/schemas/OpenAI.ComputerToolCallOutputItemOutput' + $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputContent' + description: An array of shell call output contents + max_output_length: + anyOf: + - type: integer + - type: 'null' + created_by: + type: string allOf: - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - The output of a computer tool call. - OpenAI.ComputerToolCallSafetyCheck: + description: The output of a shell tool call. + title: Shell call output + OpenAI.FunctionShellCallOutputContent: type: object required: - - id - - code - - message + - stdout + - stderr + - outcome properties: - id: + stdout: type: string - description: The ID of the pending safety check. - code: + stderr: type: string - description: The type of the pending safety check. - message: + outcome: + allOf: + - $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputOutcome' + description: Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk. + created_by: type: string - description: Details about the pending safety check. - description: A pending safety check for the computer call. - OpenAI.ComputerUsePreviewTool: + description: The content of a shell call output. + title: Shell call output content + OpenAI.FunctionShellCallOutputExitOutcome: type: object required: - type - - environment - - display_width - - display_height + - exit_code properties: type: type: string enum: - - computer_use_preview - description: The type of the computer use tool. Always `computer_use_preview`. - environment: - type: string - enum: - - windows - - mac - - linux - - ubuntu - - browser - description: The type of computer environment to control. - display_width: - type: integer - format: int32 - description: The width of the computer display. - display_height: + - exit + description: The outcome type. Always `exit`. + x-stainless-const: true + default: exit + exit_code: type: integer - format: int32 - description: The height of the computer display. + description: Exit code from the shell process. allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: A tool that controls a virtual computer. Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use). - OpenAI.ContainerFileListResource: + - $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputOutcome' + description: Indicates that the shell commands finished and returned an exit code. + title: Shell call exit outcome + OpenAI.FunctionShellCallOutputOutcome: type: object required: - - object - - data - - first_id - - last_id - - has_more + - type properties: - object: - type: string + type: + $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputOutcomeType' + discriminator: + propertyName: type + mapping: + timeout: '#/components/schemas/OpenAI.FunctionShellCallOutputTimeoutOutcome' + exit: '#/components/schemas/OpenAI.FunctionShellCallOutputExitOutcome' + description: Represents either an exit outcome (with an exit code) or a timeout outcome for a shell call output chunk. + title: Shell call outcome + OpenAI.FunctionShellCallOutputOutcomeType: + anyOf: + - type: string + - type: string enum: - - list - description: The type of object returned, must be 'list'. - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.ContainerFileResource' - description: A list of container files. - first_id: - type: string - description: The ID of the first file in the list. - last_id: - type: string - description: The ID of the last file in the list. - has_more: - type: boolean - description: Whether there are more files available. - OpenAI.ContainerFileResource: + - timeout + - exit + OpenAI.FunctionShellCallOutputTimeoutOutcome: type: object required: - - id - - object - - container_id - - created_at - - bytes - - path - - source + - type properties: - id: - type: string - description: Unique identifier for the file. - object: + type: type: string - description: The type of this object (`container.file`). - container_id: + enum: + - timeout + description: The outcome type. Always `timeout`. + x-stainless-const: true + default: timeout + allOf: + - $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputOutcome' + description: Indicates that the shell call exceeded its configured time limit. + title: Shell call timeout outcome + OpenAI.FunctionShellToolParam: + type: object + required: + - type + properties: + type: type: string - description: The container this file belongs to. - created_at: - type: integer - format: unixtime - description: Unix timestamp (in seconds) when the file was created. - bytes: - type: integer - format: int32 - description: Size of the file in bytes. - path: + enum: + - shell + description: The type of the shell tool. Always `shell`. + x-stainless-const: true + default: shell + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A tool that allows the model to execute shell commands. + title: Shell tool + OpenAI.FunctionTool: + type: object + required: + - type + - name + - parameters + - strict + properties: + type: type: string - description: Path of the file in the container. - source: + enum: + - function + description: The type of the function tool. Always `function`. + x-stainless-const: true + default: function + name: type: string - description: Source of the file (e.g., `user`, `assistant`). - OpenAI.ContainerListResource: + description: The name of the function to call. + description: + anyOf: + - type: string + - type: 'null' + parameters: + anyOf: + - type: object + unevaluatedProperties: {} + - type: 'null' + strict: + anyOf: + - type: boolean + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: Defines a function in your own code the model can choose to call. Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling). + title: Function + OpenAI.FunctionToolCallOutputResource: type: object required: - - object - - data - - first_id - - last_id - - has_more + - type + - call_id + - output properties: - object: + id: + type: string + description: |- + The unique ID of the function tool call output. Populated when this item + is returned via API. + type: type: string enum: - - list - description: The type of object returned, must be 'list'. - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.ContainerResource' - description: A list of containers. - first_id: + - function_call_output + description: The type of the function tool call output. Always `function_call_output`. + x-stainless-const: true + call_id: type: string - description: The ID of the first container in the list. - last_id: + description: The unique ID of the function tool call generated by the model. + output: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.FunctionAndCustomToolCallOutput' + description: |- + The output from the function call generated by your code. + Can be a string or an list of output content. + status: type: string - description: The ID of the last container in the list. - has_more: - type: boolean - description: Whether there are more containers available. - OpenAI.ContainerResource: + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.FunctionToolCallResource: type: object required: - - id - - object + - type + - call_id - name - - created_at - - status + - arguments properties: id: type: string - description: Unique identifier for the container. - object: + description: The unique ID of the function tool call. + type: type: string - description: The type of this object. + enum: + - function_call + description: The type of the function tool call. Always `function_call`. + x-stainless-const: true + call_id: + type: string + description: The unique ID of the function tool call generated by the model. name: type: string - description: Name of the container. - created_at: - type: integer - format: unixtime - description: Unix timestamp (in seconds) when the container was created. + description: The name of the function to run. + arguments: + type: string + description: A JSON string of the arguments to pass to the function. status: type: string - description: Status of the container (e.g., active, deleted). - expires_after: - type: object - properties: - anchor: - type: string - enum: - - last_active_at - description: The reference point for the expiration. - minutes: - type: integer - format: int32 - description: The number of minutes after the anchor before the container expires. + enum: + - in_progress + - completed + - incomplete description: |- - The container will expire after this time period. - The anchor is the reference point for the expiration. - The minutes is the number of minutes after the anchor before the container expires. - OpenAI.Coordinate: - type: object - required: - - x - - 'y' - properties: - x: - type: integer - format: int32 - description: The x-coordinate. - 'y': - type: integer - format: int32 - description: The y-coordinate. - description: 'An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`.' - OpenAI.CreateContainerBody: + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.GraderMulti: type: object required: + - type - name + - graders + - calculate_output properties: - name: - type: string - description: Name of the container to create. - file_ids: - type: array - items: - type: string - description: IDs of files to copy to the container. - expires_after: - type: object - properties: - anchor: - type: string - enum: - - last_active_at - description: Time anchor for the expiration time. Currently only 'last_active_at' is supported. - minutes: - type: integer - format: int32 - required: - - anchor - - minutes - description: Container expiration time in seconds relative to the 'anchor' time. - OpenAI.CreateContainerFileBodyMultiPart: - type: object - properties: - file_id: + type: type: string - description: Name of the file to create. - file: + enum: + - multi + description: The object type, which is always `multi`. + x-stainless-const: true + default: multi + name: type: string - format: binary - OpenAI.CreateEmbeddingResponse: + description: The name of the grader. + graders: + anyOf: + - $ref: '#/components/schemas/OpenAI.GraderStringCheck' + - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' + - $ref: '#/components/schemas/OpenAI.GraderScoreModel' + - $ref: '#/components/schemas/GraderEndpoint' + calculate_output: + type: string + description: A formula to calculate the output based on grader results. + description: A MultiGrader object combines the output of multiple graders to produce a single score. + title: MultiGrader + x-oaiMeta: + name: Multi Grader + group: graders + example: | + { + "type": "multi", + "name": "example multi grader", + "graders": [ + { + "type": "text_similarity", + "name": "example text similarity grader", + "input": "The graded text", + "reference": "The reference text", + "evaluation_metric": "fuzzy_match" + }, + { + "type": "string_check", + "name": "Example string check grader", + "input": "{{sample.output_text}}", + "reference": "{{item.label}}", + "operation": "eq" + } + ], + "calculate_output": "0.5 * text_similarity_score + 0.5 * string_check_score)" + } + OpenAI.GraderPython: type: object required: - - data - - model - - object - - usage + - type + - name + - source properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.Embedding' - description: The list of embeddings generated by the model. - model: - type: string - description: The name of the model used to generate the embedding. - object: + type: type: string enum: - - list - description: The object type, which is always "list". - usage: - type: object - properties: - prompt_tokens: - type: integer - format: int32 - description: The number of tokens used by the prompt. - total_tokens: - type: integer - format: int32 - description: The total number of tokens used by the request. - required: - - prompt_tokens - - total_tokens - description: The usage information for the request. - OpenAI.CreateEvalItem: - anyOf: - - type: object - properties: - role: - type: string - description: The role of the message (e.g. "system", "assistant", "user"). - content: - type: string - description: The content of the message. - required: - - role - - content - - $ref: '#/components/schemas/OpenAI.EvalItem' - description: A chat message that makes up the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}. - OpenAI.CreateEvalRunRequest: - type: object - required: - - data_source - properties: + - python + description: The object type, which is always `python`. + x-stainless-const: true name: type: string - description: The name of the run. - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - data_source: - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceParams' - description: Details about the run's data source. - OpenAI.CreateFineTuningJobRequest: + description: The name of the grader. + source: + type: string + description: The source code of the python script. + image_tag: + type: string + description: The image tag to use for the python script. + description: A PythonGrader object that runs a python script on the input. + title: PythonGrader + x-oaiMeta: + name: Python Grader + group: graders + example: | + { + "type": "python", + "name": "Example python grader", + "image_tag": "2025-05-08", + "source": """ + def grade(sample: dict, item: dict) -> float: + \""" + Returns 1.0 if `output_text` equals `label`, otherwise 0.0. + \""" + output = sample.get("output_text") + label = item.get("label") + return 1.0 if output == label else 0.0 + """, + } + OpenAI.GraderScoreModel: type: object required: + - type + - name - model - - training_file + - input properties: - model: - anyOf: - - type: string - - type: string - enum: - - babbage-002 - - davinci-002 - - gpt-3.5-turbo - - gpt-4o-mini - description: |- - The name of the model to fine-tune. You can select one of the - [supported models](/docs/guides/fine-tuning#which-models-can-be-fine-tuned). - x-oaiTypeLabel: string - training_file: + type: type: string - description: |- - The ID of an uploaded file that contains training data. - - See [upload file](/docs/api-reference/files/create) for how to upload a file. - - Your dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose `fine-tune`. - - The contents of the file should differ depending on if the model uses the [chat](/docs/api-reference/fine-tuning/chat-input), [completions](/docs/api-reference/fine-tuning/completions-input) format, or if the fine-tuning method uses the [preference](/docs/api-reference/fine-tuning/preference-input) format. - - See the [fine-tuning guide](/docs/guides/model-optimization) for more details. - hyperparameters: - type: object - properties: - batch_size: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: |- - Number of examples in each batch. A larger batch size means that model parameters - are updated less frequently, but with lower variance. - default: auto - learning_rate_multiplier: - anyOf: - - type: string - enum: - - auto - - type: number - format: float - description: |- - Scaling factor for the learning rate. A smaller learning rate may be useful to avoid - overfitting. - default: auto - n_epochs: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: |- - The number of epochs to train the model for. An epoch refers to one full cycle - through the training dataset. - default: auto - description: |- - The hyperparameters used for the fine-tuning job. - This value is now deprecated in favor of `method`, and should be passed in under the `method` parameter. - deprecated: true - suffix: + enum: + - score_model + description: The object type, which is always `score_model`. + x-stainless-const: true + name: type: string - nullable: true - minLength: 1 - maxLength: 64 - description: |- - A string of up to 64 characters that will be added to your fine-tuned model name. - - For example, a `suffix` of "custom-model-name" would produce a model name like `ft:gpt-4o-mini:openai:custom-model-name:7p4lURel`. - default: null - validation_file: + description: The name of the grader. + model: type: string - nullable: true - description: |- - The ID of an uploaded file that contains validation data. - - If you provide this file, the data is used to generate validation - metrics periodically during fine-tuning. These metrics can be viewed in - the fine-tuning results file. - The same data should not be present in both train and validation files. - - Your dataset must be formatted as a JSONL file. You must upload your file with the purpose `fine-tune`. - - See the [fine-tuning guide](/docs/guides/model-optimization) for more details. - integrations: + description: The model to use for the evaluation. + sampling_params: + allOf: + - $ref: '#/components/schemas/OpenAI.EvalGraderScoreModelSamplingParams' + description: The sampling parameters for the model. + input: type: array items: - $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegration' - nullable: true - description: A list of integrations to enable for your fine-tuning job. - seed: - type: integer - format: int32 - nullable: true - minimum: 0 - maximum: 2147483647 - description: |- - The seed controls the reproducibility of the job. Passing in the same seed and job parameters should produce the same results, but may differ in rare cases. - If a seed is not specified, one will be generated for you. - method: - $ref: '#/components/schemas/OpenAI.FineTuneMethod' - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - OpenAI.CreateFineTuningJobRequestIntegration: + $ref: '#/components/schemas/OpenAI.EvalItem' + description: The input text. This may include template strings. + range: + type: array + items: + type: number + description: The range of the score. Defaults to `[0, 1]`. + description: A ScoreModelGrader object that uses a model to assign a score to the input. + title: ScoreModelGrader + x-oaiMeta: + name: Score Model Grader + group: graders + example: | + { + "type": "score_model", + "name": "Example score model grader", + "input": [ + { + "role": "user", + "content": ( + "Score how close the reference answer is to the model answer. Score 1.0 if they are the same and 0.0 if they are different." + " Return just a floating point score\n\n" + " Reference answer: {{item.label}}\n\n" + " Model answer: {{sample.output_text}}" + ), + } + ], + "model": "o4-mini-2025-04-16", + "sampling_params": { + "temperature": 1, + "top_p": 1, + "seed": 42, + "max_completions_tokens": 32768, + "reasoning_effort": "medium" + }, + } + OpenAI.GraderStringCheck: type: object required: - type + - name + - input + - reference + - operation properties: type: - anyOf: - - type: string - - type: string - enum: - - wandb - discriminator: - propertyName: type - mapping: - wandb: '#/components/schemas/OpenAI.CreateFineTuningJobRequestWandbIntegration' - OpenAI.CreateFineTuningJobRequestWandbIntegration: + type: string + enum: + - string_check + description: The object type, which is always `string_check`. + x-stainless-const: true + name: + type: string + description: The name of the grader. + input: + type: string + description: The input text. This may include template strings. + reference: + type: string + description: The reference text. This may include template strings. + operation: + type: string + enum: + - eq + - ne + - like + - ilike + description: The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`. + description: A StringCheckGrader object that performs a string comparison between input and reference using a specified operation. + title: StringCheckGrader + x-oaiMeta: + name: String Check Grader + group: graders + example: | + { + "type": "string_check", + "name": "Example string check grader", + "input": "{{sample.output_text}}", + "reference": "{{item.label}}", + "operation": "eq" + } + OpenAI.GraderTextSimilarity: type: object required: - type - - wandb + - name + - input + - reference + - evaluation_metric properties: type: type: string enum: - - wandb - wandb: - type: object - properties: - project: - type: string - name: - type: string - nullable: true - entity: - type: string - nullable: true - tags: - type: array - items: - type: string - required: - - project - allOf: - - $ref: '#/components/schemas/OpenAI.CreateFineTuningJobRequestIntegration' - OpenAI.CreateVectorStoreFileBatchRequest: - type: object - required: - - file_ids - properties: - file_ids: - type: array - items: - type: string - minItems: 1 - maxItems: 500 - description: A list of [File](/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files. - chunking_strategy: - $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' - attributes: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' - nullable: true - OpenAI.CreateVectorStoreFileRequest: + - text_similarity + description: The type of grader. + x-stainless-const: true + default: text_similarity + name: + type: string + description: The name of the grader. + input: + type: string + description: The text being graded. + reference: + type: string + description: The text being graded against. + evaluation_metric: + type: string + enum: + - cosine + - fuzzy_match + - bleu + - gleu + - meteor + - rouge_1 + - rouge_2 + - rouge_3 + - rouge_4 + - rouge_5 + - rouge_l + description: |- + The evaluation metric to use. One of `cosine`, `fuzzy_match`, `bleu`, + `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, + or `rouge_l`. + description: A TextSimilarityGrader object which grades text based on similarity metrics. + title: TextSimilarityGrader + x-oaiMeta: + name: Text Similarity Grader + group: graders + example: | + { + "type": "text_similarity", + "name": "Example text similarity grader", + "input": "{{sample.output_text}}", + "reference": "{{item.label}}", + "evaluation_metric": "fuzzy_match" + } + OpenAI.GrammarSyntax1: + type: string + enum: + - lark + - regex + OpenAI.HybridSearchOptions: type: object required: - - file_id + - embedding_weight + - text_weight properties: - file_id: - type: string - description: A [File](/docs/api-reference/files) ID that the vector store should use. Useful for tools like `file_search` that can access files. - chunking_strategy: - $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' - attributes: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' - nullable: true - OpenAI.CreateVectorStoreRequest: + embedding_weight: + type: number + description: The weight of the embedding in the reciprocal ranking fusion. + text_weight: + type: number + description: The weight of the text in the reciprocal ranking fusion. + OpenAI.ImageDetail: + type: string + enum: + - low + - high + - auto + OpenAI.ImageGenTool: type: object + required: + - type properties: - file_ids: - type: array - items: - type: string - maxItems: 500 - description: A list of [File](/docs/api-reference/files) IDs that the vector store should use. Useful for tools like `file_search` that can access files. - name: + type: type: string - description: The name of the vector store. - expires_after: - $ref: '#/components/schemas/OpenAI.VectorStoreExpirationAfter' - chunking_strategy: + enum: + - image_generation + description: The type of the image generation tool. Always `image_generation`. + x-stainless-const: true + default: image_generation + model: + type: string + enum: + - gpt-image-1 + - gpt-image-1-mini + description: 'The image generation model to use. Default: `gpt-image-1`.' + default: gpt-image-1 + quality: + type: string + enum: + - low + - medium + - high + - auto + description: |- + The quality of the generated image. One of `low`, `medium`, `high`, + or `auto`. Default: `auto`. + default: auto + size: + type: string + enum: + - 1024x1024 + - 1024x1536 + - 1536x1024 + - auto + description: |- + The size of the generated image. One of `1024x1024`, `1024x1536`, + `1536x1024`, or `auto`. Default: `auto`. + default: auto + output_format: + type: string + enum: + - png + - webp + - jpeg + description: |- + The output format of the generated image. One of `png`, `webp`, or + `jpeg`. Default: `png`. + default: png + output_compression: + type: integer + minimum: 0 + maximum: 100 + description: 'Compression level for the output image. Default: 100.' + default: 100 + moderation: + type: string + enum: + - auto + - low + description: 'Moderation level for the generated image. Default: `auto`.' + default: auto + background: + type: string + enum: + - transparent + - opaque + - auto + description: |- + Background type for the generated image. One of `transparent`, + `opaque`, or `auto`. Default: `auto`. + default: auto + input_fidelity: anyOf: - - $ref: '#/components/schemas/OpenAI.AutoChunkingStrategyRequestParam' - - $ref: '#/components/schemas/OpenAI.StaticChunkingStrategyRequestParam' - description: The chunking strategy used to chunk the file(s). If not set, will use the `auto` strategy. Only applicable if `file_ids` is non-empty. - metadata: - type: object - additionalProperties: - type: string + - $ref: '#/components/schemas/OpenAI.InputFidelity' + - type: 'null' + input_image_mask: + allOf: + - $ref: '#/components/schemas/OpenAI.ImageGenToolInputImageMask' description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - OpenAI.DeleteFileResponse: + Optional mask for inpainting. Contains `image_url` + (string, optional) and `file_id` (string, optional). + partial_images: + type: integer + minimum: 0 + maximum: 3 + description: Number of partial images to generate in streaming mode, from 0 (default value) to 3. + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A tool that generates images using a model like `gpt-image-1`. + title: Image generation tool + OpenAI.ImageGenToolInputImageMask: type: object - required: - - id - - object - - deleted properties: - id: + image_url: type: string - object: + file_id: type: string - enum: - - file - deleted: - type: boolean - OpenAI.DeleteVectorStoreFileResponse: + OpenAI.IncludeEnum: + type: string + enum: + - file_search_call.results + - web_search_call.results + - web_search_call.action.sources + - message.input_image.image_url + - computer_call_output.output.image_url + - code_interpreter_call.outputs + - reasoning.encrypted_content + - message.output_text.logprobs + description: |- + Specify additional output data to include in the model response. Currently supported values are: + - `web_search_call.action.sources`: Include the sources of the web search tool call. + - `code_interpreter_call.outputs`: Includes the outputs of python code execution in code interpreter tool call items. + - `computer_call_output.output.image_url`: Include image urls from the computer call output. + - `file_search_call.results`: Include the search results of the file search tool call. + - `message.input_image.image_url`: Include image urls from the input message. + - `message.output_text.logprobs`: Include logprobs with assistant messages. + - `reasoning.encrypted_content`: Includes an encrypted version of reasoning tokens in reasoning item outputs. This enables reasoning items to be used in multi-turn conversations when using the Responses API statelessly (like when the `store` parameter is set to `false`, or when an organization is enrolled in the zero data retention program). + OpenAI.InputAudio: type: object required: - - id - - deleted - - object + - type + - input_audio properties: - id: - type: string - deleted: - type: boolean - object: + type: type: string enum: - - vector_store.file.deleted - OpenAI.DeleteVectorStoreResponse: + - input_audio + description: The type of the input item. Always `input_audio`. + x-stainless-const: true + input_audio: + $ref: '#/components/schemas/OpenAI.InputAudioInputAudio' + description: An audio input to the model. + title: Input audio + OpenAI.InputAudioInputAudio: type: object required: - - id - - deleted - - object + - data + - format properties: - id: + data: type: string - deleted: - type: boolean - object: + format: type: string enum: - - vector_store.deleted - OpenAI.Embedding: + - mp3 + - wav + OpenAI.InputContent: type: object required: - - index - - embedding - - object + - type properties: - index: - type: integer - format: int32 - description: The index of the embedding in the list of embeddings. - embedding: - anyOf: - - type: array - items: - type: number - - type: string - description: The embedding vector, which is a list of floats. The length of vector depends on the model as listed in the [embedding guide](/docs/guides/embeddings). - object: - type: string + type: + $ref: '#/components/schemas/OpenAI.InputContentType' + discriminator: + propertyName: type + mapping: + input_text: '#/components/schemas/OpenAI.InputTextContent' + input_image: '#/components/schemas/OpenAI.InputImageContent' + input_file: '#/components/schemas/OpenAI.InputFileContent' + OpenAI.InputContentType: + anyOf: + - type: string + - type: string enum: - - embedding - description: The object type, which is always "embedding". - description: Represents an embedding vector returned by embedding endpoint. - OpenAI.Eval: + - input_text + - input_image + - input_file + OpenAI.InputFidelity: + type: string + enum: + - high + - low + description: Control how much effort the model will exert to match the style and features, especially facial features, of input images. This parameter is only supported for `gpt-image-1`. Unsupported for `gpt-image-1-mini`. Supports `high` and `low`. Defaults to `low`. + OpenAI.InputFileContent: type: object required: - - object - - id - - name - - data_source_config - - testing_criteria - - created_at - - metadata + - type properties: - object: + type: type: string enum: - - eval - description: The object type. - default: eval - id: - type: string - description: Unique identifier for the evaluation. - name: - type: string - description: The name of the evaluation. - data_source_config: - allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigResource' - description: Configuration of data sources used in runs of the evaluation. - testing_criteria: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalGraderResource' - nullable: true - description: A list of testing criteria. - default: null - created_at: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) for when the eval was created. - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - description: |- - An Eval object with a data source config and testing criteria. - An Eval represents a task to be done for your LLM integration. - Like: - - Improve the quality of my chatbot - - See how well my chatbot handles customer support - - Check if o4-mini is better at my usecase than gpt-4o - OpenAI.EvalApiError: - type: object - required: - - code - - message - properties: - code: + - input_file + description: The type of the input item. Always `input_file`. + x-stainless-const: true + default: input_file + file_id: + anyOf: + - type: string + - type: 'null' + filename: type: string - description: The error code. - message: + description: The name of the file to be sent to the model. + file_url: type: string - description: The error message. - description: An object representing an error response from the Eval API. - OpenAI.EvalCompletionsRunDataSourceParams: + description: The URL of the file to be sent to the model. + file_data: + type: string + description: The content of the file to be sent to the model. + allOf: + - $ref: '#/components/schemas/OpenAI.InputContent' + description: A file input to the model. + title: Input file + OpenAI.InputImageContent: type: object required: - type - - source + - detail properties: type: type: string enum: - - completions - description: The type of run data source. Always `completions`. - input_messages: + - input_image + description: The type of the input item. Always `input_image`. + x-stainless-const: true + default: input_image + image_url: anyOf: - - type: object - properties: - type: - type: string - enum: - - template - description: The type of input messages. Always `template`. - template: - type: array - items: - anyOf: - - {} - - $ref: '#/components/schemas/OpenAI.EvalItem' - description: A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}. - required: - - type - - template - - type: object - properties: - type: - type: string - enum: - - item_reference - description: The type of input messages. Always `item_reference`. - item_reference: - type: string - description: A reference to a variable in the `item` namespace. Ie, "item.input_trajectory" - required: - - type - - item_reference - description: Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace. - sampling_params: - $ref: '#/components/schemas/AzureEvalAPICompletionsSamplingParams' - model: - type: string - description: The name of the model to use for generating completions (e.g. "o3-mini"). - source: + - type: string + - type: 'null' + file_id: anyOf: - - $ref: '#/components/schemas/OpenAI.EvalRunFileContentDataContentSource' - - $ref: '#/components/schemas/OpenAI.EvalRunFileIdDataContentSource' - - $ref: '#/components/schemas/OpenAI.EvalRunStoredCompletionsDataContentSource' - description: Determines what populates the `item` namespace in this run's data source. + - type: string + - type: 'null' + detail: + allOf: + - $ref: '#/components/schemas/OpenAI.ImageDetail' + description: The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`. Defaults to `auto`. allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceParams' - description: A CompletionsRunDataSource object describing a model sampling configuration. - OpenAI.EvalCustomDataSourceConfigParams: + - $ref: '#/components/schemas/OpenAI.InputContent' + description: An image input to the model. Learn about [image inputs](https://platform.openai.com/docs/guides/vision). + title: Input image + OpenAI.InputItem: type: object required: - type - - item_schema properties: type: - type: string + $ref: '#/components/schemas/OpenAI.InputItemType' + discriminator: + propertyName: type + mapping: + message: '#/components/schemas/OpenAI.EasyInputMessage' + item_reference: '#/components/schemas/OpenAI.ItemReferenceParam' + OpenAI.InputItemType: + anyOf: + - type: string + - type: string enum: - - custom - description: The type of data source. Always `custom`. - item_schema: - type: object - additionalProperties: {} - description: The json schema for each row in the data source. - include_sample_schema: - type: boolean - description: Whether the eval should expect you to populate the sample namespace (ie, by generating responses off of your data source) - default: false - allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigParams' + - message + - item_reference + OpenAI.InputMessageContentList: + type: array + items: + $ref: '#/components/schemas/OpenAI.InputContent' description: |- - A CustomDataSourceConfig object that defines the schema for the data source used for the evaluation runs. - This schema is used to define the shape of the data that will be: - - Used to define your testing criteria and - - What data is required when creating a run - OpenAI.EvalCustomDataSourceConfigResource: + A list of one or many input items to the model, containing different content + types. + title: Input item content list + OpenAI.InputMessageResource: type: object required: - type - - schema + - role + - content + - id properties: type: type: string enum: - - custom - description: The type of data source. Always `custom`. - schema: - type: object - additionalProperties: {} + - message + description: The type of the message input. Always set to `message`. + x-stainless-const: true + role: + type: string + enum: + - user + - system + - developer + description: The role of the message input. One of `user`, `system`, or `developer`. + status: + type: string + enum: + - in_progress + - completed + - incomplete description: |- - The json schema for the run data source items. - Learn how to build JSON schemas [here](https://json-schema.org/). + The status of item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + content: + $ref: '#/components/schemas/OpenAI.InputMessageContentList' + id: + type: string + description: The unique ID of the message input. allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigResource' + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.InputParam: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' description: |- - A CustomDataSourceConfig which specifies the schema of your `item` and optionally `sample` namespaces. - The response schema defines the shape of the data that will be: - - Used to define your testing criteria and - - What data is required when creating a run - OpenAI.EvalDataSourceConfigParams: + Text, image, or file inputs to the model, used to generate a response. + + Learn more: + - [Text inputs and outputs](https://platform.openai.com/docs/guides/text) + - [Image inputs](https://platform.openai.com/docs/guides/images) + - [File inputs](https://platform.openai.com/docs/guides/pdf-files) + - [Conversation state](https://platform.openai.com/docs/guides/conversation-state) + - [Function calling](https://platform.openai.com/docs/guides/function-calling) + OpenAI.InputTextContent: type: object required: - type + - text properties: type: - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigType' - discriminator: - propertyName: type - mapping: - custom: '#/components/schemas/OpenAI.EvalCustomDataSourceConfigParams' - logs: '#/components/schemas/OpenAI.EvalLogsDataSourceConfigParams' - stored_completions: '#/components/schemas/OpenAI.EvalStoredCompletionsDataSourceConfigParams' - OpenAI.EvalDataSourceConfigResource: + type: string + enum: + - input_text + description: The type of the input item. Always `input_text`. + x-stainless-const: true + default: input_text + text: + type: string + description: The text input to the model. + allOf: + - $ref: '#/components/schemas/OpenAI.InputContent' + description: A text input to the model. + title: Input text + OpenAI.ItemReferenceParam: + type: object + required: + - type + - id + properties: + type: + type: string + enum: + - item_reference + description: The type of item to reference. Always `item_reference`. + x-stainless-const: true + default: item_reference + id: + type: string + description: The ID of the item to reference. + allOf: + - $ref: '#/components/schemas/OpenAI.InputItem' + description: An internal identifier for an item to reference. + title: Item reference + OpenAI.ItemResource: type: object required: - type properties: type: - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigType' + $ref: '#/components/schemas/OpenAI.ItemResourceType' discriminator: propertyName: type mapping: - custom: '#/components/schemas/OpenAI.EvalCustomDataSourceConfigResource' - stored_completions: '#/components/schemas/OpenAI.EvalStoredCompletionsDataSourceConfigResource' - logs: '#/components/schemas/OpenAI.EvalLogsDataSourceConfigResource' - OpenAI.EvalDataSourceConfigType: - type: string - enum: - - custom - - logs - - stored_completions - OpenAI.EvalGraderLabelModelParams: + computer_call_output: '#/components/schemas/OpenAI.ComputerToolCallOutputResource' + function_call: '#/components/schemas/OpenAI.FunctionToolCallResource' + function_call_output: '#/components/schemas/OpenAI.FunctionToolCallOutputResource' + shell_call: '#/components/schemas/OpenAI.FunctionShellCall' + shell_call_output: '#/components/schemas/OpenAI.FunctionShellCallOutput' + apply_patch_call: '#/components/schemas/OpenAI.ApplyPatchToolCall' + apply_patch_call_output: '#/components/schemas/OpenAI.ApplyPatchToolCallOutput' + mcp_approval_response: '#/components/schemas/OpenAI.MCPApprovalResponseResource' + message: '#/components/schemas/OpenAI.InputMessageResource' + output_message: '#/components/schemas/OpenAI.ItemResourceOutputMessage' + file_search_call: '#/components/schemas/OpenAI.ItemResourceFileSearchToolCall' + computer_call: '#/components/schemas/OpenAI.ItemResourceComputerToolCall' + web_search_call: '#/components/schemas/OpenAI.ItemResourceWebSearchToolCall' + image_generation_call: '#/components/schemas/OpenAI.ItemResourceImageGenToolCall' + code_interpreter_call: '#/components/schemas/OpenAI.ItemResourceCodeInterpreterToolCall' + local_shell_call: '#/components/schemas/OpenAI.ItemResourceLocalShellToolCall' + local_shell_call_output: '#/components/schemas/OpenAI.ItemResourceLocalShellToolCallOutput' + mcp_list_tools: '#/components/schemas/OpenAI.ItemResourceMCPListTools' + mcp_approval_request: '#/components/schemas/OpenAI.ItemResourceMCPApprovalRequest' + mcp_call: '#/components/schemas/OpenAI.ItemResourceMCPToolCall' + description: Content item used to generate a response. + OpenAI.ItemResourceCodeInterpreterToolCall: type: object required: - type - - name - - model - - input - - labels - - passing_labels + - id + - status + - container_id + - code + - outputs properties: type: type: string enum: - - label_model - description: The object type, which is always `label_model`. - name: + - code_interpreter_call + description: The type of the code interpreter tool call. Always `code_interpreter_call`. + x-stainless-const: true + default: code_interpreter_call + id: type: string - description: The name of the grader. - model: + description: The unique ID of the code interpreter tool call. + status: type: string - description: The model to use for the evaluation. Must support structured outputs. - input: - type: array - items: - $ref: '#/components/schemas/OpenAI.CreateEvalItem' - description: A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}. - labels: - type: array - items: - type: string - description: The labels to classify to each item in the evaluation. - passing_labels: - type: array - items: - type: string - description: The labels that indicate a passing result. Must be a subset of labels. + enum: + - in_progress + - completed + - incomplete + - interpreting + - failed + description: The status of the code interpreter tool call. Valid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`. + container_id: + type: string + description: The ID of the container used to run the code. + code: + anyOf: + - type: string + - type: 'null' + outputs: + anyOf: + - type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputLogs' + - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputImage' + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderParams' - description: |- - A LabelModelGrader object which uses a model to assign labels to each item - in the evaluation. - OpenAI.EvalGraderLabelModelResource: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceComputerToolCall: type: object required: - type - - name - - model - - input - - labels - - passing_labels + - id + - call_id + - action + - pending_safety_checks + - status properties: type: type: string enum: - - label_model - description: The object type, which is always `label_model`. - name: + - computer_call + description: The type of the computer call. Always `computer_call`. + default: computer_call + id: type: string - description: The name of the grader. - model: + description: The unique ID of the computer call. + call_id: type: string - description: The model to use for the evaluation. Must support structured outputs. - input: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalItem' - labels: + description: An identifier used when responding to the tool call with output. + action: + $ref: '#/components/schemas/OpenAI.ComputerAction' + pending_safety_checks: type: array items: - type: string - description: The labels to assign to each item in the evaluation. - passing_labels: + $ref: '#/components/schemas/OpenAI.ComputerCallSafetyCheckParam' + description: The pending safety checks for the computer call. + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceFileSearchToolCall: + type: object + required: + - id + - type + - status + - queries + properties: + id: + type: string + description: The unique ID of the file search tool call. + type: + type: string + enum: + - file_search_call + description: The type of the file search tool call. Always `file_search_call`. + x-stainless-const: true + status: + type: string + enum: + - in_progress + - searching + - completed + - incomplete + - failed + description: |- + The status of the file search tool call. One of `in_progress`, + `searching`, `incomplete` or `failed`, + queries: type: array items: type: string - description: The labels that indicate a passing result. Must be a subset of labels. + description: The queries used to search for files. + results: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.FileSearchToolCallResults' + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderResource' - OpenAI.EvalGraderParams: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceImageGenToolCall: type: object required: - type + - id + - status + - result properties: type: - $ref: '#/components/schemas/OpenAI.GraderType' - discriminator: - propertyName: type - mapping: - label_model: '#/components/schemas/OpenAI.EvalGraderLabelModelParams' - string_check: '#/components/schemas/OpenAI.EvalGraderStringCheckParams' - text_similarity: '#/components/schemas/OpenAI.EvalGraderTextSimilarityParams' - python: '#/components/schemas/OpenAI.EvalGraderPythonParams' - score_model: '#/components/schemas/OpenAI.EvalGraderScoreModelParams' - OpenAI.EvalGraderPythonParams: + type: string + enum: + - image_generation_call + description: The type of the image generation call. Always `image_generation_call`. + x-stainless-const: true + id: + type: string + description: The unique ID of the image generation call. + status: + type: string + enum: + - in_progress + - completed + - generating + - failed + description: The status of the image generation call. + result: + anyOf: + - type: string + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceLocalShellToolCall: type: object required: - type - - name - - source + - id + - call_id + - action + - status properties: type: type: string enum: - - python - description: The object type, which is always `python`. - name: + - local_shell_call + description: The type of the local shell call. Always `local_shell_call`. + x-stainless-const: true + id: type: string - description: The name of the grader. - source: + description: The unique ID of the local shell call. + call_id: type: string - description: The source code of the python script. - image_tag: + description: The unique ID of the local shell tool call generated by the model. + action: + $ref: '#/components/schemas/OpenAI.LocalShellExecAction' + status: type: string - description: The image tag to use for the python script. - pass_threshold: - type: number - format: float - description: The threshold for the score. + enum: + - in_progress + - completed + - incomplete + description: The status of the local shell call. allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderParams' - OpenAI.EvalGraderPythonResource: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceLocalShellToolCallOutput: type: object required: - type - - name - - source + - id + - output properties: type: type: string enum: - - python - description: The object type, which is always `python`. - name: - type: string - description: The name of the grader. - source: + - local_shell_call_output + description: The type of the local shell tool call output. Always `local_shell_call_output`. + x-stainless-const: true + id: type: string - description: The source code of the python script. - image_tag: + description: The unique ID of the local shell tool call generated by the model. + output: type: string - description: The image tag to use for the python script. - pass_threshold: - type: number - format: float - description: The threshold for the score. + description: A JSON string of the output of the local shell tool call. + status: + anyOf: + - type: string + enum: + - in_progress + - completed + - incomplete + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderResource' - OpenAI.EvalGraderResource: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceMCPApprovalRequest: type: object required: - type + - id + - server_label + - name + - arguments properties: type: - $ref: '#/components/schemas/OpenAI.GraderType' - discriminator: - propertyName: type - mapping: - label_model: '#/components/schemas/OpenAI.EvalGraderLabelModelResource' - text_similarity: '#/components/schemas/OpenAI.EvalGraderTextSimilarityResource' - python: '#/components/schemas/OpenAI.EvalGraderPythonResource' - score_model: '#/components/schemas/OpenAI.EvalGraderScoreModelResource' - OpenAI.EvalGraderScoreModelParams: + type: string + enum: + - mcp_approval_request + description: The type of the item. Always `mcp_approval_request`. + x-stainless-const: true + id: + type: string + description: The unique ID of the approval request. + server_label: + type: string + description: The label of the MCP server making the request. + name: + type: string + description: The name of the tool to run. + arguments: + type: string + description: A JSON string of arguments for the tool. + allOf: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceMCPListTools: type: object required: - type - - name - - model - - input + - id + - server_label + - tools properties: type: type: string enum: - - score_model - description: The object type, which is always `score_model`. - name: + - mcp_list_tools + description: The type of the item. Always `mcp_list_tools`. + x-stainless-const: true + id: type: string - description: The name of the grader. - model: + description: The unique ID of the list. + server_label: type: string - description: The model to use for the evaluation. - sampling_params: - description: The sampling parameters for the model. - input: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalItem' - description: The input text. This may include template strings. - range: + description: The label of the MCP server. + tools: type: array items: - type: number - format: float - description: The range of the score. Defaults to `[0, 1]`. - pass_threshold: - type: number - format: float - description: The threshold for the score. + $ref: '#/components/schemas/OpenAI.MCPListToolsTool' + description: The tools available on the server. + error: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderParams' - OpenAI.EvalGraderScoreModelResource: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceMCPToolCall: type: object required: - type + - id + - server_label - name - - model - - input + - arguments properties: type: type: string enum: - - score_model - description: The object type, which is always `score_model`. + - mcp_call + description: The type of the item. Always `mcp_call`. + x-stainless-const: true + id: + type: string + description: The unique ID of the tool call. + server_label: + type: string + description: The label of the MCP server running the tool. name: type: string - description: The name of the grader. - model: + description: The name of the tool that was run. + arguments: type: string - description: The model to use for the evaluation. - sampling_params: - description: The sampling parameters for the model. - input: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalItem' - description: The input text. This may include template strings. - range: - type: array - items: - type: number - format: float - description: The range of the score. Defaults to `[0, 1]`. - pass_threshold: - type: number - format: float - description: The threshold for the score. + description: A JSON string of the arguments passed to the tool. + output: + anyOf: + - type: string + - type: 'null' + error: + anyOf: + - type: string + - type: 'null' + status: + allOf: + - $ref: '#/components/schemas/OpenAI.MCPToolCallStatus' + description: The status of the tool call. One of `in_progress`, `completed`, `incomplete`, `calling`, or `failed`. + approval_request_id: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderResource' - OpenAI.EvalGraderStringCheckParams: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceOutputMessage: type: object required: + - id - type - - name - - input - - reference - - operation + - role + - content + - status properties: + id: + type: string + description: The unique ID of the output message. + x-stainless-go-json: omitzero type: type: string enum: - - string_check - description: The object type, which is always `string_check`. - name: - type: string - description: The name of the grader. - input: - type: string - description: The input text. This may include template strings. - reference: + - output_message + description: The type of the output message. Always `message`. + x-stainless-const: true + role: type: string - description: The reference text. This may include template strings. - operation: + enum: + - assistant + description: The role of the output message. Always `assistant`. + x-stainless-const: true + content: + type: array + items: + $ref: '#/components/schemas/OpenAI.OutputMessageContent' + description: The content of the output message. + status: type: string enum: - - eq - - ne - - like - - ilike - description: The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`. + - in_progress + - completed + - incomplete + description: |- + The status of the message input. One of `in_progress`, `completed`, or + `incomplete`. Populated when input items are returned via API. allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderParams' - OpenAI.EvalGraderTextSimilarityParams: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.ItemResourceType: + anyOf: + - type: string + - type: string + enum: + - message + - output_message + - file_search_call + - computer_call + - computer_call_output + - web_search_call + - function_call + - function_call_output + - image_generation_call + - code_interpreter_call + - local_shell_call + - local_shell_call_output + - shell_call + - shell_call_output + - apply_patch_call + - apply_patch_call_output + - mcp_list_tools + - mcp_approval_request + - mcp_approval_response + - mcp_call + OpenAI.ItemResourceWebSearchToolCall: type: object required: + - id - type - - name - - input - - reference - - evaluation_metric - - pass_threshold + - status + - action properties: + id: + type: string + description: The unique ID of the web search tool call. type: type: string enum: - - text_similarity - description: The type of grader. - name: - type: string - description: The name of the grader. - input: - type: string - description: The text being graded. - reference: - type: string - description: The text being graded against. - evaluation_metric: + - web_search_call + description: The type of the web search tool call. Always `web_search_call`. + x-stainless-const: true + status: type: string enum: - - fuzzy_match - - bleu - - gleu - - meteor - - rouge_1 - - rouge_2 - - rouge_3 - - rouge_4 - - rouge_5 - - rouge_l - description: The evaluation metric to use. One of `fuzzy_match`, `bleu`, `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`. - pass_threshold: - type: number - format: float - description: The threshold for the score. + - in_progress + - searching + - completed + - failed + description: The status of the web search tool call. + action: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchActionSearch' + - $ref: '#/components/schemas/OpenAI.WebSearchActionOpenPage' + - $ref: '#/components/schemas/OpenAI.WebSearchActionFind' + description: |- + An object describing the specific action taken in this web search call. + Includes details on how the model used the web (search, open_page, find). allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderParams' - OpenAI.EvalGraderTextSimilarityResource: + - $ref: '#/components/schemas/OpenAI.ItemResource' + OpenAI.KeyPressAction: type: object required: - type - - name - - input - - reference - - evaluation_metric - - pass_threshold + - keys properties: type: type: string enum: - - text_similarity - description: The type of grader. - name: - type: string - description: The name of the grader. - input: + - keypress + description: Specifies the event type. For a keypress action, this property is always set to `keypress`. + x-stainless-const: true + default: keypress + keys: + type: array + items: + type: string + description: The combination of keys the model is requesting to be pressed. This is an array of strings, each representing a key. + allOf: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A collection of keypresses the model would like to perform. + title: KeyPress + OpenAI.ListBatchesResponse: + type: object + required: + - data + - has_more + - object + properties: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.Batch' + first_id: type: string - description: The text being graded. - reference: + last_id: type: string - description: The text being graded against. - evaluation_metric: + has_more: + type: boolean + object: type: string enum: - - fuzzy_match - - bleu - - gleu - - meteor - - rouge_1 - - rouge_2 - - rouge_3 - - rouge_4 - - rouge_5 - - rouge_l - description: The evaluation metric to use. One of `fuzzy_match`, `bleu`, `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`. - pass_threshold: - type: number - format: float - description: The threshold for the score. - allOf: - - $ref: '#/components/schemas/OpenAI.EvalGraderResource' - OpenAI.EvalItem: + - list + x-stainless-const: true + OpenAI.ListFilesResponse: type: object required: - - role - - content + - object + - data + - first_id + - last_id + - has_more properties: - role: + object: + type: string + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.OpenAIFile' + first_id: + type: string + last_id: + type: string + has_more: + type: boolean + OpenAI.ListFineTuningCheckpointPermissionResponse: + type: object + required: + - data + - object + - has_more + properties: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.FineTuningCheckpointPermission' + object: type: string enum: - - user - - assistant - - system - - developer - description: |- - The role of the message input. One of `user`, `assistant`, `system`, or - `developer`. - content: + - list + x-stainless-const: true + first_id: anyOf: - type: string - - $ref: '#/components/schemas/OpenAI.EvalItemContent' - description: Text inputs to the model - can contain template strings. - type: - type: string - enum: - - message - description: The type of the message input. Always `message`. - description: |- - A message input to the model with a role indicating instruction following - hierarchy. Instructions given with the `developer` or `system` role take - precedence over instructions given with the `user` role. Messages with the - `assistant` role are presumed to have been generated by the model in previous - interactions. - OpenAI.EvalItemContent: + - type: 'null' + last_id: + anyOf: + - type: string + - type: 'null' + has_more: + type: boolean + OpenAI.ListFineTuningJobCheckpointsResponse: type: object required: - - type + - data + - object + - has_more properties: - type: - $ref: '#/components/schemas/OpenAI.EvalItemContentType' - discriminator: - propertyName: type - mapping: - input_text: '#/components/schemas/OpenAI.EvalItemContentInputText' - output_text: '#/components/schemas/OpenAI.EvalItemContentOutputText' - OpenAI.EvalItemContentInputText: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.FineTuningJobCheckpoint' + object: + type: string + enum: + - list + x-stainless-const: true + first_id: + anyOf: + - type: string + - type: 'null' + last_id: + anyOf: + - type: string + - type: 'null' + has_more: + type: boolean + OpenAI.ListFineTuningJobEventsResponse: type: object required: - - type - - text + - data + - object + - has_more properties: - type: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.FineTuningJobEvent' + object: type: string enum: - - input_text - text: - type: string - allOf: - - $ref: '#/components/schemas/OpenAI.EvalItemContent' - OpenAI.EvalItemContentOutputText: + - list + x-stainless-const: true + has_more: + type: boolean + OpenAI.ListMessagesResponse: type: object required: - - type - - text + - object + - data + - first_id + - last_id + - has_more properties: - type: + object: type: string - enum: - - output_text - text: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.MessageObject' + first_id: type: string - allOf: - - $ref: '#/components/schemas/OpenAI.EvalItemContent' - OpenAI.EvalItemContentType: - type: string - enum: - - input_text - - output_text - OpenAI.EvalJsonlRunDataSourceParams: + last_id: + type: string + has_more: + type: boolean + OpenAI.ListModelsResponse: type: object required: - - type - - source + - object + - data properties: - type: + object: type: string enum: - - jsonl - description: The type of data source. Always `jsonl`. - source: - anyOf: - - $ref: '#/components/schemas/OpenAI.EvalRunFileContentDataContentSource' - - $ref: '#/components/schemas/OpenAI.EvalRunFileIdDataContentSource' - description: Determines what populates the `item` namespace in the data source. - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceParams' - description: A JsonlRunDataSource object with that specifies a JSONL file that matches the eval - OpenAI.EvalList: + - list + x-stainless-const: true + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.Model' + OpenAI.ListPaginatedFineTuningJobsResponse: + type: object + required: + - data + - has_more + - object + properties: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.FineTuningJob' + has_more: + type: boolean + object: + type: string + enum: + - list + x-stainless-const: true + OpenAI.ListRunStepsResponse: type: object required: - object @@ -9312,369 +17343,125 @@ components: properties: object: type: string - enum: - - list - description: The type of this object. It is always set to "list". - default: list data: type: array items: - $ref: '#/components/schemas/OpenAI.Eval' - description: An array of eval objects. + $ref: '#/components/schemas/OpenAI.RunStepObject' first_id: type: string - description: The identifier of the first eval in the data array. last_id: type: string - description: The identifier of the last eval in the data array. has_more: type: boolean - description: Indicates whether there are more evals available. - description: An object representing a list of evals. - OpenAI.EvalLogsDataSourceConfigParams: + OpenAI.ListRunsResponse: type: object required: - - type + - object + - data + - first_id + - last_id + - has_more properties: - type: + object: type: string - enum: - - logs - description: The type of data source. Always `logs`. - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigParams' - description: |- - A data source config which specifies the metadata property of your logs query. - This is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc. - OpenAI.EvalLogsDataSourceConfigResource: - type: object - required: - - type - - metadata - - schema - properties: - type: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.RunObject' + first_id: type: string - enum: - - logs - description: The type of data source. Always `logs`. - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - schema: - type: object - additionalProperties: {} - description: |- - The json schema for the run data source items. - Learn how to build JSON schemas [here](https://json-schema.org/). - allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigResource' - description: |- - A LogsDataSourceConfig which specifies the metadata property of your logs query. - This is usually metadata like `usecase=chatbot` or `prompt-version=v2`, etc. - The schema returned by this data source config is used to defined what variables are available in your evals. - `item` and `sample` are both defined when using this data source config. - OpenAI.EvalResponsesRunDataSourceParams: + last_id: + type: string + has_more: + type: boolean + OpenAI.ListVectorStoreFilesResponse: type: object required: - - type - - source + - object + - data + - first_id + - last_id + - has_more properties: - type: + object: type: string - enum: - - responses - description: The type of run data source. Always `responses`. - input_messages: - anyOf: - - type: object - properties: - type: - type: string - enum: - - template - description: The type of input messages. Always `template`. - template: - type: array - items: - anyOf: - - type: object - properties: - role: - type: string - description: The role of the message (e.g. "system", "assistant", "user"). - content: - type: string - description: The content of the message. - required: - - role - - content - - $ref: '#/components/schemas/OpenAI.EvalItem' - description: A list of chat messages forming the prompt or context. May include variable references to the `item` namespace, ie {{item.name}}. - required: - - type - - template - - type: object - properties: - type: - type: string - enum: - - item_reference - description: The type of input messages. Always `item_reference`. - item_reference: - type: string - description: A reference to a variable in the `item` namespace. Ie, "item.name" - required: - - type - - item_reference - description: Used when sampling from a model. Dictates the structure of the messages passed into the model. Can either be a reference to a prebuilt trajectory (ie, `item.input_trajectory`), or a template with variable references to the `item` namespace. - sampling_params: - $ref: '#/components/schemas/AzureEvalAPIResponseSamplingParams' - model: + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' + first_id: type: string - description: The name of the model to use for generating completions (e.g. "o3-mini"). - source: - anyOf: - - $ref: '#/components/schemas/OpenAI.EvalRunFileContentDataContentSource' - - $ref: '#/components/schemas/OpenAI.EvalRunFileIdDataContentSource' - - $ref: '#/components/schemas/OpenAI.EvalRunResponsesDataContentSource' - description: Determines what populates the `item` namespace in this run's data source. - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceParams' - description: A ResponsesRunDataSource object describing a model sampling configuration. - OpenAI.EvalRun: + last_id: + type: string + has_more: + type: boolean + OpenAI.ListVectorStoresResponse: type: object required: - object - - id - - eval_id - - status - - model - - name - - created_at - - report_url - - result_counts - - per_model_usage - - per_testing_criteria_results - - data_source - - metadata - - error + - data + - first_id + - last_id + - has_more properties: object: type: string - enum: - - eval.run - description: The type of the object. Always "eval.run". - default: eval.run - id: - type: string - description: Unique identifier for the evaluation run. - eval_id: - type: string - description: The identifier of the associated evaluation. - status: - type: string - description: The status of the evaluation run. - model: - type: string - description: The model that is evaluated, if applicable. - name: - type: string - description: The name of the evaluation run. - created_at: - type: integer - format: unixtime - description: Unix timestamp (in seconds) when the evaluation run was created. - report_url: - type: string - description: The URL to the rendered evaluation run report on the UI dashboard. - result_counts: - type: object - properties: - total: - type: integer - format: int32 - description: Total number of executed output items. - errored: - type: integer - format: int32 - description: Number of output items that resulted in an error. - failed: - type: integer - format: int32 - description: Number of output items that failed to pass the evaluation. - passed: - type: integer - format: int32 - description: Number of output items that passed the evaluation. - required: - - total - - errored - - failed - - passed - description: Counters summarizing the outcomes of the evaluation run. - per_model_usage: - type: array - items: - type: object - properties: - model_name: - type: string - description: The name of the model. - invocation_count: - type: integer - format: int32 - description: The number of invocations. - prompt_tokens: - type: integer - format: int32 - description: The number of prompt tokens used. - completion_tokens: - type: integer - format: int32 - description: The number of completion tokens generated. - total_tokens: - type: integer - format: int32 - description: The total number of tokens used. - cached_tokens: - type: integer - format: int32 - description: The number of tokens retrieved from cache. - required: - - model_name - - invocation_count - - prompt_tokens - - completion_tokens - - total_tokens - - cached_tokens - description: Usage statistics for each model during the evaluation run. - per_testing_criteria_results: + data: type: array items: - type: object - properties: - testing_criteria: - type: string - description: A description of the testing criteria. - passed: - type: integer - format: int32 - description: Number of tests passed for this criteria. - failed: - type: integer - format: int32 - description: Number of tests failed for this criteria. - required: - - testing_criteria - - passed - - failed - description: Results per testing criteria applied during the evaluation run. - data_source: - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceResource' - description: Information about the run's data source. - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - error: - $ref: '#/components/schemas/OpenAI.EvalApiError' - description: A schema representing an evaluation run. - OpenAI.EvalRunDataContentSource: - type: object - required: - - type - properties: - type: - $ref: '#/components/schemas/OpenAI.EvalRunDataContentSourceType' - discriminator: - propertyName: type - mapping: - file_id: '#/components/schemas/OpenAI.EvalRunFileIdDataContentSource' - stored_completions: '#/components/schemas/OpenAI.EvalRunStoredCompletionsDataContentSource' - responses: '#/components/schemas/OpenAI.EvalRunResponsesDataContentSource' - OpenAI.EvalRunDataContentSourceType: - type: string - enum: - - file_id - - file_content - - stored_completions - - responses - OpenAI.EvalRunDataSourceCompletionsResource: - type: object - required: - - type - properties: - type: + $ref: '#/components/schemas/OpenAI.VectorStoreObject' + first_id: type: string - enum: - - completions - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceResource' - OpenAI.EvalRunDataSourceJsonlResource: - type: object - required: - - type - properties: - type: + last_id: type: string - enum: - - jsonl - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceResource' - OpenAI.EvalRunDataSourceParams: - type: object - required: - - type - properties: - type: - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceType' - discriminator: - propertyName: type - mapping: - jsonl: '#/components/schemas/OpenAI.EvalJsonlRunDataSourceParams' - completions: '#/components/schemas/OpenAI.EvalCompletionsRunDataSourceParams' - responses: '#/components/schemas/OpenAI.EvalResponsesRunDataSourceParams' - OpenAI.EvalRunDataSourceResource: + has_more: + type: boolean + OpenAI.LocalShellCallStatus: + type: string + enum: + - in_progress + - completed + - incomplete + OpenAI.LocalShellExecAction: type: object required: - type + - command + - env properties: type: - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceType' - OpenAI.EvalRunDataSourceResponsesResource: + type: string + enum: + - exec + description: The type of the local shell action. Always `exec`. + x-stainless-const: true + default: exec + command: + type: array + items: + type: string + description: The command to run. + timeout_ms: + anyOf: + - type: integer + - type: 'null' + working_directory: + anyOf: + - type: string + - type: 'null' + env: + type: object + unevaluatedProperties: + type: string + description: Environment variables to set for the command. + x-oaiTypeLabel: map + user: + anyOf: + - type: string + - type: 'null' + description: Execute a shell command on the server. + title: Local shell exec action + OpenAI.LocalShellToolParam: type: object required: - type @@ -9682,1201 +17469,1215 @@ components: type: type: string enum: - - responses + - local_shell + description: The type of the local shell tool. Always `local_shell`. + x-stainless-const: true + default: local_shell allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataSourceResource' - OpenAI.EvalRunDataSourceType: - type: string - enum: - - jsonl - - completions - - responses - OpenAI.EvalRunFileContentDataContentSource: + - $ref: '#/components/schemas/OpenAI.Tool' + description: A tool that allows the model to execute shell commands in a local environment. + title: Local shell tool + OpenAI.LogProb: type: object required: - - type - - content + - token + - logprob + - bytes + - top_logprobs properties: - type: + token: type: string - enum: - - file_content - description: The type of jsonl source. Always `file_content`. - content: + logprob: + type: number + bytes: type: array items: - type: object - properties: - item: - type: object - additionalProperties: {} - sample: - type: object - additionalProperties: {} - required: - - item - description: The content of the jsonl file. - allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataContentSource' - OpenAI.EvalRunFileIdDataContentSource: + type: integer + top_logprobs: + type: array + items: + $ref: '#/components/schemas/OpenAI.TopLogProb' + description: The log probability of a token. + title: Log probability + OpenAI.MCPApprovalResponseResource: type: object required: - type - id + - approval_request_id + - approve properties: type: type: string enum: - - file_id - description: The type of jsonl source. Always `file_id`. + - mcp_approval_response + description: The type of the item. Always `mcp_approval_response`. + x-stainless-const: true id: type: string - description: The identifier of the file. + description: The unique ID of the approval response + approval_request_id: + type: string + description: The ID of the approval request being answered. + approve: + type: boolean + description: Whether the request was approved. + reason: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataContentSource' - OpenAI.EvalRunList: + - $ref: '#/components/schemas/OpenAI.ItemResource' + description: A response to an MCP approval request. + title: MCP approval response + OpenAI.MCPListToolsTool: type: object required: - - object - - data - - first_id - - last_id - - has_more + - name + - input_schema properties: - object: - type: string - enum: - - list - description: The type of this object. It is always set to "list". - default: list - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalRun' - description: An array of eval run objects. - first_id: - type: string - description: The identifier of the first eval run in the data array. - last_id: + name: type: string - description: The identifier of the last eval run in the data array. - has_more: - type: boolean - description: Indicates whether there are more evals available. - description: An object representing a list of runs for an evaluation. - OpenAI.EvalRunOutputItem: + description: The name of the tool. + description: + anyOf: + - type: string + - type: 'null' + input_schema: + allOf: + - $ref: '#/components/schemas/OpenAI.MCPListToolsToolInputSchema' + description: The JSON schema describing the tool's input. + annotations: + anyOf: + - $ref: '#/components/schemas/OpenAI.MCPListToolsToolAnnotations' + - type: 'null' + description: A tool available on an MCP server. + title: MCP list tools tool + OpenAI.MCPListToolsToolAnnotations: + type: object + OpenAI.MCPListToolsToolInputSchema: + type: object + OpenAI.MCPTool: type: object required: - - object - - id - - run_id - - eval_id - - created_at - - status - - datasource_item_id - - datasource_item - - results - - sample + - type + - server_label properties: - object: + type: type: string enum: - - eval.run.output_item - description: The type of the object. Always "eval.run.output_item". - default: eval.run.output_item - id: + - mcp + description: The type of the MCP tool. Always `mcp`. + x-stainless-const: true + server_label: type: string - description: Unique identifier for the evaluation run output item. - run_id: + description: A label for this MCP server, used to identify it in tool calls. + server_url: type: string - description: The identifier of the evaluation run associated with this output item. - eval_id: + description: |- + The URL for the MCP server. One of `server_url` or `connector_id` must be + provided. + connector_id: + type: string + enum: + - connector_dropbox + - connector_gmail + - connector_googlecalendar + - connector_googledrive + - connector_microsoftteams + - connector_outlookcalendar + - connector_outlookemail + - connector_sharepoint + description: |- + Identifier for service connectors, like those available in ChatGPT. One of + `server_url` or `connector_id` must be provided. Learn more about service + connectors [here](https://platform.openai.com/docs/guides/tools-remote-mcp#connectors). + + Currently supported `connector_id` values are: + + - Dropbox: `connector_dropbox` + - Gmail: `connector_gmail` + - Google Calendar: `connector_googlecalendar` + - Google Drive: `connector_googledrive` + - Microsoft Teams: `connector_microsoftteams` + - Outlook Calendar: `connector_outlookcalendar` + - Outlook Email: `connector_outlookemail` + - SharePoint: `connector_sharepoint` + authorization: type: string - description: The identifier of the evaluation group. - created_at: - type: integer - format: unixtime - description: Unix timestamp (in seconds) when the evaluation run was created. - status: + description: |- + An OAuth access token that can be used with a remote MCP server, either + with a custom MCP server URL or a service connector. Your application + must handle the OAuth authorization flow and provide the token here. + server_description: type: string - description: The status of the evaluation run. - datasource_item_id: - type: integer - format: int32 - description: The identifier for the data source item. - datasource_item: - type: object - additionalProperties: {} - description: Details of the input data source item. - results: - type: array - items: - type: object - additionalProperties: {} - description: A list of results from the evaluation run. - sample: - type: object - properties: - input: - type: array - items: - type: object - properties: - role: - type: string - description: The role of the message sender (e.g., system, user, developer). - content: - type: string - description: The content of the message. - required: - - role - - content - description: An array of input messages. - output: - type: array + description: Optional description of the MCP server, used to provide more context. + headers: + anyOf: + - type: object + unevaluatedProperties: + type: string + - type: 'null' + allowed_tools: + anyOf: + - type: array items: - type: object - properties: - role: - type: string - description: The role of the message (e.g. "system", "assistant", "user"). - content: - type: string - description: The content of the message. - description: An array of output messages. - finish_reason: - type: string - description: The reason why the sample generation was finished. - model: - type: string - description: The model used for generating the sample. - usage: - type: object - properties: - total_tokens: - type: integer - format: int32 - description: The total number of tokens used. - completion_tokens: - type: integer - format: int32 - description: The number of completion tokens generated. - prompt_tokens: - type: integer - format: int32 - description: The number of prompt tokens used. - cached_tokens: - type: integer - format: int32 - description: The number of tokens retrieved from cache. - required: - - total_tokens - - completion_tokens - - prompt_tokens - - cached_tokens - description: Token usage details for the sample. - error: - $ref: '#/components/schemas/OpenAI.EvalApiError' - temperature: - type: number - format: float - description: The sampling temperature used. - max_completion_tokens: - type: integer - format: int32 - description: The maximum number of tokens allowed for completion. - top_p: - type: number - format: float - description: The top_p value used for sampling. - seed: - type: integer - format: int32 - description: The seed used for generating the sample. - required: - - input - - output - - finish_reason - - model - - usage - - error - - temperature - - max_completion_tokens - - top_p - - seed - description: A sample containing the input and output of the evaluation run. - description: A schema representing an evaluation run output item. - OpenAI.EvalRunOutputItemList: - type: object - required: - - object - - data - - first_id - - last_id - - has_more - properties: - object: - type: string - enum: - - list - description: The type of this object. It is always set to "list". - default: list - data: + type: string + - $ref: '#/components/schemas/OpenAI.MCPToolFilter' + - type: 'null' + require_approval: + anyOf: + - $ref: '#/components/schemas/OpenAI.MCPToolRequireApproval' + - type: string + enum: + - always + - never + - type: 'null' + default: always + allOf: + - $ref: '#/components/schemas/OpenAI.Tool' + description: |- + Give the model access to additional tools via remote Model Context Protocol + (MCP) servers. [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp). + title: MCP tool + OpenAI.MCPToolCallStatus: + type: string + enum: + - in_progress + - completed + - incomplete + - calling + - failed + OpenAI.MCPToolFilter: + type: object + properties: + tool_names: type: array items: - $ref: '#/components/schemas/OpenAI.EvalRunOutputItem' - description: An array of eval run output item objects. - first_id: - type: string - description: The identifier of the first eval run output item in the data array. - last_id: - type: string - description: The identifier of the last eval run output item in the data array. - has_more: + type: string + description: List of allowed tool names. + title: MCP allowed tools + read_only: type: boolean - description: Indicates whether there are more eval run output items available. - description: An object representing a list of output items for an evaluation run. - OpenAI.EvalRunResponsesDataContentSource: + description: |- + Indicates whether or not a tool modifies data or is read-only. If an + MCP server is [annotated with `readOnlyHint`](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint), + it will match this filter. + description: A filter object to specify which tools are allowed. + title: MCP tool filter + OpenAI.MCPToolRequireApproval: + type: object + properties: + always: + $ref: '#/components/schemas/OpenAI.MCPToolFilter' + never: + $ref: '#/components/schemas/OpenAI.MCPToolFilter' + OpenAI.Message: type: object required: - type + - id + - status + - role + - content properties: type: type: string enum: - - responses - description: The type of run data source. Always `responses`. - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - model: - type: string - nullable: true - description: The name of the model to find responses for. This is a query parameter used to select responses. - instructions_search: + - message + description: The type of the message. Always set to `message`. + x-stainless-const: true + default: message + id: type: string - nullable: true - description: Optional string to search the 'instructions' field. This is a query parameter used to select responses. - created_after: - type: integer - format: int32 - nullable: true - minimum: 0 - description: Only include items created after this timestamp (inclusive). This is a query parameter used to select responses. - created_before: - type: integer - format: int32 - nullable: true - minimum: 0 - description: Only include items created before this timestamp (inclusive). This is a query parameter used to select responses. - reasoning_effort: + description: The unique ID of the message. + status: allOf: - - $ref: '#/components/schemas/OpenAI.ReasoningEffort' - nullable: true - description: Optional reasoning effort parameter. This is a query parameter used to select responses. - default: medium - temperature: - type: number - format: float - nullable: true - description: Sampling temperature. This is a query parameter used to select responses. - top_p: - type: number - format: float - nullable: true - description: Nucleus sampling parameter. This is a query parameter used to select responses. - users: - type: array - items: - type: string - nullable: true - description: List of user identifiers. This is a query parameter used to select responses. - tools: + - $ref: '#/components/schemas/OpenAI.MessageStatus' + description: The status of item. One of `in_progress`, `completed`, or `incomplete`. Populated when items are returned via API. + role: + allOf: + - $ref: '#/components/schemas/OpenAI.MessageRole' + description: The role of the message. One of `unknown`, `user`, `assistant`, `system`, `critic`, `discriminator`, `developer`, or `tool`. + content: type: array items: - type: string - nullable: true - description: List of tool names. This is a query parameter used to select responses. + anyOf: + - $ref: '#/components/schemas/OpenAI.InputTextContent' + - $ref: '#/components/schemas/OpenAI.OutputTextContent' + - $ref: '#/components/schemas/OpenAI.TextContent' + - $ref: '#/components/schemas/OpenAI.SummaryTextContent' + - $ref: '#/components/schemas/OpenAI.ReasoningTextContent' + - $ref: '#/components/schemas/OpenAI.RefusalContent' + - $ref: '#/components/schemas/OpenAI.InputImageContent' + - $ref: '#/components/schemas/OpenAI.ComputerScreenshotContent' + - $ref: '#/components/schemas/OpenAI.InputFileContent' + description: The content of the message allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataContentSource' - description: A EvalResponsesSource object describing a run data source configuration. - OpenAI.EvalRunStoredCompletionsDataContentSource: + - $ref: '#/components/schemas/OpenAI.ConversationItem' + description: A message to or from the model. + title: Message + OpenAI.MessageContent: type: object required: - type - - metadata + properties: + type: + $ref: '#/components/schemas/OpenAI.MessageContentType' + discriminator: + propertyName: type + mapping: + image_url: '#/components/schemas/OpenAI.MessageContentImageUrlObject' + text: '#/components/schemas/OpenAI.MessageContentTextObject' + refusal: '#/components/schemas/OpenAI.MessageContentRefusalObject' + OpenAI.MessageContentImageFileObject: + type: object + required: + - type + - image_file properties: type: type: string enum: - - stored_completions - description: The type of source. Always `stored_completions`. - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - model: + - image_file + description: Always `image_file`. + x-stainless-const: true + image_file: + $ref: '#/components/schemas/OpenAI.MessageContentImageFileObjectImageFile' + allOf: + - $ref: '#/components/schemas/OpenAI.MessageContent' + description: References an image [File](https://platform.openai.com/docs/api-reference/files) in the content of a message. + title: Image file + OpenAI.MessageContentImageFileObjectImageFile: + type: object + required: + - file_id + properties: + file_id: type: string - nullable: true - description: An optional model to filter by (e.g., 'gpt-4o'). - created_after: - type: integer - format: int32 - nullable: true - description: An optional Unix timestamp to filter items created after this time. - created_before: - type: integer - format: int32 - nullable: true - description: An optional Unix timestamp to filter items created before this time. - limit: - type: integer - format: int32 - nullable: true - description: An optional maximum number of items to return. + detail: + type: string + enum: + - auto + - low + - high + default: auto + OpenAI.MessageContentImageUrlObject: + type: object + required: + - type + - image_url + properties: + type: + type: string + enum: + - image_url + description: The type of the content part. + x-stainless-const: true + image_url: + $ref: '#/components/schemas/OpenAI.MessageContentImageUrlObjectImageUrl' allOf: - - $ref: '#/components/schemas/OpenAI.EvalRunDataContentSource' - description: A StoredCompletionsRunDataSource configuration describing a set of filters - OpenAI.EvalStoredCompletionsDataSourceConfigParams: + - $ref: '#/components/schemas/OpenAI.MessageContent' + description: References an image URL in the content of a message. + title: Image URL + OpenAI.MessageContentImageUrlObjectImageUrl: + type: object + required: + - url + properties: + url: + type: string + format: uri + detail: + type: string + enum: + - auto + - low + - high + default: auto + OpenAI.MessageContentRefusalObject: type: object required: - type + - refusal properties: type: type: string enum: - - stored_completions - description: The type of data source. Always `stored_completions`. - metadata: - type: object - additionalProperties: {} - description: Metadata filters for the stored completions data source. + - refusal + description: Always `refusal`. + x-stainless-const: true + refusal: + type: string allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigParams' - description: Deprecated in favor of LogsDataSourceConfig. - deprecated: true - OpenAI.EvalStoredCompletionsDataSourceConfigResource: + - $ref: '#/components/schemas/OpenAI.MessageContent' + description: The refusal content generated by the assistant. + title: Refusal + OpenAI.MessageContentTextAnnotationsFileCitationObject: type: object required: - type - - metadata - - schema + - text + - file_citation + - start_index + - end_index properties: type: type: string enum: - - stored_completions - description: The type of data source. Always `stored_completions`. - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - schema: - type: object - additionalProperties: {} - description: |- - The json schema for the run data source items. - Learn how to build JSON schemas [here](https://json-schema.org/). + - file_citation + description: Always `file_citation`. + x-stainless-const: true + text: + type: string + description: The text in the message content that needs to be replaced. + file_citation: + $ref: '#/components/schemas/OpenAI.MessageContentTextAnnotationsFileCitationObjectFileCitation' + start_index: + type: integer + minimum: 0 + end_index: + type: integer + minimum: 0 allOf: - - $ref: '#/components/schemas/OpenAI.EvalDataSourceConfigResource' - description: Deprecated in favor of LogsDataSourceConfig. - deprecated: true - OpenAI.FileSearchTool: + - $ref: '#/components/schemas/OpenAI.TextAnnotation' + description: A citation within the message that points to a specific quote from a specific File associated with the assistant or the message. Generated when the assistant uses the "file_search" tool to search files. + title: File citation + OpenAI.MessageContentTextAnnotationsFileCitationObjectFileCitation: + type: object + required: + - file_id + properties: + file_id: + type: string + OpenAI.MessageContentTextAnnotationsFilePathObject: type: object required: - type - - vector_store_ids + - text + - file_path + - start_index + - end_index properties: type: type: string enum: - - file_search - description: The type of the file search tool. Always `file_search`. - vector_store_ids: - type: array - items: - type: string - description: The IDs of the vector stores to search. - max_num_results: + - file_path + description: Always `file_path`. + x-stainless-const: true + text: + type: string + description: The text in the message content that needs to be replaced. + file_path: + $ref: '#/components/schemas/OpenAI.MessageContentTextAnnotationsFilePathObjectFilePath' + start_index: type: integer - format: int32 - description: The maximum number of results to return. This number should be between 1 and 50 inclusive. - ranking_options: - allOf: - - $ref: '#/components/schemas/OpenAI.RankingOptions' - description: Ranking options for search. - filters: - allOf: - - $ref: '#/components/schemas/OpenAI.Filters' - nullable: true - description: A filter to apply. + minimum: 0 + end_index: + type: integer + minimum: 0 allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search). - OpenAI.FileSearchToolCallItemParam: + - $ref: '#/components/schemas/OpenAI.TextAnnotation' + description: A URL for the file that's generated when the assistant used the `code_interpreter` tool to generate a file. + title: File path + OpenAI.MessageContentTextAnnotationsFilePathObjectFilePath: + type: object + required: + - file_id + properties: + file_id: + type: string + OpenAI.MessageContentTextObject: type: object required: - type - - queries + - text properties: type: type: string enum: - - file_search_call - queries: - type: array - items: - type: string - description: The queries used to search for files. - results: + - text + description: Always `text`. + x-stainless-const: true + text: + $ref: '#/components/schemas/OpenAI.MessageContentTextObjectText' + allOf: + - $ref: '#/components/schemas/OpenAI.MessageContent' + description: The text content that is part of a message. + title: Text + OpenAI.MessageContentTextObjectText: + type: object + required: + - value + - annotations + properties: + value: + type: string + annotations: type: array items: - type: object - properties: - file_id: - type: string - description: The unique ID of the file. - text: - type: string - description: The text that was retrieved from the file. - filename: - type: string - description: The name of the file. - attributes: - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' - score: - type: number - format: float - description: The relevance score of the file - a value between 0 and 1. - nullable: true - description: The results of the file search tool call. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - The results of a file search tool call. See the - [file search guide](/docs/guides/tools-file-search) for more information. - OpenAI.FileSearchToolCallItemResource: + $ref: '#/components/schemas/OpenAI.TextAnnotation' + OpenAI.MessageContentType: + anyOf: + - type: string + - type: string + enum: + - image_file + - image_url + - text + - refusal + OpenAI.MessageObject: type: object required: - - type + - id + - object + - created_at + - thread_id - status - - queries + - incomplete_details + - completed_at + - incomplete_at + - role + - content + - assistant_id + - run_id + - attachments + - metadata properties: - type: + id: + type: string + description: The identifier, which can be referenced in API endpoints. + object: type: string enum: - - file_search_call + - thread.message + description: The object type, which is always `thread.message`. + x-stainless-const: true + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the message was created. + thread_id: + type: string + description: The [thread](https://platform.openai.com/docs/api-reference/threads) ID that this message belongs to. status: type: string enum: - in_progress - - searching - - completed - incomplete - - failed - description: |- - The status of the file search tool call. One of `in_progress`, - `searching`, `incomplete` or `failed`, - queries: - type: array - items: - type: string - description: The queries used to search for files. - results: - type: array - items: - type: object - properties: - file_id: - type: string - description: The unique ID of the file. - text: - type: string - description: The text that was retrieved from the file. - filename: - type: string - description: The name of the file. - attributes: - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' - score: - type: number - format: float - description: The relevance score of the file - a value between 0 and 1. - nullable: true - description: The results of the file search tool call. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - The results of a file search tool call. See the - [file search guide](/docs/guides/tools-file-search) for more information. - OpenAI.Filters: - anyOf: - - $ref: '#/components/schemas/OpenAI.ComparisonFilter' - - $ref: '#/components/schemas/OpenAI.CompoundFilter' - OpenAI.FineTuneDPOHyperparameters: - type: object - properties: - beta: + - completed + description: The status of the message, which can be either `in_progress`, `incomplete`, or `completed`. + incomplete_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.MessageObjectIncompleteDetails' + - type: 'null' + completed_at: anyOf: - type: string - enum: - - auto - - type: number - format: float - description: The beta value for the DPO method. A higher beta value will increase the weight of the penalty between the policy and reference model. - default: auto - batch_size: + format: date-time + - type: 'null' + type: integer + format: unixTimestamp + incomplete_at: anyOf: - type: string - enum: - - auto - - type: integer - format: int32 - description: Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance. - default: auto - learning_rate_multiplier: + format: date-time + - type: 'null' + type: integer + format: unixTimestamp + role: + type: string + enum: + - user + - assistant + description: The entity that produced the message. One of `user` or `assistant`. + content: + type: array + items: + $ref: '#/components/schemas/OpenAI.MessageContent' + description: The content of the message in array of text and/or images. + assistant_id: anyOf: - type: string - enum: - - auto - - type: number - format: float - description: Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting. - default: auto - n_epochs: + - type: 'null' + run_id: anyOf: - type: string - enum: - - auto - - type: integer - format: int32 - description: The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset. - default: auto - description: The hyperparameters used for the DPO fine-tuning job. - OpenAI.FineTuneDPOMethod: + - type: 'null' + attachments: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.MessageObjectAttachments' + - type: 'null' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + description: Represents a message within a [thread](https://platform.openai.com/docs/api-reference/threads). + title: The message object + x-oaiMeta: + name: The message object + beta: true + example: | + { + "id": "msg_abc123", + "object": "thread.message", + "created_at": 1698983503, + "thread_id": "thread_abc123", + "role": "assistant", + "content": [ + { + "type": "text", + "text": { + "value": "Hi! How can I help you today?", + "annotations": [] + } + } + ], + "assistant_id": "asst_abc123", + "run_id": "run_abc123", + "attachments": [], + "metadata": {} + } + OpenAI.MessageObjectAttachments: type: object properties: - hyperparameters: - $ref: '#/components/schemas/OpenAI.FineTuneDPOHyperparameters' - description: Configuration for the DPO fine-tuning method. - OpenAI.FineTuneMethod: + file_id: + type: string + tools: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.AssistantToolsCode' + - $ref: '#/components/schemas/OpenAI.AssistantToolsFileSearchTypeOnly' + OpenAI.MessageObjectIncompleteDetails: + type: object + required: + - reason + properties: + reason: + type: string + enum: + - content_filter + - max_tokens + - run_cancelled + - run_expired + - run_failed + OpenAI.MessageRequestContentTextObject: type: object required: - type + - text properties: type: type: string enum: - - supervised - - dpo - - reinforcement - description: The type of method. Is either `supervised`, `dpo`, or `reinforcement`. - supervised: - $ref: '#/components/schemas/OpenAI.FineTuneSupervisedMethod' - dpo: - $ref: '#/components/schemas/OpenAI.FineTuneDPOMethod' - reinforcement: - $ref: '#/components/schemas/AzureFineTuneReinforcementMethod' - description: The method used for fine-tuning. - OpenAI.FineTuneReinforcementHyperparameters: + - text + description: Always `text`. + x-stainless-const: true + text: + type: string + description: Text content to be sent to the model + description: The text content that is part of a message. + title: Text + OpenAI.MessageRole: + type: string + enum: + - unknown + - user + - assistant + - system + - critic + - discriminator + - developer + - tool + OpenAI.MessageStatus: + type: string + enum: + - in_progress + - completed + - incomplete + OpenAI.Metadata: + type: object + description: |- + Set of 16 key-value pairs that can be attached to an object. This can be + useful for storing additional information about the object in a structured + format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings + with a maximum length of 512 characters. + x-oaiTypeLabel: map + OpenAI.Model: type: object + required: + - id + - created + - object + - owned_by properties: - batch_size: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance. - default: auto - learning_rate_multiplier: - anyOf: - - type: string - enum: - - auto - - type: number - format: float - description: Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting. - default: auto - n_epochs: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset. - default: auto - reasoning_effort: + id: + type: string + description: The model identifier, which can be referenced in the API endpoints. + created: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) when the model was created. + object: type: string enum: - - default - - low - - medium - - high - description: Level of reasoning effort. - default: default - compute_multiplier: - anyOf: - - type: string - enum: - - auto - - type: number - format: float - description: Multiplier on amount of compute used for exploring search space during training. - default: auto - eval_interval: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: The number of training steps between evaluation runs. - default: auto - eval_samples: + - model + description: The object type, which is always "model". + x-stainless-const: true + owned_by: + type: string + description: The organization that owns the model. + description: Describes an OpenAI model offering that can be used with the API. + title: Model + x-oaiMeta: + name: The model object + example: | + { + "id": "VAR_chat_model_id", + "object": "model", + "created": 1686935002, + "owned_by": "openai" + } + OpenAI.ModifyMessageRequest: + type: object + properties: + metadata: anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: Number of evaluation samples to generate per training step. - default: auto - description: The hyperparameters used for the reinforcement fine-tuning job. - OpenAI.FineTuneSupervisedHyperparameters: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.ModifyRunRequest: type: object properties: - batch_size: + metadata: anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance. - default: auto - learning_rate_multiplier: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.ModifyThreadRequest: + type: object + properties: + tool_resources: anyOf: - - type: string - enum: - - auto - - type: number - format: float - description: Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting. - default: auto - n_epochs: + - $ref: '#/components/schemas/OpenAI.ModifyThreadRequestToolResources' + - type: 'null' + metadata: anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset. - default: auto - description: The hyperparameters used for the fine-tuning job. - OpenAI.FineTuneSupervisedMethod: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.ModifyThreadRequestToolResources: type: object properties: - hyperparameters: - $ref: '#/components/schemas/OpenAI.FineTuneSupervisedHyperparameters' - description: Configuration for the supervised fine-tuning method. - OpenAI.FineTuningIntegration: + code_interpreter: + $ref: '#/components/schemas/OpenAI.ModifyThreadRequestToolResourcesCodeInterpreter' + file_search: + $ref: '#/components/schemas/OpenAI.ModifyThreadRequestToolResourcesFileSearch' + OpenAI.ModifyThreadRequestToolResourcesCodeInterpreter: + type: object + properties: + file_ids: + type: array + items: + type: string + maxItems: 20 + OpenAI.ModifyThreadRequestToolResourcesFileSearch: type: object - required: - - type properties: - type: - anyOf: - - type: string - - type: string - enum: - - wandb - discriminator: - propertyName: type - mapping: - wandb: '#/components/schemas/OpenAI.FineTuningIntegrationWandb' - OpenAI.FineTuningIntegrationWandb: + vector_store_ids: + type: array + items: + type: string + maxItems: 1 + OpenAI.Move: type: object required: - type - - wandb + - x + - 'y' properties: type: type: string enum: - - wandb - description: The type of the integration being enabled for the fine-tuning job - wandb: - type: object - properties: - project: - type: string - description: The name of the project that the new run will be created under. - name: - type: string - nullable: true - description: A display name to set for the run. If not set, we will use the Job ID as the name. - entity: - type: string - nullable: true - description: |- - The entity to use for the run. This allows you to set the team or username of the WandB user that you would - like associated with the run. If not set, the default entity for the registered WandB API key is used. - tags: - type: array - items: - type: string - description: |- - A list of tags to be attached to the newly created run. These tags are passed through directly to WandB. Some - default tags are generated by OpenAI: "openai/finetune", "openai/{base-model}", "openai/{ftjob-abcdef}". - required: - - project + - move description: |- - The settings for your integration with Weights and Biases. This payload specifies the project that - metrics will be sent to. Optionally, you can set an explicit display name for your run, add tags - to your run, and set a default entity (team, username, etc) to be associated with your run. + Specifies the event type. For a move action, this property is + always set to `move`. + x-stainless-const: true + default: move + x: + type: integer + description: The x-coordinate to move to. + 'y': + type: integer + description: The y-coordinate to move to. allOf: - - $ref: '#/components/schemas/OpenAI.FineTuningIntegration' - OpenAI.FineTuningJob: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A mouse move action. + title: Move + OpenAI.NoiseReductionType: + type: string + enum: + - near_field + - far_field + description: Type of noise reduction. `near_field` is for close-talking microphones such as headphones, `far_field` is for far-field microphones such as laptop or conference room microphones. + OpenAI.OpenAIFile: type: object required: - id + - bytes - created_at - - error - - fine_tuned_model - - finished_at - - hyperparameters - - model + - filename - object - - organization_id - - result_files + - purpose - status - - trained_tokens - - training_file - - validation_file - - seed - - metadata properties: - user_provided_suffix: - type: string - nullable: true - description: The descriptive suffix applied to the job, as specified in the job creation request. id: type: string - description: The object identifier, which can be referenced in the API endpoints. + description: The file identifier, which can be referenced in the API endpoints. + bytes: + type: integer + description: The size of the file, in bytes. created_at: type: integer format: unixtime - description: The Unix timestamp (in seconds) for when the fine-tuning job was created. - error: - type: object - properties: - code: - type: string - description: A machine-readable error code. - message: - type: string - description: A human-readable error message. - param: - type: string - nullable: true - description: The parameter that was invalid, usually `training_file` or `validation_file`. This field will be null if the failure was not parameter-specific. - required: - - code - - message - - param - nullable: true - description: For fine-tuning jobs that have `failed`, this will contain more information on the cause of the failure. - fine_tuned_model: - type: string - nullable: true - description: The name of the fine-tuned model that is being created. The value will be null if the fine-tuning job is still running. - finished_at: + description: The Unix timestamp (in seconds) for when the file was created. + expires_at: type: integer format: unixtime - nullable: true - description: The Unix timestamp (in seconds) for when the fine-tuning job was finished. The value will be null if the fine-tuning job is still running. - hyperparameters: - type: object - properties: - batch_size: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - nullable: true - description: |- - Number of examples in each batch. A larger batch size means that model parameters - are updated less frequently, but with lower variance. - default: auto - learning_rate_multiplier: - anyOf: - - type: string - enum: - - auto - - type: number - format: float - description: |- - Scaling factor for the learning rate. A smaller learning rate may be useful to avoid - overfitting. - default: auto - n_epochs: - anyOf: - - type: string - enum: - - auto - - type: integer - format: int32 - description: |- - The number of epochs to train the model for. An epoch refers to one full cycle - through the training dataset. - default: auto - description: The hyperparameters used for the fine-tuning job. This value will only be returned when running `supervised` jobs. - model: + description: The Unix timestamp (in seconds) for when the file will expire. + filename: type: string - description: The base model that is being fine-tuned. + description: The name of the file. object: type: string enum: - - fine_tuning.job - description: The object type, which is always "fine_tuning.job". - organization_id: + - file + description: The object type, which is always `file`. + x-stainless-const: true + status_details: type: string - description: The organization that owns the fine-tuning job. - result_files: - type: array - items: - type: string - description: The compiled results file ID(s) for the fine-tuning job. You can retrieve the results with the [Files API](/docs/api-reference/files/retrieve-contents). + description: Deprecated. For details on why a fine-tuning training file failed validation, see the `error` field on `fine_tuning.job`. + purpose: + type: string + enum: + - assistants + - assistants_output + - batch + - batch_output + - fine-tune + - fine-tune-results + - evals + description: The intended purpose of the file. Supported values are `assistants`, `assistants_output`, `batch`, `batch_output`, `fine-tune` and `fine-tune-results`. status: type: string enum: - - validating_files - - queued + - uploaded + - pending - running - - succeeded - - failed - - cancelled - description: The current status of the fine-tuning job, which can be either `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`. - trained_tokens: - type: integer - format: int32 - nullable: true - description: The total number of billable tokens processed by this fine-tuning job. The value will be null if the fine-tuning job is still running. - training_file: - type: string - description: The file ID used for training. You can retrieve the training data with the [Files API](/docs/api-reference/files/retrieve-contents). - validation_file: + - processed + - error + - deleting + - deleted + description: The `File` object represents a document that has been uploaded to OpenAI. + title: OpenAIFile + x-oaiMeta: + name: The file object + example: | + { + "id": "file-abc123", + "object": "file", + "bytes": 120000, + "created_at": 1677610602, + "expires_at": 1680202602, + "filename": "salesOverview.pdf", + "purpose": "assistants", + } + OpenAI.OtherChunkingStrategyResponseParam: + type: object + required: + - type + properties: + type: type: string - nullable: true - description: The file ID used for validation. You can retrieve the validation results with the [Files API](/docs/api-reference/files/retrieve-contents). - integrations: - type: array - items: - $ref: '#/components/schemas/OpenAI.FineTuningIntegration' - nullable: true - description: A list of integrations to enable for this fine-tuning job. - seed: - type: integer - format: int32 - description: The seed used for the fine-tuning job. - estimated_finish: - type: integer - format: unixtime - nullable: true - description: The Unix timestamp (in seconds) for when the fine-tuning job is estimated to finish. The value will be null if the fine-tuning job is not running. - method: - $ref: '#/components/schemas/OpenAI.FineTuneMethod' - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - description: The `fine_tuning.job` object represents a fine-tuning job that has been created through the API. - OpenAI.FineTuningJobCheckpoint: + enum: + - other + description: Always `other`. + x-stainless-const: true + allOf: + - $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponse' + description: This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the `chunking_strategy` concept was introduced in the API. + title: Other Chunking Strategy + OpenAI.OutputContent: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.OutputContentType' + discriminator: + propertyName: type + mapping: + refusal: '#/components/schemas/OpenAI.RefusalContent' + reasoning_text: '#/components/schemas/OpenAI.ReasoningTextContent' + OpenAI.OutputContentType: + anyOf: + - type: string + - type: string + enum: + - output_text + - refusal + - reasoning_text + OpenAI.OutputItem: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.OutputItemType' + discriminator: + propertyName: type + mapping: + output_message: '#/components/schemas/OpenAI.OutputItemOutputMessage' + file_search_call: '#/components/schemas/OpenAI.OutputItemFileSearchToolCall' + function_call: '#/components/schemas/OpenAI.OutputItemFunctionToolCall' + web_search_call: '#/components/schemas/OpenAI.OutputItemWebSearchToolCall' + computer_call: '#/components/schemas/OpenAI.OutputItemComputerToolCall' + reasoning: '#/components/schemas/OpenAI.OutputItemReasoningItem' + compaction: '#/components/schemas/OpenAI.CompactionBody' + image_generation_call: '#/components/schemas/OpenAI.OutputItemImageGenToolCall' + code_interpreter_call: '#/components/schemas/OpenAI.OutputItemCodeInterpreterToolCall' + local_shell_call: '#/components/schemas/OpenAI.OutputItemLocalShellToolCall' + shell_call: '#/components/schemas/OpenAI.OutputItemFunctionShellCall' + shell_call_output: '#/components/schemas/OpenAI.OutputItemFunctionShellCallOutput' + apply_patch_call: '#/components/schemas/OpenAI.OutputItemApplyPatchToolCall' + apply_patch_call_output: '#/components/schemas/OpenAI.OutputItemApplyPatchToolCallOutput' + mcp_call: '#/components/schemas/OpenAI.OutputItemMCPToolCall' + mcp_list_tools: '#/components/schemas/OpenAI.OutputItemMCPListTools' + mcp_approval_request: '#/components/schemas/OpenAI.OutputItemMCPApprovalRequest' + custom_tool_call: '#/components/schemas/OpenAI.OutputItemCustomToolCall' + OpenAI.OutputItemApplyPatchToolCall: type: object required: + - type - id - - created_at - - fine_tuned_model_checkpoint - - step_number - - metrics - - fine_tuning_job_id - - object + - call_id + - status + - operation properties: - id: + type: type: string - description: The checkpoint identifier, which can be referenced in the API endpoints. - created_at: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) for when the checkpoint was created. - fine_tuned_model_checkpoint: + enum: + - apply_patch_call + description: The type of the item. Always `apply_patch_call`. + x-stainless-const: true + default: apply_patch_call + id: type: string - description: The name of the fine-tuned checkpoint model that is created. - step_number: - type: integer - format: int32 - description: The step number that the checkpoint was created at. - metrics: - type: object - properties: - step: - type: number - format: float - train_loss: - type: number - format: float - train_mean_token_accuracy: - type: number - format: float - valid_loss: - type: number - format: float - valid_mean_token_accuracy: - type: number - format: float - full_valid_loss: - type: number - format: float - full_valid_mean_token_accuracy: - type: number - format: float - description: Metrics at the step number during the fine-tuning job. - fine_tuning_job_id: + description: The unique ID of the apply patch tool call. Populated when this item is returned via API. + call_id: type: string - description: The name of the fine-tuning job that this checkpoint was created from. - object: + description: The unique ID of the apply patch tool call generated by the model. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchCallStatus' + description: The status of the apply patch tool call. One of `in_progress` or `completed`. + operation: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchFileOperation' + description: One of the create_file, delete_file, or update_file operations applied via apply_patch. + created_by: type: string - enum: - - fine_tuning.job.checkpoint - description: The object type, which is always "fine_tuning.job.checkpoint". - description: The `fine_tuning.job.checkpoint` object represents a model checkpoint for a fine-tuning job that is ready to use. - OpenAI.FineTuningJobEvent: + description: The ID of the entity that created this tool call. + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemApplyPatchToolCallOutput: type: object required: - - object + - type - id - - created_at - - level - - message + - call_id + - status properties: - object: + type: type: string enum: - - fine_tuning.job.event - description: The object type, which is always "fine_tuning.job.event". + - apply_patch_call_output + description: The type of the item. Always `apply_patch_call_output`. + x-stainless-const: true + default: apply_patch_call_output id: type: string - description: The object identifier. - created_at: - type: integer - format: unixtime - description: The Unix timestamp (in seconds) for when the fine-tuning job was created. - level: - type: string - enum: - - info - - warn - - error - description: The log level of the event. - message: + description: The unique ID of the apply patch tool call output. Populated when this item is returned via API. + call_id: type: string - description: The message of the event. - type: + description: The unique ID of the apply patch tool call generated by the model. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.ApplyPatchCallOutputStatus' + description: The status of the apply patch tool call output. One of `completed` or `failed`. + output: + anyOf: + - type: string + - type: 'null' + created_by: type: string - enum: - - message - - metrics - description: The type of event. - data: - description: The data associated with the event. - description: Fine-tuning job event object - OpenAI.FunctionObject: + description: The ID of the entity that created this tool call output. + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemCodeInterpreterToolCall: type: object required: - - name + - type + - id + - status + - container_id + - code + - outputs properties: - description: + type: type: string - description: A description of what the function does, used by the model to choose when and how to call the function. - name: + enum: + - code_interpreter_call + description: The type of the code interpreter tool call. Always `code_interpreter_call`. + x-stainless-const: true + default: code_interpreter_call + id: type: string - description: The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. - parameters: - description: |- - The parameters the functions accepts, described as a JSON Schema object. See the [guide](/docs/guides/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. - - Omitting `parameters` defines a function with an empty parameter list. - strict: - type: boolean - nullable: true - description: Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. Learn more about Structured Outputs in the [function calling guide](docs/guides/function-calling). - default: false - OpenAI.FunctionTool: + description: The unique ID of the code interpreter tool call. + status: + type: string + enum: + - in_progress + - completed + - incomplete + - interpreting + - failed + description: The status of the code interpreter tool call. Valid values are `in_progress`, `completed`, `incomplete`, `interpreting`, and `failed`. + container_id: + type: string + description: The ID of the container used to run the code. + code: + anyOf: + - type: string + - type: 'null' + outputs: + anyOf: + - type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputLogs' + - $ref: '#/components/schemas/OpenAI.CodeInterpreterOutputImage' + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemComputerToolCall: type: object required: - type - - name - - parameters - - strict + - id + - call_id + - action + - pending_safety_checks + - status properties: type: type: string enum: - - function - description: The type of the function tool. Always `function`. - name: + - computer_call + description: The type of the computer call. Always `computer_call`. + default: computer_call + id: type: string - description: The name of the function to call. - description: + description: The unique ID of the computer call. + call_id: type: string - nullable: true - description: A description of the function. Used by the model to determine whether or not to call the function. - parameters: - nullable: true - description: A JSON schema object describing the parameters of the function. - strict: - type: boolean - nullable: true - description: Whether to enforce strict parameter validation. Default `true`. + description: An identifier used when responding to the tool call with output. + action: + $ref: '#/components/schemas/OpenAI.ComputerAction' + pending_safety_checks: + type: array + items: + $ref: '#/components/schemas/OpenAI.ComputerCallSafetyCheckParam' + description: The pending safety checks for the computer call. + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: |- + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: Defines a function in your own code the model can choose to call. Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling). - OpenAI.FunctionToolCallItemParam: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemCustomToolCall: type: object required: - type - call_id - name - - arguments + - input properties: type: type: string enum: - - function_call + - custom_tool_call + description: The type of the custom tool call. Always `custom_tool_call`. + x-stainless-const: true + id: + type: string + description: The unique ID of the custom tool call in the OpenAI platform. call_id: type: string - description: The unique ID of the function tool call generated by the model. + description: An identifier used to map this custom tool call to a tool call output. name: type: string - description: The name of the function to run. - arguments: + description: The name of the custom tool being called. + input: type: string - description: A JSON string of the arguments to pass to the function. + description: The input for the custom tool call generated by the model. allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A tool call to run a function. See the - [function calling guide](/docs/guides/function-calling) for more information. - OpenAI.FunctionToolCallItemResource: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemFileSearchToolCall: type: object required: + - id - type - status - - call_id - - name - - arguments + - queries properties: + id: + type: string + description: The unique ID of the file search tool call. type: type: string enum: - - function_call + - file_search_call + description: The type of the file search tool call. Always `file_search_call`. + x-stainless-const: true status: type: string enum: - in_progress + - searching - completed - incomplete + - failed description: |- - The status of the item. One of `in_progress`, `completed`, or - `incomplete`. Populated when items are returned via API. - call_id: + The status of the file search tool call. One of `in_progress`, + `searching`, `incomplete` or `failed`, + queries: + type: array + items: + type: string + description: The queries used to search for files. + results: + anyOf: + - type: array + items: + $ref: '#/components/schemas/OpenAI.FileSearchToolCallResults' + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemFunctionShellCall: + type: object + required: + - type + - id + - call_id + - action + - status + properties: + type: type: string - description: The unique ID of the function tool call generated by the model. - name: + enum: + - shell_call + description: The type of the item. Always `shell_call`. + x-stainless-const: true + default: shell_call + id: type: string - description: The name of the function to run. - arguments: + description: The unique ID of the shell tool call. Populated when this item is returned via API. + call_id: type: string - description: A JSON string of the arguments to pass to the function. + description: The unique ID of the shell tool call generated by the model. + action: + allOf: + - $ref: '#/components/schemas/OpenAI.FunctionShellAction' + description: The shell commands and limits that describe how to run the tool call. + status: + allOf: + - $ref: '#/components/schemas/OpenAI.LocalShellCallStatus' + description: The status of the shell call. One of `in_progress`, `completed`, or `incomplete`. + created_by: + type: string + description: The ID of the entity that created this tool call. allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A tool call to run a function. See the - [function calling guide](/docs/guides/function-calling) for more information. - OpenAI.FunctionToolCallOutputItemParam: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemFunctionShellCallOutput: type: object required: - type + - id - call_id - output + - max_output_length properties: type: type: string enum: - - function_call_output + - shell_call_output + description: The type of the shell call output. Always `shell_call_output`. + x-stainless-const: true + default: shell_call_output + id: + type: string + description: The unique ID of the shell call output. Populated when this item is returned via API. call_id: type: string - description: The unique ID of the function tool call generated by the model. + description: The unique ID of the shell tool call generated by the model. output: + type: array + items: + $ref: '#/components/schemas/OpenAI.FunctionShellCallOutputContent' + description: An array of shell call output contents + max_output_length: + anyOf: + - type: integer + - type: 'null' + created_by: type: string - description: A JSON string of the output of the function tool call. allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - The output of a function tool call. - OpenAI.FunctionToolCallOutputItemResource: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemFunctionToolCall: type: object required: - type - - status - call_id - - output + - name + - arguments properties: + id: + type: string + description: The unique ID of the function tool call. type: type: string enum: - - function_call_output + - function_call + description: The type of the function tool call. Always `function_call`. + x-stainless-const: true + call_id: + type: string + description: The unique ID of the function tool call generated by the model. + name: + type: string + description: The name of the function to run. + arguments: + type: string + description: A JSON string of the arguments to pass to the function. status: type: string enum: @@ -10885,460 +18686,472 @@ components: - incomplete description: |- The status of the item. One of `in_progress`, `completed`, or - `incomplete`. Populated when items are returned via API. - call_id: - type: string - description: The unique ID of the function tool call generated by the model. - output: - type: string - description: A JSON string of the output of the function tool call. + `incomplete`. Populated when items are returned via API. allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - The output of a function tool call. - OpenAI.Grader: - type: object - required: - - type - properties: - type: - $ref: '#/components/schemas/OpenAI.GraderType' - discriminator: - propertyName: type - mapping: - label_model: '#/components/schemas/OpenAI.GraderLabelModel' - text_similarity: '#/components/schemas/OpenAI.GraderTextSimilarity' - python: '#/components/schemas/OpenAI.GraderPython' - score_model: '#/components/schemas/OpenAI.GraderScoreModel' - multi: '#/components/schemas/OpenAI.GraderMulti' - OpenAI.GraderLabelModel: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemImageGenToolCall: type: object required: - type - - name - - model - - input - - labels - - passing_labels + - id + - status + - result properties: type: type: string enum: - - label_model - description: The object type, which is always `label_model`. - name: + - image_generation_call + description: The type of the image generation call. Always `image_generation_call`. + x-stainless-const: true + id: type: string - description: The name of the grader. - model: + description: The unique ID of the image generation call. + status: type: string - description: The model to use for the evaluation. Must support structured outputs. - input: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalItem' - labels: - type: array - items: - type: string - description: The labels to assign to each item in the evaluation. - passing_labels: - type: array - items: - type: string - description: The labels that indicate a passing result. Must be a subset of labels. - allOf: - - $ref: '#/components/schemas/OpenAI.Grader' - description: |- - A LabelModelGrader object which uses a model to assign labels to each item - in the evaluation. - OpenAI.GraderMulti: + enum: + - in_progress + - completed + - generating + - failed + description: The status of the image generation call. + result: + anyOf: + - type: string + - type: 'null' + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemLocalShellToolCall: type: object required: - type - - name - - graders - - calculate_output + - id + - call_id + - action + - status properties: type: type: string enum: - - multi - description: The object type, which is always `multi`. - name: + - local_shell_call + description: The type of the local shell call. Always `local_shell_call`. + x-stainless-const: true + id: type: string - description: The name of the grader. - graders: - type: object - additionalProperties: - anyOf: - - $ref: '#/components/schemas/OpenAI.GraderStringCheck' - - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' - - $ref: '#/components/schemas/OpenAI.GraderScoreModel' - calculate_output: + description: The unique ID of the local shell call. + call_id: type: string - description: A formula to calculate the output based on grader results. + description: The unique ID of the local shell tool call generated by the model. + action: + $ref: '#/components/schemas/OpenAI.LocalShellExecAction' + status: + type: string + enum: + - in_progress + - completed + - incomplete + description: The status of the local shell call. allOf: - - $ref: '#/components/schemas/OpenAI.Grader' - description: A MultiGrader object combines the output of multiple graders to produce a single score. - OpenAI.GraderPython: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemMCPApprovalRequest: type: object required: - type + - id + - server_label - name - - source + - arguments properties: type: type: string enum: - - python - description: The object type, which is always `python`. - name: + - mcp_approval_request + description: The type of the item. Always `mcp_approval_request`. + x-stainless-const: true + id: type: string - description: The name of the grader. - source: + description: The unique ID of the approval request. + server_label: type: string - description: The source code of the python script. - image_tag: + description: The label of the MCP server making the request. + name: type: string - description: The image tag to use for the python script. + description: The name of the tool to run. + arguments: + type: string + description: A JSON string of arguments for the tool. allOf: - - $ref: '#/components/schemas/OpenAI.Grader' - description: A PythonGrader object that runs a python script on the input. - OpenAI.GraderScoreModel: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemMCPListTools: type: object required: - type - - name - - model - - input + - id + - server_label + - tools properties: type: type: string enum: - - score_model - description: The object type, which is always `score_model`. - name: + - mcp_list_tools + description: The type of the item. Always `mcp_list_tools`. + x-stainless-const: true + id: type: string - description: The name of the grader. - model: + description: The unique ID of the list. + server_label: type: string - description: The model to use for the evaluation. - sampling_params: - description: The sampling parameters for the model. - input: - type: array - items: - $ref: '#/components/schemas/OpenAI.EvalItem' - description: The input text. This may include template strings. - range: + description: The label of the MCP server. + tools: type: array items: - type: number - format: float - description: The range of the score. Defaults to `[0, 1]`. + $ref: '#/components/schemas/OpenAI.MCPListToolsTool' + description: The tools available on the server. + error: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.Grader' - description: A ScoreModelGrader object that uses a model to assign a score to the input. - OpenAI.GraderStringCheck: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemMCPToolCall: type: object required: - type + - id + - server_label - name - - input - - reference - - operation + - arguments properties: type: type: string enum: - - string_check - description: The object type, which is always `string_check`. - name: + - mcp_call + description: The type of the item. Always `mcp_call`. + x-stainless-const: true + id: type: string - description: The name of the grader. - input: + description: The unique ID of the tool call. + server_label: type: string - description: The input text. This may include template strings. - reference: + description: The label of the MCP server running the tool. + name: type: string - description: The reference text. This may include template strings. - operation: + description: The name of the tool that was run. + arguments: type: string - enum: - - eq - - ne - - like - - ilike - description: The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`. + description: A JSON string of the arguments passed to the tool. + output: + anyOf: + - type: string + - type: 'null' + error: + anyOf: + - type: string + - type: 'null' + status: + allOf: + - $ref: '#/components/schemas/OpenAI.MCPToolCallStatus' + description: The status of the tool call. One of `in_progress`, `completed`, `incomplete`, `calling`, or `failed`. + approval_request_id: + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.Grader' - description: A StringCheckGrader object that performs a string comparison between input and reference using a specified operation. - OpenAI.GraderTextSimilarity: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemOutputMessage: type: object required: + - id - type - - name - - input - - reference - - evaluation_metric + - role + - content + - status properties: + id: + type: string + description: The unique ID of the output message. + x-stainless-go-json: omitzero type: type: string enum: - - text_similarity - description: The type of grader. - name: - type: string - description: The name of the grader. - input: - type: string - description: The text being graded. - reference: + - output_message + description: The type of the output message. Always `message`. + x-stainless-const: true + role: type: string - description: The text being graded against. - evaluation_metric: + enum: + - assistant + description: The role of the output message. Always `assistant`. + x-stainless-const: true + content: + type: array + items: + $ref: '#/components/schemas/OpenAI.OutputMessageContent' + description: The content of the output message. + status: type: string enum: - - fuzzy_match - - bleu - - gleu - - meteor - - rouge_1 - - rouge_2 - - rouge_3 - - rouge_4 - - rouge_5 - - rouge_l - description: The evaluation metric to use. One of `fuzzy_match`, `bleu`, `gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, or `rouge_l`. + - in_progress + - completed + - incomplete + description: |- + The status of the message input. One of `in_progress`, `completed`, or + `incomplete`. Populated when input items are returned via API. allOf: - - $ref: '#/components/schemas/OpenAI.Grader' - description: A TextSimilarityGrader object which grades text based on similarity metrics. - OpenAI.GraderType: - type: string - enum: - - string_check - - text_similarity - - score_model - - label_model - - python - - multi - OpenAI.ImageGenTool: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemReasoningItem: type: object required: - type + - id + - summary properties: type: type: string enum: - - image_generation - description: The type of the image generation tool. Always `image_generation`. - model: - type: string - enum: - - gpt-image-1 - description: 'The image generation model to use. Default: `gpt-image-1`.' - default: gpt-image-1 - quality: + - reasoning + description: The type of the object. Always `reasoning`. + x-stainless-const: true + id: type: string - enum: - - low - - medium - - high - - auto - description: |- - The quality of the generated image. One of `low`, `medium`, `high`, - or `auto`. Default: `auto`. - default: auto - size: + description: The unique identifier of the reasoning content. + encrypted_content: + anyOf: + - type: string + - type: 'null' + summary: + type: array + items: + $ref: '#/components/schemas/OpenAI.Summary' + description: Reasoning summary content. + content: + type: array + items: + $ref: '#/components/schemas/OpenAI.ReasoningTextContent' + description: Reasoning text content. + status: type: string enum: - - 1024x1024 - - 1024x1536 - - 1536x1024 - - auto + - in_progress + - completed + - incomplete description: |- - The size of the generated image. One of `1024x1024`, `1024x1536`, - `1536x1024`, or `auto`. Default: `auto`. - default: auto - output_format: - type: string + The status of the item. One of `in_progress`, `completed`, or + `incomplete`. Populated when items are returned via API. + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputItemType: + anyOf: + - type: string + - type: string enum: - - png - - webp - - jpeg - description: |- - The output format of the generated image. One of `png`, `webp`, or - `jpeg`. Default: `png`. - default: png - output_compression: - type: integer - format: int32 - minimum: 0 - maximum: 100 - description: 'Compression level for the output image. Default: 100.' - default: 100 - moderation: + - output_message + - file_search_call + - function_call + - web_search_call + - computer_call + - reasoning + - compaction + - image_generation_call + - code_interpreter_call + - local_shell_call + - shell_call + - shell_call_output + - apply_patch_call + - apply_patch_call_output + - mcp_call + - mcp_list_tools + - mcp_approval_request + - custom_tool_call + OpenAI.OutputItemWebSearchToolCall: + type: object + required: + - id + - type + - status + - action + properties: + id: + type: string + description: The unique ID of the web search tool call. + type: type: string enum: - - auto - - low - description: 'Moderation level for the generated image. Default: `auto`.' - default: auto - background: + - web_search_call + description: The type of the web search tool call. Always `web_search_call`. + x-stainless-const: true + status: type: string enum: - - transparent - - opaque - - auto - description: |- - Background type for the generated image. One of `transparent`, - `opaque`, or `auto`. Default: `auto`. - default: auto - input_image_mask: - type: object - properties: - image_url: - type: string - description: Base64-encoded mask image. - file_id: - type: string - description: File ID for the mask image. + - in_progress + - searching + - completed + - failed + description: The status of the web search tool call. + action: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchActionSearch' + - $ref: '#/components/schemas/OpenAI.WebSearchActionOpenPage' + - $ref: '#/components/schemas/OpenAI.WebSearchActionFind' description: |- - Optional mask for inpainting. Contains `image_url` - (string, optional) and `file_id` (string, optional). - partial_images: - type: integer - format: int32 - minimum: 0 - maximum: 3 - description: Number of partial images to generate in streaming mode, from 0 (default value) to 3. - default: 0 + An object describing the specific action taken in this web search call. + Includes details on how the model used the web (search, open_page, find). allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: A tool that generates images using a model like `gpt-image-1`. - OpenAI.ImageGenToolCallItemParam: + - $ref: '#/components/schemas/OpenAI.OutputItem' + OpenAI.OutputMessageContent: type: object required: - type - - result properties: type: - type: string + $ref: '#/components/schemas/OpenAI.OutputMessageContentType' + discriminator: + propertyName: type + OpenAI.OutputMessageContentType: + anyOf: + - type: string + - type: string enum: - - image_generation_call - result: - type: string - nullable: true - description: The generated image encoded in base64. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - An image generation request made by the model. - OpenAI.ImageGenToolCallItemResource: + - output_text + - refusal + OpenAI.OutputTextContent: type: object required: - type - - status - - result + - text + - annotations properties: type: type: string enum: - - image_generation_call - status: - type: string - enum: - - in_progress - - completed - - generating - - failed - result: + - output_text + description: The type of the output text. Always `output_text`. + x-stainless-const: true + default: output_text + text: type: string - nullable: true - description: The generated image encoded in base64. + description: The text output from the model. + annotations: + type: array + items: + $ref: '#/components/schemas/OpenAI.Annotation' + description: The annotations of the text output. + logprobs: + type: array + items: + $ref: '#/components/schemas/OpenAI.LogProb' allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - An image generation request made by the model. - OpenAI.ImplicitUserMessage: + - $ref: '#/components/schemas/OpenAI.OutputContent' + description: A text output from the model. + title: Output text + OpenAI.ParallelToolCalls: + type: boolean + description: Whether to enable [parallel function calling](https://platform.openai.com/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. + OpenAI.PredictionContent: type: object required: + - type - content properties: + type: + type: string + enum: + - content + description: |- + The type of the predicted content you want to provide. This type is + currently always `content`. + x-stainless-const: true content: anyOf: - type: string - type: array items: - $ref: '#/components/schemas/OpenAI.ItemContent' - OpenAI.Includable: + $ref: '#/components/schemas/OpenAI.ChatCompletionRequestMessageContentPartText' + description: |- + The content that should be matched when generating a model response. + If generated tokens would match this content, the entire model response + can be returned much more quickly. + description: |- + Static predicted output content, such as the content of a text file that is + being regenerated. + title: Static Content + OpenAI.Prompt: + type: object + required: + - id + properties: + id: + type: string + description: The unique identifier of the prompt template to use. + version: + anyOf: + - type: string + - type: 'null' + variables: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponsePromptVariables' + - type: 'null' + description: |- + Reference to a prompt template and its variables. + [Learn more](https://platform.openai.com/docs/guides/text?api-mode=responses#reusable-prompts). + OpenAI.RankerVersionType: type: string enum: - - code_interpreter_call.outputs - - computer_call_output.output.image_url - - file_search_call.results - - message.input_image.image_url - - message.output_text.logprobs - - reasoning.encrypted_content - description: |- - Specify additional output data to include in the model response. Currently - supported values are: - - `code_interpreter_call.outputs`: Includes the outputs of python code execution - in code interpreter tool call items. - - `computer_call_output.output.image_url`: Include image urls from the computer call output. - - `file_search_call.results`: Include the search results of - the file search tool call. - - `message.input_image.image_url`: Include image urls from the input message. - - `message.output_text.logprobs`: Include logprobs with assistant messages. - - `reasoning.encrypted_content`: Includes an encrypted version of reasoning - tokens in reasoning item outputs. This enables reasoning items to be used in - multi-turn conversations when using the Responses API statelessly (like - when the `store` parameter is set to `false`, or when an organization is - enrolled in the zero data retention program). - OpenAI.ItemContent: + - auto + - default-2024-11-15 + OpenAI.RankingOptions: + type: object + properties: + ranker: + allOf: + - $ref: '#/components/schemas/OpenAI.RankerVersionType' + description: The ranker to use for the file search. + score_threshold: + type: number + description: The score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will attempt to return only the most relevant results, but may return fewer results. + hybrid_search: + allOf: + - $ref: '#/components/schemas/OpenAI.HybridSearchOptions' + description: Weights that control how reciprocal rank fusion balances semantic embedding matches versus sparse keyword matches when hybrid search is enabled. + OpenAI.RealtimeAudioFormats: type: object required: - type properties: type: - $ref: '#/components/schemas/OpenAI.ItemContentType' + $ref: '#/components/schemas/OpenAI.RealtimeAudioFormatsType' discriminator: propertyName: type mapping: - input_audio: '#/components/schemas/OpenAI.ItemContentInputAudio' - output_audio: '#/components/schemas/OpenAI.ItemContentOutputAudio' - refusal: '#/components/schemas/OpenAI.ItemContentRefusal' - input_text: '#/components/schemas/OpenAI.ItemContentInputText' - input_image: '#/components/schemas/OpenAI.ItemContentInputImage' - input_file: '#/components/schemas/OpenAI.ItemContentInputFile' - output_text: '#/components/schemas/OpenAI.ItemContentOutputText' - OpenAI.ItemContentInputAudio: + audio/pcm: '#/components/schemas/OpenAI.RealtimeAudioFormatsAudioPcm' + audio/pcmu: '#/components/schemas/OpenAI.RealtimeAudioFormatsAudioPcmu' + audio/pcma: '#/components/schemas/OpenAI.RealtimeAudioFormatsAudioPcma' + OpenAI.RealtimeAudioFormatsAudioPcm: type: object required: - type - - data - - format properties: type: type: string enum: - - input_audio - description: The type of the input item. Always `input_audio`. - data: - type: string - description: Base64-encoded audio data. - format: + - audio/pcm + rate: + type: number + enum: + - 24000 + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + OpenAI.RealtimeAudioFormatsAudioPcma: + type: object + required: + - type + properties: + type: type: string enum: - - mp3 - - wav - description: |- - The format of the audio data. Currently supported formats are `mp3` and - `wav`. + - audio/pcma allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: An audio input to the model. - OpenAI.ItemContentInputFile: + - $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + OpenAI.RealtimeAudioFormatsAudioPcmu: type: object required: - type @@ -11346,2208 +19159,3486 @@ components: type: type: string enum: - - input_file - description: The type of the input item. Always `input_file`. - file_id: + - audio/pcmu + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + OpenAI.RealtimeAudioFormatsType: + anyOf: + - type: string + - type: string + enum: + - audio/pcm + - audio/pcmu + - audio/pcma + OpenAI.RealtimeCallCreateRequest: + type: object + properties: + sdp: type: string - nullable: true - description: The ID of the file to be sent to the model. - filename: + description: WebRTC Session Description Protocol (SDP) offer generated by the caller. + session: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGA' + description: |- + Optional session configuration to apply before the realtime session is + created. Use the same parameters you would send in a [`create client secret`](https://platform.openai.com/docs/api-reference/realtime-sessions/create-realtime-client-secret) + request. + required: + - sdp + OpenAI.RealtimeCallReferRequest: + type: object + required: + - target_uri + properties: + target_uri: type: string - description: The name of the file to be sent to the model. - file_data: + description: |- + URI that should appear in the SIP Refer-To header. Supports values like + `tel:+14155550123` or `sip:agent\@example.com`. + description: |- + Parameters required to transfer a SIP call to a new destination using the + Realtime API. + title: Realtime call refer request + OpenAI.RealtimeCallRejectRequest: + type: object + properties: + status_code: + type: integer + description: |- + SIP response code to send back to the caller. Defaults to `603` (Decline) + when omitted. + description: Parameters used to decline an incoming SIP call handled by the Realtime API. + title: Realtime call reject request + OpenAI.RealtimeCreateClientSecretRequest: + type: object + properties: + expires_after: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeCreateClientSecretRequestExpiresAfter' + description: |- + Configuration for the client secret expiration. Expiration refers to the time after which + a client secret will no longer be valid for creating sessions. The session itself may + continue after that time once started. A secret can be used to create multiple sessions + until it expires. + title: Client secret expiration + session: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnion' + description: |- + Session configuration to use for the client secret. Choose either a realtime + session or a transcription session. + description: |- + Create a session and client secret for the Realtime API. The request can specify + either a realtime or a transcription session configuration. + [Learn more about the Realtime API](https://platform.openai.com/docs/guides/realtime). + title: Realtime client secret creation request + OpenAI.RealtimeCreateClientSecretRequestExpiresAfter: + type: object + properties: + anchor: type: string - description: The content of the file to be sent to the model. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: A file input to the model. - OpenAI.ItemContentInputImage: + enum: + - created_at + x-stainless-const: true + default: created_at + seconds: + type: integer + minimum: 10 + maximum: 7200 + default: 600 + OpenAI.RealtimeCreateClientSecretResponse: type: object required: - - type + - value + - expires_at + - session + properties: + value: + type: string + description: The generated client secret value. + expires_at: + type: integer + format: unixtime + description: Expiration timestamp for the client secret, in seconds since epoch. + session: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnion' + description: The session configuration for either a realtime or transcription session. + description: Response from creating a session and client secret for the Realtime API. + title: Realtime session and client secret + x-oaiMeta: + name: Session response object + group: realtime + example: | + { + "value": "ek_68af296e8e408191a1120ab6383263c2", + "expires_at": 1756310470, + "session": { + "type": "realtime", + "object": "realtime.session", + "id": "sess_C9CiUVUzUzYIssh3ELY1d", + "model": "gpt-realtime-2025-08-25", + "output_modalities": [ + "audio" + ], + "instructions": "You are a friendly assistant.", + "tools": [], + "tool_choice": "auto", + "max_output_tokens": "inf", + "tracing": null, + "truncation": "auto", + "prompt": null, + "expires_at": 0, + "audio": { + "input": { + "format": { + "type": "audio/pcm", + "rate": 24000 + }, + "transcription": null, + "noise_reduction": null, + "turn_detection": { + "type": "server_vad", + "threshold": 0.5, + "prefix_padding_ms": 300, + "silence_duration_ms": 200, + "idle_timeout_ms": null, + "create_response": true, + "interrupt_response": true + } + }, + "output": { + "format": { + "type": "audio/pcm", + "rate": 24000 + }, + "voice": "alloy", + "speed": 1.0 + } + }, + "include": null + } + } + OpenAI.RealtimeFunctionTool: + type: object properties: type: type: string enum: - - input_image - description: The type of the input item. Always `input_image`. - image_url: + - function + description: The type of the tool, i.e. `function`. + x-stainless-const: true + name: type: string - nullable: true - description: The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL. - file_id: + description: The name of the function. + description: type: string - nullable: true - description: The ID of the file to be sent to the model. - detail: + description: |- + The description of the function, including guidance on when and how + to call it, and guidance about what to tell the user when calling + (if anything). + parameters: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeFunctionToolParameters' + description: Parameters of the function in JSON Schema. + title: Function tool + OpenAI.RealtimeFunctionToolParameters: + type: object + OpenAI.RealtimeSessionCreateRequest: + type: object + required: + - client_secret + - type + properties: + client_secret: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestClientSecret' + description: Ephemeral key returned by the API. + modalities: + type: array + items: + type: string + enum: + - text + - audio + description: |- + The set of modalities the model can respond with. To disable audio, + set this to ["text"]. + default: + - text + - audio + instructions: type: string - enum: - - low - - high - - auto - description: The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`. Defaults to `auto`. + description: |- + The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. "be extremely succinct", "act friendly", "here are examples of good responses") and on audio behavior (e.g. "talk quickly", "inject emotion into your voice", "laugh frequently"). The instructions are not guaranteed to be followed by the model, but they provide guidance to the model on the desired behavior. + Note that the server sets default instructions which will be used if this field is not set and are visible in the `session.created` event at the start of the session. + voice: + allOf: + - $ref: '#/components/schemas/OpenAI.VoiceIdsShared' + description: |- + The voice the model uses to respond. Voice cannot be changed during the + session once the model has responded with audio at least once. Current + voice options are `alloy`, `ash`, `ballad`, `coral`, `echo`, `sage`, + `shimmer`, and `verse`. + input_audio_format: + type: string + description: The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`. + output_audio_format: + type: string + description: The format of output audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`. + input_audio_transcription: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestInputAudioTranscription' + description: |- + Configuration for input audio transcription, defaults to off and can be + set to `null` to turn off once on. Input audio transcription is not native + to the model, since the model consumes audio directly. Transcription runs + asynchronously and should be treated as rough guidance + rather than the representation understood by the model. + speed: + type: number + minimum: 0.25 + maximum: 1.5 + description: |- + The speed of the model's spoken response. 1.0 is the default speed. 0.25 is + the minimum speed. 1.5 is the maximum speed. This value can only be changed + in between model turns, not while a response is in progress. + default: 1 + tracing: + anyOf: + - type: string + enum: + - auto + - type: object + properties: + workflow_name: + type: string + group_id: + type: string + metadata: + type: object + unevaluatedProperties: {} + description: |- + Configuration options for tracing. Set to null to disable tracing. Once + tracing is enabled for a session, the configuration cannot be modified. + + `auto` will create a trace for the session with default values for the + workflow name, group id, and metadata. + title: Tracing Configuration default: auto - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: An image input to the model. Learn about [image inputs](/docs/guides/vision). - OpenAI.ItemContentInputText: - type: object - required: - - type - - text - properties: + turn_detection: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestTurnDetection' + description: |- + Configuration for turn detection. Can be set to `null` to turn off. Server + VAD means that the model will detect the start and end of speech based on + audio volume and respond at the end of user speech. + tools: + type: array + items: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestTools' + description: Tools (functions) available to the model. + tool_choice: + type: string + description: |- + How the model chooses tools. Options are `auto`, `none`, `required`, or + specify a function. + temperature: + type: number + description: Sampling temperature for the model, limited to [0.6, 1.2]. Defaults to 0.8. + max_response_output_tokens: + anyOf: + - type: integer + - type: string + enum: + - inf + description: |- + Maximum number of output tokens for a single assistant response, + inclusive of tool calls. Provide an integer between 1 and 4096 to + limit output tokens, or `inf` for the maximum available tokens for a + given model. Defaults to `inf`. + truncation: + $ref: '#/components/schemas/OpenAI.RealtimeTruncation' + prompt: + $ref: '#/components/schemas/OpenAI.Prompt' type: type: string enum: - - input_text - description: The type of the input item. Always `input_text`. - text: - type: string - description: The text input to the model. + - realtime + default: realtime allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: A text input to the model. - OpenAI.ItemContentOutputAudio: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnion' + description: |- + A new Realtime session configuration, with an ephemeral key. Default TTL + for keys is one minute. + x-oaiMeta: + name: The session object + group: realtime + example: | + { + "id": "sess_001", + "object": "realtime.session", + "model": "gpt-realtime-2025-08-25", + "modalities": ["audio", "text"], + "instructions": "You are a friendly assistant.", + "voice": "alloy", + "input_audio_format": "pcm16", + "output_audio_format": "pcm16", + "input_audio_transcription": { + "model": "whisper-1" + }, + "turn_detection": null, + "tools": [], + "tool_choice": "none", + "temperature": 0.7, + "speed": 1.1, + "tracing": "auto", + "max_response_output_tokens": 200, + "truncation": "auto", + "prompt": null, + "client_secret": { + "value": "ek_abc123", + "expires_at": 1234567890 + } + } + OpenAI.RealtimeSessionCreateRequestClientSecret: type: object required: - - type - - data - - transcript + - value + - expires_at properties: - type: - type: string - enum: - - output_audio - description: The type of the output audio. Always `output_audio`. - data: - type: string - description: Base64-encoded audio data from the model. - transcript: + value: type: string - description: The transcript of the audio data from the model. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: An audio output from the model. - OpenAI.ItemContentOutputText: + expires_at: + type: integer + format: unixtime + OpenAI.RealtimeSessionCreateRequestGA: type: object required: - type - - text - - annotations properties: type: type: string enum: - - output_text - description: The type of the output text. Always `output_text`. - text: + - realtime + description: The type of session to create. Always `realtime` for the Realtime API. + x-stainless-const: true + output_modalities: + type: array + items: + type: string + enum: + - text + - audio + description: |- + The set of modalities the model can respond with. It defaults to `["audio"]`, indicating + that the model will respond with audio plus a transcript. `["text"]` can be used to make + the model respond with text only. It is not possible to request both `text` and `audio` at the same time. + default: + - audio + model: type: string - description: The text output from the model. - annotations: + description: The Realtime model used for this session. + instructions: + type: string + description: |- + The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. "be extremely succinct", "act friendly", "here are examples of good responses") and on audio behavior (e.g. "talk quickly", "inject emotion into your voice", "laugh frequently"). The instructions are not guaranteed to be followed by the model, but they provide guidance to the model on the desired behavior. + + Note that the server sets default instructions which will be used if this field is not set and are visible in the `session.created` event at the start of the session. + audio: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudio' + description: Configuration for input and output audio. + include: type: array items: - $ref: '#/components/schemas/OpenAI.Annotation' - description: The annotations of the text output. - logprobs: + type: string + enum: + - item.input_audio_transcription.logprobs + description: |- + Additional fields to include in server outputs. + + `item.input_audio_transcription.logprobs`: Include logprobs for input audio transcription. + tracing: + anyOf: + - type: string + enum: + - auto + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGATracing' + - type: 'null' + description: |- + Realtime API can write session traces to the [Traces Dashboard](/logs?api=traces). Set to null to disable tracing. Once + tracing is enabled for a session, the configuration cannot be modified. + + `auto` will create a trace for the session with default values for the + workflow name, group id, and metadata. + title: Tracing Configuration + default: auto + tools: type: array items: - $ref: '#/components/schemas/OpenAI.LogProb' - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: A text output from the model. - OpenAI.ItemContentRefusal: + anyOf: + - $ref: '#/components/schemas/OpenAI.RealtimeFunctionTool' + - $ref: '#/components/schemas/OpenAI.MCPTool' + description: Tools available to the model. + tool_choice: + anyOf: + - $ref: '#/components/schemas/OpenAI.ToolChoiceOptions' + - $ref: '#/components/schemas/OpenAI.ToolChoiceFunction' + - $ref: '#/components/schemas/OpenAI.ToolChoiceMCP' + description: |- + How the model chooses tools. Provide one of the string modes or force a specific + function/MCP tool. + default: auto + max_output_tokens: + anyOf: + - type: integer + - type: string + enum: + - inf + description: |- + Maximum number of output tokens for a single assistant response, + inclusive of tool calls. Provide an integer between 1 and 4096 to + limit output tokens, or `inf` for the maximum available tokens for a + given model. Defaults to `inf`. + truncation: + $ref: '#/components/schemas/OpenAI.RealtimeTruncation' + prompt: + $ref: '#/components/schemas/OpenAI.Prompt' + description: Realtime session object configuration. + title: Realtime session configuration + OpenAI.RealtimeSessionCreateRequestGAAudio: type: object - required: - - type - - refusal properties: - type: - type: string - enum: - - refusal - description: The type of the refusal. Always `refusal`. - refusal: - type: string - description: The refusal explanationfrom the model. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: A refusal from the model. - OpenAI.ItemContentType: - type: string - enum: - - input_text - - input_audio - - input_image - - input_file - - output_text - - output_audio - - refusal - description: Multi-modal input and output contents. - OpenAI.ItemParam: + input: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudioInput' + output: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudioOutput' + OpenAI.RealtimeSessionCreateRequestGAAudioInput: type: object - required: - - type properties: - type: - $ref: '#/components/schemas/OpenAI.ItemType' - discriminator: - propertyName: type - mapping: - file_search_call: '#/components/schemas/OpenAI.FileSearchToolCallItemParam' - computer_call: '#/components/schemas/OpenAI.ComputerToolCallItemParam' - computer_call_output: '#/components/schemas/OpenAI.ComputerToolCallOutputItemParam' - web_search_call: '#/components/schemas/OpenAI.WebSearchToolCallItemParam' - function_call: '#/components/schemas/OpenAI.FunctionToolCallItemParam' - function_call_output: '#/components/schemas/OpenAI.FunctionToolCallOutputItemParam' - reasoning: '#/components/schemas/OpenAI.ReasoningItemParam' - item_reference: '#/components/schemas/OpenAI.ItemReferenceItemParam' - image_generation_call: '#/components/schemas/OpenAI.ImageGenToolCallItemParam' - code_interpreter_call: '#/components/schemas/OpenAI.CodeInterpreterToolCallItemParam' - local_shell_call: '#/components/schemas/OpenAI.LocalShellToolCallItemParam' - local_shell_call_output: '#/components/schemas/OpenAI.LocalShellToolCallOutputItemParam' - mcp_list_tools: '#/components/schemas/OpenAI.MCPListToolsItemParam' - mcp_approval_request: '#/components/schemas/OpenAI.MCPApprovalRequestItemParam' - mcp_approval_response: '#/components/schemas/OpenAI.MCPApprovalResponseItemParam' - mcp_call: '#/components/schemas/OpenAI.MCPCallItemParam' - message: '#/components/schemas/OpenAI.ResponsesMessageItemParam' - description: Content item used to generate a response. - OpenAI.ItemReferenceItemParam: + format: + $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + transcription: + $ref: '#/components/schemas/OpenAI.AudioTranscription' + noise_reduction: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestGAAudioInputNoiseReduction' + turn_detection: + $ref: '#/components/schemas/OpenAI.RealtimeTurnDetection' + OpenAI.RealtimeSessionCreateRequestGAAudioInputNoiseReduction: type: object - required: - - type - - id properties: type: - type: string - enum: - - item_reference - id: - type: string - description: The service-originated ID of the previously generated response item being referenced. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: An internal identifier for an item to reference. - OpenAI.ItemResource: + $ref: '#/components/schemas/OpenAI.NoiseReductionType' + OpenAI.RealtimeSessionCreateRequestGAAudioOutput: type: object - required: - - type - - id properties: - type: - $ref: '#/components/schemas/OpenAI.ItemType' - id: - type: string - discriminator: - propertyName: type - mapping: - file_search_call: '#/components/schemas/OpenAI.FileSearchToolCallItemResource' - computer_call: '#/components/schemas/OpenAI.ComputerToolCallItemResource' - computer_call_output: '#/components/schemas/OpenAI.ComputerToolCallOutputItemResource' - web_search_call: '#/components/schemas/OpenAI.WebSearchToolCallItemResource' - function_call: '#/components/schemas/OpenAI.FunctionToolCallItemResource' - function_call_output: '#/components/schemas/OpenAI.FunctionToolCallOutputItemResource' - reasoning: '#/components/schemas/OpenAI.ReasoningItemResource' - image_generation_call: '#/components/schemas/OpenAI.ImageGenToolCallItemResource' - code_interpreter_call: '#/components/schemas/OpenAI.CodeInterpreterToolCallItemResource' - local_shell_call: '#/components/schemas/OpenAI.LocalShellToolCallItemResource' - local_shell_call_output: '#/components/schemas/OpenAI.LocalShellToolCallOutputItemResource' - mcp_list_tools: '#/components/schemas/OpenAI.MCPListToolsItemResource' - mcp_approval_request: '#/components/schemas/OpenAI.MCPApprovalRequestItemResource' - mcp_approval_response: '#/components/schemas/OpenAI.MCPApprovalResponseItemResource' - mcp_call: '#/components/schemas/OpenAI.MCPCallItemResource' - message: '#/components/schemas/OpenAI.ResponsesMessageItemResource' - description: Content item used to generate a response. - OpenAI.ItemType: - type: string - enum: - - message - - file_search_call - - function_call - - function_call_output - - computer_call - - computer_call_output - - web_search_call - - reasoning - - item_reference - - image_generation_call - - code_interpreter_call - - local_shell_call - - local_shell_call_output - - mcp_list_tools - - mcp_approval_request - - mcp_approval_response - - mcp_call - OpenAI.ListFineTuningJobCheckpointsResponse: + format: + $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + voice: + $ref: '#/components/schemas/OpenAI.VoiceIdsShared' + speed: + type: number + minimum: 0.25 + maximum: 1.5 + default: 1 + OpenAI.RealtimeSessionCreateRequestGATracing: type: object - required: - - data - - object - - has_more properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.FineTuningJobCheckpoint' - object: - type: string - enum: - - list - first_id: + workflow_name: type: string - nullable: true - last_id: + group_id: type: string - nullable: true - has_more: - type: boolean - OpenAI.ListFineTuningJobEventsResponse: + metadata: + type: object + unevaluatedProperties: {} + OpenAI.RealtimeSessionCreateRequestInputAudioTranscription: type: object - required: - - data - - object - - has_more properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.FineTuningJobEvent' - object: + model: type: string - enum: - - list - has_more: - type: boolean - OpenAI.ListModelsResponse: + OpenAI.RealtimeSessionCreateRequestTools: type: object - required: - - object - - data properties: - object: + type: type: string enum: - - list - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.Model' - OpenAI.ListPaginatedFineTuningJobsResponse: + - function + x-stainless-const: true + name: + type: string + description: + type: string + parameters: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestToolsParameters' + OpenAI.RealtimeSessionCreateRequestToolsParameters: + type: object + OpenAI.RealtimeSessionCreateRequestTurnDetection: type: object - required: - - data - - has_more - - object properties: - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.FineTuningJob' - has_more: - type: boolean - object: + type: type: string - enum: - - list - OpenAI.ListVectorStoreFilesFilter: - anyOf: - - type: string - - type: string - enum: - - in_progress - - completed - - failed - - cancelled - OpenAI.ListVectorStoreFilesResponse: + threshold: + type: number + prefix_padding_ms: + type: integer + silence_duration_ms: + type: integer + OpenAI.RealtimeSessionCreateRequestUnion: type: object required: - - object - - data - - first_id - - last_id - - has_more + - type properties: - object: - type: string - enum: - - list - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.VectorStoreFileObject' - first_id: - type: string - last_id: - type: string - has_more: - type: boolean - OpenAI.ListVectorStoresResponse: + type: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnionType' + discriminator: + propertyName: type + mapping: + realtime: '#/components/schemas/OpenAI.RealtimeSessionCreateRequest' + transcription: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequest' + OpenAI.RealtimeSessionCreateRequestUnionType: + anyOf: + - type: string + - type: string + enum: + - realtime + - transcription + OpenAI.RealtimeSessionCreateResponse: type: object required: - - object - - data - - first_id - - last_id - - has_more + - type properties: + id: + type: string + description: Unique identifier for the session that looks like `sess_1234567890abcdef`. object: type: string - enum: - - list - data: + description: The object type. Always `realtime.session`. + expires_at: + type: integer + format: unixtime + description: Expiration timestamp for the session, in seconds since epoch. + include: type: array items: - $ref: '#/components/schemas/OpenAI.VectorStoreObject' - first_id: + type: string + enum: + - item.input_audio_transcription.logprobs + description: |- + Additional fields to include in server outputs. + - `item.input_audio_transcription.logprobs`: Include logprobs for input audio transcription. + model: type: string - last_id: + description: The Realtime model used for this session. + output_modalities: + type: array + items: + type: string + enum: + - text + - audio + description: |- + The set of modalities the model can respond with. To disable audio, + set this to ["text"]. + instructions: type: string - has_more: - type: boolean - OpenAI.LocalShellExecAction: + description: |- + The default system instructions (i.e. system message) prepended to model + calls. This field allows the client to guide the model on desired + responses. The model can be instructed on response content and format, + (e.g. "be extremely succinct", "act friendly", "here are examples of good + responses") and on audio behavior (e.g. "talk quickly", "inject emotion + into your voice", "laugh frequently"). The instructions are not guaranteed + to be followed by the model, but they provide guidance to the model on the + desired behavior. + + Note that the server sets default instructions which will be used if this + field is not set and are visible in the `session.created` event at the + start of the session. + audio: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudio' + description: Configuration for input and output audio for the session. + tracing: + anyOf: + - type: string + enum: + - auto + - type: object + properties: + workflow_name: + type: string + group_id: + type: string + metadata: + type: object + unevaluatedProperties: {} + description: |- + Configuration options for tracing. Set to null to disable tracing. Once + tracing is enabled for a session, the configuration cannot be modified. + + `auto` will create a trace for the session with default values for the + workflow name, group id, and metadata. + title: Tracing Configuration + default: auto + turn_detection: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseTurnDetection' + description: |- + Configuration for turn detection. Can be set to `null` to turn off. Server + VAD means that the model will detect the start and end of speech based on + audio volume and respond at the end of user speech. + tools: + type: array + items: + $ref: '#/components/schemas/OpenAI.RealtimeFunctionTool' + description: Tools (functions) available to the model. + tool_choice: + type: string + description: |- + How the model chooses tools. Options are `auto`, `none`, `required`, or + specify a function. + max_output_tokens: + anyOf: + - type: integer + - type: string + enum: + - inf + description: |- + Maximum number of output tokens for a single assistant response, + inclusive of tool calls. Provide an integer between 1 and 4096 to + limit output tokens, or `inf` for the maximum available tokens for a + given model. Defaults to `inf`. + type: + type: string + enum: + - realtime + default: realtime + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnion' + description: A Realtime session configuration object. + title: Realtime session configuration object + x-oaiMeta: + name: The session object + group: realtime + example: | + { + "id": "sess_001", + "object": "realtime.session", + "expires_at": 1742188264, + "model": "gpt-realtime", + "output_modalities": ["audio"], + "instructions": "You are a friendly assistant.", + "tools": [], + "tool_choice": "none", + "max_output_tokens": "inf", + "tracing": "auto", + "truncation": "auto", + "prompt": null, + "audio": { + "input": { + "format": { + "type": "audio/pcm", + "rate": 24000 + }, + "transcription": { "model": "whisper-1" }, + "noise_reduction": null, + "turn_detection": null + }, + "output": { + "format": { + "type": "audio/pcm", + "rate": 24000 + }, + "voice": "alloy", + "speed": 1.0 + } + } + } + OpenAI.RealtimeSessionCreateResponseAudio: + type: object + properties: + input: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioInput' + output: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioOutput' + OpenAI.RealtimeSessionCreateResponseAudioInput: + type: object + properties: + format: + $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + transcription: + $ref: '#/components/schemas/OpenAI.AudioTranscription' + noise_reduction: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioInputNoiseReduction' + turn_detection: + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseAudioInputTurnDetection' + OpenAI.RealtimeSessionCreateResponseAudioInputNoiseReduction: + type: object + properties: + type: + $ref: '#/components/schemas/OpenAI.NoiseReductionType' + OpenAI.RealtimeSessionCreateResponseAudioInputTurnDetection: type: object - required: - - type - - command - - env properties: type: type: string - enum: - - exec - description: The type of the local shell action. Always `exec`. - command: - type: array - items: - type: string - description: The command to run. - timeout_ms: + threshold: + type: number + prefix_padding_ms: type: integer - format: int32 - nullable: true - description: Optional timeout in milliseconds for the command. - working_directory: - type: string - nullable: true - description: Optional working directory to run the command in. - env: - type: object - additionalProperties: - type: string - description: Environment variables to set for the command. - user: - type: string - nullable: true - description: Optional user to run the command as. - description: Execute a shell command on the server. - OpenAI.LocalShellTool: + silence_duration_ms: + type: integer + OpenAI.RealtimeSessionCreateResponseAudioOutput: + type: object + properties: + format: + $ref: '#/components/schemas/OpenAI.RealtimeAudioFormats' + voice: + $ref: '#/components/schemas/OpenAI.VoiceIdsShared' + speed: + type: number + OpenAI.RealtimeSessionCreateResponseTurnDetection: type: object - required: - - type properties: type: type: string - enum: - - local_shell - description: The type of the local shell tool. Always `local_shell`. - allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: A tool that allows the model to execute shell commands in a local environment. - OpenAI.LocalShellToolCallItemParam: + threshold: + type: number + prefix_padding_ms: + type: integer + silence_duration_ms: + type: integer + OpenAI.RealtimeSessionCreateResponseUnion: type: object required: - type - - call_id - - action properties: type: - type: string + $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnionType' + discriminator: + propertyName: type + mapping: + realtime: '#/components/schemas/OpenAI.RealtimeSessionCreateResponse' + transcription: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponse' + OpenAI.RealtimeSessionCreateResponseUnionType: + anyOf: + - type: string + - type: string enum: - - local_shell_call - call_id: - type: string - description: The unique ID of the local shell tool call generated by the model. - action: - $ref: '#/components/schemas/OpenAI.LocalShellExecAction' - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A tool call to run a command on the local shell. - OpenAI.LocalShellToolCallItemResource: + - realtime + - transcription + OpenAI.RealtimeTranscriptionSessionCreateRequest: type: object required: - type - - status - - call_id - - action properties: - type: + turn_detection: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequestTurnDetection' + description: Configuration for turn detection. Can be set to `null` to turn off. Server VAD means that the model will detect the start and end of speech based on audio volume and respond at the end of user speech. + input_audio_noise_reduction: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateRequestInputAudioNoiseReduction' + description: |- + Configuration for input audio noise reduction. This can be set to `null` to turn off. + Noise reduction filters audio added to the input audio buffer before it is sent to VAD and the model. + Filtering the audio can improve VAD and turn detection accuracy (reducing false positives) and model performance by improving perception of the input audio. + input_audio_format: type: string enum: - - local_shell_call - status: + - pcm16 + - g711_ulaw + - g711_alaw + description: |- + The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`. + For `pcm16`, input audio must be 16-bit PCM at a 24kHz sample rate, + single channel (mono), and little-endian byte order. + default: pcm16 + input_audio_transcription: + allOf: + - $ref: '#/components/schemas/OpenAI.AudioTranscription' + description: Configuration for input audio transcription. The client can optionally set the language and prompt for transcription, these offer additional guidance to the transcription service. + include: + type: array + items: + type: string + enum: + - item.input_audio_transcription.logprobs + description: |- + The set of items to include in the transcription. Current available items are: + `item.input_audio_transcription.logprobs` + type: type: string enum: - - in_progress - - completed - - incomplete - call_id: - type: string - description: The unique ID of the local shell tool call generated by the model. - action: - $ref: '#/components/schemas/OpenAI.LocalShellExecAction' + - transcription + default: transcription allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A tool call to run a command on the local shell. - OpenAI.LocalShellToolCallOutputItemParam: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateRequestUnion' + description: Realtime transcription session object configuration. + title: Realtime transcription session configuration + OpenAI.RealtimeTranscriptionSessionCreateRequestInputAudioNoiseReduction: + type: object + properties: + type: + $ref: '#/components/schemas/OpenAI.NoiseReductionType' + OpenAI.RealtimeTranscriptionSessionCreateRequestTurnDetection: type: object - required: - - type - - output properties: type: type: string enum: - - local_shell_call_output - output: - type: string - description: A JSON string of the output of the local shell tool call. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - The output of a local shell tool call. - OpenAI.LocalShellToolCallOutputItemResource: + - server_vad + threshold: + type: number + prefix_padding_ms: + type: integer + silence_duration_ms: + type: integer + OpenAI.RealtimeTranscriptionSessionCreateResponse: type: object required: + - client_secret - type - - status - - output properties: - type: + client_secret: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponseClientSecret' + description: |- + Ephemeral key returned by the API. Only present when the session is + created on the server via REST API. + modalities: + type: array + items: + type: string + enum: + - text + - audio + description: |- + The set of modalities the model can respond with. To disable audio, + set this to ["text"]. + input_audio_format: type: string - enum: - - local_shell_call_output - status: + description: The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`. + input_audio_transcription: + allOf: + - $ref: '#/components/schemas/OpenAI.AudioTranscription' + description: Configuration of the transcription model. + turn_detection: + allOf: + - $ref: '#/components/schemas/OpenAI.RealtimeTranscriptionSessionCreateResponseTurnDetection' + description: |- + Configuration for turn detection. Can be set to `null` to turn off. Server + VAD means that the model will detect the start and end of speech based on + audio volume and respond at the end of user speech. + type: type: string enum: - - in_progress - - completed - - incomplete - output: - type: string - description: A JSON string of the output of the local shell tool call. + - transcription + x-stainless-const: true allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - The output of a local shell tool call. - OpenAI.Location: + - $ref: '#/components/schemas/OpenAI.RealtimeSessionCreateResponseUnion' + description: |- + A new Realtime transcription session configuration. + + When a session is created on the server via REST API, the session object + also contains an ephemeral key. Default TTL for keys is 10 minutes. This + property is not present when a session is updated via the WebSocket API. + x-oaiMeta: + name: The transcription session object + group: realtime + example: | + { + "id": "sess_BBwZc7cFV3XizEyKGDCGL", + "object": "realtime.transcription_session", + "expires_at": 1742188264, + "modalities": ["audio", "text"], + "turn_detection": { + "type": "server_vad", + "threshold": 0.5, + "prefix_padding_ms": 300, + "silence_duration_ms": 200 + }, + "input_audio_format": "pcm16", + "input_audio_transcription": { + "model": "gpt-4o-transcribe", + "language": null, + "prompt": "" + }, + "client_secret": null + } + OpenAI.RealtimeTranscriptionSessionCreateResponseClientSecret: type: object required: - - type + - value + - expires_at properties: - type: - $ref: '#/components/schemas/OpenAI.LocationType' - discriminator: - propertyName: type - mapping: - approximate: '#/components/schemas/OpenAI.ApproximateLocation' - OpenAI.LocationType: - anyOf: - - type: string - - type: string - enum: - - approximate - OpenAI.LogProb: + value: + type: string + expires_at: + type: integer + format: unixtime + OpenAI.RealtimeTranscriptionSessionCreateResponseTurnDetection: type: object - required: - - token - - logprob - - bytes - - top_logprobs properties: - token: + type: type: string - logprob: + threshold: type: number - format: float - bytes: - type: array - items: - type: integer - format: int32 - top_logprobs: - type: array - items: - $ref: '#/components/schemas/OpenAI.TopLogProb' - description: The log probability of a token. - OpenAI.MCPApprovalRequestItemParam: + prefix_padding_ms: + type: integer + silence_duration_ms: + type: integer + OpenAI.RealtimeTruncation: + anyOf: + - type: string + enum: + - auto + - disabled + - type: object + properties: + type: + type: string + enum: + - retention_ratio + x-stainless-const: true + retention_ratio: + type: number + minimum: 0 + maximum: 1 + token_limits: + $ref: '#/components/schemas/OpenAI.TokenLimits' + required: + - type + - retention_ratio + description: |- + When the number of tokens in a conversation exceeds the model's input token limit, the conversation be truncated, meaning messages (starting from the oldest) will not be included in the model's context. A 32k context model with 4,096 max output tokens can only include 28,224 tokens in the context before truncation occurs. + + Clients can configure truncation behavior to truncate with a lower max token limit, which is an effective way to control token usage and cost. + + Truncation will reduce the number of cached tokens on the next turn (busting the cache), since messages are dropped from the beginning of the context. However, clients can also configure truncation to retain messages up to a fraction of the maximum context size, which will reduce the need for future truncations and thus improve the cache rate. + + Truncation can be disabled entirely, which means the server will never truncate but would instead return an error if the conversation exceeds the model's input token limit. + title: Realtime Truncation Controls + OpenAI.RealtimeTurnDetection: type: object required: - type - - server_label - - name - - arguments properties: type: - type: string - enum: - - mcp_approval_request - server_label: - type: string - description: The label of the MCP server making the request. - name: - type: string - description: The name of the tool to run. - arguments: - type: string - description: A JSON string of arguments for the tool. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A request for human approval of a tool invocation. - OpenAI.MCPApprovalRequestItemResource: + $ref: '#/components/schemas/OpenAI.RealtimeTurnDetectionType' + discriminator: + propertyName: type + OpenAI.RealtimeTurnDetectionType: + type: string + OpenAI.Reasoning: type: object - required: - - type - - server_label - - name - - arguments properties: - type: - type: string + effort: + $ref: '#/components/schemas/OpenAI.ReasoningEffort' + summary: + anyOf: + - type: string + enum: + - auto + - concise + - detailed + - type: 'null' + generate_summary: + anyOf: + - type: string + enum: + - auto + - concise + - detailed + - type: 'null' + description: |- + **gpt-5 and o-series models only** + + Configuration options for + [reasoning models](https://platform.openai.com/docs/guides/reasoning). + title: Reasoning + OpenAI.ReasoningEffort: + anyOf: + - type: string enum: - - mcp_approval_request - server_label: - type: string - description: The label of the MCP server making the request. - name: - type: string - description: The name of the tool to run. - arguments: - type: string - description: A JSON string of arguments for the tool. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A request for human approval of a tool invocation. - OpenAI.MCPApprovalResponseItemParam: + - none + - minimal + - low + - medium + - high + - xhigh + - type: 'null' + description: |- + Constrains effort on reasoning for + [reasoning models](https://platform.openai.com/docs/guides/reasoning). + Currently supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`. Reducing + reasoning effort can result in faster responses and fewer tokens used + on reasoning in a response. + + - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool calls are supported for all reasoning values in gpt-5.1. + - All models before `gpt-5.1` default to `medium` reasoning effort, and do not support `none`. + - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort. + - `xhigh` is currently only supported for `gpt-5.1-codex-max`. + OpenAI.ReasoningTextContent: type: object required: - type - - approval_request_id - - approve + - text properties: type: type: string enum: - - mcp_approval_response - approval_request_id: - type: string - description: The ID of the approval request being answered. - approve: - type: boolean - description: Whether the request was approved. - reason: + - reasoning_text + description: The type of the reasoning text. Always `reasoning_text`. + x-stainless-const: true + default: reasoning_text + text: type: string - nullable: true - description: Optional reason for the decision. + description: The reasoning text from the model. allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A response to an MCP approval request. - OpenAI.MCPApprovalResponseItemResource: + - $ref: '#/components/schemas/OpenAI.OutputContent' + description: Reasoning text from the model. + title: ReasoningTextContent + OpenAI.RefusalContent: type: object required: - type - - approval_request_id - - approve + - refusal properties: type: type: string enum: - - mcp_approval_response - approval_request_id: - type: string - description: The ID of the approval request being answered. - approve: - type: boolean - description: Whether the request was approved. - reason: + - refusal + description: The type of the refusal. Always `refusal`. + x-stainless-const: true + default: refusal + refusal: type: string - nullable: true - description: Optional reason for the decision. + description: The refusal explanation from the model. allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A response to an MCP approval request. - OpenAI.MCPCallItemParam: + - $ref: '#/components/schemas/OpenAI.OutputContent' + description: A refusal from the model. + title: Refusal + OpenAI.Response: type: object required: - - type - - server_label - - name - - arguments + - id + - object + - created_at + - error + - incomplete_details + - output + - instructions + - parallel_tool_calls + - content_filters properties: - type: - type: string - enum: - - mcp_call - server_label: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + top_logprobs: + anyOf: + - type: integer + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + default: 1 + top_p: + anyOf: + - type: number + - type: 'null' + default: 1 + user: type: string - description: The label of the MCP server running the tool. - name: + description: |- + This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations. + A stable identifier for your end-users. + Used to boost cache hit rates by better bucketing similar requests and to help OpenAI detect and prevent abuse. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + safety_identifier: type: string - description: The name of the tool that was run. - arguments: + description: |- + A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. + The IDs should be a string that uniquely identifies each user. We recommend hashing their username or email address, in order to avoid sending us any identifying information. [Learn more](https://platform.openai.com/docs/guides/safety-best-practices#safety-identifiers). + prompt_cache_key: type: string - description: A JSON string of the arguments passed to the tool. - output: + description: Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](https://platform.openai.com/docs/guides/prompt-caching). + prompt_cache_retention: + anyOf: + - type: string + enum: + - in-memory + - 24h + - type: 'null' + previous_response_id: + anyOf: + - type: string + - type: 'null' + model: type: string - nullable: true - description: The output from the tool call. - error: + description: |- + Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI + offers a wide range of models with different capabilities, performance + characteristics, and price points. Refer to the [model guide](https://platform.openai.com/docs/models) + to browse and compare available models. + reasoning: + anyOf: + - $ref: '#/components/schemas/OpenAI.Reasoning' + - type: 'null' + background: + anyOf: + - type: boolean + - type: 'null' + max_output_tokens: + anyOf: + - type: integer + - type: 'null' + max_tool_calls: + anyOf: + - type: integer + - type: 'null' + text: + $ref: '#/components/schemas/OpenAI.ResponseTextParam' + tools: + $ref: '#/components/schemas/OpenAI.ToolsArray' + tool_choice: + $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + prompt: + $ref: '#/components/schemas/OpenAI.Prompt' + truncation: + anyOf: + - type: string + enum: + - auto + - disabled + - type: 'null' + default: disabled + id: type: string - nullable: true - description: The error from the tool call, if any. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - An invocation of a tool on an MCP server. - OpenAI.MCPCallItemResource: - type: object - required: - - type - - server_label - - name - - arguments - properties: - type: + description: Unique identifier for this Response. + object: type: string enum: - - mcp_call - server_label: - type: string - description: The label of the MCP server running the tool. - name: - type: string - description: The name of the tool that was run. - arguments: - type: string - description: A JSON string of the arguments passed to the tool. - output: + - response + description: The object type of this resource - always set to `response`. + x-stainless-const: true + status: type: string - nullable: true - description: The output from the tool call. + enum: + - completed + - failed + - in_progress + - cancelled + - queued + - incomplete + description: |- + The status of the response generation. One of `completed`, `failed`, + `in_progress`, `cancelled`, `queued`, or `incomplete`. + created_at: + type: integer + format: unixtime + description: Unix timestamp (in seconds) of when this Response was created. error: - type: string - nullable: true - description: The error from the tool call, if any. - allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - An invocation of a tool on an MCP server. - OpenAI.MCPListToolsItemParam: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseError' + - type: 'null' + incomplete_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.ResponseIncompleteDetails' + - type: 'null' + output: + type: array + items: + $ref: '#/components/schemas/OpenAI.OutputItem' + description: |- + An array of content items generated by the model. + + - The length and order of items in the `output` array is dependent + on the model's response. + - Rather than accessing the first item in the `output` array and + assuming it's an `assistant` message with the content generated by + the model, you might consider using the `output_text` property where + supported in SDKs. + instructions: + anyOf: + - type: string + - type: array + items: + $ref: '#/components/schemas/OpenAI.InputItem' + - type: 'null' + output_text: + anyOf: + - type: string + - type: 'null' + x-stainless-skip: true + usage: + $ref: '#/components/schemas/OpenAI.ResponseUsage' + parallel_tool_calls: + type: boolean + description: Whether to allow the model to run tool calls in parallel. + default: true + conversation: + anyOf: + - $ref: '#/components/schemas/OpenAI.Conversation' + - type: 'null' + content_filters: + type: array + items: + $ref: '#/components/schemas/AzureContentFilterForResponsesAPI' + description: The content filter results from RAI. + title: The response object + OpenAI.ResponseAudioDeltaEvent: type: object required: - type - - server_label - - tools + - sequence_number + - delta properties: type: type: string enum: - - mcp_list_tools - server_label: - type: string - description: The label of the MCP server. - tools: - type: array - items: - $ref: '#/components/schemas/OpenAI.MCPListToolsTool' - description: The tools available on the server. - error: + - response.audio.delta + description: The type of the event. Always `response.audio.delta`. + x-stainless-const: true + sequence_number: + type: integer + description: A sequence number for this chunk of the stream response. + delta: type: string - nullable: true - description: Error message if the server could not list tools. + description: A chunk of Base64 encoded response audio bytes. allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A list of tools available on an MCP server. - OpenAI.MCPListToolsItemResource: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when there is a partial audio response. + x-oaiMeta: + name: response.audio.delta + group: responses + example: | + { + "type": "response.audio.delta", + "response_id": "resp_123", + "delta": "base64encoded...", + "sequence_number": 1 + } + OpenAI.ResponseAudioDoneEvent: type: object required: - type - - server_label - - tools + - sequence_number properties: type: type: string enum: - - mcp_list_tools - server_label: - type: string - description: The label of the MCP server. - tools: - type: array - items: - $ref: '#/components/schemas/OpenAI.MCPListToolsTool' - description: The tools available on the server. - error: - type: string - nullable: true - description: Error message if the server could not list tools. + - response.audio.done + description: The type of the event. Always `response.audio.done`. + x-stainless-const: true + sequence_number: + type: integer + description: The sequence number of the delta. allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A list of tools available on an MCP server. - OpenAI.MCPListToolsTool: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when the audio response is complete. + x-oaiMeta: + name: response.audio.done + group: responses + example: | + { + "type": "response.audio.done", + "response_id": "resp-123", + "sequence_number": 1 + } + OpenAI.ResponseAudioTranscriptDeltaEvent: type: object required: - - name - - input_schema + - type + - delta + - sequence_number properties: - name: + type: type: string - description: The name of the tool. - description: + enum: + - response.audio.transcript.delta + description: The type of the event. Always `response.audio.transcript.delta`. + x-stainless-const: true + delta: type: string - nullable: true - description: The description of the tool. - input_schema: - description: The JSON schema describing the tool's input. - annotations: - nullable: true - description: Additional annotations about the tool. - description: A tool available on an MCP server. - OpenAI.MCPTool: + description: The partial transcript of the audio response. + sequence_number: + type: integer + description: The sequence number of this event. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when there is a partial transcript of audio. + x-oaiMeta: + name: response.audio.transcript.delta + group: responses + example: | + { + "type": "response.audio.transcript.delta", + "response_id": "resp_123", + "delta": " ... partial transcript ... ", + "sequence_number": 1 + } + OpenAI.ResponseAudioTranscriptDoneEvent: type: object required: - type - - server_label - - server_url + - sequence_number properties: type: type: string enum: - - mcp - description: The type of the MCP tool. Always `mcp`. - server_label: - type: string - description: A label for this MCP server, used to identify it in tool calls. - server_url: - type: string - description: The URL for the MCP server. - headers: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Optional HTTP headers to send to the MCP server. Use for authentication - or other purposes. - allowed_tools: - anyOf: - - type: array - items: - type: string - - type: object - properties: - tool_names: - type: array - items: - type: string - description: List of allowed tool names. - nullable: true - description: List of allowed tool names or a filter object. - require_approval: - anyOf: - - type: object - properties: - always: - type: object - properties: - tool_names: - type: array - items: - type: string - description: List of tools that require approval. - description: A list of tools that always require approval. - never: - type: object - properties: - tool_names: - type: array - items: - type: string - description: List of tools that do not require approval. - description: A list of tools that never require approval. - - type: string - enum: - - always - - never - nullable: true - description: Specify which of the MCP server's tools require approval. - default: always + - response.audio.transcript.done + description: The type of the event. Always `response.audio.transcript.done`. + x-stainless-const: true + sequence_number: + type: integer + description: The sequence number of this event. allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: |- - Give the model access to additional tools via remote Model Context Protocol - (MCP) servers. [Learn more about MCP](/docs/guides/tools-remote-mcp). - OpenAI.MetadataPropertyForRequest: - type: object - properties: - metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - OpenAI.Model: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when the full audio transcript is completed. + x-oaiMeta: + name: response.audio.transcript.done + group: responses + example: | + { + "type": "response.audio.transcript.done", + "response_id": "resp_123", + "sequence_number": 1 + } + OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent: type: object required: - - id - - created - - object - - owned_by + - type + - output_index + - item_id + - delta + - sequence_number properties: - id: + type: type: string - description: The model identifier, which can be referenced in the API endpoints. - created: + enum: + - response.code_interpreter_call_code.delta + description: The type of the event. Always `response.code_interpreter_call_code.delta`. + x-stainless-const: true + output_index: type: integer - format: unixtime - description: The Unix timestamp (in seconds) when the model was created. - object: + description: The index of the output item in the response for which the code is being streamed. + item_id: type: string - enum: - - model - description: The object type, which is always "model". - owned_by: + description: The unique identifier of the code interpreter tool call item. + delta: type: string - description: The organization that owns the model. - description: Describes an OpenAI model offering that can be used with the API. - OpenAI.OtherChunkingStrategyResponseParam: + description: The partial code snippet being streamed by the code interpreter. + sequence_number: + type: integer + description: The sequence number of this event, used to order streaming events. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when a partial code snippet is streamed by the code interpreter. + x-oaiMeta: + name: response.code_interpreter_call_code.delta + group: responses + example: | + { + "type": "response.code_interpreter_call_code.delta", + "output_index": 0, + "item_id": "ci_12345", + "delta": "print('Hello, world')", + "sequence_number": 1 + } + OpenAI.ResponseCodeInterpreterCallCodeDoneEvent: type: object required: - type + - output_index + - item_id + - code + - sequence_number properties: type: type: string enum: - - other - description: Always `other`. - allOf: - - $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponseParam' - description: This is returned when the chunking strategy is unknown. Typically, this is because the file was indexed before the `chunking_strategy` concept was introduced in the API. - OpenAI.ParallelToolCalls: - type: boolean - description: Whether to enable [parallel function calling](/docs/guides/function-calling#configuring-parallel-function-calling) during tool use. - OpenAI.Prompt: - type: object - required: - - id - properties: - id: + - response.code_interpreter_call_code.done + description: The type of the event. Always `response.code_interpreter_call_code.done`. + x-stainless-const: true + output_index: + type: integer + description: The index of the output item in the response for which the code is finalized. + item_id: type: string - description: The unique identifier of the prompt template to use. - version: + description: The unique identifier of the code interpreter tool call item. + code: type: string - nullable: true - description: Optional version of the prompt template. - variables: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsePromptVariables' - nullable: true - description: |- - Reference to a prompt template and its variables. - [Learn more](/docs/guides/text?api-mode=responses#reusable-prompts). - OpenAI.RankingOptions: + description: The final code snippet output by the code interpreter. + sequence_number: + type: integer + description: The sequence number of this event, used to order streaming events. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when the code snippet is finalized by the code interpreter. + x-oaiMeta: + name: response.code_interpreter_call_code.done + group: responses + example: | + { + "type": "response.code_interpreter_call_code.done", + "output_index": 3, + "item_id": "ci_12345", + "code": "print('done')", + "sequence_number": 1 + } + OpenAI.ResponseCodeInterpreterCallCompletedEvent: type: object + required: + - type + - output_index + - item_id + - sequence_number properties: - ranker: + type: type: string enum: - - auto - - default-2024-11-15 - description: The ranker to use for the file search. - score_threshold: - type: number - format: float - description: The score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will attempt to return only the most relevant results, but may return fewer results. - OpenAI.Reasoning: + - response.code_interpreter_call.completed + description: The type of the event. Always `response.code_interpreter_call.completed`. + x-stainless-const: true + output_index: + type: integer + description: The index of the output item in the response for which the code interpreter call is completed. + item_id: + type: string + description: The unique identifier of the code interpreter tool call item. + sequence_number: + type: integer + description: The sequence number of this event, used to order streaming events. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when the code interpreter call is completed. + x-oaiMeta: + name: response.code_interpreter_call.completed + group: responses + example: | + { + "type": "response.code_interpreter_call.completed", + "output_index": 5, + "item_id": "ci_12345", + "sequence_number": 1 + } + OpenAI.ResponseCodeInterpreterCallInProgressEvent: type: object + required: + - type + - output_index + - item_id + - sequence_number properties: - effort: - allOf: - - $ref: '#/components/schemas/OpenAI.ReasoningEffort' - nullable: true - default: medium - summary: + type: type: string enum: - - auto - - concise - - detailed - nullable: true - description: |- - A summary of the reasoning performed by the model. This can be - useful for debugging and understanding the model's reasoning process. - One of `auto`, `concise`, or `detailed`. - generate_summary: + - response.code_interpreter_call.in_progress + description: The type of the event. Always `response.code_interpreter_call.in_progress`. + x-stainless-const: true + output_index: + type: integer + description: The index of the output item in the response for which the code interpreter call is in progress. + item_id: type: string - enum: - - auto - - concise - - detailed - nullable: true - description: |- - **Deprecated:** use `summary` instead. - - A summary of the reasoning performed by the model. This can be - useful for debugging and understanding the model's reasoning process. - One of `auto`, `concise`, or `detailed`. - deprecated: true - default: null - description: |- - **o-series models only** - - Configuration options for - [reasoning models](https://platform.openai.com/docs/guides/reasoning). - OpenAI.ReasoningEffort: - type: string - enum: - - low - - medium - - high - description: |- - **o-series models only** - - Constrains effort on reasoning for - [reasoning models](https://platform.openai.com/docs/guides/reasoning). - Currently supported values are `low`, `medium`, and `high`. Reducing - reasoning effort can result in faster responses and fewer tokens used - on reasoning in a response. - OpenAI.ReasoningItemParam: + description: The unique identifier of the code interpreter tool call item. + sequence_number: + type: integer + description: The sequence number of this event, used to order streaming events. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when a code interpreter call is in progress. + x-oaiMeta: + name: response.code_interpreter_call.in_progress + group: responses + example: | + { + "type": "response.code_interpreter_call.in_progress", + "output_index": 0, + "item_id": "ci_12345", + "sequence_number": 1 + } + OpenAI.ResponseCodeInterpreterCallInterpretingEvent: type: object required: - type - - summary + - output_index + - item_id + - sequence_number properties: type: type: string enum: - - reasoning - encrypted_content: + - response.code_interpreter_call.interpreting + description: The type of the event. Always `response.code_interpreter_call.interpreting`. + x-stainless-const: true + output_index: + type: integer + description: The index of the output item in the response for which the code interpreter is interpreting code. + item_id: type: string - nullable: true - description: |- - The encrypted content of the reasoning item - populated when a response is - generated with `reasoning.encrypted_content` in the `include` parameter. - summary: - type: array - items: - $ref: '#/components/schemas/OpenAI.ReasoningItemSummaryPart' - description: Reasoning text contents. + description: The unique identifier of the code interpreter tool call item. + sequence_number: + type: integer + description: The sequence number of this event, used to order streaming events. allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: | - A description of the chain of thought used by a reasoning model while generating - a response. Be sure to include these items in your `input` to the Responses API - for subsequent turns of a conversation if you are manually - [managing context](/docs/guides/conversation-state). - OpenAI.ReasoningItemResource: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when the code interpreter is actively interpreting the code snippet. + x-oaiMeta: + name: response.code_interpreter_call.interpreting + group: responses + example: | + { + "type": "response.code_interpreter_call.interpreting", + "output_index": 4, + "item_id": "ci_12345", + "sequence_number": 1 + } + OpenAI.ResponseCompletedEvent: type: object required: - type - - summary + - response + - sequence_number properties: type: type: string enum: - - reasoning - encrypted_content: - type: string - nullable: true - description: |- - The encrypted content of the reasoning item - populated when a response is - generated with `reasoning.encrypted_content` in the `include` parameter. - summary: - type: array - items: - $ref: '#/components/schemas/OpenAI.ReasoningItemSummaryPart' - description: Reasoning text contents. + - response.completed + description: The type of the event. Always `response.completed`. + x-stainless-const: true + response: + allOf: + - $ref: '#/components/schemas/OpenAI.Response' + description: Properties of the completed response. + sequence_number: + type: integer + description: The sequence number for this event. allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: | - A description of the chain of thought used by a reasoning model while generating - a response. Be sure to include these items in your `input` to the Responses API - for subsequent turns of a conversation if you are manually - [managing context](/docs/guides/conversation-state). - OpenAI.ReasoningItemSummaryPart: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when the model response is complete. + x-oaiMeta: + name: response.completed + group: responses + example: | + { + "type": "response.completed", + "response": { + "id": "resp_123", + "object": "response", + "created_at": 1740855869, + "status": "completed", + "error": null, + "incomplete_details": null, + "input": [], + "instructions": null, + "max_output_tokens": null, + "model": "gpt-4o-mini-2024-07-18", + "output": [ + { + "id": "msg_123", + "type": "message", + "role": "assistant", + "content": [ + { + "type": "output_text", + "text": "In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.", + "annotations": [] + } + ] + } + ], + "previous_response_id": null, + "reasoning_effort": null, + "store": false, + "temperature": 1, + "text": { + "format": { + "type": "text" + } + }, + "tool_choice": "auto", + "tools": [], + "top_p": 1, + "truncation": "disabled", + "usage": { + "input_tokens": 0, + "output_tokens": 0, + "output_tokens_details": { + "reasoning_tokens": 0 + }, + "total_tokens": 0 + }, + "user": null, + "metadata": {} + }, + "sequence_number": 1 + } + OpenAI.ResponseContentPartAddedEvent: type: object required: - type + - item_id + - output_index + - content_index + - part + - sequence_number properties: type: - $ref: '#/components/schemas/OpenAI.ReasoningItemSummaryPartType' - discriminator: - propertyName: type - mapping: - summary_text: '#/components/schemas/OpenAI.ReasoningItemSummaryTextPart' - OpenAI.ReasoningItemSummaryPartType: - anyOf: - - type: string - - type: string + type: string enum: - - summary_text - OpenAI.ReasoningItemSummaryTextPart: + - response.content_part.added + description: The type of the event. Always `response.content_part.added`. + x-stainless-const: true + item_id: + type: string + description: The ID of the output item that the content part was added to. + output_index: + type: integer + description: The index of the output item that the content part was added to. + content_index: + type: integer + description: The index of the content part that was added. + part: + allOf: + - $ref: '#/components/schemas/OpenAI.OutputContent' + description: The content part that was added. + sequence_number: + type: integer + description: The sequence number of this event. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when a new content part is added. + x-oaiMeta: + name: response.content_part.added + group: responses + example: | + { + "type": "response.content_part.added", + "item_id": "msg_123", + "output_index": 0, + "content_index": 0, + "part": { + "type": "output_text", + "text": "", + "annotations": [] + }, + "sequence_number": 1 + } + OpenAI.ResponseContentPartDoneEvent: type: object required: - type - - text + - item_id + - output_index + - content_index + - sequence_number + - part properties: type: type: string enum: - - summary_text - text: - type: string - allOf: - - $ref: '#/components/schemas/OpenAI.ReasoningItemSummaryPart' - OpenAI.Response: - type: object - required: - - metadata - - temperature - - top_p - - user - - id - - object - - created_at - - error - - incomplete_details - - output - - instructions - - parallel_tool_calls - properties: - metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - temperature: - type: number - format: float - nullable: true - minimum: 0 - maximum: 2 - description: |- - What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. - We generally recommend altering this or `top_p` but not both. - top_p: - type: number - format: float - nullable: true - minimum: 0 - maximum: 1 - description: |- - An alternative to sampling with temperature, called nucleus sampling, - where the model considers the results of the tokens with top_p probability - mass. So 0.1 means only the tokens comprising the top 10% probability mass - are considered. - - We generally recommend altering this or `temperature` but not both. - user: + - response.content_part.done + description: The type of the event. Always `response.content_part.done`. + x-stainless-const: true + item_id: type: string - nullable: true - description: A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices#end-user-ids). - top_logprobs: + description: The ID of the output item that the content part was added to. + output_index: type: integer - format: int32 - nullable: true - description: An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. - previous_response_id: - type: string - nullable: true - description: |- - The unique ID of the previous response to the model. Use this to - create multi-turn conversations. Learn more about - [conversation state](/docs/guides/conversation-state). - reasoning: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.Reasoning' - nullable: true - background: - type: boolean - nullable: true - description: |- - Whether to run the model response in the background. - [Learn more](/docs/guides/background). - default: false - max_output_tokens: + description: The index of the output item that the content part was added to. + content_index: type: integer - format: int32 - nullable: true - description: An upper bound for the number of tokens that can be generated for a response, including visible output tokens and [reasoning tokens](/docs/guides/reasoning). - max_tool_calls: + description: The index of the content part that is done. + sequence_number: type: integer - format: int32 - nullable: true - description: The maximum number of total calls to built-in tools that can be processed in a response. This maximum number applies across all built-in tool calls, not per individual tool. Any further attempts to call a tool by the model will be ignored. - text: - type: object - properties: - format: - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - description: |- - Configuration options for a text response from the model. Can be plain - text or structured JSON data. Learn more: - - [Text inputs and outputs](/docs/guides/text) - - [Structured Outputs](/docs/guides/structured-outputs) - tools: - type: array - items: - $ref: '#/components/schemas/OpenAI.Tool' - description: |- - An array of tools the model may call while generating a response. You - can specify which tool to use by setting the `tool_choice` parameter. - - The two categories of tools you can provide the model are: - - - **Built-in tools**: Tools that are provided by OpenAI that extend the - model's capabilities, like [web search](/docs/guides/tools-web-search) - or [file search](/docs/guides/tools-file-search). Learn more about - [built-in tools](/docs/guides/tools). - - **Function calls (custom tools)**: Functions that are defined by you, - enabling the model to call your own code. Learn more about - [function calling](/docs/guides/function-calling). - tool_choice: - anyOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceOptions' - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - description: |- - How the model should select which tool (or tools) to use when generating - a response. See the `tools` parameter to see how to specify which tools - the model can call. - prompt: - type: object + description: The sequence number of this event. + part: allOf: - - $ref: '#/components/schemas/OpenAI.Prompt' - nullable: true - truncation: - type: string - enum: - - auto - - disabled - nullable: true - description: |- - The truncation strategy to use for the model response. - - `auto`: If the context of this response and previous ones exceeds - the model's context window size, the model will truncate the - response to fit the context window by dropping input items in the - middle of the conversation. - - `disabled` (default): If a model response will exceed the context window - size for a model, the request will fail with a 400 error. - default: disabled - id: - type: string - description: Unique identifier for this Response. - object: - type: string - enum: - - response - description: The object type of this resource - always set to `response`. - status: + - $ref: '#/components/schemas/OpenAI.OutputContent' + description: The content part that is done. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when a content part is done. + x-oaiMeta: + name: response.content_part.done + group: responses + example: | + { + "type": "response.content_part.done", + "item_id": "msg_123", + "output_index": 0, + "content_index": 0, + "sequence_number": 1, + "part": { + "type": "output_text", + "text": "In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.", + "annotations": [] + } + } + OpenAI.ResponseCreatedEvent: + type: object + required: + - type + - response + - sequence_number + properties: + type: type: string enum: - - completed - - failed - - in_progress - - cancelled - - queued - - incomplete - description: |- - The status of the response generation. One of `completed`, `failed`, - `in_progress`, `cancelled`, `queued`, or `incomplete`. - created_at: - type: integer - format: unixtime - description: Unix timestamp (in seconds) of when this Response was created. - error: - type: object + - response.created + description: The type of the event. Always `response.created`. + x-stainless-const: true + response: allOf: - - $ref: '#/components/schemas/OpenAI.ResponseError' - nullable: true - incomplete_details: - type: object - properties: - reason: - type: string - enum: - - max_output_tokens - - content_filter - description: The reason why the response is incomplete. - nullable: true - description: Details about why the response is incomplete. - output: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemResource' - description: |- - An array of content items generated by the model. - - - The length and order of items in the `output` array is dependent - on the model's response. - - Rather than accessing the first item in the `output` array and - assuming it's an `assistant` message with the content generated by - the model, you might consider using the `output_text` property where - supported in SDKs. - instructions: - anyOf: - - type: string - - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemParam' - nullable: true - description: |- - A system (or developer) message inserted into the model's context. - - When using along with `previous_response_id`, the instructions from a previous - response will not be carried over to the next response. This makes it simple - to swap out system (or developer) messages in new responses. - output_text: - type: string - nullable: true - description: |- - SDK-only convenience property that contains the aggregated text output - from all `output_text` items in the `output` array, if any are present. - Supported in the Python and JavaScript SDKs. - usage: - $ref: '#/components/schemas/OpenAI.ResponseUsage' - parallel_tool_calls: - type: boolean - description: Whether to allow the model to run tool calls in parallel. - default: true - OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent: + - $ref: '#/components/schemas/OpenAI.Response' + description: The response that was created. + sequence_number: + type: integer + description: The sequence number for this event. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: An event that is emitted when a response is created. + x-oaiMeta: + name: response.created + group: responses + example: | + { + "type": "response.created", + "response": { + "id": "resp_67ccfcdd16748190a91872c75d38539e09e4d4aac714747c", + "object": "response", + "created_at": 1741487325, + "status": "in_progress", + "error": null, + "incomplete_details": null, + "instructions": null, + "max_output_tokens": null, + "model": "gpt-4o-2024-08-06", + "output": [], + "parallel_tool_calls": true, + "previous_response_id": null, + "reasoning": { + "effort": null, + "summary": null + }, + "store": true, + "temperature": 1, + "text": { + "format": { + "type": "text" + } + }, + "tool_choice": "auto", + "tools": [], + "top_p": 1, + "truncation": "disabled", + "usage": null, + "user": null, + "metadata": {} + }, + "sequence_number": 1 + } + OpenAI.ResponseCustomToolCallInputDeltaEvent: type: object required: - type + - sequence_number - output_index - item_id - delta - - obfuscation properties: type: type: string enum: - - response.code_interpreter_call_code.delta - description: The type of the event. Always `response.code_interpreter_call_code.delta`. + - response.custom_tool_call_input.delta + description: The event type identifier. + x-stainless-const: true + sequence_number: + type: integer + description: The sequence number of this event. output_index: type: integer - format: int32 - description: The index of the output item in the response for which the code is being streamed. + description: The index of the output this delta applies to. item_id: type: string - description: The unique identifier of the code interpreter tool call item. + description: Unique identifier for the API item associated with this event. delta: type: string - description: The partial code snippet being streamed by the code interpreter. - obfuscation: - type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. + description: The incremental input data (delta) for the custom tool call. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a partial code snippet is streamed by the code interpreter. - OpenAI.ResponseCodeInterpreterCallCodeDoneEvent: + description: Event representing a delta (partial update) to the input of a custom tool call. + title: ResponseCustomToolCallInputDelta + x-oaiMeta: + name: response.custom_tool_call_input.delta + group: responses + example: | + { + "type": "response.custom_tool_call_input.delta", + "output_index": 0, + "item_id": "ctc_1234567890abcdef", + "delta": "partial input text" + } + OpenAI.ResponseCustomToolCallInputDoneEvent: type: object required: - type + - sequence_number - output_index - item_id - - code + - input properties: type: type: string enum: - - response.code_interpreter_call_code.done - description: The type of the event. Always `response.code_interpreter_call_code.done`. + - response.custom_tool_call_input.done + description: The event type identifier. + x-stainless-const: true + sequence_number: + type: integer + description: The sequence number of this event. output_index: type: integer - format: int32 - description: The index of the output item in the response for which the code is finalized. + description: The index of the output this event applies to. item_id: type: string - description: The unique identifier of the code interpreter tool call item. + description: Unique identifier for the API item associated with this event. + input: + type: string + description: The complete input data for the custom tool call. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Event indicating that input for a custom tool call is complete. + title: ResponseCustomToolCallInputDone + x-oaiMeta: + name: response.custom_tool_call_input.done + group: responses + example: | + { + "type": "response.custom_tool_call_input.done", + "output_index": 0, + "item_id": "ctc_1234567890abcdef", + "input": "final complete input text" + } + OpenAI.ResponseError: + type: object + required: + - code + - message + properties: code: + $ref: '#/components/schemas/OpenAI.ResponseErrorCode' + message: type: string - description: The final code snippet output by the code interpreter. + description: A human-readable description of the error. + description: An error object returned when the model fails to generate a Response. + OpenAI.ResponseErrorCode: + type: string + enum: + - server_error + - rate_limit_exceeded + - invalid_prompt + - vector_store_timeout + - invalid_image + - invalid_image_format + - invalid_base64_image + - invalid_image_url + - image_too_large + - image_too_small + - image_parse_error + - image_content_policy_violation + - invalid_image_mode + - image_file_too_large + - unsupported_image_media_type + - empty_image_file + - failed_to_download_image + - image_file_not_found + description: The error code for the response. + OpenAI.ResponseErrorEvent: + type: object + required: + - type + - code + - message + - param + - sequence_number + properties: + type: + type: string + enum: + - error + description: The type of the event. Always `error`. + x-stainless-const: true + code: + anyOf: + - type: string + - type: 'null' + message: + type: string + description: The error message. + param: + anyOf: + - type: string + - type: 'null' + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the code snippet is finalized by the code interpreter. - OpenAI.ResponseCodeInterpreterCallCompletedEvent: + description: Emitted when an error occurs. + x-oaiMeta: + name: error + group: responses + example: | + { + "type": "error", + "code": "ERR_SOMETHING", + "message": "Something went wrong", + "param": null, + "sequence_number": 1 + } + OpenAI.ResponseFailedEvent: + type: object + required: + - type + - sequence_number + - response + properties: + type: + type: string + enum: + - response.failed + description: The type of the event. Always `response.failed`. + x-stainless-const: true + sequence_number: + type: integer + description: The sequence number of this event. + response: + allOf: + - $ref: '#/components/schemas/OpenAI.Response' + description: The response that failed. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: An event that is emitted when a response fails. + x-oaiMeta: + name: response.failed + group: responses + example: | + { + "type": "response.failed", + "response": { + "id": "resp_123", + "object": "response", + "created_at": 1740855869, + "status": "failed", + "error": { + "code": "server_error", + "message": "The model failed to generate a response." + }, + "incomplete_details": null, + "instructions": null, + "max_output_tokens": null, + "model": "gpt-4o-mini-2024-07-18", + "output": [], + "previous_response_id": null, + "reasoning_effort": null, + "store": false, + "temperature": 1, + "text": { + "format": { + "type": "text" + } + }, + "tool_choice": "auto", + "tools": [], + "top_p": 1, + "truncation": "disabled", + "usage": null, + "user": null, + "metadata": {} + } + } + OpenAI.ResponseFileSearchCallCompletedEvent: type: object required: - type - output_index - item_id + - sequence_number properties: type: type: string enum: - - response.code_interpreter_call.completed - description: The type of the event. Always `response.code_interpreter_call.completed`. + - response.file_search_call.completed + description: The type of the event. Always `response.file_search_call.completed`. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item in the response for which the code interpreter call is completed. + description: The index of the output item that the file search call is initiated. item_id: type: string - description: The unique identifier of the code interpreter tool call item. + description: The ID of the output item that the file search call is initiated. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the code interpreter call is completed. - OpenAI.ResponseCodeInterpreterCallInProgressEvent: + description: Emitted when a file search call is completed (results found). + x-oaiMeta: + name: response.file_search_call.completed + group: responses + example: | + { + "type": "response.file_search_call.completed", + "output_index": 0, + "item_id": "fs_123", + "sequence_number": 1 + } + OpenAI.ResponseFileSearchCallInProgressEvent: type: object required: - type - output_index - item_id + - sequence_number properties: type: type: string enum: - - response.code_interpreter_call.in_progress - description: The type of the event. Always `response.code_interpreter_call.in_progress`. + - response.file_search_call.in_progress + description: The type of the event. Always `response.file_search_call.in_progress`. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item in the response for which the code interpreter call is in progress. + description: The index of the output item that the file search call is initiated. item_id: type: string - description: The unique identifier of the code interpreter tool call item. + description: The ID of the output item that the file search call is initiated. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a code interpreter call is in progress. - OpenAI.ResponseCodeInterpreterCallInterpretingEvent: + description: Emitted when a file search call is initiated. + x-oaiMeta: + name: response.file_search_call.in_progress + group: responses + example: | + { + "type": "response.file_search_call.in_progress", + "output_index": 0, + "item_id": "fs_123", + "sequence_number": 1 + } + OpenAI.ResponseFileSearchCallSearchingEvent: type: object required: - type - output_index - item_id + - sequence_number properties: type: type: string enum: - - response.code_interpreter_call.interpreting - description: The type of the event. Always `response.code_interpreter_call.interpreting`. + - response.file_search_call.searching + description: The type of the event. Always `response.file_search_call.searching`. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item in the response for which the code interpreter is interpreting code. + description: The index of the output item that the file search call is searching. item_id: type: string - description: The unique identifier of the code interpreter tool call item. + description: The ID of the output item that the file search call is initiated. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the code interpreter is actively interpreting the code snippet. - OpenAI.ResponseCompletedEvent: + description: Emitted when a file search is currently searching. + x-oaiMeta: + name: response.file_search_call.searching + group: responses + example: | + { + "type": "response.file_search_call.searching", + "output_index": 0, + "item_id": "fs_123", + "sequence_number": 1 + } + OpenAI.ResponseFormatJsonObject: type: object required: - type - - response properties: type: type: string enum: - - response.completed - description: The type of the event. Always `response.completed`. - response: - allOf: - - $ref: '#/components/schemas/OpenAI.Response' - description: Properties of the completed response. + - json_object + description: The type of response format being defined. Always `json_object`. + x-stainless-const: true allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the model response is complete. - OpenAI.ResponseContentPartAddedEvent: + - $ref: '#/components/schemas/OpenAI.TextResponseFormatConfiguration' + description: |- + JSON object response format. An older method of generating JSON responses. + Using `json_schema` is recommended for models that support it. Note that the + model will not generate JSON without a system or user message instructing it + to do so. + title: JSON object + OpenAI.ResponseFormatJsonSchema: type: object required: - type - - item_id - - output_index - - content_index - - part + - json_schema properties: type: type: string enum: - - response.content_part.added - description: The type of the event. Always `response.content_part.added`. - item_id: - type: string - description: The ID of the output item that the content part was added to. - output_index: - type: integer - format: int32 - description: The index of the output item that the content part was added to. - content_index: - type: integer - format: int32 - description: The index of the content part that was added. - part: + - json_schema + description: The type of response format being defined. Always `json_schema`. + x-stainless-const: true + json_schema: allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content part that was added. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a new content part is added. - OpenAI.ResponseContentPartDoneEvent: + - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchemaJsonSchema' + description: Structured Outputs configuration options, including a JSON Schema. + title: JSON schema + description: |- + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + title: JSON schema + OpenAI.ResponseFormatJsonSchemaJsonSchema: + type: object + required: + - name + properties: + description: + type: string + name: + type: string + schema: + $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema' + strict: + anyOf: + - type: boolean + - type: 'null' + OpenAI.ResponseFormatJsonSchemaSchema: + type: object + description: |- + The schema for the response format, described as a JSON Schema object. + Learn how to build JSON schemas [here](https://json-schema.org/). + title: JSON schema + OpenAI.ResponseFormatText: type: object required: - type - - item_id - - output_index - - content_index - - part properties: type: type: string enum: - - response.content_part.done - description: The type of the event. Always `response.content_part.done`. - item_id: - type: string - description: The ID of the output item that the content part was added to. - output_index: - type: integer - format: int32 - description: The index of the output item that the content part was added to. - content_index: - type: integer - format: int32 - description: The index of the content part that is done. - part: - allOf: - - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content part that is done. + - text + description: The type of response format being defined. Always `text`. + x-stainless-const: true allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a content part is done. - OpenAI.ResponseCreatedEvent: + - $ref: '#/components/schemas/OpenAI.TextResponseFormatConfiguration' + description: Default response format. Used to generate text responses. + title: Text + OpenAI.ResponseFunctionCallArgumentsDeltaEvent: type: object required: - type - - response + - item_id + - output_index + - sequence_number + - delta properties: type: type: string enum: - - response.created - description: The type of the event. Always `response.created`. - response: - allOf: - - $ref: '#/components/schemas/OpenAI.Response' - description: The response that was created. + - response.function_call_arguments.delta + description: The type of the event. Always `response.function_call_arguments.delta`. + x-stainless-const: true + item_id: + type: string + description: The ID of the output item that the function-call arguments delta is added to. + output_index: + type: integer + description: The index of the output item that the function-call arguments delta is added to. + sequence_number: + type: integer + description: The sequence number of this event. + delta: + type: string + description: The function-call arguments delta that is added. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: An event that is emitted when a response is created. - OpenAI.ResponseError: - type: object - required: - - code - - message - properties: - code: - $ref: '#/components/schemas/OpenAI.ResponseErrorCode' - message: - type: string - description: A human-readable description of the error. - description: An error object returned when the model fails to generate a Response. - OpenAI.ResponseErrorCode: - type: string - enum: - - server_error - - rate_limit_exceeded - - invalid_prompt - - vector_store_timeout - - invalid_image - - invalid_image_format - - invalid_base64_image - - invalid_image_url - - image_too_large - - image_too_small - - image_parse_error - - image_content_policy_violation - - invalid_image_mode - - image_file_too_large - - unsupported_image_media_type - - empty_image_file - - failed_to_download_image - - image_file_not_found - description: The error code for the response. - OpenAI.ResponseErrorEvent: + description: Emitted when there is a partial function-call arguments delta. + x-oaiMeta: + name: response.function_call_arguments.delta + group: responses + example: | + { + "type": "response.function_call_arguments.delta", + "item_id": "item-abc", + "output_index": 0, + "delta": "{ \"arg\":" + "sequence_number": 1 + } + OpenAI.ResponseFunctionCallArgumentsDoneEvent: type: object required: - type - - code - - message - - param + - item_id + - name + - output_index + - sequence_number + - arguments properties: type: type: string enum: - - error - description: The type of the event. Always `error`. - code: + - response.function_call_arguments.done + x-stainless-const: true + item_id: type: string - nullable: true - description: The error code. - message: + description: The ID of the item. + name: type: string - description: The error message. - param: + description: The name of the function that was called. + output_index: + type: integer + description: The index of the output item. + sequence_number: + type: integer + description: The sequence number of this event. + arguments: type: string - nullable: true - description: The error parameter. + description: The function-call arguments. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an error occurs. - OpenAI.ResponseFailedEvent: + description: Emitted when function-call arguments are finalized. + x-oaiMeta: + name: response.function_call_arguments.done + group: responses + example: | + { + "type": "response.function_call_arguments.done", + "item_id": "item-abc", + "name": "get_weather", + "output_index": 1, + "arguments": "{ \"arg\": 123 }", + "sequence_number": 1 + } + OpenAI.ResponseImageGenCallCompletedEvent: type: object required: - type - - response + - output_index + - sequence_number + - item_id properties: type: type: string enum: - - response.failed - description: The type of the event. Always `response.failed`. - response: - allOf: - - $ref: '#/components/schemas/OpenAI.Response' - description: The response that failed. + - response.image_generation_call.completed + description: The type of the event. Always 'response.image_generation_call.completed'. + x-stainless-const: true + output_index: + type: integer + description: The index of the output item in the response's output array. + sequence_number: + type: integer + description: The sequence number of this event. + item_id: + type: string + description: The unique identifier of the image generation item being processed. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: An event that is emitted when a response fails. - OpenAI.ResponseFileSearchCallCompletedEvent: + description: Emitted when an image generation tool call has completed and the final image is available. + title: ResponseImageGenCallCompletedEvent + x-oaiMeta: + name: response.image_generation_call.completed + group: responses + example: | + { + "type": "response.image_generation_call.completed", + "output_index": 0, + "item_id": "item-123", + "sequence_number": 1 + } + OpenAI.ResponseImageGenCallGeneratingEvent: type: object required: - type - output_index - item_id + - sequence_number properties: type: type: string enum: - - response.file_search_call.completed - description: The type of the event. Always `response.file_search_call.completed`. + - response.image_generation_call.generating + description: The type of the event. Always 'response.image_generation_call.generating'. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item that the file search call is initiated. + description: The index of the output item in the response's output array. item_id: type: string - description: The ID of the output item that the file search call is initiated. + description: The unique identifier of the image generation item being processed. + sequence_number: + type: integer + description: The sequence number of the image generation item being processed. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a file search call is completed (results found). - OpenAI.ResponseFileSearchCallInProgressEvent: + description: Emitted when an image generation tool call is actively generating an image (intermediate state). + title: ResponseImageGenCallGeneratingEvent + x-oaiMeta: + name: response.image_generation_call.generating + group: responses + example: | + { + "type": "response.image_generation_call.generating", + "output_index": 0, + "item_id": "item-123", + "sequence_number": 0 + } + OpenAI.ResponseImageGenCallInProgressEvent: type: object required: - type - output_index - item_id + - sequence_number properties: type: type: string enum: - - response.file_search_call.in_progress - description: The type of the event. Always `response.file_search_call.in_progress`. + - response.image_generation_call.in_progress + description: The type of the event. Always 'response.image_generation_call.in_progress'. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item that the file search call is initiated. + description: The index of the output item in the response's output array. item_id: type: string - description: The ID of the output item that the file search call is initiated. + description: The unique identifier of the image generation item being processed. + sequence_number: + type: integer + description: The sequence number of the image generation item being processed. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a file search call is initiated. - OpenAI.ResponseFileSearchCallSearchingEvent: + description: Emitted when an image generation tool call is in progress. + title: ResponseImageGenCallInProgressEvent + x-oaiMeta: + name: response.image_generation_call.in_progress + group: responses + example: | + { + "type": "response.image_generation_call.in_progress", + "output_index": 0, + "item_id": "item-123", + "sequence_number": 0 + } + OpenAI.ResponseImageGenCallPartialImageEvent: type: object required: - type - output_index - item_id + - sequence_number + - partial_image_index + - partial_image_b64 properties: type: type: string enum: - - response.file_search_call.searching - description: The type of the event. Always `response.file_search_call.searching`. + - response.image_generation_call.partial_image + description: The type of the event. Always 'response.image_generation_call.partial_image'. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item that the file search call is searching. + description: The index of the output item in the response's output array. item_id: type: string - description: The ID of the output item that the file search call is initiated. + description: The unique identifier of the image generation item being processed. + sequence_number: + type: integer + description: The sequence number of the image generation item being processed. + partial_image_index: + type: integer + description: 0-based index for the partial image (backend is 1-based, but this is 0-based for the user). + partial_image_b64: + type: string + description: Base64-encoded partial image data, suitable for rendering as an image. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a file search is currently searching. - OpenAI.ResponseFormat: + description: Emitted when a partial image is available during image generation streaming. + title: ResponseImageGenCallPartialImageEvent + x-oaiMeta: + name: response.image_generation_call.partial_image + group: responses + example: | + { + "type": "response.image_generation_call.partial_image", + "output_index": 0, + "item_id": "item-123", + "sequence_number": 0, + "partial_image_index": 0, + "partial_image_b64": "..." + } + OpenAI.ResponseInProgressEvent: type: object required: - type + - response + - sequence_number properties: type: type: string enum: - - text - - json_object - - json_schema - discriminator: - propertyName: type - mapping: - text: '#/components/schemas/OpenAI.ResponseFormatText' - json_object: '#/components/schemas/OpenAI.ResponseFormatJsonObject' - json_schema: '#/components/schemas/OpenAI.ResponseFormatJsonSchema' - OpenAI.ResponseFormatJsonObject: + - response.in_progress + description: The type of the event. Always `response.in_progress`. + x-stainless-const: true + response: + allOf: + - $ref: '#/components/schemas/OpenAI.Response' + description: The response that is in progress. + sequence_number: + type: integer + description: The sequence number of this event. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when the response is in progress. + x-oaiMeta: + name: response.in_progress + group: responses + example: | + { + "type": "response.in_progress", + "response": { + "id": "resp_67ccfcdd16748190a91872c75d38539e09e4d4aac714747c", + "object": "response", + "created_at": 1741487325, + "status": "in_progress", + "error": null, + "incomplete_details": null, + "instructions": null, + "max_output_tokens": null, + "model": "gpt-4o-2024-08-06", + "output": [], + "parallel_tool_calls": true, + "previous_response_id": null, + "reasoning": { + "effort": null, + "summary": null + }, + "store": true, + "temperature": 1, + "text": { + "format": { + "type": "text" + } + }, + "tool_choice": "auto", + "tools": [], + "top_p": 1, + "truncation": "disabled", + "usage": null, + "user": null, + "metadata": {} + }, + "sequence_number": 1 + } + OpenAI.ResponseIncompleteDetails: + type: object + properties: + reason: + type: string + enum: + - max_output_tokens + - content_filter + OpenAI.ResponseIncompleteEvent: type: object required: - type + - response + - sequence_number properties: type: type: string enum: - - json_object - description: The type of response format being defined. Always `json_object`. + - response.incomplete + description: The type of the event. Always `response.incomplete`. + x-stainless-const: true + response: + allOf: + - $ref: '#/components/schemas/OpenAI.Response' + description: The response that was incomplete. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - - $ref: '#/components/schemas/OpenAI.ResponseFormat' - description: |- - JSON object response format. An older method of generating JSON responses. - Using `json_schema` is recommended for models that support it. Note that the - model will not generate JSON without a system or user message instructing it - to do so. - OpenAI.ResponseFormatJsonSchema: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: An event that is emitted when a response finishes as incomplete. + x-oaiMeta: + name: response.incomplete + group: responses + example: | + { + "type": "response.incomplete", + "response": { + "id": "resp_123", + "object": "response", + "created_at": 1740855869, + "status": "incomplete", + "error": null, + "incomplete_details": { + "reason": "max_tokens" + }, + "instructions": null, + "max_output_tokens": null, + "model": "gpt-4o-mini-2024-07-18", + "output": [], + "previous_response_id": null, + "reasoning_effort": null, + "store": false, + "temperature": 1, + "text": { + "format": { + "type": "text" + } + }, + "tool_choice": "auto", + "tools": [], + "top_p": 1, + "truncation": "disabled", + "usage": null, + "user": null, + "metadata": {} + }, + "sequence_number": 1 + } + OpenAI.ResponseItemList: type: object required: - - type - - json_schema + - object + - data + - has_more + - first_id + - last_id properties: - type: + object: type: string enum: - - json_schema - description: The type of response format being defined. Always `json_schema`. - json_schema: - type: object - properties: - description: - type: string - description: |- - A description of what the response format is for, used by the model to - determine how to respond in the format. - name: - type: string - description: |- - The name of the response format. Must be a-z, A-Z, 0-9, or contain - underscores and dashes, with a maximum length of 64. - schema: - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema' - strict: - type: boolean - nullable: true - description: |- - Whether to enable strict schema adherence when generating the output. - If set to true, the model will always follow the exact schema defined - in the `schema` field. Only a subset of JSON Schema is supported when - `strict` is `true`. To learn more, read the [Structured Outputs - guide](/docs/guides/structured-outputs). - default: false - required: - - name - description: Structured Outputs configuration options, including a JSON Schema. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseFormat' - description: |- - JSON Schema response format. Used to generate structured JSON responses. - Learn more about [Structured Outputs](/docs/guides/structured-outputs). - OpenAI.ResponseFormatJsonSchemaSchema: + - list + description: The type of object returned, must be `list`. + x-stainless-const: true + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.ItemResource' + description: A list of items used to generate this response. + has_more: + type: boolean + description: Whether there are more items available. + first_id: + type: string + description: The ID of the first item in the list. + last_id: + type: string + description: The ID of the last item in the list. + description: A list of Response items. + x-oaiMeta: + name: The input item list + group: responses + example: | + { + "object": "list", + "data": [ + { + "id": "msg_abc123", + "type": "message", + "role": "user", + "content": [ + { + "type": "input_text", + "text": "Tell me a three sentence bedtime story about a unicorn." + } + ] + } + ], + "first_id": "msg_abc123", + "last_id": "msg_abc123", + "has_more": false + } + OpenAI.ResponseLogProb: type: object - additionalProperties: {} + required: + - token + - logprob + properties: + token: + type: string + description: A possible text token. + logprob: + type: number + description: The log probability of this token. + top_logprobs: + type: array + items: + $ref: '#/components/schemas/OpenAI.ResponseLogProbTopLogprobs' + description: The log probability of the top 20 most likely tokens. description: |- - The schema for the response format, described as a JSON Schema object. - Learn how to build JSON schemas [here](https://json-schema.org/). - OpenAI.ResponseFormatText: + A logprob is the logarithmic probability that the model assigns to producing + a particular token at a given position in the sequence. Less-negative (higher) + logprob values indicate greater model confidence in that token choice. + OpenAI.ResponseLogProbTopLogprobs: type: object - required: - - type properties: - type: + token: type: string - enum: - - text - description: The type of response format being defined. Always `text`. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseFormat' - description: Default response format. Used to generate text responses. - OpenAI.ResponseFunctionCallArgumentsDeltaEvent: + logprob: + type: number + OpenAI.ResponseMCPCallArgumentsDeltaEvent: type: object required: - type - - item_id - output_index + - item_id - delta - - obfuscation + - sequence_number properties: type: type: string enum: - - response.function_call_arguments.delta - description: The type of the event. Always `response.function_call_arguments.delta`. - item_id: - type: string - description: The ID of the output item that the function-call arguments delta is added to. + - response.mcp_call_arguments.delta + description: The type of the event. Always 'response.mcp_call_arguments.delta'. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item that the function-call arguments delta is added to. - delta: + description: The index of the output item in the response's output array. + item_id: type: string - description: The function-call arguments delta that is added. - obfuscation: + description: The unique identifier of the MCP tool call item being processed. + delta: type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. + description: A JSON string containing the partial update to the arguments for the MCP tool call. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when there is a partial function-call arguments delta. - OpenAI.ResponseFunctionCallArgumentsDoneEvent: + description: Emitted when there is a delta (partial update) to the arguments of an MCP tool call. + title: ResponseMCPCallArgumentsDeltaEvent + x-oaiMeta: + name: response.mcp_call_arguments.delta + group: responses + example: | + { + "type": "response.mcp_call_arguments.delta", + "output_index": 0, + "item_id": "item-abc", + "delta": "{", + "sequence_number": 1 + } + OpenAI.ResponseMCPCallArgumentsDoneEvent: type: object required: - type - - item_id - output_index + - item_id - arguments + - sequence_number properties: type: type: string enum: - - response.function_call_arguments.done - item_id: - type: string - description: The ID of the item. + - response.mcp_call_arguments.done + description: The type of the event. Always 'response.mcp_call_arguments.done'. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item. + description: The index of the output item in the response's output array. + item_id: + type: string + description: The unique identifier of the MCP tool call item being processed. arguments: type: string - description: The function-call arguments. + description: A JSON string containing the finalized arguments for the MCP tool call. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when function-call arguments are finalized. - OpenAI.ResponseImageGenCallCompletedEvent: + description: Emitted when the arguments for an MCP tool call are finalized. + title: ResponseMCPCallArgumentsDoneEvent + x-oaiMeta: + name: response.mcp_call_arguments.done + group: responses + example: | + { + "type": "response.mcp_call_arguments.done", + "output_index": 0, + "item_id": "item-abc", + "arguments": "{\"arg1\": \"value1\", \"arg2\": \"value2\"}", + "sequence_number": 1 + } + OpenAI.ResponseMCPCallCompletedEvent: type: object required: - type - - output_index - item_id + - output_index + - sequence_number properties: type: type: string enum: - - response.image_generation_call.completed - description: The type of the event. Always 'response.image_generation_call.completed'. - output_index: - type: integer - format: int32 - description: The index of the output item in the response's output array. + - response.mcp_call.completed + description: The type of the event. Always 'response.mcp_call.completed'. + x-stainless-const: true item_id: type: string - description: The unique identifier of the image generation item being processed. + description: The ID of the MCP tool call item that completed. + output_index: + type: integer + description: The index of the output item that completed. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an image generation tool call has completed and the final image is available. - OpenAI.ResponseImageGenCallGeneratingEvent: + description: Emitted when an MCP tool call has completed successfully. + title: ResponseMCPCallCompletedEvent + x-oaiMeta: + name: response.mcp_call.completed + group: responses + example: | + { + "type": "response.mcp_call.completed", + "sequence_number": 1, + "item_id": "mcp_682d437d90a88191bf88cd03aae0c3e503937d5f622d7a90", + "output_index": 0 + } + OpenAI.ResponseMCPCallFailedEvent: type: object required: - type - - output_index - item_id + - output_index + - sequence_number properties: type: type: string enum: - - response.image_generation_call.generating - description: The type of the event. Always 'response.image_generation_call.generating'. - output_index: - type: integer - format: int32 - description: The index of the output item in the response's output array. + - response.mcp_call.failed + description: The type of the event. Always 'response.mcp_call.failed'. + x-stainless-const: true item_id: type: string - description: The unique identifier of the image generation item being processed. + description: The ID of the MCP tool call item that failed. + output_index: + type: integer + description: The index of the output item that failed. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an image generation tool call is actively generating an image (intermediate state). - OpenAI.ResponseImageGenCallInProgressEvent: + description: Emitted when an MCP tool call has failed. + title: ResponseMCPCallFailedEvent + x-oaiMeta: + name: response.mcp_call.failed + group: responses + example: | + { + "type": "response.mcp_call.failed", + "sequence_number": 1, + "item_id": "mcp_682d437d90a88191bf88cd03aae0c3e503937d5f622d7a90", + "output_index": 0 + } + OpenAI.ResponseMCPCallInProgressEvent: type: object required: - type + - sequence_number - output_index - item_id properties: type: type: string enum: - - response.image_generation_call.in_progress - description: The type of the event. Always 'response.image_generation_call.in_progress'. + - response.mcp_call.in_progress + description: The type of the event. Always 'response.mcp_call.in_progress'. + x-stainless-const: true + sequence_number: + type: integer + description: The sequence number of this event. output_index: type: integer - format: int32 description: The index of the output item in the response's output array. item_id: type: string - description: The unique identifier of the image generation item being processed. + description: The unique identifier of the MCP tool call item being processed. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an image generation tool call is in progress. - OpenAI.ResponseImageGenCallPartialImageEvent: + description: Emitted when an MCP tool call is in progress. + title: ResponseMCPCallInProgressEvent + x-oaiMeta: + name: response.mcp_call.in_progress + group: responses + example: | + { + "type": "response.mcp_call.in_progress", + "sequence_number": 1, + "output_index": 0, + "item_id": "mcp_682d437d90a88191bf88cd03aae0c3e503937d5f622d7a90" + } + OpenAI.ResponseMCPListToolsCompletedEvent: type: object required: - type - - output_index - item_id - - partial_image_index - - partial_image_b64 + - output_index + - sequence_number properties: type: type: string enum: - - response.image_generation_call.partial_image - description: The type of the event. Always 'response.image_generation_call.partial_image'. - output_index: - type: integer - format: int32 - description: The index of the output item in the response's output array. + - response.mcp_list_tools.completed + description: The type of the event. Always 'response.mcp_list_tools.completed'. + x-stainless-const: true item_id: type: string - description: The unique identifier of the image generation item being processed. - partial_image_index: + description: The ID of the MCP tool call item that produced this output. + output_index: type: integer - format: int32 - description: 0-based index for the partial image (backend is 1-based, but this is 0-based for the user). - partial_image_b64: - type: string - description: Base64-encoded partial image data, suitable for rendering as an image. + description: The index of the output item that was processed. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a partial image is available during image generation streaming. - OpenAI.ResponseInProgressEvent: + description: Emitted when the list of available MCP tools has been successfully retrieved. + title: ResponseMCPListToolsCompletedEvent + x-oaiMeta: + name: response.mcp_list_tools.completed + group: responses + example: | + { + "type": "response.mcp_list_tools.completed", + "sequence_number": 1, + "output_index": 0, + "item_id": "mcpl_682d4379df088191886b70f4ec39f90403937d5f622d7a90" + } + OpenAI.ResponseMCPListToolsFailedEvent: type: object required: - type - - response + - item_id + - output_index + - sequence_number properties: type: type: string enum: - - response.in_progress - description: The type of the event. Always `response.in_progress`. - response: - allOf: - - $ref: '#/components/schemas/OpenAI.Response' - description: The response that is in progress. + - response.mcp_list_tools.failed + description: The type of the event. Always 'response.mcp_list_tools.failed'. + x-stainless-const: true + item_id: + type: string + description: The ID of the MCP tool call item that failed. + output_index: + type: integer + description: The index of the output item that failed. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the response is in progress. - OpenAI.ResponseIncompleteEvent: + description: Emitted when the attempt to list available MCP tools has failed. + title: ResponseMCPListToolsFailedEvent + x-oaiMeta: + name: response.mcp_list_tools.failed + group: responses + example: | + { + "type": "response.mcp_list_tools.failed", + "sequence_number": 1, + "output_index": 0, + "item_id": "mcpl_682d4379df088191886b70f4ec39f90403937d5f622d7a90" + } + OpenAI.ResponseMCPListToolsInProgressEvent: type: object required: - type - - response + - item_id + - output_index + - sequence_number properties: type: type: string enum: - - response.incomplete - description: The type of the event. Always `response.incomplete`. - response: - allOf: - - $ref: '#/components/schemas/OpenAI.Response' - description: The response that was incomplete. + - response.mcp_list_tools.in_progress + description: The type of the event. Always 'response.mcp_list_tools.in_progress'. + x-stainless-const: true + item_id: + type: string + description: The ID of the MCP tool call item that is being processed. + output_index: + type: integer + description: The index of the output item that is being processed. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: An event that is emitted when a response finishes as incomplete. - OpenAI.ResponseItemList: + description: Emitted when the system is in the process of retrieving the list of available MCP tools. + title: ResponseMCPListToolsInProgressEvent + x-oaiMeta: + name: response.mcp_list_tools.in_progress + group: responses + example: | + { + "type": "response.mcp_list_tools.in_progress", + "sequence_number": 1, + "output_index": 0, + "item_id": "mcpl_682d4379df088191886b70f4ec39f90403937d5f622d7a90" + } + OpenAI.ResponseModalities: + anyOf: + - type: array + items: + type: string + enum: + - text + - audio + - type: 'null' + description: |- + Output types that you would like the model to generate. + Most models are capable of generating text, which is the default: + + `["text"]` + + The `gpt-4o-audio-preview` model can also be used to + [generate audio](https://platform.openai.com/docs/guides/audio). To request that this model generate + both text and audio responses, you can use: + + `["text", "audio"]` + OpenAI.ResponseOutputItemAddedEvent: type: object required: - - object - - data - - has_more - - first_id - - last_id + - type + - output_index + - sequence_number + - item properties: - object: + type: type: string enum: - - list - description: The type of object returned, must be `list`. - data: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemResource' - description: A list of items used to generate this response. - has_more: - type: boolean - description: Whether there are more items available. - first_id: - type: string - description: The ID of the first item in the list. - last_id: - type: string - description: The ID of the last item in the list. - description: A list of Response items. - OpenAI.ResponseMCPCallArgumentsDeltaEvent: + - response.output_item.added + description: The type of the event. Always `response.output_item.added`. + x-stainless-const: true + output_index: + type: integer + description: The index of the output item that was added. + sequence_number: + type: integer + description: The sequence number of this event. + item: + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + description: The output item that was added. + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' + description: Emitted when a new output item is added. + x-oaiMeta: + name: response.output_item.added + group: responses + example: | + { + "type": "response.output_item.added", + "output_index": 0, + "item": { + "id": "msg_123", + "status": "in_progress", + "type": "message", + "role": "assistant", + "content": [] + }, + "sequence_number": 1 + } + OpenAI.ResponseOutputItemDoneEvent: type: object required: - type - output_index - - item_id - - delta - - obfuscation + - sequence_number + - item properties: type: type: string enum: - - response.mcp_call.arguments_delta - description: The type of the event. Always 'response.mcp_call.arguments_delta'. + - response.output_item.done + description: The type of the event. Always `response.output_item.done`. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item in the response's output array. - item_id: - type: string - description: The unique identifier of the MCP tool call item being processed. - delta: - description: The partial update to the arguments for the MCP tool call. - obfuscation: - type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. + description: The index of the output item that was marked done. + sequence_number: + type: integer + description: The sequence number of this event. + item: + allOf: + - $ref: '#/components/schemas/OpenAI.OutputItem' + description: The output item that was marked done. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when there is a delta (partial update) to the arguments of an MCP tool call. - OpenAI.ResponseMCPCallArgumentsDoneEvent: + description: Emitted when an output item is marked done. + x-oaiMeta: + name: response.output_item.done + group: responses + example: | + { + "type": "response.output_item.done", + "output_index": 0, + "item": { + "id": "msg_123", + "status": "completed", + "type": "message", + "role": "assistant", + "content": [ + { + "type": "output_text", + "text": "In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.", + "annotations": [] + } + ] + }, + "sequence_number": 1 + } + OpenAI.ResponseOutputTextAnnotationAddedEvent: type: object required: - type - - output_index - item_id - - arguments + - output_index + - content_index + - annotation_index + - sequence_number + - annotation properties: type: type: string enum: - - response.mcp_call.arguments_done - description: The type of the event. Always 'response.mcp_call.arguments_done'. + - response.output_text.annotation.added + description: The type of the event. Always 'response.output_text.annotation.added'. + x-stainless-const: true + item_id: + type: string + description: The unique identifier of the item to which the annotation is being added. output_index: type: integer - format: int32 description: The index of the output item in the response's output array. - item_id: - type: string - description: The unique identifier of the MCP tool call item being processed. - arguments: - description: The finalized arguments for the MCP tool call. + content_index: + type: integer + description: The index of the content part within the output item. + annotation_index: + type: integer + description: The index of the annotation within the content part. + sequence_number: + type: integer + description: The sequence number of this event. + annotation: + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseOutputTextAnnotationAddedEventAnnotation' + description: The annotation object being added. (See annotation schema for details.) allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the arguments for an MCP tool call are finalized. - OpenAI.ResponseMCPCallCompletedEvent: + description: Emitted when an annotation is added to output text content. + title: ResponseOutputTextAnnotationAddedEvent + x-oaiMeta: + name: response.output_text.annotation.added + group: responses + example: | + { + "type": "response.output_text.annotation.added", + "item_id": "item-abc", + "output_index": 0, + "content_index": 0, + "annotation_index": 0, + "annotation": { + "type": "text_annotation", + "text": "This is a test annotation", + "start": 0, + "end": 10 + }, + "sequence_number": 1 + } + OpenAI.ResponseOutputTextAnnotationAddedEventAnnotation: + type: object + OpenAI.ResponsePromptVariables: + type: object + description: |- + Optional map of values to substitute in for variables in your + prompt. The substitution values can either be strings, or other + Response input types like images or files. + title: Prompt Variables + x-oaiExpandable: true + x-oaiTypeLabel: map + OpenAI.ResponseQueuedEvent: type: object required: - type + - response + - sequence_number properties: type: type: string enum: - - response.mcp_call.completed - description: The type of the event. Always 'response.mcp_call.completed'. + - response.queued + description: The type of the event. Always 'response.queued'. + x-stainless-const: true + response: + allOf: + - $ref: '#/components/schemas/OpenAI.Response' + description: The full response object that is queued. + sequence_number: + type: integer + description: The sequence number for this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an MCP tool call has completed successfully. - OpenAI.ResponseMCPCallFailedEvent: + description: Emitted when a response is queued and waiting to be processed. + title: ResponseQueuedEvent + x-oaiMeta: + name: response.queued + group: responses + example: | + { + "type": "response.queued", + "response": { + "id": "res_123", + "status": "queued", + "created_at": "2021-01-01T00:00:00Z", + "updated_at": "2021-01-01T00:00:00Z" + }, + "sequence_number": 1 + } + OpenAI.ResponseReasoningSummaryPartAddedEvent: type: object required: - type + - item_id + - output_index + - summary_index + - sequence_number + - part properties: type: type: string enum: - - response.mcp_call.failed - description: The type of the event. Always 'response.mcp_call.failed'. + - response.reasoning_summary_part.added + description: The type of the event. Always `response.reasoning_summary_part.added`. + x-stainless-const: true + item_id: + type: string + description: The ID of the item this summary part is associated with. + output_index: + type: integer + description: The index of the output item this summary part is associated with. + summary_index: + type: integer + description: The index of the summary part within the reasoning summary. + sequence_number: + type: integer + description: The sequence number of this event. + part: + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseReasoningSummaryPartAddedEventPart' + description: The summary part that was added. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an MCP tool call has failed. - OpenAI.ResponseMCPCallInProgressEvent: + description: Emitted when a new reasoning summary part is added. + x-oaiMeta: + name: response.reasoning_summary_part.added + group: responses + example: | + { + "type": "response.reasoning_summary_part.added", + "item_id": "rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476", + "output_index": 0, + "summary_index": 0, + "part": { + "type": "summary_text", + "text": "" + }, + "sequence_number": 1 + } + OpenAI.ResponseReasoningSummaryPartAddedEventPart: type: object required: - type - - output_index - - item_id + - text properties: type: type: string enum: - - response.mcp_call.in_progress - description: The type of the event. Always 'response.mcp_call.in_progress'. - output_index: - type: integer - format: int32 - description: The index of the output item in the response's output array. - item_id: + - summary_text + x-stainless-const: true + text: type: string - description: The unique identifier of the MCP tool call item being processed. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an MCP tool call is in progress. - OpenAI.ResponseMCPListToolsCompletedEvent: + OpenAI.ResponseReasoningSummaryPartDoneEvent: type: object required: - type + - item_id + - output_index + - summary_index + - sequence_number + - part properties: type: type: string enum: - - response.mcp_list_tools.completed - description: The type of the event. Always 'response.mcp_list_tools.completed'. + - response.reasoning_summary_part.done + description: The type of the event. Always `response.reasoning_summary_part.done`. + x-stainless-const: true + item_id: + type: string + description: The ID of the item this summary part is associated with. + output_index: + type: integer + description: The index of the output item this summary part is associated with. + summary_index: + type: integer + description: The index of the summary part within the reasoning summary. + sequence_number: + type: integer + description: The sequence number of this event. + part: + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseReasoningSummaryPartDoneEventPart' + description: The completed summary part. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the list of available MCP tools has been successfully retrieved. - OpenAI.ResponseMCPListToolsFailedEvent: + description: Emitted when a reasoning summary part is completed. + x-oaiMeta: + name: response.reasoning_summary_part.done + group: responses + example: | + { + "type": "response.reasoning_summary_part.done", + "item_id": "rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476", + "output_index": 0, + "summary_index": 0, + "part": { + "type": "summary_text", + "text": "**Responding to a greeting**\n\nThe user just said, \"Hello!\" So, it seems I need to engage. I'll greet them back and offer help since they're looking to chat. I could say something like, \"Hello! How can I assist you today?\" That feels friendly and open. They didn't ask a specific question, so this approach will work well for starting a conversation. Let's see where it goes from there!" + }, + "sequence_number": 1 + } + OpenAI.ResponseReasoningSummaryPartDoneEventPart: type: object required: - type + - text properties: type: type: string enum: - - response.mcp_list_tools.failed - description: The type of the event. Always 'response.mcp_list_tools.failed'. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the attempt to list available MCP tools has failed. - OpenAI.ResponseMCPListToolsInProgressEvent: + - summary_text + x-stainless-const: true + text: + type: string + OpenAI.ResponseReasoningSummaryTextDeltaEvent: type: object required: - type + - item_id + - output_index + - summary_index + - delta + - sequence_number properties: type: type: string enum: - - response.mcp_list_tools.in_progress - description: The type of the event. Always 'response.mcp_list_tools.in_progress'. + - response.reasoning_summary_text.delta + description: The type of the event. Always `response.reasoning_summary_text.delta`. + x-stainless-const: true + item_id: + type: string + description: The ID of the item this summary text delta is associated with. + output_index: + type: integer + description: The index of the output item this summary text delta is associated with. + summary_index: + type: integer + description: The index of the summary part within the reasoning summary. + delta: + type: string + description: The text delta that was added to the summary. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the system is in the process of retrieving the list of available MCP tools. - OpenAI.ResponseOutputItemAddedEvent: + description: Emitted when a delta is added to a reasoning summary text. + x-oaiMeta: + name: response.reasoning_summary_text.delta + group: responses + example: | + { + "type": "response.reasoning_summary_text.delta", + "item_id": "rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476", + "output_index": 0, + "summary_index": 0, + "delta": "**Responding to a greeting**\n\nThe user just said, \"Hello!\" So, it seems I need to engage. I'll greet them back and offer help since they're looking to chat. I could say something like, \"Hello! How can I assist you today?\" That feels friendly and open. They didn't ask a specific question, so this approach will work well for starting a conversation. Let's see where it goes from there!", + "sequence_number": 1 + } + OpenAI.ResponseReasoningSummaryTextDoneEvent: type: object required: - type + - item_id - output_index - - item + - summary_index + - text + - sequence_number properties: type: type: string enum: - - response.output_item.added - description: The type of the event. Always `response.output_item.added`. + - response.reasoning_summary_text.done + description: The type of the event. Always `response.reasoning_summary_text.done`. + x-stainless-const: true + item_id: + type: string + description: The ID of the item this summary text is associated with. output_index: type: integer - format: int32 - description: The index of the output item that was added. - item: - allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: The output item that was added. + description: The index of the output item this summary text is associated with. + summary_index: + type: integer + description: The index of the summary part within the reasoning summary. + text: + type: string + description: The full text of the completed reasoning summary. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a new output item is added. - OpenAI.ResponseOutputItemDoneEvent: + description: Emitted when a reasoning summary text is completed. + x-oaiMeta: + name: response.reasoning_summary_text.done + group: responses + example: | + { + "type": "response.reasoning_summary_text.done", + "item_id": "rs_6806bfca0b2481918a5748308061a2600d3ce51bdffd5476", + "output_index": 0, + "summary_index": 0, + "text": "**Responding to a greeting**\n\nThe user just said, \"Hello!\" So, it seems I need to engage. I'll greet them back and offer help since they're looking to chat. I could say something like, \"Hello! How can I assist you today?\" That feels friendly and open. They didn't ask a specific question, so this approach will work well for starting a conversation. Let's see where it goes from there!", + "sequence_number": 1 + } + OpenAI.ResponseReasoningTextDeltaEvent: type: object required: - type + - item_id - output_index - - item + - content_index + - delta + - sequence_number properties: type: type: string enum: - - response.output_item.done - description: The type of the event. Always `response.output_item.done`. + - response.reasoning_text.delta + description: The type of the event. Always `response.reasoning_text.delta`. + x-stainless-const: true + item_id: + type: string + description: The ID of the item this reasoning text delta is associated with. output_index: type: integer - format: int32 - description: The index of the output item that was marked done. - item: - allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: The output item that was marked done. + description: The index of the output item this reasoning text delta is associated with. + content_index: + type: integer + description: The index of the reasoning content part this delta is associated with. + delta: + type: string + description: The text delta that was added to the reasoning content. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when an output item is marked done. - OpenAI.ResponsePromptVariables: - type: object - additionalProperties: - $ref: '#/components/schemas/OpenAI.ItemParam' - description: |- - Optional map of values to substitute in for variables in your - prompt. The substitution values can either be strings, or other - Response input types like images or files. - x-oaiExpandable: true - x-oaiTypeLabel: map - OpenAI.ResponseQueuedEvent: + description: Emitted when a delta is added to a reasoning text. + x-oaiMeta: + name: response.reasoning_text.delta + group: responses + example: | + { + "type": "response.reasoning_text.delta", + "item_id": "rs_123", + "output_index": 0, + "content_index": 0, + "delta": "The", + "sequence_number": 1 + } + OpenAI.ResponseReasoningTextDoneEvent: type: object required: - type - - response + - item_id + - output_index + - content_index + - text + - sequence_number properties: type: type: string - enum: - - response.queued - description: The type of the event. Always 'response.queued'. - response: - allOf: - - $ref: '#/components/schemas/OpenAI.Response' - description: The full response object that is queued. + enum: + - response.reasoning_text.done + description: The type of the event. Always `response.reasoning_text.done`. + x-stainless-const: true + item_id: + type: string + description: The ID of the item this reasoning text is associated with. + output_index: + type: integer + description: The index of the output item this reasoning text is associated with. + content_index: + type: integer + description: The index of the reasoning content part. + text: + type: string + description: The full text of the completed reasoning content. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a response is queued and waiting to be processed. - OpenAI.ResponseReasoningDeltaEvent: + description: Emitted when a reasoning text is completed. + x-oaiMeta: + name: response.reasoning_text.done + group: responses + example: | + { + "type": "response.reasoning_text.done", + "item_id": "rs_123", + "output_index": 0, + "content_index": 0, + "text": "The user is asking...", + "sequence_number": 4 + } + OpenAI.ResponseRefusalDeltaEvent: type: object required: - type @@ -13555,1113 +22646,1747 @@ components: - output_index - content_index - delta - - obfuscation + - sequence_number properties: type: type: string enum: - - response.reasoning.delta - description: The type of the event. Always 'response.reasoning.delta'. + - response.refusal.delta + description: The type of the event. Always `response.refusal.delta`. + x-stainless-const: true item_id: type: string - description: The unique identifier of the item for which reasoning is being updated. + description: The ID of the output item that the refusal text is added to. output_index: type: integer - format: int32 - description: The index of the output item in the response's output array. + description: The index of the output item that the refusal text is added to. content_index: type: integer - format: int32 - description: The index of the reasoning content part within the output item. + description: The index of the content part that the refusal text is added to. delta: - description: The partial update to the reasoning content. - obfuscation: type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. + description: The refusal text that is added. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when there is a delta (partial update) to the reasoning content. - OpenAI.ResponseReasoningDoneEvent: + description: Emitted when there is a partial refusal text. + x-oaiMeta: + name: response.refusal.delta + group: responses + example: | + { + "type": "response.refusal.delta", + "item_id": "msg_123", + "output_index": 0, + "content_index": 0, + "delta": "refusal text so far", + "sequence_number": 1 + } + OpenAI.ResponseRefusalDoneEvent: type: object required: - type - item_id - output_index - content_index - - text + - refusal + - sequence_number properties: type: type: string enum: - - response.reasoning.done - description: The type of the event. Always 'response.reasoning.done'. + - response.refusal.done + description: The type of the event. Always `response.refusal.done`. + x-stainless-const: true item_id: type: string - description: The unique identifier of the item for which reasoning is finalized. + description: The ID of the output item that the refusal text is finalized. output_index: type: integer - format: int32 - description: The index of the output item in the response's output array. + description: The index of the output item that the refusal text is finalized. content_index: type: integer - format: int32 - description: The index of the reasoning content part within the output item. - text: + description: The index of the content part that the refusal text is finalized. + refusal: type: string - description: The finalized reasoning text. + description: The refusal text that is finalized. + sequence_number: + type: integer + description: The sequence number of this event. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the reasoning content is finalized for an item. - OpenAI.ResponseReasoningSummaryDeltaEvent: + description: Emitted when refusal text is finalized. + x-oaiMeta: + name: response.refusal.done + group: responses + example: | + { + "type": "response.refusal.done", + "item_id": "item-abc", + "output_index": 1, + "content_index": 2, + "refusal": "final refusal text", + "sequence_number": 1 + } + OpenAI.ResponseStreamEvent: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ResponseStreamEventType' + discriminator: + propertyName: type + mapping: + response.audio.delta: '#/components/schemas/OpenAI.ResponseAudioDeltaEvent' + response.audio.done: '#/components/schemas/OpenAI.ResponseAudioDoneEvent' + response.audio.transcript.delta: '#/components/schemas/OpenAI.ResponseAudioTranscriptDeltaEvent' + response.audio.transcript.done: '#/components/schemas/OpenAI.ResponseAudioTranscriptDoneEvent' + response.code_interpreter_call_code.delta: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent' + response.code_interpreter_call_code.done: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDoneEvent' + response.code_interpreter_call.completed: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallCompletedEvent' + response.code_interpreter_call.in_progress: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallInProgressEvent' + response.code_interpreter_call.interpreting: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallInterpretingEvent' + response.completed: '#/components/schemas/OpenAI.ResponseCompletedEvent' + response.content_part.added: '#/components/schemas/OpenAI.ResponseContentPartAddedEvent' + response.content_part.done: '#/components/schemas/OpenAI.ResponseContentPartDoneEvent' + response.created: '#/components/schemas/OpenAI.ResponseCreatedEvent' + response.custom_tool_call_input.delta: '#/components/schemas/OpenAI.ResponseCustomToolCallInputDeltaEvent' + response.custom_tool_call_input.done: '#/components/schemas/OpenAI.ResponseCustomToolCallInputDoneEvent' + error: '#/components/schemas/OpenAI.ResponseErrorEvent' + response.failed: '#/components/schemas/OpenAI.ResponseFailedEvent' + response.file_search_call.completed: '#/components/schemas/OpenAI.ResponseFileSearchCallCompletedEvent' + response.file_search_call.in_progress: '#/components/schemas/OpenAI.ResponseFileSearchCallInProgressEvent' + response.file_search_call.searching: '#/components/schemas/OpenAI.ResponseFileSearchCallSearchingEvent' + response.function_call_arguments.delta: '#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDeltaEvent' + response.function_call_arguments.done: '#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDoneEvent' + response.image_generation_call.completed: '#/components/schemas/OpenAI.ResponseImageGenCallCompletedEvent' + response.image_generation_call.generating: '#/components/schemas/OpenAI.ResponseImageGenCallGeneratingEvent' + response.image_generation_call.in_progress: '#/components/schemas/OpenAI.ResponseImageGenCallInProgressEvent' + response.image_generation_call.partial_image: '#/components/schemas/OpenAI.ResponseImageGenCallPartialImageEvent' + response.in_progress: '#/components/schemas/OpenAI.ResponseInProgressEvent' + response.incomplete: '#/components/schemas/OpenAI.ResponseIncompleteEvent' + response.mcp_call_arguments.delta: '#/components/schemas/OpenAI.ResponseMCPCallArgumentsDeltaEvent' + response.mcp_call_arguments.done: '#/components/schemas/OpenAI.ResponseMCPCallArgumentsDoneEvent' + response.mcp_call.completed: '#/components/schemas/OpenAI.ResponseMCPCallCompletedEvent' + response.mcp_call.failed: '#/components/schemas/OpenAI.ResponseMCPCallFailedEvent' + response.mcp_call.in_progress: '#/components/schemas/OpenAI.ResponseMCPCallInProgressEvent' + response.mcp_list_tools.completed: '#/components/schemas/OpenAI.ResponseMCPListToolsCompletedEvent' + response.mcp_list_tools.failed: '#/components/schemas/OpenAI.ResponseMCPListToolsFailedEvent' + response.mcp_list_tools.in_progress: '#/components/schemas/OpenAI.ResponseMCPListToolsInProgressEvent' + response.output_item.added: '#/components/schemas/OpenAI.ResponseOutputItemAddedEvent' + response.output_item.done: '#/components/schemas/OpenAI.ResponseOutputItemDoneEvent' + response.output_text.annotation.added: '#/components/schemas/OpenAI.ResponseOutputTextAnnotationAddedEvent' + response.queued: '#/components/schemas/OpenAI.ResponseQueuedEvent' + response.reasoning_summary_part.added: '#/components/schemas/OpenAI.ResponseReasoningSummaryPartAddedEvent' + response.reasoning_summary_part.done: '#/components/schemas/OpenAI.ResponseReasoningSummaryPartDoneEvent' + response.reasoning_summary_text.delta: '#/components/schemas/OpenAI.ResponseReasoningSummaryTextDeltaEvent' + response.reasoning_summary_text.done: '#/components/schemas/OpenAI.ResponseReasoningSummaryTextDoneEvent' + response.reasoning_text.delta: '#/components/schemas/OpenAI.ResponseReasoningTextDeltaEvent' + response.reasoning_text.done: '#/components/schemas/OpenAI.ResponseReasoningTextDoneEvent' + response.refusal.delta: '#/components/schemas/OpenAI.ResponseRefusalDeltaEvent' + response.refusal.done: '#/components/schemas/OpenAI.ResponseRefusalDoneEvent' + response.output_text.delta: '#/components/schemas/OpenAI.ResponseTextDeltaEvent' + response.output_text.done: '#/components/schemas/OpenAI.ResponseTextDoneEvent' + response.web_search_call.completed: '#/components/schemas/OpenAI.ResponseWebSearchCallCompletedEvent' + response.web_search_call.in_progress: '#/components/schemas/OpenAI.ResponseWebSearchCallInProgressEvent' + response.web_search_call.searching: '#/components/schemas/OpenAI.ResponseWebSearchCallSearchingEvent' + OpenAI.ResponseStreamEventType: + anyOf: + - type: string + - type: string + enum: + - response.audio.delta + - response.audio.done + - response.audio.transcript.delta + - response.audio.transcript.done + - response.code_interpreter_call_code.delta + - response.code_interpreter_call_code.done + - response.code_interpreter_call.completed + - response.code_interpreter_call.in_progress + - response.code_interpreter_call.interpreting + - response.completed + - response.content_part.added + - response.content_part.done + - response.created + - error + - response.file_search_call.completed + - response.file_search_call.in_progress + - response.file_search_call.searching + - response.function_call_arguments.delta + - response.function_call_arguments.done + - response.in_progress + - response.failed + - response.incomplete + - response.output_item.added + - response.output_item.done + - response.reasoning_summary_part.added + - response.reasoning_summary_part.done + - response.reasoning_summary_text.delta + - response.reasoning_summary_text.done + - response.reasoning_text.delta + - response.reasoning_text.done + - response.refusal.delta + - response.refusal.done + - response.output_text.delta + - response.output_text.done + - response.web_search_call.completed + - response.web_search_call.in_progress + - response.web_search_call.searching + - response.image_generation_call.completed + - response.image_generation_call.generating + - response.image_generation_call.in_progress + - response.image_generation_call.partial_image + - response.mcp_call_arguments.delta + - response.mcp_call_arguments.done + - response.mcp_call.completed + - response.mcp_call.failed + - response.mcp_call.in_progress + - response.mcp_list_tools.completed + - response.mcp_list_tools.failed + - response.mcp_list_tools.in_progress + - response.output_text.annotation.added + - response.queued + - response.custom_tool_call_input.delta + - response.custom_tool_call_input.done + OpenAI.ResponseStreamOptions: + type: object + properties: + include_obfuscation: + type: boolean + description: |- + When true, stream obfuscation will be enabled. Stream obfuscation adds + random characters to an `obfuscation` field on streaming delta events to + normalize payload sizes as a mitigation to certain side-channel attacks. + These obfuscation fields are included by default, but add a small amount + of overhead to the data stream. You can set `include_obfuscation` to + false to optimize for bandwidth if you trust the network links between + your application and the OpenAI API. + description: 'Options for streaming responses. Only set this when you set `stream: true`.' + OpenAI.ResponseTextDeltaEvent: type: object required: - type - item_id - output_index - - summary_index + - content_index - delta - - obfuscation + - sequence_number + - logprobs properties: type: type: string enum: - - response.reasoning_summary.delta - description: The type of the event. Always 'response.reasoning_summary.delta'. + - response.output_text.delta + description: The type of the event. Always `response.output_text.delta`. + x-stainless-const: true item_id: type: string - description: The unique identifier of the item for which the reasoning summary is being updated. + description: The ID of the output item that the text delta was added to. output_index: type: integer - format: int32 - description: The index of the output item in the response's output array. - summary_index: + description: The index of the output item that the text delta was added to. + content_index: type: integer - format: int32 - description: The index of the summary part within the output item. + description: The index of the content part that the text delta was added to. delta: - description: The partial update to the reasoning summary content. - obfuscation: type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. + description: The text delta that was added. + sequence_number: + type: integer + description: The sequence number for this event. + logprobs: + type: array + items: + $ref: '#/components/schemas/OpenAI.ResponseLogProb' + description: The log probabilities of the tokens in the delta. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when there is a delta (partial update) to the reasoning summary content. - OpenAI.ResponseReasoningSummaryDoneEvent: + description: Emitted when there is an additional text delta. + x-oaiMeta: + name: response.output_text.delta + group: responses + example: | + { + "type": "response.output_text.delta", + "item_id": "msg_123", + "output_index": 0, + "content_index": 0, + "delta": "In", + "sequence_number": 1 + } + OpenAI.ResponseTextDoneEvent: type: object required: - type - item_id - output_index - - summary_index + - content_index - text + - sequence_number + - logprobs properties: type: type: string enum: - - response.reasoning_summary.done - description: The type of the event. Always 'response.reasoning_summary.done'. + - response.output_text.done + description: The type of the event. Always `response.output_text.done`. + x-stainless-const: true item_id: type: string - description: The unique identifier of the item for which the reasoning summary is finalized. + description: The ID of the output item that the text content is finalized. output_index: type: integer - format: int32 - description: The index of the output item in the response's output array. - summary_index: + description: The index of the output item that the text content is finalized. + content_index: type: integer - format: int32 - description: The index of the summary part within the output item. + description: The index of the content part that the text content is finalized. text: type: string - description: The finalized reasoning summary text. + description: The text content that is finalized. + sequence_number: + type: integer + description: The sequence number for this event. + logprobs: + type: array + items: + $ref: '#/components/schemas/OpenAI.ResponseLogProb' + description: The log probabilities of the tokens in the delta. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when the reasoning summary content is finalized for an item. - OpenAI.ResponseReasoningSummaryPartAddedEvent: + description: Emitted when text content is finalized. + x-oaiMeta: + name: response.output_text.done + group: responses + example: | + { + "type": "response.output_text.done", + "item_id": "msg_123", + "output_index": 0, + "content_index": 0, + "text": "In a shimmering forest under a sky full of stars, a lonely unicorn named Lila discovered a hidden pond that glowed with moonlight. Every night, she would leave sparkling, magical flowers by the water's edge, hoping to share her beauty with others. One enchanting evening, she woke to find a group of friendly animals gathered around, eager to be friends and share in her magic.", + "sequence_number": 1 + } + OpenAI.ResponseTextParam: + type: object + properties: + format: + $ref: '#/components/schemas/OpenAI.TextResponseFormatConfiguration' + verbosity: + $ref: '#/components/schemas/OpenAI.Verbosity' + description: |- + Configuration options for a text response from the model. Can be plain + text or structured JSON data. Learn more: + - [Text inputs and outputs](https://platform.openai.com/docs/guides/text) + - [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs) + OpenAI.ResponseUsage: type: object required: - - type - - item_id - - output_index - - summary_index - - part + - input_tokens + - input_tokens_details + - output_tokens + - output_tokens_details + - total_tokens properties: - type: - type: string - enum: - - response.reasoning_summary_part.added - description: The type of the event. Always `response.reasoning_summary_part.added`. - item_id: - type: string - description: The ID of the item this summary part is associated with. - output_index: + input_tokens: type: integer - format: int32 - description: The index of the output item this summary part is associated with. - summary_index: + description: The number of input tokens. + input_tokens_details: + allOf: + - $ref: '#/components/schemas/OpenAI.ResponseUsageInputTokensDetails' + description: A detailed breakdown of the input tokens. + output_tokens: type: integer - format: int32 - description: The index of the summary part within the reasoning summary. - part: + description: The number of output tokens. + output_tokens_details: allOf: - - $ref: '#/components/schemas/OpenAI.ReasoningItemSummaryPart' - description: The summary part that was added. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a new reasoning summary part is added. - OpenAI.ResponseReasoningSummaryPartDoneEvent: + - $ref: '#/components/schemas/OpenAI.ResponseUsageOutputTokensDetails' + description: A detailed breakdown of the output tokens. + total_tokens: + type: integer + description: The total number of tokens used. + description: |- + Represents token usage details including input tokens, output tokens, + a breakdown of output tokens, and the total tokens used. + OpenAI.ResponseUsageInputTokensDetails: + type: object + required: + - cached_tokens + properties: + cached_tokens: + type: integer + OpenAI.ResponseUsageOutputTokensDetails: + type: object + required: + - reasoning_tokens + properties: + reasoning_tokens: + type: integer + OpenAI.ResponseWebSearchCallCompletedEvent: type: object required: - type - - item_id - output_index - - summary_index - - part + - item_id + - sequence_number properties: type: type: string enum: - - response.reasoning_summary_part.done - description: The type of the event. Always `response.reasoning_summary_part.done`. - item_id: - type: string - description: The ID of the item this summary part is associated with. + - response.web_search_call.completed + description: The type of the event. Always `response.web_search_call.completed`. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item this summary part is associated with. - summary_index: + description: The index of the output item that the web search call is associated with. + item_id: + type: string + description: Unique ID for the output item associated with the web search call. + sequence_number: type: integer - format: int32 - description: The index of the summary part within the reasoning summary. - part: - allOf: - - $ref: '#/components/schemas/OpenAI.ReasoningItemSummaryPart' - description: The completed summary part. + description: The sequence number of the web search call being processed. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a reasoning summary part is completed. - OpenAI.ResponseReasoningSummaryTextDeltaEvent: + description: 'Note: web_search is not yet available via Azure OpenAI.' + x-oaiMeta: + name: response.web_search_call.completed + group: responses + example: | + { + "type": "response.web_search_call.completed", + "output_index": 0, + "item_id": "ws_123", + "sequence_number": 0 + } + OpenAI.ResponseWebSearchCallInProgressEvent: type: object required: - type - - item_id - output_index - - summary_index - - delta - - obfuscation + - item_id + - sequence_number properties: type: type: string enum: - - response.reasoning_summary_text.delta - description: The type of the event. Always `response.reasoning_summary_text.delta`. - item_id: - type: string - description: The ID of the item this summary text delta is associated with. + - response.web_search_call.in_progress + description: The type of the event. Always `response.web_search_call.in_progress`. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item this summary text delta is associated with. - summary_index: - type: integer - format: int32 - description: The index of the summary part within the reasoning summary. - delta: - type: string - description: The text delta that was added to the summary. - obfuscation: + description: The index of the output item that the web search call is associated with. + item_id: type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. + description: Unique ID for the output item associated with the web search call. + sequence_number: + type: integer + description: The sequence number of the web search call being processed. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a delta is added to a reasoning summary text. - OpenAI.ResponseReasoningSummaryTextDoneEvent: + description: 'Note: web_search is not yet available via Azure OpenAI.' + x-oaiMeta: + name: response.web_search_call.in_progress + group: responses + example: | + { + "type": "response.web_search_call.in_progress", + "output_index": 0, + "item_id": "ws_123", + "sequence_number": 0 + } + OpenAI.ResponseWebSearchCallSearchingEvent: type: object required: - type - - item_id - output_index - - summary_index - - text + - item_id + - sequence_number properties: type: type: string enum: - - response.reasoning_summary_text.done - description: The type of the event. Always `response.reasoning_summary_text.done`. - item_id: - type: string - description: The ID of the item this summary text is associated with. + - response.web_search_call.searching + description: The type of the event. Always `response.web_search_call.searching`. + x-stainless-const: true output_index: type: integer - format: int32 - description: The index of the output item this summary text is associated with. - summary_index: - type: integer - format: int32 - description: The index of the summary part within the reasoning summary. - text: + description: The index of the output item that the web search call is associated with. + item_id: type: string - description: The full text of the completed reasoning summary. + description: Unique ID for the output item associated with the web search call. + sequence_number: + type: integer + description: The sequence number of the web search call being processed. allOf: - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when a reasoning summary text is completed. - OpenAI.ResponseRefusalDeltaEvent: + description: 'Note: web_search is not yet available via Azure OpenAI.' + x-oaiMeta: + name: response.web_search_call.searching + group: responses + example: | + { + "type": "response.web_search_call.searching", + "output_index": 0, + "item_id": "ws_123", + "sequence_number": 0 + } + OpenAI.RunCompletionUsage: + type: object + required: + - completion_tokens + - prompt_tokens + - total_tokens + properties: + completion_tokens: + type: integer + description: Number of completion tokens used over the course of the run. + prompt_tokens: + type: integer + description: Number of prompt tokens used over the course of the run. + total_tokens: + type: integer + description: Total number of tokens used (prompt + completion). + description: Usage statistics related to the run. This value will be `null` if the run is not in a terminal state (i.e. `in_progress`, `queued`, etc.). + OpenAI.RunGraderRequest: + type: object + required: + - grader + - model_sample + properties: + grader: + anyOf: + - $ref: '#/components/schemas/OpenAI.GraderStringCheck' + - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' + - $ref: '#/components/schemas/OpenAI.GraderPython' + - $ref: '#/components/schemas/OpenAI.GraderScoreModel' + - $ref: '#/components/schemas/OpenAI.GraderMulti' + - $ref: '#/components/schemas/GraderEndpoint' + description: The grader used for the fine-tuning job. + item: + allOf: + - $ref: '#/components/schemas/OpenAI.RunGraderRequestItem' + description: |- + The dataset item provided to the grader. This will be used to populate + the `item` namespace. See [the guide](https://platform.openai.com/docs/guides/graders) for more details. + model_sample: + type: string + description: |- + The model sample to be evaluated. This value will be used to populate + the `sample` namespace. See [the guide](https://platform.openai.com/docs/guides/graders) for more details. + The `output_json` variable will be populated if the model sample is a + valid JSON string. + title: RunGraderRequest + OpenAI.RunGraderRequestItem: + type: object + OpenAI.RunGraderResponse: + type: object + required: + - reward + - metadata + - sub_rewards + - model_grader_token_usage_per_model + properties: + reward: + type: number + metadata: + $ref: '#/components/schemas/OpenAI.RunGraderResponseMetadata' + sub_rewards: + type: object + unevaluatedProperties: {} + model_grader_token_usage_per_model: + type: object + unevaluatedProperties: {} + OpenAI.RunGraderResponseMetadata: type: object required: + - name - type - - item_id - - output_index - - content_index - - delta - - obfuscation + - errors + - execution_time + - scores + - token_usage + - sampled_model_name properties: + name: + type: string type: type: string + errors: + $ref: '#/components/schemas/OpenAI.RunGraderResponseMetadataErrors' + execution_time: + type: number + scores: + type: object + unevaluatedProperties: {} + token_usage: + anyOf: + - type: integer + - type: 'null' + sampled_model_name: + anyOf: + - type: string + - type: 'null' + OpenAI.RunGraderResponseMetadataErrors: + type: object + required: + - formula_parse_error + - sample_parse_error + - truncated_observation_error + - unresponsive_reward_error + - invalid_variable_error + - other_error + - python_grader_server_error + - python_grader_server_error_type + - python_grader_runtime_error + - python_grader_runtime_error_details + - model_grader_server_error + - model_grader_refusal_error + - model_grader_parse_error + - model_grader_server_error_details + properties: + formula_parse_error: + type: boolean + sample_parse_error: + type: boolean + truncated_observation_error: + type: boolean + unresponsive_reward_error: + type: boolean + invalid_variable_error: + type: boolean + other_error: + type: boolean + python_grader_server_error: + type: boolean + python_grader_server_error_type: + anyOf: + - type: string + - type: 'null' + python_grader_runtime_error: + type: boolean + python_grader_runtime_error_details: + anyOf: + - type: string + - type: 'null' + model_grader_server_error: + type: boolean + model_grader_refusal_error: + type: boolean + model_grader_parse_error: + type: boolean + model_grader_server_error_details: + anyOf: + - type: string + - type: 'null' + OpenAI.RunObject: + type: object + required: + - id + - object + - created_at + - thread_id + - assistant_id + - status + - required_action + - last_error + - expires_at + - started_at + - cancelled_at + - failed_at + - completed_at + - incomplete_details + - model + - instructions + - tools + - metadata + - usage + - max_prompt_tokens + - max_completion_tokens + - truncation_strategy + - tool_choice + - parallel_tool_calls + - response_format + properties: + id: + type: string + description: The identifier, which can be referenced in API endpoints. + object: + type: string enum: - - response.refusal.delta - description: The type of the event. Always `response.refusal.delta`. - item_id: + - thread.run + description: The object type, which is always `thread.run`. + x-stainless-const: true + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the run was created. + thread_id: type: string - description: The ID of the output item that the refusal text is added to. - output_index: + description: The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was executed on as a part of this run. + assistant_id: + type: string + description: The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for execution of this run. + status: + $ref: '#/components/schemas/OpenAI.RunStatus' + required_action: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunObjectRequiredAction' + - type: 'null' + description: Details on the action required to continue the run. Will be `null` if no action is required. + last_error: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunObjectLastError' + - type: 'null' + description: The last error associated with this run. Will be `null` if there are no errors. + expires_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: int32 - description: The index of the output item that the refusal text is added to. - content_index: + format: unixTimestamp + description: The Unix timestamp (in seconds) for when the run will expire. + started_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: int32 - description: The index of the content part that the refusal text is added to. - delta: + format: unixTimestamp + description: The Unix timestamp (in seconds) for when the run was started. + cancelled_at: + anyOf: + - type: string + format: date-time + - type: 'null' + type: integer + format: unixTimestamp + description: The Unix timestamp (in seconds) for when the run was cancelled. + failed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + type: integer + format: unixTimestamp + description: The Unix timestamp (in seconds) for when the run failed. + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + type: integer + format: unixTimestamp + description: The Unix timestamp (in seconds) for when the run was completed. + incomplete_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunObjectIncompleteDetails' + - type: 'null' + description: Details on why the run is incomplete. Will be `null` if the run is not incomplete. + model: type: string - description: The refusal text that is added. - obfuscation: + description: The model that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + instructions: + type: string + description: The instructions that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + tools: + type: array + items: + $ref: '#/components/schemas/OpenAI.AssistantTool' + maxItems: 20 + description: The list of tools that the [assistant](https://platform.openai.com/docs/api-reference/assistants) used for this run. + default: [] + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + usage: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunCompletionUsage' + - type: 'null' + temperature: + anyOf: + - type: number + - type: 'null' + description: The sampling temperature used for this run. If not set, defaults to 1. + top_p: + anyOf: + - type: number + - type: 'null' + description: The nucleus sampling value used for this run. If not set, defaults to 1. + max_prompt_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 256 + description: The maximum number of prompt tokens specified to have been used over the course of the run. + max_completion_tokens: + anyOf: + - type: integer + - type: 'null' + minimum: 256 + description: The maximum number of completion tokens specified to have been used over the course of the run. + truncation_strategy: + $ref: '#/components/schemas/OpenAI.TruncationObject' + tool_choice: + $ref: '#/components/schemas/OpenAI.AssistantsApiToolChoiceOption' + parallel_tool_calls: + $ref: '#/components/schemas/OpenAI.ParallelToolCalls' + response_format: + $ref: '#/components/schemas/OpenAI.AssistantsApiResponseFormatOption' + description: Represents an execution run on a [thread](https://platform.openai.com/docs/api-reference/threads). + title: A run on a thread + x-oaiMeta: + name: The run object + beta: true + example: | + { + "id": "run_abc123", + "object": "thread.run", + "created_at": 1698107661, + "assistant_id": "asst_abc123", + "thread_id": "thread_abc123", + "status": "completed", + "started_at": 1699073476, + "expires_at": null, + "cancelled_at": null, + "failed_at": null, + "completed_at": 1699073498, + "last_error": null, + "model": "gpt-4o", + "instructions": null, + "tools": [{"type": "file_search"}, {"type": "code_interpreter"}], + "metadata": {}, + "incomplete_details": null, + "usage": { + "prompt_tokens": 123, + "completion_tokens": 456, + "total_tokens": 579 + }, + "temperature": 1.0, + "top_p": 1.0, + "max_prompt_tokens": 1000, + "max_completion_tokens": 1000, + "truncation_strategy": { + "type": "auto", + "last_messages": null + }, + "response_format": "auto", + "tool_choice": "auto", + "parallel_tool_calls": true + } + OpenAI.RunObjectIncompleteDetails: + type: object + properties: + reason: + type: string + enum: + - max_completion_tokens + - max_prompt_tokens + OpenAI.RunObjectLastError: + type: object + required: + - code + - message + properties: + code: + type: string + enum: + - server_error + - rate_limit_exceeded + - invalid_prompt + message: type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when there is a partial refusal text. - OpenAI.ResponseRefusalDoneEvent: + OpenAI.RunObjectRequiredAction: type: object required: - type - - item_id - - output_index - - content_index - - refusal + - submit_tool_outputs properties: type: type: string enum: - - response.refusal.done - description: The type of the event. Always `response.refusal.done`. - item_id: - type: string - description: The ID of the output item that the refusal text is finalized. - output_index: + - submit_tool_outputs + x-stainless-const: true + submit_tool_outputs: + $ref: '#/components/schemas/OpenAI.RunObjectRequiredActionSubmitToolOutputs' + OpenAI.RunObjectRequiredActionSubmitToolOutputs: + type: object + required: + - tool_calls + properties: + tool_calls: + type: array + items: + $ref: '#/components/schemas/OpenAI.RunToolCallObject' + OpenAI.RunStatus: + type: string + enum: + - queued + - in_progress + - requires_action + - cancelling + - cancelled + - failed + - completed + - incomplete + - expired + description: The status of the run, which can be either `queued`, `in_progress`, `requires_action`, `cancelling`, `cancelled`, `failed`, `completed`, `incomplete`, or `expired`. + OpenAI.RunStepCompletionUsage: + type: object + required: + - completion_tokens + - prompt_tokens + - total_tokens + properties: + completion_tokens: type: integer - format: int32 - description: The index of the output item that the refusal text is finalized. - content_index: + description: Number of completion tokens used over the course of the run step. + prompt_tokens: type: integer - format: int32 - description: The index of the content part that the refusal text is finalized. - refusal: + description: Number of prompt tokens used over the course of the run step. + total_tokens: + type: integer + description: Total number of tokens used (prompt + completion). + description: Usage statistics related to the run step. This value will be `null` while the run step's status is `in_progress`. + OpenAI.RunStepDetailsMessageCreationObject: + type: object + required: + - type + - message_creation + properties: + type: type: string - description: The refusal text that is finalized. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when refusal text is finalized. - OpenAI.ResponseStreamEvent: + enum: + - message_creation + description: Always `message_creation`. + x-stainless-const: true + message_creation: + $ref: '#/components/schemas/OpenAI.RunStepDetailsMessageCreationObjectMessageCreation' + description: Details of the message creation by the run step. + title: Message creation + OpenAI.RunStepDetailsMessageCreationObjectMessageCreation: + type: object + required: + - message_id + properties: + message_id: + type: string + OpenAI.RunStepDetailsToolCall: type: object required: - type - - sequence_number properties: type: - $ref: '#/components/schemas/OpenAI.ResponseStreamEventType' - sequence_number: - type: integer - format: int32 - description: The sequence number for this event. + $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallType' discriminator: propertyName: type mapping: - response.completed: '#/components/schemas/OpenAI.ResponseCompletedEvent' - response.content_part.added: '#/components/schemas/OpenAI.ResponseContentPartAddedEvent' - response.content_part.done: '#/components/schemas/OpenAI.ResponseContentPartDoneEvent' - response.created: '#/components/schemas/OpenAI.ResponseCreatedEvent' - error: '#/components/schemas/OpenAI.ResponseErrorEvent' - response.file_search_call.completed: '#/components/schemas/OpenAI.ResponseFileSearchCallCompletedEvent' - response.file_search_call.in_progress: '#/components/schemas/OpenAI.ResponseFileSearchCallInProgressEvent' - response.file_search_call.searching: '#/components/schemas/OpenAI.ResponseFileSearchCallSearchingEvent' - response.function_call_arguments.delta: '#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDeltaEvent' - response.function_call_arguments.done: '#/components/schemas/OpenAI.ResponseFunctionCallArgumentsDoneEvent' - response.in_progress: '#/components/schemas/OpenAI.ResponseInProgressEvent' - response.failed: '#/components/schemas/OpenAI.ResponseFailedEvent' - response.incomplete: '#/components/schemas/OpenAI.ResponseIncompleteEvent' - response.output_item.added: '#/components/schemas/OpenAI.ResponseOutputItemAddedEvent' - response.output_item.done: '#/components/schemas/OpenAI.ResponseOutputItemDoneEvent' - response.refusal.delta: '#/components/schemas/OpenAI.ResponseRefusalDeltaEvent' - response.refusal.done: '#/components/schemas/OpenAI.ResponseRefusalDoneEvent' - response.output_text.delta: '#/components/schemas/OpenAI.ResponseTextDeltaEvent' - response.output_text.done: '#/components/schemas/OpenAI.ResponseTextDoneEvent' - response.reasoning_summary_part.added: '#/components/schemas/OpenAI.ResponseReasoningSummaryPartAddedEvent' - response.reasoning_summary_part.done: '#/components/schemas/OpenAI.ResponseReasoningSummaryPartDoneEvent' - response.reasoning_summary_text.delta: '#/components/schemas/OpenAI.ResponseReasoningSummaryTextDeltaEvent' - response.reasoning_summary_text.done: '#/components/schemas/OpenAI.ResponseReasoningSummaryTextDoneEvent' - response.web_search_call.completed: '#/components/schemas/OpenAI.ResponseWebSearchCallCompletedEvent' - response.web_search_call.in_progress: '#/components/schemas/OpenAI.ResponseWebSearchCallInProgressEvent' - response.web_search_call.searching: '#/components/schemas/OpenAI.ResponseWebSearchCallSearchingEvent' - response.image_generation_call.completed: '#/components/schemas/OpenAI.ResponseImageGenCallCompletedEvent' - response.image_generation_call.generating: '#/components/schemas/OpenAI.ResponseImageGenCallGeneratingEvent' - response.image_generation_call.in_progress: '#/components/schemas/OpenAI.ResponseImageGenCallInProgressEvent' - response.image_generation_call.partial_image: '#/components/schemas/OpenAI.ResponseImageGenCallPartialImageEvent' - response.mcp_call.arguments_delta: '#/components/schemas/OpenAI.ResponseMCPCallArgumentsDeltaEvent' - response.mcp_call.arguments_done: '#/components/schemas/OpenAI.ResponseMCPCallArgumentsDoneEvent' - response.mcp_call.completed: '#/components/schemas/OpenAI.ResponseMCPCallCompletedEvent' - response.mcp_call.failed: '#/components/schemas/OpenAI.ResponseMCPCallFailedEvent' - response.mcp_call.in_progress: '#/components/schemas/OpenAI.ResponseMCPCallInProgressEvent' - response.mcp_list_tools.completed: '#/components/schemas/OpenAI.ResponseMCPListToolsCompletedEvent' - response.mcp_list_tools.failed: '#/components/schemas/OpenAI.ResponseMCPListToolsFailedEvent' - response.mcp_list_tools.in_progress: '#/components/schemas/OpenAI.ResponseMCPListToolsInProgressEvent' - response.queued: '#/components/schemas/OpenAI.ResponseQueuedEvent' - response.reasoning.delta: '#/components/schemas/OpenAI.ResponseReasoningDeltaEvent' - response.reasoning.done: '#/components/schemas/OpenAI.ResponseReasoningDoneEvent' - response.reasoning_summary.delta: '#/components/schemas/OpenAI.ResponseReasoningSummaryDeltaEvent' - response.reasoning_summary.done: '#/components/schemas/OpenAI.ResponseReasoningSummaryDoneEvent' - response.code_interpreter_call_code.delta: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDeltaEvent' - response.code_interpreter_call_code.done: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallCodeDoneEvent' - response.code_interpreter_call.completed: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallCompletedEvent' - response.code_interpreter_call.in_progress: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallInProgressEvent' - response.code_interpreter_call.interpreting: '#/components/schemas/OpenAI.ResponseCodeInterpreterCallInterpretingEvent' - OpenAI.ResponseStreamEventType: + code_interpreter: '#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeObject' + file_search: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchObject' + function: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFunctionObject' + OpenAI.RunStepDetailsToolCallType: anyOf: - type: string - type: string enum: - - response.audio.delta - - response.audio.done - - response.audio_transcript.delta - - response.audio_transcript.done - - response.code_interpreter_call_code.delta - - response.code_interpreter_call_code.done - - response.code_interpreter_call.completed - - response.code_interpreter_call.in_progress - - response.code_interpreter_call.interpreting - - response.completed - - response.content_part.added - - response.content_part.done - - response.created - - error - - response.file_search_call.completed - - response.file_search_call.in_progress - - response.file_search_call.searching - - response.function_call_arguments.delta - - response.function_call_arguments.done - - response.in_progress - - response.failed - - response.incomplete - - response.output_item.added - - response.output_item.done - - response.refusal.delta - - response.refusal.done - - response.output_text.annotation.added - - response.output_text.delta - - response.output_text.done - - response.reasoning_summary_part.added - - response.reasoning_summary_part.done - - response.reasoning_summary_text.delta - - response.reasoning_summary_text.done - - response.web_search_call.completed - - response.web_search_call.in_progress - - response.web_search_call.searching - - response.image_generation_call.completed - - response.image_generation_call.generating - - response.image_generation_call.in_progress - - response.image_generation_call.partial_image - - response.mcp_call.arguments_delta - - response.mcp_call.arguments_done - - response.mcp_call.completed - - response.mcp_call.failed - - response.mcp_call.in_progress - - response.mcp_list_tools.completed - - response.mcp_list_tools.failed - - response.mcp_list_tools.in_progress - - response.queued - - response.reasoning.delta - - response.reasoning.done - - response.reasoning_summary.delta - - response.reasoning_summary.done - OpenAI.ResponseTextDeltaEvent: + - code_interpreter + - file_search + - function + OpenAI.RunStepDetailsToolCallsCodeObject: type: object required: + - id - type - - item_id - - output_index - - content_index - - delta - - obfuscation + - code_interpreter properties: + id: + type: string + description: The ID of the tool call. type: type: string enum: - - response.output_text.delta - description: The type of the event. Always `response.output_text.delta`. - item_id: + - code_interpreter + description: The type of tool call. This is always going to be `code_interpreter` for this type of tool call. + x-stainless-const: true + code_interpreter: + allOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeObjectCodeInterpreter' + description: The Code Interpreter tool call definition. + allOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCall' + description: Details of the Code Interpreter tool call the run step was involved in. + title: Code Interpreter tool call + OpenAI.RunStepDetailsToolCallsCodeObjectCodeInterpreter: + type: object + required: + - input + - outputs + properties: + input: type: string - description: The ID of the output item that the text delta was added to. - output_index: - type: integer - format: int32 - description: The index of the output item that the text delta was added to. - content_index: - type: integer - format: int32 - description: The index of the content part that the text delta was added to. - delta: + outputs: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeOutputLogsObject' + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeOutputImageObject' + OpenAI.RunStepDetailsToolCallsCodeOutputImageObject: + type: object + required: + - type + - image + properties: + type: type: string - description: The text delta that was added. - obfuscation: + enum: + - image + description: Always `image`. + x-stainless-const: true + image: + $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsCodeOutputImageObjectImage' + title: Code Interpreter image output + x-stainless-naming: + java: + type_name: ImageOutput + kotlin: + type_name: ImageOutput + OpenAI.RunStepDetailsToolCallsCodeOutputImageObjectImage: + type: object + required: + - file_id + properties: + file_id: type: string - description: A field of random characters introduced by stream obfuscation. Stream obfuscation is a mechanism that mitigates certain side-channel attacks. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when there is an additional text delta. - OpenAI.ResponseTextDoneEvent: + OpenAI.RunStepDetailsToolCallsCodeOutputLogsObject: type: object required: - type - - item_id - - output_index - - content_index - - text + - logs + properties: + type: + type: string + enum: + - logs + description: Always `logs`. + x-stainless-const: true + logs: + type: string + description: The text output from the Code Interpreter tool call. + description: Text output from the Code Interpreter tool call as part of a run step. + title: Code Interpreter log output + x-stainless-naming: + java: + type_name: LogsOutput + kotlin: + type_name: LogsOutput + OpenAI.RunStepDetailsToolCallsFileSearchObject: + type: object + required: + - id + - type + - file_search + properties: + id: + type: string + description: The ID of the tool call object. + type: + type: string + enum: + - file_search + description: The type of tool call. This is always going to be `file_search` for this type of tool call. + x-stainless-const: true + file_search: + allOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchObjectFileSearch' + description: For now, this is always going to be an empty object. + x-oaiTypeLabel: map + allOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCall' + title: File search tool call + OpenAI.RunStepDetailsToolCallsFileSearchObjectFileSearch: + type: object + properties: + ranking_options: + $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchRankingOptionsObject' + results: + type: array + items: + $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchResultObject' + OpenAI.RunStepDetailsToolCallsFileSearchRankingOptionsObject: + type: object + required: + - ranker + - score_threshold + properties: + ranker: + $ref: '#/components/schemas/OpenAI.FileSearchRanker' + score_threshold: + type: number + minimum: 0 + maximum: 1 + description: The score threshold for the file search. All values must be a floating point number between 0 and 1. + description: The ranking options for the file search. + title: File search tool call ranking options + OpenAI.RunStepDetailsToolCallsFileSearchResultObject: + type: object + required: + - file_id + - file_name + - score + properties: + file_id: + type: string + description: The ID of the file that result was found in. + file_name: + type: string + description: The name of the file that result was found in. + score: + type: number + minimum: 0 + maximum: 1 + description: The score of the result. All values must be a floating point number between 0 and 1. + content: + type: array + items: + $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFileSearchResultObjectContent' + description: The content of the result that was found. The content is only included if requested via the include query parameter. + description: A result instance of the file search. + title: File search tool call result + x-oaiTypeLabel: map + OpenAI.RunStepDetailsToolCallsFileSearchResultObjectContent: + type: object properties: type: type: string enum: - - response.output_text.done - description: The type of the event. Always `response.output_text.done`. - item_id: - type: string - description: The ID of the output item that the text content is finalized. - output_index: - type: integer - format: int32 - description: The index of the output item that the text content is finalized. - content_index: - type: integer - format: int32 - description: The index of the content part that the text content is finalized. + - text + x-stainless-const: true text: type: string - description: The text content that is finalized. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: Emitted when text content is finalized. - OpenAI.ResponseTextFormatConfiguration: - type: object - required: - - type - properties: - type: - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfigurationType' - discriminator: - propertyName: type - mapping: - text: '#/components/schemas/OpenAI.ResponseTextFormatConfigurationText' - json_object: '#/components/schemas/OpenAI.ResponseTextFormatConfigurationJsonObject' - json_schema: '#/components/schemas/OpenAI.ResponseTextFormatConfigurationJsonSchema' - OpenAI.ResponseTextFormatConfigurationJsonObject: + OpenAI.RunStepDetailsToolCallsFunctionObject: type: object required: + - id - type + - function properties: + id: + type: string + description: The ID of the tool call object. type: type: string enum: - - json_object + - function + description: The type of tool call. This is always going to be `function` for this type of tool call. + x-stainless-const: true + function: + allOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsFunctionObjectFunction' + description: The definition of the function that was called. allOf: - - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - OpenAI.ResponseTextFormatConfigurationJsonSchema: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCall' + title: Function tool call + OpenAI.RunStepDetailsToolCallsFunctionObjectFunction: type: object required: - - type - name - - schema + - arguments + - output properties: - type: - type: string - enum: - - json_schema - description: The type of response format being defined. Always `json_schema`. - description: - type: string - description: |- - A description of what the response format is for, used by the model to - determine how to respond in the format. name: type: string - description: |- - The name of the response format. Must be a-z, A-Z, 0-9, or contain - underscores and dashes, with a maximum length of 64. - schema: - $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema' - strict: - type: boolean - nullable: true - description: |- - Whether to enable strict schema adherence when generating the output. - If set to true, the model will always follow the exact schema defined - in the `schema` field. Only a subset of JSON Schema is supported when - `strict` is `true`. To learn more, read the [Structured Outputs - guide](/docs/guides/structured-outputs). - default: false - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - description: |- - JSON Schema response format. Used to generate structured JSON responses. - Learn more about [Structured Outputs](/docs/guides/structured-outputs). - OpenAI.ResponseTextFormatConfigurationText: + arguments: + type: string + output: + anyOf: + - type: string + - type: 'null' + OpenAI.RunStepDetailsToolCallsObject: type: object required: - type + - tool_calls properties: type: type: string enum: - - text - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseTextFormatConfiguration' - OpenAI.ResponseTextFormatConfigurationType: - anyOf: - - type: string - - type: string - enum: - - text - - json_schema - - json_object - description: |- - An object specifying the format that the model must output. - - Configuring `{ "type": "json_schema" }` enables Structured Outputs, - which ensures the model will match your supplied JSON schema. Learn more in the - [Structured Outputs guide](/docs/guides/structured-outputs). - - The default format is `{ "type": "text" }` with no additional options. - - **Not recommended for gpt-4o and newer models:** - - Setting to `{ "type": "json_object" }` enables the older JSON mode, which - ensures the message the model generates is valid JSON. Using `json_schema` - is preferred for models that support it. - OpenAI.ResponseUsage: + - tool_calls + description: Always `tool_calls`. + x-stainless-const: true + tool_calls: + type: array + items: + $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCall' + description: 'An array of tool calls the run step was involved in. These can be associated with one of three types of tools: `code_interpreter`, `file_search`, or `function`.' + description: Details of the tool call. + title: Tool calls + OpenAI.RunStepObject: type: object required: - - input_tokens - - input_tokens_details - - output_tokens - - output_tokens_details - - total_tokens + - id + - object + - created_at + - assistant_id + - thread_id + - run_id + - type + - status + - step_details + - last_error + - expired_at + - cancelled_at + - failed_at + - completed_at + - metadata + - usage properties: - input_tokens: + id: + type: string + description: The identifier of the run step, which can be referenced in API endpoints. + object: + type: string + enum: + - thread.run.step + description: The object type, which is always `thread.run.step`. + x-stainless-const: true + created_at: type: integer - format: int32 - description: The number of input tokens. - input_tokens_details: - type: object - properties: - cached_tokens: - type: integer - format: int32 - description: |- - The number of tokens that were retrieved from the cache. - [More on prompt caching](/docs/guides/prompt-caching). - required: - - cached_tokens - description: A detailed breakdown of the input tokens. - output_tokens: + format: unixtime + description: The Unix timestamp (in seconds) for when the run step was created. + assistant_id: + type: string + description: The ID of the [assistant](https://platform.openai.com/docs/api-reference/assistants) associated with the run step. + thread_id: + type: string + description: The ID of the [thread](https://platform.openai.com/docs/api-reference/threads) that was run. + run_id: + type: string + description: The ID of the [run](https://platform.openai.com/docs/api-reference/runs) that this run step is a part of. + type: + type: string + enum: + - message_creation + - tool_calls + description: The type of run step, which can be either `message_creation` or `tool_calls`. + status: + type: string + enum: + - in_progress + - cancelled + - failed + - completed + - expired + description: The status of the run step, which can be either `in_progress`, `cancelled`, `failed`, `completed`, or `expired`. + step_details: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunStepDetailsMessageCreationObject' + - $ref: '#/components/schemas/OpenAI.RunStepDetailsToolCallsObject' + description: The details of the run step. + last_error: + anyOf: + - $ref: '#/components/schemas/OpenAI.RunStepObjectLastError' + - type: 'null' + expired_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: int32 - description: The number of output tokens. - output_tokens_details: - type: object - properties: - reasoning_tokens: - type: integer - format: int32 - description: The number of reasoning tokens. - required: - - reasoning_tokens - description: A detailed breakdown of the output tokens. - total_tokens: + format: unixTimestamp + cancelled_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: int32 - description: The total number of tokens used. - description: |- - Represents token usage details including input tokens, output tokens, - a breakdown of output tokens, and the total tokens used. - OpenAI.ResponseWebSearchCallCompletedEvent: + format: unixTimestamp + failed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + type: integer + format: unixTimestamp + completed_at: + anyOf: + - type: string + format: date-time + - type: 'null' + type: integer + format: unixTimestamp + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + usage: + $ref: '#/components/schemas/OpenAI.RunStepCompletionUsage' + description: Represents a step in execution of a run. + title: Run steps + x-oaiMeta: + name: The run step object + beta: true + example: | + { + "id": "step_abc123", + "object": "thread.run.step", + "created_at": 1699063291, + "run_id": "run_abc123", + "assistant_id": "asst_abc123", + "thread_id": "thread_abc123", + "type": "message_creation", + "status": "completed", + "cancelled_at": null, + "completed_at": 1699063291, + "expired_at": null, + "failed_at": null, + "last_error": null, + "step_details": { + "type": "message_creation", + "message_creation": { + "message_id": "msg_abc123" + } + }, + "usage": { + "prompt_tokens": 123, + "completion_tokens": 456, + "total_tokens": 579 + } + } + OpenAI.RunStepObjectLastError: type: object required: - - type - - output_index - - item_id + - code + - message properties: - type: + code: type: string enum: - - response.web_search_call.completed - description: The type of the event. Always `response.web_search_call.completed`. - output_index: - type: integer - format: int32 - description: The index of the output item that the web search call is associated with. - item_id: + - server_error + - rate_limit_exceeded + message: type: string - description: Unique ID for the output item associated with the web search call. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: 'Note: web_search is not yet available via Azure OpenAI.' - OpenAI.ResponseWebSearchCallInProgressEvent: + OpenAI.RunToolCallObject: type: object required: + - id - type - - output_index - - item_id + - function properties: + id: + type: string + description: The ID of the tool call. This ID must be referenced when you submit the tool outputs in using the [Submit tool outputs to run](https://platform.openai.com/docs/api-reference/runs/submitToolOutputs) endpoint. type: type: string enum: - - response.web_search_call.in_progress - description: The type of the event. Always `response.web_search_call.in_progress`. - output_index: - type: integer - format: int32 - description: The index of the output item that the web search call is associated with. - item_id: + - function + description: The type of tool call the output is required for. For now, this is always `function`. + x-stainless-const: true + function: + allOf: + - $ref: '#/components/schemas/OpenAI.RunToolCallObjectFunction' + description: The function definition. + description: Tool call objects + OpenAI.RunToolCallObjectFunction: + type: object + required: + - name + - arguments + properties: + name: type: string - description: Unique ID for the output item associated with the web search call. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: 'Note: web_search is not yet available via Azure OpenAI.' - OpenAI.ResponseWebSearchCallSearchingEvent: + arguments: + type: string + OpenAI.Screenshot: type: object required: - type - - output_index - - item_id properties: type: type: string enum: - - response.web_search_call.searching - description: The type of the event. Always `response.web_search_call.searching`. - output_index: - type: integer - format: int32 - description: The index of the output item that the web search call is associated with. - item_id: - type: string - description: Unique ID for the output item associated with the web search call. + - screenshot + description: |- + Specifies the event type. For a screenshot action, this property is + always set to `screenshot`. + x-stainless-const: true + default: screenshot allOf: - - $ref: '#/components/schemas/OpenAI.ResponseStreamEvent' - description: 'Note: web_search is not yet available via Azure OpenAI.' - OpenAI.ResponsesAssistantMessageItemParam: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A screenshot action. + title: Screenshot + OpenAI.Scroll: type: object required: - - role - - content + - type + - x + - 'y' + - scroll_x + - scroll_y properties: - role: + type: type: string enum: - - assistant - description: The role of the message, which is always `assistant`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. + - scroll + description: |- + Specifies the event type. For a scroll action, this property is + always set to `scroll`. + x-stainless-const: true + default: scroll + x: + type: integer + description: The x-coordinate where the scroll occurred. + 'y': + type: integer + description: The y-coordinate where the scroll occurred. + scroll_x: + type: integer + description: The horizontal scroll distance. + scroll_y: + type: integer + description: The vertical scroll distance. allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemParam' - description: A message parameter item with the `assistant` role. - OpenAI.ResponsesAssistantMessageItemResource: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A scroll action. + title: Scroll + OpenAI.SearchContextSize: + type: string + enum: + - low + - medium + - high + OpenAI.SpecificApplyPatchParam: type: object required: - - role - - content + - type properties: - role: + type: type: string enum: - - assistant - description: The role of the message, which is always `assistant`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. + - apply_patch + description: The tool to call. Always `apply_patch`. + x-stainless-const: true + default: apply_patch allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemResource' - description: A message resource item with the `assistant` role. - OpenAI.ResponsesDeveloperMessageItemParam: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: Forces the model to call the apply_patch tool when executing a tool call. + title: Specific apply patch tool choice + OpenAI.SpecificFunctionShellParam: type: object required: - - role - - content + - type properties: - role: + type: type: string enum: - - developer - description: The role of the message, which is always `developer`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. + - shell + description: The tool to call. Always `shell`. + x-stainless-const: true + default: shell allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemParam' - description: A message parameter item with the `developer` role. - OpenAI.ResponsesDeveloperMessageItemResource: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: Forces the model to call the shell tool when a tool call is required. + title: Specific shell tool choice + OpenAI.StaticChunkingStrategy: type: object required: - - role - - content + - max_chunk_size_tokens + - chunk_overlap_tokens properties: - role: - type: string - enum: - - developer - description: The role of the message, which is always `developer`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemResource' - description: A message resource item with the `developer` role. - OpenAI.ResponsesMessageItemParam: + max_chunk_size_tokens: + type: integer + minimum: 100 + maximum: 4096 + description: The maximum number of tokens in each chunk. The default value is `800`. The minimum value is `100` and the maximum value is `4096`. + chunk_overlap_tokens: + type: integer + description: |- + The number of tokens that overlap between chunks. The default value is `400`. + + Note that the overlap must not exceed half of `max_chunk_size_tokens`. + OpenAI.StaticChunkingStrategyRequestParam: type: object required: - type - - role + - static properties: type: type: string enum: - - message - description: The type of the responses item, which is always 'message'. - role: - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageRole' - description: The role associated with the message. - discriminator: - propertyName: role - mapping: - user: '#/components/schemas/OpenAI.ResponsesUserMessageItemParam' - system: '#/components/schemas/OpenAI.ResponsesSystemMessageItemParam' - developer: '#/components/schemas/OpenAI.ResponsesDeveloperMessageItemParam' - assistant: '#/components/schemas/OpenAI.ResponsesAssistantMessageItemParam' + - static + description: Always `static`. + x-stainless-const: true + static: + $ref: '#/components/schemas/OpenAI.StaticChunkingStrategy' allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' - description: A response message item, representing a role and content, as provided as client request parameters. - OpenAI.ResponsesMessageItemResource: + - $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' + description: Customize your own chunking strategy by setting chunk size and chunk overlap. + title: Static Chunking Strategy + OpenAI.StaticChunkingStrategyResponseParam: type: object required: - type - - status - - role + - static properties: type: type: string enum: - - message - description: The type of the responses item, which is always 'message'. - status: - type: string - enum: - - in_progress - - completed - - incomplete - description: |- - The status of the item. One of `in_progress`, `completed`, or - `incomplete`. Populated when items are returned via API. - role: - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageRole' - description: The role associated with the message. - discriminator: - propertyName: role - mapping: - user: '#/components/schemas/OpenAI.ResponsesUserMessageItemResource' - system: '#/components/schemas/OpenAI.ResponsesSystemMessageItemResource' - developer: '#/components/schemas/OpenAI.ResponsesDeveloperMessageItemResource' - assistant: '#/components/schemas/OpenAI.ResponsesAssistantMessageItemResource' + - static + description: Always `static`. + x-stainless-const: true + static: + $ref: '#/components/schemas/OpenAI.StaticChunkingStrategy' allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' - description: A response message resource item, representing a role and content, as provided on service responses. - OpenAI.ResponsesMessageRole: - type: string - enum: - - system - - developer - - user - - assistant - description: The collection of valid roles for responses message items. - OpenAI.ResponsesSystemMessageItemParam: + - $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponse' + title: Static Chunking Strategy + OpenAI.StopConfiguration: + anyOf: + - anyOf: + - type: string + - type: 'null' + - type: array + items: + type: string + - type: 'null' + description: |- + Not supported with latest reasoning models `o3` and `o4-mini`. + + Up to 4 sequences where the API will stop generating further tokens. The + returned text will not contain the stop sequence. + OpenAI.SubmitToolOutputsRunRequest: type: object required: - - role - - content + - tool_outputs properties: - role: - type: string - enum: - - system - description: The role of the message, which is always `system`. - content: + tool_outputs: type: array items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemParam' - description: A message parameter item with the `system` role. - OpenAI.ResponsesSystemMessageItemResource: + $ref: '#/components/schemas/OpenAI.SubmitToolOutputsRunRequestToolOutputs' + description: A list of tools for which the outputs are being submitted. + stream: + anyOf: + - type: boolean + - type: 'null' + OpenAI.SubmitToolOutputsRunRequestToolOutputs: type: object - required: - - role - - content properties: - role: + tool_call_id: type: string - enum: - - system - description: The role of the message, which is always `system`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemResource' - description: A message resource item with the `system` role. - OpenAI.ResponsesUserMessageItemParam: + output: + type: string + OpenAI.Summary: type: object required: - - role - - content + - type + - text properties: - role: + type: type: string enum: - - user - description: The role of the message, which is always `user`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemParam' - description: A message parameter item with the `user` role. - OpenAI.ResponsesUserMessageItemResource: + - summary_text + description: The type of the object. Always `summary_text`. + x-stainless-const: true + default: summary_text + text: + type: string + description: A summary of the reasoning output from the model so far. + description: A summary text from the model. + title: Summary text + OpenAI.SummaryTextContent: type: object required: - - role - - content + - type + - text properties: - role: + type: type: string enum: - - user - description: The role of the message, which is always `user`. - content: - type: array - items: - $ref: '#/components/schemas/OpenAI.ItemContent' - description: The content associated with the message. - allOf: - - $ref: '#/components/schemas/OpenAI.ResponsesMessageItemResource' - description: A message resource item with the `user` role. - OpenAI.RunGraderRequest: + - summary_text + description: The type of the object. Always `summary_text`. + x-stainless-const: true + default: summary_text + text: + type: string + description: A summary of the reasoning output from the model so far. + description: A summary text from the model. + title: Summary text + OpenAI.TextAnnotation: type: object required: - - grader - - model_sample + - type properties: - grader: - anyOf: - - $ref: '#/components/schemas/OpenAI.GraderStringCheck' - - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' - - $ref: '#/components/schemas/OpenAI.GraderPython' - - $ref: '#/components/schemas/OpenAI.GraderScoreModel' - - $ref: '#/components/schemas/OpenAI.GraderMulti' - description: The grader used for the fine-tuning job. - item: - description: |- - The dataset item provided to the grader. This will be used to populate - the `item` namespace. See [the guide](/docs/guides/graders) for more details. - model_sample: - type: string - description: |- - The model sample to be evaluated. This value will be used to populate - the `sample` namespace. See [the guide](/docs/guides/graders) for more details. - The `output_json` variable will be populated if the model sample is a - valid JSON string. - OpenAI.RunGraderResponse: + type: + $ref: '#/components/schemas/OpenAI.TextAnnotationType' + discriminator: + propertyName: type + mapping: + file_citation: '#/components/schemas/OpenAI.MessageContentTextAnnotationsFileCitationObject' + file_path: '#/components/schemas/OpenAI.MessageContentTextAnnotationsFilePathObject' + OpenAI.TextAnnotationType: + anyOf: + - type: string + - type: string + enum: + - file_citation + - file_path + OpenAI.TextContent: type: object required: - - reward - - metadata - - sub_rewards - - model_grader_token_usage_per_model + - type + - text properties: - reward: - type: number - format: float - metadata: - type: object - properties: - name: - type: string - type: - type: string - errors: - type: object - properties: - formula_parse_error: - type: boolean - sample_parse_error: - type: boolean - truncated_observation_error: - type: boolean - unresponsive_reward_error: - type: boolean - invalid_variable_error: - type: boolean - other_error: - type: boolean - python_grader_server_error: - type: boolean - python_grader_server_error_type: - type: string - nullable: true - python_grader_runtime_error: - type: boolean - python_grader_runtime_error_details: - type: string - nullable: true - model_grader_server_error: - type: boolean - model_grader_refusal_error: - type: boolean - model_grader_parse_error: - type: boolean - model_grader_server_error_details: - type: string - nullable: true - required: - - formula_parse_error - - sample_parse_error - - truncated_observation_error - - unresponsive_reward_error - - invalid_variable_error - - other_error - - python_grader_server_error - - python_grader_server_error_type - - python_grader_runtime_error - - python_grader_runtime_error_details - - model_grader_server_error - - model_grader_refusal_error - - model_grader_parse_error - - model_grader_server_error_details - execution_time: - type: number - format: float - scores: {} - token_usage: - type: integer - format: int32 - nullable: true - sampled_model_name: - type: string - nullable: true - required: - - name - - type - - errors - - execution_time - - scores - - token_usage - - sampled_model_name - sub_rewards: {} - model_grader_token_usage_per_model: {} - OpenAI.StaticChunkingStrategy: + type: + type: string + enum: + - text + x-stainless-const: true + default: text + text: + type: string + description: A text content. + title: Text Content + OpenAI.TextResponseFormatConfiguration: type: object required: - - max_chunk_size_tokens - - chunk_overlap_tokens + - type properties: - max_chunk_size_tokens: - type: integer - format: int32 - minimum: 100 - maximum: 4096 - description: The maximum number of tokens in each chunk. The default value is `800`. The minimum value is `100` and the maximum value is `4096`. - chunk_overlap_tokens: - type: integer - format: int32 - description: |- - The number of tokens that overlap between chunks. The default value is `400`. + type: + $ref: '#/components/schemas/OpenAI.TextResponseFormatConfigurationType' + discriminator: + propertyName: type + mapping: + json_object: '#/components/schemas/OpenAI.ResponseFormatJsonObject' + json_schema: '#/components/schemas/OpenAI.TextResponseFormatJsonSchema' + description: |- + An object specifying the format that the model must output. + + Configuring `{ "type": "json_schema" }` enables Structured Outputs, + which ensures the model will match your supplied JSON schema. Learn more in the + [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs). + + The default format is `{ "type": "text" }` with no additional options. - Note that the overlap must not exceed half of `max_chunk_size_tokens`. - OpenAI.StaticChunkingStrategyRequestParam: + *Not recommended for gpt-4o and newer models:** + + Setting to `{ "type": "json_object" }` enables the older JSON mode, which + ensures the message the model generates is valid JSON. Using `json_schema` + is preferred for models that support it. + OpenAI.TextResponseFormatConfigurationType: + anyOf: + - type: string + - type: string + enum: + - text + - json_schema + - json_object + OpenAI.TextResponseFormatJsonSchema: type: object required: - type - - static + - name + - schema properties: type: type: string enum: - - static - description: Always `static`. - static: - $ref: '#/components/schemas/OpenAI.StaticChunkingStrategy' + - json_schema + description: The type of response format being defined. Always `json_schema`. + x-stainless-const: true + description: + type: string + description: |- + A description of what the response format is for, used by the model to + determine how to respond in the format. + name: + type: string + description: |- + The name of the response format. Must be a-z, A-Z, 0-9, or contain + underscores and dashes, with a maximum length of 64. + schema: + $ref: '#/components/schemas/OpenAI.ResponseFormatJsonSchemaSchema' + strict: + anyOf: + - type: boolean + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.ChunkingStrategyRequestParam' - description: Customize your own chunking strategy by setting chunk size and chunk overlap. - OpenAI.StaticChunkingStrategyResponseParam: + - $ref: '#/components/schemas/OpenAI.TextResponseFormatConfiguration' + description: |- + JSON Schema response format. Used to generate structured JSON responses. + Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs). + title: JSON schema + OpenAI.ThreadObject: type: object required: - - type - - static + - id + - object + - created_at + - tool_resources + - metadata properties: - type: + id: + type: string + description: The identifier, which can be referenced in API endpoints. + object: type: string enum: - - static - description: Always `static`. - static: - $ref: '#/components/schemas/OpenAI.StaticChunkingStrategy' - allOf: - - $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponseParam' - OpenAI.StopConfiguration: - anyOf: - - type: string - - type: array + - thread + description: The object type, which is always `thread`. + x-stainless-const: true + created_at: + type: integer + format: unixtime + description: The Unix timestamp (in seconds) for when the thread was created. + tool_resources: + anyOf: + - $ref: '#/components/schemas/OpenAI.ThreadObjectToolResources' + - type: 'null' + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + description: Represents a thread that contains [messages](https://platform.openai.com/docs/api-reference/messages). + title: Thread + x-oaiMeta: + name: The thread object + beta: true + example: | + { + "id": "thread_abc123", + "object": "thread", + "created_at": 1698107661, + "metadata": {} + } + OpenAI.ThreadObjectToolResources: + type: object + properties: + code_interpreter: + $ref: '#/components/schemas/OpenAI.ThreadObjectToolResourcesCodeInterpreter' + file_search: + $ref: '#/components/schemas/OpenAI.ThreadObjectToolResourcesFileSearch' + OpenAI.ThreadObjectToolResourcesCodeInterpreter: + type: object + properties: + file_ids: + type: array items: type: string - description: |- - Not supported with latest reasoning models `o3` and `o4-mini`. - - Up to 4 sequences where the API will stop generating further tokens. The - returned text will not contain the stop sequence. + maxItems: 20 + OpenAI.ThreadObjectToolResourcesFileSearch: + type: object + properties: + vector_store_ids: + type: array + items: + type: string + maxItems: 1 + OpenAI.TokenLimits: + type: object + properties: + post_instructions: + type: integer + minimum: 0 OpenAI.Tool: type: object required: @@ -14672,32 +24397,65 @@ components: discriminator: propertyName: type mapping: + code_interpreter: '#/components/schemas/OpenAI.CodeInterpreterTool' function: '#/components/schemas/OpenAI.FunctionTool' file_search: '#/components/schemas/OpenAI.FileSearchTool' computer_use_preview: '#/components/schemas/OpenAI.ComputerUsePreviewTool' - web_search_preview: '#/components/schemas/OpenAI.WebSearchPreviewTool' - code_interpreter: '#/components/schemas/OpenAI.CodeInterpreterTool' - image_generation: '#/components/schemas/OpenAI.ImageGenTool' - local_shell: '#/components/schemas/OpenAI.LocalShellTool' + web_search: '#/components/schemas/OpenAI.WebSearchTool' mcp: '#/components/schemas/OpenAI.MCPTool' - OpenAI.ToolChoiceObject: + image_generation: '#/components/schemas/OpenAI.ImageGenTool' + local_shell: '#/components/schemas/OpenAI.LocalShellToolParam' + shell: '#/components/schemas/OpenAI.FunctionShellToolParam' + custom: '#/components/schemas/OpenAI.CustomToolParam' + web_search_preview: '#/components/schemas/OpenAI.WebSearchPreviewTool' + apply_patch: '#/components/schemas/OpenAI.ApplyPatchToolParam' + description: A tool that can be used to generate a response. + OpenAI.ToolChoiceAllowed: type: object required: - type + - mode + - tools properties: type: - $ref: '#/components/schemas/OpenAI.ToolChoiceObjectType' - discriminator: - propertyName: type - mapping: - file_search: '#/components/schemas/OpenAI.ToolChoiceObjectFileSearch' - computer_use_preview: '#/components/schemas/OpenAI.ToolChoiceObjectComputer' - web_search_preview: '#/components/schemas/OpenAI.ToolChoiceObjectWebSearch' - image_generation: '#/components/schemas/OpenAI.ToolChoiceObjectImageGen' - code_interpreter: '#/components/schemas/OpenAI.ToolChoiceObjectCodeInterpreter' - function: '#/components/schemas/OpenAI.ToolChoiceObjectFunction' - mcp: '#/components/schemas/OpenAI.ToolChoiceObjectMCP' - OpenAI.ToolChoiceObjectCodeInterpreter: + type: string + enum: + - allowed_tools + description: Allowed tool configuration type. Always `allowed_tools`. + x-stainless-const: true + mode: + type: string + enum: + - auto + - required + description: |- + Constrains the tools available to the model to a pre-defined set. + + `auto` allows the model to pick from among the allowed tools and generate a + message. + + `required` requires the model to call one or more of the allowed tools. + tools: + type: array + items: + type: object + unevaluatedProperties: {} + description: |- + A list of tool definitions that the model should be allowed to call. + + For the Responses API, the list of tool definitions might look like: + ```json + [ + { "type": "function", "name": "get_weather" }, + { "type": "mcp", "server_label": "deepwiki" }, + { "type": "image_generation" } + ] + ``` + allOf: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: Constrains the tools available to the model to a pre-defined set. + title: Allowed tools + OpenAI.ToolChoiceCodeInterpreter: type: object required: - type @@ -14707,8 +24465,11 @@ components: enum: - code_interpreter allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - OpenAI.ToolChoiceObjectComputer: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: |- + Indicates that the model should use a built-in tool to generate a response. + [Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools). + OpenAI.ToolChoiceComputerUsePreview: type: object required: - type @@ -14718,8 +24479,30 @@ components: enum: - computer_use_preview allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - OpenAI.ToolChoiceObjectFileSearch: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: |- + Indicates that the model should use a built-in tool to generate a response. + [Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools). + OpenAI.ToolChoiceCustom: + type: object + required: + - type + - name + properties: + type: + type: string + enum: + - custom + description: For custom tool calling, the type is always `custom`. + x-stainless-const: true + name: + type: string + description: The name of the custom tool to call. + allOf: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: Use this option to force the model to call a specific custom tool. + title: Custom tool + OpenAI.ToolChoiceFileSearch: type: object required: - type @@ -14729,8 +24512,11 @@ components: enum: - file_search allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - OpenAI.ToolChoiceObjectFunction: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: |- + Indicates that the model should use a built-in tool to generate a response. + [Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools). + OpenAI.ToolChoiceFunction: type: object required: - type @@ -14741,13 +24527,15 @@ components: enum: - function description: For function calling, the type is always `function`. + x-stainless-const: true name: type: string description: The name of the function to call. allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' description: Use this option to force the model to call a specific function. - OpenAI.ToolChoiceObjectImageGen: + title: Function tool + OpenAI.ToolChoiceImageGeneration: type: object required: - type @@ -14757,8 +24545,11 @@ components: enum: - image_generation allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' - OpenAI.ToolChoiceObjectMCP: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' + description: |- + Indicates that the model should use a built-in tool to generate a response. + [Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools). + OpenAI.ToolChoiceMCP: type: object required: - type @@ -14769,32 +24560,77 @@ components: enum: - mcp description: For MCP tools, the type is always `mcp`. + x-stainless-const: true server_label: type: string description: The label of the MCP server to use. name: - type: string - nullable: true - description: The name of the tool to call on the server. + anyOf: + - type: string + - type: 'null' allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' description: Use this option to force the model to call a specific tool on a remote MCP server. - OpenAI.ToolChoiceObjectType: + title: MCP tool + OpenAI.ToolChoiceOptions: + type: string + enum: + - none + - auto + - required + description: |- + Controls which (if any) tool is called by the model. + + `none` means the model will not call any tool and instead generates a message. + + `auto` means the model can pick between generating a message or calling one or + more tools. + + `required` means the model must call one or more tools. + title: Tool choice mode + OpenAI.ToolChoiceParam: + type: object + required: + - type + properties: + type: + $ref: '#/components/schemas/OpenAI.ToolChoiceParamType' + discriminator: + propertyName: type + mapping: + allowed_tools: '#/components/schemas/OpenAI.ToolChoiceAllowed' + mcp: '#/components/schemas/OpenAI.ToolChoiceMCP' + custom: '#/components/schemas/OpenAI.ToolChoiceCustom' + apply_patch: '#/components/schemas/OpenAI.SpecificApplyPatchParam' + shell: '#/components/schemas/OpenAI.SpecificFunctionShellParam' + file_search: '#/components/schemas/OpenAI.ToolChoiceFileSearch' + web_search_preview: '#/components/schemas/OpenAI.ToolChoiceWebSearchPreview' + computer_use_preview: '#/components/schemas/OpenAI.ToolChoiceComputerUsePreview' + web_search_preview_2025_03_11: '#/components/schemas/OpenAI.ToolChoiceWebSearchPreview20250311' + image_generation: '#/components/schemas/OpenAI.ToolChoiceImageGeneration' + code_interpreter: '#/components/schemas/OpenAI.ToolChoiceCodeInterpreter' + description: |- + How the model should select which tool (or tools) to use when generating + a response. See the `tools` parameter to see how to specify which tools + the model can call. + OpenAI.ToolChoiceParamType: anyOf: - type: string - type: string enum: - - file_search + - allowed_tools - function - - computer_use_preview + - mcp + - custom + - apply_patch + - shell + - file_search - web_search_preview + - computer_use_preview + - web_search_preview_2025_03_11 - image_generation - code_interpreter - - mcp - description: |- - Indicates that the model should use a built-in tool to generate a response. - [Learn more about built-in tools](/docs/guides/tools). - OpenAI.ToolChoiceObjectWebSearch: + OpenAI.ToolChoiceWebSearchPreview: type: object required: - type @@ -14804,102 +24640,255 @@ components: enum: - web_search_preview allOf: - - $ref: '#/components/schemas/OpenAI.ToolChoiceObject' + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' description: 'Note: web_search is not yet available via Azure OpenAI.' - OpenAI.ToolChoiceOptions: - type: string - enum: - - none - - auto - - required + OpenAI.ToolChoiceWebSearchPreview20250311: + type: object + required: + - type + properties: + type: + type: string + enum: + - web_search_preview_2025_03_11 + allOf: + - $ref: '#/components/schemas/OpenAI.ToolChoiceParam' description: |- - Controls which (if any) tool is called by the model. - - `none` means the model will not call any tool and instead generates a message. - - `auto` means the model can pick between generating a message or calling one or - more tools. - - `required` means the model must call one or more tools. + Indicates that the model should use a built-in tool to generate a response. + [Learn more about built-in tools](https: //platform.openai.com/docs/guides/tools). OpenAI.ToolType: anyOf: - type: string - type: string enum: - - file_search - function + - file_search - computer_use_preview - - web_search_preview + - web_search - mcp - code_interpreter - image_generation - local_shell - description: A tool that can be used to generate a response. + - shell + - custom + - web_search_preview + - apply_patch + OpenAI.ToolsArray: + type: array + items: + $ref: '#/components/schemas/OpenAI.Tool' + description: |- + An array of tools the model may call while generating a response. You + can specify which tool to use by setting the `tool_choice` parameter. + + We support the following categories of tools: + - **Built-in tools**: Tools that are provided by OpenAI that extend the + model's capabilities, like [web search](https://platform.openai.com/docs/guides/tools-web-search) + or [file search](https://platform.openai.com/docs/guides/tools-file-search). Learn more about + [built-in tools](https://platform.openai.com/docs/guides/tools). + - **MCP Tools**: Integrations with third-party systems via custom MCP servers + or predefined connectors such as Google Drive and SharePoint. Learn more about + [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp). + - **Function calls (custom tools)**: Functions that are defined by you, + enabling the model to call your own code with strongly typed arguments + and outputs. Learn more about + [function calling](https://platform.openai.com/docs/guides/function-calling). You can also use + custom tools to call your own code. OpenAI.TopLogProb: type: object required: - - token - - logprob - - bytes + - token + - logprob + - bytes + properties: + token: + type: string + logprob: + type: number + bytes: + type: array + items: + type: integer + description: The top log probability of a token. + title: Top log probability + OpenAI.TranscriptionSegment: + type: object + required: + - id + - seek + - start + - end + - text + - tokens + - temperature + - avg_logprob + - compression_ratio + - no_speech_prob + properties: + id: + type: integer + description: Unique identifier of the segment. + seek: + type: integer + description: Seek offset of the segment. + start: + type: number + format: float + description: Start time of the segment in seconds. + end: + type: number + format: float + description: End time of the segment in seconds. + text: + type: string + description: Text content of the segment. + tokens: + type: array + items: + type: integer + description: Array of token IDs for the text content. + temperature: + type: number + format: float + description: Temperature parameter used for generating the segment. + avg_logprob: + type: number + format: float + description: Average logprob of the segment. If the value is lower than -1, consider the logprobs failed. + compression_ratio: + type: number + format: float + description: Compression ratio of the segment. If the value is greater than 2.4, consider the compression failed. + no_speech_prob: + type: number + format: float + description: Probability of no speech in the segment. If the value is higher than 1.0 and the `avg_logprob` is below -1, consider this segment silent. + OpenAI.TranscriptionWord: + type: object + required: + - word + - start + - end + properties: + word: + type: string + description: The text content of the word. + start: + type: number + format: float + description: Start time of the word in seconds. + end: + type: number + format: float + description: End time of the word in seconds. + OpenAI.TruncationObject: + type: object + required: + - type + properties: + type: + type: string + enum: + - auto + - last_messages + description: The truncation strategy to use for the thread. The default is `auto`. If set to `last_messages`, the thread will be truncated to the n most recent messages in the thread. When set to `auto`, messages in the middle of the thread will be dropped to fit the context length of the model, `max_prompt_tokens`. + last_messages: + anyOf: + - type: integer + - type: 'null' + description: Controls for how a thread will be truncated prior to the run. Use this to control the initial context window of the run. + title: Thread Truncation Controls + OpenAI.Type: + type: object + required: + - type + - text properties: - token: + type: type: string - logprob: - type: number - format: float - bytes: - type: array - items: - type: integer - format: int32 - description: The top log probability of a token. + enum: + - type + description: |- + Specifies the event type. For a type action, this property is + always set to `type`. + x-stainless-const: true + default: type + text: + type: string + description: The text to type. + allOf: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: An action to type in text. + title: Type + OpenAI.UpdateConversationBody: + type: object + required: + - metadata + properties: + metadata: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + description: |- + Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. + Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters. OpenAI.UpdateVectorStoreFileAttributesRequest: type: object required: - attributes properties: attributes: - type: object - allOf: + anyOf: - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' - nullable: true + - type: 'null' + x-oaiMeta: + name: Update vector store file attributes request OpenAI.UpdateVectorStoreRequest: type: object properties: name: - type: string - nullable: true + anyOf: + - type: string + - type: 'null' description: The name of the vector store. expires_after: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.VectorStoreExpirationAfter' - nullable: true + $ref: '#/components/schemas/OpenAI.VectorStoreExpirationAfter' metadata: - type: object - additionalProperties: - type: string - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map - OpenAI.ValidateGraderRequest: + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' + OpenAI.UrlCitationBody: type: object required: - - grader + - type + - url + - start_index + - end_index + - title properties: - grader: - anyOf: - - $ref: '#/components/schemas/OpenAI.GraderStringCheck' - - $ref: '#/components/schemas/OpenAI.GraderTextSimilarity' - - $ref: '#/components/schemas/OpenAI.GraderPython' - - $ref: '#/components/schemas/OpenAI.GraderScoreModel' - - $ref: '#/components/schemas/OpenAI.GraderMulti' - description: The grader used for the fine-tuning job. + type: + type: string + enum: + - url_citation + description: The type of the URL citation. Always `url_citation`. + x-stainless-const: true + default: url_citation + url: + type: string + description: The URL of the web resource. + start_index: + type: integer + description: The index of the first character of the URL citation in the message. + end_index: + type: integer + description: The index of the last character of the URL citation in the message. + title: + type: string + description: The title of the web resource. + allOf: + - $ref: '#/components/schemas/OpenAI.Annotation' + description: A citation for a web resource used to generate a model response. + title: URL citation OpenAI.ValidateGraderResponse: type: object properties: @@ -14910,7 +24899,9 @@ components: - $ref: '#/components/schemas/OpenAI.GraderPython' - $ref: '#/components/schemas/OpenAI.GraderScoreModel' - $ref: '#/components/schemas/OpenAI.GraderMulti' + - $ref: '#/components/schemas/GraderEndpoint' description: The grader used for the fine-tuning job. + title: ValidateGraderResponse OpenAI.VectorStoreExpirationAfter: type: object required: @@ -14922,23 +24913,16 @@ components: enum: - last_active_at description: 'Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`.' + x-stainless-const: true days: type: integer - format: int32 minimum: 1 maximum: 365 description: The number of days after the anchor time that the vector store will expire. description: The expiration policy for a vector store. + title: Vector store expiration policy OpenAI.VectorStoreFileAttributes: type: object - additionalProperties: - anyOf: - - type: string - - type: boolean - - type: integer - format: int32 - - type: number - format: float description: |- Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured @@ -14964,13 +24948,14 @@ components: enum: - vector_store.files_batch description: The object type, which is always `vector_store.file_batch`. + x-stainless-const: true created_at: type: integer format: unixtime description: The Unix timestamp (in seconds) for when the vector store files batch was created. vector_store_id: type: string - description: The ID of the [vector store](/docs/api-reference/vector-stores/object) that the [File](/docs/api-reference/files) is attached to. + description: The ID of the [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) that the [File](https://platform.openai.com/docs/api-reference/files) is attached to. status: type: string enum: @@ -14980,35 +24965,46 @@ components: - failed description: The status of the vector store files batch, which can be either `in_progress`, `completed`, `cancelled` or `failed`. file_counts: - type: object - properties: - in_progress: - type: integer - format: int32 - description: The number of files that are currently being processed. - completed: - type: integer - format: int32 - description: The number of files that have been processed. - failed: - type: integer - format: int32 - description: The number of files that have failed to process. - cancelled: - type: integer - format: int32 - description: The number of files that where cancelled. - total: - type: integer - format: int32 - description: The total number of files. - required: - - in_progress - - completed - - failed - - cancelled - - total + $ref: '#/components/schemas/OpenAI.VectorStoreFileBatchObjectFileCounts' description: A batch of files attached to a vector store. + title: Vector store file batch + x-oaiMeta: + name: The vector store files batch object + beta: true + example: | + { + "id": "vsfb_123", + "object": "vector_store.files_batch", + "created_at": 1698107661, + "vector_store_id": "vs_abc123", + "status": "completed", + "file_counts": { + "in_progress": 0, + "completed": 100, + "failed": 0, + "cancelled": 0, + "total": 100 + } + } + OpenAI.VectorStoreFileBatchObjectFileCounts: + type: object + required: + - in_progress + - completed + - failed + - cancelled + - total + properties: + in_progress: + type: integer + completed: + type: integer + failed: + type: integer + cancelled: + type: integer + total: + type: integer OpenAI.VectorStoreFileObject: type: object required: @@ -15028,9 +25024,9 @@ components: enum: - vector_store.file description: The object type, which is always `vector_store.file`. + x-stainless-const: true usage_bytes: type: integer - format: int32 description: The total vector store usage in bytes. Note that this may be different from the original file size. created_at: type: integer @@ -15038,7 +25034,7 @@ components: description: The Unix timestamp (in seconds) for when the vector store file was created. vector_store_id: type: string - description: The ID of the [vector store](/docs/api-reference/vector-stores/object) that the [File](/docs/api-reference/files) is attached to. + description: The ID of the [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object) that the [File](https://platform.openai.com/docs/api-reference/files) is attached to. status: type: string enum: @@ -15048,33 +25044,51 @@ components: - failed description: The status of the vector store file, which can be either `in_progress`, `completed`, `cancelled`, or `failed`. The status `completed` indicates that the vector store file is ready for use. last_error: - type: object - properties: - code: - type: string - enum: - - server_error - - unsupported_file - - invalid_file - description: One of `server_error` or `rate_limit_exceeded`. - message: - type: string - description: A human-readable description of the error. - required: - - code - - message - nullable: true - description: The last error associated with this vector store file. Will be `null` if there are no errors. + anyOf: + - $ref: '#/components/schemas/OpenAI.VectorStoreFileObjectLastError' + - type: 'null' chunking_strategy: - allOf: - - $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponseParam' - description: The strategy used to chunk the file. + $ref: '#/components/schemas/OpenAI.ChunkingStrategyResponse' attributes: - type: object - allOf: + anyOf: - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' - nullable: true + - type: 'null' description: A list of files attached to a vector store. + title: Vector store files + x-oaiMeta: + name: The vector store file object + beta: true + example: | + { + "id": "file-abc123", + "object": "vector_store.file", + "usage_bytes": 1234, + "created_at": 1698107661, + "vector_store_id": "vs_abc123", + "status": "completed", + "last_error": null, + "chunking_strategy": { + "type": "static", + "static": { + "max_chunk_size_tokens": 800, + "chunk_overlap_tokens": 400 + } + } + } + OpenAI.VectorStoreFileObjectLastError: + type: object + required: + - code + - message + properties: + code: + type: string + enum: + - server_error + - unsupported_file + - invalid_file + message: + type: string OpenAI.VectorStoreObject: type: object required: @@ -15096,6 +25110,7 @@ components: enum: - vector_store description: The object type, which is always `vector_store`. + x-stainless-const: true created_at: type: integer format: unixtime @@ -15105,37 +25120,9 @@ components: description: The name of the vector store. usage_bytes: type: integer - format: int32 description: The total number of bytes used by the files in the vector store. file_counts: - type: object - properties: - in_progress: - type: integer - format: int32 - description: The number of files that are currently being processed. - completed: - type: integer - format: int32 - description: The number of files that have been successfully processed. - failed: - type: integer - format: int32 - description: The number of files that have failed to process. - cancelled: - type: integer - format: int32 - description: The number of files that were cancelled. - total: - type: integer - format: int32 - description: The total number of files. - required: - - in_progress - - completed - - failed - - cancelled - - total + $ref: '#/components/schemas/OpenAI.VectorStoreObjectFileCounts' status: type: string enum: @@ -15146,29 +25133,202 @@ components: expires_after: $ref: '#/components/schemas/OpenAI.VectorStoreExpirationAfter' expires_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: unixtime - nullable: true - description: The Unix timestamp (in seconds) for when the vector store will expire. + format: unixTimestamp last_active_at: + anyOf: + - type: string + format: date-time + - type: 'null' type: integer - format: unixtime - nullable: true - description: The Unix timestamp (in seconds) for when the vector store was last active. + format: unixTimestamp metadata: - type: object - additionalProperties: - type: string - nullable: true - description: |- - Set of 16 key-value pairs that can be attached to an object. This can be - useful for storing additional information about the object in a structured - format, and querying for objects via API or the dashboard. - - Keys are strings with a maximum length of 64 characters. Values are strings - with a maximum length of 512 characters. - x-oaiTypeLabel: map + anyOf: + - $ref: '#/components/schemas/OpenAI.Metadata' + - type: 'null' description: A vector store is a collection of processed files can be used by the `file_search` tool. + title: Vector store + x-oaiMeta: + name: The vector store object + example: | + { + "id": "vs_123", + "object": "vector_store", + "created_at": 1698107661, + "usage_bytes": 123456, + "last_active_at": 1698107661, + "name": "my_vector_store", + "status": "completed", + "file_counts": { + "in_progress": 0, + "completed": 100, + "cancelled": 0, + "failed": 0, + "total": 100 + }, + "last_used_at": 1698107661 + } + OpenAI.VectorStoreObjectFileCounts: + type: object + required: + - in_progress + - completed + - failed + - cancelled + - total + properties: + in_progress: + type: integer + completed: + type: integer + failed: + type: integer + cancelled: + type: integer + total: + type: integer + OpenAI.VectorStoreSearchRequest: + type: object + required: + - query + properties: + query: + anyOf: + - type: string + - type: array + items: + type: string + description: A query string for a search + rewrite_query: + type: boolean + description: Whether to rewrite the natural language query for vector search. + max_num_results: + type: integer + minimum: 1 + maximum: 50 + description: The maximum number of results to return. This number should be between 1 and 50 inclusive. + default: 10 + filters: + anyOf: + - $ref: '#/components/schemas/OpenAI.ComparisonFilter' + - $ref: '#/components/schemas/OpenAI.CompoundFilter' + description: A filter to apply based on file attributes. + ranking_options: + allOf: + - $ref: '#/components/schemas/OpenAI.VectorStoreSearchRequestRankingOptions' + description: Ranking options for search. + x-oaiMeta: + name: Vector store search request + OpenAI.VectorStoreSearchRequestRankingOptions: + type: object + properties: + ranker: + type: string + enum: + - none + - auto + - default-2024-11-15 + default: auto + score_threshold: + type: number + minimum: 0 + maximum: 1 + OpenAI.VectorStoreSearchResultContentObject: + type: object + required: + - type + - text + properties: + type: + type: string + enum: + - text + description: The type of content. + text: + type: string + description: The text content returned from search. + x-oaiMeta: + name: Vector store search result content object + OpenAI.VectorStoreSearchResultItem: + type: object + required: + - file_id + - filename + - score + - attributes + - content + properties: + file_id: + type: string + description: The ID of the vector store file. + filename: + type: string + description: The name of the vector store file. + score: + type: number + minimum: 0 + maximum: 1 + description: The similarity score for the result. + attributes: + anyOf: + - $ref: '#/components/schemas/OpenAI.VectorStoreFileAttributes' + - type: 'null' + content: + type: array + items: + $ref: '#/components/schemas/OpenAI.VectorStoreSearchResultContentObject' + description: Content chunks from the file. + x-oaiMeta: + name: Vector store search result item + OpenAI.VectorStoreSearchResultsPage: + type: object + required: + - object + - search_query + - data + - has_more + - next_page + properties: + object: + type: string + enum: + - vector_store.search_results.page + description: The object type, which is always `vector_store.search_results.page` + x-stainless-const: true + search_query: + type: array + items: + type: string + data: + type: array + items: + $ref: '#/components/schemas/OpenAI.VectorStoreSearchResultItem' + description: The list of search result items. + has_more: + type: boolean + description: Indicates if there are more results to fetch. + next_page: + anyOf: + - type: string + - type: 'null' + x-oaiMeta: + name: Vector store search results page + OpenAI.Verbosity: + anyOf: + - type: string + enum: + - low + - medium + - high + - type: 'null' + description: |- + Constrains the verbosity of the model's response. Lower values will result in + more concise responses, while higher values will result in more verbose responses. + Currently supported values are `low`, `medium`, and `high`. OpenAI.VoiceIdsShared: anyOf: - type: string @@ -15179,25 +25339,29 @@ components: - ballad - coral - echo - - fable - - onyx - - nova - sage - shimmer - verse - OpenAI.WebSearchAction: + - marin + - cedar + OpenAI.Wait: type: object required: - type properties: type: - $ref: '#/components/schemas/OpenAI.WebSearchActionType' - discriminator: - propertyName: type - mapping: - find: '#/components/schemas/OpenAI.WebSearchActionFind' - open_page: '#/components/schemas/OpenAI.WebSearchActionOpenPage' - search: '#/components/schemas/OpenAI.WebSearchActionSearch' + type: string + enum: + - wait + description: |- + Specifies the event type. For a wait action, this property is + always set to `wait`. + x-stainless-const: true + default: wait + allOf: + - $ref: '#/components/schemas/OpenAI.ComputerAction' + description: A wait action. + title: Wait OpenAI.WebSearchActionFind: type: object required: @@ -15210,6 +25374,7 @@ components: enum: - find description: The action type. + x-stainless-const: true url: type: string format: uri @@ -15217,9 +25382,8 @@ components: pattern: type: string description: The pattern or text to search for within the page. - allOf: - - $ref: '#/components/schemas/OpenAI.WebSearchAction' description: 'Action type "find": Searches for a pattern within a loaded page.' + title: Find action OpenAI.WebSearchActionOpenPage: type: object required: @@ -15231,13 +25395,13 @@ components: enum: - open_page description: The action type. + x-stainless-const: true url: type: string format: uri description: The URL opened by the model. - allOf: - - $ref: '#/components/schemas/OpenAI.WebSearchAction' description: Action type "open_page" - Opens a specific URL from search results. + title: Open page action OpenAI.WebSearchActionSearch: type: object required: @@ -15249,194 +25413,128 @@ components: enum: - search description: The action type. + x-stainless-const: true query: type: string description: The search query. - allOf: - - $ref: '#/components/schemas/OpenAI.WebSearchAction' + sources: + type: array + items: + $ref: '#/components/schemas/OpenAI.WebSearchActionSearchSources' + description: The sources used in the search. + title: Web search sources description: Action type "search" - Performs a web search query. - OpenAI.WebSearchActionType: - type: string - enum: - - search - - open_page - - find - OpenAI.WebSearchPreviewTool: + title: Search action + OpenAI.WebSearchActionSearchSources: type: object required: - type + - url properties: type: type: string enum: - - web_search_preview - description: The type of the web search tool. One of `web_search_preview` or `web_search_preview_2025_03_11`. - user_location: - type: object - allOf: - - $ref: '#/components/schemas/OpenAI.Location' - nullable: true - description: The user's location. - search_context_size: + - url + x-stainless-const: true + url: + type: string + OpenAI.WebSearchApproximateLocation: + type: object + properties: + type: type: string enum: - - low - - medium - - high - description: High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default. - allOf: - - $ref: '#/components/schemas/OpenAI.Tool' - description: 'Note: web_search is not yet available via Azure OpenAI.' - OpenAI.WebSearchToolCallItemParam: + - approximate + description: The type of location approximation. Always `approximate`. + x-stainless-const: true + default: approximate + country: + anyOf: + - type: string + - type: 'null' + region: + anyOf: + - type: string + - type: 'null' + city: + anyOf: + - type: string + - type: 'null' + timezone: + anyOf: + - type: string + - type: 'null' + description: The approximate location of the user. + title: Web search approximate location + OpenAI.WebSearchPreviewTool: type: object required: - type - - action properties: type: type: string enum: - - web_search_call - action: + - web_search_preview + description: The type of the web search tool. One of `web_search_preview` or `web_search_preview_2025_03_11`. + x-stainless-const: true + default: web_search_preview + user_location: + anyOf: + - $ref: '#/components/schemas/OpenAI.ApproximateLocation' + - type: 'null' + search_context_size: allOf: - - $ref: '#/components/schemas/OpenAI.WebSearchAction' - description: |- - An object describing the specific action taken in this web search call. - Includes details on how the model used the web (search, open_page, find). + - $ref: '#/components/schemas/OpenAI.SearchContextSize' + description: High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default. allOf: - - $ref: '#/components/schemas/OpenAI.ItemParam' + - $ref: '#/components/schemas/OpenAI.Tool' description: 'Note: web_search is not yet available via Azure OpenAI.' - OpenAI.WebSearchToolCallItemResource: + title: Web search preview + OpenAI.WebSearchTool: type: object required: - type - - status - - action properties: type: type: string enum: - - web_search_call - status: + - web_search + description: The type of the web search tool. One of `web_search` or `web_search_2025_08_26`. + default: web_search + filters: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchToolFilters' + - type: 'null' + user_location: + anyOf: + - $ref: '#/components/schemas/OpenAI.WebSearchApproximateLocation' + - type: 'null' + search_context_size: type: string enum: - - in_progress - - searching - - completed - - failed - description: The status of the web search tool call. - action: - allOf: - - $ref: '#/components/schemas/OpenAI.WebSearchAction' - description: |- - An object describing the specific action taken in this web search call. - Includes details on how the model used the web (search, open_page, find). + - low + - medium + - high + description: High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default. + default: medium allOf: - - $ref: '#/components/schemas/OpenAI.ItemResource' + - $ref: '#/components/schemas/OpenAI.Tool' description: 'Note: web_search is not yet available via Azure OpenAI.' - PineconeChatDataSource: + title: Web search + OpenAI.WebSearchToolFilters: type: object - required: - - type - - parameters properties: - type: - type: string - enum: - - pinecone - description: The discriminated type identifier, which is always 'pinecone'. - parameters: - type: object - properties: - top_n_documents: - type: integer - format: int32 - description: The configured number of documents to feature in the query. - in_scope: - type: boolean - description: Whether queries should be restricted to use of the indexed data. - strictness: - type: integer - format: int32 - minimum: 1 - maximum: 5 - description: |- - The configured strictness of the search relevance filtering. - Higher strictness will increase precision but lower recall of the answer. - max_search_queries: - type: integer - format: int32 - description: |- - The maximum number of rewritten queries that should be sent to the search provider for a single user message. - By default, the system will make an automatic determination. - allow_partial_result: - type: boolean - description: |- - If set to true, the system will allow partial search results to be used and the request will fail if all - partial queries fail. If not specified or specified as false, the request will fail if any search query fails. - default: false - include_contexts: - type: array + allowed_domains: + anyOf: + - type: array items: type: string - enum: - - citations - - intent - - all_retrieved_documents - maxItems: 3 - description: |- - The output context properties to include on the response. - By default, citations and intent will be requested. - default: - - citations - - intent - environment: - type: string - description: The environment name to use with Pinecone. - index_name: - type: string - description: The name of the Pinecone database index to use. - authentication: - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceApiKeyAuthenticationOptions' - description: |- - The authentication mechanism to use with Pinecone. - Supported authentication mechanisms for Pinecone include: API key. - embedding_dependency: - allOf: - - $ref: '#/components/schemas/AzureChatDataSourceVectorizationSource' - description: |- - The vectorization source to use as an embedding dependency for the Pinecone data source. - Supported vectorization sources for Pinecone include: deployment name. - fields_mapping: - type: object - properties: - content_fields: - type: array - items: - type: string - title_field: - type: string - url_field: - type: string - filepath_field: - type: string - content_fields_separator: - type: string - required: - - content_fields - description: |- - Field mappings to apply to data used by the Pinecone data source. - Note that content field mappings are required for Pinecone. - required: - - environment - - index_name - - authentication - - embedding_dependency - - fields_mapping - description: The parameter information to control the use of the Pinecone data source. - allOf: - - $ref: '#/components/schemas/AzureChatDataSource' + - type: 'null' + Order: + type: string + enum: + - asc + - desc ResponseFormatJSONSchemaRequest: type: object required: @@ -15450,109 +25548,50 @@ components: description: Type of response format json_schema: type: object - additionalProperties: {} + unevaluatedProperties: {} description: JSON Schema for the response format - ResponseModalities: - type: array - items: - type: string - enum: - - text - - audio - description: |- - Output types that you would like the model to generate. - Most models are capable of generating text, which is the default: - - `["text"]` - - The `gpt-4o-audio-preview` model can also be used to - [generate audio](/docs/guides/audio). To request that this model generate - both text and audio responses, you can use: - - `["text", "audio"]` - CreateVideoBody: - type: object - required: - - model - - prompt - properties: - model: - type: string - description: The name of the deployment to use for this request. - prompt: - type: string - minLength: 1 - description: Text prompt that describes the video to generate. - seconds: - allOf: - - $ref: '#/components/schemas/VideoSeconds' - description: Clip duration in seconds. Defaults to 4 seconds. - default: '4' - size: - allOf: - - $ref: '#/components/schemas/VideoSize' - description: Output resolution formatted as width x height. Defaults to 720x1280. - default: 720x1280 - CreateVideoBodyWithInputReference: - type: object - properties: - model: - type: string - description: The name of the deployment to use for this request. - prompt: - type: string - description: Text prompt that describes the video to generate. - seconds: - allOf: - - $ref: '#/components/schemas/VideoSeconds' - description: Clip duration in seconds. Defaults to 4 seconds. - size: - allOf: - - $ref: '#/components/schemas/VideoSize' - description: Output resolution formatted as width x height. Defaults to 720x1280. - input_reference: - type: string - format: binary - description: Optional image reference that guides generation. - x-oaiTypeLabel: file - required: - - model - - prompt - - input_reference - DeletedVideoResource: + SpeechGenerationResponse: type: object required: - - object - - deleted - - id + - audio properties: - object: - type: string - description: The object type that signals the deletion response. - default: video.deleted - deleted: - type: boolean - description: Indicates that the video resource was deleted. - default: true - id: + audio: type: string - description: Identifier of the deleted video. - description: Confirmation payload returned after deleting a video. - Error: + contentEncoding: base64 + description: The generated audio, generated in the requested audio output format. + description: A representation of a response for a text-to-speech operation. + SpeechGenerationResponseFormat: + oneOf: + - type: string + - type: string + enum: + - mp3 + - opus + - aac + - flac + - wav + - pcm + description: The supported audio output formats for text-to-speech. + SpeechVoice: + anyOf: + - type: string + - type: string + enum: + - alloy + - echo + - fable + - onyx + - nova + - shimmer + description: The available voices for text-to-speech. + VideoContent: type: object required: - - code - - message + - content properties: - code: - type: string - message: + content: type: string - Order: - type: string - enum: - - asc - - desc + contentEncoding: base64 VideoContentVariant: anyOf: - type: string @@ -15562,6 +25601,14 @@ components: - spritesheet - type: string description: Selectable asset variants for downloaded content. + VideoIdParameter: + type: object + required: + - video-id + properties: + video-id: + type: string + description: The ID of the video to use for the Azure OpenAI request. VideoList: type: object required: @@ -15674,14 +25721,6 @@ components: - failed - type: string description: Lifecycle state of a generated video. - parameters: - VideoIdParameter: - name: video-id - in: path - required: true - description: The ID of the video to use for the Azure OpenAI request. - schema: - type: string securitySchemes: ApiKeyAuth: type: apiKey From 407461a3f0352d35148bc0364537f6c33ab73870 Mon Sep 17 00:00:00 2001 From: Kyle Zhang Date: Tue, 16 Dec 2025 10:10:22 +0800 Subject: [PATCH 032/117] [TSV] share a helper to get the last segment of emitter-output-dir (#39163) * feat: enhance variable resolution in TspconfigEmitterOptionsSubRuleBase and add test case for recursive variable resolution * fix: update error messages for emitter output directory validation and streamline variable resolution logic * fix: refactor emitter output directory rules for improved consistency and clarity * fix: update variable type annotations for improved type safety in emitter options --------- Co-authored-by: Kyle Zhang --- .../src/rules/sdk-tspconfig-validation.ts | 190 ++++++++++++------ .../test/sdk-tspconfig-validation.test.ts | 13 ++ 2 files changed, 138 insertions(+), 65 deletions(-) diff --git a/eng/tools/typespec-validation/src/rules/sdk-tspconfig-validation.ts b/eng/tools/typespec-validation/src/rules/sdk-tspconfig-validation.ts index 4cb64b970a09..7d25d569f06f 100644 --- a/eng/tools/typespec-validation/src/rules/sdk-tspconfig-validation.ts +++ b/eng/tools/typespec-validation/src/rules/sdk-tspconfig-validation.ts @@ -118,9 +118,10 @@ class TspconfigEmitterOptionsSubRuleBase extends TspconfigSubRuleBase { return this.emitterName; } - protected tryFindOption(config: any): Record | undefined { + protected tryFindOption(config: any, keyToValidate?: string): Record | undefined { + const key = keyToValidate ?? this.keyToValidate; let option: Record | undefined = config?.options?.[this.emitterName]; - for (const segment of this.keyToValidate.split(".")) { + for (const segment of key.split(".")) { if (option && typeof option === "object" && !Array.isArray(option) && segment in option) option = option![segment]; else return undefined; @@ -128,6 +129,119 @@ class TspconfigEmitterOptionsSubRuleBase extends TspconfigSubRuleBase { return option; } + protected resolveVariables( + value: string, + config: Record, + ): { resolved: string; error?: string } { + let resolvedValue = value; + const variablePattern = /\{([^}]+)\}/g; + const maxIterations = 10; // Prevent infinite loops + let iterations = 0; + + // Keep resolving until no more variables are found or max iterations reached + while (resolvedValue.includes("{") && iterations < maxIterations) { + iterations++; + let hasUnresolvedVariables = false; + const currentValue = resolvedValue; + + // Reset regex lastIndex for each iteration + variablePattern.lastIndex = 0; + let match; + + while ((match = variablePattern.exec(currentValue)) !== null) { + const variableName = match[1]; + + // Try to resolve variable from multiple sources: + // 1. From the emitter's options (e.g., namespace, package-name) + // 2. From parameters (e.g., service-dir, output-dir) + // 3. From global options + let variableValue: string | undefined; + + // Check emitter options first + variableValue = config?.options?.[this.emitterName]?.[variableName]; + + // If not found, check parameters + if (!variableValue) { + variableValue = config?.parameters?.[variableName]?.default; + } + + // If not found, check global options (for variables like output-dir) + if (!variableValue) { + variableValue = config?.[variableName]; + } + + if (variableValue && typeof variableValue === "string") { + resolvedValue = resolvedValue.replace(`{${variableName}}`, variableValue); + } else { + hasUnresolvedVariables = true; + } + } + + // If no progress was made in this iteration and there are still unresolved variables, return error + if (hasUnresolvedVariables && resolvedValue === currentValue) { + const unresolvedMatch = resolvedValue.match(/\{([^}]+)\}/); + const unresolvedVar = unresolvedMatch ? unresolvedMatch[1] : "unknown"; + return { + resolved: resolvedValue, + error: `Could not resolve variable {${unresolvedVar}}. The variable is not defined in options.${this.emitterName}, parameters, or config`, + }; + } + + // If no more variables to resolve, break + if (!resolvedValue.includes("{")) { + break; + } + } + + if (iterations >= maxIterations && resolvedValue.includes("{")) { + return { + resolved: resolvedValue, + error: `Maximum resolution depth reached. Possible circular reference in variable resolution.`, + }; + } + + return { resolved: resolvedValue }; + } + + protected getPackageDirFromEmitterOutputDir(config: Record): { + resolved: string; + error?: string; + } { + const option = this.tryFindOption(config, "emitter-output-dir"); + if (option === undefined) { + return { + resolved: "", + error: `Failed to find "options.${this.emitterName}.emitter-output-dir"`, + }; + } + + const actualValue = option as unknown as undefined | string | boolean; + if (typeof actualValue !== "string") { + return { + resolved: "", + error: `The value of options.${this.emitterName}.emitter-output-dir "${actualValue}" must be a string`, + }; + } + // Handle various path formats with different prefixes + // Format 1: {output-dir}/{service-dir}/azure-mgmt-advisor + // Format 2: {service-dir}/azure-mgmt-advisor where service-dir might include {output-dir} + // Format 3: {output-dir}/{service-dir}/azadmin/settings where we need to validate "azadmin/settings" + + let extractedPath: string; + if (!actualValue.includes("/")) { + extractedPath = actualValue; + } else { + const pathParts = actualValue.split("/"); + const filteredParts = pathParts.filter( + (part) => !(part === "{output-dir}" || part === "{service-dir}"), + ); + extractedPath = filteredParts.join("/"); + } + + // Resolve variables in the extracted path + return this.resolveVariables(extractedPath, config); + } + protected validate(config: any): RuleResult { const option = this.tryFindOption(config); if (option === undefined) @@ -152,79 +266,26 @@ class TspconfigEmitterOptionsSubRuleBase extends TspconfigSubRuleBase { } class TspconfigEmitterOptionsEmitterOutputDirSubRuleBase extends TspconfigEmitterOptionsSubRuleBase { - private skipValidateNamespace: boolean; - - constructor( - emitterName: string, - keyToValidate: string, - expectedValue: ExpectedValueType, - skipValidateNamespace: boolean = false, - ) { + constructor(emitterName: string, keyToValidate: string, expectedValue: ExpectedValueType) { super(emitterName, keyToValidate, expectedValue); - this.skipValidateNamespace = skipValidateNamespace; } protected validate(config: any): RuleResult { - const option = this.tryFindOption(config); - if (option === undefined) + const result = this.getPackageDirFromEmitterOutputDir(config); + if (result.error) { return this.createFailedResult( - `Failed to find "options.${this.emitterName}.${this.keyToValidate}"`, + result.error, `Please add "options.${this.emitterName}.${this.keyToValidate}" with a path matching the SDK naming convention "${this.expectedValue}"`, ); - - const actualValue = option as unknown as undefined | string | boolean; - if (typeof actualValue !== "string") { - return this.createFailedResult( - `The value of options.${this.emitterName}.${this.keyToValidate} "${actualValue}" must be a string`, - `Please update the value of "options.${this.emitterName}.${this.keyToValidate}" to be a string path`, - ); } - let pathToValidate: string; - - // Handle various path formats with different prefixes - // Format 1: {output-dir}/{service-dir}/azure-mgmt-advisor - // Format 2: {service-dir}/azure-mgmt-advisor where service-dir might include {output-dir} - // Format 3: {output-dir}/{service-dir}/azadmin/settings where we need to validate "azadmin/settings" - - if (!actualValue.includes("/")) { - pathToValidate = actualValue; - } else { - const pathParts = actualValue.split("/"); - const filteredParts = pathParts.filter( - (part) => !(part === "{output-dir}" || part === "{service-dir}"), - ); - pathToValidate = filteredParts.join("/"); - } - - // Skip validation if pathToValidate is exactly {namespace} and skipValidateNamespace is true - if (pathToValidate === "{namespace}" && this.skipValidateNamespace) { - return { success: true }; - } - - // Resolve any variables in the pathToValidate - // Check if pathToValidate contains variables like {namespace} - const variableMatch = pathToValidate.match(/\{([^}]+)\}/); - if (variableMatch) { - const variableName = variableMatch[1]; - const variableValue = config?.options?.[this.emitterName]?.[variableName]; - - if (variableValue && typeof variableValue === "string") { - // Replace the variable with its value - pathToValidate = pathToValidate.replace(`{${variableName}}`, variableValue); - } else { - return this.createFailedResult( - `Could not resolve variable {${variableName}} in path "${pathToValidate}". The variable is not defined in options.${this.emitterName}`, - `Please define the ${variableName} variable in your configuration or use a direct path value`, - ); - } - } - - if (!this.validateValue(pathToValidate, this.expectedValue)) + // Validate the resolved path + if (!this.validateValue(result.resolved, this.expectedValue)) { return this.createFailedResult( - `The path part "${pathToValidate}" in options.${this.emitterName}.${this.keyToValidate} does not match the required format "${this.expectedValue}"`, + `The path part "${result.resolved}" in options.${this.emitterName}.${this.keyToValidate} does not match the required format "${this.expectedValue}"`, `Please update the emitter-output-dir path to follow the SDK naming convention`, ); + } return { success: true }; } @@ -540,8 +601,7 @@ export class TspConfigPythonMgmtEmitterOutputDirSubRule extends TspconfigEmitter super( "@azure-tools/typespec-python", "emitter-output-dir", - new RegExp(/^azure-mgmt(-[a-z]+){1,2}$/), - true, + new RegExp(/^azure[-.]mgmt([-.][a-z]+){1,2}$/), ); } protected skip(_: any, folder: string) { diff --git a/eng/tools/typespec-validation/test/sdk-tspconfig-validation.test.ts b/eng/tools/typespec-validation/test/sdk-tspconfig-validation.test.ts index 5f25258b3975..d8917a246698 100644 --- a/eng/tools/typespec-validation/test/sdk-tspconfig-validation.test.ts +++ b/eng/tools/typespec-validation/test/sdk-tspconfig-validation.test.ts @@ -610,6 +610,19 @@ options: success: false, subRules: [new TspConfigJavaMgmtEmitterOutputDirMatchPatternSubRule()], }, + { + description: "Validate Ts mgmt recursive variable resolution (namespace -> package-name)", + folder: managementTspconfigFolder, + tspconfigContent: ` +options: + "@azure-tools/typespec-ts": + package-name: "arm-aaa-bbb" + namespace: "{package-name}" + emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" +`, + success: true, + subRules: [new TspConfigTsMgmtModularEmitterOutputDirSubRule()], + }, ]; const suppressEntireRuleTestCase: Case = { From c6a6145cc42fb6ddc5743ecbcc958fb1bc96d015 Mon Sep 17 00:00:00 2001 From: haiyuan_zhang Date: Tue, 16 Dec 2025 11:12:52 +0800 Subject: [PATCH 033/117] remove package-name in tspconfig.yaml (#39285) --- .../storageactions/StorageAction.Management/tspconfig.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/specification/storageactions/StorageAction.Management/tspconfig.yaml b/specification/storageactions/StorageAction.Management/tspconfig.yaml index 9df2c190f141..fcb48b419a6b 100644 --- a/specification/storageactions/StorageAction.Management/tspconfig.yaml +++ b/specification/storageactions/StorageAction.Management/tspconfig.yaml @@ -13,8 +13,7 @@ options: examples-dir: "{project-root}/examples" "@azure-typespec/http-client-csharp-mgmt": emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - package-name: "Azure.ResourceManager.StorageActions" - namespace: "{package-name}" + namespace: "Azure.ResourceManager.StorageActions" "@azure-tools/typespec-python": emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-storageactions" namespace: "azure.mgmt.storageactions" From 315a75f661ee8eef8ae73e7ad79e4c78b60e44aa Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Tue, 16 Dec 2025 11:25:05 +0800 Subject: [PATCH 034/117] update (#39254) --- ...tyPolicyAllowProtectedAppendWritesAll.json | 32 +++ ...UserAssignedEncryptionIdentityWithCMK.json | 118 +++++++++++ ...IdentityWithFederatedIdentityClientId.json | 120 +++++++++++ ...esGeoReplicationStatscanFailoverFalse.json | 107 ++++++++++ ...iesGeoReplicationStatscanFailoverTrue.json | 107 ++++++++++ ...tionScopeWithInfrastructureEncryption.json | 45 ++++ ...ncludeDeleteAndNewSchemaForHnsAccount.json | 197 ++++++++++++++++++ ...udeDeleteAndNewSchemaForNonHnsAccount.json | 195 +++++++++++++++++ ...licy_BaseBlobDaysAfterCreationActions.json | 90 ++++++++ ...Policy_LastAccessTimeBasedBlobActions.json | 102 +++++++++ ...ementPolicy_LastTierChangeTimeActions.json | 116 +++++++++++ ...UserAssignedEncryptionIdentityWithCMK.json | 116 +++++++++++ ...IdentityWithFederatedIdentityClientId.json | 118 +++++++++++ ...orageTaskAssignmentRequiredProperties.json | 83 ++++++++ ...eTaskAssignmentInstancesReportSummary.json | 59 ++++++ .../ListStorageTaskAssignmentsForAccount.json | 74 +++++++ ...TaskAssignmentsInstancesReportSummary.json | 58 ++++++ 17 files changed, 1737 insertions(+) create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json new file mode 100644 index 000000000000..c7825b058a63 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/BlobContainersPutImmutabilityPolicyAllowProtectedAppendWritesAll.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res1782", + "accountName": "sto7069", + "containerName": "container6397", + "immutabilityPolicyName": "default", + "api-version": "2025-01-01", + "monitor": "true", + "parameters": { + "properties": { + "immutabilityPeriodSinceCreationInDays": 3, + "allowProtectedAppendWritesAll": true + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res1782/providers/Microsoft.Storage/storageAccounts/sto7069/blobServices/default/containers/container6397/immutabilityPolicies/default", + "name": "default", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies", + "etag": "\"8d59f830cb130e5\"", + "properties": { + "immutabilityPeriodSinceCreationInDays": 3, + "allowProtectedAppendWritesAll": true, + "state": "Unlocked" + } + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json new file mode 100644 index 000000000000..208683170e64 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedEncryptionIdentityWithCMK.json @@ -0,0 +1,118 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res9101", + "accountName": "sto4445", + "api-version": "2025-01-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": {} + } + }, + "sku": { + "name": "Standard_LRS" + }, + "kind": "Storage", + "location": "eastus", + "properties": { + "encryption": { + "services": { + "file": { + "keyType": "Account", + "enabled": true + }, + "blob": { + "keyType": "Account", + "enabled": true + } + }, + "keyvaultproperties": { + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyname": "wrappingKey", + "keyversion": "" + }, + "keySource": "Microsoft.Keyvault", + "identity": { + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "identity": { + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": { + "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7", + "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5" + } + }, + "type": "UserAssigned" + }, + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "kind": "StorageV2", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "location": "eastus", + "tags": {}, + "properties": { + "privateEndpointConnections": [], + "networkAcls": { + "bypass": "AzureServices", + "virtualNetworkRules": [], + "ipRules": [], + "defaultAction": "Allow" + }, + "supportsHttpsTrafficOnly": true, + "encryption": { + "identity": { + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" + }, + "keyvaultproperties": { + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyname": "wrappingKey", + "keyversion": "", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", + "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" + }, + "services": { + "file": { + "keyType": "Account", + "enabled": true, + "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" + }, + "blob": { + "keyType": "Account", + "enabled": true, + "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" + } + }, + "keySource": "Microsoft.Keyvault" + }, + "accessTier": "Hot", + "provisioningState": "Succeeded", + "creationTime": "2020-12-15T00:43:14.0839093Z", + "primaryEndpoints": { + "web": "https://sto4445.web.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "blob": "https://sto4445.blob.core.windows.net/", + "file": "https://sto4445.file.core.windows.net/", + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/" + }, + "primaryLocation": "eastus", + "statusOfPrimary": "available" + } + } + }, + "202": {} + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json new file mode 100644 index 000000000000..5b7c15cdee86 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountCreateUserAssignedIdentityWithFederatedIdentityClientId.json @@ -0,0 +1,120 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res131918", + "accountName": "sto131918", + "api-version": "2025-01-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": {} + } + }, + "sku": { + "name": "Standard_LRS" + }, + "kind": "Storage", + "location": "eastus", + "properties": { + "encryption": { + "services": { + "file": { + "keyType": "Account", + "enabled": true + }, + "blob": { + "keyType": "Account", + "enabled": true + } + }, + "keyvaultproperties": { + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyname": "wrappingKey", + "keyversion": "" + }, + "keySource": "Microsoft.Keyvault", + "identity": { + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}", + "federatedIdentityClientId": "f83c6b1b-4d34-47e4-bb34-9d83df58b540" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "identity": { + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": { + "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7", + "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5" + } + }, + "type": "UserAssigned" + }, + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "kind": "StorageV2", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "location": "eastus", + "tags": {}, + "properties": { + "privateEndpointConnections": [], + "networkAcls": { + "bypass": "AzureServices", + "virtualNetworkRules": [], + "ipRules": [], + "defaultAction": "Allow" + }, + "supportsHttpsTrafficOnly": true, + "encryption": { + "identity": { + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}", + "federatedIdentityClientId": "f83c6b1b-4d34-47e4-bb34-9d83df58b540" + }, + "keyvaultproperties": { + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyname": "wrappingKey", + "keyversion": "", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", + "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" + }, + "services": { + "file": { + "keyType": "Account", + "enabled": true, + "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" + }, + "blob": { + "keyType": "Account", + "enabled": true, + "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" + } + }, + "keySource": "Microsoft.Keyvault" + }, + "accessTier": "Hot", + "provisioningState": "Succeeded", + "creationTime": "2020-12-15T00:43:14.0839093Z", + "primaryEndpoints": { + "web": "https://sto4445.web.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "blob": "https://sto4445.blob.core.windows.net/", + "file": "https://sto4445.file.core.windows.net/", + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/" + }, + "primaryLocation": "eastus", + "statusOfPrimary": "available" + } + } + }, + "202": {} + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json new file mode 100644 index 000000000000..625c45f18c4a --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverFalse.json @@ -0,0 +1,107 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res9407", + "accountName": "sto8596", + "api-version": "2025-01-01", + "monitor": "true", + "$expand": "geoReplicationStats" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "kind": "Storage", + "location": "eastus2(stage)", + "name": "sto8596", + "properties": { + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "geoReplicationStats": { + "status": "Live", + "lastSyncTime": "2018-10-30T00:25:34Z", + "canFailover": false, + "canPlannedFailover": false, + "postFailoverRedundancy": "Standard_LRS", + "postPlannedFailoverRedundancy": "Standard_GRS" + }, + "isHnsEnabled": true, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "virtualNetworkRules": [], + "resourceAccessRules": [ + { + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + } + ] + }, + "primaryEndpoints": { + "web": "https://sto8596.web.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "blob": "https://sto8596.blob.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "microsoftEndpoints": { + "web": "https://sto8596-microsoftrouting.web.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", + "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "file": "https://sto8596-microsoftrouting.file.core.windows.net/", + "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", + "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + }, + "internetEndpoints": { + "web": "https://sto8596-internetrouting.web.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/" + } + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "routingPreference": { + "routingChoice": "MicrosoftRouting", + "publishMicrosoftEndpoints": true, + "publishInternetEndpoints": true + }, + "encryption": { + "services": { + "file": { + "keyType": "Account", + "enabled": true, + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "blob": { + "keyType": "Account", + "enabled": true, + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + }, + "keySource": "Microsoft.Storage" + }, + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false, + "isSkuConversionBlocked": false, + "accountMigrationInProgress": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + }, + "type": "Microsoft.Storage/storageAccounts" + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json new file mode 100644 index 000000000000..4bf041fc25bf --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountGetPropertiesGeoReplicationStatscanFailoverTrue.json @@ -0,0 +1,107 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res9407", + "accountName": "sto8596", + "api-version": "2025-01-01", + "monitor": "true", + "$expand": "geoReplicationStats" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res9407/providers/Microsoft.Storage/storageAccounts/sto8596", + "kind": "Storage", + "location": "eastus2(stage)", + "name": "sto8596", + "properties": { + "keyCreationTime": { + "key1": "2021-03-18T04:42:22.4322836Z", + "key2": "2021-03-18T04:42:22.4322836Z" + }, + "geoReplicationStats": { + "status": "Live", + "lastSyncTime": "2018-10-30T00:25:34Z", + "canFailover": true, + "canPlannedFailover": true, + "postFailoverRedundancy": "Standard_LRS", + "postPlannedFailoverRedundancy": "Standard_GRS" + }, + "isHnsEnabled": true, + "creationTime": "2017-06-01T02:42:41.7633306Z", + "networkAcls": { + "bypass": "AzureServices", + "defaultAction": "Allow", + "ipRules": [], + "virtualNetworkRules": [], + "resourceAccessRules": [ + { + "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", + "resourceId": "/subscriptions/a7e99807-abbf-4642-bdec-2c809a96a8bc/resourceGroups/res9407/providers/Microsoft.Synapse/workspaces/testworkspace" + } + ] + }, + "primaryEndpoints": { + "web": "https://sto8596.web.core.windows.net/", + "dfs": "https://sto8596.dfs.core.windows.net/", + "blob": "https://sto8596.blob.core.windows.net/", + "file": "https://sto8596.file.core.windows.net/", + "queue": "https://sto8596.queue.core.windows.net/", + "table": "https://sto8596.table.core.windows.net/", + "microsoftEndpoints": { + "web": "https://sto8596-microsoftrouting.web.core.windows.net/", + "dfs": "https://sto8596-microsoftrouting.dfs.core.windows.net/", + "blob": "https://sto8596-microsoftrouting.blob.core.windows.net/", + "file": "https://sto8596-microsoftrouting.file.core.windows.net/", + "queue": "https://sto8596-microsoftrouting.queue.core.windows.net/", + "table": "https://sto8596-microsoftrouting.table.core.windows.net/" + }, + "internetEndpoints": { + "web": "https://sto8596-internetrouting.web.core.windows.net/", + "dfs": "https://sto8596-internetrouting.dfs.core.windows.net/", + "blob": "https://sto8596-internetrouting.blob.core.windows.net/", + "file": "https://sto8596-internetrouting.file.core.windows.net/" + } + }, + "primaryLocation": "eastus2(stage)", + "provisioningState": "Succeeded", + "routingPreference": { + "routingChoice": "MicrosoftRouting", + "publishMicrosoftEndpoints": true, + "publishInternetEndpoints": true + }, + "encryption": { + "services": { + "file": { + "keyType": "Account", + "enabled": true, + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + }, + "blob": { + "keyType": "Account", + "enabled": true, + "lastEnabledTime": "2019-12-11T20:49:31.7036140Z" + } + }, + "keySource": "Microsoft.Storage" + }, + "secondaryLocation": "northcentralus(stage)", + "statusOfPrimary": "available", + "statusOfSecondary": "available", + "supportsHttpsTrafficOnly": false, + "isSkuConversionBlocked": false, + "accountMigrationInProgress": false + }, + "sku": { + "name": "Standard_GRS", + "tier": "Standard" + }, + "tags": { + "key1": "value1", + "key2": "value2" + }, + "type": "Microsoft.Storage/storageAccounts" + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json new file mode 100644 index 000000000000..a6f79406ee5c --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountPutEncryptionScopeWithInfrastructureEncryption.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "resource-group-name", + "accountName": "accountname", + "encryptionScopeName": "{encryption-scope-name}", + "api-version": "2025-01-01", + "monitor": "true", + "encryptionScope": { + "properties": { + "requireInfrastructureEncryption": true + } + } + }, + "responses": { + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", + "name": "{encryption-scope-name}", + "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "properties": { + "requireInfrastructureEncryption": true, + "source": "Microsoft.Storage", + "state": "Enabled", + "creationTime": "2018-10-16T02:42:41.7633306Z", + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z" + } + } + }, + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/resource-group-name/providers/Microsoft.Storage/storageAccounts/accountname/encryptionScopes/{encryption-scope-name}", + "name": "{encryption-scope-name}", + "type": "Microsoft.Storage/storageAccounts/encryptionScopes", + "properties": { + "requireInfrastructureEncryption": true, + "source": "Microsoft.Storage", + "state": "Enabled", + "creationTime": "2018-10-16T02:42:41.7633306Z", + "lastModifiedTime": "2018-10-16T02:42:41.7633306Z" + } + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json new file mode 100644 index 000000000000..91c194a8a898 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForHnsAccount.json @@ -0,0 +1,197 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res7687", + "accountName": "sto9699", + "blobInventoryPolicyName": "default", + "api-version": "2025-01-01", + "monitor": "true", + "properties": { + "properties": { + "policy": { + "enabled": true, + "type": "Inventory", + "rules": [ + { + "enabled": true, + "name": "inventoryPolicyRule1", + "destination": "container1", + "definition": { + "filters": { + "blobTypes": [ + "blockBlob", + "appendBlob", + "pageBlob" + ], + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ], + "excludePrefix": [ + "excludeprefix1", + "excludeprefix2" + ], + "includeSnapshots": true, + "includeBlobVersions": true, + "includeDeleted": true + }, + "format": "Csv", + "schedule": "Daily", + "objectType": "Blob", + "schemaFields": [ + "Name", + "Creation-Time", + "Last-Modified", + "Content-Length", + "Content-MD5", + "BlobType", + "AccessTier", + "AccessTierChangeTime", + "Snapshot", + "VersionId", + "IsCurrentVersion", + "ContentType", + "ContentEncoding", + "ContentLanguage", + "ContentCRC64", + "CacheControl", + "Metadata", + "DeletionId", + "Deleted", + "DeletedTime", + "RemainingRetentionDays" + ] + } + }, + { + "enabled": true, + "name": "inventoryPolicyRule2", + "definition": { + "format": "Parquet", + "schedule": "Weekly", + "objectType": "Container", + "schemaFields": [ + "Name", + "Last-Modified", + "Metadata", + "LeaseStatus", + "LeaseState", + "LeaseDuration", + "PublicAccess", + "HasImmutabilityPolicy", + "HasLegalHold", + "Etag", + "DefaultEncryptionScope", + "DenyEncryptionScopeOverride", + "ImmutableStorageWithVersioningEnabled", + "Deleted", + "Version", + "DeletedTime", + "RemainingRetentionDays" + ] + }, + "destination": "container2" + } + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", + "name": "DefaultInventoryPolicy", + "type": "Microsoft.Storage/storageAccounts/inventoryPolicies", + "properties": { + "policy": { + "enabled": true, + "type": "Inventory", + "rules": [ + { + "enabled": true, + "name": "inventoryPolicyRule1", + "destination": "container1", + "definition": { + "filters": { + "blobTypes": [ + "blockBlob", + "appendBlob", + "pageBlob" + ], + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ], + "excludePrefix": [ + "excludeprefix1", + "excludeprefix2" + ], + "includeSnapshots": true, + "includeBlobVersions": true, + "includeDeleted": true + }, + "format": "Csv", + "schedule": "Daily", + "objectType": "Blob", + "schemaFields": [ + "Name", + "Creation-Time", + "Last-Modified", + "Content-Length", + "Content-MD5", + "BlobType", + "AccessTier", + "AccessTierChangeTime", + "Snapshot", + "VersionId", + "IsCurrentVersion", + "ContentType", + "ContentEncoding", + "ContentLanguage", + "ContentCRC64", + "CacheControl", + "Metadata", + "DeletionId", + "Deleted", + "DeletedTime", + "RemainingRetentionDays" + ] + } + }, + { + "enabled": true, + "name": "inventoryPolicyRule2", + "definition": { + "format": "Parquet", + "schedule": "Weekly", + "objectType": "Container", + "schemaFields": [ + "Name", + "Last-Modified", + "Metadata", + "LeaseStatus", + "LeaseState", + "LeaseDuration", + "PublicAccess", + "HasImmutabilityPolicy", + "HasLegalHold", + "Etag", + "DefaultEncryptionScope", + "DenyEncryptionScopeOverride", + "ImmutableStorageWithVersioningEnabled", + "Deleted", + "Version", + "DeletedTime", + "RemainingRetentionDays" + ] + }, + "destination": "container2" + } + ] + } + } + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json new file mode 100644 index 000000000000..0251e9ed4f09 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetBlobInventoryPolicyIncludeDeleteAndNewSchemaForNonHnsAccount.json @@ -0,0 +1,195 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res7687", + "accountName": "sto9699", + "blobInventoryPolicyName": "default", + "api-version": "2025-01-01", + "monitor": "true", + "properties": { + "properties": { + "policy": { + "enabled": true, + "type": "Inventory", + "rules": [ + { + "enabled": true, + "name": "inventoryPolicyRule1", + "destination": "container1", + "definition": { + "filters": { + "blobTypes": [ + "blockBlob", + "appendBlob", + "pageBlob" + ], + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ], + "excludePrefix": [ + "excludeprefix1", + "excludeprefix2" + ], + "includeSnapshots": true, + "includeBlobVersions": true, + "includeDeleted": true + }, + "format": "Csv", + "schedule": "Daily", + "objectType": "Blob", + "schemaFields": [ + "Name", + "Creation-Time", + "Last-Modified", + "Content-Length", + "Content-MD5", + "BlobType", + "AccessTier", + "AccessTierChangeTime", + "Snapshot", + "VersionId", + "IsCurrentVersion", + "Tags", + "ContentType", + "ContentEncoding", + "ContentLanguage", + "ContentCRC64", + "CacheControl", + "Metadata", + "Deleted", + "RemainingRetentionDays" + ] + } + }, + { + "enabled": true, + "name": "inventoryPolicyRule2", + "definition": { + "format": "Parquet", + "schedule": "Weekly", + "objectType": "Container", + "schemaFields": [ + "Name", + "Last-Modified", + "Metadata", + "LeaseStatus", + "LeaseState", + "LeaseDuration", + "PublicAccess", + "HasImmutabilityPolicy", + "HasLegalHold", + "Etag", + "DefaultEncryptionScope", + "DenyEncryptionScopeOverride", + "ImmutableStorageWithVersioningEnabled", + "Deleted", + "Version", + "DeletedTime", + "RemainingRetentionDays" + ] + }, + "destination": "container2" + } + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res7687/providers/Microsoft.Storage/storageAccounts/sto9699/inventoryPolicies/default", + "name": "DefaultInventoryPolicy", + "type": "Microsoft.Storage/storageAccounts/inventoryPolicies", + "properties": { + "policy": { + "enabled": true, + "type": "Inventory", + "rules": [ + { + "enabled": true, + "name": "inventoryPolicyRule1", + "destination": "container1", + "definition": { + "filters": { + "blobTypes": [ + "blockBlob", + "appendBlob", + "pageBlob" + ], + "prefixMatch": [ + "inventoryprefix1", + "inventoryprefix2" + ], + "excludePrefix": [ + "excludeprefix1", + "excludeprefix2" + ], + "includeSnapshots": true, + "includeBlobVersions": true, + "includeDeleted": true + }, + "format": "Csv", + "schedule": "Daily", + "objectType": "Blob", + "schemaFields": [ + "Name", + "Creation-Time", + "Last-Modified", + "Content-Length", + "Content-MD5", + "BlobType", + "AccessTier", + "AccessTierChangeTime", + "Snapshot", + "VersionId", + "IsCurrentVersion", + "Tags", + "ContentType", + "ContentEncoding", + "ContentLanguage", + "ContentCRC64", + "CacheControl", + "Metadata", + "Deleted", + "RemainingRetentionDays" + ] + } + }, + { + "enabled": true, + "name": "inventoryPolicyRule2", + "definition": { + "format": "Parquet", + "schedule": "Weekly", + "objectType": "Container", + "schemaFields": [ + "Name", + "Last-Modified", + "Metadata", + "LeaseStatus", + "LeaseState", + "LeaseDuration", + "PublicAccess", + "HasImmutabilityPolicy", + "HasLegalHold", + "Etag", + "DefaultEncryptionScope", + "DenyEncryptionScopeOverride", + "ImmutableStorageWithVersioningEnabled", + "Deleted", + "Version", + "DeletedTime", + "RemainingRetentionDays" + ] + }, + "destination": "container2" + } + ] + } + } + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json new file mode 100644 index 000000000000..02e9a9342d61 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_BaseBlobDaysAfterCreationActions.json @@ -0,0 +1,90 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res7687", + "accountName": "sto9699", + "managementPolicyName": "default", + "api-version": "2025-01-01", + "monitor": "true", + "properties": { + "properties": { + "policy": { + "rules": [ + { + "enabled": true, + "name": "olcmtest1", + "type": "Lifecycle", + "definition": { + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] + }, + "actions": { + "baseBlob": { + "tierToCool": { + "daysAfterCreationGreaterThan": 30 + }, + "tierToArchive": { + "daysAfterCreationGreaterThan": 90 + }, + "delete": { + "daysAfterCreationGreaterThan": 1000 + } + } + } + } + } + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", + "name": "DefaultManagementPolicy", + "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "properties": { + "policy": { + "rules": [ + { + "enabled": true, + "name": "olcmtest1", + "type": "Lifecycle", + "definition": { + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer1" + ] + }, + "actions": { + "baseBlob": { + "tierToCool": { + "daysAfterCreationGreaterThan": 30 + }, + "tierToArchive": { + "daysAfterCreationGreaterThan": 90 + }, + "delete": { + "daysAfterCreationGreaterThan": 1000 + } + } + } + } + } + ] + }, + "lastModifiedTime": "2021-06-08T02:53:39.0932539Z" + } + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json new file mode 100644 index 000000000000..943e49e5e50c --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastAccessTimeBasedBlobActions.json @@ -0,0 +1,102 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res7687", + "accountName": "sto9699", + "managementPolicyName": "default", + "api-version": "2025-01-01", + "monitor": "true", + "properties": { + "properties": { + "policy": { + "rules": [ + { + "enabled": true, + "name": "olcmtest", + "type": "Lifecycle", + "definition": { + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] + }, + "actions": { + "baseBlob": { + "tierToCool": { + "daysAfterLastAccessTimeGreaterThan": 30 + }, + "tierToArchive": { + "daysAfterLastAccessTimeGreaterThan": 90 + }, + "delete": { + "daysAfterLastAccessTimeGreaterThan": 1000 + }, + "enableAutoTierToHotFromCool": true + }, + "snapshot": { + "delete": { + "daysAfterCreationGreaterThan": 30 + } + } + } + } + } + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", + "name": "DefaultManagementPolicy", + "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "properties": { + "policy": { + "rules": [ + { + "enabled": true, + "name": "olcmtest", + "type": "Lifecycle", + "definition": { + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] + }, + "actions": { + "baseBlob": { + "tierToCool": { + "daysAfterLastAccessTimeGreaterThan": 30 + }, + "tierToArchive": { + "daysAfterLastAccessTimeGreaterThan": 90 + }, + "delete": { + "daysAfterLastAccessTimeGreaterThan": 1000 + }, + "enableAutoTierToHotFromCool": true + }, + "snapshot": { + "delete": { + "daysAfterCreationGreaterThan": 30 + } + } + } + } + } + ] + }, + "lastModifiedTime": "2018-06-08T02:53:39.0932539Z" + } + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json new file mode 100644 index 000000000000..a12452587acd --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountSetManagementPolicy_LastTierChangeTimeActions.json @@ -0,0 +1,116 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res7687", + "accountName": "sto9699", + "managementPolicyName": "default", + "api-version": "2025-01-01", + "monitor": "true", + "properties": { + "properties": { + "policy": { + "rules": [ + { + "enabled": true, + "name": "olcmtest", + "type": "Lifecycle", + "definition": { + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] + }, + "actions": { + "baseBlob": { + "tierToCool": { + "daysAfterModificationGreaterThan": 30 + }, + "tierToArchive": { + "daysAfterModificationGreaterThan": 90, + "daysAfterLastTierChangeGreaterThan": 120 + }, + "delete": { + "daysAfterModificationGreaterThan": 1000 + } + }, + "snapshot": { + "tierToArchive": { + "daysAfterCreationGreaterThan": 30, + "daysAfterLastTierChangeGreaterThan": 90 + } + }, + "version": { + "tierToArchive": { + "daysAfterCreationGreaterThan": 30, + "daysAfterLastTierChangeGreaterThan": 90 + } + } + } + } + } + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res7231/providers/Microsoft.Storage/storageAccounts/sto288/managementPolicies/default", + "name": "DefaultManagementPolicy", + "type": "Microsoft.Storage/storageAccounts/managementPolicies", + "properties": { + "policy": { + "rules": [ + { + "enabled": true, + "name": "olcmtest", + "type": "Lifecycle", + "definition": { + "filters": { + "blobTypes": [ + "blockBlob" + ], + "prefixMatch": [ + "olcmtestcontainer" + ] + }, + "actions": { + "baseBlob": { + "tierToCool": { + "daysAfterModificationGreaterThan": 30 + }, + "tierToArchive": { + "daysAfterModificationGreaterThan": 90, + "daysAfterLastTierChangeGreaterThan": 120 + }, + "delete": { + "daysAfterModificationGreaterThan": 1000 + } + }, + "snapshot": { + "tierToArchive": { + "daysAfterCreationGreaterThan": 30, + "daysAfterLastTierChangeGreaterThan": 90 + } + }, + "version": { + "tierToArchive": { + "daysAfterCreationGreaterThan": 30, + "daysAfterLastTierChangeGreaterThan": 90 + } + } + } + } + } + ] + }, + "lastModifiedTime": "2018-06-08T02:53:39.0932539Z" + } + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json new file mode 100644 index 000000000000..2c932bb95594 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedEncryptionIdentityWithCMK.json @@ -0,0 +1,116 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res9101", + "accountName": "sto4445", + "api-version": "2025-01-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": {} + } + }, + "sku": { + "name": "Standard_LRS" + }, + "kind": "Storage", + "properties": { + "encryption": { + "services": { + "file": { + "keyType": "Account", + "enabled": true + }, + "blob": { + "keyType": "Account", + "enabled": true + } + }, + "keyvaultproperties": { + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyname": "wrappingKey", + "keyversion": "" + }, + "keySource": "Microsoft.Keyvault", + "identity": { + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "identity": { + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": { + "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7", + "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5" + } + }, + "type": "UserAssigned" + }, + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "kind": "StorageV2", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "location": "eastus", + "tags": {}, + "properties": { + "privateEndpointConnections": [], + "networkAcls": { + "bypass": "AzureServices", + "virtualNetworkRules": [], + "ipRules": [], + "defaultAction": "Allow" + }, + "supportsHttpsTrafficOnly": true, + "encryption": { + "identity": { + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}" + }, + "keyvaultproperties": { + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyname": "wrappingKey", + "keyversion": "", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", + "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" + }, + "services": { + "file": { + "keyType": "Account", + "enabled": true, + "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" + }, + "blob": { + "keyType": "Account", + "enabled": true, + "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" + } + }, + "keySource": "Microsoft.Keyvault" + }, + "accessTier": "Hot", + "provisioningState": "Succeeded", + "creationTime": "2020-12-15T00:43:14.0839093Z", + "primaryEndpoints": { + "web": "https://sto4445.web.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "blob": "https://sto4445.blob.core.windows.net/", + "file": "https://sto4445.file.core.windows.net/", + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/" + }, + "primaryLocation": "eastus", + "statusOfPrimary": "available" + } + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json new file mode 100644 index 000000000000..db6501f9476a --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/StorageAccountUpdateUserAssignedIdentityWithFederatedIdentityClientId.json @@ -0,0 +1,118 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res131918", + "accountName": "sto131918", + "api-version": "2025-01-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": {} + } + }, + "sku": { + "name": "Standard_LRS" + }, + "kind": "Storage", + "properties": { + "encryption": { + "services": { + "file": { + "keyType": "Account", + "enabled": true + }, + "blob": { + "keyType": "Account", + "enabled": true + } + }, + "keyvaultproperties": { + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyname": "wrappingKey", + "keyversion": "" + }, + "keySource": "Microsoft.Keyvault", + "identity": { + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}", + "federatedIdentityClientId": "3109d1c4-a5de-4d84-8832-feabb916a4b6" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "identity": { + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}": { + "principalId": "8d823284-1060-42a5-9ec4-ed3d831e24d7", + "clientId": "fbaa6278-1ecc-415c-819f-6e2058d3acb5" + } + }, + "type": "UserAssigned" + }, + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "kind": "StorageV2", + "id": "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/storageAccounts/sto4445", + "name": "sto4445", + "type": "Microsoft.Storage/storageAccounts", + "location": "eastus", + "tags": {}, + "properties": { + "privateEndpointConnections": [], + "networkAcls": { + "bypass": "AzureServices", + "virtualNetworkRules": [], + "ipRules": [], + "defaultAction": "Allow" + }, + "supportsHttpsTrafficOnly": true, + "encryption": { + "identity": { + "userAssignedIdentity": "/subscriptions/{subscription-id}/resourcegroups/res9101/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managed-identity-name}", + "federatedIdentityClientId": "3109d1c4-a5de-4d84-8832-feabb916a4b6" + }, + "keyvaultproperties": { + "keyvaulturi": "https://myvault8569.vault.azure.net", + "keyname": "wrappingKey", + "keyversion": "", + "currentVersionedKeyIdentifier": "https://myvault8569.vault.azure.net/keys/wrappingKey/0682afdd9c104f4285df20107e956cad", + "lastKeyRotationTimestamp": "2019-12-13T20:36:23.7023290Z" + }, + "services": { + "file": { + "keyType": "Account", + "enabled": true, + "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" + }, + "blob": { + "keyType": "Account", + "enabled": true, + "lastEnabledTime": "2020-12-15T00:43:14.1739587Z" + } + }, + "keySource": "Microsoft.Keyvault" + }, + "accessTier": "Hot", + "provisioningState": "Succeeded", + "creationTime": "2020-12-15T00:43:14.0839093Z", + "primaryEndpoints": { + "web": "https://sto4445.web.core.windows.net/", + "dfs": "https://sto4445.dfs.core.windows.net/", + "blob": "https://sto4445.blob.core.windows.net/", + "file": "https://sto4445.file.core.windows.net/", + "queue": "https://sto4445.queue.core.windows.net/", + "table": "https://sto4445.table.core.windows.net/" + }, + "primaryLocation": "eastus", + "statusOfPrimary": "available" + } + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json new file mode 100644 index 000000000000..f5a26e55f9f7 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsCrud/PutStorageTaskAssignmentRequiredProperties.json @@ -0,0 +1,83 @@ +{ + "parameters": { + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", + "resourceGroupName": "res4228", + "accountName": "sto4445", + "storageTaskAssignmentName": "myassignment1", + "api-version": "2025-01-01", + "parameters": { + "properties": { + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", + "enabled": true, + "description": "My Storage task assignment", + "executionContext": { + "trigger": { + "type": "RunOnce", + "parameters": { + "startOn": "2022-11-15T21:52:47.8145095Z" + } + } + }, + "report": { + "prefix": "container1" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", + "name": "myassignment1", + "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "properties": { + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", + "enabled": true, + "description": "My Storage task assignment", + "executionContext": { + "trigger": { + "type": "RunOnce", + "parameters": { + "startOn": "2022-11-15T21:52:47.8145095Z" + } + } + }, + "report": { + "prefix": "container1" + }, + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", + "name": "myassignment1", + "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "properties": { + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", + "enabled": true, + "description": "My Storage task assignment", + "executionContext": { + "trigger": { + "type": "RunOnce", + "parameters": { + "startOn": "2022-11-15T21:52:47.8145095Z" + } + } + }, + "report": { + "prefix": "container1" + }, + "provisioningState": "Succeeded" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Storage/locations/eastus/ActionsRPOperationStatuses/00000000-0000-0000-0000-000000000000*00000?api-version=2025-01-01", + "location": "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Storage/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-01-01" + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json new file mode 100644 index 000000000000..b966f8d6b3ef --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentInstancesReportSummary.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", + "resourceGroupName": "res4228", + "accountName": "sto4445", + "storageTaskAssignmentName": "myassignment1", + "api-version": "2025-01-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance1", + "name": "instance1", + "type": "Microsoft.Storage/storageAccounts/reports", + "properties": { + "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", + "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", + "startTime": "2023-06-23T00:30:43.226744Z", + "finishTime": "2023-06-23T00:40:10.2931264Z", + "objectsTargetedCount": "150", + "objectsOperatedOnCount": "150", + "objectFailedCount": "0", + "objectsSucceededCount": "150", + "runStatusError": "0", + "runStatusEnum": "Finished", + "summaryReportPath": "https://acc123.blob.core.windows.net/result-container/{folderpath}/SummaryReport.json", + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", + "taskVersion": "1", + "runResult": "Succeeded" + } + }, + { + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance2", + "name": "instance2", + "type": "Microsoft.Storage/storageAccounts/reports", + "properties": { + "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", + "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", + "startTime": "2023-06-23T00:30:43.226744Z", + "finishTime": "2023-06-23T00:40:10.2931264Z", + "objectsTargetedCount": "150", + "objectsOperatedOnCount": "150", + "objectFailedCount": "0", + "objectsSucceededCount": "150", + "runStatusError": "0", + "runStatusEnum": "Finished", + "summaryReportPath": "https://acc123.blob.core.windows.net/result-container/{folderpath}/SummaryReport.json", + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", + "taskVersion": "1", + "runResult": "Succeeded" + } + } + ] + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json new file mode 100644 index 000000000000..f7ddde63dc56 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsForAccount.json @@ -0,0 +1,74 @@ +{ + "parameters": { + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", + "resourceGroupName": "res4228", + "accountName": "sto4445", + "api-version": "2025-01-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", + "name": "myassignment1", + "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "properties": { + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", + "enabled": true, + "description": "My Storage task assignment #1", + "executionContext": { + "target": { + "prefix": [ + "prefix1", + "prefix2" + ], + "excludePrefix": [] + }, + "trigger": { + "type": "RunOnce", + "parameters": { + "startOn": "2022-11-15T21:52:47.8145095Z" + } + } + }, + "report": { + "prefix": "container1" + }, + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment2", + "name": "myassignment2", + "type": "Microsoft.Storage/storageAccounts/storageTaskAssignments", + "properties": { + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask2", + "enabled": true, + "description": "My Storage task assignment #2", + "executionContext": { + "target": { + "prefix": [ + "prefix3", + "prefix4" + ], + "excludePrefix": [] + }, + "trigger": { + "type": "RunOnce", + "parameters": { + "startOn": "2022-11-15T21:52:47.8145095Z" + } + } + }, + "report": { + "prefix": "container2" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + } +} diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json new file mode 100644 index 000000000000..f4c3331110b4 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2025-01-01/examples/storageTaskAssignmentsList/ListStorageTaskAssignmentsInstancesReportSummary.json @@ -0,0 +1,58 @@ +{ + "parameters": { + "subscriptionId": "1f31ba14-ce16-4281-b9b4-3e78da6e1616", + "resourceGroupName": "res4228", + "accountName": "sto4445", + "api-version": "2025-01-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance1", + "name": "instance1", + "type": "Microsoft.Storage/storageAccounts/reports", + "properties": { + "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment1", + "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", + "startTime": "2023-06-23T00:30:43.226744Z", + "finishTime": "2023-06-23T00:40:10.2931264Z", + "objectsTargetedCount": "150", + "objectsOperatedOnCount": "150", + "objectFailedCount": "0", + "objectsSucceededCount": "150", + "runStatusError": "0", + "runStatusEnum": "Finished", + "summaryReportPath": "https://acc123.blob.core.windows.net/result-container/{folderpath}/SummaryReport.json", + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", + "taskVersion": "1", + "runResult": "Succeeded" + } + }, + { + "id": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourceGroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/instance2", + "name": "instance2", + "type": "Microsoft.Storage/storageAccounts/reports", + "properties": { + "taskAssignmentId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445/storageTaskAssignments/myassignment2", + "storageAccountId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.Storage/storageAccounts/sto4445", + "startTime": "2023-06-23T00:30:43.226744Z", + "finishTime": "2023-06-23T00:40:10.2931264Z", + "objectsTargetedCount": "150", + "objectsOperatedOnCount": "150", + "objectFailedCount": "0", + "objectsSucceededCount": "150", + "runStatusError": "0", + "runStatusEnum": "Finished", + "summaryReportPath": "https://acc123.blob.core.windows.net/result-container/{folderpath}/SummaryReport.json", + "taskId": "/subscriptions/1f31ba14-ce16-4281-b9b4-3e78da6e1616/resourcegroups/res4228/providers/Microsoft.StorageActions/storageTasks/mytask1", + "taskVersion": "1", + "runResult": "Succeeded" + } + } + ] + } + } + } +} From c0f15e4a452e77f4e63f5b679f55d6992f2f0e07 Mon Sep 17 00:00:00 2001 From: Jiarui Guo Date: Mon, 15 Dec 2025 20:57:01 -0800 Subject: [PATCH 035/117] [Draft] Updates to TextTranslation 2025-10-01-preview (#38621) * Update get supportedLanguagesResult, -dictionary + LLM models * clean up client.tsp, custom rename dir -> directionality * Rename: TranslateTarget -> TranslationTarget * ReferenceSentencePair -> ReferenceTextPair * avoid body in generated names * versioning update * response values read visibility * transliterateresult value readonly * cleanup client * custom clientname for translate item targets * update getsupportedlanguages example & missed models field on translationlanguage * fix a couple of fields * type string -> etag * readonly languages dictionary * scripts list readonly * exclude python from client renames * clientName dotnet -> csharp * python emitter no generate test & sample * disable generate saple for java * generate-samples java typo * fix typo in comment * java codegen config * java generated parameter naming * make unused classes internal for java * set usage types for internal classess * clean up java generated methods --------- Co-authored-by: Jiarui Guo --- .../data-plane/TextTranslation/client.tsp | 217 ++-------------- .../GetSupportedLanguages_MaximumSet_Gen.json | 94 +++++-- .../GetSupportedLanguages_MinimumSet_Gen.json | 124 ++++++++- .../TextTranslation/models-languages.tsp | 37 ++- .../TextTranslation/models-translate.tsp | 47 ++-- .../TextTranslation/models-transliterate.tsp | 3 +- .../GetSupportedLanguages_MaximumSet_Gen.json | 94 +++++-- .../GetSupportedLanguages_MinimumSet_Gen.json | 124 ++++++++- .../preview/2025-10-01-preview/openapi.json | 243 +++++++----------- .../data-plane/TextTranslation/tspconfig.yaml | 7 +- 10 files changed, 586 insertions(+), 404 deletions(-) diff --git a/specification/translation/data-plane/TextTranslation/client.tsp b/specification/translation/data-plane/TextTranslation/client.tsp index 9b5e64cb3cd3..487ee0bbc4e1 100644 --- a/specification/translation/data-plane/TextTranslation/client.tsp +++ b/specification/translation/data-plane/TextTranslation/client.tsp @@ -1,222 +1,39 @@ import "./main.tsp"; -import "./models-breaksentence.tsp"; -import "./models-dictionary.tsp"; -import "./models-languages.tsp"; -import "./models-translate.tsp"; -import "./models-transliterate.tsp"; import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; -@@clientName(TextTranslation.BreakSentenceItem.sentLen, - "SentencesLengths", - "dotnet" -); -@@clientName(TextTranslation.BreakSentenceItem.sentLen, - "SentencesLengths", - "java" -); - -@@clientName(TextTranslation.BackTranslation.numExamples, - "ExamplesCount", - "dotnet" -); -@@clientName(TextTranslation.BackTranslation.numExamples, - "ExamplesCount", - "java" -); - -@@clientName(TextTranslation.DictionaryLookupParameters.from, - "SourceLanguage", - "dotnet" -); -@@clientName(TextTranslation.DictionaryLookupParameters.from, - "SourceLanguage", - "java" -); -@@clientName(TextTranslation.DictionaryLookupParameters.from, - "from_language", - "python" -); - -@@clientName(TextTranslation.DictionaryLookupParameters.to, - "TargetLanguage", - "dotnet" -); -@@clientName(TextTranslation.DictionaryLookupParameters.to, - "TargetLanguage", - "java" -); -@@clientName(TextTranslation.DictionaryLookupParameters.to, - "to_language", - "python" -); - -@@clientName(TextTranslation.DictionaryExamplesParameters.from, - "SourceLanguage", - "dotnet" -); -@@clientName(TextTranslation.DictionaryExamplesParameters.from, - "SourceLanguage", - "java" -); -@@clientName(TextTranslation.DictionaryExamplesParameters.from, - "from_language", - "python" -); - -@@clientName(TextTranslation.DictionaryExamplesParameters.to, - "TargetLanguage", - "dotnet" -); -@@clientName(TextTranslation.DictionaryExamplesParameters.to, - "TargetLanguage", - "java" -); -@@clientName(TextTranslation.DictionaryExamplesParameters.to, - "to_language", - "python" -); - @@clientName(TextTranslation.TranslationLanguage.dir, "Directionality", - "dotnet" + "csharp" ); @@clientName(TextTranslation.TranslationLanguage.dir, "Directionality", "java"); -@@clientName(TextTranslation.SourceDictionaryLanguage.dir, - "Directionality", - "dotnet" -); -@@clientName(TextTranslation.SourceDictionaryLanguage.dir, - "Directionality", - "java" -); - -@@clientName(TextTranslation.TargetDictionaryLanguage.dir, - "Directionality", - "dotnet" -); -@@clientName(TextTranslation.TargetDictionaryLanguage.dir, - "Directionality", - "java" -); - -@@clientName(TextTranslation.LanguageScript.dir, "Directionality", "dotnet"); +@@clientName(TextTranslation.LanguageScript.dir, "Directionality", "csharp"); @@clientName(TextTranslation.LanguageScript.dir, "Directionality", "java"); -@@clientName(TextTranslation.TranslationText.sentLen, - "SentenceBoundaries", - "dotnet" -); -@@clientName(TextTranslation.TranslationText.sentLen, - "SentenceBoundaries", - "java" -); - -@@clientName(TextTranslation.TranslationText.to, "TargetLanguage", "dotnet"); -@@clientName(TextTranslation.TranslationText.to, "TargetLanguage", "java"); - -@@clientName(TextTranslation.SentenceBoundaries.srcSentLen, - "SourceSentencesLengths", - "dotnet" -); -@@clientName(TextTranslation.SentenceBoundaries.srcSentLen, - "SourceSentencesLengths", - "java" -); - -@@clientName(TextTranslation.SentenceBoundaries.transSentLen, - "TranslatedSentencesLengths", - "dotnet" +@@clientName(TextTranslation.TranslateInputItem.targets, + "TranslationTargets", + "csharp" ); -@@clientName(TextTranslation.SentenceBoundaries.transSentLen, - "TranslatedSentencesLengths", +@@clientName(TextTranslation.TranslateInputItem.targets, + "TranslationTargets", "java" ); -@@clientName(TextTranslation.DetectedLanguage.score, "Confidence", "dotnet"); -@@clientName(TextTranslation.DetectedLanguage.score, "Confidence", "java"); - -@@clientName(TextTranslation.TranslateParameters.from, - "SourceLanguage", - "dotnet" -); -@@clientName(TextTranslation.TranslateParameters.from, - "SourceLanguage", +// customization for naming & access in java client +@@clientName(TextTranslation.translate::parameters.body, + "translateInput", "java" ); -@@clientName(TextTranslation.TranslateParameters.from, - "from_language", - "python" -); - -@@clientName(TextTranslation.TranslateParameters.to, - "TargetLanguages", - "dotnet" -); -@@clientName(TextTranslation.TranslateParameters.to, "TargetLanguages", "java"); -@@clientName(TextTranslation.TranslateParameters.to, "to_language", "python"); - -@@clientName(TextTranslation.TranslateParameters.fromScript, - "SourceLanguageScript", - "dotnet" -); -@@clientName(TextTranslation.TranslateParameters.fromScript, - "SourceLanguageScript", +@@clientName(TextTranslation.transliterate::parameters.body, + "transliterateInput", "java" ); -@@clientName(TextTranslation.TranslateParameters.toScript, - "TargetLanguageScript", - "dotnet" -); -@@clientName(TextTranslation.TranslateParameters.toScript, - "TargetLanguageScript", - "java" -); +@@access(TextTranslation.translate, Access.internal, "java"); +@@access(TextTranslation.TranslateInputItem, Access.public, "java"); +@@access(TextTranslation.TranslatedTextItem, Access.public, "java"); -@@clientName(TextTranslation.TranslateParameters.suggestedFrom, - "SuggestedSourceLanguage", - "dotnet" -); -@@clientName(TextTranslation.TranslateParameters.suggestedFrom, - "SuggestedSourceLanguage", - "java" -); - -@@clientName(TextTranslation.TranslatedTextAlignment.proj, - "Projections", - "dotnet" -); -@@clientName(TextTranslation.TranslatedTextAlignment.proj, - "Projections", - "java" -); - -@@clientName(TextTranslation.TransliterateParameters.fromScript, - "SourceLanguageScript", - "dotnet" -); -@@clientName(TextTranslation.TransliterateParameters.fromScript, - "SourceLanguageScript", - "java" -); - -@@clientName(TextTranslation.TransliterateParameters.toScript, - "TargetLanguageScript", - "dotnet" -); -@@clientName(TextTranslation.TransliterateParameters.toScript, - "TargetLanguageScript", - "java" -); - -@@clientName(TextTranslation.TransliterableScript.toScripts, - "TargetLanguageScripts", - "dotnet" -); -@@clientName(TextTranslation.TransliterableScript.toScripts, - "TargetLanguageScripts", - "java" -); +@@access(TextTranslation.transliterate, Access.internal, "java"); +@@access(TextTranslation.TransliteratedText, Access.public, "java"); diff --git a/specification/translation/data-plane/TextTranslation/examples/2025-10-01-preview/GetSupportedLanguages_MaximumSet_Gen.json b/specification/translation/data-plane/TextTranslation/examples/2025-10-01-preview/GetSupportedLanguages_MaximumSet_Gen.json index 6f8272101b23..4fef51a2a33b 100644 --- a/specification/translation/data-plane/TextTranslation/examples/2025-10-01-preview/GetSupportedLanguages_MaximumSet_Gen.json +++ b/specification/translation/data-plane/TextTranslation/examples/2025-10-01-preview/GetSupportedLanguages_MaximumSet_Gen.json @@ -3,7 +3,7 @@ "operationId": "GetSupportedLanguages", "parameters": { "X-ClientTraceId": "kayfnugjec", - "scope": "translation,transliteration,dictionary", + "scope": "translation,transliteration,models", "Accept-Language": "en", "If-None-Match": "fpnhruttllvc", "api-version": "2025-10-01-preview" @@ -12,15 +12,38 @@ "200": { "body": { "translation": { + "ar": { + "name": "Arabic", + "nativeName": "العربية", + "dir": "rtl", + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] + }, "en": { "name": "English", "nativeName": "English", - "dir": "ltr" + "dir": "ltr", + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] }, - "es": { - "name": "Spanish", - "nativeName": "Español", - "dir": "ltr" + "yue": { + "name": "Cantonese (Traditional)", + "nativeName": "粵語 (繁體)", + "dir": "ltr", + "models": [] + }, + "zh-Hans": { + "name": "Chinese Simplified", + "nativeName": "中文 (简体)", + "dir": "ltr", + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] } }, "transliteration": { @@ -57,23 +80,58 @@ ] } ] - } - }, - "dictionary": { - "cs": { - "name": "Czech", - "nativeName": "Čeština", - "dir": "ltr", - "translations": [ + }, + "zh-Hans": { + "name": "Chinese Simplified", + "nativeName": "中文 (简体)", + "scripts": [ + { + "code": "Hans", + "name": "Simplified", + "nativeName": "简体", + "dir": "ltr", + "toScripts": [ + { + "code": "Hant", + "name": "Hat", + "nativeName": "繁体", + "dir": "ltr" + }, + { + "code": "Latn", + "name": "Latin", + "nativeName": "拉丁文", + "dir": "ltr" + } + ] + }, { - "name": "English", - "nativeName": "English", + "code": "Latn", + "name": "Latin", + "nativeName": "拉丁文", "dir": "ltr", - "code": "en" + "toScripts": [ + { + "code": "Hans", + "name": "Han", + "nativeName": "简体", + "dir": "ltr" + }, + { + "code": "Hant", + "name": "Hat", + "nativeName": "繁体", + "dir": "ltr" + } + ] } ] } - } + }, + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] } } } diff --git a/specification/translation/data-plane/TextTranslation/examples/2025-10-01-preview/GetSupportedLanguages_MinimumSet_Gen.json b/specification/translation/data-plane/TextTranslation/examples/2025-10-01-preview/GetSupportedLanguages_MinimumSet_Gen.json index 2d8fd62fd176..1d24392d9460 100644 --- a/specification/translation/data-plane/TextTranslation/examples/2025-10-01-preview/GetSupportedLanguages_MinimumSet_Gen.json +++ b/specification/translation/data-plane/TextTranslation/examples/2025-10-01-preview/GetSupportedLanguages_MinimumSet_Gen.json @@ -6,7 +6,129 @@ }, "responses": { "200": { - "body": {} + "body": { + "translation": { + "ar": { + "name": "Arabic", + "nativeName": "العربية", + "dir": "rtl", + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] + }, + "en": { + "name": "English", + "nativeName": "English", + "dir": "ltr", + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] + }, + "yue": { + "name": "Cantonese (Traditional)", + "nativeName": "粵語 (繁體)", + "dir": "ltr", + "models": [] + }, + "zh-Hans": { + "name": "Chinese Simplified", + "nativeName": "中文 (简体)", + "dir": "ltr", + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] + } + }, + "transliteration": { + "ar": { + "name": "Arabic", + "nativeName": "العربية", + "scripts": [ + { + "code": "Arab", + "name": "Arabic", + "nativeName": "العربية", + "dir": "rtl", + "toScripts": [ + { + "code": "Latn", + "name": "Latin", + "nativeName": "اللاتينية", + "dir": "ltr" + } + ] + }, + { + "code": "Latn", + "name": "Latin", + "nativeName": "اللاتينية", + "dir": "ltr", + "toScripts": [ + { + "code": "Arab", + "name": "Arabic", + "nativeName": "العربية", + "dir": "rtl" + } + ] + } + ] + }, + "zh-Hans": { + "name": "Chinese Simplified", + "nativeName": "中文 (简体)", + "scripts": [ + { + "code": "Hans", + "name": "Simplified", + "nativeName": "简体", + "dir": "ltr", + "toScripts": [ + { + "code": "Hant", + "name": "Hat", + "nativeName": "繁体", + "dir": "ltr" + }, + { + "code": "Latn", + "name": "Latin", + "nativeName": "拉丁文", + "dir": "ltr" + } + ] + }, + { + "code": "Latn", + "name": "Latin", + "nativeName": "拉丁文", + "dir": "ltr", + "toScripts": [ + { + "code": "Hans", + "name": "Han", + "nativeName": "简体", + "dir": "ltr" + }, + { + "code": "Hant", + "name": "Hat", + "nativeName": "繁体", + "dir": "ltr" + } + ] + } + ] + } + }, + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] + } } } } diff --git a/specification/translation/data-plane/TextTranslation/models-languages.tsp b/specification/translation/data-plane/TextTranslation/models-languages.tsp index 990473500dbc..009b1ffa4c46 100644 --- a/specification/translation/data-plane/TextTranslation/models-languages.tsp +++ b/specification/translation/data-plane/TextTranslation/models-languages.tsp @@ -4,6 +4,7 @@ import "./models-shared.tsp"; using TypeSpec.Http; using TypeSpec.Rest; +using TypeSpec.Versioning; using Azure.Core; namespace TextTranslation; @@ -51,16 +52,36 @@ model GetSupportedLanguagesResult { To make subsequent requests more efficient, the client may send the `ETag` value in an `If-None-Match` header field. """) - etag: string; + etag: eTag; @doc("Languages that support translate API.") + @renamedFrom(APIVersion.v2025_10_01_preview, "translation") + @removed(APIVersion.v2025_10_01_preview) + translationV3?: Record; + + @doc("Languages that support transliteration API.") + @renamedFrom(APIVersion.v2025_10_01_preview, "transliteration") + @removed(APIVersion.v2025_10_01_preview) + transliterationV3?: Record; + + @doc("Languages that support translate API.") + @added(APIVersion.v2025_10_01_preview) + @visibility(Lifecycle.Read) translation?: Record; @doc("Languages that support transliteration API.") + @added(APIVersion.v2025_10_01_preview) + @visibility(Lifecycle.Read) transliteration?: Record; @doc("Languages that support dictionary API.") + @removed(APIVersion.v2025_10_01_preview) dictionary?: Record; + + @doc("LLM models supported.") + @added(APIVersion.v2025_10_01_preview) + @visibility(Lifecycle.Read) + models?: string[]; } alias BaseLanguage = { @@ -80,6 +101,11 @@ model TranslationLanguage { @doc("Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages.") dir: LanguageDirectionality; + + @doc("LLM models supported for translation.") + @added(APIVersion.v2025_10_01_preview) + @visibility(Lifecycle.Read) + models: string[]; } @doc(""" @@ -91,6 +117,13 @@ model TransliterationLanguage { ...BaseLanguage; @doc("List of scripts to convert from.") + @removed(APIVersion.v2025_10_01_preview) + @renamedFrom(APIVersion.v2025_10_01_preview, "scripts") + scriptsV3: TransliterableScript[]; + + @doc("List of scripts to convert from.") + @added(APIVersion.v2025_10_01_preview) + @visibility(Lifecycle.Read) scripts: TransliterableScript[]; } @@ -116,6 +149,7 @@ model LanguageScript { } @doc("Properties ot the source dictionary language") +@removed(APIVersion.v2025_10_01_preview) model SourceDictionaryLanguage { ...BaseLanguage; @@ -127,6 +161,7 @@ model SourceDictionaryLanguage { } @doc("Properties of the target dictionary language") +@removed(APIVersion.v2025_10_01_preview) model TargetDictionaryLanguage { ...BaseLanguage; diff --git a/specification/translation/data-plane/TextTranslation/models-translate.tsp b/specification/translation/data-plane/TextTranslation/models-translate.tsp index 9f47ded25e64..35bbbd4ebd65 100644 --- a/specification/translation/data-plane/TextTranslation/models-translate.tsp +++ b/specification/translation/data-plane/TextTranslation/models-translate.tsp @@ -124,9 +124,9 @@ model TranslateParameters { allowFallback?: boolean = true; } -@doc("Translate targets parameters") +@doc("Target language and translation configuration parameters.") @added(APIVersion.v2025_10_01_preview) -model TranslateTarget { +model TranslationTarget { @doc(""" Specifies the language of the output text. The target language must be one of the supported languages included in the translation scope. It's possible to translate to multiple languages simultaneously by including @@ -152,12 +152,12 @@ model TranslateTarget { profanityMarker?: ProfanityMarker = ProfanityMarker.Asterisk; @doc(""" - Default is ‘general’, which uses NMT system. - ‘abc-inc-gpt-4o’, and ‘abc-inc-gpt-4o-mini’ are examples of deployment names which use GPT-4o uses or - GPT-4o-mini model. ‘gpt-4o’ uses GPT-4o model. + Default is 'general', which uses NMT system. + 'abc-inc-gpt-4o', and 'abc-inc-gpt-4o-mini' are examples of deployment names which use GPT-4o uses or + GPT-4o-mini model. 'gpt-4o' uses GPT-4o model. - ‘’ uses the custom NMT model tuned by customer. - ‘best’ system determines which is the best model to use for the request. This intelligence could be introduced + '' uses the custom NMT model tuned by customer. + 'best' system determines which is the best model to use for the request. This intelligence could be introduced in future. Customer should have deployed it in their resource. """) @@ -199,13 +199,13 @@ model TranslateTarget { adaptiveDatasetId?: string; @doc(""" - Reference sentence pairs to generate adaptive results. + Reference text pairs to generate adaptive customized translation. """) @maxItems(5) - referenceTextPairs?: ReferenceSentencePair[]; + referenceTextPairs?: ReferenceTextPair[]; } -@doc("Request body for the translate API.") +@doc("Request data for translate.") @added(APIVersion.v2025_10_01_preview) model TranslateBody { @doc("Array of the input text elements to translate.") @@ -242,12 +242,12 @@ model TranslateInputItem { @doc(""" Translation target parameters. """) - targets: TranslateTarget[]; + targets: TranslationTarget[]; } -@doc("Reference sentence pair.") +@doc("Reference text pair to generate adaptive customized translation.") @added(APIVersion.v2025_10_01_preview) -model ReferenceSentencePair { +model ReferenceTextPair { @doc("Source reference sentence.") source: string; @@ -290,6 +290,7 @@ model TranslationResult { ...CommonResultHeaders; @doc("Array of the translated text elements.") + @visibility(Lifecycle.Read) value: TranslatedTextItem[]; @header("x-mt-system") @@ -354,6 +355,16 @@ model TranslatedTextItem { An array of translation results. The size of the array matches the number of target languages specified through the to query parameter. """) + @renamedFrom(APIVersion.v2025_10_01_preview, "translations") + @removed(APIVersion.v2025_10_01_preview) + translationsV3: TranslationText[]; + + @doc(""" + An array of translation results. The size of the array matches the number of target + languages specified through the to query parameter. + """) + @added(APIVersion.v2025_10_01_preview) + @visibility(Lifecycle.Read) translations: TranslationText[]; @removed(APIVersion.v2025_10_01_preview) @@ -389,23 +400,23 @@ model TranslationText { language: string; @added(APIVersion.v2025_10_01_preview) - @doc("An interger indicating the number of characters in the source text string") + @doc("An integer indicating the number of characters in the source text string") sourceCharacters?: int32; @added(APIVersion.v2025_10_01_preview) - @doc("An interger indicating the number of tokens used in generating the translated text") + @doc("An integer indicating the number of tokens used in generating the translated text") instructionTokens?: int32; @added(APIVersion.v2025_10_01_preview) - @doc("An interger indicating the number of tokens used in the source sentence") + @doc("An integer indicating the number of tokens used in the source sentence") sourceTokens?: int32; @added(APIVersion.v2025_10_01_preview) - @doc("An interger indicating the number of tokens used in the translation response") + @doc("An integer indicating the number of tokens used in the translation response") responseTokens?: int32; @added(APIVersion.v2025_10_01_preview) - @doc("An interger indicating the number of tokens used in the target sentence") + @doc("An integer indicating the number of tokens used in the target sentence") targetTokens?: int32; @doc("A string giving the translated text.") diff --git a/specification/translation/data-plane/TextTranslation/models-transliterate.tsp b/specification/translation/data-plane/TextTranslation/models-transliterate.tsp index 3fd9d4fec5a3..7adef7d9af12 100644 --- a/specification/translation/data-plane/TextTranslation/models-transliterate.tsp +++ b/specification/translation/data-plane/TextTranslation/models-transliterate.tsp @@ -36,7 +36,7 @@ model TransliterateParameters { toScript: string; } -@doc("Request body for the transliterate API.") +@doc("Request data for transliterate.") @added(APIVersion.v2025_10_01_preview) model TransliterateBody { @doc("Array of the input text elements to transliterate.") @@ -60,6 +60,7 @@ model TransliterateResult { ...CommonResultHeaders; @doc("Array of transliterated texts") + @visibility(Lifecycle.Read) value: TransliteratedText[]; } diff --git a/specification/translation/data-plane/TextTranslation/preview/2025-10-01-preview/examples/GetSupportedLanguages_MaximumSet_Gen.json b/specification/translation/data-plane/TextTranslation/preview/2025-10-01-preview/examples/GetSupportedLanguages_MaximumSet_Gen.json index 6f8272101b23..4fef51a2a33b 100644 --- a/specification/translation/data-plane/TextTranslation/preview/2025-10-01-preview/examples/GetSupportedLanguages_MaximumSet_Gen.json +++ b/specification/translation/data-plane/TextTranslation/preview/2025-10-01-preview/examples/GetSupportedLanguages_MaximumSet_Gen.json @@ -3,7 +3,7 @@ "operationId": "GetSupportedLanguages", "parameters": { "X-ClientTraceId": "kayfnugjec", - "scope": "translation,transliteration,dictionary", + "scope": "translation,transliteration,models", "Accept-Language": "en", "If-None-Match": "fpnhruttllvc", "api-version": "2025-10-01-preview" @@ -12,15 +12,38 @@ "200": { "body": { "translation": { + "ar": { + "name": "Arabic", + "nativeName": "العربية", + "dir": "rtl", + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] + }, "en": { "name": "English", "nativeName": "English", - "dir": "ltr" + "dir": "ltr", + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] }, - "es": { - "name": "Spanish", - "nativeName": "Español", - "dir": "ltr" + "yue": { + "name": "Cantonese (Traditional)", + "nativeName": "粵語 (繁體)", + "dir": "ltr", + "models": [] + }, + "zh-Hans": { + "name": "Chinese Simplified", + "nativeName": "中文 (简体)", + "dir": "ltr", + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] } }, "transliteration": { @@ -57,23 +80,58 @@ ] } ] - } - }, - "dictionary": { - "cs": { - "name": "Czech", - "nativeName": "Čeština", - "dir": "ltr", - "translations": [ + }, + "zh-Hans": { + "name": "Chinese Simplified", + "nativeName": "中文 (简体)", + "scripts": [ + { + "code": "Hans", + "name": "Simplified", + "nativeName": "简体", + "dir": "ltr", + "toScripts": [ + { + "code": "Hant", + "name": "Hat", + "nativeName": "繁体", + "dir": "ltr" + }, + { + "code": "Latn", + "name": "Latin", + "nativeName": "拉丁文", + "dir": "ltr" + } + ] + }, { - "name": "English", - "nativeName": "English", + "code": "Latn", + "name": "Latin", + "nativeName": "拉丁文", "dir": "ltr", - "code": "en" + "toScripts": [ + { + "code": "Hans", + "name": "Han", + "nativeName": "简体", + "dir": "ltr" + }, + { + "code": "Hant", + "name": "Hat", + "nativeName": "繁体", + "dir": "ltr" + } + ] } ] } - } + }, + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] } } } diff --git a/specification/translation/data-plane/TextTranslation/preview/2025-10-01-preview/examples/GetSupportedLanguages_MinimumSet_Gen.json b/specification/translation/data-plane/TextTranslation/preview/2025-10-01-preview/examples/GetSupportedLanguages_MinimumSet_Gen.json index 2d8fd62fd176..1d24392d9460 100644 --- a/specification/translation/data-plane/TextTranslation/preview/2025-10-01-preview/examples/GetSupportedLanguages_MinimumSet_Gen.json +++ b/specification/translation/data-plane/TextTranslation/preview/2025-10-01-preview/examples/GetSupportedLanguages_MinimumSet_Gen.json @@ -6,7 +6,129 @@ }, "responses": { "200": { - "body": {} + "body": { + "translation": { + "ar": { + "name": "Arabic", + "nativeName": "العربية", + "dir": "rtl", + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] + }, + "en": { + "name": "English", + "nativeName": "English", + "dir": "ltr", + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] + }, + "yue": { + "name": "Cantonese (Traditional)", + "nativeName": "粵語 (繁體)", + "dir": "ltr", + "models": [] + }, + "zh-Hans": { + "name": "Chinese Simplified", + "nativeName": "中文 (简体)", + "dir": "ltr", + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] + } + }, + "transliteration": { + "ar": { + "name": "Arabic", + "nativeName": "العربية", + "scripts": [ + { + "code": "Arab", + "name": "Arabic", + "nativeName": "العربية", + "dir": "rtl", + "toScripts": [ + { + "code": "Latn", + "name": "Latin", + "nativeName": "اللاتينية", + "dir": "ltr" + } + ] + }, + { + "code": "Latn", + "name": "Latin", + "nativeName": "اللاتينية", + "dir": "ltr", + "toScripts": [ + { + "code": "Arab", + "name": "Arabic", + "nativeName": "العربية", + "dir": "rtl" + } + ] + } + ] + }, + "zh-Hans": { + "name": "Chinese Simplified", + "nativeName": "中文 (简体)", + "scripts": [ + { + "code": "Hans", + "name": "Simplified", + "nativeName": "简体", + "dir": "ltr", + "toScripts": [ + { + "code": "Hant", + "name": "Hat", + "nativeName": "繁体", + "dir": "ltr" + }, + { + "code": "Latn", + "name": "Latin", + "nativeName": "拉丁文", + "dir": "ltr" + } + ] + }, + { + "code": "Latn", + "name": "Latin", + "nativeName": "拉丁文", + "dir": "ltr", + "toScripts": [ + { + "code": "Hans", + "name": "Han", + "nativeName": "简体", + "dir": "ltr" + }, + { + "code": "Hant", + "name": "Hat", + "nativeName": "繁体", + "dir": "ltr" + } + ] + } + ] + } + }, + "models": [ + "gpt-4o", + "gpt-4o-mini" + ] + } } } } diff --git a/specification/translation/data-plane/TextTranslation/preview/2025-10-01-preview/openapi.json b/specification/translation/data-plane/TextTranslation/preview/2025-10-01-preview/openapi.json index 9fa50612847b..719aa60b05c0 100644 --- a/specification/translation/data-plane/TextTranslation/preview/2025-10-01-preview/openapi.json +++ b/specification/translation/data-plane/TextTranslation/preview/2025-10-01-preview/openapi.json @@ -323,21 +323,24 @@ "description": "Languages that support translate API.", "additionalProperties": { "$ref": "#/definitions/TranslationLanguage" - } + }, + "readOnly": true }, "transliteration": { "type": "object", "description": "Languages that support transliteration API.", "additionalProperties": { "$ref": "#/definitions/TransliterationLanguage" - } + }, + "readOnly": true }, - "dictionary": { - "type": "object", - "description": "Languages that support dictionary API.", - "additionalProperties": { - "$ref": "#/definitions/SourceDictionaryLanguage" - } + "models": { + "type": "array", + "description": "LLM models supported.", + "items": { + "type": "string" + }, + "readOnly": true } } }, @@ -460,9 +463,9 @@ ] } }, - "ReferenceSentencePair": { + "ReferenceTextPair": { "type": "object", - "description": "Reference sentence pair.", + "description": "Reference text pair to generate adaptive customized translation.", "properties": { "source": { "type": "string", @@ -478,65 +481,6 @@ "target" ] }, - "SourceDictionaryLanguage": { - "type": "object", - "description": "Properties ot the source dictionary language", - "properties": { - "name": { - "type": "string", - "description": "Display name of the language in the locale requested via Accept-Language header." - }, - "nativeName": { - "type": "string", - "description": "Display name of the language in the locale native for this language." - }, - "dir": { - "$ref": "#/definitions/LanguageDirectionality", - "description": "Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages." - }, - "translations": { - "type": "array", - "description": "List of languages with alterative translations and examples for the query expressed in the source language.", - "items": { - "$ref": "#/definitions/TargetDictionaryLanguage" - } - } - }, - "required": [ - "name", - "nativeName", - "dir", - "translations" - ] - }, - "TargetDictionaryLanguage": { - "type": "object", - "description": "Properties of the target dictionary language", - "properties": { - "name": { - "type": "string", - "description": "Display name of the language in the locale requested via Accept-Language header." - }, - "nativeName": { - "type": "string", - "description": "Display name of the language in the locale native for this language." - }, - "dir": { - "$ref": "#/definitions/LanguageDirectionality", - "description": "Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages." - }, - "code": { - "type": "string", - "description": "Language code identifying the target language." - } - }, - "required": [ - "name", - "nativeName", - "dir", - "code" - ] - }, "TextType": { "type": "string", "description": "Translation text type", @@ -563,7 +507,7 @@ }, "TranslateBody": { "type": "object", - "description": "Request body for the translate API.", + "description": "Request data for translate.", "properties": { "inputs": { "type": "array", @@ -622,7 +566,7 @@ "type": "array", "description": "Translation target parameters.", "items": { - "$ref": "#/definitions/TranslateTarget" + "$ref": "#/definitions/TranslationTarget" } } }, @@ -635,9 +579,79 @@ "type": "object", "description": "Request parameters for the translate API." }, - "TranslateTarget": { + "TranslatedTextItem": { "type": "object", - "description": "Translate targets parameters", + "description": "Element containing the translated text", + "properties": { + "detectedLanguage": { + "$ref": "#/definitions/DetectedLanguage", + "description": "The detectedLanguage property is only present in the result object when language auto-detection is requested." + }, + "translations": { + "type": "array", + "description": "An array of translation results. The size of the array matches the number of target \nlanguages specified through the to query parameter.", + "items": { + "$ref": "#/definitions/TranslationText" + }, + "readOnly": true + } + }, + "required": [ + "translations" + ] + }, + "TranslationLanguage": { + "type": "object", + "description": "The value of the translation property is a dictionary of (key, value) pairs. Each key is a BCP 47 language tag.\nA key identifies a language for which text can be translated to or translated from.", + "properties": { + "name": { + "type": "string", + "description": "Display name of the language in the locale requested via Accept-Language header." + }, + "nativeName": { + "type": "string", + "description": "Display name of the language in the locale native for this language." + }, + "dir": { + "$ref": "#/definitions/LanguageDirectionality", + "description": "Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages." + }, + "models": { + "type": "array", + "description": "LLM models supported for translation.", + "items": { + "type": "string" + }, + "readOnly": true + } + }, + "required": [ + "name", + "nativeName", + "dir", + "models" + ] + }, + "TranslationResult": { + "type": "object", + "description": "Response for the translation API.", + "properties": { + "value": { + "type": "array", + "description": "Array of the translated text elements.", + "items": { + "$ref": "#/definitions/TranslatedTextItem" + }, + "readOnly": true + } + }, + "required": [ + "value" + ] + }, + "TranslationTarget": { + "type": "object", + "description": "Target language and translation configuration parameters.", "properties": { "language": { "type": "string", @@ -705,7 +719,7 @@ }, "deploymentName": { "type": "string", - "description": "Default is ‘general’, which uses NMT system.\n‘abc-inc-gpt-4o’, and ‘abc-inc-gpt-4o-mini’ are examples of deployment names which use GPT-4o uses or \nGPT-4o-mini model. ‘gpt-4o’ uses GPT-4o model. \n\n‘’ uses the custom NMT model tuned by customer.\n‘best’ system determines which is the best model to use for the request. This intelligence could be introduced\nin future. Customer should have deployed it in their resource.\n", + "description": "Default is 'general', which uses NMT system.\n'abc-inc-gpt-4o', and 'abc-inc-gpt-4o-mini' are examples of deployment names which use GPT-4o uses or\nGPT-4o-mini model. 'gpt-4o' uses GPT-4o model.\n\n'' uses the custom NMT model tuned by customer.\n'best' system determines which is the best model to use for the request. This intelligence could be introduced\nin future. Customer should have deployed it in their resource.\n", "default": "general" }, "allowFallback": { @@ -732,10 +746,10 @@ }, "referenceTextPairs": { "type": "array", - "description": "Reference sentence pairs to generate adaptive results.", + "description": "Reference text pairs to generate adaptive customized translation.", "maxItems": 5, "items": { - "$ref": "#/definitions/ReferenceSentencePair" + "$ref": "#/definitions/ReferenceTextPair" } } }, @@ -743,65 +757,6 @@ "language" ] }, - "TranslatedTextItem": { - "type": "object", - "description": "Element containing the translated text", - "properties": { - "detectedLanguage": { - "$ref": "#/definitions/DetectedLanguage", - "description": "The detectedLanguage property is only present in the result object when language auto-detection is requested." - }, - "translations": { - "type": "array", - "description": "An array of translation results. The size of the array matches the number of target \nlanguages specified through the to query parameter.", - "items": { - "$ref": "#/definitions/TranslationText" - } - } - }, - "required": [ - "translations" - ] - }, - "TranslationLanguage": { - "type": "object", - "description": "The value of the translation property is a dictionary of (key, value) pairs. Each key is a BCP 47 language tag.\nA key identifies a language for which text can be translated to or translated from.", - "properties": { - "name": { - "type": "string", - "description": "Display name of the language in the locale requested via Accept-Language header." - }, - "nativeName": { - "type": "string", - "description": "Display name of the language in the locale native for this language." - }, - "dir": { - "$ref": "#/definitions/LanguageDirectionality", - "description": "Directionality, which is rtl for right-to-left languages or ltr for left-to-right languages." - } - }, - "required": [ - "name", - "nativeName", - "dir" - ] - }, - "TranslationResult": { - "type": "object", - "description": "Response for the translation API.", - "properties": { - "value": { - "type": "array", - "description": "Array of the translated text elements.", - "items": { - "$ref": "#/definitions/TranslatedTextItem" - } - } - }, - "required": [ - "value" - ] - }, "TranslationText": { "type": "object", "description": "Translation result", @@ -813,27 +768,27 @@ "sourceCharacters": { "type": "integer", "format": "int32", - "description": "An interger indicating the number of characters in the source text string" + "description": "An integer indicating the number of characters in the source text string" }, "instructionTokens": { "type": "integer", "format": "int32", - "description": "An interger indicating the number of tokens used in generating the translated text" + "description": "An integer indicating the number of tokens used in generating the translated text" }, "sourceTokens": { "type": "integer", "format": "int32", - "description": "An interger indicating the number of tokens used in the source sentence" + "description": "An integer indicating the number of tokens used in the source sentence" }, "responseTokens": { "type": "integer", "format": "int32", - "description": "An interger indicating the number of tokens used in the translation response" + "description": "An integer indicating the number of tokens used in the translation response" }, "targetTokens": { "type": "integer", "format": "int32", - "description": "An interger indicating the number of tokens used in the target sentence" + "description": "An integer indicating the number of tokens used in the target sentence" }, "text": { "type": "string", @@ -868,7 +823,7 @@ }, "TransliterateBody": { "type": "object", - "description": "Request body for the transliterate API.", + "description": "Request data for transliterate.", "properties": { "inputs": { "type": "array", @@ -891,7 +846,8 @@ "description": "Array of transliterated texts", "items": { "$ref": "#/definitions/TransliteratedText" - } + }, + "readOnly": true } }, "required": [ @@ -933,7 +889,8 @@ "description": "List of scripts to convert from.", "items": { "$ref": "#/definitions/TransliterableScript" - } + }, + "readOnly": true } }, "required": [ diff --git a/specification/translation/data-plane/TextTranslation/tspconfig.yaml b/specification/translation/data-plane/TextTranslation/tspconfig.yaml index 4ac785e5d5be..c7f1d1018696 100644 --- a/specification/translation/data-plane/TextTranslation/tspconfig.yaml +++ b/specification/translation/data-plane/TextTranslation/tspconfig.yaml @@ -30,14 +30,15 @@ options: namespace: "azure.ai.translation.text" emitter-output-dir: "{output-dir}/{service-dir}/azure-ai-translation-text" flavor: azure - generate-test: true - generate-sample: true + generate-test: false + generate-sample: false "@azure-tools/typespec-java": emitter-output-dir: "{output-dir}/{service-dir}/azure-ai-translation-text" namespace: com.azure.ai.translation.text partial-update: true generate-tests: false - customization-class: customization/src/main/java/TextTranslationClientBuilderCustomization.java + generate-samples: false + customization-class: customization/src/main/java/TextTranslationCustomization.java use-eclipse-language-server: false flavor: azure "@azure-tools/typespec-ts": From c5c49c665603a5408c5ebc2152e898566791d911 Mon Sep 17 00:00:00 2001 From: Arthur Ma Date: Tue, 16 Dec 2025 15:25:28 +0800 Subject: [PATCH 036/117] Update Nginx spec (#39215) --- .../nginx/Nginx.Management/client.tsp | 32 ++++++++++++++++--- .../nginx/Nginx.Management/tspconfig.yaml | 7 ++-- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/specification/nginx/Nginx.Management/client.tsp b/specification/nginx/Nginx.Management/client.tsp index 5b0909818d2e..2e6effb21f6d 100644 --- a/specification/nginx/Nginx.Management/client.tsp +++ b/specification/nginx/Nginx.Management/client.tsp @@ -90,14 +90,29 @@ using Azure.Core; "NginxCertificateError", "csharp" ); -@@clientName(NginxConfigurationResponseProperties, - "NginxConfigurationProperties", +@@clientName(NginxConfigurationRequest, + "NginxConfigurationCreateOrUpdateContent", "csharp" ); +@@clientName(NginxConfigurationRequest.type, "ResourceType", "csharp"); @@clientName(NginxConfigurationRequestProperties, "NginxConfigurationCreateOrUpdateProperties", "csharp" ); +@@clientName(NginxDeploymentApiKeyRequest, + "NginxDeploymentApiKeyCreateOrUpdateContent", + "csharp" +); +@@clientName(NginxDeploymentApiKeyRequest.type, "ResourceType", "csharp"); +@@clientName(NginxDeploymentDefaultWafPolicyListResponse, + "NginxDeploymentDefaultWafPolicyListResult", + "csharp" +); +@@clientName(NginxDeploymentProperties.ipAddress, "IPAddress", "csharp"); +@@clientName(NginxDeploymentScalingPropertiesAutoScaleSettings, + "NginxDeploymentAutoScaleSettings", + "csharp" +); @@clientName(AnalysisResult, "NginxAnalysisResult", "csharp"); @@clientName(AnalysisDiagnostic, "NginxAnalysisDiagnostic", "csharp"); @@ -121,6 +136,7 @@ using Azure.Core; @@clientName(AnalysisResultData, "NginxAnalysisResultDetails", "csharp"); @@clientName(Level, "NginxDiagnosticLevel", "csharp"); @@clientName(NginxConfigurationResponse, "NginxConfiguration", "csharp"); +@@usage(NginxConfigurationResponse, Usage.input, "csharp"); @@clientName(NginxConfigurationResponseProperties, "NginxConfigurationProperties", "csharp" @@ -131,11 +147,11 @@ using Azure.Core; "csharp" ); @@clientName(NginxConfigurationProtectedFileRequest, - "NginxConfigurationProtectedFileContent", + "NginxConfigurationContentProtectedFile", "csharp" ); @@clientName(NginxConfigurationProtectedFileResponse, - "NginxConfigurationProtectedFileResult", + "NginxConfigurationProtectedFile", "csharp" ); @@ -166,3 +182,11 @@ using Azure.Core; "GetDefaultWafPolicies", "csharp" ); +@@alternateType(NginxDeployment.identity, + Azure.ResourceManager.CommonTypes.ManagedServiceIdentity, + "csharp" +); +@@alternateType(NginxDeploymentUpdateParameters.identity, + Azure.ResourceManager.CommonTypes.ManagedServiceIdentity, + "csharp" +); diff --git a/specification/nginx/Nginx.Management/tspconfig.yaml b/specification/nginx/Nginx.Management/tspconfig.yaml index 268e3fda76b7..68c5e8de057b 100644 --- a/specification/nginx/Nginx.Management/tspconfig.yaml +++ b/specification/nginx/Nginx.Management/tspconfig.yaml @@ -11,12 +11,9 @@ options: output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/swagger.json" emit-lro-options: "all" examples-dir: "{project-root}/examples" - "@azure-tools/typespec-csharp": - flavor: azure - emitter-output-dir: "{output-dir}/{service-dir}/Azure.ResourceManager.Nginx" - clear-output-folder: true - model-namespace: true + "@azure-typespec/http-client-csharp-mgmt": namespace: "Azure.ResourceManager.Nginx" + emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" "@azure-tools/typespec-python": emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-nginx" namespace: "azure.mgmt.nginx" From 18609d68cf243ee3ce35d7c005ff3c7dd2cd9477 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Tue, 16 Dec 2025 16:03:00 +0800 Subject: [PATCH 037/117] [TSV] Add new rule for python configuration validation for mgmt SDKs (#39142) * add new rule for python configuration validation * Refactor TspConfigPythonNamespaceMatchesEmitterOutputDirSubRule for improved validation logic --------- Co-authored-by: Kyle Zhang --- .../src/rules/sdk-tspconfig-validation.ts | 29 ++++++++++ .../test/sdk-tspconfig-validation.test.ts | 54 +++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/eng/tools/typespec-validation/src/rules/sdk-tspconfig-validation.ts b/eng/tools/typespec-validation/src/rules/sdk-tspconfig-validation.ts index 7d25d569f06f..dbf9b60fc6a2 100644 --- a/eng/tools/typespec-validation/src/rules/sdk-tspconfig-validation.ts +++ b/eng/tools/typespec-validation/src/rules/sdk-tspconfig-validation.ts @@ -636,6 +636,34 @@ export class TspConfigPythonMgmtNamespaceSubRule extends TspconfigEmitterOptions } } +export class TspConfigPythonNamespaceMatchesEmitterOutputDirSubRule extends TspconfigEmitterOptionsSubRuleBase { + constructor() { + super("@azure-tools/typespec-python", "namespace", "derived from emitter-output-dir"); + } + protected skip(_: any, folder: string) { + return skipForDataPlane(folder); + } + protected validate(config: any): RuleResult { + const resolvedSegmentResult = this.getPackageDirFromEmitterOutputDir(config); + if (resolvedSegmentResult.error) { + return this.createFailedResult( + resolvedSegmentResult.error, + `Please add "options.${this.emitterName}.emitter-output-dir" with a path matching the SDK naming convention`, + ); + } + const derivedNamespace = resolvedSegmentResult.resolved.replace(/-/g, "."); + const namespaceOption = this.tryFindOption(config); + const namespace = namespaceOption as unknown as undefined | string; + if (derivedNamespace !== namespace) + return this.createFailedResult( + `The value of options.${this.emitterName}.namespace "${namespace}" does not match the value derived from options.${this.emitterName}.emitter-output-dir "${derivedNamespace}"`, + `Please update "options.${this.emitterName}.namespace" to "${derivedNamespace}" or adjust "options.${this.emitterName}.emitter-output-dir" so the derived namespace matches`, + ); + + return { success: true }; + } +} + // ----- Python data plane sub rules ----- export class TspConfigPythonDpEmitterOutputDirSubRule extends TspconfigEmitterOptionsEmitterOutputDirSubRuleBase { constructor() { @@ -715,6 +743,7 @@ export const defaultRules = [ new TspConfigPythonMgmtEmitterOutputDirSubRule(), new TspConfigPythonMgmtNamespaceSubRule(), new TspConfigPythonDpEmitterOutputDirSubRule(), + new TspConfigPythonNamespaceMatchesEmitterOutputDirSubRule(), new TspConfigPythonMgmtPackageGenerateSampleTrueSubRule(), new TspConfigPythonMgmtPackageGenerateTestTrueSubRule(), new TspConfigCsharpAzNamespaceSubRule(), diff --git a/eng/tools/typespec-validation/test/sdk-tspconfig-validation.test.ts b/eng/tools/typespec-validation/test/sdk-tspconfig-validation.test.ts index d8917a246698..601534b0f005 100644 --- a/eng/tools/typespec-validation/test/sdk-tspconfig-validation.test.ts +++ b/eng/tools/typespec-validation/test/sdk-tspconfig-validation.test.ts @@ -33,6 +33,7 @@ import { TspConfigPythonMgmtNamespaceSubRule, TspConfigPythonMgmtPackageGenerateSampleTrueSubRule, TspConfigPythonMgmtPackageGenerateTestTrueSubRule, + TspConfigPythonNamespaceMatchesEmitterOutputDirSubRule, TspconfigSubRuleBase, TspConfigTsDpEmitterOutputDirSubRule, TspConfigTsMgmtModularEmitterOutputDirSubRule, @@ -501,6 +502,58 @@ const pythonManagementNamespaceTestCases = createEmitterOptionTestCases( [new TspConfigPythonMgmtNamespaceSubRule()], ); +const pythonManagementNamespaceDerivedTestCases: Case[] = [ + { + description: "Validate Python namespace derived from emitter-output-dir", + folder: managementTspconfigFolder, + tspconfigContent: ` +options: + "@azure-tools/typespec-python": + namespace: "azure.mgmt.compute" + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-compute" +`, + success: true, + subRules: [new TspConfigPythonNamespaceMatchesEmitterOutputDirSubRule()], + }, + { + description: + "Validate Python namespace derived from emitter-output-dir with namespace variable", + folder: managementTspconfigFolder, + tspconfigContent: ` +options: + "@azure-tools/typespec-python": + namespace: "azure.mgmt.storage" + emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" +`, + success: true, + subRules: [new TspConfigPythonNamespaceMatchesEmitterOutputDirSubRule()], + }, + { + description: "Invalidate Python namespace when derived value mismatches", + folder: managementTspconfigFolder, + tspconfigContent: ` +options: + "@azure-tools/typespec-python": + namespace: "azure.mgmt.mismatch" + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-compute" +`, + success: false, + subRules: [new TspConfigPythonNamespaceMatchesEmitterOutputDirSubRule()], + }, + { + description: "Skip Python namespace derivation rule for data plane", + folder: "", + tspconfigContent: ` +options: + "@azure-tools/typespec-python": + namespace: "azure.mgmt.mismatch" + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-compute" +`, + success: true, + subRules: [new TspConfigPythonNamespaceMatchesEmitterOutputDirSubRule()], + }, +]; + const pythonManagementGenerateTestTestCases = createEmitterOptionTestCases( "@azure-tools/typespec-python", managementTspconfigFolder, @@ -725,6 +778,7 @@ describe("tspconfig", function () { // python ...pythonManagementEmitterOutputDirTestCases, ...pythonManagementNamespaceTestCases, + ...pythonManagementNamespaceDerivedTestCases, ...pythonManagementGenerateTestTestCases, ...pythonManagementGenerateSampleTestCases, ...pythonDpEmitterOutputTestCases, From e9b44e3aefed8010c02f030abab631b55a8d29de Mon Sep 17 00:00:00 2001 From: Weidong Xu Date: Wed, 17 Dec 2025 10:59:00 +0800 Subject: [PATCH 038/117] mgmt, flatten only for autorest (#39252) --- .../HybridConnectivity.Management/PublicCloud.tsp | 4 ++-- .../HybridConnectivity.Management/client.tsp | 1 + .../models/autonomousdatabase/autonomousDatabase.tsp | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/specification/hybridconnectivity/HybridConnectivity.Management/PublicCloud.tsp b/specification/hybridconnectivity/HybridConnectivity.Management/PublicCloud.tsp index 63fd2f665def..81eb4eed43cb 100644 --- a/specification/hybridconnectivity/HybridConnectivity.Management/PublicCloud.tsp +++ b/specification/hybridconnectivity/HybridConnectivity.Management/PublicCloud.tsp @@ -101,7 +101,7 @@ model PublicCloudConnector is TrackedResource { model PublicCloudConnectorUpdate extends TrackedResourceUpdate { #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" @doc("The resource-specific properties for this resource.") - @Azure.ClientGenerator.Core.Legacy.flattenProperty + @Azure.ClientGenerator.Core.Legacy.flattenProperty("autorest") properties?: PublicCloudConnectorPropertiesUpdate; } @@ -210,7 +210,7 @@ model SolutionConfigurationUpdate extends Azure.ResourceManager.CommonTypes.ProxyResource { #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" @doc("The resource-specific properties for this resource.") - @Azure.ClientGenerator.Core.Legacy.flattenProperty + @Azure.ClientGenerator.Core.Legacy.flattenProperty("autorest") properties?: SolutionConfigurationPropertiesUpdate; } diff --git a/specification/hybridconnectivity/HybridConnectivity.Management/client.tsp b/specification/hybridconnectivity/HybridConnectivity.Management/client.tsp index 51eebd37da1c..61ae5fd848a6 100644 --- a/specification/hybridconnectivity/HybridConnectivity.Management/client.tsp +++ b/specification/hybridconnectivity/HybridConnectivity.Management/client.tsp @@ -85,6 +85,7 @@ namespace Microsoft.HybridConnectivity; ); @@clientName(ServiceConfigurationResources, "ServiceConfigurations", "java"); @@clientName(EndpointResources, "Endpoints", "java"); +@@clientName(AADProfileProperties, "AadProfileProperties", "java"); @@clientName(Microsoft.HybridConnectivity, "HybridConnectivityManagementAPI", diff --git a/specification/oracle/Oracle.Database.Management/models/autonomousdatabase/autonomousDatabase.tsp b/specification/oracle/Oracle.Database.Management/models/autonomousdatabase/autonomousDatabase.tsp index c6b655e6586c..e663abdb6a40 100644 --- a/specification/oracle/Oracle.Database.Management/models/autonomousdatabase/autonomousDatabase.tsp +++ b/specification/oracle/Oracle.Database.Management/models/autonomousdatabase/autonomousDatabase.tsp @@ -614,7 +614,7 @@ model AutonomousDatabaseUpdate >>> { #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "backward compatibility" @doc("The resource-specific properties for this resource.") - @Azure.ClientGenerator.Core.Legacy.flattenProperty + @Azure.ClientGenerator.Core.Legacy.flattenProperty("autorest") properties?: AutonomousDatabaseUpdateProperties; } From be31c7768b25795ee6aadd24783100254499c845 Mon Sep 17 00:00:00 2001 From: mcgallan <88413158+mcgallan@users.noreply.github.com> Date: Wed, 17 Dec 2025 11:00:44 +0800 Subject: [PATCH 039/117] Migrate PostgreSql to TypeSpec (#36556) --- .../AdministratorMicrosoftEntra.tsp | 77 + .../AdvancedThreatProtectionSettingsModel.tsp | 65 + .../BackupAutomaticAndOnDemand.tsp | 69 + .../BackupsLongTermRetentionOperation.tsp | 69 + .../Configuration.tsp | 84 + .../DBforPostgreSQL.Management/Database.tsp | 72 + .../FirewallRule.tsp | 70 + .../DBforPostgreSQL.Management/Migration.tsp | 79 + .../PrivateEndpointConnection.tsp | 63 + .../PrivateLinkResource.tsp | 45 + .../DBforPostgreSQL.Management/Server.tsp | 221 + .../TuningOptions.tsp | 67 + .../VirtualEndpoint.tsp | 91 + .../back-compatible.tsp | 196 + .../DBforPostgreSQL.Management/client.tsp | 33 + .../AdministratorsMicrosoftEntraAdd.json | 26 + .../AdministratorsMicrosoftEntraDelete.json | 20 + .../AdministratorsMicrosoftEntraGet.json | 26 + ...inistratorsMicrosoftEntraListByServer.json | 38 + ...hreatProtectionSettingsCreateOrUpdate.json | 24 + .../AdvancedThreatProtectionSettingsGet.json | 24 + ...dThreatProtectionSettingsListByServer.json | 27 + .../BackupsAutomaticAndOnDemandCreate.json | 19 + .../BackupsAutomaticAndOnDemandDelete.json | 20 + .../BackupsAutomaticAndOnDemandGet.json | 25 + ...ckupsAutomaticAndOnDemandListByServer.json | 38 + ...psLongTermRetentionCheckPrerequisites.json | 24 + .../BackupsLongTermRetentionGet.json | 30 + .../BackupsLongTermRetentionListByServer.json | 33 + .../BackupsLongTermRetentionStart.json | 41 + .../CapabilitiesByLocationList.json | 2333 ++++ .../2025-08-01/CapabilitiesByServerList.json | 2091 ++++ .../2025-08-01/CapturedLogsListByServer.json | 30 + .../2025-08-01/ConfigurationsGet.json | 32 + .../ConfigurationsListByServer.json | 7127 +++++++++++++ .../2025-08-01/ConfigurationsUpdate.json | 25 + .../ConfigurationsUpdateUsingPut.json | 25 + .../examples/2025-08-01/DatabasesCreate.json | 25 + .../examples/2025-08-01/DatabasesDelete.json | 20 + .../examples/2025-08-01/DatabasesGet.json | 24 + .../2025-08-01/DatabasesListByServer.json | 36 + .../FirewallRulesCreateOrUpdate.json | 25 + .../2025-08-01/FirewallRulesDelete.json | 20 + .../examples/2025-08-01/FirewallRulesGet.json | 24 + .../2025-08-01/FirewallRulesListByServer.json | 37 + .../examples/2025-08-01/MigrationsCancel.json | 59 + .../MigrationsCheckNameAvailability.json | 25 + .../examples/2025-08-01/MigrationsCreate.json | 103 + ...CreateOtherSourceTypesValidateMigrate.json | 109 + .../MigrationsCreateValidateOnly.json | 102 + ...onsCreateWithFullyQualifiedDomainName.json | 109 + .../MigrationsCreateWithOtherUsers.json | 103 + ...tionsCreateWithPrivateEndpointServers.json | 106 + .../2025-08-01/MigrationsCreateWithRoles.json | 104 + .../examples/2025-08-01/MigrationsGet.json | 64 + ...nWithSuccessfulValidationAndMigration.json | 102 + ...ccessfulValidationButMigrationFailure.json | 100 + ...MigrationWithSuccessfulValidationOnly.json | 84 + ...onsGetMigrationWithValidationFailures.json | 200 + .../MigrationsListByTargetServer.json | 67 + .../examples/2025-08-01/MigrationsUpdate.json | 69 + .../NameAvailabilityCheckGlobally.json | 22 + .../NameAvailabilityCheckWithLocation.json | 23 + .../examples/2025-08-01/OperationsList.json | 2194 ++++ .../2025-08-01/PrivateDnsZoneSuffixGet.json | 13 + .../PrivateEndpointConnectionsDelete.json | 20 + .../PrivateEndpointConnectionsGet.json | 34 + .../PrivateEndpointConnectionsList.json | 56 + .../PrivateEndpointConnectionsUpdate.json | 27 + .../2025-08-01/PrivateLinkResourcesGet.json | 29 + .../2025-08-01/PrivateLinkResourcesList.json | 32 + .../QuotaUsagesForFlexibleServers.json | 37 + .../2025-08-01/ReplicasListByServer.json | 74 + .../2025-08-01/ServersClusterCreate.json | 50 + ...teGeoRestoreWithDataEncryptionEnabled.json | 40 + ...reWithDataEncryptionEnabledAutoUpdate.json | 40 + ...workWithZoneRedundantHighAvailability.json | 51 + ...alNetworkWithSameZoneHighAvailability.json | 52 + .../ServersCreatePointInTimeRestore.json | 26 + .../2025-08-01/ServersCreateReplica.json | 39 + .../ServersCreateReviveDropped.json | 26 + ...erversCreateWithDataEncryptionEnabled.json | 61 + ...teWithDataEncryptionEnabledAutoUpdate.json | 61 + ...VirtualNetworkWithoutHighAvailability.json | 56 + .../examples/2025-08-01/ServersDelete.json | 19 + .../examples/2025-08-01/ServersGet.json | 74 + .../ServersGetWithPrivateEndpoints.json | 81 + .../2025-08-01/ServersGetWithVnet.json | 79 + .../ServersListByResourceGroup.json | 160 + .../2025-08-01/ServersListBySubscription.json | 283 + ...romoteReplicaAsForcedStandaloneServer.json | 26 + ...rversPromoteReplicaAsForcedSwitchover.json | 26 + ...omoteReplicaAsPlannedStandaloneServer.json | 26 + ...versPromoteReplicaAsPlannedSwitchover.json | 26 + .../examples/2025-08-01/ServersRestart.json | 18 + .../ServersRestartWithFailover.json | 22 + .../examples/2025-08-01/ServersStart.json | 18 + .../examples/2025-08-01/ServersStop.json | 18 + .../examples/2025-08-01/ServersUpdate.json | 36 + ...versUpdateWithCustomMaintenanceWindow.json | 29 + ...erversUpdateWithDataEncryptionEnabled.json | 45 + ...teWithDataEncryptionEnabledAutoUpdate.json | 45 + .../ServersUpdateWithMajorVersionUpgrade.json | 24 + ...erversUpdateWithMicrosoftEntraEnabled.json | 41 + .../examples/2025-08-01/TuningOptionsGet.json | 20 + .../2025-08-01/TuningOptionsListByServer.json | 28 + ...TuningOptionsListIndexRecommendations.json | 129 + ...RecommendationsFilteredForCreateIndex.json | 130 + ...TuningOptionsListTableRecommendations.json | 91 + ...ecommendationsFilteredForAnalyzeTable.json | 92 + .../2025-08-01/VirtualEndpointCreate.json | 27 + .../2025-08-01/VirtualEndpointDelete.json | 20 + .../2025-08-01/VirtualEndpointUpdate.json | 27 + .../2025-08-01/VirtualEndpointsGet.json | 30 + .../VirtualEndpointsListByServer.json | 33 + .../VirtualNetworkSubnetUsageList.json | 30 + .../DBforPostgreSQL.Management/main.tsp | 68 + .../DBforPostgreSQL.Management/models.tsp | 3540 +++++++ .../DBforPostgreSQL.Management/routes.tsp | 136 + .../DBforPostgreSQL.Management/tspconfig.yaml | 50 + specification/postgresql/cspell.yaml | 1 + .../AdministratorsMicrosoftEntra.json | 435 - .../AdvancedThreatProtectionSettings.json | 288 - .../BackupsAutomaticAndOnDemand.json | 322 - .../2025-08-01/BackupsLongTermRetention.json | 537 - .../stable/2025-08-01/Capabilities.json | 775 -- .../stable/2025-08-01/CapturedLogs.json | 149 - .../stable/2025-08-01/Configurations.json | 409 - .../stable/2025-08-01/Databases.json | 310 - .../stable/2025-08-01/FirewallRules.json | 317 - .../stable/2025-08-01/Migrations.json | 1748 --- .../stable/2025-08-01/NameAvailability.json | 155 - .../stable/2025-08-01/Operations.json | 181 - .../2025-08-01/PrivateDnsZoneSuffix.json | 77 - .../PrivateEndpointConnections.json | 267 - .../2025-08-01/PrivateLinkResources.json | 155 - .../stable/2025-08-01/QuotaUsages.json | 148 - .../stable/2025-08-01/Replicas.json | 83 - .../stable/2025-08-01/Servers.json | 2118 ---- .../stable/2025-08-01/TuningOptions.json | 464 - .../stable/2025-08-01/VirtualEndpoints.json | 403 - .../2025-08-01/VirtualNetworkSubnetUsage.json | 142 - .../AdministratorsMicrosoftEntraAdd.json | 16 +- .../AdministratorsMicrosoftEntraDelete.json | 8 +- .../AdministratorsMicrosoftEntraGet.json | 20 +- ...inistratorsMicrosoftEntraListByServer.json | 28 +- ...hreatProtectionSettingsCreateOrUpdate.json | 14 +- .../AdvancedThreatProtectionSettingsGet.json | 12 +- ...dThreatProtectionSettingsListByServer.json | 14 +- .../BackupsAutomaticAndOnDemandCreate.json | 8 +- .../BackupsAutomaticAndOnDemandDelete.json | 8 +- .../BackupsAutomaticAndOnDemandGet.json | 20 +- ...ckupsAutomaticAndOnDemandListByServer.json | 32 +- ...psLongTermRetentionCheckPrerequisites.json | 12 +- .../examples/BackupsLongTermRetentionGet.json | 24 +- .../BackupsLongTermRetentionListByServer.json | 18 +- .../BackupsLongTermRetentionStart.json | 26 +- .../examples/CapabilitiesByLocationList.json | 1528 +-- .../examples/CapabilitiesByServerList.json | 1336 +-- .../examples/CapturedLogsListByServer.json | 20 +- .../examples/ConfigurationsGet.json | 28 +- .../examples/ConfigurationsListByServer.json | 8278 +++++++-------- .../examples/ConfigurationsUpdate.json | 16 +- .../ConfigurationsUpdateUsingPut.json | 16 +- .../2025-08-01/examples/DatabasesCreate.json | 12 +- .../2025-08-01/examples/DatabasesDelete.json | 8 +- .../2025-08-01/examples/DatabasesGet.json | 10 +- .../examples/DatabasesListByServer.json | 12 +- .../examples/FirewallRulesCreateOrUpdate.json | 16 +- .../examples/FirewallRulesDelete.json | 8 +- .../2025-08-01/examples/FirewallRulesGet.json | 14 +- .../examples/FirewallRulesListByServer.json | 24 +- .../2025-08-01/examples/MigrationsCancel.json | 52 +- .../MigrationsCheckNameAvailability.json | 16 +- .../2025-08-01/examples/MigrationsCreate.json | 82 +- ...CreateOtherSourceTypesValidateMigrate.json | 96 +- .../MigrationsCreateValidateOnly.json | 86 +- ...onsCreateWithFullyQualifiedDomainName.json | 90 +- .../MigrationsCreateWithOtherUsers.json | 84 +- ...tionsCreateWithPrivateEndpointServers.json | 88 +- .../examples/MigrationsCreateWithRoles.json | 84 +- .../2025-08-01/examples/MigrationsGet.json | 70 +- ...nWithSuccessfulValidationAndMigration.json | 100 +- ...ccessfulValidationButMigrationFailure.json | 92 +- ...MigrationWithSuccessfulValidationOnly.json | 80 +- ...onsGetMigrationWithValidationFailures.json | 108 +- .../MigrationsListByTargetServer.json | 68 +- .../2025-08-01/examples/MigrationsUpdate.json | 74 +- .../NameAvailabilityCheckGlobally.json | 14 +- .../NameAvailabilityCheckWithLocation.json | 14 +- .../2025-08-01/examples/OperationsList.json | 1354 +-- .../examples/PrivateDnsZoneSuffixGet.json | 4 +- .../PrivateEndpointConnectionsDelete.json | 8 +- .../PrivateEndpointConnectionsGet.json | 24 +- .../PrivateEndpointConnectionsList.json | 40 +- .../PrivateEndpointConnectionsUpdate.json | 18 +- .../examples/PrivateLinkResourcesGet.json | 10 +- .../examples/PrivateLinkResourcesList.json | 10 +- .../QuotaUsagesForFlexibleServers.json | 28 +- .../examples/ReplicasListByServer.json | 70 +- .../examples/ServersClusterCreate.json | 46 +- ...teGeoRestoreWithDataEncryptionEnabled.json | 34 +- ...reWithDataEncryptionEnabledAutoUpdate.json | 34 +- ...workWithZoneRedundantHighAvailability.json | 40 +- ...alNetworkWithSameZoneHighAvailability.json | 40 +- .../ServersCreatePointInTimeRestore.json | 16 +- .../examples/ServersCreateReplica.json | 30 +- .../examples/ServersCreateReviveDropped.json | 16 +- ...erversCreateWithDataEncryptionEnabled.json | 56 +- ...teWithDataEncryptionEnabledAutoUpdate.json | 56 +- ...VirtualNetworkWithoutHighAvailability.json | 48 +- .../2025-08-01/examples/ServersDelete.json | 8 +- .../2025-08-01/examples/ServersGet.json | 82 +- .../ServersGetWithPrivateEndpoints.json | 76 +- .../examples/ServersGetWithVnet.json | 90 +- .../examples/ServersListByResourceGroup.json | 188 +- .../examples/ServersListBySubscription.json | 324 +- ...romoteReplicaAsForcedStandaloneServer.json | 12 +- ...rversPromoteReplicaAsForcedSwitchover.json | 12 +- ...omoteReplicaAsPlannedStandaloneServer.json | 12 +- ...versPromoteReplicaAsPlannedSwitchover.json | 12 +- .../2025-08-01/examples/ServersRestart.json | 8 +- .../examples/ServersRestartWithFailover.json | 14 +- .../2025-08-01/examples/ServersStart.json | 8 +- .../2025-08-01/examples/ServersStop.json | 8 +- .../2025-08-01/examples/ServersUpdate.json | 28 +- ...versUpdateWithCustomMaintenanceWindow.json | 12 +- ...erversUpdateWithDataEncryptionEnabled.json | 40 +- ...teWithDataEncryptionEnabledAutoUpdate.json | 40 +- .../ServersUpdateWithMajorVersionUpgrade.json | 12 +- ...erversUpdateWithMicrosoftEntraEnabled.json | 30 +- .../2025-08-01/examples/TuningOptionsGet.json | 10 +- .../examples/TuningOptionsListByServer.json | 16 +- ...TuningOptionsListIndexRecommendations.json | 134 +- ...RecommendationsFilteredForCreateIndex.json | 138 +- ...TuningOptionsListTableRecommendations.json | 78 +- ...ecommendationsFilteredForAnalyzeTable.json | 82 +- .../examples/VirtualEndpointCreate.json | 14 +- .../examples/VirtualEndpointDelete.json | 6 +- .../examples/VirtualEndpointUpdate.json | 14 +- .../examples/VirtualEndpointsGet.json | 14 +- .../VirtualEndpointsListByServer.json | 16 +- .../VirtualNetworkSubnetUsageList.json | 12 +- .../stable/2025-08-01/openapi.json | 9364 +++++++++++++++++ .../postgresql/resource-manager/readme.md | 22 +- 245 files changed, 41381 insertions(+), 17611 deletions(-) create mode 100644 specification/postgresql/DBforPostgreSQL.Management/AdministratorMicrosoftEntra.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/AdvancedThreatProtectionSettingsModel.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/BackupAutomaticAndOnDemand.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/BackupsLongTermRetentionOperation.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/Configuration.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/Database.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/FirewallRule.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/Migration.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/PrivateEndpointConnection.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/PrivateLinkResource.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/Server.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/TuningOptions.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/VirtualEndpoint.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/back-compatible.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/client.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraAdd.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraDelete.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraListByServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdvancedThreatProtectionSettingsCreateOrUpdate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdvancedThreatProtectionSettingsGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdvancedThreatProtectionSettingsListByServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandCreate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandDelete.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandListByServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionCheckPrerequisites.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionListByServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionStart.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/CapabilitiesByLocationList.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/CapabilitiesByServerList.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/CapturedLogsListByServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsListByServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsUpdate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsUpdateUsingPut.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesCreate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesDelete.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesListByServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesCreateOrUpdate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesDelete.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesListByServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCancel.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCheckNameAvailability.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateOtherSourceTypesValidateMigrate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateValidateOnly.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithFullyQualifiedDomainName.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithOtherUsers.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithPrivateEndpointServers.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithRoles.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithSuccessfulValidationAndMigration.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithSuccessfulValidationButMigrationFailure.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithSuccessfulValidationOnly.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithValidationFailures.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsListByTargetServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsUpdate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/NameAvailabilityCheckGlobally.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/NameAvailabilityCheckWithLocation.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/OperationsList.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateDnsZoneSuffixGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsDelete.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsList.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsUpdate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateLinkResourcesGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateLinkResourcesList.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/QuotaUsagesForFlexibleServers.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ReplicasListByServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersClusterCreate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateGeoRestoreWithDataEncryptionEnabled.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateGeoRestoreWithDataEncryptionEnabledAutoUpdate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateInMicrosoftOwnedVirtualNetworkWithZoneRedundantHighAvailability.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateInYourOwnVirtualNetworkWithSameZoneHighAvailability.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreatePointInTimeRestore.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateReplica.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateReviveDropped.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateWithDataEncryptionEnabled.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateWithDataEncryptionEnabledAutoUpdate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateWithMicrosoftEntraEnabledInYourOwnVirtualNetworkWithoutHighAvailability.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersDelete.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersGetWithPrivateEndpoints.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersGetWithVnet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersListByResourceGroup.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersListBySubscription.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsForcedStandaloneServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsForcedSwitchover.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsPlannedStandaloneServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsPlannedSwitchover.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersRestart.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersRestartWithFailover.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersStart.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersStop.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithCustomMaintenanceWindow.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithDataEncryptionEnabled.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithDataEncryptionEnabledAutoUpdate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithMajorVersionUpgrade.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithMicrosoftEntraEnabled.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListByServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListIndexRecommendations.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListIndexRecommendationsFilteredForCreateIndex.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListTableRecommendations.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListTableRecommendationsFilteredForAnalyzeTable.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointCreate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointDelete.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointUpdate.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointsGet.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointsListByServer.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualNetworkSubnetUsageList.json create mode 100644 specification/postgresql/DBforPostgreSQL.Management/main.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/models.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/routes.tsp create mode 100644 specification/postgresql/DBforPostgreSQL.Management/tspconfig.yaml delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/AdministratorsMicrosoftEntra.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/AdvancedThreatProtectionSettings.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/BackupsAutomaticAndOnDemand.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/BackupsLongTermRetention.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Capabilities.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/CapturedLogs.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Configurations.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Databases.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/FirewallRules.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Migrations.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/NameAvailability.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Operations.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/PrivateDnsZoneSuffix.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/PrivateEndpointConnections.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/PrivateLinkResources.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/QuotaUsages.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Replicas.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Servers.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/TuningOptions.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/VirtualEndpoints.json delete mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/VirtualNetworkSubnetUsage.json create mode 100644 specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/openapi.json diff --git a/specification/postgresql/DBforPostgreSQL.Management/AdministratorMicrosoftEntra.tsp b/specification/postgresql/DBforPostgreSQL.Management/AdministratorMicrosoftEntra.tsp new file mode 100644 index 000000000000..1576c7788839 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/AdministratorMicrosoftEntra.tsp @@ -0,0 +1,77 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Server.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.DBforPostgreSQL; +/** + * Server administrator associated to a Microsoft Entra principal. + */ +@parentResource(Server) +model AdministratorMicrosoftEntra + is Azure.ResourceManager.ProxyResource< + AdministratorMicrosoftEntraProperties, + false + > { + ...ResourceNameParameter< + Resource = AdministratorMicrosoftEntra, + KeyName = "objectId", + SegmentName = "administrators", + NamePattern = "" + >; +} + +@armResourceOperations +interface AdministratorMicrosoftEntras { + /** + * Gets information about a server administrator associated to a Microsoft Entra principal. + */ + get is ArmResourceRead; + + /** + * Creates a new server administrator associated to a Microsoft Entra principal. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.Core.useFinalStateVia("azure-async-operation") + @put + createOrUpdate is Legacy.CreateOrReplaceAsync< + AdministratorMicrosoftEntra, + Request = AdministratorMicrosoftEntraAdd, + Response = ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> + >; + + /** + * Deletes an existing server administrator associated to a Microsoft Entra principal. + */ + delete is ArmResourceDeleteWithoutOkAsync< + AdministratorMicrosoftEntra, + Response = ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * List all server administrators associated to a Microsoft Entra principal. + */ + listByServer is ArmResourceListByParent< + AdministratorMicrosoftEntra, + Response = ArmResponse + >; +} + +@@doc(AdministratorMicrosoftEntra.name, + "Object identifier of the Microsoft Entra principal." +); +@@doc(AdministratorMicrosoftEntra.properties, + "Properties of a server administrator associated to a Microsoft Entra principal." +); +@@doc(AdministratorMicrosoftEntras.createOrUpdate::parameters.resource, + "Required parameters for adding a server administrator associated to a Microsoft Entra principal." +); diff --git a/specification/postgresql/DBforPostgreSQL.Management/AdvancedThreatProtectionSettingsModel.tsp b/specification/postgresql/DBforPostgreSQL.Management/AdvancedThreatProtectionSettingsModel.tsp new file mode 100644 index 000000000000..fac61c5125c7 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/AdvancedThreatProtectionSettingsModel.tsp @@ -0,0 +1,65 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Server.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.DBforPostgreSQL; +/** + * Advanced threat protection settings of the server. + */ +@parentResource(Server) +model AdvancedThreatProtectionSettingsModel + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = AdvancedThreatProtectionSettingsModel, + KeyName = "threatProtectionName", + SegmentName = "advancedThreatProtectionSettings", + NamePattern = "", + Type = ThreatProtectionName + >; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armResourceOperations +interface AdvancedThreatProtectionSettingsModels { + /** + * Gets state of advanced threat protection settings for a server. + */ + get is ArmResourceRead; + + /** + * Creates or updates a server's Advanced Threat Protection settings. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + AdvancedThreatProtectionSettingsModel, + Response = ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> + >; + + /** + * Lists state of advanced threat protection settings for a server. + */ + listByServer is ArmResourceListByParent< + AdvancedThreatProtectionSettingsModel, + Response = ArmResponse + >; +} + +@@doc(AdvancedThreatProtectionSettingsModel.name, + "Name of the advanced threat protection settings." +); +@@doc(AdvancedThreatProtectionSettingsModel.properties, + "Advanced threat protection properties." +); +@@doc(AdvancedThreatProtectionSettingsModels.createOrUpdate::parameters.resource, + "The Advanced Threat Protection state for the server." +); diff --git a/specification/postgresql/DBforPostgreSQL.Management/BackupAutomaticAndOnDemand.tsp b/specification/postgresql/DBforPostgreSQL.Management/BackupAutomaticAndOnDemand.tsp new file mode 100644 index 000000000000..c613df50c8c3 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/BackupAutomaticAndOnDemand.tsp @@ -0,0 +1,69 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Server.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.DBforPostgreSQL; +/** + * Properties of a backup. + */ +@parentResource(Server) +model BackupAutomaticAndOnDemand + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = BackupAutomaticAndOnDemand, + KeyName = "backupName", + SegmentName = "backups", + NamePattern = "^[-\\w\\._]+$" + >; +} + +@armResourceOperations +interface BackupAutomaticAndOnDemands { + /** + * Gets information of an on demand backup, given its name. + */ + get is ArmResourceRead; + + // FIXME: (ArmResourceCreateOrReplace): ArmResourceCreateOrReplaceAsync/ArmResourceCreateOrReplaceSync should have a body parameter. + /** + * Creates an on demand backup of a server. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.Core.useFinalStateVia("azure-async-operation") + create is Legacy.CreateOrReplaceAsync< + BackupAutomaticAndOnDemand, + Request = void, + Response = ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> + >; + + /** + * Deletes a specific backup, given its name. + */ + delete is ArmResourceDeleteWithoutOkAsync< + BackupAutomaticAndOnDemand, + Response = ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * Lists all available backups of a server. + */ + listByServer is ArmResourceListByParent< + BackupAutomaticAndOnDemand, + Response = ArmResponse + >; +} + +@@maxLength(BackupAutomaticAndOnDemand.name, 128); +@@minLength(BackupAutomaticAndOnDemand.name, 1); +@@doc(BackupAutomaticAndOnDemand.name, "Name of the backup."); +@@doc(BackupAutomaticAndOnDemand.properties, "Properties of a backup."); diff --git a/specification/postgresql/DBforPostgreSQL.Management/BackupsLongTermRetentionOperation.tsp b/specification/postgresql/DBforPostgreSQL.Management/BackupsLongTermRetentionOperation.tsp new file mode 100644 index 000000000000..e7a777998228 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/BackupsLongTermRetentionOperation.tsp @@ -0,0 +1,69 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Server.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.DBforPostgreSQL; +/** + * Response for the LTR backup Operation API call + */ +@parentResource(Server) +model BackupsLongTermRetentionOperation + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = BackupsLongTermRetentionOperation, + KeyName = "backupName", + SegmentName = "ltrBackupOperations", + NamePattern = "^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*" + >; +} + +alias BackupsLongTermRetentionOperationAlias = Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + ...ResourceGroupParameter; + ...Azure.ResourceManager.Legacy.Provider; + ...ParentKeysOf; + }, + { + /** + * The name of the backup. + */ + @path + @segment("ltrBackupOperations") + @minLength(1) + @maxLength(128) + @pattern("^[-\\w\\._]+$") + backupName: string; + }, + ErrorType = ErrorResponse +>; + +@armResourceOperations +interface BackupsLongTermRetentionOperations { + /** + * Gets the results of a long retention backup operation for a server. + */ + get is BackupsLongTermRetentionOperationAlias.Read; + + /** + * Lists the results of the long term retention backup operations for a server. + */ + listByServer is ArmResourceListByParent< + BackupsLongTermRetentionOperation, + Response = ArmResponse + >; +} + +@@doc(BackupsLongTermRetentionOperation.name, "The name of the backup."); +@@doc(BackupsLongTermRetentionOperation.properties, + "Long Term Retention Backup Operation Resource Properties" +); diff --git a/specification/postgresql/DBforPostgreSQL.Management/Configuration.tsp b/specification/postgresql/DBforPostgreSQL.Management/Configuration.tsp new file mode 100644 index 000000000000..3be30faacc76 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/Configuration.tsp @@ -0,0 +1,84 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Server.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; +using Azure.Core; + +namespace Microsoft.DBforPostgreSQL; +/** + * Configuration (also known as server parameter). + */ +@parentResource(Server) +model Configuration + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = Configuration, + KeyName = "configurationName", + SegmentName = "configurations", + NamePattern = "^[-\\w\\._]+$" + >; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armResourceOperations +interface Configurations { + /** + * Gets information about a specific configuration (also known as server parameter) of a server. + */ + get is ArmResourceRead; + + /** + * Updates, using Put verb, the value assigned to a specific modifiable configuration (also known as server parameter) of a server. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @useFinalStateVia("azure-async-operation") + @put + put is Azure.ResourceManager.Legacy.CreateOrReplaceAsync< + Configuration, + ConfigurationForUpdate, + Response = ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> + >; + + /** + * Updates the value assigned to a specific modifiable configuration (also known as server parameter) of a server. + */ + @patch(#{ implicitOptionality: false }) + @useFinalStateVia("azure-async-operation") + update is ArmCustomPatchAsync< + Configuration, + PatchModel = ConfigurationForUpdate, + Response = ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> + >; + + /** + * Lists all configurations (also known as server parameters) of a server. + */ + listByServer is ArmResourceListByParent< + Configuration, + Response = ArmResponse + >; +} + +@@maxLength(Configuration.name, 256); +@@minLength(Configuration.name, 1); +@@doc(Configuration.name, + "Name of the configuration (also known as server parameter)." +); +@@doc(Configuration.properties, + "Properties of a configuration (also known as server parameter)." +); +@@doc(Configurations.put::parameters.resource, + "Parameters required to update the value of a specific modifiable configuration (also known as server parameter)." +); +@@doc(Configurations.update::parameters.properties, + "Parameters required to update the value of a specific modifiable configuration (also known as server parameter)." +); diff --git a/specification/postgresql/DBforPostgreSQL.Management/Database.tsp b/specification/postgresql/DBforPostgreSQL.Management/Database.tsp new file mode 100644 index 000000000000..b6c851c2ef57 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/Database.tsp @@ -0,0 +1,72 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Server.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; +using Azure.Core; + +namespace Microsoft.DBforPostgreSQL; +/** + * Represents a database. + */ +@parentResource(Server) +model Database is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = Database, + KeyName = "databaseName", + SegmentName = "databases", + NamePattern = "^[a-zA-Z_][\\w\\-]{0,62}$" + >; +} + +@armResourceOperations +interface Databases { + /** + * Gets information about an existing database. + */ + get is ArmResourceRead; + + /** + * Creates a new database. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrReplaceAsync< + Database, + Response = ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> + >; + + /** + * Deletes an existing database. + */ + delete is ArmResourceDeleteWithoutOkAsync< + Database, + Response = ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * Lists all databases in a server. + */ + listByServer is ArmResourceListByParent< + Database, + Response = ArmResponse + >; +} + +@@maxLength(Database.name, 63); +@@minLength(Database.name, 1); +@@doc(Database.name, + "Name of the database (case-sensitive). Exact database names can be retrieved by getting the list of all existing databases in a server." +); +@@doc(Database.properties, "Properties of a database."); +@@doc(Databases.create::parameters.resource, + "Parameters required to create a new database." +); diff --git a/specification/postgresql/DBforPostgreSQL.Management/FirewallRule.tsp b/specification/postgresql/DBforPostgreSQL.Management/FirewallRule.tsp new file mode 100644 index 000000000000..2281ece3efce --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/FirewallRule.tsp @@ -0,0 +1,70 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Server.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.DBforPostgreSQL; +/** + * Firewall rule. + */ +@parentResource(Server) +model FirewallRule + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = FirewallRule, + KeyName = "firewallRuleName", + SegmentName = "firewallRules", + NamePattern = "^[a-zA-Z0-9][-_a-zA-Z0-9]{0,79}(?; +} + +@armResourceOperations +interface FirewallRules { + /** + * Gets information about a firewall rule in a server. + */ + get is ArmResourceRead; + + /** + * Creates a new firewall rule or updates an existing firewall rule. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + FirewallRule, + Response = ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> + >; + + /** + * Deletes an existing firewall rule. + */ + delete is ArmResourceDeleteWithoutOkAsync< + FirewallRule, + Response = ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * Lists information about all firewall rules in a server. + */ + listByServer is ArmResourceListByParent< + FirewallRule, + Response = ArmResponse + >; +} + +@@maxLength(FirewallRule.name, 80); +@@minLength(FirewallRule.name, 1); +@@doc(FirewallRule.name, "Name of the firewall rule."); +@@doc(FirewallRule.properties, "Properties of a firewall rule."); +@@doc(FirewallRules.createOrUpdate::parameters.resource, + "Parameters required for creating or updating a firewall rule." +); diff --git a/specification/postgresql/DBforPostgreSQL.Management/Migration.tsp b/specification/postgresql/DBforPostgreSQL.Management/Migration.tsp new file mode 100644 index 000000000000..8b2053d0c6a0 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/Migration.tsp @@ -0,0 +1,79 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Server.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.DBforPostgreSQL; +/** + * Properties of a migration. + */ +@parentResource(Server) +model Migration is Azure.ResourceManager.TrackedResource { + ...ResourceNameParameter< + Resource = Migration, + KeyName = "migrationName", + SegmentName = "migrations", + NamePattern = "^[a-z][a-z0-9]*$" + >; +} + +@armResourceOperations +interface Migrations { + /** + * Gets information about a migration. + */ + get is ArmResourceRead; + + /** + * Creates a new migration. + */ + create is ArmResourceCreateOrReplaceSync; + + /** + * Updates an existing migration. The request body can contain one to many of the mutable properties present in the migration definition. Certain property updates initiate migration state transitions. + */ + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchSync< + Migration, + PatchModel = MigrationResourceForPatch + >; + + /** + * Cancels an active migration. + */ + cancel is ArmResourceDeleteSync< + Migration, + Response = ArmResponse | ArmDeletedNoContentResponse + >; + + /** + * Lists all migrations of a target flexible server. + */ + listByTargetServer is ArmResourceListByParent< + Migration, + Parameters = { + /** + * Migration list filter. Indicates if the request should retrieve only active migrations or all migrations. Defaults to Active. + */ + @query("migrationListFilter") + migrationListFilter?: MigrationListFilter; + }, + Response = ArmResponse + >; +} + +@@doc(Migration.name, "Name of migration."); +@@doc(Migration.properties, "Migration properties."); +@@doc(Migrations.create::parameters.resource, + "Parameters required for creating a migration." +); +@@doc(Migrations.update::parameters.properties, + "Parameters required to update an existing migration." +); diff --git a/specification/postgresql/DBforPostgreSQL.Management/PrivateEndpointConnection.tsp b/specification/postgresql/DBforPostgreSQL.Management/PrivateEndpointConnection.tsp new file mode 100644 index 000000000000..c8562596c56f --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/PrivateEndpointConnection.tsp @@ -0,0 +1,63 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Server.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; +using Azure.ResourceManager.Legacy; + +namespace Microsoft.DBforPostgreSQL; +/** + * The private endpoint connection resource. + */ +model PrivateEndpointConnection is PrivateEndpointConnectionResource; +alias PrivateEndpointOperations = Azure.ResourceManager.PrivateEndpoints; + +@armResourceOperations +interface PrivateEndpointConnections { + /** + * Gets a private endpoint connection. + */ + get is PrivateEndpointOperations.Read; + + /** + * Approves or rejects a private endpoint connection. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.Core.useFinalStateVia("azure-async-operation") + update is PrivateEndpointOperations.CreateOrUpdateAsync< + Server, + Response = ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> + >; + + /** + * Deletes a private endpoint connection. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.Core.useFinalStateVia("location") + delete is PrivateEndpointOperations.DeleteAsync< + Server, + LroHeaders = ArmCombinedLroHeaders & Azure.Core.Foundations.RetryAfterHeader + >; + + /** + * Lists all private endpoint connections on a server. + */ + @list + listByServer is Azure.ResourceManager.Legacy.PrivateEndpoints.ListSinglePageByParent< + Server, + PrivateEndpointConnection, + Response = ArmResponse + >; +} + +@@doc(PrivateEndpointConnection.properties, "Resource properties."); +@@doc(PrivateEndpointConnections.update::parameters.resource, + "Parameters required to update a private endpoint connection." +); diff --git a/specification/postgresql/DBforPostgreSQL.Management/PrivateLinkResource.tsp b/specification/postgresql/DBforPostgreSQL.Management/PrivateLinkResource.tsp new file mode 100644 index 000000000000..f5a4d17203e9 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/PrivateLinkResource.tsp @@ -0,0 +1,45 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Server.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.DBforPostgreSQL; +/** + * A private link resource. + */ +@parentResource(Server) +model PrivateLinkResource + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = PrivateLinkResource, + KeyName = "groupName", + SegmentName = "privateLinkResources", + NamePattern = "^.*$" + >; +} + +@armResourceOperations +interface PrivateLinkResources { + /** + * Gets a private link resource for PostgreSQL server. + */ + get is ArmResourceRead; + + /** + * Gets the private link resources for PostgreSQL server. + */ + listByServer is ArmResourceListByParent< + PrivateLinkResource, + Response = ArmResponse + >; +} + +@@doc(PrivateLinkResource.name, "The name of the private link resource."); +@@doc(PrivateLinkResource.properties, "Resource properties."); diff --git a/specification/postgresql/DBforPostgreSQL.Management/Server.tsp b/specification/postgresql/DBforPostgreSQL.Management/Server.tsp new file mode 100644 index 000000000000..f8c7ae7c91f5 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/Server.tsp @@ -0,0 +1,221 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.DBforPostgreSQL; +/** + * Properties of a server. + */ +model Server is Azure.ResourceManager.TrackedResource { + ...ResourceNameParameter< + Resource = Server, + KeyName = "serverName", + SegmentName = "flexibleServers", + NamePattern = "^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*" + >; + + /** + * Compute tier and size of a server. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + sku?: Sku; + + /** + * User assigned managed identities assigned to the server. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + identity?: UserAssignedIdentity; +} + +alias RequestIdResponseHeader = { + @header("x-ms-request-id") + @doc("A unique ID for the current operation, service generated. All the resource providers must return this value in the response headers to facilitate debugging.") + requestId?: string; +}; + +@armResourceOperations +interface Servers { + /** + * Gets information about an existing server. + */ + get is ArmResourceRead; + + /** + * Creates a new server. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Server, + Response = ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> + >; + + /** + * Updates an existing server. The request body can contain one or multiple of the properties present in the normal server definition. + */ + @Azure.Core.useFinalStateVia("azure-async-operation") + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchAsync< + Server, + PatchModel = ServerForPatch, + Response = ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> + >; + + /** + * Deletes or drops an existing server. + */ + delete is ArmResourceDeleteWithoutOkAsync< + Server, + Response = ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * Lists all servers in a resource group. + */ + listByResourceGroup is ArmResourceListByParent< + Server, + Response = ArmResponse + >; + + /** + * Lists all servers in a subscription. + */ + listBySubscription is ArmListBySubscription< + Server, + Response = ArmResponse + >; + + /** + * Lists the capabilities available for a given server. + */ + @list + @get + @action("capabilities") + list is ArmResourceActionSync>; + + /** + * Lists all captured logs for download in a server. + */ + @get + @list + @action("logFiles") + listByServer is ArmResourceActionSync< + Server, + void, + ArmResponse + >; + + /** + * Performs all checks required for a long term retention backup operation to succeed. + */ + @action("ltrPreBackup") + checkPrerequisites is ArmResourceActionAsyncBase< + Server, + LtrPreBackupRequest, + Response = LtrPreBackupResponse & RequestIdResponseHeader, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters, + Error = CustomErrorResponse + >; + + /** + * Initiates a long term retention backup. + */ + @action("startLtrBackup") + start is ArmResourceActionAsyncBase< + Server, + BackupsLongTermRetentionRequest, + (BackupsLongTermRetentionResponse & + RequestIdResponseHeader) | (ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> & + RequestIdResponseHeader), + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters, + Error = CustomErrorResponse + >; + + /** + * Checks if a proposed migration name is valid and available. + */ + @action("checkMigrationNameAvailability") + @summary("Check the validity and availability of the given name, to assign it to a new migration.") + checkNameAvailability is ArmResourceActionSync< + Server, + MigrationNameAvailability, + ArmResponse + >; + + /** + * Lists all read replicas of a server. + */ + @get + @list + @action("replicas") + replicasListByServer is ArmResourceActionSync< + Server, + void, + ArmResponse + >; + + /** + * Restarts PostgreSQL database engine in a server. + */ + restart is ArmResourceActionAsyncBase< + Server, + RestartParameter, + ArmAcceptedLroResponse, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters, + OptionalRequestBody = true + >; + + /** + * Starts a stopped server. + */ + @action("start") + serversStart is ArmResourceActionAsyncBase< + Server, + void, + ArmAcceptedLroResponse, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters + >; + + /** + * Stops a server. + */ + stop is ArmResourceActionAsyncBase< + Server, + void, + ArmAcceptedLroResponse, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters + >; +} + +@@maxLength(Server.name, 63); +@@minLength(Server.name, 3); +@@doc(Server.name, "The name of the server."); +@@doc(Server.properties, "Properties of a server."); +@@doc(Servers.createOrUpdate::parameters.resource, + "Parameters required to create a new server or to update an existing server." +); +@@doc(Servers.update::parameters.properties, + "Parameters required to update a server." +); +@@doc(Servers.checkPrerequisites::parameters.body, + "Request body for operation" +); +@@doc(Servers.start::parameters.body, "Request body for operation"); +@@doc(Servers.checkNameAvailability::parameters.body, + "Parameters required to check if a migration name is valid and available." +); +@@doc(Servers.restart::parameters.body, "Parameters to restart a server."); diff --git a/specification/postgresql/DBforPostgreSQL.Management/TuningOptions.tsp b/specification/postgresql/DBforPostgreSQL.Management/TuningOptions.tsp new file mode 100644 index 000000000000..6518a28efe98 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/TuningOptions.tsp @@ -0,0 +1,67 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Server.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.DBforPostgreSQL; +/** + * Impact on some metric if this recommended action is applied. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/no-empty-model" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@parentResource(Server) +model TuningOptions is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = TuningOptions, + KeyName = "tuningOption", + SegmentName = "tuningOptions", + NamePattern = "", + Type = TuningOptionParameterEnum + >; +} + +@armResourceOperations +interface TuningOptionsOperationGroup { + /** + * Gets the tuning options of a server. + */ + get is ArmResourceRead; + + /** + * Lists the tuning options of a server. + */ + listByServer is ArmResourceListByParent< + TuningOptions, + Response = ArmResponse + >; + + /** + * Lists available object recommendations. + */ + @get + @list + @action("recommendations") + listRecommendations is ArmResourceActionSync< + TuningOptions, + void, + ArmResponse, + Parameters = { + /** + * Recommendations list filter. Retrieves recommendations based on type. + */ + @query("recommendationType") + recommendationType?: RecommendationTypeParameterEnum; + } + >; +} + +@@doc(TuningOptions.name, "The name of the tuning option."); diff --git a/specification/postgresql/DBforPostgreSQL.Management/VirtualEndpoint.tsp b/specification/postgresql/DBforPostgreSQL.Management/VirtualEndpoint.tsp new file mode 100644 index 000000000000..16ff8b0b1406 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/VirtualEndpoint.tsp @@ -0,0 +1,91 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Server.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; +using Azure.Core; + +namespace Microsoft.DBforPostgreSQL; +// FIXME: VirtualEndpoint has no properties property +/** + * Pair of virtual endpoints for a server. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/no-empty-model" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@parentResource(Server) +model VirtualEndpoint + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = VirtualEndpoint, + KeyName = "virtualEndpointName", + SegmentName = "virtualendpoints", + NamePattern = "^[A-Za-z0-9][A-Za-z0-9-]{0,62}(?; +} + +@armResourceOperations +interface VirtualEndpoints { + /** + * Gets information about a pair of virtual endpoints. + */ + get is ArmResourceRead; + + /** + * Creates a pair of virtual endpoints for a server. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrReplaceAsync< + VirtualEndpoint, + Response = ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> + >; + + /** + * Updates a pair of virtual endpoints for a server. + */ + @patch(#{ implicitOptionality: false }) + @useFinalStateVia("azure-async-operation") + update is ArmCustomPatchAsync< + VirtualEndpoint, + PatchModel = VirtualEndpointResourceForPatch, + Response = ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> + >; + + /** + * Deletes a pair of virtual endpoints. + */ + delete is ArmResourceDeleteWithoutOkAsync< + VirtualEndpoint, + Response = ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * Lists pair of virtual endpoints associated to a server. + */ + listByServer is ArmResourceListByParent< + VirtualEndpoint, + Response = ArmResponse + >; +} + +@@maxLength(VirtualEndpoint.name, 63); +@@minLength(VirtualEndpoint.name, 3); +@@doc(VirtualEndpoint.name, "Base name of the virtual endpoints."); +@@doc(VirtualEndpoints.create::parameters.resource, + "Parameters required to create or update a pair of virtual endpoints." +); +@@doc(VirtualEndpoints.update::parameters.properties, + "Parameters required to update a pair of virtual endpoints." +); +@@doc(VirtualEndpoint.properties, + "Properties of the pair of virtual endpoints." +); diff --git a/specification/postgresql/DBforPostgreSQL.Management/back-compatible.tsp b/specification/postgresql/DBforPostgreSQL.Management/back-compatible.tsp new file mode 100644 index 000000000000..bd54522de765 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/back-compatible.tsp @@ -0,0 +1,196 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Microsoft.DBforPostgreSQL; + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(AdministratorMicrosoftEntraAdd.properties +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(CapturedLog.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(ConfigurationForUpdate.properties +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(LtrPreBackupResponse.properties +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(BackupsLongTermRetentionResponse.properties +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(MigrationResourceForPatch.properties +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(ServerForPatch.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(ObjectRecommendation.properties +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(VirtualEndpointResourceForPatch.properties +); + +@@clientLocation(AdministratorMicrosoftEntras.get, + "AdministratorsMicrosoftEntra" +); +@@clientLocation(AdministratorMicrosoftEntras.createOrUpdate, + "AdministratorsMicrosoftEntra" +); +@@clientName(AdministratorMicrosoftEntras.createOrUpdate::parameters.resource, + "parameters" +); +@@clientLocation(AdministratorMicrosoftEntras.delete, + "AdministratorsMicrosoftEntra" +); +@@clientLocation(AdministratorMicrosoftEntras.listByServer, + "AdministratorsMicrosoftEntra" +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(AdministratorMicrosoftEntra.properties +); + +@@clientLocation(AdvancedThreatProtectionSettingsModels.get, + "AdvancedThreatProtectionSettings" +); +@@clientLocation(AdvancedThreatProtectionSettingsModels.createOrUpdate, + "ServerThreatProtectionSettings" +); +@@clientName(AdvancedThreatProtectionSettingsModels.createOrUpdate::parameters.resource, + "parameters" +); +@@clientLocation(AdvancedThreatProtectionSettingsModels.listByServer, + "AdvancedThreatProtectionSettings" +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(AdvancedThreatProtectionSettingsModel.properties +); + +@@clientLocation(BackupAutomaticAndOnDemands.get, + "BackupsAutomaticAndOnDemand" +); +@@clientLocation(BackupAutomaticAndOnDemands.create, + "BackupsAutomaticAndOnDemand" +); +@@clientLocation(BackupAutomaticAndOnDemands.delete, + "BackupsAutomaticAndOnDemand" +); +@@clientLocation(BackupAutomaticAndOnDemands.listByServer, + "BackupsAutomaticAndOnDemand" +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(BackupAutomaticAndOnDemand.properties +); + +@@clientName(Configurations.put::parameters.resource, "parameters"); +@@clientName(Configurations.update::parameters.properties, "parameters"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(Configuration.properties); + +@@clientName(Databases.create::parameters.resource, "parameters"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(Database.properties); + +@@clientName(FirewallRules.createOrUpdate::parameters.resource, "parameters"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(FirewallRule.properties); + +@@clientLocation(BackupsLongTermRetentionOperations.get, + "BackupsLongTermRetention" +); +@@clientLocation(BackupsLongTermRetentionOperations.listByServer, + "BackupsLongTermRetention" +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(BackupsLongTermRetentionOperation.properties +); + +@@clientName(Migrations.create::parameters.resource, "parameters"); +@@clientName(Migrations.update::parameters.properties, "parameters"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(Migration.properties); + +@@clientName(PrivateEndpointConnections.update::parameters.resource, + "parameters" +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(PrivateEndpointConnection.properties +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(PrivateLinkResource.properties +); + +@@clientName(Servers.createOrUpdate::parameters.resource, "parameters"); +@@clientName(Servers.update::parameters.properties, "parameters"); +@@clientLocation(Servers.list, "CapabilitiesByServer"); +@@clientLocation(Servers.listByServer, "CapturedLogs"); +@@clientLocation(Servers.checkPrerequisites, "BackupsLongTermRetention"); +@@clientName(Servers.checkPrerequisites::parameters.body, "parameters"); +@@clientLocation(Servers.start, "BackupsLongTermRetention"); +@@clientName(Servers.start::parameters.body, "parameters"); +@@clientLocation(Servers.checkNameAvailability, Migrations); +@@clientName(Servers.checkNameAvailability::parameters.body, "parameters"); +@@clientLocation(Servers.replicasListByServer, "Replicas"); +@@clientName(Servers.replicasListByServer, "ListByServer"); +@@clientName(Servers.restart::parameters.body, "parameters"); +@@clientName(Servers.serversStart, "Start"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(Server.properties); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(VirtualEndpoint.properties); + +@@clientLocation(TuningOptionsOperationGroup.get, "TuningOptions"); +@@clientLocation(TuningOptionsOperationGroup.listByServer, "TuningOptions"); +@@clientLocation(TuningOptionsOperationGroup.listRecommendations, + "TuningOptions" +); + +@@clientName(VirtualEndpoints.create::parameters.resource, "parameters"); +@@clientName(VirtualEndpoints.update::parameters.properties, "parameters"); + +@@clientLocation(CapabilitiesByLocationOperationGroup.list, + "CapabilitiesByLocation" +); + +@@clientLocation(NameAvailabilityOperationGroup.checkGlobally, + "NameAvailability" +); +@@clientLocation(NameAvailabilityOperationGroup.checkWithLocation, + "NameAvailability" +); + +@@clientLocation(PrivateDnsZoneSuffixOperationGroup.get, + "PrivateDnsZoneSuffix" +); + +@@clientLocation(QuotaUsagesOperationGroup.list, "QuotaUsages"); + +@@clientLocation(VirtualNetworkSubnetUsageOperationGroup.list, + "VirtualNetworkSubnetUsage" +); +@@clientName(NameAvailabilityOperationGroup.checkGlobally::parameters.body, + "parameters" +); +@@clientName(NameAvailabilityOperationGroup.checkWithLocation::parameters.body, + "parameters" +); +@@clientName(VirtualNetworkSubnetUsageOperationGroup.list::parameters.body, + "parameters" +); diff --git a/specification/postgresql/DBforPostgreSQL.Management/client.tsp b/specification/postgresql/DBforPostgreSQL.Management/client.tsp new file mode 100644 index 000000000000..b6857684a721 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/client.tsp @@ -0,0 +1,33 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Microsoft.DBforPostgreSQL; +using Azure.ClientGenerator.Core; + +@@clientName(Microsoft.DBforPostgreSQL, "PostgreSQLManagementClient", "python"); +@@clientName(Microsoft.DBforPostgreSQL, + "PostgreSQLManagementFlexibleServerClient", + "javascript" +); +@@clientName(PostgresMajorVersion.`11`, "ELEVEN", "python,javascript"); +@@clientName(PostgresMajorVersion.`12`, "TWELVE", "python,javascript"); +@@clientName(PostgresMajorVersion.`13`, "THIRTEEN", "python,javascript"); +@@clientName(PostgresMajorVersion.`14`, "FOURTEEN", "python,javascript"); +@@clientName(PostgresMajorVersion.`15`, "FIFTEEN", "python,javascript"); +@@clientName(PostgresMajorVersion.`16`, "SIXTEEN", "python,javascript"); +@@clientName(PostgresMajorVersion.`17`, "SEVENTEEN", "python,javascript"); +@@clientName(PostgresMajorVersion.`18`, "EIGHTEEN", "python,javascript"); + +@@clientName(Microsoft.DBforPostgreSQL.ServerProperties.pointInTimeUTC, + "pointInTimeUtc", + "java" +); +@@clientName(Microsoft.DBforPostgreSQL.DataEncryption.primaryKeyURI, + "primaryKeyUri", + "java" +); +@@clientName(Microsoft.DBforPostgreSQL.DataEncryption.geoBackupKeyURI, + "geoBackupKeyUri", + "java" +); +@@clientName(RequestIdResponseHeader.requestId, "xMsRequestId", "java"); diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraAdd.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraAdd.json new file mode 100644 index 000000000000..04368f7e15ee --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraAdd.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "objectId": "oooooooo-oooo-oooo-oooo-oooooooooooo", + "parameters": { + "properties": { + "principalName": "exampleuser@contoso.com", + "principalType": "User", + "tenantId": "tttttttt-tttt-tttt-tttt-tttttttttttt" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "AdministratorsMicrosoftEntra_CreateOrUpdate", + "title": "Add a server administrator associated to a Microsoft Entra principal." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraDelete.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraDelete.json new file mode 100644 index 000000000000..bdb21af4b353 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraDelete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "objectId": "oooooooo-oooo-oooo-oooo-oooooooooooo", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + }, + "204": {} + }, + "operationId": "AdministratorsMicrosoftEntra_Delete", + "title": "Delete a server administrator associated to a Microsoft Entra principal." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraGet.json new file mode 100644 index 000000000000..d234d6831770 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraGet.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "objectId": "oooooooo-oooo-oooo-oooo-oooooooooooo", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "exampleuser@contoso.com", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/administrators", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/administrators/oooooooo-oooo-oooo-oooo-oooooooooooo", + "properties": { + "objectId": "oooooooo-oooo-oooo-oooo-oooooooooooo", + "principalName": "exampleuser@contoso.com", + "principalType": "User", + "tenantId": "tttttttt-tttt-tttt-tttt-tttttttttttt" + } + } + } + }, + "operationId": "AdministratorsMicrosoftEntra_Get", + "title": "Get information about a server administrator associated to a Microsoft Entra principal." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraListByServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraListByServer.json new file mode 100644 index 000000000000..c9a4cf65e457 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdministratorsMicrosoftEntraListByServer.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Microsoft.DBforPostgreSQL/flexibleServers/administrators", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/administrators/oooooooo-oooo-oooo-oooo-oooooooooooo", + "properties": { + "objectId": "oooooooo-oooo-oooo-oooo-oooooooooooo", + "principalName": "exampleuser@contoso.com", + "principalType": "User", + "tenantId": "tttttttt-tttt-tttt-tttt-tttttttttttt" + } + }, + { + "type": "Microsoft.DBforPostgreSQL/flexibleServers/administrators", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/administrators/gggggggg-gggg-gggg-gggg-gggggggggggg", + "properties": { + "objectId": "gggggggg-gggg-gggg-gggg-gggggggggggg", + "principalName": "examplegroup@contoso.com", + "principalType": "Group", + "tenantId": "tttttttt-tttt-tttt-tttt-tttttttttttt" + } + } + ] + } + } + }, + "operationId": "AdministratorsMicrosoftEntra_ListByServer", + "title": "List information about all server administrators associated to Microsoft Entra principals." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdvancedThreatProtectionSettingsCreateOrUpdate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdvancedThreatProtectionSettingsCreateOrUpdate.json new file mode 100644 index 000000000000..f43f76947403 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdvancedThreatProtectionSettingsCreateOrUpdate.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "properties": { + "state": "Enabled" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "threatProtectionName": "Default" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "ServerThreatProtectionSettings_CreateOrUpdate", + "title": "Update the advanced threat protection settings of a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdvancedThreatProtectionSettingsGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdvancedThreatProtectionSettingsGet.json new file mode 100644 index 000000000000..fe648deaacdd --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdvancedThreatProtectionSettingsGet.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "threatProtectionName": "Default" + }, + "responses": { + "200": { + "body": { + "name": "Default", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/advancedThreatProtectionSettings/Default", + "properties": { + "creationTime": "2025-06-01T18:30:22.123456Z", + "state": "Enabled" + } + } + } + }, + "operationId": "AdvancedThreatProtectionSettings_Get", + "title": "Get state of advanced threat protection settings for a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdvancedThreatProtectionSettingsListByServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdvancedThreatProtectionSettingsListByServer.json new file mode 100644 index 000000000000..39410ea4ac4e --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/AdvancedThreatProtectionSettingsListByServer.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Default", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/advancedThreatProtectionSettings/Default", + "properties": { + "creationTime": "2025-06-01T18:30:22.123456Z", + "state": "Enabled" + } + } + ] + } + } + }, + "operationId": "AdvancedThreatProtectionSettings_ListByServer", + "title": "List state of advanced threat protection settings for a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandCreate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandCreate.json new file mode 100644 index 000000000000..369de1ce3211 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandCreate.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "backupName": "ondemandbackup-20250601T183022", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "BackupsAutomaticAndOnDemand_Create", + "title": "Create an on demand backup of a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandDelete.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandDelete.json new file mode 100644 index 000000000000..2203a8e87d8c --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandDelete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "backupName": "ondemandbackup-20250601T183022", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + }, + "204": {} + }, + "operationId": "BackupsAutomaticAndOnDemand_Delete", + "title": "Delete an on demand backup, given its name." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandGet.json new file mode 100644 index 000000000000..c4a6be0e971e --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandGet.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "backupName": "backup_638830782181266873", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "backup_20250601T183022", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/backups", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/backups/backup_638830782181266873", + "properties": { + "backupType": "Full", + "completedTime": "2025-06-01T14:30:22.123456+00:00", + "source": "Automatic" + } + } + } + }, + "operationId": "BackupsAutomaticAndOnDemand_Get", + "title": "Get an on demand backup, given its name." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandListByServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandListByServer.json new file mode 100644 index 000000000000..88b9a6d8f72d --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsAutomaticAndOnDemandListByServer.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "backup_638830782181266873", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/backups", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/backups/backup_638830782181266873", + "properties": { + "backupType": "Full", + "completedTime": "2025-06-01T14:30:22.123456+00:00", + "source": "Automatic" + } + }, + { + "name": "ondemandbackup-20250601T183022", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/backups", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/backups/ondemandbackup-20250601T183022", + "properties": { + "backupType": "Customer On-Demand", + "completedTime": "2025-06-01T18:30:22.123456+00:00", + "source": "Customer Initiated" + } + } + ] + } + } + }, + "operationId": "BackupsAutomaticAndOnDemand_ListByServer", + "title": "List all available backups of a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionCheckPrerequisites.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionCheckPrerequisites.json new file mode 100644 index 000000000000..62abfa12198e --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionCheckPrerequisites.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "backupSettings": { + "backupName": "exampleltrbackup" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "properties": { + "numberOfContainers": 1 + } + } + } + }, + "operationId": "BackupsLongTermRetention_CheckPrerequisites", + "title": "Perform all checks required for a long term retention backup operation to succeed." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionGet.json new file mode 100644 index 000000000000..c87ed95e1b18 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionGet.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "backupName": "exampleltrbackup", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "exampleltrbackup", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/ltrbackupOperations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver", + "properties": { + "backupMetadata": "backupMetadata", + "backupName": "exampleltrbackup", + "dataTransferredInBytes": 9, + "datasourceSizeInBytes": 21, + "endTime": "2025-06-01T18:35:22.123Z", + "percentComplete": 4, + "startTime": "2025-06-01T18:30:22.123Z", + "status": "Running" + } + } + } + }, + "operationId": "BackupsLongTermRetention_Get", + "title": "Get the results of a long retention backup operation for a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionListByServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionListByServer.json new file mode 100644 index 000000000000..4c1513ad82ad --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionListByServer.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "exampleltrbackup", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/ltrbackupOperations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver", + "properties": { + "backupMetadata": "backupMetadata", + "backupName": "exampleltrbackup", + "dataTransferredInBytes": 9, + "datasourceSizeInBytes": 21, + "endTime": "2025-06-01T18:35:22.123Z", + "percentComplete": 4, + "startTime": "2025-06-01T18:30:22.123Z", + "status": "Running" + } + } + ] + } + } + }, + "operationId": "BackupsLongTermRetention_ListByServer", + "title": "List the results of the long term retention backup operations for a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionStart.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionStart.json new file mode 100644 index 000000000000..6aee83cf0de6 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/BackupsLongTermRetentionStart.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "backupSettings": { + "backupName": "exampleltrbackup" + }, + "targetDetails": { + "sasUriList": [ + "sasuri" + ] + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "properties": { + "backupMetadata": "backupmetadata", + "dataTransferredInBytes": 23, + "datasourceSizeInBytes": 23, + "endTime": "2025-06-01T18:35:22.123Z", + "percentComplete": 100, + "startTime": "2025-06-01T18:30:22.123Z", + "status": "Running" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/westcentralus/azureAsyncOperation/ffc80e91-03db-4534-b5de-bacb77aa6a81?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/westcentralus/operationResults/ffc80e91-03db-4534-b5de-bacb77aa6a81?api-version=2025-06-01-preview" + } + } + }, + "operationId": "BackupsLongTermRetention_Start", + "title": "Initiate a long term retention backup." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/CapabilitiesByLocationList.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/CapabilitiesByLocationList.json new file mode 100644 index 000000000000..e6706c992777 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/CapabilitiesByLocationList.json @@ -0,0 +1,2333 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "locationName": "eastus", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "FlexibleServerCapabilities", + "fastProvisioningSupported": "Enabled", + "geoBackupSupported": "Enabled", + "onlineResizeSupported": "Enabled", + "storageAutoGrowthSupported": "Enabled", + "supportedFastProvisioningEditions": [ + { + "serverCount": 0, + "supportedServerVersions": "12", + "supportedSku": "standard_b1ms", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "12", + "supportedSku": "standard_b2s", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "12", + "supportedSku": "standard_d2s_v3", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "12", + "supportedSku": "standard_d2ds_v4", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "12", + "supportedSku": "standard_e2ds_v4", + "supportedStorageGb": 512, + "supportedTier": "MemoryOptimized" + }, + { + "serverCount": 0, + "supportedServerVersions": "13", + "supportedSku": "standard_b1ms", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "13", + "supportedSku": "standard_b2s", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "13", + "supportedSku": "standard_d2s_v3", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "13", + "supportedSku": "standard_d2ds_v4", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "13", + "supportedSku": "standard_e2ds_v4", + "supportedStorageGb": 512, + "supportedTier": "MemoryOptimized" + }, + { + "serverCount": 0, + "supportedServerVersions": "14", + "supportedSku": "standard_b1ms", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "14", + "supportedSku": "standard_b2s", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "14", + "supportedSku": "standard_d2s_v3", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "14", + "supportedSku": "standard_d2ds_v4", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "14", + "supportedSku": "standard_e2ds_v4", + "supportedStorageGb": 512, + "supportedTier": "MemoryOptimized" + }, + { + "serverCount": 0, + "supportedServerVersions": "15", + "supportedSku": "standard_b1ms", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "15", + "supportedSku": "standard_b2s", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "15", + "supportedSku": "standard_d2s_v3", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "15", + "supportedSku": "standard_d2ds_v4", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "15", + "supportedSku": "standard_e2ds_v4", + "supportedStorageGb": 512, + "supportedTier": "MemoryOptimized" + }, + { + "serverCount": 0, + "supportedServerVersions": "16", + "supportedSku": "standard_b1ms", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "16", + "supportedSku": "standard_b2s", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "16", + "supportedSku": "standard_d2s_v3", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "16", + "supportedSku": "standard_d2ds_v4", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "16", + "supportedSku": "standard_e2ds_v4", + "supportedStorageGb": 512, + "supportedTier": "MemoryOptimized" + } + ], + "supportedFeatures": [ + { + "name": "FastProvisioning", + "status": "Enabled" + }, + { + "name": "ZoneRedundantHa", + "status": "Enabled" + }, + { + "name": "GeoBackup", + "status": "Enabled" + }, + { + "name": "ZoneRedundantHaAndGeoBackup", + "status": "Enabled" + }, + { + "name": "StorageAutoGrowth", + "status": "Enabled" + }, + { + "name": "OnlineResize", + "status": "Enabled" + }, + { + "name": "OfferRestricted", + "status": "Disabled" + }, + { + "name": "IndexTuning", + "status": "Enabled" + }, + { + "name": "Clusters", + "status": "Enabled" + }, + { + "name": "ConfigTuning", + "status": "Disabled" + } + ], + "supportedServerEditions": [ + { + "name": "Burstable", + "defaultSkuName": "Standard_B1ms", + "supportedServerSkus": [ + { + "name": "Standard_B1ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 640, + "supportedMemoryPerVcoreMb": 2048, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 1 + }, + { + "name": "Standard_B2s", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 1280, + "supportedMemoryPerVcoreMb": 2048, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_B2ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 1920, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_B4ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 2880, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_B8ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 4320, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_B12ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 4320, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 12 + }, + { + "name": "Standard_B16ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 4320, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_B20ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 4320, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 20 + } + ], + "supportedStorageEditions": [ + { + "name": "ManagedDisk", + "defaultStorageSizeMb": 32768, + "supportedStorageMb": [ + { + "defaultIopsTier": "P4", + "storageSizeMb": 32768, + "supportedIops": 120, + "supportedIopsTiers": [ + { + "name": "P4", + "iops": 120 + }, + { + "name": "P6", + "iops": 240 + }, + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P6", + "storageSizeMb": 65536, + "supportedIops": 240, + "supportedIopsTiers": [ + { + "name": "P6", + "iops": 240 + }, + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P10", + "storageSizeMb": 131072, + "supportedIops": 500, + "supportedIopsTiers": [ + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P15", + "storageSizeMb": 262144, + "supportedIops": 1100, + "supportedIopsTiers": [ + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P20", + "storageSizeMb": 524288, + "supportedIops": 2300, + "supportedIopsTiers": [ + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P30", + "storageSizeMb": 1048576, + "supportedIops": 5000, + "supportedIopsTiers": [ + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P40", + "storageSizeMb": 2097152, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P50", + "storageSizeMb": 4193280, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P50", + "storageSizeMb": 4194304, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P60", + "storageSizeMb": 8388608, + "supportedIops": 16000, + "supportedIopsTiers": [ + { + "name": "P60", + "iops": 16000 + }, + { + "name": "P70", + "iops": 18000 + }, + { + "name": "P80", + "iops": 20000 + } + ] + }, + { + "defaultIopsTier": "P70", + "storageSizeMb": 16777216, + "supportedIops": 18000, + "supportedIopsTiers": [ + { + "name": "P70", + "iops": 18000 + }, + { + "name": "P80", + "iops": 20000 + } + ] + }, + { + "defaultIopsTier": "P80", + "storageSizeMb": 33553408, + "supportedIops": 20000, + "supportedIopsTiers": [ + { + "name": "P80", + "iops": 20000 + } + ] + } + ] + }, + { + "name": "ManagedDiskV2", + "defaultStorageSizeMb": 32768, + "supportedStorageMb": [ + { + "defaultIopsTier": "None", + "maximumStorageSizeMb": 67108864, + "storageSizeMb": 32768, + "supportedIops": 3000, + "supportedIopsTiers": [ + { + "name": "None", + "iops": 0 + } + ], + "supportedMaximumIops": 80000, + "supportedMaximumThroughput": 1200, + "supportedThroughput": 125 + } + ] + } + ] + }, + { + "name": "GeneralPurpose", + "defaultSkuName": "Standard_D4ds_v5", + "supportedServerSkus": [ + { + "name": "Standard_D2s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3200, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_D4s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_D8s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_D16s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_D32s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_D48s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_D64s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_D2ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3200, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_D4ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_D8ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_D16ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_D32ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_D48ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_D64ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_D2ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3200, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_D4ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_D8ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_D16ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_D32ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_D48ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_D64ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_D96ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 96 + }, + { + "name": "Standard_D2ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3750, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_D4ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_D8ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_D16ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_D32ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_D48ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_D64ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_D96ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 96 + } + ], + "supportedStorageEditions": [ + { + "name": "ManagedDisk", + "defaultStorageSizeMb": 65536, + "supportedStorageMb": [ + { + "defaultIopsTier": "P4", + "storageSizeMb": 32768, + "supportedIops": 120, + "supportedIopsTiers": [ + { + "name": "P4", + "iops": 120 + }, + { + "name": "P6", + "iops": 240 + }, + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P6", + "storageSizeMb": 65536, + "supportedIops": 240, + "supportedIopsTiers": [ + { + "name": "P6", + "iops": 240 + }, + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P10", + "storageSizeMb": 131072, + "supportedIops": 500, + "supportedIopsTiers": [ + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P15", + "storageSizeMb": 262144, + "supportedIops": 1100, + "supportedIopsTiers": [ + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P20", + "storageSizeMb": 524288, + "supportedIops": 2300, + "supportedIopsTiers": [ + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P30", + "storageSizeMb": 1048576, + "supportedIops": 5000, + "supportedIopsTiers": [ + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P40", + "storageSizeMb": 2097152, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P50", + "storageSizeMb": 4193280, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P50", + "storageSizeMb": 4194304, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P60", + "storageSizeMb": 8388608, + "supportedIops": 16000, + "supportedIopsTiers": [ + { + "name": "P60", + "iops": 16000 + }, + { + "name": "P70", + "iops": 18000 + }, + { + "name": "P80", + "iops": 20000 + } + ] + }, + { + "defaultIopsTier": "P70", + "storageSizeMb": 16777216, + "supportedIops": 18000, + "supportedIopsTiers": [ + { + "name": "P70", + "iops": 18000 + }, + { + "name": "P80", + "iops": 20000 + } + ] + }, + { + "defaultIopsTier": "P80", + "storageSizeMb": 33553408, + "supportedIops": 20000, + "supportedIopsTiers": [ + { + "name": "P80", + "iops": 20000 + } + ] + } + ] + }, + { + "name": "ManagedDiskV2", + "defaultStorageSizeMb": 65536, + "supportedStorageMb": [ + { + "defaultIopsTier": "None", + "maximumStorageSizeMb": 67108864, + "storageSizeMb": 32768, + "supportedIops": 3000, + "supportedIopsTiers": [ + { + "name": "None", + "iops": 0 + } + ], + "supportedMaximumIops": 80000, + "supportedMaximumThroughput": 1200, + "supportedThroughput": 125 + } + ] + } + ] + }, + { + "name": "MemoryOptimized", + "defaultSkuName": "Standard_E4ds_v5", + "supportedServerSkus": [ + { + "name": "Standard_E2s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3200, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_E4s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_E8s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_E16s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_E32s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 32000, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_E48s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_E64s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 6912, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_E2ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3200, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_E4ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_E8ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_E16ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_E20ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 32000, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 20 + }, + { + "name": "Standard_E32ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_E48ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_E64ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 6912, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_E2ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3750, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_E4ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_E8ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_E16ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_E20ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 32000, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 20 + }, + { + "name": "Standard_E32ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_E48ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_E64ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_E96ads_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 7168, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 96 + }, + { + "name": "Standard_E2ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3750, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_E4ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_E8ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_E16ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_E20ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 32000, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 20 + }, + { + "name": "Standard_E32ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_E48ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_E64ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_E96ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 7168, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 96 + } + ], + "supportedStorageEditions": [ + { + "name": "ManagedDisk", + "defaultStorageSizeMb": 131072, + "supportedStorageMb": [ + { + "defaultIopsTier": "P4", + "storageSizeMb": 32768, + "supportedIops": 120, + "supportedIopsTiers": [ + { + "name": "P4", + "iops": 120 + }, + { + "name": "P6", + "iops": 240 + }, + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P6", + "storageSizeMb": 65536, + "supportedIops": 240, + "supportedIopsTiers": [ + { + "name": "P6", + "iops": 240 + }, + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P10", + "storageSizeMb": 131072, + "supportedIops": 500, + "supportedIopsTiers": [ + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P15", + "storageSizeMb": 262144, + "supportedIops": 1100, + "supportedIopsTiers": [ + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P20", + "storageSizeMb": 524288, + "supportedIops": 2300, + "supportedIopsTiers": [ + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P30", + "storageSizeMb": 1048576, + "supportedIops": 5000, + "supportedIopsTiers": [ + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P40", + "storageSizeMb": 2097152, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P50", + "storageSizeMb": 4193280, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P50", + "storageSizeMb": 4194304, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P60", + "storageSizeMb": 8388608, + "supportedIops": 16000, + "supportedIopsTiers": [ + { + "name": "P60", + "iops": 16000 + }, + { + "name": "P70", + "iops": 18000 + }, + { + "name": "P80", + "iops": 20000 + } + ] + }, + { + "defaultIopsTier": "P70", + "storageSizeMb": 16777216, + "supportedIops": 18000, + "supportedIopsTiers": [ + { + "name": "P70", + "iops": 18000 + }, + { + "name": "P80", + "iops": 20000 + } + ] + }, + { + "defaultIopsTier": "P80", + "storageSizeMb": 33553408, + "supportedIops": 20000, + "supportedIopsTiers": [ + { + "name": "P80", + "iops": 20000 + } + ] + } + ] + }, + { + "name": "ManagedDiskV2", + "defaultStorageSizeMb": 131072, + "supportedStorageMb": [ + { + "defaultIopsTier": "None", + "maximumStorageSizeMb": 67108864, + "storageSizeMb": 32768, + "supportedIops": 3000, + "supportedIopsTiers": [ + { + "name": "None", + "iops": 0 + } + ], + "supportedMaximumIops": 80000, + "supportedMaximumThroughput": 1200, + "supportedThroughput": 125 + } + ] + } + ] + } + ], + "supportedServerVersions": [ + { + "name": "11", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "12", + "13", + "14", + "15", + "16", + "17", + "18" + ] + }, + { + "name": "12", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "13", + "14", + "15", + "16", + "17", + "18" + ] + }, + { + "name": "13", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "14", + "15", + "16", + "17", + "18" + ] + }, + { + "name": "14", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "15", + "16", + "17", + "18" + ] + }, + { + "name": "15", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "16", + "17", + "18" + ] + }, + { + "name": "16", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "17", + "18" + ] + }, + { + "name": "17", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "18" + ] + }, + { + "name": "18", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [] + } + ], + "zoneRedundantHaAndGeoBackupSupported": "Enabled", + "zoneRedundantHaSupported": "Enabled" + } + ] + } + } + }, + "operationId": "CapabilitiesByLocation_List", + "title": "List the capabilities available in a given location for a specific subscription." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/CapabilitiesByServerList.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/CapabilitiesByServerList.json new file mode 100644 index 000000000000..e715578722c4 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/CapabilitiesByServerList.json @@ -0,0 +1,2091 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "FlexibleServerCapabilities", + "fastProvisioningSupported": "Enabled", + "geoBackupSupported": "Enabled", + "onlineResizeSupported": "Enabled", + "restricted": "Disabled", + "storageAutoGrowthSupported": "Enabled", + "supportedFastProvisioningEditions": [ + { + "serverCount": 0, + "supportedServerVersions": "12", + "supportedSku": "standard_b1ms", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "12", + "supportedSku": "standard_b2s", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "12", + "supportedSku": "standard_d2s_v3", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "12", + "supportedSku": "standard_d2ds_v4", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "12", + "supportedSku": "standard_e2ds_v4", + "supportedStorageGb": 512, + "supportedTier": "MemoryOptimized" + }, + { + "serverCount": 0, + "supportedServerVersions": "13", + "supportedSku": "standard_b1ms", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "13", + "supportedSku": "standard_b2s", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "13", + "supportedSku": "standard_d2s_v3", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "13", + "supportedSku": "standard_d2ds_v4", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "13", + "supportedSku": "standard_e2ds_v4", + "supportedStorageGb": 512, + "supportedTier": "MemoryOptimized" + }, + { + "serverCount": 0, + "supportedServerVersions": "14", + "supportedSku": "standard_b1ms", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "14", + "supportedSku": "standard_b2s", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "14", + "supportedSku": "standard_d2s_v3", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "14", + "supportedSku": "standard_d2ds_v4", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "14", + "supportedSku": "standard_e2ds_v4", + "supportedStorageGb": 512, + "supportedTier": "MemoryOptimized" + }, + { + "serverCount": 0, + "supportedServerVersions": "15", + "supportedSku": "standard_b1ms", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "15", + "supportedSku": "standard_b2s", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "15", + "supportedSku": "standard_d2s_v3", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "15", + "supportedSku": "standard_d2ds_v4", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "15", + "supportedSku": "standard_e2ds_v4", + "supportedStorageGb": 512, + "supportedTier": "MemoryOptimized" + }, + { + "serverCount": 0, + "supportedServerVersions": "16", + "supportedSku": "standard_b1ms", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "16", + "supportedSku": "standard_b2s", + "supportedStorageGb": 32, + "supportedTier": "Burstable" + }, + { + "serverCount": 0, + "supportedServerVersions": "16", + "supportedSku": "standard_d2s_v3", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "16", + "supportedSku": "standard_d2ds_v4", + "supportedStorageGb": 128, + "supportedTier": "GeneralPurpose" + }, + { + "serverCount": 0, + "supportedServerVersions": "16", + "supportedSku": "standard_e2ds_v4", + "supportedStorageGb": 512, + "supportedTier": "MemoryOptimized" + } + ], + "supportedFeatures": [ + { + "name": "FastProvisioning", + "status": "Enabled" + }, + { + "name": "ZoneRedundantHa", + "status": "Enabled" + }, + { + "name": "GeoBackup", + "status": "Enabled" + }, + { + "name": "ZoneRedundantHaAndGeoBackup", + "status": "Enabled" + }, + { + "name": "StorageAutoGrowth", + "status": "Enabled" + }, + { + "name": "OnlineResize", + "status": "Enabled" + }, + { + "name": "OfferRestricted", + "status": "Disabled" + }, + { + "name": "IndexTuning", + "status": "Enabled" + }, + { + "name": "Clusters", + "status": "Enabled" + } + ], + "supportedServerEditions": [ + { + "name": "Burstable", + "defaultSkuName": "Standard_B1ms", + "supportedServerSkus": [ + { + "name": "Standard_B1ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 640, + "supportedMemoryPerVcoreMb": 2048, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 1 + }, + { + "name": "Standard_B2s", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 1280, + "supportedMemoryPerVcoreMb": 2048, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_B2ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 1920, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_B4ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 2880, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_B8ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 4320, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_B12ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 4320, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 12 + }, + { + "name": "Standard_B16ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 4320, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_B20ms", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 4320, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 20 + } + ], + "supportedStorageEditions": [ + { + "name": "ManagedDisk", + "defaultStorageSizeMb": 32768, + "supportedStorageMb": [ + { + "defaultIopsTier": "P4", + "storageSizeMb": 32768, + "supportedIops": 120, + "supportedIopsTiers": [ + { + "name": "P4", + "iops": 120 + }, + { + "name": "P6", + "iops": 240 + }, + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P6", + "storageSizeMb": 65536, + "supportedIops": 240, + "supportedIopsTiers": [ + { + "name": "P6", + "iops": 240 + }, + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P10", + "storageSizeMb": 131072, + "supportedIops": 500, + "supportedIopsTiers": [ + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P15", + "storageSizeMb": 262144, + "supportedIops": 1100, + "supportedIopsTiers": [ + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P20", + "storageSizeMb": 524288, + "supportedIops": 2300, + "supportedIopsTiers": [ + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P30", + "storageSizeMb": 1048576, + "supportedIops": 5000, + "supportedIopsTiers": [ + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P40", + "storageSizeMb": 2097152, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P50", + "storageSizeMb": 4193280, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P50", + "storageSizeMb": 4194304, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P60", + "storageSizeMb": 8388608, + "supportedIops": 16000, + "supportedIopsTiers": [ + { + "name": "P60", + "iops": 16000 + }, + { + "name": "P70", + "iops": 18000 + }, + { + "name": "P80", + "iops": 20000 + } + ] + }, + { + "defaultIopsTier": "P70", + "storageSizeMb": 16777216, + "supportedIops": 18000, + "supportedIopsTiers": [ + { + "name": "P70", + "iops": 18000 + }, + { + "name": "P80", + "iops": 20000 + } + ] + }, + { + "defaultIopsTier": "P80", + "storageSizeMb": 33553408, + "supportedIops": 20000, + "supportedIopsTiers": [ + { + "name": "P80", + "iops": 20000 + } + ] + } + ] + }, + { + "name": "ManagedDiskV2", + "defaultStorageSizeMb": 32768, + "supportedStorageMb": [ + { + "defaultIopsTier": "None", + "maximumStorageSizeMb": 67108864, + "storageSizeMb": 32768, + "supportedIops": 3000, + "supportedIopsTiers": [ + { + "name": "None", + "iops": 0 + } + ], + "supportedMaximumIops": 80000, + "supportedMaximumThroughput": 1200, + "supportedThroughput": 125 + } + ] + } + ] + }, + { + "name": "GeneralPurpose", + "defaultSkuName": "Standard_D4ds_v5", + "supportedServerSkus": [ + { + "name": "Standard_D2s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3200, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_D4ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_D8s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_D16s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_D32s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_D48s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_D64s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_D2ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3200, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_D4ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_D8ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_D16ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_D32ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_D48ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_D64ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_D2ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3750, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_D4ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_D8ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_D16ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_D32ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_D48ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_D64ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_D96ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 4096, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 96 + } + ], + "supportedStorageEditions": [ + { + "name": "ManagedDisk", + "defaultStorageSizeMb": 65536, + "supportedStorageMb": [ + { + "defaultIopsTier": "P4", + "storageSizeMb": 32768, + "supportedIops": 120, + "supportedIopsTiers": [ + { + "name": "P4", + "iops": 120 + }, + { + "name": "P6", + "iops": 240 + }, + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P6", + "storageSizeMb": 65536, + "supportedIops": 240, + "supportedIopsTiers": [ + { + "name": "P6", + "iops": 240 + }, + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P10", + "storageSizeMb": 131072, + "supportedIops": 500, + "supportedIopsTiers": [ + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P15", + "storageSizeMb": 262144, + "supportedIops": 1100, + "supportedIopsTiers": [ + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P20", + "storageSizeMb": 524288, + "supportedIops": 2300, + "supportedIopsTiers": [ + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P30", + "storageSizeMb": 1048576, + "supportedIops": 5000, + "supportedIopsTiers": [ + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P40", + "storageSizeMb": 2097152, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P50", + "storageSizeMb": 4193280, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P50", + "storageSizeMb": 4194304, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P60", + "storageSizeMb": 8388608, + "supportedIops": 16000, + "supportedIopsTiers": [ + { + "name": "P60", + "iops": 16000 + }, + { + "name": "P70", + "iops": 18000 + }, + { + "name": "P80", + "iops": 20000 + } + ] + }, + { + "defaultIopsTier": "P70", + "storageSizeMb": 16777216, + "supportedIops": 18000, + "supportedIopsTiers": [ + { + "name": "P70", + "iops": 18000 + }, + { + "name": "P80", + "iops": 20000 + } + ] + }, + { + "defaultIopsTier": "P80", + "storageSizeMb": 33553408, + "supportedIops": 20000, + "supportedIopsTiers": [ + { + "name": "P80", + "iops": 20000 + } + ] + } + ] + }, + { + "name": "ManagedDiskV2", + "defaultStorageSizeMb": 65536, + "supportedStorageMb": [ + { + "defaultIopsTier": "None", + "maximumStorageSizeMb": 67108864, + "storageSizeMb": 32768, + "supportedIops": 3000, + "supportedIopsTiers": [ + { + "name": "None", + "iops": 0 + } + ], + "supportedMaximumIops": 80000, + "supportedMaximumThroughput": 1200, + "supportedThroughput": 125 + } + ] + } + ] + }, + { + "name": "MemoryOptimized", + "defaultSkuName": "Standard_E4ds_v5", + "supportedServerSkus": [ + { + "name": "Standard_E2s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3200, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_E4s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_E8s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_E16s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_E32s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 32000, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_E48s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_E64s_v3", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 6912, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_E2ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3200, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_E4ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_E8ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_E16ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_E20ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 32000, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 20 + }, + { + "name": "Standard_E32ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_E48ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_E64ds_v4", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 6912, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_M64", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 40000, + "supportedMemoryPerVcoreMb": 16384, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_M128", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 16384, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 128 + }, + { + "name": "Standard_E2ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 3750, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 2 + }, + { + "name": "Standard_E4ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 6400, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 4 + }, + { + "name": "Standard_E8ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 12800, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 8 + }, + { + "name": "Standard_E16ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 25600, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 16 + }, + { + "name": "Standard_E20ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 32000, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 20 + }, + { + "name": "Standard_E32ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 51200, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 32 + }, + { + "name": "Standard_E48ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 76800, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 48 + }, + { + "name": "Standard_E64ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 8192, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 64 + }, + { + "name": "Standard_E96ds_v5", + "supportedFeatures": [], + "supportedHaMode": [ + "SameZone", + "ZoneRedundant" + ], + "supportedIops": 80000, + "supportedMemoryPerVcoreMb": 7168, + "supportedZones": [ + "1", + "2", + "3" + ], + "vCores": 96 + } + ], + "supportedStorageEditions": [ + { + "name": "ManagedDisk", + "defaultStorageSizeMb": 131072, + "supportedStorageMb": [ + { + "defaultIopsTier": "P4", + "storageSizeMb": 32768, + "supportedIops": 120, + "supportedIopsTiers": [ + { + "name": "P4", + "iops": 120 + }, + { + "name": "P6", + "iops": 240 + }, + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P6", + "storageSizeMb": 65536, + "supportedIops": 240, + "supportedIopsTiers": [ + { + "name": "P6", + "iops": 240 + }, + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P10", + "storageSizeMb": 131072, + "supportedIops": 500, + "supportedIopsTiers": [ + { + "name": "P10", + "iops": 500 + }, + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P15", + "storageSizeMb": 262144, + "supportedIops": 1100, + "supportedIopsTiers": [ + { + "name": "P15", + "iops": 1100 + }, + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P20", + "storageSizeMb": 524288, + "supportedIops": 2300, + "supportedIopsTiers": [ + { + "name": "P20", + "iops": 2300 + }, + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P30", + "storageSizeMb": 1048576, + "supportedIops": 5000, + "supportedIopsTiers": [ + { + "name": "P30", + "iops": 5000 + }, + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P40", + "storageSizeMb": 2097152, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P40", + "iops": 7500 + }, + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P50", + "storageSizeMb": 4193280, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P50", + "storageSizeMb": 4194304, + "supportedIops": 7500, + "supportedIopsTiers": [ + { + "name": "P50", + "iops": 7500 + } + ] + }, + { + "defaultIopsTier": "P60", + "storageSizeMb": 8388608, + "supportedIops": 16000, + "supportedIopsTiers": [ + { + "name": "P60", + "iops": 16000 + }, + { + "name": "P70", + "iops": 18000 + }, + { + "name": "P80", + "iops": 20000 + } + ] + }, + { + "defaultIopsTier": "P70", + "storageSizeMb": 16777216, + "supportedIops": 18000, + "supportedIopsTiers": [ + { + "name": "P70", + "iops": 18000 + }, + { + "name": "P80", + "iops": 20000 + } + ] + }, + { + "defaultIopsTier": "P80", + "storageSizeMb": 33553408, + "supportedIops": 20000, + "supportedIopsTiers": [ + { + "name": "P80", + "iops": 20000 + } + ] + } + ] + }, + { + "name": "ManagedDiskV2", + "defaultStorageSizeMb": 131072, + "supportedStorageMb": [ + { + "defaultIopsTier": "None", + "maximumStorageSizeMb": 67108864, + "storageSizeMb": 32768, + "supportedIops": 3000, + "supportedIopsTiers": [ + { + "name": "None", + "iops": 0 + } + ], + "supportedMaximumIops": 80000, + "supportedMaximumThroughput": 1200, + "supportedThroughput": 125 + } + ] + } + ] + } + ], + "supportedServerVersions": [ + { + "name": "11", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "12", + "13", + "14", + "15", + "16", + "17", + "18" + ] + }, + { + "name": "12", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "13", + "14", + "15", + "16", + "17", + "18" + ] + }, + { + "name": "13", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "14", + "15", + "16", + "17", + "18" + ] + }, + { + "name": "14", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "15", + "16", + "17", + "18" + ] + }, + { + "name": "15", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "16", + "17", + "18" + ] + }, + { + "name": "16", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "17", + "18" + ] + }, + { + "name": "17", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [ + "18" + ] + }, + { + "name": "18", + "supportedFeatures": [], + "supportedVersionsToUpgrade": [] + } + ], + "zoneRedundantHaAndGeoBackupSupported": "Enabled", + "zoneRedundantHaSupported": "Enabled" + } + ] + } + } + }, + "operationId": "CapabilitiesByServer_List", + "title": "List the capabilities available for a given server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/CapturedLogsListByServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/CapturedLogsListByServer.json new file mode 100644 index 000000000000..7a4ac9df8f91 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/CapturedLogsListByServer.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "postgresql-20250601.log", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/logFiles", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/logFiles/postgresql-20250601.log", + "properties": { + "type": "slowlog", + "createdTime": "0001-01-01T00:00:00+00:00", + "lastModifiedTime": "2025-06-01T18:30:00+00:00", + "sizeInKb": 1, + "url": "https://exampleaccount.file.core.windows.net/833c99b2f36c47349e5554b903fe0440/serverlogs/postgresql-20250601.log?sv=2025-09-01&sr=f&se=2025-06-01T07%3A12%3A13Z&sp=r" + } + } + ] + } + } + }, + "operationId": "CapturedLogs_ListByServer", + "title": "List all captured logs for download in a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsGet.json new file mode 100644 index 000000000000..307de4114e61 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsGet.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "configurationName": "array_nulls", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "array_nulls", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/array_nulls", + "properties": { + "description": "Enables input of NULL (case insensitive) to be considered as NULL value rather than the literal String 'NULL'.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-compatible.html#GUC-ARRAY-NULLS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + } + } + }, + "operationId": "Configurations_Get", + "title": "Get information about a specific configuration (also known as server parameter) of a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsListByServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsListByServer.json new file mode 100644 index 000000000000..661e85688c21 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsListByServer.json @@ -0,0 +1,7127 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff//resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations?api-version=2025-06-01-preview&$skiptoken=skiptoken", + "value": [ + { + "name": "allow_in_place_tablespaces", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/allow_in_place_tablespaces", + "properties": { + "description": "Allows tablespaces directly inside pg_tblspc, for testing.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-ALLOW-IN-PLACE-TABLESPACES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "allow_system_table_mods", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/allow_system_table_mods", + "properties": { + "description": "Allows modifications of the structure of system tables.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-ALLOW-SYSTEM-TABLE-MODS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "application_name", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/application_name", + "properties": { + "description": "Sets the application name to be reported in statistics and logs.", + "allowedValues": "[A-Za-z0-9._-]*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/libpq-connect.html#LIBPQ-CONNECT-APPLICATION-NAME", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "" + } + }, + { + "name": "archive_cleanup_command", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/archive_cleanup_command", + "properties": { + "description": "Sets the shell command that will be executed at every restart point.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-ARCHIVE-CLEANUP-COMMAND", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "archive_command", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/archive_command", + "properties": { + "description": "Sets the shell command that will be called to archive a WAL file.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-ARCHIVE-COMMAND", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "BlobLogUpload.sh %f %p" + } + }, + { + "name": "archive_mode", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/archive_mode", + "properties": { + "description": "Allows archiving of WAL files using archive_command.", + "allowedValues": "always,on,off", + "dataType": "Enumeration", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-ARCHIVE-MODE", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "user-override", + "value": "always" + } + }, + { + "name": "archive_timeout", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/archive_timeout", + "properties": { + "description": "Forces a switch to the next WAL file if a new file has not been started within N seconds.", + "allowedValues": "0-1073741823", + "dataType": "Integer", + "defaultValue": "300", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-ARCHIVE-TIMEOUT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "unit": "seconds", + "value": "300" + } + }, + { + "name": "array_nulls", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/array_nulls", + "properties": { + "description": "Enables input of NULL (case insensitive) to be considered as NULL value rather than the literal String 'NULL'.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-compatible.html#GUC-ARRAY-NULLS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "authentication_timeout", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/authentication_timeout", + "properties": { + "description": "Sets the maximum allowed time to complete client authentication.", + "allowedValues": "1-600", + "dataType": "Integer", + "defaultValue": "60", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-AUTHENTICATION-TIMEOUT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "unit": "seconds", + "value": "30" + } + }, + { + "name": "auto_explain.log_analyze", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/auto_explain.log_analyze", + "properties": { + "description": "Use EXPLAIN ANALYZE for plan logging.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/auto-explain.html#id-1.11.7.13.5.3.2.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "auto_explain.log_buffers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/auto_explain.log_buffers", + "properties": { + "description": "Log buffers usage.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/auto-explain.html#id-1.11.7.13.5.3.3.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "auto_explain.log_format", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/auto_explain.log_format", + "properties": { + "description": "EXPLAIN format to be used for plan logging.", + "allowedValues": "text,xml,json,yaml", + "dataType": "Enumeration", + "defaultValue": "text", + "documentationLink": "https://www.postgresql.org/docs/13/auto-explain.html#id-1.11.7.13.5.3.9.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "text" + } + }, + { + "name": "auto_explain.log_level", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/auto_explain.log_level", + "properties": { + "description": "Log level for the plan.", + "allowedValues": "debug5,debug4,debug3,debug2,debug1,debug,info,notice,warning,log", + "dataType": "Enumeration", + "defaultValue": "log", + "documentationLink": "https://www.postgresql.org/docs/13/auto-explain.html#id-1.11.7.13.5.3.10.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "log" + } + }, + { + "name": "auto_explain.log_min_duration", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/auto_explain.log_min_duration", + "properties": { + "description": "Sets the minimum execution time above which plans will be logged. Zero prints all plans. -1 turns this feature off.", + "allowedValues": "-1-2147483647", + "dataType": "Integer", + "defaultValue": "-1", + "documentationLink": "https://www.postgresql.org/docs/13/auto-explain.html#id-1.11.7.13.5.3.1.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "-1" + } + }, + { + "name": "auto_explain.log_nested_statements", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/auto_explain.log_nested_statements", + "properties": { + "description": "Log nested statements.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/auto-explain.html#id-1.11.7.13.5.3.11.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "auto_explain.log_settings", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/auto_explain.log_settings", + "properties": { + "description": "Log modified configuration parameters affecting query planning.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/auto-explain.html#id-1.11.7.13.5.3.8.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "auto_explain.log_timing", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/auto_explain.log_timing", + "properties": { + "description": "Collect timing data, not just row counts.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/auto-explain.html#id-1.11.7.13.5.3.5.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "auto_explain.log_triggers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/auto_explain.log_triggers", + "properties": { + "description": "Include trigger statistics in plans. This has no effect unless log_analyze is also set.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/auto-explain.html#id-1.11.7.13.5.3.6.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "auto_explain.log_verbose", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/auto_explain.log_verbose", + "properties": { + "description": "Use EXPLAIN VERBOSE for plan logging.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/auto-explain.html#id-1.11.7.13.5.3.7.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "auto_explain.log_wal", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/auto_explain.log_wal", + "properties": { + "description": "Log WAL usage.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/auto-explain.html#id-1.11.7.13.5.3.4.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "auto_explain.sample_rate", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/auto_explain.sample_rate", + "properties": { + "description": "Fraction of queries to process.", + "allowedValues": "0.0-1.0", + "dataType": "Numeric", + "defaultValue": "1.0", + "documentationLink": "https://www.postgresql.org/docs/13/auto-explain.html#id-1.11.7.13.5.3.12.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "1.0" + } + }, + { + "name": "autovacuum", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum", + "properties": { + "description": "Controls whether the server should run the autovacuum subprocess.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#GUC-AUTOVACUUM", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "autovacuum_analyze_scale_factor", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum_analyze_scale_factor", + "properties": { + "description": "Specifies a fraction of the table size to add to autovacuum_vacuum_threshold when deciding whether to trigger a VACUUM.", + "allowedValues": "0-100", + "dataType": "Numeric", + "defaultValue": "0.1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#GUC-AUTOVACUUM-ANALYZE-SCALE-FACTOR", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0.1" + } + }, + { + "name": "autovacuum_analyze_threshold", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum_analyze_threshold", + "properties": { + "description": "Sets the minimum number of inserted, updated or deleted tuples needed to trigger an ANALYZE in any one table.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "50", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#GUC-AUTOVACUUM-ANALYZE-THRESHOLD", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "50" + } + }, + { + "name": "autovacuum_freeze_max_age", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum_freeze_max_age", + "properties": { + "description": "Maximum age (in transactions) before triggering autovacuum on a table to prevent transaction ID wraparound.", + "allowedValues": "100000-2000000000", + "dataType": "Integer", + "defaultValue": "200000000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#GUC-AUTOVACUUM-FREEZE-MAX-AGE", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "200000000" + } + }, + { + "name": "autovacuum_max_workers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum_max_workers", + "properties": { + "description": "Sets the maximum number of simultaneously running autovacuum worker processes.", + "allowedValues": "1-262143", + "dataType": "Integer", + "defaultValue": "3", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#GUC-AUTOVACUUM-MAX-WORKERS", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "3" + } + }, + { + "name": "autovacuum_multixact_freeze_max_age", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum_multixact_freeze_max_age", + "properties": { + "description": "Maximum age (in multixact) before triggering autovacuum on a table to prevent multixact wraparound.", + "allowedValues": "10000-2000000000", + "dataType": "Integer", + "defaultValue": "400000000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#GUC-AUTOVACUUM-MULTIXACT-FREEZE-MAX-AGE", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "400000000" + } + }, + { + "name": "autovacuum_naptime", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum_naptime", + "properties": { + "description": "Sets minimum delay between autovacuum runs on any given database.", + "allowedValues": "1-2147483", + "dataType": "Integer", + "defaultValue": "60", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#GUC-AUTOVACUUM-NAPTIME", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "seconds", + "value": "60" + } + }, + { + "name": "autovacuum_vacuum_cost_delay", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum_vacuum_cost_delay", + "properties": { + "description": "Sets cost delay value (milliseconds) that will be used in automatic VACUUM operations.", + "allowedValues": "-1-100", + "dataType": "Integer", + "defaultValue": "2", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-COST-DELAY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "2" + } + }, + { + "name": "autovacuum_vacuum_cost_limit", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum_vacuum_cost_limit", + "properties": { + "description": "Sets cost limit value that will be used in automatic VACUUM operations.", + "allowedValues": "-1-10000", + "dataType": "Integer", + "defaultValue": "-1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-COST-LIMIT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "-1" + } + }, + { + "name": "autovacuum_vacuum_insert_scale_factor", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum_vacuum_insert_scale_factor", + "properties": { + "description": "Specifies a fraction of the table size to add to autovacuum_vacuum_insert_threshold when deciding whether to trigger a VACUUM.", + "allowedValues": "0-100", + "dataType": "Numeric", + "defaultValue": "0.2", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-INSERT-SCALE-FACTOR", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0.2" + } + }, + { + "name": "autovacuum_vacuum_insert_threshold", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum_vacuum_insert_threshold", + "properties": { + "description": "Specifies the number of inserted tuples needed to trigger a VACUUM in any one table.", + "allowedValues": "-1-2147483647", + "dataType": "Integer", + "defaultValue": "1000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-INSERT-THRESHOLD", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "1000" + } + }, + { + "name": "autovacuum_vacuum_scale_factor", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum_vacuum_scale_factor", + "properties": { + "description": "Specifies a fraction of the table size to add to autovacuum_vacuum_threshold when deciding whether to trigger a VACUUM.", + "allowedValues": "0-100", + "dataType": "Numeric", + "defaultValue": "0.2", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-SCALE-FACTOR", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0.2" + } + }, + { + "name": "autovacuum_vacuum_threshold", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum_vacuum_threshold", + "properties": { + "description": "Specifies the minimum number of updated or deleted tuples needed to trigger a VACUUM in any one table.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "50", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-THRESHOLD", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "50" + } + }, + { + "name": "autovacuum_work_mem", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/autovacuum_work_mem", + "properties": { + "description": "Sets the maximum memory to be used by each autovacuum worker process.", + "allowedValues": "-1-2097151", + "dataType": "Integer", + "defaultValue": "-1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-AUTOVACUUM-WORK-MEM", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "KB", + "value": "-1" + } + }, + { + "name": "azure.accepted_password_auth_method", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/azure.accepted_password_auth_method", + "properties": { + "description": "Accepted password authentication method.", + "allowedValues": "md5,scram-sha-256", + "dataType": "Set", + "defaultValue": "md5", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274147", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "md5" + } + }, + { + "name": "azure.enable_temp_tablespaces_on_local_ssd", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/azure.enable_temp_tablespaces_on_local_ssd", + "properties": { + "description": "Create temp tablespace on ephemeral disk.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "azure.extensions", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/azure.extensions", + "properties": { + "description": "Specifies which extensions are allowed to be created in the server.", + "allowedValues": ",address_standardizer,address_standardizer_data_us,age,amcheck,anon,azure_ai,azure_storage,bloom,btree_gin,btree_gist,citext,cube,dblink,dict_int,dict_xsyn,earthdistance,fuzzystrmatch,hll,hstore,hypopg,intagg,intarray,isn,lo,login_hook,ltree,oracle_fdw,orafce,pageinspect,pg_buffercache,pg_cron,pg_freespacemap,pg_hint_plan,pg_partman,pg_prewarm,pg_repack,pg_squeeze,pg_stat_statements,pg_trgm,pg_visibility,pgaudit,pgcrypto,pglogical,pgrouting,pgrowlocks,pgstattuple,plpgsql,plv8,postgis,postgis_raster,postgis_sfcgal,postgis_tiger_geocoder,postgis_topology,postgres_fdw,postgres_protobuf,semver,session_variable,sslinfo,tablefunc,tdigest,tds_fdw,timescaledb,topn,tsm_system_rows,tsm_system_time,unaccent,uuid-ossp,vector", + "dataType": "Set", + "defaultValue": "", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274269", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "" + } + }, + { + "name": "azure.single_to_flex_migration", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/azure.single_to_flex_migration", + "properties": { + "description": "Specifies if this is a server created for migrating from Azure Database for PostgreSQL Single Server to Flexible Server.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "azure_storage.allow_network_access", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/azure_storage.allow_network_access", + "properties": { + "description": "Allow accessing data from blob storage in extension azure_storage.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "azure_storage.blob_block_size_mb", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/azure_storage.blob_block_size_mb", + "properties": { + "description": "Blob block size in megabytes for blob_put in extension azure_storage.", + "allowedValues": "1-4000", + "dataType": "Integer", + "defaultValue": "512", + "documentationLink": "https://learn.microsoft.com/en-us/rest/api/storageservices/put-block?tabs=azure-ad#remarks", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "unit": "megabytes", + "value": "512" + } + }, + { + "name": "azure_storage.public_account_access", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/azure_storage.public_account_access", + "properties": { + "description": "Allow all users to access data from public storage accounts in extension azure_storage.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "backend_flush_after", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/backend_flush_after", + "properties": { + "description": "Number of pages after which previously performed writes are flushed to disk.", + "allowedValues": "0-256", + "dataType": "Integer", + "defaultValue": "256", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-BACKEND-FLUSH-AFTER", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "8KB", + "value": "256" + } + }, + { + "name": "backslash_quote", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/backslash_quote", + "properties": { + "description": "Sets whether \"\\'\" is allowed in string literals.", + "allowedValues": "safe_encoding,on,off", + "dataType": "Enumeration", + "defaultValue": "safe_encoding", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-compatible.html#GUC-BACKSLASH-QUOTE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "safe_encoding" + } + }, + { + "name": "backtrace_functions", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/backtrace_functions", + "properties": { + "description": "Log backtrace for errors in these functions.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-BACKTRACE-FUNCTIONS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "bgwriter_delay", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/bgwriter_delay", + "properties": { + "description": "Specifies the delay between activity rounds for the background writer. In each round the writer issues writes for some number of dirty buffers.", + "allowedValues": "10-10000", + "dataType": "Integer", + "defaultValue": "20", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-BGWRITER-DELAY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "20" + } + }, + { + "name": "bgwriter_flush_after", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/bgwriter_flush_after", + "properties": { + "description": "Number of pages after which previously performed writes by the background writer are flushed to disk.", + "allowedValues": "0-256", + "dataType": "Integer", + "defaultValue": "64", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-BGWRITER-FLUSH-AFTER", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "8KB", + "value": "64" + } + }, + { + "name": "bgwriter_lru_maxpages", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/bgwriter_lru_maxpages", + "properties": { + "description": "In each round, no more than this many buffers will be written by the background writer.", + "allowedValues": "0-1073741823", + "dataType": "Integer", + "defaultValue": "100", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-BGWRITER-LRU-MAXPAGES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "100" + } + }, + { + "name": "bgwriter_lru_multiplier", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/bgwriter_lru_multiplier", + "properties": { + "description": "The average recent need of buffers is multiplied by bgwriter_lru_multiplier to arrive at an estimate of the number of buffers that will be needed during the next round.", + "allowedValues": "0-10", + "dataType": "Numeric", + "defaultValue": "2", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-BGWRITER-LRU-MULTIPLIER", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "2" + } + }, + { + "name": "block_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/block_size", + "properties": { + "description": "Shows the size of a disk block.", + "allowedValues": "8192-8192", + "dataType": "Integer", + "defaultValue": "8192", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-BLOCK-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "8192" + } + }, + { + "name": "bonjour", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/bonjour", + "properties": { + "description": "Enables advertising the server via Bonjour.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-BONJOUR", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "bonjour_name", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/bonjour_name", + "properties": { + "description": "Sets the Bonjour service name.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-BONJOUR-NAME", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "bytea_output", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/bytea_output", + "properties": { + "description": "Sets the output format for values of type bytea. Valid values are hex (the default) and escape (the traditional PostgreSQL format).", + "allowedValues": "escape,hex", + "dataType": "Enumeration", + "defaultValue": "hex", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-BYTEA-OUTPUT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "hex" + } + }, + { + "name": "check_function_bodies", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/check_function_bodies", + "properties": { + "description": "Checks function bodies during CREATE FUNCTION.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-CHECK-FUNCTION-BODIES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "checkpoint_completion_target", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/checkpoint_completion_target", + "properties": { + "description": "Specifies the target of checkpoint completion, as a fraction of total time between checkpoints.", + "allowedValues": "0-1", + "dataType": "Numeric", + "defaultValue": "0.9", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-CHECKPOINT-COMPLETION-TARGET", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0.9" + } + }, + { + "name": "checkpoint_flush_after", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/checkpoint_flush_after", + "properties": { + "description": "Number of pages after which previously performed writes are flushed to disk.", + "allowedValues": "0-256", + "dataType": "Integer", + "defaultValue": "32", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-CHECKPOINT-FLUSH-AFTER", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "unit": "8KB", + "value": "32" + } + }, + { + "name": "checkpoint_timeout", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/checkpoint_timeout", + "properties": { + "description": "Maximum time between automatic WAL checkpoints, in seconds. The valid range is between 30 seconds and one day.", + "allowedValues": "30-86400", + "dataType": "Integer", + "defaultValue": "600", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-CHECKPOINT-TIMEOUT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "seconds", + "value": "600" + } + }, + { + "name": "checkpoint_warning", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/checkpoint_warning", + "properties": { + "description": "Writes a warning message if checkpoints caused by the filling of WAL segment more frequently than this.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "30", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-CHECKPOINT-WARNING", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "seconds", + "value": "30" + } + }, + { + "name": "client_encoding", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/client_encoding", + "properties": { + "description": "Sets the client-side encoding (character set). The default is to use the database encoding.", + "allowedValues": "BIG5,EUC_CN,EUC_JP,EUC_JIS_2004,EUC_KR,EUC_TW,GB18030,GBK,ISO_8859_5,ISO_8859_6,ISO_8859_7,ISO_8859_8,JOHAB,KOI8R,KOI8U,LATIN1,LATIN2,LATIN3,LATIN4,LATIN5,LATIN6,LATIN7,LATIN8,LATIN9,LATIN10,MULE_INTERNAL,SJIS,SHIFT_JIS_2004,SQL_ASCII,UHC,UTF8,WIN866,WIN874,WIN1250,WIN1251,WIN1252,WIN1253,WIN1254,WIN1255,WIN1256,WIN1257,WIN1258", + "dataType": "Enumeration", + "defaultValue": "UTF8", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-CLIENT-ENCODING", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "UTF8" + } + }, + { + "name": "client_min_messages", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/client_min_messages", + "properties": { + "description": "Controls the message levels that are sent to the client.", + "allowedValues": "debug5,debug4,debug3,debug2,debug1,log,notice,warning,error", + "dataType": "Enumeration", + "defaultValue": "notice", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-CLIENT-MIN-MESSAGES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "notice" + } + }, + { + "name": "cluster_name", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/cluster_name", + "properties": { + "description": "Sets the name of the cluster, which is included in the process title.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "commit_delay", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/commit_delay", + "properties": { + "description": "Sets the delay in microseconds between transaction commit and flushing WAL to disk.", + "allowedValues": "0-100000", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-COMMIT-DELAY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "microseconds", + "value": "0" + } + }, + { + "name": "commit_siblings", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/commit_siblings", + "properties": { + "description": "Sets the minimum concurrent open transactions before performing commit_delay.", + "allowedValues": "0-1000", + "dataType": "Integer", + "defaultValue": "5", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-COMMIT-SIBLINGS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "5" + } + }, + { + "name": "config_file", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/config_file", + "properties": { + "description": "Sets the server's main configuration file.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-file-locations.html#GUC-CONFIG-FILE", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "user-override", + "value": "/datadrive/pg/data/postgresql.conf" + } + }, + { + "name": "connection_throttle.bucket_limit", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/connection_throttle.bucket_limit", + "properties": { + "description": "Max login tokens per bucket.", + "allowedValues": "1-2147483647", + "dataType": "Integer", + "defaultValue": "2000", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "2000" + } + }, + { + "name": "connection_throttle.enable", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/connection_throttle.enable", + "properties": { + "description": "Enables temporary connection throttling per IP for too many login failures.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "connection_throttle.factor_bias", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/connection_throttle.factor_bias", + "properties": { + "description": "The factor bias for calculating number of tokens for an IP's bucket.", + "allowedValues": "0.0-0.9", + "dataType": "Numeric", + "defaultValue": "0.8", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0.8" + } + }, + { + "name": "connection_throttle.hash_entries_max", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/connection_throttle.hash_entries_max", + "properties": { + "description": "Max number of entries in the login failures hash table.", + "allowedValues": "1-2147483647", + "dataType": "Integer", + "defaultValue": "500", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "500" + } + }, + { + "name": "connection_throttle.reset_time", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/connection_throttle.reset_time", + "properties": { + "description": "Time between resetting the login bucket.", + "allowedValues": "1-2147483647", + "dataType": "Integer", + "defaultValue": "120", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "seconds", + "value": "120" + } + }, + { + "name": "connection_throttle.restore_factor", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/connection_throttle.restore_factor", + "properties": { + "description": "Factor to increase number of tokens by for IPs with low failure rate.", + "allowedValues": "1.0-100.0", + "dataType": "Numeric", + "defaultValue": "2", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "2" + } + }, + { + "name": "connection_throttle.update_time", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/connection_throttle.update_time", + "properties": { + "description": "Time between updating the login bucket.", + "allowedValues": "1-2147483647", + "dataType": "Integer", + "defaultValue": "20", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "seconds", + "value": "20" + } + }, + { + "name": "constraint_exclusion", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/constraint_exclusion", + "properties": { + "description": "Controls the query planner's use of table constraints to optimize queries.", + "allowedValues": "partition,on,off", + "dataType": "Enumeration", + "defaultValue": "partition", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-CONSTRAINT-EXCLUSION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "partition" + } + }, + { + "name": "cpu_index_tuple_cost", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/cpu_index_tuple_cost", + "properties": { + "description": "Sets the planner's estimate of the cost of processing each index entry during an index scan.", + "allowedValues": "0-1.79769e+308", + "dataType": "Numeric", + "defaultValue": "0.005", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-CPU-INDEX-TUPLE-COST", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0.005" + } + }, + { + "name": "cpu_operator_cost", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/cpu_operator_cost", + "properties": { + "description": "Sets the planner's estimate of the cost of processing each operator or function executed during a query.", + "allowedValues": "0-1.79769e+308", + "dataType": "Numeric", + "defaultValue": "0.0025", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-CPU-OPERATOR-COST", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0.0025" + } + }, + { + "name": "cpu_tuple_cost", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/cpu_tuple_cost", + "properties": { + "description": "Sets the planner's estimate of the cost of processing each row during a query.", + "allowedValues": "0-1.79769e+308", + "dataType": "Numeric", + "defaultValue": "0.01", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-CPU-TUPLE-COST", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0.01" + } + }, + { + "name": "cron.database_name", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/cron.database_name", + "properties": { + "description": "Sets the database in which pg_cron metadata is kept.", + "allowedValues": "[A-Za-z0-9_]+", + "dataType": "String", + "defaultValue": "postgres", + "documentationLink": "https://github.com/citusdata/pg_cron", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "postgres" + } + }, + { + "name": "cron.log_run", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/cron.log_run", + "properties": { + "description": "Log all jobs runs into the job_run_details table.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://github.com/citusdata/pg_cron", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "cron.log_statement", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/cron.log_statement", + "properties": { + "description": "Log all cron statements prior to execution.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://github.com/citusdata/pg_cron", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "cron.max_running_jobs", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/cron.max_running_jobs", + "properties": { + "description": "Sets the maximum number of jobs that can run concurrently. This value is limited by max_connections.", + "allowedValues": "0-5000", + "dataType": "Integer", + "defaultValue": "32", + "documentationLink": "https://github.com/citusdata/pg_cron", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "32" + } + }, + { + "name": "cursor_tuple_fraction", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/cursor_tuple_fraction", + "properties": { + "description": "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved.", + "allowedValues": "0-1", + "dataType": "Numeric", + "defaultValue": "0.1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-CURSOR-TUPLE-FRACTION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0.1" + } + }, + { + "name": "data_checksums", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/data_checksums", + "properties": { + "description": "Shows whether data checksums are turned on for this cluster.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-DATA-CHECKSUMS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "on" + } + }, + { + "name": "data_directory", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/data_directory", + "properties": { + "description": "Sets the server's data directory.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-file-locations.html#GUC-DATA-DIRECTORY", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "user-override", + "value": "/datadrive/pg/data" + } + }, + { + "name": "data_directory_mode", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/data_directory_mode", + "properties": { + "description": "Mode of the data directory.", + "allowedValues": "0-511", + "dataType": "Integer", + "defaultValue": "448", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-DATA-DIRECTORY-MODE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "0700" + } + }, + { + "name": "data_sync_retry", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/data_sync_retry", + "properties": { + "description": "Whether to continue running after a failure to sync data files.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-error-handling.html#GUC-DATA-SYNC-RETRY", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "DateStyle", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/DateStyle", + "properties": { + "description": "Sets the display format for date and time values.", + "allowedValues": "(ISO|POSTGRES|SQL|GERMAN)(, (DMY|MDY|YMD))?", + "dataType": "String", + "defaultValue": "ISO, MDY", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-DATESTYLE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "ISO, MDY" + } + }, + { + "name": "db_user_namespace", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/db_user_namespace", + "properties": { + "description": "Enables per-database user names.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-DB-USER-NAMESPACE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "deadlock_timeout", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/deadlock_timeout", + "properties": { + "description": "Sets the amount of time, in milliseconds, to wait on a lock before checking for deadlock.", + "allowedValues": "1-2147483647", + "dataType": "Integer", + "defaultValue": "1000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-locks.html#GUC-DEADLOCK-TIMEOUT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "1000" + } + }, + { + "name": "debug_assertions", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/debug_assertions", + "properties": { + "description": "Shows whether the running server has assertion checks enabled.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "debug_pretty_print", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/debug_pretty_print", + "properties": { + "description": "Indents parse and plan tree displays.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#id-1.6.6.11.5.3.3.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "debug_print_parse", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/debug_print_parse", + "properties": { + "description": "Logs each query's parse tree.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#id-1.6.6.11.5.3.2.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "debug_print_plan", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/debug_print_plan", + "properties": { + "description": "Logs each query's execution plan.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#id-1.6.6.11.5.3.2.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "debug_print_rewritten", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/debug_print_rewritten", + "properties": { + "description": "Logs each query's rewritten parse tree.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#id-1.6.6.11.5.3.2.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "default_statistics_target", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/default_statistics_target", + "properties": { + "description": "Sets the default statistics target for table columns without a column-specific target.", + "allowedValues": "1-10000", + "dataType": "Integer", + "defaultValue": "100", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-DEFAULT-STATISTICS-TARGET", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "100" + } + }, + { + "name": "default_table_access_method", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/default_table_access_method", + "properties": { + "description": "Sets the default table access method for new tables.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "heap", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-DEFAULT-TABLE-ACCESS-METHOD", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "heap" + } + }, + { + "name": "default_tablespace", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/default_tablespace", + "properties": { + "description": "Sets the default tablespace to create tables and indexes in.", + "allowedValues": "[A-Za-z._]*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-DEFAULT-TABLESPACE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "" + } + }, + { + "name": "default_text_search_config", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/default_text_search_config", + "properties": { + "description": "Selects the text search configuration that is used by those variants of the text search functions that do not have an explicit argument specifying it.", + "allowedValues": "[A-Za-z._]+", + "dataType": "String", + "defaultValue": "pg_catalog.english", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-DEFAULT-TEXT-SEARCH-CONFIG", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "pg_catalog.english" + } + }, + { + "name": "default_transaction_deferrable", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/default_transaction_deferrable", + "properties": { + "description": "This parameter controls the default deferrable status of each new transaction. It has no effect on read-write transactions or those operating at isolation levels lower than serializable.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-DEFAULT-TRANSACTION-DEFERRABLE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "default_transaction_isolation", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/default_transaction_isolation", + "properties": { + "description": "This parameter controls the default isolation level of each new transaction. The default is 'read committed'.", + "allowedValues": "serializable,repeatable read,read committed,read uncommitted", + "dataType": "Enumeration", + "defaultValue": "read committed", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-DEFAULT-TRANSACTION-ISOLATION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "read committed" + } + }, + { + "name": "default_transaction_read_only", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/default_transaction_read_only", + "properties": { + "description": "Sets the default read-only status of each new transaction.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-DEFAULT-TRANSACTION-READ-ONLY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "dynamic_library_path", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/dynamic_library_path", + "properties": { + "description": "Sets the path for dynamically loadable modules.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "$libdir", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-DYNAMIC-LIBRARY-PATH", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "$libdir" + } + }, + { + "name": "dynamic_shared_memory_type", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/dynamic_shared_memory_type", + "properties": { + "description": "Selects the dynamic shared memory implementation used.", + "allowedValues": "posix,sysv,mmap", + "dataType": "Enumeration", + "defaultValue": "posix", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-DYNAMIC-SHARED-MEMORY-TYPE", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "posix" + } + }, + { + "name": "effective_cache_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/effective_cache_size", + "properties": { + "description": "Sets the planner's assumption about the size of the disk cache.", + "allowedValues": "1-2147483647", + "dataType": "Integer", + "defaultValue": "1572864", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-EFFECTIVE-CACHE-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "8KB", + "value": "1572864" + } + }, + { + "name": "effective_io_concurrency", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/effective_io_concurrency", + "properties": { + "description": "Sets the number of concurrent disk I/O operations that PostgreSQL expects can be executed simultaneously.", + "allowedValues": "0-1000", + "dataType": "Integer", + "defaultValue": "1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-EFFECTIVE-IO-CONCURRENCY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "1" + } + }, + { + "name": "enable_bitmapscan", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_bitmapscan", + "properties": { + "description": "Enables the planner's use of bitmap-scan plans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-BITMAPSCAN", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_gathermerge", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_gathermerge", + "properties": { + "description": "Enables the planner's use of gather merge plans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-GATHERMERGE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_hashagg", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_hashagg", + "properties": { + "description": "Enables the planner's use of hashed aggregation plans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-HASHAGG", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_hashjoin", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_hashjoin", + "properties": { + "description": "Enables the planner's use of hash join plans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-HASHJOIN", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_incremental_sort", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_incremental_sort", + "properties": { + "description": "Enables the planner's use of incremental sort steps.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-INCREMENTAL-SORT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_indexonlyscan", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_indexonlyscan", + "properties": { + "description": "Enables the planner's use of index-only-scan plans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-INDEXONLYSCAN", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_indexscan", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_indexscan", + "properties": { + "description": "Enables the planner's use of index-scan plans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-INDEXSCAN", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_material", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_material", + "properties": { + "description": "Enables the planner's use of materialization.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-MATERIAL", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_mergejoin", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_mergejoin", + "properties": { + "description": "Enables the planner's use of merge join plans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-MERGEJOIN", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_nestloop", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_nestloop", + "properties": { + "description": "Enables the planner's use of nested loop join plans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-NESTLOOP", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_parallel_append", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_parallel_append", + "properties": { + "description": "Enables the planner's use of parallel append plans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-PARALLEL-APPEND", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_parallel_hash", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_parallel_hash", + "properties": { + "description": "Enables the planner's use of parallel hash plans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-PARALLEL-HASH", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_partition_pruning", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_partition_pruning", + "properties": { + "description": "Enables plan-time and run-time partition pruning.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-PARTITION-PRUNING", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_partitionwise_aggregate", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_partitionwise_aggregate", + "properties": { + "description": "Enables or disables the query planner's use of partitionwise grouping or aggregation, which allows grouping or aggregation on a partitioned tables performed separately for each partition.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-PARTITIONWISE-AGGREGATE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "enable_partitionwise_join", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_partitionwise_join", + "properties": { + "description": "Enables or disables the query planner's use of partitionwise join, which allows a join between partitioned tables to be performed by joining the matching partitions.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-PARTITIONWISE-JOIN", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "enable_seqscan", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_seqscan", + "properties": { + "description": "Enables the planner's use of sequential-scan plans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-SEQSCAN", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_sort", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_sort", + "properties": { + "description": "Enables the planner's use of explicit sort steps.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-SORT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "enable_tidscan", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/enable_tidscan", + "properties": { + "description": "Enables the planner's use of TID scan plans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-TIDSCAN", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "escape_string_warning", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/escape_string_warning", + "properties": { + "description": "Warns about backslash escapes in ordinary string literals.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-compatible.html#GUC-ESCAPE-STRING-WARNING", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "event_source", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/event_source", + "properties": { + "description": "Sets the application name used to identify PostgreSQL messages in the event log.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "PostgreSQL", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-EVENT-SOURCE", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "PostgreSQL" + } + }, + { + "name": "exit_on_error", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/exit_on_error", + "properties": { + "description": "Terminates session on any error.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-error-handling.html#GUC-EXIT-ON-ERROR", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "external_pid_file", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/external_pid_file", + "properties": { + "description": "Writes the postmaster PID to the specified file.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-file-locations.html#GUC-EXTERNAL-PID-FILE", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "extra_float_digits", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/extra_float_digits", + "properties": { + "description": "Sets the number of digits displayed for floating-point values.", + "allowedValues": "-15-3", + "dataType": "Integer", + "defaultValue": "1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-EXTRA-FLOAT-DIGITS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "1" + } + }, + { + "name": "force_parallel_mode", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/force_parallel_mode", + "properties": { + "description": "Forces use of parallel query facilities.", + "allowedValues": "off,on,regress", + "dataType": "Enumeration", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-FORCE-PARALLEL-MODE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "from_collapse_limit", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/from_collapse_limit", + "properties": { + "description": "The planner will merge sub-queries into upper queries upto this limit in FROM clause. Smaller values reduce planning time but might yield inferior query plans.", + "allowedValues": "1-2147483647", + "dataType": "Integer", + "defaultValue": "8", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-FROM-COLLAPSE-LIMIT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "8" + } + }, + { + "name": "fsync", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/fsync", + "properties": { + "description": "Forces synchronization of updates to disk.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-FSYNC", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "full_page_writes", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/full_page_writes", + "properties": { + "description": "Writes full pages to WAL when first modified after a checkpoint.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-FULL-PAGE-WRITES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "geqo", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/geqo", + "properties": { + "description": "Enables genetic query optimization.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-GEQO", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "geqo_effort", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/geqo_effort", + "properties": { + "description": "GEQO: effort is used to set the default for other GEQO parameters.", + "allowedValues": "1-10", + "dataType": "Integer", + "defaultValue": "5", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-GEQO-EFFORT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "5" + } + }, + { + "name": "geqo_generations", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/geqo_generations", + "properties": { + "description": "GEQO: number of iterations of the algorithm.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-GEQO-GENERATIONS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0" + } + }, + { + "name": "geqo_pool_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/geqo_pool_size", + "properties": { + "description": "GEQO: number of individuals in the population.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-GEQO-POOL-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0" + } + }, + { + "name": "geqo_seed", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/geqo_seed", + "properties": { + "description": "GEQO: seed for random path selection.", + "allowedValues": "0-1", + "dataType": "Numeric", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-GEQO-SEED", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0" + } + }, + { + "name": "geqo_selection_bias", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/geqo_selection_bias", + "properties": { + "description": "GEQO: selective pressure within the population.", + "allowedValues": "1.5-2", + "dataType": "Numeric", + "defaultValue": "2", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-GEQO-SELECTION-BIAS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "2" + } + }, + { + "name": "geqo_threshold", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/geqo_threshold", + "properties": { + "description": "Sets the threshold of FROM items beyond which GEQO is used.", + "allowedValues": "2-2147483647", + "dataType": "Integer", + "defaultValue": "12", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-GEQO-THRESHOLD", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "12" + } + }, + { + "name": "gin_fuzzy_search_limit", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/gin_fuzzy_search_limit", + "properties": { + "description": "Sets the maximum allowed result for exact search by GIN.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-GIN-FUZZY-SEARCH-LIMIT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0" + } + }, + { + "name": "gin_pending_list_limit", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/gin_pending_list_limit", + "properties": { + "description": "Sets the maximum size of the pending list for GIN index.", + "allowedValues": "64-2097151", + "dataType": "Integer", + "defaultValue": "4096", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-GIN-PENDING-LIST-LIMIT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "KB", + "value": "4096" + } + }, + { + "name": "hash_mem_multiplier", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/hash_mem_multiplier", + "properties": { + "description": "Multiple of work_mem to use for hash tables.", + "allowedValues": "1-1000", + "dataType": "Numeric", + "defaultValue": "1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-HASH-MEM-MULTIPLIER", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "1" + } + }, + { + "name": "hba_file", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/hba_file", + "properties": { + "description": "Sets the server's \"hba\" configuration file.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-file-locations.html#GUC-HBA-FILE", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "user-override", + "value": "/datadrive/pg/data/pg_hba.conf" + } + }, + { + "name": "hot_standby", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/hot_standby", + "properties": { + "description": "Allows connections and queries during recovery.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-HOT-STANDBY", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "hot_standby_feedback", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/hot_standby_feedback", + "properties": { + "description": "Enables/disables the option whether hot standby needs to send feedback to the primary or upstream standby about queries currently executing on the standby.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-HOT-STANDBY-FEEDBACK", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "huge_pages", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/huge_pages", + "properties": { + "description": "Enables/disables the use of huge memory pages. This setting is not applicable to servers having less than 4 vCores.", + "allowedValues": "on,off,try", + "dataType": "Enumeration", + "defaultValue": "try", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-HUGE-PAGES", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "try" + } + }, + { + "name": "ident_file", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ident_file", + "properties": { + "description": "Sets the server's \"ident\" configuration file.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-file-locations.html#GUC-IDENT-FILE", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "user-override", + "value": "/datadrive/pg/data/pg_ident.conf" + } + }, + { + "name": "idle_in_transaction_session_timeout", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/idle_in_transaction_session_timeout", + "properties": { + "description": "Sets the maximum allowed duration of any idling transaction.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-IDLE-IN-TRANSACTION-SESSION-TIMEOUT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "0" + } + }, + { + "name": "ignore_checksum_failure", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ignore_checksum_failure", + "properties": { + "description": "Continues processing after a checksum failure.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-IGNORE-CHECKSUM-FAILURE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "ignore_invalid_pages", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ignore_invalid_pages", + "properties": { + "description": "Continues recovery after an invalid pages failure.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-IGNORE-INVALID-PAGES", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "ignore_system_indexes", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ignore_system_indexes", + "properties": { + "description": "Disables reading from system indexes.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-IGNORE-SYSTEM-INDEXES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "index_tuning.analysis_interval", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/index_tuning.analysis_interval", + "properties": { + "description": "Sets the frequency at which each index optimization session is triggered when index_tuning.mode is set to 'REPORT'.", + "allowedValues": "60-10080", + "dataType": "Integer", + "defaultValue": "720", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274149", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "minutes", + "value": "720" + } + }, + { + "name": "index_tuning.max_columns_per_index", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/index_tuning.max_columns_per_index", + "properties": { + "description": "Maximum number of columns that can be part of the index key for any recommended index.", + "allowedValues": "1-10", + "dataType": "Integer", + "defaultValue": "2", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274149", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "2" + } + }, + { + "name": "index_tuning.max_index_count", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/index_tuning.max_index_count", + "properties": { + "description": "Maximum number of indexes that can be recommended for each database during one optimization session.", + "allowedValues": "1-25", + "dataType": "Integer", + "defaultValue": "10", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274149", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "10" + } + }, + { + "name": "index_tuning.max_indexes_per_table", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/index_tuning.max_indexes_per_table", + "properties": { + "description": "Maximum number of indexes that can be recommended for each table.", + "allowedValues": "1-25", + "dataType": "Integer", + "defaultValue": "10", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274149", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "10" + } + }, + { + "name": "index_tuning.max_queries_per_database", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/index_tuning.max_queries_per_database", + "properties": { + "description": "Number of slowest queries per database for which indexes can be recommended.", + "allowedValues": "5-100", + "dataType": "Integer", + "defaultValue": "25", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274149", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "25" + } + }, + { + "name": "index_tuning.max_regression_factor", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/index_tuning.max_regression_factor", + "properties": { + "description": "Acceptable regression introduced by a recommended index on any of the queries analyzed during one optimization session.", + "allowedValues": "0.05-0.2", + "dataType": "Numeric", + "defaultValue": "0.1", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274149", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "percentage", + "value": "0.1" + } + }, + { + "name": "index_tuning.max_total_size_factor", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/index_tuning.max_total_size_factor", + "properties": { + "description": "Maximum total size, in percentage of total disk space, that all recommended indexes for any given database can use.", + "allowedValues": "0-1.0", + "dataType": "Numeric", + "defaultValue": "0.1", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274149", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "percentage", + "value": "0.1" + } + }, + { + "name": "index_tuning.min_improvement_factor", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/index_tuning.min_improvement_factor", + "properties": { + "description": "Cost improvement that a recommended index must provide to at least one of the queries analyzed during one optimization session.", + "allowedValues": "0-20.0", + "dataType": "Numeric", + "defaultValue": "0.2", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274149", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "percentage", + "value": "0.2" + } + }, + { + "name": "index_tuning.mode", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/index_tuning.mode", + "properties": { + "description": "Configures index optimization as disabled ('OFF') or enabled to only emit recommendation. Requires Query Store to be enabled by setting pg_qs.query_capture_mode to 'TOP' or 'ALL'.", + "allowedValues": "off,report", + "dataType": "Enumeration", + "defaultValue": "off", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274149", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "index_tuning.unused_dml_per_table", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/index_tuning.unused_dml_per_table", + "properties": { + "description": "Minimum number of daily average DML operations affecting the table, so that their unused indexes are considered for dropping.", + "allowedValues": "0-9999999", + "dataType": "Integer", + "defaultValue": "1000", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274149", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "1000" + } + }, + { + "name": "index_tuning.unused_min_period", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/index_tuning.unused_min_period", + "properties": { + "description": "Minimum number of days the index has not been used, based on system statistics, so that it is considered for dropping.", + "allowedValues": "30-720", + "dataType": "Integer", + "defaultValue": "35", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274149", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "days", + "value": "35" + } + }, + { + "name": "index_tuning.unused_reads_per_table", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/index_tuning.unused_reads_per_table", + "properties": { + "description": "Minimum number of daily average read operations affecting the table, so that their unused indexes are considered for dropping.", + "allowedValues": "0-9999999", + "dataType": "Integer", + "defaultValue": "1000", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274149", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "1000" + } + }, + { + "name": "integer_datetimes", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/integer_datetimes", + "properties": { + "description": "Datetimes are integer based.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-INTEGER-DATETIMES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "intelligent_tuning", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/intelligent_tuning", + "properties": { + "description": "Enables intelligent tuning", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274150", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "intelligent_tuning.metric_targets", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/intelligent_tuning.metric_targets", + "properties": { + "description": "Specifies which metrics will be adjusted by intelligent tuning.", + "allowedValues": "none,Storage-checkpoint_completion_target,Storage-min_wal_size,Storage-max_wal_size,Storage-bgwriter_delay,tuning-autovacuum,all", + "dataType": "Set", + "defaultValue": "none", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274150", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "none" + } + }, + { + "name": "IntervalStyle", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/IntervalStyle", + "properties": { + "description": "Sets the display format for interval values.", + "allowedValues": "postgres,postgres_verbose,sql_standard,iso_8601", + "dataType": "Enumeration", + "defaultValue": "postgres", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-INTERVALSTYLE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "postgres" + } + }, + { + "name": "jit", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/jit", + "properties": { + "description": "Determines whether JIT compilation may be used by PostgreSQL.", + "allowedValues": "on, off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-JIT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "jit_above_cost", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/jit_above_cost", + "properties": { + "description": "Sets the query cost above which JIT compilation is activated, if enabled.", + "allowedValues": "-1-2147483647", + "dataType": "Integer", + "defaultValue": "100000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-JIT-ABOVE-COST", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "100000" + } + }, + { + "name": "jit_debugging_support", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/jit_debugging_support", + "properties": { + "description": "Register JIT compiled function with debugger.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-JIT-DEBUGGING-SUPPORT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "jit_dump_bitcode", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/jit_dump_bitcode", + "properties": { + "description": "Write out LLVM bitcode to facilitate JIT debugging.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-JIT-DUMP-BITCODE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "jit_expressions", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/jit_expressions", + "properties": { + "description": "Allow JIT compilation of expressions.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-JIT-EXPRESSIONS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "jit_inline_above_cost", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/jit_inline_above_cost", + "properties": { + "description": "Sets the query cost above which JIT compilation attempts to inline functions and operators.", + "allowedValues": "-1-2147483647", + "dataType": "Integer", + "defaultValue": "500000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-JIT-INLINE-ABOVE-COST", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "500000" + } + }, + { + "name": "jit_optimize_above_cost", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/jit_optimize_above_cost", + "properties": { + "description": "Sets the query cost above which JIT compilation applies expensive optimizations.", + "allowedValues": "-1-2147483647", + "dataType": "Integer", + "defaultValue": "500000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-JIT-OPTIMIZE-ABOVE-COST", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "500000" + } + }, + { + "name": "jit_profiling_support", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/jit_profiling_support", + "properties": { + "description": "Register JIT compiled function with perf profiler.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-JIT-PROFILING-SUPPORT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "jit_provider", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/jit_provider", + "properties": { + "description": "JIT provider to use.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "llvmjit", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-JIT-PROVIDER", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "llvmjit" + } + }, + { + "name": "jit_tuple_deforming", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/jit_tuple_deforming", + "properties": { + "description": "Allow JIT compilation of tuple deforming.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-JIT-TUPLE-DEFORMING", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "join_collapse_limit", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/join_collapse_limit", + "properties": { + "description": "Sets the FROM-list size beyond which JOIN constructs are not flattened.", + "allowedValues": "1-2147483647", + "dataType": "Integer", + "defaultValue": "8", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-JOIN-COLLAPSE-LIMIT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "8" + } + }, + { + "name": "krb_caseins_users", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/krb_caseins_users", + "properties": { + "description": "Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-KRB-CASEINS-USERS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "krb_server_keyfile", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/krb_server_keyfile", + "properties": { + "description": "Sets the location of the Kerberos server key file.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-KRB-SERVER-KEYFILE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "lc_collate", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/lc_collate", + "properties": { + "description": "Shows the collation order locale.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "C", + "documentationLink": "https://www.postgresql.org/docs/13/locale.html", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "en_US.utf8" + } + }, + { + "name": "lc_ctype", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/lc_ctype", + "properties": { + "description": "Shows the character classification and case conversion locale.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "C", + "documentationLink": "https://www.postgresql.org/docs/13/locale.html", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "en_US.utf8" + } + }, + { + "name": "lc_messages", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/lc_messages", + "properties": { + "description": "Sets the language in which messages are displayed.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-LC-MESSAGES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "en_US.utf8" + } + }, + { + "name": "lc_monetary", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/lc_monetary", + "properties": { + "description": "Sets the locale for formatting monetary amounts.", + "allowedValues": "[A-Za-z0-9._ -]+", + "dataType": "String", + "defaultValue": "en_US.utf-8", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-LC-MONETARY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "en_US.utf-8" + } + }, + { + "name": "lc_numeric", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/lc_numeric", + "properties": { + "description": "Sets the locale for formatting numbers.", + "allowedValues": "[A-Za-z0-9._ -]+", + "dataType": "String", + "defaultValue": "en_US.utf-8", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-LC-NUMERIC", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "en_US.utf-8" + } + }, + { + "name": "lc_time", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/lc_time", + "properties": { + "description": "Sets the locale for formatting date and time values.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "C", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-LC-TIME", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "en_US.utf8" + } + }, + { + "name": "listen_addresses", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/listen_addresses", + "properties": { + "description": "Sets the host name or IP address(es) to listen to.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "localhost", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-LISTEN-ADDRESSES", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "user-override", + "value": "*" + } + }, + { + "name": "lo_compat_privileges", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/lo_compat_privileges", + "properties": { + "description": "Enables backward compatibility mode for privilege checks on large objects.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-compatible.html#GUC-LO-COMPAT-PRIVILEGES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "local_preload_libraries", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/local_preload_libraries", + "properties": { + "description": "Lists unprivileged shared libraries to preload into each backend.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-LOCAL-PRELOAD-LIBRARIES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "lock_timeout", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/lock_timeout", + "properties": { + "description": "Sets the maximum allowed duration (in milliseconds) of any wait for a lock. 0 turns this off.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-LOCK-TIMEOUT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "0" + } + }, + { + "name": "log_autovacuum_min_duration", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_autovacuum_min_duration", + "properties": { + "description": "Sets the minimum execution time above which autovacuum actions will be logged.", + "allowedValues": "-1-2147483647", + "dataType": "Integer", + "defaultValue": "-1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-autovacuum.html#id-1.6.6.13.4.2.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "-1" + } + }, + { + "name": "log_checkpoints", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_checkpoints", + "properties": { + "description": "Logs each checkpoint.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-CHECKPOINTS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "log_connections", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_connections", + "properties": { + "description": "Causes each attempted connection to the server to be logged, as well as successful completion of client authentication.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-CONNECTIONS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "log_destination", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_destination", + "properties": { + "description": "Sets the destination for server log output.", + "allowedValues": "stderr,csvlog", + "dataType": "Enumeration", + "defaultValue": "stderr", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-DESTINATION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "stderr" + } + }, + { + "name": "log_directory", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_directory", + "properties": { + "description": "Sets the destination directory for log files.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "log", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-DIRECTORY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "log" + } + }, + { + "name": "log_disconnections", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_disconnections", + "properties": { + "description": "Logs end of a session, including duration.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-DISCONNECTIONS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "log_duration", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_duration", + "properties": { + "description": "Logs the duration of each completed SQL statement.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-DURATION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "log_error_verbosity", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_error_verbosity", + "properties": { + "description": "Controls the amount of detail written in the server log for each message that is logged.", + "allowedValues": "terse,default,verbose", + "dataType": "Enumeration", + "defaultValue": "default", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-ERROR-VERBOSITY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "default" + } + }, + { + "name": "log_executor_stats", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_executor_stats", + "properties": { + "description": "Writes executor performance statistics to the server log.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-statistics.html#id-1.6.6.12.3.2.1.4.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "log_file_mode", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_file_mode", + "properties": { + "description": "Sets the file permissions for log files.", + "allowedValues": "0-511", + "dataType": "Integer", + "defaultValue": "384", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-FILE-MODE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "0600" + } + }, + { + "name": "log_filename", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_filename", + "properties": { + "description": "Sets the file name pattern for log files.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "postgresql-%Y-%m-%d_%H%M%S.log", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-FILENAME", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "postgresql-%Y-%m-%d_%H%M%S.log" + } + }, + { + "name": "log_hostname", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_hostname", + "properties": { + "description": "Logs the host name in the connection logs.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-HOSTNAME", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "log_line_prefix", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_line_prefix", + "properties": { + "description": "Sets the printf-style string that is output at the beginning of each log line.", + "allowedValues": "[^']*", + "dataType": "String", + "defaultValue": "%t-%c-", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-LINE-PREFIX", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "%t-%c-" + } + }, + { + "name": "log_lock_waits", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_lock_waits", + "properties": { + "description": "Controls whether a log message is produced when a session waits longer than deadlock_timeout to acquire a lock.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-LOCK-WAITS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "log_min_duration_sample", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_min_duration_sample", + "properties": { + "description": "Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by log_statement_sample_rate.", + "allowedValues": "-1-2147483647", + "dataType": "Integer", + "defaultValue": "-1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-MIN-DURATION-SAMPLE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "-1" + } + }, + { + "name": "log_min_duration_statement", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_min_duration_statement", + "properties": { + "description": "Sets the minimum execution time (in milliseconds) above which statements will be logged. -1 disables logging statement durations.", + "allowedValues": "-1-2147483647", + "dataType": "Integer", + "defaultValue": "-1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-MIN-DURATION-STATEMENT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "-1" + } + }, + { + "name": "log_min_error_statement", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_min_error_statement", + "properties": { + "description": "Causes all statements generating error at or above this level to be logged.", + "allowedValues": "debug5,debug4,debug3,debug2,debug1,info,notice,warning,error,log,fatal,panic", + "dataType": "Enumeration", + "defaultValue": "error", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-MIN-ERROR-STATEMENT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "error" + } + }, + { + "name": "log_min_messages", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_min_messages", + "properties": { + "description": "Controls which message levels are written to the server log.", + "allowedValues": "debug5,debug4,debug3,debug2,debug1,info,notice,warning,error,log,fatal,panic", + "dataType": "Enumeration", + "defaultValue": "warning", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-MIN-MESSAGES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "warning" + } + }, + { + "name": "log_parameter_max_length", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_parameter_max_length", + "properties": { + "description": "When logging statements, limit logged parameter values to first N bytes.", + "allowedValues": "-1-1073741823", + "dataType": "Integer", + "defaultValue": "-1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-PARAMETER-MAX-LENGTH", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "bytes", + "value": "-1" + } + }, + { + "name": "log_parameter_max_length_on_error", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_parameter_max_length_on_error", + "properties": { + "description": "When reporting an error, limit logged parameter values to first N bytes.", + "allowedValues": "-1-1073741823", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-PARAMETER-MAX-LENGTH-ON-ERROR", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "bytes", + "value": "0" + } + }, + { + "name": "log_parser_stats", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_parser_stats", + "properties": { + "description": "Writes parser performance statistics to the server log.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-statistics.html#id-1.6.6.12.3.2.1.4.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "log_planner_stats", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_planner_stats", + "properties": { + "description": "Writes planner performance statistics to the server log.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-statistics.html#id-1.6.6.12.3.2.1.4.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "log_replication_commands", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_replication_commands", + "properties": { + "description": "Logs each replication command.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-REPLICATION-COMMANDS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "log_rotation_age", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_rotation_age", + "properties": { + "description": "Automatic log file rotation will occur after N minutes.", + "allowedValues": "0-35791394", + "dataType": "Integer", + "defaultValue": "1440", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-ROTATION-AGE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "unit": "minutes", + "value": "60" + } + }, + { + "name": "log_rotation_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_rotation_size", + "properties": { + "description": "Automatic log file rotation will occur after N kilobytes.", + "allowedValues": "0-2097151", + "dataType": "Integer", + "defaultValue": "10240", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-ROTATION-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "unit": "KB", + "value": "102400" + } + }, + { + "name": "log_statement", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_statement", + "properties": { + "description": "Sets the type of statements logged.", + "allowedValues": "none,ddl,mod,all", + "dataType": "Enumeration", + "defaultValue": "none", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-STATEMENT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "none" + } + }, + { + "name": "log_statement_sample_rate", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_statement_sample_rate", + "properties": { + "description": "Fraction of statements exceeding log_min_duration_sample to be logged.", + "allowedValues": "0-1", + "dataType": "Numeric", + "defaultValue": "1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-STATEMENT-SAMPLE-RATE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "1" + } + }, + { + "name": "log_statement_stats", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_statement_stats", + "properties": { + "description": "For each query, writes cumulative performance statistics to the server log.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-statistics.html#id-1.6.6.12.3.2.1.4.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "log_temp_files", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_temp_files", + "properties": { + "description": "Logs the use of temporary files larger than this number of kilobytes.", + "allowedValues": "-1-2147483647", + "dataType": "Integer", + "defaultValue": "-1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-TEMP-FILES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "KB", + "value": "-1" + } + }, + { + "name": "log_timezone", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_timezone", + "properties": { + "description": "Sets the time zone to use in log messages.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "GMT", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-TIMEZONE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "UTC" + } + }, + { + "name": "log_transaction_sample_rate", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_transaction_sample_rate", + "properties": { + "description": "Set the fraction of transactions to log for new transactions.", + "allowedValues": "0-1", + "dataType": "Numeric", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-TRANSACTION-SAMPLE-RATE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "0" + } + }, + { + "name": "log_truncate_on_rotation", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/log_truncate_on_rotation", + "properties": { + "description": "Truncate existing log files of same name during log rotation.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOG-TRUNCATE-ON-ROTATION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "logfiles.download_enable", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/logfiles.download_enable", + "properties": { + "description": "Enables or disables server logs functionality.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274270", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "logfiles.retention_days", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/logfiles.retention_days", + "properties": { + "description": "Sets the retention period window in days for server logs - after this time data will be deleted.", + "allowedValues": "1-7", + "dataType": "Integer", + "defaultValue": "3", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274270", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "3" + } + }, + { + "name": "logging_collector", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/logging_collector", + "properties": { + "description": "Start a subprocess to capture stderr output and/or csvlogs into log files.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-LOGGING-COLLECTOR", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "logical_decoding_work_mem", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/logical_decoding_work_mem", + "properties": { + "description": "Sets the maximum memory to be used for logical decoding.", + "allowedValues": "64-2147483647", + "dataType": "Integer", + "defaultValue": "65536", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-LOGICAL-DECODING-WORK-MEM", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "KB", + "value": "65536" + } + }, + { + "name": "maintenance_io_concurrency", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/maintenance_io_concurrency", + "properties": { + "description": "A variant of effective_io_concurrency that is used for maintenance work.", + "allowedValues": "0-1000", + "dataType": "Integer", + "defaultValue": "10", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-MAINTENANCE-IO-CONCURRENCY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "10" + } + }, + { + "name": "maintenance_work_mem", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/maintenance_work_mem", + "properties": { + "description": "Sets the maximum memory to be used for maintenance operations such as VACUUM, Create Index.", + "allowedValues": "1024-2097151", + "dataType": "Integer", + "defaultValue": "274432", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "KB", + "value": "274432" + } + }, + { + "name": "max_connections", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_connections", + "properties": { + "description": "Sets the maximum number of concurrent connections to the database server.", + "allowedValues": "25-5000", + "dataType": "Integer", + "defaultValue": "1718", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-MAX-CONNECTIONS", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "1718" + } + }, + { + "name": "max_files_per_process", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_files_per_process", + "properties": { + "description": "Sets the maximum number of simultaneously open files for each server process.", + "allowedValues": "64-2147483647", + "dataType": "Integer", + "defaultValue": "1000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-MAX-FILES-PER-PROCESS", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "1000" + } + }, + { + "name": "max_function_args", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_function_args", + "properties": { + "description": "Shows the maximum number of function arguments.", + "allowedValues": "100-100", + "dataType": "Integer", + "defaultValue": "100", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-MAX-FUNCTION-ARGS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "100" + } + }, + { + "name": "max_identifier_length", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_identifier_length", + "properties": { + "description": "Shows the maximum identifier length.", + "allowedValues": "63-63", + "dataType": "Integer", + "defaultValue": "63", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-MAX-IDENTIFIER-LENGTH", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "63" + } + }, + { + "name": "max_index_keys", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_index_keys", + "properties": { + "description": "Shows the maximum number of index keys.", + "allowedValues": "32-32", + "dataType": "Integer", + "defaultValue": "32", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-MAX-INDEX-KEYS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "32" + } + }, + { + "name": "max_locks_per_transaction", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_locks_per_transaction", + "properties": { + "description": "Sets the maximum number of locks can be taken per transaction. When running a replica server, you must set this parameter to the same or higher value than on the master server.", + "allowedValues": "10-8388608", + "dataType": "Integer", + "defaultValue": "64", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-locks.html#GUC-MAX-LOCKS-PER-TRANSACTION", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "64" + } + }, + { + "name": "max_logical_replication_workers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_logical_replication_workers", + "properties": { + "description": "Specifies maximum number of logical replication workers. This includes both apply workers and table synchronization workers.", + "allowedValues": "0-262143", + "dataType": "Integer", + "defaultValue": "4", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-MAX-LOGICAL-REPLICATION-WORKERS", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "4" + } + }, + { + "name": "max_parallel_maintenance_workers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_parallel_maintenance_workers", + "properties": { + "description": "Sets the maximum number of parallel processes per maintenance operation.", + "allowedValues": "0-64", + "dataType": "Integer", + "defaultValue": "2", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-MAX-PARALLEL-WORKERS-MAINTENANCE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "2" + } + }, + { + "name": "max_parallel_workers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_parallel_workers", + "properties": { + "description": "Sets the maximum number of workers than can be supported for parallel operations.", + "allowedValues": "0-1024", + "dataType": "Integer", + "defaultValue": "8", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-MAX-PARALLEL-WORKERS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "8" + } + }, + { + "name": "max_parallel_workers_per_gather", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_parallel_workers_per_gather", + "properties": { + "description": "Sets the maximum number of parallel processes per executor node.", + "allowedValues": "0-1024", + "dataType": "Integer", + "defaultValue": "2", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-MAX-PARALLEL-WORKERS-PER-GATHER", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "2" + } + }, + { + "name": "max_pred_locks_per_page", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_pred_locks_per_page", + "properties": { + "description": "Sets the maximum number of predicate-locked tuples per page.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "2", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-locks.html#GUC-MAX-PRED-LOCKS-PER-PAGE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "2" + } + }, + { + "name": "max_pred_locks_per_relation", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_pred_locks_per_relation", + "properties": { + "description": "Sets the maximum number of predicate-locked pages and tuples per relation.", + "allowedValues": "-2147483648-2147483647", + "dataType": "Integer", + "defaultValue": "-2", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-locks.html#GUC-MAX-PRED-LOCKS-PER-RELATION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "-2" + } + }, + { + "name": "max_pred_locks_per_transaction", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_pred_locks_per_transaction", + "properties": { + "description": "Sets the maximum number of predicate locks per transaction.", + "allowedValues": "10-2147483647", + "dataType": "Integer", + "defaultValue": "64", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-locks.html#GUC-MAX-PRED-LOCKS-PER-TRANSACTION", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "64" + } + }, + { + "name": "max_prepared_transactions", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_prepared_transactions", + "properties": { + "description": "Sets the maximum number of simultaneously prepared transactions. When running a replica server, you must set this parameter to the same or higher value than on the primary server.", + "allowedValues": "0-262143", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-MAX-PREPARED-TRANSACTIONS", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "0" + } + }, + { + "name": "max_replication_slots", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_replication_slots", + "properties": { + "description": "Specifies the maximum number of replication slots that the server can support.", + "allowedValues": "2-262143", + "dataType": "Integer", + "defaultValue": "10", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-MAX-REPLICATION-SLOTS", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "10" + } + }, + { + "name": "max_slot_wal_keep_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_slot_wal_keep_size", + "properties": { + "description": "Sets the maximum WAL size that can be reserved by replication slots.", + "allowedValues": "-1-2147483647", + "dataType": "Integer", + "defaultValue": "-1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-MAX-SLOT-WAL-KEEP-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "unit": "megabytes", + "value": "-1" + } + }, + { + "name": "max_stack_depth", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_stack_depth", + "properties": { + "description": "Sets the maximum stack depth, in kilobytes.", + "allowedValues": "100-2147483647", + "dataType": "Integer", + "defaultValue": "100", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-MAX-STACK-DEPTH", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "unit": "KB", + "value": "2048" + } + }, + { + "name": "max_standby_archive_delay", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_standby_archive_delay", + "properties": { + "description": "Sets the maximum delay before canceling queries that conflict when a hot standby server is processing archived WAL data.", + "allowedValues": "-1-2147483647", + "dataType": "Integer", + "defaultValue": "30000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-MAX-STANDBY-ARCHIVE-DELAY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "30000" + } + }, + { + "name": "max_standby_streaming_delay", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_standby_streaming_delay", + "properties": { + "description": "Sets the maximum delay before canceling queries that conflict when a hot standby server is processing streamed WAL data.", + "allowedValues": "-1-2147483647", + "dataType": "Integer", + "defaultValue": "30000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-MAX-STANDBY-STREAMING-DELAY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "30000" + } + }, + { + "name": "max_sync_workers_per_subscription", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_sync_workers_per_subscription", + "properties": { + "description": "Maximum number of table synchronization workers per subscription.", + "allowedValues": "0-262143", + "dataType": "Integer", + "defaultValue": "2", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-MAX-SYNC-WORKERS-PER-SUBSCRIPTION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "2" + } + }, + { + "name": "max_wal_senders", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_wal_senders", + "properties": { + "description": "Sets the maximum number of simultaneously running WAL sender processes.", + "allowedValues": "5-100", + "dataType": "Integer", + "defaultValue": "10", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-MAX-WAL-SENDERS", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "10" + } + }, + { + "name": "max_wal_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_wal_size", + "properties": { + "description": "Maximum size to let the WAL grow before triggering automatic checkpoint.", + "allowedValues": "32-65536", + "dataType": "Integer", + "defaultValue": "2048", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-MAX-WAL-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "megabytes", + "value": "2048" + } + }, + { + "name": "max_worker_processes", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/max_worker_processes", + "properties": { + "description": "Sets the maximum number of background processes that the system can support.", + "allowedValues": "0-262143", + "dataType": "Integer", + "defaultValue": "8", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-MAX-WORKER-PROCESSES", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "8" + } + }, + { + "name": "metrics.autovacuum_diagnostics", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/metrics.autovacuum_diagnostics", + "properties": { + "description": "Enables metrics collection for all table statistics within a database", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274151", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "metrics.collector_database_activity", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/metrics.collector_database_activity", + "properties": { + "description": "Enables metrics collection for database and activity statistics", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274151", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "metrics.pgbouncer_diagnostics", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/metrics.pgbouncer_diagnostics", + "properties": { + "description": "Enables metrics collection for PgBouncer.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274151", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "min_parallel_index_scan_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/min_parallel_index_scan_size", + "properties": { + "description": "Sets the minimum amount of index data for a parallel scan.", + "allowedValues": "0-715827882", + "dataType": "Integer", + "defaultValue": "64", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-MIN-PARALLEL-INDEX-SCAN-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "8KB", + "value": "64" + } + }, + { + "name": "min_parallel_table_scan_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/min_parallel_table_scan_size", + "properties": { + "description": "Sets the minimum amount of table data that must be scanned for a parallel scan to be considered.", + "allowedValues": "0-715827882", + "dataType": "Integer", + "defaultValue": "1024", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-MIN-PARALLEL-TABLE-SCAN-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "8KB", + "value": "1024" + } + }, + { + "name": "min_wal_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/min_wal_size", + "properties": { + "description": "Sets the minimum size to shrink the WAL to.", + "allowedValues": "32-2097151", + "dataType": "Integer", + "defaultValue": "80", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-MIN-WAL-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "megabytes", + "value": "80" + } + }, + { + "name": "parallel_leader_participation", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/parallel_leader_participation", + "properties": { + "description": "Controls whether Gather and Gather Merge also run subplans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "parallel_setup_cost", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/parallel_setup_cost", + "properties": { + "description": "Sets the planner's estimate of the cost of starting up worker processes for parallel query.", + "allowedValues": "0-1.79769e+308", + "dataType": "Numeric", + "defaultValue": "1000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-PARALLEL-SETUP-COST", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "1000" + } + }, + { + "name": "parallel_tuple_cost", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/parallel_tuple_cost", + "properties": { + "description": "Sets the planner's estimate of the cost of passing each tuple (row) from worker to master backend.", + "allowedValues": "0-1.79769e+308", + "dataType": "Numeric", + "defaultValue": "0.1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-PARALLEL-TUPLE-COST", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0.1" + } + }, + { + "name": "password_encryption", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/password_encryption", + "properties": { + "description": "Determines the algorithm to use to encrypt the password.", + "allowedValues": "md5,scram-sha-256", + "dataType": "Enumeration", + "defaultValue": "md5", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-PASSWORD-ENCRYPTION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "md5" + } + }, + { + "name": "pg_partman_bgw.analyze", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_partman_bgw.analyze", + "properties": { + "description": "Same purpose as the p_analyze argument to run_maintenance().", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://github.com/pgpartman/pg_partman", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "pg_partman_bgw.dbname", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_partman_bgw.dbname", + "properties": { + "description": "Required. The database(s) that run_maintenance() will run on. If more than one, use a comma separated list. If not set, BGW will do nothing.", + "allowedValues": "[A-Za-z0-9_,-]*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://github.com/pgpartman/pg_partman", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "" + } + }, + { + "name": "pg_partman_bgw.interval", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_partman_bgw.interval", + "properties": { + "description": "Number of seconds between calls to run_maintenance().", + "allowedValues": "1-315360000", + "dataType": "Integer", + "defaultValue": "3600", + "documentationLink": "https://github.com/pgpartman/pg_partman", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "seconds", + "value": "3600" + } + }, + { + "name": "pg_partman_bgw.jobmon", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_partman_bgw.jobmon", + "properties": { + "description": "Same purpose as the p_jobmon argument to run_maintenance().", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://github.com/pgpartman/pg_partman", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "pg_partman_bgw.role", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_partman_bgw.role", + "properties": { + "description": "The role that run_maintenance() will run as. Default is postgres. Only a single role name is allowed.", + "allowedValues": "[A-Za-z\\._]*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://github.com/pgpartman/pg_partman", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "" + } + }, + { + "name": "pg_qs.interval_length_minutes", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_qs.interval_length_minutes", + "properties": { + "description": "Sets the query_store capture interval in minutes for pg_qs - this is the frequency of data persistence.", + "allowedValues": "1-30", + "dataType": "Integer", + "defaultValue": "15", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274607", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "unit": "minutes", + "value": "15" + } + }, + { + "name": "pg_qs.is_enabled_fs", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_qs.is_enabled_fs", + "properties": { + "description": "Internal Use Only: This parameter is used as a feature override switch. If it shows as off, Query Store will be disabled despite the value set for pg_qs.query_capture_mode.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274607", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "pg_qs.max_plan_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_qs.max_plan_size", + "properties": { + "description": "Sets the maximum number of bytes that will be saved for query plan text for pg_qs; longer plans will be truncated.", + "allowedValues": "100-10000", + "dataType": "Integer", + "defaultValue": "7500", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274607", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "bytes", + "value": "7500" + } + }, + { + "name": "pg_qs.max_query_text_length", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_qs.max_query_text_length", + "properties": { + "description": "Sets the maximum query text length that will be saved; longer queries will be truncated.", + "allowedValues": "100-10000", + "dataType": "Integer", + "defaultValue": "6000", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274607", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "bytes", + "value": "6000" + } + }, + { + "name": "pg_qs.parameters_capture_mode", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_qs.parameters_capture_mode", + "properties": { + "description": "Whether and when to capture query positional parameters.", + "allowedValues": "capture_parameterless_only,capture_first_sample", + "dataType": "Enumeration", + "defaultValue": "capture_parameterless_only", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274607", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "capture_parameterless_only" + } + }, + { + "name": "pg_qs.query_capture_mode", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_qs.query_capture_mode", + "properties": { + "description": "Sets query capture mode for query store. None disables any capturing.", + "allowedValues": "top,all,none", + "dataType": "Enumeration", + "defaultValue": "none", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274607", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "none" + } + }, + { + "name": "pg_qs.retention_period_in_days", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_qs.retention_period_in_days", + "properties": { + "description": "Sets the retention period window in days for pg_qs - after this time data will be deleted.", + "allowedValues": "1-30", + "dataType": "Integer", + "defaultValue": "7", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274607", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "7" + } + }, + { + "name": "pg_qs.store_query_plans", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_qs.store_query_plans", + "properties": { + "description": "Turns saving query plans on or off for pg_qs ", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274607", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "pg_qs.track_utility", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_qs.track_utility", + "properties": { + "description": "Selects whether utility commands are tracked by pg_qs.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274607", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "pg_stat_statements.max", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_stat_statements.max", + "properties": { + "description": "Sets the maximum number of statements tracked by pg_stat_statements.", + "allowedValues": "100-2147483647", + "dataType": "Integer", + "defaultValue": "5000", + "documentationLink": "https://www.postgresql.org/docs/13/pgstatstatements.html", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "5000" + } + }, + { + "name": "pg_stat_statements.save", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_stat_statements.save", + "properties": { + "description": "Save pg_stat_statements statistics across server shutdowns.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/pgstatstatements.html", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "pg_stat_statements.track", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_stat_statements.track", + "properties": { + "description": "Controls which statements are counted by pg_stat_statements.", + "allowedValues": "top,all,none", + "dataType": "Enumeration", + "defaultValue": "none", + "documentationLink": "https://www.postgresql.org/docs/13/pgstatstatements.html", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "none" + } + }, + { + "name": "pg_stat_statements.track_utility", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pg_stat_statements.track_utility", + "properties": { + "description": "Selects whether utility commands are tracked by pg_stat_statements.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/pgstatstatements.html", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "pgaudit.log", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pgaudit.log", + "properties": { + "description": "Specifies which classes of statements will be logged by session audit logging.", + "allowedValues": "none,read,write,function,role,ddl,misc,all", + "dataType": "Set", + "defaultValue": "none", + "documentationLink": "https://github.com/pgaudit/pgaudit/blob/master/README.md", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "none" + } + }, + { + "name": "pgaudit.log_catalog", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pgaudit.log_catalog", + "properties": { + "description": "Specifies that session logging should be enabled in the case where all relations in a statement are in pg_catalog.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://github.com/pgaudit/pgaudit/blob/master/README.md", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "pgaudit.log_client", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pgaudit.log_client", + "properties": { + "description": "Specifies whether audit messages should be visible to client.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://github.com/pgaudit/pgaudit/blob/master/README.md", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "pgaudit.log_level", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pgaudit.log_level", + "properties": { + "description": "Specifies the log level that will be used for log entries.", + "allowedValues": ",debug5,debug4,debug3,debug2,debug1,info,notice,warning,log", + "dataType": "Enumeration", + "defaultValue": "log", + "documentationLink": "https://github.com/pgaudit/pgaudit/blob/master/README.md", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "log" + } + }, + { + "name": "pgaudit.log_parameter", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pgaudit.log_parameter", + "properties": { + "description": "Specifies that audit logging should include the parameters that were passed with the statement.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://github.com/pgaudit/pgaudit/blob/master/README.md", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "pgaudit.log_relation", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pgaudit.log_relation", + "properties": { + "description": "Specifies whether session audit logging should create a separate log entry for each relation referenced in a SELECT or DML statement.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://github.com/pgaudit/pgaudit/blob/master/README.md", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "pgaudit.log_statement_once", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pgaudit.log_statement_once", + "properties": { + "description": "Specifies whether logging will include the statement text and parameters with the first log entry for a statement/substatement combination or with every entry.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://github.com/pgaudit/pgaudit/blob/master/README.md", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "pgaudit.role", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pgaudit.role", + "properties": { + "description": "Specifies the master role to use for object audit logging.", + "allowedValues": "[A-Za-z\\._]*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://github.com/pgaudit/pgaudit/blob/master/README.md", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "" + } + }, + { + "name": "pgbouncer.enabled", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pgbouncer.enabled", + "properties": { + "description": "Denotes if pgBouncer service is enabled.", + "allowedValues": "true, false", + "dataType": "Boolean", + "defaultValue": "false", + "documentationLink": "https://www.pgbouncer.org/config.html", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "false" + } + }, + { + "name": "pglogical.batch_inserts", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pglogical.batch_inserts", + "properties": { + "description": "Tells PGLogical to use batch insert mechanism if possible.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://github.com/ArmMbedCloud/pglogical", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "pglogical.conflict_log_level", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pglogical.conflict_log_level", + "properties": { + "description": "Sets the log level for reporting detected conflicts when the pglogical.conflict_resolution is set to anything else than error.", + "allowedValues": "debug5,debug4,debug3,debug2,debug1,info,notice,warning,error,log,fatal,panic", + "dataType": "Enumeration", + "defaultValue": "log", + "documentationLink": "https://github.com/ArmMbedCloud/pglogical", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "log" + } + }, + { + "name": "pglogical.conflict_resolution", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pglogical.conflict_resolution", + "properties": { + "description": "Sets the resolution method for any detected conflicts between local data and incoming changes.", + "allowedValues": "error,apply_remote,keep_local,last_update_wins,first_update_wins", + "dataType": "Enumeration", + "defaultValue": "apply_remote", + "documentationLink": "https://github.com/ArmMbedCloud/pglogical", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "apply_remote" + } + }, + { + "name": "pglogical.use_spi", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pglogical.use_spi", + "properties": { + "description": "Tells PGLogical to use SPI interface to form actual SQL (INSERT, UPDATE, DELETE) statements to apply incoming changes instead of using internal low level interface.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://github.com/ArmMbedCloud/pglogical", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "pgms_stats.is_enabled_fs", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pgms_stats.is_enabled_fs", + "properties": { + "description": "Internal Use Only: This parameter is used as a feature override switch.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "pgms_wait_sampling.history_period", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pgms_wait_sampling.history_period", + "properties": { + "description": "Set the frequency, in milliseconds, at which wait events are sampled.", + "allowedValues": "1-600000", + "dataType": "Integer", + "defaultValue": "100", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274607", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "100" + } + }, + { + "name": "pgms_wait_sampling.is_enabled_fs", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pgms_wait_sampling.is_enabled_fs", + "properties": { + "description": "Internal Use Only: This parameter is used as a feature override switch. If it shows as off, wait sampling will be disabled despite the value set for pgms_wait_sampling.query_capture_mode.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274607", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "pgms_wait_sampling.query_capture_mode", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pgms_wait_sampling.query_capture_mode", + "properties": { + "description": "Selects which statements are tracked by the pgms_wait_sampling extension.", + "allowedValues": "all,none", + "dataType": "Enumeration", + "defaultValue": "none", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2274607", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "none" + } + }, + { + "name": "plan_cache_mode", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/plan_cache_mode", + "properties": { + "description": "Controls the planner's selection of custom or generic plan.", + "allowedValues": "auto,force_generic_plan,force_custom_plan", + "dataType": "Enumeration", + "defaultValue": "auto", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#id-1.6.6.10.5.2.9.1.3", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "auto" + } + }, + { + "name": "port", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/port", + "properties": { + "description": "Sets the TCP port the server listens on.", + "allowedValues": "1-65535", + "dataType": "Integer", + "defaultValue": "5432", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-PORT", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "5432" + } + }, + { + "name": "post_auth_delay", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/post_auth_delay", + "properties": { + "description": "Waits N seconds on connection startup after authentication.", + "allowedValues": "0-2147", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-POST-AUTH-DELAY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "unit": "seconds", + "value": "0" + } + }, + { + "name": "postgis.gdal_enabled_drivers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/postgis.gdal_enabled_drivers", + "properties": { + "description": "Controls postgis GDAL enabled driver settings.", + "allowedValues": "DISABLE_ALL,ENABLE_ALL", + "dataType": "Enumeration", + "defaultValue": "DISABLE_ALL", + "documentationLink": "https://postgis.net/docs/postgis_gdal_enabled_drivers.html", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "DISABLE_ALL" + } + }, + { + "name": "pre_auth_delay", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/pre_auth_delay", + "properties": { + "description": "Waits N seconds on connection startup before authentication.", + "allowedValues": "0-60", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-PRE-AUTH-DELAY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "unit": "seconds", + "value": "0" + } + }, + { + "name": "primary_conninfo", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/primary_conninfo", + "properties": { + "description": "Sets the connection string to be used to connect to the sending server.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-PRIMARY-CONNINFO", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "primary_slot_name", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/primary_slot_name", + "properties": { + "description": "Sets the name of the replication slot to use on the sending server.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-PRIMARY-SLOT-NAME", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "promote_trigger_file", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/promote_trigger_file", + "properties": { + "description": "Specifies a file name whose presence ends recovery in the standby.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "quote_all_identifiers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/quote_all_identifiers", + "properties": { + "description": "When generating SQL fragments, quotes all identifiers.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-compatible.html#GUC-QUOTE-ALL-IDENTIFIERS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "random_page_cost", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/random_page_cost", + "properties": { + "description": "Sets the planner's estimate of the cost of a nonsequentially fetched disk page.", + "allowedValues": "0-1.79769e+308", + "dataType": "Numeric", + "defaultValue": "2", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-RANDOM-PAGE-COST", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "2" + } + }, + { + "name": "recovery_end_command", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/recovery_end_command", + "properties": { + "description": "Sets the shell command that will be executed once at the end of recovery.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-RECOVERY-END-COMMAND", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "recovery_min_apply_delay", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/recovery_min_apply_delay", + "properties": { + "description": "Sets the minimum delay for applying changes during recovery.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-RECOVERY-MIN-APPLY-DELAY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "unit": "milliseconds", + "value": "0" + } + }, + { + "name": "recovery_target", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/recovery_target", + "properties": { + "description": "Set to \"immediate\" to end recovery as soon as a consistent state is reached.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-RECOVERY-TARGET", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "recovery_target_action", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/recovery_target_action", + "properties": { + "description": "Sets the action to perform upon reaching the recovery target.", + "allowedValues": "pause,promote,shutdown", + "dataType": "Enumeration", + "defaultValue": "pause", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-RECOVERY-TARGET-ACTION", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "pause" + } + }, + { + "name": "recovery_target_inclusive", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/recovery_target_inclusive", + "properties": { + "description": "Sets whether to include or exclude transaction with recovery target.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-RECOVERY-TARGET-INCLUSIVE", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "recovery_target_lsn", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/recovery_target_lsn", + "properties": { + "description": "Sets the LSN of the write-ahead log location up to which recovery will proceed.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-RECOVERY-TARGET-LSN", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "recovery_target_name", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/recovery_target_name", + "properties": { + "description": "Sets the named restore point up to which recovery will proceed.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-RECOVERY-TARGET-NAME", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "recovery_target_time", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/recovery_target_time", + "properties": { + "description": "Sets the time stamp up to which recovery will proceed.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-RECOVERY-TARGET-TIME", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "recovery_target_timeline", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/recovery_target_timeline", + "properties": { + "description": "Specifies the timeline to recover into.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "latest", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-RECOVERY-TARGET-TIMELINE", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "latest" + } + }, + { + "name": "recovery_target_xid", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/recovery_target_xid", + "properties": { + "description": "Sets the transaction ID up to which recovery will proceed.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-RECOVERY-TARGET-XID", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "require_secure_transport", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/require_secure_transport", + "properties": { + "description": "Whether client connections to the server are required to use some form of secure transport.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://go.microsoft.com/fwlink/?linkid=2282200", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "reserved_connections", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/reserved_connections", + "properties": { + "description": "Sets the number of connections slots reserved for replication users and super users.", + "allowedValues": "0-262143", + "dataType": "Integer", + "defaultValue": "5", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "5" + } + }, + { + "name": "restart_after_crash", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/restart_after_crash", + "properties": { + "description": "Reinitialize server after backend crash.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-error-handling.html#GUC-RESTART-AFTER-CRASH", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "restore_command", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/restore_command", + "properties": { + "description": "Sets the shell command that will be called to retrieve an archived WAL file.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "row_security", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/row_security", + "properties": { + "description": "Enables row security.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "search_path", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/search_path", + "properties": { + "description": "Sets the schema search order for names that are not schema-qualified.", + "allowedValues": "[A-Za-z0-9.\"$,_ -]+", + "dataType": "String", + "defaultValue": "\"$user\", public", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-SEARCH-PATH", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "\"$user\", public" + } + }, + { + "name": "segment_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/segment_size", + "properties": { + "description": "Shows the number of pages per disk file.", + "allowedValues": "131072-131072", + "dataType": "Integer", + "defaultValue": "131072", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-SEGMENT-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "unit": "8KB", + "value": "131072" + } + }, + { + "name": "seq_page_cost", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/seq_page_cost", + "properties": { + "description": "Sets the planner's estimate of the cost of a sequentially fetched disk page.", + "allowedValues": "0-1.79769e+308", + "dataType": "Numeric", + "defaultValue": "1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-SEQ-PAGE-COST", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "1" + } + }, + { + "name": "server_encoding", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/server_encoding", + "properties": { + "description": "Sets the server (database) character set encoding.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "SQL_ASCII", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-SERVER-ENCODING", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "UTF8" + } + }, + { + "name": "server_version", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/server_version", + "properties": { + "description": "Shows the server version.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "13.11", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-SERVER-VERSION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "13.16" + } + }, + { + "name": "server_version_num", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/server_version_num", + "properties": { + "description": "Shows the server version as an integer.", + "allowedValues": "130011-130011", + "dataType": "Integer", + "defaultValue": "130011", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-SERVER-VERSION-NUM", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "130016" + } + }, + { + "name": "session_preload_libraries", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/session_preload_libraries", + "properties": { + "description": "Lists shared libraries to preload into each backend.", + "allowedValues": ",login_hook", + "dataType": "Set", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-SESSION-PRELOAD-LIBRARIES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "" + } + }, + { + "name": "session_replication_role", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/session_replication_role", + "properties": { + "description": "Controls firing of replication-related triggers and rules for the current session.", + "allowedValues": "origin,replica,local", + "dataType": "Enumeration", + "defaultValue": "origin", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-SESSION-REPLICATION-ROLE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "origin" + } + }, + { + "name": "shared_buffers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/shared_buffers", + "properties": { + "description": "Sets the number of shared memory buffers used by the server. Unit is 8kb. Allowed values are inside the range of 10% - 75% of available memory.", + "allowedValues": "16-1073741823", + "dataType": "Integer", + "defaultValue": "524288", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-SHARED-BUFFERS", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "unit": "8KB", + "value": "524288" + } + }, + { + "name": "shared_memory_type", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/shared_memory_type", + "properties": { + "description": "Selects the shared memory implementation used for the main shared memory region.", + "allowedValues": "sysv,mmap", + "dataType": "Enumeration", + "defaultValue": "mmap", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-SHARED-MEMORY-TYPE", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "mmap" + } + }, + { + "name": "shared_preload_libraries", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/shared_preload_libraries", + "properties": { + "description": "Sets which shared libraries are preloaded at server start.", + "allowedValues": ",age,anon,auto_explain,azure_storage,pg_cron,pg_failover_slots,pg_hint_plan,pg_partman_bgw,pg_prewarm,pg_squeeze,pg_stat_statements,pgaudit,pglogical,timescaledb,wal2json", + "dataType": "Set", + "defaultValue": "pg_cron,pg_stat_statements", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-SHARED-PRELOAD-LIBRARIES", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "pg_cron,pg_stat_statements" + } + }, + { + "name": "ssl", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl", + "properties": { + "description": "Enables SSL connections.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SSL", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "on" + } + }, + { + "name": "ssl_ca_file", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl_ca_file", + "properties": { + "description": "Location of the SSL certificate authority file.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SSL-CA-FILE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "/datadrive/certs/ca.pem" + } + }, + { + "name": "ssl_cert_file", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl_cert_file", + "properties": { + "description": "Location of the SSL server certificate file.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "server.crt", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SSL-CERT-FILE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "/datadrive/certs/cert.pem" + } + }, + { + "name": "ssl_ciphers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl_ciphers", + "properties": { + "description": "Sets the list of allowed SSL ciphers.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "HIGH:MEDIUM:+3DES:!aNULL", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SSL-CIPHERS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256" + } + }, + { + "name": "ssl_crl_file", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl_crl_file", + "properties": { + "description": "Location of the SSL certificate revocation list file.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SSL-CRL-FILE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "ssl_dh_params_file", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl_dh_params_file", + "properties": { + "description": "Location of the SSL DH parameters file.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SSL-DH-PARAMS-FILE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "ssl_ecdh_curve", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl_ecdh_curve", + "properties": { + "description": "Sets the curve to use for ECDH.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "prime256v1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SSL-ECDH-CURVE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "prime256v1" + } + }, + { + "name": "ssl_key_file", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl_key_file", + "properties": { + "description": "Location of the SSL server private key file.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "server.key", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SSL-KEY-FILE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "/datadrive/certs/key.pem" + } + }, + { + "name": "ssl_library", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl_library", + "properties": { + "description": "Name of the SSL library.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "OpenSSL", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-SSL-LIBRARY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "OpenSSL" + } + }, + { + "name": "ssl_max_protocol_version", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl_max_protocol_version", + "properties": { + "description": "Sets the maximum SSL/TLS protocol version to use.", + "allowedValues": ",TLSv1.2,TLSv1.3", + "dataType": "Enumeration", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SSL-MAX-PROTOCOL-VERSION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "" + } + }, + { + "name": "ssl_min_protocol_version", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl_min_protocol_version", + "properties": { + "description": "Sets the minimum SSL/TLS protocol version to use.", + "allowedValues": "TLSv1.2,TLSv1.3", + "dataType": "Enumeration", + "defaultValue": "TLSv1.2", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SSL-MIN-PROTOCOL-VERSION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "TLSv1.2" + } + }, + { + "name": "ssl_passphrase_command", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl_passphrase_command", + "properties": { + "description": "Command to obtain passphrases for SSL.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SSL-PASSPHRASE-COMMAND", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "ssl_passphrase_command_supports_reload", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl_passphrase_command_supports_reload", + "properties": { + "description": "Also use ssl_passphrase_command during server reload.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SSL-PASSPHRASE-COMMAND-SUPPORTS-RELOAD", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "ssl_prefer_server_ciphers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/ssl_prefer_server_ciphers", + "properties": { + "description": "Give priority to server ciphersuite order.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SSL-PREFER-SERVER-CIPHERS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "standard_conforming_strings", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/standard_conforming_strings", + "properties": { + "description": "Causes '...' strings to treat backslashes literally.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-compatible.html#GUC-STANDARD-CONFORMING-STRINGS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "statement_timeout", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/statement_timeout", + "properties": { + "description": "Sets the maximum allowed duration (in milliseconds) of any statement. 0 turns this off.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-STATEMENT-TIMEOUT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "0" + } + }, + { + "name": "stats_temp_directory", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/stats_temp_directory", + "properties": { + "description": "Writes temporary statistics files to the specified directory.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "pg_stat_tmp", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-statistics.html#GUC-STATS-TEMP-DIRECTORY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "pg_stat_tmp" + } + }, + { + "name": "superuser_reserved_connections", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/superuser_reserved_connections", + "properties": { + "description": "Sets the number of connection slots reserved for superusers.", + "allowedValues": "0-262143", + "dataType": "Integer", + "defaultValue": "10", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-SUPERUSER-RESERVED-CONNECTIONS", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "10" + } + }, + { + "name": "synchronize_seqscans", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/synchronize_seqscans", + "properties": { + "description": "Enables synchronized sequential scans.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-compatible.html#GUC-SYNCHRONIZE-SEQSCANS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "synchronous_commit", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/synchronous_commit", + "properties": { + "description": "Sets the current transaction's synchronization level.", + "allowedValues": "local,remote_write,on,off", + "dataType": "Enumeration", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "synchronous_standby_names", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/synchronous_standby_names", + "properties": { + "description": "Number of synchronous standbys and list of names of potential synchronous ones.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-SYNCHRONOUS-STANDBY-NAMES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "syslog_facility", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/syslog_facility", + "properties": { + "description": "Sets the syslog \"facility\" to be used when syslog enabled.", + "allowedValues": "local0,local1,local2,local3,local4,local5,local6,local7", + "dataType": "Enumeration", + "defaultValue": "local0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-SYSLOG-FACILITY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "local0" + } + }, + { + "name": "syslog_ident", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/syslog_ident", + "properties": { + "description": "Sets the program name used to identify PostgreSQL messages in syslog.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "postgres", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-SYSLOG-IDENT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "postgres" + } + }, + { + "name": "syslog_sequence_numbers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/syslog_sequence_numbers", + "properties": { + "description": "Add sequence number to syslog messages to avoid duplicate suppression.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-SYSLOG-SEQUENCE-NUMBERS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "syslog_split_messages", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/syslog_split_messages", + "properties": { + "description": "Split messages sent to syslog by lines and to fit into 1024 bytes.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-SYSLOG-SPLIT-MESSAGES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "tcp_keepalives_count", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/tcp_keepalives_count", + "properties": { + "description": "Specifies the number of TCP keepalives that can be lost before the server's connection to the client is considered dead.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "9", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-TCP-KEEPALIVES-COUNT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "9" + } + }, + { + "name": "tcp_keepalives_idle", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/tcp_keepalives_idle", + "properties": { + "description": "Specifies the number of seconds of inactivity after which TCP should send a keepalive message to the client.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "120", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "seconds", + "value": "120" + } + }, + { + "name": "tcp_keepalives_interval", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/tcp_keepalives_interval", + "properties": { + "description": "Specifies the number of seconds after which a TCP keepalive message that is not acknowledged by the client should be retransmitted.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "30", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-TCP-KEEPALIVES-INTERVAL", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "seconds", + "value": "30" + } + }, + { + "name": "tcp_user_timeout", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/tcp_user_timeout", + "properties": { + "description": "Specifies the amount of time that transmitted data may remain unacknowledged before the TCP connection is forcibly closed.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-TCP-USER-TIMEOUT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "0" + } + }, + { + "name": "temp_buffers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/temp_buffers", + "properties": { + "description": "Sets the maximum number of temporary buffers used by each database session.", + "allowedValues": "100-1073741823", + "dataType": "Integer", + "defaultValue": "1024", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-TEMP-BUFFERS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "8KB", + "value": "1024" + } + }, + { + "name": "temp_file_limit", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/temp_file_limit", + "properties": { + "description": "Limits the total size of all temporary files used by each process.", + "allowedValues": "-1-2147483647", + "dataType": "Integer", + "defaultValue": "-1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-TEMP-FILE-LIMIT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "KB", + "value": "-1" + } + }, + { + "name": "temp_tablespaces", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/temp_tablespaces", + "properties": { + "description": "Sets the default tablespace(s) to use for temporary tables and sort files if not specified in the CREATE command.", + "allowedValues": "[A-Za-z._]*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-TEMP-TABLESPACES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "user-override", + "value": "temptblspace" + } + }, + { + "name": "TimeZone", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/TimeZone", + "properties": { + "description": "Sets the time zone for displaying and interpreting time stamps.", + "allowedValues": "[A-Za-z0-9/+_-]+", + "dataType": "String", + "defaultValue": "UTC", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-TIMEZONE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "UTC" + } + }, + { + "name": "timezone_abbreviations", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/timezone_abbreviations", + "properties": { + "description": "Selects a file of time zone abbreviations.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-TIMEZONE-ABBREVIATIONS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "value": "Default" + } + }, + { + "name": "trace_notify", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/trace_notify", + "properties": { + "description": "Generates debugging output for LISTEN and NOTIFY.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-TRACE-NOTIFY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "trace_recovery_messages", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/trace_recovery_messages", + "properties": { + "description": "Enables logging of recovery-related debugging information.", + "allowedValues": "debug5,debug4,debug3,debug2,debug1,log,notice,warning,error", + "dataType": "Enumeration", + "defaultValue": "log", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-TRACE-RECOVERY-MESSAGES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "log" + } + }, + { + "name": "trace_sort", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/trace_sort", + "properties": { + "description": "Emit information about resource usage in sorting.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-TRACE-SORT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "track_activities", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/track_activities", + "properties": { + "description": "Collects information about executing commands for each session.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-statistics.html#GUC-TRACK-ACTIVITIES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "track_activity_query_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/track_activity_query_size", + "properties": { + "description": "Sets the amount of memory reserved for pg_stat_activity.query, in bytes.", + "allowedValues": "100-102400", + "dataType": "Integer", + "defaultValue": "1024", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-statistics.html#GUC-TRACK-ACTIVITY-QUERY-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "unit": "bytes", + "value": "1024" + } + }, + { + "name": "track_commit_timestamp", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/track_commit_timestamp", + "properties": { + "description": "Collects transaction commit time.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-TRACK-COMMIT-TIMESTAMP", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "track_counts", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/track_counts", + "properties": { + "description": "Enables collection of statistics on database activity", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-statistics.html#GUC-TRACK-COUNTS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "track_functions", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/track_functions", + "properties": { + "description": "Enables tracking of function call counts and time used.", + "allowedValues": "none,pl,all", + "dataType": "Enumeration", + "defaultValue": "none", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-statistics.html#GUC-TRACK-FUNCTIONS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "none" + } + }, + { + "name": "track_io_timing", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/track_io_timing", + "properties": { + "description": "Enables timing of database I/O calls.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-statistics.html#GUC-TRACK-IO-TIMING", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "transaction_deferrable", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/transaction_deferrable", + "properties": { + "description": "Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-TRANSACTION-DEFERRABLE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "transaction_isolation", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/transaction_isolation", + "properties": { + "description": "Sets the current transaction's isolation level.", + "allowedValues": "serializable,repeatable read,read committed,read uncommitted", + "dataType": "Enumeration", + "defaultValue": "read committed", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-TRANSACTION-ISOLATION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "read committed" + } + }, + { + "name": "transaction_read_only", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/transaction_read_only", + "properties": { + "description": "Sets the current transaction's read-only status.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-TRANSACTION-READ-ONLY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "transform_null_equals", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/transform_null_equals", + "properties": { + "description": "When on, expressions of the form expr = NULL (or NULL = expr) are treated as expr IS NULL, that is, they return true if expr evaluates to the null value, and false otherwise.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-compatible.html#GUC-TRANSFORM-NULL-EQUALS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "off" + } + }, + { + "name": "unix_socket_directories", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/unix_socket_directories", + "properties": { + "description": "Sets the directories where Unix-domain sockets will be created.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "/tmp", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-UNIX-SOCKET-DIRECTORIES", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "/tmp" + } + }, + { + "name": "unix_socket_group", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/unix_socket_group", + "properties": { + "description": "Sets the owning group of the Unix-domain socket.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-UNIX-SOCKET-GROUP", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "unix_socket_permissions", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/unix_socket_permissions", + "properties": { + "description": "Sets the access permissions of the Unix-domain socket.", + "allowedValues": "0-511", + "dataType": "Integer", + "defaultValue": "511", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-connection.html#GUC-UNIX-SOCKET-PERMISSIONS", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "user-override", + "value": "0777" + } + }, + { + "name": "update_process_title", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/update_process_title", + "properties": { + "description": "Updates the process title to show the active SQL command.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-logging.html#GUC-UPDATE-PROCESS-TITLE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "vacuum_cleanup_index_scale_factor", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/vacuum_cleanup_index_scale_factor", + "properties": { + "description": "Number of tuple inserts prior to index cleanup as a fraction of reltuples.", + "allowedValues": "0-1e+10", + "dataType": "Numeric", + "defaultValue": "0.1", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "0.1" + } + }, + { + "name": "vacuum_cost_delay", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/vacuum_cost_delay", + "properties": { + "description": "the amount of time (in milliseconds) that the vacuum process will sleep when the cost limit has been exceeded.", + "allowedValues": "0-100", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-VACUUM-COST-DELAY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "0" + } + }, + { + "name": "vacuum_cost_limit", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/vacuum_cost_limit", + "properties": { + "description": "The accumulated cost that will cause the vacuuming process to sleep.", + "allowedValues": "1-10000", + "dataType": "Integer", + "defaultValue": "200", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-VACUUM-COST-LIMIT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "200" + } + }, + { + "name": "vacuum_cost_page_dirty", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/vacuum_cost_page_dirty", + "properties": { + "description": "The estimated cost charged when vacuum modifies a block that was previously clean.", + "allowedValues": "0-10000", + "dataType": "Integer", + "defaultValue": "20", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-VACUUM-COST-PAGE-DIRTY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "20" + } + }, + { + "name": "vacuum_cost_page_hit", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/vacuum_cost_page_hit", + "properties": { + "description": "The estimated cost for vacuuming a buffer found in the shared buffer cache.", + "allowedValues": "0-10000", + "dataType": "Integer", + "defaultValue": "1", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-VACUUM-COST-PAGE-HIT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "1" + } + }, + { + "name": "vacuum_cost_page_miss", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/vacuum_cost_page_miss", + "properties": { + "description": "The estimated cost for vacuuming a buffer that must be read from disk.", + "allowedValues": "0-10000", + "dataType": "Integer", + "defaultValue": "10", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-VACUUM-COST-PAGE-MISS", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "10" + } + }, + { + "name": "vacuum_defer_cleanup_age", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/vacuum_defer_cleanup_age", + "properties": { + "description": "Specifies the number of transactions by which VACUUM and HOT updates will defer cleanup of dead row versions.", + "allowedValues": "0-1000000", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-VACUUM-DEFER-CLEANUP-AGE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "0" + } + }, + { + "name": "vacuum_freeze_min_age", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/vacuum_freeze_min_age", + "properties": { + "description": "Specifies the cutoff age (in transactions) that VACUUM should use to decide whether to freeze row versions while scanning a table.", + "allowedValues": "0-1000000000", + "dataType": "Integer", + "defaultValue": "50000000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-VACUUM-FREEZE-MIN-AGE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "50000000" + } + }, + { + "name": "vacuum_freeze_table_age", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/vacuum_freeze_table_age", + "properties": { + "description": "Age at which VACUUM should scan whole table to freeze tuples.", + "allowedValues": "0-2000000000", + "dataType": "Integer", + "defaultValue": "150000000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-VACUUM-FREEZE-TABLE-AGE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "150000000" + } + }, + { + "name": "vacuum_multixact_freeze_min_age", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/vacuum_multixact_freeze_min_age", + "properties": { + "description": "Specifies the cutoff age (in multixacts) that VACUUM should use to decide whether to replace multixact IDs with a newer transaction ID or multixact ID while scanning a table.", + "allowedValues": "0-1000000000", + "dataType": "Integer", + "defaultValue": "5000000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-VACUUM-MULTIXACT-FREEZE-MIN-AGE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "5000000" + } + }, + { + "name": "vacuum_multixact_freeze_table_age", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/vacuum_multixact_freeze_table_age", + "properties": { + "description": "VACUUM performs a full table scan to freeze rows if the table has reached the age specified by this setting.", + "allowedValues": "0-2000000000", + "dataType": "Integer", + "defaultValue": "150000000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-VACUUM-MULTIXACT-FREEZE-TABLE-AGE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "150000000" + } + }, + { + "name": "wal_block_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_block_size", + "properties": { + "description": "Shows the block size in the write ahead log.", + "allowedValues": "8192-8192", + "dataType": "Integer", + "defaultValue": "8192", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-WAL-BLOCK-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "8192" + } + }, + { + "name": "wal_buffers", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_buffers", + "properties": { + "description": "Sets the number of disk-page buffers in shared memory for WAL. Unit is 8kb.", + "allowedValues": "-1-262143", + "dataType": "Integer", + "defaultValue": "2048", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-WAL-BUFFERS", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "unit": "8KB", + "value": "2048" + } + }, + { + "name": "wal_compression", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_compression", + "properties": { + "description": "Compresses full-page writes written in WAL file.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-WAL-COMPRESSION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "on" + } + }, + { + "name": "wal_consistency_checking", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_consistency_checking", + "properties": { + "description": "Sets the WAL resource managers for which WAL consistency checks are done.", + "allowedValues": ".*", + "dataType": "String", + "defaultValue": "", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-WAL-CONSISTENCY-CHECKING", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "" + } + }, + { + "name": "wal_init_zero", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_init_zero", + "properties": { + "description": "Writes zeroes to new WAL files before first use.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-WAL-INIT-ZERO", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "wal_keep_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_keep_size", + "properties": { + "description": "Sets the size of WAL files held for standby servers.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "0", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-WAL-KEEP-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "user-override", + "unit": "megabytes", + "value": "400" + } + }, + { + "name": "wal_level", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_level", + "properties": { + "description": "It determines how much information is written to the WAL.", + "allowedValues": "replica,logical", + "dataType": "Enumeration", + "defaultValue": "replica", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-WAL-LEVEL", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": false, + "source": "system-default", + "value": "replica" + } + }, + { + "name": "wal_log_hints", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_log_hints", + "properties": { + "description": "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-WAL-LOG-HINTS", + "isConfigPendingRestart": false, + "isDynamicConfig": false, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "wal_receiver_create_temp_slot", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_receiver_create_temp_slot", + "properties": { + "description": "Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-WAL-RECEIVER-CREATE-TEMP-SLOT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + }, + { + "name": "wal_receiver_status_interval", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_receiver_status_interval", + "properties": { + "description": "Sets the maximum interval between WAL receiver status reports to the primary.", + "allowedValues": "0-2147483", + "dataType": "Integer", + "defaultValue": "10", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-WAL-RECEIVER-STATUS-INTERVAL", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "seconds", + "value": "10" + } + }, + { + "name": "wal_receiver_timeout", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_receiver_timeout", + "properties": { + "description": "Sets the maximum wait time to receive data from the sending server.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "60000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-WAL-RECEIVER-TIMEOUT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "60000" + } + }, + { + "name": "wal_recycle", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_recycle", + "properties": { + "description": "Recycles WAL files by renaming them.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "on", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-WAL-RECYCLE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "on" + } + }, + { + "name": "wal_retrieve_retry_interval", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_retrieve_retry_interval", + "properties": { + "description": "Sets the time to wait before retrying to retrieve WAL after a failed attempt.", + "allowedValues": "1-2147483647", + "dataType": "Integer", + "defaultValue": "5000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-WAL-RETRIEVE-RETRY-INTERVAL", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "unit": "milliseconds", + "value": "5000" + } + }, + { + "name": "wal_segment_size", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_segment_size", + "properties": { + "description": "Shows the size of write ahead log segments.", + "allowedValues": "1048576-1073741824", + "dataType": "Integer", + "defaultValue": "16777216", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-preset.html#GUC-WAL-SEGMENT-SIZE", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "unit": "bytes", + "value": "16777216" + } + }, + { + "name": "wal_sender_timeout", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_sender_timeout", + "properties": { + "description": "Sets the maximum time to wait for WAL replication.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "60000", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-replication.html#GUC-WAL-SENDER-TIMEOUT", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "60000" + } + }, + { + "name": "wal_skip_threshold", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_skip_threshold", + "properties": { + "description": "Size of new file to fsync instead of writing WAL.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "2048", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-WAL-SKIP-THRESHOLD", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "unit": "KB", + "value": "2048" + } + }, + { + "name": "wal_sync_method", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_sync_method", + "properties": { + "description": "Selects the method used for forcing WAL updates to disk.", + "allowedValues": "fsync,fdatasync,open_sync,open_datasync", + "dataType": "Enumeration", + "defaultValue": "fdatasync", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-WAL-SYNC-METHOD", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "fdatasync" + } + }, + { + "name": "wal_writer_delay", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_writer_delay", + "properties": { + "description": "Time interval between WAL flushes performed by the WAL writer.", + "allowedValues": "1-10000", + "dataType": "Integer", + "defaultValue": "200", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-WAL-WRITER-DELAY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "milliseconds", + "value": "200" + } + }, + { + "name": "wal_writer_flush_after", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/wal_writer_flush_after", + "properties": { + "description": "Amount of WAL written out by WAL writer that triggers a flush.", + "allowedValues": "0-2147483647", + "dataType": "Integer", + "defaultValue": "128", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-WAL-WRITER-FLUSH-AFTER", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "8KB", + "value": "128" + } + }, + { + "name": "work_mem", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/work_mem", + "properties": { + "description": "Sets the amount of memory to be used by internal sort operations and hash tables before writing to temporary disk files.", + "allowedValues": "4096-2097151", + "dataType": "Integer", + "defaultValue": "4096", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-WORK-MEM", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "unit": "KB", + "value": "4096" + } + }, + { + "name": "xmlbinary", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/xmlbinary", + "properties": { + "description": "Sets how binary values are to be encoded in XML.", + "allowedValues": "base64,hex", + "dataType": "Enumeration", + "defaultValue": "base64", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-XMLBINARY", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "base64" + } + }, + { + "name": "xmloption", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/xmloption", + "properties": { + "description": "Sets whether XML data in implicit parsing and serialization operations is to be considered as documents or content fragments.", + "allowedValues": "content,document", + "dataType": "Enumeration", + "defaultValue": "content", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-client.html#GUC-XMLOPTION", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": false, + "source": "system-default", + "value": "content" + } + }, + { + "name": "zero_damaged_pages", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/configurations/zero_damaged_pages", + "properties": { + "description": "Continues processing past damaged page headers.", + "allowedValues": "on,off", + "dataType": "Boolean", + "defaultValue": "off", + "documentationLink": "https://www.postgresql.org/docs/13/runtime-config-developer.html#GUC-ZERO-DAMAGED-PAGES", + "isConfigPendingRestart": false, + "isDynamicConfig": true, + "isReadOnly": true, + "source": "system-default", + "value": "off" + } + } + ] + } + } + }, + "operationId": "Configurations_ListByServer", + "title": "List all configurations (also known as server parameters) of a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsUpdate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsUpdate.json new file mode 100644 index 000000000000..4b3e254f5058 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsUpdate.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "configurationName": "constraint_exclusion", + "parameters": { + "properties": { + "source": "user-override", + "value": "on" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Configurations_Update", + "title": "Update the value assigned to a specific modifiable configuration (also known as server parameter) of a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsUpdateUsingPut.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsUpdateUsingPut.json new file mode 100644 index 000000000000..04a03061b53e --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ConfigurationsUpdateUsingPut.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "configurationName": "constraint_exclusion", + "parameters": { + "properties": { + "source": "user-override", + "value": "on" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Configurations_Put", + "title": "Update, using Put verb, the value assigned to a specific modifiable configuration (also known as server parameter) of a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesCreate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesCreate.json new file mode 100644 index 000000000000..948c0048a605 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesCreate.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "databaseName": "exampledatabase", + "parameters": { + "properties": { + "charset": "utf8", + "collation": "en_US.utf8" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Databases_Create", + "title": "Create a database." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesDelete.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesDelete.json new file mode 100644 index 000000000000..77669f45a0ea --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesDelete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "databaseName": "exampledatabase", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + }, + "204": {} + }, + "operationId": "Databases_Delete", + "title": "Delete an existing database" +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesGet.json new file mode 100644 index 000000000000..c0d4ab5f8975 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesGet.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "databaseName": "exampledatabase", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "exampledatabase", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/databases", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/databases/exampledatabase", + "properties": { + "charset": "utf8", + "collation": "en_US.utf8" + } + } + } + }, + "operationId": "Databases_Get", + "title": "Get information about an existing database." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesListByServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesListByServer.json new file mode 100644 index 000000000000..af8d3020fc8d --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/DatabasesListByServer.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "exampledatabase1", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/databases", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/databases/exampledatabase1", + "properties": { + "charset": "utf8", + "collation": "en_US.utf8" + } + }, + { + "name": "exampledatabase2", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/databases", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/databases/exampledatabase2", + "properties": { + "charset": "utf8", + "collation": "en_US.utf8" + } + } + ] + } + } + }, + "operationId": "Databases_ListByServer", + "title": "List all databases in a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesCreateOrUpdate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesCreateOrUpdate.json new file mode 100644 index 000000000000..720daae3e414 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesCreateOrUpdate.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "firewallRuleName": "examplefirewallrule", + "parameters": { + "properties": { + "endIpAddress": "255.255.255.255", + "startIpAddress": "0.0.0.0" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "FirewallRules_CreateOrUpdate", + "title": "Create a new firewall rule or update an existing firewall rule." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesDelete.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesDelete.json new file mode 100644 index 000000000000..4c328dd9e802 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesDelete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "firewallRuleName": "examplefirewallrule", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + }, + "204": {} + }, + "operationId": "FirewallRules_Delete", + "title": "Delete an existing firewall rule." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesGet.json new file mode 100644 index 000000000000..6619ceada8bb --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesGet.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "firewallRuleName": "examplefirewallrule", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplefirewallrule", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/servers/exampleserver/firewallRules/examplefirewallrule", + "properties": { + "endIpAddress": "255.255.255.255", + "startIpAddress": "0.0.0.0" + } + } + } + }, + "operationId": "FirewallRules_Get", + "title": "Get information about a firewall rule in a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesListByServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesListByServer.json new file mode 100644 index 000000000000..fa67a6eccee3 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/FirewallRulesListByServer.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff//resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/firewallRules?api-version=2025-06-01-preview&$skiptoken=skiptoken", + "value": [ + { + "name": "examplefirewallrule1", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/firewallRules/examplefirewallrule1", + "properties": { + "endIpAddress": "255.255.255.255", + "startIpAddress": "0.0.0.0" + } + }, + { + "name": "examplefirewallrule2", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/firewallRules/examplefirewallrule2", + "properties": { + "endIpAddress": "255.0.0.0", + "startIpAddress": "1.0.0.0" + } + } + ] + } + } + }, + "operationId": "FirewallRules_ListByServer", + "title": "List information about all firewall rules in a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCancel.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCancel.json new file mode 100644 index 000000000000..bcf227f7fcee --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCancel.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationMode": "Offline", + "migrationName": "examplemigration", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampletarget/migrations/examplemigration", + "location": "East US", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps", + "dbDetails": {} + }, + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb", + "migrationMode": "Offline", + "migrationOption": "ValidateAndMigrate", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.12345Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "True", + "sourceDbServerResourceId": "examplesource:5432@exampleadministratorlogin", + "sourceType": "OnPremises", + "sslMode": "Prefer", + "targetDbServerMetadata": { + "location": "East US", + "sku": { + "name": "Standard_D4ds_v4", + "tier": "GeneralPurpose" + }, + "storageMb": 131072, + "version": "17" + }, + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "True" + } + } + }, + "204": {} + }, + "operationId": "Migrations_Cancel", + "title": "Cancel an active migration." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCheckNameAvailability.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCheckNameAvailability.json new file mode 100644 index 000000000000..87104721daf7 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCheckNameAvailability.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "name": "examplemigration", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/migrations" + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "naexamplemigration", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/migrations", + "message": null, + "nameAvailable": true, + "reason": null + } + } + }, + "operationId": "Migrations_CheckNameAvailability", + "title": "Check the validity and availability of the given name, to assign it to a new migration." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreate.json new file mode 100644 index 000000000000..f6d3a430df6d --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreate.json @@ -0,0 +1,103 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationName": "examplemigration", + "parameters": { + "location": "eastus", + "properties": { + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrationMode": "Offline", + "overwriteDbsInTarget": "True", + "secretParameters": { + "adminCredentials": { + "sourceServerPassword": "examplesourcepassword", + "targetServerPassword": "exampletargetpassword" + } + }, + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + }, + "tags": { + "key1624": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + } + } + }, + "201": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + }, + "tags": { + "key1624": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + } + } + } + }, + "operationId": "Migrations_Create", + "title": "Create a migration." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateOtherSourceTypesValidateMigrate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateOtherSourceTypesValidateMigrate.json new file mode 100644 index 000000000000..991f9065fcbb --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateOtherSourceTypesValidateMigrate.json @@ -0,0 +1,109 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationName": "examplemigration", + "parameters": { + "location": "eastus", + "properties": { + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrationMode": "Offline", + "migrationOption": "ValidateAndMigrate", + "overwriteDbsInTarget": "True", + "secretParameters": { + "adminCredentials": { + "sourceServerPassword": "examplesourcepassword", + "targetServerPassword": "exampletargetpassword" + } + }, + "sourceDbServerResourceId": "examplesource:5432@exampleuser", + "sourceType": "OnPremises", + "sslMode": "Prefer" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "ValidationInProgress" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationOption": "ValidateAndMigrate", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerResourceId": "examplesource:5432@exampleuser", + "sourceType": "OnPremises", + "sslMode": "Prefer", + "startDataMigration": "False", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + }, + "tags": { + "key1624": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + } + } + }, + "201": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "ValidationInProgress" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationOption": "ValidateAndMigrate", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerResourceId": "examplesource:5432@exampleuser", + "sourceType": "OnPremises", + "sslMode": "Prefer", + "startDataMigration": "False", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + } + } + } + }, + "operationId": "Migrations_Create", + "title": "Create a migration with other source type for validating and migrating." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateValidateOnly.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateValidateOnly.json new file mode 100644 index 000000000000..d44e12b6f90e --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateValidateOnly.json @@ -0,0 +1,102 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationName": "examplemigration", + "parameters": { + "location": "eastus", + "properties": { + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrationMode": "Offline", + "migrationOption": "Validate", + "overwriteDbsInTarget": "True", + "secretParameters": { + "adminCredentials": { + "sourceServerPassword": "examplesourcepassword", + "targetServerPassword": "exampletargetpassword" + } + }, + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "ValidationInProgress" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationOption": "Validate", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + }, + "tags": { + "key1624": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + } + } + }, + "201": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "ValidationInProgress" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + } + } + } + }, + "operationId": "Migrations_Create", + "title": "Create a migration for validating only." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithFullyQualifiedDomainName.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithFullyQualifiedDomainName.json new file mode 100644 index 000000000000..067fdc2f5875 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithFullyQualifiedDomainName.json @@ -0,0 +1,109 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationName": "examplemigration", + "parameters": { + "location": "eastus", + "properties": { + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrationMode": "Offline", + "overwriteDbsInTarget": "True", + "secretParameters": { + "adminCredentials": { + "sourceServerPassword": "xxxxxxxx", + "targetServerPassword": "xxxxxxxx" + } + }, + "sourceDbServerFullyQualifiedDomainName": "examplesource.contoso.com", + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "targetDbServerFullyQualifiedDomainName": "exampletarget.contoso.com" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerFullyQualifiedDomainName": "examplesource.contoso.com", + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerFullyQualifiedDomainName": "exampletarget.contoso.com", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + }, + "tags": { + "key1624": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + } + } + }, + "201": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerFullyQualifiedDomainName": "examplesource.contoso.com", + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerFullyQualifiedDomainName": "exampletarget.contoso.com", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + }, + "tags": { + "key1624": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + } + } + } + }, + "operationId": "Migrations_Create", + "title": "Create a migration with fully qualified domain names for source and target servers." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithOtherUsers.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithOtherUsers.json new file mode 100644 index 000000000000..eb375283f424 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithOtherUsers.json @@ -0,0 +1,103 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationName": "examplemigration", + "parameters": { + "location": "eastus", + "properties": { + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrationMode": "Offline", + "secretParameters": { + "adminCredentials": { + "sourceServerPassword": "examplesourcepassword", + "targetServerPassword": "exampletargetpassword" + }, + "sourceServerUsername": "newadmin@examplesource", + "targetServerUsername": "targetadmin" + }, + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationMode": "Offline", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "False", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + }, + "tags": { + "key1624": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + } + } + }, + "201": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationMode": "Offline", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "False", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + } + } + } + }, + "operationId": "Migrations_Create", + "title": "Create a migration specifying user names." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithPrivateEndpointServers.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithPrivateEndpointServers.json new file mode 100644 index 000000000000..bf13ce5495ee --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithPrivateEndpointServers.json @@ -0,0 +1,106 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationName": "examplemigration", + "parameters": { + "location": "eastus", + "properties": { + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrationInstanceResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/examplesourcemigration", + "migrationMode": "Offline", + "overwriteDbsInTarget": "True", + "secretParameters": { + "adminCredentials": { + "sourceServerPassword": "examplesourcepassword", + "targetServerPassword": "exampletargetpassword" + } + }, + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationInstanceResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/examplesourcemigration", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + }, + "tags": { + "key1624": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + } + } + }, + "201": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationInstanceResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/examplesourcemigration", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + }, + "tags": { + "key1624": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + } + } + } + }, + "operationId": "Migrations_Create", + "title": "Create a migration with private endpoint." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithRoles.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithRoles.json new file mode 100644 index 000000000000..47d1da5a8bf4 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsCreateWithRoles.json @@ -0,0 +1,104 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationName": "examplemigration", + "parameters": { + "location": "eastus", + "properties": { + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "True", + "migrationMode": "Offline", + "overwriteDbsInTarget": "True", + "secretParameters": { + "adminCredentials": { + "sourceServerPassword": "examplesourcepassword", + "targetServerPassword": "exampletargetpassword" + } + }, + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "True", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + }, + "tags": { + "key1624": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + } + } + }, + "201": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "True", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + }, + "tags": { + "key1624": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + } + } + } + }, + "operationId": "Migrations_Create", + "title": "Create a migration with roles." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGet.json new file mode 100644 index 000000000000..1325ab4ad08e --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGet.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationMode": "Offline", + "migrationName": "examplemigration", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "False", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerMetadata": { + "location": "eastus", + "sku": { + "name": "B_Gen5_2", + "tier": "Basic" + }, + "storageMb": 1024, + "version": "10" + }, + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerMetadata": { + "location": "eastus", + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + }, + "storageMb": 2048, + "version": "17" + }, + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + } + } + } + }, + "operationId": "Migrations_Get", + "title": "Get information about a migration." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithSuccessfulValidationAndMigration.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithSuccessfulValidationAndMigration.json new file mode 100644 index 000000000000..b59dc03c4e75 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithSuccessfulValidationAndMigration.json @@ -0,0 +1,102 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationMode": "Offline", + "migrationName": "examplemigration", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "Completed", + "dbDetails": { + "exampledatabase": { + "appliedChanges": 0, + "cdcDeleteCounter": 0, + "cdcInsertCounter": 0, + "cdcUpdateCounter": 0, + "databaseName": "exampledatabase", + "endedOn": "2025-06-01T20:30:22.123456Z", + "fullLoadCompletedTables": 10, + "fullLoadErroredTables": 0, + "fullLoadLoadingTables": 0, + "fullLoadQueuedTables": 0, + "incomingChanges": 0, + "latency": 0, + "migrationState": "Succeeded", + "startedOn": "2025-06-01T18:30:22.123456Z" + } + }, + "validationDetails": { + "dbLevelValidationDetails": [ + { + "databaseName": "exampledatabase", + "endedOn": "2025-06-01T20:30:22.123456Z", + "startedOn": "2025-06-01T18:30:22.123456Z", + "summary": [ + { + "type": "SchemaValidation", + "state": "Succeeded" + }, + { + "type": "ExtensionsValidation", + "state": "Succeeded" + }, + { + "type": "CollationsValidation", + "state": "Succeeded" + } + ] + } + ], + "serverLevelValidationDetails": [ + { + "type": "AuthenticationAndConnectivityValidation", + "state": "Succeeded" + }, + { + "type": "SourceVersionValidation", + "state": "Succeeded" + }, + { + "type": "ServerParametersValidation", + "state": "Succeeded" + } + ], + "status": "Succeeded", + "validationEndTimeInUtc": "2025-06-01T20:30:22.123456Z", + "validationStartTimeInUtc": "2025-06-01T18:30:22.123456Z" + } + }, + "state": "Succeeded" + }, + "dbsToMigrate": [ + "exampledatabase" + ], + "migrateRoles": "False", + "migrationId": "f2354e72-2828-4a19-ad20-b4cd9e2673c1", + "migrationMode": "Offline", + "migrationOption": "ValidateAndMigrate", + "migrationWindowEndTimeInUtc": "2025-06-01T20:30:22.123456Z", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "True", + "sourceDbServerResourceId": "20.228.214.65:5432@postgres", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "True" + } + } + } + }, + "operationId": "Migrations_Get", + "title": "Get information about a migration with successful validation and successful migration." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithSuccessfulValidationButMigrationFailure.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithSuccessfulValidationButMigrationFailure.json new file mode 100644 index 000000000000..e5f1edf90f2f --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithSuccessfulValidationButMigrationFailure.json @@ -0,0 +1,100 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationMode": "Offline", + "migrationName": "examplemigration", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "Completed", + "dbDetails": { + "exampledatabase": { + "appliedChanges": 0, + "cdcDeleteCounter": 0, + "cdcInsertCounter": 0, + "cdcUpdateCounter": 0, + "databaseName": "exampledatabase", + "endedOn": "2025-06-01T20:30:22.123456Z", + "fullLoadCompletedTables": 0, + "fullLoadErroredTables": 0, + "fullLoadLoadingTables": 0, + "fullLoadQueuedTables": 0, + "incomingChanges": 0, + "latency": 0, + "message": "Collation/Encoding not Supported Error: User defined Collations are present in the source database. Please drop them before retrying the migration.", + "migrationState": "Failed", + "startedOn": "2025-06-01T18:30:22.123456Z" + } + }, + "validationDetails": { + "dbLevelValidationDetails": [ + { + "databaseName": "address_standardizer", + "endedOn": "2025-06-01T20:30:22.123456Z", + "startedOn": "2025-06-01T18:30:22.123456Z", + "summary": [ + { + "type": "ExtensionsValidation", + "state": "Succeeded" + } + ] + } + ], + "serverLevelValidationDetails": [ + { + "type": "AuthenticationAndConnectivityValidation", + "state": "Succeeded" + } + ], + "status": "Succeeded", + "validationEndTimeInUtc": "2025-06-01T20:30:22.123456Z", + "validationStartTimeInUtc": "2025-06-01T18:30:22.123456Z" + } + }, + "error": "exampledatabase: Collation/Encoding not Supported Error: User defined Collations are present in the source database. Please drop them before retrying the migration.", + "state": "Failed" + }, + "dbsToMigrate": [ + "exampledatabase" + ], + "migrateRoles": "False", + "migrationId": "da52db29-cfeb-4670-a1ad-683edb14c621", + "migrationMode": "Offline", + "migrationOption": "ValidateAndMigrate", + "migrationWindowEndTimeInUtc": "2025-06-01T20:30:22.123456Z", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "True", + "sourceDbServerMetadata": { + "location": "eastus", + "sku": {}, + "storageMb": 102400 + }, + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/servers/examplesource", + "targetDbServerMetadata": { + "location": "eastus", + "sku": { + "name": "Standard_D2ds_v4", + "tier": "Standard_D2ds_v4" + }, + "storageMb": 131072 + }, + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampletarget" + } + } + } + }, + "operationId": "Migrations_Get", + "title": "Get information about a migration with successful validation but failed migration." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithSuccessfulValidationOnly.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithSuccessfulValidationOnly.json new file mode 100644 index 000000000000..b7bd828ea4ca --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithSuccessfulValidationOnly.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationName": "examplemigration", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "Completed", + "dbDetails": {}, + "validationDetails": { + "dbLevelValidationDetails": [ + { + "databaseName": "UnknownCollationTest", + "endedOn": "2025-06-01T20:30:22.123456Z", + "startedOn": "2025-06-01T18:30:22.123456Z", + "summary": [ + { + "type": "SchemaValidation", + "state": "Succeeded" + }, + { + "type": "ExtensionsValidation", + "state": "Succeeded" + }, + { + "type": "CollationsValidation", + "state": "Succeeded" + } + ] + } + ], + "serverLevelValidationDetails": [ + { + "type": "AuthenticationAndConnectivityValidation", + "state": "Succeeded" + }, + { + "type": "SourceVersionValidation", + "state": "Succeeded" + }, + { + "type": "ServerParametersValidation", + "state": "Succeeded" + } + ], + "status": "Succeeded", + "validationEndTimeInUtc": "2025-06-01T20:30:22.123456Z", + "validationStartTimeInUtc": "2025-06-01T18:30:22.123456Z" + } + }, + "state": "Succeeded" + }, + "dbsToMigrate": [ + "UnknownCollationTest" + ], + "migrateRoles": "False", + "migrationId": "77840327-7be8-44b8-adc0-af0ccccfeb36", + "migrationMode": "Offline", + "migrationOption": "Validate", + "migrationWindowEndTimeInUtc": "2025-06-01T20:30:22.123456Z", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "True", + "sourceDbServerResourceId": "20.228.214.65:5432@postgres", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "True" + } + } + } + }, + "operationId": "Migrations_Get", + "title": "Get information about a migration with successful validation only." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithValidationFailures.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithValidationFailures.json new file mode 100644 index 000000000000..ae9f7d84916d --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsGetMigrationWithValidationFailures.json @@ -0,0 +1,200 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationName": "examplemigration", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "Completed", + "dbDetails": {}, + "validationDetails": { + "dbLevelValidationDetails": [ + { + "databaseName": "exampledatabase1", + "endedOn": "2025-06-01T20:30:22.123456Z", + "startedOn": "2025-06-01T18:30:22.123456Z", + "summary": [ + { + "type": "SchemaValidation", + "state": "Succeeded" + }, + { + "type": "ExtensionsValidation", + "messages": [ + { + "message": "Unsupported Extension. Single to Flex migration tool does not support migration of databases having postgres_fdw extension. Consider performing the migration through other migration tools such as pg_dump/pg_restore (https://aka.ms/migrate-using-pgdump-restore)", + "state": "Failed" + } + ], + "state": "Failed" + }, + { + "type": "CollationsValidation", + "state": "Succeeded" + } + ] + }, + { + "databaseName": "exampledatabase2", + "endedOn": "2025-06-01T20:30:22.123456Z", + "startedOn": "2025-06-01T18:30:22.123456Z", + "summary": [ + { + "type": "SchemaValidation", + "state": "Succeeded" + }, + { + "type": "ExtensionsValidation", + "state": "Succeeded" + }, + { + "type": "CollationsValidation", + "state": "Succeeded" + } + ] + }, + { + "databaseName": "exampledatabase3", + "endedOn": "2025-06-01T20:30:22.123456Z", + "startedOn": "2025-06-01T18:30:22.123456Z", + "summary": [ + { + "type": "SchemaValidation", + "state": "Succeeded" + }, + { + "type": "ExtensionsValidation", + "state": "Succeeded" + }, + { + "type": "CollationsValidation", + "state": "Succeeded" + } + ] + }, + { + "databaseName": "exampledatabase4", + "endedOn": "2025-06-01T20:30:22.123456Z", + "startedOn": "2025-06-01T18:30:22.123456Z", + "summary": [ + { + "type": "SchemaValidation", + "state": "Succeeded" + }, + { + "type": "ExtensionsValidation", + "state": "Succeeded" + } + ] + }, + { + "databaseName": "exampledatabase5", + "endedOn": "2025-06-01T20:30:22.123456Z", + "startedOn": "2025-06-01T18:30:22.123456Z", + "summary": [ + { + "type": "SchemaValidation", + "state": "Succeeded" + }, + { + "type": "ExtensionsValidation", + "state": "Succeeded" + } + ] + }, + { + "databaseName": "exampledatabase6", + "endedOn": "2025-06-01T20:30:22.123456Z", + "startedOn": "2025-06-01T18:30:22.123456Z", + "summary": [ + { + "type": "SchemaValidation", + "state": "Succeeded" + }, + { + "type": "ExtensionsValidation", + "state": "Succeeded" + } + ] + }, + { + "databaseName": "exampledatabase7", + "endedOn": "2025-06-01T20:30:22.123456Z", + "startedOn": "2025-06-01T18:30:22.123456Z", + "summary": [ + { + "type": "SchemaValidation", + "state": "Succeeded" + }, + { + "type": "ExtensionsValidation", + "messages": [ + { + "message": "Unsupported Extension. Single to Flex migration tool does not support migration of databases having postgres_fdw extension. Consider performing the migration through other migration tools such as pg_dump/pg_restore (https://aka.ms/migrate-using-pgdump-restore)", + "state": "Failed" + } + ], + "state": "Failed" + } + ] + } + ], + "serverLevelValidationDetails": [ + { + "type": "AuthenticationAndConnectivityValidation", + "state": "Succeeded" + }, + { + "type": "SourceVersionValidation", + "state": "Succeeded" + }, + { + "type": "ServerParametersValidation", + "state": "Succeeded" + } + ], + "status": "Failed", + "validationEndTimeInUtc": "2025-06-01T20:30:22.123456Z", + "validationStartTimeInUtc": "2025-06-01T18:30:22.123456Z" + } + }, + "state": "ValidationFailed" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4", + "exampledatabase5", + "exampledatabase6", + "exampledatabase7" + ], + "migrateRoles": "False", + "migrationId": "a3e2d3cc-b139-4201-9431-e4f3003140fd", + "migrationMode": "Offline", + "migrationOption": "Validate", + "migrationWindowEndTimeInUtc": "2025-06-01T20:30:22.123456Z", + "migrationWindowStartTimeInUtc": "2025-06-01T18:30:22.123456Z", + "overwriteDbsInTarget": "True", + "setupLogicalReplicationOnSourceDbIfNeeded": "True", + "sourceDbServerResourceId": "20.228.214.65:5432@postgres", + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampletarget", + "triggerCutover": "True" + } + } + } + }, + "operationId": "Migrations_Get", + "title": "Get information about a migration with validation failures." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsListByTargetServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsListByTargetServer.json new file mode 100644 index 000000000000..353bb8fc53ed --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsListByTargetServer.json @@ -0,0 +1,67 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationListFilter": "All", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationWindowStartTimeInUtc": "2025-06-01T20:30:22.123456Z", + "overwriteDbsInTarget": "False", + "setupLogicalReplicationOnSourceDbIfNeeded": "False", + "sourceDbServerMetadata": { + "location": "eastus", + "sku": { + "name": "B_Gen5_2", + "tier": "Basic" + }, + "storageMb": 1024, + "version": "10" + }, + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerMetadata": { + "location": "eastus", + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + }, + "storageMb": 2048, + "version": "17" + }, + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + } + } + ] + } + } + }, + "operationId": "Migrations_ListByTargetServer", + "title": "List all migrations of a target flexible server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsUpdate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsUpdate.json new file mode 100644 index 000000000000..f43c470af9a1 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/MigrationsUpdate.json @@ -0,0 +1,69 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "migrationMode": "Offline", + "migrationName": "examplemigration", + "parameters": { + "properties": { + "setupLogicalReplicationOnSourceDbIfNeeded": "True" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "examplemigration", + "type": "Microsoft.DBForPostgreSql/flexibleServers/migrations", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget/migrations/examplemigration", + "location": "eastus", + "properties": { + "currentStatus": { + "currentSubStateDetails": { + "currentSubState": "PerformingPreRequisiteSteps" + }, + "error": "", + "state": "InProgress" + }, + "dbsToMigrate": [ + "exampledatabase1", + "exampledatabase2", + "exampledatabase3", + "exampledatabase4" + ], + "migrateRoles": "False", + "migrationId": "d3ceacbb-a5fd-43dc-a9db-6022b5154856", + "migrationWindowStartTimeInUtc": "2025-06-01T20:30:22.123456Z", + "overwriteDbsInTarget": "False", + "setupLogicalReplicationOnSourceDbIfNeeded": "True", + "sourceDbServerMetadata": { + "location": "eastus", + "sku": { + "name": "B_Gen5_2", + "tier": "Basic" + }, + "storageMb": 1024, + "version": "10" + }, + "sourceDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/servers/examplesource", + "startDataMigration": "False", + "targetDbServerMetadata": { + "location": "eastus", + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + }, + "storageMb": 2048, + "version": "17" + }, + "targetDbServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBForPostgreSql/flexibleServers/exampletarget", + "triggerCutover": "False" + } + } + } + }, + "operationId": "Migrations_Update", + "title": "Update an existing migration." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/NameAvailabilityCheckGlobally.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/NameAvailabilityCheckGlobally.json new file mode 100644 index 000000000000..364653127651 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/NameAvailabilityCheckGlobally.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "name": "exampleserver", + "type": "Microsoft.DBforPostgreSQL/flexibleServers" + }, + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "exampleserver", + "type": "Microsoft.DBforPostgreSQL/flexibleServers", + "message": "", + "nameAvailable": true + } + } + }, + "operationId": "NameAvailability_CheckGlobally", + "title": "Check the validity and availability of the given name, to assign it to a new server or to use it as the base name of a new pair of virtual endpoints." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/NameAvailabilityCheckWithLocation.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/NameAvailabilityCheckWithLocation.json new file mode 100644 index 000000000000..7a01a4c9148d --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/NameAvailabilityCheckWithLocation.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "locationName": "eastus", + "parameters": { + "name": "exampleserver", + "type": "Microsoft.DBforPostgreSQL/flexibleServers" + }, + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "exampleserver", + "type": "Microsoft.DBforPostgreSQL/flexibleServers", + "message": "", + "nameAvailable": true + } + } + }, + "operationId": "NameAvailability_CheckWithLocation", + "title": "Check the validity and availability of the given name, in the given location, to assign it to a new server or to use it as the base name of a new pair of virtual endpoints" +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/OperationsList.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/OperationsList.json new file mode 100644 index 000000000000..558751740f6e --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/OperationsList.json @@ -0,0 +1,2194 @@ +{ + "parameters": { + "api-version": "2025-08-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/queryTexts/read", + "display": { + "provider": "Microsoft DB for PostgreSQL" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/queryTexts/read", + "display": { + "provider": "Microsoft DB for PostgreSQL" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/recommendations/read", + "display": { + "description": "Returns the list of recommended indexes for the Azure Database for PostgreSQL Flexible Server", + "operation": "List Azure Database for PostgreSQL Flexible Server recommended indexes for tuning.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Recommended Indexes" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/read", + "display": { + "description": "Returns the list of Tuning Options available for the Azure Database for PostgreSQL Flexible Server", + "operation": "List Azure Database for PostgreSQL Flexible Server Tuning Options.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server Tuning Option" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/read", + "display": { + "description": "Returns a tuning option", + "operation": "Get a single tuning option", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server Tuning Option" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/migrations/write", + "display": { + "description": "Creates a migration with the specified parameters.", + "operation": "Create a database migration workflow.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Migration Workflow" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/migrations/read", + "display": { + "description": "Gets the properties for the specified migration workflow.", + "operation": "Get Migration Workflow details.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Migration Workflow" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/migrations/read", + "display": { + "description": "List of migration workflows for the specified database server.", + "operation": "List Migration Workflow details.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Migration Workflow" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/migrations/write", + "display": { + "description": "Update the properties for the specified migration.", + "operation": "Update a database migration workflow.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Migration Workflow" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/migrations/delete", + "display": { + "description": "Deletes an existing migration workflow.", + "operation": "Delete Migration Workflow.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Migration Workflow" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/getAutoMigrationFreeSlots/action", + "display": { + "description": "Returns the list of free / available slots for auto migration of PostgreSQL server", + "operation": "Get auto migration free / available slots for PostgreSQL", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Auto migration workflow to get free / available slots for auto migration" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/getLatestAutoMigrationSchedule/action", + "display": { + "description": "Returns the instance of the latest auto migration schedule for PostgreSQL server", + "operation": "Get latest auto migration schedule for PostgreSQL server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Auto migration workflow to get latest auto migration schedule" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/updateAutoMigrationSchedule/action", + "display": { + "description": "Update auto migration schedule for the PostgreSQL server", + "operation": "Update auto migration schedule for the PostgreSQL server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Auto migration workflow to update auto migration schedule" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/startSession/action", + "display": { + "description": "Starts a server configuration tuning session on a server", + "operation": "Start tuning configuration session", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server Configuration Tuning" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/stopSession/action", + "display": { + "description": "Stops the server configuration tuning session on a server", + "operation": "Stop tuning configuration session", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server Configuration Tuning" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/sessions/read", + "display": { + "description": "Gets the list of server configuration tuning sessions on a server", + "operation": "Server configuration tuning sessions", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server Configuration Tuning" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/enable/action", + "display": { + "description": "Enables server configuration tuning feature on the server", + "operation": "Enable server configuration tuning feature", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server Configuration Tuning" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/startSession/action", + "display": { + "description": "Starts a server configuration tuning session on a server", + "operation": "Start tuning configuration session", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server Configuration Tuning" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/stopSession/action", + "display": { + "description": "Stops the server configuration tuning session on a server", + "operation": "Stop tuning configuration session", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server Configuration Tuning" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/sessions/read", + "display": { + "description": "Gets the list of server configuration tuning sessions on a server", + "operation": "Server configuration tuning sessions", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server Configuration Tuning" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/sessionDetails/read", + "display": { + "description": "Gets the list of iterations for a specified server configuration tuning session on a server", + "operation": "Server configuration session details", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server Configuration Tuning" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/disable/action", + "display": { + "description": "Disables server configuration tuning feature on the server", + "operation": "Disable server configuration tuning feature", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server Configuration Tuning" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/restart/action", + "display": { + "description": "Restarts an existing server", + "operation": "Restart PostgreSQL server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/start/action", + "display": { + "description": "Starts an existing server", + "operation": "Start PostgreSQL server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/stop/action", + "display": { + "description": "Stops an existing server", + "operation": "Stops an existing server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/replicas/read", + "display": { + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/read", + "display": { + "description": "Return the list of servers or gets the properties for the specified server.", + "operation": "List/Get PostgreSQL server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/write", + "display": { + "description": "Creates a server with the specified parameters or update the properties or tags for the specified server.", + "operation": "Create/Update PostgreSQL server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/write", + "display": { + "description": "Creates a server with the specified parameters or update the properties or tags for the specified server.", + "operation": "Create/Update PostgreSQL server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/delete", + "display": { + "description": "Deletes an existing server.", + "operation": "Delete PostgreSQL server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/capabilities/read", + "display": { + "description": "Gets the capabilities for this subscription in a given location", + "operation": "Gets the capabilities for this subscription", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Location Capability" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/capabilities/read", + "display": { + "description": "Gets the capabilities for this subscription in a given location", + "operation": "Gets the capabilities for this subscription", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Location Capability" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/capabilities/{serverName}/read", + "display": { + "description": "Gets the capabilities for this subscription in a given location", + "operation": "Gets the capabilities for this subscription", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Location Capability" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/backups/read", + "display": { + "provider": "Microsoft DB for PostgreSQL", + "resource": "Flexible server database backups" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/backups/write", + "display": { + "provider": "Microsoft DB for PostgreSQL", + "resource": "Flexible server database backups" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/backups/delete", + "display": { + "provider": "Microsoft DB for PostgreSQL", + "resource": "Flexible server database backups" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/advisors/read", + "display": { + "provider": "Microsoft DB for PostgreSQL" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/waitStatistics/action", + "display": { + "provider": "Microsoft DB for PostgreSQL" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/queryStatistics/read", + "display": { + "provider": "Microsoft DB for PostgreSQL" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/topQueryStatistics/read", + "display": { + "provider": "Microsoft DB for PostgreSQL" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/resetQueryPerformanceInsightData/action", + "display": { + "provider": "Microsoft DB for PostgreSQL" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/advisors/recommendedActions/read", + "display": { + "provider": "Microsoft DB for PostgreSQL" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/checkMigrationNameAvailability/action", + "display": { + "description": "Checks the availability of the given migration name.", + "operation": "Check the availability of the given migration name.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Migration Name Availability Resource" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/assessForMigration/action", + "display": { + "description": "Performs a migration assessment with the specified parameters", + "operation": "Get Migration Assessment", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Migration Assessments" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/administrators/read", + "display": { + "description": "Return the list of server administrators or gets the properties for the specified server administrator.", + "operation": "List/Get PostgreSQL server administrator", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Administrator" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/administrators/read", + "display": { + "description": "Return the list of server administrators or gets the properties for the specified server administrator.", + "operation": "List/Get PostgreSQL server administrator", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Administrator" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/administrators/delete", + "display": { + "description": "Deletes an existing PostgreSQL server administrator.", + "operation": "Delete PostgreSQL server administrator", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Administrator" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/administrators/write", + "display": { + "description": "Creates a server administrator with the specified parameters or update the properties or tags for the specified server administrator.", + "operation": "Create/Update PostgreSQL server administrator", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Administrator" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/administrators/action", + "display": { + "description": "Creates a server administrator with the specified parameters or update the properties or tags for the specified server administrator.", + "operation": "Create/Update PostgreSQL server administrator", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Administrator" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/write", + "display": { + "description": "Creates a firewall rule with the specified parameters or update an existing rule.", + "operation": "Create/Update Firewall Rule", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Firewall Rules" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/read", + "display": { + "description": "Return the list of firewall rules for a server or gets the properties for the specified firewall rule.", + "operation": "List/Get Firewall Rules", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Firewall Rules" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/firewallRules/delete", + "display": { + "description": "Deletes an existing firewall rule.", + "operation": "Delete Firewall Rule", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Firewall Rules" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/databases/read", + "display": { + "description": "Returns the list of PostgreSQL server databases or gets the database for the specified server.", + "operation": "List/Get PostgreSQL server configuration", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Database" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/databases/write", + "display": { + "description": "Creates or Updates the database of a PostgreSQL server.", + "operation": "Creates/Updates PostgreSQL server database", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Database" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/databases/delete", + "display": { + "description": "Delete the database of a PostgreSQL server", + "operation": "Delete PostgreSQL server database", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Database" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/configurations/read", + "display": { + "description": "Returns the list of PostgreSQL server configurations or gets the configurations for the specified server.", + "operation": "List/Get PostgreSQL server configuration", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Configuration" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/configurations/write", + "display": { + "description": "Updates the configuration of a PostgreSQL server.", + "operation": "Update PostgreSQL server configuration", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Configuration" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/getSourceDatabaseList/action", + "display": { + "provider": "Microsoft DB for PostgreSQL", + "resource": "Fetch Databases Pre Migration Workflow" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/virtualendpoints/write", + "display": { + "description": "Creates or Updates VirtualEndpoint", + "operation": "VirtualEndpoint Create or Update operation", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL - Flexible Server Virtual Endpoint" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/virtualendpoints/write", + "display": { + "description": "Patches the VirtualEndpoint. Currently patch does a full replace", + "operation": "VirtualEndpoint Patch operation", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL - Flexible Server Virtual Endpoint" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/virtualendpoints/delete", + "display": { + "description": "Deletes the VirtualEndpoint", + "operation": "VirtualEndpoint Delete operation", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL - Flexible Server Virtual Endpoint" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/virtualendpoints/read", + "display": { + "description": "Gets the VirtualEndpoint details", + "operation": "VirtualEndpoint Get operation", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL - Flexible Server Virtual Endpoint" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/virtualendpoints/read", + "display": { + "description": "Lists the VirtualEndpoints", + "operation": "VirtualEndpoint List operation", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL - Flexible Server Virtual Endpoint" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/testConnectivity/action", + "display": { + "provider": "Microsoft DB for PostgreSQL", + "resource": "Pre-migration Workflow for checking the server connectivity" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/logFiles/read", + "display": { + "description": "Return a list of server log Files for a PostgreSQL Flexible server with File download links", + "operation": "List/Get PostgreSQL Flexible Server Log Files", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Flexible Server Log Files" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/startLtrBackup/action", + "display": { + "description": "Start long term backup for a server", + "operation": "Start long term backup for a server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Long term backup operation." + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/ltrPreBackup/action", + "display": { + "description": "Checks if a server is ready for a long term backup", + "operation": "Checks if a server is ready for a long term backup", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Long term backup operation." + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/ltrBackupOperations/read", + "display": { + "description": "Returns the PostgreSQL server long term backup operation tracking by backup name.", + "operation": "Get PostgreSQL server long term backup operation by backup name", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Long term backup operation." + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/ltrBackupOperations/read", + "display": { + "description": "Returns the list of PostgreSQL server long term backup operation tracking.", + "operation": "List/Get PostgreSQL server long term backup operation", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Long term backup operation." + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read", + "display": { + "description": "Returns the list of Advanced Threat Protection or gets the properties for the specified Advanced Threat Protection.", + "operation": "List/Get Azure Database for PostgreSQL Flexible Server Advanced Threat Protection states.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL Server Advanced Threat Protection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/read", + "display": { + "description": "Returns the list of Advanced Threat Protection or gets the properties for the specified Advanced Threat Protection.", + "operation": "List/Get Azure Database for PostgreSQL Flexible Server Advanced Threat Protection states.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL Server Advanced Threat Protection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/advancedThreatProtectionSettings/write", + "display": { + "description": "Enables/Disables Azure Database for PostgreSQL Flexible Server Advanced Threat Protection", + "operation": "Update Azure Database for PostgreSQL Server Advanced Threat Protection state", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL Server Advanced Threat Protection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/resourceType/usages/read", + "display": { + "description": "Gets the quota usages of a subscription", + "operation": "Gets quota usage", + "provider": "Microsoft DB for PostgreSQL" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/privateEndpointConnectionProxies/read", + "display": { + "description": "Returns the list of private endpoint connection proxies or gets the properties for the specified private endpoint connection proxy.", + "operation": "List/Get Azure Database for PostgreSQL Flexible Server Private Endpoint Connection Proxy", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL - Flexible Server Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/privateEndpointConnectionProxies/delete", + "display": { + "description": "Deletes an existing private endpoint connection proxy resource.", + "operation": "Delete Azure Database for PostgreSQL - Flexible Server Private Endpoint Connection Proxy", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL - Flexible Server Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/privateEndpointConnectionProxies/write", + "display": { + "description": "Creates a private endpoint connection proxy with the specified parameters or updates the properties or tags for the specified private endpoint connection proxy", + "operation": "Create/Update Azure Database for PostgreSQL - Flexible Server Private Endpoint Connection Proxy", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL - Flexible Server Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/privateEndpointConnectionProxies/validate/action", + "display": { + "description": "Validates a private endpoint connection create call from NRP side", + "operation": "Validate Azure Database for PostgreSQL - Flexible Server Private Endpoint Connection Creation by NRP", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL - Flexible Server Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/privateEndpointConnections/read", + "display": { + "description": "Returns the list of private endpoint connections or gets the properties for the specified private endpoint connection.", + "operation": "List/Get Azure Database for PostgreSQL - Flexible Server Private Endpoint Connection", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL - Flexible Server Private Endpoint Connection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/privateEndpointConnections/delete", + "display": { + "description": "Deletes an existing private endpoint connection", + "operation": "Delete Azure Database for PostgreSQL - Flexible Server Private Endpoint Connection", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL - Flexible Server Private Endpoint Connection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/privateEndpointConnections/write", + "display": { + "description": "Approves or rejects an existing private endpoint connection", + "operation": "Approve or Reject Azure Database for PostgreSQL - Flexible Server Private Endpoint Connection", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL - Flexible Server Private Endpoint Connection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/privateLinkResources/read", + "display": { + "description": "Return a list containing private link resource or gets the specified private link resource.", + "operation": "List/Get PostgreSQL private link resource", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL private link resource" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serverGroupsv2/privateEndpointConnectionProxies/read", + "display": { + "description": "Returns the list of private endpoint connections or gets the properties for the specified private endpoint connection via proxy", + "operation": "List/Get Azure Database for PostgreSQL SGv2 Private Endpoint Connection Via Proxy", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL SGv2 Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serverGroupsv2/privateEndpointConnectionProxies/write", + "display": { + "description": "Creates a private endpoint connection with the specified parameters or updates the properties or tags for the specified private endpoint connection via proxy", + "operation": "Create/Update Azure Database for PostgreSQL SGv2 Private Endpoint Connection Via Proxy", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL SGv2 Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serverGroupsv2/privateEndpointConnectionProxies/delete", + "display": { + "description": "Deletes an existing private endpoint connection via proxy", + "operation": "Delete Azure Database for PostgreSQL SGv2 Private Endpoint Connection Via Proxy", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL SGv2 Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serverGroupsv2/privateEndpointConnectionProxies/validate/action", + "display": { + "description": "Validates a private endpoint connection creation by NRP", + "operation": "Validate Azure Database for PostgreSQL SGv2 Private Endpoint Connection Creation by NRP", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL SGv2 Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serverGroupsv2/privateEndpointConnections/read", + "display": { + "description": "Returns the list of private endpoint connections or gets the properties for the specified private endpoint connection", + "operation": "List/Get Azure Database for PostgreSQL SGv2 Private Endpoint Connection", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL SGv2 Private Endpoint Connection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serverGroupsv2/privateEndpointConnections/write", + "display": { + "description": "Approves or rejects an existing private endpoint connection", + "operation": "Approve or Reject Azure Database for PostgreSQL SGv2 Private Endpoint Connection", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL SGv2 Private Endpoint Connection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serverGroupsv2/privateEndpointConnections/delete", + "display": { + "description": "Deletes an existing private endpoint connection", + "operation": "Delete Azure Database for PostgreSQL SGv2 Private Endpoint Connection", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL SGv2 Private Endpoint Connection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serverGroupsv2/privateLinkResources/read", + "display": { + "description": "Get the private link resources for the corresponding PostgreSQL SGv2", + "operation": "Get the private link resources for the corresponding PostgreSQL SGv2", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL SGv2 Private Link Resource" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serverGroupsv2/privateEndpointConnectionsApproval/action", + "display": { + "description": "Determines if user is allowed to approve a private endpoint connection for PostgreSQL SGv2", + "operation": "Private Endpoint Connections Approval for PostgreSQL SGv2", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL SGv2 Private Endpoint Connections Approval Resource" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/securityAlertPolicies/read", + "display": { + "description": "Retrieve details of the server threat detection policy configured on a given server", + "operation": "Get server threat detection policy", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server Threat Detection Policy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/securityAlertPolicies/write", + "display": { + "description": "Change the server threat detection policy for a given server", + "operation": "Update server threat detection policy", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server Threat Detection Policy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/securityAlertPoliciesOperationResults/read", + "display": { + "description": "Return the list of Server threat detection operation result.", + "operation": "List/Get Server threat detection operation result.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server threat detection operation result" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/keys/read", + "display": { + "description": "Return the list of server keys or gets the properties for the specified server key.", + "operation": "List/Get Azure Database for PostgreSQL Server Key(s)", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL Server Keys" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/keys/write", + "display": { + "description": "Creates a key with the specified parameters or update the properties or tags for the specified server key.", + "operation": "Create/Update Azure Database for PostgreSQL Server Keys", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL Server Keys" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/keys/delete", + "display": { + "description": "Deletes an existing server key.", + "operation": "Delete Azure Database for PostgreSQL Server Key", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL Server Keys" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/serverKeyAzureAsyncOperation/read", + "display": { + "description": "Gets in-progress operations on data encryption server keys", + "operation": "Data Encryption server keys operation", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Data Encryption server key operation" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/serverKeyOperationResults/read", + "display": { + "description": "Gets in-progress operations on data encryption server keys", + "operation": "Data Encryption server keys operation", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Data Encryption server key operation" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/advisors/read", + "display": { + "description": "Return the list of advisors", + "operation": "Return the list of advisors", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Advisors" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/advisors/recommendedActions/read", + "display": { + "description": "Return the list of recommended actions", + "operation": "Return the list of recommended actions", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Recommended Actions" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/advisors/recommendedActionSessions/action", + "display": { + "description": "Make recommendations", + "operation": "Make recommendations", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Recommended Actions" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/queryTexts/action", + "display": { + "description": "Return the text of a query", + "operation": "List query text of a query", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Query Texts" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/queryTexts/read", + "display": { + "description": "Return the texts for a list of queries", + "operation": "List query texts for a list of queries", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Query Texts" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/resetQueryPerformanceInsightData/action", + "display": { + "description": "Reset Query Performance Insight data", + "operation": "Reset Query Performance Insight data", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Reset Query Performance Insight data" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/topQueryStatistics/read", + "display": { + "description": "Return the list of Query Statistics for the top queries.", + "operation": "List/Get Query Statistic(s) for top queries", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Top Query Statistics" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/waitStatistics/read", + "display": { + "description": "Return wait statistics for an instance", + "operation": "List Wait Statistics for an instance", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Wait Statistics" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/privateEndpointConnectionsApproval/action", + "display": { + "description": "Determines if user is allowed to approve a private endpoint connection", + "operation": "Private Endpoint Connections Approval", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Private Endpoint Connections Approval" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/privateEndpointConnectionsApproval/action", + "display": { + "description": "Determines if user is allowed to approve a private endpoint connection", + "operation": "Private Endpoint Connections Approval", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Private Endpoint Connections Approval" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/privateLinkResources/read", + "display": { + "description": "Get the private link resources for the corresponding PostgreSQL Server", + "operation": "Get the private link resources for the corresponding PostgreSQL Server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL private link resource" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/privateEndpointConnections/read", + "display": { + "description": "Returns the list of private endpoint connections or gets the properties for the specified private endpoint connection.", + "operation": "List/Get Azure Database for PostgreSQL private endpoint connection", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL private endpoint connection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/privateEndpointConnections/delete", + "display": { + "description": "Deletes an existing private endpoint connection", + "operation": "Delete Azure Database for PostgreSQL private endpoint connection", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL private endpoint connection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/privateEndpointConnections/write", + "display": { + "description": "Approves or rejects an existing private endpoint connection", + "operation": "Approve or Reject Azure Database for PostgreSQL private endpoint connection", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL private endpoint connection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/privateEndpointConnectionOperationResults/read", + "display": { + "description": "Gets the result for a private endpoint connection operation", + "operation": "Get private endpoint connection operation status", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL private endpoint connection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/privateEndpointConnectionAzureAsyncOperation/read", + "display": { + "description": "Gets the result for a private endpoint connection operation", + "operation": "Get private endpoint connection operation status", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL private endpoint connection" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/privateEndpointConnectionProxyOperationResults/read", + "display": { + "description": "Gets the result for a private endpoint connection proxy operation", + "operation": "Get private endpoint connection proxy operation status", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/privateEndpointConnectionProxies/validate/action", + "display": { + "description": "Validates a private endpoint connection create call from NRP side", + "operation": "Validate Azure Database for PostgreSQL Private Endpoint Connection Creation by NRP", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/privateEndpointConnectionProxies/read", + "display": { + "description": "Returns the list of private endpoint connection proxies or gets the properties for the specified private endpoint connection proxy.", + "operation": "List/Get Azure Database for PostgreSQL Private Endpoint Connection Proxy", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/privateEndpointConnectionProxies/write", + "display": { + "description": "Creates a private endpoint connection proxy with the specified parameters or updates the properties or tags for the specified private endpoint connection proxy.", + "operation": "Create/Update Azure Database for PostgreSQL Private Endpoint Connection Proxy", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/privateEndpointConnectionProxies/delete", + "display": { + "description": "Deletes an existing private endpoint connection proxy", + "operation": "Delete Azure Database for PostgreSQL Private Endpoint Connection Proxy", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/privateEndpointConnectionProxyAzureAsyncOperation/read", + "display": { + "description": "Gets the result for a private endpoint connection proxy operation", + "operation": "Get private endpoint connection proxy operation status", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Azure Database for PostgreSQL Private Endpoint Connection Proxy" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/performanceTiers/read", + "display": { + "description": "Returns the list of Performance Tiers available.", + "operation": "List Performance Tiers", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Performance Tiers" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/operationResults/read", + "display": { + "description": "Return ResourceGroup based PostgreSQL Server Operation Results", + "operation": "Get PostgreSQL ResourceGroup based Server Operation Results ", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQ ResourceGroup based Server Operation Results" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/recoverableServers/read", + "display": { + "description": "Return the recoverable PostgreSQL Server info", + "operation": "Get Recoverable PostgreSQL Server info", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Recoverable PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/replicas/read", + "display": { + "description": "Get read replicas of a PostgreSQL server", + "operation": "Get PostgreSQL read replicas", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/read", + "display": { + "description": "Return the list of servers or gets the properties for the specified server.", + "operation": "List/Get PostgreSQL Servers", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/write", + "display": { + "description": "Creates a server with the specified parameters or update the properties or tags for the specified server.", + "operation": "Create/Update PostgreSQL Server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/delete", + "display": { + "description": "Deletes an existing server.", + "operation": "Delete PostgreSQL Server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/performanceTiers/read", + "display": { + "description": "Returns the list of Performance Tiers available.", + "operation": "List Performance Tiers", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Performance Tiers" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/operationResults/read", + "display": { + "description": "Return PostgreSQL Server Operation Results", + "operation": "Get PostgreSQL Server Operation Results", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Operation Results" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/restart/action", + "display": { + "description": "Restarts a specific server.", + "operation": "Restart PostgreSQL Server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/securityAlertPoliciesAzureAsyncOperation/read", + "display": { + "description": "Return the list of Server threat detection operation result.", + "operation": "List/Get Server threat detection operation result.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Server threat detection operation result" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/administrators/read", + "display": { + "description": "Gets a list of PostgreSQL server administrators.", + "operation": "Get Administrators of PostgreSQL server.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Administrator of PostgreSQL server." + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/administrators/write", + "display": { + "description": "Creates or updates PostgreSQL server administrator with the specified parameters.", + "operation": "Create/Update Administrator of PostgreSQL server.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Administrator of PostgreSQL server." + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/administrators/delete", + "display": { + "description": "Deletes an existing administrator of PostgreSQL server.", + "operation": "Delete Administrator of PostgreSQL server.", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Administrator of PostgreSQL server." + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/administratorAzureAsyncOperation/read", + "display": { + "description": "Gets in-progress operations on PostgreSQL server administrators", + "operation": "PostgreSQL server administrator operation", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Administrator opertiaons of PostgreSQL server." + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/administratorOperationResults/read", + "display": { + "description": "Return PostgreSQL Server administrator operation results", + "operation": "Get PostgreSQL server operation results", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL server operation results" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/register/action", + "display": { + "description": "Register PostgreSQL Resource Provider", + "operation": "Register PostgreSQL Resource Provider", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Microsoft Database For PostgreSQL Resource Provider" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/updateConfigurations/action", + "display": { + "description": "Update configurations for the specified server", + "operation": "Batch Update Server Configurations", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/checkNameAvailability/action", + "display": { + "description": "Verify whether given server name is available for provisioning worldwide for a given subscription.", + "operation": "Check Server Name Availability", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/configurations/read", + "display": { + "description": "Return the list of configurations for a server or gets the properties for the specified configuration.", + "operation": "List/Get Configurations", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Configurations" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/configurations/write", + "display": { + "description": "Update the value for the specified configuration", + "operation": "Update Configuration", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Configurations" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/virtualNetworkRules/read", + "display": { + "description": "Return the list of virtual network rules or gets the properties for the specified virtual network rule.", + "operation": "List/Get Virtual Network Rule(s)", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Virtual Network Rules" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/virtualNetworkRules/write", + "display": { + "description": "Creates a virtual network rule with the specified parameters or update the properties or tags for the specified virtual network rule.", + "operation": "Create/Update Virtual Network Rule", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Virtual Network Rules" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/virtualNetworkRules/delete", + "display": { + "description": "Deletes an existing Virtual Network Rule", + "operation": "Delete Virtual Network Rule", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Virtual Network Rules" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/locations/azureAsyncOperation/read", + "display": { + "description": "Return PostgreSQL Server Operation Results", + "operation": "Get PostgreSQL Server Operation Results", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server Operation Results" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/databases/read", + "display": { + "description": "Return the list of PostgreSQL Databases or gets the properties for the specified Database.", + "operation": "List/Get PostgreSQL Database", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Databases" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/databases/write", + "display": { + "description": "Creates a PostgreSQL Database with the specified parameters or update the properties for the specified Database.", + "operation": "Create/Update PostgreSQL Database", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Databases" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/databases/delete", + "display": { + "description": "Deletes an existing PostgreSQL Database.", + "operation": "Delete PostgreSQL Database", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Databases" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/firewallRules/read", + "display": { + "description": "Return the list of firewall rules for a server or gets the properties for the specified firewall rule.", + "operation": "List/Get Firewall Rules", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Firewall Rules" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/firewallRules/write", + "display": { + "description": "Creates a firewall rule with the specified parameters or update an existing rule.", + "operation": "Create/Update Firewall Rule", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Firewall Rules" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/firewallRules/delete", + "display": { + "description": "Deletes an existing firewall rule.", + "operation": "Delete Firewall Rule", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Firewall Rules" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/logFiles/read", + "display": { + "description": "Return the list of PostgreSQL LogFiles.", + "operation": "List/Get PostgreSQL LogFiles", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL LogFiles" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/performanceTiers/read", + "display": { + "description": "Returns the list of Performance Tiers available.", + "operation": "List Performance Tiers", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Performance Tiers" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/operations/read", + "display": { + "description": "Return the list of PostgreSQL Operations.", + "operation": "List/Get PostgreSQL Operations", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Operations" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/providers/Microsoft.Insights/metricDefinitions/read", + "display": { + "description": "Return types of metrics that are available for databases", + "operation": "Get database metric definitions", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Metric Definition" + }, + "properties": { + "serviceSpecification": { + "metricSpecifications": [ + { + "name": "cpu_percent", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "CPU percent", + "displayName": "CPU percent", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Percent" + }, + { + "name": "memory_percent", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Memory percent", + "displayName": "Memory percent", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Percent" + }, + { + "name": "io_consumption_percent", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "IO percent", + "displayName": "IO percent", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Percent" + }, + { + "name": "storage_percent", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Storage percent", + "displayName": "Storage percent", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Percent" + }, + { + "name": "storage_used", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Storage used", + "displayName": "Storage used", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Bytes" + }, + { + "name": "storage_limit", + "aggregationType": "Maximum", + "category": "Saturation", + "displayDescription": "Storage limit", + "displayName": "Storage limit", + "supportedAggregationTypes": [ + "Maximum" + ], + "unit": "Bytes" + }, + { + "name": "serverlog_storage_percent", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Server Log storage percent", + "displayName": "Server Log storage percent", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Percent" + }, + { + "name": "serverlog_storage_usage", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Server Log storage used", + "displayName": "Server Log storage used", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Bytes" + }, + { + "name": "serverlog_storage_limit", + "aggregationType": "Maximum", + "category": "Saturation", + "displayDescription": "Server Log storage limit", + "displayName": "Server Log storage limit", + "supportedAggregationTypes": [ + "Maximum" + ], + "unit": "Bytes" + }, + { + "name": "active_connections", + "aggregationType": "Average", + "category": "Traffic", + "displayDescription": "Active Connections", + "displayName": "Active Connections", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Count" + }, + { + "name": "connections_failed", + "aggregationType": "Total", + "category": "Errors", + "displayDescription": "Failed Connections", + "displayName": "Failed Connections", + "supportedAggregationTypes": [ + "Total" + ], + "unit": "Count" + }, + { + "name": "backup_storage_used", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Backup Storage Used", + "displayName": "Backup Storage Used", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "supportedTimeGrainTypes": [ + "PT15M", + "PT30M", + "PT1H", + "PT6H", + "PT12H", + "P1D" + ], + "unit": "Bytes" + }, + { + "name": "network_bytes_egress", + "aggregationType": "Total", + "category": "Traffic", + "displayDescription": "Network Out across active connections", + "displayName": "Network Out", + "supportedAggregationTypes": [ + "Total" + ], + "unit": "Bytes" + }, + { + "name": "network_bytes_ingress", + "aggregationType": "Total", + "category": "Traffic", + "displayDescription": "Network In across active connections", + "displayName": "Network In", + "supportedAggregationTypes": [ + "Total" + ], + "unit": "Bytes" + }, + { + "name": "pg_replica_log_delay_in_seconds", + "aggregationType": "Maximum", + "category": "Latency", + "displayDescription": "Replica lag in seconds", + "displayName": "Replica Lag", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Seconds" + }, + { + "name": "pg_replica_log_delay_in_bytes", + "aggregationType": "Maximum", + "category": "Latency", + "displayDescription": "Lag in bytes of the most lagging replica", + "displayName": "Max Lag Across Replicas", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Bytes" + } + ] + } + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/providers/Microsoft.Insights/logDefinitions/read", + "display": { + "description": "Gets the available logs for PostgreSQL servers", + "operation": "Read server log definitions", + "provider": "Microsoft DB for PostgreSQL", + "resource": "The log definition of servers" + }, + "properties": { + "serviceSpecification": { + "logSpecifications": [ + { + "name": "PostgreSQLLogs", + "blobDuration": "PT1H", + "displayName": "PostgreSQL Server Logs" + }, + { + "name": "QueryStoreRuntimeStatistics", + "blobDuration": "PT1H", + "displayName": "PostgreSQL Query Store Runtime Statistics" + }, + { + "name": "QueryStoreWaitStatistics", + "blobDuration": "PT1H", + "displayName": "PostgreSQL Query Store Wait Statistics" + } + ] + } + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/providers/Microsoft.Insights/diagnosticSettings/read", + "display": { + "description": "Gets the disagnostic setting for the resource", + "operation": "Read diagnostic setting", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Metric Definition" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/servers/providers/Microsoft.Insights/diagnosticSettings/write", + "display": { + "description": "Creates or updates the diagnostic setting for the resource", + "operation": "Write diagnostic setting", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Metric Definition" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serversv2/providers/Microsoft.Insights/metricDefinitions/read", + "display": { + "description": "Return types of metrics that are available for databases", + "operation": "Get database metric definitions", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Metric Definition" + }, + "properties": { + "serviceSpecification": { + "metricSpecifications": [ + { + "name": "cpu_percent", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "CPU percent", + "displayName": "CPU percent", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Percent" + }, + { + "name": "memory_percent", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Memory percent", + "displayName": "Memory percent", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Percent" + }, + { + "name": "iops", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "IO Operations per second", + "displayName": "IOPS", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Count" + }, + { + "name": "storage_percent", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Storage percent", + "displayName": "Storage percent", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Percent" + }, + { + "name": "storage_used", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Storage used", + "displayName": "Storage used", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Bytes" + }, + { + "name": "active_connections", + "aggregationType": "Average", + "category": "Traffic", + "displayDescription": "Active Connections", + "displayName": "Active Connections", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Count" + }, + { + "name": "network_bytes_egress", + "aggregationType": "Total", + "category": "Traffic", + "displayDescription": "Network Out across active connections", + "displayName": "Network Out", + "supportedAggregationTypes": [ + "Total" + ], + "unit": "Bytes" + }, + { + "name": "network_bytes_ingress", + "aggregationType": "Total", + "category": "Traffic", + "displayDescription": "Network In across active connections", + "displayName": "Network In", + "supportedAggregationTypes": [ + "Total" + ], + "unit": "Bytes" + } + ] + } + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serversv2/providers/Microsoft.Insights/logDefinitions/read", + "display": { + "description": "Gets the available logs for PostgreSQL servers", + "operation": "Read server log definitions", + "provider": "Microsoft DB for PostgreSQL", + "resource": "The log definition of servers" + }, + "properties": { + "serviceSpecification": { + "logSpecifications": [ + { + "name": "PostgreSQLLogs", + "blobDuration": "PT1H", + "displayName": "PostgreSQL Server Logs" + } + ] + } + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serversv2/providers/Microsoft.Insights/diagnosticSettings/read", + "display": { + "description": "Gets the disagnostic setting for the resource", + "operation": "Read diagnostic setting", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Metric Definition" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serversv2/providers/Microsoft.Insights/diagnosticSettings/write", + "display": { + "description": "Creates or updates the diagnostic setting for the resource", + "operation": "Write diagnostic setting", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Metric Definition" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serversv2/read", + "display": { + "description": "Return the list of servers or gets the properties for the specified server.", + "operation": "List/Get PostgreSQL Servers", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serversv2/write", + "display": { + "description": "Creates a server with the specified parameters or update the properties or tags for the specified server.", + "operation": "Create/Update PostgreSQL Server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serversv2/delete", + "display": { + "description": "Deletes an existing server.", + "operation": "Delete PostgreSQL Server", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serversv2/firewallRules/read", + "display": { + "description": "Return the list of firewall rules for a server or gets the properties for the specified firewall rule.", + "operation": "List/Get Firewall Rules", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Firewall Rules" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serversv2/firewallRules/write", + "display": { + "description": "Creates a firewall rule with the specified parameters or update an existing rule.", + "operation": "Create/Update Firewall Rule", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Firewall Rules" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serversv2/firewallRules/delete", + "display": { + "description": "Deletes an existing firewall rule.", + "operation": "Delete Firewall Rule", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Firewall Rules" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serversv2/configurations/read", + "display": { + "description": "Return the list of configurations for a server or gets the properties for the specified configuration.", + "operation": "List/Get Configurations", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Configurations" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serversv2/configurations/write", + "display": { + "description": "Update the value for the specified configuration", + "operation": "Update Configuration", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Configurations" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/serversv2/updateConfigurations/action", + "display": { + "description": "Update configurations for the specified server", + "operation": "Batch Update Server Configurations", + "provider": "Microsoft DB for PostgreSQL", + "resource": "PostgreSQL Server" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/providers/Microsoft.Insights/metricDefinitions/read", + "display": { + "description": "Return types of metrics that are available for databases", + "operation": "Get database metric definitions", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Metric Definition" + }, + "properties": { + "serviceSpecification": { + "metricSpecifications": [ + { + "name": "backup_storage_used", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Backup Storage Used", + "displayName": "Backup Storage Used", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Bytes" + }, + { + "name": "cpu_credits_consumed", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Total number of credits consumed by the database server", + "displayName": "CPU Credits Consumed", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Count" + }, + { + "name": "cpu_credits_remaining", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Total number of credits available to burst", + "displayName": "CPU Credits Remaining", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Count" + }, + { + "name": "cpu_percent", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "CPU percent", + "displayName": "CPU percent", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Percent" + }, + { + "name": "memory_percent", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Memory percent", + "displayName": "Memory percent", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Percent" + }, + { + "name": "iops", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "IO Operations per second", + "displayName": "IOPS", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Count" + }, + { + "name": "disk_queue_depth", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Number of outstanding I/O operations to the data disk", + "displayName": "Disk Queue Depth", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Count" + }, + { + "name": "read_throughput", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Bytes read per second from the data disk during monitoring period", + "displayName": "Read Throughput Bytes/Sec", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Count" + }, + { + "name": "write_throughput", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Bytes written per second to the data disk during monitoring period", + "displayName": "Write Throughput Bytes/Sec", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Count" + }, + { + "name": "read_iops", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Number of data disk I/O read operations per second", + "displayName": "Read IOPS", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Count" + }, + { + "name": "write_iops", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Number of data disk I/O write operations per second", + "displayName": "Write IOPS", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Count" + }, + { + "name": "storage_percent", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Storage percent", + "displayName": "Storage percent", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Percent" + }, + { + "name": "storage_used", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Storage used", + "displayName": "Storage used", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Bytes" + }, + { + "name": "storage_free", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Storage Free", + "displayName": "Storage Free", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Bytes" + }, + { + "name": "txlogs_storage_used", + "aggregationType": "Average", + "category": "Saturation", + "displayDescription": "Transaction Log Storage Used", + "displayName": "Transaction Log Storage Used", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Bytes" + }, + { + "name": "active_connections", + "aggregationType": "Average", + "category": "Traffic", + "displayDescription": "Active Connections", + "displayName": "Active Connections", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Count" + }, + { + "name": "network_bytes_egress", + "aggregationType": "Total", + "category": "Traffic", + "displayDescription": "Network Out across active connections", + "displayName": "Network Out", + "supportedAggregationTypes": [ + "Total" + ], + "unit": "Bytes" + }, + { + "name": "network_bytes_ingress", + "aggregationType": "Total", + "category": "Traffic", + "displayDescription": "Network In across active connections", + "displayName": "Network In", + "supportedAggregationTypes": [ + "Total" + ], + "unit": "Bytes" + }, + { + "name": "connections_failed", + "aggregationType": "Total", + "category": "Errors", + "displayDescription": "Failed Connections", + "displayName": "Failed Connections", + "supportedAggregationTypes": [ + "Total" + ], + "unit": "Count" + }, + { + "name": "connections_succeeded", + "aggregationType": "Total", + "category": "Traffic", + "displayDescription": "Succeeded Connections", + "displayName": "Succeeded Connections", + "supportedAggregationTypes": [ + "Total" + ], + "unit": "Count" + }, + { + "name": "maximum_used_transactionIDs", + "aggregationType": "Average", + "category": "Traffic", + "displayDescription": "Maximum Used Transaction IDs", + "displayName": "Maximum Used Transaction IDs", + "supportedAggregationTypes": [ + "Average", + "Maximum", + "Minimum" + ], + "unit": "Count" + } + ] + } + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/providers/Microsoft.Insights/logDefinitions/read", + "display": { + "description": "Gets the available logs for PostgreSQL servers", + "operation": "Read server log definitions", + "provider": "Microsoft DB for PostgreSQL", + "resource": "The log definition of servers" + }, + "properties": { + "serviceSpecification": { + "logSpecifications": [ + { + "name": "PostgreSQLLogs", + "blobDuration": "PT1H", + "displayName": "PostgreSQL Server Logs" + } + ] + } + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/providers/Microsoft.Insights/diagnosticSettings/read", + "display": { + "description": "Gets the disagnostic setting for the resource", + "operation": "Read diagnostic setting", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Metric Definition" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/providers/Microsoft.Insights/diagnosticSettings/write", + "display": { + "description": "Creates or updates the diagnostic setting for the resource", + "operation": "Write diagnostic setting", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Database Metric Definition" + } + }, + { + "name": "Microsoft.DBforPostgreSQL/flexibleServers/privateEndpointConnectionsApproval/action", + "display": { + "description": "Determines if the user is allowed to approve a private endpoint connection", + "operation": "Private Endpoint Connections Approval", + "provider": "Microsoft DB for PostgreSQL", + "resource": "Private Endpoint Connections Approval" + } + } + ] + } + } + }, + "operationId": "Operations_List", + "title": "List all available REST API operations." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateDnsZoneSuffixGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateDnsZoneSuffixGet.json new file mode 100644 index 000000000000..da4a9c187975 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateDnsZoneSuffixGet.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": "postgres.database.azure.com" + } + }, + "operationId": "PrivateDnsZoneSuffix_Get", + "title": "Get the private DNS suffix." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsDelete.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsDelete.json new file mode 100644 index 000000000000..fd1e0a387e8f --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsDelete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "privateEndpointConnectionName": "private-endpoint-connection-name.1fa229cd-bf3f-47f0-8c49-afb36723997e", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + }, + "204": {} + }, + "operationId": "PrivateEndpointConnections_Delete", + "title": "Delete a private endpoint connection." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsGet.json new file mode 100644 index 000000000000..ea3fc1fe572f --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsGet.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "privateEndpointConnectionName": "private-endpoint-connection-name.1fa229cd-bf3f-47f0-8c49-afb36723997e", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "private-endpoint-connection-name.1fa229cd-bf3f-47f0-8c49-afb36723997e", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/privateEndpointConnections", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/privateEndpointConnections/private-endpoint-connection-name.1fa229cd-bf3f-47f0-8c49-afb36723997e", + "properties": { + "groupIds": [ + "postgresqlServer" + ], + "privateEndpoint": { + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Ready" + } + } + } + }, + "operationId": "PrivateEndpointConnections_Get", + "title": "Get a private endpoint connection." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsList.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsList.json new file mode 100644 index 000000000000..12042be7e8b0 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsList.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "private-endpoint-connection-name.1fa229cd-bf3f-47f0-8c49-afb36723997e", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/privateEndpointConnections", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/privateEndpointConnections/private-endpoint-connection-name.1fa229cd-bf3f-47f0-8c49-afb36723997e", + "properties": { + "groupIds": [ + "postgresqlServer" + ], + "privateEndpoint": { + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Ready" + } + }, + { + "name": "private-endpoint-connection-name-2.1fa229cd-bf3f-47f0-8c49-afb36723997e", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/privateEndpointConnections", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/privateEndpointConnections/private-endpoint-connection-name-2.1fa229cd-bf3f-47f0-8c49-afb36723997e", + "properties": { + "groupIds": [ + "postgresqlServer" + ], + "privateEndpoint": { + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.Network/privateEndpoints/private-endpoint-name-2" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Ready" + } + } + ] + } + } + }, + "operationId": "PrivateEndpointConnections_ListByServer", + "title": "List all private endpoint connections on a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsUpdate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsUpdate.json new file mode 100644 index 000000000000..fdb53ded3f50 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateEndpointConnectionsUpdate.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "properties": { + "privateLinkServiceConnectionState": { + "description": "Approved by johndoe@contoso.com", + "status": "Approved" + } + } + }, + "privateEndpointConnectionName": "private-endpoint-connection-name.1fa229cd-bf3f-47f0-8c49-afb36723997e", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "PrivateEndpointConnections_Update", + "title": "Approve or reject a private endpoint connection." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateLinkResourcesGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateLinkResourcesGet.json new file mode 100644 index 000000000000..9fccc75dc78f --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateLinkResourcesGet.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "groupName": "exampleprivatelink", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "exampleprivatelink", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/privateLinkResources", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/privateLinkResources/exampleprivatelink", + "properties": { + "groupId": "postgresqlServer", + "requiredMembers": [ + "postgresqlServer" + ], + "requiredZoneNames": [ + "privatelink.postgres.database.azure.com" + ] + } + } + } + }, + "operationId": "PrivateLinkResources_Get", + "title": "Gets a private link resource for PostgreSQL." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateLinkResourcesList.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateLinkResourcesList.json new file mode 100644 index 000000000000..10ad3ff67d60 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/PrivateLinkResourcesList.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "exampleprivatelink", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/privateLinkResources", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/privateLinkResources/exampleprivatelink", + "properties": { + "groupId": "postgresqlServer", + "requiredMembers": [ + "postgresqlServer" + ], + "requiredZoneNames": [ + "privatelink.postgres.database.azure.com" + ] + } + } + ] + } + } + }, + "operationId": "PrivateLinkResources_ListByServer", + "title": "Gets private link resources for PostgreSQL." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/QuotaUsagesForFlexibleServers.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/QuotaUsagesForFlexibleServers.json new file mode 100644 index 000000000000..8f949e355500 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/QuotaUsagesForFlexibleServers.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "locationName": "eastus", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": { + "localizedValue": "standardBSFamily", + "value": "standardBSFamily" + }, + "currentValue": 0, + "id": "", + "limit": 10000, + "unit": "Count" + }, + { + "name": { + "localizedValue": "standardDDSv4Family", + "value": "standardDDSv4Family" + }, + "currentValue": 0, + "id": "", + "limit": 100, + "unit": "Count" + } + ] + } + } + }, + "operationId": "QuotaUsages_List", + "title": "List of quota usages for servers" +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ReplicasListByServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ReplicasListByServer.json new file mode 100644 index 000000000000..2fb5ba7c6fa2 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ReplicasListByServer.json @@ -0,0 +1,74 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "exampleserver", + "type": "Microsoft.DBforPostgreSQL/flexibleServers", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver", + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "authConfig": { + "activeDirectoryAuth": "Disabled", + "passwordAuth": "Enabled" + }, + "availabilityZone": "2", + "backup": { + "backupRetentionDays": 7, + "earliestRestoreDate": "2025-06-01T18:35:22.123456Z", + "geoRedundantBackup": "Disabled" + }, + "dataEncryption": { + "type": "SystemManaged" + }, + "fullyQualifiedDomainName": "exampleserver.postgres.database.azure.com", + "highAvailability": { + "mode": "Disabled", + "state": "NotEnabled" + }, + "maintenanceWindow": { + "customWindow": "Disabled", + "dayOfWeek": 0, + "startHour": 0, + "startMinute": 0 + }, + "minorVersion": "5", + "network": { + "publicNetworkAccess": "Enabled" + }, + "replica": { + "capacity": 0, + "replicationState": "Active", + "role": "AsyncReplica" + }, + "replicaCapacity": 0, + "replicationRole": "AsyncReplica", + "state": "Ready", + "storage": { + "autoGrow": "Disabled", + "iops": 2300, + "storageSizeGB": 512, + "tier": "P20" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + } + } + ] + } + } + }, + "operationId": "Replicas_ListByServer", + "title": "List all read replicas of a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersClusterCreate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersClusterCreate.json new file mode 100644 index 000000000000..e24198ac10d4 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersClusterCreate.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "location": "eastus", + "properties": { + "administratorLogin": "examplelogin", + "administratorLoginPassword": "examplepassword", + "backup": { + "backupRetentionDays": 7, + "geoRedundantBackup": "Disabled" + }, + "cluster": { + "clusterSize": 2, + "defaultDatabaseName": "clusterdb" + }, + "createMode": "Create", + "highAvailability": { + "mode": "Disabled" + }, + "network": { + "publicNetworkAccess": "Disabled" + }, + "storage": { + "autoGrow": "Disabled", + "storageSizeGB": 256, + "tier": "P15" + }, + "version": "16" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_CreateOrUpdate", + "title": "Create a new elastic cluster." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateGeoRestoreWithDataEncryptionEnabled.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateGeoRestoreWithDataEncryptionEnabled.json new file mode 100644 index 000000000000..a713d72c0b58 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateGeoRestoreWithDataEncryptionEnabled.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplegeoredundantidentity": {}, + "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity": {} + } + }, + "location": "eastus", + "properties": { + "createMode": "GeoRestore", + "dataEncryption": { + "type": "AzureKeyVault", + "geoBackupKeyURI": "https://examplegeoredundantkeyvault.vault.azure.net/keys/examplekey/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy", + "geoBackupUserAssignedIdentityId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplegeoredundantidentity", + "primaryKeyURI": "https://exampleprimarykeyvault.vault.azure.net/keys/examplekey/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "primaryUserAssignedIdentityId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity" + }, + "pointInTimeUTC": "2025-06-01T18:35:22.123456Z", + "sourceServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/examplesourceserver" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_CreateOrUpdate", + "title": "Create a new server using a restore of a geographically redundant backup of an existing server, with data encryption based on customer managed key." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateGeoRestoreWithDataEncryptionEnabledAutoUpdate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateGeoRestoreWithDataEncryptionEnabledAutoUpdate.json new file mode 100644 index 000000000000..354781773738 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateGeoRestoreWithDataEncryptionEnabledAutoUpdate.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplegeoredundantidentity": {}, + "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity": {} + } + }, + "location": "eastus", + "properties": { + "createMode": "GeoRestore", + "dataEncryption": { + "type": "AzureKeyVault", + "geoBackupKeyURI": "https://examplegeoredundantkeyvault.vault.azure.net/keys/examplekey", + "geoBackupUserAssignedIdentityId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplegeoredundantidentity", + "primaryKeyURI": "https://exampleprimarykeyvault.vault.azure.net/keys/examplekey", + "primaryUserAssignedIdentityId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity" + }, + "pointInTimeUTC": "2025-06-01T18:35:22.123456Z", + "sourceServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/examplesourceserver" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_CreateOrUpdate", + "title": "Create a new server using a restore of a geographically redundant backup of an existing server, with data encryption based on customer managed key with automatic key version update." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateInMicrosoftOwnedVirtualNetworkWithZoneRedundantHighAvailability.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateInMicrosoftOwnedVirtualNetworkWithZoneRedundantHighAvailability.json new file mode 100644 index 000000000000..8b4daedf0a17 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateInMicrosoftOwnedVirtualNetworkWithZoneRedundantHighAvailability.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "administratorLoginPassword": "examplepassword", + "availabilityZone": "1", + "backup": { + "backupRetentionDays": 7, + "geoRedundantBackup": "Enabled" + }, + "createMode": "Create", + "highAvailability": { + "mode": "ZoneRedundant" + }, + "network": { + "publicNetworkAccess": "Enabled" + }, + "storage": { + "autoGrow": "Disabled", + "storageSizeGB": 512, + "tier": "P20" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + }, + "tags": { + "InCustomerVnet": "false", + "InMicrosoftVnet": "true" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_CreateOrUpdate", + "title": "Create a new server in Microsoft owned virtual network with zone redundant high availability." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateInYourOwnVirtualNetworkWithSameZoneHighAvailability.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateInYourOwnVirtualNetworkWithSameZoneHighAvailability.json new file mode 100644 index 000000000000..ffa1e0343367 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateInYourOwnVirtualNetworkWithSameZoneHighAvailability.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "administratorLoginPassword": "examplepassword", + "availabilityZone": "1", + "backup": { + "backupRetentionDays": 7, + "geoRedundantBackup": "Enabled" + }, + "createMode": "Create", + "highAvailability": { + "mode": "SameZone" + }, + "network": { + "delegatedSubnetResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.Network/virtualNetworks/examplevirtualnetwork/subnets/examplesubnet", + "privateDnsZoneArmResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.Network/privateDnsZones/exampleprivatednszone.private.postgres.database" + }, + "storage": { + "autoGrow": "Disabled", + "storageSizeGB": 512, + "tier": "P20" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + }, + "tags": { + "InCustomerVnet": "true", + "InMicrosoftVnet": "false" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_CreateOrUpdate", + "title": "Create a new server in your own virtual network with same zone high availability." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreatePointInTimeRestore.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreatePointInTimeRestore.json new file mode 100644 index 000000000000..18c6feb8c1ca --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreatePointInTimeRestore.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "location": "eastus", + "properties": { + "createMode": "PointInTimeRestore", + "pointInTimeUTC": "2025-06-01T18:35:22.123456Z", + "sourceServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/examplesourceserver" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_CreateOrUpdate", + "title": "Create a new server using a point in time restore of a backup of an existing server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateReplica.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateReplica.json new file mode 100644 index 000000000000..2996e91e44e0 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateReplica.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity": {} + } + }, + "location": "eastus", + "properties": { + "createMode": "Replica", + "dataEncryption": { + "type": "AzureKeyVault", + "geoBackupKeyURI": "", + "geoBackupUserAssignedIdentityId": "", + "primaryKeyURI": "https://exampleprimarykeyvault.vault.azure.net/keys/examplekey/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "primaryUserAssignedIdentityId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity" + }, + "pointInTimeUTC": "2025-06-01T18:35:22.123456Z", + "sourceServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/examplesourceserver" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_CreateOrUpdate", + "title": "Create a read replica of an existing server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateReviveDropped.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateReviveDropped.json new file mode 100644 index 000000000000..6ee3dcffaa41 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateReviveDropped.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "location": "eastus", + "properties": { + "createMode": "ReviveDropped", + "pointInTimeUTC": "2025-06-01T18:30:22.123456Z", + "sourceServerResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampledeletedserver" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_CreateOrUpdate", + "title": "Create a new server using a backup of a server that was deleted or dropped recently." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateWithDataEncryptionEnabled.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateWithDataEncryptionEnabled.json new file mode 100644 index 000000000000..5f51cad0415f --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateWithDataEncryptionEnabled.json @@ -0,0 +1,61 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity": {} + } + }, + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "administratorLoginPassword": "examplepassword", + "availabilityZone": "1", + "backup": { + "backupRetentionDays": 7, + "geoRedundantBackup": "Disabled" + }, + "createMode": "Create", + "dataEncryption": { + "type": "AzureKeyVault", + "geoBackupKeyURI": "", + "geoBackupUserAssignedIdentityId": "", + "primaryKeyURI": "https://exampleprimarykeyvault.vault.azure.net/keys/examplekey/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "primaryUserAssignedIdentityId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity" + }, + "highAvailability": { + "mode": "ZoneRedundant" + }, + "network": { + "delegatedSubnetResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.Network/virtualNetworks/examplevirtualnetwork/subnets/examplesubnet", + "privateDnsZoneArmResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourcegroups/exampleresourcegroup/providers/Microsoft.Network/privateDnsZones/exampleprivatednszone.postgres.database.azure.com" + }, + "storage": { + "autoGrow": "Disabled", + "storageSizeGB": 512, + "tier": "P20" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_CreateOrUpdate", + "title": "Create a new server with data encryption based on customer managed key." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateWithDataEncryptionEnabledAutoUpdate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateWithDataEncryptionEnabledAutoUpdate.json new file mode 100644 index 000000000000..528ff5bb8920 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateWithDataEncryptionEnabledAutoUpdate.json @@ -0,0 +1,61 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity": {} + } + }, + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "administratorLoginPassword": "examplepassword", + "availabilityZone": "1", + "backup": { + "backupRetentionDays": 7, + "geoRedundantBackup": "Disabled" + }, + "createMode": "Create", + "dataEncryption": { + "type": "AzureKeyVault", + "geoBackupKeyURI": "", + "geoBackupUserAssignedIdentityId": "", + "primaryKeyURI": "https://exampleprimarykeyvault.vault.azure.net/keys/examplekey", + "primaryUserAssignedIdentityId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity" + }, + "highAvailability": { + "mode": "ZoneRedundant" + }, + "network": { + "delegatedSubnetResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.Network/virtualNetworks/examplevirtualnetwork/subnets/examplesubnet", + "privateDnsZoneArmResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourcegroups/exampleresourcegroup/providers/Microsoft.Network/privateDnsZones/exampleprivatednszone.postgres.database.azure.com" + }, + "storage": { + "autoGrow": "Disabled", + "storageSizeGB": 512, + "tier": "P20" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_CreateOrUpdate", + "title": "Create a new server with data encryption based on customer managed key with automatic key version update." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateWithMicrosoftEntraEnabledInYourOwnVirtualNetworkWithoutHighAvailability.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateWithMicrosoftEntraEnabledInYourOwnVirtualNetworkWithoutHighAvailability.json new file mode 100644 index 000000000000..50e6added526 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersCreateWithMicrosoftEntraEnabledInYourOwnVirtualNetworkWithoutHighAvailability.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "administratorLoginPassword": "examplepassword", + "authConfig": { + "activeDirectoryAuth": "Enabled", + "passwordAuth": "Enabled", + "tenantId": "tttttt-tttt-tttt-tttt-tttttttttttt" + }, + "availabilityZone": "1", + "backup": { + "backupRetentionDays": 7, + "geoRedundantBackup": "Disabled" + }, + "createMode": "Create", + "dataEncryption": { + "type": "SystemManaged" + }, + "highAvailability": { + "mode": "Disabled" + }, + "network": { + "delegatedSubnetResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.Network/virtualNetworks/examplevirtualnetwork/subnets/examplesubnet", + "privateDnsZoneArmResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourcegroups/exampleresourcegroup/providers/Microsoft.Network/privateDnsZones/exampleprivatednszone.postgres.database.azure.com" + }, + "storage": { + "autoGrow": "Disabled", + "storageSizeGB": 512, + "tier": "P20" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_CreateOrUpdate", + "title": "Create a new server with Microsoft Entra authentication enabled in your own virtual network and without high availability." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersDelete.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersDelete.json new file mode 100644 index 000000000000..c658be5bc457 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersDelete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + }, + "204": {} + }, + "operationId": "Servers_Delete", + "title": "Delete or drop an existing server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersGet.json new file mode 100644 index 000000000000..5b40a3368e8a --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersGet.json @@ -0,0 +1,74 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "exampleserver", + "type": "Microsoft.DBforPostgreSQL/flexibleServers", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver", + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "authConfig": { + "activeDirectoryAuth": "Disabled", + "passwordAuth": "Enabled" + }, + "availabilityZone": "1", + "backup": { + "backupRetentionDays": 7, + "earliestRestoreDate": "2025-06-01T18:35:22.123456Z", + "geoRedundantBackup": "Enabled" + }, + "dataEncryption": { + "type": "SystemManaged" + }, + "fullyQualifiedDomainName": "exampleserver.postgres.database.azure.com", + "highAvailability": { + "mode": "Disabled", + "state": "NotEnabled" + }, + "maintenanceWindow": { + "customWindow": "Disabled", + "dayOfWeek": 0, + "startHour": 0, + "startMinute": 0 + }, + "minorVersion": "5", + "network": { + "publicNetworkAccess": "Enabled" + }, + "privateEndpointConnections": [], + "replica": { + "capacity": 5, + "role": "Primary" + }, + "replicaCapacity": 5, + "replicationRole": "Primary", + "state": "Ready", + "storage": { + "type": "", + "autoGrow": "Disabled", + "iops": 500, + "storageSizeGB": 128, + "tier": "P10" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + }, + "systemData": { + "createdAt": "2025-06-01T18:30:22.123456Z" + } + } + } + }, + "operationId": "Servers_Get", + "title": "Get information about an existing server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersGetWithPrivateEndpoints.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersGetWithPrivateEndpoints.json new file mode 100644 index 000000000000..01f9d07ce530 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersGetWithPrivateEndpoints.json @@ -0,0 +1,81 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "exampleserver", + "type": "Microsoft.DBforPostgreSQL/flexibleServers", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver", + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "authConfig": { + "activeDirectoryAuth": "Disabled", + "passwordAuth": "Enabled" + }, + "availabilityZone": "1", + "backup": { + "backupRetentionDays": 7, + "earliestRestoreDate": "2025-06-01T18:35:22.123456Z", + "geoRedundantBackup": "Disabled" + }, + "fullyQualifiedDomainName": "exampleserver.postgres.database.azure.com", + "highAvailability": { + "mode": "Disabled", + "state": "NotEnabled" + }, + "maintenanceWindow": { + "customWindow": "Disabled", + "dayOfWeek": 0, + "startHour": 0, + "startMinute": 0 + }, + "minorVersion": "5", + "network": { + "publicNetworkAccess": "Enabled" + }, + "privateEndpointConnections": [ + { + "name": "exampleprivateendpoint.40c899c7-5847-493e-9c9e-d0a0c90aaf92", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/privateEndpointConnections", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/privateEndpointConnections/exampleprivateendpoint.40c899c7-5847-493e-9c9e-d0a0c90aaf92", + "properties": { + "groupIds": [ + "postgresqlServer" + ], + "privateEndpoint": { + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleprivateendpointresourcegroup/providers/Microsoft.Network/privateEndpoints/exampleprivateendpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ], + "state": "Ready", + "storage": { + "autoGrow": "Disabled", + "iops": 2300, + "storageSizeGB": 512, + "tier": "P20" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + } + } + } + }, + "operationId": "Servers_Get", + "title": "Get information about an existing server that isn't integrated into a virtual network provided by customer and has private endpoint connections." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersGetWithVnet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersGetWithVnet.json new file mode 100644 index 000000000000..97e7e851e439 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersGetWithVnet.json @@ -0,0 +1,79 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "name": "exampleserver", + "type": "Microsoft.DBforPostgreSQL/flexibleServers", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver", + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "authConfig": { + "activeDirectoryAuth": "Disabled", + "passwordAuth": "Enabled" + }, + "availabilityZone": "1", + "backup": { + "backupRetentionDays": 7, + "earliestRestoreDate": "2025-06-01T18:35:22.123456Z", + "geoRedundantBackup": "Enabled" + }, + "dataEncryption": { + "type": "SystemManaged" + }, + "fullyQualifiedDomainName": "exampleserver.postgres.database.azure.com", + "highAvailability": { + "mode": "ZoneRedundant", + "standbyAvailabilityZone": "2", + "state": "Healthy" + }, + "maintenanceWindow": { + "customWindow": "Disabled", + "dayOfWeek": 0, + "startHour": 0, + "startMinute": 0 + }, + "minorVersion": "5", + "network": { + "delegatedSubnetResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.Network/virtualNetworks/examplevirtualnetwork/subnets/examplesubnet", + "privateDnsZoneArmResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.Network/privateDnsZones/exampleserver.private.postgres.database.azure.com", + "publicNetworkAccess": "Disabled" + }, + "replica": { + "capacity": 5, + "role": "Primary" + }, + "replicaCapacity": 5, + "replicationRole": "Primary", + "state": "Ready", + "storage": { + "type": "", + "autoGrow": "Disabled", + "iops": 2300, + "storageSizeGB": 512, + "tier": "P20" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + }, + "systemData": { + "createdAt": "2025-06-01T18:30:22.123456Z" + }, + "tags": { + "VnetServer": "1" + } + } + } + }, + "operationId": "Servers_Get", + "title": "Get information about an existing server that is integrated into a virtual network provided by customer." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersListByResourceGroup.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersListByResourceGroup.json new file mode 100644 index 000000000000..e71baca836ab --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersListByResourceGroup.json @@ -0,0 +1,160 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers?api-version=2025-06-01-preview&$skiptoken=skiptoken", + "value": [ + { + "name": "exampleserver1", + "type": "Microsoft.DBforPostgreSQL/flexibleServers", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver1", + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "authConfig": { + "activeDirectoryAuth": "Enabled", + "passwordAuth": "Enabled", + "tenantId": "tttttt-tttt-tttt-tttt-tttttttttttt" + }, + "availabilityZone": "1", + "backup": { + "backupRetentionDays": 7, + "earliestRestoreDate": "2025-06-01T18:35:22.123456Z", + "geoRedundantBackup": "Enabled" + }, + "dataEncryption": { + "type": "SystemManaged" + }, + "fullyQualifiedDomainName": "exampleserver1.postgres.database.azure.com", + "highAvailability": { + "mode": "ZoneRedundant", + "standbyAvailabilityZone": "2", + "state": "Healthy" + }, + "maintenanceWindow": { + "customWindow": "Disabled", + "dayOfWeek": 0, + "startHour": 0, + "startMinute": 0 + }, + "minorVersion": "5", + "network": { + "delegatedSubnetResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.Network/virtualNetworks/examplevirtualnetwork/subnets/examplesubnet", + "privateDnsZoneArmResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.Network/privateDnsZones/exampleserver1.private.postgres.database.azure.com", + "publicNetworkAccess": "Disabled" + }, + "replica": { + "capacity": 5, + "role": "Primary" + }, + "replicaCapacity": 5, + "replicationRole": "Primary", + "state": "Ready", + "storage": { + "type": "", + "autoGrow": "Disabled", + "iops": 2300, + "storageSizeGB": 512, + "tier": "P20" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + }, + "systemData": { + "createdAt": "2025-06-01T18:30:22.123456Z" + }, + "tags": { + "VnetServer": "1" + } + }, + { + "name": "exampleserver2", + "type": "Microsoft.DBforPostgreSQL/flexibleServers", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver2", + "identity": { + "type": "SystemAssigned,UserAssigned", + "principalId": "rrrrrrrr-rrrr-rrrr-rrrr-rrrrrrrrrrrr", + "tenantId": "tttttt-tttt-tttt-tttt-tttttttttttt", + "userAssignedIdentities": { + "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity": { + "clientId": "tttttt-tttt-tttt-tttt-tttttttttttt", + "principalId": "pppppppp-pppp-pppp-pppp-pppppppppppp" + } + } + }, + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "authConfig": { + "activeDirectoryAuth": "Enabled", + "passwordAuth": "Enabled", + "tenantId": "tttttt-tttt-tttt-tttt-tttttttttttt" + }, + "availabilityZone": "1", + "backup": { + "backupRetentionDays": 7, + "earliestRestoreDate": "2025-06-01T19:35:22.123456Z", + "geoRedundantBackup": "Disabled" + }, + "dataEncryption": { + "type": "AzureKeyVault", + "primaryEncryptionKeyStatus": "Valid", + "primaryKeyURI": "https://examplekeyvault.vault.azure.net/keys/examplekey/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "primaryUserAssignedIdentityId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity" + }, + "fullyQualifiedDomainName": "exampleserver2.postgres.database.azure.com", + "highAvailability": { + "mode": "Disabled", + "state": "NotEnabled" + }, + "maintenanceWindow": { + "customWindow": "Disabled", + "dayOfWeek": 0, + "startHour": 0, + "startMinute": 0 + }, + "minorVersion": "5", + "network": { + "publicNetworkAccess": "Enabled" + }, + "privateEndpointConnections": [], + "replica": { + "capacity": 5, + "role": "Primary" + }, + "replicaCapacity": 5, + "replicationRole": "Primary", + "state": "Ready", + "storage": { + "type": "", + "autoGrow": "Disabled", + "iops": 500, + "storageSizeGB": 128, + "tier": "P10" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + }, + "systemData": { + "createdAt": "2025-06-01T19:30:22.123456Z" + }, + "tags": {} + } + ] + } + } + }, + "operationId": "Servers_ListByResourceGroup", + "title": "List all servers in a resource group." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersListBySubscription.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersListBySubscription.json new file mode 100644 index 000000000000..eccf7e4247fc --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersListBySubscription.json @@ -0,0 +1,283 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/flexibleServers?api-version=2025-06-01-preview&$skiptoken=skiptoken", + "value": [ + { + "name": "exampleserver1", + "type": "Microsoft.DBforPostgreSQL/flexibleServers", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup1/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver1", + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "authConfig": { + "activeDirectoryAuth": "Enabled", + "passwordAuth": "Enabled", + "tenantId": "tttttt-tttt-tttt-tttt-tttttttttttt" + }, + "availabilityZone": "1", + "backup": { + "backupRetentionDays": 7, + "earliestRestoreDate": "2025-06-01T18:35:22.123456Z", + "geoRedundantBackup": "Enabled" + }, + "dataEncryption": { + "type": "SystemManaged" + }, + "fullyQualifiedDomainName": "exampleserver1.postgres.database.azure.com", + "highAvailability": { + "mode": "ZoneRedundant", + "standbyAvailabilityZone": "2", + "state": "Healthy" + }, + "maintenanceWindow": { + "customWindow": "Disabled", + "dayOfWeek": 0, + "startHour": 0, + "startMinute": 0 + }, + "minorVersion": "5", + "network": { + "delegatedSubnetResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup1/providers/Microsoft.Network/virtualNetworks/examplevirtualnetwork1/subnets/examplesubnet1", + "privateDnsZoneArmResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup1/providers/Microsoft.Network/privateDnsZones/exampleprivatednszone1.postgres.database.azure.com", + "publicNetworkAccess": "Disabled" + }, + "replica": { + "capacity": 5, + "role": "Primary" + }, + "replicaCapacity": 5, + "replicationRole": "Primary", + "state": "Ready", + "storage": { + "type": "", + "autoGrow": "Disabled", + "iops": 2300, + "storageSizeGB": 512, + "tier": "P20" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + }, + "systemData": { + "createdAt": "2025-06-01T18:30:22.123456Z" + }, + "tags": { + "VnetServer": "1" + } + }, + { + "name": "exampleserver2", + "type": "Microsoft.DBforPostgreSQL/flexibleServers", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup2/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver2", + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "authConfig": { + "activeDirectoryAuth": "Enabled", + "passwordAuth": "Enabled", + "tenantId": "tttttt-tttt-tttt-tttt-tttttttttttt" + }, + "availabilityZone": "2", + "backup": { + "backupRetentionDays": 7, + "earliestRestoreDate": "2025-06-01T19:35:22.123456Z", + "geoRedundantBackup": "Enabled" + }, + "dataEncryption": { + "type": "SystemManaged" + }, + "fullyQualifiedDomainName": "exampleserver2.postgres.database.azure.com", + "highAvailability": { + "mode": "ZoneRedundant", + "standbyAvailabilityZone": "1", + "state": "Healthy" + }, + "maintenanceWindow": { + "customWindow": "Disabled", + "dayOfWeek": 0, + "startHour": 0, + "startMinute": 0 + }, + "minorVersion": "5", + "network": { + "publicNetworkAccess": "Enabled" + }, + "privateEndpointConnections": [], + "replica": { + "capacity": 5, + "role": "Primary" + }, + "replicaCapacity": 5, + "replicationRole": "Primary", + "state": "Ready", + "storage": { + "type": "", + "autoGrow": "Disabled", + "iops": 500, + "storageSizeGB": 128, + "tier": "P10" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + }, + "systemData": { + "createdAt": "2025-06-01T19:30:22.123456Z" + }, + "tags": {} + }, + { + "name": "exampleserver3", + "type": "Microsoft.DBforPostgreSQL/flexibleServers", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup3/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver3", + "identity": { + "type": "SystemAssigned,UserAssigned", + "principalId": "rrrrrrrr-rrrr-rrrr-rrrr-rrrrrrrrrrrr", + "tenantId": "tttttt-tttt-tttt-tttt-tttttttttttt", + "userAssignedIdentities": { + "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity3": { + "clientId": "tttttt-tttt-tttt-tttt-tttttttttttt", + "principalId": "pppppppp-pppp-pppp-pppp-pppppppppppp" + } + } + }, + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "authConfig": { + "activeDirectoryAuth": "Enabled", + "passwordAuth": "Enabled", + "tenantId": "tttttt-tttt-tttt-tttt-tttttttttttt" + }, + "availabilityZone": "1", + "backup": { + "backupRetentionDays": 7, + "earliestRestoreDate": "2025-06-01T20:35:22.123456Z", + "geoRedundantBackup": "Disabled" + }, + "dataEncryption": { + "type": "AzureKeyVault", + "primaryEncryptionKeyStatus": "Valid", + "primaryKeyURI": "https://examplekeyvault3.vault.azure.net/keys/examplekey/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "primaryUserAssignedIdentityId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity3" + }, + "fullyQualifiedDomainName": "exampleserver3.postgres.database.azure.com", + "highAvailability": { + "mode": "Disabled", + "state": "NotEnabled" + }, + "maintenanceWindow": { + "customWindow": "Disabled", + "dayOfWeek": 0, + "startHour": 0, + "startMinute": 0 + }, + "minorVersion": "5", + "network": { + "publicNetworkAccess": "Enabled" + }, + "privateEndpointConnections": [], + "replica": { + "capacity": 5, + "role": "Primary" + }, + "replicaCapacity": 5, + "replicationRole": "Primary", + "state": "Ready", + "storage": { + "type": "", + "autoGrow": "Disabled", + "iops": 500, + "storageSizeGB": 128, + "tier": "P10" + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + }, + "systemData": { + "createdAt": "2025-06-01T20:30:22.123456Z" + }, + "tags": {} + }, + { + "name": "exampleserver4", + "type": "Microsoft.DBforPostgreSQL/flexibleServers", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup4/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver4", + "location": "eastus", + "properties": { + "administratorLogin": "exampleadministratorlogin", + "authConfig": { + "activeDirectoryAuth": "Disabled", + "passwordAuth": "Enabled" + }, + "availabilityZone": "2", + "backup": { + "backupRetentionDays": 7, + "earliestRestoreDate": "2025-06-01T21:35:22.123456Z", + "geoRedundantBackup": "Disabled" + }, + "dataEncryption": { + "type": "SystemManaged" + }, + "fullyQualifiedDomainName": "exampleserver4.postgres.database.azure.com", + "highAvailability": { + "mode": "Disabled", + "state": "NotEnabled" + }, + "maintenanceWindow": { + "customWindow": "Disabled", + "dayOfWeek": 0, + "startHour": 0, + "startMinute": 0 + }, + "minorVersion": "5", + "network": { + "publicNetworkAccess": "Enabled" + }, + "privateEndpointConnections": [], + "replica": { + "capacity": 5, + "role": "Primary" + }, + "replicaCapacity": 5, + "replicationRole": "Primary", + "state": "Ready", + "storage": { + "type": "PremiumV2_LRS", + "autoGrow": "Disabled", + "iops": 3000, + "storageSizeGB": 512, + "throughput": 125 + }, + "version": "17" + }, + "sku": { + "name": "Standard_D4ds_v5", + "tier": "GeneralPurpose" + }, + "systemData": { + "createdAt": "2025-06-01T21:30:22.123456Z" + }, + "tags": {} + } + ] + } + } + }, + "operationId": "Servers_ListBySubscription", + "title": "List all servers in a subscription." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsForcedStandaloneServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsForcedStandaloneServer.json new file mode 100644 index 000000000000..28434587392c --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsForcedStandaloneServer.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "properties": { + "replica": { + "promoteMode": "Standalone", + "promoteOption": "Forced" + } + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Update", + "title": "Promote a read replica to a standalone server with forced data synchronization. Meaning that it doesn't wait for data in the read replica to be synchronized with its source server before it initiates the promotion to a standalone server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsForcedSwitchover.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsForcedSwitchover.json new file mode 100644 index 000000000000..c86625705be0 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsForcedSwitchover.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "properties": { + "replica": { + "promoteMode": "Switchover", + "promoteOption": "Forced" + } + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Update", + "title": "Switch over a read replica to primary server with forced data synchronization. Meaning that it doesn't wait for data in the read replica to be synchronized with its source server before it initiates the switching of roles between the read replica and the primary server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsPlannedStandaloneServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsPlannedStandaloneServer.json new file mode 100644 index 000000000000..dcf98882b376 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsPlannedStandaloneServer.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "properties": { + "replica": { + "promoteMode": "Standalone", + "promoteOption": "Planned" + } + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Update", + "title": "Promote a read replica to a standalone server with planned data synchronization. Meaning that it waits for data in the read replica to be fully synchronized with its source server before it initiates the promotion to a standalone server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsPlannedSwitchover.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsPlannedSwitchover.json new file mode 100644 index 000000000000..6a842c38e062 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersPromoteReplicaAsPlannedSwitchover.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "properties": { + "replica": { + "promoteMode": "Switchover", + "promoteOption": "Planned" + } + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Update", + "title": "Switch over a read replica to primary server with planned data synchronization. Meaning that it waits for data in the read replica to be fully synchronized with its source server before it initiates the switching of roles between the read replica and the primary server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersRestart.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersRestart.json new file mode 100644 index 000000000000..5241659609dc --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersRestart.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Restart", + "title": "Restart PostgreSQL database engine in a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersRestartWithFailover.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersRestartWithFailover.json new file mode 100644 index 000000000000..d42f549b1125 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersRestartWithFailover.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "failoverMode": "ForcedFailover", + "restartWithFailover": true + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Restart", + "title": "Restart PostgreSQL database engine in a server with a forced failover to standby server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersStart.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersStart.json new file mode 100644 index 000000000000..e954b2a83863 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersStart.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Start", + "title": "Start a stopped server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersStop.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersStop.json new file mode 100644 index 000000000000..9c25d884877c --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersStop.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Stop", + "title": "Stop a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdate.json new file mode 100644 index 000000000000..f4816d52175d --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdate.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "properties": { + "administratorLoginPassword": "examplenewpassword", + "backup": { + "backupRetentionDays": 20 + }, + "createMode": "Update", + "storage": { + "autoGrow": "Enabled", + "storageSizeGB": 1024, + "tier": "P30" + } + }, + "sku": { + "name": "Standard_D8s_v3", + "tier": "GeneralPurpose" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Update", + "title": "Update an existing server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithCustomMaintenanceWindow.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithCustomMaintenanceWindow.json new file mode 100644 index 000000000000..cde73e3b50bd --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithCustomMaintenanceWindow.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "properties": { + "createMode": "Update", + "maintenanceWindow": { + "customWindow": "Enabled", + "dayOfWeek": 0, + "startHour": 8, + "startMinute": 0 + } + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Update", + "title": "Update an existing server with custom maintenance window." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithDataEncryptionEnabled.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithDataEncryptionEnabled.json new file mode 100644 index 000000000000..406938fb5243 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithDataEncryptionEnabled.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplegeoredundantidentity": {}, + "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity": {} + } + }, + "properties": { + "administratorLoginPassword": "examplenewpassword", + "backup": { + "backupRetentionDays": 20 + }, + "createMode": "Update", + "dataEncryption": { + "type": "AzureKeyVault", + "geoBackupKeyURI": "https://examplegeoredundantkeyvault.vault.azure.net/keys/examplekey/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy", + "geoBackupUserAssignedIdentityId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplegeoredundantidentity", + "primaryKeyURI": "https://exampleprimarykeyvault.vault.azure.net/keys/examplekey/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "primaryUserAssignedIdentityId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity" + } + }, + "sku": { + "name": "Standard_D8s_v3", + "tier": "GeneralPurpose" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Update", + "title": "Update an existing server with data encryption based on customer managed key." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithDataEncryptionEnabledAutoUpdate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithDataEncryptionEnabledAutoUpdate.json new file mode 100644 index 000000000000..9f9c3d9ad02b --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithDataEncryptionEnabledAutoUpdate.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplegeoredundantidentity": {}, + "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity": {} + } + }, + "properties": { + "administratorLoginPassword": "examplenewpassword", + "backup": { + "backupRetentionDays": 20 + }, + "createMode": "Update", + "dataEncryption": { + "type": "AzureKeyVault", + "geoBackupKeyURI": "https://examplegeoredundantkeyvault.vault.azure.net/keys/examplekey", + "geoBackupUserAssignedIdentityId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplegeoredundantidentity", + "primaryKeyURI": "https://exampleprimarykeyvault.vault.azure.net/keys/examplekey", + "primaryUserAssignedIdentityId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/exampleprimaryidentity" + } + }, + "sku": { + "name": "Standard_D8s_v3", + "tier": "GeneralPurpose" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Update", + "title": "Update an existing server with data encryption based on customer managed key with automatic key version update." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithMajorVersionUpgrade.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithMajorVersionUpgrade.json new file mode 100644 index 000000000000..38f60b9ff0de --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithMajorVersionUpgrade.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "properties": { + "createMode": "Update", + "version": "17" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Update", + "title": "Update an existing server to upgrade the major version of PostgreSQL database engine." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithMicrosoftEntraEnabled.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithMicrosoftEntraEnabled.json new file mode 100644 index 000000000000..12910bda969c --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/ServersUpdateWithMicrosoftEntraEnabled.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "properties": { + "administratorLoginPassword": "examplenewpassword", + "authConfig": { + "activeDirectoryAuth": "Enabled", + "passwordAuth": "Enabled", + "tenantId": "tttttt-tttt-tttt-tttt-tttttttttttt" + }, + "backup": { + "backupRetentionDays": 20 + }, + "createMode": "Update", + "storage": { + "autoGrow": "Disabled", + "storageSizeGB": 1024, + "tier": "P30" + } + }, + "sku": { + "name": "Standard_D8s_v3", + "tier": "GeneralPurpose" + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "Servers_Update", + "title": "Update an existing server with Microsoft Entra authentication enabled." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsGet.json new file mode 100644 index 000000000000..eddcb9a5a50e --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsGet.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "tuningOption": "index" + }, + "responses": { + "200": { + "body": { + "name": "index", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningoptions", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/tuningoptions/index" + } + } + }, + "operationId": "TuningOptions_Get", + "title": "Get the tuning options of a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListByServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListByServer.json new file mode 100644 index 000000000000..1d6d6a1f413d --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListByServer.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "index", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningoptions", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/tuningoptions/index" + }, + { + "name": "table", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningoptions", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/tuningoptions/table" + } + ] + } + } + }, + "operationId": "TuningOptions_ListByServer", + "title": "List the tuning options of a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListIndexRecommendations.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListIndexRecommendations.json new file mode 100644 index 000000000000..a5a3c35a5f86 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListIndexRecommendations.json @@ -0,0 +1,129 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "tuningOption": "index" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "CreateIndex_ecommerce_public_ps_suppkey_idx", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/index", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/tuningOptions/index/recommendations/1", + "kind": "", + "properties": { + "analyzedWorkload": { + "endTime": "2025-06-01T20:30:22.123456Z", + "queryCount": 25, + "startTime": "2025-06-01T19:30:22.123456Z" + }, + "estimatedImpact": [ + { + "absoluteValue": 15.3671875, + "dimensionName": "IndexSize", + "unit": "MB" + }, + { + "absoluteValue": 99.67668452400453, + "dimensionName": "QueryCostImprovement", + "queryId": -3775242682326862300, + "unit": "Percentage" + }, + { + "absoluteValue": 85.56742436827899, + "dimensionName": "QueryCostImprovement", + "queryId": 6829938984138799000, + "unit": "Percentage" + } + ], + "implementationDetails": { + "method": "SQL", + "script": "create index concurrently ps_suppkey_idx on public.partsupp(ps_suppkey)" + }, + "improvedQueryIds": [ + -3775242682326862300, + 6829938984138799000 + ], + "initialRecommendedTime": "2025-06-01T20:30:22.123456Z", + "lastRecommendedTime": "2025-06-01T20:30:22.123456Z", + "recommendationReason": "Column \"partsupp\".\"ps_suppkey\" appear in Join On clause(s) in query -3775242682326862475; Column \"partsupp\".\"ps_suppkey\" appear in Join On clause(s) in query 6829938984138799352;", + "recommendationType": "CreateIndex", + "timesRecommended": 1, + "details": { + "schema": "public", + "databaseName": "ecommerce", + "indexColumns": [ + "\"partsupp\".\"ps_suppkey\"" + ], + "indexName": "ps_suppkey_idx", + "indexType": "BTREE", + "table": "partsupp" + } + } + }, + { + "name": "CreateIndex_ecommerce_public_ps_partkey_idx", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/index", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/tuningOptions/index/recommendations/2", + "kind": "", + "properties": { + "analyzedWorkload": { + "endTime": "2025-06-01T20:30:22.123456Z", + "queryCount": 25, + "startTime": "2025-06-01T19:30:22.123456Z" + }, + "estimatedImpact": [ + { + "absoluteValue": 15.3671875, + "dimensionName": "IndexSize", + "unit": "MB" + }, + { + "absoluteValue": 99.67668452400453, + "dimensionName": "QueryCostImprovement", + "queryId": -3775242682326862300, + "unit": "Percentage" + }, + { + "absoluteValue": 79.06603712430707, + "dimensionName": "QueryCostImprovement", + "queryId": 4735984994430715000, + "unit": "Percentage" + } + ], + "implementationDetails": { + "method": "SQL", + "script": "create index concurrently ps_partkey_idx on public.partsupp(ps_partkey)" + }, + "improvedQueryIds": [ + -3775242682326862300, + 4735984994430715000 + ], + "initialRecommendedTime": "2025-06-01T20:30:22.123456Z", + "lastRecommendedTime": "2025-06-01T20:30:22.123456Z", + "recommendationReason": "Column \"partsupp\".\"ps_partkey\" appear in Equal Predicate clause(s) in query -3775242682326862475; Column \"partsupp\".\"ps_partkey\" appear in Join On clause(s) in query 4735984994430714735;", + "recommendationType": "CreateIndex", + "timesRecommended": 1, + "details": { + "schema": "public", + "databaseName": "ecommerce", + "indexColumns": [ + "\"partsupp\".\"ps_partkey\"" + ], + "indexName": "ps_partkey_idx", + "indexType": "BTREE", + "table": "partsupp" + } + } + } + ] + } + } + }, + "operationId": "TuningOptions_ListRecommendations", + "title": "List available index recommendations." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListIndexRecommendationsFilteredForCreateIndex.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListIndexRecommendationsFilteredForCreateIndex.json new file mode 100644 index 000000000000..db338b438c5f --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListIndexRecommendationsFilteredForCreateIndex.json @@ -0,0 +1,130 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "recommendationType": "CreateIndex", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "tuningOption": "index" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "CreateIndex_ecommerce_public_ps_suppkey_idx", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/index", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/tuningOptions/index/recommendations/1", + "kind": "", + "properties": { + "analyzedWorkload": { + "endTime": "2025-06-01T20:30:22.123456Z", + "queryCount": 25, + "startTime": "2025-06-01T19:30:22.123456Z" + }, + "estimatedImpact": [ + { + "absoluteValue": 15.3671875, + "dimensionName": "IndexSize", + "unit": "MB" + }, + { + "absoluteValue": 99.67668452400453, + "dimensionName": "QueryCostImprovement", + "queryId": -3775242682326862300, + "unit": "Percentage" + }, + { + "absoluteValue": 85.56742436827899, + "dimensionName": "QueryCostImprovement", + "queryId": 6829938984138799000, + "unit": "Percentage" + } + ], + "implementationDetails": { + "method": "SQL", + "script": "create index concurrently ps_suppkey_idx on public.partsupp(ps_suppkey)" + }, + "improvedQueryIds": [ + -3775242682326862300, + 6829938984138799000 + ], + "initialRecommendedTime": "2025-06-01T20:30:22.123456Z", + "lastRecommendedTime": "2025-06-01T20:30:22.123456Z", + "recommendationReason": "Column \"partsupp\".\"ps_suppkey\" appear in Join On clause(s) in query -3775242682326862475; Column \"partsupp\".\"ps_suppkey\" appear in Join On clause(s) in query 6829938984138799352;", + "recommendationType": "CreateIndex", + "timesRecommended": 1, + "details": { + "schema": "public", + "databaseName": "ecommerce", + "indexColumns": [ + "\"partsupp\".\"ps_suppkey\"" + ], + "indexName": "ps_suppkey_idx", + "indexType": "BTREE", + "table": "partsupp" + } + } + }, + { + "name": "CreateIndex_ecommerce_public_ps_partkey_idx", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/index", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/tuningOptions/index/recommendations/2", + "kind": "", + "properties": { + "analyzedWorkload": { + "endTime": "2025-06-01T20:30:22.123456Z", + "queryCount": 25, + "startTime": "2025-06-01T19:30:22.123456Z" + }, + "estimatedImpact": [ + { + "absoluteValue": 15.3671875, + "dimensionName": "IndexSize", + "unit": "MB" + }, + { + "absoluteValue": 99.67668452400453, + "dimensionName": "QueryCostImprovement", + "queryId": -3775242682326862300, + "unit": "Percentage" + }, + { + "absoluteValue": 79.06603712430707, + "dimensionName": "QueryCostImprovement", + "queryId": 4735984994430715000, + "unit": "Percentage" + } + ], + "implementationDetails": { + "method": "SQL", + "script": "create index concurrently ps_partkey_idx on public.partsupp(ps_partkey)" + }, + "improvedQueryIds": [ + -3775242682326862300, + 4735984994430715000 + ], + "initialRecommendedTime": "2025-06-01T20:30:22.123456Z", + "lastRecommendedTime": "2025-06-01T20:30:22.123456Z", + "recommendationReason": "Column \"partsupp\".\"ps_partkey\" appear in Equal Predicate clause(s) in query -3775242682326862475; Column \"partsupp\".\"ps_partkey\" appear in Join On clause(s) in query 4735984994430714735;", + "recommendationType": "CreateIndex", + "timesRecommended": 1, + "details": { + "schema": "public", + "databaseName": "ecommerce", + "indexColumns": [ + "\"partsupp\".\"ps_partkey\"" + ], + "indexName": "ps_partkey_idx", + "indexType": "BTREE", + "table": "partsupp" + } + } + } + ] + } + } + }, + "operationId": "TuningOptions_ListRecommendations", + "title": "List available index recommendations, filtered to exclusively get those of CREATE INDEX type." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListTableRecommendations.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListTableRecommendations.json new file mode 100644 index 000000000000..28f19d362e9a --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListTableRecommendations.json @@ -0,0 +1,91 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "tuningOption": "table" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Analyze_postgres_public_nation", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/table", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/tuningOptions/table/recommendations/1", + "kind": "", + "properties": { + "analyzedWorkload": { + "endTime": "2025-06-01T20:30:22.123456Z", + "queryCount": 22, + "startTime": "2025-06-01T19:30:22.123456Z" + }, + "estimatedImpact": [], + "implementationDetails": { + "method": "SQL", + "script": "analyze table public.nation" + }, + "improvedQueryIds": [ + 2071439792137543700, + 7860150533486302000, + 6411979446509506000, + 3219604056681277400, + -360410933364310600, + 6171467644166225000, + 3548728559597612500, + -4753875211349607000, + -8711548294430095000 + ], + "initialRecommendedTime": "2025-06-01T20:30:22.123456Z", + "lastRecommendedTime": "2025-06-01T20:30:22.123456Z", + "recommendationReason": "Table \"nation\" in schema \"public\" is unanalyzed and appears in the following queries: 2071439792137543669, 7860150533486301820, 6411979446509505239, 3219604056681277471, -360410933364310591, 6171467644166224729, 3548728559597612316, -4753875211349607298, -8711548294430094920", + "recommendationType": "Analyze", + "timesRecommended": 1, + "details": { + "schema": "public", + "databaseName": "postgres", + "table": "nation" + } + } + }, + { + "name": "Analyze_postgres_public_region", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/table", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/tuningOptions/table/recommendations/2", + "kind": "", + "properties": { + "analyzedWorkload": { + "endTime": "2025-06-01T20:30:22.123456Z", + "queryCount": 22, + "startTime": "2025-06-01T19:30:22.123456Z" + }, + "estimatedImpact": [], + "implementationDetails": { + "method": "SQL", + "script": "analyze table public.region" + }, + "improvedQueryIds": [ + 3219604056681277400, + 6171467644166225000, + -4753875211349607000 + ], + "initialRecommendedTime": "2025-06-01T20:30:22.123456Z", + "lastRecommendedTime": "2025-06-01T20:30:22.123456Z", + "recommendationReason": "Table \"region\" in schema \"public\" is unanalyzed and appears in the following queries: 3219604056681277471, 6171467644166224729, -4753875211349607298", + "recommendationType": "Analyze", + "timesRecommended": 1, + "details": { + "schema": "public", + "databaseName": "postgres", + "table": "region" + } + } + } + ] + } + } + }, + "operationId": "TuningOptions_ListRecommendations", + "title": "List available table recommendations." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListTableRecommendationsFilteredForAnalyzeTable.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListTableRecommendationsFilteredForAnalyzeTable.json new file mode 100644 index 000000000000..6bad94a57a81 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/TuningOptionsListTableRecommendationsFilteredForAnalyzeTable.json @@ -0,0 +1,92 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "recommendationType": "AnalyzeTable", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "tuningOption": "table" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Analyze_postgres_public_nation", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/table", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/tuningOptions/table/recommendations/1", + "kind": "", + "properties": { + "analyzedWorkload": { + "endTime": "2025-06-01T20:30:22.123456Z", + "queryCount": 22, + "startTime": "2025-06-01T19:30:22.123456Z" + }, + "estimatedImpact": [], + "implementationDetails": { + "method": "SQL", + "script": "analyze table public.nation" + }, + "improvedQueryIds": [ + 2071439792137543700, + 7860150533486302000, + 6411979446509506000, + 3219604056681277400, + -360410933364310600, + 6171467644166225000, + 3548728559597612500, + -4753875211349607000, + -8711548294430095000 + ], + "initialRecommendedTime": "2025-06-01T20:30:22.123456Z", + "lastRecommendedTime": "2025-06-01T20:30:22.123456Z", + "recommendationReason": "Table \"nation\" in schema \"public\" is unanalyzed and appears in the following queries: 2071439792137543669, 7860150533486301820, 6411979446509505239, 3219604056681277471, -360410933364310591, 6171467644166224729, 3548728559597612316, -4753875211349607298, -8711548294430094920", + "recommendationType": "Analyze", + "timesRecommended": 1, + "details": { + "schema": "public", + "databaseName": "postgres", + "table": "nation" + } + } + }, + { + "name": "Analyze_postgres_public_region", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/tuningOptions/table", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/tuningOptions/table/recommendations/2", + "kind": "", + "properties": { + "analyzedWorkload": { + "endTime": "2025-06-01T20:30:22.123456Z", + "queryCount": 22, + "startTime": "2025-06-01T19:30:22.123456Z" + }, + "estimatedImpact": [], + "implementationDetails": { + "method": "SQL", + "script": "analyze table public.region" + }, + "improvedQueryIds": [ + 3219604056681277400, + 6171467644166225000, + -4753875211349607000 + ], + "initialRecommendedTime": "2025-06-01T20:30:22.123456Z", + "lastRecommendedTime": "2025-06-01T20:30:22.123456Z", + "recommendationReason": "Table \"region\" in schema \"public\" is unanalyzed and appears in the following queries: 3219604056681277471, 6171467644166224729, -4753875211349607298", + "recommendationType": "Analyze", + "timesRecommended": 1, + "details": { + "schema": "public", + "databaseName": "postgres", + "table": "region" + } + } + } + ] + } + } + }, + "operationId": "TuningOptions_ListRecommendations", + "title": "List available table recommendations, filtered to exclusively get those of ANALYZE TABLE type." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointCreate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointCreate.json new file mode 100644 index 000000000000..922e96bf08b2 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointCreate.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "properties": { + "endpointType": "ReadWrite", + "members": [ + "exampleprimaryserver" + ] + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "virtualEndpointName": "examplebasename" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "VirtualEndpoints_Create", + "title": "Create a pair of virtual endpoints for a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointDelete.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointDelete.json new file mode 100644 index 000000000000..9d2368eed044 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointDelete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "virtualEndpointName": "examplebasename" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + }, + "204": {} + }, + "operationId": "VirtualEndpoints_Delete", + "title": "Delete a pair of virtual endpoints." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointUpdate.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointUpdate.json new file mode 100644 index 000000000000..2d1a70ceb8bc --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointUpdate.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "parameters": { + "properties": { + "endpointType": "ReadWrite", + "members": [ + "exampleprimaryserver" + ] + } + }, + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "virtualEndpointName": "examplebasename" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/azureAsyncOperation/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2025-06-01-preview", + "Location": "https://management.azure.com/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/providers/Microsoft.DBforPostgreSQL/locations/eastus/operationResults/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb?api-version=2025-06-01-preview" + } + } + }, + "operationId": "VirtualEndpoints_Update", + "title": "Update a pair of virtual endpoints for a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointsGet.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointsGet.json new file mode 100644 index 000000000000..332c01719f07 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointsGet.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff", + "virtualEndpointName": "examplebasename" + }, + "responses": { + "200": { + "body": { + "name": "examplebasename", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/virtualEndpoints", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/virtualEndpoints/examplebasename", + "properties": { + "endpointType": "ReadWrite", + "members": [ + "exampleprimaryserver" + ], + "virtualEndpoints": [ + "examplebasename.reader.postgres.database.azure.com", + "examplebasename.writer.postgres.database.azure.com" + ] + } + } + } + }, + "operationId": "VirtualEndpoints_Get", + "title": "Get information about a pair of virtual endpoints." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointsListByServer.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointsListByServer.json new file mode 100644 index 000000000000..be5c9cf96ef9 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualEndpointsListByServer.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "resourceGroupName": "exampleresourcegroup", + "serverName": "exampleserver", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "examplebasename", + "type": "Microsoft.DBforPostgreSQL/flexibleServers/virtualEndpoints", + "id": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/exampleserver/virtualEndpoints/examplebasename", + "properties": { + "endpointType": "ReadWrite", + "members": [ + "examplebasename" + ], + "virtualEndpoints": [ + "examplebasename.reader.postgres.database.azure.com", + "examplebasename.writer.postgres.database.azure.com" + ] + } + } + ] + } + } + }, + "operationId": "VirtualEndpoints_ListByServer", + "title": "List pair of virtual endpoints associated to a server." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualNetworkSubnetUsageList.json b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualNetworkSubnetUsageList.json new file mode 100644 index 000000000000..5d5fe2de7622 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/examples/2025-08-01/VirtualNetworkSubnetUsageList.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2025-08-01", + "locationName": "eastus", + "parameters": { + "virtualNetworkArmResourceId": "/subscriptions/ffffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/exampleresourcegroup/providers/Microsoft.Network/virtualNetworks/examplevirtualnetwork" + }, + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + }, + "responses": { + "200": { + "body": { + "delegatedSubnetsUsage": [ + { + "subnetName": "examplesubnet1", + "usage": 2 + }, + { + "subnetName": "examplesubnet2", + "usage": 3 + } + ], + "location": "eastus", + "subscriptionId": "ffffffff-ffff-ffff-ffff-ffffffffffff" + } + } + }, + "operationId": "VirtualNetworkSubnetUsage_List", + "title": "List the virtual network subnet usage for a given virtual network." +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/main.tsp b/specification/postgresql/DBforPostgreSQL.Management/main.tsp new file mode 100644 index 000000000000..7ae1684b4a2e --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/main.tsp @@ -0,0 +1,68 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.4 + * Date: 2025-08-05T07:18:59.792Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./AdministratorMicrosoftEntra.tsp"; +import "./AdvancedThreatProtectionSettingsModel.tsp"; +import "./BackupAutomaticAndOnDemand.tsp"; +import "./Configuration.tsp"; +import "./Database.tsp"; +import "./FirewallRule.tsp"; +import "./BackupsLongTermRetentionOperation.tsp"; +import "./Migration.tsp"; +import "./PrivateEndpointConnection.tsp"; +import "./PrivateLinkResource.tsp"; +import "./Server.tsp"; +import "./TuningOptions.tsp"; +import "./VirtualEndpoint.tsp"; +import "./routes.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * The Azure Database for PostgreSQL management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, network configuration, security alert policies, log files and configurations with new business model. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armProviderNamespace +@service(#{ title: "PostgreSQLManagementClient" }) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) +namespace Microsoft.DBforPostgreSQL; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2025-08-01 API version. + */ + v2025_08_01: "2025-08-01", +} + +/** + * This is the interface that implements the standard Azure Resource Manager operation that returns + * all supported RP operations. You should have exactly one declaration for each + * Azure Resource Manager service. It implements + * GET "/providers/Microsoft.ContosoProviderHub/operations" + */ +interface Operations + extends Azure.ResourceManager.Legacy.Operations< + ArmResponse, + ErrorResponse + > {} +@@doc(Operations.list, "Lists all available REST API operations."); diff --git a/specification/postgresql/DBforPostgreSQL.Management/models.tsp b/specification/postgresql/DBforPostgreSQL.Management/models.tsp new file mode 100644 index 000000000000..4dc23ef56d71 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/models.tsp @@ -0,0 +1,3540 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; + +namespace Microsoft.DBforPostgreSQL; + +/** + * Type of Microsoft Entra principal to which the server administrator is associated. + */ +union PrincipalType { + string, + + /** + * The principal type is not known or not specified. + */ + Unknown: "Unknown", + + /** + * A Microsoft Entra user. + */ + User: "User", + + /** + * A Microsoft Entra group. + */ + Group: "Group", + + /** + * A Microsoft Entra service principal, typically representing an application or service identity + */ + ServicePrincipal: "ServicePrincipal", +} + +/** + * The type of identity that created the resource. + */ +union CreatedByType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + User: "User", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Application: "Application", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ManagedIdentity: "ManagedIdentity", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Key: "Key", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union ThreatProtectionName { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Default: "Default", +} + +/** + * Type of backup. + */ +union BackupType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Full: "Full", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `Customer On-Demand`: "Customer On-Demand", +} + +/** + * Modes of high availability supported for this compute. + */ +union HighAvailabilityMode { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ZoneRedundant: "ZoneRedundant", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SameZone: "SameZone", +} + +/** + * Modes of high availability supported for this compute. + */ +union PostgreSqlFlexibleServerHighAvailabilityMode { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ZoneRedundant: "ZoneRedundant", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SameZone: "SameZone", +} + +/** + * Status of the feature. Indicates if the feature is enabled or not. + */ +union FeatureStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Indicates if fast provisioning is supported. 'Enabled' means fast provisioning is supported. 'Disabled' stands for fast provisioning is not supported. Will be deprecated in the future. Look to Supported Features for 'FastProvisioning'. + */ +union FastProvisioningSupport { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Indicates if geographically redundant backups are supported in this location. 'Enabled' means geographically redundant backups are supported. 'Disabled' stands for geographically redundant backup is not supported. Will be deprecated in the future. Look to Supported Features for 'GeoBackup'. + */ +union GeographicallyRedundantBackupSupport { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Indicates if high availability with zone redundancy is supported in this location. 'Enabled' means high availability with zone redundancy is supported. 'Disabled' stands for high availability with zone redundancy is not supported. Will be deprecated in the future. Look to Supported Features for 'ZoneRedundantHa'. + */ +union ZoneRedundantHighAvailabilitySupport { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Indicates if high availability with zone redundancy is supported in conjunction with geographically redundant backups in this location. 'Enabled' means high availability with zone redundancy is supported in conjunction with geographically redundant backups is supported. 'Disabled' stands for high availability with zone redundancy is supported in conjunction with geographically redundant backups is not supported. Will be deprecated in the future. Look to Supported Features for 'ZoneRedundantHaAndGeoBackup'. + */ +union ZoneRedundantHighAvailabilityAndGeographicallyRedundantBackupSupport { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Indicates if storage autogrow is supported in this location. 'Enabled' means storage autogrow is supported. 'Disabled' stands for storage autogrow is not supported. Will be deprecated in the future. Look to Supported Features for 'StorageAutoGrowth'. + */ +union StorageAutoGrowthSupport { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Indicates if resizing the storage, without interrupting the operation of the database engine, is supported in this location for the given subscription. 'Enabled' means resizing the storage without interrupting the operation of the database engine is supported. 'Disabled' means resizing the storage without interrupting the operation of the database engine is not supported. Will be deprecated in the future. Look to Supported Features for 'OnlineResize'. + */ +union OnlineStorageResizeSupport { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Indicates if this location is restricted. 'Enabled' means location is restricted. 'Disabled' stands for location is not restricted. Will be deprecated in the future. Look to Supported Features for 'Restricted'. + */ +union LocationRestricted { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Data type of the configuration (also known as server parameter). + */ +union ConfigurationDataType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Boolean: "Boolean", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Numeric: "Numeric", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Integer: "Integer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enumeration: "Enumeration", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + String: "String", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Set: "Set", +} + +/** + * Service-set extensible enum indicating the status of operation + */ +union ExecutionStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Running: "Running", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Cancelled: "Cancelled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", +} + +/** + * State of migration. + */ +union MigrationState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + InProgress: "InProgress", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + WaitingForUserAction: "WaitingForUserAction", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Canceled: "Canceled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ValidationFailed: "ValidationFailed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CleaningUp: "CleaningUp", +} + +/** + * Substate of migration. + */ +union MigrationSubstate { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PerformingPreRequisiteSteps: "PerformingPreRequisiteSteps", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + WaitingForLogicalReplicationSetupRequestOnSourceDB: "WaitingForLogicalReplicationSetupRequestOnSourceDB", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + WaitingForDBsToMigrateSpecification: "WaitingForDBsToMigrateSpecification", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + WaitingForTargetDBOverwriteConfirmation: "WaitingForTargetDBOverwriteConfirmation", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + WaitingForDataMigrationScheduling: "WaitingForDataMigrationScheduling", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + WaitingForDataMigrationWindow: "WaitingForDataMigrationWindow", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + MigratingData: "MigratingData", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + WaitingForCutoverTrigger: "WaitingForCutoverTrigger", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CompletingMigration: "CompletingMigration", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Completed: "Completed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CancelingRequestedDBMigrations: "CancelingRequestedDBMigrations", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ValidationInProgress: "ValidationInProgress", +} + +/** + * Migration state of a database. + */ +union MigrationDatabaseState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + InProgress: "InProgress", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + WaitingForCutoverTrigger: "WaitingForCutoverTrigger", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Canceled: "Canceled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Canceling: "Canceling", +} + +/** + * Validation status for migration. + */ +union ValidationState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Warning: "Warning", +} + +/** + * Mode used to perform the migration: Online or Offline. + */ +union MigrationMode { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Offline: "Offline", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Online: "Online", +} + +/** + * Supported option for a migration + */ +union MigrationOption { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Validate: "Validate", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Migrate: "Migrate", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ValidateAndMigrate: "ValidateAndMigrate", +} + +/** + * Source server type used for the migration: ApsaraDB_RDS, AWS, AWS_AURORA, AWS_EC2, AWS_RDS, AzureVM, Crunchy_PostgreSQL, Digital_Ocean_Droplets, Digital_Ocean_PostgreSQL, EDB, EDB_Oracle_Server, EDB_PostgreSQL, GCP, GCP_AlloyDB, GCP_CloudSQL, GCP_Compute, Heroku_PostgreSQL, Huawei_Compute, Huawei_RDS, OnPremises, PostgreSQLCosmosDB, PostgreSQLFlexibleServer, PostgreSQLSingleServer, or Supabase_PostgreSQL + */ +union SourceType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + OnPremises: "OnPremises", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AWS: "AWS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GCP: "GCP", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureVM: "AzureVM", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PostgreSQLSingleServer: "PostgreSQLSingleServer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AWS_RDS: "AWS_RDS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AWS_AURORA: "AWS_AURORA", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AWS_EC2: "AWS_EC2", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GCP_CloudSQL: "GCP_CloudSQL", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GCP_AlloyDB: "GCP_AlloyDB", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GCP_Compute: "GCP_Compute", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + EDB: "EDB", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + EDB_Oracle_Server: "EDB_Oracle_Server", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + EDB_PostgreSQL: "EDB_PostgreSQL", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PostgreSQLFlexibleServer: "PostgreSQLFlexibleServer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PostgreSQLCosmosDB: "PostgreSQLCosmosDB", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Huawei_RDS: "Huawei_RDS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Huawei_Compute: "Huawei_Compute", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Heroku_PostgreSQL: "Heroku_PostgreSQL", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Crunchy_PostgreSQL: "Crunchy_PostgreSQL", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ApsaraDB_RDS: "ApsaraDB_RDS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Digital_Ocean_Droplets: "Digital_Ocean_Droplets", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Digital_Ocean_PostgreSQL: "Digital_Ocean_PostgreSQL", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Supabase_PostgreSQL: "Supabase_PostgreSQL", +} + +/** + * SSL mode used by a migration. Default SSL mode for 'PostgreSQLSingleServer' is 'VerifyFull'. Default SSL mode for other source types is 'Prefer'. + */ +union SslMode { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Prefer: "Prefer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Require: "Require", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + VerifyCA: "VerifyCA", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + VerifyFull: "VerifyFull", +} + +/** + * Tier of the compute assigned to a server. + */ +union SkuTier { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Burstable: "Burstable", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GeneralPurpose: "GeneralPurpose", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + MemoryOptimized: "MemoryOptimized", +} + +/** + * Indicates whether to setup logical replication on source server, if needed. + */ +union LogicalReplicationOnSourceServer { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + True: "True", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + False: "False", +} + +/** + * Indicates if databases on the target server can be overwritten when already present. If set to 'False', when the migration workflow detects that the database already exists on the target server, it will wait for a confirmation. + */ +union OverwriteDatabasesOnTargetServer { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + True: "True", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + False: "False", +} + +/** + * Indicates if roles and permissions must be migrated. + */ +union MigrateRolesAndPermissions { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + True: "True", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + False: "False", +} + +/** + * Indicates if data migration must start right away. + */ +union StartDataMigration { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + True: "True", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + False: "False", +} + +/** + * Indicates if cutover must be triggered for the entire migration. + */ +union TriggerCutover { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + True: "True", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + False: "False", +} + +/** + * Indicates if cancel must be triggered for the entire migration. + */ +union Cancel { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + True: "True", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + False: "False", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union MigrationListFilter { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Active: "Active", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + All: "All", +} + +/** + * Migration name availability reason. + */ +union MigrationNameAvailabilityReason { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AlreadyExists: "AlreadyExists", +} + +/** + * The reason why the given name is not available. + */ +union CheckNameAvailabilityReason { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AlreadyExists: "AlreadyExists", +} + +/** + * Intended executor of the operation. + */ +union OperationOrigin { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NotSpecified: "NotSpecified", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + user: "user", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + system: "system", +} + +/** + * Types of identities associated with a server. + */ +union IdentityType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + None: "None", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + UserAssigned: "UserAssigned", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SystemAssigned: "SystemAssigned", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `SystemAssigned,UserAssigned`: "SystemAssigned,UserAssigned", +} + +/** + * Major version of PostgreSQL database engine. + */ +union PostgresMajorVersion { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `18`: "18", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `17`: "17", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `16`: "16", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `15`: "15", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `14`: "14", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `13`: "13", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `12`: "12", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `11`: "11", +} + +/** + * Possible states of a server. + */ +union ServerState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Ready: "Ready", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Dropping: "Dropping", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Starting: "Starting", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Stopping: "Stopping", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Stopped: "Stopped", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Updating: "Updating", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Restarting: "Restarting", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Inaccessible: "Inaccessible", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Provisioning: "Provisioning", +} + +/** + * Flag to enable or disable the automatic growth of storage size of a server when available space is nearing zero and conditions allow for automatically growing storage size. + */ +union StorageAutoGrow { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Storage tier of a server. + */ +union AzureManagedDiskPerformanceTier { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P1: "P1", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P2: "P2", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P3: "P3", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P4: "P4", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P6: "P6", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P10: "P10", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P15: "P15", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P20: "P20", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P30: "P30", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P40: "P40", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P50: "P50", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P60: "P60", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P70: "P70", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + P80: "P80", +} + +/** + * Type of storage assigned to a server. Allowed values are Premium_LRS, PremiumV2_LRS, or UltraSSD_LRS. If not specified, it defaults to Premium_LRS. + */ +union StorageType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Premium_LRS: "Premium_LRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PremiumV2_LRS: "PremiumV2_LRS", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + UltraSSD_LRS: "UltraSSD_LRS", +} + +/** + * Indicates if the server supports Microsoft Entra authentication. + */ +union MicrosoftEntraAuth { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Indicates if the server supports password based authentication. + */ +union PasswordBasedAuth { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Data encryption type used by a server. + */ +union DataEncryptionType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SystemManaged: "SystemManaged", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureKeyVault: "AzureKeyVault", +} + +/** + * Status of key used by a server configured with data encryption based on customer managed key, to encrypt the primary storage associated to the server. + */ +union EncryptionKeyStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Valid: "Valid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", +} + +/** + * Indicates if the server is configured to create geographically redundant backups. + */ +union GeographicallyRedundantBackup { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Indicates if public network access is enabled or not. + */ +union ServerPublicNetworkAccessState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Possible states of the standby server created when high availability is set to SameZone or ZoneRedundant. + */ +union HighAvailabilityState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NotEnabled: "NotEnabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CreatingStandby: "CreatingStandby", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ReplicatingData: "ReplicatingData", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + FailingOver: "FailingOver", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Healthy: "Healthy", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + RemovingStandby: "RemovingStandby", +} + +/** + * Role of the server in a replication set. + */ +union ReplicationRole { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + None: "None", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Primary: "Primary", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AsyncReplica: "AsyncReplica", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GeoAsyncReplica: "GeoAsyncReplica", +} + +/** + * Indicates the replication state of a read replica. This property is returned only when the target server is a read replica. Possible values are Active, Broken, Catchup, Provisioning, Reconfiguring, and Updating + */ +union ReplicationState { + string, + + /** + * The read replica server is fully synchronized and actively replicating data from the primary server. + */ + Active: "Active", + + /** + * The read replica server is behind the primary server and is currently catching up with pending changes. + */ + Catchup: "Catchup", + + /** + * The read replica server is being created and is in process of getting initialized. + */ + Provisioning: "Provisioning", + + /** + * The read replica server is undergoing some changes it can be changing compute size of promoting it to primary server. + */ + Updating: "Updating", + + /** + * Replication has failed or been interrupted. + */ + Broken: "Broken", + + /** + * The read replica server is being reconfigured, possibly due to changes in source or settings. + */ + Reconfiguring: "Reconfiguring", +} + +/** + * Type of operation to apply on the read replica. This property is write only. Standalone means that the read replica will be promoted to a standalone server, and will become a completely independent entity from the replication set. Switchover means that the read replica will roles with the primary server. + */ +union ReadReplicaPromoteMode { + string, + + /** + * Read replica will become an independent server. + */ + Standalone: "Standalone", + + /** + * Read replica will swap roles with primary server. + */ + Switchover: "Switchover", +} + +/** + * Data synchronization option to use when processing the operation specified in the promoteMode property. This property is write only. + */ +union ReadReplicaPromoteOption { + string, + + /** + * The operation will wait for data in the read replica to be fully synchronized with its source server, before it initiates the operation. + */ + Planned: "Planned", + + /** + * The operation will not wait for data in the read replica to be synchronized with its source server, before it initiates the operation. + */ + Forced: "Forced", +} + +/** + * Creation mode of a new server. + */ +union CreateMode { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Default: "Default", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Create: "Create", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Update: "Update", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PointInTimeRestore: "PointInTimeRestore", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GeoRestore: "GeoRestore", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Replica: "Replica", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ReviveDropped: "ReviveDropped", +} + +/** + * Update mode of an existing server. + */ +union CreateModeForPatch { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Default: "Default", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Update: "Update", +} + +/** + * Failover mode. + */ +union FailoverMode { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PlannedFailover: "PlannedFailover", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ForcedFailover: "ForcedFailover", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PlannedSwitchover: "PlannedSwitchover", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ForcedSwitchover: "ForcedSwitchover", +} + +/** + * The name of the tuning option. + */ +union TuningOptionParameterEnum { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + index: "index", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + table: "table", +} + +/** + * Type for this recommendation. + */ +union RecommendationTypeEnum { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CreateIndex: "CreateIndex", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + DropIndex: "DropIndex", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ReIndex: "ReIndex", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AnalyzeTable: "AnalyzeTable", +} + +/** + * Recommendations list filter. Retrieves recommendations based on type. + */ +union RecommendationTypeParameterEnum { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CreateIndex: "CreateIndex", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + DropIndex: "DropIndex", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ReIndex: "ReIndex", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AnalyzeTable: "AnalyzeTable", +} + +/** + * Type of endpoint for the virtual endpoints. + */ +union VirtualEndpointType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ReadWrite: "ReadWrite", +} + +/** + * Level of details of a migration. + */ +union MigrationDetailsLevel { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Default: "Default", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Summary: "Summary", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Full: "Full", +} + +/** + * Specifies the state of the advanced threat protection, whether it is enabled, disabled, or a state has not been applied yet on the server. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum ThreatProtectionState { + Enabled, + Disabled, +} + +/** + * The status of the capability. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum CapabilityStatus { + Visible, + Available, + Default, + Disabled, +} + +/** + * Server administrator associated to a Microsoft Entra principal. + */ +model AdministratorMicrosoftEntraAdd { + /** + * Properties of the server administrator associated to a Microsoft Entra principal. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: AdministratorMicrosoftEntraPropertiesForAdd; +} + +/** + * Properties of a server administrator associated to a Microsoft Entra principal. + */ +model AdministratorMicrosoftEntraPropertiesForAdd { + /** + * Type of Microsoft Entra principal to which the server administrator is associated. + */ + @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) + principalType?: PrincipalType; + + /** + * Name of the Microsoft Entra principal. + */ + @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) + principalName?: string; + + /** + * Identifier of the tenant in which the Microsoft Entra principal exists. + */ + @visibility(Lifecycle.Create, Lifecycle.Update) + tenantId?: string; +} + +/** + * Properties of a server administrator associated to a Microsoft Entra principal. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AdministratorMicrosoftEntraProperties { + /** + * Type of Microsoft Entra principal to which the server administrator is associated. + */ + @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) + principalType?: PrincipalType; + + /** + * Name of the Microsoft Entra principal. + */ + @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) + principalName?: string; + + /** + * Object identifier of the Microsoft Entra principal. + */ + @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) + objectId?: string; + + /** + * Identifier of the tenant in which the Microsoft Entra principal exists. + */ + @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) + tenantId?: string; +} + +/** + * List of server administrators associated to Microsoft Entra principals. + */ +model AdministratorMicrosoftEntraList + is Azure.Core.Page; + +/** + * List of advanced threat protection settings for a server. + */ +model AdvancedThreatProtectionSettingsList + is Azure.Core.Page; + +/** + * Properties of advanced threat protection state for a server. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AdvancedThreatProtectionSettingsProperties { + /** + * Specifies the state of the advanced threat protection, whether it is enabled, disabled, or a state has not been applied yet on the server. + */ + state: ThreatProtectionState; + + /** + * Specifies the creation time (UTC) of the policy. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + creationTime?: utcDateTime; +} + +/** + * Properties of a backup. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BackupAutomaticAndOnDemandProperties { + /** + * Type of backup. + */ + backupType?: BackupType; + + /** + * Time(ISO8601 format) at which the backup was completed. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + completedTime?: utcDateTime; + + /** + * Source of the backup. + */ + source?: string; +} + +/** + * List of backups. + */ +model BackupAutomaticAndOnDemandList + is Azure.Core.Page; + +/** + * List of capabilities for the Azure Database for PostgreSQL flexible server. + */ +model CapabilityList is Azure.Core.Page; + +/** + * Capability for the Azure Database for PostgreSQL flexible server. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model Capability extends CapabilityBase { + /** + * Name of flexible servers capabilities. + */ + name?: string; + + /** + * List of supported compute tiers. + */ + @visibility(Lifecycle.Read) + @identifiers(#["name"]) + supportedServerEditions?: ServerEditionCapability[]; + + /** + * List of supported major versions of PostgreSQL database engine. + */ + @visibility(Lifecycle.Read) + @identifiers(#["name"]) + supportedServerVersions?: ServerVersionCapability[]; + + /** + * Features supported. + */ + @visibility(Lifecycle.Read) + @identifiers(#["name"]) + supportedFeatures?: SupportedFeature[]; + + /** + * Indicates if fast provisioning is supported. 'Enabled' means fast provisioning is supported. 'Disabled' stands for fast provisioning is not supported. Will be deprecated in the future. Look to Supported Features for 'FastProvisioning'. + */ + @visibility(Lifecycle.Read) + fastProvisioningSupported?: FastProvisioningSupport; + + /** + * List of compute tiers supporting fast provisioning. + */ + @visibility(Lifecycle.Read) + @identifiers(#["supportedSku"]) + supportedFastProvisioningEditions?: FastProvisioningEditionCapability[]; + + /** + * Indicates if geographically redundant backups are supported in this location. 'Enabled' means geographically redundant backups are supported. 'Disabled' stands for geographically redundant backup is not supported. Will be deprecated in the future. Look to Supported Features for 'GeoBackup'. + */ + @visibility(Lifecycle.Read) + geoBackupSupported?: GeographicallyRedundantBackupSupport; + + /** + * Indicates if high availability with zone redundancy is supported in this location. 'Enabled' means high availability with zone redundancy is supported. 'Disabled' stands for high availability with zone redundancy is not supported. Will be deprecated in the future. Look to Supported Features for 'ZoneRedundantHa'. + */ + @visibility(Lifecycle.Read) + zoneRedundantHaSupported?: ZoneRedundantHighAvailabilitySupport; + + /** + * Indicates if high availability with zone redundancy is supported in conjunction with geographically redundant backups in this location. 'Enabled' means high availability with zone redundancy is supported in conjunction with geographically redundant backups is supported. 'Disabled' stands for high availability with zone redundancy is supported in conjunction with geographically redundant backups is not supported. Will be deprecated in the future. Look to Supported Features for 'ZoneRedundantHaAndGeoBackup'. + */ + @visibility(Lifecycle.Read) + zoneRedundantHaAndGeoBackupSupported?: ZoneRedundantHighAvailabilityAndGeographicallyRedundantBackupSupport; + + /** + * Indicates if storage autogrow is supported in this location. 'Enabled' means storage autogrow is supported. 'Disabled' stands for storage autogrow is not supported. Will be deprecated in the future. Look to Supported Features for 'StorageAutoGrowth'. + */ + @visibility(Lifecycle.Read) + storageAutoGrowthSupported?: StorageAutoGrowthSupport; + + /** + * Indicates if resizing the storage, without interrupting the operation of the database engine, is supported in this location for the given subscription. 'Enabled' means resizing the storage without interrupting the operation of the database engine is supported. 'Disabled' means resizing the storage without interrupting the operation of the database engine is not supported. Will be deprecated in the future. Look to Supported Features for 'OnlineResize'. + */ + @visibility(Lifecycle.Read) + onlineResizeSupported?: OnlineStorageResizeSupport; + + /** + * Indicates if this location is restricted. 'Enabled' means location is restricted. 'Disabled' stands for location is not restricted. Will be deprecated in the future. Look to Supported Features for 'Restricted'. + */ + @visibility(Lifecycle.Read) + restricted?: LocationRestricted; +} + +/** + * Capabilities in terms of compute tier. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ServerEditionCapability extends CapabilityBase { + /** + * Name of compute tier. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * Default compute name (SKU) for this computer tier. + */ + @visibility(Lifecycle.Read) + defaultSkuName?: string; + + /** + * List of storage editions supported by this compute tier and compute name. + */ + @visibility(Lifecycle.Read) + @identifiers(#["name"]) + supportedStorageEditions?: StorageEditionCapability[]; + + /** + * List of supported compute names (SKUs). + */ + @visibility(Lifecycle.Read) + @identifiers(#["name"]) + supportedServerSkus?: ServerSkuCapability[]; +} + +/** + * Capabilities in terms of storage tier. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model StorageEditionCapability extends CapabilityBase { + /** + * Name of storage tier. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * Default storage size (in MB) for this storage tier. + */ + @visibility(Lifecycle.Read) + defaultStorageSizeMb?: int64; + + /** + * Configurations of storage supported for this storage tier. + */ + @visibility(Lifecycle.Read) + @identifiers(#["storageSizeMb"]) + supportedStorageMb?: StorageMbCapability[]; +} + +/** + * Storage size (in MB) capability. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model StorageMbCapability extends CapabilityBase { + /** + * Minimum IOPS supported by the storage size. + */ + @visibility(Lifecycle.Read) + supportedIops?: int32; + + /** + * Maximum IOPS supported by the storage size. + */ + @visibility(Lifecycle.Read) + supportedMaximumIops?: int32; + + /** + * Minimum supported size (in MB) of storage. + */ + @visibility(Lifecycle.Read) + storageSizeMb?: int64; + + /** + * Maximum supported size (in MB) of storage. + */ + @visibility(Lifecycle.Read) + maximumStorageSizeMb?: int64; + + /** + * Minimum supported throughput (in MB/s) of storage. + */ + @visibility(Lifecycle.Read) + supportedThroughput?: int32; + + /** + * Maximum supported throughput (in MB/s) of storage. + */ + @visibility(Lifecycle.Read) + supportedMaximumThroughput?: int32; + + /** + * Default IOPS for this tier and storage size. + */ + @visibility(Lifecycle.Read) + defaultIopsTier?: string; + + /** + * List of all supported storage tiers for this tier and storage size. + */ + @visibility(Lifecycle.Read) + @identifiers(#["name"]) + supportedIopsTiers?: StorageTierCapability[]; +} + +/** + * Capability of a storage tier. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model StorageTierCapability extends CapabilityBase { + /** + * Name of the storage tier. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * Supported IOPS for the storage tier. + */ + @visibility(Lifecycle.Read) + iops?: int32; +} + +/** + * Base object for representing capability + */ +model CapabilityBase { + /** + * The status of the capability. + */ + @visibility(Lifecycle.Read) + status?: CapabilityStatus; + + /** + * The reason for the capability not being available. + */ + @visibility(Lifecycle.Read) + reason?: string; +} + +/** + * Capabilities in terms of compute. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ServerSkuCapability extends CapabilityBase { + /** + * Name of the compute (SKU). + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * vCores available for this compute. + */ + @visibility(Lifecycle.Read) + vCores?: int32; + + /** + * Maximum IOPS supported by this compute. + */ + @visibility(Lifecycle.Read) + supportedIops?: int32; + + /** + * Supported memory (in MB) per virtual core assigned to this compute. + */ + @visibility(Lifecycle.Read) + supportedMemoryPerVcoreMb?: int64; + + /** + * List of supported availability zones. E.g. '1', '2', '3' + */ + @visibility(Lifecycle.Read) + supportedZones?: string[]; + + /** + * Modes of high availability supported for this compute. + */ + @visibility(Lifecycle.Read) + supportedHaMode?: HighAvailabilityMode[]; + + /** + * Features supported. + */ + @visibility(Lifecycle.Read) + @identifiers(#["name"]) + supportedFeatures?: SupportedFeature[]; + + /** + * Security profile of the compute. Indicates if it's a Confidential Compute virtual machine. + */ + @visibility(Lifecycle.Read) + securityProfile?: string; +} + +/** + * Features supported. + */ +model SupportedFeature { + /** + * Name of the feature. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * Status of the feature. Indicates if the feature is enabled or not. + */ + @visibility(Lifecycle.Read) + status?: FeatureStatus; +} + +/** + * Capabilities in terms of major versions of PostgreSQL database engine. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ServerVersionCapability extends CapabilityBase { + /** + * Major version of PostgreSQL database engine. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * Major versions of PostgreSQL database engine to which this version can be automatically upgraded. + */ + @visibility(Lifecycle.Read) + supportedVersionsToUpgrade?: string[]; + + /** + * Features supported. + */ + @visibility(Lifecycle.Read) + @identifiers(#["name"]) + supportedFeatures?: SupportedFeature[]; +} + +/** + * Capability of a fast provisioning compute tier. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model FastProvisioningEditionCapability extends CapabilityBase { + /** + * Compute tier supporting fast provisioning. + */ + @visibility(Lifecycle.Read) + supportedTier?: string; + + /** + * Compute name (SKU) supporting fast provisioning. + */ + @visibility(Lifecycle.Read) + supportedSku?: string; + + /** + * Storage size (in GB) supporting fast provisioning. + */ + @visibility(Lifecycle.Read) + supportedStorageGb?: int32; + + /** + * Major version of PostgreSQL database engine supporting fast provisioning. + */ + @visibility(Lifecycle.Read) + supportedServerVersions?: string; + + /** + * Count of servers in cache matching this specification. + */ + @visibility(Lifecycle.Read) + serverCount?: int32; +} + +/** + * List of log files. + */ +model CapturedLogList is Azure.Core.Page; + +/** + * Log file. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model CapturedLog extends Azure.ResourceManager.CommonTypes.ProxyResource { + /** + * Properties of a log file. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: CapturedLogProperties; +} + +/** + * Properties of a log file. + */ +model CapturedLogProperties { + /** + * Creation timestamp of the log file. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + createdTime?: utcDateTime; + + /** + * Last modified timestamp of the log file. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastModifiedTime?: utcDateTime; + + /** + * Size (in KB) of the log file. + */ + sizeInKb?: int64; + + /** + * Type of log file. Can be 'ServerLogs' or 'UpgradeLogs'. + */ + type?: string; + + /** + * URL to download the log file from. + */ + url?: string; +} + +/** + * List of configurations (also known as server parameters). + */ +model ConfigurationList is Azure.Core.Page; + +/** + * Properties of a configuration (also known as server parameter). + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ConfigurationProperties { + /** + * Value of the configuration (also known as server parameter). Required to update the value assigned to a specific modifiable configuration. + */ + value?: string; + + /** + * Description of the configuration (also known as server parameter). + */ + @visibility(Lifecycle.Read) + description?: string; + + /** + * Value assigned by default to the configuration (also known as server parameter). + */ + @visibility(Lifecycle.Read) + defaultValue?: string; + + /** + * Data type of the configuration (also known as server parameter). + */ + @visibility(Lifecycle.Read) + dataType?: ConfigurationDataType; + + /** + * Allowed values of the configuration (also known as server parameter). + */ + @visibility(Lifecycle.Read) + allowedValues?: string; + + /** + * Source of the value assigned to the configuration (also known as server parameter). Required to update the value assigned to a specific modifiable configuration. + */ + source?: string; + + /** + * Indicates if it's a dynamic (true) or static (false) configuration (also known as server parameter). Static server parameters require a server restart after changing the value assigned to them, for the change to take effect. Dynamic server parameters do not require a server restart after changing the value assigned to them, for the change to take effect. + */ + @visibility(Lifecycle.Read) + isDynamicConfig?: boolean; + + /** + * Indicates if it's a read-only (true) or modifiable (false) configuration (also known as server parameter). + */ + @visibility(Lifecycle.Read) + isReadOnly?: boolean; + + /** + * Indicates if the value assigned to the configuration (also known as server parameter) is pending a server restart for it to take effect. + */ + @visibility(Lifecycle.Read) + isConfigPendingRestart?: boolean; + + /** + * Units in which the configuration (also known as server parameter) value is expressed. + */ + @visibility(Lifecycle.Read) + unit?: string; + + /** + * Link pointing to the documentation of the configuration (also known as server parameter). + */ + @visibility(Lifecycle.Read) + documentationLink?: string; +} + +/** + * Configuration (also known as server parameter). + */ +model ConfigurationForUpdate { + /** + * Properties of a configuration (also known as server parameter). + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: ConfigurationProperties; +} + +/** + * Properties of a database. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model DatabaseProperties { + /** + * Character set of the database. + */ + @pattern("^[a-zA-Z]+\\w*$") + charset?: string; + + /** + * Collation of the database. + */ + @pattern("^[a-zA-Z\\-]+([. ]|\\w)*$") + collation?: string; +} + +/** + * List of all databases in a server. + */ +model DatabaseList is Azure.Core.Page; + +/** + * Properties of a firewall rule. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model FirewallRuleProperties { + /** + * IP address defining the start of the range of addresses of a firewall rule. Must be expressed in IPv4 format. + */ + @pattern("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$") + startIpAddress: string; + + /** + * IP address defining the end of the range of addresses of a firewall rule. Must be expressed in IPv4 format. + */ + @pattern("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$") + endIpAddress: string; +} + +/** + * List of firewall rules. + */ +model FirewallRuleList is Azure.Core.Page; + +/** + * A request that is made for pre-backup. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/no-empty-model" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model LtrPreBackupRequest extends BackupRequestBase {} + +/** + * BackupRequestBase is the base for all backup request. + */ +model BackupRequestBase { + /** + * Backup Settings + */ + backupSettings: BackupSettings; +} + +/** + * The settings for the long term backup. + */ +model BackupSettings { + /** + * Backup Name for the current backup + */ + backupName: string; +} + +/** + * Response for the LTR pre-backup API call + */ +model LtrPreBackupResponse { + /** + * Additional Properties for the pre backup response + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties: BackupsLongTermRetentionResponseProperties; +} + +/** + * Response for the pre-backup request. + */ +model BackupsLongTermRetentionResponseProperties { + /** + * Number of storage containers the plugin will use during backup. More than one containers may be used for size limitations, parallelism, or redundancy etc. + */ + numberOfContainers: int32; +} + +/** + * The request that is made for a long term retention backup. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BackupsLongTermRetentionRequest extends BackupRequestBase { + /** + * Backup store detail for target server + */ + targetDetails: BackupStoreDetails; +} + +/** + * Details about the target where the backup content will be stored. + */ +model BackupStoreDetails { + /** + * List of SAS uri of storage containers where backup data is to be streamed/copied. + */ + sasUriList: secretString[]; +} + +/** + * Response for the LTR backup API call + */ +model BackupsLongTermRetentionResponse { + /** + * Long Term Retention Backup Operation Resource Properties + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: LtrBackupOperationResponseProperties; +} + +/** + * Response for the backup request. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model LtrBackupOperationResponseProperties { + /** + * Size of datasource in bytes + */ + datasourceSizeInBytes?: int64; + + /** + * Data transferred in bytes + */ + dataTransferredInBytes?: int64; + + /** + * Name of Backup operation + */ + backupName?: string; + + /** + * Metadata to be stored in RP. Store everything that will be required to perform a successful restore using this Recovery point. e.g. Versions, DataFormat etc + */ + backupMetadata?: string; + + /** + * Service-set extensible enum indicating the status of operation + */ + status: ExecutionStatus; + + /** + * Start time of the operation. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + startTime: utcDateTime; + + /** + * End time of the operation. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + endTime?: utcDateTime; + + /** + * PercentageCompleted + */ + @minValue(0) + @maxValue(100) + percentComplete?: float64; + + /** + * The error code. + */ + @visibility(Lifecycle.Read) + errorCode?: string; + + /** + * The error message. + */ + @visibility(Lifecycle.Read) + errorMessage?: string; +} + +/** + * A list of long term retention backup operations for server. + */ +model LtrServerBackupOperationList + is Azure.Core.Page; + +/** + * Migration. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model MigrationProperties { + /** + * Identifier of a migration. + */ + @visibility(Lifecycle.Read) + migrationId?: string; + + /** + * Current status of a migration. + */ + @visibility(Lifecycle.Read) + currentStatus?: MigrationStatus; + + /** + * Identifier of the private endpoint migration instance. + */ + migrationInstanceResourceId?: Azure.Core.armResourceIdentifier; + + /** + * Mode used to perform the migration: Online or Offline. + */ + migrationMode?: MigrationMode; + + /** + * Supported option for a migration. + */ + migrationOption?: MigrationOption; + + /** + * Source server type used for the migration: ApsaraDB_RDS, AWS, AWS_AURORA, AWS_EC2, AWS_RDS, AzureVM, Crunchy_PostgreSQL, Digital_Ocean_Droplets, Digital_Ocean_PostgreSQL, EDB, EDB_Oracle_Server, EDB_PostgreSQL, GCP, GCP_AlloyDB, GCP_CloudSQL, GCP_Compute, Heroku_PostgreSQL, Huawei_Compute, Huawei_RDS, OnPremises, PostgreSQLCosmosDB, PostgreSQLFlexibleServer, PostgreSQLSingleServer, or Supabase_PostgreSQL + */ + sourceType?: SourceType; + + /** + * SSL mode used by a migration. Default SSL mode for 'PostgreSQLSingleServer' is 'VerifyFull'. Default SSL mode for other source types is 'Prefer'. + */ + sslMode?: SslMode; + + /** + * Metadata of source database server. + */ + @visibility(Lifecycle.Read) + sourceDbServerMetadata?: DbServerMetadata; + + /** + * Metadata of target database server. + */ + @visibility(Lifecycle.Read) + targetDbServerMetadata?: DbServerMetadata; + + @doc("Identifier of the source database server resource, when 'sourceType' is 'PostgreSQLSingleServer'. For other source types this must be set to ipaddress:port@username or hostname:port@username.") + sourceDbServerResourceId?: string; + + /** + * Fully qualified domain name (FQDN) or IP address of the source server. This property is optional. When provided, the migration service will always use it to connect to the source server. + */ + sourceDbServerFullyQualifiedDomainName?: string; + + /** + * Identifier of the target database server resource. + */ + @visibility(Lifecycle.Read) + targetDbServerResourceId?: string; + + /** + * Fully qualified domain name (FQDN) or IP address of the target server. This property is optional. When provided, the migration service will always use it to connect to the target server. + */ + targetDbServerFullyQualifiedDomainName?: string; + + /** + * Migration secret parameters. + */ + secretParameters?: MigrationSecretParameters; + + /** + * Names of databases to migrate. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + @maxItems(50) + dbsToMigrate?: string[]; + + /** + * Indicates whether to setup logical replication on source server, if needed. + */ + setupLogicalReplicationOnSourceDbIfNeeded?: LogicalReplicationOnSourceServer; + + /** + * Indicates if databases on the target server can be overwritten when already present. If set to 'False', when the migration workflow detects that the database already exists on the target server, it will wait for a confirmation. + */ + overwriteDbsInTarget?: OverwriteDatabasesOnTargetServer; + + /** + * Start time (UTC) for migration window. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + migrationWindowStartTimeInUtc?: utcDateTime; + + /** + * End time (UTC) for migration window. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + migrationWindowEndTimeInUtc?: utcDateTime; + + /** + * Indicates if roles and permissions must be migrated. + */ + migrateRoles?: MigrateRolesAndPermissions; + + /** + * Indicates if data migration must start right away. + */ + startDataMigration?: StartDataMigration; + + /** + * Indicates if cutover must be triggered for the entire migration. + */ + triggerCutover?: TriggerCutover; + + /** + * When you want to trigger cutover for specific databases set 'triggerCutover' to 'True' and the names of the specific databases in this array. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + dbsToTriggerCutoverOn?: string[]; + + /** + * Indicates if cancel must be triggered for the entire migration. + */ + cancel?: Cancel; + + /** + * When you want to trigger cancel for specific databases set 'triggerCutover' to 'True' and the names of the specific databases in this array. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + dbsToCancelMigrationOn?: string[]; +} + +/** + * State of migration. + */ +model MigrationStatus { + /** + * State of migration. + */ + @visibility(Lifecycle.Read) + state?: MigrationState; + + /** + * Error message, if any, for the migration state. + */ + @visibility(Lifecycle.Read) + error?: string; + + /** + * Current migration sub state details. + */ + @visibility(Lifecycle.Read) + currentSubStateDetails?: MigrationSubstateDetails; +} + +/** + * Details of migration substate. + */ +model MigrationSubstateDetails { + /** + * Substate of migration. + */ + @visibility(Lifecycle.Read) + currentSubState?: MigrationSubstate; + + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + dbDetails?: Record; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + validationDetails?: ValidationDetails; +} + +/** + * Migration state of a database. + */ +model DatabaseMigrationState { + /** + * Name of database. + */ + databaseName?: string; + + /** + * Migration state of a database. + */ + migrationState?: MigrationDatabaseState; + + /** + * Migration operation of a database. + */ + migrationOperation?: string; + + /** + * Start time of a migration state. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + startedOn?: utcDateTime; + + /** + * End time of a migration state. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + endedOn?: utcDateTime; + + /** + * Number of tables queued for the migration of a database. + */ + fullLoadQueuedTables?: int32; + + /** + * Number of tables encountering errors during the migration of a database. + */ + fullLoadErroredTables?: int32; + + /** + * Number of tables loading during the migration of a database. + */ + fullLoadLoadingTables?: int32; + + /** + * Number of tables loaded during the migration of a database. + */ + fullLoadCompletedTables?: int32; + + /** + * Change Data Capture update counter. + */ + cdcUpdateCounter?: int32; + + /** + * Change Data Capture delete counter. + */ + cdcDeleteCounter?: int32; + + /** + * Change Data Capture insert counter. + */ + cdcInsertCounter?: int32; + + /** + * Change Data Capture applied changes counter. + */ + appliedChanges?: int32; + + /** + * Change Data Capture incoming changes counter. + */ + incomingChanges?: int32; + + /** + * Lag in seconds between source and target during online phase. + */ + latency?: int32; + + /** + * Error message, if any, for the migration state. + */ + message?: string; +} + +/** + * Details for the validation for migration. + */ +model ValidationDetails { + /** + * Validation status for migration. + */ + status?: ValidationState; + + /** + * Start time (UTC) for validation. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + validationStartTimeInUtc?: utcDateTime; + + /** + * End time (UTC) for validation. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + validationEndTimeInUtc?: utcDateTime; + + /** + * Details of server level validations. + */ + @identifiers(#[]) + serverLevelValidationDetails?: ValidationSummaryItem[]; + + /** + * Details of server level validations. + */ + @identifiers(#["databaseName"]) + dbLevelValidationDetails?: DbLevelValidationStatus[]; +} + +/** + * Validation summary object. + */ +model ValidationSummaryItem { + /** + * Validation type. + */ + type?: string; + + /** + * Validation status for migration. + */ + state?: ValidationState; + + /** + * Validation messages. + */ + @identifiers(#[]) + messages?: ValidationMessage[]; +} + +/** + * Validation message object. + */ +model ValidationMessage { + /** + * Severity of validation message. + */ + state?: ValidationState; + + /** + * Validation message string. + */ + message?: string; +} + +/** + * Validation status summary for a database. + */ +model DbLevelValidationStatus { + /** + * Name of database. + */ + databaseName?: string; + + /** + * Start time of a database level validation. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + startedOn?: utcDateTime; + + /** + * End time of a database level validation. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + endedOn?: utcDateTime; + + /** + * Summary of database level validations. + */ + @identifiers(#[]) + summary?: ValidationSummaryItem[]; +} + +/** + * Database server metadata. + */ +model DbServerMetadata { + /** + * Location of database server. + */ + @visibility(Lifecycle.Read) + location?: string; + + /** + * Major version of PostgreSQL database engine. + */ + version?: string; + + /** + * Storage size (in MB) for database server. + */ + storageMb?: int32; + + /** + * Compute tier and size of the database server. This object is empty for an Azure Database for PostgreSQL single server. + */ + sku?: ServerSku; +} + +/** + * Compute information of a server. + */ +model ServerSku { + /** + * Compute tier and size of the database server. This object is empty for an Azure Database for PostgreSQL single server. + */ + name?: string; + + /** + * Tier of the compute assigned to a server. + */ + tier?: SkuTier; +} + +/** + * Migration secret parameters. + */ +model MigrationSecretParameters { + /** + * Credentials of administrator users for source and target servers. + */ + @secret + adminCredentials: AdminCredentials; + + /** + * Gets or sets the name of the user for the source server. This user doesn't need to be an administrator. + */ + @visibility(Lifecycle.Create, Lifecycle.Update) + sourceServerUsername?: string; + + /** + * Gets or sets the name of the user for the target server. This user doesn't need to be an administrator. + */ + @visibility(Lifecycle.Create, Lifecycle.Update) + targetServerUsername?: string; +} + +/** + * Credentials of administrator users for source and target servers. + */ +model AdminCredentials { + /** + * Password for the user of the source server. + */ + @visibility(Lifecycle.Create, Lifecycle.Update) + @secret + sourceServerPassword: string; + + /** + * Password for the user of the target server. + */ + @visibility(Lifecycle.Create, Lifecycle.Update) + @secret + targetServerPassword: string; +} + +/** + * Migration. + */ +model MigrationResourceForPatch { + /** + * Migration properties. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: MigrationPropertiesForPatch; + + /** + * Application-specific metadata in the form of key-value pairs. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record; +} + +/** + * Migration properties. + */ +model MigrationPropertiesForPatch { + @doc("Identifier of the source database server resource, when 'sourceType' is 'PostgreSQLSingleServer'. For other source types this must be set to ipaddress:port@username or hostname:port@username.") + sourceDbServerResourceId?: string; + + /** + * Fully qualified domain name (FQDN) or IP address of the source server. This property is optional. When provided, the migration service will always use it to connect to the source server. + */ + sourceDbServerFullyQualifiedDomainName?: string; + + /** + * Fully qualified domain name (FQDN) or IP address of the target server. This property is optional. When provided, the migration service will always use it to connect to the target server. + */ + targetDbServerFullyQualifiedDomainName?: string; + + /** + * Migration secret parameters. + */ + secretParameters?: MigrationSecretParametersForPatch; + + /** + * Names of databases to migrate. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + @maxItems(50) + dbsToMigrate?: string[]; + + /** + * Indicates whether to setup logical replication on source server, if needed. + */ + setupLogicalReplicationOnSourceDbIfNeeded?: LogicalReplicationOnSourceServer; + + /** + * Indicates if databases on the target server can be overwritten when already present. If set to 'False', when the migration workflow detects that the database already exists on the target server, it will wait for a confirmation. + */ + overwriteDbsInTarget?: OverwriteDatabasesOnTargetServer; + + /** + * Start time (UTC) for migration window. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + migrationWindowStartTimeInUtc?: utcDateTime; + + /** + * Indicates if roles and permissions must be migrated. + */ + migrateRoles?: MigrateRolesAndPermissions; + + /** + * Indicates if data migration must start right away. + */ + startDataMigration?: StartDataMigration; + + /** + * Indicates if cutover must be triggered for the entire migration. + */ + triggerCutover?: TriggerCutover; + + /** + * When you want to trigger cutover for specific databases set 'triggerCutover' to 'True' and the names of the specific databases in this array. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + dbsToTriggerCutoverOn?: string[]; + + /** + * Indicates if cancel must be triggered for the entire migration. + */ + cancel?: Cancel; + + /** + * When you want to trigger cancel for specific databases set 'triggerCutover' to 'True' and the names of the specific databases in this array. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + dbsToCancelMigrationOn?: string[]; + + /** + * Mode used to perform the migration: Online or Offline. + */ + migrationMode?: MigrationMode; +} + +/** + * Migration secret parameters. + */ +model MigrationSecretParametersForPatch { + /** + * Credentials of administrator users for source and target servers. + */ + @secret + adminCredentials?: AdminCredentialsForPatch; + + /** + * Gets or sets the name of the user for the source server. This user doesn't need to be an administrator. + */ + @visibility(Lifecycle.Update) + sourceServerUsername?: string; + + /** + * Gets or sets the name of the user for the target server. This user doesn't need to be an administrator. + */ + @visibility(Lifecycle.Update) + targetServerUsername?: string; +} + +/** + * Credentials of administrator users for source and target servers. + */ +model AdminCredentialsForPatch { + /** + * Password for the user of the source server. + */ + @visibility(Lifecycle.Update) + @secret + sourceServerPassword?: string; + + /** + * Password for the user of the target server. + */ + @visibility(Lifecycle.Update) + @secret + targetServerPassword?: string; +} + +/** + * List of migrations. + */ +model MigrationList is Azure.Core.Page; + +/** + * Availability of a migration name. + */ +model MigrationNameAvailability { + /** + * Name of the migration to check for validity and availability. + */ + name: string; + + /** + * Type of resource. + */ + type: string; + + /** + * Indicates if the migration name is available. + */ + @visibility(Lifecycle.Read) + nameAvailable?: boolean; + + /** + * Migration name availability reason. + */ + @visibility(Lifecycle.Read) + reason?: MigrationNameAvailabilityReason; + + /** + * Migration name availability message. + */ + @visibility(Lifecycle.Read) + message?: string; +} + +/** + * Availability of a name. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model NameAvailabilityModel + extends Azure.ResourceManager.CommonTypes.CheckNameAvailabilityResponse { + /** + * Name for which validity and availability was checked. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * Type of resource. It can be 'Microsoft.DBforPostgreSQL/flexibleServers' or 'Microsoft.DBforPostgreSQL/flexibleServers/virtualendpoints'. + */ + @visibility(Lifecycle.Read) + type?: string; +} + +/** + * REST API operation definition. + */ +model Operation { + /** + * Name of the operation being performed on this particular object. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * Localized display information for this particular operation or action. + */ + @visibility(Lifecycle.Read) + display?: OperationDisplay; + + /** + * Indicates if the operation is a data action. + */ + isDataAction?: boolean; + + /** + * Intended executor of the operation. + */ + @visibility(Lifecycle.Read) + origin?: OperationOrigin; + + /** + * Additional descriptions for the operation. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + properties?: Record; +} + +/** + * Display metadata associated with the operation. + */ +model OperationDisplay { + /** + * Name of the resource provider. + */ + @visibility(Lifecycle.Read) + provider?: string; + + /** + * Type of resource on which the operation is performed. + */ + @visibility(Lifecycle.Read) + resource?: string; + + /** + * Name of the operation. + */ + @visibility(Lifecycle.Read) + operation?: string; + + /** + * Description of the operation. + */ + @visibility(Lifecycle.Read) + description?: string; +} + +/** + * List of private endpoint connections. + */ +model PrivateEndpointConnectionList + is Azure.Core.Page; + +/** + * A list of private link resources + */ +model PrivateLinkResourceList is Azure.Core.Page; + +/** + * Capability for the PostgreSQL server + */ +model QuotaUsageList is Azure.Core.Page; + +/** + * Quota usage for servers + */ +model QuotaUsage { + /** + * Name of quota usage for servers + */ + name?: NameProperty; + + /** + * Quota limit + */ + limit?: int64; + + /** + * Quota unit + */ + unit?: string = "Count"; + + /** + * Current Quota usage value + */ + currentValue?: int64; + + /** + * Fully qualified ARM resource Id + */ + id?: string; +} + +/** + * Name property for quota usage + */ +model NameProperty { + /** + * Name value + */ + value?: string; + + /** + * Localized name + */ + localizedValue?: string; +} + +/** + * A list of servers. + */ +model ServerList is Azure.Core.Page; + +/** + * Compute information of a server. + */ +model Sku { + /** + * Name by which is known a given compute size assigned to a server. + */ + name: string; + + /** + * Tier of the compute assigned to a server. + */ + tier: SkuTier; +} + +/** + * Identities associated with a server. + */ +model UserAssignedIdentity { + /** + * Map of user assigned managed identities. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + userAssignedIdentities?: Record; + + /** + * Identifier of the object of the service principal associated to the user assigned managed identity. + */ + principalId?: string; + + /** + * Types of identities associated with a server. + */ + type: IdentityType; + + /** + * Identifier of the tenant of a server. + */ + @visibility(Lifecycle.Read) + tenantId?: string; +} + +/** + * User assigned managed identity associated with a server. + */ +model UserIdentity { + /** + * Identifier of the object of the service principal associated to the user assigned managed identity. + */ + principalId?: string; + + /** + * Identifier of the client of the service principal associated to the user assigned managed identity. + */ + clientId?: string; +} + +/** + * Properties of a server. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ServerProperties { + /** + * Name of the login designated as the first password based administrator assigned to your instance of PostgreSQL. Must be specified the first time that you enable password based authentication on a server. Once set to a given value, it cannot be changed for the rest of the life of a server. If you disable password based authentication on a server which had it enabled, this password based role isn't deleted. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + administratorLogin?: string; + + /** + * Password assigned to the administrator login. As long as password authentication is enabled, this password can be changed at any time. + */ + @visibility(Lifecycle.Create, Lifecycle.Update) + @secret + administratorLoginPassword?: string; + + /** + * Major version of PostgreSQL database engine. + */ + version?: PostgresMajorVersion; + + /** + * Minor version of PostgreSQL database engine. + */ + @visibility(Lifecycle.Read) + minorVersion?: string; + + /** + * Possible states of a server. + */ + @visibility(Lifecycle.Read) + state?: ServerState; + + /** + * Fully qualified domain name of a server. + */ + @visibility(Lifecycle.Read) + fullyQualifiedDomainName?: string; + + /** + * Storage properties of a server. + */ + storage?: Storage; + + /** + * Authentication configuration properties of a server. + */ + authConfig?: AuthConfig; + + /** + * Data encryption properties of a server. + */ + dataEncryption?: DataEncryption; + + /** + * Backup properties of a server. + */ + backup?: Backup; + + /** + * Network properties of a server. Only required if you want your server to be integrated into a virtual network provided by customer. + */ + network?: Network; + + /** + * High availability properties of a server. + */ + highAvailability?: HighAvailability; + + /** + * Maintenance window properties of a server. + */ + @visibility(Lifecycle.Read, Lifecycle.Update) + maintenanceWindow?: MaintenanceWindow; + + /** + * Identifier of the server to be used as the source of the new server. Required when 'createMode' is 'PointInTimeRestore', 'GeoRestore', 'Replica', or 'ReviveDropped'. This property is returned only when the target server is a read replica. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + sourceServerResourceId?: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.DBforPostgreSQL/flexibleServers"; + } + ]>; + + /** + * Creation time (in ISO8601 format) of the backup which you want to restore in the new server. It's required when 'createMode' is 'PointInTimeRestore', 'GeoRestore', or 'ReviveDropped'. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Create) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + pointInTimeUTC?: utcDateTime; + + /** + * Availability zone of a server. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + availabilityZone?: string = ""; + + /** + * Role of the server in a replication set. + */ + replicationRole?: ReplicationRole; + + /** + * Maximum number of read replicas allowed for a server. + */ + @visibility(Lifecycle.Read) + replicaCapacity?: int32; + + /** + * Read replica properties of a server. Required only in case that you want to promote a server. + */ + @visibility(Lifecycle.Read, Lifecycle.Update) + replica?: Replica; + + /** + * Creation mode of a new server. + */ + @visibility(Lifecycle.Create, Lifecycle.Update) + createMode?: CreateMode; + + /** + * List of private endpoint connections associated with the specified server. + */ + @visibility(Lifecycle.Read) + privateEndpointConnections?: PrivateEndpointConnection[]; + + /** + * Cluster properties of a server. + */ + @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) + cluster?: Cluster; +} + +/** + * Storage properties of a server. + */ +model Storage { + /** + * Size of storage assigned to a server. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + storageSizeGB?: int32; + + /** + * Flag to enable or disable the automatic growth of storage size of a server when available space is nearing zero and conditions allow for automatically growing storage size. + */ + autoGrow?: StorageAutoGrow; + + /** + * Storage tier of a server. + */ + tier?: AzureManagedDiskPerformanceTier; + + /** + * Maximum IOPS supported for storage. Required when type of storage is PremiumV2_LRS or UltraSSD_LRS. + */ + iops?: int32; + + /** + * Maximum throughput supported for storage. Required when type of storage is PremiumV2_LRS or UltraSSD_LRS. + */ + throughput?: int32; + + /** + * Type of storage assigned to a server. Allowed values are Premium_LRS, PremiumV2_LRS, or UltraSSD_LRS. If not specified, it defaults to Premium_LRS. + */ + type?: StorageType; +} + +/** + * Authentication configuration properties of a server. + */ +model AuthConfig { + /** + * Indicates if the server supports Microsoft Entra authentication. + */ + activeDirectoryAuth?: MicrosoftEntraAuth; + + /** + * Indicates if the server supports password based authentication. + */ + passwordAuth?: PasswordBasedAuth = PasswordBasedAuth.Enabled; + + /** + * Identifier of the tenant of the delegated resource. + */ + tenantId?: string = ""; +} + +/** + * Data encryption properties of a server. + */ +model DataEncryption { + /** + * URI of the key in Azure Key Vault used for data encryption of the primary storage associated to a server. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + primaryKeyURI?: string; + + /** + * Identifier of the user assigned managed identity used to access the key in Azure Key Vault for data encryption of the primary storage associated to a server. + */ + primaryUserAssignedIdentityId?: string; + + /** + * Identifier of the user assigned managed identity used to access the key in Azure Key Vault for data encryption of the geographically redundant storage associated to a server that is configured to support geographically redundant backups. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + geoBackupKeyURI?: string; + + /** + * Identifier of the user assigned managed identity used to access the key in Azure Key Vault for data encryption of the geographically redundant storage associated to a server that is configured to support geographically redundant backups. + */ + geoBackupUserAssignedIdentityId?: string; + + /** + * Data encryption type used by a server. + */ + type?: DataEncryptionType; + + /** + * Status of key used by a server configured with data encryption based on customer managed key, to encrypt the primary storage associated to the server. + */ + @visibility(Lifecycle.Read) + primaryEncryptionKeyStatus?: EncryptionKeyStatus; + + /** + * Status of key used by a server configured with data encryption based on customer managed key, to encrypt the geographically redundant storage associated to the server when it is configured to support geographically redundant backups. + */ + @visibility(Lifecycle.Read) + geoBackupEncryptionKeyStatus?: EncryptionKeyStatus; +} + +/** + * Backup properties of a server. + */ +model Backup { + /** + * Backup retention days for the server. + */ + backupRetentionDays?: int32 = 7; + + /** + * Indicates if the server is configured to create geographically redundant backups. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + geoRedundantBackup?: GeographicallyRedundantBackup = GeographicallyRedundantBackup.Disabled; + + /** + * Earliest restore point time (ISO8601 format) for a server. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + earliestRestoreDate?: utcDateTime; +} + +/** + * Network properties of a server. + */ +model Network { + /** + * Indicates if public network access is enabled or not. This is only supported for servers that are not integrated into a virtual network which is owned and provided by customer when server is deployed. + */ + publicNetworkAccess?: ServerPublicNetworkAccessState; + + /** + * Resource identifier of the delegated subnet. Required during creation of a new server, in case you want the server to be integrated into your own virtual network. For an update operation, you only have to provide this property if you want to change the value assigned for the private DNS zone. + */ + delegatedSubnetResourceId?: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.Network/virtualNetworks/subnets"; + } + ]>; + + /** + * Identifier of the private DNS zone. Required during creation of a new server, in case you want the server to be integrated into your own virtual network. For an update operation, you only have to provide this property if you want to change the value assigned for the private DNS zone. + */ + privateDnsZoneArmResourceId?: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.Network/privateDnsZones"; + } + ]>; +} + +/** + * High availability properties of a server. + */ +model HighAvailability { + /** + * High availability mode for a server. + */ + mode?: PostgreSqlFlexibleServerHighAvailabilityMode = PostgreSqlFlexibleServerHighAvailabilityMode.Disabled; + + /** + * Possible states of the standby server created when high availability is set to SameZone or ZoneRedundant. + */ + @visibility(Lifecycle.Read) + state?: HighAvailabilityState; + + /** + * Availability zone associated to the standby server created when high availability is set to SameZone or ZoneRedundant. + */ + standbyAvailabilityZone?: string = ""; +} + +/** + * Maintenance window properties of a server. + */ +model MaintenanceWindow { + /** + * Indicates whether custom window is enabled or disabled. + */ + customWindow?: string = "Disabled"; + + /** + * Start hour to be used for maintenance window. + */ + startHour?: int32 = 0; + + /** + * Start minute to be used for maintenance window. + */ + startMinute?: int32 = 0; + + /** + * Day of the week to be used for maintenance window. + */ + dayOfWeek?: int32 = 0; +} + +/** + * Replica properties of a server. + */ +model Replica { + /** + * Role of the server in a replication set. + */ + role?: ReplicationRole; + + /** + * Maximum number of read replicas allowed for a server. + */ + @visibility(Lifecycle.Read) + capacity?: int32; + + /** + * Indicates the replication state of a read replica. This property is returned only when the target server is a read replica. Possible values are Active, Broken, Catchup, Provisioning, Reconfiguring, and Updating + */ + @visibility(Lifecycle.Read) + replicationState?: ReplicationState; + + /** + * Type of operation to apply on the read replica. This property is write only. Standalone means that the read replica will be promoted to a standalone server, and will become a completely independent entity from the replication set. Switchover means that the read replica will roles with the primary server. + */ + @visibility(Lifecycle.Update) + promoteMode?: ReadReplicaPromoteMode; + + /** + * Data synchronization option to use when processing the operation specified in the promoteMode property. This property is write only. + */ + @visibility(Lifecycle.Update) + promoteOption?: ReadReplicaPromoteOption; +} + +/** + * Cluster properties of a server. + */ +model Cluster { + /** + * Number of nodes assigned to the elastic cluster. + */ + clusterSize?: int32 = 0; + + /** + * Default database name for the elastic cluster. + */ + defaultDatabaseName?: string; +} + +/** + * Represents a server to be updated. + */ +model ServerForPatch { + /** + * Compute tier and size of a server. + */ + sku?: SkuForPatch; + + /** + * Describes the identity of the application. + */ + identity?: UserAssignedIdentity; + + /** + * Properties of the server. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: ServerPropertiesForPatch; + + /** + * Application-specific metadata in the form of key-value pairs. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record; +} + +/** + * Compute information of a server. + */ +model SkuForPatch { + /** + * Name by which is known a given compute size assigned to a server. + */ + name?: string; + + /** + * Tier of the compute assigned to a server. + */ + tier?: SkuTier; +} + +/** + * Properties of a server. + */ +model ServerPropertiesForPatch { + /** + * Name of the login designated as the first password based administrator assigned to your instance of PostgreSQL. Must be specified the first time that you enable password based authentication on a server. Once set to a given value, it cannot be changed for the rest of the life of a server. If you disable password based authentication on a server which had it enabled, this password based role isn't deleted. + */ + @visibility(Lifecycle.Read) + administratorLogin?: string; + + /** + * Password assigned to the administrator login. As long as password authentication is enabled, this password can be changed at any time. + */ + @visibility(Lifecycle.Update) + @secret + administratorLoginPassword?: string; + + /** + * Major version of PostgreSQL database engine. + */ + version?: PostgresMajorVersion; + + /** + * Storage properties of a server. + */ + storage?: Storage; + + /** + * Backup properties of a server. + */ + backup?: BackupForPatch; + + /** + * High availability properties of a server. + */ + highAvailability?: HighAvailabilityForPatch; + + /** + * Maintenance window properties of a server. + */ + @visibility(Lifecycle.Read, Lifecycle.Update) + maintenanceWindow?: MaintenanceWindowForPatch; + + /** + * Authentication configuration properties of a server. + */ + authConfig?: AuthConfigForPatch; + + /** + * Data encryption properties of a server. + */ + dataEncryption?: DataEncryption; + + /** + * Availability zone of a server. + */ + availabilityZone?: string = ""; + + /** + * Update mode of an existing server. + */ + @visibility(Lifecycle.Update) + createMode?: CreateModeForPatch; + + /** + * Role of the server in a replication set. + */ + replicationRole?: ReplicationRole; + + /** + * Read replica properties of a server. Required only in case that you want to promote a server. + */ + @visibility(Lifecycle.Read, Lifecycle.Update) + replica?: Replica; + + /** + * Network properties of a server. Only required if you want your server to be integrated into a virtual network provided by customer. + */ + network?: Network; + + /** + * Cluster properties of a server. + */ + @visibility(Lifecycle.Read, Lifecycle.Update) + cluster?: Cluster; +} + +/** + * Backup properties of a server. + */ +model BackupForPatch { + /** + * Backup retention days for the server. + */ + backupRetentionDays?: int32; + + /** + * Indicates if the server is configured to create geographically redundant backups. + */ + @visibility(Lifecycle.Read) + geoRedundantBackup?: GeographicallyRedundantBackup; + + /** + * Earliest restore point time (ISO8601 format) for a server. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + earliestRestoreDate?: utcDateTime; +} + +/** + * High availability properties of a server. + */ +model HighAvailabilityForPatch { + /** + * High availability mode for a server. + */ + mode?: PostgreSqlFlexibleServerHighAvailabilityMode; + + /** + * Possible states of the standby server created when high availability is set to SameZone or ZoneRedundant. + */ + @visibility(Lifecycle.Read) + state?: HighAvailabilityState; + + /** + * Availability zone associated to the standby server created when high availability is set to SameZone or ZoneRedundant. + */ + standbyAvailabilityZone?: string = ""; +} + +/** + * Maintenance window properties of a server. + */ +model MaintenanceWindowForPatch { + /** + * Indicates whether custom window is enabled or disabled. + */ + customWindow?: string; + + /** + * Start hour to be used for maintenance window. + */ + startHour?: int32; + + /** + * Start minute to be used for maintenance window. + */ + startMinute?: int32; + + /** + * Day of the week to be used for maintenance window. + */ + dayOfWeek?: int32; +} + +/** + * Authentication configuration properties of a server. + */ +model AuthConfigForPatch { + /** + * Indicates if the server supports Microsoft Entra authentication. + */ + activeDirectoryAuth?: MicrosoftEntraAuth; + + /** + * Indicates if the server supports password based authentication. + */ + passwordAuth?: PasswordBasedAuth; + + /** + * Identifier of the tenant of the delegated resource. + */ + tenantId?: string; +} + +/** + * PostgreSQL database engine restart parameters. + */ +model RestartParameter { + /** + * Indicates if restart the PostgreSQL database engine should failover or switch over from primary to standby. This only works if server has high availability enabled. + */ + restartWithFailover?: boolean; + + /** + * Failover mode. + */ + failoverMode?: FailoverMode; +} + +/** + * List of available object recommendations. + */ +model ObjectRecommendationList is Azure.Core.Page; + +/** + * Object recommendation properties. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ObjectRecommendation + extends Azure.ResourceManager.CommonTypes.ProxyResource { + /** + * Always empty. + */ + kind?: string; + + /** + * Properties of an object recommendation. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + properties?: ObjectRecommendationProperties; +} + +/** + * Object recommendation properties. + */ +model ObjectRecommendationProperties { + /** + * Creation time (UTC) of this recommendation. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + initialRecommendedTime?: utcDateTime; + + /** + * Last time (UTC) that this recommendation was produced. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastRecommendedTime?: utcDateTime; + + /** + * Number of times this recommendation has been produced. + */ + timesRecommended?: int32; + + /** + * List of identifiers for all queries identified as targets for improvement if the recommendation is applied. The list is only populated for CREATE INDEX recommendations. + */ + improvedQueryIds?: int64[]; + + /** + * Reason for this recommendation. + */ + recommendationReason?: string; + + /** + * Current state. + */ + currentState?: string; + + /** + * Type for this recommendation. + */ + recommendationType?: RecommendationTypeEnum; + + /** + * Implementation details for the recommended action. + */ + implementationDetails?: ObjectRecommendationPropertiesImplementationDetails; + + /** + * Workload information for the recommended action. + */ + analyzedWorkload?: ObjectRecommendationPropertiesAnalyzedWorkload; + + /** + * Estimated impact of this recommended action. + */ + @visibility(Lifecycle.Read) + @identifiers(#["dimensionName"]) + estimatedImpact?: ImpactRecord[]; + + /** + * Recommendation details for the recommended action. + */ + @visibility(Lifecycle.Read) + details?: ObjectRecommendationDetails; +} + +/** + * Implementation details for the recommended action. + */ +model ObjectRecommendationPropertiesImplementationDetails { + /** + * Method of implementation for recommended action. + */ + method?: string; + + /** + * Implementation script for the recommended action. + */ + script?: string; +} + +/** + * Workload information for the recommended action. + */ +model ObjectRecommendationPropertiesAnalyzedWorkload { + /** + * Start time (UTC) of the workload analyzed. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + startTime?: utcDateTime; + + /** + * End time (UTC) of the workload analyzed. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + endTime?: utcDateTime; + + /** + * Number of queries from the workload that were examined to produce this recommendation. For DROP INDEX recommendations it's 0 (zero). + */ + queryCount?: int32; +} + +/** + * Impact on some metric if this recommended action is applied. + */ +model ImpactRecord { + /** + * Dimension name. + */ + dimensionName?: string; + + /** + * Dimension unit. + */ + unit?: string; + + /** + * Optional property that can be used to store the identifier of the query, if the metric is for a specific query. + */ + queryId?: int64; + + /** + * Absolute value. + */ + absoluteValue?: float64; +} + +/** + * Recommendation details for the recommended action. + */ +model ObjectRecommendationDetails { + /** + * Database name. + */ + databaseName?: string; + + /** + * Schema name. + */ + schema?: string; + + /** + * Table name. + */ + table?: string; + + /** + * Index type. + */ + indexType?: string; + + /** + * Index name. + */ + indexName?: string; + + /** + * Index columns. + */ + indexColumns?: string[]; + + /** + * Index included columns. + */ + includedColumns?: string[]; +} + +/** + * List of server tuning options. + */ +model TuningOptionsList is Azure.Core.Page; + +/** + * Pair of virtual endpoints for a server. + */ +model VirtualEndpointResourceForPatch { + /** + * Properties of the pair of virtual endpoints. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: VirtualEndpointResourceProperties; +} + +/** + * Properties of a pair of virtual endpoints. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model VirtualEndpointResourceProperties { + /** + * Type of endpoint for the virtual endpoints. + */ + endpointType?: VirtualEndpointType; + + /** + * List of servers that one of the virtual endpoints can refer to. + */ + members?: string[]; + + /** + * List of virtual endpoints for a server. + */ + @visibility(Lifecycle.Read) + virtualEndpoints?: string[]; +} + +/** + * List of virtual endpoints. + */ +model VirtualEndpointsList is Azure.Core.Page; + +/** + * Virtual network subnet usage parameter + */ +model VirtualNetworkSubnetUsageParameter { + /** + * Virtual network resource id. + */ + virtualNetworkArmResourceId?: string; +} + +/** + * Virtual network subnet usage data. + */ +model VirtualNetworkSubnetUsageModel { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + @identifiers(#["subnetName"]) + delegatedSubnetsUsage?: DelegatedSubnetUsage[]; + + /** + * location of the delegated subnet usage + */ + @visibility(Lifecycle.Read) + location?: string; + + /** + * subscriptionId of the delegated subnet usage + */ + @visibility(Lifecycle.Read) + subscriptionId?: string; +} + +/** + * Delegated subnet usage data. + */ +model DelegatedSubnetUsage { + /** + * Name of the delegated subnet for which IP addresses are in use + */ + @visibility(Lifecycle.Read) + subnetName?: string; + + /** + * Number of IP addresses used by the delegated subnet + */ + @visibility(Lifecycle.Read) + usage?: int64; +} + +/** + * Private DNS suffix. + */ +@mediaTypeHint("application/json") +scalar PrivateDnsZoneSuffix extends string; + +/** + * Custom error response for the service. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@error +model CustomErrorResponse { + @body + error: Azure.ResourceManager.ErrorResponse; + + @header("x-ms-error-code") + @doc("ErrorCode string in the event of a failure.") + errorCode?: string; + + @header("x-ms-request-id") + @doc("A unique ID for the current operation, service generated. All the resource providers must return this value in the response headers to facilitate debugging.") + requestId?: string; +} + +@secret +scalar secretString extends string; + +model OperationList is Azure.Core.Page; +@@visibility(AdvancedThreatProtectionSettingsList.value, Lifecycle.Read); +@@visibility(CapabilityList.value, Lifecycle.Read); +@@visibility(MigrationList.value, Lifecycle.Read); +@@visibility(PrivateEndpointConnectionList.value, Lifecycle.Read); +@@visibility(PrivateLinkResourceList.value, Lifecycle.Read); +@@visibility(QuotaUsageList.value, Lifecycle.Read); +@@identifiers(CapabilityList.value, #["name"]); +@@identifiers(ObjectRecommendationList.value, #["name"]); +@@identifiers(OperationList.value, #["name"]); +@@identifiers(QuotaUsageList.value, #["name"]); +@@identifiers(TuningOptionsList.value, #["name"]); diff --git a/specification/postgresql/DBforPostgreSQL.Management/routes.tsp b/specification/postgresql/DBforPostgreSQL.Management/routes.tsp new file mode 100644 index 000000000000..fb70b09ab94d --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/routes.tsp @@ -0,0 +1,136 @@ +// FIXME: Operations in this file are not detected as a resource operation, please confirm the conversion result manually + +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models.tsp"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using TypeSpec.OpenAPI; + +namespace Microsoft.DBforPostgreSQL; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface CapabilitiesByLocationOperationGroup { + /** + * Lists the capabilities available in a given location for a specific subscription. + */ + @list + @autoRoute + @get + @action("capabilities") + list is ArmProviderActionSync< + Response = CapabilityList, + Scope = SubscriptionActionScope, + Parameters = { + /** + * The name of the location. + */ + @minLength(1) + @pattern("^[-\\w\\._]+$") + @path + @segment("locations") + locationName: string; + } + >; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface NameAvailabilityOperationGroup { + /** + * Checks the validity and availability of the given name, to assign it to a new server or to use it as the base name of a new pair of virtual endpoints. + */ + @autoRoute + @action("checkNameAvailability") + checkGlobally is ArmProviderActionSync< + Request = Azure.ResourceManager.CommonTypes.CheckNameAvailabilityRequest, + Response = NameAvailabilityModel, + Scope = SubscriptionActionScope, + Parameters = {} + >; + /** + * Check the availability of name for resource + */ + @autoRoute + @action("checkNameAvailability") + checkWithLocation is ArmProviderActionSync< + Request = Azure.ResourceManager.CommonTypes.CheckNameAvailabilityRequest, + Response = NameAvailabilityModel, + Scope = SubscriptionActionScope, + Parameters = { + /** + * The name of the location. + */ + @minLength(1) + @pattern("^[-\\w\\._]+$") + @path + @segment("locations") + locationName: string; + } + >; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface PrivateDnsZoneSuffixOperationGroup { + /** + * Gets the private DNS zone suffix. + */ + @autoRoute + @action("getPrivateDnsZoneSuffix") + get is ArmProviderActionSync; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface QuotaUsagesOperationGroup { + /** + * Get quota usages at specified location in a given subscription. + */ + @autoRoute + @get + @list + @action("resourceType/flexibleServers/usages") + list is ArmProviderActionSync< + Response = QuotaUsageList, + Scope = SubscriptionActionScope, + Parameters = { + /** + * The name of the location. + */ + @minLength(1) + @pattern("^[-\\w\\._]+$") + @path + @segment("locations") + locationName: string; + } + >; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface VirtualNetworkSubnetUsageOperationGroup { + /** + * Lists the virtual network subnet usage for a given virtual network. + */ + @autoRoute + @action("checkVirtualNetworkSubnetUsage") + list is ArmProviderActionSync< + Request = VirtualNetworkSubnetUsageParameter, + Response = VirtualNetworkSubnetUsageModel, + Scope = SubscriptionActionScope, + Parameters = { + /** + * The name of the location. + */ + @minLength(1) + @pattern("^[-\\w\\._]+$") + @path + @segment("locations") + locationName: string; + } + >; +} diff --git a/specification/postgresql/DBforPostgreSQL.Management/tspconfig.yaml b/specification/postgresql/DBforPostgreSQL.Management/tspconfig.yaml new file mode 100644 index 000000000000..4870f0104ea2 --- /dev/null +++ b/specification/postgresql/DBforPostgreSQL.Management/tspconfig.yaml @@ -0,0 +1,50 @@ +parameters: + "service-dir": + default: "sdk/postgresql" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + omit-unreachable-types: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/openapi.json" + examples-dir: "{project-root}/examples" + emit-lro-options: "all" + "@azure-typespec/http-client-csharp-mgmt": + emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" + package-name: "Azure.ResourceManager.PostgreSql" + namespace: "{package-name}" + "@azure-tools/typespec-python": + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-postgresql" + namespace: "azure.mgmt.postgresql" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + service-dir: "sdk/postgresqlflexibleserver" + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-postgresqlflexibleserver" + namespace: "com.azure.resourcemanager.postgresqlflexibleserver" + service-name: "PostgreSql" + flavor: azure + use-object-for-unknown: true + generate-async-methods: true + "@azure-tools/typespec-ts": + emitter-output-dir: "{output-dir}/{service-dir}/arm-postgresql-flexible" + flavor: "azure" + experimental-extensible-enums: true + package-details: + name: "@azure/arm-postgresql-flexible" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/postgresql" + emitter-output-dir: "{output-dir}/{service-dir}/armpostgresql" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armpostgresql" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/postgresql/cspell.yaml b/specification/postgresql/cspell.yaml index dd1325461716..156ee49ac18c 100644 --- a/specification/postgresql/cspell.yaml +++ b/specification/postgresql/cspell.yaml @@ -15,6 +15,7 @@ words: - tigger - vcore - vcores + - Entras overrides: - filename: >- **/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/preview/**/*json diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/AdministratorsMicrosoftEntra.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/AdministratorsMicrosoftEntra.json deleted file mode 100644 index 457ca561752b..000000000000 --- a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/AdministratorsMicrosoftEntra.json +++ /dev/null @@ -1,435 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PostgreSQLManagementClient", - "description": "The Azure Database for PostgreSQL management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, network configuration, security alert policies, log files and configurations with new business model.", - "version": "2025-08-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/administrators/{objectId}": { - "put": { - "tags": [ - "AdministratorsMicrosoftEntra" - ], - "operationId": "AdministratorsMicrosoftEntra_CreateOrUpdate", - "x-ms-examples": { - "Add a server administrator associated to a Microsoft Entra principal.": { - "$ref": "./examples/AdministratorsMicrosoftEntraAdd.json" - } - }, - "description": "Creates a new server administrator associated to a Microsoft Entra principal.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/ObjectIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/AdministratorMicrosoftEntraAdd" - }, - "description": "Required parameters for adding a server administrator associated to a Microsoft Entra principal." - } - ], - "responses": { - "202": { - "description": "Accepted.", - "headers": { - "Location": { - "type": "string" - }, - "Azure-AsyncOperation": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation", - "final-state-schema": "#/definitions/AdministratorMicrosoftEntra" - } - }, - "delete": { - "tags": [ - "AdministratorsMicrosoftEntra" - ], - "operationId": "AdministratorsMicrosoftEntra_Delete", - "x-ms-examples": { - "Delete a server administrator associated to a Microsoft Entra principal.": { - "$ref": "./examples/AdministratorsMicrosoftEntraDelete.json" - } - }, - "description": "Deletes an existing server administrator associated to a Microsoft Entra principal.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/ObjectIdParameter" - } - ], - "responses": { - "202": { - "description": "Accepted.", - "headers": { - "Location": { - "type": "string" - }, - "Azure-AsyncOperation": { - "type": "string" - } - } - }, - "204": { - "description": "No Content." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - }, - "get": { - "tags": [ - "AdministratorsMicrosoftEntra" - ], - "operationId": "AdministratorsMicrosoftEntra_Get", - "x-ms-examples": { - "Get information about a server administrator associated to a Microsoft Entra principal.": { - "$ref": "./examples/AdministratorsMicrosoftEntraGet.json" - } - }, - "description": "Gets information about a server administrator associated to a Microsoft Entra principal.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/ObjectIdParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/AdministratorMicrosoftEntra" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/administrators": { - "get": { - "tags": [ - "AdministratorsMicrosoftEntra" - ], - "operationId": "AdministratorsMicrosoftEntra_ListByServer", - "x-ms-examples": { - "List information about all server administrators associated to Microsoft Entra principals.": { - "$ref": "./examples/AdministratorsMicrosoftEntraListByServer.json" - } - }, - "description": "List all server administrators associated to a Microsoft Entra principal.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/AdministratorMicrosoftEntraList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "AdministratorMicrosoftEntraAdd": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/AdministratorMicrosoftEntraPropertiesForAdd", - "x-ms-client-flatten": true, - "description": "Properties of the server administrator associated to a Microsoft Entra principal." - } - }, - "description": "Server administrator associated to a Microsoft Entra principal." - }, - "AdministratorMicrosoftEntraPropertiesForAdd": { - "type": "object", - "properties": { - "principalType": { - "type": "string", - "description": "Type of Microsoft Entra principal to which the server administrator is associated.", - "enum": [ - "Unknown", - "User", - "Group", - "ServicePrincipal" - ], - "x-ms-enum": { - "name": "PrincipalType", - "modelAsString": true, - "values": [ - { - "value": "Unknown", - "description": "The principal type is not known or not specified." - }, - { - "value": "User", - "description": "A Microsoft Entra user." - }, - { - "value": "Group", - "description": "A Microsoft Entra group." - }, - { - "value": "ServicePrincipal", - "description": "A Microsoft Entra service principal, typically representing an application or service identity" - } - ] - }, - "x-ms-mutability": [ - "create", - "update", - "read" - ] - }, - "principalName": { - "type": "string", - "description": "Name of the Microsoft Entra principal.", - "x-ms-mutability": [ - "create", - "update", - "read" - ] - }, - "tenantId": { - "type": "string", - "description": "Identifier of the tenant in which the Microsoft Entra principal exists.", - "x-ms-mutability": [ - "create", - "update" - ] - } - }, - "description": "Properties of a server administrator associated to a Microsoft Entra principal." - }, - "AdministratorMicrosoftEntraProperties": { - "type": "object", - "properties": { - "principalType": { - "type": "string", - "description": "Type of Microsoft Entra principal to which the server administrator is associated.", - "enum": [ - "Unknown", - "User", - "Group", - "ServicePrincipal" - ], - "x-ms-enum": { - "name": "PrincipalType", - "modelAsString": true, - "values": [ - { - "value": "Unknown", - "description": "The principal type is not known or not specified." - }, - { - "value": "User", - "description": "A Microsoft Entra user." - }, - { - "value": "Group", - "description": "A Microsoft Entra group." - }, - { - "value": "ServicePrincipal", - "description": "A Microsoft Entra service principal, typically representing an application or service identity" - } - ] - }, - "x-ms-mutability": [ - "create", - "update", - "read" - ] - }, - "principalName": { - "type": "string", - "description": "Name of the Microsoft Entra principal.", - "x-ms-mutability": [ - "create", - "update", - "read" - ] - }, - "objectId": { - "type": "string", - "description": "Object identifier of the Microsoft Entra principal.", - "x-ms-mutability": [ - "create", - "update", - "read" - ] - }, - "tenantId": { - "type": "string", - "description": "Identifier of the tenant in which the Microsoft Entra principal exists.", - "x-ms-mutability": [ - "create", - "update", - "read" - ] - } - }, - "description": "Properties of a server administrator associated to a Microsoft Entra principal." - }, - "AdministratorMicrosoftEntra": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/AdministratorMicrosoftEntraProperties", - "x-ms-client-flatten": true, - "description": "Properties of a server administrator associated to a Microsoft Entra principal." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ], - "required": [ - "properties" - ], - "description": "Server administrator associated to a Microsoft Entra principal." - }, - "AdministratorMicrosoftEntraList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/AdministratorMicrosoftEntra" - }, - "description": "List of server administrators associated to Microsoft Entra principals." - }, - "nextLink": { - "description": "Link used to get the next page of results.", - "type": "string", - "format": "uri" - } - }, - "description": "List of server administrators associated to Microsoft Entra principals." - } - }, - "parameters": { - "ObjectIdParameter": { - "name": "objectId", - "in": "path", - "required": true, - "type": "string", - "description": "Object identifier of the Microsoft Entra principal.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/AdvancedThreatProtectionSettings.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/AdvancedThreatProtectionSettings.json deleted file mode 100644 index 1402db68142e..000000000000 --- a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/AdvancedThreatProtectionSettings.json +++ /dev/null @@ -1,288 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PostgreSQLManagementClient", - "description": "The Azure Database for PostgreSQL management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, administrators, log files, configurations, migrations, advanced threat protection settings with new business model.", - "version": "2025-08-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/advancedThreatProtectionSettings": { - "get": { - "tags": [ - "AdvancedThreatProtectionSettings" - ], - "description": "Lists state of advanced threat protection settings for a server.", - "operationId": "AdvancedThreatProtectionSettings_ListByServer", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/AdvancedThreatProtectionSettingsList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List state of advanced threat protection settings for a server.": { - "$ref": "./examples/AdvancedThreatProtectionSettingsListByServer.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/advancedThreatProtectionSettings/{threatProtectionName}": { - "get": { - "tags": [ - "AdvancedThreatProtectionSettings" - ], - "description": "Gets state of advanced threat protection settings for a server.", - "operationId": "AdvancedThreatProtectionSettings_Get", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/ThreatProtectionNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/AdvancedThreatProtectionSettingsModel" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get state of advanced threat protection settings for a server.": { - "$ref": "./examples/AdvancedThreatProtectionSettingsGet.json" - } - } - }, - "put": { - "tags": [ - "AdvancedThreatProtectionSettings" - ], - "description": "Creates or updates a server's Advanced Threat Protection settings.", - "operationId": "ServerThreatProtectionSettings_CreateOrUpdate", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/ThreatProtectionNameParameter" - }, - { - "name": "parameters", - "in": "body", - "description": "The Advanced Threat Protection state for the server.", - "required": true, - "schema": { - "$ref": "#/definitions/AdvancedThreatProtectionSettingsModel" - } - } - ], - "responses": { - "202": { - "description": "Accepted.", - "headers": { - "Location": { - "type": "string" - }, - "Azure-AsyncOperation": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation", - "final-state-schema": "#/definitions/AdvancedThreatProtectionSettingsModel" - }, - "x-ms-examples": { - "Update the advanced threat protection settings of a server.": { - "$ref": "./examples/AdvancedThreatProtectionSettingsCreateOrUpdate.json" - } - } - } - } - }, - "definitions": { - "AdvancedThreatProtectionSettingsProperties": { - "description": "Properties of advanced threat protection state for a server.", - "required": [ - "state" - ], - "type": "object", - "properties": { - "state": { - "description": "Specifies the state of the advanced threat protection, whether it is enabled, disabled, or a state has not been applied yet on the server.", - "enum": [ - "Enabled", - "Disabled" - ], - "type": "string", - "x-ms-enum": { - "name": "ThreatProtectionState", - "modelAsString": false, - "values": [ - { - "value": "Enabled", - "description": "Advanced threat protection is enabled." - }, - { - "value": "Disabled", - "description": "Advanced threat protection is disabled." - } - ] - } - }, - "creationTime": { - "format": "date-time", - "description": "Specifies the creation time (UTC) of the policy.", - "type": "string", - "readOnly": true - } - } - }, - "AdvancedThreatProtectionSettingsModel": { - "description": "Advanced threat protection settings of the server.", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "$ref": "#/definitions/AdvancedThreatProtectionSettingsProperties", - "description": "Advanced threat protection properties.", - "x-ms-client-flatten": true - } - } - }, - "AdvancedThreatProtectionSettingsList": { - "description": "List of advanced threat protection settings for a server.", - "type": "object", - "properties": { - "value": { - "description": "Array of results.", - "type": "array", - "items": { - "$ref": "#/definitions/AdvancedThreatProtectionSettingsModel" - }, - "readOnly": true - }, - "nextLink": { - "description": "Link used to get the next page of results.", - "type": "string", - "format": "uri" - } - } - } - }, - "parameters": { - "ThreatProtectionNameParameter": { - "name": "threatProtectionName", - "in": "path", - "description": "Name of the advanced threat protection settings.", - "required": true, - "type": "string", - "enum": [ - "Default" - ], - "x-ms-enum": { - "name": "ThreatProtectionName", - "modelAsString": true, - "values": [ - { - "value": "Default", - "description": "Default advanced threat protection settings." - } - ] - }, - "pattern": "^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/BackupsAutomaticAndOnDemand.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/BackupsAutomaticAndOnDemand.json deleted file mode 100644 index fe4c3eae064e..000000000000 --- a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/BackupsAutomaticAndOnDemand.json +++ /dev/null @@ -1,322 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PostgreSQLManagementClient", - "description": "The Azure Database for PostgreSQL management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, network configuration, security alert policies, log files and configurations with new business model.", - "version": "2025-08-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/backups/{backupName}": { - "put": { - "tags": [ - "BackupsAutomaticAndOnDemand" - ], - "operationId": "BackupsAutomaticAndOnDemand_Create", - "x-ms-examples": { - "Create an on demand backup of a server.": { - "$ref": "./examples/BackupsAutomaticAndOnDemandCreate.json" - } - }, - "description": "Creates an on demand backup of a server.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/BackupNameParameter" - } - ], - "responses": { - "202": { - "description": "Accepted.", - "headers": { - "Location": { - "type": "string" - }, - "Azure-AsyncOperation": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation", - "final-state-schema": "#/definitions/BackupAutomaticAndOnDemand" - } - }, - "delete": { - "tags": [ - "BackupsAutomaticAndOnDemand" - ], - "operationId": "BackupsAutomaticAndOnDemand_Delete", - "x-ms-examples": { - "Delete an on demand backup, given its name.": { - "$ref": "./examples/BackupsAutomaticAndOnDemandDelete.json" - } - }, - "description": "Deletes a specific backup, given its name.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/BackupNameParameter" - } - ], - "responses": { - "202": { - "description": "Accepted.", - "headers": { - "Location": { - "type": "string" - }, - "Azure-AsyncOperation": { - "type": "string" - } - } - }, - "204": { - "description": "No Content." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - }, - "get": { - "tags": [ - "BackupsAutomaticAndOnDemand" - ], - "operationId": "BackupsAutomaticAndOnDemand_Get", - "x-ms-examples": { - "Get an on demand backup, given its name.": { - "$ref": "./examples/BackupsAutomaticAndOnDemandGet.json" - } - }, - "description": "Gets information of an on demand backup, given its name.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/BackupNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/BackupAutomaticAndOnDemand" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/backups": { - "get": { - "tags": [ - "BackupsAutomaticAndOnDemand" - ], - "operationId": "BackupsAutomaticAndOnDemand_ListByServer", - "x-ms-examples": { - "List all available backups of a server.": { - "$ref": "./examples/BackupsAutomaticAndOnDemandListByServer.json" - } - }, - "description": "Lists all available backups of a server.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/BackupAutomaticAndOnDemandList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "BackupAutomaticAndOnDemandProperties": { - "type": "object", - "properties": { - "backupType": { - "type": "string", - "description": "Type of backup.", - "enum": [ - "Full", - "Customer On-Demand" - ], - "x-ms-enum": { - "name": "BackupType", - "modelAsString": true, - "values": [ - { - "value": "Full", - "description": "A full backup taken automatically by the service. These backups are retained for a period of time as defined by the backup retention policy, and they cannot be deleted by the customer." - }, - { - "value": "Customer On-Demand", - "description": "A full backup triggered by the customer. These backups are retained for a period of time as defined by the backup retention policy, and they can also be deleted by the customer." - } - ] - } - }, - "completedTime": { - "type": "string", - "format": "date-time", - "description": "Time(ISO8601 format) at which the backup was completed." - }, - "source": { - "type": "string", - "description": "Source of the backup." - } - }, - "description": "Properties of a backup." - }, - "BackupAutomaticAndOnDemand": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/BackupAutomaticAndOnDemandProperties", - "x-ms-client-flatten": true, - "description": "Properties of a backup." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ], - "description": "Properties of a backup." - }, - "BackupAutomaticAndOnDemandList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupAutomaticAndOnDemand" - }, - "description": "List of available backups." - }, - "nextLink": { - "description": "Link used to get the next page of results.", - "type": "string", - "format": "uri" - } - }, - "description": "List of backups." - } - }, - "parameters": { - "BackupNameParameter": { - "name": "backupName", - "in": "path", - "required": true, - "type": "string", - "description": "Name of the backup.", - "minLength": 1, - "pattern": "^[-\\w\\._]+$", - "maxLength": 128, - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/BackupsLongTermRetention.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/BackupsLongTermRetention.json deleted file mode 100644 index 8df7f3d78906..000000000000 --- a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/BackupsLongTermRetention.json +++ /dev/null @@ -1,537 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PostgreSQLManagementClient", - "description": "The Azure Database for PostgreSQL management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, network configuration, security alert policies, log files and configurations with new business model.", - "version": "2025-08-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/ltrPreBackup": { - "post": { - "description": "Performs all checks required for a long term retention backup operation to succeed.", - "tags": [ - "BackupsLongTermRetention" - ], - "operationId": "BackupsLongTermRetention_CheckPrerequisites", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "name": "parameters", - "in": "body", - "description": "Request body for operation", - "required": true, - "schema": { - "$ref": "#/definitions/LtrPreBackupRequest" - } - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/LtrPreBackupResponse" - }, - "headers": { - "x-ms-request-id": { - "description": "A unique ID for the current operation, service generated. All the resource providers must return this value in the response headers to facilitate debugging.", - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - }, - "headers": { - "x-ms-error-code": { - "description": "ErrorCode string in the event of a failure.", - "type": "string" - }, - "x-ms-request-id": { - "description": "A unique ID for the current operation, service generated. All the resource providers must return this value in the response headers to facilitate debugging.", - "type": "string" - } - } - } - }, - "x-ms-examples": { - "Perform all checks required for a long term retention backup operation to succeed.": { - "$ref": "./examples/BackupsLongTermRetentionCheckPrerequisites.json" - } - }, - "deprecated": false - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/startLtrBackup": { - "post": { - "description": "Initiates a long term retention backup.", - "tags": [ - "BackupsLongTermRetention" - ], - "operationId": "BackupsLongTermRetention_Start", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "name": "parameters", - "in": "body", - "description": "Request body for operation", - "required": true, - "schema": { - "$ref": "#/definitions/BackupsLongTermRetentionRequest" - } - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/BackupsLongTermRetentionResponse" - }, - "headers": { - "x-ms-request-id": { - "description": "A unique ID for the current operation, service generated. All the resource providers must return this value in the response headers to facilitate debugging.", - "type": "string" - } - } - }, - "202": { - "description": "Accepted.", - "headers": { - "Retry-After": { - "description": "The number of seconds to wait before checking the status of the asynchronous operation.", - "type": "integer", - "format": "int32" - }, - "x-ms-request-id": { - "description": "A unique ID for the current operation, service generated. All the resource providers must return this value in the response headers to facilitate debugging.", - "type": "string" - }, - "Location": { - "description": "URL to retrieve the final result after operation completes.", - "type": "string" - }, - "Azure-AsyncOperation": { - "description": "URL for checking the ongoing status of the operation.", - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - }, - "headers": { - "x-ms-error-code": { - "description": "ErrorCode string in the event of a failure.", - "type": "string" - }, - "x-ms-request-id": { - "description": "A unique ID for the current operation, service generated. All the resource providers must return this value in the response headers to facilitate debugging.", - "type": "string" - } - } - } - }, - "x-ms-examples": { - "Initiate a long term retention backup.": { - "$ref": "./examples/BackupsLongTermRetentionStart.json" - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/ltrBackupOperations/{backupName}": { - "get": { - "tags": [ - "BackupsLongTermRetention" - ], - "operationId": "BackupsLongTermRetention_Get", - "x-ms-examples": { - "Get the results of a long retention backup operation for a server.": { - "$ref": "./examples/BackupsLongTermRetentionGet.json" - } - }, - "description": "Gets the results of a long retention backup operation for a server.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/BackupNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/BackupsLongTermRetentionOperation" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/ltrBackupOperations": { - "get": { - "tags": [ - "BackupsLongTermRetention" - ], - "operationId": "BackupsLongTermRetention_ListByServer", - "x-ms-examples": { - "List the results of the long term retention backup operations for a server.": { - "$ref": "./examples/BackupsLongTermRetentionListByServer.json" - } - }, - "description": "Lists the results of the long term retention backup operations for a server.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/LtrServerBackupOperationList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "BackupRequestBase": { - "description": "BackupRequestBase is the base for all backup request.", - "required": [ - "backupSettings" - ], - "type": "object", - "properties": { - "backupSettings": { - "$ref": "#/definitions/BackupSettings", - "description": "Backup Settings" - } - } - }, - "BackupsLongTermRetentionRequest": { - "description": "The request that is made for a long term retention backup.", - "type": "object", - "properties": { - "targetDetails": { - "$ref": "#/definitions/BackupStoreDetails", - "description": "Backup store detail for target server" - } - }, - "allOf": [ - { - "$ref": "#/definitions/BackupRequestBase" - } - ], - "required": [ - "targetDetails" - ] - }, - "LtrPreBackupRequest": { - "description": "A request that is made for pre-backup.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/BackupRequestBase" - } - ] - }, - "BackupSettings": { - "description": "The settings for the long term backup.", - "type": "object", - "required": [ - "backupName" - ], - "properties": { - "backupName": { - "type": "string", - "description": "Backup Name for the current backup" - } - } - }, - "BackupStoreDetails": { - "description": "Details about the target where the backup content will be stored.", - "required": [ - "sasUriList" - ], - "type": "object", - "properties": { - "sasUriList": { - "description": "List of SAS uri of storage containers where backup data is to be streamed/copied.", - "type": "array", - "items": { - "type": "string", - "description": "SAS URI of Azure Storage Account Container.", - "x-ms-secret": true - } - } - } - }, - "BackupsLongTermRetentionResponseProperties": { - "description": "Response for the pre-backup request.", - "type": "object", - "required": [ - "numberOfContainers" - ], - "properties": { - "numberOfContainers": { - "format": "int32", - "description": "Number of storage containers the plugin will use during backup. More than one containers may be used for size limitations, parallelism, or redundancy etc.", - "type": "integer" - } - } - }, - "LtrBackupOperationResponseProperties": { - "description": "Response for the backup request.", - "type": "object", - "required": [ - "status", - "startTime" - ], - "properties": { - "datasourceSizeInBytes": { - "format": "int64", - "description": "Size of datasource in bytes", - "type": "integer" - }, - "dataTransferredInBytes": { - "format": "int64", - "description": "Data transferred in bytes", - "type": "integer" - }, - "backupName": { - "description": "Name of Backup operation", - "type": "string" - }, - "backupMetadata": { - "description": "Metadata to be stored in RP. Store everything that will be required to perform a successful restore using this Recovery point. e.g. Versions, DataFormat etc", - "type": "string" - }, - "status": { - "description": "Service-set extensible enum indicating the status of operation", - "enum": [ - "Running", - "Cancelled", - "Failed", - "Succeeded" - ], - "type": "string", - "x-ms-enum": { - "name": "ExecutionStatus", - "modelAsString": true, - "values": [ - { - "value": "Running", - "description": "The operation is currently running." - }, - { - "value": "Cancelled", - "description": "The operation was cancelled." - }, - { - "value": "Failed", - "description": "The operation failed." - }, - { - "value": "Succeeded", - "description": "The operation succeeded." - } - ] - } - }, - "startTime": { - "description": "Start time of the operation.", - "format": "date-time", - "type": "string" - }, - "endTime": { - "description": "End time of the operation.", - "format": "date-time", - "type": "string" - }, - "percentComplete": { - "description": "PercentageCompleted", - "format": "double", - "type": "number", - "minimum": 0, - "maximum": 100 - }, - "errorCode": { - "readOnly": true, - "type": "string", - "description": "The error code." - }, - "errorMessage": { - "readOnly": true, - "type": "string", - "description": "The error message." - } - } - }, - "BackupsLongTermRetentionResponse": { - "description": "Response for the LTR backup API call", - "type": "object", - "properties": { - "properties": { - "description": "Long Term Retention Backup Operation Resource Properties", - "x-ms-client-flatten": true, - "$ref": "#/definitions/LtrBackupOperationResponseProperties" - } - } - }, - "BackupsLongTermRetentionOperation": { - "description": "Response for the LTR backup Operation API call", - "type": "object", - "required": [ - "id", - "name" - ], - "properties": { - "properties": { - "description": "Long Term Retention Backup Operation Resource Properties", - "x-ms-client-flatten": true, - "$ref": "#/definitions/LtrBackupOperationResponseProperties" - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ] - }, - "LtrServerBackupOperationList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsLongTermRetentionOperation" - }, - "description": "The list of long term retention server backup operations" - }, - "nextLink": { - "description": "The link used to get the next page of operations.", - "type": "string", - "format": "uri" - } - }, - "description": "A list of long term retention backup operations for server." - }, - "LtrPreBackupResponse": { - "description": "Response for the LTR pre-backup API call", - "type": "object", - "required": [ - "properties" - ], - "properties": { - "properties": { - "description": "Additional Properties for the pre backup response", - "x-ms-client-flatten": true, - "$ref": "#/definitions/BackupsLongTermRetentionResponseProperties" - } - } - } - }, - "parameters": { - "BackupNameParameter": { - "name": "backupName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the backup.", - "x-ms-parameter-location": "method", - "pattern": "^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*" - } - } -} diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Capabilities.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Capabilities.json deleted file mode 100644 index 437e66b57d60..000000000000 --- a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Capabilities.json +++ /dev/null @@ -1,775 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PostgreSQLManagementClient", - "description": "The Azure Database for PostgreSQL management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, network configuration, security alert policies, log files and configurations with new business model.", - "version": "2025-08-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/providers/Microsoft.DBforPostgreSQL/locations/{locationName}/capabilities": { - "get": { - "tags": [ - "CapabilitiesByLocation" - ], - "operationId": "CapabilitiesByLocation_List", - "x-ms-examples": { - "List the capabilities available in a given location for a specific subscription.": { - "$ref": "./examples/CapabilitiesByLocationList.json" - } - }, - "description": "Lists the capabilities available in a given location for a specific subscription.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/LocationNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/CapabilityList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/capabilities": { - "get": { - "tags": [ - "CapabilitiesByServer" - ], - "operationId": "CapabilitiesByServer_List", - "x-ms-examples": { - "List the capabilities available for a given server.": { - "$ref": "./examples/CapabilitiesByServerList.json" - } - }, - "description": "Lists the capabilities available for a given server.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/CapabilityList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "StorageTierCapability": { - "type": "object", - "description": "Capability of a storage tier.", - "properties": { - "name": { - "type": "string", - "description": "Name of the storage tier.", - "readOnly": true - }, - "iops": { - "type": "integer", - "format": "int32", - "description": "Supported IOPS for the storage tier.", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "../../../types/common-types.json#/definitions/CapabilityBase" - } - ] - }, - "StorageMbCapability": { - "type": "object", - "properties": { - "supportedIops": { - "type": "integer", - "format": "int32", - "description": "Minimum IOPS supported by the storage size.", - "readOnly": true - }, - "supportedMaximumIops": { - "type": "integer", - "format": "int32", - "description": "Maximum IOPS supported by the storage size.", - "readOnly": true - }, - "storageSizeMb": { - "type": "integer", - "format": "int64", - "description": "Minimum supported size (in MB) of storage.", - "readOnly": true - }, - "maximumStorageSizeMb": { - "type": "integer", - "format": "int64", - "description": "Maximum supported size (in MB) of storage.", - "readOnly": true - }, - "supportedThroughput": { - "type": "integer", - "format": "int32", - "description": "Minimum supported throughput (in MB/s) of storage.", - "readOnly": true - }, - "supportedMaximumThroughput": { - "type": "integer", - "format": "int32", - "description": "Maximum supported throughput (in MB/s) of storage.", - "readOnly": true - }, - "defaultIopsTier": { - "type": "string", - "description": "Default IOPS for this tier and storage size.", - "readOnly": true - }, - "supportedIopsTiers": { - "type": "array", - "description": "List of all supported storage tiers for this tier and storage size.", - "items": { - "$ref": "#/definitions/StorageTierCapability" - }, - "x-ms-identifiers": [ - "name" - ], - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "../../../types/common-types.json#/definitions/CapabilityBase" - } - ], - "description": "Storage size (in MB) capability." - }, - "ServerSkuCapability": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the compute (SKU).", - "readOnly": true - }, - "vCores": { - "type": "integer", - "format": "int32", - "description": "vCores available for this compute.", - "readOnly": true - }, - "supportedIops": { - "type": "integer", - "format": "int32", - "description": "Maximum IOPS supported by this compute.", - "readOnly": true - }, - "supportedMemoryPerVcoreMb": { - "type": "integer", - "format": "int64", - "description": "Supported memory (in MB) per virtual core assigned to this compute.", - "readOnly": true - }, - "supportedZones": { - "type": "array", - "description": "List of supported availability zones. E.g. '1', '2', '3'", - "items": { - "type": "string" - }, - "readOnly": true - }, - "supportedHaMode": { - "type": "array", - "items": { - "type": "string", - "description": "Modes of high availability supported for this compute.", - "enum": [ - "SameZone", - "ZoneRedundant" - ], - "x-ms-enum": { - "name": "HighAvailabilityMode", - "modelAsString": true, - "values": [ - { - "value": "ZoneRedundant", - "description": "High availability is enabled for the server, with standby server in a different availability zone than that of the primary." - }, - { - "value": "SameZone", - "description": "High availability is enabled for the server, with standby server in the same availability zone as the primary." - } - ] - } - }, - "description": "Modes of high availability supported for this compute.", - "readOnly": true - }, - "supportedFeatures": { - "type": "array", - "description": "Features supported.", - "items": { - "$ref": "#/definitions/SupportedFeature" - }, - "x-ms-identifiers": [ - "name" - ], - "readOnly": true - }, - "securityProfile": { - "type": "string", - "description": "Security profile of the compute. Indicates if it's a Confidential Compute virtual machine.", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "../../../types/common-types.json#/definitions/CapabilityBase" - } - ], - "description": "Capabilities in terms of compute." - }, - "ServerVersion": { - "type": "string", - "description": "Major version of PostgreSQL database engine.", - "enum": [ - "18", - "17", - "16", - "15", - "14", - "13", - "12", - "11" - ], - "x-ms-enum": { - "name": "PostgresMajorVersion", - "modelAsString": true, - "values": [ - { - "value": "18", - "description": "PostgreSQL 18." - }, - { - "value": "17", - "description": "PostgreSQL 17." - }, - { - "value": "16", - "description": "PostgreSQL 16." - }, - { - "value": "15", - "description": "PostgreSQL 15." - }, - { - "value": "14", - "description": "PostgreSQL 14." - }, - { - "value": "13", - "description": "PostgreSQL 13." - }, - { - "value": "12", - "description": "PostgreSQL 12." - }, - { - "value": "11", - "description": "PostgreSQL 11." - } - ] - } - }, - "ServerVersionCapability": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Major version of PostgreSQL database engine.", - "readOnly": true - }, - "supportedVersionsToUpgrade": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Major versions of PostgreSQL database engine to which this version can be automatically upgraded.", - "readOnly": true - }, - "supportedFeatures": { - "type": "array", - "description": "Features supported.", - "items": { - "$ref": "#/definitions/SupportedFeature" - }, - "x-ms-identifiers": [ - "name" - ], - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "../../../types/common-types.json#/definitions/CapabilityBase" - } - ], - "description": "Capabilities in terms of major versions of PostgreSQL database engine." - }, - "StorageEditionCapability": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of storage tier.", - "readOnly": true - }, - "defaultStorageSizeMb": { - "type": "integer", - "format": "int64", - "description": "Default storage size (in MB) for this storage tier.", - "readOnly": true - }, - "supportedStorageMb": { - "type": "array", - "description": "Configurations of storage supported for this storage tier.", - "items": { - "$ref": "#/definitions/StorageMbCapability" - }, - "x-ms-identifiers": [ - "storageSizeMb" - ], - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "../../../types/common-types.json#/definitions/CapabilityBase" - } - ], - "description": "Capabilities in terms of storage tier." - }, - "SupportedFeature": { - "type": "object", - "description": "Features supported.", - "properties": { - "name": { - "type": "string", - "description": "Name of the feature.", - "readOnly": true - }, - "status": { - "type": "string", - "description": "Status of the feature. Indicates if the feature is enabled or not.", - "readOnly": true, - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "FeatureStatus", - "modelAsString": true, - "values": [ - { - "value": "Enabled", - "description": "Feature is enabled." - }, - { - "value": "Disabled", - "description": "Feature is disabled." - } - ] - } - } - } - }, - "FastProvisioningEditionCapability": { - "type": "object", - "description": "Capability of a fast provisioning compute tier.", - "properties": { - "supportedTier": { - "type": "string", - "description": "Compute tier supporting fast provisioning.", - "readOnly": true - }, - "supportedSku": { - "type": "string", - "description": "Compute name (SKU) supporting fast provisioning.", - "readOnly": true - }, - "supportedStorageGb": { - "type": "integer", - "format": "int32", - "description": "Storage size (in GB) supporting fast provisioning.", - "readOnly": true - }, - "supportedServerVersions": { - "type": "string", - "description": "Major version of PostgreSQL database engine supporting fast provisioning.", - "readOnly": true - }, - "serverCount": { - "type": "integer", - "description": "Count of servers in cache matching this specification.", - "format": "int32", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "../../../types/common-types.json#/definitions/CapabilityBase" - } - ] - }, - "ServerEditionCapability": { - "type": "object", - "allOf": [ - { - "$ref": "../../../types/common-types.json#/definitions/CapabilityBase" - } - ], - "properties": { - "name": { - "type": "string", - "description": "Name of compute tier.", - "readOnly": true - }, - "defaultSkuName": { - "type": "string", - "description": "Default compute name (SKU) for this computer tier.", - "readOnly": true - }, - "supportedStorageEditions": { - "type": "array", - "items": { - "$ref": "#/definitions/StorageEditionCapability" - }, - "description": "List of storage editions supported by this compute tier and compute name.", - "readOnly": true, - "x-ms-identifiers": [ - "name" - ] - }, - "supportedServerSkus": { - "type": "array", - "description": "List of supported compute names (SKUs).", - "items": { - "$ref": "#/definitions/ServerSkuCapability" - }, - "x-ms-identifiers": [ - "name" - ], - "readOnly": true - } - }, - "description": "Capabilities in terms of compute tier." - }, - "Capability": { - "type": "object", - "allOf": [ - { - "$ref": "../../../types/common-types.json#/definitions/CapabilityBase" - } - ], - "properties": { - "name": { - "type": "string", - "description": "Name of flexible servers capabilities." - }, - "supportedServerEditions": { - "type": "array", - "items": { - "$ref": "#/definitions/ServerEditionCapability" - }, - "x-ms-identifiers": [ - "name" - ], - "readOnly": true, - "description": "List of supported compute tiers." - }, - "supportedServerVersions": { - "type": "array", - "items": { - "$ref": "#/definitions/ServerVersionCapability" - }, - "x-ms-identifiers": [ - "name" - ], - "description": "List of supported major versions of PostgreSQL database engine.", - "readOnly": true - }, - "supportedFeatures": { - "type": "array", - "description": "Features supported.", - "items": { - "$ref": "#/definitions/SupportedFeature" - }, - "x-ms-identifiers": [ - "name" - ], - "readOnly": true - }, - "fastProvisioningSupported": { - "type": "string", - "description": "Indicates if fast provisioning is supported. 'Enabled' means fast provisioning is supported. 'Disabled' stands for fast provisioning is not supported. Will be deprecated in the future. Look to Supported Features for 'FastProvisioning'.", - "readOnly": true, - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "FastProvisioningSupport", - "modelAsString": true, - "values": [ - { - "value": "Enabled", - "description": "Fast provisioning is supported." - }, - { - "value": "Disabled", - "description": "Fast provisioning is not supported." - } - ] - } - }, - "supportedFastProvisioningEditions": { - "type": "array", - "description": "List of compute tiers supporting fast provisioning.", - "items": { - "$ref": "#/definitions/FastProvisioningEditionCapability" - }, - "x-ms-identifiers": [ - "supportedSku" - ], - "readOnly": true - }, - "geoBackupSupported": { - "type": "string", - "description": "Indicates if geographically redundant backups are supported in this location. 'Enabled' means geographically redundant backups are supported. 'Disabled' stands for geographically redundant backup is not supported. Will be deprecated in the future. Look to Supported Features for 'GeoBackup'.", - "readOnly": true, - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "GeographicallyRedundantBackupSupport", - "modelAsString": true, - "values": [ - { - "value": "Enabled", - "description": "Geographically redundant backups are supported." - }, - { - "value": "Disabled", - "description": "Geographically redundant backups are not supported." - } - ] - } - }, - "zoneRedundantHaSupported": { - "type": "string", - "description": "Indicates if high availability with zone redundancy is supported in this location. 'Enabled' means high availability with zone redundancy is supported. 'Disabled' stands for high availability with zone redundancy is not supported. Will be deprecated in the future. Look to Supported Features for 'ZoneRedundantHa'.", - "readOnly": true, - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "ZoneRedundantHighAvailabilitySupport", - "modelAsString": true, - "values": [ - { - "value": "Enabled", - "description": "High availability with zone redundancy is supported." - }, - { - "value": "Disabled", - "description": "High availability with zone redundancy is not supported." - } - ] - } - }, - "zoneRedundantHaAndGeoBackupSupported": { - "type": "string", - "description": "Indicates if high availability with zone redundancy is supported in conjunction with geographically redundant backups in this location. 'Enabled' means high availability with zone redundancy is supported in conjunction with geographically redundant backups is supported. 'Disabled' stands for high availability with zone redundancy is supported in conjunction with geographically redundant backups is not supported. Will be deprecated in the future. Look to Supported Features for 'ZoneRedundantHaAndGeoBackup'.", - "readOnly": true, - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "ZoneRedundantHighAvailabilityAndGeographicallyRedundantBackupSupport", - "modelAsString": true, - "values": [ - { - "value": "Enabled", - "description": "High availability with zone redundancy is supported in conjunction with geographically redundant backups." - }, - { - "value": "Disabled", - "description": "High availability with zone redundancy is not supported in conjunction with geographically redundant backups." - } - ] - } - }, - "storageAutoGrowthSupported": { - "type": "string", - "description": "Indicates if storage autogrow is supported in this location. 'Enabled' means storage autogrow is supported. 'Disabled' stands for storage autogrow is not supported. Will be deprecated in the future. Look to Supported Features for 'StorageAutoGrowth'.", - "readOnly": true, - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "StorageAutoGrowthSupport", - "modelAsString": true, - "values": [ - { - "value": "Enabled", - "description": "Storage autogrow is supported." - }, - { - "value": "Disabled", - "description": "Storage autogrow is not supported." - } - ] - } - }, - "onlineResizeSupported": { - "type": "string", - "description": "Indicates if resizing the storage, without interrupting the operation of the database engine, is supported in this location for the given subscription. 'Enabled' means resizing the storage without interrupting the operation of the database engine is supported. 'Disabled' means resizing the storage without interrupting the operation of the database engine is not supported. Will be deprecated in the future. Look to Supported Features for 'OnlineResize'.", - "readOnly": true, - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "OnlineStorageResizeSupport", - "modelAsString": true, - "values": [ - { - "value": "Enabled", - "description": "Resizing the storage without interrupting the operation of the database engine is supported." - }, - { - "value": "Disabled", - "description": "Resizing the storage without interrupting the operation of the database engine is not supported." - } - ] - } - }, - "restricted": { - "type": "string", - "description": "Indicates if this location is restricted. 'Enabled' means location is restricted. 'Disabled' stands for location is not restricted. Will be deprecated in the future. Look to Supported Features for 'Restricted'.", - "readOnly": true, - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "LocationRestricted", - "modelAsString": true, - "values": [ - { - "value": "Enabled", - "description": "Location is restricted." - }, - { - "value": "Disabled", - "description": "Location is not restricted." - } - ] - } - } - }, - "description": "Capability for the Azure Database for PostgreSQL flexible server." - }, - "CapabilityList": { - "type": "object", - "properties": { - "value": { - "description": "List of supported capabilities.", - "type": "array", - "items": { - "$ref": "#/definitions/Capability" - }, - "x-ms-identifiers": [ - "name" - ], - "readOnly": true - }, - "nextLink": { - "description": "Link to retrieve next page of results.", - "type": "string", - "format": "uri" - } - }, - "description": "List of capabilities for the Azure Database for PostgreSQL flexible server." - } - }, - "parameters": {} -} diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/CapturedLogs.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/CapturedLogs.json deleted file mode 100644 index 03cb1302f157..000000000000 --- a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/CapturedLogs.json +++ /dev/null @@ -1,149 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PostgreSQLManagementClient", - "description": "The Azure Database for PostgreSQL management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, network configuration, security alert policies, log files and configurations with new business model.", - "version": "2025-08-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/logFiles": { - "get": { - "tags": [ - "CapturedLogs" - ], - "operationId": "CapturedLogs_ListByServer", - "x-ms-examples": { - "List all captured logs for download in a server.": { - "$ref": "./examples/CapturedLogsListByServer.json" - } - }, - "description": "Lists all captured logs for download in a server.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/CapturedLogList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "CapturedLogProperties": { - "type": "object", - "properties": { - "createdTime": { - "type": "string", - "format": "date-time", - "description": "Creation timestamp of the log file." - }, - "lastModifiedTime": { - "type": "string", - "format": "date-time", - "description": "Last modified timestamp of the log file." - }, - "sizeInKb": { - "type": "integer", - "format": "int64", - "description": "Size (in KB) of the log file." - }, - "type": { - "type": "string", - "description": "Type of log file. Can be 'ServerLogs' or 'UpgradeLogs'." - }, - "url": { - "type": "string", - "description": "URL to download the log file from." - } - }, - "description": "Properties of a log file." - }, - "CapturedLog": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/CapturedLogProperties", - "x-ms-client-flatten": true, - "description": "Properties of a log file." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ], - "description": "Log file." - }, - "CapturedLogList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/CapturedLog" - }, - "description": "List of log files in a server." - }, - "nextLink": { - "description": "Link used to get the next page of results.", - "type": "string", - "format": "uri" - } - }, - "description": "List of log files." - } - }, - "parameters": {} -} diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Configurations.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Configurations.json deleted file mode 100644 index c877b027afa1..000000000000 --- a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Configurations.json +++ /dev/null @@ -1,409 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PostgreSQLManagementClient", - "description": "The Azure Database for PostgreSQL management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, network configuration, security alert policies, log files and configurations with new business model.", - "version": "2025-08-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/configurations": { - "get": { - "tags": [ - "Configurations" - ], - "operationId": "Configurations_ListByServer", - "x-ms-examples": { - "List all configurations (also known as server parameters) of a server.": { - "$ref": "./examples/ConfigurationsListByServer.json" - } - }, - "description": "Lists all configurations (also known as server parameters) of a server.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/ConfigurationList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/configurations/{configurationName}": { - "get": { - "tags": [ - "Configurations" - ], - "operationId": "Configurations_Get", - "x-ms-examples": { - "Get information about a specific configuration (also known as server parameter) of a server.": { - "$ref": "./examples/ConfigurationsGet.json" - } - }, - "description": "Gets information about a specific configuration (also known as server parameter) of a server.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/ConfigurationNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/Configuration" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "patch": { - "tags": [ - "Configurations" - ], - "operationId": "Configurations_Update", - "x-ms-examples": { - "Update the value assigned to a specific modifiable configuration (also known as server parameter) of a server.": { - "$ref": "./examples/ConfigurationsUpdate.json" - } - }, - "description": "Updates the value assigned to a specific modifiable configuration (also known as server parameter) of a server.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/ConfigurationNameParameter" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ConfigurationForUpdate" - }, - "description": "Parameters required to update the value of a specific modifiable configuration (also known as server parameter)." - } - ], - "responses": { - "202": { - "description": "Accepted.", - "headers": { - "Location": { - "type": "string" - }, - "Azure-AsyncOperation": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation", - "final-state-schema": "#/definitions/Configuration" - } - }, - "put": { - "tags": [ - "Configurations" - ], - "operationId": "Configurations_Put", - "x-ms-examples": { - "Update, using Put verb, the value assigned to a specific modifiable configuration (also known as server parameter) of a server.": { - "$ref": "./examples/ConfigurationsUpdateUsingPut.json" - } - }, - "description": "Updates, using Put verb, the value assigned to a specific modifiable configuration (also known as server parameter) of a server.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/ConfigurationNameParameter" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ConfigurationForUpdate" - }, - "description": "Parameters required to update the value of a specific modifiable configuration (also known as server parameter)." - } - ], - "responses": { - "202": { - "description": "Accepted.", - "headers": { - "Location": { - "type": "string" - }, - "Azure-AsyncOperation": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation", - "final-state-schema": "#/definitions/Configuration" - } - } - } - }, - "definitions": { - "ConfigurationProperties": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Value of the configuration (also known as server parameter). Required to update the value assigned to a specific modifiable configuration." - }, - "description": { - "type": "string", - "readOnly": true, - "description": "Description of the configuration (also known as server parameter)." - }, - "defaultValue": { - "type": "string", - "readOnly": true, - "description": "Value assigned by default to the configuration (also known as server parameter)." - }, - "dataType": { - "type": "string", - "readOnly": true, - "description": "Data type of the configuration (also known as server parameter).", - "enum": [ - "Boolean", - "Numeric", - "Integer", - "Enumeration", - "String", - "Set" - ], - "x-ms-enum": { - "name": "ConfigurationDataType", - "modelAsString": true, - "values": [ - { - "value": "Boolean", - "description": "A boolean value." - }, - { - "value": "Numeric", - "description": "A numeric value." - }, - { - "value": "Integer", - "description": "An integer value." - }, - { - "value": "Enumeration", - "description": "An enumeration value." - }, - { - "value": "String", - "description": "A string value." - }, - { - "value": "Set", - "description": "A set of values." - } - ] - } - }, - "allowedValues": { - "type": "string", - "readOnly": true, - "description": "Allowed values of the configuration (also known as server parameter)." - }, - "source": { - "type": "string", - "description": "Source of the value assigned to the configuration (also known as server parameter). Required to update the value assigned to a specific modifiable configuration." - }, - "isDynamicConfig": { - "type": "boolean", - "readOnly": true, - "description": "Indicates if it's a dynamic (true) or static (false) configuration (also known as server parameter). Static server parameters require a server restart after changing the value assigned to them, for the change to take effect. Dynamic server parameters do not require a server restart after changing the value assigned to them, for the change to take effect." - }, - "isReadOnly": { - "type": "boolean", - "readOnly": true, - "description": "Indicates if it's a read-only (true) or modifiable (false) configuration (also known as server parameter)." - }, - "isConfigPendingRestart": { - "type": "boolean", - "readOnly": true, - "description": "Indicates if the value assigned to the configuration (also known as server parameter) is pending a server restart for it to take effect." - }, - "unit": { - "type": "string", - "readOnly": true, - "description": "Units in which the configuration (also known as server parameter) value is expressed." - }, - "documentationLink": { - "type": "string", - "readOnly": true, - "description": "Link pointing to the documentation of the configuration (also known as server parameter)." - } - }, - "description": "Properties of a configuration (also known as server parameter)." - }, - "Configuration": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/ConfigurationProperties", - "x-ms-client-flatten": true, - "description": "Properties of a configuration (also known as server parameter)." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ], - "description": "Configuration (also known as server parameter)." - }, - "ConfigurationForUpdate": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/ConfigurationProperties", - "x-ms-client-flatten": true, - "description": "Properties of a configuration (also known as server parameter)." - } - }, - "description": "Configuration (also known as server parameter)." - }, - "ConfigurationList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/Configuration" - }, - "description": "List of configurations (also known as server parameters)." - }, - "nextLink": { - "description": "Link used to get the next page of results.", - "type": "string", - "format": "uri" - } - }, - "description": "List of configurations (also known as server parameters)." - } - }, - "parameters": { - "ConfigurationNameParameter": { - "name": "configurationName", - "in": "path", - "required": true, - "type": "string", - "description": "Name of the configuration (also known as server parameter).", - "minLength": 1, - "pattern": "^[-\\w\\._]+$", - "maxLength": 256, - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Databases.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Databases.json deleted file mode 100644 index 55f852e53016..000000000000 --- a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/Databases.json +++ /dev/null @@ -1,310 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PostgreSQLManagementClient", - "description": "The Azure Database for PostgreSQL management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, network configuration, security alert policies, log files and configurations with new business model.", - "version": "2025-08-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/databases/{databaseName}": { - "put": { - "tags": [ - "Databases" - ], - "operationId": "Databases_Create", - "x-ms-examples": { - "Create a database.": { - "$ref": "./examples/DatabasesCreate.json" - } - }, - "description": "Creates a new database.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/DatabaseNameParameter" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Database" - }, - "description": "Parameters required to create a new database." - } - ], - "responses": { - "202": { - "description": "Accepted.", - "headers": { - "Location": { - "type": "string" - }, - "Azure-AsyncOperation": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation", - "final-state-schema": "#/definitions/Database" - } - }, - "delete": { - "tags": [ - "Databases" - ], - "operationId": "Databases_Delete", - "x-ms-examples": { - "Delete an existing database": { - "$ref": "./examples/DatabasesDelete.json" - } - }, - "description": "Deletes an existing database.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/DatabaseNameParameter" - } - ], - "responses": { - "202": { - "description": "Accepted.", - "headers": { - "Location": { - "type": "string" - }, - "Azure-AsyncOperation": { - "type": "string" - } - } - }, - "204": { - "description": "No Content." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - }, - "get": { - "tags": [ - "Databases" - ], - "operationId": "Databases_Get", - "x-ms-examples": { - "Get information about an existing database.": { - "$ref": "./examples/DatabasesGet.json" - } - }, - "description": "Gets information about an existing database.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/DatabaseNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/Database" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/databases": { - "get": { - "tags": [ - "Databases" - ], - "operationId": "Databases_ListByServer", - "x-ms-examples": { - "List all databases in a server.": { - "$ref": "./examples/DatabasesListByServer.json" - } - }, - "description": "Lists all databases in a server.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/DatabaseList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "DatabaseProperties": { - "type": "object", - "properties": { - "charset": { - "type": "string", - "description": "Character set of the database.", - "pattern": "^[a-zA-Z]+\\w*$" - }, - "collation": { - "type": "string", - "description": "Collation of the database.", - "pattern": "^[a-zA-Z\\-]+([. ]|\\w)*$" - } - }, - "description": "Properties of a database." - }, - "Database": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/DatabaseProperties", - "x-ms-client-flatten": true, - "description": "Properties of a database." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ], - "description": "Represents a database." - }, - "DatabaseList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/Database" - }, - "description": "List of all databases in a server." - }, - "nextLink": { - "description": "Link used to get the next page of results.", - "type": "string", - "format": "uri" - } - }, - "description": "List of all databases in a server." - } - }, - "parameters": { - "DatabaseNameParameter": { - "name": "databaseName", - "in": "path", - "required": true, - "type": "string", - "description": "Name of the database (case-sensitive). Exact database names can be retrieved by getting the list of all existing databases in a server.", - "minLength": 1, - "pattern": "^[a-zA-Z_][\\w\\-]{0,62}$", - "maxLength": 63, - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/FirewallRules.json b/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/FirewallRules.json deleted file mode 100644 index 70e21914cc59..000000000000 --- a/specification/postgresql/resource-manager/Microsoft.DBforPostgreSQL/stable/2025-08-01/FirewallRules.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PostgreSQLManagementClient", - "description": "The Azure Database for PostgreSQL management API provides create, read, update, and delete functionality for Azure PostgreSQL resources including servers, databases, firewall rules, network configuration, security alert policies, log files and configurations with new business model.", - "version": "2025-08-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra OAuth2 Flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/firewallRules/{firewallRuleName}": { - "put": { - "tags": [ - "FirewallRules" - ], - "operationId": "FirewallRules_CreateOrUpdate", - "x-ms-examples": { - "Create a new firewall rule or update an existing firewall rule.": { - "$ref": "./examples/FirewallRulesCreateOrUpdate.json" - } - }, - "description": "Creates a new firewall rule or updates an existing firewall rule.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/FirewallRuleNameParameter" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/FirewallRule" - }, - "description": "Parameters required for creating or updating a firewall rule." - } - ], - "responses": { - "202": { - "description": "Accepted.", - "headers": { - "Location": { - "type": "string" - }, - "Azure-AsyncOperation": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation", - "final-state-schema": "#/definitions/FirewallRule" - } - }, - "delete": { - "tags": [ - "FirewallRules" - ], - "operationId": "FirewallRules_Delete", - "x-ms-examples": { - "Delete an existing firewall rule.": { - "$ref": "./examples/FirewallRulesDelete.json" - } - }, - "description": "Deletes an existing firewall rule.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/FirewallRuleNameParameter" - } - ], - "responses": { - "202": { - "description": "Accepted.", - "headers": { - "Location": { - "type": "string" - }, - "Azure-AsyncOperation": { - "type": "string" - } - } - }, - "204": { - "description": "No Content." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - }, - "get": { - "tags": [ - "FirewallRules" - ], - "operationId": "FirewallRules_Get", - "x-ms-examples": { - "Get information about a firewall rule in a server.": { - "$ref": "./examples/FirewallRulesGet.json" - } - }, - "description": "Gets information about a firewall rule in a server.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - }, - { - "$ref": "#/parameters/FirewallRuleNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/FirewallRule" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/firewallRules": { - "get": { - "tags": [ - "FirewallRules" - ], - "operationId": "FirewallRules_ListByServer", - "x-ms-examples": { - "List information about all firewall rules in a server.": { - "$ref": "./examples/FirewallRulesListByServer.json" - } - }, - "description": "Lists information about all firewall rules in a server.", - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../types/common-types.json#/parameters/ServerNameParameter" - } - ], - "responses": { - "200": { - "description": "OK.", - "schema": { - "$ref": "#/definitions/FirewallRuleList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "FirewallRuleProperties": { - "type": "object", - "properties": { - "startIpAddress": { - "type": "string", - "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$", - "description": "IP address defining the start of the range of addresses of a firewall rule. Must be expressed in IPv4 format." - }, - "endIpAddress": { - "type": "string", - "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$", - "description": "IP address defining the end of the range of addresses of a firewall rule. Must be expressed in IPv4 format." - } - }, - "required": [ - "startIpAddress", - "endIpAddress" - ], - "description": "Properties of a firewall rule." - }, - "FirewallRule": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/FirewallRuleProperties", - "x-ms-client-flatten": true, - "description": "Properties of a firewall rule." - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ], - "required": [ - "properties" - ], - "description": "Firewall rule." - }, - "FirewallRuleList": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/FirewallRule" - }, - "description": "List of firewall rules in a server." - }, - "nextLink": { - "description": "Link to retrieve next page of results.", - "type": "string", - "format": "uri" - } - }, - "description": "List of firewall rules." - } - }, - "parameters": { - "FirewallRuleNameParameter": { - "name": "firewallRuleName", - "in": "path", - "required": true, - "type": "string", - "description": "Name of the firewall rule.", - "minLength": 1, - "pattern": "^[a-zA-Z0-9][-_a-zA-Z0-9]{0,79}(? Date: Wed, 17 Dec 2025 12:02:35 +0800 Subject: [PATCH 040/117] Update emitter output directories in tspconfig.yaml for Confidential Ledger and Container Service (#39256) Co-authored-by: Kyle Zhang --- .../Confidentialledger.Management/tspconfig.yaml | 6 +++--- .../Microsoft.ContainerService/fleet/tspconfig.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/specification/confidentialledger/Confidentialledger.Management/tspconfig.yaml b/specification/confidentialledger/Confidentialledger.Management/tspconfig.yaml index 1ca8c11b8ceb..84d8fa139506 100644 --- a/specification/confidentialledger/Confidentialledger.Management/tspconfig.yaml +++ b/specification/confidentialledger/Confidentialledger.Management/tspconfig.yaml @@ -12,19 +12,19 @@ options: examples-dir: "{project-root}/examples" emit-lro-options: "all" "@azure-tools/typespec-python": - package-dir: "azure-mgmt-confidentialledger" + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-confidentialledger" namespace: "azure.mgmt.confidentialledger" generate-test: true generate-sample: true flavor: "azure" "@azure-tools/typespec-java": - package-dir: "azure-resourcemanager-confidentialledger" + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-confidentialledger" namespace: "com.azure.resourcemanager.confidentialledger" service-name: "ConfidentialLedger" # human-readable service name, whitespace allowed flavor: azure "@azure-tools/typespec-ts": service-dir: sdk/confidentialledger - package-dir: "arm-confidentialledger" + emitter-output-dir: "{output-dir}/{service-dir}/arm-confidentialledger" flavor: "azure" experimental-extensible-enums: true package-details: diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/tspconfig.yaml b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/tspconfig.yaml index f9597ea78431..6065beb38f00 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/tspconfig.yaml +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/tspconfig.yaml @@ -19,7 +19,7 @@ options: use-read-only-status-schema: true "@azure-tools/typespec-python": service-dir: "sdk/containerservice" - package-dir: "azure-mgmt-containerservicefleet" + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-containerservicefleet" namespace: "azure.mgmt.containerservicefleet" generate-test: true generate-sample: true From 7ab857ced41371b9ac35db2d6dc53639cb2ac5d4 Mon Sep 17 00:00:00 2001 From: Sean McCullough <44180881+seanmcc-msft@users.noreply.github.com> Date: Tue, 16 Dec 2025 22:28:21 -0600 Subject: [PATCH 041/117] Storage STG 101 Typespec (#39128) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added new Typespec version for STG101 (#38546) * new typespec version * Added generated_blob * updated default tag in readme * Added examples directory * Cross-Tenant support for Principal Bound Delegation Sas 101 (TypeSpec) (#38626) * added DelegatedUserTid * Add generated_blob.json * re-commented @azure-tools/typespec-csharp * updated formatting * Added SKUs (#38658) * Merged main (#38661) * Spelling baseline and corrections for .github folder (#38545) * Baseline for .github folder * Narrow exceptions for some spellings * Format * spell check tests/fixtures * [.github/shared] type-check tests (#38532) - Enable TypeScript type checking of test files - Address all type errors - Preparing to enable eslint type-checked ruleset - In future PR, will enable type-checking of tests in `.github/workflows` * Migrate conditional flatten to flattenProperty (#38541) * npm update (#38548) * Durabletask: Revert client rename to meet .NET naming conventions (#38552) * Revert "[DurableTask] Rename SDK classes for 1.0.0 release (#38143)" This reverts commit 485b3477f78f10d3c8d7247ddd6a9d619b792241. * DurableTask client: add new class name --------- Co-authored-by: Bernd Verst * desktopvirtualization 2025-08-01-preview & 2025-09-01-preview (#36798) desktopvirtualization 2025-08-01-preview & 2025-09-01-preview Co-authored-by: Rui Guo Co-authored-by: Liwei Ying * Update the csharp codegen settings for mysql (#38566) * Update the DurableTask configuration to support the new MPG (#38568) * java, mgmt, elasticsan config (#38569) * java, mgmt, acr, config readme (#38570) * Swagger changes to Support Jira V2 in ADF (#38430) * Update Dataset.json for Jira dataset properties Updated the Dataset.json to reference JiraTableDatasetTypeProperties and added properties for Jira dataset. * Add JiraDatasetTypeProperties to Dataset.json Added Jira dataset properties with descriptions for tableName, table, and schema. * Change dataset reference from Generic to Jira type * Update Jira dataset descriptions for V2 support * Update Jira dataset descriptions for V2 support --------- Co-authored-by: Jingshu918 <138486531+Jingshu918@users.noreply.github.com> * Using new management plain generator for service dependency map (#38567) * update tspconfig.yaml. * replace suffix "Request" With "Content" in model names. * update client.tsp * update client.tsp * fix format issue. * mgmt, java, monitor, directive to avoid enum of duplicated name (#38572) * Update readme.md (#38565) Co-authored-by: Weidong Xu * add python config (#38576) * Update productType and language descriptions for clarity in models and OpenAPI specifications (#38559) * Review request for Microsoft.ContainerService/aks to add version preview/2025-09-02-preview (#38472) * Adds base for updating Microsoft.ContainerService/aks from version preview/2025-08-02-preview to version preview/2025-09-02-preview * Updates readme * Updates API version in new specs and examples * add alb addon to managed cluster ingress profile (#38022) * Update managed namespace preview api based on GA api (#38036) * add default domain to aks preview 2025-09-02 (#38037) * feat: Support nftables mode in kube-proxy (#38030) * feat: Support nftables mode in kube-proxy * allow nftables word * asdf * asdf * asdf * remove outdated maintenance config examples (#38057) Co-authored-by: juanbe * Added new kata naming convention to preview API. (#38067) --------- Co-authored-by: Sneha Chhabria <59101963+snehachhabria@users.noreply.github.com> Co-authored-by: Yiran Li <109549277+purpleran7@users.noreply.github.com> Co-authored-by: Oliver King Co-authored-by: Jack Ma Co-authored-by: Juan Diego Bencardino Co-authored-by: juanbe Co-authored-by: Martin Heberling * added older preview versions (#38397) * added older preview swagger * added back 20241115preview and 20250515preview in typespec * updated readme * add older preview swagger * added 20241115preview and 20250515preview in typespec for Conv inference * updated readme * added older preview swaggers for conv authoring * add older preview in typespec * update readme * fix typespec validation * updated readme * removed 20241115preview from analyzetext * remove from analyzetext readme * removed 20241115preview from analyze conversations * remove from analyzeconversation readme * removed 20241115preview from analyzeconversationauthoring * removed from analyzeconversationauthoring readme * Sync eng/common directory with azure-sdk-tools for PR 12531 (#38583) * prompt * this * line * update bens suggestions * update * remove try to find pkg path logic * Update eng/common/instructions/azsdk-tools/check-package-validation.instructions.md Co-authored-by: Ben Broderick Phillips * path * updates * list numbering incorrect * linting --------- Co-authored-by: l0lawrence Co-authored-by: Ben Broderick Phillips * Update Microsoft365 naming to Channels (#38517) * Migrate newrelic to TypeSpec (#36442) * generated * update * update * update * update * update * delete * update * update * remove x-cadl-generated * update * delete consumes * update * rename folder * remove legacyoperation * update tspconfig * format * update summary and description * update * add namepattern * fix java package name * service-dir for java * Update tspconfig.yaml * update * add config for python * rename op name for python * sync go directive * update package name for js sdk * remove rename config for python * update service-dir for js sdk * fix * Update output directory and module for New Relic * update client name for js * Add createOrUpdate client for MonitoredSubscriptions * update --------- Co-authored-by: melina5656 <140602263+melina5656@users.noreply.github.com> Co-authored-by: Weidong Xu Co-authored-by: Yuchao Yan Co-authored-by: Chenjie Shi Co-authored-by: Jiao Di (MSFT) <80496810+v-jiaodi@users.noreply.github.com> Co-authored-by: Pan Shao <97225342+pshao25@users.noreply.github.com> * service bus config (#38578) * Redis Enterprise API Version `2025-08-01-preview` with both AMR Migration and Scheduled Update features (#38286) * Add maintenance config fields to ARM spec * Move versions from private repo to public for Microsoft.Datadog (#38009) * Base commit * Add new api versions * Fix SDK validation * Unify EdgeActions with CDN 2025-09-01-preview and migrate to TypeSpec (#38054) * Add EdgeActions 2025-09-01-preview baseline from 2024-07-22-preview Copy EdgeActions API specification from 2024-07-22-preview to new EdgeActions directory structure as baseline for 2025-09-01-preview. * Migrate EdgeActions to TypeSpec with API changes for 2025-09-01-preview - Convert EdgeActions from JSON swagger to TypeSpec - Add TypeSpec configuration for all SDK languages (Python, Java, Go, TypeScript, C#) - Configure separate Azure.ResourceManager.EdgeActions package for .NET SDK - Add @clientName decorator for EdgeActionAttachmentResponse -> EdgeActionAttachmentResult (C# naming convention) - Add file-scoped suppression for ProvisioningStateMustBeReadOnly - Add new operations: SwapDefault, DeployVersionCode, GetVersionCode - Update all examples to 2025-09-01-preview - Generate OpenAPI via TypeSpec compiler with automatic x-ms-examples * fix java sdk validation * fix(edgeactions): address PR review comments for 2025-09-01-preview - Add x-ms-client-flatten and x-ms-mutability to properties field on EdgeAction, EdgeActionVersion, and EdgeActionExecutionFilter resource models for backwards compatibility with 2024-07-22-preview baseline - Change EdgeActionAttachmentResponse.edgeActionId from readOnly to x-ms-mutability [read, update, create] to match baseline behavior - Replace 'ARM' with 'Azure' in resource identifier descriptions (AttachedResourceId and EdgeActionVersionId) - Consolidate multiple PostResponseCodes suppressions into single entry with array of where clauses in readme.md - Add OpenAPI extension decorators using @@extension augments in TypeSpec with appropriate suppressions for no-openapi warnings * style(edgeactions): apply tsp format to TypeSpec files - Reformat @@extension calls to multi-line style for better readability - Reorder #suppress directive placement per formatter rules * remove unnecessary ProvisioningStateMustBeReadOnly suppression All provisioningState properties are already correctly marked as readOnly in the generated OpenAPI spec. The suppression is not needed as the spec complies with ARM validation rules. * Revert "remove unnecessary ProvisioningStateMustBeReadOnly suppression" This reverts commit a5988e2e2c8188e0836b5d366bb19469535ca772. * extend ResourceProvisioningState for standard ARM compliance Change ProvisioningState to extend ResourceProvisioningState which provides the three required states (Succeeded, Failed, Canceled) with standard ARM descriptions, and add custom states (Provisioning, Upgrading) specific to edge actions lifecycle. * remove ProvisioningStateMustBeReadOnly suppression Suppression no longer needed after extending ResourceProvisioningState which properly handles ARM validation requirements. * add use-read-only-status-schema to resolve ProvisioningStateMustBeReadOnly validation Enable use-read-only-status-schema: true in tspconfig.yaml to work around known limitation in azure-openapi-validator and oav with \ siblings. This adds readOnly: true directly to status schema definitions, resolving ProvisioningStateMustBeReadOnly validation errors. References: - https://github.com/Azure/azure-openapi-validator/issues/637 - https://github.com/Azure/oav/issues/848 --------- Co-authored-by: Danny Tundwe (from Dev Box) * Merge tag for ACR Go release (#38594) * Merge tag for ACR Go release * Update input file path for container registry tasks * fix * update * Add documentation for Defender for Containers resource level (#35905) * Add documentation for Defender for Containers resource level * remove operation status * prettier * remove tags with multiple versions * revert * new line * revert --------- Co-authored-by: ygorshomov * [CQA] Correct typo (#38579) * correct typo * change getImportStatus getExportStatus getDeployStatus getDeleteStatus getUpdateQnasStatus getUpdateSourcesStatus to internal --------- Co-authored-by: Qi Yin * Waves API (#37394) * Changes for public preview * Adding refresh API * Adding further types for drApplicanceInventoryId * [.github] type-check tests (#38591) * Add contrainerregistry directive (#38619) * add directive * add directive * add directive * add directive * add directive * mgmt, java, monitor, add a tag in readme.java.md for SDK configure (#38616) * remove the csharp config since this library is still generating from swagger (#38599) * Keyvault.Management TypeSpec, fix secrets put (#38620) * fix secret * regen * Merging and 2024-02-15-preview and 2024-06-15-preview api to main (#38359) Merging and 2024-02-15-preview and 2024-06-15-preview api to main (#38359) * Sync eng/common directory with azure-sdk-tools for PR 12476 (#38607) * add tool instructions prompt * minor * prompt revision * prompt revision and fallback to core requirements * rename langs to languages + revise prompt * edit prompt and make checks concurrent * fix prompt * add venvPath argument * minor prompt and log edit --------- Co-authored-by: jennypng <63012604+JennyPng@users.noreply.github.com> * Remove arm-resource-flattening and migrate to explicity flattenProperty (#38581) * omit constructors (#38588) * Update with the configuration to run go generate after tsp compile. (#38609) There are some post-generation steps that run after tsp generation, to create the system events enum. Adding in this switch ensures we generate the same client in all of our systems. This shouldn't change anything about generation, but it will mean the automated APIView diffs will work properly. * Fix tag in dns-resolver new version for swagger generations (#38635) * remove HDInsight On Aks api specs (#38593) Co-authored-by: Yukun Li (Beyondsoft) * Updated the description for the boundingBox property of the address object. (#38554) * Release Microsoft.Network API Version 2025-03-01 (#38556) * Copy files from stable/2025-01-01 Copied the files in a separate commit. This allows reviewers to easily diff subsequent changes against the previous spec. * Update version to stable/2025-03-01 Updated the API version from stable/2025-01-01 to stable/2025-03-01. * Added tag for 2025-03-01 in readme file * Copy readme.md suppressions and directives from previous stable version * Application Gateway Entra JWT Validation Feature Support (#38335) * Application Gateway Entra JWT Validation Feature Support * fixing doe style issues --------- Co-authored-by: Hemant Imudianda * Application Gateway MTLS Passthrough Feature Support (#38337) Co-authored-by: Hemant Imudianda Co-authored-by: Prajjwal Kamboj * Remove NonSensitivity for DDoS ruleset (#38246) * Remove NonSensitivity * make change in the right API folder * add suppression --------- Co-authored-by: Prajjwal Kamboj Co-authored-by: Judy Liu * Adding recordType field to 2025-03-01 version (#38361) * Adding recordType field to 2025-03-01 version * Changed description of RecordType --------- Co-authored-by: Riddhi Nilawar * Add new DdosCustomPolicy properties + update examples (#38272) * Add DCP properties + update examples to 2024-07-01 to 2025-03-01 * Remove unecessary FIP from examples * Remove < 2025-03-01 API version changes + Resolve PR feedback * Remove unecessary type * Fix PR comments * Attempt --------- Co-authored-by: Prajjwal Kamboj * Updating Examples Files For ErGwScale Get / Update (#38419) * update examples * updated the jsons --------- Co-authored-by: Prajjwal Kamboj * IpVersionType property for Private Endpoint API (#38497) * Addedipconfig type * Fix indentation * Addressing comments * Added example --------- Co-authored-by: Piyush Mishra Co-authored-by: Prajjwal Kamboj * IP Preservation API Support (#38358) * IP Preservation API Support --------- Co-authored-by: Prajjwal Kamboj --------- Co-authored-by: Prajjwal Kamboj Co-authored-by: Hemant Imudianda Co-authored-by: Hemant Imudianda Co-authored-by: baoqihuang0326 <119557638+baoqihuang0326@users.noreply.github.com> Co-authored-by: Judy Liu Co-authored-by: riddhinilawar <62386378+riddhinilawar@users.noreply.github.com> Co-authored-by: Riddhi Nilawar Co-authored-by: Jennifer Wong <156020508+jwong-MS@users.noreply.github.com> Co-authored-by: aneeshakella-microsoft <109654329+aneeshakella-microsoft@users.noreply.github.com> Co-authored-by: Piyush Mishra <95299755+bzpiyush@users.noreply.github.com> Co-authored-by: Piyush Mishra Co-authored-by: pribansa <134259460+pribansa@users.noreply.github.com> * Add optional boolean to capabilityhost object and rename agentDeployments (#38374) * Add optional boolean to capabilityhost object * Rename applications/deployments to applications/agentDeployments. * Update naming enablePublicHostedCode -> enablePublicHostingEnvironment. * Update suppression to fix path. --------- Co-authored-by: Jeremy Kramer * LintDiff: Ensure that default tag is scanned when there is a new tag in the 'after' state (#38611) * LintDiff: Ensure that default tag is scanned when there is a new tag in the 'after' state * Review feedback: break, eliminate empty set handling in favor of empty tag value * Add ability to skip onboarding legacy moniker to Update-DocsMsPackages.ps1 (#38639) Co-authored-by: Daniel Jurek * fix param order (#38657) Co-authored-by: catalinaperalta * Revert "LintDiff: Ensure that default tag is scanned when there is a new tag …" (#38660) This reverts commit acdf0134b80079d5d9e7f069910148e0fb48166f. * Fix EdgeActions 2025-09-01-preview examples: remove invalid provisioning state and SKU values (#38655) * Fix EdgeActions 2025-09-01-preview examples: remove invalid provisioning state and SKU values - Changed provisioningState from 'Accepted' to 'Succeeded' (valid enum value) - Changed SKU name from 'Basic' to 'Standard' in all examples - Affected files: 8 example JSON files in EdgeActions preview API * Fix EdgeActions examples in second directory: remove invalid provisioning state and SKU values - Changed provisioningState from 'Accepted' to 'Succeeded' (valid enum value) - Changed SKU name from 'Basic' to 'Standard' in all examples - Affected files: 6 example JSON files in specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-09-01-preview/ --------- Co-authored-by: Danny Tundwe (from Dev Box) --------- Co-authored-by: Daniel Jurek Co-authored-by: Mike Harder Co-authored-by: Timothee Guerin Co-authored-by: Bernd Verst Co-authored-by: Bernd Verst Co-authored-by: Rui Guo <48600426+ruiguoamz@users.noreply.github.com> Co-authored-by: Rui Guo Co-authored-by: Liwei Ying Co-authored-by: Arthur Ma Co-authored-by: Weidong Xu Co-authored-by: Sudhir Reddy Emmadi Co-authored-by: Jingshu918 <138486531+Jingshu918@users.noreply.github.com> Co-authored-by: haiyuan_zhang Co-authored-by: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Co-authored-by: Yuchao Yan Co-authored-by: nirmochiach Co-authored-by: FumingZhang <81607949+FumingZhang@users.noreply.github.com> Co-authored-by: Sneha Chhabria <59101963+snehachhabria@users.noreply.github.com> Co-authored-by: Yiran Li <109549277+purpleran7@users.noreply.github.com> Co-authored-by: Oliver King Co-authored-by: Jack Ma Co-authored-by: Juan Diego Bencardino Co-authored-by: juanbe Co-authored-by: Martin Heberling Co-authored-by: amber-Chen-86 Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Co-authored-by: l0lawrence Co-authored-by: Ben Broderick Phillips Co-authored-by: fmabroukmsft <134638798+fmabroukmsft@users.noreply.github.com> Co-authored-by: mcgallan <88413158+mcgallan@users.noreply.github.com> Co-authored-by: melina5656 <140602263+melina5656@users.noreply.github.com> Co-authored-by: Chenjie Shi Co-authored-by: Jiao Di (MSFT) <80496810+v-jiaodi@users.noreply.github.com> Co-authored-by: Pan Shao <97225342+pshao25@users.noreply.github.com> Co-authored-by: Xiaofei Cao <92354331+XiaofeiCao@users.noreply.github.com> Co-authored-by: Jim Du <102357939+jim-du@users.noreply.github.com> Co-authored-by: vikotha <81368129+vikotha@users.noreply.github.com> Co-authored-by: tundwed <55289657+tundwed@users.noreply.github.com> Co-authored-by: Danny Tundwe (from Dev Box) Co-authored-by: yossigorshomov Co-authored-by: ygorshomov Co-authored-by: Amichelangelo <37525416+Amichelangelo@users.noreply.github.com> Co-authored-by: Qi Yin Co-authored-by: sorabhtandon <84002800+sorabhtandon@users.noreply.github.com> Co-authored-by: Judy Liu Co-authored-by: Dapeng Zhang Co-authored-by: nnellikunnu <112621306+nnellikunnu@users.noreply.github.com> Co-authored-by: jennypng <63012604+JennyPng@users.noreply.github.com> Co-authored-by: Grace Wilcox <43627800+gracewilcox@users.noreply.github.com> Co-authored-by: Richard Park <51494936+richardpark-msft@users.noreply.github.com> Co-authored-by: jamesvoongms <104241521+jamesvoongms@users.noreply.github.com> Co-authored-by: yk <83654272+2258093686@users.noreply.github.com> Co-authored-by: Yukun Li (Beyondsoft) Co-authored-by: steve munk <33468793+stevemunk@users.noreply.github.com> Co-authored-by: Prajjwal Kamboj Co-authored-by: Prajjwal Kamboj Co-authored-by: Hemant Imudianda Co-authored-by: Hemant Imudianda Co-authored-by: baoqihuang0326 <119557638+baoqihuang0326@users.noreply.github.com> Co-authored-by: riddhinilawar <62386378+riddhinilawar@users.noreply.github.com> Co-authored-by: Riddhi Nilawar Co-authored-by: Jennifer Wong <156020508+jwong-MS@users.noreply.github.com> Co-authored-by: aneeshakella-microsoft <109654329+aneeshakella-microsoft@users.noreply.github.com> Co-authored-by: Piyush Mishra <95299755+bzpiyush@users.noreply.github.com> Co-authored-by: Piyush Mishra Co-authored-by: pribansa <134259460+pribansa@users.noreply.github.com> Co-authored-by: Jeremy Kramer Co-authored-by: catalinaperalta <9859037+catalinaperalta@users.noreply.github.com> Co-authored-by: catalinaperalta * Added SourceEncryptionKey (#38662) * Added AccessTierIfModifiedSinceParameter & AccessTierIfUnmodifiedSinceParameter (#38665) * tsp compile * clean install + re-compile --------- Co-authored-by: Nick Liu Co-authored-by: Daniel Jurek Co-authored-by: Mike Harder Co-authored-by: Timothee Guerin Co-authored-by: Bernd Verst Co-authored-by: Bernd Verst Co-authored-by: Rui Guo <48600426+ruiguoamz@users.noreply.github.com> Co-authored-by: Rui Guo Co-authored-by: Liwei Ying Co-authored-by: Arthur Ma Co-authored-by: Weidong Xu Co-authored-by: Sudhir Reddy Emmadi Co-authored-by: Jingshu918 <138486531+Jingshu918@users.noreply.github.com> Co-authored-by: haiyuan_zhang Co-authored-by: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Co-authored-by: Yuchao Yan Co-authored-by: nirmochiach Co-authored-by: FumingZhang <81607949+FumingZhang@users.noreply.github.com> Co-authored-by: Sneha Chhabria <59101963+snehachhabria@users.noreply.github.com> Co-authored-by: Yiran Li <109549277+purpleran7@users.noreply.github.com> Co-authored-by: Oliver King Co-authored-by: Jack Ma Co-authored-by: Juan Diego Bencardino Co-authored-by: juanbe Co-authored-by: Martin Heberling Co-authored-by: amber-Chen-86 Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Co-authored-by: l0lawrence Co-authored-by: Ben Broderick Phillips Co-authored-by: fmabroukmsft <134638798+fmabroukmsft@users.noreply.github.com> Co-authored-by: mcgallan <88413158+mcgallan@users.noreply.github.com> Co-authored-by: melina5656 <140602263+melina5656@users.noreply.github.com> Co-authored-by: Chenjie Shi Co-authored-by: Jiao Di (MSFT) <80496810+v-jiaodi@users.noreply.github.com> Co-authored-by: Pan Shao <97225342+pshao25@users.noreply.github.com> Co-authored-by: Xiaofei Cao <92354331+XiaofeiCao@users.noreply.github.com> Co-authored-by: Jim Du <102357939+jim-du@users.noreply.github.com> Co-authored-by: vikotha <81368129+vikotha@users.noreply.github.com> Co-authored-by: tundwed <55289657+tundwed@users.noreply.github.com> Co-authored-by: Danny Tundwe (from Dev Box) Co-authored-by: yossigorshomov Co-authored-by: ygorshomov Co-authored-by: Amichelangelo <37525416+Amichelangelo@users.noreply.github.com> Co-authored-by: Qi Yin Co-authored-by: sorabhtandon <84002800+sorabhtandon@users.noreply.github.com> Co-authored-by: Judy Liu Co-authored-by: Dapeng Zhang Co-authored-by: nnellikunnu <112621306+nnellikunnu@users.noreply.github.com> Co-authored-by: jennypng <63012604+JennyPng@users.noreply.github.com> Co-authored-by: Grace Wilcox <43627800+gracewilcox@users.noreply.github.com> Co-authored-by: Richard Park <51494936+richardpark-msft@users.noreply.github.com> Co-authored-by: jamesvoongms <104241521+jamesvoongms@users.noreply.github.com> Co-authored-by: yk <83654272+2258093686@users.noreply.github.com> Co-authored-by: Yukun Li (Beyondsoft) Co-authored-by: steve munk <33468793+stevemunk@users.noreply.github.com> Co-authored-by: Prajjwal Kamboj Co-authored-by: Prajjwal Kamboj Co-authored-by: Hemant Imudianda Co-authored-by: Hemant Imudianda Co-authored-by: baoqihuang0326 <119557638+baoqihuang0326@users.noreply.github.com> Co-authored-by: riddhinilawar <62386378+riddhinilawar@users.noreply.github.com> Co-authored-by: Riddhi Nilawar Co-authored-by: Jennifer Wong <156020508+jwong-MS@users.noreply.github.com> Co-authored-by: aneeshakella-microsoft <109654329+aneeshakella-microsoft@users.noreply.github.com> Co-authored-by: Piyush Mishra <95299755+bzpiyush@users.noreply.github.com> Co-authored-by: Piyush Mishra Co-authored-by: pribansa <134259460+pribansa@users.noreply.github.com> Co-authored-by: Jeremy Kramer Co-authored-by: catalinaperalta <9859037+catalinaperalta@users.noreply.github.com> Co-authored-by: catalinaperalta --- .../examples/2026-04-06/placeholder.md | 0 .../storage/Microsoft.BlobStorage/main.tsp | 3 + .../storage/Microsoft.BlobStorage/models.tsp | 59 + .../storage/Microsoft.BlobStorage/routes.tsp | 15 + .../Microsoft.BlobStorage/readme.md | 11 +- .../stable/2026-04-06/generated_blob.json | 18583 ++++++++++++++++ 6 files changed, 18670 insertions(+), 1 deletion(-) create mode 100644 specification/storage/Microsoft.BlobStorage/examples/2026-04-06/placeholder.md create mode 100644 specification/storage/data-plane/Microsoft.BlobStorage/stable/2026-04-06/generated_blob.json diff --git a/specification/storage/Microsoft.BlobStorage/examples/2026-04-06/placeholder.md b/specification/storage/Microsoft.BlobStorage/examples/2026-04-06/placeholder.md new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/specification/storage/Microsoft.BlobStorage/main.tsp b/specification/storage/Microsoft.BlobStorage/main.tsp index ece913a41baa..0b25e6ed5179 100644 --- a/specification/storage/Microsoft.BlobStorage/main.tsp +++ b/specification/storage/Microsoft.BlobStorage/main.tsp @@ -38,4 +38,7 @@ enum Versions { @doc("The 2026-02-06 version of the Azure.Storage.Blob service.") v2026_02_06: "2026-02-06", + + @doc("The 2026-04-06 version of the Azure.Storage.Blob service.") + v2026_04_06: "2026-04-06", } diff --git a/specification/storage/Microsoft.BlobStorage/models.tsp b/specification/storage/Microsoft.BlobStorage/models.tsp index efb3b576096a..2ff205b9b620 100644 --- a/specification/storage/Microsoft.BlobStorage/models.tsp +++ b/specification/storage/Microsoft.BlobStorage/models.tsp @@ -200,6 +200,18 @@ enum SkuName { /** The premium LRS SKU. */ PremiumLRS: "Premium_LRS", + + /** The standard GZRS SKU. */ + @added(Versions.v2026_04_06) + StandardGZRS: "Standard_GZRS", + + /** The premium ZRS SKU. */ + @added(Versions.v2026_04_06) + PremiumZRS: "Premium_ZRS", + + /** The standard RAGZRS SKU. */ + @added(Versions.v2026_04_06) + StandardRAGZRS: "Standard_RAGZRS", } /** The list container segment response */ @@ -341,6 +353,11 @@ model KeyInfo { /** The date-time the key expires. */ @Xml.name("Expiry") expiry: string; + + /** The delegated user tenant id in Azure AD. */ + @Xml.name("DelegatedUserTid") + @added(Versions.v2026_04_06) + delegatedUserTid?: uuid; } /** A user delegation key. */ @@ -363,6 +380,11 @@ model UserDelegationKey { /** The service version that created the key. */ @Xml.name("SignedVersion") signedVersion: string; + /** The delegated user tenant id in Azure AD. Return if DelegatedUserTid is specified. */ + @Xml.name("SignedDelegatedUserTid") + @added(Versions.v2026_04_06) + signedDelegatedUserTid?: uuid; + /** The key as a base64 string. */ @Xml.name("Value") value: base64Bytes; @@ -1656,6 +1678,27 @@ alias EtagResponseHeaderPrivate = { eTag: string; }; +alias SourceEncryptionKeyParameter = { + /** Optional. Specifies the source encryption key to use to encrypt the source data provided in the request. */ + @added(Versions.v2026_04_06) + @header("x-ms-source-encryption-key") + sourceEncryptionKey?: string; +}; + +alias SourceEncryptionKeySha256Parameter = { + /** The SHA-256 hash of the provided source encryption key. Must be provided if the x-ms-source-encryption-key header is provided. */ + @added(Versions.v2026_04_06) + @header("x-ms-source-encryption-key-sha256") + sourceEncryptionKeySha256?: string; +}; + +alias SourceEncryptionAlgorithmParameter = { + /** The algorithm used to produce the source encryption key hash. Currently, the only accepted value is \"AES256\". Must be provided if the x-ms-source-encryption-key is provided. */ + @added(Versions.v2026_04_06) + @header("x-ms-source-encryption-algorithm") + sourceEncryptionAlgorithm?: EncryptionAlgorithmType; +}; + /** The copy source tags header parameter. */ alias CopySourceTagsParameter = { /** Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags. */ @@ -1965,6 +2008,22 @@ alias EncryptionKeyParameter = { encryptionKey?: string; }; +alias AccessTierIfModifiedSinceParameter = { + /** Specify this header value to operate only on a blob if the access-tier has been modified since the specified date/time. */ + @added(Versions.v2026_04_06) + @header("x-ms-access-tier-if-modified-since") + @encode("rfc7231") + accessTierIfModifiedSince?: utcDateTime; +}; + +alias AccessTierIfUnmodifiedSinceParameter = { + /** Specify this header value to operate only on a blob if the access-tier has not been modified since the specified date/time. */ + @added(Versions.v2026_04_06) + @header("x-ms-access-tier-if-unmodified-since") + @encode("rfc7231") + accessTierIfUnmodifiedSince?: utcDateTime; +}; + /** The If-Tags parameters. */ alias IfTagsParameter = { /** Specify a SQL where clause on blob tags to operate only on blobs with a matching value. */ diff --git a/specification/storage/Microsoft.BlobStorage/routes.tsp b/specification/storage/Microsoft.BlobStorage/routes.tsp index 5affc81bf5de..4438848f05ea 100644 --- a/specification/storage/Microsoft.BlobStorage/routes.tsp +++ b/specification/storage/Microsoft.BlobStorage/routes.tsp @@ -915,6 +915,9 @@ namespace Storage.Blob { @query @clientName("blobDeleteType") deletetype?: BlobDeleteType; + + ...AccessTierIfModifiedSinceParameter; + ...AccessTierIfUnmodifiedSinceParameter; }, { @statusCode statusCode: 202; @@ -1718,6 +1721,9 @@ namespace Storage.Blob { ...CopySourceAuthorizationParameter; ...FileRequestIntentParameter; ...PageWriteParameter<"update">; + ...SourceEncryptionKeyParameter; + ...SourceEncryptionKeySha256Parameter; + ...SourceEncryptionAlgorithmParameter; }, { @statusCode statusCode: 201; @@ -2034,6 +2040,9 @@ namespace Storage.Blob { ...SourceIfNoneMatchParameter; ...CopySourceAuthorizationParameter; ...FileRequestIntentParameter; + ...SourceEncryptionKeyParameter; + ...SourceEncryptionKeySha256Parameter; + ...SourceEncryptionAlgorithmParameter; }, { @statusCode statusCode: 201; @@ -2190,6 +2199,9 @@ namespace Storage.Blob { blobType: "BlockBlob"; ...FileRequestIntentParameter; + ...SourceEncryptionKeyParameter; + ...SourceEncryptionKeySha256Parameter; + ...SourceEncryptionAlgorithmParameter; }, { @statusCode statusCode: 201; @@ -2272,6 +2284,9 @@ namespace Storage.Blob { ...SourceIfNoneMatchParameter; ...CopySourceAuthorizationParameter; ...FileRequestIntentParameter; + ...SourceEncryptionKeyParameter; + ...SourceEncryptionKeySha256Parameter; + ...SourceEncryptionAlgorithmParameter; }, { @statusCode statusCode: 201; diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/readme.md b/specification/storage/data-plane/Microsoft.BlobStorage/readme.md index 74428692af47..136cffb50351 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/readme.md +++ b/specification/storage/data-plane/Microsoft.BlobStorage/readme.md @@ -26,7 +26,7 @@ These are the global settings for the BlobStorage API. ```yaml openapi-type: data-plane -tag: package-2026-02 +tag: package-2026-04 use-internal-constructors: true add-credentials: true ``` @@ -157,6 +157,15 @@ input-file: - stable/2026-02-06/blob.json ``` +### Tag: package-2026-04-tsp + +These settings apply only when `--tag=package-2026-04-tsp` is specified on the command line. + +```yaml $(tag) == 'package-2026-04-tsp' +input-file: + - stable/2026-04-06/generated_blob.json +``` + ### Suppression ```yaml diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2026-04-06/generated_blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2026-04-06/generated_blob.json new file mode 100644 index 000000000000..54fed9bc0deb --- /dev/null +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2026-04-06/generated_blob.json @@ -0,0 +1,18583 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Storage Blob service", + "version": "2026-04-06", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "x-ms-parameterized-host": { + "hostTemplate": "{url}", + "useSchemePrefix": false, + "parameters": [ + { + "name": "url", + "in": "path", + "description": "The host name of the blob storage account, e.g. accountName.blob.core.windows.net", + "required": true, + "type": "string", + "format": "uri", + "x-ms-skip-url-encoding": true + } + ] + }, + "produces": [ + "application/xml" + ], + "consumes": [ + "application/xml" + ], + "security": [ + { + "OAuth2Auth": [ + "https://storage.azure.com/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://storage.azure.com/.default": "" + } + } + }, + "tags": [], + "paths": { + "/{containerName}/{blobName}": { + "get": { + "operationId": "Blob_Download", + "description": "The Download operation reads or downloads a blob from the system, including its metadata and properties. You can also call Download to read a snapshot.", + "produces": [ + "application/octet-stream", + "application/xml" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "Range", + "in": "header", + "description": "Return only the bytes of the blob in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "range" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-range-get-content-md5", + "in": "header", + "description": "When set to true and specified together with the Range, the service returns the MD5 hash for the range, as long as the range is less than or equal to 4 MB in size.", + "required": false, + "type": "boolean", + "x-ms-client-name": "rangeGetContentMd5" + }, + { + "name": "x-ms-range-get-content-crc64", + "in": "header", + "description": "Optional. When this header is set to true and specified together with the Range header, the service returns the CRC64 hash for the range, as long as the range is less than or equal to 4 MB in size.", + "required": false, + "type": "boolean", + "x-ms-client-name": "rangeGetContentCrc64" + }, + { + "name": "x-ms-structured-body", + "in": "header", + "description": "Specifies the response content should be returned as a structured message and specifies the message schema version and properties.", + "required": false, + "type": "string", + "x-ms-client-name": "structuredBodyType" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifNoneMatch" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince" + }, + { + "$ref": "#/parameters/Azure.Core.ConditionalRequestHeaders.ifModifiedSince" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "type": "file" + }, + "headers": { + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial blob content." + }, + "Cache-Control": { + "type": "string", + "description": "This header is returned if it was previously specified for the blob." + }, + "Content-Disposition": { + "type": "string", + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + }, + "Content-Encoding": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Encoding request header" + }, + "Content-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Content-Range": { + "type": "string", + "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-committed-block-count": { + "type": "integer", + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-blob-content-md5": { + "type": "string", + "format": "byte", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-blob-type": { + "type": "string", + "description": "The type of the blob.", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false, + "values": [ + { + "name": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." + }, + { + "name": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." + }, + { + "name": "AppendBlob", + "value": "AppendBlob", + "description": "The blob is an append blob." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-copy-completion-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-id": { + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-progress": { + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-source": { + "type": "string", + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status": { + "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": false, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } + }, + "x-ms-copy-status-description": { + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-creation-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "Returns the date and time the blob was created." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-immutability-policy-mode": { + "type": "string", + "description": "Indicates the immutability policy mode of the blob.", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": false, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + } + }, + "x-ms-immutability-policy-until-date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." + }, + "x-ms-is-current-version": { + "type": "boolean", + "description": "The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header." + }, + "x-ms-last-access-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the blob was last read or written to" + }, + "x-ms-lease-duration": { + "type": "string", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change.", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDuration", + "modelAsString": false, + "values": [ + { + "name": "Infinite", + "value": "infinite", + "description": "The lease is of infinite duration." + }, + { + "name": "Fixed", + "value": "fixed", + "description": "The lease is of fixed duration." + } + ] + } + }, + "x-ms-lease-state": { + "type": "string", + "description": "Lease state of the blob.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": false, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } + }, + "x-ms-lease-status": { + "type": "string", + "description": "The lease status of the blob.", + "enum": [ + "unlocked", + "locked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": false, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } + }, + "x-ms-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, + "x-ms-meta": { + "type": "string", + "description": "The metadata headers." + }, + "x-ms-or": { + "type": "string", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed)." + }, + "x-ms-or-policy-id": { + "type": "string", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-structured-body": { + "type": "string", + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." + }, + "x-ms-structured-content-length": { + "type": "integer", + "format": "int64", + "description": "The length of the blob/file content inside the message body when the response body is returned as a structured message. Will always be smaller than Content-Length." + }, + "x-ms-tag-count": { + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + } + } + }, + "206": { + "description": "Successful", + "schema": { + "type": "file" + }, + "headers": { + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial blob content." + }, + "Cache-Control": { + "type": "string", + "description": "This header is returned if it was previously specified for the blob." + }, + "Content-Disposition": { + "type": "string", + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + }, + "Content-Encoding": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Encoding request header" + }, + "Content-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Content-Range": { + "type": "string", + "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-committed-block-count": { + "type": "integer", + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-blob-content-md5": { + "type": "string", + "format": "byte", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-blob-type": { + "type": "string", + "description": "The type of the blob.", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false, + "values": [ + { + "name": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." + }, + { + "name": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." + }, + { + "name": "AppendBlob", + "value": "AppendBlob", + "description": "The blob is an append blob." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-copy-completion-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-id": { + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-progress": { + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-source": { + "type": "string", + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status": { + "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": false, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } + }, + "x-ms-copy-status-description": { + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-creation-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "Returns the date and time the blob was created." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-immutability-policy-mode": { + "type": "string", + "description": "Indicates the immutability policy mode of the blob.", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": false, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + } + }, + "x-ms-immutability-policy-until-date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." + }, + "x-ms-is-current-version": { + "type": "boolean", + "description": "The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header." + }, + "x-ms-last-access-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the blob was last read or written to" + }, + "x-ms-lease-duration": { + "type": "string", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change.", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDuration", + "modelAsString": false, + "values": [ + { + "name": "Infinite", + "value": "infinite", + "description": "The lease is of infinite duration." + }, + { + "name": "Fixed", + "value": "fixed", + "description": "The lease is of fixed duration." + } + ] + } + }, + "x-ms-lease-state": { + "type": "string", + "description": "Lease state of the blob.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": false, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } + }, + "x-ms-lease-status": { + "type": "string", + "description": "The lease status of the blob.", + "enum": [ + "unlocked", + "locked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": false, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } + }, + "x-ms-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, + "x-ms-meta": { + "type": "string", + "description": "The metadata headers." + }, + "x-ms-or": { + "type": "string", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed)." + }, + "x-ms-or-policy-id": { + "type": "string", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-structured-body": { + "type": "string", + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." + }, + "x-ms-structured-content-length": { + "type": "integer", + "format": "int64", + "description": "The length of the blob/file content inside the message body when the response body is returned as a structured message. Will always be smaller than Content-Length." + }, + "x-ms-tag-count": { + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + }, + "put": { + "operationId": "Blob_StartCopyFromUrl", + "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "x-ms-access-tier", + "in": "header", + "description": "The tier to be set on the blob.", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + }, + "x-ms-client-name": "tier" + }, + { + "name": "x-ms-rehydrate-priority", + "in": "header", + "description": "If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.", + "required": false, + "type": "string", + "enum": [ + "High", + "Standard" + ], + "x-ms-enum": { + "name": "RehydratePriority", + "modelAsString": true, + "values": [ + { + "name": "High", + "value": "High", + "description": "The rehydrate priority is high." + }, + { + "name": "Standard", + "value": "Standard", + "description": "The rehydrate priority is standard." + } + ] + }, + "x-ms-client-name": "rehydratePriority" + }, + { + "name": "x-ms-source-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" + }, + { + "name": "x-ms-source-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" + }, + { + "name": "x-ms-source-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfMatch" + }, + { + "name": "x-ms-source-if-none-match", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" + }, + { + "name": "x-ms-source-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfTags" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-copy-source", + "in": "header", + "description": "Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would appear in a request URI. The source blob must either be public or must be authenticated via a shared access signature.", + "required": true, + "type": "string", + "x-ms-client-name": "copySource" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" + }, + { + "name": "x-ms-seal-blob", + "in": "header", + "description": "Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer.", + "required": false, + "type": "boolean", + "x-ms-client-name": "sealBlob" + }, + { + "name": "x-ms-immutability-policy-until-date", + "in": "header", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, + "type": "string", + "enum": [ + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "ImmutabilityPolicyMode", + "modelAsString": false, + "values": [ + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + }, + "x-ms-client-name": "immutabilityPolicyMode" + }, + { + "name": "x-ms-legal-hold", + "in": "header", + "description": "Specified if a legal hold should be set on the blob.", + "required": false, + "type": "boolean", + "x-ms-client-name": "legalHold" + }, + { + "name": "x-ms-requires-sync", + "in": "header", + "description": "This header indicates that this is a synchronous Copy Blob From URL instead of a Asynchronous Copy Blob.", + "required": true, + "type": "boolean", + "enum": [ + true + ], + "x-ms-client-name": "requiresSync" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-copy-id": { + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-status": { + "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": false, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + }, + "delete": { + "operationId": "Blob_Delete", + "description": "If the storage account's soft delete feature is disabled then, when a blob is deleted, it is permanently removed from the storage account. If the storage account's soft delete feature is enabled, then, when a blob is deleted, it is marked for deletion and becomes inaccessible immediately. However, the blob service retains the blob or snapshot for the number of days specified by the DeleteRetentionPolicy section of [Storage service properties] (Set-Blob-Service-Properties.md). After the specified number of days has passed, the blob's data is permanently removed from the storage account. Note that you continue to be charged for the soft-deleted blob's storage until it is permanently removed. Use the List Blobs API and specify the \\\"include=deleted\\\" query parameter to discover which blobs and snapshots have been soft deleted. You can then use the Undelete Blob API to restore a soft-deleted blob. All other operations on a soft-deleted blob or snapshot causes the service to return an HTTP status code of 404 (ResourceNotFound).", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-delete-snapshots", + "in": "header", + "description": "Required if the blob has associated snapshots. Specify one of the following two options: include: Delete the base blob and all of its snapshots. only: Delete only the blob's snapshots and not the blob itself", + "required": false, + "type": "string", + "enum": [ + "only", + "include" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": false, + "values": [ + { + "name": "Only", + "value": "only", + "description": "The delete snapshots include option is only." + }, + { + "name": "Include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] + }, + "x-ms-client-name": "deleteSnapshots" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "deletetype", + "in": "query", + "description": "Optional. Only possible value is 'permanent', which specifies to permanently delete a blob if blob soft delete is enabled.", + "required": false, + "type": "string", + "enum": [ + "Permanent" + ], + "x-ms-enum": { + "name": "BlobDeleteType", + "modelAsString": false, + "values": [ + { + "name": "Permanent", + "value": "Permanent", + "description": "Permanently delete the blob." + } + ] + }, + "x-ms-client-name": "blobDeleteType" + }, + { + "name": "x-ms-access-tier-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if the access-tier has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "accessTierIfModifiedSince" + }, + { + "name": "x-ms-access-tier-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if the access-tier has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "accessTierIfUnmodifiedSince" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + }, + "head": { + "operationId": "Blob_GetProperties", + "description": "The Get Properties operation returns all user-defined metadata, standard HTTP properties, and system properties for the blob. It does not return the content of the blob.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial blob content." + }, + "Cache-Control": { + "type": "string", + "description": "This header is returned if it was previously specified for the blob." + }, + "Content-Disposition": { + "type": "string", + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + }, + "Content-Encoding": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Encoding request header" + }, + "Content-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-access-tier": { + "type": "string", + "description": "The tier of page blob on a premium storage account or tier of block blob on blob storage LRS accounts. For a list of allowed premium page blob tiers, see https://learn.microsoft.com/azure/virtual-machines/disks-types#premium-ssd. For blob storage LRS accounts, valid values are Hot/Cool/Archive." + }, + "x-ms-access-tier-change-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The time the tier was changed on the object. This is only returned if the tier on the block blob was ever set." + }, + "x-ms-access-tier-inferred": { + "type": "boolean", + "description": "For page blobs on a premium storage account only. If the access tier is not explicitly set on the blob, the tier is inferred based on its content length and this header will be returned with true value." + }, + "x-ms-archive-status": { + "type": "string", + "description": "For blob storage LRS accounts, valid values are rehydrate-pending-to-hot/rehydrate-pending-to-cool. If the blob is being rehydrated and is not complete then this header is returned indicating that rehydrate is pending and also tells the destination tier.", + "enum": [ + "rehydrate-pending-to-hot", + "rehydrate-pending-to-cool", + "rehydrate-pending-to-cold" + ], + "x-ms-enum": { + "name": "ArchiveStatus", + "modelAsString": true, + "values": [ + { + "name": "RehydratePendingToHot", + "value": "rehydrate-pending-to-hot", + "description": "The archive status is rehydrating pending to hot." + }, + { + "name": "RehydratePendingToCool", + "value": "rehydrate-pending-to-cool", + "description": "The archive status is rehydrating pending to cool." + }, + { + "name": "RehydratePendingToCold", + "value": "rehydrate-pending-to-cold", + "description": "The archive status is rehydrating pending to archive." + } + ] + } + }, + "x-ms-blob-committed-block-count": { + "type": "integer", + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-blob-type": { + "type": "string", + "description": "The type of the blob.", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false, + "values": [ + { + "name": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." + }, + { + "name": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." + }, + { + "name": "AppendBlob", + "value": "AppendBlob", + "description": "The blob is an append blob." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-copy-completion-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-destination-snapshot": { + "type": "string", + "description": "Included if the blob is incremental copy blob or incremental copy snapshot, if x-ms-copy-status is success. Snapshot time of the last successful incremental copy snapshot for this blob." + }, + "x-ms-copy-id": { + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-progress": { + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-source": { + "type": "string", + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status": { + "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": false, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } + }, + "x-ms-copy-status-description": { + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-creation-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "Returns the date and time the blob was created." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-expiry-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The time this blob will expire." + }, + "x-ms-immutability-policy-mode": { + "type": "string", + "description": "Indicates the immutability policy mode of the blob.", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": false, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + } + }, + "x-ms-immutability-policy-until-date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." + }, + "x-ms-incremental-copy": { + "type": "boolean", + "description": "Included if the blob is incremental copy blob." + }, + "x-ms-is-current-version": { + "type": "boolean", + "description": "The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header." + }, + "x-ms-last-access-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the blob was last read or written to" + }, + "x-ms-lease-duration": { + "type": "string", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change.", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDuration", + "modelAsString": false, + "values": [ + { + "name": "Infinite", + "value": "infinite", + "description": "The lease is of infinite duration." + }, + { + "name": "Fixed", + "value": "fixed", + "description": "The lease is of fixed duration." + } + ] + } + }, + "x-ms-lease-state": { + "type": "string", + "description": "Lease state of the blob.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": false, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } + }, + "x-ms-lease-status": { + "type": "string", + "description": "The lease status of the blob.", + "enum": [ + "unlocked", + "locked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": false, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } + }, + "x-ms-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, + "x-ms-meta": { + "type": "string", + "description": "The metadata headers." + }, + "x-ms-or": { + "type": "string", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed)." + }, + "x-ms-or-policy-id": { + "type": "string", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + }, + "x-ms-rehydrate-priority": { + "type": "string", + "description": "If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.", + "enum": [ + "High", + "Standard" + ], + "x-ms-enum": { + "name": "RehydratePriority", + "modelAsString": true, + "values": [ + { + "name": "High", + "value": "High", + "description": "The rehydrate priority is high." + }, + { + "name": "Standard", + "value": "Standard", + "description": "The rehydrate priority is standard." + } + ] + } + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-tag-count": { + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + } + }, + "x-ms-paths": { + "/{containerName}?restype=container": { + "put": { + "operationId": "Container_Create", + "description": "Creates a new container under the specified account. If the container with the same name already exists, the operation fails.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "x-ms-blob-public-access", + "in": "header", + "description": "The public access setting for the container.", + "required": false, + "type": "string", + "enum": [ + "blob", + "container" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." + } + ] + }, + "x-ms-client-name": "access" + }, + { + "name": "x-ms-default-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the default encryption scope to set on the container and use for all future writes.", + "required": false, + "type": "string", + "x-ms-client-name": "defaultEncryptionScope" + }, + { + "name": "x-ms-deny-encryption-scope-override", + "in": "header", + "description": "If a blob has a lease and the lease is of infinite duration then the value of this header is set to true, otherwise it is set to false.", + "required": false, + "type": "boolean", + "x-ms-client-name": "PreventEncryptionScopeOverride" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?restype=container&_overload=getProperties": { + "get": { + "operationId": "Container_GetProperties", + "description": "returns all user-defined metadata and system properties for the specified container. The data returned does not include the container's list of blobs", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-public-access": { + "type": "string", + "description": "The public access setting for the container.", + "enum": [ + "blob", + "container" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-default-encryption-scope": { + "type": "string", + "description": "The default encryption scope for the container." + }, + "x-ms-deny-encryption-scope-override": { + "type": "boolean", + "description": "If a blob has a lease and the lease is of infinite duration then the value of this header is set to true, otherwise it is set to false." + }, + "x-ms-has-immutability-policy": { + "type": "boolean", + "description": "Indicates whether the container has an immutability policy set on it." + }, + "x-ms-has-legal-hold": { + "type": "boolean", + "description": "Indicates whether the container has a legal hold." + }, + "x-ms-immutable-storage-with-versioning-enabled": { + "type": "boolean", + "description": "Indicates whether version level worm is enabled on a container" + }, + "x-ms-lease-duration": { + "type": "string", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change.", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDuration", + "modelAsString": false, + "values": [ + { + "name": "Infinite", + "value": "infinite", + "description": "The lease is of infinite duration." + }, + { + "name": "Fixed", + "value": "fixed", + "description": "The lease is of fixed duration." + } + ] + } + }, + "x-ms-lease-state": { + "type": "string", + "description": "Lease state of the blob.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": false, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } + }, + "x-ms-lease-status": { + "type": "string", + "description": "The lease status of the blob.", + "enum": [ + "unlocked", + "locked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": false, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } + }, + "x-ms-meta": { + "type": "string", + "description": "The metadata headers." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?restype=container&_overload=delete": { + "delete": { + "operationId": "Container_Delete", + "description": "operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?restype=container&comp=metadata": { + "put": { + "operationId": "Container_SetMetadata", + "description": "operation sets one or more user-defined name-value pairs for the specified container.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?restype=container&comp=acl": { + "get": { + "operationId": "Container_GetAccessPolicy", + "description": "gets the permissions for the specified container. The permissions indicate whether container data may be accessed publicly.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-public-access": { + "type": "string", + "description": "The public access setting for the container.", + "enum": [ + "blob", + "container" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?restype=container&comp=acl&_overload=setAccessPolicy": { + "put": { + "operationId": "Container_SetAccessPolicy", + "description": "sets the permissions for the specified container. The permissions indicate whether blobs in a container may be accessed publicly.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-public-access", + "in": "header", + "description": "The public access setting for the container.", + "required": false, + "type": "string", + "enum": [ + "blob", + "container" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." + } + ] + }, + "x-ms-client-name": "access" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "containerAcl", + "in": "body", + "description": "The access control list for the container.", + "required": true, + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?restype=container&comp=undelete": { + "put": { + "operationId": "Container_Restore", + "description": "Restores a previously-deleted container.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-deleted-container-name", + "in": "header", + "description": "Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore.", + "required": false, + "type": "string", + "x-ms-client-name": "deletedContainerName" + }, + { + "name": "x-ms-deleted-container-version", + "in": "header", + "description": "Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore.", + "required": false, + "type": "string", + "x-ms-client-name": "deletedContainerVersion" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?restype=container&comp=rename": { + "put": { + "operationId": "Container_Rename", + "description": "Renames an existing container.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-source-container-name", + "in": "header", + "description": "Required. Specifies the name of the container to rename.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceContainerName" + }, + { + "name": "x-ms-source-lease-id", + "in": "header", + "description": "A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceLeaseId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?restype=container&comp=batch": { + "post": { + "operationId": "Container_SubmitBatch", + "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", + "produces": [ + "multipart/mixed", + "application/xml" + ], + "consumes": [ + "multipart/mixed" + ], + "parameters": [ + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "name", + "in": "formData", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "formData", + "required": true, + "type": "file" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "type": "string" + }, + "headers": { + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?restype=container&comp=blobs": { + "get": { + "operationId": "Container_FilterBlobs", + "description": "The Filter Blobs operation enables callers to list blobs in a container whose tags match a given search expression. Filter blobs searches within the given container.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "where", + "in": "query", + "description": "Filters the results to return only to return only blobs whose tags match the specified expression.", + "required": false, + "type": "string" + }, + { + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" + }, + { + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 + }, + { + "name": "include", + "in": "query", + "description": "Include this parameter to specify one or more datasets to include in the response.", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "none", + "versions" + ], + "x-ms-enum": { + "name": "FilterBlobsIncludeItem", + "modelAsString": false, + "values": [ + { + "name": "None", + "value": "none", + "description": "The filter includes no versions." + }, + { + "name": "Versions", + "value": "versions", + "description": "The filter includes n versions." + } + ] + } + }, + "collectionFormat": "csv" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/FilterBlobSegment" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?comp=lease&restype=container&acquire": { + "put": { + "operationId": "Container_AcquireLease", + "description": "The Acquire Lease operation requests a new lease on a container. The lease lock duration can be 15 to 60 seconds, or can be infinite.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-lease-duration", + "in": "header", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change.", + "required": true, + "type": "integer", + "format": "int32", + "x-ms-client-name": "duration" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-proposed-lease-id", + "in": "header", + "description": "Optional. The proposed lease ID for the container.", + "required": false, + "type": "string", + "x-ms-client-name": "proposedLeaseId" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "x-ms-lease-action", + "in": "header", + "description": "Describes what lease action to take.", + "required": true, + "type": "string", + "enum": [ + "acquire" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "action" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?comp=lease&restype=container&release": { + "put": { + "operationId": "Container_ReleaseLease", + "description": "The Release Lease operation frees the lease if it's no longer needed, so that another client can immediately acquire a lease against the container.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "x-ms-lease-action", + "in": "header", + "description": "Describes what lease action to take.", + "required": true, + "type": "string", + "enum": [ + "release" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "action" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?comp=lease&restype=container&renew": { + "put": { + "operationId": "Container_RenewLease", + "description": "The Renew Lease operation renews an existing lease.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "x-ms-lease-action", + "in": "header", + "description": "Describes what lease action to take.", + "required": true, + "type": "string", + "enum": [ + "renew" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "action" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?comp=lease&restype=container&break": { + "put": { + "operationId": "Container_BreakLease", + "description": "The Break Lease operation ends a lease and ensures that another client can't acquire a new lease until the current lease period has expired.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "x-ms-lease-break-period", + "in": "header", + "description": "For a break operation, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60. This break period is only used if it is shorter than the time remaining on the lease. If longer, the time remaining on the lease is used. A new lease will not be available before the break period has expired, but the lease may be held for longer than the break period. If this header does not appear with a break operation, a fixed-duration lease breaks after the remaining lease period elapses, and an infinite lease breaks immediately.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-client-name": "breakPeriod" + }, + { + "name": "x-ms-lease-action", + "in": "header", + "description": "Describes what lease action to take.", + "required": true, + "type": "string", + "enum": [ + "break" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "action" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-lease-time": { + "type": "integer", + "format": "int32", + "description": "Approximate time remaining in the lease period, in seconds." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?comp=lease&restype=container&change": { + "put": { + "operationId": "Container_ChangeLease", + "description": "The Change Lease operation is used to change the ID of an existing lease.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-proposed-lease-id", + "in": "header", + "description": "Required. The proposed lease ID for the container.", + "required": true, + "type": "string", + "x-ms-client-name": "proposedLeaseId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "x-ms-lease-action", + "in": "header", + "description": "Describes what lease action to take.", + "required": true, + "type": "string", + "enum": [ + "change" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "action" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?restype=container&comp=list&flat": { + "get": { + "operationId": "Container_ListBlobFlatSegment", + "description": "The List Blobs operation returns a list of the blobs under the specified container.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "prefix", + "in": "query", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "required": false, + "type": "string" + }, + { + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" + }, + { + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 + }, + { + "name": "include", + "in": "query", + "description": "Include this parameter to specify one or more datasets to include in the response.", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "copy", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludeItem", + "modelAsString": false, + "values": [ + { + "name": "Copy", + "value": "copy", + "description": "The include copies." + }, + { + "name": "Deleted", + "value": "deleted", + "description": "The include deleted blobs." + }, + { + "name": "Metadata", + "value": "metadata", + "description": "The include metadata." + }, + { + "name": "Snapshots", + "value": "snapshots", + "description": "The include snapshots." + }, + { + "name": "UncommittedBlobs", + "value": "uncommittedblobs", + "description": "The include uncommitted blobs." + }, + { + "name": "Versions", + "value": "versions", + "description": "The include versions." + }, + { + "name": "Tags", + "value": "tags", + "description": "The include tags." + }, + { + "name": "ImmutabilityPolicy", + "value": "immutabilitypolicy", + "description": "The include immutable policy." + }, + { + "name": "LegalHold", + "value": "legalhold", + "description": "The include legal hold." + }, + { + "name": "DeletedWithVersions", + "value": "deletedwithversions", + "description": "The include deleted with versions." + } + ] + } + }, + "collectionFormat": "csv" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "startFrom", + "in": "query", + "description": "Specifies the relative path to list paths from. For non-recursive list, only one entity level is supported; For recursive list, multiple entity levels are supported. (Inclusive)", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListBlobsFlatSegmentResponse" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?restype=container&comp=list&hierarchy": { + "get": { + "operationId": "Container_ListBlobHierarchySegment", + "description": "The List Blobs operation returns a list of the blobs under the specified container. A delimiter can be used to traverse a virtual hierarchy of blobs as though it were a file system.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "delimiter", + "in": "query", + "description": "When the request includes this parameter, the operation returns a BlobPrefix element in the response body that acts as a placeholder for all blobs whose names begin with the same substring up to the appearance of the delimiter character. The delimiter may be a single character or a string.", + "required": true, + "type": "string" + }, + { + "name": "prefix", + "in": "query", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "required": false, + "type": "string" + }, + { + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" + }, + { + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 + }, + { + "name": "include", + "in": "query", + "description": "Include this parameter to specify one or more datasets to include in the response.", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "copy", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludeItem", + "modelAsString": false, + "values": [ + { + "name": "Copy", + "value": "copy", + "description": "The include copies." + }, + { + "name": "Deleted", + "value": "deleted", + "description": "The include deleted blobs." + }, + { + "name": "Metadata", + "value": "metadata", + "description": "The include metadata." + }, + { + "name": "Snapshots", + "value": "snapshots", + "description": "The include snapshots." + }, + { + "name": "UncommittedBlobs", + "value": "uncommittedblobs", + "description": "The include uncommitted blobs." + }, + { + "name": "Versions", + "value": "versions", + "description": "The include versions." + }, + { + "name": "Tags", + "value": "tags", + "description": "The include tags." + }, + { + "name": "ImmutabilityPolicy", + "value": "immutabilitypolicy", + "description": "The include immutable policy." + }, + { + "name": "LegalHold", + "value": "legalhold", + "description": "The include legal hold." + }, + { + "name": "DeletedWithVersions", + "value": "deletedwithversions", + "description": "The include deleted with versions." + } + ] + } + }, + "collectionFormat": "csv" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "startFrom", + "in": "query", + "description": "Specifies the relative path to list paths from. For non-recursive list, only one entity level is supported; For recursive list, multiple entity levels are supported. (Inclusive)", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListBlobsHierarchySegmentResponse" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}?restype=account&comp=properties": { + "get": { + "operationId": "Container_GetAccountInfo", + "description": "Returns the sku name and account kind", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-account-kind": { + "type": "string", + "description": "Identifies the account kind", + "enum": [ + "Storage", + "BlobStorage", + "StorageV2", + "FileStorage", + "BlockBlobStorage" + ], + "x-ms-enum": { + "name": "AccountKind", + "modelAsString": false, + "values": [ + { + "name": "Storage", + "value": "Storage", + "description": "The storage account is a general-purpose account." + }, + { + "name": "BlobStorage", + "value": "BlobStorage", + "description": "The storage account is a blob storage account." + }, + { + "name": "StorageV2", + "value": "StorageV2", + "description": "The storage account is a storage V2 account." + }, + { + "name": "FileStorage", + "value": "FileStorage", + "description": "The storage account is a file storage account." + }, + { + "name": "BlockBlobStorage", + "value": "BlockBlobStorage", + "description": "The storage account is a block blob storage account." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-is-hns-enabled": { + "type": "boolean", + "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-sku-name": { + "type": "string", + "description": "Identifies the sku name of the account", + "enum": [ + "Standard_LRS", + "Standard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS", + "Standard_GZRS", + "Premium_ZRS", + "Standard_RAGZRS" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": false, + "values": [ + { + "name": "StandardLRS", + "value": "Standard_LRS", + "description": "The standard LRS SKU." + }, + { + "name": "StandardGRS", + "value": "Standard_GRS", + "description": "The standard GRS SKU." + }, + { + "name": "StandardRAGRS", + "value": "Standard_RAGRS", + "description": "The standard RAGRS SKU." + }, + { + "name": "StandardZRS", + "value": "Standard_ZRS", + "description": "The standard ZRS SKU." + }, + { + "name": "PremiumLRS", + "value": "Premium_LRS", + "description": "The premium LRS SKU." + }, + { + "name": "StandardGZRS", + "value": "Standard_GZRS", + "description": "The standard GZRS SKU." + }, + { + "name": "PremiumZRS", + "value": "Premium_ZRS", + "description": "The premium ZRS SKU." + }, + { + "name": "StandardRAGZRS", + "value": "Standard_RAGZRS", + "description": "The standard RAGZRS SKU." + } + ] + } + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=undelete": { + "put": { + "operationId": "Blob_Undelete", + "description": "Undelete a blob that was previously soft deleted", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=expiry": { + "put": { + "operationId": "Blob_SetExpiry", + "description": "Set the expiration time of a blob", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-expiry-option", + "in": "header", + "description": "Required. Indicates mode of the expiry time", + "required": true, + "type": "string", + "enum": [ + "NeverExpire", + "RelativeToCreation", + "RelativeToNow", + "Absolute" + ], + "x-ms-enum": { + "name": "BlobExpiryOptions", + "modelAsString": true, + "values": [ + { + "name": "NeverExpire", + "value": "NeverExpire", + "description": "Never expire." + }, + { + "name": "RelativeToCreation", + "value": "RelativeToCreation", + "description": "Relative to creation time." + }, + { + "name": "RelativeToNow", + "value": "RelativeToNow", + "description": "Relative to now." + }, + { + "name": "Absolute", + "value": "Absolute", + "description": "Absolute time." + } + ] + }, + "x-ms-client-name": "expiryOptions" + }, + { + "name": "x-ms-expiry-time", + "in": "header", + "description": "The time this blob will expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ExpiresOn" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=properties&SetHTTPHeaders": { + "put": { + "operationId": "Blob_SetProperties", + "description": "The Set HTTP Headers operation sets system properties on the blob.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-blob-cache-control", + "in": "header", + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobCacheControl" + }, + { + "name": "x-ms-blob-content-type", + "in": "header", + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentType" + }, + { + "name": "x-ms-blob-content-md5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "blobContentMd5" + }, + { + "name": "x-ms-blob-content-encoding", + "in": "header", + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentEncoding" + }, + { + "name": "x-ms-blob-content-language", + "in": "header", + "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentLanguage" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-content-disposition", + "in": "header", + "description": "Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentDisposition" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=immutabilityPolicies": { + "put": { + "operationId": "Blob_SetImmutabilityPolicy", + "description": "Set the immutability policy of a blob", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "x-ms-immutability-policy-until-date", + "in": "header", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, + "type": "string", + "enum": [ + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "ImmutabilityPolicyMode", + "modelAsString": false, + "values": [ + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + }, + "x-ms-client-name": "immutabilityPolicyMode" + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-immutability-policy-mode": { + "type": "string", + "description": "Indicates the immutability policy mode of the blob.", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": false, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + } + }, + "x-ms-immutability-policy-until-date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=immutabilityPolicies&_overload=deleteImmutabilityPolicy": { + "delete": { + "operationId": "Blob_DeleteImmutabilityPolicy", + "description": "The Delete Immutability Policy operation deletes the immutability policy on the blob.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=legalhold": { + "put": { + "operationId": "Blob_SetLegalHold", + "description": "The Set Legal Hold operation sets a legal hold on the blob.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-legal-hold", + "in": "header", + "description": "Required. Specifies the legal hold status to set on the blob.", + "required": true, + "type": "boolean", + "x-ms-client-name": "legalHold" + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-legal-hold": { + "type": "boolean", + "description": "Specifies the legal hold status to set on the blob." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=metadata": { + "put": { + "operationId": "Blob_SetMetadata", + "description": "The Set Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=lease&acquire": { + "put": { + "operationId": "Blob_AcquireLease", + "description": "The Acquire Lease operation requests a new lease on a blob. The lease lock duration can be 15 to 60 seconds, or can be infinite.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-duration", + "in": "header", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change.", + "required": true, + "type": "integer", + "format": "int32", + "x-ms-client-name": "duration" + }, + { + "name": "x-ms-proposed-lease-id", + "in": "header", + "description": "Optional. The proposed lease ID for the container.", + "required": false, + "type": "string", + "x-ms-client-name": "proposedLeaseId" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-lease-action", + "in": "header", + "description": "Describes what lease action to take.", + "required": true, + "type": "string", + "enum": [ + "acquire" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "action" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=lease&release": { + "put": { + "operationId": "Blob_ReleaseLease", + "description": "The Release Lease operation frees the lease if it's no longer needed, so that another client can immediately acquire a lease against the blob.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-lease-action", + "in": "header", + "description": "Describes what lease action to take.", + "required": true, + "type": "string", + "enum": [ + "release" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "action" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=lease&renew": { + "put": { + "operationId": "Blob_RenewLease", + "description": "The Renew Lease operation renews an existing lease.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-lease-action", + "in": "header", + "description": "Describes what lease action to take.", + "required": true, + "type": "string", + "enum": [ + "renew" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "action" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=lease&change": { + "put": { + "operationId": "Blob_ChangeLease", + "description": "The Change Lease operation is used to change the ID of an existing lease.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "Required. A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match.", + "required": true, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-proposed-lease-id", + "in": "header", + "description": "Required. The proposed lease ID for the container.", + "required": true, + "type": "string", + "x-ms-client-name": "proposedLeaseId" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-lease-action", + "in": "header", + "description": "Describes what lease action to take.", + "required": true, + "type": "string", + "enum": [ + "change" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "action" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-lease-id": { + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=lease&break": { + "put": { + "operationId": "Blob_BreakLease", + "description": "The Break Lease operation ends a lease and ensures that another client can't acquire a new lease until the current lease period has expired.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-break-period", + "in": "header", + "description": "For a break operation, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60. This break period is only used if it is shorter than the time remaining on the lease. If longer, the time remaining on the lease is used. A new lease will not be available before the break period has expired, but the lease may be held for longer than the break period. If this header does not appear with a break operation, a fixed-duration lease breaks after the remaining lease period elapses, and an infinite lease breaks immediately.", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-client-name": "breakPeriod" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-lease-action", + "in": "header", + "description": "Describes what lease action to take.", + "required": true, + "type": "string", + "enum": [ + "break" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "action" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-lease-time": { + "type": "integer", + "format": "int32", + "description": "Approximate time remaining in the lease period, in seconds." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=snapshot": { + "put": { + "operationId": "Blob_CreateSnapshot", + "description": "The Create Snapshot operation creates a read-only snapshot of a blob", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-snapshot": { + "type": "string", + "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=copy&sync": { + "put": { + "operationId": "Blob_CopyFromUrl", + "description": "The Copy From URL operation copies a blob or an internet resource to a new blob. It will not return a response until the copy is complete.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "x-ms-access-tier", + "in": "header", + "description": "The tier to be set on the blob.", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + }, + "x-ms-client-name": "tier" + }, + { + "name": "x-ms-source-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" + }, + { + "name": "x-ms-source-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" + }, + { + "name": "x-ms-source-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfMatch" + }, + { + "name": "x-ms-source-if-none-match", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-copy-source", + "in": "header", + "description": "Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would appear in a request URI. The source blob must either be public or must be authenticated via a shared access signature.", + "required": true, + "type": "string", + "x-ms-client-name": "copySource" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-source-content-md5", + "in": "header", + "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "sourceContentMd5" + }, + { + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" + }, + { + "name": "x-ms-immutability-policy-until-date", + "in": "header", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, + "type": "string", + "enum": [ + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "ImmutabilityPolicyMode", + "modelAsString": false, + "values": [ + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + }, + "x-ms-client-name": "immutabilityPolicyMode" + }, + { + "name": "x-ms-legal-hold", + "in": "header", + "description": "Specified if a legal hold should be set on the blob.", + "required": false, + "type": "boolean", + "x-ms-client-name": "legalHold" + }, + { + "name": "x-ms-copy-source-authorization", + "in": "header", + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceAuthorization" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "x-ms-copy-source-tag-option", + "in": "header", + "description": "Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags.", + "required": false, + "type": "string", + "enum": [ + "REPLACE", + "COPY" + ], + "x-ms-enum": { + "name": "BlobCopySourceTags", + "modelAsString": false, + "values": [ + { + "name": "Replace", + "value": "REPLACE", + "description": "The replace blob source tags option." + }, + { + "name": "Copy", + "value": "COPY", + "description": "The copy blob source tags option." + } + ] + }, + "x-ms-client-name": "copySourceTags" + }, + { + "name": "x-ms-file-request-intent", + "in": "header", + "description": "Valid value is backup", + "required": false, + "type": "string", + "enum": [ + "backup" + ], + "x-ms-enum": { + "name": "FileShareTokenIntent", + "modelAsString": true, + "values": [ + { + "name": "Backup", + "value": "backup", + "description": "The file share token intent is backup." + } + ] + }, + "x-ms-client-name": "fileRequestIntent" + }, + { + "name": "x-ms-requires-sync", + "in": "header", + "description": "This header indicates that this is a synchronous Copy Blob From URL instead of a Asynchronous Copy Blob.", + "required": true, + "type": "string", + "enum": [ + "true" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "requiresSync" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-copy-id": { + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-status": { + "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "success" + ], + "x-ms-enum": { + "modelAsString": false + } + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=copy©id": { + "put": { + "operationId": "Blob_AbortCopyFromUrl", + "description": "The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a destination blob with zero length and full metadata.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "copyid", + "in": "query", + "description": "The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation.", + "required": true, + "type": "string", + "x-ms-client-name": "copyId" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-copy-action", + "in": "header", + "description": "The copy action to be performed.", + "required": true, + "type": "string", + "enum": [ + "abort" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "copyActionAbortConstant" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. ", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=tier": { + "put": { + "operationId": "Blob_SetTier", + "description": "The Set Tier operation sets the tier on a block blob. The operation is allowed on a page blob or block blob, but not on an append blob. A block blob's tier determines Hot/Cool/Archive storage type. This operation does not update the blob's ETag.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-access-tier", + "in": "header", + "description": "Indicates the tier to be set on the blob.", + "required": true, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + }, + "x-ms-client-name": "tier" + }, + { + "name": "x-ms-rehydrate-priority", + "in": "header", + "description": "If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.", + "required": false, + "type": "string", + "enum": [ + "High", + "Standard" + ], + "x-ms-enum": { + "name": "RehydratePriority", + "modelAsString": true, + "values": [ + { + "name": "High", + "value": "High", + "description": "The rehydrate priority is high." + }, + { + "name": "Standard", + "value": "Standard", + "description": "The rehydrate priority is standard." + } + ] + }, + "x-ms-client-name": "rehydratePriority" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?restype=account&comp=properties&blob": { + "get": { + "operationId": "Blob_GetAccountInfo", + "description": "Returns the sku name and account kind", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-account-kind": { + "type": "string", + "description": "Identifies the account kind", + "enum": [ + "Storage", + "BlobStorage", + "StorageV2", + "FileStorage", + "BlockBlobStorage" + ], + "x-ms-enum": { + "name": "AccountKind", + "modelAsString": false, + "values": [ + { + "name": "Storage", + "value": "Storage", + "description": "The storage account is a general-purpose account." + }, + { + "name": "BlobStorage", + "value": "BlobStorage", + "description": "The storage account is a blob storage account." + }, + { + "name": "StorageV2", + "value": "StorageV2", + "description": "The storage account is a storage V2 account." + }, + { + "name": "FileStorage", + "value": "FileStorage", + "description": "The storage account is a file storage account." + }, + { + "name": "BlockBlobStorage", + "value": "BlockBlobStorage", + "description": "The storage account is a block blob storage account." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-is-hns-enabled": { + "type": "boolean", + "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-sku-name": { + "type": "string", + "description": "Identifies the sku name of the account", + "enum": [ + "Standard_LRS", + "Standard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS", + "Standard_GZRS", + "Premium_ZRS", + "Standard_RAGZRS" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": false, + "values": [ + { + "name": "StandardLRS", + "value": "Standard_LRS", + "description": "The standard LRS SKU." + }, + { + "name": "StandardGRS", + "value": "Standard_GRS", + "description": "The standard GRS SKU." + }, + { + "name": "StandardRAGRS", + "value": "Standard_RAGRS", + "description": "The standard RAGRS SKU." + }, + { + "name": "StandardZRS", + "value": "Standard_ZRS", + "description": "The standard ZRS SKU." + }, + { + "name": "PremiumLRS", + "value": "Premium_LRS", + "description": "The premium LRS SKU." + }, + { + "name": "StandardGZRS", + "value": "Standard_GZRS", + "description": "The standard GZRS SKU." + }, + { + "name": "PremiumZRS", + "value": "Premium_ZRS", + "description": "The premium ZRS SKU." + }, + { + "name": "StandardRAGZRS", + "value": "Standard_RAGZRS", + "description": "The standard RAGZRS SKU." + } + ] + } + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=tags": { + "get": { + "operationId": "Blob_GetTags", + "description": "The Get Blob Tags operation enables users to get tags on a blob.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-blob-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "x-ms-blob-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "x-ms-blob-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-blob-if-none-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs without a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/BlobTags" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=tags&_overload=setTags": { + "put": { + "operationId": "Blob_SetTags", + "description": "The Set Tags operation enables users to set tags on a blob.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "versionid", + "in": "query", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer.", + "required": false, + "type": "string", + "x-ms-client-name": "versionId" + }, + { + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentMD5" + }, + { + "name": "x-ms-content-crc64", + "in": "header", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentCrc64" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "x-ms-blob-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "x-ms-blob-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-blob-if-none-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs without a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "tags", + "in": "body", + "description": "The blob tags.", + "required": true, + "schema": { + "$ref": "#/definitions/BlobTags" + } + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. ", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?_overload=create": { + "put": { + "operationId": "AppendBlob_Create", + "description": "The Create operation creates a new append blob.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-blob-content-type", + "in": "header", + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentType" + }, + { + "name": "x-ms-blob-content-encoding", + "in": "header", + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentEncoding" + }, + { + "name": "x-ms-blob-content-language", + "in": "header", + "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentLanguage" + }, + { + "name": "x-ms-blob-content-md5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "blobContentMd5" + }, + { + "name": "x-ms-blob-cache-control", + "in": "header", + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobCacheControl" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-content-disposition", + "in": "header", + "description": "Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentDisposition" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" + }, + { + "name": "x-ms-immutability-policy-until-date", + "in": "header", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, + "type": "string", + "enum": [ + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "ImmutabilityPolicyMode", + "modelAsString": false, + "values": [ + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + }, + "x-ms-client-name": "immutabilityPolicyMode" + }, + { + "name": "x-ms-legal-hold", + "in": "header", + "description": "Specified if a legal hold should be set on the blob.", + "required": false, + "type": "boolean", + "x-ms-client-name": "legalHold" + }, + { + "name": "Content-Length", + "in": "header", + "description": "the initial size of the append blob", + "required": true, + "type": "number", + "enum": [ + 0 + ], + "x-ms-client-name": "contentLength" + }, + { + "name": "x-ms-blob-type", + "in": "header", + "description": "The type of the blob.", + "required": true, + "type": "string", + "enum": [ + "AppendBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=page&update": { + "put": { + "operationId": "PageBlob_UploadPages", + "description": "The Upload Pages operation writes a range of pages to a page blob", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentMD5" + }, + { + "name": "x-ms-content-crc64", + "in": "header", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentCrc64" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "Range", + "in": "header", + "description": "Bytes of data in the specified range.", + "required": true, + "type": "string", + "x-ms-client-name": "range" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "x-ms-if-sequence-number-le", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has a sequence number less than or equal to the specified.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo" + }, + { + "name": "x-ms-if-sequence-number-lt", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has a sequence number less than the specified.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThan" + }, + { + "name": "x-ms-if-sequence-number-eq", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has the specified sequence number.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberEqualTo" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-structured-body", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the message schema version and properties.", + "required": false, + "type": "string", + "x-ms-client-name": "structuredBodyType" + }, + { + "name": "x-ms-structured-content-length", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the length of the blob/file content inside the message body. Will always be smaller than Content-Length.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "structuredContentLength" + }, + { + "name": "x-ms-page-write", + "in": "header", + "description": "Required. You may specify one of the following options:\\n - Update: Writes the bytes specified by the request body into the specified range. The Range and Content-Length headers must match to perform the update.\\n - Clear: Clears the specified range and releases the space used in storage for that range. To clear a range, set the Content-Length header to zero, and the Range header to a value that indicates the range to clear, up to maximum blob size.", + "required": true, + "type": "string", + "enum": [ + "update" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "pageWrite" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-structured-body": { + "type": "string", + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=page&clear": { + "put": { + "operationId": "PageBlob_ClearPages", + "description": "The Clear Pages operation clears a range of pages from a page blob", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "Content-Length", + "in": "header", + "description": "value must be 0 when x-ms-page-write is clear", + "required": true, + "type": "number", + "enum": [ + 0 + ], + "x-ms-client-name": "contentLength" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "Range", + "in": "header", + "description": "Bytes of data in the specified range.", + "required": true, + "type": "string", + "x-ms-client-name": "range" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "x-ms-if-sequence-number-le", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has a sequence number less than or equal to the specified.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo" + }, + { + "name": "x-ms-if-sequence-number-lt", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has a sequence number less than the specified.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThan" + }, + { + "name": "x-ms-if-sequence-number-eq", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has the specified sequence number.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberEqualTo" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-page-write", + "in": "header", + "description": "Required. You may specify one of the following options:\\n - Update: Writes the bytes specified by the request body into the specified range. The Range and Content-Length headers must match to perform the update.\\n - Clear: Clears the specified range and releases the space used in storage for that range. To clear a range, set the Content-Length header to zero, and the Range header to a value that indicates the range to clear, up to maximum blob size.", + "required": true, + "type": "string", + "enum": [ + "clear" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "pageWrite" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=page&update&fromUrl": { + "put": { + "operationId": "PageBlob_UploadPagesFromUrl", + "description": "The Upload Pages operation writes a range of pages to a page blob where the contents are read from a URL.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "x-ms-copy-source", + "in": "header", + "description": "Specify a URL to the copy source.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceUrl" + }, + { + "name": "x-ms-source-range", + "in": "header", + "description": "Bytes of source data in the specified range. The length of this range should match the ContentLength header and x-ms-range/Range destination range header.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceRange" + }, + { + "name": "x-ms-source-content-md5", + "in": "header", + "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "sourceContentMd5" + }, + { + "name": "x-ms-source-content-crc64", + "in": "header", + "description": "Specify the crc64 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "sourceContentCrc64" + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-range", + "in": "header", + "description": "Bytes of source data in the specified range. The length of this range should match the ContentLength header and x-ms-range/Range destination range header.", + "required": true, + "type": "string", + "x-ms-client-name": "range" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-if-sequence-number-le", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has a sequence number less than or equal to the specified.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo" + }, + { + "name": "x-ms-if-sequence-number-lt", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has a sequence number less than the specified.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberLessThan" + }, + { + "name": "x-ms-if-sequence-number-eq", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has the specified sequence number.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "ifSequenceNumberEqualTo" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-source-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" + }, + { + "name": "x-ms-source-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" + }, + { + "name": "x-ms-source-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfMatch" + }, + { + "name": "x-ms-source-if-none-match", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" + }, + { + "name": "x-ms-copy-source-authorization", + "in": "header", + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceAuthorization" + }, + { + "name": "x-ms-file-request-intent", + "in": "header", + "description": "Valid value is backup", + "required": false, + "type": "string", + "enum": [ + "backup" + ], + "x-ms-enum": { + "name": "FileShareTokenIntent", + "modelAsString": true, + "values": [ + { + "name": "Backup", + "value": "backup", + "description": "The file share token intent is backup." + } + ] + }, + "x-ms-client-name": "fileRequestIntent" + }, + { + "name": "x-ms-page-write", + "in": "header", + "description": "Required. You may specify one of the following options:\\n - Update: Writes the bytes specified by the request body into the specified range. The Range and Content-Length headers must match to perform the update.\\n - Clear: Clears the specified range and releases the space used in storage for that range. To clear a range, set the Content-Length header to zero, and the Range header to a value that indicates the range to clear, up to maximum blob size.", + "required": true, + "type": "string", + "enum": [ + "update" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "pageWrite" + }, + { + "name": "x-ms-source-encryption-key", + "in": "header", + "description": "Optional. Specifies the source encryption key to use to encrypt the source data provided in the request.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceEncryptionKey" + }, + { + "name": "x-ms-source-encryption-key-sha256", + "in": "header", + "description": "The SHA-256 hash of the provided source encryption key. Must be provided if the x-ms-source-encryption-key header is provided.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceEncryptionKeySha256" + }, + { + "name": "x-ms-source-encryption-algorithm", + "in": "header", + "description": "The algorithm used to produce the source encryption key hash. Currently, the only accepted value is \\\"AES256\\\". Must be provided if the x-ms-source-encryption-key is provided.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "sourceEncryptionAlgorithm" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=pagelist": { + "get": { + "operationId": "PageBlob_GetPageRanges", + "description": "The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a page blob.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "Range", + "in": "header", + "description": "Return only the bytes of the blob in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "range" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" + }, + { + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-content-length": { + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=pagelist&diff": { + "get": { + "operationId": "PageBlob_GetPageRangesDiff", + "description": "The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob or snapshot of a page blob.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "prevsnapshot", + "in": "query", + "description": "Optional in version 2015-07-08 and newer. The prevsnapshot parameter is a DateTime value that specifies that the response will contain only pages that were changed between target blob and previous snapshot. Changed pages include both updated and cleared pages. The target blob may be a snapshot, as long as the snapshot specified by prevsnapshot is the older of the two. Note that incremental snapshots are currently supported only for blobs created on or after January 1, 2016.", + "required": false, + "type": "string" + }, + { + "name": "x-ms-previous-snapshot-url", + "in": "header", + "description": "Optional. This header is only supported in service versions 2019-04-19 and after and specifies the URL of a previous snapshot of the target blob. The response will only contain pages that were changed between the target blob and its previous snapshot.", + "required": false, + "type": "string", + "x-ms-client-name": "prevSnapshotUrl" + }, + { + "name": "Range", + "in": "header", + "description": "Return only the bytes of the blob in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "range" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" + }, + { + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PageList" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-content-length": { + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=properties&Resize": { + "put": { + "operationId": "PageBlob_Resize", + "description": "The Resize operation increases the size of the page blob to the specified size.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-blob-content-length", + "in": "header", + "description": "This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned to a 512-byte boundary.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "blobContentLength" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=properties&UpdateSequenceNumber": { + "put": { + "operationId": "PageBlob_SetSequenceNumber", + "description": "The Update Sequence Number operation sets the blob's sequence number. The operation will fail if the specified sequence number is less than the current sequence number of the blob.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-sequence-number-action", + "in": "header", + "description": "Required if the x-ms-blob-sequence-number header is set for the request. This property applies to page blobs only. This property indicates how the service should modify the blob's sequence number", + "required": true, + "type": "string", + "enum": [ + "increment", + "max", + "update" + ], + "x-ms-enum": { + "name": "SequenceNumberActionType", + "modelAsString": false, + "values": [ + { + "name": "Increment", + "value": "increment", + "description": "Increment the sequence number." + }, + { + "name": "Max", + "value": "max", + "description": "Set the maximum for the sequence number." + }, + { + "name": "Update", + "value": "update", + "description": "Update the sequence number." + } + ] + }, + "x-ms-client-name": "sequenceNumberAction" + }, + { + "name": "x-ms-blob-sequence-number", + "in": "header", + "description": "Set for page blobs only. The sequence number is a user-controlled value that you can use to track requests. The value of the sequence number must be between 0 and 2^63 - 1.", + "required": false, + "type": "integer", + "format": "int64", + "default": 0, + "x-ms-client-name": "blobSequenceNumber" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=incrementalcopy": { + "put": { + "operationId": "PageBlob_CopyIncremental", + "description": "The Copy Incremental operation copies a snapshot of the source page blob to a destination page blob. The snapshot is copied such that only the differential changes between the previously copied snapshot are transferred to the destination. The copied snapshots are complete copies of the original snapshot and can be read or copied from as usual. This API is supported since REST version 2016-05-31.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-copy-source", + "in": "header", + "description": "Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would appear in a request URI. The source blob must either be public or must be authenticated via a shared access signature.", + "required": true, + "type": "string", + "x-ms-client-name": "copySource" + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-copy-id": { + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-status": { + "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": false, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=appendblock": { + "put": { + "operationId": "AppendBlob_AppendBlock", + "description": "The Append Block operation commits a new block of data to the end of an append blob.", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentMD5" + }, + { + "name": "x-ms-content-crc64", + "in": "header", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentCrc64" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-condition-maxsize", + "in": "header", + "description": "Optional conditional header. The max length in bytes permitted for the append blob. If the Append Block operation would cause the blob to exceed that limit or if the blob size is already greater than the value specified in this header, the request will fail with MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed).", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "maxSize" + }, + { + "name": "x-ms-blob-condition-appendpos", + "in": "header", + "description": "Optional conditional header, used only for the Append Block operation. A number indicating the byte offset to compare. Append Block will succeed only if the append position is equal to this number. If it is not, the request will fail with the AppendPositionConditionNotMet error (HTTP status code 412 - Precondition Failed).", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-structured-body", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the message schema version and properties.", + "required": false, + "type": "string", + "x-ms-client-name": "structuredBodyType" + }, + { + "name": "x-ms-structured-content-length", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the length of the blob/file content inside the message body. Will always be smaller than Content-Length.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "structuredContentLength" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-append-offset": { + "type": "string", + "description": "This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes." + }, + "x-ms-blob-committed-block-count": { + "type": "integer", + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-structured-body": { + "type": "string", + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=appendblock&fromUrl": { + "put": { + "operationId": "AppendBlob_AppendBlockFromUrl", + "description": "The Append Block From URL operation creates a new block to be committed as part of an append blob where the contents are read from a URL.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "x-ms-copy-source", + "in": "header", + "description": "Specify a URL to the copy source.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceUrl" + }, + { + "name": "x-ms-source-range", + "in": "header", + "description": "Bytes of source data in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceRange" + }, + { + "name": "x-ms-source-content-md5", + "in": "header", + "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "sourceContentMd5" + }, + { + "name": "x-ms-source-content-crc64", + "in": "header", + "description": "Specify the crc64 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "sourceContentCrc64" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentMD5" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-condition-maxsize", + "in": "header", + "description": "Optional conditional header. The max length in bytes permitted for the append blob. If the Append Block operation would cause the blob to exceed that limit or if the blob size is already greater than the value specified in this header, the request will fail with MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed).", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "maxSize" + }, + { + "name": "x-ms-blob-condition-appendpos", + "in": "header", + "description": "Optional conditional header, used only for the Append Block operation. A number indicating the byte offset to compare. Append Block will succeed only if the append position is equal to this number. If it is not, the request will fail with the AppendPositionConditionNotMet error (HTTP status code 412 - Precondition Failed).", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-source-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" + }, + { + "name": "x-ms-source-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" + }, + { + "name": "x-ms-source-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfMatch" + }, + { + "name": "x-ms-source-if-none-match", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" + }, + { + "name": "x-ms-copy-source-authorization", + "in": "header", + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceAuthorization" + }, + { + "name": "x-ms-file-request-intent", + "in": "header", + "description": "Valid value is backup", + "required": false, + "type": "string", + "enum": [ + "backup" + ], + "x-ms-enum": { + "name": "FileShareTokenIntent", + "modelAsString": true, + "values": [ + { + "name": "Backup", + "value": "backup", + "description": "The file share token intent is backup." + } + ] + }, + "x-ms-client-name": "fileRequestIntent" + }, + { + "name": "x-ms-source-encryption-key", + "in": "header", + "description": "Optional. Specifies the source encryption key to use to encrypt the source data provided in the request.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceEncryptionKey" + }, + { + "name": "x-ms-source-encryption-key-sha256", + "in": "header", + "description": "The SHA-256 hash of the provided source encryption key. Must be provided if the x-ms-source-encryption-key header is provided.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceEncryptionKeySha256" + }, + { + "name": "x-ms-source-encryption-algorithm", + "in": "header", + "description": "The algorithm used to produce the source encryption key hash. Currently, the only accepted value is \\\"AES256\\\". Must be provided if the x-ms-source-encryption-key is provided.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "sourceEncryptionAlgorithm" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-append-offset": { + "type": "string", + "description": "This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes." + }, + "x-ms-blob-committed-block-count": { + "type": "integer", + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=seal": { + "put": { + "operationId": "AppendBlob_Seal", + "description": "The Seal operation seals the Append Blob to make it read-only. Seal is supported only on version 2019-12-12 version or later.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-blob-condition-appendpos", + "in": "header", + "description": "Optional conditional header, used only for the Append Block operation. A number indicating the byte offset to compare. Append Block will succeed only if the append position is equal to this number. If it is not, the request will fail with the AppendPositionConditionNotMet error (HTTP status code 412 - Precondition Failed).", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "appendPosition" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-sealed": { + "type": "boolean", + "description": "If this blob has been sealed" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?_overload=upload": { + "put": { + "operationId": "BlockBlob_Upload", + "description": "The Upload Block Blob operation updates the content of an existing block blob. Updating an existing block blob overwrites any existing metadata on the blob. Partial updates are not supported with Put Blob; the content of the existing blob is overwritten with the content of the new blob. To perform a partial update of the content of a block blob, use the Put Block List operation.", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentMD5" + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "x-ms-blob-content-type", + "in": "header", + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentType" + }, + { + "name": "x-ms-blob-content-encoding", + "in": "header", + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentEncoding" + }, + { + "name": "x-ms-blob-content-language", + "in": "header", + "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentLanguage" + }, + { + "name": "x-ms-blob-content-md5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "blobContentMd5" + }, + { + "name": "x-ms-blob-cache-control", + "in": "header", + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobCacheControl" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-content-disposition", + "in": "header", + "description": "Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentDisposition" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "x-ms-access-tier", + "in": "header", + "description": "The tier to be set on the blob.", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + }, + "x-ms-client-name": "tier" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" + }, + { + "name": "x-ms-immutability-policy-until-date", + "in": "header", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, + "type": "string", + "enum": [ + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "ImmutabilityPolicyMode", + "modelAsString": false, + "values": [ + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + }, + "x-ms-client-name": "immutabilityPolicyMode" + }, + { + "name": "x-ms-legal-hold", + "in": "header", + "description": "Specified if a legal hold should be set on the blob.", + "required": false, + "type": "boolean", + "x-ms-client-name": "legalHold" + }, + { + "name": "x-ms-content-crc64", + "in": "header", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentCrc64" + }, + { + "name": "x-ms-structured-body", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the message schema version and properties.", + "required": false, + "type": "string", + "x-ms-client-name": "structuredBodyType" + }, + { + "name": "x-ms-structured-content-length", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the length of the blob/file content inside the message body. Will always be smaller than Content-Length.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "structuredContentLength" + }, + { + "name": "x-ms-blob-type", + "in": "header", + "description": "The type of the blob.", + "required": true, + "type": "string", + "enum": [ + "BlockBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-structured-body": { + "type": "string", + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?BlockBlob&fromUrl": { + "put": { + "operationId": "BlockBlob_PutBlobFromUrl", + "description": "The Put Blob from URL operation creates a new Block Blob where the contents of the blob are read from a given URL. This API is supported beginning with the 2020-04-08 version. Partial updates are not supported with Put Blob from URL; the content of an existing blob is overwritten with the content of the new blob. To perform partial updates to a block blob’s contents using a source URL, use the Put Block from URL API in conjunction with Put Block List.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentMD5" + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "x-ms-blob-content-type", + "in": "header", + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentType" + }, + { + "name": "x-ms-blob-content-encoding", + "in": "header", + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentEncoding" + }, + { + "name": "x-ms-blob-content-language", + "in": "header", + "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentLanguage" + }, + { + "name": "x-ms-blob-content-md5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "blobContentMd5" + }, + { + "name": "x-ms-blob-cache-control", + "in": "header", + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobCacheControl" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-content-disposition", + "in": "header", + "description": "Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentDisposition" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "x-ms-access-tier", + "in": "header", + "description": "The tier to be set on the blob.", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + }, + "x-ms-client-name": "tier" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-source-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" + }, + { + "name": "x-ms-source-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" + }, + { + "name": "x-ms-source-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfMatch" + }, + { + "name": "x-ms-source-if-none-match", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" + }, + { + "name": "x-ms-source-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfTags" + }, + { + "name": "x-ms-source-content-md5", + "in": "header", + "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "sourceContentMd5" + }, + { + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" + }, + { + "name": "x-ms-copy-source", + "in": "header", + "description": "Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would appear in a request URI. The source blob must either be public or must be authenticated via a shared access signature.", + "required": true, + "type": "string", + "x-ms-client-name": "copySource" + }, + { + "name": "x-ms-copy-source-blob-properties", + "in": "header", + "description": "Optional, default is true. Indicates if properties from the source blob should be copied.", + "required": false, + "type": "boolean", + "x-ms-client-name": "copySourceBlobProperties" + }, + { + "name": "x-ms-copy-source-authorization", + "in": "header", + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceAuthorization" + }, + { + "name": "x-ms-copy-source-tag-option", + "in": "header", + "description": "Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags.", + "required": false, + "type": "string", + "enum": [ + "REPLACE", + "COPY" + ], + "x-ms-enum": { + "name": "BlobCopySourceTags", + "modelAsString": false, + "values": [ + { + "name": "Replace", + "value": "REPLACE", + "description": "The replace blob source tags option." + }, + { + "name": "Copy", + "value": "COPY", + "description": "The copy blob source tags option." + } + ] + }, + "x-ms-client-name": "copySourceTags" + }, + { + "name": "x-ms-blob-type", + "in": "header", + "description": "The type of the blob.", + "required": true, + "type": "string", + "enum": [ + "BlockBlob" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "blobType" + }, + { + "name": "x-ms-file-request-intent", + "in": "header", + "description": "Valid value is backup", + "required": false, + "type": "string", + "enum": [ + "backup" + ], + "x-ms-enum": { + "name": "FileShareTokenIntent", + "modelAsString": true, + "values": [ + { + "name": "Backup", + "value": "backup", + "description": "The file share token intent is backup." + } + ] + }, + "x-ms-client-name": "fileRequestIntent" + }, + { + "name": "x-ms-source-encryption-key", + "in": "header", + "description": "Optional. Specifies the source encryption key to use to encrypt the source data provided in the request.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceEncryptionKey" + }, + { + "name": "x-ms-source-encryption-key-sha256", + "in": "header", + "description": "The SHA-256 hash of the provided source encryption key. Must be provided if the x-ms-source-encryption-key header is provided.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceEncryptionKeySha256" + }, + { + "name": "x-ms-source-encryption-algorithm", + "in": "header", + "description": "The algorithm used to produce the source encryption key hash. Currently, the only accepted value is \\\"AES256\\\". Must be provided if the x-ms-source-encryption-key is provided.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "sourceEncryptionAlgorithm" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=block": { + "put": { + "operationId": "BlockBlob_StageBlock", + "description": "The Stage Block operation creates a new block to be committed as part of a blob", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "blockid", + "in": "query", + "description": "A valid Base64 string value that identifies the block. Prior to encoding, the string must be less than or equal to 64 bytes in size. For a given blob, the length of the value specified for the blockid parameter must be the same size for each block.", + "required": true, + "type": "string", + "format": "byte", + "x-ms-client-name": "blockId" + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentMD5" + }, + { + "name": "x-ms-content-crc64", + "in": "header", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentCrc64" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "x-ms-structured-body", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the message schema version and properties.", + "required": false, + "type": "string", + "x-ms-client-name": "structuredBodyType" + }, + { + "name": "x-ms-structured-content-length", + "in": "header", + "description": "Required if the request body is a structured message. Specifies the length of the blob/file content inside the message body. Will always be smaller than Content-Length.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-client-name": "structuredContentLength" + }, + { + "name": "body", + "in": "body", + "description": "The body of the request.", + "required": true, + "schema": { + "type": "string", + "format": "binary" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-structured-body": { + "type": "string", + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=block&fromURL": { + "put": { + "operationId": "BlockBlob_StageBlockFromUrl", + "description": "The Stage Block From URL operation creates a new block to be committed as part of a blob where the contents are read from a URL.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "blockid", + "in": "query", + "description": "A valid Base64 string value that identifies the block. Prior to encoding, the string must be less than or equal to 64 bytes in size. For a given blob, the length of the value specified for the blockid parameter must be the same size for each block.", + "required": true, + "type": "string", + "format": "byte", + "x-ms-client-name": "blockId" + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "x-ms-copy-source", + "in": "header", + "description": "Specify a URL to the copy source.", + "required": true, + "type": "string", + "x-ms-client-name": "sourceUrl" + }, + { + "name": "x-ms-source-range", + "in": "header", + "description": "Bytes of source data in the specified range.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceRange" + }, + { + "name": "x-ms-source-content-md5", + "in": "header", + "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "sourceContentMd5" + }, + { + "name": "x-ms-source-content-crc64", + "in": "header", + "description": "Specify the crc64 calculated for the range of bytes that must be read from the copy source.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "sourceContentCrc64" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-source-if-modified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfModifiedSince" + }, + { + "name": "x-ms-source-if-unmodified-since", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "sourceIfUnmodifiedSince" + }, + { + "name": "x-ms-source-if-match", + "in": "header", + "description": "Specify an ETag value to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfMatch" + }, + { + "name": "x-ms-source-if-none-match", + "in": "header", + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceIfNoneMatch" + }, + { + "name": "x-ms-copy-source-authorization", + "in": "header", + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source.", + "required": false, + "type": "string", + "x-ms-client-name": "copySourceAuthorization" + }, + { + "name": "x-ms-file-request-intent", + "in": "header", + "description": "Valid value is backup", + "required": false, + "type": "string", + "enum": [ + "backup" + ], + "x-ms-enum": { + "name": "FileShareTokenIntent", + "modelAsString": true, + "values": [ + { + "name": "Backup", + "value": "backup", + "description": "The file share token intent is backup." + } + ] + }, + "x-ms-client-name": "fileRequestIntent" + }, + { + "name": "x-ms-source-encryption-key", + "in": "header", + "description": "Optional. Specifies the source encryption key to use to encrypt the source data provided in the request.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceEncryptionKey" + }, + { + "name": "x-ms-source-encryption-key-sha256", + "in": "header", + "description": "The SHA-256 hash of the provided source encryption key. Must be provided if the x-ms-source-encryption-key header is provided.", + "required": false, + "type": "string", + "x-ms-client-name": "sourceEncryptionKeySha256" + }, + { + "name": "x-ms-source-encryption-algorithm", + "in": "header", + "description": "The algorithm used to produce the source encryption key hash. Currently, the only accepted value is \\\"AES256\\\". Must be provided if the x-ms-source-encryption-key is provided.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "sourceEncryptionAlgorithm" + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=blocklist": { + "put": { + "operationId": "BlockBlob_CommitBlockList", + "description": "The Commit Block List operation writes a blob by specifying the list of block IDs that make up the blob. In order to be written as part of a blob, a block must have been successfully written to the server in a prior Put Block operation. You can call Put Block List to update a blob by uploading only those blocks that have changed, then committing the new and existing blocks together. You can do this by specifying whether to commit a block from the committed block list or from the uncommitted block list, or to commit the most recently uploaded version of the block, whichever list it may belong to.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-blob-cache-control", + "in": "header", + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobCacheControl" + }, + { + "name": "x-ms-blob-content-type", + "in": "header", + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentType" + }, + { + "name": "x-ms-blob-content-encoding", + "in": "header", + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentEncoding" + }, + { + "name": "x-ms-blob-content-language", + "in": "header", + "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentLanguage" + }, + { + "name": "x-ms-blob-content-md5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "blobContentMd5" + }, + { + "name": "Content-MD5", + "in": "header", + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentMD5" + }, + { + "name": "x-ms-content-crc64", + "in": "header", + "description": "Specify the transactional crc64 for the body, to be validated by the service.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-client-name": "transactionalContentCrc64" + }, + { + "name": "x-ms-meta", + "in": "header", + "description": "The metadata headers.", + "required": false, + "type": "string", + "x-ms-client-name": "metadata" + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-blob-content-disposition", + "in": "header", + "description": "Optional. Sets the blob's content disposition. If specified, this property is stored with the blob and returned with a read request.", + "required": false, + "type": "string", + "x-ms-client-name": "blobContentDisposition" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "x-ms-encryption-scope", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption scope to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionScope" + }, + { + "name": "x-ms-access-tier", + "in": "header", + "description": "The tier to be set on the blob.", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + }, + "x-ms-client-name": "tier" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "x-ms-tags", + "in": "header", + "description": "Optional. Used to set blob tags in various blob operations.", + "required": false, + "type": "string", + "x-ms-client-name": "BlobTagsString" + }, + { + "name": "x-ms-immutability-policy-until-date", + "in": "header", + "description": "Specifies the date time when the blobs immutability policy is set to expire.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "immutabilityPolicyExpiry" + }, + { + "name": "x-ms-immutability-policy-mode", + "in": "header", + "description": "Specifies the immutability policy mode to set on the blob.", + "required": false, + "type": "string", + "enum": [ + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "ImmutabilityPolicyMode", + "modelAsString": false, + "values": [ + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + }, + "x-ms-client-name": "immutabilityPolicyMode" + }, + { + "name": "x-ms-legal-hold", + "in": "header", + "description": "Specified if a legal hold should be set on the blob.", + "required": false, + "type": "boolean", + "x-ms-client-name": "legalHold" + }, + { + "name": "blocks", + "in": "body", + "description": "Blob Blocks.", + "required": true, + "schema": { + "$ref": "#/definitions/BlockLookupList" + } + } + ], + "responses": { + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-request-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + }, + "x-ms-version-id": { + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=blocklist&_overload=getBlockList": { + "get": { + "operationId": "BlockBlob_GetBlockList", + "description": "The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "blocklisttype", + "in": "query", + "description": "Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together.", + "required": true, + "type": "string", + "enum": [ + "committed", + "uncommitted", + "all" + ], + "x-ms-enum": { + "name": "BlockListType", + "modelAsString": false, + "values": [ + { + "name": "Committed", + "value": "committed", + "description": "The list of committed blocks." + }, + { + "name": "Uncommitted", + "value": "uncommitted", + "description": "The list of uncommitted blocks." + }, + { + "name": "All", + "value": "all", + "description": "Both lists together." + } + ] + }, + "x-ms-client-name": "listType" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/BlockList" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-content-length": { + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/{containerName}/{blobName}?comp=query": { + "post": { + "operationId": "BlockBlob_Query", + "description": "The Query operation enables users to select/project on blob data by providing simple query expressions.", + "produces": [ + "application/octet-stream", + "application/xml" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "containerName", + "in": "path", + "description": "The name of the container.", + "required": true, + "type": "string" + }, + { + "name": "blobName", + "in": "path", + "description": "The name of the blob.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 1024, + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$" + }, + { + "name": "snapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see Creating a Snapshot of a Blob.", + "required": false, + "type": "string" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-lease-id", + "in": "header", + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID.", + "required": false, + "type": "string", + "x-ms-client-name": "leaseId" + }, + { + "name": "x-ms-encryption-key", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, the request will be encrypted with the root account key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKey" + }, + { + "name": "x-ms-encryption-key-sha256", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the SHA256 hash of the encryption key used to encrypt the data provided in the request. This header is only used for encryption with a customer-provided key. If the request is authenticated with a client token, this header should be specified using the SHA256 hash of the encryption key.", + "required": false, + "type": "string", + "x-ms-client-name": "encryptionKeySha256" + }, + { + "name": "x-ms-encryption-algorithm", + "in": "header", + "description": "Optional. Version 2019-07-07 and later. Specifies the algorithm to use for encryption. If not specified, the default is AES256.", + "required": false, + "type": "string", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + }, + "x-ms-client-name": "encryptionAlgorithm" + }, + { + "name": "If-Modified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifModifiedSince" + }, + { + "name": "If-Unmodified-Since", + "in": "header", + "description": "A date-time value. A request is made under the condition that the resource has not been modified since the specified date-time.", + "required": false, + "type": "string", + "format": "date-time-rfc7231", + "x-ms-client-name": "ifUnmodifiedSince" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifNoneMatch" + }, + { + "name": "If-Match", + "in": "header", + "description": "A condition that must be met in order for the request to be processed.", + "required": false, + "type": "string", + "x-ms-client-name": "ifMatch" + }, + { + "name": "x-ms-if-tags", + "in": "header", + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value.", + "required": false, + "type": "string", + "x-ms-client-name": "ifTags" + }, + { + "name": "queryRequest", + "in": "body", + "description": "The query request", + "required": true, + "schema": { + "$ref": "#/definitions/QueryRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "type": "file" + }, + "headers": { + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial blob content." + }, + "Cache-Control": { + "type": "string", + "description": "This header is returned if it was previously specified for the blob." + }, + "Content-Disposition": { + "type": "string", + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + }, + "Content-Encoding": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Encoding request header" + }, + "Content-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Content-Range": { + "type": "string", + "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-committed-block-count": { + "type": "integer", + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-blob-content-md5": { + "type": "string", + "format": "byte", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-blob-type": { + "type": "string", + "description": "The type of the blob.", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false, + "values": [ + { + "name": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." + }, + { + "name": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." + }, + { + "name": "AppendBlob", + "value": "AppendBlob", + "description": "The blob is an append blob." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-copy-completion-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-id": { + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-progress": { + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-source": { + "type": "string", + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status": { + "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": false, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } + }, + "x-ms-copy-status-description": { + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-lease-duration": { + "type": "string", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change.", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDuration", + "modelAsString": false, + "values": [ + { + "name": "Infinite", + "value": "infinite", + "description": "The lease is of infinite duration." + }, + { + "name": "Fixed", + "value": "fixed", + "description": "The lease is of fixed duration." + } + ] + } + }, + "x-ms-lease-state": { + "type": "string", + "description": "Lease state of the blob.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": false, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } + }, + "x-ms-lease-status": { + "type": "string", + "description": "The lease status of the blob.", + "enum": [ + "unlocked", + "locked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": false, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } + }, + "x-ms-meta": { + "type": "string", + "description": "The metadata headers." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "206": { + "description": "Successful", + "schema": { + "type": "file" + }, + "headers": { + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial blob content." + }, + "Cache-Control": { + "type": "string", + "description": "This header is returned if it was previously specified for the blob." + }, + "Content-Disposition": { + "type": "string", + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + }, + "Content-Encoding": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Encoding request header" + }, + "Content-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Content-Range": { + "type": "string", + "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." + }, + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date/time that the container was last modified." + }, + "x-ms-blob-committed-block-count": { + "type": "integer", + "format": "int32", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-blob-content-md5": { + "type": "string", + "format": "byte", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs." + }, + "x-ms-blob-type": { + "type": "string", + "description": "The type of the blob.", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false, + "values": [ + { + "name": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." + }, + { + "name": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." + }, + { + "name": "AppendBlob", + "value": "AppendBlob", + "description": "The blob is an append blob." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-copy-completion-time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-id": { + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-progress": { + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-source": { + "type": "string", + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status": { + "type": "string", + "description": "State of the copy operation identified by x-ms-copy-id.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": false, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } + }, + "x-ms-copy-status-description": { + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-encryption-key-sha256": { + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "type": "string", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-lease-duration": { + "type": "string", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change.", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDuration", + "modelAsString": false, + "values": [ + { + "name": "Infinite", + "value": "infinite", + "description": "The lease is of infinite duration." + }, + { + "name": "Fixed", + "value": "fixed", + "description": "The lease is of fixed duration." + } + ] + } + }, + "x-ms-lease-state": { + "type": "string", + "description": "Lease state of the blob.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": false, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } + }, + "x-ms-lease-status": { + "type": "string", + "description": "The lease status of the blob.", + "enum": [ + "unlocked", + "locked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": false, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } + }, + "x-ms-meta": { + "type": "string", + "description": "The metadata headers." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-server-encrypted": { + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/?comp=batch": { + "post": { + "operationId": "SubmitBatch", + "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", + "produces": [ + "multipart/mixed", + "application/xml" + ], + "consumes": [ + "multipart/mixed" + ], + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "Content-Length", + "in": "header", + "description": "The length of the request.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-client-name": "contentLength" + }, + { + "name": "name", + "in": "formData", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "formData", + "required": true, + "type": "file" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "type": "string" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/?comp=blobs": { + "get": { + "operationId": "FilterBlobs", + "description": "The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "where", + "in": "query", + "description": "Filters the results to return only to return only blobs whose tags match the specified expression.", + "required": false, + "type": "string" + }, + { + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" + }, + { + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 + }, + { + "name": "include", + "in": "query", + "description": "Include this parameter to specify one or more datasets to include in the response.", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "none", + "versions" + ], + "x-ms-enum": { + "name": "FilterBlobsIncludeItem", + "modelAsString": false, + "values": [ + { + "name": "None", + "value": "none", + "description": "The filter includes no versions." + }, + { + "name": "Versions", + "value": "versions", + "description": "The filter includes n versions." + } + ] + } + }, + "collectionFormat": "csv" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/FilterBlobSegment" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/?comp=list": { + "get": { + "operationId": "ListContainersSegment", + "description": "The List Containers Segment operation returns a list of the containers under the specified account", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "prefix", + "in": "query", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "required": false, + "type": "string" + }, + { + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "required": false, + "type": "string" + }, + { + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1 + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "include", + "in": "query", + "description": "Include this parameter to specify that the container's metadata be returned as part of the response body.", + "required": false, + "type": "array", + "items": { + "type": "string", + "enum": [ + "metadata", + "deleted", + "system" + ], + "x-ms-enum": { + "name": "ListContainersIncludeType", + "modelAsString": false, + "values": [ + { + "name": "metadata", + "value": "metadata", + "description": "Include metadata" + }, + { + "name": "deleted", + "value": "deleted", + "description": "Include deleted" + }, + { + "name": "system", + "value": "system", + "description": "Include system" + } + ] + } + }, + "collectionFormat": "csv" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ListContainersSegmentResponse" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/?restype=account&comp=properties": { + "get": { + "operationId": "GetAccountInfo", + "description": "Returns the sku name and account kind.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-account-kind": { + "type": "string", + "description": "Identifies the account kind", + "enum": [ + "Storage", + "BlobStorage", + "StorageV2", + "FileStorage", + "BlockBlobStorage" + ], + "x-ms-enum": { + "name": "AccountKind", + "modelAsString": false, + "values": [ + { + "name": "Storage", + "value": "Storage", + "description": "The storage account is a general-purpose account." + }, + { + "name": "BlobStorage", + "value": "BlobStorage", + "description": "The storage account is a blob storage account." + }, + { + "name": "StorageV2", + "value": "StorageV2", + "description": "The storage account is a storage V2 account." + }, + { + "name": "FileStorage", + "value": "FileStorage", + "description": "The storage account is a file storage account." + }, + { + "name": "BlockBlobStorage", + "value": "BlockBlobStorage", + "description": "The storage account is a block blob storage account." + } + ] + } + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-is-hns-enabled": { + "type": "boolean", + "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-sku-name": { + "type": "string", + "description": "Identifies the sku name of the account", + "enum": [ + "Standard_LRS", + "Standard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS", + "Standard_GZRS", + "Premium_ZRS", + "Standard_RAGZRS" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": false, + "values": [ + { + "name": "StandardLRS", + "value": "Standard_LRS", + "description": "The standard LRS SKU." + }, + { + "name": "StandardGRS", + "value": "Standard_GRS", + "description": "The standard GRS SKU." + }, + { + "name": "StandardRAGRS", + "value": "Standard_RAGRS", + "description": "The standard RAGRS SKU." + }, + { + "name": "StandardZRS", + "value": "Standard_ZRS", + "description": "The standard ZRS SKU." + }, + { + "name": "PremiumLRS", + "value": "Premium_LRS", + "description": "The premium LRS SKU." + }, + { + "name": "StandardGZRS", + "value": "Standard_GZRS", + "description": "The standard GZRS SKU." + }, + { + "name": "PremiumZRS", + "value": "Premium_ZRS", + "description": "The premium ZRS SKU." + }, + { + "name": "StandardRAGZRS", + "value": "Standard_RAGZRS", + "description": "The standard RAGZRS SKU." + } + ] + } + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/?restype=service&comp=properties": { + "put": { + "operationId": "SetProperties", + "description": "Sets properties for a storage account's Blob service endpoint, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "storageServiceProperties", + "in": "body", + "description": "The storage service properties to set.", + "required": true, + "schema": { + "$ref": "#/definitions/StorageServiceProperties" + } + } + ], + "responses": { + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/?restype=service&comp=properties&_overload=getProperties": { + "get": { + "operationId": "GetProperties", + "description": "Retrieves properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/StorageServiceProperties" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/?restype=service&comp=stats": { + "get": { + "operationId": "GetStatistics", + "description": "Retrieves statistics related to replication for the Blob service. It is only available on the secondary location endpoint when read-access geo-redundant replication is enabled for the storage account.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/StorageServiceStats" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + }, + "/?restype=service&comp=userdelegationkey": { + "post": { + "operationId": "GetUserDelegationKey", + "description": "Retrieves a user delegation key for the Blob service. This is only a valid operation when using bearer token authentication.", + "parameters": [ + { + "name": "x-ms-version", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string", + "x-ms-client-name": "version" + }, + { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-client-name": "clientRequestId" + }, + { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see Setting Timeouts for Blob Service Operations.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 0 + }, + { + "name": "keyInfo", + "in": "body", + "description": "Key information provided in the request", + "required": true, + "schema": { + "$ref": "#/definitions/KeyInfo" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/UserDelegationKey" + }, + "headers": { + "Date": { + "type": "string", + "format": "date-time-rfc7231", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + }, + "x-ms-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, server-generated string identifier for the request." + }, + "x-ms-version": { + "type": "string", + "description": "Specifies the version of the operation to use for this request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/StorageError" + }, + "headers": { + "x-ms-copy-source-error-code": { + "type": "string", + "description": "The error code for the copy source." + }, + "x-ms-copy-source-status-code": { + "type": "integer", + "format": "int32", + "description": "The status code for the copy source." + }, + "x-ms-error-code": { + "type": "string", + "description": "The error code." + } + } + } + } + } + } + }, + "definitions": { + "AccessPolicy": { + "type": "object", + "description": "Represents an access policy.", + "properties": { + "Start": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date-time the policy is active.", + "x-ms-client-name": "start" + }, + "Expiry": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date-time the policy expires.", + "x-ms-client-name": "expiry" + }, + "Permission": { + "type": "string", + "description": "The permissions for acl the policy.", + "x-ms-client-name": "permission" + } + }, + "required": [ + "Start", + "Expiry", + "Permission" + ] + }, + "AccessTier": { + "type": "string", + "description": "The access tiers.", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The hot P4 tier." + }, + { + "name": "P6", + "value": "P6", + "description": "The hot P6 tier." + }, + { + "name": "P10", + "value": "P10", + "description": "The hot P10 tier." + }, + { + "name": "P15", + "value": "P15", + "description": "The hot P15 tier." + }, + { + "name": "P20", + "value": "P20", + "description": "The hot P20 tier." + }, + { + "name": "P30", + "value": "P30", + "description": "The hot P30 tier." + }, + { + "name": "P40", + "value": "P40", + "description": "The hot P40 tier." + }, + { + "name": "P50", + "value": "P50", + "description": "The hot P50 tier." + }, + { + "name": "P60", + "value": "P60", + "description": "The hot P60 tier." + }, + { + "name": "P70", + "value": "P70", + "description": "The hot P70 tier." + }, + { + "name": "P80", + "value": "P80", + "description": "The hot P80 tier." + }, + { + "name": "Hot", + "value": "Hot", + "description": "The hot access tier." + }, + { + "name": "Cool", + "value": "Cool", + "description": "The cool access tier." + }, + { + "name": "Archive", + "value": "Archive", + "description": "The archive access tier." + }, + { + "name": "Premium", + "value": "Premium", + "description": "The Premium access tier." + }, + { + "name": "Cold", + "value": "Cold", + "description": "The Cold access tier." + } + ] + } + }, + "AccountKind": { + "type": "string", + "description": "The account kind.", + "enum": [ + "Storage", + "BlobStorage", + "StorageV2", + "FileStorage", + "BlockBlobStorage" + ], + "x-ms-enum": { + "name": "AccountKind", + "modelAsString": false, + "values": [ + { + "name": "Storage", + "value": "Storage", + "description": "The storage account is a general-purpose account." + }, + { + "name": "BlobStorage", + "value": "BlobStorage", + "description": "The storage account is a blob storage account." + }, + { + "name": "StorageV2", + "value": "StorageV2", + "description": "The storage account is a storage V2 account." + }, + { + "name": "FileStorage", + "value": "FileStorage", + "description": "The storage account is a file storage account." + }, + { + "name": "BlockBlobStorage", + "value": "BlockBlobStorage", + "description": "The storage account is a block blob storage account." + } + ] + } + }, + "ArchiveStatus": { + "type": "string", + "description": "The archive status.", + "enum": [ + "rehydrate-pending-to-hot", + "rehydrate-pending-to-cool", + "rehydrate-pending-to-cold" + ], + "x-ms-enum": { + "name": "ArchiveStatus", + "modelAsString": true, + "values": [ + { + "name": "RehydratePendingToHot", + "value": "rehydrate-pending-to-hot", + "description": "The archive status is rehydrating pending to hot." + }, + { + "name": "RehydratePendingToCool", + "value": "rehydrate-pending-to-cool", + "description": "The archive status is rehydrating pending to cool." + }, + { + "name": "RehydratePendingToCold", + "value": "rehydrate-pending-to-cold", + "description": "The archive status is rehydrating pending to archive." + } + ] + } + }, + "ArrowConfiguration": { + "type": "object", + "description": "Represents the Apache Arrow configuration.", + "properties": { + "Schema": { + "type": "array", + "description": "The Apache Arrow schema", + "items": { + "$ref": "#/definitions/ArrowField" + }, + "xml": { + "wrapped": true + }, + "x-ms-client-name": "schema" + } + }, + "required": [ + "Schema" + ] + }, + "ArrowField": { + "type": "object", + "description": "Represents an Apache Arrow field.", + "properties": { + "Type": { + "type": "string", + "description": "The arrow field type.", + "x-ms-client-name": "type" + }, + "Name": { + "type": "string", + "description": "The arrow field name.", + "x-ms-client-name": "name" + }, + "Precision": { + "type": "integer", + "format": "int32", + "description": "The arrow field precision.", + "x-ms-client-name": "precision" + }, + "Scale": { + "type": "integer", + "format": "int32", + "description": "The arrow field scale.", + "x-ms-client-name": "scale" + } + }, + "required": [ + "Type" + ], + "xml": { + "name": "Field" + } + }, + "Azure.Core.uuid": { + "type": "string", + "format": "uuid", + "description": "Universally Unique Identifier", + "xml": { + "name": "uuid" + } + }, + "BlobCopySourceTags": { + "type": "string", + "description": "The blob copy source tags types.", + "enum": [ + "REPLACE", + "COPY" + ], + "x-ms-enum": { + "name": "BlobCopySourceTags", + "modelAsString": false, + "values": [ + { + "name": "Replace", + "value": "REPLACE", + "description": "The replace blob source tags option." + }, + { + "name": "Copy", + "value": "COPY", + "description": "The copy blob source tags option." + } + ] + } + }, + "BlobDeleteType": { + "type": "string", + "description": "The type of blob deletions.", + "enum": [ + "Permanent" + ], + "x-ms-enum": { + "name": "BlobDeleteType", + "modelAsString": false, + "values": [ + { + "name": "Permanent", + "value": "Permanent", + "description": "Permanently delete the blob." + } + ] + } + }, + "BlobExpiryOptions": { + "type": "string", + "description": "The blob expiration options.", + "enum": [ + "NeverExpire", + "RelativeToCreation", + "RelativeToNow", + "Absolute" + ], + "x-ms-enum": { + "name": "BlobExpiryOptions", + "modelAsString": true, + "values": [ + { + "name": "NeverExpire", + "value": "NeverExpire", + "description": "Never expire." + }, + { + "name": "RelativeToCreation", + "value": "RelativeToCreation", + "description": "Relative to creation time." + }, + { + "name": "RelativeToNow", + "value": "RelativeToNow", + "description": "Relative to now." + }, + { + "name": "Absolute", + "value": "Absolute", + "description": "Absolute time." + } + ] + } + }, + "BlobFlatListSegment": { + "type": "object", + "description": "The blob flat list segment.", + "properties": { + "Blob": { + "type": "array", + "description": "The blob items.", + "items": { + "$ref": "#/definitions/BlobItemInternal" + }, + "xml": { + "wrapped": false + }, + "x-ms-client-name": "blobItems" + } + }, + "required": [ + "Blob" + ] + }, + "BlobHierarchyListSegment": { + "type": "object", + "description": "Represents an array of blobs.", + "properties": { + "Blob": { + "type": "array", + "description": "The blob items", + "items": { + "$ref": "#/definitions/BlobItemInternal" + }, + "xml": { + "wrapped": false + }, + "x-ms-client-name": "blobItems" + }, + "BlobPrefix": { + "type": "array", + "description": "The blob prefixes.", + "items": { + "$ref": "#/definitions/BlobPrefix" + }, + "xml": { + "wrapped": false + }, + "x-ms-client-name": "blobPrefixes" + } + }, + "required": [ + "Blob" + ] + }, + "BlobImmutabilityPolicyMode": { + "type": "string", + "description": "The immutability policy mode.", + "enum": [ + "Mutable", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": false, + "values": [ + { + "name": "Mutable", + "value": "Mutable", + "description": "The immutability policy is mutable." + }, + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + } + }, + "BlobItemInternal": { + "type": "object", + "description": "An Azure Storage Blob", + "properties": { + "Name": { + "$ref": "#/definitions/BlobName", + "description": "The name of the blob.", + "x-ms-client-name": "name" + }, + "Deleted": { + "type": "boolean", + "description": "Whether the blob is deleted.", + "x-ms-client-name": "deleted" + }, + "Snapshot": { + "type": "string", + "description": "The snapshot of the blob.", + "x-ms-client-name": "snapshot" + }, + "VersionId": { + "type": "string", + "description": "The version id of the blob.", + "x-ms-client-name": "versionId" + }, + "IsCurrentVersion": { + "type": "boolean", + "description": "Whether the blob is the current version.", + "x-ms-client-name": "isCurrentVersion" + }, + "Properties": { + "$ref": "#/definitions/BlobPropertiesInternal", + "description": "The properties of the blob.", + "x-ms-client-name": "properties" + }, + "Metadata": { + "$ref": "#/definitions/BlobMetadata", + "description": "The metadata of the blob.", + "x-ms-client-name": "metadata" + }, + "BlobTags": { + "$ref": "#/definitions/BlobTags", + "description": "The tags of the blob.", + "x-ms-client-name": "blobTags" + }, + "ObjectReplicationMetadata": { + "$ref": "#/definitions/ObjectReplicationMetadata", + "description": "The object replication metadata of the blob.", + "x-ms-client-name": "objectReplicationMetadata" + }, + "HasVersionsOnly": { + "type": "boolean", + "description": "Whether the blob has versions only.", + "x-ms-client-name": "hasVersionsOnly" + } + }, + "required": [ + "Name", + "Deleted", + "Snapshot", + "Properties" + ], + "xml": { + "name": "Blob" + } + }, + "BlobMetadata": { + "type": "object", + "description": "The blob metadata.", + "properties": { + "Encrypted": { + "type": "string", + "description": "Whether the blob metadata is encrypted.", + "xml": { + "attribute": true + }, + "x-ms-client-name": "encrypted" + } + }, + "additionalProperties": { + "type": "string" + } + }, + "BlobName": { + "type": "object", + "description": "Represents a blob name.", + "properties": { + "Encoded": { + "type": "boolean", + "description": "Whether the blob name is encoded.", + "xml": { + "attribute": true + }, + "x-ms-client-name": "encoded" + }, + "content": { + "type": "string", + "description": "The blob name.", + "xml": { + "x-ms-text": true + } + } + } + }, + "BlobPrefix": { + "type": "object", + "description": "Represents a blob prefix.", + "properties": { + "Name": { + "$ref": "#/definitions/BlobName", + "description": "The blob name.", + "x-ms-client-name": "name" + } + }, + "required": [ + "Name" + ] + }, + "BlobPropertiesInternal": { + "type": "object", + "description": "The properties of a blob.", + "properties": { + "Creation-Time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date-time the blob was created in RFC1123 format.", + "x-ms-client-name": "creationTime" + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date-time the blob was last modified in RFC1123 format.", + "x-ms-client-name": "lastModified" + }, + "Etag": { + "type": "string", + "description": "The blob ETag.", + "x-ms-client-name": "eTag" + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The content length of the blob.", + "x-ms-client-name": "contentLength" + }, + "Content-Type": { + "type": "string", + "description": "The content type of the blob.", + "x-ms-client-name": "contentType" + }, + "Content-Encoding": { + "type": "string", + "description": "The content encoding of the blob.", + "x-ms-client-name": "contentEncoding" + }, + "Content-Language": { + "type": "string", + "description": "The content language of the blob.", + "x-ms-client-name": "contentLanguage" + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "The content MD5 of the blob.", + "x-ms-client-name": "contentMd5" + }, + "Content-Disposition": { + "type": "string", + "description": "The content disposition of the blob.", + "x-ms-client-name": "contentDisposition" + }, + "Cache-Control": { + "type": "string", + "description": "The cache control of the blob.", + "x-ms-client-name": "cacheControl" + }, + "x-ms-blob-sequence-number": { + "type": "integer", + "format": "int64", + "description": "The sequence number of the blob.", + "x-ms-client-name": "blobSequenceNumber" + }, + "BlobType": { + "$ref": "#/definitions/BlobType", + "description": "The blob type.", + "x-ms-client-name": "blobType" + }, + "LeaseStatus": { + "$ref": "#/definitions/LeaseStatus", + "description": "The lease status of the blob.", + "x-ms-client-name": "leaseStatus" + }, + "LeaseState": { + "$ref": "#/definitions/LeaseState", + "description": "The lease state of the blob.", + "x-ms-client-name": "leaseState" + }, + "LeaseDuration": { + "$ref": "#/definitions/LeaseDuration", + "description": "The lease duration of the blob.", + "x-ms-client-name": "leaseDuration" + }, + "CopyId": { + "type": "string", + "description": "The copy ID of the blob.", + "x-ms-client-name": "copyId" + }, + "CopyStatus": { + "$ref": "#/definitions/CopyStatus", + "description": "The copy status of the blob.", + "x-ms-client-name": "copyStatus" + }, + "CopySource": { + "type": "string", + "description": "The copy source of the blob.", + "x-ms-client-name": "copySource" + }, + "CopyProgress": { + "type": "string", + "description": "The copy progress of the blob.", + "x-ms-client-name": "copyProgress" + }, + "CopyCompletionTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The copy completion time of the blob.", + "x-ms-client-name": "copyCompletionTime" + }, + "CopyStatusDescription": { + "type": "string", + "description": "The copy status description of the blob.", + "x-ms-client-name": "copyStatusDescription" + }, + "ServerEncrypted": { + "type": "boolean", + "description": "Whether the blob is encrypted on the server.", + "x-ms-client-name": "serverEncrypted" + }, + "IncrementalCopy": { + "type": "boolean", + "description": "Whether the blob is incremental copy.", + "x-ms-client-name": "incrementalCopy" + }, + "DestinationSnapshot": { + "type": "string", + "description": "The name of the destination snapshot.", + "x-ms-client-name": "destinationSnapshot" + }, + "DeletedTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The time the blob was deleted.", + "x-ms-client-name": "deletedTime" + }, + "RemainingRetentionDays": { + "type": "integer", + "format": "int32", + "description": "The remaining retention days of the blob.", + "x-ms-client-name": "remainingRetentionDays" + }, + "AccessTier": { + "$ref": "#/definitions/AccessTier", + "description": "The access tier of the blob.", + "x-ms-client-name": "accessTier" + }, + "AccessTierInferred": { + "type": "boolean", + "description": "Whether the access tier is inferred.", + "x-ms-client-name": "accessTierInferred" + }, + "ArchiveStatus": { + "$ref": "#/definitions/ArchiveStatus", + "description": "The archive status of the blob.", + "x-ms-client-name": "archiveStatus" + }, + "CustomerProvidedKeySha256": { + "type": "string", + "description": "Customer provided key sha256", + "x-ms-client-name": "customerProvidedKeySha256" + }, + "EncryptionScope": { + "type": "string", + "description": "The encryption scope of the blob.", + "x-ms-client-name": "encryptionScope" + }, + "AccessTierChangeTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The access tier change time of the blob.", + "x-ms-client-name": "accessTierChangeTime" + }, + "TagCount": { + "type": "integer", + "format": "int32", + "description": "The number of tags for the blob.", + "x-ms-client-name": "tagCount" + }, + "Expiry-Time": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The expire time of the blob.", + "x-ms-client-name": "expiryTime" + }, + "Sealed": { + "type": "boolean", + "description": "Whether the blob is sealed.", + "x-ms-client-name": "sealed" + }, + "RehydratePriority": { + "$ref": "#/definitions/RehydratePriority", + "description": "The rehydrate priority of the blob.", + "x-ms-client-name": "rehydratePriority" + }, + "LastAccessTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The last access time of the blob.", + "x-ms-client-name": "lastAccessTime" + }, + "ImmutabilityPolicyUntilDate": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The immutability policy until time of the blob.", + "x-ms-client-name": "immutabilityPolicyUntilDate" + }, + "ImmutabilityPolicyMode": { + "$ref": "#/definitions/BlobImmutabilityPolicyMode", + "description": "The immutability policy mode of the blob.", + "x-ms-client-name": "immutabilityPolicyMode" + }, + "LegalHold": { + "type": "boolean", + "description": "Whether the blob is under legal hold.", + "x-ms-client-name": "legalHold" + } + }, + "required": [ + "Last-Modified", + "Etag" + ], + "xml": { + "name": "Properties" + } + }, + "BlobTag": { + "type": "object", + "description": "The blob tags.", + "properties": { + "Key": { + "type": "string", + "description": "The key of the tag.", + "x-ms-client-name": "key" + }, + "Value": { + "type": "string", + "description": "The value of the tag.", + "x-ms-client-name": "value" + } + }, + "required": [ + "Key", + "Value" + ], + "xml": { + "name": "Tag" + } + }, + "BlobTags": { + "type": "object", + "description": "Represents blob tags.", + "properties": { + "TagSet": { + "type": "array", + "description": "Represents the blob tags.", + "items": { + "$ref": "#/definitions/BlobTag" + }, + "xml": { + "wrapped": true + }, + "x-ms-client-name": "blobTagSet" + } + }, + "required": [ + "TagSet" + ], + "xml": { + "name": "Tags" + } + }, + "BlobType": { + "type": "string", + "description": "The blob type.", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false, + "values": [ + { + "name": "BlockBlob", + "value": "BlockBlob", + "description": "The blob is a block blob." + }, + { + "name": "PageBlob", + "value": "PageBlob", + "description": "The blob is a page blob." + }, + { + "name": "AppendBlob", + "value": "AppendBlob", + "description": "The blob is an append blob." + } + ] + } + }, + "Block": { + "type": "object", + "description": "Represents a single block in a block blob. It describes the block's ID and size.", + "properties": { + "Name": { + "$ref": "#/definitions/base64Bytes", + "description": "The base64 encoded block ID.", + "x-ms-client-name": "name" + }, + "Size": { + "type": "integer", + "format": "int64", + "description": "The block size in bytes.", + "x-ms-client-name": "size" + } + }, + "required": [ + "Name", + "Size" + ] + }, + "BlockList": { + "type": "object", + "description": "Contains the committed and uncommitted blocks in a block blob.", + "properties": { + "CommittedBlocks": { + "type": "array", + "description": "The list of committed blocks.", + "items": { + "$ref": "#/definitions/Block" + }, + "xml": { + "wrapped": true + }, + "x-ms-client-name": "committedBlocks" + }, + "UncommittedBlocks": { + "type": "array", + "description": "The list of uncommitted blocks.", + "items": { + "$ref": "#/definitions/Block" + }, + "xml": { + "wrapped": true + }, + "x-ms-client-name": "uncommittedBlocks" + } + } + }, + "BlockListType": { + "type": "string", + "description": "The block list types.", + "enum": [ + "committed", + "uncommitted", + "all" + ], + "x-ms-enum": { + "name": "BlockListType", + "modelAsString": false, + "values": [ + { + "name": "Committed", + "value": "committed", + "description": "The list of committed blocks." + }, + { + "name": "Uncommitted", + "value": "uncommitted", + "description": "The list of uncommitted blocks." + }, + { + "name": "All", + "value": "all", + "description": "Both lists together." + } + ] + } + }, + "BlockLookupList": { + "type": "object", + "description": "The Block lookup list.", + "properties": { + "Committed": { + "type": "array", + "description": "The committed blocks", + "items": { + "$ref": "#/definitions/base64Bytes" + }, + "xml": { + "wrapped": false + }, + "x-ms-client-name": "committed" + }, + "Uncommitted": { + "type": "array", + "description": "The uncommitted blocks", + "items": { + "$ref": "#/definitions/base64Bytes" + }, + "xml": { + "wrapped": false + }, + "x-ms-client-name": "uncommitted" + }, + "Latest": { + "type": "array", + "description": "The latest blocks", + "items": { + "$ref": "#/definitions/base64Bytes" + }, + "xml": { + "wrapped": false + }, + "x-ms-client-name": "latest" + } + }, + "xml": { + "name": "BlockList" + } + }, + "ClearRange": { + "type": "object", + "description": "The clear range.", + "properties": { + "Start": { + "type": "integer", + "format": "int64", + "description": "The start of the byte range.", + "x-ms-client-name": "start" + }, + "End": { + "type": "integer", + "format": "int64", + "description": "The end of the byte range.", + "x-ms-client-name": "end" + } + }, + "required": [ + "Start", + "End" + ] + }, + "ContainerItem": { + "type": "object", + "description": "An Azure Storage container.", + "properties": { + "Name": { + "type": "string", + "description": "The name of the container.", + "x-ms-client-name": "name" + }, + "Deleted": { + "type": "boolean", + "description": "Whether the container is deleted.", + "x-ms-client-name": "delete" + }, + "Version": { + "type": "string", + "description": "The version of the container.", + "x-ms-client-name": "version" + }, + "Properties": { + "$ref": "#/definitions/ContainerProperties", + "description": "The properties of the container.", + "x-ms-client-name": "properties" + }, + "Metadata": { + "type": "object", + "description": "The metadata of the container.", + "additionalProperties": { + "type": "string" + }, + "x-ms-client-name": "metadata" + } + }, + "required": [ + "Name", + "Properties" + ], + "xml": { + "name": "Container" + } + }, + "ContainerProperties": { + "type": "object", + "description": "The properties of a container.", + "properties": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The date-time the container was last modified in RFC1123 format.", + "x-ms-client-name": "lastModified" + }, + "ETag": { + "type": "string", + "description": "The ETag of the container.", + "x-ms-client-name": "eTag" + }, + "LeaseStatus": { + "$ref": "#/definitions/LeaseStatus", + "description": "The lease status of the container.", + "x-ms-client-name": "leaseStatus" + }, + "LeaseState": { + "$ref": "#/definitions/LeaseState", + "description": "The lease state of the container.", + "x-ms-client-name": "leaseState" + }, + "LeaseDuration": { + "$ref": "#/definitions/LeaseDuration", + "description": "The lease duration of the container.", + "x-ms-client-name": "leaseDuration" + }, + "PublicAccess": { + "$ref": "#/definitions/PublicAccessType", + "description": "The public access type of the container.", + "x-ms-client-name": "publicAccess" + }, + "HasImmutabilityPolicy": { + "type": "boolean", + "description": "Whether it has an immutability policy.", + "x-ms-client-name": "hasImmutabilityPolicy" + }, + "HasLegalHold": { + "type": "boolean", + "description": "The has legal hold status of the container.", + "x-ms-client-name": "hasLegalHold" + }, + "DefaultEncryptionScope": { + "type": "string", + "description": "The default encryption scope of the container.", + "x-ms-client-name": "defaultEncryptionScope" + }, + "DenyEncryptionScopeOverride": { + "type": "boolean", + "description": "Whether to prevent encryption scope override.", + "x-ms-client-name": "denyEncryptionScopeOverride" + }, + "DeletedTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "The deleted time of the container.", + "x-ms-client-name": "deletedTime" + }, + "RemainingRetentionDays": { + "type": "integer", + "format": "int32", + "description": "The remaining retention days of the container.", + "x-ms-client-name": "remainingRetentionDays" + }, + "ImmutableStorageWithVersioningEnabled": { + "type": "boolean", + "description": "Whether immutable storage with versioning is enabled.", + "x-ms-client-name": "immutableStorageWithVersioningEnabled" + } + }, + "required": [ + "Last-Modified", + "ETag" + ] + }, + "CopyStatus": { + "type": "string", + "description": "The copy status.", + "enum": [ + "pending", + "success", + "failed", + "aborted" + ], + "x-ms-enum": { + "name": "CopyStatus", + "modelAsString": false, + "values": [ + { + "name": "Pending", + "value": "pending", + "description": "The copy operation is pending." + }, + { + "name": "Success", + "value": "success", + "description": "The copy operation succeeded." + }, + { + "name": "Failed", + "value": "failed", + "description": "The copy operation failed." + }, + { + "name": "Aborted", + "value": "aborted", + "description": "The copy operation is aborted." + } + ] + } + }, + "CorsRule": { + "type": "object", + "description": "CORS is an HTTP feature that enables a web application running under one domain to access resources in another domain. Web browsers implement a security restriction known as same-origin policy that prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin domain) to call APIs in another domain", + "properties": { + "AllowedOrigins": { + "type": "string", + "description": "The allowed origins.", + "x-ms-client-name": "allowedOrigins" + }, + "AllowedMethods": { + "type": "string", + "description": "The allowed methods.", + "x-ms-client-name": "allowedMethods" + }, + "AllowedHeaders": { + "type": "string", + "description": "The allowed headers.", + "x-ms-client-name": "allowedHeaders" + }, + "ExposedHeaders": { + "type": "string", + "description": "The exposed headers.", + "x-ms-client-name": "exposedHeaders" + }, + "MaxAgeInSeconds": { + "type": "integer", + "format": "int32", + "description": "The maximum age in seconds.", + "minimum": 0, + "x-ms-client-name": "maxAgeInSeconds" + } + }, + "required": [ + "AllowedOrigins", + "AllowedMethods", + "AllowedHeaders", + "ExposedHeaders", + "MaxAgeInSeconds" + ] + }, + "DeleteSnapshotsOptionType": { + "type": "string", + "description": "The delete snapshots option type.", + "enum": [ + "only", + "include" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": false, + "values": [ + { + "name": "Only", + "value": "only", + "description": "The delete snapshots include option is only." + }, + { + "name": "Include", + "value": "include", + "description": "The delete snapshots include option is include." + } + ] + } + }, + "DelimitedTextConfiguration": { + "type": "object", + "description": "Represents the delimited text configuration.", + "properties": { + "ColumnSeparator": { + "type": "string", + "description": "The string used to separate columns.", + "x-ms-client-name": "columnSeparator" + }, + "FieldQuote": { + "type": "string", + "description": "The string used to quote a specific field.", + "x-ms-client-name": "fieldQuote" + }, + "RecordSeparator": { + "type": "string", + "description": "The string used to separate records.", + "x-ms-client-name": "recordSeparator" + }, + "EscapeChar": { + "type": "string", + "description": "The string used to escape a quote character in a field.", + "x-ms-client-name": "escapeChar" + }, + "HasHeaders": { + "type": "boolean", + "description": "Represents whether the data has headers.", + "x-ms-client-name": "headersPresent" + } + } + }, + "EncryptionAlgorithmType": { + "type": "string", + "description": "The algorithm used to produce the encryption key hash. Currently, the only accepted value is \\\"AES256\\\". Must be provided if the x-ms-encryption-key header is provided.", + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false, + "values": [ + { + "name": "AES256", + "value": "AES256", + "description": "The AES256 encryption algorithm." + } + ] + } + }, + "FileShareTokenIntent": { + "type": "string", + "description": "The file share token intent types.", + "enum": [ + "backup" + ], + "x-ms-enum": { + "name": "FileShareTokenIntent", + "modelAsString": true, + "values": [ + { + "name": "Backup", + "value": "backup", + "description": "The file share token intent is backup." + } + ] + } + }, + "FilterBlobItem": { + "type": "object", + "description": "The filter blob item.", + "properties": { + "Name": { + "type": "string", + "description": "The name of the blob.", + "x-ms-client-name": "name" + }, + "ContainerName": { + "type": "string", + "description": "The properties of the blob.", + "x-ms-client-name": "containerName" + }, + "tags": { + "$ref": "#/definitions/BlobTags", + "description": "The metadata of the blob." + }, + "VersionId": { + "type": "string", + "description": "The version ID of the blob.", + "x-ms-client-name": "versionId" + }, + "IsCurrentVersion": { + "type": "boolean", + "description": "Whether it is the current version of the blob", + "x-ms-client-name": "isCurrentVersion" + } + }, + "required": [ + "Name", + "ContainerName" + ], + "xml": { + "name": "Blob" + } + }, + "FilterBlobSegment": { + "type": "object", + "description": "The result of a Filter Blobs API call", + "properties": { + "ServiceEndpoint": { + "type": "string", + "description": "The service endpoint.", + "xml": { + "attribute": true + }, + "x-ms-client-name": "serviceEndpoint" + }, + "Where": { + "type": "string", + "description": "The filter for the blobs.", + "x-ms-client-name": "where" + }, + "Blobs": { + "type": "array", + "description": "The blob segment.", + "items": { + "$ref": "#/definitions/FilterBlobItem" + }, + "xml": { + "wrapped": true + }, + "x-ms-client-name": "blobs" + }, + "NextMarker": { + "type": "string", + "description": "The next marker of the blobs.", + "x-ms-client-name": "nextMarker" + } + }, + "required": [ + "ServiceEndpoint", + "Where", + "Blobs" + ], + "xml": { + "name": "EnumerationResults" + } + }, + "FilterBlobsIncludeItem": { + "type": "string", + "description": "The filter blobs includes.", + "enum": [ + "none", + "versions" + ], + "x-ms-enum": { + "name": "FilterBlobsIncludeItem", + "modelAsString": false, + "values": [ + { + "name": "None", + "value": "none", + "description": "The filter includes no versions." + }, + { + "name": "Versions", + "value": "versions", + "description": "The filter includes n versions." + } + ] + } + }, + "GeoReplication": { + "type": "object", + "description": "Geo-Replication information for the Secondary Storage Service", + "properties": { + "Status": { + "$ref": "#/definitions/GeoReplicationStatusType", + "description": "The status of the secondary location", + "x-ms-client-name": "status" + }, + "LastSyncTime": { + "type": "string", + "format": "date-time-rfc7231", + "description": "A GMT date/time value, to the second. All primary writes preceding this value are guaranteed to be available for read operations at the secondary. Primary writes after this point in time may or may not be available for reads.", + "x-ms-client-name": "lastSyncTime" + } + }, + "required": [ + "Status", + "LastSyncTime" + ] + }, + "GeoReplicationStatusType": { + "type": "string", + "description": "The geo replication status.", + "enum": [ + "live", + "bootstrap", + "unavailable" + ], + "x-ms-enum": { + "name": "GeoReplicationStatusType", + "modelAsString": true, + "values": [ + { + "name": "Live", + "value": "live", + "description": "The geo replication is live." + }, + { + "name": "Bootstrap", + "value": "bootstrap", + "description": "The geo replication is bootstrap." + }, + { + "name": "Unavailable", + "value": "unavailable", + "description": "The geo replication is unavailable." + } + ] + } + }, + "ImmutabilityPolicyMode": { + "type": "string", + "description": "The immutability policy mode used in requests.", + "enum": [ + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "ImmutabilityPolicyMode", + "modelAsString": false, + "values": [ + { + "name": "Locked", + "value": "Locked", + "description": "The immutability policy is locked." + }, + { + "name": "Unlocked", + "value": "Unlocked", + "description": "The immutability policy is unlocked." + } + ] + } + }, + "JsonTextConfiguration": { + "type": "object", + "description": "Represents the JSON text configuration.", + "properties": { + "RecordSeparator": { + "type": "string", + "description": "The string used to separate records.", + "x-ms-client-name": "recordSeparator" + } + } + }, + "KeyInfo": { + "type": "object", + "description": "Key information", + "properties": { + "Start": { + "type": "string", + "description": "The date-time the key is active.", + "x-ms-client-name": "start" + }, + "Expiry": { + "type": "string", + "description": "The date-time the key expires.", + "x-ms-client-name": "expiry" + }, + "DelegatedUserTid": { + "$ref": "#/definitions/Azure.Core.uuid", + "description": "The delegated user tenant id in Azure AD.", + "x-ms-client-name": "delegatedUserTid" + } + }, + "required": [ + "Start", + "Expiry" + ] + }, + "LeaseDuration": { + "type": "string", + "description": "The lease duration.", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDuration", + "modelAsString": false, + "values": [ + { + "name": "Infinite", + "value": "infinite", + "description": "The lease is of infinite duration." + }, + { + "name": "Fixed", + "value": "fixed", + "description": "The lease is of fixed duration." + } + ] + } + }, + "LeaseState": { + "type": "string", + "description": "The lease state.", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseState", + "modelAsString": false, + "values": [ + { + "name": "Available", + "value": "available", + "description": "The lease is available." + }, + { + "name": "Leased", + "value": "leased", + "description": "The lease is currently leased." + }, + { + "name": "Expired", + "value": "expired", + "description": "The lease is expired." + }, + { + "name": "Breaking", + "value": "breaking", + "description": "The lease is breaking." + }, + { + "name": "Broken", + "value": "broken", + "description": "The lease is broken." + } + ] + } + }, + "LeaseStatus": { + "type": "string", + "description": "The lease status.", + "enum": [ + "unlocked", + "locked" + ], + "x-ms-enum": { + "name": "LeaseStatus", + "modelAsString": false, + "values": [ + { + "name": "Unlocked", + "value": "unlocked", + "description": "The lease is unlocked." + }, + { + "name": "Locked", + "value": "locked", + "description": "The lease is locked." + } + ] + } + }, + "ListBlobsFlatSegmentResponse": { + "type": "object", + "description": "An enumeration of blobs.", + "properties": { + "ServiceEndpoint": { + "type": "string", + "description": "The service endpoint.", + "xml": { + "attribute": true + }, + "x-ms-client-name": "serviceEndpoint" + }, + "ContainerName": { + "type": "string", + "description": "The container name.", + "xml": { + "attribute": true + }, + "x-ms-client-name": "containerName" + }, + "Prefix": { + "type": "string", + "description": "The prefix of the blobs.", + "x-ms-client-name": "prefix" + }, + "Marker": { + "type": "string", + "description": "The marker of the blobs.", + "x-ms-client-name": "marker" + }, + "MaxResults": { + "type": "integer", + "format": "int32", + "description": "The max results of the blobs.", + "x-ms-client-name": "maxResults" + }, + "Blobs": { + "$ref": "#/definitions/BlobFlatListSegment", + "description": "The blob segment.", + "x-ms-client-name": "segment" + }, + "NextMarker": { + "type": "string", + "description": "The next marker of the blobs.", + "x-ms-client-name": "nextMarker" + } + }, + "required": [ + "ServiceEndpoint", + "ContainerName", + "Blobs" + ], + "xml": { + "name": "EnumerationResults" + } + }, + "ListBlobsHierarchySegmentResponse": { + "type": "object", + "description": "An enumeration of blobs", + "properties": { + "ServiceEndpoint": { + "type": "string", + "description": "The service endpoint.", + "xml": { + "attribute": true + }, + "x-ms-client-name": "serviceEndpoint" + }, + "ContainerName": { + "type": "string", + "description": "The container name.", + "xml": { + "attribute": true + }, + "x-ms-client-name": "containerName" + }, + "Delimiter": { + "type": "string", + "description": "The delimiter of the blobs.", + "x-ms-client-name": "delimiter" + }, + "Prefix": { + "type": "string", + "description": "The prefix of the blobs.", + "x-ms-client-name": "prefix" + }, + "Marker": { + "type": "string", + "description": "The marker of the blobs.", + "x-ms-client-name": "marker" + }, + "MaxResults": { + "type": "integer", + "format": "int32", + "description": "The max results of the blobs.", + "x-ms-client-name": "maxResults" + }, + "Blobs": { + "$ref": "#/definitions/BlobHierarchyListSegment", + "description": "The blob segment.", + "x-ms-client-name": "segment" + }, + "NextMarker": { + "type": "string", + "description": "The next marker of the blobs.", + "x-ms-client-name": "nextMarker" + } + }, + "required": [ + "ServiceEndpoint", + "ContainerName", + "Blobs" + ], + "xml": { + "name": "EnumerationResults" + } + }, + "ListBlobsIncludeItem": { + "type": "string", + "description": "The list blob includes parameter values.", + "enum": [ + "copy", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludeItem", + "modelAsString": false, + "values": [ + { + "name": "Copy", + "value": "copy", + "description": "The include copies." + }, + { + "name": "Deleted", + "value": "deleted", + "description": "The include deleted blobs." + }, + { + "name": "Metadata", + "value": "metadata", + "description": "The include metadata." + }, + { + "name": "Snapshots", + "value": "snapshots", + "description": "The include snapshots." + }, + { + "name": "UncommittedBlobs", + "value": "uncommittedblobs", + "description": "The include uncommitted blobs." + }, + { + "name": "Versions", + "value": "versions", + "description": "The include versions." + }, + { + "name": "Tags", + "value": "tags", + "description": "The include tags." + }, + { + "name": "ImmutabilityPolicy", + "value": "immutabilitypolicy", + "description": "The include immutable policy." + }, + { + "name": "LegalHold", + "value": "legalhold", + "description": "The include legal hold." + }, + { + "name": "DeletedWithVersions", + "value": "deletedwithversions", + "description": "The include deleted with versions." + } + ] + } + }, + "ListContainersIncludeType": { + "type": "string", + "description": "Include this parameter to specify that the container's metadata be returned as part of the response body.", + "enum": [ + "metadata", + "deleted", + "system" + ], + "x-ms-enum": { + "name": "ListContainersIncludeType", + "modelAsString": false, + "values": [ + { + "name": "metadata", + "value": "metadata", + "description": "Include metadata" + }, + { + "name": "deleted", + "value": "deleted", + "description": "Include deleted" + }, + { + "name": "system", + "value": "system", + "description": "Include system" + } + ] + } + }, + "ListContainersSegmentResponse": { + "type": "object", + "description": "The list container segment response", + "properties": { + "ServiceEndpoint": { + "type": "string", + "description": "The service endpoint.", + "xml": { + "attribute": true + }, + "x-ms-client-name": "serviceEndpoint" + }, + "Prefix": { + "type": "string", + "description": "The prefix of the containers.", + "x-ms-client-name": "prefix" + }, + "Marker": { + "type": "string", + "description": "The marker of the containers.", + "x-ms-client-name": "marker" + }, + "MaxResults": { + "type": "integer", + "format": "int32", + "description": "The max results of the containers.", + "x-ms-client-name": "maxResults" + }, + "Containers": { + "type": "array", + "description": "The container segment.", + "items": { + "$ref": "#/definitions/ContainerItem" + }, + "xml": { + "wrapped": true + }, + "x-ms-client-name": "containerItems" + }, + "NextMarker": { + "type": "string", + "description": "The next marker of the containers." + } + }, + "required": [ + "ServiceEndpoint", + "Containers" + ], + "xml": { + "name": "EnumerationResults" + } + }, + "Logging": { + "type": "object", + "description": "Azure Analytics Logging settings.", + "properties": { + "Version": { + "type": "string", + "description": "The version of the logging properties.", + "x-ms-client-name": "version" + }, + "Delete": { + "type": "boolean", + "description": "Whether delete operation is logged.", + "x-ms-client-name": "delete" + }, + "Read": { + "type": "boolean", + "description": "Whether read operation is logged.", + "x-ms-client-name": "read" + }, + "Write": { + "type": "boolean", + "description": "Whether write operation is logged.", + "x-ms-client-name": "write" + }, + "RetentionPolicy": { + "$ref": "#/definitions/RetentionPolicy", + "description": "The retention policy of the logs.", + "x-ms-client-name": "retentionPolicy" + } + }, + "required": [ + "Version", + "Delete", + "Read", + "Write", + "RetentionPolicy" + ] + }, + "Metrics": { + "type": "object", + "description": "The metrics properties.", + "properties": { + "Version": { + "type": "string", + "description": "The version of the metrics properties.", + "x-ms-client-name": "version" + }, + "Enabled": { + "type": "boolean", + "description": "Whether it is enabled.", + "x-ms-client-name": "enabled" + }, + "IncludeAPIs": { + "type": "boolean", + "description": "Whether to include API in the metrics.", + "x-ms-client-name": "includeApis" + }, + "RetentionPolicy": { + "$ref": "#/definitions/RetentionPolicy", + "description": "The retention policy of the metrics.", + "x-ms-client-name": "retentionPolicy" + } + }, + "required": [ + "Enabled" + ] + }, + "ObjectReplicationMetadata": { + "type": "object", + "description": "The object replication metadata.", + "additionalProperties": { + "type": "string" + }, + "xml": { + "name": "OrMetadata" + } + }, + "PageList": { + "type": "object", + "description": "Represents a page list.", + "properties": { + "PageRange": { + "type": "array", + "description": "The page ranges.", + "items": { + "$ref": "#/definitions/PageRange" + }, + "xml": { + "wrapped": false + }, + "x-ms-client-name": "pageRange" + }, + "ClearRange": { + "type": "array", + "description": "The clear ranges.", + "items": { + "$ref": "#/definitions/ClearRange" + }, + "xml": { + "wrapped": false + }, + "x-ms-client-name": "clearRange" + }, + "NextMarker": { + "type": "string", + "description": "The next marker.", + "x-ms-client-name": "nextMarker" + } + } + }, + "PageRange": { + "type": "object", + "description": "The page range.", + "properties": { + "Start": { + "type": "integer", + "format": "int64", + "description": "The start of the byte range.", + "x-ms-client-name": "start" + }, + "End": { + "type": "integer", + "format": "int64", + "description": "The end of the byte range.", + "x-ms-client-name": "end" + } + }, + "required": [ + "Start", + "End" + ] + }, + "ParquetConfiguration": { + "type": "object", + "description": "Represents the Parquet configuration.", + "additionalProperties": {} + }, + "PremiumPageBlobAccessTier": { + "type": "string", + "description": "The premium page blob access tier types.", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80" + ], + "x-ms-enum": { + "name": "PremiumPageBlobAccessTier", + "modelAsString": true, + "values": [ + { + "name": "P4", + "value": "P4", + "description": "The premium page blob access tier is P4." + }, + { + "name": "P6", + "value": "P6", + "description": "The premium page blob access tier is P6." + }, + { + "name": "P10", + "value": "P10", + "description": "The premium page blob access tier is P10." + }, + { + "name": "P15", + "value": "P15", + "description": "The premium page blob access tier is P15." + }, + { + "name": "P20", + "value": "P20", + "description": "The premium page blob access tier is P20." + }, + { + "name": "P30", + "value": "P30", + "description": "The premium page blob access tier is P30." + }, + { + "name": "P40", + "value": "P40", + "description": "The premium page blob access tier is P40." + }, + { + "name": "P50", + "value": "P50", + "description": "The premium page blob access tier is P50." + }, + { + "name": "P60", + "value": "P60", + "description": "The premium page blob access tier is P60." + }, + { + "name": "P70", + "value": "P70", + "description": "The premium page blob access tier is P70." + }, + { + "name": "P80", + "value": "P80", + "description": "The premium page blob access tier is P80." + } + ] + } + }, + "PublicAccessType": { + "type": "string", + "description": "The public access types.", + "enum": [ + "blob", + "container" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true, + "values": [ + { + "name": "Blob", + "value": "blob", + "description": "Blob access." + }, + { + "name": "Container", + "value": "container", + "description": "Container access." + } + ] + } + }, + "QueryFormat": { + "type": "object", + "description": "The query format settings.", + "properties": { + "Type": { + "$ref": "#/definitions/QueryType", + "description": "The query type.", + "x-ms-client-name": "type" + }, + "DelimitedTextConfiguration": { + "$ref": "#/definitions/DelimitedTextConfiguration", + "description": "The delimited text configuration.", + "x-ms-client-name": "delimitedTextConfiguration" + }, + "JsonTextConfiguration": { + "$ref": "#/definitions/JsonTextConfiguration", + "description": "The JSON text configuration.", + "x-ms-client-name": "jsonTextConfiguration" + }, + "ArrowConfiguration": { + "$ref": "#/definitions/ArrowConfiguration", + "description": "The Apache Arrow configuration.", + "x-ms-client-name": "arrowConfiguration" + }, + "ParquetConfiguration": { + "$ref": "#/definitions/ParquetConfiguration", + "description": "The Parquet configuration.", + "x-ms-client-name": "parquetTextConfiguration" + } + }, + "required": [ + "Type" + ] + }, + "QueryRequest": { + "type": "object", + "description": "Groups the set of query request settings.", + "properties": { + "QueryType": { + "$ref": "#/definitions/QueryRequestType", + "description": "Required. The type of the provided query expression.", + "x-ms-client-name": "queryType" + }, + "Expression": { + "type": "string", + "description": "The query expression in SQL. The maximum size of the query expression is 256KiB.", + "x-ms-client-name": "expression" + }, + "InputSerialization": { + "$ref": "#/definitions/QuerySerialization", + "description": "The input serialization settings.", + "x-ms-client-name": "inputSerialization" + }, + "OutputSerialization": { + "$ref": "#/definitions/QuerySerialization", + "description": "The output serialization settings.", + "x-ms-client-name": "outputSerialization" + } + }, + "required": [ + "QueryType", + "Expression" + ] + }, + "QueryRequestType": { + "type": "string", + "description": "The query request, note only SQL supported", + "enum": [ + "SQL" + ], + "x-ms-enum": { + "name": "QueryRequestType", + "modelAsString": false, + "values": [ + { + "name": "SQL", + "value": "SQL", + "description": "The SQL request query type." + } + ] + } + }, + "QuerySerialization": { + "type": "object", + "description": "The query serialization settings.", + "properties": { + "Format": { + "$ref": "#/definitions/QueryFormat", + "description": "The query format.", + "x-ms-client-name": "format" + } + }, + "required": [ + "Format" + ] + }, + "QueryType": { + "type": "string", + "description": "The query format type.", + "enum": [ + "delimited", + "json", + "arrow", + "parquet" + ], + "x-ms-enum": { + "name": "QueryType", + "modelAsString": false, + "values": [ + { + "name": "Delimited", + "value": "delimited", + "description": "The query format type is delimited." + }, + { + "name": "JSON", + "value": "json", + "description": "The query format type is JSON." + }, + { + "name": "Arrow", + "value": "arrow", + "description": "The query format type is Apache Arrow." + }, + { + "name": "Parquet", + "value": "parquet", + "description": "The query format type is Parquet." + } + ] + }, + "xml": { + "name": "Type" + } + }, + "RehydratePriority": { + "type": "string", + "description": "If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.", + "enum": [ + "High", + "Standard" + ], + "x-ms-enum": { + "name": "RehydratePriority", + "modelAsString": true, + "values": [ + { + "name": "High", + "value": "High", + "description": "The rehydrate priority is high." + }, + { + "name": "Standard", + "value": "Standard", + "description": "The rehydrate priority is standard." + } + ] + } + }, + "RetentionPolicy": { + "type": "object", + "description": "The retention policy.", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Whether to enable the retention policy.", + "x-ms-client-name": "enabled" + }, + "Days": { + "type": "integer", + "format": "int32", + "description": "The number of days to retain the logs.", + "minimum": 1, + "x-ms-client-name": "days" + }, + "AllowPermanentDelete": { + "type": "boolean", + "description": "Whether to allow permanent delete.", + "x-ms-client-name": "allowPermanentDelete" + } + }, + "required": [ + "Enabled" + ] + }, + "SequenceNumberActionType": { + "type": "string", + "description": "The sequence number actions.", + "enum": [ + "increment", + "max", + "update" + ], + "x-ms-enum": { + "name": "SequenceNumberActionType", + "modelAsString": false, + "values": [ + { + "name": "Increment", + "value": "increment", + "description": "Increment the sequence number." + }, + { + "name": "Max", + "value": "max", + "description": "Set the maximum for the sequence number." + }, + { + "name": "Update", + "value": "update", + "description": "Update the sequence number." + } + ] + } + }, + "SignedIdentifier": { + "type": "object", + "description": "The signed identifier.", + "properties": { + "Id": { + "type": "string", + "description": "The unique ID for the signed identifier.", + "x-ms-client-name": "id" + }, + "AccessPolicy": { + "$ref": "#/definitions/AccessPolicy", + "description": "The access policy for the signed identifier.", + "x-ms-client-name": "accessPolicy" + } + }, + "required": [ + "Id", + "AccessPolicy" + ] + }, + "SignedIdentifiers": { + "type": "array", + "description": "Represents an array of signed identifiers", + "items": { + "$ref": "#/definitions/SignedIdentifier" + } + }, + "SkuName": { + "type": "string", + "description": "The SKU types", + "enum": [ + "Standard_LRS", + "Standard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS", + "Standard_GZRS", + "Premium_ZRS", + "Standard_RAGZRS" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": false, + "values": [ + { + "name": "StandardLRS", + "value": "Standard_LRS", + "description": "The standard LRS SKU." + }, + { + "name": "StandardGRS", + "value": "Standard_GRS", + "description": "The standard GRS SKU." + }, + { + "name": "StandardRAGRS", + "value": "Standard_RAGRS", + "description": "The standard RAGRS SKU." + }, + { + "name": "StandardZRS", + "value": "Standard_ZRS", + "description": "The standard ZRS SKU." + }, + { + "name": "PremiumLRS", + "value": "Premium_LRS", + "description": "The premium LRS SKU." + }, + { + "name": "StandardGZRS", + "value": "Standard_GZRS", + "description": "The standard GZRS SKU." + }, + { + "name": "PremiumZRS", + "value": "Premium_ZRS", + "description": "The premium ZRS SKU." + }, + { + "name": "StandardRAGZRS", + "value": "Standard_RAGZRS", + "description": "The standard RAGZRS SKU." + } + ] + } + }, + "StaticWebsite": { + "type": "object", + "description": "The properties that enable an account to host a static website", + "properties": { + "Enabled": { + "type": "boolean", + "description": "Indicates whether this account is hosting a static website", + "x-ms-client-name": "enabled" + }, + "IndexDocument": { + "type": "string", + "description": "The index document.", + "x-ms-client-name": "indexDocument" + }, + "ErrorDocument404Path": { + "type": "string", + "description": "The error document.", + "x-ms-client-name": "errorDocument404Path" + }, + "DefaultIndexDocumentPath": { + "type": "string", + "description": "Absolute path of the default index page", + "x-ms-client-name": "defaultIndexDocumentPath" + } + }, + "required": [ + "Enabled" + ] + }, + "StorageError": { + "type": "object", + "description": "The error response.", + "properties": { + "Code": { + "type": "string", + "description": "The error code.", + "x-ms-client-name": "code" + }, + "Message": { + "type": "string", + "description": "The error message.", + "x-ms-client-name": "message" + }, + "CopySourceStatusCode": { + "type": "integer", + "format": "int32", + "description": "Copy source status code", + "x-ms-client-name": "copySourceStatusCode" + }, + "CopySourceErrorCode": { + "type": "string", + "description": "Copy source error code", + "x-ms-client-name": "copySourceErrorCode" + }, + "CopySourceErrorMessage": { + "type": "string", + "description": "Copy source error message", + "x-ms-client-name": "copySourceErrorMessage" + } + } + }, + "StorageServiceProperties": { + "type": "object", + "description": "The service properties.", + "properties": { + "Logging": { + "$ref": "#/definitions/Logging", + "description": "The logging properties.", + "x-ms-client-name": "logging" + }, + "HourMetrics": { + "$ref": "#/definitions/Metrics", + "description": "The hour metrics properties.", + "x-ms-client-name": "hourMetrics" + }, + "MinuteMetrics": { + "$ref": "#/definitions/Metrics", + "description": "The minute metrics properties.", + "x-ms-client-name": "minuteMetrics" + }, + "Cors": { + "type": "array", + "description": "The CORS properties.", + "items": { + "$ref": "#/definitions/CorsRule" + }, + "xml": { + "wrapped": true + }, + "x-ms-client-name": "cors" + }, + "DefaultServiceVersion": { + "type": "string", + "description": "The default service version.", + "x-ms-client-name": "defaultServiceVersion" + }, + "DeleteRetentionPolicy": { + "$ref": "#/definitions/RetentionPolicy", + "description": "The delete retention policy.", + "x-ms-client-name": "deleteRetentionPolicy" + }, + "StaticWebsite": { + "$ref": "#/definitions/StaticWebsite", + "description": "The static website properties.", + "x-ms-client-name": "staticWebsite" + } + } + }, + "StorageServiceStats": { + "type": "object", + "description": "Stats for the storage service.", + "properties": { + "GeoReplication": { + "$ref": "#/definitions/GeoReplication", + "description": "The geo replication stats.", + "x-ms-client-name": "geoReplication" + } + } + }, + "UserDelegationKey": { + "type": "object", + "description": "A user delegation key.", + "properties": { + "SignedOid": { + "$ref": "#/definitions/Azure.Core.uuid", + "description": "The Azure Active Directory object ID in GUID format.", + "x-ms-client-name": "signedOid" + }, + "SignedTid": { + "$ref": "#/definitions/Azure.Core.uuid", + "description": "The Azure Active Directory tenant ID in GUID format.", + "x-ms-client-name": "signedTid" + }, + "SignedStart": { + "type": "string", + "description": "The date-time the key is active.", + "x-ms-client-name": "signedStart" + }, + "SignedExpiry": { + "type": "string", + "description": "The date-time the key expires.", + "x-ms-client-name": "signedExpiry" + }, + "SignedService": { + "type": "string", + "description": "Abbreviation of the Azure Storage service that accepts the key.", + "x-ms-client-name": "signedService" + }, + "SignedVersion": { + "type": "string", + "description": "The service version that created the key.", + "x-ms-client-name": "signedVersion" + }, + "SignedDelegatedUserTid": { + "$ref": "#/definitions/Azure.Core.uuid", + "description": "The delegated user tenant id in Azure AD. Return if DelegatedUserTid is specified.", + "x-ms-client-name": "signedDelegatedUserTid" + }, + "Value": { + "$ref": "#/definitions/base64Bytes", + "description": "The key as a base64 string.", + "x-ms-client-name": "value" + } + }, + "required": [ + "SignedOid", + "SignedTid", + "SignedStart", + "SignedExpiry", + "SignedService", + "SignedVersion", + "Value" + ] + }, + "base64Bytes": { + "type": "string", + "format": "byte" + } + }, + "parameters": { + "Azure.Core.ConditionalRequestHeaders.ifMatch": { + "name": "If-Match", + "in": "header", + "description": "The request should only proceed if an entity matches this string.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "ifMatch" + }, + "Azure.Core.ConditionalRequestHeaders.ifModifiedSince": { + "name": "If-Modified-Since", + "in": "header", + "description": "The request should only proceed if the entity was modified after this time.", + "required": false, + "type": "string", + "format": "date-time", + "x-ms-parameter-location": "method", + "x-ms-client-name": "ifModifiedSince" + }, + "Azure.Core.ConditionalRequestHeaders.ifNoneMatch": { + "name": "If-None-Match", + "in": "header", + "description": "The request should only proceed if no entity matches this string.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-client-name": "ifNoneMatch" + }, + "Azure.Core.ConditionalRequestHeaders.ifUnmodifiedSince": { + "name": "If-Unmodified-Since", + "in": "header", + "description": "The request should only proceed if the entity was not modified after this time.", + "required": false, + "type": "string", + "format": "date-time", + "x-ms-parameter-location": "method", + "x-ms-client-name": "ifUnmodifiedSince" + } + } +} From ee4c6039399c7329cc0d636cc48f12af24d45f4c Mon Sep 17 00:00:00 2001 From: Kyle Zhang Date: Wed, 17 Dec 2025 12:53:32 +0800 Subject: [PATCH 042/117] remove outdated TypeSpecValidation suppressions (#39247) Co-authored-by: Kyle Zhang Co-authored-by: Mary Gao --- specification/suppressions.yaml | 99 --------------------------------- 1 file changed, 99 deletions(-) diff --git a/specification/suppressions.yaml b/specification/suppressions.yaml index 23b6b960e18d..91f81f129523 100644 --- a/specification/suppressions.yaml +++ b/specification/suppressions.yaml @@ -200,18 +200,6 @@ paths: - azurelargeinstance/resource-manager/Microsoft.AzureLargeInstance/AzureLargeInstance/tspconfig.yaml -- tool: TypeSpecValidation - reason: Suppress until spec can be updated - rules: [SdkTspConfigValidation] - sub-rules: - - options.@azure-tools/typespec-go.* - - options.@azure-tools/typespec-java.* - - options.@azure-tools/typespec-python.* - - options.@azure-tools/typespec-ts.* - - parameters.service-dir.default - paths: - - azurestackhci/AzureStackHCI.StackHCIVM.Management/tspconfig.yaml - - tool: TypeSpecValidation reason: Suppress until spec can be updated rules: [SdkTspConfigValidation] @@ -320,34 +308,6 @@ paths: - confidentialledger/Microsoft.ManagedCcf/tspconfig.yaml -- tool: TypeSpecValidation - reason: Suppress until spec can be updated - rules: [SdkTspConfigValidation] - sub-rules: - - options.@azure-tools/typespec-java.* - - options.@azure-tools/typespec-python.* - - options.@azure-tools/typespec-ts.* - paths: - # Casing "Confidentialledger" is not a typo. This needs to match until the folder name is corrected in the repo. - - confidentialledger/Confidentialledger.Management/tspconfig.yaml - -- tool: TypeSpecValidation - reason: Suppress until spec can be updated - rules: [SdkTspConfigValidation] - sub-rules: - - options.@azure-tools/typespec-ts.experimental-extensible-enums - - options.@azure-tools/typespec-ts.package-details.name - paths: - - connectedcache/ConnectedCache.Management/tspconfig.yaml - -- tool: TypeSpecValidation - reason: Suppress until spec can be updated - rules: [SdkTspConfigValidation] - sub-rules: - - options.@azure-tools/typespec-python.* - paths: - - containerservice/resource-manager/Microsoft.ContainerService/fleet/tspconfig.yaml - - tool: TypeSpecValidation reason: Suppress until spec can be updated rules: [SdkTspConfigValidation] @@ -360,14 +320,6 @@ paths: - containerstorage/resource-manager/Microsoft.ContainerStorage/ContainerStorage/tspconfig.yaml -- tool: TypeSpecValidation - reason: Suppress until spec can be updated - rules: [SdkTspConfigValidation] - sub-rules: - - options.@azure-tools/typespec-java.namespace - paths: - - dell/Dell.Storage.Management/tspconfig.yaml - - tool: TypeSpecValidation reason: Suppress until spec can be updated rules: [SdkTspConfigValidation] @@ -388,14 +340,6 @@ paths: - devcenter/DevCenter/tspconfig.yaml -- tool: TypeSpecValidation - reason: Suppress until spec can be updated - rules: [SdkTspConfigValidation] - sub-rules: - - options.@azure-tools/typespec-java.service-name - paths: - - edge/Microsoft.Edge.Management/tspconfig.yaml - - tool: TypeSpecValidation reason: Suppress until spec can be updated rules: [SdkTspConfigValidation] @@ -403,7 +347,6 @@ - options.@azure-tools/typespec-csharp.* - options.@azure-tools/typespec-ts.* paths: - - edge/Microsoft.Edge.ConfigurationManager.Management/tspconfig.yaml - edge/Microsoft.Edge.Configurations.Management/tspconfig.yaml - tool: TypeSpecValidation @@ -418,14 +361,6 @@ - eventgrid/Azure.Messaging.EventGrid/tspconfig.yaml - eventgrid/Azure.Messaging.EventGrid.SystemEvents/tspconfig.yaml -- tool: TypeSpecValidation - reason: Suppress until spec can be updated - rules: [SdkTspConfigValidation] - sub-rules: - - options.@azure-tools/typespec-java.service-name - paths: - - fabric/resource-manager/Microsoft.Fabric/Fabric/tspconfig.yaml - - tool: TypeSpecValidation reason: Suppress until spec can be updated rules: [SdkTspConfigValidation] @@ -545,14 +480,6 @@ paths: - liftrastronomer/Astronomer.Astro.Management/tspconfig.yaml -- tool: TypeSpecValidation - reason: Suppress until spec can be updated - rules: [SdkTspConfigValidation] - sub-rules: - - options.@azure-tools/typespec-java.* - paths: - - liftrqumulo/Qumulo.Storage.Management/tspconfig.yaml - - tool: TypeSpecValidation reason: Suppress until spec can be updated rules: [SdkTspConfigValidation] @@ -594,7 +521,6 @@ reason: Suppress until spec can be updated rules: [SdkTspConfigValidation] sub-rules: - - options.@azure-tools/typespec-go.* - options.@azure-tools/typespec-java.* - options.@azure-tools/typespec-python.* - options.@azure-tools/typespec-ts.* @@ -602,22 +528,6 @@ paths: - manufacturingplatform/Manufacturingplatform.Management/tspconfig.yaml -- tool: TypeSpecValidation - reason: Suppress until spec can be updated - rules: [SdkTspConfigValidation] - sub-rules: - - options.@azure-tools/typespec-python.namespace - paths: - - migrate/AssessmentProjects.Management/AKSAssessments.Management/tspconfig.yaml - - migrate/AssessmentProjects.Management/AvsAssessments.Management/tspconfig.yaml - - migrate/AssessmentProjects.Management/BusinessCases.Management/tspconfig.yaml - - migrate/AssessmentProjects.Management/Collectors.Management/tspconfig.yaml - - migrate/AssessmentProjects.Management/SqlAssessments.Management/tspconfig.yaml - - migrate/AssessmentProjects.Management/WebAppAssessments.Management/tspconfig.yaml - - migrate/AssessmentProjects.Management/WebAppCompoundAssessments.Management/tspconfig.yaml - - migrate/AssessmentProjects.Management/HeterogeneousAssessments.Management/tspconfig.yaml - - migrate/AssessmentProjects.Management/MachineAssessments.Management/tspconfig.yaml - - tool: TypeSpecValidation reason: Suppress until spec can be updated rules: [SdkTspConfigValidation] @@ -752,14 +662,6 @@ paths: - relationships/Relationships.Management/tspconfig.yaml -- tool: TypeSpecValidation - reason: Suppress until spec can be updated - rules: [SdkTspConfigValidation] - sub-rules: - - options.@azure-tools/typespec-java.namespace - paths: - - resources/resource-manager/Microsoft.Resources/bicep/tspconfig.yaml - - tool: TypeSpecValidation reason: Suppress until spec can be updated rules: [SdkTspConfigValidation] @@ -784,7 +686,6 @@ reason: Suppress until spec can be updated rules: [SdkTspConfigValidation] sub-rules: - - options.@azure-tools/typespec-go.* - options.@azure-tools/typespec-java.* paths: - scvmm/ScVmm.Management/tspconfig.yaml From 5001bc86daebcea16c9a0b2bbdc8ff08d6d8f4eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 Dec 2025 20:58:10 -0800 Subject: [PATCH 043/117] build(deps-dev): bump @typespec/compiler (#39284) Bumps the typespec group with 1 update in the / directory: [@typespec/compiler](https://github.com/microsoft/typespec). Updates `@typespec/compiler` from 1.7.0 to 1.7.1 - [Release notes](https://github.com/microsoft/typespec/releases) - [Commits](https://github.com/microsoft/typespec/compare/typespec-stable@1.7.0...@typespec/compiler@1.7.1) --- updated-dependencies: - dependency-name: "@typespec/compiler" dependency-version: 1.7.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typespec ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 47 +++++++++++++++++++++++++++++++++++++++-------- package.json | 2 +- 2 files changed, 40 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c1ef7ccf475..4c7a20b82680 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@microsoft.azure/openapi-validator": "2.2.4", "@microsoft.azure/openapi-validator-core": "1.0.7", "@microsoft.azure/openapi-validator-rulesets": "2.1.10", - "@typespec/compiler": "1.7.0", + "@typespec/compiler": "1.7.1", "@typespec/events": "0.77.0", "@typespec/http": "1.7.0", "@typespec/openapi": "1.7.0", @@ -687,6 +687,7 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -1041,6 +1042,7 @@ "integrity": "sha512-FbEmpZSQENzBt/Y8qSF1b98T8CqT3bV7IRV8AGGm/73NQZiWQCm2LvQzR0/lbqGntS2EnSBrt394Kt69wM4ifA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=20.0.0" }, @@ -1067,6 +1069,7 @@ "integrity": "sha512-QXHryXgV9Rh7lBW9hrehjdGVM/W8eBN6wnfRRZtAAyfTc1AkRGDKOMFBtRtfbEkQpur16mgQTd7EyH2tpqfuSw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "change-case": "~5.4.4", "pluralize": "^8.0.0" @@ -1135,6 +1138,7 @@ "integrity": "sha512-zpvFvjCjNW+GWzHBV7vJ2E1PKXrmyNqp7FQiYo/D7PJBVTXNtOyIKqqo043ktAaWihbr8cl5QguuNSoBAKL0+Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "change-case": "~5.4.4", "pluralize": "^8.0.0", @@ -3614,6 +3618,7 @@ "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.3", @@ -4144,6 +4149,7 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -4448,6 +4454,7 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -4548,6 +4555,7 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -4898,7 +4906,8 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true, - "license": "0BSD" + "license": "0BSD", + "peer": true }, "node_modules/@ts-common/property-set": { "version": "0.1.0", @@ -5108,7 +5117,8 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/lodash": { "version": "4.17.21", @@ -5236,6 +5246,7 @@ "integrity": "sha512-jCzKdm/QK0Kg4V4IK/oMlRZlY+QOcdjv89U2NgKHZk1CYTj82/RVSx1mV/0gqCVMJ/DA+Zf/S4NBWNF8GQ+eqQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.48.0", "@typescript-eslint/types": "8.48.0", @@ -5461,11 +5472,12 @@ } }, "node_modules/@typespec/compiler": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-1.7.0.tgz", - "integrity": "sha512-KE2t5I7u/33M/nsIxdng06FUPrqaGSbMsSEsv51eMwYnj3v1+Z3qTTX/dxHAXRXHcfadNlX/NtyAKju+pkMTFQ==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-1.7.1.tgz", + "integrity": "sha512-sb3MEsKjFlAx8ZG484exs5Ec+JwmYf2anJqLjMusrV3rRMUhv3fbEulk9MD+l4eOkBS46VMNGqRu0wTn8suVVA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "~7.27.1", "@inquirer/prompts": "^8.0.1", @@ -5651,6 +5663,7 @@ "integrity": "sha512-NbOzi7axEt/xGgXaLjcGGV2HjQKNFjbvsQpCeDA6loUghZDK5+5ik/jwMumeUDunoBsAKF78ZxVF5qhQh56dGA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5664,6 +5677,7 @@ "integrity": "sha512-4cGkcMiob3bedWbFkRcq614TDH7WPEI3YMgrg44mBarj903arpEniAESIhNUbLQzQFFc5rOJagexQDl4agVDyA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5683,6 +5697,7 @@ "integrity": "sha512-tEAIgGnjLvOjbGAoCfkBudvpe/tXaOXkzy5nVFXs4921/jAaMTwzcJIt0bTXZpp5cExdlL7w9ZrnehARHiposQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5757,6 +5772,7 @@ "integrity": "sha512-DEUMD9zYqUVUhKCGktV7Z+sFkzj+bcSpJRhEXxOrJxupWM4I3N4deMop+ulxezxlLxIRUz7ELc+6WucYXgOnAA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5771,6 +5787,7 @@ "integrity": "sha512-rVML/sPNj+MomKXftko/eUNM5OhHlIevoit3Dbtaf1aWS5pcJ5jKX05Prz53VIyeUP7ra5ocmPE/iIEPb8ZbCA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5787,6 +5804,7 @@ "integrity": "sha512-qqfJW4n19Jgi5FxQhsEgoIc5zD9o47AAoZxLKUX91z6aB/YWrLSTrrrIAvhNCESXuB89zlJPwlZ/j4YmpxZ/jw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5815,6 +5833,7 @@ "integrity": "sha512-eAInPZYPkxpBUS8IKQfNZ5eZsLfkWqEX0d6YM/AfooGYbxcKdHQBfYOWBvRC4NkKEMub4ROaD5GcPLYTyWQIWw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5828,6 +5847,7 @@ "integrity": "sha512-DNVAOMaRUPGpLEsqf3sn7UAWuAE1rs8Jf1FIAU7DF/sVmzeXs4OBanxSSsVmbcdfPRHPbjPuRnW6e+QS2Sjk3Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=20.0.0" }, @@ -6003,6 +6023,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -7265,6 +7286,7 @@ "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -9158,6 +9180,7 @@ "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 10.16.0" } @@ -10346,6 +10369,7 @@ "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -10488,7 +10512,8 @@ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "dev": true, - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", @@ -11575,6 +11600,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -11694,7 +11720,8 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "license": "0BSD" + "license": "0BSD", + "peer": true }, "node_modules/tunnel": { "version": "0.0.6", @@ -11803,6 +11830,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11965,6 +11993,7 @@ "integrity": "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", @@ -12081,6 +12110,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -12094,6 +12124,7 @@ "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/chai": "^5.2.2", "@vitest/expect": "3.2.4", diff --git a/package.json b/package.json index 0ca77368990c..72c6a31f2280 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@microsoft.azure/openapi-validator": "2.2.4", "@microsoft.azure/openapi-validator-core": "1.0.7", "@microsoft.azure/openapi-validator-rulesets": "2.1.10", - "@typespec/compiler": "1.7.0", + "@typespec/compiler": "1.7.1", "@typespec/http": "1.7.0", "@typespec/sse": "0.77.0", "@typespec/events": "0.77.0", From 5df531e42f6eaf21c3096a968d8834572d4c5e16 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Tue, 16 Dec 2025 21:13:18 -0800 Subject: [PATCH 044/117] bump prettier from 3.6.2 to 3.7.4 (#39308) --- .github/package-lock.json | 8 +-- .github/package.json | 2 +- .github/shared/package-lock.json | 8 +-- .github/shared/package.json | 2 +- eng/tools/lint-diff/package.json | 2 +- eng/tools/oav-runner/package.json | 2 +- eng/tools/openapi-diff-runner/package.json | 2 +- eng/tools/sdk-suppressions/package.json | 2 +- eng/tools/spec-gen-sdk-runner/package.json | 2 +- eng/tools/summarize-impact/package.json | 2 +- eng/tools/suppressions/package.json | 2 +- .../suppressions/test/suppressions.test.ts | 4 +- eng/tools/tsp-client-tests/package.json | 2 +- .../package.json | 2 +- eng/tools/typespec-requirement/package.json | 2 +- eng/tools/typespec-validation/package.json | 2 +- package-lock.json | 64 ++++++++++++++----- package.json | 2 +- 18 files changed, 71 insertions(+), 41 deletions(-) diff --git a/.github/package-lock.json b/.github/package-lock.json index 731658869e1f..783480894f5f 100644 --- a/.github/package-lock.json +++ b/.github/package-lock.json @@ -30,7 +30,7 @@ "eslint": "^9.22.0", "fflate": "0.8.2", "globals": "^16.0.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "semver": "^7.7.1", "typescript": "~5.9.2", @@ -3602,9 +3602,9 @@ } }, "node_modules/prettier": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", - "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", "peer": true, diff --git a/.github/package.json b/.github/package.json index ae6be1524c75..1e2ac953c5c3 100644 --- a/.github/package.json +++ b/.github/package.json @@ -31,7 +31,7 @@ "eslint": "^9.22.0", "fflate": "0.8.2", "globals": "^16.0.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "semver": "^7.7.1", "typescript": "~5.9.2", diff --git a/.github/shared/package-lock.json b/.github/shared/package-lock.json index 6558e77ab916..362687d39a11 100644 --- a/.github/shared/package-lock.json +++ b/.github/shared/package-lock.json @@ -27,7 +27,7 @@ "cross-env": "^10.1.0", "eslint": "^9.22.0", "globals": "^16.0.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "semver": "^7.7.1", "typescript": "~5.9.2", @@ -2954,9 +2954,9 @@ } }, "node_modules/prettier": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", - "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", "peer": true, diff --git a/.github/shared/package.json b/.github/shared/package.json index 30346ccf2d01..0adb0ccf7c20 100644 --- a/.github/shared/package.json +++ b/.github/shared/package.json @@ -53,7 +53,7 @@ "cross-env": "^10.1.0", "eslint": "^9.22.0", "globals": "^16.0.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "semver": "^7.7.1", "typescript": "~5.9.2", diff --git a/eng/tools/lint-diff/package.json b/eng/tools/lint-diff/package.json index 2348a756c454..bfa1ddc6ce70 100644 --- a/eng/tools/lint-diff/package.json +++ b/eng/tools/lint-diff/package.json @@ -40,7 +40,7 @@ "eslint": "^9.22.0", "execa": "^9.5.2", "memfs": "^4.17.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", diff --git a/eng/tools/oav-runner/package.json b/eng/tools/oav-runner/package.json index dc499fb5eec5..f2745aac5b0b 100644 --- a/eng/tools/oav-runner/package.json +++ b/eng/tools/oav-runner/package.json @@ -27,7 +27,7 @@ "@types/node": "^20.0.0", "cross-env": "^10.1.0", "eslint": "^9.22.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", diff --git a/eng/tools/openapi-diff-runner/package.json b/eng/tools/openapi-diff-runner/package.json index 46ea25341081..2d766cf6ef3a 100644 --- a/eng/tools/openapi-diff-runner/package.json +++ b/eng/tools/openapi-diff-runner/package.json @@ -24,7 +24,7 @@ "devDependencies": { "@types/node": "^20.0.0", "@vitest/coverage-v8": "^3.1.2", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "vitest": "^3.2.4" diff --git a/eng/tools/sdk-suppressions/package.json b/eng/tools/sdk-suppressions/package.json index 775b6df8331c..6a4a740d9107 100644 --- a/eng/tools/sdk-suppressions/package.json +++ b/eng/tools/sdk-suppressions/package.json @@ -31,7 +31,7 @@ "@types/lodash": "^4.14.161", "@types/node": "^20.0.0", "@vitest/coverage-v8": "^3.1.2", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "vitest": "^3.2.4" diff --git a/eng/tools/spec-gen-sdk-runner/package.json b/eng/tools/spec-gen-sdk-runner/package.json index 0af7f14d807b..2dc9e7d96409 100644 --- a/eng/tools/spec-gen-sdk-runner/package.json +++ b/eng/tools/spec-gen-sdk-runner/package.json @@ -25,7 +25,7 @@ "devDependencies": { "@types/node": "^20.0.0", "@vitest/coverage-v8": "^3.1.2", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "vitest": "^3.2.4" diff --git a/eng/tools/summarize-impact/package.json b/eng/tools/summarize-impact/package.json index 1e23ed335db0..d951c2c3d9c0 100644 --- a/eng/tools/summarize-impact/package.json +++ b/eng/tools/summarize-impact/package.json @@ -29,7 +29,7 @@ "@types/commonmark": "0.27.10", "@types/lodash": "^4.14.161", "@types/node": "^20.0.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "vitest": "^3.2.4" diff --git a/eng/tools/suppressions/package.json b/eng/tools/suppressions/package.json index f26ac463c678..b8c32b8b2588 100644 --- a/eng/tools/suppressions/package.json +++ b/eng/tools/suppressions/package.json @@ -31,7 +31,7 @@ "@vitest/coverage-v8": "^3.1.2", "cross-env": "^10.1.0", "eslint": "^9.22.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", diff --git a/eng/tools/suppressions/test/suppressions.test.ts b/eng/tools/suppressions/test/suppressions.test.ts index 96fd5ada373a..3cf6843ce9b2 100644 --- a/eng/tools/suppressions/test/suppressions.test.ts +++ b/eng/tools/suppressions/test/suppressions.test.ts @@ -237,9 +237,7 @@ test("suppression path relative to suppressions file", () => { test("yaml not array", () => { expect(() => getSuppressionsFromYaml("TestTool", "foo.json", "suppressions.yaml", "foo"), - ).toThrowErrorMatchingInlineSnapshot( - `[Error: ✖ Invalid input: expected array, received string]`, - ); + ).toThrowErrorMatchingInlineSnapshot(`[Error: ✖ Invalid input: expected array, received string]`); }); test("yaml array not suppression", () => { diff --git a/eng/tools/tsp-client-tests/package.json b/eng/tools/tsp-client-tests/package.json index 729c1a34ec63..9a7143ad382c 100644 --- a/eng/tools/tsp-client-tests/package.json +++ b/eng/tools/tsp-client-tests/package.json @@ -5,7 +5,7 @@ "devDependencies": { "@azure-tools/specs-shared": "file:../../../.github/shared", "@types/node": "^20.0.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "vitest": "^3.2.4" diff --git a/eng/tools/typespec-migration-validation/package.json b/eng/tools/typespec-migration-validation/package.json index 5687c4cc1339..eb624a3fc19f 100644 --- a/eng/tools/typespec-migration-validation/package.json +++ b/eng/tools/typespec-migration-validation/package.json @@ -18,7 +18,7 @@ "@typescript-eslint/eslint-plugin": "^8.45.0", "@typescript-eslint/parser": "^8.45.0", "eslint": "^9.26.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "typescript": "^5.8.3" }, "scripts": { diff --git a/eng/tools/typespec-requirement/package.json b/eng/tools/typespec-requirement/package.json index 24f508e55fb6..e4af0b78f754 100644 --- a/eng/tools/typespec-requirement/package.json +++ b/eng/tools/typespec-requirement/package.json @@ -5,7 +5,7 @@ "devDependencies": { "@types/node": "^20.0.0", "execa": "^9.3.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "vitest": "^3.2.4" diff --git a/eng/tools/typespec-validation/package.json b/eng/tools/typespec-validation/package.json index 79034515fa7e..d78d42615cde 100644 --- a/eng/tools/typespec-validation/package.json +++ b/eng/tools/typespec-validation/package.json @@ -24,7 +24,7 @@ "@vitest/coverage-v8": "^3.1.2", "cross-env": "^10.1.0", "eslint": "^9.22.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", diff --git a/package-lock.json b/package-lock.json index 4c7a20b82680..54df7a390938 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "@typespec/xml": "0.77.0", "azure-rest-api-specs-eng-tools": "file:eng/tools", "oav": "4.0.3", - "prettier": "~3.6.2", + "prettier": "3.7.4", "typescript": "~5.9.2" }, "engines": { @@ -69,7 +69,7 @@ "cross-env": "^10.1.0", "eslint": "^9.22.0", "globals": "^16.0.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "semver": "^7.7.1", "typescript": "~5.9.2", @@ -134,7 +134,7 @@ "eslint": "^9.22.0", "execa": "^9.5.2", "memfs": "^4.17.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", @@ -359,7 +359,7 @@ "@types/node": "^20.0.0", "cross-env": "^10.1.0", "eslint": "^9.22.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", @@ -382,7 +382,7 @@ "devDependencies": { "@types/node": "^20.0.0", "@vitest/coverage-v8": "^3.1.2", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "vitest": "^3.2.4" @@ -411,7 +411,7 @@ "@types/lodash": "^4.14.161", "@types/node": "^20.0.0", "@vitest/coverage-v8": "^3.1.2", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "vitest": "^3.2.4" @@ -433,7 +433,7 @@ "devDependencies": { "@types/node": "^20.0.0", "@vitest/coverage-v8": "^3.1.2", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "vitest": "^3.2.4" @@ -463,7 +463,7 @@ "@types/commonmark": "0.27.10", "@types/lodash": "^4.14.161", "@types/node": "^20.0.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "vitest": "^3.2.4" @@ -490,7 +490,7 @@ "@vitest/coverage-v8": "^3.1.2", "cross-env": "^10.1.0", "eslint": "^9.22.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", @@ -506,7 +506,7 @@ "devDependencies": { "@azure-tools/specs-shared": "file:../../../.github/shared", "@types/node": "^20.0.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "vitest": "^3.2.4" @@ -533,7 +533,7 @@ "@typescript-eslint/eslint-plugin": "^8.45.0", "@typescript-eslint/parser": "^8.45.0", "eslint": "^9.26.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "typescript": "^5.8.3" }, "engines": { @@ -556,7 +556,7 @@ "devDependencies": { "@types/node": "^20.0.0", "execa": "^9.3.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "vitest": "^3.2.4" @@ -589,7 +589,7 @@ "@vitest/coverage-v8": "^3.1.2", "cross-env": "^10.1.0", "eslint": "^9.22.0", - "prettier": "~3.6.2", + "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", @@ -5577,6 +5577,22 @@ "dev": true, "license": "MIT" }, + "node_modules/@typespec/compiler/node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/@typespec/compiler/node_modules/string-width": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", @@ -5766,6 +5782,22 @@ "prettier": "~3.6.2" } }, + "node_modules/@typespec/prettier-plugin-typespec/node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/@typespec/rest": { "version": "0.77.0", "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.77.0.tgz", @@ -10364,9 +10396,9 @@ } }, "node_modules/prettier": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", - "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", "peer": true, diff --git a/package.json b/package.json index 72c6a31f2280..5b0f69a23426 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@typespec/xml": "0.77.0", "azure-rest-api-specs-eng-tools": "file:eng/tools", "oav": "4.0.3", - "prettier": "~3.6.2", + "prettier": "3.7.4", "typescript": "~5.9.2" }, "overrides": { From 8881cc8ea5ad5dc6be44109049879b692ea09ee6 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Tue, 16 Dec 2025 22:10:30 -0800 Subject: [PATCH 045/117] [.github] ignore shared/coverage in eslint (#39312) --- .github/eslint.config.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/eslint.config.js b/.github/eslint.config.js index 51b1b64afc16..fb4765fea22f 100644 --- a/.github/eslint.config.js +++ b/.github/eslint.config.js @@ -1,7 +1,16 @@ +import { defineConfig } from "eslint/config"; import { defineBaseConfig } from "./shared/eslint.base.config.js"; -export default defineBaseConfig({ - // ensures the tsconfig path resolves relative to this file (so cannot be defined in base file) - // default is process.cwd() when running eslint, which may be incorrect - tsconfigRootDir: import.meta.dirname, -}); +export default defineConfig( + defineBaseConfig({ + // ensures the tsconfig path resolves relative to this file (so cannot be defined in base file) + // default is process.cwd() when running eslint, which may be incorrect + tsconfigRootDir: import.meta.dirname, + }), + { + ignores: [ + // generated by `vitest --coverage` + "shared/coverage/**", + ], + }, +); From 0bc88a5f4aeaeb8b496b090abce909238da48dff Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Tue, 16 Dec 2025 22:23:24 -0800 Subject: [PATCH 046/117] [EngSys] npm update --before 2025-12-16 (#39313) - earliest date compatible with tsp version --- .github/package-lock.json | 581 ++++++----- .github/shared/package-lock.json | 575 ++++++----- package-lock.json | 1582 +++++++++++++++++------------- 3 files changed, 1461 insertions(+), 1277 deletions(-) diff --git a/.github/package-lock.json b/.github/package-lock.json index 783480894f5f..6a2f19c48f0b 100644 --- a/.github/package-lock.json +++ b/.github/package-lock.json @@ -96,9 +96,9 @@ } }, "node_modules/@actions/github-script/node_modules/@types/node": { - "version": "24.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", - "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", + "version": "24.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.4.tgz", + "integrity": "sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==", "dev": true, "license": "MIT", "dependencies": { @@ -238,9 +238,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.1.tgz", + "integrity": "sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==", "cpu": [ "ppc64" ], @@ -255,9 +255,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.1.tgz", + "integrity": "sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==", "cpu": [ "arm" ], @@ -272,9 +272,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.1.tgz", + "integrity": "sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==", "cpu": [ "arm64" ], @@ -289,9 +289,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.1.tgz", + "integrity": "sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==", "cpu": [ "x64" ], @@ -306,9 +306,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.1.tgz", + "integrity": "sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==", "cpu": [ "arm64" ], @@ -323,9 +323,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.1.tgz", + "integrity": "sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==", "cpu": [ "x64" ], @@ -340,9 +340,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.1.tgz", + "integrity": "sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==", "cpu": [ "arm64" ], @@ -357,9 +357,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.1.tgz", + "integrity": "sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==", "cpu": [ "x64" ], @@ -374,9 +374,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.1.tgz", + "integrity": "sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==", "cpu": [ "arm" ], @@ -391,9 +391,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.1.tgz", + "integrity": "sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==", "cpu": [ "arm64" ], @@ -408,9 +408,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.1.tgz", + "integrity": "sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==", "cpu": [ "ia32" ], @@ -425,9 +425,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.1.tgz", + "integrity": "sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==", "cpu": [ "loong64" ], @@ -442,9 +442,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.1.tgz", + "integrity": "sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==", "cpu": [ "mips64el" ], @@ -459,9 +459,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.1.tgz", + "integrity": "sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==", "cpu": [ "ppc64" ], @@ -476,9 +476,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.1.tgz", + "integrity": "sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==", "cpu": [ "riscv64" ], @@ -493,9 +493,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.1.tgz", + "integrity": "sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==", "cpu": [ "s390x" ], @@ -510,9 +510,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.1.tgz", + "integrity": "sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==", "cpu": [ "x64" ], @@ -527,9 +527,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.1.tgz", + "integrity": "sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==", "cpu": [ "arm64" ], @@ -544,9 +544,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.1.tgz", + "integrity": "sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==", "cpu": [ "x64" ], @@ -561,9 +561,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.1.tgz", + "integrity": "sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==", "cpu": [ "arm64" ], @@ -578,9 +578,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.1.tgz", + "integrity": "sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==", "cpu": [ "x64" ], @@ -595,9 +595,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.1.tgz", + "integrity": "sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==", "cpu": [ "arm64" ], @@ -612,9 +612,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.1.tgz", + "integrity": "sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==", "cpu": [ "x64" ], @@ -629,9 +629,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.1.tgz", + "integrity": "sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==", "cpu": [ "arm64" ], @@ -646,9 +646,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.1.tgz", + "integrity": "sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==", "cpu": [ "ia32" ], @@ -663,9 +663,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.1.tgz", + "integrity": "sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==", "cpu": [ "x64" ], @@ -763,9 +763,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", "dev": true, "license": "MIT", "dependencies": { @@ -775,7 +775,7 @@ "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", + "js-yaml": "^4.1.1", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, @@ -800,9 +800,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", - "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", "dev": true, "license": "MIT", "engines": { @@ -1459,9 +1459,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", - "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.4.tgz", + "integrity": "sha512-PWU3Y92H4DD0bOqorEPp1Y0tbzwAurFmIYpjcObv5axGVOtcTlB0b2UKMd2echo08MgN7jO8WQZSSysvfisFSQ==", "cpu": [ "arm" ], @@ -1473,9 +1473,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", - "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.4.tgz", + "integrity": "sha512-Gw0/DuVm3rGsqhMGYkSOXXIx20cC3kTlivZeuaGt4gEgILivykNyBWxeUV5Cf2tDA2nPLah26vq3emlRrWVbng==", "cpu": [ "arm64" ], @@ -1487,9 +1487,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", - "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.4.tgz", + "integrity": "sha512-+w06QvXsgzKwdVg5qRLZpTHh1bigHZIqoIUPtiqh05ZiJVUQ6ymOxaPkXTvRPRLH88575ZCRSRM3PwIoNma01Q==", "cpu": [ "arm64" ], @@ -1501,9 +1501,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", - "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.4.tgz", + "integrity": "sha512-EB4Na9G2GsrRNRNFPuxfwvDRDUwQEzJPpiK1vo2zMVhEeufZ1k7J1bKnT0JYDfnPC7RNZ2H5YNQhW6/p2QKATw==", "cpu": [ "x64" ], @@ -1515,9 +1515,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", - "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.4.tgz", + "integrity": "sha512-bldA8XEqPcs6OYdknoTMaGhjytnwQ0NClSPpWpmufOuGPN5dDmvIa32FygC2gneKK4A1oSx86V1l55hyUWUYFQ==", "cpu": [ "arm64" ], @@ -1529,9 +1529,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", - "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.4.tgz", + "integrity": "sha512-3T8GPjH6mixCd0YPn0bXtcuSXi1Lj+15Ujw2CEb7dd24j9thcKscCf88IV7n76WaAdorOzAgSSbuVRg4C8V8Qw==", "cpu": [ "x64" ], @@ -1543,9 +1543,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", - "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.4.tgz", + "integrity": "sha512-UPMMNeC4LXW7ZSHxeP3Edv09aLsFUMaD1TSVW6n1CWMECnUIJMFFB7+XC2lZTdPtvB36tYC0cJWc86mzSsaviw==", "cpu": [ "arm" ], @@ -1557,9 +1557,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", - "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.4.tgz", + "integrity": "sha512-H8uwlV0otHs5Q7WAMSoyvjV9DJPiy5nJ/xnHolY0QptLPjaSsuX7tw+SPIfiYH6cnVx3fe4EWFafo6gH6ekZKA==", "cpu": [ "arm" ], @@ -1571,9 +1571,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", - "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.4.tgz", + "integrity": "sha512-BLRwSRwICXz0TXkbIbqJ1ibK+/dSBpTJqDClF61GWIrxTXZWQE78ROeIhgl5MjVs4B4gSLPCFeD4xML9vbzvCQ==", "cpu": [ "arm64" ], @@ -1585,9 +1585,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", - "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.4.tgz", + "integrity": "sha512-6bySEjOTbmVcPJAywjpGLckK793A0TJWSbIa0sVwtVGfe/Nz6gOWHOwkshUIAp9j7wg2WKcA4Snu7Y1nUZyQew==", "cpu": [ "arm64" ], @@ -1599,9 +1599,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", - "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.4.tgz", + "integrity": "sha512-U0ow3bXYJZ5MIbchVusxEycBw7bO6C2u5UvD31i5IMTrnt2p4Fh4ZbHSdc/31TScIJQYHwxbj05BpevB3201ug==", "cpu": [ "loong64" ], @@ -1613,9 +1613,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", - "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.4.tgz", + "integrity": "sha512-iujDk07ZNwGLVn0YIWM80SFN039bHZHCdCCuX9nyx3Jsa2d9V/0Y32F+YadzwbvDxhSeVo9zefkoPnXEImnM5w==", "cpu": [ "ppc64" ], @@ -1627,9 +1627,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", - "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.4.tgz", + "integrity": "sha512-MUtAktiOUSu+AXBpx1fkuG/Bi5rhlorGs3lw5QeJ2X3ziEGAq7vFNdWVde6XGaVqi0LGSvugwjoxSNJfHFTC0g==", "cpu": [ "riscv64" ], @@ -1641,9 +1641,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", - "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.4.tgz", + "integrity": "sha512-btm35eAbDfPtcFEgaXCI5l3c2WXyzwiE8pArhd66SDtoLWmgK5/M7CUxmUglkwtniPzwvWioBKKl6IXLbPf2sQ==", "cpu": [ "riscv64" ], @@ -1655,9 +1655,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", - "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.4.tgz", + "integrity": "sha512-uJlhKE9ccUTCUlK+HUz/80cVtx2RayadC5ldDrrDUFaJK0SNb8/cCmC9RhBhIWuZ71Nqj4Uoa9+xljKWRogdhA==", "cpu": [ "s390x" ], @@ -1669,9 +1669,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", - "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.4.tgz", + "integrity": "sha512-jjEMkzvASQBbzzlzf4os7nzSBd/cvPrpqXCUOqoeCh1dQ4BP3RZCJk8XBeik4MUln3m+8LeTJcY54C/u8wb3DQ==", "cpu": [ "x64" ], @@ -1683,9 +1683,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", - "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.4.tgz", + "integrity": "sha512-lu90KG06NNH19shC5rBPkrh6mrTpq5kviFylPBXQVpdEu0yzb0mDgyxLr6XdcGdBIQTH/UAhDJnL+APZTBu1aQ==", "cpu": [ "x64" ], @@ -1697,9 +1697,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", - "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.4.tgz", + "integrity": "sha512-dFDcmLwsUzhAm/dn0+dMOQZoONVYBtgik0VuY/d5IJUUb787L3Ko/ibvTvddqhb3RaB7vFEozYevHN4ox22R/w==", "cpu": [ "arm64" ], @@ -1711,9 +1711,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", - "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.4.tgz", + "integrity": "sha512-WvUpUAWmUxZKtRnQWpRKnLW2DEO8HB/l8z6oFFMNuHndMzFTJEXzaYJ5ZAmzNw0L21QQJZsUQFt2oPf3ykAD/w==", "cpu": [ "arm64" ], @@ -1725,9 +1725,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", - "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.4.tgz", + "integrity": "sha512-JGbeF2/FDU0x2OLySw/jgvkwWUo05BSiJK0dtuI4LyuXbz3wKiC1xHhLB1Tqm5VU6ZZDmAorj45r/IgWNWku5g==", "cpu": [ "ia32" ], @@ -1739,9 +1739,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", - "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.4.tgz", + "integrity": "sha512-zuuC7AyxLWLubP+mlUwEyR8M1ixW1ERNPHJfXm8x7eQNP4Pzkd7hS3qBuKBR70VRiQ04Kw8FNfRMF5TNxuZq2g==", "cpu": [ "x64" ], @@ -1753,9 +1753,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", - "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.4.tgz", + "integrity": "sha512-Sbx45u/Lbb5RyptSbX7/3deP+/lzEmZ0BTSHxwxN/IMOZDZf8S0AGo0hJD5n/LQssxb5Z3B4og4P2X6Dd8acCA==", "cpu": [ "x64" ], @@ -1831,9 +1831,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.19.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.25.tgz", - "integrity": "sha512-ZsJzA5thDQMSQO788d7IocwwQbI8B5OPzmqNvpf3NY/+MHDAS759Wo0gd2WQeXYt5AAAQjzcrTVC6SKCuYgoCQ==", + "version": "20.19.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.27.tgz", + "integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==", "dev": true, "license": "MIT", "peer": true, @@ -1849,18 +1849,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.1.tgz", - "integrity": "sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.50.0.tgz", + "integrity": "sha512-O7QnmOXYKVtPrfYzMolrCTfkezCJS9+ljLdKW/+DCvRsc3UAz+sbH6Xcsv7p30+0OwUbeWfUDAQE0vpabZ3QLg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.48.1", - "@typescript-eslint/type-utils": "8.48.1", - "@typescript-eslint/utils": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", - "graphemer": "^1.4.0", + "@typescript-eslint/scope-manager": "8.50.0", + "@typescript-eslint/type-utils": "8.50.0", + "@typescript-eslint/utils": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" @@ -1873,7 +1872,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.48.1", + "@typescript-eslint/parser": "^8.50.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -1889,17 +1888,17 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.48.1.tgz", - "integrity": "sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.50.0.tgz", + "integrity": "sha512-6/cmF2piao+f6wSxUsJLZjck7OQsYyRtcOZS02k7XINSNlz93v6emM8WutDQSXnroG2xwYlEVHJI+cPA7CPM3Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", + "@typescript-eslint/scope-manager": "8.50.0", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0", "debug": "^4.3.4" }, "engines": { @@ -1915,14 +1914,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.1.tgz", - "integrity": "sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.50.0.tgz", + "integrity": "sha512-Cg/nQcL1BcoTijEWyx4mkVC56r8dj44bFDvBdygifuS20f3OZCHmFbjF34DPSi07kwlFvqfv/xOLnJ5DquxSGQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.48.1", - "@typescript-eslint/types": "^8.48.1", + "@typescript-eslint/tsconfig-utils": "^8.50.0", + "@typescript-eslint/types": "^8.50.0", "debug": "^4.3.4" }, "engines": { @@ -1937,14 +1936,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.1.tgz", - "integrity": "sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.50.0.tgz", + "integrity": "sha512-xCwfuCZjhIqy7+HKxBLrDVT5q/iq7XBVBXLn57RTIIpelLtEIZHXAF/Upa3+gaCpeV1NNS5Z9A+ID6jn50VD4A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1" + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1955,9 +1954,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.1.tgz", - "integrity": "sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.50.0.tgz", + "integrity": "sha512-vxd3G/ybKTSlm31MOA96gqvrRGv9RJ7LGtZCn2Vrc5htA0zCDvcMqUkifcjrWNNKXHUU3WCkYOzzVSFBd0wa2w==", "dev": true, "license": "MIT", "engines": { @@ -1972,15 +1971,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.48.1.tgz", - "integrity": "sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.50.0.tgz", + "integrity": "sha512-7OciHT2lKCewR0mFoBrvZJ4AXTMe/sYOe87289WAViOocEmDjjv8MvIOT2XESuKj9jp8u3SZYUSh89QA4S1kQw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1", - "@typescript-eslint/utils": "8.48.1", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0", + "@typescript-eslint/utils": "8.50.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -1997,9 +1996,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.1.tgz", - "integrity": "sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.50.0.tgz", + "integrity": "sha512-iX1mgmGrXdANhhITbpp2QQM2fGehBse9LbTf0sidWK6yg/NE+uhV5dfU1g6EYPlcReYmkE9QLPq/2irKAmtS9w==", "dev": true, "license": "MIT", "engines": { @@ -2011,16 +2010,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.1.tgz", - "integrity": "sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.50.0.tgz", + "integrity": "sha512-W7SVAGBR/IX7zm1t70Yujpbk+zdPq/u4soeFSknWFdXIFuWsBGBOUu/Tn/I6KHSKvSh91OiMuaSnYp3mtPt5IQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.48.1", - "@typescript-eslint/tsconfig-utils": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", + "@typescript-eslint/project-service": "8.50.0", + "@typescript-eslint/tsconfig-utils": "8.50.0", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0", "debug": "^4.3.4", "minimatch": "^9.0.4", "semver": "^7.6.0", @@ -2065,16 +2064,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.1.tgz", - "integrity": "sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.50.0.tgz", + "integrity": "sha512-87KgUXET09CRjGCi2Ejxy3PULXna63/bMYv72tCAlDJC3Yqwln0HiFJ3VJMst2+mEtNtZu5oFvX4qJGjKsnAgg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1" + "@typescript-eslint/scope-manager": "8.50.0", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2089,13 +2088,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.1.tgz", - "integrity": "sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.50.0.tgz", + "integrity": "sha512-Xzmnb58+Db78gT/CCj/PVCvK+zxbnsw6F+O1oheYszJbBSdEjVhQi3C/Xttzxgi/GLmpvOggRs1RFpiJ8+c34Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.1", + "@typescript-eslint/types": "8.50.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -2572,9 +2571,9 @@ "license": "MIT" }, "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.1.tgz", + "integrity": "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2585,32 +2584,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "@esbuild/aix-ppc64": "0.27.1", + "@esbuild/android-arm": "0.27.1", + "@esbuild/android-arm64": "0.27.1", + "@esbuild/android-x64": "0.27.1", + "@esbuild/darwin-arm64": "0.27.1", + "@esbuild/darwin-x64": "0.27.1", + "@esbuild/freebsd-arm64": "0.27.1", + "@esbuild/freebsd-x64": "0.27.1", + "@esbuild/linux-arm": "0.27.1", + "@esbuild/linux-arm64": "0.27.1", + "@esbuild/linux-ia32": "0.27.1", + "@esbuild/linux-loong64": "0.27.1", + "@esbuild/linux-mips64el": "0.27.1", + "@esbuild/linux-ppc64": "0.27.1", + "@esbuild/linux-riscv64": "0.27.1", + "@esbuild/linux-s390x": "0.27.1", + "@esbuild/linux-x64": "0.27.1", + "@esbuild/netbsd-arm64": "0.27.1", + "@esbuild/netbsd-x64": "0.27.1", + "@esbuild/openbsd-arm64": "0.27.1", + "@esbuild/openbsd-x64": "0.27.1", + "@esbuild/openharmony-arm64": "0.27.1", + "@esbuild/sunos-x64": "0.27.1", + "@esbuild/win32-arm64": "0.27.1", + "@esbuild/win32-ia32": "0.27.1", + "@esbuild/win32-x64": "0.27.1" } }, "node_modules/escape-string-regexp": { @@ -2627,9 +2626,9 @@ } }, "node_modules/eslint": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", - "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", "peer": true, @@ -2640,7 +2639,7 @@ "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.1", + "@eslint/js": "9.39.2", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -2792,9 +2791,9 @@ } }, "node_modules/expect-type": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", - "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3020,13 +3019,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3656,9 +3648,9 @@ } }, "node_modules/rollup": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", - "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.4.tgz", + "integrity": "sha512-YpXaaArg0MvrnJpvduEDYIp7uGOqKXbH9NsHGQ6SxKCOsNAjZF018MmxefFUulVP2KLtiGw1UvZbr+/ekjvlDg==", "dev": true, "license": "MIT", "dependencies": { @@ -3672,28 +3664,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.53.3", - "@rollup/rollup-android-arm64": "4.53.3", - "@rollup/rollup-darwin-arm64": "4.53.3", - "@rollup/rollup-darwin-x64": "4.53.3", - "@rollup/rollup-freebsd-arm64": "4.53.3", - "@rollup/rollup-freebsd-x64": "4.53.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", - "@rollup/rollup-linux-arm-musleabihf": "4.53.3", - "@rollup/rollup-linux-arm64-gnu": "4.53.3", - "@rollup/rollup-linux-arm64-musl": "4.53.3", - "@rollup/rollup-linux-loong64-gnu": "4.53.3", - "@rollup/rollup-linux-ppc64-gnu": "4.53.3", - "@rollup/rollup-linux-riscv64-gnu": "4.53.3", - "@rollup/rollup-linux-riscv64-musl": "4.53.3", - "@rollup/rollup-linux-s390x-gnu": "4.53.3", - "@rollup/rollup-linux-x64-gnu": "4.53.3", - "@rollup/rollup-linux-x64-musl": "4.53.3", - "@rollup/rollup-openharmony-arm64": "4.53.3", - "@rollup/rollup-win32-arm64-msvc": "4.53.3", - "@rollup/rollup-win32-ia32-msvc": "4.53.3", - "@rollup/rollup-win32-x64-gnu": "4.53.3", - "@rollup/rollup-win32-x64-msvc": "4.53.3", + "@rollup/rollup-android-arm-eabi": "4.53.4", + "@rollup/rollup-android-arm64": "4.53.4", + "@rollup/rollup-darwin-arm64": "4.53.4", + "@rollup/rollup-darwin-x64": "4.53.4", + "@rollup/rollup-freebsd-arm64": "4.53.4", + "@rollup/rollup-freebsd-x64": "4.53.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.4", + "@rollup/rollup-linux-arm-musleabihf": "4.53.4", + "@rollup/rollup-linux-arm64-gnu": "4.53.4", + "@rollup/rollup-linux-arm64-musl": "4.53.4", + "@rollup/rollup-linux-loong64-gnu": "4.53.4", + "@rollup/rollup-linux-ppc64-gnu": "4.53.4", + "@rollup/rollup-linux-riscv64-gnu": "4.53.4", + "@rollup/rollup-linux-riscv64-musl": "4.53.4", + "@rollup/rollup-linux-s390x-gnu": "4.53.4", + "@rollup/rollup-linux-x64-gnu": "4.53.4", + "@rollup/rollup-linux-x64-musl": "4.53.4", + "@rollup/rollup-openharmony-arm64": "4.53.4", + "@rollup/rollup-win32-arm64-msvc": "4.53.4", + "@rollup/rollup-win32-ia32-msvc": "4.53.4", + "@rollup/rollup-win32-x64-gnu": "4.53.4", + "@rollup/rollup-win32-x64-msvc": "4.53.4", "fsevents": "~2.3.2" } }, @@ -4089,16 +4081,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.48.1.tgz", - "integrity": "sha512-FbOKN1fqNoXp1hIl5KYpObVrp0mCn+CLgn479nmu2IsRMrx2vyv74MmsBLVlhg8qVwNFGbXSp8fh1zp8pEoC2A==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.50.0.tgz", + "integrity": "sha512-Q1/6yNUmCpH94fbgMUMg2/BSAr/6U7GBk61kZTv1/asghQOWOjTlp9K8mixS5NcJmm2creY+UFfGeW/+OcA64A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.48.1", - "@typescript-eslint/parser": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1", - "@typescript-eslint/utils": "8.48.1" + "@typescript-eslint/eslint-plugin": "8.50.0", + "@typescript-eslint/parser": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0", + "@typescript-eslint/utils": "8.50.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4150,14 +4142,13 @@ } }, "node_modules/vite": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.4.tgz", - "integrity": "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", + "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "esbuild": "^0.25.0", + "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", @@ -4481,9 +4472,9 @@ } }, "node_modules/zod": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.13.tgz", - "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.2.0.tgz", + "integrity": "sha512-Bd5fw9wlIhtqCCxotZgdTOMwGm1a0u75wARVEY9HMs1X17trvA/lMi4+MGK5EUfYkXVTbX8UDiDKW4OgzHVUZw==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/.github/shared/package-lock.json b/.github/shared/package-lock.json index 362687d39a11..0961d6bd15f1 100644 --- a/.github/shared/package-lock.json +++ b/.github/shared/package-lock.json @@ -132,9 +132,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.1.tgz", + "integrity": "sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==", "cpu": [ "ppc64" ], @@ -149,9 +149,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.1.tgz", + "integrity": "sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==", "cpu": [ "arm" ], @@ -166,9 +166,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.1.tgz", + "integrity": "sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==", "cpu": [ "arm64" ], @@ -183,9 +183,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.1.tgz", + "integrity": "sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==", "cpu": [ "x64" ], @@ -200,9 +200,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.1.tgz", + "integrity": "sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==", "cpu": [ "arm64" ], @@ -217,9 +217,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.1.tgz", + "integrity": "sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==", "cpu": [ "x64" ], @@ -234,9 +234,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.1.tgz", + "integrity": "sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==", "cpu": [ "arm64" ], @@ -251,9 +251,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.1.tgz", + "integrity": "sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==", "cpu": [ "x64" ], @@ -268,9 +268,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.1.tgz", + "integrity": "sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==", "cpu": [ "arm" ], @@ -285,9 +285,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.1.tgz", + "integrity": "sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==", "cpu": [ "arm64" ], @@ -302,9 +302,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.1.tgz", + "integrity": "sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==", "cpu": [ "ia32" ], @@ -319,9 +319,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.1.tgz", + "integrity": "sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==", "cpu": [ "loong64" ], @@ -336,9 +336,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.1.tgz", + "integrity": "sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==", "cpu": [ "mips64el" ], @@ -353,9 +353,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.1.tgz", + "integrity": "sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==", "cpu": [ "ppc64" ], @@ -370,9 +370,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.1.tgz", + "integrity": "sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==", "cpu": [ "riscv64" ], @@ -387,9 +387,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.1.tgz", + "integrity": "sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==", "cpu": [ "s390x" ], @@ -404,9 +404,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.1.tgz", + "integrity": "sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==", "cpu": [ "x64" ], @@ -421,9 +421,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.1.tgz", + "integrity": "sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==", "cpu": [ "arm64" ], @@ -438,9 +438,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.1.tgz", + "integrity": "sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==", "cpu": [ "x64" ], @@ -455,9 +455,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.1.tgz", + "integrity": "sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==", "cpu": [ "arm64" ], @@ -472,9 +472,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.1.tgz", + "integrity": "sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==", "cpu": [ "x64" ], @@ -489,9 +489,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.1.tgz", + "integrity": "sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==", "cpu": [ "arm64" ], @@ -506,9 +506,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.1.tgz", + "integrity": "sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==", "cpu": [ "x64" ], @@ -523,9 +523,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.1.tgz", + "integrity": "sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==", "cpu": [ "arm64" ], @@ -540,9 +540,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.1.tgz", + "integrity": "sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==", "cpu": [ "ia32" ], @@ -557,9 +557,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.1.tgz", + "integrity": "sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==", "cpu": [ "x64" ], @@ -657,9 +657,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", "dev": true, "license": "MIT", "dependencies": { @@ -669,7 +669,7 @@ "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", + "js-yaml": "^4.1.1", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, @@ -694,9 +694,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", - "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", "dev": true, "license": "MIT", "engines": { @@ -876,9 +876,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", - "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.4.tgz", + "integrity": "sha512-PWU3Y92H4DD0bOqorEPp1Y0tbzwAurFmIYpjcObv5axGVOtcTlB0b2UKMd2echo08MgN7jO8WQZSSysvfisFSQ==", "cpu": [ "arm" ], @@ -890,9 +890,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", - "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.4.tgz", + "integrity": "sha512-Gw0/DuVm3rGsqhMGYkSOXXIx20cC3kTlivZeuaGt4gEgILivykNyBWxeUV5Cf2tDA2nPLah26vq3emlRrWVbng==", "cpu": [ "arm64" ], @@ -904,9 +904,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", - "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.4.tgz", + "integrity": "sha512-+w06QvXsgzKwdVg5qRLZpTHh1bigHZIqoIUPtiqh05ZiJVUQ6ymOxaPkXTvRPRLH88575ZCRSRM3PwIoNma01Q==", "cpu": [ "arm64" ], @@ -918,9 +918,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", - "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.4.tgz", + "integrity": "sha512-EB4Na9G2GsrRNRNFPuxfwvDRDUwQEzJPpiK1vo2zMVhEeufZ1k7J1bKnT0JYDfnPC7RNZ2H5YNQhW6/p2QKATw==", "cpu": [ "x64" ], @@ -932,9 +932,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", - "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.4.tgz", + "integrity": "sha512-bldA8XEqPcs6OYdknoTMaGhjytnwQ0NClSPpWpmufOuGPN5dDmvIa32FygC2gneKK4A1oSx86V1l55hyUWUYFQ==", "cpu": [ "arm64" ], @@ -946,9 +946,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", - "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.4.tgz", + "integrity": "sha512-3T8GPjH6mixCd0YPn0bXtcuSXi1Lj+15Ujw2CEb7dd24j9thcKscCf88IV7n76WaAdorOzAgSSbuVRg4C8V8Qw==", "cpu": [ "x64" ], @@ -960,9 +960,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", - "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.4.tgz", + "integrity": "sha512-UPMMNeC4LXW7ZSHxeP3Edv09aLsFUMaD1TSVW6n1CWMECnUIJMFFB7+XC2lZTdPtvB36tYC0cJWc86mzSsaviw==", "cpu": [ "arm" ], @@ -974,9 +974,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", - "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.4.tgz", + "integrity": "sha512-H8uwlV0otHs5Q7WAMSoyvjV9DJPiy5nJ/xnHolY0QptLPjaSsuX7tw+SPIfiYH6cnVx3fe4EWFafo6gH6ekZKA==", "cpu": [ "arm" ], @@ -988,9 +988,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", - "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.4.tgz", + "integrity": "sha512-BLRwSRwICXz0TXkbIbqJ1ibK+/dSBpTJqDClF61GWIrxTXZWQE78ROeIhgl5MjVs4B4gSLPCFeD4xML9vbzvCQ==", "cpu": [ "arm64" ], @@ -1002,9 +1002,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", - "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.4.tgz", + "integrity": "sha512-6bySEjOTbmVcPJAywjpGLckK793A0TJWSbIa0sVwtVGfe/Nz6gOWHOwkshUIAp9j7wg2WKcA4Snu7Y1nUZyQew==", "cpu": [ "arm64" ], @@ -1016,9 +1016,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", - "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.4.tgz", + "integrity": "sha512-U0ow3bXYJZ5MIbchVusxEycBw7bO6C2u5UvD31i5IMTrnt2p4Fh4ZbHSdc/31TScIJQYHwxbj05BpevB3201ug==", "cpu": [ "loong64" ], @@ -1030,9 +1030,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", - "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.4.tgz", + "integrity": "sha512-iujDk07ZNwGLVn0YIWM80SFN039bHZHCdCCuX9nyx3Jsa2d9V/0Y32F+YadzwbvDxhSeVo9zefkoPnXEImnM5w==", "cpu": [ "ppc64" ], @@ -1044,9 +1044,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", - "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.4.tgz", + "integrity": "sha512-MUtAktiOUSu+AXBpx1fkuG/Bi5rhlorGs3lw5QeJ2X3ziEGAq7vFNdWVde6XGaVqi0LGSvugwjoxSNJfHFTC0g==", "cpu": [ "riscv64" ], @@ -1058,9 +1058,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", - "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.4.tgz", + "integrity": "sha512-btm35eAbDfPtcFEgaXCI5l3c2WXyzwiE8pArhd66SDtoLWmgK5/M7CUxmUglkwtniPzwvWioBKKl6IXLbPf2sQ==", "cpu": [ "riscv64" ], @@ -1072,9 +1072,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", - "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.4.tgz", + "integrity": "sha512-uJlhKE9ccUTCUlK+HUz/80cVtx2RayadC5ldDrrDUFaJK0SNb8/cCmC9RhBhIWuZ71Nqj4Uoa9+xljKWRogdhA==", "cpu": [ "s390x" ], @@ -1086,9 +1086,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", - "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.4.tgz", + "integrity": "sha512-jjEMkzvASQBbzzlzf4os7nzSBd/cvPrpqXCUOqoeCh1dQ4BP3RZCJk8XBeik4MUln3m+8LeTJcY54C/u8wb3DQ==", "cpu": [ "x64" ], @@ -1100,9 +1100,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", - "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.4.tgz", + "integrity": "sha512-lu90KG06NNH19shC5rBPkrh6mrTpq5kviFylPBXQVpdEu0yzb0mDgyxLr6XdcGdBIQTH/UAhDJnL+APZTBu1aQ==", "cpu": [ "x64" ], @@ -1114,9 +1114,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", - "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.4.tgz", + "integrity": "sha512-dFDcmLwsUzhAm/dn0+dMOQZoONVYBtgik0VuY/d5IJUUb787L3Ko/ibvTvddqhb3RaB7vFEozYevHN4ox22R/w==", "cpu": [ "arm64" ], @@ -1128,9 +1128,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", - "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.4.tgz", + "integrity": "sha512-WvUpUAWmUxZKtRnQWpRKnLW2DEO8HB/l8z6oFFMNuHndMzFTJEXzaYJ5ZAmzNw0L21QQJZsUQFt2oPf3ykAD/w==", "cpu": [ "arm64" ], @@ -1142,9 +1142,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", - "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.4.tgz", + "integrity": "sha512-JGbeF2/FDU0x2OLySw/jgvkwWUo05BSiJK0dtuI4LyuXbz3wKiC1xHhLB1Tqm5VU6ZZDmAorj45r/IgWNWku5g==", "cpu": [ "ia32" ], @@ -1156,9 +1156,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", - "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.4.tgz", + "integrity": "sha512-zuuC7AyxLWLubP+mlUwEyR8M1ixW1ERNPHJfXm8x7eQNP4Pzkd7hS3qBuKBR70VRiQ04Kw8FNfRMF5TNxuZq2g==", "cpu": [ "x64" ], @@ -1170,9 +1170,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", - "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.4.tgz", + "integrity": "sha512-Sbx45u/Lbb5RyptSbX7/3deP+/lzEmZ0BTSHxwxN/IMOZDZf8S0AGo0hJD5n/LQssxb5Z3B4og4P2X6Dd8acCA==", "cpu": [ "x64" ], @@ -1248,9 +1248,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.19.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.25.tgz", - "integrity": "sha512-ZsJzA5thDQMSQO788d7IocwwQbI8B5OPzmqNvpf3NY/+MHDAS759Wo0gd2WQeXYt5AAAQjzcrTVC6SKCuYgoCQ==", + "version": "20.19.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.27.tgz", + "integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==", "dev": true, "license": "MIT", "peer": true, @@ -1266,18 +1266,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.1.tgz", - "integrity": "sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.50.0.tgz", + "integrity": "sha512-O7QnmOXYKVtPrfYzMolrCTfkezCJS9+ljLdKW/+DCvRsc3UAz+sbH6Xcsv7p30+0OwUbeWfUDAQE0vpabZ3QLg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.48.1", - "@typescript-eslint/type-utils": "8.48.1", - "@typescript-eslint/utils": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", - "graphemer": "^1.4.0", + "@typescript-eslint/scope-manager": "8.50.0", + "@typescript-eslint/type-utils": "8.50.0", + "@typescript-eslint/utils": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" @@ -1290,7 +1289,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.48.1", + "@typescript-eslint/parser": "^8.50.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -1306,17 +1305,17 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.48.1.tgz", - "integrity": "sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.50.0.tgz", + "integrity": "sha512-6/cmF2piao+f6wSxUsJLZjck7OQsYyRtcOZS02k7XINSNlz93v6emM8WutDQSXnroG2xwYlEVHJI+cPA7CPM3Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", + "@typescript-eslint/scope-manager": "8.50.0", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0", "debug": "^4.3.4" }, "engines": { @@ -1332,14 +1331,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.1.tgz", - "integrity": "sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.50.0.tgz", + "integrity": "sha512-Cg/nQcL1BcoTijEWyx4mkVC56r8dj44bFDvBdygifuS20f3OZCHmFbjF34DPSi07kwlFvqfv/xOLnJ5DquxSGQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.48.1", - "@typescript-eslint/types": "^8.48.1", + "@typescript-eslint/tsconfig-utils": "^8.50.0", + "@typescript-eslint/types": "^8.50.0", "debug": "^4.3.4" }, "engines": { @@ -1354,14 +1353,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.1.tgz", - "integrity": "sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.50.0.tgz", + "integrity": "sha512-xCwfuCZjhIqy7+HKxBLrDVT5q/iq7XBVBXLn57RTIIpelLtEIZHXAF/Upa3+gaCpeV1NNS5Z9A+ID6jn50VD4A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1" + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1372,9 +1371,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.1.tgz", - "integrity": "sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.50.0.tgz", + "integrity": "sha512-vxd3G/ybKTSlm31MOA96gqvrRGv9RJ7LGtZCn2Vrc5htA0zCDvcMqUkifcjrWNNKXHUU3WCkYOzzVSFBd0wa2w==", "dev": true, "license": "MIT", "engines": { @@ -1389,15 +1388,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.48.1.tgz", - "integrity": "sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.50.0.tgz", + "integrity": "sha512-7OciHT2lKCewR0mFoBrvZJ4AXTMe/sYOe87289WAViOocEmDjjv8MvIOT2XESuKj9jp8u3SZYUSh89QA4S1kQw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1", - "@typescript-eslint/utils": "8.48.1", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0", + "@typescript-eslint/utils": "8.50.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -1414,9 +1413,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.1.tgz", - "integrity": "sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.50.0.tgz", + "integrity": "sha512-iX1mgmGrXdANhhITbpp2QQM2fGehBse9LbTf0sidWK6yg/NE+uhV5dfU1g6EYPlcReYmkE9QLPq/2irKAmtS9w==", "dev": true, "license": "MIT", "engines": { @@ -1428,16 +1427,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.1.tgz", - "integrity": "sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.50.0.tgz", + "integrity": "sha512-W7SVAGBR/IX7zm1t70Yujpbk+zdPq/u4soeFSknWFdXIFuWsBGBOUu/Tn/I6KHSKvSh91OiMuaSnYp3mtPt5IQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.48.1", - "@typescript-eslint/tsconfig-utils": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", + "@typescript-eslint/project-service": "8.50.0", + "@typescript-eslint/tsconfig-utils": "8.50.0", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0", "debug": "^4.3.4", "minimatch": "^9.0.4", "semver": "^7.6.0", @@ -1482,16 +1481,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.1.tgz", - "integrity": "sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.50.0.tgz", + "integrity": "sha512-87KgUXET09CRjGCi2Ejxy3PULXna63/bMYv72tCAlDJC3Yqwln0HiFJ3VJMst2+mEtNtZu5oFvX4qJGjKsnAgg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1" + "@typescript-eslint/scope-manager": "8.50.0", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1506,13 +1505,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.1.tgz", - "integrity": "sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.50.0.tgz", + "integrity": "sha512-Xzmnb58+Db78gT/CCj/PVCvK+zxbnsw6F+O1oheYszJbBSdEjVhQi3C/Xttzxgi/GLmpvOggRs1RFpiJ8+c34Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.1", + "@typescript-eslint/types": "8.50.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -1968,9 +1967,9 @@ "license": "MIT" }, "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.1.tgz", + "integrity": "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1981,32 +1980,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "@esbuild/aix-ppc64": "0.27.1", + "@esbuild/android-arm": "0.27.1", + "@esbuild/android-arm64": "0.27.1", + "@esbuild/android-x64": "0.27.1", + "@esbuild/darwin-arm64": "0.27.1", + "@esbuild/darwin-x64": "0.27.1", + "@esbuild/freebsd-arm64": "0.27.1", + "@esbuild/freebsd-x64": "0.27.1", + "@esbuild/linux-arm": "0.27.1", + "@esbuild/linux-arm64": "0.27.1", + "@esbuild/linux-ia32": "0.27.1", + "@esbuild/linux-loong64": "0.27.1", + "@esbuild/linux-mips64el": "0.27.1", + "@esbuild/linux-ppc64": "0.27.1", + "@esbuild/linux-riscv64": "0.27.1", + "@esbuild/linux-s390x": "0.27.1", + "@esbuild/linux-x64": "0.27.1", + "@esbuild/netbsd-arm64": "0.27.1", + "@esbuild/netbsd-x64": "0.27.1", + "@esbuild/openbsd-arm64": "0.27.1", + "@esbuild/openbsd-x64": "0.27.1", + "@esbuild/openharmony-arm64": "0.27.1", + "@esbuild/sunos-x64": "0.27.1", + "@esbuild/win32-arm64": "0.27.1", + "@esbuild/win32-ia32": "0.27.1", + "@esbuild/win32-x64": "0.27.1" } }, "node_modules/escape-string-regexp": { @@ -2023,9 +2022,9 @@ } }, "node_modules/eslint": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", - "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", "peer": true, @@ -2036,7 +2035,7 @@ "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.1", + "@eslint/js": "9.39.2", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -2188,9 +2187,9 @@ } }, "node_modules/expect-type": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", - "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2392,13 +2391,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3008,9 +3000,9 @@ } }, "node_modules/rollup": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", - "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.4.tgz", + "integrity": "sha512-YpXaaArg0MvrnJpvduEDYIp7uGOqKXbH9NsHGQ6SxKCOsNAjZF018MmxefFUulVP2KLtiGw1UvZbr+/ekjvlDg==", "dev": true, "license": "MIT", "dependencies": { @@ -3024,28 +3016,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.53.3", - "@rollup/rollup-android-arm64": "4.53.3", - "@rollup/rollup-darwin-arm64": "4.53.3", - "@rollup/rollup-darwin-x64": "4.53.3", - "@rollup/rollup-freebsd-arm64": "4.53.3", - "@rollup/rollup-freebsd-x64": "4.53.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", - "@rollup/rollup-linux-arm-musleabihf": "4.53.3", - "@rollup/rollup-linux-arm64-gnu": "4.53.3", - "@rollup/rollup-linux-arm64-musl": "4.53.3", - "@rollup/rollup-linux-loong64-gnu": "4.53.3", - "@rollup/rollup-linux-ppc64-gnu": "4.53.3", - "@rollup/rollup-linux-riscv64-gnu": "4.53.3", - "@rollup/rollup-linux-riscv64-musl": "4.53.3", - "@rollup/rollup-linux-s390x-gnu": "4.53.3", - "@rollup/rollup-linux-x64-gnu": "4.53.3", - "@rollup/rollup-linux-x64-musl": "4.53.3", - "@rollup/rollup-openharmony-arm64": "4.53.3", - "@rollup/rollup-win32-arm64-msvc": "4.53.3", - "@rollup/rollup-win32-ia32-msvc": "4.53.3", - "@rollup/rollup-win32-x64-gnu": "4.53.3", - "@rollup/rollup-win32-x64-msvc": "4.53.3", + "@rollup/rollup-android-arm-eabi": "4.53.4", + "@rollup/rollup-android-arm64": "4.53.4", + "@rollup/rollup-darwin-arm64": "4.53.4", + "@rollup/rollup-darwin-x64": "4.53.4", + "@rollup/rollup-freebsd-arm64": "4.53.4", + "@rollup/rollup-freebsd-x64": "4.53.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.4", + "@rollup/rollup-linux-arm-musleabihf": "4.53.4", + "@rollup/rollup-linux-arm64-gnu": "4.53.4", + "@rollup/rollup-linux-arm64-musl": "4.53.4", + "@rollup/rollup-linux-loong64-gnu": "4.53.4", + "@rollup/rollup-linux-ppc64-gnu": "4.53.4", + "@rollup/rollup-linux-riscv64-gnu": "4.53.4", + "@rollup/rollup-linux-riscv64-musl": "4.53.4", + "@rollup/rollup-linux-s390x-gnu": "4.53.4", + "@rollup/rollup-linux-x64-gnu": "4.53.4", + "@rollup/rollup-linux-x64-musl": "4.53.4", + "@rollup/rollup-openharmony-arm64": "4.53.4", + "@rollup/rollup-win32-arm64-msvc": "4.53.4", + "@rollup/rollup-win32-ia32-msvc": "4.53.4", + "@rollup/rollup-win32-x64-gnu": "4.53.4", + "@rollup/rollup-win32-x64-msvc": "4.53.4", "fsevents": "~2.3.2" } }, @@ -3431,16 +3423,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.48.1.tgz", - "integrity": "sha512-FbOKN1fqNoXp1hIl5KYpObVrp0mCn+CLgn479nmu2IsRMrx2vyv74MmsBLVlhg8qVwNFGbXSp8fh1zp8pEoC2A==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.50.0.tgz", + "integrity": "sha512-Q1/6yNUmCpH94fbgMUMg2/BSAr/6U7GBk61kZTv1/asghQOWOjTlp9K8mixS5NcJmm2creY+UFfGeW/+OcA64A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.48.1", - "@typescript-eslint/parser": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1", - "@typescript-eslint/utils": "8.48.1" + "@typescript-eslint/eslint-plugin": "8.50.0", + "@typescript-eslint/parser": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0", + "@typescript-eslint/utils": "8.50.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3472,14 +3464,13 @@ } }, "node_modules/vite": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.4.tgz", - "integrity": "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", + "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "esbuild": "^0.25.0", + "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", @@ -3796,9 +3787,9 @@ } }, "node_modules/zod": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.13.tgz", - "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.2.0.tgz", + "integrity": "sha512-Bd5fw9wlIhtqCCxotZgdTOMwGm1a0u75wARVEY9HMs1X17trvA/lMi4+MGK5EUfYkXVTbX8UDiDKW4OgzHVUZw==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/package-lock.json b/package-lock.json index 54df7a390938..ae5f474eb689 100644 --- a/package-lock.json +++ b/package-lock.json @@ -184,19 +184,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "eng/tools/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "eng/tools/node_modules/cliui": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", @@ -212,13 +199,6 @@ "node": ">=20" } }, - "eng/tools/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "dev": true, - "license": "MIT" - }, "eng/tools/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -255,24 +235,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "eng/tools/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "eng/tools/node_modules/strip-ansi": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", @@ -296,24 +258,6 @@ "dev": true, "license": "MIT" }, - "eng/tools/node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "eng/tools/node_modules/yargs": { "version": "18.0.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", @@ -928,9 +872,9 @@ "link": true }, "node_modules/@azure-tools/spec-gen-sdk": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@azure-tools/spec-gen-sdk/-/spec-gen-sdk-0.9.3.tgz", - "integrity": "sha512-mGaLiEUnh4vCSX3mFTIFNiRiZKjo6gl0SnfukMoBR+ZdtUBJFEPRAa53Owcji+mhUBHYf0m1khLQkxMjQBW+xw==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@azure-tools/spec-gen-sdk/-/spec-gen-sdk-0.9.4.tgz", + "integrity": "sha512-fanBaHNegeOKshFmnaIFRkzlgfmYcSPjXRTPS6iXggYPNqTkQV8vNfs6TYnRxWsyTEBH1n3M5lOSACGQc/ZiHQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1247,6 +1191,22 @@ "node": ">=8" } }, + "node_modules/@azure/avocado/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@azure/avocado/node_modules/cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -1259,6 +1219,33 @@ "wrap-ansi": "^6.2.0" } }, + "node_modules/@azure/avocado/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@azure/avocado/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@azure/avocado/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, "node_modules/@azure/avocado/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -1315,6 +1302,21 @@ "node": ">=8" } }, + "node_modules/@azure/avocado/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@azure/avocado/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -1328,6 +1330,21 @@ "node": ">=8" } }, + "node_modules/@azure/avocado/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@azure/avocado/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", @@ -1624,6 +1641,22 @@ "node": ">=8" } }, + "node_modules/@azure/oad/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@azure/oad/node_modules/cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -1636,6 +1669,33 @@ "wrap-ansi": "^6.2.0" } }, + "node_modules/@azure/oad/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@azure/oad/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@azure/oad/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, "node_modules/@azure/oad/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -1692,6 +1752,21 @@ "node": ">=8" } }, + "node_modules/@azure/oad/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@azure/oad/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -1705,6 +1780,21 @@ "node": ">=8" } }, + "node_modules/@azure/oad/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@azure/oad/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", @@ -1951,9 +2041,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.1.tgz", + "integrity": "sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==", "cpu": [ "ppc64" ], @@ -1968,9 +2058,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.1.tgz", + "integrity": "sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==", "cpu": [ "arm" ], @@ -1985,9 +2075,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.1.tgz", + "integrity": "sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==", "cpu": [ "arm64" ], @@ -2002,9 +2092,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.1.tgz", + "integrity": "sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==", "cpu": [ "x64" ], @@ -2019,9 +2109,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.1.tgz", + "integrity": "sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==", "cpu": [ "arm64" ], @@ -2036,9 +2126,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.1.tgz", + "integrity": "sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==", "cpu": [ "x64" ], @@ -2053,9 +2143,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.1.tgz", + "integrity": "sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==", "cpu": [ "arm64" ], @@ -2070,9 +2160,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.1.tgz", + "integrity": "sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==", "cpu": [ "x64" ], @@ -2087,9 +2177,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.1.tgz", + "integrity": "sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==", "cpu": [ "arm" ], @@ -2104,9 +2194,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.1.tgz", + "integrity": "sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==", "cpu": [ "arm64" ], @@ -2121,9 +2211,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.1.tgz", + "integrity": "sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==", "cpu": [ "ia32" ], @@ -2138,9 +2228,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.1.tgz", + "integrity": "sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==", "cpu": [ "loong64" ], @@ -2155,9 +2245,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.1.tgz", + "integrity": "sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==", "cpu": [ "mips64el" ], @@ -2172,9 +2262,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.1.tgz", + "integrity": "sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==", "cpu": [ "ppc64" ], @@ -2189,9 +2279,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.1.tgz", + "integrity": "sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==", "cpu": [ "riscv64" ], @@ -2206,9 +2296,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.1.tgz", + "integrity": "sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==", "cpu": [ "s390x" ], @@ -2223,9 +2313,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.1.tgz", + "integrity": "sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==", "cpu": [ "x64" ], @@ -2240,9 +2330,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.1.tgz", + "integrity": "sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==", "cpu": [ "arm64" ], @@ -2257,9 +2347,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.1.tgz", + "integrity": "sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==", "cpu": [ "x64" ], @@ -2274,9 +2364,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.1.tgz", + "integrity": "sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==", "cpu": [ "arm64" ], @@ -2291,9 +2381,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.1.tgz", + "integrity": "sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==", "cpu": [ "x64" ], @@ -2308,9 +2398,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.1.tgz", + "integrity": "sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==", "cpu": [ "arm64" ], @@ -2325,9 +2415,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.1.tgz", + "integrity": "sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==", "cpu": [ "x64" ], @@ -2342,9 +2432,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.1.tgz", + "integrity": "sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==", "cpu": [ "arm64" ], @@ -2359,9 +2449,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.1.tgz", + "integrity": "sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==", "cpu": [ "ia32" ], @@ -2376,9 +2466,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.1.tgz", + "integrity": "sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==", "cpu": [ "x64" ], @@ -2476,9 +2566,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2488,7 +2578,7 @@ "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", + "js-yaml": "^4.1.1", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, @@ -2513,9 +2603,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", - "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", "dev": true, "license": "MIT", "engines": { @@ -2621,14 +2711,14 @@ } }, "node_modules/@inquirer/checkbox": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.0.2.tgz", - "integrity": "sha512-iTPV4tMMct7iOpwer5qmTP7gjnk1VQJjsNfAaC2b8Q3qiuHM3K2yjjDr5u1MKfkrvp2JD4Flf8sIPpF21pmZmw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.0.3.tgz", + "integrity": "sha512-xtQP2eXMFlOcAhZ4ReKP2KZvDIBb1AnCfZ81wWXG3DXLVH0f0g4obE0XDPH+ukAEMRcZT0kdX2AS1jrWGXbpxw==", "dev": true, "license": "MIT", "dependencies": { "@inquirer/ansi": "^2.0.2", - "@inquirer/core": "^11.0.2", + "@inquirer/core": "^11.1.0", "@inquirer/figures": "^2.0.2", "@inquirer/type": "^4.0.2" }, @@ -2645,13 +2735,13 @@ } }, "node_modules/@inquirer/confirm": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.2.tgz", - "integrity": "sha512-A0/13Wyi+8iFeNDX6D4zZYKPoBLIEbE4K/219qHcnpXMer2weWvaTo63+2c7mQPPA206DEMSYVOPnEw3meOlCw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.3.tgz", + "integrity": "sha512-lyEvibDFL+NA5R4xl8FUmNhmu81B+LDL9L/MpKkZlQDJZXzG8InxiqYxiAlQYa9cqLLhYqKLQwZqXmSTqCLjyw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.0.2", + "@inquirer/core": "^11.1.0", "@inquirer/type": "^4.0.2" }, "engines": { @@ -2667,9 +2757,9 @@ } }, "node_modules/@inquirer/core": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.0.2.tgz", - "integrity": "sha512-lgMRx/n02ciiNELBvFLHtmcjbV5tf5D/I0UYfCg2YbTZWmBZ10/niLd3IjWBxz8LtM27xP+4oLEa06Slmb7p7A==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.1.0.tgz", + "integrity": "sha512-+jD/34T1pK8M5QmZD/ENhOfXdl9Zr+BrQAUc5h2anWgi7gggRq15ZbiBeLoObj0TLbdgW7TAIQRU2boMc9uOKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2678,114 +2768,29 @@ "@inquirer/type": "^4.0.2", "cli-width": "^4.1.0", "mute-stream": "^3.0.0", - "signal-exit": "^4.1.0", - "wrap-ansi": "^9.0.2" - }, - "engines": { - "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/core/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@inquirer/core/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@inquirer/core/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@inquirer/core/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@inquirer/core/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@inquirer/core/node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" + "signal-exit": "^4.1.0", + "wrap-ansi": "^9.0.2" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/@inquirer/editor": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.0.2.tgz", - "integrity": "sha512-pXQ4Nf0qmFcJuYB6NlcIIxH6l6zKOwNg1Jh/ZRdKd2dTqBB4OXKUFbFwR2K4LVXVtq15ZFFatBVT+rerYR8hWQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.0.3.tgz", + "integrity": "sha512-wYyQo96TsAqIciP/r5D3cFeV8h4WqKQ/YOvTg5yOfP2sqEbVVpbxPpfV3LM5D0EP4zUI3EZVHyIUIllnoIa8OQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.0.2", + "@inquirer/core": "^11.1.0", "@inquirer/external-editor": "^2.0.2", "@inquirer/type": "^4.0.2" }, @@ -2802,13 +2807,13 @@ } }, "node_modules/@inquirer/expand": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.0.2.tgz", - "integrity": "sha512-siFG1swxfjFIOxIcehtZkh+KUNB/YCpyfHNEGu+nC/SBXIbgUWibvThLn/WesSxLRGOeSKdNKoTm+GQCKFm6Ww==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.0.3.tgz", + "integrity": "sha512-2oINvuL27ujjxd95f6K2K909uZOU2x1WiAl7Wb1X/xOtL8CgQ1kSxzykIr7u4xTkXkXOAkCuF45T588/YKee7w==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.0.2", + "@inquirer/core": "^11.1.0", "@inquirer/type": "^4.0.2" }, "engines": { @@ -2856,13 +2861,13 @@ } }, "node_modules/@inquirer/input": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.0.2.tgz", - "integrity": "sha512-hN2YRo1QiEc9lD3mK+CPnTS4TK2RhCMmMmP4nCWwTkmQL2vx9jPJWYk+rbUZpwR1D583ZJk1FI3i9JZXIpi/qg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.0.3.tgz", + "integrity": "sha512-4R0TdWl53dtp79Vs6Df2OHAtA2FVNqya1hND1f5wjHWxZJxwDMSNB1X5ADZJSsQKYAJ5JHCTO+GpJZ42mK0Otw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.0.2", + "@inquirer/core": "^11.1.0", "@inquirer/type": "^4.0.2" }, "engines": { @@ -2878,13 +2883,13 @@ } }, "node_modules/@inquirer/number": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.0.2.tgz", - "integrity": "sha512-4McnjTSYrlthNW1ojkkmP75WLRYhQs7GXm6pDDoIrHqJuV5uUYwfdbB0geHdaKMarAqJQgoOVjzIT0jdWCsKew==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.0.3.tgz", + "integrity": "sha512-TjQLe93GGo5snRlu83JxE38ZPqj5ZVggL+QqqAF2oBA5JOJoxx25GG3EGH/XN/Os5WOmKfO8iLVdCXQxXRZIMQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.0.2", + "@inquirer/core": "^11.1.0", "@inquirer/type": "^4.0.2" }, "engines": { @@ -2900,14 +2905,14 @@ } }, "node_modules/@inquirer/password": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.0.2.tgz", - "integrity": "sha512-oSDziMKiw4G2e4zS+0JRfxuPFFGh6N/9yUaluMgEHp2/Yyj2JGwfDO7XbwtOrxVrz+XsP/iaGyWXdQb9d8A0+g==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.0.3.tgz", + "integrity": "sha512-rCozGbUMAHedTeYWEN8sgZH4lRCdgG/WinFkit6ZPsp8JaNg2T0g3QslPBS5XbpORyKP/I+xyBO81kFEvhBmjA==", "dev": true, "license": "MIT", "dependencies": { "@inquirer/ansi": "^2.0.2", - "@inquirer/core": "^11.0.2", + "@inquirer/core": "^11.1.0", "@inquirer/type": "^4.0.2" }, "engines": { @@ -2923,22 +2928,22 @@ } }, "node_modules/@inquirer/prompts": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.0.2.tgz", - "integrity": "sha512-2zK5zY48fZcl6+gG4eqOC/UzZsJckHCRvjXoLuW4D8LKOCVGdcJiSKkLnumSZjR/6PXPINDGOrGHqNxb+sxJDg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.1.0.tgz", + "integrity": "sha512-LsZMdKcmRNF5LyTRuZE5nWeOjganzmN3zwbtNfcs6GPh3I2TsTtF1UYZlbxVfhxd+EuUqLGs/Lm3Xt4v6Az1wA==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^5.0.2", - "@inquirer/confirm": "^6.0.2", - "@inquirer/editor": "^5.0.2", - "@inquirer/expand": "^5.0.2", - "@inquirer/input": "^5.0.2", - "@inquirer/number": "^4.0.2", - "@inquirer/password": "^5.0.2", - "@inquirer/rawlist": "^5.0.2", - "@inquirer/search": "^4.0.2", - "@inquirer/select": "^5.0.2" + "@inquirer/checkbox": "^5.0.3", + "@inquirer/confirm": "^6.0.3", + "@inquirer/editor": "^5.0.3", + "@inquirer/expand": "^5.0.3", + "@inquirer/input": "^5.0.3", + "@inquirer/number": "^4.0.3", + "@inquirer/password": "^5.0.3", + "@inquirer/rawlist": "^5.1.0", + "@inquirer/search": "^4.0.3", + "@inquirer/select": "^5.0.3" }, "engines": { "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" @@ -2953,13 +2958,13 @@ } }, "node_modules/@inquirer/rawlist": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.0.2.tgz", - "integrity": "sha512-AcNALEdQKUQDeJcpC1a3YC53m1MLv+sMUS+vRZ8Qigs1Yg3Dcdtmi82rscJplogKOY8CXkKW4wvVwHS2ZjCIBQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.1.0.tgz", + "integrity": "sha512-yUCuVh0jW026Gr2tZlG3kHignxcrLKDR3KBp+eUgNz+BAdSeZk0e18yt2gyBr+giYhj/WSIHCmPDOgp1mT2niQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.0.2", + "@inquirer/core": "^11.1.0", "@inquirer/type": "^4.0.2" }, "engines": { @@ -2975,13 +2980,13 @@ } }, "node_modules/@inquirer/search": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.0.2.tgz", - "integrity": "sha512-hg63w5toohdzE65S3LiGhdfIL0kT+yisbZARf7zw65PvyMUTutTN3eMAvD/B6y/25z88vTrB7kSB45Vz5CbrXg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.0.3.tgz", + "integrity": "sha512-lzqVw0YwuKYetk5VwJ81Ba+dyVlhseHPx9YnRKQgwXdFS0kEavCz2gngnNhnMIxg8+j1N/rUl1t5s1npwa7bqg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^11.0.2", + "@inquirer/core": "^11.1.0", "@inquirer/figures": "^2.0.2", "@inquirer/type": "^4.0.2" }, @@ -2998,14 +3003,14 @@ } }, "node_modules/@inquirer/select": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.0.2.tgz", - "integrity": "sha512-JygTohvQxSNnvt7IKANVlg/eds+yN5sLRilYeGc4ri/9Aqi/2QPoXBMV5Cz/L1VtQv63SnTbPXJZeCK2pSwsOA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.0.3.tgz", + "integrity": "sha512-M+ynbwS0ecQFDYMFrQrybA0qL8DV0snpc4kKevCCNaTpfghsRowRY7SlQBeIYNzHqXtiiz4RG9vTOeb/udew7w==", "dev": true, "license": "MIT", "dependencies": { "@inquirer/ansi": "^2.0.2", - "@inquirer/core": "^11.0.2", + "@inquirer/core": "^11.1.0", "@inquirer/figures": "^2.0.2", "@inquirer/type": "^4.0.2" }, @@ -3047,9 +3052,9 @@ "license": "MIT" }, "node_modules/@inversifyjs/container": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@inversifyjs/container/-/container-1.14.1.tgz", - "integrity": "sha512-OFSlXXFgEk2zSV4ZCapJeVc0jtN+DxiXB1Szz2AManOFEhFc9uiUFBUJ8XxOy4SuIAYPNNLW55F6owm/birqvg==", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@inversifyjs/container/-/container-1.14.3.tgz", + "integrity": "sha512-dt9JwumXFpIQx2hbsCouDLdZ6sVMvkdUcwyM8hugRbXMCxSJ3nDd2pjdE4MGWyfWP/61zDiAXCiff+2jVrhcmw==", "dev": true, "license": "MIT", "dependencies": { @@ -3155,19 +3160,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -3791,9 +3783,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", - "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.4.tgz", + "integrity": "sha512-PWU3Y92H4DD0bOqorEPp1Y0tbzwAurFmIYpjcObv5axGVOtcTlB0b2UKMd2echo08MgN7jO8WQZSSysvfisFSQ==", "cpu": [ "arm" ], @@ -3805,9 +3797,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", - "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.4.tgz", + "integrity": "sha512-Gw0/DuVm3rGsqhMGYkSOXXIx20cC3kTlivZeuaGt4gEgILivykNyBWxeUV5Cf2tDA2nPLah26vq3emlRrWVbng==", "cpu": [ "arm64" ], @@ -3819,9 +3811,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", - "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.4.tgz", + "integrity": "sha512-+w06QvXsgzKwdVg5qRLZpTHh1bigHZIqoIUPtiqh05ZiJVUQ6ymOxaPkXTvRPRLH88575ZCRSRM3PwIoNma01Q==", "cpu": [ "arm64" ], @@ -3833,9 +3825,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", - "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.4.tgz", + "integrity": "sha512-EB4Na9G2GsrRNRNFPuxfwvDRDUwQEzJPpiK1vo2zMVhEeufZ1k7J1bKnT0JYDfnPC7RNZ2H5YNQhW6/p2QKATw==", "cpu": [ "x64" ], @@ -3847,9 +3839,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", - "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.4.tgz", + "integrity": "sha512-bldA8XEqPcs6OYdknoTMaGhjytnwQ0NClSPpWpmufOuGPN5dDmvIa32FygC2gneKK4A1oSx86V1l55hyUWUYFQ==", "cpu": [ "arm64" ], @@ -3861,9 +3853,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", - "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.4.tgz", + "integrity": "sha512-3T8GPjH6mixCd0YPn0bXtcuSXi1Lj+15Ujw2CEb7dd24j9thcKscCf88IV7n76WaAdorOzAgSSbuVRg4C8V8Qw==", "cpu": [ "x64" ], @@ -3875,9 +3867,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", - "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.4.tgz", + "integrity": "sha512-UPMMNeC4LXW7ZSHxeP3Edv09aLsFUMaD1TSVW6n1CWMECnUIJMFFB7+XC2lZTdPtvB36tYC0cJWc86mzSsaviw==", "cpu": [ "arm" ], @@ -3889,9 +3881,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", - "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.4.tgz", + "integrity": "sha512-H8uwlV0otHs5Q7WAMSoyvjV9DJPiy5nJ/xnHolY0QptLPjaSsuX7tw+SPIfiYH6cnVx3fe4EWFafo6gH6ekZKA==", "cpu": [ "arm" ], @@ -3903,9 +3895,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", - "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.4.tgz", + "integrity": "sha512-BLRwSRwICXz0TXkbIbqJ1ibK+/dSBpTJqDClF61GWIrxTXZWQE78ROeIhgl5MjVs4B4gSLPCFeD4xML9vbzvCQ==", "cpu": [ "arm64" ], @@ -3917,9 +3909,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", - "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.4.tgz", + "integrity": "sha512-6bySEjOTbmVcPJAywjpGLckK793A0TJWSbIa0sVwtVGfe/Nz6gOWHOwkshUIAp9j7wg2WKcA4Snu7Y1nUZyQew==", "cpu": [ "arm64" ], @@ -3931,9 +3923,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", - "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.4.tgz", + "integrity": "sha512-U0ow3bXYJZ5MIbchVusxEycBw7bO6C2u5UvD31i5IMTrnt2p4Fh4ZbHSdc/31TScIJQYHwxbj05BpevB3201ug==", "cpu": [ "loong64" ], @@ -3945,9 +3937,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", - "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.4.tgz", + "integrity": "sha512-iujDk07ZNwGLVn0YIWM80SFN039bHZHCdCCuX9nyx3Jsa2d9V/0Y32F+YadzwbvDxhSeVo9zefkoPnXEImnM5w==", "cpu": [ "ppc64" ], @@ -3959,9 +3951,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", - "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.4.tgz", + "integrity": "sha512-MUtAktiOUSu+AXBpx1fkuG/Bi5rhlorGs3lw5QeJ2X3ziEGAq7vFNdWVde6XGaVqi0LGSvugwjoxSNJfHFTC0g==", "cpu": [ "riscv64" ], @@ -3973,9 +3965,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", - "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.4.tgz", + "integrity": "sha512-btm35eAbDfPtcFEgaXCI5l3c2WXyzwiE8pArhd66SDtoLWmgK5/M7CUxmUglkwtniPzwvWioBKKl6IXLbPf2sQ==", "cpu": [ "riscv64" ], @@ -3987,9 +3979,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", - "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.4.tgz", + "integrity": "sha512-uJlhKE9ccUTCUlK+HUz/80cVtx2RayadC5ldDrrDUFaJK0SNb8/cCmC9RhBhIWuZ71Nqj4Uoa9+xljKWRogdhA==", "cpu": [ "s390x" ], @@ -4001,9 +3993,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", - "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.4.tgz", + "integrity": "sha512-jjEMkzvASQBbzzlzf4os7nzSBd/cvPrpqXCUOqoeCh1dQ4BP3RZCJk8XBeik4MUln3m+8LeTJcY54C/u8wb3DQ==", "cpu": [ "x64" ], @@ -4015,9 +4007,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", - "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.4.tgz", + "integrity": "sha512-lu90KG06NNH19shC5rBPkrh6mrTpq5kviFylPBXQVpdEu0yzb0mDgyxLr6XdcGdBIQTH/UAhDJnL+APZTBu1aQ==", "cpu": [ "x64" ], @@ -4029,9 +4021,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", - "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.4.tgz", + "integrity": "sha512-dFDcmLwsUzhAm/dn0+dMOQZoONVYBtgik0VuY/d5IJUUb787L3Ko/ibvTvddqhb3RaB7vFEozYevHN4ox22R/w==", "cpu": [ "arm64" ], @@ -4043,9 +4035,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", - "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.4.tgz", + "integrity": "sha512-WvUpUAWmUxZKtRnQWpRKnLW2DEO8HB/l8z6oFFMNuHndMzFTJEXzaYJ5ZAmzNw0L21QQJZsUQFt2oPf3ykAD/w==", "cpu": [ "arm64" ], @@ -4057,9 +4049,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", - "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.4.tgz", + "integrity": "sha512-JGbeF2/FDU0x2OLySw/jgvkwWUo05BSiJK0dtuI4LyuXbz3wKiC1xHhLB1Tqm5VU6ZZDmAorj45r/IgWNWku5g==", "cpu": [ "ia32" ], @@ -4071,9 +4063,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", - "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.4.tgz", + "integrity": "sha512-zuuC7AyxLWLubP+mlUwEyR8M1ixW1ERNPHJfXm8x7eQNP4Pzkd7hS3qBuKBR70VRiQ04Kw8FNfRMF5TNxuZq2g==", "cpu": [ "x64" ], @@ -4085,9 +4077,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", - "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.4.tgz", + "integrity": "sha512-Sbx45u/Lbb5RyptSbX7/3deP+/lzEmZ0BTSHxwxN/IMOZDZf8S0AGo0hJD5n/LQssxb5Z3B4og4P2X6Dd8acCA==", "cpu": [ "x64" ], @@ -4099,9 +4091,9 @@ ] }, "node_modules/@scalar/helpers": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@scalar/helpers/-/helpers-0.2.1.tgz", - "integrity": "sha512-w7klkaWwQCKNNe5H2iFHBgW/LEcCY9CCAaSuQTLVWgHrNeM0MuZkmuplI18XJaum+JxPNIu8M2u5usSoZo5+Ew==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@scalar/helpers/-/helpers-0.2.2.tgz", + "integrity": "sha512-oGef7vvtz1KgCy34IaVcbMV99dEXjcGETJtwogT4MU8R7gnYDg6qSTh5200hWAGVO+Ai/6h9rlGVfgeHTzelfg==", "dev": true, "license": "MIT", "engines": { @@ -4109,13 +4101,13 @@ } }, "node_modules/@scalar/json-magic": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@scalar/json-magic/-/json-magic-0.8.5.tgz", - "integrity": "sha512-EshPZbtAwB6ACi3bawiz+gvas84BC1mWNSmVhxK+9runNewME8v5Mhtl6hJXjdivE2GLVc9+ET7xlnywg0FkfQ==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@scalar/json-magic/-/json-magic-0.8.6.tgz", + "integrity": "sha512-alxGHRJXgaefvfv9IISxb11D2y9iVyN+2/1dLBg3jJildkCJCP6yaT5ESC9qB+YOZeuuxIF32gmk+CLwx38YnQ==", "dev": true, "license": "MIT", "dependencies": { - "@scalar/helpers": "0.2.1", + "@scalar/helpers": "0.2.2", "yaml": "^2.8.0" }, "engines": { @@ -4123,13 +4115,13 @@ } }, "node_modules/@scalar/openapi-parser": { - "version": "0.23.6", - "resolved": "https://registry.npmjs.org/@scalar/openapi-parser/-/openapi-parser-0.23.6.tgz", - "integrity": "sha512-YJdnpsMVh+abp2V+ml271ANKwgXMGW/kPg8qbRAEb7wZucsEfQxWT8bFnrUsfVvTuufMJM9c/pJh+v/59Zop9A==", + "version": "0.23.7", + "resolved": "https://registry.npmjs.org/@scalar/openapi-parser/-/openapi-parser-0.23.7.tgz", + "integrity": "sha512-OEuP+RM74YT7S11K9yHwuPq7bUnj+8ywCV5few73FY1szr90y39yGreLPcAmZ+SeC0HPhP4ZGKIhBCeSmuSL6Q==", "dev": true, "license": "MIT", "dependencies": { - "@scalar/json-magic": "0.8.5", + "@scalar/json-magic": "0.8.6", "@scalar/openapi-types": "0.5.3", "@scalar/openapi-upgrader": "0.1.6", "ajv": "^8.17.1", @@ -5135,9 +5127,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.19.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.25.tgz", - "integrity": "sha512-ZsJzA5thDQMSQO788d7IocwwQbI8B5OPzmqNvpf3NY/+MHDAS759Wo0gd2WQeXYt5AAAQjzcrTVC6SKCuYgoCQ==", + "version": "20.19.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.27.tgz", + "integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==", "dev": true, "license": "MIT", "dependencies": { @@ -5201,18 +5193,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.0.tgz", - "integrity": "sha512-XxXP5tL1txl13YFtrECECQYeZjBZad4fyd3cFV4a19LkAY/bIp9fev3US4S5fDVV2JaYFiKAZ/GRTOLer+mbyQ==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.50.0.tgz", + "integrity": "sha512-O7QnmOXYKVtPrfYzMolrCTfkezCJS9+ljLdKW/+DCvRsc3UAz+sbH6Xcsv7p30+0OwUbeWfUDAQE0vpabZ3QLg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.48.0", - "@typescript-eslint/type-utils": "8.48.0", - "@typescript-eslint/utils": "8.48.0", - "@typescript-eslint/visitor-keys": "8.48.0", - "graphemer": "^1.4.0", + "@typescript-eslint/scope-manager": "8.50.0", + "@typescript-eslint/type-utils": "8.50.0", + "@typescript-eslint/utils": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" @@ -5225,7 +5216,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.48.0", + "@typescript-eslint/parser": "^8.50.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -5241,17 +5232,17 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.48.0.tgz", - "integrity": "sha512-jCzKdm/QK0Kg4V4IK/oMlRZlY+QOcdjv89U2NgKHZk1CYTj82/RVSx1mV/0gqCVMJ/DA+Zf/S4NBWNF8GQ+eqQ==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.50.0.tgz", + "integrity": "sha512-6/cmF2piao+f6wSxUsJLZjck7OQsYyRtcOZS02k7XINSNlz93v6emM8WutDQSXnroG2xwYlEVHJI+cPA7CPM3Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.48.0", - "@typescript-eslint/types": "8.48.0", - "@typescript-eslint/typescript-estree": "8.48.0", - "@typescript-eslint/visitor-keys": "8.48.0", + "@typescript-eslint/scope-manager": "8.50.0", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0", "debug": "^4.3.4" }, "engines": { @@ -5267,14 +5258,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.0.tgz", - "integrity": "sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.50.0.tgz", + "integrity": "sha512-Cg/nQcL1BcoTijEWyx4mkVC56r8dj44bFDvBdygifuS20f3OZCHmFbjF34DPSi07kwlFvqfv/xOLnJ5DquxSGQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.48.0", - "@typescript-eslint/types": "^8.48.0", + "@typescript-eslint/tsconfig-utils": "^8.50.0", + "@typescript-eslint/types": "^8.50.0", "debug": "^4.3.4" }, "engines": { @@ -5289,14 +5280,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.0.tgz", - "integrity": "sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.50.0.tgz", + "integrity": "sha512-xCwfuCZjhIqy7+HKxBLrDVT5q/iq7XBVBXLn57RTIIpelLtEIZHXAF/Upa3+gaCpeV1NNS5Z9A+ID6jn50VD4A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.0", - "@typescript-eslint/visitor-keys": "8.48.0" + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5307,9 +5298,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.0.tgz", - "integrity": "sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.50.0.tgz", + "integrity": "sha512-vxd3G/ybKTSlm31MOA96gqvrRGv9RJ7LGtZCn2Vrc5htA0zCDvcMqUkifcjrWNNKXHUU3WCkYOzzVSFBd0wa2w==", "dev": true, "license": "MIT", "engines": { @@ -5324,15 +5315,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.48.0.tgz", - "integrity": "sha512-zbeVaVqeXhhab6QNEKfK96Xyc7UQuoFWERhEnj3mLVnUWrQnv15cJNseUni7f3g557gm0e46LZ6IJ4NJVOgOpw==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.50.0.tgz", + "integrity": "sha512-7OciHT2lKCewR0mFoBrvZJ4AXTMe/sYOe87289WAViOocEmDjjv8MvIOT2XESuKj9jp8u3SZYUSh89QA4S1kQw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.0", - "@typescript-eslint/typescript-estree": "8.48.0", - "@typescript-eslint/utils": "8.48.0", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0", + "@typescript-eslint/utils": "8.50.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -5349,9 +5340,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.0.tgz", - "integrity": "sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.50.0.tgz", + "integrity": "sha512-iX1mgmGrXdANhhITbpp2QQM2fGehBse9LbTf0sidWK6yg/NE+uhV5dfU1g6EYPlcReYmkE9QLPq/2irKAmtS9w==", "dev": true, "license": "MIT", "engines": { @@ -5363,16 +5354,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.0.tgz", - "integrity": "sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.50.0.tgz", + "integrity": "sha512-W7SVAGBR/IX7zm1t70Yujpbk+zdPq/u4soeFSknWFdXIFuWsBGBOUu/Tn/I6KHSKvSh91OiMuaSnYp3mtPt5IQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.48.0", - "@typescript-eslint/tsconfig-utils": "8.48.0", - "@typescript-eslint/types": "8.48.0", - "@typescript-eslint/visitor-keys": "8.48.0", + "@typescript-eslint/project-service": "8.50.0", + "@typescript-eslint/tsconfig-utils": "8.50.0", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/visitor-keys": "8.50.0", "debug": "^4.3.4", "minimatch": "^9.0.4", "semver": "^7.6.0", @@ -5417,16 +5408,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.0.tgz", - "integrity": "sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.50.0.tgz", + "integrity": "sha512-87KgUXET09CRjGCi2Ejxy3PULXna63/bMYv72tCAlDJC3Yqwln0HiFJ3VJMst2+mEtNtZu5oFvX4qJGjKsnAgg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.48.0", - "@typescript-eslint/types": "8.48.0", - "@typescript-eslint/typescript-estree": "8.48.0" + "@typescript-eslint/scope-manager": "8.50.0", + "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5441,13 +5432,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.0.tgz", - "integrity": "sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.50.0.tgz", + "integrity": "sha512-Xzmnb58+Db78gT/CCj/PVCvK+zxbnsw6F+O1oheYszJbBSdEjVhQi3C/Xttzxgi/GLmpvOggRs1RFpiJ8+c34Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/types": "8.50.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -5535,19 +5526,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@typespec/compiler/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@typespec/compiler/node_modules/cliui": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", @@ -5563,13 +5541,6 @@ "node": ">=20" } }, - "node_modules/@typespec/compiler/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "dev": true, - "license": "MIT" - }, "node_modules/@typespec/compiler/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -5593,24 +5564,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/@typespec/compiler/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@typespec/compiler/node_modules/strip-ansi": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", @@ -5627,24 +5580,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@typespec/compiler/node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/@typespec/compiler/node_modules/yargs": { "version": "18.0.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", @@ -6153,41 +6088,18 @@ } }, "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ansi-styles/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ansi-styles/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -6592,6 +6504,64 @@ "node": ">=8" } }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cliui/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -7035,9 +7005,9 @@ "license": "MIT" }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "dev": true, "license": "MIT" }, @@ -7082,9 +7052,9 @@ "license": "MIT" }, "node_modules/es-abstract": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", - "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", + "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", "dev": true, "license": "MIT", "dependencies": { @@ -7248,9 +7218,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.1.tgz", + "integrity": "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -7261,32 +7231,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "@esbuild/aix-ppc64": "0.27.1", + "@esbuild/android-arm": "0.27.1", + "@esbuild/android-arm64": "0.27.1", + "@esbuild/android-x64": "0.27.1", + "@esbuild/darwin-arm64": "0.27.1", + "@esbuild/darwin-x64": "0.27.1", + "@esbuild/freebsd-arm64": "0.27.1", + "@esbuild/freebsd-x64": "0.27.1", + "@esbuild/linux-arm": "0.27.1", + "@esbuild/linux-arm64": "0.27.1", + "@esbuild/linux-ia32": "0.27.1", + "@esbuild/linux-loong64": "0.27.1", + "@esbuild/linux-mips64el": "0.27.1", + "@esbuild/linux-ppc64": "0.27.1", + "@esbuild/linux-riscv64": "0.27.1", + "@esbuild/linux-s390x": "0.27.1", + "@esbuild/linux-x64": "0.27.1", + "@esbuild/netbsd-arm64": "0.27.1", + "@esbuild/netbsd-x64": "0.27.1", + "@esbuild/openbsd-arm64": "0.27.1", + "@esbuild/openbsd-x64": "0.27.1", + "@esbuild/openharmony-arm64": "0.27.1", + "@esbuild/sunos-x64": "0.27.1", + "@esbuild/win32-arm64": "0.27.1", + "@esbuild/win32-ia32": "0.27.1", + "@esbuild/win32-x64": "0.27.1" } }, "node_modules/escalade": { @@ -7313,9 +7283,9 @@ } }, "node_modules/eslint": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", - "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", "peer": true, @@ -7326,7 +7296,7 @@ "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.1", + "@eslint/js": "9.39.2", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -7403,6 +7373,22 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -7420,6 +7406,26 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, "node_modules/espree": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", @@ -7519,9 +7525,9 @@ } }, "node_modules/execa": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.0.tgz", - "integrity": "sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz", + "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==", "dev": true, "license": "MIT", "dependencies": { @@ -7559,9 +7565,9 @@ } }, "node_modules/expect-type": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", - "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -8327,19 +8333,6 @@ "node": ">= 4" } }, - "node_modules/globby/node_modules/unicorn-magic": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", - "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -8360,13 +8353,6 @@ "dev": true, "license": "ISC" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, "node_modules/graphlib": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", @@ -8566,9 +8552,9 @@ } }, "node_modules/iconv-lite": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", - "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.1.tgz", + "integrity": "sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==", "dev": true, "license": "MIT", "dependencies": { @@ -8653,14 +8639,14 @@ } }, "node_modules/inversify": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/inversify/-/inversify-7.10.4.tgz", - "integrity": "sha512-slBB4OeGHNR4yxAz/ChzFrFK9QKtZ+P+Ys0aYMv0nYc05eiB5hk1oqlHhgCZ13tiDj4806tF1LW3NQPcJjmipQ==", + "version": "7.10.6", + "resolved": "https://registry.npmjs.org/inversify/-/inversify-7.10.6.tgz", + "integrity": "sha512-pjJfyS9KS5Q4aIKx2Mc/mPnyxMParygddMY66irM+IIZUv3+Qp9pjEu+rMmUYPxGqaX2QgDIU/pH1t2eb3xodw==", "dev": true, "license": "MIT", "dependencies": { "@inversifyjs/common": "1.5.2", - "@inversifyjs/container": "1.14.1", + "@inversifyjs/container": "1.14.3", "@inversifyjs/core": "9.1.1" } }, @@ -9493,11 +9479,11 @@ "license": "MIT" }, "node_modules/lru-cache": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", - "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { "node": "20 || >=22" } @@ -9584,9 +9570,9 @@ "license": "MIT" }, "node_modules/memfs": { - "version": "4.51.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.51.0.tgz", - "integrity": "sha512-4zngfkVM/GpIhC8YazOsM6E8hoB33NP0BCESPOA6z7qaL6umPJNqkO8CNYaLV2FB2MV6H1O3x2luHHOSqppv+A==", + "version": "4.51.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.51.1.tgz", + "integrity": "sha512-Eyt3XrufitN2ZL9c/uIRMyDwXanLI88h/L3MoWqNY747ha3dMR9dWqp8cRT5ntjZ0U1TNuq4U91ZXK0sMBjYOQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -9877,6 +9863,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm-run-path/node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/oav": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/oav/-/oav-4.0.3.tgz", @@ -9926,6 +9925,22 @@ "node": ">=8" } }, + "node_modules/oav/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/oav/node_modules/cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -9938,6 +9953,33 @@ "wrap-ansi": "^6.2.0" } }, + "node_modules/oav/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/oav/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/oav/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, "node_modules/oav/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -9994,6 +10036,21 @@ "node": ">=8" } }, + "node_modules/oav/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/oav/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -10007,6 +10064,21 @@ "node": ">=8" } }, + "node_modules/oav/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/oav/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", @@ -10650,9 +10722,9 @@ } }, "node_modules/rollup": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", - "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", + "version": "4.53.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.4.tgz", + "integrity": "sha512-YpXaaArg0MvrnJpvduEDYIp7uGOqKXbH9NsHGQ6SxKCOsNAjZF018MmxefFUulVP2KLtiGw1UvZbr+/ekjvlDg==", "dev": true, "license": "MIT", "dependencies": { @@ -10666,28 +10738,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.53.3", - "@rollup/rollup-android-arm64": "4.53.3", - "@rollup/rollup-darwin-arm64": "4.53.3", - "@rollup/rollup-darwin-x64": "4.53.3", - "@rollup/rollup-freebsd-arm64": "4.53.3", - "@rollup/rollup-freebsd-x64": "4.53.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", - "@rollup/rollup-linux-arm-musleabihf": "4.53.3", - "@rollup/rollup-linux-arm64-gnu": "4.53.3", - "@rollup/rollup-linux-arm64-musl": "4.53.3", - "@rollup/rollup-linux-loong64-gnu": "4.53.3", - "@rollup/rollup-linux-ppc64-gnu": "4.53.3", - "@rollup/rollup-linux-riscv64-gnu": "4.53.3", - "@rollup/rollup-linux-riscv64-musl": "4.53.3", - "@rollup/rollup-linux-s390x-gnu": "4.53.3", - "@rollup/rollup-linux-x64-gnu": "4.53.3", - "@rollup/rollup-linux-x64-musl": "4.53.3", - "@rollup/rollup-openharmony-arm64": "4.53.3", - "@rollup/rollup-win32-arm64-msvc": "4.53.3", - "@rollup/rollup-win32-ia32-msvc": "4.53.3", - "@rollup/rollup-win32-x64-gnu": "4.53.3", - "@rollup/rollup-win32-x64-msvc": "4.53.3", + "@rollup/rollup-android-arm-eabi": "4.53.4", + "@rollup/rollup-android-arm64": "4.53.4", + "@rollup/rollup-darwin-arm64": "4.53.4", + "@rollup/rollup-darwin-x64": "4.53.4", + "@rollup/rollup-freebsd-arm64": "4.53.4", + "@rollup/rollup-freebsd-x64": "4.53.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.4", + "@rollup/rollup-linux-arm-musleabihf": "4.53.4", + "@rollup/rollup-linux-arm64-gnu": "4.53.4", + "@rollup/rollup-linux-arm64-musl": "4.53.4", + "@rollup/rollup-linux-loong64-gnu": "4.53.4", + "@rollup/rollup-linux-ppc64-gnu": "4.53.4", + "@rollup/rollup-linux-riscv64-gnu": "4.53.4", + "@rollup/rollup-linux-riscv64-musl": "4.53.4", + "@rollup/rollup-linux-s390x-gnu": "4.53.4", + "@rollup/rollup-linux-x64-gnu": "4.53.4", + "@rollup/rollup-linux-x64-musl": "4.53.4", + "@rollup/rollup-openharmony-arm64": "4.53.4", + "@rollup/rollup-win32-arm64-msvc": "4.53.4", + "@rollup/rollup-win32-ia32-msvc": "4.53.4", + "@rollup/rollup-win32-x64-gnu": "4.53.4", + "@rollup/rollup-win32-x64-msvc": "4.53.4", "fsevents": "~2.3.2" } }, @@ -11136,18 +11208,21 @@ "license": "MIT" }, "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { @@ -11176,6 +11251,13 @@ "node": ">=8" } }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -11190,26 +11272,32 @@ } }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/string.prototype.matchall": { @@ -11872,16 +11960,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.48.0.tgz", - "integrity": "sha512-fcKOvQD9GUn3Xw63EgiDqhvWJ5jsyZUaekl3KVpGsDJnN46WJTe3jWxtQP9lMZm1LJNkFLlTaWAxK2vUQR+cqw==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.50.0.tgz", + "integrity": "sha512-Q1/6yNUmCpH94fbgMUMg2/BSAr/6U7GBk61kZTv1/asghQOWOjTlp9K8mixS5NcJmm2creY+UFfGeW/+OcA64A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.48.0", - "@typescript-eslint/parser": "8.48.0", - "@typescript-eslint/typescript-estree": "8.48.0", - "@typescript-eslint/utils": "8.48.0" + "@typescript-eslint/eslint-plugin": "8.50.0", + "@typescript-eslint/parser": "8.50.0", + "@typescript-eslint/typescript-estree": "8.50.0", + "@typescript-eslint/utils": "8.50.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11936,13 +12024,13 @@ "license": "MIT" }, "node_modules/unicorn-magic": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", - "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", + "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -12020,14 +12108,13 @@ } }, "node_modules/vite": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.4.tgz", - "integrity": "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", + "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "esbuild": "^0.25.0", + "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", @@ -12450,9 +12537,9 @@ } }, "node_modules/winston": { - "version": "3.18.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.18.3.tgz", - "integrity": "sha512-NoBZauFNNWENgsnC9YpgyYwOVrl2m58PpQ8lNHjV3kosGs7KJ7Npk9pCUE+WJlawVSe8mykWDKWFSVfs3QO9ww==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.19.0.tgz", + "integrity": "sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==", "dev": true, "license": "MIT", "dependencies": { @@ -12565,18 +12652,21 @@ "license": "MIT" }, "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi-cjs": { @@ -12608,6 +12698,64 @@ "node": ">=8" } }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -12622,26 +12770,32 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/wrappy": { @@ -12706,9 +12860,9 @@ } }, "node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "dev": true, "license": "ISC", "bin": { @@ -12716,6 +12870,9 @@ }, "engines": { "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yargs": { @@ -12747,6 +12904,51 @@ "node": ">=12" } }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -12774,9 +12976,9 @@ } }, "node_modules/zod": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.13.tgz", - "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.2.0.tgz", + "integrity": "sha512-Bd5fw9wlIhtqCCxotZgdTOMwGm1a0u75wARVEY9HMs1X17trvA/lMi4+MGK5EUfYkXVTbX8UDiDKW4OgzHVUZw==", "dev": true, "license": "MIT", "funding": { From 0f5563c3f9187f98aba9a6a81fa2eb3459d26b2c Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Wed, 17 Dec 2025 14:58:00 +0800 Subject: [PATCH 047/117] [TSP Migration]--RedisEnterprise (#38436) * just converted modelerfour: lenient-model-deduplication: true prenamer: true * could compile * update * update * Update tspconfig.yaml * update * Update tspconfig.yaml * Update tspconfig.yaml * Update tspconfig.yaml * update * update * update * update * update client name * update config for python * updaate * add config * remove example config * revert code * fix PrivateEndpointConnection duplicate schema * remove java config * fix PrivateEndpointConnectionListResult * add go config * add go config * add go config * update * update go config --------- Co-authored-by: Jiao Di (MSFT) Co-authored-by: Yuchao Yan Co-authored-by: Judy Liu Co-authored-by: XiaofeiCao Co-authored-by: Pan Shao <97225342+pshao25@users.noreply.github.com> --- .../AccessPolicyAssignment.tsp | 68 + .../RedisEnterprise.Management/Cluster.tsp | 128 + .../RedisEnterprise.Management/Database.tsp | 185 + .../RedisEnterprise.Management/Migration.tsp | 70 + .../PrivateEndpointConnection.tsp | 63 + .../back-compatible.tsp | 60 + .../RedisEnterprise.Management/client.tsp | 14 + .../2025-08-01-preview/OperationsList.json | 33 + .../OperationsStatusGet.json | 21 + ...iseAccessPolicyAssignmentCreateUpdate.json | 50 + ...nterpriseAccessPolicyAssignmentDelete.json | 21 + ...isEnterpriseAccessPolicyAssignmentGet.json | 28 + ...EnterpriseAccessPolicyAssignmentsList.json | 43 + .../RedisEnterpriseCreate.json | 215 + .../RedisEnterpriseDatabasesCreate.json | 116 + ...riseDatabasesCreateWithGeoReplication.json | 95 + .../RedisEnterpriseDatabasesDelete.json | 21 + .../RedisEnterpriseDatabasesExport.json | 23 + .../RedisEnterpriseDatabasesFlush.json | 24 + .../RedisEnterpriseDatabasesForceLink.json | 31 + .../RedisEnterpriseDatabasesForceUnlink.json | 24 + .../RedisEnterpriseDatabasesGet.json | 42 + .../RedisEnterpriseDatabasesImport.json | 26 + ...RedisEnterpriseDatabasesListByCluster.json | 45 + .../RedisEnterpriseDatabasesListKeys.json | 19 + ...terpriseDatabasesNoClusterCacheCreate.json | 57 + ...tabasesNoClusterCacheUpdateClustering.json | 45 + ...RedisEnterpriseDatabasesRegenerateKey.json | 28 + .../RedisEnterpriseDatabasesUpdate.json | 59 + ...erpriseDatabasesUpgradeDBRedisVersion.json | 18 + .../RedisEnterpriseDelete.json | 20 + ...rpriseDeletePrivateEndpointConnection.json | 21 + .../RedisEnterpriseGet.json | 82 + ...nterpriseGetPrivateEndpointConnection.json | 31 + .../RedisEnterpriseList.json | 37 + .../RedisEnterpriseListByResourceGroup.json | 43 + ...erpriseListPrivateEndpointConnections.json | 51 + ...disEnterpriseListPrivateLinkResources.json | 32 + .../RedisEnterpriseListSkusForScaling.json | 30 + .../RedisEnterpriseMigrationCancel.json | 18 + .../RedisEnterpriseMigrationGet.json | 30 + .../RedisEnterpriseMigrationList.json | 34 + .../RedisEnterpriseMigrationStart.json | 62 + ...nterprisePutPrivateEndpointConnection.json | 39 + .../RedisEnterpriseUpdate.json | 119 + .../RedisEnterprise.Management/main.tsp | 52 + .../RedisEnterprise.Management/models.tsp | 1667 ++++++ .../RedisEnterprise.Management/routes.tsp | 35 + .../RedisEnterprise.Management/tspconfig.yaml | 46 + .../examples/OperationsList.json | 16 +- .../examples/OperationsStatusGet.json | 14 +- ...iseAccessPolicyAssignmentCreateUpdate.json | 20 +- ...nterpriseAccessPolicyAssignmentDelete.json | 10 +- ...isEnterpriseAccessPolicyAssignmentGet.json | 14 +- ...EnterpriseAccessPolicyAssignmentsList.json | 18 +- .../examples/RedisEnterpriseCreate.json | 128 +- .../RedisEnterpriseDatabasesCreate.json | 68 +- ...riseDatabasesCreateWithGeoReplication.json | 48 +- .../RedisEnterpriseDatabasesDelete.json | 8 +- .../RedisEnterpriseDatabasesExport.json | 14 +- .../RedisEnterpriseDatabasesFlush.json | 14 +- .../RedisEnterpriseDatabasesForceLink.json | 14 +- .../RedisEnterpriseDatabasesForceUnlink.json | 14 +- .../examples/RedisEnterpriseDatabasesGet.json | 30 +- .../RedisEnterpriseDatabasesImport.json | 14 +- ...RedisEnterpriseDatabasesListByCluster.json | 26 +- .../RedisEnterpriseDatabasesListKeys.json | 8 +- ...terpriseDatabasesNoClusterCacheCreate.json | 42 +- ...tabasesNoClusterCacheUpdateClustering.json | 26 +- ...RedisEnterpriseDatabasesRegenerateKey.json | 14 +- .../RedisEnterpriseDatabasesUpdate.json | 40 +- ...erpriseDatabasesUpgradeDBRedisVersion.json | 8 +- .../examples/RedisEnterpriseDelete.json | 6 +- ...rpriseDeletePrivateEndpointConnection.json | 10 +- .../examples/RedisEnterpriseGet.json | 70 +- ...nterpriseGetPrivateEndpointConnection.json | 20 +- .../examples/RedisEnterpriseList.json | 32 +- .../RedisEnterpriseListByResourceGroup.json | 34 +- ...erpriseListPrivateEndpointConnections.json | 30 +- ...disEnterpriseListPrivateLinkResources.json | 8 +- .../RedisEnterpriseListSkusForScaling.json | 12 +- .../RedisEnterpriseMigrationCancel.json | 8 +- .../examples/RedisEnterpriseMigrationGet.json | 16 +- .../RedisEnterpriseMigrationList.json | 16 +- .../RedisEnterpriseMigrationStart.json | 50 +- ...nterprisePutPrivateEndpointConnection.json | 26 +- .../examples/RedisEnterpriseUpdate.json | 60 +- .../2025-08-01-preview/redisenterprise.json | 5207 ++++++++++------- 88 files changed, 7804 insertions(+), 2530 deletions(-) create mode 100644 specification/redisenterprise/RedisEnterprise.Management/AccessPolicyAssignment.tsp create mode 100644 specification/redisenterprise/RedisEnterprise.Management/Cluster.tsp create mode 100644 specification/redisenterprise/RedisEnterprise.Management/Database.tsp create mode 100644 specification/redisenterprise/RedisEnterprise.Management/Migration.tsp create mode 100644 specification/redisenterprise/RedisEnterprise.Management/PrivateEndpointConnection.tsp create mode 100644 specification/redisenterprise/RedisEnterprise.Management/back-compatible.tsp create mode 100644 specification/redisenterprise/RedisEnterprise.Management/client.tsp create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/OperationsList.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/OperationsStatusGet.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentCreateUpdate.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentDelete.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentGet.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentsList.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseCreate.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesCreate.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesCreateWithGeoReplication.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesDelete.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesExport.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesFlush.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesForceLink.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesForceUnlink.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesGet.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesImport.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesListByCluster.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesListKeys.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesNoClusterCacheCreate.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesNoClusterCacheUpdateClustering.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesRegenerateKey.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesUpdate.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesUpgradeDBRedisVersion.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDelete.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDeletePrivateEndpointConnection.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseGet.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseGetPrivateEndpointConnection.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseList.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListByResourceGroup.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListPrivateEndpointConnections.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListPrivateLinkResources.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListSkusForScaling.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationCancel.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationGet.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationList.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationStart.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterprisePutPrivateEndpointConnection.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseUpdate.json create mode 100644 specification/redisenterprise/RedisEnterprise.Management/main.tsp create mode 100644 specification/redisenterprise/RedisEnterprise.Management/models.tsp create mode 100644 specification/redisenterprise/RedisEnterprise.Management/routes.tsp create mode 100644 specification/redisenterprise/RedisEnterprise.Management/tspconfig.yaml diff --git a/specification/redisenterprise/RedisEnterprise.Management/AccessPolicyAssignment.tsp b/specification/redisenterprise/RedisEnterprise.Management/AccessPolicyAssignment.tsp new file mode 100644 index 000000000000..0bc0a97715ab --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/AccessPolicyAssignment.tsp @@ -0,0 +1,68 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Database.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Cache; +/** + * Describes the access policy assignment of Redis Enterprise database + */ +@parentResource(Database) +model AccessPolicyAssignment + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = AccessPolicyAssignment, + KeyName = "accessPolicyAssignmentName", + SegmentName = "accessPolicyAssignments", + NamePattern = "^[A-Za-z0-9]{1,60}$" + >; +} + +@armResourceOperations +interface AccessPolicyAssignments { + /** + * Gets information about access policy assignment for database. + */ + get is ArmResourceRead; + + /** + * Creates/Updates a particular access policy assignment for a database + */ + @Azure.Core.useFinalStateVia("original-uri") + createUpdate is ArmResourceCreateOrReplaceAsync; + + /** + * Deletes a single access policy assignment. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.Core.useFinalStateVia("azure-async-operation") + delete is ArmResourceDeleteWithoutOkAsync< + AccessPolicyAssignment, + LroHeaders = ArmCombinedLroHeaders & Azure.Core.Foundations.RetryAfterHeader + >; + + /** + * Gets all access policy assignments.. + */ + list is ArmResourceListByParent< + AccessPolicyAssignment, + Response = ArmResponse + >; +} + +@@doc(AccessPolicyAssignment.name, + "The name of the Redis Enterprise database access policy assignment." +); +@@doc(AccessPolicyAssignment.properties, + "Properties of the access policy assignment." +); +@@doc(AccessPolicyAssignments.createUpdate::parameters.resource, + "Parameters supplied to the create access policy assignment for database." +); diff --git a/specification/redisenterprise/RedisEnterprise.Management/Cluster.tsp b/specification/redisenterprise/RedisEnterprise.Management/Cluster.tsp new file mode 100644 index 000000000000..b6293845bee7 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/Cluster.tsp @@ -0,0 +1,128 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Cache; +/** + * Describes the Redis Enterprise cluster + */ +model Cluster + is Azure.ResourceManager.TrackedResource { + ...ResourceNameParameter< + Resource = Cluster, + KeyName = "clusterName", + SegmentName = "redisEnterprise", + NamePattern = "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" + >; + + /** + * Distinguishes the kind of cluster. Read-only. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + kind?: Kind; + + /** + * The SKU to create, which affects price, performance, and features. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + sku: Sku; + + ...Azure.ResourceManager.AvailabilityZonesProperty; + + /** + * The identity of the resource. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + identity?: Azure.ResourceManager.CommonTypes.ManagedServiceIdentity; +} + +@armResourceOperations +interface Clusters { + /** + * Gets information about a Redis Enterprise cluster + */ + get is ArmResourceRead; + + /** + * Creates or updates an existing (overwrite/recreate, with potential downtime) cache cluster + */ + @Azure.Core.useFinalStateVia("original-uri") + create is ArmResourceCreateOrReplaceAsync; + + /** + * Updates an existing Redis Enterprise cluster + */ + @Azure.Core.useFinalStateVia("azure-async-operation") + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchAsync< + Cluster, + PatchModel = ClusterUpdate, + LroHeaders = ArmCombinedLroHeaders & + Azure.Core.Foundations.RetryAfterHeader + >; + + /** + * Deletes a Redis Enterprise cache cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.Core.useFinalStateVia("azure-async-operation") + delete is ArmResourceDeleteWithoutOkAsync< + Cluster, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * Lists all Redis Enterprise clusters in a resource group. + */ + listByResourceGroup is ArmResourceListByParent< + Cluster, + Response = ArmResponse + >; + + /** + * Lists all Redis Enterprise clusters in the specified subscription. + */ + list is ArmListBySubscription>; + + /** + * Lists the available SKUs for scaling the Redis Enterprise cluster. + */ + listSkusForScaling is ArmResourceActionSync< + Cluster, + void, + ArmResponse + >; + + /** + * Gets the private link resources that need to be created for a Redis Enterprise cluster. + */ + @list + @get + @action("privateLinkResources") + listByCluster is ArmResourceActionSync< + Cluster, + void, + ArmResponse + >; +} + +@@doc(Cluster.name, + "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens" +); +@@doc(Cluster.properties, "Other properties of the cluster."); +@@doc(Clusters.create::parameters.resource, + "Parameters supplied to the Create Redis Enterprise operation." +); +@@doc(Clusters.update::parameters.properties, + "Parameters supplied to the Update Redis Enterprise operation." +); diff --git a/specification/redisenterprise/RedisEnterprise.Management/Database.tsp b/specification/redisenterprise/RedisEnterprise.Management/Database.tsp new file mode 100644 index 000000000000..2232a318c565 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/Database.tsp @@ -0,0 +1,185 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Cluster.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Cache; +/** + * Describes a database on the Redis Enterprise cluster + */ +@parentResource(Cluster) +model Database + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = Database, + KeyName = "databaseName", + SegmentName = "databases", + NamePattern = "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" + >; +} + +@armResourceOperations +interface Databases { + /** + * Gets information about a database in a Redis Enterprise cluster. + */ + get is ArmResourceRead; + + /** + * Creates a database + */ + @Azure.Core.useFinalStateVia("original-uri") + create is ArmResourceCreateOrReplaceAsync; + + /** + * Updates a database + */ + @patch(#{ implicitOptionality: false }) + @Azure.Core.useFinalStateVia("azure-async-operation") + update is ArmCustomPatchAsync< + Database, + PatchModel = DatabaseUpdate, + LroHeaders = ArmCombinedLroHeaders & + Azure.Core.Foundations.RetryAfterHeader + >; + + /** + * Deletes a single database + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.Core.useFinalStateVia("azure-async-operation") + delete is ArmResourceDeleteWithoutOkAsync< + Database, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * Gets all databases in the specified Redis Enterprise cluster. + */ + listByCluster is ArmResourceListByParent< + Database, + Response = ArmResponse + >; + + /** + * Retrieves the access keys for the Redis Enterprise database. + */ + listKeys is ArmResourceActionSync>; + + /** + * Regenerates the Redis Enterprise database's access keys. + */ + @Azure.Core.useFinalStateVia("azure-async-operation") + regenerateKey is ArmResourceActionAsync< + Database, + RegenerateKeyParameters, + ArmResponse, + LroHeaders = ArmCombinedLroHeaders & + Azure.Core.Foundations.RetryAfterHeader + >; + + /** + * Imports database files to target database. + */ + @Azure.Core.useFinalStateVia("azure-async-operation") + `import` is ArmResourceActionAsync< + Database, + ImportClusterParameters, + OkResponse, + LroHeaders = ArmCombinedLroHeaders & Azure.Core.Foundations.RetryAfterHeader + >; + + /** + * Exports a database file from target database. + */ + @Azure.Core.useFinalStateVia("azure-async-operation") + export is ArmResourceActionAsync< + Database, + ExportClusterParameters, + OkResponse, + LroHeaders = ArmCombinedLroHeaders & Azure.Core.Foundations.RetryAfterHeader + >; + + /** + * Forcibly removes the link to the specified database resource. + */ + @Azure.Core.useFinalStateVia("azure-async-operation") + forceUnlink is ArmResourceActionAsync< + Database, + ForceUnlinkParameters, + OkResponse, + LroHeaders = ArmCombinedLroHeaders & Azure.Core.Foundations.RetryAfterHeader + >; + + /** + * Forcibly recreates an existing database on the specified cluster, and rejoins it to an existing replication group. **IMPORTANT NOTE:** All data in this database will be discarded, and the database will temporarily be unavailable while rejoining the replication group. + */ + @Azure.Core.useFinalStateVia("azure-async-operation") + forceLinkToReplicationGroup is ArmResourceActionAsyncBase< + Database, + ForceLinkParameters, + ArmAcceptedLroResponse, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters + >; + + /** + * Flushes all the keys in this database and also from its linked databases. + */ + flush is ArmResourceActionAsyncBase< + Database, + FlushParameters, + Response = OkResponse | ArmAcceptedLroResponse, + OptionalRequestBody = true, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters + >; + + /** + * Upgrades the database Redis version to the latest available. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + upgradeDBRedisVersion is ArmResourceActionAsyncBase< + Database, + void, + Response = ArmAcceptedLroResponse, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters + >; +} + +@@doc(Database.name, "The name of the Redis Enterprise database."); +@@doc(Database.properties, "Other properties of the database."); +@@doc(Databases.create::parameters.resource, + "Parameters supplied to the create or update database operation." +); +@@doc(Databases.update::parameters.properties, + "Parameters supplied to the create or update database operation." +); +@@doc(Databases.regenerateKey::parameters.body, + "Specifies which key to regenerate." +); +@@doc(Databases.`import`::parameters.body, + "Storage information for importing into the cluster" +); +@@doc(Databases.export::parameters.body, + "Storage information for exporting into the cluster" +); +@@doc(Databases.forceUnlink::parameters.body, + "Information identifying the database to be unlinked." +); +@@doc(Databases.forceLinkToReplicationGroup::parameters.body, + "Information identifying the database to be unlinked." +); +@@doc(Databases.flush::parameters.body, + "Information identifying the databases to be flushed" +); diff --git a/specification/redisenterprise/RedisEnterprise.Management/Migration.tsp b/specification/redisenterprise/RedisEnterprise.Management/Migration.tsp new file mode 100644 index 000000000000..4c28fde21e4a --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/Migration.tsp @@ -0,0 +1,70 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Cluster.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Cache; +/** + * Describes the current migration operation on a Redis Enterprise cluster. + */ +@singleton("default") +@parentResource(Cluster) +model Migration is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = Migration, + KeyName = "migration", + SegmentName = "migrations", + NamePattern = "" + >; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armResourceOperations +interface Migrations { + /** + * Gets information about a migration in a Redis Enterprise cluster. + */ + get is ArmResourceRead; + + /** + * Starts a new migration + */ + @Azure.Core.useFinalStateVia("original-uri") + start is ArmResourceCreateOrReplaceAsync< + Migration, + Response = (ArmResponse & + ArmCombinedLroHeaders) | (ArmCreatedResponse & + ArmCombinedLroHeaders) + >; + + /** + * Gets information about all migrations attempts in a Redis Enterprise cluster. + */ + list is ArmResourceListByParent< + Migration, + Response = ArmResponse + >; + + /** + * Cancel or rollback the migration operation in a Redis Enterprise cluster. + */ + cancel is ArmResourceActionAsyncBase< + Migration, + void, + ArmAcceptedLroResponse, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters + >; +} + +@@doc(Migration.name, ""); +@@doc(Migration.properties, "Properties of the migration operation."); +@@doc(Migrations.start::parameters.resource, + "Parameters supplied to start a migration operation." +); diff --git a/specification/redisenterprise/RedisEnterprise.Management/PrivateEndpointConnection.tsp b/specification/redisenterprise/RedisEnterprise.Management/PrivateEndpointConnection.tsp new file mode 100644 index 000000000000..d2435036e174 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/PrivateEndpointConnection.tsp @@ -0,0 +1,63 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Cluster.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Cache; +/** + * The Private Endpoint Connection resource. + */ +model PrivateEndpointConnection is PrivateEndpointConnectionResource; +alias PrivateEndpointOperations = PrivateEndpoints; + +@armResourceOperations +interface PrivateEndpointConnections { + /** + * Gets the specified private endpoint connection associated with the Redis Enterprise cluster. + */ + get is PrivateEndpointOperations.Read; + + /** + * Updates the state of the specified private endpoint connection associated with the Redis Enterprise cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + put is PrivateEndpointOperations.CreateOrReplaceAsync< + Cluster, + PrivateEndpointConnection, + Response = ArmResourceCreatedResponse< + PrivateEndpointConnection, + ArmLroLocationHeader & + Azure.Core.Foundations.RetryAfterHeader + > + >; + + /** + * Deletes the specified private endpoint connection associated with the Redis Enterprise cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is PrivateEndpointOperations.DeleteAsync< + Cluster, + PrivateEndpointConnection, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * Lists all the private endpoint connections associated with the Redis Enterprise cluster. + */ + list is PrivateEndpointOperations.ListByParent< + Cluster, + PrivateEndpointConnection + >; +} + +@@doc(PrivateEndpointConnection.properties, "Resource properties."); +@@doc(PrivateEndpointConnections.put::parameters.resource, + "The private endpoint connection properties." +); diff --git a/specification/redisenterprise/RedisEnterprise.Management/back-compatible.tsp b/specification/redisenterprise/RedisEnterprise.Management/back-compatible.tsp new file mode 100644 index 000000000000..153f713785e5 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/back-compatible.tsp @@ -0,0 +1,60 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Microsoft.Cache; + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(ClusterUpdate.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(DatabaseUpdate.properties); + +@@clientLocation(Clusters.get, "RedisEnterprise"); +@@clientLocation(Clusters.create, "RedisEnterprise"); +@@clientName(Clusters.create::parameters.resource, "parameters"); +@@clientLocation(Clusters.update, "RedisEnterprise"); +@@clientName(Clusters.update::parameters.properties, "parameters"); +@@clientLocation(Clusters.delete, "RedisEnterprise"); +@@clientLocation(Clusters.listByResourceGroup, "RedisEnterprise"); +@@clientLocation(Clusters.list, "RedisEnterprise"); +@@clientLocation(Clusters.listSkusForScaling, "RedisEnterprise"); +@@clientLocation(Clusters.listByCluster, "PrivateLinkResources"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(Cluster.properties); + +@@clientName(PrivateEndpointConnections.put::parameters.resource, "properties"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(PrivateEndpointConnection.properties); + +@@clientName(Databases.create::parameters.resource, "parameters"); +@@clientName(Databases.update::parameters.properties, "parameters"); +@@clientName(Databases.regenerateKey::parameters.body, "parameters"); +@@clientName(Databases.`import`::parameters.body, "parameters"); +@@clientName(Databases.export::parameters.body, "parameters"); +@@clientName(Databases.forceUnlink::parameters.body, "parameters"); +@@clientName(Databases.forceLinkToReplicationGroup::parameters.body, + "parameters" +); +@@clientName(Databases.flush::parameters.body, "parameters"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(Database.properties); + +@@clientLocation(AccessPolicyAssignments.get, "AccessPolicyAssignment"); +@@clientLocation(AccessPolicyAssignments.createUpdate, + "AccessPolicyAssignment" +); +@@clientName(AccessPolicyAssignments.createUpdate::parameters.resource, + "parameters" +); +@@clientLocation(AccessPolicyAssignments.delete, "AccessPolicyAssignment"); +@@clientLocation(AccessPolicyAssignments.list, "AccessPolicyAssignment"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(AccessPolicyAssignment.properties); + +@@clientLocation(Migrations.get, "Migration"); +@@clientLocation(Migrations.start, "Migration"); +@@clientName(Migrations.start::parameters.resource, "parameters"); +@@clientLocation(Migrations.list, "Migration"); +@@clientLocation(Migrations.cancel, "Migration"); + +@@clientLocation(OperationsStatusOperationGroup.get, "OperationsStatus"); diff --git a/specification/redisenterprise/RedisEnterprise.Management/client.tsp b/specification/redisenterprise/RedisEnterprise.Management/client.tsp new file mode 100644 index 000000000000..5351c6dd1cbd --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/client.tsp @@ -0,0 +1,14 @@ +import "@azure-tools/typespec-client-generator-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +import "./main.tsp"; + +using Azure.ClientGenerator.Core; + +@@clientName(Microsoft.Cache, "RedisEnterpriseManagementClient", "javascript"); +@@clientName(Microsoft.Cache, "RedisEnterpriseManagementClient", "python"); + +@@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnection, + "ArmPrivateEndpointConnection", + "python" +); diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/OperationsList.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/OperationsList.json new file mode 100644 index 000000000000..3b3a61b4ae77 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/OperationsList.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.Cache/redisEnterprise/read", + "display": { + "description": "View the Redis Enterprise cache's settings and configuration in the management portal", + "operation": "Manage Redis Enterprise cache (read)", + "provider": "Microsoft Cache", + "resource": "Redis Enterprise cache" + } + }, + { + "name": "Microsoft.Cache/redisEnterprise/write", + "display": { + "description": "Modify the Redis Enterprise cache's settings and configuration in the management portal", + "operation": "Manage Redis Enterprise cache (write)", + "provider": "Microsoft Cache", + "resource": "Redis Enterprise cache" + } + } + ] + } + } + }, + "operationId": "Operations_List", + "title": "OperationsList" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/OperationsStatusGet.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/OperationsStatusGet.json new file mode 100644 index 000000000000..25717fff3adb --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/OperationsStatusGet.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "operationId": "testoperationid", + "api-version": "2025-08-01-preview", + "location": "West US", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "testoperationid", + "endTime": "2017-01-01T16:13:13.933Z", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/locations/westus/operationsStatus/testoperationid", + "startTime": "2017-01-01T13:13:13.933Z", + "status": "Succeeded" + } + } + }, + "operationId": "OperationsStatus_Get", + "title": "OperationsStatusGet" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentCreateUpdate.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentCreateUpdate.json new file mode 100644 index 000000000000..dda5d33fe696 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentCreateUpdate.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "accessPolicyAssignmentName": "defaultTestEntraApp1", + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "parameters": { + "properties": { + "accessPolicyName": "default", + "user": { + "objectId": "6497c918-11ad-41e7-1b0f-7c518a87d0b0" + } + } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "defaultTestEntraApp1", + "type": "Microsoft.Cache/redisEnterprise/accessPolicyAssignments", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default/accessPolicyAssignments/default-TestEntraApp1", + "properties": { + "accessPolicyName": "default", + "provisioningState": "Succeeded", + "user": { + "objectId": "6497c918-11ad-41e7-1b0f-7c518a87d0b0" + } + } + } + }, + "201": { + "body": { + "name": "defaultTestEntraApp1", + "type": "Microsoft.Cache/redisEnterprise/accessPolicyAssignments", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default/accessPolicyAssignments/default-TestEntraApp1", + "properties": { + "accessPolicyName": "default", + "provisioningState": "Succeeded", + "user": { + "objectId": "6497c918-11ad-41e7-1b0f-7c518a87d0b0" + } + } + } + } + }, + "operationId": "AccessPolicyAssignment_CreateUpdate", + "title": "RedisEnterpriseAccessPolicyAssignmentCreateUpdate" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentDelete.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentDelete.json new file mode 100644 index 000000000000..f7c2cbef4539 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentDelete.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "accessPolicyAssignmentName": "defaultTestEntraApp1", + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus...", + "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." + } + }, + "204": {} + }, + "operationId": "AccessPolicyAssignment_Delete", + "title": "RedisEnterpriseAccessPolicyAssignmentDelete" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentGet.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentGet.json new file mode 100644 index 000000000000..f1c043c75fd8 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentGet.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "accessPolicyAssignmentName": "accessPolicyAssignmentName1", + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "accessPolicyAssignmentName1", + "type": "Microsoft.Cache/Redis/accessPolicyAssignments", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/accessPolicyAssignmentName1", + "properties": { + "accessPolicyName": "default", + "provisioningState": "Succeeded", + "user": { + "objectId": "6497c918-11ad-41e7-1b0f-7c518a87d0b0" + } + } + } + } + }, + "operationId": "AccessPolicyAssignment_Get", + "title": "RedisEnterpriseAccessPolicyAssignmentGet" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentsList.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentsList.json new file mode 100644 index 000000000000..f7306be70b91 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseAccessPolicyAssignmentsList.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "accessPolicyAssignmentName1", + "type": "Microsoft.Cache/Redis/accessPolicyAssignments", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/accessPolicyAssignmentName1", + "properties": { + "accessPolicyName": "default", + "provisioningState": "Succeeded", + "user": { + "objectId": "6497c918-11ad-41e7-1b0f-7c518a87d0b0" + } + } + }, + { + "name": "accessPolicyAssignmentName2", + "type": "Microsoft.Cache/Redis/accessPolicyAssignments", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/accessPolicyAssignmentName2", + "properties": { + "accessPolicyName": "default", + "provisioningState": "Succeeded", + "user": { + "objectId": "7497c918-11ad-41e7-1b0f-7c518a87d0b0" + } + } + } + ] + } + } + }, + "operationId": "AccessPolicyAssignment_List", + "title": "RedisEnterpriseAccessPolicyAssignmentList" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseCreate.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseCreate.json new file mode 100644 index 000000000000..69e85e85bf04 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseCreate.json @@ -0,0 +1,215 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/your-subscription/resourceGroups/your-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/your-identity": {} + } + }, + "location": "West US", + "properties": { + "encryption": { + "customerManagedKeyEncryption": { + "keyEncryptionKeyIdentity": { + "identityType": "userAssignedIdentity", + "userAssignedIdentityResourceId": "/subscriptions/your-subscription/resourceGroups/your-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/your-identity" + }, + "keyEncryptionKeyUrl": "https://your-kv.vault.azure.net/keys/your-key/your-key-version" + } + }, + "minimumTlsVersion": "1.2", + "publicNetworkAccess": "Disabled", + "maintenanceConfiguration": { + "maintenanceWindows": [ + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Monday" + } + }, + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Tuesday" + } + }, + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Wednesday" + } + } + ] + } + }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 3 + }, + "tags": { + "tag1": "value1" + }, + "zones": [ + "1", + "2", + "3" + ] + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "cache1", + "type": "Microsoft.Cache/redisEnterprise", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/your-subscription/resourceGroups/your-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/your-identity": { + "clientId": "00000000-0000-0000-0000-000000000000", + "principalId": "00000000-0000-0000-0000-000000000000" + } + } + }, + "kind": "v1", + "location": "West US", + "properties": { + "hostName": "cache1.westus.something.azure.net", + "minimumTlsVersion": "1.2", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled", + "maintenanceConfiguration": { + "maintenanceWindows": [ + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Monday" + } + }, + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Tuesday" + } + }, + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Wednesday" + } + } + ] + }, + "redisVersion": "5", + "resourceState": "Running" + }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 3 + }, + "tags": { + "tag1": "value1" + }, + "zones": [ + "1", + "2", + "3" + ] + } + }, + "201": { + "body": { + "name": "cache1", + "type": "Microsoft.Cache/redisEnterprise", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/your-subscription/resourceGroups/your-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/your-identity": { + "clientId": "00000000-0000-0000-0000-000000000000", + "principalId": "00000000-0000-0000-0000-000000000000" + } + } + }, + "kind": "v1", + "location": "West US", + "properties": { + "encryption": { + "customerManagedKeyEncryption": { + "keyEncryptionKeyIdentity": { + "identityType": "userAssignedIdentity", + "userAssignedIdentityResourceId": "/subscriptions/your-subscription/resourceGroups/your-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/your-identity" + }, + "keyEncryptionKeyUrl": "https://your-kv.vault.azure.net/keys/your-key/your-key-version" + } + }, + "hostName": "cache1.westus.something.azure.net", + "minimumTlsVersion": "1.2", + "provisioningState": "Creating", + "publicNetworkAccess": "Disabled", + "maintenanceConfiguration": { + "maintenanceWindows": [ + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Monday" + } + }, + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Tuesday" + } + }, + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Wednesday" + } + } + ] + }, + "redisVersion": "5", + "resourceState": "Creating" + }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 3 + }, + "tags": { + "tag1": "value1" + }, + "zones": [ + "1", + "2", + "3" + ] + } + } + }, + "operationId": "RedisEnterprise_Create", + "title": "RedisEnterpriseCreate" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesCreate.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesCreate.json new file mode 100644 index 000000000000..197e3a72d143 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesCreate.json @@ -0,0 +1,116 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "parameters": { + "properties": { + "accessKeysAuthentication": "Enabled", + "clientProtocol": "Encrypted", + "clusteringPolicy": "EnterpriseCluster", + "deferUpgrade": "NotDeferred", + "evictionPolicy": "AllKeysLRU", + "modules": [ + { + "name": "RedisBloom", + "args": "ERROR_RATE 0.00 INITIAL_SIZE 400" + }, + { + "name": "RedisTimeSeries", + "args": "RETENTION_POLICY 20" + }, + { + "name": "RediSearch" + } + ], + "persistence": { + "aofEnabled": true, + "aofFrequency": "1s" + }, + "port": 10000 + } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "cache1/default", + "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", + "properties": { + "accessKeysAuthentication": "Enabled", + "clientProtocol": "Encrypted", + "clusteringPolicy": "EnterpriseCluster", + "deferUpgrade": "NotDeferred", + "evictionPolicy": "AllKeysLRU", + "modules": [ + { + "name": "RedisBloom", + "args": "ERROR_RATE 0.00 INITIAL_SIZE 400", + "version": "1.0.0" + }, + { + "name": "RedisTimeSeries", + "args": "RETENTION_POLICY 20", + "version": "1.0.0" + }, + { + "name": "RediSearch", + "args": "", + "version": "1.0.0" + } + ], + "persistence": { + "aofEnabled": true, + "aofFrequency": "1s" + }, + "port": 10000, + "provisioningState": "Updating", + "redisVersion": "6.0", + "resourceState": "Updating" + } + } + }, + "201": { + "body": { + "name": "cache1/db1", + "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/db1", + "properties": { + "accessKeysAuthentication": "Enabled", + "clientProtocol": "Encrypted", + "clusteringPolicy": "EnterpriseCluster", + "evictionPolicy": "AllKeysLRU", + "modules": [ + { + "name": "RedisBloom", + "args": "ERROR_RATE 0.00 INITIAL_SIZE 400", + "version": "1.0.0" + }, + { + "name": "RedisTimeSeries", + "args": "RETENTION_POLICY 20", + "version": "1.0.0" + }, + { + "name": "RediSearch", + "args": "", + "version": "1.0.0" + } + ], + "persistence": { + "aofEnabled": true, + "aofFrequency": "1s" + }, + "port": 10000, + "provisioningState": "Creating", + "resourceState": "Creating" + } + } + } + }, + "operationId": "Databases_Create", + "title": "RedisEnterpriseDatabasesCreate" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesCreateWithGeoReplication.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesCreateWithGeoReplication.json new file mode 100644 index 000000000000..9d80a315e558 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesCreateWithGeoReplication.json @@ -0,0 +1,95 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "parameters": { + "properties": { + "accessKeysAuthentication": "Enabled", + "clientProtocol": "Encrypted", + "clusteringPolicy": "EnterpriseCluster", + "evictionPolicy": "NoEviction", + "geoReplication": { + "groupNickname": "groupName", + "linkedDatabases": [ + { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default" + }, + { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8e/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" + } + ] + }, + "port": 10000 + } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "cache1/default", + "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", + "properties": { + "accessKeysAuthentication": "Enabled", + "clientProtocol": "Encrypted", + "clusteringPolicy": "EnterpriseCluster", + "deferUpgrade": "NotDeferred", + "evictionPolicy": "NoEviction", + "geoReplication": { + "groupNickname": "groupName", + "linkedDatabases": [ + { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8e/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", + "state": "Linking" + }, + { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f2/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default", + "state": "Linking" + } + ] + }, + "port": 10000, + "provisioningState": "Updating", + "redisVersion": "6.0", + "resourceState": "Updating" + } + } + }, + "201": { + "body": { + "name": "cache1/db1", + "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/db1", + "properties": { + "accessKeysAuthentication": "Enabled", + "clientProtocol": "Plaintext", + "clusteringPolicy": "EnterpriseCluster", + "deferUpgrade": "NotDeferred", + "evictionPolicy": "NoEviction", + "geoReplication": { + "groupNickname": "groupName", + "linkedDatabases": [ + { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8e/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", + "state": "Linking" + }, + { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f2/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default", + "state": "Linking" + } + ] + }, + "port": 10000, + "provisioningState": "Creating", + "redisVersion": "6.0", + "resourceState": "Creating" + } + } + } + }, + "operationId": "Databases_Create", + "title": "RedisEnterpriseDatabasesCreate With Active Geo Replication" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesDelete.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesDelete.json new file mode 100644 index 000000000000..48b477383a80 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesDelete.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "db1", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus...", + "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." + } + }, + "204": {} + }, + "operationId": "Databases_Delete", + "title": "RedisEnterpriseDatabasesDelete" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesExport.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesExport.json new file mode 100644 index 000000000000..853bc55b9d87 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesExport.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "parameters": { + "sasUri": "https://contosostorage.blob.core.window.net/urlToBlobContainer?sasKeyParameters" + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus...", + "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." + } + } + }, + "operationId": "Databases_Export", + "title": "RedisEnterpriseDatabasesExport" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesFlush.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesFlush.json new file mode 100644 index 000000000000..b1ea9df3d112 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesFlush.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "parameters": { + "ids": [ + "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f2/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" + ] + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." + } + } + }, + "operationId": "Databases_Flush", + "title": "How to flush all the keys in the database" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesForceLink.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesForceLink.json new file mode 100644 index 000000000000..1bb78b13e715 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesForceLink.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "parameters": { + "geoReplication": { + "groupNickname": "groupName", + "linkedDatabases": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default" + }, + { + "id": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" + } + ] + } + }, + "resourceGroupName": "rg1", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Cache/...pathToOperationStatus..." + } + } + }, + "operationId": "Databases_ForceLinkToReplicationGroup", + "title": "How to relink a database after a regional outage" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesForceUnlink.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesForceUnlink.json new file mode 100644 index 000000000000..a76ed5fddddb --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesForceUnlink.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "parameters": { + "ids": [ + "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f2/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" + ] + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." + } + } + }, + "operationId": "Databases_ForceUnlink", + "title": "How to unlink a database during a regional outage" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesGet.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesGet.json new file mode 100644 index 000000000000..65a2dfb4527b --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesGet.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "cache1/default", + "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", + "properties": { + "accessKeysAuthentication": "Enabled", + "clientProtocol": "Encrypted", + "clusteringPolicy": "OSSCluster", + "deferUpgrade": "NotDeferred", + "evictionPolicy": "AllKeysLRU", + "modules": [ + { + "name": "RediSearch", + "args": "", + "version": "1.0.0" + } + ], + "persistence": { + "rdbEnabled": true, + "rdbFrequency": "12h" + }, + "port": 10000, + "provisioningState": "Succeeded", + "redisVersion": "6.0", + "resourceState": "Running" + } + } + } + }, + "operationId": "Databases_Get", + "title": "RedisEnterpriseDatabasesGet" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesImport.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesImport.json new file mode 100644 index 000000000000..651ad2b024f7 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesImport.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "parameters": { + "sasUris": [ + "https://contosostorage.blob.core.window.net/urltoBlobFile1?sasKeyParameters", + "https://contosostorage.blob.core.window.net/urltoBlobFile2?sasKeyParameters" + ] + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus...", + "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." + } + } + }, + "operationId": "Databases_Import", + "title": "RedisEnterpriseDatabasesImport" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesListByCluster.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesListByCluster.json new file mode 100644 index 000000000000..cd8fb6267481 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesListByCluster.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "cache1/default", + "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", + "properties": { + "accessKeysAuthentication": "Disabled", + "clientProtocol": "Encrypted", + "clusteringPolicy": "OSSCluster", + "deferUpgrade": "NotDeferred", + "evictionPolicy": "AllKeysLRU", + "modules": [ + { + "name": "RediSearch", + "args": "", + "version": "1.0.0" + } + ], + "persistence": { + "rdbEnabled": true, + "rdbFrequency": "12h" + }, + "port": 10000, + "provisioningState": "Succeeded", + "redisVersion": "6.0", + "resourceState": "Running" + } + } + ] + } + } + }, + "operationId": "Databases_ListByCluster", + "title": "RedisEnterpriseDatabasesListByCluster" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesListKeys.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesListKeys.json new file mode 100644 index 000000000000..0c517b232145 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesListKeys.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "primaryKey": "", + "secondaryKey": "" + } + } + }, + "operationId": "Databases_ListKeys", + "title": "RedisEnterpriseDatabasesListKeys" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesNoClusterCacheCreate.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesNoClusterCacheCreate.json new file mode 100644 index 000000000000..110afb130068 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesNoClusterCacheCreate.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "parameters": { + "properties": { + "clientProtocol": "Encrypted", + "clusteringPolicy": "NoCluster", + "evictionPolicy": "NoEviction", + "port": 10000 + } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "cache1/default", + "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", + "properties": { + "accessKeysAuthentication": "Enabled", + "clientProtocol": "Encrypted", + "clusteringPolicy": "NoCluster", + "deferUpgrade": "NotDeferred", + "evictionPolicy": "NoEviction", + "port": 10000, + "provisioningState": "Updating", + "redisVersion": "7.2", + "resourceState": "Updating" + } + } + }, + "201": { + "body": { + "name": "cache1/default", + "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", + "properties": { + "accessKeysAuthentication": "Enabled", + "clientProtocol": "Encrypted", + "clusteringPolicy": "NoCluster", + "deferUpgrade": "NotDeferred", + "evictionPolicy": "NoEviction", + "port": 10000, + "provisioningState": "Creating", + "redisVersion": "7.2", + "resourceState": "Creating" + } + } + } + }, + "operationId": "Databases_Create", + "title": "RedisEnterpriseDatabasesCreate No Cluster Cache" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesNoClusterCacheUpdateClustering.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesNoClusterCacheUpdateClustering.json new file mode 100644 index 000000000000..a475d3058bd5 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesNoClusterCacheUpdateClustering.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "parameters": { + "properties": { + "clientProtocol": "Encrypted", + "clusteringPolicy": "EnterpriseCluster", + "evictionPolicy": "NoEviction", + "port": 10000 + } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "cache1/default", + "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", + "properties": { + "accessKeysAuthentication": "Enabled", + "clientProtocol": "Encrypted", + "clusteringPolicy": "EnterpriseCluster", + "deferUpgrade": "NotDeferred", + "evictionPolicy": "NoEviction", + "port": 10000, + "provisioningState": "Updating", + "redisVersion": "7.2", + "resourceState": "Updating" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus...", + "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." + } + } + }, + "operationId": "Databases_Update", + "title": "RedisEnterpriseDatabasesUpdate Clustering on No Cluster Cache" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesRegenerateKey.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesRegenerateKey.json new file mode 100644 index 000000000000..b7afca7d9598 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesRegenerateKey.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "parameters": { + "keyType": "Primary" + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "primaryKey": "", + "secondaryKey": "" + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus...", + "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." + } + } + }, + "operationId": "Databases_RegenerateKey", + "title": "RedisEnterpriseDatabasesRegenerateKey" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesUpdate.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesUpdate.json new file mode 100644 index 000000000000..4cdbf59d95d6 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesUpdate.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "parameters": { + "properties": { + "accessKeysAuthentication": "Enabled", + "clientProtocol": "Encrypted", + "evictionPolicy": "AllKeysLRU", + "persistence": { + "rdbEnabled": true, + "rdbFrequency": "12h" + } + } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "cache1/default", + "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", + "properties": { + "accessKeysAuthentication": "Enabled", + "clientProtocol": "Encrypted", + "clusteringPolicy": "OSSCluster", + "deferUpgrade": "NotDeferred", + "evictionPolicy": "AllKeysLRU", + "modules": [ + { + "name": "RediSearch", + "args": "", + "version": "1.0.0" + } + ], + "persistence": { + "rdbEnabled": true, + "rdbFrequency": "12h" + }, + "port": 10000, + "provisioningState": "Updating", + "redisVersion": "6.0", + "resourceState": "Updating" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus...", + "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." + } + } + }, + "operationId": "Databases_Update", + "title": "RedisEnterpriseDatabasesUpdate" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesUpgradeDBRedisVersion.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesUpgradeDBRedisVersion.json new file mode 100644 index 000000000000..ebe965a0db6c --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDatabasesUpgradeDBRedisVersion.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." + } + } + }, + "operationId": "Databases_UpgradeDBRedisVersion", + "title": "How to upgrade your database Redis version" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDelete.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDelete.json new file mode 100644 index 000000000000..3db51b972f51 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDelete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus...", + "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." + } + }, + "204": {} + }, + "operationId": "RedisEnterprise_Delete", + "title": "RedisEnterpriseDelete" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDeletePrivateEndpointConnection.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDeletePrivateEndpointConnection.json new file mode 100644 index 000000000000..a5848a2dee98 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseDeletePrivateEndpointConnection.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "privateEndpointConnectionName": "pectest01", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus...", + "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." + } + }, + "204": {} + }, + "operationId": "PrivateEndpointConnections_Delete", + "title": "RedisEnterpriseDeletePrivateEndpointConnection" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseGet.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseGet.json new file mode 100644 index 000000000000..616885a40d3e --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseGet.json @@ -0,0 +1,82 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "cache1", + "type": "Microsoft.Cache/redisEnterprise", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", + "kind": "v1", + "location": "West US", + "properties": { + "hostName": "cache1.westus.something.azure.com", + "minimumTlsVersion": "1.2", + "privateEndpointConnections": [ + { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/cachePec", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/cachePe" + }, + "privateLinkServiceConnectionState": { + "description": "Please approve my connection", + "actionsRequired": "None", + "status": "Approved" + } + } + } + ], + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled", + "maintenanceConfiguration": { + "maintenanceWindows": [ + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Monday" + } + }, + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Tuesday" + } + }, + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Wednesday" + } + } + ] + }, + "redisVersion": "6", + "resourceState": "Running" + }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 3 + }, + "tags": {}, + "zones": [ + "1", + "2", + "3" + ] + } + } + }, + "operationId": "RedisEnterprise_Get", + "title": "RedisEnterpriseGet" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseGetPrivateEndpointConnection.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseGetPrivateEndpointConnection.json new file mode 100644 index 000000000000..6b0480e93811 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseGetPrivateEndpointConnection.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "privateEndpointConnectionName": "pectest01", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "pectest01", + "type": "Microsoft.Cache/redisEnterprise/privateEndpointConnections", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "PrivateEndpointConnections_Get", + "title": "RedisEnterpriseGetPrivateEndpointConnection" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseList.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseList.json new file mode 100644 index 000000000000..17ffb224165f --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseList.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "cache1", + "type": "Microsoft.Cache/redisEnterprise", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", + "kind": "v1", + "location": "West US", + "properties": { + "hostName": "cache1.westus.something.azure.com", + "minimumTlsVersion": "1.2", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled", + "redisVersion": "6", + "resourceState": "Running" + }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 3 + }, + "tags": {} + } + ] + } + } + }, + "operationId": "RedisEnterprise_List", + "title": "RedisEnterpriseList" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListByResourceGroup.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListByResourceGroup.json new file mode 100644 index 000000000000..66886dabd788 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListByResourceGroup.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "cache1", + "type": "Microsoft.Cache/redisEnterprise", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", + "kind": "v1", + "location": "West US", + "properties": { + "hostName": "cache1.westus.something.azure.com", + "minimumTlsVersion": "1.2", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled", + "redisVersion": "5", + "resourceState": "Running" + }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 3 + }, + "tags": {}, + "zones": [ + "1", + "2", + "3" + ] + } + ] + } + } + }, + "operationId": "RedisEnterprise_ListByResourceGroup", + "title": "RedisEnterpriseListByResourceGroup" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListPrivateEndpointConnections.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListPrivateEndpointConnections.json new file mode 100644 index 000000000000..8e3b985cb933 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListPrivateEndpointConnections.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "privateEndpointConnectionName": "pectest01", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "pectest01", + "type": "Microsoft.Cache/redisEnterprise/privateEndpointConnections", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + }, + { + "name": "pectest01", + "type": "Microsoft.Cache/redisEnterprise/privateEndpointConnections", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + }, + "operationId": "PrivateEndpointConnections_List", + "title": "RedisEnterpriseListPrivateEndpointConnections" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListPrivateLinkResources.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListPrivateLinkResources.json new file mode 100644 index 000000000000..50968a4abe10 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListPrivateLinkResources.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "redisEnterpriseCache", + "type": "Microsoft.Cache/redisEnterprise/privateLinkResources", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateLinkResources/redisEnterpriseCache", + "properties": { + "groupId": "redisEnterpriseCache", + "requiredMembers": [ + "redisEnterpriseCache" + ], + "requiredZoneNames": [ + "privatelink.redisenterprise.cache.windows.net" + ] + } + } + ] + } + } + }, + "operationId": "PrivateLinkResources_ListByCluster", + "title": "RedisEnterpriseListPrivateLinkResources" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListSkusForScaling.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListSkusForScaling.json new file mode 100644 index 000000000000..eb84e192a79e --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseListSkusForScaling.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "skus": [ + { + "name": "MemoryOptimized_M100", + "sizeInGB": 120 + }, + { + "name": "ComputeOptimized_X700", + "sizeInGB": 720 + }, + { + "name": "Balanced_B5", + "sizeInGB": 6 + } + ] + } + } + }, + "operationId": "RedisEnterprise_ListSkusForScaling", + "title": "RedisEnterpriseListSkusForScaling" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationCancel.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationCancel.json new file mode 100644 index 000000000000..5a0e2686bc54 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationCancel.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "databaseName": "default", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." + } + } + }, + "operationId": "Migration_Cancel", + "title": "RedisEnterpriseMigrationCancel" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationGet.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationGet.json new file mode 100644 index 000000000000..fa72e33a545a --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationGet.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "cache1/default", + "type": "Microsoft.Cache/redisEnterprise/migrations", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/migrations/default", + "properties": { + "creationTime": "2024-10-01T12:00:00Z", + "lastModifiedTime": "2024-10-01T12:00:00Z", + "provisioningState": "InProgress", + "skipDataMigration": true, + "sourceResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1", + "sourceType": "AzureCacheForRedis", + "statusDetails": "", + "switchDns": true, + "targetResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1" + } + } + } + }, + "operationId": "Migration_Get", + "title": "RedisEnterpriseMigrationGet" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationList.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationList.json new file mode 100644 index 000000000000..2c58c98eef23 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationList.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "cache1/default", + "type": "Microsoft.Cache/redisEnterprise/migrations", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/migrations/default", + "properties": { + "creationTime": "2024-10-01T12:00:00Z", + "lastModifiedTime": "2024-10-01T12:00:00Z", + "provisioningState": "InProgress", + "skipDataMigration": true, + "sourceResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1", + "sourceType": "AzureCacheForRedis", + "statusDetails": "", + "switchDns": true, + "targetResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1" + } + } + ] + } + } + }, + "operationId": "Migration_List", + "title": "RedisEnterpriseMigrationList" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationStart.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationStart.json new file mode 100644 index 000000000000..6c832f1ba319 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseMigrationStart.json @@ -0,0 +1,62 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "parameters": { + "properties": { + "skipDataMigration": true, + "sourceResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1", + "sourceType": "AzureCacheForRedis", + "switchDns": true + } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.Cache/redisEnterprise/migrations", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/migrations/default", + "properties": { + "creationTime": "2024-10-01T12:00:00Z", + "lastModifiedTime": "2024-10-01T12:00:00Z", + "provisioningState": "Completed", + "skipDataMigration": true, + "sourceResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1", + "sourceType": "AzureCacheForRedis", + "statusDetails": "", + "switchDns": true, + "targetResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1" + } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." + } + }, + "201": { + "body": { + "name": "default", + "type": "Microsoft.Cache/redisEnterprise/migrations", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/migrations/default", + "properties": { + "creationTime": "2024-10-01T12:00:00Z", + "lastModifiedTime": "2024-10-01T12:00:00Z", + "provisioningState": "Completed", + "skipDataMigration": true, + "sourceResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1", + "sourceType": "AzureCacheForRedis", + "statusDetails": "", + "switchDns": true, + "targetResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1" + } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." + } + } + }, + "operationId": "Migration_Start", + "title": "RedisEnterpriseMigrationStart" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterprisePutPrivateEndpointConnection.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterprisePutPrivateEndpointConnection.json new file mode 100644 index 000000000000..19c517381b6b --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterprisePutPrivateEndpointConnection.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "privateEndpointConnectionName": "pectest01", + "properties": { + "properties": { + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "status": "Approved" + } + } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "201": { + "body": { + "name": "pectest01", + "type": "Microsoft.Cache/redisEnterprise/privateEndpointConnections", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/petest01" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "PrivateEndpointConnections_Put", + "title": "RedisEnterprisePutPrivateEndpointConnection" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseUpdate.json b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseUpdate.json new file mode 100644 index 000000000000..ceb7e2143c95 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/examples/2025-08-01-preview/RedisEnterpriseUpdate.json @@ -0,0 +1,119 @@ +{ + "parameters": { + "api-version": "2025-08-01-preview", + "clusterName": "cache1", + "parameters": { + "properties": { + "minimumTlsVersion": "1.2", + "publicNetworkAccess": "Enabled", + "maintenanceConfiguration": { + "maintenanceWindows": [ + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Monday" + } + }, + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Tuesday" + } + }, + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Wednesday" + } + } + ] + } + }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 9 + }, + "tags": { + "tag1": "value1" + } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" + }, + "responses": { + "200": { + "body": { + "name": "cache1", + "type": "Microsoft.Cache/redisEnterprise", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", + "identity": { + "type": "None" + }, + "kind": "v1", + "location": "West US", + "properties": { + "hostName": "cache1.westus.something.azure.com", + "minimumTlsVersion": "1.2", + "provisioningState": "Updating", + "publicNetworkAccess": "Enabled", + "maintenanceConfiguration": { + "maintenanceWindows": [ + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Monday" + } + }, + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Tuesday" + } + }, + { + "type": "Weekly", + "duration": "PT6H", + "startHourUtc": 3, + "schedule": { + "dayOfWeek": "Wednesday" + } + } + ] + }, + "redisVersion": "5", + "resourceState": "Updating" + }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 9 + }, + "tags": { + "tag1": "value1" + }, + "zones": [ + "1", + "2", + "3" + ] + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus...", + "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." + } + } + }, + "operationId": "RedisEnterprise_Update", + "title": "RedisEnterpriseUpdate" +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/main.tsp b/specification/redisenterprise/RedisEnterprise.Management/main.tsp new file mode 100644 index 000000000000..8a6e285173e8 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/main.tsp @@ -0,0 +1,52 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.12 + * Date: 2025-10-27T05:30:24.399Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./Cluster.tsp"; +import "./Database.tsp"; +import "./AccessPolicyAssignment.tsp"; +import "./PrivateEndpointConnection.tsp"; +import "./Migration.tsp"; +import "./routes.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * REST API for managing Redis Enterprise resources in Azure. + */ +@armProviderNamespace +@service(#{ title: "RedisEnterpriseManagementClient" }) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) +namespace Microsoft.Cache; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2025-08-01-preview API version. + */ + v2025_08_01_preview: "2025-08-01-preview", +} + +interface Operations extends Azure.ResourceManager.Operations {} + +@@doc(Operations.list, + "Lists all of the available REST API operations of the Microsoft.Cache provider." +); diff --git a/specification/redisenterprise/RedisEnterprise.Management/models.tsp b/specification/redisenterprise/RedisEnterprise.Management/models.tsp new file mode 100644 index 000000000000..3a3ebd41091f --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/models.tsp @@ -0,0 +1,1667 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; + +namespace Microsoft.Cache; + +/** + * The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" + */ +union Origin { + string, + + /** + * user + */ + User: "user", + + /** + * system + */ + System: "system", + + /** + * user,system + */ + UserSystem: "user,system", +} + +/** + * Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. + */ +union ActionType { + string, + + /** + * Internal + */ + Internal: "Internal", +} + +/** + * Distinguishes the kind of cluster. Read-only. + */ +union Kind { + string, + + /** + * v1 + */ + V1: "v1", + + /** + * v2 + */ + V2: "v2", +} + +/** + * The level of Redis Enterprise cluster to deploy. Possible values: ('Balanced_B5', 'MemoryOptimized_M10', 'ComputeOptimized_X5', etc.). For more information on SKUs see the latest pricing documentation. Note that additional SKUs may become supported in the future. + */ +union SkuName { + string, + + /** + * Enterprise_E1 + */ + EnterpriseE1: "Enterprise_E1", + + /** + * Enterprise_E5 + */ + EnterpriseE5: "Enterprise_E5", + + /** + * Enterprise_E10 + */ + EnterpriseE10: "Enterprise_E10", + + /** + * Enterprise_E20 + */ + EnterpriseE20: "Enterprise_E20", + + /** + * Enterprise_E50 + */ + EnterpriseE50: "Enterprise_E50", + + /** + * Enterprise_E100 + */ + EnterpriseE100: "Enterprise_E100", + + /** + * Enterprise_E200 + */ + EnterpriseE200: "Enterprise_E200", + + /** + * Enterprise_E400 + */ + EnterpriseE400: "Enterprise_E400", + + /** + * EnterpriseFlash_F300 + */ + EnterpriseFlashF300: "EnterpriseFlash_F300", + + /** + * EnterpriseFlash_F700 + */ + EnterpriseFlashF700: "EnterpriseFlash_F700", + + /** + * EnterpriseFlash_F1500 + */ + EnterpriseFlashF1500: "EnterpriseFlash_F1500", + + /** + * Balanced_B0 + */ + BalancedB0: "Balanced_B0", + + /** + * Balanced_B1 + */ + BalancedB1: "Balanced_B1", + + /** + * Balanced_B3 + */ + BalancedB3: "Balanced_B3", + + /** + * Balanced_B5 + */ + BalancedB5: "Balanced_B5", + + /** + * Balanced_B10 + */ + BalancedB10: "Balanced_B10", + + /** + * Balanced_B20 + */ + BalancedB20: "Balanced_B20", + + /** + * Balanced_B50 + */ + BalancedB50: "Balanced_B50", + + /** + * Balanced_B100 + */ + BalancedB100: "Balanced_B100", + + /** + * Balanced_B150 + */ + BalancedB150: "Balanced_B150", + + /** + * Balanced_B250 + */ + BalancedB250: "Balanced_B250", + + /** + * Balanced_B350 + */ + BalancedB350: "Balanced_B350", + + /** + * Balanced_B500 + */ + BalancedB500: "Balanced_B500", + + /** + * Balanced_B700 + */ + BalancedB700: "Balanced_B700", + + /** + * Balanced_B1000 + */ + BalancedB1000: "Balanced_B1000", + + /** + * MemoryOptimized_M10 + */ + MemoryOptimizedM10: "MemoryOptimized_M10", + + /** + * MemoryOptimized_M20 + */ + MemoryOptimizedM20: "MemoryOptimized_M20", + + /** + * MemoryOptimized_M50 + */ + MemoryOptimizedM50: "MemoryOptimized_M50", + + /** + * MemoryOptimized_M100 + */ + MemoryOptimizedM100: "MemoryOptimized_M100", + + /** + * MemoryOptimized_M150 + */ + MemoryOptimizedM150: "MemoryOptimized_M150", + + /** + * MemoryOptimized_M250 + */ + MemoryOptimizedM250: "MemoryOptimized_M250", + + /** + * MemoryOptimized_M350 + */ + MemoryOptimizedM350: "MemoryOptimized_M350", + + /** + * MemoryOptimized_M500 + */ + MemoryOptimizedM500: "MemoryOptimized_M500", + + /** + * MemoryOptimized_M700 + */ + MemoryOptimizedM700: "MemoryOptimized_M700", + + /** + * MemoryOptimized_M1000 + */ + MemoryOptimizedM1000: "MemoryOptimized_M1000", + + /** + * MemoryOptimized_M1500 + */ + MemoryOptimizedM1500: "MemoryOptimized_M1500", + + /** + * MemoryOptimized_M2000 + */ + MemoryOptimizedM2000: "MemoryOptimized_M2000", + + /** + * ComputeOptimized_X3 + */ + ComputeOptimizedX3: "ComputeOptimized_X3", + + /** + * ComputeOptimized_X5 + */ + ComputeOptimizedX5: "ComputeOptimized_X5", + + /** + * ComputeOptimized_X10 + */ + ComputeOptimizedX10: "ComputeOptimized_X10", + + /** + * ComputeOptimized_X20 + */ + ComputeOptimizedX20: "ComputeOptimized_X20", + + /** + * ComputeOptimized_X50 + */ + ComputeOptimizedX50: "ComputeOptimized_X50", + + /** + * ComputeOptimized_X100 + */ + ComputeOptimizedX100: "ComputeOptimized_X100", + + /** + * ComputeOptimized_X150 + */ + ComputeOptimizedX150: "ComputeOptimized_X150", + + /** + * ComputeOptimized_X250 + */ + ComputeOptimizedX250: "ComputeOptimized_X250", + + /** + * ComputeOptimized_X350 + */ + ComputeOptimizedX350: "ComputeOptimized_X350", + + /** + * ComputeOptimized_X500 + */ + ComputeOptimizedX500: "ComputeOptimized_X500", + + /** + * ComputeOptimized_X700 + */ + ComputeOptimizedX700: "ComputeOptimized_X700", + + /** + * FlashOptimized_A250 + */ + FlashOptimizedA250: "FlashOptimized_A250", + + /** + * FlashOptimized_A500 + */ + FlashOptimizedA500: "FlashOptimized_A500", + + /** + * FlashOptimized_A700 + */ + FlashOptimizedA700: "FlashOptimized_A700", + + /** + * FlashOptimized_A1000 + */ + FlashOptimizedA1000: "FlashOptimized_A1000", + + /** + * FlashOptimized_A1500 + */ + FlashOptimizedA1500: "FlashOptimized_A1500", + + /** + * FlashOptimized_A2000 + */ + FlashOptimizedA2000: "FlashOptimized_A2000", + + /** + * FlashOptimized_A4500 + */ + FlashOptimizedA4500: "FlashOptimized_A4500", +} + +/** + * Whether or not public network traffic can access the Redis cluster. Only 'Enabled' or 'Disabled' can be set. null is returned only for clusters created using an old API version which do not have this property and cannot be set. + */ +union PublicNetworkAccess { + string, + + /** + * Enabled + */ + Enabled: "Enabled", + + /** + * Disabled + */ + Disabled: "Disabled", +} + +/** + * Enabled by default. If highAvailability is disabled, the data set is not replicated. This affects the availability SLA, and increases the risk of data loss. + */ +union HighAvailability { + string, + + /** + * Enabled + */ + Enabled: "Enabled", + + /** + * Disabled + */ + Disabled: "Disabled", +} + +/** + * The minimum TLS version for the cluster to support, e.g. '1.2'. Newer versions can be added in the future. Note that TLS 1.0 and TLS 1.1 are now completely obsolete -- you cannot use them. They are mentioned only for the sake of consistency with old API versions. + */ +union TlsVersion { + string, + + /** + * 1.0 + */ + One0: "1.0", + + /** + * 1.1 + */ + One1: "1.1", + + /** + * 1.2 + */ + One2: "1.2", +} + +/** + * Only userAssignedIdentity is supported in this API version; other types may be supported in the future + */ +union CmkIdentityType { + string, + + /** + * systemAssignedIdentity + */ + SystemAssignedIdentity: "systemAssignedIdentity", + + /** + * userAssignedIdentity + */ + UserAssignedIdentity: "userAssignedIdentity", +} + +/** + * Current provisioning status + */ +union ProvisioningState { + string, + + /** + * Succeeded + */ + Succeeded: "Succeeded", + + /** + * Failed + */ + Failed: "Failed", + + /** + * Canceled + */ + Canceled: "Canceled", + + /** + * Creating + */ + Creating: "Creating", + + /** + * Updating + */ + Updating: "Updating", + + /** + * Deleting + */ + Deleting: "Deleting", +} + +/** + * Explains the current redundancy strategy of the cluster, which affects the expected SLA. + */ +union RedundancyMode { + string, + + /** + * No redundancy. Availability loss will occur. + */ + None: "None", + + /** + * Local redundancy with high availability. + */ + LR: "LR", + + /** + * Zone redundant. Higher availability. + */ + ZR: "ZR", +} + +/** + * Current resource status + */ +union ResourceState { + string, + + /** + * Running + */ + Running: "Running", + + /** + * Creating + */ + Creating: "Creating", + + /** + * CreateFailed + */ + CreateFailed: "CreateFailed", + + /** + * Updating + */ + Updating: "Updating", + + /** + * UpdateFailed + */ + UpdateFailed: "UpdateFailed", + + /** + * Deleting + */ + Deleting: "Deleting", + + /** + * DeleteFailed + */ + DeleteFailed: "DeleteFailed", + + /** + * Enabling + */ + Enabling: "Enabling", + + /** + * EnableFailed + */ + EnableFailed: "EnableFailed", + + /** + * Disabling + */ + Disabling: "Disabling", + + /** + * DisableFailed + */ + DisableFailed: "DisableFailed", + + /** + * Disabled + */ + Disabled: "Disabled", + + /** + * Scaling + */ + Scaling: "Scaling", + + /** + * ScalingFailed + */ + ScalingFailed: "ScalingFailed", + + /** + * Moving + */ + Moving: "Moving", +} + +/** + * Specifies whether redis clients can connect using TLS-encrypted or plaintext redis protocols. Default is TLS-encrypted. + */ +union Protocol { + string, + + /** + * Encrypted + */ + Encrypted: "Encrypted", + + /** + * Plaintext + */ + Plaintext: "Plaintext", +} + +/** + * Clustering policy - default is OSSCluster. This property can be updated only if the current value is NoCluster. If the value is OSSCluster or EnterpriseCluster, it cannot be updated without deleting the database. + */ +union ClusteringPolicy { + string, + + /** + * Enterprise clustering policy uses only the classic redis protocol, which does not support redis cluster commands. + */ + EnterpriseCluster: "EnterpriseCluster", + + /** + * OSS clustering policy follows the redis cluster specification, and requires all clients to support redis clustering. + */ + OSSCluster: "OSSCluster", + + /** + * The NoCluster policy is used for non-clustered Redis instances that do not require clustering features. + */ + NoCluster: "NoCluster", +} + +/** + * Redis eviction policy - default is VolatileLRU + */ +union EvictionPolicy { + string, + + /** + * AllKeysLFU + */ + AllKeysLFU: "AllKeysLFU", + + /** + * AllKeysLRU + */ + AllKeysLRU: "AllKeysLRU", + + /** + * AllKeysRandom + */ + AllKeysRandom: "AllKeysRandom", + + /** + * VolatileLRU + */ + VolatileLRU: "VolatileLRU", + + /** + * VolatileLFU + */ + VolatileLFU: "VolatileLFU", + + /** + * VolatileTTL + */ + VolatileTTL: "VolatileTTL", + + /** + * VolatileRandom + */ + VolatileRandom: "VolatileRandom", + + /** + * NoEviction + */ + NoEviction: "NoEviction", +} + +/** + * Sets the frequency at which data is written to disk. Defaults to '1s', meaning 'every second'. Note that the 'always' setting is deprecated, because of its performance impact. + */ +union AofFrequency { + string, + + /** + * 1s + */ + OneS: "1s", + + /** + * always + */ + Always: "always", +} + +/** + * Sets the frequency at which a snapshot of the database is created. + */ +union RdbFrequency { + string, + + /** + * 1h + */ + OneH: "1h", + + /** + * 6h + */ + SixH: "6h", + + /** + * 12h + */ + TwelveH: "12h", +} + +/** + * State of the link between the database resources. + */ +union LinkState { + string, + + /** + * Linked + */ + Linked: "Linked", + + /** + * Linking + */ + Linking: "Linking", + + /** + * Unlinking + */ + Unlinking: "Unlinking", + + /** + * LinkFailed + */ + LinkFailed: "LinkFailed", + + /** + * UnlinkFailed + */ + UnlinkFailed: "UnlinkFailed", +} + +/** + * Option to defer upgrade when newest version is released - default is NotDeferred. Learn more: https://aka.ms/redisversionupgrade + */ +union DeferUpgradeSetting { + string, + + /** + * Deferred + */ + Deferred: "Deferred", + + /** + * NotDeferred + */ + NotDeferred: "NotDeferred", +} + +/** + * This property can be Enabled/Disabled to allow or deny access with the current access keys. Can be updated even after database is created. + */ +union AccessKeysAuthentication { + string, + + /** + * Disabled + */ + Disabled: "Disabled", + + /** + * Enabled + */ + Enabled: "Enabled", +} + +/** + * The type of identity that created the resource. + */ +union CreatedByType { + string, + + /** + * User + */ + User: "User", + + /** + * Application + */ + Application: "Application", + + /** + * ManagedIdentity + */ + ManagedIdentity: "ManagedIdentity", + + /** + * Key + */ + Key: "Key", +} + +/** + * Describes the source of the migration operation. + */ +union SourceType { + string, + + /** + * Migration from Azure Cache for Redis to Redis Enterprise. + */ + AzureCacheForRedis: "AzureCacheForRedis", +} + +/** + * Current provisioning status + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union MigrationProvisioningState { + string, + + /** + * The request has been accepted and the migration operation is being initialized. + */ + Accepted: "Accepted", + + /** + * The migration operation is in progress. + */ + InProgress: "InProgress", + + /** + * The migration operation has completed transferring data and is ready for DNS switch. + */ + ReadyForDnsSwitch: "ReadyForDnsSwitch", + + /** + * The migration operation has completed successfully. + */ + Succeeded: "Succeeded", + + /** + * The migration operation has failed. + */ + Failed: "Failed", + + /** + * The migration operation is being cancelled. + */ + Cancelling: "Cancelling", + + /** + * The migration operation has been cancelled. + */ + Cancelled: "Cancelled", +} + +/** + * Which access key to regenerate. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum AccessKeyType { + /** + * Primary + */ + Primary, + + /** + * Secondary + */ + Secondary, +} + +/** + * Localized display information for this particular operation. + */ +model OperationDisplay { + /** + * The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft Compute". + */ + @visibility(Lifecycle.Read) + provider?: string; + + /** + * The localized friendly name of the resource type related to this operation. E.g. "Virtual Machines" or "Job Schedule Collections". + */ + @visibility(Lifecycle.Read) + resource?: string; + + /** + * The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual Machine", "Restart Virtual Machine". + */ + @visibility(Lifecycle.Read) + operation?: string; + + /** + * The short, localized friendly description of the operation; suitable for tool tips and detailed views. + */ + @visibility(Lifecycle.Read) + description?: string; +} + +/** + * The status of a long-running operation. + */ +model OperationStatus { + /** + * The operation's unique id. + */ + id?: string; + + /** + * The operation's name. + */ + name?: string; + + /** + * The start time of the operation. + */ + startTime?: string; + + /** + * The end time of the operation. + */ + endTime?: string; + + /** + * The current status of the operation. + */ + status?: string; + + /** + * Error response describing why the operation failed. + */ + error?: Azure.ResourceManager.CommonTypes.ErrorResponse; +} + +/** + * SKU parameters supplied to the create Redis Enterprise cluster operation. + */ +model Sku { + /** + * The level of Redis Enterprise cluster to deploy. Possible values: ('Balanced_B5', 'MemoryOptimized_M10', 'ComputeOptimized_X5', etc.). For more information on SKUs see the latest pricing documentation. Note that additional SKUs may become supported in the future. + */ + name: SkuName; + + /** + * This property is only used with Enterprise and EnterpriseFlash SKUs. Determines the size of the cluster. Valid values are (2, 4, 6, ...) for Enterprise SKUs and (3, 9, 15, ...) for EnterpriseFlash SKUs. + */ + capacity?: int32; +} + +/** + * Properties of Redis Enterprise clusters for create operations + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ClusterCreateProperties extends ClusterProperties { + /** + * Whether or not public network traffic can access the Redis cluster. Only 'Enabled' or 'Disabled' can be set. null is returned only for clusters created using an old API version which do not have this property and cannot be set. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + publicNetworkAccess: PublicNetworkAccess | null; +} + +/** + * Properties of Redis Enterprise clusters, as opposed to general resource properties like location, tags + */ +model ClusterProperties { + /** + * Enabled by default. If highAvailability is disabled, the data set is not replicated. This affects the availability SLA, and increases the risk of data loss. + */ + highAvailability?: HighAvailability; + + /** + * The minimum TLS version for the cluster to support, e.g. '1.2'. Newer versions can be added in the future. Note that TLS 1.0 and TLS 1.1 are now completely obsolete -- you cannot use them. They are mentioned only for the sake of consistency with old API versions. + */ + minimumTlsVersion?: TlsVersion; + + /** + * Encryption-at-rest configuration for the cluster. + */ + encryption?: ClusterPropertiesEncryption; + + /** + * Cluster-level maintenance configuration. + */ + @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) + maintenanceConfiguration?: MaintenanceConfiguration; + + /** + * DNS name of the cluster endpoint + */ + @visibility(Lifecycle.Read) + hostName?: string; + + /** + * Current provisioning status of the cluster + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Explains the current redundancy strategy of the cluster, which affects the expected SLA. + */ + @visibility(Lifecycle.Read) + redundancyMode?: RedundancyMode; + + /** + * Current resource status of the cluster + */ + @visibility(Lifecycle.Read) + resourceState?: ResourceState; + + /** + * Version of redis the cluster supports, e.g. '6' + */ + @visibility(Lifecycle.Read) + redisVersion?: string; + + /** + * List of private endpoint connections associated with the specified Redis Enterprise cluster + */ + @visibility(Lifecycle.Read) + privateEndpointConnections?: PrivateEndpointConnection[]; +} + +/** Cluster-level maintenance configuration. */ +model MaintenanceConfiguration { + /** Custom maintenance windows that apply to the cluster. */ + @identifiers(#[]) + maintenanceWindows?: MaintenanceWindow[]; +} + +/** A single custom maintenance window. */ +model MaintenanceWindow { + /** Maintenance window type. */ + type: MaintenanceWindowType; + + /** Duration in ISO-8601 format, for example 'PT5H'. */ + duration: string; + + /** Start hour (0-23) in UTC when the maintenance window begins. */ + @minValue(0) + @maxValue(23) + startHourUtc: int32; + + /** Recurring schedule for the maintenance window. */ + schedule: MaintenanceWindowSchedule; +} + +/** Maintenance window type. */ +union MaintenanceWindowType { + string, + + /** Weekly maintenance window. */ + Weekly: "Weekly", +} + +/** Schedule details for a maintenance window. */ +model MaintenanceWindowSchedule { + /** Day of week. Required when the maintenance window type is 'Weekly'. */ + dayOfWeek?: MaintenanceDayOfWeek; +} + +/** Day of week. Required when the maintenance window type is 'Weekly'. */ +union MaintenanceDayOfWeek { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Sunday: "Sunday", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Monday: "Monday", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Tuesday: "Tuesday", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Wednesday: "Wednesday", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Thursday: "Thursday", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Friday: "Friday", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Saturday: "Saturday", +} + +/** + * Encryption-at-rest configuration for the cluster. + */ +model ClusterPropertiesEncryption { + /** + * All Customer-managed key encryption properties for the resource. Set this to an empty object to use Microsoft-managed key encryption. + */ + customerManagedKeyEncryption?: ClusterPropertiesEncryptionCustomerManagedKeyEncryption; +} + +/** + * All Customer-managed key encryption properties for the resource. Set this to an empty object to use Microsoft-managed key encryption. + */ +model ClusterPropertiesEncryptionCustomerManagedKeyEncryption { + /** + * All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault. + */ + keyEncryptionKeyIdentity?: ClusterPropertiesEncryptionCustomerManagedKeyEncryptionKeyIdentity; + + /** + * Key encryption key Url, versioned only. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 + */ + keyEncryptionKeyUrl?: string; +} + +/** + * All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault. + */ +model ClusterPropertiesEncryptionCustomerManagedKeyEncryptionKeyIdentity { + /** + * User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. + */ + userAssignedIdentityResourceId?: string; + + /** + * Only userAssignedIdentity is supported in this API version; other types may be supported in the future + */ + identityType?: CmkIdentityType; +} + +/** + * A partial update to the Redis Enterprise cluster + */ +model ClusterUpdate { + /** + * The SKU to create, which affects price, performance, and features. + */ + sku?: Sku; + + /** + * Other properties of the cluster. + */ + properties?: ClusterUpdateProperties; + + /** + * The identity of the resource. + */ + identity?: Azure.ResourceManager.CommonTypes.ManagedServiceIdentity; + + /** + * Resource tags. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) + tags?: Record; +} + +/** + * Properties of Redis Enterprise clusters for update operations + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ClusterUpdateProperties extends ClusterProperties { + /** + * Whether or not public network traffic can access the Redis cluster. Only 'Enabled' or 'Disabled' can be set. null is returned only for clusters created using an old API version which do not have this property and cannot be set. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + publicNetworkAccess?: PublicNetworkAccess | null; +} + +/** + * The response of a list-all operation. + */ +model ClusterList is Azure.Core.Page; + +/** + * The response of a list-all operation. + */ +model DatabaseList is Azure.Core.Page; + +/** + * Properties for creating Redis Enterprise databases + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model DatabaseCreateProperties extends DatabaseProperties { + /** + * This property can be Enabled/Disabled to allow or deny access with the current access keys. Can be updated even after database is created. Default is Disabled. + */ + accessKeysAuthentication?: AccessKeysAuthentication = AccessKeysAuthentication.Disabled; +} + +/** + * Properties of Redis Enterprise databases, as opposed to general resource properties like location, tags + */ +model DatabaseProperties { + /** + * Specifies whether redis clients can connect using TLS-encrypted or plaintext redis protocols. Default is TLS-encrypted. + */ + clientProtocol?: Protocol; + + /** + * TCP port of the database endpoint. Specified at create time. Defaults to an available port. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + port?: int32; + + /** + * Current provisioning status of the database + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Current resource status of the database + */ + @visibility(Lifecycle.Read) + resourceState?: ResourceState; + + /** + * Clustering policy - default is OSSCluster. This property can be updated only if the current value is NoCluster. If the value is OSSCluster or EnterpriseCluster, it cannot be updated without deleting the database. + */ + @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) + clusteringPolicy?: ClusteringPolicy; + + /** + * Redis eviction policy - default is VolatileLRU + */ + evictionPolicy?: EvictionPolicy; + + /** + * Persistence settings + */ + persistence?: Persistence; + + /** + * Optional set of redis modules to enable in this database - modules can only be added at creation time. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + @identifiers(#["name"]) + modules?: Module[]; + + /** + * Optional set of properties to configure geo replication for this database. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + geoReplication?: DatabasePropertiesGeoReplication; + + /** + * Version of Redis the database is running on, e.g. '6.0' + */ + @visibility(Lifecycle.Read) + redisVersion?: string; + + /** + * Option to defer upgrade when newest version is released - default is NotDeferred. Learn more: https://aka.ms/redisversionupgrade + */ + deferUpgrade?: DeferUpgradeSetting; + + /** + * This property can be Enabled/Disabled to allow or deny access with the current access keys. Can be updated even after database is created. + */ + accessKeysAuthentication?: AccessKeysAuthentication; +} + +/** + * Persistence-related configuration for the Redis Enterprise database + */ +model Persistence { + /** + * Sets whether AOF is enabled. Note that at most one of AOF or RDB persistence may be enabled. + */ + aofEnabled?: boolean; + + /** + * Sets whether RDB is enabled. Note that at most one of AOF or RDB persistence may be enabled. + */ + rdbEnabled?: boolean; + + /** + * Sets the frequency at which data is written to disk. Defaults to '1s', meaning 'every second'. Note that the 'always' setting is deprecated, because of its performance impact. + */ + aofFrequency?: AofFrequency; + + /** + * Sets the frequency at which a snapshot of the database is created. + */ + rdbFrequency?: RdbFrequency; +} + +/** + * Specifies configuration of a redis module + */ +model Module { + /** + * The name of the module, e.g. 'RedisBloom', 'RediSearch', 'RedisTimeSeries' + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + name: string; + + /** + * Configuration options for the module, e.g. 'ERROR_RATE 0.01 INITIAL_SIZE 400'. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + args?: string; + + /** + * The version of the module, e.g. '1.0'. + */ + @visibility(Lifecycle.Read) + version?: string; +} + +/** + * Optional set of properties to configure geo replication for this database. + */ +model DatabasePropertiesGeoReplication { + /** + * Name for the group of linked database resources + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + groupNickname?: string; + + /** + * List of database resources to link with this database + */ + linkedDatabases?: LinkedDatabase[]; +} + +/** + * Specifies details of a linked database resource. + */ +model LinkedDatabase { + /** + * Resource ID of a database resource to link with this database. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + id?: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.Cache/redisEnterprise/databases"; + } + ]>; + + /** + * State of the link between the database resources. + */ + @visibility(Lifecycle.Read) + state?: LinkState; +} + +/** + * Common fields that are returned in the response for all Azure Resource Manager resources + */ +model ResourceAutoGenerated { + /** + * Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + */ + @visibility(Lifecycle.Read) + id?: string; + + /** + * The name of the resource + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + */ + @visibility(Lifecycle.Read) + type?: string; + + /** + * Azure Resource Manager metadata containing createdBy and modifiedBy information. + */ + @visibility(Lifecycle.Read) + systemData?: SystemData; +} + +/** + * A partial update to the Redis Enterprise database + */ +model DatabaseUpdate { + /** + * Properties of the database. + */ + properties?: DatabaseUpdateProperties; +} + +/** + * Properties for updating Redis Enterprise databases + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model DatabaseUpdateProperties extends DatabaseProperties { + /** + * This property can be Enabled/Disabled to allow or deny access with the current access keys. Can be updated even after database is created. Default is Disabled. + */ + accessKeysAuthentication?: AccessKeysAuthentication; +} + +/** + * The secret access keys used for authenticating connections to redis + */ +model AccessKeys { + /** + * The current primary key that clients can use to authenticate + */ + #suppress "@azure-tools/typespec-azure-resource-manager/secret-prop" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + primaryKey?: string; + + /** + * The current secondary key that clients can use to authenticate + */ + #suppress "@azure-tools/typespec-azure-resource-manager/secret-prop" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + secondaryKey?: string; +} + +/** + * Specifies which access keys to reset to a new random value. + */ +model RegenerateKeyParameters { + /** + * Which access key to regenerate. + */ + keyType: AccessKeyType; +} + +/** + * Parameters for a Redis Enterprise import operation. + */ +model ImportClusterParameters { + /** + * SAS URIs for the target blobs to import from + */ + @secret + sasUris: string[]; +} + +/** + * Parameters for a Redis Enterprise export operation. + */ +model ExportClusterParameters { + /** + * SAS URI for the target directory to export to + */ + @secret + sasUri: string; +} + +/** + * Properties of Redis Enterprise database access policy assignment. + */ +model AccessPolicyAssignmentProperties { + /** + * Current provisioning status of the access policy assignment. + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Name of access policy under specific access policy assignment. Only "default" policy is supported for now. + */ + @pattern("^([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]|[a-zA-Z0-9])$") + accessPolicyName: string; + + /** + * The user associated with the access policy. + */ + user: AccessPolicyAssignmentPropertiesUser; +} + +/** + * The user associated with the access policy. + */ +model AccessPolicyAssignmentPropertiesUser { + /** + * The object ID of the user. + */ + objectId?: string; +} + +/** + * The response of a list-all operation. + */ +model AccessPolicyAssignmentList is Azure.Core.Page; + +/** + * The response of a listSkusForScaling operation. + */ +model SkuDetailsList { + /** + * List of SKUS available to scale up or scale down. + */ + skus?: SkuDetails[]; +} + +/** + * Details of a Redis Enterprise cluster SKU. + */ +model SkuDetails { + /** + * The name of the SKU. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The cache size in GB. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + sizeInGB?: float32; +} + +/** + * Parameters for a Redis Enterprise Active Geo Replication Force Unlink operation. + */ +model ForceUnlinkParameters { + /** + * The resource IDs of the database resources to be unlinked. + */ + ids: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.Cache/redisEnterprise/databases"; + } + ]>[]; +} + +/** + * Parameters for reconfiguring active geo-replication, of an existing database that was previously unlinked from a replication group. + */ +model ForceLinkParameters { + /** + * Properties to configure geo replication for this database. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + geoReplication: ForceLinkParametersGeoReplication; +} + +/** + * Properties to configure geo replication for this database. + */ +model ForceLinkParametersGeoReplication { + /** + * The name of the group of linked database resources. This should match the existing replication group name. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + groupNickname?: string; + + /** + * The resource IDs of the databases that are expected to be linked and included in the replication group. This parameter is used to validate that the linking is to the expected (unlinked) part of the replication group, if it is splintered. + */ + linkedDatabases?: LinkedDatabase[]; +} + +/** + * Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). + */ +@error +model ErrorResponseAutoGenerated { + /** + * The error object. + */ + error?: ErrorDetailAutoGenerated; +} + +/** + * The error detail. + */ +model ErrorDetailAutoGenerated { + /** + * The error code. + */ + @visibility(Lifecycle.Read) + code?: string; + + /** + * The error message. + */ + @visibility(Lifecycle.Read) + message?: string; + + /** + * The error target. + */ + @visibility(Lifecycle.Read) + target?: string; + + /** + * The error details. + */ + @visibility(Lifecycle.Read) + @identifiers(#["message", "target"]) + details?: ErrorDetailAutoGenerated[]; + + /** + * The error additional info. + */ + @visibility(Lifecycle.Read) + @identifiers(#[]) + additionalInfo?: ErrorAdditionalInfo[]; +} + +/** + * Parameters for a Redis Enterprise active geo-replication flush operation + */ +model FlushParameters { + /** + * The identifiers of all the other database resources in the georeplication group to be flushed. + */ + ids?: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.Cache/redisEnterprise/databases"; + } + ]>[]; +} + +/** + * The response of a list-all migrations. + */ +model MigrationList is Azure.Core.Page; + +/** + * Properties for Redis Enterprise migration operation. + */ +@discriminator("sourceType") +model MigrationProperties { + /** + * Describes the source of the migration operation. + */ + sourceType: SourceType; + + /** + * The Azure resource ID of the Azure Managed Redis destination cache to migrate. + */ + @visibility(Lifecycle.Read) + targetResourceId?: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.Cache/redisEnterprise"; + } + ]>; + + /** + * Current provisioning status of the migration + */ + @visibility(Lifecycle.Read) + provisioningState?: MigrationProvisioningState; + + /** + * Additional details about the migration operation's status in free text format. + */ + @visibility(Lifecycle.Read) + statusDetails?: string; + + /** + * The timestamp when the migration operation was created. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + creationTime?: utcDateTime; + + /** + * The timestamp when the migration operation was last updated. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastModifiedTime?: utcDateTime; +} + +/** + * Properties for Redis Enterprise migration operation for Azure Cache for Redis. + */ +model AzureCacheForRedisMigrationProperties extends MigrationProperties { + /** + * The source resource ID to migrate from. This is the resource ID of the Azure Cache for Redis. + */ + sourceResourceId: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.Cache/redis"; + } + ]>; + + /** + * Sets whether the DNS is switched automatically after the data is transferred from the source cache to the target cache. This property must be true during the preview. + */ + switchDns: boolean; + + /** + * Sets whether the data is migrated from source to target or not. This property must be true during the preview. + */ + skipDataMigration: boolean; + + /** + * Describes the source of the migration operation. + */ + sourceType: "AzureCacheForRedis"; +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/routes.tsp b/specification/redisenterprise/RedisEnterprise.Management/routes.tsp new file mode 100644 index 000000000000..33adbdf802b3 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/routes.tsp @@ -0,0 +1,35 @@ +// FIXME: Operations in this file are not detected as a resource operation, please confirm the conversion result manually + +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models.tsp"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using TypeSpec.OpenAPI; + +namespace Microsoft.Cache; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface OperationsStatusOperationGroup { + /** + * Gets the status of operation. + */ + @route("/subscriptions/{subscriptionId}/providers/Microsoft.Cache/locations/{location}/operationsStatus/{operationId}") + @get + get( + ...ApiVersionParameter, + ...LocationResourceParameter, + ...SubscriptionIdParameter, + + /** + * The ID of an ongoing async operation. + */ + @minLength(1) + @path + operationId: string, + ): ArmResponse | ErrorResponse; +} diff --git a/specification/redisenterprise/RedisEnterprise.Management/tspconfig.yaml b/specification/redisenterprise/RedisEnterprise.Management/tspconfig.yaml new file mode 100644 index 000000000000..a8773953b559 --- /dev/null +++ b/specification/redisenterprise/RedisEnterprise.Management/tspconfig.yaml @@ -0,0 +1,46 @@ +parameters: + "service-dir": + default: "sdk/redisenterprise" + "dependencies": + default: "" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + omit-unreachable-types: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/RedisEnterprise/{version-status}/{version}/redisenterprise.json" + emit-lro-options: "all" + examples-dir: "{project-root}/examples" + "@azure-tools/typespec-python": + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-redisenterprise" + namespace: "azure.mgmt.redisenterprise" + generate-test: true + generate-sample: true + flavor: azure + "@azure-tools/typespec-ts": + emitter-output-dir: "{output-dir}/{service-dir}/arm-redisenterprisecache" + package-details: + name: "@azure/arm-redisenterprisecache" + is-modular-library: true + experimental-extensible-enums: true + flavor: azure + "@azure-tools/typespec-java": + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-redisenterprise" + namespace: com.azure.resourcemanager.redisenterprise + flavor: azure + "@azure-tools/typespec-go": + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armredisenterprise" + service-dir: "sdk/resourcemanager/redisenterprise" + emitter-output-dir: "{output-dir}/{service-dir}/armredisenterprise" + fix-const-stuttering: false + generate-fakes: true + inject-spans: true + single-client: false + flavor: azure + generate-samples: true + head-as-boolean: true +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/OperationsList.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/OperationsList.json index d16a5398041b..3b3a61b4ae77 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/OperationsList.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/OperationsList.json @@ -9,23 +9,25 @@ { "name": "Microsoft.Cache/redisEnterprise/read", "display": { - "provider": "Microsoft Cache", - "resource": "Redis Enterprise cache", + "description": "View the Redis Enterprise cache's settings and configuration in the management portal", "operation": "Manage Redis Enterprise cache (read)", - "description": "View the Redis Enterprise cache's settings and configuration in the management portal" + "provider": "Microsoft Cache", + "resource": "Redis Enterprise cache" } }, { "name": "Microsoft.Cache/redisEnterprise/write", "display": { - "provider": "Microsoft Cache", - "resource": "Redis Enterprise cache", + "description": "Modify the Redis Enterprise cache's settings and configuration in the management portal", "operation": "Manage Redis Enterprise cache (write)", - "description": "Modify the Redis Enterprise cache's settings and configuration in the management portal" + "provider": "Microsoft Cache", + "resource": "Redis Enterprise cache" } } ] } } - } + }, + "operationId": "Operations_List", + "title": "OperationsList" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/OperationsStatusGet.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/OperationsStatusGet.json index 71ddc2eb5906..25717fff3adb 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/OperationsStatusGet.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/OperationsStatusGet.json @@ -1,19 +1,21 @@ { "parameters": { - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", - "location": "West US", "operationId": "testoperationid", - "api-version": "2025-08-01-preview" + "api-version": "2025-08-01-preview", + "location": "West US", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/locations/westus/operationsStatus/testoperationid", "name": "testoperationid", - "startTime": "2017-01-01T13:13:13.933Z", "endTime": "2017-01-01T16:13:13.933Z", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/locations/westus/operationsStatus/testoperationid", + "startTime": "2017-01-01T13:13:13.933Z", "status": "Succeeded" } } - } + }, + "operationId": "OperationsStatus_Get", + "title": "OperationsStatusGet" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentCreateUpdate.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentCreateUpdate.json index dde31f9c14cb..dda5d33fe696 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentCreateUpdate.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentCreateUpdate.json @@ -1,11 +1,9 @@ { "parameters": { + "accessPolicyAssignmentName": "defaultTestEntraApp1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", - "resourceGroupName": "rg1", "clusterName": "cache1", "databaseName": "default", - "accessPolicyAssignmentName": "defaultTestEntraApp1", "parameters": { "properties": { "accessPolicyName": "default", @@ -13,17 +11,19 @@ "objectId": "6497c918-11ad-41e7-1b0f-7c518a87d0b0" } } - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default/accessPolicyAssignments/default-TestEntraApp1", "name": "defaultTestEntraApp1", "type": "Microsoft.Cache/redisEnterprise/accessPolicyAssignments", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default/accessPolicyAssignments/default-TestEntraApp1", "properties": { - "provisioningState": "Succeeded", "accessPolicyName": "default", + "provisioningState": "Succeeded", "user": { "objectId": "6497c918-11ad-41e7-1b0f-7c518a87d0b0" } @@ -32,17 +32,19 @@ }, "201": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default/accessPolicyAssignments/default-TestEntraApp1", "name": "defaultTestEntraApp1", "type": "Microsoft.Cache/redisEnterprise/accessPolicyAssignments", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default/accessPolicyAssignments/default-TestEntraApp1", "properties": { - "provisioningState": "Succeeded", "accessPolicyName": "default", + "provisioningState": "Succeeded", "user": { "objectId": "6497c918-11ad-41e7-1b0f-7c518a87d0b0" } } } } - } + }, + "operationId": "AccessPolicyAssignment_CreateUpdate", + "title": "RedisEnterpriseAccessPolicyAssignmentCreateUpdate" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentDelete.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentDelete.json index 7845d29fc7a0..f7c2cbef4539 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentDelete.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentDelete.json @@ -1,11 +1,11 @@ { "parameters": { + "accessPolicyAssignmentName": "defaultTestEntraApp1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", - "resourceGroupName": "rg1", "clusterName": "cache1", "databaseName": "default", - "accessPolicyAssignmentName": "defaultTestEntraApp1" + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "202": { @@ -15,5 +15,7 @@ } }, "204": {} - } + }, + "operationId": "AccessPolicyAssignment_Delete", + "title": "RedisEnterpriseAccessPolicyAssignmentDelete" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentGet.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentGet.json index c6a6e55ea314..f1c043c75fd8 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentGet.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentGet.json @@ -1,26 +1,28 @@ { "parameters": { + "accessPolicyAssignmentName": "accessPolicyAssignmentName1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", - "resourceGroupName": "rg1", "clusterName": "cache1", "databaseName": "default", - "accessPolicyAssignmentName": "accessPolicyAssignmentName1" + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/accessPolicyAssignmentName1", "name": "accessPolicyAssignmentName1", "type": "Microsoft.Cache/Redis/accessPolicyAssignments", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/accessPolicyAssignmentName1", "properties": { - "provisioningState": "Succeeded", "accessPolicyName": "default", + "provisioningState": "Succeeded", "user": { "objectId": "6497c918-11ad-41e7-1b0f-7c518a87d0b0" } } } } - } + }, + "operationId": "AccessPolicyAssignment_Get", + "title": "RedisEnterpriseAccessPolicyAssignmentGet" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentsList.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentsList.json index 499cbe51b477..f7306be70b91 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentsList.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseAccessPolicyAssignmentsList.json @@ -1,34 +1,34 @@ { "parameters": { "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", - "resourceGroupName": "rg1", "clusterName": "cache1", - "databaseName": "default" + "databaseName": "default", + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/accessPolicyAssignmentName1", "name": "accessPolicyAssignmentName1", "type": "Microsoft.Cache/Redis/accessPolicyAssignments", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/accessPolicyAssignmentName1", "properties": { - "provisioningState": "Succeeded", "accessPolicyName": "default", + "provisioningState": "Succeeded", "user": { "objectId": "6497c918-11ad-41e7-1b0f-7c518a87d0b0" } } }, { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/accessPolicyAssignmentName2", "name": "accessPolicyAssignmentName2", "type": "Microsoft.Cache/Redis/accessPolicyAssignments", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/accessPolicyAssignmentName2", "properties": { - "provisioningState": "Succeeded", "accessPolicyName": "default", + "provisioningState": "Succeeded", "user": { "objectId": "7497c918-11ad-41e7-1b0f-7c518a87d0b0" } @@ -37,5 +37,7 @@ ] } } - } + }, + "operationId": "AccessPolicyAssignment_List", + "title": "RedisEnterpriseAccessPolicyAssignmentList" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseCreate.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseCreate.json index 4869c1a9a32e..69e85e85bf04 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseCreate.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseCreate.json @@ -1,28 +1,16 @@ { "parameters": { - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", "parameters": { - "location": "West US", - "sku": { - "name": "EnterpriseFlash_F300", - "capacity": 3 - }, - "zones": [ - "1", - "2", - "3" - ], "identity": { "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/your-subscription/resourceGroups/your-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/your-identity": {} } }, + "location": "West US", "properties": { - "minimumTlsVersion": "1.2", "encryption": { "customerManagedKeyEncryption": { "keyEncryptionKeyIdentity": { @@ -32,6 +20,7 @@ "keyEncryptionKeyUrl": "https://your-kv.vault.azure.net/keys/your-key/your-key-version" } }, + "minimumTlsVersion": "1.2", "publicNetworkAccess": "Disabled", "maintenanceConfiguration": { "maintenanceWindows": [ @@ -62,43 +51,43 @@ ] } }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 3 + }, "tags": { "tag1": "value1" - } - } + }, + "zones": [ + "1", + "2", + "3" + ] + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { - "201": { + "200": { "body": { "name": "cache1", "type": "Microsoft.Cache/redisEnterprise", "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", - "location": "West US", - "kind": "v1", - "sku": { - "name": "EnterpriseFlash_F300", - "capacity": 3 - }, - "zones": [ - "1", - "2", - "3" - ], "identity": { "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/your-subscription/resourceGroups/your-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/your-identity": { - "principalId": "00000000-0000-0000-0000-000000000000", - "clientId": "00000000-0000-0000-0000-000000000000" + "clientId": "00000000-0000-0000-0000-000000000000", + "principalId": "00000000-0000-0000-0000-000000000000" } } }, + "kind": "v1", + "location": "West US", "properties": { - "provisioningState": "Creating", - "resourceState": "Creating", "hostName": "cache1.westus.something.azure.net", - "redisVersion": "5", "minimumTlsVersion": "1.2", + "provisioningState": "Succeeded", "publicNetworkAccess": "Disabled", "maintenanceConfiguration": { "maintenanceWindows": [ @@ -128,52 +117,52 @@ } ] }, - "encryption": { - "customerManagedKeyEncryption": { - "keyEncryptionKeyIdentity": { - "userAssignedIdentityResourceId": "/subscriptions/your-subscription/resourceGroups/your-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/your-identity", - "identityType": "userAssignedIdentity" - }, - "keyEncryptionKeyUrl": "https://your-kv.vault.azure.net/keys/your-key/your-key-version" - } - } + "redisVersion": "5", + "resourceState": "Running" }, - "tags": { - "tag1": "value1" - } - } - }, - "200": { - "body": { - "name": "cache1", - "type": "Microsoft.Cache/redisEnterprise", - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", - "location": "West US", - "kind": "v1", "sku": { "name": "EnterpriseFlash_F300", "capacity": 3 }, + "tags": { + "tag1": "value1" + }, "zones": [ "1", "2", "3" - ], + ] + } + }, + "201": { + "body": { + "name": "cache1", + "type": "Microsoft.Cache/redisEnterprise", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", "identity": { "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/your-subscription/resourceGroups/your-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/your-identity": { - "principalId": "00000000-0000-0000-0000-000000000000", - "clientId": "00000000-0000-0000-0000-000000000000" + "clientId": "00000000-0000-0000-0000-000000000000", + "principalId": "00000000-0000-0000-0000-000000000000" } } }, + "kind": "v1", + "location": "West US", "properties": { - "provisioningState": "Succeeded", - "resourceState": "Running", + "encryption": { + "customerManagedKeyEncryption": { + "keyEncryptionKeyIdentity": { + "identityType": "userAssignedIdentity", + "userAssignedIdentityResourceId": "/subscriptions/your-subscription/resourceGroups/your-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/your-identity" + }, + "keyEncryptionKeyUrl": "https://your-kv.vault.azure.net/keys/your-key/your-key-version" + } + }, "hostName": "cache1.westus.something.azure.net", - "redisVersion": "5", "minimumTlsVersion": "1.2", + "provisioningState": "Creating", "publicNetworkAccess": "Disabled", "maintenanceConfiguration": { "maintenanceWindows": [ @@ -202,12 +191,25 @@ } } ] - } + }, + "redisVersion": "5", + "resourceState": "Creating" + }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 3 }, "tags": { "tag1": "value1" - } + }, + "zones": [ + "1", + "2", + "3" + ] } } - } + }, + "operationId": "RedisEnterprise_Create", + "title": "RedisEnterpriseCreate" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesCreate.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesCreate.json index 83b8dcc20857..197e3a72d143 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesCreate.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesCreate.json @@ -1,20 +1,15 @@ { "parameters": { - "databaseName": "default", - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", + "databaseName": "default", "parameters": { "properties": { + "accessKeysAuthentication": "Enabled", "clientProtocol": "Encrypted", "clusteringPolicy": "EnterpriseCluster", + "deferUpgrade": "NotDeferred", "evictionPolicy": "AllKeysLRU", - "persistence": { - "aofEnabled": true, - "aofFrequency": "1s" - }, - "port": 10000, "modules": [ { "name": "RedisBloom", @@ -28,28 +23,28 @@ "name": "RediSearch" } ], - "deferUpgrade": "NotDeferred", - "accessKeysAuthentication": "Enabled" + "persistence": { + "aofEnabled": true, + "aofFrequency": "1s" + }, + "port": 10000 } - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "name": "cache1/default", "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "properties": { - "provisioningState": "Updating", - "resourceState": "Updating", + "accessKeysAuthentication": "Enabled", "clientProtocol": "Encrypted", "clusteringPolicy": "EnterpriseCluster", + "deferUpgrade": "NotDeferred", "evictionPolicy": "AllKeysLRU", - "persistence": { - "aofEnabled": true, - "aofFrequency": "1s" - }, - "port": 10000, "modules": [ { "name": "RedisBloom", @@ -67,28 +62,27 @@ "version": "1.0.0" } ], - "deferUpgrade": "NotDeferred", - "accessKeysAuthentication": "Enabled", - "redisVersion": "6.0" + "persistence": { + "aofEnabled": true, + "aofFrequency": "1s" + }, + "port": 10000, + "provisioningState": "Updating", + "redisVersion": "6.0", + "resourceState": "Updating" } } }, "201": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/db1", "name": "cache1/db1", "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/db1", "properties": { - "provisioningState": "Creating", - "resourceState": "Creating", + "accessKeysAuthentication": "Enabled", "clientProtocol": "Encrypted", "clusteringPolicy": "EnterpriseCluster", "evictionPolicy": "AllKeysLRU", - "persistence": { - "aofEnabled": true, - "aofFrequency": "1s" - }, - "port": 10000, "modules": [ { "name": "RedisBloom", @@ -106,9 +100,17 @@ "version": "1.0.0" } ], - "accessKeysAuthentication": "Enabled" + "persistence": { + "aofEnabled": true, + "aofFrequency": "1s" + }, + "port": 10000, + "provisioningState": "Creating", + "resourceState": "Creating" } } } - } + }, + "operationId": "Databases_Create", + "title": "RedisEnterpriseDatabasesCreate" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesCreateWithGeoReplication.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesCreateWithGeoReplication.json index 303fdeccaeeb..9d80a315e558 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesCreateWithGeoReplication.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesCreateWithGeoReplication.json @@ -1,17 +1,14 @@ { "parameters": { - "databaseName": "default", - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", + "databaseName": "default", "parameters": { "properties": { + "accessKeysAuthentication": "Enabled", "clientProtocol": "Encrypted", "clusteringPolicy": "EnterpriseCluster", "evictionPolicy": "NoEviction", - "port": 10000, - "accessKeysAuthentication": "Enabled", "geoReplication": { "groupNickname": "groupName", "linkedDatabases": [ @@ -22,23 +19,25 @@ "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8e/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" } ] - } + }, + "port": 10000 } - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "name": "cache1/default", "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "properties": { - "provisioningState": "Updating", - "resourceState": "Updating", + "accessKeysAuthentication": "Enabled", "clientProtocol": "Encrypted", "clusteringPolicy": "EnterpriseCluster", + "deferUpgrade": "NotDeferred", "evictionPolicy": "NoEviction", - "port": 10000, "geoReplication": { "groupNickname": "groupName", "linkedDatabases": [ @@ -52,24 +51,24 @@ } ] }, - "deferUpgrade": "NotDeferred", - "accessKeysAuthentication": "Enabled", - "redisVersion": "6.0" + "port": 10000, + "provisioningState": "Updating", + "redisVersion": "6.0", + "resourceState": "Updating" } } }, "201": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/db1", "name": "cache1/db1", "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/db1", "properties": { - "provisioningState": "Creating", - "resourceState": "Creating", + "accessKeysAuthentication": "Enabled", "clientProtocol": "Plaintext", "clusteringPolicy": "EnterpriseCluster", + "deferUpgrade": "NotDeferred", "evictionPolicy": "NoEviction", - "port": 10000, "geoReplication": { "groupNickname": "groupName", "linkedDatabases": [ @@ -83,11 +82,14 @@ } ] }, - "deferUpgrade": "NotDeferred", - "accessKeysAuthentication": "Enabled", - "redisVersion": "6.0" + "port": 10000, + "provisioningState": "Creating", + "redisVersion": "6.0", + "resourceState": "Creating" } } } - } + }, + "operationId": "Databases_Create", + "title": "RedisEnterpriseDatabasesCreate With Active Geo Replication" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesDelete.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesDelete.json index 978c4f783c6d..48b477383a80 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesDelete.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesDelete.json @@ -1,9 +1,9 @@ { "parameters": { - "databaseName": "db1", + "api-version": "2025-08-01-preview", "clusterName": "cache1", + "databaseName": "db1", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { @@ -15,5 +15,7 @@ } }, "204": {} - } + }, + "operationId": "Databases_Delete", + "title": "RedisEnterpriseDatabasesDelete" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesExport.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesExport.json index 5f8d17d518e3..853bc55b9d87 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesExport.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesExport.json @@ -1,13 +1,13 @@ { "parameters": { - "databaseName": "default", - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", + "databaseName": "default", "parameters": { "sasUri": "https://contosostorage.blob.core.window.net/urlToBlobContainer?sasKeyParameters" - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": {}, @@ -17,5 +17,7 @@ "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." } } - } + }, + "operationId": "Databases_Export", + "title": "RedisEnterpriseDatabasesExport" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesFlush.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesFlush.json index 02df4e96f665..b1ea9df3d112 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesFlush.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesFlush.json @@ -1,15 +1,15 @@ { "parameters": { - "databaseName": "default", - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", + "databaseName": "default", "parameters": { "ids": [ "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f2/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" ] - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": {}, @@ -18,5 +18,7 @@ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." } } - } + }, + "operationId": "Databases_Flush", + "title": "How to flush all the keys in the database" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesForceLink.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesForceLink.json index 1fa4444e3e4b..1bb78b13e715 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesForceLink.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesForceLink.json @@ -1,10 +1,8 @@ { "parameters": { - "databaseName": "default", - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "00000000-0000-0000-0000-000000000000", + "clusterName": "cache1", + "databaseName": "default", "parameters": { "geoReplication": { "groupNickname": "groupName", @@ -17,7 +15,9 @@ } ] } - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "202": { @@ -25,5 +25,7 @@ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Cache/...pathToOperationStatus..." } } - } + }, + "operationId": "Databases_ForceLinkToReplicationGroup", + "title": "How to relink a database after a regional outage" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesForceUnlink.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesForceUnlink.json index 02df4e96f665..a76ed5fddddb 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesForceUnlink.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesForceUnlink.json @@ -1,15 +1,15 @@ { "parameters": { - "databaseName": "default", - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", + "databaseName": "default", "parameters": { "ids": [ "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f2/resourceGroups/rg2/providers/Microsoft.Cache/redisEnterprise/cache2/databases/default" ] - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": {}, @@ -18,5 +18,7 @@ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." } } - } + }, + "operationId": "Databases_ForceUnlink", + "title": "How to unlink a database during a regional outage" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesGet.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesGet.json index 41efb6a975b7..65a2dfb4527b 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesGet.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesGet.json @@ -1,28 +1,23 @@ { "parameters": { - "databaseName": "default", + "api-version": "2025-08-01-preview", "clusterName": "cache1", + "databaseName": "default", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "name": "cache1/default", "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "properties": { - "provisioningState": "Succeeded", - "resourceState": "Running", + "accessKeysAuthentication": "Enabled", "clientProtocol": "Encrypted", "clusteringPolicy": "OSSCluster", + "deferUpgrade": "NotDeferred", "evictionPolicy": "AllKeysLRU", - "persistence": { - "rdbEnabled": true, - "rdbFrequency": "12h" - }, - "port": 10000, "modules": [ { "name": "RediSearch", @@ -30,11 +25,18 @@ "version": "1.0.0" } ], - "deferUpgrade": "NotDeferred", - "accessKeysAuthentication": "Enabled", - "redisVersion": "6.0" + "persistence": { + "rdbEnabled": true, + "rdbFrequency": "12h" + }, + "port": 10000, + "provisioningState": "Succeeded", + "redisVersion": "6.0", + "resourceState": "Running" } } } - } + }, + "operationId": "Databases_Get", + "title": "RedisEnterpriseDatabasesGet" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesImport.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesImport.json index 21894711c23d..651ad2b024f7 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesImport.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesImport.json @@ -1,16 +1,16 @@ { "parameters": { - "databaseName": "default", - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", + "databaseName": "default", "parameters": { "sasUris": [ "https://contosostorage.blob.core.window.net/urltoBlobFile1?sasKeyParameters", "https://contosostorage.blob.core.window.net/urltoBlobFile2?sasKeyParameters" ] - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": {}, @@ -20,5 +20,7 @@ "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." } } - } + }, + "operationId": "Databases_Import", + "title": "RedisEnterpriseDatabasesImport" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesListByCluster.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesListByCluster.json index edf897f5630c..cd8fb6267481 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesListByCluster.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesListByCluster.json @@ -1,8 +1,8 @@ { "parameters": { + "api-version": "2025-08-01-preview", "clusterName": "cache1", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { @@ -10,20 +10,15 @@ "body": { "value": [ { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "name": "cache1/default", "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "properties": { - "provisioningState": "Succeeded", - "resourceState": "Running", + "accessKeysAuthentication": "Disabled", "clientProtocol": "Encrypted", "clusteringPolicy": "OSSCluster", + "deferUpgrade": "NotDeferred", "evictionPolicy": "AllKeysLRU", - "persistence": { - "rdbEnabled": true, - "rdbFrequency": "12h" - }, - "port": 10000, "modules": [ { "name": "RediSearch", @@ -31,13 +26,20 @@ "version": "1.0.0" } ], - "deferUpgrade": "NotDeferred", + "persistence": { + "rdbEnabled": true, + "rdbFrequency": "12h" + }, + "port": 10000, + "provisioningState": "Succeeded", "redisVersion": "6.0", - "accessKeysAuthentication": "Disabled" + "resourceState": "Running" } } ] } } - } + }, + "operationId": "Databases_ListByCluster", + "title": "RedisEnterpriseDatabasesListByCluster" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesListKeys.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesListKeys.json index 796646936b78..0c517b232145 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesListKeys.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesListKeys.json @@ -1,9 +1,9 @@ { "parameters": { - "databaseName": "default", + "api-version": "2025-08-01-preview", "clusterName": "cache1", + "databaseName": "default", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { @@ -13,5 +13,7 @@ "secondaryKey": "" } } - } + }, + "operationId": "Databases_ListKeys", + "title": "RedisEnterpriseDatabasesListKeys" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesNoClusterCacheCreate.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesNoClusterCacheCreate.json index 740521f10b07..110afb130068 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesNoClusterCacheCreate.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesNoClusterCacheCreate.json @@ -1,10 +1,8 @@ { "parameters": { - "databaseName": "default", - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", + "databaseName": "default", "parameters": { "properties": { "clientProtocol": "Encrypted", @@ -12,44 +10,48 @@ "evictionPolicy": "NoEviction", "port": 10000 } - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { - "201": { + "200": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "name": "cache1/default", "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "properties": { + "accessKeysAuthentication": "Enabled", "clientProtocol": "Encrypted", - "port": 10000, - "provisioningState": "Creating", - "resourceState": "Creating", "clusteringPolicy": "NoCluster", - "evictionPolicy": "NoEviction", "deferUpgrade": "NotDeferred", + "evictionPolicy": "NoEviction", + "port": 10000, + "provisioningState": "Updating", "redisVersion": "7.2", - "accessKeysAuthentication": "Enabled" + "resourceState": "Updating" } } }, - "200": { + "201": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "name": "cache1/default", "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "properties": { + "accessKeysAuthentication": "Enabled", "clientProtocol": "Encrypted", - "port": 10000, - "provisioningState": "Updating", - "resourceState": "Updating", "clusteringPolicy": "NoCluster", - "evictionPolicy": "NoEviction", "deferUpgrade": "NotDeferred", + "evictionPolicy": "NoEviction", + "port": 10000, + "provisioningState": "Creating", "redisVersion": "7.2", - "accessKeysAuthentication": "Enabled" + "resourceState": "Creating" } } } - } + }, + "operationId": "Databases_Create", + "title": "RedisEnterpriseDatabasesCreate No Cluster Cache" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesNoClusterCacheUpdateClustering.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesNoClusterCacheUpdateClustering.json index 1e3c897ebb49..a475d3058bd5 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesNoClusterCacheUpdateClustering.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesNoClusterCacheUpdateClustering.json @@ -1,10 +1,8 @@ { "parameters": { - "databaseName": "default", - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", + "databaseName": "default", "parameters": { "properties": { "clientProtocol": "Encrypted", @@ -12,24 +10,26 @@ "evictionPolicy": "NoEviction", "port": 10000 } - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "name": "cache1/default", "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "properties": { + "accessKeysAuthentication": "Enabled", "clientProtocol": "Encrypted", - "port": 10000, - "provisioningState": "Updating", - "resourceState": "Updating", "clusteringPolicy": "EnterpriseCluster", - "evictionPolicy": "NoEviction", "deferUpgrade": "NotDeferred", + "evictionPolicy": "NoEviction", + "port": 10000, + "provisioningState": "Updating", "redisVersion": "7.2", - "accessKeysAuthentication": "Enabled" + "resourceState": "Updating" } } }, @@ -39,5 +39,7 @@ "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." } } - } + }, + "operationId": "Databases_Update", + "title": "RedisEnterpriseDatabasesUpdate Clustering on No Cluster Cache" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesRegenerateKey.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesRegenerateKey.json index d21e68bf2df0..b7afca7d9598 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesRegenerateKey.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesRegenerateKey.json @@ -1,13 +1,13 @@ { "parameters": { - "databaseName": "default", - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", + "databaseName": "default", "parameters": { "keyType": "Primary" - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { @@ -22,5 +22,7 @@ "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." } } - } + }, + "operationId": "Databases_RegenerateKey", + "title": "RedisEnterpriseDatabasesRegenerateKey" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesUpdate.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesUpdate.json index a163954a9a61..4cdbf59d95d6 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesUpdate.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesUpdate.json @@ -1,39 +1,34 @@ { "parameters": { - "databaseName": "default", - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", + "databaseName": "default", "parameters": { "properties": { + "accessKeysAuthentication": "Enabled", "clientProtocol": "Encrypted", "evictionPolicy": "AllKeysLRU", "persistence": { "rdbEnabled": true, "rdbFrequency": "12h" - }, - "accessKeysAuthentication": "Enabled" + } } - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "name": "cache1/default", "type": "Microsoft.Cache/redisEnterprise/databases", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/databases/default", "properties": { - "provisioningState": "Updating", - "resourceState": "Updating", + "accessKeysAuthentication": "Enabled", "clientProtocol": "Encrypted", "clusteringPolicy": "OSSCluster", + "deferUpgrade": "NotDeferred", "evictionPolicy": "AllKeysLRU", - "persistence": { - "rdbEnabled": true, - "rdbFrequency": "12h" - }, - "port": 10000, "modules": [ { "name": "RediSearch", @@ -41,9 +36,14 @@ "version": "1.0.0" } ], - "deferUpgrade": "NotDeferred", - "accessKeysAuthentication": "Enabled", - "redisVersion": "6.0" + "persistence": { + "rdbEnabled": true, + "rdbFrequency": "12h" + }, + "port": 10000, + "provisioningState": "Updating", + "redisVersion": "6.0", + "resourceState": "Updating" } } }, @@ -53,5 +53,7 @@ "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." } } - } + }, + "operationId": "Databases_Update", + "title": "RedisEnterpriseDatabasesUpdate" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesUpgradeDBRedisVersion.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesUpgradeDBRedisVersion.json index 84e5e4af88f4..ebe965a0db6c 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesUpgradeDBRedisVersion.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDatabasesUpgradeDBRedisVersion.json @@ -1,9 +1,9 @@ { "parameters": { - "databaseName": "default", + "api-version": "2025-08-01-preview", "clusterName": "cache1", + "databaseName": "default", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { @@ -12,5 +12,7 @@ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." } } - } + }, + "operationId": "Databases_UpgradeDBRedisVersion", + "title": "How to upgrade your database Redis version" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDelete.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDelete.json index 1f3e979ec877..3db51b972f51 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDelete.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDelete.json @@ -1,8 +1,8 @@ { "parameters": { + "api-version": "2025-08-01-preview", "clusterName": "cache1", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { @@ -14,5 +14,7 @@ } }, "204": {} - } + }, + "operationId": "RedisEnterprise_Delete", + "title": "RedisEnterpriseDelete" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDeletePrivateEndpointConnection.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDeletePrivateEndpointConnection.json index 04d0e1de6343..a5848a2dee98 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDeletePrivateEndpointConnection.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseDeletePrivateEndpointConnection.json @@ -1,10 +1,10 @@ { "parameters": { + "api-version": "2025-08-01-preview", "clusterName": "cache1", + "privateEndpointConnectionName": "pectest01", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", - "privateEndpointConnectionName": "pectest01" + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": {}, @@ -15,5 +15,7 @@ } }, "204": {} - } + }, + "operationId": "PrivateEndpointConnections_Delete", + "title": "RedisEnterpriseDeletePrivateEndpointConnection" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseGet.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseGet.json index 56d771332b67..616885a40d3e 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseGet.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseGet.json @@ -1,34 +1,37 @@ { "parameters": { + "api-version": "2025-08-01-preview", "clusterName": "cache1", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", - "location": "West US", - "kind": "v1", - "sku": { - "name": "EnterpriseFlash_F300", - "capacity": 3 - }, - "zones": [ - "1", - "2", - "3" - ], "name": "cache1", "type": "Microsoft.Cache/redisEnterprise", - "tags": {}, + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", + "kind": "v1", + "location": "West US", "properties": { "hostName": "cache1.westus.something.azure.com", - "provisioningState": "Succeeded", - "resourceState": "Running", - "redisVersion": "6", "minimumTlsVersion": "1.2", + "privateEndpointConnections": [ + { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/cachePec", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/cachePe" + }, + "privateLinkServiceConnectionState": { + "description": "Please approve my connection", + "actionsRequired": "None", + "status": "Approved" + } + } + } + ], + "provisioningState": "Succeeded", "publicNetworkAccess": "Disabled", "maintenanceConfiguration": { "maintenanceWindows": [ @@ -58,23 +61,22 @@ } ] }, - "privateEndpointConnections": [ - { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/cachePec", - "properties": { - "privateEndpoint": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/cachePe" - }, - "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Please approve my connection", - "actionsRequired": "None" - } - } - } - ] - } + "redisVersion": "6", + "resourceState": "Running" + }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 3 + }, + "tags": {}, + "zones": [ + "1", + "2", + "3" + ] } } - } + }, + "operationId": "RedisEnterprise_Get", + "title": "RedisEnterpriseGet" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseGetPrivateEndpointConnection.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseGetPrivateEndpointConnection.json index 5f7157e9dc11..6b0480e93811 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseGetPrivateEndpointConnection.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseGetPrivateEndpointConnection.json @@ -1,29 +1,31 @@ { "parameters": { + "api-version": "2025-08-01-preview", "clusterName": "cache1", + "privateEndpointConnectionName": "pectest01", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", - "privateEndpointConnectionName": "pectest01" + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01", "name": "pectest01", "type": "Microsoft.Cache/redisEnterprise/privateEndpointConnections", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/petest01" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-Approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } } - } + }, + "operationId": "PrivateEndpointConnections_Get", + "title": "RedisEnterpriseGetPrivateEndpointConnection" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseList.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseList.json index efd94cd72a55..17ffb224165f 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseList.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseList.json @@ -6,30 +6,32 @@ "responses": { "200": { "body": { + "nextLink": null, "value": [ { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", - "location": "West US", - "kind": "v1", - "sku": { - "name": "EnterpriseFlash_F300", - "capacity": 3 - }, "name": "cache1", "type": "Microsoft.Cache/redisEnterprise", - "tags": {}, + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", + "kind": "v1", + "location": "West US", "properties": { "hostName": "cache1.westus.something.azure.com", + "minimumTlsVersion": "1.2", "provisioningState": "Succeeded", - "resourceState": "Running", + "publicNetworkAccess": "Disabled", "redisVersion": "6", - "minimumTlsVersion": "1.2", - "publicNetworkAccess": "Disabled" - } + "resourceState": "Running" + }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 3 + }, + "tags": {} } - ], - "nextLink": null + ] } } - } + }, + "operationId": "RedisEnterprise_List", + "title": "RedisEnterpriseList" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListByResourceGroup.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListByResourceGroup.json index 84ec7f265cef..66886dabd788 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListByResourceGroup.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListByResourceGroup.json @@ -7,35 +7,37 @@ "responses": { "200": { "body": { + "nextLink": null, "value": [ { + "name": "cache1", + "type": "Microsoft.Cache/redisEnterprise", "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", - "location": "West US", "kind": "v1", + "location": "West US", + "properties": { + "hostName": "cache1.westus.something.azure.com", + "minimumTlsVersion": "1.2", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled", + "redisVersion": "5", + "resourceState": "Running" + }, "sku": { "name": "EnterpriseFlash_F300", "capacity": 3 }, + "tags": {}, "zones": [ "1", "2", "3" - ], - "name": "cache1", - "type": "Microsoft.Cache/redisEnterprise", - "tags": {}, - "properties": { - "hostName": "cache1.westus.something.azure.com", - "provisioningState": "Succeeded", - "resourceState": "Running", - "redisVersion": "5", - "minimumTlsVersion": "1.2", - "publicNetworkAccess": "Disabled" - } + ] } - ], - "nextLink": null + ] } } - } + }, + "operationId": "RedisEnterprise_ListByResourceGroup", + "title": "RedisEnterpriseListByResourceGroup" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListPrivateEndpointConnections.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListPrivateEndpointConnections.json index 4bd23ce28c38..8e3b985cb933 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListPrivateEndpointConnections.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListPrivateEndpointConnections.json @@ -1,49 +1,51 @@ { "parameters": { + "api-version": "2025-08-01-preview", "clusterName": "cache1", + "privateEndpointConnectionName": "pectest01", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", - "privateEndpointConnectionName": "pectest01" + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01", "name": "pectest01", "type": "Microsoft.Cache/redisEnterprise/privateEndpointConnections", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/petest01" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-Approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } }, { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01", "name": "pectest01", "type": "Microsoft.Cache/redisEnterprise/privateEndpointConnections", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/petest01" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-Approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } ] } } - } + }, + "operationId": "PrivateEndpointConnections_List", + "title": "RedisEnterpriseListPrivateEndpointConnections" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListPrivateLinkResources.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListPrivateLinkResources.json index 72d6b0419d11..50968a4abe10 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListPrivateLinkResources.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListPrivateLinkResources.json @@ -1,8 +1,8 @@ { "parameters": { + "api-version": "2025-08-01-preview", "clusterName": "cache1", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { @@ -10,9 +10,9 @@ "body": { "value": [ { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateLinkResources/redisEnterpriseCache", "name": "redisEnterpriseCache", "type": "Microsoft.Cache/redisEnterprise/privateLinkResources", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateLinkResources/redisEnterpriseCache", "properties": { "groupId": "redisEnterpriseCache", "requiredMembers": [ @@ -26,5 +26,7 @@ ] } } - } + }, + "operationId": "PrivateLinkResources_ListByCluster", + "title": "RedisEnterpriseListPrivateLinkResources" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListSkusForScaling.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListSkusForScaling.json index 2fb75b967bc4..eb84e192a79e 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListSkusForScaling.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseListSkusForScaling.json @@ -1,8 +1,8 @@ { "parameters": { + "api-version": "2025-08-01-preview", "clusterName": "cache1", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { @@ -11,18 +11,20 @@ "skus": [ { "name": "MemoryOptimized_M100", - "sizeInGB": 120.0 + "sizeInGB": 120 }, { "name": "ComputeOptimized_X700", - "sizeInGB": 720.0 + "sizeInGB": 720 }, { "name": "Balanced_B5", - "sizeInGB": 6.0 + "sizeInGB": 6 } ] } } - } + }, + "operationId": "RedisEnterprise_ListSkusForScaling", + "title": "RedisEnterpriseListSkusForScaling" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationCancel.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationCancel.json index 84e5e4af88f4..5a0e2686bc54 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationCancel.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationCancel.json @@ -1,9 +1,9 @@ { "parameters": { - "databaseName": "default", + "api-version": "2025-08-01-preview", "clusterName": "cache1", + "databaseName": "default", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { @@ -12,5 +12,7 @@ "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." } } - } + }, + "operationId": "Migration_Cancel", + "title": "RedisEnterpriseMigrationCancel" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationGet.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationGet.json index 2bd077eb69b5..fa72e33a545a 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationGet.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationGet.json @@ -1,28 +1,30 @@ { "parameters": { + "api-version": "2025-08-01-preview", "clusterName": "cache1", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/migrations/default", "name": "cache1/default", "type": "Microsoft.Cache/redisEnterprise/migrations", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/migrations/default", "properties": { "creationTime": "2024-10-01T12:00:00Z", + "lastModifiedTime": "2024-10-01T12:00:00Z", + "provisioningState": "InProgress", + "skipDataMigration": true, "sourceResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1", "sourceType": "AzureCacheForRedis", - "targetResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", - "skipDataMigration": true, - "provisioningState": "InProgress", "statusDetails": "", "switchDns": true, - "lastModifiedTime": "2024-10-01T12:00:00Z" + "targetResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1" } } } - } + }, + "operationId": "Migration_Get", + "title": "RedisEnterpriseMigrationGet" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationList.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationList.json index 04b9fdb9898d..2c58c98eef23 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationList.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationList.json @@ -1,8 +1,8 @@ { "parameters": { + "api-version": "2025-08-01-preview", "clusterName": "cache1", "resourceGroupName": "rg1", - "api-version": "2025-08-01-preview", "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { @@ -10,23 +10,25 @@ "body": { "value": [ { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/migrations/default", "name": "cache1/default", "type": "Microsoft.Cache/redisEnterprise/migrations", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/migrations/default", "properties": { "creationTime": "2024-10-01T12:00:00Z", + "lastModifiedTime": "2024-10-01T12:00:00Z", + "provisioningState": "InProgress", + "skipDataMigration": true, "sourceResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1", "sourceType": "AzureCacheForRedis", - "targetResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", - "skipDataMigration": true, - "provisioningState": "InProgress", "statusDetails": "", "switchDns": true, - "lastModifiedTime": "2024-10-01T12:00:00Z" + "targetResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1" } } ] } } - } + }, + "operationId": "Migration_List", + "title": "RedisEnterpriseMigrationList" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationStart.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationStart.json index a91b902a05f0..6c832f1ba319 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationStart.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseMigrationStart.json @@ -1,60 +1,62 @@ { "parameters": { - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", "parameters": { "properties": { - "sourceType": "AzureCacheForRedis", + "skipDataMigration": true, "sourceResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1", - "switchDns": true, - "skipDataMigration": true + "sourceType": "AzureCacheForRedis", + "switchDns": true } - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { - "headers": { - "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." - }, "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/migrations/default", "name": "default", "type": "Microsoft.Cache/redisEnterprise/migrations", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/migrations/default", "properties": { "creationTime": "2024-10-01T12:00:00Z", + "lastModifiedTime": "2024-10-01T12:00:00Z", + "provisioningState": "Completed", + "skipDataMigration": true, "sourceResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1", "sourceType": "AzureCacheForRedis", - "targetResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", - "skipDataMigration": true, - "provisioningState": "Completed", "statusDetails": "", "switchDns": true, - "lastModifiedTime": "2024-10-01T12:00:00Z" + "targetResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1" } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." } }, "201": { - "headers": { - "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." - }, "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/migrations/default", "name": "default", "type": "Microsoft.Cache/redisEnterprise/migrations", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/migrations/default", "properties": { "creationTime": "2024-10-01T12:00:00Z", + "lastModifiedTime": "2024-10-01T12:00:00Z", + "provisioningState": "Completed", + "skipDataMigration": true, "sourceResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redis/cache1", "sourceType": "AzureCacheForRedis", - "targetResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", - "skipDataMigration": true, - "provisioningState": "Completed", "statusDetails": "", "switchDns": true, - "lastModifiedTime": "2024-10-01T12:00:00Z" + "targetResourceId": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1" } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationStatus..." } } - } + }, + "operationId": "Migration_Start", + "title": "RedisEnterpriseMigrationStart" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterprisePutPrivateEndpointConnection.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterprisePutPrivateEndpointConnection.json index a42ab40bda52..19c517381b6b 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterprisePutPrivateEndpointConnection.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterprisePutPrivateEndpointConnection.json @@ -1,37 +1,39 @@ { "parameters": { - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", "privateEndpointConnectionName": "pectest01", "properties": { "properties": { "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Auto-Approved" + "description": "Auto-Approved", + "status": "Approved" } } - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "201": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01", "name": "pectest01", "type": "Microsoft.Cache/redisEnterprise/privateEndpointConnections", + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1/privateEndpointConnections/pectest01", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Network/privateEndpoints/petest01" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-Approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } } - } + }, + "operationId": "PrivateEndpointConnections_Put", + "title": "RedisEnterprisePutPrivateEndpointConnection" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseUpdate.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseUpdate.json index ed7ba916e8d7..ceb7e2143c95 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseUpdate.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/examples/RedisEnterpriseUpdate.json @@ -1,14 +1,8 @@ { "parameters": { - "clusterName": "cache1", - "resourceGroupName": "rg1", "api-version": "2025-08-01-preview", - "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f", + "clusterName": "cache1", "parameters": { - "sku": { - "name": "EnterpriseFlash_F300", - "capacity": 9 - }, "properties": { "minimumTlsVersion": "1.2", "publicNetworkAccess": "Enabled", @@ -41,40 +35,32 @@ ] } }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 9 + }, "tags": { "tag1": "value1" } - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f" }, "responses": { "200": { "body": { - "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", "name": "cache1", "type": "Microsoft.Cache/redisEnterprise", - "location": "West US", - "kind": "v1", - "sku": { - "name": "EnterpriseFlash_F300", - "capacity": 9 - }, + "id": "/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/resourceGroups/rg1/providers/Microsoft.Cache/redisEnterprise/cache1", "identity": { "type": "None" }, - "zones": [ - "1", - "2", - "3" - ], - "tags": { - "tag1": "value1" - }, + "kind": "v1", + "location": "West US", "properties": { "hostName": "cache1.westus.something.azure.com", - "provisioningState": "Updating", - "resourceState": "Updating", - "redisVersion": "5", "minimumTlsVersion": "1.2", + "provisioningState": "Updating", "publicNetworkAccess": "Enabled", "maintenanceConfiguration": { "maintenanceWindows": [ @@ -103,8 +89,22 @@ } } ] - } - } + }, + "redisVersion": "5", + "resourceState": "Updating" + }, + "sku": { + "name": "EnterpriseFlash_F300", + "capacity": 9 + }, + "tags": { + "tag1": "value1" + }, + "zones": [ + "1", + "2", + "3" + ] } }, "202": { @@ -113,5 +113,7 @@ "Location": "https://management.azure.com/subscriptions/e7b5a9d2-6b6a-4d2f-9143-20d9a10f5b8f/providers/Microsoft.Cache/...pathToOperationResult..." } } - } + }, + "operationId": "RedisEnterprise_Update", + "title": "RedisEnterpriseUpdate" } diff --git a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/redisenterprise.json b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/redisenterprise.json index 9709e95169d1..3883786fb726 100644 --- a/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/redisenterprise.json +++ b/specification/redisenterprise/resource-manager/Microsoft.Cache/RedisEnterprise/preview/2025-08-01-preview/redisenterprise.json @@ -1,18 +1,23 @@ { "swagger": "2.0", "info": { - "version": "2025-08-01-preview", "title": "RedisEnterpriseManagementClient", - "description": "REST API for managing Redis Enterprise resources in Azure." + "version": "2025-08-01-preview", + "description": "REST API for managing Redis Enterprise resources in Azure.", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, - "host": "management.azure.com", "schemes": [ "https" ], - "consumes": [ + "host": "management.azure.com", + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], "security": [ @@ -25,46 +30,66 @@ "securityDefinitions": { "azure_auth": { "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "scopes": { "user_impersonation": "impersonate your user account" } } }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "Clusters" + }, + { + "name": "Databases" + }, + { + "name": "AccessPolicyAssignments" + }, + { + "name": "PrivateEndpointConnections" + }, + { + "name": "Migrations" + } + ], "paths": { "/providers/Microsoft.Cache/operations": { "get": { + "operationId": "Operations_List", "tags": [ "Operations" ], "description": "Lists all of the available REST API operations of the Microsoft.Cache provider.", - "operationId": "Operations_List", - "x-ms-examples": { - "OperationsList": { - "$ref": "./examples/OperationsList.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { - "description": "Success. The response describes the list of operations.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/OperationListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } }, + "x-ms-examples": { + "OperationsList": { + "$ref": "./examples/OperationsList.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -72,348 +97,441 @@ }, "/subscriptions/{subscriptionId}/providers/Microsoft.Cache/locations/{location}/operationsStatus/{operationId}": { "get": { - "tags": [ - "OperationsStatus" - ], "operationId": "OperationsStatus_Get", - "x-ms-examples": { - "OperationsStatusGet": { - "$ref": "./examples/OperationsStatusGet.json" - } - }, "description": "Gets the status of operation.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/OperationIdParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "operationId", + "in": "path", + "description": "The ID of an ongoing async operation.", + "required": true, + "type": "string", + "minLength": 1 } ], "responses": { "200": { - "description": "Success. The detailed status of the operation is in the response.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/OperationStatus" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "OperationsStatusGet": { + "$ref": "./examples/OperationsStatusGet.json" + } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}": { - "put": { + "/subscriptions/{subscriptionId}/providers/Microsoft.Cache/redisEnterprise": { + "get": { + "operationId": "RedisEnterprise_List", "tags": [ - "RedisEnterprise" + "Clusters" ], - "operationId": "RedisEnterprise_Create", - "x-ms-examples": { - "RedisEnterpriseCreate": { - "$ref": "./examples/RedisEnterpriseCreate.json" + "description": "Lists all Redis Enterprise clusters in the specified subscription.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ClusterList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } } }, - "description": "Creates or updates an existing (overwrite/recreate, with potential downtime) cache cluster", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "original-uri" + "x-ms-examples": { + "RedisEnterpriseList": { + "$ref": "./examples/RedisEnterpriseList.json" + } }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise": { + "get": { + "operationId": "RedisEnterprise_ListByResourceGroup", + "tags": [ + "Clusters" + ], + "description": "Lists all Redis Enterprise clusters in a resource group.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "parameters", - "in": "body", - "required": true, + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/Cluster" - }, - "description": "Parameters supplied to the Create Redis Enterprise operation." + "$ref": "#/definitions/ClusterList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "RedisEnterpriseListByResourceGroup": { + "$ref": "./examples/RedisEnterpriseListByResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}": { + "get": { + "operationId": "RedisEnterprise_Get", + "tags": [ + "Clusters" + ], + "description": "Gets information about a Redis Enterprise cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { - "201": { - "description": "The cluster was/is being created. Check provisioningState and resourceState to see detailed status.", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, "200": { - "description": "The cluster was/is being updated. Check provisioningState and resourceState to see detailed status.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/Cluster" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "RedisEnterpriseGet": { + "$ref": "./examples/RedisEnterpriseGet.json" + } } }, - "patch": { + "put": { + "operationId": "RedisEnterprise_Create", "tags": [ - "RedisEnterprise" + "Clusters" ], - "operationId": "RedisEnterprise_Update", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "RedisEnterpriseUpdate": { - "$ref": "./examples/RedisEnterpriseUpdate.json" - } - }, - "description": "Updates an existing Redis Enterprise cluster", + "description": "Creates or updates an existing (overwrite/recreate, with potential downtime) cache cluster", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ClusterUpdate" - }, - "description": "Parameters supplied to the Update Redis Enterprise operation." + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "Parameters supplied to the Create Redis Enterprise operation.", + "required": true, + "schema": { + "$ref": "#/definitions/Cluster" + } } ], "responses": { "200": { - "description": "The cluster was/is being updated. Check provisioningState and resourceState to see detailed status.", + "description": "Resource 'Cluster' update operation succeeded", "schema": { "$ref": "#/definitions/Cluster" } }, - "202": { - "description": "The cluster update operation was started. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status.", + "201": { + "description": "Resource 'Cluster' create operation succeeded", + "schema": { + "$ref": "#/definitions/Cluster" + }, "headers": { - "Location": { - "description": "Location URI to poll for result", - "type": "string", - "format": "uri" - }, "Azure-AsyncOperation": { - "description": "Azure-AsyncOperation URI to poll for result", "type": "string", - "format": "uri" + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "RedisEnterprise" - ], - "operationId": "RedisEnterprise_Delete", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" }, "x-ms-examples": { - "RedisEnterpriseDelete": { - "$ref": "./examples/RedisEnterpriseDelete.json" + "RedisEnterpriseCreate": { + "$ref": "./examples/RedisEnterpriseCreate.json" } }, - "description": "Deletes a Redis Enterprise cache cluster.", + "x-ms-long-running-operation-options": { + "final-state-via": "original-uri", + "final-state-schema": "#/definitions/Cluster" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "RedisEnterprise_Update", + "tags": [ + "Clusters" + ], + "description": "Updates an existing Redis Enterprise cluster", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "Parameters supplied to the Update Redis Enterprise operation.", + "required": true, + "schema": { + "$ref": "#/definitions/ClusterUpdate" + } } ], "responses": { "200": { - "description": "The cluster was successfully deleted." + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } }, "202": { - "description": "The cluster delete operation was successfully started. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status.", + "description": "Resource update request accepted.", "headers": { - "Location": { - "description": "Location URI to poll for result", + "Azure-AsyncOperation": { "type": "string", - "format": "uri" + "format": "uri", + "description": "A link to the status monitor" }, - "Azure-AsyncOperation": { - "description": "Azure-AsyncOperation URI to poll for result", + "Location": { "type": "string", - "format": "uri" + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, - "204": { - "description": "The cluster was successfully deleted." - }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } - }, - "get": { - "tags": [ - "RedisEnterprise" - ], - "operationId": "RedisEnterprise_Get", + }, "x-ms-examples": { - "RedisEnterpriseGet": { - "$ref": "./examples/RedisEnterpriseGet.json" + "RedisEnterpriseUpdate": { + "$ref": "./examples/RedisEnterpriseUpdate.json" } }, - "description": "Gets information about a Redis Enterprise cluster", + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/Cluster" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "RedisEnterprise_Delete", + "tags": [ + "Clusters" + ], + "description": "Deletes a Redis Enterprise cache cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { "200": { - "description": "The request succeeded, response body contains the requested details.", - "schema": { - "$ref": "#/definitions/Cluster" + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, - "default": { - "description": "Error response describing why the operation failed.", + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } + }, + "x-ms-examples": { + "RedisEnterpriseDelete": { + "$ref": "./examples/RedisEnterpriseDelete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases": { "get": { + "operationId": "Databases_ListByCluster", "tags": [ - "RedisEnterprise" + "Databases" ], - "operationId": "RedisEnterprise_ListByResourceGroup", - "x-ms-examples": { - "RedisEnterpriseListByResourceGroup": { - "$ref": "./examples/RedisEnterpriseListByResourceGroup.json" - } - }, - "description": "Lists all Redis Enterprise clusters in a resource group.", + "description": "Gets all databases in the specified Redis Enterprise cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { "200": { - "description": "The list of Redis Enterprise clusters", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ClusterList" + "$ref": "#/definitions/DatabaseList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Cache/redisEnterprise": { - "get": { - "tags": [ - "RedisEnterprise" - ], - "operationId": "RedisEnterprise_List", "x-ms-examples": { - "RedisEnterpriseList": { - "$ref": "./examples/RedisEnterpriseList.json" - } - }, - "description": "Lists all Redis Enterprise clusters in the specified subscription.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "The list of Redis Enterprise clusters", - "schema": { - "$ref": "#/definitions/ClusterList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - } + "RedisEnterpriseDatabasesListByCluster": { + "$ref": "./examples/RedisEnterpriseDatabasesListByCluster.json" } }, "x-ms-pageable": { @@ -421,2645 +539,2673 @@ } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}": { "get": { + "operationId": "Databases_Get", "tags": [ - "RedisEnterprise", "Databases" ], - "operationId": "Databases_ListByCluster", - "description": "Gets all databases in the specified Redis Enterprise cluster.", - "x-ms-examples": { - "RedisEnterpriseDatabasesListByCluster": { - "$ref": "./examples/RedisEnterpriseDatabasesListByCluster.json" - } - }, + "description": "Gets information about a database in a Redis Enterprise cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "#/parameters/ClusterNameParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { "200": { - "description": "The list of databases", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/DatabaseList" + "$ref": "#/definitions/Database" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" + "x-ms-examples": { + "RedisEnterpriseDatabasesGet": { + "$ref": "./examples/RedisEnterpriseDatabasesGet.json" + } } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}": { + }, "put": { + "operationId": "Databases_Create", "tags": [ - "RedisEnterprise", "Databases" ], - "operationId": "Databases_Create", "description": "Creates a database", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "original-uri" - }, - "x-ms-examples": { - "RedisEnterpriseDatabasesCreate": { - "$ref": "./examples/RedisEnterpriseDatabasesCreate.json" + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, - "RedisEnterpriseDatabasesCreate With Active Geo Replication": { - "$ref": "./examples/RedisEnterpriseDatabasesCreateWithGeoReplication.json" + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, - "RedisEnterpriseDatabasesCreate No Cluster Cache": { - "$ref": "./examples/RedisEnterpriseDatabasesNoClusterCacheCreate.json" - } - }, - "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { "name": "parameters", "in": "body", + "description": "Parameters supplied to the create or update database operation.", "required": true, "schema": { "$ref": "#/definitions/Database" - }, - "description": "Parameters supplied to the create or update database operation." - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + } } ], "responses": { "200": { - "description": "The database was/is being updated. Check provisioningState and resourceState for detailed status.", + "description": "Resource 'Database' update operation succeeded", "schema": { "$ref": "#/definitions/Database" } }, "201": { - "description": "The database was/is being created. Check provisioningState and resourceState for detailed status.", + "description": "Resource 'Database' create operation succeeded", "schema": { "$ref": "#/definitions/Database" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } + }, + "x-ms-examples": { + "RedisEnterpriseDatabasesCreate": { + "$ref": "./examples/RedisEnterpriseDatabasesCreate.json" + }, + "RedisEnterpriseDatabasesCreate No Cluster Cache": { + "$ref": "./examples/RedisEnterpriseDatabasesNoClusterCacheCreate.json" + }, + "RedisEnterpriseDatabasesCreate With Active Geo Replication": { + "$ref": "./examples/RedisEnterpriseDatabasesCreateWithGeoReplication.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "original-uri", + "final-state-schema": "#/definitions/Database" + }, + "x-ms-long-running-operation": true }, "patch": { + "operationId": "Databases_Update", "tags": [ - "RedisEnterprise", "Databases" ], - "operationId": "Databases_Update", "description": "Updates a database", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "RedisEnterpriseDatabasesUpdate": { - "$ref": "./examples/RedisEnterpriseDatabasesUpdate.json" - }, - "RedisEnterpriseDatabasesUpdate Clustering on No Cluster Cache": { - "$ref": "./examples/RedisEnterpriseDatabasesNoClusterCacheUpdateClustering.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "in": "body", + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", "required": true, - "schema": { - "$ref": "#/definitions/DatabaseUpdate" - }, - "description": "Parameters supplied to the create or update database operation." + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "Parameters supplied to the create or update database operation.", + "required": true, + "schema": { + "$ref": "#/definitions/DatabaseUpdate" + } } ], "responses": { "200": { - "description": "The database was/is being updated. Check provisioningState and resourceState for detailed status.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/Database" } }, "202": { - "description": "The database update operation was successfully started. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status.", + "description": "Resource update request accepted.", "headers": { - "Location": { - "description": "Location URI to poll for result", + "Azure-AsyncOperation": { "type": "string", - "format": "uri" + "format": "uri", + "description": "A link to the status monitor" }, - "Azure-AsyncOperation": { - "description": "Azure-AsyncOperation URI to poll for result", + "Location": { "type": "string", - "format": "uri" + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } + }, + "x-ms-examples": { + "RedisEnterpriseDatabasesUpdate": { + "$ref": "./examples/RedisEnterpriseDatabasesUpdate.json" + }, + "RedisEnterpriseDatabasesUpdate Clustering on No Cluster Cache": { + "$ref": "./examples/RedisEnterpriseDatabasesNoClusterCacheUpdateClustering.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/Database" + }, + "x-ms-long-running-operation": true }, - "get": { + "delete": { + "operationId": "Databases_Delete", "tags": [ - "RedisEnterprise", "Databases" ], - "operationId": "Databases_Get", - "description": "Gets information about a database in a Redis Enterprise cluster.", - "x-ms-examples": { - "RedisEnterpriseDatabasesGet": { - "$ref": "./examples/RedisEnterpriseDatabasesGet.json" - } - }, + "description": "Deletes a single database", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { "200": { - "description": "Successfully found the database", - "schema": { - "$ref": "#/definitions/Database" + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, + "204": { + "description": "Resource does not exist." + }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "RedisEnterprise", - "Databases" - ], - "operationId": "Databases_Delete", - "description": "Deletes a single database", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" }, "x-ms-examples": { "RedisEnterpriseDatabasesDelete": { "$ref": "./examples/RedisEnterpriseDatabasesDelete.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/accessPolicyAssignments": { + "get": { + "operationId": "AccessPolicyAssignment_List", + "tags": [ + "AccessPolicyAssignments" + ], + "description": "Gets all access policy assignments..", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { "200": { - "description": "Successfully deleted the database." - }, - "202": { - "description": "The database delete operation started. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status.", - "headers": { - "Location": { - "description": "Location URI to poll for result", - "type": "string", - "format": "uri" - }, - "Azure-AsyncOperation": { - "description": "Azure-AsyncOperation URI to poll for result", - "type": "string", - "format": "uri" - } + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/AccessPolicyAssignmentList" } }, - "204": { - "description": "Successfully deleted the database." - }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/listKeys": { - "post": { - "tags": [ - "RedisEnterprise", - "Databases" - ], - "operationId": "Databases_ListKeys", + }, "x-ms-examples": { - "RedisEnterpriseDatabasesListKeys": { - "$ref": "./examples/RedisEnterpriseDatabasesListKeys.json" + "RedisEnterpriseAccessPolicyAssignmentList": { + "$ref": "./examples/RedisEnterpriseAccessPolicyAssignmentsList.json" } }, - "description": "Retrieves the access keys for the Redis Enterprise database.", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/accessPolicyAssignments/{accessPolicyAssignmentName}": { + "get": { + "operationId": "AccessPolicyAssignment_Get", + "tags": [ + "AccessPolicyAssignments" + ], + "description": "Gets information about access policy assignment for database.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "accessPolicyAssignmentName", + "in": "path", + "description": "The name of the Redis Enterprise database access policy assignment.", + "required": true, + "type": "string", + "pattern": "^[A-Za-z0-9]{1,60}$" } ], "responses": { "200": { - "description": "The access keys for the specified database.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/AccessKeys" + "$ref": "#/definitions/AccessPolicyAssignment" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/regenerateKey": { - "post": { - "tags": [ - "RedisEnterprise", - "Databases" - ], - "operationId": "Databases_RegenerateKey", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" }, "x-ms-examples": { - "RedisEnterpriseDatabasesRegenerateKey": { - "$ref": "./examples/RedisEnterpriseDatabasesRegenerateKey.json" + "RedisEnterpriseAccessPolicyAssignmentGet": { + "$ref": "./examples/RedisEnterpriseAccessPolicyAssignmentGet.json" } - }, - "description": "Regenerates the Redis Enterprise database's access keys.", + } + }, + "put": { + "operationId": "AccessPolicyAssignment_CreateUpdate", + "tags": [ + "AccessPolicyAssignments" + ], + "description": "Creates/Updates a particular access policy assignment for a database", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "in": "body", + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", "required": true, - "schema": { - "$ref": "#/definitions/RegenerateKeyParameters" - }, - "description": "Specifies which key to regenerate." + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" + }, + { + "name": "accessPolicyAssignmentName", + "in": "path", + "description": "The name of the Redis Enterprise database access policy assignment.", + "required": true, + "type": "string", + "pattern": "^[A-Za-z0-9]{1,60}$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "Parameters supplied to the create access policy assignment for database.", + "required": true, + "schema": { + "$ref": "#/definitions/AccessPolicyAssignment" + } } ], "responses": { "200": { - "description": "Returns the new access keys for the database", + "description": "Resource 'AccessPolicyAssignment' update operation succeeded", "schema": { - "$ref": "#/definitions/AccessKeys" + "$ref": "#/definitions/AccessPolicyAssignment" } }, - "202": { - "description": "The cluster update operation was started. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status.", + "201": { + "description": "Resource 'AccessPolicyAssignment' create operation succeeded", + "schema": { + "$ref": "#/definitions/AccessPolicyAssignment" + }, "headers": { - "Location": { - "description": "Location URI to poll for result", - "type": "string", - "format": "uri" - }, "Azure-AsyncOperation": { - "description": "Azure-AsyncOperation URI to poll for result", "type": "string", - "format": "uri" + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/import": { - "post": { - "tags": [ - "RedisEnterprise", - "Databases" - ], - "operationId": "Databases_Import", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" }, "x-ms-examples": { - "RedisEnterpriseDatabasesImport": { - "$ref": "./examples/RedisEnterpriseDatabasesImport.json" + "RedisEnterpriseAccessPolicyAssignmentCreateUpdate": { + "$ref": "./examples/RedisEnterpriseAccessPolicyAssignmentCreateUpdate.json" } }, - "description": "Imports database files to target database.", + "x-ms-long-running-operation-options": { + "final-state-via": "original-uri", + "final-state-schema": "#/definitions/AccessPolicyAssignment" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "AccessPolicyAssignment_Delete", + "tags": [ + "AccessPolicyAssignments" + ], + "description": "Deletes a single access policy assignment.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "in": "body", + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", "required": true, - "schema": { - "$ref": "#/definitions/ImportClusterParameters" - }, - "description": "Storage information for importing into the cluster" + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "accessPolicyAssignmentName", + "in": "path", + "description": "The name of the Redis Enterprise database access policy assignment.", + "required": true, + "type": "string", + "pattern": "^[A-Za-z0-9]{1,60}$" } ], "responses": { - "200": { - "description": "Import operation succeeded." - }, "202": { - "description": "The import operation was started. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status.", + "description": "Resource deletion accepted.", "headers": { - "Location": { - "description": "Location URI to poll for result", + "Azure-AsyncOperation": { "type": "string", - "format": "uri" + "format": "uri", + "description": "A link to the status monitor" }, - "Azure-AsyncOperation": { - "description": "Azure-AsyncOperation URI to poll for result", + "Location": { "type": "string", - "format": "uri" + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, + "204": { + "description": "Resource does not exist." + }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } + }, + "x-ms-examples": { + "RedisEnterpriseAccessPolicyAssignmentDelete": { + "$ref": "./examples/RedisEnterpriseAccessPolicyAssignmentDelete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/export": { "post": { + "operationId": "Databases_Export", "tags": [ - "RedisEnterprise", "Databases" ], - "operationId": "Databases_Export", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "RedisEnterpriseDatabasesExport": { - "$ref": "./examples/RedisEnterpriseDatabasesExport.json" - } - }, "description": "Exports a database file from target database.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "in": "body", + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", "required": true, - "schema": { - "$ref": "#/definitions/ExportClusterParameters" - }, - "description": "Storage information for exporting into the cluster" + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "Storage information for exporting into the cluster", + "required": true, + "schema": { + "$ref": "#/definitions/ExportClusterParameters" + } } ], "responses": { "200": { - "description": "Export operation succeeded." + "description": "The request has succeeded." }, "202": { - "description": "Export operation successfully enqueued; follow the Location header to poll for final outcome.", + "description": "Resource operation accepted.", "headers": { - "Location": { - "description": "Location URI to poll for result", + "Azure-AsyncOperation": { "type": "string", - "format": "uri" + "format": "uri", + "description": "A link to the status monitor" }, - "Azure-AsyncOperation": { - "description": "Azure-AsyncOperation URI to poll for result", + "Location": { "type": "string", - "format": "uri" + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/accessPolicyAssignments/{accessPolicyAssignmentName}": { - "put": { - "tags": [ - "RedisEnterprise", - "Databases", - "AccessPolicyAssignments" - ], - "operationId": "AccessPolicyAssignment_CreateUpdate", - "description": "Creates/Updates a particular access policy assignment for a database", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "original-uri" }, "x-ms-examples": { - "RedisEnterpriseAccessPolicyAssignmentCreateUpdate": { - "$ref": "./examples/RedisEnterpriseAccessPolicyAssignmentCreateUpdate.json" + "RedisEnterpriseDatabasesExport": { + "$ref": "./examples/RedisEnterpriseDatabasesExport.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/flush": { + "post": { + "operationId": "Databases_Flush", + "tags": [ + "Databases" + ], + "description": "Flushes all the keys in this database and also from its linked databases.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/AccessPolicyAssignmentNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { "name": "parameters", "in": "body", - "required": true, + "description": "Information identifying the databases to be flushed", + "required": false, "schema": { - "$ref": "#/definitions/AccessPolicyAssignment" - }, - "description": "Parameters supplied to the create access policy assignment for database." + "$ref": "#/definitions/FlushParameters" + } } ], "responses": { "200": { - "description": "The database access policy assignment is being created. Check provisioningState and resourceState for detailed status.", - "schema": { - "$ref": "#/definitions/AccessPolicyAssignment" - } + "description": "The request has succeeded." }, - "201": { - "description": "The database access policy assignment is being created. Check provisioningState and resourceState for detailed status.", - "schema": { - "$ref": "#/definitions/AccessPolicyAssignment" + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } - }, - "get": { - "tags": [ - "RedisEnterprise", - "Databases", - "AccessPolicyAssignments" - ], - "operationId": "AccessPolicyAssignment_Get", - "description": "Gets information about access policy assignment for database.", + }, "x-ms-examples": { - "RedisEnterpriseAccessPolicyAssignmentGet": { - "$ref": "./examples/RedisEnterpriseAccessPolicyAssignmentGet.json" + "How to flush all the keys in the database": { + "$ref": "./examples/RedisEnterpriseDatabasesFlush.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/forceLinkToReplicationGroup": { + "post": { + "operationId": "Databases_ForceLinkToReplicationGroup", + "tags": [ + "Databases" + ], + "description": "Forcibly recreates an existing database on the specified cluster, and rejoins it to an existing replication group. **IMPORTANT NOTE:** All data in this database will be discarded, and the database will temporarily be unavailable while rejoining the replication group.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "#/parameters/AccessPolicyAssignmentNameParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Successfully found the access policy assignment", + "name": "parameters", + "in": "body", + "description": "Information identifying the database to be unlinked.", + "required": true, "schema": { - "$ref": "#/definitions/AccessPolicyAssignment" + "$ref": "#/definitions/ForceLinkParameters" + } + } + ], + "responses": { + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } - }, - "delete": { - "tags": [ - "RedisEnterprise", - "Databases", - "AccessPolicyAssignments" - ], - "operationId": "AccessPolicyAssignment_Delete", - "description": "Deletes a single access policy assignment.", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" }, "x-ms-examples": { - "RedisEnterpriseAccessPolicyAssignmentDelete": { - "$ref": "./examples/RedisEnterpriseAccessPolicyAssignmentDelete.json" + "How to relink a database after a regional outage": { + "$ref": "./examples/RedisEnterpriseDatabasesForceLink.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/forceUnlink": { + "post": { + "operationId": "Databases_ForceUnlink", + "tags": [ + "Databases" + ], + "description": "Forcibly removes the link to the specified database resource.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "#/parameters/AccessPolicyAssignmentNameParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "parameters", + "in": "body", + "description": "Information identifying the database to be unlinked.", + "required": true, + "schema": { + "$ref": "#/definitions/ForceUnlinkParameters" + } } ], "responses": { + "200": { + "description": "The request has succeeded." + }, "202": { - "description": "The access policy assignment delete operation started for database. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status.", + "description": "Resource operation accepted.", "headers": { - "Location": { - "description": "Location URI to poll for result", + "Azure-AsyncOperation": { "type": "string", - "format": "uri" + "format": "uri", + "description": "A link to the status monitor" }, - "Azure-AsyncOperation": { - "description": "Azure-AsyncOperation URI to poll for result", + "Location": { "type": "string", - "format": "uri" + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, - "204": { - "description": "Successfully deleted the access policy assignment." - }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } + }, + "x-ms-examples": { + "How to unlink a database during a regional outage": { + "$ref": "./examples/RedisEnterpriseDatabasesForceUnlink.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/accessPolicyAssignments": { - "get": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/import": { + "post": { + "operationId": "Databases_Import", "tags": [ - "RedisEnterprise", - "Databases", - "AccessPolicyAssignments" + "Databases" ], - "operationId": "AccessPolicyAssignment_List", - "description": "Gets all access policy assignments..", - "x-ms-examples": { - "RedisEnterpriseAccessPolicyAssignmentList": { - "$ref": "./examples/RedisEnterpriseAccessPolicyAssignmentsList.json" - } - }, + "description": "Imports database files to target database.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "#/parameters/ClusterNameParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "name": "parameters", + "in": "body", + "description": "Storage information for importing into the cluster", + "required": true, + "schema": { + "$ref": "#/definitions/ImportClusterParameters" + } } ], "responses": { "200": { - "description": "The list of access policy assignment.", - "schema": { - "$ref": "#/definitions/AccessPolicyAssignmentList" + "description": "The request has succeeded." + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } + "x-ms-examples": { + "RedisEnterpriseDatabasesImport": { + "$ref": "./examples/RedisEnterpriseDatabasesImport.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/listSkusForScaling": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/listKeys": { "post": { + "operationId": "Databases_ListKeys", "tags": [ - "RedisEnterprise" + "Databases" ], - "operationId": "RedisEnterprise_ListSkusForScaling", - "description": "Lists the available SKUs for scaling the Redis Enterprise cluster.", - "x-ms-examples": { - "RedisEnterpriseListSkusForScaling": { - "$ref": "./examples/RedisEnterpriseListSkusForScaling.json" - } - }, + "description": "Retrieves the access keys for the Redis Enterprise database.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" + }, + { + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { "200": { - "description": "Returns the available SKUs for scaling up or scaling down.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/SkuDetailsList" + "$ref": "#/definitions/AccessKeys" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "RedisEnterpriseDatabasesListKeys": { + "$ref": "./examples/RedisEnterpriseDatabasesListKeys.json" + } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/privateEndpointConnections": { - "get": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/regenerateKey": { + "post": { + "operationId": "Databases_RegenerateKey", "tags": [ - "PrivateEndpointConnections" + "Databases" ], - "operationId": "PrivateEndpointConnections_List", - "description": "Lists all the private endpoint connections associated with the Redis Enterprise cluster.", - "x-ms-examples": { - "RedisEnterpriseListPrivateEndpointConnections": { - "$ref": "./examples/RedisEnterpriseListPrivateEndpointConnections.json" - } - }, + "description": "Regenerates the Redis Enterprise database's access keys.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "Specifies which key to regenerate.", + "required": true, + "schema": { + "$ref": "#/definitions/RegenerateKeyParameters" + } } ], "responses": { "200": { - "description": "OK -- Successfully retrieved private endpoint connections.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/privatelinks.json#/definitions/PrivateEndpointConnectionListResult" + "$ref": "#/definitions/AccessKeys" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": null - } + "x-ms-examples": { + "RedisEnterpriseDatabasesRegenerateKey": { + "$ref": "./examples/RedisEnterpriseDatabasesRegenerateKey.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/AccessKeys" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/privateEndpointConnections/{privateEndpointConnectionName}": { - "get": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/upgradeDBRedisVersion": { + "post": { + "operationId": "Databases_UpgradeDBRedisVersion", "tags": [ - "PrivateEndpointConnections" + "Databases" ], - "operationId": "PrivateEndpointConnections_Get", - "description": "Gets the specified private endpoint connection associated with the Redis Enterprise cluster.", - "x-ms-examples": { - "RedisEnterpriseGetPrivateEndpointConnection": { - "$ref": "./examples/RedisEnterpriseGetPrivateEndpointConnection.json" - } - }, + "description": "Upgrades the database Redis version to the latest available.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/privatelinks.json#/parameters/PrivateEndpointConnectionName" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "databaseName", + "in": "path", + "description": "The name of the Redis Enterprise database.", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { - "200": { - "description": "OK -- Get the private endpoint connection properties successfully.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/privatelinks.json#/definitions/PrivateEndpointConnection" + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } - }, - "put": { - "tags": [ - "PrivateEndpointConnections" - ], - "operationId": "PrivateEndpointConnections_Put", - "description": "Updates the state of the specified private endpoint connection associated with the Redis Enterprise cluster.", + }, "x-ms-examples": { - "RedisEnterprisePutPrivateEndpointConnection": { - "$ref": "./examples/RedisEnterprisePutPrivateEndpointConnection.json" + "How to upgrade your database Redis version": { + "$ref": "./examples/RedisEnterpriseDatabasesUpgradeDBRedisVersion.json" } }, - "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/listSkusForScaling": { + "post": { + "operationId": "RedisEnterprise_ListSkusForScaling", + "tags": [ + "Clusters" + ], + "description": "Lists the available SKUs for scaling the Redis Enterprise cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/privatelinks.json#/parameters/PrivateEndpointConnectionName" - }, - { - "name": "properties", - "in": "body", + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", "required": true, - "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/privatelinks.json#/definitions/PrivateEndpointConnection" - }, - "description": "The private endpoint connection properties." + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { - "201": { - "description": "OK -- Update the private endpoint connection properties successfully.", + "200": { + "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/privatelinks.json#/definitions/PrivateEndpointConnection" + "$ref": "#/definitions/SkuDetailsList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "RedisEnterpriseListSkusForScaling": { + "$ref": "./examples/RedisEnterpriseListSkusForScaling.json" + } } - }, - "delete": { + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/migrations": { + "get": { + "operationId": "Migration_List", "tags": [ - "PrivateEndpointConnections" + "Migrations" ], - "operationId": "PrivateEndpointConnections_Delete", - "description": "Deletes the specified private endpoint connection associated with the Redis Enterprise cluster.", - "x-ms-examples": { - "RedisEnterpriseDeletePrivateEndpointConnection": { - "$ref": "./examples/RedisEnterpriseDeletePrivateEndpointConnection.json" - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, + "description": "Gets information about all migrations attempts in a Redis Enterprise cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/privatelinks.json#/parameters/PrivateEndpointConnectionName" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { "200": { - "description": "OK -- Delete the private endpoint connection successfully." - }, - "202": { - "description": "Deletion of specified private endpoint connection was started. GET the URL in the Azure-AsyncOperation or Location headers to retrieve updated status.", - "headers": { - "Location": { - "description": "Location URI to poll for result", - "type": "string" - }, - "Azure-AsyncOperation": { - "description": "URI to poll for the operation status", - "type": "string" - } + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/MigrationList" } }, - "204": { - "description": "No Content -- The private endpoint connection does not exist." - }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "RedisEnterpriseMigrationList": { + "$ref": "./examples/RedisEnterpriseMigrationList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/privateLinkResources": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/migrations/default": { "get": { + "operationId": "Migration_Get", "tags": [ - "PrivateLinkResources" + "Migrations" ], - "operationId": "PrivateLinkResources_ListByCluster", - "description": "Gets the private link resources that need to be created for a Redis Enterprise cluster.", - "x-ms-examples": { - "RedisEnterpriseListPrivateLinkResources": { - "$ref": "./examples/RedisEnterpriseListPrivateLinkResources.json" - } - }, + "description": "Gets information about a migration in a Redis Enterprise cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { "200": { - "description": "Successfully retrieved private link resources.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/privatelinks.json#/definitions/PrivateLinkResourceListResult" + "$ref": "#/definitions/Migration" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": null + "x-ms-examples": { + "RedisEnterpriseMigrationGet": { + "$ref": "./examples/RedisEnterpriseMigrationGet.json" + } } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/forceUnlink": { - "post": { + }, + "put": { + "operationId": "Migration_Start", "tags": [ - "RedisEnterprise", - "Databases" + "Migrations" ], - "operationId": "Databases_ForceUnlink", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "How to unlink a database during a regional outage": { - "$ref": "./examples/RedisEnterpriseDatabasesForceUnlink.json" - } - }, - "description": "Forcibly removes the link to the specified database resource.", + "description": "Starts a new migration", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { "name": "parameters", "in": "body", + "description": "Parameters supplied to start a migration operation.", "required": true, "schema": { - "$ref": "#/definitions/ForceUnlinkParameters" - }, - "description": "Information identifying the database to be unlinked." - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "#/definitions/Migration" + } } ], "responses": { "200": { - "description": "Force unlink operation succeeded. The unlinked database must be deleted before it can be recreated and linked again." - }, - "202": { - "description": "Force unlink operation successfully enqueued; follow the Azure-AsyncOperation header to poll for final outcome.", + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Migration" + }, "headers": { - "Location": { - "description": "Location URI to poll for result", + "Azure-AsyncOperation": { "type": "string", - "format": "uri" + "format": "uri", + "description": "A link to the status monitor" }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + } + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/Migration" + }, + "headers": { "Azure-AsyncOperation": { - "description": "Azure-AsyncOperation URI to poll for result", "type": "string", - "format": "uri" + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } + }, + "x-ms-examples": { + "RedisEnterpriseMigrationStart": { + "$ref": "./examples/RedisEnterpriseMigrationStart.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "original-uri", + "final-state-schema": "#/definitions/Migration" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/forceLinkToReplicationGroup": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/migrations/default/cancel": { "post": { + "operationId": "Migration_Cancel", "tags": [ - "RedisEnterprise", - "Databases" + "Migrations" ], - "operationId": "Databases_ForceLinkToReplicationGroup", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "How to relink a database after a regional outage": { - "$ref": "./examples/RedisEnterpriseDatabasesForceLink.json" - } - }, - "description": "Forcibly recreates an existing database on the specified cluster, and rejoins it to an existing replication group. **IMPORTANT NOTE:** All data in this database will be discarded, and the database will temporarily be unavailable while rejoining the replication group.", + "description": "Cancel or rollback the migration operation in a Redis Enterprise cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "in": "body", + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", "required": true, - "schema": { - "$ref": "#/definitions/ForceLinkParameters" - }, - "description": "Information identifying the database to be unlinked." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { "202": { - "description": "Force link operation successfully enqueued; follow the Azure-AsyncOperation header to poll for final outcome.", + "description": "Resource operation accepted.", "headers": { - "Location": { - "description": "Location URI to poll for result", + "Azure-AsyncOperation": { "type": "string", - "format": "uri" + "format": "uri", + "description": "A link to the status monitor" }, - "Azure-AsyncOperation": { - "description": "Azure-AsyncOperation URI to poll for result", + "Location": { "type": "string", - "format": "uri" + "description": "The Location header contains the URL where the status of the long running operation can be checked." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/flush": { - "post": { - "tags": [ - "RedisEnterprise", - "Databases" - ], - "operationId": "Databases_Flush", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" }, "x-ms-examples": { - "How to flush all the keys in the database": { - "$ref": "./examples/RedisEnterpriseDatabasesFlush.json" + "RedisEnterpriseMigrationCancel": { + "$ref": "./examples/RedisEnterpriseMigrationCancel.json" } }, - "description": "Flushes all the keys in this database and also from its linked databases.", + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/privateEndpointConnections": { + "get": { + "operationId": "PrivateEndpointConnections_List", + "tags": [ + "PrivateEndpointConnections" + ], + "description": "Lists all the private endpoint connections associated with the Redis Enterprise cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/DatabaseNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "name": "parameters", - "in": "body", - "required": false, - "schema": { - "$ref": "#/definitions/FlushParameters" - }, - "description": "Information identifying the databases to be flushed" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { "200": { - "description": "Flush operation succeeded. All the keys are cleared in this and all its linked databases." - }, - "202": { - "description": "Flush operation successfully enqueued; follow the Azure-AsyncOperation header to poll for final outcome.", - "headers": { - "Location": { - "description": "Location URI to poll for result", - "type": "string" - }, - "Azure-AsyncOperation": { - "description": "URI to poll for the operation status", - "type": "string" - } + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnectionListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "RedisEnterpriseListPrivateEndpointConnections": { + "$ref": "./examples/RedisEnterpriseListPrivateEndpointConnections.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/databases/{databaseName}/upgradeDBRedisVersion": { - "post": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/privateEndpointConnections/{privateEndpointConnectionName}": { + "get": { + "operationId": "PrivateEndpointConnections_Get", "tags": [ - "RedisEnterprise", - "Databases" + "PrivateEndpointConnections" ], - "operationId": "Databases_UpgradeDBRedisVersion", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-examples": { - "How to upgrade your database Redis version": { - "$ref": "./examples/RedisEnterpriseDatabasesUpgradeDBRedisVersion.json" - } - }, - "description": "Upgrades the database Redis version to the latest available.", + "description": "Gets the specified private endpoint connection associated with the Redis Enterprise cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/DatabaseNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v6/privatelinks.json#/parameters/PrivateEndpointConnectionName" } ], "responses": { - "202": { - "description": "Upgrade operation successfully enqueued; follow the Azure-AsyncOperation header to poll for final outcome.", - "headers": { - "Location": { - "description": "Location URI to poll for result", - "type": "string" - }, - "Azure-AsyncOperation": { - "description": "URI to poll for the operation status", - "type": "string" - } + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/privatelinks.json#/definitions/PrivateEndpointConnection" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "RedisEnterpriseGetPrivateEndpointConnection": { + "$ref": "./examples/RedisEnterpriseGetPrivateEndpointConnection.json" + } } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/migrations": { - "get": { + }, + "put": { + "operationId": "PrivateEndpointConnections_Put", "tags": [ - "RedisEnterprise", - "Migration" + "PrivateEndpointConnections" ], - "operationId": "Migration_List", - "description": "Gets information about all migrations attempts in a Redis Enterprise cluster.", - "x-ms-examples": { - "RedisEnterpriseMigrationList": { - "$ref": "./examples/RedisEnterpriseMigrationList.json" - } - }, + "description": "Updates the state of the specified private endpoint connection associated with the Redis Enterprise cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "Successfully found the migration", - "schema": { - "$ref": "#/definitions/MigrationList" - } + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/migrations/default": { - "put": { - "tags": [ - "RedisEnterprise", - "Migration" - ], - "operationId": "Migration_Start", - "description": "Starts a new migration", - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "original-uri" - }, - "x-ms-examples": { - "RedisEnterpriseMigrationStart": { - "$ref": "./examples/RedisEnterpriseMigrationStart.json" - } - }, - "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/privatelinks.json#/parameters/PrivateEndpointConnectionName" }, { - "name": "parameters", + "name": "properties", "in": "body", + "description": "The private endpoint connection properties.", "required": true, "schema": { - "$ref": "#/definitions/Migration" - }, - "description": "Parameters supplied to start a migration operation." - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v6/privatelinks.json#/definitions/PrivateEndpointConnection" + } } ], "responses": { - "200": { - "description": "The migration was/is being started. Check the migration for detailed status.", - "headers": { - "Location": { - "description": "Location URI to poll for result", - "type": "string" - }, - "Azure-AsyncOperation": { - "description": "URI to poll for the operation status", - "type": "string" - } - }, - "schema": { - "$ref": "#/definitions/Migration" - } - }, "201": { - "description": "The migration was/is being started. Check the migration for detailed status.", + "description": "Resource 'PrivateEndpointConnection' create operation succeeded", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/privatelinks.json#/definitions/PrivateEndpointConnection" + }, "headers": { "Location": { - "description": "Location URI to poll for result", - "type": "string" + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." }, - "Azure-AsyncOperation": { - "description": "URI to poll for the operation status", - "type": "string" + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } - }, - "schema": { - "$ref": "#/definitions/Migration" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } - }, - "get": { - "tags": [ - "RedisEnterprise", - "Migration" - ], - "operationId": "Migration_Get", - "description": "Gets information about a migration in a Redis Enterprise cluster.", + }, "x-ms-examples": { - "RedisEnterpriseMigrationGet": { - "$ref": "./examples/RedisEnterpriseMigrationGet.json" + "RedisEnterprisePutPrivateEndpointConnection": { + "$ref": "./examples/RedisEnterprisePutPrivateEndpointConnection.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "location", + "final-state-schema": "../../../../../../common-types/resource-management/v6/privatelinks.json#/definitions/PrivateEndpointConnection" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "PrivateEndpointConnections_Delete", + "tags": [ + "PrivateEndpointConnections" + ], + "description": "Deletes the specified private endpoint connection associated with the Redis Enterprise cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v6/privatelinks.json#/parameters/PrivateEndpointConnectionName" } ], "responses": { "200": { - "description": "Successfully found the migration", - "schema": { - "$ref": "#/definitions/Migration" + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + } } }, + "204": { + "description": "Resource does not exist." + }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } - } + }, + "x-ms-examples": { + "RedisEnterpriseDeletePrivateEndpointConnection": { + "$ref": "./examples/RedisEnterpriseDeletePrivateEndpointConnection.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/migrations/default/cancel": { - "post": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cache/redisEnterprise/{clusterName}/privateLinkResources": { + "get": { + "operationId": "PrivateLinkResources_ListByCluster", "tags": [ - "RedisEnterprise", - "Migration" + "Clusters" ], - "operationId": "Migration_Cancel", - "description": "Cancel or rollback the migration operation in a Redis Enterprise cluster.", - "x-ms-long-running-operation": true, - "x-ms-examples": { - "RedisEnterpriseMigrationCancel": { - "$ref": "./examples/RedisEnterpriseMigrationCancel.json" - } - }, + "description": "Gets the private link resources that need to be created for a Redis Enterprise cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", + "required": true, + "type": "string", + "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$" } ], "responses": { - "202": { - "description": "The migration was/is being canceled. Check the migration for detailed status.", - "headers": { - "Location": { - "description": "Location URI to poll for result", - "type": "string" - }, - "Azure-AsyncOperation": { - "description": "URI to poll for the operation status", - "type": "string" - } + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/privatelinks.json#/definitions/PrivateLinkResourceListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "RedisEnterpriseListPrivateLinkResources": { + "$ref": "./examples/RedisEnterpriseListPrivateLinkResources.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } } }, "definitions": { - "Kind": { + "AccessKeyType": { "type": "string", - "readOnly": true, - "description": "Distinguishes the kind of cluster. Read-only.", + "description": "Which access key to regenerate.", "enum": [ - "v1", - "v2" + "Primary", + "Secondary" ], "x-ms-enum": { - "name": "Kind", - "modelAsString": true + "name": "AccessKeyType", + "modelAsString": false, + "values": [ + { + "name": "Primary", + "value": "Primary", + "description": "Primary" + }, + { + "name": "Secondary", + "value": "Secondary", + "description": "Secondary" + } + ] } }, - "Sku": { - "description": "SKU parameters supplied to the create Redis Enterprise cluster operation.", + "AccessKeys": { "type": "object", + "description": "The secret access keys used for authenticating connections to redis", "properties": { - "name": { + "primaryKey": { "type": "string", - "description": "The level of Redis Enterprise cluster to deploy. Possible values: ('Balanced_B5', 'MemoryOptimized_M10', 'ComputeOptimized_X5', etc.). For more information on SKUs see the latest pricing documentation. Note that additional SKUs may become supported in the future.", - "enum": [ - "Enterprise_E1", - "Enterprise_E5", - "Enterprise_E10", - "Enterprise_E20", - "Enterprise_E50", - "Enterprise_E100", - "Enterprise_E200", - "Enterprise_E400", - "EnterpriseFlash_F300", - "EnterpriseFlash_F700", - "EnterpriseFlash_F1500", - "Balanced_B0", - "Balanced_B1", - "Balanced_B3", - "Balanced_B5", - "Balanced_B10", - "Balanced_B20", - "Balanced_B50", - "Balanced_B100", - "Balanced_B150", - "Balanced_B250", - "Balanced_B350", - "Balanced_B500", - "Balanced_B700", - "Balanced_B1000", - "MemoryOptimized_M10", - "MemoryOptimized_M20", - "MemoryOptimized_M50", - "MemoryOptimized_M100", - "MemoryOptimized_M150", - "MemoryOptimized_M250", - "MemoryOptimized_M350", - "MemoryOptimized_M500", - "MemoryOptimized_M700", - "MemoryOptimized_M1000", - "MemoryOptimized_M1500", - "MemoryOptimized_M2000", - "ComputeOptimized_X3", - "ComputeOptimized_X5", - "ComputeOptimized_X10", - "ComputeOptimized_X20", - "ComputeOptimized_X50", - "ComputeOptimized_X100", - "ComputeOptimized_X150", - "ComputeOptimized_X250", - "ComputeOptimized_X350", - "ComputeOptimized_X500", - "ComputeOptimized_X700", - "FlashOptimized_A250", - "FlashOptimized_A500", - "FlashOptimized_A700", - "FlashOptimized_A1000", - "FlashOptimized_A1500", - "FlashOptimized_A2000", - "FlashOptimized_A4500" - ], - "x-ms-enum": { - "name": "SkuName", - "modelAsString": true - } + "description": "The current primary key that clients can use to authenticate", + "readOnly": true }, - "capacity": { - "type": "integer", - "format": "int32", - "description": "This property is only used with Enterprise and EnterpriseFlash SKUs. Determines the size of the cluster. Valid values are (2, 4, 6, ...) for Enterprise SKUs and (3, 9, 15, ...) for EnterpriseFlash SKUs." + "secondaryKey": { + "type": "string", + "description": "The current secondary key that clients can use to authenticate", + "readOnly": true } - }, - "required": [ - "name" - ] - }, - "ProvisioningState": { - "type": "string", - "readOnly": true, - "description": "Current provisioning status", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "Creating", - "Updating", - "Deleting" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true } }, - "ResourceState": { + "AccessKeysAuthentication": { "type": "string", - "readOnly": true, - "description": "Current resource status", + "description": "This property can be Enabled/Disabled to allow or deny access with the current access keys. Can be updated even after database is created.", "enum": [ - "Running", - "Creating", - "CreateFailed", - "Updating", - "UpdateFailed", - "Deleting", - "DeleteFailed", - "Enabling", - "EnableFailed", - "Disabling", - "DisableFailed", "Disabled", - "Scaling", - "ScalingFailed", - "Moving" + "Enabled" ], "x-ms-enum": { - "name": "ResourceState", - "modelAsString": true + "name": "AccessKeysAuthentication", + "modelAsString": true, + "values": [ + { + "name": "Disabled", + "value": "Disabled", + "description": "Disabled" + }, + { + "name": "Enabled", + "value": "Enabled", + "description": "Enabled" + } + ] } }, - "Cluster": { - "description": "Describes the Redis Enterprise cluster", + "AccessPolicyAssignment": { "type": "object", + "description": "Describes the access policy assignment of Redis Enterprise database", "properties": { - "kind": { - "$ref": "#/definitions/Kind" - }, - "sku": { - "$ref": "#/definitions/Sku", - "description": "The SKU to create, which affects price, performance, and features." - }, - "zones": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The Availability Zones where this cluster will be deployed." - }, - "identity": { - "$ref": "../../../../../../common-types/resource-management/v4/managedidentity.json#/definitions/ManagedServiceIdentity", - "description": "The identity of the resource." - }, "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/ClusterCreateProperties", - "description": "Other properties of the cluster." + "$ref": "#/definitions/AccessPolicyAssignmentProperties", + "description": "Properties of the access policy assignment.", + "x-ms-client-flatten": true } }, - "required": [ - "sku" - ], "allOf": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" } ] }, - "ClusterUpdate": { - "description": "A partial update to the Redis Enterprise cluster", + "AccessPolicyAssignmentList": { "type": "object", + "description": "The response of a list-all operation.", "properties": { - "sku": { - "$ref": "#/definitions/Sku", - "description": "The SKU to create, which affects price, performance, and features." - }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/ClusterUpdateProperties", - "description": "Other properties of the cluster." - }, - "identity": { - "$ref": "../../../../../../common-types/resource-management/v4/managedidentity.json#/definitions/ManagedServiceIdentity", - "description": "The identity of the resource." + "value": { + "type": "array", + "description": "The AccessPolicyAssignment items on this page", + "items": { + "$ref": "#/definitions/AccessPolicyAssignment" + } }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-ms-mutability": [ - "read", - "create", - "update" - ], - "description": "Resource tags." + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" } - } + }, + "required": [ + "value" + ] }, - "ClusterProperties": { - "title": "Redis Enterprise cluster properties", - "description": "Properties of Redis Enterprise clusters, as opposed to general resource properties like location, tags", + "AccessPolicyAssignmentProperties": { "type": "object", + "description": "Properties of Redis Enterprise database access policy assignment.", "properties": { - "highAvailability": { - "type": "string", - "description": "Enabled by default. If highAvailability is disabled, the data set is not replicated. This affects the availability SLA, and increases the risk of data loss.", - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "HighAvailability", - "modelAsString": true - } + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Current provisioning status of the access policy assignment.", + "readOnly": true }, - "minimumTlsVersion": { + "accessPolicyName": { "type": "string", - "description": "The minimum TLS version for the cluster to support, e.g. '1.2'. Newer versions can be added in the future. Note that TLS 1.0 and TLS 1.1 are now completely obsolete -- you cannot use them. They are mentioned only for the sake of consistency with old API versions.", - "enum": [ - "1.0", - "1.1", - "1.2" - ], - "x-ms-enum": { - "name": "TlsVersion", - "modelAsString": true - } - }, - "encryption": { - "type": "object", - "description": "Encryption-at-rest configuration for the cluster.", - "properties": { - "customerManagedKeyEncryption": { - "type": "object", - "description": "All Customer-managed key encryption properties for the resource. Set this to an empty object to use Microsoft-managed key encryption.", - "properties": { - "keyEncryptionKeyIdentity": { - "type": "object", - "description": "All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault.", - "properties": { - "userAssignedIdentityResourceId": { - "type": "string", - "description": "User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId." - }, - "identityType": { - "type": "string", - "enum": [ - "systemAssignedIdentity", - "userAssignedIdentity" - ], - "description": "Only userAssignedIdentity is supported in this API version; other types may be supported in the future", - "x-ms-enum": { - "name": "CmkIdentityType", - "modelAsString": true - } - } - } - }, - "keyEncryptionKeyUrl": { - "type": "string", - "description": "Key encryption key Url, versioned only. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78" - } - } - } - } - }, - "maintenanceConfiguration": { - "$ref": "#/definitions/MaintenanceConfiguration", - "description": "Cluster-level maintenance configuration.", - "x-ms-mutability": [ - "read", - "create", - "update" - ] + "description": "Name of access policy under specific access policy assignment. Only \"default\" policy is supported for now.", + "pattern": "^([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]|[a-zA-Z0-9])$" }, - "hostName": { + "user": { + "$ref": "#/definitions/AccessPolicyAssignmentPropertiesUser", + "description": "The user associated with the access policy." + } + }, + "required": [ + "accessPolicyName", + "user" + ] + }, + "AccessPolicyAssignmentPropertiesUser": { + "type": "object", + "description": "The user associated with the access policy.", + "properties": { + "objectId": { "type": "string", - "readOnly": true, - "description": "DNS name of the cluster endpoint" - }, - "provisioningState": { - "$ref": "#/definitions/ProvisioningState", - "readOnly": true, - "description": "Current provisioning status of the cluster" - }, - "redundancyMode": { + "description": "The object ID of the user." + } + } + }, + "AofFrequency": { + "type": "string", + "description": "Sets the frequency at which data is written to disk. Defaults to '1s', meaning 'every second'. Note that the 'always' setting is deprecated, because of its performance impact.", + "enum": [ + "1s", + "always" + ], + "x-ms-enum": { + "name": "AofFrequency", + "modelAsString": true, + "values": [ + { + "name": "OneS", + "value": "1s", + "description": "1s" + }, + { + "name": "Always", + "value": "always", + "description": "always" + } + ] + } + }, + "AzureCacheForRedisMigrationProperties": { + "type": "object", + "description": "Properties for Redis Enterprise migration operation for Azure Cache for Redis.", + "properties": { + "sourceResourceId": { "type": "string", - "readOnly": true, - "description": "Explains the current redundancy strategy of the cluster, which affects the expected SLA.", - "enum": [ - "None", - "LR", - "ZR" - ], - "x-ms-enum": { - "name": "RedundancyMode", - "modelAsString": true, - "values": [ - { - "name": "None", - "value": "None", - "description": "No redundancy. Availability loss will occur." - }, - { - "name": "LR", - "value": "LR", - "description": "Local redundancy with high availability." - }, + "format": "arm-id", + "description": "The source resource ID to migrate from. This is the resource ID of the Azure Cache for Redis.", + "x-ms-arm-id-details": { + "allowedResources": [ { - "name": "ZR", - "value": "ZR", - "description": "Zone redundant. Higher availability." + "type": "Microsoft.Cache/redis" } ] } }, - "resourceState": { - "$ref": "#/definitions/ResourceState", - "readOnly": true, - "description": "Current resource status of the cluster" + "switchDns": { + "type": "boolean", + "description": "Sets whether the DNS is switched automatically after the data is transferred from the source cache to the target cache. This property must be true during the preview." }, - "redisVersion": { - "type": "string", - "readOnly": true, - "description": "Version of redis the cluster supports, e.g. '6'" + "skipDataMigration": { + "type": "boolean", + "description": "Sets whether the data is migrated from source to target or not. This property must be true during the preview." + } + }, + "required": [ + "sourceResourceId", + "switchDns", + "skipDataMigration" + ], + "allOf": [ + { + "$ref": "#/definitions/MigrationProperties" + } + ], + "x-ms-discriminator-value": "AzureCacheForRedis" + }, + "Cluster": { + "type": "object", + "description": "Describes the Redis Enterprise cluster", + "properties": { + "properties": { + "$ref": "#/definitions/ClusterCreateProperties", + "description": "Other properties of the cluster.", + "x-ms-client-flatten": true }, - "privateEndpointConnections": { + "kind": { + "$ref": "#/definitions/Kind", + "description": "Distinguishes the kind of cluster. Read-only.", + "readOnly": true + }, + "sku": { + "$ref": "#/definitions/Sku", + "description": "The SKU to create, which affects price, performance, and features." + }, + "zones": { "type": "array", - "readOnly": true, - "description": "List of private endpoint connections associated with the specified Redis Enterprise cluster", + "description": "The availability zones.", "items": { - "$ref": "../../../../../../common-types/resource-management/v2/privatelinks.json#/definitions/PrivateEndpointConnection" + "type": "string" } + }, + "identity": { + "$ref": "../../../../../../common-types/resource-management/v6/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The identity of the resource." } - } - }, - "ClusterCreateProperties": { - "title": "Redis Enterprise cluster properties for create operations", - "description": "Properties of Redis Enterprise clusters for create operations", - "type": "object", + }, + "required": [ + "sku" + ], "allOf": [ { - "$ref": "#/definitions/ClusterProperties" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/TrackedResource" } - ], + ] + }, + "ClusterCreateProperties": { + "type": "object", + "description": "Properties of Redis Enterprise clusters for create operations", "properties": { "publicNetworkAccess": { - "type": "string", + "$ref": "#/definitions/PublicNetworkAccess", "description": "Whether or not public network traffic can access the Redis cluster. Only 'Enabled' or 'Disabled' can be set. null is returned only for clusters created using an old API version which do not have this property and cannot be set.", - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "PublicNetworkAccess", - "modelAsString": true - }, "x-nullable": true } }, "required": [ "publicNetworkAccess" - ] - }, - "ClusterUpdateProperties": { - "title": "Redis Enterprise cluster properties for update operations", - "description": "Properties of Redis Enterprise clusters for update operations", - "type": "object", + ], "allOf": [ { "$ref": "#/definitions/ClusterProperties" } - ], - "properties": { - "publicNetworkAccess": { - "type": "string", - "description": "Whether or not public network traffic can access the Redis cluster. Only 'Enabled' or 'Disabled' can be set. null is returned only for clusters created using an old API version which do not have this property and cannot be set.", - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "PublicNetworkAccess", - "modelAsString": true - }, - "x-nullable": true - } - } + ] }, "ClusterList": { "type": "object", + "description": "The response of a list-all operation.", "properties": { "value": { "type": "array", + "description": "The Cluster items on this page", "items": { "$ref": "#/definitions/Cluster" - }, - "description": "List of clusters." + } }, "nextLink": { "type": "string", - "readOnly": true, - "description": "The URI to fetch the next page of results." - } - }, - "description": "The response of a list-all operation." - }, - "Database": { - "description": "Describes a database on the Redis Enterprise cluster", - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/DatabaseCreateProperties", - "description": "Other properties of the database." + "format": "uri", + "description": "The link to the next page of items" } }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } + "required": [ + "value" ] }, - "DatabaseUpdate": { - "description": "A partial update to the Redis Enterprise database", - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/DatabaseUpdateProperties", - "description": "Properties of the database." - } - } - }, - "DatabaseProperties": { - "title": "Redis Enterprise database properties", - "description": "Properties of Redis Enterprise databases, as opposed to general resource properties like location, tags", + "ClusterProperties": { "type": "object", + "description": "Properties of Redis Enterprise clusters, as opposed to general resource properties like location, tags", "properties": { - "clientProtocol": { - "type": "string", - "description": "Specifies whether redis clients can connect using TLS-encrypted or plaintext redis protocols. Default is TLS-encrypted.", - "enum": [ - "Encrypted", - "Plaintext" - ], - "x-ms-enum": { - "name": "Protocol", - "modelAsString": true - } + "highAvailability": { + "$ref": "#/definitions/HighAvailability", + "description": "Enabled by default. If highAvailability is disabled, the data set is not replicated. This affects the availability SLA, and increases the risk of data loss." }, - "port": { - "type": "integer", - "format": "int32", + "minimumTlsVersion": { + "$ref": "#/definitions/TlsVersion", + "description": "The minimum TLS version for the cluster to support, e.g. '1.2'. Newer versions can be added in the future. Note that TLS 1.0 and TLS 1.1 are now completely obsolete -- you cannot use them. They are mentioned only for the sake of consistency with old API versions." + }, + "encryption": { + "$ref": "#/definitions/ClusterPropertiesEncryption", + "description": "Encryption-at-rest configuration for the cluster." + }, + "maintenanceConfiguration": { + "$ref": "#/definitions/MaintenanceConfiguration", + "description": "Cluster-level maintenance configuration.", "x-ms-mutability": [ "read", + "update", "create" - ], - "description": "TCP port of the database endpoint. Specified at create time. Defaults to an available port." + ] + }, + "hostName": { + "type": "string", + "description": "DNS name of the cluster endpoint", + "readOnly": true }, "provisioningState": { "$ref": "#/definitions/ProvisioningState", - "readOnly": true, - "description": "Current provisioning status of the database" + "description": "Current provisioning status of the cluster", + "readOnly": true + }, + "redundancyMode": { + "$ref": "#/definitions/RedundancyMode", + "description": "Explains the current redundancy strategy of the cluster, which affects the expected SLA.", + "readOnly": true }, "resourceState": { "$ref": "#/definitions/ResourceState", - "readOnly": true, - "description": "Current resource status of the database" + "description": "Current resource status of the cluster", + "readOnly": true }, - "clusteringPolicy": { + "redisVersion": { "type": "string", - "description": "Clustering policy - default is OSSCluster. This property can be updated only if the current value is NoCluster. If the value is OSSCluster or EnterpriseCluster, it cannot be updated without deleting the database.", - "enum": [ - "EnterpriseCluster", - "OSSCluster", - "NoCluster" - ], - "x-ms-mutability": [ - "read", - "create", - "update" - ], - "x-ms-enum": { - "name": "ClusteringPolicy", - "modelAsString": true, - "values": [ - { - "value": "EnterpriseCluster", - "name": "EnterpriseCluster", - "description": "Enterprise clustering policy uses only the classic redis protocol, which does not support redis cluster commands." - }, - { - "value": "OSSCluster", - "name": "OSSCluster", - "description": "OSS clustering policy follows the redis cluster specification, and requires all clients to support redis clustering." - }, - { - "value": "NoCluster", - "name": "NoCluster", - "description": "The NoCluster policy is used for non-clustered Redis instances that do not require clustering features." - } - ] - } - }, - "evictionPolicy": { - "type": "string", - "description": "Redis eviction policy - default is VolatileLRU", - "enum": [ - "AllKeysLFU", - "AllKeysLRU", - "AllKeysRandom", - "VolatileLRU", - "VolatileLFU", - "VolatileTTL", - "VolatileRandom", - "NoEviction" - ], - "x-ms-enum": { - "name": "EvictionPolicy", - "modelAsString": true - } - }, - "persistence": { - "$ref": "#/definitions/Persistence", - "description": "Persistence settings", - "x-ms-identifiers": [] + "description": "Version of redis the cluster supports, e.g. '6'", + "readOnly": true }, - "modules": { + "privateEndpointConnections": { "type": "array", - "description": "Optional set of redis modules to enable in this database - modules can only be added at creation time.", + "description": "List of private endpoint connections associated with the specified Redis Enterprise cluster", "items": { - "$ref": "#/definitions/Module" + "$ref": "../../../../../../common-types/resource-management/v6/privatelinks.json#/definitions/PrivateEndpointConnection" }, - "x-ms-mutability": [ - "read", - "create" - ], - "x-ms-identifiers": [ - "name" - ] - }, - "geoReplication": { - "type": "object", - "description": "Optional set of properties to configure geo replication for this database.", - "x-ms-mutability": [ - "read", - "create" - ], - "properties": { - "groupNickname": { - "type": "string", - "description": "Name for the group of linked database resources", - "x-ms-mutability": [ - "read", - "create" - ] - }, - "linkedDatabases": { - "type": "array", - "description": "List of database resources to link with this database", - "items": { - "$ref": "#/definitions/LinkedDatabase" - } - } - } - }, - "redisVersion": { - "type": "string", - "readOnly": true, - "description": "Version of Redis the database is running on, e.g. '6.0'" - }, - "deferUpgrade": { - "type": "string", - "description": "Option to defer upgrade when newest version is released - default is NotDeferred. Learn more: https://aka.ms/redisversionupgrade", - "enum": [ - "Deferred", - "NotDeferred" - ], - "x-ms-enum": { - "name": "DeferUpgradeSetting", - "modelAsString": true - } - }, - "accessKeysAuthentication": { - "type": "string", - "description": "This property can be Enabled/Disabled to allow or deny access with the current access keys. Can be updated even after database is created.", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "accessKeysAuthentication", - "modelAsString": true - } + "readOnly": true } } }, - "DatabaseCreateProperties": { - "title": "Redis Enterprise database create properties", - "description": "Properties for creating Redis Enterprise databases", - "allOf": [ - { - "$ref": "#/definitions/DatabaseProperties" - } - ], + "ClusterPropertiesEncryption": { "type": "object", + "description": "Encryption-at-rest configuration for the cluster.", "properties": { - "accessKeysAuthentication": { - "type": "string", - "description": "This property can be Enabled/Disabled to allow or deny access with the current access keys. Can be updated even after database is created. Default is Disabled.", - "enum": [ - "Disabled", - "Enabled" - ], - "default": "Disabled", - "x-ms-enum": { - "name": "accessKeysAuthentication", - "modelAsString": true - } + "customerManagedKeyEncryption": { + "$ref": "#/definitions/ClusterPropertiesEncryptionCustomerManagedKeyEncryption", + "description": "All Customer-managed key encryption properties for the resource. Set this to an empty object to use Microsoft-managed key encryption." } } }, - "DatabaseUpdateProperties": { - "title": "Redis Enterprise database update properties", - "description": "Properties for updating Redis Enterprise databases", - "allOf": [ - { - "$ref": "#/definitions/DatabaseProperties" - } - ], + "ClusterPropertiesEncryptionCustomerManagedKeyEncryption": { "type": "object", + "description": "All Customer-managed key encryption properties for the resource. Set this to an empty object to use Microsoft-managed key encryption.", "properties": { - "accessKeysAuthentication": { + "keyEncryptionKeyIdentity": { + "$ref": "#/definitions/ClusterPropertiesEncryptionCustomerManagedKeyEncryptionKeyIdentity", + "description": "All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault." + }, + "keyEncryptionKeyUrl": { "type": "string", - "description": "This property can be Enabled/Disabled to allow or deny access with the current access keys. Can be updated even after database is created. Default is Disabled.", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "accessKeysAuthentication", - "modelAsString": true - } + "description": "Key encryption key Url, versioned only. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78" } } }, - "DatabaseList": { + "ClusterPropertiesEncryptionCustomerManagedKeyEncryptionKeyIdentity": { "type": "object", + "description": "All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault.", "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/Database" - }, - "description": "List of databases" - }, - "nextLink": { + "userAssignedIdentityResourceId": { "type": "string", - "readOnly": true, - "description": "The URI to fetch the next page of results." + "description": "User assigned identity to use for accessing key encryption key Url. Ex: /subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId." + }, + "identityType": { + "$ref": "#/definitions/CmkIdentityType", + "description": "Only userAssignedIdentity is supported in this API version; other types may be supported in the future" } - }, - "description": "The response of a list-all operation." + } }, - "AccessPolicyAssignmentProperties": { - "title": "Redis Enterprise database access policy assignment properties", - "description": "Properties of Redis Enterprise database access policy assignment.", + "ClusterUpdate": { "type": "object", + "description": "A partial update to the Redis Enterprise cluster", "properties": { - "provisioningState": { - "$ref": "#/definitions/ProvisioningState", - "readOnly": true, - "description": "Current provisioning status of the access policy assignment." + "sku": { + "$ref": "#/definitions/Sku", + "description": "The SKU to create, which affects price, performance, and features." }, - "accessPolicyName": { - "type": "string", - "description": "Name of access policy under specific access policy assignment. Only \"default\" policy is supported for now.", - "pattern": "^([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]|[a-zA-Z0-9])$" + "properties": { + "$ref": "#/definitions/ClusterUpdateProperties", + "description": "Other properties of the cluster.", + "x-ms-client-flatten": true }, - "user": { + "identity": { + "$ref": "../../../../../../common-types/resource-management/v6/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The identity of the resource." + }, + "tags": { "type": "object", - "properties": { - "objectId": { - "type": "string", - "description": "The object ID of the user.", - "example": "6497c918-11ad-41e7-1b0f-7c518a87d0b0" - } + "description": "Resource tags.", + "additionalProperties": { + "type": "string" }, - "description": "The user associated with the access policy." + "x-ms-mutability": [ + "read", + "update", + "create" + ] + } + } + }, + "ClusterUpdateProperties": { + "type": "object", + "description": "Properties of Redis Enterprise clusters for update operations", + "properties": { + "publicNetworkAccess": { + "$ref": "#/definitions/PublicNetworkAccess", + "description": "Whether or not public network traffic can access the Redis cluster. Only 'Enabled' or 'Disabled' can be set. null is returned only for clusters created using an old API version which do not have this property and cannot be set.", + "x-nullable": true } }, - "required": [ - "user", - "accessPolicyName" + "allOf": [ + { + "$ref": "#/definitions/ClusterProperties" + } ] }, - "AccessPolicyAssignment": { - "description": "Describes the access policy assignment of Redis Enterprise database", + "ClusteringPolicy": { + "type": "string", + "description": "Clustering policy - default is OSSCluster. This property can be updated only if the current value is NoCluster. If the value is OSSCluster or EnterpriseCluster, it cannot be updated without deleting the database.", + "enum": [ + "EnterpriseCluster", + "OSSCluster", + "NoCluster" + ], + "x-ms-enum": { + "name": "ClusteringPolicy", + "modelAsString": true, + "values": [ + { + "name": "EnterpriseCluster", + "value": "EnterpriseCluster", + "description": "Enterprise clustering policy uses only the classic redis protocol, which does not support redis cluster commands." + }, + { + "name": "OSSCluster", + "value": "OSSCluster", + "description": "OSS clustering policy follows the redis cluster specification, and requires all clients to support redis clustering." + }, + { + "name": "NoCluster", + "value": "NoCluster", + "description": "The NoCluster policy is used for non-clustered Redis instances that do not require clustering features." + } + ] + } + }, + "CmkIdentityType": { + "type": "string", + "description": "Only userAssignedIdentity is supported in this API version; other types may be supported in the future", + "enum": [ + "systemAssignedIdentity", + "userAssignedIdentity" + ], + "x-ms-enum": { + "name": "CmkIdentityType", + "modelAsString": true, + "values": [ + { + "name": "SystemAssignedIdentity", + "value": "systemAssignedIdentity", + "description": "systemAssignedIdentity" + }, + { + "name": "UserAssignedIdentity", + "value": "userAssignedIdentity", + "description": "userAssignedIdentity" + } + ] + } + }, + "Database": { "type": "object", + "description": "Describes a database on the Redis Enterprise cluster", "properties": { "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/AccessPolicyAssignmentProperties", - "description": "Properties of the access policy assignment." + "$ref": "#/definitions/DatabaseCreateProperties", + "description": "Other properties of the database.", + "x-ms-client-flatten": true } }, "allOf": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" } ] }, - "AccessPolicyAssignmentList": { + "DatabaseCreateProperties": { + "type": "object", + "description": "Properties for creating Redis Enterprise databases", + "properties": { + "accessKeysAuthentication": { + "type": "string", + "description": "This property can be Enabled/Disabled to allow or deny access with the current access keys. Can be updated even after database is created. Default is Disabled.", + "default": "Disabled", + "enum": [ + "Disabled", + "Enabled" + ], + "x-ms-enum": { + "name": "AccessKeysAuthentication", + "modelAsString": true, + "values": [ + { + "name": "Disabled", + "value": "Disabled", + "description": "Disabled" + }, + { + "name": "Enabled", + "value": "Enabled", + "description": "Enabled" + } + ] + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/DatabaseProperties" + } + ] + }, + "DatabaseList": { "type": "object", + "description": "The response of a list-all operation.", "properties": { "value": { "type": "array", + "description": "The Database items on this page", "items": { - "$ref": "#/definitions/AccessPolicyAssignment" - }, - "description": "List of access policy assignments." + "$ref": "#/definitions/Database" + } }, "nextLink": { "type": "string", - "readOnly": true, - "description": "The URI to fetch the next page of results." + "format": "uri", + "description": "The link to the next page of items" } }, - "description": "The response of a list-all operation." + "required": [ + "value" + ] }, - "Persistence": { - "title": "Persistence settings", - "description": "Persistence-related configuration for the Redis Enterprise database", + "DatabaseProperties": { "type": "object", + "description": "Properties of Redis Enterprise databases, as opposed to general resource properties like location, tags", "properties": { - "aofEnabled": { - "type": "boolean", - "description": "Sets whether AOF is enabled. Note that at most one of AOF or RDB persistence may be enabled." + "clientProtocol": { + "$ref": "#/definitions/Protocol", + "description": "Specifies whether redis clients can connect using TLS-encrypted or plaintext redis protocols. Default is TLS-encrypted." }, - "rdbEnabled": { - "type": "boolean", - "description": "Sets whether RDB is enabled. Note that at most one of AOF or RDB persistence may be enabled." + "port": { + "type": "integer", + "format": "int32", + "description": "TCP port of the database endpoint. Specified at create time. Defaults to an available port.", + "x-ms-mutability": [ + "read", + "create" + ] }, - "aofFrequency": { - "type": "string", - "description": "Sets the frequency at which data is written to disk. Defaults to '1s', meaning 'every second'. Note that the 'always' setting is deprecated, because of its performance impact.", - "enum": [ - "1s", - "always" - ], - "x-ms-enum": { - "name": "AofFrequency", - "modelAsString": true - } + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Current provisioning status of the database", + "readOnly": true }, - "rdbFrequency": { - "type": "string", - "description": "Sets the frequency at which a snapshot of the database is created.", - "enum": [ - "1h", - "6h", - "12h" - ], - "x-ms-enum": { - "name": "RdbFrequency", - "modelAsString": true - } - } - } - }, - "Module": { - "title": "Module settings", - "description": "Specifies configuration of a redis module", - "type": "object", - "properties": { - "name": { - "type": "string", + "resourceState": { + "$ref": "#/definitions/ResourceState", + "description": "Current resource status of the database", + "readOnly": true + }, + "clusteringPolicy": { + "$ref": "#/definitions/ClusteringPolicy", + "description": "Clustering policy - default is OSSCluster. This property can be updated only if the current value is NoCluster. If the value is OSSCluster or EnterpriseCluster, it cannot be updated without deleting the database.", "x-ms-mutability": [ "read", + "update", "create" + ] + }, + "evictionPolicy": { + "$ref": "#/definitions/EvictionPolicy", + "description": "Redis eviction policy - default is VolatileLRU" + }, + "persistence": { + "$ref": "#/definitions/Persistence", + "description": "Persistence settings" + }, + "modules": { + "type": "array", + "description": "Optional set of redis modules to enable in this database - modules can only be added at creation time.", + "items": { + "$ref": "#/definitions/Module" + }, + "x-ms-identifiers": [ + "name" ], - "description": "The name of the module, e.g. 'RedisBloom', 'RediSearch', 'RedisTimeSeries'" + "x-ms-mutability": [ + "read", + "create" + ] }, - "args": { - "type": "string", + "geoReplication": { + "$ref": "#/definitions/DatabasePropertiesGeoReplication", + "description": "Optional set of properties to configure geo replication for this database.", "x-ms-mutability": [ "read", "create" - ], - "description": "Configuration options for the module, e.g. 'ERROR_RATE 0.01 INITIAL_SIZE 400'." + ] }, - "version": { + "redisVersion": { "type": "string", - "readOnly": true, - "description": "The version of the module, e.g. '1.0'." + "description": "Version of Redis the database is running on, e.g. '6.0'", + "readOnly": true + }, + "deferUpgrade": { + "$ref": "#/definitions/DeferUpgradeSetting", + "description": "Option to defer upgrade when newest version is released - default is NotDeferred. Learn more: https://aka.ms/redisversionupgrade" + }, + "accessKeysAuthentication": { + "$ref": "#/definitions/AccessKeysAuthentication", + "description": "This property can be Enabled/Disabled to allow or deny access with the current access keys. Can be updated even after database is created." } - }, - "required": [ - "name" - ] + } }, - "LinkedDatabase": { - "title": "Linked Database", - "description": "Specifies details of a linked database resource.", + "DatabasePropertiesGeoReplication": { "type": "object", + "description": "Optional set of properties to configure geo replication for this database.", "properties": { - "id": { + "groupNickname": { "type": "string", - "format": "arm-id", - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.Cache/redisEnterprise/databases" - } - ] - }, + "description": "Name for the group of linked database resources", "x-ms-mutability": [ "read", "create" - ], - "description": "Resource ID of a database resource to link with this database." + ] }, - "state": { - "type": "string", - "description": "State of the link between the database resources.", - "enum": [ - "Linked", - "Linking", - "Unlinking", - "LinkFailed", - "UnlinkFailed" - ], - "x-ms-enum": { - "name": "LinkState", - "modelAsString": true - }, - "readOnly": true + "linkedDatabases": { + "type": "array", + "description": "List of database resources to link with this database", + "items": { + "$ref": "#/definitions/LinkedDatabase" + } } } }, - "MaintenanceConfiguration": { - "title": "Cluster maintenance configuration", - "description": "Cluster-level maintenance configuration.", + "DatabaseUpdate": { "type": "object", + "description": "A partial update to the Redis Enterprise database", "properties": { - "maintenanceWindows": { - "type": "array", - "description": "Custom maintenance windows that apply to the cluster.", - "items": { - "$ref": "#/definitions/MaintenanceWindow" - }, - "x-ms-identifiers": [] + "properties": { + "$ref": "#/definitions/DatabaseUpdateProperties", + "description": "Properties of the database.", + "x-ms-client-flatten": true } } }, - "MaintenanceWindow": { - "title": "Maintenance window", - "description": "A single custom maintenance window.", + "DatabaseUpdateProperties": { "type": "object", + "description": "Properties for updating Redis Enterprise databases", "properties": { - "type": { - "type": "string", - "description": "Maintenance window type.", - "enum": [ - "Weekly" - ], - "x-ms-enum": { - "name": "MaintenanceWindowType", - "modelAsString": true - } - }, - "duration": { - "type": "string", - "description": "Duration in ISO-8601 format, for example 'PT5H'." - }, - "startHourUtc": { - "type": "integer", - "format": "int32", - "description": "Start hour (0-23) in UTC when the maintenance window begins.", - "minimum": 0, - "maximum": 23 - }, - "schedule": { - "$ref": "#/definitions/MaintenanceWindowSchedule", - "description": "Recurring schedule for the maintenance window." + "accessKeysAuthentication": { + "$ref": "#/definitions/AccessKeysAuthentication", + "description": "This property can be Enabled/Disabled to allow or deny access with the current access keys. Can be updated even after database is created. Default is Disabled." } }, - "required": [ - "type", - "duration", - "startHourUtc", - "schedule" + "allOf": [ + { + "$ref": "#/definitions/DatabaseProperties" + } ] }, - "MaintenanceWindowSchedule": { - "title": "Maintenance window schedule", - "description": "Schedule details for a maintenance window.", - "type": "object", - "properties": { - "dayOfWeek": { - "type": "string", - "description": "Day of week. Required when the maintenance window type is 'Weekly'.", - "enum": [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" - ], - "x-ms-enum": { - "name": "MaintenanceDayOfWeek", - "modelAsString": true + "DeferUpgradeSetting": { + "type": "string", + "description": "Option to defer upgrade when newest version is released - default is NotDeferred. Learn more: https://aka.ms/redisversionupgrade", + "enum": [ + "Deferred", + "NotDeferred" + ], + "x-ms-enum": { + "name": "DeferUpgradeSetting", + "modelAsString": true, + "values": [ + { + "name": "Deferred", + "value": "Deferred", + "description": "Deferred" + }, + { + "name": "NotDeferred", + "value": "NotDeferred", + "description": "NotDeferred" } - } + ] } }, - "AccessKeys": { - "title": "Access keys", - "description": "The secret access keys used for authenticating connections to redis", - "type": "object", - "properties": { - "primaryKey": { - "readOnly": true, - "type": "string", - "description": "The current primary key that clients can use to authenticate" - }, - "secondaryKey": { - "readOnly": true, - "type": "string", - "description": "The current secondary key that clients can use to authenticate" - } + "EvictionPolicy": { + "type": "string", + "description": "Redis eviction policy - default is VolatileLRU", + "enum": [ + "AllKeysLFU", + "AllKeysLRU", + "AllKeysRandom", + "VolatileLRU", + "VolatileLFU", + "VolatileTTL", + "VolatileRandom", + "NoEviction" + ], + "x-ms-enum": { + "name": "EvictionPolicy", + "modelAsString": true, + "values": [ + { + "name": "AllKeysLFU", + "value": "AllKeysLFU", + "description": "AllKeysLFU" + }, + { + "name": "AllKeysLRU", + "value": "AllKeysLRU", + "description": "AllKeysLRU" + }, + { + "name": "AllKeysRandom", + "value": "AllKeysRandom", + "description": "AllKeysRandom" + }, + { + "name": "VolatileLRU", + "value": "VolatileLRU", + "description": "VolatileLRU" + }, + { + "name": "VolatileLFU", + "value": "VolatileLFU", + "description": "VolatileLFU" + }, + { + "name": "VolatileTTL", + "value": "VolatileTTL", + "description": "VolatileTTL" + }, + { + "name": "VolatileRandom", + "value": "VolatileRandom", + "description": "VolatileRandom" + }, + { + "name": "NoEviction", + "value": "NoEviction", + "description": "NoEviction" + } + ] } }, - "RegenerateKeyParameters": { - "title": "Regenerate access keys request", + "ExportClusterParameters": { "type": "object", + "description": "Parameters for a Redis Enterprise export operation.", "properties": { - "keyType": { + "sasUri": { "type": "string", - "description": "Which access key to regenerate.", - "enum": [ - "Primary", - "Secondary" - ], - "x-ms-enum": { - "name": "AccessKeyType", - "modelAsString": false - } + "format": "password", + "description": "SAS URI for the target directory to export to", + "x-ms-secret": true } }, "required": [ - "keyType" - ], - "description": "Specifies which access keys to reset to a new random value." + "sasUri" + ] }, - "ImportClusterParameters": { - "title": "Import RDB files into a target database", + "FlushParameters": { "type": "object", + "description": "Parameters for a Redis Enterprise active geo-replication flush operation", "properties": { - "sasUris": { + "ids": { "type": "array", + "description": "The identifiers of all the other database resources in the georeplication group to be flushed.", "items": { - "type": "string" - }, - "description": "SAS URIs for the target blobs to import from", - "x-ms-secret": true + "type": "string", + "format": "arm-id", + "description": "A type definition that refers the id to an Azure Resource Manager resource.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Cache/redisEnterprise/databases" + } + ] + } + } } - }, - "required": [ - "sasUris" - ], - "description": "Parameters for a Redis Enterprise import operation." + } }, - "ExportClusterParameters": { - "title": "Export an RDB file into a target database", + "ForceLinkParameters": { "type": "object", + "description": "Parameters for reconfiguring active geo-replication, of an existing database that was previously unlinked from a replication group.", "properties": { - "sasUri": { - "type": "string", - "description": "SAS URI for the target directory to export to", - "x-ms-secret": true + "geoReplication": { + "$ref": "#/definitions/ForceLinkParametersGeoReplication", + "description": "Properties to configure geo replication for this database.", + "x-ms-mutability": [ + "read", + "create" + ] } }, "required": [ - "sasUri" - ], - "description": "Parameters for a Redis Enterprise export operation." + "geoReplication" + ] }, - "OperationStatus": { - "description": "The status of a long-running operation.", + "ForceLinkParametersGeoReplication": { "type": "object", + "description": "Properties to configure geo replication for this database.", "properties": { - "id": { + "groupNickname": { "type": "string", - "description": "The operation's unique id." + "description": "The name of the group of linked database resources. This should match the existing replication group name.", + "x-ms-mutability": [ + "read", + "create" + ] }, - "name": { - "type": "string", - "description": "The operation's name." - }, - "startTime": { - "type": "string", - "description": "The start time of the operation." - }, - "endTime": { - "type": "string", - "description": "The end time of the operation." - }, - "status": { - "type": "string", - "description": "The current status of the operation." - }, - "error": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse", - "description": "Error response describing why the operation failed." - } - } - }, - "ForceLinkParameters": { - "type": "object", - "description": "Parameters for reconfiguring active geo-replication, of an existing database that was previously unlinked from a replication group.", - "required": [ - "geoReplication" - ], - "properties": { - "geoReplication": { - "type": "object", - "description": "Properties to configure geo replication for this database.", - "x-ms-mutability": [ - "read", - "create" - ], - "properties": { - "groupNickname": { - "type": "string", - "description": "The name of the group of linked database resources. This should match the existing replication group name.", - "x-ms-mutability": [ - "read", - "create" - ] - }, - "linkedDatabases": { - "type": "array", - "description": "The resource IDs of the databases that are expected to be linked and included in the replication group. This parameter is used to validate that the linking is to the expected (unlinked) part of the replication group, if it is splintered.", - "items": { - "$ref": "#/definitions/LinkedDatabase" - } - } + "linkedDatabases": { + "type": "array", + "description": "The resource IDs of the databases that are expected to be linked and included in the replication group. This parameter is used to validate that the linking is to the expected (unlinked) part of the replication group, if it is splintered.", + "items": { + "$ref": "#/definitions/LinkedDatabase" } } } }, "ForceUnlinkParameters": { - "title": "Forcibly unlink another database from this database.", - "description": "Parameters for a Redis Enterprise Active Geo Replication Force Unlink operation.", "type": "object", + "description": "Parameters for a Redis Enterprise Active Geo Replication Force Unlink operation.", "properties": { "ids": { "type": "array", + "description": "The resource IDs of the database resources to be unlinked.", "items": { "type": "string", "format": "arm-id", + "description": "A type definition that refers the id to an Azure Resource Manager resource.", "x-ms-arm-id-details": { "allowedResources": [ { @@ -3067,288 +3213,1219 @@ } ] } - }, - "description": "The resource IDs of the database resources to be unlinked." + } } }, "required": [ "ids" ] }, - "FlushParameters": { - "title": "Flush all the keys from the current and all its linked databases.", + "HighAvailability": { + "type": "string", + "description": "Enabled by default. If highAvailability is disabled, the data set is not replicated. This affects the availability SLA, and increases the risk of data loss.", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "HighAvailability", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Enabled" + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disabled" + } + ] + } + }, + "ImportClusterParameters": { "type": "object", + "description": "Parameters for a Redis Enterprise import operation.", "properties": { - "ids": { + "sasUris": { "type": "array", + "format": "password", + "description": "SAS URIs for the target blobs to import from", "items": { - "type": "string", - "format": "arm-id", - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.Cache/redisEnterprise/databases" - } - ] - } + "type": "string" }, - "description": "The identifiers of all the other database resources in the georeplication group to be flushed." + "x-ms-secret": true } }, - "description": "Parameters for a Redis Enterprise active geo-replication flush operation" + "required": [ + "sasUris" + ] }, - "SkuDetails": { - "title": "SKU details", - "description": "Details of a Redis Enterprise cluster SKU.", + "Kind": { + "type": "string", + "description": "Distinguishes the kind of cluster. Read-only.", + "enum": [ + "v1", + "v2" + ], + "x-ms-enum": { + "name": "Kind", + "modelAsString": true, + "values": [ + { + "name": "V1", + "value": "v1", + "description": "v1" + }, + { + "name": "V2", + "value": "v2", + "description": "v2" + } + ] + } + }, + "LinkState": { + "type": "string", + "description": "State of the link between the database resources.", + "enum": [ + "Linked", + "Linking", + "Unlinking", + "LinkFailed", + "UnlinkFailed" + ], + "x-ms-enum": { + "name": "LinkState", + "modelAsString": true, + "values": [ + { + "name": "Linked", + "value": "Linked", + "description": "Linked" + }, + { + "name": "Linking", + "value": "Linking", + "description": "Linking" + }, + { + "name": "Unlinking", + "value": "Unlinking", + "description": "Unlinking" + }, + { + "name": "LinkFailed", + "value": "LinkFailed", + "description": "LinkFailed" + }, + { + "name": "UnlinkFailed", + "value": "UnlinkFailed", + "description": "UnlinkFailed" + } + ] + } + }, + "LinkedDatabase": { "type": "object", + "description": "Specifies details of a linked database resource.", "properties": { - "name": { - "readOnly": true, + "id": { "type": "string", - "description": "The name of the SKU." + "format": "arm-id", + "description": "Resource ID of a database resource to link with this database.", + "x-ms-mutability": [ + "read", + "create" + ], + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Cache/redisEnterprise/databases" + } + ] + } }, - "sizeInGB": { - "readOnly": true, - "type": "number", - "description": "The cache size in GB." + "state": { + "$ref": "#/definitions/LinkState", + "description": "State of the link between the database resources.", + "readOnly": true } } }, - "SkuDetailsList": { + "MaintenanceConfiguration": { "type": "object", + "description": "Cluster-level maintenance configuration.", "properties": { - "skus": { + "maintenanceWindows": { "type": "array", + "description": "Custom maintenance windows that apply to the cluster.", "items": { - "$ref": "#/definitions/SkuDetails" + "$ref": "#/definitions/MaintenanceWindow" }, - "description": "List of SKUS available to scale up or scale down." + "x-ms-identifiers": [] } - }, - "description": "The response of a listSkusForScaling operation." + } }, - "MigrationProvisioningState": { + "MaintenanceDayOfWeek": { "type": "string", - "readOnly": true, - "description": "Current provisioning status", + "description": "Day of week. Required when the maintenance window type is 'Weekly'.", "enum": [ - "Accepted", - "InProgress", - "ReadyForDnsSwitch", - "Succeeded", - "Failed", - "Cancelling", - "Cancelled" + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" ], "x-ms-enum": { - "name": "MigrationProvisioningState", + "name": "MaintenanceDayOfWeek", "modelAsString": true, "values": [ { - "name": "Accepted", - "value": "Accepted", - "description": "The request has been accepted and the migration operation is being initialized." + "name": "Sunday", + "value": "Sunday" }, { - "name": "InProgress", - "value": "InProgress", - "description": "The migration operation is in progress." + "name": "Monday", + "value": "Monday" }, { - "name": "ReadyForDnsSwitch", - "value": "ReadyForDnsSwitch", - "description": "The migration operation has completed transferring data and is ready for DNS switch." + "name": "Tuesday", + "value": "Tuesday" }, { - "name": "Succeeded", - "value": "Succeeded", - "description": "The migration operation has completed successfully." + "name": "Wednesday", + "value": "Wednesday" }, { - "name": "Failed", - "value": "Failed", - "description": "The migration operation has failed." + "name": "Thursday", + "value": "Thursday" }, { - "name": "Cancelling", - "value": "Cancelling", - "description": "The migration operation is being cancelled." + "name": "Friday", + "value": "Friday" }, { - "name": "Cancelled", - "value": "Cancelled", - "description": "The migration operation has been cancelled." + "name": "Saturday", + "value": "Saturday" + } + ] + } + }, + "MaintenanceWindow": { + "type": "object", + "description": "A single custom maintenance window.", + "properties": { + "type": { + "$ref": "#/definitions/MaintenanceWindowType", + "description": "Maintenance window type." + }, + "duration": { + "type": "string", + "description": "Duration in ISO-8601 format, for example 'PT5H'." + }, + "startHourUtc": { + "type": "integer", + "format": "int32", + "description": "Start hour (0-23) in UTC when the maintenance window begins.", + "minimum": 0, + "maximum": 23 + }, + "schedule": { + "$ref": "#/definitions/MaintenanceWindowSchedule", + "description": "Recurring schedule for the maintenance window." + } + }, + "required": [ + "type", + "duration", + "startHourUtc", + "schedule" + ] + }, + "MaintenanceWindowSchedule": { + "type": "object", + "description": "Schedule details for a maintenance window.", + "properties": { + "dayOfWeek": { + "$ref": "#/definitions/MaintenanceDayOfWeek", + "description": "Day of week. Required when the maintenance window type is 'Weekly'." + } + } + }, + "MaintenanceWindowType": { + "type": "string", + "description": "Maintenance window type.", + "enum": [ + "Weekly" + ], + "x-ms-enum": { + "name": "MaintenanceWindowType", + "modelAsString": true, + "values": [ + { + "name": "Weekly", + "value": "Weekly", + "description": "Weekly maintenance window." } ] } }, "Migration": { - "description": "Describes the current migration operation on a Redis Enterprise cluster.", "type": "object", + "description": "Describes the current migration operation on a Redis Enterprise cluster.", "properties": { "properties": { - "x-ms-client-flatten": true, "$ref": "#/definitions/MigrationProperties", "description": "Properties of the migration operation." } }, "allOf": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" } ] }, "MigrationList": { "type": "object", + "description": "The response of a list-all migrations.", "properties": { "value": { "type": "array", + "description": "The Migration items on this page", "items": { "$ref": "#/definitions/Migration" - }, - "description": "List of migration operations." + } }, "nextLink": { "type": "string", "format": "uri", - "readOnly": true, - "description": "The URI to fetch the next page of results." + "description": "The link to the next page of items" } }, - "description": "The response of a list-all migrations." + "required": [ + "value" + ] }, "MigrationProperties": { - "title": "Redis Enterprise migration properties", - "description": "Properties for Redis Enterprise migration operation.", "type": "object", - "discriminator": "sourceType", + "description": "Properties for Redis Enterprise migration operation.", "properties": { "sourceType": { - "type": "string", - "description": "Describes the source of the migration operation.", - "enum": [ - "AzureCacheForRedis" - ], - "x-ms-enum": { - "name": "SourceType", - "modelAsString": true, - "values": [ - { - "name": "AzureCacheForRedis", - "value": "AzureCacheForRedis", - "description": "Migration from Azure Cache for Redis to Redis Enterprise." - } - ] - } + "$ref": "#/definitions/SourceType", + "description": "Describes the source of the migration operation." }, "targetResourceId": { "type": "string", "format": "arm-id", + "description": "The Azure resource ID of the Azure Managed Redis destination cache to migrate.", + "readOnly": true, "x-ms-arm-id-details": { "allowedResources": [ { "type": "Microsoft.Cache/redisEnterprise" } ] - }, - "readOnly": true, - "description": "The Azure resource ID of the Azure Managed Redis destination cache to migrate." + } }, "provisioningState": { "$ref": "#/definitions/MigrationProvisioningState", - "readOnly": true, - "description": "Current provisioning status of the migration" + "description": "Current provisioning status of the migration", + "readOnly": true }, "statusDetails": { "type": "string", - "readOnly": true, - "description": "Additional details about the migration operation's status in free text format." + "description": "Additional details about the migration operation's status in free text format.", + "readOnly": true }, "creationTime": { "type": "string", "format": "date-time", - "readOnly": true, - "description": "The timestamp when the migration operation was created." + "description": "The timestamp when the migration operation was created.", + "readOnly": true }, "lastModifiedTime": { "type": "string", "format": "date-time", - "readOnly": true, - "description": "The timestamp when the migration operation was last updated." + "description": "The timestamp when the migration operation was last updated.", + "readOnly": true } }, + "discriminator": "sourceType", "required": [ "sourceType" ] }, - "AzureCacheForRedisMigrationProperties": { - "title": "Redis Enterprise migration properties for Azure Cache for Redis", - "description": "Properties for Redis Enterprise migration operation for Azure Cache for Redis.", - "x-ms-discriminator-value": "AzureCacheForRedis", - "allOf": [ - { - "$ref": "#/definitions/MigrationProperties" - }, - { - "type": "object", - "properties": { - "sourceResourceId": { - "type": "string", - "format": "arm-id", - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.Cache/redis" - } - ] - }, - "description": "The source resource ID to migrate from. This is the resource ID of the Azure Cache for Redis." - }, - "switchDns": { - "type": "boolean", - "description": "Sets whether the DNS is switched automatically after the data is transferred from the source cache to the target cache. This property must be true during the preview." - }, - "skipDataMigration": { - "type": "boolean", - "description": "Sets whether the data is migrated from source to target or not. This property must be true during the preview." - } + "MigrationProvisioningState": { + "type": "string", + "description": "Current provisioning status", + "enum": [ + "Accepted", + "InProgress", + "ReadyForDnsSwitch", + "Succeeded", + "Failed", + "Cancelling", + "Cancelled" + ], + "x-ms-enum": { + "name": "MigrationProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Accepted", + "value": "Accepted", + "description": "The request has been accepted and the migration operation is being initialized." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "The migration operation is in progress." + }, + { + "name": "ReadyForDnsSwitch", + "value": "ReadyForDnsSwitch", + "description": "The migration operation has completed transferring data and is ready for DNS switch." }, - "required": [ - "sourceResourceId", - "switchDns", - "skipDataMigration" + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The migration operation has completed successfully." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The migration operation has failed." + }, + { + "name": "Cancelling", + "value": "Cancelling", + "description": "The migration operation is being cancelled." + }, + { + "name": "Cancelled", + "value": "Cancelled", + "description": "The migration operation has been cancelled." + } + ] + } + }, + "Module": { + "type": "object", + "description": "Specifies configuration of a redis module", + "properties": { + "name": { + "type": "string", + "description": "The name of the module, e.g. 'RedisBloom', 'RediSearch', 'RedisTimeSeries'", + "x-ms-mutability": [ + "read", + "create" ] + }, + "args": { + "type": "string", + "description": "Configuration options for the module, e.g. 'ERROR_RATE 0.01 INITIAL_SIZE 400'.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "version": { + "type": "string", + "description": "The version of the module, e.g. '1.0'.", + "readOnly": true } + }, + "required": [ + "name" ] - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$", - "in": "path", - "required": true, + }, + "OperationStatus": { + "type": "object", + "description": "The status of a long-running operation.", + "properties": { + "id": { + "type": "string", + "description": "The operation's unique id." + }, + "name": { + "type": "string", + "description": "The operation's name." + }, + "startTime": { + "type": "string", + "description": "The start time of the operation." + }, + "endTime": { + "type": "string", + "description": "The end time of the operation." + }, + "status": { + "type": "string", + "description": "The current status of the operation." + }, + "error": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse", + "description": "Error response describing why the operation failed." + } + } + }, + "Persistence": { + "type": "object", + "description": "Persistence-related configuration for the Redis Enterprise database", + "properties": { + "aofEnabled": { + "type": "boolean", + "description": "Sets whether AOF is enabled. Note that at most one of AOF or RDB persistence may be enabled." + }, + "rdbEnabled": { + "type": "boolean", + "description": "Sets whether RDB is enabled. Note that at most one of AOF or RDB persistence may be enabled." + }, + "aofFrequency": { + "$ref": "#/definitions/AofFrequency", + "description": "Sets the frequency at which data is written to disk. Defaults to '1s', meaning 'every second'. Note that the 'always' setting is deprecated, because of its performance impact." + }, + "rdbFrequency": { + "$ref": "#/definitions/RdbFrequency", + "description": "Sets the frequency at which a snapshot of the database is created." + } + } + }, + "PrivateEndpointConnectionListResult": { + "type": "object", + "description": "The response of a PrivateEndpointConnection list operation.", + "properties": { + "value": { + "type": "array", + "description": "The PrivateEndpointConnection items on this page", + "items": { + "$ref": "../../../../../../common-types/resource-management/v6/privatelinks.json#/definitions/PrivateEndpointConnection" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "Protocol": { + "type": "string", + "description": "Specifies whether redis clients can connect using TLS-encrypted or plaintext redis protocols. Default is TLS-encrypted.", + "enum": [ + "Encrypted", + "Plaintext" + ], + "x-ms-enum": { + "name": "Protocol", + "modelAsString": true, + "values": [ + { + "name": "Encrypted", + "value": "Encrypted", + "description": "Encrypted" + }, + { + "name": "Plaintext", + "value": "Plaintext", + "description": "Plaintext" + } + ] + } + }, + "ProvisioningState": { + "type": "string", + "description": "Current provisioning status", + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "Creating", + "Updating", + "Deleting" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Succeeded" + }, + { + "name": "Failed", + "value": "Failed", + "description": "Failed" + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Canceled" + }, + { + "name": "Creating", + "value": "Creating", + "description": "Creating" + }, + { + "name": "Updating", + "value": "Updating", + "description": "Updating" + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "Deleting" + } + ] + } + }, + "PublicNetworkAccess": { "type": "string", - "description": "The name of the Redis Enterprise cluster. Name must be 1-60 characters long. Allowed characters(A-Z, a-z, 0-9) and hyphen(-). There can be no leading nor trailing nor consecutive hyphens", - "x-ms-parameter-location": "method" - }, - "DatabaseNameParameter": { - "name": "databaseName", - "pattern": "^(?=.{1,60}$)[A-Za-z0-9]+(-[A-Za-z0-9]+)*$", - "in": "path", - "required": true, + "description": "Whether or not public network traffic can access the Redis cluster. Only 'Enabled' or 'Disabled' can be set. null is returned only for clusters created using an old API version which do not have this property and cannot be set.", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "PublicNetworkAccess", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Enabled" + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disabled" + } + ] + } + }, + "RdbFrequency": { "type": "string", - "description": "The name of the Redis Enterprise database.", - "x-ms-parameter-location": "method" - }, - "AccessPolicyAssignmentNameParameter": { - "name": "accessPolicyAssignmentName", - "pattern": "^[A-Za-z0-9]{1,60}$", - "in": "path", - "required": true, + "description": "Sets the frequency at which a snapshot of the database is created.", + "enum": [ + "1h", + "6h", + "12h" + ], + "x-ms-enum": { + "name": "RdbFrequency", + "modelAsString": true, + "values": [ + { + "name": "OneH", + "value": "1h", + "description": "1h" + }, + { + "name": "SixH", + "value": "6h", + "description": "6h" + }, + { + "name": "TwelveH", + "value": "12h", + "description": "12h" + } + ] + } + }, + "RedundancyMode": { "type": "string", - "description": "The name of the Redis Enterprise database access policy assignment.", - "x-ms-parameter-location": "method" + "description": "Explains the current redundancy strategy of the cluster, which affects the expected SLA.", + "enum": [ + "None", + "LR", + "ZR" + ], + "x-ms-enum": { + "name": "RedundancyMode", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "No redundancy. Availability loss will occur." + }, + { + "name": "LR", + "value": "LR", + "description": "Local redundancy with high availability." + }, + { + "name": "ZR", + "value": "ZR", + "description": "Zone redundant. Higher availability." + } + ] + } + }, + "RegenerateKeyParameters": { + "type": "object", + "description": "Specifies which access keys to reset to a new random value.", + "properties": { + "keyType": { + "$ref": "#/definitions/AccessKeyType", + "description": "Which access key to regenerate." + } + }, + "required": [ + "keyType" + ] + }, + "ResourceState": { + "type": "string", + "description": "Current resource status", + "enum": [ + "Running", + "Creating", + "CreateFailed", + "Updating", + "UpdateFailed", + "Deleting", + "DeleteFailed", + "Enabling", + "EnableFailed", + "Disabling", + "DisableFailed", + "Disabled", + "Scaling", + "ScalingFailed", + "Moving" + ], + "x-ms-enum": { + "name": "ResourceState", + "modelAsString": true, + "values": [ + { + "name": "Running", + "value": "Running", + "description": "Running" + }, + { + "name": "Creating", + "value": "Creating", + "description": "Creating" + }, + { + "name": "CreateFailed", + "value": "CreateFailed", + "description": "CreateFailed" + }, + { + "name": "Updating", + "value": "Updating", + "description": "Updating" + }, + { + "name": "UpdateFailed", + "value": "UpdateFailed", + "description": "UpdateFailed" + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "Deleting" + }, + { + "name": "DeleteFailed", + "value": "DeleteFailed", + "description": "DeleteFailed" + }, + { + "name": "Enabling", + "value": "Enabling", + "description": "Enabling" + }, + { + "name": "EnableFailed", + "value": "EnableFailed", + "description": "EnableFailed" + }, + { + "name": "Disabling", + "value": "Disabling", + "description": "Disabling" + }, + { + "name": "DisableFailed", + "value": "DisableFailed", + "description": "DisableFailed" + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disabled" + }, + { + "name": "Scaling", + "value": "Scaling", + "description": "Scaling" + }, + { + "name": "ScalingFailed", + "value": "ScalingFailed", + "description": "ScalingFailed" + }, + { + "name": "Moving", + "value": "Moving", + "description": "Moving" + } + ] + } + }, + "Sku": { + "type": "object", + "description": "SKU parameters supplied to the create Redis Enterprise cluster operation.", + "properties": { + "name": { + "$ref": "#/definitions/SkuName", + "description": "The level of Redis Enterprise cluster to deploy. Possible values: ('Balanced_B5', 'MemoryOptimized_M10', 'ComputeOptimized_X5', etc.). For more information on SKUs see the latest pricing documentation. Note that additional SKUs may become supported in the future." + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "This property is only used with Enterprise and EnterpriseFlash SKUs. Determines the size of the cluster. Valid values are (2, 4, 6, ...) for Enterprise SKUs and (3, 9, 15, ...) for EnterpriseFlash SKUs." + } + }, + "required": [ + "name" + ] + }, + "SkuDetails": { + "type": "object", + "description": "Details of a Redis Enterprise cluster SKU.", + "properties": { + "name": { + "type": "string", + "description": "The name of the SKU.", + "readOnly": true + }, + "sizeInGB": { + "type": "number", + "format": "float", + "description": "The cache size in GB.", + "readOnly": true + } + } + }, + "SkuDetailsList": { + "type": "object", + "description": "The response of a listSkusForScaling operation.", + "properties": { + "skus": { + "type": "array", + "description": "List of SKUS available to scale up or scale down.", + "items": { + "$ref": "#/definitions/SkuDetails" + } + } + } + }, + "SkuName": { + "type": "string", + "description": "The level of Redis Enterprise cluster to deploy. Possible values: ('Balanced_B5', 'MemoryOptimized_M10', 'ComputeOptimized_X5', etc.). For more information on SKUs see the latest pricing documentation. Note that additional SKUs may become supported in the future.", + "enum": [ + "Enterprise_E1", + "Enterprise_E5", + "Enterprise_E10", + "Enterprise_E20", + "Enterprise_E50", + "Enterprise_E100", + "Enterprise_E200", + "Enterprise_E400", + "EnterpriseFlash_F300", + "EnterpriseFlash_F700", + "EnterpriseFlash_F1500", + "Balanced_B0", + "Balanced_B1", + "Balanced_B3", + "Balanced_B5", + "Balanced_B10", + "Balanced_B20", + "Balanced_B50", + "Balanced_B100", + "Balanced_B150", + "Balanced_B250", + "Balanced_B350", + "Balanced_B500", + "Balanced_B700", + "Balanced_B1000", + "MemoryOptimized_M10", + "MemoryOptimized_M20", + "MemoryOptimized_M50", + "MemoryOptimized_M100", + "MemoryOptimized_M150", + "MemoryOptimized_M250", + "MemoryOptimized_M350", + "MemoryOptimized_M500", + "MemoryOptimized_M700", + "MemoryOptimized_M1000", + "MemoryOptimized_M1500", + "MemoryOptimized_M2000", + "ComputeOptimized_X3", + "ComputeOptimized_X5", + "ComputeOptimized_X10", + "ComputeOptimized_X20", + "ComputeOptimized_X50", + "ComputeOptimized_X100", + "ComputeOptimized_X150", + "ComputeOptimized_X250", + "ComputeOptimized_X350", + "ComputeOptimized_X500", + "ComputeOptimized_X700", + "FlashOptimized_A250", + "FlashOptimized_A500", + "FlashOptimized_A700", + "FlashOptimized_A1000", + "FlashOptimized_A1500", + "FlashOptimized_A2000", + "FlashOptimized_A4500" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": true, + "values": [ + { + "name": "EnterpriseE1", + "value": "Enterprise_E1", + "description": "Enterprise_E1" + }, + { + "name": "EnterpriseE5", + "value": "Enterprise_E5", + "description": "Enterprise_E5" + }, + { + "name": "EnterpriseE10", + "value": "Enterprise_E10", + "description": "Enterprise_E10" + }, + { + "name": "EnterpriseE20", + "value": "Enterprise_E20", + "description": "Enterprise_E20" + }, + { + "name": "EnterpriseE50", + "value": "Enterprise_E50", + "description": "Enterprise_E50" + }, + { + "name": "EnterpriseE100", + "value": "Enterprise_E100", + "description": "Enterprise_E100" + }, + { + "name": "EnterpriseE200", + "value": "Enterprise_E200", + "description": "Enterprise_E200" + }, + { + "name": "EnterpriseE400", + "value": "Enterprise_E400", + "description": "Enterprise_E400" + }, + { + "name": "EnterpriseFlashF300", + "value": "EnterpriseFlash_F300", + "description": "EnterpriseFlash_F300" + }, + { + "name": "EnterpriseFlashF700", + "value": "EnterpriseFlash_F700", + "description": "EnterpriseFlash_F700" + }, + { + "name": "EnterpriseFlashF1500", + "value": "EnterpriseFlash_F1500", + "description": "EnterpriseFlash_F1500" + }, + { + "name": "BalancedB0", + "value": "Balanced_B0", + "description": "Balanced_B0" + }, + { + "name": "BalancedB1", + "value": "Balanced_B1", + "description": "Balanced_B1" + }, + { + "name": "BalancedB3", + "value": "Balanced_B3", + "description": "Balanced_B3" + }, + { + "name": "BalancedB5", + "value": "Balanced_B5", + "description": "Balanced_B5" + }, + { + "name": "BalancedB10", + "value": "Balanced_B10", + "description": "Balanced_B10" + }, + { + "name": "BalancedB20", + "value": "Balanced_B20", + "description": "Balanced_B20" + }, + { + "name": "BalancedB50", + "value": "Balanced_B50", + "description": "Balanced_B50" + }, + { + "name": "BalancedB100", + "value": "Balanced_B100", + "description": "Balanced_B100" + }, + { + "name": "BalancedB150", + "value": "Balanced_B150", + "description": "Balanced_B150" + }, + { + "name": "BalancedB250", + "value": "Balanced_B250", + "description": "Balanced_B250" + }, + { + "name": "BalancedB350", + "value": "Balanced_B350", + "description": "Balanced_B350" + }, + { + "name": "BalancedB500", + "value": "Balanced_B500", + "description": "Balanced_B500" + }, + { + "name": "BalancedB700", + "value": "Balanced_B700", + "description": "Balanced_B700" + }, + { + "name": "BalancedB1000", + "value": "Balanced_B1000", + "description": "Balanced_B1000" + }, + { + "name": "MemoryOptimizedM10", + "value": "MemoryOptimized_M10", + "description": "MemoryOptimized_M10" + }, + { + "name": "MemoryOptimizedM20", + "value": "MemoryOptimized_M20", + "description": "MemoryOptimized_M20" + }, + { + "name": "MemoryOptimizedM50", + "value": "MemoryOptimized_M50", + "description": "MemoryOptimized_M50" + }, + { + "name": "MemoryOptimizedM100", + "value": "MemoryOptimized_M100", + "description": "MemoryOptimized_M100" + }, + { + "name": "MemoryOptimizedM150", + "value": "MemoryOptimized_M150", + "description": "MemoryOptimized_M150" + }, + { + "name": "MemoryOptimizedM250", + "value": "MemoryOptimized_M250", + "description": "MemoryOptimized_M250" + }, + { + "name": "MemoryOptimizedM350", + "value": "MemoryOptimized_M350", + "description": "MemoryOptimized_M350" + }, + { + "name": "MemoryOptimizedM500", + "value": "MemoryOptimized_M500", + "description": "MemoryOptimized_M500" + }, + { + "name": "MemoryOptimizedM700", + "value": "MemoryOptimized_M700", + "description": "MemoryOptimized_M700" + }, + { + "name": "MemoryOptimizedM1000", + "value": "MemoryOptimized_M1000", + "description": "MemoryOptimized_M1000" + }, + { + "name": "MemoryOptimizedM1500", + "value": "MemoryOptimized_M1500", + "description": "MemoryOptimized_M1500" + }, + { + "name": "MemoryOptimizedM2000", + "value": "MemoryOptimized_M2000", + "description": "MemoryOptimized_M2000" + }, + { + "name": "ComputeOptimizedX3", + "value": "ComputeOptimized_X3", + "description": "ComputeOptimized_X3" + }, + { + "name": "ComputeOptimizedX5", + "value": "ComputeOptimized_X5", + "description": "ComputeOptimized_X5" + }, + { + "name": "ComputeOptimizedX10", + "value": "ComputeOptimized_X10", + "description": "ComputeOptimized_X10" + }, + { + "name": "ComputeOptimizedX20", + "value": "ComputeOptimized_X20", + "description": "ComputeOptimized_X20" + }, + { + "name": "ComputeOptimizedX50", + "value": "ComputeOptimized_X50", + "description": "ComputeOptimized_X50" + }, + { + "name": "ComputeOptimizedX100", + "value": "ComputeOptimized_X100", + "description": "ComputeOptimized_X100" + }, + { + "name": "ComputeOptimizedX150", + "value": "ComputeOptimized_X150", + "description": "ComputeOptimized_X150" + }, + { + "name": "ComputeOptimizedX250", + "value": "ComputeOptimized_X250", + "description": "ComputeOptimized_X250" + }, + { + "name": "ComputeOptimizedX350", + "value": "ComputeOptimized_X350", + "description": "ComputeOptimized_X350" + }, + { + "name": "ComputeOptimizedX500", + "value": "ComputeOptimized_X500", + "description": "ComputeOptimized_X500" + }, + { + "name": "ComputeOptimizedX700", + "value": "ComputeOptimized_X700", + "description": "ComputeOptimized_X700" + }, + { + "name": "FlashOptimizedA250", + "value": "FlashOptimized_A250", + "description": "FlashOptimized_A250" + }, + { + "name": "FlashOptimizedA500", + "value": "FlashOptimized_A500", + "description": "FlashOptimized_A500" + }, + { + "name": "FlashOptimizedA700", + "value": "FlashOptimized_A700", + "description": "FlashOptimized_A700" + }, + { + "name": "FlashOptimizedA1000", + "value": "FlashOptimized_A1000", + "description": "FlashOptimized_A1000" + }, + { + "name": "FlashOptimizedA1500", + "value": "FlashOptimized_A1500", + "description": "FlashOptimized_A1500" + }, + { + "name": "FlashOptimizedA2000", + "value": "FlashOptimized_A2000", + "description": "FlashOptimized_A2000" + }, + { + "name": "FlashOptimizedA4500", + "value": "FlashOptimized_A4500", + "description": "FlashOptimized_A4500" + } + ] + } + }, + "SourceType": { + "type": "string", + "description": "Describes the source of the migration operation.", + "enum": [ + "AzureCacheForRedis" + ], + "x-ms-enum": { + "name": "SourceType", + "modelAsString": true, + "values": [ + { + "name": "AzureCacheForRedis", + "value": "AzureCacheForRedis", + "description": "Migration from Azure Cache for Redis to Redis Enterprise." + } + ] + } + }, + "TlsVersion": { + "type": "string", + "description": "The minimum TLS version for the cluster to support, e.g. '1.2'. Newer versions can be added in the future. Note that TLS 1.0 and TLS 1.1 are now completely obsolete -- you cannot use them. They are mentioned only for the sake of consistency with old API versions.", + "enum": [ + "1.0", + "1.1", + "1.2" + ], + "x-ms-enum": { + "name": "TlsVersion", + "modelAsString": true, + "values": [ + { + "name": "One0", + "value": "1.0", + "description": "1.0" + }, + { + "name": "One1", + "value": "1.1", + "description": "1.1" + }, + { + "name": "One2", + "value": "1.2", + "description": "1.2" + } + ] + } } - } + }, + "parameters": {} } From 3a5c9bf3e509124292c00f7e8c5b4038b0ef8415 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Tue, 16 Dec 2025 23:20:37 -0800 Subject: [PATCH 048/117] [.github] bump vitest from 3.2.4 to 4.0.15 (#39309) --- .github/package-lock.json | 811 +++--------------- .github/package.json | 4 +- .github/shared/package-lock.json | 811 +++--------------- .github/shared/package.json | 4 +- .../arm-incremental-typespec.test.js | 3 + package-lock.json | 514 ++++++++--- 6 files changed, 658 insertions(+), 1489 deletions(-) diff --git a/.github/package-lock.json b/.github/package-lock.json index 6a2f19c48f0b..5e61c528dc12 100644 --- a/.github/package-lock.json +++ b/.github/package-lock.json @@ -25,7 +25,7 @@ "@types/js-yaml": "^4.0.9", "@types/node": "^20.0.0", "@types/semver": "^7.7.1", - "@vitest/coverage-v8": "^3.2.4", + "@vitest/coverage-v8": "^4.0.15", "cross-env": "^10.1.0", "eslint": "^9.22.0", "fflate": "0.8.2", @@ -35,7 +35,7 @@ "semver": "^7.7.1", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", - "vitest": "^3.2.4" + "vitest": "^4.0.15" } }, "node_modules/@actions/core": { @@ -141,20 +141,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@apidevtools/json-schema-ref-parser": { "version": "15.1.3", "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-15.1.3.tgz", @@ -898,45 +884,6 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", @@ -1447,17 +1394,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.53.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.4.tgz", @@ -1766,6 +1702,13 @@ "win32" ] }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, "node_modules/@tsconfig/node20": { "version": "20.1.8", "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.8.tgz", @@ -1790,7 +1733,6 @@ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/ms": "*" } @@ -2106,32 +2048,30 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", - "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.15.tgz", + "integrity": "sha512-FUJ+1RkpTFW7rQITdgTi93qOCWJobWhBirEPCeXh2SW2wsTlFxy51apDz5gzG+ZEYt/THvWeNmhdAoS9DTwpCw==", "dev": true, "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.3.0", "@bcoe/v8-coverage": "^1.0.2", - "ast-v8-to-istanbul": "^0.3.3", - "debug": "^4.4.1", + "@vitest/utils": "4.0.15", + "ast-v8-to-istanbul": "^0.3.8", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-lib-source-maps": "^5.0.6", - "istanbul-reports": "^3.1.7", - "magic-string": "^0.30.17", - "magicast": "^0.3.5", - "std-env": "^3.9.0", - "test-exclude": "^7.0.1", - "tinyrainbow": "^2.0.0" + "istanbul-reports": "^3.2.0", + "magicast": "^0.5.1", + "obug": "^2.1.1", + "std-env": "^3.10.0", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "3.2.4", - "vitest": "3.2.4" + "@vitest/browser": "4.0.15", + "vitest": "4.0.15" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -2140,39 +2080,40 @@ } }, "node_modules/@vitest/expect": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", - "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.15.tgz", + "integrity": "sha512-Gfyva9/GxPAWXIWjyGDli9O+waHDC0Q0jaLdFP1qPAUUfo1FEXPXUfUkp3eZA0sSq340vPycSyOlYUeM15Ft1w==", "dev": true, "license": "MIT", "dependencies": { + "@standard-schema/spec": "^1.0.0", "@types/chai": "^5.2.2", - "@vitest/spy": "3.2.4", - "@vitest/utils": "3.2.4", - "chai": "^5.2.0", - "tinyrainbow": "^2.0.0" + "@vitest/spy": "4.0.15", + "@vitest/utils": "4.0.15", + "chai": "^6.2.1", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/mocker": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", - "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.15.tgz", + "integrity": "sha512-CZ28GLfOEIFkvCFngN8Sfx5h+Se0zN+h4B7yOsPVCcgtiO7t5jt9xQh2E1UkFep+eb9fjyMfuC5gBypwb07fvQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.2.4", + "@vitest/spy": "4.0.15", "estree-walker": "^3.0.3", - "magic-string": "^0.30.17" + "magic-string": "^0.30.21" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "msw": "^2.4.9", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + "vite": "^6.0.0 || ^7.0.0-0" }, "peerDependenciesMeta": { "msw": { @@ -2184,42 +2125,41 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", - "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.15.tgz", + "integrity": "sha512-SWdqR8vEv83WtZcrfLNqlqeQXlQLh2iilO1Wk1gv4eiHKjEzvgHb2OVc3mIPyhZE6F+CtfYjNlDJwP5MN6Km7A==", "dev": true, "license": "MIT", "dependencies": { - "tinyrainbow": "^2.0.0" + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/runner": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", - "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.15.tgz", + "integrity": "sha512-+A+yMY8dGixUhHmNdPUxOh0la6uVzun86vAbuMT3hIDxMrAOmn5ILBHm8ajrqHE0t8R9T1dGnde1A5DTnmi3qw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "3.2.4", - "pathe": "^2.0.3", - "strip-literal": "^3.0.0" + "@vitest/utils": "4.0.15", + "pathe": "^2.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/snapshot": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", - "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.15.tgz", + "integrity": "sha512-A7Ob8EdFZJIBjLjeO0DZF4lqR6U7Ydi5/5LIZ0xcI+23lYlsYJAfGn8PrIWTYdZQRNnSRlzhg0zyGu37mVdy5g==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.2.4", - "magic-string": "^0.30.17", + "@vitest/pretty-format": "4.0.15", + "magic-string": "^0.30.21", "pathe": "^2.0.3" }, "funding": { @@ -2227,28 +2167,24 @@ } }, "node_modules/@vitest/spy": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", - "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.15.tgz", + "integrity": "sha512-+EIjOJmnY6mIfdXtE/bnozKEvTC4Uczg19yeZ2vtCz5Yyb0QQ31QWVQ8hswJ3Ysx/K2EqaNsVanjr//2+P3FHw==", "dev": true, "license": "MIT", - "dependencies": { - "tinyspy": "^4.0.3" - }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/utils": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", - "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.15.tgz", + "integrity": "sha512-HXjPW2w5dxhTD0dLwtYHDnelK3j8sR8cWIaLxr22evTyY6q8pRCjZSmhRWVjBaOVXChQd6AwMzi9pucorXCPZA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.2.4", - "loupe": "^3.1.4", - "tinyrainbow": "^2.0.0" + "@vitest/pretty-format": "4.0.15", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" @@ -2295,19 +2231,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -2384,16 +2307,6 @@ "concat-map": "0.0.1" } }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -2405,18 +2318,11 @@ } }, "node_modules/chai": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", - "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.1.tgz", + "integrity": "sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==", "dev": true, "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, "engines": { "node": ">=18" } @@ -2438,16 +2344,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/check-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2525,16 +2421,6 @@ } } }, - "node_modules/deep-eql": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -2549,20 +2435,6 @@ "dev": true, "license": "ISC" }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, "node_modules/es-module-lexer": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", @@ -2914,23 +2786,6 @@ "dev": true, "license": "ISC" }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -2946,27 +2801,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -2980,32 +2814,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/globals": { "version": "16.5.0", "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", @@ -3083,16 +2891,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -3167,22 +2965,6 @@ "node": ">=8" } }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/js-tokens": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", @@ -3270,20 +3052,6 @@ "dev": true, "license": "MIT" }, - "node_modules/loupe": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", - "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", @@ -3295,15 +3063,15 @@ } }, "node_modules/magicast": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", - "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.1.tgz", + "integrity": "sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.4", - "@babel/types": "^7.25.4", - "source-map-js": "^1.2.0" + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "source-map-js": "^1.2.1" } }, "node_modules/make-dir": { @@ -3357,16 +3125,6 @@ "node": "*" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3399,6 +3157,17 @@ "dev": true, "license": "MIT" }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -3459,13 +3228,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -3499,23 +3261,6 @@ "node": ">=8" } }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -3523,16 +3268,6 @@ "dev": true, "license": "MIT" }, - "node_modules/pathval": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", - "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -3732,19 +3467,6 @@ "dev": true, "license": "ISC" }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/simple-git": { "version": "3.30.0", "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.30.0.tgz", @@ -3784,110 +3506,6 @@ "dev": true, "license": "MIT" }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -3901,19 +3519,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-literal": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", - "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-tokens": "^9.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -3927,47 +3532,6 @@ "node": ">=8" } }, - "node_modules/test-exclude": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", - "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^10.4.1", - "minimatch": "^9.0.4" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", @@ -3976,11 +3540,14 @@ "license": "MIT" }, "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/tinyglobby": { "version": "0.2.15", @@ -3999,30 +3566,10 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tinypool": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", - "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, "node_modules/tinyrainbow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinyspy": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", - "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", "dev": true, "license": "MIT", "engines": { @@ -4147,6 +3694,7 @@ "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -4216,76 +3764,52 @@ } } }, - "node_modules/vite-node": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", - "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.4.1", - "es-module-lexer": "^1.7.0", - "pathe": "^2.0.3", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, "node_modules/vitest": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", - "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.15.tgz", + "integrity": "sha512-n1RxDp8UJm6N0IbJLQo+yzLZ2sQCDyl1o0LeugbPWf8+8Fttp29GghsQBjYJVmWq3gBFfe9Hs1spR44vovn2wA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@types/chai": "^5.2.2", - "@vitest/expect": "3.2.4", - "@vitest/mocker": "3.2.4", - "@vitest/pretty-format": "^3.2.4", - "@vitest/runner": "3.2.4", - "@vitest/snapshot": "3.2.4", - "@vitest/spy": "3.2.4", - "@vitest/utils": "3.2.4", - "chai": "^5.2.0", - "debug": "^4.4.1", - "expect-type": "^1.2.1", - "magic-string": "^0.30.17", + "@vitest/expect": "4.0.15", + "@vitest/mocker": "4.0.15", + "@vitest/pretty-format": "4.0.15", + "@vitest/runner": "4.0.15", + "@vitest/snapshot": "4.0.15", + "@vitest/spy": "4.0.15", + "@vitest/utils": "4.0.15", + "es-module-lexer": "^1.7.0", + "expect-type": "^1.2.2", + "magic-string": "^0.30.21", + "obug": "^2.1.1", "pathe": "^2.0.3", - "picomatch": "^4.0.2", - "std-env": "^3.9.0", + "picomatch": "^4.0.3", + "std-env": "^3.10.0", "tinybench": "^2.9.0", - "tinyexec": "^0.3.2", - "tinyglobby": "^0.2.14", - "tinypool": "^1.1.1", - "tinyrainbow": "^2.0.0", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", - "vite-node": "3.2.4", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3", + "vite": "^6.0.0 || ^7.0.0", "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@types/debug": "^4.1.12", - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.2.4", - "@vitest/ui": "3.2.4", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.0.15", + "@vitest/browser-preview": "4.0.15", + "@vitest/browser-webdriverio": "4.0.15", + "@vitest/ui": "4.0.15", "happy-dom": "*", "jsdom": "*" }, @@ -4293,13 +3817,19 @@ "@edge-runtime/vm": { "optional": true }, - "@types/debug": { + "@opentelemetry/api": { "optional": true }, "@types/node": { "optional": true }, - "@vitest/browser": { + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { "optional": true }, "@vitest/ui": { @@ -4356,101 +3886,6 @@ "node": ">=0.10.0" } }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/.github/package.json b/.github/package.json index 1e2ac953c5c3..e40abec42d96 100644 --- a/.github/package.json +++ b/.github/package.json @@ -26,7 +26,7 @@ "@types/js-yaml": "^4.0.9", "@types/node": "^20.0.0", "@types/semver": "^7.7.1", - "@vitest/coverage-v8": "^3.2.4", + "@vitest/coverage-v8": "^4.0.15", "cross-env": "^10.1.0", "eslint": "^9.22.0", "fflate": "0.8.2", @@ -36,7 +36,7 @@ "semver": "^7.7.1", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "scripts": { "check": "npm run lint && npm run format:check && npm run test:ci", diff --git a/.github/shared/package-lock.json b/.github/shared/package-lock.json index 0961d6bd15f1..e2eab03dcdb2 100644 --- a/.github/shared/package-lock.json +++ b/.github/shared/package-lock.json @@ -23,7 +23,7 @@ "@types/js-yaml": "^4.0.9", "@types/node": "^20.0.0", "@types/semver": "^7.7.1", - "@vitest/coverage-v8": "^3.2.4", + "@vitest/coverage-v8": "^4.0.15", "cross-env": "^10.1.0", "eslint": "^9.22.0", "globals": "^16.0.0", @@ -32,21 +32,7 @@ "semver": "^7.7.1", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", - "vitest": "^3.2.4" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" + "vitest": "^4.0.15" } }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -782,45 +768,6 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", @@ -864,17 +811,6 @@ "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", "license": "MIT" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.53.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.4.tgz", @@ -1183,6 +1119,13 @@ "win32" ] }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, "node_modules/@tsconfig/node20": { "version": "20.1.8", "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.8.tgz", @@ -1207,7 +1150,6 @@ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/ms": "*" } @@ -1523,32 +1465,30 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", - "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.15.tgz", + "integrity": "sha512-FUJ+1RkpTFW7rQITdgTi93qOCWJobWhBirEPCeXh2SW2wsTlFxy51apDz5gzG+ZEYt/THvWeNmhdAoS9DTwpCw==", "dev": true, "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.3.0", "@bcoe/v8-coverage": "^1.0.2", - "ast-v8-to-istanbul": "^0.3.3", - "debug": "^4.4.1", + "@vitest/utils": "4.0.15", + "ast-v8-to-istanbul": "^0.3.8", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-lib-source-maps": "^5.0.6", - "istanbul-reports": "^3.1.7", - "magic-string": "^0.30.17", - "magicast": "^0.3.5", - "std-env": "^3.9.0", - "test-exclude": "^7.0.1", - "tinyrainbow": "^2.0.0" + "istanbul-reports": "^3.2.0", + "magicast": "^0.5.1", + "obug": "^2.1.1", + "std-env": "^3.10.0", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "3.2.4", - "vitest": "3.2.4" + "@vitest/browser": "4.0.15", + "vitest": "4.0.15" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -1557,39 +1497,40 @@ } }, "node_modules/@vitest/expect": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", - "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.15.tgz", + "integrity": "sha512-Gfyva9/GxPAWXIWjyGDli9O+waHDC0Q0jaLdFP1qPAUUfo1FEXPXUfUkp3eZA0sSq340vPycSyOlYUeM15Ft1w==", "dev": true, "license": "MIT", "dependencies": { + "@standard-schema/spec": "^1.0.0", "@types/chai": "^5.2.2", - "@vitest/spy": "3.2.4", - "@vitest/utils": "3.2.4", - "chai": "^5.2.0", - "tinyrainbow": "^2.0.0" + "@vitest/spy": "4.0.15", + "@vitest/utils": "4.0.15", + "chai": "^6.2.1", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/mocker": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", - "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.15.tgz", + "integrity": "sha512-CZ28GLfOEIFkvCFngN8Sfx5h+Se0zN+h4B7yOsPVCcgtiO7t5jt9xQh2E1UkFep+eb9fjyMfuC5gBypwb07fvQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.2.4", + "@vitest/spy": "4.0.15", "estree-walker": "^3.0.3", - "magic-string": "^0.30.17" + "magic-string": "^0.30.21" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "msw": "^2.4.9", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + "vite": "^6.0.0 || ^7.0.0-0" }, "peerDependenciesMeta": { "msw": { @@ -1601,42 +1542,41 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", - "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.15.tgz", + "integrity": "sha512-SWdqR8vEv83WtZcrfLNqlqeQXlQLh2iilO1Wk1gv4eiHKjEzvgHb2OVc3mIPyhZE6F+CtfYjNlDJwP5MN6Km7A==", "dev": true, "license": "MIT", "dependencies": { - "tinyrainbow": "^2.0.0" + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/runner": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", - "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.15.tgz", + "integrity": "sha512-+A+yMY8dGixUhHmNdPUxOh0la6uVzun86vAbuMT3hIDxMrAOmn5ILBHm8ajrqHE0t8R9T1dGnde1A5DTnmi3qw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "3.2.4", - "pathe": "^2.0.3", - "strip-literal": "^3.0.0" + "@vitest/utils": "4.0.15", + "pathe": "^2.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/snapshot": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", - "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.15.tgz", + "integrity": "sha512-A7Ob8EdFZJIBjLjeO0DZF4lqR6U7Ydi5/5LIZ0xcI+23lYlsYJAfGn8PrIWTYdZQRNnSRlzhg0zyGu37mVdy5g==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.2.4", - "magic-string": "^0.30.17", + "@vitest/pretty-format": "4.0.15", + "magic-string": "^0.30.21", "pathe": "^2.0.3" }, "funding": { @@ -1644,28 +1584,24 @@ } }, "node_modules/@vitest/spy": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", - "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.15.tgz", + "integrity": "sha512-+EIjOJmnY6mIfdXtE/bnozKEvTC4Uczg19yeZ2vtCz5Yyb0QQ31QWVQ8hswJ3Ysx/K2EqaNsVanjr//2+P3FHw==", "dev": true, "license": "MIT", - "dependencies": { - "tinyspy": "^4.0.3" - }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/utils": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", - "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.15.tgz", + "integrity": "sha512-HXjPW2w5dxhTD0dLwtYHDnelK3j8sR8cWIaLxr22evTyY6q8pRCjZSmhRWVjBaOVXChQd6AwMzi9pucorXCPZA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.2.4", - "loupe": "^3.1.4", - "tinyrainbow": "^2.0.0" + "@vitest/pretty-format": "4.0.15", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" @@ -1712,19 +1648,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1787,16 +1710,6 @@ "concat-map": "0.0.1" } }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1808,18 +1721,11 @@ } }, "node_modules/chai": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", - "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.1.tgz", + "integrity": "sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==", "dev": true, "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, "engines": { "node": ">=18" } @@ -1841,16 +1747,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/check-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1928,16 +1824,6 @@ } } }, - "node_modules/deep-eql": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -1945,20 +1831,6 @@ "dev": true, "license": "MIT" }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, "node_modules/es-module-lexer": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", @@ -2286,23 +2158,6 @@ "dev": true, "license": "ISC" }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -2318,27 +2173,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -2352,32 +2186,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/globals": { "version": "16.5.0", "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", @@ -2455,16 +2263,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -2539,22 +2337,6 @@ "node": ">=8" } }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/js-tokens": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", @@ -2642,20 +2424,6 @@ "dev": true, "license": "MIT" }, - "node_modules/loupe": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", - "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", @@ -2667,15 +2435,15 @@ } }, "node_modules/magicast": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", - "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.1.tgz", + "integrity": "sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.4", - "@babel/types": "^7.25.4", - "source-map-js": "^1.2.0" + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "source-map-js": "^1.2.1" } }, "node_modules/make-dir": { @@ -2719,16 +2487,6 @@ "node": "*" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -2761,6 +2519,17 @@ "dev": true, "license": "MIT" }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -2811,13 +2580,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -2851,23 +2613,6 @@ "node": ">=8" } }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -2875,16 +2620,6 @@ "dev": true, "license": "MIT" }, - "node_modules/pathval": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", - "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -3084,19 +2819,6 @@ "dev": true, "license": "ISC" }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/simple-git": { "version": "3.30.0", "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.30.0.tgz", @@ -3136,110 +2858,6 @@ "dev": true, "license": "MIT" }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -3253,19 +2871,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-literal": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", - "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-tokens": "^9.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -3279,47 +2884,6 @@ "node": ">=8" } }, - "node_modules/test-exclude": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", - "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^10.4.1", - "minimatch": "^9.0.4" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", @@ -3328,11 +2892,14 @@ "license": "MIT" }, "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/tinyglobby": { "version": "0.2.15", @@ -3351,30 +2918,10 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tinypool": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", - "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, "node_modules/tinyrainbow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinyspy": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", - "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", "dev": true, "license": "MIT", "engines": { @@ -3469,6 +3016,7 @@ "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -3538,76 +3086,52 @@ } } }, - "node_modules/vite-node": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", - "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.4.1", - "es-module-lexer": "^1.7.0", - "pathe": "^2.0.3", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, "node_modules/vitest": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", - "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.15.tgz", + "integrity": "sha512-n1RxDp8UJm6N0IbJLQo+yzLZ2sQCDyl1o0LeugbPWf8+8Fttp29GghsQBjYJVmWq3gBFfe9Hs1spR44vovn2wA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@types/chai": "^5.2.2", - "@vitest/expect": "3.2.4", - "@vitest/mocker": "3.2.4", - "@vitest/pretty-format": "^3.2.4", - "@vitest/runner": "3.2.4", - "@vitest/snapshot": "3.2.4", - "@vitest/spy": "3.2.4", - "@vitest/utils": "3.2.4", - "chai": "^5.2.0", - "debug": "^4.4.1", - "expect-type": "^1.2.1", - "magic-string": "^0.30.17", + "@vitest/expect": "4.0.15", + "@vitest/mocker": "4.0.15", + "@vitest/pretty-format": "4.0.15", + "@vitest/runner": "4.0.15", + "@vitest/snapshot": "4.0.15", + "@vitest/spy": "4.0.15", + "@vitest/utils": "4.0.15", + "es-module-lexer": "^1.7.0", + "expect-type": "^1.2.2", + "magic-string": "^0.30.21", + "obug": "^2.1.1", "pathe": "^2.0.3", - "picomatch": "^4.0.2", - "std-env": "^3.9.0", + "picomatch": "^4.0.3", + "std-env": "^3.10.0", "tinybench": "^2.9.0", - "tinyexec": "^0.3.2", - "tinyglobby": "^0.2.14", - "tinypool": "^1.1.1", - "tinyrainbow": "^2.0.0", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", - "vite-node": "3.2.4", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3", + "vite": "^6.0.0 || ^7.0.0", "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@types/debug": "^4.1.12", - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.2.4", - "@vitest/ui": "3.2.4", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.0.15", + "@vitest/browser-preview": "4.0.15", + "@vitest/browser-webdriverio": "4.0.15", + "@vitest/ui": "4.0.15", "happy-dom": "*", "jsdom": "*" }, @@ -3615,13 +3139,19 @@ "@edge-runtime/vm": { "optional": true }, - "@types/debug": { + "@opentelemetry/api": { "optional": true }, "@types/node": { "optional": true }, - "@vitest/browser": { + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { "optional": true }, "@vitest/ui": { @@ -3678,101 +3208,6 @@ "node": ">=0.10.0" } }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/.github/shared/package.json b/.github/shared/package.json index 0adb0ccf7c20..4543a28842bc 100644 --- a/.github/shared/package.json +++ b/.github/shared/package.json @@ -49,7 +49,7 @@ "@types/js-yaml": "^4.0.9", "@types/node": "^20.0.0", "@types/semver": "^7.7.1", - "@vitest/coverage-v8": "^3.2.4", + "@vitest/coverage-v8": "^4.0.15", "cross-env": "^10.1.0", "eslint": "^9.22.0", "globals": "^16.0.0", @@ -58,7 +58,7 @@ "semver": "^7.7.1", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "scripts": { "check": "npm run lint && npm run format:check && npm run test:ci", diff --git a/.github/workflows/test/arm-auto-signoff/arm-incremental-typespec.test.js b/.github/workflows/test/arm-auto-signoff/arm-incremental-typespec.test.js index 0752abd86cd1..327d4b66955d 100644 --- a/.github/workflows/test/arm-auto-signoff/arm-incremental-typespec.test.js +++ b/.github/workflows/test/arm-auto-signoff/arm-incremental-typespec.test.js @@ -2,7 +2,10 @@ import { relative, resolve } from "path"; import { afterEach, describe, expect, it, vi } from "vitest"; import { repoRoot } from "../../../shared/test/repo.js"; +/** @type {import("vitest").MockedFunction} */ const mockRaw = vi.hoisted(() => vi.fn().mockResolvedValue("")); + +/** @type {import("vitest").MockedFunction} */ const mockShow = vi.hoisted(() => vi.fn().mockResolvedValue("")); vi.mock("simple-git", () => ({ diff --git a/package-lock.json b/package-lock.json index ae5f474eb689..f1c231c553c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -65,7 +65,7 @@ "@types/js-yaml": "^4.0.9", "@types/node": "^20.0.0", "@types/semver": "^7.7.1", - "@vitest/coverage-v8": "^3.2.4", + "@vitest/coverage-v8": "^4.0.15", "cross-env": "^10.1.0", "eslint": "^9.22.0", "globals": "^16.0.0", @@ -74,7 +74,7 @@ "semver": "^7.7.1", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", - "vitest": "^3.2.4" + "vitest": "^4.0.15" } }, ".github/shared/node_modules/marked": { @@ -154,6 +154,128 @@ "undici-types": "~5.26.4" } }, + "eng/tools/node_modules/@vitest/coverage-v8": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", + "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } + } + }, + "eng/tools/node_modules/@vitest/expect": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "eng/tools/node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "eng/tools/node_modules/@vitest/runner": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", + "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "eng/tools/node_modules/@vitest/snapshot": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", + "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "eng/tools/node_modules/@vitest/spy": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "eng/tools/node_modules/@vitest/utils": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "eng/tools/node_modules/ajv": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", @@ -184,6 +306,23 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, + "eng/tools/node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, "eng/tools/node_modules/cliui": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", @@ -206,6 +345,18 @@ "dev": true, "license": "MIT" }, + "eng/tools/node_modules/magicast": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", + "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, "eng/tools/node_modules/marked": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/marked/-/marked-17.0.1.tgz", @@ -235,6 +386,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "eng/tools/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "eng/tools/node_modules/strip-ansi": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", @@ -251,6 +415,23 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "eng/tools/node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "eng/tools/node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "eng/tools/node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -258,6 +439,107 @@ "dev": true, "license": "MIT" }, + "eng/tools/node_modules/vitest": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "eng/tools/node_modules/vitest/node_modules/@vitest/mocker": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, "eng/tools/node_modules/yargs": { "version": "18.0.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", @@ -4250,6 +4532,13 @@ "text-hex": "1.0.x" } }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, "node_modules/@stoplight/json": { "version": "3.21.7", "resolved": "https://registry.npmjs.org/@stoplight/json/-/json-3.21.7.tgz", @@ -5823,32 +6112,30 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", - "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.15.tgz", + "integrity": "sha512-FUJ+1RkpTFW7rQITdgTi93qOCWJobWhBirEPCeXh2SW2wsTlFxy51apDz5gzG+ZEYt/THvWeNmhdAoS9DTwpCw==", "dev": true, "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.3.0", "@bcoe/v8-coverage": "^1.0.2", - "ast-v8-to-istanbul": "^0.3.3", - "debug": "^4.4.1", + "@vitest/utils": "4.0.15", + "ast-v8-to-istanbul": "^0.3.8", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-lib-source-maps": "^5.0.6", - "istanbul-reports": "^3.1.7", - "magic-string": "^0.30.17", - "magicast": "^0.3.5", - "std-env": "^3.9.0", - "test-exclude": "^7.0.1", - "tinyrainbow": "^2.0.0" + "istanbul-reports": "^3.2.0", + "magicast": "^0.5.1", + "obug": "^2.1.1", + "std-env": "^3.10.0", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "3.2.4", - "vitest": "3.2.4" + "@vitest/browser": "4.0.15", + "vitest": "4.0.15" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -5857,39 +6144,40 @@ } }, "node_modules/@vitest/expect": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", - "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.15.tgz", + "integrity": "sha512-Gfyva9/GxPAWXIWjyGDli9O+waHDC0Q0jaLdFP1qPAUUfo1FEXPXUfUkp3eZA0sSq340vPycSyOlYUeM15Ft1w==", "dev": true, "license": "MIT", "dependencies": { + "@standard-schema/spec": "^1.0.0", "@types/chai": "^5.2.2", - "@vitest/spy": "3.2.4", - "@vitest/utils": "3.2.4", - "chai": "^5.2.0", - "tinyrainbow": "^2.0.0" + "@vitest/spy": "4.0.15", + "@vitest/utils": "4.0.15", + "chai": "^6.2.1", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/mocker": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", - "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.15.tgz", + "integrity": "sha512-CZ28GLfOEIFkvCFngN8Sfx5h+Se0zN+h4B7yOsPVCcgtiO7t5jt9xQh2E1UkFep+eb9fjyMfuC5gBypwb07fvQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.2.4", + "@vitest/spy": "4.0.15", "estree-walker": "^3.0.3", - "magic-string": "^0.30.17" + "magic-string": "^0.30.21" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "msw": "^2.4.9", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + "vite": "^6.0.0 || ^7.0.0-0" }, "peerDependenciesMeta": { "msw": { @@ -5901,42 +6189,41 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", - "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.15.tgz", + "integrity": "sha512-SWdqR8vEv83WtZcrfLNqlqeQXlQLh2iilO1Wk1gv4eiHKjEzvgHb2OVc3mIPyhZE6F+CtfYjNlDJwP5MN6Km7A==", "dev": true, "license": "MIT", "dependencies": { - "tinyrainbow": "^2.0.0" + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/runner": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", - "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.15.tgz", + "integrity": "sha512-+A+yMY8dGixUhHmNdPUxOh0la6uVzun86vAbuMT3hIDxMrAOmn5ILBHm8ajrqHE0t8R9T1dGnde1A5DTnmi3qw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "3.2.4", - "pathe": "^2.0.3", - "strip-literal": "^3.0.0" + "@vitest/utils": "4.0.15", + "pathe": "^2.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/snapshot": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", - "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.15.tgz", + "integrity": "sha512-A7Ob8EdFZJIBjLjeO0DZF4lqR6U7Ydi5/5LIZ0xcI+23lYlsYJAfGn8PrIWTYdZQRNnSRlzhg0zyGu37mVdy5g==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.2.4", - "magic-string": "^0.30.17", + "@vitest/pretty-format": "4.0.15", + "magic-string": "^0.30.21", "pathe": "^2.0.3" }, "funding": { @@ -5944,28 +6231,24 @@ } }, "node_modules/@vitest/spy": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", - "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.15.tgz", + "integrity": "sha512-+EIjOJmnY6mIfdXtE/bnozKEvTC4Uczg19yeZ2vtCz5Yyb0QQ31QWVQ8hswJ3Ysx/K2EqaNsVanjr//2+P3FHw==", "dev": true, "license": "MIT", - "dependencies": { - "tinyspy": "^4.0.3" - }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/utils": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", - "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.15.tgz", + "integrity": "sha512-HXjPW2w5dxhTD0dLwtYHDnelK3j8sR8cWIaLxr22evTyY6q8pRCjZSmhRWVjBaOVXChQd6AwMzi9pucorXCPZA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.2.4", - "loupe": "^3.1.4", - "tinyrainbow": "^2.0.0" + "@vitest/pretty-format": "4.0.15", + "tinyrainbow": "^3.0.3" }, "funding": { "url": "https://opencollective.com/vitest" @@ -6393,18 +6676,11 @@ } }, "node_modules/chai": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", - "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.1.tgz", + "integrity": "sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==", "dev": true, "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, "engines": { "node": ">=18" } @@ -9499,15 +9775,15 @@ } }, "node_modules/magicast": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", - "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.1.tgz", + "integrity": "sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.4", - "@babel/types": "^7.25.4", - "source-map-js": "^1.2.0" + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "source-map-js": "^1.2.1" } }, "node_modules/make-dir": { @@ -10167,6 +10443,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -11673,11 +11960,14 @@ "license": "MIT" }, "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/tinyglobby": { "version": "0.2.15", @@ -11739,9 +12029,9 @@ } }, "node_modules/tinyrainbow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", "dev": true, "license": "MIT", "engines": { @@ -12113,6 +12403,7 @@ "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -12238,52 +12529,51 @@ } }, "node_modules/vitest": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", - "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.15.tgz", + "integrity": "sha512-n1RxDp8UJm6N0IbJLQo+yzLZ2sQCDyl1o0LeugbPWf8+8Fttp29GghsQBjYJVmWq3gBFfe9Hs1spR44vovn2wA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@types/chai": "^5.2.2", - "@vitest/expect": "3.2.4", - "@vitest/mocker": "3.2.4", - "@vitest/pretty-format": "^3.2.4", - "@vitest/runner": "3.2.4", - "@vitest/snapshot": "3.2.4", - "@vitest/spy": "3.2.4", - "@vitest/utils": "3.2.4", - "chai": "^5.2.0", - "debug": "^4.4.1", - "expect-type": "^1.2.1", - "magic-string": "^0.30.17", + "@vitest/expect": "4.0.15", + "@vitest/mocker": "4.0.15", + "@vitest/pretty-format": "4.0.15", + "@vitest/runner": "4.0.15", + "@vitest/snapshot": "4.0.15", + "@vitest/spy": "4.0.15", + "@vitest/utils": "4.0.15", + "es-module-lexer": "^1.7.0", + "expect-type": "^1.2.2", + "magic-string": "^0.30.21", + "obug": "^2.1.1", "pathe": "^2.0.3", - "picomatch": "^4.0.2", - "std-env": "^3.9.0", + "picomatch": "^4.0.3", + "std-env": "^3.10.0", "tinybench": "^2.9.0", - "tinyexec": "^0.3.2", - "tinyglobby": "^0.2.14", - "tinypool": "^1.1.1", - "tinyrainbow": "^2.0.0", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", - "vite-node": "3.2.4", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3", + "vite": "^6.0.0 || ^7.0.0", "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@types/debug": "^4.1.12", - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.2.4", - "@vitest/ui": "3.2.4", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.0.15", + "@vitest/browser-preview": "4.0.15", + "@vitest/browser-webdriverio": "4.0.15", + "@vitest/ui": "4.0.15", "happy-dom": "*", "jsdom": "*" }, @@ -12291,13 +12581,19 @@ "@edge-runtime/vm": { "optional": true }, - "@types/debug": { + "@opentelemetry/api": { "optional": true }, "@types/node": { "optional": true }, - "@vitest/browser": { + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { "optional": true }, "@vitest/ui": { From def6e8dbc27a8b3e0f75dc691cbe18e3e24ae31e Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Tue, 16 Dec 2025 23:30:20 -0800 Subject: [PATCH 049/117] [eng/tools] Bump @types/node from 18 to 20 (#39314) --- eng/tools/lint-diff/package.json | 2 +- .../package.json | 2 +- package-lock.json | 31 ++----------------- 3 files changed, 4 insertions(+), 31 deletions(-) diff --git a/eng/tools/lint-diff/package.json b/eng/tools/lint-diff/package.json index bfa1ddc6ce70..f66130c00e7e 100644 --- a/eng/tools/lint-diff/package.json +++ b/eng/tools/lint-diff/package.json @@ -34,7 +34,7 @@ "devDependencies": { "@eslint/js": "^9.22.0", "@types/deep-eql": "^4.0.2", - "@types/node": "^18.19.31", + "@types/node": "^20.0.0", "@vitest/coverage-v8": "^3.0.2", "cross-env": "^10.1.0", "eslint": "^9.22.0", diff --git a/eng/tools/typespec-migration-validation/package.json b/eng/tools/typespec-migration-validation/package.json index eb624a3fc19f..ee55345c3e7b 100644 --- a/eng/tools/typespec-migration-validation/package.json +++ b/eng/tools/typespec-migration-validation/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@types/json-diff": "^1.0.3", - "@types/node": "^18.19.86", + "@types/node": "^20.0.0", "@types/yargs": "^17.0.33", "@typescript-eslint/eslint-plugin": "^8.45.0", "@typescript-eslint/parser": "^8.45.0", diff --git a/package-lock.json b/package-lock.json index f1c231c553c4..aca1515825f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -128,7 +128,7 @@ "devDependencies": { "@eslint/js": "^9.22.0", "@types/deep-eql": "^4.0.2", - "@types/node": "^18.19.31", + "@types/node": "^20.0.0", "@vitest/coverage-v8": "^3.0.2", "cross-env": "^10.1.0", "eslint": "^9.22.0", @@ -144,16 +144,6 @@ "node": ">= 20.0.0" } }, - "eng/tools/lint-diff/node_modules/@types/node": { - "version": "18.19.130", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.130.tgz", - "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, "eng/tools/node_modules/@vitest/coverage-v8": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", @@ -432,13 +422,6 @@ "node": ">=14.0.0" } }, - "eng/tools/node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true, - "license": "MIT" - }, "eng/tools/node_modules/vitest": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", @@ -754,7 +737,7 @@ }, "devDependencies": { "@types/json-diff": "^1.0.3", - "@types/node": "^18.19.86", + "@types/node": "^20.0.0", "@types/yargs": "^17.0.33", "@typescript-eslint/eslint-plugin": "^8.45.0", "@typescript-eslint/parser": "^8.45.0", @@ -766,16 +749,6 @@ "node": ">=20.0.0" } }, - "eng/tools/typespec-migration-validation/node_modules/@types/node": { - "version": "18.19.130", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.130.tgz", - "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~5.26.4" - } - }, "eng/tools/typespec-requirement": { "name": "@azure-tools/typespec-requirement", "dev": true, From d6dc2551bd1b1713a7f94b41ee950657f77ee611 Mon Sep 17 00:00:00 2001 From: Arthur Ma Date: Wed, 17 Dec 2025 17:29:35 +0800 Subject: [PATCH 050/117] Update StorageSync TypeSpec definitions for new .NET MPG support (#39257) --- .../StorageSync/CloudEndpoint.tsp | 11 +- .../StorageSync/PrivateEndpointConnection.tsp | 4 +- .../StorageSync/RegisteredServer.tsp | 10 +- .../StorageSync/ServerEndpoint.tsp | 9 +- .../StorageSync/StorageSyncService.tsp | 11 +- .../StorageSync/SyncGroup.tsp | 6 +- .../StorageSync/client.tsp | 354 ++++++++++++++++++ .../stable/2022-09-01/storagesync.json | 24 +- .../StorageSync/tspconfig.yaml | 4 +- 9 files changed, 391 insertions(+), 42 deletions(-) create mode 100644 specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/client.tsp diff --git a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/CloudEndpoint.tsp b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/CloudEndpoint.tsp index de649a1cbf37..e21620964ba2 100644 --- a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/CloudEndpoint.tsp +++ b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/CloudEndpoint.tsp @@ -50,11 +50,8 @@ interface CloudEndpoints { #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @put @Azure.Core.useFinalStateVia("location") - create is ArmCreateOperation< - ResourceInstanceParameters< - CloudEndpoint, - DefaultBaseParameters - >, + create is Legacy.CreateOrReplaceAsync< + CloudEndpoint, CloudEndpointCreateParameters, Response = (ArmResourceUpdatedResponse & { @header("x-ms-correlation-request-id") @@ -74,7 +71,7 @@ interface CloudEndpoints { @doc("Request id") requestId?: string; }), - ErrorResponse = StorageSyncError + Error = StorageSyncError >; /** @@ -92,7 +89,7 @@ interface CloudEndpoints { @header("x-ms-request-id") @doc("request id.") requestId?: string; - }) | (ArmDeleteAcceptedLroResponse & + }) | (ArmDeleteAcceptedLroResponse & Azure.Core.Foundations.RetryAfterHeader> & { @header("x-ms-correlation-request-id") @doc("correlation request id") diff --git a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/PrivateEndpointConnection.tsp b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/PrivateEndpointConnection.tsp index a5a2059601c8..f8d9ba1dc2bd 100644 --- a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/PrivateEndpointConnection.tsp +++ b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/PrivateEndpointConnection.tsp @@ -14,7 +14,9 @@ namespace Microsoft.StorageSync; /** * The private endpoint connection resource. */ +@parentResource(StorageSyncService) model PrivateEndpointConnection is PrivateEndpointConnectionResource; + alias PrivateEndpointOperations = Azure.ResourceManager.PrivateEndpoints; @armResourceOperations @@ -54,7 +56,7 @@ interface PrivateEndpointConnections { @Azure.Core.useFinalStateVia("location") delete is PrivateEndpointOperations.DeleteAsync< StorageSyncService, - Response = ArmDeletedResponse | (ArmDeleteAcceptedLroResponse & + Response = ArmDeletedResponse | (ArmDeleteAcceptedLroResponse & Azure.Core.Foundations.RetryAfterHeader> & { @header("x-ms-correlation-request-id") @doc("correlation request id") diff --git a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/RegisteredServer.tsp b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/RegisteredServer.tsp index f997ac64b84a..ea9ea99f957a 100644 --- a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/RegisteredServer.tsp +++ b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/RegisteredServer.tsp @@ -21,6 +21,7 @@ model RegisteredServer Resource = RegisteredServer, KeyName = "serverId", SegmentName = "registeredServers", + Type = Azure.Core.uuid, NamePattern = "" >; } @@ -50,11 +51,8 @@ interface RegisteredServers { #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @put @Azure.Core.useFinalStateVia("location") - create is ArmCreateOperation< - ResourceInstanceParameters< - RegisteredServer, - DefaultBaseParameters - >, + create is Legacy.CreateOrReplaceAsync< + RegisteredServer, RegisteredServerCreateParameters, Response = (ArmResourceUpdatedResponse & { @header("x-ms-correlation-request-id") @@ -74,7 +72,7 @@ interface RegisteredServers { @doc("request id.") requestId?: string; }), - ErrorResponse = StorageSyncError + Error = StorageSyncError >; /** diff --git a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/ServerEndpoint.tsp b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/ServerEndpoint.tsp index 029d841e3162..efde618dd950 100644 --- a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/ServerEndpoint.tsp +++ b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/ServerEndpoint.tsp @@ -50,11 +50,8 @@ interface ServerEndpoints { #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @put @Azure.Core.useFinalStateVia("location") - create is ArmCreateOperation< - ResourceInstanceParameters< - ServerEndpoint, - DefaultBaseParameters - >, + create is Legacy.CreateOrReplaceAsync< + ServerEndpoint, ServerEndpointCreateParameters, Response = (ArmResourceUpdatedResponse & { @header("x-ms-correlation-request-id") @@ -74,7 +71,7 @@ interface ServerEndpoints { @doc("request id.") requestId?: string; }), - ErrorResponse = StorageSyncError + Error = StorageSyncError >; /** diff --git a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/StorageSyncService.tsp b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/StorageSyncService.tsp index e2d3ba697fb9..b42b1a65ba50 100644 --- a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/StorageSyncService.tsp +++ b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/StorageSyncService.tsp @@ -49,11 +49,8 @@ interface StorageSyncServices { #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @put @Azure.Core.useFinalStateVia("location") - create is ArmCreateOperation< - ResourceInstanceParameters< - StorageSyncService, - DefaultBaseParameters - >, + create is Legacy.CreateOrReplaceAsync< + StorageSyncService, StorageSyncServiceCreateParameters, Response = ArmResourceUpdatedResponse | (ArmAcceptedLroResponse & Azure.Core.Foundations.RetryAfterHeader> & { @@ -65,7 +62,7 @@ interface StorageSyncServices { @doc("Request id") requestId?: string; }), - ErrorResponse = StorageSyncError + Error = StorageSyncError >; /** @@ -113,7 +110,7 @@ interface StorageSyncServices { @header("x-ms-request-id") @doc("request id.") requestId?: string; - }) | (ArmDeleteAcceptedLroResponse & + }) | (ArmDeleteAcceptedLroResponse & Azure.Core.Foundations.RetryAfterHeader> & { @header("x-ms-correlation-request-id") @doc("correlation request id") diff --git a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/SyncGroup.tsp b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/SyncGroup.tsp index c162da56daf9..08a8825e5aec 100644 --- a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/SyncGroup.tsp +++ b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/SyncGroup.tsp @@ -48,8 +48,8 @@ interface SyncGroups { */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @put - create is ArmCreateOperation< - ResourceInstanceParameters>, + create is Legacy.CreateOrReplaceAsync< + SyncGroup, SyncGroupCreateParameters, Response = ArmResourceUpdatedResponse & { @header("x-ms-correlation-request-id") @@ -60,7 +60,7 @@ interface SyncGroups { @doc("request id.") requestId?: string; }, - ErrorResponse = StorageSyncError + Error = StorageSyncError >; /** diff --git a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/client.tsp b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/client.tsp new file mode 100644 index 000000000000..87cbe58ae887 --- /dev/null +++ b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/client.tsp @@ -0,0 +1,354 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.Core; +using Azure.ClientGenerator.Core; +using Microsoft.StorageSync; + +@@scope(locationOperationStatusGet, "!csharp"); +@@scope(OperationStatusOperationGroup.get, "!csharp"); +@@scope(Operations.list, "!csharp"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Azure.ClientGenerator.Core.Legacy.flattenProperty(Azure.ResourceManager.CommonTypes.PrivateLinkResource.properties, + "csharp" +); + +@@clientName(RestoreFileSpec.isdir, "IsDirectory", "csharp"); +@@clientName(CloudEndpointProperties.backupEnabled, + "IsBackupEnabled", + "csharp" +); +@@alternateType(CloudEndpointProperties.storageAccountResourceId, + armResourceIdentifier, + "csharp" +); +@@alternateType(CloudEndpointProperties.storageAccountTenantId, uuid, "csharp"); +@@clientName(PostBackupResponse, "CloudEndpointPostBackupResult", "csharp"); +@@clientName(BackupRequest, "CloudEndpointBackupContent", "csharp"); +@@clientName(SyncGroup, "StorageSyncGroup", "csharp"); +@@alternateType(SyncGroupProperties.uniqueId, uuid, "csharp"); +@@clientName(CheckNameAvailabilityParameters, + "StorageSyncNameAvailabilityContent", + "csharp" +); +@@clientName(CheckNameAvailabilityParameters.type, "ResourceType", "csharp"); +@@clientName(CheckNameAvailabilityResult, + "StorageSyncNameAvailabilityResult", + "csharp" +); +@@clientName(CheckNameAvailabilityResult.nameAvailable, + "IsNameAvailable", + "csharp" +); +@@clientName(NameAvailabilityReason, + "StorageSyncNameUnavailableReason", + "csharp" +); +@@clientName(Type, "StorageSyncResourceType", "csharp"); +@@clientName(CloudEndpointChangeEnumerationActivity.totalSizeBytes, + "TotalSizeInBytes", + "csharp" +); +@@clientName(CloudEndpointChangeEnumerationStatus.lastUpdatedTimestamp, + "LastUpdatedOn", + "csharp" +); +@@clientName(CloudEndpointChangeEnumerationActivity.startedTimestamp, + "StartedOn", + "csharp" +); +@@clientName(CloudEndpointChangeEnumerationActivity.lastUpdatedTimestamp, + "LastUpdatedOn", + "csharp" +); +@@clientName(ServerEndpointBackgroundDataDownloadActivity.startedTimestamp, + "StartedOn", + "csharp" +); +@@clientName(CloudEndpointLastChangeEnumerationStatus.namespaceSizeBytes, + "NamespaceSizeInBytes", + "csharp" +); +@@clientName(CloudEndpointLastChangeEnumerationStatus.startedTimestamp, + "StartedOn", + "csharp" +); +@@clientName(CloudEndpointLastChangeEnumerationStatus.completedTimestamp, + "CompletedOn", + "csharp" +); +@@clientName(CloudTieringSpaceSavings.volumeSizeBytes, + "VolumeSizeInBytes", + "csharp" +); +@@clientName(CloudTieringSpaceSavings.cachedSizeBytes, + "CachedSizeInBytes", + "csharp" +); +@@clientName(CloudTieringSpaceSavings.spaceSavingsBytes, + "SpaceSavingsInBytes", + "csharp" +); +@@clientName(CloudTieringSpaceSavings.totalSizeCloudBytes, + "CloudTotalSizeInBytes", + "csharp" +); +@@clientName(ServerEndpointCloudTieringStatus.healthLastUpdatedTimestamp, + "HealthLastUpdatedOn", + "csharp" +); +@@clientName(ServerAuthType, "StorageSyncServerAuthType", "csharp"); +@@clientName(ServerProvisioningStatus, + "StorageSyncServerProvisioningStatus", + "csharp" +); +@@clientName(ServerEndpointProvisioningStatus, + "StorageSyncServerEndpointProvisioningStatus", + "csharp" +); +@@clientName(RegisteredServerProperties.agentVersionExpirationDate, + "AgentVersionExpireOn", + "csharp" +); +@@clientName(WorkflowProperties.createdTimestamp, "CreatedOn", "csharp"); +@@clientName(WorkflowProperties.lastStatusTimestamp, + "LastStatusUpdatedOn", + "csharp" +); +@@clientName(ServerEndpointCloudTieringStatus.healthLastUpdatedTimestamp, + "HealthLastUpdatedOn", + "csharp" +); +@@clientName(RegisteredServerProperties.identity, "UseIdentity", "csharp"); +@@alternateType(RegisteredServerProperties.applicationId, uuid, "csharp"); +@@alternateType(RegisteredServerProperties.latestApplicationId, uuid, "csharp"); +@@clientName(RegisteredServerCreateParametersProperties.identity, + "UseIdentity", + "csharp" +); +@@alternateType(RegisteredServerCreateParametersProperties.applicationId, + uuid, + "csharp" +); +@@clientName(RegisteredServerUpdateProperties.identity, + "UseIdentity", + "csharp" +); +@@alternateType(RegisteredServerUpdateProperties.applicationId, uuid, "csharp"); +@@clientName(PrivateEndpointConnection, + "StorageSyncPrivateEndpointConnection", + "csharp" +); +@@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties.privateLinkServiceConnectionState, + "ConnectionState", + "csharp" +); + +@@clientName(Workflow, "StorageSyncWorkflow", "csharp"); +@@alternateType(WorkflowProperties.lastOperationId, uuid, "csharp"); +@@clientName(WorkflowStatus, "StorageSyncWorkflowStatus", "csharp"); +@@clientName(FeatureStatus, "StorageSyncFeatureStatus", "csharp"); +@@clientName(OperationDirection, "StorageSyncOperationDirection", "csharp"); +@@clientName(RegisteredServer, "StorageSyncRegisteredServer", "csharp"); +@@clientName(RegisteredServerProperties.lastHeartBeat, + "LastHeartbeat", + "csharp" +); +@@alternateType(RegisteredServerProperties.clusterId, uuid, "csharp"); +@@alternateType(RegisteredServerProperties.serverId, uuid, "csharp"); +@@alternateType(RegisteredServerProperties.storageSyncServiceUid, + uuid, + "csharp" +); +@@alternateType(RegisteredServerProperties.discoveryEndpointUri, url, "csharp"); +@@alternateType(RegisteredServerProperties.managementEndpointUri, + url, + "csharp" +); +@@alternateType(RegisteredServerProperties.monitoringEndpointUri, + url, + "csharp" +); +@@alternateType(RegisteredServerProperties.serverCertificate, + unknown, + "csharp" +); +@@alternateType(RegisteredServerProperties.resourceLocation, + azureLocation, + "csharp" +); +@@alternateType(RegisteredServerProperties.serviceLocation, + azureLocation, + "csharp" +); +@@clientName(ServerEndpoint, "StorageSyncServerEndpoint", "csharp"); +@@alternateType(ServerEndpointProperties.offlineDataTransferStorageAccountResourceId, + armResourceIdentifier, + "csharp" +); +@@alternateType(ServerEndpointProperties.offlineDataTransferStorageAccountTenantId, + uuid, + "csharp" +); +@@alternateType(ServerEndpointProperties.serverResourceId, + armResourceIdentifier, + "csharp" +); +@@alternateType(StorageSyncServiceProperties.storageSyncServiceUid, + uuid, + "csharp" +); +@@clientName(RegisteredServerCreateParameters, + "StorageSyncRegisteredServerCreateOrUpdateContent", + "csharp" +); +@@clientName(RegisteredServerCreateParametersProperties.lastHeartBeat, + "LastHeartbeat", + "csharp" +); +@@alternateType(RegisteredServerCreateParametersProperties.clusterId, + uuid, + "csharp" +); +@@alternateType(RegisteredServerCreateParametersProperties.serverCertificate, + unknown, + "csharp" +); +@@alternateType(RegisteredServerCreateParametersProperties.serverId, + uuid, + "csharp" +); +@@clientName(ServerEndpointCreateParameters, + "StorageSyncServerEndpointCreateOrUpdateContent", + "csharp" +); +@@alternateType(ServerEndpointCreateParametersProperties.serverResourceId, + armResourceIdentifier, + "csharp" +); +@@clientName(CloudEndpointCreateParameters, + "CloudEndpointCreateOrUpdateContent", + "csharp" +); +@@alternateType(CloudEndpointCreateParametersProperties.storageAccountResourceId, + armResourceIdentifier, + "csharp" +); +@@alternateType(CloudEndpointCreateParametersProperties.storageAccountTenantId, + uuid, + "csharp" +); +@@clientName(PostRestoreRequest, "PostRestoreContent", "csharp"); +@@alternateType(PostRestoreRequest.azureFileShareUri, url, "csharp"); +@@alternateType(PostRestoreRequest.sourceAzureFileShareUri, url, "csharp"); +@@clientName(PreRestoreRequest, "PreRestoreContent", "csharp"); +@@alternateType(PreRestoreRequest.azureFileShareUri, url, "csharp"); +@@alternateType(PreRestoreRequest.sourceAzureFileShareUri, url, "csharp"); +@@clientName(TriggerChangeDetectionParameters, + "TriggerChangeDetectionContent", + "csharp" +); +@@clientName(RecallActionParameters, "RecallActionContent", "csharp"); +@@clientName(StorageSyncServiceCreateParameters, + "StorageSyncServiceCreateOrUpdateContent", + "csharp" +); +@@clientName(TriggerRolloverRequest, "TriggerRolloverContent", "csharp"); +@@alternateType(TriggerRolloverRequest.serverCertificate, unknown, "csharp"); +@@clientName(SyncGroupCreateParameters, + "StorageSyncGroupCreateOrUpdateContent", + "csharp" +); +@@clientName(CloudEndpoints.restoreheartbeat, "RestoreHeartbeat", "csharp"); +@@clientName(CloudTieringCachePerformance.lastUpdatedTimestamp, + "LastUpdatedOn", + "csharp" +); +@@clientName(CloudTieringDatePolicyStatus.lastUpdatedTimestamp, + "LastUpdatedOn", + "csharp" +); +@@clientName(CloudTieringFilesNotTiering.lastUpdatedTimestamp, + "LastUpdatedOn", + "csharp" +); +@@clientName(CloudTieringLowDiskMode.lastUpdatedTimestamp, + "LastUpdatedOn", + "csharp" +); +@@clientName(CloudTieringSpaceSavings.lastUpdatedTimestamp, + "LastUpdatedOn", + "csharp" +); +@@clientName(CloudTieringVolumeFreeSpacePolicyStatus.lastUpdatedTimestamp, + "LastUpdatedOn", + "csharp" +); +@@clientName(ServerEndpointCloudTieringStatus.lastUpdatedTimestamp, + "LastUpdatedOn", + "csharp" +); +@@clientName(ServerEndpointRecallStatus.lastUpdatedTimestamp, + "LastUpdatedOn", + "csharp" +); +@@clientName(ServerEndpointSyncStatus.lastUpdatedTimestamp, + "LastUpdatedOn", + "csharp" +); + +@@clientName(CloudEndpoints.postBackup::parameters.body, "content", "csharp"); +@@clientName(CloudEndpoints.postRestore::parameters.body, "content", "csharp"); +@@clientName(CloudEndpoints.preBackup::parameters.body, "content", "csharp"); +@@clientName(CloudEndpoints.preRestore::parameters.body, "content", "csharp"); +@@clientName(CloudEndpoints.triggerChangeDetection::parameters.body, + "content", + "csharp" +); +@@clientName(CloudEndpoints.create::parameters.resource, "content", "csharp"); +@@clientName(StorageSyncServices.create::parameters.resource, + "content", + "csharp" +); +@@clientName(SyncGroups.create::parameters.resource, "content", "csharp"); +@@clientName(StorageSyncServicesOperationGroup.checkNameAvailability::parameters.body, + "content", + "csharp" +); +@@clientName(RegisteredServers.create::parameters.resource, + "content", + "csharp" +); +@@clientName(RegisteredServers.update::parameters.properties, + "content", + "csharp" +); +@@clientName(RegisteredServers.triggerRollover::parameters.body, + "content", + "csharp" +); +@@clientName(ServerEndpoints.create::parameters.resource, "content", "csharp"); +@@clientName(ServerEndpoints.recallAction::parameters.body, + "content", + "csharp" +); +@@clientName(ServerEndpoints.update::parameters.properties, + "content", + "csharp" +); +@@clientName(StorageSyncServices.update::parameters.properties, + "content", + "csharp" +); + +@@clientName(StorageSyncServicesOperationGroup.checkNameAvailability, + "CheckStorageSyncNameAvailability", + "csharp" +); + +@@usage(ServerEndpoint, Usage.input, "csharp"); +@@usage(CloudEndpoint, Usage.input, "csharp"); +@@usage(RegisteredServer, Usage.input, "csharp"); +@@usage(StorageSyncService, Usage.input, "csharp"); +@@usage(Workflow, Usage.input, "csharp"); diff --git a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/stable/2022-09-01/storagesync.json b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/stable/2022-09-01/storagesync.json index c7a43ef81d9e..67cdfb31d947 100644 --- a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/stable/2022-09-01/storagesync.json +++ b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/stable/2022-09-01/storagesync.json @@ -704,8 +704,7 @@ } }, "x-ms-long-running-operation-options": { - "final-state-via": "location", - "final-state-schema": "#/definitions/StorageSyncService" + "final-state-via": "location" }, "x-ms-long-running-operation": true } @@ -979,8 +978,7 @@ } }, "x-ms-long-running-operation-options": { - "final-state-via": "location", - "final-state-schema": "../../../../../../common-types/resource-management/v5/privatelinks.json#/definitions/PrivateEndpointConnection" + "final-state-via": "location" }, "x-ms-long-running-operation": true } @@ -1119,7 +1117,8 @@ "in": "path", "description": "GUID identifying the on-premises server.", "required": true, - "type": "string" + "type": "string", + "format": "uuid" } ], "responses": { @@ -1180,7 +1179,8 @@ "in": "path", "description": "GUID identifying the on-premises server.", "required": true, - "type": "string" + "type": "string", + "format": "uuid" }, { "name": "parameters", @@ -1282,7 +1282,8 @@ "in": "path", "description": "GUID identifying the on-premises server.", "required": true, - "type": "string" + "type": "string", + "format": "uuid" }, { "name": "parameters", @@ -1384,7 +1385,8 @@ "in": "path", "description": "GUID identifying the on-premises server.", "required": true, - "type": "string" + "type": "string", + "format": "uuid" } ], "responses": { @@ -1473,7 +1475,8 @@ "in": "path", "description": "GUID identifying the on-premises server.", "required": true, - "type": "string" + "type": "string", + "format": "uuid" }, { "name": "parameters", @@ -2131,8 +2134,7 @@ } }, "x-ms-long-running-operation-options": { - "final-state-via": "location", - "final-state-schema": "#/definitions/CloudEndpoint" + "final-state-via": "location" }, "x-ms-long-running-operation": true } diff --git a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/tspconfig.yaml b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/tspconfig.yaml index 4eb6ac9797e7..20a4abde28a6 100644 --- a/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/tspconfig.yaml +++ b/specification/storagesync/resource-manager/Microsoft.StorageSync/StorageSync/tspconfig.yaml @@ -11,7 +11,6 @@ options: output-file: "{version-status}/{version}/storagesync.json" examples-dir: "{project-root}/examples" arm-types-dir: "{project-root}/../../../../common-types/resource-management" - emit-lro-options: "all" "@azure-tools/typespec-python": service-dir: "sdk/storage" @@ -43,6 +42,9 @@ options: generate-fakes: true head-as-boolean: true inject-spans: true + "@azure-typespec/http-client-csharp-mgmt": + namespace: "Azure.ResourceManager.StorageSync" + emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" From aed3f19a265f781b090d2b448c0ce95b13b5c4ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Dec 2025 08:35:56 -0800 Subject: [PATCH 051/117] build(deps-dev): bump @azure-tools/spec-gen-sdk from 0.9.3 to 0.9.4 (#39240) Bumps [@azure-tools/spec-gen-sdk](https://github.com/Azure/azure-sdk-tools) from 0.9.3 to 0.9.4. - [Release notes](https://github.com/Azure/azure-sdk-tools/releases) - [Commits](https://github.com/Azure/azure-sdk-tools/commits) --- updated-dependencies: - dependency-name: "@azure-tools/spec-gen-sdk" dependency-version: 0.9.4 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 59930ee61698523269281dc9df36815620cb3d6e Mon Sep 17 00:00:00 2001 From: Ojo Okoka Date: Wed, 17 Dec 2025 13:21:36 -0500 Subject: [PATCH 052/117] Merge GalleryRP 2025-03-03 Features into Main (#38715) * add new version to main.tsp * add examples * swagger generated * update readme file * add import versioining * Gallery Image version StorageAccountStrategy (#35769) * tsp update * swagger added * fix typespec CI validation --------- Co-authored-by: Ojo Okoka * New resource type - Gallery Scripts (#35887) * added models and main.tsp reference * update * add added decorators * fix unintentional change * add examples * update galleryScript name pattern * fix parameter name with back-compatibles * fix CI failures * update responses codes * fix enum descriptions * add validationStatus * update * set readOnly properties as readOnly * remove schema from 202 returns * fix typo * tsp compiler updated * Included Azure-AsyncOperation headers to address ARM Comments * Added ArmAsyncOperationHeader for ARM Comments and fixed Tsp compile issues * Attempt to fix CI TypeSpec Validation * Attempt to fix CI TypeSpec Validation through npx commands * Attempted fix * Cleanup GalleryScriptVersion.tsp file * Attempted to use Azure decorators --------- Co-authored-by: Mike Harder Co-authored-by: Ojo Okoka * Compilation Errors for TS Validation Fix * Adding updated Gallery swagger to updated Readme input-file * Rollback name pattern req + updates to Typespec Validation * Adding delete read only directives to change 2024-03-03 json from update * Reversing changes and Getting Breaking Change Approval * Revert name pattern changes to see CI checks * Fix Readme and add Swagger Lint Suppression * Corrected name for min and maxValue * Rollback on parameter name changes * Added existing name pattern for GalleryApplications * Removed suppression for NamePattern --------- Co-authored-by: Theodore Chang Co-authored-by: Mike Harder Co-authored-by: audreyttt --- .../compute/Gallery.Management/Gallery.tsp | 2 +- .../Gallery.Management/GalleryScript.tsp | 102 + .../GalleryScriptVersion.tsp | 118 + .../Gallery.Management/back-compatible.tsp | 16 +- .../CommunityGalleryImageVersion_Get.json | 39 + .../CommunityGalleryImageVersion_List.json | 42 + .../CommunityGalleryImage_Get.json | 39 + .../CommunityGalleryImage_List.json | 40 + .../CommunityGallery_Get.json | 37 + .../CommunityGallery_Create.json | 96 + .../galleryExamples/CommunityGallery_Get.json | 48 + .../GalleryApplicationVersion_Create.json | 234 + .../GalleryApplicationVersion_Delete.json | 22 + .../GalleryApplicationVersion_Get.json | 67 + ...tionVersion_Get_WithReplicationStatus.json | 86 + ...ationVersion_ListByGalleryApplication.json | 71 + .../GalleryApplicationVersion_Update.json | 78 + .../GalleryApplication_Create.json | 132 + .../GalleryApplication_Delete.json | 21 + .../GalleryApplication_Get.json | 43 + .../GalleryApplication_ListByGallery.json | 47 + .../GalleryApplication_Update.json | 69 + .../GalleryImageVersion_Create.json | 331 + ...sion_Create_WithAdditionalReplicaSets.json | 351 + ...ate_WithCommunityImageVersionAsSource.json | 331 + ...rsion_Create_WithImageVersionAsSource.json | 331 + ...ion_Create_WithShallowReplicationMode.json | 191 + ...eVersion_Create_WithSnapshotsAsSource.json | 320 + ...ion_Create_WithStorageAccountStrategy.json | 163 + ...on_Create_WithTargetExtendedLocations.json | 373 + .../GalleryImageVersion_Create_WithVHD.json | 278 + ...geVersion_Create_WithVHD_UefiSettings.json | 410 + ...eryImageVersion_Create_WithVmAsSource.json | 331 + .../GalleryImageVersion_Delete.json | 22 + .../GalleryImageVersion_Get.json | 85 + ...mageVersion_Get_WithReplicationStatus.json | 103 + ...mageVersion_Get_WithSnapshotsAsSource.json | 84 + ...mageVersion_Get_WithValidationProfile.json | 120 + ...ValidationProfileAndReplicationStatus.json | 137 + ...lleryImageVersion_Get_WithVhdAsSource.json | 84 + ...alleryImageVersion_ListByGalleryImage.json | 89 + .../GalleryImageVersion_Update.json | 91 + ...mageVersion_Update_RestoreSoftDeleted.json | 64 + ...ryImageVersion_Update_WithoutSourceId.json | 87 + .../galleryExamples/GalleryImage_Create.json | 80 + .../galleryExamples/GalleryImage_Delete.json | 21 + .../galleryExamples/GalleryImage_Get.json | 31 + .../GalleryImage_ListByGallery.json | 35 + .../galleryExamples/GalleryImage_Update.json | 42 + .../GalleryImage_UpdateFeatures.json | 57 + ...oftDeletedResource_ListByArtifactName.json | 32 + .../Gallery_AddToSharingProfile.json | 73 + .../galleryExamples/Gallery_Create.json | 60 + .../Gallery_Create_SoftDeletionEnabled.json | 72 + .../Gallery_Create_WithManagedIdentity.json | 96 + .../Gallery_Create_WithSharingProfile.json | 72 + .../galleryExamples/Gallery_Delete.json | 20 + .../Gallery_EnableCommunityGallery.json | 28 + .../galleryExamples/Gallery_Get.json | 26 + ...ry_Get_WithExpandSharingProfileGroups.json | 40 + .../Gallery_Get_WithManagedIdentity.json | 37 + .../Gallery_Get_WithSelectPermissions.json | 40 + .../Gallery_ListByResourceGroup.json | 30 + .../Gallery_ListBySubscription.json | 29 + .../Gallery_ResetSharingProfile.json | 28 + .../galleryExamples/Gallery_Update.json | 30 + ...nVMAccessControlProfileVersion_Create.json | 182 + ...nVMAccessControlProfileVersion_Delete.json | 21 + ...ryInVMAccessControlProfileVersion_Get.json | 75 + ...ListByGalleryInVMAccessControlProfile.json | 79 + ...nVMAccessControlProfileVersion_Update.json | 93 + ...alleryInVMAccessControlProfile_Create.json | 44 + ...alleryInVMAccessControlProfile_Delete.json | 20 + .../GalleryInVMAccessControlProfile_Get.json | 25 + ...nVMAccessControlProfile_ListByGallery.json | 29 + ...alleryInVMAccessControlProfile_Update.json | 31 + .../GalleryScriptVersion_Create.json | 269 + .../GalleryScriptVersion_Delete.json | 21 + .../GalleryScriptVersion_Get.json | 99 + ...riptVersion_Get_WithReplicationStatus.json | 110 + ...leryScriptVersion_ListByGalleryScript.json | 149 + .../GalleryScriptVersion_Update.json | 181 + .../GalleryScript_Create.json | 61 + .../GalleryScript_Delete.json | 20 + .../GalleryScript_Get.json | 28 + .../GalleryScript_ListByGallery.json | 45 + .../GalleryScript_Update.json | 43 + .../SharedGalleryImageVersion_Get.json | 37 + .../SharedGalleryImageVersions_List.json | 41 + .../SharedGalleryImage_Get.json | 36 + .../SharedGalleryImages_List.json | 39 + .../SharedGallery_Get.json | 26 + .../SharedGallery_List.json | 30 + .../compute/Gallery.Management/main.tsp | 7 + .../compute/Gallery.Management/models.tsp | 257 +- .../compute/Gallery.Management/tspconfig.yaml | 1 + .../stable/2024-03-03/GalleryRP.json | 119 +- .../stable/2025-03-03/GalleryRP.json | 7991 +++++++++++++++++ .../CommunityGalleryImageVersion_Get.json | 39 + .../CommunityGalleryImageVersion_List.json | 42 + .../CommunityGalleryImage_Get.json | 39 + .../CommunityGalleryImage_List.json | 40 + .../CommunityGallery_Get.json | 37 + .../CommunityGallery_Create.json | 96 + .../galleryExamples/CommunityGallery_Get.json | 48 + .../GalleryApplicationVersion_Create.json | 234 + .../GalleryApplicationVersion_Delete.json | 22 + .../GalleryApplicationVersion_Get.json | 67 + ...tionVersion_Get_WithReplicationStatus.json | 86 + ...ationVersion_ListByGalleryApplication.json | 71 + .../GalleryApplicationVersion_Update.json | 78 + .../GalleryApplication_Create.json | 132 + .../GalleryApplication_Delete.json | 21 + .../GalleryApplication_Get.json | 43 + .../GalleryApplication_ListByGallery.json | 47 + .../GalleryApplication_Update.json | 69 + .../GalleryImageVersion_Create.json | 331 + ...sion_Create_WithAdditionalReplicaSets.json | 351 + ...ate_WithCommunityImageVersionAsSource.json | 331 + ...rsion_Create_WithImageVersionAsSource.json | 331 + ...ion_Create_WithShallowReplicationMode.json | 191 + ...eVersion_Create_WithSnapshotsAsSource.json | 320 + ...ion_Create_WithStorageAccountStrategy.json | 163 + ...on_Create_WithTargetExtendedLocations.json | 373 + .../GalleryImageVersion_Create_WithVHD.json | 278 + ...geVersion_Create_WithVHD_UefiSettings.json | 410 + ...eryImageVersion_Create_WithVmAsSource.json | 331 + .../GalleryImageVersion_Delete.json | 22 + .../GalleryImageVersion_Get.json | 85 + ...mageVersion_Get_WithReplicationStatus.json | 103 + ...mageVersion_Get_WithSnapshotsAsSource.json | 84 + ...mageVersion_Get_WithValidationProfile.json | 120 + ...ValidationProfileAndReplicationStatus.json | 137 + ...lleryImageVersion_Get_WithVhdAsSource.json | 84 + ...alleryImageVersion_ListByGalleryImage.json | 89 + .../GalleryImageVersion_Update.json | 91 + ...mageVersion_Update_RestoreSoftDeleted.json | 64 + ...ryImageVersion_Update_WithoutSourceId.json | 87 + .../galleryExamples/GalleryImage_Create.json | 80 + .../galleryExamples/GalleryImage_Delete.json | 21 + .../galleryExamples/GalleryImage_Get.json | 31 + .../GalleryImage_ListByGallery.json | 35 + .../galleryExamples/GalleryImage_Update.json | 42 + .../GalleryImage_UpdateFeatures.json | 57 + ...oftDeletedResource_ListByArtifactName.json | 32 + .../Gallery_AddToSharingProfile.json | 73 + .../galleryExamples/Gallery_Create.json | 60 + .../Gallery_Create_SoftDeletionEnabled.json | 72 + .../Gallery_Create_WithManagedIdentity.json | 96 + .../Gallery_Create_WithSharingProfile.json | 72 + .../galleryExamples/Gallery_Delete.json | 20 + .../Gallery_EnableCommunityGallery.json | 28 + .../examples/galleryExamples/Gallery_Get.json | 26 + ...ry_Get_WithExpandSharingProfileGroups.json | 40 + .../Gallery_Get_WithManagedIdentity.json | 37 + .../Gallery_Get_WithSelectPermissions.json | 40 + .../Gallery_ListByResourceGroup.json | 30 + .../Gallery_ListBySubscription.json | 29 + .../Gallery_ResetSharingProfile.json | 28 + .../galleryExamples/Gallery_Update.json | 30 + ...nVMAccessControlProfileVersion_Create.json | 182 + ...nVMAccessControlProfileVersion_Delete.json | 21 + ...ryInVMAccessControlProfileVersion_Get.json | 75 + ...ListByGalleryInVMAccessControlProfile.json | 79 + ...nVMAccessControlProfileVersion_Update.json | 93 + ...alleryInVMAccessControlProfile_Create.json | 44 + ...alleryInVMAccessControlProfile_Delete.json | 20 + .../GalleryInVMAccessControlProfile_Get.json | 25 + ...nVMAccessControlProfile_ListByGallery.json | 29 + ...alleryInVMAccessControlProfile_Update.json | 31 + .../GalleryScriptVersion_Create.json | 269 + .../GalleryScriptVersion_Delete.json | 21 + .../GalleryScriptVersion_Get.json | 99 + ...riptVersion_Get_WithReplicationStatus.json | 110 + ...leryScriptVersion_ListByGalleryScript.json | 149 + .../GalleryScriptVersion_Update.json | 181 + .../GalleryScript_Create.json | 61 + .../GalleryScript_Delete.json | 20 + .../GalleryScript_Get.json | 28 + .../GalleryScript_ListByGallery.json | 45 + .../GalleryScript_Update.json | 43 + .../SharedGalleryImageVersion_Get.json | 37 + .../SharedGalleryImageVersions_List.json | 41 + .../SharedGalleryImage_Get.json | 36 + .../SharedGalleryImages_List.json | 39 + .../SharedGallery_Get.json | 26 + .../SharedGallery_List.json | 30 + .../compute/resource-manager/readme.md | 47 +- 188 files changed, 25408 insertions(+), 52 deletions(-) create mode 100644 specification/compute/Gallery.Management/GalleryScript.tsp create mode 100644 specification/compute/Gallery.Management/GalleryScriptVersion.tsp create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImageVersion_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImageVersion_List.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImage_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImage_List.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGallery_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/CommunityGallery_Create.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/CommunityGallery_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Create.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Delete.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Get_WithReplicationStatus.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_ListByGalleryApplication.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Update.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Create.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Delete.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_ListByGallery.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Update.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithAdditionalReplicaSets.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithCommunityImageVersionAsSource.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithImageVersionAsSource.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithShallowReplicationMode.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithSnapshotsAsSource.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithStorageAccountStrategy.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithTargetExtendedLocations.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithVHD.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithVHD_UefiSettings.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithVmAsSource.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Delete.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithReplicationStatus.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithSnapshotsAsSource.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithValidationProfile.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithValidationProfileAndReplicationStatus.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithVhdAsSource.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_ListByGalleryImage.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Update.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Update_RestoreSoftDeleted.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Update_WithoutSourceId.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Create.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Delete.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_ListByGallery.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Update.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_UpdateFeatures.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GallerySoftDeletedResource_ListByArtifactName.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_AddToSharingProfile.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create_SoftDeletionEnabled.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create_WithManagedIdentity.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create_WithSharingProfile.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Delete.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_EnableCommunityGallery.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get_WithExpandSharingProfileGroups.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get_WithManagedIdentity.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get_WithSelectPermissions.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_ListByResourceGroup.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_ListBySubscription.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_ResetSharingProfile.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Update.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Create.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Delete.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_ListByGalleryInVMAccessControlProfile.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Update.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Create.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Delete.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_ListByGallery.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Update.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Create.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Delete.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Get_WithReplicationStatus.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_ListByGalleryScript.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Update.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Create.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Delete.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_ListByGallery.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Update.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImageVersion_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImageVersions_List.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImage_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImages_List.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGallery_Get.json create mode 100644 specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGallery_List.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/GalleryRP.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/communityGalleryExamples/CommunityGalleryImageVersion_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/communityGalleryExamples/CommunityGalleryImageVersion_List.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/communityGalleryExamples/CommunityGalleryImage_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/communityGalleryExamples/CommunityGalleryImage_List.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/communityGalleryExamples/CommunityGallery_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/CommunityGallery_Create.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/CommunityGallery_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryApplicationVersion_Create.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryApplicationVersion_Delete.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryApplicationVersion_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryApplicationVersion_Get_WithReplicationStatus.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryApplicationVersion_ListByGalleryApplication.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryApplicationVersion_Update.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryApplication_Create.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryApplication_Delete.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryApplication_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryApplication_ListByGallery.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryApplication_Update.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create_WithAdditionalReplicaSets.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create_WithCommunityImageVersionAsSource.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create_WithImageVersionAsSource.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create_WithShallowReplicationMode.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create_WithSnapshotsAsSource.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create_WithStorageAccountStrategy.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create_WithTargetExtendedLocations.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create_WithVHD.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create_WithVHD_UefiSettings.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create_WithVmAsSource.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Delete.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithReplicationStatus.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithSnapshotsAsSource.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithValidationProfile.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithValidationProfileAndReplicationStatus.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithVhdAsSource.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_ListByGalleryImage.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Update.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Update_RestoreSoftDeleted.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Update_WithoutSourceId.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Create.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Delete.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_ListByGallery.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Update.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_UpdateFeatures.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GallerySoftDeletedResource_ListByArtifactName.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_AddToSharingProfile.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create_SoftDeletionEnabled.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create_WithManagedIdentity.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create_WithSharingProfile.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Delete.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_EnableCommunityGallery.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get_WithExpandSharingProfileGroups.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get_WithManagedIdentity.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get_WithSelectPermissions.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_ListByResourceGroup.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_ListBySubscription.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_ResetSharingProfile.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Update.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Create.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Delete.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_ListByGalleryInVMAccessControlProfile.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Update.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Create.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Delete.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_ListByGallery.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Update.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Create.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Delete.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Get_WithReplicationStatus.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_ListByGalleryScript.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Update.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Create.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Delete.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_ListByGallery.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Update.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImageVersion_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImageVersions_List.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImage_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImages_List.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGallery_Get.json create mode 100644 specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGallery_List.json diff --git a/specification/compute/Gallery.Management/Gallery.tsp b/specification/compute/Gallery.Management/Gallery.tsp index 81cfb766f19a..112829a9a2d8 100644 --- a/specification/compute/Gallery.Management/Gallery.tsp +++ b/specification/compute/Gallery.Management/Gallery.tsp @@ -18,7 +18,7 @@ model Gallery is Azure.ResourceManager.TrackedResource { Resource = Gallery, KeyName = "galleryName", SegmentName = "galleries", - NamePattern = "" + NamePattern = "^[^_\\W][\\w-._]{0,79}(?; /** diff --git a/specification/compute/Gallery.Management/GalleryScript.tsp b/specification/compute/Gallery.Management/GalleryScript.tsp new file mode 100644 index 000000000000..a270125391a4 --- /dev/null +++ b/specification/compute/Gallery.Management/GalleryScript.tsp @@ -0,0 +1,102 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "./models.tsp"; +import "./Gallery.tsp"; +import "../Common.Management/operations.tsp"; + +using TypeSpec.Rest; +using Versioning; +using Azure.ResourceManager; +using TypeSpec.Http; + +namespace Microsoft.Compute; + +/** + * Gallery script name with pattern validation + */ +@pattern("^[a-zA-Z0-9]+([_]?[a-zA-Z0-9]+)*$") +@doc("The name of the gallery Script Definition in which the Script Version is to be created.") +scalar GalleryScriptName extends string; + +/** + * Specifies information about the gallery Script Definition that you want to create or update. + */ +@added(Versions.v2025_03_03) +@parentResource(Gallery) +model GalleryScript + is Azure.ResourceManager.TrackedResource { + @key("galleryScriptName") + @segment("scripts") + @path + name: GalleryScriptName; +} + +@armResourceOperations +interface GalleryScripts { + /** + * Retrieves information about a gallery script definition. + */ + @added(Versions.v2025_03_03) + get is ComputeResourceRead; + + /** + * Create or update a Gallery Script Definition. Gallery scripts allow the storage, sharing and reuse of common scripts + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility" + @added(Versions.v2025_03_03) + createOrUpdate is ComputeResourceCreateOrReplaceAsync< + GalleryScript, + Response = ArmResourceUpdatedResponse | ArmResourceCreatedResponse< + GalleryScript, + ArmLroLocationHeader & Azure.Core.Foundations.RetryAfterHeader + > + >; + + /** + * Update a gallery Script Definition. + */ + @patch(#{ implicitOptionality: false }) + @added(Versions.v2025_03_03) + update is ComputeCustomPatchAsync< + GalleryScript, + PatchModel = GalleryScriptUpdate, + Response = ArmResponse | ArmAcceptedLroResponse + >; + + /** + * Delete a gallery Script Definition. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + @added(Versions.v2025_03_03) + delete is ComputeResourceDeleteAsync< + GalleryScript, + Response = ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * List gallery Script Definitions in a gallery. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property" "For backward compatibility" + @added(Versions.v2025_03_03) + listByGallery is ComputeResourceListByParent< + GalleryScript, + Response = ArmResponse + >; +} + +@@doc(GalleryScript.name, + "The name of the gallery Script Definition to be retrieved." +); +@@doc(GalleryScript.properties, + "Describes the properties of a gallery Script Definition." +); +@@doc(GalleryScripts.createOrUpdate::parameters.resource, + "Parameters supplied to the create or update gallery Script operation." +); +@@doc(GalleryScripts.update::parameters.properties, + "Parameters supplied to the update gallery Script operation." +); diff --git a/specification/compute/Gallery.Management/GalleryScriptVersion.tsp b/specification/compute/Gallery.Management/GalleryScriptVersion.tsp new file mode 100644 index 000000000000..6acbc12306b6 --- /dev/null +++ b/specification/compute/Gallery.Management/GalleryScriptVersion.tsp @@ -0,0 +1,118 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "./models.tsp"; +import "./GalleryScript.tsp"; +import "../Common.Management/operations.tsp"; + +using TypeSpec.Rest; +using Versioning; +using Azure.ResourceManager; +using TypeSpec.Http; +using Azure.Core; // Needed for @useFinalStateVia decorator + +namespace Microsoft.Compute { + @pattern("^[0-9]+\\.[0-9]+\\.[0-9]+$") + @doc("The name of the gallery Script Version to be created. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: ..") + scalar GalleryScriptVersionName extends string; + + @added(Versions.v2025_03_03) + model GalleryScriptVersionList is Azure.Core.Page; + + @added(Versions.v2025_03_03) + @parentResource(GalleryScript) + model GalleryScriptVersion + is Azure.ResourceManager.TrackedResource { + @key("galleryScriptVersionName") + @segment("versions") + @path + name: GalleryScriptVersionName; + } + + /** + * Common LRO headers (Azure-AsyncOperation required Jan 2025). Keep Location + Retry-After for backward compatibility. + */ + alias GalleryScriptVersionLroHeaders = ArmAsyncOperationHeader & + ArmLroLocationHeader & + Azure.Core.Foundations.RetryAfterHeader; + + @armResourceOperations + interface GalleryScriptVersions { + @added(Versions.v2025_03_03) + get is ComputeResourceRead; + + /** + * Create or update a gallery Script Version. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility" + @useFinalStateVia("azure-async-operation") + @added(Versions.v2025_03_03) + createOrUpdate is ComputeResourceCreateOrReplaceAsync< + GalleryScriptVersion, + Azure.ResourceManager.Foundations.DefaultBaseParameters, + GalleryScriptVersionLroHeaders, + {}, + ArmResourceUpdatedResponse | ArmResourceCreatedResponse< + GalleryScriptVersion, + GalleryScriptVersionLroHeaders + > + >; + + /** + * Update a gallery Script Version. + */ + @useFinalStateVia("azure-async-operation") + @added(Versions.v2025_03_03) + @patch(#{ implicitOptionality: false }) + update is ComputeCustomPatchAsync< + GalleryScriptVersion, + GalleryScriptVersionUpdate, + Azure.ResourceManager.Foundations.DefaultBaseParameters, + GalleryScriptVersionLroHeaders, + {}, + ArmResponse | ArmAcceptedLroResponse< + "Resource update request accepted.", + GalleryScriptVersionLroHeaders + > + >; + + /** + * Delete a gallery Script Version. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + @useFinalStateVia("azure-async-operation") + @added(Versions.v2025_03_03) + delete is ComputeResourceDeleteAsync< + GalleryScriptVersion, + Azure.ResourceManager.Foundations.DefaultBaseParameters, + GalleryScriptVersionLroHeaders, + {}, + ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * List gallery Script Versions in a gallery Script Definition. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property" "For backward compatibility" + @added(Versions.v2025_03_03) + listByGalleryScript is ComputeResourceListByParent< + GalleryScriptVersion, + Response = ArmResponse + >; + } + + @@doc(GalleryScriptVersion.name, + "The name of the gallery Script Version to be retrieved." + ); + @@doc(GalleryScriptVersion.properties, + "Describes the properties of a gallery Script Version." + ); + @@doc(GalleryScriptVersions.createOrUpdate::parameters.resource, + "Parameters supplied to the create or update gallery Script Version operation." + ); + @@doc(GalleryScriptVersions.update::parameters.properties, + "Parameters supplied to the update gallery Script Version operation." + ); +} diff --git a/specification/compute/Gallery.Management/back-compatible.tsp b/specification/compute/Gallery.Management/back-compatible.tsp index 160ec47c5e28..c56ff20c6d27 100644 --- a/specification/compute/Gallery.Management/back-compatible.tsp +++ b/specification/compute/Gallery.Management/back-compatible.tsp @@ -80,8 +80,20 @@ using Microsoft.Compute; @@clientName(GalleryApplications.update::parameters.properties, "galleryApplication" ); -#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "@flattenProperty decorator is not recommended to use." -#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Back compatibility" + +@@clientName(GalleryScripts.createOrUpdate::parameters.resource, + "galleryScript" +); +@@clientName(GalleryScripts.update::parameters.properties, "galleryScript"); + +@@clientName(GalleryScriptVersions.createOrUpdate::parameters.resource, + "galleryScriptVersion" +); +@@clientName(GalleryScriptVersions.update::parameters.properties, + "galleryScriptVersion" +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Legacy flatten retained for backward compatibility." @@Azure.ClientGenerator.Core.Legacy.flattenProperty(GalleryApplication.properties ); diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImageVersion_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImageVersion_Get.json new file mode 100644 index 000000000000..daec856ddb93 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImageVersion_Get.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "publicGalleryName": "publicGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "myGalleryImageVersionName" + }, + "responses": { + "200": { + "body": { + "properties": { + "publishedDate": "2018-03-20T09:12:28Z", + "endOfLifeDate": "2022-03-20T09:12:28Z", + "excludeFromLatest": false, + "storageProfile": { + "osDiskImage": { + "diskSizeGB": 29, + "hostCaching": "None" + } + }, + "artifactTags": { + "ShareTag-CommunityGallery": "CommunityGallery" + }, + "disclaimer": "https://test-uri.com" + }, + "location": "myLocation", + "name": "myGalleryImageVersionName", + "type": "Microsoft.Compute/locations/communityGalleryImageVersion", + "identifier": { + "uniqueId": "/CommunityGalleries/publicGalleryName/Images/myGalleryImageName/Versions/myGalleryImageVersionName" + } + } + } + }, + "operationId": "CommunityGalleryImageVersions_Get", + "title": "Get a community gallery image version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImageVersion_List.json b/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImageVersion_List.json new file mode 100644 index 000000000000..c8b2288666d5 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImageVersion_List.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "publicGalleryName": "publicGalleryName", + "galleryImageName": "myGalleryImageName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "publishedDate": "2018-03-20T09:12:28Z", + "endOfLifeDate": "2022-03-20T09:12:28Z", + "excludeFromLatest": false, + "storageProfile": { + "osDiskImage": { + "diskSizeGB": 29, + "hostCaching": "None" + } + }, + "artifactTags": { + "ShareTag-CommunityGallery": "CommunityGallery" + }, + "disclaimer": "https://test-uri.com" + }, + "location": "myLocation", + "name": "myGalleryImageVersionName", + "identifier": { + "uniqueId": "/CommunityGalleries/publicGalleryName/Images/myGalleryImageName/Versions/myGalleryImageVersionName" + } + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/providers/Microsoft.Compute/communityGalleries/publicGalleryName/images/myGalleryImageName/versions?$skiptoken=token/communityGalleries/publicGalleryName/images/myGalleryImageName/versions/myGalleryImageVersionName" + } + } + }, + "operationId": "CommunityGalleryImageVersions_List", + "title": "List community gallery image versions." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImage_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImage_Get.json new file mode 100644 index 000000000000..0049f72c5c56 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImage_Get.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "publicGalleryName": "publicGalleryName", + "galleryImageName": "myGalleryImageName" + }, + "responses": { + "200": { + "body": { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "privacyStatementUri": "https://test-uri.com", + "eula": "https://test-uri.com", + "artifactTags": { + "ShareTag-CommunityGallery": "CommunityGallery" + }, + "disclaimer": "https://test-uri.com" + }, + "location": "myLocation", + "name": "myGalleryImageName", + "type": "Microsoft.Compute/locations/communityGalleryImage", + "identifier": { + "uniqueId": "/CommunityGalleries/publicGalleryName/Images/myGalleryImageName" + } + } + } + }, + "operationId": "CommunityGalleryImages_Get", + "title": "Get a community gallery image." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImage_List.json b/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImage_List.json new file mode 100644 index 000000000000..61956df89f3e --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGalleryImage_List.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "publicGalleryName": "publicGalleryName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "artifactTags": { + "ShareTag-CommunityGallery": "CommunityGallery" + }, + "disclaimer": "https://test-uri.com" + }, + "location": "myLocation", + "name": "myGalleryImageName", + "identifier": { + "uniqueId": "/CommunityGalleries/publicGalleryName/Images/myGalleryImageName" + } + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/providers/Microsoft.Compute/communityGalleries/publicGalleryName/images?$skiptoken=token/communityGalleries/publicGalleryName/images/myGalleryImageName" + } + } + }, + "operationId": "CommunityGalleryImages_List", + "title": "List community gallery images." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGallery_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGallery_Get.json new file mode 100644 index 000000000000..6a850c735de1 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/communityGalleryExamples/CommunityGallery_Get.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "publicGalleryName": "publicGalleryName" + }, + "responses": { + "200": { + "body": { + "location": "myLocation", + "name": "publicGalleryName", + "type": "Microsoft.Compute/locations/communityGallery", + "identifier": { + "uniqueId": "/CommunityGalleries/publicGalleryName" + }, + "properties": { + "artifactTags": { + "ShareTag-CommunityGallery": "CommunityGallery" + }, + "disclaimer": "https://test-uri.com", + "communityMetadata": { + "publisherUri": "https://test-uri.com", + "publisherContact": "sameple@email.com", + "eula": "https://test-uri.com", + "publicNames": [ + "prefix-xxxxx" + ], + "privacyStatementUri": "https://test-uri.com" + } + } + } + } + }, + "operationId": "CommunityGalleries_Get", + "title": "Get a community gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/CommunityGallery_Create.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/CommunityGallery_Create.json new file mode 100644 index 000000000000..db6c9b8b7bed --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/CommunityGallery_Create.json @@ -0,0 +1,96 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "gallery": { + "location": "West US", + "properties": { + "description": "This is the gallery description.", + "sharingProfile": { + "permissions": "Community", + "communityGalleryInfo": { + "publisherUri": "uri", + "publisherContact": "pir@microsoft.com", + "eula": "eula", + "publicNamePrefix": "PirPublic" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating", + "sharingProfile": { + "permissions": "Community", + "communityGalleryInfo": { + "publisherUri": "uri", + "publisherContact": "pir@microsoft.com", + "eula": "eula", + "publicNamePrefix": "PirPublic" + } + } + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Creating", + "sharingProfile": { + "permissions": "Community", + "communityGalleryInfo": { + "publisherUri": "uri", + "publisherContact": "pir@microsoft.com", + "eula": "eula", + "publicNamePrefix": "PirPublic" + } + } + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "202": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating", + "sharingProfile": { + "permissions": "Community", + "communityGalleryInfo": { + "publisherUri": "uri", + "publisherContact": "pir@microsoft.com", + "eula": "eula", + "publicNamePrefix": "PirPublic" + } + } + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_CreateOrUpdate", + "title": "Create a community gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/CommunityGallery_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/CommunityGallery_Get.json new file mode 100644 index 000000000000..38672840cf2d --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/CommunityGallery_Get.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/communityGalleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Succeeded", + "sharingProfile": { + "permissions": "Community", + "communityGalleryInfo": { + "publisherUri": "uri", + "publisherContact": "pir@microsoft.com", + "eula": "eula", + "publicNames": [ + "GalleryPublicName" + ], + "communityGalleryEnabled": true + } + }, + "sharingStatus": { + "aggregatedState": "Succeeded", + "summary": [ + { + "region": "westus", + "state": "Succeeded", + "details": "" + } + ] + } + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_Get", + "title": "Get a community gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Create.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Create.json new file mode 100644 index 000000000000..c0b268731226 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Create.json @@ -0,0 +1,234 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryApplicationName": "myGalleryApplicationName", + "galleryApplicationVersionName": "1.0.0", + "galleryApplicationVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "source": { + "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}" + }, + "manageActions": { + "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"", + "remove": "del C:\\package " + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "endOfLifeDate": "2019-07-01T07:00:00Z", + "storageAccountType": "Standard_LRS", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + } + } + } + }, + "responses": { + "200": { + "body": { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/applications/versions", + "id": "/subscriptions/01523d7c-60da-455e-adef-521b547922c4/resourceGroups/galleryPsTestRg98/providers/Microsoft.Compute/galleries/galleryPsTestGallery6165/applications/galleryPsTestGalleryApplication7825/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}" + }, + "manageActions": { + "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"", + "remove": "del C:\\package " + }, + "enableHealthCheck": false, + "settings": { + "packageFileName": "package.zip", + "configFileName": "configuration.cfg" + }, + "advancedSettings": { + "timeout": "300", + "user": "root" + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "excludeFromLatest": false, + "publishedDate": "2019-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2019-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Updating" + } + } + }, + "201": { + "body": { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/applications/versions", + "id": "/subscriptions/01523d7c-60da-455e-adef-521b547922c4/resourceGroups/galleryPsTestRg98/providers/Microsoft.Compute/galleries/galleryPsTestGallery6165/applications/galleryPsTestGalleryApplication7825/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}" + }, + "manageActions": { + "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"", + "remove": "del C:\\package " + }, + "enableHealthCheck": false, + "settings": { + "packageFileName": "package.zip", + "configFileName": "configuration.cfg", + "scriptBehaviorAfterReboot": "Rerun" + }, + "advancedSettings": { + "timeout": "300", + "user": "root" + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "excludeFromLatest": false, + "publishedDate": "2019-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2019-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Creating" + } + } + }, + "202": { + "body": { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/applications/versions", + "id": "/subscriptions/01523d7c-60da-455e-adef-521b547922c4/resourceGroups/galleryPsTestRg98/providers/Microsoft.Compute/galleries/galleryPsTestGallery6165/applications/galleryPsTestGalleryApplication7825/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}" + }, + "manageActions": { + "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"", + "remove": "del C:\\package " + }, + "enableHealthCheck": false, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "excludeFromLatest": false, + "publishedDate": "2019-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2019-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Updating" + } + } + } + }, + "operationId": "GalleryApplicationVersions_CreateOrUpdate", + "title": "Create or update a simple gallery Application Version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Delete.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Delete.json new file mode 100644 index 000000000000..9d2fead41201 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Delete.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryApplicationName": "myGalleryApplicationName", + "galleryApplicationVersionName": "1.0.0" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2021-07-01", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2021-07-01" + } + }, + "204": {} + }, + "operationId": "GalleryApplicationVersions_Delete", + "title": "Delete a gallery Application Version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Get.json new file mode 100644 index 000000000000..e58737b328ec --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Get.json @@ -0,0 +1,67 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryApplicationName": "myGalleryApplicationName", + "galleryApplicationVersionName": "1.0.0" + }, + "responses": { + "200": { + "body": { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/applications/versions", + "id": "/subscriptions/01523d7c-60da-455e-adef-521b547922c4/resourceGroups/galleryPsTestRg98/providers/Microsoft.Compute/galleries/galleryPsTestGallery6165/applications/galleryPsTestGalleryApplication7825/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}" + }, + "manageActions": { + "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"", + "remove": "del C:\\package " + }, + "enableHealthCheck": false, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "excludeFromLatest": false, + "publishedDate": "2019-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2019-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "GalleryApplicationVersions_Get", + "title": "Get a gallery Application Version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Get_WithReplicationStatus.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Get_WithReplicationStatus.json new file mode 100644 index 000000000000..82fe211e1086 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Get_WithReplicationStatus.json @@ -0,0 +1,86 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryApplicationName": "myGalleryApplicationName", + "galleryApplicationVersionName": "1.0.0", + "$expand": "ReplicationStatus" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications/myGalleryApplicationName/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}" + }, + "manageActions": { + "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"", + "remove": "del C:\\package " + }, + "enableHealthCheck": false, + "settings": { + "packageFileName": "package.zip", + "configFileName": "configuration.cfg" + }, + "advancedSettings": { + "timeout": "300", + "user": "root" + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "excludeFromLatest": false, + "publishedDate": "2019-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2019-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "replicationStatus": { + "aggregatedState": "Completed", + "summary": [ + { + "region": "West US", + "state": "Completed", + "details": "", + "progress": 100 + } + ] + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryApplicationVersions_Get", + "title": "Get a gallery Application Version with replication status." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_ListByGalleryApplication.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_ListByGalleryApplication.json new file mode 100644 index 000000000000..35ed565fc8d6 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_ListByGalleryApplication.json @@ -0,0 +1,71 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryApplicationName": "myGalleryApplicationName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/applications/versions", + "id": "/subscriptions/01523d7c-60da-455e-adef-521b547922c4/resourceGroups/galleryPsTestRg98/providers/Microsoft.Compute/galleries/galleryPsTestGallery6165/applications/galleryPsTestGalleryApplication7825/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}" + }, + "manageActions": { + "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"", + "remove": "del C:\\package " + }, + "enableHealthCheck": false, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "excludeFromLatest": false, + "publishedDate": "2019-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2019-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Succeeded" + } + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications/myGalleryApplicationName/versions?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName/applications/myGalleryApplicationName/versions/myGalleryApplicationVersionName" + } + } + }, + "operationId": "GalleryApplicationVersions_ListByGalleryApplication", + "title": "List gallery Application Versions in a gallery Application Definition." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Update.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Update.json new file mode 100644 index 000000000000..988e8200f4ba --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplicationVersion_Update.json @@ -0,0 +1,78 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryApplicationName": "myGalleryApplicationName", + "galleryApplicationVersionName": "1.0.0", + "galleryApplicationVersion": { + "properties": { + "publishingProfile": { + "source": { + "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}" + }, + "manageActions": { + "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"", + "remove": "del C:\\package " + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "endOfLifeDate": "2019-07-01T07:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + } + } + } + }, + "responses": { + "200": { + "body": { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/applications/versions", + "id": "/subscriptions/01523d7c-60da-455e-adef-521b547922c4/resourceGroups/galleryPsTestRg98/providers/Microsoft.Compute/galleries/galleryPsTestGallery6165/applications/galleryPsTestGalleryApplication7825/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "mediaLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/package.zip?{sasKey}" + }, + "manageActions": { + "install": "powershell -command \"Expand-Archive -Path package.zip -DestinationPath C:\\package\"", + "remove": "del C:\\package " + }, + "enableHealthCheck": false, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "excludeFromLatest": false, + "publishedDate": "2019-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2019-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Updating" + } + } + } + }, + "operationId": "GalleryApplicationVersions_Update", + "title": "Update a simple gallery Application Version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Create.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Create.json new file mode 100644 index 000000000000..e18b120f8129 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Create.json @@ -0,0 +1,132 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryApplicationName": "myGalleryApplicationName", + "galleryApplication": { + "location": "West US", + "properties": { + "description": "This is the gallery application description.", + "eula": "This is the gallery application EULA.", + "privacyStatementUri": "myPrivacyStatementUri}", + "releaseNoteUri": "myReleaseNoteUri", + "supportedOSType": "Windows", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "description": "This is the gallery application description.", + "eula": "This is the gallery application EULA.", + "privacyStatementUri": "myPrivacyStatementUri}", + "releaseNoteUri": "myReleaseNoteUri", + "supportedOSType": "Windows", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + }, + "location": "West US", + "name": "myGalleryApplicationName", + "type": "Microsoft.Compute/galleries", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications/myGalleryApplicationName" + } + }, + "201": { + "body": { + "properties": { + "description": "This is the gallery application description.", + "eula": "This is the gallery application EULA.", + "privacyStatementUri": "myPrivacyStatementUri}", + "releaseNoteUri": "myReleaseNoteUri", + "supportedOSType": "Windows", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + }, + "location": "West US", + "name": "myGalleryApplicationName", + "type": "Microsoft.Compute/galleries", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications/myGalleryApplicationName" + } + }, + "202": { + "body": { + "properties": { + "description": "This is the gallery application description.", + "eula": "This is the gallery application EULA.", + "privacyStatementUri": "myPrivacyStatementUri}", + "releaseNoteUri": "myReleaseNoteUri", + "supportedOSType": "Windows", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + }, + "location": "West US", + "name": "myGalleryApplicationName", + "type": "Microsoft.Compute/galleries", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications/myGalleryApplicationName" + } + } + }, + "operationId": "GalleryApplications_CreateOrUpdate", + "title": "Create or update a simple gallery Application." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Delete.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Delete.json new file mode 100644 index 000000000000..be54bb377696 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Delete.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryApplicationName": "myGalleryApplicationName" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2021-07-01", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2021-07-01" + } + }, + "204": {} + }, + "operationId": "GalleryApplications_Delete", + "title": "Delete a gallery Application." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Get.json new file mode 100644 index 000000000000..68d85d400a7e --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Get.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryApplicationName": "myGalleryApplicationName" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications/myGalleryApplicationName", + "properties": { + "description": "This is the gallery application description.", + "eula": "This is the gallery application EULA.", + "privacyStatementUri": "myPrivacyStatementUri}", + "releaseNoteUri": "myReleaseNoteUri", + "supportedOSType": "Windows", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + }, + "location": "West US", + "name": "myGalleryApplicationName" + } + } + }, + "operationId": "GalleryApplications_Get", + "title": "Get a gallery Application." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_ListByGallery.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_ListByGallery.json new file mode 100644 index 000000000000..63479d80a8d1 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_ListByGallery.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications/myGalleryApplicationName", + "properties": { + "description": "This is the gallery application description.", + "eula": "This is the gallery application EULA.", + "privacyStatementUri": "myPrivacyStatementUri}", + "releaseNoteUri": "myReleaseNoteUri", + "supportedOSType": "Windows", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + }, + "location": "West US", + "name": "myGalleryApplicationName" + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName/applications/myGalleryApplicationName" + } + } + }, + "operationId": "GalleryApplications_ListByGallery", + "title": "List gallery Applications in a gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Update.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Update.json new file mode 100644 index 000000000000..a01948b68d4d --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryApplication_Update.json @@ -0,0 +1,69 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryApplicationName": "myGalleryApplicationName", + "galleryApplication": { + "properties": { + "description": "This is the gallery application description.", + "eula": "This is the gallery application EULA.", + "privacyStatementUri": "myPrivacyStatementUri}", + "releaseNoteUri": "myReleaseNoteUri", + "supportedOSType": "Windows", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "description": "This is the gallery application description.", + "eula": "This is the gallery application EULA.", + "privacyStatementUri": "myPrivacyStatementUri}", + "releaseNoteUri": "myReleaseNoteUri", + "supportedOSType": "Windows", + "customActions": [ + { + "name": "myCustomAction", + "script": "myCustomActionScript", + "description": "This is the custom action description.", + "parameters": [ + { + "name": "myCustomActionParameter", + "required": false, + "type": "String", + "defaultValue": "default value of parameter.", + "description": "This is the description of the parameter" + } + ] + } + ] + }, + "location": "West US", + "name": "myGalleryApplicationName", + "type": "Microsoft.Compute/galleries", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/applications/myGalleryApplicationName" + } + } + }, + "operationId": "GalleryApplications_Update", + "title": "Update a simple gallery Application." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create.json new file mode 100644 index 000000000000..492b828d7d1f --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create.json @@ -0,0 +1,331 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ] + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + } + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "blockDeletionBeforeEndOfLife": false + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup//providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "202": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup//providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_CreateOrUpdate", + "title": "Create or update a simple Gallery Image Version using managed image as source." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithAdditionalReplicaSets.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithAdditionalReplicaSets.json new file mode 100644 index 000000000000..8305c456f366 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithAdditionalReplicaSets.json @@ -0,0 +1,351 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "additionalReplicaSets": [ + { + "storageAccountType": "PreviumV2_LRS", + "regionalReplicaCount": 1 + } + ], + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ] + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + } + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "additionalReplicaSets": [ + { + "storageAccountType": "PreviumV2_LRS", + "regionalReplicaCount": 1 + } + ], + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ] + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup//providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "additionalReplicaSets": [ + { + "storageAccountType": "PreviumV2_LRS", + "regionalReplicaCount": 1 + } + ], + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ] + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "202": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup//providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "additionalReplicaSets": [ + { + "storageAccountType": "PreviumV2_LRS", + "regionalReplicaCount": 1 + } + ], + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ] + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_CreateOrUpdate", + "title": "Create or update a simple Gallery Image Version with Direct Drive replicas" +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithCommunityImageVersionAsSource.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithCommunityImageVersionAsSource.json new file mode 100644 index 000000000000..8d47844b902c --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithCommunityImageVersionAsSource.json @@ -0,0 +1,331 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ] + }, + "storageProfile": { + "source": { + "communityGalleryImageId": "/communityGalleries/{communityGalleryName}/images/{communityGalleryImageName}" + } + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "blockDeletionBeforeEndOfLife": false + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "communityGalleryImageId": "/communityGalleries/{communityGalleryName}/images/{communityGalleryImageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "communityGalleryImageId": "/communityGalleries/{communityGalleryName}/images/{communityGalleryImageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "202": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "communityGalleryImageId": "/communityGalleries/{communityGalleryName}/images/{communityGalleryImageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_CreateOrUpdate", + "title": "Create or update a simple Gallery Image Version using community gallery image as source." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithImageVersionAsSource.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithImageVersionAsSource.json new file mode 100644 index 000000000000..7db2bc2e17de --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithImageVersionAsSource.json @@ -0,0 +1,331 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ] + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionName}" + } + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "blockDeletionBeforeEndOfLife": false + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "202": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_CreateOrUpdate", + "title": "Create or update a simple Gallery Image Version using shared image as source." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithShallowReplicationMode.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithShallowReplicationMode.json new file mode 100644 index 000000000000..dda7da18eb42 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithShallowReplicationMode.json @@ -0,0 +1,191 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "excludeFromLatest": false + } + ], + "replicationMode": "Shallow" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + } + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "blockDeletionBeforeEndOfLife": false + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS", + "replicationMode": "Shallow" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS", + "replicationMode": "Shallow" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "202": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS", + "replicationMode": "Shallow" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_CreateOrUpdate", + "title": "Create or update a simple Gallery Image Version using shallow replication mode." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithSnapshotsAsSource.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithSnapshotsAsSource.json new file mode 100644 index 000000000000..fd3ca284ebf3 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithSnapshotsAsSource.json @@ -0,0 +1,320 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ] + }, + "storageProfile": { + "osDiskImage": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{osSnapshotName}" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/disks/{dataDiskName}" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "blockDeletionBeforeEndOfLife": false + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{osSnapshotName}" + }, + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/disks/{dataDiskName}" + }, + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{osSnapshotName}" + }, + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/disks/{dataDiskName}" + }, + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "202": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{osSnapshotName}" + }, + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/disks/{dataDiskName}" + }, + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_CreateOrUpdate", + "title": "Create or update a simple Gallery Image Version using snapshots as a source." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithStorageAccountStrategy.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithStorageAccountStrategy.json new file mode 100644 index 000000000000..a2b0ddefd157 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithStorageAccountStrategy.json @@ -0,0 +1,163 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US" + }, + { + "name": "East US" + }, + { + "name": "East US 2", + "storageAccountType": "Premium_LRS" + } + ], + "storageAccountStrategy": "PreferStandard_ZRS" + }, + "storageProfile": { + "source": { + "virtualMachineId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vmName}" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS" + }, + { + "name": "East US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_ZRS" + }, + { + "name": "East US 2", + "regionalReplicaCount": 1, + "storageAccountType": "Premium_LRS" + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountStrategy": "PreferStandard_ZRS", + "excludeFromLatest": false + }, + "storageProfile": { + "source": { + "virtualMachineId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vmName}" + } + }, + "safetyProfile": { + "reportedForPolicyViolation": false, + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1 + }, + { + "name": "East US", + "regionalReplicaCount": 1 + }, + { + "name": "East US 2", + "regionalReplicaCount": 1, + "storageAccountType": "Premium_LRS" + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountStrategy": "PreferStandard_ZRS", + "excludeFromLatest": false + }, + "storageProfile": { + "source": { + "virtualMachineId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vmName}" + } + }, + "safetyProfile": { + "reportedForPolicyViolation": false, + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "202": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS" + }, + { + "name": "East US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_ZRS" + }, + { + "name": "East US 2", + "regionalReplicaCount": 1, + "storageAccountType": "Premium_LRS" + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountStrategy": "PreferStandard_ZRS", + "excludeFromLatest": false + }, + "storageProfile": { + "source": { + "virtualMachineId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vmName}" + } + }, + "safetyProfile": { + "reportedForPolicyViolation": false, + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_CreateOrUpdate", + "title": "Create or update a simple Gallery Image Version with StorageAccountStrategy and regional StorageAccountType override." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithTargetExtendedLocations.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithTargetExtendedLocations.json new file mode 100644 index 000000000000..2290e2f94d8b --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithTargetExtendedLocations.json @@ -0,0 +1,373 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ] + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + } + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "blockDeletionBeforeEndOfLife": false + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "targetExtendedLocations": [ + { + "name": "West US", + "extendedLocation": { + "name": "microsoftlosangeles1", + "type": "EdgeZone" + }, + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "storageAccountType": "StandardSSD_LRS(default)", + "extendedLocationReplicaCount": 1 + }, + { + "name": "East US", + "extendedLocation": { + "name": "microsoftnewyork1", + "type": "EdgeZone" + }, + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "storageAccountType": "StandardSSD_LRS(default)", + "extendedLocationReplicaCount": 1 + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "202": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_CreateOrUpdate", + "title": "Create or update a simple gallery image version with target extended locations specified." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithVHD.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithVHD.json new file mode 100644 index 000000000000..fe0e71b32ebe --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithVHD.json @@ -0,0 +1,278 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet", + "lun": 1 + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ] + }, + "storageProfile": { + "osDiskImage": { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "blockDeletionBeforeEndOfLife": false + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "202": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_CreateOrUpdate", + "title": "Create or update a simple Gallery Image Version using vhd as a source." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithVHD_UefiSettings.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithVHD_UefiSettings.json new file mode 100644 index 000000000000..28dae2e5a36d --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithVHD_UefiSettings.json @@ -0,0 +1,410 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet", + "lun": 1 + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ] + }, + "storageProfile": { + "osDiskImage": { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "blockDeletionBeforeEndOfLife": false + }, + "securityProfile": { + "uefiSettings": { + "signatureTemplateNames": [ + "MicrosoftUefiCertificateAuthorityTemplate" + ], + "additionalSignatures": { + "kek": [ + { + "type": "sha256", + "value": [ + "" + ] + } + ], + "db": [ + { + "type": "x509", + "value": [ + "" + ] + } + ], + "dbx": [ + { + "type": "x509", + "value": [ + "" + ] + } + ] + } + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "securityProfile": { + "uefiSettings": { + "signatureTemplateNames": [ + "MicrosoftUefiCertificateAuthorityTemplate" + ], + "additionalSignatures": { + "kek": [ + { + "type": "sha256", + "value": [ + "" + ] + } + ], + "db": [ + { + "type": "x509", + "value": [ + "" + ] + } + ], + "dbx": [ + { + "type": "x509", + "value": [ + "" + ] + } + ] + } + } + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "securityProfile": { + "uefiSettings": { + "signatureTemplateNames": [ + "MicrosoftUefiCertificateAuthorityTemplate" + ], + "additionalSignatures": { + "kek": [ + { + "type": "sha256", + "value": [ + "" + ] + } + ], + "db": [ + { + "type": "x509", + "value": [ + "" + ] + } + ], + "dbx": [ + { + "type": "x509", + "value": [ + "" + ] + } + ] + } + } + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "202": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "securityProfile": { + "uefiSettings": { + "signatureTemplateNames": [ + "MicrosoftUefiCertificateAuthorityTemplate" + ], + "additionalSignatures": { + "kek": [ + { + "type": "sha256", + "value": [ + "" + ] + } + ], + "db": [ + { + "type": "x509", + "value": [ + "" + ] + } + ], + "dbx": [ + { + "type": "x509", + "value": [ + "" + ] + } + ] + } + } + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_CreateOrUpdate", + "title": "Create or update a simple Gallery Image Version using vhd as a source with custom UEFI keys." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithVmAsSource.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithVmAsSource.json new file mode 100644 index 000000000000..d67d01d3a229 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Create_WithVmAsSource.json @@ -0,0 +1,331 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ] + }, + "storageProfile": { + "source": { + "virtualMachineId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vmName}" + } + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "blockDeletionBeforeEndOfLife": false + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "virtualMachineId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vmName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "virtualMachineId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vmName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "202": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "virtualMachineId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vmName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_CreateOrUpdate", + "title": "Create or update a simple Gallery Image Version using VM as source." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Delete.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Delete.json new file mode 100644 index 000000000000..e291fe0e78bc --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Delete.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus2/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2022-01-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus2/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2022-01-03" + } + }, + "204": {} + }, + "operationId": "GalleryImageVersions_Delete", + "title": "Delete a gallery image version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get.json new file mode 100644 index 000000000000..60b4788a1725 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get.json @@ -0,0 +1,85 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0" + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Get", + "title": "Get a gallery image version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithReplicationStatus.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithReplicationStatus.json new file mode 100644 index 000000000000..f926b467ccb3 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithReplicationStatus.json @@ -0,0 +1,103 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "$expand": "ReplicationStatus" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "replicationStatus": { + "aggregatedState": "Completed", + "summary": [ + { + "region": "West US", + "state": "Completed", + "details": "", + "progress": 100 + }, + { + "region": "East US", + "state": "Completed", + "details": "", + "progress": 100 + } + ] + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Get", + "title": "Get a gallery image version with replication status." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithSnapshotsAsSource.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithSnapshotsAsSource.json new file mode 100644 index 000000000000..a33402d76420 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithSnapshotsAsSource.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{snapshotName}" + }, + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{diskSnapshotName}" + }, + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Get", + "title": "Get a gallery image version with snapshots as a source." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithValidationProfile.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithValidationProfile.json new file mode 100644 index 000000000000..fd4ea55c236e --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithValidationProfile.json @@ -0,0 +1,120 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "$expand": "ValidationProfile" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ] + }, + "validationsProfile": { + "executedValidations": [ + { + "type": "LinuxSecurityBaseline", + "status": "Failed", + "version": "beta", + "executionTime": "2018-01-01T00:00:00Z" + }, + { + "type": "AzCertify", + "status": "Succeeded", + "version": "10.0.4", + "executionTime": "2018-01-01T00:00:00Z" + } + ], + "platformAttributes": [ + { + "name": "source_image_publisher", + "value": "publishValue" + }, + { + "name": "source_image_offer", + "value": "OfferValue" + }, + { + "name": "source_image_sku", + "value": "SkuValue" + }, + { + "name": "source_image_version", + "value": "1.0.0" + } + ], + "validationEtag": "2018-01-01T00:00:00Z" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Get", + "title": "Get a gallery image version with validation profile." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithValidationProfileAndReplicationStatus.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithValidationProfileAndReplicationStatus.json new file mode 100644 index 000000000000..9fee85475d5a --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithValidationProfileAndReplicationStatus.json @@ -0,0 +1,137 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "$expand": "ValidationProfile,ReplicationStatus" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ] + }, + "replicationStatus": { + "aggregatedState": "Completed", + "summary": [ + { + "region": "West US", + "state": "Completed", + "details": "", + "progress": 100 + }, + { + "region": "East US", + "state": "Completed", + "details": "", + "progress": 100 + } + ] + }, + "validationsProfile": { + "executedValidations": [ + { + "type": "LinuxSecurityBaseline", + "status": "Failed", + "version": "beta", + "executionTime": "2018-01-01T00:00:00Z" + }, + { + "type": "AzCertify", + "status": "Succeeded", + "version": "10.0.4", + "executionTime": "2018-01-01T00:00:00Z" + } + ], + "platformAttributes": [ + { + "name": "source_image_publisher", + "value": "publishValue" + }, + { + "name": "source_image_offer", + "value": "OfferValue" + }, + { + "name": "source_image_sku", + "value": "SkuValue" + }, + { + "name": "source_image_version", + "value": "1.0.0" + } + ], + "validationEtag": "2018-01-01T00:00:00Z" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Get", + "title": "Get a gallery image version with validation profile and replication status." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithVhdAsSource.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithVhdAsSource.json new file mode 100644 index 000000000000..4f30bdfb28cf --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Get_WithVhdAsSource.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Get", + "title": "Get a gallery image version with vhd as a source." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_ListByGalleryImage.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_ListByGalleryImage.json new file mode 100644 index 000000000000..3dc3c1ef4d92 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_ListByGalleryImage.json @@ -0,0 +1,89 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/images/myGalleryImageName/versions?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName/images/myGalleryImageName/versions/myGalleryImageVersionName" + } + } + }, + "operationId": "GalleryImageVersions_ListByGalleryImage", + "title": "List gallery image versions in a gallery image definition." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Update.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Update.json new file mode 100644 index 000000000000..0383b62471aa --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Update.json @@ -0,0 +1,91 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1 + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS" + } + ] + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Update", + "title": "Update a simple Gallery Image Version (Managed Image as source)." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Update_RestoreSoftDeleted.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Update_RestoreSoftDeleted.json new file mode 100644 index 000000000000..e23cbdde879b --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Update_RestoreSoftDeleted.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "properties": { + "restore": true, + "storageProfile": {} + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Update", + "title": "Restore a Soft Deleted Gallery Image Version" +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Update_WithoutSourceId.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Update_WithoutSourceId.json new file mode 100644 index 000000000000..f2b5b58bbae1 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImageVersion_Update_WithoutSourceId.json @@ -0,0 +1,87 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1 + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS" + } + ] + }, + "storageProfile": {} + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Update", + "title": "Update a simple Gallery Image Version without source id." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Create.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Create.json new file mode 100644 index 000000000000..4daf1696cec1 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Create.json @@ -0,0 +1,80 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImage": { + "location": "West US", + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/Images/myGalleryImageName", + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryImageName" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/Images/myGalleryImageName", + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "myGalleryImageName" + } + }, + "202": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/Images/myGalleryImageName", + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryImageName" + } + } + }, + "operationId": "GalleryImages_CreateOrUpdate", + "title": "Create or update a simple gallery image." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Delete.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Delete.json new file mode 100644 index 000000000000..20726e51d48d --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Delete.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/CentralIndia/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2021-10-01", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/CentralIndia/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2021-10-01" + } + }, + "204": {} + }, + "operationId": "GalleryImages_Delete", + "title": "Delete a gallery image." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Get.json new file mode 100644 index 000000000000..aca3241675ba --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Get.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName" + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/galleries/myGallery/Images/myGalleryImageName", + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryImageName" + } + } + }, + "operationId": "GalleryImages_Get", + "title": "Get a gallery image." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_ListByGallery.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_ListByGallery.json new file mode 100644 index 000000000000..76295c490543 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_ListByGallery.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName", + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryImageName" + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/images?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName/images/myGalleryImageName" + } + } + }, + "operationId": "GalleryImages_ListByGallery", + "title": "List gallery images in a gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Update.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Update.json new file mode 100644 index 000000000000..b11de15bb6fb --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_Update.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImage": { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryImageName" + } + } + }, + "operationId": "GalleryImages_Update", + "title": "Update a simple gallery image." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_UpdateFeatures.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_UpdateFeatures.json new file mode 100644 index 000000000000..f3841d2795f7 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GalleryImage_UpdateFeatures.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImage": { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V2", + "allowUpdateImage": true, + "features": [ + { + "name": "SecurityType", + "value": "TrustedLaunch", + "startsAtVersion": "2.0.0" + } + ], + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V2", + "features": [ + { + "name": "SecurityType", + "value": "TrustedLaunch", + "startsAtVersion": "2.0.0" + } + ], + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryImageName" + } + } + }, + "operationId": "GalleryImages_Update", + "title": "Update a gallery image feature." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GallerySoftDeletedResource_ListByArtifactName.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GallerySoftDeletedResource_ListByArtifactName.json new file mode 100644 index 000000000000..a918531081e8 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/GallerySoftDeletedResource_ListByArtifactName.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "artifactType": "images", + "artifactName": "myGalleryImageName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.0.0", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/softDeletedArtifactTypes/Images/artifacts/myGalleryImageName/versions/1.0.0", + "type": "Microsoft.Compute/galleries/softDeletedArtifactTypes/artifacts/versions", + "location": "West US", + "properties": { + "resourceArmId": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/images/myGalleryImageName/versions/1.0.0", + "softDeletedTime": "2024-10-17T13:01:05+00:00", + "softDeletedArtifactType": "Images" + } + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/softDeletedArtifactTypes/images/artifacts/myGalleryImageName/versions?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName/softDeletedArtifactTypes/images/artifacts/myGalleryImageName/versions/myGalleryImageVersionName" + } + } + }, + "operationId": "SoftDeletedResource_ListByArtifactName", + "title": "List soft-deleted resources of an artifact in the gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_AddToSharingProfile.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_AddToSharingProfile.json new file mode 100644 index 000000000000..26ccaeca9dc0 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_AddToSharingProfile.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "sharingUpdate": { + "operationType": "Add", + "groups": [ + { + "type": "Subscriptions", + "ids": [ + "34a4ab42-0d72-47d9-bd1a-aed207386dac", + "380fd389-260b-41aa-bad9-0a83108c370b" + ] + }, + { + "type": "AADTenants", + "ids": [ + "c24c76aa-8897-4027-9b03-8f7928b54ff6" + ] + } + ] + } + }, + "responses": { + "200": { + "body": { + "operationType": "Add", + "groups": [ + { + "type": "Subscriptions", + "ids": [ + "34a4ab42-0d72-47d9-bd1a-aed207386dac", + "380fd389-260b-41aa-bad9-0a83108c370b" + ] + }, + { + "type": "AADTenants", + "ids": [ + "c24c76aa-8897-4027-9b03-8f7928b54ff6" + ] + } + ] + } + }, + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/share?api-version=2025-03-03" + }, + "body": { + "operationType": "Add", + "groups": [ + { + "type": "Subscriptions", + "ids": [ + "34a4ab42-0d72-47d9-bd1a-aed207386dac", + "380fd389-260b-41aa-bad9-0a83108c370b" + ] + }, + { + "type": "AADTenants", + "ids": [ + "c24c76aa-8897-4027-9b03-8f7928b54ff6" + ] + } + ] + } + } + }, + "operationId": "GallerySharingProfile_Update", + "title": "Add sharing id to the sharing profile of a gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create.json new file mode 100644 index 000000000000..cca13f5081e7 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create.json @@ -0,0 +1,60 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "gallery": { + "location": "West US", + "properties": { + "description": "This is the gallery description." + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "202": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_CreateOrUpdate", + "title": "Create or update a simple gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create_SoftDeletionEnabled.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create_SoftDeletionEnabled.json new file mode 100644 index 000000000000..c9a08000595c --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create_SoftDeletionEnabled.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "gallery": { + "location": "West US", + "properties": { + "description": "This is the gallery description.", + "softDeletePolicy": { + "isSoftDeleteEnabled": true + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating", + "softDeletePolicy": { + "isSoftDeleteEnabled": true + } + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Creating", + "softDeletePolicy": { + "isSoftDeleteEnabled": true + } + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "202": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating", + "softDeletePolicy": { + "isSoftDeleteEnabled": true + } + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_CreateOrUpdate", + "title": "Create or update a simple gallery with soft deletion enabled." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create_WithManagedIdentity.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create_WithManagedIdentity.json new file mode 100644 index 000000000000..644031c08b27 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create_WithManagedIdentity.json @@ -0,0 +1,96 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "gallery": { + "location": "West US", + "identity": { + "type": "SystemAssigned, UserAssigned", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {} + } + }, + "properties": { + "description": "This is the gallery description." + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "identity": { + "type": "SystemAssigned, UserAssigned", + "principalId": "00000000-0000-0000-0000-000000000000", + "tenantId": "00000000-0000-0000-0000-000000000000", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {} + } + }, + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "identity": { + "type": "SystemAssigned, UserAssigned", + "principalId": "00000000-0000-0000-0000-000000000000", + "tenantId": "00000000-0000-0000-0000-000000000000", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {} + } + }, + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Creating", + "softDeletePolicy": { + "isSoftDeleteEnabled": true + } + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "202": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "identity": { + "type": "SystemAssigned, UserAssigned", + "principalId": "00000000-0000-0000-0000-000000000000", + "tenantId": "00000000-0000-0000-0000-000000000000", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {} + } + }, + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating", + "softDeletePolicy": { + "isSoftDeleteEnabled": true + } + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_CreateOrUpdate", + "title": "Create or update a simple gallery with system-assigned and user-assigned managed identities." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create_WithSharingProfile.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create_WithSharingProfile.json new file mode 100644 index 000000000000..c562fbe8a791 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Create_WithSharingProfile.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "gallery": { + "location": "West US", + "properties": { + "description": "This is the gallery description.", + "sharingProfile": { + "permissions": "Groups" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating", + "sharingProfile": { + "permissions": "Groups" + } + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Creating", + "sharingProfile": { + "permissions": "Groups" + } + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "202": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating", + "sharingProfile": { + "permissions": "Groups" + } + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_CreateOrUpdate", + "title": "Create or update a simple gallery with sharing profile." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Delete.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Delete.json new file mode 100644 index 000000000000..957f0498daad --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Delete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2018-06-01", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2018-06-01" + } + }, + "204": {} + }, + "operationId": "Galleries_Delete", + "title": "Delete a gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_EnableCommunityGallery.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_EnableCommunityGallery.json new file mode 100644 index 000000000000..b31a5a982ef1 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_EnableCommunityGallery.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "sharingUpdate": { + "operationType": "EnableCommunity" + } + }, + "responses": { + "200": { + "body": { + "operationType": "EnableCommunity" + } + }, + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/share?api-version=2025-03-03" + }, + "body": { + "operationType": "EnableCommunity" + } + } + }, + "operationId": "GallerySharingProfile_Update", + "title": "share a gallery to community." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get.json new file mode 100644 index 000000000000..9f433a1c575f --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_Get", + "title": "Get a gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get_WithExpandSharingProfileGroups.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get_WithExpandSharingProfileGroups.json new file mode 100644 index 000000000000..213611b1748f --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get_WithExpandSharingProfileGroups.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "$expand": "SharingProfile/Groups" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "sharingProfile": { + "permissions": "Groups", + "groups": [ + { + "type": "Subscriptions", + "ids": [ + "34a4ab42-0d72-47d9-bd1a-aed207386dac", + "380fd389-260b-41aa-bad9-0a83108c370b" + ] + }, + { + "type": "AADTenants", + "ids": [ + "c24c76aa-8897-4027-9b03-8f7928b54ff6" + ] + } + ] + } + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_Get", + "title": "Get a gallery with expand sharingProfile groups." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get_WithManagedIdentity.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get_WithManagedIdentity.json new file mode 100644 index 000000000000..a7ae91c929f3 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get_WithManagedIdentity.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "identity": { + "type": "SystemAssigned, UserAssigned", + "principalId": "00000000-0000-0000-0000-000000000000", + "tenantId": "00000000-0000-0000-0000-000000000000", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": { + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + } + } + }, + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_Get", + "title": "Get a gallery with system-assigned and user-assigned managed identities." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get_WithSelectPermissions.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get_WithSelectPermissions.json new file mode 100644 index 000000000000..7e4b1be365c5 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Get_WithSelectPermissions.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "$select": "Permissions" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "sharingProfile": { + "permissions": "Groups", + "groups": [ + { + "type": "Subscriptions", + "ids": [ + "34a4ab42-0d72-47d9-bd1a-aed207386dac", + "380fd389-260b-41aa-bad9-0a83108c370b" + ] + }, + { + "type": "AADTenants", + "ids": [ + "c24c76aa-8897-4027-9b03-8f7928b54ff6" + ] + } + ] + } + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_Get", + "title": "Get a gallery with select permissions." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_ListByResourceGroup.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_ListByResourceGroup.json new file mode 100644 index 000000000000..593b551391a4 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_ListByResourceGroup.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryName", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName" + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName" + } + } + }, + "operationId": "Galleries_ListByResourceGroup", + "title": "List galleries in a resource group." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_ListBySubscription.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_ListBySubscription.json new file mode 100644 index 000000000000..ff6b179db32f --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_ListBySubscription.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "api-version": "2025-03-03" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryName", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName" + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/providers/Microsoft.Compute/galleries?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName" + } + } + }, + "operationId": "Galleries_List", + "title": "List galleries in a subscription." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_ResetSharingProfile.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_ResetSharingProfile.json new file mode 100644 index 000000000000..2d459d985dae --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_ResetSharingProfile.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "sharingUpdate": { + "operationType": "Reset" + } + }, + "responses": { + "200": { + "body": { + "operationType": "Reset" + } + }, + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/share?api-version=2025-03-03" + }, + "body": { + "operationType": "Reset" + } + } + }, + "operationId": "GallerySharingProfile_Update", + "title": "reset sharing profile of a gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Update.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Update.json new file mode 100644 index 000000000000..df47d7475b93 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryExamples/Gallery_Update.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "gallery": { + "properties": { + "description": "This is the gallery description." + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_Update", + "title": "Update a simple gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Create.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Create.json new file mode 100644 index 000000000000..401701757974 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Create.json @@ -0,0 +1,182 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName", + "inVMAccessControlProfileVersionName": "1.0.0", + "galleryInVMAccessControlProfileVersion": { + "location": "West US", + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "rules": { + "privileges": [ + { + "name": "GoalState", + "path": "/machine", + "queryParameters": { + "comp": "goalstate" + } + } + ], + "roles": [ + { + "name": "Provisioning", + "privileges": [ + "GoalState" + ] + } + ], + "identities": [ + { + "name": "WinPA", + "userName": "SYSTEM", + "groupName": "Administrators", + "exePath": "C:\\Windows\\System32\\cscript.exe", + "processName": "cscript" + } + ], + "roleAssignments": [ + { + "role": "Provisioning", + "identities": [ + "WinPA" + ] + } + ] + }, + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + } + ], + "excludeFromLatest": false + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions/1.0.0", + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "rules": { + "privileges": [ + { + "name": "GoalState", + "path": "/machine", + "queryParameters": { + "comp": "goalstate" + } + } + ], + "roles": [ + { + "name": "Provisioning", + "privileges": [ + "GoalState" + ] + } + ], + "identities": [ + { + "name": "WinPA", + "userName": "SYSTEM", + "groupName": "Administrators", + "exePath": "C:\\Windows\\System32\\cscript.exe", + "processName": "cscript" + } + ], + "roleAssignments": [ + { + "role": "Provisioning", + "identities": [ + "WinPA" + ] + } + ] + }, + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + } + ], + "excludeFromLatest": false, + "publishedDate": "2024-01-01T00:00:00Z", + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions/1.0.0", + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "rules": { + "privileges": [ + { + "name": "GoalState", + "path": "/machine", + "queryParameters": { + "comp": "goalstate" + } + } + ], + "roles": [ + { + "name": "Provisioning", + "privileges": [ + "GoalState" + ] + } + ], + "identities": [ + { + "name": "WinPA", + "userName": "SYSTEM", + "groupName": "Administrators", + "exePath": "C:\\Windows\\System32\\cscript.exe", + "processName": "cscript" + } + ], + "roleAssignments": [ + { + "role": "Provisioning", + "identities": [ + "WinPA" + ] + } + ] + }, + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + } + ], + "excludeFromLatest": false, + "publishedDate": "2024-01-01T00:00:00Z", + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryInVMAccessControlProfileVersions_CreateOrUpdate", + "title": "Create or update a Gallery InVMAccessControlProfile Version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Delete.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Delete.json new file mode 100644 index 000000000000..182dfacb5660 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Delete.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName", + "inVMAccessControlProfileVersionName": "1.0.0" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + } + }, + "204": {} + }, + "operationId": "GalleryInVMAccessControlProfileVersions_Delete", + "title": "Delete a gallery inVMAccessControlProfile version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Get.json new file mode 100644 index 000000000000..26ae0854c093 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Get.json @@ -0,0 +1,75 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName", + "inVMAccessControlProfileVersionName": "1.0.0" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions/1.0.0", + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "rules": { + "privileges": [ + { + "name": "GoalState", + "path": "/machine", + "queryParameters": { + "comp": "goalstate" + } + } + ], + "roles": [ + { + "name": "Provisioning", + "privileges": [ + "GoalState" + ] + } + ], + "identities": [ + { + "name": "WinPA", + "userName": "SYSTEM", + "groupName": "Administrators", + "exePath": "C:\\Windows\\System32\\cscript.exe", + "processName": "cscript" + } + ], + "roleAssignments": [ + { + "role": "Provisioning", + "identities": [ + "WinPA" + ] + } + ] + }, + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + }, + { + "name": "East US" + } + ], + "excludeFromLatest": false, + "publishedDate": "2024-01-01T00:00:00Z", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryInVMAccessControlProfileVersions_Get", + "title": "Get a gallery inVMAccessControlProfile version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_ListByGalleryInVMAccessControlProfile.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_ListByGalleryInVMAccessControlProfile.json new file mode 100644 index 000000000000..36c0a4efce9c --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_ListByGalleryInVMAccessControlProfile.json @@ -0,0 +1,79 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions/1.0.0", + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "rules": { + "privileges": [ + { + "name": "GoalState", + "path": "/machine", + "queryParameters": { + "comp": "goalstate" + } + } + ], + "roles": [ + { + "name": "Provisioning", + "privileges": [ + "GoalState" + ] + } + ], + "identities": [ + { + "name": "WinPA", + "userName": "SYSTEM", + "groupName": "Administrators", + "exePath": "C:\\Windows\\System32\\cscript.exe", + "processName": "cscript" + } + ], + "roleAssignments": [ + { + "role": "Provisioning", + "identities": [ + "WinPA" + ] + } + ] + }, + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + }, + { + "name": "East US" + } + ], + "excludeFromLatest": false, + "publishedDate": "2024-01-01T00:00:00Z", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions/myInVMAccessControlProfileVersionName" + } + } + }, + "operationId": "GalleryInVMAccessControlProfileVersions_ListByGalleryInVMAccessControlProfile", + "title": "List gallery inVMAccessControlProfile versions in a gallery inVMAccessControlProfile." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Update.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Update.json new file mode 100644 index 000000000000..b80e892b44eb --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Update.json @@ -0,0 +1,93 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName", + "inVMAccessControlProfileVersionName": "1.0.0", + "galleryInVMAccessControlProfileVersion": { + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + }, + { + "name": "East US" + } + ], + "excludeFromLatest": false + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions/1.0.0", + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "rules": { + "privileges": [ + { + "name": "GoalState", + "path": "/machine", + "queryParameters": { + "comp": "goalstate" + } + } + ], + "roles": [ + { + "name": "Provisioning", + "privileges": [ + "GoalState" + ] + } + ], + "identities": [ + { + "name": "WinPA", + "userName": "SYSTEM", + "groupName": "Administrators", + "exePath": "C:\\Windows\\System32\\cscript.exe", + "processName": "cscript" + } + ], + "roleAssignments": [ + { + "role": "Provisioning", + "identities": [ + "WinPA" + ] + } + ] + }, + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + }, + { + "name": "East US" + } + ], + "excludeFromLatest": false, + "publishedDate": "2024-01-01T00:00:00Z", + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryInVMAccessControlProfileVersions_Update", + "title": "Update a Gallery InVMAccessControlProfile Version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Create.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Create.json new file mode 100644 index 000000000000..9ab24143f890 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Create.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName", + "galleryInVMAccessControlProfile": { + "location": "West US", + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName", + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer", + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myInVMAccessControlProfileName" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName", + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer", + "provisioningState": "Creating" + }, + "location": "West US", + "name": "myInVMAccessControlProfileName" + } + } + }, + "operationId": "GalleryInVMAccessControlProfiles_CreateOrUpdate", + "title": "Create or update a gallery inVMAccessControlProfile." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Delete.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Delete.json new file mode 100644 index 000000000000..392e168b797f --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Delete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + } + }, + "204": {} + }, + "operationId": "GalleryInVMAccessControlProfiles_Delete", + "title": "Delete a gallery inVMAccessControlProfile." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Get.json new file mode 100644 index 000000000000..30a9ef206a03 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Get.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName", + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myInVMAccessControlProfileName" + } + } + }, + "operationId": "GalleryInVMAccessControlProfiles_Get", + "title": "Get a gallery inVMAccessControlProfile." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_ListByGallery.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_ListByGallery.json new file mode 100644 index 000000000000..3d53d2c9365f --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_ListByGallery.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName", + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myInVMAccessControlProfileName" + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/inVMAccessControlProfiles?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName/inVMAccessControlProfiles/myInVMAccessControlProfileName" + } + } + }, + "operationId": "GalleryInVMAccessControlProfiles_ListByGallery", + "title": "List gallery inVMAccessControlProfiles in a gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Update.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Update.json new file mode 100644 index 000000000000..d552c613781b --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Update.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName", + "galleryInVMAccessControlProfile": { + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName", + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer", + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myInVMAccessControlProfileName" + } + } + }, + "operationId": "GalleryInVMAccessControlProfiles_Update", + "title": "Update a gallery inVMAccessControlProfile." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Create.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Create.json new file mode 100644 index 000000000000..f4f75f158788 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Create.json @@ -0,0 +1,269 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScriptVersionName": "1.0.0", + "galleryScriptVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1?{sasKey}", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "endOfLifeDate": "2027-07-01T07:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + } + } + } + }, + "responses": { + "200": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + }, + "body": { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/scripts/versions", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScript/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Updating" + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + }, + "body": { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/scripts/versions", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScript/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Creating" + } + } + } + }, + "operationId": "GalleryScriptVersions_CreateOrUpdate", + "title": "Create or update a simple gallery Script Version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Delete.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Delete.json new file mode 100644 index 000000000000..44e3494d72e6 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Delete.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroupName", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScriptVersionName": "1.0.0" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + } + }, + "204": {} + }, + "operationId": "GalleryScriptVersions_Delete", + "title": "Delete a gallery Script Version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Get.json new file mode 100644 index 000000000000..ca3b785de363 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Get.json @@ -0,0 +1,99 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroupName", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScriptVersionName": "1.0.0" + }, + "responses": { + "200": { + "body": { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/scripts/versions", + "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "GalleryScriptVersions_Get", + "title": "Get a gallery Script Version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Get_WithReplicationStatus.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Get_WithReplicationStatus.json new file mode 100644 index 000000000000..926b52560875 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Get_WithReplicationStatus.json @@ -0,0 +1,110 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroupName", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScriptVersionName": "1.0.0", + "$expand": "ReplicationStatus" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "replicationStatus": { + "aggregatedState": "Completed", + "summary": [ + { + "region": "West US", + "state": "Completed", + "details": "", + "progress": 100 + } + ] + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryScriptVersions_Get", + "title": "Get a gallery Script Version with replication status." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_ListByGalleryScript.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_ListByGalleryScript.json new file mode 100644 index 000000000000..fc50d025f30e --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_ListByGalleryScript.json @@ -0,0 +1,149 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroupName", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/script/versions", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript1.ps1", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Succeeded" + } + }, + { + "location": "West US", + "name": "1.0.1", + "type": "Microsoft.Compute/galleries/script/versions", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName/versions/1.0.1", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript2.ps1", + "parameters": [ + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Succeeded" + } + } + ], + "nextLink": "https://microsoft.com/nextLinkExample" + } + } + }, + "operationId": "GalleryScriptVersions_ListByGalleryScript", + "title": "List gallery Script Versions in a gallery Script Definition." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Update.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Update.json new file mode 100644 index 000000000000..d15f8c26b33d --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScriptVersion_Update.json @@ -0,0 +1,181 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroupName", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScriptVersionName": "1.0.0", + "galleryScriptVersion": { + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1?{sasKey}", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "endOfLifeDate": "2027-07-01T07:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + } + } + } + }, + "responses": { + "200": { + "body": { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/scripts/versions", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Updating" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + } + } + }, + "operationId": "GalleryScriptVersions_Update", + "title": "Update a simple gallery Script Version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Create.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Create.json new file mode 100644 index 000000000000..2dbbf0186de5 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Create.json @@ -0,0 +1,61 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScript": { + "location": "West US", + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows" + } + } + }, + "responses": { + "200": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03" + }, + "body": { + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows", + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryScriptName", + "type": "Microsoft.Compute/galleries", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName" + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03" + }, + "body": { + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows", + "provisioningState": "Creating" + }, + "location": "West US", + "name": "myGalleryApplicationName", + "type": "Microsoft.Compute/galleries", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName" + } + } + }, + "operationId": "GalleryScripts_CreateOrUpdate", + "title": "Create or update a simple gallery Script." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Delete.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Delete.json new file mode 100644 index 000000000000..f689a0888463 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Delete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-0000-40bc-b7ed-000000000000?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-0000-40bc-b7ed-000000000000?monitor=true&api-version=2025-03-03" + } + }, + "204": {} + }, + "operationId": "GalleryScripts_Delete", + "title": "Delete a gallery Script." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Get.json new file mode 100644 index 000000000000..c1b91778ca0c --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Get.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName", + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryScriptName" + } + } + }, + "operationId": "GalleryScripts_Get", + "title": "Get a gallery Script." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_ListByGallery.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_ListByGallery.json new file mode 100644 index 000000000000..bb74a56372cc --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_ListByGallery.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName", + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryScriptName" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName2", + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryScriptName2" + } + ], + "nextLink": "https://microsoft.com/nextLinkExample" + } + } + }, + "operationId": "GalleryScripts_ListByGallery", + "title": "List gallery Scripts in a gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Update.json b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Update.json new file mode 100644 index 000000000000..05a123c9ca3e --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/galleryScriptExamples/GalleryScript_Update.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScript": { + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "myPrivacyStatementUri", + "releaseNoteUri": "myReleaseNoteUri", + "supportedOSType": "Windows" + }, + "location": "West US", + "name": "myGalleryScriptName", + "type": "Microsoft.Compute/galleries", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName" + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + } + } + }, + "operationId": "GalleryScripts_Update", + "title": "Update a simple gallery Script." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImageVersion_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImageVersion_Get.json new file mode 100644 index 000000000000..0c15842d397f --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImageVersion_Get.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "galleryUniqueName": "galleryUniqueName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "myGalleryImageVersionName" + }, + "responses": { + "200": { + "body": { + "properties": { + "publishedDate": "2018-03-20T09:12:28Z", + "endOfLifeDate": "2022-03-20T09:12:28Z", + "excludeFromLatest": false, + "storageProfile": { + "osDiskImage": { + "diskSizeGB": 29, + "hostCaching": "None" + } + }, + "artifactTags": { + "ShareTag-Official1PGallery": "Official1PGallery" + } + }, + "location": "myLocation", + "name": "myGalleryImageVersionName", + "identifier": { + "uniqueId": "/SharedGalleries/galleryUniqueName/Images/myGalleryImageName/Versions/myGalleryImageVersionName" + } + } + } + }, + "operationId": "SharedGalleryImageVersions_Get", + "title": "Get a shared gallery image version." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImageVersions_List.json b/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImageVersions_List.json new file mode 100644 index 000000000000..61097f3f6609 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImageVersions_List.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "galleryUniqueName": "galleryUniqueName", + "galleryImageName": "myGalleryImageName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "publishedDate": "2018-03-20T09:12:28Z", + "endOfLifeDate": "2022-03-20T09:12:28Z", + "excludeFromLatest": false, + "storageProfile": { + "osDiskImage": { + "diskSizeGB": 29, + "hostCaching": "None" + } + }, + "artifactTags": { + "ShareTag-Official1PGallery": "Official1PGallery" + } + }, + "location": "myLocation", + "name": "myGalleryImageVersionName", + "identifier": { + "uniqueId": "/SharedGalleries/galleryUniqueName/Images/myGalleryImageName/Versions/myGalleryImageVersionName" + } + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/providers/Microsoft.Compute/sharedGalleries/galleryUniqueName/images/myGalleryImageName/versions?$skiptoken=token/Subscriptions/subscriptionId/galleries/galleryUniqueName/images/myGalleryImageName/versions/myGalleryImageVersionName" + } + } + }, + "operationId": "SharedGalleryImageVersions_List", + "title": "List shared gallery image versions." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImage_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImage_Get.json new file mode 100644 index 000000000000..d1d61952e594 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImage_Get.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "galleryUniqueName": "galleryUniqueName", + "galleryImageName": "myGalleryImageName" + }, + "responses": { + "200": { + "body": { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "eula": "https://www.microsoft.com/en-us/", + "artifactTags": { + "ShareTag-Official1PGallery": "Official1PGallery" + } + }, + "location": "myLocation", + "name": "myGalleryImageName", + "identifier": { + "uniqueId": "/SharedGalleries/galleryUniqueName/Images/myGalleryImageName" + } + } + } + }, + "operationId": "SharedGalleryImages_Get", + "title": "Get a shared gallery image." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImages_List.json b/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImages_List.json new file mode 100644 index 000000000000..b111e3df3d58 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGalleryImages_List.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "galleryUniqueName": "galleryUniqueName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "artifactTags": { + "ShareTag-Official1PGallery": "Official1PGallery" + } + }, + "location": "myLocation", + "name": "myGalleryImageName", + "identifier": { + "uniqueId": "/SharedGalleries/galleryUniqueName/Images/myGalleryImageName" + } + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/providers/Microsoft.Compute/sharedGalleries/galleryUniqueName/images?$skiptoken=token/Subscriptions/subscriptionId/galleries/galleryUniqueName/images/myGalleryImageName" + } + } + }, + "operationId": "SharedGalleryImages_List", + "title": "List shared gallery images." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGallery_Get.json b/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGallery_Get.json new file mode 100644 index 000000000000..bcbafa86ccb9 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGallery_Get.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "galleryUniqueName": "galleryUniqueName" + }, + "responses": { + "200": { + "body": { + "location": "myLocation", + "name": "myGalleryName", + "identifier": { + "uniqueId": "/SharedGalleries/galleryUniqueName" + }, + "properties": { + "artifactTags": { + "ShareTag-Official1PGallery": "Official1PGallery" + } + } + } + } + }, + "operationId": "SharedGalleries_Get", + "title": "Get a shared gallery." +} diff --git a/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGallery_List.json b/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGallery_List.json new file mode 100644 index 000000000000..fa84fc9f8246 --- /dev/null +++ b/specification/compute/Gallery.Management/examples/2025-03-03/sharedGalleryExamples/SharedGallery_List.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "location": "myLocation", + "name": "galleryUniqueName", + "identifier": { + "uniqueId": "/SharedGalleries/galleryUniqueName" + }, + "properties": { + "artifactTags": { + "ShareTag-Official1PGallery": "Official1PGallery" + } + } + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/providers/Microsoft.Compute/sharedGalleries?$skiptoken=token/Subscriptions/subscriptionId/galleries/galleryUniqueName" + } + } + }, + "operationId": "SharedGalleries_List", + "title": "List shared galleries." +} diff --git a/specification/compute/Gallery.Management/main.tsp b/specification/compute/Gallery.Management/main.tsp index b40195214e43..6874f4e2a11d 100644 --- a/specification/compute/Gallery.Management/main.tsp +++ b/specification/compute/Gallery.Management/main.tsp @@ -19,6 +19,8 @@ import "./GalleryImage.tsp"; import "./GalleryImageVersion.tsp"; import "./GalleryApplication.tsp"; import "./GalleryApplicationVersion.tsp"; +import "./GalleryScript.tsp"; +import "./GalleryScriptVersion.tsp"; import "./GalleryInVMAccessControlProfile.tsp"; import "./GalleryInVMAccessControlProfileVersion.tsp"; import "./SharedGallery.tsp"; @@ -53,4 +55,9 @@ enum Versions { * The 2024-03-03 API version. */ v2024_03_03: "2024-03-03", + + /** + * The 2025-03-03 API version. + */ + v2025_03_03: "2025-03-03", } diff --git a/specification/compute/Gallery.Management/models.tsp b/specification/compute/Gallery.Management/models.tsp index f5c90d3d5873..2b353be167bf 100644 --- a/specification/compute/Gallery.Management/models.tsp +++ b/specification/compute/Gallery.Management/models.tsp @@ -1,10 +1,12 @@ import "@typespec/rest"; import "@typespec/http"; +import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-azure-resource-manager"; using TypeSpec.Rest; using TypeSpec.Http; +using Versioning; using Azure.ResourceManager; using Azure.ResourceManager.Foundations; @@ -43,6 +45,39 @@ union GallerySharingPermissionTypes { Community: "Community", } +/** + * Specifies the type of the Gallery Script parameter. Possible values are: String, Int, Double, Boolean, Enum + */ +@added(Versions.v2025_03_03) +union GalleryScriptParameterType { + string, + + /** + * String gallery script parameter type + */ + String: "String", + + /** + * Int gallery script parameter type + */ + Int: "Int", + + /** + * Double gallery script parameter type + */ + Double: "Double", + + /** + * Boolean gallery script parameter type + */ + Boolean: "Boolean", + + /** + * Enum gallery script parameter type + */ + Enum: "Enum", +} + /** * This property allows you to specify the type of sharing group. Possible values are: **Subscriptions,** **AADTenants.** */ @@ -146,6 +181,24 @@ union ReplicationMode { Shallow: "Shallow", } +/** + * Specifies the strategy to be used when selecting the storage account type. Cannot be specified along with storageAccountType, but can be overridden per region by specifying targetRegions[].storageAccountType. This property is not updatable. + */ +@added(Versions.v2025_03_03) +union StorageAccountStrategy { + string, + + /** + * Choose Standard_ZRS storage if the region supports it, else choose Standard_LRS storage, unless overridden by specifying regional storageAccountType. If no storageAccountStrategy is specified, this is the default strategy (from API version 2025-03-03 onwards). + */ + PreferStandard_ZRS: "PreferStandard_ZRS", + + /** + * Choose Standard_LRS storage unless overridden by specifying regional storageAccountType. + */ + DefaultStandard_LRS: "DefaultStandard_LRS", +} + /** * It is type of the extended location. */ @@ -947,11 +1000,10 @@ model GalleryArtifactPublishingProfileBase { /** * The end of life date of the gallery image version. This property can be used for decommissioning purposes. This property is updatable. */ - // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. endOfLifeDate?: utcDateTime; /** - * Specifies the storage account type to be used to store the image. This property is not updatable. + * Specifies the storage account type to be used to store the image. Cannot be specified along with storageAccountStrategy. This property is not updatable. */ storageAccountType?: StorageAccountType; @@ -965,6 +1017,12 @@ model GalleryArtifactPublishingProfileBase { */ @identifiers(#["name", "extendedLocation/name"]) targetExtendedLocations?: GalleryTargetExtendedLocation[]; + + /** + * Specifies the strategy to be used when selecting the storage account type. Cannot be specified along with storageAccountType, but can be overridden per region by specifying targetRegions[].storageAccountType. This property is not updatable. + */ + @added(Versions.v2025_03_03) + storageAccountStrategy?: StorageAccountStrategy; } /** @@ -1740,6 +1798,12 @@ model GalleryImageVersionList is Azure.Core.Page; */ model GalleryApplicationList is Azure.Core.Page; +/** + * The List Gallery Script operation response. + */ +@added(Versions.v2025_03_03) +model GalleryScriptList is Azure.Core.Page; + /** * The List Gallery Application version operation response. */ @@ -1786,6 +1850,195 @@ model GallerySoftDeletedResourceProperties { softDeletedTime?: string; } +/** + * Describes the properties of a gallery script definition. + */ +@added(Versions.v2025_03_03) +model GalleryScriptProperties { + /** + * The description of this gallery script definition resource. This property is updatable. + */ + description?: string; + + /** + * The Eula agreement (End User License Agreement) for the gallery Script Definition. + */ + eula?: string; + + /** + * The privacy statement uri. + */ + privacyStatementUri?: string; + + /** + * The release note uri. + */ + releaseNoteUri?: string; + + /** + * The end of life date of the gallery Script Definition. This property can be used for decommissioning purposes. This property is updatable. + */ + endOfLifeDate?: utcDateTime; + + /** + * This property allows you to specify the supported type of the OS that application is built for. Possible values are: **Windows,** **Linux.** + */ + supportedOSType: OperatingSystemTypes; + + /** + * The provisioning state, which only appears in the response. + */ + @visibility(Lifecycle.Read) + provisioningState?: GalleryProvisioningState; +} + +/** + * Specifies information about the gallery Script Definition that you want to update. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +@added(Versions.v2025_03_03) +model GalleryScriptUpdate extends UpdateResourceDefinition { + /** + * Gallery script definition properties to update. + */ + #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Backward compatibility" + @Azure.ClientGenerator.Core.Legacy.flattenProperty + properties?: GalleryScriptProperties; +} + +/** + * Describes the properties of a gallery script version. + */ +@added(Versions.v2025_03_03) +model GalleryScriptVersionProperties { + /** + * The publishing profile of a gallery image version. + */ + publishingProfile: GalleryScriptVersionPublishingProfile; + + /** + * The safety profile of the Gallery Script Version. + */ + safetyProfile?: GalleryScriptVersionSafetyProfile; + + /** + * The provisioning state, which only appears in the response. + */ + @visibility(Lifecycle.Read) + provisioningState?: GalleryProvisioningState; + + /** + * This is the replication status of the gallery image version. + */ + @visibility(Lifecycle.Read) + replicationStatus?: ReplicationStatus; +} + +/** + * The publishing profile of a gallery image version. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +@added(Versions.v2025_03_03) +model GalleryScriptVersionPublishingProfile + extends GalleryArtifactPublishingProfileBase { + /** + * The source script from which the Script Version is going to be created. + */ + source: ScriptSource; +} + +/** + * The safety profile of the Gallery Script Version. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-resource-manager/no-empty-model" "By design. Properties will be added in future." +@added(Versions.v2025_03_03) +model GalleryScriptVersionSafetyProfile + extends GalleryArtifactSafetyProfileBase {} + +/** + * The source script from which the Script Version is going to be created. + */ +@added(Versions.v2025_03_03) +model ScriptSource { + /** + * Required. The link of the source script, it must be a readable storage blob with SAS URI or publicly accessible URI or managed identity enabled. + */ + scriptLink: string; + + /** + * Optional. Any input parameters that needs to passed to the script and are accessed within the script for its execution. + */ + parameters?: GalleryScriptParameter[]; +} + +/** + * The definition of a parameter that can be passed to a script of a Gallery Script Version. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +@added(Versions.v2025_03_03) +model GalleryScriptParameter extends GenericGalleryParameter { + /** + * Specifies the type of the Gallery Script parameter. Possible values are: String, Int, Double, Boolean, Enum + */ + type?: GalleryScriptParameterType; + + /** + * The minimum value of parameter. + */ + minValue?: string; + + /** + * The minimum value of parameter. + */ + maxValue?: string; + + /** + * A list of permissible values. Only applicable values are from 'enum' values defined in 'GalleryScriptParameter'. + */ + enumValues?: string[]; +} + +/** + * The definition of a generic gallery parameter. + */ +@added(Versions.v2025_03_03) +model GenericGalleryParameter { + /** + * The name of the parameter. + */ + name: string; + + /** + * Indicates whether this parameter must be passed. + */ + required?: boolean; + + /** + * The default value of the parameter, only applies to string types. + */ + defaultValue?: string; + + /** + * A description to help users understand what this parameter means + */ + description?: string; +} + +/** + * Specifies information about the gallery Script Version that you want to update. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +@added(Versions.v2025_03_03) +model GalleryScriptVersionUpdate extends UpdateResourceDefinition { + /** + * Gallery script version properties to update. + */ + #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Backward compatibility" + @Azure.ClientGenerator.Core.Legacy.flattenProperty + properties?: GalleryScriptVersionProperties; +} + /** * Specifies information about the gallery sharing profile update. */ diff --git a/specification/compute/Gallery.Management/tspconfig.yaml b/specification/compute/Gallery.Management/tspconfig.yaml index 102eec2412a7..06f041488b83 100644 --- a/specification/compute/Gallery.Management/tspconfig.yaml +++ b/specification/compute/Gallery.Management/tspconfig.yaml @@ -7,6 +7,7 @@ options: azure-resource-provider-folder: "resource-manager" output-file: "{azure-resource-provider-folder}/{service-name}/GalleryRP/{version-status}/{version}/GalleryRP.json" examples-dir: "{project-root}/examples" + use-read-only-status-schema: true linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2024-03-03/GalleryRP.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2024-03-03/GalleryRP.json index fdaa27b130af..1a10a30c5b2c 100644 --- a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2024-03-03/GalleryRP.json +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2024-03-03/GalleryRP.json @@ -813,7 +813,8 @@ "in": "path", "description": "The name of the Shared Image Gallery.", "required": true, - "type": "string" + "type": "string", + "pattern": "^[^_\\W][\\w-._]{0,79}(?..", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/CommunityGalleryImageVersion" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../common-types/v1/common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a community gallery image version.": { + "$ref": "./examples/communityGalleryExamples/CommunityGalleryImageVersion_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/sharedGalleries": { + "get": { + "operationId": "SharedGalleries_List", + "tags": [ + "SharedGalleries" + ], + "description": "List shared galleries by subscription id or tenant id.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "sharedTo", + "in": "query", + "description": "The query parameter to decide what shared galleries to fetch when doing listing operations.", + "required": false, + "type": "string", + "enum": [ + "tenant" + ], + "x-ms-enum": { + "name": "SharedToValues", + "modelAsString": true, + "values": [ + { + "name": "tenant", + "value": "tenant" + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SharedGalleryList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../common-types/v1/common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List shared galleries.": { + "$ref": "./examples/sharedGalleryExamples/SharedGallery_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/sharedGalleries/{galleryUniqueName}": { + "get": { + "operationId": "SharedGalleries_Get", + "tags": [ + "SharedGalleries" + ], + "description": "Get a shared gallery by subscription id or tenant id.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "galleryUniqueName", + "in": "path", + "description": "The unique name of the Shared Gallery.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SharedGallery" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../common-types/v1/common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a shared gallery.": { + "$ref": "./examples/sharedGalleryExamples/SharedGallery_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/sharedGalleries/{galleryUniqueName}/images": { + "get": { + "operationId": "SharedGalleryImages_List", + "tags": [ + "SharedGalleryImages" + ], + "description": "List shared gallery images by subscription id or tenant id.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "galleryUniqueName", + "in": "path", + "description": "The unique name of the Shared Gallery.", + "required": true, + "type": "string" + }, + { + "name": "sharedTo", + "in": "query", + "description": "The query parameter to decide what shared galleries to fetch when doing listing operations.", + "required": false, + "type": "string", + "enum": [ + "tenant" + ], + "x-ms-enum": { + "name": "SharedToValues", + "modelAsString": true, + "values": [ + { + "name": "tenant", + "value": "tenant" + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SharedGalleryImageList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../common-types/v1/common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List shared gallery images.": { + "$ref": "./examples/sharedGalleryExamples/SharedGalleryImages_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/sharedGalleries/{galleryUniqueName}/images/{galleryImageName}": { + "get": { + "operationId": "SharedGalleryImages_Get", + "tags": [ + "SharedGalleryImages" + ], + "description": "Get a shared gallery image by subscription id or tenant id.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "galleryUniqueName", + "in": "path", + "description": "The unique name of the Shared Gallery.", + "required": true, + "type": "string" + }, + { + "name": "galleryImageName", + "in": "path", + "description": "The name of the Shared Gallery Image Definition from which the Image Versions are to be listed.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SharedGalleryImage" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../common-types/v1/common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a shared gallery image.": { + "$ref": "./examples/sharedGalleryExamples/SharedGalleryImage_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/sharedGalleries/{galleryUniqueName}/images/{galleryImageName}/versions": { + "get": { + "operationId": "SharedGalleryImageVersions_List", + "tags": [ + "SharedGalleryImageVersions" + ], + "description": "List shared gallery image versions by subscription id or tenant id.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "galleryUniqueName", + "in": "path", + "description": "The unique name of the Shared Gallery.", + "required": true, + "type": "string" + }, + { + "name": "galleryImageName", + "in": "path", + "description": "The name of the Shared Gallery Image Definition from which the Image Versions are to be listed.", + "required": true, + "type": "string" + }, + { + "name": "sharedTo", + "in": "query", + "description": "The query parameter to decide what shared galleries to fetch when doing listing operations.", + "required": false, + "type": "string", + "enum": [ + "tenant" + ], + "x-ms-enum": { + "name": "SharedToValues", + "modelAsString": true, + "values": [ + { + "name": "tenant", + "value": "tenant" + } + ] + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SharedGalleryImageVersionList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../common-types/v1/common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List shared gallery image versions.": { + "$ref": "./examples/sharedGalleryExamples/SharedGalleryImageVersions_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/sharedGalleries/{galleryUniqueName}/images/{galleryImageName}/versions/{galleryImageVersionName}": { + "get": { + "operationId": "SharedGalleryImageVersions_Get", + "tags": [ + "SharedGalleryImageVersions" + ], + "description": "Get a shared gallery image version by subscription id or tenant id.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + }, + { + "name": "galleryUniqueName", + "in": "path", + "description": "The unique name of the Shared Gallery.", + "required": true, + "type": "string" + }, + { + "name": "galleryImageName", + "in": "path", + "description": "The name of the Shared Gallery Image Definition from which the Image Versions are to be listed.", + "required": true, + "type": "string" + }, + { + "name": "galleryImageVersionName", + "in": "path", + "description": "The name of the gallery image version to be created. Needs to follow semantic version name pattern: The allowed characters are digit and period. Digits must be within the range of a 32-bit integer. Format: ..", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SharedGalleryImageVersion" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../common-types/v1/common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Get a shared gallery image version.": { + "$ref": "./examples/sharedGalleryExamples/SharedGalleryImageVersion_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries": { + "get": { + "operationId": "Galleries_ListByResourceGroup", + "tags": [ + "Galleries" + ], + "description": "List galleries under a resource group.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/GalleryList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../common-types/v1/common.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "List galleries in a resource group.": { + "$ref": "./examples/galleryExamples/Gallery_ListByResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}": { + "get": { + "operationId": "Galleries_Get", + "tags": [ + "Galleries" + ], + "description": "Retrieves information about a Shared Image Gallery.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "galleryName", + "in": "path", + "description": "The name of the Shared Image Gallery.", + "required": true, + "type": "string", + "pattern": "^[^_\\W][\\w-._]{0,79}(?" + ] + } + ], + "db": [ + { + "type": "x509", + "value": [ + "" + ] + } + ], + "dbx": [ + { + "type": "x509", + "value": [ + "" + ] + } + ] + } + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "securityProfile": { + "uefiSettings": { + "signatureTemplateNames": [ + "MicrosoftUefiCertificateAuthorityTemplate" + ], + "additionalSignatures": { + "kek": [ + { + "type": "sha256", + "value": [ + "" + ] + } + ], + "db": [ + { + "type": "x509", + "value": [ + "" + ] + } + ], + "dbx": [ + { + "type": "x509", + "value": [ + "" + ] + } + ] + } + } + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "securityProfile": { + "uefiSettings": { + "signatureTemplateNames": [ + "MicrosoftUefiCertificateAuthorityTemplate" + ], + "additionalSignatures": { + "kek": [ + { + "type": "sha256", + "value": [ + "" + ] + } + ], + "db": [ + { + "type": "x509", + "value": [ + "" + ] + } + ], + "dbx": [ + { + "type": "x509", + "value": [ + "" + ] + } + ] + } + } + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "202": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "securityProfile": { + "uefiSettings": { + "signatureTemplateNames": [ + "MicrosoftUefiCertificateAuthorityTemplate" + ], + "additionalSignatures": { + "kek": [ + { + "type": "sha256", + "value": [ + "" + ] + } + ], + "db": [ + { + "type": "x509", + "value": [ + "" + ] + } + ], + "dbx": [ + { + "type": "x509", + "value": [ + "" + ] + } + ] + } + } + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_CreateOrUpdate", + "title": "Create or update a simple Gallery Image Version using vhd as a source with custom UEFI keys." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create_WithVmAsSource.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create_WithVmAsSource.json new file mode 100644 index 000000000000..d67d01d3a229 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Create_WithVmAsSource.json @@ -0,0 +1,331 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ] + }, + "storageProfile": { + "source": { + "virtualMachineId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vmName}" + } + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "blockDeletionBeforeEndOfLife": false + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "virtualMachineId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vmName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "virtualMachineId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vmName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "202": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherWestUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myWestUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherEastUSDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myEastUSDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "virtualMachineId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vmName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_CreateOrUpdate", + "title": "Create or update a simple Gallery Image Version using VM as source." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Delete.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Delete.json new file mode 100644 index 000000000000..e291fe0e78bc --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Delete.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus2/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2022-01-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus2/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2022-01-03" + } + }, + "204": {} + }, + "operationId": "GalleryImageVersions_Delete", + "title": "Delete a gallery image version." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get.json new file mode 100644 index 000000000000..60b4788a1725 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get.json @@ -0,0 +1,85 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0" + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Get", + "title": "Get a gallery image version." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithReplicationStatus.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithReplicationStatus.json new file mode 100644 index 000000000000..f926b467ccb3 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithReplicationStatus.json @@ -0,0 +1,103 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "$expand": "ReplicationStatus" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "replicationStatus": { + "aggregatedState": "Completed", + "summary": [ + { + "region": "West US", + "state": "Completed", + "details": "", + "progress": 100 + }, + { + "region": "East US", + "state": "Completed", + "details": "", + "progress": 100 + } + ] + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Get", + "title": "Get a gallery image version with replication status." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithSnapshotsAsSource.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithSnapshotsAsSource.json new file mode 100644 index 000000000000..a33402d76420 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithSnapshotsAsSource.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{snapshotName}" + }, + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/snapshots/{diskSnapshotName}" + }, + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Get", + "title": "Get a gallery image version with snapshots as a source." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithValidationProfile.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithValidationProfile.json new file mode 100644 index 000000000000..fd4ea55c236e --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithValidationProfile.json @@ -0,0 +1,120 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "$expand": "ValidationProfile" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ] + }, + "validationsProfile": { + "executedValidations": [ + { + "type": "LinuxSecurityBaseline", + "status": "Failed", + "version": "beta", + "executionTime": "2018-01-01T00:00:00Z" + }, + { + "type": "AzCertify", + "status": "Succeeded", + "version": "10.0.4", + "executionTime": "2018-01-01T00:00:00Z" + } + ], + "platformAttributes": [ + { + "name": "source_image_publisher", + "value": "publishValue" + }, + { + "name": "source_image_offer", + "value": "OfferValue" + }, + { + "name": "source_image_sku", + "value": "SkuValue" + }, + { + "name": "source_image_version", + "value": "1.0.0" + } + ], + "validationEtag": "2018-01-01T00:00:00Z" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Get", + "title": "Get a gallery image version with validation profile." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithValidationProfileAndReplicationStatus.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithValidationProfileAndReplicationStatus.json new file mode 100644 index 000000000000..9fee85475d5a --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithValidationProfileAndReplicationStatus.json @@ -0,0 +1,137 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "$expand": "ValidationProfile,ReplicationStatus" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ] + }, + "replicationStatus": { + "aggregatedState": "Completed", + "summary": [ + { + "region": "West US", + "state": "Completed", + "details": "", + "progress": 100 + }, + { + "region": "East US", + "state": "Completed", + "details": "", + "progress": 100 + } + ] + }, + "validationsProfile": { + "executedValidations": [ + { + "type": "LinuxSecurityBaseline", + "status": "Failed", + "version": "beta", + "executionTime": "2018-01-01T00:00:00Z" + }, + { + "type": "AzCertify", + "status": "Succeeded", + "version": "10.0.4", + "executionTime": "2018-01-01T00:00:00Z" + } + ], + "platformAttributes": [ + { + "name": "source_image_publisher", + "value": "publishValue" + }, + { + "name": "source_image_offer", + "value": "OfferValue" + }, + { + "name": "source_image_sku", + "value": "SkuValue" + }, + { + "name": "source_image_version", + "value": "1.0.0" + } + ], + "validationEtag": "2018-01-01T00:00:00Z" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Get", + "title": "Get a gallery image version with validation profile and replication status." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithVhdAsSource.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithVhdAsSource.json new file mode 100644 index 000000000000..4f30bdfb28cf --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Get_WithVhdAsSource.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "osDiskImage": { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "source": { + "storageAccountId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/{storageAccount}", + "uri": "https://gallerysourcencus.blob.core.windows.net/myvhds/Windows-Server-2012-R2-20171216-en.us-128GB.vhd" + }, + "lun": 1, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Get", + "title": "Get a gallery image version with vhd as a source." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_ListByGalleryImage.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_ListByGalleryImage.json new file mode 100644 index 000000000000..3dc3c1ef4d92 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_ListByGalleryImage.json @@ -0,0 +1,89 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName/Versions/1.0.0", + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 0, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myOtherDiskEncryptionSet" + }, + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false, + "reportedForPolicyViolation": true, + "policyViolations": [ + { + "category": "ImageFlaggedUnsafe", + "details": "This is the policy violation details." + } + ], + "blockDeletionBeforeEndOfLife": false + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/images/myGalleryImageName/versions?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName/images/myGalleryImageName/versions/myGalleryImageVersionName" + } + } + }, + "operationId": "GalleryImageVersions_ListByGalleryImage", + "title": "List gallery image versions in a gallery image definition." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Update.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Update.json new file mode 100644 index 000000000000..0383b62471aa --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Update.json @@ -0,0 +1,91 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1 + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS" + } + ] + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Update", + "title": "Update a simple Gallery Image Version (Managed Image as source)." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Update_RestoreSoftDeleted.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Update_RestoreSoftDeleted.json new file mode 100644 index 000000000000..e23cbdde879b --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Update_RestoreSoftDeleted.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "properties": { + "restore": true, + "storageProfile": {} + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Update", + "title": "Restore a Soft Deleted Gallery Image Version" +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Update_WithoutSourceId.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Update_WithoutSourceId.json new file mode 100644 index 000000000000..f2b5b58bbae1 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImageVersion_Update_WithoutSourceId.json @@ -0,0 +1,87 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "1.0.0", + "galleryImageVersion": { + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1 + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS" + } + ] + }, + "storageProfile": {} + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "publishingProfile": { + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 1, + "storageAccountType": "Standard_LRS", + "encryption": { + "osDiskImage": { + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + }, + "dataDiskImages": [ + { + "lun": 1, + "diskEncryptionSetId": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/diskEncryptionSet/myDiskEncryptionSet" + } + ] + }, + "excludeFromLatest": false + }, + { + "name": "East US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_ZRS", + "excludeFromLatest": false + } + ], + "replicaCount": 1, + "publishedDate": "2018-01-01T00:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "storageProfile": { + "source": { + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}" + }, + "osDiskImage": { + "sizeInGB": 10, + "hostCaching": "ReadOnly" + }, + "dataDiskImages": [ + { + "lun": 1, + "sizeInGB": 10, + "hostCaching": "None" + } + ] + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryImageVersions_Update", + "title": "Update a simple Gallery Image Version without source id." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Create.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Create.json new file mode 100644 index 000000000000..4daf1696cec1 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Create.json @@ -0,0 +1,80 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImage": { + "location": "West US", + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/Images/myGalleryImageName", + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryImageName" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/Images/myGalleryImageName", + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "myGalleryImageName" + } + }, + "202": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/Images/myGalleryImageName", + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryImageName" + } + } + }, + "operationId": "GalleryImages_CreateOrUpdate", + "title": "Create or update a simple gallery image." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Delete.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Delete.json new file mode 100644 index 000000000000..20726e51d48d --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Delete.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/CentralIndia/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2021-10-01", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/CentralIndia/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2021-10-01" + } + }, + "204": {} + }, + "operationId": "GalleryImages_Delete", + "title": "Delete a gallery image." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Get.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Get.json new file mode 100644 index 000000000000..aca3241675ba --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Get.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName" + }, + "responses": { + "200": { + "body": { + "id": "/providers/Microsoft.Compute/galleries/myGallery/Images/myGalleryImageName", + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryImageName" + } + } + }, + "operationId": "GalleryImages_Get", + "title": "Get a gallery image." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_ListByGallery.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_ListByGallery.json new file mode 100644 index 000000000000..76295c490543 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_ListByGallery.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/locations/westus/Galleries/myGalleryName/Images/myGalleryImageName", + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryImageName" + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/images?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName/images/myGalleryImageName" + } + } + }, + "operationId": "GalleryImages_ListByGallery", + "title": "List gallery images in a gallery." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Update.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Update.json new file mode 100644 index 000000000000..b11de15bb6fb --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_Update.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImage": { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryImageName" + } + } + }, + "operationId": "GalleryImages_Update", + "title": "Update a simple gallery image." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_UpdateFeatures.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_UpdateFeatures.json new file mode 100644 index 000000000000..f3841d2795f7 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GalleryImage_UpdateFeatures.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryImageName": "myGalleryImageName", + "galleryImage": { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V2", + "allowUpdateImage": true, + "features": [ + { + "name": "SecurityType", + "value": "TrustedLaunch", + "startsAtVersion": "2.0.0" + } + ], + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V2", + "features": [ + { + "name": "SecurityType", + "value": "TrustedLaunch", + "startsAtVersion": "2.0.0" + } + ], + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryImageName" + } + } + }, + "operationId": "GalleryImages_Update", + "title": "Update a gallery image feature." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GallerySoftDeletedResource_ListByArtifactName.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GallerySoftDeletedResource_ListByArtifactName.json new file mode 100644 index 000000000000..a918531081e8 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/GallerySoftDeletedResource_ListByArtifactName.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "artifactType": "images", + "artifactName": "myGalleryImageName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.0.0", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/softDeletedArtifactTypes/Images/artifacts/myGalleryImageName/versions/1.0.0", + "type": "Microsoft.Compute/galleries/softDeletedArtifactTypes/artifacts/versions", + "location": "West US", + "properties": { + "resourceArmId": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/images/myGalleryImageName/versions/1.0.0", + "softDeletedTime": "2024-10-17T13:01:05+00:00", + "softDeletedArtifactType": "Images" + } + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/softDeletedArtifactTypes/images/artifacts/myGalleryImageName/versions?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName/softDeletedArtifactTypes/images/artifacts/myGalleryImageName/versions/myGalleryImageVersionName" + } + } + }, + "operationId": "SoftDeletedResource_ListByArtifactName", + "title": "List soft-deleted resources of an artifact in the gallery." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_AddToSharingProfile.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_AddToSharingProfile.json new file mode 100644 index 000000000000..26ccaeca9dc0 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_AddToSharingProfile.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "sharingUpdate": { + "operationType": "Add", + "groups": [ + { + "type": "Subscriptions", + "ids": [ + "34a4ab42-0d72-47d9-bd1a-aed207386dac", + "380fd389-260b-41aa-bad9-0a83108c370b" + ] + }, + { + "type": "AADTenants", + "ids": [ + "c24c76aa-8897-4027-9b03-8f7928b54ff6" + ] + } + ] + } + }, + "responses": { + "200": { + "body": { + "operationType": "Add", + "groups": [ + { + "type": "Subscriptions", + "ids": [ + "34a4ab42-0d72-47d9-bd1a-aed207386dac", + "380fd389-260b-41aa-bad9-0a83108c370b" + ] + }, + { + "type": "AADTenants", + "ids": [ + "c24c76aa-8897-4027-9b03-8f7928b54ff6" + ] + } + ] + } + }, + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/share?api-version=2025-03-03" + }, + "body": { + "operationType": "Add", + "groups": [ + { + "type": "Subscriptions", + "ids": [ + "34a4ab42-0d72-47d9-bd1a-aed207386dac", + "380fd389-260b-41aa-bad9-0a83108c370b" + ] + }, + { + "type": "AADTenants", + "ids": [ + "c24c76aa-8897-4027-9b03-8f7928b54ff6" + ] + } + ] + } + } + }, + "operationId": "GallerySharingProfile_Update", + "title": "Add sharing id to the sharing profile of a gallery." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create.json new file mode 100644 index 000000000000..cca13f5081e7 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create.json @@ -0,0 +1,60 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "gallery": { + "location": "West US", + "properties": { + "description": "This is the gallery description." + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Creating" + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "202": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_CreateOrUpdate", + "title": "Create or update a simple gallery." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create_SoftDeletionEnabled.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create_SoftDeletionEnabled.json new file mode 100644 index 000000000000..c9a08000595c --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create_SoftDeletionEnabled.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "gallery": { + "location": "West US", + "properties": { + "description": "This is the gallery description.", + "softDeletePolicy": { + "isSoftDeleteEnabled": true + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating", + "softDeletePolicy": { + "isSoftDeleteEnabled": true + } + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Creating", + "softDeletePolicy": { + "isSoftDeleteEnabled": true + } + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "202": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating", + "softDeletePolicy": { + "isSoftDeleteEnabled": true + } + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_CreateOrUpdate", + "title": "Create or update a simple gallery with soft deletion enabled." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create_WithManagedIdentity.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create_WithManagedIdentity.json new file mode 100644 index 000000000000..644031c08b27 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create_WithManagedIdentity.json @@ -0,0 +1,96 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "gallery": { + "location": "West US", + "identity": { + "type": "SystemAssigned, UserAssigned", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {} + } + }, + "properties": { + "description": "This is the gallery description." + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "identity": { + "type": "SystemAssigned, UserAssigned", + "principalId": "00000000-0000-0000-0000-000000000000", + "tenantId": "00000000-0000-0000-0000-000000000000", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {} + } + }, + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "identity": { + "type": "SystemAssigned, UserAssigned", + "principalId": "00000000-0000-0000-0000-000000000000", + "tenantId": "00000000-0000-0000-0000-000000000000", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {} + } + }, + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Creating", + "softDeletePolicy": { + "isSoftDeleteEnabled": true + } + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "202": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "identity": { + "type": "SystemAssigned, UserAssigned", + "principalId": "00000000-0000-0000-0000-000000000000", + "tenantId": "00000000-0000-0000-0000-000000000000", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {} + } + }, + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating", + "softDeletePolicy": { + "isSoftDeleteEnabled": true + } + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_CreateOrUpdate", + "title": "Create or update a simple gallery with system-assigned and user-assigned managed identities." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create_WithSharingProfile.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create_WithSharingProfile.json new file mode 100644 index 000000000000..c562fbe8a791 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Create_WithSharingProfile.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "gallery": { + "location": "West US", + "properties": { + "description": "This is the gallery description.", + "sharingProfile": { + "permissions": "Groups" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating", + "sharingProfile": { + "permissions": "Groups" + } + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Creating", + "sharingProfile": { + "permissions": "Groups" + } + }, + "location": "West US", + "name": "myGalleryName" + } + }, + "202": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating", + "sharingProfile": { + "permissions": "Groups" + } + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_CreateOrUpdate", + "title": "Create or update a simple gallery with sharing profile." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Delete.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Delete.json new file mode 100644 index 000000000000..957f0498daad --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Delete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2018-06-01", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2018-06-01" + } + }, + "204": {} + }, + "operationId": "Galleries_Delete", + "title": "Delete a gallery." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_EnableCommunityGallery.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_EnableCommunityGallery.json new file mode 100644 index 000000000000..b31a5a982ef1 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_EnableCommunityGallery.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "sharingUpdate": { + "operationType": "EnableCommunity" + } + }, + "responses": { + "200": { + "body": { + "operationType": "EnableCommunity" + } + }, + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/share?api-version=2025-03-03" + }, + "body": { + "operationType": "EnableCommunity" + } + } + }, + "operationId": "GallerySharingProfile_Update", + "title": "share a gallery to community." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get.json new file mode 100644 index 000000000000..9f433a1c575f --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_Get", + "title": "Get a gallery." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get_WithExpandSharingProfileGroups.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get_WithExpandSharingProfileGroups.json new file mode 100644 index 000000000000..213611b1748f --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get_WithExpandSharingProfileGroups.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "$expand": "SharingProfile/Groups" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "sharingProfile": { + "permissions": "Groups", + "groups": [ + { + "type": "Subscriptions", + "ids": [ + "34a4ab42-0d72-47d9-bd1a-aed207386dac", + "380fd389-260b-41aa-bad9-0a83108c370b" + ] + }, + { + "type": "AADTenants", + "ids": [ + "c24c76aa-8897-4027-9b03-8f7928b54ff6" + ] + } + ] + } + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_Get", + "title": "Get a gallery with expand sharingProfile groups." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get_WithManagedIdentity.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get_WithManagedIdentity.json new file mode 100644 index 000000000000..a7ae91c929f3 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get_WithManagedIdentity.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "identity": { + "type": "SystemAssigned, UserAssigned", + "principalId": "00000000-0000-0000-0000-000000000000", + "tenantId": "00000000-0000-0000-0000-000000000000", + "userAssignedIdentities": { + "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": { + "principalId": "00000000-0000-0000-0000-000000000000", + "clientId": "00000000-0000-0000-0000-000000000000" + } + } + }, + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_Get", + "title": "Get a gallery with system-assigned and user-assigned managed identities." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get_WithSelectPermissions.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get_WithSelectPermissions.json new file mode 100644 index 000000000000..7e4b1be365c5 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Get_WithSelectPermissions.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "$select": "Permissions" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName", + "properties": { + "sharingProfile": { + "permissions": "Groups", + "groups": [ + { + "type": "Subscriptions", + "ids": [ + "34a4ab42-0d72-47d9-bd1a-aed207386dac", + "380fd389-260b-41aa-bad9-0a83108c370b" + ] + }, + { + "type": "AADTenants", + "ids": [ + "c24c76aa-8897-4027-9b03-8f7928b54ff6" + ] + } + ] + } + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_Get", + "title": "Get a gallery with select permissions." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_ListByResourceGroup.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_ListByResourceGroup.json new file mode 100644 index 000000000000..593b551391a4 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_ListByResourceGroup.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryName", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName" + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName" + } + } + }, + "operationId": "Galleries_ListByResourceGroup", + "title": "List galleries in a resource group." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_ListBySubscription.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_ListBySubscription.json new file mode 100644 index 000000000000..ff6b179db32f --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_ListBySubscription.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "api-version": "2025-03-03" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryName", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName" + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/providers/Microsoft.Compute/galleries?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName" + } + } + }, + "operationId": "Galleries_List", + "title": "List galleries in a subscription." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_ResetSharingProfile.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_ResetSharingProfile.json new file mode 100644 index 000000000000..2d459d985dae --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_ResetSharingProfile.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "sharingUpdate": { + "operationType": "Reset" + } + }, + "responses": { + "200": { + "body": { + "operationType": "Reset" + } + }, + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/share?api-version=2025-03-03" + }, + "body": { + "operationType": "Reset" + } + } + }, + "operationId": "GallerySharingProfile_Update", + "title": "reset sharing profile of a gallery." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Update.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Update.json new file mode 100644 index 000000000000..df47d7475b93 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryExamples/Gallery_Update.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "gallery": { + "properties": { + "description": "This is the gallery description." + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "description": "This is the gallery description.", + "identifier": { + "uniqueName": "{subscription-id}-MYGALLERYNAME" + }, + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryName" + } + } + }, + "operationId": "Galleries_Update", + "title": "Update a simple gallery." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Create.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Create.json new file mode 100644 index 000000000000..401701757974 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Create.json @@ -0,0 +1,182 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName", + "inVMAccessControlProfileVersionName": "1.0.0", + "galleryInVMAccessControlProfileVersion": { + "location": "West US", + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "rules": { + "privileges": [ + { + "name": "GoalState", + "path": "/machine", + "queryParameters": { + "comp": "goalstate" + } + } + ], + "roles": [ + { + "name": "Provisioning", + "privileges": [ + "GoalState" + ] + } + ], + "identities": [ + { + "name": "WinPA", + "userName": "SYSTEM", + "groupName": "Administrators", + "exePath": "C:\\Windows\\System32\\cscript.exe", + "processName": "cscript" + } + ], + "roleAssignments": [ + { + "role": "Provisioning", + "identities": [ + "WinPA" + ] + } + ] + }, + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + } + ], + "excludeFromLatest": false + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions/1.0.0", + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "rules": { + "privileges": [ + { + "name": "GoalState", + "path": "/machine", + "queryParameters": { + "comp": "goalstate" + } + } + ], + "roles": [ + { + "name": "Provisioning", + "privileges": [ + "GoalState" + ] + } + ], + "identities": [ + { + "name": "WinPA", + "userName": "SYSTEM", + "groupName": "Administrators", + "exePath": "C:\\Windows\\System32\\cscript.exe", + "processName": "cscript" + } + ], + "roleAssignments": [ + { + "role": "Provisioning", + "identities": [ + "WinPA" + ] + } + ] + }, + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + } + ], + "excludeFromLatest": false, + "publishedDate": "2024-01-01T00:00:00Z", + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions/1.0.0", + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "rules": { + "privileges": [ + { + "name": "GoalState", + "path": "/machine", + "queryParameters": { + "comp": "goalstate" + } + } + ], + "roles": [ + { + "name": "Provisioning", + "privileges": [ + "GoalState" + ] + } + ], + "identities": [ + { + "name": "WinPA", + "userName": "SYSTEM", + "groupName": "Administrators", + "exePath": "C:\\Windows\\System32\\cscript.exe", + "processName": "cscript" + } + ], + "roleAssignments": [ + { + "role": "Provisioning", + "identities": [ + "WinPA" + ] + } + ] + }, + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + } + ], + "excludeFromLatest": false, + "publishedDate": "2024-01-01T00:00:00Z", + "provisioningState": "Creating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryInVMAccessControlProfileVersions_CreateOrUpdate", + "title": "Create or update a Gallery InVMAccessControlProfile Version." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Delete.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Delete.json new file mode 100644 index 000000000000..182dfacb5660 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Delete.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName", + "inVMAccessControlProfileVersionName": "1.0.0" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + } + }, + "204": {} + }, + "operationId": "GalleryInVMAccessControlProfileVersions_Delete", + "title": "Delete a gallery inVMAccessControlProfile version." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Get.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Get.json new file mode 100644 index 000000000000..26ae0854c093 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Get.json @@ -0,0 +1,75 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName", + "inVMAccessControlProfileVersionName": "1.0.0" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions/1.0.0", + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "rules": { + "privileges": [ + { + "name": "GoalState", + "path": "/machine", + "queryParameters": { + "comp": "goalstate" + } + } + ], + "roles": [ + { + "name": "Provisioning", + "privileges": [ + "GoalState" + ] + } + ], + "identities": [ + { + "name": "WinPA", + "userName": "SYSTEM", + "groupName": "Administrators", + "exePath": "C:\\Windows\\System32\\cscript.exe", + "processName": "cscript" + } + ], + "roleAssignments": [ + { + "role": "Provisioning", + "identities": [ + "WinPA" + ] + } + ] + }, + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + }, + { + "name": "East US" + } + ], + "excludeFromLatest": false, + "publishedDate": "2024-01-01T00:00:00Z", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryInVMAccessControlProfileVersions_Get", + "title": "Get a gallery inVMAccessControlProfile version." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_ListByGalleryInVMAccessControlProfile.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_ListByGalleryInVMAccessControlProfile.json new file mode 100644 index 000000000000..36c0a4efce9c --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_ListByGalleryInVMAccessControlProfile.json @@ -0,0 +1,79 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions/1.0.0", + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "rules": { + "privileges": [ + { + "name": "GoalState", + "path": "/machine", + "queryParameters": { + "comp": "goalstate" + } + } + ], + "roles": [ + { + "name": "Provisioning", + "privileges": [ + "GoalState" + ] + } + ], + "identities": [ + { + "name": "WinPA", + "userName": "SYSTEM", + "groupName": "Administrators", + "exePath": "C:\\Windows\\System32\\cscript.exe", + "processName": "cscript" + } + ], + "roleAssignments": [ + { + "role": "Provisioning", + "identities": [ + "WinPA" + ] + } + ] + }, + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + }, + { + "name": "East US" + } + ], + "excludeFromLatest": false, + "publishedDate": "2024-01-01T00:00:00Z", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions/myInVMAccessControlProfileVersionName" + } + } + }, + "operationId": "GalleryInVMAccessControlProfileVersions_ListByGalleryInVMAccessControlProfile", + "title": "List gallery inVMAccessControlProfile versions in a gallery inVMAccessControlProfile." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Update.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Update.json new file mode 100644 index 000000000000..b80e892b44eb --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfileVersion_Update.json @@ -0,0 +1,93 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName", + "inVMAccessControlProfileVersionName": "1.0.0", + "galleryInVMAccessControlProfileVersion": { + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + }, + { + "name": "East US" + } + ], + "excludeFromLatest": false + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName/versions/1.0.0", + "properties": { + "mode": "Audit", + "defaultAccess": "Allow", + "rules": { + "privileges": [ + { + "name": "GoalState", + "path": "/machine", + "queryParameters": { + "comp": "goalstate" + } + } + ], + "roles": [ + { + "name": "Provisioning", + "privileges": [ + "GoalState" + ] + } + ], + "identities": [ + { + "name": "WinPA", + "userName": "SYSTEM", + "groupName": "Administrators", + "exePath": "C:\\Windows\\System32\\cscript.exe", + "processName": "cscript" + } + ], + "roleAssignments": [ + { + "role": "Provisioning", + "identities": [ + "WinPA" + ] + } + ] + }, + "targetLocations": [ + { + "name": "West US" + }, + { + "name": "South Central US" + }, + { + "name": "East US" + } + ], + "excludeFromLatest": false, + "publishedDate": "2024-01-01T00:00:00Z", + "provisioningState": "Updating" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryInVMAccessControlProfileVersions_Update", + "title": "Update a Gallery InVMAccessControlProfile Version." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Create.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Create.json new file mode 100644 index 000000000000..9ab24143f890 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Create.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName", + "galleryInVMAccessControlProfile": { + "location": "West US", + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName", + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer", + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myInVMAccessControlProfileName" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName", + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer", + "provisioningState": "Creating" + }, + "location": "West US", + "name": "myInVMAccessControlProfileName" + } + } + }, + "operationId": "GalleryInVMAccessControlProfiles_CreateOrUpdate", + "title": "Create or update a gallery inVMAccessControlProfile." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Delete.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Delete.json new file mode 100644 index 000000000000..392e168b797f --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Delete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + } + }, + "204": {} + }, + "operationId": "GalleryInVMAccessControlProfiles_Delete", + "title": "Delete a gallery inVMAccessControlProfile." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Get.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Get.json new file mode 100644 index 000000000000..30a9ef206a03 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Get.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName", + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myInVMAccessControlProfileName" + } + } + }, + "operationId": "GalleryInVMAccessControlProfiles_Get", + "title": "Get a gallery inVMAccessControlProfile." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_ListByGallery.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_ListByGallery.json new file mode 100644 index 000000000000..3d53d2c9365f --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_ListByGallery.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName", + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myInVMAccessControlProfileName" + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/inVMAccessControlProfiles?$skiptoken=token/Subscriptions/subscriptionId/ResourceGroups/myResourceGroup/galleries/myGalleryName/inVMAccessControlProfiles/myInVMAccessControlProfileName" + } + } + }, + "operationId": "GalleryInVMAccessControlProfiles_ListByGallery", + "title": "List gallery inVMAccessControlProfiles in a gallery." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Update.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Update.json new file mode 100644 index 000000000000..d552c613781b --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryResourceProfileExamples/GalleryInVMAccessControlProfile_Update.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "inVMAccessControlProfileName": "myInVMAccessControlProfileName", + "galleryInVMAccessControlProfile": { + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/inVMAccessControlProfiles/myInVMAccessControlProfileName", + "properties": { + "osType": "Linux", + "applicableHostEndpoint": "WireServer", + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myInVMAccessControlProfileName" + } + } + }, + "operationId": "GalleryInVMAccessControlProfiles_Update", + "title": "Update a gallery inVMAccessControlProfile." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Create.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Create.json new file mode 100644 index 000000000000..f4f75f158788 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Create.json @@ -0,0 +1,269 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScriptVersionName": "1.0.0", + "galleryScriptVersion": { + "location": "West US", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1?{sasKey}", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "endOfLifeDate": "2027-07-01T07:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + } + } + } + }, + "responses": { + "200": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + }, + "body": { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/scripts/versions", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScript/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Updating" + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + }, + "body": { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/scripts/versions", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScript/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Creating" + } + } + } + }, + "operationId": "GalleryScriptVersions_CreateOrUpdate", + "title": "Create or update a simple gallery Script Version." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Delete.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Delete.json new file mode 100644 index 000000000000..44e3494d72e6 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Delete.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroupName", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScriptVersionName": "1.0.0" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + } + }, + "204": {} + }, + "operationId": "GalleryScriptVersions_Delete", + "title": "Delete a gallery Script Version." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Get.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Get.json new file mode 100644 index 000000000000..ca3b785de363 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Get.json @@ -0,0 +1,99 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroupName", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScriptVersionName": "1.0.0" + }, + "responses": { + "200": { + "body": { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/scripts/versions", + "id": "/subscriptions/{subscriptionId}/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "GalleryScriptVersions_Get", + "title": "Get a gallery Script Version." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Get_WithReplicationStatus.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Get_WithReplicationStatus.json new file mode 100644 index 000000000000..926b52560875 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Get_WithReplicationStatus.json @@ -0,0 +1,110 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroupName", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScriptVersionName": "1.0.0", + "$expand": "ReplicationStatus" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "replicationStatus": { + "aggregatedState": "Completed", + "summary": [ + { + "region": "West US", + "state": "Completed", + "details": "", + "progress": 100 + } + ] + }, + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "1.0.0" + } + } + }, + "operationId": "GalleryScriptVersions_Get", + "title": "Get a gallery Script Version with replication status." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_ListByGalleryScript.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_ListByGalleryScript.json new file mode 100644 index 000000000000..fc50d025f30e --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_ListByGalleryScript.json @@ -0,0 +1,149 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroupName", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/script/versions", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript1.ps1", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Succeeded" + } + }, + { + "location": "West US", + "name": "1.0.1", + "type": "Microsoft.Compute/galleries/script/versions", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName/versions/1.0.1", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript2.ps1", + "parameters": [ + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Succeeded" + } + } + ], + "nextLink": "https://microsoft.com/nextLinkExample" + } + } + }, + "operationId": "GalleryScriptVersions_ListByGalleryScript", + "title": "List gallery Script Versions in a gallery Script Definition." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Update.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Update.json new file mode 100644 index 000000000000..d15f8c26b33d --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScriptVersion_Update.json @@ -0,0 +1,181 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroupName", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScriptVersionName": "1.0.0", + "galleryScriptVersion": { + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1?{sasKey}", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "endOfLifeDate": "2027-07-01T07:00:00Z", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + } + } + } + }, + "responses": { + "200": { + "body": { + "location": "West US", + "name": "1.0.0", + "type": "Microsoft.Compute/galleries/scripts/versions", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName/versions/1.0.0", + "properties": { + "publishingProfile": { + "source": { + "scriptLink": "https://mystorageaccount.blob.core.windows.net/mycontainer/myScript.ps1", + "parameters": [ + { + "name": "location", + "required": true, + "defaultValue": "westus", + "type": "String" + }, + { + "name": "myGalleryScriptParameter1", + "required": true, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "myGalleryScriptParameter2", + "required": false, + "type": "String", + "defaultValue": "default value of parameter", + "description": "description of the parameter" + }, + { + "name": "numberOfUnits", + "required": true, + "type": "Int", + "defaultValue": "3", + "description": "description of the parameter", + "minValue": "1", + "maxValue": "5" + }, + { + "name": "weightOfUnit", + "required": true, + "type": "Double", + "defaultValue": "0.6", + "description": "description of the parameter", + "minValue": "0.1", + "maxValue": "2" + }, + { + "name": "typeOfProduct", + "required": false, + "type": "Enum", + "defaultValue": "Fruit", + "description": "description of the parameter", + "enumValues": [ + "Fruit", + "Vegetable", + "Greens", + "Nuts" + ] + } + ] + }, + "targetRegions": [ + { + "name": "West US", + "regionalReplicaCount": 2, + "storageAccountType": "Standard_LRS", + "excludeFromLatest": false + } + ], + "replicaCount": 2, + "excludeFromLatest": false, + "publishedDate": "2025-06-21T17:13:57.5972568+00:00", + "endOfLifeDate": "2027-07-01T07:00:00+00:00", + "storageAccountType": "Standard_LRS" + }, + "safetyProfile": { + "allowDeletionOfReplicatedLocations": false + }, + "provisioningState": "Updating" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + } + } + }, + "operationId": "GalleryScriptVersions_Update", + "title": "Update a simple gallery Script Version." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Create.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Create.json new file mode 100644 index 000000000000..2dbbf0186de5 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Create.json @@ -0,0 +1,61 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScript": { + "location": "West US", + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows" + } + } + }, + "responses": { + "200": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03" + }, + "body": { + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows", + "provisioningState": "Updating" + }, + "location": "West US", + "name": "myGalleryScriptName", + "type": "Microsoft.Compute/galleries", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName" + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/westus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03" + }, + "body": { + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows", + "provisioningState": "Creating" + }, + "location": "West US", + "name": "myGalleryApplicationName", + "type": "Microsoft.Compute/galleries", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName" + } + } + }, + "operationId": "GalleryScripts_CreateOrUpdate", + "title": "Create or update a simple gallery Script." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Delete.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Delete.json new file mode 100644 index 000000000000..f689a0888463 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Delete.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-0000-40bc-b7ed-000000000000?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-0000-40bc-b7ed-000000000000?monitor=true&api-version=2025-03-03" + } + }, + "204": {} + }, + "operationId": "GalleryScripts_Delete", + "title": "Delete a gallery Script." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Get.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Get.json new file mode 100644 index 000000000000..c1b91778ca0c --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Get.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName", + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryScriptName" + } + } + }, + "operationId": "GalleryScripts_Get", + "title": "Get a gallery Script." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_ListByGallery.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_ListByGallery.json new file mode 100644 index 000000000000..bb74a56372cc --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_ListByGallery.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName", + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryScriptName" + }, + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName2", + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows", + "provisioningState": "Succeeded" + }, + "location": "West US", + "name": "myGalleryScriptName2" + } + ], + "nextLink": "https://microsoft.com/nextLinkExample" + } + } + }, + "operationId": "GalleryScripts_ListByGallery", + "title": "List gallery Scripts in a gallery." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Update.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Update.json new file mode 100644 index 000000000000..05a123c9ca3e --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/galleryScriptExamples/GalleryScript_Update.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "api-version": "2025-03-03", + "galleryName": "myGalleryName", + "galleryScriptName": "myGalleryScriptName", + "galleryScript": { + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "{myPrivacyStatementUri}", + "releaseNoteUri": "{myReleaseNoteUri}", + "supportedOSType": "Windows" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "description": "This is the gallery script description.", + "eula": "This is the gallery script EULA.", + "privacyStatementUri": "myPrivacyStatementUri", + "releaseNoteUri": "myReleaseNoteUri", + "supportedOSType": "Windows" + }, + "location": "West US", + "name": "myGalleryScriptName", + "type": "Microsoft.Compute/galleries", + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalleryName/scripts/myGalleryScriptName" + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?api-version=2025-03-03", + "Location": "https://management.azure.com/subscriptions/000000-8de3-42e7-b00e-8970003527749a/providers/Microsoft.Compute/locations/eastus/capsOperations/0012b61c-2d36-40bc-b7ed-1f0e48757277?monitor=true&api-version=2025-03-03" + } + } + }, + "operationId": "GalleryScripts_Update", + "title": "Update a simple gallery Script." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImageVersion_Get.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImageVersion_Get.json new file mode 100644 index 000000000000..0c15842d397f --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImageVersion_Get.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "galleryUniqueName": "galleryUniqueName", + "galleryImageName": "myGalleryImageName", + "galleryImageVersionName": "myGalleryImageVersionName" + }, + "responses": { + "200": { + "body": { + "properties": { + "publishedDate": "2018-03-20T09:12:28Z", + "endOfLifeDate": "2022-03-20T09:12:28Z", + "excludeFromLatest": false, + "storageProfile": { + "osDiskImage": { + "diskSizeGB": 29, + "hostCaching": "None" + } + }, + "artifactTags": { + "ShareTag-Official1PGallery": "Official1PGallery" + } + }, + "location": "myLocation", + "name": "myGalleryImageVersionName", + "identifier": { + "uniqueId": "/SharedGalleries/galleryUniqueName/Images/myGalleryImageName/Versions/myGalleryImageVersionName" + } + } + } + }, + "operationId": "SharedGalleryImageVersions_Get", + "title": "Get a shared gallery image version." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImageVersions_List.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImageVersions_List.json new file mode 100644 index 000000000000..61097f3f6609 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImageVersions_List.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "galleryUniqueName": "galleryUniqueName", + "galleryImageName": "myGalleryImageName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "publishedDate": "2018-03-20T09:12:28Z", + "endOfLifeDate": "2022-03-20T09:12:28Z", + "excludeFromLatest": false, + "storageProfile": { + "osDiskImage": { + "diskSizeGB": 29, + "hostCaching": "None" + } + }, + "artifactTags": { + "ShareTag-Official1PGallery": "Official1PGallery" + } + }, + "location": "myLocation", + "name": "myGalleryImageVersionName", + "identifier": { + "uniqueId": "/SharedGalleries/galleryUniqueName/Images/myGalleryImageName/Versions/myGalleryImageVersionName" + } + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/providers/Microsoft.Compute/sharedGalleries/galleryUniqueName/images/myGalleryImageName/versions?$skiptoken=token/Subscriptions/subscriptionId/galleries/galleryUniqueName/images/myGalleryImageName/versions/myGalleryImageVersionName" + } + } + }, + "operationId": "SharedGalleryImageVersions_List", + "title": "List shared gallery image versions." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImage_Get.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImage_Get.json new file mode 100644 index 000000000000..d1d61952e594 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImage_Get.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "galleryUniqueName": "galleryUniqueName", + "galleryImageName": "myGalleryImageName" + }, + "responses": { + "200": { + "body": { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "eula": "https://www.microsoft.com/en-us/", + "artifactTags": { + "ShareTag-Official1PGallery": "Official1PGallery" + } + }, + "location": "myLocation", + "name": "myGalleryImageName", + "identifier": { + "uniqueId": "/SharedGalleries/galleryUniqueName/Images/myGalleryImageName" + } + } + } + }, + "operationId": "SharedGalleryImages_Get", + "title": "Get a shared gallery image." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImages_List.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImages_List.json new file mode 100644 index 000000000000..b111e3df3d58 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGalleryImages_List.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "galleryUniqueName": "galleryUniqueName" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "osType": "Windows", + "osState": "Generalized", + "hyperVGeneration": "V1", + "identifier": { + "publisher": "myPublisherName", + "offer": "myOfferName", + "sku": "mySkuName" + }, + "artifactTags": { + "ShareTag-Official1PGallery": "Official1PGallery" + } + }, + "location": "myLocation", + "name": "myGalleryImageName", + "identifier": { + "uniqueId": "/SharedGalleries/galleryUniqueName/Images/myGalleryImageName" + } + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/providers/Microsoft.Compute/sharedGalleries/galleryUniqueName/images?$skiptoken=token/Subscriptions/subscriptionId/galleries/galleryUniqueName/images/myGalleryImageName" + } + } + }, + "operationId": "SharedGalleryImages_List", + "title": "List shared gallery images." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGallery_Get.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGallery_Get.json new file mode 100644 index 000000000000..bcbafa86ccb9 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGallery_Get.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03", + "galleryUniqueName": "galleryUniqueName" + }, + "responses": { + "200": { + "body": { + "location": "myLocation", + "name": "myGalleryName", + "identifier": { + "uniqueId": "/SharedGalleries/galleryUniqueName" + }, + "properties": { + "artifactTags": { + "ShareTag-Official1PGallery": "Official1PGallery" + } + } + } + } + }, + "operationId": "SharedGalleries_Get", + "title": "Get a shared gallery." +} diff --git a/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGallery_List.json b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGallery_List.json new file mode 100644 index 000000000000..fa84fc9f8246 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/GalleryRP/stable/2025-03-03/examples/sharedGalleryExamples/SharedGallery_List.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "location": "myLocation", + "api-version": "2025-03-03" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "location": "myLocation", + "name": "galleryUniqueName", + "identifier": { + "uniqueId": "/SharedGalleries/galleryUniqueName" + }, + "properties": { + "artifactTags": { + "ShareTag-Official1PGallery": "Official1PGallery" + } + } + } + ], + "nextLink": "http://svchost:99/subscriptions/subscriptionId/providers/Microsoft.Compute/sharedGalleries?$skiptoken=token/Subscriptions/subscriptionId/galleries/galleryUniqueName" + } + } + }, + "operationId": "SharedGalleries_List", + "title": "List shared galleries." +} diff --git a/specification/compute/resource-manager/readme.md b/specification/compute/resource-manager/readme.md index 26abaf916347..b0584e73171b 100644 --- a/specification/compute/resource-manager/readme.md +++ b/specification/compute/resource-manager/readme.md @@ -351,26 +351,39 @@ suppressions: where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/scaleOut"].post ``` -### Tag: package-2025-04-01 +### Tag: package-2025-03-03 -These settings apply only when `--tag=package-2025-04-01` is specified on the command line. +These settings apply only when `--tag=package-2025-03-03` is specified on the command line. -``` yaml $(tag) == 'package-2025-04-01' +``` yaml $(tag) == 'package-2025-03-03' input-file: - Microsoft.Compute/ComputeRP/stable/2025-04-01/ComputeRP.json - Microsoft.Compute/DiskRP/stable/2025-01-02/DiskRP.json - Microsoft.Compute/Skus/stable/2021-07-01/skus.json - - Microsoft.Compute/GalleryRP/stable/2024-03-03/GalleryRP.json + - Microsoft.Compute/GalleryRP/stable/2025-03-03/GalleryRP.json - Microsoft.Compute/CloudserviceRP/stable/2024-11-04/cloudService.json ``` -### Tag: package-2025-04-01-only +### Tag: package-2025-03-03-only -These settings apply only when `--tag=package-2025-04-01-only` is specified on the command line. +These settings apply only when `--tag=package-2025-03-03-only` is specified on the command line. -```yaml $(tag) == 'package-2025-04-01-only' +```yaml $(tag) == 'package-2025-03-03-only' +input-file: + - Microsoft.Compute/GalleryRP/stable/2025-03-03/GalleryRP.json +``` + +### Tag: package-2025-04-01 + +These settings apply only when `--tag=package-2025-04-01` is specified on the command line. + +``` yaml $(tag) == 'package-2025-04-01' input-file: - Microsoft.Compute/ComputeRP/stable/2025-04-01/ComputeRP.json + - Microsoft.Compute/DiskRP/stable/2025-01-02/DiskRP.json + - Microsoft.Compute/Skus/stable/2021-07-01/skus.json + - Microsoft.Compute/GalleryRP/stable/2024-03-03/GalleryRP.json + - Microsoft.Compute/CloudserviceRP/stable/2024-11-04/cloudService.json ``` ### Tag: package-2025-03-01 @@ -531,6 +544,26 @@ These settings apply only when `--tag=package-2024-03-03-only` is specified on t input-file: - Microsoft.Compute/common-types/v1/common.json - Microsoft.Compute/GalleryRP/stable/2024-03-03/GalleryRP.json + +directive: + # Strip readOnly only from 2024-03-03 to avoid retroactive breaking change + - from: Microsoft.Compute/GalleryRP/stable/2024-03-03/GalleryRP.json + where: + - $.definitions.GalleryProperties.properties.provisioningState + - $.definitions.SharingStatus.properties.aggregatedState + - $.definitions.RegionalSharingStatus.properties.state + - $.definitions.GalleryApplicationVersionProperties.properties.provisioningState + - $.definitions.GalleryImageProperties.properties.provisioningState + - $.definitions.GalleryImageVersionProperties.properties.provisioningState + - $.definitions.ExecutedValidation.properties.status + - $.definitions.GalleryInVMAccessControlProfileProperties.properties.provisioningState + - $.definitions.GalleryInVMAccessControlProfileVersionProperties.properties.provisioningState + - $.definitions.GalleryResourceProfilePropertiesBase.properties.provisioningState + - $.definitions.GalleryResourceProfileVersionPropertiesBase.properties.provisioningState + - $.definitions.GalleryProvisioningState + - $.definitions.SharingState + - $.definitions.ValidationStatus + transform: delete $.readOnly ``` ### Tag: package-2024-07-01 From c590866a83642ded67458664981de95ae20bae28 Mon Sep 17 00:00:00 2001 From: Ryan Zhang Date: Wed, 17 Dec 2025 14:04:59 -0800 Subject: [PATCH 053/117] add .net sdk config (#39177) Signed-off-by: Ryan Zhang --- .../Microsoft.ContainerService/fleet/tspconfig.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/tspconfig.yaml b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/tspconfig.yaml index 6065beb38f00..e504e93769ff 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/tspconfig.yaml +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/tspconfig.yaml @@ -24,6 +24,9 @@ options: generate-test: true generate-sample: true flavor: azure + "@azure-typespec/http-client-csharp-mgmt": + namespace: "Azure.ResourceManager.Containerservicefleet" + emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" "@azure-tools/typespec-java": emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-containerservicefleet" namespace: "com.azure.resourcemanager.containerservicefleet" From 48fcf125117dd5c4ad60b512d76bfe0cf13cc5f1 Mon Sep 17 00:00:00 2001 From: Ray Chen Date: Wed, 17 Dec 2025 14:34:38 -0800 Subject: [PATCH 054/117] Made dotnet SDK validation required (#39318) * Enabled required setting for .net * Fixed test --- eng/tools/spec-gen-sdk-runner/src/types.ts | 2 +- eng/tools/spec-gen-sdk-runner/test/command-helpers.test.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/tools/spec-gen-sdk-runner/src/types.ts b/eng/tools/spec-gen-sdk-runner/src/types.ts index 8ba8eced66e6..e886126129aa 100644 --- a/eng/tools/spec-gen-sdk-runner/src/types.ts +++ b/eng/tools/spec-gen-sdk-runner/src/types.ts @@ -65,7 +65,7 @@ export const SpecGenSdkRequiredSettings: Record = { }, "azure-sdk-for-net": { dataPlane: false, - managementPlane: false, + managementPlane: true, }, "azure-sdk-for-python": { dataPlane: true, diff --git a/eng/tools/spec-gen-sdk-runner/test/command-helpers.test.ts b/eng/tools/spec-gen-sdk-runner/test/command-helpers.test.ts index fb17f03de1a5..62c740bb4987 100644 --- a/eng/tools/spec-gen-sdk-runner/test/command-helpers.test.ts +++ b/eng/tools/spec-gen-sdk-runner/test/command-helpers.test.ts @@ -608,8 +608,8 @@ describe("commands.ts", () => { expect(result).toBe(true); const result2 = getRequiredSettingValue(true, true, "azure-sdk-for-net"); - // .NET SDK set (managementPlane: false) - expect(result2).toBe(false); + // .NET SDK set (managementPlane: true) + expect(result2).toBe(true); }); test("should return dataPlane setting when hasManagementPlaneSpecs is false", () => { From 1927b65eb3f3c6c29188fc6b4d5c21e4f544b097 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:36:50 -0800 Subject: [PATCH 055/117] Remove Invoke-ToolDescriptionEvaluator script (#39321) Co-authored-by: Summer Warren --- .../Invoke-ToolDescriptionEvaluator.ps1 | 112 ------------------ 1 file changed, 112 deletions(-) delete mode 100644 eng/common/scripts/Invoke-ToolDescriptionEvaluator.ps1 diff --git a/eng/common/scripts/Invoke-ToolDescriptionEvaluator.ps1 b/eng/common/scripts/Invoke-ToolDescriptionEvaluator.ps1 deleted file mode 100644 index 6029917adcfd..000000000000 --- a/eng/common/scripts/Invoke-ToolDescriptionEvaluator.ps1 +++ /dev/null @@ -1,112 +0,0 @@ -<# -.SYNOPSIS - Evaluates tool and prompt descriptions and produces a Markdown results report using Tool Description Evaluator from Mcp repo. - -.DESCRIPTION - This script builds and runs the ToolDescriptionEvaluator (.NET) against a set of tool and prompt definitions. - It restores and compiles the evaluator, executes it with the provided JSON inputs, and emits a `results.md` - report. The script supports configuration via parameters and environment variables for the embedding model - service used during evaluation. - -.LINK - https://github.com/microsoft/mcp/tree/main/eng/tools/ToolDescriptionEvaluator - -.PARAMETER EvaluatorPath - The path to the evaluator project root (or its `src` directory) that will be restored, built, and executed. - -.PARAMETER ToolsFilePath - The path to the JSON file containing tool definitions to be evaluated. - -.PARAMETER PromptsFilePath - The path to the JSON file containing prompt definitions to be evaluated. - -.PARAMETER OutputFilePath - The target file path where the generated `results.md` will be moved after the evaluator runs. - -.PARAMETER AoaiEndpoint - The full endpoint URL for the embedding model (e.g., Azure OpenAI embeddings) used by the evaluator. - -.PARAMETER TextEmbeddingApiKey - The API key used to authenticate with the embedding endpoint. Prefer providing this via a secure - secret store or environment variable rather than hard-coding. - -.NOTES - - The evaluator emits `results.md` in the evaluator folder; this script moves it to `OutputFilePath`. - - Requires .NET SDK available on PATH. - - Set-StrictMode is enabled. - -.EXAMPLE - .\Invoke-ToolDescriptionEvaluator.ps1 ` - -EvaluatorPath "C:\work\mcp\eng\tools\ToolDescriptionEvaluator\src" ` - -ToolsFilePath "C:\work\azure-sdk-tools\tools\azsdk-cli\azure-sdk-tools.json" ` - -PromptsFilePath "C:\work\azure-sdk-tools\tools\azsdk-cli\azure-sdk-prompts.json" ` - -OutputFilePath "C:\work\azure-sdk-tools\tools\azsdk-cli" ` - -AoaiEndpoint "https:///openai/deployments/text-embedding-3-large/embeddings?api-version=2023-05-15" ` - -TextEmbeddingApiKey (Get-Secret -Name 'TextEmbeddingApiKey') - - Runs the evaluator with the specified tools and prompts files, then moves the generated results to the output path. -#> -param ( - [Parameter(Mandatory = $true)] - [string] $EvaluatorPath, - - [Parameter(Mandatory = $true)] - [string] $ToolsFilePath, - - [Parameter(Mandatory = $true)] - [string] $PromptsFilePath, - - [Parameter(Mandatory = $true)] - [string] $OutputFilePath, - - # Environment Variables - [Parameter(Mandatory = $true)] - [string] $AoaiEndpoint, - - [Parameter(Mandatory = $true)] - [string] $TextEmbeddingApiKey -) - -Set-StrictMode -Version 3 - -# Validate input paths -$pathsToCheck = @{ - "EvaluatorPath" = $EvaluatorPath - "ToolsFilePath" = $ToolsFilePath - "PromptsFilePath" = $PromptsFilePath - "OutputFilePath" = $OutputFilePath -} - -foreach ($p in $pathsToCheck.GetEnumerator()) { - if (-not (Test-Path -Path $p.Value)) { - throw "Path does not exist for parameter '$($p.Key)': $($p.Value)" - } -} - -# Build & run the evaluator -Write-Host "Changing directory to evaluator: $EvaluatorPath" -Push-Location $EvaluatorPath -try { - $env:AOAI_ENDPOINT = $AoaiEndpoint - $env:TEXT_EMBEDDING_API_KEY = $TextEmbeddingApiKey - - Write-Host "Running Tool..." - dotnet run --configuration Release -- --tools-file "$ToolsFilePath" --prompts-file "$PromptsFilePath" -} -finally { - Pop-Location - Remove-Item Env:\AOAI_ENDPOINT -ErrorAction SilentlyContinue - Remove-Item Env:\TEXT_EMBEDDING_API_KEY -ErrorAction SilentlyContinue -} - -# The tool emits results.md in the evaluator folder -$generatedName = 'results.md' -$EvaluatorRoot = Split-Path $EvaluatorPath -Parent -$generatedPath = Join-Path -Path $EvaluatorRoot -ChildPath $generatedName -if (-not (Test-Path -Path $generatedPath -PathType Leaf)) { - throw "Expected output file not found: $generatedPath" -} - -Write-Host "Moving Results File: $generatedPath -> $OutputFilePath" -Move-Item -Path $generatedPath -Destination $OutputFilePath -Force -Write-Host "Successfully moved results file to $OutputFilePath" \ No newline at end of file From a1ea06e84e781c73cb34d9c01c17cf3cee994f38 Mon Sep 17 00:00:00 2001 From: Xiang Yan Date: Wed, 17 Dec 2025 14:47:20 -0800 Subject: [PATCH 056/117] Rename body (#39265) * Rename body * update examples. * updates * update * update * updates --- .../search/data-plane/Search/client.tsp | 21 +- .../SearchServiceCreateDataSource.json | 2 +- ...ServiceCreateKnowledgeSourceAzureBlob.json | 2 +- ...SearchServiceCreateOrUpdateDataSource.json | 2 +- ...reateOrUpdateKnowledgeSourceAzureBlob.json | 4 +- ...rchServiceGetKnowledgeSourceAzureBlob.json | 2 +- ...rviceGetKnowledgeSourceIndexedOneLake.json | 2 +- ...ceGetKnowledgeSourceIndexedSharePoint.json | 2 +- ...hServiceListKnowledgeSourcesAzureBlob.json | 2 +- ...iceListKnowledgeSourcesIndexedOneLake.json | 2 +- ...ListKnowledgeSourcesIndexedSharePoint.json | 2 +- .../search/data-plane/Search/models-index.tsp | 18 +- .../Search/models-knowledgebase.tsp | 1 - .../data-plane/Search/models-service.tsp | 4 +- .../data-plane/Search/models-shared.tsp | 15 +- .../SearchServiceCreateDataSource.json | 2 +- ...ServiceCreateKnowledgeSourceAzureBlob.json | 2 +- ...SearchServiceCreateOrUpdateDataSource.json | 2 +- ...reateOrUpdateKnowledgeSourceAzureBlob.json | 4 +- ...rchServiceGetKnowledgeSourceAzureBlob.json | 2 +- ...rviceGetKnowledgeSourceIndexedOneLake.json | 2 +- ...ceGetKnowledgeSourceIndexedSharePoint.json | 2 +- ...hServiceListKnowledgeSourcesAzureBlob.json | 2 +- ...iceListKnowledgeSourcesIndexedOneLake.json | 2 +- ...ListKnowledgeSourcesIndexedSharePoint.json | 2 +- .../preview/2025-11-01-preview/search.json | 947 +++++++++++++++++- .../search/data-plane/Search/routes-index.tsp | 15 +- .../Search/routes-knowledgebase.tsp | 3 + .../data-plane/Search/routes-service.tsp | 202 +++- 29 files changed, 1186 insertions(+), 84 deletions(-) diff --git a/specification/search/data-plane/Search/client.tsp b/specification/search/data-plane/Search/client.tsp index 981951706bb1..af899618afc3 100644 --- a/specification/search/data-plane/Search/client.tsp +++ b/specification/search/data-plane/Search/client.tsp @@ -177,6 +177,10 @@ namespace SearchIndexClient { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" create is Search.KnowledgeSources.create; + + #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" + #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" + getStatus is Search.KnowledgeSources.getStatus; } interface Root { @@ -336,8 +340,18 @@ namespace KnowledgeBaseRetrievalClient { @@usage(DebugInfo, Usage.input); @@access(SearchResult, Access.public); @@usage(SearchResult, Usage.input); +@@access(AnalyzeResult, Access.public); +@@usage(AnalyzeResult, Usage.input); +@@access(AnalyzeRequest, Access.public); +@@usage(AnalyzeRequest, Usage.input); +@@access(DocumentKeysOrIds, Access.public); +@@usage(DocumentKeysOrIds, Usage.input); +@@access(SkillNames, Access.public); +@@usage(SkillNames, Usage.input); @@access(SearchDocumentsResult, Access.public); @@usage(SearchDocumentsResult, Usage.input); +@@access(GetIndexStatisticsResult, Access.public); +@@usage(GetIndexStatisticsResult, Usage.input); @@access(SemanticErrorReason, Access.public); @@usage(SemanticErrorReason, Usage.input); @@access(IndexBatch, Access.public); @@ -361,15 +375,20 @@ namespace KnowledgeBaseRetrievalClient { @@access(SearchIndexerClient.DataSources.delete, Access.internal, "python"); @@access(SearchIndexerClient.Indexers.list, Access.internal); @@access(SearchIndexerClient.Indexers.createOrUpdate, Access.internal); +@@access(SearchIndexerClient.Indexers.resetDocs, Access.internal, "python"); @@access(SearchIndexerClient.Indexers.delete, Access.internal, "python"); +@@access(SearchIndexerClient.Indexers.resync, Access.internal, "python"); @@access(SearchIndexerClient.Skillsets.list, Access.internal); @@access(SearchIndexerClient.Skillsets.createOrUpdate, Access.internal); @@access(SearchIndexerClient.Skillsets.delete, Access.internal, "python"); +@@access(SearchIndexerClient.Skillsets.resetSkills, Access.internal, "python"); @@access(SearchIndexClient.SynonymMaps.list, Access.internal); @@access(SearchIndexClient.SynonymMaps.createOrUpdate, Access.internal); @@access(SearchIndexClient.SynonymMaps.delete, Access.internal, "python"); @@access(SearchIndexClient.Indexes.createOrUpdate, Access.internal); @@access(SearchIndexClient.Indexes.delete, Access.internal, "python"); +@@access(SearchIndexClient.Indexes.analyze, Access.internal, "python"); +@@access(SearchIndexClient.Indexes.getStatistics, Access.internal, "python"); @@access(SearchIndexClient.Aliases.createOrUpdate, Access.internal); @@access(SearchIndexClient.Aliases.delete, Access.internal, "python"); @@access(SearchIndexClient.KnowledgeBases.createOrUpdate, Access.internal); @@ -2512,6 +2531,7 @@ namespace KnowledgeBaseRetrievalClient { ); @@clientName(SearchIndexClient.Sources.get, "getKnowledgeSource"); @@clientName(SearchIndexClient.Sources.list, "listKnowledgeSources"); +@@clientName(SearchIndexClient.Sources.getStatus, "getKnowledgeSourceStatus"); @@clientName(SearchIndexerClient.Indexers.create, "createIndexer"); @@clientName(SearchIndexerClient.Indexers.createOrUpdate, "createOrUpdateIndexer" @@ -2557,7 +2577,6 @@ namespace KnowledgeBaseRetrievalClient { @@clientName(IndexBatch.value, "actions"); @@clientName(IndexDocumentsResult.value, "results"); @@clientName(IndexingResult.status, "succeeded"); -@@clientName(AutocompleteRequest.autocompleteMode, "mode"); @@clientName(AutocompleteResult.value, "results"); @@clientName(AutocompleteRequest.search, "searchText"); @@clientName(AutocompleteRequest.fuzzy, "useFuzzyMatching"); diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateDataSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateDataSource.json index afae76cb7af9..e831a325662f 100644 --- a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateDataSource.json +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateDataSource.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "dataSource": { + "dataSourceConnection": { "name": "tempdatasource", "description": "My Azure Blob data source.", "type": "azureblob", diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceAzureBlob.json index 107a63564eb5..3fff75913cb9 100644 --- a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceAzureBlob.json +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateKnowledgeSourceAzureBlob.json @@ -127,7 +127,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateDataSource.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateDataSource.json index c004be55155a..4de13e5a00f3 100644 --- a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateDataSource.json +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateDataSource.json @@ -10,7 +10,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "dataSource": { + "dataSourceConnection": { "name": "tempdatasource", "description": "My Azure Adls Gen2 data source with ACLs.", "type": "adlsgen2", diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json index ba4ed6d5f5a8..ddc5f2f78d74 100644 --- a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json @@ -131,7 +131,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" @@ -199,7 +199,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceAzureBlob.json index 0e3332e93d30..7afdcb7c781f 100644 --- a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceAzureBlob.json +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceAzureBlob.json @@ -68,7 +68,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedOneLake.json index 59a5f847f64e..9ed0ee34bf11 100644 --- a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedOneLake.json +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedOneLake.json @@ -67,7 +67,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedSharePoint.json index 3defb0ec6346..e012cd45298c 100644 --- a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedSharePoint.json +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceGetKnowledgeSourceIndexedSharePoint.json @@ -67,7 +67,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesAzureBlob.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesAzureBlob.json index bedab455254c..104c648acc0d 100644 --- a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesAzureBlob.json +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesAzureBlob.json @@ -69,7 +69,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedOneLake.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedOneLake.json index 3687cf7b659b..80c70ec8bead 100644 --- a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedOneLake.json +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedOneLake.json @@ -68,7 +68,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedSharePoint.json b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedSharePoint.json index ef817f655de0..21f7f44473f2 100644 --- a/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedSharePoint.json +++ b/specification/search/data-plane/Search/examples/2025-11-01-preview/SearchServiceListKnowledgeSourcesIndexedSharePoint.json @@ -68,7 +68,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/models-index.tsp b/specification/search/data-plane/Search/models-index.tsp index 826794381707..c92a994b9447 100644 --- a/specification/search/data-plane/Search/models-index.tsp +++ b/specification/search/data-plane/Search/models-index.tsp @@ -795,7 +795,7 @@ model SearchRequest { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" @doc("The comma-separated list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting.") @encode(ArrayEncoding.commaDelimited) - highlight?: string; + highlight?: string[]; @doc("A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>.") highlightPostTag?: string; @@ -809,7 +809,7 @@ model SearchRequest { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" @doc("The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.") @encode(ArrayEncoding.commaDelimited) - orderby?: string; + orderby?: string[]; @doc("A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax.") queryType?: QueryType; @@ -835,7 +835,7 @@ model SearchRequest { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" @doc("The comma-separated list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter.") @encode(ArrayEncoding.commaDelimited) - searchFields?: string; + searchFields?: string[]; @doc("A value that specifies whether any or all of the search terms must be matched in order to count the document as a match.") searchMode?: SearchMode; @@ -849,7 +849,7 @@ model SearchRequest { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" @doc("The comma-separated list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included.") @encode(ArrayEncoding.commaDelimited) - select?: string; + select?: string[]; @doc("The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use skip due to this limitation, consider using orderby on a totally-ordered key and filter with a range query instead.") skip?: int32; @@ -882,7 +882,7 @@ model SearchRequest { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" @doc("The comma-separated list of field names used for semantic ranking.") @encode(ArrayEncoding.commaDelimited) - semanticFields?: string; + semanticFields?: string[]; @doc("The query parameters for vector and hybrid search queries.") vectorQueries?: VectorQuery[]; @@ -1151,7 +1151,7 @@ model SuggestRequest { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" @doc("The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.") @encode(ArrayEncoding.commaDelimited) - orderby?: string; + orderby?: string[]; @doc("The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters.") search: string; @@ -1159,12 +1159,12 @@ model SuggestRequest { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" @doc("The comma-separated list of field names to search for the specified search text. Target fields must be included in the specified suggester.") @encode(ArrayEncoding.commaDelimited) - searchFields?: string; + searchFields?: string[]; #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" @doc("The comma-separated list of fields to retrieve. If unspecified, only the key field will be included in the results.") @encode(ArrayEncoding.commaDelimited) - select?: string; + select?: string[]; @doc("The name of the suggester as specified in the suggesters collection that's part of the index definition.") suggesterName: string; @@ -1277,7 +1277,7 @@ model AutocompleteRequest { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" @doc("The comma-separated list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester.") @encode(ArrayEncoding.commaDelimited) - searchFields?: string; + searchFields?: string[]; @doc("The name of the suggester as specified in the suggesters collection that's part of the index definition.") suggesterName: string; diff --git a/specification/search/data-plane/Search/models-knowledgebase.tsp b/specification/search/data-plane/Search/models-knowledgebase.tsp index 77cfaff26cb6..fa82653b1fbf 100644 --- a/specification/search/data-plane/Search/models-knowledgebase.tsp +++ b/specification/search/data-plane/Search/models-knowledgebase.tsp @@ -6,7 +6,6 @@ import "./models-service.tsp"; import "./models-shared.tsp"; using TypeSpec.Http; -using Azure.ClientGenerator.Core.Legacy; namespace Search; diff --git a/specification/search/data-plane/Search/models-service.tsp b/specification/search/data-plane/Search/models-service.tsp index 119b9926c46d..4c5b041a62e5 100644 --- a/specification/search/data-plane/Search/models-service.tsp +++ b/specification/search/data-plane/Search/models-service.tsp @@ -3868,7 +3868,7 @@ model SynonymMap { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" @doc("A series of synonym rules in the specified synonym map format. The rules must be separated by newlines.") @encode(ArrayEncoding.newlineDelimited) - synonyms: string; + synonyms: string[]; #suppress "@azure-tools/typespec-azure-core/no-nullable" "Pre-existing API contract" @doc("A description of an encryption key that you create in Azure Key Vault. This key is used to provide an additional level of encryption-at-rest for your data when you want full assurance that no one, not even Microsoft, can decrypt your data. Once you have encrypted your data, it will always remain encrypted. The search service will ignore attempts to set this property to null. You can change this property as needed if you want to rotate your encryption key; Your data will be unaffected. Encryption with customer-managed keys is not available for free search services, and is only available for paid services created on or after January 1, 2019.") @@ -4818,7 +4818,7 @@ model PatternAnalyzer extends LexicalAnalyzer { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" @doc("Regular expression flags.") @encode(ArrayEncoding.pipeDelimited) - flags?: RegexFlags; + flags?: RegexFlags[]; @doc("A list of stopwords.") stopwords?: string[]; diff --git a/specification/search/data-plane/Search/models-shared.tsp b/specification/search/data-plane/Search/models-shared.tsp index fc056b6763dc..0afbd5661d1f 100644 --- a/specification/search/data-plane/Search/models-shared.tsp +++ b/specification/search/data-plane/Search/models-shared.tsp @@ -25,12 +25,23 @@ alias preferHeader = { prefer: "return=representation"; }; +alias acceptHeaderMinimal = { + @doc("The Accept header.") + @header("Accept") + accept: "application/json;odata.metadata=minimal"; +}; + +alias acceptHeaderNone = { + @doc("The Accept header.") + @header("Accept") + accept: "application/json;odata.metadata=none"; +}; + alias selectQuery = { #suppress "@azure-tools/typespec-azure-core/known-encoding" "Pre-existing API contract" @doc("Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.") @query - @encode(ArrayEncoding.commaDelimited) - $select?: string; + $select?: string[]; }; alias indexNamePath = { diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateDataSource.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateDataSource.json index afae76cb7af9..e831a325662f 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateDataSource.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateDataSource.json @@ -5,7 +5,7 @@ "endpoint": "https://previewexampleservice.search.windows.net", "api-version": "2025-11-01-preview", "x-ms-client-request-id": "00000000-0000-0000-0000-000000000000", - "dataSource": { + "dataSourceConnection": { "name": "tempdatasource", "description": "My Azure Blob data source.", "type": "azureblob", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceAzureBlob.json index 107a63564eb5..3fff75913cb9 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceAzureBlob.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateKnowledgeSourceAzureBlob.json @@ -127,7 +127,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateDataSource.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateDataSource.json index c004be55155a..4de13e5a00f3 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateDataSource.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateDataSource.json @@ -10,7 +10,7 @@ "If-Match": null, "If-None-Match": null, "Prefer": "return=representation", - "dataSource": { + "dataSourceConnection": { "name": "tempdatasource", "description": "My Azure Adls Gen2 data source with ACLs.", "type": "adlsgen2", diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json index ba4ed6d5f5a8..ddc5f2f78d74 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceCreateOrUpdateKnowledgeSourceAzureBlob.json @@ -131,7 +131,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" @@ -199,7 +199,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceGetKnowledgeSourceAzureBlob.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceGetKnowledgeSourceAzureBlob.json index 0e3332e93d30..7afdcb7c781f 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceGetKnowledgeSourceAzureBlob.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceGetKnowledgeSourceAzureBlob.json @@ -68,7 +68,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceGetKnowledgeSourceIndexedOneLake.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceGetKnowledgeSourceIndexedOneLake.json index 59a5f847f64e..9ed0ee34bf11 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceGetKnowledgeSourceIndexedOneLake.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceGetKnowledgeSourceIndexedOneLake.json @@ -67,7 +67,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceGetKnowledgeSourceIndexedSharePoint.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceGetKnowledgeSourceIndexedSharePoint.json index 3defb0ec6346..e012cd45298c 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceGetKnowledgeSourceIndexedSharePoint.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceGetKnowledgeSourceIndexedSharePoint.json @@ -67,7 +67,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceListKnowledgeSourcesAzureBlob.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceListKnowledgeSourcesAzureBlob.json index bedab455254c..104c648acc0d 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceListKnowledgeSourcesAzureBlob.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceListKnowledgeSourcesAzureBlob.json @@ -69,7 +69,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceListKnowledgeSourcesIndexedOneLake.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceListKnowledgeSourcesIndexedOneLake.json index 3687cf7b659b..80c70ec8bead 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceListKnowledgeSourcesIndexedOneLake.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceListKnowledgeSourcesIndexedOneLake.json @@ -68,7 +68,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceListKnowledgeSourcesIndexedSharePoint.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceListKnowledgeSourcesIndexedSharePoint.json index ef817f655de0..21f7f44473f2 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceListKnowledgeSourcesIndexedSharePoint.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/examples/SearchServiceListKnowledgeSourcesIndexedSharePoint.json @@ -68,7 +68,7 @@ } }, "createdResources": { - "datasource": "ks-preview-test-datasource", + "dataSourceConnection": "ks-preview-test-datasource", "indexer": "ks-preview-test-indexer", "skillset": "ks-preview-test-skillset", "index": "ks-preview-test-index" diff --git a/specification/search/data-plane/Search/preview/2025-11-01-preview/search.json b/specification/search/data-plane/Search/preview/2025-11-01-preview/search.json index 4dabfbb0036e..77e3b078e0db 100644 --- a/specification/search/data-plane/Search/preview/2025-11-01-preview/search.json +++ b/specification/search/data-plane/Search/preview/2025-11-01-preview/search.json @@ -54,6 +54,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -85,6 +99,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -127,6 +155,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -166,6 +208,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -250,6 +306,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -307,13 +377,30 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "$select", "in": "query", "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", "required": false, - "type": "string", - "format": "ArrayEncoding.commaDelimited" + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -346,11 +433,25 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, { - "name": "dataSource", + "name": "dataSourceConnection", "in": "body", "description": "The definition of the datasource to create.", "required": true, @@ -388,6 +489,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -427,6 +542,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -519,6 +648,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -576,13 +719,30 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "$select", "in": "query", "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", "required": false, - "type": "string", - "format": "ArrayEncoding.commaDelimited" + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -615,6 +775,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -657,6 +831,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -696,6 +884,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -795,6 +997,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -852,6 +1068,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -890,6 +1120,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "overwrite", "in": "query", @@ -945,6 +1189,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -992,6 +1250,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -1030,6 +1302,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -1074,13 +1360,30 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "$select", "in": "query", "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", "required": false, - "type": "string", - "format": "ArrayEncoding.commaDelimited" + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -1113,6 +1416,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -1155,6 +1472,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -1194,6 +1525,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -1285,6 +1630,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -1342,6 +1701,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=none" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "x-ms-query-source-authorization", "in": "header", @@ -1503,6 +1876,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=none" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -1545,6 +1932,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=none" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "search", "in": "query", @@ -1690,6 +2091,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=none" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -1746,6 +2161,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=none" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -1795,6 +2224,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=none" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "x-ms-query-source-authorization", "in": "header", @@ -1869,6 +2312,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=none" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -1918,6 +2375,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=none" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "search", "in": "query", @@ -2001,6 +2472,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=none" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "x-ms-query-source-authorization", "in": "header", @@ -2077,6 +2562,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -2127,6 +2626,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -2168,6 +2681,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -2201,6 +2728,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -2232,6 +2773,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -2274,6 +2829,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -2313,6 +2882,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -2397,6 +2980,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -2454,6 +3051,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "knowledgeBaseName", "in": "path", @@ -2520,6 +3131,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -2563,6 +3188,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -2617,6 +3256,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -2668,6 +3321,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -2764,6 +3431,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -2833,6 +3514,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -2874,6 +3569,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" } @@ -2910,13 +3619,30 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "$select", "in": "query", "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", "required": false, - "type": "string", - "format": "ArrayEncoding.commaDelimited" + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -2949,6 +3675,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -2991,6 +3731,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -3030,6 +3784,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -3129,6 +3897,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -3186,6 +3968,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -3233,13 +4029,30 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "$select", "in": "query", "description": "Selects which top-level properties to retrieve. Specified as a comma-separated list of JSON property names, or '*' for all properties. The default is all properties.", "required": false, - "type": "string", - "format": "ArrayEncoding.commaDelimited" + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "csv" }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" @@ -3272,6 +4085,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -3314,6 +4141,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" }, @@ -3353,6 +4194,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -3437,6 +4292,20 @@ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, + { + "name": "Accept", + "in": "header", + "description": "The Accept header.", + "required": true, + "type": "string", + "enum": [ + "application/json;odata.metadata=minimal" + ], + "x-ms-enum": { + "modelAsString": false + }, + "x-ms-client-name": "accept" + }, { "name": "If-Match", "in": "header", @@ -3902,7 +4771,10 @@ "searchFields": { "type": "string", "format": "ArrayEncoding.commaDelimited", - "description": "The comma-separated list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester." + "description": "The comma-separated list of field names to consider when querying for auto-completed terms. Target fields must be included in the specified suggester.", + "items": { + "type": "string" + } }, "suggesterName": { "type": "string", @@ -13060,10 +13932,12 @@ "default": "\\W+" }, "flags": { - "$ref": "#/definitions/RegexFlags", "type": "string", "format": "ArrayEncoding.pipeDelimited", - "description": "Regular expression flags." + "description": "Regular expression flags.", + "items": { + "$ref": "#/definitions/RegexFlags" + } }, "stopwords": { "type": "array", @@ -15911,7 +16785,10 @@ "highlight": { "type": "string", "format": "ArrayEncoding.commaDelimited", - "description": "The comma-separated list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting." + "description": "The comma-separated list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting.", + "items": { + "type": "string" + } }, "highlightPostTag": { "type": "string", @@ -15929,7 +16806,10 @@ "orderby": { "type": "string", "format": "ArrayEncoding.commaDelimited", - "description": "The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses." + "description": "The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.", + "items": { + "type": "string" + } }, "queryType": { "$ref": "#/definitions/QueryType", @@ -15965,7 +16845,10 @@ "searchFields": { "type": "string", "format": "ArrayEncoding.commaDelimited", - "description": "The comma-separated list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter." + "description": "The comma-separated list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter.", + "items": { + "type": "string" + } }, "searchMode": { "$ref": "#/definitions/SearchMode", @@ -15982,7 +16865,10 @@ "select": { "type": "string", "format": "ArrayEncoding.commaDelimited", - "description": "The comma-separated list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included." + "description": "The comma-separated list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included.", + "items": { + "type": "string" + } }, "skip": { "type": "integer", @@ -16027,7 +16913,10 @@ "semanticFields": { "type": "string", "format": "ArrayEncoding.commaDelimited", - "description": "The comma-separated list of field names used for semantic ranking." + "description": "The comma-separated list of field names used for semantic ranking.", + "items": { + "type": "string" + } }, "vectorQueries": { "type": "array", @@ -18244,7 +19133,10 @@ "orderby": { "type": "string", "format": "ArrayEncoding.commaDelimited", - "description": "The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses." + "description": "The comma-separated list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.", + "items": { + "type": "string" + } }, "search": { "type": "string", @@ -18253,12 +19145,18 @@ "searchFields": { "type": "string", "format": "ArrayEncoding.commaDelimited", - "description": "The comma-separated list of field names to search for the specified search text. Target fields must be included in the specified suggester." + "description": "The comma-separated list of field names to search for the specified search text. Target fields must be included in the specified suggester.", + "items": { + "type": "string" + } }, "select": { "type": "string", "format": "ArrayEncoding.commaDelimited", - "description": "The comma-separated list of fields to retrieve. If unspecified, only the key field will be included in the results." + "description": "The comma-separated list of fields to retrieve. If unspecified, only the key field will be included in the results.", + "items": { + "type": "string" + } }, "suggesterName": { "type": "string", @@ -18344,7 +19242,10 @@ "synonyms": { "type": "string", "format": "ArrayEncoding.newlineDelimited", - "description": "A series of synonym rules in the specified synonym map format. The rules must be separated by newlines." + "description": "A series of synonym rules in the specified synonym map format. The rules must be separated by newlines.", + "items": { + "type": "string" + } }, "encryptionKey": { "$ref": "#/definitions/SearchResourceEncryptionKey", diff --git a/specification/search/data-plane/Search/routes-index.tsp b/specification/search/data-plane/Search/routes-index.tsp index 5014bd7b86a5..80c5efa3addc 100644 --- a/specification/search/data-plane/Search/routes-index.tsp +++ b/specification/search/data-plane/Search/routes-index.tsp @@ -13,7 +13,9 @@ interface Documents { @route("/indexes('{indexName}')/docs/$count") @get count is SearchIndexOperation< - {}, + { + ...acceptHeaderNone; + }, { @header contentType: "application/json"; @body body: int64; @@ -27,6 +29,7 @@ interface Documents { @get searchGet is SearchIndexOperation< { + ...acceptHeaderNone; ...querySourceAuthorizationHeader; ...enableElevatedReadHeader; @@ -51,6 +54,7 @@ interface Documents { @post searchPost is SearchIndexOperation< { + ...acceptHeaderNone; ...querySourceAuthorizationHeader; ...enableElevatedReadHeader; ...SearchRequest; @@ -69,6 +73,7 @@ interface Documents { @get get is SearchIndexOperation< { + ...acceptHeaderNone; ...querySourceAuthorizationHeader; ...enableElevatedReadHeader; @@ -90,6 +95,8 @@ interface Documents { @get suggestGet is SearchIndexOperation< { + ...acceptHeaderNone; + @doc("The search text to use to suggest documents. Must be at least 1 character, and no more than 100 characters.") @query("search") searchText: string; @@ -109,6 +116,7 @@ interface Documents { @post suggestPost is SearchIndexOperation< { + ...acceptHeaderNone; ...SuggestRequest; }, SuggestDocumentsResult @@ -120,6 +128,8 @@ interface Documents { @post index is SearchIndexOperation< { + ...acceptHeaderNone; + @doc("The batch of index actions.") @body batch: IndexBatch; @@ -134,6 +144,8 @@ interface Documents { @get autocompleteGet is SearchIndexOperation< { + ...acceptHeaderNone; + @doc("The incomplete term which should be auto-completed.") @query("search") searchText: string; @@ -183,6 +195,7 @@ interface Documents { @post autocompletePost is SearchIndexOperation< { + ...acceptHeaderNone; ...AutocompleteRequest; }, AutocompleteResult diff --git a/specification/search/data-plane/Search/routes-knowledgebase.tsp b/specification/search/data-plane/Search/routes-knowledgebase.tsp index a6d9cd12c1d5..b961b67c34a6 100644 --- a/specification/search/data-plane/Search/routes-knowledgebase.tsp +++ b/specification/search/data-plane/Search/routes-knowledgebase.tsp @@ -1,6 +1,7 @@ import "@azure-tools/typespec-azure-core"; import "@typespec/rest"; import "./models-knowledgebase.tsp"; +import "./models-shared.tsp"; using TypeSpec.Http; using Azure.Core; @@ -15,6 +16,8 @@ interface KnowledgeRetrieval { @post retrieve is Foundations.Operation< { + ...acceptHeaderMinimal; + @doc("The name of the knowledge base.") @path knowledgeBaseName: string; diff --git a/specification/search/data-plane/Search/routes-service.tsp b/specification/search/data-plane/Search/routes-service.tsp index 15b513cc9188..3da53f5d615f 100644 --- a/specification/search/data-plane/Search/routes-service.tsp +++ b/specification/search/data-plane/Search/routes-service.tsp @@ -4,6 +4,7 @@ import "./models-service.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; +using Azure.ClientGenerator.Core; namespace Search; @@ -15,6 +16,7 @@ interface DataSources { @put createOrUpdate is SearchDataSourceOperation< { + ...acceptHeaderMinimal; ...matchingHeader; ...preferHeader; @@ -40,6 +42,7 @@ interface DataSources { @delete delete is SearchDataSourceOperation< { + ...acceptHeaderMinimal; ...matchingHeader; }, { @@ -54,14 +57,25 @@ interface DataSources { @doc("Retrieves a datasource definition.") @route("/datasources('{dataSourceName}')") @get - get is SearchDataSourceOperation<{}, SearchIndexerDataSource>; + get is SearchDataSourceOperation< + { + ...acceptHeaderMinimal; + }, + SearchIndexerDataSource + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" @doc("Lists all datasources available for a search service.") @route("/datasources") @get - list is SearchOperation; + list is SearchOperation< + { + ...acceptHeaderMinimal; + ...selectQuery; + }, + ListDataSourcesResult + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" @doc("Creates a new datasource.") @@ -69,7 +83,10 @@ interface DataSources { @post create is SearchOperation< { + ...acceptHeaderMinimal; + @doc("The definition of the datasource to create.") + @clientName("dataSourceConnection") @body dataSource: SearchIndexerDataSource; }, @@ -87,7 +104,9 @@ interface Indexers { @route("/indexers('{indexerName}')/search.reset") @post reset is SearchIndexerOperation< - {}, + { + ...acceptHeaderMinimal; + }, { @doc("A process exit code.") @statusCode @@ -101,6 +120,8 @@ interface Indexers { @post resync is SearchIndexerOperation< { + ...acceptHeaderMinimal; + @doc("The definition of the indexer resync options.") @body indexerResync: IndexerResyncBody; @@ -118,6 +139,8 @@ interface Indexers { @post resetDocs is SearchIndexerOperation< { + ...acceptHeaderMinimal; + @doc("If false, keys or ids will be appended to existing ones. If true, only the keys or ids in this payload will be queued to be re-ingested.") @query overwrite?: boolean = false; @@ -138,7 +161,9 @@ interface Indexers { @route("/indexers('{indexerName}')/search.run") @post run is SearchIndexerOperation< - {}, + { + ...acceptHeaderMinimal; + }, { @doc("A process exit code.") @statusCode @@ -153,6 +178,7 @@ interface Indexers { @put createOrUpdate is SearchIndexerOperation< { + ...acceptHeaderMinimal; ...matchingHeader; ...preferHeader; @@ -182,6 +208,7 @@ interface Indexers { @delete delete is SearchIndexerOperation< { + ...acceptHeaderMinimal; ...matchingHeader; }, { @@ -197,14 +224,25 @@ interface Indexers { @doc("Retrieves an indexer definition.") @route("/indexers('{indexerName}')") @get - get is SearchIndexerOperation<{}, SearchIndexer>; + get is SearchIndexerOperation< + { + ...acceptHeaderMinimal; + }, + SearchIndexer + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" @doc("Lists all indexers available for a search service.") @route("/indexers") @get - list is SearchOperation; + list is SearchOperation< + { + ...acceptHeaderMinimal; + ...selectQuery; + }, + ListIndexersResult + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" @@ -213,6 +251,8 @@ interface Indexers { @post create is SearchOperation< { + ...acceptHeaderMinimal; + @doc("The definition of the indexer to create.") @body indexer: SearchIndexer; @@ -228,7 +268,12 @@ interface Indexers { @doc("Returns the current status and execution history of an indexer.") @route("/indexers('{indexerName}')/search.status") @get - getStatus is SearchIndexerOperation<{}, SearchIndexerStatus>; + getStatus is SearchIndexerOperation< + { + ...acceptHeaderMinimal; + }, + SearchIndexerStatus + >; } interface Skillsets { @@ -239,6 +284,7 @@ interface Skillsets { @put createOrUpdate is SearchSkillsetOperation< { + ...acceptHeaderMinimal; ...matchingHeader; ...preferHeader; @@ -269,6 +315,7 @@ interface Skillsets { @delete delete is SearchSkillsetOperation< { + ...acceptHeaderMinimal; ...matchingHeader; }, { @@ -283,14 +330,25 @@ interface Skillsets { @doc("Retrieves a skillset in a search service.") @route("/skillsets('{skillsetName}')") @get - get is SearchSkillsetOperation<{}, SearchIndexerSkillset>; + get is SearchSkillsetOperation< + { + ...acceptHeaderMinimal; + }, + SearchIndexerSkillset + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" @doc("List all skillsets in a search service.") @route("/skillsets") @get - list is SearchOperation; + list is SearchOperation< + { + ...acceptHeaderMinimal; + ...selectQuery; + }, + ListSkillsetsResult + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" @doc("Creates a new skillset in a search service.") @@ -298,6 +356,8 @@ interface Skillsets { @post create is SearchOperation< { + ...acceptHeaderMinimal; + @doc("The skillset containing one or more skills to create in a search service.") @body skillset: SearchIndexerSkillset; @@ -315,6 +375,8 @@ interface Skillsets { @post resetSkills is SearchSkillsetOperation< { + ...acceptHeaderMinimal; + @doc("The names of the skills to reset. If not specified, all skills in the skillset will be reset.") @body skillNames: SkillNames; @@ -331,6 +393,7 @@ interface SynonymMaps { @put createOrUpdate is SearchSynonymMapOperation< { + ...acceptHeaderMinimal; ...matchingHeader; ...preferHeader; @@ -352,6 +415,7 @@ interface SynonymMaps { @delete delete is SearchSynonymMapOperation< { + ...acceptHeaderMinimal; ...matchingHeader; }, { @@ -367,14 +431,25 @@ interface SynonymMaps { @doc("Retrieves a synonym map definition.") @route("/synonymmaps('{synonymMapName}')") @get - get is SearchSynonymMapOperation<{}, SynonymMap>; + get is SearchSynonymMapOperation< + { + ...acceptHeaderMinimal; + }, + SynonymMap + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" @doc("Lists all synonym maps available for a search service.") @route("/synonymmaps") @get - list is SearchOperation; + list is SearchOperation< + { + ...acceptHeaderMinimal; + ...selectQuery; + }, + ListSynonymMapsResult + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" @doc("Creates a new synonym map.") @@ -382,6 +457,8 @@ interface SynonymMaps { @post create is SearchOperation< { + ...acceptHeaderMinimal; + @doc("The definition of the synonym map to create.") @body synonymMap: SynonymMap; @@ -401,6 +478,8 @@ interface Indexes { @post create is SearchOperation< { + ...acceptHeaderMinimal; + @doc("The definition of the index to create.") @body index: SearchIndex; @@ -418,7 +497,13 @@ interface Indexes { @route("/indexes") @list @get - list is SearchOperation; + list is SearchOperation< + { + ...acceptHeaderMinimal; + ...selectQuery; + }, + ListIndexesResult + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" @@ -427,6 +512,7 @@ interface Indexes { @put createOrUpdate is SearchIndexOperation< { + ...acceptHeaderMinimal; ...matchingHeader; @doc("Allows new analyzers, tokenizers, token filters, or char filters to be added to an index by taking the index offline for at least a few seconds. This temporarily causes indexing and query requests to fail. Performance and write availability of the index can be impaired for several minutes after the index is updated, or longer for very large indexes.") @@ -453,6 +539,7 @@ interface Indexes { @delete delete is SearchIndexOperation< { + ...acceptHeaderMinimal; ...matchingHeader; }, { @@ -467,13 +554,23 @@ interface Indexes { @doc("Retrieves an index definition.") @route("/indexes('{indexName}')") @get - get is SearchIndexOperation<{}, SearchIndex>; + get is SearchIndexOperation< + { + ...acceptHeaderMinimal; + }, + SearchIndex + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" @doc("Returns statistics for the given index, including a document count and storage usage.") @route("/indexes('{indexName}')/search.stats") @get - getStatistics is SearchIndexOperation<{}, GetIndexStatisticsResult>; + getStatistics is SearchIndexOperation< + { + ...acceptHeaderMinimal; + }, + GetIndexStatisticsResult + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" @doc("Shows how an analyzer breaks text into tokens.") @@ -481,6 +578,8 @@ interface Indexes { @post analyze is SearchIndexOperation< { + ...acceptHeaderMinimal; + @doc("The text and analyzer or analysis components to test.") @body request: AnalyzeRequest; @@ -496,6 +595,8 @@ interface Aliases { @post create is SearchOperation< { + ...acceptHeaderMinimal; + @doc("The definition of the alias to create.") @body `alias`: SearchAlias; @@ -512,7 +613,12 @@ interface Aliases { @route("/aliases") @list @get - list is SearchOperation<{}, ListAliasesResult>; + list is SearchOperation< + { + ...acceptHeaderMinimal; + }, + ListAliasesResult + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" @@ -521,6 +627,7 @@ interface Aliases { @put createOrUpdate is SearchAliasOperation< { + ...acceptHeaderMinimal; ...matchingHeader; ...preferHeader; @@ -542,6 +649,7 @@ interface Aliases { @delete delete is SearchAliasOperation< { + ...acceptHeaderMinimal; ...matchingHeader; }, { @@ -557,7 +665,12 @@ interface Aliases { @doc("Retrieves an alias definition.") @route("/aliases('{aliasName}')") @get - get is SearchAliasOperation<{}, SearchAlias>; + get is SearchAliasOperation< + { + ...acceptHeaderMinimal; + }, + SearchAlias + >; } interface KnowledgeBases { @@ -567,6 +680,8 @@ interface KnowledgeBases { @post create is SearchOperation< { + ...acceptHeaderMinimal; + @doc("The definition of the knowledge base to create.") @body knowledgeBase: KnowledgeBase; @@ -584,7 +699,12 @@ interface KnowledgeBases { @route("/knowledgebases") @list @get - list is SearchOperation<{}, ListKnowledgeBasesResult>; + list is SearchOperation< + { + ...acceptHeaderMinimal; + }, + ListKnowledgeBasesResult + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" @@ -593,6 +713,7 @@ interface KnowledgeBases { @put createOrUpdate is SearchKnowledgeBaseOperation< { + ...acceptHeaderMinimal; ...matchingHeader; ...preferHeader; @@ -614,6 +735,7 @@ interface KnowledgeBases { @delete delete is SearchKnowledgeBaseOperation< { + ...acceptHeaderMinimal; ...matchingHeader; }, { @@ -628,7 +750,12 @@ interface KnowledgeBases { @doc("Retrieves a knowledge base definition.") @route("/knowledgebases('{knowledgeBaseName}')") @get - get is SearchKnowledgeBaseOperation<{}, KnowledgeBase>; + get is SearchKnowledgeBaseOperation< + { + ...acceptHeaderMinimal; + }, + KnowledgeBase + >; } interface KnowledgeSources { @@ -638,6 +765,8 @@ interface KnowledgeSources { @post create is SearchOperation< { + ...acceptHeaderMinimal; + @doc("The definition of the knowledge source to create.") @body knowledgeSource: KnowledgeSource; @@ -655,7 +784,12 @@ interface KnowledgeSources { @route("/knowledgesources") @list @get - list is SearchOperation<{}, ListKnowledgeSourcesResult>; + list is SearchOperation< + { + ...acceptHeaderMinimal; + }, + ListKnowledgeSourcesResult + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" @@ -664,6 +798,7 @@ interface KnowledgeSources { @put createOrUpdate is SearchSourceOperation< { + ...acceptHeaderMinimal; ...matchingHeader; ...preferHeader; @@ -685,6 +820,7 @@ interface KnowledgeSources { @delete delete is SearchSourceOperation< { + ...acceptHeaderMinimal; ...matchingHeader; }, { @@ -699,20 +835,35 @@ interface KnowledgeSources { @doc("Retrieves a knowledge source definition.") @route("/knowledgesources('{sourceName}')") @get - get is SearchSourceOperation<{}, KnowledgeSource>; + get is SearchSourceOperation< + { + ...acceptHeaderMinimal; + }, + KnowledgeSource + >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" @doc("Retrieves the status of a knowledge source.") @route("/knowledgesources('{sourceName}')/status") @get - getStatus is SearchSourceOperation<{}, KnowledgeSourceStatus>; + getStatus is SearchSourceOperation< + { + ...acceptHeaderMinimal; + }, + KnowledgeSourceStatus + >; } #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" @doc("Gets service level statistics for a search service.") @route("/servicestats") @get -op getServiceStatistics is SearchOperation<{}, SearchServiceStatistics>; +op getServiceStatistics is SearchOperation< + { + ...acceptHeaderMinimal; + }, + SearchServiceStatistics +>; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Pre-existing API contract" #suppress "@azure-tools/typespec-azure-core/use-standard-names" "Pre-existing API contract" @@ -720,4 +871,9 @@ op getServiceStatistics is SearchOperation<{}, SearchServiceStatistics>; @route("/indexstats") @list @get -op getIndexStatsSummary is SearchOperation<{}, ListIndexStatsSummary>; +op getIndexStatsSummary is SearchOperation< + { + ...acceptHeaderMinimal; + }, + ListIndexStatsSummary +>; From edc6c7e0a4559fcfbe440b125d3faf9c2de2272e Mon Sep 17 00:00:00 2001 From: Tejaswi Salaigari Date: Wed, 17 Dec 2025 19:59:26 -0600 Subject: [PATCH 057/117] Bump @microsoft.azure/openapi-validator-rulesets from 2.1.10 to 2.2.0 (#39319) --- eng/tools/lint-diff/package.json | 2 +- package-lock.json | 10 +++++----- package.json | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/eng/tools/lint-diff/package.json b/eng/tools/lint-diff/package.json index f66130c00e7e..23b6d6bc850e 100644 --- a/eng/tools/lint-diff/package.json +++ b/eng/tools/lint-diff/package.json @@ -25,7 +25,7 @@ "@azure-tools/specs-shared": "file:../../../.github/shared", "@microsoft.azure/openapi-validator": "2.2.4", "@microsoft.azure/openapi-validator-core": "1.0.7", - "@microsoft.azure/openapi-validator-rulesets": "2.1.10", + "@microsoft.azure/openapi-validator-rulesets": "2.2.0", "autorest": "^3.7.2", "change-case": "^5.4.4", "deep-eql": "^5.0.2", diff --git a/package-lock.json b/package-lock.json index aca1515825f4..128907ab287a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "@azure/oad": "0.12.3", "@microsoft.azure/openapi-validator": "2.2.4", "@microsoft.azure/openapi-validator-core": "1.0.7", - "@microsoft.azure/openapi-validator-rulesets": "2.1.10", + "@microsoft.azure/openapi-validator-rulesets": "2.2.0", "@typespec/compiler": "1.7.1", "@typespec/events": "0.77.0", "@typespec/http": "1.7.0", @@ -116,7 +116,7 @@ "@azure-tools/specs-shared": "file:../../../.github/shared", "@microsoft.azure/openapi-validator": "2.2.4", "@microsoft.azure/openapi-validator-core": "1.0.7", - "@microsoft.azure/openapi-validator-rulesets": "2.1.10", + "@microsoft.azure/openapi-validator-rulesets": "2.2.0", "autorest": "^3.7.2", "change-case": "^5.4.4", "deep-eql": "^5.0.2", @@ -3763,9 +3763,9 @@ "license": "MIT" }, "node_modules/@microsoft.azure/openapi-validator-rulesets": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@microsoft.azure/openapi-validator-rulesets/-/openapi-validator-rulesets-2.1.10.tgz", - "integrity": "sha512-UHqIesjLwHG7eIs6HyUv6sGRkUvwtO9Wv5r7U2Se7UeKw/Q6HF40TKc6CNNkd1YBKRXXoZivlAzQhHyC2Te1rA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@microsoft.azure/openapi-validator-rulesets/-/openapi-validator-rulesets-2.2.0.tgz", + "integrity": "sha512-Sat0GxPu5L9PPF/JzHVL7pyPrzt+f3oKLgVFr3nkpW6nN/zGeBzcxaic391AnPyCO90Ukd2EtvJBM5IV8eFncA==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 5b0f69a23426..0416f09bba4a 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@azure/oad": "0.12.3", "@microsoft.azure/openapi-validator": "2.2.4", "@microsoft.azure/openapi-validator-core": "1.0.7", - "@microsoft.azure/openapi-validator-rulesets": "2.1.10", + "@microsoft.azure/openapi-validator-rulesets": "2.2.0", "@typespec/compiler": "1.7.1", "@typespec/http": "1.7.0", "@typespec/sse": "0.77.0", From 19c21a822bc5e6f0074c9faeb6257db3871b030f Mon Sep 17 00:00:00 2001 From: KajalSethi <141897294+KajalSethi@users.noreply.github.com> Date: Thu, 18 Dec 2025 10:47:57 +0530 Subject: [PATCH 058/117] Dell public swagger API release (#39310) --- .../LiftrBase.Storage/main.tsp | 8 +- .../LiftrBase/main.tsp | 7 +- ...Systems_CreateOrUpdate_MaximumSet_Gen.json | 184 ++++ ...Systems_CreateOrUpdate_MinimumSet_Gen.json | 96 ++ .../FileSystems_Delete_MaximumSet_Gen.json | 18 + .../FileSystems_Delete_MinimumSet_Gen.json | 18 + .../FileSystems_Get_MaximumSet_Gen.json | 75 ++ .../FileSystems_Get_MinimumSet_Gen.json | 41 + ...ms_ListByResourceGroup_MaximumSet_Gen.json | 79 ++ ...ms_ListByResourceGroup_MinimumSet_Gen.json | 44 + ...ems_ListBySubscription_MaximumSet_Gen.json | 78 ++ ...ems_ListBySubscription_MinimumSet_Gen.json | 43 + .../FileSystems_Update_MaximumSet_Gen.json | 100 ++ .../FileSystems_Update_MinimumSet_Gen.json | 66 ++ .../Operations_List_MaximumSet_Gen.json | 28 + .../Operations_List_MinimumSet_Gen.json | 12 + .../dell/Dell.Storage.Management/main.tsp | 7 +- .../stable/2025-03-21/Dell.Storage.json | 887 ++++++++++++++++++ ...Systems_CreateOrUpdate_MaximumSet_Gen.json | 184 ++++ ...Systems_CreateOrUpdate_MinimumSet_Gen.json | 96 ++ .../FileSystems_Delete_MaximumSet_Gen.json | 18 + .../FileSystems_Delete_MinimumSet_Gen.json | 18 + .../FileSystems_Get_MaximumSet_Gen.json | 75 ++ .../FileSystems_Get_MinimumSet_Gen.json | 41 + ...ms_ListByResourceGroup_MaximumSet_Gen.json | 79 ++ ...ms_ListByResourceGroup_MinimumSet_Gen.json | 44 + ...ems_ListBySubscription_MaximumSet_Gen.json | 78 ++ ...ems_ListBySubscription_MinimumSet_Gen.json | 43 + .../FileSystems_Update_MaximumSet_Gen.json | 100 ++ .../FileSystems_Update_MinimumSet_Gen.json | 66 ++ .../Operations_List_MaximumSet_Gen.json | 28 + .../Operations_List_MinimumSet_Gen.json | 12 + specification/dell/resource-manager/readme.md | 20 +- 33 files changed, 2683 insertions(+), 10 deletions(-) create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_CreateOrUpdate_MaximumSet_Gen.json create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_CreateOrUpdate_MinimumSet_Gen.json create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Delete_MaximumSet_Gen.json create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Delete_MinimumSet_Gen.json create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Get_MaximumSet_Gen.json create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Get_MinimumSet_Gen.json create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListByResourceGroup_MaximumSet_Gen.json create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListByResourceGroup_MinimumSet_Gen.json create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListBySubscription_MaximumSet_Gen.json create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListBySubscription_MinimumSet_Gen.json create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Update_MaximumSet_Gen.json create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Update_MinimumSet_Gen.json create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/Operations_List_MaximumSet_Gen.json create mode 100644 specification/dell/Dell.Storage.Management/examples/2025-03-21/Operations_List_MinimumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/Dell.Storage.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_CreateOrUpdate_MaximumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_CreateOrUpdate_MinimumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Delete_MaximumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Delete_MinimumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Get_MaximumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Get_MinimumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListByResourceGroup_MaximumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListByResourceGroup_MinimumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListBySubscription_MaximumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListBySubscription_MinimumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Update_MaximumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Update_MinimumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/Operations_List_MaximumSet_Gen.json create mode 100644 specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/Operations_List_MinimumSet_Gen.json diff --git a/specification/dell/Dell.Storage.Management/LiftrBase.Storage/main.tsp b/specification/dell/Dell.Storage.Management/LiftrBase.Storage/main.tsp index 05e9fb8928dc..1811f711b471 100644 --- a/specification/dell/Dell.Storage.Management/LiftrBase.Storage/main.tsp +++ b/specification/dell/Dell.Storage.Management/LiftrBase.Storage/main.tsp @@ -15,9 +15,13 @@ namespace LiftrBase.Storage; * The available API versions. */ enum Versions { - @useDependency(LiftrBase.Versions.v2_preview) + @useDependency(LiftrBase.Versions.v2025_03_21_preview) + @useDependency(Azure.ResourceManager.CommonTypes.Versions.v5) + v2025_03_21_preview: "2025-03-21-preview", + + @useDependency(LiftrBase.Versions.v2025_03_21) @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) - v2_preview: "2025-03-21-preview", + v2025_03_21: "2025-03-21", } /** diff --git a/specification/dell/Dell.Storage.Management/LiftrBase/main.tsp b/specification/dell/Dell.Storage.Management/LiftrBase/main.tsp index 48266d24b989..51cd4f377667 100644 --- a/specification/dell/Dell.Storage.Management/LiftrBase/main.tsp +++ b/specification/dell/Dell.Storage.Management/LiftrBase/main.tsp @@ -13,7 +13,12 @@ enum Versions { /** * The 2025-03-21-preview API version. */ - v2_preview: "2025-03-21-preview", + v2025_03_21_preview: "2025-03-21-preview", + + /** + * The 2025-03-21 API version. + */ + v2025_03_21: "2025-03-21", } /** diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_CreateOrUpdate_MaximumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_CreateOrUpdate_MaximumSet_Gen.json new file mode 100644 index 000000000000..7827222343cd --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_CreateOrUpdate_MaximumSet_Gen.json @@ -0,0 +1,184 @@ +{ + "title": "FileSystems_CreateOrUpdate_MaximumSet_Gen", + "operationId": "FileSystems_CreateOrUpdate", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "4B6E265D-57CF-4A9D-8B35-3CC68ED9D208", + "resourceGroupName": "rgDell", + "filesystemName": "abcd", + "resource": { + "properties": { + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName" + }, + "delegatedSubnetId": "rqkpvczbtqcxiaivtbuixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": { + "email": "jwogfgznmjabdbcjcljjlkxdpc" + }, + "smartConnectFqdn": "fqdn", + "oneFsUrl": "oneFsUrl", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "key7644": {} + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00", + "termUnit": "P1Y" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "rqkpvczbtqcxiaivtbquixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "smartConnectFqdn": "fqdn", + "oneFsUrl": "oneFsUrl", + "dellReferenceNumber": "fhewkj", + "fileSystemId": "filesystemId", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "principalId": "11111111-1111-1111-1111-111111111111", + "tenantId": "11111111-1111-1111-1111-111111111111", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7644": { + "principalId": "11111111-1111-1111-1111-111111111111", + "clientId": "11111111-1111-1111-1111-111111111111" + } + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "name": "hyjt", + "type": "mzfepehqauauepqojtnobuyiegj", + "systemData": { + "createdBy": "xfvccbyptfzz", + "createdByType": "User", + "createdAt": "2024-08-28T09:20:01.255Z", + "lastModifiedBy": "uojozqmijcudlqxmvwckofopoori", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-08-28T09:20:01.255Z" + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00", + "termUnit": "P1Y" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "rqkpvczbtqcxiaivtbquixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "smartConnectFqdn": "fqdn", + "oneFsUrl": "oneFsUrl", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "principalId": "11111111-1111-1111-1111-111111111111", + "tenantId": "11111111-1111-1111-1111-111111111111", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7644": { + "principalId": "11111111-1111-1111-1111-111111111111", + "clientId": "11111111-1111-1111-1111-111111111111" + } + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "name": "hyjt", + "type": "mzfepehqauauepqojtnobuyiegj", + "systemData": { + "createdBy": "xfvccbyptfzz", + "createdByType": "User", + "createdAt": "2024-08-28T09:20:01.255Z", + "lastModifiedBy": "uojozqmijcudlqxmvwckofopoori", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-08-28T09:20:01.255Z" + } + } + } + } +} diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_CreateOrUpdate_MinimumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_CreateOrUpdate_MinimumSet_Gen.json new file mode 100644 index 000000000000..921b961829a4 --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_CreateOrUpdate_MinimumSet_Gen.json @@ -0,0 +1,96 @@ +{ + "title": "FileSystems_CreateOrUpdate_MinimumSet_Gen", + "operationId": "FileSystems_CreateOrUpdate", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "BF7E7352-2FE4-4163-9CF7-5FF8EC2E9B92", + "resourceGroupName": "rgDell", + "filesystemName": "abcd", + "resource": { + "properties": { + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "privateOfferId": "privateOfferId", + "planName": "planeName" + }, + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": { + "email": "hoznewwtzmyjzctzosfuh" + }, + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Microsoft-managed keys (MMK)" + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00", + "termUnit": "P1Y" + }, + "fileSystemId": "filesystemId", + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Microsoft-managed keys (MMK)" + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "publisherId": "kmwtgjdzlldpau", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00", + "termUnit": "P1Y" + }, + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Microsoft-managed keys (MMK)" + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + } + } + } +} diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Delete_MaximumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Delete_MaximumSet_Gen.json new file mode 100644 index 000000000000..98caaccc8568 --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Delete_MaximumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "FileSystems_Delete_MaximumSet_Gen", + "operationId": "FileSystems_Delete", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "4B6E265D-57CF-4A9D-8B35-3CC68ED9D208", + "resourceGroupName": "rgDell", + "filesystemName": "abcd" + }, + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Delete_MinimumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Delete_MinimumSet_Gen.json new file mode 100644 index 000000000000..89063daf83c3 --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Delete_MinimumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "FileSystems_Delete_MinimumSet_Gen", + "operationId": "FileSystems_Delete", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "BF7E7352-2FE4-4163-9CF7-5FF8EC2E9B92", + "resourceGroupName": "rgDell", + "filesystemName": "abcd" + }, + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Get_MaximumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..b4c78d3bf365 --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Get_MaximumSet_Gen.json @@ -0,0 +1,75 @@ +{ + "title": "FileSystems_Get_MaximumSet_Gen", + "operationId": "FileSystems_Get", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "4B6E265D-57CF-4A9D-8B35-3CC68ED9D208", + "resourceGroupName": "rgDell", + "filesystemName": "abcd" + }, + "responses": { + "200": { + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "rqkpvczbtqcxiaivtbquixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "smartConnectFqdn": "fqdn", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "principalId": "11111111-1111-1111-1111-111111111111", + "tenantId": "11111111-1111-1111-1111-111111111111", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7644": { + "principalId": "11111111-1111-1111-1111-111111111111", + "clientId": "11111111-1111-1111-1111-111111111111" + } + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "name": "hyjt", + "type": "mzfepehqauauepqojtnobuyiegj", + "systemData": { + "createdBy": "xfvccbyptfzz", + "createdByType": "User", + "createdAt": "2024-08-28T09:20:01.255Z", + "lastModifiedBy": "uojozqmijcudlqxmvwckofopoori", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-08-28T09:20:01.255Z" + } + } + } + } +} diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Get_MinimumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Get_MinimumSet_Gen.json new file mode 100644 index 000000000000..243cee6f3dae --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Get_MinimumSet_Gen.json @@ -0,0 +1,41 @@ +{ + "title": "FileSystems_Get_MinimumSet_Gen", + "operationId": "FileSystems_Get", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "BF7E7352-2FE4-4163-9CF7-5FF8EC2E9B92", + "resourceGroupName": "rgDell", + "filesystemName": "abcd" + }, + "responses": { + "200": { + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "privateOfferId": "privateOfferId", + "planName": "planName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Microsoft-managed keys (MMK)" + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + } + } + } +} diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListByResourceGroup_MaximumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListByResourceGroup_MaximumSet_Gen.json new file mode 100644 index 000000000000..fb076f17aaa7 --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListByResourceGroup_MaximumSet_Gen.json @@ -0,0 +1,79 @@ +{ + "title": "FileSystems_ListByResourceGroup_MaximumSet_Gen", + "operationId": "FileSystems_ListByResourceGroup", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "4B6E265D-57CF-4A9D-8B35-3CC68ED9D208", + "resourceGroupName": "rgDell" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "rqkpvczbtqcxiaivtbquixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "smartConnectFqdn": "fqdn", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "principalId": "11111111-1111-1111-1111-111111111111", + "tenantId": "11111111-1111-1111-1111-111111111111", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7644": { + "principalId": "11111111-1111-1111-1111-111111111111", + "clientId": "11111111-1111-1111-1111-111111111111" + } + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "name": "hyjt", + "type": "mzfepehqauauepqojtnobuyiegj", + "systemData": { + "createdBy": "xfvccbyptfzz", + "createdByType": "User", + "createdAt": "2024-08-28T09:20:01.255Z", + "lastModifiedBy": "uojozqmijcudlqxmvwckofopoori", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-08-28T09:20:01.255Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListByResourceGroup_MinimumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListByResourceGroup_MinimumSet_Gen.json new file mode 100644 index 000000000000..891d885c70cf --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListByResourceGroup_MinimumSet_Gen.json @@ -0,0 +1,44 @@ +{ + "title": "FileSystems_ListByResourceGroup_MinimumSet_Gen", + "operationId": "FileSystems_ListByResourceGroup", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "BF7E7352-2FE4-4163-9CF7-5FF8EC2E9B92", + "resourceGroupName": "rgDell" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Microsoft-managed keys (MMK)" + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + } + ] + } + } + } +} diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListBySubscription_MaximumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListBySubscription_MaximumSet_Gen.json new file mode 100644 index 000000000000..16782303aa18 --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListBySubscription_MaximumSet_Gen.json @@ -0,0 +1,78 @@ +{ + "title": "FileSystems_ListBySubscription_MaximumSet_Gen", + "operationId": "FileSystems_ListBySubscription", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "4B6E265D-57CF-4A9D-8B35-3CC68ED9D208" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "rqkpvczbtqcxiaivtbquixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "smartConnectFqdn": "fqdn", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "principalId": "11111111-1111-1111-1111-111111111111", + "tenantId": "11111111-1111-1111-1111-111111111111", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7644": { + "principalId": "11111111-1111-1111-1111-111111111111", + "clientId": "11111111-1111-1111-1111-111111111111" + } + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "name": "hyjt", + "type": "mzfepehqauauepqojtnobuyiegj", + "systemData": { + "createdBy": "xfvccbyptfzz", + "createdByType": "User", + "createdAt": "2024-08-28T09:20:01.255Z", + "lastModifiedBy": "uojozqmijcudlqxmvwckofopoori", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-08-28T09:20:01.255Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListBySubscription_MinimumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListBySubscription_MinimumSet_Gen.json new file mode 100644 index 000000000000..3d00074eff9b --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_ListBySubscription_MinimumSet_Gen.json @@ -0,0 +1,43 @@ +{ + "title": "FileSystems_ListBySubscription_MinimumSet_Gen", + "operationId": "FileSystems_ListBySubscription", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "BF7E7352-2FE4-4163-9CF7-5FF8EC2E9B92" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Microsoft-managed keys (MMK)" + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + } + ] + } + } + } +} diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Update_MaximumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Update_MaximumSet_Gen.json new file mode 100644 index 000000000000..45b53bdec68f --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Update_MaximumSet_Gen.json @@ -0,0 +1,100 @@ +{ + "title": "FileSystems_Update_MaximumSet_Gen", + "operationId": "FileSystems_Update", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "4B6E265D-57CF-4A9D-8B35-3CC68ED9D208", + "resourceGroupName": "rgDell", + "filesystemName": "abcd", + "properties": { + "identity": { + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7645": {} + } + }, + "tags": { + "key6099": "ursbxlphfcguvntuevleacwq" + }, + "properties": { + "delegatedSubnetId": "bfpuabdz", + "capacity": { + "current": "5" + }, + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "rqkpvczbtqcxiaivtbquixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "smartConnectFqdn": "fqdn", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "principalId": "22222222-2222-2222-2222-222222222222", + "tenantId": "22222222-2222-2222-2222-222222222222", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7645": { + "principalId": "22222222-2222-2222-2222-222222222222", + "clientId": "22222222-2222-2222-2222-222222222222" + } + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "name": "hyjt", + "type": "mzfepehqauauepqojtnobuyiegj", + "systemData": { + "createdBy": "xfvccbyptfzz", + "createdByType": "User", + "createdAt": "2024-08-28T09:20:01.255Z", + "lastModifiedBy": "uojozqmijcudlqxmvwckofopoori", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-08-28T09:20:01.255Z" + } + } + } + } +} diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Update_MinimumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Update_MinimumSet_Gen.json new file mode 100644 index 000000000000..1d26503284cf --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/FileSystems_Update_MinimumSet_Gen.json @@ -0,0 +1,66 @@ +{ + "title": "FileSystems_Update_MinimumSet_Gen", + "operationId": "FileSystems_Update", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "BF7E7352-2FE4-4163-9CF7-5FF8EC2E9B92", + "resourceGroupName": "rgDell", + "filesystemName": "abcd", + "properties": { + "properties": { + "delegatedSubnetId": "uqfvajvyltgmqvdnxhbrfqbpuey", + "capacity": { + "current": "5" + } + } + } + }, + "responses": { + "200": { + "body": { + "identity": { + "principalId": "11111111-1111-1111-1111-111111111111", + "tenantId": "11111111-1111-1111-1111-111111111111", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7644": { + "principalId": "11111111-1111-1111-1111-111111111111", + "clientId": "11111111-1111-1111-1111-111111111111" + } + } + }, + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + } + } + } +} diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/Operations_List_MaximumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/Operations_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..e871ae799b1c --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/Operations_List_MaximumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Operations_List_MaximumSet_Gen", + "operationId": "Operations_List", + "parameters": { + "api-version": "2025-03-21" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "rndmegxufrfrypvgt", + "isDataAction": true, + "display": { + "provider": "bo", + "resource": "mlvmbnno", + "operation": "welhqbqmwwzytgtskhmxurcwhpsndg", + "description": "gfcmuplcdhodralpafiiwxytg" + }, + "origin": "user", + "actionType": "Internal" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/dell/Dell.Storage.Management/examples/2025-03-21/Operations_List_MinimumSet_Gen.json b/specification/dell/Dell.Storage.Management/examples/2025-03-21/Operations_List_MinimumSet_Gen.json new file mode 100644 index 000000000000..97bd7035b4ec --- /dev/null +++ b/specification/dell/Dell.Storage.Management/examples/2025-03-21/Operations_List_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Operations_List_MinimumSet_Gen", + "operationId": "Operations_List", + "parameters": { + "api-version": "2025-03-21" + }, + "responses": { + "200": { + "body": {} + } + } +} diff --git a/specification/dell/Dell.Storage.Management/main.tsp b/specification/dell/Dell.Storage.Management/main.tsp index c4b61f25a03f..cf3a2e7ba641 100644 --- a/specification/dell/Dell.Storage.Management/main.tsp +++ b/specification/dell/Dell.Storage.Management/main.tsp @@ -33,7 +33,12 @@ enum Versions { /** * The 2025-03-21-preview API version. */ - v2_preview: "2025-03-21-preview", + v2025_03_21_preview: "2025-03-21-preview", + + /** + * The 2025-03-21 API version. + */ + v2025_03_21: "2025-03-21", } interface Operations extends Azure.ResourceManager.Operations {} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/Dell.Storage.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/Dell.Storage.json new file mode 100644 index 000000000000..6c289cccdedc --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/Dell.Storage.json @@ -0,0 +1,887 @@ +{ + "swagger": "2.0", + "info": { + "title": "Dell.Storage", + "version": "2025-03-21", + "description": "Dell Storage service", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "FileSystems" + } + ], + "paths": { + "/providers/Dell.Storage/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Operations_List_MaximumSet_Gen": { + "$ref": "./examples/Operations_List_MaximumSet_Gen.json" + }, + "Operations_List_MinimumSet_Gen": { + "$ref": "./examples/Operations_List_MinimumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Dell.Storage/filesystems": { + "get": { + "operationId": "FileSystems_ListBySubscription", + "tags": [ + "FileSystems" + ], + "description": "List FileSystemResource resources by subscription ID", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/FileSystemResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "FileSystems_ListBySubscription_MaximumSet_Gen": { + "$ref": "./examples/FileSystems_ListBySubscription_MaximumSet_Gen.json" + }, + "FileSystems_ListBySubscription_MinimumSet_Gen": { + "$ref": "./examples/FileSystems_ListBySubscription_MinimumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Dell.Storage/filesystems": { + "get": { + "operationId": "FileSystems_ListByResourceGroup", + "tags": [ + "FileSystems" + ], + "description": "List FileSystemResource resources by resource group", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/FileSystemResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "FileSystems_ListByResourceGroup_MaximumSet_Gen": { + "$ref": "./examples/FileSystems_ListByResourceGroup_MaximumSet_Gen.json" + }, + "FileSystems_ListByResourceGroup_MinimumSet_Gen": { + "$ref": "./examples/FileSystems_ListByResourceGroup_MinimumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Dell.Storage/filesystems/{filesystemName}": { + "get": { + "operationId": "FileSystems_Get", + "tags": [ + "FileSystems" + ], + "description": "Get a FileSystemResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "filesystemName", + "in": "path", + "description": "Name of the filesystem resource", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_-]*$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/LiftrBase.Storage.FileSystemResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "FileSystems_Get_MaximumSet_Gen": { + "$ref": "./examples/FileSystems_Get_MaximumSet_Gen.json" + }, + "FileSystems_Get_MinimumSet_Gen": { + "$ref": "./examples/FileSystems_Get_MinimumSet_Gen.json" + } + } + }, + "put": { + "operationId": "FileSystems_CreateOrUpdate", + "tags": [ + "FileSystems" + ], + "description": "Create a FileSystemResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "filesystemName", + "in": "path", + "description": "Name of the filesystem resource", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_-]*$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/LiftrBase.Storage.FileSystemResource" + } + } + ], + "responses": { + "200": { + "description": "Resource 'FileSystemResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/LiftrBase.Storage.FileSystemResource" + } + }, + "201": { + "description": "Resource 'FileSystemResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/LiftrBase.Storage.FileSystemResource" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "FileSystems_CreateOrUpdate_MaximumSet_Gen": { + "$ref": "./examples/FileSystems_CreateOrUpdate_MaximumSet_Gen.json" + }, + "FileSystems_CreateOrUpdate_MinimumSet_Gen": { + "$ref": "./examples/FileSystems_CreateOrUpdate_MinimumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "FileSystems_Update", + "tags": [ + "FileSystems" + ], + "description": "Update a FileSystemResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "filesystemName", + "in": "path", + "description": "Name of the filesystem resource", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_-]*$" + }, + { + "name": "properties", + "in": "body", + "description": "The resource properties to be updated.", + "required": true, + "schema": { + "$ref": "#/definitions/LiftrBase.Storage.FileSystemResourceUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/LiftrBase.Storage.FileSystemResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "FileSystems_Update_MaximumSet_Gen": { + "$ref": "./examples/FileSystems_Update_MaximumSet_Gen.json" + }, + "FileSystems_Update_MinimumSet_Gen": { + "$ref": "./examples/FileSystems_Update_MinimumSet_Gen.json" + } + } + }, + "delete": { + "operationId": "FileSystems_Delete", + "tags": [ + "FileSystems" + ], + "description": "Delete a FileSystemResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "filesystemName", + "in": "path", + "description": "Name of the filesystem resource", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_-]*$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "FileSystems_Delete_MaximumSet_Gen": { + "$ref": "./examples/FileSystems_Delete_MaximumSet_Gen.json" + }, + "FileSystems_Delete_MinimumSet_Gen": { + "$ref": "./examples/FileSystems_Delete_MinimumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "FileSystemResourceListResult": { + "type": "object", + "description": "The response of a FileSystemResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The FileSystemResource items on this page", + "items": { + "$ref": "#/definitions/LiftrBase.Storage.FileSystemResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "LiftrBase.EncryptionIdentityProperties": { + "type": "object", + "description": "EncryptionIdentityProperties of Dell FileSystem resource", + "properties": { + "identityType": { + "$ref": "#/definitions/LiftrBase.EncryptionIdentityType", + "description": "Identity type - SystemAssigned/UserAssigned - Only UserAssigned is supported now" + }, + "identityResourceId": { + "type": "string", + "description": "User-assigned identity resource id - Only when user opts for UserAssigned identity and hence optional" + } + } + }, + "LiftrBase.EncryptionIdentityType": { + "type": "string", + "description": "Identity type of ManagedIdentity Associated with Dell FileSystem resource", + "enum": [ + "SystemAssigned", + "UserAssigned" + ], + "x-ms-enum": { + "name": "EncryptionIdentityType", + "modelAsString": true, + "values": [ + { + "name": "SystemAssigned", + "value": "SystemAssigned", + "description": "System Assigned Managed identity" + }, + { + "name": "UserAssigned", + "value": "UserAssigned", + "description": "User Assigned managed identity" + } + ] + } + }, + "LiftrBase.EncryptionIdentityUpdateProperties": { + "type": "object", + "description": "EncryptionIdentityUpdateProperties of Dell FileSystem resource", + "properties": { + "identityType": { + "$ref": "#/definitions/LiftrBase.EncryptionIdentityType", + "description": "Identity type - SystemAssigned/UserAssigned - Only UserAssigned is supported now" + }, + "identityResourceId": { + "type": "string", + "description": "User-assigned identity resource id - Only when user opts for UserAssigned identity and hence optional" + } + } + }, + "LiftrBase.EncryptionProperties": { + "type": "object", + "description": "EncryptionProperties of Dell FileSystem resource", + "properties": { + "encryptionType": { + "$ref": "#/definitions/LiftrBase.ResourceEncryptionType", + "description": "Encryption Type - MMK/CMK" + }, + "keyUrl": { + "type": "string", + "description": "Versioned Encryption Key Url - Only when user opts for CMK and hence optional" + }, + "encryptionIdentityProperties": { + "$ref": "#/definitions/LiftrBase.EncryptionIdentityProperties", + "description": "Identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault - Only when user opts for CMK and hence optional" + } + }, + "required": [ + "encryptionType" + ] + }, + "LiftrBase.EncryptionUpdateProperties": { + "type": "object", + "description": "EncryptionUpdateProperties of Dell FileSystem resource", + "properties": { + "encryptionType": { + "$ref": "#/definitions/LiftrBase.ResourceEncryptionType", + "description": "Encryption Type - MMK/CMK" + }, + "keyUrl": { + "type": "string", + "description": "Versioned Encryption Key Url - Only when user opts for CMK and hence optional" + }, + "encryptionIdentityProperties": { + "$ref": "#/definitions/LiftrBase.EncryptionIdentityUpdateProperties", + "description": "Identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault - Only when user opts for CMK and hence optional" + } + } + }, + "LiftrBase.MarketplaceDetails": { + "type": "object", + "description": "MarketplaceDetails of Dell FileSystem resource", + "properties": { + "marketplaceSubscriptionId": { + "type": "string", + "description": "Marketplace Subscription Id" + }, + "planId": { + "type": "string", + "description": "Plan Id" + }, + "offerId": { + "type": "string", + "description": "Offer Id" + }, + "publisherId": { + "type": "string", + "description": "Publisher Id" + }, + "privateOfferId": { + "type": "string", + "description": "Private Offer Id" + }, + "planName": { + "type": "string", + "description": "Plan Name" + }, + "marketplaceSubscriptionStatus": { + "$ref": "#/definitions/LiftrBase.MarketplaceSubscriptionStatus", + "description": "Marketplace subscription status", + "readOnly": true + }, + "endDate": { + "type": "string", + "description": "End Date of the subscription" + }, + "termUnit": { + "type": "string", + "description": "Term Unit" + } + }, + "required": [ + "planId", + "offerId", + "planName" + ] + }, + "LiftrBase.MarketplaceSubscriptionStatus": { + "type": "string", + "description": "Marketplace subscription status of the file system resource", + "enum": [ + "PendingFulfillmentStart", + "Subscribed", + "Suspended", + "Unsubscribed" + ], + "x-ms-enum": { + "name": "MarketplaceSubscriptionStatus", + "modelAsString": true, + "values": [ + { + "name": "PendingFulfillmentStart", + "value": "PendingFulfillmentStart", + "description": "Fulfillment has not started" + }, + { + "name": "Subscribed", + "value": "Subscribed", + "description": "Marketplace offer is subscribed" + }, + { + "name": "Suspended", + "value": "Suspended", + "description": "Marketplace offer is suspended because of non payment" + }, + { + "name": "Unsubscribed", + "value": "Unsubscribed", + "description": "Marketplace offer is unsubscribed" + } + ] + } + }, + "LiftrBase.ProvisioningState": { + "type": "string", + "description": "Provisioning State of the File system resource", + "enum": [ + "Accepted", + "Creating", + "Updating", + "Deleting", + "Succeeded", + "Failed", + "Canceled", + "Deleted", + "NotSpecified" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Accepted", + "value": "Accepted", + "description": "File system resource creation request accepted" + }, + { + "name": "Creating", + "value": "Creating", + "description": "File system resource creation started" + }, + { + "name": "Updating", + "value": "Updating", + "description": "File system resource is being updated" + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "File system resource deletion started" + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "File system resource creation successful" + }, + { + "name": "Failed", + "value": "Failed", + "description": "File system resource creation failed" + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "File system resource creation canceled" + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "File system resource is deleted" + }, + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "File system resource state is unknown" + } + ] + }, + "readOnly": true + }, + "LiftrBase.ResourceEncryptionType": { + "type": "string", + "description": "Identity type of ManagedIdentity Associated with Dell FileSystem resource", + "enum": [ + "Microsoft-managed keys (MMK)", + "Customer-managed keys (CMK)" + ], + "x-ms-enum": { + "name": "ResourceEncryptionType", + "modelAsString": true, + "values": [ + { + "name": "Microsoft-managed keys (MMK)", + "value": "Microsoft-managed keys (MMK)", + "description": "Microsoft managed keys (Default)" + }, + { + "name": "Customer-managed keys (CMK)", + "value": "Customer-managed keys (CMK)", + "description": "Customer managed keys\n(CMK) - Only UserAssigned identity is supported" + } + ] + } + }, + "LiftrBase.Storage.Capacity": { + "type": "object", + "description": "Capacity for a Resource", + "properties": { + "min": { + "type": "string", + "description": "Minimum Capacity" + }, + "max": { + "type": "string", + "description": "Maximum Capacity" + }, + "incremental": { + "type": "string", + "description": "Units to be increased" + }, + "current": { + "type": "string", + "description": "Current Capacity of the resource" + } + } + }, + "LiftrBase.Storage.FileSystemResource": { + "type": "object", + "description": "Concrete tracked resource types can be created by aliasing this type using a specific property type.", + "properties": { + "properties": { + "$ref": "#/definitions/LiftrBase.Storage.FileSystemResourceProperties", + "description": "The resource-specific properties for this resource." + }, + "identity": { + "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The managed service identities assigned to this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ] + }, + "LiftrBase.Storage.FileSystemResourceProperties": { + "type": "object", + "description": "Properties specific to the Dell File System resource", + "properties": { + "capacity": { + "$ref": "#/definitions/LiftrBase.Storage.Capacity", + "description": "Capacity for Dell Filesystem, Will be received as part of Job Status" + }, + "marketplace": { + "$ref": "#/definitions/LiftrBase.MarketplaceDetails", + "description": "Marketplace details" + }, + "provisioningState": { + "$ref": "#/definitions/LiftrBase.ProvisioningState", + "description": "Provisioning State of the resource", + "readOnly": true + }, + "delegatedSubnetId": { + "type": "string", + "description": "Delegated subnet id for Vnet injection" + }, + "delegatedSubnetCidr": { + "type": "string", + "description": "Domain range for the delegated subnet", + "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}/(16|24)$" + }, + "user": { + "$ref": "#/definitions/LiftrBase.UserDetails", + "description": "User Details" + }, + "fileSystemId": { + "type": "string", + "description": "File system Id of the resource" + }, + "smartConnectFqdn": { + "type": "string", + "description": "Smart Connect FQDN of the resource" + }, + "oneFsUrl": { + "type": "string", + "description": "OneFS url" + }, + "dellReferenceNumber": { + "type": "string", + "description": "DellReferenceNumber of the resource" + }, + "encryption": { + "$ref": "#/definitions/LiftrBase.EncryptionProperties", + "description": "EncryptionProperties of the resource" + } + }, + "required": [ + "marketplace", + "delegatedSubnetId", + "delegatedSubnetCidr", + "user", + "dellReferenceNumber", + "encryption" + ] + }, + "LiftrBase.Storage.FileSystemResourceUpdate": { + "type": "object", + "description": "The type used for update operations of the FileSystemResource.", + "properties": { + "identity": { + "$ref": "#/definitions/LiftrBase.Storage.ManagedServiceIdentityUpdate", + "description": "The managed service identities assigned to this resource." + }, + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "$ref": "#/definitions/LiftrBase.Storage.FileSystemResourceUpdateProperties", + "description": "The updatable properties of the FileSystemResource." + } + } + }, + "LiftrBase.Storage.FileSystemResourceUpdateProperties": { + "type": "object", + "description": "The updatable properties of the FileSystemResource.", + "properties": { + "delegatedSubnetId": { + "type": "string", + "description": "Delegated subnet id for Vnet injection" + }, + "capacity": { + "$ref": "#/definitions/LiftrBase.Storage.Capacity", + "description": "Capacity for Dell Filesystem" + }, + "encryption": { + "$ref": "#/definitions/LiftrBase.EncryptionUpdateProperties", + "description": "Encryption Details of the resource" + } + } + }, + "LiftrBase.Storage.ManagedServiceIdentityUpdate": { + "type": "object", + "description": "Managed service identity (system assigned and/or user assigned identities)", + "properties": { + "type": { + "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentityType", + "description": "The type of managed identity assigned to this resource." + }, + "userAssignedIdentities": { + "type": "object", + "description": "The identities assigned to this resource by the user.", + "additionalProperties": { + "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/UserAssignedIdentity", + "x-nullable": true + } + } + } + }, + "LiftrBase.UserDetails": { + "type": "object", + "description": "User Details of Dell FileSystem resource", + "properties": { + "email": { + "type": "string", + "description": "User Email", + "x-ms-secret": true + } + }, + "required": [ + "email" + ] + } + }, + "parameters": {} +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_CreateOrUpdate_MaximumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_CreateOrUpdate_MaximumSet_Gen.json new file mode 100644 index 000000000000..7827222343cd --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_CreateOrUpdate_MaximumSet_Gen.json @@ -0,0 +1,184 @@ +{ + "title": "FileSystems_CreateOrUpdate_MaximumSet_Gen", + "operationId": "FileSystems_CreateOrUpdate", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "4B6E265D-57CF-4A9D-8B35-3CC68ED9D208", + "resourceGroupName": "rgDell", + "filesystemName": "abcd", + "resource": { + "properties": { + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName" + }, + "delegatedSubnetId": "rqkpvczbtqcxiaivtbuixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": { + "email": "jwogfgznmjabdbcjcljjlkxdpc" + }, + "smartConnectFqdn": "fqdn", + "oneFsUrl": "oneFsUrl", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "key7644": {} + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00", + "termUnit": "P1Y" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "rqkpvczbtqcxiaivtbquixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "smartConnectFqdn": "fqdn", + "oneFsUrl": "oneFsUrl", + "dellReferenceNumber": "fhewkj", + "fileSystemId": "filesystemId", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "principalId": "11111111-1111-1111-1111-111111111111", + "tenantId": "11111111-1111-1111-1111-111111111111", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7644": { + "principalId": "11111111-1111-1111-1111-111111111111", + "clientId": "11111111-1111-1111-1111-111111111111" + } + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "name": "hyjt", + "type": "mzfepehqauauepqojtnobuyiegj", + "systemData": { + "createdBy": "xfvccbyptfzz", + "createdByType": "User", + "createdAt": "2024-08-28T09:20:01.255Z", + "lastModifiedBy": "uojozqmijcudlqxmvwckofopoori", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-08-28T09:20:01.255Z" + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00", + "termUnit": "P1Y" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "rqkpvczbtqcxiaivtbquixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "smartConnectFqdn": "fqdn", + "oneFsUrl": "oneFsUrl", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "principalId": "11111111-1111-1111-1111-111111111111", + "tenantId": "11111111-1111-1111-1111-111111111111", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7644": { + "principalId": "11111111-1111-1111-1111-111111111111", + "clientId": "11111111-1111-1111-1111-111111111111" + } + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "name": "hyjt", + "type": "mzfepehqauauepqojtnobuyiegj", + "systemData": { + "createdBy": "xfvccbyptfzz", + "createdByType": "User", + "createdAt": "2024-08-28T09:20:01.255Z", + "lastModifiedBy": "uojozqmijcudlqxmvwckofopoori", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-08-28T09:20:01.255Z" + } + } + } + } +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_CreateOrUpdate_MinimumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_CreateOrUpdate_MinimumSet_Gen.json new file mode 100644 index 000000000000..921b961829a4 --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_CreateOrUpdate_MinimumSet_Gen.json @@ -0,0 +1,96 @@ +{ + "title": "FileSystems_CreateOrUpdate_MinimumSet_Gen", + "operationId": "FileSystems_CreateOrUpdate", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "BF7E7352-2FE4-4163-9CF7-5FF8EC2E9B92", + "resourceGroupName": "rgDell", + "filesystemName": "abcd", + "resource": { + "properties": { + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "privateOfferId": "privateOfferId", + "planName": "planeName" + }, + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": { + "email": "hoznewwtzmyjzctzosfuh" + }, + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Microsoft-managed keys (MMK)" + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00", + "termUnit": "P1Y" + }, + "fileSystemId": "filesystemId", + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Microsoft-managed keys (MMK)" + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "publisherId": "kmwtgjdzlldpau", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00", + "termUnit": "P1Y" + }, + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Microsoft-managed keys (MMK)" + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + } + } + } +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Delete_MaximumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Delete_MaximumSet_Gen.json new file mode 100644 index 000000000000..98caaccc8568 --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Delete_MaximumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "FileSystems_Delete_MaximumSet_Gen", + "operationId": "FileSystems_Delete", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "4B6E265D-57CF-4A9D-8B35-3CC68ED9D208", + "resourceGroupName": "rgDell", + "filesystemName": "abcd" + }, + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Delete_MinimumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Delete_MinimumSet_Gen.json new file mode 100644 index 000000000000..89063daf83c3 --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Delete_MinimumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "FileSystems_Delete_MinimumSet_Gen", + "operationId": "FileSystems_Delete", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "BF7E7352-2FE4-4163-9CF7-5FF8EC2E9B92", + "resourceGroupName": "rgDell", + "filesystemName": "abcd" + }, + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Get_MaximumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..b4c78d3bf365 --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Get_MaximumSet_Gen.json @@ -0,0 +1,75 @@ +{ + "title": "FileSystems_Get_MaximumSet_Gen", + "operationId": "FileSystems_Get", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "4B6E265D-57CF-4A9D-8B35-3CC68ED9D208", + "resourceGroupName": "rgDell", + "filesystemName": "abcd" + }, + "responses": { + "200": { + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "rqkpvczbtqcxiaivtbquixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "smartConnectFqdn": "fqdn", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "principalId": "11111111-1111-1111-1111-111111111111", + "tenantId": "11111111-1111-1111-1111-111111111111", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7644": { + "principalId": "11111111-1111-1111-1111-111111111111", + "clientId": "11111111-1111-1111-1111-111111111111" + } + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "name": "hyjt", + "type": "mzfepehqauauepqojtnobuyiegj", + "systemData": { + "createdBy": "xfvccbyptfzz", + "createdByType": "User", + "createdAt": "2024-08-28T09:20:01.255Z", + "lastModifiedBy": "uojozqmijcudlqxmvwckofopoori", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-08-28T09:20:01.255Z" + } + } + } + } +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Get_MinimumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Get_MinimumSet_Gen.json new file mode 100644 index 000000000000..243cee6f3dae --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Get_MinimumSet_Gen.json @@ -0,0 +1,41 @@ +{ + "title": "FileSystems_Get_MinimumSet_Gen", + "operationId": "FileSystems_Get", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "BF7E7352-2FE4-4163-9CF7-5FF8EC2E9B92", + "resourceGroupName": "rgDell", + "filesystemName": "abcd" + }, + "responses": { + "200": { + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "privateOfferId": "privateOfferId", + "planName": "planName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Microsoft-managed keys (MMK)" + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + } + } + } +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListByResourceGroup_MaximumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListByResourceGroup_MaximumSet_Gen.json new file mode 100644 index 000000000000..fb076f17aaa7 --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListByResourceGroup_MaximumSet_Gen.json @@ -0,0 +1,79 @@ +{ + "title": "FileSystems_ListByResourceGroup_MaximumSet_Gen", + "operationId": "FileSystems_ListByResourceGroup", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "4B6E265D-57CF-4A9D-8B35-3CC68ED9D208", + "resourceGroupName": "rgDell" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "rqkpvczbtqcxiaivtbquixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "smartConnectFqdn": "fqdn", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "principalId": "11111111-1111-1111-1111-111111111111", + "tenantId": "11111111-1111-1111-1111-111111111111", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7644": { + "principalId": "11111111-1111-1111-1111-111111111111", + "clientId": "11111111-1111-1111-1111-111111111111" + } + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "name": "hyjt", + "type": "mzfepehqauauepqojtnobuyiegj", + "systemData": { + "createdBy": "xfvccbyptfzz", + "createdByType": "User", + "createdAt": "2024-08-28T09:20:01.255Z", + "lastModifiedBy": "uojozqmijcudlqxmvwckofopoori", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-08-28T09:20:01.255Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListByResourceGroup_MinimumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListByResourceGroup_MinimumSet_Gen.json new file mode 100644 index 000000000000..891d885c70cf --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListByResourceGroup_MinimumSet_Gen.json @@ -0,0 +1,44 @@ +{ + "title": "FileSystems_ListByResourceGroup_MinimumSet_Gen", + "operationId": "FileSystems_ListByResourceGroup", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "BF7E7352-2FE4-4163-9CF7-5FF8EC2E9B92", + "resourceGroupName": "rgDell" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Microsoft-managed keys (MMK)" + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + } + ] + } + } + } +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListBySubscription_MaximumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListBySubscription_MaximumSet_Gen.json new file mode 100644 index 000000000000..16782303aa18 --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListBySubscription_MaximumSet_Gen.json @@ -0,0 +1,78 @@ +{ + "title": "FileSystems_ListBySubscription_MaximumSet_Gen", + "operationId": "FileSystems_ListBySubscription", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "4B6E265D-57CF-4A9D-8B35-3CC68ED9D208" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "rqkpvczbtqcxiaivtbquixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "smartConnectFqdn": "fqdn", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "principalId": "11111111-1111-1111-1111-111111111111", + "tenantId": "11111111-1111-1111-1111-111111111111", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7644": { + "principalId": "11111111-1111-1111-1111-111111111111", + "clientId": "11111111-1111-1111-1111-111111111111" + } + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "name": "hyjt", + "type": "mzfepehqauauepqojtnobuyiegj", + "systemData": { + "createdBy": "xfvccbyptfzz", + "createdByType": "User", + "createdAt": "2024-08-28T09:20:01.255Z", + "lastModifiedBy": "uojozqmijcudlqxmvwckofopoori", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-08-28T09:20:01.255Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListBySubscription_MinimumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListBySubscription_MinimumSet_Gen.json new file mode 100644 index 000000000000..3d00074eff9b --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_ListBySubscription_MinimumSet_Gen.json @@ -0,0 +1,43 @@ +{ + "title": "FileSystems_ListBySubscription_MinimumSet_Gen", + "operationId": "FileSystems_ListBySubscription", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "BF7E7352-2FE4-4163-9CF7-5FF8EC2E9B92" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Microsoft-managed keys (MMK)" + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + } + ] + } + } + } +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Update_MaximumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Update_MaximumSet_Gen.json new file mode 100644 index 000000000000..45b53bdec68f --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Update_MaximumSet_Gen.json @@ -0,0 +1,100 @@ +{ + "title": "FileSystems_Update_MaximumSet_Gen", + "operationId": "FileSystems_Update", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "4B6E265D-57CF-4A9D-8B35-3CC68ED9D208", + "resourceGroupName": "rgDell", + "filesystemName": "abcd", + "properties": { + "identity": { + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7645": {} + } + }, + "tags": { + "key6099": "ursbxlphfcguvntuevleacwq" + }, + "properties": { + "delegatedSubnetId": "bfpuabdz", + "capacity": { + "current": "5" + }, + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "marketplaceSubscriptionId": "mvjcxwndudbylynme", + "planId": "eekvwfndjoxijeasksnt", + "offerId": "bcganbkmvznyqfnvhjuag", + "publisherId": "trdzykoeskmcwpo", + "marketplaceSubscriptionStatus": "PendingFulfillmentStart", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "rqkpvczbtqcxiaivtbquixblb", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "smartConnectFqdn": "fqdn", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "identity": { + "principalId": "22222222-2222-2222-2222-222222222222", + "tenantId": "22222222-2222-2222-2222-222222222222", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7645": { + "principalId": "22222222-2222-2222-2222-222222222222", + "clientId": "22222222-2222-2222-2222-222222222222" + } + } + }, + "tags": { + "key7594": "sfkwapubiurgedzveido" + }, + "location": "cvbmsqftppe", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}", + "name": "hyjt", + "type": "mzfepehqauauepqojtnobuyiegj", + "systemData": { + "createdBy": "xfvccbyptfzz", + "createdByType": "User", + "createdAt": "2024-08-28T09:20:01.255Z", + "lastModifiedBy": "uojozqmijcudlqxmvwckofopoori", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-08-28T09:20:01.255Z" + } + } + } + } +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Update_MinimumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Update_MinimumSet_Gen.json new file mode 100644 index 000000000000..1d26503284cf --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/FileSystems_Update_MinimumSet_Gen.json @@ -0,0 +1,66 @@ +{ + "title": "FileSystems_Update_MinimumSet_Gen", + "operationId": "FileSystems_Update", + "parameters": { + "api-version": "2025-03-21", + "subscriptionId": "BF7E7352-2FE4-4163-9CF7-5FF8EC2E9B92", + "resourceGroupName": "rgDell", + "filesystemName": "abcd", + "properties": { + "properties": { + "delegatedSubnetId": "uqfvajvyltgmqvdnxhbrfqbpuey", + "capacity": { + "current": "5" + } + } + } + }, + "responses": { + "200": { + "body": { + "identity": { + "principalId": "11111111-1111-1111-1111-111111111111", + "tenantId": "11111111-1111-1111-1111-111111111111", + "type": "SystemAssigned,UserAssigned", + "userAssignedIdentities": { + "key7644": { + "principalId": "11111111-1111-1111-1111-111111111111", + "clientId": "11111111-1111-1111-1111-111111111111" + } + } + }, + "properties": { + "capacity": { + "min": "1", + "max": "10", + "incremental": "1", + "current": "5" + }, + "marketplace": { + "planId": "lgozf", + "offerId": "pzhjvibxqgeqkndqnjlduwnxqbr", + "privateOfferId": "privateOfferId", + "planName": "planeName", + "endDate": "2023-05-27T17:00:00-07:00" + }, + "provisioningState": "Accepted", + "delegatedSubnetId": "yp", + "delegatedSubnetCidr": "10.0.0.1/24", + "user": {}, + "fileSystemId": "filesystemId", + "dellReferenceNumber": "fhewkj", + "encryption": { + "encryptionType": "Customer-managed keys (CMK)", + "keyUrl": "https://contoso.com/keyurl/keyVersion", + "encryptionIdentityProperties": { + "identityType": "UserAssigned", + "identityResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}" + } + } + }, + "location": "tbcvhxzpgrijtdygkttnfswwtacs", + "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + } + } + } +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/Operations_List_MaximumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/Operations_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..e871ae799b1c --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/Operations_List_MaximumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Operations_List_MaximumSet_Gen", + "operationId": "Operations_List", + "parameters": { + "api-version": "2025-03-21" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "rndmegxufrfrypvgt", + "isDataAction": true, + "display": { + "provider": "bo", + "resource": "mlvmbnno", + "operation": "welhqbqmwwzytgtskhmxurcwhpsndg", + "description": "gfcmuplcdhodralpafiiwxytg" + }, + "origin": "user", + "actionType": "Internal" + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/Operations_List_MinimumSet_Gen.json b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/Operations_List_MinimumSet_Gen.json new file mode 100644 index 000000000000..97bd7035b4ec --- /dev/null +++ b/specification/dell/resource-manager/Dell.Storage/stable/2025-03-21/examples/Operations_List_MinimumSet_Gen.json @@ -0,0 +1,12 @@ +{ + "title": "Operations_List_MinimumSet_Gen", + "operationId": "Operations_List", + "parameters": { + "api-version": "2025-03-21" + }, + "responses": { + "200": { + "body": {} + } + } +} diff --git a/specification/dell/resource-manager/readme.md b/specification/dell/resource-manager/readme.md index 3967f32fde0d..ab97d5c3d28d 100644 --- a/specification/dell/resource-manager/readme.md +++ b/specification/dell/resource-manager/readme.md @@ -27,14 +27,13 @@ These are the global settings for the Dell.Storage. ```yaml openapi-type: arm openapi-subtype: rpaas -tag: package-2025-03-21-preview +tag: package-2025-03-21 suppressions: - - code: AvoidAnonymousTypes - where: - - $.definitions["LiftrBase.Storage.ManagedServiceIdentityUpdate"].properties.userAssignedIdentities.additionalProperties - reason: - Issue with common-types + - code: AvoidAnonymousTypes + where: + - $.definitions["LiftrBase.Storage.ManagedServiceIdentityUpdate"].properties.userAssignedIdentities.additionalProperties + reason: Issue with common-types ``` ### Tag: package-2025-03-21-preview @@ -46,4 +45,13 @@ input-file: - Dell.Storage/preview/2025-03-21-preview/Dell.Storage.json ``` +### Tag: package-2025-03-21 + +These settings apply only when `--tag=package-2025-03-21` is specified on the command line. + +```yaml $(tag) == 'package-2025-03-21' +input-file: + - Dell.Storage/stable/2025-03-21/Dell.Storage.json +``` + --- From 96392fc43637466535defeeb2779f2eb054392ce Mon Sep 17 00:00:00 2001 From: abaranwal-ms <124332815+abaranwal-ms@users.noreply.github.com> Date: Wed, 17 Dec 2025 22:32:35 -0800 Subject: [PATCH 059/117] typespec move for november preview (#38980) * typespec move for november preview * delete manual swaggers * update readme * update * update * rename for java * client.tsp * fix * java client * Update tspconfig.yaml for Azure Stack HCI SDK * update * Revert "update" This reverts commit 79b72fff7bd9e1ba39352bfadd411d265cb1bfe5. * duplicate list * use arm operations * fix doc comment * fix documentation * roo analysis * refactor duplicate models * remove dup text * adding dec preview * remove swaggers * Exclude some flattenProperties for js * restore not common models * Refactor EdgeMachine Models * duplicate list * use arm operations * fix doc comment * [Minor] use arm operations for ov api (#39121) * use arm operations * fix doc comment * make commit ready * format * fix documentation * roo analysis * refactor duplicate models * remove dup text * restore not common models * format * readme update * formatting * update * tsp compile with new version * no base version annotation * revert examples for november to store original alignment * hci properties for december * prettier fix * revert * remove : @@Legacy.flattenProperty(UpdateProperties.componentVersions); * recompile using compiler 1.7.0 * remove client flatten to unblock sdk * lint diff suppression * remove unused model * remove flatten from non model --------- Co-authored-by: Wenming Liu Co-authored-by: Weidong Xu Co-authored-by: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Co-authored-by: Yuchao Yan Co-authored-by: Jialin Huang Co-authored-by: Jiao Di (MSFT) --- .../client.tsp | 3 + .../StackHCI/ArcSetting.tsp | 136 + .../StackHCI/Cluster.tsp | 183 + .../StackHCI/DeploymentSetting.tsp | 54 + .../StackHCI/EdgeDevice.tsp | 71 + .../StackHCI/EdgeDeviceJob.tsp | 66 + .../StackHCI/Extension.tsp | 96 + .../StackHCI/Offer.tsp | 60 + .../StackHCI/Operations.tsp | 1 - .../StackHCI/Publisher.tsp | 46 + .../StackHCI/SecuritySetting.tsp | 54 + .../Microsoft.AzureStackHCI/StackHCI/Sku.tsp | 60 + .../StackHCI/Update.tsp | 81 + .../StackHCI/UpdateRun.tsp | 74 + .../StackHCI/UpdateSummaries.tsp | 76 + .../StackHCI/ValidatedSolutionRecipe.tsp | 50 + .../StackHCI/back-compatible.tsp | 102 + .../StackHCI/client.tsp | 43 + .../StackHCI/edgeMachine.tsp | 273 +- .../StackHCI/edgeMachineJobs.tsp | 238 +- .../StackHCI/eng/model-validation.md | 237 + .../StackHCI/eng/prettier-formatting.md | 187 + .../2025-11-01-preview/ChangeClusterRing.json | 85 + .../Clusters_UpdateSecretsLocations.json | 93 + .../ConfigureRemoteSupport.json | 115 + .../ConsentAndInstallDefaultExtensions.json | 54 + .../2025-11-01-preview/CreateArcIdentity.json | 28 + .../2025-11-01-preview/CreateCluster.json | 63 + .../CreateClusterIdentity.json | 27 + .../CreateHciEdgeDevice.json | 259 + .../2025-11-01-preview/DeleteArcSetting.json | 20 + .../2025-11-01-preview/DeleteCluster.json | 19 + .../DeleteDeploymentSettings.json | 19 + .../2025-11-01-preview/DeleteEdgeDevices.json | 17 + .../2025-11-01-preview/DeleteExtension.json | 21 + .../DeleteSecuritySettings.json | 19 + .../2025-11-01-preview/DeleteUpdateRuns.json | 21 + .../DeleteUpdateSummaries.json | 19 + .../2025-11-01-preview/DeleteUpdates.json | 20 + ...eDeviceJobs_CreateOrUpdate_CollectLog.json | 65 + ...viceJobs_CreateOrUpdate_RemoteSupport.json | 68 + .../EdgeDeviceJobs_Delete.json | 18 + .../EdgeDeviceJobs_Get_RemoteSupport.json | 34 + .../EdgeDeviceJobs_ListByEdgeDevice.json | 38 + .../ExtendSoftwareAssuranceBenefit.json | 84 + .../Extensions_Upgrade.json | 24 + .../2025-11-01-preview/GeneratePassword.json | 21 + .../2025-11-01-preview/GetArcSetting.json | 63 + .../2025-11-01-preview/GetCluster.json | 127 + .../GetDeploymentSettings.json | 273 + .../2025-11-01-preview/GetEdgeDevices.json | 48 + .../2025-11-01-preview/GetExtension.json | 82 + .../examples/2025-11-01-preview/GetOffer.json | 36 + .../2025-11-01-preview/GetPublisher.json | 20 + .../GetSecuritySettings.json | 40 + .../examples/2025-11-01-preview/GetSku.json | 38 + .../2025-11-01-preview/GetUpdateRuns.json | 45 + .../GetUpdateSummaries.json | 43 + .../2025-11-01-preview/GetUpdates.json | 46 + .../InitializeDisableProcess.json | 21 + .../ListArcSettingsByCluster.json | 66 + .../ListClustersByResourceGroup.json | 139 + .../ListClustersBySubscription.json | 138 + .../ListDeploymentSettingsByCluster.json | 205 + .../2025-11-01-preview/ListEdgeDevices.json | 74 + .../ListExtensionsByArcSetting.json | 97 + .../ListOffersByCluster.json | 38 + .../ListOffersByPublisher.json | 39 + .../ListPublishersByCluster.json | 23 + .../ListSecuritySettingsByCluster.json | 43 + .../2025-11-01-preview/ListSkusByOffer.json | 41 + .../2025-11-01-preview/ListUpdateRuns.json | 48 + .../ListUpdateSummaries.json | 47 + .../2025-11-01-preview/ListUpdates.json | 49 + .../2025-11-01-preview/PatchArcSetting.json | 76 + .../2025-11-01-preview/PatchExtension.json | 101 + ...Updates_ListByLocation_MaximumSet_Gen.json | 2 +- .../2025-11-01-preview/PostUpdates.json | 19 + .../2025-11-01-preview/PutArcSetting.json | 55 + .../PutDeploymentSettings.json | 735 + .../PutDeploymentSettingsWithADLess.json | 739 + .../2025-11-01-preview/PutExtension.json | 166 + .../PutSecuritySettings.json | 74 + .../2025-11-01-preview/PutUpdateRuns.json | 70 + .../PutUpdateSummaries.json | 54 + .../2025-11-01-preview/PutUpdates.json | 73 + .../TriggerLogCollection.json | 97 + .../2025-11-01-preview/UpdateCluster.json | 128 + ...ontents_ListByLocation_MaximumSet_Gen.json | 2 +- .../2025-11-01-preview/UploadCertificate.json | 25 + .../ValidateEdgeDevices.json | 28 + .../ValidatedSolutionRecipes_Get.json | 351 + ...es_ListBySubscriptionLocationResource.json | 355 + .../reconcileArcSettings.json | 78 + .../2025-12-01-preview/ChangeClusterRing.json | 85 + .../Clusters_UpdateSecretsLocations.json | 103 + .../ConfigureRemoteSupport.json | 115 + .../ConsentAndInstallDefaultExtensions.json | 54 + .../2025-12-01-preview/CreateArcIdentity.json | 28 + .../2025-12-01-preview/CreateCluster.json | 63 + .../CreateClusterIdentity.json | 27 + .../CreateHciEdgeDevice.json | 259 + .../2025-12-01-preview/DeleteArcSetting.json | 20 + .../2025-12-01-preview/DeleteCluster.json | 19 + .../DeleteDeploymentSettings.json | 19 + .../2025-12-01-preview/DeleteEdgeDevices.json | 17 + .../2025-12-01-preview/DeleteExtension.json | 21 + .../DeleteSecuritySettings.json | 19 + .../2025-12-01-preview/DeleteUpdateRuns.json | 21 + .../DeleteUpdateSummaries.json | 19 + .../2025-12-01-preview/DeleteUpdates.json | 20 + ...eDeviceJobs_CreateOrUpdate_CollectLog.json | 65 + ...viceJobs_CreateOrUpdate_RemoteSupport.json | 68 + .../EdgeDeviceJobs_Delete.json | 18 + .../EdgeDeviceJobs_Get_RemoteSupport.json | 34 + .../EdgeDeviceJobs_ListByEdgeDevice.json | 38 + .../ExtendSoftwareAssuranceBenefit.json | 84 + .../Extensions_Upgrade.json | 24 + .../2025-12-01-preview/GeneratePassword.json | 21 + .../2025-12-01-preview/GetArcSetting.json | 63 + .../2025-12-01-preview/GetCluster.json | 127 + .../GetDeploymentSettings.json | 273 + .../2025-12-01-preview/GetEdgeDevices.json | 48 + .../2025-12-01-preview/GetExtension.json | 82 + .../examples/2025-12-01-preview/GetOffer.json | 36 + .../2025-12-01-preview/GetPublisher.json | 20 + .../GetSecuritySettings.json | 40 + .../examples/2025-12-01-preview/GetSku.json | 38 + .../2025-12-01-preview/GetUpdateRuns.json | 45 + .../GetUpdateSummaries.json | 43 + .../2025-12-01-preview/GetUpdates.json | 46 + .../InitializeDisableProcess.json | 21 + .../ListArcSettingsByCluster.json | 66 + .../ListClustersByResourceGroup.json | 139 + .../ListClustersBySubscription.json | 138 + .../ListDeploymentSettingsByCluster.json | 205 + .../2025-12-01-preview/ListEdgeDevices.json | 93 + .../ListExtensionsByArcSetting.json | 97 + .../ListOffersByCluster.json | 38 + .../ListOffersByPublisher.json | 39 + .../ListPublishersByCluster.json | 23 + .../ListSecuritySettingsByCluster.json | 43 + .../2025-12-01-preview/ListSkusByOffer.json | 41 + .../2025-12-01-preview/ListUpdateRuns.json | 48 + .../ListUpdateSummaries.json | 47 + .../2025-12-01-preview/ListUpdates.json | 49 + .../2025-12-01-preview/PatchArcSetting.json | 76 + .../2025-12-01-preview/PatchExtension.json | 101 + .../2025-12-01-preview/PostUpdates.json | 19 + .../2025-12-01-preview/PutArcSetting.json | 55 + .../PutDeploymentSettings.json | 735 + .../PutDeploymentSettingsWithADLess.json | 739 + .../2025-12-01-preview/PutExtension.json | 166 + .../PutSecuritySettings.json | 74 + .../2025-12-01-preview/PutUpdateRuns.json | 70 + .../PutUpdateSummaries.json | 54 + .../2025-12-01-preview/PutUpdates.json | 73 + .../TriggerLogCollection.json | 97 + .../2025-12-01-preview/UpdateCluster.json | 128 + .../2025-12-01-preview/UploadCertificate.json | 25 + .../ValidateEdgeDevices.json | 28 + .../ValidatedSolutionRecipes_Get.json | 351 + ...es_ListBySubscriptionLocationResource.json | 355 + .../reconcileArcSettings.json | 78 + .../StackHCI/kubernetesVersions.tsp | 3 - .../Microsoft.AzureStackHCI/StackHCI/main.tsp | 16 + .../StackHCI/models.tsp | 5860 ++++++ .../StackHCI/osImages.tsp | 3 - .../StackHCI/platformUpdates.tsp | 5 - .../2025-11-01-preview/arcSettings.json | 1185 -- .../preview/2025-11-01-preview/clusters.json | 2271 --- .../deploymentSettings.json | 1131 -- .../2025-11-01-preview/edgeDeviceJobs.json | 1150 -- .../2025-11-01-preview/edgeDevices.json | 1320 -- .../examples/ChangeClusterRing.json | 2 + .../Clusters_UpdateSecretsLocations.json | 6 +- .../examples/ConfigureRemoteSupport.json | 2 + .../ConsentAndInstallDefaultExtensions.json | 2 + .../examples/CreateArcIdentity.json | 2 + .../examples/CreateCluster.json | 2 + .../examples/CreateClusterIdentity.json | 2 + .../examples/CreateHciEdgeDevice.json | 2 + .../examples/DeleteArcSetting.json | 2 + .../examples/DeleteCluster.json | 2 + .../examples/DeleteDeploymentSettings.json | 2 + .../examples/DeleteEdgeDevices.json | 2 + .../examples/DeleteExtension.json | 2 + .../examples/DeleteSecuritySettings.json | 2 + .../examples/DeleteUpdateRuns.json | 2 + .../examples/DeleteUpdateSummaries.json | 2 + .../examples/DeleteUpdates.json | 2 + .../ExtendSoftwareAssuranceBenefit.json | 2 + .../examples/Extensions_Upgrade.json | 2 + .../examples/GeneratePassword.json | 2 + .../examples/GetArcSetting.json | 2 + .../examples/GetCluster.json | 2 + .../examples/GetDeploymentSettings.json | 2 + .../examples/GetEdgeDevices.json | 2 + .../examples/GetExtension.json | 2 + .../2025-11-01-preview/examples/GetOffer.json | 2 + .../examples/GetPublisher.json | 2 + .../examples/GetSecuritySettings.json | 2 + .../2025-11-01-preview/examples/GetSku.json | 2 + .../examples/GetUpdateRuns.json | 2 + .../examples/GetUpdateSummaries.json | 2 + .../examples/GetUpdates.json | 2 + .../examples/InitializeDisableProcess.json | 2 + .../examples/ListArcSettingsByCluster.json | 2 + .../examples/ListClustersByResourceGroup.json | 2 + .../examples/ListClustersBySubscription.json | 2 + .../ListDeploymentSettingsByCluster.json | 2 + .../examples/ListEdgeDevices.json | 2 + .../examples/ListExtensionsByArcSetting.json | 2 + .../examples/ListOffersByCluster.json | 2 + .../examples/ListOffersByPublisher.json | 2 + .../examples/ListPublishersByCluster.json | 2 + .../ListSecuritySettingsByCluster.json | 2 + .../examples/ListSkusByOffer.json | 2 + .../examples/ListUpdateRuns.json | 2 + .../examples/ListUpdateSummaries.json | 2 + .../examples/ListUpdates.json | 2 + .../examples/PatchArcSetting.json | 2 + .../examples/PatchExtension.json | 2 + ...Updates_ListByLocation_MaximumSet_Gen.json | 2 +- .../examples/PostUpdates.json | 2 + .../examples/PutArcSetting.json | 2 + .../examples/PutDeploymentSettings.json | 5 +- .../PutDeploymentSettingsWithADLess.json | 5 +- .../examples/PutExtension.json | 2 + .../examples/PutSecuritySettings.json | 2 + .../examples/PutUpdateRuns.json | 2 + .../examples/PutUpdateSummaries.json | 2 + .../examples/PutUpdates.json | 2 + .../examples/TriggerLogCollection.json | 2 + .../examples/UpdateCluster.json | 2 + ...ontents_ListByLocation_MaximumSet_Gen.json | 2 +- .../examples/UploadCertificate.json | 2 + .../examples/ValidateEdgeDevices.json | 2 + .../examples/reconcileArcSettings.json | 2 + .../2025-11-01-preview/extensions.json | 1002 - .../preview/2025-11-01-preview/hci.json | 11830 +++++++++++- .../preview/2025-11-01-preview/hciCommon.json | 523 - .../preview/2025-11-01-preview/offers.json | 302 - .../2025-11-01-preview/publishers.json | 188 - .../2025-11-01-preview/securitySettings.json | 502 - .../preview/2025-11-01-preview/skus.json | 275 - .../2025-11-01-preview/updateRuns.json | 461 - .../2025-11-01-preview/updateSummaries.json | 510 - .../preview/2025-11-01-preview/updates.json | 769 - .../validatedSolutionRecipes.json | 396 - .../2025-12-01-preview/arcSettings.json | 1185 -- .../preview/2025-12-01-preview/clusters.json | 2279 --- .../deploymentSettings.json | 1131 -- .../2025-12-01-preview/edgeDeviceJobs.json | 1150 -- .../2025-12-01-preview/edgeDevices.json | 1399 -- .../examples/ChangeClusterRing.json | 96 +- .../Clusters_UpdateSecretsLocations.json | 96 +- .../examples/ConfigureRemoteSupport.json | 116 +- .../ConsentAndInstallDefaultExtensions.json | 54 +- .../examples/CreateArcIdentity.json | 14 +- .../examples/CreateCluster.json | 72 +- .../examples/CreateClusterIdentity.json | 14 +- .../examples/CreateHciEdgeDevice.json | 286 +- .../examples/DeleteArcSetting.json | 12 +- .../examples/DeleteCluster.json | 10 +- .../examples/DeleteDeploymentSettings.json | 10 +- .../examples/DeleteEdgeDevices.json | 8 +- .../examples/DeleteExtension.json | 12 +- .../examples/DeleteSecuritySettings.json | 10 +- .../examples/DeleteUpdateRuns.json | 12 +- .../examples/DeleteUpdateSummaries.json | 10 +- .../examples/DeleteUpdates.json | 12 +- ...eDeviceJobs_CreateOrUpdate_CollectLog.json | 50 +- ...viceJobs_CreateOrUpdate_RemoteSupport.json | 62 +- .../examples/EdgeDeviceJobs_Delete.json | 6 +- .../EdgeDeviceJobs_Get_RemoteSupport.json | 26 +- .../EdgeDeviceJobs_ListByEdgeDevice.json | 30 +- .../ExtendSoftwareAssuranceBenefit.json | 94 +- .../examples/Extensions_Upgrade.json | 18 +- .../examples/GeneratePassword.json | 18 +- .../examples/GetArcSetting.json | 64 +- .../examples/GetCluster.json | 124 +- .../examples/GetDeploymentSettings.json | 266 +- .../examples/GetEdgeDevices.json | 40 +- .../examples/GetExtension.json | 66 +- .../2025-12-01-preview/examples/GetOffer.json | 18 +- .../examples/GetPublisher.json | 14 +- .../examples/GetSecuritySettings.json | 40 +- .../2025-12-01-preview/examples/GetSku.json | 20 +- .../examples/GetUpdateRuns.json | 26 +- .../examples/GetUpdateSummaries.json | 28 +- .../examples/GetUpdates.json | 36 +- .../examples/InitializeDisableProcess.json | 16 +- .../examples/ListArcSettingsByCluster.json | 62 +- .../examples/ListClustersByResourceGroup.json | 142 +- .../examples/ListClustersBySubscription.json | 142 +- .../ListDeploymentSettingsByCluster.json | 226 +- .../examples/ListEdgeDevices.json | 2 + .../examples/ListExtensionsByArcSetting.json | 72 +- .../examples/ListOffersByCluster.json | 16 +- .../examples/ListOffersByPublisher.json | 16 +- .../examples/ListPublishersByCluster.json | 14 +- .../ListSecuritySettingsByCluster.json | 40 +- .../examples/ListSkusByOffer.json | 22 +- .../examples/ListUpdateRuns.json | 26 +- .../examples/ListUpdateSummaries.json | 28 +- .../examples/ListUpdates.json | 34 +- .../examples/PatchArcSetting.json | 64 +- .../examples/PatchExtension.json | 78 +- .../examples/PostUpdates.json | 12 +- .../examples/PutArcSetting.json | 56 +- .../examples/PutDeploymentSettings.json | 733 +- .../PutDeploymentSettingsWithADLess.json | 741 +- .../examples/PutExtension.json | 136 +- .../examples/PutSecuritySettings.json | 78 +- .../examples/PutUpdateRuns.json | 36 +- .../examples/PutUpdateSummaries.json | 36 +- .../examples/PutUpdates.json | 56 +- .../examples/TriggerLogCollection.json | 100 +- .../examples/UpdateCluster.json | 124 +- .../examples/UploadCertificate.json | 10 +- .../examples/ValidateEdgeDevices.json | 26 +- .../ValidatedSolutionRecipes_Get.json | 218 +- ...es_ListBySubscriptionLocationResource.json | 224 +- .../examples/reconcileArcSettings.json | 76 +- .../2025-12-01-preview/extensions.json | 1002 - .../preview/2025-12-01-preview/hci.json | 15796 +++++++++++++--- .../preview/2025-12-01-preview/hciCommon.json | 523 - .../preview/2025-12-01-preview/offers.json | 302 - .../2025-12-01-preview/publishers.json | 188 - .../2025-12-01-preview/securitySettings.json | 502 - .../preview/2025-12-01-preview/skus.json | 275 - .../2025-12-01-preview/updateRuns.json | 461 - .../2025-12-01-preview/updateSummaries.json | 510 - .../preview/2025-12-01-preview/updates.json | 769 - .../validatedSolutionRecipes.json | 396 - .../StackHCI/readme.md | 134 +- .../StackHCI/tspconfig.yaml | 14 +- .../StackHCI/updateContents.tsp | 4 - 339 files changed, 48313 insertions(+), 30133 deletions(-) create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/ArcSetting.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Cluster.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/DeploymentSetting.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/EdgeDevice.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/EdgeDeviceJob.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Extension.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Offer.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Publisher.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/SecuritySetting.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Sku.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Update.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/UpdateRun.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/UpdateSummaries.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/ValidatedSolutionRecipe.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/back-compatible.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/client.tsp create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/eng/model-validation.md create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/eng/prettier-formatting.md create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ChangeClusterRing.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/Clusters_UpdateSecretsLocations.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ConfigureRemoteSupport.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ConsentAndInstallDefaultExtensions.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateArcIdentity.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateClusterIdentity.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateHciEdgeDevice.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteArcSetting.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteDeploymentSettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteEdgeDevices.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteExtension.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteSecuritySettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteUpdateRuns.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteUpdateSummaries.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteUpdates.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_Delete.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_Get_RemoteSupport.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_ListByEdgeDevice.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ExtendSoftwareAssuranceBenefit.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/Extensions_Upgrade.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GeneratePassword.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetArcSetting.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetDeploymentSettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetEdgeDevices.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetExtension.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetOffer.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetPublisher.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetSecuritySettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetSku.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetUpdateRuns.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetUpdateSummaries.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetUpdates.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/InitializeDisableProcess.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListArcSettingsByCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListClustersByResourceGroup.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListClustersBySubscription.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListDeploymentSettingsByCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListEdgeDevices.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListExtensionsByArcSetting.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListOffersByCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListOffersByPublisher.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListPublishersByCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListSecuritySettingsByCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListSkusByOffer.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListUpdateRuns.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListUpdateSummaries.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListUpdates.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PatchArcSetting.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PatchExtension.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PostUpdates.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutArcSetting.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutDeploymentSettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutDeploymentSettingsWithADLess.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutExtension.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutSecuritySettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutUpdateRuns.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutUpdateSummaries.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutUpdates.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/TriggerLogCollection.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/UpdateCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/UploadCertificate.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ValidateEdgeDevices.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ValidatedSolutionRecipes_Get.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/reconcileArcSettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ChangeClusterRing.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/Clusters_UpdateSecretsLocations.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ConfigureRemoteSupport.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ConsentAndInstallDefaultExtensions.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateArcIdentity.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateClusterIdentity.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateHciEdgeDevice.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteArcSetting.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteDeploymentSettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteEdgeDevices.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteExtension.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteSecuritySettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteUpdateRuns.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteUpdateSummaries.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteUpdates.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_Delete.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_Get_RemoteSupport.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_ListByEdgeDevice.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ExtendSoftwareAssuranceBenefit.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/Extensions_Upgrade.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GeneratePassword.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetArcSetting.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetDeploymentSettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetEdgeDevices.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetExtension.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetOffer.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetPublisher.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetSecuritySettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetSku.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetUpdateRuns.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetUpdateSummaries.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetUpdates.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/InitializeDisableProcess.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListArcSettingsByCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListClustersByResourceGroup.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListClustersBySubscription.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListDeploymentSettingsByCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListEdgeDevices.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListExtensionsByArcSetting.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListOffersByCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListOffersByPublisher.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListPublishersByCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListSecuritySettingsByCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListSkusByOffer.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListUpdateRuns.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListUpdateSummaries.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListUpdates.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PatchArcSetting.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PatchExtension.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PostUpdates.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutArcSetting.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutDeploymentSettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutDeploymentSettingsWithADLess.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutExtension.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutSecuritySettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutUpdateRuns.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutUpdateSummaries.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutUpdates.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/TriggerLogCollection.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/UpdateCluster.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/UploadCertificate.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ValidateEdgeDevices.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ValidatedSolutionRecipes_Get.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/reconcileArcSettings.json create mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/models.tsp delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/arcSettings.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/clusters.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/deploymentSettings.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/edgeDeviceJobs.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/edgeDevices.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/extensions.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/hciCommon.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/offers.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/publishers.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/securitySettings.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/skus.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/updateRuns.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/updateSummaries.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/updates.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/validatedSolutionRecipes.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/arcSettings.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/clusters.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/deploymentSettings.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/edgeDeviceJobs.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/edgeDevices.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/extensions.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/hciCommon.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/offers.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/publishers.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/securitySettings.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/skus.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/updateRuns.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/updateSummaries.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/updates.json delete mode 100644 specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/validatedSolutionRecipes.json diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp index e6edd50fd2a2..0166780924d2 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp @@ -322,3 +322,6 @@ using Microsoft.AzureStackHCI; "csharp" ); @@clientName(VmSizeEnum, "HciVmSize", "csharp"); + +// Java +@@clientName(Update, "HciUpdate", "java"); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/ArcSetting.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/ArcSetting.tsp new file mode 100644 index 000000000000..10e9eb1351e3 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/ArcSetting.tsp @@ -0,0 +1,136 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Cluster.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +/** + * ArcSetting details. + */ +@parentResource(Cluster) +model ArcSetting is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = ArcSetting, + KeyName = "arcSettingName", + SegmentName = "arcSettings", + NamePattern = "" + >; +} + +@armResourceOperations +interface ArcSettings { + /** + * Get ArcSetting resource details of HCI Cluster. + */ + get is ArmResourceRead; + + /** + * Create ArcSetting for HCI cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + create is ArmResourceCreateOrReplaceSync< + ArcSetting, + Response = ArmResourceUpdatedResponse + >; + + /** + * Update ArcSettings for HCI cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-patch" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchSync; + + /** + * Delete ArcSetting resource details of HCI Cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteWithoutOkAsync< + ArcSetting, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * Get ArcSetting resources of HCI Cluster. + */ + listByCluster is ArmResourceListByParent< + ArcSetting, + Response = ArmResponse + >; + + /** + * Generate password for arc settings. + */ + generatePassword is ArmResourceActionSync< + ArcSetting, + void, + ArmResponse + >; + + /** + * Create Aad identity for arc settings. + */ + @action("createArcIdentity") + @Azure.Core.useFinalStateVia("azure-async-operation") + createIdentity is ArmResourceActionAsync< + ArcSetting, + void, + ArmResponse, + LroHeaders = ArmCombinedLroHeaders & + Azure.Core.Foundations.RetryAfterHeader + >; + + /** + * Reconcile Arc Settings with information related to all nodes. + */ + @Azure.Core.useFinalStateVia("azure-async-operation") + reconcile is ArmResourceActionAsync< + ArcSetting, + ReconcileArcSettingsRequest, + ArmResponse, + LroHeaders = ArmCombinedLroHeaders & + Azure.Core.Foundations.RetryAfterHeader + >; + + /** + * Add consent time for default extensions and initiate extensions installation + */ + consentAndInstallDefaultExtensions is ArmResourceActionSync< + ArcSetting, + void, + ArmResponse + >; + + /** + * Initializes ARC Disable process on the cluster + */ + @Azure.Core.useFinalStateVia("azure-async-operation") + initializeDisableProcess is ArmResourceActionAsync< + ArcSetting, + void, + OkResponse, + LroHeaders = ArmCombinedLroHeaders & Azure.Core.Foundations.RetryAfterHeader + >; +} + +@@doc(ArcSetting.name, + "The name of the proxy resource holding details of HCI ArcSetting information." +); +@@doc(ArcSetting.properties, "ArcSetting properties."); +@@doc(ArcSettings.create::parameters.resource, + "Parameters supplied to the Create ArcSetting resource for this HCI cluster." +); +@@doc(ArcSettings.update::parameters.properties, + "ArcSettings parameters that needs to be updated" +); +@@doc(ArcSettings.reconcile::parameters.body, + "Request for reconciling Arc Settings." +); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Cluster.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Cluster.tsp new file mode 100644 index 000000000000..136e6213f78e --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Cluster.tsp @@ -0,0 +1,183 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +/** + * Cluster details. + */ +model Cluster is Azure.ResourceManager.TrackedResource { + ...ResourceNameParameter< + Resource = Cluster, + KeyName = "clusterName", + SegmentName = "clusters", + NamePattern = "" + >; + ...Azure.ResourceManager.ManagedServiceIdentityProperty; + + /** + * This property identifies the purpose of the Cluster deployment. For example, a valid value is AzureLocal + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read, Lifecycle.Create) + @pattern("^[-\\w\\._,\\(\\\\\\)]+$") + kind?: string; +} + +@armResourceOperations +interface Clusters { + /** + * Get HCI cluster. + */ + get is ArmResourceRead; + + /** + * Create an HCI cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + create is ArmResourceCreateOrReplaceSync< + Cluster, + Response = ArmResourceUpdatedResponse + >; + + /** + * Update an HCI cluster. + */ + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchSync; + + /** + * Delete an HCI cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteWithoutOkAsync< + Cluster, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * List all HCI clusters in a resource group. + */ + listByResourceGroup is ArmResourceListByParent< + Cluster, + Response = ArmResponse + >; + + /** + * List all HCI clusters in a subscription. + */ + listBySubscription is ArmListBySubscription< + Cluster, + Response = ArmResponse + >; + + /** + * Update cluster secrets locations. + */ + updateSecretsLocations is ArmResourceActionAsync< + Cluster, + SecretsLocationsChangeRequest, + Cluster + >; + + /** + * Upload certificate. + */ + @Azure.Core.useFinalStateVia("azure-async-operation") + uploadCertificate is ArmResourceActionAsyncBase< + Cluster, + UploadCertificateRequest, + ArmAcceptedLroResponse, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters + >; + + /** + * Create cluster identity. + */ + @Azure.Core.useFinalStateVia("azure-async-operation") + @action("createClusterIdentity") + createIdentity is ArmResourceActionAsync< + Cluster, + void, + ArmResponse, + LroHeaders = ArmCombinedLroHeaders & + Azure.Core.Foundations.RetryAfterHeader + >; + + /** + * Extends Software Assurance Benefit to a cluster + */ + extendSoftwareAssuranceBenefit is ArmResourceActionAsync< + Cluster, + SoftwareAssuranceChangeRequest, + Cluster + >; + + /** + * Changes ring of a cluster + */ + changeRing is ArmResourceActionAsync; + + /** + * Trigger Log Collection on a cluster + */ + triggerLogCollection is ArmResourceActionAsync< + Cluster, + LogCollectionRequest, + Cluster + >; + + /** + * Configure RemoteSupport on a cluster + */ + configureRemoteSupport is ArmResourceActionAsync< + Cluster, + RemoteSupportRequest, + Cluster + >; + + /** + * List Offers available across publishers for the HCI Cluster. + */ + @list + @get + @action("offers") + listByCluster is ArmResourceActionSync< + Cluster, + void, + ArmResponse, + Parameters = { + /** + * Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer. + */ + @query("$expand") + $expand?: string; + } + >; +} + +@@doc(Cluster.name, "The name of the cluster."); +@@doc(Cluster.properties, "Cluster properties."); +@@doc(Clusters.create::parameters.resource, "Details of the HCI cluster."); +@@doc(Clusters.update::parameters.properties, "Details of the HCI cluster."); +@@doc(Clusters.uploadCertificate::parameters.body, + "Upload certificate request." +); +@@doc(Clusters.extendSoftwareAssuranceBenefit::parameters.body, + "Software Assurance Change Request Payload" +); +@@doc(Clusters.changeRing::parameters.body, "Change ring request payload"); +@@doc(Clusters.triggerLogCollection::parameters.body, + "Trigger Log Collection Request Payload" +); +@@doc(Clusters.configureRemoteSupport::parameters.body, + "Configure Remote Support Request Payload" +); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/DeploymentSetting.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/DeploymentSetting.tsp new file mode 100644 index 000000000000..c8de4de716ee --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/DeploymentSetting.tsp @@ -0,0 +1,54 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Cluster.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +/** + * Edge device resource + */ +@parentResource(Cluster) +model DeploymentSetting + is Azure.ResourceManager.ProxyResource { + @path + @key("deploymentSettingsName") + @segment("deploymentSettings") + @pattern("^[a-zA-Z0-9-]{3,24}$") + name: string = "default"; +} + +@armResourceOperations +interface DeploymentSettings { + /** + * Get a DeploymentSetting + */ + get is ArmResourceRead; + + /** + * Create a DeploymentSetting + */ + createOrUpdate is ArmResourceCreateOrReplaceAsync; + + /** + * Delete a DeploymentSetting + */ + delete is ArmResourceDeleteWithoutOkAsync; + + /** + * List DeploymentSetting resources by Clusters + */ + listByClusters is ArmResourceListByParent; +} + +@@doc(DeploymentSetting.name, "Name of Deployment Setting"); +@@doc(DeploymentSetting.properties, + "The resource-specific properties for this resource." +); +@@visibility(DeploymentSetting.properties, Lifecycle.Read, Lifecycle.Create); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/EdgeDevice.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/EdgeDevice.tsp new file mode 100644 index 000000000000..ee24c450a2b7 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/EdgeDevice.tsp @@ -0,0 +1,71 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +// FIXME: EdgeDevice has no properties property +/** + * Edge device resource. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-base-parameter" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@extensionResource +model EdgeDevice + is Azure.ResourceManager.Legacy.DiscriminatedExtensionResource { + @path + @key("edgeDeviceName") + @segment("edgeDevices") + @pattern("^[a-zA-Z0-9-]{3,24}$") + name: string = "default"; +} + +@armResourceOperations +interface EdgeDevices { + /** + * Get a EdgeDevice + */ + get is Azure.ResourceManager.Extension.Read< + Azure.ResourceManager.Extension.ScopeParameter, + EdgeDevice + >; + + /** + * Create a EdgeDevice + */ + createOrUpdate is Azure.ResourceManager.Extension.CreateOrReplaceAsync< + Azure.ResourceManager.Extension.ScopeParameter, + EdgeDevice + >; + /** + * Delete a EdgeDevice + */ + delete is Azure.ResourceManager.Extension.DeleteWithoutOkAsync< + Azure.ResourceManager.Extension.ScopeParameter, + EdgeDevice + >; + /** + * List EdgeDevice resources by parent + */ + list is Azure.ResourceManager.Extension.ListByTarget< + Azure.ResourceManager.Extension.ScopeParameter, + EdgeDevice + >; + + /** + * A long-running resource action. + */ + validate is Azure.ResourceManager.Extension.ActionAsync< + Azure.ResourceManager.Extension.ScopeParameter, + EdgeDevice, + ValidateRequest, + ValidateResponse + >; +} +@@doc(EdgeDevice.name, "Name of Device"); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/EdgeDeviceJob.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/EdgeDeviceJob.tsp new file mode 100644 index 000000000000..4189eb27a119 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/EdgeDeviceJob.tsp @@ -0,0 +1,66 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./EdgeDevice.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +// FIXME: EdgeDeviceJob has no properties property +/** + * EdgeDevice Jobs resource + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-base-parameter" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@extensionResource +@parentResource(EdgeDevice) +model EdgeDeviceJob + is Azure.ResourceManager.Legacy.DiscriminatedExtensionResource { + ...ResourceNameParameter< + Resource = EdgeDeviceJob, + KeyName = "jobsName", + SegmentName = "jobs" + >; +} + +@armResourceOperations +interface EdgeDeviceJobs { + /** + * Get a EdgeDeviceJob + */ + get is Azure.ResourceManager.Extension.Read< + Azure.ResourceManager.Extension.ScopeParameter, + EdgeDeviceJob + >; + + /** + * Create a EdgeDeviceJob + */ + createOrUpdate is Azure.ResourceManager.Extension.CreateOrReplaceAsync< + Azure.ResourceManager.Extension.ScopeParameter, + EdgeDeviceJob + >; + + /** + * Delete a EdgeDeviceJob + */ + delete is Azure.ResourceManager.Extension.DeleteWithoutOkAsync< + Azure.ResourceManager.Extension.ScopeParameter, + EdgeDeviceJob + >; + + /** + * List EdgeDeviceJob resources by EdgeDevice + */ + listByEdgeDevice is Azure.ResourceManager.Extension.ListByTarget< + Azure.ResourceManager.Extension.ScopeParameter, + EdgeDeviceJob + >; +} + +@@doc(EdgeDeviceJob.name, "Name of EdgeDevice Job"); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Extension.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Extension.tsp new file mode 100644 index 000000000000..a4e9fff2c50e --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Extension.tsp @@ -0,0 +1,96 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./ArcSetting.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +/** + * Details of a particular extension in HCI Cluster. + */ +@parentResource(ArcSetting) +model Extension is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = Extension, + KeyName = "extensionName", + SegmentName = "extensions", + NamePattern = "" + >; +} + +@armResourceOperations +interface Extensions { + /** + * Get particular Arc Extension of HCI Cluster. + */ + get is ArmResourceRead; + + /** + * Create Extension for HCI cluster. + */ + create is ArmResourceCreateOrReplaceAsync; + + /** + * Update Extension for HCI cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @patch(#{ implicitOptionality: false }) + @Azure.Core.useFinalStateVia("original-uri") + update is ArmCustomPatchAsync< + Extension, + PatchModel = ExtensionPatch, + Response = Extension | ArmAcceptedLroResponse + >; + + /** + * Delete particular Arc Extension of HCI Cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.Core.useFinalStateVia("azure-async-operation") + delete is ArmResourceDeleteWithoutOkAsync< + Extension, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * List all Extensions under ArcSetting resource. + */ + listByArcSetting is ArmResourceListByParent< + Extension, + Response = ArmResponse + >; + + /** + * Upgrade a particular Arc Extension of HCI Cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + upgrade is ArmResourceActionAsyncBase< + Extension, + ExtensionUpgradeParameters, + ArmAcceptedLroResponse, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters + >; +} + +@@doc(Extension.name, "The name of the machine extension."); +@@doc(Extension.properties, "Describes Machine Extension Properties."); +@@doc(Extensions.create::parameters.resource, + "Details of the Machine Extension to be created." +); +@@doc(Extensions.update::parameters.properties, + "Details of the Machine Extension to be created." +); +@@doc(Extensions.upgrade::parameters.body, + "Parameters supplied to the Upgrade Extensions operation." +); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Offer.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Offer.tsp new file mode 100644 index 000000000000..cda9802e4a53 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Offer.tsp @@ -0,0 +1,60 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Publisher.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +/** + * Offer details. + */ +@parentResource(Publisher) +model Offer is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = Offer, + KeyName = "offerName", + SegmentName = "offers", + NamePattern = "" + >; +} + +@armResourceOperations +interface Offers { + /** + * Get Offer resource details within a publisher of HCI Cluster. + */ + get is ArmResourceRead< + Offer, + Parameters = { + /** + * Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer. + */ + @query("$expand") + $expand?: string; + } + >; + + /** + * List Offers available for a publisher within the HCI Cluster. + */ + listByPublisher is ArmResourceListByParent< + Offer, + Parameters = { + /** + * Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer. + */ + @query("$expand") + $expand?: string; + }, + Response = ArmResponse + >; +} + +@@doc(Offer.name, "The name of the offer available within HCI cluster."); +@@doc(Offer.properties, "Offer properties."); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Operations.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Operations.tsp index b3be53c13be3..1a68f520b402 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Operations.tsp +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Operations.tsp @@ -10,5 +10,4 @@ using TypeSpec.Versioning; #suppress "@azure-tools/typespec-azure-core/casing-style" "HCI itself is a short form." namespace Microsoft.AzureStackHCI; -@added(Versions.v2025_11_01_preview) interface Operations extends Azure.ResourceManager.Operations {} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Publisher.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Publisher.tsp new file mode 100644 index 000000000000..cbf09899d299 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Publisher.tsp @@ -0,0 +1,46 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Cluster.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +/** + * Publisher details. + */ +@parentResource(Cluster) +model Publisher is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = Publisher, + KeyName = "publisherName", + SegmentName = "publishers", + NamePattern = "" + >; +} + +@armResourceOperations +interface Publishers { + /** + * Get Publisher resource details of HCI Cluster. + */ + get is ArmResourceRead; + + /** + * List Publishers available for the HCI Cluster. + */ + listByCluster is ArmResourceListByParent< + Publisher, + Response = ArmResponse + >; +} + +@@doc(Publisher.name, + "The name of the publisher available within HCI cluster." +); +@@doc(Publisher.properties, "Publisher properties."); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/SecuritySetting.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/SecuritySetting.tsp new file mode 100644 index 000000000000..19c3140b0118 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/SecuritySetting.tsp @@ -0,0 +1,54 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Cluster.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +/** + * Security settings proxy resource + */ +@parentResource(Cluster) +model SecuritySetting + is Azure.ResourceManager.ProxyResource { + @path + @key("securitySettingsName") + @segment("securitySettings") + @pattern("^[a-zA-Z0-9-]{3,24}$") + name: string = "default"; +} + +@armResourceOperations +interface SecuritySettings { + /** + * Get a SecuritySetting + */ + get is ArmResourceRead; + + /** + * Create a security setting + */ + createOrUpdate is ArmResourceCreateOrReplaceAsync; + + /** + * Delete a SecuritySetting + */ + delete is ArmResourceDeleteWithoutOkAsync; + + /** + * List SecuritySetting resources by Clusters + */ + listByClusters is ArmResourceListByParent; +} + +@@doc(SecuritySetting.name, "Name of security setting"); +@@doc(SecuritySetting.properties, + "The resource-specific properties for this resource." +); +@@visibility(SecuritySetting.properties, Lifecycle.Read, Lifecycle.Create); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Sku.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Sku.tsp new file mode 100644 index 000000000000..f5dff897927f --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Sku.tsp @@ -0,0 +1,60 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Offer.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +/** + * Sku details. + */ +@parentResource(Offer) +model Sku is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = Sku, + KeyName = "skuName", + SegmentName = "skus", + NamePattern = "" + >; +} + +@armResourceOperations +interface Skus { + /** + * Get SKU resource details within a offer of HCI Cluster. + */ + get is ArmResourceRead< + Sku, + Parameters = { + /** + * Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer. + */ + @query("$expand") + $expand?: string; + } + >; + + /** + * List Skus available for a offer within the HCI Cluster. + */ + listByOffer is ArmResourceListByParent< + Sku, + Parameters = { + /** + * Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer. + */ + @query("$expand") + $expand?: string; + }, + Response = ArmResponse + >; +} + +@@doc(Sku.name, "The name of the SKU available within HCI cluster."); +@@doc(Sku.properties, "SKU properties."); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Update.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Update.tsp new file mode 100644 index 000000000000..c68b2af2e3fa --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/Update.tsp @@ -0,0 +1,81 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Cluster.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +/** + * Update details + */ +@parentResource(Cluster) +model Update is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = Update, + KeyName = "updateName", + SegmentName = "updates", + NamePattern = "" + >; + + /** + * The geo-location where the resource lives + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read, Lifecycle.Create) + location?: string; +} + +@armResourceOperations +interface Updates { + /** + * Get specified Update + */ + get is ArmResourceRead; + + /** + * Put specified Update + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + put is ArmResourceCreateOrReplaceSync< + Update, + Response = ArmResourceUpdatedResponse + >; + + /** + * Delete specified Update + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteWithoutOkAsync< + Update, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * List all Updates + */ + list is ArmResourceListByParent>; + + /** + * Apply Update + */ + @action("apply") + @Azure.Core.useFinalStateVia("azure-async-operation") + post is ArmResourceActionAsync< + Update, + void, + OkResponse, + LroHeaders = ArmCombinedLroHeaders & Azure.Core.Foundations.RetryAfterHeader + >; +} + +@@doc(Update.name, "The name of the Update"); +@@doc(Update.properties, "Update properties"); +@@doc(Updates.put::parameters.resource, "Properties of the Updates object"); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/UpdateRun.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/UpdateRun.tsp new file mode 100644 index 000000000000..58a5162fd846 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/UpdateRun.tsp @@ -0,0 +1,74 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Update.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +/** + * Details of an Update run + */ +@parentResource(Update) +model UpdateRun is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = UpdateRun, + KeyName = "updateRunName", + SegmentName = "updateRuns", + NamePattern = "" + >; + + /** + * The geo-location where the resource lives + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read, Lifecycle.Create) + location?: string; +} + +@armResourceOperations +interface UpdateRuns { + /** + * Get the Update run for a specified update + */ + get is ArmResourceRead; + + /** + * Put Update runs for a specified update + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + put is ArmResourceCreateOrReplaceSync< + UpdateRun, + Response = ArmResourceUpdatedResponse + >; + + /** + * Delete specified Update Run + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteWithoutOkAsync< + UpdateRun, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * List all Update runs for a specified update + */ + list is ArmResourceListByParent< + UpdateRun, + Response = ArmResponse + >; +} + +@@doc(UpdateRun.name, "The name of the Update Run"); +@@doc(UpdateRun.properties, "Describes Update Run Properties."); +@@doc(UpdateRuns.put::parameters.resource, + "Properties of the updateRuns object" +); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/UpdateSummaries.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/UpdateSummaries.tsp new file mode 100644 index 000000000000..98c12fe12759 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/UpdateSummaries.tsp @@ -0,0 +1,76 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Cluster.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +/** + * Get the update summaries for the cluster + */ +@singleton("default") +@parentResource(Cluster) +model UpdateSummaries + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = UpdateSummaries, + KeyName = "updateSummary", + SegmentName = "updateSummaries", + NamePattern = "" + >; + + /** + * The geo-location where the resource lives + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read, Lifecycle.Create) + location?: string; +} + +@armResourceOperations +interface UpdateSummariesOperationGroup { + /** + * Get all Update summaries under the HCI cluster + */ + get is ArmResourceRead; + + /** + * Put Update summaries under the HCI cluster + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + put is ArmResourceCreateOrReplaceSync< + UpdateSummaries, + Response = ArmResourceUpdatedResponse + >; + + /** + * Delete Update Summaries + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteWithoutOkAsync< + UpdateSummaries, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * List all Update summaries under the HCI cluster + */ + list is ArmResourceListByParent< + UpdateSummaries, + Response = ArmResponse + >; +} + +@@doc(UpdateSummaries.name, ""); +@@doc(UpdateSummaries.properties, "Update summaries properties"); +@@doc(UpdateSummariesOperationGroup.put::parameters.resource, + "Properties of the UpdateSummaries resource" +); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/ValidatedSolutionRecipe.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/ValidatedSolutionRecipe.tsp new file mode 100644 index 000000000000..00ae03676927 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/ValidatedSolutionRecipe.tsp @@ -0,0 +1,50 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.AzureStackHCI; +/** + * Represents a validated solution recipe resource. + */ +@subscriptionResource +@parentResource(Azure.ResourceManager.SubscriptionLocationResource) +model ValidatedSolutionRecipe + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = ValidatedSolutionRecipe, + KeyName = "validatedSolutionRecipeName", + SegmentName = "validatedSolutionRecipes", + NamePattern = "^[a-zA-Z0-9-.]{3,50}$" + >; +} + +@armResourceOperations +interface ValidatedSolutionRecipes { + /** + * Get a validated solution recipe. + */ + get is ArmResourceRead< + ValidatedSolutionRecipe, + BaseParameters = Azure.ResourceManager.Foundations.SubscriptionBaseParameters + >; + + /** + * List all validated solution recipes. + */ + listBySubscriptionLocationResource is ArmResourceListByParent< + ValidatedSolutionRecipe, + BaseParameters = Azure.ResourceManager.Foundations.SubscriptionBaseParameters + >; +} + +@@doc(ValidatedSolutionRecipe.name, "The name of the ValidatedSolutionRecipe"); +@@doc(ValidatedSolutionRecipe.properties, + "The resource-specific properties for this resource." +); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/back-compatible.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/back-compatible.tsp new file mode 100644 index 000000000000..fe885681bc9c --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/back-compatible.tsp @@ -0,0 +1,102 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Microsoft.AzureStackHCI; + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(ArcSettingsPatch.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(ArcIdentityResponse.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(ClusterPatch.identity); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(ClusterPatch.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(ClusterIdentityResponse.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(ExtensionProperties.extensionParameters); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(ExtensionPatch.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(UpdateRunProperties.progress); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(UpdateProperties.updateStateProperties); + +@@clientName(ArcSettings.create::parameters.resource, "arcSetting"); +@@clientName(ArcSettings.update::parameters.properties, "arcSetting"); +@@clientName(ArcSettings.reconcile::parameters.body, + "reconcileArcSettingsRequest" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(ArcSetting.properties); + +@@clientName(Clusters.create::parameters.resource, "cluster"); +@@clientName(Clusters.update::parameters.properties, "cluster"); +@@clientName(Clusters.uploadCertificate::parameters.body, + "uploadCertificateRequest" +); +@@clientName(Clusters.extendSoftwareAssuranceBenefit::parameters.body, + "softwareAssuranceChangeRequest" +); +@@clientName(Clusters.changeRing::parameters.body, "changeRingRequest"); +@@clientName(Clusters.triggerLogCollection::parameters.body, + "logCollectionRequest" +); +@@clientName(Clusters.configureRemoteSupport::parameters.body, + "remoteSupportRequest" +); +@@clientLocation(Clusters.listByCluster, Offers); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(Cluster.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(DeploymentSetting.properties); + +@@clientName(EdgeDevices.validate::parameters.body, "ValidateRequest"); + +@@clientName(Extensions.create::parameters.resource, "extension"); +@@clientName(Extensions.update::parameters.properties, "extension"); +@@clientName(Extensions.upgrade::parameters.body, "extensionUpgradeParameters"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(Extension.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(Offer.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(Publisher.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(SecuritySetting.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(Sku.properties); + +@@clientName(UpdateRuns.put::parameters.resource, "updateRunsProperties"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(UpdateRun.properties); + +@@clientName(Updates.put::parameters.resource, "updateProperties"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(Microsoft.AzureStackHCI.Update.properties); + +@@clientLocation(UpdateSummariesOperationGroup.get, "UpdateSummaries"); +@@clientLocation(UpdateSummariesOperationGroup.put, "UpdateSummaries"); +@@clientName(UpdateSummariesOperationGroup.put::parameters.resource, + "updateLocationProperties" +); +@@clientLocation(UpdateSummariesOperationGroup.delete, "UpdateSummaries"); +@@clientLocation(UpdateSummariesOperationGroup.list, "UpdateSummaries"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(UpdateSummaries.properties); +@@key(Azure.ResourceManager.Extension.ScopeParameter.scope, "resourceUri"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@Legacy.flattenProperty(Cluster.identity); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/client.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/client.tsp new file mode 100644 index 000000000000..ba2cd6abfbc9 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/client.tsp @@ -0,0 +1,43 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Microsoft.AzureStackHCI; + +@@clientName(Microsoft.AzureStackHCI.Update, "HciUpdate", "java"); +@@clientName(Microsoft.AzureStackHCI.RemoteSupportProperties.expirationTimeStamp, + "expirationTimestamp", + "java" +); +@@clientName(Microsoft.AzureStackHCI.RemoteSupportRequestProperties.expirationTimeStamp, + "expirationTimestamp", + "java" +); +@@clientName(Microsoft.AzureStackHCI.PrecheckResult.targetResourceID, + "targetResourceId", + "java" +); +@@clientName(Microsoft.AzureStackHCI.QosPolicyOverrides.priorityValue8021Action_SMB, + "priorityValue8021ActionSmb", + "java" +); +@@clientName(Microsoft.AzureStackHCI.QosPolicyOverrides.bandwidthPercentage_SMB, + "bandwidthPercentageSmb", + "java" +); +@@clientName(Microsoft.AzureStackHCI.DeploymentSettingStorageNetworks.storageAdapterIPInfo, + "storageAdapterIpInfo", + "java" +); +@@clientName(Microsoft.AzureStackHCI.HciEdgeDeviceStorageNetworks.storageAdapterIPInfo, + "storageAdapterIpInfo", + "java" +); +@@clientName(Microsoft.AzureStackHCI.DeploymentSettingStorageAdapterIPInfo, + "DeploymentSettingStorageAdapterIpInfo", + "java" +); +@@clientName(Microsoft.AzureStackHCI.HciEdgeDeviceStorageAdapterIPInfo, + "HciEdgeDeviceStorageAdapterIpInfo", + "java" +); diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/edgeMachine.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/edgeMachine.tsp index 173d430e4e5f..cb1cdcbf207f 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/edgeMachine.tsp +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/edgeMachine.tsp @@ -133,7 +133,7 @@ model EdgeMachineProperties { @doc("Reported properties for edge machine.") @visibility(Lifecycle.Read) - reportedProperties?: ReportedProperties; + reportedProperties?: EdgeMachineReportedProperties; @doc("operation status details for edge machine.") @visibility(Lifecycle.Read) @@ -284,49 +284,16 @@ union EdgeMachineState { Preparing: "Preparing", } -@added(Versions.v2025_12_01_preview) -@doc("The provisioning state of a resource.") -union ProvisioningState { - string, - - @doc("The resource provision state is not specified") - NotSpecified: "NotSpecified", - - @doc("Resource has been created.") - Succeeded: "Succeeded", - - @doc("Resource creation failed.") - Failed: "Failed", - - @doc("Resource creation was canceled.") - Canceled: "Canceled", - - @doc("Resource creation is in progress.") - InProgress: "InProgress", - - @doc("The resource is being provisioned") - Provisioning: "Provisioning", - - @doc("The resource is updating") - Updating: "Updating", - - @doc("The resource is being deleted") - Deleting: "Deleting", - - @doc("The resource create request has been accepted") - Accepted: "Accepted", -} - @added(Versions.v2025_12_01_preview) @doc("Reported properties for edge machine.") -model ReportedProperties { +model EdgeMachineReportedProperties { @doc("Last time data reported.") @visibility(Lifecycle.Read) lastUpdated?: utcDateTime; @doc("Network details for edge machine.") @visibility(Lifecycle.Read) - networkProfile?: NetworkProfile; + networkProfile?: EdgeMachineNetworkProfile; @doc("OS Properties for edge machine.") @visibility(Lifecycle.Read) @@ -351,11 +318,11 @@ model ReportedProperties { @added(Versions.v2025_12_01_preview) @doc("NetworkProfile of edge machine.") -model NetworkProfile { +model EdgeMachineNetworkProfile { @doc("List of Network Interface Card (NIC) Details of edge machine.") @visibility(Lifecycle.Read) @Azure.ResourceManager.identifiers(#["adapterName"]) - nicDetails?: NicDetail[]; + nicDetails?: EdgeMachineNicDetail[]; @doc("List of switch Details of edge machine.") @visibility(Lifecycle.Read) @@ -365,7 +332,7 @@ model NetworkProfile { @added(Versions.v2025_12_01_preview) @doc("Network Interface Card (NIC) Details of edge machine.") -model NicDetail { +model EdgeMachineNicDetail { /** * Adapter Name of NIC */ @@ -463,53 +430,6 @@ model NicDetail { rdmaCapability?: RdmaCapability = RdmaCapability.Disabled; } -@added(Versions.v2025_12_01_preview) -@doc("Switch Details of edge machine.") -model SwitchDetail { - /** - * The name of the switch. - */ - @visibility(Lifecycle.Read) - switchName?: string; - - /** - * The type of the switch. e.g. external, internal. - */ - @visibility(Lifecycle.Read) - switchType?: string; - - /** - * This represents extensions installed on virtualSwitch. - */ - @visibility(Lifecycle.Read) - @Azure.ResourceManager.identifiers(#["extensionName"]) - extensions?: SwitchExtension[]; -} - -/** - * This represents extensions installed on virtualSwitch. - */ -@added(Versions.v2025_12_01_preview) -model SwitchExtension { - /** - * Unique identifier for virtualSwitch. - */ - @visibility(Lifecycle.Read) - switchId?: string; - - /** - * This will show extension name for virtualSwitch. - */ - @visibility(Lifecycle.Read) - extensionName?: string; - - /** - * This represents whether extension is enabled on virtualSwitch. - */ - @visibility(Lifecycle.Read) - extensionEnabled?: boolean; -} - /** * OS configurations for HCI device. */ @@ -564,24 +484,6 @@ model OsProfile { imageVersion?: string; } -/** - * Describes the RDMA capability of the network adapter. - */ -@added(Versions.v2025_12_01_preview) -union RdmaCapability { - string, - - /** - * Network Adapter on the device is RDMA Capable - */ - Enabled: "Enabled", - - /** - * Network Adapter on the device isn't RDMA Capable - */ - Disabled: "Disabled", -} - /** * Hardware profile for the machine */ @@ -637,151 +539,6 @@ model StorageProfile { @visibility(Lifecycle.Read) poolableDisksCount?: int64; } - -/** - * Solution builder extension (SBE) deployment package information. - */ -@added(Versions.v2025_12_01_preview) -model SbeDeploymentPackageInfo { - /** - * SBE deployment validation code. - */ - @visibility(Lifecycle.Read) - code?: string; - - /** - * A detailed message that explains the SBE package validation result. - */ - @visibility(Lifecycle.Read) - message?: string; - - /** - * This represents discovered update results for matching updates and store it as SBE manifest. - */ - @visibility(Lifecycle.Read) - sbeManifest?: string; -} - -/** - * Extensions details for edge device. - */ -@added(Versions.v2025_12_01_preview) -model ExtensionProfile { - /** - * List of Arc extensions installed on edge device. - */ - @visibility(Lifecycle.Read) - @Azure.ResourceManager.identifiers(#["extensionName"]) - extensions?: Extension[]; -} - -/** - * Arc extension installed on edge device. - */ -@added(Versions.v2025_12_01_preview) -model Extension { - /** - * Arc extension name installed on edge device. - */ - @visibility(Lifecycle.Read) - extensionName?: string; - - /** - * Arc extension state from arc machine extension. - */ - @visibility(Lifecycle.Read) - state?: ArcExtensionState; - - /** - * Error details while installing Arc extension. - */ - @visibility(Lifecycle.Read) - @Azure.ResourceManager.identifiers(#[]) - errorDetails?: ErrorDetailModel[]; - - /** - * Exception details while installing Arc extension. - */ - @visibility(Lifecycle.Read) - exception?: string; - - /** - * Arc Extension Azure resource id. - */ - @visibility(Lifecycle.Read) - extensionResourceId?: Azure.Core.armResourceIdentifier; - - /** - * Extension version installed. - */ - @visibility(Lifecycle.Read) - typeHandlerVersion?: string; - - /** - * Extension managed by user or Azure. - */ - @visibility(Lifecycle.Read) - managedBy?: ExtensionManagedBy; -} - -/** - * Arc extension installation state. - */ -@added(Versions.v2025_12_01_preview) -union ArcExtensionState { - string, - - /** - * Arc extension state is not specified. - */ - NotSpecified: "NotSpecified", - - /** - * Arc extension state is Accepted when extension installation triggered. - */ - Accepted: "Accepted", - - /** - * Arc extension state is Canceled. - */ - Canceled: "Canceled", - - /** - * Arc extension is in Creating State. - */ - Creating: "Creating", - - /** - * Arc extension is in Deleted State. - */ - Deleted: "Deleted", - - /** - * Arc extension is in Deleting State. - */ - Deleting: "Deleting", - - /** - * Arc extension state is Failed. - */ - Failed: "Failed", - - /** - * Arc extension is in Moving State. - */ - Moving: "Moving", - - /** - * Arc extension state is Succeeded. - */ - Succeeded: "Succeeded", - - /** - * Arc extension is in Updating State. - */ - Updating: "Updating", -} - /** * details of validation failure */ @@ -793,21 +550,3 @@ model ErrorDetailModel { @visibility(Lifecycle.Read) exception?: string; } - -/** - * Extension managed by user or Azure. - */ -@added(Versions.v2025_12_01_preview) -union ExtensionManagedBy { - string, - - /** - * Extension managed by user. - */ - User: "User", - - /** - * Extension managed by Azure. - */ - Azure: "Azure", -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/edgeMachineJobs.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/edgeMachineJobs.tsp index b0ba09757e87..f8f000c4ace8 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/edgeMachineJobs.tsp +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/edgeMachineJobs.tsp @@ -2,6 +2,7 @@ import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-azure-resource-manager"; import "@typespec/openapi"; import "@typespec/rest"; +import "./models.tsp"; using TypeSpec.Rest; using TypeSpec.Versioning; @@ -101,51 +102,9 @@ union EdgeMachineJobType { DownloadOs: "DownloadOs", } -@added(Versions.v2025_12_01_preview) -@doc("Represents the various statuses a job can have throughout its lifecycle.") -union JobStatus { - string, - - @doc("The job status has not been specified.") - NotSpecified: "NotSpecified", - - @doc("The job is currently undergoing validation.") - ValidationInProgress: "ValidationInProgress", - - @doc("The job has successfully passed validation.") - ValidationSuccess: "ValidationSuccess", - - @doc("The job has failed validation.") - ValidationFailed: "ValidationFailed", - - @doc("The job's deployment is currently in progress.") - DeploymentInProgress: "DeploymentInProgress", - - @doc("The job's deployment has failed.") - DeploymentFailed: "DeploymentFailed", - - @doc("The job has been successfully deployed.") - DeploymentSuccess: "DeploymentSuccess", - - @doc("The job has succeeded.") - Succeeded: "Succeeded", - - @doc("The job has failed.") - Failed: "Failed", - - @doc("The job has been canceled.") - Canceled: "Canceled", - - @doc("The job is paused.") - Paused: "Paused", - - @doc("The job is scheduled to run.") - Scheduled: "Scheduled", -} - @added(Versions.v2025_12_01_preview) @doc("Properties for adding a server in the cluster.") -model RemoteSupportJobProperties extends EdgeMachineJobProperties { +model EdgeMachineRemoteSupportJobProperties extends EdgeMachineJobProperties { @doc("Job Type to support polymorphic resource.") jobType: EdgeMachineJobType.RemoteSupport; @@ -160,7 +119,7 @@ model RemoteSupportJobProperties extends EdgeMachineJobProperties { @doc("log collection job reported properties.") @visibility(Lifecycle.Read) - reportedProperties?: RemoteSupportReportedProperties; + reportedProperties?: EdgeMachineRemoteSupportJobReportedProperties; } @added(Versions.v2025_12_01_preview) @@ -224,7 +183,7 @@ model ProvisioningRequest { onboardingConfiguration?: OnboardingConfiguration; @doc("Device configuration.") - deviceConfiguration?: DeviceConfiguration; + deviceConfiguration?: TargetDeviceConfiguration; @doc("Base64 encoded custom configuration for CAPI to use") customConfiguration?: string; @@ -244,12 +203,12 @@ union ProvisioningOsType { @added(Versions.v2025_12_01_preview) @doc("Represents the reported properties of a remote support job.") -model RemoteSupportReportedProperties { - ...JobReportedProperties; +model EdgeMachineRemoteSupportJobReportedProperties { + ...EdgeMachineJobReportedProperties; @doc("Optional settings for configuring the node for remote support.") @visibility(Lifecycle.Read) - nodeSettings?: RemoteSupportNodeSettings; + nodeSettings?: EdgeMachineRemoteSupportNodeSettings; @doc("Details of the remote support session.") @visibility(Lifecycle.Read) @@ -259,7 +218,7 @@ model RemoteSupportReportedProperties { @added(Versions.v2025_12_01_preview) @doc("Represents the settings of a remote support node.") -model RemoteSupportNodeSettings { +model EdgeMachineRemoteSupportNodeSettings { @doc("The state of the remote support node.") @visibility(Lifecycle.Read) state?: string; @@ -281,62 +240,9 @@ model RemoteSupportNodeSettings { connectionErrorMessage?: string; } -@added(Versions.v2025_12_01_preview) -@doc("Represents a remote support session.") -model RemoteSupportSession { - @doc("Unique session Id.") - @visibility(Lifecycle.Read) - sessionId?: string; - - @doc("The start time of the remote support session, in UTC.") - @visibility(Lifecycle.Read) - sessionStartTime?: utcDateTime; - - @doc("The end time of the remote support session, in UTC.") - @visibility(Lifecycle.Read) - sessionEndTime?: utcDateTime; - - @doc("The level of access granted during the remote support session.") - @visibility(Lifecycle.Read) - accessLevel?: RemoteSupportAccessLevel; - - @doc("The location where the session transcript is stored.") - @visibility(Lifecycle.Read) - transcriptLocation?: string; -} - -@added(Versions.v2025_12_01_preview) -@doc("Defines the level of remote support access granted.") -union RemoteSupportAccessLevel { - @doc("A custom access level provided as a string.") - string, - - @doc("No remote support access is granted.") - None: "None", - - @doc("Access is limited to diagnostics information only.") - Diagnostics: "Diagnostics", - - @doc("Access includes diagnostics information and the ability to perform repairs.") - DiagnosticsAndRepair: "DiagnosticsAndRepair", -} - -@added(Versions.v2025_12_01_preview) -@doc("Defines the type of remote support action to be performed on an edge device.") -union RemoteSupportType { - @doc("A custom action type provided as a string.") - string, - - @doc("Enables remote support for the edge device.") - Enable: "Enable", - - @doc("Revokes remote support access for the edge device.") - Revoke: "Revoke", -} - @added(Versions.v2025_12_01_preview) @doc("Properties for pausing a server in the cluster.") -model CollectLogJobProperties extends EdgeMachineJobProperties { +model EdgeMachineCollectLogJobProperties extends EdgeMachineJobProperties { @doc("ClusterJob Type to support polymorphic resource.") jobType: EdgeMachineJobType.CollectLog; @@ -352,51 +258,23 @@ model CollectLogJobProperties extends EdgeMachineJobProperties { @doc("log collection job reported properties.") @visibility(Lifecycle.Read) - reportedProperties?: LogCollectionReportedProperties; + reportedProperties?: EdgeMachineCollectLogJobReportedProperties; } @added(Versions.v2025_12_01_preview) @doc("Represents the reported properties of a log collection job.") -model LogCollectionReportedProperties { +model EdgeMachineCollectLogJobReportedProperties { ...JobReportedProperties; @doc("Details of the log collection session.") @visibility(Lifecycle.Read) @Azure.ResourceManager.identifiers(#["correlationId"]) - logCollectionSessionDetails?: LogCollectionSession[]; -} - -@added(Versions.v2025_12_01_preview) -@doc("Represents a session for collecting logs from an edge device.") -model LogCollectionSession { - @doc("The timestamp when log collection started, in ISO 8601 format.") - @visibility(Lifecycle.Read) - startTime?: string; - - @doc("The timestamp when log collection ended, in ISO 8601 format.") - @visibility(Lifecycle.Read) - endTime?: string; - - @doc("The total time logs were collected for, in ISO 8601 duration format.") - @visibility(Lifecycle.Read) - timeCollected?: string; - - @doc("The size of the collected logs in bytes.") - @visibility(Lifecycle.Read) - logSize?: int32; - - @doc("The status of the log collection session.") - @visibility(Lifecycle.Read) - status?: DeviceLogCollectionStatus; - - @doc("A unique identifier for correlating this log collection session with other operations or sessions.") - @visibility(Lifecycle.Read) - correlationId?: string; + logCollectionSessionDetails?: LogCollectionJobSession[]; } @added(Versions.v2025_12_01_preview) @doc("Reported Properties for job triggered from cloud.") -model JobReportedProperties { +model EdgeMachineJobReportedProperties { @doc("The percentage of the job that is complete.") @visibility(Lifecycle.Read) percentComplete?: int32; @@ -410,94 +288,6 @@ model JobReportedProperties { deploymentStatus?: EceActionStatus; } -@added(Versions.v2025_12_01_preview) -@doc("Represents the status of a log collection operation.") -union DeviceLogCollectionStatus { - @doc("A custom status provided as a string.") - string, - - @doc("Log collection operation has not been initiated.") - NotStarted: "NotStarted", - - @doc("Indicates that the log collection operation is currently running.") - Running: "Running", - - @doc("Indicates that the log collection operation has failed.") - Failed: "Failed", - - @doc("Indicates that the log collection operation has completed successfully.") - Succeeded: "Succeeded", - - @doc("Indicates that the log collection operation has completed successfully.") - Canceled: "Canceled", -} - -@added(Versions.v2025_12_01_preview) -@doc("Validation / deployment status details for Job.") -model EceActionStatus { - @doc("Job status.") - @visibility(Lifecycle.Read) - status?: string; - - @doc("List of steps of Edge device job.") - @visibility(Lifecycle.Read) - @identifiers(#["name"]) - steps?: Step[]; -} - -@added(Versions.v2025_12_01_preview) -@doc("Deployment mode to trigger job.") -union DeploymentMode { - string, - - @doc("Validate ECE action deployment for a cluster.") - Validate: "Validate", - - @doc("Deploy ECE action deployment for a cluster.") - Deploy: "Deploy", -} - -@added(Versions.v2025_12_01_preview) -@doc("Step details during job execution.") -model Step { - @doc("Name of step.") - @visibility(Lifecycle.Read) - name?: string; - - @doc("Description of step.") - @visibility(Lifecycle.Read) - description?: string; - - @doc("FullStepIndex of step.") - @visibility(Lifecycle.Read) - fullStepIndex?: string; - - @doc("Start time in utc of step.") - @visibility(Lifecycle.Read) - startTimeUtc?: string; - - @doc("End time in utc of step.") - @visibility(Lifecycle.Read) - endTimeUtc?: string; - - @doc("Status of step. Allowed values are 'Error', 'Success', 'InProgress'") - @visibility(Lifecycle.Read) - status?: string; - - @doc("List of nested steps during job execution..") - @visibility(Lifecycle.Read) - @identifiers(#["name"]) - steps?: Step[]; - - @doc("List of exceptions in job execution.") - @visibility(Lifecycle.Read) - exception?: string[]; - - @doc("Error information for the step") - @visibility(Lifecycle.Read) - error?: Azure.ResourceManager.Foundations.ErrorDetail; -} - @added(Versions.v2025_12_01_preview) @doc("Operating system profile.") model OsProvisionProfile { @@ -628,7 +418,7 @@ model OnboardingConfiguration { @added(Versions.v2025_12_01_preview) @doc("Device configuration.") -model DeviceConfiguration { +model TargetDeviceConfiguration { @doc("Network configuration.") network?: NetworkConfiguration; diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/eng/model-validation.md b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/eng/model-validation.md new file mode 100644 index 000000000000..9f32fac3877c --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/eng/model-validation.md @@ -0,0 +1,237 @@ +# Model Validation Guide for Azure Stack HCI API + +## Overview + +This document provides instructions for running model validation for the Azure Stack HCI API. This guide helps multiple API developers understand the validation process and common issue patterns. + +## Prerequisites + +- Node.js and npm installed +- Azure REST API Specs repository cloned +- Navigate to the specification directory: `specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI` + +## Validation Commands + +### 1. TypeSpec Compilation + +Before running model validation, always compile the TypeSpec files: + +```bash +tsp compile . +``` + +This command: +- Compiles TypeSpec files to OpenAPI schema +- Generates the preview/{API_VERSION}/hci.json file +- Reports any TypeSpec compilation errors + +### 2. Model Validation + +Run the model validation command: + +```bash +npx oav validate-example preview/{API_VERSION}/hci.json +``` + +Replace `{API_VERSION}` with your target API version (e.g., `2024-11-01-preview`). + +This command validates all examples in the `preview/{API_VERSION}/examples/` folder against the generated OpenAPI schema. + +## File Compilation Process + +**Important:** Understanding the file compilation process is crucial for successful validation. + +### Source vs Target Files + +1. **Source Files (where you edit):** + - `examples/{API_VERSION}/*.json` - Example files you create and modify + - `private-preview/*.tsp` - TypeSpec model definitions + - `main.tsp` - Main TypeSpec entry point + +2. **Target Files (what validation uses):** + - `preview/{API_VERSION}/hci.json` - Generated OpenAPI schema + - `preview/{API_VERSION}/examples/*.json` - Copied example files + +### Compilation Flow + +``` +[Source] examples/2024-11-01-preview/*.json + ↓ (tsp compile .) +[Target] preview/2024-11-01-preview/examples/*.json + ↓ (validation reads from) +[Validation] npx oav validate-example preview/2024-11-01-preview/hci.json +``` + +**Key Point:** You edit source files in `examples/{API_VERSION}/`, but validation runs against the target files in `preview/{API_VERSION}/examples/` that are copied during compilation. + +## Common Issue Types and Solutions + +### Missing Required Properties + +**Description:** Required properties are not included in example files. + +**Solution:** Add missing required properties to example files. Check the TypeSpec model definitions to identify required properties. + +### Discriminator Value Not Found + +**Description:** Discriminated union types don't have concrete model classes defined. + +**Solution:** +1. Define concrete discriminated model classes in TypeSpec files +2. Ensure each discriminated type extends the base discriminated model +3. Example pattern: + +```typescript +model ConcreteTypeProperties extends BaseDiscriminatedProperties { + typeProperty: UnionType.SpecificValue; +} +``` + +### Additional Properties Not Allowed + +**Description:** Example files contain properties that don't belong to the specific resource type. + +**Solution:** Remove properties that aren't defined in the TypeSpec model for that resource type. Verify property sets match the model definitions. + +### Wrong Operation ID References + +**Description:** Example files reference incorrect operation IDs. + +**Solution:** Ensure example files reference the correct operation IDs for their respective resource types. + +## Validation Workflow + +1. **Identify Issues**: Run validation command and review error output +2. **Categorize Errors**: Group errors by type (missing properties, discriminator issues, etc.) +3. **Fix TypeSpec Models**: Update TypeSpec files to define missing models or properties +4. **Fix Example Files**: Update or create example JSON files as needed +5. **⚠️ CRITICAL: Format Examples**: **ALWAYS** run prettier formatting on modified example files to ensure consistent formatting +6. **⚠️ CRITICAL: Recompile**: **ALWAYS** run `tsp compile .` after ANY changes to regenerate OpenAPI schema and copy updated examples +7. **Validate Again**: Run validation command to confirm fixes +8. **Iterate**: Repeat until validation passes without errors + +### ⚠️ IMPORTANT: TypeSpec Compilation Requirement + +**You MUST run `tsp compile .` after every change to example files or TypeSpec models.** + +The compilation process: +1. Compiles TypeSpec files into OpenAPI schema: `preview/{API_VERSION}/hci.json` +2. Copies source example files: `examples/{API_VERSION}/*.json` → `preview/{API_VERSION}/examples/*.json` +3. Validation then reads from the target files in `preview/{API_VERSION}/` + +**Common mistake:** +- Edit source files in `examples/{API_VERSION}/` ✅ +- Run validation ❌ (without recompilation) +- Get same errors because validation reads old copies in `preview/{API_VERSION}/examples/` + +**Correct workflow:** +- Edit source files in `examples/{API_VERSION}/` ✅ +- Run `tsp compile .` (copies files to `preview/{API_VERSION}/examples/`) ✅ +- Run validation against `preview/{API_VERSION}/hci.json` ✅ +- See updated results ✅ + +### ⚠️ CRITICAL: Delete Scenario - Source AND Target Files + +**When deleting example files, you MUST delete both source AND target files.** + +**Why This Matters:** +- TypeSpec compilation (`tsp compile .`) copies source files to target but does NOT remove deleted source files from target +- Validation reads from `preview/{API_VERSION}/examples/`, not `examples/{API_VERSION}/` +- If you only delete source files, validation will continue to validate the old files still present in target directory + +**Critical Delete Workflow:** +1. **Delete source file:** `examples/{API_VERSION}/filename.json` +2. **Delete target file:** `preview/{API_VERSION}/examples/filename.json` ⚠️ **CRITICAL STEP** +3. **Recompile:** `tsp compile .` +4. **Validate:** `npx oav validate-example preview/{API_VERSION}/hci.json` + +**Common Delete Mistake:** +- Delete source file: `examples/{API_VERSION}/filename.json` ✅ +- Run `tsp compile .` ✅ +- Run validation ❌ Still fails because old file exists in `preview/{API_VERSION}/examples/` +- Confusion: "Why didn't my delete work?" + +**Correct Delete Process:** +```bash +# Delete both source AND target +del "examples/{API_VERSION}/problematic-file.json" +del "preview/{API_VERSION}/examples/problematic-file.json" + +# Then recompile and validate +tsp compile . +npx oav validate-example preview/{API_VERSION}/hci.json +``` + +## Prettier Formatting for Example Files + +### When to Run Prettier + +**You MUST run prettier formatting after modifying example JSON files.** + +The prettier formatting step ensures: +1. Consistent indentation and formatting across all example files +2. Proper JSON structure and readability +3. Compliance with project formatting standards + +### Prettier Commands + +**Format specific files:** +```bash +npx prettier --write examples/{API_VERSION}/filename.json +``` + +**Format all modified files in a version:** +```bash +npx prettier --write examples/{API_VERSION}/*.json +``` + +**Format multiple specific files:** +```bash +npx prettier --write examples/{API_VERSION}/file1.json examples/{API_VERSION}/file2.json +``` + +Replace `{API_VERSION}` with your target API version (e.g., `2025-11-01-preview`). + +### Example Usage +```bash +# Format specific files that were modified +npx prettier --write examples/2025-11-01-preview/CreateCluster.json examples/2025-11-01-preview/PutArcSetting.json + +# Format all examples for a version +npx prettier --write examples/2025-11-01-preview/*.json +``` + +## Best Practices + +1. **Consistent Property Sets**: Ensure example files include all required properties for their resource type +2. **Proper Discriminated Types**: Always define concrete classes for discriminated union types +3. **Correct Operation References**: Use the appropriate operation IDs in example files +4. **Resource Type Alignment**: Don't mix properties from different resource types in examples +5. **Code Formatting**: Always run prettier formatting after modifying example files +6. **Regular Validation**: Run validation frequently during development to catch issues early + +## Success Criteria + +Model validation is successful when the command output shows: +``` +Validation completes without errors. +``` + +## Troubleshooting + +If validation continues to fail after fixes: +1. Ensure TypeSpec compilation was successful +2. Check that the OpenAPI schema was regenerated +3. **CRITICAL: Verify you deleted BOTH source AND target example files** - Most common oversight +4. Verify example file paths are correct +5. Review discriminator mappings in the generated schema +6. Compare working examples with problematic ones to identify patterns +7. **Check target directory:** List files in `preview/{API_VERSION}/examples/` to confirm deleted files are actually gone + +## Version-Specific Issues + +For specific issues encountered in particular API versions, refer to the corresponding version-specific documentation files in this directory (e.g., `model-validation-fixes-{API_VERSION}.md`). + +## Contact + +For questions or additional support with model validation, refer to the Azure REST API Specs repository documentation or reach out to the API development team. \ No newline at end of file diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/eng/prettier-formatting.md b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/eng/prettier-formatting.md new file mode 100644 index 000000000000..f55c6bb05082 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/eng/prettier-formatting.md @@ -0,0 +1,187 @@ +# JSON Formatting with Prettier Guide + +## Overview + +This document provides instructions for using Prettier to format JSON files in the Azure Stack HCI API examples. Prettier ensures consistent formatting across all example files, improving readability and maintainability. + +## Prerequisites + +- Node.js and npm installed +- Azure REST API Specs repository cloned +- Navigate to the specification directory: `specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI` + +## Prettier Commands + +### Format Source JSON Examples for Specific API Version + +To format source JSON examples for a specific API version, use the following command: + +```bash +npx prettier --write .\examples\{API_VERSION}\*.json +``` + +Replace `{API_VERSION}` with your target API version. Examples: + +```bash +# Format source examples for 2024-11-01-preview +npx prettier --write .\examples\2024-11-01-preview\*.json + +# Format source examples for 2025-09-22-preview +npx prettier --write .\examples\2025-09-22-preview\*.json + +# Format source examples for 2025-10-01 +npx prettier --write .\examples\2025-10-01\*.json +``` + +### Format All Source Examples + +To format all source JSON examples across all API versions: + +```bash +npx prettier --write .\examples\*\*.json +``` + +## When to Run Prettier + +### 1. After Creating New Examples + +Run prettier on source files after creating new example files to ensure consistent formatting: + +```bash +# Create your example files in examples/{API_VERSION}/, then format them +npx prettier --write .\examples\{API_VERSION}\*.json +``` + +### 2. Before TypeSpec Compilation + +Include prettier formatting as part of your development workflow, before compilation: + +```bash +# 1. Format source JSON examples +npx prettier --write .\examples\{API_VERSION}\*.json + +# 2. Compile TypeSpec (copies formatted files to preview/{API_VERSION}/examples/) +tsp compile . + +# 3. Run model validation +npx oav validate-example preview/{API_VERSION}/hci.json +``` + +### 3. Before Committing Changes + +Always format your source JSON files before committing to ensure consistency: + +```bash +npx prettier --write .\examples\{API_VERSION}\*.json +``` + +## Prettier Configuration + +Prettier will use the default configuration for JSON files, which includes: +- 2-space indentation +- Double quotes for strings +- Trailing commas where valid +- Consistent object and array formatting + +## Integration with Development Workflow + +### Complete Development Workflow + +```bash +# 1. Make changes to TypeSpec files or example files in examples/{API_VERSION}/ +# 2. Format source JSON examples +npx prettier --write .\examples\{API_VERSION}\*.json + +# 3. Compile TypeSpec (copies formatted source files to preview/{API_VERSION}/examples/) +tsp compile . + +# 4. Run model validation +npx oav validate-example preview/{API_VERSION}/hci.json + +# 5. If validation passes, commit your changes +``` + +### Quick Format Check + +To check if source files need formatting without modifying them: + +```bash +npx prettier --check .\examples\{API_VERSION}\*.json +``` + +This command will return a non-zero exit code if any files need formatting. + +## File Structure Impact + +**Important:** Format the source files in the `examples/{API_VERSION}/` directory before compilation. The `tsp compile .` command copies these formatted files to the target directory used by validation. + +### Source vs Target Files + +- **Source Files:** `examples/{API_VERSION}/*.json` (where you edit and format) +- **Target Files:** `preview/{API_VERSION}/examples/*.json` (copied from source during compilation, used by validation) + +### Correct Formatting and Compilation Order + +``` +1. Edit source files: examples/{API_VERSION}/*.json +2. Format source files: npx prettier --write .\examples\{API_VERSION}\*.json +3. Compile TypeSpec: tsp compile . (copies formatted files to preview/{API_VERSION}/examples/) +4. Run validation: npx oav validate-example preview/{API_VERSION}/hci.json +``` + +## Best Practices + +1. **Format Before Compilation**: Always format source files before `tsp compile .` to ensure formatted files are copied to the target directory +2. **Version-Specific Formatting**: Use specific API version paths when working on a particular version +3. **Batch Formatting**: Use wildcard patterns to format multiple files efficiently +4. **Pre-Commit Formatting**: Include formatting as part of your pre-commit process +5. **Consistent Workflow**: Integrate prettier into your standard development workflow before TypeSpec compilation and validation + +## Common Commands Summary + +```bash +# Most common: Format source files before compilation +npx prettier --write .\examples\{API_VERSION}\*.json +tsp compile . + +# Format all source examples across versions +npx prettier --write .\examples\*\*.json + +# Check formatting without changing files +npx prettier --check .\examples\{API_VERSION}\*.json + +# Complete workflow with validation +npx prettier --write .\examples\{API_VERSION}\*.json +tsp compile . +npx oav validate-example preview/{API_VERSION}/hci.json +``` + +## Troubleshooting + +### Prettier Not Found + +If you get "npx: prettier not found", install prettier globally: + +```bash +npm install -g prettier +``` + +Or use it locally in the project: + +```bash +npm install prettier --save-dev +npx prettier --write .\preview\{API_VERSION}\examples\*.json +``` + +### Permission Issues + +On Windows, if you encounter permission issues, try running the command from an elevated PowerShell or Command Prompt. + +### Path Issues + +Ensure you're running the command from the correct directory: +`specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI` + +## Contact + +For questions about JSON formatting or prettier configuration, refer to the [Prettier documentation](https://prettier.io/) or reach out to the API development team. \ No newline at end of file diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ChangeClusterRing.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ChangeClusterRing.json new file mode 100644 index 000000000000..54485623fdbf --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ChangeClusterRing.json @@ -0,0 +1,85 @@ +{ + "title": "Change cluster ring", + "operationId": "Clusters_ChangeRing", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview", + "changeRingRequest": { + "properties": { + "targetRing": "Insider" + } + } + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "location": "East US", + "tags": {}, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "status": "ConnectedRecently", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "ring": "Insider", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "desiredProperties": { + "windowsServerSubscription": "Enabled", + "diagnosticLevel": "Basic" + }, + "softwareAssuranceProperties": { + "softwareAssuranceStatus": "Enabled", + "lastUpdated": "2022-08-18T22:01:12.4191603Z", + "softwareAssuranceIntent": "Enable" + }, + "reportedProperties": { + "clusterName": "cluster1", + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterVersion": "10.0.17777", + "nodes": [ + { + "name": "Node1", + "id": 1, + "windowsServerSubscription": "Enabled", + "nodeType": "ThirdParty", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "coreCount": 8, + "memoryInGiB": 128 + } + ], + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "imdsAttestation": "Disabled", + "diagnosticLevel": "Basic" + }, + "trialDaysRemaining": 30, + "billingModel": "Trial", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/Clusters_UpdateSecretsLocations.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/Clusters_UpdateSecretsLocations.json new file mode 100644 index 000000000000..37a1fbffa205 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/Clusters_UpdateSecretsLocations.json @@ -0,0 +1,93 @@ +{ + "title": "Update secrets locations for a Cluster", + "operationId": "Clusters_UpdateSecretsLocations", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview", + "body": { + "properties": [ + { + "secretsType": "BackupSecrets", + "secretsLocation": "https://kvname.vault.azure.net/" + } + ] + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "location": "East US", + "tags": {}, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "status": "ConnectedRecently", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "desiredProperties": { + "windowsServerSubscription": "Enabled", + "diagnosticLevel": "Basic" + }, + "softwareAssuranceProperties": { + "softwareAssuranceStatus": "Enabled", + "lastUpdated": "2022-08-18T22:01:12.4191603Z", + "softwareAssuranceIntent": "Enable" + }, + "reportedProperties": { + "clusterName": "cluster1", + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterVersion": "10.0.17777", + "nodes": [ + { + "name": "Node1", + "id": 1, + "windowsServerSubscription": "Enabled", + "nodeType": "ThirdParty", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "coreCount": 8, + "memoryInGiB": 128 + } + ], + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "imdsAttestation": "Disabled", + "diagnosticLevel": "Basic" + }, + "trialDaysRemaining": 30, + "billingModel": "Trial", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "secretsLocations": [ + { + "secretsType": "BackupSecrets", + "secretsLocation": "https://kvname.vault.azure.net/" + } + ] + } + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ConfigureRemoteSupport.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ConfigureRemoteSupport.json new file mode 100644 index 000000000000..b68f84ece60d --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ConfigureRemoteSupport.json @@ -0,0 +1,115 @@ +{ + "title": "Configure Remote Support", + "operationId": "Clusters_ConfigureRemoteSupport", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "mycluster", + "api-version": "2025-11-01-preview", + "remoteSupportRequest": { + "properties": { + "accessLevel": "Diagnostics", + "expirationTimeStamp": "2020-01-01T17:18:19.1234567Z", + "remoteSupportType": "Enable" + } + } + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "location": "East US", + "tags": {}, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "status": "ConnectedRecently", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "desiredProperties": { + "windowsServerSubscription": "Enabled", + "diagnosticLevel": "Basic" + }, + "remoteSupportProperties": { + "accessLevel": "Diagnostics", + "expirationTimeStamp": "2020-01-01T17:18:19.1234567Z", + "remoteSupportType": "Enable", + "remoteSupportNodeSettings": [ + { + "arcResourceId": "/subscriptions//resourcegroups//Microsoft.HybridCompute/machines/arcNode0", + "state": "Active", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "updatedAt": "2020-01-01T17:18:19.1234567Z", + "connectionStatus": "Connected", + "connectionErrorMessage": "test", + "transcriptLocation": "test" + }, + { + "arcResourceId": "/subscriptions//resourcegroups//Microsoft.HybridCompute/machines/arcNode1", + "state": "Active", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "updatedAt": "2020-01-01T17:18:19.1234567Z", + "connectionStatus": "Connected", + "connectionErrorMessage": "test", + "transcriptLocation": "test" + } + ], + "remoteSupportSessionDetails": [ + { + "sessionStartTime": "2020-01-01T17:18:19.1234567Z", + "sessionEndTime": "2020-01-01T17:18:19.1234567Z", + "nodeName": "arcNode0", + "duration": 120, + "accessLevel": "Diagnostics" + } + ] + }, + "reportedProperties": { + "clusterName": "cluster1", + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterVersion": "10.0.17777", + "nodes": [ + { + "name": "Node1", + "id": 1, + "windowsServerSubscription": "Enabled", + "nodeType": "ThirdParty", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "coreCount": 8, + "memoryInGiB": 128 + } + ], + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "imdsAttestation": "Disabled", + "diagnosticLevel": "Basic" + }, + "trialDaysRemaining": 30, + "billingModel": "Trial", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ConsentAndInstallDefaultExtensions.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ConsentAndInstallDefaultExtensions.json new file mode 100644 index 000000000000..8c4ca4d22fa5 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ConsentAndInstallDefaultExtensions.json @@ -0,0 +1,54 @@ +{ + "title": "Consent And Install Default Extensions", + "operationId": "ArcSettings_ConsentAndInstallDefaultExtensions", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "arcInstanceResourceGroup": "ArcInstance-rg", + "aggregateState": "Creating", + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "state": "Creating" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "state": "Creating" + } + ], + "connectivityProperties": { + "enabled": false, + "serviceConfigurations": [] + }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + } + ] + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateArcIdentity.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateArcIdentity.json new file mode 100644 index 000000000000..18857a868214 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateArcIdentity.json @@ -0,0 +1,28 @@ +{ + "title": "Create Arc Identity", + "operationId": "ArcSettings_CreateIdentity", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "arcApplicationClientId": "7b93bf67-60ac-4909-a987-ac438e69f9ba", + "arcApplicationTenantId": "bdb2c88c-9cfd-4e19-927d-51e875f6912b", + "arcApplicationObjectId": "400bd05f-395f-45a6-ba75-72601df80107", + "arcServicePrincipalObjectId": "00cc4014-482e-4de9-9932-83415cc75f45" + } + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateCluster.json new file mode 100644 index 000000000000..74281f092150 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateCluster.json @@ -0,0 +1,63 @@ +{ + "title": "Create cluster", + "operationId": "Clusters_Create", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview", + "cluster": { + "location": "East US", + "properties": { + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94" + }, + "identity": { + "type": "SystemAssigned" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "location": "East US", + "identity": { + "principalId": "87a834db-2e45-409e-911b-e16a44562ec3", + "tenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "type": "SystemAssigned" + }, + "tags": {}, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "status": "NotYetRegistered", + "connectivityStatus": "NotYetRegistered", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "isManagementCluster": true, + "desiredProperties": { + "windowsServerSubscription": "Disabled", + "diagnosticLevel": "Basic" + }, + "reportedProperties": {}, + "trialDaysRemaining": 30, + "billingModel": "Trial", + "serviceEndpoint": "https://azurestackhci.azurefd.net/eastus" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateClusterIdentity.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateClusterIdentity.json new file mode 100644 index 000000000000..1e012fb4b6ee --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateClusterIdentity.json @@ -0,0 +1,27 @@ +{ + "title": "Create cluster Identity", + "operationId": "Clusters_CreateIdentity", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "properties": { + "aadClientId": "7b93bf67-60ac-4909-a987-ac438e69f9ba", + "aadTenantId": "bdb2c88c-9cfd-4e19-927d-51e875f6912b", + "aadServicePrincipalObjectId": "400bd05f-395f-45a6-ba75-72601df80107", + "aadApplicationObjectId": "00cc4014-482e-4de9-9932-83415cc75f45" + } + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateHciEdgeDevice.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateHciEdgeDevice.json new file mode 100644 index 000000000000..8529898873c6 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/CreateHciEdgeDevice.json @@ -0,0 +1,259 @@ +{ + "title": "Create HCI Edge Device", + "operationId": "EdgeDevices_CreateOrUpdate", + "parameters": { + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "edgeDeviceName": "default", + "api-version": "2025-11-01-preview", + "resource": { + "kind": "HCI", + "properties": { + "deviceConfiguration": { + "nicDetails": [ + { + "adapterName": "ethernet", + "interfaceDescription": "NDIS 6.70 ", + "componentId": "VMBUS{f8615163-df3e-46c5-913f-f2d2f965ed0g} ", + "driverVersion": "10.0.20348.1547 ", + "ip4Address": "10.10.10.10", + "subnetMask": "255.255.255.0", + "defaultGateway": "10.10.10.1", + "dnsServers": [ + "100.10.10.1" + ], + "defaultIsolationId": "0" + } + ], + "deviceMetadata": "" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/edgeDevices", + "kind": "HCI", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "reportedProperties": { + "deviceState": "Connected", + "networkProfile": { + "nicDetails": [ + { + "adapterName": "vmanagement", + "interfaceDescription": "Hyper-V Virtual Ethernet Adapter", + "componentId": "vms_mp", + "driverVersion": "10.0.25398.1", + "ip4Address": "192.168.200.92", + "subnetMask": "255.255.255.0", + "defaultGateway": "192.168.200.1", + "dnsServers": [ + "192.168.200.222" + ], + "defaultIsolationId": "0", + "slot": "0", + "macAddress": "000000000041", + "switchName": null, + "nicType": "Virtual", + "vlanId": "0", + "nicStatus": "Up" + } + ], + "switchDetails": [ + { + "switchName": "vmanagement", + "switchType": "External" + } + ], + "hostNetwork": { + "intents": [ + { + "intentName": "managementcomputestorage", + "scope": 0, + "intentType": 14, + "isComputeIntentSet": true, + "isStorageIntentSet": true, + "isOnlyStorage": false, + "isManagementIntentSet": true, + "isStretchIntentSet": false, + "isOnlyStretch": false, + "isNetworkIntentType": true, + "intentAdapters": [ + "ethernet", + "ethernet2" + ], + "overrideVirtualSwitchConfiguration": true, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + }, + "overrideQosPolicy": true, + "qosPolicyOverrides": { + "priorityValue8021Action_Cluster": null, + "priorityValue8021Action_SMB": null, + "bandwidthPercentage_SMB": null + }, + "overrideAdapterProperty": true, + "adapterPropertyOverrides": { + "jumboPacket": null, + "networkDirect": "0", + "networkDirectTechnology": null + } + } + ], + "storageNetworks": [ + { + "name": "StorageIntent1", + "networkAdapterName": "ethernet", + "storageVlanId": "8", + "storageAdapterIPInfo": [ + { + "physicalNode": "v-host1", + "ipv4Address": "192.168.120.192", + "subnetMask": "255.255.244.0" + } + ] + } + ], + "storageConnectivitySwitchless": false, + "enableStorageAutoIp": false + } + }, + "osProfile": { + "bootType": "UEFI", + "assemblyVersion": "2402.1" + }, + "sbeDeploymentPackageInfo": { + "code": "NewerThanLatestPublished", + "message": "The SBE package at path 'C:\\SBE' with version 4.1.2312.10 is published later than the latest SBE manifest published for online discovery. ", + "sbeManifest": "PEFwcGxpY2Fi" + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/edgeDevices", + "kind": "HCI", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "reportedProperties": { + "deviceState": "Connected", + "networkProfile": { + "nicDetails": [ + { + "adapterName": "vmanagement", + "interfaceDescription": "Hyper-V Virtual Ethernet Adapter", + "componentId": "vms_mp", + "driverVersion": "10.0.25398.1", + "ip4Address": "192.168.200.92", + "subnetMask": "255.255.255.0", + "defaultGateway": "192.168.200.1", + "dnsServers": [ + "192.168.200.222" + ], + "defaultIsolationId": "0", + "slot": "0", + "macAddress": "000000000041", + "switchName": null, + "nicType": "Virtual", + "vlanId": "0", + "nicStatus": "Up" + } + ], + "switchDetails": [ + { + "switchName": "vmanagement", + "switchType": "External" + } + ], + "hostNetwork": { + "intents": [ + { + "intentName": "managementcomputestorage", + "scope": 0, + "intentType": 14, + "isComputeIntentSet": true, + "isStorageIntentSet": true, + "isOnlyStorage": false, + "isManagementIntentSet": true, + "isStretchIntentSet": false, + "isOnlyStretch": false, + "intentAdapters": [ + "ethernet", + "ethernet2" + ], + "overrideVirtualSwitchConfiguration": true, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + }, + "overrideQosPolicy": true, + "qosPolicyOverrides": { + "priorityValue8021Action_Cluster": null, + "priorityValue8021Action_SMB": null, + "bandwidthPercentage_SMB": null + }, + "overrideAdapterProperty": true, + "adapterPropertyOverrides": { + "jumboPacket": null, + "networkDirect": "0", + "networkDirectTechnology": null + } + } + ], + "storageNetworks": [ + { + "name": "StorageIntent1", + "networkAdapterName": "ethernet", + "storageVlanId": "8", + "storageAdapterIPInfo": [ + { + "physicalNode": "v-host1", + "ipv4Address": "192.168.120.192", + "subnetMask": "255.255.244.0" + } + ] + } + ], + "storageConnectivitySwitchless": false, + "enableStorageAutoIp": false + } + }, + "osProfile": { + "bootType": "UEFI", + "assemblyVersion": "2402.1" + }, + "sbeDeploymentPackageInfo": { + "code": "NewerThanLatestPublished", + "message": "The SBE package at path 'C:\\SBE' with version 4.1.2312.10 is published later than the latest SBE manifest published for online discovery. ", + "sbeManifest": "PEFwcGxpY2Fi" + } + } + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteArcSetting.json new file mode 100644 index 000000000000..b5833729deca --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteArcSetting.json @@ -0,0 +1,20 @@ +{ + "title": "Delete ArcSetting", + "operationId": "ArcSettings_Delete", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteCluster.json new file mode 100644 index 000000000000..83c495682066 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteCluster.json @@ -0,0 +1,19 @@ +{ + "title": "Delete cluster", + "operationId": "Clusters_Delete", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteDeploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteDeploymentSettings.json new file mode 100644 index 000000000000..9384f0fdffe9 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteDeploymentSettings.json @@ -0,0 +1,19 @@ +{ + "title": "Delete Deployment Settings", + "operationId": "DeploymentSettings_Delete", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "deploymentSettingsName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteEdgeDevices.json new file mode 100644 index 000000000000..ea144af96bfe --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteEdgeDevices.json @@ -0,0 +1,17 @@ +{ + "title": "Delete Edge Devices", + "operationId": "EdgeDevices_Delete", + "parameters": { + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "edgeDeviceName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteExtension.json new file mode 100644 index 000000000000..e2625a001072 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteExtension.json @@ -0,0 +1,21 @@ +{ + "title": "Delete Arc Extension", + "operationId": "Extensions_Delete", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "extensionName": "MicrosoftMonitoringAgent", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteSecuritySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteSecuritySettings.json new file mode 100644 index 000000000000..6b5614e0b4bb --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteSecuritySettings.json @@ -0,0 +1,19 @@ +{ + "title": "Delete Security Settings", + "operationId": "SecuritySettings_Delete", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "securitySettingsName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteUpdateRuns.json new file mode 100644 index 000000000000..bec20a37a860 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteUpdateRuns.json @@ -0,0 +1,21 @@ +{ + "title": "Delete an Update", + "operationId": "UpdateRuns_Delete", + "parameters": { + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "resourceGroupName": "testrg", + "clusterName": "testcluster", + "updateName": "Microsoft4.2203.2.32", + "updateRunName": "23b779ba-0d52-4a80-8571-45ca74664ec3", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteUpdateSummaries.json new file mode 100644 index 000000000000..53e724c1c75c --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteUpdateSummaries.json @@ -0,0 +1,19 @@ +{ + "title": "Delete an Update", + "operationId": "UpdateSummaries_Delete", + "parameters": { + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "resourceGroupName": "testrg", + "clusterName": "testcluster", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteUpdates.json new file mode 100644 index 000000000000..997dd8df719c --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/DeleteUpdates.json @@ -0,0 +1,20 @@ +{ + "title": "Delete an Update", + "operationId": "Updates_Delete", + "parameters": { + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "resourceGroupName": "testrg", + "clusterName": "testcluster", + "updateName": "Microsoft4.2203.2.32", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json new file mode 100644 index 000000000000..954190f4a88f --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json @@ -0,0 +1,65 @@ +{ + "title": "EdgeDeviceJobs_CreateOrUpdate_CollectLog", + "operationId": "EdgeDeviceJobs_CreateOrUpdate", + "parameters": { + "api-version": "2025-11-01-preview", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "edgeDeviceName": "default", + "jobsName": "collectLog", + "resource": { + "properties": { + "jobType": "CollectLog", + "fromDate": "2024-01-29T10:43:27.9471574Z", + "toDate": "2024-01-29T10:43:27.9471574Z" + }, + "kind": "HCI" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "jobType": "CollectLog", + "fromDate": "2024-01-29T10:43:27.9471574Z", + "toDate": "2024-01-29T10:43:27.9471574Z" + }, + "kind": "HCI", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/collectLog", + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "systemData": { + "createdBy": "zsnvvvbj", + "createdByType": "User", + "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z" + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "properties": { + "jobType": "CollectLog", + "fromDate": "2024-01-29T10:43:27.9471574Z", + "toDate": "2024-01-29T10:43:27.9471574Z" + }, + "kind": "HCI", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/collectLog", + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "systemData": { + "createdBy": "zsnvvvbj", + "createdByType": "User", + "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json new file mode 100644 index 000000000000..207f2a9908de --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json @@ -0,0 +1,68 @@ +{ + "title": "EdgeDeviceJobs_CreateOrUpdate_RemoteSupport", + "operationId": "EdgeDeviceJobs_CreateOrUpdate", + "parameters": { + "api-version": "2025-11-01-preview", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "edgeDeviceName": "default", + "jobsName": "collectLog", + "resource": { + "properties": { + "jobType": "RemoteSupport", + "accessLevel": "Diagnostics", + "type": "Enable", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z" + }, + "kind": "HCI" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "jobType": "RemoteSupport", + "accessLevel": "Diagnostics", + "type": "Enable", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z" + }, + "kind": "HCI", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/remoteSupport", + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "systemData": { + "createdBy": "zsnvvvbj", + "createdByType": "User", + "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z" + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "properties": { + "jobType": "RemoteSupport", + "accessLevel": "Diagnostics", + "type": "Enable", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z" + }, + "kind": "HCI", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/remoteSupport", + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "systemData": { + "createdBy": "zsnvvvbj", + "createdByType": "User", + "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_Delete.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_Delete.json new file mode 100644 index 000000000000..207b363de961 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_Delete.json @@ -0,0 +1,18 @@ +{ + "title": "EdgeDeviceJobs_Delete", + "operationId": "EdgeDeviceJobs_Delete", + "parameters": { + "api-version": "2025-11-01-preview", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "edgeDeviceName": "lAq", + "jobsName": "Ihlm3R-bZ4vTC4ABA456" + }, + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_Get_RemoteSupport.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_Get_RemoteSupport.json new file mode 100644 index 000000000000..9403712ed994 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_Get_RemoteSupport.json @@ -0,0 +1,34 @@ +{ + "title": "EdgeDeviceJobs_Get_RemoteSupport", + "operationId": "EdgeDeviceJobs_Get", + "parameters": { + "api-version": "2025-11-01-preview", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "edgeDeviceName": "-5M1G7G10OZ-o5b-HS3-c72", + "jobsName": "-oUxs" + }, + "responses": { + "200": { + "body": { + "properties": { + "jobType": "RemoteSupport", + "accessLevel": "Diagnostics", + "type": "Enable", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z" + }, + "kind": "HCI", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/RemoteSupport", + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "systemData": { + "createdBy": "zsnvvvbj", + "createdByType": "User", + "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_ListByEdgeDevice.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_ListByEdgeDevice.json new file mode 100644 index 000000000000..12adc5eb5dc5 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/EdgeDeviceJobs_ListByEdgeDevice.json @@ -0,0 +1,38 @@ +{ + "title": "EdgeDeviceJobs_ListByEdgeDevice", + "operationId": "EdgeDeviceJobs_ListByEdgeDevice", + "parameters": { + "api-version": "2025-11-01-preview", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "edgeDeviceName": "YE-855IEIN585-" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "jobType": "RemoteSupport", + "accessLevel": "Diagnostics", + "type": "Enable", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z" + }, + "kind": "HCI", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/collectLog", + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "systemData": { + "createdBy": "zsnvvvbj", + "createdByType": "User", + "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z" + } + } + ], + "nextLink": "https://microsoft.com/alqov" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ExtendSoftwareAssuranceBenefit.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ExtendSoftwareAssuranceBenefit.json new file mode 100644 index 000000000000..1b3ae7eafc76 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ExtendSoftwareAssuranceBenefit.json @@ -0,0 +1,84 @@ +{ + "title": "Create cluster Identity", + "operationId": "Clusters_ExtendSoftwareAssuranceBenefit", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview", + "softwareAssuranceChangeRequest": { + "properties": { + "softwareAssuranceIntent": "Enable" + } + } + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "location": "East US", + "tags": {}, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "status": "ConnectedRecently", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "desiredProperties": { + "windowsServerSubscription": "Enabled", + "diagnosticLevel": "Basic" + }, + "softwareAssuranceProperties": { + "softwareAssuranceStatus": "Enabled", + "lastUpdated": "2022-08-18T22:01:12.4191603Z", + "softwareAssuranceIntent": "Enable" + }, + "reportedProperties": { + "clusterName": "cluster1", + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterVersion": "10.0.17777", + "nodes": [ + { + "name": "Node1", + "id": 1, + "windowsServerSubscription": "Enabled", + "nodeType": "ThirdParty", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "coreCount": 8, + "memoryInGiB": 128 + } + ], + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "imdsAttestation": "Disabled", + "diagnosticLevel": "Basic" + }, + "trialDaysRemaining": 30, + "billingModel": "Trial", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/Extensions_Upgrade.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/Extensions_Upgrade.json new file mode 100644 index 000000000000..3230a053bc48 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/Extensions_Upgrade.json @@ -0,0 +1,24 @@ +{ + "title": "Upgrade Machine Extensions", + "operationId": "Extensions_Upgrade", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "extensionName": "MicrosoftMonitoringAgent", + "api-version": "2025-11-01-preview", + "extensionUpgradeParameters": { + "targetVersion": "1.0.18062.0" + } + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses", + "Retry-After": 200, + "Azure-AsyncOperation": "https://foo.com/operationStatuses" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GeneratePassword.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GeneratePassword.json new file mode 100644 index 000000000000..c22709b02f06 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GeneratePassword.json @@ -0,0 +1,21 @@ +{ + "title": "Generate Password", + "operationId": "ArcSettings_GeneratePassword", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "secretText": "secretText", + "startDateTime": "2022-02-17T16:24:23.6264005+05:30", + "endDateTime": "2121-02-17T16:24:23.6264377+05:30", + "keyId": "00000000-2d47-4fb2-8ed2-fed71a5c197b" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetArcSetting.json new file mode 100644 index 000000000000..75166bb3ae79 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetArcSetting.json @@ -0,0 +1,63 @@ +{ + "title": "Get ArcSetting", + "operationId": "ArcSettings_Get", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "arcInstanceResourceGroup": "ArcInstance-rg", + "aggregateState": "PartiallyConnected", + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "state": "Connected" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "state": "Disconnected" + } + ], + "connectivityProperties": { + "enabled": false, + "serviceConfigurations": [ + { + "serviceName": "WAC", + "port": 6516 + } + ] + }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + }, + { + "category": "Supportability", + "consentTime": null + } + ] + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetCluster.json new file mode 100644 index 000000000000..ad33a9ffbf28 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetCluster.json @@ -0,0 +1,127 @@ +{ + "title": "Get cluster", + "operationId": "Clusters_Get", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "location": "East US", + "tags": {}, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "status": "ConnectedRecently", + "connectivityStatus": "Connected", + "supportStatus": "OutOfSupport", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "ring": "Insider", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "desiredProperties": { + "windowsServerSubscription": "Enabled", + "diagnosticLevel": "Basic" + }, + "isolatedVmAttestationConfiguration": { + "attestationResourceId": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.Attestation/attestationProviders/testmaa", + "relyingPartyServiceEndpoint": "https://azurestackhci.azurefd.net/eastus", + "attestationServiceEndpoint": "https://dantestnoauth01.eus.attest.azure.net" + }, + "logCollectionProperties": { + "fromDate": "2020-01-01T17:18:19.1234567Z", + "toDate": "2021-01-01T17:18:19.1234567Z", + "lastLogGenerated": "2020-01-01T17:18:19.1234567Z", + "logCollectionSessionDetails": [ + { + "logStartTime": "2020-01-01T17:18:19.1234567Z", + "logEndTime": "2020-01-01T17:18:19.1234567Z", + "timeCollected": "2020-01-01T17:18:19.1234567Z", + "logSize": 1000, + "logCollectionStatus": "Succeeded", + "correlationId": "a76ab33a-1819-4e82-1212-e3e4ec3d1425", + "endTimeCollected": "2020-01-01T17:25:19.1234567Z" + } + ] + }, + "identityProvider": "ActiveDirectory", + "reportedProperties": { + "clusterName": "cluster1", + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterVersion": "10.0.17777", + "clusterType": "ThirdParty", + "manufacturer": "Dell Inc.", + "oemActivation": "Disabled", + "nodes": [ + { + "name": "Node1", + "id": 1, + "windowsServerSubscription": "Enabled", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "coreCount": 8, + "memoryInGiB": 128, + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", + "oemActivation": "Disabled" + }, + { + "name": "Node2", + "id": 2, + "windowsServerSubscription": "Enabled", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44BSC3", + "coreCount": 8, + "memoryInGiB": 128, + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", + "oemActivation": "Disabled" + }, + { + "name": "Node3", + "id": 3, + "windowsServerSubscription": "Enabled", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44RFC3", + "coreCount": 16, + "memoryInGiB": 256, + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", + "oemActivation": "Disabled" + } + ], + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "imdsAttestation": "Disabled", + "diagnosticLevel": "Basic", + "hardwareClass": "Medium" + }, + "trialDaysRemaining": 30, + "billingModel": "Trial", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetDeploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetDeploymentSettings.json new file mode 100644 index 000000000000..92818503db70 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetDeploymentSettings.json @@ -0,0 +1,273 @@ +{ + "title": "Get Deployment Settings", + "operationId": "DeploymentSettings_Get", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "deploymentSettingsName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "operationType": "ClusterProvisioning", + "deploymentMode": "Deploy", + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "version": "string", + "scaleUnits": [ + { + "deploymentData": { + "securitySettings": { + "hvciProtection": true, + "drtmProtection": true, + "driftControlEnforced": true, + "credentialGuardEnforced": false, + "smbSigningEnforced": true, + "smbClusterEncryption": false, + "sideChannelMitigationEnforced": true, + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "wdacEnforced": true + }, + "observability": { + "streamingDataClient": true, + "euLocation": false, + "episodicDataUpload": true + }, + "cluster": { + "name": "testHCICluster", + "witnessType": "Cloud", + "witnessPath": "Cloud", + "cloudAccountName": "myasestoragacct", + "azureServiceEndpoint": "core.windows.net", + "hardwareClass": "Medium" + }, + "storage": { + "configurationMode": "Express" + }, + "namingPrefix": "ms169", + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "infrastructureNetwork": [ + { + "subnetMask": "255.255.248.0", + "gateway": "255.255.248.0", + "ipPools": [ + { + "startingAddress": "10.57.48.60", + "endingAddress": "10.57.48.66" + } + ], + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ] + } + ], + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "hostNetwork": { + "intents": [ + { + "name": "Compute_Management", + "trafficType": [ + "Compute", + "Management" + ], + "adapter": [ + "Port2" + ], + "overrideVirtualSwitchConfiguration": false, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + }, + "overrideQosPolicy": false, + "qosPolicyOverrides": { + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3", + "bandwidthPercentage_SMB": "50" + }, + "overrideAdapterProperty": false, + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + } + } + ], + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "vlanId": "5", + "storageAdapterIPInfo": [ + { + "physicalNode": "string", + "ipv4Address": "10.57.48.60", + "subnetMask": "255.255.248.0" + } + ] + } + ], + "storageConnectivitySwitchless": true, + "enableStorageAutoIp": false + }, + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "secrets": [ + { + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + }, + { + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + } + ], + "optionalServices": { + "customLocation": "customLocationName" + } + }, + "sbePartnerInfo": { + "sbeDeploymentInfo": { + "version": "4.0.2309.13", + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestSource": "default", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z" + }, + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "credentialList": [ + { + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + } + ] + } + } + ] + }, + "reportedProperties": { + "validationStatus": { + "status": "Error", + "steps": [ + { + "fullStepIndex": "0", + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "startTimeUtc": "2023-06-09T00:08:19", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "steps": [ + { + "fullStepIndex": "0.1", + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "startTimeUtc": "2023-06-09T00:08:23", + "endTimeUtc": "2023-06-09T01:10:10" + }, + { + "fullStepIndex": "0.36", + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "startTimeUtc": "2023-06-09T03:58:37", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ] + } + ] + } + ] + }, + "deploymentStatus": { + "status": "Error", + "steps": [ + { + "fullStepIndex": "0", + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "startTimeUtc": "2023-06-09T00:08:19", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "steps": [ + { + "fullStepIndex": "0.1", + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "startTimeUtc": "2023-06-09T00:08:23", + "endTimeUtc": "2023-06-09T01:10:10" + }, + { + "fullStepIndex": "0.36", + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "startTimeUtc": "2023-06-09T03:58:37", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ] + } + ] + } + ] + } + } + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetEdgeDevices.json new file mode 100644 index 000000000000..e05b8a92932c --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetEdgeDevices.json @@ -0,0 +1,48 @@ +{ + "title": "Get Edge Device", + "operationId": "EdgeDevices_Get", + "parameters": { + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "edgeDeviceName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/edgeDevices", + "kind": "HCI", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "deviceConfiguration": { + "nicDetails": [ + { + "adapterName": "ethernet", + "interfaceDescription": "NDIS 6.70 ", + "componentId": "VMBUS{f8615163-df3e-46c5-913f-f2d2f965ed0g} ", + "driverVersion": "10.0.20348.1547 ", + "ip4Address": "10.10.10.10", + "subnetMask": "255.255.255.0", + "defaultGateway": "10.10.10.1", + "dnsServers": [ + "100.10.10.1" + ], + "defaultIsolationId": "0" + } + ], + "deviceMetadata": "" + }, + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetExtension.json new file mode 100644 index 000000000000..cfb0bfece7b7 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetExtension.json @@ -0,0 +1,82 @@ +{ + "title": "Get ArcSettings Extension", + "operationId": "Extensions_Get", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "extensionName": "MicrosoftMonitoringAgent", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", + "name": "MicrosoftMonitoringAgent", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "extensionParameters": { + "publisher": "Microsoft.Compute", + "type": "string", + "typeHandlerVersion": "1.10.3", + "autoUpgradeMinorVersion": false, + "enableAutomaticUpgrade": true, + "settings": { + "workspaceId": "xx" + } + }, + "aggregateState": "PartiallySucceeded", + "perNodeExtensionDetails": [ + { + "name": "Node-1", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", + "state": "Succeeded", + "typeHandlerVersion": "1.10.0", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "typeHandlerVersion": "1.10.0", + "status": { + "code": "success", + "level": "Information", + "displayStatus": "Provisioning succeeded", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + } + } + }, + { + "name": "Node-2", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", + "state": "Failed", + "typeHandlerVersion": "1.10.3", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "typeHandlerVersion": "1.10.3", + "status": { + "code": "error", + "level": "Error", + "displayStatus": "Provisioning failed", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + } + } + } + ], + "managedBy": "Azure" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetOffer.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetOffer.json new file mode 100644 index 000000000000..5e19be2f4ceb --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetOffer.json @@ -0,0 +1,36 @@ +{ + "title": "Get Offer", + "operationId": "Offers_Get", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "publisherName": "publisher1", + "offerName": "offer1", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers", + "name": "offer1", + "properties": { + "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", + "contentVersion": "2018-01-01", + "publisherId": "publisher1", + "provisioningState": "Succeeded", + "skuMappings": [ + { + "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", + "marketplaceSkuId": "enterprise", + "marketplaceSkuVersions": [ + "15.0.220208" + ] + } + ] + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetPublisher.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetPublisher.json new file mode 100644 index 000000000000..2bffc9c78cc3 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetPublisher.json @@ -0,0 +1,20 @@ +{ + "title": "Get Publisher", + "operationId": "Publishers_Get", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "publisherName": "publisher1", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1", + "type": "Microsoft.AzureStackHCI/clusters/publishers", + "name": "publisher1" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetSecuritySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetSecuritySettings.json new file mode 100644 index 000000000000..0fc52f0dbf9d --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetSecuritySettings.json @@ -0,0 +1,40 @@ +{ + "title": "Get Security Settings", + "operationId": "SecuritySettings_Get", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "securitySettingsName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", + "type": "Microsoft.AzureStackHCI/clusters/securitySettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "securedCoreComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect", + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "securityComplianceStatus": { + "securedCoreCompliance": "Compliant", + "wdacCompliance": "Compliant", + "dataAtRestEncrypted": "Compliant", + "dataInTransitProtected": "Compliant", + "lastUpdated": "2023-11-14T07:09:44.771Z" + }, + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetSku.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetSku.json new file mode 100644 index 000000000000..286b3e31611e --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetSku.json @@ -0,0 +1,38 @@ +{ + "title": "Get Sku", + "operationId": "Skus_Get", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "publisherName": "publisher1", + "offerName": "offer1", + "skuName": "sku1", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1/skus/sku1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers/skus", + "name": "sku1", + "properties": { + "publisherId": "publisher1", + "offerId": "offer1", + "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", + "contentVersion": "2018-01-01", + "provisioningState": "Succeeded", + "skuMappings": [ + { + "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", + "marketplaceSkuId": "enterprise", + "marketplaceSkuVersions": [ + "15.0.220208" + ] + } + ] + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetUpdateRuns.json new file mode 100644 index 000000000000..c2ff0405ffa6 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetUpdateRuns.json @@ -0,0 +1,45 @@ +{ + "title": "Get Update runs under cluster resource", + "operationId": "UpdateRuns_Get", + "parameters": { + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "resourceGroupName": "testrg", + "clusterName": "testcluster", + "updateName": "Microsoft4.2203.2.32", + "updateRunName": "23b779ba-0d52-4a80-8571-45ca74664ec3", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32/updateRuns/23b779ba-0d52-4a80-8571-45ca74664ec3", + "name": "Microsoft4.2203.2.32/23b779ba-0d52-4a80-8571-45ca74664ec3", + "type": "Microsoft.AzureStackHCI/updates/updateRuns", + "location": "West US", + "properties": { + "progress": { + "name": "Unnamed step", + "description": "Update Azure Stack.", + "errorMessage": "", + "status": "Success", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "endTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "lastUpdatedTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "steps": [ + { + "name": "PreUpdate Cloud", + "description": "Prepare for SSU update", + "errorMessage": "", + "status": "Success", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "endTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "lastUpdatedTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "steps": [] + } + ] + } + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetUpdateSummaries.json new file mode 100644 index 000000000000..af2aa0e6b38d --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetUpdateSummaries.json @@ -0,0 +1,43 @@ +{ + "title": "Get Update summaries under cluster resource", + "operationId": "UpdateSummaries_Get", + "parameters": { + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "resourceGroupName": "testrg", + "clusterName": "testcluster", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updateSummaries/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/updateSummaries", + "location": "West US", + "properties": { + "oemFamily": "DellEMC", + "hardwareModel": "PowerEdge R730xd", + "packageVersions": [ + { + "packageType": "OEM", + "version": "2.2.2108.6", + "lastUpdated": "2022-04-07T18:04:07Z" + }, + { + "packageType": "Services", + "version": "4.2203.2.32", + "lastUpdated": "2022-04-07T18:04:07Z" + }, + { + "packageType": "Infrastructure", + "version": "4.2203.2.32", + "lastUpdated": "2022-04-07T18:04:07Z" + } + ], + "currentVersion": "4.2203.2.32", + "state": "AppliedSuccessfully" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetUpdates.json new file mode 100644 index 000000000000..a31e5fc82e29 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/GetUpdates.json @@ -0,0 +1,46 @@ +{ + "title": "Get a specific update", + "operationId": "Updates_Get", + "parameters": { + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "resourceGroupName": "testrg", + "clusterName": "testcluster", + "updateName": "Microsoft4.2203.2.32", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32", + "name": "Microsoft4.2203.2.32", + "type": "Microsoft.AzureStackHCI/updates", + "location": "West US", + "properties": { + "installedDate": "2022-04-06T14:08:18.254Z", + "description": "AzS Update 4.2203.2.32", + "state": "Installed", + "prerequisites": [ + { + "updateType": "update type", + "version": "prerequisite version", + "packageName": "update package name" + } + ], + "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", + "packageSizeInMb": 18858, + "displayName": "AzS Update - 4.2203.2.32", + "version": "4.2203.2.32", + "publisher": "Microsoft", + "releaseLink": "https://docs.microsoft.com/azure-stack/operator/release-notes?view=azs-2203", + "availabilityType": "Local", + "packageType": "Infrastructure", + "updateStateProperties": { + "notifyMessage": "Brief message with instructions for updates of AvailabilityType Notify", + "progressPercentage": 0 + }, + "additionalProperties": "additional properties" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/InitializeDisableProcess.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/InitializeDisableProcess.json new file mode 100644 index 000000000000..42fd2fd0ea8f --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/InitializeDisableProcess.json @@ -0,0 +1,21 @@ +{ + "title": "Trigger ARC Disable", + "operationId": "ArcSettings_InitializeDisableProcess", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses", + "Retry-After": 200, + "Azure-AsyncOperation": "https://foo.com/operationStatuses" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListArcSettingsByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListArcSettingsByCluster.json new file mode 100644 index 000000000000..43e9c158e7fc --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListArcSettingsByCluster.json @@ -0,0 +1,66 @@ +{ + "title": "List ArcSetting resources by HCI Cluster", + "operationId": "ArcSettings_ListByCluster", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "arcInstanceResourceGroup": "ArcInstance-rg", + "aggregateState": "PartiallyConnected", + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "state": "Connected" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "state": "Disconnected" + } + ], + "connectivityProperties": { + "enabled": false, + "serviceConfigurations": [ + { + "serviceName": "WAC", + "port": 6516 + } + ] + }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + }, + { + "category": "Supportability", + "consentTime": null + } + ] + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListClustersByResourceGroup.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListClustersByResourceGroup.json new file mode 100644 index 000000000000..0640e03cb57a --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListClustersByResourceGroup.json @@ -0,0 +1,139 @@ +{ + "title": "List clusters in a given resource group", + "operationId": "Clusters_ListByResourceGroup", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster1", + "name": "myCluster1", + "type": "Microsoft.AzureStackHCI/clusters", + "location": "East US", + "tags": {}, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "status": "NotYetRegistered", + "connectivityStatus": "NotYetRegistered", + "supportStatus": "InSupport", + "ring": "Production", + "cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "aadClientId": "515da1c2-379e-49b4-9975-09e3e40c86be", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "identityProvider": "ActiveDirectory", + "desiredProperties": { + "windowsServerSubscription": "Enabled", + "diagnosticLevel": "Basic" + }, + "reportedProperties": {}, + "trialDaysRemaining": 29, + "billingModel": "Trial" + } + }, + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster2", + "name": "myCluster2", + "type": "Microsoft.AzureStackHCI/clusters", + "location": "East US", + "tags": {}, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "status": "ConnectedRecently", + "connectivityStatus": "PartiallyConnected", + "supportStatus": "InSupport", + "ring": "Production", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "identityProvider": "ActiveDirectory", + "desiredProperties": { + "windowsServerSubscription": "Enabled", + "diagnosticLevel": "Basic" + }, + "reportedProperties": { + "clusterName": "cluster1", + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterVersion": "10.0.17777", + "clusterType": "ThirdParty", + "manufacturer": "Dell Inc.", + "oemActivation": "Disabled", + "nodes": [ + { + "name": "Node1", + "id": 0, + "windowsServerSubscription": "Enabled", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "coreCount": 8, + "memoryInGiB": 128, + "oemActivation": "Enabled" + }, + { + "name": "Node2", + "id": 1, + "windowsServerSubscription": "Enabled", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44BSC3", + "coreCount": 8, + "memoryInGiB": 128, + "oemActivation": "Enabled" + }, + { + "name": "Node3", + "id": 2, + "windowsServerSubscription": "Enabled", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44RFC3", + "coreCount": 16, + "memoryInGiB": 256, + "oemActivation": "Disabled" + } + ], + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "imdsAttestation": "Disabled", + "diagnosticLevel": "Basic" + }, + "trialDaysRemaining": 30, + "billingModel": "Trial", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListClustersBySubscription.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListClustersBySubscription.json new file mode 100644 index 000000000000..d440b7abd712 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListClustersBySubscription.json @@ -0,0 +1,138 @@ +{ + "title": "List clusters in a given subscription", + "operationId": "Clusters_ListBySubscription", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg1/providers/Microsoft.AzureStackHCI/clusters/myCluster1", + "name": "myCluster1", + "type": "Microsoft.AzureStackHCI/clusters", + "location": "East US", + "tags": {}, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "status": "NotYetRegistered", + "connectivityStatus": "NotYetRegistered", + "supportStatus": "InSupport", + "ring": "Production", + "cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "aadClientId": "515da1c2-379e-49b4-9975-09e3e40c86be", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "identityProvider": "ActiveDirectory", + "desiredProperties": { + "windowsServerSubscription": "Enabled", + "diagnosticLevel": "Basic" + }, + "reportedProperties": {}, + "trialDaysRemaining": 29, + "billingModel": "Trial" + } + }, + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg2/providers/Microsoft.AzureStackHCI/clusters/myCluster2", + "name": "myCluster2", + "type": "Microsoft.AzureStackHCI/clusters", + "location": "West US", + "tags": {}, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "status": "ConnectedRecently", + "connectivityStatus": "Connected", + "supportStatus": "InSupport", + "ring": "Production", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "identityProvider": "ActiveDirectory", + "desiredProperties": { + "windowsServerSubscription": "Enabled", + "diagnosticLevel": "Basic" + }, + "reportedProperties": { + "clusterName": "cluster1", + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterVersion": "10.0.17777", + "clusterType": "ThirdParty", + "manufacturer": "Dell Inc.", + "oemActivation": "Enabled", + "nodes": [ + { + "name": "Node1", + "id": 0, + "windowsServerSubscription": "Enabled", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "coreCount": 8, + "memoryInGiB": 128, + "oemActivation": "Enabled" + }, + { + "name": "Node2", + "id": 1, + "windowsServerSubscription": "Enabled", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44BSC3", + "coreCount": 8, + "memoryInGiB": 128, + "oemActivation": "Enabled" + }, + { + "name": "Node3", + "id": 2, + "windowsServerSubscription": "Enabled", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44RFC3", + "coreCount": 16, + "memoryInGiB": 256, + "oemActivation": "Enabled" + } + ], + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "imdsAttestation": "Disabled", + "diagnosticLevel": "Basic" + }, + "trialDaysRemaining": 30, + "billingModel": "Trial", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListDeploymentSettingsByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListDeploymentSettingsByCluster.json new file mode 100644 index 000000000000..4343c3e75e37 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListDeploymentSettingsByCluster.json @@ -0,0 +1,205 @@ +{ + "title": "List Deployment Settings", + "operationId": "DeploymentSettings_ListByClusters", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "operationType": "ClusterProvisioning", + "deploymentMode": "Deploy", + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "version": "string", + "scaleUnits": [ + { + "deploymentData": { + "securitySettings": { + "hvciProtection": true, + "drtmProtection": true, + "driftControlEnforced": true, + "credentialGuardEnforced": false, + "smbSigningEnforced": true, + "smbClusterEncryption": false, + "sideChannelMitigationEnforced": true, + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "wdacEnforced": true + }, + "observability": { + "streamingDataClient": true, + "euLocation": false, + "episodicDataUpload": true + }, + "cluster": { + "name": "testHCICluster", + "witnessType": "Cloud", + "witnessPath": "Cloud", + "cloudAccountName": "myasestoragacct", + "azureServiceEndpoint": "core.windows.net" + }, + "storage": { + "configurationMode": "Express" + }, + "namingPrefix": "ms169", + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "infrastructureNetwork": [ + { + "subnetMask": "255.255.248.0", + "gateway": "255.255.248.0", + "ipPools": [ + { + "startingAddress": "10.57.48.60", + "endingAddress": "10.57.48.66" + } + ], + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ] + } + ], + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "hostNetwork": { + "intents": [ + { + "name": "Compute_Management", + "trafficType": [ + "Compute", + "Management" + ], + "adapter": [ + "Port2" + ], + "overrideVirtualSwitchConfiguration": false, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + }, + "overrideQosPolicy": false, + "qosPolicyOverrides": { + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3", + "bandwidthPercentage_SMB": "50" + }, + "overrideAdapterProperty": false, + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + } + } + ], + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "vlanId": "5", + "storageAdapterIPInfo": [ + { + "physicalNode": "string", + "ipv4Address": "10.57.48.60", + "subnetMask": "255.255.248.0" + } + ] + } + ], + "storageConnectivitySwitchless": true, + "enableStorageAutoIp": false + }, + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "secrets": [ + { + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + }, + { + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + } + ], + "optionalServices": { + "customLocation": "customLocationName" + } + }, + "sbePartnerInfo": { + "sbeDeploymentInfo": { + "version": "4.0.2309.13", + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestSource": "default", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z" + }, + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "credentialList": [ + { + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + } + ] + } + } + ] + } + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListEdgeDevices.json new file mode 100644 index 000000000000..66487c124099 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListEdgeDevices.json @@ -0,0 +1,74 @@ +{ + "title": "List Edge Devices", + "operationId": "EdgeDevices_List", + "parameters": { + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "edgeDeviceName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/edgeDevices", + "kind": "HCI", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "reportedProperties": { + "networkProfile": { + "nicDetails": [ + { + "adapterName": "vmanagement", + "interfaceDescription": "Hyper-V Virtual Ethernet Adapter", + "componentId": "vms_mp", + "driverVersion": "10.0.25398.1", + "ip4Address": "192.168.200.92", + "subnetMask": "255.255.255.0", + "defaultGateway": "192.168.200.1", + "dnsServers": [ + "192.168.200.222" + ], + "defaultIsolationId": "0", + "slot": "0", + "macAddress": "000000000041", + "switchName": null, + "nicType": "Virtual", + "vlanId": "0", + "nicStatus": "Up" + } + ], + "switchDetails": [ + { + "switchName": "vmanagement", + "switchType": "External" + } + ] + }, + "osProfile": { + "bootType": "UEFI", + "assemblyVersion": "2402.1" + }, + "sbeDeploymentPackageInfo": { + "code": "NewerThanLatestPublished", + "message": "The SBE package at path 'C:\\SBE' with version 4.1.2312.10 is published later than the latest SBE manifest published for online discovery. ", + "sbeManifest": "PEFwcGxpY2Fi" + } + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListExtensionsByArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListExtensionsByArcSetting.json new file mode 100644 index 000000000000..29a00d9ccbd9 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListExtensionsByArcSetting.json @@ -0,0 +1,97 @@ +{ + "title": "List Extensions under ArcSetting resource", + "operationId": "Extensions_ListByArcSetting", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", + "name": "MicrosoftMonitoringAgent", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "extensionParameters": { + "publisher": "Microsoft.Compute", + "type": "string", + "typeHandlerVersion": "1.10.3", + "autoUpgradeMinorVersion": false, + "settings": { + "workspaceId": "xx" + } + }, + "aggregateState": "PartiallyConnected", + "perNodeExtensionDetails": [ + { + "name": "Node-1", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", + "state": "Connected" + }, + { + "name": "Node-2", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", + "state": "Disconnected" + } + ], + "managedBy": "Azure" + } + }, + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/Extensions/SecurityExtension", + "name": "CustomScriptExtension", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "extensionParameters": { + "publisher": "Microsoft.CustomScriptExtension", + "type": "string", + "typeHandlerVersion": "1.10.3", + "autoUpgradeMinorVersion": false, + "settings": { + "scriptLocation": "xx" + } + }, + "aggregateState": "PartiallySucceeded", + "perNodeExtensionDetails": [ + { + "name": "Node-1", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/SecurityExtension", + "state": "Succeeded" + }, + { + "name": "Node-2", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/SecurityExtension", + "state": "Failed" + } + ], + "managedBy": "Azure" + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListOffersByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListOffersByCluster.json new file mode 100644 index 000000000000..252984915a14 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListOffersByCluster.json @@ -0,0 +1,38 @@ +{ + "title": "List Offer resources by HCI Cluster", + "operationId": "Offers_ListByCluster", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers", + "name": "offer1", + "properties": { + "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", + "contentVersion": "2018-01-01", + "publisherId": "publisher1", + "provisioningState": "Succeeded", + "skuMappings": [ + { + "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", + "marketplaceSkuId": "enterprise", + "marketplaceSkuVersions": [ + "15.0.220208" + ] + } + ] + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListOffersByPublisher.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListOffersByPublisher.json new file mode 100644 index 000000000000..b39884ccad59 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListOffersByPublisher.json @@ -0,0 +1,39 @@ +{ + "title": "List Offer resources by publisher for the HCI Cluster", + "operationId": "Offers_ListByPublisher", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "publisherName": "publisher1", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers", + "name": "offer1", + "properties": { + "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", + "contentVersion": "2018-01-01", + "publisherId": "publisher1", + "provisioningState": "Succeeded", + "skuMappings": [ + { + "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", + "marketplaceSkuId": "enterprise", + "marketplaceSkuVersions": [ + "15.0.220208" + ] + } + ] + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListPublishersByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListPublishersByCluster.json new file mode 100644 index 000000000000..009f11c4385c --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListPublishersByCluster.json @@ -0,0 +1,23 @@ +{ + "title": "List Publisher resources by HCI Cluster", + "operationId": "Publishers_ListByCluster", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1", + "type": "Microsoft.AzureStackHCI/clusters/publishers", + "name": "publisher1" + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListSecuritySettingsByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListSecuritySettingsByCluster.json new file mode 100644 index 000000000000..3a8450181956 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListSecuritySettingsByCluster.json @@ -0,0 +1,43 @@ +{ + "title": "List Security Settings", + "operationId": "SecuritySettings_ListByClusters", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", + "type": "Microsoft.AzureStackHCI/clusters/securitySettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "securedCoreComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect", + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "securityComplianceStatus": { + "securedCoreCompliance": "Compliant", + "wdacCompliance": "Compliant", + "dataAtRestEncrypted": "Compliant", + "dataInTransitProtected": "Compliant", + "lastUpdated": "2023-11-14T07:09:44.771Z" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListSkusByOffer.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListSkusByOffer.json new file mode 100644 index 000000000000..b574043fbd7a --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListSkusByOffer.json @@ -0,0 +1,41 @@ +{ + "title": "List SKU resources by offer for the HCI Cluster", + "operationId": "Skus_ListByOffer", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "publisherName": "publisher1", + "offerName": "offer1", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1/skus/sku1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers/skus", + "name": "sku1", + "properties": { + "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", + "contentVersion": "2018-01-01", + "publisherId": "publisher1", + "offerId": "offer1", + "skuMappings": [ + { + "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", + "marketplaceSkuId": "enterprise", + "marketplaceSkuVersions": [ + "15.0.220208" + ] + } + ], + "provisioningState": "Succeeded" + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListUpdateRuns.json new file mode 100644 index 000000000000..f5cd365093bf --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListUpdateRuns.json @@ -0,0 +1,48 @@ +{ + "title": "List Update runs under cluster resource", + "operationId": "UpdateRuns_List", + "parameters": { + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "resourceGroupName": "testrg", + "clusterName": "testcluster", + "updateName": "Microsoft4.2203.2.32", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32/updateRuns/23b779ba-0d52-4a80-8571-45ca74664ec3", + "name": "Microsoft4.2203.2.32/23b779ba-0d52-4a80-8571-45ca74664ec3", + "type": "Microsoft.AzureStackHCI/updates/updateRuns", + "location": "West US", + "properties": { + "progress": { + "name": "Unnamed step", + "description": "Update Azure Stack.", + "errorMessage": "", + "status": "Success", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "endTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "lastUpdatedTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "steps": [ + { + "name": "PreUpdate Cloud", + "description": "Prepare for SSU update", + "errorMessage": "", + "status": "Success", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "endTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "lastUpdatedTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "steps": [] + } + ] + } + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListUpdateSummaries.json new file mode 100644 index 000000000000..f3d4c7b9ac1b --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListUpdateSummaries.json @@ -0,0 +1,47 @@ +{ + "title": "Get Update summaries under cluster resource", + "operationId": "UpdateSummaries_List", + "parameters": { + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "resourceGroupName": "testrg", + "clusterName": "testcluster", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updateSummaries/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/updateSummaries", + "location": "West US", + "properties": { + "oemFamily": "DellEMC", + "hardwareModel": "PowerEdge R730xd", + "packageVersions": [ + { + "packageType": "OEM", + "version": "2.2.2108.6", + "lastUpdated": "2022-04-07T18:04:07Z" + }, + { + "packageType": "Services", + "version": "4.2203.2.32", + "lastUpdated": "2022-04-07T18:04:07Z" + }, + { + "packageType": "Infrastructure", + "version": "4.2203.2.32", + "lastUpdated": "2022-04-07T18:04:07Z" + } + ], + "currentVersion": "4.2203.2.32", + "state": "AppliedSuccessfully" + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListUpdates.json new file mode 100644 index 000000000000..35bb9e90b456 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ListUpdates.json @@ -0,0 +1,49 @@ +{ + "title": "List available updates", + "operationId": "Updates_List", + "parameters": { + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "resourceGroupName": "testrg", + "clusterName": "testcluster", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32", + "name": "Microsoft4.2203.2.32", + "type": " Microsoft. AzureStackHCI/updates", + "location": "West US", + "properties": { + "installedDate": "2022-04-06T14:08:18.254Z", + "description": "AzS Update 4.2203.2.32", + "state": "Installed", + "prerequisites": [ + { + "updateType": "update type", + "version": "prerequisite version", + "packageName": "update package name" + } + ], + "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", + "packageSizeInMb": 18858, + "displayName": "AzS Update - 4.2203.2.32", + "version": "4.2203.2.32", + "publisher": "Microsoft", + "releaseLink": "https://docs.microsoft.com/azure-stack/operator/release-notes?view=azs-2203", + "availabilityType": "Local", + "packageType": "Infrastructure", + "updateStateProperties": { + "notifyMessage": "Brief message with instructions for updates of AvailabilityType Notify", + "progressPercentage": 0 + }, + "additionalProperties": "additional properties" + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PatchArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PatchArcSetting.json new file mode 100644 index 000000000000..c29fd999a6d1 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PatchArcSetting.json @@ -0,0 +1,76 @@ +{ + "title": "Patch ArcSetting", + "operationId": "ArcSettings_Update", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "arcSetting": { + "properties": { + "connectivityProperties": { + "enabled": true, + "serviceConfigurations": [ + { + "serviceName": "WAC", + "port": 6516 + } + ] + } + } + }, + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "arcInstanceResourceGroup": "ArcInstance-rg", + "aggregateState": "Creating", + "connectivityProperties": { + "enabled": true, + "serviceConfigurations": [ + { + "serviceName": "WAC", + "port": 6516 + } + ] + }, + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "state": "Creating" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "state": "Creating" + } + ], + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + }, + { + "category": "Supportability", + "consentTime": null + } + ] + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PatchExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PatchExtension.json new file mode 100644 index 000000000000..391a7d1d99c2 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PatchExtension.json @@ -0,0 +1,101 @@ +{ + "title": "Update Arc Extension", + "operationId": "Extensions_Update", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "extensionName": "MicrosoftMonitoringAgent", + "extension": { + "properties": { + "extensionParameters": { + "typeHandlerVersion": "1.10", + "enableAutomaticUpgrade": false, + "settings": { + "workspaceId": "xx" + }, + "protectedSettings": { + "workspaceKey": "xx" + } + } + } + }, + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", + "name": "MicrosoftMonitoringAgent", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "extensionParameters": { + "publisher": "Microsoft.Compute", + "type": "string", + "typeHandlerVersion": "1.10", + "enableAutomaticUpgrade": false, + "autoUpgradeMinorVersion": false, + "settings": { + "workspaceId": "xx" + } + }, + "aggregateState": "PartiallyConnected", + "perNodeExtensionDetails": [ + { + "name": "Node-1", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", + "state": "Connected", + "typeHandlerVersion": "1.10.0", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "typeHandlerVersion": "1.10.0", + "status": { + "code": "success", + "level": "Information", + "displayStatus": "Provisioning succeeded", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + } + } + }, + { + "name": "Node-2", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", + "state": "Disconnected", + "typeHandlerVersion": "1.10.3", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "typeHandlerVersion": "1.10.3", + "status": { + "code": "error", + "level": "Error", + "displayStatus": "Provisioning failed", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + } + } + } + ], + "managedBy": "User" + } + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PlatformUpdates_ListByLocation_MaximumSet_Gen.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PlatformUpdates_ListByLocation_MaximumSet_Gen.json index 1b70a458576e..e86c80e2cd2f 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PlatformUpdates_ListByLocation_MaximumSet_Gen.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PlatformUpdates_ListByLocation_MaximumSet_Gen.json @@ -61,7 +61,7 @@ "type": "Microsoft.AzureStackHCI/PlatformUpdates" } ], - "nextLink": "https://management.azure.com/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/providers/Microsoft.AzureStackHCI/locations/westus2/platformUpdates?api-version=2025-11-01-preview&$skiptoken=X'12345'" + "nextLink": "https://management.azure.com/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/providers/Microsoft.AzureStackHCI/locations/westus2/platformUpdates?api-version=2025-09-22-preview&$skiptoken=X'12345'" } } } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PostUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PostUpdates.json new file mode 100644 index 000000000000..604bd2a3cd46 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PostUpdates.json @@ -0,0 +1,19 @@ +{ + "title": "List available updates", + "operationId": "Updates_Post", + "parameters": { + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "resourceGroupName": "testrg", + "clusterName": "testcluster", + "updateName": "Microsoft4.2203.2.32", + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://foo.com/operationstatus" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutArcSetting.json new file mode 100644 index 000000000000..2549e471b2fc --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutArcSetting.json @@ -0,0 +1,55 @@ +{ + "title": "Create ArcSetting", + "operationId": "ArcSettings_Create", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "arcSetting": {}, + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "arcInstanceResourceGroup": "ArcInstance-rg", + "aggregateState": "Creating", + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "state": "Creating" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "state": "Creating" + } + ], + "connectivityProperties": { + "enabled": false, + "serviceConfigurations": [] + }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + } + ] + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutDeploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutDeploymentSettings.json new file mode 100644 index 000000000000..41a8a4b01bf9 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutDeploymentSettings.json @@ -0,0 +1,735 @@ +{ + "title": "Create Deployment Settings", + "operationId": "DeploymentSettings_CreateOrUpdate", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "deploymentSettingsName": "default", + "api-version": "2025-11-01-preview", + "resource": { + "properties": { + "operationType": "ClusterProvisioning", + "deploymentMode": "Deploy", + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "version": "string", + "scaleUnits": [ + { + "deploymentData": { + "securitySettings": { + "hvciProtection": true, + "drtmProtection": true, + "driftControlEnforced": true, + "credentialGuardEnforced": false, + "smbSigningEnforced": true, + "smbClusterEncryption": false, + "sideChannelMitigationEnforced": true, + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "wdacEnforced": true + }, + "observability": { + "streamingDataClient": true, + "euLocation": false, + "episodicDataUpload": true + }, + "cluster": { + "name": "testHCICluster", + "witnessType": "Cloud", + "witnessPath": "Cloud", + "cloudAccountName": "myasestoragacct", + "azureServiceEndpoint": "core.windows.net" + }, + "storage": { + "configurationMode": "Express" + }, + "namingPrefix": "ms169", + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "infrastructureNetwork": [ + { + "subnetMask": "255.255.248.0", + "gateway": "255.255.248.0", + "ipPools": [ + { + "startingAddress": "10.57.48.60", + "endingAddress": "10.57.48.66" + } + ], + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ] + } + ], + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "hostNetwork": { + "intents": [ + { + "name": "Compute_Management", + "trafficType": [ + "Compute", + "Management" + ], + "adapter": [ + "Port2" + ], + "overrideVirtualSwitchConfiguration": false, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + }, + "overrideQosPolicy": false, + "qosPolicyOverrides": { + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3", + "bandwidthPercentage_SMB": "50" + }, + "overrideAdapterProperty": false, + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + } + } + ], + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "vlanId": "5", + "storageAdapterIPInfo": [ + { + "physicalNode": "string", + "ipv4Address": "10.57.48.60", + "subnetMask": "255.255.248.0" + } + ] + } + ], + "storageConnectivitySwitchless": true, + "enableStorageAutoIp": false + }, + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "isManagementCluster": true, + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "secrets": [ + { + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + }, + { + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + } + ], + "optionalServices": { + "customLocation": "customLocationName" + } + }, + "sbePartnerInfo": { + "sbeDeploymentInfo": { + "version": "4.0.2309.13", + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestSource": "default", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z" + }, + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "credentialList": [ + { + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + } + ] + } + } + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "deploymentMode": "Deploy", + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "version": "string", + "scaleUnits": [ + { + "deploymentData": { + "securitySettings": { + "hvciProtection": true, + "drtmProtection": true, + "driftControlEnforced": true, + "credentialGuardEnforced": false, + "smbSigningEnforced": true, + "smbClusterEncryption": false, + "sideChannelMitigationEnforced": true, + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "wdacEnforced": true + }, + "observability": { + "streamingDataClient": true, + "euLocation": false, + "episodicDataUpload": true + }, + "cluster": { + "name": "testHCICluster", + "witnessType": "Cloud", + "witnessPath": "Cloud", + "cloudAccountName": "myasestoragacct", + "azureServiceEndpoint": "core.windows.net" + }, + "storage": { + "configurationMode": "Express" + }, + "namingPrefix": "ms169", + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "infrastructureNetwork": [ + { + "subnetMask": "255.255.248.0", + "gateway": "255.255.248.0", + "ipPools": [ + { + "startingAddress": "10.57.48.60", + "endingAddress": "10.57.48.66" + } + ], + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ] + } + ], + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "hostNetwork": { + "intents": [ + { + "name": "Compute_Management", + "trafficType": [ + "Compute", + "Management" + ], + "adapter": [ + "Port2" + ], + "overrideVirtualSwitchConfiguration": false, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + }, + "overrideQosPolicy": false, + "qosPolicyOverrides": { + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3", + "bandwidthPercentage_SMB": "50" + }, + "overrideAdapterProperty": false, + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + } + } + ], + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "vlanId": "5", + "storageAdapterIPInfo": [ + { + "physicalNode": "string", + "ipv4Address": "10.57.48.60", + "subnetMask": "255.255.248.0" + } + ] + } + ], + "storageConnectivitySwitchless": true, + "enableStorageAutoIp": false + }, + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "secrets": [ + { + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + }, + { + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + } + ], + "optionalServices": { + "customLocation": "customLocationName" + } + }, + "sbePartnerInfo": { + "sbeDeploymentInfo": { + "version": "4.0.2309.13", + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestSource": "default", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z" + }, + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "credentialList": [ + { + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + } + ] + } + } + ] + }, + "reportedProperties": { + "validationStatus": { + "status": "Error", + "steps": [ + { + "fullStepIndex": "0", + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "startTimeUtc": "2023-06-09T00:08:19", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ], + "steps": [ + { + "fullStepIndex": "0.1", + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "startTimeUtc": "2023-06-09T00:08:23", + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "steps": [] + }, + { + "fullStepIndex": "0.36", + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "startTimeUtc": "2023-06-09T03:58:37", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ], + "steps": [] + } + ] + } + ] + }, + "deploymentStatus": { + "status": "Error", + "steps": [ + { + "fullStepIndex": "0", + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "startTimeUtc": "2023-06-09T00:08:19", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ], + "steps": [ + { + "fullStepIndex": "0.1", + "name": "Before Cloud Deployment", + "description": null, + "startTimeUtc": "2023-06-09T00:08:23", + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "steps": [] + }, + { + "fullStepIndex": "0.36", + "name": "Clean up temporary content", + "description": null, + "startTimeUtc": "2023-06-09T03:58:37", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ], + "steps": [] + } + ] + } + ] + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "deploymentMode": "Deploy", + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "version": "string", + "scaleUnits": [ + { + "deploymentData": { + "securitySettings": { + "hvciProtection": true, + "drtmProtection": true, + "driftControlEnforced": true, + "credentialGuardEnforced": false, + "smbSigningEnforced": true, + "smbClusterEncryption": false, + "sideChannelMitigationEnforced": true, + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "wdacEnforced": true + }, + "observability": { + "streamingDataClient": true, + "euLocation": false, + "episodicDataUpload": true + }, + "cluster": { + "name": "testHCICluster", + "witnessType": "Cloud", + "witnessPath": "Cloud", + "cloudAccountName": "myasestoragacct", + "azureServiceEndpoint": "core.windows.net" + }, + "storage": { + "configurationMode": "Express" + }, + "namingPrefix": "ms169", + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "infrastructureNetwork": [ + { + "subnetMask": "255.255.248.0", + "gateway": "255.255.248.0", + "ipPools": [ + { + "startingAddress": "10.57.48.60", + "endingAddress": "10.57.48.66" + } + ], + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ] + } + ], + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "hostNetwork": { + "intents": [ + { + "name": "Compute_Management", + "trafficType": [ + "Compute", + "Management" + ], + "adapter": [ + "Port2" + ], + "overrideVirtualSwitchConfiguration": false, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + }, + "overrideQosPolicy": false, + "qosPolicyOverrides": { + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3", + "bandwidthPercentage_SMB": "50" + }, + "overrideAdapterProperty": false, + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + } + } + ], + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "vlanId": "5", + "storageAdapterIPInfo": [ + { + "physicalNode": "string", + "ipv4Address": "10.57.48.60", + "subnetMask": "255.255.248.0" + } + ] + } + ], + "storageConnectivitySwitchless": true, + "enableStorageAutoIp": false + }, + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "secrets": [ + { + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + }, + { + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + } + ], + "optionalServices": { + "customLocation": "customLocationName" + } + }, + "sbePartnerInfo": { + "sbeDeploymentInfo": { + "version": "4.0.2309.13", + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestSource": "default", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z" + }, + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "credentialList": [ + { + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + } + ] + } + } + ] + }, + "reportedProperties": { + "validationStatus": { + "status": "Error", + "steps": [ + { + "fullStepIndex": "0", + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "startTimeUtc": "2023-06-09T00:08:19", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "steps": [ + { + "fullStepIndex": "0.1", + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "startTimeUtc": "2023-06-09T00:08:23", + "endTimeUtc": "2023-06-09T01:10:10" + }, + { + "fullStepIndex": "0.36", + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "startTimeUtc": "2023-06-09T03:58:37", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ] + } + ] + } + ] + }, + "deploymentStatus": { + "status": "Error", + "steps": [ + { + "fullStepIndex": "0", + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "startTimeUtc": "2023-06-09T00:08:19", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ], + "steps": [ + { + "fullStepIndex": "0.1", + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "startTimeUtc": "2023-06-09T00:08:23", + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "steps": [] + }, + { + "fullStepIndex": "0.36", + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "startTimeUtc": "2023-06-09T03:58:37", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ], + "steps": [] + } + ] + } + ] + } + } + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutDeploymentSettingsWithADLess.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutDeploymentSettingsWithADLess.json new file mode 100644 index 000000000000..373dff38fb77 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutDeploymentSettingsWithADLess.json @@ -0,0 +1,739 @@ +{ + "title": "Create Deployment Settings Without Active Directory Integration", + "operationId": "DeploymentSettings_CreateOrUpdate", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "deploymentSettingsName": "default", + "api-version": "2025-11-01-preview", + "resource": { + "properties": { + "operationType": "ClusterProvisioning", + "deploymentMode": "Deploy", + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "version": "string", + "scaleUnits": [ + { + "deploymentData": { + "securitySettings": { + "hvciProtection": true, + "drtmProtection": true, + "driftControlEnforced": true, + "credentialGuardEnforced": false, + "smbSigningEnforced": true, + "smbClusterEncryption": false, + "sideChannelMitigationEnforced": true, + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "wdacEnforced": true + }, + "observability": { + "streamingDataClient": true, + "euLocation": false, + "episodicDataUpload": true + }, + "cluster": { + "name": "testHCICluster", + "witnessType": "Cloud", + "witnessPath": "Cloud", + "cloudAccountName": "myasestoragacct", + "azureServiceEndpoint": "core.windows.net" + }, + "identityProvider": "LocalIdentity", + "storage": { + "configurationMode": "Express" + }, + "namingPrefix": "ms169", + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "infrastructureNetwork": [ + { + "subnetMask": "255.255.248.0", + "gateway": "255.255.248.0", + "ipPools": [ + { + "startingAddress": "10.57.48.60", + "endingAddress": "10.57.48.66" + } + ], + "dnsZones": [ + { + "dnsZoneName": "contoso.com", + "dnsForwarder": [ + "192.168.1.1" + ] + } + ] + } + ], + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "hostNetwork": { + "intents": [ + { + "name": "Compute_Management", + "trafficType": [ + "Compute", + "Management" + ], + "adapter": [ + "Port2" + ], + "overrideVirtualSwitchConfiguration": false, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + }, + "overrideQosPolicy": false, + "qosPolicyOverrides": { + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3", + "bandwidthPercentage_SMB": "50" + }, + "overrideAdapterProperty": false, + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + } + } + ], + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "vlanId": "5", + "storageAdapterIPInfo": [ + { + "physicalNode": "string", + "ipv4Address": "10.57.48.60", + "subnetMask": "255.255.248.0" + } + ] + } + ], + "storageConnectivitySwitchless": true, + "enableStorageAutoIp": false + }, + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "secrets": [ + { + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + }, + { + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + } + ], + "optionalServices": { + "customLocation": "customLocationName" + } + }, + "sbePartnerInfo": { + "sbeDeploymentInfo": { + "version": "4.0.2309.13", + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestSource": "default", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z" + }, + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "credentialList": [ + { + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + } + ] + } + } + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "deploymentMode": "Deploy", + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "version": "string", + "scaleUnits": [ + { + "deploymentData": { + "securitySettings": { + "hvciProtection": true, + "drtmProtection": true, + "driftControlEnforced": true, + "credentialGuardEnforced": false, + "smbSigningEnforced": true, + "smbClusterEncryption": false, + "sideChannelMitigationEnforced": true, + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "wdacEnforced": true + }, + "observability": { + "streamingDataClient": true, + "euLocation": false, + "episodicDataUpload": true + }, + "cluster": { + "name": "testHCICluster", + "witnessType": "Cloud", + "witnessPath": "Cloud", + "cloudAccountName": "myasestoragacct", + "azureServiceEndpoint": "core.windows.net" + }, + "storage": { + "configurationMode": "Express" + }, + "namingPrefix": "ms169", + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "infrastructureNetwork": [ + { + "subnetMask": "255.255.248.0", + "gateway": "255.255.248.0", + "ipPools": [ + { + "startingAddress": "10.57.48.60", + "endingAddress": "10.57.48.66" + } + ], + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ] + } + ], + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "hostNetwork": { + "intents": [ + { + "name": "Compute_Management", + "trafficType": [ + "Compute", + "Management" + ], + "adapter": [ + "Port2" + ], + "overrideVirtualSwitchConfiguration": false, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + }, + "overrideQosPolicy": false, + "qosPolicyOverrides": { + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3", + "bandwidthPercentage_SMB": "50" + }, + "overrideAdapterProperty": false, + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + } + } + ], + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "vlanId": "5", + "storageAdapterIPInfo": [ + { + "physicalNode": "string", + "ipv4Address": "10.57.48.60", + "subnetMask": "255.255.248.0" + } + ] + } + ], + "storageConnectivitySwitchless": true, + "enableStorageAutoIp": false + }, + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "secrets": [ + { + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + }, + { + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + } + ], + "optionalServices": { + "customLocation": "customLocationName" + } + }, + "sbePartnerInfo": { + "sbeDeploymentInfo": { + "version": "4.0.2309.13", + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestSource": "default", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z" + }, + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "credentialList": [ + { + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + } + ] + } + } + ] + }, + "reportedProperties": { + "validationStatus": { + "status": "Error", + "steps": [ + { + "fullStepIndex": "0", + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "startTimeUtc": "2023-06-09T00:08:19", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ], + "steps": [ + { + "fullStepIndex": "0.1", + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "startTimeUtc": "2023-06-09T00:08:23", + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "steps": [] + }, + { + "fullStepIndex": "0.36", + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "startTimeUtc": "2023-06-09T03:58:37", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ], + "steps": [] + } + ] + } + ] + }, + "deploymentStatus": { + "status": "Error", + "steps": [ + { + "fullStepIndex": "0", + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "startTimeUtc": "2023-06-09T00:08:19", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ], + "steps": [ + { + "fullStepIndex": "0.1", + "name": "Before Cloud Deployment", + "description": null, + "startTimeUtc": "2023-06-09T00:08:23", + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "steps": [] + }, + { + "fullStepIndex": "0.36", + "name": "Clean up temporary content", + "description": null, + "startTimeUtc": "2023-06-09T03:58:37", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ], + "steps": [] + } + ] + } + ] + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "deploymentMode": "Deploy", + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "version": "string", + "scaleUnits": [ + { + "deploymentData": { + "securitySettings": { + "hvciProtection": true, + "drtmProtection": true, + "driftControlEnforced": true, + "credentialGuardEnforced": false, + "smbSigningEnforced": true, + "smbClusterEncryption": false, + "sideChannelMitigationEnforced": true, + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "wdacEnforced": true + }, + "observability": { + "streamingDataClient": true, + "euLocation": false, + "episodicDataUpload": true + }, + "cluster": { + "name": "testHCICluster", + "witnessType": "Cloud", + "witnessPath": "Cloud", + "cloudAccountName": "myasestoragacct", + "azureServiceEndpoint": "core.windows.net" + }, + "storage": { + "configurationMode": "Express" + }, + "namingPrefix": "ms169", + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "infrastructureNetwork": [ + { + "subnetMask": "255.255.248.0", + "gateway": "255.255.248.0", + "ipPools": [ + { + "startingAddress": "10.57.48.60", + "endingAddress": "10.57.48.66" + } + ], + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ] + } + ], + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "hostNetwork": { + "intents": [ + { + "name": "Compute_Management", + "trafficType": [ + "Compute", + "Management" + ], + "adapter": [ + "Port2" + ], + "overrideVirtualSwitchConfiguration": false, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + }, + "overrideQosPolicy": false, + "qosPolicyOverrides": { + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3", + "bandwidthPercentage_SMB": "50" + }, + "overrideAdapterProperty": false, + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + } + } + ], + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "vlanId": "5", + "storageAdapterIPInfo": [ + { + "physicalNode": "string", + "ipv4Address": "10.57.48.60", + "subnetMask": "255.255.248.0" + } + ] + } + ], + "storageConnectivitySwitchless": true, + "enableStorageAutoIp": false + }, + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "secrets": [ + { + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + }, + { + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + } + ], + "optionalServices": { + "customLocation": "customLocationName" + } + }, + "sbePartnerInfo": { + "sbeDeploymentInfo": { + "version": "4.0.2309.13", + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestSource": "default", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z" + }, + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "credentialList": [ + { + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + } + ] + } + } + ] + }, + "reportedProperties": { + "validationStatus": { + "status": "Error", + "steps": [ + { + "fullStepIndex": "0", + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "startTimeUtc": "2023-06-09T00:08:19", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "steps": [ + { + "fullStepIndex": "0.1", + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "startTimeUtc": "2023-06-09T00:08:23", + "endTimeUtc": "2023-06-09T01:10:10" + }, + { + "fullStepIndex": "0.36", + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "startTimeUtc": "2023-06-09T03:58:37", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ] + } + ] + } + ] + }, + "deploymentStatus": { + "status": "Error", + "steps": [ + { + "fullStepIndex": "0", + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "startTimeUtc": "2023-06-09T00:08:19", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ], + "steps": [ + { + "fullStepIndex": "0.1", + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "startTimeUtc": "2023-06-09T00:08:23", + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "steps": [] + }, + { + "fullStepIndex": "0.36", + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "startTimeUtc": "2023-06-09T03:58:37", + "endTimeUtc": "2023-06-09T04:01:47", + "status": "Error", + "exception": [ + "exception1", + "exception2" + ], + "steps": [] + } + ] + } + ] + } + } + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutExtension.json new file mode 100644 index 000000000000..27e3f8d05c02 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutExtension.json @@ -0,0 +1,166 @@ +{ + "title": "Create Arc Extension", + "operationId": "Extensions_Create", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "extensionName": "MicrosoftMonitoringAgent", + "extension": { + "properties": { + "extensionParameters": { + "publisher": "Microsoft.Compute", + "typeHandlerVersion": "1.10", + "type": "MicrosoftMonitoringAgent", + "enableAutomaticUpgrade": false, + "settings": { + "workspaceId": "xx" + }, + "protectedSettings": { + "workspaceKey": "xx" + } + } + } + }, + "api-version": "2025-11-01-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", + "name": "MicrosoftMonitoringAgent", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "extensionParameters": { + "publisher": "Microsoft.Compute", + "type": "string", + "typeHandlerVersion": "1.10.3", + "enableAutomaticUpgrade": false, + "autoUpgradeMinorVersion": false, + "settings": { + "workspaceId": "xx" + } + }, + "aggregateState": "PartiallySucceeded", + "perNodeExtensionDetails": [ + { + "name": "Node-1", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", + "state": "Succeeded", + "typeHandlerVersion": "1.10.0", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "typeHandlerVersion": "1.10.0", + "status": { + "code": "success", + "level": "Information", + "displayStatus": "Provisioning succeeded", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + } + } + }, + { + "name": "Node-2", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", + "state": "Failed", + "typeHandlerVersion": "1.10.3", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "typeHandlerVersion": "1.10.3", + "status": { + "code": "error", + "level": "Error", + "displayStatus": "Provisioning failed", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + } + } + } + ], + "managedBy": "User" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", + "name": "MicrosoftMonitoringAgent", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "extensionParameters": { + "publisher": "Microsoft.Compute", + "type": "string", + "typeHandlerVersion": "1.10.3", + "enableAutomaticUpgrade": false, + "autoUpgradeMinorVersion": false, + "settings": { + "workspaceId": "xx" + } + }, + "aggregateState": "PartiallySucceeded", + "perNodeExtensionDetails": [ + { + "name": "Node-1", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", + "state": "Succeeded", + "typeHandlerVersion": "1.10.0", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "typeHandlerVersion": "1.10.0", + "status": { + "code": "success", + "level": "Information", + "displayStatus": "Provisioning succeeded", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + } + } + }, + { + "name": "Node-2", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", + "state": "Failed", + "typeHandlerVersion": "1.10.3", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "typeHandlerVersion": "1.10.3", + "status": { + "code": "error", + "level": "Error", + "displayStatus": "Provisioning failed", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + } + } + } + ], + "managedBy": "User" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutSecuritySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutSecuritySettings.json new file mode 100644 index 000000000000..d69f84c01891 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutSecuritySettings.json @@ -0,0 +1,74 @@ +{ + "title": "Create Security Settings", + "operationId": "SecuritySettings_CreateOrUpdate", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "securitySettingsName": "default", + "api-version": "2025-11-01-preview", + "resource": { + "properties": { + "securedCoreComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect", + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", + "type": "Microsoft.AzureStackHCI/clusters/securitySettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "securedCoreComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect", + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "securityComplianceStatus": { + "securedCoreCompliance": "Compliant", + "wdacCompliance": "Compliant", + "dataAtRestEncrypted": "Compliant", + "dataInTransitProtected": "Compliant", + "lastUpdated": "2023-11-14T07:09:44.771Z" + }, + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", + "type": "Microsoft.AzureStackHCI/clusters/securitySettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "securedCoreComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect", + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "securityComplianceStatus": { + "securedCoreCompliance": "Compliant", + "wdacCompliance": "Compliant", + "dataAtRestEncrypted": "Compliant", + "dataInTransitProtected": "Compliant", + "lastUpdated": "2023-11-14T07:09:44.771Z" + }, + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutUpdateRuns.json new file mode 100644 index 000000000000..791674b702b0 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutUpdateRuns.json @@ -0,0 +1,70 @@ +{ + "title": "Get Update runs under cluster resource", + "operationId": "UpdateRuns_Put", + "parameters": { + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "resourceGroupName": "testrg", + "clusterName": "testcluster", + "updateName": "Microsoft4.2203.2.32", + "updateRunName": "23b779ba-0d52-4a80-8571-45ca74664ec3", + "api-version": "2025-11-01-preview", + "updateRunsProperties": { + "properties": { + "progress": { + "name": "Unnamed step", + "description": "Update Azure Stack.", + "errorMessage": "", + "status": "Success", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "endTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "lastUpdatedTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "steps": [ + { + "name": "PreUpdate Cloud", + "description": "Prepare for SSU update", + "errorMessage": "", + "status": "Success", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "endTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "lastUpdatedTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "steps": [] + } + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32/updateRuns/23b779ba-0d52-4a80-8571-45ca74664ec3", + "name": "Microsoft4.2203.2.32/23b779ba-0d52-4a80-8571-45ca74664ec3", + "type": "Microsoft.AzureStackHCI/updates/updateRuns", + "location": "West US", + "properties": { + "progress": { + "name": "Unnamed step", + "description": "Update Azure Stack.", + "errorMessage": "", + "status": "Success", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "endTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "lastUpdatedTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "steps": [ + { + "name": "PreUpdate Cloud", + "description": "Prepare for SSU update", + "errorMessage": "", + "status": "Success", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "endTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "lastUpdatedTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "steps": [] + } + ] + } + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutUpdateSummaries.json new file mode 100644 index 000000000000..55259a6f4445 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutUpdateSummaries.json @@ -0,0 +1,54 @@ +{ + "title": "Put Update summaries under cluster resource", + "operationId": "UpdateSummaries_Put", + "parameters": { + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "resourceGroupName": "testrg", + "clusterName": "testcluster", + "updateName": "Microsoft4.2203.2.32", + "api-version": "2025-11-01-preview", + "updateLocationProperties": { + "properties": { + "oemFamily": "DellEMC", + "hardwareModel": "PowerEdge R730xd", + "lastChecked": "2022-04-07T18:04:07Z", + "currentVersion": "4.2203.2.32", + "lastUpdated": "2022-04-06T14:08:18.254Z", + "state": "AppliedSuccessfully" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updateSummaries/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/updateSummaries", + "location": "West US", + "properties": { + "oemFamily": "DellEMC", + "hardwareModel": "PowerEdge R730xd", + "packageVersions": [ + { + "packageType": "OEM", + "version": "2.2.2108.6", + "lastUpdated": "2022-04-07T18:04:07Z" + }, + { + "packageType": "Services", + "version": "4.2203.2.32", + "lastUpdated": "2022-04-07T18:04:07Z" + }, + { + "packageType": "Infrastructure", + "version": "4.2203.2.32", + "lastUpdated": "2022-04-07T18:04:07Z" + } + ], + "currentVersion": "4.2203.2.32", + "state": "AppliedSuccessfully" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutUpdates.json new file mode 100644 index 000000000000..a4162b0e7a2a --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/PutUpdates.json @@ -0,0 +1,73 @@ +{ + "title": "Put a specific update", + "operationId": "Updates_Put", + "parameters": { + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "resourceGroupName": "testrg", + "clusterName": "testcluster", + "updateName": "Microsoft4.2203.2.32", + "api-version": "2025-11-01-preview", + "updateProperties": { + "properties": { + "installedDate": "2022-04-06T14:08:18.254Z", + "description": "AzS Update 4.2203.2.32", + "state": "Installed", + "prerequisites": [ + { + "updateType": "update type", + "version": "prerequisite version", + "packageName": "update package name" + } + ], + "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", + "packageSizeInMb": 18858, + "displayName": "AzS Update - 4.2203.2.32", + "version": "4.2203.2.32", + "publisher": "Microsoft", + "releaseLink": "https://docs.microsoft.com/azure-stack/operator/release-notes?view=azs-2203", + "availabilityType": "Local", + "packageType": "Infrastructure", + "updateStateProperties": { + "notifyMessage": "Brief message with instructions for updates of AvailabilityType Notify", + "progressPercentage": 0 + }, + "additionalProperties": "additional properties" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32", + "name": "Microsoft4.2203.2.32", + "type": "Microsoft.AzureStackHCI/updates", + "location": "West US", + "properties": { + "installedDate": "2022-04-06T14:08:18.254Z", + "description": "AzS Update 4.2203.2.32", + "state": "Installed", + "prerequisites": [ + { + "updateType": "update type", + "version": "prerequisite version", + "packageName": "update package name" + } + ], + "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", + "packageSizeInMb": 18858, + "displayName": "AzS Update - 4.2203.2.32", + "version": "4.2203.2.32", + "publisher": "Microsoft", + "releaseLink": "https://docs.microsoft.com/azure-stack/operator/release-notes?view=azs-2203", + "availabilityType": "Local", + "packageType": "Infrastructure", + "updateStateProperties": { + "notifyMessage": "Brief message with instructions for updates of AvailabilityType Notify", + "progressPercentage": 0 + }, + "additionalProperties": "additional properties" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/TriggerLogCollection.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/TriggerLogCollection.json new file mode 100644 index 000000000000..a10983e7ffb0 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/TriggerLogCollection.json @@ -0,0 +1,97 @@ +{ + "title": "Trigger Log Collection", + "operationId": "Clusters_TriggerLogCollection", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "mycluster", + "api-version": "2025-11-01-preview", + "logCollectionRequest": { + "properties": { + "fromDate": "2020-01-01T17:18:19.1234567Z", + "toDate": "2021-01-01T17:18:19.1234567Z" + } + } + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "location": "East US", + "tags": {}, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "status": "ConnectedRecently", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "desiredProperties": { + "windowsServerSubscription": "Enabled", + "diagnosticLevel": "Basic" + }, + "logCollectionProperties": { + "fromDate": "2020-01-01T17:18:19.1234567Z", + "toDate": "2021-01-01T17:18:19.1234567Z", + "lastLogGenerated": "2020-01-01T17:18:19.1234567Z", + "logCollectionSessionDetails": [ + { + "logStartTime": "2020-01-01T17:18:19.1234567Z", + "logEndTime": "2020-01-01T17:18:19.1234567Z", + "timeCollected": "2020-01-01T17:18:19.1234567Z", + "logSize": 1000, + "logCollectionStatus": "Succeeded", + "correlationId": "a76ab33a-1819-4e82-1212-e3e4ec3d1425", + "logCollectionJobType": "OnDemand", + "endTimeCollected": "2020-01-01T17:25:19.1234567Z" + } + ] + }, + "reportedProperties": { + "clusterName": "cluster1", + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterVersion": "10.0.17777", + "nodes": [ + { + "name": "Node1", + "id": 1, + "windowsServerSubscription": "Enabled", + "nodeType": "ThirdParty", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "coreCount": 8, + "memoryInGiB": 128 + } + ], + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "imdsAttestation": "Disabled", + "diagnosticLevel": "Basic" + }, + "trialDaysRemaining": 30, + "billingModel": "Trial", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/UpdateCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/UpdateCluster.json new file mode 100644 index 000000000000..e33230db7427 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/UpdateCluster.json @@ -0,0 +1,128 @@ +{ + "title": "Update cluster", + "operationId": "Clusters_Update", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview", + "cluster": { + "tags": { + "tag1": "value1", + "tag2": "value2" + }, + "properties": { + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "desiredProperties": { + "windowsServerSubscription": "Enabled", + "diagnosticLevel": "Basic" + } + }, + "identity": { + "type": "SystemAssigned" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "location": "East US", + "identity": { + "principalId": "87a834db-2e45-409e-911b-e16a44562ec3", + "tenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "type": "SystemAssigned" + }, + "tags": { + "tag1": "value1", + "tag2": "value2" + }, + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "status": "ConnectedRecently", + "connectivityStatus": "Connected", + "supportStatus": "InSupport", + "cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "aadClientId": "515da1c2-379e-49b4-9975-09e3e40c86be", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "desiredProperties": { + "windowsServerSubscription": "Enabled", + "diagnosticLevel": "Basic" + }, + "isolatedVmAttestationConfiguration": { + "attestationResourceId": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.Attestation/attestationProviders/testmaa", + "relyingPartyServiceEndpoint": "https://azurestackhci.azurefd.net/eastus", + "attestationServiceEndpoint": "https://dantestnoauth01.eus.attest.azure.net" + }, + "reportedProperties": { + "clusterName": "cluster1", + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterVersion": "10.0.17777", + "clusterType": "ThirdParty", + "manufacturer": "Dell Inc.", + "nodes": [ + { + "name": "Node1", + "id": 1, + "windowsServerSubscription": "Enabled", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "coreCount": 8, + "memoryInGiB": 128, + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z" + }, + { + "name": "Node2", + "id": 2, + "windowsServerSubscription": "Enabled", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44BSC3", + "coreCount": 8, + "memoryInGiB": 128, + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z" + }, + { + "name": "Node3", + "id": 3, + "windowsServerSubscription": "Enabled", + "manufacturer": "Dell Inc.", + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44RFC3", + "coreCount": 16, + "memoryInGiB": 256, + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z" + } + ], + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "imdsAttestation": "Disabled", + "diagnosticLevel": "Basic" + }, + "trialDaysRemaining": 30, + "billingModel": "Trial", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/UpdateContents_ListByLocation_MaximumSet_Gen.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/UpdateContents_ListByLocation_MaximumSet_Gen.json index 2b95f94e6614..cc42acef58b6 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/UpdateContents_ListByLocation_MaximumSet_Gen.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/UpdateContents_ListByLocation_MaximumSet_Gen.json @@ -47,7 +47,7 @@ "type": "Microsoft.AzureStackHCI/UpdateContents" } ], - "nextLink": "https://management.azure.com/subscriptions/2886575D-173A-44A0-80E2-7DBA57F18B46/providers/Microsoft.AzureStackHCI/locations/westus2/updateContents?api-version=2025-11-01-preview&$skiptoken=X'12345'" + "nextLink": "https://management.azure.com/subscriptions/2886575D-173A-44A0-80E2-7DBA57F18B46/providers/Microsoft.AzureStackHCI/locations/westus2/updateContents?api-version=2025-09-22-preview&$skiptoken=X'12345'" } } } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/UploadCertificate.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/UploadCertificate.json new file mode 100644 index 000000000000..6ef4f16860de --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/UploadCertificate.json @@ -0,0 +1,25 @@ +{ + "title": "Upload certificate", + "operationId": "Clusters_UploadCertificate", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "api-version": "2025-11-01-preview", + "uploadCertificateRequest": { + "properties": { + "certificates": [ + "base64cert", + "base64cert" + ] + } + } + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ValidateEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ValidateEdgeDevices.json new file mode 100644 index 000000000000..5b760e52e55f --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ValidateEdgeDevices.json @@ -0,0 +1,28 @@ +{ + "title": "Validate Edge Devices", + "operationId": "EdgeDevices_Validate", + "parameters": { + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "edgeDeviceName": "default", + "api-version": "2025-11-01-preview", + "ValidateRequest": { + "edgeDeviceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/edgeDevices/default", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/edgeDevices/default" + ], + "additionalInfo": "test" + } + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "200": { + "body": { + "status": "success" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ValidatedSolutionRecipes_Get.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ValidatedSolutionRecipes_Get.json new file mode 100644 index 000000000000..2a6a8bca5e01 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ValidatedSolutionRecipes_Get.json @@ -0,0 +1,351 @@ +{ + "title": "ValidatedSolutionRecipes_Get", + "operationId": "ValidatedSolutionRecipes_Get", + "parameters": { + "api-version": "2025-11-01-preview", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "location": "westus2", + "validatedSolutionRecipeName": "10.2408.0" + }, + "responses": { + "200": { + "body": { + "properties": { + "recipeContent": { + "info": { + "solutionType": "HCI", + "version": "10.2408.0" + }, + "capabilities": { + "clusterCapabilities": [ + { + "capabilityName": "AddNode" + }, + { + "capabilityName": "RepairNode" + }, + { + "capabilityName": "SDN" + } + ], + "nodeCapabilities": [ + { + "capabilityName": "ArcGateway" + } + ] + }, + "components": [ + { + "name": "ComposedImage", + "type": "Platform", + "requiredVersion": "10.2411.0.4027", + "installOrder": 10, + "tags": [ + "Azure" + ], + "payloads": [ + { + "identifier": "ComposedImage_ISO", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "ComposedImage_ISO.iso", + "url": "http://foo.bar.com" + }, + { + "identifier": "ComposedImage_TargetOSBundle", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "ComposedImage_TargetOSBundle.iso", + "url": "http://foo.bar.com" + } + ] + }, + { + "name": "PlatformUpdate", + "type": "Platform", + "requiredVersion": "10.2411.0.4027", + "installOrder": 15, + "tags": [ + "Azure" + ], + "payloads": [ + { + "identifier": "PlatformUpdatePackage_zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "PlatformUpdatePackage_zip.zip", + "url": "http://foo.bar.com" + } + ] + }, + { + "name": "CloudDeployment", + "type": "Services", + "requiredVersion": "22.2411.0.9027", + "installOrder": 20, + "tags": [ + "Azure" + ], + "payloads": [ + { + "identifier": "CloudDeployment_zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "CloudDeployment_zip.zip", + "url": "http://foo.bar.com" + }, + { + "identifier": "VerifyCloudDeployment_ps1", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "VerifyCloudDeployment_ps1.ps1", + "url": "http://foo.bar.com" + }, + { + "identifier": "BootstrapCloudDeploymentTool_ps1", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "BootstrapCloudDeploymentTool_ps1.ps1", + "url": "http://foo.bar.com" + } + ] + }, + { + "name": "ServicesUpdate", + "type": "Services", + "requiredVersion": "22.2411.0.9027", + "installOrder": 25, + "tags": [ + "Azure" + ], + "payloads": [ + { + "identifier": "Services_zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "Services_zip.zip", + "url": "http://foo.bar.com" + } + ] + }, + { + "name": "AzureEdgeTelemetryAndDiagnostics", + "type": "ArcExtension", + "installOrder": 80, + "tags": [ + "Azure" + ], + "metadata": { + "extensionType": "TelemetryAndDiagnostics", + "publisher": "Microsoft.AzureStack.Observability", + "enableAutomaticUpgrade": true, + "lcmUpdate": false + } + }, + { + "name": "AzureEdgeRemoteSupport", + "type": "ArcExtension", + "installOrder": 81, + "tags": [ + "Azure" + ], + "metadata": { + "extensionType": "EdgeRemoteSupport", + "publisher": "Microsoft.AzureStack.Observability", + "enableAutomaticUpgrade": true, + "lcmUpdate": false + } + }, + { + "name": "AzureEdgeDeviceManagement", + "type": "ArcExtension", + "requiredVersion": "1.2408.0.3024", + "installOrder": 82, + "tags": [ + "Azure" + ], + "metadata": { + "extensionType": "DeviceManagementExtension", + "publisher": "Microsoft.Edge", + "enableAutomaticUpgrade": false, + "lcmUpdate": false + } + }, + { + "name": "AzureEdgeLifecycleManager", + "type": "ArcExtension", + "requiredVersion": "30.2408.2.687", + "installOrder": 83, + "tags": [ + "Azure" + ], + "metadata": { + "extensionType": "LcmController", + "publisher": "Microsoft.AzureStack.Orchestration", + "enableAutomaticUpgrade": false, + "lcmUpdate": false + } + }, + { + "name": "arcappliance", + "type": "AzCliExtension", + "requiredVersion": "1.3.0", + "installOrder": 210, + "tags": [ + "Azure" + ] + }, + { + "name": "arcappliance", + "type": "AzCliExtension", + "requiredVersion": "1.3.0", + "installOrder": 211, + "tags": [ + "Azure.local" + ] + }, + { + "name": "k8s-extension", + "type": "AzCliExtension", + "requiredVersion": "1.4.5", + "installOrder": 220, + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "customlocation", + "type": "AzCliExtension", + "requiredVersion": "0.1.3", + "installOrder": 230, + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "stack-hci-vm", + "type": "AzCliExtension", + "requiredVersion": "1.4.2", + "installOrder": 240, + "tags": [ + "Azure", + "Azure.local" + ], + "metadata": { + "previewSource": "https://hciarcvmsstorage.z13.web.core.windows.net/cli-extensions/stack_hci_vm-1.4.2-py3-none-any.whl" + } + }, + { + "name": "connectedk8s", + "type": "AzCliExtension", + "requiredVersion": "1.6.2", + "installOrder": 270, + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "MocNodeAndClusteredService", + "type": "MocServiceBinaries", + "requiredVersion": "1.9.0.11008", + "installOrder": 300, + "tags": [ + "Azure" + ], + "metadata": { + "catalog": "aks-hci-asz-stable-catalogs-int", + "ring": "monthly" + } + }, + { + "name": "ArcResourceBridgeVM", + "type": "ArcResourceBridge", + "requiredVersion": "1.3.0", + "installOrder": 400, + "tags": [ + "Azure" + ] + }, + { + "name": "vmss-hci", + "type": "ArbVmExtension", + "requiredVersion": "5.4.3", + "installOrder": 410, + "tags": [ + "Azure" + ], + "metadata": { + "releaseTrain": "prerelease" + } + }, + { + "name": "vmss-hci", + "type": "ArbVmExtension", + "installOrder": 411, + "tags": [ + "Azure.local" + ], + "metadata": { + "releaseTrain": "prerelease" + } + }, + { + "name": "hybridaksextension", + "type": "ArbVmExtension", + "requiredVersion": "2.0.129", + "installOrder": 420, + "tags": [ + "Azure" + ], + "metadata": { + "releaseTrain": "stable" + } + }, + { + "name": "hybridaksextension", + "type": "ArbVmExtension", + "installOrder": 421, + "tags": [ + "Azure.local" + ], + "metadata": { + "releaseTrain": "stable" + } + }, + { + "name": "InfraVmImage23H2", + "type": "InfraVmImage", + "installOrder": 430, + "tags": [ + "Azure" + ], + "metadata": { + "link": "https://aka.ms/infrahcios23", + "name": "AzureStackHCI_25398.469.231004-1141_zn_release_en-us.iso", + "expectedHash": "140D2A6BC53DADCCB9FB66B0D6D2EF61C9D23EA937F8CCC62788866D02997BCA" + } + }, + { + "name": "Az.StackHCI", + "type": "PowerShell", + "requiredVersion": "2.4.1", + "installOrder": 40, + "tags": [ + "Azure.local" + ] + } + ] + }, + "signature": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6" + }, + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/providers/Microsoft.AzureStackHCI/validatedSolutionRecipes/10.2408.0", + "name": "10.2408.0", + "type": "Microsoft.AzureStackHCI/ValidatedSolutionRecipes", + "systemData": { + "createdBy": "zsnvvvbj", + "createdByType": "User", + "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json new file mode 100644 index 000000000000..734238bd5031 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json @@ -0,0 +1,355 @@ +{ + "title": "ValidatedSolutionRecipes_ListBySubscriptionLocationResource", + "operationId": "ValidatedSolutionRecipes_ListBySubscriptionLocationResource", + "parameters": { + "api-version": "2025-11-01-preview", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "location": "westus2" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "recipeContent": { + "info": { + "solutionType": "HCI", + "version": "10.2408.0" + }, + "capabilities": { + "clusterCapabilities": [ + { + "capabilityName": "AddNode" + }, + { + "capabilityName": "RepairNode" + }, + { + "capabilityName": "SDN" + } + ], + "nodeCapabilities": [ + { + "capabilityName": "ArcGateway" + } + ] + }, + "components": [ + { + "name": "ComposedImage", + "type": "Platform", + "requiredVersion": "10.2411.0.4027", + "installOrder": 10, + "tags": [ + "Azure" + ], + "payloads": [ + { + "identifier": "ComposedImage_ISO", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "ComposedImage_ISO.iso", + "url": "http://foo.bar.com" + }, + { + "identifier": "ComposedImage_TargetOSBundle", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "ComposedImage_TargetOSBundle.iso", + "url": "http://foo.bar.com" + } + ] + }, + { + "name": "PlatformUpdate", + "type": "Platform", + "requiredVersion": "10.2411.0.4027", + "installOrder": 15, + "tags": [ + "Azure" + ], + "payloads": [ + { + "identifier": "PlatformUpdatePackage_zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "PlatformUpdatePackage_zip.zip", + "url": "http://foo.bar.com" + } + ] + }, + { + "name": "CloudDeployment", + "type": "Services", + "requiredVersion": "22.2411.0.9027", + "installOrder": 20, + "tags": [ + "Azure" + ], + "payloads": [ + { + "identifier": "CloudDeployment_zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "CloudDeployment_zip.zip", + "url": "http://foo.bar.com" + }, + { + "identifier": "VerifyCloudDeployment_ps1", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "VerifyCloudDeployment_ps1.ps1", + "url": "http://foo.bar.com" + }, + { + "identifier": "BootstrapCloudDeploymentTool_ps1", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "BootstrapCloudDeploymentTool_ps1.ps1", + "url": "http://foo.bar.com" + } + ] + }, + { + "name": "ServicesUpdate", + "type": "Services", + "requiredVersion": "22.2411.0.9027", + "installOrder": 25, + "tags": [ + "Azure" + ], + "payloads": [ + { + "identifier": "Services_zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "fileName": "Services_zip.zip", + "url": "http://foo.bar.com" + } + ] + }, + { + "name": "AzureEdgeTelemetryAndDiagnostics", + "type": "ArcExtension", + "installOrder": 80, + "tags": [ + "Azure" + ], + "metadata": { + "extensionType": "TelemetryAndDiagnostics", + "publisher": "Microsoft.AzureStack.Observability", + "enableAutomaticUpgrade": true, + "lcmUpdate": false + } + }, + { + "name": "AzureEdgeRemoteSupport", + "type": "ArcExtension", + "installOrder": 81, + "tags": [ + "Azure" + ], + "metadata": { + "extensionType": "EdgeRemoteSupport", + "publisher": "Microsoft.AzureStack.Observability", + "enableAutomaticUpgrade": true, + "lcmUpdate": false + } + }, + { + "name": "AzureEdgeDeviceManagement", + "type": "ArcExtension", + "requiredVersion": "1.2408.0.3024", + "installOrder": 82, + "tags": [ + "Azure" + ], + "metadata": { + "extensionType": "DeviceManagementExtension", + "publisher": "Microsoft.Edge", + "enableAutomaticUpgrade": false, + "lcmUpdate": false + } + }, + { + "name": "AzureEdgeLifecycleManager", + "type": "ArcExtension", + "requiredVersion": "30.2408.2.687", + "installOrder": 83, + "tags": [ + "Azure" + ], + "metadata": { + "extensionType": "LcmController", + "publisher": "Microsoft.AzureStack.Orchestration", + "enableAutomaticUpgrade": false, + "lcmUpdate": false + } + }, + { + "name": "arcappliance", + "type": "AzCliExtension", + "requiredVersion": "1.3.0", + "installOrder": 210, + "tags": [ + "Azure" + ] + }, + { + "name": "arcappliance", + "type": "AzCliExtension", + "requiredVersion": "1.3.0", + "installOrder": 211, + "tags": [ + "Azure.local" + ] + }, + { + "name": "k8s-extension", + "type": "AzCliExtension", + "requiredVersion": "1.4.5", + "installOrder": 220, + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "customlocation", + "type": "AzCliExtension", + "requiredVersion": "0.1.3", + "installOrder": 230, + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "stack-hci-vm", + "type": "AzCliExtension", + "requiredVersion": "1.4.2", + "installOrder": 240, + "tags": [ + "Azure", + "Azure.local" + ], + "metadata": { + "previewSource": "https://hciarcvmsstorage.z13.web.core.windows.net/cli-extensions/stack_hci_vm-1.4.2-py3-none-any.whl" + } + }, + { + "name": "connectedk8s", + "type": "AzCliExtension", + "requiredVersion": "1.6.2", + "installOrder": 270, + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "MocNodeAndClusteredService", + "type": "MocServiceBinaries", + "requiredVersion": "1.9.0.11008", + "installOrder": 300, + "tags": [ + "Azure" + ], + "metadata": { + "catalog": "aks-hci-asz-stable-catalogs-int", + "ring": "monthly" + } + }, + { + "name": "ArcResourceBridgeVM", + "type": "ArcResourceBridge", + "requiredVersion": "1.3.0", + "installOrder": 400, + "tags": [ + "Azure" + ] + }, + { + "name": "vmss-hci", + "type": "ArbVmExtension", + "requiredVersion": "5.4.3", + "installOrder": 410, + "tags": [ + "Azure" + ], + "metadata": { + "releaseTrain": "prerelease" + } + }, + { + "name": "vmss-hci", + "type": "ArbVmExtension", + "installOrder": 411, + "tags": [ + "Azure.local" + ], + "metadata": { + "releaseTrain": "prerelease" + } + }, + { + "name": "hybridaksextension", + "type": "ArbVmExtension", + "requiredVersion": "2.0.129", + "installOrder": 420, + "tags": [ + "Azure" + ], + "metadata": { + "releaseTrain": "stable" + } + }, + { + "name": "hybridaksextension", + "type": "ArbVmExtension", + "installOrder": 421, + "tags": [ + "Azure.local" + ], + "metadata": { + "releaseTrain": "stable" + } + }, + { + "name": "InfraVmImage23H2", + "type": "InfraVmImage", + "installOrder": 430, + "tags": [ + "Azure" + ], + "metadata": { + "link": "https://aka.ms/infrahcios23", + "name": "AzureStackHCI_25398.469.231004-1141_zn_release_en-us.iso", + "expectedHash": "140D2A6BC53DADCCB9FB66B0D6D2EF61C9D23EA937F8CCC62788866D02997BCA" + } + }, + { + "name": "Az.StackHCI", + "type": "PowerShell", + "requiredVersion": "2.4.1", + "installOrder": 40, + "tags": [ + "Azure.local" + ] + } + ] + }, + "signature": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6" + }, + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/providers/Microsoft.AzureStackHCI/validatedSolutionRecipes/10.2408.0", + "name": "10.2408.0", + "type": "Microsoft.AzureStackHCI/ValidatedSolutionRecipes", + "systemData": { + "createdBy": "zsnvvvbj", + "createdByType": "User", + "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/reconcileArcSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/reconcileArcSettings.json new file mode 100644 index 000000000000..44fc3dc706d0 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-11-01-preview/reconcileArcSettings.json @@ -0,0 +1,78 @@ +{ + "title": "Reconcile Arc Settings", + "operationId": "ArcSettings_Reconcile", + "parameters": { + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "resourceGroupName": "test-rg", + "clusterName": "myCluster", + "arcSettingName": "default", + "reconcileArcSettingsRequest": { + "properties": { + "clusterNodes": [ + "/subscriptions/sub1/resourceGroup/res1/providers/Microsoft.HybridCompute/machines/m1", + "/subscriptions/sub1/resourceGroup/res1/providers/Microsoft.HybridCompute/machines/m2" + ] + } + }, + "api-version": "2025-11-01-preview" + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "200": { + "body": { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "provisioningState": "Succeeded", + "arcInstanceResourceGroup": "ArcInstance-rg", + "aggregateState": "Creating", + "connectivityProperties": { + "enabled": true, + "serviceConfigurations": [ + { + "serviceName": "WAC", + "port": 6516 + } + ] + }, + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "state": "Succeeded", + "arcNodeServicePrincipalObjectId": "00cc4014-482e-4de9-9932-83415cc75f45" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "state": "Succeeded", + "arcNodeServicePrincipalObjectId": "00cc4014-482e-4de9-9932-83415cc75f45" + } + ], + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + }, + { + "category": "Supportability", + "consentTime": null + } + ] + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ChangeClusterRing.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ChangeClusterRing.json new file mode 100644 index 000000000000..57cb0cf8142d --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ChangeClusterRing.json @@ -0,0 +1,85 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "changeRingRequest": { + "properties": { + "targetRing": "Insider" + } + }, + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "location": "East US", + "properties": { + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "desiredProperties": { + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" + }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "reportedProperties": { + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", + "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "nodes": [ + { + "name": "Node1", + "coreCount": 8, + "id": 1, + "manufacturer": "Dell Inc.", + "memoryInGiB": 128, + "model": "EMC AX740", + "nodeType": "ThirdParty", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "windowsServerSubscription": "Enabled" + } + ] + }, + "ring": "Insider", + "softwareAssuranceProperties": { + "lastUpdated": "2022-08-18T22:01:12.4191603Z", + "softwareAssuranceIntent": "Enable", + "softwareAssuranceStatus": "Enabled" + }, + "status": "ConnectedRecently", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + }, + "operationId": "Clusters_ChangeRing", + "title": "Change cluster ring" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/Clusters_UpdateSecretsLocations.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/Clusters_UpdateSecretsLocations.json new file mode 100644 index 000000000000..215ea165a40a --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/Clusters_UpdateSecretsLocations.json @@ -0,0 +1,103 @@ +{ + "operationId": "Clusters_UpdateSecretsLocations", + "parameters": { + "api-version": "2025-12-01-preview", + "body": { + "properties": [ + { + "secretsLocation": "https://kvname.vault.azure.net/", + "secretsType": "BackupSecrets" + } + ] + }, + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "title": "Update secrets locations for a Cluster", + "responses": { + "200": { + "body": { + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "location": "East US", + "properties": { + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "desiredProperties": { + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" + }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "reportedProperties": { + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", + "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "nodes": [ + { + "name": "Node1", + "coreCount": 8, + "id": 1, + "manufacturer": "Dell Inc.", + "memoryInGiB": 128, + "model": "EMC AX740", + "nodeType": "ThirdParty", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "windowsServerSubscription": "Enabled" + } + ] + }, + "secretsLocations": [ + { + "secretsLocation": "https://kvname.vault.azure.net/", + "secretsType": "BackupSecrets" + } + ], + "sdnProperties": { + "sdnStatus": "Enabled", + "sdnDomainName": "cl-nc.fqdn", + "sdnIntegrationIntent": "Enable" + }, + "confidentialVmProperties": { + "confidentialVmIntent": "Enable", + "confidentialVmStatus": "PartiallyEnabled", + "confidentialVmStatusSummary": "Cluster cannot fully enable Confidential VM support due to hardware limitations on node 1." + }, + "softwareAssuranceProperties": { + "lastUpdated": "2022-08-18T22:01:12.4191603Z", + "softwareAssuranceIntent": "Enable", + "softwareAssuranceStatus": "Enabled" + }, + "status": "ConnectedRecently", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ConfigureRemoteSupport.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ConfigureRemoteSupport.json new file mode 100644 index 000000000000..dc5d801d1ddf --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ConfigureRemoteSupport.json @@ -0,0 +1,115 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "mycluster", + "remoteSupportRequest": { + "properties": { + "accessLevel": "Diagnostics", + "expirationTimeStamp": "2020-01-01T17:18:19.1234567Z", + "remoteSupportType": "Enable" + } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "location": "East US", + "properties": { + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "desiredProperties": { + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" + }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "remoteSupportProperties": { + "accessLevel": "Diagnostics", + "expirationTimeStamp": "2020-01-01T17:18:19.1234567Z", + "remoteSupportNodeSettings": [ + { + "arcResourceId": "/subscriptions//resourcegroups//Microsoft.HybridCompute/machines/arcNode0", + "connectionErrorMessage": "test", + "connectionStatus": "Connected", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "state": "Active", + "transcriptLocation": "test", + "updatedAt": "2020-01-01T17:18:19.1234567Z" + }, + { + "arcResourceId": "/subscriptions//resourcegroups//Microsoft.HybridCompute/machines/arcNode1", + "connectionErrorMessage": "test", + "connectionStatus": "Connected", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "state": "Active", + "transcriptLocation": "test", + "updatedAt": "2020-01-01T17:18:19.1234567Z" + } + ], + "remoteSupportSessionDetails": [ + { + "accessLevel": "Diagnostics", + "duration": 120, + "nodeName": "arcNode0", + "sessionEndTime": "2020-01-01T17:18:19.1234567Z", + "sessionStartTime": "2020-01-01T17:18:19.1234567Z" + } + ], + "remoteSupportType": "Enable" + }, + "reportedProperties": { + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", + "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "nodes": [ + { + "name": "Node1", + "coreCount": 8, + "id": 1, + "manufacturer": "Dell Inc.", + "memoryInGiB": 128, + "model": "EMC AX740", + "nodeType": "ThirdParty", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "windowsServerSubscription": "Enabled" + } + ] + }, + "status": "ConnectedRecently", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + }, + "operationId": "Clusters_ConfigureRemoteSupport", + "title": "Configure Remote Support" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ConsentAndInstallDefaultExtensions.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ConsentAndInstallDefaultExtensions.json new file mode 100644 index 000000000000..729cb879a1b8 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ConsentAndInstallDefaultExtensions.json @@ -0,0 +1,54 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSettingName": "default", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "type": "Microsoft.AzureStackHCI/clusters/arcSettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", + "properties": { + "aggregateState": "Creating", + "arcInstanceResourceGroup": "ArcInstance-rg", + "connectivityProperties": { + "enabled": false, + "serviceConfigurations": [] + }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + } + ], + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "state": "Creating" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "state": "Creating" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "ArcSettings_ConsentAndInstallDefaultExtensions", + "title": "Consent And Install Default Extensions" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateArcIdentity.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateArcIdentity.json new file mode 100644 index 000000000000..0a04844bbf92 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateArcIdentity.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSettingName": "default", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "properties": { + "arcApplicationClientId": "7b93bf67-60ac-4909-a987-ac438e69f9ba", + "arcApplicationObjectId": "400bd05f-395f-45a6-ba75-72601df80107", + "arcApplicationTenantId": "bdb2c88c-9cfd-4e19-927d-51e875f6912b", + "arcServicePrincipalObjectId": "00cc4014-482e-4de9-9932-83415cc75f45" + } + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + }, + "operationId": "ArcSettings_CreateIdentity", + "title": "Create Arc Identity" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateCluster.json new file mode 100644 index 000000000000..f2915ae4b315 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateCluster.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "cluster": { + "identity": { + "type": "SystemAssigned" + }, + "location": "East US", + "properties": { + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com" + } + }, + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "identity": { + "type": "SystemAssigned", + "principalId": "87a834db-2e45-409e-911b-e16a44562ec3", + "tenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94" + }, + "location": "East US", + "properties": { + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "NotYetRegistered", + "desiredProperties": { + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Disabled" + }, + "isManagementCluster": true, + "provisioningState": "Succeeded", + "reportedProperties": {}, + "serviceEndpoint": "https://azurestackhci.azurefd.net/eastus", + "status": "NotYetRegistered", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + } + } + }, + "operationId": "Clusters_Create", + "title": "Create cluster" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateClusterIdentity.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateClusterIdentity.json new file mode 100644 index 000000000000..71a7e8ff743d --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateClusterIdentity.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "properties": { + "aadApplicationObjectId": "00cc4014-482e-4de9-9932-83415cc75f45", + "aadClientId": "7b93bf67-60ac-4909-a987-ac438e69f9ba", + "aadServicePrincipalObjectId": "400bd05f-395f-45a6-ba75-72601df80107", + "aadTenantId": "bdb2c88c-9cfd-4e19-927d-51e875f6912b" + } + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + }, + "operationId": "Clusters_CreateIdentity", + "title": "Create cluster Identity" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateHciEdgeDevice.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateHciEdgeDevice.json new file mode 100644 index 000000000000..a518840ef295 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/CreateHciEdgeDevice.json @@ -0,0 +1,259 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "edgeDeviceName": "default", + "resource": { + "kind": "HCI", + "properties": { + "deviceConfiguration": { + "deviceMetadata": "", + "nicDetails": [ + { + "adapterName": "ethernet", + "componentId": "VMBUS{f8615163-df3e-46c5-913f-f2d2f965ed0g} ", + "defaultGateway": "10.10.10.1", + "defaultIsolationId": "0", + "dnsServers": [ + "100.10.10.1" + ], + "driverVersion": "10.0.20348.1547 ", + "interfaceDescription": "NDIS 6.70 ", + "ip4Address": "10.10.10.10", + "subnetMask": "255.255.255.0" + } + ] + } + } + }, + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.AzureStackHCI/edgeDevices", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", + "kind": "HCI", + "properties": { + "provisioningState": "Succeeded", + "reportedProperties": { + "deviceState": "Connected", + "networkProfile": { + "hostNetwork": { + "enableStorageAutoIp": false, + "intents": [ + { + "adapterPropertyOverrides": { + "jumboPacket": null, + "networkDirect": "0", + "networkDirectTechnology": null + }, + "intentAdapters": [ + "ethernet", + "ethernet2" + ], + "intentName": "managementcomputestorage", + "intentType": 14, + "isComputeIntentSet": true, + "isManagementIntentSet": true, + "isNetworkIntentType": true, + "isOnlyStorage": false, + "isOnlyStretch": false, + "isStorageIntentSet": true, + "isStretchIntentSet": false, + "overrideAdapterProperty": true, + "overrideQosPolicy": true, + "overrideVirtualSwitchConfiguration": true, + "qosPolicyOverrides": { + "bandwidthPercentage_SMB": null, + "priorityValue8021Action_Cluster": null, + "priorityValue8021Action_SMB": null + }, + "scope": 0, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + } + } + ], + "storageConnectivitySwitchless": false, + "storageNetworks": [ + { + "name": "StorageIntent1", + "networkAdapterName": "ethernet", + "storageAdapterIPInfo": [ + { + "ipv4Address": "192.168.120.192", + "physicalNode": "v-host1", + "subnetMask": "255.255.244.0" + } + ], + "storageVlanId": "8" + } + ] + }, + "nicDetails": [ + { + "adapterName": "vmanagement", + "componentId": "vms_mp", + "defaultGateway": "192.168.200.1", + "defaultIsolationId": "0", + "dnsServers": [ + "192.168.200.222" + ], + "driverVersion": "10.0.25398.1", + "interfaceDescription": "Hyper-V Virtual Ethernet Adapter", + "ip4Address": "192.168.200.92", + "macAddress": "000000000041", + "nicStatus": "Up", + "nicType": "Virtual", + "slot": "0", + "subnetMask": "255.255.255.0", + "switchName": null, + "vlanId": "0" + } + ], + "switchDetails": [ + { + "switchName": "vmanagement", + "switchType": "External" + } + ] + }, + "osProfile": { + "assemblyVersion": "2402.1", + "bootType": "UEFI" + }, + "sbeDeploymentPackageInfo": { + "code": "NewerThanLatestPublished", + "message": "The SBE package at path 'C:\\SBE' with version 4.1.2312.10 is published later than the latest SBE manifest published for online discovery. ", + "sbeManifest": "PEFwcGxpY2Fi" + } + } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "default", + "type": "Microsoft.AzureStackHCI/edgeDevices", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", + "kind": "HCI", + "properties": { + "provisioningState": "Succeeded", + "reportedProperties": { + "deviceState": "Connected", + "networkProfile": { + "hostNetwork": { + "enableStorageAutoIp": false, + "intents": [ + { + "adapterPropertyOverrides": { + "jumboPacket": null, + "networkDirect": "0", + "networkDirectTechnology": null + }, + "intentAdapters": [ + "ethernet", + "ethernet2" + ], + "intentName": "managementcomputestorage", + "intentType": 14, + "isComputeIntentSet": true, + "isManagementIntentSet": true, + "isOnlyStorage": false, + "isOnlyStretch": false, + "isStorageIntentSet": true, + "isStretchIntentSet": false, + "overrideAdapterProperty": true, + "overrideQosPolicy": true, + "overrideVirtualSwitchConfiguration": true, + "qosPolicyOverrides": { + "bandwidthPercentage_SMB": null, + "priorityValue8021Action_Cluster": null, + "priorityValue8021Action_SMB": null + }, + "scope": 0, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + } + } + ], + "storageConnectivitySwitchless": false, + "storageNetworks": [ + { + "name": "StorageIntent1", + "networkAdapterName": "ethernet", + "storageAdapterIPInfo": [ + { + "ipv4Address": "192.168.120.192", + "physicalNode": "v-host1", + "subnetMask": "255.255.244.0" + } + ], + "storageVlanId": "8" + } + ] + }, + "nicDetails": [ + { + "adapterName": "vmanagement", + "componentId": "vms_mp", + "defaultGateway": "192.168.200.1", + "defaultIsolationId": "0", + "dnsServers": [ + "192.168.200.222" + ], + "driverVersion": "10.0.25398.1", + "interfaceDescription": "Hyper-V Virtual Ethernet Adapter", + "ip4Address": "192.168.200.92", + "macAddress": "000000000041", + "nicStatus": "Up", + "nicType": "Virtual", + "slot": "0", + "subnetMask": "255.255.255.0", + "switchName": null, + "vlanId": "0" + } + ], + "switchDetails": [ + { + "switchName": "vmanagement", + "switchType": "External" + } + ] + }, + "osProfile": { + "assemblyVersion": "2402.1", + "bootType": "UEFI" + }, + "sbeDeploymentPackageInfo": { + "code": "NewerThanLatestPublished", + "message": "The SBE package at path 'C:\\SBE' with version 4.1.2312.10 is published later than the latest SBE manifest published for online discovery. ", + "sbeManifest": "PEFwcGxpY2Fi" + } + } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "EdgeDevices_CreateOrUpdate", + "title": "Create HCI Edge Device" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteArcSetting.json new file mode 100644 index 000000000000..5c0ee8241ee7 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteArcSetting.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSettingName": "default", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + }, + "operationId": "ArcSettings_Delete", + "title": "Delete ArcSetting" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteCluster.json new file mode 100644 index 000000000000..5b56c4ca4998 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteCluster.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + }, + "operationId": "Clusters_Delete", + "title": "Delete cluster" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteDeploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteDeploymentSettings.json new file mode 100644 index 000000000000..c125905cda62 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteDeploymentSettings.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "deploymentSettingsName": "default", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + }, + "operationId": "DeploymentSettings_Delete", + "title": "Delete Deployment Settings" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteEdgeDevices.json new file mode 100644 index 000000000000..0d9b8c2dfd85 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteEdgeDevices.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "edgeDeviceName": "default", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + }, + "operationId": "EdgeDevices_Delete", + "title": "Delete Edge Devices" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteExtension.json new file mode 100644 index 000000000000..335ccb281a8a --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteExtension.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSettingName": "default", + "clusterName": "myCluster", + "extensionName": "MicrosoftMonitoringAgent", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + }, + "operationId": "Extensions_Delete", + "title": "Delete Arc Extension" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteSecuritySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteSecuritySettings.json new file mode 100644 index 000000000000..3afb62979f41 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteSecuritySettings.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "securitySettingsName": "default", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + }, + "operationId": "SecuritySettings_Delete", + "title": "Delete Security Settings" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteUpdateRuns.json new file mode 100644 index 000000000000..b2919003b297 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteUpdateRuns.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "updateName": "Microsoft4.2203.2.32", + "updateRunName": "23b779ba-0d52-4a80-8571-45ca74664ec3" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + }, + "operationId": "UpdateRuns_Delete", + "title": "Delete an Update" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteUpdateSummaries.json new file mode 100644 index 000000000000..1e7888ab71f0 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteUpdateSummaries.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + }, + "operationId": "UpdateSummaries_Delete", + "title": "Delete an Update" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteUpdates.json new file mode 100644 index 000000000000..d7f112ae9ff7 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/DeleteUpdates.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "updateName": "Microsoft4.2203.2.32" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + }, + "204": {} + }, + "operationId": "Updates_Delete", + "title": "Delete an Update" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json new file mode 100644 index 000000000000..9cfba81a9b2b --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json @@ -0,0 +1,65 @@ +{ + "operationId": "EdgeDeviceJobs_CreateOrUpdate", + "parameters": { + "api-version": "2025-12-01-preview", + "edgeDeviceName": "default", + "jobsName": "collectLog", + "resource": { + "kind": "HCI", + "properties": { + "fromDate": "2024-01-29T10:43:27.9471574Z", + "jobType": "CollectLog", + "toDate": "2024-01-29T10:43:27.9471574Z" + } + }, + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" + }, + "title": "EdgeDeviceJobs_CreateOrUpdate_CollectLog", + "responses": { + "200": { + "body": { + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/collectLog", + "kind": "HCI", + "properties": { + "fromDate": "2024-01-29T10:43:27.9471574Z", + "jobType": "CollectLog", + "toDate": "2024-01-29T10:43:27.9471574Z" + }, + "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", + "createdBy": "zsnvvvbj", + "createdByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/collectLog", + "kind": "HCI", + "properties": { + "fromDate": "2024-01-29T10:43:27.9471574Z", + "jobType": "CollectLog", + "toDate": "2024-01-29T10:43:27.9471574Z" + }, + "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", + "createdBy": "zsnvvvbj", + "createdByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User" + } + }, + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json new file mode 100644 index 000000000000..3c91bdd3e1af --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json @@ -0,0 +1,68 @@ +{ + "operationId": "EdgeDeviceJobs_CreateOrUpdate", + "parameters": { + "api-version": "2025-12-01-preview", + "edgeDeviceName": "default", + "jobsName": "collectLog", + "resource": { + "kind": "HCI", + "properties": { + "type": "Enable", + "accessLevel": "Diagnostics", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z", + "jobType": "RemoteSupport" + } + }, + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" + }, + "title": "EdgeDeviceJobs_CreateOrUpdate_RemoteSupport", + "responses": { + "200": { + "body": { + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/remoteSupport", + "kind": "HCI", + "properties": { + "type": "Enable", + "accessLevel": "Diagnostics", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z", + "jobType": "RemoteSupport" + }, + "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", + "createdBy": "zsnvvvbj", + "createdByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/remoteSupport", + "kind": "HCI", + "properties": { + "type": "Enable", + "accessLevel": "Diagnostics", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z", + "jobType": "RemoteSupport" + }, + "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", + "createdBy": "zsnvvvbj", + "createdByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User" + } + }, + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_Delete.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_Delete.json new file mode 100644 index 000000000000..6d836632212e --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_Delete.json @@ -0,0 +1,18 @@ +{ + "operationId": "EdgeDeviceJobs_Delete", + "parameters": { + "api-version": "2025-12-01-preview", + "edgeDeviceName": "lAq", + "jobsName": "Ihlm3R-bZ4vTC4ABA456", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" + }, + "title": "EdgeDeviceJobs_Delete", + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_Get_RemoteSupport.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_Get_RemoteSupport.json new file mode 100644 index 000000000000..917584cb4e09 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_Get_RemoteSupport.json @@ -0,0 +1,34 @@ +{ + "operationId": "EdgeDeviceJobs_Get", + "parameters": { + "api-version": "2025-12-01-preview", + "edgeDeviceName": "-5M1G7G10OZ-o5b-HS3-c72", + "jobsName": "-oUxs", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" + }, + "title": "EdgeDeviceJobs_Get_RemoteSupport", + "responses": { + "200": { + "body": { + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/RemoteSupport", + "kind": "HCI", + "properties": { + "type": "Enable", + "accessLevel": "Diagnostics", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z", + "jobType": "RemoteSupport" + }, + "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", + "createdBy": "zsnvvvbj", + "createdByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_ListByEdgeDevice.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_ListByEdgeDevice.json new file mode 100644 index 000000000000..ecf7d0af1d2d --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/EdgeDeviceJobs_ListByEdgeDevice.json @@ -0,0 +1,38 @@ +{ + "operationId": "EdgeDeviceJobs_ListByEdgeDevice", + "parameters": { + "api-version": "2025-12-01-preview", + "edgeDeviceName": "YE-855IEIN585-", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" + }, + "title": "EdgeDeviceJobs_ListByEdgeDevice", + "responses": { + "200": { + "body": { + "nextLink": "https://microsoft.com/alqov", + "value": [ + { + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/collectLog", + "kind": "HCI", + "properties": { + "type": "Enable", + "accessLevel": "Diagnostics", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z", + "jobType": "RemoteSupport" + }, + "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", + "createdBy": "zsnvvvbj", + "createdByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User" + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ExtendSoftwareAssuranceBenefit.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ExtendSoftwareAssuranceBenefit.json new file mode 100644 index 000000000000..9eaa75dc0c6d --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ExtendSoftwareAssuranceBenefit.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "softwareAssuranceChangeRequest": { + "properties": { + "softwareAssuranceIntent": "Enable" + } + }, + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "location": "East US", + "properties": { + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "desiredProperties": { + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" + }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "reportedProperties": { + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", + "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "nodes": [ + { + "name": "Node1", + "coreCount": 8, + "id": 1, + "manufacturer": "Dell Inc.", + "memoryInGiB": 128, + "model": "EMC AX740", + "nodeType": "ThirdParty", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "windowsServerSubscription": "Enabled" + } + ] + }, + "softwareAssuranceProperties": { + "lastUpdated": "2022-08-18T22:01:12.4191603Z", + "softwareAssuranceIntent": "Enable", + "softwareAssuranceStatus": "Enabled" + }, + "status": "ConnectedRecently", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + }, + "operationId": "Clusters_ExtendSoftwareAssuranceBenefit", + "title": "Create cluster Identity" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/Extensions_Upgrade.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/Extensions_Upgrade.json new file mode 100644 index 000000000000..62649be58256 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/Extensions_Upgrade.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSettingName": "default", + "clusterName": "myCluster", + "extensionName": "MicrosoftMonitoringAgent", + "extensionUpgradeParameters": { + "targetVersion": "1.0.18062.0" + }, + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://foo.com/operationStatuses", + "Retry-After": 200, + "location": "https://foo.com/operationStatuses" + } + } + }, + "operationId": "Extensions_Upgrade", + "title": "Upgrade Machine Extensions" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GeneratePassword.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GeneratePassword.json new file mode 100644 index 000000000000..b8a3b385772a --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GeneratePassword.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSettingName": "default", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "endDateTime": "2121-02-17T16:24:23.6264377+05:30", + "keyId": "00000000-2d47-4fb2-8ed2-fed71a5c197b", + "secretText": "secretText", + "startDateTime": "2022-02-17T16:24:23.6264005+05:30" + } + } + }, + "operationId": "ArcSettings_GeneratePassword", + "title": "Generate Password" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetArcSetting.json new file mode 100644 index 000000000000..70a01442ac43 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetArcSetting.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSettingName": "default", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "type": "Microsoft.AzureStackHCI/clusters/arcSettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", + "properties": { + "aggregateState": "PartiallyConnected", + "arcInstanceResourceGroup": "ArcInstance-rg", + "connectivityProperties": { + "enabled": false, + "serviceConfigurations": [ + { + "port": 6516, + "serviceName": "WAC" + } + ] + }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + }, + { + "category": "Supportability", + "consentTime": null + } + ], + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "state": "Connected" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "state": "Disconnected" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "ArcSettings_Get", + "title": "Get ArcSetting" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetCluster.json new file mode 100644 index 000000000000..c9ac25a8513e --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetCluster.json @@ -0,0 +1,127 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "location": "East US", + "properties": { + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "Connected", + "desiredProperties": { + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" + }, + "identityProvider": "ActiveDirectory", + "isolatedVmAttestationConfiguration": { + "attestationResourceId": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.Attestation/attestationProviders/testmaa", + "attestationServiceEndpoint": "https://dantestnoauth01.eus.attest.azure.net", + "relyingPartyServiceEndpoint": "https://azurestackhci.azurefd.net/eastus" + }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "logCollectionProperties": { + "fromDate": "2020-01-01T17:18:19.1234567Z", + "lastLogGenerated": "2020-01-01T17:18:19.1234567Z", + "logCollectionSessionDetails": [ + { + "correlationId": "a76ab33a-1819-4e82-1212-e3e4ec3d1425", + "endTimeCollected": "2020-01-01T17:25:19.1234567Z", + "logCollectionStatus": "Succeeded", + "logEndTime": "2020-01-01T17:18:19.1234567Z", + "logSize": 1000, + "logStartTime": "2020-01-01T17:18:19.1234567Z", + "timeCollected": "2020-01-01T17:18:19.1234567Z" + } + ], + "toDate": "2021-01-01T17:18:19.1234567Z" + }, + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "reportedProperties": { + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", + "clusterType": "ThirdParty", + "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "hardwareClass": "Medium", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "manufacturer": "Dell Inc.", + "nodes": [ + { + "name": "Node1", + "coreCount": 8, + "id": 1, + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", + "manufacturer": "Dell Inc.", + "memoryInGiB": 128, + "model": "EMC AX740", + "oemActivation": "Disabled", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "windowsServerSubscription": "Enabled" + }, + { + "name": "Node2", + "coreCount": 8, + "id": 2, + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", + "manufacturer": "Dell Inc.", + "memoryInGiB": 128, + "model": "EMC AX740", + "oemActivation": "Disabled", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44BSC3", + "windowsServerSubscription": "Enabled" + }, + { + "name": "Node3", + "coreCount": 16, + "id": 3, + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", + "manufacturer": "Dell Inc.", + "memoryInGiB": 256, + "model": "EMC AX740", + "oemActivation": "Disabled", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44RFC3", + "windowsServerSubscription": "Enabled" + } + ], + "oemActivation": "Disabled" + }, + "ring": "Insider", + "status": "ConnectedRecently", + "supportStatus": "OutOfSupport", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + } + } + }, + "operationId": "Clusters_Get", + "title": "Get cluster" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetDeploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetDeploymentSettings.json new file mode 100644 index 000000000000..57fc10661558 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetDeploymentSettings.json @@ -0,0 +1,273 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "deploymentSettingsName": "default", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", + "properties": { + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "scaleUnits": [ + { + "deploymentData": { + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "cluster": { + "name": "testHCICluster", + "azureServiceEndpoint": "core.windows.net", + "cloudAccountName": "myasestoragacct", + "hardwareClass": "Medium", + "witnessPath": "Cloud", + "witnessType": "Cloud" + }, + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "hostNetwork": { + "enableStorageAutoIp": false, + "intents": [ + { + "name": "Compute_Management", + "adapter": [ + "Port2" + ], + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + }, + "overrideAdapterProperty": false, + "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, + "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3" + }, + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + } + } + ], + "storageConnectivitySwitchless": true, + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "storageAdapterIPInfo": [ + { + "ipv4Address": "10.57.48.60", + "physicalNode": "string", + "subnetMask": "255.255.248.0" + } + ], + "vlanId": "5" + } + ] + }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" + }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "secrets": [ + { + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + }, + { + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" + } + }, + "sbePartnerInfo": { + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } + } + } + ], + "version": "string" + }, + "deploymentMode": "Deploy", + "operationType": "ClusterProvisioning", + "provisioningState": "Succeeded", + "reportedProperties": { + "deploymentStatus": { + "status": "Error", + "steps": [ + { + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "endTimeUtc": "2023-06-09T04:01:47", + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", + "steps": [ + { + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "endTimeUtc": "2023-06-09T01:10:10", + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23" + }, + { + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error" + } + ] + } + ] + }, + "validationStatus": { + "status": "Error", + "steps": [ + { + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "endTimeUtc": "2023-06-09T04:01:47", + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", + "steps": [ + { + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "endTimeUtc": "2023-06-09T01:10:10", + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23" + }, + { + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error" + } + ] + } + ] + } + } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "DeploymentSettings_Get", + "title": "Get Deployment Settings" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetEdgeDevices.json new file mode 100644 index 000000000000..2724555feceb --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetEdgeDevices.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "edgeDeviceName": "default", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.AzureStackHCI/edgeDevices", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", + "kind": "HCI", + "properties": { + "deviceConfiguration": { + "deviceMetadata": "", + "nicDetails": [ + { + "adapterName": "ethernet", + "componentId": "VMBUS{f8615163-df3e-46c5-913f-f2d2f965ed0g} ", + "defaultGateway": "10.10.10.1", + "defaultIsolationId": "0", + "dnsServers": [ + "100.10.10.1" + ], + "driverVersion": "10.0.20348.1547 ", + "interfaceDescription": "NDIS 6.70 ", + "ip4Address": "10.10.10.10", + "subnetMask": "255.255.255.0" + } + ] + }, + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "EdgeDevices_Get", + "title": "Get Edge Device" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetExtension.json new file mode 100644 index 000000000000..05870999dff6 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetExtension.json @@ -0,0 +1,82 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSettingName": "default", + "clusterName": "myCluster", + "extensionName": "MicrosoftMonitoringAgent", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "MicrosoftMonitoringAgent", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", + "properties": { + "aggregateState": "PartiallySucceeded", + "extensionParameters": { + "type": "string", + "autoUpgradeMinorVersion": false, + "enableAutomaticUpgrade": true, + "publisher": "Microsoft.Compute", + "settings": { + "workspaceId": "xx" + }, + "typeHandlerVersion": "1.10.3" + }, + "managedBy": "Azure", + "perNodeExtensionDetails": [ + { + "name": "Node-1", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "status": { + "code": "success", + "displayStatus": "Provisioning succeeded", + "level": "Information", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + }, + "typeHandlerVersion": "1.10.0" + }, + "state": "Succeeded", + "typeHandlerVersion": "1.10.0" + }, + { + "name": "Node-2", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "status": { + "code": "error", + "displayStatus": "Provisioning failed", + "level": "Error", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + }, + "typeHandlerVersion": "1.10.3" + }, + "state": "Failed", + "typeHandlerVersion": "1.10.3" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Extensions_Get", + "title": "Get ArcSettings Extension" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetOffer.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetOffer.json new file mode 100644 index 000000000000..6ef7654caa0f --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetOffer.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "offerName": "offer1", + "publisherName": "publisher1", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "offer1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1", + "properties": { + "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", + "contentVersion": "2018-01-01", + "provisioningState": "Succeeded", + "publisherId": "publisher1", + "skuMappings": [ + { + "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", + "marketplaceSkuId": "enterprise", + "marketplaceSkuVersions": [ + "15.0.220208" + ] + } + ] + } + } + } + }, + "operationId": "Offers_Get", + "title": "Get Offer" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetPublisher.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetPublisher.json new file mode 100644 index 000000000000..847c421cc828 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetPublisher.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "publisherName": "publisher1", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "publisher1", + "type": "Microsoft.AzureStackHCI/clusters/publishers", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1" + } + } + }, + "operationId": "Publishers_Get", + "title": "Get Publisher" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetSecuritySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetSecuritySettings.json new file mode 100644 index 000000000000..17479d4a0f29 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetSecuritySettings.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "securitySettingsName": "default", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "type": "Microsoft.AzureStackHCI/clusters/securitySettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", + "properties": { + "provisioningState": "Succeeded", + "securedCoreComplianceAssignment": "Audit", + "securityComplianceStatus": { + "dataAtRestEncrypted": "Compliant", + "dataInTransitProtected": "Compliant", + "lastUpdated": "2023-11-14T07:09:44.771Z", + "securedCoreCompliance": "Compliant", + "wdacCompliance": "Compliant" + }, + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "SecuritySettings_Get", + "title": "Get Security Settings" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetSku.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetSku.json new file mode 100644 index 000000000000..0624aa925483 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetSku.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "offerName": "offer1", + "publisherName": "publisher1", + "resourceGroupName": "test-rg", + "skuName": "sku1", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "sku1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers/skus", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1/skus/sku1", + "properties": { + "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", + "contentVersion": "2018-01-01", + "offerId": "offer1", + "provisioningState": "Succeeded", + "publisherId": "publisher1", + "skuMappings": [ + { + "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", + "marketplaceSkuId": "enterprise", + "marketplaceSkuVersions": [ + "15.0.220208" + ] + } + ] + } + } + } + }, + "operationId": "Skus_Get", + "title": "Get Sku" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetUpdateRuns.json new file mode 100644 index 000000000000..950eb9fa01ad --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetUpdateRuns.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "updateName": "Microsoft4.2203.2.32", + "updateRunName": "23b779ba-0d52-4a80-8571-45ca74664ec3" + }, + "responses": { + "200": { + "body": { + "name": "Microsoft4.2203.2.32/23b779ba-0d52-4a80-8571-45ca74664ec3", + "type": "Microsoft.AzureStackHCI/updates/updateRuns", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32/updateRuns/23b779ba-0d52-4a80-8571-45ca74664ec3", + "location": "West US", + "properties": { + "progress": { + "name": "Unnamed step", + "description": "Update Azure Stack.", + "endTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "errorMessage": "", + "lastUpdatedTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", + "steps": [ + { + "name": "PreUpdate Cloud", + "description": "Prepare for SSU update", + "endTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "errorMessage": "", + "lastUpdatedTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", + "steps": [] + } + ] + } + } + } + } + }, + "operationId": "UpdateRuns_Get", + "title": "Get Update runs under cluster resource" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetUpdateSummaries.json new file mode 100644 index 000000000000..bf8c60731e99 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetUpdateSummaries.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.AzureStackHCI/updateSummaries", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updateSummaries/default", + "location": "West US", + "properties": { + "currentVersion": "4.2203.2.32", + "hardwareModel": "PowerEdge R730xd", + "oemFamily": "DellEMC", + "packageVersions": [ + { + "lastUpdated": "2022-04-07T18:04:07Z", + "packageType": "OEM", + "version": "2.2.2108.6" + }, + { + "lastUpdated": "2022-04-07T18:04:07Z", + "packageType": "Services", + "version": "4.2203.2.32" + }, + { + "lastUpdated": "2022-04-07T18:04:07Z", + "packageType": "Infrastructure", + "version": "4.2203.2.32" + } + ], + "state": "AppliedSuccessfully" + } + } + } + }, + "operationId": "UpdateSummaries_Get", + "title": "Get Update summaries under cluster resource" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetUpdates.json new file mode 100644 index 000000000000..4e5227c880e7 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/GetUpdates.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "updateName": "Microsoft4.2203.2.32" + }, + "responses": { + "200": { + "body": { + "name": "Microsoft4.2203.2.32", + "type": "Microsoft.AzureStackHCI/updates", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32", + "location": "West US", + "properties": { + "description": "AzS Update 4.2203.2.32", + "additionalProperties": "additional properties", + "availabilityType": "Local", + "displayName": "AzS Update - 4.2203.2.32", + "installedDate": "2022-04-06T14:08:18.254Z", + "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", + "packageSizeInMb": 18858, + "packageType": "Infrastructure", + "prerequisites": [ + { + "packageName": "update package name", + "updateType": "update type", + "version": "prerequisite version" + } + ], + "publisher": "Microsoft", + "releaseLink": "https://docs.microsoft.com/azure-stack/operator/release-notes?view=azs-2203", + "state": "Installed", + "updateStateProperties": { + "notifyMessage": "Brief message with instructions for updates of AvailabilityType Notify", + "progressPercentage": 0 + }, + "version": "4.2203.2.32" + } + } + } + }, + "operationId": "Updates_Get", + "title": "Get a specific update" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/InitializeDisableProcess.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/InitializeDisableProcess.json new file mode 100644 index 000000000000..d619f1d97d89 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/InitializeDisableProcess.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSettingName": "default", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://foo.com/operationStatuses", + "Retry-After": 200, + "location": "https://foo.com/operationStatuses" + } + } + }, + "operationId": "ArcSettings_InitializeDisableProcess", + "title": "Trigger ARC Disable" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListArcSettingsByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListArcSettingsByCluster.json new file mode 100644 index 000000000000..7651b359b535 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListArcSettingsByCluster.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Microsoft.AzureStackHCI/clusters/arcSettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", + "properties": { + "aggregateState": "PartiallyConnected", + "arcInstanceResourceGroup": "ArcInstance-rg", + "connectivityProperties": { + "enabled": false, + "serviceConfigurations": [ + { + "port": 6516, + "serviceName": "WAC" + } + ] + }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + }, + { + "category": "Supportability", + "consentTime": null + } + ], + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "state": "Connected" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "state": "Disconnected" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "ArcSettings_ListByCluster", + "title": "List ArcSetting resources by HCI Cluster" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListClustersByResourceGroup.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListClustersByResourceGroup.json new file mode 100644 index 000000000000..2085159db461 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListClustersByResourceGroup.json @@ -0,0 +1,139 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myCluster1", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster1", + "location": "East US", + "properties": { + "aadClientId": "515da1c2-379e-49b4-9975-09e3e40c86be", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "NotYetRegistered", + "desiredProperties": { + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" + }, + "identityProvider": "ActiveDirectory", + "provisioningState": "Succeeded", + "reportedProperties": {}, + "ring": "Production", + "status": "NotYetRegistered", + "supportStatus": "InSupport", + "trialDaysRemaining": 29 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + }, + { + "name": "myCluster2", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster2", + "location": "East US", + "properties": { + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "PartiallyConnected", + "desiredProperties": { + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" + }, + "identityProvider": "ActiveDirectory", + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "reportedProperties": { + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", + "clusterType": "ThirdParty", + "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "manufacturer": "Dell Inc.", + "nodes": [ + { + "name": "Node1", + "coreCount": 8, + "id": 0, + "manufacturer": "Dell Inc.", + "memoryInGiB": 128, + "model": "EMC AX740", + "oemActivation": "Enabled", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "windowsServerSubscription": "Enabled" + }, + { + "name": "Node2", + "coreCount": 8, + "id": 1, + "manufacturer": "Dell Inc.", + "memoryInGiB": 128, + "model": "EMC AX740", + "oemActivation": "Enabled", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44BSC3", + "windowsServerSubscription": "Enabled" + }, + { + "name": "Node3", + "coreCount": 16, + "id": 2, + "manufacturer": "Dell Inc.", + "memoryInGiB": 256, + "model": "EMC AX740", + "oemActivation": "Disabled", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44RFC3", + "windowsServerSubscription": "Enabled" + } + ], + "oemActivation": "Disabled" + }, + "ring": "Production", + "status": "ConnectedRecently", + "supportStatus": "InSupport", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + } + ] + } + } + }, + "operationId": "Clusters_ListByResourceGroup", + "title": "List clusters in a given resource group" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListClustersBySubscription.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListClustersBySubscription.json new file mode 100644 index 000000000000..c72763390293 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListClustersBySubscription.json @@ -0,0 +1,138 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myCluster1", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg1/providers/Microsoft.AzureStackHCI/clusters/myCluster1", + "location": "East US", + "properties": { + "aadClientId": "515da1c2-379e-49b4-9975-09e3e40c86be", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "NotYetRegistered", + "desiredProperties": { + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" + }, + "identityProvider": "ActiveDirectory", + "provisioningState": "Succeeded", + "reportedProperties": {}, + "ring": "Production", + "status": "NotYetRegistered", + "supportStatus": "InSupport", + "trialDaysRemaining": 29 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + }, + { + "name": "myCluster2", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg2/providers/Microsoft.AzureStackHCI/clusters/myCluster2", + "location": "West US", + "properties": { + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "Connected", + "desiredProperties": { + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" + }, + "identityProvider": "ActiveDirectory", + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "reportedProperties": { + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", + "clusterType": "ThirdParty", + "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "manufacturer": "Dell Inc.", + "nodes": [ + { + "name": "Node1", + "coreCount": 8, + "id": 0, + "manufacturer": "Dell Inc.", + "memoryInGiB": 128, + "model": "EMC AX740", + "oemActivation": "Enabled", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "windowsServerSubscription": "Enabled" + }, + { + "name": "Node2", + "coreCount": 8, + "id": 1, + "manufacturer": "Dell Inc.", + "memoryInGiB": 128, + "model": "EMC AX740", + "oemActivation": "Enabled", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44BSC3", + "windowsServerSubscription": "Enabled" + }, + { + "name": "Node3", + "coreCount": 16, + "id": 2, + "manufacturer": "Dell Inc.", + "memoryInGiB": 256, + "model": "EMC AX740", + "oemActivation": "Enabled", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44RFC3", + "windowsServerSubscription": "Enabled" + } + ], + "oemActivation": "Enabled" + }, + "ring": "Production", + "status": "ConnectedRecently", + "supportStatus": "InSupport", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + } + ] + } + } + }, + "operationId": "Clusters_ListBySubscription", + "title": "List clusters in a given subscription" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListDeploymentSettingsByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListDeploymentSettingsByCluster.json new file mode 100644 index 000000000000..f2a5763c4fea --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListDeploymentSettingsByCluster.json @@ -0,0 +1,205 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "default", + "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", + "properties": { + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "scaleUnits": [ + { + "deploymentData": { + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "cluster": { + "name": "testHCICluster", + "azureServiceEndpoint": "core.windows.net", + "cloudAccountName": "myasestoragacct", + "witnessPath": "Cloud", + "witnessType": "Cloud" + }, + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "hostNetwork": { + "enableStorageAutoIp": false, + "intents": [ + { + "name": "Compute_Management", + "adapter": [ + "Port2" + ], + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + }, + "overrideAdapterProperty": false, + "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, + "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3" + }, + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + } + } + ], + "storageConnectivitySwitchless": true, + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "storageAdapterIPInfo": [ + { + "ipv4Address": "10.57.48.60", + "physicalNode": "string", + "subnetMask": "255.255.248.0" + } + ], + "vlanId": "5" + } + ] + }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" + }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "secrets": [ + { + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + }, + { + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" + } + }, + "sbePartnerInfo": { + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } + } + } + ], + "version": "string" + }, + "deploymentMode": "Deploy", + "operationType": "ClusterProvisioning", + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "DeploymentSettings_ListByClusters", + "title": "List Deployment Settings" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListEdgeDevices.json new file mode 100644 index 000000000000..eeb80bf688ef --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListEdgeDevices.json @@ -0,0 +1,93 @@ +{ + "title": "List Edge Devices", + "operationId": "EdgeDevices_List", + "parameters": { + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "edgeDeviceName": "default", + "api-version": "2025-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", + "name": "default", + "type": "Microsoft.AzureStackHCI/edgeDevices", + "kind": "HCI", + "systemData": { + "createdBy": "user1", + "createdByType": "User", + "createdAt": "2021-01-01T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" + }, + "properties": { + "reportedProperties": { + "networkProfile": { + "nicDetails": [ + { + "adapterName": "vmanagement", + "interfaceDescription": "Hyper-V Virtual Ethernet Adapter", + "componentId": "vms_mp", + "driverVersion": "10.0.25398.1", + "ip4Address": "192.168.200.92", + "subnetMask": "255.255.255.0", + "defaultGateway": "192.168.200.1", + "dnsServers": [ + "192.168.200.222" + ], + "defaultIsolationId": "0", + "slot": "0", + "macAddress": "000000000041", + "switchName": null, + "nicType": "Virtual", + "vlanId": "0", + "nicStatus": "Up" + } + ], + "switchDetails": [ + { + "switchName": "vmanagement", + "switchType": "External" + } + ], + "sdnProperties": { + "sdnStatus": "Enabled", + "sdnDomainName": "cl-nc.fqdn", + "sdnApiAddress": "192.0.2.10" + } + }, + "osProfile": { + "bootType": "UEFI", + "assemblyVersion": "2402.1" + }, + "sbeDeploymentPackageInfo": { + "code": "NewerThanLatestPublished", + "message": "The SBE package at path 'C:\\SBE' with version 4.1.2312.10 is published later than the latest SBE manifest published for online discovery. ", + "sbeManifest": "PEFwcGxpY2Fi" + }, + "lastSyncTimestamp": "2021-01-01T17:18:19.1234567Z", + "confidentialVmProfile": { + "igvmStatus": "Enabled", + "statusDetails": [ + { + "code": "IgvmAgentDeployed", + "message": "IgvmAgent is deployed" + }, + { + "code": "ConfidentialVmHardwareCapabilityFound", + "message": "Confidential VM supported hardware detected" + } + ] + } + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListExtensionsByArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListExtensionsByArcSetting.json new file mode 100644 index 000000000000..9b6c40146e53 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListExtensionsByArcSetting.json @@ -0,0 +1,97 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSettingName": "default", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "MicrosoftMonitoringAgent", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", + "properties": { + "aggregateState": "PartiallyConnected", + "extensionParameters": { + "type": "string", + "autoUpgradeMinorVersion": false, + "publisher": "Microsoft.Compute", + "settings": { + "workspaceId": "xx" + }, + "typeHandlerVersion": "1.10.3" + }, + "managedBy": "Azure", + "perNodeExtensionDetails": [ + { + "name": "Node-1", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", + "state": "Connected" + }, + { + "name": "Node-2", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", + "state": "Disconnected" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + }, + { + "name": "CustomScriptExtension", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/Extensions/SecurityExtension", + "properties": { + "aggregateState": "PartiallySucceeded", + "extensionParameters": { + "type": "string", + "autoUpgradeMinorVersion": false, + "publisher": "Microsoft.CustomScriptExtension", + "settings": { + "scriptLocation": "xx" + }, + "typeHandlerVersion": "1.10.3" + }, + "managedBy": "Azure", + "perNodeExtensionDetails": [ + { + "name": "Node-1", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/SecurityExtension", + "state": "Succeeded" + }, + { + "name": "Node-2", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/SecurityExtension", + "state": "Failed" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "Extensions_ListByArcSetting", + "title": "List Extensions under ArcSetting resource" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListOffersByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListOffersByCluster.json new file mode 100644 index 000000000000..0dbf179b04aa --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListOffersByCluster.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "offer1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1", + "properties": { + "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", + "contentVersion": "2018-01-01", + "provisioningState": "Succeeded", + "publisherId": "publisher1", + "skuMappings": [ + { + "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", + "marketplaceSkuId": "enterprise", + "marketplaceSkuVersions": [ + "15.0.220208" + ] + } + ] + } + } + ] + } + } + }, + "operationId": "Offers_ListByCluster", + "title": "List Offer resources by HCI Cluster" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListOffersByPublisher.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListOffersByPublisher.json new file mode 100644 index 000000000000..c89c460a3d65 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListOffersByPublisher.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "publisherName": "publisher1", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "offer1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1", + "properties": { + "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", + "contentVersion": "2018-01-01", + "provisioningState": "Succeeded", + "publisherId": "publisher1", + "skuMappings": [ + { + "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", + "marketplaceSkuId": "enterprise", + "marketplaceSkuVersions": [ + "15.0.220208" + ] + } + ] + } + } + ] + } + } + }, + "operationId": "Offers_ListByPublisher", + "title": "List Offer resources by publisher for the HCI Cluster" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListPublishersByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListPublishersByCluster.json new file mode 100644 index 000000000000..94a1efa2ab30 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListPublishersByCluster.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "publisher1", + "type": "Microsoft.AzureStackHCI/clusters/publishers", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1" + } + ] + } + } + }, + "operationId": "Publishers_ListByCluster", + "title": "List Publisher resources by HCI Cluster" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListSecuritySettingsByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListSecuritySettingsByCluster.json new file mode 100644 index 000000000000..3c170d0876af --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListSecuritySettingsByCluster.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Microsoft.AzureStackHCI/clusters/securitySettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", + "properties": { + "provisioningState": "Succeeded", + "securedCoreComplianceAssignment": "Audit", + "securityComplianceStatus": { + "dataAtRestEncrypted": "Compliant", + "dataInTransitProtected": "Compliant", + "lastUpdated": "2023-11-14T07:09:44.771Z", + "securedCoreCompliance": "Compliant", + "wdacCompliance": "Compliant" + }, + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + ] + } + } + }, + "operationId": "SecuritySettings_ListByClusters", + "title": "List Security Settings" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListSkusByOffer.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListSkusByOffer.json new file mode 100644 index 000000000000..5f4f7f32b1c7 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListSkusByOffer.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "offerName": "offer1", + "publisherName": "publisher1", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "sku1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers/skus", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1/skus/sku1", + "properties": { + "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", + "contentVersion": "2018-01-01", + "offerId": "offer1", + "provisioningState": "Succeeded", + "publisherId": "publisher1", + "skuMappings": [ + { + "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", + "marketplaceSkuId": "enterprise", + "marketplaceSkuVersions": [ + "15.0.220208" + ] + } + ] + } + } + ] + } + } + }, + "operationId": "Skus_ListByOffer", + "title": "List SKU resources by offer for the HCI Cluster" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListUpdateRuns.json new file mode 100644 index 000000000000..8eeb30c7644d --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListUpdateRuns.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "updateName": "Microsoft4.2203.2.32" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft4.2203.2.32/23b779ba-0d52-4a80-8571-45ca74664ec3", + "type": "Microsoft.AzureStackHCI/updates/updateRuns", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32/updateRuns/23b779ba-0d52-4a80-8571-45ca74664ec3", + "location": "West US", + "properties": { + "progress": { + "name": "Unnamed step", + "description": "Update Azure Stack.", + "endTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "errorMessage": "", + "lastUpdatedTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", + "steps": [ + { + "name": "PreUpdate Cloud", + "description": "Prepare for SSU update", + "endTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "errorMessage": "", + "lastUpdatedTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", + "steps": [] + } + ] + } + } + } + ] + } + } + }, + "operationId": "UpdateRuns_List", + "title": "List Update runs under cluster resource" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListUpdateSummaries.json new file mode 100644 index 000000000000..bf01b3cfade8 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListUpdateSummaries.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "default", + "type": "Microsoft.AzureStackHCI/updateSummaries", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updateSummaries/default", + "location": "West US", + "properties": { + "currentVersion": "4.2203.2.32", + "hardwareModel": "PowerEdge R730xd", + "oemFamily": "DellEMC", + "packageVersions": [ + { + "lastUpdated": "2022-04-07T18:04:07Z", + "packageType": "OEM", + "version": "2.2.2108.6" + }, + { + "lastUpdated": "2022-04-07T18:04:07Z", + "packageType": "Services", + "version": "4.2203.2.32" + }, + { + "lastUpdated": "2022-04-07T18:04:07Z", + "packageType": "Infrastructure", + "version": "4.2203.2.32" + } + ], + "state": "AppliedSuccessfully" + } + } + ] + } + } + }, + "operationId": "UpdateSummaries_List", + "title": "Get Update summaries under cluster resource" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListUpdates.json new file mode 100644 index 000000000000..4843d6182564 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ListUpdates.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft4.2203.2.32", + "type": " Microsoft. AzureStackHCI/updates", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32", + "location": "West US", + "properties": { + "description": "AzS Update 4.2203.2.32", + "additionalProperties": "additional properties", + "availabilityType": "Local", + "displayName": "AzS Update - 4.2203.2.32", + "installedDate": "2022-04-06T14:08:18.254Z", + "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", + "packageSizeInMb": 18858, + "packageType": "Infrastructure", + "prerequisites": [ + { + "packageName": "update package name", + "updateType": "update type", + "version": "prerequisite version" + } + ], + "publisher": "Microsoft", + "releaseLink": "https://docs.microsoft.com/azure-stack/operator/release-notes?view=azs-2203", + "state": "Installed", + "updateStateProperties": { + "notifyMessage": "Brief message with instructions for updates of AvailabilityType Notify", + "progressPercentage": 0 + }, + "version": "4.2203.2.32" + } + } + ] + } + } + }, + "operationId": "Updates_List", + "title": "List available updates" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PatchArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PatchArcSetting.json new file mode 100644 index 000000000000..afd72628579d --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PatchArcSetting.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSetting": { + "properties": { + "connectivityProperties": { + "enabled": true, + "serviceConfigurations": [ + { + "port": 6516, + "serviceName": "WAC" + } + ] + } + } + }, + "arcSettingName": "default", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "type": "Microsoft.AzureStackHCI/clusters/arcSettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", + "properties": { + "aggregateState": "Creating", + "arcInstanceResourceGroup": "ArcInstance-rg", + "connectivityProperties": { + "enabled": true, + "serviceConfigurations": [ + { + "port": 6516, + "serviceName": "WAC" + } + ] + }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + }, + { + "category": "Supportability", + "consentTime": null + } + ], + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "state": "Creating" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "state": "Creating" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "ArcSettings_Update", + "title": "Patch ArcSetting" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PatchExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PatchExtension.json new file mode 100644 index 000000000000..4aa35b10c6f5 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PatchExtension.json @@ -0,0 +1,101 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSettingName": "default", + "clusterName": "myCluster", + "extension": { + "properties": { + "extensionParameters": { + "enableAutomaticUpgrade": false, + "protectedSettings": { + "workspaceKey": "xx" + }, + "settings": { + "workspaceId": "xx" + }, + "typeHandlerVersion": "1.10" + } + } + }, + "extensionName": "MicrosoftMonitoringAgent", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "MicrosoftMonitoringAgent", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", + "properties": { + "aggregateState": "PartiallyConnected", + "extensionParameters": { + "type": "string", + "autoUpgradeMinorVersion": false, + "enableAutomaticUpgrade": false, + "publisher": "Microsoft.Compute", + "settings": { + "workspaceId": "xx" + }, + "typeHandlerVersion": "1.10" + }, + "managedBy": "User", + "perNodeExtensionDetails": [ + { + "name": "Node-1", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "status": { + "code": "success", + "displayStatus": "Provisioning succeeded", + "level": "Information", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + }, + "typeHandlerVersion": "1.10.0" + }, + "state": "Connected", + "typeHandlerVersion": "1.10.0" + }, + { + "name": "Node-2", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "status": { + "code": "error", + "displayStatus": "Provisioning failed", + "level": "Error", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + }, + "typeHandlerVersion": "1.10.3" + }, + "state": "Disconnected", + "typeHandlerVersion": "1.10.3" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + }, + "operationId": "Extensions_Update", + "title": "Update Arc Extension" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PostUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PostUpdates.json new file mode 100644 index 000000000000..e3fa3e8e21bb --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PostUpdates.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "updateName": "Microsoft4.2203.2.32" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://foo.com/operationstatus" + } + } + }, + "operationId": "Updates_Post", + "title": "List available updates" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutArcSetting.json new file mode 100644 index 000000000000..5c8d90bfe5e2 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutArcSetting.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSetting": {}, + "arcSettingName": "default", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "type": "Microsoft.AzureStackHCI/clusters/arcSettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", + "properties": { + "aggregateState": "Creating", + "arcInstanceResourceGroup": "ArcInstance-rg", + "connectivityProperties": { + "enabled": false, + "serviceConfigurations": [] + }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + } + ], + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "state": "Creating" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "state": "Creating" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "ArcSettings_Create", + "title": "Create ArcSetting" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutDeploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutDeploymentSettings.json new file mode 100644 index 000000000000..24650d59e523 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutDeploymentSettings.json @@ -0,0 +1,735 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "deploymentSettingsName": "default", + "resource": { + "properties": { + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "scaleUnits": [ + { + "deploymentData": { + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "cluster": { + "name": "testHCICluster", + "azureServiceEndpoint": "core.windows.net", + "cloudAccountName": "myasestoragacct", + "witnessPath": "Cloud", + "witnessType": "Cloud" + }, + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "hostNetwork": { + "enableStorageAutoIp": false, + "intents": [ + { + "name": "Compute_Management", + "adapter": [ + "Port2" + ], + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + }, + "overrideAdapterProperty": false, + "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, + "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3" + }, + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + } + } + ], + "storageConnectivitySwitchless": true, + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "storageAdapterIPInfo": [ + { + "ipv4Address": "10.57.48.60", + "physicalNode": "string", + "subnetMask": "255.255.248.0" + } + ], + "vlanId": "5" + } + ] + }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "isManagementCluster": true, + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" + }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "secrets": [ + { + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + }, + { + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" + } + }, + "sbePartnerInfo": { + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } + } + } + ], + "version": "string" + }, + "deploymentMode": "Deploy", + "operationType": "ClusterProvisioning" + } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", + "properties": { + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "scaleUnits": [ + { + "deploymentData": { + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "cluster": { + "name": "testHCICluster", + "azureServiceEndpoint": "core.windows.net", + "cloudAccountName": "myasestoragacct", + "witnessPath": "Cloud", + "witnessType": "Cloud" + }, + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "hostNetwork": { + "enableStorageAutoIp": false, + "intents": [ + { + "name": "Compute_Management", + "adapter": [ + "Port2" + ], + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + }, + "overrideAdapterProperty": false, + "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, + "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3" + }, + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + } + } + ], + "storageConnectivitySwitchless": true, + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "storageAdapterIPInfo": [ + { + "ipv4Address": "10.57.48.60", + "physicalNode": "string", + "subnetMask": "255.255.248.0" + } + ], + "vlanId": "5" + } + ] + }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" + }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "secrets": [ + { + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + }, + { + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" + } + }, + "sbePartnerInfo": { + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } + } + } + ], + "version": "string" + }, + "deploymentMode": "Deploy", + "provisioningState": "Succeeded", + "reportedProperties": { + "deploymentStatus": { + "status": "Error", + "steps": [ + { + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", + "steps": [ + { + "name": "Before Cloud Deployment", + "description": null, + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23", + "steps": [] + }, + { + "name": "Clean up temporary content", + "description": null, + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error", + "steps": [] + } + ] + } + ] + }, + "validationStatus": { + "status": "Error", + "steps": [ + { + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", + "steps": [ + { + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23", + "steps": [] + }, + { + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error", + "steps": [] + } + ] + } + ] + } + } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "default", + "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", + "properties": { + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "scaleUnits": [ + { + "deploymentData": { + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "cluster": { + "name": "testHCICluster", + "azureServiceEndpoint": "core.windows.net", + "cloudAccountName": "myasestoragacct", + "witnessPath": "Cloud", + "witnessType": "Cloud" + }, + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "hostNetwork": { + "enableStorageAutoIp": false, + "intents": [ + { + "name": "Compute_Management", + "adapter": [ + "Port2" + ], + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + }, + "overrideAdapterProperty": false, + "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, + "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3" + }, + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + } + } + ], + "storageConnectivitySwitchless": true, + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "storageAdapterIPInfo": [ + { + "ipv4Address": "10.57.48.60", + "physicalNode": "string", + "subnetMask": "255.255.248.0" + } + ], + "vlanId": "5" + } + ] + }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" + }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "secrets": [ + { + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + }, + { + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" + } + }, + "sbePartnerInfo": { + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } + } + } + ], + "version": "string" + }, + "deploymentMode": "Deploy", + "provisioningState": "Succeeded", + "reportedProperties": { + "deploymentStatus": { + "status": "Error", + "steps": [ + { + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", + "steps": [ + { + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23", + "steps": [] + }, + { + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error", + "steps": [] + } + ] + } + ] + }, + "validationStatus": { + "status": "Error", + "steps": [ + { + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "endTimeUtc": "2023-06-09T04:01:47", + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", + "steps": [ + { + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "endTimeUtc": "2023-06-09T01:10:10", + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23" + }, + { + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error" + } + ] + } + ] + } + } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "DeploymentSettings_CreateOrUpdate", + "title": "Create Deployment Settings" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutDeploymentSettingsWithADLess.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutDeploymentSettingsWithADLess.json new file mode 100644 index 000000000000..36b1cfdd1850 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutDeploymentSettingsWithADLess.json @@ -0,0 +1,739 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "deploymentSettingsName": "default", + "resource": { + "properties": { + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "scaleUnits": [ + { + "deploymentData": { + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "cluster": { + "name": "testHCICluster", + "azureServiceEndpoint": "core.windows.net", + "cloudAccountName": "myasestoragacct", + "witnessPath": "Cloud", + "witnessType": "Cloud" + }, + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "hostNetwork": { + "enableStorageAutoIp": false, + "intents": [ + { + "name": "Compute_Management", + "adapter": [ + "Port2" + ], + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + }, + "overrideAdapterProperty": false, + "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, + "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3" + }, + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + } + } + ], + "storageConnectivitySwitchless": true, + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "storageAdapterIPInfo": [ + { + "ipv4Address": "10.57.48.60", + "physicalNode": "string", + "subnetMask": "255.255.248.0" + } + ], + "vlanId": "5" + } + ] + }, + "identityProvider": "LocalIdentity", + "infrastructureNetwork": [ + { + "dnsZones": [ + { + "dnsForwarder": [ + "192.168.1.1" + ], + "dnsZoneName": "contoso.com" + } + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" + }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "secrets": [ + { + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + }, + { + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" + } + }, + "sbePartnerInfo": { + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } + } + } + ], + "version": "string" + }, + "deploymentMode": "Deploy", + "operationType": "ClusterProvisioning" + } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", + "properties": { + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "scaleUnits": [ + { + "deploymentData": { + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "cluster": { + "name": "testHCICluster", + "azureServiceEndpoint": "core.windows.net", + "cloudAccountName": "myasestoragacct", + "witnessPath": "Cloud", + "witnessType": "Cloud" + }, + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "hostNetwork": { + "enableStorageAutoIp": false, + "intents": [ + { + "name": "Compute_Management", + "adapter": [ + "Port2" + ], + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + }, + "overrideAdapterProperty": false, + "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, + "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3" + }, + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + } + } + ], + "storageConnectivitySwitchless": true, + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "storageAdapterIPInfo": [ + { + "ipv4Address": "10.57.48.60", + "physicalNode": "string", + "subnetMask": "255.255.248.0" + } + ], + "vlanId": "5" + } + ] + }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" + }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "secrets": [ + { + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + }, + { + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" + } + }, + "sbePartnerInfo": { + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } + } + } + ], + "version": "string" + }, + "deploymentMode": "Deploy", + "provisioningState": "Succeeded", + "reportedProperties": { + "deploymentStatus": { + "status": "Error", + "steps": [ + { + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", + "steps": [ + { + "name": "Before Cloud Deployment", + "description": null, + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23", + "steps": [] + }, + { + "name": "Clean up temporary content", + "description": null, + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error", + "steps": [] + } + ] + } + ] + }, + "validationStatus": { + "status": "Error", + "steps": [ + { + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", + "steps": [ + { + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23", + "steps": [] + }, + { + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error", + "steps": [] + } + ] + } + ] + } + } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "default", + "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", + "properties": { + "arcNodeResourceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" + ], + "deploymentConfiguration": { + "scaleUnits": [ + { + "deploymentData": { + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", + "cluster": { + "name": "testHCICluster", + "azureServiceEndpoint": "core.windows.net", + "cloudAccountName": "myasestoragacct", + "witnessPath": "Cloud", + "witnessType": "Cloud" + }, + "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", + "hostNetwork": { + "enableStorageAutoIp": false, + "intents": [ + { + "name": "Compute_Management", + "adapter": [ + "Port2" + ], + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" + }, + "overrideAdapterProperty": false, + "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, + "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", + "priorityValue8021Action_Cluster": "7", + "priorityValue8021Action_SMB": "3" + }, + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" + } + } + ], + "storageConnectivitySwitchless": true, + "storageNetworks": [ + { + "name": "Storage1Network", + "networkAdapterName": "Port3", + "storageAdapterIPInfo": [ + { + "ipv4Address": "10.57.48.60", + "physicalNode": "string", + "subnetMask": "255.255.248.0" + } + ], + "vlanId": "5" + } + ] + }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" + }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], + "sdnIntegration": { + "networkController": { + "macAddressPoolStart": "00-0D-3A-1B-C7-21", + "macAddressPoolStop": "00-0D-3A-1B-C7-29", + "networkVirtualizationEnabled": true + } + }, + "secrets": [ + { + "eceSecretName": "BMCAdminUserCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + }, + { + "eceSecretName": "AzureStackLCMUserCredential", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" + } + }, + "sbePartnerInfo": { + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], + "partnerProperties": [ + { + "name": "EnableBMCIpV6", + "value": "false" + }, + { + "name": "PhoneHomePort", + "value": "1653" + }, + { + "name": "BMCSecurityState", + "value": "HighSecurity" + } + ], + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } + } + } + ], + "version": "string" + }, + "deploymentMode": "Deploy", + "provisioningState": "Succeeded", + "reportedProperties": { + "deploymentStatus": { + "status": "Error", + "steps": [ + { + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", + "steps": [ + { + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23", + "steps": [] + }, + { + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error", + "steps": [] + } + ] + } + ] + }, + "validationStatus": { + "status": "Error", + "steps": [ + { + "name": "Cloud Deployment", + "description": "Deploy Cloud.", + "endTimeUtc": "2023-06-09T04:01:47", + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", + "steps": [ + { + "name": "Before Cloud Deployment", + "description": "Before Cloud Deployment", + "endTimeUtc": "2023-06-09T01:10:10", + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23" + }, + { + "name": "Clean up temporary content", + "description": "Clean up temporary content", + "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error" + } + ] + } + ] + } + } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "DeploymentSettings_CreateOrUpdate", + "title": "Create Deployment Settings Without Active Directory Integration" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutExtension.json new file mode 100644 index 000000000000..37e761d83033 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutExtension.json @@ -0,0 +1,166 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSettingName": "default", + "clusterName": "myCluster", + "extension": { + "properties": { + "extensionParameters": { + "type": "MicrosoftMonitoringAgent", + "enableAutomaticUpgrade": false, + "protectedSettings": { + "workspaceKey": "xx" + }, + "publisher": "Microsoft.Compute", + "settings": { + "workspaceId": "xx" + }, + "typeHandlerVersion": "1.10" + } + } + }, + "extensionName": "MicrosoftMonitoringAgent", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "MicrosoftMonitoringAgent", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", + "properties": { + "aggregateState": "PartiallySucceeded", + "extensionParameters": { + "type": "string", + "autoUpgradeMinorVersion": false, + "enableAutomaticUpgrade": false, + "publisher": "Microsoft.Compute", + "settings": { + "workspaceId": "xx" + }, + "typeHandlerVersion": "1.10.3" + }, + "managedBy": "User", + "perNodeExtensionDetails": [ + { + "name": "Node-1", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "status": { + "code": "success", + "displayStatus": "Provisioning succeeded", + "level": "Information", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + }, + "typeHandlerVersion": "1.10.0" + }, + "state": "Succeeded", + "typeHandlerVersion": "1.10.0" + }, + { + "name": "Node-2", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "status": { + "code": "error", + "displayStatus": "Provisioning failed", + "level": "Error", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + }, + "typeHandlerVersion": "1.10.3" + }, + "state": "Failed", + "typeHandlerVersion": "1.10.3" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "name": "MicrosoftMonitoringAgent", + "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", + "properties": { + "aggregateState": "PartiallySucceeded", + "extensionParameters": { + "type": "string", + "autoUpgradeMinorVersion": false, + "enableAutomaticUpgrade": false, + "publisher": "Microsoft.Compute", + "settings": { + "workspaceId": "xx" + }, + "typeHandlerVersion": "1.10.3" + }, + "managedBy": "User", + "perNodeExtensionDetails": [ + { + "name": "Node-1", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "status": { + "code": "success", + "displayStatus": "Provisioning succeeded", + "level": "Information", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + }, + "typeHandlerVersion": "1.10.0" + }, + "state": "Succeeded", + "typeHandlerVersion": "1.10.0" + }, + { + "name": "Node-2", + "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", + "instanceView": { + "name": "MicrosoftMonitoringAgent", + "type": "MicrosoftMonitoringAgent", + "status": { + "code": "error", + "displayStatus": "Provisioning failed", + "level": "Error", + "message": "Finished executing command, StdOut: , StdErr:", + "time": "2019-08-08T20:42:10.999Z" + }, + "typeHandlerVersion": "1.10.3" + }, + "state": "Failed", + "typeHandlerVersion": "1.10.3" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "Extensions_Create", + "title": "Create Arc Extension" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutSecuritySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutSecuritySettings.json new file mode 100644 index 000000000000..8b7e5ceaab33 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutSecuritySettings.json @@ -0,0 +1,74 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resource": { + "properties": { + "securedCoreComplianceAssignment": "Audit", + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect" + } + }, + "resourceGroupName": "test-rg", + "securitySettingsName": "default", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "type": "Microsoft.AzureStackHCI/clusters/securitySettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", + "properties": { + "provisioningState": "Succeeded", + "securedCoreComplianceAssignment": "Audit", + "securityComplianceStatus": { + "dataAtRestEncrypted": "Compliant", + "dataInTransitProtected": "Compliant", + "lastUpdated": "2023-11-14T07:09:44.771Z", + "securedCoreCompliance": "Compliant", + "wdacCompliance": "Compliant" + }, + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + }, + "201": { + "body": { + "type": "Microsoft.AzureStackHCI/clusters/securitySettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", + "properties": { + "provisioningState": "Succeeded", + "securedCoreComplianceAssignment": "Audit", + "securityComplianceStatus": { + "dataAtRestEncrypted": "Compliant", + "dataInTransitProtected": "Compliant", + "lastUpdated": "2023-11-14T07:09:44.771Z", + "securedCoreCompliance": "Compliant", + "wdacCompliance": "Compliant" + }, + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + } + }, + "operationId": "SecuritySettings_CreateOrUpdate", + "title": "Create Security Settings" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutUpdateRuns.json new file mode 100644 index 000000000000..0496be2473a3 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutUpdateRuns.json @@ -0,0 +1,70 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "updateName": "Microsoft4.2203.2.32", + "updateRunName": "23b779ba-0d52-4a80-8571-45ca74664ec3", + "updateRunsProperties": { + "properties": { + "progress": { + "name": "Unnamed step", + "description": "Update Azure Stack.", + "endTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "errorMessage": "", + "lastUpdatedTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", + "steps": [ + { + "name": "PreUpdate Cloud", + "description": "Prepare for SSU update", + "endTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "errorMessage": "", + "lastUpdatedTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", + "steps": [] + } + ] + } + } + } + }, + "responses": { + "200": { + "body": { + "name": "Microsoft4.2203.2.32/23b779ba-0d52-4a80-8571-45ca74664ec3", + "type": "Microsoft.AzureStackHCI/updates/updateRuns", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32/updateRuns/23b779ba-0d52-4a80-8571-45ca74664ec3", + "location": "West US", + "properties": { + "progress": { + "name": "Unnamed step", + "description": "Update Azure Stack.", + "endTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "errorMessage": "", + "lastUpdatedTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", + "steps": [ + { + "name": "PreUpdate Cloud", + "description": "Prepare for SSU update", + "endTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "errorMessage": "", + "lastUpdatedTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", + "steps": [] + } + ] + } + } + } + } + }, + "operationId": "UpdateRuns_Put", + "title": "Get Update runs under cluster resource" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutUpdateSummaries.json new file mode 100644 index 000000000000..10d05914f6bf --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutUpdateSummaries.json @@ -0,0 +1,54 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "updateLocationProperties": { + "properties": { + "currentVersion": "4.2203.2.32", + "hardwareModel": "PowerEdge R730xd", + "lastChecked": "2022-04-07T18:04:07Z", + "lastUpdated": "2022-04-06T14:08:18.254Z", + "oemFamily": "DellEMC", + "state": "AppliedSuccessfully" + } + }, + "updateName": "Microsoft4.2203.2.32" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "Microsoft.AzureStackHCI/updateSummaries", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updateSummaries/default", + "location": "West US", + "properties": { + "currentVersion": "4.2203.2.32", + "hardwareModel": "PowerEdge R730xd", + "oemFamily": "DellEMC", + "packageVersions": [ + { + "lastUpdated": "2022-04-07T18:04:07Z", + "packageType": "OEM", + "version": "2.2.2108.6" + }, + { + "lastUpdated": "2022-04-07T18:04:07Z", + "packageType": "Services", + "version": "4.2203.2.32" + }, + { + "lastUpdated": "2022-04-07T18:04:07Z", + "packageType": "Infrastructure", + "version": "4.2203.2.32" + } + ], + "state": "AppliedSuccessfully" + } + } + } + }, + "operationId": "UpdateSummaries_Put", + "title": "Put Update summaries under cluster resource" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutUpdates.json new file mode 100644 index 000000000000..613910e56b5e --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/PutUpdates.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "updateName": "Microsoft4.2203.2.32", + "updateProperties": { + "properties": { + "description": "AzS Update 4.2203.2.32", + "additionalProperties": "additional properties", + "availabilityType": "Local", + "displayName": "AzS Update - 4.2203.2.32", + "installedDate": "2022-04-06T14:08:18.254Z", + "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", + "packageSizeInMb": 18858, + "packageType": "Infrastructure", + "prerequisites": [ + { + "packageName": "update package name", + "updateType": "update type", + "version": "prerequisite version" + } + ], + "publisher": "Microsoft", + "releaseLink": "https://docs.microsoft.com/azure-stack/operator/release-notes?view=azs-2203", + "state": "Installed", + "updateStateProperties": { + "notifyMessage": "Brief message with instructions for updates of AvailabilityType Notify", + "progressPercentage": 0 + }, + "version": "4.2203.2.32" + } + } + }, + "responses": { + "200": { + "body": { + "name": "Microsoft4.2203.2.32", + "type": "Microsoft.AzureStackHCI/updates", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32", + "location": "West US", + "properties": { + "description": "AzS Update 4.2203.2.32", + "additionalProperties": "additional properties", + "availabilityType": "Local", + "displayName": "AzS Update - 4.2203.2.32", + "installedDate": "2022-04-06T14:08:18.254Z", + "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", + "packageSizeInMb": 18858, + "packageType": "Infrastructure", + "prerequisites": [ + { + "packageName": "update package name", + "updateType": "update type", + "version": "prerequisite version" + } + ], + "publisher": "Microsoft", + "releaseLink": "https://docs.microsoft.com/azure-stack/operator/release-notes?view=azs-2203", + "state": "Installed", + "updateStateProperties": { + "notifyMessage": "Brief message with instructions for updates of AvailabilityType Notify", + "progressPercentage": 0 + }, + "version": "4.2203.2.32" + } + } + } + }, + "operationId": "Updates_Put", + "title": "Put a specific update" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/TriggerLogCollection.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/TriggerLogCollection.json new file mode 100644 index 000000000000..6d5c770b4fd6 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/TriggerLogCollection.json @@ -0,0 +1,97 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "mycluster", + "logCollectionRequest": { + "properties": { + "fromDate": "2020-01-01T17:18:19.1234567Z", + "toDate": "2021-01-01T17:18:19.1234567Z" + } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "location": "East US", + "properties": { + "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "desiredProperties": { + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" + }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "logCollectionProperties": { + "fromDate": "2020-01-01T17:18:19.1234567Z", + "lastLogGenerated": "2020-01-01T17:18:19.1234567Z", + "logCollectionSessionDetails": [ + { + "correlationId": "a76ab33a-1819-4e82-1212-e3e4ec3d1425", + "endTimeCollected": "2020-01-01T17:25:19.1234567Z", + "logCollectionJobType": "OnDemand", + "logCollectionStatus": "Succeeded", + "logEndTime": "2020-01-01T17:18:19.1234567Z", + "logSize": 1000, + "logStartTime": "2020-01-01T17:18:19.1234567Z", + "timeCollected": "2020-01-01T17:18:19.1234567Z" + } + ], + "toDate": "2021-01-01T17:18:19.1234567Z" + }, + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "reportedProperties": { + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", + "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "nodes": [ + { + "name": "Node1", + "coreCount": 8, + "id": 1, + "manufacturer": "Dell Inc.", + "memoryInGiB": 128, + "model": "EMC AX740", + "nodeType": "ThirdParty", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "windowsServerSubscription": "Enabled" + } + ] + }, + "status": "ConnectedRecently", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + }, + "operationId": "Clusters_TriggerLogCollection", + "title": "Trigger Log Collection" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/UpdateCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/UpdateCluster.json new file mode 100644 index 000000000000..c318f2654ccb --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/UpdateCluster.json @@ -0,0 +1,128 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "cluster": { + "identity": { + "type": "SystemAssigned" + }, + "properties": { + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "desiredProperties": { + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" + } + }, + "tags": { + "tag1": "value1", + "tag2": "value2" + } + }, + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "name": "myCluster", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", + "identity": { + "type": "SystemAssigned", + "principalId": "87a834db-2e45-409e-911b-e16a44562ec3", + "tenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94" + }, + "location": "East US", + "properties": { + "aadClientId": "515da1c2-379e-49b4-9975-09e3e40c86be", + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "Connected", + "desiredProperties": { + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" + }, + "isolatedVmAttestationConfiguration": { + "attestationResourceId": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.Attestation/attestationProviders/testmaa", + "attestationServiceEndpoint": "https://dantestnoauth01.eus.attest.azure.net", + "relyingPartyServiceEndpoint": "https://azurestackhci.azurefd.net/eastus" + }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", + "reportedProperties": { + "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", + "clusterType": "ThirdParty", + "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", + "manufacturer": "Dell Inc.", + "nodes": [ + { + "name": "Node1", + "coreCount": 8, + "id": 1, + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", + "manufacturer": "Dell Inc.", + "memoryInGiB": 128, + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q45CZC3", + "windowsServerSubscription": "Enabled" + }, + { + "name": "Node2", + "coreCount": 8, + "id": 2, + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", + "manufacturer": "Dell Inc.", + "memoryInGiB": 128, + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44BSC3", + "windowsServerSubscription": "Enabled" + }, + { + "name": "Node3", + "coreCount": 16, + "id": 3, + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", + "manufacturer": "Dell Inc.", + "memoryInGiB": 256, + "model": "EMC AX740", + "osName": "Azure Stack HCI", + "osVersion": "10.0.17777.1061", + "serialNumber": "Q44RFC3", + "windowsServerSubscription": "Enabled" + } + ] + }, + "status": "ConnectedRecently", + "supportStatus": "InSupport", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": { + "tag1": "value1", + "tag2": "value2" + } + } + } + }, + "operationId": "Clusters_Update", + "title": "Update cluster" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/UploadCertificate.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/UploadCertificate.json new file mode 100644 index 000000000000..5faa159ce506 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/UploadCertificate.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "uploadCertificateRequest": { + "properties": { + "certificates": [ + "base64cert", + "base64cert" + ] + } + } + }, + "responses": { + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + }, + "operationId": "Clusters_UploadCertificate", + "title": "Upload certificate" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ValidateEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ValidateEdgeDevices.json new file mode 100644 index 000000000000..a17b7da62cfd --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ValidateEdgeDevices.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "ValidateRequest": { + "additionalInfo": "test", + "edgeDeviceIds": [ + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/edgeDevices/default", + "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/edgeDevices/default" + ] + }, + "api-version": "2025-12-01-preview", + "edgeDeviceName": "default", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" + }, + "responses": { + "200": { + "body": { + "status": "success" + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + }, + "operationId": "EdgeDevices_Validate", + "title": "Validate Edge Devices" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ValidatedSolutionRecipes_Get.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ValidatedSolutionRecipes_Get.json new file mode 100644 index 000000000000..88c34ea5116b --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ValidatedSolutionRecipes_Get.json @@ -0,0 +1,351 @@ +{ + "operationId": "ValidatedSolutionRecipes_Get", + "parameters": { + "api-version": "2025-12-01-preview", + "location": "westus2", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "validatedSolutionRecipeName": "10.2408.0" + }, + "title": "ValidatedSolutionRecipes_Get", + "responses": { + "200": { + "body": { + "name": "10.2408.0", + "type": "Microsoft.AzureStackHCI/ValidatedSolutionRecipes", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/providers/Microsoft.AzureStackHCI/validatedSolutionRecipes/10.2408.0", + "properties": { + "recipeContent": { + "info": { + "solutionType": "HCI", + "version": "10.2408.0" + }, + "capabilities": { + "clusterCapabilities": [ + { + "capabilityName": "AddNode" + }, + { + "capabilityName": "RepairNode" + }, + { + "capabilityName": "SDN" + } + ], + "nodeCapabilities": [ + { + "capabilityName": "ArcGateway" + } + ] + }, + "components": [ + { + "name": "ComposedImage", + "type": "Platform", + "installOrder": 10, + "payloads": [ + { + "fileName": "ComposedImage_ISO.iso", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "ComposedImage_ISO", + "url": "http://foo.bar.com" + }, + { + "fileName": "ComposedImage_TargetOSBundle.iso", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "ComposedImage_TargetOSBundle", + "url": "http://foo.bar.com" + } + ], + "requiredVersion": "10.2411.0.4027", + "tags": [ + "Azure" + ] + }, + { + "name": "PlatformUpdate", + "type": "Platform", + "installOrder": 15, + "payloads": [ + { + "fileName": "PlatformUpdatePackage_zip.zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "PlatformUpdatePackage_zip", + "url": "http://foo.bar.com" + } + ], + "requiredVersion": "10.2411.0.4027", + "tags": [ + "Azure" + ] + }, + { + "name": "CloudDeployment", + "type": "Services", + "installOrder": 20, + "payloads": [ + { + "fileName": "CloudDeployment_zip.zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "CloudDeployment_zip", + "url": "http://foo.bar.com" + }, + { + "fileName": "VerifyCloudDeployment_ps1.ps1", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "VerifyCloudDeployment_ps1", + "url": "http://foo.bar.com" + }, + { + "fileName": "BootstrapCloudDeploymentTool_ps1.ps1", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "BootstrapCloudDeploymentTool_ps1", + "url": "http://foo.bar.com" + } + ], + "requiredVersion": "22.2411.0.9027", + "tags": [ + "Azure" + ] + }, + { + "name": "ServicesUpdate", + "type": "Services", + "installOrder": 25, + "payloads": [ + { + "fileName": "Services_zip.zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "Services_zip", + "url": "http://foo.bar.com" + } + ], + "requiredVersion": "22.2411.0.9027", + "tags": [ + "Azure" + ] + }, + { + "name": "AzureEdgeTelemetryAndDiagnostics", + "type": "ArcExtension", + "installOrder": 80, + "metadata": { + "enableAutomaticUpgrade": true, + "extensionType": "TelemetryAndDiagnostics", + "lcmUpdate": false, + "publisher": "Microsoft.AzureStack.Observability" + }, + "tags": [ + "Azure" + ] + }, + { + "name": "AzureEdgeRemoteSupport", + "type": "ArcExtension", + "installOrder": 81, + "metadata": { + "enableAutomaticUpgrade": true, + "extensionType": "EdgeRemoteSupport", + "lcmUpdate": false, + "publisher": "Microsoft.AzureStack.Observability" + }, + "tags": [ + "Azure" + ] + }, + { + "name": "AzureEdgeDeviceManagement", + "type": "ArcExtension", + "installOrder": 82, + "metadata": { + "enableAutomaticUpgrade": false, + "extensionType": "DeviceManagementExtension", + "lcmUpdate": false, + "publisher": "Microsoft.Edge" + }, + "requiredVersion": "1.2408.0.3024", + "tags": [ + "Azure" + ] + }, + { + "name": "AzureEdgeLifecycleManager", + "type": "ArcExtension", + "installOrder": 83, + "metadata": { + "enableAutomaticUpgrade": false, + "extensionType": "LcmController", + "lcmUpdate": false, + "publisher": "Microsoft.AzureStack.Orchestration" + }, + "requiredVersion": "30.2408.2.687", + "tags": [ + "Azure" + ] + }, + { + "name": "arcappliance", + "type": "AzCliExtension", + "installOrder": 210, + "requiredVersion": "1.3.0", + "tags": [ + "Azure" + ] + }, + { + "name": "arcappliance", + "type": "AzCliExtension", + "installOrder": 211, + "requiredVersion": "1.3.0", + "tags": [ + "Azure.local" + ] + }, + { + "name": "k8s-extension", + "type": "AzCliExtension", + "installOrder": 220, + "requiredVersion": "1.4.5", + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "customlocation", + "type": "AzCliExtension", + "installOrder": 230, + "requiredVersion": "0.1.3", + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "stack-hci-vm", + "type": "AzCliExtension", + "installOrder": 240, + "metadata": { + "previewSource": "https://hciarcvmsstorage.z13.web.core.windows.net/cli-extensions/stack_hci_vm-1.4.2-py3-none-any.whl" + }, + "requiredVersion": "1.4.2", + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "connectedk8s", + "type": "AzCliExtension", + "installOrder": 270, + "requiredVersion": "1.6.2", + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "MocNodeAndClusteredService", + "type": "MocServiceBinaries", + "installOrder": 300, + "metadata": { + "catalog": "aks-hci-asz-stable-catalogs-int", + "ring": "monthly" + }, + "requiredVersion": "1.9.0.11008", + "tags": [ + "Azure" + ] + }, + { + "name": "ArcResourceBridgeVM", + "type": "ArcResourceBridge", + "installOrder": 400, + "requiredVersion": "1.3.0", + "tags": [ + "Azure" + ] + }, + { + "name": "vmss-hci", + "type": "ArbVmExtension", + "installOrder": 410, + "metadata": { + "releaseTrain": "prerelease" + }, + "requiredVersion": "5.4.3", + "tags": [ + "Azure" + ] + }, + { + "name": "vmss-hci", + "type": "ArbVmExtension", + "installOrder": 411, + "metadata": { + "releaseTrain": "prerelease" + }, + "tags": [ + "Azure.local" + ] + }, + { + "name": "hybridaksextension", + "type": "ArbVmExtension", + "installOrder": 420, + "metadata": { + "releaseTrain": "stable" + }, + "requiredVersion": "2.0.129", + "tags": [ + "Azure" + ] + }, + { + "name": "hybridaksextension", + "type": "ArbVmExtension", + "installOrder": 421, + "metadata": { + "releaseTrain": "stable" + }, + "tags": [ + "Azure.local" + ] + }, + { + "name": "InfraVmImage23H2", + "type": "InfraVmImage", + "installOrder": 430, + "metadata": { + "name": "AzureStackHCI_25398.469.231004-1141_zn_release_en-us.iso", + "expectedHash": "140D2A6BC53DADCCB9FB66B0D6D2EF61C9D23EA937F8CCC62788866D02997BCA", + "link": "https://aka.ms/infrahcios23" + }, + "tags": [ + "Azure" + ] + }, + { + "name": "Az.StackHCI", + "type": "PowerShell", + "installOrder": 40, + "requiredVersion": "2.4.1", + "tags": [ + "Azure.local" + ] + } + ] + }, + "signature": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6" + }, + "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", + "createdBy": "zsnvvvbj", + "createdByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User" + } + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json new file mode 100644 index 000000000000..c9697e0c294e --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json @@ -0,0 +1,355 @@ +{ + "operationId": "ValidatedSolutionRecipes_ListBySubscriptionLocationResource", + "parameters": { + "api-version": "2025-12-01-preview", + "location": "westus2", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712" + }, + "title": "ValidatedSolutionRecipes_ListBySubscriptionLocationResource", + "responses": { + "200": { + "body": { + "nextLink": "https://microsoft.com/a", + "value": [ + { + "name": "10.2408.0", + "type": "Microsoft.AzureStackHCI/ValidatedSolutionRecipes", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/providers/Microsoft.AzureStackHCI/validatedSolutionRecipes/10.2408.0", + "properties": { + "recipeContent": { + "info": { + "solutionType": "HCI", + "version": "10.2408.0" + }, + "capabilities": { + "clusterCapabilities": [ + { + "capabilityName": "AddNode" + }, + { + "capabilityName": "RepairNode" + }, + { + "capabilityName": "SDN" + } + ], + "nodeCapabilities": [ + { + "capabilityName": "ArcGateway" + } + ] + }, + "components": [ + { + "name": "ComposedImage", + "type": "Platform", + "installOrder": 10, + "payloads": [ + { + "fileName": "ComposedImage_ISO.iso", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "ComposedImage_ISO", + "url": "http://foo.bar.com" + }, + { + "fileName": "ComposedImage_TargetOSBundle.iso", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "ComposedImage_TargetOSBundle", + "url": "http://foo.bar.com" + } + ], + "requiredVersion": "10.2411.0.4027", + "tags": [ + "Azure" + ] + }, + { + "name": "PlatformUpdate", + "type": "Platform", + "installOrder": 15, + "payloads": [ + { + "fileName": "PlatformUpdatePackage_zip.zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "PlatformUpdatePackage_zip", + "url": "http://foo.bar.com" + } + ], + "requiredVersion": "10.2411.0.4027", + "tags": [ + "Azure" + ] + }, + { + "name": "CloudDeployment", + "type": "Services", + "installOrder": 20, + "payloads": [ + { + "fileName": "CloudDeployment_zip.zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "CloudDeployment_zip", + "url": "http://foo.bar.com" + }, + { + "fileName": "VerifyCloudDeployment_ps1.ps1", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "VerifyCloudDeployment_ps1", + "url": "http://foo.bar.com" + }, + { + "fileName": "BootstrapCloudDeploymentTool_ps1.ps1", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "BootstrapCloudDeploymentTool_ps1", + "url": "http://foo.bar.com" + } + ], + "requiredVersion": "22.2411.0.9027", + "tags": [ + "Azure" + ] + }, + { + "name": "ServicesUpdate", + "type": "Services", + "installOrder": 25, + "payloads": [ + { + "fileName": "Services_zip.zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "Services_zip", + "url": "http://foo.bar.com" + } + ], + "requiredVersion": "22.2411.0.9027", + "tags": [ + "Azure" + ] + }, + { + "name": "AzureEdgeTelemetryAndDiagnostics", + "type": "ArcExtension", + "installOrder": 80, + "metadata": { + "enableAutomaticUpgrade": true, + "extensionType": "TelemetryAndDiagnostics", + "lcmUpdate": false, + "publisher": "Microsoft.AzureStack.Observability" + }, + "tags": [ + "Azure" + ] + }, + { + "name": "AzureEdgeRemoteSupport", + "type": "ArcExtension", + "installOrder": 81, + "metadata": { + "enableAutomaticUpgrade": true, + "extensionType": "EdgeRemoteSupport", + "lcmUpdate": false, + "publisher": "Microsoft.AzureStack.Observability" + }, + "tags": [ + "Azure" + ] + }, + { + "name": "AzureEdgeDeviceManagement", + "type": "ArcExtension", + "installOrder": 82, + "metadata": { + "enableAutomaticUpgrade": false, + "extensionType": "DeviceManagementExtension", + "lcmUpdate": false, + "publisher": "Microsoft.Edge" + }, + "requiredVersion": "1.2408.0.3024", + "tags": [ + "Azure" + ] + }, + { + "name": "AzureEdgeLifecycleManager", + "type": "ArcExtension", + "installOrder": 83, + "metadata": { + "enableAutomaticUpgrade": false, + "extensionType": "LcmController", + "lcmUpdate": false, + "publisher": "Microsoft.AzureStack.Orchestration" + }, + "requiredVersion": "30.2408.2.687", + "tags": [ + "Azure" + ] + }, + { + "name": "arcappliance", + "type": "AzCliExtension", + "installOrder": 210, + "requiredVersion": "1.3.0", + "tags": [ + "Azure" + ] + }, + { + "name": "arcappliance", + "type": "AzCliExtension", + "installOrder": 211, + "requiredVersion": "1.3.0", + "tags": [ + "Azure.local" + ] + }, + { + "name": "k8s-extension", + "type": "AzCliExtension", + "installOrder": 220, + "requiredVersion": "1.4.5", + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "customlocation", + "type": "AzCliExtension", + "installOrder": 230, + "requiredVersion": "0.1.3", + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "stack-hci-vm", + "type": "AzCliExtension", + "installOrder": 240, + "metadata": { + "previewSource": "https://hciarcvmsstorage.z13.web.core.windows.net/cli-extensions/stack_hci_vm-1.4.2-py3-none-any.whl" + }, + "requiredVersion": "1.4.2", + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "connectedk8s", + "type": "AzCliExtension", + "installOrder": 270, + "requiredVersion": "1.6.2", + "tags": [ + "Azure", + "Azure.local" + ] + }, + { + "name": "MocNodeAndClusteredService", + "type": "MocServiceBinaries", + "installOrder": 300, + "metadata": { + "catalog": "aks-hci-asz-stable-catalogs-int", + "ring": "monthly" + }, + "requiredVersion": "1.9.0.11008", + "tags": [ + "Azure" + ] + }, + { + "name": "ArcResourceBridgeVM", + "type": "ArcResourceBridge", + "installOrder": 400, + "requiredVersion": "1.3.0", + "tags": [ + "Azure" + ] + }, + { + "name": "vmss-hci", + "type": "ArbVmExtension", + "installOrder": 410, + "metadata": { + "releaseTrain": "prerelease" + }, + "requiredVersion": "5.4.3", + "tags": [ + "Azure" + ] + }, + { + "name": "vmss-hci", + "type": "ArbVmExtension", + "installOrder": 411, + "metadata": { + "releaseTrain": "prerelease" + }, + "tags": [ + "Azure.local" + ] + }, + { + "name": "hybridaksextension", + "type": "ArbVmExtension", + "installOrder": 420, + "metadata": { + "releaseTrain": "stable" + }, + "requiredVersion": "2.0.129", + "tags": [ + "Azure" + ] + }, + { + "name": "hybridaksextension", + "type": "ArbVmExtension", + "installOrder": 421, + "metadata": { + "releaseTrain": "stable" + }, + "tags": [ + "Azure.local" + ] + }, + { + "name": "InfraVmImage23H2", + "type": "InfraVmImage", + "installOrder": 430, + "metadata": { + "name": "AzureStackHCI_25398.469.231004-1141_zn_release_en-us.iso", + "expectedHash": "140D2A6BC53DADCCB9FB66B0D6D2EF61C9D23EA937F8CCC62788866D02997BCA", + "link": "https://aka.ms/infrahcios23" + }, + "tags": [ + "Azure" + ] + }, + { + "name": "Az.StackHCI", + "type": "PowerShell", + "installOrder": 40, + "requiredVersion": "2.4.1", + "tags": [ + "Azure.local" + ] + } + ] + }, + "signature": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6" + }, + "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", + "createdBy": "zsnvvvbj", + "createdByType": "User", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", + "lastModifiedBy": "qxlrx", + "lastModifiedByType": "User" + } + } + ] + } + } + } +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/reconcileArcSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/reconcileArcSettings.json new file mode 100644 index 000000000000..c80f0f2bbcd6 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/examples/2025-12-01-preview/reconcileArcSettings.json @@ -0,0 +1,78 @@ +{ + "parameters": { + "api-version": "2025-12-01-preview", + "arcSettingName": "default", + "clusterName": "myCluster", + "reconcileArcSettingsRequest": { + "properties": { + "clusterNodes": [ + "/subscriptions/sub1/resourceGroup/res1/providers/Microsoft.HybridCompute/machines/m1", + "/subscriptions/sub1/resourceGroup/res1/providers/Microsoft.HybridCompute/machines/m2" + ] + } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" + }, + "responses": { + "200": { + "body": { + "type": "Microsoft.AzureStackHCI/clusters/arcSettings", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", + "properties": { + "aggregateState": "Creating", + "arcInstanceResourceGroup": "ArcInstance-rg", + "connectivityProperties": { + "enabled": true, + "serviceConfigurations": [ + { + "port": 6516, + "serviceName": "WAC" + } + ] + }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + }, + { + "category": "Supportability", + "consentTime": null + } + ], + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "arcNodeServicePrincipalObjectId": "00cc4014-482e-4de9-9932-83415cc75f45", + "state": "Succeeded" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "arcNodeServicePrincipalObjectId": "00cc4014-482e-4de9-9932-83415cc75f45", + "state": "Succeeded" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + } + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } + } + }, + "operationId": "ArcSettings_Reconcile", + "title": "Reconcile Arc Settings" +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/kubernetesVersions.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/kubernetesVersions.tsp index a014b8d8848b..442b30b461c8 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/kubernetesVersions.tsp +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/kubernetesVersions.tsp @@ -12,7 +12,6 @@ using TypeSpec.Versioning; @armProviderNamespace("Microsoft.AzureStackHCI") namespace Microsoft.AzureStackHCI; -@added(Versions.v2025_11_01_preview) @doc("Represents a kubernetes version resource.") @parentResource(SubscriptionLocationResource) model KubernetesVersion @@ -23,7 +22,6 @@ model KubernetesVersion >; } -@added(Versions.v2025_11_01_preview) @armResourceOperations interface KubernetesVersions { @doc("List all kubernetes versions.") @@ -31,7 +29,6 @@ interface KubernetesVersions { } #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" -@added(Versions.v2025_11_01_preview) @doc("Represents properties of a kubernetes version.") model KubernetesVersionProperties { @doc("Represents kubernetes version.") diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/main.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/main.tsp index 0652b49757d1..0bf627190510 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/main.tsp +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/main.tsp @@ -17,6 +17,22 @@ import "./platformUpdates.tsp"; import "./osImages.tsp"; import "./updateContents.tsp"; import "./Operations.tsp"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./ArcSetting.tsp"; +import "./Cluster.tsp"; +import "./DeploymentSetting.tsp"; +import "./EdgeDeviceJob.tsp"; +import "./EdgeDevice.tsp"; +import "./Extension.tsp"; +import "./Offer.tsp"; +import "./Publisher.tsp"; +import "./SecuritySetting.tsp"; +import "./Sku.tsp"; +import "./UpdateRun.tsp"; +import "./Update.tsp"; +import "./UpdateSummaries.tsp"; +import "./ValidatedSolutionRecipe.tsp"; import "./edgeMachine.tsp"; import "./edgeMachineJobs.tsp"; import "./validateOwnershipVouchers.tsp"; diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/models.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/models.tsp new file mode 100644 index 000000000000..e18879b084b7 --- /dev/null +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/models.tsp @@ -0,0 +1,5860 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; +using TypeSpec.Versioning; + +namespace Microsoft.AzureStackHCI; + +/** + * Provisioning state of the ArcSetting proxy resource. + */ +union ProvisioningState { + string, + + /** + * The provisioning state is not specified. + */ + NotSpecified: "NotSpecified", + + /** + * An error occurred during provisioning. + */ + Error: "Error", + + /** + * Provisioning completed successfully. + */ + Succeeded: "Succeeded", + + /** + * Provisioning failed. + */ + Failed: "Failed", + + /** + * Provisioning was canceled. + */ + Canceled: "Canceled", + + /** + * The resource is connected. + */ + Connected: "Connected", + + /** + * The resource is disconnected. + */ + Disconnected: "Disconnected", + + /** + * The resource has been deleted. + */ + Deleted: "Deleted", + + /** + * The resource is being created. + */ + Creating: "Creating", + + /** + * The resource is being updated. + */ + Updating: "Updating", + + /** + * The resource is being deleted. + */ + Deleting: "Deleting", + + /** + * The resource is being moved. + */ + Moving: "Moving", + + /** + * Provisioning partially succeeded. + */ + PartiallySucceeded: "PartiallySucceeded", + + /** + * The resource is partially connected. + */ + PartiallyConnected: "PartiallyConnected", + + /** + * Provisioning is in progress. + */ + InProgress: "InProgress", + + /** + * Provisioning request has been accepted. + */ + Accepted: "Accepted", + + /** + * The resource is currently provisioning. + */ + Provisioning: "Provisioning", + + /** + * The resource is being disabled. + */ + DisableInProgress: "DisableInProgress", +} + +/** + * Aggregate state of Arc agent across the nodes in this HCI cluster. + */ +union ArcSettingAggregateState { + string, + + /** + * The aggregate state is not specified. + */ + NotSpecified: "NotSpecified", + + /** + * An error occurred in the aggregate state. + */ + Error: "Error", + + /** + * The operation successfully completed across all nodes. + */ + Succeeded: "Succeeded", + + /** + * The operation was canceled across the nodes. + */ + Canceled: "Canceled", + + /** + * The operation failed on all or most nodes. + */ + Failed: "Failed", + + /** + * All nodes are connected. + */ + Connected: "Connected", + + /** + * All nodes are disconnected. + */ + Disconnected: "Disconnected", + + /** + * The Arc agent has been deleted from all nodes. + */ + Deleted: "Deleted", + + /** + * The Arc agent is being created across the nodes. + */ + Creating: "Creating", + + /** + * The Arc agent is being updated across the nodes. + */ + Updating: "Updating", + + /** + * The Arc agent is being deleted across the nodes. + */ + Deleting: "Deleting", + + /** + * The Arc agent is being moved across the nodes. + */ + Moving: "Moving", + + /** + * The operation succeeded on some nodes. + */ + PartiallySucceeded: "PartiallySucceeded", + + /** + * Some nodes are connected, others are not. + */ + PartiallyConnected: "PartiallyConnected", + + /** + * The operation is currently in progress across the nodes. + */ + InProgress: "InProgress", + + /** + * The operation has been accepted and is pending execution. + */ + Accepted: "Accepted", + + /** + * The Arc agent is being provisioned across the nodes. + */ + Provisioning: "Provisioning", + + /** + * The Arc agent is being disabled across the nodes. + */ + DisableInProgress: "DisableInProgress", +} + +/** + * State of the Arc agent in this node. Indicates the current lifecycle status of the agent, such as whether it's being provisioned, connected, updated, or has encountered an error. + */ +union NodeArcState { + string, + + /** + * The state is not specified. + */ + NotSpecified: "NotSpecified", + + /** + * An error occurred during the agent's lifecycle. + */ + Error: "Error", + + /** + * The operation completed successfully. + */ + Succeeded: "Succeeded", + + /** + * The operation was canceled before completion. + */ + Canceled: "Canceled", + + /** + * The operation failed. + */ + Failed: "Failed", + + /** + * The Arc agent is connected on this node. + */ + Connected: "Connected", + + /** + * The Arc agent is disconnected on this node. + */ + Disconnected: "Disconnected", + + /** + * The Arc agent has been deleted from this node. + */ + Deleted: "Deleted", + + /** + * The Arc agent is being created on this node. + */ + Creating: "Creating", + + /** + * The Arc agent is being updated on this node. + */ + Updating: "Updating", + + /** + * The Arc agent is being deleted from this node. + */ + Deleting: "Deleting", + + /** + * The Arc agent is being moved on this node. + */ + Moving: "Moving", + + /** + * The operation partially succeeded. + */ + PartiallySucceeded: "PartiallySucceeded", + + /** + * The Arc agent is partially connected on this node. + */ + PartiallyConnected: "PartiallyConnected", + + /** + * The operation is currently in progress. + */ + InProgress: "InProgress", + + /** + * The operation has been accepted and is pending execution. + */ + Accepted: "Accepted", + + /** + * The Arc agent is currently being provisioned on this node. + */ + Provisioning: "Provisioning", + + /** + * The Arc agent is in the process of being disabled on this node. + */ + DisableInProgress: "DisableInProgress", +} + +/** + * Status of the cluster agent. Indicates the current connectivity, validation, and deployment state of the agent within the cluster. + */ +union Status { + string, + + /** + * The cluster agent has not yet registered with Azure. + */ + NotYetRegistered: "NotYetRegistered", + + /** + * The cluster agent has connected to Azure recently. + */ + ConnectedRecently: "ConnectedRecently", + + /** + * The cluster agent has not connected to Azure recently. + */ + NotConnectedRecently: "NotConnectedRecently", + + /** + * The cluster agent is currently disconnected from Azure. + */ + Disconnected: "Disconnected", + + /** + * An error occurred in the cluster agent's operation. + */ + Error: "Error", + + /** + * The status of the cluster agent is not specified. + */ + NotSpecified: "NotSpecified", + + /** + * Validation of the cluster agent is currently in progress. + */ + ValidationInProgress: "ValidationInProgress", + + /** + * Validation of the cluster agent completed successfully. + */ + ValidationSuccess: "ValidationSuccess", + + /** + * Validation of the cluster agent failed. + */ + ValidationFailed: "ValidationFailed", + + /** + * Deployment of the cluster agent is currently in progress. + */ + DeploymentInProgress: "DeploymentInProgress", + + /** + * Deployment of the cluster agent failed. + */ + DeploymentFailed: "DeploymentFailed", + + /** + * Deployment of the cluster agent completed successfully. + */ + DeploymentSuccess: "DeploymentSuccess", +} + +/** + * Overall connectivity status for the cluster resource. Indicates whether the cluster is connected to Azure, partially connected, or has not recently communicated. + */ +union ConnectivityStatus { + string, + + /** + * The cluster has not yet registered with Azure. + */ + NotYetRegistered: "NotYetRegistered", + + /** + * The cluster is fully connected to Azure. + */ + Connected: "Connected", + + /** + * The cluster has not connected to Azure recently. + */ + NotConnectedRecently: "NotConnectedRecently", + + /** + * Some components of the cluster are connected, while others are not. + */ + PartiallyConnected: "PartiallyConnected", + + /** + * The cluster is not connected to Azure. + */ + Disconnected: "Disconnected", + + /** + * The connectivity status is not specified. + */ + NotSpecified: "NotSpecified", +} + +/** + * Indicates whether the cluster is under support. + */ +union SupportStatus { + string, + + /** + * The cluster is under support. + */ + InSupport: "InSupport", + + /** + * The cluster is out of support. + */ + OutOfSupport: "OutOfSupport", + + /** + * The support status is not specified. + */ + NotSpecified: "NotSpecified", +} + +/** + * Status of the Software Assurance for the cluster. + */ +union SoftwareAssuranceStatus { + string, + + /** + * Software Assurance is enabled for the cluster. + */ + Enabled: "Enabled", + + /** + * Software Assurance is disabled for the cluster. + */ + Disabled: "Disabled", +} + +/** + * Customer Intent for Software Assurance Benefit. + */ +union SoftwareAssuranceIntent { + string, + + /** + * Customer intends to enable the Software Assurance benefit. + */ + Enable: "Enable", + + /** + * Customer intends to disable the Software Assurance benefit. + */ + Disable: "Disable", +} + +/** + * LogCollection status + */ +union LogCollectionStatus { + string, + + /** + * No log collection has been initiated. + */ + None: "None", + + /** + * Log collection is currently in progress. + */ + InProgress: "InProgress", + + /** + * Log collection has failed. + */ + Failed: "Failed", + + /** + * Log collection completed successfully. + */ + Succeeded: "Succeeded", +} + +/** + * Specifies the type of log collection job. Determines whether the logs are collected immediately on demand or as part of a scheduled operation. + */ +union LogCollectionJobType { + string, + + /** + * Log collection is triggered manually and executed immediately. + */ + OnDemand: "OnDemand", + + /** + * Log collection is scheduled to run at a predefined time or interval. + */ + Scheduled: "Scheduled", +} + +/** + * Remote Support Access Level + */ +union AccessLevel { + string, + + /** + * Allows remote diagnostics operations only. + */ + Diagnostics: "Diagnostics", + + /** + * Allows both remote diagnostics and repair operations. + */ + DiagnosticsAndRepair: "DiagnosticsAndRepair", +} + +/** + * Remote Support Type for cluster + */ +union RemoteSupportType { + string, + + /** + * Enable remote support for the cluster. + */ + Enable: "Enable", + + /** + * Revoke previously enabled remote support for the cluster. + */ + Revoke: "Revoke", +} + +/** + * Desired state of Windows Server Subscription. + */ +union WindowsServerSubscription { + string, + + /** + * Windows Server Subscription is disabled. + */ + Disabled: "Disabled", + + /** + * Windows Server Subscription is enabled. + */ + Enabled: "Enabled", +} + +/** + * Desired level of diagnostic data emitted by the cluster. + */ +union DiagnosticLevel { + string, + + /** + * No diagnostic data will be emitted. + */ + Off: "Off", + + /** + * Basic diagnostic data will be emitted, including essential health metrics. + */ + Basic: "Basic", + + /** + * Enhanced diagnostic data will be emitted, including detailed performance and usage metrics. + */ + Enhanced: "Enhanced", +} + +/** + * Specifies the type of hardware vendor for all nodes in the cluster. Indicates whether the nodes are provided by Microsoft or a third-party vendor. + */ +union ClusterNodeType { + string, + + /** + * All nodes in the cluster are provided and managed by Microsoft. + */ + FirstParty: "FirstParty", + + /** + * All nodes in the cluster are provided and managed by a third-party vendor. + */ + ThirdParty: "ThirdParty", +} + +/** + * OEM activation status of the cluster. + */ +union OemActivation { + string, + + /** + * OEM activation is disabled for the cluster. + */ + Disabled: "Disabled", + + /** + * OEM activation is enabled for the cluster. + */ + Enabled: "Enabled", +} + +/** + * IMDS attestation status of the cluster. + */ +union ImdsAttestation { + string, + + /** + * IMDS attestation is disabled for the cluster. + */ + Disabled: "Disabled", + + /** + * IMDS attestation is enabled for the cluster. + */ + Enabled: "Enabled", +} + +/** + * Hardware class of the cluster. + */ +union HardwareClass { + string, + + /** + * The hardware class is small. + */ + Small: "Small", + + /** + * The hardware class is medium. This corresponds to the default + */ + Medium: "Medium", + + /** + * The hardware class is large. + */ + Large: "Large", +} + +/** + * Type of secrets to store + */ +union SecretsType { + string, + + /** + * Backup secrets type + */ + BackupSecrets: "BackupSecrets", +} + +/** + * Supported Storage Pattern for HCI Cluster + */ +union ClusterPattern { + string, + + /** + * Standard cluster. + */ + Standard: "Standard", + + /** + * RackAware cluster. + */ + RackAware: "RackAware", +} + +/** + * Identity Provider for the cluster + */ +union IdentityProvider { + string, + + /** + * Uses Active Directory as the identity provider, enabling domain-based authentication and centralized identity management. This is the default option. + */ + ActiveDirectory: "ActiveDirectory", + + /** + * Uses a local identity system integrated with Azure Key Vault for authentication. Suitable for AD-less environments where Active Directory is not available or required. + */ + LocalIdentity: "LocalIdentity", +} + +/** + * Deployment mode to trigger job. + */ +union DeploymentMode { + string, + + /** + * Validate ECE action deployment for a cluster. + */ + Validate: "Validate", + + /** + * Deploy ECE action deployment for a cluster. + */ + Deploy: "Deploy", +} + +/** + * The intended operation for a cluster. + */ +union OperationType { + string, + + /** + * Cluster provisioning operation. + */ + ClusterProvisioning: "ClusterProvisioning", + + /** + * Cluster upgrade operation. + */ + ClusterUpgrade: "ClusterUpgrade", +} + +/** + * Specifies how DNS servers are configured for the infrastructure network. Allowed values are 'UseDnsServer' to use the provided DNS servers, and 'UseForwarder' to use DNS forwarders. + */ +union DnsServerConfig { + string, + + /** + * Use the provided DNS servers for the infrastructure network. + */ + UseDnsServer: "UseDnsServer", + + /** + * Use DNS forwarders for the infrastructure network. + */ + UseForwarder: "UseForwarder", +} + +/** + * Secret names allowed for Enterprise Cloud Engine (ECE) deployment. + */ +union EceSecrets { + string, + + /** + * AzureStackLCMUserCredential used for LCM operations for AzureStackHCI cluster. + */ + AzureStackLCMUserCredential: "AzureStackLCMUserCredential", + + /** + * DefaultARBApplication used to manage Azure Arc resource bridge (ARB) for AzureStackHCI cluster. + */ + DefaultARBApplication: "DefaultARBApplication", + + /** + * LocalAdminCredential used for admin operations for AzureStackHCI cluster. + */ + LocalAdminCredential: "LocalAdminCredential", + + /** + * WitnessStorageKey used for setting up a cloud witness for AzureStackHCI cluster. + */ + WitnessStorageKey: "WitnessStorageKey", +} + +/** + * Edge device kind. + */ +union EdgeDeviceKind { + string, + + /** + * Arc-enabled edge device with HCI OS. + */ + HCI: "HCI", +} + +/** + * Edge device kind. + */ +union DeviceKind { + string, + + /** + * Arc-enabled edge device with HCI OS. + */ + HCI: "HCI", +} + +/** + * Aggregate state of Arc Extensions across the nodes in this HCI cluster. This reflects the overall status of the extension deployment and operation across all nodes. + */ +union ExtensionAggregateState { + string, + + /** + * The aggregate state is not specified. + */ + NotSpecified: "NotSpecified", + + /** + * An error occurred in the aggregate state. + */ + Error: "Error", + + /** + * The operation succeeded across all nodes. + */ + Succeeded: "Succeeded", + + /** + * The operation was canceled across the nodes. + */ + Canceled: "Canceled", + + /** + * The operation failed on all or most nodes. + */ + Failed: "Failed", + + /** + * All nodes are connected. + */ + Connected: "Connected", + + /** + * All nodes are disconnected. + */ + Disconnected: "Disconnected", + + /** + * The extension has been deleted from all nodes. + */ + Deleted: "Deleted", + + /** + * The extension is being created across the nodes. + */ + Creating: "Creating", + + /** + * The extension is being updated across the nodes. + */ + Updating: "Updating", + + /** + * The extension is being deleted across the nodes. + */ + Deleting: "Deleting", + + /** + * The extension is being moved across the nodes. + */ + Moving: "Moving", + + /** + * The operation succeeded on some nodes. + */ + PartiallySucceeded: "PartiallySucceeded", + + /** + * Some nodes are connected, others are not. + */ + PartiallyConnected: "PartiallyConnected", + + /** + * The operation is currently in progress across the nodes. + */ + InProgress: "InProgress", + + /** + * The operation has been accepted and is pending execution. + */ + Accepted: "Accepted", + + /** + * The extension is currently being provisioned across the nodes. + */ + Provisioning: "Provisioning", + + /** + * Extension upgrade failed, but rollback succeeded across the nodes. + */ + UpgradeFailedRollbackSucceeded: "UpgradeFailedRollbackSucceeded", +} + +/** + * State of Arc Extension in this node. Reflects the current lifecycle status of the extension on the individual node, such as whether it's being created, updated, deleted, or has encountered an error. + */ +union NodeExtensionState { + string, + + /** + * The state is not specified. + */ + NotSpecified: "NotSpecified", + + /** + * An error occurred during the extension lifecycle. + */ + Error: "Error", + + /** + * The extension operation completed successfully. + */ + Succeeded: "Succeeded", + + /** + * The extension operation was canceled. + */ + Canceled: "Canceled", + + /** + * The extension operation failed. + */ + Failed: "Failed", + + /** + * The extension is connected on the node. + */ + Connected: "Connected", + + /** + * The extension is disconnected on the node. + */ + Disconnected: "Disconnected", + + /** + * The extension has been deleted from the node. + */ + Deleted: "Deleted", + + /** + * The extension is being created on the node. + */ + Creating: "Creating", + + /** + * The extension is being updated on the node. + */ + Updating: "Updating", + + /** + * The extension is being deleted from the node. + */ + Deleting: "Deleting", + + /** + * The extension is being moved on the node. + */ + Moving: "Moving", + + /** + * The extension operation partially succeeded. + */ + PartiallySucceeded: "PartiallySucceeded", + + /** + * The extension is partially connected on the node. + */ + PartiallyConnected: "PartiallyConnected", + + /** + * The extension operation is currently in progress. + */ + InProgress: "InProgress", + + /** + * The extension operation has been accepted and is pending execution. + */ + Accepted: "Accepted", + + /** + * The extension is currently being provisioned on the node. + */ + Provisioning: "Provisioning", +} + +/** + * The level code. Indicates the severity or importance of the status message. + */ +union StatusLevelTypes { + string, + + /** + * Informational message indicating normal operation. + */ + Info: "Info", + + /** + * Warning message indicating a potential issue or non-critical problem. + */ + Warning: "Warning", + + /** + * Error message indicating a failure or critical issue. + */ + Error: "Error", +} + +/** + * Indicates whether the extension is managed by the user or by Azure. + */ +union ExtensionManagedBy { + string, + + /** + * The extension is managed by the user. + */ + User: "User", + + /** + * The extension is managed by Azure. + */ + Azure: "Azure", +} + +/** + * Represents the compliance assignment type of a resource. + */ +union ComplianceAssignmentType { + string, + + /** + * Report on the state of the machine, but don't make changes. + */ + Audit: "Audit", + + /** + * Applied to the machine. If it drifts, the local service inside the machine makes a correction at the next evaluation. + */ + ApplyAndAutoCorrect: "ApplyAndAutoCorrect", +} + +/** + * Represents the compliance status of a resource. + */ +union ComplianceStatus { + string, + + /** + * The resource is compliant + */ + Compliant: "Compliant", + + /** + * The resource is non-compliant + */ + NonCompliant: "NonCompliant", + + /** + * The resource compliance status is pending + */ + Pending: "Pending", +} + +/** + * Represents the current state of the update run. Indicates whether the update is in progress, has completed successfully, failed, or is in an unknown state. + */ +union UpdateRunPropertiesState { + string, + + /** + * The state of the update run is not known. + */ + Unknown: "Unknown", + + /** + * The update run completed successfully. + */ + Succeeded: "Succeeded", + + /** + * The update run is currently in progress. + */ + InProgress: "InProgress", + + /** + * The update run failed to complete successfully. + */ + Failed: "Failed", +} + +/** + * Represents the current state of the update as it relates to this stamp. This includes phases such as preparation, installation, scanning, and error handling, providing insight into the update's progress and any issues encountered. + */ +union State { + string, + + /** + * The update has prerequisites that must be fulfilled before it can proceed. + */ + HasPrerequisite: "HasPrerequisite", + + /** + * The update is obsolete and no longer applicable. + */ + Obsolete: "Obsolete", + + /** + * The update is ready to be installed. + */ + Ready: "Ready", + + /** + * The update cannot be applied because another update is currently in progress. + */ + NotApplicableBecauseAnotherUpdateIsInProgress: "NotApplicableBecauseAnotherUpdateIsInProgress", + + /** + * The update is currently in the preparation phase. + */ + Preparing: "Preparing", + + /** + * The update is currently being installed. + */ + Installing: "Installing", + + /** + * The update has been successfully installed. + */ + Installed: "Installed", + + /** + * The update preparation phase failed. + */ + PreparationFailed: "PreparationFailed", + + /** + * The update installation failed. + */ + InstallationFailed: "InstallationFailed", + + /** + * The update is invalid and cannot be applied. + */ + Invalid: "Invalid", + + /** + * The update has been recalled and should not be applied. + */ + Recalled: "Recalled", + + /** + * The update is currently being downloaded. + */ + Downloading: "Downloading", + + /** + * The update download failed. + */ + DownloadFailed: "DownloadFailed", + + /** + * A health check is being performed before applying the update. + */ + HealthChecking: "HealthChecking", + + /** + * The health check failed, preventing the update from proceeding. + */ + HealthCheckFailed: "HealthCheckFailed", + + /** + * The update is ready to be installed after successful preparation and checks. + */ + ReadyToInstall: "ReadyToInstall", + + /** + * The system is scanning for updates. + */ + ScanInProgress: "ScanInProgress", + + /** + * The scan for updates failed. + */ + ScanFailed: "ScanFailed", + + /** + * Additional content is required to proceed with the update. + */ + AdditionalContentRequired: "AdditionalContentRequired", +} + +/** + * Indicates whether a reboot is required after the update or operation. Helps determine if a system restart is necessary to complete the process. + */ +union RebootRequirement { + string, + + /** + * It is not known whether a reboot is required. + */ + Unknown: "Unknown", + + /** + * A reboot is required to complete the operation. + */ + True: "True", + + /** + * No reboot is required after the operation. + */ + False: "False", +} + +/** + * Overall health state for update-specific health checks. Indicates whether the system is functioning correctly, has warnings or errors, or is undergoing a health evaluation. + */ +union HealthState { + string, + + /** + * The health state is not known or cannot be determined. + */ + Unknown: "Unknown", + + /** + * The health check completed successfully and the system is healthy. + */ + Success: "Success", + + /** + * The health check failed, indicating a critical issue. + */ + Failure: "Failure", + + /** + * The health check detected a non-critical issue that may require attention. + */ + Warning: "Warning", + + /** + * An error occurred during the health check process. + */ + Error: "Error", + + /** + * The health check is currently in progress. + */ + InProgress: "InProgress", +} + +/** + * Indicates the importance or impact level of the result. Determines whether the result is informational, a warning, or a critical issue that may block updates. + */ +union Severity { + string, + + /** + * A critical issue that blocks updates and requires immediate attention. + */ + Critical: "Critical", + + /** + * A warning that may indicate a potential issue but does not block updates. + */ + Warning: "Warning", + + /** + * General information that does not indicate any issue. + */ + Informational: "Informational", + + /** + * The result is hidden and not shown in the output. + */ + Hidden: "Hidden", +} + +/** + * Indicates how the update content is made available for download. This determines whether the update is sourced locally, from an online repository, or requires user notification. + */ +union AvailabilityType { + string, + + /** + * The update content is available locally within the environment. + */ + Local: "Local", + + /** + * The update content is available from an online source. + */ + Online: "Online", + + /** + * The system will notify the user when update content becomes available. + */ + Notify: "Notify", +} + +/** + * Overall update state of the stamp. Indicates the current status of update deployment across the stamp, including preparation, application, and any issues encountered. + */ +union UpdateSummariesPropertiesState { + string, + + /** + * The update state is not known. + */ + Unknown: "Unknown", + + /** + * Updates have been successfully applied to the stamp. + */ + AppliedSuccessfully: "AppliedSuccessfully", + + /** + * Updates are available but have not yet been applied. + */ + UpdateAvailable: "UpdateAvailable", + + /** + * Updates are currently being applied to the stamp. + */ + UpdateInProgress: "UpdateInProgress", + + /** + * The update process failed. + */ + UpdateFailed: "UpdateFailed", + + /** + * The update process requires user intervention or has encountered issues needing attention. + */ + NeedsAttention: "NeedsAttention", + + /** + * Preparation for the update is currently in progress. + */ + PreparationInProgress: "PreparationInProgress", + + /** + * Preparation for the update failed. + */ + PreparationFailed: "PreparationFailed", +} + +/** + * Specifies the name of the service associated with the update or operation. This helps identify which system component or tool is involved. + */ +union ServiceName { + string, + + /** + * Windows Admin Center (WAC) is the service associated with this operation. + */ + WAC: "WAC", +} + +/** + * Represents the status of a log collection operation. + */ +union DeviceLogCollectionStatus { + string, + + /** + * Log collection operation has not been initiated. + */ + NotStarted: "NotStarted", + + /** + * Indicates that the log collection operation is currently running. + */ + Running: "Running", + + /** + * Indicates that the log collection operation has failed. + */ + Failed: "Failed", + + /** + * Indicates that the log collection operation has completed successfully. + */ + Succeeded: "Succeeded", + + /** + * Indicates that the log collection operation has completed successfully. + */ + Canceled: "Canceled", +} + +/** + * Represents the various statuses a job can have throughout its lifecycle. + */ +union JobStatus { + string, + + /** + * The job status has not been specified. + */ + NotSpecified: "NotSpecified", + + /** + * The job is currently undergoing validation. + */ + ValidationInProgress: "ValidationInProgress", + + /** + * The job has successfully passed validation. + */ + ValidationSuccess: "ValidationSuccess", + + /** + * The job has failed validation. + */ + ValidationFailed: "ValidationFailed", + + /** + * The job's deployment is currently in progress. + */ + DeploymentInProgress: "DeploymentInProgress", + + /** + * The job's deployment has failed. + */ + DeploymentFailed: "DeploymentFailed", + + /** + * The job has been successfully deployed. + */ + DeploymentSuccess: "DeploymentSuccess", + + /** + * The job has succeeded. + */ + Succeeded: "Succeeded", + + /** + * The job has failed. + */ + Failed: "Failed", + + /** + * The job has been canceled. + */ + Canceled: "Canceled", + + /** + * The job is paused. + */ + Paused: "Paused", + + /** + * The job is scheduled to run. + */ + Scheduled: "Scheduled", +} + +/** + * Job Type supported. + */ +union HciEdgeDeviceJobType { + string, + + /** + * Job to collect logs from the device. + */ + CollectLog: "CollectLog", + + /** + * Job to provide remote support to the device. + */ + RemoteSupport: "RemoteSupport", +} + +/** + * Defines the level of remote support access granted. + */ +union RemoteSupportAccessLevel { + string, + + /** + * No remote support access is granted. + */ + None: "None", + + /** + * Access is limited to diagnostics information only. + */ + Diagnostics: "Diagnostics", + + /** + * Access includes diagnostics information and the ability to perform repairs. + */ + DiagnosticsAndRepair: "DiagnosticsAndRepair", +} + +/** + * Arc extension installation state. + */ +union ArcExtensionState { + string, + + /** + * Arc extension state is not specified. + */ + NotSpecified: "NotSpecified", + + /** + * Arc extension state is Succeeded. + */ + Succeeded: "Succeeded", + + /** + * Arc extension state is Failed. + */ + Failed: "Failed", + + /** + * Arc extension state is Canceled. + */ + Canceled: "Canceled", + + /** + * Arc extension state is Accepted when extension installation triggered. + */ + Accepted: "Accepted", + + /** + * Arc extension is in Creating State. + */ + Creating: "Creating", + + /** + * Arc extension is in Updating State. + */ + Updating: "Updating", + + /** + * Arc extension is in Moving State. + */ + Moving: "Moving", + + /** + * Arc extension is in Deleting State. + */ + Deleting: "Deleting", + + /** + * Arc extension is in Deleted State. + */ + Deleted: "Deleted", +} + +/** + * Describes the RDMA capability of the network adapter. + */ +union RdmaCapability { + string, + + /** + * Network Adapter on the device is RDMA Capable + */ + Enabled: "Enabled", + + /** + * Network Adapter on the device is RDMA Capable + */ + Disabled: "Disabled", +} + +/** + * The edge device state. + */ +union DeviceState { + string, + + /** + * The edge device state is not specified. + */ + NotSpecified: "NotSpecified", + + /** + * The edge device state is in connected state. + */ + Connected: "Connected", + + /** + * The edge device state is in disconnected state. + */ + Disconnected: "Disconnected", + + /** + * The edge device state is in repairing state. + */ + Repairing: "Repairing", + + /** + * The edge device state is in draining state. + */ + Draining: "Draining", + + /** + * The edge device state is in maintenance state. + */ + InMaintenance: "InMaintenance", + + /** + * The edge device state is in resuming state. + */ + Resuming: "Resuming", + + /** + * The edge device state is in processing state. + */ + Processing: "Processing", +} + +/** + * Common Job Types supported. + */ +union EdgeDeviceJobType { + string, + + /** + * Job to collect logs from the device. + */ + CollectLog: "CollectLog", + + /** + * Job to provide remote support to the device. + */ + RemoteSupport: "RemoteSupport", +} + +/** + * Edge solution type. + */ +union EdgeSolutionType { + string, + + /** + * Edge solution for Windows based edge devices. + */ + WindowsServer: "WindowsServer", +} + +/** + * List of ArcSetting proxy resources for the HCI cluster. + */ +model ArcSettingList is Azure.Core.Page; + +/** + * ArcSetting properties. + */ +model ArcSettingProperties { + /** + * Provisioning state of the ArcSetting proxy resource. + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * The resource group that hosts the Arc agents, ie. Hybrid Compute Machine resources. + */ + arcInstanceResourceGroup?: string; + + /** + * App id of arc AAD identity. + */ + arcApplicationClientId?: string; + + /** + * Tenant id of arc AAD identity. + */ + arcApplicationTenantId?: string; + + /** + * Object id of arc AAD service principal. + */ + arcServicePrincipalObjectId?: string; + + /** + * Object id of arc AAD identity. + */ + arcApplicationObjectId?: string; + + /** + * Aggregate state of Arc agent across the nodes in this HCI cluster. + */ + @visibility(Lifecycle.Read) + aggregateState?: ArcSettingAggregateState; + + /** + * State of Arc agent in each of the nodes. + */ + @visibility(Lifecycle.Read) + perNodeDetails?: PerNodeState[]; + + /** + * contains connectivity related configuration for ARC resources + */ + connectivityProperties?: ArcConnectivityProperties; + + /** + * Properties for each of the default extensions category + */ + @visibility(Lifecycle.Read) + @identifiers(#["category"]) + defaultExtensions?: DefaultExtensionDetails[]; +} + +/** + * Status of Arc agent for a particular node in HCI Cluster. + */ +model PerNodeState { + /** + * Name of the Node in HCI Cluster + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * Fully qualified resource ID for the Arc agent of this node. + */ + @visibility(Lifecycle.Read) + arcInstance?: string; + + /** + * The service principal id of the arc for server node + */ + @visibility(Lifecycle.Read) + arcNodeServicePrincipalObjectId?: string; + + /** + * State of the Arc agent in this node. Indicates the current lifecycle status of the agent, such as whether it's being provisioned, connected, updated, or has encountered an error. + */ + @visibility(Lifecycle.Read) + state?: NodeArcState; +} + +/** + * Properties for a particular default extension category. + */ +model DefaultExtensionDetails { + /** + * Default extension category + */ + @visibility(Lifecycle.Read) + category?: string; + + /** + * Consent time for extension category + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + consentTime?: utcDateTime; +} + +/** + * ArcSetting details to update. + */ +model ArcSettingsPatch { + /** + * Resource tags. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record; + + /** + * ArcSettings properties. + */ + properties?: ArcSettingsPatchProperties; +} + +/** + * ArcSettings properties. + */ +model ArcSettingsPatchProperties { + /** + * contains connectivity related configuration for ARC resources + */ + connectivityProperties?: ArcConnectivityProperties; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model PasswordCredential { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + secretText?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + keyId?: string; + + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + startDateTime?: utcDateTime; + + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + endDateTime?: utcDateTime; +} + +/** + * ArcIdentity details. + */ +model ArcIdentityResponse { + /** + * ArcIdentity properties. + */ + @visibility(Lifecycle.Read) + properties?: ArcIdentityResponseProperties; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ArcIdentityResponseProperties { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + arcApplicationClientId?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + arcApplicationTenantId?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + arcServicePrincipalObjectId?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + arcApplicationObjectId?: string; +} + +/** + * Request for reconciling Arc Settings. + */ +model ReconcileArcSettingsRequest { + /** + * List of Arc Nodes in the cluster + */ + properties?: ReconcileArcSettingsRequestProperties; +} + +/** + * List of Arc Nodes in the cluster + */ +model ReconcileArcSettingsRequestProperties { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + clusterNodes?: string[]; +} + +/** + * List of clusters. + */ +model ClusterList is Azure.Core.Page; + +/** + * Cluster properties. + */ +model ClusterProperties { + /** + * Provisioning state. Indicates the current lifecycle status of the resource, including creation, update, deletion, connectivity, and error states. + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Status of the cluster agent. Indicates the current connectivity, validation, and deployment state of the agent within the cluster. + */ + @visibility(Lifecycle.Read) + status?: Status; + + /** + * Overall connectivity status for the cluster resource. Indicates whether the cluster is connected to Azure, partially connected, or has not recently communicated. + */ + @visibility(Lifecycle.Read) + connectivityStatus?: ConnectivityStatus; + + /** + * Indicates whether the cluster is under support. + */ + @visibility(Lifecycle.Read) + supportStatus?: SupportStatus; + + /** + * Unique, immutable resource id. + */ + @visibility(Lifecycle.Read) + cloudId?: string; + + /** + * The ring to which this cluster belongs to. + */ + @visibility(Lifecycle.Read) + ring?: string; + + /** + * Endpoint configured for management from the Azure portal. + */ + cloudManagementEndpoint?: string; + + /** + * App id of cluster AAD identity. + */ + aadClientId?: string; + + /** + * Tenant id of cluster AAD identity. + */ + aadTenantId?: string; + + /** + * Object id of cluster AAD identity. + */ + aadApplicationObjectId?: string; + + /** + * Id of cluster identity service principal. + */ + aadServicePrincipalObjectId?: string; + + /** + * Software Assurance properties of the cluster. + */ + softwareAssuranceProperties?: SoftwareAssuranceProperties; + + /** + * Is Management Cluster, when true indicates that the cluster is used for managing other clusters + */ + @visibility(Lifecycle.Read) + isManagementCluster?: boolean; + + /** + * Log Collection properties of the cluster. + */ + logCollectionProperties?: LogCollectionProperties; + + /** + * RemoteSupport properties of the cluster. + */ + remoteSupportProperties?: RemoteSupportProperties; + + /** + * Desired properties of the cluster. + */ + desiredProperties?: ClusterDesiredProperties; + + /** + * Properties reported by cluster agent. + */ + @visibility(Lifecycle.Read) + reportedProperties?: ClusterReportedProperties; + + /** + * Attestation configurations for isolated VM (e.g. TVM, CVM) of the cluster. + */ + @visibility(Lifecycle.Read) + isolatedVmAttestationConfiguration?: IsolatedVmAttestationConfiguration; + + /** + * Number of days remaining in the trial period. + */ + @visibility(Lifecycle.Read) + trialDaysRemaining?: float32; + + /** + * Type of billing applied to the resource. + */ + @visibility(Lifecycle.Read) + billingModel?: string; + + /** + * First cluster sync timestamp. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + registrationTimestamp?: utcDateTime; + + /** + * Most recent cluster sync timestamp. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastSyncTimestamp?: utcDateTime; + + /** + * Most recent billing meter timestamp. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastBillingTimestamp?: utcDateTime; + + /** + * Region specific DataPath Endpoint of the cluster. + */ + @visibility(Lifecycle.Read) + serviceEndpoint?: string; + + /** + * Object id of RP Service Principal + */ + @visibility(Lifecycle.Read) + resourceProviderObjectId?: string; + + /** + * List of secret locations. + */ + @identifiers(#[]) + secretsLocations?: SecretsLocationDetails[]; + + /** + * Supported Storage Type for HCI Cluster + */ + @visibility(Lifecycle.Read) + clusterPattern?: ClusterPattern; + + /** + * Represents the Confidential Virtual Machine (CVM) support intent and current status for the cluster resource. + */ + @added(Versions.v2025_12_01_preview) + @visibility(Lifecycle.Read) + confidentialVmProperties?: ConfidentialVmProperties; + + /** + * Software Defined Networking Properties of the cluster + */ + @added(Versions.v2025_12_01_preview) + @visibility(Lifecycle.Read) + sdnProperties?: ClusterSdnProperties; + + /** + * Local Availability Zone information for HCI cluster + */ + @identifiers(#["localAvailabilityZoneName"]) + localAvailabilityZones?: LocalAvailabilityZones[]; + + /** + * Identity Provider for the cluster + */ + @visibility(Lifecycle.Read) + identityProvider?: IdentityProvider = IdentityProvider.ActiveDirectory; +} + +/** + * Software Assurance properties of the cluster. + */ +model SoftwareAssuranceProperties { + /** + * Status of the Software Assurance for the cluster. + */ + @visibility(Lifecycle.Read) + softwareAssuranceStatus?: SoftwareAssuranceStatus; + + /** + * Customer Intent for Software Assurance Benefit. + */ + softwareAssuranceIntent?: SoftwareAssuranceIntent; + + /** + * TimeStamp denoting the latest SA benefit applicability is validated. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastUpdated?: utcDateTime; +} + +/** + * Log Collection properties of the cluster. + */ +model LogCollectionProperties { + /** + * From DateTimeStamp from when logs need to be connected + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + fromDate?: utcDateTime; + + /** + * To DateTimeStamp till when logs need to be connected + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + toDate?: utcDateTime; + + /** + * Recent DateTimeStamp where logs are successfully generated + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastLogGenerated?: utcDateTime; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + @identifiers(#[]) + logCollectionSessionDetails?: LogCollectionSession[]; +} + +/** + * Log Collection Session details of the cluster. + */ +model LogCollectionSession { + /** + * Start Time of the logs when it was collected + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + logStartTime?: utcDateTime; + + /** + * End Time of the logs when it was collected + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + logEndTime?: utcDateTime; + + /** + * Duration of logs collected + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + timeCollected?: utcDateTime; + + /** + * Size of the logs collected + */ + @visibility(Lifecycle.Read) + logSize?: int64; + + /** + * LogCollection status + */ + @visibility(Lifecycle.Read) + logCollectionStatus?: LogCollectionStatus; + + /** + * CorrelationId of the log collection + */ + @visibility(Lifecycle.Read) + correlationId?: string; + + /** + * Specifies the type of log collection job. Determines whether the logs are collected immediately on demand or as part of a scheduled operation. + */ + @visibility(Lifecycle.Read) + logCollectionJobType?: LogCollectionJobType; + + /** + * End Time of the logs when it was collected + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + endTimeCollected?: utcDateTime; + + /** + * Log Collection Error details of the cluster. + */ + @visibility(Lifecycle.Read) + logCollectionError?: LogCollectionError; +} + +/** + * Log Collection Error details of the cluster. + */ +model LogCollectionError { + /** + * Error Code of the log collection + */ + @visibility(Lifecycle.Read) + errorCode?: string; + + /** + * Error Message of the log collection + */ + @visibility(Lifecycle.Read) + errorMessage?: string; +} + +/** + * Remote Support properties of the cluster. + */ +model RemoteSupportProperties { + /** + * Remote Support Access Level + */ + @visibility(Lifecycle.Read) + accessLevel?: AccessLevel; + + /** + * Expiration DateTimeStamp when Remote Support Access will be expired + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + expirationTimeStamp?: utcDateTime; + + /** + * Remote Support Type for cluster + */ + @visibility(Lifecycle.Read) + remoteSupportType?: RemoteSupportType; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + @identifiers(#[]) + remoteSupportNodeSettings?: RemoteSupportNodeSettings[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + @identifiers(#[]) + remoteSupportSessionDetails?: PerNodeRemoteSupportSession[]; +} + +/** + * Remote Support Node Settings of the cluster. + */ +model RemoteSupportNodeSettings { + /** + * Arc ResourceId of the Node + */ + @visibility(Lifecycle.Read) + arcResourceId?: string; + + /** + * Remote Support Access Connection State on the Node + */ + @visibility(Lifecycle.Read) + state?: string; + + /** + * Remote Support Enablement Request Created TimeStamp on the Node + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + createdAt?: utcDateTime; + + /** + * Remote Support Enablement Request Updated TimeStamp on the Node + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + updatedAt?: utcDateTime; + + /** + * Remote Support Access Connection Status on the Node + */ + @visibility(Lifecycle.Read) + connectionStatus?: string; + + /** + * Remote Support Access Connection Error Message on the Node + */ + @visibility(Lifecycle.Read) + connectionErrorMessage?: string; + + /** + * Remote Support Transcript location on the node + */ + @visibility(Lifecycle.Read) + transcriptLocation?: string; +} + +/** + * Remote Support Node Session Details on the Node. + */ +model PerNodeRemoteSupportSession { + /** + * Remote Support Session StartTime on the Node + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + sessionStartTime?: utcDateTime; + + /** + * Remote Support Session EndTime on the Node + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + sessionEndTime?: utcDateTime; + + /** + * Name of the node + */ + @visibility(Lifecycle.Read) + nodeName?: string; + + /** + * Duration of Remote Support Enablement + */ + @visibility(Lifecycle.Read) + duration?: int64; + + /** + * Remote Support Access Level + */ + @visibility(Lifecycle.Read) + accessLevel?: AccessLevel; +} + +/** + * Desired properties of the cluster. + */ +model ClusterDesiredProperties { + /** + * Desired state of Windows Server Subscription. + */ + windowsServerSubscription?: WindowsServerSubscription; + + /** + * Desired level of diagnostic data emitted by the cluster. + */ + diagnosticLevel?: DiagnosticLevel; +} + +/** + * Properties reported by cluster agent. + */ +model ClusterReportedProperties { + /** + * Name of the on-prem cluster connected to this resource. + */ + @visibility(Lifecycle.Read) + clusterName?: string; + + /** + * Unique id generated by the on-prem cluster. + */ + @visibility(Lifecycle.Read) + clusterId?: string; + + /** + * Version of the cluster software. + */ + @visibility(Lifecycle.Read) + clusterVersion?: string; + + /** + * List of nodes reported by the cluster. + */ + @visibility(Lifecycle.Read) + nodes?: ClusterNode[]; + + /** + * Last time the cluster reported the data. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastUpdated?: utcDateTime; + + /** + * Specifies the expiration timestamp of the cluster's Managed Service Identity (MSI). The value is expressed in Coordinated Universal Time (UTC). + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + msiExpirationTimeStamp?: utcDateTime; + + /** + * IMDS attestation status of the cluster. + */ + @visibility(Lifecycle.Read) + imdsAttestation?: ImdsAttestation; + + /** + * Level of diagnostic data emitted by the cluster. + */ + diagnosticLevel?: DiagnosticLevel; + + /** + * Capabilities supported by the cluster. + */ + @visibility(Lifecycle.Read) + supportedCapabilities?: string[]; + + /** + * Specifies the type of hardware vendor for all nodes in the cluster. Indicates whether the nodes are provided by Microsoft or a third-party vendor. + */ + @visibility(Lifecycle.Read) + clusterType?: ClusterNodeType; + + /** + * The manufacturer of all the nodes of the cluster. + */ + @visibility(Lifecycle.Read) + manufacturer?: string; + + /** + * OEM activation status of the cluster. + */ + @visibility(Lifecycle.Read) + oemActivation?: OemActivation; + + /** + * Hardware class of the cluster. + */ + @visibility(Lifecycle.Read) + hardwareClass?: HardwareClass = HardwareClass.Medium; +} + +/** + * Cluster node details. + */ +model ClusterNode { + /** + * Name of the cluster node. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * Id of the node in the cluster. + */ + @visibility(Lifecycle.Read) + id?: float32; + + /** + * State of Windows Server Subscription. + */ + @visibility(Lifecycle.Read) + windowsServerSubscription?: WindowsServerSubscription; + + /** + * Type of the cluster node hardware. + */ + @visibility(Lifecycle.Read) + nodeType?: ClusterNodeType; + + /** + * Edge Hardware Center Resource Id + */ + @visibility(Lifecycle.Read) + ehcResourceId?: string; + + /** + * Manufacturer of the cluster node hardware. + */ + @visibility(Lifecycle.Read) + manufacturer?: string; + + /** + * Model name of the cluster node hardware. + */ + @visibility(Lifecycle.Read) + `model`?: string; + + /** + * Operating system running on the cluster node. + */ + @visibility(Lifecycle.Read) + osName?: string; + + /** + * Version of the operating system running on the cluster node. + */ + @visibility(Lifecycle.Read) + osVersion?: string; + + /** + * Display version of the operating system running on the cluster node. + */ + @visibility(Lifecycle.Read) + osDisplayVersion?: string; + + /** + * Immutable id of the cluster node. + */ + @visibility(Lifecycle.Read) + serialNumber?: string; + + /** + * Number of physical cores on the cluster node. + */ + @visibility(Lifecycle.Read) + coreCount?: float32; + + /** + * Total available memory on the cluster node (in GiB). + */ + @visibility(Lifecycle.Read) + memoryInGiB?: float32; + + /** + * Most recent licensing timestamp. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastLicensingTimestamp?: utcDateTime; + + /** + * OEM activation status of the node. + */ + @visibility(Lifecycle.Read) + oemActivation?: OemActivation; +} + +/** + * Attestation configurations for isolated VM (e.g. TVM, CVM) of the cluster. + */ +model IsolatedVmAttestationConfiguration { + /** + * Fully qualified Azure resource id of the Microsoft Azure attestation resource associated with this cluster. + */ + @visibility(Lifecycle.Read) + attestationResourceId?: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.Attestation/attestationProviders"; + scopes: ["Tenant"]; + } + ]>; + + /** + * Region specific endpoint for relying party service. + */ + @visibility(Lifecycle.Read) + relyingPartyServiceEndpoint?: string; + + /** + * Region specific endpoint for Microsoft Azure Attestation service for the cluster + */ + @visibility(Lifecycle.Read) + attestationServiceEndpoint?: string; +} + +/** + * Secrets location details + */ +model SecretsLocationDetails { + /** + * Type of secrets to store + */ + secretsType: SecretsType; + + /** + * secrets location + */ + secretsLocation: string; +} + +/** + * Local Availability Zone information for HCI cluster + */ +model LocalAvailabilityZones { + /** + * Local Availability Zone name for HCI cluster + */ + localAvailabilityZoneName?: string; + + /** + * Nodes belonging to a particular zone + */ + nodes?: string[]; +} + +/** + * Cluster details to update. + */ +model ClusterPatch { + /** + * Resource tags. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record; + + /** + * Identity of Cluster resource + */ + identity?: Azure.ResourceManager.CommonTypes.ManagedServiceIdentity; + + /** + * Cluster properties. + */ + properties?: ClusterPatchProperties; +} + +/** + * Cluster properties. + */ +model ClusterPatchProperties { + /** + * Endpoint configured for management from the Azure portal + */ + cloudManagementEndpoint?: string; + + /** + * App id of cluster AAD identity. + */ + aadClientId?: string; + + /** + * Tenant id of cluster AAD identity. + */ + aadTenantId?: string; + + /** + * Desired properties of the cluster. + */ + desiredProperties?: ClusterDesiredProperties; +} + +/** + * Update secrets locations change Request. + */ +model SecretsLocationsChangeRequest { + /** + * List of secret locations + */ + @identifiers(#[]) + properties?: SecretsLocationDetails[]; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model UploadCertificateRequest { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: RawCertificateData; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model RawCertificateData { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + certificates?: string[]; +} + +/** + * Cluster Identity details. + */ +model ClusterIdentityResponse { + /** + * Cluster identity properties. + */ + @visibility(Lifecycle.Read) + properties?: ClusterIdentityResponseProperties; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ClusterIdentityResponseProperties { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + aadClientId?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + aadTenantId?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + aadServicePrincipalObjectId?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + aadApplicationObjectId?: string; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model SoftwareAssuranceChangeRequest { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: SoftwareAssuranceChangeRequestProperties; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model SoftwareAssuranceChangeRequestProperties { + /** + * Customer Intent for Software Assurance Benefit. This indicates whether the customer wishes to opt in or out of the Software Assurance program, which provides licensing and support benefits. + */ + softwareAssuranceIntent?: SoftwareAssuranceIntent; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ChangeRingRequest { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: ChangeRingRequestProperties; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ChangeRingRequestProperties { + /** + * The target ring for the cluster. + */ + targetRing?: string; +} + +/** + * Log Collection Request + */ +model LogCollectionRequest { + /** + * Properties for Log Collection Request + */ + properties?: LogCollectionRequestProperties; +} + +/** + * Properties for Log Collection Request + */ +model LogCollectionRequestProperties { + /** + * From DateTimeStamp from when logs need to be connected + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + fromDate: utcDateTime; + + /** + * To DateTimeStamp till when logs need to be connected + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + toDate: utcDateTime; +} + +/** + * Remote Support Request + */ +model RemoteSupportRequest { + /** + * Properties for Remote Support Request + */ + properties?: RemoteSupportRequestProperties; +} + +/** + * Properties for Remote Support Request + */ +model RemoteSupportRequestProperties { + /** + * Remote Support Access Level + */ + @visibility(Lifecycle.Read) + accessLevel?: AccessLevel; + + /** + * Expiration DateTimeStamp when Remote Support Access will be expired + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + expirationTimeStamp?: utcDateTime; + + /** + * Remote Support Type for cluster + */ + remoteSupportType?: RemoteSupportType; +} + +/** + * DeploymentSetting properties + */ +model DeploymentSettingsProperties { + /** + * DeploymentSetting provisioning state + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Azure resource ids of Arc machines to be part of cluster. + */ + arcNodeResourceIds: string[]; + + /** + * The deployment mode for cluster deployment. + */ + deploymentMode: DeploymentMode; + + /** + * The intended operation for a cluster. + */ + operationType?: OperationType = OperationType.ClusterProvisioning; + + /** + * Scale units will contains list of deployment data + */ + deploymentConfiguration: DeploymentConfiguration; + + /** + * Deployment Status reported from cluster. + */ + @visibility(Lifecycle.Read) + reportedProperties?: EceReportedProperties; +} + +/** + * Deployment Configuration + */ +model DeploymentConfiguration { + /** + * deployment template version + */ + version?: string; + + /** + * Scale units will contains list of deployment data + */ + @identifiers(#[]) + scaleUnits: ScaleUnits[]; +} + +/** + * Scale units will contains list of deployment data + */ +#suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@OpenAPI.externalDocs( + "https://learn.microsoft.com/en-us/azure-stack/hci/deploy/deployment-tool-existing-file", + "Deploy Azure Stack HCI using an existing configuration file" +) +model ScaleUnits { + /** + * Deployment Data to deploy AzureStackHCI Cluster. + */ + deploymentData: DeploymentData; + + /** + * Solution builder extension (SBE) partner properties + */ + sbePartnerInfo?: SbePartnerInfo; +} + +/** + * The Deployment data of AzureStackHCI Cluster. + */ +model DeploymentData { + /** + * SecuritySettings to deploy AzureStackHCI Cluster. + */ + securitySettings?: DeploymentSecuritySettings; + + /** + * Observability config to deploy AzureStackHCI Cluster. + */ + observability?: Observability; + + /** + * Observability config to deploy AzureStackHCI Cluster. + */ + cluster?: DeploymentCluster; + + /** + * Identity Provider for the cluster + */ + identityProvider?: IdentityProvider; + + /** + * Storage config to deploy AzureStackHCI Cluster. + */ + storage?: Storage; + + /** + * naming prefix to deploy cluster. + */ + @pattern("^[a-zA-Z0-9-]{1,8}$") + namingPrefix?: string; + + /** + * FQDN to deploy cluster + */ + domainFqdn?: string; + + /** + * InfrastructureNetwork config to deploy AzureStackHCI Cluster. + */ + @identifiers(#[]) + infrastructureNetwork?: InfrastructureNetwork[]; + + /** + * list of physical nodes config to deploy AzureStackHCI Cluster. + */ + @identifiers(#["name"]) + physicalNodes?: PhysicalNodes[]; + + /** + * HostNetwork config to deploy AzureStackHCI Cluster. + */ + hostNetwork?: DeploymentSettingHostNetwork; + + /** + * SDN Integration config to deploy AzureStackHCI Cluster. + */ + sdnIntegration?: SdnIntegration; + + /** + * Is Management Cluster, when true indicates that the cluster is used for managing other clusters + */ + isManagementCluster?: boolean; + + /** + * The path to the Active Directory Organizational Unit container object prepared for the deployment. + */ + adouPath?: string; + + /** + * Azure key vault endpoint. This property is deprecated from 2023-12-01-preview. Please use secrets property instead. + */ + secretsLocation?: string; + + /** + * secrets used for cloud deployment. + */ + @identifiers(#["secretName"]) + secrets?: EceDeploymentSecrets[]; + + /** + * OptionalServices config to deploy AzureStackHCI Cluster. + */ + optionalServices?: OptionalServices; + + /** + * Local Availability Zone information for HCI cluster + */ + @identifiers(#["localAvailabilityZoneName"]) + localAvailabilityZones?: LocalAvailabilityZones[]; + + /** + * Assembly Package details for Validated Solution Recipe for AzureStackHCI Cluster + */ + assemblyInfo?: AssemblyInfo; +} + +/** + * The SecuritySettings of AzureStackHCI Cluster. + */ +model DeploymentSecuritySettings { + /** + * By default, Hypervisor-protected Code Integrity is enabled on your Azure HCI cluster. + */ + hvciProtection?: boolean = true; + + /** + * By default, Secure Boot is enabled on your Azure HCI cluster. This setting is hardware dependent. + */ + drtmProtection?: boolean = true; + + /** + * When set to true, the security baseline is re-applied regularly. + */ + driftControlEnforced?: boolean = true; + + /** + * When set to true, Credential Guard is enabled. + */ + credentialGuardEnforced?: boolean = false; + + /** + * When set to true, the SMB default instance requires sign in for the client and server services. + */ + smbSigningEnforced?: boolean = true; + + /** + * When set to true, cluster east-west traffic is encrypted. + */ + smbClusterEncryption?: boolean = false; + + /** + * When set to true, all the side channel mitigations are enabled + */ + sideChannelMitigationEnforced?: boolean = true; + + /** + * When set to true, BitLocker XTS_AES 256-bit encryption is enabled for all data-at-rest on the OS volume of your Azure Stack HCI cluster. This setting is TPM-hardware dependent. + */ + bitlockerBootVolume?: boolean = true; + + /** + * When set to true, BitLocker XTS-AES 256-bit encryption is enabled for all data-at-rest on your Azure Stack HCI cluster shared volumes. + */ + bitlockerDataVolumes?: boolean = true; + + /** + * WDAC is enabled by default and limits the applications and the code that you can run on your Azure Stack HCI cluster. + */ + wdacEnforced?: boolean = true; +} + +/** + * The Observability of AzureStackHCI Cluster. + */ +model Observability { + /** + * Enables telemetry data to be sent to Microsoft + */ + streamingDataClient?: boolean = true; + + /** + * Location of your cluster. The log and diagnostic data is sent to the appropriate diagnostics servers depending upon where your cluster resides. Setting this to false results in all data sent to Microsoft to be stored outside of the EU. + */ + euLocation?: boolean = false; + + /** + * When set to true, collects log data to facilitate quicker issue resolution. + */ + episodicDataUpload?: boolean = true; +} + +/** + * AzureStackHCI Cluster deployment properties. + */ +model DeploymentCluster { + /** + * The cluster name provided when preparing Active Directory. + */ + name?: string; + + /** + * Use a cloud witness if you have internet access and if you use an Azure Storage account to provide a vote on cluster quorum. A cloud witness uses Azure Blob Storage to read or write a blob file and then uses it to arbitrate in split-brain resolution. Only allowed values are 'Cloud', 'FileShare'. + */ + witnessType?: string; + + /** + * Specify the fileshare path for the local witness for your Azure Stack HCI cluster. + */ + witnessPath?: string; + + /** + * Specify the Azure Storage account name for cloud witness for your Azure Stack HCI cluster. + */ + cloudAccountName?: string; + + /** + * For Azure blob service endpoint type, select either Default or Custom domain. If you selected **Custom domain, enter the domain for the blob service in this format core.windows.net. + */ + azureServiceEndpoint?: string; + + /** + * Hardware class of the cluster. + */ + @visibility(Lifecycle.Read) + hardwareClass?: HardwareClass = HardwareClass.Medium; + + /** + * Cluster Pattern supported. + */ + clusterPattern?: ClusterPattern; +} + +/** + * The Storage config of AzureStackHCI Cluster. + */ +model Storage { + /** + * By default, this mode is set to Express and your storage is configured as per best practices based on the number of nodes in the cluster. Allowed values are 'Express','InfraOnly', 'KeepStorage' + */ + configurationMode?: string = "Express"; +} + +/** + * The InfrastructureNetwork of a AzureStackHCI Cluster. + */ +model InfrastructureNetwork { + /** + * Subnet mask that matches the provided IP address space. + */ + subnetMask?: string; + + /** + * Default gateway that should be used for the provided IP address space. + */ + gateway?: string; + + /** + * Range of IP addresses from which addresses are allocated for nodes within a subnet. + */ + @identifiers(#[]) + ipPools?: IpPools[]; + + /** + * Specifies how DNS servers are configured for the infrastructure network. Allowed values are 'UseDnsServer' to use the provided DNS servers, and 'UseForwarder' to use DNS forwarders. + */ + dnsServerConfig?: DnsServerConfig = DnsServerConfig.UseDnsServer; + + /** + * Details of the DNS Zones to be configured. + */ + @identifiers(#["dnsZoneName"]) + dnsZones?: DnsZones[]; + + /** + * IPv4 address of the DNS servers in your environment. + */ + dnsServers?: string[]; + + /** + * Allows customers to use DHCP for Hosts and Cluster IPs. If not declared, the deployment will default to static IPs. When true, GW and DNS servers are not required + */ + useDhcp?: boolean; +} + +/** + * The dnsServers of a device. + */ +model IpPools { + /** + * Starting IP address for the management network. A minimum of six free, contiguous IPv4 addresses (excluding your host IPs) are needed for infrastructure services such as clustering. + */ + startingAddress?: string; + + /** + * Ending IP address for the management network. A minimum of six free, contiguous IPv4 addresses (excluding your host IPs) are needed for infrastructure services such as clustering. + */ + endingAddress?: string; +} + +/** + * Details of the DNS Zones to be configured. + */ +model DnsZones { + /** + * Name of the DNS Zone to be configured. + */ + dnsZoneName?: string; + + /** + * Forwarder details of the DNS Zone to be configured. + */ + dnsForwarder?: string[]; +} + +/** + * The PhysicalNodes of a cluster. + */ +model PhysicalNodes { + /** + * NETBIOS name of each physical server on your Azure Stack HCI cluster. + */ + name?: string; + + /** + * The IPv4 address assigned to each physical server on your Azure Stack HCI cluster. + */ + ipv4Address?: string; +} + +/** + * The HostNetwork of a cluster. + */ +model DeploymentSettingHostNetwork { + /** + * The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM. + */ + @identifiers(#["name"]) + intents?: DeploymentSettingIntents[]; + + /** + * List of StorageNetworks config to deploy AzureStackHCI Cluster. + */ + @identifiers(#["name"]) + storageNetworks?: DeploymentSettingStorageNetworks[]; + + /** + * Defines how the storage adapters between nodes are connected either switch or switch less.. + */ + storageConnectivitySwitchless?: boolean = false; + + /** + * Optional parameter required only for 3 Nodes Switchless deployments. This allows users to specify IPs and Mask for Storage NICs when Network ATC is not assigning the IPs for storage automatically. + */ + enableStorageAutoIp?: boolean = false; +} + +/** + * The Intents of a cluster. + */ +model DeploymentSettingIntents { + /** + * Name of the network intent you wish to create. + */ + name?: string; + + /** + * List of network traffic types. Only allowed values are 'Compute', 'Storage', 'Management'. + */ + trafficType?: string[]; + + /** + * Array of network interfaces used for the network intent. + */ + adapter?: string[]; + + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. + */ + overrideVirtualSwitchConfiguration?: boolean = false; + + /** + * Set virtualSwitch ConfigurationOverrides for cluster. + */ + virtualSwitchConfigurationOverrides?: DeploymentSettingVirtualSwitchConfigurationOverrides; + + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. + */ + overrideQosPolicy?: boolean = false; + + /** + * Set QoS PolicyOverrides for cluster. + */ + qosPolicyOverrides?: QosPolicyOverrides; + + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. + */ + overrideAdapterProperty?: boolean = false; + + /** + * Set Adapter PropertyOverrides for cluster. + */ + adapterPropertyOverrides?: DeploymentSettingAdapterPropertyOverrides; +} + +/** + * The VirtualSwitchConfigurationOverrides of a cluster. + */ +model DeploymentSettingVirtualSwitchConfigurationOverrides { + /** + * Enable IoV for Virtual Switch + */ + enableIov?: string; + + /** + * Load Balancing Algorithm for Virtual Switch + */ + loadBalancingAlgorithm?: string; +} + +/** + * The QoSPolicyOverrides of a cluster. + */ +model QosPolicyOverrides { + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + priorityValue8021Action_Cluster?: string; + + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + priorityValue8021Action_SMB?: string; + + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + bandwidthPercentage_SMB?: string; +} + +/** + * The AdapterPropertyOverrides of a cluster. + */ +model DeploymentSettingAdapterPropertyOverrides { + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. + */ + jumboPacket?: string; + + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. + */ + networkDirect?: string; + + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. Expected values are 'iWARP', 'RoCEv2', 'RoCE' + */ + networkDirectTechnology?: string; +} + +/** + * The StorageNetworks of a cluster. + */ +model DeploymentSettingStorageNetworks { + /** + * Name of the storage network. + */ + name?: string; + + /** + * Name of the storage network adapter. + */ + networkAdapterName?: string; + + /** + * ID specified for the VLAN storage network. This setting is applied to the network interfaces that route the storage and VM migration traffic. + */ + vlanId?: string; + + /** + * List of Storage adapter physical nodes config to deploy AzureStackHCI Cluster. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @identifiers(#["physicalNode"]) + storageAdapterIPInfo?: DeploymentSettingStorageAdapterIPInfo[]; +} + +/** + * The StorageAdapter physical nodes of a cluster. + */ +model DeploymentSettingStorageAdapterIPInfo { + /** + * storage adapter physical node name. + */ + physicalNode?: string; + + /** + * The IPv4 address assigned to each storage adapter physical node on your Azure Stack HCI cluster. + */ + ipv4Address?: string; + + /** + * The SubnetMask address assigned to each storage adapter physical node on your Azure Stack HCI cluster. + */ + subnetMask?: string; +} + +/** + * SDN Integration config to deploy AzureStackHCI Cluster. + */ +model SdnIntegration { + /** + * network controller config for SDN Integration to deploy AzureStackHCI Cluster. + */ + networkController?: NetworkController; +} + +/** + * network controller config for SDN Integration to deploy AzureStackHCI Cluster. + */ +model NetworkController { + /** + * macAddressPoolStart of network controller used for SDN Integration. + */ + macAddressPoolStart?: string; + + /** + * macAddressPoolStop of network controller used for SDN Integration. + */ + macAddressPoolStop?: string; + + /** + * NetworkVirtualizationEnabled of network controller used for SDN Integration. + */ + networkVirtualizationEnabled?: boolean; +} + +/** + * Protected parameters list stored in keyvault. + */ +model EceDeploymentSecrets { + /** + * Secret name stored in keyvault. + */ + secretName?: string; + + /** + * Secret name expected for Enterprise Cloud Engine (ECE) deployment. + */ + eceSecretName?: EceSecrets; + + /** + * Secret URI stored in keyvault. + */ + secretLocation?: url; +} + +/** + * The OptionalServices of AzureStackHCI Cluster. + */ +model OptionalServices { + /** + * The name of custom location. + */ + customLocation?: string; +} + +/** + * Assembly Package details for Validated Solution Recipe for AzureStackHCI Cluster + */ +model AssemblyInfo { + /** + * Assembly Package version for Validated Solution Recipe for AzureStackHCI Cluster + */ + @visibility(Lifecycle.Read) + packageVersion?: string; + + /** + * Payload properties for Validated Solution Recipe for AzureStackHCI Cluster + */ + @visibility(Lifecycle.Read) + @identifiers(#[]) + payload?: AssemblyInfoPayload[]; +} + +/** + * Payload properties for Validated Solution Recipe for AzureStackHCI Cluster + */ +model AssemblyInfoPayload { + /** + * assembly identifier for Validated Solution Recipe for AzureStackHCI Cluster + */ + @visibility(Lifecycle.Read) + identifier?: string; + + /** + * Hash of assembly package for Validated Solution Recipe for AzureStackHCI Cluster + */ + @visibility(Lifecycle.Read) + hash?: string; + + /** + * File name of assembly package for Validated Solution Recipe for AzureStackHCI Cluster + */ + @visibility(Lifecycle.Read) + fileName?: string; + + /** + * Url of assembly package for Validated Solution Recipe for AzureStackHCI Cluster + */ + @visibility(Lifecycle.Read) + url?: string; +} + +/** + * The solution builder extension (SBE) partner deployment info for cluster. + */ +model SbePartnerInfo { + /** + * SBE package and manifest information for the solution Builder Extension staged for AzureStackHCI cluster deployment. + */ + sbeDeploymentInfo?: SbeDeploymentInfo; + + /** + * List of SBE partner properties for AzureStackHCI cluster deployment. + */ + @identifiers(#[]) + partnerProperties?: SbePartnerProperties[]; + + /** + * SBE credentials list for AzureStackHCI cluster deployment. + */ + @identifiers(#["secretName"]) + credentialList?: SbeCredentials[]; +} + +/** + * Solution builder extension (SBE) package and manifest information for the solution builder extension staged for AzureStackHCI cluster deployment. + */ +model SbeDeploymentInfo { + /** + * SBE package version. + */ + version?: string; + + /** + * SBE family name. + */ + family?: string; + + /** + * SBE manifest publisher. + */ + publisher?: string; + + /** + * SBE Manifest Source. + */ + sbeManifestSource?: string; + + /** + * SBE Manifest Creation Date. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + sbeManifestCreationDate?: utcDateTime; +} + +/** + * Solution builder extension (SBE) partner properties object. + */ +model SbePartnerProperties { + /** + * SBE partner property name. + */ + name?: string; + + /** + * SBE partner property value. + */ + value?: string; +} + +/** + * secrets used for solution builder extension (SBE) partner extensibility. + */ +model SbeCredentials { + /** + * secret name stored in keyvault. + */ + secretName?: string; + + /** + * secret name expected for Enterprise Cloud Engine (ECE). + */ + eceSecretName?: string; + + /** + * secret URI stored in keyvault. + */ + secretLocation?: url; +} + +/** + * The DeploymentStatus of AzureStackHCI Cluster. + */ +model EceReportedProperties { + /** + * validation status of AzureStackHCI Cluster Deployment. + */ + @visibility(Lifecycle.Read) + validationStatus?: EceActionStatus; + + /** + * Deployment status of AzureStackHCI Cluster Deployment. + */ + @visibility(Lifecycle.Read) + deploymentStatus?: EceActionStatus; +} + +/** + * The ECE action plan deployment status for AzureStackHCI Cluster. + */ +model EceActionStatus { + /** + * Status of ECE action AzureStackHCI Cluster Deployment. + */ + @visibility(Lifecycle.Read) + status?: string; + + /** + * List of steps of AzureStackHCI Cluster Deployment. + */ + @visibility(Lifecycle.Read) + @identifiers(#[]) + steps?: DeploymentStep[]; +} + +/** + * The Step of AzureStackHCI Cluster. + */ +model DeploymentStep { + /** + * Name of step. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * Description of step. + */ + @visibility(Lifecycle.Read) + description?: string; + + /** + * FullStepIndex of step. + */ + @visibility(Lifecycle.Read) + fullStepIndex?: string; + + /** + * Start time of step. + */ + @visibility(Lifecycle.Read) + startTimeUtc?: string; + + /** + * End time of step. + */ + @visibility(Lifecycle.Read) + endTimeUtc?: string; + + /** + * Status of step. Allowed values are 'Error', 'Success', 'InProgress' + */ + @visibility(Lifecycle.Read) + status?: string; + + /** + * List of nested steps of AzureStackHCI Cluster Deployment. + */ + @visibility(Lifecycle.Read) + @identifiers(#[]) + steps?: DeploymentStep[]; + + /** + * List of exceptions in AzureStackHCI Cluster Deployment. + */ + @visibility(Lifecycle.Read) + exception?: string[]; +} + +/** + * The validate request for Edge Device. + */ +model ValidateRequest { + /** + * Node Ids against which, current node has to be validated. + */ + edgeDeviceIds: string[]; + + /** + * Additional info required for validation. + */ + additionalInfo?: string; +} + +/** + * An Accepted response with an Operation-Location header. + */ +model ValidateResponse { + /** + * edge device validation status + */ + @visibility(Lifecycle.Read) + status?: string; +} + +/** + * List of Extensions in HCI cluster. + */ +model ExtensionList is Azure.Core.Page; + +/** + * Status of Arc Extension for a particular node in HCI Cluster. + */ +model ExtensionProperties { + /** + * Provisioning state of the Extension proxy resource. Indicates the current lifecycle status of the resource, such as whether it's being created, updated, deleted, or has encountered an error. + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Parameters specific to this extension type. + */ + extensionParameters?: ExtensionParameters; + + /** + * Aggregate state of Arc Extensions across the nodes in this HCI cluster. This reflects the overall status of the extension deployment and operation across all nodes. + */ + @visibility(Lifecycle.Read) + aggregateState?: ExtensionAggregateState; + + /** + * State of Arc Extension in each of the nodes. + */ + @visibility(Lifecycle.Read) + perNodeExtensionDetails?: PerNodeExtensionState[]; + + /** + * Indicates if the extension is managed by Azure or the user. This determines who controls the deployment and lifecycle of the extension. + */ + @visibility(Lifecycle.Read) + managedBy?: ExtensionManagedBy; +} + +/** + * Describes the properties of a Machine Extension. This object mirrors the definition in HybridCompute. + */ +model ExtensionParameters { + /** + * How the extension handler should be forced to update even if the extension configuration has not changed. + */ + forceUpdateTag?: string; + + /** + * The name of the extension handler publisher. + */ + publisher?: string; + + /** + * Specifies the type of the extension; an example is "CustomScriptExtension". + */ + type?: string; + + /** + * Specifies the version of the script handler. Latest version would be used if not specified. + */ + typeHandlerVersion?: string; + + /** + * Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true. + */ + autoUpgradeMinorVersion?: boolean; + + /** + * Json formatted public settings for the extension. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + settings?: unknown; + + /** + * Protected settings (may contain secrets). + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @secret + protectedSettings?: unknown; + + /** + * Indicates whether the extension should be automatically upgraded by the platform if there is a newer version available. + */ + enableAutomaticUpgrade?: boolean; +} + +/** + * Status of Arc Extension for a particular node in HCI Cluster. + */ +model PerNodeExtensionState { + /** + * Name of the node in HCI Cluster. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * Fully qualified resource ID for the particular Arc Extension on this node. + */ + @visibility(Lifecycle.Read) + extension?: string; + + /** + * Specifies the version of the script handler. + */ + @visibility(Lifecycle.Read) + typeHandlerVersion?: string; + + /** + * State of Arc Extension in this node. Reflects the current lifecycle status of the extension on the individual node, such as whether it's being created, updated, deleted, or has encountered an error. + */ + @visibility(Lifecycle.Read) + state?: NodeExtensionState; + + /** + * The extension instance view. + */ + @visibility(Lifecycle.Read) + instanceView?: ExtensionInstanceView; +} + +/** + * Describes the Extension Instance View. + */ +model ExtensionInstanceView { + /** + * The extension name. + */ + name?: string; + + /** + * Specifies the type of the extension; an example is "MicrosoftMonitoringAgent". + */ + type?: string; + + /** + * Specifies the version of the script handler. + */ + typeHandlerVersion?: string; + + /** + * Instance view status. + */ + status?: ExtensionInstanceViewStatus; +} + +/** + * Instance view status. + */ +model ExtensionInstanceViewStatus { + /** + * The status code. + */ + code?: string; + + /** + * The level code. Indicates the severity or importance of the status message. + */ + level?: StatusLevelTypes; + + /** + * The short localizable label for the status. + */ + displayStatus?: string; + + /** + * The detailed status message, including for alerts and error messages. + */ + message?: string; + + /** + * The time of the status. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + time?: utcDateTime; +} + +/** + * Extension Details to update + */ +model ExtensionPatch { + /** + * Describes Machine Extension Properties that can be updated. + */ + properties?: ExtensionPatchProperties; +} + +/** + * Describes Machine Extension Properties that can be updated. + */ +model ExtensionPatchProperties { + /** + * Describes the properties of a Machine Extension that can be updated. + */ + extensionParameters?: ExtensionPatchParameters; +} + +/** + * Describes the properties of a Machine Extension that can be updated. + */ +model ExtensionPatchParameters { + /** + * Specifies the version of the script handler. Latest version would be used if not specified. + */ + typeHandlerVersion?: string; + + /** + * Indicates whether the extension should be automatically upgraded by the platform if there is a newer version available. + */ + enableAutomaticUpgrade?: boolean; + + /** + * Json formatted public settings for the extension. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + settings?: unknown; + + /** + * Protected settings (may contain secrets). + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @secret + protectedSettings?: unknown; +} + +/** + * Describes the parameters for Extension upgrade. + */ +model ExtensionUpgradeParameters { + /** + * Extension Upgrade Target Version. + */ + targetVersion?: string; +} + +/** + * List of Offer proxy resources for the HCI cluster. + */ +model OfferList is Azure.Core.Page; + +/** + * Publisher properties. + */ +model OfferProperties { + /** + * Provisioning State + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + provisioningState?: string; + + /** + * Identifier of the Publisher for the offer + */ + publisherId?: string; + + /** + * JSON serialized catalog content of the offer + */ + content?: string; + + /** + * The API version of the catalog service used to serve the catalog content + */ + contentVersion?: string; + + /** + * Array of SKU mappings + */ + @identifiers(#[]) + skuMappings?: SkuMappings[]; +} + +/** + * SKU Mapping details. + */ +model SkuMappings { + /** + * Identifier of the CatalogPlan for the sku + */ + catalogPlanId?: string; + + /** + * Identifier for the sku + */ + marketplaceSkuId?: string; + + /** + * Array of SKU versions available + */ + marketplaceSkuVersions?: string[]; +} + +/** + * List of Publisher proxy resources for the HCI cluster. + */ +model PublisherList is Azure.Core.Page; + +/** + * Publisher properties. + */ +model PublisherProperties { + /** + * Provisioning State + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + provisioningState?: string; +} + +/** + * Security properties of the resource + */ +model SecurityProperties { + /** + * Secured Core Compliance Assignment + */ + securedCoreComplianceAssignment?: ComplianceAssignmentType = ComplianceAssignmentType.Audit; + + /** + * WDAC Compliance Assignment + */ + wdacComplianceAssignment?: ComplianceAssignmentType = ComplianceAssignmentType.Audit; + + /** + * SMB encryption for intra-cluster traffic Compliance Assignment + */ + smbEncryptionForIntraClusterTrafficComplianceAssignment?: ComplianceAssignmentType = ComplianceAssignmentType.Audit; + + /** + * Security Compliance Status + */ + @visibility(Lifecycle.Read) + securityComplianceStatus?: SecurityComplianceStatus; + + /** + * The status of the last operation. + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; +} + +/** + * Security compliance properties of the resource + */ +model SecurityComplianceStatus { + /** + * Indicates whether HCI hosts meets secured-core server requirements. + */ + @visibility(Lifecycle.Read) + securedCoreCompliance?: ComplianceStatus; + + /** + * Indicates whether HCI hosts have enforced consistent Windows Defender Application Control. + */ + @visibility(Lifecycle.Read) + wdacCompliance?: ComplianceStatus; + + /** + * Indicates whether data at-rest encryption is enabled on Azure Stack HCI clustered volumes. + */ + @visibility(Lifecycle.Read) + dataAtRestEncrypted?: ComplianceStatus; + + /** + * Indicates whether HCI cluster has data in-transit protection. + */ + @visibility(Lifecycle.Read) + dataInTransitProtected?: ComplianceStatus; + + /** + * Time in UTC when compliance status was last updated. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastUpdated?: utcDateTime; +} + +/** + * List of SKU proxy resources for the HCI cluster. + */ +model SkuList is Azure.Core.Page; + +/** + * SKU properties. + */ +model SkuProperties { + /** + * Provisioning State + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + provisioningState?: string; + + /** + * Identifier of the Publisher for the offer + */ + publisherId?: string; + + /** + * Identifier of the Offer for the sku + */ + offerId?: string; + + /** + * JSON serialized catalog content of the sku offer + */ + content?: string; + + /** + * The API version of the catalog service used to serve the catalog content + */ + contentVersion?: string; + + /** + * Array of SKU mappings + */ + @identifiers(#[]) + skuMappings?: SkuMappings[]; +} + +/** + * List of Update runs + */ +model UpdateRunList is Azure.Core.Page; + +/** + * Details of an Update run + */ +model UpdateRunProperties { + /** + * Provisioning state of the UpdateRuns proxy resource. Indicates the current lifecycle status of the update operation, such as whether it has been accepted, is in progress, or has completed. + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Timestamp of the update run was started. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + timeStarted?: utcDateTime; + + /** + * Timestamp of the most recently completed step in the update run. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastUpdatedTime?: utcDateTime; + + /** + * Duration of the update run. + */ + duration?: string; + + /** + * Represents the current state of the update run. Indicates whether the update is in progress, has completed successfully, failed, or is in an unknown state. + */ + state?: UpdateRunPropertiesState; + + /** + * Progress representation of the update run steps. + */ + progress?: Step; +} + +/** + * Progress representation of the update run steps. + */ +model Step { + /** + * Name of the step. + */ + name?: string; + + /** + * More detailed description of the step. + */ + description?: string; + + /** + * Error message, specified if the step is in a failed state. + */ + errorMessage?: string; + + /** + * Status of the step, bubbled up from the ECE action plan for installation attempts. Values are: 'Success', 'Error', 'InProgress', and 'Unknown status'. + */ + status?: string; + + /** + * When the step started, or empty if it has not started executing. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + startTimeUtc?: utcDateTime; + + /** + * When the step reached a terminal state. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + endTimeUtc?: utcDateTime; + + /** + * Completion time of this step or the last completed sub-step. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastUpdatedTimeUtc?: utcDateTime; + + /** + * Expected execution time of a given step. This is optionally authored in the update action plan and can be empty. + */ + expectedExecutionTime?: string; + + /** + * Recursive model for child steps of this step. + */ + @identifiers(#["name"]) + steps?: Step[]; +} + +/** + * List of Updates + */ +model UpdateList is Azure.Core.Page; + +/** + * Details of a singular Update in HCI Cluster + */ +model UpdateProperties { + /** + * Provisioning state of the Updates proxy resource. Indicates the current lifecycle status of the update operation, such as whether it has been accepted, is in progress, or has completed. + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Date that the update was installed. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + installedDate?: utcDateTime; + + /** + * Description of the update. + */ + description?: string; + + /** + * Minimum Sbe Version of the update. + */ + minSbeVersionRequired?: string; + + /** + * Represents the current state of the update as it relates to this stamp. This includes phases such as preparation, installation, scanning, and error handling, providing insight into the update's progress and any issues encountered. + */ + state?: State; + + /** + * If update State is HasPrerequisite, this property contains an array of objects describing prerequisite updates before installing this update. Otherwise, it is empty. + */ + @identifiers(#["packageName"]) + prerequisites?: UpdatePrerequisite[]; + + /** + * An array of component versions for a Solution Bundle update, and an empty array otherwise. + */ + @identifiers(#["version"]) + componentVersions?: PackageVersionInfo[]; + + /** + * Indicates whether a reboot is required after the update or operation. Helps determine if a system restart is necessary to complete the process. + */ + rebootRequired?: RebootRequirement; + + /** + * Overall health state for update-specific health checks. + */ + healthState?: HealthState; + + /** + * An array of PrecheckResult objects. + */ + healthCheckResult?: PrecheckResult[]; + + /** + * Last time the package-specific checks were run. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + healthCheckDate?: utcDateTime; + + /** + * Path where the update package is available. + */ + packagePath?: string; + + /** + * Size of the package. This value is a combination of the size from update metadata and size of the payload that results from the live scan operation for OS update content. + */ + packageSizeInMb?: float32; + + /** + * Display name of the Update + */ + displayName?: string; + + /** + * Version of the update. + */ + version?: string; + + /** + * Publisher of the update package. + */ + publisher?: string; + + /** + * Link to release notes for the update. + */ + releaseLink?: string; + + /** + * Indicates how the update content is made available for download. This determines whether the update is sourced locally, from an online repository, or requires user notification. + */ + availabilityType?: AvailabilityType; + + /** + * Customer-visible type of the update. + */ + packageType?: string; + + /** + * Extensible KV pairs serialized as a string. This is currently used to report the stamp OEM family and hardware model information when an update is flagged as Invalid for the stamp based on OEM type. + */ + additionalProperties?: string; + + /** + * Additional information regarding the state of the update. See definition of UpdateStateProperties type below for more details on this property. + */ + updateStateProperties?: UpdateStateProperties; +} + +/** + * If update State is HasPrerequisite, this property contains an array of objects describing prerequisite updates before installing this update. Otherwise, it is empty. + */ +model UpdatePrerequisite { + /** + * Updatable component type. + */ + updateType?: string; + + /** + * Version of the prerequisite. + */ + version?: string; + + /** + * Friendly name of the prerequisite. + */ + packageName?: string; +} + +/** + * Current version of each updatable component. + */ +model PackageVersionInfo { + /** + * Package type + */ + packageType?: string; + + /** + * Package version + */ + version?: string; + + /** + * Last time this component was updated. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastUpdated?: utcDateTime; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model PrecheckResult { + /** + * Name of the individual test/rule/alert that was executed. Unique, not exposed to the customer. + */ + name?: string; + + /** + * The health check DisplayName localized of the individual test executed. + */ + displayName?: string; + + /** + * Key-value pairs that allow grouping/filtering individual tests. + */ + tags?: PrecheckResultTags; + + /** + * Key-value pairs that allow grouping/filtering individual tests. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + healthCheckTags?: unknown; + + /** + * User-facing name; one or more sentences indicating the direct issue. + */ + title?: string; + + /** + * Represents the current status of the check being performed. Indicates whether the check has completed successfully, failed, or is still in progress. + */ + status?: Status; + + /** + * Indicates the importance or impact level of the result. Determines whether the result is informational, a warning, or a critical issue that may block updates. + */ + severity?: Severity; + + /** + * Detailed overview of the issue and what impact the issue has on the stamp. + */ + description?: string; + + /** + * Set of steps that can be taken to resolve the issue found. + */ + remediation?: string; + + /** + * The unique identifier for the affected resource (such as a node or drive). + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + targetResourceID?: string; + + /** + * The name of the affected resource. + */ + targetResourceName?: string; + + /** + * The type of resource being referred to (well-known set of nouns in infrastructure, aligning with Monitoring). + */ + targetResourceType?: string; + + /** + * The time in which the HealthCheck was called. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + timestamp?: utcDateTime; + + /** + * Property bag of key value pairs for additional information. + */ + additionalData?: string; + + /** + * The name of the services called for the HealthCheck (I.E. Test-AzureStack, Test-Cluster). + */ + healthCheckSource?: string; +} + +/** + * Key-value pairs that allow grouping/filtering individual tests. + */ +model PrecheckResultTags { + /** + * Key that allow grouping/filtering individual tests. + */ + key?: string; + + /** + * Value of the key that allow grouping/filtering individual tests. + */ + value?: string; +} + +/** + * Additional information regarding the state of the update. See definition of UpdateStateProperties type below for more details on this property. + */ +model UpdateStateProperties { + /** + * Progress percentage of ongoing operation. Currently this property is only valid when the update is in the Downloading state, where it maps to how much of the update content has been downloaded. + */ + progressPercentage?: float32; + + /** + * Brief message with instructions for updates of AvailabilityType Notify. + */ + notifyMessage?: string; +} + +/** + * List of Update Summaries + */ +model UpdateSummariesList is Azure.Core.Page; + +/** + * Properties of Update summaries + */ +model UpdateSummariesProperties { + /** + * Provisioning state of the UpdateSummaries proxy resource. Indicates the current lifecycle status of the update summary operation, such as whether it has been accepted, is in progress, or has completed. + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * OEM family name. + */ + oemFamily?: string; + + /** + * Current OEM Version. + */ + currentOemVersion?: string; + + /** + * Name of the hardware model. + */ + hardwareModel?: string; + + /** + * Current version of each updatable component. + */ + @identifiers(#["version"]) + packageVersions?: PackageVersionInfo[]; + + /** + * Current Solution Bundle version of the stamp. + */ + currentVersion?: string; + + /** + * Current Sbe version of the stamp. + */ + currentSbeVersion?: string; + + /** + * Last time an update installation completed successfully. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastUpdated?: utcDateTime; + + /** + * Last time the update service successfully checked for updates + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastChecked?: utcDateTime; + + /** + * Overall health state for update-specific health checks. + */ + healthState?: HealthState; + + /** + * An array of pre-check result objects. + */ + @identifiers(#["name"]) + healthCheckResult?: PrecheckResult[]; + + /** + * Last time the package-specific checks were run. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + healthCheckDate?: utcDateTime; + + /** + * Overall update state of the stamp. Indicates the current status of update deployment across the stamp, including preparation, application, and any issues encountered. + */ + state?: UpdateSummariesPropertiesState; +} + +/** + * Represents properties of a validated solution recipe resource. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ValidatedSolutionRecipeProperties { + /** + * Represents contents of a validated solution recipe. + */ + recipeContent: ValidatedSolutionRecipeContent; + + /** + * Represents the signature of the recipe, to be used for ensuring its integrity. + */ + signature?: string; +} + +/** + * Represents contents of a validated solution recipe resource. + */ +model ValidatedSolutionRecipeContent { + /** + * Represents information about a validated solution recipe. + */ + info: ValidatedSolutionRecipeInfo; + + /** + * Represents capabilities available in a validated solution recipe. + */ + capabilities?: ValidatedSolutionRecipeCapabilities; + + /** + * Represents components available in a validated solution recipe. + */ + @identifiers(#[]) + components: ValidatedSolutionRecipeComponent[]; +} + +/** + * Represents information about a validated solution recipe. + */ +model ValidatedSolutionRecipeInfo { + /** + * Represents the solution type for which this validated solution recipe is applicable. + */ + solutionType: string; + + /** + * Represents the version for which this validated solution recipe is applicable. + */ + version: string; +} + +/** + * Represents capabilities available in a validated solution recipe. + */ +model ValidatedSolutionRecipeCapabilities { + /** + * Represents the cluster capabilities. + */ + @identifiers(#[]) + clusterCapabilities: ValidatedSolutionRecipeCapability[]; + + /** + * Represents the node capabilities. + */ + @identifiers(#[]) + nodeCapabilities: ValidatedSolutionRecipeCapability[]; +} + +/** + * Represents capability available in a validated solution recipe. + */ +model ValidatedSolutionRecipeCapability { + /** + * Represents the capability name. + */ + capabilityName: string; +} + +/** + * Represents component available in a validated solution recipe. + */ +model ValidatedSolutionRecipeComponent { + /** + * Represents the component's name. + */ + name: string; + + /** + * Represents the component's type. + */ + type: string; + + /** + * Represents the component's required version. + */ + requiredVersion?: string; + + /** + * Represents the component's install order. + */ + installOrder?: int64; + + /** + * Represents the component's tags. + */ + tags: string[]; + + /** + * Represents the component's payloads. + */ + @identifiers(#[]) + payloads?: ValidatedSolutionRecipeComponentPayload[]; + + /** + * Represents the component's metadata. + */ + metadata?: ValidatedSolutionRecipeComponentMetadata; +} + +/** + * Represents payloads associated with a component available in a validated solution recipe. + */ +model ValidatedSolutionRecipeComponentPayload { + /** + * Represents the unique identifier of the payload used to query the URL. + */ + identifier: string; + + /** + * Represents the cryptographic hash of the payload, ensuring data integrity. + */ + hash: string; + + /** + * Represents the name of the file associated with the payload. + */ + fileName: string; + + /** + * Represents the URL from which the payload can be downloaded. + */ + url: string; +} + +/** + * Represents metadata associated with a component available in a validated solution recipe. + */ +model ValidatedSolutionRecipeComponentMetadata { + /** + * Represents the type of extension. + */ + extensionType?: string; + + /** + * Represents the publisher of the extension. + */ + publisher?: string; + + /** + * Indicates whether automatic upgrades of the extension are enabled. + */ + enableAutomaticUpgrade?: boolean; + + /** + * Indicates whether the LCM (Lifecycle Management) update of the extension is enabled. + */ + lcmUpdate?: boolean; + + /** + * Specifies the catalog to which the extension belongs. + */ + catalog?: string; + + /** + * Specifies the ring to which the extension belongs, internally used by component. + */ + ring?: string; + + /** + * Specifies the release train to which given component belongs. + */ + releaseTrain?: string; + + /** + * Specifies the link associated with the extension. + */ + link?: string; + + /** + * Specifies the name of the extension. + */ + name?: string; + + /** + * Specifies the expected hash of the extension. + */ + expectedHash?: string; + + /** + * Specifies the preview source of the extension. + */ + previewSource?: string; +} + +/** + * Connectivity related configuration required by arc server. + */ +model ArcConnectivityProperties { + /** + * True indicates ARC connectivity is enabled + */ + enabled?: boolean; + + /** + * Service configurations associated with the connectivity resource. They are only processed by the server if 'enabled' property is set to 'true'. + */ + @identifiers(#["serviceName"]) + serviceConfigurations?: ServiceConfiguration[]; +} + +/** + * Service configuration details + */ +model ServiceConfiguration { + /** + * Specifies the name of the service associated with the update or operation. This helps identify which system component or tool is involved. + */ + serviceName: ServiceName; + + /** + * The port on which service is enabled. + */ + port: int64; +} + +/** + * Represents the properties of a log collection job. + */ +model CollectLogJobProperties { + /** + * From date for log collection. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + fromDate: utcDateTime; + + /** + * To date for log collection. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + toDate: utcDateTime; + + /** + * To date for log collection. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastLogGenerated?: utcDateTime; + + /** + * log collection job reported properties. + */ + @visibility(Lifecycle.Read) + reportedProperties?: LogCollectionReportedProperties; +} + +/** + * Represents the reported properties of a log collection job. + */ +model LogCollectionReportedProperties { + /** + * The percentage of the job that is complete. + */ + @visibility(Lifecycle.Read) + percentComplete?: int32; + + /** + * Validation status of job. + */ + @visibility(Lifecycle.Read) + validationStatus?: EceActionStatus; + + /** + * Deployment status of job. + */ + @visibility(Lifecycle.Read) + deploymentStatus?: EceActionStatus; + + /** + * Details of the log collection session. + */ + @visibility(Lifecycle.Read) + @identifiers(#["correlationId"]) + logCollectionSessionDetails?: LogCollectionJobSession[]; +} + +/** + * Represents a session for collecting logs from an edge device. + */ +model LogCollectionJobSession { + /** + * The timestamp when log collection started, in ISO 8601 format. + */ + @visibility(Lifecycle.Read) + startTime?: string; + + /** + * The timestamp when log collection ended, in ISO 8601 format. + */ + @visibility(Lifecycle.Read) + endTime?: string; + + /** + * The total time logs were collected for, in ISO 8601 duration format. + */ + @visibility(Lifecycle.Read) + timeCollected?: string; + + /** + * The size of the collected logs in bytes. + */ + @visibility(Lifecycle.Read) + logSize?: int32; + + /** + * The status of the log collection session. + */ + @visibility(Lifecycle.Read) + status?: DeviceLogCollectionStatus; + + /** + * A unique identifier for correlating this log collection session with other operations or sessions. + */ + @visibility(Lifecycle.Read) + correlationId?: string; +} + +/** + * Edge device job properties + */ +model EdgeDeviceJobProperties { + /** + * Deployment mode to trigger job. + */ + deploymentMode?: DeploymentMode; + + /** + * Job provisioning state + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Unique, immutable job id. + */ + @visibility(Lifecycle.Read) + jobId?: string; + + /** + * The UTC date and time at which the job started. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + startTimeUtc?: utcDateTime; + + /** + * The UTC date and time at which the job completed. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + endTimeUtc?: utcDateTime; + + /** + * Status of Edge device job. + */ + @visibility(Lifecycle.Read) + status?: JobStatus; +} + +/** + * Represents the properties of an HCI Collect Log job. + */ +model HciCollectLogJobProperties extends HciEdgeDeviceJobProperties { + /** + * From date for log collection. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + fromDate: utcDateTime; + + /** + * To date for log collection. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + toDate: utcDateTime; + + /** + * To date for log collection. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastLogGenerated?: utcDateTime; + + /** + * log collection job reported properties. + */ + @visibility(Lifecycle.Read) + reportedProperties?: LogCollectionReportedProperties; + + /** + * Job Type to support polymorphic resource. + */ + jobType: "CollectLog"; +} + +/** + * HCI Edge device job properties + */ +@discriminator("jobType") +model HciEdgeDeviceJobProperties { + /** + * Deployment mode to trigger job. + */ + deploymentMode?: DeploymentMode; + + /** + * Job provisioning state + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Unique, immutable job id. + */ + @visibility(Lifecycle.Read) + jobId?: string; + + /** + * The UTC date and time at which the job started. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + startTimeUtc?: utcDateTime; + + /** + * The UTC date and time at which the job completed. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + endTimeUtc?: utcDateTime; + + /** + * Status of Edge device job. + */ + @visibility(Lifecycle.Read) + status?: JobStatus; + + /** + * Job Type to support polymorphic resource. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + jobType: HciEdgeDeviceJobType; +} + +/** + * Edge device job for Azure Stack HCI solution. + */ +model HciEdgeDeviceJob extends EdgeDeviceJob { + /** + * HCI Edge device job properties + */ + properties: HciEdgeDeviceJobProperties; + + /** + * Edge Solution type to support polymorphic resource. + */ + kind: "HCI"; +} + +/** + * Represents the properties of a remote support job for HCI. + */ +model HciRemoteSupportJobProperties extends HciEdgeDeviceJobProperties { + /** + * Remote support access level. + */ + accessLevel: RemoteSupportAccessLevel; + + /** + * Remote support expiration timestamp. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + expirationTimestamp: utcDateTime; + + /** + * Remote support type. + */ + type: RemoteSupportType; + + /** + * log collection job reported properties. + */ + @visibility(Lifecycle.Read) + reportedProperties?: RemoteSupportJobReportedProperties; + + /** + * Job Type to support polymorphic resource. + */ + jobType: "RemoteSupport"; +} + +/** + * Represents the reported properties of a remote support job. + */ +model RemoteSupportJobReportedProperties { + /** + * The percentage of the job that is complete. + */ + @visibility(Lifecycle.Read) + percentComplete?: int32; + + /** + * Validation status of job. + */ + @visibility(Lifecycle.Read) + validationStatus?: EceActionStatus; + + /** + * Deployment status of job. + */ + @visibility(Lifecycle.Read) + deploymentStatus?: EceActionStatus; + + /** + * Optional settings for configuring the node for remote support. + */ + @visibility(Lifecycle.Read) + nodeSettings?: RemoteSupportJobNodeSettings; + + /** + * Details of the remote support session. + */ + @visibility(Lifecycle.Read) + @identifiers(#["sessionId"]) + sessionDetails?: RemoteSupportSession[]; +} + +/** + * Represents the settings of a remote support node. + */ +model RemoteSupportJobNodeSettings { + /** + * The state of the remote support node. + */ + @visibility(Lifecycle.Read) + state?: string; + + /** + * The timestamp when the node settings were created, in UTC. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + createdAt?: utcDateTime; + + /** + * The timestamp when the node settings were last updated, in UTC. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + updatedAt?: utcDateTime; + + /** + * The current connection status of the remote support session. + */ + @visibility(Lifecycle.Read) + connectionStatus?: string; + + /** + * The error message, if any, from the last connection attempt. + */ + @visibility(Lifecycle.Read) + connectionErrorMessage?: string; +} + +/** + * Represents a remote support session. + */ +model RemoteSupportSession { + /** + * Unique session Id. + */ + @visibility(Lifecycle.Read) + sessionId?: string; + + /** + * The start time of the remote support session, in UTC. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + sessionStartTime?: utcDateTime; + + /** + * The end time of the remote support session, in UTC. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + sessionEndTime?: utcDateTime; + + /** + * The level of access granted during the remote support session. + */ + @visibility(Lifecycle.Read) + accessLevel?: RemoteSupportAccessLevel; + + /** + * The location where the session transcript is stored. + */ + @visibility(Lifecycle.Read) + transcriptLocation?: string; +} + +/** + * Reported Properties for job triggered from cloud. + */ +model JobReportedProperties { + /** + * The percentage of the job that is complete. + */ + @visibility(Lifecycle.Read) + percentComplete?: int32; + + /** + * Validation status of job. + */ + @visibility(Lifecycle.Read) + validationStatus?: EceActionStatus; + + /** + * Deployment status of job. + */ + @visibility(Lifecycle.Read) + deploymentStatus?: EceActionStatus; +} + +/** + * Represents the properties of a remote support job. + */ +model RemoteSupportJobProperties { + /** + * Remote support access level. + */ + accessLevel: RemoteSupportAccessLevel; + + /** + * Remote support expiration timestamp. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + expirationTimestamp: utcDateTime; + + /** + * Remote support type. + */ + type: RemoteSupportType; + + /** + * log collection job reported properties. + */ + @visibility(Lifecycle.Read) + reportedProperties?: RemoteSupportJobReportedProperties; +} + +/** + * The AdapterPropertyOverrides of a cluster. + */ +model HciEdgeDeviceAdapterPropertyOverrides { + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. + */ + @visibility(Lifecycle.Read) + jumboPacket?: string; + + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. + */ + @visibility(Lifecycle.Read) + networkDirect?: string; + + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. Expected values are 'iWARP', 'RoCEv2', 'RoCE' + */ + @visibility(Lifecycle.Read) + networkDirectTechnology?: string; +} + +/** + * The device Configuration for edge device. + */ +model DeviceConfiguration { + /** + * NIC Details of device + */ + @identifiers(#["adapterName"]) + nicDetails?: NicDetail[]; + + /** + * Device metadata details. + */ + deviceMetadata?: string; +} + +/** + * The NIC Detail of a device. + */ +model NicDetail { + /** + * Adapter Name of NIC + */ + adapterName?: string; + + /** + * Interface Description of NIC + */ + interfaceDescription?: string; + + /** + * Component Id of NIC + */ + componentId?: string; + + /** + * Driver Version of NIC + */ + driverVersion?: string; + + /** + * Subnet Mask of NIC + */ + ip4Address?: string; + + /** + * Subnet Mask of NIC + */ + subnetMask?: string; + + /** + * Default Gateway of NIC + */ + defaultGateway?: string; + + /** + * DNS Servers for NIC + */ + dnsServers?: string[]; + + /** + * Default Isolation of Management NIC + */ + defaultIsolationId?: string; +} + +/** + * Edge Device properties + */ +model EdgeDeviceProperties { + /** + * Device Configuration + */ + deviceConfiguration?: DeviceConfiguration; + + /** + * Provisioning state of edgeDevice resource + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; +} + +/** + * details of validation failure + */ +model HciValidationFailureDetail { + /** + * Exception details while installing extension. + */ + @visibility(Lifecycle.Read) + exception?: string; +} + +/** + * Arc extension installed on edge device. + */ +model HciEdgeDeviceArcExtension { + /** + * Arc extension name installed on edge device. + */ + @visibility(Lifecycle.Read) + extensionName?: string; + + /** + * Arc extension state from arc machine extension. + */ + @visibility(Lifecycle.Read) + state?: ArcExtensionState; + + /** + * Error details while installing Arc extension. + */ + @visibility(Lifecycle.Read) + @identifiers(#[]) + errorDetails?: HciValidationFailureDetail[]; + + /** + * Arc Extension Azure resource id. + */ + @visibility(Lifecycle.Read) + extensionResourceId?: Azure.Core.armResourceIdentifier; + + /** + * Extension version installed. + */ + @visibility(Lifecycle.Read) + typeHandlerVersion?: string; + + /** + * Indicates whether the extension is managed by the user or by Azure. + */ + @visibility(Lifecycle.Read) + managedBy?: ExtensionManagedBy; +} + +/** + * Extensions details for edge device. + */ +model ExtensionProfile { + /** + * List of Arc extensions installed on edge device. + */ + @visibility(Lifecycle.Read) + @identifiers(#["extensionName"]) + extensions?: HciEdgeDeviceArcExtension[]; +} + +/** + * Arc-enabled edge device with HCI OS. + */ +model HciEdgeDevice extends EdgeDevice { + /** + * properties for Arc-enabled edge device with HCI OS. + */ + properties?: HciEdgeDeviceProperties; + + /** + * Device kind to support polymorphic resource. + */ + kind: "HCI"; +} + +/** + * properties for Arc-enabled edge device with HCI OS. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model HciEdgeDeviceProperties extends EdgeDeviceProperties { + /** + * The instance view of all current configurations on HCI device. + */ + @visibility(Lifecycle.Read) + reportedProperties?: HciReportedProperties; +} + +/** + * The device Configuration for HCI device. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model HciReportedProperties extends ReportedProperties { + /** + * HCI device network information. + */ + @visibility(Lifecycle.Read) + networkProfile?: HciNetworkProfile; + + /** + * HCI device OS specific information. + */ + @visibility(Lifecycle.Read) + osProfile?: HciOsProfile; + + /** + * Solution builder extension (SBE) deployment package information. + */ + @visibility(Lifecycle.Read) + sbeDeploymentPackageInfo?: SbeDeploymentPackageInfo; + + /** + * Hci device storage specific information. + */ + @visibility(Lifecycle.Read) + storageProfile?: HciStorageProfile; + + /** + * Hci device hardware specific information. + */ + @visibility(Lifecycle.Read) + hardwareProfile?: HciHardwareProfile; +} + +/** + * The network profile of a device. + */ +model HciNetworkProfile { + /** + * List of NIC Details of device. + */ + @visibility(Lifecycle.Read) + @identifiers(#["adapterName"]) + nicDetails?: HciNicDetail[]; + + /** + * List of switch details for edge device. + */ + @visibility(Lifecycle.Read) + @identifiers(#["switchName"]) + switchDetails?: SwitchDetail[]; + + /** + * HostNetwork config to deploy AzureStackHCI Cluster. + */ + @visibility(Lifecycle.Read) + hostNetwork?: HciEdgeDeviceHostNetwork; + + /** + oftware Defined Networking Properties of the cluster + */ + @visibility(Lifecycle.Read) + @added(Versions.v2025_12_01_preview) + sdnProperties?: SdnProperties; +} + +/** + * The NIC Detail of a device. + */ +model HciNicDetail { + /** + * Adapter Name of NIC + */ + @visibility(Lifecycle.Read) + adapterName?: string; + + /** + * Interface Description of NIC + */ + @visibility(Lifecycle.Read) + interfaceDescription?: string; + + /** + * Component Id of NIC + */ + @visibility(Lifecycle.Read) + componentId?: string; + + /** + * Driver Version of NIC + */ + @visibility(Lifecycle.Read) + driverVersion?: string; + + /** + * Subnet Mask of NIC + */ + @visibility(Lifecycle.Read) + ip4Address?: string; + + /** + * Subnet Mask of NIC + */ + @visibility(Lifecycle.Read) + subnetMask?: string; + + /** + * Default Gateway of NIC + */ + @visibility(Lifecycle.Read) + defaultGateway?: string; + + /** + * DNS Servers for NIC + */ + @visibility(Lifecycle.Read) + dnsServers?: string[]; + + /** + * Default Isolation of Management NIC + */ + @visibility(Lifecycle.Read) + defaultIsolationId?: string; + + /** + * MAC address information of NIC. + */ + @visibility(Lifecycle.Read) + macAddress?: string; + + /** + * The slot attached to the NIC. + */ + @visibility(Lifecycle.Read) + slot?: string; + + /** + * The switch attached to the NIC, if any. + */ + @visibility(Lifecycle.Read) + switchName?: string; + + /** + * The type of NIC, physical, virtual, management. + */ + @visibility(Lifecycle.Read) + nicType?: string; + + /** + * The VLAN ID of the physical NIC. + */ + @visibility(Lifecycle.Read) + vlanId?: string; + + /** + * The status of NIC, up, disconnected. + */ + @visibility(Lifecycle.Read) + nicStatus?: string; + + /** + * Describes the RDMA capability of the network adapter. + */ + @visibility(Lifecycle.Read) + rdmaCapability?: RdmaCapability = RdmaCapability.Disabled; +} + +/** + * List of switch details for edge device. + */ +model SwitchDetail { + /** + * The name of the switch. + */ + @visibility(Lifecycle.Read) + switchName?: string; + + /** + * The type of the switch. e.g. external, internal. + */ + @visibility(Lifecycle.Read) + switchType?: string; + + /** + * This represents extensions installed on virtualSwitch. + */ + @visibility(Lifecycle.Read) + @identifiers(#["extensionName"]) + extensions?: SwitchExtension[]; +} + +/** + * This represents extensions installed on virtualSwitch. + */ +model SwitchExtension { + /** + * Unique identifier for virtualSwitch. + */ + @visibility(Lifecycle.Read) + switchId?: string; + + /** + * This will show extension name for virtualSwitch. + */ + @visibility(Lifecycle.Read) + extensionName?: string; + + /** + * This represents whether extension is enabled on virtualSwitch. + */ + @visibility(Lifecycle.Read) + extensionEnabled?: boolean; +} + +/** + * The HostNetwork of a cluster. + */ +model HciEdgeDeviceHostNetwork { + /** + * The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM. + */ + @visibility(Lifecycle.Read) + @identifiers(#["intentName"]) + intents?: HciEdgeDeviceIntents[]; + + /** + * List of StorageNetworks config to deploy AzureStackHCI Cluster. + */ + @visibility(Lifecycle.Read) + @identifiers(#["networkAdapterName"]) + storageNetworks?: HciEdgeDeviceStorageNetworks[]; + + /** + * Defines how the storage adapters between nodes are connected either switch or switch less. + */ + @visibility(Lifecycle.Read) + storageConnectivitySwitchless?: boolean; + + /** + * Optional parameter required only for 3 Nodes Switchless deployments. This allows users to specify IPs and Mask for Storage NICs when Network ATC is not assigning the IPs for storage automatically. + */ + @visibility(Lifecycle.Read) + enableStorageAutoIp?: boolean = false; +} + +/** + * The Intents of a cluster. + */ +model HciEdgeDeviceIntents { + /** + * Scope for host network intent. + */ + @visibility(Lifecycle.Read) + scope?: int64; + + /** + * IntentType for host network intent. + */ + @visibility(Lifecycle.Read) + intentType?: int64; + + /** + * IsComputeIntentSet for host network intent. + */ + @visibility(Lifecycle.Read) + isComputeIntentSet?: boolean; + + /** + * IsStorageIntentSet for host network intent. + */ + @visibility(Lifecycle.Read) + isStorageIntentSet?: boolean; + + /** + * IntentType for host network intent. + */ + @visibility(Lifecycle.Read) + isOnlyStorage?: boolean; + + /** + * IsManagementIntentSet for host network intent. + */ + @visibility(Lifecycle.Read) + isManagementIntentSet?: boolean; + + /** + * IsStretchIntentSet for host network intent. + */ + @visibility(Lifecycle.Read) + isStretchIntentSet?: boolean; + + /** + * IsOnlyStretch for host network intent. + */ + @visibility(Lifecycle.Read) + isOnlyStretch?: boolean; + + /** + * IsNetworkIntentType for host network intent. + */ + @visibility(Lifecycle.Read) + isNetworkIntentType?: boolean; + + /** + * Name of the network intent you wish to create. + */ + @visibility(Lifecycle.Read) + intentName?: string; + + /** + * Array of adapters used for the network intent. + */ + @visibility(Lifecycle.Read) + intentAdapters?: string[]; + + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. + */ + @visibility(Lifecycle.Read) + overrideVirtualSwitchConfiguration?: boolean; + + /** + * Set virtualSwitch ConfigurationOverrides for cluster. + */ + @visibility(Lifecycle.Read) + virtualSwitchConfigurationOverrides?: HciEdgeDeviceVirtualSwitchConfigurationOverrides; + + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. + */ + @visibility(Lifecycle.Read) + overrideQosPolicy?: boolean; + + /** + * Set QoS PolicyOverrides for cluster. + */ + @visibility(Lifecycle.Read) + qosPolicyOverrides?: QosPolicyOverrides; + + /** + * This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. + */ + @visibility(Lifecycle.Read) + overrideAdapterProperty?: boolean; + + /** + * Set Adapter PropertyOverrides for cluster. + */ + @visibility(Lifecycle.Read) + adapterPropertyOverrides?: HciEdgeDeviceAdapterPropertyOverrides; +} + +/** + * The VirtualSwitchConfigurationOverrides of a cluster. + */ +model HciEdgeDeviceVirtualSwitchConfigurationOverrides { + /** + * Enable IoV for Virtual Switch + */ + @visibility(Lifecycle.Read) + enableIov?: string; + + /** + * Load Balancing Algorithm for Virtual Switch + */ + @visibility(Lifecycle.Read) + loadBalancingAlgorithm?: string; +} + +/** + * The StorageNetworks of a cluster. + */ +model HciEdgeDeviceStorageNetworks { + /** + * Name of the storage network. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * Name of the storage network adapter. + */ + @visibility(Lifecycle.Read) + networkAdapterName?: string; + + /** + * ID specified for the VLAN storage network. This setting is applied to the network interfaces that route the storage and VM migration traffic. + */ + @visibility(Lifecycle.Read) + storageVlanId?: string; + + /** + * List of Storage adapter physical nodes config to deploy AzureStackHCI Cluster. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + @identifiers(#["physicalNode"]) + storageAdapterIPInfo?: HciEdgeDeviceStorageAdapterIPInfo[]; +} + +/** + * The StorageAdapter physical nodes of a cluster. + */ +model HciEdgeDeviceStorageAdapterIPInfo { + /** + * storage adapter physical node name. + */ + @visibility(Lifecycle.Read) + physicalNode?: string; + + /** + * The IPv4 address assigned to each storage adapter physical node on your Azure Stack HCI cluster. + */ + @visibility(Lifecycle.Read) + ipv4Address?: string; + + /** + * The SubnetMask address assigned to each storage adapter physical node on your Azure Stack HCI cluster. + */ + @visibility(Lifecycle.Read) + subnetMask?: string; +} + +/** + * OS configurations for HCI device. + */ +model HciOsProfile { + /** + * The boot type of the device. e.g. UEFI, Legacy etc + */ + @visibility(Lifecycle.Read) + bootType?: string; + + /** + * Version of assembly present on device + */ + @visibility(Lifecycle.Read) + assemblyVersion?: string; +} + +/** + * Solution builder extension (SBE) deployment package information. + */ +model SbeDeploymentPackageInfo { + /** + * SBE deployment validation code. + */ + @visibility(Lifecycle.Read) + code?: string; + + /** + * A detailed message that explains the SBE package validation result. + */ + @visibility(Lifecycle.Read) + message?: string; + + /** + * This represents discovered update results for matching updates and store it as SBE manifest. + */ + @visibility(Lifecycle.Read) + sbeManifest?: string; +} + +/** + * Storage configurations for HCI device. + */ +model HciStorageProfile { + /** + * Number of storage disks in the device with $CanPool as true. + */ + @visibility(Lifecycle.Read) + poolableDisksCount?: int64; +} + +/** + * Hardware configurations for HCI device. + */ +model HciHardwareProfile { + /** + * Process type of the device + */ + @visibility(Lifecycle.Read) + processorType?: string; +} + +/** + * Reported properties pushed from edge device. + */ +model ReportedProperties { + /** + * edge device state. + */ + @visibility(Lifecycle.Read) + deviceState?: DeviceState; + + /** + * Extensions details for edge device. + */ + @visibility(Lifecycle.Read) + extensionProfile?: ExtensionProfile; + + /** + * Most recent edge device sync timestamp in UTC. + */ + @added(Versions.v2025_12_01_preview) + @visibility(Lifecycle.Read) + lastSyncTimestamp?: utcDateTime; + + /** + * CVM support details for edge device. + */ + @added(Versions.v2025_12_01_preview) + @visibility(Lifecycle.Read) + confidentialVmProfile?: ConfidentialVmProfile; +} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/osImages.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/osImages.tsp index 522a753a1fc2..b72c41ebd633 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/osImages.tsp +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/osImages.tsp @@ -12,7 +12,6 @@ using TypeSpec.Versioning; @armProviderNamespace("Microsoft.AzureStackHCI") namespace Microsoft.AzureStackHCI; -@added(Versions.v2025_11_01_preview) @doc("Represents a os image resource.") @parentResource(SubscriptionLocationResource) model OsImage is Azure.ResourceManager.ProxyResource { @@ -23,7 +22,6 @@ model OsImage is Azure.ResourceManager.ProxyResource { } @armResourceOperations -@added(Versions.v2025_11_01_preview) interface OsImages { @doc("Get a os image.") get is ArmResourceRead; @@ -33,7 +31,6 @@ interface OsImages { } #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" -@added(Versions.v2025_11_01_preview) @doc("Represents properties of a os image resource.") model OsImageProperties { @doc("Represents validated solution recipe version of a os image.") diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/platformUpdates.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/platformUpdates.tsp index ad92f2727b70..69df3ee09c33 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/platformUpdates.tsp +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/platformUpdates.tsp @@ -12,7 +12,6 @@ using TypeSpec.Versioning; @armProviderNamespace("Microsoft.AzureStackHCI") namespace Microsoft.AzureStackHCI; -@added(Versions.v2025_11_01_preview) @doc("Represents a platform update resource.") @parentResource(SubscriptionLocationResource) model PlatformUpdate @@ -23,7 +22,6 @@ model PlatformUpdate >; } -@added(Versions.v2025_11_01_preview) @armResourceOperations interface PlatformUpdates { @doc("Get a platform update.") @@ -37,7 +35,6 @@ interface PlatformUpdates { } #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" -@added(Versions.v2025_11_01_preview) @doc("Represents properties of a platform update resource.") model PlatformUpdateProperties { @doc("Represents applicable platform updates.") @@ -45,7 +42,6 @@ model PlatformUpdateProperties { platformUpdateDetails: Array; } -@added(Versions.v2025_11_01_preview) @doc("Represents details of a specific platform update.") model PlatformUpdateDetails { @doc("Represents validated solution recipe version of a platform update.") @@ -59,7 +55,6 @@ model PlatformUpdateDetails { platformPayloads: Array; } -@added(Versions.v2025_11_01_preview) @doc("Represents details of a specific platform update payload.") model PlatformPayload { @doc("Represents url of a platform update payload.") diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/arcSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/arcSettings.json deleted file mode 100644 index 9528a32857fd..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/arcSettings.json +++ /dev/null @@ -1,1185 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-11-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings": { - "get": { - "operationId": "ArcSettings_ListByCluster", - "description": "Get ArcSetting resources of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcSettingList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List ArcSetting resources by HCI Cluster": { - "$ref": "./examples/ListArcSettingsByCluster.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}": { - "get": { - "operationId": "ArcSettings_Get", - "description": "Get ArcSetting resource details of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcSetting" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get ArcSetting": { - "$ref": "./examples/GetArcSetting.json" - } - } - }, - "put": { - "operationId": "ArcSettings_Create", - "description": "Create ArcSetting for HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "name": "arcSetting", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ArcSetting" - }, - "description": "Parameters supplied to the Create ArcSetting resource for this HCI cluster." - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcSetting" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Create ArcSetting": { - "$ref": "./examples/PutArcSetting.json" - } - } - }, - "patch": { - "operationId": "ArcSettings_Update", - "description": "Update ArcSettings for HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "name": "arcSetting", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ArcSettingsPatch" - }, - "description": "ArcSettings parameters that needs to be updated" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcSetting" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Patch ArcSetting": { - "$ref": "./examples/PatchArcSetting.json" - } - } - }, - "delete": { - "operationId": "ArcSettings_Delete", - "description": "Delete ArcSetting resource details of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "Accepted" - }, - "204": { - "description": "No content" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Delete ArcSetting": { - "$ref": "./examples/DeleteArcSetting.json" - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/generatePassword": { - "post": { - "tags": [ - "ArcSettings" - ], - "operationId": "ArcSettings_GeneratePassword", - "description": "Generate password for arc settings.", - "x-ms-examples": { - "Generate Password": { - "$ref": "./examples/GeneratePassword.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/PasswordCredential" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/createArcIdentity": { - "post": { - "tags": [ - "ArcSettings" - ], - "operationId": "ArcSettings_CreateIdentity", - "description": "Create Aad identity for arc settings.", - "x-ms-examples": { - "Create Arc Identity": { - "$ref": "./examples/CreateArcIdentity.json" - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcIdentityResponse" - } - }, - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/reconcile": { - "post": { - "tags": [ - "ArcSettings" - ], - "operationId": "ArcSettings_Reconcile", - "description": "Reconcile Arc Settings with information related to all nodes.", - "x-ms-examples": { - "Reconcile Arc Settings": { - "$ref": "./examples/reconcileArcSettings.json" - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "reconcileArcSettingsRequest", - "in": "body", - "description": "Request for reconciling Arc Settings.", - "required": true, - "schema": { - "$ref": "#/definitions/ReconcileArcSettingsRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcSetting" - } - }, - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/consentAndInstallDefaultExtensions": { - "post": { - "tags": [ - "ArcSettings" - ], - "operationId": "ArcSettings_ConsentAndInstallDefaultExtensions", - "description": "Add consent time for default extensions and initiate extensions installation", - "x-ms-examples": { - "Consent And Install Default Extensions": { - "$ref": "./examples/ConsentAndInstallDefaultExtensions.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcSetting" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/initializeDisableProcess": { - "post": { - "tags": [ - "ArcSettings" - ], - "operationId": "ArcSettings_InitializeDisableProcess", - "description": "Initializes ARC Disable process on the cluster", - "x-ms-examples": { - "Trigger ARC Disable": { - "$ref": "./examples/InitializeDisableProcess.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - } - } - }, - "definitions": { - "ReconcileArcSettingsRequest": { - "description": "Request for reconciling Arc Settings.", - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/ReconcileArcSettingsRequestProperties" - } - }, - "additionalProperties": false - }, - "ReconcileArcSettingsRequestProperties": { - "description": "List of Arc Nodes in the cluster", - "type": "object", - "properties": { - "clusterNodes": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ArcSettingList": { - "description": "List of ArcSetting proxy resources for the HCI cluster.", - "type": "object", - "properties": { - "value": { - "description": "List of ArcSetting proxy resources.", - "type": "array", - "items": { - "$ref": "#/definitions/ArcSetting" - }, - "readOnly": true - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "ArcSettingsPatch": { - "description": "ArcSetting details to update.", - "type": "object", - "properties": { - "tags": { - "description": "Resource tags.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "properties": { - "description": "ArcSettings properties.", - "$ref": "#/definitions/ArcSettingsPatchProperties", - "x-ms-client-flatten": true - } - } - }, - "ArcSettingsPatchProperties": { - "description": "ArcSettings properties.", - "type": "object", - "properties": { - "connectivityProperties": { - "description": "contains connectivity related configuration for ARC resources", - "type": "object", - "items": { - "$ref": "#/definitions/ArcConnectivityProperties" - } - } - } - }, - "ArcSetting": { - "description": "ArcSetting details.", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "description": "ArcSetting properties.", - "$ref": "#/definitions/ArcSettingProperties", - "x-ms-client-flatten": true - } - } - }, - "ArcSettingProperties": { - "description": "ArcSetting properties.", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning state of the ArcSetting proxy resource.", - "type": "string", - "enum": [ - "NotSpecified", - "Error", - "Succeeded", - "Failed", - "Canceled", - "Connected", - "Disconnected", - "Deleted", - "Creating", - "Updating", - "Deleting", - "Moving", - "PartiallySucceeded", - "PartiallyConnected", - "InProgress", - "Accepted", - "Provisioning", - "DisableInProgress" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The provisioning state is not specified." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred during provisioning." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Provisioning completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Provisioning failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Provisioning was canceled." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The resource is connected." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The resource is disconnected." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The resource has been deleted." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The resource is being created." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The resource is being updated." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The resource is being deleted." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The resource is being moved." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "Provisioning partially succeeded." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "The resource is partially connected." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "Provisioning is in progress." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "Provisioning request has been accepted." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The resource is currently provisioning." - }, - { - "name": "DisableInProgress", - "value": "DisableInProgress", - "description": "The resource is being disabled." - } - ] - }, - "readOnly": true - }, - "arcInstanceResourceGroup": { - "description": "The resource group that hosts the Arc agents, ie. Hybrid Compute Machine resources.", - "type": "string" - }, - "arcApplicationClientId": { - "description": "App id of arc AAD identity.", - "type": "string" - }, - "arcApplicationTenantId": { - "description": "Tenant id of arc AAD identity.", - "type": "string" - }, - "arcServicePrincipalObjectId": { - "description": "Object id of arc AAD service principal.", - "type": "string" - }, - "arcApplicationObjectId": { - "description": "Object id of arc AAD identity.", - "type": "string" - }, - "aggregateState": { - "description": "Aggregate state of Arc agent across the nodes in this HCI cluster.", - "type": "string", - "enum": [ - "NotSpecified", - "Error", - "Succeeded", - "Canceled", - "Failed", - "Connected", - "Disconnected", - "Deleted", - "Creating", - "Updating", - "Deleting", - "Moving", - "PartiallySucceeded", - "PartiallyConnected", - "InProgress", - "Accepted", - "Provisioning", - "DisableInProgress" - ], - "x-ms-enum": { - "name": "ArcSettingAggregateState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The aggregate state is not specified." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred in the aggregate state." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The operation successfully completed across all nodes." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The operation was canceled across the nodes." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The operation failed on all or most nodes." - }, - { - "name": "Connected", - "value": "Connected", - "description": "All nodes are connected." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "All nodes are disconnected." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The Arc agent has been deleted from all nodes." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The Arc agent is being created across the nodes." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The Arc agent is being updated across the nodes." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The Arc agent is being deleted across the nodes." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The Arc agent is being moved across the nodes." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "The operation succeeded on some nodes." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "Some nodes are connected, others are not." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The operation is currently in progress across the nodes." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The Arc agent is being provisioned across the nodes." - }, - { - "name": "DisableInProgress", - "value": "DisableInProgress", - "description": "The Arc agent is being disabled across the nodes." - } - ] - }, - "readOnly": true - }, - "perNodeDetails": { - "description": "State of Arc agent in each of the nodes.", - "type": "array", - "items": { - "$ref": "#/definitions/PerNodeState" - }, - "readOnly": true - }, - "connectivityProperties": { - "description": "contains connectivity related configuration for ARC resources", - "type": "object", - "items": { - "$ref": "#/definitions/ArcConnectivityProperties" - } - }, - "defaultExtensions": { - "description": "Properties for each of the default extensions category", - "type": "array", - "items": { - "$ref": "#/definitions/DefaultExtensionDetails" - }, - "x-ms-identifiers": [ - "category" - ], - "readOnly": true - } - } - }, - "PerNodeState": { - "description": "Status of Arc agent for a particular node in HCI Cluster.", - "type": "object", - "properties": { - "name": { - "type": "string", - "readOnly": true, - "description": "Name of the Node in HCI Cluster" - }, - "arcInstance": { - "description": "Fully qualified resource ID for the Arc agent of this node.", - "type": "string", - "readOnly": true - }, - "arcNodeServicePrincipalObjectId": { - "description": "The service principal id of the arc for server node", - "type": "string", - "readOnly": true - }, - "state": { - "description": "State of the Arc agent in this node. Indicates the current lifecycle status of the agent, such as whether it's being provisioned, connected, updated, or has encountered an error.", - "type": "string", - "enum": [ - "NotSpecified", - "Error", - "Succeeded", - "Canceled", - "Failed", - "Connected", - "Disconnected", - "Deleted", - "Creating", - "Updating", - "Deleting", - "Moving", - "PartiallySucceeded", - "PartiallyConnected", - "InProgress", - "Accepted", - "Provisioning", - "DisableInProgress" - ], - "x-ms-enum": { - "name": "NodeArcState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The state is not specified." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred during the agent's lifecycle." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The operation completed successfully." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The operation was canceled before completion." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The operation failed." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The Arc agent is connected on this node." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The Arc agent is disconnected on this node." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The Arc agent has been deleted from this node." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The Arc agent is being created on this node." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The Arc agent is being updated on this node." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The Arc agent is being deleted from this node." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The Arc agent is being moved on this node." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "The operation partially succeeded." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "The Arc agent is partially connected on this node." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The operation is currently in progress." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The Arc agent is currently being provisioned on this node." - }, - { - "name": "DisableInProgress", - "value": "DisableInProgress", - "description": "The Arc agent is in the process of being disabled on this node." - } - ] - }, - "readOnly": true - } - } - }, - "DefaultExtensionDetails": { - "description": "Properties for a particular default extension category.", - "type": "object", - "properties": { - "category": { - "description": "Default extension category", - "type": "string", - "readOnly": true - }, - "consentTime": { - "description": "Consent time for extension category", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "ArcConnectivityProperties": { - "description": "Connectivity related configuration required by arc server.", - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "True indicates ARC connectivity is enabled" - }, - "serviceConfigurations": { - "type": "array", - "description": "Service configurations associated with the connectivity resource. They are only processed by the server if 'enabled' property is set to 'true'.", - "items": { - "$ref": "#/definitions/ServiceConfiguration" - }, - "x-ms-identifiers": [ - "serviceName" - ] - } - }, - "additionalProperties": false - }, - "ServiceConfiguration": { - "type": "object", - "description": "Service configuration details", - "required": [ - "serviceName", - "port" - ], - "properties": { - "serviceName": { - "type": "string", - "description": "Specifies the name of the service associated with the update or operation. This helps identify which system component or tool is involved.", - "enum": [ - "WAC" - ], - "x-ms-enum": { - "name": "serviceName", - "modelAsString": true, - "values": [ - { - "name": "WAC", - "value": "WAC", - "description": "Windows Admin Center (WAC) is the service associated with this operation." - } - ] - } - }, - "port": { - "type": "integer", - "format": "int64", - "description": "The port on which service is enabled." - } - } - }, - "PasswordCredential": { - "type": "object", - "properties": { - "secretText": { - "type": "string" - }, - "keyId": { - "type": "string" - }, - "startDateTime": { - "type": "string", - "format": "date-time" - }, - "endDateTime": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "readOnly": true - }, - "ArcIdentityResponse": { - "description": "ArcIdentity details.", - "type": "object", - "properties": { - "properties": { - "description": "ArcIdentity properties.", - "$ref": "#/definitions/ArcIdentityResponseProperties", - "x-ms-client-flatten": true - } - } - }, - "ArcIdentityResponseProperties": { - "type": "object", - "properties": { - "arcApplicationClientId": { - "type": "string" - }, - "arcApplicationTenantId": { - "type": "string" - }, - "arcServicePrincipalObjectId": { - "type": "string" - }, - "arcApplicationObjectId": { - "type": "string" - } - }, - "additionalProperties": false, - "readOnly": true - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "ArcSettingNameParameter": { - "name": "arcSettingName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the proxy resource holding details of HCI ArcSetting information.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/clusters.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/clusters.json deleted file mode 100644 index 9705f3c58153..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/clusters.json +++ /dev/null @@ -1,2271 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-11-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/clusters": { - "get": { - "tags": [ - "Clusters" - ], - "operationId": "Clusters_ListBySubscription", - "x-ms-examples": { - "List clusters in a given subscription": { - "$ref": "./examples/ListClustersBySubscription.json" - } - }, - "description": "List all HCI clusters in a subscription.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ClusterList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters": { - "get": { - "tags": [ - "Clusters" - ], - "operationId": "Clusters_ListByResourceGroup", - "x-ms-examples": { - "List clusters in a given resource group": { - "$ref": "./examples/ListClustersByResourceGroup.json" - } - }, - "description": "List all HCI clusters in a resource group.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ClusterList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}": { - "get": { - "tags": [ - "Clusters" - ], - "operationId": "Clusters_Get", - "x-ms-examples": { - "Get cluster": { - "$ref": "./examples/GetCluster.json" - } - }, - "description": "Get HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "put": { - "tags": [ - "Clusters" - ], - "operationId": "Clusters_Create", - "x-ms-examples": { - "Create cluster": { - "$ref": "./examples/CreateCluster.json" - } - }, - "description": "Create an HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "cluster", - "in": "body", - "description": "Details of the HCI cluster.", - "required": true, - "schema": { - "$ref": "#/definitions/Cluster" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "patch": { - "tags": [ - "Clusters" - ], - "operationId": "Clusters_Update", - "x-ms-examples": { - "Update cluster": { - "$ref": "./examples/UpdateCluster.json" - } - }, - "description": "Update an HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "cluster", - "in": "body", - "description": "Details of the HCI cluster.", - "required": true, - "schema": { - "$ref": "#/definitions/ClusterPatch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "Clusters" - ], - "operationId": "Clusters_Delete", - "x-ms-examples": { - "Delete cluster": { - "$ref": "./examples/DeleteCluster.json" - } - }, - "description": "Delete an HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "Accepted" - }, - "204": { - "description": "No content" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSecretsLocations": { - "post": { - "operationId": "Clusters_UpdateSecretsLocations", - "tags": [ - "Clusters" - ], - "description": "Update cluster secrets locations.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "clusterName", - "in": "path", - "description": "The name of the cluster.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "The content of the action request", - "required": true, - "schema": { - "$ref": "#/definitions/SecretsLocationsChangeRequest" - } - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "202": { - "description": "Resource operation accepted.", - "headers": { - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - }, - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Update secrets locations for a Cluster": { - "$ref": "./examples/Clusters_UpdateSecretsLocations.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/uploadCertificate": { - "post": { - "tags": [ - "Cluster" - ], - "operationId": "Clusters_UploadCertificate", - "x-ms-examples": { - "Upload certificate": { - "$ref": "./examples/UploadCertificate.json" - } - }, - "description": "Upload certificate.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "uploadCertificateRequest", - "in": "body", - "description": "Upload certificate request.", - "required": true, - "schema": { - "$ref": "#/definitions/UploadCertificateRequest" - } - } - ], - "responses": { - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/createClusterIdentity": { - "post": { - "tags": [ - "Cluster" - ], - "operationId": "Clusters_CreateIdentity", - "description": "Create cluster identity.", - "x-ms-examples": { - "Create cluster Identity": { - "$ref": "./examples/CreateClusterIdentity.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ClusterIdentityResponse" - } - }, - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/extendSoftwareAssuranceBenefit": { - "post": { - "tags": [ - "Cluster" - ], - "operationId": "Clusters_ExtendSoftwareAssuranceBenefit", - "description": "Extends Software Assurance Benefit to a cluster", - "x-ms-examples": { - "Create cluster Identity": { - "$ref": "./examples/ExtendSoftwareAssuranceBenefit.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "softwareAssuranceChangeRequest", - "in": "body", - "description": "Software Assurance Change Request Payload", - "required": true, - "schema": { - "$ref": "#/definitions/SoftwareAssuranceChangeRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/changeRing": { - "post": { - "tags": [ - "Cluster" - ], - "operationId": "Clusters_ChangeRing", - "description": "Changes ring of a cluster", - "x-ms-examples": { - "Change cluster ring": { - "$ref": "./examples/ChangeClusterRing.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "changeRingRequest", - "in": "body", - "description": "Change ring request payload", - "required": true, - "schema": { - "$ref": "#/definitions/ChangeRingRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "202": { - "description": "Accepted", - "headers": { - "Location": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/triggerLogCollection": { - "post": { - "tags": [ - "Cluster" - ], - "operationId": "Clusters_TriggerLogCollection", - "description": "Trigger Log Collection on a cluster", - "x-ms-examples": { - "Trigger Log Collection": { - "$ref": "./examples/TriggerLogCollection.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "logCollectionRequest", - "in": "body", - "description": "Trigger Log Collection Request Payload", - "required": true, - "schema": { - "$ref": "#/definitions/LogCollectionRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "202": { - "description": "Accepted", - "headers": { - "Location": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/configureRemoteSupport": { - "post": { - "tags": [ - "Cluster" - ], - "operationId": "Clusters_ConfigureRemoteSupport", - "description": "Configure RemoteSupport on a cluster", - "x-ms-examples": { - "Configure Remote Support": { - "$ref": "./examples/ConfigureRemoteSupport.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "remoteSupportRequest", - "in": "body", - "description": "Configure Remote Support Request Payload", - "required": true, - "schema": { - "$ref": "#/definitions/RemoteSupportRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "202": { - "description": "Accepted", - "headers": { - "Location": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - } - }, - "definitions": { - "ClusterList": { - "description": "List of clusters.", - "type": "object", - "properties": { - "value": { - "description": "List of clusters.", - "type": "array", - "items": { - "$ref": "#/definitions/Cluster" - } - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "Cluster": { - "description": "Cluster details.", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/TrackedResource" - } - ], - "properties": { - "identity": { - "description": "Identity of Cluster resource", - "$ref": "../../../../../../common-types/resource-management/v4/managedidentity.json#/definitions/ManagedServiceIdentity", - "x-ms-client-flatten": true - }, - "kind": { - "type": "string", - "description": "This property identifies the purpose of the Cluster deployment. For example, a valid value is AzureLocal", - "pattern": "^[-\\w\\._,\\(\\\\\\)]+$", - "x-ms-mutability": [ - "read", - "create" - ] - }, - "properties": { - "description": "Cluster properties.", - "$ref": "#/definitions/ClusterProperties", - "x-ms-client-flatten": true - } - } - }, - "ClusterPatch": { - "description": "Cluster details to update.", - "type": "object", - "properties": { - "tags": { - "description": "Resource tags.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "identity": { - "description": "Identity of Cluster resource", - "$ref": "../../../../../../common-types/resource-management/v4/managedidentity.json#/definitions/ManagedServiceIdentity", - "x-ms-client-flatten": true - }, - "properties": { - "description": "Cluster properties.", - "$ref": "#/definitions/ClusterPatchProperties", - "x-ms-client-flatten": true - } - } - }, - "ClusterProperties": { - "description": "Cluster properties.", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning state. Indicates the current lifecycle status of the resource, including creation, update, deletion, connectivity, and error states.", - "type": "string", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "Accepted", - "Provisioning", - "NotSpecified", - "Creating", - "Updating", - "Deleting", - "Moving", - "Deleted", - "PartiallySucceeded", - "InProgress", - "DisableInProgress", - "Connected", - "PartiallyConnected", - "Disconnected" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The operation completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The operation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The operation was canceled before completion." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The resource is currently being provisioned." - }, - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The provisioning state is not specified." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The resource is being created." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The resource is being updated." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The resource is being deleted." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The resource is being moved." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The resource has been deleted." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "The operation partially succeeded." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The operation is currently in progress." - }, - { - "name": "DisableInProgress", - "value": "DisableInProgress", - "description": "The resource is in the process of being disabled." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The resource is connected." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "The resource is partially connected." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The resource is disconnected." - } - ] - }, - "readOnly": true - }, - "status": { - "description": "Status of the cluster agent. Indicates the current connectivity, validation, and deployment state of the agent within the cluster.", - "type": "string", - "enum": [ - "NotYetRegistered", - "ConnectedRecently", - "NotConnectedRecently", - "Disconnected", - "Error", - "NotSpecified", - "ValidationInProgress", - "ValidationSuccess", - "ValidationFailed", - "DeploymentInProgress", - "DeploymentFailed", - "DeploymentSuccess" - ], - "x-ms-enum": { - "name": "Status", - "modelAsString": true, - "values": [ - { - "name": "NotYetRegistered", - "value": "NotYetRegistered", - "description": "The cluster agent has not yet registered with Azure." - }, - { - "name": "ConnectedRecently", - "value": "ConnectedRecently", - "description": "The cluster agent has connected to Azure recently." - }, - { - "name": "NotConnectedRecently", - "value": "NotConnectedRecently", - "description": "The cluster agent has not connected to Azure recently." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The cluster agent is currently disconnected from Azure." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred in the cluster agent's operation." - }, - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The status of the cluster agent is not specified." - }, - { - "name": "ValidationInProgress", - "value": "ValidationInProgress", - "description": "Validation of the cluster agent is currently in progress." - }, - { - "name": "ValidationSuccess", - "value": "ValidationSuccess", - "description": "Validation of the cluster agent completed successfully." - }, - { - "name": "ValidationFailed", - "value": "ValidationFailed", - "description": "Validation of the cluster agent failed." - }, - { - "name": "DeploymentInProgress", - "value": "DeploymentInProgress", - "description": "Deployment of the cluster agent is currently in progress." - }, - { - "name": "DeploymentFailed", - "value": "DeploymentFailed", - "description": "Deployment of the cluster agent failed." - }, - { - "name": "DeploymentSuccess", - "value": "DeploymentSuccess", - "description": "Deployment of the cluster agent completed successfully." - } - ] - }, - "readOnly": true - }, - "connectivityStatus": { - "description": "Overall connectivity status for the cluster resource. Indicates whether the cluster is connected to Azure, partially connected, or has not recently communicated.", - "type": "string", - "enum": [ - "NotYetRegistered", - "Connected", - "NotConnectedRecently", - "PartiallyConnected", - "Disconnected", - "NotSpecified" - ], - "x-ms-enum": { - "name": "ConnectivityStatus", - "modelAsString": true, - "values": [ - { - "name": "NotYetRegistered", - "value": "NotYetRegistered", - "description": "The cluster has not yet registered with Azure." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The cluster is fully connected to Azure." - }, - { - "name": "NotConnectedRecently", - "value": "NotConnectedRecently", - "description": "The cluster has not connected to Azure recently." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "Some components of the cluster are connected, while others are not." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The cluster is not connected to Azure." - }, - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The connectivity status is not specified." - } - ] - }, - "readOnly": true - }, - "supportStatus": { - "description": "Indicates whether the cluster is under support.", - "type": "string", - "enum": [ - "InSupport", - "OutOfSupport", - "NotSpecified" - ], - "x-ms-enum": { - "name": "SupportStatus", - "modelAsString": true, - "values": [ - { - "name": "InSupport", - "value": "InSupport", - "description": "The cluster is under support." - }, - { - "name": "OutOfSupport", - "value": "OutOfSupport", - "description": "The cluster is out of support." - }, - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The support status is not specified." - } - ] - }, - "readOnly": true - }, - "cloudId": { - "description": "Unique, immutable resource id.", - "type": "string", - "readOnly": true - }, - "ring": { - "description": "The ring to which this cluster belongs to.", - "type": "string", - "readOnly": true - }, - "cloudManagementEndpoint": { - "description": "Endpoint configured for management from the Azure portal.", - "type": "string" - }, - "aadClientId": { - "description": "App id of cluster AAD identity.", - "type": "string" - }, - "aadTenantId": { - "description": "Tenant id of cluster AAD identity.", - "type": "string" - }, - "aadApplicationObjectId": { - "description": "Object id of cluster AAD identity.", - "type": "string" - }, - "aadServicePrincipalObjectId": { - "description": "Id of cluster identity service principal.", - "type": "string" - }, - "softwareAssuranceProperties": { - "description": "Software Assurance properties of the cluster.", - "$ref": "#/definitions/SoftwareAssuranceProperties" - }, - "isManagementCluster": { - "type": "boolean", - "description": "Is Management Cluster, when true indicates that the cluster is used for managing other clusters", - "readOnly": true - }, - "logCollectionProperties": { - "description": "Log Collection properties of the cluster.", - "$ref": "#/definitions/LogCollectionProperties" - }, - "remoteSupportProperties": { - "description": "RemoteSupport properties of the cluster.", - "$ref": "#/definitions/RemoteSupportProperties" - }, - "desiredProperties": { - "description": "Desired properties of the cluster.", - "$ref": "#/definitions/ClusterDesiredProperties" - }, - "reportedProperties": { - "description": "Properties reported by cluster agent.", - "$ref": "#/definitions/ClusterReportedProperties", - "readOnly": true - }, - "isolatedVmAttestationConfiguration": { - "description": "Attestation configurations for isolated VM (e.g. TVM, CVM) of the cluster.", - "$ref": "#/definitions/IsolatedVmAttestationConfiguration", - "readOnly": true - }, - "trialDaysRemaining": { - "description": "Number of days remaining in the trial period.", - "type": "number", - "readOnly": true - }, - "billingModel": { - "description": "Type of billing applied to the resource.", - "type": "string", - "readOnly": true - }, - "registrationTimestamp": { - "description": "First cluster sync timestamp.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "lastSyncTimestamp": { - "description": "Most recent cluster sync timestamp.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "lastBillingTimestamp": { - "description": "Most recent billing meter timestamp.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "serviceEndpoint": { - "description": "Region specific DataPath Endpoint of the cluster.", - "type": "string", - "readOnly": true - }, - "resourceProviderObjectId": { - "description": "Object id of RP Service Principal", - "type": "string", - "readOnly": true - }, - "secretsLocations": { - "type": "array", - "description": "List of secret locations.", - "items": { - "$ref": "#/definitions/SecretsLocationDetails" - }, - "x-ms-identifiers": [] - }, - "clusterPattern": { - "$ref": "./hciCommon.json#/definitions/ClusterPattern", - "description": "Supported Storage Type for HCI Cluster", - "readOnly": true - }, - "localAvailabilityZones": { - "type": "array", - "description": "Local Availability Zone information for HCI cluster", - "items": { - "$ref": "./hciCommon.json#/definitions/LocalAvailabilityZones" - }, - "x-ms-identifiers": [ - "localAvailabilityZoneName" - ] - }, - "identityProvider": { - "type": "string", - "description": "Identity Provider for the cluster", - "default": "ActiveDirectory", - "enum": [ - "ActiveDirectory", - "LocalIdentity" - ], - "x-ms-enum": { - "name": "IdentityProvider", - "modelAsString": true, - "values": [ - { - "name": "ActiveDirectory", - "value": "ActiveDirectory", - "description": "Uses Active Directory as the identity provider, enabling domain-based authentication and centralized identity management. This is the default option." - }, - { - "name": "LocalIdentity", - "value": "LocalIdentity", - "description": "Uses a local identity system integrated with Azure Key Vault for authentication. Suitable for AD-less environments where Active Directory is not available or required." - } - ] - }, - "readOnly": true - } - } - }, - "ClusterPatchProperties": { - "description": "Cluster properties.", - "type": "object", - "properties": { - "cloudManagementEndpoint": { - "description": "Endpoint configured for management from the Azure portal", - "type": "string" - }, - "aadClientId": { - "description": "App id of cluster AAD identity.", - "type": "string" - }, - "aadTenantId": { - "description": "Tenant id of cluster AAD identity.", - "type": "string" - }, - "desiredProperties": { - "description": "Desired properties of the cluster.", - "$ref": "#/definitions/ClusterDesiredProperties" - } - } - }, - "LogCollectionProperties": { - "description": "Log Collection properties of the cluster.", - "type": "object", - "properties": { - "fromDate": { - "description": "From DateTimeStamp from when logs need to be connected", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "toDate": { - "description": "To DateTimeStamp till when logs need to be connected", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "lastLogGenerated": { - "description": "Recent DateTimeStamp where logs are successfully generated", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "logCollectionSessionDetails": { - "type": "array", - "items": { - "$ref": "#/definitions/LogCollectionSession" - }, - "readOnly": true - } - } - }, - "LogCollectionSession": { - "description": "Log Collection Session details of the cluster.", - "type": "object", - "properties": { - "logStartTime": { - "description": "Start Time of the logs when it was collected", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "logEndTime": { - "description": "End Time of the logs when it was collected", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "timeCollected": { - "description": "Duration of logs collected", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "logSize": { - "description": "Size of the logs collected", - "type": "integer", - "format": "int64", - "readOnly": true - }, - "logCollectionStatus": { - "description": "LogCollection status", - "type": "string", - "enum": [ - "None", - "InProgress", - "Failed", - "Succeeded" - ], - "x-ms-enum": { - "name": "LogCollectionStatus", - "modelAsString": true, - "values": [ - { - "name": "None", - "value": "None", - "description": "No log collection has been initiated." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "Log collection is currently in progress." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Log collection has failed." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Log collection completed successfully." - } - ] - }, - "readOnly": true - }, - "correlationId": { - "description": "CorrelationId of the log collection", - "type": "string", - "readOnly": true - }, - "logCollectionJobType": { - "description": "Specifies the type of log collection job. Determines whether the logs are collected immediately on demand or as part of a scheduled operation.", - "type": "string", - "enum": [ - "OnDemand", - "Scheduled" - ], - "x-ms-enum": { - "name": "LogCollectionJobType", - "modelAsString": true, - "values": [ - { - "name": "OnDemand", - "value": "OnDemand", - "description": "Log collection is triggered manually and executed immediately." - }, - { - "name": "Scheduled", - "value": "Scheduled", - "description": "Log collection is scheduled to run at a predefined time or interval." - } - ] - }, - "readOnly": true - }, - "endTimeCollected": { - "description": "End Time of the logs when it was collected", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "logCollectionError": { - "$ref": "#/definitions/LogCollectionError", - "readOnly": true - } - } - }, - "AccessLevel": { - "description": "Remote Support Access Level", - "type": "string", - "enum": [ - "Diagnostics", - "DiagnosticsAndRepair" - ], - "x-ms-enum": { - "name": "AccessLevel", - "modelAsString": true, - "values": [ - { - "name": "Diagnostics", - "value": "Diagnostics", - "description": "Allows remote diagnostics operations only." - }, - { - "name": "DiagnosticsAndRepair", - "value": "DiagnosticsAndRepair", - "description": "Allows both remote diagnostics and repair operations." - } - ] - } - }, - "LogCollectionError": { - "description": "Log Collection Error details of the cluster.", - "type": "object", - "properties": { - "errorCode": { - "description": "Error Code of the log collection", - "type": "string", - "readOnly": true - }, - "errorMessage": { - "description": "Error Message of the log collection", - "type": "string", - "readOnly": true - } - } - }, - "RemoteSupportProperties": { - "description": "Remote Support properties of the cluster.", - "type": "object", - "properties": { - "accessLevel": { - "$ref": "#/definitions/AccessLevel", - "readOnly": true - }, - "expirationTimeStamp": { - "description": "Expiration DateTimeStamp when Remote Support Access will be expired", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "remoteSupportType": { - "description": "Remote Support Type for cluster", - "type": "string", - "enum": [ - "Enable", - "Revoke" - ], - "x-ms-enum": { - "name": "RemoteSupportType", - "modelAsString": true, - "values": [ - { - "name": "Enable", - "value": "Enable", - "description": "Enable remote support for the cluster." - }, - { - "name": "Revoke", - "value": "Revoke", - "description": "Revoke previously enabled remote support for the cluster." - } - ] - }, - "readOnly": true - }, - "remoteSupportNodeSettings": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteSupportNodeSettings" - }, - "readOnly": true - }, - "remoteSupportSessionDetails": { - "type": "array", - "items": { - "$ref": "#/definitions/PerNodeRemoteSupportSession" - }, - "readOnly": true - } - } - }, - "RemoteSupportNodeSettings": { - "description": "Remote Support Node Settings of the cluster.", - "type": "object", - "properties": { - "arcResourceId": { - "description": "Arc ResourceId of the Node", - "type": "string", - "readOnly": true - }, - "state": { - "description": "Remote Support Access Connection State on the Node", - "type": "string", - "readOnly": true - }, - "createdAt": { - "description": "Remote Support Enablement Request Created TimeStamp on the Node", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "description": "Remote Support Enablement Request Updated TimeStamp on the Node", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "connectionStatus": { - "description": "Remote Support Access Connection Status on the Node", - "type": "string", - "readOnly": true - }, - "connectionErrorMessage": { - "description": "Remote Support Access Connection Error Message on the Node", - "type": "string", - "readOnly": true - }, - "transcriptLocation": { - "description": "Remote Support Transcript location on the node", - "type": "string", - "readOnly": true - } - } - }, - "PerNodeRemoteSupportSession": { - "description": "Remote Support Node Session Details on the Node.", - "type": "object", - "properties": { - "sessionStartTime": { - "description": "Remote Support Session StartTime on the Node", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "sessionEndTime": { - "description": "Remote Support Session EndTime on the Node", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "nodeName": { - "description": "Name of the node", - "type": "string", - "readOnly": true - }, - "duration": { - "description": "Duration of Remote Support Enablement", - "type": "integer", - "format": "int64", - "readOnly": true - }, - "accessLevel": { - "$ref": "#/definitions/AccessLevel", - "readOnly": true - } - } - }, - "SoftwareAssuranceProperties": { - "description": "Software Assurance properties of the cluster.", - "type": "object", - "properties": { - "softwareAssuranceStatus": { - "description": "Status of the Software Assurance for the cluster.", - "type": "string", - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "SoftwareAssuranceStatus", - "modelAsString": true, - "values": [ - { - "name": "Enabled", - "value": "Enabled", - "description": "Software Assurance is enabled for the cluster." - }, - { - "name": "Disabled", - "value": "Disabled", - "description": "Software Assurance is disabled for the cluster." - } - ] - }, - "readOnly": true - }, - "softwareAssuranceIntent": { - "description": "Customer Intent for Software Assurance Benefit.", - "type": "string", - "enum": [ - "Enable", - "Disable" - ], - "x-ms-enum": { - "name": "SoftwareAssuranceIntent", - "modelAsString": true, - "values": [ - { - "name": "Enable", - "value": "Enable", - "description": "Customer intends to enable the Software Assurance benefit." - }, - { - "name": "Disable", - "value": "Disable", - "description": "Customer intends to disable the Software Assurance benefit." - } - ] - } - }, - "lastUpdated": { - "description": "TimeStamp denoting the latest SA benefit applicability is validated.", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "IsolatedVmAttestationConfiguration": { - "description": "Attestation configurations for isolated VM (e.g. TVM, CVM) of the cluster.", - "type": "object", - "properties": { - "attestationResourceId": { - "description": "Fully qualified Azure resource id of the Microsoft Azure attestation resource associated with this cluster.", - "type": "string", - "format": "arm-id", - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.Attestation/attestationProviders", - "scopes": [ - "Tenant" - ] - } - ] - }, - "readOnly": true - }, - "relyingPartyServiceEndpoint": { - "description": "Region specific endpoint for relying party service.", - "type": "string", - "readOnly": true - }, - "attestationServiceEndpoint": { - "description": "Region specific endpoint for Microsoft Azure Attestation service for the cluster", - "type": "string", - "readOnly": true - } - } - }, - "ClusterDesiredProperties": { - "description": "Desired properties of the cluster.", - "type": "object", - "properties": { - "windowsServerSubscription": { - "description": "Desired state of Windows Server Subscription.", - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "WindowsServerSubscription", - "modelAsString": true, - "values": [ - { - "name": "Disabled", - "value": "Disabled", - "description": "Windows Server Subscription is disabled." - }, - { - "name": "Enabled", - "value": "Enabled", - "description": "Windows Server Subscription is enabled." - } - ] - } - }, - "diagnosticLevel": { - "description": "Desired level of diagnostic data emitted by the cluster.", - "type": "string", - "enum": [ - "Off", - "Basic", - "Enhanced" - ], - "x-ms-enum": { - "name": "DiagnosticLevel", - "modelAsString": true, - "values": [ - { - "name": "Off", - "value": "Off", - "description": "No diagnostic data will be emitted." - }, - { - "name": "Basic", - "value": "Basic", - "description": "Basic diagnostic data will be emitted, including essential health metrics." - }, - { - "name": "Enhanced", - "value": "Enhanced", - "description": "Enhanced diagnostic data will be emitted, including detailed performance and usage metrics." - } - ] - } - } - } - }, - "ClusterReportedProperties": { - "description": "Properties reported by cluster agent.", - "type": "object", - "properties": { - "clusterName": { - "description": "Name of the on-prem cluster connected to this resource.", - "type": "string", - "readOnly": true - }, - "clusterId": { - "description": "Unique id generated by the on-prem cluster.", - "type": "string", - "readOnly": true - }, - "clusterVersion": { - "description": "Version of the cluster software.", - "type": "string", - "readOnly": true - }, - "nodes": { - "description": "List of nodes reported by the cluster.", - "type": "array", - "items": { - "$ref": "#/definitions/ClusterNode" - }, - "readOnly": true - }, - "lastUpdated": { - "description": "Last time the cluster reported the data.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "msiExpirationTimeStamp": { - "description": "Specifies the expiration timestamp of the cluster's Managed Service Identity (MSI). The value is expressed in Coordinated Universal Time (UTC).", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "imdsAttestation": { - "description": "IMDS attestation status of the cluster.", - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "ImdsAttestation", - "modelAsString": true, - "values": [ - { - "name": "Disabled", - "value": "Disabled", - "description": "IMDS attestation is disabled for the cluster." - }, - { - "name": "Enabled", - "value": "Enabled", - "description": "IMDS attestation is enabled for the cluster." - } - ] - }, - "readOnly": true - }, - "diagnosticLevel": { - "description": "Level of diagnostic data emitted by the cluster.", - "type": "string", - "enum": [ - "Off", - "Basic", - "Enhanced" - ], - "x-ms-enum": { - "name": "DiagnosticLevel", - "modelAsString": true, - "values": [ - { - "name": "Off", - "value": "Off", - "description": "No diagnostic data will be emitted." - }, - { - "name": "Basic", - "value": "Basic", - "description": "Basic diagnostic data will be emitted, including essential health metrics." - }, - { - "name": "Enhanced", - "value": "Enhanced", - "description": "Enhanced diagnostic data will be emitted, including detailed performance and usage metrics." - } - ] - } - }, - "supportedCapabilities": { - "description": "Capabilities supported by the cluster.", - "type": "array", - "readOnly": true, - "items": { - "type": "string" - } - }, - "clusterType": { - "description": "Specifies the type of hardware vendor for all nodes in the cluster. Indicates whether the nodes are provided by Microsoft or a third-party vendor.", - "type": "string", - "enum": [ - "FirstParty", - "ThirdParty" - ], - "x-ms-enum": { - "name": "ClusterNodeType", - "modelAsString": true, - "values": [ - { - "name": "FirstParty", - "value": "FirstParty", - "description": "All nodes in the cluster are provided and managed by Microsoft." - }, - { - "name": "ThirdParty", - "value": "ThirdParty", - "description": "All nodes in the cluster are provided and managed by a third-party vendor." - } - ] - }, - "readOnly": true - }, - "manufacturer": { - "description": "The manufacturer of all the nodes of the cluster.", - "type": "string", - "readOnly": true - }, - "oemActivation": { - "description": "OEM activation status of the cluster.", - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "OemActivation", - "modelAsString": true, - "values": [ - { - "name": "Disabled", - "value": "Disabled", - "description": "OEM activation is disabled for the cluster." - }, - { - "name": "Enabled", - "value": "Enabled", - "description": "OEM activation is enabled for the cluster." - } - ] - }, - "readOnly": true - }, - "hardwareClass": { - "$ref": "./hciCommon.json#/definitions/HardwareClass", - "description": "Hardware class of the cluster.", - "readOnly": true - } - } - }, - "ClusterNode": { - "description": "Cluster node details.", - "type": "object", - "properties": { - "name": { - "description": "Name of the cluster node.", - "type": "string", - "readOnly": true - }, - "id": { - "description": "Id of the node in the cluster.", - "type": "number", - "readOnly": true - }, - "windowsServerSubscription": { - "description": "State of Windows Server Subscription.", - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "WindowsServerSubscription", - "modelAsString": true, - "values": [ - { - "name": "Disabled", - "value": "Disabled", - "description": "Windows Server Subscription is disabled." - }, - { - "name": "Enabled", - "value": "Enabled", - "description": "Windows Server Subscription is enabled." - } - ] - }, - "readOnly": true - }, - "nodeType": { - "description": "Type of the cluster node hardware.", - "type": "string", - "enum": [ - "FirstParty", - "ThirdParty" - ], - "x-ms-enum": { - "name": "ClusterNodeType", - "modelAsString": true, - "values": [ - { - "name": "FirstParty", - "value": "FirstParty", - "description": "Cluster nodes are provided and managed by Microsoft." - }, - { - "name": "ThirdParty", - "value": "ThirdParty", - "description": "Cluster nodes are provided and managed by a third-party vendor." - } - ] - }, - "readOnly": true - }, - "ehcResourceId": { - "description": "Edge Hardware Center Resource Id", - "type": "string", - "readOnly": true - }, - "manufacturer": { - "description": "Manufacturer of the cluster node hardware.", - "type": "string", - "readOnly": true - }, - "model": { - "description": "Model name of the cluster node hardware.", - "type": "string", - "readOnly": true - }, - "osName": { - "description": "Operating system running on the cluster node.", - "type": "string", - "readOnly": true - }, - "osVersion": { - "description": "Version of the operating system running on the cluster node.", - "type": "string", - "readOnly": true - }, - "osDisplayVersion": { - "description": "Display version of the operating system running on the cluster node.", - "type": "string", - "readOnly": true - }, - "serialNumber": { - "description": "Immutable id of the cluster node.", - "type": "string", - "readOnly": true - }, - "coreCount": { - "description": "Number of physical cores on the cluster node.", - "type": "number", - "readOnly": true - }, - "memoryInGiB": { - "description": "Total available memory on the cluster node (in GiB).", - "type": "number", - "readOnly": true - }, - "lastLicensingTimestamp": { - "description": "Most recent licensing timestamp.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "oemActivation": { - "description": "OEM activation status of the node.", - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "OemActivation", - "modelAsString": true, - "values": [ - { - "name": "Disabled", - "value": "Disabled", - "description": "OEM activation is disabled for the node." - }, - { - "name": "Enabled", - "value": "Enabled", - "description": "OEM activation is enabled for the node." - } - ] - }, - "readOnly": true - } - } - }, - "RawCertificateData": { - "type": "object", - "properties": { - "certificates": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "UploadCertificateRequest": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/RawCertificateData" - } - }, - "additionalProperties": false - }, - "LogCollectionRequestProperties": { - "description": "Properties for Log Collection Request", - "type": "object", - "properties": { - "fromDate": { - "description": "From DateTimeStamp from when logs need to be connected", - "type": "string", - "format": "date-time" - }, - "toDate": { - "description": "To DateTimeStamp till when logs need to be connected", - "type": "string", - "format": "date-time" - } - }, - "required": [ - "fromDate", - "toDate" - ], - "additionalProperties": false - }, - "RemoteSupportRequestProperties": { - "description": "Properties for Remote Support Request", - "type": "object", - "properties": { - "accessLevel": { - "$ref": "#/definitions/AccessLevel", - "readOnly": true - }, - "expirationTimeStamp": { - "description": "Expiration DateTimeStamp when Remote Support Access will be expired", - "type": "string", - "format": "date-time" - }, - "remoteSupportType": { - "description": "Remote Support Type for cluster", - "type": "string", - "enum": [ - "Enable", - "Revoke" - ], - "x-ms-enum": { - "name": "RemoteSupportType", - "modelAsString": true, - "values": [ - { - "name": "Enable", - "value": "Enable", - "description": "Enable remote support for the cluster." - }, - { - "name": "Revoke", - "value": "Revoke", - "description": "Revoke previously enabled remote support for the cluster." - } - ] - } - } - }, - "additionalProperties": false - }, - "SecretsLocationDetails": { - "type": "object", - "description": "Secrets location details", - "properties": { - "secretsType": { - "$ref": "#/definitions/SecretsType", - "description": "Type of secrets to store" - }, - "secretsLocation": { - "type": "string", - "description": "secrets location" - } - }, - "required": [ - "secretsType", - "secretsLocation" - ] - }, - "SecretsLocationsChangeRequest": { - "type": "object", - "description": "Update secrets locations change Request.", - "properties": { - "properties": { - "type": "array", - "description": "List of secret locations", - "items": { - "$ref": "#/definitions/SecretsLocationDetails" - }, - "x-ms-identifiers": [] - } - } - }, - "SecretsType": { - "type": "string", - "description": "Type of secrets to store", - "enum": [ - "BackupSecrets" - ], - "x-ms-enum": { - "name": "SecretsType", - "modelAsString": true, - "values": [ - { - "name": "BackupSecrets", - "value": "BackupSecrets", - "description": "Backup secrets type" - } - ] - } - }, - "SoftwareAssuranceChangeRequestProperties": { - "type": "object", - "properties": { - "softwareAssuranceIntent": { - "type": "string", - "description": "Customer Intent for Software Assurance Benefit. This indicates whether the customer wishes to opt in or out of the Software Assurance program, which provides licensing and support benefits.", - "enum": [ - "Enable", - "Disable" - ], - "x-ms-enum": { - "name": "SoftwareAssuranceIntent", - "modelAsString": true, - "values": [ - { - "name": "Enable", - "value": "Enable", - "description": "Customer intends to enable the Software Assurance benefit." - }, - { - "name": "Disable", - "value": "Disable", - "description": "Customer intends to disable the Software Assurance benefit." - } - ] - } - } - }, - "additionalProperties": false - }, - "SoftwareAssuranceChangeRequest": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/SoftwareAssuranceChangeRequestProperties" - } - }, - "additionalProperties": false - }, - "LogCollectionRequest": { - "description": "Log Collection Request", - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/LogCollectionRequestProperties" - } - }, - "additionalProperties": false - }, - "RemoteSupportRequest": { - "description": "Remote Support Request", - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/RemoteSupportRequestProperties" - } - }, - "additionalProperties": false - }, - "ChangeRingRequestProperties": { - "type": "object", - "properties": { - "targetRing": { - "type": "string", - "description": "The target ring for the cluster." - } - }, - "additionalProperties": false - }, - "ChangeRingRequest": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/ChangeRingRequestProperties" - } - }, - "additionalProperties": false - }, - "ClusterIdentityResponse": { - "description": "Cluster Identity details.", - "type": "object", - "properties": { - "properties": { - "description": "Cluster identity properties.", - "$ref": "#/definitions/ClusterIdentityResponseProperties", - "x-ms-client-flatten": true - } - } - }, - "ClusterIdentityResponseProperties": { - "type": "object", - "properties": { - "aadClientId": { - "type": "string" - }, - "aadTenantId": { - "type": "string" - }, - "aadServicePrincipalObjectId": { - "type": "string" - }, - "aadApplicationObjectId": { - "type": "string" - } - }, - "additionalProperties": false, - "readOnly": true - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/deploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/deploymentSettings.json deleted file mode 100644 index 03c362ce3001..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/deploymentSettings.json +++ /dev/null @@ -1,1131 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Deployment Settings", - "version": "2025-11-01-preview", - "description": "Azure Stack HCI Deployment Settings." - }, - "schemes": [ - "https" - ], - "host": "management.azure.com", - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "tags": [ - { - "name": "DeploymentSettings" - } - ], - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/deploymentSettings": { - "get": { - "operationId": "DeploymentSettings_ListByClusters", - "tags": [ - "DeploymentSettings" - ], - "description": "List DeploymentSetting resources by Clusters", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - } - ], - "responses": { - "200": { - "description": "ARM operation completed successfully.", - "schema": { - "$ref": "#/definitions/DeploymentSettingListResult" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Deployment Settings": { - "$ref": "./examples/ListDeploymentSettingsByCluster.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/deploymentSettings/{deploymentSettingsName}": { - "get": { - "operationId": "DeploymentSettings_Get", - "tags": [ - "DeploymentSettings" - ], - "description": "Get a DeploymentSetting", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "name": "deploymentSettingsName", - "in": "path", - "description": "Name of Deployment Setting", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "200": { - "description": "ARM operation completed successfully.", - "schema": { - "$ref": "#/definitions/DeploymentSetting" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Deployment Settings": { - "$ref": "./examples/GetDeploymentSettings.json" - } - } - }, - "put": { - "operationId": "DeploymentSettings_CreateOrUpdate", - "tags": [ - "DeploymentSettings" - ], - "description": "Create a DeploymentSetting", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "name": "deploymentSettingsName", - "in": "path", - "description": "Name of Deployment Setting", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "resource", - "in": "body", - "description": "Resource create parameters.", - "required": true, - "schema": { - "$ref": "#/definitions/DeploymentSetting" - } - } - ], - "responses": { - "200": { - "description": "Resource 'DeploymentSetting' update operation succeeded", - "schema": { - "$ref": "#/definitions/DeploymentSetting" - } - }, - "201": { - "description": "Resource 'DeploymentSetting' create operation succeeded", - "schema": { - "$ref": "#/definitions/DeploymentSetting" - }, - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Create Deployment Settings": { - "$ref": "./examples/PutDeploymentSettings.json" - }, - "Create Deployment Settings Without Active Directory Integration": { - "$ref": "./examples/PutDeploymentSettingsWithADLess.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-long-running-operation": true - }, - "delete": { - "operationId": "DeploymentSettings_Delete", - "tags": [ - "DeploymentSettings" - ], - "description": "Delete a DeploymentSetting", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "name": "deploymentSettingsName", - "in": "path", - "description": "Name of Deployment Setting", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "202": { - "description": "Resource deletion accepted.", - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - }, - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - } - } - }, - "204": { - "description": "Resource deleted successfully." - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Delete Deployment Settings": { - "$ref": "./examples/DeleteDeploymentSettings.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true - } - } - }, - "definitions": { - "AdapterPropertyOverrides": { - "type": "object", - "description": "The AdapterPropertyOverrides of a cluster.", - "properties": { - "jumboPacket": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." - }, - "networkDirect": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." - }, - "networkDirectTechnology": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. Expected values are 'iWARP', 'RoCEv2', 'RoCE'" - } - } - }, - "DeploymentCluster": { - "type": "object", - "description": "AzureStackHCI Cluster deployment properties.", - "properties": { - "name": { - "type": "string", - "description": "The cluster name provided when preparing Active Directory." - }, - "witnessType": { - "type": "string", - "description": "Use a cloud witness if you have internet access and if you use an Azure Storage account to provide a vote on cluster quorum. A cloud witness uses Azure Blob Storage to read or write a blob file and then uses it to arbitrate in split-brain resolution. Only allowed values are 'Cloud', 'FileShare'. " - }, - "witnessPath": { - "type": "string", - "description": "Specify the fileshare path for the local witness for your Azure Stack HCI cluster." - }, - "cloudAccountName": { - "type": "string", - "description": "Specify the Azure Storage account name for cloud witness for your Azure Stack HCI cluster." - }, - "azureServiceEndpoint": { - "type": "string", - "description": "For Azure blob service endpoint type, select either Default or Custom domain. If you selected **Custom domain, enter the domain for the blob service in this format core.windows.net." - }, - "hardwareClass": { - "$ref": "./hciCommon.json#/definitions/HardwareClass", - "description": "Hardware class of the cluster.", - "readOnly": true - }, - "clusterPattern": { - "$ref": "./hciCommon.json#/definitions/ClusterPattern", - "description": "Cluster Pattern supported." - } - } - }, - "DeploymentConfiguration": { - "type": "object", - "description": "Deployment Configuration", - "properties": { - "version": { - "type": "string", - "description": "deployment template version " - }, - "scaleUnits": { - "type": "array", - "description": "Scale units will contains list of deployment data", - "items": { - "$ref": "#/definitions/ScaleUnits" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "scaleUnits" - ] - }, - "DeploymentData": { - "type": "object", - "description": "The Deployment data of AzureStackHCI Cluster.", - "properties": { - "securitySettings": { - "$ref": "#/definitions/DeploymentSecuritySettings", - "description": "SecuritySettings to deploy AzureStackHCI Cluster." - }, - "observability": { - "$ref": "#/definitions/Observability", - "description": "Observability config to deploy AzureStackHCI Cluster." - }, - "cluster": { - "$ref": "#/definitions/DeploymentCluster", - "description": "Observability config to deploy AzureStackHCI Cluster." - }, - "identityProvider": { - "$ref": "./hciCommon.json#/definitions/IdentityProvider", - "description": "Identity Provider for the cluster" - }, - "storage": { - "$ref": "#/definitions/Storage", - "description": "Storage config to deploy AzureStackHCI Cluster." - }, - "namingPrefix": { - "type": "string", - "description": "naming prefix to deploy cluster.", - "pattern": "^[a-zA-Z0-9-]{1,8}$" - }, - "domainFqdn": { - "type": "string", - "description": "FQDN to deploy cluster" - }, - "infrastructureNetwork": { - "type": "array", - "description": "InfrastructureNetwork config to deploy AzureStackHCI Cluster.", - "items": { - "$ref": "#/definitions/InfrastructureNetwork" - }, - "x-ms-identifiers": [] - }, - "physicalNodes": { - "type": "array", - "description": "list of physical nodes config to deploy AzureStackHCI Cluster.", - "items": { - "$ref": "#/definitions/PhysicalNodes" - }, - "x-ms-identifiers": [ - "name" - ] - }, - "hostNetwork": { - "$ref": "#/definitions/HostNetwork", - "description": "HostNetwork config to deploy AzureStackHCI Cluster." - }, - "sdnIntegration": { - "$ref": "#/definitions/SdnIntegration", - "description": "SDN Integration config to deploy AzureStackHCI Cluster." - }, - "isManagementCluster": { - "type": "boolean", - "description": "Is Management Cluster, when true indicates that the cluster is used for managing other clusters" - }, - "adouPath": { - "type": "string", - "description": "The path to the Active Directory Organizational Unit container object prepared for the deployment. " - }, - "secretsLocation": { - "type": "string", - "description": "Azure key vault endpoint. This property is deprecated from 2023-12-01-preview. Please use secrets property instead." - }, - "secrets": { - "type": "array", - "description": "secrets used for cloud deployment.", - "items": { - "$ref": "./hciCommon.json#/definitions/EceDeploymentSecrets" - }, - "x-ms-identifiers": [ - "secretName" - ] - }, - "optionalServices": { - "$ref": "#/definitions/OptionalServices", - "description": "OptionalServices config to deploy AzureStackHCI Cluster." - }, - "localAvailabilityZones": { - "type": "array", - "items": { - "$ref": "./hciCommon.json#/definitions/LocalAvailabilityZones" - }, - "description": "Local Availability Zone information for HCI cluster", - "x-ms-identifiers": [ - "localAvailabilityZoneName" - ] - }, - "assemblyInfo": { - "$ref": "#/definitions/AssemblyInfo", - "description": "Assembly Package details for Validated Solution Recipe for AzureStackHCI Cluster" - } - } - }, - "DeploymentSetting": { - "type": "object", - "description": "Edge device resource", - "properties": { - "properties": { - "$ref": "#/definitions/DeploymentSettingsProperties", - "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] - } - }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ] - }, - "DeploymentSettingListResult": { - "type": "object", - "description": "The response of a DeploymentSetting list operation.", - "properties": { - "value": { - "type": "array", - "description": "The DeploymentSetting items on this page", - "items": { - "$ref": "#/definitions/DeploymentSetting" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "DeploymentSettingsProperties": { - "type": "object", - "description": "DeploymentSetting properties", - "properties": { - "provisioningState": { - "$ref": "./hciCommon.json#/definitions/ProvisioningState", - "description": "DeploymentSetting provisioning state", - "readOnly": true - }, - "arcNodeResourceIds": { - "type": "array", - "description": "Azure resource ids of Arc machines to be part of cluster.", - "items": { - "type": "string" - }, - "x-ms-identifiers": [] - }, - "deploymentMode": { - "$ref": "./hciCommon.json#/definitions/DeploymentMode", - "description": "The deployment mode for cluster deployment." - }, - "operationType": { - "type": "string", - "description": "The intended operation for a cluster.", - "enum": [ - "ClusterProvisioning", - "ClusterUpgrade" - ], - "default": "ClusterProvisioning", - "x-ms-enum": { - "name": "OperationType", - "modelAsString": true, - "values": [ - { - "name": "ClusterProvisioning", - "value": "ClusterProvisioning", - "description": "Cluster provisioning operation." - }, - { - "name": "ClusterUpgrade", - "value": "ClusterUpgrade", - "description": "Cluster upgrade operation." - } - ] - } - }, - "deploymentConfiguration": { - "$ref": "#/definitions/DeploymentConfiguration", - "description": "Scale units will contains list of deployment data", - "x-ms-identifiers": [] - }, - "reportedProperties": { - "$ref": "./hciCommon.json#/definitions/EceReportedProperties", - "description": "Deployment Status reported from cluster.", - "readOnly": true - } - }, - "required": [ - "arcNodeResourceIds", - "deploymentMode", - "deploymentConfiguration" - ] - }, - "HostNetwork": { - "type": "object", - "description": "The HostNetwork of a cluster.", - "properties": { - "intents": { - "type": "array", - "description": "The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.", - "items": { - "$ref": "#/definitions/Intents" - }, - "x-ms-identifiers": [ - "name" - ] - }, - "storageNetworks": { - "type": "array", - "description": "List of StorageNetworks config to deploy AzureStackHCI Cluster.", - "items": { - "$ref": "#/definitions/StorageNetworks" - }, - "x-ms-identifiers": [ - "name" - ] - }, - "storageConnectivitySwitchless": { - "type": "boolean", - "description": "Defines how the storage adapters between nodes are connected either switch or switch less..", - "default": false - }, - "enableStorageAutoIp": { - "type": "boolean", - "description": "Optional parameter required only for 3 Nodes Switchless deployments. This allows users to specify IPs and Mask for Storage NICs when Network ATC is not assigning the IPs for storage automatically.", - "default": false - } - } - }, - "InfrastructureNetwork": { - "type": "object", - "description": "The InfrastructureNetwork of a AzureStackHCI Cluster.", - "properties": { - "subnetMask": { - "type": "string", - "description": "Subnet mask that matches the provided IP address space." - }, - "gateway": { - "type": "string", - "description": "Default gateway that should be used for the provided IP address space." - }, - "ipPools": { - "type": "array", - "description": "Range of IP addresses from which addresses are allocated for nodes within a subnet.", - "items": { - "$ref": "#/definitions/IpPools" - }, - "x-ms-identifiers": [] - }, - "dnsServerConfig": { - "type": "string", - "description": "Specifies how DNS servers are configured for the infrastructure network. Allowed values are 'UseDnsServer' to use the provided DNS servers, and 'UseForwarder' to use DNS forwarders.", - "enum": [ - "UseDnsServer", - "UseForwarder" - ], - "default": "UseDnsServer", - "x-ms-enum": { - "name": "DnsServerConfig", - "modelAsString": true, - "values": [ - { - "name": "UseDnsServer", - "value": "UseDnsServer", - "description": "Use the provided DNS servers for the infrastructure network." - }, - { - "name": "UseForwarder", - "value": "UseForwarder", - "description": "Use DNS forwarders for the infrastructure network." - } - ] - } - }, - "dnsZones": { - "type": "array", - "description": "Details of the DNS Zones to be configured.", - "items": { - "$ref": "#/definitions/DnsZones" - }, - "x-ms-identifiers": [ - "dnsZoneName" - ] - }, - "dnsServers": { - "type": "array", - "description": "IPv4 address of the DNS servers in your environment.", - "items": { - "type": "string" - } - }, - "useDhcp": { - "type": "boolean", - "description": "Allows customers to use DHCP for Hosts and Cluster IPs. If not declared, the deployment will default to static IPs. When true, GW and DNS servers are not required" - } - } - }, - "Intents": { - "type": "object", - "description": "The Intents of a cluster.", - "properties": { - "name": { - "type": "string", - "description": "Name of the network intent you wish to create." - }, - "trafficType": { - "type": "array", - "description": "List of network traffic types. Only allowed values are 'Compute', 'Storage', 'Management'.", - "items": { - "type": "string" - } - }, - "adapter": { - "type": "array", - "description": "Array of network interfaces used for the network intent.", - "items": { - "type": "string" - } - }, - "overrideVirtualSwitchConfiguration": { - "type": "boolean", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "default": false - }, - "virtualSwitchConfigurationOverrides": { - "$ref": "#/definitions/VirtualSwitchConfigurationOverrides", - "description": "Set virtualSwitch ConfigurationOverrides for cluster." - }, - "overrideQosPolicy": { - "type": "boolean", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "default": false - }, - "qosPolicyOverrides": { - "$ref": "#/definitions/QosPolicyOverrides", - "description": "Set QoS PolicyOverrides for cluster." - }, - "overrideAdapterProperty": { - "type": "boolean", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "default": false - }, - "adapterPropertyOverrides": { - "$ref": "#/definitions/AdapterPropertyOverrides", - "description": "Set Adapter PropertyOverrides for cluster." - } - } - }, - "IpPools": { - "type": "object", - "description": "The dnsServers of a device.", - "properties": { - "startingAddress": { - "type": "string", - "description": "Starting IP address for the management network. A minimum of six free, contiguous IPv4 addresses (excluding your host IPs) are needed for infrastructure services such as clustering." - }, - "endingAddress": { - "type": "string", - "description": "Ending IP address for the management network. A minimum of six free, contiguous IPv4 addresses (excluding your host IPs) are needed for infrastructure services such as clustering." - } - } - }, - "DnsZones": { - "type": "object", - "description": "Details of the DNS Zones to be configured.", - "properties": { - "dnsZoneName": { - "type": "string", - "description": "Name of the DNS Zone to be configured." - }, - "dnsForwarder": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Forwarder details of the DNS Zone to be configured." - } - } - }, - "NetworkController": { - "type": "object", - "description": "network controller config for SDN Integration to deploy AzureStackHCI Cluster.", - "properties": { - "macAddressPoolStart": { - "type": "string", - "description": "macAddressPoolStart of network controller used for SDN Integration." - }, - "macAddressPoolStop": { - "type": "string", - "description": "macAddressPoolStop of network controller used for SDN Integration." - }, - "networkVirtualizationEnabled": { - "type": "boolean", - "description": "NetworkVirtualizationEnabled of network controller used for SDN Integration." - } - } - }, - "Observability": { - "type": "object", - "description": "The Observability of AzureStackHCI Cluster.", - "properties": { - "streamingDataClient": { - "type": "boolean", - "description": "Enables telemetry data to be sent to Microsoft", - "default": true - }, - "euLocation": { - "type": "boolean", - "description": "Location of your cluster. The log and diagnostic data is sent to the appropriate diagnostics servers depending upon where your cluster resides. Setting this to false results in all data sent to Microsoft to be stored outside of the EU.", - "default": false - }, - "episodicDataUpload": { - "type": "boolean", - "description": "When set to true, collects log data to facilitate quicker issue resolution.", - "default": true - } - } - }, - "OptionalServices": { - "type": "object", - "description": "The OptionalServices of AzureStackHCI Cluster.", - "properties": { - "customLocation": { - "type": "string", - "description": "The name of custom location." - } - } - }, - "AssemblyInfo": { - "type": "object", - "description": "Assembly Package details for Validated Solution Recipe for AzureStackHCI Cluster", - "properties": { - "packageVersion": { - "type": "string", - "description": "Assembly Package version for Validated Solution Recipe for AzureStackHCI Cluster", - "readOnly": true - }, - "payload": { - "type": "array", - "description": "Payload properties for Validated Solution Recipe for AzureStackHCI Cluster", - "items": { - "$ref": "#/definitions/AssemblyInfoPayload" - }, - "readOnly": true, - "x-ms-identifiers": [] - } - } - }, - "AssemblyInfoPayload": { - "type": "object", - "description": "Payload properties for Validated Solution Recipe for AzureStackHCI Cluster", - "properties": { - "identifier": { - "type": "string", - "description": "assembly identifier for Validated Solution Recipe for AzureStackHCI Cluster", - "readOnly": true - }, - "hash": { - "type": "string", - "description": "Hash of assembly package for Validated Solution Recipe for AzureStackHCI Cluster", - "readOnly": true - }, - "fileName": { - "type": "string", - "description": "File name of assembly package for Validated Solution Recipe for AzureStackHCI Cluster", - "readOnly": true - }, - "url": { - "type": "string", - "description": "Url of assembly package for Validated Solution Recipe for AzureStackHCI Cluster", - "readOnly": true - } - } - }, - "PhysicalNodes": { - "type": "object", - "description": "The PhysicalNodes of a cluster.", - "properties": { - "name": { - "type": "string", - "description": "NETBIOS name of each physical server on your Azure Stack HCI cluster." - }, - "ipv4Address": { - "type": "string", - "description": "The IPv4 address assigned to each physical server on your Azure Stack HCI cluster." - } - } - }, - "QosPolicyOverrides": { - "type": "object", - "description": "The QoSPolicyOverrides of a cluster.", - "properties": { - "priorityValue8021Action_Cluster": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." - }, - "priorityValue8021Action_SMB": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." - }, - "bandwidthPercentage_SMB": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." - } - } - }, - "SbePartnerInfo": { - "type": "object", - "description": "The solution builder extension (SBE) partner deployment info for cluster.", - "properties": { - "sbeDeploymentInfo": { - "$ref": "#/definitions/SbeDeploymentInfo", - "description": "SBE package and manifest information for the solution Builder Extension staged for AzureStackHCI cluster deployment." - }, - "partnerProperties": { - "type": "array", - "description": "List of SBE partner properties for AzureStackHCI cluster deployment.", - "items": { - "$ref": "#/definitions/SbePartnerProperties" - }, - "x-ms-identifiers": [] - }, - "credentialList": { - "type": "array", - "description": "SBE credentials list for AzureStackHCI cluster deployment.", - "items": { - "$ref": "#/definitions/SbeCredentials" - }, - "x-ms-identifiers": [ - "secretName" - ] - } - } - }, - "SbeDeploymentInfo": { - "type": "object", - "description": "Solution builder extension (SBE) package and manifest information for the solution builder extension staged for AzureStackHCI cluster deployment.", - "properties": { - "version": { - "type": "string", - "description": "SBE package version." - }, - "family": { - "type": "string", - "description": "SBE family name." - }, - "publisher": { - "type": "string", - "description": "SBE manifest publisher." - }, - "sbeManifestSource": { - "type": "string", - "description": "SBE Manifest Source." - }, - "sbeManifestCreationDate": { - "type": "string", - "format": "date-time", - "description": "SBE Manifest Creation Date." - } - } - }, - "SbePartnerProperties": { - "type": "object", - "description": "Solution builder extension (SBE) partner properties object.", - "properties": { - "name": { - "type": "string", - "description": "SBE partner property name." - }, - "value": { - "type": "string", - "description": "SBE partner property value." - } - } - }, - "SbeCredentials": { - "type": "object", - "description": "secrets used for solution builder extension (SBE) partner extensibility.", - "properties": { - "secretName": { - "type": "string", - "description": "secret name stored in keyvault." - }, - "eceSecretName": { - "type": "string", - "description": "secret name expected for Enterprise Cloud Engine (ECE)." - }, - "secretLocation": { - "type": "string", - "format": "uri", - "description": "secret URI stored in keyvault." - } - } - }, - "ScaleUnits": { - "type": "object", - "description": "Scale units will contains list of deployment data", - "properties": { - "deploymentData": { - "$ref": "#/definitions/DeploymentData", - "description": "Deployment Data to deploy AzureStackHCI Cluster." - }, - "sbePartnerInfo": { - "$ref": "#/definitions/SbePartnerInfo", - "description": "Solution builder extension (SBE) partner properties" - } - }, - "required": [ - "deploymentData" - ], - "externalDocs": { - "description": "Deploy Azure Stack HCI using an existing configuration file", - "url": "https://learn.microsoft.com/en-us/azure-stack/hci/deploy/deployment-tool-existing-file" - } - }, - "SdnIntegration": { - "type": "object", - "description": "SDN Integration config to deploy AzureStackHCI Cluster.", - "properties": { - "networkController": { - "$ref": "#/definitions/NetworkController", - "description": "network controller config for SDN Integration to deploy AzureStackHCI Cluster." - } - } - }, - "DeploymentSecuritySettings": { - "type": "object", - "description": "The SecuritySettings of AzureStackHCI Cluster.", - "properties": { - "hvciProtection": { - "type": "boolean", - "description": "By default, Hypervisor-protected Code Integrity is enabled on your Azure HCI cluster.", - "default": true - }, - "drtmProtection": { - "type": "boolean", - "description": "By default, Secure Boot is enabled on your Azure HCI cluster. This setting is hardware dependent.", - "default": true - }, - "driftControlEnforced": { - "type": "boolean", - "description": "When set to true, the security baseline is re-applied regularly.", - "default": true - }, - "credentialGuardEnforced": { - "type": "boolean", - "description": "When set to true, Credential Guard is enabled.", - "default": false - }, - "smbSigningEnforced": { - "type": "boolean", - "description": "When set to true, the SMB default instance requires sign in for the client and server services.", - "default": true - }, - "smbClusterEncryption": { - "type": "boolean", - "description": "When set to true, cluster east-west traffic is encrypted.", - "default": false - }, - "sideChannelMitigationEnforced": { - "type": "boolean", - "description": "When set to true, all the side channel mitigations are enabled", - "default": true - }, - "bitlockerBootVolume": { - "type": "boolean", - "description": "When set to true, BitLocker XTS_AES 256-bit encryption is enabled for all data-at-rest on the OS volume of your Azure Stack HCI cluster. This setting is TPM-hardware dependent. ", - "default": true - }, - "bitlockerDataVolumes": { - "type": "boolean", - "description": "When set to true, BitLocker XTS-AES 256-bit encryption is enabled for all data-at-rest on your Azure Stack HCI cluster shared volumes.", - "default": true - }, - "wdacEnforced": { - "type": "boolean", - "description": "WDAC is enabled by default and limits the applications and the code that you can run on your Azure Stack HCI cluster.", - "default": true - } - } - }, - "Storage": { - "type": "object", - "description": "The Storage config of AzureStackHCI Cluster.", - "properties": { - "configurationMode": { - "type": "string", - "description": "By default, this mode is set to Express and your storage is configured as per best practices based on the number of nodes in the cluster. Allowed values are 'Express','InfraOnly', 'KeepStorage'", - "default": "Express" - } - } - }, - "StorageAdapterIPInfo": { - "type": "object", - "description": "The StorageAdapter physical nodes of a cluster.", - "properties": { - "physicalNode": { - "type": "string", - "description": "storage adapter physical node name." - }, - "ipv4Address": { - "type": "string", - "description": "The IPv4 address assigned to each storage adapter physical node on your Azure Stack HCI cluster." - }, - "subnetMask": { - "type": "string", - "description": "The SubnetMask address assigned to each storage adapter physical node on your Azure Stack HCI cluster." - } - } - }, - "StorageNetworks": { - "type": "object", - "description": "The StorageNetworks of a cluster.", - "properties": { - "name": { - "type": "string", - "description": "Name of the storage network." - }, - "networkAdapterName": { - "type": "string", - "description": "Name of the storage network adapter." - }, - "vlanId": { - "type": "string", - "description": "ID specified for the VLAN storage network. This setting is applied to the network interfaces that route the storage and VM migration traffic. " - }, - "storageAdapterIPInfo": { - "type": "array", - "description": "List of Storage adapter physical nodes config to deploy AzureStackHCI Cluster.", - "items": { - "$ref": "#/definitions/StorageAdapterIPInfo" - }, - "x-ms-identifiers": [ - "physicalNode" - ] - } - } - }, - "VirtualSwitchConfigurationOverrides": { - "type": "object", - "description": "The VirtualSwitchConfigurationOverrides of a cluster.", - "properties": { - "enableIov": { - "type": "string", - "description": "Enable IoV for Virtual Switch" - }, - "loadBalancingAlgorithm": { - "type": "string", - "description": "Load Balancing Algorithm for Virtual Switch" - } - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/edgeDeviceJobs.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/edgeDeviceJobs.json deleted file mode 100644 index 642d0f5cc8ff..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/edgeDeviceJobs.json +++ /dev/null @@ -1,1150 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Microsoft.AzureStackHCI", - "version": "2025-11-01-preview", - "description": "A EdgeDevice" - }, - "schemes": [ - "https" - ], - "host": "management.azure.com", - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "tags": [ - { - "name": "EdgeDeviceJobs" - } - ], - "paths": { - "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}/jobs": { - "get": { - "operationId": "EdgeDeviceJobs_ListByEdgeDevice", - "tags": [ - "EdgeDeviceJobs" - ], - "description": "List EdgeDeviceJob resources by EdgeDevice", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "The name of the EdgeDevice", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/EdgeDeviceJobListResult" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "EdgeDeviceJobs_ListByEdgeDevice": { - "$ref": "./examples/EdgeDeviceJobs_ListByEdgeDevice.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}/jobs/{jobsName}": { - "get": { - "operationId": "EdgeDeviceJobs_Get", - "tags": [ - "EdgeDeviceJobs" - ], - "description": "Get a EdgeDeviceJob", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "The name of the EdgeDevice", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "jobsName", - "in": "path", - "description": "Name of EdgeDevice Job", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/EdgeDeviceJob" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "EdgeDeviceJobs_Get_RemoteSupport": { - "$ref": "./examples/EdgeDeviceJobs_Get_RemoteSupport.json" - } - } - }, - "put": { - "operationId": "EdgeDeviceJobs_CreateOrUpdate", - "tags": [ - "EdgeDeviceJobs" - ], - "description": "Create a EdgeDeviceJob", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "The name of the EdgeDevice", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "jobsName", - "in": "path", - "description": "Name of EdgeDevice Job", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "resource", - "in": "body", - "description": "Resource create parameters.", - "required": true, - "schema": { - "$ref": "#/definitions/EdgeDeviceJob" - } - } - ], - "responses": { - "200": { - "description": "Resource 'EdgeDeviceJob' update operation succeeded", - "schema": { - "$ref": "#/definitions/EdgeDeviceJob" - } - }, - "201": { - "description": "Resource 'EdgeDeviceJob' create operation succeeded", - "schema": { - "$ref": "#/definitions/EdgeDeviceJob" - }, - "headers": { - "Azure-AsyncOperation": { - "type": "string", - "description": "A link to the status monitor" - }, - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "EdgeDeviceJobs_CreateOrUpdate_CollectLog": { - "$ref": "./examples/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json" - }, - "EdgeDeviceJobs_CreateOrUpdate_RemoteSupport": { - "$ref": "./examples/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-long-running-operation": true - }, - "delete": { - "operationId": "EdgeDeviceJobs_Delete", - "tags": [ - "EdgeDeviceJobs" - ], - "description": "Delete a EdgeDeviceJob", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "The name of the EdgeDevice", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "jobsName", - "in": "path", - "description": "Name of EdgeDevice Job", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "202": { - "description": "Resource deletion accepted.", - "headers": { - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - }, - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } - } - }, - "204": { - "description": "Resource does not exist." - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "EdgeDeviceJobs_Delete": { - "$ref": "./examples/EdgeDeviceJobs_Delete.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true - } - } - }, - "definitions": { - "CollectLogJobProperties": { - "type": "object", - "description": "Represents the properties of a log collection job.", - "properties": { - "fromDate": { - "type": "string", - "format": "date-time", - "description": "From date for log collection." - }, - "toDate": { - "type": "string", - "format": "date-time", - "description": "To date for log collection." - }, - "lastLogGenerated": { - "type": "string", - "format": "date-time", - "description": "To date for log collection.", - "readOnly": true - }, - "reportedProperties": { - "$ref": "#/definitions/LogCollectionReportedProperties", - "description": "log collection job reported properties.", - "readOnly": true - } - }, - "required": [ - "fromDate", - "toDate" - ] - }, - "DeploymentMode": { - "type": "string", - "description": "Deployment mode to trigger job.", - "enum": [ - "Validate", - "Deploy" - ], - "x-ms-enum": { - "name": "DeploymentMode", - "modelAsString": true, - "values": [ - { - "name": "Validate", - "value": "Validate", - "description": "Validate ECE action deployment for a cluster." - }, - { - "name": "Deploy", - "value": "Deploy", - "description": "Deploy ECE action deployment for a cluster." - } - ] - } - }, - "DeviceLogCollectionStatus": { - "type": "string", - "description": "Represents the status of a log collection operation.", - "enum": [ - "NotStarted", - "Running", - "Failed", - "Succeeded", - "Canceled" - ], - "x-ms-enum": { - "name": "DeviceLogCollectionStatus", - "modelAsString": true, - "values": [ - { - "name": "NotStarted", - "value": "NotStarted", - "description": "Log collection operation has not been initiated." - }, - { - "name": "Running", - "value": "Running", - "description": "Indicates that the log collection operation is currently running." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Indicates that the log collection operation has failed." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Indicates that the log collection operation has completed successfully." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Indicates that the log collection operation has completed successfully." - } - ] - }, - "readOnly": true - }, - "EdgeDeviceJob": { - "type": "object", - "description": "EdgeDevice Jobs resource", - "properties": { - "kind": { - "$ref": "./hciCommon.json#/definitions/EdgeDeviceKind", - "description": "Edge Solution type to support polymorphic resource.", - "x-ms-mutability": [ - "read", - "create" - ] - } - }, - "discriminator": "kind", - "required": [ - "kind" - ], - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ] - }, - "EdgeDeviceJobListResult": { - "type": "object", - "description": "The response of a EdgeDeviceJob list operation.", - "properties": { - "value": { - "type": "array", - "description": "The EdgeDeviceJob items on this page", - "items": { - "$ref": "#/definitions/EdgeDeviceJob" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "EdgeDeviceJobProperties": { - "type": "object", - "description": "Edge device job properties", - "properties": { - "deploymentMode": { - "$ref": "#/definitions/DeploymentMode", - "description": "Deployment mode to trigger job." - }, - "provisioningState": { - "$ref": "#/definitions/ProvisioningState", - "description": "Job provisioning state", - "readOnly": true - }, - "jobId": { - "type": "string", - "description": "Unique, immutable job id.", - "readOnly": true - }, - "startTimeUtc": { - "type": "string", - "format": "date-time", - "description": "The UTC date and time at which the job started.", - "readOnly": true - }, - "endTimeUtc": { - "type": "string", - "format": "date-time", - "description": "The UTC date and time at which the job completed.", - "readOnly": true - }, - "status": { - "$ref": "#/definitions/JobStatus", - "description": "Status of Edge device job.", - "readOnly": true - } - } - }, - "EdgeDeviceJobType": { - "type": "string", - "description": "Common Job Types supported.", - "enum": [ - "CollectLog", - "RemoteSupport" - ], - "x-ms-enum": { - "name": "EdgeDeviceJobType", - "modelAsString": true, - "values": [ - { - "name": "CollectLog", - "value": "CollectLog", - "description": "Job to collect logs from the device." - }, - { - "name": "RemoteSupport", - "value": "RemoteSupport", - "description": "Job to provide remote support to the device." - } - ] - } - }, - "EdgeSolutionType": { - "type": "string", - "description": "Edge solution type.", - "enum": [ - "WindowsServer" - ], - "x-ms-enum": { - "name": "EdgeSolutionType", - "modelAsString": true, - "values": [ - { - "name": "WindowsServer", - "value": "WindowsServer", - "description": "Edge solution for Windows based edge devices." - } - ] - } - }, - "HciCollectLogJobProperties": { - "type": "object", - "description": "Represents the properties of an HCI Collect Log job.", - "properties": { - "fromDate": { - "type": "string", - "format": "date-time", - "description": "From date for log collection." - }, - "toDate": { - "type": "string", - "format": "date-time", - "description": "To date for log collection." - }, - "lastLogGenerated": { - "type": "string", - "format": "date-time", - "description": "To date for log collection.", - "readOnly": true - }, - "reportedProperties": { - "$ref": "#/definitions/LogCollectionReportedProperties", - "description": "log collection job reported properties.", - "readOnly": true - } - }, - "required": [ - "fromDate", - "toDate" - ], - "allOf": [ - { - "$ref": "#/definitions/HciEdgeDeviceJobProperties" - } - ], - "x-ms-discriminator-value": "CollectLog" - }, - "HciEdgeDeviceJob": { - "type": "object", - "description": "Edge device job for Azure Stack HCI solution.", - "properties": { - "properties": { - "$ref": "#/definitions/HciEdgeDeviceJobProperties", - "description": "HCI Edge device job properties" - } - }, - "required": [ - "properties" - ], - "allOf": [ - { - "$ref": "#/definitions/EdgeDeviceJob" - } - ], - "x-ms-discriminator-value": "HCI" - }, - "HciEdgeDeviceJobProperties": { - "type": "object", - "description": "HCI Edge device job properties", - "properties": { - "deploymentMode": { - "$ref": "#/definitions/DeploymentMode", - "description": "Deployment mode to trigger job." - }, - "provisioningState": { - "$ref": "#/definitions/ProvisioningState", - "description": "Job provisioning state", - "readOnly": true - }, - "jobId": { - "type": "string", - "description": "Unique, immutable job id.", - "readOnly": true - }, - "startTimeUtc": { - "type": "string", - "format": "date-time", - "description": "The UTC date and time at which the job started.", - "readOnly": true - }, - "endTimeUtc": { - "type": "string", - "format": "date-time", - "description": "The UTC date and time at which the job completed.", - "readOnly": true - }, - "status": { - "$ref": "#/definitions/JobStatus", - "description": "Status of Edge device job.", - "readOnly": true - }, - "jobType": { - "$ref": "#/definitions/HciEdgeDeviceJobType", - "description": "Job Type to support polymorphic resource.", - "x-ms-mutability": [ - "read", - "create" - ] - } - }, - "discriminator": "jobType", - "required": [ - "jobType" - ] - }, - "HciEdgeDeviceJobType": { - "type": "string", - "description": "Job Type supported.", - "enum": [ - "CollectLog", - "RemoteSupport" - ], - "x-ms-enum": { - "name": "HciEdgeDeviceJobType", - "modelAsString": true, - "values": [ - { - "name": "CollectLog", - "value": "CollectLog", - "description": "Job to collect logs from the device." - }, - { - "name": "RemoteSupport", - "value": "RemoteSupport", - "description": "Job to provide remote support to the device." - } - ] - } - }, - "HciRemoteSupportJobProperties": { - "type": "object", - "description": "Represents the properties of a remote support job for HCI.", - "properties": { - "accessLevel": { - "$ref": "#/definitions/RemoteSupportAccessLevel", - "description": "Remote support access level." - }, - "expirationTimestamp": { - "type": "string", - "format": "date-time", - "description": "Remote support expiration timestamp." - }, - "type": { - "$ref": "#/definitions/RemoteSupportType", - "description": "Remote support type." - }, - "reportedProperties": { - "$ref": "#/definitions/RemoteSupportJobReportedProperties", - "description": "log collection job reported properties.", - "readOnly": true - } - }, - "required": [ - "accessLevel", - "expirationTimestamp", - "type" - ], - "allOf": [ - { - "$ref": "#/definitions/HciEdgeDeviceJobProperties" - } - ], - "x-ms-discriminator-value": "RemoteSupport" - }, - "JobReportedProperties": { - "type": "object", - "description": "Reported Properties for job triggered from cloud.", - "properties": { - "percentComplete": { - "type": "integer", - "format": "int32", - "description": "The percentage of the job that is complete.", - "readOnly": true - }, - "validationStatus": { - "$ref": "./hciCommon.json#/definitions/EceActionStatus", - "description": "Validation status of job.", - "readOnly": true - }, - "deploymentStatus": { - "$ref": "./hciCommon.json#/definitions/EceActionStatus", - "description": "Deployment status of job.", - "readOnly": true - } - } - }, - "JobStatus": { - "type": "string", - "description": "Represents the various statuses a job can have throughout its lifecycle.", - "enum": [ - "NotSpecified", - "ValidationInProgress", - "ValidationSuccess", - "ValidationFailed", - "DeploymentInProgress", - "DeploymentFailed", - "DeploymentSuccess", - "Succeeded", - "Failed", - "Canceled", - "Paused", - "Scheduled" - ], - "x-ms-enum": { - "name": "JobStatus", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The job status has not been specified." - }, - { - "name": "ValidationInProgress", - "value": "ValidationInProgress", - "description": "The job is currently undergoing validation." - }, - { - "name": "ValidationSuccess", - "value": "ValidationSuccess", - "description": "The job has successfully passed validation." - }, - { - "name": "ValidationFailed", - "value": "ValidationFailed", - "description": "The job has failed validation." - }, - { - "name": "DeploymentInProgress", - "value": "DeploymentInProgress", - "description": "The job's deployment is currently in progress." - }, - { - "name": "DeploymentFailed", - "value": "DeploymentFailed", - "description": "The job's deployment has failed." - }, - { - "name": "DeploymentSuccess", - "value": "DeploymentSuccess", - "description": "The job has been successfully deployed." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The job has succeeded." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The job has failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The job has been canceled." - }, - { - "name": "Paused", - "value": "Paused", - "description": "The job is paused." - }, - { - "name": "Scheduled", - "value": "Scheduled", - "description": "The job is scheduled to run." - } - ] - }, - "readOnly": true - }, - "LogCollectionReportedProperties": { - "type": "object", - "description": "Represents the reported properties of a log collection job.", - "properties": { - "percentComplete": { - "type": "integer", - "format": "int32", - "description": "The percentage of the job that is complete.", - "readOnly": true - }, - "validationStatus": { - "$ref": "./hciCommon.json#/definitions/EceActionStatus", - "description": "Validation status of job.", - "readOnly": true - }, - "deploymentStatus": { - "$ref": "./hciCommon.json#/definitions/EceActionStatus", - "description": "Deployment status of job.", - "readOnly": true - }, - "logCollectionSessionDetails": { - "type": "array", - "description": "Details of the log collection session.", - "items": { - "$ref": "#/definitions/LogCollectionJobSession" - }, - "readOnly": true, - "x-ms-identifiers": [ - "correlationId" - ] - } - } - }, - "LogCollectionJobSession": { - "type": "object", - "description": "Represents a session for collecting logs from an edge device.", - "properties": { - "startTime": { - "type": "string", - "description": "The timestamp when log collection started, in ISO 8601 format.", - "readOnly": true - }, - "endTime": { - "type": "string", - "description": "The timestamp when log collection ended, in ISO 8601 format.", - "readOnly": true - }, - "timeCollected": { - "type": "string", - "description": "The total time logs were collected for, in ISO 8601 duration format.", - "readOnly": true - }, - "logSize": { - "type": "integer", - "format": "int32", - "description": "The size of the collected logs in bytes.", - "readOnly": true - }, - "status": { - "$ref": "#/definitions/DeviceLogCollectionStatus", - "description": "The status of the log collection session.", - "readOnly": true - }, - "correlationId": { - "type": "string", - "description": "A unique identifier for correlating this log collection session with other operations or sessions.", - "readOnly": true - } - } - }, - "LogCollectionStatus": { - "type": "string", - "description": "Represents the status of a log collection operation.", - "enum": [ - "None", - "InProgress", - "Failed", - "Succeeded" - ], - "x-ms-enum": { - "name": "LogCollectionStatus", - "modelAsString": true, - "values": [ - { - "name": "None", - "value": "None", - "description": "Indicates that no log collection operation has been initiated." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "Indicates that the log collection operation is currently in progress." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Indicates that the log collection operation has failed." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Indicates that the log collection operation has completed successfully." - } - ] - }, - "readOnly": true - }, - "ProvisioningState": { - "type": "string", - "description": "The provisioning state of a resource.", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "NotSpecified", - "Provisioning", - "Updating", - "Deleting", - "Accepted" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Resource has been created." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Resource creation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Resource creation was canceled." - }, - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The resource provision state is not specified" - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The resource is being provisioned" - }, - { - "name": "Updating", - "value": "Updating", - "description": "The resource is updating" - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The resource is being deleted" - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The resource create request has been accepted" - } - ] - }, - "readOnly": true - }, - "RemoteSupportAccessLevel": { - "type": "string", - "description": "Defines the level of remote support access granted.", - "enum": [ - "None", - "Diagnostics", - "DiagnosticsAndRepair" - ], - "x-ms-enum": { - "name": "RemoteSupportAccessLevel", - "modelAsString": true, - "values": [ - { - "name": "None", - "value": "None", - "description": "No remote support access is granted." - }, - { - "name": "Diagnostics", - "value": "Diagnostics", - "description": "Access is limited to diagnostics information only." - }, - { - "name": "DiagnosticsAndRepair", - "value": "DiagnosticsAndRepair", - "description": "Access includes diagnostics information and the ability to perform repairs." - } - ] - } - }, - "RemoteSupportJobProperties": { - "type": "object", - "description": "Represents the properties of a remote support job.", - "properties": { - "accessLevel": { - "$ref": "#/definitions/RemoteSupportAccessLevel", - "description": "Remote support access level." - }, - "expirationTimestamp": { - "type": "string", - "format": "date-time", - "description": "Remote support expiration timestamp." - }, - "type": { - "$ref": "#/definitions/RemoteSupportType", - "description": "Remote support type." - }, - "reportedProperties": { - "$ref": "#/definitions/RemoteSupportJobReportedProperties", - "description": "log collection job reported properties.", - "readOnly": true - } - }, - "required": [ - "accessLevel", - "expirationTimestamp", - "type" - ] - }, - "RemoteSupportJobNodeSettings": { - "type": "object", - "description": "Represents the settings of a remote support node.", - "properties": { - "state": { - "type": "string", - "description": "The state of the remote support node.", - "readOnly": true - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the node settings were created, in UTC.", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the node settings were last updated, in UTC.", - "readOnly": true - }, - "connectionStatus": { - "type": "string", - "description": "The current connection status of the remote support session.", - "readOnly": true - }, - "connectionErrorMessage": { - "type": "string", - "description": "The error message, if any, from the last connection attempt.", - "readOnly": true - } - } - }, - "RemoteSupportJobReportedProperties": { - "type": "object", - "description": "Represents the reported properties of a remote support job.", - "properties": { - "percentComplete": { - "type": "integer", - "format": "int32", - "description": "The percentage of the job that is complete.", - "readOnly": true - }, - "validationStatus": { - "$ref": "./hciCommon.json#/definitions/EceActionStatus", - "description": "Validation status of job.", - "readOnly": true - }, - "deploymentStatus": { - "$ref": "./hciCommon.json#/definitions/EceActionStatus", - "description": "Deployment status of job.", - "readOnly": true - }, - "nodeSettings": { - "$ref": "#/definitions/RemoteSupportJobNodeSettings", - "description": "Optional settings for configuring the node for remote support.", - "readOnly": true - }, - "sessionDetails": { - "type": "array", - "description": "Details of the remote support session.", - "items": { - "$ref": "#/definitions/RemoteSupportSession" - }, - "readOnly": true, - "x-ms-identifiers": [ - "sessionId" - ] - } - } - }, - "RemoteSupportSession": { - "type": "object", - "description": "Represents a remote support session.", - "properties": { - "sessionId": { - "type": "string", - "description": "Unique session Id.", - "readOnly": true - }, - "sessionStartTime": { - "type": "string", - "format": "date-time", - "description": "The start time of the remote support session, in UTC.", - "readOnly": true - }, - "sessionEndTime": { - "type": "string", - "format": "date-time", - "description": "The end time of the remote support session, in UTC.", - "readOnly": true - }, - "accessLevel": { - "$ref": "#/definitions/RemoteSupportAccessLevel", - "description": "The level of access granted during the remote support session.", - "readOnly": true - }, - "transcriptLocation": { - "type": "string", - "description": "The location where the session transcript is stored.", - "readOnly": true - } - } - }, - "RemoteSupportType": { - "type": "string", - "description": "Defines the type of remote support action to be performed on an edge device.", - "enum": [ - "Enable", - "Revoke" - ], - "x-ms-enum": { - "name": "RemoteSupportType", - "modelAsString": true, - "values": [ - { - "name": "Enable", - "value": "Enable", - "description": "Enables remote support for the edge device." - }, - { - "name": "Revoke", - "value": "Revoke", - "description": "Revokes previously granted remote support access for the edge device." - } - ] - } - } - }, - "parameters": { - "Azure.ResourceManager.ResourceUriParameter": { - "name": "resourceUri", - "in": "path", - "description": "The fully qualified Azure Resource manager identifier of the resource.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-skip-url-encoding": true - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/edgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/edgeDevices.json deleted file mode 100644 index 31d3730d5a11..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/edgeDevices.json +++ /dev/null @@ -1,1320 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Edge Devices", - "version": "2025-11-01-preview", - "description": "Azure Arc-enabled Edge Device." - }, - "schemes": [ - "https" - ], - "host": "management.azure.com", - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "tags": [ - { - "name": "EdgeDevices" - } - ], - "paths": { - "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices": { - "get": { - "operationId": "EdgeDevices_List", - "tags": [ - "EdgeDevices" - ], - "description": "List EdgeDevice resources by parent", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/EdgeDeviceListResult" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Edge Devices": { - "$ref": "./examples/ListEdgeDevices.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}": { - "get": { - "operationId": "EdgeDevices_Get", - "tags": [ - "EdgeDevices" - ], - "description": "Get a EdgeDevice", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/EdgeDevice" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Edge Device": { - "$ref": "./examples/GetEdgeDevices.json" - } - } - }, - "put": { - "operationId": "EdgeDevices_CreateOrUpdate", - "tags": [ - "EdgeDevices" - ], - "description": "Create a EdgeDevice", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "resource", - "in": "body", - "description": "Resource create parameters.", - "required": true, - "schema": { - "$ref": "#/definitions/EdgeDevice" - } - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/EdgeDevice" - } - }, - "201": { - "description": "Resource successfully created.", - "schema": { - "$ref": "#/definitions/EdgeDevice" - }, - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-long-running-operation": true, - "x-ms-examples": { - "Create HCI Edge Device": { - "$ref": "./examples/CreateHciEdgeDevice.json" - } - } - }, - "delete": { - "operationId": "EdgeDevices_Delete", - "tags": [ - "EdgeDevices" - ], - "description": "Delete a EdgeDevice", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "202": { - "description": "Resource deletion accepted.", - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - }, - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - } - } - }, - "204": { - "description": "Resource deleted successfully." - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Delete Edge Devices": { - "$ref": "./examples/DeleteEdgeDevices.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true - } - }, - "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}/validate": { - "post": { - "operationId": "EdgeDevices_Validate", - "tags": [ - "EdgeDevices" - ], - "description": "A long-running resource action.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "ValidateRequest", - "in": "body", - "description": "The content of the action request", - "required": true, - "schema": { - "$ref": "#/definitions/ValidateRequest" - } - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/ValidateResponse" - } - }, - "202": { - "description": "Resource operation accepted.", - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - }, - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Validate Edge Devices": { - "$ref": "./examples/ValidateEdgeDevices.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true - } - } - }, - "definitions": { - "AdapterPropertyOverrides": { - "type": "object", - "description": "The AdapterPropertyOverrides of a cluster.", - "properties": { - "jumboPacket": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "readOnly": true - }, - "networkDirect": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "readOnly": true - }, - "networkDirectTechnology": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. Expected values are 'iWARP', 'RoCEv2', 'RoCE'", - "readOnly": true - } - } - }, - "ArcExtensionState": { - "type": "string", - "description": "Arc extension installation state.", - "enum": [ - "NotSpecified", - "Succeeded", - "Failed", - "Canceled", - "Accepted", - "Creating", - "Updating", - "Moving", - "Deleting", - "Deleted" - ], - "x-ms-enum": { - "name": "ArcExtensionState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "Arc extension state is not specified." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Arc extension state is Succeeded." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Arc extension state is Failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Arc extension state is Canceled." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "Arc extension state is Accepted when extension installation triggered." - }, - { - "name": "Creating", - "value": "Creating", - "description": "Arc extension is in Creating State." - }, - { - "name": "Updating", - "value": "Updating", - "description": "Arc extension is in Updating State." - }, - { - "name": "Moving", - "value": "Moving", - "description": "Arc extension is in Moving State." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "Arc extension is in Deleting State." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "Arc extension is in Deleted State." - } - ] - } - }, - "DeviceConfiguration": { - "type": "object", - "description": "The device Configuration for edge device.", - "properties": { - "nicDetails": { - "type": "array", - "description": "NIC Details of device", - "items": { - "$ref": "#/definitions/NicDetail" - }, - "x-ms-identifiers": [ - "adapterName" - ] - }, - "deviceMetadata": { - "type": "string", - "description": "Device metadata details." - } - } - }, - "DeviceKind": { - "type": "string", - "description": "Edge device kind.", - "enum": [ - "HCI" - ], - "default": "HCI", - "x-ms-enum": { - "name": "DeviceKind", - "modelAsString": true, - "values": [ - { - "name": "HCI", - "value": "HCI", - "description": "Arc-enabled edge device with HCI OS." - } - ] - } - }, - "DeviceState": { - "type": "string", - "description": "The edge device state.", - "enum": [ - "NotSpecified", - "Connected", - "Disconnected", - "Repairing", - "Draining", - "InMaintenance", - "Resuming", - "Processing" - ], - "x-ms-enum": { - "name": "DeviceState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The edge device state is not specified." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The edge device state is in connected state." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The edge device state is in disconnected state." - }, - { - "name": "Repairing", - "value": "Repairing", - "description": "The edge device state is in repairing state." - }, - { - "name": "Draining", - "value": "Draining", - "description": "The edge device state is in draining state." - }, - { - "name": "InMaintenance", - "value": "InMaintenance", - "description": "The edge device state is in maintenance state." - }, - { - "name": "Resuming", - "value": "Resuming", - "description": "The edge device state is in resuming state." - }, - { - "name": "Processing", - "value": "Processing", - "description": "The edge device state is in processing state." - } - ] - } - }, - "EdgeDevice": { - "type": "object", - "description": "Edge device resource.", - "properties": { - "kind": { - "$ref": "#/definitions/DeviceKind", - "description": "Device kind to support polymorphic resource.", - "x-ms-mutability": [ - "create", - "read" - ] - } - }, - "discriminator": "kind", - "required": [ - "kind" - ], - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ] - }, - "EdgeDeviceListResult": { - "type": "object", - "description": "The response of a EdgeDevice list operation.", - "properties": { - "value": { - "type": "array", - "description": "The EdgeDevice items on this page", - "items": { - "$ref": "#/definitions/EdgeDevice" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "EdgeDeviceProperties": { - "type": "object", - "description": "Edge Device properties", - "properties": { - "deviceConfiguration": { - "$ref": "#/definitions/DeviceConfiguration", - "description": "Device Configuration" - }, - "provisioningState": { - "$ref": "./hciCommon.json#/definitions/ProvisioningState", - "description": "Provisioning state of edgeDevice resource", - "readOnly": true - } - } - }, - "ErrorDetail": { - "type": "object", - "description": "details of validation failure", - "properties": { - "exception": { - "type": "string", - "description": "Exception details while installing extension.", - "readOnly": true - } - } - }, - "Extension": { - "type": "object", - "description": "Arc extension installed on edge device.", - "properties": { - "extensionName": { - "type": "string", - "description": "Arc extension name installed on edge device.", - "readOnly": true - }, - "state": { - "$ref": "#/definitions/ArcExtensionState", - "description": "Arc extension state from arc machine extension.", - "readOnly": true - }, - "errorDetails": { - "type": "array", - "description": "Error details while installing Arc extension.", - "items": { - "$ref": "#/definitions/ErrorDetail" - }, - "readOnly": true, - "x-ms-identifiers": [] - }, - "extensionResourceId": { - "type": "string", - "format": "arm-id", - "description": "Arc Extension Azure resource id.", - "readOnly": true - }, - "typeHandlerVersion": { - "type": "string", - "description": "Extension version installed.", - "readOnly": true - }, - "managedBy": { - "type": "string", - "description": "Indicates whether the extension is managed by the user or by Azure.", - "default": "Azure", - "enum": [ - "User", - "Azure" - ], - "x-ms-enum": { - "name": "ExtensionManagedBy", - "modelAsString": true, - "values": [ - { - "name": "User", - "value": "User", - "description": "The extension is managed by the user." - }, - { - "name": "Azure", - "value": "Azure", - "description": "The extension is managed by Azure." - } - ] - }, - "readOnly": true - } - } - }, - "ExtensionManagedBy": { - "type": "string", - "description": "Arc extension managed by Azure or User.", - "enum": [ - "User", - "Azure" - ], - "x-ms-enum": { - "name": "ExtensionManagedBy", - "modelAsString": true, - "values": [ - { - "name": "User", - "value": "User", - "description": "The extension is managed by the user." - }, - { - "name": "Azure", - "value": "Azure", - "description": "The extension is managed by Azure." - } - ] - } - }, - "ExtensionProfile": { - "type": "object", - "description": "Extensions details for edge device.", - "properties": { - "extensions": { - "type": "array", - "description": "List of Arc extensions installed on edge device.", - "items": { - "$ref": "#/definitions/Extension" - }, - "readOnly": true, - "x-ms-identifiers": [ - "extensionName" - ] - } - } - }, - "HciEdgeDevice": { - "type": "object", - "description": "Arc-enabled edge device with HCI OS.", - "properties": { - "properties": { - "$ref": "#/definitions/HciEdgeDeviceProperties", - "description": "properties for Arc-enabled edge device with HCI OS." - } - }, - "allOf": [ - { - "$ref": "#/definitions/EdgeDevice" - } - ], - "x-ms-discriminator-value": "HCI" - }, - "HciEdgeDeviceProperties": { - "type": "object", - "description": "properties for Arc-enabled edge device with HCI OS.", - "properties": { - "reportedProperties": { - "$ref": "#/definitions/HciReportedProperties", - "description": "The instance view of all current configurations on HCI device.", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "#/definitions/EdgeDeviceProperties" - } - ] - }, - "HciNetworkProfile": { - "type": "object", - "description": "The network profile of a device.", - "properties": { - "nicDetails": { - "type": "array", - "description": "List of NIC Details of device.", - "items": { - "$ref": "#/definitions/HciNicDetail" - }, - "readOnly": true, - "x-ms-identifiers": [ - "adapterName" - ] - }, - "switchDetails": { - "type": "array", - "description": "List of switch details for edge device.", - "items": { - "$ref": "#/definitions/SwitchDetail" - }, - "readOnly": true, - "x-ms-identifiers": [ - "switchName" - ] - }, - "hostNetwork": { - "$ref": "#/definitions/HostNetwork", - "description": "HostNetwork config to deploy AzureStackHCI Cluster.", - "readOnly": true - } - } - }, - "HciNicDetail": { - "type": "object", - "description": "The NIC Detail of a device.", - "properties": { - "adapterName": { - "type": "string", - "description": "Adapter Name of NIC", - "readOnly": true - }, - "interfaceDescription": { - "type": "string", - "description": "Interface Description of NIC", - "readOnly": true - }, - "componentId": { - "type": "string", - "description": "Component Id of NIC", - "readOnly": true - }, - "driverVersion": { - "type": "string", - "description": "Driver Version of NIC", - "readOnly": true - }, - "ip4Address": { - "type": "string", - "description": "Subnet Mask of NIC", - "readOnly": true - }, - "subnetMask": { - "type": "string", - "description": "Subnet Mask of NIC", - "readOnly": true - }, - "defaultGateway": { - "type": "string", - "description": "Default Gateway of NIC", - "readOnly": true - }, - "dnsServers": { - "type": "array", - "description": "DNS Servers for NIC", - "items": { - "type": "string" - }, - "readOnly": true, - "x-ms-identifiers": [] - }, - "defaultIsolationId": { - "type": "string", - "description": "Default Isolation of Management NIC", - "readOnly": true - }, - "macAddress": { - "type": "string", - "description": "MAC address information of NIC.", - "readOnly": true - }, - "slot": { - "type": "string", - "description": "The slot attached to the NIC.", - "readOnly": true - }, - "switchName": { - "type": "string", - "description": "The switch attached to the NIC, if any.", - "readOnly": true - }, - "nicType": { - "type": "string", - "description": "The type of NIC, physical, virtual, management.", - "readOnly": true - }, - "vlanId": { - "type": "string", - "description": "The VLAN ID of the physical NIC.", - "readOnly": true - }, - "nicStatus": { - "type": "string", - "description": "The status of NIC, up, disconnected.", - "readOnly": true - }, - "rdmaCapability": { - "type": "string", - "description": "Describes the RDMA capability of the network adapter.", - "enum": [ - "Enabled", - "Disabled" - ], - "default": "Disabled", - "x-ms-enum": { - "name": "RdmaCapability", - "modelAsString": true, - "values": [ - { - "name": "Enabled", - "value": "Enabled", - "description": "Network Adapter on the device is RDMA Capable" - }, - { - "name": "Disabled", - "value": "Disabled", - "description": "Network Adapter on the device is RDMA Capable" - } - ] - }, - "readOnly": true - } - } - }, - "HciOsProfile": { - "type": "object", - "description": "OS configurations for HCI device.", - "properties": { - "bootType": { - "type": "string", - "description": "The boot type of the device. e.g. UEFI, Legacy etc", - "readOnly": true - }, - "assemblyVersion": { - "type": "string", - "description": "Version of assembly present on device", - "readOnly": true - } - } - }, - "HciStorageProfile": { - "type": "object", - "description": "Storage configurations for HCI device.", - "properties": { - "poolableDisksCount": { - "type": "integer", - "format": "int64", - "description": "Number of storage disks in the device with $CanPool as true.", - "readOnly": true - } - } - }, - "HciHardwareProfile": { - "type": "object", - "description": "Hardware configurations for HCI device.", - "properties": { - "processorType": { - "type": "string", - "description": "Process type of the device", - "readOnly": true - } - } - }, - "HciReportedProperties": { - "type": "object", - "description": "The device Configuration for HCI device.", - "properties": { - "networkProfile": { - "$ref": "#/definitions/HciNetworkProfile", - "description": "HCI device network information.", - "readOnly": true - }, - "osProfile": { - "$ref": "#/definitions/HciOsProfile", - "description": "HCI device OS specific information.", - "readOnly": true - }, - "sbeDeploymentPackageInfo": { - "$ref": "#/definitions/SbeDeploymentPackageInfo", - "description": "Solution builder extension (SBE) deployment package information.", - "readOnly": true - }, - "storageProfile": { - "$ref": "#/definitions/HciStorageProfile", - "description": "Hci device storage specific information.", - "readOnly": true - }, - "hardwareProfile": { - "$ref": "#/definitions/HciHardwareProfile", - "description": "Hci device hardware specific information.", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "#/definitions/ReportedProperties" - } - ] - }, - "HostNetwork": { - "type": "object", - "description": "The HostNetwork of a cluster.", - "properties": { - "intents": { - "type": "array", - "description": "The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.", - "items": { - "$ref": "#/definitions/Intents" - }, - "readOnly": true, - "x-ms-identifiers": [ - "intentName" - ] - }, - "storageNetworks": { - "type": "array", - "description": "List of StorageNetworks config to deploy AzureStackHCI Cluster.", - "items": { - "$ref": "#/definitions/StorageNetworks" - }, - "readOnly": true, - "x-ms-identifiers": [ - "networkAdapterName" - ] - }, - "storageConnectivitySwitchless": { - "type": "boolean", - "description": "Defines how the storage adapters between nodes are connected either switch or switch less.", - "readOnly": true - }, - "enableStorageAutoIp": { - "type": "boolean", - "description": "Optional parameter required only for 3 Nodes Switchless deployments. This allows users to specify IPs and Mask for Storage NICs when Network ATC is not assigning the IPs for storage automatically.", - "readOnly": true - } - } - }, - "Intents": { - "type": "object", - "description": "The Intents of a cluster.", - "properties": { - "scope": { - "type": "integer", - "format": "int64", - "description": "Scope for host network intent.", - "readOnly": true - }, - "intentType": { - "type": "integer", - "format": "int64", - "description": "IntentType for host network intent.", - "readOnly": true - }, - "isComputeIntentSet": { - "type": "boolean", - "description": "IsComputeIntentSet for host network intent.", - "readOnly": true - }, - "isStorageIntentSet": { - "type": "boolean", - "description": "IsStorageIntentSet for host network intent.", - "readOnly": true - }, - "isOnlyStorage": { - "type": "boolean", - "description": "IntentType for host network intent.", - "readOnly": true - }, - "isManagementIntentSet": { - "type": "boolean", - "description": "IsManagementIntentSet for host network intent.", - "readOnly": true - }, - "isStretchIntentSet": { - "type": "boolean", - "description": "IsStretchIntentSet for host network intent.", - "readOnly": true - }, - "isOnlyStretch": { - "type": "boolean", - "description": "IsOnlyStretch for host network intent.", - "readOnly": true - }, - "isNetworkIntentType": { - "type": "boolean", - "description": "IsNetworkIntentType for host network intent.", - "readOnly": true - }, - "intentName": { - "type": "string", - "description": "Name of the network intent you wish to create.", - "readOnly": true - }, - "intentAdapters": { - "type": "array", - "description": "Array of adapters used for the network intent.", - "items": { - "type": "string" - }, - "readOnly": true - }, - "overrideVirtualSwitchConfiguration": { - "type": "boolean", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "readOnly": true - }, - "virtualSwitchConfigurationOverrides": { - "$ref": "#/definitions/VirtualSwitchConfigurationOverrides", - "description": "Set virtualSwitch ConfigurationOverrides for cluster.", - "readOnly": true - }, - "overrideQosPolicy": { - "type": "boolean", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "readOnly": true - }, - "qosPolicyOverrides": { - "$ref": "./deploymentSettings.json#/definitions/QosPolicyOverrides", - "description": "Set QoS PolicyOverrides for cluster.", - "readOnly": true - }, - "overrideAdapterProperty": { - "type": "boolean", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "readOnly": true - }, - "adapterPropertyOverrides": { - "$ref": "#/definitions/AdapterPropertyOverrides", - "description": "Set Adapter PropertyOverrides for cluster.", - "readOnly": true - } - } - }, - "NicDetail": { - "type": "object", - "description": "The NIC Detail of a device.", - "properties": { - "adapterName": { - "type": "string", - "description": "Adapter Name of NIC" - }, - "interfaceDescription": { - "type": "string", - "description": "Interface Description of NIC" - }, - "componentId": { - "type": "string", - "description": "Component Id of NIC" - }, - "driverVersion": { - "type": "string", - "description": "Driver Version of NIC" - }, - "ip4Address": { - "type": "string", - "description": "Subnet Mask of NIC" - }, - "subnetMask": { - "type": "string", - "description": "Subnet Mask of NIC" - }, - "defaultGateway": { - "type": "string", - "description": "Default Gateway of NIC" - }, - "dnsServers": { - "type": "array", - "description": "DNS Servers for NIC", - "items": { - "type": "string" - }, - "x-ms-identifiers": [] - }, - "defaultIsolationId": { - "type": "string", - "description": "Default Isolation of Management NIC" - } - } - }, - "ReportedProperties": { - "type": "object", - "description": "Reported properties pushed from edge device.", - "properties": { - "deviceState": { - "$ref": "#/definitions/DeviceState", - "description": "edge device state.", - "readOnly": true - }, - "extensionProfile": { - "$ref": "#/definitions/ExtensionProfile", - "description": "Extensions details for edge device.", - "readOnly": true - } - } - }, - "SbeDeploymentPackageInfo": { - "type": "object", - "description": "Solution builder extension (SBE) deployment package information.", - "properties": { - "code": { - "type": "string", - "description": "SBE deployment validation code.", - "readOnly": true - }, - "message": { - "type": "string", - "description": "A detailed message that explains the SBE package validation result.", - "readOnly": true - }, - "sbeManifest": { - "type": "string", - "description": "This represents discovered update results for matching updates and store it as SBE manifest.", - "readOnly": true - } - } - }, - "StorageAdapterIPInfo": { - "type": "object", - "description": "The StorageAdapter physical nodes of a cluster.", - "properties": { - "physicalNode": { - "type": "string", - "description": "storage adapter physical node name.", - "readOnly": true - }, - "ipv4Address": { - "type": "string", - "description": "The IPv4 address assigned to each storage adapter physical node on your Azure Stack HCI cluster.", - "readOnly": true - }, - "subnetMask": { - "type": "string", - "description": "The SubnetMask address assigned to each storage adapter physical node on your Azure Stack HCI cluster.", - "readOnly": true - } - } - }, - "StorageNetworks": { - "type": "object", - "description": "The StorageNetworks of a cluster.", - "properties": { - "name": { - "type": "string", - "description": "Name of the storage network.", - "readOnly": true - }, - "networkAdapterName": { - "type": "string", - "description": "Name of the storage network adapter.", - "readOnly": true - }, - "storageVlanId": { - "type": "string", - "description": "ID specified for the VLAN storage network. This setting is applied to the network interfaces that route the storage and VM migration traffic. ", - "readOnly": true - }, - "storageAdapterIPInfo": { - "type": "array", - "description": "List of Storage adapter physical nodes config to deploy AzureStackHCI Cluster.", - "items": { - "$ref": "#/definitions/StorageAdapterIPInfo" - }, - "readOnly": true, - "x-ms-identifiers": [ - "physicalNode" - ] - } - } - }, - "SwitchDetail": { - "type": "object", - "description": "List of switch details for edge device.", - "properties": { - "switchName": { - "type": "string", - "description": "The name of the switch.", - "readOnly": true - }, - "switchType": { - "type": "string", - "description": "The type of the switch. e.g. external, internal.", - "readOnly": true - }, - "extensions": { - "type": "array", - "description": "This represents extensions installed on virtualSwitch.", - "items": { - "$ref": "#/definitions/SwitchExtension" - }, - "readOnly": true, - "x-ms-identifiers": [ - "extensionName" - ] - } - } - }, - "SwitchExtension": { - "type": "object", - "description": "This represents extensions installed on virtualSwitch.", - "properties": { - "switchId": { - "type": "string", - "description": "Unique identifier for virtualSwitch.", - "readOnly": true - }, - "extensionName": { - "type": "string", - "description": "This will show extension name for virtualSwitch.", - "readOnly": true - }, - "extensionEnabled": { - "type": "boolean", - "description": "This represents whether extension is enabled on virtualSwitch.", - "readOnly": true - } - } - }, - "ValidateRequest": { - "type": "object", - "description": "The validate request for Edge Device.", - "properties": { - "edgeDeviceIds": { - "type": "array", - "description": "Node Ids against which, current node has to be validated.", - "items": { - "type": "string" - } - }, - "additionalInfo": { - "type": "string", - "description": "Additional info required for validation." - } - }, - "required": [ - "edgeDeviceIds" - ] - }, - "ValidateResponse": { - "type": "object", - "description": "An Accepted response with an Operation-Location header.", - "properties": { - "status": { - "type": "string", - "description": "edge device validation status", - "readOnly": true - } - } - }, - "VirtualSwitchConfigurationOverrides": { - "type": "object", - "description": "The VirtualSwitchConfigurationOverrides of a cluster.", - "properties": { - "enableIov": { - "type": "string", - "description": "Enable IoV for Virtual Switch", - "readOnly": true - }, - "loadBalancingAlgorithm": { - "type": "string", - "description": "Load Balancing Algorithm for Virtual Switch", - "readOnly": true - } - } - } - }, - "parameters": { - "Azure.ResourceManager.ResourceUriParameter": { - "name": "resourceUri", - "in": "path", - "description": "The fully qualified Azure Resource manager identifier of the resource.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-skip-url-encoding": true - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ChangeClusterRing.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ChangeClusterRing.json index 56f772cfa55f..54485623fdbf 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ChangeClusterRing.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ChangeClusterRing.json @@ -1,4 +1,6 @@ { + "title": "Change cluster ring", + "operationId": "Clusters_ChangeRing", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/Clusters_UpdateSecretsLocations.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/Clusters_UpdateSecretsLocations.json index bc238307f4dc..37a1fbffa205 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/Clusters_UpdateSecretsLocations.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/Clusters_UpdateSecretsLocations.json @@ -1,4 +1,6 @@ { + "title": "Update secrets locations for a Cluster", + "operationId": "Clusters_UpdateSecretsLocations", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", @@ -87,7 +89,5 @@ "location": "https://foo.com/operationStatuses" } } - }, - "operationId": "Clusters_UpdateSecretsLocations", - "title": "Update secrets locations for a Cluster" + } } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ConfigureRemoteSupport.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ConfigureRemoteSupport.json index 180e96e03a8a..b68f84ece60d 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ConfigureRemoteSupport.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ConfigureRemoteSupport.json @@ -1,4 +1,6 @@ { + "title": "Configure Remote Support", + "operationId": "Clusters_ConfigureRemoteSupport", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ConsentAndInstallDefaultExtensions.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ConsentAndInstallDefaultExtensions.json index d9f54a641d78..8c4ca4d22fa5 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ConsentAndInstallDefaultExtensions.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ConsentAndInstallDefaultExtensions.json @@ -1,4 +1,6 @@ { + "title": "Consent And Install Default Extensions", + "operationId": "ArcSettings_ConsentAndInstallDefaultExtensions", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateArcIdentity.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateArcIdentity.json index 277cfea77291..18857a868214 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateArcIdentity.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateArcIdentity.json @@ -1,4 +1,6 @@ { + "title": "Create Arc Identity", + "operationId": "ArcSettings_CreateIdentity", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateCluster.json index e5a4bc79489e..74281f092150 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateCluster.json @@ -1,4 +1,6 @@ { + "title": "Create cluster", + "operationId": "Clusters_Create", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateClusterIdentity.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateClusterIdentity.json index c696c15d53ee..1e012fb4b6ee 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateClusterIdentity.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateClusterIdentity.json @@ -1,4 +1,6 @@ { + "title": "Create cluster Identity", + "operationId": "Clusters_CreateIdentity", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateHciEdgeDevice.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateHciEdgeDevice.json index 26fa8afae80f..8529898873c6 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateHciEdgeDevice.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/CreateHciEdgeDevice.json @@ -1,4 +1,6 @@ { + "title": "Create HCI Edge Device", + "operationId": "EdgeDevices_CreateOrUpdate", "parameters": { "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "edgeDeviceName": "default", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteArcSetting.json index 370752ed1ade..b5833729deca 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteArcSetting.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteArcSetting.json @@ -1,4 +1,6 @@ { + "title": "Delete ArcSetting", + "operationId": "ArcSettings_Delete", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteCluster.json index 808d5caa58b6..83c495682066 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteCluster.json @@ -1,4 +1,6 @@ { + "title": "Delete cluster", + "operationId": "Clusters_Delete", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteDeploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteDeploymentSettings.json index 9f8f1a189444..9384f0fdffe9 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteDeploymentSettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteDeploymentSettings.json @@ -1,4 +1,6 @@ { + "title": "Delete Deployment Settings", + "operationId": "DeploymentSettings_Delete", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteEdgeDevices.json index 306fbe81289a..ea144af96bfe 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteEdgeDevices.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteEdgeDevices.json @@ -1,4 +1,6 @@ { + "title": "Delete Edge Devices", + "operationId": "EdgeDevices_Delete", "parameters": { "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "edgeDeviceName": "default", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteExtension.json index c4a0d3376590..e2625a001072 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteExtension.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteExtension.json @@ -1,4 +1,6 @@ { + "title": "Delete Arc Extension", + "operationId": "Extensions_Delete", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteSecuritySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteSecuritySettings.json index 931680aa8525..6b5614e0b4bb 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteSecuritySettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteSecuritySettings.json @@ -1,4 +1,6 @@ { + "title": "Delete Security Settings", + "operationId": "SecuritySettings_Delete", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteUpdateRuns.json index 83927acecd09..bec20a37a860 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteUpdateRuns.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteUpdateRuns.json @@ -1,4 +1,6 @@ { + "title": "Delete an Update", + "operationId": "UpdateRuns_Delete", "parameters": { "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "resourceGroupName": "testrg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteUpdateSummaries.json index 05d69cae4747..53e724c1c75c 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteUpdateSummaries.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteUpdateSummaries.json @@ -1,4 +1,6 @@ { + "title": "Delete an Update", + "operationId": "UpdateSummaries_Delete", "parameters": { "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "resourceGroupName": "testrg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteUpdates.json index 9b48e0ce8e15..997dd8df719c 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteUpdates.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/DeleteUpdates.json @@ -1,4 +1,6 @@ { + "title": "Delete an Update", + "operationId": "Updates_Delete", "parameters": { "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "resourceGroupName": "testrg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ExtendSoftwareAssuranceBenefit.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ExtendSoftwareAssuranceBenefit.json index e3d643feadd7..1b3ae7eafc76 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ExtendSoftwareAssuranceBenefit.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ExtendSoftwareAssuranceBenefit.json @@ -1,4 +1,6 @@ { + "title": "Create cluster Identity", + "operationId": "Clusters_ExtendSoftwareAssuranceBenefit", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/Extensions_Upgrade.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/Extensions_Upgrade.json index b2b912dfd368..3230a053bc48 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/Extensions_Upgrade.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/Extensions_Upgrade.json @@ -1,4 +1,6 @@ { + "title": "Upgrade Machine Extensions", + "operationId": "Extensions_Upgrade", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GeneratePassword.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GeneratePassword.json index e88995f23a3f..c22709b02f06 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GeneratePassword.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GeneratePassword.json @@ -1,4 +1,6 @@ { + "title": "Generate Password", + "operationId": "ArcSettings_GeneratePassword", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetArcSetting.json index 1de9d3ef18f0..75166bb3ae79 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetArcSetting.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetArcSetting.json @@ -1,4 +1,6 @@ { + "title": "Get ArcSetting", + "operationId": "ArcSettings_Get", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetCluster.json index ce7df24d53d1..ad33a9ffbf28 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetCluster.json @@ -1,4 +1,6 @@ { + "title": "Get cluster", + "operationId": "Clusters_Get", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetDeploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetDeploymentSettings.json index 2fe4b7f937ec..92818503db70 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetDeploymentSettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetDeploymentSettings.json @@ -1,4 +1,6 @@ { + "title": "Get Deployment Settings", + "operationId": "DeploymentSettings_Get", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetEdgeDevices.json index 02b09db15c4b..e05b8a92932c 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetEdgeDevices.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetEdgeDevices.json @@ -1,4 +1,6 @@ { + "title": "Get Edge Device", + "operationId": "EdgeDevices_Get", "parameters": { "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "edgeDeviceName": "default", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetExtension.json index ddf79b9d68f9..cfb0bfece7b7 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetExtension.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetExtension.json @@ -1,4 +1,6 @@ { + "title": "Get ArcSettings Extension", + "operationId": "Extensions_Get", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetOffer.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetOffer.json index 4272270594a8..5e19be2f4ceb 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetOffer.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetOffer.json @@ -1,4 +1,6 @@ { + "title": "Get Offer", + "operationId": "Offers_Get", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetPublisher.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetPublisher.json index 152d0fdffb8f..2bffc9c78cc3 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetPublisher.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetPublisher.json @@ -1,4 +1,6 @@ { + "title": "Get Publisher", + "operationId": "Publishers_Get", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetSecuritySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetSecuritySettings.json index c63b8c00bd39..0fc52f0dbf9d 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetSecuritySettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetSecuritySettings.json @@ -1,4 +1,6 @@ { + "title": "Get Security Settings", + "operationId": "SecuritySettings_Get", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetSku.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetSku.json index c40be269c9d9..286b3e31611e 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetSku.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetSku.json @@ -1,4 +1,6 @@ { + "title": "Get Sku", + "operationId": "Skus_Get", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetUpdateRuns.json index 60fd9c60360a..c2ff0405ffa6 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetUpdateRuns.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetUpdateRuns.json @@ -1,4 +1,6 @@ { + "title": "Get Update runs under cluster resource", + "operationId": "UpdateRuns_Get", "parameters": { "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "resourceGroupName": "testrg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetUpdateSummaries.json index 47e486be20cb..af2aa0e6b38d 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetUpdateSummaries.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetUpdateSummaries.json @@ -1,4 +1,6 @@ { + "title": "Get Update summaries under cluster resource", + "operationId": "UpdateSummaries_Get", "parameters": { "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "resourceGroupName": "testrg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetUpdates.json index d3534b615311..a31e5fc82e29 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetUpdates.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/GetUpdates.json @@ -1,4 +1,6 @@ { + "title": "Get a specific update", + "operationId": "Updates_Get", "parameters": { "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "resourceGroupName": "testrg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/InitializeDisableProcess.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/InitializeDisableProcess.json index 0813c00ab77c..42fd2fd0ea8f 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/InitializeDisableProcess.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/InitializeDisableProcess.json @@ -1,4 +1,6 @@ { + "title": "Trigger ARC Disable", + "operationId": "ArcSettings_InitializeDisableProcess", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListArcSettingsByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListArcSettingsByCluster.json index a6b122920015..43e9c158e7fc 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListArcSettingsByCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListArcSettingsByCluster.json @@ -1,4 +1,6 @@ { + "title": "List ArcSetting resources by HCI Cluster", + "operationId": "ArcSettings_ListByCluster", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListClustersByResourceGroup.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListClustersByResourceGroup.json index c5e071ecc5ae..0640e03cb57a 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListClustersByResourceGroup.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListClustersByResourceGroup.json @@ -1,4 +1,6 @@ { + "title": "List clusters in a given resource group", + "operationId": "Clusters_ListByResourceGroup", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListClustersBySubscription.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListClustersBySubscription.json index 3137aa8b1d02..d440b7abd712 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListClustersBySubscription.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListClustersBySubscription.json @@ -1,4 +1,6 @@ { + "title": "List clusters in a given subscription", + "operationId": "Clusters_ListBySubscription", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "api-version": "2025-11-01-preview" diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListDeploymentSettingsByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListDeploymentSettingsByCluster.json index b2d5e80ae66b..4343c3e75e37 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListDeploymentSettingsByCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListDeploymentSettingsByCluster.json @@ -1,4 +1,6 @@ { + "title": "List Deployment Settings", + "operationId": "DeploymentSettings_ListByClusters", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListEdgeDevices.json index 8dc4389a3862..66487c124099 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListEdgeDevices.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListEdgeDevices.json @@ -1,4 +1,6 @@ { + "title": "List Edge Devices", + "operationId": "EdgeDevices_List", "parameters": { "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "edgeDeviceName": "default", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListExtensionsByArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListExtensionsByArcSetting.json index 43deb1295fc4..29a00d9ccbd9 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListExtensionsByArcSetting.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListExtensionsByArcSetting.json @@ -1,4 +1,6 @@ { + "title": "List Extensions under ArcSetting resource", + "operationId": "Extensions_ListByArcSetting", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListOffersByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListOffersByCluster.json index 210aa2805b11..252984915a14 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListOffersByCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListOffersByCluster.json @@ -1,4 +1,6 @@ { + "title": "List Offer resources by HCI Cluster", + "operationId": "Offers_ListByCluster", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListOffersByPublisher.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListOffersByPublisher.json index 92f200bafb04..b39884ccad59 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListOffersByPublisher.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListOffersByPublisher.json @@ -1,4 +1,6 @@ { + "title": "List Offer resources by publisher for the HCI Cluster", + "operationId": "Offers_ListByPublisher", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListPublishersByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListPublishersByCluster.json index 6687474f5eeb..009f11c4385c 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListPublishersByCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListPublishersByCluster.json @@ -1,4 +1,6 @@ { + "title": "List Publisher resources by HCI Cluster", + "operationId": "Publishers_ListByCluster", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListSecuritySettingsByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListSecuritySettingsByCluster.json index 3d9e6f352e29..3a8450181956 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListSecuritySettingsByCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListSecuritySettingsByCluster.json @@ -1,4 +1,6 @@ { + "title": "List Security Settings", + "operationId": "SecuritySettings_ListByClusters", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListSkusByOffer.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListSkusByOffer.json index d4efb07af323..b574043fbd7a 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListSkusByOffer.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListSkusByOffer.json @@ -1,4 +1,6 @@ { + "title": "List SKU resources by offer for the HCI Cluster", + "operationId": "Skus_ListByOffer", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListUpdateRuns.json index 6500f0b5356d..f5cd365093bf 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListUpdateRuns.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListUpdateRuns.json @@ -1,4 +1,6 @@ { + "title": "List Update runs under cluster resource", + "operationId": "UpdateRuns_List", "parameters": { "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "resourceGroupName": "testrg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListUpdateSummaries.json index bb18c1324870..f3d4c7b9ac1b 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListUpdateSummaries.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListUpdateSummaries.json @@ -1,4 +1,6 @@ { + "title": "Get Update summaries under cluster resource", + "operationId": "UpdateSummaries_List", "parameters": { "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "resourceGroupName": "testrg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListUpdates.json index 97144cad27e4..35bb9e90b456 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListUpdates.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ListUpdates.json @@ -1,4 +1,6 @@ { + "title": "List available updates", + "operationId": "Updates_List", "parameters": { "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "resourceGroupName": "testrg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PatchArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PatchArcSetting.json index 801c84ceb372..c29fd999a6d1 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PatchArcSetting.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PatchArcSetting.json @@ -1,4 +1,6 @@ { + "title": "Patch ArcSetting", + "operationId": "ArcSettings_Update", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PatchExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PatchExtension.json index 977a47a0c359..391a7d1d99c2 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PatchExtension.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PatchExtension.json @@ -1,4 +1,6 @@ { + "title": "Update Arc Extension", + "operationId": "Extensions_Update", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PlatformUpdates_ListByLocation_MaximumSet_Gen.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PlatformUpdates_ListByLocation_MaximumSet_Gen.json index 1b70a458576e..e86c80e2cd2f 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PlatformUpdates_ListByLocation_MaximumSet_Gen.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PlatformUpdates_ListByLocation_MaximumSet_Gen.json @@ -61,7 +61,7 @@ "type": "Microsoft.AzureStackHCI/PlatformUpdates" } ], - "nextLink": "https://management.azure.com/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/providers/Microsoft.AzureStackHCI/locations/westus2/platformUpdates?api-version=2025-11-01-preview&$skiptoken=X'12345'" + "nextLink": "https://management.azure.com/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/providers/Microsoft.AzureStackHCI/locations/westus2/platformUpdates?api-version=2025-09-22-preview&$skiptoken=X'12345'" } } } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PostUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PostUpdates.json index e881a70b7f8e..604bd2a3cd46 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PostUpdates.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PostUpdates.json @@ -1,4 +1,6 @@ { + "title": "List available updates", + "operationId": "Updates_Post", "parameters": { "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "resourceGroupName": "testrg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutArcSetting.json index f723cfccc836..2549e471b2fc 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutArcSetting.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutArcSetting.json @@ -1,4 +1,6 @@ { + "title": "Create ArcSetting", + "operationId": "ArcSettings_Create", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutDeploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutDeploymentSettings.json index 4d6f1a866251..41a8a4b01bf9 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutDeploymentSettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutDeploymentSettings.json @@ -1,4 +1,6 @@ { + "title": "Create Deployment Settings", + "operationId": "DeploymentSettings_CreateOrUpdate", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", @@ -40,8 +42,7 @@ "witnessType": "Cloud", "witnessPath": "Cloud", "cloudAccountName": "myasestoragacct", - "azureServiceEndpoint": "core.windows.net", - "hardwareClass": "Medium" + "azureServiceEndpoint": "core.windows.net" }, "storage": { "configurationMode": "Express" diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutDeploymentSettingsWithADLess.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutDeploymentSettingsWithADLess.json index 5fe940fd3296..373dff38fb77 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutDeploymentSettingsWithADLess.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutDeploymentSettingsWithADLess.json @@ -1,4 +1,6 @@ { + "title": "Create Deployment Settings Without Active Directory Integration", + "operationId": "DeploymentSettings_CreateOrUpdate", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", @@ -40,8 +42,7 @@ "witnessType": "Cloud", "witnessPath": "Cloud", "cloudAccountName": "myasestoragacct", - "azureServiceEndpoint": "core.windows.net", - "hardwareClass": "Medium" + "azureServiceEndpoint": "core.windows.net" }, "identityProvider": "LocalIdentity", "storage": { diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutExtension.json index 5422104c55d0..27e3f8d05c02 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutExtension.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutExtension.json @@ -1,4 +1,6 @@ { + "title": "Create Arc Extension", + "operationId": "Extensions_Create", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutSecuritySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutSecuritySettings.json index e2d0c02c7d10..d69f84c01891 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutSecuritySettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutSecuritySettings.json @@ -1,4 +1,6 @@ { + "title": "Create Security Settings", + "operationId": "SecuritySettings_CreateOrUpdate", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutUpdateRuns.json index d9d685630e10..791674b702b0 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutUpdateRuns.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutUpdateRuns.json @@ -1,4 +1,6 @@ { + "title": "Get Update runs under cluster resource", + "operationId": "UpdateRuns_Put", "parameters": { "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "resourceGroupName": "testrg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutUpdateSummaries.json index 77561bf4de67..55259a6f4445 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutUpdateSummaries.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutUpdateSummaries.json @@ -1,4 +1,6 @@ { + "title": "Put Update summaries under cluster resource", + "operationId": "UpdateSummaries_Put", "parameters": { "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "resourceGroupName": "testrg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutUpdates.json index 47bc05b4cbb8..a4162b0e7a2a 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutUpdates.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/PutUpdates.json @@ -1,4 +1,6 @@ { + "title": "Put a specific update", + "operationId": "Updates_Put", "parameters": { "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "resourceGroupName": "testrg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/TriggerLogCollection.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/TriggerLogCollection.json index e0c4416e90c8..a10983e7ffb0 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/TriggerLogCollection.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/TriggerLogCollection.json @@ -1,4 +1,6 @@ { + "title": "Trigger Log Collection", + "operationId": "Clusters_TriggerLogCollection", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/UpdateCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/UpdateCluster.json index d09c39f5eb76..e33230db7427 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/UpdateCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/UpdateCluster.json @@ -1,4 +1,6 @@ { + "title": "Update cluster", + "operationId": "Clusters_Update", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/UpdateContents_ListByLocation_MaximumSet_Gen.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/UpdateContents_ListByLocation_MaximumSet_Gen.json index 2b95f94e6614..cc42acef58b6 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/UpdateContents_ListByLocation_MaximumSet_Gen.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/UpdateContents_ListByLocation_MaximumSet_Gen.json @@ -47,7 +47,7 @@ "type": "Microsoft.AzureStackHCI/UpdateContents" } ], - "nextLink": "https://management.azure.com/subscriptions/2886575D-173A-44A0-80E2-7DBA57F18B46/providers/Microsoft.AzureStackHCI/locations/westus2/updateContents?api-version=2025-11-01-preview&$skiptoken=X'12345'" + "nextLink": "https://management.azure.com/subscriptions/2886575D-173A-44A0-80E2-7DBA57F18B46/providers/Microsoft.AzureStackHCI/locations/westus2/updateContents?api-version=2025-09-22-preview&$skiptoken=X'12345'" } } } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/UploadCertificate.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/UploadCertificate.json index aa11b833b8b9..6ef4f16860de 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/UploadCertificate.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/UploadCertificate.json @@ -1,4 +1,6 @@ { + "title": "Upload certificate", + "operationId": "Clusters_UploadCertificate", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ValidateEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ValidateEdgeDevices.json index e49ed8d80a8e..5b760e52e55f 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ValidateEdgeDevices.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/ValidateEdgeDevices.json @@ -1,4 +1,6 @@ { + "title": "Validate Edge Devices", + "operationId": "EdgeDevices_Validate", "parameters": { "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "edgeDeviceName": "default", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/reconcileArcSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/reconcileArcSettings.json index 94e6e664dc2e..44fc3dc706d0 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/reconcileArcSettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/examples/reconcileArcSettings.json @@ -1,4 +1,6 @@ { + "title": "Reconcile Arc Settings", + "operationId": "ArcSettings_Reconcile", "parameters": { "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "resourceGroupName": "test-rg", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/extensions.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/extensions.json deleted file mode 100644 index a137f0767a70..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/extensions.json +++ /dev/null @@ -1,1002 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-11-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions": { - "get": { - "operationId": "Extensions_ListByArcSetting", - "description": "List all Extensions under ArcSetting resource.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ExtensionList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Extensions under ArcSetting resource": { - "$ref": "./examples/ListExtensionsByArcSetting.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions/{extensionName}": { - "get": { - "operationId": "Extensions_Get", - "description": "Get particular Arc Extension of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "#/parameters/ExtensionNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Extension" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get ArcSettings Extension": { - "$ref": "./examples/GetExtension.json" - } - } - }, - "put": { - "operationId": "Extensions_Create", - "description": "Create Extension for HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "#/parameters/ExtensionNameParameter" - }, - { - "name": "extension", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Extension" - }, - "description": "Details of the Machine Extension to be created." - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Succeeded", - "schema": { - "$ref": "#/definitions/Extension" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/Extension" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Create Arc Extension": { - "$ref": "./examples/PutExtension.json" - } - } - }, - "patch": { - "operationId": "Extensions_Update", - "description": "Update Extension for HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "#/parameters/ExtensionNameParameter" - }, - { - "name": "extension", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ExtensionPatch" - }, - "description": "Details of the Machine Extension to be created." - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Extension" - } - }, - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "original-uri" - }, - "x-ms-examples": { - "Update Arc Extension": { - "$ref": "./examples/PatchExtension.json" - } - } - }, - "delete": { - "operationId": "Extensions_Delete", - "description": "Delete particular Arc Extension of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "#/parameters/ExtensionNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "OK" - }, - "204": { - "description": "OK" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Delete Arc Extension": { - "$ref": "./examples/DeleteExtension.json" - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions/{extensionName}/upgrade": { - "post": { - "operationId": "Extensions_Upgrade", - "description": "Upgrade a particular Arc Extension of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "#/parameters/ExtensionNameParameter" - }, - { - "name": "extensionUpgradeParameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ExtensionUpgradeParameters" - }, - "description": "Parameters supplied to the Upgrade Extensions operation." - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Upgrade Machine Extensions": { - "$ref": "./examples/Extensions_Upgrade.json" - } - } - } - } - }, - "definitions": { - "Extension": { - "description": "Details of a particular extension in HCI Cluster.", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "description": "Describes Machine Extension Properties.", - "$ref": "#/definitions/ExtensionProperties", - "x-ms-client-flatten": true - } - } - }, - "ExtensionPatch": { - "description": "Extension Details to update", - "type": "object", - "properties": { - "properties": { - "description": "Describes Machine Extension Properties that can be updated.", - "$ref": "#/definitions/ExtensionPatchProperties", - "x-ms-client-flatten": true - } - } - }, - "ExtensionProperties": { - "description": "Status of Arc Extension for a particular node in HCI Cluster.", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning state of the Extension proxy resource. Indicates the current lifecycle status of the resource, such as whether it's being created, updated, deleted, or has encountered an error.", - "type": "string", - "enum": [ - "NotSpecified", - "Error", - "Succeeded", - "Failed", - "Canceled", - "Connected", - "Disconnected", - "Deleted", - "Creating", - "Updating", - "Deleting", - "Moving", - "PartiallySucceeded", - "PartiallyConnected", - "InProgress", - "Accepted", - "Provisioning" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The provisioning state is not specified." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred during provisioning." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Provisioning completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Provisioning failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Provisioning was canceled." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The resource is connected." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The resource is disconnected." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The resource has been deleted." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The resource is being created." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The resource is being updated." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The resource is being deleted." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The resource is being moved." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "Provisioning partially succeeded." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "The resource is partially connected." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "Provisioning is in progress." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "Provisioning request has been accepted." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The resource is currently provisioning." - } - ] - }, - "readOnly": true - }, - "extensionParameters": { - "description": "Parameters specific to this extension type.", - "$ref": "#/definitions/ExtensionParameters", - "x-ms-client-flatten": true - }, - "aggregateState": { - "description": "Aggregate state of Arc Extensions across the nodes in this HCI cluster. This reflects the overall status of the extension deployment and operation across all nodes.", - "type": "string", - "enum": [ - "NotSpecified", - "Error", - "Succeeded", - "Canceled", - "Failed", - "Connected", - "Disconnected", - "Deleted", - "Creating", - "Updating", - "Deleting", - "Moving", - "PartiallySucceeded", - "PartiallyConnected", - "InProgress", - "Accepted", - "Provisioning", - "UpgradeFailedRollbackSucceeded" - ], - "x-ms-enum": { - "name": "ExtensionAggregateState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The aggregate state is not specified." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred in the aggregate state." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The operation succeeded across all nodes." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The operation was canceled across the nodes." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The operation failed on all or most nodes." - }, - { - "name": "Connected", - "value": "Connected", - "description": "All nodes are connected." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "All nodes are disconnected." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The extension has been deleted from all nodes." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The extension is being created across the nodes." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The extension is being updated across the nodes." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The extension is being deleted across the nodes." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The extension is being moved across the nodes." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "The operation succeeded on some nodes." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "Some nodes are connected, others are not." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The operation is currently in progress across the nodes." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The extension is currently being provisioned across the nodes." - }, - { - "name": "UpgradeFailedRollbackSucceeded", - "value": "UpgradeFailedRollbackSucceeded", - "description": "Extension upgrade failed, but rollback succeeded across the nodes." - } - ] - }, - "readOnly": true - }, - "perNodeExtensionDetails": { - "description": "State of Arc Extension in each of the nodes.", - "type": "array", - "items": { - "$ref": "#/definitions/PerNodeExtensionState" - }, - "readOnly": true - }, - "managedBy": { - "description": "Indicates if the extension is managed by Azure or the user. This determines who controls the deployment and lifecycle of the extension.", - "type": "string", - "enum": [ - "Azure", - "User" - ], - "x-ms-enum": { - "name": "ExtensionManagedBy", - "modelAsString": true, - "values": [ - { - "name": "Azure", - "value": "Azure", - "description": "The extension is managed by Azure." - }, - { - "name": "User", - "value": "User", - "description": "The extension is managed by the user." - } - ] - }, - "readOnly": true - } - } - }, - "ExtensionPatchProperties": { - "description": "Describes Machine Extension Properties that can be updated.", - "type": "object", - "properties": { - "extensionParameters": { - "description": "Describes the properties of a Machine Extension that can be updated.", - "$ref": "#/definitions/ExtensionPatchParameters" - } - } - }, - "ExtensionPatchParameters": { - "description": "Describes the properties of a Machine Extension that can be updated.", - "type": "object", - "properties": { - "typeHandlerVersion": { - "type": "string", - "description": "Specifies the version of the script handler. Latest version would be used if not specified." - }, - "enableAutomaticUpgrade": { - "type": "boolean", - "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version available." - }, - "settings": { - "type": "object", - "description": "Json formatted public settings for the extension." - }, - "protectedSettings": { - "type": "object", - "description": "Protected settings (may contain secrets).", - "x-ms-secret": true - } - } - }, - "PerNodeExtensionState": { - "description": "Status of Arc Extension for a particular node in HCI Cluster.", - "type": "object", - "properties": { - "name": { - "description": "Name of the node in HCI Cluster.", - "type": "string", - "readOnly": true - }, - "extension": { - "description": "Fully qualified resource ID for the particular Arc Extension on this node.", - "type": "string", - "readOnly": true - }, - "typeHandlerVersion": { - "type": "string", - "description": "Specifies the version of the script handler.", - "readOnly": true - }, - "state": { - "description": "State of Arc Extension in this node. Reflects the current lifecycle status of the extension on the individual node, such as whether it's being created, updated, deleted, or has encountered an error.", - "type": "string", - "enum": [ - "NotSpecified", - "Error", - "Succeeded", - "Canceled", - "Failed", - "Connected", - "Disconnected", - "Deleted", - "Creating", - "Updating", - "Deleting", - "Moving", - "PartiallySucceeded", - "PartiallyConnected", - "InProgress", - "Accepted", - "Provisioning" - ], - "x-ms-enum": { - "name": "NodeExtensionState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The state is not specified." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred during the extension lifecycle." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The extension operation completed successfully." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The extension operation was canceled." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The extension operation failed." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The extension is connected on the node." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The extension is disconnected on the node." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The extension has been deleted from the node." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The extension is being created on the node." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The extension is being updated on the node." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The extension is being deleted from the node." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The extension is being moved on the node." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "The extension operation partially succeeded." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "The extension is partially connected on the node." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The extension operation is currently in progress." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The extension operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The extension is currently being provisioned on the node." - } - ] - }, - "readOnly": true - }, - "instanceView": { - "$ref": "#/definitions/ExtensionInstanceView", - "description": "The extension instance view.", - "readOnly": true - } - } - }, - "ExtensionList": { - "description": "List of Extensions in HCI cluster.", - "type": "object", - "properties": { - "value": { - "description": "List of Extensions in HCI cluster.", - "type": "array", - "items": { - "$ref": "#/definitions/Extension" - }, - "readOnly": true - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "ExtensionParameters": { - "description": "Describes the properties of a Machine Extension. This object mirrors the definition in HybridCompute.", - "type": "object", - "properties": { - "forceUpdateTag": { - "type": "string", - "description": "How the extension handler should be forced to update even if the extension configuration has not changed." - }, - "publisher": { - "type": "string", - "description": "The name of the extension handler publisher." - }, - "type": { - "type": "string", - "description": "Specifies the type of the extension; an example is \"CustomScriptExtension\"." - }, - "typeHandlerVersion": { - "type": "string", - "description": "Specifies the version of the script handler. Latest version would be used if not specified." - }, - "autoUpgradeMinorVersion": { - "type": "boolean", - "description": "Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true." - }, - "settings": { - "type": "object", - "description": "Json formatted public settings for the extension." - }, - "protectedSettings": { - "type": "object", - "description": "Protected settings (may contain secrets).", - "x-ms-secret": true - }, - "enableAutomaticUpgrade": { - "type": "boolean", - "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version available." - } - } - }, - "ExtensionInstanceView": { - "type": "object", - "description": "Describes the Extension Instance View.", - "properties": { - "name": { - "type": "string", - "description": "The extension name." - }, - "type": { - "type": "string", - "description": "Specifies the type of the extension; an example is \"MicrosoftMonitoringAgent\"." - }, - "typeHandlerVersion": { - "type": "string", - "description": "Specifies the version of the script handler." - }, - "status": { - "type": "object", - "description": "Instance view status.", - "properties": { - "code": { - "type": "string", - "description": "The status code." - }, - "level": { - "type": "string", - "description": "The level code. Indicates the severity or importance of the status message.", - "enum": [ - "Info", - "Warning", - "Error" - ], - "x-ms-enum": { - "name": "StatusLevelTypes", - "modelAsString": true, - "values": [ - { - "name": "Info", - "value": "Info", - "description": "Informational message indicating normal operation." - }, - { - "name": "Warning", - "value": "Warning", - "description": "Warning message indicating a potential issue or non-critical problem." - }, - { - "name": "Error", - "value": "Error", - "description": "Error message indicating a failure or critical issue." - } - ] - } - }, - "displayStatus": { - "type": "string", - "description": "The short localizable label for the status." - }, - "message": { - "type": "string", - "description": "The detailed status message, including for alerts and error messages." - }, - "time": { - "type": "string", - "format": "date-time", - "description": "The time of the status." - } - } - } - } - }, - "ExtensionUpgradeParameters": { - "type": "object", - "description": "Describes the parameters for Extension upgrade.", - "properties": { - "targetVersion": { - "type": "string", - "description": "Extension Upgrade Target Version." - } - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "ArcSettingNameParameter": { - "name": "arcSettingName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the proxy resource holding details of HCI ArcSetting information.", - "x-ms-parameter-location": "method" - }, - "ExtensionNameParameter": { - "name": "extensionName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the machine extension.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/hci.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/hci.json index b055a3b55b41..e49c37aff26f 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/hci.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/hci.json @@ -53,26 +53,76 @@ }, { "name": "Operations" + }, + { + "name": "ArcSettings" + }, + { + "name": "Offers" + }, + { + "name": "Clusters" + }, + { + "name": "DeploymentSettings" + }, + { + "name": "EdgeDeviceJobs" + }, + { + "name": "EdgeDevices" + }, + { + "name": "Extensions" + }, + { + "name": "Publishers" + }, + { + "name": "SecuritySettings" + }, + { + "name": "Skus" + }, + { + "name": "UpdateRuns" + }, + { + "name": "Updates" + }, + { + "name": "UpdateSummariesOperationGroup" + }, + { + "name": "ValidatedSolutionRecipes" } ], "paths": { - "/providers/Microsoft.AzureStackHCI/operations": { + "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices": { "get": { - "operationId": "Operations_List", + "operationId": "EdgeDevices_List", "tags": [ - "Operations" + "EdgeDevices" ], - "description": "List the operations for the provider", + "description": "List EdgeDevice resources by parent", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/OperationListResult" + "$ref": "#/definitions/EdgeDeviceListResult" } }, "default": { @@ -83,8 +133,8 @@ } }, "x-ms-examples": { - "List the operations for the provider.": { - "$ref": "./examples/Operations_List.json" + "List Edge Devices": { + "$ref": "./examples/ListEdgeDevices.json" } }, "x-ms-pageable": { @@ -92,29 +142,40 @@ } } }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/kubernetesVersions": { + "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}": { "get": { - "operationId": "KubernetesVersions_ListBySubscriptionLocationResource", + "operationId": "EdgeDevices_Get", "tags": [ - "KubernetesVersions" + "EdgeDevices" ], - "description": "List all kubernetes versions.", + "description": "Get a EdgeDevice", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "edgeDeviceName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/KubernetesVersionListResult" + "$ref": "#/definitions/EdgeDevice" } }, "default": { @@ -125,38 +186,70 @@ } }, "x-ms-examples": { - "KubernetesVersions_ListBySubscriptionLocationResource_MaximumSet": { - "$ref": "./examples/KubernetesVersions_ListBySubscriptionLocationResource_MaximumSet_Gen.json" + "Get Edge Device": { + "$ref": "./examples/GetEdgeDevices.json" } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/osImages": { - "get": { - "operationId": "OsImages_ListBySubscriptionLocationResource", + }, + "put": { + "operationId": "EdgeDevices_CreateOrUpdate", "tags": [ - "OsImages" + "EdgeDevices" ], - "description": "List all os images.", + "description": "Create a EdgeDevice", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "edgeDeviceName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/EdgeDevice" + } } ], "responses": { "200": { - "description": "Azure operation completed successfully.", + "description": "Resource 'EdgeDevice' update operation succeeded", "schema": { - "$ref": "#/definitions/OsImageListResult" + "$ref": "#/definitions/EdgeDevice" + } + }, + "201": { + "description": "Resource 'EdgeDevice' create operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeDevice" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { @@ -167,48 +260,61 @@ } }, "x-ms-examples": { - "OsImages_ListBySubscriptionLocationResource_MaximumSet": { - "$ref": "./examples/OsImages_ListBySubscriptionLocationResource_MaximumSet_Gen.json" + "Create HCI Edge Device": { + "$ref": "./examples/CreateHciEdgeDevice.json" } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/osImages/{osImageName}": { - "get": { - "operationId": "OsImages_Get", + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "EdgeDevices_Delete", "tags": [ - "OsImages" + "EdgeDevices" ], - "description": "Get a os image.", + "description": "Delete a EdgeDevice", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "name": "osImageName", + "name": "edgeDeviceName", "in": "path", - "description": "The name of the OsImage", + "description": "Name of Device", "required": true, "type": "string", - "pattern": "^[a-zA-Z0-9-.]{3,50}$" + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/OsImage" + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, + "204": { + "description": "Resource does not exist." + }, "default": { "description": "An unexpected error response.", "schema": { @@ -217,35 +323,50 @@ } }, "x-ms-examples": { - "OsImages_Get_MaximumSet": { - "$ref": "./examples/OsImages_Get_MaximumSet_Gen.json" + "Delete Edge Devices": { + "$ref": "./examples/DeleteEdgeDevices.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/platformUpdates": { + "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}/jobs": { "get": { - "operationId": "PlatformUpdates_List", + "operationId": "EdgeDeviceJobs_ListByEdgeDevice", "tags": [ - "PlatformUpdates" + "EdgeDeviceJobs" ], - "description": "List all platform updates.", + "description": "List EdgeDeviceJob resources by EdgeDevice", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "edgeDeviceName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/PlatformUpdateListResult" + "$ref": "#/definitions/EdgeDeviceJobListResult" } }, "default": { @@ -256,8 +377,8 @@ } }, "x-ms-examples": { - "PlatformUpdates_ListByLocation_MaximumSet": { - "$ref": "./examples/PlatformUpdates_ListByLocation_MaximumSet_Gen.json" + "EdgeDeviceJobs_ListByEdgeDevice": { + "$ref": "./examples/EdgeDeviceJobs_ListByEdgeDevice.json" } }, "x-ms-pageable": { @@ -265,37 +386,48 @@ } } }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/platformUpdates/{platformUpdateName}": { + "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}/jobs/{jobsName}": { "get": { - "operationId": "PlatformUpdates_Get", + "operationId": "EdgeDeviceJobs_Get", "tags": [ - "PlatformUpdates" + "EdgeDeviceJobs" ], - "description": "Get a platform update.", + "description": "Get a EdgeDeviceJob", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "edgeDeviceName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { - "name": "platformUpdateName", + "name": "jobsName", "in": "path", - "description": "The name of the PlatformUpdate", + "description": "Name of EdgeDevice Job", "required": true, "type": "string", - "pattern": "^[a-zA-Z0-9-.]{3,50}$" + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/PlatformUpdate" + "$ref": "#/definitions/EdgeDeviceJob" } }, "default": { @@ -306,35 +438,78 @@ } }, "x-ms-examples": { - "PlatformUpdates_Get_MaximumSet": { - "$ref": "./examples/PlatformUpdates_Get_MaximumSet_Gen.json" + "EdgeDeviceJobs_Get_RemoteSupport": { + "$ref": "./examples/EdgeDeviceJobs_Get_RemoteSupport.json" } } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/updateContents": { - "get": { - "operationId": "UpdateContents_List", + }, + "put": { + "operationId": "EdgeDeviceJobs_CreateOrUpdate", "tags": [ - "UpdateContents" + "EdgeDeviceJobs" ], - "description": "List all update contents.", + "description": "Create a EdgeDeviceJob", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "edgeDeviceName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "jobsName", + "in": "path", + "description": "Name of EdgeDevice Job", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/EdgeDeviceJob" + } } ], "responses": { "200": { - "description": "Azure operation completed successfully.", + "description": "Resource 'EdgeDeviceJob' update operation succeeded", "schema": { - "$ref": "#/definitions/UpdateContentListResult" + "$ref": "#/definitions/EdgeDeviceJob" + } + }, + "201": { + "description": "Resource 'EdgeDeviceJob' create operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeDeviceJob" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { @@ -345,48 +520,72 @@ } }, "x-ms-examples": { - "UpdateContents_ListByLocation_MaximumSet": { - "$ref": "./examples/UpdateContents_ListByLocation_MaximumSet_Gen.json" + "EdgeDeviceJobs_CreateOrUpdate_CollectLog": { + "$ref": "./examples/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json" + }, + "EdgeDeviceJobs_CreateOrUpdate_RemoteSupport": { + "$ref": "./examples/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json" } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/updateContents/{updateContentName}": { - "get": { - "operationId": "UpdateContents_Get", + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "EdgeDeviceJobs_Delete", "tags": [ - "UpdateContents" + "EdgeDeviceJobs" ], - "description": "Gets content for an update.", + "description": "Delete a EdgeDeviceJob", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "edgeDeviceName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { - "name": "updateContentName", + "name": "jobsName", "in": "path", - "description": "The name of the UpdateContent", + "description": "Name of EdgeDevice Job", "required": true, "type": "string", - "pattern": "^[a-zA-Z0-9-.]{3,50}$" + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/UpdateContent" + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, + "204": { + "description": "Resource does not exist." + }, "default": { "description": "An unexpected error response.", "schema": { @@ -395,54 +594,10611 @@ } }, "x-ms-examples": { - "UpdateContents_Get_MaximumSet": { - "$ref": "./examples/UpdateContents_Get_MaximumSet_Gen.json" + "EdgeDeviceJobs_Delete": { + "$ref": "./examples/EdgeDeviceJobs_Delete.json" } - } - } - } - }, - "definitions": { - "ContentPayload": { - "type": "object", - "description": "Represents details of a specific update content payload.", - "properties": { - "url": { - "type": "string", - "description": "Represents url of a update payload." - }, - "hash": { - "type": "string", - "description": "Represents hash of a update payload." - }, - "hashAlgorithm": { - "type": "string", - "description": "Represents hash algorithm of a update payload." - }, - "identifier": { - "type": "string", - "description": "Represents identifier of a update payload." - }, - "packageSizeInBytes": { - "type": "string", - "description": "Represents size in bytes of a update payload." }, - "group": { - "type": "string", - "description": "Represents the group of a update payload." + "x-ms-long-running-operation-options": { + "final-state-via": "location" }, - "fileName": { - "type": "string", - "description": "Represents the file name of a update payload." - } + "x-ms-long-running-operation": true } }, - "KubernetesVersion": { - "type": "object", - "description": "Represents a kubernetes version resource.", - "properties": { - "properties": { - "$ref": "#/definitions/KubernetesVersionProperties", + "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}/validate": { + "post": { + "operationId": "EdgeDevices_Validate", + "tags": [ + "EdgeDevices" + ], + "description": "A long-running resource action.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "edgeDeviceName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "ValidateRequest", + "in": "body", + "description": "The content of the action request", + "required": true, + "schema": { + "$ref": "#/definitions/ValidateRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ValidateResponse" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Validate Edge Devices": { + "$ref": "./examples/ValidateEdgeDevices.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/providers/Microsoft.AzureStackHCI/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List the operations for the provider.": { + "$ref": "./examples/Operations_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/clusters": { + "get": { + "operationId": "Clusters_ListBySubscription", + "tags": [ + "Clusters" + ], + "description": "List all HCI clusters in a subscription.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ClusterList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List clusters in a given subscription": { + "$ref": "./examples/ListClustersBySubscription.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/kubernetesVersions": { + "get": { + "operationId": "KubernetesVersions_ListBySubscriptionLocationResource", + "tags": [ + "KubernetesVersions" + ], + "description": "List all kubernetes versions.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/KubernetesVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "KubernetesVersions_ListBySubscriptionLocationResource_MaximumSet": { + "$ref": "./examples/KubernetesVersions_ListBySubscriptionLocationResource_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/osImages": { + "get": { + "operationId": "OsImages_ListBySubscriptionLocationResource", + "tags": [ + "OsImages" + ], + "description": "List all os images.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OsImageListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "OsImages_ListBySubscriptionLocationResource_MaximumSet": { + "$ref": "./examples/OsImages_ListBySubscriptionLocationResource_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/osImages/{osImageName}": { + "get": { + "operationId": "OsImages_Get", + "tags": [ + "OsImages" + ], + "description": "Get a os image.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + }, + { + "name": "osImageName", + "in": "path", + "description": "The name of the OsImage", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-.]{3,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OsImage" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "OsImages_Get_MaximumSet": { + "$ref": "./examples/OsImages_Get_MaximumSet_Gen.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/platformUpdates": { + "get": { + "operationId": "PlatformUpdates_List", + "tags": [ + "PlatformUpdates" + ], + "description": "List all platform updates.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PlatformUpdateListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "PlatformUpdates_ListByLocation_MaximumSet": { + "$ref": "./examples/PlatformUpdates_ListByLocation_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/platformUpdates/{platformUpdateName}": { + "get": { + "operationId": "PlatformUpdates_Get", + "tags": [ + "PlatformUpdates" + ], + "description": "Get a platform update.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + }, + { + "name": "platformUpdateName", + "in": "path", + "description": "The name of the PlatformUpdate", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-.]{3,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PlatformUpdate" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "PlatformUpdates_Get_MaximumSet": { + "$ref": "./examples/PlatformUpdates_Get_MaximumSet_Gen.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/updateContents": { + "get": { + "operationId": "UpdateContents_List", + "tags": [ + "UpdateContents" + ], + "description": "List all update contents.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UpdateContentListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "UpdateContents_ListByLocation_MaximumSet": { + "$ref": "./examples/UpdateContents_ListByLocation_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/updateContents/{updateContentName}": { + "get": { + "operationId": "UpdateContents_Get", + "tags": [ + "UpdateContents" + ], + "description": "Gets content for an update.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + }, + { + "name": "updateContentName", + "in": "path", + "description": "The name of the UpdateContent", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-.]{3,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UpdateContent" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "UpdateContents_Get_MaximumSet": { + "$ref": "./examples/UpdateContents_Get_MaximumSet_Gen.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/validatedSolutionRecipes": { + "get": { + "operationId": "ValidatedSolutionRecipes_ListBySubscriptionLocationResource", + "tags": [ + "ValidatedSolutionRecipes" + ], + "description": "List all validated solution recipes.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ValidatedSolutionRecipeListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ValidatedSolutionRecipes_ListBySubscriptionLocationResource": { + "$ref": "./examples/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/validatedSolutionRecipes/{validatedSolutionRecipeName}": { + "get": { + "operationId": "ValidatedSolutionRecipes_Get", + "tags": [ + "ValidatedSolutionRecipes" + ], + "description": "Get a validated solution recipe.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + }, + { + "name": "validatedSolutionRecipeName", + "in": "path", + "description": "The name of the ValidatedSolutionRecipe", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-.]{3,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ValidatedSolutionRecipe" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ValidatedSolutionRecipes_Get": { + "$ref": "./examples/ValidatedSolutionRecipes_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters": { + "get": { + "operationId": "Clusters_ListByResourceGroup", + "tags": [ + "Clusters" + ], + "description": "List all HCI clusters in a resource group.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ClusterList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List clusters in a given resource group": { + "$ref": "./examples/ListClustersByResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}": { + "get": { + "operationId": "Clusters_Get", + "tags": [ + "Clusters" + ], + "description": "Get HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get cluster": { + "$ref": "./examples/GetCluster.json" + } + } + }, + "put": { + "operationId": "Clusters_Create", + "tags": [ + "Clusters" + ], + "description": "Create an HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "cluster", + "in": "body", + "description": "Details of the HCI cluster.", + "required": true, + "schema": { + "$ref": "#/definitions/Cluster" + } + } + ], + "responses": { + "200": { + "description": "Resource 'Cluster' update operation succeeded", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create cluster": { + "$ref": "./examples/CreateCluster.json" + } + } + }, + "patch": { + "operationId": "Clusters_Update", + "tags": [ + "Clusters" + ], + "description": "Update an HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "cluster", + "in": "body", + "description": "Details of the HCI cluster.", + "required": true, + "schema": { + "$ref": "#/definitions/ClusterPatch" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update cluster": { + "$ref": "./examples/UpdateCluster.json" + } + } + }, + "delete": { + "operationId": "Clusters_Delete", + "tags": [ + "Clusters" + ], + "description": "Delete an HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete cluster": { + "$ref": "./examples/DeleteCluster.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings": { + "get": { + "operationId": "ArcSettings_ListByCluster", + "tags": [ + "ArcSettings" + ], + "description": "Get ArcSetting resources of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ArcSettingList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List ArcSetting resources by HCI Cluster": { + "$ref": "./examples/ListArcSettingsByCluster.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}": { + "get": { + "operationId": "ArcSettings_Get", + "tags": [ + "ArcSettings" + ], + "description": "Get ArcSetting resource details of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ArcSetting" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get ArcSetting": { + "$ref": "./examples/GetArcSetting.json" + } + } + }, + "put": { + "operationId": "ArcSettings_Create", + "tags": [ + "ArcSettings" + ], + "description": "Create ArcSetting for HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "arcSetting", + "in": "body", + "description": "Parameters supplied to the Create ArcSetting resource for this HCI cluster.", + "required": true, + "schema": { + "$ref": "#/definitions/ArcSetting" + } + } + ], + "responses": { + "200": { + "description": "Resource 'ArcSetting' update operation succeeded", + "schema": { + "$ref": "#/definitions/ArcSetting" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create ArcSetting": { + "$ref": "./examples/PutArcSetting.json" + } + } + }, + "patch": { + "operationId": "ArcSettings_Update", + "tags": [ + "ArcSettings" + ], + "description": "Update ArcSettings for HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "arcSetting", + "in": "body", + "description": "ArcSettings parameters that needs to be updated", + "required": true, + "schema": { + "$ref": "#/definitions/ArcSettingsPatch" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ArcSetting" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Patch ArcSetting": { + "$ref": "./examples/PatchArcSetting.json" + } + } + }, + "delete": { + "operationId": "ArcSettings_Delete", + "tags": [ + "ArcSettings" + ], + "description": "Delete ArcSetting resource details of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete ArcSetting": { + "$ref": "./examples/DeleteArcSetting.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/consentAndInstallDefaultExtensions": { + "post": { + "operationId": "ArcSettings_ConsentAndInstallDefaultExtensions", + "tags": [ + "ArcSettings" + ], + "description": "Add consent time for default extensions and initiate extensions installation", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ArcSetting" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Consent And Install Default Extensions": { + "$ref": "./examples/ConsentAndInstallDefaultExtensions.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/createArcIdentity": { + "post": { + "operationId": "ArcSettings_CreateIdentity", + "tags": [ + "ArcSettings" + ], + "description": "Create Aad identity for arc settings.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ArcIdentityResponse" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create Arc Identity": { + "$ref": "./examples/CreateArcIdentity.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions": { + "get": { + "operationId": "Extensions_ListByArcSetting", + "tags": [ + "Extensions" + ], + "description": "List all Extensions under ArcSetting resource.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ExtensionList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Extensions under ArcSetting resource": { + "$ref": "./examples/ListExtensionsByArcSetting.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions/{extensionName}": { + "get": { + "operationId": "Extensions_Get", + "tags": [ + "Extensions" + ], + "description": "Get particular Arc Extension of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "extensionName", + "in": "path", + "description": "The name of the machine extension.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Extension" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get ArcSettings Extension": { + "$ref": "./examples/GetExtension.json" + } + } + }, + "put": { + "operationId": "Extensions_Create", + "tags": [ + "Extensions" + ], + "description": "Create Extension for HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "extensionName", + "in": "path", + "description": "The name of the machine extension.", + "required": true, + "type": "string" + }, + { + "name": "extension", + "in": "body", + "description": "Details of the Machine Extension to be created.", + "required": true, + "schema": { + "$ref": "#/definitions/Extension" + } + } + ], + "responses": { + "200": { + "description": "Resource 'Extension' update operation succeeded", + "schema": { + "$ref": "#/definitions/Extension" + } + }, + "201": { + "description": "Resource 'Extension' create operation succeeded", + "schema": { + "$ref": "#/definitions/Extension" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create Arc Extension": { + "$ref": "./examples/PutExtension.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Extensions_Update", + "tags": [ + "Extensions" + ], + "description": "Update Extension for HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "extensionName", + "in": "path", + "description": "The name of the machine extension.", + "required": true, + "type": "string" + }, + { + "name": "extension", + "in": "body", + "description": "Details of the Machine Extension to be created.", + "required": true, + "schema": { + "$ref": "#/definitions/ExtensionPatch" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Extension" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update Arc Extension": { + "$ref": "./examples/PatchExtension.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "original-uri" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "Extensions_Delete", + "tags": [ + "Extensions" + ], + "description": "Delete particular Arc Extension of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "extensionName", + "in": "path", + "description": "The name of the machine extension.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete Arc Extension": { + "$ref": "./examples/DeleteExtension.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions/{extensionName}/upgrade": { + "post": { + "operationId": "Extensions_Upgrade", + "tags": [ + "Extensions" + ], + "description": "Upgrade a particular Arc Extension of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "extensionName", + "in": "path", + "description": "The name of the machine extension.", + "required": true, + "type": "string" + }, + { + "name": "extensionUpgradeParameters", + "in": "body", + "description": "Parameters supplied to the Upgrade Extensions operation.", + "required": true, + "schema": { + "$ref": "#/definitions/ExtensionUpgradeParameters" + } + } + ], + "responses": { + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Upgrade Machine Extensions": { + "$ref": "./examples/Extensions_Upgrade.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/generatePassword": { + "post": { + "operationId": "ArcSettings_GeneratePassword", + "tags": [ + "ArcSettings" + ], + "description": "Generate password for arc settings.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PasswordCredential" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Generate Password": { + "$ref": "./examples/GeneratePassword.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/initializeDisableProcess": { + "post": { + "operationId": "ArcSettings_InitializeDisableProcess", + "tags": [ + "ArcSettings" + ], + "description": "Initializes ARC Disable process on the cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded." + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Trigger ARC Disable": { + "$ref": "./examples/InitializeDisableProcess.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/reconcile": { + "post": { + "operationId": "ArcSettings_Reconcile", + "tags": [ + "ArcSettings" + ], + "description": "Reconcile Arc Settings with information related to all nodes.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "reconcileArcSettingsRequest", + "in": "body", + "description": "Request for reconciling Arc Settings.", + "required": true, + "schema": { + "$ref": "#/definitions/ReconcileArcSettingsRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ArcSetting" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Reconcile Arc Settings": { + "$ref": "./examples/reconcileArcSettings.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/changeRing": { + "post": { + "operationId": "Clusters_ChangeRing", + "tags": [ + "Clusters" + ], + "description": "Changes ring of a cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "changeRingRequest", + "in": "body", + "description": "Change ring request payload", + "required": true, + "schema": { + "$ref": "#/definitions/ChangeRingRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Change cluster ring": { + "$ref": "./examples/ChangeClusterRing.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/configureRemoteSupport": { + "post": { + "operationId": "Clusters_ConfigureRemoteSupport", + "tags": [ + "Clusters" + ], + "description": "Configure RemoteSupport on a cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "remoteSupportRequest", + "in": "body", + "description": "Configure Remote Support Request Payload", + "required": true, + "schema": { + "$ref": "#/definitions/RemoteSupportRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Configure Remote Support": { + "$ref": "./examples/ConfigureRemoteSupport.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/createClusterIdentity": { + "post": { + "operationId": "Clusters_CreateIdentity", + "tags": [ + "Clusters" + ], + "description": "Create cluster identity.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ClusterIdentityResponse" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create cluster Identity": { + "$ref": "./examples/CreateClusterIdentity.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/deploymentSettings": { + "get": { + "operationId": "DeploymentSettings_ListByClusters", + "tags": [ + "DeploymentSettings" + ], + "description": "List DeploymentSetting resources by Clusters", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/DeploymentSettingListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Deployment Settings": { + "$ref": "./examples/ListDeploymentSettingsByCluster.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/deploymentSettings/{deploymentSettingsName}": { + "get": { + "operationId": "DeploymentSettings_Get", + "tags": [ + "DeploymentSettings" + ], + "description": "Get a DeploymentSetting", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "deploymentSettingsName", + "in": "path", + "description": "Name of Deployment Setting", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/DeploymentSetting" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Deployment Settings": { + "$ref": "./examples/GetDeploymentSettings.json" + } + } + }, + "put": { + "operationId": "DeploymentSettings_CreateOrUpdate", + "tags": [ + "DeploymentSettings" + ], + "description": "Create a DeploymentSetting", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "deploymentSettingsName", + "in": "path", + "description": "Name of Deployment Setting", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/DeploymentSetting" + } + } + ], + "responses": { + "200": { + "description": "Resource 'DeploymentSetting' update operation succeeded", + "schema": { + "$ref": "#/definitions/DeploymentSetting" + } + }, + "201": { + "description": "Resource 'DeploymentSetting' create operation succeeded", + "schema": { + "$ref": "#/definitions/DeploymentSetting" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create Deployment Settings": { + "$ref": "./examples/PutDeploymentSettings.json" + }, + "Create Deployment Settings Without Active Directory Integration": { + "$ref": "./examples/PutDeploymentSettingsWithADLess.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "DeploymentSettings_Delete", + "tags": [ + "DeploymentSettings" + ], + "description": "Delete a DeploymentSetting", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "deploymentSettingsName", + "in": "path", + "description": "Name of Deployment Setting", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete Deployment Settings": { + "$ref": "./examples/DeleteDeploymentSettings.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/extendSoftwareAssuranceBenefit": { + "post": { + "operationId": "Clusters_ExtendSoftwareAssuranceBenefit", + "tags": [ + "Clusters" + ], + "description": "Extends Software Assurance Benefit to a cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "softwareAssuranceChangeRequest", + "in": "body", + "description": "Software Assurance Change Request Payload", + "required": true, + "schema": { + "$ref": "#/definitions/SoftwareAssuranceChangeRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create cluster Identity": { + "$ref": "./examples/ExtendSoftwareAssuranceBenefit.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/offers": { + "get": { + "operationId": "Offers_ListByCluster", + "tags": [ + "Clusters" + ], + "description": "List Offers available across publishers for the HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OfferList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Offer resources by HCI Cluster": { + "$ref": "./examples/ListOffersByCluster.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers": { + "get": { + "operationId": "Publishers_ListByCluster", + "tags": [ + "Publishers" + ], + "description": "List Publishers available for the HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PublisherList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Publisher resources by HCI Cluster": { + "$ref": "./examples/ListPublishersByCluster.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}": { + "get": { + "operationId": "Publishers_Get", + "tags": [ + "Publishers" + ], + "description": "Get Publisher resource details of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "description": "The name of the publisher available within HCI cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Publisher" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Publisher": { + "$ref": "./examples/GetPublisher.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers": { + "get": { + "operationId": "Offers_ListByPublisher", + "tags": [ + "Offers" + ], + "description": "List Offers available for a publisher within the HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "description": "The name of the publisher available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OfferList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Offer resources by publisher for the HCI Cluster": { + "$ref": "./examples/ListOffersByPublisher.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}": { + "get": { + "operationId": "Offers_Get", + "tags": [ + "Offers" + ], + "description": "Get Offer resource details within a publisher of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "description": "The name of the publisher available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "offerName", + "in": "path", + "description": "The name of the offer available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Offer" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Offer": { + "$ref": "./examples/GetOffer.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}/skus": { + "get": { + "operationId": "Skus_ListByOffer", + "tags": [ + "Skus" + ], + "description": "List Skus available for a offer within the HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "description": "The name of the publisher available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "offerName", + "in": "path", + "description": "The name of the offer available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SkuList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List SKU resources by offer for the HCI Cluster": { + "$ref": "./examples/ListSkusByOffer.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}/skus/{skuName}": { + "get": { + "operationId": "Skus_Get", + "tags": [ + "Skus" + ], + "description": "Get SKU resource details within a offer of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "description": "The name of the publisher available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "offerName", + "in": "path", + "description": "The name of the offer available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "skuName", + "in": "path", + "description": "The name of the SKU available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Sku" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Sku": { + "$ref": "./examples/GetSku.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/securitySettings": { + "get": { + "operationId": "SecuritySettings_ListByClusters", + "tags": [ + "SecuritySettings" + ], + "description": "List SecuritySetting resources by Clusters", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SecuritySettingListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Security Settings": { + "$ref": "./examples/ListSecuritySettingsByCluster.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/securitySettings/{securitySettingsName}": { + "get": { + "operationId": "SecuritySettings_Get", + "tags": [ + "SecuritySettings" + ], + "description": "Get a SecuritySetting", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "securitySettingsName", + "in": "path", + "description": "Name of security setting", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SecuritySetting" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Security Settings": { + "$ref": "./examples/GetSecuritySettings.json" + } + } + }, + "put": { + "operationId": "SecuritySettings_CreateOrUpdate", + "tags": [ + "SecuritySettings" + ], + "description": "Create a security setting", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "securitySettingsName", + "in": "path", + "description": "Name of security setting", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/SecuritySetting" + } + } + ], + "responses": { + "200": { + "description": "Resource 'SecuritySetting' update operation succeeded", + "schema": { + "$ref": "#/definitions/SecuritySetting" + } + }, + "201": { + "description": "Resource 'SecuritySetting' create operation succeeded", + "schema": { + "$ref": "#/definitions/SecuritySetting" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create Security Settings": { + "$ref": "./examples/PutSecuritySettings.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "SecuritySettings_Delete", + "tags": [ + "SecuritySettings" + ], + "description": "Delete a SecuritySetting", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "securitySettingsName", + "in": "path", + "description": "Name of security setting", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete Security Settings": { + "$ref": "./examples/DeleteSecuritySettings.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/triggerLogCollection": { + "post": { + "operationId": "Clusters_TriggerLogCollection", + "tags": [ + "Clusters" + ], + "description": "Trigger Log Collection on a cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "logCollectionRequest", + "in": "body", + "description": "Trigger Log Collection Request Payload", + "required": true, + "schema": { + "$ref": "#/definitions/LogCollectionRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Trigger Log Collection": { + "$ref": "./examples/TriggerLogCollection.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSecretsLocations": { + "post": { + "operationId": "Clusters_UpdateSecretsLocations", + "tags": [ + "Clusters" + ], + "description": "Update cluster secrets locations.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The content of the action request", + "required": true, + "schema": { + "$ref": "#/definitions/SecretsLocationsChangeRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update secrets locations for a Cluster": { + "$ref": "./examples/Clusters_UpdateSecretsLocations.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSummaries": { + "get": { + "operationId": "UpdateSummaries_List", + "tags": [ + "UpdateSummariesOperationGroup" + ], + "description": "List all Update summaries under the HCI cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UpdateSummariesList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Update summaries under cluster resource": { + "$ref": "./examples/ListUpdateSummaries.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSummaries/default": { + "get": { + "operationId": "UpdateSummaries_Get", + "tags": [ + "UpdateSummariesOperationGroup" + ], + "description": "Get all Update summaries under the HCI cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UpdateSummaries" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Update summaries under cluster resource": { + "$ref": "./examples/GetUpdateSummaries.json" + } + } + }, + "put": { + "operationId": "UpdateSummaries_Put", + "tags": [ + "UpdateSummariesOperationGroup" + ], + "description": "Put Update summaries under the HCI cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateLocationProperties", + "in": "body", + "description": "Properties of the UpdateSummaries resource", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateSummaries" + } + } + ], + "responses": { + "200": { + "description": "Resource 'UpdateSummaries' update operation succeeded", + "schema": { + "$ref": "#/definitions/UpdateSummaries" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Put Update summaries under cluster resource": { + "$ref": "./examples/PutUpdateSummaries.json" + } + } + }, + "delete": { + "operationId": "UpdateSummaries_Delete", + "tags": [ + "UpdateSummariesOperationGroup" + ], + "description": "Delete Update Summaries", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete an Update": { + "$ref": "./examples/DeleteUpdateSummaries.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates": { + "get": { + "operationId": "Updates_List", + "tags": [ + "Updates" + ], + "description": "List all Updates", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UpdateList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List available updates": { + "$ref": "./examples/ListUpdates.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}": { + "get": { + "operationId": "Updates_Get", + "tags": [ + "Updates" + ], + "description": "Get specified Update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Update" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a specific update": { + "$ref": "./examples/GetUpdates.json" + } + } + }, + "put": { + "operationId": "Updates_Put", + "tags": [ + "Updates" + ], + "description": "Put specified Update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + }, + { + "name": "updateProperties", + "in": "body", + "description": "Properties of the Updates object", + "required": true, + "schema": { + "$ref": "#/definitions/Update" + } + } + ], + "responses": { + "200": { + "description": "Resource 'Update' update operation succeeded", + "schema": { + "$ref": "#/definitions/Update" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Put a specific update": { + "$ref": "./examples/PutUpdates.json" + } + } + }, + "delete": { + "operationId": "Updates_Delete", + "tags": [ + "Updates" + ], + "description": "Delete specified Update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete an Update": { + "$ref": "./examples/DeleteUpdates.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/apply": { + "post": { + "operationId": "Updates_Post", + "tags": [ + "Updates" + ], + "description": "Apply Update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded." + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List available updates": { + "$ref": "./examples/PostUpdates.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns": { + "get": { + "operationId": "UpdateRuns_List", + "tags": [ + "UpdateRuns" + ], + "description": "List all Update runs for a specified update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UpdateRunList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Update runs under cluster resource": { + "$ref": "./examples/ListUpdateRuns.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns/{updateRunName}": { + "get": { + "operationId": "UpdateRuns_Get", + "tags": [ + "UpdateRuns" + ], + "description": "Get the Update run for a specified update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + }, + { + "name": "updateRunName", + "in": "path", + "description": "The name of the Update Run", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UpdateRun" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Update runs under cluster resource": { + "$ref": "./examples/GetUpdateRuns.json" + } + } + }, + "put": { + "operationId": "UpdateRuns_Put", + "tags": [ + "UpdateRuns" + ], + "description": "Put Update runs for a specified update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + }, + { + "name": "updateRunName", + "in": "path", + "description": "The name of the Update Run", + "required": true, + "type": "string" + }, + { + "name": "updateRunsProperties", + "in": "body", + "description": "Properties of the updateRuns object", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateRun" + } + } + ], + "responses": { + "200": { + "description": "Resource 'UpdateRun' update operation succeeded", + "schema": { + "$ref": "#/definitions/UpdateRun" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Update runs under cluster resource": { + "$ref": "./examples/PutUpdateRuns.json" + } + } + }, + "delete": { + "operationId": "UpdateRuns_Delete", + "tags": [ + "UpdateRuns" + ], + "description": "Delete specified Update Run", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + }, + { + "name": "updateRunName", + "in": "path", + "description": "The name of the Update Run", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete an Update": { + "$ref": "./examples/DeleteUpdateRuns.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/uploadCertificate": { + "post": { + "operationId": "Clusters_UploadCertificate", + "tags": [ + "Clusters" + ], + "description": "Upload certificate.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "uploadCertificateRequest", + "in": "body", + "description": "Upload certificate request.", + "required": true, + "schema": { + "$ref": "#/definitions/UploadCertificateRequest" + } + } + ], + "responses": { + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Upload certificate": { + "$ref": "./examples/UploadCertificate.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "AccessLevel": { + "type": "string", + "description": "Remote Support Access Level", + "enum": [ + "Diagnostics", + "DiagnosticsAndRepair" + ], + "x-ms-enum": { + "name": "AccessLevel", + "modelAsString": true, + "values": [ + { + "name": "Diagnostics", + "value": "Diagnostics", + "description": "Allows remote diagnostics operations only." + }, + { + "name": "DiagnosticsAndRepair", + "value": "DiagnosticsAndRepair", + "description": "Allows both remote diagnostics and repair operations." + } + ] + } + }, + "ArcConnectivityProperties": { + "type": "object", + "description": "Connectivity related configuration required by arc server.", + "properties": { + "enabled": { + "type": "boolean", + "description": "True indicates ARC connectivity is enabled" + }, + "serviceConfigurations": { + "type": "array", + "description": "Service configurations associated with the connectivity resource. They are only processed by the server if 'enabled' property is set to 'true'.", + "items": { + "$ref": "#/definitions/ServiceConfiguration" + }, + "x-ms-identifiers": [ + "serviceName" + ] + } + } + }, + "ArcExtensionState": { + "type": "string", + "description": "Arc extension installation state.", + "enum": [ + "NotSpecified", + "Succeeded", + "Failed", + "Canceled", + "Accepted", + "Creating", + "Updating", + "Moving", + "Deleting", + "Deleted" + ], + "x-ms-enum": { + "name": "ArcExtensionState", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "Arc extension state is not specified." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Arc extension state is Succeeded." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Arc extension state is Failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Arc extension state is Canceled." + }, + { + "name": "Accepted", + "value": "Accepted", + "description": "Arc extension state is Accepted when extension installation triggered." + }, + { + "name": "Creating", + "value": "Creating", + "description": "Arc extension is in Creating State." + }, + { + "name": "Updating", + "value": "Updating", + "description": "Arc extension is in Updating State." + }, + { + "name": "Moving", + "value": "Moving", + "description": "Arc extension is in Moving State." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "Arc extension is in Deleting State." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "Arc extension is in Deleted State." + } + ] + }, + "readOnly": true + }, + "ArcIdentityResponse": { + "type": "object", + "description": "ArcIdentity details.", + "properties": { + "properties": { + "$ref": "#/definitions/ArcIdentityResponseProperties", + "description": "ArcIdentity properties.", + "readOnly": true, + "x-ms-client-flatten": true + } + } + }, + "ArcIdentityResponseProperties": { + "type": "object", + "properties": { + "arcApplicationClientId": { + "type": "string" + }, + "arcApplicationTenantId": { + "type": "string" + }, + "arcServicePrincipalObjectId": { + "type": "string" + }, + "arcApplicationObjectId": { + "type": "string" + } + } + }, + "ArcSetting": { + "type": "object", + "description": "ArcSetting details.", + "properties": { + "properties": { + "$ref": "#/definitions/ArcSettingProperties", + "description": "ArcSetting properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "ArcSettingAggregateState": { + "type": "string", + "description": "Aggregate state of Arc agent across the nodes in this HCI cluster.", + "enum": [ + "NotSpecified", + "Error", + "Succeeded", + "Canceled", + "Failed", + "Connected", + "Disconnected", + "Deleted", + "Creating", + "Updating", + "Deleting", + "Moving", + "PartiallySucceeded", + "PartiallyConnected", + "InProgress", + "Accepted", + "Provisioning", + "DisableInProgress" + ], + "x-ms-enum": { + "name": "ArcSettingAggregateState", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The aggregate state is not specified." + }, + { + "name": "Error", + "value": "Error", + "description": "An error occurred in the aggregate state." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The operation successfully completed across all nodes." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "The operation was canceled across the nodes." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The operation failed on all or most nodes." + }, + { + "name": "Connected", + "value": "Connected", + "description": "All nodes are connected." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "All nodes are disconnected." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "The Arc agent has been deleted from all nodes." + }, + { + "name": "Creating", + "value": "Creating", + "description": "The Arc agent is being created across the nodes." + }, + { + "name": "Updating", + "value": "Updating", + "description": "The Arc agent is being updated across the nodes." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The Arc agent is being deleted across the nodes." + }, + { + "name": "Moving", + "value": "Moving", + "description": "The Arc agent is being moved across the nodes." + }, + { + "name": "PartiallySucceeded", + "value": "PartiallySucceeded", + "description": "The operation succeeded on some nodes." + }, + { + "name": "PartiallyConnected", + "value": "PartiallyConnected", + "description": "Some nodes are connected, others are not." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "The operation is currently in progress across the nodes." + }, + { + "name": "Accepted", + "value": "Accepted", + "description": "The operation has been accepted and is pending execution." + }, + { + "name": "Provisioning", + "value": "Provisioning", + "description": "The Arc agent is being provisioned across the nodes." + }, + { + "name": "DisableInProgress", + "value": "DisableInProgress", + "description": "The Arc agent is being disabled across the nodes." + } + ] + }, + "readOnly": true + }, + "ArcSettingList": { + "type": "object", + "description": "List of ArcSetting proxy resources for the HCI cluster.", + "properties": { + "value": { + "type": "array", + "description": "The ArcSetting items on this page", + "items": { + "$ref": "#/definitions/ArcSetting" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ArcSettingProperties": { + "type": "object", + "description": "ArcSetting properties.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of the ArcSetting proxy resource.", + "readOnly": true + }, + "arcInstanceResourceGroup": { + "type": "string", + "description": "The resource group that hosts the Arc agents, ie. Hybrid Compute Machine resources." + }, + "arcApplicationClientId": { + "type": "string", + "description": "App id of arc AAD identity." + }, + "arcApplicationTenantId": { + "type": "string", + "description": "Tenant id of arc AAD identity." + }, + "arcServicePrincipalObjectId": { + "type": "string", + "description": "Object id of arc AAD service principal." + }, + "arcApplicationObjectId": { + "type": "string", + "description": "Object id of arc AAD identity." + }, + "aggregateState": { + "$ref": "#/definitions/ArcSettingAggregateState", + "description": "Aggregate state of Arc agent across the nodes in this HCI cluster.", + "readOnly": true + }, + "perNodeDetails": { + "type": "array", + "description": "State of Arc agent in each of the nodes.", + "items": { + "$ref": "#/definitions/PerNodeState" + }, + "readOnly": true + }, + "connectivityProperties": { + "$ref": "#/definitions/ArcConnectivityProperties", + "description": "contains connectivity related configuration for ARC resources" + }, + "defaultExtensions": { + "type": "array", + "description": "Properties for each of the default extensions category", + "items": { + "$ref": "#/definitions/DefaultExtensionDetails" + }, + "readOnly": true, + "x-ms-identifiers": [ + "category" + ] + } + } + }, + "ArcSettingsPatch": { + "type": "object", + "description": "ArcSetting details to update.", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "$ref": "#/definitions/ArcSettingsPatchProperties", + "description": "ArcSettings properties.", + "x-ms-client-flatten": true + } + } + }, + "ArcSettingsPatchProperties": { + "type": "object", + "description": "ArcSettings properties.", + "properties": { + "connectivityProperties": { + "$ref": "#/definitions/ArcConnectivityProperties", + "description": "contains connectivity related configuration for ARC resources" + } + } + }, + "AssemblyInfo": { + "type": "object", + "description": "Assembly Package details for Validated Solution Recipe for AzureStackHCI Cluster", + "properties": { + "packageVersion": { + "type": "string", + "description": "Assembly Package version for Validated Solution Recipe for AzureStackHCI Cluster", + "readOnly": true + }, + "payload": { + "type": "array", + "description": "Payload properties for Validated Solution Recipe for AzureStackHCI Cluster", + "items": { + "$ref": "#/definitions/AssemblyInfoPayload" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "AssemblyInfoPayload": { + "type": "object", + "description": "Payload properties for Validated Solution Recipe for AzureStackHCI Cluster", + "properties": { + "identifier": { + "type": "string", + "description": "assembly identifier for Validated Solution Recipe for AzureStackHCI Cluster", + "readOnly": true + }, + "hash": { + "type": "string", + "description": "Hash of assembly package for Validated Solution Recipe for AzureStackHCI Cluster", + "readOnly": true + }, + "fileName": { + "type": "string", + "description": "File name of assembly package for Validated Solution Recipe for AzureStackHCI Cluster", + "readOnly": true + }, + "url": { + "type": "string", + "description": "Url of assembly package for Validated Solution Recipe for AzureStackHCI Cluster", + "readOnly": true + } + } + }, + "AvailabilityType": { + "type": "string", + "description": "Indicates how the update content is made available for download. This determines whether the update is sourced locally, from an online repository, or requires user notification.", + "enum": [ + "Local", + "Online", + "Notify" + ], + "x-ms-enum": { + "name": "AvailabilityType", + "modelAsString": true, + "values": [ + { + "name": "Local", + "value": "Local", + "description": "The update content is available locally within the environment." + }, + { + "name": "Online", + "value": "Online", + "description": "The update content is available from an online source." + }, + { + "name": "Notify", + "value": "Notify", + "description": "The system will notify the user when update content becomes available." + } + ] + } + }, + "ChangeRingRequest": { + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/ChangeRingRequestProperties" + } + } + }, + "ChangeRingRequestProperties": { + "type": "object", + "properties": { + "targetRing": { + "type": "string", + "description": "The target ring for the cluster." + } + } + }, + "Cluster": { + "type": "object", + "description": "Cluster details.", + "properties": { + "properties": { + "$ref": "#/definitions/ClusterProperties", + "description": "Cluster properties.", + "x-ms-client-flatten": true + }, + "identity": { + "$ref": "../../../../../../common-types/resource-management/v6/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The managed service identities assigned to this resource.", + "x-ms-client-flatten": true + }, + "kind": { + "type": "string", + "description": "This property identifies the purpose of the Cluster deployment. For example, a valid value is AzureLocal", + "pattern": "^[-\\w\\._,\\(\\\\\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/TrackedResource" + } + ] + }, + "ClusterDesiredProperties": { + "type": "object", + "description": "Desired properties of the cluster.", + "properties": { + "windowsServerSubscription": { + "$ref": "#/definitions/WindowsServerSubscription", + "description": "Desired state of Windows Server Subscription." + }, + "diagnosticLevel": { + "$ref": "#/definitions/DiagnosticLevel", + "description": "Desired level of diagnostic data emitted by the cluster." + } + } + }, + "ClusterIdentityResponse": { + "type": "object", + "description": "Cluster Identity details.", + "properties": { + "properties": { + "$ref": "#/definitions/ClusterIdentityResponseProperties", + "description": "Cluster identity properties.", + "readOnly": true, + "x-ms-client-flatten": true + } + } + }, + "ClusterIdentityResponseProperties": { + "type": "object", + "properties": { + "aadClientId": { + "type": "string" + }, + "aadTenantId": { + "type": "string" + }, + "aadServicePrincipalObjectId": { + "type": "string" + }, + "aadApplicationObjectId": { + "type": "string" + } + } + }, + "ClusterList": { + "type": "object", + "description": "List of clusters.", + "properties": { + "value": { + "type": "array", + "description": "The Cluster items on this page", + "items": { + "$ref": "#/definitions/Cluster" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ClusterNode": { + "type": "object", + "description": "Cluster node details.", + "properties": { + "name": { + "type": "string", + "description": "Name of the cluster node.", + "readOnly": true + }, + "id": { + "type": "number", + "format": "float", + "description": "Id of the node in the cluster.", + "readOnly": true + }, + "windowsServerSubscription": { + "$ref": "#/definitions/WindowsServerSubscription", + "description": "State of Windows Server Subscription.", + "readOnly": true + }, + "nodeType": { + "$ref": "#/definitions/ClusterNodeType", + "description": "Type of the cluster node hardware.", + "readOnly": true + }, + "ehcResourceId": { + "type": "string", + "description": "Edge Hardware Center Resource Id", + "readOnly": true + }, + "manufacturer": { + "type": "string", + "description": "Manufacturer of the cluster node hardware.", + "readOnly": true + }, + "model": { + "type": "string", + "description": "Model name of the cluster node hardware.", + "readOnly": true + }, + "osName": { + "type": "string", + "description": "Operating system running on the cluster node.", + "readOnly": true + }, + "osVersion": { + "type": "string", + "description": "Version of the operating system running on the cluster node.", + "readOnly": true + }, + "osDisplayVersion": { + "type": "string", + "description": "Display version of the operating system running on the cluster node.", + "readOnly": true + }, + "serialNumber": { + "type": "string", + "description": "Immutable id of the cluster node.", + "readOnly": true + }, + "coreCount": { + "type": "number", + "format": "float", + "description": "Number of physical cores on the cluster node.", + "readOnly": true + }, + "memoryInGiB": { + "type": "number", + "format": "float", + "description": "Total available memory on the cluster node (in GiB).", + "readOnly": true + }, + "lastLicensingTimestamp": { + "type": "string", + "format": "date-time", + "description": "Most recent licensing timestamp.", + "readOnly": true + }, + "oemActivation": { + "$ref": "#/definitions/OemActivation", + "description": "OEM activation status of the node.", + "readOnly": true + } + } + }, + "ClusterNodeType": { + "type": "string", + "description": "Specifies the type of hardware vendor for all nodes in the cluster. Indicates whether the nodes are provided by Microsoft or a third-party vendor.", + "enum": [ + "FirstParty", + "ThirdParty" + ], + "x-ms-enum": { + "name": "ClusterNodeType", + "modelAsString": true, + "values": [ + { + "name": "FirstParty", + "value": "FirstParty", + "description": "All nodes in the cluster are provided and managed by Microsoft." + }, + { + "name": "ThirdParty", + "value": "ThirdParty", + "description": "All nodes in the cluster are provided and managed by a third-party vendor." + } + ] + } + }, + "ClusterPatch": { + "type": "object", + "description": "Cluster details to update.", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "identity": { + "$ref": "../../../../../../common-types/resource-management/v6/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "Identity of Cluster resource", + "x-ms-client-flatten": true + }, + "properties": { + "$ref": "#/definitions/ClusterPatchProperties", + "description": "Cluster properties.", + "x-ms-client-flatten": true + } + } + }, + "ClusterPatchProperties": { + "type": "object", + "description": "Cluster properties.", + "properties": { + "cloudManagementEndpoint": { + "type": "string", + "description": "Endpoint configured for management from the Azure portal" + }, + "aadClientId": { + "type": "string", + "description": "App id of cluster AAD identity." + }, + "aadTenantId": { + "type": "string", + "description": "Tenant id of cluster AAD identity." + }, + "desiredProperties": { + "$ref": "#/definitions/ClusterDesiredProperties", + "description": "Desired properties of the cluster." + } + } + }, + "ClusterPattern": { + "type": "string", + "description": "Supported Storage Pattern for HCI Cluster", + "enum": [ + "Standard", + "RackAware" + ], + "x-ms-enum": { + "name": "ClusterPattern", + "modelAsString": true, + "values": [ + { + "name": "Standard", + "value": "Standard", + "description": "Standard cluster." + }, + { + "name": "RackAware", + "value": "RackAware", + "description": "RackAware cluster." + } + ] + } + }, + "ClusterProperties": { + "type": "object", + "description": "Cluster properties.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state. Indicates the current lifecycle status of the resource, including creation, update, deletion, connectivity, and error states.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/Status", + "description": "Status of the cluster agent. Indicates the current connectivity, validation, and deployment state of the agent within the cluster.", + "readOnly": true + }, + "connectivityStatus": { + "$ref": "#/definitions/ConnectivityStatus", + "description": "Overall connectivity status for the cluster resource. Indicates whether the cluster is connected to Azure, partially connected, or has not recently communicated.", + "readOnly": true + }, + "supportStatus": { + "$ref": "#/definitions/SupportStatus", + "description": "Indicates whether the cluster is under support.", + "readOnly": true + }, + "cloudId": { + "type": "string", + "description": "Unique, immutable resource id.", + "readOnly": true + }, + "ring": { + "type": "string", + "description": "The ring to which this cluster belongs to.", + "readOnly": true + }, + "cloudManagementEndpoint": { + "type": "string", + "description": "Endpoint configured for management from the Azure portal." + }, + "aadClientId": { + "type": "string", + "description": "App id of cluster AAD identity." + }, + "aadTenantId": { + "type": "string", + "description": "Tenant id of cluster AAD identity." + }, + "aadApplicationObjectId": { + "type": "string", + "description": "Object id of cluster AAD identity." + }, + "aadServicePrincipalObjectId": { + "type": "string", + "description": "Id of cluster identity service principal." + }, + "softwareAssuranceProperties": { + "$ref": "#/definitions/SoftwareAssuranceProperties", + "description": "Software Assurance properties of the cluster." + }, + "isManagementCluster": { + "type": "boolean", + "description": "Is Management Cluster, when true indicates that the cluster is used for managing other clusters", + "readOnly": true + }, + "logCollectionProperties": { + "$ref": "#/definitions/LogCollectionProperties", + "description": "Log Collection properties of the cluster." + }, + "remoteSupportProperties": { + "$ref": "#/definitions/RemoteSupportProperties", + "description": "RemoteSupport properties of the cluster." + }, + "desiredProperties": { + "$ref": "#/definitions/ClusterDesiredProperties", + "description": "Desired properties of the cluster." + }, + "reportedProperties": { + "$ref": "#/definitions/ClusterReportedProperties", + "description": "Properties reported by cluster agent.", + "readOnly": true + }, + "isolatedVmAttestationConfiguration": { + "$ref": "#/definitions/IsolatedVmAttestationConfiguration", + "description": "Attestation configurations for isolated VM (e.g. TVM, CVM) of the cluster.", + "readOnly": true + }, + "trialDaysRemaining": { + "type": "number", + "format": "float", + "description": "Number of days remaining in the trial period.", + "readOnly": true + }, + "billingModel": { + "type": "string", + "description": "Type of billing applied to the resource.", + "readOnly": true + }, + "registrationTimestamp": { + "type": "string", + "format": "date-time", + "description": "First cluster sync timestamp.", + "readOnly": true + }, + "lastSyncTimestamp": { + "type": "string", + "format": "date-time", + "description": "Most recent cluster sync timestamp.", + "readOnly": true + }, + "lastBillingTimestamp": { + "type": "string", + "format": "date-time", + "description": "Most recent billing meter timestamp.", + "readOnly": true + }, + "serviceEndpoint": { + "type": "string", + "description": "Region specific DataPath Endpoint of the cluster.", + "readOnly": true + }, + "resourceProviderObjectId": { + "type": "string", + "description": "Object id of RP Service Principal", + "readOnly": true + }, + "secretsLocations": { + "type": "array", + "description": "List of secret locations.", + "items": { + "$ref": "#/definitions/SecretsLocationDetails" + }, + "x-ms-identifiers": [] + }, + "clusterPattern": { + "$ref": "#/definitions/ClusterPattern", + "description": "Supported Storage Type for HCI Cluster", + "readOnly": true + }, + "localAvailabilityZones": { + "type": "array", + "description": "Local Availability Zone information for HCI cluster", + "items": { + "$ref": "#/definitions/LocalAvailabilityZones" + }, + "x-ms-identifiers": [ + "localAvailabilityZoneName" + ] + }, + "identityProvider": { + "type": "string", + "description": "Identity Provider for the cluster", + "default": "ActiveDirectory", + "enum": [ + "ActiveDirectory", + "LocalIdentity" + ], + "x-ms-enum": { + "name": "IdentityProvider", + "modelAsString": true, + "values": [ + { + "name": "ActiveDirectory", + "value": "ActiveDirectory", + "description": "Uses Active Directory as the identity provider, enabling domain-based authentication and centralized identity management. This is the default option." + }, + { + "name": "LocalIdentity", + "value": "LocalIdentity", + "description": "Uses a local identity system integrated with Azure Key Vault for authentication. Suitable for AD-less environments where Active Directory is not available or required." + } + ] + }, + "readOnly": true + } + } + }, + "ClusterReportedProperties": { + "type": "object", + "description": "Properties reported by cluster agent.", + "properties": { + "clusterName": { + "type": "string", + "description": "Name of the on-prem cluster connected to this resource.", + "readOnly": true + }, + "clusterId": { + "type": "string", + "description": "Unique id generated by the on-prem cluster.", + "readOnly": true + }, + "clusterVersion": { + "type": "string", + "description": "Version of the cluster software.", + "readOnly": true + }, + "nodes": { + "type": "array", + "description": "List of nodes reported by the cluster.", + "items": { + "$ref": "#/definitions/ClusterNode" + }, + "readOnly": true + }, + "lastUpdated": { + "type": "string", + "format": "date-time", + "description": "Last time the cluster reported the data.", + "readOnly": true + }, + "msiExpirationTimeStamp": { + "type": "string", + "format": "date-time", + "description": "Specifies the expiration timestamp of the cluster's Managed Service Identity (MSI). The value is expressed in Coordinated Universal Time (UTC).", + "readOnly": true + }, + "imdsAttestation": { + "$ref": "#/definitions/ImdsAttestation", + "description": "IMDS attestation status of the cluster.", + "readOnly": true + }, + "diagnosticLevel": { + "$ref": "#/definitions/DiagnosticLevel", + "description": "Level of diagnostic data emitted by the cluster." + }, + "supportedCapabilities": { + "type": "array", + "description": "Capabilities supported by the cluster.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "clusterType": { + "$ref": "#/definitions/ClusterNodeType", + "description": "Specifies the type of hardware vendor for all nodes in the cluster. Indicates whether the nodes are provided by Microsoft or a third-party vendor.", + "readOnly": true + }, + "manufacturer": { + "type": "string", + "description": "The manufacturer of all the nodes of the cluster.", + "readOnly": true + }, + "oemActivation": { + "$ref": "#/definitions/OemActivation", + "description": "OEM activation status of the cluster.", + "readOnly": true + }, + "hardwareClass": { + "type": "string", + "description": "Hardware class of the cluster.", + "default": "Medium", + "enum": [ + "Small", + "Medium", + "Large" + ], + "x-ms-enum": { + "name": "HardwareClass", + "modelAsString": true, + "values": [ + { + "name": "Small", + "value": "Small", + "description": "The hardware class is small." + }, + { + "name": "Medium", + "value": "Medium", + "description": "The hardware class is medium. This corresponds to the default" + }, + { + "name": "Large", + "value": "Large", + "description": "The hardware class is large." + } + ] + }, + "readOnly": true + } + } + }, + "CollectLogJobProperties": { + "type": "object", + "description": "Represents the properties of a log collection job.", + "properties": { + "fromDate": { + "type": "string", + "format": "date-time", + "description": "From date for log collection." + }, + "toDate": { + "type": "string", + "format": "date-time", + "description": "To date for log collection." + }, + "lastLogGenerated": { + "type": "string", + "format": "date-time", + "description": "To date for log collection.", + "readOnly": true + }, + "reportedProperties": { + "$ref": "#/definitions/LogCollectionReportedProperties", + "description": "log collection job reported properties.", + "readOnly": true + } + }, + "required": [ + "fromDate", + "toDate" + ] + }, + "ComplianceAssignmentType": { + "type": "string", + "description": "Represents the compliance assignment type of a resource.", + "enum": [ + "Audit", + "ApplyAndAutoCorrect" + ], + "x-ms-enum": { + "name": "ComplianceAssignmentType", + "modelAsString": true, + "values": [ + { + "name": "Audit", + "value": "Audit", + "description": "Report on the state of the machine, but don't make changes." + }, + { + "name": "ApplyAndAutoCorrect", + "value": "ApplyAndAutoCorrect", + "description": "Applied to the machine. If it drifts, the local service inside the machine makes a correction at the next evaluation." + } + ] + } + }, + "ComplianceStatus": { + "type": "string", + "description": "Represents the compliance status of a resource.", + "enum": [ + "Compliant", + "NonCompliant", + "Pending" + ], + "x-ms-enum": { + "name": "ComplianceStatus", + "modelAsString": true, + "values": [ + { + "name": "Compliant", + "value": "Compliant", + "description": "The resource is compliant" + }, + { + "name": "NonCompliant", + "value": "NonCompliant", + "description": "The resource is non-compliant" + }, + { + "name": "Pending", + "value": "Pending", + "description": "The resource compliance status is pending" + } + ] + } + }, + "ConnectivityStatus": { + "type": "string", + "description": "Overall connectivity status for the cluster resource. Indicates whether the cluster is connected to Azure, partially connected, or has not recently communicated.", + "enum": [ + "NotYetRegistered", + "Connected", + "NotConnectedRecently", + "PartiallyConnected", + "Disconnected", + "NotSpecified" + ], + "x-ms-enum": { + "name": "ConnectivityStatus", + "modelAsString": true, + "values": [ + { + "name": "NotYetRegistered", + "value": "NotYetRegistered", + "description": "The cluster has not yet registered with Azure." + }, + { + "name": "Connected", + "value": "Connected", + "description": "The cluster is fully connected to Azure." + }, + { + "name": "NotConnectedRecently", + "value": "NotConnectedRecently", + "description": "The cluster has not connected to Azure recently." + }, + { + "name": "PartiallyConnected", + "value": "PartiallyConnected", + "description": "Some components of the cluster are connected, while others are not." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The cluster is not connected to Azure." + }, + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The connectivity status is not specified." + } + ] + } + }, + "ContentPayload": { + "type": "object", + "description": "Represents details of a specific update content payload.", + "properties": { + "url": { + "type": "string", + "description": "Represents url of a update payload." + }, + "hash": { + "type": "string", + "description": "Represents hash of a update payload." + }, + "hashAlgorithm": { + "type": "string", + "description": "Represents hash algorithm of a update payload." + }, + "identifier": { + "type": "string", + "description": "Represents identifier of a update payload." + }, + "packageSizeInBytes": { + "type": "string", + "description": "Represents size in bytes of a update payload." + }, + "group": { + "type": "string", + "description": "Represents the group of a update payload." + }, + "fileName": { + "type": "string", + "description": "Represents the file name of a update payload." + } + } + }, + "DefaultExtensionDetails": { + "type": "object", + "description": "Properties for a particular default extension category.", + "properties": { + "category": { + "type": "string", + "description": "Default extension category", + "readOnly": true + }, + "consentTime": { + "type": "string", + "format": "date-time", + "description": "Consent time for extension category", + "readOnly": true + } + } + }, + "DeploymentCluster": { + "type": "object", + "description": "AzureStackHCI Cluster deployment properties.", + "properties": { + "name": { + "type": "string", + "description": "The cluster name provided when preparing Active Directory." + }, + "witnessType": { + "type": "string", + "description": "Use a cloud witness if you have internet access and if you use an Azure Storage account to provide a vote on cluster quorum. A cloud witness uses Azure Blob Storage to read or write a blob file and then uses it to arbitrate in split-brain resolution. Only allowed values are 'Cloud', 'FileShare'." + }, + "witnessPath": { + "type": "string", + "description": "Specify the fileshare path for the local witness for your Azure Stack HCI cluster." + }, + "cloudAccountName": { + "type": "string", + "description": "Specify the Azure Storage account name for cloud witness for your Azure Stack HCI cluster." + }, + "azureServiceEndpoint": { + "type": "string", + "description": "For Azure blob service endpoint type, select either Default or Custom domain. If you selected **Custom domain, enter the domain for the blob service in this format core.windows.net." + }, + "hardwareClass": { + "type": "string", + "description": "Hardware class of the cluster.", + "default": "Medium", + "enum": [ + "Small", + "Medium", + "Large" + ], + "x-ms-enum": { + "name": "HardwareClass", + "modelAsString": true, + "values": [ + { + "name": "Small", + "value": "Small", + "description": "The hardware class is small." + }, + { + "name": "Medium", + "value": "Medium", + "description": "The hardware class is medium. This corresponds to the default" + }, + { + "name": "Large", + "value": "Large", + "description": "The hardware class is large." + } + ] + }, + "readOnly": true + }, + "clusterPattern": { + "$ref": "#/definitions/ClusterPattern", + "description": "Cluster Pattern supported." + } + } + }, + "DeploymentConfiguration": { + "type": "object", + "description": "Deployment Configuration", + "properties": { + "version": { + "type": "string", + "description": "deployment template version" + }, + "scaleUnits": { + "type": "array", + "description": "Scale units will contains list of deployment data", + "items": { + "$ref": "#/definitions/ScaleUnits" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "scaleUnits" + ] + }, + "DeploymentData": { + "type": "object", + "description": "The Deployment data of AzureStackHCI Cluster.", + "properties": { + "securitySettings": { + "$ref": "#/definitions/DeploymentSecuritySettings", + "description": "SecuritySettings to deploy AzureStackHCI Cluster." + }, + "observability": { + "$ref": "#/definitions/Observability", + "description": "Observability config to deploy AzureStackHCI Cluster." + }, + "cluster": { + "$ref": "#/definitions/DeploymentCluster", + "description": "Observability config to deploy AzureStackHCI Cluster." + }, + "identityProvider": { + "$ref": "#/definitions/IdentityProvider", + "description": "Identity Provider for the cluster" + }, + "storage": { + "$ref": "#/definitions/Storage", + "description": "Storage config to deploy AzureStackHCI Cluster." + }, + "namingPrefix": { + "type": "string", + "description": "naming prefix to deploy cluster.", + "pattern": "^[a-zA-Z0-9-]{1,8}$" + }, + "domainFqdn": { + "type": "string", + "description": "FQDN to deploy cluster" + }, + "infrastructureNetwork": { + "type": "array", + "description": "InfrastructureNetwork config to deploy AzureStackHCI Cluster.", + "items": { + "$ref": "#/definitions/InfrastructureNetwork" + }, + "x-ms-identifiers": [] + }, + "physicalNodes": { + "type": "array", + "description": "list of physical nodes config to deploy AzureStackHCI Cluster.", + "items": { + "$ref": "#/definitions/PhysicalNodes" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "hostNetwork": { + "$ref": "#/definitions/DeploymentSettingHostNetwork", + "description": "HostNetwork config to deploy AzureStackHCI Cluster." + }, + "sdnIntegration": { + "$ref": "#/definitions/SdnIntegration", + "description": "SDN Integration config to deploy AzureStackHCI Cluster." + }, + "isManagementCluster": { + "type": "boolean", + "description": "Is Management Cluster, when true indicates that the cluster is used for managing other clusters" + }, + "adouPath": { + "type": "string", + "description": "The path to the Active Directory Organizational Unit container object prepared for the deployment." + }, + "secretsLocation": { + "type": "string", + "description": "Azure key vault endpoint. This property is deprecated from 2023-12-01-preview. Please use secrets property instead." + }, + "secrets": { + "type": "array", + "description": "secrets used for cloud deployment.", + "items": { + "$ref": "#/definitions/EceDeploymentSecrets" + }, + "x-ms-identifiers": [ + "secretName" + ] + }, + "optionalServices": { + "$ref": "#/definitions/OptionalServices", + "description": "OptionalServices config to deploy AzureStackHCI Cluster." + }, + "localAvailabilityZones": { + "type": "array", + "description": "Local Availability Zone information for HCI cluster", + "items": { + "$ref": "#/definitions/LocalAvailabilityZones" + }, + "x-ms-identifiers": [ + "localAvailabilityZoneName" + ] + }, + "assemblyInfo": { + "$ref": "#/definitions/AssemblyInfo", + "description": "Assembly Package details for Validated Solution Recipe for AzureStackHCI Cluster" + } + } + }, + "DeploymentMode": { + "type": "string", + "description": "Deployment mode to trigger job.", + "enum": [ + "Validate", + "Deploy" + ], + "x-ms-enum": { + "name": "DeploymentMode", + "modelAsString": true, + "values": [ + { + "name": "Validate", + "value": "Validate", + "description": "Validate ECE action deployment for a cluster." + }, + { + "name": "Deploy", + "value": "Deploy", + "description": "Deploy ECE action deployment for a cluster." + } + ] + } + }, + "DeploymentSecuritySettings": { + "type": "object", + "description": "The SecuritySettings of AzureStackHCI Cluster.", + "properties": { + "hvciProtection": { + "type": "boolean", + "description": "By default, Hypervisor-protected Code Integrity is enabled on your Azure HCI cluster.", + "default": true + }, + "drtmProtection": { + "type": "boolean", + "description": "By default, Secure Boot is enabled on your Azure HCI cluster. This setting is hardware dependent.", + "default": true + }, + "driftControlEnforced": { + "type": "boolean", + "description": "When set to true, the security baseline is re-applied regularly.", + "default": true + }, + "credentialGuardEnforced": { + "type": "boolean", + "description": "When set to true, Credential Guard is enabled.", + "default": false + }, + "smbSigningEnforced": { + "type": "boolean", + "description": "When set to true, the SMB default instance requires sign in for the client and server services.", + "default": true + }, + "smbClusterEncryption": { + "type": "boolean", + "description": "When set to true, cluster east-west traffic is encrypted.", + "default": false + }, + "sideChannelMitigationEnforced": { + "type": "boolean", + "description": "When set to true, all the side channel mitigations are enabled", + "default": true + }, + "bitlockerBootVolume": { + "type": "boolean", + "description": "When set to true, BitLocker XTS_AES 256-bit encryption is enabled for all data-at-rest on the OS volume of your Azure Stack HCI cluster. This setting is TPM-hardware dependent.", + "default": true + }, + "bitlockerDataVolumes": { + "type": "boolean", + "description": "When set to true, BitLocker XTS-AES 256-bit encryption is enabled for all data-at-rest on your Azure Stack HCI cluster shared volumes.", + "default": true + }, + "wdacEnforced": { + "type": "boolean", + "description": "WDAC is enabled by default and limits the applications and the code that you can run on your Azure Stack HCI cluster.", + "default": true + } + } + }, + "DeploymentSetting": { + "type": "object", + "description": "Edge device resource", + "properties": { + "properties": { + "$ref": "#/definitions/DeploymentSettingsProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true, + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "DeploymentSettingAdapterPropertyOverrides": { + "type": "object", + "description": "The AdapterPropertyOverrides of a cluster.", + "properties": { + "jumboPacket": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." + }, + "networkDirect": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." + }, + "networkDirectTechnology": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. Expected values are 'iWARP', 'RoCEv2', 'RoCE'" + } + } + }, + "DeploymentSettingHostNetwork": { + "type": "object", + "description": "The HostNetwork of a cluster.", + "properties": { + "intents": { + "type": "array", + "description": "The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.", + "items": { + "$ref": "#/definitions/DeploymentSettingIntents" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "storageNetworks": { + "type": "array", + "description": "List of StorageNetworks config to deploy AzureStackHCI Cluster.", + "items": { + "$ref": "#/definitions/DeploymentSettingStorageNetworks" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "storageConnectivitySwitchless": { + "type": "boolean", + "description": "Defines how the storage adapters between nodes are connected either switch or switch less..", + "default": false + }, + "enableStorageAutoIp": { + "type": "boolean", + "description": "Optional parameter required only for 3 Nodes Switchless deployments. This allows users to specify IPs and Mask for Storage NICs when Network ATC is not assigning the IPs for storage automatically.", + "default": false + } + } + }, + "DeploymentSettingIntents": { + "type": "object", + "description": "The Intents of a cluster.", + "properties": { + "name": { + "type": "string", + "description": "Name of the network intent you wish to create." + }, + "trafficType": { + "type": "array", + "description": "List of network traffic types. Only allowed values are 'Compute', 'Storage', 'Management'.", + "items": { + "type": "string" + } + }, + "adapter": { + "type": "array", + "description": "Array of network interfaces used for the network intent.", + "items": { + "type": "string" + } + }, + "overrideVirtualSwitchConfiguration": { + "type": "boolean", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "default": false + }, + "virtualSwitchConfigurationOverrides": { + "$ref": "#/definitions/DeploymentSettingVirtualSwitchConfigurationOverrides", + "description": "Set virtualSwitch ConfigurationOverrides for cluster." + }, + "overrideQosPolicy": { + "type": "boolean", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "default": false + }, + "qosPolicyOverrides": { + "$ref": "#/definitions/QosPolicyOverrides", + "description": "Set QoS PolicyOverrides for cluster." + }, + "overrideAdapterProperty": { + "type": "boolean", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "default": false + }, + "adapterPropertyOverrides": { + "$ref": "#/definitions/DeploymentSettingAdapterPropertyOverrides", + "description": "Set Adapter PropertyOverrides for cluster." + } + } + }, + "DeploymentSettingListResult": { + "type": "object", + "description": "The response of a DeploymentSetting list operation.", + "properties": { + "value": { + "type": "array", + "description": "The DeploymentSetting items on this page", + "items": { + "$ref": "#/definitions/DeploymentSetting" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "DeploymentSettingStorageAdapterIPInfo": { + "type": "object", + "description": "The StorageAdapter physical nodes of a cluster.", + "properties": { + "physicalNode": { + "type": "string", + "description": "storage adapter physical node name." + }, + "ipv4Address": { + "type": "string", + "description": "The IPv4 address assigned to each storage adapter physical node on your Azure Stack HCI cluster." + }, + "subnetMask": { + "type": "string", + "description": "The SubnetMask address assigned to each storage adapter physical node on your Azure Stack HCI cluster." + } + } + }, + "DeploymentSettingStorageNetworks": { + "type": "object", + "description": "The StorageNetworks of a cluster.", + "properties": { + "name": { + "type": "string", + "description": "Name of the storage network." + }, + "networkAdapterName": { + "type": "string", + "description": "Name of the storage network adapter." + }, + "vlanId": { + "type": "string", + "description": "ID specified for the VLAN storage network. This setting is applied to the network interfaces that route the storage and VM migration traffic." + }, + "storageAdapterIPInfo": { + "type": "array", + "description": "List of Storage adapter physical nodes config to deploy AzureStackHCI Cluster.", + "items": { + "$ref": "#/definitions/DeploymentSettingStorageAdapterIPInfo" + }, + "x-ms-identifiers": [ + "physicalNode" + ] + } + } + }, + "DeploymentSettingVirtualSwitchConfigurationOverrides": { + "type": "object", + "description": "The VirtualSwitchConfigurationOverrides of a cluster.", + "properties": { + "enableIov": { + "type": "string", + "description": "Enable IoV for Virtual Switch" + }, + "loadBalancingAlgorithm": { + "type": "string", + "description": "Load Balancing Algorithm for Virtual Switch" + } + } + }, + "DeploymentSettingsProperties": { + "type": "object", + "description": "DeploymentSetting properties", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "DeploymentSetting provisioning state", + "readOnly": true + }, + "arcNodeResourceIds": { + "type": "array", + "description": "Azure resource ids of Arc machines to be part of cluster.", + "items": { + "type": "string" + } + }, + "deploymentMode": { + "$ref": "#/definitions/DeploymentMode", + "description": "The deployment mode for cluster deployment." + }, + "operationType": { + "type": "string", + "description": "The intended operation for a cluster.", + "default": "ClusterProvisioning", + "enum": [ + "ClusterProvisioning", + "ClusterUpgrade" + ], + "x-ms-enum": { + "name": "OperationType", + "modelAsString": true, + "values": [ + { + "name": "ClusterProvisioning", + "value": "ClusterProvisioning", + "description": "Cluster provisioning operation." + }, + { + "name": "ClusterUpgrade", + "value": "ClusterUpgrade", + "description": "Cluster upgrade operation." + } + ] + } + }, + "deploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration", + "description": "Scale units will contains list of deployment data" + }, + "reportedProperties": { + "$ref": "#/definitions/EceReportedProperties", + "description": "Deployment Status reported from cluster.", + "readOnly": true + } + }, + "required": [ + "arcNodeResourceIds", + "deploymentMode", + "deploymentConfiguration" + ] + }, + "DeploymentStep": { + "type": "object", + "description": "The Step of AzureStackHCI Cluster.", + "properties": { + "name": { + "type": "string", + "description": "Name of step.", + "readOnly": true + }, + "description": { + "type": "string", + "description": "Description of step.", + "readOnly": true + }, + "fullStepIndex": { + "type": "string", + "description": "FullStepIndex of step.", + "readOnly": true + }, + "startTimeUtc": { + "type": "string", + "description": "Start time of step.", + "readOnly": true + }, + "endTimeUtc": { + "type": "string", + "description": "End time of step.", + "readOnly": true + }, + "status": { + "type": "string", + "description": "Status of step. Allowed values are 'Error', 'Success', 'InProgress'", + "readOnly": true + }, + "steps": { + "type": "array", + "description": "List of nested steps of AzureStackHCI Cluster Deployment.", + "items": { + "$ref": "#/definitions/DeploymentStep" + }, + "readOnly": true, + "x-ms-identifiers": [] + }, + "exception": { + "type": "array", + "description": "List of exceptions in AzureStackHCI Cluster Deployment.", + "items": { + "type": "string" + }, + "readOnly": true + } + } + }, + "DeviceConfiguration": { + "type": "object", + "description": "The device Configuration for edge device.", + "properties": { + "nicDetails": { + "type": "array", + "description": "NIC Details of device", + "items": { + "$ref": "#/definitions/NicDetail" + }, + "x-ms-identifiers": [ + "adapterName" + ] + }, + "deviceMetadata": { + "type": "string", + "description": "Device metadata details." + } + } + }, + "DeviceKind": { + "type": "string", + "description": "Edge device kind.", + "enum": [ + "HCI" + ], + "x-ms-enum": { + "name": "DeviceKind", + "modelAsString": true, + "values": [ + { + "name": "HCI", + "value": "HCI", + "description": "Arc-enabled edge device with HCI OS." + } + ] + } + }, + "DeviceLogCollectionStatus": { + "type": "string", + "description": "Represents the status of a log collection operation.", + "enum": [ + "NotStarted", + "Running", + "Failed", + "Succeeded", + "Canceled" + ], + "x-ms-enum": { + "name": "DeviceLogCollectionStatus", + "modelAsString": true, + "values": [ + { + "name": "NotStarted", + "value": "NotStarted", + "description": "Log collection operation has not been initiated." + }, + { + "name": "Running", + "value": "Running", + "description": "Indicates that the log collection operation is currently running." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Indicates that the log collection operation has failed." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Indicates that the log collection operation has completed successfully." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Indicates that the log collection operation has completed successfully." + } + ] + }, + "readOnly": true + }, + "DeviceState": { + "type": "string", + "description": "The edge device state.", + "enum": [ + "NotSpecified", + "Connected", + "Disconnected", + "Repairing", + "Draining", + "InMaintenance", + "Resuming", + "Processing" + ], + "x-ms-enum": { + "name": "DeviceState", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The edge device state is not specified." + }, + { + "name": "Connected", + "value": "Connected", + "description": "The edge device state is in connected state." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The edge device state is in disconnected state." + }, + { + "name": "Repairing", + "value": "Repairing", + "description": "The edge device state is in repairing state." + }, + { + "name": "Draining", + "value": "Draining", + "description": "The edge device state is in draining state." + }, + { + "name": "InMaintenance", + "value": "InMaintenance", + "description": "The edge device state is in maintenance state." + }, + { + "name": "Resuming", + "value": "Resuming", + "description": "The edge device state is in resuming state." + }, + { + "name": "Processing", + "value": "Processing", + "description": "The edge device state is in processing state." + } + ] + } + }, + "DiagnosticLevel": { + "type": "string", + "description": "Desired level of diagnostic data emitted by the cluster.", + "enum": [ + "Off", + "Basic", + "Enhanced" + ], + "x-ms-enum": { + "name": "DiagnosticLevel", + "modelAsString": true, + "values": [ + { + "name": "Off", + "value": "Off", + "description": "No diagnostic data will be emitted." + }, + { + "name": "Basic", + "value": "Basic", + "description": "Basic diagnostic data will be emitted, including essential health metrics." + }, + { + "name": "Enhanced", + "value": "Enhanced", + "description": "Enhanced diagnostic data will be emitted, including detailed performance and usage metrics." + } + ] + } + }, + "DnsServerConfig": { + "type": "string", + "description": "Specifies how DNS servers are configured for the infrastructure network. Allowed values are 'UseDnsServer' to use the provided DNS servers, and 'UseForwarder' to use DNS forwarders.", + "enum": [ + "UseDnsServer", + "UseForwarder" + ], + "x-ms-enum": { + "name": "DnsServerConfig", + "modelAsString": true, + "values": [ + { + "name": "UseDnsServer", + "value": "UseDnsServer", + "description": "Use the provided DNS servers for the infrastructure network." + }, + { + "name": "UseForwarder", + "value": "UseForwarder", + "description": "Use DNS forwarders for the infrastructure network." + } + ] + } + }, + "DnsZones": { + "type": "object", + "description": "Details of the DNS Zones to be configured.", + "properties": { + "dnsZoneName": { + "type": "string", + "description": "Name of the DNS Zone to be configured." + }, + "dnsForwarder": { + "type": "array", + "description": "Forwarder details of the DNS Zone to be configured.", + "items": { + "type": "string" + } + } + } + }, + "EceActionStatus": { + "type": "object", + "description": "The ECE action plan deployment status for AzureStackHCI Cluster.", + "properties": { + "status": { + "type": "string", + "description": "Status of ECE action AzureStackHCI Cluster Deployment.", + "readOnly": true + }, + "steps": { + "type": "array", + "description": "List of steps of AzureStackHCI Cluster Deployment.", + "items": { + "$ref": "#/definitions/DeploymentStep" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "EceDeploymentSecrets": { + "type": "object", + "description": "Protected parameters list stored in keyvault.", + "properties": { + "secretName": { + "type": "string", + "description": "Secret name stored in keyvault." + }, + "eceSecretName": { + "$ref": "#/definitions/EceSecrets", + "description": "Secret name expected for Enterprise Cloud Engine (ECE) deployment." + }, + "secretLocation": { + "type": "string", + "format": "uri", + "description": "Secret URI stored in keyvault." + } + } + }, + "EceReportedProperties": { + "type": "object", + "description": "The DeploymentStatus of AzureStackHCI Cluster.", + "properties": { + "validationStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "validation status of AzureStackHCI Cluster Deployment.", + "readOnly": true + }, + "deploymentStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Deployment status of AzureStackHCI Cluster Deployment.", + "readOnly": true + } + } + }, + "EceSecrets": { + "type": "string", + "description": "Secret names allowed for Enterprise Cloud Engine (ECE) deployment.", + "enum": [ + "AzureStackLCMUserCredential", + "DefaultARBApplication", + "LocalAdminCredential", + "WitnessStorageKey" + ], + "x-ms-enum": { + "name": "EceSecrets", + "modelAsString": true, + "values": [ + { + "name": "AzureStackLCMUserCredential", + "value": "AzureStackLCMUserCredential", + "description": "AzureStackLCMUserCredential used for LCM operations for AzureStackHCI cluster." + }, + { + "name": "DefaultARBApplication", + "value": "DefaultARBApplication", + "description": "DefaultARBApplication used to manage Azure Arc resource bridge (ARB) for AzureStackHCI cluster." + }, + { + "name": "LocalAdminCredential", + "value": "LocalAdminCredential", + "description": "LocalAdminCredential used for admin operations for AzureStackHCI cluster." + }, + { + "name": "WitnessStorageKey", + "value": "WitnessStorageKey", + "description": "WitnessStorageKey used for setting up a cloud witness for AzureStackHCI cluster." + } + ] + } + }, + "EdgeDevice": { + "type": "object", + "description": "Edge device resource.", + "properties": { + "kind": { + "$ref": "#/definitions/DeviceKind", + "description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + "pattern": "^[-\\w\\._,\\(\\\\\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "discriminator": "kind", + "required": [ + "kind" + ], + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "EdgeDeviceJob": { + "type": "object", + "description": "EdgeDevice Jobs resource", + "properties": { + "kind": { + "$ref": "#/definitions/EdgeDeviceKind", + "description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + "pattern": "^[-\\w\\._,\\(\\\\\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "discriminator": "kind", + "required": [ + "kind" + ], + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "EdgeDeviceJobListResult": { + "type": "object", + "description": "The response of a EdgeDeviceJob list operation.", + "properties": { + "value": { + "type": "array", + "description": "The EdgeDeviceJob items on this page", + "items": { + "$ref": "#/definitions/EdgeDeviceJob" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "EdgeDeviceJobProperties": { + "type": "object", + "description": "Edge device job properties", + "properties": { + "deploymentMode": { + "$ref": "#/definitions/DeploymentMode", + "description": "Deployment mode to trigger job." + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Job provisioning state", + "readOnly": true + }, + "jobId": { + "type": "string", + "description": "Unique, immutable job id.", + "readOnly": true + }, + "startTimeUtc": { + "type": "string", + "format": "date-time", + "description": "The UTC date and time at which the job started.", + "readOnly": true + }, + "endTimeUtc": { + "type": "string", + "format": "date-time", + "description": "The UTC date and time at which the job completed.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/JobStatus", + "description": "Status of Edge device job.", + "readOnly": true + } + } + }, + "EdgeDeviceJobType": { + "type": "string", + "description": "Common Job Types supported.", + "enum": [ + "CollectLog", + "RemoteSupport" + ], + "x-ms-enum": { + "name": "EdgeDeviceJobType", + "modelAsString": true, + "values": [ + { + "name": "CollectLog", + "value": "CollectLog", + "description": "Job to collect logs from the device." + }, + { + "name": "RemoteSupport", + "value": "RemoteSupport", + "description": "Job to provide remote support to the device." + } + ] + } + }, + "EdgeDeviceKind": { + "type": "string", + "description": "Edge device kind.", + "enum": [ + "HCI" + ], + "x-ms-enum": { + "name": "EdgeDeviceKind", + "modelAsString": true, + "values": [ + { + "name": "HCI", + "value": "HCI", + "description": "Arc-enabled edge device with HCI OS." + } + ] + } + }, + "EdgeDeviceListResult": { + "type": "object", + "description": "The response of a EdgeDevice list operation.", + "properties": { + "value": { + "type": "array", + "description": "The EdgeDevice items on this page", + "items": { + "$ref": "#/definitions/EdgeDevice" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "EdgeDeviceProperties": { + "type": "object", + "description": "Edge Device properties", + "properties": { + "deviceConfiguration": { + "$ref": "#/definitions/DeviceConfiguration", + "description": "Device Configuration" + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of edgeDevice resource", + "readOnly": true + } + } + }, + "EdgeSolutionType": { + "type": "string", + "description": "Edge solution type.", + "enum": [ + "WindowsServer" + ], + "x-ms-enum": { + "name": "EdgeSolutionType", + "modelAsString": true, + "values": [ + { + "name": "WindowsServer", + "value": "WindowsServer", + "description": "Edge solution for Windows based edge devices." + } + ] + } + }, + "Extension": { + "type": "object", + "description": "Details of a particular extension in HCI Cluster.", + "properties": { + "properties": { + "$ref": "#/definitions/ExtensionProperties", + "description": "Describes Machine Extension Properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "ExtensionAggregateState": { + "type": "string", + "description": "Aggregate state of Arc Extensions across the nodes in this HCI cluster. This reflects the overall status of the extension deployment and operation across all nodes.", + "enum": [ + "NotSpecified", + "Error", + "Succeeded", + "Canceled", + "Failed", + "Connected", + "Disconnected", + "Deleted", + "Creating", + "Updating", + "Deleting", + "Moving", + "PartiallySucceeded", + "PartiallyConnected", + "InProgress", + "Accepted", + "Provisioning", + "UpgradeFailedRollbackSucceeded" + ], + "x-ms-enum": { + "name": "ExtensionAggregateState", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The aggregate state is not specified." + }, + { + "name": "Error", + "value": "Error", + "description": "An error occurred in the aggregate state." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The operation succeeded across all nodes." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "The operation was canceled across the nodes." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The operation failed on all or most nodes." + }, + { + "name": "Connected", + "value": "Connected", + "description": "All nodes are connected." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "All nodes are disconnected." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "The extension has been deleted from all nodes." + }, + { + "name": "Creating", + "value": "Creating", + "description": "The extension is being created across the nodes." + }, + { + "name": "Updating", + "value": "Updating", + "description": "The extension is being updated across the nodes." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The extension is being deleted across the nodes." + }, + { + "name": "Moving", + "value": "Moving", + "description": "The extension is being moved across the nodes." + }, + { + "name": "PartiallySucceeded", + "value": "PartiallySucceeded", + "description": "The operation succeeded on some nodes." + }, + { + "name": "PartiallyConnected", + "value": "PartiallyConnected", + "description": "Some nodes are connected, others are not." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "The operation is currently in progress across the nodes." + }, + { + "name": "Accepted", + "value": "Accepted", + "description": "The operation has been accepted and is pending execution." + }, + { + "name": "Provisioning", + "value": "Provisioning", + "description": "The extension is currently being provisioned across the nodes." + }, + { + "name": "UpgradeFailedRollbackSucceeded", + "value": "UpgradeFailedRollbackSucceeded", + "description": "Extension upgrade failed, but rollback succeeded across the nodes." + } + ] + }, + "readOnly": true + }, + "ExtensionInstanceView": { + "type": "object", + "description": "Describes the Extension Instance View.", + "properties": { + "name": { + "type": "string", + "description": "The extension name." + }, + "type": { + "type": "string", + "description": "Specifies the type of the extension; an example is \"MicrosoftMonitoringAgent\"." + }, + "typeHandlerVersion": { + "type": "string", + "description": "Specifies the version of the script handler." + }, + "status": { + "$ref": "#/definitions/ExtensionInstanceViewStatus", + "description": "Instance view status." + } + } + }, + "ExtensionInstanceViewStatus": { + "type": "object", + "description": "Instance view status.", + "properties": { + "code": { + "type": "string", + "description": "The status code." + }, + "level": { + "$ref": "#/definitions/StatusLevelTypes", + "description": "The level code. Indicates the severity or importance of the status message." + }, + "displayStatus": { + "type": "string", + "description": "The short localizable label for the status." + }, + "message": { + "type": "string", + "description": "The detailed status message, including for alerts and error messages." + }, + "time": { + "type": "string", + "format": "date-time", + "description": "The time of the status." + } + } + }, + "ExtensionList": { + "type": "object", + "description": "List of Extensions in HCI cluster.", + "properties": { + "value": { + "type": "array", + "description": "The Extension items on this page", + "items": { + "$ref": "#/definitions/Extension" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ExtensionManagedBy": { + "type": "string", + "description": "Indicates whether the extension is managed by the user or by Azure.", + "enum": [ + "User", + "Azure" + ], + "x-ms-enum": { + "name": "ExtensionManagedBy", + "modelAsString": true, + "values": [ + { + "name": "User", + "value": "User", + "description": "The extension is managed by the user." + }, + { + "name": "Azure", + "value": "Azure", + "description": "The extension is managed by Azure." + } + ] + } + }, + "ExtensionParameters": { + "type": "object", + "description": "Describes the properties of a Machine Extension. This object mirrors the definition in HybridCompute.", + "properties": { + "forceUpdateTag": { + "type": "string", + "description": "How the extension handler should be forced to update even if the extension configuration has not changed." + }, + "publisher": { + "type": "string", + "description": "The name of the extension handler publisher." + }, + "type": { + "type": "string", + "description": "Specifies the type of the extension; an example is \"CustomScriptExtension\"." + }, + "typeHandlerVersion": { + "type": "string", + "description": "Specifies the version of the script handler. Latest version would be used if not specified." + }, + "autoUpgradeMinorVersion": { + "type": "boolean", + "description": "Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true." + }, + "settings": { + "description": "Json formatted public settings for the extension." + }, + "protectedSettings": { + "format": "password", + "description": "Protected settings (may contain secrets).", + "x-ms-secret": true + }, + "enableAutomaticUpgrade": { + "type": "boolean", + "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version available." + } + } + }, + "ExtensionPatch": { + "type": "object", + "description": "Extension Details to update", + "properties": { + "properties": { + "$ref": "#/definitions/ExtensionPatchProperties", + "description": "Describes Machine Extension Properties that can be updated.", + "x-ms-client-flatten": true + } + } + }, + "ExtensionPatchParameters": { + "type": "object", + "description": "Describes the properties of a Machine Extension that can be updated.", + "properties": { + "typeHandlerVersion": { + "type": "string", + "description": "Specifies the version of the script handler. Latest version would be used if not specified." + }, + "enableAutomaticUpgrade": { + "type": "boolean", + "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version available." + }, + "settings": { + "description": "Json formatted public settings for the extension." + }, + "protectedSettings": { + "format": "password", + "description": "Protected settings (may contain secrets).", + "x-ms-secret": true + } + } + }, + "ExtensionPatchProperties": { + "type": "object", + "description": "Describes Machine Extension Properties that can be updated.", + "properties": { + "extensionParameters": { + "$ref": "#/definitions/ExtensionPatchParameters", + "description": "Describes the properties of a Machine Extension that can be updated." + } + } + }, + "ExtensionProfile": { + "type": "object", + "description": "Extensions details for edge device.", + "properties": { + "extensions": { + "type": "array", + "description": "List of Arc extensions installed on edge device.", + "items": { + "$ref": "#/definitions/HciEdgeDeviceArcExtension" + }, + "readOnly": true, + "x-ms-identifiers": [ + "extensionName" + ] + } + } + }, + "ExtensionProperties": { + "type": "object", + "description": "Status of Arc Extension for a particular node in HCI Cluster.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of the Extension proxy resource. Indicates the current lifecycle status of the resource, such as whether it's being created, updated, deleted, or has encountered an error.", + "readOnly": true + }, + "extensionParameters": { + "$ref": "#/definitions/ExtensionParameters", + "description": "Parameters specific to this extension type.", + "x-ms-client-flatten": true + }, + "aggregateState": { + "$ref": "#/definitions/ExtensionAggregateState", + "description": "Aggregate state of Arc Extensions across the nodes in this HCI cluster. This reflects the overall status of the extension deployment and operation across all nodes.", + "readOnly": true + }, + "perNodeExtensionDetails": { + "type": "array", + "description": "State of Arc Extension in each of the nodes.", + "items": { + "$ref": "#/definitions/PerNodeExtensionState" + }, + "readOnly": true + }, + "managedBy": { + "$ref": "#/definitions/ExtensionManagedBy", + "description": "Indicates if the extension is managed by Azure or the user. This determines who controls the deployment and lifecycle of the extension.", + "readOnly": true + } + } + }, + "ExtensionUpgradeParameters": { + "type": "object", + "description": "Describes the parameters for Extension upgrade.", + "properties": { + "targetVersion": { + "type": "string", + "description": "Extension Upgrade Target Version." + } + } + }, + "HardwareClass": { + "type": "string", + "description": "Hardware class of the cluster.", + "enum": [ + "Small", + "Medium", + "Large" + ], + "x-ms-enum": { + "name": "HardwareClass", + "modelAsString": true, + "values": [ + { + "name": "Small", + "value": "Small", + "description": "The hardware class is small." + }, + { + "name": "Medium", + "value": "Medium", + "description": "The hardware class is medium. This corresponds to the default" + }, + { + "name": "Large", + "value": "Large", + "description": "The hardware class is large." + } + ] + } + }, + "HciCollectLogJobProperties": { + "type": "object", + "description": "Represents the properties of an HCI Collect Log job.", + "properties": { + "fromDate": { + "type": "string", + "format": "date-time", + "description": "From date for log collection." + }, + "toDate": { + "type": "string", + "format": "date-time", + "description": "To date for log collection." + }, + "lastLogGenerated": { + "type": "string", + "format": "date-time", + "description": "To date for log collection.", + "readOnly": true + }, + "reportedProperties": { + "$ref": "#/definitions/LogCollectionReportedProperties", + "description": "log collection job reported properties.", + "readOnly": true + } + }, + "required": [ + "fromDate", + "toDate" + ], + "allOf": [ + { + "$ref": "#/definitions/HciEdgeDeviceJobProperties" + } + ], + "x-ms-discriminator-value": "CollectLog" + }, + "HciEdgeDevice": { + "type": "object", + "description": "Arc-enabled edge device with HCI OS.", + "properties": { + "properties": { + "$ref": "#/definitions/HciEdgeDeviceProperties", + "description": "properties for Arc-enabled edge device with HCI OS." + } + }, + "allOf": [ + { + "$ref": "#/definitions/EdgeDevice" + } + ], + "x-ms-discriminator-value": "HCI" + }, + "HciEdgeDeviceAdapterPropertyOverrides": { + "type": "object", + "description": "The AdapterPropertyOverrides of a cluster.", + "properties": { + "jumboPacket": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "readOnly": true + }, + "networkDirect": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "readOnly": true + }, + "networkDirectTechnology": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. Expected values are 'iWARP', 'RoCEv2', 'RoCE'", + "readOnly": true + } + } + }, + "HciEdgeDeviceArcExtension": { + "type": "object", + "description": "Arc extension installed on edge device.", + "properties": { + "extensionName": { + "type": "string", + "description": "Arc extension name installed on edge device.", + "readOnly": true + }, + "state": { + "$ref": "#/definitions/ArcExtensionState", + "description": "Arc extension state from arc machine extension.", + "readOnly": true + }, + "errorDetails": { + "type": "array", + "description": "Error details while installing Arc extension.", + "items": { + "$ref": "#/definitions/HciValidationFailureDetail" + }, + "readOnly": true, + "x-ms-identifiers": [] + }, + "extensionResourceId": { + "type": "string", + "format": "arm-id", + "description": "Arc Extension Azure resource id.", + "readOnly": true + }, + "typeHandlerVersion": { + "type": "string", + "description": "Extension version installed.", + "readOnly": true + }, + "managedBy": { + "$ref": "#/definitions/ExtensionManagedBy", + "description": "Indicates whether the extension is managed by the user or by Azure.", + "readOnly": true + } + } + }, + "HciEdgeDeviceHostNetwork": { + "type": "object", + "description": "The HostNetwork of a cluster.", + "properties": { + "intents": { + "type": "array", + "description": "The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.", + "items": { + "$ref": "#/definitions/HciEdgeDeviceIntents" + }, + "readOnly": true, + "x-ms-identifiers": [ + "intentName" + ] + }, + "storageNetworks": { + "type": "array", + "description": "List of StorageNetworks config to deploy AzureStackHCI Cluster.", + "items": { + "$ref": "#/definitions/HciEdgeDeviceStorageNetworks" + }, + "readOnly": true, + "x-ms-identifiers": [ + "networkAdapterName" + ] + }, + "storageConnectivitySwitchless": { + "type": "boolean", + "description": "Defines how the storage adapters between nodes are connected either switch or switch less.", + "readOnly": true + }, + "enableStorageAutoIp": { + "type": "boolean", + "description": "Optional parameter required only for 3 Nodes Switchless deployments. This allows users to specify IPs and Mask for Storage NICs when Network ATC is not assigning the IPs for storage automatically.", + "default": false, + "readOnly": true + } + } + }, + "HciEdgeDeviceIntents": { + "type": "object", + "description": "The Intents of a cluster.", + "properties": { + "scope": { + "type": "integer", + "format": "int64", + "description": "Scope for host network intent.", + "readOnly": true + }, + "intentType": { + "type": "integer", + "format": "int64", + "description": "IntentType for host network intent.", + "readOnly": true + }, + "isComputeIntentSet": { + "type": "boolean", + "description": "IsComputeIntentSet for host network intent.", + "readOnly": true + }, + "isStorageIntentSet": { + "type": "boolean", + "description": "IsStorageIntentSet for host network intent.", + "readOnly": true + }, + "isOnlyStorage": { + "type": "boolean", + "description": "IntentType for host network intent.", + "readOnly": true + }, + "isManagementIntentSet": { + "type": "boolean", + "description": "IsManagementIntentSet for host network intent.", + "readOnly": true + }, + "isStretchIntentSet": { + "type": "boolean", + "description": "IsStretchIntentSet for host network intent.", + "readOnly": true + }, + "isOnlyStretch": { + "type": "boolean", + "description": "IsOnlyStretch for host network intent.", + "readOnly": true + }, + "isNetworkIntentType": { + "type": "boolean", + "description": "IsNetworkIntentType for host network intent.", + "readOnly": true + }, + "intentName": { + "type": "string", + "description": "Name of the network intent you wish to create.", + "readOnly": true + }, + "intentAdapters": { + "type": "array", + "description": "Array of adapters used for the network intent.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "overrideVirtualSwitchConfiguration": { + "type": "boolean", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "readOnly": true + }, + "virtualSwitchConfigurationOverrides": { + "$ref": "#/definitions/HciEdgeDeviceVirtualSwitchConfigurationOverrides", + "description": "Set virtualSwitch ConfigurationOverrides for cluster.", + "readOnly": true + }, + "overrideQosPolicy": { + "type": "boolean", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "readOnly": true + }, + "qosPolicyOverrides": { + "$ref": "#/definitions/QosPolicyOverrides", + "description": "Set QoS PolicyOverrides for cluster.", + "readOnly": true + }, + "overrideAdapterProperty": { + "type": "boolean", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "readOnly": true + }, + "adapterPropertyOverrides": { + "$ref": "#/definitions/HciEdgeDeviceAdapterPropertyOverrides", + "description": "Set Adapter PropertyOverrides for cluster.", + "readOnly": true + } + } + }, + "HciEdgeDeviceJob": { + "type": "object", + "description": "Edge device job for Azure Stack HCI solution.", + "properties": { + "properties": { + "$ref": "#/definitions/HciEdgeDeviceJobProperties", + "description": "HCI Edge device job properties" + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "#/definitions/EdgeDeviceJob" + } + ], + "x-ms-discriminator-value": "HCI" + }, + "HciEdgeDeviceJobProperties": { + "type": "object", + "description": "HCI Edge device job properties", + "properties": { + "deploymentMode": { + "$ref": "#/definitions/DeploymentMode", + "description": "Deployment mode to trigger job." + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Job provisioning state", + "readOnly": true + }, + "jobId": { + "type": "string", + "description": "Unique, immutable job id.", + "readOnly": true + }, + "startTimeUtc": { + "type": "string", + "format": "date-time", + "description": "The UTC date and time at which the job started.", + "readOnly": true + }, + "endTimeUtc": { + "type": "string", + "format": "date-time", + "description": "The UTC date and time at which the job completed.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/JobStatus", + "description": "Status of Edge device job.", + "readOnly": true + }, + "jobType": { + "$ref": "#/definitions/HciEdgeDeviceJobType", + "description": "Job Type to support polymorphic resource.", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "discriminator": "jobType", + "required": [ + "jobType" + ] + }, + "HciEdgeDeviceJobType": { + "type": "string", + "description": "Job Type supported.", + "enum": [ + "CollectLog", + "RemoteSupport" + ], + "x-ms-enum": { + "name": "HciEdgeDeviceJobType", + "modelAsString": true, + "values": [ + { + "name": "CollectLog", + "value": "CollectLog", + "description": "Job to collect logs from the device." + }, + { + "name": "RemoteSupport", + "value": "RemoteSupport", + "description": "Job to provide remote support to the device." + } + ] + } + }, + "HciEdgeDeviceProperties": { + "type": "object", + "description": "properties for Arc-enabled edge device with HCI OS.", + "properties": { + "reportedProperties": { + "$ref": "#/definitions/HciReportedProperties", + "description": "The instance view of all current configurations on HCI device.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/EdgeDeviceProperties" + } + ] + }, + "HciEdgeDeviceStorageAdapterIPInfo": { + "type": "object", + "description": "The StorageAdapter physical nodes of a cluster.", + "properties": { + "physicalNode": { + "type": "string", + "description": "storage adapter physical node name.", + "readOnly": true + }, + "ipv4Address": { + "type": "string", + "description": "The IPv4 address assigned to each storage adapter physical node on your Azure Stack HCI cluster.", + "readOnly": true + }, + "subnetMask": { + "type": "string", + "description": "The SubnetMask address assigned to each storage adapter physical node on your Azure Stack HCI cluster.", + "readOnly": true + } + } + }, + "HciEdgeDeviceStorageNetworks": { + "type": "object", + "description": "The StorageNetworks of a cluster.", + "properties": { + "name": { + "type": "string", + "description": "Name of the storage network.", + "readOnly": true + }, + "networkAdapterName": { + "type": "string", + "description": "Name of the storage network adapter.", + "readOnly": true + }, + "storageVlanId": { + "type": "string", + "description": "ID specified for the VLAN storage network. This setting is applied to the network interfaces that route the storage and VM migration traffic.", + "readOnly": true + }, + "storageAdapterIPInfo": { + "type": "array", + "description": "List of Storage adapter physical nodes config to deploy AzureStackHCI Cluster.", + "items": { + "$ref": "#/definitions/HciEdgeDeviceStorageAdapterIPInfo" + }, + "readOnly": true, + "x-ms-identifiers": [ + "physicalNode" + ] + } + } + }, + "HciEdgeDeviceVirtualSwitchConfigurationOverrides": { + "type": "object", + "description": "The VirtualSwitchConfigurationOverrides of a cluster.", + "properties": { + "enableIov": { + "type": "string", + "description": "Enable IoV for Virtual Switch", + "readOnly": true + }, + "loadBalancingAlgorithm": { + "type": "string", + "description": "Load Balancing Algorithm for Virtual Switch", + "readOnly": true + } + } + }, + "HciHardwareProfile": { + "type": "object", + "description": "Hardware configurations for HCI device.", + "properties": { + "processorType": { + "type": "string", + "description": "Process type of the device", + "readOnly": true + } + } + }, + "HciNetworkProfile": { + "type": "object", + "description": "The network profile of a device.", + "properties": { + "nicDetails": { + "type": "array", + "description": "List of NIC Details of device.", + "items": { + "$ref": "#/definitions/HciNicDetail" + }, + "readOnly": true, + "x-ms-identifiers": [ + "adapterName" + ] + }, + "switchDetails": { + "type": "array", + "description": "List of switch details for edge device.", + "items": { + "$ref": "#/definitions/SwitchDetail" + }, + "readOnly": true, + "x-ms-identifiers": [ + "switchName" + ] + }, + "hostNetwork": { + "$ref": "#/definitions/HciEdgeDeviceHostNetwork", + "description": "HostNetwork config to deploy AzureStackHCI Cluster.", + "readOnly": true + } + } + }, + "HciNicDetail": { + "type": "object", + "description": "The NIC Detail of a device.", + "properties": { + "adapterName": { + "type": "string", + "description": "Adapter Name of NIC", + "readOnly": true + }, + "interfaceDescription": { + "type": "string", + "description": "Interface Description of NIC", + "readOnly": true + }, + "componentId": { + "type": "string", + "description": "Component Id of NIC", + "readOnly": true + }, + "driverVersion": { + "type": "string", + "description": "Driver Version of NIC", + "readOnly": true + }, + "ip4Address": { + "type": "string", + "description": "Subnet Mask of NIC", + "readOnly": true + }, + "subnetMask": { + "type": "string", + "description": "Subnet Mask of NIC", + "readOnly": true + }, + "defaultGateway": { + "type": "string", + "description": "Default Gateway of NIC", + "readOnly": true + }, + "dnsServers": { + "type": "array", + "description": "DNS Servers for NIC", + "items": { + "type": "string" + }, + "readOnly": true + }, + "defaultIsolationId": { + "type": "string", + "description": "Default Isolation of Management NIC", + "readOnly": true + }, + "macAddress": { + "type": "string", + "description": "MAC address information of NIC.", + "readOnly": true + }, + "slot": { + "type": "string", + "description": "The slot attached to the NIC.", + "readOnly": true + }, + "switchName": { + "type": "string", + "description": "The switch attached to the NIC, if any.", + "readOnly": true + }, + "nicType": { + "type": "string", + "description": "The type of NIC, physical, virtual, management.", + "readOnly": true + }, + "vlanId": { + "type": "string", + "description": "The VLAN ID of the physical NIC.", + "readOnly": true + }, + "nicStatus": { + "type": "string", + "description": "The status of NIC, up, disconnected.", + "readOnly": true + }, + "rdmaCapability": { + "type": "string", + "description": "Describes the RDMA capability of the network adapter.", + "default": "Disabled", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "RdmaCapability", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Network Adapter on the device is RDMA Capable" + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Network Adapter on the device is RDMA Capable" + } + ] + }, + "readOnly": true + } + } + }, + "HciOsProfile": { + "type": "object", + "description": "OS configurations for HCI device.", + "properties": { + "bootType": { + "type": "string", + "description": "The boot type of the device. e.g. UEFI, Legacy etc", + "readOnly": true + }, + "assemblyVersion": { + "type": "string", + "description": "Version of assembly present on device", + "readOnly": true + } + } + }, + "HciRemoteSupportJobProperties": { + "type": "object", + "description": "Represents the properties of a remote support job for HCI.", + "properties": { + "accessLevel": { + "$ref": "#/definitions/RemoteSupportAccessLevel", + "description": "Remote support access level." + }, + "expirationTimestamp": { + "type": "string", + "format": "date-time", + "description": "Remote support expiration timestamp." + }, + "type": { + "$ref": "#/definitions/RemoteSupportType", + "description": "Remote support type." + }, + "reportedProperties": { + "$ref": "#/definitions/RemoteSupportJobReportedProperties", + "description": "log collection job reported properties.", + "readOnly": true + } + }, + "required": [ + "accessLevel", + "expirationTimestamp", + "type" + ], + "allOf": [ + { + "$ref": "#/definitions/HciEdgeDeviceJobProperties" + } + ], + "x-ms-discriminator-value": "RemoteSupport" + }, + "HciReportedProperties": { + "type": "object", + "description": "The device Configuration for HCI device.", + "properties": { + "networkProfile": { + "$ref": "#/definitions/HciNetworkProfile", + "description": "HCI device network information.", + "readOnly": true + }, + "osProfile": { + "$ref": "#/definitions/HciOsProfile", + "description": "HCI device OS specific information.", + "readOnly": true + }, + "sbeDeploymentPackageInfo": { + "$ref": "#/definitions/SbeDeploymentPackageInfo", + "description": "Solution builder extension (SBE) deployment package information.", + "readOnly": true + }, + "storageProfile": { + "$ref": "#/definitions/HciStorageProfile", + "description": "Hci device storage specific information.", + "readOnly": true + }, + "hardwareProfile": { + "$ref": "#/definitions/HciHardwareProfile", + "description": "Hci device hardware specific information.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ReportedProperties" + } + ] + }, + "HciStorageProfile": { + "type": "object", + "description": "Storage configurations for HCI device.", + "properties": { + "poolableDisksCount": { + "type": "integer", + "format": "int64", + "description": "Number of storage disks in the device with $CanPool as true.", + "readOnly": true + } + } + }, + "HciValidationFailureDetail": { + "type": "object", + "description": "details of validation failure", + "properties": { + "exception": { + "type": "string", + "description": "Exception details while installing extension.", + "readOnly": true + } + } + }, + "HealthState": { + "type": "string", + "description": "Overall health state for update-specific health checks. Indicates whether the system is functioning correctly, has warnings or errors, or is undergoing a health evaluation.", + "enum": [ + "Unknown", + "Success", + "Failure", + "Warning", + "Error", + "InProgress" + ], + "x-ms-enum": { + "name": "HealthState", + "modelAsString": true, + "values": [ + { + "name": "Unknown", + "value": "Unknown", + "description": "The health state is not known or cannot be determined." + }, + { + "name": "Success", + "value": "Success", + "description": "The health check completed successfully and the system is healthy." + }, + { + "name": "Failure", + "value": "Failure", + "description": "The health check failed, indicating a critical issue." + }, + { + "name": "Warning", + "value": "Warning", + "description": "The health check detected a non-critical issue that may require attention." + }, + { + "name": "Error", + "value": "Error", + "description": "An error occurred during the health check process." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "The health check is currently in progress." + } + ] + } + }, + "IdentityProvider": { + "type": "string", + "description": "Identity Provider for the cluster", + "enum": [ + "ActiveDirectory", + "LocalIdentity" + ], + "x-ms-enum": { + "name": "IdentityProvider", + "modelAsString": true, + "values": [ + { + "name": "ActiveDirectory", + "value": "ActiveDirectory", + "description": "Uses Active Directory as the identity provider, enabling domain-based authentication and centralized identity management. This is the default option." + }, + { + "name": "LocalIdentity", + "value": "LocalIdentity", + "description": "Uses a local identity system integrated with Azure Key Vault for authentication. Suitable for AD-less environments where Active Directory is not available or required." + } + ] + } + }, + "ImdsAttestation": { + "type": "string", + "description": "IMDS attestation status of the cluster.", + "enum": [ + "Disabled", + "Enabled" + ], + "x-ms-enum": { + "name": "ImdsAttestation", + "modelAsString": true, + "values": [ + { + "name": "Disabled", + "value": "Disabled", + "description": "IMDS attestation is disabled for the cluster." + }, + { + "name": "Enabled", + "value": "Enabled", + "description": "IMDS attestation is enabled for the cluster." + } + ] + } + }, + "InfrastructureNetwork": { + "type": "object", + "description": "The InfrastructureNetwork of a AzureStackHCI Cluster.", + "properties": { + "subnetMask": { + "type": "string", + "description": "Subnet mask that matches the provided IP address space." + }, + "gateway": { + "type": "string", + "description": "Default gateway that should be used for the provided IP address space." + }, + "ipPools": { + "type": "array", + "description": "Range of IP addresses from which addresses are allocated for nodes within a subnet.", + "items": { + "$ref": "#/definitions/IpPools" + }, + "x-ms-identifiers": [] + }, + "dnsServerConfig": { + "type": "string", + "description": "Specifies how DNS servers are configured for the infrastructure network. Allowed values are 'UseDnsServer' to use the provided DNS servers, and 'UseForwarder' to use DNS forwarders.", + "default": "UseDnsServer", + "enum": [ + "UseDnsServer", + "UseForwarder" + ], + "x-ms-enum": { + "name": "DnsServerConfig", + "modelAsString": true, + "values": [ + { + "name": "UseDnsServer", + "value": "UseDnsServer", + "description": "Use the provided DNS servers for the infrastructure network." + }, + { + "name": "UseForwarder", + "value": "UseForwarder", + "description": "Use DNS forwarders for the infrastructure network." + } + ] + } + }, + "dnsZones": { + "type": "array", + "description": "Details of the DNS Zones to be configured.", + "items": { + "$ref": "#/definitions/DnsZones" + }, + "x-ms-identifiers": [ + "dnsZoneName" + ] + }, + "dnsServers": { + "type": "array", + "description": "IPv4 address of the DNS servers in your environment.", + "items": { + "type": "string" + } + }, + "useDhcp": { + "type": "boolean", + "description": "Allows customers to use DHCP for Hosts and Cluster IPs. If not declared, the deployment will default to static IPs. When true, GW and DNS servers are not required" + } + } + }, + "IpPools": { + "type": "object", + "description": "The dnsServers of a device.", + "properties": { + "startingAddress": { + "type": "string", + "description": "Starting IP address for the management network. A minimum of six free, contiguous IPv4 addresses (excluding your host IPs) are needed for infrastructure services such as clustering." + }, + "endingAddress": { + "type": "string", + "description": "Ending IP address for the management network. A minimum of six free, contiguous IPv4 addresses (excluding your host IPs) are needed for infrastructure services such as clustering." + } + } + }, + "IsolatedVmAttestationConfiguration": { + "type": "object", + "description": "Attestation configurations for isolated VM (e.g. TVM, CVM) of the cluster.", + "properties": { + "attestationResourceId": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified Azure resource id of the Microsoft Azure attestation resource associated with this cluster.", + "readOnly": true, + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Attestation/attestationProviders", + "scopes": [ + "Tenant" + ] + } + ] + } + }, + "relyingPartyServiceEndpoint": { + "type": "string", + "description": "Region specific endpoint for relying party service.", + "readOnly": true + }, + "attestationServiceEndpoint": { + "type": "string", + "description": "Region specific endpoint for Microsoft Azure Attestation service for the cluster", + "readOnly": true + } + } + }, + "JobReportedProperties": { + "type": "object", + "description": "Reported Properties for job triggered from cloud.", + "properties": { + "percentComplete": { + "type": "integer", + "format": "int32", + "description": "The percentage of the job that is complete.", + "readOnly": true + }, + "validationStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Validation status of job.", + "readOnly": true + }, + "deploymentStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Deployment status of job.", + "readOnly": true + } + } + }, + "JobStatus": { + "type": "string", + "description": "Represents the various statuses a job can have throughout its lifecycle.", + "enum": [ + "NotSpecified", + "ValidationInProgress", + "ValidationSuccess", + "ValidationFailed", + "DeploymentInProgress", + "DeploymentFailed", + "DeploymentSuccess", + "Succeeded", + "Failed", + "Canceled", + "Paused", + "Scheduled" + ], + "x-ms-enum": { + "name": "JobStatus", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The job status has not been specified." + }, + { + "name": "ValidationInProgress", + "value": "ValidationInProgress", + "description": "The job is currently undergoing validation." + }, + { + "name": "ValidationSuccess", + "value": "ValidationSuccess", + "description": "The job has successfully passed validation." + }, + { + "name": "ValidationFailed", + "value": "ValidationFailed", + "description": "The job has failed validation." + }, + { + "name": "DeploymentInProgress", + "value": "DeploymentInProgress", + "description": "The job's deployment is currently in progress." + }, + { + "name": "DeploymentFailed", + "value": "DeploymentFailed", + "description": "The job's deployment has failed." + }, + { + "name": "DeploymentSuccess", + "value": "DeploymentSuccess", + "description": "The job has been successfully deployed." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The job has succeeded." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The job has failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "The job has been canceled." + }, + { + "name": "Paused", + "value": "Paused", + "description": "The job is paused." + }, + { + "name": "Scheduled", + "value": "Scheduled", + "description": "The job is scheduled to run." + } + ] + }, + "readOnly": true + }, + "KubernetesVersion": { + "type": "object", + "description": "Represents a kubernetes version resource.", + "properties": { + "properties": { + "$ref": "#/definitions/KubernetesVersionProperties", + "description": "The resource-specific properties for this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "KubernetesVersionListResult": { + "type": "object", + "description": "The response of a KubernetesVersion list operation.", + "properties": { + "value": { + "type": "array", + "description": "The KubernetesVersion items on this page", + "items": { + "$ref": "#/definitions/KubernetesVersion" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "KubernetesVersionProperties": { + "type": "object", + "description": "Represents properties of a kubernetes version.", + "properties": { + "version": { + "type": "string", + "description": "Represents kubernetes version." + } + }, + "required": [ + "version" + ] + }, + "LocalAvailabilityZones": { + "type": "object", + "description": "Local Availability Zone information for HCI cluster", + "properties": { + "localAvailabilityZoneName": { + "type": "string", + "description": "Local Availability Zone name for HCI cluster" + }, + "nodes": { + "type": "array", + "description": "Nodes belonging to a particular zone", + "items": { + "type": "string" + } + } + } + }, + "LogCollectionError": { + "type": "object", + "description": "Log Collection Error details of the cluster.", + "properties": { + "errorCode": { + "type": "string", + "description": "Error Code of the log collection", + "readOnly": true + }, + "errorMessage": { + "type": "string", + "description": "Error Message of the log collection", + "readOnly": true + } + } + }, + "LogCollectionJobSession": { + "type": "object", + "description": "Represents a session for collecting logs from an edge device.", + "properties": { + "startTime": { + "type": "string", + "description": "The timestamp when log collection started, in ISO 8601 format.", + "readOnly": true + }, + "endTime": { + "type": "string", + "description": "The timestamp when log collection ended, in ISO 8601 format.", + "readOnly": true + }, + "timeCollected": { + "type": "string", + "description": "The total time logs were collected for, in ISO 8601 duration format.", + "readOnly": true + }, + "logSize": { + "type": "integer", + "format": "int32", + "description": "The size of the collected logs in bytes.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/DeviceLogCollectionStatus", + "description": "The status of the log collection session.", + "readOnly": true + }, + "correlationId": { + "type": "string", + "description": "A unique identifier for correlating this log collection session with other operations or sessions.", + "readOnly": true + } + } + }, + "LogCollectionJobType": { + "type": "string", + "description": "Specifies the type of log collection job. Determines whether the logs are collected immediately on demand or as part of a scheduled operation.", + "enum": [ + "OnDemand", + "Scheduled" + ], + "x-ms-enum": { + "name": "LogCollectionJobType", + "modelAsString": true, + "values": [ + { + "name": "OnDemand", + "value": "OnDemand", + "description": "Log collection is triggered manually and executed immediately." + }, + { + "name": "Scheduled", + "value": "Scheduled", + "description": "Log collection is scheduled to run at a predefined time or interval." + } + ] + } + }, + "LogCollectionProperties": { + "type": "object", + "description": "Log Collection properties of the cluster.", + "properties": { + "fromDate": { + "type": "string", + "format": "date-time", + "description": "From DateTimeStamp from when logs need to be connected", + "readOnly": true + }, + "toDate": { + "type": "string", + "format": "date-time", + "description": "To DateTimeStamp till when logs need to be connected", + "readOnly": true + }, + "lastLogGenerated": { + "type": "string", + "format": "date-time", + "description": "Recent DateTimeStamp where logs are successfully generated", + "readOnly": true + }, + "logCollectionSessionDetails": { + "type": "array", + "items": { + "$ref": "#/definitions/LogCollectionSession" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "LogCollectionReportedProperties": { + "type": "object", + "description": "Represents the reported properties of a log collection job.", + "properties": { + "percentComplete": { + "type": "integer", + "format": "int32", + "description": "The percentage of the job that is complete.", + "readOnly": true + }, + "validationStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Validation status of job.", + "readOnly": true + }, + "deploymentStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Deployment status of job.", + "readOnly": true + }, + "logCollectionSessionDetails": { + "type": "array", + "description": "Details of the log collection session.", + "items": { + "$ref": "#/definitions/LogCollectionJobSession" + }, + "readOnly": true, + "x-ms-identifiers": [ + "correlationId" + ] + } + } + }, + "LogCollectionRequest": { + "type": "object", + "description": "Log Collection Request", + "properties": { + "properties": { + "$ref": "#/definitions/LogCollectionRequestProperties", + "description": "Properties for Log Collection Request" + } + } + }, + "LogCollectionRequestProperties": { + "type": "object", + "description": "Properties for Log Collection Request", + "properties": { + "fromDate": { + "type": "string", + "format": "date-time", + "description": "From DateTimeStamp from when logs need to be connected" + }, + "toDate": { + "type": "string", + "format": "date-time", + "description": "To DateTimeStamp till when logs need to be connected" + } + }, + "required": [ + "fromDate", + "toDate" + ] + }, + "LogCollectionSession": { + "type": "object", + "description": "Log Collection Session details of the cluster.", + "properties": { + "logStartTime": { + "type": "string", + "format": "date-time", + "description": "Start Time of the logs when it was collected", + "readOnly": true + }, + "logEndTime": { + "type": "string", + "format": "date-time", + "description": "End Time of the logs when it was collected", + "readOnly": true + }, + "timeCollected": { + "type": "string", + "format": "date-time", + "description": "Duration of logs collected", + "readOnly": true + }, + "logSize": { + "type": "integer", + "format": "int64", + "description": "Size of the logs collected", + "readOnly": true + }, + "logCollectionStatus": { + "$ref": "#/definitions/LogCollectionStatus", + "description": "LogCollection status", + "readOnly": true + }, + "correlationId": { + "type": "string", + "description": "CorrelationId of the log collection", + "readOnly": true + }, + "logCollectionJobType": { + "$ref": "#/definitions/LogCollectionJobType", + "description": "Specifies the type of log collection job. Determines whether the logs are collected immediately on demand or as part of a scheduled operation.", + "readOnly": true + }, + "endTimeCollected": { + "type": "string", + "format": "date-time", + "description": "End Time of the logs when it was collected", + "readOnly": true + }, + "logCollectionError": { + "$ref": "#/definitions/LogCollectionError", + "description": "Log Collection Error details of the cluster.", + "readOnly": true + } + } + }, + "LogCollectionStatus": { + "type": "string", + "description": "LogCollection status", + "enum": [ + "None", + "InProgress", + "Failed", + "Succeeded" + ], + "x-ms-enum": { + "name": "LogCollectionStatus", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "No log collection has been initiated." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "Log collection is currently in progress." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Log collection has failed." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Log collection completed successfully." + } + ] + }, + "readOnly": true + }, + "NetworkController": { + "type": "object", + "description": "network controller config for SDN Integration to deploy AzureStackHCI Cluster.", + "properties": { + "macAddressPoolStart": { + "type": "string", + "description": "macAddressPoolStart of network controller used for SDN Integration." + }, + "macAddressPoolStop": { + "type": "string", + "description": "macAddressPoolStop of network controller used for SDN Integration." + }, + "networkVirtualizationEnabled": { + "type": "boolean", + "description": "NetworkVirtualizationEnabled of network controller used for SDN Integration." + } + } + }, + "NicDetail": { + "type": "object", + "description": "The NIC Detail of a device.", + "properties": { + "adapterName": { + "type": "string", + "description": "Adapter Name of NIC" + }, + "interfaceDescription": { + "type": "string", + "description": "Interface Description of NIC" + }, + "componentId": { + "type": "string", + "description": "Component Id of NIC" + }, + "driverVersion": { + "type": "string", + "description": "Driver Version of NIC" + }, + "ip4Address": { + "type": "string", + "description": "Subnet Mask of NIC" + }, + "subnetMask": { + "type": "string", + "description": "Subnet Mask of NIC" + }, + "defaultGateway": { + "type": "string", + "description": "Default Gateway of NIC" + }, + "dnsServers": { + "type": "array", + "description": "DNS Servers for NIC", + "items": { + "type": "string" + } + }, + "defaultIsolationId": { + "type": "string", + "description": "Default Isolation of Management NIC" + } + } + }, + "NodeArcState": { + "type": "string", + "description": "State of the Arc agent in this node. Indicates the current lifecycle status of the agent, such as whether it's being provisioned, connected, updated, or has encountered an error.", + "enum": [ + "NotSpecified", + "Error", + "Succeeded", + "Canceled", + "Failed", + "Connected", + "Disconnected", + "Deleted", + "Creating", + "Updating", + "Deleting", + "Moving", + "PartiallySucceeded", + "PartiallyConnected", + "InProgress", + "Accepted", + "Provisioning", + "DisableInProgress" + ], + "x-ms-enum": { + "name": "NodeArcState", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The state is not specified." + }, + { + "name": "Error", + "value": "Error", + "description": "An error occurred during the agent's lifecycle." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The operation completed successfully." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "The operation was canceled before completion." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The operation failed." + }, + { + "name": "Connected", + "value": "Connected", + "description": "The Arc agent is connected on this node." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The Arc agent is disconnected on this node." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "The Arc agent has been deleted from this node." + }, + { + "name": "Creating", + "value": "Creating", + "description": "The Arc agent is being created on this node." + }, + { + "name": "Updating", + "value": "Updating", + "description": "The Arc agent is being updated on this node." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The Arc agent is being deleted from this node." + }, + { + "name": "Moving", + "value": "Moving", + "description": "The Arc agent is being moved on this node." + }, + { + "name": "PartiallySucceeded", + "value": "PartiallySucceeded", + "description": "The operation partially succeeded." + }, + { + "name": "PartiallyConnected", + "value": "PartiallyConnected", + "description": "The Arc agent is partially connected on this node." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "The operation is currently in progress." + }, + { + "name": "Accepted", + "value": "Accepted", + "description": "The operation has been accepted and is pending execution." + }, + { + "name": "Provisioning", + "value": "Provisioning", + "description": "The Arc agent is currently being provisioned on this node." + }, + { + "name": "DisableInProgress", + "value": "DisableInProgress", + "description": "The Arc agent is in the process of being disabled on this node." + } + ] + }, + "readOnly": true + }, + "NodeExtensionState": { + "type": "string", + "description": "State of Arc Extension in this node. Reflects the current lifecycle status of the extension on the individual node, such as whether it's being created, updated, deleted, or has encountered an error.", + "enum": [ + "NotSpecified", + "Error", + "Succeeded", + "Canceled", + "Failed", + "Connected", + "Disconnected", + "Deleted", + "Creating", + "Updating", + "Deleting", + "Moving", + "PartiallySucceeded", + "PartiallyConnected", + "InProgress", + "Accepted", + "Provisioning" + ], + "x-ms-enum": { + "name": "NodeExtensionState", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The state is not specified." + }, + { + "name": "Error", + "value": "Error", + "description": "An error occurred during the extension lifecycle." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The extension operation completed successfully." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "The extension operation was canceled." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The extension operation failed." + }, + { + "name": "Connected", + "value": "Connected", + "description": "The extension is connected on the node." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The extension is disconnected on the node." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "The extension has been deleted from the node." + }, + { + "name": "Creating", + "value": "Creating", + "description": "The extension is being created on the node." + }, + { + "name": "Updating", + "value": "Updating", + "description": "The extension is being updated on the node." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The extension is being deleted from the node." + }, + { + "name": "Moving", + "value": "Moving", + "description": "The extension is being moved on the node." + }, + { + "name": "PartiallySucceeded", + "value": "PartiallySucceeded", + "description": "The extension operation partially succeeded." + }, + { + "name": "PartiallyConnected", + "value": "PartiallyConnected", + "description": "The extension is partially connected on the node." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "The extension operation is currently in progress." + }, + { + "name": "Accepted", + "value": "Accepted", + "description": "The extension operation has been accepted and is pending execution." + }, + { + "name": "Provisioning", + "value": "Provisioning", + "description": "The extension is currently being provisioned on the node." + } + ] + }, + "readOnly": true + }, + "Observability": { + "type": "object", + "description": "The Observability of AzureStackHCI Cluster.", + "properties": { + "streamingDataClient": { + "type": "boolean", + "description": "Enables telemetry data to be sent to Microsoft", + "default": true + }, + "euLocation": { + "type": "boolean", + "description": "Location of your cluster. The log and diagnostic data is sent to the appropriate diagnostics servers depending upon where your cluster resides. Setting this to false results in all data sent to Microsoft to be stored outside of the EU.", + "default": false + }, + "episodicDataUpload": { + "type": "boolean", + "description": "When set to true, collects log data to facilitate quicker issue resolution.", + "default": true + } + } + }, + "OemActivation": { + "type": "string", + "description": "OEM activation status of the cluster.", + "enum": [ + "Disabled", + "Enabled" + ], + "x-ms-enum": { + "name": "OemActivation", + "modelAsString": true, + "values": [ + { + "name": "Disabled", + "value": "Disabled", + "description": "OEM activation is disabled for the cluster." + }, + { + "name": "Enabled", + "value": "Enabled", + "description": "OEM activation is enabled for the cluster." + } + ] + } + }, + "Offer": { + "type": "object", + "description": "Offer details.", + "properties": { + "properties": { + "$ref": "#/definitions/OfferProperties", + "description": "Offer properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "OfferList": { + "type": "object", + "description": "List of Offer proxy resources for the HCI cluster.", + "properties": { + "value": { + "type": "array", + "description": "The Offer items on this page", + "items": { + "$ref": "#/definitions/Offer" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "OfferProperties": { + "type": "object", + "description": "Publisher properties.", + "properties": { + "provisioningState": { + "type": "string", + "description": "Provisioning State", + "readOnly": true + }, + "publisherId": { + "type": "string", + "description": "Identifier of the Publisher for the offer" + }, + "content": { + "type": "string", + "description": "JSON serialized catalog content of the offer" + }, + "contentVersion": { + "type": "string", + "description": "The API version of the catalog service used to serve the catalog content" + }, + "skuMappings": { + "type": "array", + "description": "Array of SKU mappings", + "items": { + "$ref": "#/definitions/SkuMappings" + }, + "x-ms-identifiers": [] + } + } + }, + "OperationType": { + "type": "string", + "description": "The intended operation for a cluster.", + "enum": [ + "ClusterProvisioning", + "ClusterUpgrade" + ], + "x-ms-enum": { + "name": "OperationType", + "modelAsString": true, + "values": [ + { + "name": "ClusterProvisioning", + "value": "ClusterProvisioning", + "description": "Cluster provisioning operation." + }, + { + "name": "ClusterUpgrade", + "value": "ClusterUpgrade", + "description": "Cluster upgrade operation." + } + ] + } + }, + "OptionalServices": { + "type": "object", + "description": "The OptionalServices of AzureStackHCI Cluster.", + "properties": { + "customLocation": { + "type": "string", + "description": "The name of custom location." + } + } + }, + "OsImage": { + "type": "object", + "description": "Represents a os image resource.", + "properties": { + "properties": { + "$ref": "#/definitions/OsImageProperties", + "description": "The resource-specific properties for this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "OsImageListResult": { + "type": "object", + "description": "The response of a OsImage list operation.", + "properties": { + "value": { + "type": "array", + "description": "The OsImage items on this page", + "items": { + "$ref": "#/definitions/OsImage" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "OsImageProperties": { + "type": "object", + "description": "Represents properties of a os image resource.", + "properties": { + "validatedSolutionRecipeVersion": { + "type": "string", + "description": "Represents validated solution recipe version of a os image." + }, + "composedImageVersion": { + "type": "string", + "description": "Represents composed image version of a os image." + }, + "composedImageIsoUrl": { + "type": "string", + "description": "Represents composed image iso download url of a os image." + }, + "composedImageIsoHash": { + "type": "string", + "description": "Represents composed image iso hash of a os image." + } + } + }, + "PackageVersionInfo": { + "type": "object", + "description": "Current version of each updatable component.", + "properties": { + "packageType": { + "type": "string", + "description": "Package type" + }, + "version": { + "type": "string", + "description": "Package version" + }, + "lastUpdated": { + "type": "string", + "format": "date-time", + "description": "Last time this component was updated." + } + } + }, + "PasswordCredential": { + "type": "object", + "properties": { + "secretText": { + "type": "string" + }, + "keyId": { + "type": "string" + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + } + } + }, + "PerNodeExtensionState": { + "type": "object", + "description": "Status of Arc Extension for a particular node in HCI Cluster.", + "properties": { + "name": { + "type": "string", + "description": "Name of the node in HCI Cluster.", + "readOnly": true + }, + "extension": { + "type": "string", + "description": "Fully qualified resource ID for the particular Arc Extension on this node.", + "readOnly": true + }, + "typeHandlerVersion": { + "type": "string", + "description": "Specifies the version of the script handler.", + "readOnly": true + }, + "state": { + "$ref": "#/definitions/NodeExtensionState", + "description": "State of Arc Extension in this node. Reflects the current lifecycle status of the extension on the individual node, such as whether it's being created, updated, deleted, or has encountered an error.", + "readOnly": true + }, + "instanceView": { + "$ref": "#/definitions/ExtensionInstanceView", + "description": "The extension instance view.", + "readOnly": true + } + } + }, + "PerNodeRemoteSupportSession": { + "type": "object", + "description": "Remote Support Node Session Details on the Node.", + "properties": { + "sessionStartTime": { + "type": "string", + "format": "date-time", + "description": "Remote Support Session StartTime on the Node", + "readOnly": true + }, + "sessionEndTime": { + "type": "string", + "format": "date-time", + "description": "Remote Support Session EndTime on the Node", + "readOnly": true + }, + "nodeName": { + "type": "string", + "description": "Name of the node", + "readOnly": true + }, + "duration": { + "type": "integer", + "format": "int64", + "description": "Duration of Remote Support Enablement", + "readOnly": true + }, + "accessLevel": { + "$ref": "#/definitions/AccessLevel", + "description": "Remote Support Access Level", + "readOnly": true + } + } + }, + "PerNodeState": { + "type": "object", + "description": "Status of Arc agent for a particular node in HCI Cluster.", + "properties": { + "name": { + "type": "string", + "description": "Name of the Node in HCI Cluster", + "readOnly": true + }, + "arcInstance": { + "type": "string", + "description": "Fully qualified resource ID for the Arc agent of this node.", + "readOnly": true + }, + "arcNodeServicePrincipalObjectId": { + "type": "string", + "description": "The service principal id of the arc for server node", + "readOnly": true + }, + "state": { + "$ref": "#/definitions/NodeArcState", + "description": "State of the Arc agent in this node. Indicates the current lifecycle status of the agent, such as whether it's being provisioned, connected, updated, or has encountered an error.", + "readOnly": true + } + } + }, + "PhysicalNodes": { + "type": "object", + "description": "The PhysicalNodes of a cluster.", + "properties": { + "name": { + "type": "string", + "description": "NETBIOS name of each physical server on your Azure Stack HCI cluster." + }, + "ipv4Address": { + "type": "string", + "description": "The IPv4 address assigned to each physical server on your Azure Stack HCI cluster." + } + } + }, + "PlatformPayload": { + "type": "object", + "description": "Represents details of a specific platform update payload.", + "properties": { + "payloadUrl": { + "type": "string", + "description": "Represents url of a platform update payload." + }, + "payloadHash": { + "type": "string", + "description": "Represents hash of a platform update payload." + }, + "payloadPackageSizeInBytes": { + "type": "string", + "description": "Represents size in bytes of a platform update payload." + }, + "payloadIdentifier": { + "type": "string", + "description": "Represents identifier of a platform update payload." + } + } + }, + "PlatformUpdate": { + "type": "object", + "description": "Represents a platform update resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PlatformUpdateProperties", + "description": "The resource-specific properties for this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "PlatformUpdateDetails": { + "type": "object", + "description": "Represents details of a specific platform update.", + "properties": { + "validatedSolutionRecipeVersion": { + "type": "string", + "description": "Represents validated solution recipe version of a platform update." + }, + "platformVersion": { + "type": "string", + "description": "Represents version of a platform update." + }, + "platformPayloads": { + "type": "array", + "description": "Represents the platform payloads of a platform update.", + "items": { + "$ref": "#/definitions/PlatformPayload" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "platformPayloads" + ] + }, + "PlatformUpdateListResult": { + "type": "object", + "description": "The response of a PlatformUpdate list operation.", + "properties": { + "value": { + "type": "array", + "description": "The PlatformUpdate items on this page", + "items": { + "$ref": "#/definitions/PlatformUpdate" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PlatformUpdateProperties": { + "type": "object", + "description": "Represents properties of a platform update resource.", + "properties": { + "platformUpdateDetails": { + "type": "array", + "description": "Represents applicable platform updates.", + "items": { + "$ref": "#/definitions/PlatformUpdateDetails" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "platformUpdateDetails" + ] + }, + "PrecheckResult": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the individual test/rule/alert that was executed. Unique, not exposed to the customer." + }, + "displayName": { + "type": "string", + "description": "The health check DisplayName localized of the individual test executed." + }, + "tags": { + "$ref": "#/definitions/PrecheckResultTags", + "description": "Key-value pairs that allow grouping/filtering individual tests." + }, + "healthCheckTags": { + "description": "Key-value pairs that allow grouping/filtering individual tests." + }, + "title": { + "type": "string", + "description": "User-facing name; one or more sentences indicating the direct issue." + }, + "status": { + "$ref": "#/definitions/Status", + "description": "Represents the current status of the check being performed. Indicates whether the check has completed successfully, failed, or is still in progress." + }, + "severity": { + "$ref": "#/definitions/Severity", + "description": "Indicates the importance or impact level of the result. Determines whether the result is informational, a warning, or a critical issue that may block updates." + }, + "description": { + "type": "string", + "description": "Detailed overview of the issue and what impact the issue has on the stamp." + }, + "remediation": { + "type": "string", + "description": "Set of steps that can be taken to resolve the issue found." + }, + "targetResourceID": { + "type": "string", + "description": "The unique identifier for the affected resource (such as a node or drive)." + }, + "targetResourceName": { + "type": "string", + "description": "The name of the affected resource." + }, + "targetResourceType": { + "type": "string", + "description": "The type of resource being referred to (well-known set of nouns in infrastructure, aligning with Monitoring)." + }, + "timestamp": { + "type": "string", + "format": "date-time", + "description": "The time in which the HealthCheck was called." + }, + "additionalData": { + "type": "string", + "description": "Property bag of key value pairs for additional information." + }, + "healthCheckSource": { + "type": "string", + "description": "The name of the services called for the HealthCheck (I.E. Test-AzureStack, Test-Cluster)." + } + } + }, + "PrecheckResultTags": { + "type": "object", + "description": "Key-value pairs that allow grouping/filtering individual tests.", + "properties": { + "key": { + "type": "string", + "description": "Key that allow grouping/filtering individual tests." + }, + "value": { + "type": "string", + "description": "Value of the key that allow grouping/filtering individual tests." + } + } + }, + "ProvisioningState": { + "type": "string", + "description": "Provisioning state of the ArcSetting proxy resource.", + "enum": [ + "NotSpecified", + "Error", + "Succeeded", + "Failed", + "Canceled", + "Connected", + "Disconnected", + "Deleted", + "Creating", + "Updating", + "Deleting", + "Moving", + "PartiallySucceeded", + "PartiallyConnected", + "InProgress", + "Accepted", + "Provisioning", + "DisableInProgress" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The provisioning state is not specified." + }, + { + "name": "Error", + "value": "Error", + "description": "An error occurred during provisioning." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Provisioning completed successfully." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Provisioning failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Provisioning was canceled." + }, + { + "name": "Connected", + "value": "Connected", + "description": "The resource is connected." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The resource is disconnected." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "The resource has been deleted." + }, + { + "name": "Creating", + "value": "Creating", + "description": "The resource is being created." + }, + { + "name": "Updating", + "value": "Updating", + "description": "The resource is being updated." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The resource is being deleted." + }, + { + "name": "Moving", + "value": "Moving", + "description": "The resource is being moved." + }, + { + "name": "PartiallySucceeded", + "value": "PartiallySucceeded", + "description": "Provisioning partially succeeded." + }, + { + "name": "PartiallyConnected", + "value": "PartiallyConnected", + "description": "The resource is partially connected." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "Provisioning is in progress." + }, + { + "name": "Accepted", + "value": "Accepted", + "description": "Provisioning request has been accepted." + }, + { + "name": "Provisioning", + "value": "Provisioning", + "description": "The resource is currently provisioning." + }, + { + "name": "DisableInProgress", + "value": "DisableInProgress", + "description": "The resource is being disabled." + } + ] + }, + "readOnly": true + }, + "Publisher": { + "type": "object", + "description": "Publisher details.", + "properties": { + "properties": { + "$ref": "#/definitions/PublisherProperties", + "description": "Publisher properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "PublisherList": { + "type": "object", + "description": "List of Publisher proxy resources for the HCI cluster.", + "properties": { + "value": { + "type": "array", + "description": "The Publisher items on this page", + "items": { + "$ref": "#/definitions/Publisher" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PublisherProperties": { + "type": "object", + "description": "Publisher properties.", + "properties": { + "provisioningState": { + "type": "string", + "description": "Provisioning State", + "readOnly": true + } + } + }, + "QosPolicyOverrides": { + "type": "object", + "description": "The QoSPolicyOverrides of a cluster.", + "properties": { + "priorityValue8021Action_Cluster": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." + }, + "priorityValue8021Action_SMB": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." + }, + "bandwidthPercentage_SMB": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." + } + } + }, + "RawCertificateData": { + "type": "object", + "properties": { + "certificates": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RdmaCapability": { + "type": "string", + "description": "Describes the RDMA capability of the network adapter.", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "RdmaCapability", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Network Adapter on the device is RDMA Capable" + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Network Adapter on the device is RDMA Capable" + } + ] + } + }, + "RebootRequirement": { + "type": "string", + "description": "Indicates whether a reboot is required after the update or operation. Helps determine if a system restart is necessary to complete the process.", + "enum": [ + "Unknown", + "True", + "False" + ], + "x-ms-enum": { + "name": "RebootRequirement", + "modelAsString": true, + "values": [ + { + "name": "Unknown", + "value": "Unknown", + "description": "It is not known whether a reboot is required." + }, + { + "name": "True", + "value": "True", + "description": "A reboot is required to complete the operation." + }, + { + "name": "False", + "value": "False", + "description": "No reboot is required after the operation." + } + ] + } + }, + "ReconcileArcSettingsRequest": { + "type": "object", + "description": "Request for reconciling Arc Settings.", + "properties": { + "properties": { + "$ref": "#/definitions/ReconcileArcSettingsRequestProperties", + "description": "List of Arc Nodes in the cluster" + } + } + }, + "ReconcileArcSettingsRequestProperties": { + "type": "object", + "description": "List of Arc Nodes in the cluster", + "properties": { + "clusterNodes": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "RemoteSupportAccessLevel": { + "type": "string", + "description": "Defines the level of remote support access granted.", + "enum": [ + "None", + "Diagnostics", + "DiagnosticsAndRepair" + ], + "x-ms-enum": { + "name": "RemoteSupportAccessLevel", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "No remote support access is granted." + }, + { + "name": "Diagnostics", + "value": "Diagnostics", + "description": "Access is limited to diagnostics information only." + }, + { + "name": "DiagnosticsAndRepair", + "value": "DiagnosticsAndRepair", + "description": "Access includes diagnostics information and the ability to perform repairs." + } + ] + } + }, + "RemoteSupportJobNodeSettings": { + "type": "object", + "description": "Represents the settings of a remote support node.", + "properties": { + "state": { + "type": "string", + "description": "The state of the remote support node.", + "readOnly": true + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the node settings were created, in UTC.", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the node settings were last updated, in UTC.", + "readOnly": true + }, + "connectionStatus": { + "type": "string", + "description": "The current connection status of the remote support session.", + "readOnly": true + }, + "connectionErrorMessage": { + "type": "string", + "description": "The error message, if any, from the last connection attempt.", + "readOnly": true + } + } + }, + "RemoteSupportJobProperties": { + "type": "object", + "description": "Represents the properties of a remote support job.", + "properties": { + "accessLevel": { + "$ref": "#/definitions/RemoteSupportAccessLevel", + "description": "Remote support access level." + }, + "expirationTimestamp": { + "type": "string", + "format": "date-time", + "description": "Remote support expiration timestamp." + }, + "type": { + "$ref": "#/definitions/RemoteSupportType", + "description": "Remote support type." + }, + "reportedProperties": { + "$ref": "#/definitions/RemoteSupportJobReportedProperties", + "description": "log collection job reported properties.", + "readOnly": true + } + }, + "required": [ + "accessLevel", + "expirationTimestamp", + "type" + ] + }, + "RemoteSupportJobReportedProperties": { + "type": "object", + "description": "Represents the reported properties of a remote support job.", + "properties": { + "percentComplete": { + "type": "integer", + "format": "int32", + "description": "The percentage of the job that is complete.", + "readOnly": true + }, + "validationStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Validation status of job.", + "readOnly": true + }, + "deploymentStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Deployment status of job.", + "readOnly": true + }, + "nodeSettings": { + "$ref": "#/definitions/RemoteSupportJobNodeSettings", + "description": "Optional settings for configuring the node for remote support.", + "readOnly": true + }, + "sessionDetails": { + "type": "array", + "description": "Details of the remote support session.", + "items": { + "$ref": "#/definitions/RemoteSupportSession" + }, + "readOnly": true, + "x-ms-identifiers": [ + "sessionId" + ] + } + } + }, + "RemoteSupportNodeSettings": { + "type": "object", + "description": "Remote Support Node Settings of the cluster.", + "properties": { + "arcResourceId": { + "type": "string", + "description": "Arc ResourceId of the Node", + "readOnly": true + }, + "state": { + "type": "string", + "description": "Remote Support Access Connection State on the Node", + "readOnly": true + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "Remote Support Enablement Request Created TimeStamp on the Node", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "description": "Remote Support Enablement Request Updated TimeStamp on the Node", + "readOnly": true + }, + "connectionStatus": { + "type": "string", + "description": "Remote Support Access Connection Status on the Node", + "readOnly": true + }, + "connectionErrorMessage": { + "type": "string", + "description": "Remote Support Access Connection Error Message on the Node", + "readOnly": true + }, + "transcriptLocation": { + "type": "string", + "description": "Remote Support Transcript location on the node", + "readOnly": true + } + } + }, + "RemoteSupportProperties": { + "type": "object", + "description": "Remote Support properties of the cluster.", + "properties": { + "accessLevel": { + "$ref": "#/definitions/AccessLevel", + "description": "Remote Support Access Level", + "readOnly": true + }, + "expirationTimeStamp": { + "type": "string", + "format": "date-time", + "description": "Expiration DateTimeStamp when Remote Support Access will be expired", + "readOnly": true + }, + "remoteSupportType": { + "$ref": "#/definitions/RemoteSupportType", + "description": "Remote Support Type for cluster", + "readOnly": true + }, + "remoteSupportNodeSettings": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteSupportNodeSettings" + }, + "readOnly": true, + "x-ms-identifiers": [] + }, + "remoteSupportSessionDetails": { + "type": "array", + "items": { + "$ref": "#/definitions/PerNodeRemoteSupportSession" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "RemoteSupportRequest": { + "type": "object", + "description": "Remote Support Request", + "properties": { + "properties": { + "$ref": "#/definitions/RemoteSupportRequestProperties", + "description": "Properties for Remote Support Request" + } + } + }, + "RemoteSupportRequestProperties": { + "type": "object", + "description": "Properties for Remote Support Request", + "properties": { + "accessLevel": { + "$ref": "#/definitions/AccessLevel", + "description": "Remote Support Access Level", + "readOnly": true + }, + "expirationTimeStamp": { + "type": "string", + "format": "date-time", + "description": "Expiration DateTimeStamp when Remote Support Access will be expired" + }, + "remoteSupportType": { + "$ref": "#/definitions/RemoteSupportType", + "description": "Remote Support Type for cluster" + } + } + }, + "RemoteSupportSession": { + "type": "object", + "description": "Represents a remote support session.", + "properties": { + "sessionId": { + "type": "string", + "description": "Unique session Id.", + "readOnly": true + }, + "sessionStartTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the remote support session, in UTC.", + "readOnly": true + }, + "sessionEndTime": { + "type": "string", + "format": "date-time", + "description": "The end time of the remote support session, in UTC.", + "readOnly": true + }, + "accessLevel": { + "$ref": "#/definitions/RemoteSupportAccessLevel", + "description": "The level of access granted during the remote support session.", + "readOnly": true + }, + "transcriptLocation": { + "type": "string", + "description": "The location where the session transcript is stored.", + "readOnly": true + } + } + }, + "RemoteSupportType": { + "type": "string", + "description": "Remote Support Type for cluster", + "enum": [ + "Enable", + "Revoke" + ], + "x-ms-enum": { + "name": "RemoteSupportType", + "modelAsString": true, + "values": [ + { + "name": "Enable", + "value": "Enable", + "description": "Enable remote support for the cluster." + }, + { + "name": "Revoke", + "value": "Revoke", + "description": "Revoke previously enabled remote support for the cluster." + } + ] + } + }, + "ReportedProperties": { + "type": "object", + "description": "Reported properties pushed from edge device.", + "properties": { + "deviceState": { + "$ref": "#/definitions/DeviceState", + "description": "edge device state.", + "readOnly": true + }, + "extensionProfile": { + "$ref": "#/definitions/ExtensionProfile", + "description": "Extensions details for edge device.", + "readOnly": true + } + } + }, + "SbeCredentials": { + "type": "object", + "description": "secrets used for solution builder extension (SBE) partner extensibility.", + "properties": { + "secretName": { + "type": "string", + "description": "secret name stored in keyvault." + }, + "eceSecretName": { + "type": "string", + "description": "secret name expected for Enterprise Cloud Engine (ECE)." + }, + "secretLocation": { + "type": "string", + "format": "uri", + "description": "secret URI stored in keyvault." + } + } + }, + "SbeDeploymentInfo": { + "type": "object", + "description": "Solution builder extension (SBE) package and manifest information for the solution builder extension staged for AzureStackHCI cluster deployment.", + "properties": { + "version": { + "type": "string", + "description": "SBE package version." + }, + "family": { + "type": "string", + "description": "SBE family name." + }, + "publisher": { + "type": "string", + "description": "SBE manifest publisher." + }, + "sbeManifestSource": { + "type": "string", + "description": "SBE Manifest Source." + }, + "sbeManifestCreationDate": { + "type": "string", + "format": "date-time", + "description": "SBE Manifest Creation Date." + } + } + }, + "SbeDeploymentPackageInfo": { + "type": "object", + "description": "Solution builder extension (SBE) deployment package information.", + "properties": { + "code": { + "type": "string", + "description": "SBE deployment validation code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "A detailed message that explains the SBE package validation result.", + "readOnly": true + }, + "sbeManifest": { + "type": "string", + "description": "This represents discovered update results for matching updates and store it as SBE manifest.", + "readOnly": true + } + } + }, + "SbePartnerInfo": { + "type": "object", + "description": "The solution builder extension (SBE) partner deployment info for cluster.", + "properties": { + "sbeDeploymentInfo": { + "$ref": "#/definitions/SbeDeploymentInfo", + "description": "SBE package and manifest information for the solution Builder Extension staged for AzureStackHCI cluster deployment." + }, + "partnerProperties": { + "type": "array", + "description": "List of SBE partner properties for AzureStackHCI cluster deployment.", + "items": { + "$ref": "#/definitions/SbePartnerProperties" + }, + "x-ms-identifiers": [] + }, + "credentialList": { + "type": "array", + "description": "SBE credentials list for AzureStackHCI cluster deployment.", + "items": { + "$ref": "#/definitions/SbeCredentials" + }, + "x-ms-identifiers": [ + "secretName" + ] + } + } + }, + "SbePartnerProperties": { + "type": "object", + "description": "Solution builder extension (SBE) partner properties object.", + "properties": { + "name": { + "type": "string", + "description": "SBE partner property name." + }, + "value": { + "type": "string", + "description": "SBE partner property value." + } + } + }, + "ScaleUnits": { + "type": "object", + "description": "Scale units will contains list of deployment data", + "properties": { + "deploymentData": { + "$ref": "#/definitions/DeploymentData", + "description": "Deployment Data to deploy AzureStackHCI Cluster." + }, + "sbePartnerInfo": { + "$ref": "#/definitions/SbePartnerInfo", + "description": "Solution builder extension (SBE) partner properties" + } + }, + "required": [ + "deploymentData" + ], + "externalDocs": { + "description": "Deploy Azure Stack HCI using an existing configuration file", + "url": "https://learn.microsoft.com/en-us/azure-stack/hci/deploy/deployment-tool-existing-file" + } + }, + "SdnIntegration": { + "type": "object", + "description": "SDN Integration config to deploy AzureStackHCI Cluster.", + "properties": { + "networkController": { + "$ref": "#/definitions/NetworkController", + "description": "network controller config for SDN Integration to deploy AzureStackHCI Cluster." + } + } + }, + "SecretsLocationDetails": { + "type": "object", + "description": "Secrets location details", + "properties": { + "secretsType": { + "$ref": "#/definitions/SecretsType", + "description": "Type of secrets to store" + }, + "secretsLocation": { + "type": "string", + "description": "secrets location" + } + }, + "required": [ + "secretsType", + "secretsLocation" + ] + }, + "SecretsLocationsChangeRequest": { + "type": "object", + "description": "Update secrets locations change Request.", + "properties": { + "properties": { + "type": "array", + "description": "List of secret locations", + "items": { + "$ref": "#/definitions/SecretsLocationDetails" + }, + "x-ms-identifiers": [] + } + } + }, + "SecretsType": { + "type": "string", + "description": "Type of secrets to store", + "enum": [ + "BackupSecrets" + ], + "x-ms-enum": { + "name": "SecretsType", + "modelAsString": true, + "values": [ + { + "name": "BackupSecrets", + "value": "BackupSecrets", + "description": "Backup secrets type" + } + ] + } + }, + "SecurityComplianceStatus": { + "type": "object", + "description": "Security compliance properties of the resource", + "properties": { + "securedCoreCompliance": { + "$ref": "#/definitions/ComplianceStatus", + "description": "Indicates whether HCI hosts meets secured-core server requirements.", + "readOnly": true + }, + "wdacCompliance": { + "$ref": "#/definitions/ComplianceStatus", + "description": "Indicates whether HCI hosts have enforced consistent Windows Defender Application Control.", + "readOnly": true + }, + "dataAtRestEncrypted": { + "$ref": "#/definitions/ComplianceStatus", + "description": "Indicates whether data at-rest encryption is enabled on Azure Stack HCI clustered volumes.", + "readOnly": true + }, + "dataInTransitProtected": { + "$ref": "#/definitions/ComplianceStatus", + "description": "Indicates whether HCI cluster has data in-transit protection.", + "readOnly": true + }, + "lastUpdated": { + "type": "string", + "format": "date-time", + "description": "Time in UTC when compliance status was last updated.", + "readOnly": true + } + } + }, + "SecurityProperties": { + "type": "object", + "description": "Security properties of the resource", + "properties": { + "securedCoreComplianceAssignment": { + "type": "string", + "description": "Secured Core Compliance Assignment", + "default": "Audit", + "enum": [ + "Audit", + "ApplyAndAutoCorrect" + ], + "x-ms-enum": { + "name": "ComplianceAssignmentType", + "modelAsString": true, + "values": [ + { + "name": "Audit", + "value": "Audit", + "description": "Report on the state of the machine, but don't make changes." + }, + { + "name": "ApplyAndAutoCorrect", + "value": "ApplyAndAutoCorrect", + "description": "Applied to the machine. If it drifts, the local service inside the machine makes a correction at the next evaluation." + } + ] + } + }, + "wdacComplianceAssignment": { + "type": "string", + "description": "WDAC Compliance Assignment", + "default": "Audit", + "enum": [ + "Audit", + "ApplyAndAutoCorrect" + ], + "x-ms-enum": { + "name": "ComplianceAssignmentType", + "modelAsString": true, + "values": [ + { + "name": "Audit", + "value": "Audit", + "description": "Report on the state of the machine, but don't make changes." + }, + { + "name": "ApplyAndAutoCorrect", + "value": "ApplyAndAutoCorrect", + "description": "Applied to the machine. If it drifts, the local service inside the machine makes a correction at the next evaluation." + } + ] + } + }, + "smbEncryptionForIntraClusterTrafficComplianceAssignment": { + "type": "string", + "description": "SMB encryption for intra-cluster traffic Compliance Assignment", + "default": "Audit", + "enum": [ + "Audit", + "ApplyAndAutoCorrect" + ], + "x-ms-enum": { + "name": "ComplianceAssignmentType", + "modelAsString": true, + "values": [ + { + "name": "Audit", + "value": "Audit", + "description": "Report on the state of the machine, but don't make changes." + }, + { + "name": "ApplyAndAutoCorrect", + "value": "ApplyAndAutoCorrect", + "description": "Applied to the machine. If it drifts, the local service inside the machine makes a correction at the next evaluation." + } + ] + } + }, + "securityComplianceStatus": { + "$ref": "#/definitions/SecurityComplianceStatus", + "description": "Security Compliance Status", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "The status of the last operation.", + "readOnly": true + } + } + }, + "SecuritySetting": { + "type": "object", + "description": "Security settings proxy resource", + "properties": { + "properties": { + "$ref": "#/definitions/SecurityProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true, + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "SecuritySettingListResult": { + "type": "object", + "description": "The response of a SecuritySetting list operation.", + "properties": { + "value": { + "type": "array", + "description": "The SecuritySetting items on this page", + "items": { + "$ref": "#/definitions/SecuritySetting" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ServiceConfiguration": { + "type": "object", + "description": "Service configuration details", + "properties": { + "serviceName": { + "$ref": "#/definitions/ServiceName", + "description": "Specifies the name of the service associated with the update or operation. This helps identify which system component or tool is involved." + }, + "port": { + "type": "integer", + "format": "int64", + "description": "The port on which service is enabled." + } + }, + "required": [ + "serviceName", + "port" + ] + }, + "ServiceName": { + "type": "string", + "description": "Specifies the name of the service associated with the update or operation. This helps identify which system component or tool is involved.", + "enum": [ + "WAC" + ], + "x-ms-enum": { + "name": "ServiceName", + "modelAsString": true, + "values": [ + { + "name": "WAC", + "value": "WAC", + "description": "Windows Admin Center (WAC) is the service associated with this operation." + } + ] + } + }, + "Severity": { + "type": "string", + "description": "Indicates the importance or impact level of the result. Determines whether the result is informational, a warning, or a critical issue that may block updates.", + "enum": [ + "Critical", + "Warning", + "Informational", + "Hidden" + ], + "x-ms-enum": { + "name": "Severity", + "modelAsString": true, + "values": [ + { + "name": "Critical", + "value": "Critical", + "description": "A critical issue that blocks updates and requires immediate attention." + }, + { + "name": "Warning", + "value": "Warning", + "description": "A warning that may indicate a potential issue but does not block updates." + }, + { + "name": "Informational", + "value": "Informational", + "description": "General information that does not indicate any issue." + }, + { + "name": "Hidden", + "value": "Hidden", + "description": "The result is hidden and not shown in the output." + } + ] + } + }, + "Sku": { + "type": "object", + "description": "Sku details.", + "properties": { + "properties": { + "$ref": "#/definitions/SkuProperties", + "description": "SKU properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "SkuList": { + "type": "object", + "description": "List of SKU proxy resources for the HCI cluster.", + "properties": { + "value": { + "type": "array", + "description": "The Sku items on this page", + "items": { + "$ref": "#/definitions/Sku" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "SkuMappings": { + "type": "object", + "description": "SKU Mapping details.", + "properties": { + "catalogPlanId": { + "type": "string", + "description": "Identifier of the CatalogPlan for the sku" + }, + "marketplaceSkuId": { + "type": "string", + "description": "Identifier for the sku" + }, + "marketplaceSkuVersions": { + "type": "array", + "description": "Array of SKU versions available", + "items": { + "type": "string" + } + } + } + }, + "SkuProperties": { + "type": "object", + "description": "SKU properties.", + "properties": { + "provisioningState": { + "type": "string", + "description": "Provisioning State", + "readOnly": true + }, + "publisherId": { + "type": "string", + "description": "Identifier of the Publisher for the offer" + }, + "offerId": { + "type": "string", + "description": "Identifier of the Offer for the sku" + }, + "content": { + "type": "string", + "description": "JSON serialized catalog content of the sku offer" + }, + "contentVersion": { + "type": "string", + "description": "The API version of the catalog service used to serve the catalog content" + }, + "skuMappings": { + "type": "array", + "description": "Array of SKU mappings", + "items": { + "$ref": "#/definitions/SkuMappings" + }, + "x-ms-identifiers": [] + } + } + }, + "SoftwareAssuranceChangeRequest": { + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/SoftwareAssuranceChangeRequestProperties" + } + } + }, + "SoftwareAssuranceChangeRequestProperties": { + "type": "object", + "properties": { + "softwareAssuranceIntent": { + "$ref": "#/definitions/SoftwareAssuranceIntent", + "description": "Customer Intent for Software Assurance Benefit. This indicates whether the customer wishes to opt in or out of the Software Assurance program, which provides licensing and support benefits." + } + } + }, + "SoftwareAssuranceIntent": { + "type": "string", + "description": "Customer Intent for Software Assurance Benefit.", + "enum": [ + "Enable", + "Disable" + ], + "x-ms-enum": { + "name": "SoftwareAssuranceIntent", + "modelAsString": true, + "values": [ + { + "name": "Enable", + "value": "Enable", + "description": "Customer intends to enable the Software Assurance benefit." + }, + { + "name": "Disable", + "value": "Disable", + "description": "Customer intends to disable the Software Assurance benefit." + } + ] + } + }, + "SoftwareAssuranceProperties": { + "type": "object", + "description": "Software Assurance properties of the cluster.", + "properties": { + "softwareAssuranceStatus": { + "$ref": "#/definitions/SoftwareAssuranceStatus", + "description": "Status of the Software Assurance for the cluster.", + "readOnly": true + }, + "softwareAssuranceIntent": { + "$ref": "#/definitions/SoftwareAssuranceIntent", + "description": "Customer Intent for Software Assurance Benefit." + }, + "lastUpdated": { + "type": "string", + "format": "date-time", + "description": "TimeStamp denoting the latest SA benefit applicability is validated.", + "readOnly": true + } + } + }, + "SoftwareAssuranceStatus": { + "type": "string", + "description": "Status of the Software Assurance for the cluster.", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "SoftwareAssuranceStatus", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Software Assurance is enabled for the cluster." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Software Assurance is disabled for the cluster." + } + ] + } + }, + "State": { + "type": "string", + "description": "Represents the current state of the update as it relates to this stamp. This includes phases such as preparation, installation, scanning, and error handling, providing insight into the update's progress and any issues encountered.", + "enum": [ + "HasPrerequisite", + "Obsolete", + "Ready", + "NotApplicableBecauseAnotherUpdateIsInProgress", + "Preparing", + "Installing", + "Installed", + "PreparationFailed", + "InstallationFailed", + "Invalid", + "Recalled", + "Downloading", + "DownloadFailed", + "HealthChecking", + "HealthCheckFailed", + "ReadyToInstall", + "ScanInProgress", + "ScanFailed", + "AdditionalContentRequired" + ], + "x-ms-enum": { + "name": "State", + "modelAsString": true, + "values": [ + { + "name": "HasPrerequisite", + "value": "HasPrerequisite", + "description": "The update has prerequisites that must be fulfilled before it can proceed." + }, + { + "name": "Obsolete", + "value": "Obsolete", + "description": "The update is obsolete and no longer applicable." + }, + { + "name": "Ready", + "value": "Ready", + "description": "The update is ready to be installed." + }, + { + "name": "NotApplicableBecauseAnotherUpdateIsInProgress", + "value": "NotApplicableBecauseAnotherUpdateIsInProgress", + "description": "The update cannot be applied because another update is currently in progress." + }, + { + "name": "Preparing", + "value": "Preparing", + "description": "The update is currently in the preparation phase." + }, + { + "name": "Installing", + "value": "Installing", + "description": "The update is currently being installed." + }, + { + "name": "Installed", + "value": "Installed", + "description": "The update has been successfully installed." + }, + { + "name": "PreparationFailed", + "value": "PreparationFailed", + "description": "The update preparation phase failed." + }, + { + "name": "InstallationFailed", + "value": "InstallationFailed", + "description": "The update installation failed." + }, + { + "name": "Invalid", + "value": "Invalid", + "description": "The update is invalid and cannot be applied." + }, + { + "name": "Recalled", + "value": "Recalled", + "description": "The update has been recalled and should not be applied." + }, + { + "name": "Downloading", + "value": "Downloading", + "description": "The update is currently being downloaded." + }, + { + "name": "DownloadFailed", + "value": "DownloadFailed", + "description": "The update download failed." + }, + { + "name": "HealthChecking", + "value": "HealthChecking", + "description": "A health check is being performed before applying the update." + }, + { + "name": "HealthCheckFailed", + "value": "HealthCheckFailed", + "description": "The health check failed, preventing the update from proceeding." + }, + { + "name": "ReadyToInstall", + "value": "ReadyToInstall", + "description": "The update is ready to be installed after successful preparation and checks." + }, + { + "name": "ScanInProgress", + "value": "ScanInProgress", + "description": "The system is scanning for updates." + }, + { + "name": "ScanFailed", + "value": "ScanFailed", + "description": "The scan for updates failed." + }, + { + "name": "AdditionalContentRequired", + "value": "AdditionalContentRequired", + "description": "Additional content is required to proceed with the update." + } + ] + } + }, + "Status": { + "type": "string", + "description": "Status of the cluster agent. Indicates the current connectivity, validation, and deployment state of the agent within the cluster.", + "enum": [ + "NotYetRegistered", + "ConnectedRecently", + "NotConnectedRecently", + "Disconnected", + "Error", + "NotSpecified", + "ValidationInProgress", + "ValidationSuccess", + "ValidationFailed", + "DeploymentInProgress", + "DeploymentFailed", + "DeploymentSuccess" + ], + "x-ms-enum": { + "name": "Status", + "modelAsString": true, + "values": [ + { + "name": "NotYetRegistered", + "value": "NotYetRegistered", + "description": "The cluster agent has not yet registered with Azure." + }, + { + "name": "ConnectedRecently", + "value": "ConnectedRecently", + "description": "The cluster agent has connected to Azure recently." + }, + { + "name": "NotConnectedRecently", + "value": "NotConnectedRecently", + "description": "The cluster agent has not connected to Azure recently." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The cluster agent is currently disconnected from Azure." + }, + { + "name": "Error", + "value": "Error", + "description": "An error occurred in the cluster agent's operation." + }, + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The status of the cluster agent is not specified." + }, + { + "name": "ValidationInProgress", + "value": "ValidationInProgress", + "description": "Validation of the cluster agent is currently in progress." + }, + { + "name": "ValidationSuccess", + "value": "ValidationSuccess", + "description": "Validation of the cluster agent completed successfully." + }, + { + "name": "ValidationFailed", + "value": "ValidationFailed", + "description": "Validation of the cluster agent failed." + }, + { + "name": "DeploymentInProgress", + "value": "DeploymentInProgress", + "description": "Deployment of the cluster agent is currently in progress." + }, + { + "name": "DeploymentFailed", + "value": "DeploymentFailed", + "description": "Deployment of the cluster agent failed." + }, + { + "name": "DeploymentSuccess", + "value": "DeploymentSuccess", + "description": "Deployment of the cluster agent completed successfully." + } + ] + } + }, + "StatusLevelTypes": { + "type": "string", + "description": "The level code. Indicates the severity or importance of the status message.", + "enum": [ + "Info", + "Warning", + "Error" + ], + "x-ms-enum": { + "name": "StatusLevelTypes", + "modelAsString": true, + "values": [ + { + "name": "Info", + "value": "Info", + "description": "Informational message indicating normal operation." + }, + { + "name": "Warning", + "value": "Warning", + "description": "Warning message indicating a potential issue or non-critical problem." + }, + { + "name": "Error", + "value": "Error", + "description": "Error message indicating a failure or critical issue." + } + ] + } + }, + "Step": { + "type": "object", + "description": "Progress representation of the update run steps.", + "properties": { + "name": { + "type": "string", + "description": "Name of the step." + }, + "description": { + "type": "string", + "description": "More detailed description of the step." + }, + "errorMessage": { + "type": "string", + "description": "Error message, specified if the step is in a failed state." + }, + "status": { + "type": "string", + "description": "Status of the step, bubbled up from the ECE action plan for installation attempts. Values are: 'Success', 'Error', 'InProgress', and 'Unknown status'." + }, + "startTimeUtc": { + "type": "string", + "format": "date-time", + "description": "When the step started, or empty if it has not started executing." + }, + "endTimeUtc": { + "type": "string", + "format": "date-time", + "description": "When the step reached a terminal state." + }, + "lastUpdatedTimeUtc": { + "type": "string", + "format": "date-time", + "description": "Completion time of this step or the last completed sub-step." + }, + "expectedExecutionTime": { + "type": "string", + "description": "Expected execution time of a given step. This is optionally authored in the update action plan and can be empty." + }, + "steps": { + "type": "array", + "description": "Recursive model for child steps of this step.", + "items": { + "$ref": "#/definitions/Step" + }, + "x-ms-identifiers": [ + "name" + ] + } + } + }, + "Storage": { + "type": "object", + "description": "The Storage config of AzureStackHCI Cluster.", + "properties": { + "configurationMode": { + "type": "string", + "description": "By default, this mode is set to Express and your storage is configured as per best practices based on the number of nodes in the cluster. Allowed values are 'Express','InfraOnly', 'KeepStorage'", + "default": "Express" + } + } + }, + "SupportStatus": { + "type": "string", + "description": "Indicates whether the cluster is under support.", + "enum": [ + "InSupport", + "OutOfSupport", + "NotSpecified" + ], + "x-ms-enum": { + "name": "SupportStatus", + "modelAsString": true, + "values": [ + { + "name": "InSupport", + "value": "InSupport", + "description": "The cluster is under support." + }, + { + "name": "OutOfSupport", + "value": "OutOfSupport", + "description": "The cluster is out of support." + }, + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The support status is not specified." + } + ] + } + }, + "SwitchDetail": { + "type": "object", + "description": "List of switch details for edge device.", + "properties": { + "switchName": { + "type": "string", + "description": "The name of the switch.", + "readOnly": true + }, + "switchType": { + "type": "string", + "description": "The type of the switch. e.g. external, internal.", + "readOnly": true + }, + "extensions": { + "type": "array", + "description": "This represents extensions installed on virtualSwitch.", + "items": { + "$ref": "#/definitions/SwitchExtension" + }, + "readOnly": true, + "x-ms-identifiers": [ + "extensionName" + ] + } + } + }, + "SwitchExtension": { + "type": "object", + "description": "This represents extensions installed on virtualSwitch.", + "properties": { + "switchId": { + "type": "string", + "description": "Unique identifier for virtualSwitch.", + "readOnly": true + }, + "extensionName": { + "type": "string", + "description": "This will show extension name for virtualSwitch.", + "readOnly": true + }, + "extensionEnabled": { + "type": "boolean", + "description": "This represents whether extension is enabled on virtualSwitch.", + "readOnly": true + } + } + }, + "Update": { + "type": "object", + "description": "Update details", + "properties": { + "properties": { + "$ref": "#/definitions/UpdateProperties", + "description": "Update properties", + "x-ms-client-flatten": true + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "UpdateContent": { + "type": "object", + "description": "Represents a update content.", + "properties": { + "properties": { + "$ref": "#/definitions/UpdateContentProperties", "description": "The resource-specific properties for this resource." } }, @@ -452,15 +11208,226 @@ } ] }, - "KubernetesVersionListResult": { + "UpdateContentListResult": { + "type": "object", + "description": "The response of a UpdateContent list operation.", + "properties": { + "value": { + "type": "array", + "description": "The UpdateContent items on this page", + "items": { + "$ref": "#/definitions/UpdateContent" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "UpdateContentProperties": { + "type": "object", + "description": "Represents properties of a update content resource.", + "properties": { + "updatePayloads": { + "type": "array", + "description": "Represents the payloads of a update content resource.", + "items": { + "$ref": "#/definitions/ContentPayload" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "updatePayloads" + ] + }, + "UpdateList": { + "type": "object", + "description": "List of Updates", + "properties": { + "value": { + "type": "array", + "description": "The Update items on this page", + "items": { + "$ref": "#/definitions/Update" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "UpdatePrerequisite": { + "type": "object", + "description": "If update State is HasPrerequisite, this property contains an array of objects describing prerequisite updates before installing this update. Otherwise, it is empty.", + "properties": { + "updateType": { + "type": "string", + "description": "Updatable component type." + }, + "version": { + "type": "string", + "description": "Version of the prerequisite." + }, + "packageName": { + "type": "string", + "description": "Friendly name of the prerequisite." + } + } + }, + "UpdateProperties": { + "type": "object", + "description": "Details of a singular Update in HCI Cluster", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of the Updates proxy resource. Indicates the current lifecycle status of the update operation, such as whether it has been accepted, is in progress, or has completed.", + "readOnly": true + }, + "installedDate": { + "type": "string", + "format": "date-time", + "description": "Date that the update was installed." + }, + "description": { + "type": "string", + "description": "Description of the update." + }, + "minSbeVersionRequired": { + "type": "string", + "description": "Minimum Sbe Version of the update." + }, + "state": { + "$ref": "#/definitions/State", + "description": "Represents the current state of the update as it relates to this stamp. This includes phases such as preparation, installation, scanning, and error handling, providing insight into the update's progress and any issues encountered." + }, + "prerequisites": { + "type": "array", + "description": "If update State is HasPrerequisite, this property contains an array of objects describing prerequisite updates before installing this update. Otherwise, it is empty.", + "items": { + "$ref": "#/definitions/UpdatePrerequisite" + }, + "x-ms-identifiers": [ + "packageName" + ] + }, + "componentVersions": { + "type": "array", + "description": "An array of component versions for a Solution Bundle update, and an empty array otherwise.", + "items": { + "$ref": "#/definitions/PackageVersionInfo" + }, + "x-ms-identifiers": [ + "version" + ] + }, + "rebootRequired": { + "$ref": "#/definitions/RebootRequirement", + "description": "Indicates whether a reboot is required after the update or operation. Helps determine if a system restart is necessary to complete the process." + }, + "healthState": { + "$ref": "#/definitions/HealthState", + "description": "Overall health state for update-specific health checks." + }, + "healthCheckResult": { + "type": "array", + "description": "An array of PrecheckResult objects.", + "items": { + "$ref": "#/definitions/PrecheckResult" + } + }, + "healthCheckDate": { + "type": "string", + "format": "date-time", + "description": "Last time the package-specific checks were run." + }, + "packagePath": { + "type": "string", + "description": "Path where the update package is available." + }, + "packageSizeInMb": { + "type": "number", + "format": "float", + "description": "Size of the package. This value is a combination of the size from update metadata and size of the payload that results from the live scan operation for OS update content." + }, + "displayName": { + "type": "string", + "description": "Display name of the Update" + }, + "version": { + "type": "string", + "description": "Version of the update." + }, + "publisher": { + "type": "string", + "description": "Publisher of the update package." + }, + "releaseLink": { + "type": "string", + "description": "Link to release notes for the update." + }, + "availabilityType": { + "$ref": "#/definitions/AvailabilityType", + "description": "Indicates how the update content is made available for download. This determines whether the update is sourced locally, from an online repository, or requires user notification." + }, + "packageType": { + "type": "string", + "description": "Customer-visible type of the update." + }, + "additionalProperties": { + "type": "string", + "description": "Extensible KV pairs serialized as a string. This is currently used to report the stamp OEM family and hardware model information when an update is flagged as Invalid for the stamp based on OEM type." + }, + "updateStateProperties": { + "$ref": "#/definitions/UpdateStateProperties", + "description": "Additional information regarding the state of the update. See definition of UpdateStateProperties type below for more details on this property.", + "x-ms-client-flatten": true + } + } + }, + "UpdateRun": { + "type": "object", + "description": "Details of an Update run", + "properties": { + "properties": { + "$ref": "#/definitions/UpdateRunProperties", + "description": "Describes Update Run Properties.", + "x-ms-client-flatten": true + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "UpdateRunList": { "type": "object", - "description": "The response of a KubernetesVersion list operation.", + "description": "List of Update runs", "properties": { "value": { "type": "array", - "description": "The KubernetesVersion items on this page", + "description": "The UpdateRun items on this page", "items": { - "$ref": "#/definitions/KubernetesVersion" + "$ref": "#/definitions/UpdateRun" } }, "nextLink": { @@ -473,26 +11440,108 @@ "value" ] }, - "KubernetesVersionProperties": { + "UpdateRunProperties": { "type": "object", - "description": "Represents properties of a kubernetes version.", + "description": "Details of an Update run", "properties": { - "version": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of the UpdateRuns proxy resource. Indicates the current lifecycle status of the update operation, such as whether it has been accepted, is in progress, or has completed.", + "readOnly": true + }, + "timeStarted": { "type": "string", - "description": "Represents kubernetes version." + "format": "date-time", + "description": "Timestamp of the update run was started." + }, + "lastUpdatedTime": { + "type": "string", + "format": "date-time", + "description": "Timestamp of the most recently completed step in the update run." + }, + "duration": { + "type": "string", + "description": "Duration of the update run." + }, + "state": { + "$ref": "#/definitions/UpdateRunPropertiesState", + "description": "Represents the current state of the update run. Indicates whether the update is in progress, has completed successfully, failed, or is in an unknown state." + }, + "progress": { + "$ref": "#/definitions/Step", + "description": "Progress representation of the update run steps.", + "x-ms-client-flatten": true } + } + }, + "UpdateRunPropertiesState": { + "type": "string", + "description": "Represents the current state of the update run. Indicates whether the update is in progress, has completed successfully, failed, or is in an unknown state.", + "enum": [ + "Unknown", + "Succeeded", + "InProgress", + "Failed" + ], + "x-ms-enum": { + "name": "UpdateRunPropertiesState", + "modelAsString": true, + "values": [ + { + "name": "Unknown", + "value": "Unknown", + "description": "The state of the update run is not known." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The update run completed successfully." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "The update run is currently in progress." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The update run failed to complete successfully." + } + ] }, - "required": [ - "version" - ] + "readOnly": true }, - "OsImage": { + "UpdateStateProperties": { "type": "object", - "description": "Represents a os image resource.", + "description": "Additional information regarding the state of the update. See definition of UpdateStateProperties type below for more details on this property.", + "properties": { + "progressPercentage": { + "type": "number", + "format": "float", + "description": "Progress percentage of ongoing operation. Currently this property is only valid when the update is in the Downloading state, where it maps to how much of the update content has been downloaded." + }, + "notifyMessage": { + "type": "string", + "description": "Brief message with instructions for updates of AvailabilityType Notify." + } + } + }, + "UpdateSummaries": { + "type": "object", + "description": "Get the update summaries for the cluster", "properties": { "properties": { - "$ref": "#/definitions/OsImageProperties", - "description": "The resource-specific properties for this resource." + "$ref": "#/definitions/UpdateSummariesProperties", + "description": "Update summaries properties", + "x-ms-client-flatten": true + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] } }, "allOf": [ @@ -501,15 +11550,15 @@ } ] }, - "OsImageListResult": { + "UpdateSummariesList": { "type": "object", - "description": "The response of a OsImage list operation.", + "description": "List of Update Summaries", "properties": { "value": { "type": "array", - "description": "The OsImage items on this page", + "description": "The UpdateSummaries items on this page", "items": { - "$ref": "#/definitions/OsImage" + "$ref": "#/definitions/UpdateSummaries" } }, "nextLink": { @@ -522,56 +11571,185 @@ "value" ] }, - "OsImageProperties": { + "UpdateSummariesProperties": { "type": "object", - "description": "Represents properties of a os image resource.", + "description": "Properties of Update summaries", "properties": { - "validatedSolutionRecipeVersion": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of the UpdateSummaries proxy resource. Indicates the current lifecycle status of the update summary operation, such as whether it has been accepted, is in progress, or has completed.", + "readOnly": true + }, + "oemFamily": { "type": "string", - "description": "Represents validated solution recipe version of a os image." + "description": "OEM family name." }, - "composedImageVersion": { + "currentOemVersion": { "type": "string", - "description": "Represents composed image version of a os image." + "description": "Current OEM Version." }, - "composedImageIsoUrl": { + "hardwareModel": { "type": "string", - "description": "Represents composed image iso download url of a os image." + "description": "Name of the hardware model." }, - "composedImageIsoHash": { + "packageVersions": { + "type": "array", + "description": "Current version of each updatable component.", + "items": { + "$ref": "#/definitions/PackageVersionInfo" + }, + "x-ms-identifiers": [ + "version" + ] + }, + "currentVersion": { "type": "string", - "description": "Represents composed image iso hash of a os image." + "description": "Current Solution Bundle version of the stamp." + }, + "currentSbeVersion": { + "type": "string", + "description": "Current Sbe version of the stamp." + }, + "lastUpdated": { + "type": "string", + "format": "date-time", + "description": "Last time an update installation completed successfully." + }, + "lastChecked": { + "type": "string", + "format": "date-time", + "description": "Last time the update service successfully checked for updates" + }, + "healthState": { + "$ref": "#/definitions/HealthState", + "description": "Overall health state for update-specific health checks." + }, + "healthCheckResult": { + "type": "array", + "description": "An array of pre-check result objects.", + "items": { + "$ref": "#/definitions/PrecheckResult" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "healthCheckDate": { + "type": "string", + "format": "date-time", + "description": "Last time the package-specific checks were run." + }, + "state": { + "$ref": "#/definitions/UpdateSummariesPropertiesState", + "description": "Overall update state of the stamp. Indicates the current status of update deployment across the stamp, including preparation, application, and any issues encountered." } } }, - "PlatformPayload": { + "UpdateSummariesPropertiesState": { + "type": "string", + "description": "Overall update state of the stamp. Indicates the current status of update deployment across the stamp, including preparation, application, and any issues encountered.", + "enum": [ + "Unknown", + "AppliedSuccessfully", + "UpdateAvailable", + "UpdateInProgress", + "UpdateFailed", + "NeedsAttention", + "PreparationInProgress", + "PreparationFailed" + ], + "x-ms-enum": { + "name": "UpdateSummariesPropertiesState", + "modelAsString": true, + "values": [ + { + "name": "Unknown", + "value": "Unknown", + "description": "The update state is not known." + }, + { + "name": "AppliedSuccessfully", + "value": "AppliedSuccessfully", + "description": "Updates have been successfully applied to the stamp." + }, + { + "name": "UpdateAvailable", + "value": "UpdateAvailable", + "description": "Updates are available but have not yet been applied." + }, + { + "name": "UpdateInProgress", + "value": "UpdateInProgress", + "description": "Updates are currently being applied to the stamp." + }, + { + "name": "UpdateFailed", + "value": "UpdateFailed", + "description": "The update process failed." + }, + { + "name": "NeedsAttention", + "value": "NeedsAttention", + "description": "The update process requires user intervention or has encountered issues needing attention." + }, + { + "name": "PreparationInProgress", + "value": "PreparationInProgress", + "description": "Preparation for the update is currently in progress." + }, + { + "name": "PreparationFailed", + "value": "PreparationFailed", + "description": "Preparation for the update failed." + } + ] + } + }, + "UploadCertificateRequest": { "type": "object", - "description": "Represents details of a specific platform update payload.", "properties": { - "payloadUrl": { - "type": "string", - "description": "Represents url of a platform update payload." - }, - "payloadHash": { - "type": "string", - "description": "Represents hash of a platform update payload." + "properties": { + "$ref": "#/definitions/RawCertificateData" + } + } + }, + "ValidateRequest": { + "type": "object", + "description": "The validate request for Edge Device.", + "properties": { + "edgeDeviceIds": { + "type": "array", + "description": "Node Ids against which, current node has to be validated.", + "items": { + "type": "string" + } }, - "payloadPackageSizeInBytes": { + "additionalInfo": { "type": "string", - "description": "Represents size in bytes of a platform update payload." - }, - "payloadIdentifier": { + "description": "Additional info required for validation." + } + }, + "required": [ + "edgeDeviceIds" + ] + }, + "ValidateResponse": { + "type": "object", + "description": "An Accepted response with an Operation-Location header.", + "properties": { + "status": { "type": "string", - "description": "Represents identifier of a platform update payload." + "description": "edge device validation status", + "readOnly": true } } }, - "PlatformUpdate": { + "ValidatedSolutionRecipe": { "type": "object", - "description": "Represents a platform update resource.", + "description": "Represents a validated solution recipe resource.", "properties": { "properties": { - "$ref": "#/definitions/PlatformUpdateProperties", + "$ref": "#/definitions/ValidatedSolutionRecipeProperties", "description": "The resource-specific properties for this resource." } }, @@ -581,93 +11759,223 @@ } ] }, - "PlatformUpdateDetails": { + "ValidatedSolutionRecipeCapabilities": { "type": "object", - "description": "Represents details of a specific platform update.", + "description": "Represents capabilities available in a validated solution recipe.", "properties": { - "validatedSolutionRecipeVersion": { - "type": "string", - "description": "Represents validated solution recipe version of a platform update." - }, - "platformVersion": { - "type": "string", - "description": "Represents version of a platform update." + "clusterCapabilities": { + "type": "array", + "description": "Represents the cluster capabilities.", + "items": { + "$ref": "#/definitions/ValidatedSolutionRecipeCapability" + }, + "x-ms-identifiers": [] }, - "platformPayloads": { + "nodeCapabilities": { "type": "array", - "description": "Represents the platform payloads of a platform update.", + "description": "Represents the node capabilities.", "items": { - "$ref": "#/definitions/PlatformPayload" + "$ref": "#/definitions/ValidatedSolutionRecipeCapability" }, "x-ms-identifiers": [] } }, "required": [ - "platformPayloads" + "clusterCapabilities", + "nodeCapabilities" ] }, - "PlatformUpdateListResult": { + "ValidatedSolutionRecipeCapability": { "type": "object", - "description": "The response of a PlatformUpdate list operation.", + "description": "Represents capability available in a validated solution recipe.", "properties": { - "value": { + "capabilityName": { + "type": "string", + "description": "Represents the capability name." + } + }, + "required": [ + "capabilityName" + ] + }, + "ValidatedSolutionRecipeComponent": { + "type": "object", + "description": "Represents component available in a validated solution recipe.", + "properties": { + "name": { + "type": "string", + "description": "Represents the component's name." + }, + "type": { + "type": "string", + "description": "Represents the component's type." + }, + "requiredVersion": { + "type": "string", + "description": "Represents the component's required version." + }, + "installOrder": { + "type": "integer", + "format": "int64", + "description": "Represents the component's install order." + }, + "tags": { "type": "array", - "description": "The PlatformUpdate items on this page", + "description": "Represents the component's tags.", "items": { - "$ref": "#/definitions/PlatformUpdate" + "type": "string" } }, - "nextLink": { + "payloads": { + "type": "array", + "description": "Represents the component's payloads.", + "items": { + "$ref": "#/definitions/ValidatedSolutionRecipeComponentPayload" + }, + "x-ms-identifiers": [] + }, + "metadata": { + "$ref": "#/definitions/ValidatedSolutionRecipeComponentMetadata", + "description": "Represents the component's metadata." + } + }, + "required": [ + "name", + "type", + "tags" + ] + }, + "ValidatedSolutionRecipeComponentMetadata": { + "type": "object", + "description": "Represents metadata associated with a component available in a validated solution recipe.", + "properties": { + "extensionType": { "type": "string", - "format": "uri", - "description": "The link to the next page of items" + "description": "Represents the type of extension." + }, + "publisher": { + "type": "string", + "description": "Represents the publisher of the extension." + }, + "enableAutomaticUpgrade": { + "type": "boolean", + "description": "Indicates whether automatic upgrades of the extension are enabled." + }, + "lcmUpdate": { + "type": "boolean", + "description": "Indicates whether the LCM (Lifecycle Management) update of the extension is enabled." + }, + "catalog": { + "type": "string", + "description": "Specifies the catalog to which the extension belongs." + }, + "ring": { + "type": "string", + "description": "Specifies the ring to which the extension belongs, internally used by component." + }, + "releaseTrain": { + "type": "string", + "description": "Specifies the release train to which given component belongs." + }, + "link": { + "type": "string", + "description": "Specifies the link associated with the extension." + }, + "name": { + "type": "string", + "description": "Specifies the name of the extension." + }, + "expectedHash": { + "type": "string", + "description": "Specifies the expected hash of the extension." + }, + "previewSource": { + "type": "string", + "description": "Specifies the preview source of the extension." + } + } + }, + "ValidatedSolutionRecipeComponentPayload": { + "type": "object", + "description": "Represents payloads associated with a component available in a validated solution recipe.", + "properties": { + "identifier": { + "type": "string", + "description": "Represents the unique identifier of the payload used to query the URL." + }, + "hash": { + "type": "string", + "description": "Represents the cryptographic hash of the payload, ensuring data integrity." + }, + "fileName": { + "type": "string", + "description": "Represents the name of the file associated with the payload." + }, + "url": { + "type": "string", + "description": "Represents the URL from which the payload can be downloaded." } }, "required": [ - "value" + "identifier", + "hash", + "fileName", + "url" ] }, - "PlatformUpdateProperties": { + "ValidatedSolutionRecipeContent": { "type": "object", - "description": "Represents properties of a platform update resource.", + "description": "Represents contents of a validated solution recipe resource.", "properties": { - "platformUpdateDetails": { + "info": { + "$ref": "#/definitions/ValidatedSolutionRecipeInfo", + "description": "Represents information about a validated solution recipe." + }, + "capabilities": { + "$ref": "#/definitions/ValidatedSolutionRecipeCapabilities", + "description": "Represents capabilities available in a validated solution recipe." + }, + "components": { "type": "array", - "description": "Represents applicable platform updates.", + "description": "Represents components available in a validated solution recipe.", "items": { - "$ref": "#/definitions/PlatformUpdateDetails" + "$ref": "#/definitions/ValidatedSolutionRecipeComponent" }, "x-ms-identifiers": [] } }, "required": [ - "platformUpdateDetails" + "info", + "components" ] }, - "UpdateContent": { + "ValidatedSolutionRecipeInfo": { "type": "object", - "description": "Represents a update content.", + "description": "Represents information about a validated solution recipe.", "properties": { - "properties": { - "$ref": "#/definitions/UpdateContentProperties", - "description": "The resource-specific properties for this resource." + "solutionType": { + "type": "string", + "description": "Represents the solution type for which this validated solution recipe is applicable." + }, + "version": { + "type": "string", + "description": "Represents the version for which this validated solution recipe is applicable." } }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } + "required": [ + "solutionType", + "version" ] }, - "UpdateContentListResult": { + "ValidatedSolutionRecipeListResult": { "type": "object", - "description": "The response of a UpdateContent list operation.", + "description": "The response of a ValidatedSolutionRecipe list operation.", "properties": { "value": { "type": "array", - "description": "The UpdateContent items on this page", + "description": "The ValidatedSolutionRecipe items on this page", "items": { - "$ref": "#/definitions/UpdateContent" + "$ref": "#/definitions/ValidatedSolutionRecipe" } }, "nextLink": { @@ -680,22 +11988,46 @@ "value" ] }, - "UpdateContentProperties": { + "ValidatedSolutionRecipeProperties": { "type": "object", - "description": "Represents properties of a update content resource.", + "description": "Represents properties of a validated solution recipe resource.", "properties": { - "updatePayloads": { - "type": "array", - "description": "Represents the payloads of a update content resource.", - "items": { - "$ref": "#/definitions/ContentPayload" - }, - "x-ms-identifiers": [] + "recipeContent": { + "$ref": "#/definitions/ValidatedSolutionRecipeContent", + "description": "Represents contents of a validated solution recipe." + }, + "signature": { + "type": "string", + "description": "Represents the signature of the recipe, to be used for ensuring its integrity." } }, "required": [ - "updatePayloads" + "recipeContent" ] + }, + "WindowsServerSubscription": { + "type": "string", + "description": "Desired state of Windows Server Subscription.", + "enum": [ + "Disabled", + "Enabled" + ], + "x-ms-enum": { + "name": "WindowsServerSubscription", + "modelAsString": true, + "values": [ + { + "name": "Disabled", + "value": "Disabled", + "description": "Windows Server Subscription is disabled." + }, + { + "name": "Enabled", + "value": "Enabled", + "description": "Windows Server Subscription is enabled." + } + ] + } } }, "parameters": {} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/hciCommon.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/hciCommon.json deleted file mode 100644 index f47946df5172..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/hciCommon.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "AzureStackHCI Common", - "version": "2025-11-01-preview", - "description": "Azure Stack HCI common Rest API spec definitions." - }, - "schemes": [ - "https" - ], - "host": "management.azure.com", - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "tags": [], - "paths": {}, - "definitions": { - "DeploymentMode": { - "type": "string", - "description": "The deployment mode of EnterpriseCloudEngine(ECE) action for a cluster.", - "enum": [ - "Validate", - "Deploy" - ], - "default": "Deploy", - "x-ms-enum": { - "name": "DeploymentMode", - "modelAsString": true, - "values": [ - { - "name": "Validate", - "value": "Validate", - "description": "Validate ECE action deployment for a cluster." - }, - { - "name": "Deploy", - "value": "Deploy", - "description": "Deploy ECE action deployment for a cluster." - } - ] - } - }, - "EceReportedProperties": { - "type": "object", - "description": "The DeploymentStatus of AzureStackHCI Cluster.", - "properties": { - "validationStatus": { - "$ref": "#/definitions/EceActionStatus", - "description": "validation status of AzureStackHCI Cluster Deployment.", - "readOnly": true - }, - "deploymentStatus": { - "$ref": "#/definitions/EceActionStatus", - "description": "Deployment status of AzureStackHCI Cluster Deployment.", - "readOnly": true - } - } - }, - "EceActionStatus": { - "type": "object", - "description": "The ECE action plan deployment status for AzureStackHCI Cluster.", - "properties": { - "status": { - "type": "string", - "description": "Status of ECE action AzureStackHCI Cluster Deployment.", - "readOnly": true - }, - "steps": { - "type": "array", - "description": "List of steps of AzureStackHCI Cluster Deployment.", - "items": { - "$ref": "#/definitions/DeploymentStep" - }, - "readOnly": true, - "x-ms-identifiers": [] - } - } - }, - "ProvisioningState": { - "type": "string", - "description": "The provisioning state of a resource.", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "NotSpecified", - "Provisioning", - "Updating", - "Deleting", - "Accepted" - ], - "readOnly": true, - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Resource has been created." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Resource creation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Resource creation was canceled." - }, - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The resource provision state is not specified" - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The resource is being provisioned" - }, - { - "name": "Updating", - "value": "Updating", - "description": "The resource is updating" - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The resource is being deleted" - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The resource create request has been accepted" - } - ] - } - }, - "EceDeploymentSecrets": { - "type": "object", - "description": "Protected parameters list stored in keyvault.", - "properties": { - "secretName": { - "type": "string", - "description": "Secret name stored in keyvault." - }, - "eceSecretName": { - "$ref": "#/definitions/EceSecrets", - "description": "Secret name expected for Enterprise Cloud Engine (ECE) deployment." - }, - "secretLocation": { - "type": "string", - "format": "uri", - "description": "Secret URI stored in keyvault." - } - } - }, - "IdentityProvider": { - "type": "string", - "description": "Specifies the identity provider used for authenticating and managing access to cluster nodes. Choose between Active Directory for domain-based identity or Local Identity for AD-less configurations using Azure Key Vault.", - "enum": [ - "ActiveDirectory", - "LocalIdentity" - ], - "default": "ActiveDirectory", - "x-ms-enum": { - "name": "IdentityProvider", - "modelAsString": true, - "values": [ - { - "name": "ActiveDirectory", - "value": "ActiveDirectory", - "description": "Uses Active Directory as the identity provider, enabling domain-based authentication and centralized identity management. This is the default option." - }, - { - "name": "LocalIdentity", - "value": "LocalIdentity", - "description": "Uses a local identity system integrated with Azure Key Vault for authentication. Suitable for AD-less environments where Active Directory is not available or required." - } - ] - } - }, - "ClusterPattern": { - "type": "string", - "description": "Supported Storage Pattern for HCI Cluster", - "enum": [ - "Standard", - "RackAware" - ], - "x-ms-enum": { - "name": "ClusterPattern", - "modelAsString": true, - "values": [ - { - "name": "Standard", - "value": "Standard", - "description": "Standard cluster." - }, - { - "name": "RackAware", - "value": "RackAware", - "description": "RackAware cluster." - } - ] - } - }, - "LocalAvailabilityZones": { - "type": "object", - "description": "Local Availability Zone information for HCI cluster", - "properties": { - "localAvailabilityZoneName": { - "type": "string", - "description": "Local Availability Zone name for HCI cluster" - }, - "nodes": { - "type": "array", - "description": "Nodes belonging to a particular zone", - "items": { - "type": "string" - }, - "x-ms-identifiers": [] - } - } - }, - "EceSecrets": { - "type": "string", - "description": "Secret names allowed for Enterprise Cloud Engine (ECE) deployment.", - "enum": [ - "AzureStackLCMUserCredential", - "DefaultARBApplication", - "LocalAdminCredential", - "WitnessStorageKey" - ], - "x-ms-enum": { - "name": "EceSecrets", - "modelAsString": true, - "values": [ - { - "name": "AzureStackLCMUserCredential", - "value": "AzureStackLCMUserCredential", - "description": "AzureStackLCMUserCredential used for LCM operations for AzureStackHCI cluster." - }, - { - "name": "DefaultARBApplication", - "value": "DefaultARBApplication", - "description": "DefaultARBApplication used to manage Azure Arc resource bridge (ARB) for AzureStackHCI cluster." - }, - { - "name": "LocalAdminCredential", - "value": "LocalAdminCredential", - "description": "LocalAdminCredential used for admin operations for AzureStackHCI cluster." - }, - { - "name": "WitnessStorageKey", - "value": "WitnessStorageKey", - "description": "WitnessStorageKey used for setting up a cloud witness for AzureStackHCI cluster." - } - ] - } - }, - "DeploymentStep": { - "type": "object", - "description": "The Step of AzureStackHCI Cluster.", - "properties": { - "name": { - "type": "string", - "description": "Name of step.", - "readOnly": true - }, - "description": { - "type": "string", - "description": "Description of step.", - "readOnly": true - }, - "fullStepIndex": { - "type": "string", - "description": "FullStepIndex of step.", - "readOnly": true - }, - "startTimeUtc": { - "type": "string", - "description": "Start time of step.", - "readOnly": true - }, - "endTimeUtc": { - "type": "string", - "description": "End time of step.", - "readOnly": true - }, - "status": { - "type": "string", - "description": "Status of step. Allowed values are 'Error', 'Success', 'InProgress'", - "readOnly": true - }, - "steps": { - "type": "array", - "description": "List of nested steps of AzureStackHCI Cluster Deployment.", - "items": { - "$ref": "#/definitions/DeploymentStep" - }, - "readOnly": true, - "x-ms-identifiers": [] - }, - "exception": { - "type": "array", - "description": "List of exceptions in AzureStackHCI Cluster Deployment.", - "items": { - "type": "string" - }, - "readOnly": true, - "x-ms-identifiers": [] - } - } - }, - "PrecheckResult": { - "type": "object", - "properties": { - "name": { - "description": "Name of the individual test/rule/alert that was executed. Unique, not exposed to the customer.", - "type": "string" - }, - "displayName": { - "description": "The health check DisplayName localized of the individual test executed.", - "type": "string" - }, - "tags": { - "description": "Key-value pairs that allow grouping/filtering individual tests.", - "type": "object", - "properties": { - "key": { - "description": "Key that allow grouping/filtering individual tests.", - "type": "string" - }, - "value": { - "description": "Value of the key that allow grouping/filtering individual tests.", - "type": "string" - } - } - }, - "healthCheckTags": { - "description": "Key-value pairs that allow grouping/filtering individual tests.", - "type": "object" - }, - "title": { - "description": "User-facing name; one or more sentences indicating the direct issue.", - "type": "string" - }, - "status": { - "description": "Represents the current status of the check being performed. Indicates whether the check has completed successfully, failed, or is still in progress.", - "type": "string", - "enum": [ - "Succeeded", - "Failed", - "InProgress" - ], - "x-ms-enum": { - "name": "status", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The check completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The check completed but failed." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The check is currently in progress." - } - ] - } - }, - "severity": { - "description": "Indicates the importance or impact level of the result. Determines whether the result is informational, a warning, or a critical issue that may block updates.", - "type": "string", - "enum": [ - "Critical", - "Warning", - "Informational", - "Hidden" - ], - "x-ms-enum": { - "name": "severity", - "modelAsString": true, - "values": [ - { - "name": "Critical", - "value": "Critical", - "description": "A critical issue that blocks updates and requires immediate attention." - }, - { - "name": "Warning", - "value": "Warning", - "description": "A warning that may indicate a potential issue but does not block updates." - }, - { - "name": "Informational", - "value": "Informational", - "description": "General information that does not indicate any issue." - }, - { - "name": "Hidden", - "value": "Hidden", - "description": "The result is hidden and not shown in the output." - } - ] - } - }, - "description": { - "description": "Detailed overview of the issue and what impact the issue has on the stamp.", - "type": "string" - }, - "remediation": { - "description": "Set of steps that can be taken to resolve the issue found.", - "type": "string" - }, - "targetResourceID": { - "description": "The unique identifier for the affected resource (such as a node or drive).", - "type": "string" - }, - "targetResourceName": { - "description": "The name of the affected resource.", - "type": "string" - }, - "targetResourceType": { - "description": "The type of resource being referred to (well-known set of nouns in infrastructure, aligning with Monitoring).", - "type": "string" - }, - "timestamp": { - "description": "The time in which the HealthCheck was called.", - "type": "string", - "format": "date-time" - }, - "additionalData": { - "description": "Property bag of key value pairs for additional information.", - "type": "string" - }, - "healthCheckSource": { - "description": "The name of the services called for the HealthCheck (I.E. Test-AzureStack, Test-Cluster).", - "type": "string" - } - } - }, - "EdgeDeviceKind": { - "type": "string", - "description": "Edge device kind.", - "enum": [ - "HCI" - ], - "default": "HCI", - "x-ms-enum": { - "name": "EdgeDeviceKind", - "modelAsString": true, - "values": [ - { - "name": "HCI", - "value": "HCI", - "description": "Arc-enabled edge device with HCI OS." - } - ] - } - }, - "HardwareClass": { - "type": "string", - "description": "Hardware class of the cluster.", - "enum": [ - "Small", - "Medium", - "Large" - ], - "default": "Medium", - "x-ms-enum": { - "name": "HardwareClass", - "modelAsString": true, - "values": [ - { - "name": "Small", - "value": "Small", - "description": "The hardware class is small." - }, - { - "name": "Medium", - "value": "Medium", - "description": "The hardware class is medium. This corresponds to the default" - }, - { - "name": "Large", - "value": "Large", - "description": "The hardware class is large." - } - ] - } - } - }, - "parameters": {} -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/offers.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/offers.json deleted file mode 100644 index 1484d6d3d939..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/offers.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-11-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers": { - "get": { - "operationId": "Offers_ListByPublisher", - "description": "List Offers available for a publisher within the HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/PublisherNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ODataExpandParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OfferList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Offer resources by publisher for the HCI Cluster": { - "$ref": "./examples/ListOffersByPublisher.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/offers": { - "get": { - "operationId": "Offers_ListByCluster", - "description": "List Offers available across publishers for the HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ODataExpandParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OfferList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Offer resources by HCI Cluster": { - "$ref": "./examples/ListOffersByCluster.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}": { - "get": { - "operationId": "Offers_Get", - "description": "Get Offer resource details within a publisher of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/PublisherNameParameter" - }, - { - "$ref": "#/parameters/OfferNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ODataExpandParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Offer" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Offer": { - "$ref": "./examples/GetOffer.json" - } - } - } - } - }, - "definitions": { - "OfferList": { - "description": "List of Offer proxy resources for the HCI cluster.", - "type": "object", - "properties": { - "value": { - "description": "List of Offer proxy resources.", - "type": "array", - "items": { - "$ref": "#/definitions/Offer" - }, - "readOnly": true - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "Offer": { - "description": "Offer details.", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "description": "Offer properties.", - "$ref": "#/definitions/OfferProperties", - "x-ms-client-flatten": true - } - } - }, - "OfferProperties": { - "description": "Publisher properties.", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning State", - "type": "string", - "readOnly": true - }, - "publisherId": { - "type": "string", - "description": "Identifier of the Publisher for the offer" - }, - "content": { - "type": "string", - "description": "JSON serialized catalog content of the offer" - }, - "contentVersion": { - "type": "string", - "description": "The API version of the catalog service used to serve the catalog content" - }, - "skuMappings": { - "type": "array", - "description": "Array of SKU mappings", - "items": { - "$ref": "#/definitions/SkuMappings" - }, - "x-ms-identifiers": [] - } - } - }, - "SkuMappings": { - "description": "SKU Mapping details.", - "type": "object", - "properties": { - "catalogPlanId": { - "type": "string", - "description": "Identifier of the CatalogPlan for the sku" - }, - "marketplaceSkuId": { - "type": "string", - "description": "Identifier for the sku" - }, - "marketplaceSkuVersions": { - "type": "array", - "description": "Array of SKU versions available", - "items": { - "type": "string" - } - } - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "PublisherNameParameter": { - "name": "publisherName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the publisher available within HCI cluster.", - "x-ms-parameter-location": "method" - }, - "OfferNameParameter": { - "name": "offerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the offer available within HCI cluster.", - "x-ms-parameter-location": "method" - }, - "ODataExpandParameter": { - "name": "$expand", - "in": "query", - "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/publishers.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/publishers.json deleted file mode 100644 index 352b47a2d575..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/publishers.json +++ /dev/null @@ -1,188 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-11-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers": { - "get": { - "operationId": "Publishers_ListByCluster", - "description": "List Publishers available for the HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PublisherList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Publisher resources by HCI Cluster": { - "$ref": "./examples/ListPublishersByCluster.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}": { - "get": { - "operationId": "Publishers_Get", - "description": "Get Publisher resource details of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/PublisherNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Publisher" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Publisher": { - "$ref": "./examples/GetPublisher.json" - } - } - } - } - }, - "definitions": { - "PublisherList": { - "description": "List of Publisher proxy resources for the HCI cluster.", - "type": "object", - "properties": { - "value": { - "description": "List of Publisher proxy resources.", - "type": "array", - "items": { - "$ref": "#/definitions/Publisher" - }, - "readOnly": true - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "Publisher": { - "description": "Publisher details.", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "description": "Publisher properties.", - "$ref": "#/definitions/PublisherProperties", - "x-ms-client-flatten": true - } - } - }, - "PublisherProperties": { - "description": "Publisher properties.", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning State", - "type": "string", - "readOnly": true - } - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "PublisherNameParameter": { - "name": "publisherName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the publisher available within HCI cluster.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/securitySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/securitySettings.json deleted file mode 100644 index 9597babaa835..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/securitySettings.json +++ /dev/null @@ -1,502 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "AzureStackHCI", - "version": "2025-11-01-preview", - "description": "Azure Stack HCI cluster security settings." - }, - "schemes": [ - "https" - ], - "host": "management.azure.com", - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "tags": [ - { - "name": "SecuritySettings" - } - ], - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/securitySettings": { - "get": { - "operationId": "SecuritySettings_ListByClusters", - "tags": [ - "SecuritySettings" - ], - "description": "List SecuritySetting resources by Clusters", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - } - ], - "responses": { - "200": { - "description": "ARM operation completed successfully.", - "schema": { - "$ref": "#/definitions/SecuritySettingListResult" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Security Settings": { - "$ref": "./examples/ListSecuritySettingsByCluster.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/securitySettings/{securitySettingsName}": { - "get": { - "operationId": "SecuritySettings_Get", - "tags": [ - "SecuritySettings" - ], - "description": "Get a SecuritySetting", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "name": "securitySettingsName", - "in": "path", - "description": "Name of security setting", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "200": { - "description": "ARM operation completed successfully.", - "schema": { - "$ref": "#/definitions/SecuritySetting" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Security Settings": { - "$ref": "./examples/GetSecuritySettings.json" - } - } - }, - "put": { - "operationId": "SecuritySettings_CreateOrUpdate", - "tags": [ - "SecuritySettings" - ], - "description": "Create a security setting", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "name": "securitySettingsName", - "in": "path", - "description": "Name of security setting", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "resource", - "in": "body", - "description": "Resource create parameters.", - "required": true, - "schema": { - "$ref": "#/definitions/SecuritySetting" - } - } - ], - "responses": { - "200": { - "description": "Resource 'SecuritySetting' update operation succeeded", - "schema": { - "$ref": "#/definitions/SecuritySetting" - } - }, - "201": { - "description": "Resource 'SecuritySetting' create operation succeeded", - "schema": { - "$ref": "#/definitions/SecuritySetting" - }, - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Create Security Settings": { - "$ref": "./examples/PutSecuritySettings.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-long-running-operation": true - }, - "delete": { - "operationId": "SecuritySettings_Delete", - "tags": [ - "SecuritySettings" - ], - "description": "Delete a SecuritySetting", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "name": "securitySettingsName", - "in": "path", - "description": "Name of security setting", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "202": { - "description": "Resource deletion accepted.", - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - }, - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - } - } - }, - "204": { - "description": "Resource deleted successfully." - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Delete Security Settings": { - "$ref": "./examples/DeleteSecuritySettings.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true - } - } - }, - "definitions": { - "ComplianceAssignmentType": { - "type": "string", - "description": "Represents the compliance assignment type of a resource.", - "enum": [ - "Audit", - "ApplyAndAutoCorrect" - ], - "x-ms-enum": { - "name": "ComplianceAssignmentType", - "modelAsString": true, - "values": [ - { - "name": "Audit", - "value": "Audit", - "description": "Report on the state of the machine, but don't make changes." - }, - { - "name": "ApplyAndAutoCorrect", - "value": "ApplyAndAutoCorrect", - "description": "Applied to the machine. If it drifts, the local service inside the machine makes a correction at the next evaluation." - } - ] - } - }, - "ComplianceStatus": { - "type": "string", - "description": "Represents the compliance status of a resource.", - "enum": [ - "Compliant", - "NonCompliant", - "Pending" - ], - "x-ms-enum": { - "name": "ComplianceStatus", - "modelAsString": true, - "values": [ - { - "name": "Compliant", - "value": "Compliant", - "description": "The resource is compliant" - }, - { - "name": "NonCompliant", - "value": "NonCompliant", - "description": "The resource is non-compliant" - }, - { - "name": "Pending", - "value": "Pending", - "description": "The resource compliance status is pending" - } - ] - } - }, - "ProvisioningState": { - "type": "string", - "description": "The provisioning state of a resource.", - "readOnly": true, - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "Provisioning", - "Updating", - "Deleting", - "Accepted" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Resource has been created." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Resource creation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Resource creation was canceled." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The resource is being provisioned" - }, - { - "name": "Updating", - "value": "Updating", - "description": "The resource is updating" - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The resource is being deleted" - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The resource create request has been accepted" - } - ] - } - }, - "SecurityComplianceStatus": { - "type": "object", - "description": "Security compliance properties of the resource", - "properties": { - "securedCoreCompliance": { - "$ref": "#/definitions/ComplianceStatus", - "description": "Indicates whether HCI hosts meets secured-core server requirements.", - "readOnly": true - }, - "wdacCompliance": { - "$ref": "#/definitions/ComplianceStatus", - "description": "Indicates whether HCI hosts have enforced consistent Windows Defender Application Control.", - "readOnly": true - }, - "dataAtRestEncrypted": { - "$ref": "#/definitions/ComplianceStatus", - "description": "Indicates whether data at-rest encryption is enabled on Azure Stack HCI clustered volumes.", - "readOnly": true - }, - "dataInTransitProtected": { - "$ref": "#/definitions/ComplianceStatus", - "description": "Indicates whether HCI cluster has data in-transit protection.", - "readOnly": true - }, - "lastUpdated": { - "type": "string", - "format": "date-time", - "description": "Time in UTC when compliance status was last updated.", - "readOnly": true - } - } - }, - "SecurityProperties": { - "type": "object", - "description": "Security properties of the resource", - "properties": { - "securedCoreComplianceAssignment": { - "$ref": "#/definitions/ComplianceAssignmentType", - "description": "Secured Core Compliance Assignment", - "default": "Audit" - }, - "wdacComplianceAssignment": { - "$ref": "#/definitions/ComplianceAssignmentType", - "description": "WDAC Compliance Assignment", - "default": "Audit" - }, - "smbEncryptionForIntraClusterTrafficComplianceAssignment": { - "$ref": "#/definitions/ComplianceAssignmentType", - "description": "SMB encryption for intra-cluster traffic Compliance Assignment", - "default": "Audit" - }, - "securityComplianceStatus": { - "$ref": "#/definitions/SecurityComplianceStatus", - "description": "Security Compliance Status", - "readOnly": true - }, - "provisioningState": { - "$ref": "#/definitions/ProvisioningState", - "description": "The status of the last operation." - } - } - }, - "SecuritySetting": { - "type": "object", - "description": "Security settings proxy resource", - "properties": { - "properties": { - "$ref": "#/definitions/SecurityProperties", - "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] - } - }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ] - }, - "SecuritySettingListResult": { - "type": "object", - "description": "The response of a SecuritySetting list operation.", - "properties": { - "value": { - "type": "array", - "description": "The SecuritySetting items on this page", - "items": { - "$ref": "#/definitions/SecuritySetting" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/skus.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/skus.json deleted file mode 100644 index 37b39f287cfa..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/skus.json +++ /dev/null @@ -1,275 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-11-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}/skus": { - "get": { - "operationId": "Skus_ListByOffer", - "description": "List Skus available for a offer within the HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/PublisherNameParameter" - }, - { - "$ref": "#/parameters/OfferNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ODataExpandParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SkuList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List SKU resources by offer for the HCI Cluster": { - "$ref": "./examples/ListSkusByOffer.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}/skus/{skuName}": { - "get": { - "operationId": "Skus_Get", - "description": "Get SKU resource details within a offer of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/PublisherNameParameter" - }, - { - "$ref": "#/parameters/OfferNameParameter" - }, - { - "$ref": "#/parameters/SkuNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ODataExpandParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Sku" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Sku": { - "$ref": "./examples/GetSku.json" - } - } - } - } - }, - "definitions": { - "SkuList": { - "description": "List of SKU proxy resources for the HCI cluster.", - "type": "object", - "properties": { - "value": { - "description": "List of SKU proxy resources.", - "type": "array", - "items": { - "$ref": "#/definitions/Sku" - }, - "readOnly": true - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "Sku": { - "description": "Sku details.", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "description": "SKU properties.", - "$ref": "#/definitions/SkuProperties", - "x-ms-client-flatten": true - } - } - }, - "SkuProperties": { - "description": "SKU properties.", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning State", - "type": "string", - "readOnly": true - }, - "publisherId": { - "type": "string", - "description": "Identifier of the Publisher for the offer" - }, - "offerId": { - "type": "string", - "description": "Identifier of the Offer for the sku" - }, - "content": { - "type": "string", - "description": "JSON serialized catalog content of the sku offer" - }, - "contentVersion": { - "type": "string", - "description": "The API version of the catalog service used to serve the catalog content" - }, - "skuMappings": { - "type": "array", - "description": "Array of SKU mappings", - "items": { - "$ref": "#/definitions/SkuMappings" - }, - "x-ms-identifiers": [] - } - } - }, - "SkuMappings": { - "description": "SKU Mapping details.", - "type": "object", - "properties": { - "catalogPlanId": { - "type": "string", - "description": "Identifier of the CatalogPlan for the sku" - }, - "marketplaceSkuId": { - "type": "string", - "description": "Identifier for the sku" - }, - "marketplaceSkuVersions": { - "type": "array", - "description": "Array of SKU versions available", - "items": { - "type": "string" - } - } - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "PublisherNameParameter": { - "name": "publisherName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the publisher available within HCI cluster.", - "x-ms-parameter-location": "method" - }, - "OfferNameParameter": { - "name": "offerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the offer available within HCI cluster.", - "x-ms-parameter-location": "method" - }, - "SkuNameParameter": { - "name": "skuName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the SKU available within HCI cluster.", - "x-ms-parameter-location": "method" - }, - "ODataExpandParameter": { - "name": "$expand", - "in": "query", - "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/updateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/updateRuns.json deleted file mode 100644 index 35f3cccb9171..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/updateRuns.json +++ /dev/null @@ -1,461 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-11-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns": { - "get": { - "operationId": "UpdateRuns_List", - "description": "List all Update runs for a specified update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateRunList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Update runs under cluster resource": { - "$ref": "./examples/ListUpdateRuns.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns/{updateRunName}": { - "delete": { - "operationId": "UpdateRuns_Delete", - "description": "Delete specified Update Run", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "#/parameters/UpdateRunNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "ACCEPTED", - "headers": { - "Azure-AsyncOperation": { - "description": "URL to query for status of the operation.", - "type": "string" - } - } - }, - "204": { - "description": "No Content" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Delete an Update": { - "$ref": "./examples/DeleteUpdateRuns.json" - } - } - }, - "put": { - "operationId": "UpdateRuns_Put", - "description": "Put Update runs for a specified update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "#/parameters/UpdateRunNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "updateRunsProperties", - "in": "body", - "description": "Properties of the updateRuns object", - "required": true, - "schema": { - "$ref": "#/definitions/UpdateRun" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateRun" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Update runs under cluster resource": { - "$ref": "./examples/PutUpdateRuns.json" - } - } - }, - "get": { - "operationId": "UpdateRuns_Get", - "description": "Get the Update run for a specified update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "#/parameters/UpdateRunNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateRun" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Update runs under cluster resource": { - "$ref": "./examples/GetUpdateRuns.json" - } - } - } - } - }, - "definitions": { - "UpdateRunList": { - "description": "List of Update runs", - "type": "object", - "properties": { - "value": { - "description": "List of Update runs", - "type": "array", - "items": { - "$ref": "#/definitions/UpdateRun" - } - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "UpdateRun": { - "description": "Details of an Update run", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "location": { - "type": "string", - "x-ms-mutability": [ - "read", - "create" - ], - "description": "The geo-location where the resource lives" - }, - "properties": { - "description": "Describes Update Run Properties.", - "$ref": "#/definitions/UpdateRunProperties", - "x-ms-client-flatten": true - } - } - }, - "UpdateRunProperties": { - "description": "Details of an Update run", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning state of the UpdateRuns proxy resource. Indicates the current lifecycle status of the update operation, such as whether it has been accepted, is in progress, or has completed.", - "type": "string", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "Accepted", - "Provisioning" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The update operation completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The update operation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The update operation was canceled before completion." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The update operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The update operation is currently being provisioned." - } - ] - }, - "readOnly": true - }, - "timeStarted": { - "description": "Timestamp of the update run was started.", - "type": "string", - "format": "date-time" - }, - "lastUpdatedTime": { - "description": "Timestamp of the most recently completed step in the update run.", - "type": "string", - "format": "date-time" - }, - "duration": { - "description": "Duration of the update run.", - "type": "string" - }, - "state": { - "description": "Represents the current state of the update run. Indicates whether the update is in progress, has completed successfully, failed, or is in an unknown state.", - "type": "string", - "enum": [ - "Unknown", - "Succeeded", - "InProgress", - "Failed" - ], - "x-ms-enum": { - "name": "updateRunPropertiesState", - "modelAsString": true, - "values": [ - { - "name": "Unknown", - "value": "Unknown", - "description": "The state of the update run is not known." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The update run completed successfully." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The update run is currently in progress." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The update run failed to complete successfully." - } - ] - } - }, - "progress": { - "description": "Progress representation of the update run steps.", - "$ref": "#/definitions/Step", - "x-ms-client-flatten": true - } - } - }, - "Step": { - "description": "Progress representation of the update run steps.", - "type": "object", - "properties": { - "name": { - "description": "Name of the step.", - "type": "string" - }, - "description": { - "description": "More detailed description of the step.", - "type": "string" - }, - "errorMessage": { - "description": "Error message, specified if the step is in a failed state.", - "type": "string" - }, - "status": { - "description": "Status of the step, bubbled up from the ECE action plan for installation attempts. Values are: 'Success', 'Error', 'InProgress', and 'Unknown status'.", - "type": "string" - }, - "startTimeUtc": { - "description": "When the step started, or empty if it has not started executing.", - "type": "string", - "format": "date-time" - }, - "endTimeUtc": { - "description": "When the step reached a terminal state.", - "type": "string", - "format": "date-time" - }, - "lastUpdatedTimeUtc": { - "description": "Completion time of this step or the last completed sub-step.", - "type": "string", - "format": "date-time" - }, - "expectedExecutionTime": { - "description": "Expected execution time of a given step. This is optionally authored in the update action plan and can be empty.", - "type": "string" - }, - "steps": { - "description": "Recursive model for child steps of this step.", - "type": "array", - "items": { - "$ref": "#/definitions/Step" - }, - "x-ms-identifiers": [ - "name" - ] - } - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "UpdateNameParameter": { - "name": "updateName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the Update", - "x-ms-parameter-location": "method" - }, - "UpdateRunNameParameter": { - "name": "updateRunName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the Update Run", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/updateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/updateSummaries.json deleted file mode 100644 index 4796c93ea8d3..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/updateSummaries.json +++ /dev/null @@ -1,510 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-11-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSummaries": { - "get": { - "operationId": "UpdateSummaries_List", - "description": "List all Update summaries under the HCI cluster", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateSummariesList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Update summaries under cluster resource": { - "$ref": "./examples/ListUpdateSummaries.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSummaries/default": { - "delete": { - "operationId": "UpdateSummaries_Delete", - "description": "Delete Update Summaries", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "ACCEPTED", - "headers": { - "Azure-AsyncOperation": { - "description": "URL to query for status of the operation.", - "type": "string" - } - } - }, - "204": { - "description": "No Content" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Delete an Update": { - "$ref": "./examples/DeleteUpdateSummaries.json" - } - } - }, - "put": { - "operationId": "UpdateSummaries_Put", - "description": "Put Update summaries under the HCI cluster", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "updateLocationProperties", - "in": "body", - "description": "Properties of the UpdateSummaries resource", - "required": true, - "schema": { - "$ref": "#/definitions/UpdateSummaries" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateSummaries" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Put Update summaries under cluster resource": { - "$ref": "./examples/PutUpdateSummaries.json" - } - } - }, - "get": { - "operationId": "UpdateSummaries_Get", - "description": "Get all Update summaries under the HCI cluster", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateSummaries" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Update summaries under cluster resource": { - "$ref": "./examples/GetUpdateSummaries.json" - } - } - } - } - }, - "definitions": { - "UpdateSummariesList": { - "description": "List of Update Summaries", - "type": "object", - "properties": { - "value": { - "description": "List of Update Summaries", - "type": "array", - "items": { - "$ref": "#/definitions/UpdateSummaries" - }, - "x-ms-identifiers": [] - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "UpdateSummaries": { - "description": "Get the update summaries for the cluster", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "location": { - "type": "string", - "x-ms-mutability": [ - "read", - "create" - ], - "description": "The geo-location where the resource lives" - }, - "properties": { - "description": "Update summaries properties", - "type": "object", - "$ref": "#/definitions/UpdateSummariesProperties", - "x-ms-client-flatten": true - } - } - }, - "UpdateSummariesProperties": { - "description": "Properties of Update summaries", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning state of the UpdateSummaries proxy resource. Indicates the current lifecycle status of the update summary operation, such as whether it has been accepted, is in progress, or has completed.", - "type": "string", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "Accepted", - "Provisioning" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The update summary operation completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The update summary operation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The update summary operation was canceled before completion." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The update summary operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The update summary operation is currently being provisioned." - } - ] - }, - "readOnly": true - }, - "oemFamily": { - "description": "OEM family name.", - "type": "string" - }, - "currentOemVersion": { - "description": "Current OEM Version.", - "type": "string" - }, - "hardwareModel": { - "description": "Name of the hardware model.", - "type": "string" - }, - "packageVersions": { - "description": "Current version of each updatable component.", - "type": "array", - "items": { - "$ref": "#/definitions/PackageVersionInfo" - }, - "x-ms-client-flatten": true, - "x-ms-identifiers": [ - "version" - ] - }, - "currentVersion": { - "description": "Current Solution Bundle version of the stamp.", - "type": "string" - }, - "currentSbeVersion": { - "description": "Current Sbe version of the stamp.", - "type": "string" - }, - "lastUpdated": { - "description": "Last time an update installation completed successfully.", - "type": "string", - "format": "date-time" - }, - "lastChecked": { - "description": "Last time the update service successfully checked for updates", - "type": "string", - "format": "date-time" - }, - "healthState": { - "description": "Overall health state for update-specific health checks.", - "type": "object", - "$ref": "#/definitions/HealthState", - "x-ms-client-flatten": true - }, - "healthCheckResult": { - "description": "An array of pre-check result objects.", - "type": "array", - "items": { - "$ref": "./hciCommon.json#/definitions/PrecheckResult" - }, - "x-ms-client-flatten": true, - "x-ms-identifiers": [ - "name" - ] - }, - "healthCheckDate": { - "description": "Last time the package-specific checks were run.", - "type": "string", - "format": "date-time" - }, - "state": { - "description": "Overall update state of the stamp. Indicates the current status of update deployment across the stamp, including preparation, application, and any issues encountered.", - "type": "string", - "enum": [ - "Unknown", - "AppliedSuccessfully", - "UpdateAvailable", - "UpdateInProgress", - "UpdateFailed", - "NeedsAttention", - "PreparationInProgress", - "PreparationFailed" - ], - "x-ms-enum": { - "name": "updateSummariesPropertiesState", - "modelAsString": true, - "values": [ - { - "name": "Unknown", - "value": "Unknown", - "description": "The update state is not known." - }, - { - "name": "AppliedSuccessfully", - "value": "AppliedSuccessfully", - "description": "Updates have been successfully applied to the stamp." - }, - { - "name": "UpdateAvailable", - "value": "UpdateAvailable", - "description": "Updates are available but have not yet been applied." - }, - { - "name": "UpdateInProgress", - "value": "UpdateInProgress", - "description": "Updates are currently being applied to the stamp." - }, - { - "name": "UpdateFailed", - "value": "UpdateFailed", - "description": "The update process failed." - }, - { - "name": "NeedsAttention", - "value": "NeedsAttention", - "description": "The update process requires user intervention or has encountered issues needing attention." - }, - { - "name": "PreparationInProgress", - "value": "PreparationInProgress", - "description": "Preparation for the update is currently in progress." - }, - { - "name": "PreparationFailed", - "value": "PreparationFailed", - "description": "Preparation for the update failed." - } - ] - } - } - } - }, - "PackageVersionInfo": { - "description": "Current version of each updatable component.", - "type": "object", - "properties": { - "packageType": { - "description": "Package type", - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - }, - "lastUpdated": { - "description": "Last time this component was updated.", - "type": "string", - "format": "date-time" - } - } - }, - "HealthState": { - "type": "string", - "description": "Represents the health status of a system component or operation. Indicates whether the component is functioning correctly, has warnings or errors, or is undergoing a process.", - "enum": [ - "Unknown", - "Success", - "Failure", - "Warning", - "Error", - "InProgress" - ], - "x-ms-enum": { - "name": "HealthState", - "modelAsString": true, - "values": [ - { - "name": "Unknown", - "value": "Unknown", - "description": "The health state is not known or cannot be determined." - }, - { - "name": "Success", - "value": "Success", - "description": "The component is healthy and operating as expected." - }, - { - "name": "Failure", - "value": "Failure", - "description": "The component has failed and is not functioning properly." - }, - { - "name": "Warning", - "value": "Warning", - "description": "The component has a warning that may require attention but is still operational." - }, - { - "name": "Error", - "value": "Error", - "description": "The component has encountered an error affecting its functionality." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The health evaluation or operation is currently in progress." - } - ] - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/updates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/updates.json deleted file mode 100644 index fc88287ae269..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/updates.json +++ /dev/null @@ -1,769 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-11-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/apply": { - "post": { - "operationId": "Updates_Post", - "description": "Apply Update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "ACCEPTED", - "headers": { - "Azure-AsyncOperation": { - "description": "URL to query for status of the operation.", - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List available updates": { - "$ref": "./examples/PostUpdates.json" - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates": { - "get": { - "operationId": "Updates_List", - "description": "List all Updates", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List available updates": { - "$ref": "./examples/ListUpdates.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}": { - "delete": { - "operationId": "Updates_Delete", - "description": "Delete specified Update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "ACCEPTED", - "headers": { - "Azure-AsyncOperation": { - "description": "URL to query for status of the operation.", - "type": "string" - } - } - }, - "204": { - "description": "No Content" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Delete an Update": { - "$ref": "./examples/DeleteUpdates.json" - } - } - }, - "put": { - "operationId": "Updates_Put", - "description": "Put specified Update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "updateProperties", - "in": "body", - "description": "Properties of the Updates object", - "required": true, - "schema": { - "$ref": "#/definitions/Update" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Update" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Put a specific update": { - "$ref": "./examples/PutUpdates.json" - } - } - }, - "get": { - "operationId": "Updates_Get", - "description": "Get specified Update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Update" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get a specific update": { - "$ref": "./examples/GetUpdates.json" - } - } - } - } - }, - "definitions": { - "UpdateList": { - "description": "List of Updates", - "type": "object", - "properties": { - "value": { - "description": "List of Updates", - "type": "array", - "items": { - "$ref": "#/definitions/Update" - } - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "UpdatePrerequisite": { - "description": "If update State is HasPrerequisite, this property contains an array of objects describing prerequisite updates before installing this update. Otherwise, it is empty.", - "type": "object", - "properties": { - "updateType": { - "description": "Updatable component type.", - "type": "string" - }, - "version": { - "description": "Version of the prerequisite.", - "type": "string" - }, - "packageName": { - "description": "Friendly name of the prerequisite.", - "type": "string" - } - } - }, - "Update": { - "description": "Update details", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "location": { - "type": "string", - "x-ms-mutability": [ - "read", - "create" - ], - "description": "The geo-location where the resource lives" - }, - "properties": { - "description": "Update properties", - "type": "object", - "$ref": "#/definitions/UpdateProperties", - "x-ms-client-flatten": true - } - } - }, - "UpdateProperties": { - "description": "Details of a singular Update in HCI Cluster", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning state of the Updates proxy resource. Indicates the current lifecycle status of the update operation, such as whether it has been accepted, is in progress, or has completed.", - "type": "string", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "Accepted", - "Provisioning" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The update operation completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The update operation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The update operation was canceled before completion." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The update operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The update operation is currently being provisioned." - } - ] - }, - "readOnly": true - }, - "installedDate": { - "description": "Date that the update was installed.", - "type": "string", - "format": "date-time" - }, - "description": { - "description": "Description of the update.", - "type": "string" - }, - "minSbeVersionRequired": { - "description": "Minimum Sbe Version of the update.", - "type": "string" - }, - "state": { - "description": "Represents the current state of the update as it relates to this stamp. This includes phases such as preparation, installation, scanning, and error handling, providing insight into the update's progress and any issues encountered.", - "type": "string", - "enum": [ - "HasPrerequisite", - "Obsolete", - "Ready", - "NotApplicableBecauseAnotherUpdateIsInProgress", - "Preparing", - "Installing", - "Installed", - "PreparationFailed", - "InstallationFailed", - "Invalid", - "Recalled", - "Downloading", - "DownloadFailed", - "HealthChecking", - "HealthCheckFailed", - "ReadyToInstall", - "ScanInProgress", - "ScanFailed", - "AdditionalContentRequired" - ], - "x-ms-enum": { - "name": "state", - "modelAsString": true, - "values": [ - { - "name": "HasPrerequisite", - "value": "HasPrerequisite", - "description": "The update has prerequisites that must be fulfilled before it can proceed." - }, - { - "name": "Obsolete", - "value": "Obsolete", - "description": "The update is obsolete and no longer applicable." - }, - { - "name": "Ready", - "value": "Ready", - "description": "The update is ready to be installed." - }, - { - "name": "NotApplicableBecauseAnotherUpdateIsInProgress", - "value": "NotApplicableBecauseAnotherUpdateIsInProgress", - "description": "The update cannot be applied because another update is currently in progress." - }, - { - "name": "Preparing", - "value": "Preparing", - "description": "The update is currently in the preparation phase." - }, - { - "name": "Installing", - "value": "Installing", - "description": "The update is currently being installed." - }, - { - "name": "Installed", - "value": "Installed", - "description": "The update has been successfully installed." - }, - { - "name": "PreparationFailed", - "value": "PreparationFailed", - "description": "The update preparation phase failed." - }, - { - "name": "InstallationFailed", - "value": "InstallationFailed", - "description": "The update installation failed." - }, - { - "name": "Invalid", - "value": "Invalid", - "description": "The update is invalid and cannot be applied." - }, - { - "name": "Recalled", - "value": "Recalled", - "description": "The update has been recalled and should not be applied." - }, - { - "name": "Downloading", - "value": "Downloading", - "description": "The update is currently being downloaded." - }, - { - "name": "DownloadFailed", - "value": "DownloadFailed", - "description": "The update download failed." - }, - { - "name": "HealthChecking", - "value": "HealthChecking", - "description": "A health check is being performed before applying the update." - }, - { - "name": "HealthCheckFailed", - "value": "HealthCheckFailed", - "description": "The health check failed, preventing the update from proceeding." - }, - { - "name": "ReadyToInstall", - "value": "ReadyToInstall", - "description": "The update is ready to be installed after successful preparation and checks." - }, - { - "name": "ScanInProgress", - "value": "ScanInProgress", - "description": "The system is scanning for updates." - }, - { - "name": "ScanFailed", - "value": "ScanFailed", - "description": "The scan for updates failed." - }, - { - "name": "AdditionalContentRequired", - "value": "AdditionalContentRequired", - "description": "Additional content is required to proceed with the update." - } - ] - } - }, - "prerequisites": { - "description": "If update State is HasPrerequisite, this property contains an array of objects describing prerequisite updates before installing this update. Otherwise, it is empty.", - "type": "array", - "items": { - "$ref": "#/definitions/UpdatePrerequisite" - }, - "x-ms-identifiers": [ - "packageName" - ] - }, - "componentVersions": { - "description": "An array of component versions for a Solution Bundle update, and an empty array otherwise. ", - "type": "array", - "items": { - "$ref": "#/definitions/PackageVersionInfo" - }, - "x-ms-client-flatten": true, - "x-ms-identifiers": [ - "version" - ] - }, - "rebootRequired": { - "type": "object", - "$ref": "#/definitions/RebootRequirement", - "x-ms-client-flatten": true - }, - "healthState": { - "description": "Overall health state for update-specific health checks.", - "type": "object", - "$ref": "#/definitions/HealthState", - "x-ms-client-flatten": true - }, - "healthCheckResult": { - "description": "An array of PrecheckResult objects.", - "type": "array", - "items": { - "$ref": "./hciCommon.json#/definitions/PrecheckResult" - }, - "x-ms-client-flatten": true - }, - "healthCheckDate": { - "description": "Last time the package-specific checks were run.", - "type": "string", - "format": "date-time" - }, - "packagePath": { - "description": "Path where the update package is available.", - "type": "string" - }, - "packageSizeInMb": { - "description": "Size of the package. This value is a combination of the size from update metadata and size of the payload that results from the live scan operation for OS update content.", - "type": "number" - }, - "displayName": { - "description": "Display name of the Update", - "type": "string" - }, - "version": { - "description": "Version of the update.", - "type": "string" - }, - "publisher": { - "description": "Publisher of the update package.", - "type": "string" - }, - "releaseLink": { - "description": "Link to release notes for the update.", - "type": "string" - }, - "availabilityType": { - "description": "Indicates how the update content is made available for download. This determines whether the update is sourced locally, from an online repository, or requires user notification.", - "type": "string", - "enum": [ - "Local", - "Online", - "Notify" - ], - "x-ms-enum": { - "name": "availabilityType", - "modelAsString": true, - "values": [ - { - "name": "Local", - "value": "Local", - "description": "The update content is available locally within the environment." - }, - { - "name": "Online", - "value": "Online", - "description": "The update content is available from an online source." - }, - { - "name": "Notify", - "value": "Notify", - "description": "The system will notify the user when update content becomes available." - } - ] - } - }, - "packageType": { - "description": "Customer-visible type of the update.", - "type": "string" - }, - "additionalProperties": { - "description": "Extensible KV pairs serialized as a string. This is currently used to report the stamp OEM family and hardware model information when an update is flagged as Invalid for the stamp based on OEM type.", - "type": "string" - }, - "updateStateProperties": { - "description": "Additional information regarding the state of the update. See definition of UpdateStateProperties type below for more details on this property.", - "type": "object", - "$ref": "#/definitions/UpdateStateProperties", - "x-ms-client-flatten": true - } - } - }, - "UpdateStateProperties": { - "description": "Additional information regarding the state of the update. See definition of UpdateStateProperties type below for more details on this property.", - "type": "object", - "properties": { - "progressPercentage": { - "description": "Progress percentage of ongoing operation. Currently this property is only valid when the update is in the Downloading state, where it maps to how much of the update content has been downloaded.", - "type": "number" - }, - "notifyMessage": { - "description": "Brief message with instructions for updates of AvailabilityType Notify.", - "type": "string" - } - } - }, - "PackageVersionInfo": { - "description": "Current version of each updatable component.", - "type": "object", - "properties": { - "packageType": { - "description": "Package type", - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - }, - "lastUpdated": { - "description": "Last time this component was updated.", - "type": "string", - "format": "date-time" - } - } - }, - "RebootRequirement": { - "type": "string", - "description": "Indicates whether a reboot is required after the update or operation. Helps determine if a system restart is necessary to complete the process.", - "enum": [ - "Unknown", - "True", - "False" - ], - "x-ms-enum": { - "name": "RebootRequirement", - "modelAsString": true, - "values": [ - { - "name": "Unknown", - "value": "Unknown", - "description": "It is not known whether a reboot is required." - }, - { - "name": "True", - "value": "True", - "description": "A reboot is required to complete the operation." - }, - { - "name": "False", - "value": "False", - "description": "No reboot is required after the operation." - } - ] - } - }, - "HealthState": { - "type": "string", - "description": "Overall health state for update-specific health checks. Indicates whether the system is functioning correctly, has warnings or errors, or is undergoing a health evaluation.", - "enum": [ - "Unknown", - "Success", - "Failure", - "Warning", - "Error", - "InProgress" - ], - "x-ms-enum": { - "name": "HealthState", - "modelAsString": true, - "values": [ - { - "name": "Unknown", - "value": "Unknown", - "description": "The health state is not known or cannot be determined." - }, - { - "name": "Success", - "value": "Success", - "description": "The health check completed successfully and the system is healthy." - }, - { - "name": "Failure", - "value": "Failure", - "description": "The health check failed, indicating a critical issue." - }, - { - "name": "Warning", - "value": "Warning", - "description": "The health check detected a non-critical issue that may require attention." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred during the health check process." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The health check is currently in progress." - } - ] - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "UpdateNameParameter": { - "name": "updateName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the Update", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/validatedSolutionRecipes.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/validatedSolutionRecipes.json deleted file mode 100644 index 04985965bf7f..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-11-01-preview/validatedSolutionRecipes.json +++ /dev/null @@ -1,396 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Microsoft.AzureStackHCI", - "version": "2025-11-01-preview", - "description": "Azure Stack HCI service" - }, - "schemes": [ - "https" - ], - "host": "management.azure.com", - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "tags": [ - { - "name": "ValidatedSolutionRecipes" - } - ], - "paths": { - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/validatedSolutionRecipes": { - "get": { - "operationId": "ValidatedSolutionRecipes_ListBySubscriptionLocationResource", - "tags": [ - "ValidatedSolutionRecipes" - ], - "description": "List all validated solution recipes.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/ValidatedSolutionRecipeListResult" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "ValidatedSolutionRecipes_ListBySubscriptionLocationResource": { - "$ref": "./examples/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/validatedSolutionRecipes/{validatedSolutionRecipeName}": { - "get": { - "operationId": "ValidatedSolutionRecipes_Get", - "tags": [ - "ValidatedSolutionRecipes" - ], - "description": "Get a validated solution recipe.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" - }, - { - "name": "validatedSolutionRecipeName", - "in": "path", - "description": "The name of the ValidatedSolutionRecipe", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-.]{3,50}$" - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/ValidatedSolutionRecipe" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "ValidatedSolutionRecipes_Get": { - "$ref": "./examples/ValidatedSolutionRecipes_Get.json" - } - } - } - } - }, - "definitions": { - "ValidatedSolutionRecipe": { - "type": "object", - "description": "Represents a validated solution recipe resource.", - "properties": { - "properties": { - "$ref": "#/definitions/ValidatedSolutionRecipeProperties", - "description": "The resource-specific properties for this resource." - } - }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ] - }, - "ValidatedSolutionRecipeCapabilities": { - "type": "object", - "description": "Represents capabilities available in a validated solution recipe.", - "properties": { - "clusterCapabilities": { - "type": "array", - "description": "Represents the cluster capabilities.", - "items": { - "$ref": "#/definitions/ValidatedSolutionRecipeCapability" - }, - "x-ms-identifiers": [] - }, - "nodeCapabilities": { - "type": "array", - "description": "Represents the node capabilities.", - "items": { - "$ref": "#/definitions/ValidatedSolutionRecipeCapability" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "clusterCapabilities", - "nodeCapabilities" - ] - }, - "ValidatedSolutionRecipeCapability": { - "type": "object", - "description": "Represents capability available in a validated solution recipe.", - "properties": { - "capabilityName": { - "type": "string", - "description": "Represents the capability name." - } - }, - "required": [ - "capabilityName" - ] - }, - "ValidatedSolutionRecipeComponent": { - "type": "object", - "description": "Represents component available in a validated solution recipe.", - "properties": { - "name": { - "type": "string", - "description": "Represents the component's name." - }, - "type": { - "type": "string", - "description": "Represents the component's type." - }, - "requiredVersion": { - "type": "string", - "description": "Represents the component's required version." - }, - "installOrder": { - "type": "integer", - "format": "int64", - "description": "Represents the component's install order." - }, - "tags": { - "type": "array", - "description": "Represents the component's tags.", - "items": { - "type": "string" - } - }, - "payloads": { - "type": "array", - "description": "Represents the component's payloads.", - "items": { - "$ref": "#/definitions/ValidatedSolutionRecipeComponentPayload" - }, - "x-ms-identifiers": [] - }, - "metadata": { - "$ref": "#/definitions/ValidatedSolutionRecipeComponentMetadata", - "description": "Represents the component's metadata." - } - }, - "required": [ - "name", - "type", - "tags" - ] - }, - "ValidatedSolutionRecipeComponentMetadata": { - "type": "object", - "description": "Represents metadata associated with a component available in a validated solution recipe.", - "properties": { - "extensionType": { - "type": "string", - "description": "Represents the type of extension." - }, - "publisher": { - "type": "string", - "description": "Represents the publisher of the extension." - }, - "enableAutomaticUpgrade": { - "type": "boolean", - "description": "Indicates whether automatic upgrades of the extension are enabled." - }, - "lcmUpdate": { - "type": "boolean", - "description": "Indicates whether the LCM (Lifecycle Management) update of the extension is enabled." - }, - "catalog": { - "type": "string", - "description": "Specifies the catalog to which the extension belongs." - }, - "ring": { - "type": "string", - "description": "Specifies the ring to which the extension belongs, internally used by component." - }, - "releaseTrain": { - "type": "string", - "description": "Specifies the release train to which given component belongs." - }, - "link": { - "type": "string", - "description": "Specifies the link associated with the extension." - }, - "name": { - "type": "string", - "description": "Specifies the name of the extension." - }, - "expectedHash": { - "type": "string", - "description": "Specifies the expected hash of the extension." - }, - "previewSource": { - "type": "string", - "description": "Specifies the preview source of the extension." - } - } - }, - "ValidatedSolutionRecipeComponentPayload": { - "type": "object", - "description": "Represents payloads associated with a component available in a validated solution recipe.", - "properties": { - "identifier": { - "type": "string", - "description": "Represents the unique identifier of the payload used to query the URL." - }, - "hash": { - "type": "string", - "description": "Represents the cryptographic hash of the payload, ensuring data integrity." - }, - "fileName": { - "type": "string", - "description": "Represents the name of the file associated with the payload." - }, - "url": { - "type": "string", - "description": "Represents the URL from which the payload can be downloaded." - } - }, - "required": [ - "identifier", - "hash", - "fileName", - "url" - ] - }, - "ValidatedSolutionRecipeContent": { - "type": "object", - "description": "Represents contents of a validated solution recipe resource.", - "properties": { - "info": { - "$ref": "#/definitions/ValidatedSolutionRecipeInfo", - "description": "Represents information about a validated solution recipe." - }, - "capabilities": { - "$ref": "#/definitions/ValidatedSolutionRecipeCapabilities", - "description": "Represents capabilities available in a validated solution recipe." - }, - "components": { - "type": "array", - "description": "Represents components available in a validated solution recipe.", - "items": { - "$ref": "#/definitions/ValidatedSolutionRecipeComponent" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "info", - "components" - ] - }, - "ValidatedSolutionRecipeInfo": { - "type": "object", - "description": "Represents information about a validated solution recipe.", - "properties": { - "solutionType": { - "type": "string", - "description": "Represents the solution type for which this validated solution recipe is applicable." - }, - "version": { - "type": "string", - "description": "Represents the version for which this validated solution recipe is applicable." - } - }, - "required": [ - "solutionType", - "version" - ] - }, - "ValidatedSolutionRecipeListResult": { - "type": "object", - "description": "The response of a ValidatedSolutionRecipe list operation.", - "properties": { - "value": { - "type": "array", - "description": "The ValidatedSolutionRecipe items on this page", - "items": { - "$ref": "#/definitions/ValidatedSolutionRecipe" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "ValidatedSolutionRecipeProperties": { - "type": "object", - "description": "Represents properties of a validated solution recipe resource.", - "properties": { - "recipeContent": { - "$ref": "#/definitions/ValidatedSolutionRecipeContent", - "description": "Represents contents of a validated solution recipe." - }, - "signature": { - "type": "string", - "description": "Represents the signature of the recipe, to be used for ensuring its integrity." - } - }, - "required": [ - "recipeContent" - ] - } - }, - "parameters": {} -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/arcSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/arcSettings.json deleted file mode 100644 index 736cde7af466..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/arcSettings.json +++ /dev/null @@ -1,1185 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-12-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings": { - "get": { - "operationId": "ArcSettings_ListByCluster", - "description": "Get ArcSetting resources of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcSettingList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List ArcSetting resources by HCI Cluster": { - "$ref": "./examples/ListArcSettingsByCluster.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}": { - "get": { - "operationId": "ArcSettings_Get", - "description": "Get ArcSetting resource details of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcSetting" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get ArcSetting": { - "$ref": "./examples/GetArcSetting.json" - } - } - }, - "put": { - "operationId": "ArcSettings_Create", - "description": "Create ArcSetting for HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "name": "arcSetting", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ArcSetting" - }, - "description": "Parameters supplied to the Create ArcSetting resource for this HCI cluster." - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcSetting" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Create ArcSetting": { - "$ref": "./examples/PutArcSetting.json" - } - } - }, - "patch": { - "operationId": "ArcSettings_Update", - "description": "Update ArcSettings for HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "name": "arcSetting", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ArcSettingsPatch" - }, - "description": "ArcSettings parameters that needs to be updated" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcSetting" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Patch ArcSetting": { - "$ref": "./examples/PatchArcSetting.json" - } - } - }, - "delete": { - "operationId": "ArcSettings_Delete", - "description": "Delete ArcSetting resource details of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "Accepted" - }, - "204": { - "description": "No content" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Delete ArcSetting": { - "$ref": "./examples/DeleteArcSetting.json" - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/generatePassword": { - "post": { - "tags": [ - "ArcSettings" - ], - "operationId": "ArcSettings_GeneratePassword", - "description": "Generate password for arc settings.", - "x-ms-examples": { - "Generate Password": { - "$ref": "./examples/GeneratePassword.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/PasswordCredential" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/createArcIdentity": { - "post": { - "tags": [ - "ArcSettings" - ], - "operationId": "ArcSettings_CreateIdentity", - "description": "Create Aad identity for arc settings.", - "x-ms-examples": { - "Create Arc Identity": { - "$ref": "./examples/CreateArcIdentity.json" - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcIdentityResponse" - } - }, - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/reconcile": { - "post": { - "tags": [ - "ArcSettings" - ], - "operationId": "ArcSettings_Reconcile", - "description": "Reconcile Arc Settings with information related to all nodes.", - "x-ms-examples": { - "Reconcile Arc Settings": { - "$ref": "./examples/reconcileArcSettings.json" - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "reconcileArcSettingsRequest", - "in": "body", - "description": "Request for reconciling Arc Settings.", - "required": true, - "schema": { - "$ref": "#/definitions/ReconcileArcSettingsRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcSetting" - } - }, - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/consentAndInstallDefaultExtensions": { - "post": { - "tags": [ - "ArcSettings" - ], - "operationId": "ArcSettings_ConsentAndInstallDefaultExtensions", - "description": "Add consent time for default extensions and initiate extensions installation", - "x-ms-examples": { - "Consent And Install Default Extensions": { - "$ref": "./examples/ConsentAndInstallDefaultExtensions.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ArcSetting" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/initializeDisableProcess": { - "post": { - "tags": [ - "ArcSettings" - ], - "operationId": "ArcSettings_InitializeDisableProcess", - "description": "Initializes ARC Disable process on the cluster", - "x-ms-examples": { - "Trigger ARC Disable": { - "$ref": "./examples/InitializeDisableProcess.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - } - } - }, - "definitions": { - "ReconcileArcSettingsRequest": { - "description": "Request for reconciling Arc Settings.", - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/ReconcileArcSettingsRequestProperties" - } - }, - "additionalProperties": false - }, - "ReconcileArcSettingsRequestProperties": { - "description": "List of Arc Nodes in the cluster", - "type": "object", - "properties": { - "clusterNodes": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ArcSettingList": { - "description": "List of ArcSetting proxy resources for the HCI cluster.", - "type": "object", - "properties": { - "value": { - "description": "List of ArcSetting proxy resources.", - "type": "array", - "items": { - "$ref": "#/definitions/ArcSetting" - }, - "readOnly": true - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "ArcSettingsPatch": { - "description": "ArcSetting details to update.", - "type": "object", - "properties": { - "tags": { - "description": "Resource tags.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "properties": { - "description": "ArcSettings properties.", - "$ref": "#/definitions/ArcSettingsPatchProperties", - "x-ms-client-flatten": true - } - } - }, - "ArcSettingsPatchProperties": { - "description": "ArcSettings properties.", - "type": "object", - "properties": { - "connectivityProperties": { - "description": "contains connectivity related configuration for ARC resources", - "type": "object", - "items": { - "$ref": "#/definitions/ArcConnectivityProperties" - } - } - } - }, - "ArcSetting": { - "description": "ArcSetting details.", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "description": "ArcSetting properties.", - "$ref": "#/definitions/ArcSettingProperties", - "x-ms-client-flatten": true - } - } - }, - "ArcSettingProperties": { - "description": "ArcSetting properties.", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning state of the ArcSetting proxy resource.", - "type": "string", - "enum": [ - "NotSpecified", - "Error", - "Succeeded", - "Failed", - "Canceled", - "Connected", - "Disconnected", - "Deleted", - "Creating", - "Updating", - "Deleting", - "Moving", - "PartiallySucceeded", - "PartiallyConnected", - "InProgress", - "Accepted", - "Provisioning", - "DisableInProgress" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The provisioning state is not specified." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred during provisioning." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Provisioning completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Provisioning failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Provisioning was canceled." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The resource is connected." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The resource is disconnected." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The resource has been deleted." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The resource is being created." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The resource is being updated." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The resource is being deleted." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The resource is being moved." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "Provisioning partially succeeded." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "The resource is partially connected." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "Provisioning is in progress." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "Provisioning request has been accepted." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The resource is currently provisioning." - }, - { - "name": "DisableInProgress", - "value": "DisableInProgress", - "description": "The resource is being disabled." - } - ] - }, - "readOnly": true - }, - "arcInstanceResourceGroup": { - "description": "The resource group that hosts the Arc agents, ie. Hybrid Compute Machine resources.", - "type": "string" - }, - "arcApplicationClientId": { - "description": "App id of arc AAD identity.", - "type": "string" - }, - "arcApplicationTenantId": { - "description": "Tenant id of arc AAD identity.", - "type": "string" - }, - "arcServicePrincipalObjectId": { - "description": "Object id of arc AAD service principal.", - "type": "string" - }, - "arcApplicationObjectId": { - "description": "Object id of arc AAD identity.", - "type": "string" - }, - "aggregateState": { - "description": "Aggregate state of Arc agent across the nodes in this HCI cluster.", - "type": "string", - "enum": [ - "NotSpecified", - "Error", - "Succeeded", - "Canceled", - "Failed", - "Connected", - "Disconnected", - "Deleted", - "Creating", - "Updating", - "Deleting", - "Moving", - "PartiallySucceeded", - "PartiallyConnected", - "InProgress", - "Accepted", - "Provisioning", - "DisableInProgress" - ], - "x-ms-enum": { - "name": "ArcSettingAggregateState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The aggregate state is not specified." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred in the aggregate state." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The operation successfully completed across all nodes." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The operation was canceled across the nodes." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The operation failed on all or most nodes." - }, - { - "name": "Connected", - "value": "Connected", - "description": "All nodes are connected." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "All nodes are disconnected." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The Arc agent has been deleted from all nodes." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The Arc agent is being created across the nodes." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The Arc agent is being updated across the nodes." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The Arc agent is being deleted across the nodes." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The Arc agent is being moved across the nodes." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "The operation succeeded on some nodes." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "Some nodes are connected, others are not." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The operation is currently in progress across the nodes." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The Arc agent is being provisioned across the nodes." - }, - { - "name": "DisableInProgress", - "value": "DisableInProgress", - "description": "The Arc agent is being disabled across the nodes." - } - ] - }, - "readOnly": true - }, - "perNodeDetails": { - "description": "State of Arc agent in each of the nodes.", - "type": "array", - "items": { - "$ref": "#/definitions/PerNodeState" - }, - "readOnly": true - }, - "connectivityProperties": { - "description": "contains connectivity related configuration for ARC resources", - "type": "object", - "items": { - "$ref": "#/definitions/ArcConnectivityProperties" - } - }, - "defaultExtensions": { - "description": "Properties for each of the default extensions category", - "type": "array", - "items": { - "$ref": "#/definitions/DefaultExtensionDetails" - }, - "x-ms-identifiers": [ - "category" - ], - "readOnly": true - } - } - }, - "PerNodeState": { - "description": "Status of Arc agent for a particular node in HCI Cluster.", - "type": "object", - "properties": { - "name": { - "type": "string", - "readOnly": true, - "description": "Name of the Node in HCI Cluster" - }, - "arcInstance": { - "description": "Fully qualified resource ID for the Arc agent of this node.", - "type": "string", - "readOnly": true - }, - "arcNodeServicePrincipalObjectId": { - "description": "The service principal id of the arc for server node", - "type": "string", - "readOnly": true - }, - "state": { - "description": "State of the Arc agent in this node. Indicates the current lifecycle status of the agent, such as whether it's being provisioned, connected, updated, or has encountered an error.", - "type": "string", - "enum": [ - "NotSpecified", - "Error", - "Succeeded", - "Canceled", - "Failed", - "Connected", - "Disconnected", - "Deleted", - "Creating", - "Updating", - "Deleting", - "Moving", - "PartiallySucceeded", - "PartiallyConnected", - "InProgress", - "Accepted", - "Provisioning", - "DisableInProgress" - ], - "x-ms-enum": { - "name": "NodeArcState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The state is not specified." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred during the agent's lifecycle." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The operation completed successfully." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The operation was canceled before completion." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The operation failed." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The Arc agent is connected on this node." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The Arc agent is disconnected on this node." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The Arc agent has been deleted from this node." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The Arc agent is being created on this node." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The Arc agent is being updated on this node." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The Arc agent is being deleted from this node." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The Arc agent is being moved on this node." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "The operation partially succeeded." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "The Arc agent is partially connected on this node." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The operation is currently in progress." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The Arc agent is currently being provisioned on this node." - }, - { - "name": "DisableInProgress", - "value": "DisableInProgress", - "description": "The Arc agent is in the process of being disabled on this node." - } - ] - }, - "readOnly": true - } - } - }, - "DefaultExtensionDetails": { - "description": "Properties for a particular default extension category.", - "type": "object", - "properties": { - "category": { - "description": "Default extension category", - "type": "string", - "readOnly": true - }, - "consentTime": { - "description": "Consent time for extension category", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "ArcConnectivityProperties": { - "description": "Connectivity related configuration required by arc server.", - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "True indicates ARC connectivity is enabled" - }, - "serviceConfigurations": { - "type": "array", - "description": "Service configurations associated with the connectivity resource. They are only processed by the server if 'enabled' property is set to 'true'.", - "items": { - "$ref": "#/definitions/ServiceConfiguration" - }, - "x-ms-identifiers": [ - "serviceName" - ] - } - }, - "additionalProperties": false - }, - "ServiceConfiguration": { - "type": "object", - "description": "Service configuration details", - "required": [ - "serviceName", - "port" - ], - "properties": { - "serviceName": { - "type": "string", - "description": "Specifies the name of the service associated with the update or operation. This helps identify which system component or tool is involved.", - "enum": [ - "WAC" - ], - "x-ms-enum": { - "name": "serviceName", - "modelAsString": true, - "values": [ - { - "name": "WAC", - "value": "WAC", - "description": "Windows Admin Center (WAC) is the service associated with this operation." - } - ] - } - }, - "port": { - "type": "integer", - "format": "int64", - "description": "The port on which service is enabled." - } - } - }, - "PasswordCredential": { - "type": "object", - "properties": { - "secretText": { - "type": "string" - }, - "keyId": { - "type": "string" - }, - "startDateTime": { - "type": "string", - "format": "date-time" - }, - "endDateTime": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "readOnly": true - }, - "ArcIdentityResponse": { - "description": "ArcIdentity details.", - "type": "object", - "properties": { - "properties": { - "description": "ArcIdentity properties.", - "$ref": "#/definitions/ArcIdentityResponseProperties", - "x-ms-client-flatten": true - } - } - }, - "ArcIdentityResponseProperties": { - "type": "object", - "properties": { - "arcApplicationClientId": { - "type": "string" - }, - "arcApplicationTenantId": { - "type": "string" - }, - "arcServicePrincipalObjectId": { - "type": "string" - }, - "arcApplicationObjectId": { - "type": "string" - } - }, - "additionalProperties": false, - "readOnly": true - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "ArcSettingNameParameter": { - "name": "arcSettingName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the proxy resource holding details of HCI ArcSetting information.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/clusters.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/clusters.json deleted file mode 100644 index 35698c04ce61..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/clusters.json +++ /dev/null @@ -1,2279 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-12-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/clusters": { - "get": { - "tags": [ - "Clusters" - ], - "operationId": "Clusters_ListBySubscription", - "x-ms-examples": { - "List clusters in a given subscription": { - "$ref": "./examples/ListClustersBySubscription.json" - } - }, - "description": "List all HCI clusters in a subscription.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ClusterList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters": { - "get": { - "tags": [ - "Clusters" - ], - "operationId": "Clusters_ListByResourceGroup", - "x-ms-examples": { - "List clusters in a given resource group": { - "$ref": "./examples/ListClustersByResourceGroup.json" - } - }, - "description": "List all HCI clusters in a resource group.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ClusterList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}": { - "get": { - "tags": [ - "Clusters" - ], - "operationId": "Clusters_Get", - "x-ms-examples": { - "Get cluster": { - "$ref": "./examples/GetCluster.json" - } - }, - "description": "Get HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "put": { - "tags": [ - "Clusters" - ], - "operationId": "Clusters_Create", - "x-ms-examples": { - "Create cluster": { - "$ref": "./examples/CreateCluster.json" - } - }, - "description": "Create an HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "cluster", - "in": "body", - "description": "Details of the HCI cluster.", - "required": true, - "schema": { - "$ref": "#/definitions/Cluster" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "patch": { - "tags": [ - "Clusters" - ], - "operationId": "Clusters_Update", - "x-ms-examples": { - "Update cluster": { - "$ref": "./examples/UpdateCluster.json" - } - }, - "description": "Update an HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "cluster", - "in": "body", - "description": "Details of the HCI cluster.", - "required": true, - "schema": { - "$ref": "#/definitions/ClusterPatch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "Clusters" - ], - "operationId": "Clusters_Delete", - "x-ms-examples": { - "Delete cluster": { - "$ref": "./examples/DeleteCluster.json" - } - }, - "description": "Delete an HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "Accepted" - }, - "204": { - "description": "No content" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSecretsLocations": { - "post": { - "operationId": "Clusters_UpdateSecretsLocations", - "tags": [ - "Clusters" - ], - "description": "Update cluster secrets locations.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "clusterName", - "in": "path", - "description": "The name of the cluster.", - "required": true, - "type": "string" - }, - { - "name": "body", - "in": "body", - "description": "The content of the action request", - "required": true, - "schema": { - "$ref": "#/definitions/SecretsLocationsChangeRequest" - } - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "202": { - "description": "Resource operation accepted.", - "headers": { - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - }, - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Update secrets locations for a Cluster": { - "$ref": "./examples/Clusters_UpdateSecretsLocations.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/uploadCertificate": { - "post": { - "tags": [ - "Cluster" - ], - "operationId": "Clusters_UploadCertificate", - "x-ms-examples": { - "Upload certificate": { - "$ref": "./examples/UploadCertificate.json" - } - }, - "description": "Upload certificate.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "uploadCertificateRequest", - "in": "body", - "description": "Upload certificate request.", - "required": true, - "schema": { - "$ref": "#/definitions/UploadCertificateRequest" - } - } - ], - "responses": { - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/createClusterIdentity": { - "post": { - "tags": [ - "Cluster" - ], - "operationId": "Clusters_CreateIdentity", - "description": "Create cluster identity.", - "x-ms-examples": { - "Create cluster Identity": { - "$ref": "./examples/CreateClusterIdentity.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ClusterIdentityResponse" - } - }, - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/extendSoftwareAssuranceBenefit": { - "post": { - "tags": [ - "Cluster" - ], - "operationId": "Clusters_ExtendSoftwareAssuranceBenefit", - "description": "Extends Software Assurance Benefit to a cluster", - "x-ms-examples": { - "Create cluster Identity": { - "$ref": "./examples/ExtendSoftwareAssuranceBenefit.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "softwareAssuranceChangeRequest", - "in": "body", - "description": "Software Assurance Change Request Payload", - "required": true, - "schema": { - "$ref": "#/definitions/SoftwareAssuranceChangeRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/changeRing": { - "post": { - "tags": [ - "Cluster" - ], - "operationId": "Clusters_ChangeRing", - "description": "Changes ring of a cluster", - "x-ms-examples": { - "Change cluster ring": { - "$ref": "./examples/ChangeClusterRing.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "changeRingRequest", - "in": "body", - "description": "Change ring request payload", - "required": true, - "schema": { - "$ref": "#/definitions/ChangeRingRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "202": { - "description": "Accepted", - "headers": { - "Location": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/triggerLogCollection": { - "post": { - "tags": [ - "Cluster" - ], - "operationId": "Clusters_TriggerLogCollection", - "description": "Trigger Log Collection on a cluster", - "x-ms-examples": { - "Trigger Log Collection": { - "$ref": "./examples/TriggerLogCollection.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "logCollectionRequest", - "in": "body", - "description": "Trigger Log Collection Request Payload", - "required": true, - "schema": { - "$ref": "#/definitions/LogCollectionRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "202": { - "description": "Accepted", - "headers": { - "Location": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/configureRemoteSupport": { - "post": { - "tags": [ - "Cluster" - ], - "operationId": "Clusters_ConfigureRemoteSupport", - "description": "Configure RemoteSupport on a cluster", - "x-ms-examples": { - "Configure Remote Support": { - "$ref": "./examples/ConfigureRemoteSupport.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "remoteSupportRequest", - "in": "body", - "description": "Configure Remote Support Request Payload", - "required": true, - "schema": { - "$ref": "#/definitions/RemoteSupportRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Cluster" - } - }, - "202": { - "description": "Accepted", - "headers": { - "Location": { - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - } - }, - "definitions": { - "ClusterList": { - "description": "List of clusters.", - "type": "object", - "properties": { - "value": { - "description": "List of clusters.", - "type": "array", - "items": { - "$ref": "#/definitions/Cluster" - } - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "Cluster": { - "description": "Cluster details.", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/TrackedResource" - } - ], - "properties": { - "identity": { - "description": "Identity of Cluster resource", - "$ref": "../../../../../../common-types/resource-management/v4/managedidentity.json#/definitions/ManagedServiceIdentity", - "x-ms-client-flatten": true - }, - "kind": { - "type": "string", - "description": "This property identifies the purpose of the Cluster deployment. For example, a valid value is AzureLocal", - "pattern": "^[-\\w\\._,\\(\\\\\\)]+$", - "x-ms-mutability": [ - "read", - "create" - ] - }, - "properties": { - "description": "Cluster properties.", - "$ref": "#/definitions/ClusterProperties", - "x-ms-client-flatten": true - } - } - }, - "ClusterPatch": { - "description": "Cluster details to update.", - "type": "object", - "properties": { - "tags": { - "description": "Resource tags.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "identity": { - "description": "Identity of Cluster resource", - "$ref": "../../../../../../common-types/resource-management/v4/managedidentity.json#/definitions/ManagedServiceIdentity", - "x-ms-client-flatten": true - }, - "properties": { - "description": "Cluster properties.", - "$ref": "#/definitions/ClusterPatchProperties", - "x-ms-client-flatten": true - } - } - }, - "ClusterProperties": { - "description": "Cluster properties.", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning state. Indicates the current lifecycle status of the resource, including creation, update, deletion, connectivity, and error states.", - "type": "string", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "Accepted", - "Provisioning", - "NotSpecified", - "Creating", - "Updating", - "Deleting", - "Moving", - "Deleted", - "PartiallySucceeded", - "InProgress", - "DisableInProgress", - "Connected", - "PartiallyConnected", - "Disconnected" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The operation completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The operation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The operation was canceled before completion." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The resource is currently being provisioned." - }, - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The provisioning state is not specified." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The resource is being created." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The resource is being updated." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The resource is being deleted." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The resource is being moved." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The resource has been deleted." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "The operation partially succeeded." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The operation is currently in progress." - }, - { - "name": "DisableInProgress", - "value": "DisableInProgress", - "description": "The resource is in the process of being disabled." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The resource is connected." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "The resource is partially connected." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The resource is disconnected." - } - ] - }, - "readOnly": true - }, - "status": { - "description": "Status of the cluster agent. Indicates the current connectivity, validation, and deployment state of the agent within the cluster.", - "type": "string", - "enum": [ - "NotYetRegistered", - "ConnectedRecently", - "NotConnectedRecently", - "Disconnected", - "Error", - "NotSpecified", - "ValidationInProgress", - "ValidationSuccess", - "ValidationFailed", - "DeploymentInProgress", - "DeploymentFailed", - "DeploymentSuccess" - ], - "x-ms-enum": { - "name": "Status", - "modelAsString": true, - "values": [ - { - "name": "NotYetRegistered", - "value": "NotYetRegistered", - "description": "The cluster agent has not yet registered with Azure." - }, - { - "name": "ConnectedRecently", - "value": "ConnectedRecently", - "description": "The cluster agent has connected to Azure recently." - }, - { - "name": "NotConnectedRecently", - "value": "NotConnectedRecently", - "description": "The cluster agent has not connected to Azure recently." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The cluster agent is currently disconnected from Azure." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred in the cluster agent's operation." - }, - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The status of the cluster agent is not specified." - }, - { - "name": "ValidationInProgress", - "value": "ValidationInProgress", - "description": "Validation of the cluster agent is currently in progress." - }, - { - "name": "ValidationSuccess", - "value": "ValidationSuccess", - "description": "Validation of the cluster agent completed successfully." - }, - { - "name": "ValidationFailed", - "value": "ValidationFailed", - "description": "Validation of the cluster agent failed." - }, - { - "name": "DeploymentInProgress", - "value": "DeploymentInProgress", - "description": "Deployment of the cluster agent is currently in progress." - }, - { - "name": "DeploymentFailed", - "value": "DeploymentFailed", - "description": "Deployment of the cluster agent failed." - }, - { - "name": "DeploymentSuccess", - "value": "DeploymentSuccess", - "description": "Deployment of the cluster agent completed successfully." - } - ] - }, - "readOnly": true - }, - "connectivityStatus": { - "description": "Overall connectivity status for the cluster resource. Indicates whether the cluster is connected to Azure, partially connected, or has not recently communicated.", - "type": "string", - "enum": [ - "NotYetRegistered", - "Connected", - "NotConnectedRecently", - "PartiallyConnected", - "Disconnected", - "NotSpecified" - ], - "x-ms-enum": { - "name": "ConnectivityStatus", - "modelAsString": true, - "values": [ - { - "name": "NotYetRegistered", - "value": "NotYetRegistered", - "description": "The cluster has not yet registered with Azure." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The cluster is fully connected to Azure." - }, - { - "name": "NotConnectedRecently", - "value": "NotConnectedRecently", - "description": "The cluster has not connected to Azure recently." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "Some components of the cluster are connected, while others are not." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The cluster is not connected to Azure." - }, - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The connectivity status is not specified." - } - ] - }, - "readOnly": true - }, - "supportStatus": { - "description": "Indicates whether the cluster is under support.", - "type": "string", - "enum": [ - "InSupport", - "OutOfSupport", - "NotSpecified" - ], - "x-ms-enum": { - "name": "SupportStatus", - "modelAsString": true, - "values": [ - { - "name": "InSupport", - "value": "InSupport", - "description": "The cluster is under support." - }, - { - "name": "OutOfSupport", - "value": "OutOfSupport", - "description": "The cluster is out of support." - }, - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The support status is not specified." - } - ] - }, - "readOnly": true - }, - "cloudId": { - "description": "Unique, immutable resource id.", - "type": "string", - "readOnly": true - }, - "ring": { - "description": "The ring to which this cluster belongs to.", - "type": "string", - "readOnly": true - }, - "cloudManagementEndpoint": { - "description": "Endpoint configured for management from the Azure portal.", - "type": "string" - }, - "aadClientId": { - "description": "App id of cluster AAD identity.", - "type": "string" - }, - "aadTenantId": { - "description": "Tenant id of cluster AAD identity.", - "type": "string" - }, - "aadApplicationObjectId": { - "description": "Object id of cluster AAD identity.", - "type": "string" - }, - "aadServicePrincipalObjectId": { - "description": "Id of cluster identity service principal.", - "type": "string" - }, - "softwareAssuranceProperties": { - "description": "Software Assurance properties of the cluster.", - "$ref": "#/definitions/SoftwareAssuranceProperties" - }, - "isManagementCluster": { - "type": "boolean", - "description": "Is Management Cluster, when true indicates that the cluster is used for managing other clusters", - "readOnly": true - }, - "logCollectionProperties": { - "description": "Log Collection properties of the cluster.", - "$ref": "#/definitions/LogCollectionProperties" - }, - "remoteSupportProperties": { - "description": "RemoteSupport properties of the cluster.", - "$ref": "#/definitions/RemoteSupportProperties" - }, - "desiredProperties": { - "description": "Desired properties of the cluster.", - "$ref": "#/definitions/ClusterDesiredProperties" - }, - "reportedProperties": { - "description": "Properties reported by cluster agent.", - "$ref": "#/definitions/ClusterReportedProperties", - "readOnly": true - }, - "isolatedVmAttestationConfiguration": { - "description": "Attestation configurations for isolated VM (e.g. TVM, CVM) of the cluster.", - "$ref": "#/definitions/IsolatedVmAttestationConfiguration", - "readOnly": true - }, - "trialDaysRemaining": { - "description": "Number of days remaining in the trial period.", - "type": "number", - "readOnly": true - }, - "billingModel": { - "description": "Type of billing applied to the resource.", - "type": "string", - "readOnly": true - }, - "registrationTimestamp": { - "description": "First cluster sync timestamp.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "lastSyncTimestamp": { - "description": "Most recent cluster sync timestamp.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "lastBillingTimestamp": { - "description": "Most recent billing meter timestamp.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "serviceEndpoint": { - "description": "Region specific DataPath Endpoint of the cluster.", - "type": "string", - "readOnly": true - }, - "resourceProviderObjectId": { - "description": "Object id of RP Service Principal", - "type": "string", - "readOnly": true - }, - "secretsLocations": { - "type": "array", - "description": "List of secret locations.", - "items": { - "$ref": "#/definitions/SecretsLocationDetails" - }, - "x-ms-identifiers": [] - }, - "clusterPattern": { - "$ref": "./hciCommon.json#/definitions/ClusterPattern", - "description": "Supported Storage Type for HCI Cluster", - "readOnly": true - }, - "confidentialVmProperties": { - "description": "Represents the Confidential Virtual Machine (CVM) support intent and current status for the cluster resource.", - "$ref": "./hci.json#/definitions/ConfidentialVmProperties" - }, - "sdnProperties": { - "description": "Software Defined Networking Properties of the cluster", - "$ref": "./hci.json#/definitions/ClusterSdnProperties" - }, - "localAvailabilityZones": { - "type": "array", - "description": "Local Availability Zone information for HCI cluster", - "items": { - "$ref": "./hciCommon.json#/definitions/LocalAvailabilityZones" - }, - "x-ms-identifiers": [ - "localAvailabilityZoneName" - ] - }, - "identityProvider": { - "type": "string", - "description": "Identity Provider for the cluster", - "default": "ActiveDirectory", - "enum": [ - "ActiveDirectory", - "LocalIdentity" - ], - "x-ms-enum": { - "name": "IdentityProvider", - "modelAsString": true, - "values": [ - { - "name": "ActiveDirectory", - "value": "ActiveDirectory", - "description": "Uses Active Directory as the identity provider, enabling domain-based authentication and centralized identity management. This is the default option." - }, - { - "name": "LocalIdentity", - "value": "LocalIdentity", - "description": "Uses a local identity system integrated with Azure Key Vault for authentication. Suitable for AD-less environments where Active Directory is not available or required." - } - ] - }, - "readOnly": true - } - } - }, - "ClusterPatchProperties": { - "description": "Cluster properties.", - "type": "object", - "properties": { - "cloudManagementEndpoint": { - "description": "Endpoint configured for management from the Azure portal", - "type": "string" - }, - "aadClientId": { - "description": "App id of cluster AAD identity.", - "type": "string" - }, - "aadTenantId": { - "description": "Tenant id of cluster AAD identity.", - "type": "string" - }, - "desiredProperties": { - "description": "Desired properties of the cluster.", - "$ref": "#/definitions/ClusterDesiredProperties" - } - } - }, - "LogCollectionProperties": { - "description": "Log Collection properties of the cluster.", - "type": "object", - "properties": { - "fromDate": { - "description": "From DateTimeStamp from when logs need to be connected", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "toDate": { - "description": "To DateTimeStamp till when logs need to be connected", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "lastLogGenerated": { - "description": "Recent DateTimeStamp where logs are successfully generated", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "logCollectionSessionDetails": { - "type": "array", - "items": { - "$ref": "#/definitions/LogCollectionSession" - }, - "readOnly": true - } - } - }, - "LogCollectionSession": { - "description": "Log Collection Session details of the cluster.", - "type": "object", - "properties": { - "logStartTime": { - "description": "Start Time of the logs when it was collected", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "logEndTime": { - "description": "End Time of the logs when it was collected", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "timeCollected": { - "description": "Duration of logs collected", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "logSize": { - "description": "Size of the logs collected", - "type": "integer", - "format": "int64", - "readOnly": true - }, - "logCollectionStatus": { - "description": "LogCollection status", - "type": "string", - "enum": [ - "None", - "InProgress", - "Failed", - "Succeeded" - ], - "x-ms-enum": { - "name": "LogCollectionStatus", - "modelAsString": true, - "values": [ - { - "name": "None", - "value": "None", - "description": "No log collection has been initiated." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "Log collection is currently in progress." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Log collection has failed." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Log collection completed successfully." - } - ] - }, - "readOnly": true - }, - "correlationId": { - "description": "CorrelationId of the log collection", - "type": "string", - "readOnly": true - }, - "logCollectionJobType": { - "description": "Specifies the type of log collection job. Determines whether the logs are collected immediately on demand or as part of a scheduled operation.", - "type": "string", - "enum": [ - "OnDemand", - "Scheduled" - ], - "x-ms-enum": { - "name": "LogCollectionJobType", - "modelAsString": true, - "values": [ - { - "name": "OnDemand", - "value": "OnDemand", - "description": "Log collection is triggered manually and executed immediately." - }, - { - "name": "Scheduled", - "value": "Scheduled", - "description": "Log collection is scheduled to run at a predefined time or interval." - } - ] - }, - "readOnly": true - }, - "endTimeCollected": { - "description": "End Time of the logs when it was collected", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "logCollectionError": { - "$ref": "#/definitions/LogCollectionError", - "readOnly": true - } - } - }, - "AccessLevel": { - "description": "Remote Support Access Level", - "type": "string", - "enum": [ - "Diagnostics", - "DiagnosticsAndRepair" - ], - "x-ms-enum": { - "name": "AccessLevel", - "modelAsString": true, - "values": [ - { - "name": "Diagnostics", - "value": "Diagnostics", - "description": "Allows remote diagnostics operations only." - }, - { - "name": "DiagnosticsAndRepair", - "value": "DiagnosticsAndRepair", - "description": "Allows both remote diagnostics and repair operations." - } - ] - } - }, - "LogCollectionError": { - "description": "Log Collection Error details of the cluster.", - "type": "object", - "properties": { - "errorCode": { - "description": "Error Code of the log collection", - "type": "string", - "readOnly": true - }, - "errorMessage": { - "description": "Error Message of the log collection", - "type": "string", - "readOnly": true - } - } - }, - "RemoteSupportProperties": { - "description": "Remote Support properties of the cluster.", - "type": "object", - "properties": { - "accessLevel": { - "$ref": "#/definitions/AccessLevel", - "readOnly": true - }, - "expirationTimeStamp": { - "description": "Expiration DateTimeStamp when Remote Support Access will be expired", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "remoteSupportType": { - "description": "Remote Support Type for cluster", - "type": "string", - "enum": [ - "Enable", - "Revoke" - ], - "x-ms-enum": { - "name": "RemoteSupportType", - "modelAsString": true, - "values": [ - { - "name": "Enable", - "value": "Enable", - "description": "Enable remote support for the cluster." - }, - { - "name": "Revoke", - "value": "Revoke", - "description": "Revoke previously enabled remote support for the cluster." - } - ] - }, - "readOnly": true - }, - "remoteSupportNodeSettings": { - "type": "array", - "items": { - "$ref": "#/definitions/RemoteSupportNodeSettings" - }, - "readOnly": true - }, - "remoteSupportSessionDetails": { - "type": "array", - "items": { - "$ref": "#/definitions/PerNodeRemoteSupportSession" - }, - "readOnly": true - } - } - }, - "RemoteSupportNodeSettings": { - "description": "Remote Support Node Settings of the cluster.", - "type": "object", - "properties": { - "arcResourceId": { - "description": "Arc ResourceId of the Node", - "type": "string", - "readOnly": true - }, - "state": { - "description": "Remote Support Access Connection State on the Node", - "type": "string", - "readOnly": true - }, - "createdAt": { - "description": "Remote Support Enablement Request Created TimeStamp on the Node", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "description": "Remote Support Enablement Request Updated TimeStamp on the Node", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "connectionStatus": { - "description": "Remote Support Access Connection Status on the Node", - "type": "string", - "readOnly": true - }, - "connectionErrorMessage": { - "description": "Remote Support Access Connection Error Message on the Node", - "type": "string", - "readOnly": true - }, - "transcriptLocation": { - "description": "Remote Support Transcript location on the node", - "type": "string", - "readOnly": true - } - } - }, - "PerNodeRemoteSupportSession": { - "description": "Remote Support Node Session Details on the Node.", - "type": "object", - "properties": { - "sessionStartTime": { - "description": "Remote Support Session StartTime on the Node", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "sessionEndTime": { - "description": "Remote Support Session EndTime on the Node", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "nodeName": { - "description": "Name of the node", - "type": "string", - "readOnly": true - }, - "duration": { - "description": "Duration of Remote Support Enablement", - "type": "integer", - "format": "int64", - "readOnly": true - }, - "accessLevel": { - "$ref": "#/definitions/AccessLevel", - "readOnly": true - } - } - }, - "SoftwareAssuranceProperties": { - "description": "Software Assurance properties of the cluster.", - "type": "object", - "properties": { - "softwareAssuranceStatus": { - "description": "Status of the Software Assurance for the cluster.", - "type": "string", - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "SoftwareAssuranceStatus", - "modelAsString": true, - "values": [ - { - "name": "Enabled", - "value": "Enabled", - "description": "Software Assurance is enabled for the cluster." - }, - { - "name": "Disabled", - "value": "Disabled", - "description": "Software Assurance is disabled for the cluster." - } - ] - }, - "readOnly": true - }, - "softwareAssuranceIntent": { - "description": "Customer Intent for Software Assurance Benefit.", - "type": "string", - "enum": [ - "Enable", - "Disable" - ], - "x-ms-enum": { - "name": "SoftwareAssuranceIntent", - "modelAsString": true, - "values": [ - { - "name": "Enable", - "value": "Enable", - "description": "Customer intends to enable the Software Assurance benefit." - }, - { - "name": "Disable", - "value": "Disable", - "description": "Customer intends to disable the Software Assurance benefit." - } - ] - } - }, - "lastUpdated": { - "description": "TimeStamp denoting the latest SA benefit applicability is validated.", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "IsolatedVmAttestationConfiguration": { - "description": "Attestation configurations for isolated VM (e.g. TVM, CVM) of the cluster.", - "type": "object", - "properties": { - "attestationResourceId": { - "description": "Fully qualified Azure resource id of the Microsoft Azure attestation resource associated with this cluster.", - "type": "string", - "format": "arm-id", - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.Attestation/attestationProviders", - "scopes": [ - "Tenant" - ] - } - ] - }, - "readOnly": true - }, - "relyingPartyServiceEndpoint": { - "description": "Region specific endpoint for relying party service.", - "type": "string", - "readOnly": true - }, - "attestationServiceEndpoint": { - "description": "Region specific endpoint for Microsoft Azure Attestation service for the cluster", - "type": "string", - "readOnly": true - } - } - }, - "ClusterDesiredProperties": { - "description": "Desired properties of the cluster.", - "type": "object", - "properties": { - "windowsServerSubscription": { - "description": "Desired state of Windows Server Subscription.", - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "WindowsServerSubscription", - "modelAsString": true, - "values": [ - { - "name": "Disabled", - "value": "Disabled", - "description": "Windows Server Subscription is disabled." - }, - { - "name": "Enabled", - "value": "Enabled", - "description": "Windows Server Subscription is enabled." - } - ] - } - }, - "diagnosticLevel": { - "description": "Desired level of diagnostic data emitted by the cluster.", - "type": "string", - "enum": [ - "Off", - "Basic", - "Enhanced" - ], - "x-ms-enum": { - "name": "DiagnosticLevel", - "modelAsString": true, - "values": [ - { - "name": "Off", - "value": "Off", - "description": "No diagnostic data will be emitted." - }, - { - "name": "Basic", - "value": "Basic", - "description": "Basic diagnostic data will be emitted, including essential health metrics." - }, - { - "name": "Enhanced", - "value": "Enhanced", - "description": "Enhanced diagnostic data will be emitted, including detailed performance and usage metrics." - } - ] - } - } - } - }, - "ClusterReportedProperties": { - "description": "Properties reported by cluster agent.", - "type": "object", - "properties": { - "clusterName": { - "description": "Name of the on-prem cluster connected to this resource.", - "type": "string", - "readOnly": true - }, - "clusterId": { - "description": "Unique id generated by the on-prem cluster.", - "type": "string", - "readOnly": true - }, - "clusterVersion": { - "description": "Version of the cluster software.", - "type": "string", - "readOnly": true - }, - "nodes": { - "description": "List of nodes reported by the cluster.", - "type": "array", - "items": { - "$ref": "#/definitions/ClusterNode" - }, - "readOnly": true - }, - "lastUpdated": { - "description": "Last time the cluster reported the data.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "msiExpirationTimeStamp": { - "description": "Specifies the expiration timestamp of the cluster's Managed Service Identity (MSI). The value is expressed in Coordinated Universal Time (UTC).", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "imdsAttestation": { - "description": "IMDS attestation status of the cluster.", - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "ImdsAttestation", - "modelAsString": true, - "values": [ - { - "name": "Disabled", - "value": "Disabled", - "description": "IMDS attestation is disabled for the cluster." - }, - { - "name": "Enabled", - "value": "Enabled", - "description": "IMDS attestation is enabled for the cluster." - } - ] - }, - "readOnly": true - }, - "diagnosticLevel": { - "description": "Level of diagnostic data emitted by the cluster.", - "type": "string", - "enum": [ - "Off", - "Basic", - "Enhanced" - ], - "x-ms-enum": { - "name": "DiagnosticLevel", - "modelAsString": true, - "values": [ - { - "name": "Off", - "value": "Off", - "description": "No diagnostic data will be emitted." - }, - { - "name": "Basic", - "value": "Basic", - "description": "Basic diagnostic data will be emitted, including essential health metrics." - }, - { - "name": "Enhanced", - "value": "Enhanced", - "description": "Enhanced diagnostic data will be emitted, including detailed performance and usage metrics." - } - ] - } - }, - "supportedCapabilities": { - "description": "Capabilities supported by the cluster.", - "type": "array", - "readOnly": true, - "items": { - "type": "string" - } - }, - "clusterType": { - "description": "Specifies the type of hardware vendor for all nodes in the cluster. Indicates whether the nodes are provided by Microsoft or a third-party vendor.", - "type": "string", - "enum": [ - "FirstParty", - "ThirdParty" - ], - "x-ms-enum": { - "name": "ClusterNodeType", - "modelAsString": true, - "values": [ - { - "name": "FirstParty", - "value": "FirstParty", - "description": "All nodes in the cluster are provided and managed by Microsoft." - }, - { - "name": "ThirdParty", - "value": "ThirdParty", - "description": "All nodes in the cluster are provided and managed by a third-party vendor." - } - ] - }, - "readOnly": true - }, - "manufacturer": { - "description": "The manufacturer of all the nodes of the cluster.", - "type": "string", - "readOnly": true - }, - "oemActivation": { - "description": "OEM activation status of the cluster.", - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "OemActivation", - "modelAsString": true, - "values": [ - { - "name": "Disabled", - "value": "Disabled", - "description": "OEM activation is disabled for the cluster." - }, - { - "name": "Enabled", - "value": "Enabled", - "description": "OEM activation is enabled for the cluster." - } - ] - }, - "readOnly": true - }, - "hardwareClass": { - "$ref": "./hciCommon.json#/definitions/HardwareClass", - "description": "Hardware class of the cluster.", - "readOnly": true - } - } - }, - "ClusterNode": { - "description": "Cluster node details.", - "type": "object", - "properties": { - "name": { - "description": "Name of the cluster node.", - "type": "string", - "readOnly": true - }, - "id": { - "description": "Id of the node in the cluster.", - "type": "number", - "readOnly": true - }, - "windowsServerSubscription": { - "description": "State of Windows Server Subscription.", - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "WindowsServerSubscription", - "modelAsString": true, - "values": [ - { - "name": "Disabled", - "value": "Disabled", - "description": "Windows Server Subscription is disabled." - }, - { - "name": "Enabled", - "value": "Enabled", - "description": "Windows Server Subscription is enabled." - } - ] - }, - "readOnly": true - }, - "nodeType": { - "description": "Type of the cluster node hardware.", - "type": "string", - "enum": [ - "FirstParty", - "ThirdParty" - ], - "x-ms-enum": { - "name": "ClusterNodeType", - "modelAsString": true, - "values": [ - { - "name": "FirstParty", - "value": "FirstParty", - "description": "Cluster nodes are provided and managed by Microsoft." - }, - { - "name": "ThirdParty", - "value": "ThirdParty", - "description": "Cluster nodes are provided and managed by a third-party vendor." - } - ] - }, - "readOnly": true - }, - "ehcResourceId": { - "description": "Edge Hardware Center Resource Id", - "type": "string", - "readOnly": true - }, - "manufacturer": { - "description": "Manufacturer of the cluster node hardware.", - "type": "string", - "readOnly": true - }, - "model": { - "description": "Model name of the cluster node hardware.", - "type": "string", - "readOnly": true - }, - "osName": { - "description": "Operating system running on the cluster node.", - "type": "string", - "readOnly": true - }, - "osVersion": { - "description": "Version of the operating system running on the cluster node.", - "type": "string", - "readOnly": true - }, - "osDisplayVersion": { - "description": "Display version of the operating system running on the cluster node.", - "type": "string", - "readOnly": true - }, - "serialNumber": { - "description": "Immutable id of the cluster node.", - "type": "string", - "readOnly": true - }, - "coreCount": { - "description": "Number of physical cores on the cluster node.", - "type": "number", - "readOnly": true - }, - "memoryInGiB": { - "description": "Total available memory on the cluster node (in GiB).", - "type": "number", - "readOnly": true - }, - "lastLicensingTimestamp": { - "description": "Most recent licensing timestamp.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "oemActivation": { - "description": "OEM activation status of the node.", - "type": "string", - "enum": [ - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "OemActivation", - "modelAsString": true, - "values": [ - { - "name": "Disabled", - "value": "Disabled", - "description": "OEM activation is disabled for the node." - }, - { - "name": "Enabled", - "value": "Enabled", - "description": "OEM activation is enabled for the node." - } - ] - }, - "readOnly": true - } - } - }, - "RawCertificateData": { - "type": "object", - "properties": { - "certificates": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "UploadCertificateRequest": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/RawCertificateData" - } - }, - "additionalProperties": false - }, - "LogCollectionRequestProperties": { - "description": "Properties for Log Collection Request", - "type": "object", - "properties": { - "fromDate": { - "description": "From DateTimeStamp from when logs need to be connected", - "type": "string", - "format": "date-time" - }, - "toDate": { - "description": "To DateTimeStamp till when logs need to be connected", - "type": "string", - "format": "date-time" - } - }, - "required": [ - "fromDate", - "toDate" - ], - "additionalProperties": false - }, - "RemoteSupportRequestProperties": { - "description": "Properties for Remote Support Request", - "type": "object", - "properties": { - "accessLevel": { - "$ref": "#/definitions/AccessLevel", - "readOnly": true - }, - "expirationTimeStamp": { - "description": "Expiration DateTimeStamp when Remote Support Access will be expired", - "type": "string", - "format": "date-time" - }, - "remoteSupportType": { - "description": "Remote Support Type for cluster", - "type": "string", - "enum": [ - "Enable", - "Revoke" - ], - "x-ms-enum": { - "name": "RemoteSupportType", - "modelAsString": true, - "values": [ - { - "name": "Enable", - "value": "Enable", - "description": "Enable remote support for the cluster." - }, - { - "name": "Revoke", - "value": "Revoke", - "description": "Revoke previously enabled remote support for the cluster." - } - ] - } - } - }, - "additionalProperties": false - }, - "SecretsLocationDetails": { - "type": "object", - "description": "Secrets location details", - "properties": { - "secretsType": { - "$ref": "#/definitions/SecretsType", - "description": "Type of secrets to store" - }, - "secretsLocation": { - "type": "string", - "description": "secrets location" - } - }, - "required": [ - "secretsType", - "secretsLocation" - ] - }, - "SecretsLocationsChangeRequest": { - "type": "object", - "description": "Update secrets locations change Request.", - "properties": { - "properties": { - "type": "array", - "description": "List of secret locations", - "items": { - "$ref": "#/definitions/SecretsLocationDetails" - }, - "x-ms-identifiers": [] - } - } - }, - "SecretsType": { - "type": "string", - "description": "Type of secrets to store", - "enum": [ - "BackupSecrets" - ], - "x-ms-enum": { - "name": "SecretsType", - "modelAsString": true, - "values": [ - { - "name": "BackupSecrets", - "value": "BackupSecrets", - "description": "Backup secrets type" - } - ] - } - }, - "SoftwareAssuranceChangeRequestProperties": { - "type": "object", - "properties": { - "softwareAssuranceIntent": { - "type": "string", - "description": "Customer Intent for Software Assurance Benefit. This indicates whether the customer wishes to opt in or out of the Software Assurance program, which provides licensing and support benefits.", - "enum": [ - "Enable", - "Disable" - ], - "x-ms-enum": { - "name": "SoftwareAssuranceIntent", - "modelAsString": true, - "values": [ - { - "name": "Enable", - "value": "Enable", - "description": "Customer intends to enable the Software Assurance benefit." - }, - { - "name": "Disable", - "value": "Disable", - "description": "Customer intends to disable the Software Assurance benefit." - } - ] - } - } - }, - "additionalProperties": false - }, - "SoftwareAssuranceChangeRequest": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/SoftwareAssuranceChangeRequestProperties" - } - }, - "additionalProperties": false - }, - "LogCollectionRequest": { - "description": "Log Collection Request", - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/LogCollectionRequestProperties" - } - }, - "additionalProperties": false - }, - "RemoteSupportRequest": { - "description": "Remote Support Request", - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/RemoteSupportRequestProperties" - } - }, - "additionalProperties": false - }, - "ChangeRingRequestProperties": { - "type": "object", - "properties": { - "targetRing": { - "type": "string", - "description": "The target ring for the cluster." - } - }, - "additionalProperties": false - }, - "ChangeRingRequest": { - "type": "object", - "properties": { - "properties": { - "$ref": "#/definitions/ChangeRingRequestProperties" - } - }, - "additionalProperties": false - }, - "ClusterIdentityResponse": { - "description": "Cluster Identity details.", - "type": "object", - "properties": { - "properties": { - "description": "Cluster identity properties.", - "$ref": "#/definitions/ClusterIdentityResponseProperties", - "x-ms-client-flatten": true - } - } - }, - "ClusterIdentityResponseProperties": { - "type": "object", - "properties": { - "aadClientId": { - "type": "string" - }, - "aadTenantId": { - "type": "string" - }, - "aadServicePrincipalObjectId": { - "type": "string" - }, - "aadApplicationObjectId": { - "type": "string" - } - }, - "additionalProperties": false, - "readOnly": true - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/deploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/deploymentSettings.json deleted file mode 100644 index 338b7e7d2dbf..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/deploymentSettings.json +++ /dev/null @@ -1,1131 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Deployment Settings", - "version": "2025-12-01-preview", - "description": "Azure Stack HCI Deployment Settings." - }, - "schemes": [ - "https" - ], - "host": "management.azure.com", - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "tags": [ - { - "name": "DeploymentSettings" - } - ], - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/deploymentSettings": { - "get": { - "operationId": "DeploymentSettings_ListByClusters", - "tags": [ - "DeploymentSettings" - ], - "description": "List DeploymentSetting resources by Clusters", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - } - ], - "responses": { - "200": { - "description": "ARM operation completed successfully.", - "schema": { - "$ref": "#/definitions/DeploymentSettingListResult" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Deployment Settings": { - "$ref": "./examples/ListDeploymentSettingsByCluster.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/deploymentSettings/{deploymentSettingsName}": { - "get": { - "operationId": "DeploymentSettings_Get", - "tags": [ - "DeploymentSettings" - ], - "description": "Get a DeploymentSetting", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "name": "deploymentSettingsName", - "in": "path", - "description": "Name of Deployment Setting", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "200": { - "description": "ARM operation completed successfully.", - "schema": { - "$ref": "#/definitions/DeploymentSetting" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Deployment Settings": { - "$ref": "./examples/GetDeploymentSettings.json" - } - } - }, - "put": { - "operationId": "DeploymentSettings_CreateOrUpdate", - "tags": [ - "DeploymentSettings" - ], - "description": "Create a DeploymentSetting", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "name": "deploymentSettingsName", - "in": "path", - "description": "Name of Deployment Setting", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "resource", - "in": "body", - "description": "Resource create parameters.", - "required": true, - "schema": { - "$ref": "#/definitions/DeploymentSetting" - } - } - ], - "responses": { - "200": { - "description": "Resource 'DeploymentSetting' update operation succeeded", - "schema": { - "$ref": "#/definitions/DeploymentSetting" - } - }, - "201": { - "description": "Resource 'DeploymentSetting' create operation succeeded", - "schema": { - "$ref": "#/definitions/DeploymentSetting" - }, - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Create Deployment Settings": { - "$ref": "./examples/PutDeploymentSettings.json" - }, - "Create Deployment Settings Without Active Directory Integration": { - "$ref": "./examples/PutDeploymentSettingsWithADLess.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-long-running-operation": true - }, - "delete": { - "operationId": "DeploymentSettings_Delete", - "tags": [ - "DeploymentSettings" - ], - "description": "Delete a DeploymentSetting", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "name": "deploymentSettingsName", - "in": "path", - "description": "Name of Deployment Setting", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "202": { - "description": "Resource deletion accepted.", - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - }, - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - } - } - }, - "204": { - "description": "Resource deleted successfully." - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Delete Deployment Settings": { - "$ref": "./examples/DeleteDeploymentSettings.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true - } - } - }, - "definitions": { - "AdapterPropertyOverrides": { - "type": "object", - "description": "The AdapterPropertyOverrides of a cluster.", - "properties": { - "jumboPacket": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." - }, - "networkDirect": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." - }, - "networkDirectTechnology": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. Expected values are 'iWARP', 'RoCEv2', 'RoCE'" - } - } - }, - "DeploymentCluster": { - "type": "object", - "description": "AzureStackHCI Cluster deployment properties.", - "properties": { - "name": { - "type": "string", - "description": "The cluster name provided when preparing Active Directory." - }, - "witnessType": { - "type": "string", - "description": "Use a cloud witness if you have internet access and if you use an Azure Storage account to provide a vote on cluster quorum. A cloud witness uses Azure Blob Storage to read or write a blob file and then uses it to arbitrate in split-brain resolution. Only allowed values are 'Cloud', 'FileShare'. " - }, - "witnessPath": { - "type": "string", - "description": "Specify the fileshare path for the local witness for your Azure Stack HCI cluster." - }, - "cloudAccountName": { - "type": "string", - "description": "Specify the Azure Storage account name for cloud witness for your Azure Stack HCI cluster." - }, - "azureServiceEndpoint": { - "type": "string", - "description": "For Azure blob service endpoint type, select either Default or Custom domain. If you selected **Custom domain, enter the domain for the blob service in this format core.windows.net." - }, - "hardwareClass": { - "$ref": "./hciCommon.json#/definitions/HardwareClass", - "description": "Hardware class of the cluster.", - "readOnly": true - }, - "clusterPattern": { - "$ref": "./hciCommon.json#/definitions/ClusterPattern", - "description": "Cluster Pattern supported." - } - } - }, - "DeploymentConfiguration": { - "type": "object", - "description": "Deployment Configuration", - "properties": { - "version": { - "type": "string", - "description": "deployment template version " - }, - "scaleUnits": { - "type": "array", - "description": "Scale units will contains list of deployment data", - "items": { - "$ref": "#/definitions/ScaleUnits" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "scaleUnits" - ] - }, - "DeploymentData": { - "type": "object", - "description": "The Deployment data of AzureStackHCI Cluster.", - "properties": { - "securitySettings": { - "$ref": "#/definitions/DeploymentSecuritySettings", - "description": "SecuritySettings to deploy AzureStackHCI Cluster." - }, - "observability": { - "$ref": "#/definitions/Observability", - "description": "Observability config to deploy AzureStackHCI Cluster." - }, - "cluster": { - "$ref": "#/definitions/DeploymentCluster", - "description": "Observability config to deploy AzureStackHCI Cluster." - }, - "identityProvider": { - "$ref": "./hciCommon.json#/definitions/IdentityProvider", - "description": "Identity Provider for the cluster" - }, - "storage": { - "$ref": "#/definitions/Storage", - "description": "Storage config to deploy AzureStackHCI Cluster." - }, - "namingPrefix": { - "type": "string", - "description": "naming prefix to deploy cluster.", - "pattern": "^[a-zA-Z0-9-]{1,8}$" - }, - "domainFqdn": { - "type": "string", - "description": "FQDN to deploy cluster" - }, - "infrastructureNetwork": { - "type": "array", - "description": "InfrastructureNetwork config to deploy AzureStackHCI Cluster.", - "items": { - "$ref": "#/definitions/InfrastructureNetwork" - }, - "x-ms-identifiers": [] - }, - "physicalNodes": { - "type": "array", - "description": "list of physical nodes config to deploy AzureStackHCI Cluster.", - "items": { - "$ref": "#/definitions/PhysicalNodes" - }, - "x-ms-identifiers": [ - "name" - ] - }, - "hostNetwork": { - "$ref": "#/definitions/HostNetwork", - "description": "HostNetwork config to deploy AzureStackHCI Cluster." - }, - "sdnIntegration": { - "$ref": "#/definitions/SdnIntegration", - "description": "SDN Integration config to deploy AzureStackHCI Cluster." - }, - "isManagementCluster": { - "type": "boolean", - "description": "Is Management Cluster, when true indicates that the cluster is used for managing other clusters" - }, - "adouPath": { - "type": "string", - "description": "The path to the Active Directory Organizational Unit container object prepared for the deployment. " - }, - "secretsLocation": { - "type": "string", - "description": "Azure key vault endpoint. This property is deprecated from 2023-12-01-preview. Please use secrets property instead." - }, - "secrets": { - "type": "array", - "description": "secrets used for cloud deployment.", - "items": { - "$ref": "./hciCommon.json#/definitions/EceDeploymentSecrets" - }, - "x-ms-identifiers": [ - "secretName" - ] - }, - "optionalServices": { - "$ref": "#/definitions/OptionalServices", - "description": "OptionalServices config to deploy AzureStackHCI Cluster." - }, - "localAvailabilityZones": { - "type": "array", - "items": { - "$ref": "./hciCommon.json#/definitions/LocalAvailabilityZones" - }, - "description": "Local Availability Zone information for HCI cluster", - "x-ms-identifiers": [ - "localAvailabilityZoneName" - ] - }, - "assemblyInfo": { - "$ref": "#/definitions/AssemblyInfo", - "description": "Assembly Package details for Validated Solution Recipe for AzureStackHCI Cluster" - } - } - }, - "DeploymentSetting": { - "type": "object", - "description": "Edge device resource", - "properties": { - "properties": { - "$ref": "#/definitions/DeploymentSettingsProperties", - "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] - } - }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ] - }, - "DeploymentSettingListResult": { - "type": "object", - "description": "The response of a DeploymentSetting list operation.", - "properties": { - "value": { - "type": "array", - "description": "The DeploymentSetting items on this page", - "items": { - "$ref": "#/definitions/DeploymentSetting" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "DeploymentSettingsProperties": { - "type": "object", - "description": "DeploymentSetting properties", - "properties": { - "provisioningState": { - "$ref": "./hciCommon.json#/definitions/ProvisioningState", - "description": "DeploymentSetting provisioning state", - "readOnly": true - }, - "arcNodeResourceIds": { - "type": "array", - "description": "Azure resource ids of Arc machines to be part of cluster.", - "items": { - "type": "string" - }, - "x-ms-identifiers": [] - }, - "deploymentMode": { - "$ref": "./hciCommon.json#/definitions/DeploymentMode", - "description": "The deployment mode for cluster deployment." - }, - "operationType": { - "type": "string", - "description": "The intended operation for a cluster.", - "enum": [ - "ClusterProvisioning", - "ClusterUpgrade" - ], - "default": "ClusterProvisioning", - "x-ms-enum": { - "name": "OperationType", - "modelAsString": true, - "values": [ - { - "name": "ClusterProvisioning", - "value": "ClusterProvisioning", - "description": "Cluster provisioning operation." - }, - { - "name": "ClusterUpgrade", - "value": "ClusterUpgrade", - "description": "Cluster upgrade operation." - } - ] - } - }, - "deploymentConfiguration": { - "$ref": "#/definitions/DeploymentConfiguration", - "description": "Scale units will contains list of deployment data", - "x-ms-identifiers": [] - }, - "reportedProperties": { - "$ref": "./hciCommon.json#/definitions/EceReportedProperties", - "description": "Deployment Status reported from cluster.", - "readOnly": true - } - }, - "required": [ - "arcNodeResourceIds", - "deploymentMode", - "deploymentConfiguration" - ] - }, - "HostNetwork": { - "type": "object", - "description": "The HostNetwork of a cluster.", - "properties": { - "intents": { - "type": "array", - "description": "The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.", - "items": { - "$ref": "#/definitions/Intents" - }, - "x-ms-identifiers": [ - "name" - ] - }, - "storageNetworks": { - "type": "array", - "description": "List of StorageNetworks config to deploy AzureStackHCI Cluster.", - "items": { - "$ref": "#/definitions/StorageNetworks" - }, - "x-ms-identifiers": [ - "name" - ] - }, - "storageConnectivitySwitchless": { - "type": "boolean", - "description": "Defines how the storage adapters between nodes are connected either switch or switch less..", - "default": false - }, - "enableStorageAutoIp": { - "type": "boolean", - "description": "Optional parameter required only for 3 Nodes Switchless deployments. This allows users to specify IPs and Mask for Storage NICs when Network ATC is not assigning the IPs for storage automatically.", - "default": false - } - } - }, - "InfrastructureNetwork": { - "type": "object", - "description": "The InfrastructureNetwork of a AzureStackHCI Cluster.", - "properties": { - "subnetMask": { - "type": "string", - "description": "Subnet mask that matches the provided IP address space." - }, - "gateway": { - "type": "string", - "description": "Default gateway that should be used for the provided IP address space." - }, - "ipPools": { - "type": "array", - "description": "Range of IP addresses from which addresses are allocated for nodes within a subnet.", - "items": { - "$ref": "#/definitions/IpPools" - }, - "x-ms-identifiers": [] - }, - "dnsServerConfig": { - "type": "string", - "description": "Specifies how DNS servers are configured for the infrastructure network. Allowed values are 'UseDnsServer' to use the provided DNS servers, and 'UseForwarder' to use DNS forwarders.", - "enum": [ - "UseDnsServer", - "UseForwarder" - ], - "default": "UseDnsServer", - "x-ms-enum": { - "name": "DnsServerConfig", - "modelAsString": true, - "values": [ - { - "name": "UseDnsServer", - "value": "UseDnsServer", - "description": "Use the provided DNS servers for the infrastructure network." - }, - { - "name": "UseForwarder", - "value": "UseForwarder", - "description": "Use DNS forwarders for the infrastructure network." - } - ] - } - }, - "dnsZones": { - "type": "array", - "description": "Details of the DNS Zones to be configured.", - "items": { - "$ref": "#/definitions/DnsZones" - }, - "x-ms-identifiers": [ - "dnsZoneName" - ] - }, - "dnsServers": { - "type": "array", - "description": "IPv4 address of the DNS servers in your environment.", - "items": { - "type": "string" - } - }, - "useDhcp": { - "type": "boolean", - "description": "Allows customers to use DHCP for Hosts and Cluster IPs. If not declared, the deployment will default to static IPs. When true, GW and DNS servers are not required" - } - } - }, - "Intents": { - "type": "object", - "description": "The Intents of a cluster.", - "properties": { - "name": { - "type": "string", - "description": "Name of the network intent you wish to create." - }, - "trafficType": { - "type": "array", - "description": "List of network traffic types. Only allowed values are 'Compute', 'Storage', 'Management'.", - "items": { - "type": "string" - } - }, - "adapter": { - "type": "array", - "description": "Array of network interfaces used for the network intent.", - "items": { - "type": "string" - } - }, - "overrideVirtualSwitchConfiguration": { - "type": "boolean", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "default": false - }, - "virtualSwitchConfigurationOverrides": { - "$ref": "#/definitions/VirtualSwitchConfigurationOverrides", - "description": "Set virtualSwitch ConfigurationOverrides for cluster." - }, - "overrideQosPolicy": { - "type": "boolean", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "default": false - }, - "qosPolicyOverrides": { - "$ref": "#/definitions/QosPolicyOverrides", - "description": "Set QoS PolicyOverrides for cluster." - }, - "overrideAdapterProperty": { - "type": "boolean", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "default": false - }, - "adapterPropertyOverrides": { - "$ref": "#/definitions/AdapterPropertyOverrides", - "description": "Set Adapter PropertyOverrides for cluster." - } - } - }, - "IpPools": { - "type": "object", - "description": "The dnsServers of a device.", - "properties": { - "startingAddress": { - "type": "string", - "description": "Starting IP address for the management network. A minimum of six free, contiguous IPv4 addresses (excluding your host IPs) are needed for infrastructure services such as clustering." - }, - "endingAddress": { - "type": "string", - "description": "Ending IP address for the management network. A minimum of six free, contiguous IPv4 addresses (excluding your host IPs) are needed for infrastructure services such as clustering." - } - } - }, - "DnsZones": { - "type": "object", - "description": "Details of the DNS Zones to be configured.", - "properties": { - "dnsZoneName": { - "type": "string", - "description": "Name of the DNS Zone to be configured." - }, - "dnsForwarder": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Forwarder details of the DNS Zone to be configured." - } - } - }, - "NetworkController": { - "type": "object", - "description": "network controller config for SDN Integration to deploy AzureStackHCI Cluster.", - "properties": { - "macAddressPoolStart": { - "type": "string", - "description": "macAddressPoolStart of network controller used for SDN Integration." - }, - "macAddressPoolStop": { - "type": "string", - "description": "macAddressPoolStop of network controller used for SDN Integration." - }, - "networkVirtualizationEnabled": { - "type": "boolean", - "description": "NetworkVirtualizationEnabled of network controller used for SDN Integration." - } - } - }, - "Observability": { - "type": "object", - "description": "The Observability of AzureStackHCI Cluster.", - "properties": { - "streamingDataClient": { - "type": "boolean", - "description": "Enables telemetry data to be sent to Microsoft", - "default": true - }, - "euLocation": { - "type": "boolean", - "description": "Location of your cluster. The log and diagnostic data is sent to the appropriate diagnostics servers depending upon where your cluster resides. Setting this to false results in all data sent to Microsoft to be stored outside of the EU.", - "default": false - }, - "episodicDataUpload": { - "type": "boolean", - "description": "When set to true, collects log data to facilitate quicker issue resolution.", - "default": true - } - } - }, - "OptionalServices": { - "type": "object", - "description": "The OptionalServices of AzureStackHCI Cluster.", - "properties": { - "customLocation": { - "type": "string", - "description": "The name of custom location." - } - } - }, - "AssemblyInfo": { - "type": "object", - "description": "Assembly Package details for Validated Solution Recipe for AzureStackHCI Cluster", - "properties": { - "packageVersion": { - "type": "string", - "description": "Assembly Package version for Validated Solution Recipe for AzureStackHCI Cluster", - "readOnly": true - }, - "payload": { - "type": "array", - "description": "Payload properties for Validated Solution Recipe for AzureStackHCI Cluster", - "items": { - "$ref": "#/definitions/AssemblyInfoPayload" - }, - "readOnly": true, - "x-ms-identifiers": [] - } - } - }, - "AssemblyInfoPayload": { - "type": "object", - "description": "Payload properties for Validated Solution Recipe for AzureStackHCI Cluster", - "properties": { - "identifier": { - "type": "string", - "description": "assembly identifier for Validated Solution Recipe for AzureStackHCI Cluster", - "readOnly": true - }, - "hash": { - "type": "string", - "description": "Hash of assembly package for Validated Solution Recipe for AzureStackHCI Cluster", - "readOnly": true - }, - "fileName": { - "type": "string", - "description": "File name of assembly package for Validated Solution Recipe for AzureStackHCI Cluster", - "readOnly": true - }, - "url": { - "type": "string", - "description": "Url of assembly package for Validated Solution Recipe for AzureStackHCI Cluster", - "readOnly": true - } - } - }, - "PhysicalNodes": { - "type": "object", - "description": "The PhysicalNodes of a cluster.", - "properties": { - "name": { - "type": "string", - "description": "NETBIOS name of each physical server on your Azure Stack HCI cluster." - }, - "ipv4Address": { - "type": "string", - "description": "The IPv4 address assigned to each physical server on your Azure Stack HCI cluster." - } - } - }, - "QosPolicyOverrides": { - "type": "object", - "description": "The QoSPolicyOverrides of a cluster.", - "properties": { - "priorityValue8021Action_Cluster": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." - }, - "priorityValue8021Action_SMB": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." - }, - "bandwidthPercentage_SMB": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." - } - } - }, - "SbePartnerInfo": { - "type": "object", - "description": "The solution builder extension (SBE) partner deployment info for cluster.", - "properties": { - "sbeDeploymentInfo": { - "$ref": "#/definitions/SbeDeploymentInfo", - "description": "SBE package and manifest information for the solution Builder Extension staged for AzureStackHCI cluster deployment." - }, - "partnerProperties": { - "type": "array", - "description": "List of SBE partner properties for AzureStackHCI cluster deployment.", - "items": { - "$ref": "#/definitions/SbePartnerProperties" - }, - "x-ms-identifiers": [] - }, - "credentialList": { - "type": "array", - "description": "SBE credentials list for AzureStackHCI cluster deployment.", - "items": { - "$ref": "#/definitions/SbeCredentials" - }, - "x-ms-identifiers": [ - "secretName" - ] - } - } - }, - "SbeDeploymentInfo": { - "type": "object", - "description": "Solution builder extension (SBE) package and manifest information for the solution builder extension staged for AzureStackHCI cluster deployment.", - "properties": { - "version": { - "type": "string", - "description": "SBE package version." - }, - "family": { - "type": "string", - "description": "SBE family name." - }, - "publisher": { - "type": "string", - "description": "SBE manifest publisher." - }, - "sbeManifestSource": { - "type": "string", - "description": "SBE Manifest Source." - }, - "sbeManifestCreationDate": { - "type": "string", - "format": "date-time", - "description": "SBE Manifest Creation Date." - } - } - }, - "SbePartnerProperties": { - "type": "object", - "description": "Solution builder extension (SBE) partner properties object.", - "properties": { - "name": { - "type": "string", - "description": "SBE partner property name." - }, - "value": { - "type": "string", - "description": "SBE partner property value." - } - } - }, - "SbeCredentials": { - "type": "object", - "description": "secrets used for solution builder extension (SBE) partner extensibility.", - "properties": { - "secretName": { - "type": "string", - "description": "secret name stored in keyvault." - }, - "eceSecretName": { - "type": "string", - "description": "secret name expected for Enterprise Cloud Engine (ECE)." - }, - "secretLocation": { - "type": "string", - "format": "uri", - "description": "secret URI stored in keyvault." - } - } - }, - "ScaleUnits": { - "type": "object", - "description": "Scale units will contains list of deployment data", - "properties": { - "deploymentData": { - "$ref": "#/definitions/DeploymentData", - "description": "Deployment Data to deploy AzureStackHCI Cluster." - }, - "sbePartnerInfo": { - "$ref": "#/definitions/SbePartnerInfo", - "description": "Solution builder extension (SBE) partner properties" - } - }, - "required": [ - "deploymentData" - ], - "externalDocs": { - "description": "Deploy Azure Stack HCI using an existing configuration file", - "url": "https://learn.microsoft.com/en-us/azure-stack/hci/deploy/deployment-tool-existing-file" - } - }, - "SdnIntegration": { - "type": "object", - "description": "SDN Integration config to deploy AzureStackHCI Cluster.", - "properties": { - "networkController": { - "$ref": "#/definitions/NetworkController", - "description": "network controller config for SDN Integration to deploy AzureStackHCI Cluster." - } - } - }, - "DeploymentSecuritySettings": { - "type": "object", - "description": "The SecuritySettings of AzureStackHCI Cluster.", - "properties": { - "hvciProtection": { - "type": "boolean", - "description": "By default, Hypervisor-protected Code Integrity is enabled on your Azure HCI cluster.", - "default": true - }, - "drtmProtection": { - "type": "boolean", - "description": "By default, Secure Boot is enabled on your Azure HCI cluster. This setting is hardware dependent.", - "default": true - }, - "driftControlEnforced": { - "type": "boolean", - "description": "When set to true, the security baseline is re-applied regularly.", - "default": true - }, - "credentialGuardEnforced": { - "type": "boolean", - "description": "When set to true, Credential Guard is enabled.", - "default": false - }, - "smbSigningEnforced": { - "type": "boolean", - "description": "When set to true, the SMB default instance requires sign in for the client and server services.", - "default": true - }, - "smbClusterEncryption": { - "type": "boolean", - "description": "When set to true, cluster east-west traffic is encrypted.", - "default": false - }, - "sideChannelMitigationEnforced": { - "type": "boolean", - "description": "When set to true, all the side channel mitigations are enabled", - "default": true - }, - "bitlockerBootVolume": { - "type": "boolean", - "description": "When set to true, BitLocker XTS_AES 256-bit encryption is enabled for all data-at-rest on the OS volume of your Azure Stack HCI cluster. This setting is TPM-hardware dependent. ", - "default": true - }, - "bitlockerDataVolumes": { - "type": "boolean", - "description": "When set to true, BitLocker XTS-AES 256-bit encryption is enabled for all data-at-rest on your Azure Stack HCI cluster shared volumes.", - "default": true - }, - "wdacEnforced": { - "type": "boolean", - "description": "WDAC is enabled by default and limits the applications and the code that you can run on your Azure Stack HCI cluster.", - "default": true - } - } - }, - "Storage": { - "type": "object", - "description": "The Storage config of AzureStackHCI Cluster.", - "properties": { - "configurationMode": { - "type": "string", - "description": "By default, this mode is set to Express and your storage is configured as per best practices based on the number of nodes in the cluster. Allowed values are 'Express','InfraOnly', 'KeepStorage'", - "default": "Express" - } - } - }, - "StorageAdapterIPInfo": { - "type": "object", - "description": "The StorageAdapter physical nodes of a cluster.", - "properties": { - "physicalNode": { - "type": "string", - "description": "storage adapter physical node name." - }, - "ipv4Address": { - "type": "string", - "description": "The IPv4 address assigned to each storage adapter physical node on your Azure Stack HCI cluster." - }, - "subnetMask": { - "type": "string", - "description": "The SubnetMask address assigned to each storage adapter physical node on your Azure Stack HCI cluster." - } - } - }, - "StorageNetworks": { - "type": "object", - "description": "The StorageNetworks of a cluster.", - "properties": { - "name": { - "type": "string", - "description": "Name of the storage network." - }, - "networkAdapterName": { - "type": "string", - "description": "Name of the storage network adapter." - }, - "vlanId": { - "type": "string", - "description": "ID specified for the VLAN storage network. This setting is applied to the network interfaces that route the storage and VM migration traffic. " - }, - "storageAdapterIPInfo": { - "type": "array", - "description": "List of Storage adapter physical nodes config to deploy AzureStackHCI Cluster.", - "items": { - "$ref": "#/definitions/StorageAdapterIPInfo" - }, - "x-ms-identifiers": [ - "physicalNode" - ] - } - } - }, - "VirtualSwitchConfigurationOverrides": { - "type": "object", - "description": "The VirtualSwitchConfigurationOverrides of a cluster.", - "properties": { - "enableIov": { - "type": "string", - "description": "Enable IoV for Virtual Switch" - }, - "loadBalancingAlgorithm": { - "type": "string", - "description": "Load Balancing Algorithm for Virtual Switch" - } - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/edgeDeviceJobs.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/edgeDeviceJobs.json deleted file mode 100644 index 41412e2fdd66..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/edgeDeviceJobs.json +++ /dev/null @@ -1,1150 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Microsoft.AzureStackHCI", - "version": "2025-12-01-preview", - "description": "A EdgeDevice" - }, - "schemes": [ - "https" - ], - "host": "management.azure.com", - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "tags": [ - { - "name": "EdgeDeviceJobs" - } - ], - "paths": { - "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}/jobs": { - "get": { - "operationId": "EdgeDeviceJobs_ListByEdgeDevice", - "tags": [ - "EdgeDeviceJobs" - ], - "description": "List EdgeDeviceJob resources by EdgeDevice", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "The name of the EdgeDevice", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/EdgeDeviceJobListResult" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "EdgeDeviceJobs_ListByEdgeDevice": { - "$ref": "./examples/EdgeDeviceJobs_ListByEdgeDevice.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}/jobs/{jobsName}": { - "get": { - "operationId": "EdgeDeviceJobs_Get", - "tags": [ - "EdgeDeviceJobs" - ], - "description": "Get a EdgeDeviceJob", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "The name of the EdgeDevice", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "jobsName", - "in": "path", - "description": "Name of EdgeDevice Job", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/EdgeDeviceJob" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "EdgeDeviceJobs_Get_RemoteSupport": { - "$ref": "./examples/EdgeDeviceJobs_Get_RemoteSupport.json" - } - } - }, - "put": { - "operationId": "EdgeDeviceJobs_CreateOrUpdate", - "tags": [ - "EdgeDeviceJobs" - ], - "description": "Create a EdgeDeviceJob", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "The name of the EdgeDevice", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "jobsName", - "in": "path", - "description": "Name of EdgeDevice Job", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "resource", - "in": "body", - "description": "Resource create parameters.", - "required": true, - "schema": { - "$ref": "#/definitions/EdgeDeviceJob" - } - } - ], - "responses": { - "200": { - "description": "Resource 'EdgeDeviceJob' update operation succeeded", - "schema": { - "$ref": "#/definitions/EdgeDeviceJob" - } - }, - "201": { - "description": "Resource 'EdgeDeviceJob' create operation succeeded", - "schema": { - "$ref": "#/definitions/EdgeDeviceJob" - }, - "headers": { - "Azure-AsyncOperation": { - "type": "string", - "description": "A link to the status monitor" - }, - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "EdgeDeviceJobs_CreateOrUpdate_CollectLog": { - "$ref": "./examples/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json" - }, - "EdgeDeviceJobs_CreateOrUpdate_RemoteSupport": { - "$ref": "./examples/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-long-running-operation": true - }, - "delete": { - "operationId": "EdgeDeviceJobs_Delete", - "tags": [ - "EdgeDeviceJobs" - ], - "description": "Delete a EdgeDeviceJob", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "The name of the EdgeDevice", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "jobsName", - "in": "path", - "description": "Name of EdgeDevice Job", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "202": { - "description": "Resource deletion accepted.", - "headers": { - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - }, - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } - } - }, - "204": { - "description": "Resource does not exist." - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "EdgeDeviceJobs_Delete": { - "$ref": "./examples/EdgeDeviceJobs_Delete.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true - } - } - }, - "definitions": { - "CollectLogJobProperties": { - "type": "object", - "description": "Represents the properties of a log collection job.", - "properties": { - "fromDate": { - "type": "string", - "format": "date-time", - "description": "From date for log collection." - }, - "toDate": { - "type": "string", - "format": "date-time", - "description": "To date for log collection." - }, - "lastLogGenerated": { - "type": "string", - "format": "date-time", - "description": "To date for log collection.", - "readOnly": true - }, - "reportedProperties": { - "$ref": "#/definitions/LogCollectionReportedProperties", - "description": "log collection job reported properties.", - "readOnly": true - } - }, - "required": [ - "fromDate", - "toDate" - ] - }, - "DeploymentMode": { - "type": "string", - "description": "Deployment mode to trigger job.", - "enum": [ - "Validate", - "Deploy" - ], - "x-ms-enum": { - "name": "DeploymentMode", - "modelAsString": true, - "values": [ - { - "name": "Validate", - "value": "Validate", - "description": "Validate ECE action deployment for a cluster." - }, - { - "name": "Deploy", - "value": "Deploy", - "description": "Deploy ECE action deployment for a cluster." - } - ] - } - }, - "DeviceLogCollectionStatus": { - "type": "string", - "description": "Represents the status of a log collection operation.", - "enum": [ - "NotStarted", - "Running", - "Failed", - "Succeeded", - "Canceled" - ], - "x-ms-enum": { - "name": "DeviceLogCollectionStatus", - "modelAsString": true, - "values": [ - { - "name": "NotStarted", - "value": "NotStarted", - "description": "Log collection operation has not been initiated." - }, - { - "name": "Running", - "value": "Running", - "description": "Indicates that the log collection operation is currently running." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Indicates that the log collection operation has failed." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Indicates that the log collection operation has completed successfully." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Indicates that the log collection operation has completed successfully." - } - ] - }, - "readOnly": true - }, - "EdgeDeviceJob": { - "type": "object", - "description": "EdgeDevice Jobs resource", - "properties": { - "kind": { - "$ref": "./hciCommon.json#/definitions/EdgeDeviceKind", - "description": "Edge Solution type to support polymorphic resource.", - "x-ms-mutability": [ - "read", - "create" - ] - } - }, - "discriminator": "kind", - "required": [ - "kind" - ], - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ] - }, - "EdgeDeviceJobListResult": { - "type": "object", - "description": "The response of a EdgeDeviceJob list operation.", - "properties": { - "value": { - "type": "array", - "description": "The EdgeDeviceJob items on this page", - "items": { - "$ref": "#/definitions/EdgeDeviceJob" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "EdgeDeviceJobProperties": { - "type": "object", - "description": "Edge device job properties", - "properties": { - "deploymentMode": { - "$ref": "#/definitions/DeploymentMode", - "description": "Deployment mode to trigger job." - }, - "provisioningState": { - "$ref": "#/definitions/ProvisioningState", - "description": "Job provisioning state", - "readOnly": true - }, - "jobId": { - "type": "string", - "description": "Unique, immutable job id.", - "readOnly": true - }, - "startTimeUtc": { - "type": "string", - "format": "date-time", - "description": "The UTC date and time at which the job started.", - "readOnly": true - }, - "endTimeUtc": { - "type": "string", - "format": "date-time", - "description": "The UTC date and time at which the job completed.", - "readOnly": true - }, - "status": { - "$ref": "#/definitions/JobStatus", - "description": "Status of Edge device job.", - "readOnly": true - } - } - }, - "EdgeDeviceJobType": { - "type": "string", - "description": "Common Job Types supported.", - "enum": [ - "CollectLog", - "RemoteSupport" - ], - "x-ms-enum": { - "name": "EdgeDeviceJobType", - "modelAsString": true, - "values": [ - { - "name": "CollectLog", - "value": "CollectLog", - "description": "Job to collect logs from the device." - }, - { - "name": "RemoteSupport", - "value": "RemoteSupport", - "description": "Job to provide remote support to the device." - } - ] - } - }, - "EdgeSolutionType": { - "type": "string", - "description": "Edge solution type.", - "enum": [ - "WindowsServer" - ], - "x-ms-enum": { - "name": "EdgeSolutionType", - "modelAsString": true, - "values": [ - { - "name": "WindowsServer", - "value": "WindowsServer", - "description": "Edge solution for Windows based edge devices." - } - ] - } - }, - "HciCollectLogJobProperties": { - "type": "object", - "description": "Represents the properties of an HCI Collect Log job.", - "properties": { - "fromDate": { - "type": "string", - "format": "date-time", - "description": "From date for log collection." - }, - "toDate": { - "type": "string", - "format": "date-time", - "description": "To date for log collection." - }, - "lastLogGenerated": { - "type": "string", - "format": "date-time", - "description": "To date for log collection.", - "readOnly": true - }, - "reportedProperties": { - "$ref": "#/definitions/LogCollectionReportedProperties", - "description": "log collection job reported properties.", - "readOnly": true - } - }, - "required": [ - "fromDate", - "toDate" - ], - "allOf": [ - { - "$ref": "#/definitions/HciEdgeDeviceJobProperties" - } - ], - "x-ms-discriminator-value": "CollectLog" - }, - "HciEdgeDeviceJob": { - "type": "object", - "description": "Edge device job for Azure Stack HCI solution.", - "properties": { - "properties": { - "$ref": "#/definitions/HciEdgeDeviceJobProperties", - "description": "HCI Edge device job properties" - } - }, - "required": [ - "properties" - ], - "allOf": [ - { - "$ref": "#/definitions/EdgeDeviceJob" - } - ], - "x-ms-discriminator-value": "HCI" - }, - "HciEdgeDeviceJobProperties": { - "type": "object", - "description": "HCI Edge device job properties", - "properties": { - "deploymentMode": { - "$ref": "#/definitions/DeploymentMode", - "description": "Deployment mode to trigger job." - }, - "provisioningState": { - "$ref": "#/definitions/ProvisioningState", - "description": "Job provisioning state", - "readOnly": true - }, - "jobId": { - "type": "string", - "description": "Unique, immutable job id.", - "readOnly": true - }, - "startTimeUtc": { - "type": "string", - "format": "date-time", - "description": "The UTC date and time at which the job started.", - "readOnly": true - }, - "endTimeUtc": { - "type": "string", - "format": "date-time", - "description": "The UTC date and time at which the job completed.", - "readOnly": true - }, - "status": { - "$ref": "#/definitions/JobStatus", - "description": "Status of Edge device job.", - "readOnly": true - }, - "jobType": { - "$ref": "#/definitions/HciEdgeDeviceJobType", - "description": "Job Type to support polymorphic resource.", - "x-ms-mutability": [ - "read", - "create" - ] - } - }, - "discriminator": "jobType", - "required": [ - "jobType" - ] - }, - "HciEdgeDeviceJobType": { - "type": "string", - "description": "Job Type supported.", - "enum": [ - "CollectLog", - "RemoteSupport" - ], - "x-ms-enum": { - "name": "HciEdgeDeviceJobType", - "modelAsString": true, - "values": [ - { - "name": "CollectLog", - "value": "CollectLog", - "description": "Job to collect logs from the device." - }, - { - "name": "RemoteSupport", - "value": "RemoteSupport", - "description": "Job to provide remote support to the device." - } - ] - } - }, - "HciRemoteSupportJobProperties": { - "type": "object", - "description": "Represents the properties of a remote support job for HCI.", - "properties": { - "accessLevel": { - "$ref": "#/definitions/RemoteSupportAccessLevel", - "description": "Remote support access level." - }, - "expirationTimestamp": { - "type": "string", - "format": "date-time", - "description": "Remote support expiration timestamp." - }, - "type": { - "$ref": "#/definitions/RemoteSupportType", - "description": "Remote support type." - }, - "reportedProperties": { - "$ref": "#/definitions/RemoteSupportJobReportedProperties", - "description": "log collection job reported properties.", - "readOnly": true - } - }, - "required": [ - "accessLevel", - "expirationTimestamp", - "type" - ], - "allOf": [ - { - "$ref": "#/definitions/HciEdgeDeviceJobProperties" - } - ], - "x-ms-discriminator-value": "RemoteSupport" - }, - "JobReportedProperties": { - "type": "object", - "description": "Reported Properties for job triggered from cloud.", - "properties": { - "percentComplete": { - "type": "integer", - "format": "int32", - "description": "The percentage of the job that is complete.", - "readOnly": true - }, - "validationStatus": { - "$ref": "./hciCommon.json#/definitions/EceActionStatus", - "description": "Validation status of job.", - "readOnly": true - }, - "deploymentStatus": { - "$ref": "./hciCommon.json#/definitions/EceActionStatus", - "description": "Deployment status of job.", - "readOnly": true - } - } - }, - "JobStatus": { - "type": "string", - "description": "Represents the various statuses a job can have throughout its lifecycle.", - "enum": [ - "NotSpecified", - "ValidationInProgress", - "ValidationSuccess", - "ValidationFailed", - "DeploymentInProgress", - "DeploymentFailed", - "DeploymentSuccess", - "Succeeded", - "Failed", - "Canceled", - "Paused", - "Scheduled" - ], - "x-ms-enum": { - "name": "JobStatus", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The job status has not been specified." - }, - { - "name": "ValidationInProgress", - "value": "ValidationInProgress", - "description": "The job is currently undergoing validation." - }, - { - "name": "ValidationSuccess", - "value": "ValidationSuccess", - "description": "The job has successfully passed validation." - }, - { - "name": "ValidationFailed", - "value": "ValidationFailed", - "description": "The job has failed validation." - }, - { - "name": "DeploymentInProgress", - "value": "DeploymentInProgress", - "description": "The job's deployment is currently in progress." - }, - { - "name": "DeploymentFailed", - "value": "DeploymentFailed", - "description": "The job's deployment has failed." - }, - { - "name": "DeploymentSuccess", - "value": "DeploymentSuccess", - "description": "The job has been successfully deployed." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The job has succeeded." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The job has failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The job has been canceled." - }, - { - "name": "Paused", - "value": "Paused", - "description": "The job is paused." - }, - { - "name": "Scheduled", - "value": "Scheduled", - "description": "The job is scheduled to run." - } - ] - }, - "readOnly": true - }, - "LogCollectionReportedProperties": { - "type": "object", - "description": "Represents the reported properties of a log collection job.", - "properties": { - "percentComplete": { - "type": "integer", - "format": "int32", - "description": "The percentage of the job that is complete.", - "readOnly": true - }, - "validationStatus": { - "$ref": "./hciCommon.json#/definitions/EceActionStatus", - "description": "Validation status of job.", - "readOnly": true - }, - "deploymentStatus": { - "$ref": "./hciCommon.json#/definitions/EceActionStatus", - "description": "Deployment status of job.", - "readOnly": true - }, - "logCollectionSessionDetails": { - "type": "array", - "description": "Details of the log collection session.", - "items": { - "$ref": "#/definitions/LogCollectionJobSession" - }, - "readOnly": true, - "x-ms-identifiers": [ - "correlationId" - ] - } - } - }, - "LogCollectionJobSession": { - "type": "object", - "description": "Represents a session for collecting logs from an edge device.", - "properties": { - "startTime": { - "type": "string", - "description": "The timestamp when log collection started, in ISO 8601 format.", - "readOnly": true - }, - "endTime": { - "type": "string", - "description": "The timestamp when log collection ended, in ISO 8601 format.", - "readOnly": true - }, - "timeCollected": { - "type": "string", - "description": "The total time logs were collected for, in ISO 8601 duration format.", - "readOnly": true - }, - "logSize": { - "type": "integer", - "format": "int32", - "description": "The size of the collected logs in bytes.", - "readOnly": true - }, - "status": { - "$ref": "#/definitions/DeviceLogCollectionStatus", - "description": "The status of the log collection session.", - "readOnly": true - }, - "correlationId": { - "type": "string", - "description": "A unique identifier for correlating this log collection session with other operations or sessions.", - "readOnly": true - } - } - }, - "LogCollectionStatus": { - "type": "string", - "description": "Represents the status of a log collection operation.", - "enum": [ - "None", - "InProgress", - "Failed", - "Succeeded" - ], - "x-ms-enum": { - "name": "LogCollectionStatus", - "modelAsString": true, - "values": [ - { - "name": "None", - "value": "None", - "description": "Indicates that no log collection operation has been initiated." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "Indicates that the log collection operation is currently in progress." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Indicates that the log collection operation has failed." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Indicates that the log collection operation has completed successfully." - } - ] - }, - "readOnly": true - }, - "ProvisioningState": { - "type": "string", - "description": "The provisioning state of a resource.", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "NotSpecified", - "Provisioning", - "Updating", - "Deleting", - "Accepted" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Resource has been created." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Resource creation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Resource creation was canceled." - }, - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The resource provision state is not specified" - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The resource is being provisioned" - }, - { - "name": "Updating", - "value": "Updating", - "description": "The resource is updating" - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The resource is being deleted" - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The resource create request has been accepted" - } - ] - }, - "readOnly": true - }, - "RemoteSupportAccessLevel": { - "type": "string", - "description": "Defines the level of remote support access granted.", - "enum": [ - "None", - "Diagnostics", - "DiagnosticsAndRepair" - ], - "x-ms-enum": { - "name": "RemoteSupportAccessLevel", - "modelAsString": true, - "values": [ - { - "name": "None", - "value": "None", - "description": "No remote support access is granted." - }, - { - "name": "Diagnostics", - "value": "Diagnostics", - "description": "Access is limited to diagnostics information only." - }, - { - "name": "DiagnosticsAndRepair", - "value": "DiagnosticsAndRepair", - "description": "Access includes diagnostics information and the ability to perform repairs." - } - ] - } - }, - "RemoteSupportJobProperties": { - "type": "object", - "description": "Represents the properties of a remote support job.", - "properties": { - "accessLevel": { - "$ref": "#/definitions/RemoteSupportAccessLevel", - "description": "Remote support access level." - }, - "expirationTimestamp": { - "type": "string", - "format": "date-time", - "description": "Remote support expiration timestamp." - }, - "type": { - "$ref": "#/definitions/RemoteSupportType", - "description": "Remote support type." - }, - "reportedProperties": { - "$ref": "#/definitions/RemoteSupportJobReportedProperties", - "description": "log collection job reported properties.", - "readOnly": true - } - }, - "required": [ - "accessLevel", - "expirationTimestamp", - "type" - ] - }, - "RemoteSupportJobNodeSettings": { - "type": "object", - "description": "Represents the settings of a remote support node.", - "properties": { - "state": { - "type": "string", - "description": "The state of the remote support node.", - "readOnly": true - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the node settings were created, in UTC.", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the node settings were last updated, in UTC.", - "readOnly": true - }, - "connectionStatus": { - "type": "string", - "description": "The current connection status of the remote support session.", - "readOnly": true - }, - "connectionErrorMessage": { - "type": "string", - "description": "The error message, if any, from the last connection attempt.", - "readOnly": true - } - } - }, - "RemoteSupportJobReportedProperties": { - "type": "object", - "description": "Represents the reported properties of a remote support job.", - "properties": { - "percentComplete": { - "type": "integer", - "format": "int32", - "description": "The percentage of the job that is complete.", - "readOnly": true - }, - "validationStatus": { - "$ref": "./hciCommon.json#/definitions/EceActionStatus", - "description": "Validation status of job.", - "readOnly": true - }, - "deploymentStatus": { - "$ref": "./hciCommon.json#/definitions/EceActionStatus", - "description": "Deployment status of job.", - "readOnly": true - }, - "nodeSettings": { - "$ref": "#/definitions/RemoteSupportJobNodeSettings", - "description": "Optional settings for configuring the node for remote support.", - "readOnly": true - }, - "sessionDetails": { - "type": "array", - "description": "Details of the remote support session.", - "items": { - "$ref": "#/definitions/RemoteSupportSession" - }, - "readOnly": true, - "x-ms-identifiers": [ - "sessionId" - ] - } - } - }, - "RemoteSupportSession": { - "type": "object", - "description": "Represents a remote support session.", - "properties": { - "sessionId": { - "type": "string", - "description": "Unique session Id.", - "readOnly": true - }, - "sessionStartTime": { - "type": "string", - "format": "date-time", - "description": "The start time of the remote support session, in UTC.", - "readOnly": true - }, - "sessionEndTime": { - "type": "string", - "format": "date-time", - "description": "The end time of the remote support session, in UTC.", - "readOnly": true - }, - "accessLevel": { - "$ref": "#/definitions/RemoteSupportAccessLevel", - "description": "The level of access granted during the remote support session.", - "readOnly": true - }, - "transcriptLocation": { - "type": "string", - "description": "The location where the session transcript is stored.", - "readOnly": true - } - } - }, - "RemoteSupportType": { - "type": "string", - "description": "Defines the type of remote support action to be performed on an edge device.", - "enum": [ - "Enable", - "Revoke" - ], - "x-ms-enum": { - "name": "RemoteSupportType", - "modelAsString": true, - "values": [ - { - "name": "Enable", - "value": "Enable", - "description": "Enables remote support for the edge device." - }, - { - "name": "Revoke", - "value": "Revoke", - "description": "Revokes previously granted remote support access for the edge device." - } - ] - } - } - }, - "parameters": { - "Azure.ResourceManager.ResourceUriParameter": { - "name": "resourceUri", - "in": "path", - "description": "The fully qualified Azure Resource manager identifier of the resource.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-skip-url-encoding": true - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/edgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/edgeDevices.json deleted file mode 100644 index 88fb116c651d..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/edgeDevices.json +++ /dev/null @@ -1,1399 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Edge Devices", - "version": "2025-12-01-preview", - "description": "Azure Arc-enabled Edge Device." - }, - "schemes": [ - "https" - ], - "host": "management.azure.com", - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "tags": [ - { - "name": "EdgeDevices" - } - ], - "paths": { - "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices": { - "get": { - "operationId": "EdgeDevices_List", - "tags": [ - "EdgeDevices" - ], - "description": "List EdgeDevice resources by parent", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/EdgeDeviceListResult" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Edge Devices": { - "$ref": "./examples/ListEdgeDevices.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}": { - "get": { - "operationId": "EdgeDevices_Get", - "tags": [ - "EdgeDevices" - ], - "description": "Get a EdgeDevice", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/EdgeDevice" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Edge Device": { - "$ref": "./examples/GetEdgeDevices.json" - } - } - }, - "put": { - "operationId": "EdgeDevices_CreateOrUpdate", - "tags": [ - "EdgeDevices" - ], - "description": "Create a EdgeDevice", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "resource", - "in": "body", - "description": "Resource create parameters.", - "required": true, - "schema": { - "$ref": "#/definitions/EdgeDevice" - } - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/EdgeDevice" - } - }, - "201": { - "description": "Resource successfully created.", - "schema": { - "$ref": "#/definitions/EdgeDevice" - }, - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-long-running-operation": true, - "x-ms-examples": { - "Create HCI Edge Device": { - "$ref": "./examples/CreateHciEdgeDevice.json" - } - } - }, - "delete": { - "operationId": "EdgeDevices_Delete", - "tags": [ - "EdgeDevices" - ], - "description": "Delete a EdgeDevice", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "202": { - "description": "Resource deletion accepted.", - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - }, - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - } - } - }, - "204": { - "description": "Resource deleted successfully." - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Delete Edge Devices": { - "$ref": "./examples/DeleteEdgeDevices.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true - } - }, - "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}/validate": { - "post": { - "operationId": "EdgeDevices_Validate", - "tags": [ - "EdgeDevices" - ], - "description": "A long-running resource action.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/Azure.ResourceManager.ResourceUriParameter" - }, - { - "name": "edgeDeviceName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "ValidateRequest", - "in": "body", - "description": "The content of the action request", - "required": true, - "schema": { - "$ref": "#/definitions/ValidateRequest" - } - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/ValidateResponse" - } - }, - "202": { - "description": "Resource operation accepted.", - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - }, - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Validate Edge Devices": { - "$ref": "./examples/ValidateEdgeDevices.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true - } - } - }, - "definitions": { - "AdapterPropertyOverrides": { - "type": "object", - "description": "The AdapterPropertyOverrides of a cluster.", - "properties": { - "jumboPacket": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "readOnly": true - }, - "networkDirect": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "readOnly": true - }, - "networkDirectTechnology": { - "type": "string", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. Expected values are 'iWARP', 'RoCEv2', 'RoCE'", - "readOnly": true - } - } - }, - "ArcExtensionState": { - "type": "string", - "description": "Arc extension installation state.", - "enum": [ - "NotSpecified", - "Succeeded", - "Failed", - "Canceled", - "Accepted", - "Creating", - "Updating", - "Moving", - "Deleting", - "Deleted" - ], - "x-ms-enum": { - "name": "ArcExtensionState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "Arc extension state is not specified." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Arc extension state is Succeeded." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Arc extension state is Failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Arc extension state is Canceled." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "Arc extension state is Accepted when extension installation triggered." - }, - { - "name": "Creating", - "value": "Creating", - "description": "Arc extension is in Creating State." - }, - { - "name": "Updating", - "value": "Updating", - "description": "Arc extension is in Updating State." - }, - { - "name": "Moving", - "value": "Moving", - "description": "Arc extension is in Moving State." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "Arc extension is in Deleting State." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "Arc extension is in Deleted State." - } - ] - } - }, - "DeviceConfiguration": { - "type": "object", - "description": "The device Configuration for edge device.", - "properties": { - "nicDetails": { - "type": "array", - "description": "NIC Details of device", - "items": { - "$ref": "#/definitions/NicDetail" - }, - "x-ms-identifiers": [ - "adapterName" - ] - }, - "deviceMetadata": { - "type": "string", - "description": "Device metadata details." - } - } - }, - "DeviceKind": { - "type": "string", - "description": "Edge device kind.", - "enum": [ - "HCI" - ], - "default": "HCI", - "x-ms-enum": { - "name": "DeviceKind", - "modelAsString": true, - "values": [ - { - "name": "HCI", - "value": "HCI", - "description": "Arc-enabled edge device with HCI OS." - } - ] - } - }, - "DeviceState": { - "type": "string", - "description": "The edge device state.", - "enum": [ - "NotSpecified", - "Connected", - "Disconnected", - "Repairing", - "Draining", - "InMaintenance", - "Resuming", - "Processing" - ], - "x-ms-enum": { - "name": "DeviceState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The edge device state is not specified." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The edge device state is in connected state." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The edge device state is in disconnected state." - }, - { - "name": "Repairing", - "value": "Repairing", - "description": "The edge device state is in repairing state." - }, - { - "name": "Draining", - "value": "Draining", - "description": "The edge device state is in draining state." - }, - { - "name": "InMaintenance", - "value": "InMaintenance", - "description": "The edge device state is in maintenance state." - }, - { - "name": "Resuming", - "value": "Resuming", - "description": "The edge device state is in resuming state." - }, - { - "name": "Processing", - "value": "Processing", - "description": "The edge device state is in processing state." - } - ] - } - }, - "EdgeDevice": { - "type": "object", - "description": "Edge device resource.", - "properties": { - "kind": { - "$ref": "#/definitions/DeviceKind", - "description": "Device kind to support polymorphic resource.", - "x-ms-mutability": [ - "create", - "read" - ] - } - }, - "discriminator": "kind", - "required": [ - "kind" - ], - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ] - }, - "EdgeDeviceListResult": { - "type": "object", - "description": "The response of a EdgeDevice list operation.", - "properties": { - "value": { - "type": "array", - "description": "The EdgeDevice items on this page", - "items": { - "$ref": "#/definitions/EdgeDevice" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "EdgeDeviceProperties": { - "type": "object", - "description": "Edge Device properties", - "properties": { - "deviceConfiguration": { - "$ref": "#/definitions/DeviceConfiguration", - "description": "Device Configuration" - }, - "provisioningState": { - "$ref": "./hciCommon.json#/definitions/ProvisioningState", - "description": "Provisioning state of edgeDevice resource", - "readOnly": true - } - } - }, - "ErrorDetail": { - "type": "object", - "description": "details of validation failure", - "properties": { - "exception": { - "type": "string", - "description": "Exception details while installing extension.", - "readOnly": true - } - } - }, - "Extension": { - "type": "object", - "description": "Arc extension installed on edge device.", - "properties": { - "extensionName": { - "type": "string", - "description": "Arc extension name installed on edge device.", - "readOnly": true - }, - "state": { - "$ref": "#/definitions/ArcExtensionState", - "description": "Arc extension state from arc machine extension.", - "readOnly": true - }, - "errorDetails": { - "type": "array", - "description": "Error details while installing Arc extension.", - "items": { - "$ref": "#/definitions/ErrorDetail" - }, - "readOnly": true, - "x-ms-identifiers": [] - }, - "extensionResourceId": { - "type": "string", - "format": "arm-id", - "description": "Arc Extension Azure resource id.", - "readOnly": true - }, - "typeHandlerVersion": { - "type": "string", - "description": "Extension version installed.", - "readOnly": true - }, - "managedBy": { - "type": "string", - "description": "Indicates whether the extension is managed by the user or by Azure.", - "default": "Azure", - "enum": [ - "User", - "Azure" - ], - "x-ms-enum": { - "name": "ExtensionManagedBy", - "modelAsString": true, - "values": [ - { - "name": "User", - "value": "User", - "description": "The extension is managed by the user." - }, - { - "name": "Azure", - "value": "Azure", - "description": "The extension is managed by Azure." - } - ] - }, - "readOnly": true - } - } - }, - "ExtensionManagedBy": { - "type": "string", - "description": "Arc extension managed by Azure or User.", - "enum": [ - "User", - "Azure" - ], - "x-ms-enum": { - "name": "ExtensionManagedBy", - "modelAsString": true, - "values": [ - { - "name": "User", - "value": "User", - "description": "The extension is managed by the user." - }, - { - "name": "Azure", - "value": "Azure", - "description": "The extension is managed by Azure." - } - ] - } - }, - "ExtensionProfile": { - "type": "object", - "description": "Extensions details for edge device.", - "properties": { - "extensions": { - "type": "array", - "description": "List of Arc extensions installed on edge device.", - "items": { - "$ref": "#/definitions/Extension" - }, - "readOnly": true, - "x-ms-identifiers": [ - "extensionName" - ] - } - } - }, - "HciEdgeDevice": { - "type": "object", - "description": "Arc-enabled edge device with HCI OS.", - "properties": { - "properties": { - "$ref": "#/definitions/HciEdgeDeviceProperties", - "description": "properties for Arc-enabled edge device with HCI OS." - } - }, - "allOf": [ - { - "$ref": "#/definitions/EdgeDevice" - } - ], - "x-ms-discriminator-value": "HCI" - }, - "HciEdgeDeviceProperties": { - "type": "object", - "description": "properties for Arc-enabled edge device with HCI OS.", - "properties": { - "reportedProperties": { - "$ref": "#/definitions/HciReportedProperties", - "description": "The instance view of all current configurations on HCI device.", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "#/definitions/EdgeDeviceProperties" - } - ] - }, - "HciNetworkProfile": { - "type": "object", - "description": "The network profile of a device.", - "properties": { - "nicDetails": { - "type": "array", - "description": "List of NIC Details of device.", - "items": { - "$ref": "#/definitions/HciNicDetail" - }, - "readOnly": true, - "x-ms-identifiers": [ - "adapterName" - ] - }, - "switchDetails": { - "type": "array", - "description": "List of switch details for edge device.", - "items": { - "$ref": "#/definitions/SwitchDetail" - }, - "readOnly": true, - "x-ms-identifiers": [ - "switchName" - ] - }, - "hostNetwork": { - "$ref": "#/definitions/HostNetwork", - "description": "HostNetwork config to deploy AzureStackHCI Cluster.", - "readOnly": true - }, - "sdnProperties": { - "description": "Software Defined Networking Properties of the cluster", - "$ref": "./hci.json#/definitions/SdnProperties" - } - } - }, - "HciNicDetail": { - "type": "object", - "description": "The NIC Detail of a device.", - "properties": { - "adapterName": { - "type": "string", - "description": "Adapter Name of NIC", - "readOnly": true - }, - "interfaceDescription": { - "type": "string", - "description": "Interface Description of NIC", - "readOnly": true - }, - "componentId": { - "type": "string", - "description": "Component Id of NIC", - "readOnly": true - }, - "driverVersion": { - "type": "string", - "description": "Driver Version of NIC", - "readOnly": true - }, - "ip4Address": { - "type": "string", - "description": "Subnet Mask of NIC", - "readOnly": true - }, - "subnetMask": { - "type": "string", - "description": "Subnet Mask of NIC", - "readOnly": true - }, - "defaultGateway": { - "type": "string", - "description": "Default Gateway of NIC", - "readOnly": true - }, - "dnsServers": { - "type": "array", - "description": "DNS Servers for NIC", - "items": { - "type": "string" - }, - "readOnly": true, - "x-ms-identifiers": [] - }, - "defaultIsolationId": { - "type": "string", - "description": "Default Isolation of Management NIC", - "readOnly": true - }, - "macAddress": { - "type": "string", - "description": "MAC address information of NIC.", - "readOnly": true - }, - "slot": { - "type": "string", - "description": "The slot attached to the NIC.", - "readOnly": true - }, - "switchName": { - "type": "string", - "description": "The switch attached to the NIC, if any.", - "readOnly": true - }, - "nicType": { - "type": "string", - "description": "The type of NIC, physical, virtual, management.", - "readOnly": true - }, - "vlanId": { - "type": "string", - "description": "The VLAN ID of the physical NIC.", - "readOnly": true - }, - "nicStatus": { - "type": "string", - "description": "The status of NIC, up, disconnected.", - "readOnly": true - }, - "rdmaCapability": { - "type": "string", - "description": "Describes the RDMA capability of the network adapter.", - "enum": [ - "Enabled", - "Disabled" - ], - "default": "Disabled", - "x-ms-enum": { - "name": "RdmaCapability", - "modelAsString": true, - "values": [ - { - "name": "Enabled", - "value": "Enabled", - "description": "Network Adapter on the device is RDMA Capable" - }, - { - "name": "Disabled", - "value": "Disabled", - "description": "Network Adapter on the device is RDMA Capable" - } - ] - }, - "readOnly": true - } - } - }, - "HciOsProfile": { - "type": "object", - "description": "OS configurations for HCI device.", - "properties": { - "bootType": { - "type": "string", - "description": "The boot type of the device. e.g. UEFI, Legacy etc", - "readOnly": true - }, - "assemblyVersion": { - "type": "string", - "description": "Version of assembly present on device", - "readOnly": true - } - } - }, - "HciStorageProfile": { - "type": "object", - "description": "Storage configurations for HCI device.", - "properties": { - "poolableDisksCount": { - "type": "integer", - "format": "int64", - "description": "Number of storage disks in the device with $CanPool as true.", - "readOnly": true - } - } - }, - "HciHardwareProfile": { - "type": "object", - "description": "Hardware configurations for HCI device.", - "properties": { - "processorType": { - "type": "string", - "description": "Process type of the device", - "readOnly": true - } - } - }, - "HciReportedProperties": { - "type": "object", - "description": "The device Configuration for HCI device.", - "properties": { - "networkProfile": { - "$ref": "#/definitions/HciNetworkProfile", - "description": "HCI device network information.", - "readOnly": true - }, - "osProfile": { - "$ref": "#/definitions/HciOsProfile", - "description": "HCI device OS specific information.", - "readOnly": true - }, - "sbeDeploymentPackageInfo": { - "$ref": "#/definitions/SbeDeploymentPackageInfo", - "description": "Solution builder extension (SBE) deployment package information.", - "readOnly": true - }, - "storageProfile": { - "$ref": "#/definitions/HciStorageProfile", - "description": "Hci device storage specific information.", - "readOnly": true - }, - "hardwareProfile": { - "$ref": "#/definitions/HciHardwareProfile", - "description": "Hci device hardware specific information.", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "#/definitions/ReportedProperties" - } - ] - }, - "HostNetwork": { - "type": "object", - "description": "The HostNetwork of a cluster.", - "properties": { - "intents": { - "type": "array", - "description": "The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.", - "items": { - "$ref": "#/definitions/Intents" - }, - "readOnly": true, - "x-ms-identifiers": [ - "intentName" - ] - }, - "storageNetworks": { - "type": "array", - "description": "List of StorageNetworks config to deploy AzureStackHCI Cluster.", - "items": { - "$ref": "#/definitions/StorageNetworks" - }, - "readOnly": true, - "x-ms-identifiers": [ - "networkAdapterName" - ] - }, - "storageConnectivitySwitchless": { - "type": "boolean", - "description": "Defines how the storage adapters between nodes are connected either switch or switch less.", - "readOnly": true - }, - "enableStorageAutoIp": { - "type": "boolean", - "description": "Optional parameter required only for 3 Nodes Switchless deployments. This allows users to specify IPs and Mask for Storage NICs when Network ATC is not assigning the IPs for storage automatically.", - "readOnly": true - } - } - }, - "Intents": { - "type": "object", - "description": "The Intents of a cluster.", - "properties": { - "scope": { - "type": "integer", - "format": "int64", - "description": "Scope for host network intent.", - "readOnly": true - }, - "intentType": { - "type": "integer", - "format": "int64", - "description": "IntentType for host network intent.", - "readOnly": true - }, - "isComputeIntentSet": { - "type": "boolean", - "description": "IsComputeIntentSet for host network intent.", - "readOnly": true - }, - "isStorageIntentSet": { - "type": "boolean", - "description": "IsStorageIntentSet for host network intent.", - "readOnly": true - }, - "isOnlyStorage": { - "type": "boolean", - "description": "IntentType for host network intent.", - "readOnly": true - }, - "isManagementIntentSet": { - "type": "boolean", - "description": "IsManagementIntentSet for host network intent.", - "readOnly": true - }, - "isStretchIntentSet": { - "type": "boolean", - "description": "IsStretchIntentSet for host network intent.", - "readOnly": true - }, - "isOnlyStretch": { - "type": "boolean", - "description": "IsOnlyStretch for host network intent.", - "readOnly": true - }, - "isNetworkIntentType": { - "type": "boolean", - "description": "IsNetworkIntentType for host network intent.", - "readOnly": true - }, - "intentName": { - "type": "string", - "description": "Name of the network intent you wish to create.", - "readOnly": true - }, - "intentAdapters": { - "type": "array", - "description": "Array of adapters used for the network intent.", - "items": { - "type": "string" - }, - "readOnly": true - }, - "overrideVirtualSwitchConfiguration": { - "type": "boolean", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "readOnly": true - }, - "virtualSwitchConfigurationOverrides": { - "$ref": "#/definitions/VirtualSwitchConfigurationOverrides", - "description": "Set virtualSwitch ConfigurationOverrides for cluster.", - "readOnly": true - }, - "overrideQosPolicy": { - "type": "boolean", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "readOnly": true - }, - "qosPolicyOverrides": { - "$ref": "./deploymentSettings.json#/definitions/QosPolicyOverrides", - "description": "Set QoS PolicyOverrides for cluster.", - "readOnly": true - }, - "overrideAdapterProperty": { - "type": "boolean", - "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", - "readOnly": true - }, - "adapterPropertyOverrides": { - "$ref": "#/definitions/AdapterPropertyOverrides", - "description": "Set Adapter PropertyOverrides for cluster.", - "readOnly": true - } - } - }, - "NicDetail": { - "type": "object", - "description": "The NIC Detail of a device.", - "properties": { - "adapterName": { - "type": "string", - "description": "Adapter Name of NIC" - }, - "interfaceDescription": { - "type": "string", - "description": "Interface Description of NIC" - }, - "componentId": { - "type": "string", - "description": "Component Id of NIC" - }, - "driverVersion": { - "type": "string", - "description": "Driver Version of NIC" - }, - "ip4Address": { - "type": "string", - "description": "Subnet Mask of NIC" - }, - "subnetMask": { - "type": "string", - "description": "Subnet Mask of NIC" - }, - "defaultGateway": { - "type": "string", - "description": "Default Gateway of NIC" - }, - "dnsServers": { - "type": "array", - "description": "DNS Servers for NIC", - "items": { - "type": "string" - }, - "x-ms-identifiers": [] - }, - "defaultIsolationId": { - "type": "string", - "description": "Default Isolation of Management NIC" - } - } - }, - "ReportedProperties": { - "type": "object", - "description": "Reported properties pushed from edge device.", - "properties": { - "deviceState": { - "$ref": "#/definitions/DeviceState", - "description": "edge device state.", - "readOnly": true - }, - "extensionProfile": { - "$ref": "#/definitions/ExtensionProfile", - "description": "Extensions details for edge device.", - "readOnly": true - }, - "lastSyncTimestamp": { - "type": "string", - "format": "date-time", - "description": "Most recent edge device sync timestamp in UTC.", - "readOnly": true - }, - "confidentialVmProfile": { - "$ref": "#/definitions/ConfidentialVmProfile", - "description": "Confidential VM support details for edge device.", - "readOnly": true - } - } - }, - "ConfidentialVmProfile": { - "type": "object", - "description": "Represents the Confidential Virtual Machine (CVM) configuration status for an edge device. It includes the current IGVM support state and detailed component-level status information.", - "properties": { - "igvmStatus": { - "$ref": "#/definitions/IgvmStatus", - "description": "Indicates whether Independent Guest Virtual Machine (IGVM) support is available on the device. This will be 'Enabled' if the device supports confidential VMs, 'Disabled' if not, and 'Unknown' if the status cannot be determined.", - "readOnly": true - }, - "statusDetails": { - "type": "array", - "description": "Provides detailed status entries for IGVM-related components, including deployment status, compatibility checks, and error diagnostics.", - "items": { - "$ref": "#/definitions/IgvmStatusDetail" - } - } - } - }, - "IgvmStatus": { - "type": "string", - "description": "Represents the IGVM support status for the device.", - "enum": [ - "Unknown", - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "IgvmStatus", - "modelAsString": true, - "values": [ - { - "name": "Unknown", - "value": "Unknown", - "description": "The IGVM status could not be determined due to a query failure or inconsistent system state." - }, - { - "name": "Enabled", - "value": "Enabled", - "description": "IGVM support is enabled, indicating that confidential VM features are available on this device." - }, - { - "name": "Disabled", - "value": "Disabled", - "description": "IGVM status is disabled, indicating that confidential VM features are not supported on this device." - } - ] - } - }, - "IgvmStatusDetail": { - "type": "object", - "description": "Provides component-level status information related to IGVM enablement on the device.", - "properties": { - "code": { - "type": "string", - "description": "A machine-readable status code indicating the result or condition of a specific IGVM-related check or operation.", - "readOnly": true - }, - "message": { - "type": "string", - "description": "A human-readable message providing context or explanation for the associated status code.", - "readOnly": true - } - } - }, - "SbeDeploymentPackageInfo": { - "type": "object", - "description": "Solution builder extension (SBE) deployment package information.", - "properties": { - "code": { - "type": "string", - "description": "SBE deployment validation code.", - "readOnly": true - }, - "message": { - "type": "string", - "description": "A detailed message that explains the SBE package validation result.", - "readOnly": true - }, - "sbeManifest": { - "type": "string", - "description": "This represents discovered update results for matching updates and store it as SBE manifest.", - "readOnly": true - } - } - }, - "StorageAdapterIPInfo": { - "type": "object", - "description": "The StorageAdapter physical nodes of a cluster.", - "properties": { - "physicalNode": { - "type": "string", - "description": "storage adapter physical node name.", - "readOnly": true - }, - "ipv4Address": { - "type": "string", - "description": "The IPv4 address assigned to each storage adapter physical node on your Azure Stack HCI cluster.", - "readOnly": true - }, - "subnetMask": { - "type": "string", - "description": "The SubnetMask address assigned to each storage adapter physical node on your Azure Stack HCI cluster.", - "readOnly": true - } - } - }, - "StorageNetworks": { - "type": "object", - "description": "The StorageNetworks of a cluster.", - "properties": { - "name": { - "type": "string", - "description": "Name of the storage network.", - "readOnly": true - }, - "networkAdapterName": { - "type": "string", - "description": "Name of the storage network adapter.", - "readOnly": true - }, - "storageVlanId": { - "type": "string", - "description": "ID specified for the VLAN storage network. This setting is applied to the network interfaces that route the storage and VM migration traffic. ", - "readOnly": true - }, - "storageAdapterIPInfo": { - "type": "array", - "description": "List of Storage adapter physical nodes config to deploy AzureStackHCI Cluster.", - "items": { - "$ref": "#/definitions/StorageAdapterIPInfo" - }, - "readOnly": true, - "x-ms-identifiers": [ - "physicalNode" - ] - } - } - }, - "SwitchDetail": { - "type": "object", - "description": "List of switch details for edge device.", - "properties": { - "switchName": { - "type": "string", - "description": "The name of the switch.", - "readOnly": true - }, - "switchType": { - "type": "string", - "description": "The type of the switch. e.g. external, internal.", - "readOnly": true - }, - "extensions": { - "type": "array", - "description": "This represents extensions installed on virtualSwitch.", - "items": { - "$ref": "#/definitions/SwitchExtension" - }, - "readOnly": true, - "x-ms-identifiers": [ - "extensionName" - ] - } - } - }, - "SwitchExtension": { - "type": "object", - "description": "This represents extensions installed on virtualSwitch.", - "properties": { - "switchId": { - "type": "string", - "description": "Unique identifier for virtualSwitch.", - "readOnly": true - }, - "extensionName": { - "type": "string", - "description": "This will show extension name for virtualSwitch.", - "readOnly": true - }, - "extensionEnabled": { - "type": "boolean", - "description": "This represents whether extension is enabled on virtualSwitch.", - "readOnly": true - } - } - }, - "ValidateRequest": { - "type": "object", - "description": "The validate request for Edge Device.", - "properties": { - "edgeDeviceIds": { - "type": "array", - "description": "Node Ids against which, current node has to be validated.", - "items": { - "type": "string" - } - }, - "additionalInfo": { - "type": "string", - "description": "Additional info required for validation." - } - }, - "required": [ - "edgeDeviceIds" - ] - }, - "ValidateResponse": { - "type": "object", - "description": "An Accepted response with an Operation-Location header.", - "properties": { - "status": { - "type": "string", - "description": "edge device validation status", - "readOnly": true - } - } - }, - "VirtualSwitchConfigurationOverrides": { - "type": "object", - "description": "The VirtualSwitchConfigurationOverrides of a cluster.", - "properties": { - "enableIov": { - "type": "string", - "description": "Enable IoV for Virtual Switch", - "readOnly": true - }, - "loadBalancingAlgorithm": { - "type": "string", - "description": "Load Balancing Algorithm for Virtual Switch", - "readOnly": true - } - } - } - }, - "parameters": { - "Azure.ResourceManager.ResourceUriParameter": { - "name": "resourceUri", - "in": "path", - "description": "The fully qualified Azure Resource manager identifier of the resource.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "x-ms-skip-url-encoding": true - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ChangeClusterRing.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ChangeClusterRing.json index 835d9a5aeb68..57cb0cf8142d 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ChangeClusterRing.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ChangeClusterRing.json @@ -1,83 +1,85 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", "api-version": "2025-12-01-preview", "changeRingRequest": { "properties": { "targetRing": "Insider" } - } + }, + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { - "202": { - "headers": { - "location": "https://foo.com/operationStatuses" - } - }, "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "name": "myCluster", "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "location": "East US", - "tags": {}, - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2020-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" - }, "properties": { - "provisioningState": "Succeeded", - "status": "ConnectedRecently", - "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", - "ring": "Insider", - "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "desiredProperties": { - "windowsServerSubscription": "Enabled", - "diagnosticLevel": "Basic" - }, - "softwareAssuranceProperties": { - "softwareAssuranceStatus": "Enabled", - "lastUpdated": "2022-08-18T22:01:12.4191603Z", - "softwareAssuranceIntent": "Enable" + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", "reportedProperties": { - "clusterName": "cluster1", "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", "nodes": [ { "name": "Node1", + "coreCount": 8, "id": 1, - "windowsServerSubscription": "Enabled", - "nodeType": "ThirdParty", "manufacturer": "Dell Inc.", + "memoryInGiB": 128, "model": "EMC AX740", + "nodeType": "ThirdParty", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q45CZC3", - "coreCount": 8, - "memoryInGiB": 128 + "windowsServerSubscription": "Enabled" } - ], - "lastUpdated": "2020-03-11T19:24:42.1946017Z", - "imdsAttestation": "Disabled", - "diagnosticLevel": "Basic" + ] }, - "trialDaysRemaining": 30, - "billingModel": "Trial", - "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" - } + "ring": "Insider", + "softwareAssuranceProperties": { + "lastUpdated": "2022-08-18T22:01:12.4191603Z", + "softwareAssuranceIntent": "Enable", + "softwareAssuranceStatus": "Enabled" + }, + "status": "ConnectedRecently", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" } } - } + }, + "operationId": "Clusters_ChangeRing", + "title": "Change cluster ring" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/Clusters_UpdateSecretsLocations.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/Clusters_UpdateSecretsLocations.json index 2660c782c061..215ea165a40a 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/Clusters_UpdateSecretsLocations.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/Clusters_UpdateSecretsLocations.json @@ -1,82 +1,68 @@ { + "operationId": "Clusters_UpdateSecretsLocations", "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", "api-version": "2025-12-01-preview", "body": { "properties": [ { - "secretsType": "BackupSecrets", - "secretsLocation": "https://kvname.vault.azure.net/" + "secretsLocation": "https://kvname.vault.azure.net/", + "secretsType": "BackupSecrets" } ] - } + }, + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, + "title": "Update secrets locations for a Cluster", "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "name": "myCluster", "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "location": "East US", - "tags": {}, - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2020-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" - }, "properties": { - "provisioningState": "Succeeded", - "status": "ConnectedRecently", - "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", - "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "desiredProperties": { - "windowsServerSubscription": "Enabled", - "diagnosticLevel": "Basic" - }, - "softwareAssuranceProperties": { - "softwareAssuranceStatus": "Enabled", - "lastUpdated": "2022-08-18T22:01:12.4191603Z", - "softwareAssuranceIntent": "Enable" + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", "reportedProperties": { - "clusterName": "cluster1", "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", "nodes": [ { "name": "Node1", + "coreCount": 8, "id": 1, - "windowsServerSubscription": "Enabled", - "nodeType": "ThirdParty", "manufacturer": "Dell Inc.", + "memoryInGiB": 128, "model": "EMC AX740", + "nodeType": "ThirdParty", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q45CZC3", - "coreCount": 8, - "memoryInGiB": 128 + "windowsServerSubscription": "Enabled" } - ], - "lastUpdated": "2020-03-11T19:24:42.1946017Z", - "imdsAttestation": "Disabled", - "diagnosticLevel": "Basic" + ] }, - "trialDaysRemaining": 30, - "billingModel": "Trial", - "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", "secretsLocations": [ { - "secretsType": "BackupSecrets", - "secretsLocation": "https://kvname.vault.azure.net/" + "secretsLocation": "https://kvname.vault.azure.net/", + "secretsType": "BackupSecrets" } ], "sdnProperties": { @@ -88,8 +74,24 @@ "confidentialVmIntent": "Enable", "confidentialVmStatus": "PartiallyEnabled", "confidentialVmStatusSummary": "Cluster cannot fully enable Confidential VM support due to hardware limitations on node 1." - } - } + }, + "softwareAssuranceProperties": { + "lastUpdated": "2022-08-18T22:01:12.4191603Z", + "softwareAssuranceIntent": "Enable", + "softwareAssuranceStatus": "Enabled" + }, + "status": "ConnectedRecently", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} } }, "202": { @@ -97,7 +99,5 @@ "location": "https://foo.com/operationStatuses" } } - }, - "operationId": "Clusters_UpdateSecretsLocations", - "title": "Update secrets locations for a Cluster" + } } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ConfigureRemoteSupport.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ConfigureRemoteSupport.json index aac8c96c1feb..dc5d801d1ddf 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ConfigureRemoteSupport.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ConfigureRemoteSupport.json @@ -1,113 +1,115 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "mycluster", "api-version": "2025-12-01-preview", + "clusterName": "mycluster", "remoteSupportRequest": { "properties": { "accessLevel": "Diagnostics", "expirationTimeStamp": "2020-01-01T17:18:19.1234567Z", "remoteSupportType": "Enable" } - } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { - "202": { - "headers": { - "location": "https://foo.com/operationStatuses" - } - }, "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "name": "myCluster", "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "location": "East US", - "tags": {}, - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2020-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" - }, "properties": { - "provisioningState": "Succeeded", - "status": "ConnectedRecently", - "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", - "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "desiredProperties": { - "windowsServerSubscription": "Enabled", - "diagnosticLevel": "Basic" + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", "remoteSupportProperties": { "accessLevel": "Diagnostics", "expirationTimeStamp": "2020-01-01T17:18:19.1234567Z", - "remoteSupportType": "Enable", "remoteSupportNodeSettings": [ { "arcResourceId": "/subscriptions//resourcegroups//Microsoft.HybridCompute/machines/arcNode0", - "state": "Active", - "createdAt": "2020-01-01T17:18:19.1234567Z", - "updatedAt": "2020-01-01T17:18:19.1234567Z", - "connectionStatus": "Connected", "connectionErrorMessage": "test", - "transcriptLocation": "test" + "connectionStatus": "Connected", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "state": "Active", + "transcriptLocation": "test", + "updatedAt": "2020-01-01T17:18:19.1234567Z" }, { "arcResourceId": "/subscriptions//resourcegroups//Microsoft.HybridCompute/machines/arcNode1", - "state": "Active", - "createdAt": "2020-01-01T17:18:19.1234567Z", - "updatedAt": "2020-01-01T17:18:19.1234567Z", - "connectionStatus": "Connected", "connectionErrorMessage": "test", - "transcriptLocation": "test" + "connectionStatus": "Connected", + "createdAt": "2020-01-01T17:18:19.1234567Z", + "state": "Active", + "transcriptLocation": "test", + "updatedAt": "2020-01-01T17:18:19.1234567Z" } ], "remoteSupportSessionDetails": [ { - "sessionStartTime": "2020-01-01T17:18:19.1234567Z", - "sessionEndTime": "2020-01-01T17:18:19.1234567Z", - "nodeName": "arcNode0", + "accessLevel": "Diagnostics", "duration": 120, - "accessLevel": "Diagnostics" + "nodeName": "arcNode0", + "sessionEndTime": "2020-01-01T17:18:19.1234567Z", + "sessionStartTime": "2020-01-01T17:18:19.1234567Z" } - ] + ], + "remoteSupportType": "Enable" }, "reportedProperties": { - "clusterName": "cluster1", "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", "nodes": [ { "name": "Node1", + "coreCount": 8, "id": 1, - "windowsServerSubscription": "Enabled", - "nodeType": "ThirdParty", "manufacturer": "Dell Inc.", + "memoryInGiB": 128, "model": "EMC AX740", + "nodeType": "ThirdParty", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q45CZC3", - "coreCount": 8, - "memoryInGiB": 128 + "windowsServerSubscription": "Enabled" } - ], - "lastUpdated": "2020-03-11T19:24:42.1946017Z", - "imdsAttestation": "Disabled", - "diagnosticLevel": "Basic" + ] }, - "trialDaysRemaining": 30, - "billingModel": "Trial", - "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" - } + "status": "ConnectedRecently", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" } } - } + }, + "operationId": "Clusters_ConfigureRemoteSupport", + "title": "Configure Remote Support" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ConsentAndInstallDefaultExtensions.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ConsentAndInstallDefaultExtensions.json index 4422dc87d762..729cb879a1b8 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ConsentAndInstallDefaultExtensions.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ConsentAndInstallDefaultExtensions.json @@ -1,28 +1,29 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", + "api-version": "2025-12-01-preview", "arcSettingName": "default", - "api-version": "2025-12-01-preview" + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", "type": "Microsoft.AzureStackHCI/clusters/arcSettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", "properties": { - "provisioningState": "Succeeded", - "arcInstanceResourceGroup": "ArcInstance-rg", "aggregateState": "Creating", + "arcInstanceResourceGroup": "ArcInstance-rg", + "connectivityProperties": { + "enabled": false, + "serviceConfigurations": [] + }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + } + ], "perNodeDetails": [ { "name": "Node-1", @@ -35,18 +36,19 @@ "state": "Creating" } ], - "connectivityProperties": { - "enabled": false, - "serviceConfigurations": [] - }, - "defaultExtensions": [ - { - "category": "Telemetry", - "consentTime": "2023-01-01T17:18:19.1234567Z" - } - ] + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } } - } + }, + "operationId": "ArcSettings_ConsentAndInstallDefaultExtensions", + "title": "Consent And Install Default Extensions" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateArcIdentity.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateArcIdentity.json index ef769664a6f8..0a04844bbf92 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateArcIdentity.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateArcIdentity.json @@ -1,18 +1,18 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", + "api-version": "2025-12-01-preview", "arcSettingName": "default", - "api-version": "2025-12-01-preview" + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { "properties": { "arcApplicationClientId": "7b93bf67-60ac-4909-a987-ac438e69f9ba", - "arcApplicationTenantId": "bdb2c88c-9cfd-4e19-927d-51e875f6912b", "arcApplicationObjectId": "400bd05f-395f-45a6-ba75-72601df80107", + "arcApplicationTenantId": "bdb2c88c-9cfd-4e19-927d-51e875f6912b", "arcServicePrincipalObjectId": "00cc4014-482e-4de9-9932-83415cc75f45" } } @@ -22,5 +22,7 @@ "location": "https://foo.com/operationStatuses" } } - } + }, + "operationId": "ArcSettings_CreateIdentity", + "title": "Create Arc Identity" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateCluster.json index 244b008af434..f2915ae4b315 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateCluster.json @@ -1,61 +1,63 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", "api-version": "2025-12-01-preview", "cluster": { + "identity": { + "type": "SystemAssigned" + }, "location": "East US", "properties": { - "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", - "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94" - }, - "identity": { - "type": "SystemAssigned" + "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com" } - } + }, + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "name": "myCluster", "type": "Microsoft.AzureStackHCI/clusters", - "location": "East US", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "identity": { + "type": "SystemAssigned", "principalId": "87a834db-2e45-409e-911b-e16a44562ec3", - "tenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", - "type": "SystemAssigned" - }, - "tags": {}, - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2020-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + "tenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94" }, + "location": "East US", "properties": { - "provisioningState": "Succeeded", - "status": "NotYetRegistered", - "connectivityStatus": "NotYetRegistered", - "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", - "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", - "isManagementCluster": true, + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "NotYetRegistered", "desiredProperties": { - "windowsServerSubscription": "Disabled", - "diagnosticLevel": "Basic" + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Disabled" }, + "isManagementCluster": true, + "provisioningState": "Succeeded", "reportedProperties": {}, - "trialDaysRemaining": 30, - "billingModel": "Trial", - "serviceEndpoint": "https://azurestackhci.azurefd.net/eastus" - } + "serviceEndpoint": "https://azurestackhci.azurefd.net/eastus", + "status": "NotYetRegistered", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} } } - } + }, + "operationId": "Clusters_Create", + "title": "Create cluster" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateClusterIdentity.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateClusterIdentity.json index 9ce60667b514..71a7e8ff743d 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateClusterIdentity.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateClusterIdentity.json @@ -1,18 +1,18 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { "properties": { + "aadApplicationObjectId": "00cc4014-482e-4de9-9932-83415cc75f45", "aadClientId": "7b93bf67-60ac-4909-a987-ac438e69f9ba", - "aadTenantId": "bdb2c88c-9cfd-4e19-927d-51e875f6912b", "aadServicePrincipalObjectId": "400bd05f-395f-45a6-ba75-72601df80107", - "aadApplicationObjectId": "00cc4014-482e-4de9-9932-83415cc75f45" + "aadTenantId": "bdb2c88c-9cfd-4e19-927d-51e875f6912b" } } }, @@ -21,5 +21,7 @@ "location": "https://foo.com/operationStatuses" } } - } + }, + "operationId": "Clusters_CreateIdentity", + "title": "Create cluster Identity" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateHciEdgeDevice.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateHciEdgeDevice.json index 4b541f2ddb09..a518840ef295 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateHciEdgeDevice.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/CreateHciEdgeDevice.json @@ -1,136 +1,128 @@ { "parameters": { - "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", - "edgeDeviceName": "default", "api-version": "2025-12-01-preview", + "edgeDeviceName": "default", "resource": { "kind": "HCI", "properties": { "deviceConfiguration": { + "deviceMetadata": "", "nicDetails": [ { "adapterName": "ethernet", - "interfaceDescription": "NDIS 6.70 ", "componentId": "VMBUS{f8615163-df3e-46c5-913f-f2d2f965ed0g} ", - "driverVersion": "10.0.20348.1547 ", - "ip4Address": "10.10.10.10", - "subnetMask": "255.255.255.0", "defaultGateway": "10.10.10.1", + "defaultIsolationId": "0", "dnsServers": [ "100.10.10.1" ], - "defaultIsolationId": "0" + "driverVersion": "10.0.20348.1547 ", + "interfaceDescription": "NDIS 6.70 ", + "ip4Address": "10.10.10.10", + "subnetMask": "255.255.255.0" } - ], - "deviceMetadata": "" + ] } } - } + }, + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", "name": "default", "type": "Microsoft.AzureStackHCI/edgeDevices", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", "kind": "HCI", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, "properties": { "provisioningState": "Succeeded", "reportedProperties": { "deviceState": "Connected", "networkProfile": { - "nicDetails": [ - { - "adapterName": "vmanagement", - "interfaceDescription": "Hyper-V Virtual Ethernet Adapter", - "componentId": "vms_mp", - "driverVersion": "10.0.25398.1", - "ip4Address": "192.168.200.92", - "subnetMask": "255.255.255.0", - "defaultGateway": "192.168.200.1", - "dnsServers": [ - "192.168.200.222" - ], - "defaultIsolationId": "0", - "slot": "0", - "macAddress": "000000000041", - "switchName": null, - "nicType": "Virtual", - "vlanId": "0", - "nicStatus": "Up" - } - ], - "switchDetails": [ - { - "switchName": "vmanagement", - "switchType": "External" - } - ], "hostNetwork": { + "enableStorageAutoIp": false, "intents": [ { + "adapterPropertyOverrides": { + "jumboPacket": null, + "networkDirect": "0", + "networkDirectTechnology": null + }, + "intentAdapters": [ + "ethernet", + "ethernet2" + ], "intentName": "managementcomputestorage", - "scope": 0, "intentType": 14, "isComputeIntentSet": true, - "isStorageIntentSet": true, - "isOnlyStorage": false, "isManagementIntentSet": true, - "isStretchIntentSet": false, - "isOnlyStretch": false, "isNetworkIntentType": true, - "intentAdapters": [ - "ethernet", - "ethernet2" - ], - "overrideVirtualSwitchConfiguration": true, - "virtualSwitchConfigurationOverrides": { - "enableIov": "True", - "loadBalancingAlgorithm": "HyperVPort" - }, + "isOnlyStorage": false, + "isOnlyStretch": false, + "isStorageIntentSet": true, + "isStretchIntentSet": false, + "overrideAdapterProperty": true, "overrideQosPolicy": true, + "overrideVirtualSwitchConfiguration": true, "qosPolicyOverrides": { + "bandwidthPercentage_SMB": null, "priorityValue8021Action_Cluster": null, - "priorityValue8021Action_SMB": null, - "bandwidthPercentage_SMB": null + "priorityValue8021Action_SMB": null }, - "overrideAdapterProperty": true, - "adapterPropertyOverrides": { - "jumboPacket": null, - "networkDirect": "0", - "networkDirectTechnology": null + "scope": 0, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" } } ], + "storageConnectivitySwitchless": false, "storageNetworks": [ { "name": "StorageIntent1", "networkAdapterName": "ethernet", - "storageVlanId": "8", "storageAdapterIPInfo": [ { - "physicalNode": "v-host1", "ipv4Address": "192.168.120.192", + "physicalNode": "v-host1", "subnetMask": "255.255.244.0" } - ] + ], + "storageVlanId": "8" } - ], - "storageConnectivitySwitchless": false, - "enableStorageAutoIp": false - } + ] + }, + "nicDetails": [ + { + "adapterName": "vmanagement", + "componentId": "vms_mp", + "defaultGateway": "192.168.200.1", + "defaultIsolationId": "0", + "dnsServers": [ + "192.168.200.222" + ], + "driverVersion": "10.0.25398.1", + "interfaceDescription": "Hyper-V Virtual Ethernet Adapter", + "ip4Address": "192.168.200.92", + "macAddress": "000000000041", + "nicStatus": "Up", + "nicType": "Virtual", + "slot": "0", + "subnetMask": "255.255.255.0", + "switchName": null, + "vlanId": "0" + } + ], + "switchDetails": [ + { + "switchName": "vmanagement", + "switchType": "External" + } + ] }, "osProfile": { - "bootType": "UEFI", - "assemblyVersion": "2402.1" + "assemblyVersion": "2402.1", + "bootType": "UEFI" }, "sbeDeploymentPackageInfo": { "code": "NewerThanLatestPublished", @@ -138,111 +130,111 @@ "sbeManifest": "PEFwcGxpY2Fi" } } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } }, "201": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", "name": "default", "type": "Microsoft.AzureStackHCI/edgeDevices", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", "kind": "HCI", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, "properties": { "provisioningState": "Succeeded", "reportedProperties": { "deviceState": "Connected", "networkProfile": { - "nicDetails": [ - { - "adapterName": "vmanagement", - "interfaceDescription": "Hyper-V Virtual Ethernet Adapter", - "componentId": "vms_mp", - "driverVersion": "10.0.25398.1", - "ip4Address": "192.168.200.92", - "subnetMask": "255.255.255.0", - "defaultGateway": "192.168.200.1", - "dnsServers": [ - "192.168.200.222" - ], - "defaultIsolationId": "0", - "slot": "0", - "macAddress": "000000000041", - "switchName": null, - "nicType": "Virtual", - "vlanId": "0", - "nicStatus": "Up" - } - ], - "switchDetails": [ - { - "switchName": "vmanagement", - "switchType": "External" - } - ], "hostNetwork": { + "enableStorageAutoIp": false, "intents": [ { + "adapterPropertyOverrides": { + "jumboPacket": null, + "networkDirect": "0", + "networkDirectTechnology": null + }, + "intentAdapters": [ + "ethernet", + "ethernet2" + ], "intentName": "managementcomputestorage", - "scope": 0, "intentType": 14, "isComputeIntentSet": true, - "isStorageIntentSet": true, - "isOnlyStorage": false, "isManagementIntentSet": true, - "isStretchIntentSet": false, + "isOnlyStorage": false, "isOnlyStretch": false, - "intentAdapters": [ - "ethernet", - "ethernet2" - ], - "overrideVirtualSwitchConfiguration": true, - "virtualSwitchConfigurationOverrides": { - "enableIov": "True", - "loadBalancingAlgorithm": "HyperVPort" - }, + "isStorageIntentSet": true, + "isStretchIntentSet": false, + "overrideAdapterProperty": true, "overrideQosPolicy": true, + "overrideVirtualSwitchConfiguration": true, "qosPolicyOverrides": { + "bandwidthPercentage_SMB": null, "priorityValue8021Action_Cluster": null, - "priorityValue8021Action_SMB": null, - "bandwidthPercentage_SMB": null + "priorityValue8021Action_SMB": null }, - "overrideAdapterProperty": true, - "adapterPropertyOverrides": { - "jumboPacket": null, - "networkDirect": "0", - "networkDirectTechnology": null + "scope": 0, + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" } } ], + "storageConnectivitySwitchless": false, "storageNetworks": [ { "name": "StorageIntent1", "networkAdapterName": "ethernet", - "storageVlanId": "8", "storageAdapterIPInfo": [ { - "physicalNode": "v-host1", "ipv4Address": "192.168.120.192", + "physicalNode": "v-host1", "subnetMask": "255.255.244.0" } - ] + ], + "storageVlanId": "8" } - ], - "storageConnectivitySwitchless": false, - "enableStorageAutoIp": false - } + ] + }, + "nicDetails": [ + { + "adapterName": "vmanagement", + "componentId": "vms_mp", + "defaultGateway": "192.168.200.1", + "defaultIsolationId": "0", + "dnsServers": [ + "192.168.200.222" + ], + "driverVersion": "10.0.25398.1", + "interfaceDescription": "Hyper-V Virtual Ethernet Adapter", + "ip4Address": "192.168.200.92", + "macAddress": "000000000041", + "nicStatus": "Up", + "nicType": "Virtual", + "slot": "0", + "subnetMask": "255.255.255.0", + "switchName": null, + "vlanId": "0" + } + ], + "switchDetails": [ + { + "switchName": "vmanagement", + "switchType": "External" + } + ] }, "osProfile": { - "bootType": "UEFI", - "assemblyVersion": "2402.1" + "assemblyVersion": "2402.1", + "bootType": "UEFI" }, "sbeDeploymentPackageInfo": { "code": "NewerThanLatestPublished", @@ -250,8 +242,18 @@ "sbeManifest": "PEFwcGxpY2Fi" } } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } } - } + }, + "operationId": "EdgeDevices_CreateOrUpdate", + "title": "Create HCI Edge Device" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteArcSetting.json index 8a86a25ddc43..5c0ee8241ee7 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteArcSetting.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteArcSetting.json @@ -1,10 +1,10 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", + "api-version": "2025-12-01-preview", "arcSettingName": "default", - "api-version": "2025-12-01-preview" + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": {}, @@ -14,5 +14,7 @@ } }, "204": {} - } + }, + "operationId": "ArcSettings_Delete", + "title": "Delete ArcSetting" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteCluster.json index 3765c1fda797..5b56c4ca4998 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteCluster.json @@ -1,9 +1,9 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": {}, @@ -13,5 +13,7 @@ } }, "204": {} - } + }, + "operationId": "Clusters_Delete", + "title": "Delete cluster" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteDeploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteDeploymentSettings.json index e3ae7e944b23..c125905cda62 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteDeploymentSettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteDeploymentSettings.json @@ -1,10 +1,10 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", "deploymentSettingsName": "default", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "202": { @@ -13,5 +13,7 @@ } }, "204": {} - } + }, + "operationId": "DeploymentSettings_Delete", + "title": "Delete Deployment Settings" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteEdgeDevices.json index a0a63fe3677c..0d9b8c2dfd85 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteEdgeDevices.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteEdgeDevices.json @@ -1,8 +1,8 @@ { "parameters": { - "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "api-version": "2025-12-01-preview", "edgeDeviceName": "default", - "api-version": "2025-12-01-preview" + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" }, "responses": { "202": { @@ -11,5 +11,7 @@ } }, "204": {} - } + }, + "operationId": "EdgeDevices_Delete", + "title": "Delete Edge Devices" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteExtension.json index e3b3f0ad17be..335ccb281a8a 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteExtension.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteExtension.json @@ -1,11 +1,11 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", + "api-version": "2025-12-01-preview", "arcSettingName": "default", + "clusterName": "myCluster", "extensionName": "MicrosoftMonitoringAgent", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": {}, @@ -15,5 +15,7 @@ } }, "204": {} - } + }, + "operationId": "Extensions_Delete", + "title": "Delete Arc Extension" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteSecuritySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteSecuritySettings.json index c51870e50ac7..3afb62979f41 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteSecuritySettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteSecuritySettings.json @@ -1,10 +1,10 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", + "resourceGroupName": "test-rg", "securitySettingsName": "default", - "api-version": "2025-12-01-preview" + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "202": { @@ -13,5 +13,7 @@ } }, "204": {} - } + }, + "operationId": "SecuritySettings_Delete", + "title": "Delete Security Settings" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteUpdateRuns.json index 6425490ad9d4..b2919003b297 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteUpdateRuns.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteUpdateRuns.json @@ -1,11 +1,11 @@ { "parameters": { - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "updateName": "Microsoft4.2203.2.32", - "updateRunName": "23b779ba-0d52-4a80-8571-45ca74664ec3", - "api-version": "2025-12-01-preview" + "updateRunName": "23b779ba-0d52-4a80-8571-45ca74664ec3" }, "responses": { "200": {}, @@ -15,5 +15,7 @@ } }, "204": {} - } + }, + "operationId": "UpdateRuns_Delete", + "title": "Delete an Update" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteUpdateSummaries.json index d553e17f214e..1e7888ab71f0 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteUpdateSummaries.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteUpdateSummaries.json @@ -1,9 +1,9 @@ { "parameters": { - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", "clusterName": "testcluster", - "api-version": "2025-12-01-preview" + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712" }, "responses": { "200": {}, @@ -13,5 +13,7 @@ } }, "204": {} - } + }, + "operationId": "UpdateSummaries_Delete", + "title": "Delete an Update" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteUpdates.json index ed860bb8888e..d7f112ae9ff7 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteUpdates.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/DeleteUpdates.json @@ -1,10 +1,10 @@ { "parameters": { - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", "clusterName": "testcluster", - "updateName": "Microsoft4.2203.2.32", - "api-version": "2025-12-01-preview" + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "updateName": "Microsoft4.2203.2.32" }, "responses": { "200": {}, @@ -14,5 +14,7 @@ } }, "204": {} - } + }, + "operationId": "Updates_Delete", + "title": "Delete an Update" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json index f0d4a7dbcc66..9cfba81a9b2b 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json @@ -1,64 +1,64 @@ { - "title": "EdgeDeviceJobs_CreateOrUpdate_CollectLog", "operationId": "EdgeDeviceJobs_CreateOrUpdate", "parameters": { "api-version": "2025-12-01-preview", - "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "edgeDeviceName": "default", "jobsName": "collectLog", "resource": { + "kind": "HCI", "properties": { - "jobType": "CollectLog", "fromDate": "2024-01-29T10:43:27.9471574Z", + "jobType": "CollectLog", "toDate": "2024-01-29T10:43:27.9471574Z" - }, - "kind": "HCI" - } + } + }, + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" }, + "title": "EdgeDeviceJobs_CreateOrUpdate_CollectLog", "responses": { "200": { "body": { + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/collectLog", + "kind": "HCI", "properties": { - "jobType": "CollectLog", "fromDate": "2024-01-29T10:43:27.9471574Z", + "jobType": "CollectLog", "toDate": "2024-01-29T10:43:27.9471574Z" }, - "kind": "HCI", - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/collectLog", - "name": "collectLog", - "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", "createdBy": "zsnvvvbj", "createdByType": "User", - "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", "lastModifiedBy": "qxlrx", - "lastModifiedByType": "User", - "lastModifiedAt": "2024-07-01T17:02:21.168Z" + "lastModifiedByType": "User" } } }, "201": { - "headers": { - "Azure-AsyncOperation": "https://contoso.com/operationstatus" - }, "body": { + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/collectLog", + "kind": "HCI", "properties": { - "jobType": "CollectLog", "fromDate": "2024-01-29T10:43:27.9471574Z", + "jobType": "CollectLog", "toDate": "2024-01-29T10:43:27.9471574Z" }, - "kind": "HCI", - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/collectLog", - "name": "collectLog", - "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", "createdBy": "zsnvvvbj", "createdByType": "User", - "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", "lastModifiedBy": "qxlrx", - "lastModifiedByType": "User", - "lastModifiedAt": "2024-07-01T17:02:21.168Z" + "lastModifiedByType": "User" } + }, + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" } } } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json index f84850e1d8af..3c91bdd3e1af 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json @@ -1,67 +1,67 @@ { - "title": "EdgeDeviceJobs_CreateOrUpdate_RemoteSupport", "operationId": "EdgeDeviceJobs_CreateOrUpdate", "parameters": { "api-version": "2025-12-01-preview", - "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "edgeDeviceName": "default", "jobsName": "collectLog", "resource": { + "kind": "HCI", "properties": { - "jobType": "RemoteSupport", - "accessLevel": "Diagnostics", "type": "Enable", - "expirationTimestamp": "2024-01-29T10:43:27.9471574Z" - }, - "kind": "HCI" - } + "accessLevel": "Diagnostics", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z", + "jobType": "RemoteSupport" + } + }, + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" }, + "title": "EdgeDeviceJobs_CreateOrUpdate_RemoteSupport", "responses": { "200": { "body": { + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/remoteSupport", + "kind": "HCI", "properties": { - "jobType": "RemoteSupport", - "accessLevel": "Diagnostics", "type": "Enable", - "expirationTimestamp": "2024-01-29T10:43:27.9471574Z" + "accessLevel": "Diagnostics", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z", + "jobType": "RemoteSupport" }, - "kind": "HCI", - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/remoteSupport", - "name": "collectLog", - "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", "createdBy": "zsnvvvbj", "createdByType": "User", - "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", "lastModifiedBy": "qxlrx", - "lastModifiedByType": "User", - "lastModifiedAt": "2024-07-01T17:02:21.168Z" + "lastModifiedByType": "User" } } }, "201": { - "headers": { - "Azure-AsyncOperation": "https://contoso.com/operationstatus" - }, "body": { + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/remoteSupport", + "kind": "HCI", "properties": { - "jobType": "RemoteSupport", - "accessLevel": "Diagnostics", "type": "Enable", - "expirationTimestamp": "2024-01-29T10:43:27.9471574Z" + "accessLevel": "Diagnostics", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z", + "jobType": "RemoteSupport" }, - "kind": "HCI", - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/remoteSupport", - "name": "collectLog", - "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", "createdBy": "zsnvvvbj", "createdByType": "User", - "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", "lastModifiedBy": "qxlrx", - "lastModifiedByType": "User", - "lastModifiedAt": "2024-07-01T17:02:21.168Z" + "lastModifiedByType": "User" } + }, + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" } } } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_Delete.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_Delete.json index c7e106424e45..6d836632212e 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_Delete.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_Delete.json @@ -1,12 +1,12 @@ { - "title": "EdgeDeviceJobs_Delete", "operationId": "EdgeDeviceJobs_Delete", "parameters": { "api-version": "2025-12-01-preview", - "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "edgeDeviceName": "lAq", - "jobsName": "Ihlm3R-bZ4vTC4ABA456" + "jobsName": "Ihlm3R-bZ4vTC4ABA456", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" }, + "title": "EdgeDeviceJobs_Delete", "responses": { "202": { "headers": { diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_Get_RemoteSupport.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_Get_RemoteSupport.json index 498444c6595f..917584cb4e09 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_Get_RemoteSupport.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_Get_RemoteSupport.json @@ -1,32 +1,32 @@ { - "title": "EdgeDeviceJobs_Get_RemoteSupport", "operationId": "EdgeDeviceJobs_Get", "parameters": { "api-version": "2025-12-01-preview", - "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "edgeDeviceName": "-5M1G7G10OZ-o5b-HS3-c72", - "jobsName": "-oUxs" + "jobsName": "-oUxs", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" }, + "title": "EdgeDeviceJobs_Get_RemoteSupport", "responses": { "200": { "body": { + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/RemoteSupport", + "kind": "HCI", "properties": { - "jobType": "RemoteSupport", - "accessLevel": "Diagnostics", "type": "Enable", - "expirationTimestamp": "2024-01-29T10:43:27.9471574Z" + "accessLevel": "Diagnostics", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z", + "jobType": "RemoteSupport" }, - "kind": "HCI", - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/RemoteSupport", - "name": "collectLog", - "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", "createdBy": "zsnvvvbj", "createdByType": "User", - "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", "lastModifiedBy": "qxlrx", - "lastModifiedByType": "User", - "lastModifiedAt": "2024-07-01T17:02:21.168Z" + "lastModifiedByType": "User" } } } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_ListByEdgeDevice.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_ListByEdgeDevice.json index c1f475e47c3a..ecf7d0af1d2d 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_ListByEdgeDevice.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/EdgeDeviceJobs_ListByEdgeDevice.json @@ -1,37 +1,37 @@ { - "title": "EdgeDeviceJobs_ListByEdgeDevice", "operationId": "EdgeDeviceJobs_ListByEdgeDevice", "parameters": { "api-version": "2025-12-01-preview", - "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", - "edgeDeviceName": "YE-855IEIN585-" + "edgeDeviceName": "YE-855IEIN585-", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" }, + "title": "EdgeDeviceJobs_ListByEdgeDevice", "responses": { "200": { "body": { + "nextLink": "https://microsoft.com/alqov", "value": [ { + "name": "collectLog", + "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/collectLog", + "kind": "HCI", "properties": { - "jobType": "RemoteSupport", - "accessLevel": "Diagnostics", "type": "Enable", - "expirationTimestamp": "2024-01-29T10:43:27.9471574Z" + "accessLevel": "Diagnostics", + "expirationTimestamp": "2024-01-29T10:43:27.9471574Z", + "jobType": "RemoteSupport" }, - "kind": "HCI", - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default/jobs/collectLog", - "name": "collectLog", - "type": "Microsoft.AzureStackHCI/edgeDevices/jobs", "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", "createdBy": "zsnvvvbj", "createdByType": "User", - "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", "lastModifiedBy": "qxlrx", - "lastModifiedByType": "User", - "lastModifiedAt": "2024-07-01T17:02:21.168Z" + "lastModifiedByType": "User" } } - ], - "nextLink": "https://microsoft.com/alqov" + ] } } } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ExtendSoftwareAssuranceBenefit.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ExtendSoftwareAssuranceBenefit.json index fff67805bf8a..9eaa75dc0c6d 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ExtendSoftwareAssuranceBenefit.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ExtendSoftwareAssuranceBenefit.json @@ -1,82 +1,84 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", "softwareAssuranceChangeRequest": { "properties": { "softwareAssuranceIntent": "Enable" } - } + }, + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { - "202": { - "headers": { - "location": "https://foo.com/operationStatuses" - } - }, "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "name": "myCluster", "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "location": "East US", - "tags": {}, - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2020-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" - }, "properties": { - "provisioningState": "Succeeded", - "status": "ConnectedRecently", - "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", - "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "desiredProperties": { - "windowsServerSubscription": "Enabled", - "diagnosticLevel": "Basic" - }, - "softwareAssuranceProperties": { - "softwareAssuranceStatus": "Enabled", - "lastUpdated": "2022-08-18T22:01:12.4191603Z", - "softwareAssuranceIntent": "Enable" + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", "reportedProperties": { - "clusterName": "cluster1", "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", "nodes": [ { "name": "Node1", + "coreCount": 8, "id": 1, - "windowsServerSubscription": "Enabled", - "nodeType": "ThirdParty", "manufacturer": "Dell Inc.", + "memoryInGiB": 128, "model": "EMC AX740", + "nodeType": "ThirdParty", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q45CZC3", - "coreCount": 8, - "memoryInGiB": 128 + "windowsServerSubscription": "Enabled" } - ], - "lastUpdated": "2020-03-11T19:24:42.1946017Z", - "imdsAttestation": "Disabled", - "diagnosticLevel": "Basic" + ] }, - "trialDaysRemaining": 30, - "billingModel": "Trial", - "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" - } + "softwareAssuranceProperties": { + "lastUpdated": "2022-08-18T22:01:12.4191603Z", + "softwareAssuranceIntent": "Enable", + "softwareAssuranceStatus": "Enabled" + }, + "status": "ConnectedRecently", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" } } - } + }, + "operationId": "Clusters_ExtendSoftwareAssuranceBenefit", + "title": "Create cluster Identity" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/Extensions_Upgrade.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/Extensions_Upgrade.json index 4de1d9a3c6ed..62649be58256 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/Extensions_Upgrade.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/Extensions_Upgrade.json @@ -1,22 +1,24 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", + "api-version": "2025-12-01-preview", "arcSettingName": "default", + "clusterName": "myCluster", "extensionName": "MicrosoftMonitoringAgent", - "api-version": "2025-12-01-preview", "extensionUpgradeParameters": { "targetVersion": "1.0.18062.0" - } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "202": { "headers": { - "location": "https://foo.com/operationStatuses", + "Azure-AsyncOperation": "https://foo.com/operationStatuses", "Retry-After": 200, - "Azure-AsyncOperation": "https://foo.com/operationStatuses" + "location": "https://foo.com/operationStatuses" } } - } + }, + "operationId": "Extensions_Upgrade", + "title": "Upgrade Machine Extensions" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GeneratePassword.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GeneratePassword.json index 458939682a56..b8a3b385772a 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GeneratePassword.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GeneratePassword.json @@ -1,19 +1,21 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", + "api-version": "2025-12-01-preview", "arcSettingName": "default", - "api-version": "2025-12-01-preview" + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "secretText": "secretText", - "startDateTime": "2022-02-17T16:24:23.6264005+05:30", "endDateTime": "2121-02-17T16:24:23.6264377+05:30", - "keyId": "00000000-2d47-4fb2-8ed2-fed71a5c197b" + "keyId": "00000000-2d47-4fb2-8ed2-fed71a5c197b", + "secretText": "secretText", + "startDateTime": "2022-02-17T16:24:23.6264005+05:30" } } - } + }, + "operationId": "ArcSettings_GeneratePassword", + "title": "Generate Password" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetArcSetting.json index 4d4af015e165..70a01442ac43 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetArcSetting.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetArcSetting.json @@ -1,46 +1,25 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", + "api-version": "2025-12-01-preview", "arcSettingName": "default", - "api-version": "2025-12-01-preview" + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", "type": "Microsoft.AzureStackHCI/clusters/arcSettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", "properties": { - "provisioningState": "Succeeded", - "arcInstanceResourceGroup": "ArcInstance-rg", "aggregateState": "PartiallyConnected", - "perNodeDetails": [ - { - "name": "Node-1", - "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", - "state": "Connected" - }, - { - "name": "Node-2", - "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", - "state": "Disconnected" - } - ], + "arcInstanceResourceGroup": "ArcInstance-rg", "connectivityProperties": { "enabled": false, "serviceConfigurations": [ { - "serviceName": "WAC", - "port": 6516 + "port": 6516, + "serviceName": "WAC" } ] }, @@ -53,9 +32,32 @@ "category": "Supportability", "consentTime": null } - ] + ], + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "state": "Connected" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "state": "Disconnected" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } } - } + }, + "operationId": "ArcSettings_Get", + "title": "Get ArcSetting" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetCluster.json index 27d4de5d78d1..c9ac25a8513e 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetCluster.json @@ -1,125 +1,127 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "name": "myCluster", "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "location": "East US", - "tags": {}, - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2020-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" - }, "properties": { - "provisioningState": "Succeeded", - "status": "ConnectedRecently", - "connectivityStatus": "Connected", - "supportStatus": "OutOfSupport", - "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", - "ring": "Insider", - "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "Connected", "desiredProperties": { - "windowsServerSubscription": "Enabled", - "diagnosticLevel": "Basic" + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" }, + "identityProvider": "ActiveDirectory", "isolatedVmAttestationConfiguration": { "attestationResourceId": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.Attestation/attestationProviders/testmaa", - "relyingPartyServiceEndpoint": "https://azurestackhci.azurefd.net/eastus", - "attestationServiceEndpoint": "https://dantestnoauth01.eus.attest.azure.net" + "attestationServiceEndpoint": "https://dantestnoauth01.eus.attest.azure.net", + "relyingPartyServiceEndpoint": "https://azurestackhci.azurefd.net/eastus" }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", "logCollectionProperties": { "fromDate": "2020-01-01T17:18:19.1234567Z", - "toDate": "2021-01-01T17:18:19.1234567Z", "lastLogGenerated": "2020-01-01T17:18:19.1234567Z", "logCollectionSessionDetails": [ { - "logStartTime": "2020-01-01T17:18:19.1234567Z", + "correlationId": "a76ab33a-1819-4e82-1212-e3e4ec3d1425", + "endTimeCollected": "2020-01-01T17:25:19.1234567Z", + "logCollectionStatus": "Succeeded", "logEndTime": "2020-01-01T17:18:19.1234567Z", - "timeCollected": "2020-01-01T17:18:19.1234567Z", "logSize": 1000, - "logCollectionStatus": "Succeeded", - "correlationId": "a76ab33a-1819-4e82-1212-e3e4ec3d1425", - "endTimeCollected": "2020-01-01T17:25:19.1234567Z" + "logStartTime": "2020-01-01T17:18:19.1234567Z", + "timeCollected": "2020-01-01T17:18:19.1234567Z" } - ] + ], + "toDate": "2021-01-01T17:18:19.1234567Z" }, - "identityProvider": "ActiveDirectory", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", "reportedProperties": { - "clusterName": "cluster1", "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", - "clusterVersion": "10.0.17777", + "clusterName": "cluster1", "clusterType": "ThirdParty", + "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "hardwareClass": "Medium", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", "manufacturer": "Dell Inc.", - "oemActivation": "Disabled", "nodes": [ { "name": "Node1", + "coreCount": 8, "id": 1, - "windowsServerSubscription": "Enabled", + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", "manufacturer": "Dell Inc.", + "memoryInGiB": 128, "model": "EMC AX740", + "oemActivation": "Disabled", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q45CZC3", - "coreCount": 8, - "memoryInGiB": 128, - "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", - "oemActivation": "Disabled" + "windowsServerSubscription": "Enabled" }, { "name": "Node2", + "coreCount": 8, "id": 2, - "windowsServerSubscription": "Enabled", + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", "manufacturer": "Dell Inc.", + "memoryInGiB": 128, "model": "EMC AX740", + "oemActivation": "Disabled", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q44BSC3", - "coreCount": 8, - "memoryInGiB": 128, - "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", - "oemActivation": "Disabled" + "windowsServerSubscription": "Enabled" }, { "name": "Node3", + "coreCount": 16, "id": 3, - "windowsServerSubscription": "Enabled", + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", "manufacturer": "Dell Inc.", + "memoryInGiB": 256, "model": "EMC AX740", + "oemActivation": "Disabled", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q44RFC3", - "coreCount": 16, - "memoryInGiB": 256, - "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", - "oemActivation": "Disabled" + "windowsServerSubscription": "Enabled" } ], - "lastUpdated": "2020-03-11T19:24:42.1946017Z", - "imdsAttestation": "Disabled", - "diagnosticLevel": "Basic", - "hardwareClass": "Medium" + "oemActivation": "Disabled" }, - "trialDaysRemaining": 30, - "billingModel": "Trial", - "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" - } + "ring": "Insider", + "status": "ConnectedRecently", + "supportStatus": "OutOfSupport", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} } } - } + }, + "operationId": "Clusters_Get", + "title": "Get cluster" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetDeploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetDeploymentSettings.json index 6a33e7010a61..57fc10661558 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetDeploymentSettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetDeploymentSettings.json @@ -1,141 +1,118 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", "deploymentSettingsName": "default", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", "name": "default", "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", "properties": { - "provisioningState": "Succeeded", - "operationType": "ClusterProvisioning", - "deploymentMode": "Deploy", "arcNodeResourceIds": [ "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" ], "deploymentConfiguration": { - "version": "string", "scaleUnits": [ { "deploymentData": { - "securitySettings": { - "hvciProtection": true, - "drtmProtection": true, - "driftControlEnforced": true, - "credentialGuardEnforced": false, - "smbSigningEnforced": true, - "smbClusterEncryption": false, - "sideChannelMitigationEnforced": true, - "bitlockerBootVolume": true, - "bitlockerDataVolumes": true, - "wdacEnforced": true - }, - "observability": { - "streamingDataClient": true, - "euLocation": false, - "episodicDataUpload": true - }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", "cluster": { "name": "testHCICluster", - "witnessType": "Cloud", - "witnessPath": "Cloud", - "cloudAccountName": "myasestoragacct", "azureServiceEndpoint": "core.windows.net", - "hardwareClass": "Medium" - }, - "storage": { - "configurationMode": "Express" + "cloudAccountName": "myasestoragacct", + "hardwareClass": "Medium", + "witnessPath": "Cloud", + "witnessType": "Cloud" }, - "namingPrefix": "ms169", "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", - "infrastructureNetwork": [ - { - "subnetMask": "255.255.248.0", - "gateway": "255.255.248.0", - "ipPools": [ - { - "startingAddress": "10.57.48.60", - "endingAddress": "10.57.48.66" - } - ], - "dnsServerConfig": "UseDnsServer", - "dnsServers": [ - "10.57.50.90" - ] - } - ], - "physicalNodes": [ - { - "name": "ms169host", - "ipv4Address": "10.57.51.224" - }, - { - "name": "ms154host", - "ipv4Address": "10.57.53.236" - } - ], "hostNetwork": { + "enableStorageAutoIp": false, "intents": [ { "name": "Compute_Management", - "trafficType": [ - "Compute", - "Management" - ], "adapter": [ "Port2" ], - "overrideVirtualSwitchConfiguration": false, - "virtualSwitchConfigurationOverrides": { - "enableIov": "True", - "loadBalancingAlgorithm": "HyperVPort" + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" }, + "overrideAdapterProperty": false, "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", "priorityValue8021Action_Cluster": "7", - "priorityValue8021Action_SMB": "3", - "bandwidthPercentage_SMB": "50" + "priorityValue8021Action_SMB": "3" }, - "overrideAdapterProperty": false, - "adapterPropertyOverrides": { - "jumboPacket": "1514", - "networkDirect": "Enabled", - "networkDirectTechnology": "iWARP" + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" } } ], + "storageConnectivitySwitchless": true, "storageNetworks": [ { "name": "Storage1Network", "networkAdapterName": "Port3", - "vlanId": "5", "storageAdapterIPInfo": [ { - "physicalNode": "string", "ipv4Address": "10.57.48.60", + "physicalNode": "string", "subnetMask": "255.255.248.0" } - ] + ], + "vlanId": "5" } - ], - "storageConnectivitySwitchless": true, - "enableStorageAutoIp": false + ] + }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], "sdnIntegration": { "networkController": { "macAddressPoolStart": "00-0D-3A-1B-C7-21", @@ -143,32 +120,43 @@ "networkVirtualizationEnabled": true } }, - "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", - "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", "secrets": [ { - "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "BMCAdminUserCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" }, { - "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "AzureStackLCMUserCredential", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" } ], - "optionalServices": { - "customLocation": "customLocationName" + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" } }, "sbePartnerInfo": { - "sbeDeploymentInfo": { - "version": "4.0.2309.13", - "family": "Gen5", - "publisher": "Contoso", - "sbeManifestSource": "default", - "sbeManifestCreationDate": "2023-07-25T02:40:33Z" - }, + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], "partnerProperties": [ { "name": "EnableBMCIpV6", @@ -183,89 +171,103 @@ "value": "HighSecurity" } ], - "credentialList": [ - { - "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", - "eceSecretName": "DownloadConnectorCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" - } - ] + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } } } - ] + ], + "version": "string" }, + "deploymentMode": "Deploy", + "operationType": "ClusterProvisioning", + "provisioningState": "Succeeded", "reportedProperties": { - "validationStatus": { + "deploymentStatus": { "status": "Error", "steps": [ { - "fullStepIndex": "0", "name": "Cloud Deployment", "description": "Deploy Cloud.", - "startTimeUtc": "2023-06-09T00:08:19", "endTimeUtc": "2023-06-09T04:01:47", + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", "status": "Error", "steps": [ { - "fullStepIndex": "0.1", "name": "Before Cloud Deployment", "description": "Before Cloud Deployment", - "startTimeUtc": "2023-06-09T00:08:23", - "endTimeUtc": "2023-06-09T01:10:10" + "endTimeUtc": "2023-06-09T01:10:10", + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23" }, { - "fullStepIndex": "0.36", "name": "Clean up temporary content", "description": "Clean up temporary content", - "startTimeUtc": "2023-06-09T03:58:37", "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" - ] + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error" } ] } ] }, - "deploymentStatus": { + "validationStatus": { "status": "Error", "steps": [ { - "fullStepIndex": "0", "name": "Cloud Deployment", "description": "Deploy Cloud.", - "startTimeUtc": "2023-06-09T00:08:19", "endTimeUtc": "2023-06-09T04:01:47", + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", "status": "Error", "steps": [ { - "fullStepIndex": "0.1", "name": "Before Cloud Deployment", "description": "Before Cloud Deployment", - "startTimeUtc": "2023-06-09T00:08:23", - "endTimeUtc": "2023-06-09T01:10:10" + "endTimeUtc": "2023-06-09T01:10:10", + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23" }, { - "fullStepIndex": "0.36", "name": "Clean up temporary content", "description": "Clean up temporary content", - "startTimeUtc": "2023-06-09T03:58:37", "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" - ] + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error" } ] } ] } } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } } - } + }, + "operationId": "DeploymentSettings_Get", + "title": "Get Deployment Settings" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetEdgeDevices.json index 4c645c5938cf..2724555feceb 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetEdgeDevices.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetEdgeDevices.json @@ -1,46 +1,48 @@ { "parameters": { - "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "api-version": "2025-12-01-preview", "edgeDeviceName": "default", - "api-version": "2025-12-01-preview" + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", "name": "default", "type": "Microsoft.AzureStackHCI/edgeDevices", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/providers/Microsoft.AzureStackHCI/edgeDevices/default", "kind": "HCI", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, "properties": { "deviceConfiguration": { + "deviceMetadata": "", "nicDetails": [ { "adapterName": "ethernet", - "interfaceDescription": "NDIS 6.70 ", "componentId": "VMBUS{f8615163-df3e-46c5-913f-f2d2f965ed0g} ", - "driverVersion": "10.0.20348.1547 ", - "ip4Address": "10.10.10.10", - "subnetMask": "255.255.255.0", "defaultGateway": "10.10.10.1", + "defaultIsolationId": "0", "dnsServers": [ "100.10.10.1" ], - "defaultIsolationId": "0" + "driverVersion": "10.0.20348.1547 ", + "interfaceDescription": "NDIS 6.70 ", + "ip4Address": "10.10.10.10", + "subnetMask": "255.255.255.0" } - ], - "deviceMetadata": "" + ] }, "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } } - } + }, + "operationId": "EdgeDevices_Get", + "title": "Get Edge Device" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetExtension.json index bcad28ac8933..05870999dff6 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetExtension.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetExtension.json @@ -1,80 +1,82 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", + "api-version": "2025-12-01-preview", "arcSettingName": "default", + "clusterName": "myCluster", "extensionName": "MicrosoftMonitoringAgent", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", "name": "MicrosoftMonitoringAgent", "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", "properties": { - "provisioningState": "Succeeded", + "aggregateState": "PartiallySucceeded", "extensionParameters": { - "publisher": "Microsoft.Compute", "type": "string", - "typeHandlerVersion": "1.10.3", "autoUpgradeMinorVersion": false, "enableAutomaticUpgrade": true, + "publisher": "Microsoft.Compute", "settings": { "workspaceId": "xx" - } + }, + "typeHandlerVersion": "1.10.3" }, - "aggregateState": "PartiallySucceeded", + "managedBy": "Azure", "perNodeExtensionDetails": [ { "name": "Node-1", "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", - "state": "Succeeded", - "typeHandlerVersion": "1.10.0", "instanceView": { "name": "MicrosoftMonitoringAgent", "type": "MicrosoftMonitoringAgent", - "typeHandlerVersion": "1.10.0", "status": { "code": "success", - "level": "Information", "displayStatus": "Provisioning succeeded", + "level": "Information", "message": "Finished executing command, StdOut: , StdErr:", "time": "2019-08-08T20:42:10.999Z" - } - } + }, + "typeHandlerVersion": "1.10.0" + }, + "state": "Succeeded", + "typeHandlerVersion": "1.10.0" }, { "name": "Node-2", "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", - "state": "Failed", - "typeHandlerVersion": "1.10.3", "instanceView": { "name": "MicrosoftMonitoringAgent", "type": "MicrosoftMonitoringAgent", - "typeHandlerVersion": "1.10.3", "status": { "code": "error", - "level": "Error", "displayStatus": "Provisioning failed", + "level": "Error", "message": "Finished executing command, StdOut: , StdErr:", "time": "2019-08-08T20:42:10.999Z" - } - } + }, + "typeHandlerVersion": "1.10.3" + }, + "state": "Failed", + "typeHandlerVersion": "1.10.3" } ], - "managedBy": "Azure" + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } } - } + }, + "operationId": "Extensions_Get", + "title": "Get ArcSettings Extension" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetOffer.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetOffer.json index 7c809999849a..6ef7654caa0f 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetOffer.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetOffer.json @@ -1,23 +1,23 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", - "publisherName": "publisher1", "offerName": "offer1", - "api-version": "2025-12-01-preview" + "publisherName": "publisher1", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1", - "type": "Microsoft.AzureStackHCI/clusters/publishers/offers", "name": "offer1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1", "properties": { "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", "contentVersion": "2018-01-01", - "publisherId": "publisher1", "provisioningState": "Succeeded", + "publisherId": "publisher1", "skuMappings": [ { "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", @@ -30,5 +30,7 @@ } } } - } + }, + "operationId": "Offers_Get", + "title": "Get Offer" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetPublisher.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetPublisher.json index 82241266c553..847c421cc828 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetPublisher.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetPublisher.json @@ -1,18 +1,20 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", "publisherName": "publisher1", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1", + "name": "publisher1", "type": "Microsoft.AzureStackHCI/clusters/publishers", - "name": "publisher1" + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1" } } - } + }, + "operationId": "Publishers_Get", + "title": "Get Publisher" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetSecuritySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetSecuritySettings.json index 482acaff1984..17479d4a0f29 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetSecuritySettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetSecuritySettings.json @@ -1,38 +1,40 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", + "resourceGroupName": "test-rg", "securitySettingsName": "default", - "api-version": "2025-12-01-preview" + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", "type": "Microsoft.AzureStackHCI/clusters/securitySettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", "properties": { + "provisioningState": "Succeeded", "securedCoreComplianceAssignment": "Audit", - "wdacComplianceAssignment": "ApplyAndAutoCorrect", - "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", "securityComplianceStatus": { - "securedCoreCompliance": "Compliant", - "wdacCompliance": "Compliant", "dataAtRestEncrypted": "Compliant", "dataInTransitProtected": "Compliant", - "lastUpdated": "2023-11-14T07:09:44.771Z" + "lastUpdated": "2023-11-14T07:09:44.771Z", + "securedCoreCompliance": "Compliant", + "wdacCompliance": "Compliant" }, - "provisioningState": "Succeeded" + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } } - } + }, + "operationId": "SecuritySettings_Get", + "title": "Get Security Settings" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetSku.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetSku.json index a714189c27d8..0624aa925483 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetSku.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetSku.json @@ -1,25 +1,25 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", - "publisherName": "publisher1", "offerName": "offer1", + "publisherName": "publisher1", + "resourceGroupName": "test-rg", "skuName": "sku1", - "api-version": "2025-12-01-preview" + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1/skus/sku1", - "type": "Microsoft.AzureStackHCI/clusters/publishers/offers/skus", "name": "sku1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers/skus", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1/skus/sku1", "properties": { - "publisherId": "publisher1", - "offerId": "offer1", "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", "contentVersion": "2018-01-01", + "offerId": "offer1", "provisioningState": "Succeeded", + "publisherId": "publisher1", "skuMappings": [ { "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", @@ -32,5 +32,7 @@ } } } - } + }, + "operationId": "Skus_Get", + "title": "Get Sku" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetUpdateRuns.json index bffeeaef1593..950eb9fa01ad 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetUpdateRuns.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetUpdateRuns.json @@ -1,37 +1,37 @@ { "parameters": { - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "updateName": "Microsoft4.2203.2.32", - "updateRunName": "23b779ba-0d52-4a80-8571-45ca74664ec3", - "api-version": "2025-12-01-preview" + "updateRunName": "23b779ba-0d52-4a80-8571-45ca74664ec3" }, "responses": { "200": { "body": { - "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32/updateRuns/23b779ba-0d52-4a80-8571-45ca74664ec3", "name": "Microsoft4.2203.2.32/23b779ba-0d52-4a80-8571-45ca74664ec3", "type": "Microsoft.AzureStackHCI/updates/updateRuns", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32/updateRuns/23b779ba-0d52-4a80-8571-45ca74664ec3", "location": "West US", "properties": { "progress": { "name": "Unnamed step", "description": "Update Azure Stack.", - "errorMessage": "", - "status": "Success", - "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", "endTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "errorMessage": "", "lastUpdatedTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", "steps": [ { "name": "PreUpdate Cloud", "description": "Prepare for SSU update", - "errorMessage": "", - "status": "Success", - "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", "endTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "errorMessage": "", "lastUpdatedTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", "steps": [] } ] @@ -39,5 +39,7 @@ } } } - } + }, + "operationId": "UpdateRuns_Get", + "title": "Get Update runs under cluster resource" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetUpdateSummaries.json index 95a36b9826df..bf8c60731e99 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetUpdateSummaries.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetUpdateSummaries.json @@ -1,41 +1,43 @@ { "parameters": { - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", "clusterName": "testcluster", - "api-version": "2025-12-01-preview" + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712" }, "responses": { "200": { "body": { - "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updateSummaries/default", "name": "default", "type": "Microsoft.AzureStackHCI/updateSummaries", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updateSummaries/default", "location": "West US", "properties": { - "oemFamily": "DellEMC", + "currentVersion": "4.2203.2.32", "hardwareModel": "PowerEdge R730xd", + "oemFamily": "DellEMC", "packageVersions": [ { + "lastUpdated": "2022-04-07T18:04:07Z", "packageType": "OEM", - "version": "2.2.2108.6", - "lastUpdated": "2022-04-07T18:04:07Z" + "version": "2.2.2108.6" }, { + "lastUpdated": "2022-04-07T18:04:07Z", "packageType": "Services", - "version": "4.2203.2.32", - "lastUpdated": "2022-04-07T18:04:07Z" + "version": "4.2203.2.32" }, { + "lastUpdated": "2022-04-07T18:04:07Z", "packageType": "Infrastructure", - "version": "4.2203.2.32", - "lastUpdated": "2022-04-07T18:04:07Z" + "version": "4.2203.2.32" } ], - "currentVersion": "4.2203.2.32", "state": "AppliedSuccessfully" } } } - } + }, + "operationId": "UpdateSummaries_Get", + "title": "Get Update summaries under cluster resource" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetUpdates.json index 98dcbce77b0e..4e5227c880e7 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetUpdates.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/GetUpdates.json @@ -1,44 +1,46 @@ { "parameters": { - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", "clusterName": "testcluster", - "updateName": "Microsoft4.2203.2.32", - "api-version": "2025-12-01-preview" + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "updateName": "Microsoft4.2203.2.32" }, "responses": { "200": { "body": { - "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32", "name": "Microsoft4.2203.2.32", "type": "Microsoft.AzureStackHCI/updates", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32", "location": "West US", "properties": { - "installedDate": "2022-04-06T14:08:18.254Z", "description": "AzS Update 4.2203.2.32", - "state": "Installed", + "additionalProperties": "additional properties", + "availabilityType": "Local", + "displayName": "AzS Update - 4.2203.2.32", + "installedDate": "2022-04-06T14:08:18.254Z", + "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", + "packageSizeInMb": 18858, + "packageType": "Infrastructure", "prerequisites": [ { + "packageName": "update package name", "updateType": "update type", - "version": "prerequisite version", - "packageName": "update package name" + "version": "prerequisite version" } ], - "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", - "packageSizeInMb": 18858, - "displayName": "AzS Update - 4.2203.2.32", - "version": "4.2203.2.32", "publisher": "Microsoft", "releaseLink": "https://docs.microsoft.com/azure-stack/operator/release-notes?view=azs-2203", - "availabilityType": "Local", - "packageType": "Infrastructure", + "state": "Installed", "updateStateProperties": { "notifyMessage": "Brief message with instructions for updates of AvailabilityType Notify", "progressPercentage": 0 }, - "additionalProperties": "additional properties" + "version": "4.2203.2.32" } } } - } + }, + "operationId": "Updates_Get", + "title": "Get a specific update" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/InitializeDisableProcess.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/InitializeDisableProcess.json index 9e30fe79a048..d619f1d97d89 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/InitializeDisableProcess.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/InitializeDisableProcess.json @@ -1,19 +1,21 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", + "api-version": "2025-12-01-preview", "arcSettingName": "default", - "api-version": "2025-12-01-preview" + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": {}, "202": { "headers": { - "location": "https://foo.com/operationStatuses", + "Azure-AsyncOperation": "https://foo.com/operationStatuses", "Retry-After": 200, - "Azure-AsyncOperation": "https://foo.com/operationStatuses" + "location": "https://foo.com/operationStatuses" } } - } + }, + "operationId": "ArcSettings_InitializeDisableProcess", + "title": "Trigger ARC Disable" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListArcSettingsByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListArcSettingsByCluster.json index 17ea4c283953..7651b359b535 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListArcSettingsByCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListArcSettingsByCluster.json @@ -1,47 +1,26 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", "type": "Microsoft.AzureStackHCI/clusters/arcSettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", "properties": { - "provisioningState": "Succeeded", - "arcInstanceResourceGroup": "ArcInstance-rg", "aggregateState": "PartiallyConnected", - "perNodeDetails": [ - { - "name": "Node-1", - "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", - "state": "Connected" - }, - { - "name": "Node-2", - "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", - "state": "Disconnected" - } - ], + "arcInstanceResourceGroup": "ArcInstance-rg", "connectivityProperties": { "enabled": false, "serviceConfigurations": [ { - "serviceName": "WAC", - "port": 6516 + "port": 6516, + "serviceName": "WAC" } ] }, @@ -54,11 +33,34 @@ "category": "Supportability", "consentTime": null } - ] + ], + "perNodeDetails": [ + { + "name": "Node-1", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", + "state": "Connected" + }, + { + "name": "Node-2", + "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", + "state": "Disconnected" + } + ], + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } ] } } - } + }, + "operationId": "ArcSettings_ListByCluster", + "title": "List ArcSetting resources by HCI Cluster" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListClustersByResourceGroup.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListClustersByResourceGroup.json index 5dea09a6173a..2085159db461 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListClustersByResourceGroup.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListClustersByResourceGroup.json @@ -1,137 +1,139 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", + "api-version": "2025-12-01-preview", "resourceGroupName": "test-rg", - "api-version": "2025-12-01-preview" + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster1", "name": "myCluster1", "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster1", "location": "East US", - "tags": {}, - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2020-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" - }, "properties": { - "provisioningState": "Succeeded", - "status": "NotYetRegistered", - "connectivityStatus": "NotYetRegistered", - "supportStatus": "InSupport", - "ring": "Production", - "cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd", - "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "aadClientId": "515da1c2-379e-49b4-9975-09e3e40c86be", "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", - "identityProvider": "ActiveDirectory", + "billingModel": "Trial", + "cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "NotYetRegistered", "desiredProperties": { - "windowsServerSubscription": "Enabled", - "diagnosticLevel": "Basic" + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" }, + "identityProvider": "ActiveDirectory", + "provisioningState": "Succeeded", "reportedProperties": {}, - "trialDaysRemaining": 29, - "billingModel": "Trial" - } - }, - { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster2", - "name": "myCluster2", - "type": "Microsoft.AzureStackHCI/clusters", - "location": "East US", - "tags": {}, + "ring": "Production", + "status": "NotYetRegistered", + "supportStatus": "InSupport", + "trialDaysRemaining": 29 + }, "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", "createdBy": "user1", "createdByType": "User", - "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + "lastModifiedByType": "User" }, + "tags": {} + }, + { + "name": "myCluster2", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster2", + "location": "East US", "properties": { - "provisioningState": "Succeeded", - "status": "ConnectedRecently", - "connectivityStatus": "PartiallyConnected", - "supportStatus": "InSupport", - "ring": "Production", - "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", - "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", - "identityProvider": "ActiveDirectory", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "PartiallyConnected", "desiredProperties": { - "windowsServerSubscription": "Enabled", - "diagnosticLevel": "Basic" + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" }, + "identityProvider": "ActiveDirectory", + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", "reportedProperties": { - "clusterName": "cluster1", "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", - "clusterVersion": "10.0.17777", + "clusterName": "cluster1", "clusterType": "ThirdParty", + "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", "manufacturer": "Dell Inc.", - "oemActivation": "Disabled", "nodes": [ { "name": "Node1", + "coreCount": 8, "id": 0, - "windowsServerSubscription": "Enabled", "manufacturer": "Dell Inc.", + "memoryInGiB": 128, "model": "EMC AX740", + "oemActivation": "Enabled", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q45CZC3", - "coreCount": 8, - "memoryInGiB": 128, - "oemActivation": "Enabled" + "windowsServerSubscription": "Enabled" }, { "name": "Node2", + "coreCount": 8, "id": 1, - "windowsServerSubscription": "Enabled", "manufacturer": "Dell Inc.", + "memoryInGiB": 128, "model": "EMC AX740", + "oemActivation": "Enabled", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q44BSC3", - "coreCount": 8, - "memoryInGiB": 128, - "oemActivation": "Enabled" + "windowsServerSubscription": "Enabled" }, { "name": "Node3", + "coreCount": 16, "id": 2, - "windowsServerSubscription": "Enabled", "manufacturer": "Dell Inc.", + "memoryInGiB": 256, "model": "EMC AX740", + "oemActivation": "Disabled", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q44RFC3", - "coreCount": 16, - "memoryInGiB": 256, - "oemActivation": "Disabled" + "windowsServerSubscription": "Enabled" } ], - "lastUpdated": "2020-03-11T19:24:42.1946017Z", - "imdsAttestation": "Disabled", - "diagnosticLevel": "Basic" + "oemActivation": "Disabled" }, - "trialDaysRemaining": 30, - "billingModel": "Trial", - "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" - } + "ring": "Production", + "status": "ConnectedRecently", + "supportStatus": "InSupport", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} } ] } } - } + }, + "operationId": "Clusters_ListByResourceGroup", + "title": "List clusters in a given resource group" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListClustersBySubscription.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListClustersBySubscription.json index 54d99cc8a06c..c72763390293 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListClustersBySubscription.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListClustersBySubscription.json @@ -1,136 +1,138 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "api-version": "2025-12-01-preview" + "api-version": "2025-12-01-preview", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg1/providers/Microsoft.AzureStackHCI/clusters/myCluster1", "name": "myCluster1", "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg1/providers/Microsoft.AzureStackHCI/clusters/myCluster1", "location": "East US", - "tags": {}, - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2020-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" - }, "properties": { - "provisioningState": "Succeeded", - "status": "NotYetRegistered", - "connectivityStatus": "NotYetRegistered", - "supportStatus": "InSupport", - "ring": "Production", - "cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd", - "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "aadClientId": "515da1c2-379e-49b4-9975-09e3e40c86be", "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", - "identityProvider": "ActiveDirectory", + "billingModel": "Trial", + "cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "NotYetRegistered", "desiredProperties": { - "windowsServerSubscription": "Enabled", - "diagnosticLevel": "Basic" + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" }, + "identityProvider": "ActiveDirectory", + "provisioningState": "Succeeded", "reportedProperties": {}, - "trialDaysRemaining": 29, - "billingModel": "Trial" - } - }, - { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg2/providers/Microsoft.AzureStackHCI/clusters/myCluster2", - "name": "myCluster2", - "type": "Microsoft.AzureStackHCI/clusters", - "location": "West US", - "tags": {}, + "ring": "Production", + "status": "NotYetRegistered", + "supportStatus": "InSupport", + "trialDaysRemaining": 29 + }, "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", "createdBy": "user1", "createdByType": "User", - "createdAt": "2020-01-01T17:18:19.1234567Z", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + "lastModifiedByType": "User" }, + "tags": {} + }, + { + "name": "myCluster2", + "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg2/providers/Microsoft.AzureStackHCI/clusters/myCluster2", + "location": "West US", "properties": { - "provisioningState": "Succeeded", - "status": "ConnectedRecently", - "connectivityStatus": "Connected", - "supportStatus": "InSupport", - "ring": "Production", - "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", - "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", - "identityProvider": "ActiveDirectory", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "Connected", "desiredProperties": { - "windowsServerSubscription": "Enabled", - "diagnosticLevel": "Basic" + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" }, + "identityProvider": "ActiveDirectory", + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", "reportedProperties": { - "clusterName": "cluster1", "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", - "clusterVersion": "10.0.17777", + "clusterName": "cluster1", "clusterType": "ThirdParty", + "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", "manufacturer": "Dell Inc.", - "oemActivation": "Enabled", "nodes": [ { "name": "Node1", + "coreCount": 8, "id": 0, - "windowsServerSubscription": "Enabled", "manufacturer": "Dell Inc.", + "memoryInGiB": 128, "model": "EMC AX740", + "oemActivation": "Enabled", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q45CZC3", - "coreCount": 8, - "memoryInGiB": 128, - "oemActivation": "Enabled" + "windowsServerSubscription": "Enabled" }, { "name": "Node2", + "coreCount": 8, "id": 1, - "windowsServerSubscription": "Enabled", "manufacturer": "Dell Inc.", + "memoryInGiB": 128, "model": "EMC AX740", + "oemActivation": "Enabled", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q44BSC3", - "coreCount": 8, - "memoryInGiB": 128, - "oemActivation": "Enabled" + "windowsServerSubscription": "Enabled" }, { "name": "Node3", + "coreCount": 16, "id": 2, - "windowsServerSubscription": "Enabled", "manufacturer": "Dell Inc.", + "memoryInGiB": 256, "model": "EMC AX740", + "oemActivation": "Enabled", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q44RFC3", - "coreCount": 16, - "memoryInGiB": 256, - "oemActivation": "Enabled" + "windowsServerSubscription": "Enabled" } ], - "lastUpdated": "2020-03-11T19:24:42.1946017Z", - "imdsAttestation": "Disabled", - "diagnosticLevel": "Basic" + "oemActivation": "Enabled" }, - "trialDaysRemaining": 30, - "billingModel": "Trial", - "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" - } + "ring": "Production", + "status": "ConnectedRecently", + "supportStatus": "InSupport", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} } ] } } - } + }, + "operationId": "Clusters_ListBySubscription", + "title": "List clusters in a given subscription" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListDeploymentSettingsByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListDeploymentSettingsByCluster.json index 349dc2b110ac..f2a5763c4fea 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListDeploymentSettingsByCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListDeploymentSettingsByCluster.json @@ -1,141 +1,118 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", "name": "default", "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", "properties": { - "provisioningState": "Succeeded", - "operationType": "ClusterProvisioning", - "deploymentMode": "Deploy", "arcNodeResourceIds": [ "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" ], "deploymentConfiguration": { - "version": "string", "scaleUnits": [ { "deploymentData": { - "securitySettings": { - "hvciProtection": true, - "drtmProtection": true, - "driftControlEnforced": true, - "credentialGuardEnforced": false, - "smbSigningEnforced": true, - "smbClusterEncryption": false, - "sideChannelMitigationEnforced": true, - "bitlockerBootVolume": true, - "bitlockerDataVolumes": true, - "wdacEnforced": true - }, - "observability": { - "streamingDataClient": true, - "euLocation": false, - "episodicDataUpload": true - }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", "cluster": { "name": "testHCICluster", - "witnessType": "Cloud", - "witnessPath": "Cloud", + "azureServiceEndpoint": "core.windows.net", "cloudAccountName": "myasestoragacct", - "azureServiceEndpoint": "core.windows.net" - }, - "storage": { - "configurationMode": "Express" + "witnessPath": "Cloud", + "witnessType": "Cloud" }, - "namingPrefix": "ms169", "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", - "infrastructureNetwork": [ - { - "subnetMask": "255.255.248.0", - "gateway": "255.255.248.0", - "ipPools": [ - { - "startingAddress": "10.57.48.60", - "endingAddress": "10.57.48.66" - } - ], - "dnsServerConfig": "UseDnsServer", - "dnsServers": [ - "10.57.50.90" - ] - } - ], - "physicalNodes": [ - { - "name": "ms169host", - "ipv4Address": "10.57.51.224" - }, - { - "name": "ms154host", - "ipv4Address": "10.57.53.236" - } - ], "hostNetwork": { + "enableStorageAutoIp": false, "intents": [ { "name": "Compute_Management", - "trafficType": [ - "Compute", - "Management" - ], "adapter": [ "Port2" ], - "overrideVirtualSwitchConfiguration": false, - "virtualSwitchConfigurationOverrides": { - "enableIov": "True", - "loadBalancingAlgorithm": "HyperVPort" + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" }, + "overrideAdapterProperty": false, "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", "priorityValue8021Action_Cluster": "7", - "priorityValue8021Action_SMB": "3", - "bandwidthPercentage_SMB": "50" + "priorityValue8021Action_SMB": "3" }, - "overrideAdapterProperty": false, - "adapterPropertyOverrides": { - "jumboPacket": "1514", - "networkDirect": "Enabled", - "networkDirectTechnology": "iWARP" + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" } } ], + "storageConnectivitySwitchless": true, "storageNetworks": [ { "name": "Storage1Network", "networkAdapterName": "Port3", - "vlanId": "5", "storageAdapterIPInfo": [ { - "physicalNode": "string", "ipv4Address": "10.57.48.60", + "physicalNode": "string", "subnetMask": "255.255.248.0" } - ] + ], + "vlanId": "5" } - ], - "storageConnectivitySwitchless": true, - "enableStorageAutoIp": false + ] }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" + }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], "sdnIntegration": { "networkController": { "macAddressPoolStart": "00-0D-3A-1B-C7-21", @@ -143,32 +120,43 @@ "networkVirtualizationEnabled": true } }, - "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", - "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", "secrets": [ { - "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "BMCAdminUserCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" }, { - "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "AzureStackLCMUserCredential", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" } ], - "optionalServices": { - "customLocation": "customLocationName" + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" } }, "sbePartnerInfo": { - "sbeDeploymentInfo": { - "version": "4.0.2309.13", - "family": "Gen5", - "publisher": "Contoso", - "sbeManifestSource": "default", - "sbeManifestCreationDate": "2023-07-25T02:40:33Z" - }, + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], "partnerProperties": [ { "name": "EnableBMCIpV6", @@ -183,21 +171,35 @@ "value": "HighSecurity" } ], - "credentialList": [ - { - "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", - "eceSecretName": "DownloadConnectorCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" - } - ] + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } } } - ] - } + ], + "version": "string" + }, + "deploymentMode": "Deploy", + "operationType": "ClusterProvisioning", + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } ] } } - } + }, + "operationId": "DeploymentSettings_ListByClusters", + "title": "List Deployment Settings" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListEdgeDevices.json index 1baaa2ab50f6..eeb80bf688ef 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListEdgeDevices.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListEdgeDevices.json @@ -1,4 +1,6 @@ { + "title": "List Edge Devices", + "operationId": "EdgeDevices_List", "parameters": { "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "edgeDeviceName": "default", diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListExtensionsByArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListExtensionsByArcSetting.json index 195e296303ea..9b6c40146e53 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListExtensionsByArcSetting.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListExtensionsByArcSetting.json @@ -1,39 +1,31 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", + "api-version": "2025-12-01-preview", "arcSettingName": "default", - "api-version": "2025-12-01-preview" + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", "name": "MicrosoftMonitoringAgent", "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", "properties": { - "provisioningState": "Succeeded", + "aggregateState": "PartiallyConnected", "extensionParameters": { - "publisher": "Microsoft.Compute", "type": "string", - "typeHandlerVersion": "1.10.3", "autoUpgradeMinorVersion": false, + "publisher": "Microsoft.Compute", "settings": { "workspaceId": "xx" - } + }, + "typeHandlerVersion": "1.10.3" }, - "aggregateState": "PartiallyConnected", + "managedBy": "Azure", "perNodeExtensionDetails": [ { "name": "Node-1", @@ -46,33 +38,33 @@ "state": "Disconnected" } ], - "managedBy": "Azure" + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } }, { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/Extensions/SecurityExtension", "name": "CustomScriptExtension", "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/Extensions/SecurityExtension", "properties": { - "provisioningState": "Succeeded", + "aggregateState": "PartiallySucceeded", "extensionParameters": { - "publisher": "Microsoft.CustomScriptExtension", "type": "string", - "typeHandlerVersion": "1.10.3", "autoUpgradeMinorVersion": false, + "publisher": "Microsoft.CustomScriptExtension", "settings": { "scriptLocation": "xx" - } + }, + "typeHandlerVersion": "1.10.3" }, - "aggregateState": "PartiallySucceeded", + "managedBy": "Azure", "perNodeExtensionDetails": [ { "name": "Node-1", @@ -85,11 +77,21 @@ "state": "Failed" } ], - "managedBy": "Azure" + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } ] } } - } + }, + "operationId": "Extensions_ListByArcSetting", + "title": "List Extensions under ArcSetting resource" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListOffersByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListOffersByCluster.json index f5b628a60ffb..0dbf179b04aa 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListOffersByCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListOffersByCluster.json @@ -1,23 +1,23 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1", - "type": "Microsoft.AzureStackHCI/clusters/publishers/offers", "name": "offer1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1", "properties": { "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", "contentVersion": "2018-01-01", - "publisherId": "publisher1", "provisioningState": "Succeeded", + "publisherId": "publisher1", "skuMappings": [ { "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", @@ -32,5 +32,7 @@ ] } } - } + }, + "operationId": "Offers_ListByCluster", + "title": "List Offer resources by HCI Cluster" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListOffersByPublisher.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListOffersByPublisher.json index d06f238b6205..c89c460a3d65 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListOffersByPublisher.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListOffersByPublisher.json @@ -1,24 +1,24 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", "publisherName": "publisher1", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1", - "type": "Microsoft.AzureStackHCI/clusters/publishers/offers", "name": "offer1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1", "properties": { "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", "contentVersion": "2018-01-01", - "publisherId": "publisher1", "provisioningState": "Succeeded", + "publisherId": "publisher1", "skuMappings": [ { "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", @@ -33,5 +33,7 @@ ] } } - } + }, + "operationId": "Offers_ListByPublisher", + "title": "List Offer resources by publisher for the HCI Cluster" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListPublishersByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListPublishersByCluster.json index c8a1165bc5da..94a1efa2ab30 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListPublishersByCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListPublishersByCluster.json @@ -1,21 +1,23 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1", + "name": "publisher1", "type": "Microsoft.AzureStackHCI/clusters/publishers", - "name": "publisher1" + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1" } ] } } - } + }, + "operationId": "Publishers_ListByCluster", + "title": "List Publisher resources by HCI Cluster" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListSecuritySettingsByCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListSecuritySettingsByCluster.json index 76b811a7c24f..3c170d0876af 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListSecuritySettingsByCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListSecuritySettingsByCluster.json @@ -1,41 +1,43 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", "type": "Microsoft.AzureStackHCI/clusters/securitySettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", "properties": { + "provisioningState": "Succeeded", "securedCoreComplianceAssignment": "Audit", - "wdacComplianceAssignment": "ApplyAndAutoCorrect", - "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", "securityComplianceStatus": { - "securedCoreCompliance": "Compliant", - "wdacCompliance": "Compliant", "dataAtRestEncrypted": "Compliant", "dataInTransitProtected": "Compliant", - "lastUpdated": "2023-11-14T07:09:44.771Z" + "lastUpdated": "2023-11-14T07:09:44.771Z", + "securedCoreCompliance": "Compliant", + "wdacCompliance": "Compliant" }, - "provisioningState": "Succeeded" + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } ] } } - } + }, + "operationId": "SecuritySettings_ListByClusters", + "title": "List Security Settings" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListSkusByOffer.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListSkusByOffer.json index ac73b67da7c9..5f4f7f32b1c7 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListSkusByOffer.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListSkusByOffer.json @@ -1,25 +1,26 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", - "publisherName": "publisher1", "offerName": "offer1", - "api-version": "2025-12-01-preview" + "publisherName": "publisher1", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1/skus/sku1", - "type": "Microsoft.AzureStackHCI/clusters/publishers/offers/skus", "name": "sku1", + "type": "Microsoft.AzureStackHCI/clusters/publishers/offers/skus", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/publishers/publisher1/offers/offer1/skus/sku1", "properties": { "content": "{\"id\":\"canonical.ubuntuserver1404lts-arm-14.04.201808140\",\"displayName\":\"Ubuntu Server 14.04 LTS\",\"publisherId\":\"Canonical\",\"publisherName\":\"Canonical\",\"type\":\"VirtualMachine\",\"version\":\"14.04.201808140\",\"properties\":{\"description\":\"Ubuntu Server 14.04.5 LTS amd64. Ubuntu Server is the world's most popular Linux for cloud environments. Updates and patches for Ubuntu 14.04 LTS will be available until 2019-04-17. Ubuntu Server is the perfect virtual machine (VM) platform for all workloads from web applications to NoSQL databases and Hadoop. For more information see Ubuntu on Azure and using Juju to deploy your workloads.

Legal Terms

By clicking the Create button, I acknowledge that I am getting this software from Canonical and that the legal terms of Canonical apply to it. Microsoft does not provide rights for third-party software. Also see the privacy statement from Canonical.

\"},\"extendedProperties\":{\"osType\":\"Linux\",\"offer\":\"UbuntuServer\",\"offerVersion\":\"1.0.52\",\"sku\":\"14.04.5-LTS\",\"galleryItemIdentity\":\"Canonical.UbuntuServer1404LTS-ARM.1.0.52\"},\"links\":[{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]},{\"name\":[],\"uri\":[]}],\"iconUris\":{\"medium\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Medium.png\",\"wide\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Wide.png\",\"large\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Large.png\",\"small\":\"https://azstmktdfwcu001.blob.core.windows.net/icons/e5da743bb86d4d429320a75bfa5b96b8/Small.png\"},\"payloadLength\":32212288276,\"compatibility\":{\"isCompatible\":true,\"message\":\"None\",\"description\":\"None\",\"issues\":[]}}", "contentVersion": "2018-01-01", - "publisherId": "publisher1", "offerId": "offer1", + "provisioningState": "Succeeded", + "publisherId": "publisher1", "skuMappings": [ { "catalogPlanId": "microsoftsqlserver.sql2019-ubuntu2004enterprise-arm", @@ -28,12 +29,13 @@ "15.0.220208" ] } - ], - "provisioningState": "Succeeded" + ] } } ] } } - } + }, + "operationId": "Skus_ListByOffer", + "title": "List SKU resources by offer for the HCI Cluster" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListUpdateRuns.json index 07700e9c0451..8eeb30c7644d 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListUpdateRuns.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListUpdateRuns.json @@ -1,38 +1,38 @@ { "parameters": { - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", "clusterName": "testcluster", - "updateName": "Microsoft4.2203.2.32", - "api-version": "2025-12-01-preview" + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "updateName": "Microsoft4.2203.2.32" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32/updateRuns/23b779ba-0d52-4a80-8571-45ca74664ec3", "name": "Microsoft4.2203.2.32/23b779ba-0d52-4a80-8571-45ca74664ec3", "type": "Microsoft.AzureStackHCI/updates/updateRuns", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32/updateRuns/23b779ba-0d52-4a80-8571-45ca74664ec3", "location": "West US", "properties": { "progress": { "name": "Unnamed step", "description": "Update Azure Stack.", - "errorMessage": "", - "status": "Success", - "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", "endTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "errorMessage": "", "lastUpdatedTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", "steps": [ { "name": "PreUpdate Cloud", "description": "Prepare for SSU update", - "errorMessage": "", - "status": "Success", - "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", "endTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "errorMessage": "", "lastUpdatedTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", "steps": [] } ] @@ -42,5 +42,7 @@ ] } } - } + }, + "operationId": "UpdateRuns_List", + "title": "List Update runs under cluster resource" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListUpdateSummaries.json index c36336e32420..bf01b3cfade8 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListUpdateSummaries.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListUpdateSummaries.json @@ -1,45 +1,47 @@ { "parameters": { - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", "clusterName": "testcluster", - "api-version": "2025-12-01-preview" + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updateSummaries/default", "name": "default", "type": "Microsoft.AzureStackHCI/updateSummaries", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updateSummaries/default", "location": "West US", "properties": { - "oemFamily": "DellEMC", + "currentVersion": "4.2203.2.32", "hardwareModel": "PowerEdge R730xd", + "oemFamily": "DellEMC", "packageVersions": [ { + "lastUpdated": "2022-04-07T18:04:07Z", "packageType": "OEM", - "version": "2.2.2108.6", - "lastUpdated": "2022-04-07T18:04:07Z" + "version": "2.2.2108.6" }, { + "lastUpdated": "2022-04-07T18:04:07Z", "packageType": "Services", - "version": "4.2203.2.32", - "lastUpdated": "2022-04-07T18:04:07Z" + "version": "4.2203.2.32" }, { + "lastUpdated": "2022-04-07T18:04:07Z", "packageType": "Infrastructure", - "version": "4.2203.2.32", - "lastUpdated": "2022-04-07T18:04:07Z" + "version": "4.2203.2.32" } ], - "currentVersion": "4.2203.2.32", "state": "AppliedSuccessfully" } } ] } } - } + }, + "operationId": "UpdateSummaries_List", + "title": "Get Update summaries under cluster resource" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListUpdates.json index 894f7a1b0199..4843d6182564 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListUpdates.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ListUpdates.json @@ -1,47 +1,49 @@ { "parameters": { - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", "clusterName": "testcluster", - "api-version": "2025-12-01-preview" + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32", "name": "Microsoft4.2203.2.32", "type": " Microsoft. AzureStackHCI/updates", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32", "location": "West US", "properties": { - "installedDate": "2022-04-06T14:08:18.254Z", "description": "AzS Update 4.2203.2.32", - "state": "Installed", + "additionalProperties": "additional properties", + "availabilityType": "Local", + "displayName": "AzS Update - 4.2203.2.32", + "installedDate": "2022-04-06T14:08:18.254Z", + "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", + "packageSizeInMb": 18858, + "packageType": "Infrastructure", "prerequisites": [ { + "packageName": "update package name", "updateType": "update type", - "version": "prerequisite version", - "packageName": "update package name" + "version": "prerequisite version" } ], - "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", - "packageSizeInMb": 18858, - "displayName": "AzS Update - 4.2203.2.32", - "version": "4.2203.2.32", "publisher": "Microsoft", "releaseLink": "https://docs.microsoft.com/azure-stack/operator/release-notes?view=azs-2203", - "availabilityType": "Local", - "packageType": "Infrastructure", + "state": "Installed", "updateStateProperties": { "notifyMessage": "Brief message with instructions for updates of AvailabilityType Notify", "progressPercentage": 0 }, - "additionalProperties": "additional properties" + "version": "4.2203.2.32" } } ] } } - } + }, + "operationId": "Updates_List", + "title": "List available updates" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PatchArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PatchArcSetting.json index 95137b97596a..afd72628579d 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PatchArcSetting.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PatchArcSetting.json @@ -1,50 +1,51 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", - "arcSettingName": "default", + "api-version": "2025-12-01-preview", "arcSetting": { "properties": { "connectivityProperties": { "enabled": true, "serviceConfigurations": [ { - "serviceName": "WAC", - "port": 6516 + "port": 6516, + "serviceName": "WAC" } ] } } }, - "api-version": "2025-12-01-preview" + "arcSettingName": "default", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", "type": "Microsoft.AzureStackHCI/clusters/arcSettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", "properties": { - "provisioningState": "Succeeded", - "arcInstanceResourceGroup": "ArcInstance-rg", "aggregateState": "Creating", + "arcInstanceResourceGroup": "ArcInstance-rg", "connectivityProperties": { "enabled": true, "serviceConfigurations": [ { - "serviceName": "WAC", - "port": 6516 + "port": 6516, + "serviceName": "WAC" } ] }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + }, + { + "category": "Supportability", + "consentTime": null + } + ], "perNodeDetails": [ { "name": "Node-1", @@ -57,18 +58,19 @@ "state": "Creating" } ], - "defaultExtensions": [ - { - "category": "Telemetry", - "consentTime": "2023-01-01T17:18:19.1234567Z" - }, - { - "category": "Supportability", - "consentTime": null - } - ] + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } } - } + }, + "operationId": "ArcSettings_Update", + "title": "Patch ArcSetting" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PatchExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PatchExtension.json index ecdb33c1e3c6..4aa35b10c6f5 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PatchExtension.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PatchExtension.json @@ -1,92 +1,92 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", + "api-version": "2025-12-01-preview", "arcSettingName": "default", - "extensionName": "MicrosoftMonitoringAgent", + "clusterName": "myCluster", "extension": { "properties": { "extensionParameters": { - "typeHandlerVersion": "1.10", "enableAutomaticUpgrade": false, + "protectedSettings": { + "workspaceKey": "xx" + }, "settings": { "workspaceId": "xx" }, - "protectedSettings": { - "workspaceKey": "xx" - } + "typeHandlerVersion": "1.10" } } }, - "api-version": "2025-12-01-preview" + "extensionName": "MicrosoftMonitoringAgent", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", "name": "MicrosoftMonitoringAgent", "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", "properties": { - "provisioningState": "Succeeded", + "aggregateState": "PartiallyConnected", "extensionParameters": { - "publisher": "Microsoft.Compute", "type": "string", - "typeHandlerVersion": "1.10", - "enableAutomaticUpgrade": false, "autoUpgradeMinorVersion": false, + "enableAutomaticUpgrade": false, + "publisher": "Microsoft.Compute", "settings": { "workspaceId": "xx" - } + }, + "typeHandlerVersion": "1.10" }, - "aggregateState": "PartiallyConnected", + "managedBy": "User", "perNodeExtensionDetails": [ { "name": "Node-1", "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", - "state": "Connected", - "typeHandlerVersion": "1.10.0", "instanceView": { "name": "MicrosoftMonitoringAgent", "type": "MicrosoftMonitoringAgent", - "typeHandlerVersion": "1.10.0", "status": { "code": "success", - "level": "Information", "displayStatus": "Provisioning succeeded", + "level": "Information", "message": "Finished executing command, StdOut: , StdErr:", "time": "2019-08-08T20:42:10.999Z" - } - } + }, + "typeHandlerVersion": "1.10.0" + }, + "state": "Connected", + "typeHandlerVersion": "1.10.0" }, { "name": "Node-2", "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", - "state": "Disconnected", - "typeHandlerVersion": "1.10.3", "instanceView": { "name": "MicrosoftMonitoringAgent", "type": "MicrosoftMonitoringAgent", - "typeHandlerVersion": "1.10.3", "status": { "code": "error", - "level": "Error", "displayStatus": "Provisioning failed", + "level": "Error", "message": "Finished executing command, StdOut: , StdErr:", "time": "2019-08-08T20:42:10.999Z" - } - } + }, + "typeHandlerVersion": "1.10.3" + }, + "state": "Disconnected", + "typeHandlerVersion": "1.10.3" } ], - "managedBy": "User" + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } }, @@ -95,5 +95,7 @@ "location": "https://foo.com/operationStatuses" } } - } + }, + "operationId": "Extensions_Update", + "title": "Update Arc Extension" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PostUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PostUpdates.json index 951551ee1506..e3fa3e8e21bb 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PostUpdates.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PostUpdates.json @@ -1,10 +1,10 @@ { "parameters": { - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", "clusterName": "testcluster", - "updateName": "Microsoft4.2203.2.32", - "api-version": "2025-12-01-preview" + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", + "updateName": "Microsoft4.2203.2.32" }, "responses": { "200": {}, @@ -13,5 +13,7 @@ "Azure-AsyncOperation": "https://foo.com/operationstatus" } } - } + }, + "operationId": "Updates_Post", + "title": "List available updates" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutArcSetting.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutArcSetting.json index a439b1290637..5c8d90bfe5e2 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutArcSetting.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutArcSetting.json @@ -1,29 +1,30 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", - "arcSettingName": "default", + "api-version": "2025-12-01-preview", "arcSetting": {}, - "api-version": "2025-12-01-preview" + "arcSettingName": "default", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", "type": "Microsoft.AzureStackHCI/clusters/arcSettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", "properties": { - "provisioningState": "Succeeded", - "arcInstanceResourceGroup": "ArcInstance-rg", "aggregateState": "Creating", + "arcInstanceResourceGroup": "ArcInstance-rg", + "connectivityProperties": { + "enabled": false, + "serviceConfigurations": [] + }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + } + ], "perNodeDetails": [ { "name": "Node-1", @@ -36,18 +37,19 @@ "state": "Creating" } ], - "connectivityProperties": { - "enabled": false, - "serviceConfigurations": [] - }, - "defaultExtensions": [ - { - "category": "Telemetry", - "consentTime": "2023-01-01T17:18:19.1234567Z" - } - ] + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } } - } + }, + "operationId": "ArcSettings_Create", + "title": "Create ArcSetting" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutDeploymentSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutDeploymentSettings.json index 665139dd983a..24650d59e523 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutDeploymentSettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutDeploymentSettings.json @@ -1,126 +1,110 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", "deploymentSettingsName": "default", - "api-version": "2025-12-01-preview", "resource": { "properties": { - "operationType": "ClusterProvisioning", - "deploymentMode": "Deploy", "arcNodeResourceIds": [ "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" ], "deploymentConfiguration": { - "version": "string", "scaleUnits": [ { "deploymentData": { - "securitySettings": { - "hvciProtection": true, - "drtmProtection": true, - "driftControlEnforced": true, - "credentialGuardEnforced": false, - "smbSigningEnforced": true, - "smbClusterEncryption": false, - "sideChannelMitigationEnforced": true, - "bitlockerBootVolume": true, - "bitlockerDataVolumes": true, - "wdacEnforced": true - }, - "observability": { - "streamingDataClient": true, - "euLocation": false, - "episodicDataUpload": true - }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", "cluster": { "name": "testHCICluster", - "witnessType": "Cloud", - "witnessPath": "Cloud", - "cloudAccountName": "myasestoragacct", "azureServiceEndpoint": "core.windows.net", - "hardwareClass": "Medium" - }, - "storage": { - "configurationMode": "Express" + "cloudAccountName": "myasestoragacct", + "witnessPath": "Cloud", + "witnessType": "Cloud" }, - "namingPrefix": "ms169", "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", - "infrastructureNetwork": [ - { - "subnetMask": "255.255.248.0", - "gateway": "255.255.248.0", - "ipPools": [ - { - "startingAddress": "10.57.48.60", - "endingAddress": "10.57.48.66" - } - ], - "dnsServerConfig": "UseDnsServer", - "dnsServers": [ - "10.57.50.90" - ] - } - ], - "physicalNodes": [ - { - "name": "ms169host", - "ipv4Address": "10.57.51.224" - }, - { - "name": "ms154host", - "ipv4Address": "10.57.53.236" - } - ], "hostNetwork": { + "enableStorageAutoIp": false, "intents": [ { "name": "Compute_Management", - "trafficType": [ - "Compute", - "Management" - ], "adapter": [ "Port2" ], - "overrideVirtualSwitchConfiguration": false, - "virtualSwitchConfigurationOverrides": { - "enableIov": "True", - "loadBalancingAlgorithm": "HyperVPort" + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" }, + "overrideAdapterProperty": false, "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", "priorityValue8021Action_Cluster": "7", - "priorityValue8021Action_SMB": "3", - "bandwidthPercentage_SMB": "50" + "priorityValue8021Action_SMB": "3" }, - "overrideAdapterProperty": false, - "adapterPropertyOverrides": { - "jumboPacket": "1514", - "networkDirect": "Enabled", - "networkDirectTechnology": "iWARP" + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" } } ], + "storageConnectivitySwitchless": true, "storageNetworks": [ { "name": "Storage1Network", "networkAdapterName": "Port3", - "vlanId": "5", "storageAdapterIPInfo": [ { - "physicalNode": "string", "ipv4Address": "10.57.48.60", + "physicalNode": "string", "subnetMask": "255.255.248.0" } - ] + ], + "vlanId": "5" } - ], - "storageConnectivitySwitchless": true, - "enableStorageAutoIp": false + ] }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "isManagementCluster": true, + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" + }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], "sdnIntegration": { "networkController": { "macAddressPoolStart": "00-0D-3A-1B-C7-21", @@ -128,33 +112,43 @@ "networkVirtualizationEnabled": true } }, - "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", - "isManagementCluster": true, - "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", "secrets": [ { - "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "BMCAdminUserCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" }, { - "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "AzureStackLCMUserCredential", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" } ], - "optionalServices": { - "customLocation": "customLocationName" + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" } }, "sbePartnerInfo": { - "sbeDeploymentInfo": { - "version": "4.0.2309.13", - "family": "Gen5", - "publisher": "Contoso", - "sbeManifestSource": "default", - "sbeManifestCreationDate": "2023-07-25T02:40:33Z" - }, + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], "partnerProperties": [ { "name": "EnableBMCIpV6", @@ -169,148 +163,131 @@ "value": "HighSecurity" } ], - "credentialList": [ - { - "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", - "eceSecretName": "DownloadConnectorCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" - } - ] + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } } } - ] - } + ], + "version": "string" + }, + "deploymentMode": "Deploy", + "operationType": "ClusterProvisioning" } - } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", "name": "default", "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", "properties": { - "provisioningState": "Succeeded", - "deploymentMode": "Deploy", "arcNodeResourceIds": [ "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" ], "deploymentConfiguration": { - "version": "string", "scaleUnits": [ { "deploymentData": { - "securitySettings": { - "hvciProtection": true, - "drtmProtection": true, - "driftControlEnforced": true, - "credentialGuardEnforced": false, - "smbSigningEnforced": true, - "smbClusterEncryption": false, - "sideChannelMitigationEnforced": true, - "bitlockerBootVolume": true, - "bitlockerDataVolumes": true, - "wdacEnforced": true - }, - "observability": { - "streamingDataClient": true, - "euLocation": false, - "episodicDataUpload": true - }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", "cluster": { "name": "testHCICluster", - "witnessType": "Cloud", - "witnessPath": "Cloud", + "azureServiceEndpoint": "core.windows.net", "cloudAccountName": "myasestoragacct", - "azureServiceEndpoint": "core.windows.net" - }, - "storage": { - "configurationMode": "Express" + "witnessPath": "Cloud", + "witnessType": "Cloud" }, - "namingPrefix": "ms169", "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", - "infrastructureNetwork": [ - { - "subnetMask": "255.255.248.0", - "gateway": "255.255.248.0", - "ipPools": [ - { - "startingAddress": "10.57.48.60", - "endingAddress": "10.57.48.66" - } - ], - "dnsServerConfig": "UseDnsServer", - "dnsServers": [ - "10.57.50.90" - ] - } - ], - "physicalNodes": [ - { - "name": "ms169host", - "ipv4Address": "10.57.51.224" - }, - { - "name": "ms154host", - "ipv4Address": "10.57.53.236" - } - ], "hostNetwork": { + "enableStorageAutoIp": false, "intents": [ { "name": "Compute_Management", - "trafficType": [ - "Compute", - "Management" - ], "adapter": [ "Port2" ], - "overrideVirtualSwitchConfiguration": false, - "virtualSwitchConfigurationOverrides": { - "enableIov": "True", - "loadBalancingAlgorithm": "HyperVPort" + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" }, + "overrideAdapterProperty": false, "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", "priorityValue8021Action_Cluster": "7", - "priorityValue8021Action_SMB": "3", - "bandwidthPercentage_SMB": "50" + "priorityValue8021Action_SMB": "3" }, - "overrideAdapterProperty": false, - "adapterPropertyOverrides": { - "jumboPacket": "1514", - "networkDirect": "Enabled", - "networkDirectTechnology": "iWARP" + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" } } ], + "storageConnectivitySwitchless": true, "storageNetworks": [ { "name": "Storage1Network", "networkAdapterName": "Port3", - "vlanId": "5", "storageAdapterIPInfo": [ { - "physicalNode": "string", "ipv4Address": "10.57.48.60", + "physicalNode": "string", "subnetMask": "255.255.248.0" } - ] + ], + "vlanId": "5" } - ], - "storageConnectivitySwitchless": true, - "enableStorageAutoIp": false + ] }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" + }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], "sdnIntegration": { "networkController": { "macAddressPoolStart": "00-0D-3A-1B-C7-21", @@ -318,32 +295,43 @@ "networkVirtualizationEnabled": true } }, - "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", - "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", "secrets": [ { - "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "BMCAdminUserCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" }, { - "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "AzureStackLCMUserCredential", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" } ], - "optionalServices": { - "customLocation": "customLocationName" + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" } }, "sbePartnerInfo": { - "sbeDeploymentInfo": { - "version": "4.0.2309.13", - "family": "Gen5", - "publisher": "Contoso", - "sbeManifestSource": "default", - "sbeManifestCreationDate": "2023-07-25T02:40:33Z" - }, + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], "partnerProperties": [ { "name": "EnableBMCIpV6", @@ -358,100 +346,103 @@ "value": "HighSecurity" } ], - "credentialList": [ - { - "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", - "eceSecretName": "DownloadConnectorCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" - } - ] + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } } } - ] + ], + "version": "string" }, + "deploymentMode": "Deploy", + "provisioningState": "Succeeded", "reportedProperties": { - "validationStatus": { + "deploymentStatus": { "status": "Error", "steps": [ { - "fullStepIndex": "0", "name": "Cloud Deployment", "description": "Deploy Cloud.", - "startTimeUtc": "2023-06-09T00:08:19", "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" ], + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", "steps": [ { - "fullStepIndex": "0.1", "name": "Before Cloud Deployment", - "description": "Before Cloud Deployment", - "startTimeUtc": "2023-06-09T00:08:23", + "description": null, "endTimeUtc": "2023-06-09T01:10:10", "exception": [ "exception1", "exception2" ], + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23", "steps": [] }, { - "fullStepIndex": "0.36", "name": "Clean up temporary content", - "description": "Clean up temporary content", - "startTimeUtc": "2023-06-09T03:58:37", + "description": null, "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error", "steps": [] } ] } ] }, - "deploymentStatus": { + "validationStatus": { "status": "Error", "steps": [ { - "fullStepIndex": "0", "name": "Cloud Deployment", "description": "Deploy Cloud.", - "startTimeUtc": "2023-06-09T00:08:19", "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" ], + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", "steps": [ { - "fullStepIndex": "0.1", "name": "Before Cloud Deployment", - "description": null, - "startTimeUtc": "2023-06-09T00:08:23", + "description": "Before Cloud Deployment", "endTimeUtc": "2023-06-09T01:10:10", "exception": [ "exception1", "exception2" ], + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23", "steps": [] }, { - "fullStepIndex": "0.36", "name": "Clean up temporary content", - "description": null, - "startTimeUtc": "2023-06-09T03:58:37", + "description": "Clean up temporary content", "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error", "steps": [] } ] @@ -459,136 +450,122 @@ ] } } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } }, "201": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", "name": "default", "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", "properties": { - "provisioningState": "Succeeded", - "deploymentMode": "Deploy", "arcNodeResourceIds": [ "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" ], "deploymentConfiguration": { - "version": "string", "scaleUnits": [ { "deploymentData": { - "securitySettings": { - "hvciProtection": true, - "drtmProtection": true, - "driftControlEnforced": true, - "credentialGuardEnforced": false, - "smbSigningEnforced": true, - "smbClusterEncryption": false, - "sideChannelMitigationEnforced": true, - "bitlockerBootVolume": true, - "bitlockerDataVolumes": true, - "wdacEnforced": true - }, - "observability": { - "streamingDataClient": true, - "euLocation": false, - "episodicDataUpload": true - }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", "cluster": { "name": "testHCICluster", - "witnessType": "Cloud", - "witnessPath": "Cloud", + "azureServiceEndpoint": "core.windows.net", "cloudAccountName": "myasestoragacct", - "azureServiceEndpoint": "core.windows.net" - }, - "storage": { - "configurationMode": "Express" + "witnessPath": "Cloud", + "witnessType": "Cloud" }, - "namingPrefix": "ms169", "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", - "infrastructureNetwork": [ - { - "subnetMask": "255.255.248.0", - "gateway": "255.255.248.0", - "ipPools": [ - { - "startingAddress": "10.57.48.60", - "endingAddress": "10.57.48.66" - } - ], - "dnsServerConfig": "UseDnsServer", - "dnsServers": [ - "10.57.50.90" - ] - } - ], - "physicalNodes": [ - { - "name": "ms169host", - "ipv4Address": "10.57.51.224" - }, - { - "name": "ms154host", - "ipv4Address": "10.57.53.236" - } - ], "hostNetwork": { + "enableStorageAutoIp": false, "intents": [ { "name": "Compute_Management", - "trafficType": [ - "Compute", - "Management" - ], "adapter": [ "Port2" ], - "overrideVirtualSwitchConfiguration": false, - "virtualSwitchConfigurationOverrides": { - "enableIov": "True", - "loadBalancingAlgorithm": "HyperVPort" + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" }, + "overrideAdapterProperty": false, "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", "priorityValue8021Action_Cluster": "7", - "priorityValue8021Action_SMB": "3", - "bandwidthPercentage_SMB": "50" + "priorityValue8021Action_SMB": "3" }, - "overrideAdapterProperty": false, - "adapterPropertyOverrides": { - "jumboPacket": "1514", - "networkDirect": "Enabled", - "networkDirectTechnology": "iWARP" + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" } } ], + "storageConnectivitySwitchless": true, "storageNetworks": [ { "name": "Storage1Network", "networkAdapterName": "Port3", - "vlanId": "5", "storageAdapterIPInfo": [ { - "physicalNode": "string", "ipv4Address": "10.57.48.60", + "physicalNode": "string", "subnetMask": "255.255.248.0" } - ] + ], + "vlanId": "5" } - ], - "storageConnectivitySwitchless": true, - "enableStorageAutoIp": false + ] }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" + }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], "sdnIntegration": { "networkController": { "macAddressPoolStart": "00-0D-3A-1B-C7-21", @@ -596,32 +573,43 @@ "networkVirtualizationEnabled": true } }, - "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", - "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", "secrets": [ { - "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "BMCAdminUserCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" }, { - "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "AzureStackLCMUserCredential", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" } ], - "optionalServices": { - "customLocation": "customLocationName" + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" } }, "sbePartnerInfo": { - "sbeDeploymentInfo": { - "version": "4.0.2309.13", - "family": "Gen5", - "publisher": "Contoso", - "sbeManifestSource": "default", - "sbeManifestCreationDate": "2023-07-25T02:40:33Z" - }, + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], "partnerProperties": [ { "name": "EnableBMCIpV6", @@ -636,99 +624,112 @@ "value": "HighSecurity" } ], - "credentialList": [ - { - "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", - "eceSecretName": "DownloadConnectorCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" - } - ] + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } } } - ] + ], + "version": "string" }, + "deploymentMode": "Deploy", + "provisioningState": "Succeeded", "reportedProperties": { - "validationStatus": { + "deploymentStatus": { "status": "Error", "steps": [ { - "fullStepIndex": "0", "name": "Cloud Deployment", "description": "Deploy Cloud.", - "startTimeUtc": "2023-06-09T00:08:19", "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", "status": "Error", "steps": [ { - "fullStepIndex": "0.1", "name": "Before Cloud Deployment", "description": "Before Cloud Deployment", + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.1", "startTimeUtc": "2023-06-09T00:08:23", - "endTimeUtc": "2023-06-09T01:10:10" + "steps": [] }, { - "fullStepIndex": "0.36", "name": "Clean up temporary content", "description": "Clean up temporary content", - "startTimeUtc": "2023-06-09T03:58:37", "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" - ] + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error", + "steps": [] } ] } ] }, - "deploymentStatus": { + "validationStatus": { "status": "Error", "steps": [ { - "fullStepIndex": "0", "name": "Cloud Deployment", "description": "Deploy Cloud.", - "startTimeUtc": "2023-06-09T00:08:19", "endTimeUtc": "2023-06-09T04:01:47", + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", "status": "Error", - "exception": [ - "exception1", - "exception2" - ], "steps": [ { - "fullStepIndex": "0.1", "name": "Before Cloud Deployment", "description": "Before Cloud Deployment", - "startTimeUtc": "2023-06-09T00:08:23", "endTimeUtc": "2023-06-09T01:10:10", - "exception": [ - "exception1", - "exception2" - ], - "steps": [] + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23" }, { - "fullStepIndex": "0.36", "name": "Clean up temporary content", "description": "Clean up temporary content", - "startTimeUtc": "2023-06-09T03:58:37", "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" ], - "steps": [] + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error" } ] } ] } } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } } - } + }, + "operationId": "DeploymentSettings_CreateOrUpdate", + "title": "Create Deployment Settings" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutDeploymentSettingsWithADLess.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutDeploymentSettingsWithADLess.json index 51b960972dfe..36b1cfdd1850 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutDeploymentSettingsWithADLess.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutDeploymentSettingsWithADLess.json @@ -1,131 +1,114 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", + "api-version": "2025-12-01-preview", "clusterName": "myCluster", "deploymentSettingsName": "default", - "api-version": "2025-12-01-preview", "resource": { "properties": { - "operationType": "ClusterProvisioning", - "deploymentMode": "Deploy", "arcNodeResourceIds": [ "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" ], "deploymentConfiguration": { - "version": "string", "scaleUnits": [ { "deploymentData": { - "securitySettings": { - "hvciProtection": true, - "drtmProtection": true, - "driftControlEnforced": true, - "credentialGuardEnforced": false, - "smbSigningEnforced": true, - "smbClusterEncryption": false, - "sideChannelMitigationEnforced": true, - "bitlockerBootVolume": true, - "bitlockerDataVolumes": true, - "wdacEnforced": true - }, - "observability": { - "streamingDataClient": true, - "euLocation": false, - "episodicDataUpload": true - }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", "cluster": { "name": "testHCICluster", - "witnessType": "Cloud", - "witnessPath": "Cloud", - "cloudAccountName": "myasestoragacct", "azureServiceEndpoint": "core.windows.net", - "hardwareClass": "Medium" - }, - "identityProvider": "LocalIdentity", - "storage": { - "configurationMode": "Express" + "cloudAccountName": "myasestoragacct", + "witnessPath": "Cloud", + "witnessType": "Cloud" }, - "namingPrefix": "ms169", "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", - "infrastructureNetwork": [ - { - "subnetMask": "255.255.248.0", - "gateway": "255.255.248.0", - "ipPools": [ - { - "startingAddress": "10.57.48.60", - "endingAddress": "10.57.48.66" - } - ], - "dnsZones": [ - { - "dnsZoneName": "contoso.com", - "dnsForwarder": [ - "192.168.1.1" - ] - } - ] - } - ], - "physicalNodes": [ - { - "name": "ms169host", - "ipv4Address": "10.57.51.224" - }, - { - "name": "ms154host", - "ipv4Address": "10.57.53.236" - } - ], "hostNetwork": { + "enableStorageAutoIp": false, "intents": [ { "name": "Compute_Management", - "trafficType": [ - "Compute", - "Management" - ], "adapter": [ "Port2" ], - "overrideVirtualSwitchConfiguration": false, - "virtualSwitchConfigurationOverrides": { - "enableIov": "True", - "loadBalancingAlgorithm": "HyperVPort" + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" }, + "overrideAdapterProperty": false, "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", "priorityValue8021Action_Cluster": "7", - "priorityValue8021Action_SMB": "3", - "bandwidthPercentage_SMB": "50" + "priorityValue8021Action_SMB": "3" }, - "overrideAdapterProperty": false, - "adapterPropertyOverrides": { - "jumboPacket": "1514", - "networkDirect": "Enabled", - "networkDirectTechnology": "iWARP" + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" } } ], + "storageConnectivitySwitchless": true, "storageNetworks": [ { "name": "Storage1Network", "networkAdapterName": "Port3", - "vlanId": "5", "storageAdapterIPInfo": [ { - "physicalNode": "string", "ipv4Address": "10.57.48.60", + "physicalNode": "string", "subnetMask": "255.255.248.0" } - ] + ], + "vlanId": "5" } - ], - "storageConnectivitySwitchless": true, - "enableStorageAutoIp": false + ] + }, + "identityProvider": "LocalIdentity", + "infrastructureNetwork": [ + { + "dnsZones": [ + { + "dnsForwarder": [ + "192.168.1.1" + ], + "dnsZoneName": "contoso.com" + } + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], "sdnIntegration": { "networkController": { "macAddressPoolStart": "00-0D-3A-1B-C7-21", @@ -133,32 +116,43 @@ "networkVirtualizationEnabled": true } }, - "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", - "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", "secrets": [ { - "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "BMCAdminUserCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" }, { - "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "AzureStackLCMUserCredential", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" } ], - "optionalServices": { - "customLocation": "customLocationName" + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" } }, "sbePartnerInfo": { - "sbeDeploymentInfo": { - "version": "4.0.2309.13", - "family": "Gen5", - "publisher": "Contoso", - "sbeManifestSource": "default", - "sbeManifestCreationDate": "2023-07-25T02:40:33Z" - }, + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], "partnerProperties": [ { "name": "EnableBMCIpV6", @@ -173,148 +167,131 @@ "value": "HighSecurity" } ], - "credentialList": [ - { - "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", - "eceSecretName": "DownloadConnectorCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" - } - ] + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } } } - ] - } + ], + "version": "string" + }, + "deploymentMode": "Deploy", + "operationType": "ClusterProvisioning" } - } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", "name": "default", "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", "properties": { - "provisioningState": "Succeeded", - "deploymentMode": "Deploy", "arcNodeResourceIds": [ "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" ], "deploymentConfiguration": { - "version": "string", "scaleUnits": [ { "deploymentData": { - "securitySettings": { - "hvciProtection": true, - "drtmProtection": true, - "driftControlEnforced": true, - "credentialGuardEnforced": false, - "smbSigningEnforced": true, - "smbClusterEncryption": false, - "sideChannelMitigationEnforced": true, - "bitlockerBootVolume": true, - "bitlockerDataVolumes": true, - "wdacEnforced": true - }, - "observability": { - "streamingDataClient": true, - "euLocation": false, - "episodicDataUpload": true - }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", "cluster": { "name": "testHCICluster", - "witnessType": "Cloud", - "witnessPath": "Cloud", + "azureServiceEndpoint": "core.windows.net", "cloudAccountName": "myasestoragacct", - "azureServiceEndpoint": "core.windows.net" - }, - "storage": { - "configurationMode": "Express" + "witnessPath": "Cloud", + "witnessType": "Cloud" }, - "namingPrefix": "ms169", "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", - "infrastructureNetwork": [ - { - "subnetMask": "255.255.248.0", - "gateway": "255.255.248.0", - "ipPools": [ - { - "startingAddress": "10.57.48.60", - "endingAddress": "10.57.48.66" - } - ], - "dnsServerConfig": "UseDnsServer", - "dnsServers": [ - "10.57.50.90" - ] - } - ], - "physicalNodes": [ - { - "name": "ms169host", - "ipv4Address": "10.57.51.224" - }, - { - "name": "ms154host", - "ipv4Address": "10.57.53.236" - } - ], "hostNetwork": { + "enableStorageAutoIp": false, "intents": [ { "name": "Compute_Management", - "trafficType": [ - "Compute", - "Management" - ], "adapter": [ "Port2" ], - "overrideVirtualSwitchConfiguration": false, - "virtualSwitchConfigurationOverrides": { - "enableIov": "True", - "loadBalancingAlgorithm": "HyperVPort" + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" }, + "overrideAdapterProperty": false, "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", "priorityValue8021Action_Cluster": "7", - "priorityValue8021Action_SMB": "3", - "bandwidthPercentage_SMB": "50" + "priorityValue8021Action_SMB": "3" }, - "overrideAdapterProperty": false, - "adapterPropertyOverrides": { - "jumboPacket": "1514", - "networkDirect": "Enabled", - "networkDirectTechnology": "iWARP" + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" } } ], + "storageConnectivitySwitchless": true, "storageNetworks": [ { "name": "Storage1Network", "networkAdapterName": "Port3", - "vlanId": "5", "storageAdapterIPInfo": [ { - "physicalNode": "string", "ipv4Address": "10.57.48.60", + "physicalNode": "string", "subnetMask": "255.255.248.0" } - ] + ], + "vlanId": "5" } - ], - "storageConnectivitySwitchless": true, - "enableStorageAutoIp": false + ] + }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], "sdnIntegration": { "networkController": { "macAddressPoolStart": "00-0D-3A-1B-C7-21", @@ -322,32 +299,43 @@ "networkVirtualizationEnabled": true } }, - "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", - "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", "secrets": [ { - "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "BMCAdminUserCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" }, { - "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "AzureStackLCMUserCredential", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" } ], - "optionalServices": { - "customLocation": "customLocationName" + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" } }, "sbePartnerInfo": { - "sbeDeploymentInfo": { - "version": "4.0.2309.13", - "family": "Gen5", - "publisher": "Contoso", - "sbeManifestSource": "default", - "sbeManifestCreationDate": "2023-07-25T02:40:33Z" - }, + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], "partnerProperties": [ { "name": "EnableBMCIpV6", @@ -362,100 +350,103 @@ "value": "HighSecurity" } ], - "credentialList": [ - { - "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", - "eceSecretName": "DownloadConnectorCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" - } - ] + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } } } - ] + ], + "version": "string" }, + "deploymentMode": "Deploy", + "provisioningState": "Succeeded", "reportedProperties": { - "validationStatus": { + "deploymentStatus": { "status": "Error", "steps": [ { - "fullStepIndex": "0", "name": "Cloud Deployment", "description": "Deploy Cloud.", - "startTimeUtc": "2023-06-09T00:08:19", "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" ], + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", "steps": [ { - "fullStepIndex": "0.1", "name": "Before Cloud Deployment", - "description": "Before Cloud Deployment", - "startTimeUtc": "2023-06-09T00:08:23", + "description": null, "endTimeUtc": "2023-06-09T01:10:10", "exception": [ "exception1", "exception2" ], + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23", "steps": [] }, { - "fullStepIndex": "0.36", "name": "Clean up temporary content", - "description": "Clean up temporary content", - "startTimeUtc": "2023-06-09T03:58:37", + "description": null, "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error", "steps": [] } ] } ] }, - "deploymentStatus": { + "validationStatus": { "status": "Error", "steps": [ { - "fullStepIndex": "0", "name": "Cloud Deployment", "description": "Deploy Cloud.", - "startTimeUtc": "2023-06-09T00:08:19", "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" ], + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", + "status": "Error", "steps": [ { - "fullStepIndex": "0.1", "name": "Before Cloud Deployment", - "description": null, - "startTimeUtc": "2023-06-09T00:08:23", + "description": "Before Cloud Deployment", "endTimeUtc": "2023-06-09T01:10:10", "exception": [ "exception1", "exception2" ], + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23", "steps": [] }, { - "fullStepIndex": "0.36", "name": "Clean up temporary content", - "description": null, - "startTimeUtc": "2023-06-09T03:58:37", + "description": "Clean up temporary content", "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error", "steps": [] } ] @@ -463,136 +454,122 @@ ] } } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } }, "201": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", "name": "default", "type": "Microsoft.AzureStackHCI/clusters/deploymentSettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/deploymentSettings/default", "properties": { - "provisioningState": "Succeeded", - "deploymentMode": "Deploy", "arcNodeResourceIds": [ "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2" ], "deploymentConfiguration": { - "version": "string", "scaleUnits": [ { "deploymentData": { - "securitySettings": { - "hvciProtection": true, - "drtmProtection": true, - "driftControlEnforced": true, - "credentialGuardEnforced": false, - "smbSigningEnforced": true, - "smbClusterEncryption": false, - "sideChannelMitigationEnforced": true, - "bitlockerBootVolume": true, - "bitlockerDataVolumes": true, - "wdacEnforced": true - }, - "observability": { - "streamingDataClient": true, - "euLocation": false, - "episodicDataUpload": true - }, + "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", "cluster": { "name": "testHCICluster", - "witnessType": "Cloud", - "witnessPath": "Cloud", + "azureServiceEndpoint": "core.windows.net", "cloudAccountName": "myasestoragacct", - "azureServiceEndpoint": "core.windows.net" - }, - "storage": { - "configurationMode": "Express" + "witnessPath": "Cloud", + "witnessType": "Cloud" }, - "namingPrefix": "ms169", "domainFqdn": "ASZ1PLab8.nttest.microsoft.com", - "infrastructureNetwork": [ - { - "subnetMask": "255.255.248.0", - "gateway": "255.255.248.0", - "ipPools": [ - { - "startingAddress": "10.57.48.60", - "endingAddress": "10.57.48.66" - } - ], - "dnsServerConfig": "UseDnsServer", - "dnsServers": [ - "10.57.50.90" - ] - } - ], - "physicalNodes": [ - { - "name": "ms169host", - "ipv4Address": "10.57.51.224" - }, - { - "name": "ms154host", - "ipv4Address": "10.57.53.236" - } - ], "hostNetwork": { + "enableStorageAutoIp": false, "intents": [ { "name": "Compute_Management", - "trafficType": [ - "Compute", - "Management" - ], "adapter": [ "Port2" ], - "overrideVirtualSwitchConfiguration": false, - "virtualSwitchConfigurationOverrides": { - "enableIov": "True", - "loadBalancingAlgorithm": "HyperVPort" + "adapterPropertyOverrides": { + "jumboPacket": "1514", + "networkDirect": "Enabled", + "networkDirectTechnology": "iWARP" }, + "overrideAdapterProperty": false, "overrideQosPolicy": false, + "overrideVirtualSwitchConfiguration": false, "qosPolicyOverrides": { + "bandwidthPercentage_SMB": "50", "priorityValue8021Action_Cluster": "7", - "priorityValue8021Action_SMB": "3", - "bandwidthPercentage_SMB": "50" + "priorityValue8021Action_SMB": "3" }, - "overrideAdapterProperty": false, - "adapterPropertyOverrides": { - "jumboPacket": "1514", - "networkDirect": "Enabled", - "networkDirectTechnology": "iWARP" + "trafficType": [ + "Compute", + "Management" + ], + "virtualSwitchConfigurationOverrides": { + "enableIov": "True", + "loadBalancingAlgorithm": "HyperVPort" } } ], + "storageConnectivitySwitchless": true, "storageNetworks": [ { "name": "Storage1Network", "networkAdapterName": "Port3", - "vlanId": "5", "storageAdapterIPInfo": [ { - "physicalNode": "string", "ipv4Address": "10.57.48.60", + "physicalNode": "string", "subnetMask": "255.255.248.0" } - ] + ], + "vlanId": "5" } - ], - "storageConnectivitySwitchless": true, - "enableStorageAutoIp": false + ] }, + "infrastructureNetwork": [ + { + "dnsServerConfig": "UseDnsServer", + "dnsServers": [ + "10.57.50.90" + ], + "gateway": "255.255.248.0", + "ipPools": [ + { + "endingAddress": "10.57.48.66", + "startingAddress": "10.57.48.60" + } + ], + "subnetMask": "255.255.248.0" + } + ], + "namingPrefix": "ms169", + "observability": { + "episodicDataUpload": true, + "euLocation": false, + "streamingDataClient": true + }, + "optionalServices": { + "customLocation": "customLocationName" + }, + "physicalNodes": [ + { + "name": "ms169host", + "ipv4Address": "10.57.51.224" + }, + { + "name": "ms154host", + "ipv4Address": "10.57.53.236" + } + ], "sdnIntegration": { "networkController": { "macAddressPoolStart": "00-0D-3A-1B-C7-21", @@ -600,32 +577,43 @@ "networkVirtualizationEnabled": true } }, - "adouPath": "OU=ms169,DC=ASZ1PLab8,DC=nttest,DC=microsoft,DC=com", - "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", "secrets": [ { - "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "BMCAdminUserCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-BmcAdminUser-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" }, { - "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", "eceSecretName": "AzureStackLCMUserCredential", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c" + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4c", + "secretName": "cluster2-AzureStackLCMUserCredential-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" } ], - "optionalServices": { - "customLocation": "customLocationName" + "secretsLocation": "/subscriptions/db4e2fdb-6d80-4e6e-b7cd-xxxxxxx/resourceGroups/test-rg/providers/Microsoft.KeyVault/vaults/abcd123", + "securitySettings": { + "bitlockerBootVolume": true, + "bitlockerDataVolumes": true, + "credentialGuardEnforced": false, + "driftControlEnforced": true, + "drtmProtection": true, + "hvciProtection": true, + "sideChannelMitigationEnforced": true, + "smbClusterEncryption": false, + "smbSigningEnforced": true, + "wdacEnforced": true + }, + "storage": { + "configurationMode": "Express" } }, "sbePartnerInfo": { - "sbeDeploymentInfo": { - "version": "4.0.2309.13", - "family": "Gen5", - "publisher": "Contoso", - "sbeManifestSource": "default", - "sbeManifestCreationDate": "2023-07-25T02:40:33Z" - }, + "credentialList": [ + { + "eceSecretName": "DownloadConnectorCred", + "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b", + "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63" + } + ], "partnerProperties": [ { "name": "EnableBMCIpV6", @@ -640,99 +628,112 @@ "value": "HighSecurity" } ], - "credentialList": [ - { - "secretName": "cluster1-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63", - "eceSecretName": "DownloadConnectorCred", - "secretLocation": "https://sclusterkvnirhci35.vault.azure.net/secrets/cluster-34232342-DownloadConnectorCred-f5bcc1d9-23af-4ae9-aca1-041d0f593a63/9276354aabfc492fa9b2cdbefb54ae4b" - } - ] + "sbeDeploymentInfo": { + "family": "Gen5", + "publisher": "Contoso", + "sbeManifestCreationDate": "2023-07-25T02:40:33Z", + "sbeManifestSource": "default", + "version": "4.0.2309.13" + } } } - ] + ], + "version": "string" }, + "deploymentMode": "Deploy", + "provisioningState": "Succeeded", "reportedProperties": { - "validationStatus": { + "deploymentStatus": { "status": "Error", "steps": [ { - "fullStepIndex": "0", "name": "Cloud Deployment", "description": "Deploy Cloud.", - "startTimeUtc": "2023-06-09T00:08:19", "endTimeUtc": "2023-06-09T04:01:47", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", "status": "Error", "steps": [ { - "fullStepIndex": "0.1", "name": "Before Cloud Deployment", "description": "Before Cloud Deployment", + "endTimeUtc": "2023-06-09T01:10:10", + "exception": [ + "exception1", + "exception2" + ], + "fullStepIndex": "0.1", "startTimeUtc": "2023-06-09T00:08:23", - "endTimeUtc": "2023-06-09T01:10:10" + "steps": [] }, { - "fullStepIndex": "0.36", "name": "Clean up temporary content", "description": "Clean up temporary content", - "startTimeUtc": "2023-06-09T03:58:37", "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" - ] + ], + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error", + "steps": [] } ] } ] }, - "deploymentStatus": { + "validationStatus": { "status": "Error", "steps": [ { - "fullStepIndex": "0", "name": "Cloud Deployment", "description": "Deploy Cloud.", - "startTimeUtc": "2023-06-09T00:08:19", "endTimeUtc": "2023-06-09T04:01:47", + "fullStepIndex": "0", + "startTimeUtc": "2023-06-09T00:08:19", "status": "Error", - "exception": [ - "exception1", - "exception2" - ], "steps": [ { - "fullStepIndex": "0.1", "name": "Before Cloud Deployment", "description": "Before Cloud Deployment", - "startTimeUtc": "2023-06-09T00:08:23", "endTimeUtc": "2023-06-09T01:10:10", - "exception": [ - "exception1", - "exception2" - ], - "steps": [] + "fullStepIndex": "0.1", + "startTimeUtc": "2023-06-09T00:08:23" }, { - "fullStepIndex": "0.36", "name": "Clean up temporary content", "description": "Clean up temporary content", - "startTimeUtc": "2023-06-09T03:58:37", "endTimeUtc": "2023-06-09T04:01:47", - "status": "Error", "exception": [ "exception1", "exception2" ], - "steps": [] + "fullStepIndex": "0.36", + "startTimeUtc": "2023-06-09T03:58:37", + "status": "Error" } ] } ] } } + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } } - } + }, + "operationId": "DeploymentSettings_CreateOrUpdate", + "title": "Create Deployment Settings Without Active Directory Integration" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutExtension.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutExtension.json index f54f5be896fb..37e761d83033 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutExtension.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutExtension.json @@ -1,164 +1,166 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", + "api-version": "2025-12-01-preview", "arcSettingName": "default", - "extensionName": "MicrosoftMonitoringAgent", + "clusterName": "myCluster", "extension": { "properties": { "extensionParameters": { - "publisher": "Microsoft.Compute", - "typeHandlerVersion": "1.10", "type": "MicrosoftMonitoringAgent", "enableAutomaticUpgrade": false, + "protectedSettings": { + "workspaceKey": "xx" + }, + "publisher": "Microsoft.Compute", "settings": { "workspaceId": "xx" }, - "protectedSettings": { - "workspaceKey": "xx" - } + "typeHandlerVersion": "1.10" } } }, - "api-version": "2025-12-01-preview" + "extensionName": "MicrosoftMonitoringAgent", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", "name": "MicrosoftMonitoringAgent", "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", "properties": { - "provisioningState": "Succeeded", + "aggregateState": "PartiallySucceeded", "extensionParameters": { - "publisher": "Microsoft.Compute", "type": "string", - "typeHandlerVersion": "1.10.3", - "enableAutomaticUpgrade": false, "autoUpgradeMinorVersion": false, + "enableAutomaticUpgrade": false, + "publisher": "Microsoft.Compute", "settings": { "workspaceId": "xx" - } + }, + "typeHandlerVersion": "1.10.3" }, - "aggregateState": "PartiallySucceeded", + "managedBy": "User", "perNodeExtensionDetails": [ { "name": "Node-1", "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", - "state": "Succeeded", - "typeHandlerVersion": "1.10.0", "instanceView": { "name": "MicrosoftMonitoringAgent", "type": "MicrosoftMonitoringAgent", - "typeHandlerVersion": "1.10.0", "status": { "code": "success", - "level": "Information", "displayStatus": "Provisioning succeeded", + "level": "Information", "message": "Finished executing command, StdOut: , StdErr:", "time": "2019-08-08T20:42:10.999Z" - } - } + }, + "typeHandlerVersion": "1.10.0" + }, + "state": "Succeeded", + "typeHandlerVersion": "1.10.0" }, { "name": "Node-2", "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", - "state": "Failed", - "typeHandlerVersion": "1.10.3", "instanceView": { "name": "MicrosoftMonitoringAgent", "type": "MicrosoftMonitoringAgent", - "typeHandlerVersion": "1.10.3", "status": { "code": "error", - "level": "Error", "displayStatus": "Provisioning failed", + "level": "Error", "message": "Finished executing command, StdOut: , StdErr:", "time": "2019-08-08T20:42:10.999Z" - } - } + }, + "typeHandlerVersion": "1.10.3" + }, + "state": "Failed", + "typeHandlerVersion": "1.10.3" } ], - "managedBy": "User" + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } }, "201": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", "name": "MicrosoftMonitoringAgent", "type": "Microsoft.AzureStackHCI/clusters/arcSettings/extensions", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default/extensions/MicrosoftMonitoringAgent", "properties": { - "provisioningState": "Succeeded", + "aggregateState": "PartiallySucceeded", "extensionParameters": { - "publisher": "Microsoft.Compute", "type": "string", - "typeHandlerVersion": "1.10.3", - "enableAutomaticUpgrade": false, "autoUpgradeMinorVersion": false, + "enableAutomaticUpgrade": false, + "publisher": "Microsoft.Compute", "settings": { "workspaceId": "xx" - } + }, + "typeHandlerVersion": "1.10.3" }, - "aggregateState": "PartiallySucceeded", + "managedBy": "User", "perNodeExtensionDetails": [ { "name": "Node-1", "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/Extensions/MicrosoftMonitoringAgent", - "state": "Succeeded", - "typeHandlerVersion": "1.10.0", "instanceView": { "name": "MicrosoftMonitoringAgent", "type": "MicrosoftMonitoringAgent", - "typeHandlerVersion": "1.10.0", "status": { "code": "success", - "level": "Information", "displayStatus": "Provisioning succeeded", + "level": "Information", "message": "Finished executing command, StdOut: , StdErr:", "time": "2019-08-08T20:42:10.999Z" - } - } + }, + "typeHandlerVersion": "1.10.0" + }, + "state": "Succeeded", + "typeHandlerVersion": "1.10.0" }, { "name": "Node-2", "extension": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/Extensions/MicrosoftMonitoringAgent", - "state": "Failed", - "typeHandlerVersion": "1.10.3", "instanceView": { "name": "MicrosoftMonitoringAgent", "type": "MicrosoftMonitoringAgent", - "typeHandlerVersion": "1.10.3", "status": { "code": "error", - "level": "Error", "displayStatus": "Provisioning failed", + "level": "Error", "message": "Finished executing command, StdOut: , StdErr:", "time": "2019-08-08T20:42:10.999Z" - } - } + }, + "typeHandlerVersion": "1.10.3" + }, + "state": "Failed", + "typeHandlerVersion": "1.10.3" } ], - "managedBy": "User" + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } } - } + }, + "operationId": "Extensions_Create", + "title": "Create Arc Extension" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutSecuritySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutSecuritySettings.json index 5ca8885793f7..8b7e5ceaab33 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutSecuritySettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutSecuritySettings.json @@ -1,72 +1,74 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", - "securitySettingsName": "default", "api-version": "2025-12-01-preview", + "clusterName": "myCluster", "resource": { "properties": { "securedCoreComplianceAssignment": "Audit", - "wdacComplianceAssignment": "ApplyAndAutoCorrect", - "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit" + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect" } - } + }, + "resourceGroupName": "test-rg", + "securitySettingsName": "default", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", "type": "Microsoft.AzureStackHCI/clusters/securitySettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", "properties": { + "provisioningState": "Succeeded", "securedCoreComplianceAssignment": "Audit", - "wdacComplianceAssignment": "ApplyAndAutoCorrect", - "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", "securityComplianceStatus": { - "securedCoreCompliance": "Compliant", - "wdacCompliance": "Compliant", "dataAtRestEncrypted": "Compliant", "dataInTransitProtected": "Compliant", - "lastUpdated": "2023-11-14T07:09:44.771Z" + "lastUpdated": "2023-11-14T07:09:44.771Z", + "securedCoreCompliance": "Compliant", + "wdacCompliance": "Compliant" }, - "provisioningState": "Succeeded" + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } }, "201": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", "type": "Microsoft.AzureStackHCI/clusters/securitySettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/securitySettings/default", "properties": { + "provisioningState": "Succeeded", "securedCoreComplianceAssignment": "Audit", - "wdacComplianceAssignment": "ApplyAndAutoCorrect", - "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", "securityComplianceStatus": { - "securedCoreCompliance": "Compliant", - "wdacCompliance": "Compliant", "dataAtRestEncrypted": "Compliant", "dataInTransitProtected": "Compliant", - "lastUpdated": "2023-11-14T07:09:44.771Z" + "lastUpdated": "2023-11-14T07:09:44.771Z", + "securedCoreCompliance": "Compliant", + "wdacCompliance": "Compliant" }, - "provisioningState": "Succeeded" + "smbEncryptionForIntraClusterTrafficComplianceAssignment": "Audit", + "wdacComplianceAssignment": "ApplyAndAutoCorrect" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } } - } + }, + "operationId": "SecuritySettings_CreateOrUpdate", + "title": "Create Security Settings" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutUpdateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutUpdateRuns.json index 4497680f6d6a..0496be2473a3 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutUpdateRuns.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutUpdateRuns.json @@ -1,30 +1,30 @@ { "parameters": { - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "updateName": "Microsoft4.2203.2.32", "updateRunName": "23b779ba-0d52-4a80-8571-45ca74664ec3", - "api-version": "2025-12-01-preview", "updateRunsProperties": { "properties": { "progress": { "name": "Unnamed step", "description": "Update Azure Stack.", - "errorMessage": "", - "status": "Success", - "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", "endTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "errorMessage": "", "lastUpdatedTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", "steps": [ { "name": "PreUpdate Cloud", "description": "Prepare for SSU update", - "errorMessage": "", - "status": "Success", - "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", "endTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "errorMessage": "", "lastUpdatedTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", "steps": [] } ] @@ -35,28 +35,28 @@ "responses": { "200": { "body": { - "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32/updateRuns/23b779ba-0d52-4a80-8571-45ca74664ec3", "name": "Microsoft4.2203.2.32/23b779ba-0d52-4a80-8571-45ca74664ec3", "type": "Microsoft.AzureStackHCI/updates/updateRuns", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32/updateRuns/23b779ba-0d52-4a80-8571-45ca74664ec3", "location": "West US", "properties": { "progress": { "name": "Unnamed step", "description": "Update Azure Stack.", - "errorMessage": "", - "status": "Success", - "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", "endTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "errorMessage": "", "lastUpdatedTimeUtc": "2022-04-06T13:58:42.969006+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", "steps": [ { "name": "PreUpdate Cloud", "description": "Prepare for SSU update", - "errorMessage": "", - "status": "Success", - "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", "endTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "errorMessage": "", "lastUpdatedTimeUtc": "2022-04-06T01:37:16.8728314+00:00", + "startTimeUtc": "2022-04-06T01:36:33.3876751+00:00", + "status": "Success", "steps": [] } ] @@ -64,5 +64,7 @@ } } } - } + }, + "operationId": "UpdateRuns_Put", + "title": "Get Update runs under cluster resource" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutUpdateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutUpdateSummaries.json index 674d61159aca..10d05914f6bf 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutUpdateSummaries.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutUpdateSummaries.json @@ -1,52 +1,54 @@ { "parameters": { - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "resourceGroupName": "testrg", - "clusterName": "testcluster", - "updateName": "Microsoft4.2203.2.32", "api-version": "2025-12-01-preview", + "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "updateLocationProperties": { "properties": { - "oemFamily": "DellEMC", + "currentVersion": "4.2203.2.32", "hardwareModel": "PowerEdge R730xd", "lastChecked": "2022-04-07T18:04:07Z", - "currentVersion": "4.2203.2.32", "lastUpdated": "2022-04-06T14:08:18.254Z", + "oemFamily": "DellEMC", "state": "AppliedSuccessfully" } - } + }, + "updateName": "Microsoft4.2203.2.32" }, "responses": { "200": { "body": { - "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updateSummaries/default", "name": "default", "type": "Microsoft.AzureStackHCI/updateSummaries", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updateSummaries/default", "location": "West US", "properties": { - "oemFamily": "DellEMC", + "currentVersion": "4.2203.2.32", "hardwareModel": "PowerEdge R730xd", + "oemFamily": "DellEMC", "packageVersions": [ { + "lastUpdated": "2022-04-07T18:04:07Z", "packageType": "OEM", - "version": "2.2.2108.6", - "lastUpdated": "2022-04-07T18:04:07Z" + "version": "2.2.2108.6" }, { + "lastUpdated": "2022-04-07T18:04:07Z", "packageType": "Services", - "version": "4.2203.2.32", - "lastUpdated": "2022-04-07T18:04:07Z" + "version": "4.2203.2.32" }, { + "lastUpdated": "2022-04-07T18:04:07Z", "packageType": "Infrastructure", - "version": "4.2203.2.32", - "lastUpdated": "2022-04-07T18:04:07Z" + "version": "4.2203.2.32" } ], - "currentVersion": "4.2203.2.32", "state": "AppliedSuccessfully" } } } - } + }, + "operationId": "UpdateSummaries_Put", + "title": "Put Update summaries under cluster resource" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutUpdates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutUpdates.json index 7ec10e6d2538..613910e56b5e 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutUpdates.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/PutUpdates.json @@ -1,71 +1,73 @@ { "parameters": { - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", "clusterName": "testcluster", + "resourceGroupName": "testrg", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "updateName": "Microsoft4.2203.2.32", - "api-version": "2025-12-01-preview", "updateProperties": { "properties": { - "installedDate": "2022-04-06T14:08:18.254Z", "description": "AzS Update 4.2203.2.32", - "state": "Installed", + "additionalProperties": "additional properties", + "availabilityType": "Local", + "displayName": "AzS Update - 4.2203.2.32", + "installedDate": "2022-04-06T14:08:18.254Z", + "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", + "packageSizeInMb": 18858, + "packageType": "Infrastructure", "prerequisites": [ { + "packageName": "update package name", "updateType": "update type", - "version": "prerequisite version", - "packageName": "update package name" + "version": "prerequisite version" } ], - "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", - "packageSizeInMb": 18858, - "displayName": "AzS Update - 4.2203.2.32", - "version": "4.2203.2.32", "publisher": "Microsoft", "releaseLink": "https://docs.microsoft.com/azure-stack/operator/release-notes?view=azs-2203", - "availabilityType": "Local", - "packageType": "Infrastructure", + "state": "Installed", "updateStateProperties": { "notifyMessage": "Brief message with instructions for updates of AvailabilityType Notify", "progressPercentage": 0 }, - "additionalProperties": "additional properties" + "version": "4.2203.2.32" } } }, "responses": { "200": { "body": { - "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32", "name": "Microsoft4.2203.2.32", "type": "Microsoft.AzureStackHCI/updates", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/resourceGroups/testrg/providers/Microsoft.AzureStackHCI/clusters/testcluster/updates/Microsoft4.2203.2.32", "location": "West US", "properties": { - "installedDate": "2022-04-06T14:08:18.254Z", "description": "AzS Update 4.2203.2.32", - "state": "Installed", + "additionalProperties": "additional properties", + "availabilityType": "Local", + "displayName": "AzS Update - 4.2203.2.32", + "installedDate": "2022-04-06T14:08:18.254Z", + "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", + "packageSizeInMb": 18858, + "packageType": "Infrastructure", "prerequisites": [ { + "packageName": "update package name", "updateType": "update type", - "version": "prerequisite version", - "packageName": "update package name" + "version": "prerequisite version" } ], - "packagePath": "\\\\SU1FileServer\\SU1_Infrastructure_2\\Updates\\Packages\\Microsoft4.2203.2.32", - "packageSizeInMb": 18858, - "displayName": "AzS Update - 4.2203.2.32", - "version": "4.2203.2.32", "publisher": "Microsoft", "releaseLink": "https://docs.microsoft.com/azure-stack/operator/release-notes?view=azs-2203", - "availabilityType": "Local", - "packageType": "Infrastructure", + "state": "Installed", "updateStateProperties": { "notifyMessage": "Brief message with instructions for updates of AvailabilityType Notify", "progressPercentage": 0 }, - "additionalProperties": "additional properties" + "version": "4.2203.2.32" } } } - } + }, + "operationId": "Updates_Put", + "title": "Put a specific update" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/TriggerLogCollection.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/TriggerLogCollection.json index ebe9ed019518..6d5c770b4fd6 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/TriggerLogCollection.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/TriggerLogCollection.json @@ -1,95 +1,97 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "mycluster", "api-version": "2025-12-01-preview", + "clusterName": "mycluster", "logCollectionRequest": { "properties": { "fromDate": "2020-01-01T17:18:19.1234567Z", "toDate": "2021-01-01T17:18:19.1234567Z" } - } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { - "202": { - "headers": { - "location": "https://foo.com/operationStatuses" - } - }, "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "name": "myCluster", "type": "Microsoft.AzureStackHCI/clusters", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "location": "East US", - "tags": {}, - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2020-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" - }, "properties": { - "provisioningState": "Succeeded", - "status": "ConnectedRecently", - "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", - "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "aadClientId": "24a6e53d-04e5-44d2-b7cc-1b732a847dfc", "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "a3c0468f-e38e-4dda-ac48-817f620536f0", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "desiredProperties": { - "windowsServerSubscription": "Enabled", - "diagnosticLevel": "Basic" + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", "logCollectionProperties": { "fromDate": "2020-01-01T17:18:19.1234567Z", - "toDate": "2021-01-01T17:18:19.1234567Z", "lastLogGenerated": "2020-01-01T17:18:19.1234567Z", "logCollectionSessionDetails": [ { - "logStartTime": "2020-01-01T17:18:19.1234567Z", - "logEndTime": "2020-01-01T17:18:19.1234567Z", - "timeCollected": "2020-01-01T17:18:19.1234567Z", - "logSize": 1000, - "logCollectionStatus": "Succeeded", "correlationId": "a76ab33a-1819-4e82-1212-e3e4ec3d1425", + "endTimeCollected": "2020-01-01T17:25:19.1234567Z", "logCollectionJobType": "OnDemand", - "endTimeCollected": "2020-01-01T17:25:19.1234567Z" + "logCollectionStatus": "Succeeded", + "logEndTime": "2020-01-01T17:18:19.1234567Z", + "logSize": 1000, + "logStartTime": "2020-01-01T17:18:19.1234567Z", + "timeCollected": "2020-01-01T17:18:19.1234567Z" } - ] + ], + "toDate": "2021-01-01T17:18:19.1234567Z" }, + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", "reportedProperties": { - "clusterName": "cluster1", "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", + "clusterName": "cluster1", "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", "nodes": [ { "name": "Node1", + "coreCount": 8, "id": 1, - "windowsServerSubscription": "Enabled", - "nodeType": "ThirdParty", "manufacturer": "Dell Inc.", + "memoryInGiB": 128, "model": "EMC AX740", + "nodeType": "ThirdParty", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q45CZC3", - "coreCount": 8, - "memoryInGiB": 128 + "windowsServerSubscription": "Enabled" } - ], - "lastUpdated": "2020-03-11T19:24:42.1946017Z", - "imdsAttestation": "Disabled", - "diagnosticLevel": "Basic" + ] }, - "trialDaysRemaining": 30, - "billingModel": "Trial", - "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" - } + "status": "ConnectedRecently", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": {} + } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" } } - } + }, + "operationId": "Clusters_TriggerLogCollection", + "title": "Trigger Log Collection" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/UpdateCluster.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/UpdateCluster.json index 4a8faa401800..c318f2654ccb 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/UpdateCluster.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/UpdateCluster.json @@ -1,126 +1,128 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", "api-version": "2025-12-01-preview", "cluster": { - "tags": { - "tag1": "value1", - "tag2": "value2" + "identity": { + "type": "SystemAssigned" }, "properties": { "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "desiredProperties": { - "windowsServerSubscription": "Enabled", - "diagnosticLevel": "Basic" + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" } }, - "identity": { - "type": "SystemAssigned" + "tags": { + "tag1": "value1", + "tag2": "value2" } - } + }, + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "name": "myCluster", "type": "Microsoft.AzureStackHCI/clusters", - "location": "East US", + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster", "identity": { + "type": "SystemAssigned", "principalId": "87a834db-2e45-409e-911b-e16a44562ec3", - "tenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", - "type": "SystemAssigned" - }, - "tags": { - "tag1": "value1", - "tag2": "value2" - }, - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2020-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2020-01-02T17:18:19.1234567Z" + "tenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94" }, + "location": "East US", "properties": { - "provisioningState": "Succeeded", - "status": "ConnectedRecently", - "connectivityStatus": "Connected", - "supportStatus": "InSupport", - "cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd", - "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", "aadClientId": "515da1c2-379e-49b4-9975-09e3e40c86be", "aadTenantId": "7e589cc1-a8b6-4dff-91bd-5ec0fa18db94", + "billingModel": "Trial", + "cloudId": "91c2b355-4826-4e96-9164-e3f26dcf1cdd", + "cloudManagementEndpoint": "https://98294836-31be-4668-aeae-698667faf99b.waconazure.com", + "connectivityStatus": "Connected", "desiredProperties": { - "windowsServerSubscription": "Enabled", - "diagnosticLevel": "Basic" + "diagnosticLevel": "Basic", + "windowsServerSubscription": "Enabled" }, "isolatedVmAttestationConfiguration": { "attestationResourceId": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.Attestation/attestationProviders/testmaa", - "relyingPartyServiceEndpoint": "https://azurestackhci.azurefd.net/eastus", - "attestationServiceEndpoint": "https://dantestnoauth01.eus.attest.azure.net" + "attestationServiceEndpoint": "https://dantestnoauth01.eus.attest.azure.net", + "relyingPartyServiceEndpoint": "https://azurestackhci.azurefd.net/eastus" }, + "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z", + "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", + "provisioningState": "Succeeded", + "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", "reportedProperties": { - "clusterName": "cluster1", "clusterId": "a76ac23a-1819-4e82-9410-e3e4ec3d1425", - "clusterVersion": "10.0.17777", + "clusterName": "cluster1", "clusterType": "ThirdParty", + "clusterVersion": "10.0.17777", + "diagnosticLevel": "Basic", + "imdsAttestation": "Disabled", + "lastUpdated": "2020-03-11T19:24:42.1946017Z", "manufacturer": "Dell Inc.", "nodes": [ { "name": "Node1", + "coreCount": 8, "id": 1, - "windowsServerSubscription": "Enabled", + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", "manufacturer": "Dell Inc.", + "memoryInGiB": 128, "model": "EMC AX740", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q45CZC3", - "coreCount": 8, - "memoryInGiB": 128, - "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z" + "windowsServerSubscription": "Enabled" }, { "name": "Node2", + "coreCount": 8, "id": 2, - "windowsServerSubscription": "Enabled", + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", "manufacturer": "Dell Inc.", + "memoryInGiB": 128, "model": "EMC AX740", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q44BSC3", - "coreCount": 8, - "memoryInGiB": 128, - "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z" + "windowsServerSubscription": "Enabled" }, { "name": "Node3", + "coreCount": 16, "id": 3, - "windowsServerSubscription": "Enabled", + "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z", "manufacturer": "Dell Inc.", + "memoryInGiB": 256, "model": "EMC AX740", "osName": "Azure Stack HCI", "osVersion": "10.0.17777.1061", "serialNumber": "Q44RFC3", - "coreCount": 16, - "memoryInGiB": 256, - "lastLicensingTimestamp": "2020-03-11T19:24:42.1946017Z" + "windowsServerSubscription": "Enabled" } - ], - "lastUpdated": "2020-03-11T19:24:42.1946017Z", - "imdsAttestation": "Disabled", - "diagnosticLevel": "Basic" + ] }, - "trialDaysRemaining": 30, - "billingModel": "Trial", - "registrationTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastSyncTimestamp": "2020-03-11T20:44:32.5625121Z", - "lastBillingTimestamp": "2020-03-12T08:12:55.2312022Z" + "status": "ConnectedRecently", + "supportStatus": "InSupport", + "trialDaysRemaining": 30 + }, + "systemData": { + "createdAt": "2020-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2020-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" + }, + "tags": { + "tag1": "value1", + "tag2": "value2" } } } - } + }, + "operationId": "Clusters_Update", + "title": "Update cluster" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/UploadCertificate.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/UploadCertificate.json index 927b7f7bcc9c..5faa159ce506 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/UploadCertificate.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/UploadCertificate.json @@ -1,9 +1,9 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", "api-version": "2025-12-01-preview", + "clusterName": "myCluster", + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", "uploadCertificateRequest": { "properties": { "certificates": [ @@ -19,5 +19,7 @@ "location": "https://foo.com/operationStatuses" } } - } + }, + "operationId": "Clusters_UploadCertificate", + "title": "Upload certificate" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ValidateEdgeDevices.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ValidateEdgeDevices.json index 47a201b601bd..a17b7da62cfd 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ValidateEdgeDevices.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ValidateEdgeDevices.json @@ -1,26 +1,28 @@ { "parameters": { - "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", - "edgeDeviceName": "default", - "api-version": "2025-12-01-preview", "ValidateRequest": { + "additionalInfo": "test", "edgeDeviceIds": [ "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1/edgeDevices/default", "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2/edgeDevices/default" - ], - "additionalInfo": "test" - } + ] + }, + "api-version": "2025-12-01-preview", + "edgeDeviceName": "default", + "resourceUri": "subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1" }, "responses": { - "202": { - "headers": { - "location": "https://foo.com/operationStatuses" - } - }, "200": { "body": { "status": "success" } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } } - } + }, + "operationId": "EdgeDevices_Validate", + "title": "Validate Edge Devices" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ValidatedSolutionRecipes_Get.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ValidatedSolutionRecipes_Get.json index 2947d32bd172..88c34ea5116b 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ValidatedSolutionRecipes_Get.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ValidatedSolutionRecipes_Get.json @@ -1,15 +1,18 @@ { - "title": "ValidatedSolutionRecipes_Get", "operationId": "ValidatedSolutionRecipes_Get", "parameters": { "api-version": "2025-12-01-preview", - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "location": "westus2", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", "validatedSolutionRecipeName": "10.2408.0" }, + "title": "ValidatedSolutionRecipes_Get", "responses": { "200": { "body": { + "name": "10.2408.0", + "type": "Microsoft.AzureStackHCI/ValidatedSolutionRecipes", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/providers/Microsoft.AzureStackHCI/validatedSolutionRecipes/10.2408.0", "properties": { "recipeContent": { "info": { @@ -38,152 +41,152 @@ { "name": "ComposedImage", "type": "Platform", - "requiredVersion": "10.2411.0.4027", "installOrder": 10, - "tags": [ - "Azure" - ], "payloads": [ { - "identifier": "ComposedImage_ISO", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "ComposedImage_ISO.iso", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "ComposedImage_ISO", "url": "http://foo.bar.com" }, { - "identifier": "ComposedImage_TargetOSBundle", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "ComposedImage_TargetOSBundle.iso", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "ComposedImage_TargetOSBundle", "url": "http://foo.bar.com" } + ], + "requiredVersion": "10.2411.0.4027", + "tags": [ + "Azure" ] }, { "name": "PlatformUpdate", "type": "Platform", - "requiredVersion": "10.2411.0.4027", "installOrder": 15, - "tags": [ - "Azure" - ], "payloads": [ { - "identifier": "PlatformUpdatePackage_zip", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "PlatformUpdatePackage_zip.zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "PlatformUpdatePackage_zip", "url": "http://foo.bar.com" } + ], + "requiredVersion": "10.2411.0.4027", + "tags": [ + "Azure" ] }, { "name": "CloudDeployment", "type": "Services", - "requiredVersion": "22.2411.0.9027", "installOrder": 20, - "tags": [ - "Azure" - ], "payloads": [ { - "identifier": "CloudDeployment_zip", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "CloudDeployment_zip.zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "CloudDeployment_zip", "url": "http://foo.bar.com" }, { - "identifier": "VerifyCloudDeployment_ps1", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "VerifyCloudDeployment_ps1.ps1", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "VerifyCloudDeployment_ps1", "url": "http://foo.bar.com" }, { - "identifier": "BootstrapCloudDeploymentTool_ps1", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "BootstrapCloudDeploymentTool_ps1.ps1", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "BootstrapCloudDeploymentTool_ps1", "url": "http://foo.bar.com" } + ], + "requiredVersion": "22.2411.0.9027", + "tags": [ + "Azure" ] }, { "name": "ServicesUpdate", "type": "Services", - "requiredVersion": "22.2411.0.9027", "installOrder": 25, - "tags": [ - "Azure" - ], "payloads": [ { - "identifier": "Services_zip", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "Services_zip.zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "Services_zip", "url": "http://foo.bar.com" } + ], + "requiredVersion": "22.2411.0.9027", + "tags": [ + "Azure" ] }, { "name": "AzureEdgeTelemetryAndDiagnostics", "type": "ArcExtension", "installOrder": 80, - "tags": [ - "Azure" - ], "metadata": { - "extensionType": "TelemetryAndDiagnostics", - "publisher": "Microsoft.AzureStack.Observability", "enableAutomaticUpgrade": true, - "lcmUpdate": false - } + "extensionType": "TelemetryAndDiagnostics", + "lcmUpdate": false, + "publisher": "Microsoft.AzureStack.Observability" + }, + "tags": [ + "Azure" + ] }, { "name": "AzureEdgeRemoteSupport", "type": "ArcExtension", "installOrder": 81, - "tags": [ - "Azure" - ], "metadata": { - "extensionType": "EdgeRemoteSupport", - "publisher": "Microsoft.AzureStack.Observability", "enableAutomaticUpgrade": true, - "lcmUpdate": false - } + "extensionType": "EdgeRemoteSupport", + "lcmUpdate": false, + "publisher": "Microsoft.AzureStack.Observability" + }, + "tags": [ + "Azure" + ] }, { "name": "AzureEdgeDeviceManagement", "type": "ArcExtension", - "requiredVersion": "1.2408.0.3024", "installOrder": 82, - "tags": [ - "Azure" - ], "metadata": { - "extensionType": "DeviceManagementExtension", - "publisher": "Microsoft.Edge", "enableAutomaticUpgrade": false, - "lcmUpdate": false - } + "extensionType": "DeviceManagementExtension", + "lcmUpdate": false, + "publisher": "Microsoft.Edge" + }, + "requiredVersion": "1.2408.0.3024", + "tags": [ + "Azure" + ] }, { "name": "AzureEdgeLifecycleManager", "type": "ArcExtension", - "requiredVersion": "30.2408.2.687", "installOrder": 83, - "tags": [ - "Azure" - ], "metadata": { - "extensionType": "LcmController", - "publisher": "Microsoft.AzureStack.Orchestration", "enableAutomaticUpgrade": false, - "lcmUpdate": false - } + "extensionType": "LcmController", + "lcmUpdate": false, + "publisher": "Microsoft.AzureStack.Orchestration" + }, + "requiredVersion": "30.2408.2.687", + "tags": [ + "Azure" + ] }, { "name": "arcappliance", "type": "AzCliExtension", - "requiredVersion": "1.3.0", "installOrder": 210, + "requiredVersion": "1.3.0", "tags": [ "Azure" ] @@ -191,8 +194,8 @@ { "name": "arcappliance", "type": "AzCliExtension", - "requiredVersion": "1.3.0", "installOrder": 211, + "requiredVersion": "1.3.0", "tags": [ "Azure.local" ] @@ -200,8 +203,8 @@ { "name": "k8s-extension", "type": "AzCliExtension", - "requiredVersion": "1.4.5", "installOrder": 220, + "requiredVersion": "1.4.5", "tags": [ "Azure", "Azure.local" @@ -210,8 +213,8 @@ { "name": "customlocation", "type": "AzCliExtension", - "requiredVersion": "0.1.3", "installOrder": 230, + "requiredVersion": "0.1.3", "tags": [ "Azure", "Azure.local" @@ -220,21 +223,21 @@ { "name": "stack-hci-vm", "type": "AzCliExtension", - "requiredVersion": "1.4.2", "installOrder": 240, + "metadata": { + "previewSource": "https://hciarcvmsstorage.z13.web.core.windows.net/cli-extensions/stack_hci_vm-1.4.2-py3-none-any.whl" + }, + "requiredVersion": "1.4.2", "tags": [ "Azure", "Azure.local" - ], - "metadata": { - "previewSource": "https://hciarcvmsstorage.z13.web.core.windows.net/cli-extensions/stack_hci_vm-1.4.2-py3-none-any.whl" - } + ] }, { "name": "connectedk8s", "type": "AzCliExtension", - "requiredVersion": "1.6.2", "installOrder": 270, + "requiredVersion": "1.6.2", "tags": [ "Azure", "Azure.local" @@ -243,21 +246,21 @@ { "name": "MocNodeAndClusteredService", "type": "MocServiceBinaries", - "requiredVersion": "1.9.0.11008", "installOrder": 300, - "tags": [ - "Azure" - ], "metadata": { "catalog": "aks-hci-asz-stable-catalogs-int", "ring": "monthly" - } + }, + "requiredVersion": "1.9.0.11008", + "tags": [ + "Azure" + ] }, { "name": "ArcResourceBridgeVM", "type": "ArcResourceBridge", - "requiredVersion": "1.3.0", "installOrder": 400, + "requiredVersion": "1.3.0", "tags": [ "Azure" ] @@ -265,67 +268,67 @@ { "name": "vmss-hci", "type": "ArbVmExtension", - "requiredVersion": "5.4.3", "installOrder": 410, - "tags": [ - "Azure" - ], "metadata": { "releaseTrain": "prerelease" - } + }, + "requiredVersion": "5.4.3", + "tags": [ + "Azure" + ] }, { "name": "vmss-hci", "type": "ArbVmExtension", "installOrder": 411, - "tags": [ - "Azure.local" - ], "metadata": { "releaseTrain": "prerelease" - } + }, + "tags": [ + "Azure.local" + ] }, { "name": "hybridaksextension", "type": "ArbVmExtension", - "requiredVersion": "2.0.129", "installOrder": 420, - "tags": [ - "Azure" - ], "metadata": { "releaseTrain": "stable" - } + }, + "requiredVersion": "2.0.129", + "tags": [ + "Azure" + ] }, { "name": "hybridaksextension", "type": "ArbVmExtension", "installOrder": 421, - "tags": [ - "Azure.local" - ], "metadata": { "releaseTrain": "stable" - } + }, + "tags": [ + "Azure.local" + ] }, { "name": "InfraVmImage23H2", "type": "InfraVmImage", "installOrder": 430, - "tags": [ - "Azure" - ], "metadata": { - "link": "https://aka.ms/infrahcios23", "name": "AzureStackHCI_25398.469.231004-1141_zn_release_en-us.iso", - "expectedHash": "140D2A6BC53DADCCB9FB66B0D6D2EF61C9D23EA937F8CCC62788866D02997BCA" - } + "expectedHash": "140D2A6BC53DADCCB9FB66B0D6D2EF61C9D23EA937F8CCC62788866D02997BCA", + "link": "https://aka.ms/infrahcios23" + }, + "tags": [ + "Azure" + ] }, { "name": "Az.StackHCI", "type": "PowerShell", - "requiredVersion": "2.4.1", "installOrder": 40, + "requiredVersion": "2.4.1", "tags": [ "Azure.local" ] @@ -334,16 +337,13 @@ }, "signature": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6" }, - "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/providers/Microsoft.AzureStackHCI/validatedSolutionRecipes/10.2408.0", - "name": "10.2408.0", - "type": "Microsoft.AzureStackHCI/ValidatedSolutionRecipes", "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", "createdBy": "zsnvvvbj", "createdByType": "User", - "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", "lastModifiedBy": "qxlrx", - "lastModifiedByType": "User", - "lastModifiedAt": "2024-07-01T17:02:21.168Z" + "lastModifiedByType": "User" } } } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json index 95aef6014ca4..c9697e0c294e 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json @@ -1,16 +1,20 @@ { - "title": "ValidatedSolutionRecipes_ListBySubscriptionLocationResource", "operationId": "ValidatedSolutionRecipes_ListBySubscriptionLocationResource", "parameters": { "api-version": "2025-12-01-preview", - "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712", - "location": "westus2" + "location": "westus2", + "subscriptionId": "b8d594e5-51f3-4c11-9c54-a7771b81c712" }, + "title": "ValidatedSolutionRecipes_ListBySubscriptionLocationResource", "responses": { "200": { "body": { + "nextLink": "https://microsoft.com/a", "value": [ { + "name": "10.2408.0", + "type": "Microsoft.AzureStackHCI/ValidatedSolutionRecipes", + "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/providers/Microsoft.AzureStackHCI/validatedSolutionRecipes/10.2408.0", "properties": { "recipeContent": { "info": { @@ -39,152 +43,152 @@ { "name": "ComposedImage", "type": "Platform", - "requiredVersion": "10.2411.0.4027", "installOrder": 10, - "tags": [ - "Azure" - ], "payloads": [ { - "identifier": "ComposedImage_ISO", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "ComposedImage_ISO.iso", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "ComposedImage_ISO", "url": "http://foo.bar.com" }, { - "identifier": "ComposedImage_TargetOSBundle", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "ComposedImage_TargetOSBundle.iso", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "ComposedImage_TargetOSBundle", "url": "http://foo.bar.com" } + ], + "requiredVersion": "10.2411.0.4027", + "tags": [ + "Azure" ] }, { "name": "PlatformUpdate", "type": "Platform", - "requiredVersion": "10.2411.0.4027", "installOrder": 15, - "tags": [ - "Azure" - ], "payloads": [ { - "identifier": "PlatformUpdatePackage_zip", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "PlatformUpdatePackage_zip.zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "PlatformUpdatePackage_zip", "url": "http://foo.bar.com" } + ], + "requiredVersion": "10.2411.0.4027", + "tags": [ + "Azure" ] }, { "name": "CloudDeployment", "type": "Services", - "requiredVersion": "22.2411.0.9027", "installOrder": 20, - "tags": [ - "Azure" - ], "payloads": [ { - "identifier": "CloudDeployment_zip", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "CloudDeployment_zip.zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "CloudDeployment_zip", "url": "http://foo.bar.com" }, { - "identifier": "VerifyCloudDeployment_ps1", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "VerifyCloudDeployment_ps1.ps1", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "VerifyCloudDeployment_ps1", "url": "http://foo.bar.com" }, { - "identifier": "BootstrapCloudDeploymentTool_ps1", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "BootstrapCloudDeploymentTool_ps1.ps1", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "BootstrapCloudDeploymentTool_ps1", "url": "http://foo.bar.com" } + ], + "requiredVersion": "22.2411.0.9027", + "tags": [ + "Azure" ] }, { "name": "ServicesUpdate", "type": "Services", - "requiredVersion": "22.2411.0.9027", "installOrder": 25, - "tags": [ - "Azure" - ], "payloads": [ { - "identifier": "Services_zip", - "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", "fileName": "Services_zip.zip", + "hash": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6", + "identifier": "Services_zip", "url": "http://foo.bar.com" } + ], + "requiredVersion": "22.2411.0.9027", + "tags": [ + "Azure" ] }, { "name": "AzureEdgeTelemetryAndDiagnostics", "type": "ArcExtension", "installOrder": 80, - "tags": [ - "Azure" - ], "metadata": { - "extensionType": "TelemetryAndDiagnostics", - "publisher": "Microsoft.AzureStack.Observability", "enableAutomaticUpgrade": true, - "lcmUpdate": false - } + "extensionType": "TelemetryAndDiagnostics", + "lcmUpdate": false, + "publisher": "Microsoft.AzureStack.Observability" + }, + "tags": [ + "Azure" + ] }, { "name": "AzureEdgeRemoteSupport", "type": "ArcExtension", "installOrder": 81, - "tags": [ - "Azure" - ], "metadata": { - "extensionType": "EdgeRemoteSupport", - "publisher": "Microsoft.AzureStack.Observability", "enableAutomaticUpgrade": true, - "lcmUpdate": false - } + "extensionType": "EdgeRemoteSupport", + "lcmUpdate": false, + "publisher": "Microsoft.AzureStack.Observability" + }, + "tags": [ + "Azure" + ] }, { "name": "AzureEdgeDeviceManagement", "type": "ArcExtension", - "requiredVersion": "1.2408.0.3024", "installOrder": 82, - "tags": [ - "Azure" - ], "metadata": { - "extensionType": "DeviceManagementExtension", - "publisher": "Microsoft.Edge", "enableAutomaticUpgrade": false, - "lcmUpdate": false - } + "extensionType": "DeviceManagementExtension", + "lcmUpdate": false, + "publisher": "Microsoft.Edge" + }, + "requiredVersion": "1.2408.0.3024", + "tags": [ + "Azure" + ] }, { "name": "AzureEdgeLifecycleManager", "type": "ArcExtension", - "requiredVersion": "30.2408.2.687", "installOrder": 83, - "tags": [ - "Azure" - ], "metadata": { - "extensionType": "LcmController", - "publisher": "Microsoft.AzureStack.Orchestration", "enableAutomaticUpgrade": false, - "lcmUpdate": false - } + "extensionType": "LcmController", + "lcmUpdate": false, + "publisher": "Microsoft.AzureStack.Orchestration" + }, + "requiredVersion": "30.2408.2.687", + "tags": [ + "Azure" + ] }, { "name": "arcappliance", "type": "AzCliExtension", - "requiredVersion": "1.3.0", "installOrder": 210, + "requiredVersion": "1.3.0", "tags": [ "Azure" ] @@ -192,8 +196,8 @@ { "name": "arcappliance", "type": "AzCliExtension", - "requiredVersion": "1.3.0", "installOrder": 211, + "requiredVersion": "1.3.0", "tags": [ "Azure.local" ] @@ -201,8 +205,8 @@ { "name": "k8s-extension", "type": "AzCliExtension", - "requiredVersion": "1.4.5", "installOrder": 220, + "requiredVersion": "1.4.5", "tags": [ "Azure", "Azure.local" @@ -211,8 +215,8 @@ { "name": "customlocation", "type": "AzCliExtension", - "requiredVersion": "0.1.3", "installOrder": 230, + "requiredVersion": "0.1.3", "tags": [ "Azure", "Azure.local" @@ -221,21 +225,21 @@ { "name": "stack-hci-vm", "type": "AzCliExtension", - "requiredVersion": "1.4.2", "installOrder": 240, + "metadata": { + "previewSource": "https://hciarcvmsstorage.z13.web.core.windows.net/cli-extensions/stack_hci_vm-1.4.2-py3-none-any.whl" + }, + "requiredVersion": "1.4.2", "tags": [ "Azure", "Azure.local" - ], - "metadata": { - "previewSource": "https://hciarcvmsstorage.z13.web.core.windows.net/cli-extensions/stack_hci_vm-1.4.2-py3-none-any.whl" - } + ] }, { "name": "connectedk8s", "type": "AzCliExtension", - "requiredVersion": "1.6.2", "installOrder": 270, + "requiredVersion": "1.6.2", "tags": [ "Azure", "Azure.local" @@ -244,21 +248,21 @@ { "name": "MocNodeAndClusteredService", "type": "MocServiceBinaries", - "requiredVersion": "1.9.0.11008", "installOrder": 300, - "tags": [ - "Azure" - ], "metadata": { "catalog": "aks-hci-asz-stable-catalogs-int", "ring": "monthly" - } + }, + "requiredVersion": "1.9.0.11008", + "tags": [ + "Azure" + ] }, { "name": "ArcResourceBridgeVM", "type": "ArcResourceBridge", - "requiredVersion": "1.3.0", "installOrder": 400, + "requiredVersion": "1.3.0", "tags": [ "Azure" ] @@ -266,67 +270,67 @@ { "name": "vmss-hci", "type": "ArbVmExtension", - "requiredVersion": "5.4.3", "installOrder": 410, - "tags": [ - "Azure" - ], "metadata": { "releaseTrain": "prerelease" - } + }, + "requiredVersion": "5.4.3", + "tags": [ + "Azure" + ] }, { "name": "vmss-hci", "type": "ArbVmExtension", "installOrder": 411, - "tags": [ - "Azure.local" - ], "metadata": { "releaseTrain": "prerelease" - } + }, + "tags": [ + "Azure.local" + ] }, { "name": "hybridaksextension", "type": "ArbVmExtension", - "requiredVersion": "2.0.129", "installOrder": 420, - "tags": [ - "Azure" - ], "metadata": { "releaseTrain": "stable" - } + }, + "requiredVersion": "2.0.129", + "tags": [ + "Azure" + ] }, { "name": "hybridaksextension", "type": "ArbVmExtension", "installOrder": 421, - "tags": [ - "Azure.local" - ], "metadata": { "releaseTrain": "stable" - } + }, + "tags": [ + "Azure.local" + ] }, { "name": "InfraVmImage23H2", "type": "InfraVmImage", "installOrder": 430, - "tags": [ - "Azure" - ], "metadata": { - "link": "https://aka.ms/infrahcios23", "name": "AzureStackHCI_25398.469.231004-1141_zn_release_en-us.iso", - "expectedHash": "140D2A6BC53DADCCB9FB66B0D6D2EF61C9D23EA937F8CCC62788866D02997BCA" - } + "expectedHash": "140D2A6BC53DADCCB9FB66B0D6D2EF61C9D23EA937F8CCC62788866D02997BCA", + "link": "https://aka.ms/infrahcios23" + }, + "tags": [ + "Azure" + ] }, { "name": "Az.StackHCI", "type": "PowerShell", - "requiredVersion": "2.4.1", "installOrder": 40, + "requiredVersion": "2.4.1", "tags": [ "Azure.local" ] @@ -335,20 +339,16 @@ }, "signature": "9542EB842C768EC8215578A98C04C2FC0E1AAE750C8DECE362226C8C4488E8A6" }, - "id": "/subscriptions/b8d594e5-51f3-4c11-9c54-a7771b81c712/providers/Microsoft.AzureStackHCI/validatedSolutionRecipes/10.2408.0", - "name": "10.2408.0", - "type": "Microsoft.AzureStackHCI/ValidatedSolutionRecipes", "systemData": { + "createdAt": "2024-07-01T17:02:21.168Z", "createdBy": "zsnvvvbj", "createdByType": "User", - "createdAt": "2024-07-01T17:02:21.168Z", + "lastModifiedAt": "2024-07-01T17:02:21.168Z", "lastModifiedBy": "qxlrx", - "lastModifiedByType": "User", - "lastModifiedAt": "2024-07-01T17:02:21.168Z" + "lastModifiedByType": "User" } } - ], - "nextLink": "https://microsoft.com/a" + ] } } } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/reconcileArcSettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/reconcileArcSettings.json index d5dba7b98280..c80f0f2bbcd6 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/reconcileArcSettings.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/examples/reconcileArcSettings.json @@ -1,9 +1,8 @@ { "parameters": { - "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b", - "resourceGroupName": "test-rg", - "clusterName": "myCluster", + "api-version": "2025-12-01-preview", "arcSettingName": "default", + "clusterName": "myCluster", "reconcileArcSettingsRequest": { "properties": { "clusterNodes": [ @@ -12,65 +11,68 @@ ] } }, - "api-version": "2025-12-01-preview" + "resourceGroupName": "test-rg", + "subscriptionId": "fd3c3665-1729-4b7b-9a38-238e83b0f98b" }, "responses": { - "202": { - "headers": { - "location": "https://foo.com/operationStatuses" - } - }, "200": { "body": { - "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", "type": "Microsoft.AzureStackHCI/clusters/arcSettings", - "systemData": { - "createdBy": "user1", - "createdByType": "User", - "createdAt": "2021-01-01T17:18:19.1234567Z", - "lastModifiedBy": "user2", - "lastModifiedByType": "User", - "lastModifiedAt": "2021-01-02T17:18:19.1234567Z" - }, + "id": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/test-rg/providers/Microsoft.AzureStackHCI/clusters/myCluster/arcSettings/default", "properties": { - "provisioningState": "Succeeded", - "arcInstanceResourceGroup": "ArcInstance-rg", "aggregateState": "Creating", + "arcInstanceResourceGroup": "ArcInstance-rg", "connectivityProperties": { "enabled": true, "serviceConfigurations": [ { - "serviceName": "WAC", - "port": 6516 + "port": 6516, + "serviceName": "WAC" } ] }, + "defaultExtensions": [ + { + "category": "Telemetry", + "consentTime": "2023-01-01T17:18:19.1234567Z" + }, + { + "category": "Supportability", + "consentTime": null + } + ], "perNodeDetails": [ { "name": "Node-1", "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-1", - "state": "Succeeded", - "arcNodeServicePrincipalObjectId": "00cc4014-482e-4de9-9932-83415cc75f45" + "arcNodeServicePrincipalObjectId": "00cc4014-482e-4de9-9932-83415cc75f45", + "state": "Succeeded" }, { "name": "Node-2", "arcInstance": "/subscriptions/fd3c3665-1729-4b7b-9a38-238e83b0f98b/resourceGroups/ArcInstance-rg/providers/Microsoft.HybridCompute/machines/Node-2", - "state": "Succeeded", - "arcNodeServicePrincipalObjectId": "00cc4014-482e-4de9-9932-83415cc75f45" + "arcNodeServicePrincipalObjectId": "00cc4014-482e-4de9-9932-83415cc75f45", + "state": "Succeeded" } ], - "defaultExtensions": [ - { - "category": "Telemetry", - "consentTime": "2023-01-01T17:18:19.1234567Z" - }, - { - "category": "Supportability", - "consentTime": null - } - ] + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-01-01T17:18:19.1234567Z", + "createdBy": "user1", + "createdByType": "User", + "lastModifiedAt": "2021-01-02T17:18:19.1234567Z", + "lastModifiedBy": "user2", + "lastModifiedByType": "User" } } + }, + "202": { + "headers": { + "location": "https://foo.com/operationStatuses" + } } - } + }, + "operationId": "ArcSettings_Reconcile", + "title": "Reconcile Arc Settings" } diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/extensions.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/extensions.json deleted file mode 100644 index 857249565b14..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/extensions.json +++ /dev/null @@ -1,1002 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-12-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions": { - "get": { - "operationId": "Extensions_ListByArcSetting", - "description": "List all Extensions under ArcSetting resource.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ExtensionList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Extensions under ArcSetting resource": { - "$ref": "./examples/ListExtensionsByArcSetting.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions/{extensionName}": { - "get": { - "operationId": "Extensions_Get", - "description": "Get particular Arc Extension of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "#/parameters/ExtensionNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Extension" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get ArcSettings Extension": { - "$ref": "./examples/GetExtension.json" - } - } - }, - "put": { - "operationId": "Extensions_Create", - "description": "Create Extension for HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "#/parameters/ExtensionNameParameter" - }, - { - "name": "extension", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/Extension" - }, - "description": "Details of the Machine Extension to be created." - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "Succeeded", - "schema": { - "$ref": "#/definitions/Extension" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/Extension" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Create Arc Extension": { - "$ref": "./examples/PutExtension.json" - } - } - }, - "patch": { - "operationId": "Extensions_Update", - "description": "Update Extension for HCI cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "#/parameters/ExtensionNameParameter" - }, - { - "name": "extension", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ExtensionPatch" - }, - "description": "Details of the Machine Extension to be created." - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Extension" - } - }, - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "original-uri" - }, - "x-ms-examples": { - "Update Arc Extension": { - "$ref": "./examples/PatchExtension.json" - } - } - }, - "delete": { - "operationId": "Extensions_Delete", - "description": "Delete particular Arc Extension of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "#/parameters/ExtensionNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "OK" - }, - "204": { - "description": "OK" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Delete Arc Extension": { - "$ref": "./examples/DeleteExtension.json" - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions/{extensionName}/upgrade": { - "post": { - "operationId": "Extensions_Upgrade", - "description": "Upgrade a particular Arc Extension of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/ArcSettingNameParameter" - }, - { - "$ref": "#/parameters/ExtensionNameParameter" - }, - { - "name": "extensionUpgradeParameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/ExtensionUpgradeParameters" - }, - "description": "Parameters supplied to the Upgrade Extensions operation." - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Upgrade Machine Extensions": { - "$ref": "./examples/Extensions_Upgrade.json" - } - } - } - } - }, - "definitions": { - "Extension": { - "description": "Details of a particular extension in HCI Cluster.", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "description": "Describes Machine Extension Properties.", - "$ref": "#/definitions/ExtensionProperties", - "x-ms-client-flatten": true - } - } - }, - "ExtensionPatch": { - "description": "Extension Details to update", - "type": "object", - "properties": { - "properties": { - "description": "Describes Machine Extension Properties that can be updated.", - "$ref": "#/definitions/ExtensionPatchProperties", - "x-ms-client-flatten": true - } - } - }, - "ExtensionProperties": { - "description": "Status of Arc Extension for a particular node in HCI Cluster.", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning state of the Extension proxy resource. Indicates the current lifecycle status of the resource, such as whether it's being created, updated, deleted, or has encountered an error.", - "type": "string", - "enum": [ - "NotSpecified", - "Error", - "Succeeded", - "Failed", - "Canceled", - "Connected", - "Disconnected", - "Deleted", - "Creating", - "Updating", - "Deleting", - "Moving", - "PartiallySucceeded", - "PartiallyConnected", - "InProgress", - "Accepted", - "Provisioning" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The provisioning state is not specified." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred during provisioning." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Provisioning completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Provisioning failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Provisioning was canceled." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The resource is connected." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The resource is disconnected." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The resource has been deleted." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The resource is being created." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The resource is being updated." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The resource is being deleted." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The resource is being moved." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "Provisioning partially succeeded." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "The resource is partially connected." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "Provisioning is in progress." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "Provisioning request has been accepted." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The resource is currently provisioning." - } - ] - }, - "readOnly": true - }, - "extensionParameters": { - "description": "Parameters specific to this extension type.", - "$ref": "#/definitions/ExtensionParameters", - "x-ms-client-flatten": true - }, - "aggregateState": { - "description": "Aggregate state of Arc Extensions across the nodes in this HCI cluster. This reflects the overall status of the extension deployment and operation across all nodes.", - "type": "string", - "enum": [ - "NotSpecified", - "Error", - "Succeeded", - "Canceled", - "Failed", - "Connected", - "Disconnected", - "Deleted", - "Creating", - "Updating", - "Deleting", - "Moving", - "PartiallySucceeded", - "PartiallyConnected", - "InProgress", - "Accepted", - "Provisioning", - "UpgradeFailedRollbackSucceeded" - ], - "x-ms-enum": { - "name": "ExtensionAggregateState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The aggregate state is not specified." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred in the aggregate state." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The operation succeeded across all nodes." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The operation was canceled across the nodes." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The operation failed on all or most nodes." - }, - { - "name": "Connected", - "value": "Connected", - "description": "All nodes are connected." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "All nodes are disconnected." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The extension has been deleted from all nodes." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The extension is being created across the nodes." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The extension is being updated across the nodes." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The extension is being deleted across the nodes." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The extension is being moved across the nodes." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "The operation succeeded on some nodes." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "Some nodes are connected, others are not." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The operation is currently in progress across the nodes." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The extension is currently being provisioned across the nodes." - }, - { - "name": "UpgradeFailedRollbackSucceeded", - "value": "UpgradeFailedRollbackSucceeded", - "description": "Extension upgrade failed, but rollback succeeded across the nodes." - } - ] - }, - "readOnly": true - }, - "perNodeExtensionDetails": { - "description": "State of Arc Extension in each of the nodes.", - "type": "array", - "items": { - "$ref": "#/definitions/PerNodeExtensionState" - }, - "readOnly": true - }, - "managedBy": { - "description": "Indicates if the extension is managed by Azure or the user. This determines who controls the deployment and lifecycle of the extension.", - "type": "string", - "enum": [ - "Azure", - "User" - ], - "x-ms-enum": { - "name": "ExtensionManagedBy", - "modelAsString": true, - "values": [ - { - "name": "Azure", - "value": "Azure", - "description": "The extension is managed by Azure." - }, - { - "name": "User", - "value": "User", - "description": "The extension is managed by the user." - } - ] - }, - "readOnly": true - } - } - }, - "ExtensionPatchProperties": { - "description": "Describes Machine Extension Properties that can be updated.", - "type": "object", - "properties": { - "extensionParameters": { - "description": "Describes the properties of a Machine Extension that can be updated.", - "$ref": "#/definitions/ExtensionPatchParameters" - } - } - }, - "ExtensionPatchParameters": { - "description": "Describes the properties of a Machine Extension that can be updated.", - "type": "object", - "properties": { - "typeHandlerVersion": { - "type": "string", - "description": "Specifies the version of the script handler. Latest version would be used if not specified." - }, - "enableAutomaticUpgrade": { - "type": "boolean", - "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version available." - }, - "settings": { - "type": "object", - "description": "Json formatted public settings for the extension." - }, - "protectedSettings": { - "type": "object", - "description": "Protected settings (may contain secrets).", - "x-ms-secret": true - } - } - }, - "PerNodeExtensionState": { - "description": "Status of Arc Extension for a particular node in HCI Cluster.", - "type": "object", - "properties": { - "name": { - "description": "Name of the node in HCI Cluster.", - "type": "string", - "readOnly": true - }, - "extension": { - "description": "Fully qualified resource ID for the particular Arc Extension on this node.", - "type": "string", - "readOnly": true - }, - "typeHandlerVersion": { - "type": "string", - "description": "Specifies the version of the script handler.", - "readOnly": true - }, - "state": { - "description": "State of Arc Extension in this node. Reflects the current lifecycle status of the extension on the individual node, such as whether it's being created, updated, deleted, or has encountered an error.", - "type": "string", - "enum": [ - "NotSpecified", - "Error", - "Succeeded", - "Canceled", - "Failed", - "Connected", - "Disconnected", - "Deleted", - "Creating", - "Updating", - "Deleting", - "Moving", - "PartiallySucceeded", - "PartiallyConnected", - "InProgress", - "Accepted", - "Provisioning" - ], - "x-ms-enum": { - "name": "NodeExtensionState", - "modelAsString": true, - "values": [ - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The state is not specified." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred during the extension lifecycle." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The extension operation completed successfully." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The extension operation was canceled." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The extension operation failed." - }, - { - "name": "Connected", - "value": "Connected", - "description": "The extension is connected on the node." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The extension is disconnected on the node." - }, - { - "name": "Deleted", - "value": "Deleted", - "description": "The extension has been deleted from the node." - }, - { - "name": "Creating", - "value": "Creating", - "description": "The extension is being created on the node." - }, - { - "name": "Updating", - "value": "Updating", - "description": "The extension is being updated on the node." - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The extension is being deleted from the node." - }, - { - "name": "Moving", - "value": "Moving", - "description": "The extension is being moved on the node." - }, - { - "name": "PartiallySucceeded", - "value": "PartiallySucceeded", - "description": "The extension operation partially succeeded." - }, - { - "name": "PartiallyConnected", - "value": "PartiallyConnected", - "description": "The extension is partially connected on the node." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The extension operation is currently in progress." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The extension operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The extension is currently being provisioned on the node." - } - ] - }, - "readOnly": true - }, - "instanceView": { - "$ref": "#/definitions/ExtensionInstanceView", - "description": "The extension instance view.", - "readOnly": true - } - } - }, - "ExtensionList": { - "description": "List of Extensions in HCI cluster.", - "type": "object", - "properties": { - "value": { - "description": "List of Extensions in HCI cluster.", - "type": "array", - "items": { - "$ref": "#/definitions/Extension" - }, - "readOnly": true - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "ExtensionParameters": { - "description": "Describes the properties of a Machine Extension. This object mirrors the definition in HybridCompute.", - "type": "object", - "properties": { - "forceUpdateTag": { - "type": "string", - "description": "How the extension handler should be forced to update even if the extension configuration has not changed." - }, - "publisher": { - "type": "string", - "description": "The name of the extension handler publisher." - }, - "type": { - "type": "string", - "description": "Specifies the type of the extension; an example is \"CustomScriptExtension\"." - }, - "typeHandlerVersion": { - "type": "string", - "description": "Specifies the version of the script handler. Latest version would be used if not specified." - }, - "autoUpgradeMinorVersion": { - "type": "boolean", - "description": "Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true." - }, - "settings": { - "type": "object", - "description": "Json formatted public settings for the extension." - }, - "protectedSettings": { - "type": "object", - "description": "Protected settings (may contain secrets).", - "x-ms-secret": true - }, - "enableAutomaticUpgrade": { - "type": "boolean", - "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version available." - } - } - }, - "ExtensionInstanceView": { - "type": "object", - "description": "Describes the Extension Instance View.", - "properties": { - "name": { - "type": "string", - "description": "The extension name." - }, - "type": { - "type": "string", - "description": "Specifies the type of the extension; an example is \"MicrosoftMonitoringAgent\"." - }, - "typeHandlerVersion": { - "type": "string", - "description": "Specifies the version of the script handler." - }, - "status": { - "type": "object", - "description": "Instance view status.", - "properties": { - "code": { - "type": "string", - "description": "The status code." - }, - "level": { - "type": "string", - "description": "The level code. Indicates the severity or importance of the status message.", - "enum": [ - "Info", - "Warning", - "Error" - ], - "x-ms-enum": { - "name": "StatusLevelTypes", - "modelAsString": true, - "values": [ - { - "name": "Info", - "value": "Info", - "description": "Informational message indicating normal operation." - }, - { - "name": "Warning", - "value": "Warning", - "description": "Warning message indicating a potential issue or non-critical problem." - }, - { - "name": "Error", - "value": "Error", - "description": "Error message indicating a failure or critical issue." - } - ] - } - }, - "displayStatus": { - "type": "string", - "description": "The short localizable label for the status." - }, - "message": { - "type": "string", - "description": "The detailed status message, including for alerts and error messages." - }, - "time": { - "type": "string", - "format": "date-time", - "description": "The time of the status." - } - } - } - } - }, - "ExtensionUpgradeParameters": { - "type": "object", - "description": "Describes the parameters for Extension upgrade.", - "properties": { - "targetVersion": { - "type": "string", - "description": "Extension Upgrade Target Version." - } - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "ArcSettingNameParameter": { - "name": "arcSettingName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the proxy resource holding details of HCI ArcSetting information.", - "x-ms-parameter-location": "method" - }, - "ExtensionNameParameter": { - "name": "extensionName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the machine extension.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/hci.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/hci.json index 4bd3a81c74ae..2ddbe3bab442 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/hci.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/hci.json @@ -54,6 +54,48 @@ { "name": "Operations" }, + { + "name": "ArcSettings" + }, + { + "name": "Offers" + }, + { + "name": "Clusters" + }, + { + "name": "DeploymentSettings" + }, + { + "name": "EdgeDeviceJobs" + }, + { + "name": "EdgeDevices" + }, + { + "name": "Extensions" + }, + { + "name": "Publishers" + }, + { + "name": "SecuritySettings" + }, + { + "name": "Skus" + }, + { + "name": "UpdateRuns" + }, + { + "name": "Updates" + }, + { + "name": "UpdateSummariesOperationGroup" + }, + { + "name": "ValidatedSolutionRecipes" + }, { "name": "EdgeMachines" }, @@ -62,23 +104,31 @@ } ], "paths": { - "/providers/Microsoft.AzureStackHCI/operations": { + "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices": { "get": { - "operationId": "Operations_List", + "operationId": "EdgeDevices_List", "tags": [ - "Operations" + "EdgeDevices" ], - "description": "List the operations for the provider", + "description": "List EdgeDevice resources by parent", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/OperationListResult" + "$ref": "#/definitions/EdgeDeviceListResult" } }, "default": { @@ -89,8 +139,8 @@ } }, "x-ms-examples": { - "List the operations for the provider.": { - "$ref": "./examples/Operations_List.json" + "List Edge Devices": { + "$ref": "./examples/ListEdgeDevices.json" } }, "x-ms-pageable": { @@ -98,26 +148,40 @@ } } }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/edgeMachines": { + "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}": { "get": { - "operationId": "EdgeMachines_ListBySubscription", + "operationId": "EdgeDevices_Get", "tags": [ - "EdgeMachines" + "EdgeDevices" ], - "description": "List all edge machines in a subscription.", + "description": "Get a EdgeDevice", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "edgeDeviceName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/EdgeMachineListResult" + "$ref": "#/definitions/EdgeDevice" } }, "default": { @@ -128,38 +192,70 @@ } }, "x-ms-examples": { - "List edge machines in a given subscription": { - "$ref": "./examples/EdgeMachines_ListBySubscription.json" + "Get Edge Device": { + "$ref": "./examples/GetEdgeDevices.json" } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/kubernetesVersions": { - "get": { - "operationId": "KubernetesVersions_ListBySubscriptionLocationResource", + }, + "put": { + "operationId": "EdgeDevices_CreateOrUpdate", "tags": [ - "KubernetesVersions" + "EdgeDevices" ], - "description": "List all kubernetes versions.", + "description": "Create a EdgeDevice", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "edgeDeviceName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/EdgeDevice" + } } ], "responses": { "200": { - "description": "Azure operation completed successfully.", + "description": "Resource 'EdgeDevice' update operation succeeded", "schema": { - "$ref": "#/definitions/KubernetesVersionListResult" + "$ref": "#/definitions/EdgeDevice" + } + }, + "201": { + "description": "Resource 'EdgeDevice' create operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeDevice" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { @@ -170,40 +266,61 @@ } }, "x-ms-examples": { - "KubernetesVersions_ListBySubscriptionLocationResource_MaximumSet": { - "$ref": "./examples/KubernetesVersions_ListBySubscriptionLocationResource_MaximumSet_Gen.json" + "Create HCI Edge Device": { + "$ref": "./examples/CreateHciEdgeDevice.json" } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/osImages": { - "get": { - "operationId": "OsImages_ListBySubscriptionLocationResource", + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "EdgeDevices_Delete", "tags": [ - "OsImages" + "EdgeDevices" ], - "description": "List all os images.", + "description": "Delete a EdgeDevice", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "edgeDeviceName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/OsImageListResult" + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, + "204": { + "description": "Resource does not exist." + }, "default": { "description": "An unexpected error response.", "schema": { @@ -212,46 +329,50 @@ } }, "x-ms-examples": { - "OsImages_ListBySubscriptionLocationResource_MaximumSet": { - "$ref": "./examples/OsImages_ListBySubscriptionLocationResource_MaximumSet_Gen.json" + "Delete Edge Devices": { + "$ref": "./examples/DeleteEdgeDevices.json" } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/osImages/{osImageName}": { + "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}/jobs": { "get": { - "operationId": "OsImages_Get", + "operationId": "EdgeDeviceJobs_ListByEdgeDevice", "tags": [ - "OsImages" + "EdgeDeviceJobs" ], - "description": "Get a os image.", + "description": "List EdgeDeviceJob resources by EdgeDevice", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "name": "osImageName", + "name": "edgeDeviceName", "in": "path", - "description": "The name of the OsImage", + "description": "Name of Device", "required": true, "type": "string", - "pattern": "^[a-zA-Z0-9-.]{3,50}$" + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/OsImage" + "$ref": "#/definitions/EdgeDeviceJobListResult" } }, "default": { @@ -262,35 +383,57 @@ } }, "x-ms-examples": { - "OsImages_Get_MaximumSet": { - "$ref": "./examples/OsImages_Get_MaximumSet_Gen.json" + "EdgeDeviceJobs_ListByEdgeDevice": { + "$ref": "./examples/EdgeDeviceJobs_ListByEdgeDevice.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/platformUpdates": { + "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}/jobs/{jobsName}": { "get": { - "operationId": "PlatformUpdates_List", + "operationId": "EdgeDeviceJobs_Get", "tags": [ - "PlatformUpdates" + "EdgeDeviceJobs" ], - "description": "List all platform updates.", + "description": "Get a EdgeDeviceJob", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "edgeDeviceName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "jobsName", + "in": "path", + "description": "Name of EdgeDevice Job", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/PlatformUpdateListResult" + "$ref": "#/definitions/EdgeDeviceJob" } }, "default": { @@ -301,46 +444,78 @@ } }, "x-ms-examples": { - "PlatformUpdates_ListByLocation_MaximumSet": { - "$ref": "./examples/PlatformUpdates_ListByLocation_MaximumSet_Gen.json" + "EdgeDeviceJobs_Get_RemoteSupport": { + "$ref": "./examples/EdgeDeviceJobs_Get_RemoteSupport.json" } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/platformUpdates/{platformUpdateName}": { - "get": { - "operationId": "PlatformUpdates_Get", + }, + "put": { + "operationId": "EdgeDeviceJobs_CreateOrUpdate", "tags": [ - "PlatformUpdates" + "EdgeDeviceJobs" ], - "description": "Get a platform update.", + "description": "Create a EdgeDeviceJob", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "edgeDeviceName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" }, { - "name": "platformUpdateName", + "name": "jobsName", "in": "path", - "description": "The name of the PlatformUpdate", + "description": "Name of EdgeDevice Job", "required": true, "type": "string", - "pattern": "^[a-zA-Z0-9-.]{3,50}$" + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/EdgeDeviceJob" + } } ], "responses": { "200": { - "description": "Azure operation completed successfully.", + "description": "Resource 'EdgeDeviceJob' update operation succeeded", "schema": { - "$ref": "#/definitions/PlatformUpdate" + "$ref": "#/definitions/EdgeDeviceJob" + } + }, + "201": { + "description": "Resource 'EdgeDeviceJob' create operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeDeviceJob" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { @@ -351,37 +526,72 @@ } }, "x-ms-examples": { - "PlatformUpdates_Get_MaximumSet": { - "$ref": "./examples/PlatformUpdates_Get_MaximumSet_Gen.json" + "EdgeDeviceJobs_CreateOrUpdate_CollectLog": { + "$ref": "./examples/EdgeDeviceJobs_CreateOrUpdate_CollectLog.json" + }, + "EdgeDeviceJobs_CreateOrUpdate_RemoteSupport": { + "$ref": "./examples/EdgeDeviceJobs_CreateOrUpdate_RemoteSupport.json" } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/updateContents": { - "get": { - "operationId": "UpdateContents_List", + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "EdgeDeviceJobs_Delete", "tags": [ - "UpdateContents" + "EdgeDeviceJobs" ], - "description": "List all update contents.", + "description": "Delete a EdgeDeviceJob", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "edgeDeviceName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "jobsName", + "in": "path", + "description": "Name of EdgeDevice Job", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" } ], "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/UpdateContentListResult" + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, + "204": { + "description": "Resource does not exist." + }, "default": { "description": "An unexpected error response.", "schema": { @@ -390,46 +600,73 @@ } }, "x-ms-examples": { - "UpdateContents_ListByLocation_MaximumSet": { - "$ref": "./examples/UpdateContents_ListByLocation_MaximumSet_Gen.json" + "EdgeDeviceJobs_Delete": { + "$ref": "./examples/EdgeDeviceJobs_Delete.json" } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/updateContents/{updateContentName}": { - "get": { - "operationId": "UpdateContents_Get", + "/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}/validate": { + "post": { + "operationId": "EdgeDevices_Validate", "tags": [ - "UpdateContents" + "EdgeDevices" ], - "description": "Gets content for an update.", + "description": "A long-running resource action.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + "name": "resourceUri", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true }, { - "name": "updateContentName", + "name": "edgeDeviceName", "in": "path", - "description": "The name of the UpdateContent", + "description": "Name of Device", "required": true, "type": "string", - "pattern": "^[a-zA-Z0-9-.]{3,50}$" + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "ValidateRequest", + "in": "body", + "description": "The content of the action request", + "required": true, + "schema": { + "$ref": "#/definitions/ValidateRequest" + } } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/UpdateContent" + "$ref": "#/definitions/ValidateResponse" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { @@ -440,35 +677,33 @@ } }, "x-ms-examples": { - "UpdateContents_Get_MaximumSet": { - "$ref": "./examples/UpdateContents_Get_MaximumSet_Gen.json" + "Validate Edge Devices": { + "$ref": "./examples/ValidateEdgeDevices.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/edgeMachines": { + "/providers/Microsoft.AzureStackHCI/operations": { "get": { - "operationId": "EdgeMachines_ListByResourceGroup", + "operationId": "Operations_List", "tags": [ - "EdgeMachines" + "Operations" ], - "description": "List all edge machines in a resource group.", + "description": "List the operations for the provider", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/EdgeMachineListResult" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/OperationListResult" } }, "default": { @@ -479,8 +714,8 @@ } }, "x-ms-examples": { - "List edge machines in a given resource group": { - "$ref": "./examples/EdgeMachines_ListByResourceGroup.json" + "List the operations for the provider.": { + "$ref": "./examples/Operations_List.json" } }, "x-ms-pageable": { @@ -488,37 +723,26 @@ } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/edgeMachines/{edgeMachineName}": { + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/clusters": { "get": { - "operationId": "EdgeMachines_Get", + "operationId": "Clusters_ListBySubscription", "tags": [ - "EdgeMachines" + "Clusters" ], - "description": "Get an edge machine.", + "description": "List all HCI clusters in a subscription.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "edgeMachineName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-_]{3,63}$" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/EdgeMachine" + "$ref": "#/definitions/ClusterList" } }, "default": { @@ -529,67 +753,35 @@ } }, "x-ms-examples": { - "EdgeMachines_Get_MaximumSet": { - "$ref": "./examples/EdgeMachines_Get.json" + "List clusters in a given subscription": { + "$ref": "./examples/ListClustersBySubscription.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } - }, - "put": { - "operationId": "EdgeMachines_CreateOrUpdate", + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/edgeMachines": { + "get": { + "operationId": "EdgeMachines_ListBySubscription", "tags": [ "EdgeMachines" ], - "description": "Create or update an edge machine.", + "description": "List all edge machines in a subscription.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "edgeMachineName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-_]{3,63}$" - }, - { - "name": "resource", - "in": "body", - "description": "Resource create parameters.", - "required": true, - "schema": { - "$ref": "#/definitions/EdgeMachine" - } } ], "responses": { "200": { - "description": "Resource 'EdgeMachine' update operation succeeded", - "schema": { - "$ref": "#/definitions/EdgeMachine" - } - }, - "201": { - "description": "Resource 'EdgeMachine' create operation succeeded", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/EdgeMachine" - }, - "headers": { - "Azure-AsyncOperation": { - "type": "string", - "description": "A link to the status monitor" - }, - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } + "$ref": "#/definitions/EdgeMachineListResult" } }, "default": { @@ -600,21 +792,22 @@ } }, "x-ms-examples": { - "EdgeMachines_CreateOrUpdate": { - "$ref": "./examples/EdgeMachines_CreateOrUpdate.json" + "List edge machines in a given subscription": { + "$ref": "./examples/EdgeMachines_ListBySubscription.json" } }, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-long-running-operation": true - }, - "patch": { - "operationId": "EdgeMachines_Update", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/kubernetesVersions": { + "get": { + "operationId": "KubernetesVersions_ListBySubscriptionLocationResource", "tags": [ - "EdgeMachines" + "KubernetesVersions" ], - "description": "Update an edge machine.", + "description": "List all kubernetes versions.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" @@ -623,45 +816,14 @@ "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "edgeMachineName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-_]{3,63}$" - }, - { - "name": "properties", - "in": "body", - "description": "The resource properties to be updated.", - "required": true, - "schema": { - "$ref": "#/definitions/EdgeMachinePatch" - } + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/EdgeMachine" - } - }, - "202": { - "description": "Resource update request accepted.", - "headers": { - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - }, - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } + "$ref": "#/definitions/KubernetesVersionListResult" } }, "default": { @@ -672,21 +834,22 @@ } }, "x-ms-examples": { - "EdgeMachines_Update": { - "$ref": "./examples/EdgeMachines_Update.json" + "KubernetesVersions_ListBySubscriptionLocationResource_MaximumSet": { + "$ref": "./examples/KubernetesVersions_ListBySubscriptionLocationResource_MaximumSet_Gen.json" } }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true - }, - "delete": { - "operationId": "EdgeMachines_Delete", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/osImages": { + "get": { + "operationId": "OsImages_ListBySubscriptionLocationResource", "tags": [ - "EdgeMachines" + "OsImages" ], - "description": "Delete an edge machine.", + "description": "List all os images.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" @@ -695,35 +858,16 @@ "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "edgeMachineName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-_]{3,63}$" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" } ], "responses": { - "202": { - "description": "Resource deletion accepted.", - "headers": { - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - }, - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OsImageListResult" } }, - "204": { - "description": "Resource does not exist." - }, "default": { "description": "An unexpected error response.", "schema": { @@ -732,23 +876,22 @@ } }, "x-ms-examples": { - "EdgeMachines_Delete_MaximumSet": { - "$ref": "./examples/EdgeMachines_Delete.json" + "OsImages_ListBySubscriptionLocationResource_MaximumSet": { + "$ref": "./examples/OsImages_ListBySubscriptionLocationResource_MaximumSet_Gen.json" } }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true + "x-ms-pageable": { + "nextLinkName": "nextLink" + } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/edgeMachines/{edgeMachineName}/jobs": { + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/osImages/{osImageName}": { "get": { - "operationId": "EdgeMachineJobs_List", + "operationId": "OsImages_Get", "tags": [ - "EdgeMachineJobs" + "OsImages" ], - "description": "List EdgeMachineJob resources by EdgeMachines", + "description": "Get a os image.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" @@ -757,22 +900,22 @@ "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" }, { - "name": "edgeMachineName", + "name": "osImageName", "in": "path", - "description": "Name of Device", + "description": "The name of the OsImage", "required": true, "type": "string", - "pattern": "^[a-zA-Z0-9-_]{3,63}$" + "pattern": "^[a-zA-Z0-9-.]{3,50}$" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/EdgeMachineJobListResult" + "$ref": "#/definitions/OsImage" } }, "default": { @@ -783,22 +926,19 @@ } }, "x-ms-examples": { - "EdgeMachineJobs_List_MaximumSet": { - "$ref": "./examples/EdgeMachineJobs_List_MaximumSet_Gen.json" + "OsImages_Get_MaximumSet": { + "$ref": "./examples/OsImages_Get_MaximumSet_Gen.json" } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/edgeMachines/{edgeMachineName}/jobs/{jobsName}": { + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/platformUpdates": { "get": { - "operationId": "EdgeMachineJobs_Get", + "operationId": "PlatformUpdates_List", "tags": [ - "EdgeMachineJobs" + "PlatformUpdates" ], - "description": "Get a EdgeMachineJob", + "description": "List all platform updates.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" @@ -807,30 +947,14 @@ "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "edgeMachineName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-_]{3,63}$" - }, - { - "name": "jobsName", - "in": "path", - "description": "Name of EdgeMachineJob", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-_]{3,63}$" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/EdgeMachineJob" + "$ref": "#/definitions/PlatformUpdateListResult" } }, "default": { @@ -841,23 +965,22 @@ } }, "x-ms-examples": { - "EdgeMachineJobs_Get_CollectLog": { - "$ref": "./examples/EdgeMachineJobs_Get_CollectLog.json" - }, - "EdgeMachineJobs_Get_ProvisionOs": { - "$ref": "./examples/EdgeMachineJobs_Get_ProvisionOs.json" - }, - "EdgeMachineJobs_Get_RemoteSupport": { - "$ref": "./examples/EdgeMachineJobs_Get_RemoteSupport.json" + "PlatformUpdates_ListByLocation_MaximumSet": { + "$ref": "./examples/PlatformUpdates_ListByLocation_MaximumSet_Gen.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } - }, - "put": { - "operationId": "EdgeMachineJobs_CreateOrUpdate", + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/platformUpdates/{platformUpdateName}": { + "get": { + "operationId": "PlatformUpdates_Get", "tags": [ - "EdgeMachineJobs" + "PlatformUpdates" ], - "description": "Create a EdgeMachineJob", + "description": "Get a platform update.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" @@ -866,56 +989,22 @@ "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "edgeMachineName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-_]{3,63}$" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" }, { - "name": "jobsName", + "name": "platformUpdateName", "in": "path", - "description": "Name of EdgeMachineJob", + "description": "The name of the PlatformUpdate", "required": true, "type": "string", - "pattern": "^[a-zA-Z0-9-_]{3,63}$" - }, - { - "name": "resource", - "in": "body", - "description": "Resource create parameters.", - "required": true, - "schema": { - "$ref": "#/definitions/EdgeMachineJob" - } + "pattern": "^[a-zA-Z0-9-.]{3,50}$" } ], "responses": { "200": { - "description": "Resource 'EdgeMachineJob' update operation succeeded", - "schema": { - "$ref": "#/definitions/EdgeMachineJob" - } - }, - "201": { - "description": "Resource 'EdgeMachineJob' create operation succeeded", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/EdgeMachineJob" - }, - "headers": { - "Azure-AsyncOperation": { - "type": "string", - "description": "A link to the status monitor" - }, - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } + "$ref": "#/definitions/PlatformUpdate" } }, "default": { @@ -926,33 +1015,19 @@ } }, "x-ms-examples": { - "EdgeMachineJobs_CreateOrUpdate_CollectLog": { - "$ref": "./examples/EdgeMachineJobs_CreateOrUpdate_CollectLog.json" - }, - "EdgeMachineJobs_CreateOrUpdate_DownloadOs": { - "$ref": "./examples/EdgeMachineJobs_CreateOrUpdate_DownloadOs.json" - }, - "EdgeMachineJobs_CreateOrUpdate_ProvisionOs": { - "$ref": "./examples/EdgeMachineJobs_CreateOrUpdate_ProvisionOs.json" - }, - "EdgeMachineJobs_CreateOrUpdate_RemoteSupport": { - "$ref": "./examples/EdgeMachineJobs_CreateOrUpdate_RemoteSupport.json" - }, - "EdgeMachineJobs_CreateOrUpdate_UpdateOs": { - "$ref": "./examples/EdgeMachineJobs_CreateOrUpdate_UpdateOs.json" + "PlatformUpdates_Get_MaximumSet": { + "$ref": "./examples/PlatformUpdates_Get_MaximumSet_Gen.json" } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-long-running-operation": true - }, - "delete": { - "operationId": "EdgeMachineJobs_Delete", + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/updateContents": { + "get": { + "operationId": "UpdateContents_List", "tags": [ - "EdgeMachineJobs" + "UpdateContents" ], - "description": "Delete a EdgeMachineJob", + "description": "List all update contents.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" @@ -961,43 +1036,16 @@ "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "name": "edgeMachineName", - "in": "path", - "description": "Name of Device", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-_]{3,63}$" - }, - { - "name": "jobsName", - "in": "path", - "description": "Name of EdgeMachineJob", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-_]{3,63}$" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" } ], "responses": { - "202": { - "description": "Resource deletion accepted.", - "headers": { - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - }, - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UpdateContentListResult" } }, - "204": { - "description": "Resource does not exist." - }, "default": { "description": "An unexpected error response.", "schema": { @@ -1006,20 +1054,22 @@ } }, "x-ms-examples": { - "EdgeMachineJobs_Delete_MaximumSet": { - "$ref": "./examples/EdgeMachineJobs_Delete_MaximumSet_Gen.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" + "UpdateContents_ListByLocation_MaximumSet": { + "$ref": "./examples/UpdateContents_ListByLocation_MaximumSet_Gen.json" + } }, - "x-ms-long-running-operation": true + "x-ms-pageable": { + "nextLinkName": "nextLink" + } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/locations/{location}/validateOwnershipVouchers": { - "post": { - "operationId": "OwnershipVouchers_Validate", - "description": "Validates ownership vouchers.", + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/updateContents/{updateContentName}": { + "get": { + "operationId": "UpdateContents_Get", + "tags": [ + "UpdateContents" + ], + "description": "Gets content for an update.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" @@ -1027,27 +1077,23 @@ { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, { "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" }, { - "name": "validationRequest", - "in": "body", - "description": "Ownership vouchers to be validated.", + "name": "updateContentName", + "in": "path", + "description": "The name of the UpdateContent", "required": true, - "schema": { - "$ref": "#/definitions/ValidateOwnershipVouchersRequest" - } + "type": "string", + "pattern": "^[a-zA-Z0-9-.]{3,50}$" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ValidateOwnershipVouchersResponse" + "$ref": "#/definitions/UpdateContent" } }, "default": { @@ -1058,720 +1104,11051 @@ } }, "x-ms-examples": { - "Validate ownership vouchers in a given resource group": { - "$ref": "./examples/ValidateOwnershipVouchers_ByResourceGroup.json" + "UpdateContents_Get_MaximumSet": { + "$ref": "./examples/UpdateContents_Get_MaximumSet_Gen.json" } } } - } - }, - "definitions": { - "ArcExtensionState": { - "type": "string", - "description": "Arc extension installation state.", - "enum": [ - "NotSpecified", - "Accepted", - "Canceled", - "Creating", - "Deleted", - "Deleting", - "Failed", - "Moving", - "Succeeded", - "Updating" - ], - "x-ms-enum": { - "name": "ArcExtensionState", - "modelAsString": true, - "values": [ + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/validatedSolutionRecipes": { + "get": { + "operationId": "ValidatedSolutionRecipes_ListBySubscriptionLocationResource", + "tags": [ + "ValidatedSolutionRecipes" + ], + "description": "List all validated solution recipes.", + "parameters": [ { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "Arc extension state is not specified." + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "name": "Accepted", - "value": "Accepted", - "description": "Arc extension state is Accepted when extension installation triggered." + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "Canceled", - "value": "Canceled", - "description": "Arc extension state is Canceled." + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ValidatedSolutionRecipeListResult" + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ValidatedSolutionRecipes_ListBySubscriptionLocationResource": { + "$ref": "./examples/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/validatedSolutionRecipes/{validatedSolutionRecipeName}": { + "get": { + "operationId": "ValidatedSolutionRecipes_Get", + "tags": [ + "ValidatedSolutionRecipes" + ], + "description": "Get a validated solution recipe.", + "parameters": [ { - "name": "Creating", - "value": "Creating", - "description": "Arc extension is in Creating State." + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "name": "Deleted", - "value": "Deleted", - "description": "Arc extension is in Deleted State." + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "Deleting", - "value": "Deleting", - "description": "Arc extension is in Deleting State." + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" }, { - "name": "Failed", - "value": "Failed", - "description": "Arc extension state is Failed." + "name": "validatedSolutionRecipeName", + "in": "path", + "description": "The name of the ValidatedSolutionRecipe", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-.]{3,50}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ValidatedSolutionRecipe" + } }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ValidatedSolutionRecipes_Get": { + "$ref": "./examples/ValidatedSolutionRecipes_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters": { + "get": { + "operationId": "Clusters_ListByResourceGroup", + "tags": [ + "Clusters" + ], + "description": "List all HCI clusters in a resource group.", + "parameters": [ { - "name": "Moving", - "value": "Moving", - "description": "Arc extension is in Moving State." + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "name": "Succeeded", - "value": "Succeeded", - "description": "Arc extension state is Succeeded." + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "Updating", - "value": "Updating", - "description": "Arc extension is in Updating State." + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ClusterList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } } - ] - }, - "readOnly": true - }, - "ClusterSdnProperties": { - "type": "object", - "description": "Represents the Software Defined Networking (SDN) configuration state of the Azure Stack HCI cluster.", - "properties": { - "sdnIntegrationIntent": { - "$ref": "#/definitions/SdnIntegrationIntent", - "description": "Indicates whether Software Defined Networking (SDN) integration should be enabled or disabled for this deployment.", - "readOnly": true - } - }, - "allOf": [ - { - "$ref": "#/definitions/SdnProperties" - } - ] - }, - "CollectLogJobProperties": { - "type": "object", - "description": "Properties for pausing a server in the cluster.", - "properties": { - "fromDate": { - "type": "string", - "format": "date-time", - "description": "From date for log collection." - }, - "toDate": { - "type": "string", - "format": "date-time", - "description": "To date for log collection." }, - "lastLogGenerated": { - "type": "string", - "format": "date-time", - "description": "To date for log collection.", - "readOnly": true + "x-ms-examples": { + "List clusters in a given resource group": { + "$ref": "./examples/ListClustersByResourceGroup.json" + } }, - "reportedProperties": { - "$ref": "#/definitions/LogCollectionReportedProperties", - "description": "log collection job reported properties.", - "readOnly": true - } - }, - "required": [ - "fromDate", - "toDate" - ], - "allOf": [ - { - "$ref": "#/definitions/EdgeMachineJobProperties" + "x-ms-pageable": { + "nextLinkName": "nextLink" } - ], - "x-ms-discriminator-value": "CollectLog" + } }, - "ConfidentialVmIntent": { - "type": "string", - "description": "Captures the customer's intent to enable or disable Confidential Virtual Machine (CVM) support on the cluster, either during initial deployment (Day-0) or at a later stage (Day-N).", - "enum": [ - "Enable", - "Disable" - ], - "x-ms-enum": { - "name": "ConfidentialVmIntent", - "modelAsString": true, - "values": [ + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}": { + "get": { + "operationId": "Clusters_Get", + "tags": [ + "Clusters" + ], + "description": "Get HCI cluster.", + "parameters": [ { - "name": "Enable", - "value": "Enable", - "description": "Indicates that the customer intends to enable CVM support on the cluster." + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" }, { - "name": "Disable", - "value": "Disable", - "description": "Indicates that the customer intends to disable CVM support on the cluster." - } - ] - } - }, + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get cluster": { + "$ref": "./examples/GetCluster.json" + } + } + }, + "put": { + "operationId": "Clusters_Create", + "tags": [ + "Clusters" + ], + "description": "Create an HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "cluster", + "in": "body", + "description": "Details of the HCI cluster.", + "required": true, + "schema": { + "$ref": "#/definitions/Cluster" + } + } + ], + "responses": { + "200": { + "description": "Resource 'Cluster' update operation succeeded", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create cluster": { + "$ref": "./examples/CreateCluster.json" + } + } + }, + "patch": { + "operationId": "Clusters_Update", + "tags": [ + "Clusters" + ], + "description": "Update an HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "cluster", + "in": "body", + "description": "Details of the HCI cluster.", + "required": true, + "schema": { + "$ref": "#/definitions/ClusterPatch" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update cluster": { + "$ref": "./examples/UpdateCluster.json" + } + } + }, + "delete": { + "operationId": "Clusters_Delete", + "tags": [ + "Clusters" + ], + "description": "Delete an HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete cluster": { + "$ref": "./examples/DeleteCluster.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings": { + "get": { + "operationId": "ArcSettings_ListByCluster", + "tags": [ + "ArcSettings" + ], + "description": "Get ArcSetting resources of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ArcSettingList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List ArcSetting resources by HCI Cluster": { + "$ref": "./examples/ListArcSettingsByCluster.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}": { + "get": { + "operationId": "ArcSettings_Get", + "tags": [ + "ArcSettings" + ], + "description": "Get ArcSetting resource details of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ArcSetting" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get ArcSetting": { + "$ref": "./examples/GetArcSetting.json" + } + } + }, + "put": { + "operationId": "ArcSettings_Create", + "tags": [ + "ArcSettings" + ], + "description": "Create ArcSetting for HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "arcSetting", + "in": "body", + "description": "Parameters supplied to the Create ArcSetting resource for this HCI cluster.", + "required": true, + "schema": { + "$ref": "#/definitions/ArcSetting" + } + } + ], + "responses": { + "200": { + "description": "Resource 'ArcSetting' update operation succeeded", + "schema": { + "$ref": "#/definitions/ArcSetting" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create ArcSetting": { + "$ref": "./examples/PutArcSetting.json" + } + } + }, + "patch": { + "operationId": "ArcSettings_Update", + "tags": [ + "ArcSettings" + ], + "description": "Update ArcSettings for HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "arcSetting", + "in": "body", + "description": "ArcSettings parameters that needs to be updated", + "required": true, + "schema": { + "$ref": "#/definitions/ArcSettingsPatch" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ArcSetting" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Patch ArcSetting": { + "$ref": "./examples/PatchArcSetting.json" + } + } + }, + "delete": { + "operationId": "ArcSettings_Delete", + "tags": [ + "ArcSettings" + ], + "description": "Delete ArcSetting resource details of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete ArcSetting": { + "$ref": "./examples/DeleteArcSetting.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/consentAndInstallDefaultExtensions": { + "post": { + "operationId": "ArcSettings_ConsentAndInstallDefaultExtensions", + "tags": [ + "ArcSettings" + ], + "description": "Add consent time for default extensions and initiate extensions installation", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ArcSetting" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Consent And Install Default Extensions": { + "$ref": "./examples/ConsentAndInstallDefaultExtensions.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/createArcIdentity": { + "post": { + "operationId": "ArcSettings_CreateIdentity", + "tags": [ + "ArcSettings" + ], + "description": "Create Aad identity for arc settings.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ArcIdentityResponse" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create Arc Identity": { + "$ref": "./examples/CreateArcIdentity.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions": { + "get": { + "operationId": "Extensions_ListByArcSetting", + "tags": [ + "Extensions" + ], + "description": "List all Extensions under ArcSetting resource.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ExtensionList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Extensions under ArcSetting resource": { + "$ref": "./examples/ListExtensionsByArcSetting.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions/{extensionName}": { + "get": { + "operationId": "Extensions_Get", + "tags": [ + "Extensions" + ], + "description": "Get particular Arc Extension of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "extensionName", + "in": "path", + "description": "The name of the machine extension.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Extension" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get ArcSettings Extension": { + "$ref": "./examples/GetExtension.json" + } + } + }, + "put": { + "operationId": "Extensions_Create", + "tags": [ + "Extensions" + ], + "description": "Create Extension for HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "extensionName", + "in": "path", + "description": "The name of the machine extension.", + "required": true, + "type": "string" + }, + { + "name": "extension", + "in": "body", + "description": "Details of the Machine Extension to be created.", + "required": true, + "schema": { + "$ref": "#/definitions/Extension" + } + } + ], + "responses": { + "200": { + "description": "Resource 'Extension' update operation succeeded", + "schema": { + "$ref": "#/definitions/Extension" + } + }, + "201": { + "description": "Resource 'Extension' create operation succeeded", + "schema": { + "$ref": "#/definitions/Extension" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create Arc Extension": { + "$ref": "./examples/PutExtension.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Extensions_Update", + "tags": [ + "Extensions" + ], + "description": "Update Extension for HCI cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "extensionName", + "in": "path", + "description": "The name of the machine extension.", + "required": true, + "type": "string" + }, + { + "name": "extension", + "in": "body", + "description": "Details of the Machine Extension to be created.", + "required": true, + "schema": { + "$ref": "#/definitions/ExtensionPatch" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Extension" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update Arc Extension": { + "$ref": "./examples/PatchExtension.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "original-uri" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "Extensions_Delete", + "tags": [ + "Extensions" + ], + "description": "Delete particular Arc Extension of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "extensionName", + "in": "path", + "description": "The name of the machine extension.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete Arc Extension": { + "$ref": "./examples/DeleteExtension.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions/{extensionName}/upgrade": { + "post": { + "operationId": "Extensions_Upgrade", + "tags": [ + "Extensions" + ], + "description": "Upgrade a particular Arc Extension of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "extensionName", + "in": "path", + "description": "The name of the machine extension.", + "required": true, + "type": "string" + }, + { + "name": "extensionUpgradeParameters", + "in": "body", + "description": "Parameters supplied to the Upgrade Extensions operation.", + "required": true, + "schema": { + "$ref": "#/definitions/ExtensionUpgradeParameters" + } + } + ], + "responses": { + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Upgrade Machine Extensions": { + "$ref": "./examples/Extensions_Upgrade.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/generatePassword": { + "post": { + "operationId": "ArcSettings_GeneratePassword", + "tags": [ + "ArcSettings" + ], + "description": "Generate password for arc settings.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PasswordCredential" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Generate Password": { + "$ref": "./examples/GeneratePassword.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/initializeDisableProcess": { + "post": { + "operationId": "ArcSettings_InitializeDisableProcess", + "tags": [ + "ArcSettings" + ], + "description": "Initializes ARC Disable process on the cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded." + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Trigger ARC Disable": { + "$ref": "./examples/InitializeDisableProcess.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/reconcile": { + "post": { + "operationId": "ArcSettings_Reconcile", + "tags": [ + "ArcSettings" + ], + "description": "Reconcile Arc Settings with information related to all nodes.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "arcSettingName", + "in": "path", + "description": "The name of the proxy resource holding details of HCI ArcSetting information.", + "required": true, + "type": "string" + }, + { + "name": "reconcileArcSettingsRequest", + "in": "body", + "description": "Request for reconciling Arc Settings.", + "required": true, + "schema": { + "$ref": "#/definitions/ReconcileArcSettingsRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ArcSetting" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Reconcile Arc Settings": { + "$ref": "./examples/reconcileArcSettings.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/changeRing": { + "post": { + "operationId": "Clusters_ChangeRing", + "tags": [ + "Clusters" + ], + "description": "Changes ring of a cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "changeRingRequest", + "in": "body", + "description": "Change ring request payload", + "required": true, + "schema": { + "$ref": "#/definitions/ChangeRingRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Change cluster ring": { + "$ref": "./examples/ChangeClusterRing.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/configureRemoteSupport": { + "post": { + "operationId": "Clusters_ConfigureRemoteSupport", + "tags": [ + "Clusters" + ], + "description": "Configure RemoteSupport on a cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "remoteSupportRequest", + "in": "body", + "description": "Configure Remote Support Request Payload", + "required": true, + "schema": { + "$ref": "#/definitions/RemoteSupportRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Configure Remote Support": { + "$ref": "./examples/ConfigureRemoteSupport.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/createClusterIdentity": { + "post": { + "operationId": "Clusters_CreateIdentity", + "tags": [ + "Clusters" + ], + "description": "Create cluster identity.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ClusterIdentityResponse" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create cluster Identity": { + "$ref": "./examples/CreateClusterIdentity.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/deploymentSettings": { + "get": { + "operationId": "DeploymentSettings_ListByClusters", + "tags": [ + "DeploymentSettings" + ], + "description": "List DeploymentSetting resources by Clusters", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/DeploymentSettingListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Deployment Settings": { + "$ref": "./examples/ListDeploymentSettingsByCluster.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/deploymentSettings/{deploymentSettingsName}": { + "get": { + "operationId": "DeploymentSettings_Get", + "tags": [ + "DeploymentSettings" + ], + "description": "Get a DeploymentSetting", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "deploymentSettingsName", + "in": "path", + "description": "Name of Deployment Setting", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/DeploymentSetting" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Deployment Settings": { + "$ref": "./examples/GetDeploymentSettings.json" + } + } + }, + "put": { + "operationId": "DeploymentSettings_CreateOrUpdate", + "tags": [ + "DeploymentSettings" + ], + "description": "Create a DeploymentSetting", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "deploymentSettingsName", + "in": "path", + "description": "Name of Deployment Setting", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/DeploymentSetting" + } + } + ], + "responses": { + "200": { + "description": "Resource 'DeploymentSetting' update operation succeeded", + "schema": { + "$ref": "#/definitions/DeploymentSetting" + } + }, + "201": { + "description": "Resource 'DeploymentSetting' create operation succeeded", + "schema": { + "$ref": "#/definitions/DeploymentSetting" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create Deployment Settings": { + "$ref": "./examples/PutDeploymentSettings.json" + }, + "Create Deployment Settings Without Active Directory Integration": { + "$ref": "./examples/PutDeploymentSettingsWithADLess.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "DeploymentSettings_Delete", + "tags": [ + "DeploymentSettings" + ], + "description": "Delete a DeploymentSetting", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "deploymentSettingsName", + "in": "path", + "description": "Name of Deployment Setting", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete Deployment Settings": { + "$ref": "./examples/DeleteDeploymentSettings.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/extendSoftwareAssuranceBenefit": { + "post": { + "operationId": "Clusters_ExtendSoftwareAssuranceBenefit", + "tags": [ + "Clusters" + ], + "description": "Extends Software Assurance Benefit to a cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "softwareAssuranceChangeRequest", + "in": "body", + "description": "Software Assurance Change Request Payload", + "required": true, + "schema": { + "$ref": "#/definitions/SoftwareAssuranceChangeRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create cluster Identity": { + "$ref": "./examples/ExtendSoftwareAssuranceBenefit.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/offers": { + "get": { + "operationId": "Offers_ListByCluster", + "tags": [ + "Clusters" + ], + "description": "List Offers available across publishers for the HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OfferList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Offer resources by HCI Cluster": { + "$ref": "./examples/ListOffersByCluster.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers": { + "get": { + "operationId": "Publishers_ListByCluster", + "tags": [ + "Publishers" + ], + "description": "List Publishers available for the HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PublisherList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Publisher resources by HCI Cluster": { + "$ref": "./examples/ListPublishersByCluster.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}": { + "get": { + "operationId": "Publishers_Get", + "tags": [ + "Publishers" + ], + "description": "Get Publisher resource details of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "description": "The name of the publisher available within HCI cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Publisher" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Publisher": { + "$ref": "./examples/GetPublisher.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers": { + "get": { + "operationId": "Offers_ListByPublisher", + "tags": [ + "Offers" + ], + "description": "List Offers available for a publisher within the HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "description": "The name of the publisher available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OfferList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Offer resources by publisher for the HCI Cluster": { + "$ref": "./examples/ListOffersByPublisher.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}": { + "get": { + "operationId": "Offers_Get", + "tags": [ + "Offers" + ], + "description": "Get Offer resource details within a publisher of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "description": "The name of the publisher available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "offerName", + "in": "path", + "description": "The name of the offer available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Offer" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Offer": { + "$ref": "./examples/GetOffer.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}/skus": { + "get": { + "operationId": "Skus_ListByOffer", + "tags": [ + "Skus" + ], + "description": "List Skus available for a offer within the HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "description": "The name of the publisher available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "offerName", + "in": "path", + "description": "The name of the offer available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SkuList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List SKU resources by offer for the HCI Cluster": { + "$ref": "./examples/ListSkusByOffer.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}/skus/{skuName}": { + "get": { + "operationId": "Skus_Get", + "tags": [ + "Skus" + ], + "description": "Get SKU resource details within a offer of HCI Cluster.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "publisherName", + "in": "path", + "description": "The name of the publisher available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "offerName", + "in": "path", + "description": "The name of the offer available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "skuName", + "in": "path", + "description": "The name of the SKU available within HCI cluster.", + "required": true, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Sku" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Sku": { + "$ref": "./examples/GetSku.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/securitySettings": { + "get": { + "operationId": "SecuritySettings_ListByClusters", + "tags": [ + "SecuritySettings" + ], + "description": "List SecuritySetting resources by Clusters", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SecuritySettingListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Security Settings": { + "$ref": "./examples/ListSecuritySettingsByCluster.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/securitySettings/{securitySettingsName}": { + "get": { + "operationId": "SecuritySettings_Get", + "tags": [ + "SecuritySettings" + ], + "description": "Get a SecuritySetting", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "securitySettingsName", + "in": "path", + "description": "Name of security setting", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SecuritySetting" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Security Settings": { + "$ref": "./examples/GetSecuritySettings.json" + } + } + }, + "put": { + "operationId": "SecuritySettings_CreateOrUpdate", + "tags": [ + "SecuritySettings" + ], + "description": "Create a security setting", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "securitySettingsName", + "in": "path", + "description": "Name of security setting", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/SecuritySetting" + } + } + ], + "responses": { + "200": { + "description": "Resource 'SecuritySetting' update operation succeeded", + "schema": { + "$ref": "#/definitions/SecuritySetting" + } + }, + "201": { + "description": "Resource 'SecuritySetting' create operation succeeded", + "schema": { + "$ref": "#/definitions/SecuritySetting" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create Security Settings": { + "$ref": "./examples/PutSecuritySettings.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "SecuritySettings_Delete", + "tags": [ + "SecuritySettings" + ], + "description": "Delete a SecuritySetting", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "securitySettingsName", + "in": "path", + "description": "Name of security setting", + "required": true, + "type": "string", + "default": "default", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete Security Settings": { + "$ref": "./examples/DeleteSecuritySettings.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/triggerLogCollection": { + "post": { + "operationId": "Clusters_TriggerLogCollection", + "tags": [ + "Clusters" + ], + "description": "Trigger Log Collection on a cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "logCollectionRequest", + "in": "body", + "description": "Trigger Log Collection Request Payload", + "required": true, + "schema": { + "$ref": "#/definitions/LogCollectionRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Trigger Log Collection": { + "$ref": "./examples/TriggerLogCollection.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSecretsLocations": { + "post": { + "operationId": "Clusters_UpdateSecretsLocations", + "tags": [ + "Clusters" + ], + "description": "Update cluster secrets locations.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "The content of the action request", + "required": true, + "schema": { + "$ref": "#/definitions/SecretsLocationsChangeRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Cluster" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update secrets locations for a Cluster": { + "$ref": "./examples/Clusters_UpdateSecretsLocations.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSummaries": { + "get": { + "operationId": "UpdateSummaries_List", + "tags": [ + "UpdateSummariesOperationGroup" + ], + "description": "List all Update summaries under the HCI cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UpdateSummariesList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Update summaries under cluster resource": { + "$ref": "./examples/ListUpdateSummaries.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSummaries/default": { + "get": { + "operationId": "UpdateSummaries_Get", + "tags": [ + "UpdateSummariesOperationGroup" + ], + "description": "Get all Update summaries under the HCI cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UpdateSummaries" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Update summaries under cluster resource": { + "$ref": "./examples/GetUpdateSummaries.json" + } + } + }, + "put": { + "operationId": "UpdateSummaries_Put", + "tags": [ + "UpdateSummariesOperationGroup" + ], + "description": "Put Update summaries under the HCI cluster", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateLocationProperties", + "in": "body", + "description": "Properties of the UpdateSummaries resource", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateSummaries" + } + } + ], + "responses": { + "200": { + "description": "Resource 'UpdateSummaries' update operation succeeded", + "schema": { + "$ref": "#/definitions/UpdateSummaries" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Put Update summaries under cluster resource": { + "$ref": "./examples/PutUpdateSummaries.json" + } + } + }, + "delete": { + "operationId": "UpdateSummaries_Delete", + "tags": [ + "UpdateSummariesOperationGroup" + ], + "description": "Delete Update Summaries", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete an Update": { + "$ref": "./examples/DeleteUpdateSummaries.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates": { + "get": { + "operationId": "Updates_List", + "tags": [ + "Updates" + ], + "description": "List all Updates", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UpdateList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List available updates": { + "$ref": "./examples/ListUpdates.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}": { + "get": { + "operationId": "Updates_Get", + "tags": [ + "Updates" + ], + "description": "Get specified Update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Update" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a specific update": { + "$ref": "./examples/GetUpdates.json" + } + } + }, + "put": { + "operationId": "Updates_Put", + "tags": [ + "Updates" + ], + "description": "Put specified Update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + }, + { + "name": "updateProperties", + "in": "body", + "description": "Properties of the Updates object", + "required": true, + "schema": { + "$ref": "#/definitions/Update" + } + } + ], + "responses": { + "200": { + "description": "Resource 'Update' update operation succeeded", + "schema": { + "$ref": "#/definitions/Update" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Put a specific update": { + "$ref": "./examples/PutUpdates.json" + } + } + }, + "delete": { + "operationId": "Updates_Delete", + "tags": [ + "Updates" + ], + "description": "Delete specified Update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete an Update": { + "$ref": "./examples/DeleteUpdates.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/apply": { + "post": { + "operationId": "Updates_Post", + "tags": [ + "Updates" + ], + "description": "Apply Update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded." + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List available updates": { + "$ref": "./examples/PostUpdates.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns": { + "get": { + "operationId": "UpdateRuns_List", + "tags": [ + "UpdateRuns" + ], + "description": "List all Update runs for a specified update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UpdateRunList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Update runs under cluster resource": { + "$ref": "./examples/ListUpdateRuns.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns/{updateRunName}": { + "get": { + "operationId": "UpdateRuns_Get", + "tags": [ + "UpdateRuns" + ], + "description": "Get the Update run for a specified update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + }, + { + "name": "updateRunName", + "in": "path", + "description": "The name of the Update Run", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UpdateRun" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Update runs under cluster resource": { + "$ref": "./examples/GetUpdateRuns.json" + } + } + }, + "put": { + "operationId": "UpdateRuns_Put", + "tags": [ + "UpdateRuns" + ], + "description": "Put Update runs for a specified update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + }, + { + "name": "updateRunName", + "in": "path", + "description": "The name of the Update Run", + "required": true, + "type": "string" + }, + { + "name": "updateRunsProperties", + "in": "body", + "description": "Properties of the updateRuns object", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateRun" + } + } + ], + "responses": { + "200": { + "description": "Resource 'UpdateRun' update operation succeeded", + "schema": { + "$ref": "#/definitions/UpdateRun" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Update runs under cluster resource": { + "$ref": "./examples/PutUpdateRuns.json" + } + } + }, + "delete": { + "operationId": "UpdateRuns_Delete", + "tags": [ + "UpdateRuns" + ], + "description": "Delete specified Update Run", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "updateName", + "in": "path", + "description": "The name of the Update", + "required": true, + "type": "string" + }, + { + "name": "updateRunName", + "in": "path", + "description": "The name of the Update Run", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete an Update": { + "$ref": "./examples/DeleteUpdateRuns.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/uploadCertificate": { + "post": { + "operationId": "Clusters_UploadCertificate", + "tags": [ + "Clusters" + ], + "description": "Upload certificate.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the cluster.", + "required": true, + "type": "string" + }, + { + "name": "uploadCertificateRequest", + "in": "body", + "description": "Upload certificate request.", + "required": true, + "schema": { + "$ref": "#/definitions/UploadCertificateRequest" + } + } + ], + "responses": { + "202": { + "description": "Resource operation accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Upload certificate": { + "$ref": "./examples/UploadCertificate.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/edgeMachines": { + "get": { + "operationId": "EdgeMachines_ListByResourceGroup", + "tags": [ + "EdgeMachines" + ], + "description": "List all edge machines in a resource group.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeMachineListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List edge machines in a given resource group": { + "$ref": "./examples/EdgeMachines_ListByResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/edgeMachines/{edgeMachineName}": { + "get": { + "operationId": "EdgeMachines_Get", + "tags": [ + "EdgeMachines" + ], + "description": "Get an edge machine.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeMachineName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_]{3,63}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeMachine" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "EdgeMachines_Get_MaximumSet": { + "$ref": "./examples/EdgeMachines_Get.json" + } + } + }, + "put": { + "operationId": "EdgeMachines_CreateOrUpdate", + "tags": [ + "EdgeMachines" + ], + "description": "Create or update an edge machine.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeMachineName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_]{3,63}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/EdgeMachine" + } + } + ], + "responses": { + "200": { + "description": "Resource 'EdgeMachine' update operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeMachine" + } + }, + "201": { + "description": "Resource 'EdgeMachine' create operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeMachine" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "EdgeMachines_CreateOrUpdate": { + "$ref": "./examples/EdgeMachines_CreateOrUpdate.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "EdgeMachines_Update", + "tags": [ + "EdgeMachines" + ], + "description": "Update an edge machine.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeMachineName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_]{3,63}$" + }, + { + "name": "properties", + "in": "body", + "description": "The resource properties to be updated.", + "required": true, + "schema": { + "$ref": "#/definitions/EdgeMachinePatch" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeMachine" + } + }, + "202": { + "description": "Resource update request accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "EdgeMachines_Update": { + "$ref": "./examples/EdgeMachines_Update.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "EdgeMachines_Delete", + "tags": [ + "EdgeMachines" + ], + "description": "Delete an edge machine.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeMachineName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_]{3,63}$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "EdgeMachines_Delete_MaximumSet": { + "$ref": "./examples/EdgeMachines_Delete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/edgeMachines/{edgeMachineName}/jobs": { + "get": { + "operationId": "EdgeMachineJobs_List", + "tags": [ + "EdgeMachineJobs" + ], + "description": "List EdgeMachineJob resources by EdgeMachines", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeMachineName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_]{3,63}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeMachineJobListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "EdgeMachineJobs_List_MaximumSet": { + "$ref": "./examples/EdgeMachineJobs_List_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/edgeMachines/{edgeMachineName}/jobs/{jobsName}": { + "get": { + "operationId": "EdgeMachineJobs_Get", + "tags": [ + "EdgeMachineJobs" + ], + "description": "Get a EdgeMachineJob", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeMachineName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_]{3,63}$" + }, + { + "name": "jobsName", + "in": "path", + "description": "Name of EdgeMachineJob", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_]{3,63}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeMachineJob" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "EdgeMachineJobs_Get_CollectLog": { + "$ref": "./examples/EdgeMachineJobs_Get_CollectLog.json" + }, + "EdgeMachineJobs_Get_ProvisionOs": { + "$ref": "./examples/EdgeMachineJobs_Get_ProvisionOs.json" + }, + "EdgeMachineJobs_Get_RemoteSupport": { + "$ref": "./examples/EdgeMachineJobs_Get_RemoteSupport.json" + } + } + }, + "put": { + "operationId": "EdgeMachineJobs_CreateOrUpdate", + "tags": [ + "EdgeMachineJobs" + ], + "description": "Create a EdgeMachineJob", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeMachineName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_]{3,63}$" + }, + { + "name": "jobsName", + "in": "path", + "description": "Name of EdgeMachineJob", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_]{3,63}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/EdgeMachineJob" + } + } + ], + "responses": { + "200": { + "description": "Resource 'EdgeMachineJob' update operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeMachineJob" + } + }, + "201": { + "description": "Resource 'EdgeMachineJob' create operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeMachineJob" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "EdgeMachineJobs_CreateOrUpdate_CollectLog": { + "$ref": "./examples/EdgeMachineJobs_CreateOrUpdate_CollectLog.json" + }, + "EdgeMachineJobs_CreateOrUpdate_DownloadOs": { + "$ref": "./examples/EdgeMachineJobs_CreateOrUpdate_DownloadOs.json" + }, + "EdgeMachineJobs_CreateOrUpdate_ProvisionOs": { + "$ref": "./examples/EdgeMachineJobs_CreateOrUpdate_ProvisionOs.json" + }, + "EdgeMachineJobs_CreateOrUpdate_RemoteSupport": { + "$ref": "./examples/EdgeMachineJobs_CreateOrUpdate_RemoteSupport.json" + }, + "EdgeMachineJobs_CreateOrUpdate_UpdateOs": { + "$ref": "./examples/EdgeMachineJobs_CreateOrUpdate_UpdateOs.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "EdgeMachineJobs_Delete", + "tags": [ + "EdgeMachineJobs" + ], + "description": "Delete a EdgeMachineJob", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeMachineName", + "in": "path", + "description": "Name of Device", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_]{3,63}$" + }, + { + "name": "jobsName", + "in": "path", + "description": "Name of EdgeMachineJob", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-_]{3,63}$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "EdgeMachineJobs_Delete_MaximumSet": { + "$ref": "./examples/EdgeMachineJobs_Delete_MaximumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/locations/{location}/validateOwnershipVouchers": { + "post": { + "operationId": "OwnershipVouchers_Validate", + "description": "Validates ownership vouchers.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + }, + { + "name": "validationRequest", + "in": "body", + "description": "Ownership vouchers to be validated.", + "required": true, + "schema": { + "$ref": "#/definitions/ValidateOwnershipVouchersRequest" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ValidateOwnershipVouchersResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Validate ownership vouchers in a given resource group": { + "$ref": "./examples/ValidateOwnershipVouchers_ByResourceGroup.json" + } + } + } + } + }, + "definitions": { + "AccessLevel": { + "type": "string", + "description": "Remote Support Access Level", + "enum": [ + "Diagnostics", + "DiagnosticsAndRepair" + ], + "x-ms-enum": { + "name": "AccessLevel", + "modelAsString": true, + "values": [ + { + "name": "Diagnostics", + "value": "Diagnostics", + "description": "Allows remote diagnostics operations only." + }, + { + "name": "DiagnosticsAndRepair", + "value": "DiagnosticsAndRepair", + "description": "Allows both remote diagnostics and repair operations." + } + ] + } + }, + "ArcConnectivityProperties": { + "type": "object", + "description": "Connectivity related configuration required by arc server.", + "properties": { + "enabled": { + "type": "boolean", + "description": "True indicates ARC connectivity is enabled" + }, + "serviceConfigurations": { + "type": "array", + "description": "Service configurations associated with the connectivity resource. They are only processed by the server if 'enabled' property is set to 'true'.", + "items": { + "$ref": "#/definitions/ServiceConfiguration" + }, + "x-ms-identifiers": [ + "serviceName" + ] + } + } + }, + "ArcExtensionState": { + "type": "string", + "description": "Arc extension installation state.", + "enum": [ + "NotSpecified", + "Succeeded", + "Failed", + "Canceled", + "Accepted", + "Creating", + "Updating", + "Moving", + "Deleting", + "Deleted" + ], + "x-ms-enum": { + "name": "ArcExtensionState", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "Arc extension state is not specified." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Arc extension state is Succeeded." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Arc extension state is Failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Arc extension state is Canceled." + }, + { + "name": "Accepted", + "value": "Accepted", + "description": "Arc extension state is Accepted when extension installation triggered." + }, + { + "name": "Creating", + "value": "Creating", + "description": "Arc extension is in Creating State." + }, + { + "name": "Updating", + "value": "Updating", + "description": "Arc extension is in Updating State." + }, + { + "name": "Moving", + "value": "Moving", + "description": "Arc extension is in Moving State." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "Arc extension is in Deleting State." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "Arc extension is in Deleted State." + } + ] + }, + "readOnly": true + }, + "ArcIdentityResponse": { + "type": "object", + "description": "ArcIdentity details.", + "properties": { + "properties": { + "$ref": "#/definitions/ArcIdentityResponseProperties", + "description": "ArcIdentity properties.", + "readOnly": true, + "x-ms-client-flatten": true + } + } + }, + "ArcIdentityResponseProperties": { + "type": "object", + "properties": { + "arcApplicationClientId": { + "type": "string" + }, + "arcApplicationTenantId": { + "type": "string" + }, + "arcServicePrincipalObjectId": { + "type": "string" + }, + "arcApplicationObjectId": { + "type": "string" + } + } + }, + "ArcSetting": { + "type": "object", + "description": "ArcSetting details.", + "properties": { + "properties": { + "$ref": "#/definitions/ArcSettingProperties", + "description": "ArcSetting properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "ArcSettingAggregateState": { + "type": "string", + "description": "Aggregate state of Arc agent across the nodes in this HCI cluster.", + "enum": [ + "NotSpecified", + "Error", + "Succeeded", + "Canceled", + "Failed", + "Connected", + "Disconnected", + "Deleted", + "Creating", + "Updating", + "Deleting", + "Moving", + "PartiallySucceeded", + "PartiallyConnected", + "InProgress", + "Accepted", + "Provisioning", + "DisableInProgress" + ], + "x-ms-enum": { + "name": "ArcSettingAggregateState", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The aggregate state is not specified." + }, + { + "name": "Error", + "value": "Error", + "description": "An error occurred in the aggregate state." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The operation successfully completed across all nodes." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "The operation was canceled across the nodes." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The operation failed on all or most nodes." + }, + { + "name": "Connected", + "value": "Connected", + "description": "All nodes are connected." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "All nodes are disconnected." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "The Arc agent has been deleted from all nodes." + }, + { + "name": "Creating", + "value": "Creating", + "description": "The Arc agent is being created across the nodes." + }, + { + "name": "Updating", + "value": "Updating", + "description": "The Arc agent is being updated across the nodes." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The Arc agent is being deleted across the nodes." + }, + { + "name": "Moving", + "value": "Moving", + "description": "The Arc agent is being moved across the nodes." + }, + { + "name": "PartiallySucceeded", + "value": "PartiallySucceeded", + "description": "The operation succeeded on some nodes." + }, + { + "name": "PartiallyConnected", + "value": "PartiallyConnected", + "description": "Some nodes are connected, others are not." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "The operation is currently in progress across the nodes." + }, + { + "name": "Accepted", + "value": "Accepted", + "description": "The operation has been accepted and is pending execution." + }, + { + "name": "Provisioning", + "value": "Provisioning", + "description": "The Arc agent is being provisioned across the nodes." + }, + { + "name": "DisableInProgress", + "value": "DisableInProgress", + "description": "The Arc agent is being disabled across the nodes." + } + ] + }, + "readOnly": true + }, + "ArcSettingList": { + "type": "object", + "description": "List of ArcSetting proxy resources for the HCI cluster.", + "properties": { + "value": { + "type": "array", + "description": "The ArcSetting items on this page", + "items": { + "$ref": "#/definitions/ArcSetting" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ArcSettingProperties": { + "type": "object", + "description": "ArcSetting properties.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of the ArcSetting proxy resource.", + "readOnly": true + }, + "arcInstanceResourceGroup": { + "type": "string", + "description": "The resource group that hosts the Arc agents, ie. Hybrid Compute Machine resources." + }, + "arcApplicationClientId": { + "type": "string", + "description": "App id of arc AAD identity." + }, + "arcApplicationTenantId": { + "type": "string", + "description": "Tenant id of arc AAD identity." + }, + "arcServicePrincipalObjectId": { + "type": "string", + "description": "Object id of arc AAD service principal." + }, + "arcApplicationObjectId": { + "type": "string", + "description": "Object id of arc AAD identity." + }, + "aggregateState": { + "$ref": "#/definitions/ArcSettingAggregateState", + "description": "Aggregate state of Arc agent across the nodes in this HCI cluster.", + "readOnly": true + }, + "perNodeDetails": { + "type": "array", + "description": "State of Arc agent in each of the nodes.", + "items": { + "$ref": "#/definitions/PerNodeState" + }, + "readOnly": true + }, + "connectivityProperties": { + "$ref": "#/definitions/ArcConnectivityProperties", + "description": "contains connectivity related configuration for ARC resources" + }, + "defaultExtensions": { + "type": "array", + "description": "Properties for each of the default extensions category", + "items": { + "$ref": "#/definitions/DefaultExtensionDetails" + }, + "readOnly": true, + "x-ms-identifiers": [ + "category" + ] + } + } + }, + "ArcSettingsPatch": { + "type": "object", + "description": "ArcSetting details to update.", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "$ref": "#/definitions/ArcSettingsPatchProperties", + "description": "ArcSettings properties.", + "x-ms-client-flatten": true + } + } + }, + "ArcSettingsPatchProperties": { + "type": "object", + "description": "ArcSettings properties.", + "properties": { + "connectivityProperties": { + "$ref": "#/definitions/ArcConnectivityProperties", + "description": "contains connectivity related configuration for ARC resources" + } + } + }, + "AssemblyInfo": { + "type": "object", + "description": "Assembly Package details for Validated Solution Recipe for AzureStackHCI Cluster", + "properties": { + "packageVersion": { + "type": "string", + "description": "Assembly Package version for Validated Solution Recipe for AzureStackHCI Cluster", + "readOnly": true + }, + "payload": { + "type": "array", + "description": "Payload properties for Validated Solution Recipe for AzureStackHCI Cluster", + "items": { + "$ref": "#/definitions/AssemblyInfoPayload" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "AssemblyInfoPayload": { + "type": "object", + "description": "Payload properties for Validated Solution Recipe for AzureStackHCI Cluster", + "properties": { + "identifier": { + "type": "string", + "description": "assembly identifier for Validated Solution Recipe for AzureStackHCI Cluster", + "readOnly": true + }, + "hash": { + "type": "string", + "description": "Hash of assembly package for Validated Solution Recipe for AzureStackHCI Cluster", + "readOnly": true + }, + "fileName": { + "type": "string", + "description": "File name of assembly package for Validated Solution Recipe for AzureStackHCI Cluster", + "readOnly": true + }, + "url": { + "type": "string", + "description": "Url of assembly package for Validated Solution Recipe for AzureStackHCI Cluster", + "readOnly": true + } + } + }, + "AvailabilityType": { + "type": "string", + "description": "Indicates how the update content is made available for download. This determines whether the update is sourced locally, from an online repository, or requires user notification.", + "enum": [ + "Local", + "Online", + "Notify" + ], + "x-ms-enum": { + "name": "AvailabilityType", + "modelAsString": true, + "values": [ + { + "name": "Local", + "value": "Local", + "description": "The update content is available locally within the environment." + }, + { + "name": "Online", + "value": "Online", + "description": "The update content is available from an online source." + }, + { + "name": "Notify", + "value": "Notify", + "description": "The system will notify the user when update content becomes available." + } + ] + } + }, + "ChangeRingRequest": { + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/ChangeRingRequestProperties" + } + } + }, + "ChangeRingRequestProperties": { + "type": "object", + "properties": { + "targetRing": { + "type": "string", + "description": "The target ring for the cluster." + } + } + }, + "Cluster": { + "type": "object", + "description": "Cluster details.", + "properties": { + "properties": { + "$ref": "#/definitions/ClusterProperties", + "description": "Cluster properties.", + "x-ms-client-flatten": true + }, + "identity": { + "$ref": "../../../../../../common-types/resource-management/v6/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The managed service identities assigned to this resource.", + "x-ms-client-flatten": true + }, + "kind": { + "type": "string", + "description": "This property identifies the purpose of the Cluster deployment. For example, a valid value is AzureLocal", + "pattern": "^[-\\w\\._,\\(\\\\\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/TrackedResource" + } + ] + }, + "ClusterDesiredProperties": { + "type": "object", + "description": "Desired properties of the cluster.", + "properties": { + "windowsServerSubscription": { + "$ref": "#/definitions/WindowsServerSubscription", + "description": "Desired state of Windows Server Subscription." + }, + "diagnosticLevel": { + "$ref": "#/definitions/DiagnosticLevel", + "description": "Desired level of diagnostic data emitted by the cluster." + } + } + }, + "ClusterIdentityResponse": { + "type": "object", + "description": "Cluster Identity details.", + "properties": { + "properties": { + "$ref": "#/definitions/ClusterIdentityResponseProperties", + "description": "Cluster identity properties.", + "readOnly": true, + "x-ms-client-flatten": true + } + } + }, + "ClusterIdentityResponseProperties": { + "type": "object", + "properties": { + "aadClientId": { + "type": "string" + }, + "aadTenantId": { + "type": "string" + }, + "aadServicePrincipalObjectId": { + "type": "string" + }, + "aadApplicationObjectId": { + "type": "string" + } + } + }, + "ClusterList": { + "type": "object", + "description": "List of clusters.", + "properties": { + "value": { + "type": "array", + "description": "The Cluster items on this page", + "items": { + "$ref": "#/definitions/Cluster" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ClusterNode": { + "type": "object", + "description": "Cluster node details.", + "properties": { + "name": { + "type": "string", + "description": "Name of the cluster node.", + "readOnly": true + }, + "id": { + "type": "number", + "format": "float", + "description": "Id of the node in the cluster.", + "readOnly": true + }, + "windowsServerSubscription": { + "$ref": "#/definitions/WindowsServerSubscription", + "description": "State of Windows Server Subscription.", + "readOnly": true + }, + "nodeType": { + "$ref": "#/definitions/ClusterNodeType", + "description": "Type of the cluster node hardware.", + "readOnly": true + }, + "ehcResourceId": { + "type": "string", + "description": "Edge Hardware Center Resource Id", + "readOnly": true + }, + "manufacturer": { + "type": "string", + "description": "Manufacturer of the cluster node hardware.", + "readOnly": true + }, + "model": { + "type": "string", + "description": "Model name of the cluster node hardware.", + "readOnly": true + }, + "osName": { + "type": "string", + "description": "Operating system running on the cluster node.", + "readOnly": true + }, + "osVersion": { + "type": "string", + "description": "Version of the operating system running on the cluster node.", + "readOnly": true + }, + "osDisplayVersion": { + "type": "string", + "description": "Display version of the operating system running on the cluster node.", + "readOnly": true + }, + "serialNumber": { + "type": "string", + "description": "Immutable id of the cluster node.", + "readOnly": true + }, + "coreCount": { + "type": "number", + "format": "float", + "description": "Number of physical cores on the cluster node.", + "readOnly": true + }, + "memoryInGiB": { + "type": "number", + "format": "float", + "description": "Total available memory on the cluster node (in GiB).", + "readOnly": true + }, + "lastLicensingTimestamp": { + "type": "string", + "format": "date-time", + "description": "Most recent licensing timestamp.", + "readOnly": true + }, + "oemActivation": { + "$ref": "#/definitions/OemActivation", + "description": "OEM activation status of the node.", + "readOnly": true + } + } + }, + "ClusterNodeType": { + "type": "string", + "description": "Specifies the type of hardware vendor for all nodes in the cluster. Indicates whether the nodes are provided by Microsoft or a third-party vendor.", + "enum": [ + "FirstParty", + "ThirdParty" + ], + "x-ms-enum": { + "name": "ClusterNodeType", + "modelAsString": true, + "values": [ + { + "name": "FirstParty", + "value": "FirstParty", + "description": "All nodes in the cluster are provided and managed by Microsoft." + }, + { + "name": "ThirdParty", + "value": "ThirdParty", + "description": "All nodes in the cluster are provided and managed by a third-party vendor." + } + ] + } + }, + "ClusterPatch": { + "type": "object", + "description": "Cluster details to update.", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "identity": { + "$ref": "../../../../../../common-types/resource-management/v6/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "Identity of Cluster resource", + "x-ms-client-flatten": true + }, + "properties": { + "$ref": "#/definitions/ClusterPatchProperties", + "description": "Cluster properties.", + "x-ms-client-flatten": true + } + } + }, + "ClusterPatchProperties": { + "type": "object", + "description": "Cluster properties.", + "properties": { + "cloudManagementEndpoint": { + "type": "string", + "description": "Endpoint configured for management from the Azure portal" + }, + "aadClientId": { + "type": "string", + "description": "App id of cluster AAD identity." + }, + "aadTenantId": { + "type": "string", + "description": "Tenant id of cluster AAD identity." + }, + "desiredProperties": { + "$ref": "#/definitions/ClusterDesiredProperties", + "description": "Desired properties of the cluster." + } + } + }, + "ClusterPattern": { + "type": "string", + "description": "Supported Storage Pattern for HCI Cluster", + "enum": [ + "Standard", + "RackAware" + ], + "x-ms-enum": { + "name": "ClusterPattern", + "modelAsString": true, + "values": [ + { + "name": "Standard", + "value": "Standard", + "description": "Standard cluster." + }, + { + "name": "RackAware", + "value": "RackAware", + "description": "RackAware cluster." + } + ] + } + }, + "ClusterProperties": { + "type": "object", + "description": "Cluster properties.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state. Indicates the current lifecycle status of the resource, including creation, update, deletion, connectivity, and error states.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/Status", + "description": "Status of the cluster agent. Indicates the current connectivity, validation, and deployment state of the agent within the cluster.", + "readOnly": true + }, + "connectivityStatus": { + "$ref": "#/definitions/ConnectivityStatus", + "description": "Overall connectivity status for the cluster resource. Indicates whether the cluster is connected to Azure, partially connected, or has not recently communicated.", + "readOnly": true + }, + "supportStatus": { + "$ref": "#/definitions/SupportStatus", + "description": "Indicates whether the cluster is under support.", + "readOnly": true + }, + "cloudId": { + "type": "string", + "description": "Unique, immutable resource id.", + "readOnly": true + }, + "ring": { + "type": "string", + "description": "The ring to which this cluster belongs to.", + "readOnly": true + }, + "cloudManagementEndpoint": { + "type": "string", + "description": "Endpoint configured for management from the Azure portal." + }, + "aadClientId": { + "type": "string", + "description": "App id of cluster AAD identity." + }, + "aadTenantId": { + "type": "string", + "description": "Tenant id of cluster AAD identity." + }, + "aadApplicationObjectId": { + "type": "string", + "description": "Object id of cluster AAD identity." + }, + "aadServicePrincipalObjectId": { + "type": "string", + "description": "Id of cluster identity service principal." + }, + "softwareAssuranceProperties": { + "$ref": "#/definitions/SoftwareAssuranceProperties", + "description": "Software Assurance properties of the cluster." + }, + "isManagementCluster": { + "type": "boolean", + "description": "Is Management Cluster, when true indicates that the cluster is used for managing other clusters", + "readOnly": true + }, + "logCollectionProperties": { + "$ref": "#/definitions/LogCollectionProperties", + "description": "Log Collection properties of the cluster." + }, + "remoteSupportProperties": { + "$ref": "#/definitions/RemoteSupportProperties", + "description": "RemoteSupport properties of the cluster." + }, + "desiredProperties": { + "$ref": "#/definitions/ClusterDesiredProperties", + "description": "Desired properties of the cluster." + }, + "reportedProperties": { + "$ref": "#/definitions/ClusterReportedProperties", + "description": "Properties reported by cluster agent.", + "readOnly": true + }, + "isolatedVmAttestationConfiguration": { + "$ref": "#/definitions/IsolatedVmAttestationConfiguration", + "description": "Attestation configurations for isolated VM (e.g. TVM, CVM) of the cluster.", + "readOnly": true + }, + "trialDaysRemaining": { + "type": "number", + "format": "float", + "description": "Number of days remaining in the trial period.", + "readOnly": true + }, + "billingModel": { + "type": "string", + "description": "Type of billing applied to the resource.", + "readOnly": true + }, + "registrationTimestamp": { + "type": "string", + "format": "date-time", + "description": "First cluster sync timestamp.", + "readOnly": true + }, + "lastSyncTimestamp": { + "type": "string", + "format": "date-time", + "description": "Most recent cluster sync timestamp.", + "readOnly": true + }, + "lastBillingTimestamp": { + "type": "string", + "format": "date-time", + "description": "Most recent billing meter timestamp.", + "readOnly": true + }, + "serviceEndpoint": { + "type": "string", + "description": "Region specific DataPath Endpoint of the cluster.", + "readOnly": true + }, + "resourceProviderObjectId": { + "type": "string", + "description": "Object id of RP Service Principal", + "readOnly": true + }, + "secretsLocations": { + "type": "array", + "description": "List of secret locations.", + "items": { + "$ref": "#/definitions/SecretsLocationDetails" + }, + "x-ms-identifiers": [] + }, + "clusterPattern": { + "$ref": "#/definitions/ClusterPattern", + "description": "Supported Storage Type for HCI Cluster", + "readOnly": true + }, + "confidentialVmProperties": { + "$ref": "#/definitions/ConfidentialVmProperties", + "description": "Represents the Confidential Virtual Machine (CVM) support intent and current status for the cluster resource.", + "readOnly": true + }, + "sdnProperties": { + "$ref": "#/definitions/ClusterSdnProperties", + "description": "Software Defined Networking Properties of the cluster", + "readOnly": true + }, + "localAvailabilityZones": { + "type": "array", + "description": "Local Availability Zone information for HCI cluster", + "items": { + "$ref": "#/definitions/LocalAvailabilityZones" + }, + "x-ms-identifiers": [ + "localAvailabilityZoneName" + ] + }, + "identityProvider": { + "type": "string", + "description": "Identity Provider for the cluster", + "default": "ActiveDirectory", + "enum": [ + "ActiveDirectory", + "LocalIdentity" + ], + "x-ms-enum": { + "name": "IdentityProvider", + "modelAsString": true, + "values": [ + { + "name": "ActiveDirectory", + "value": "ActiveDirectory", + "description": "Uses Active Directory as the identity provider, enabling domain-based authentication and centralized identity management. This is the default option." + }, + { + "name": "LocalIdentity", + "value": "LocalIdentity", + "description": "Uses a local identity system integrated with Azure Key Vault for authentication. Suitable for AD-less environments where Active Directory is not available or required." + } + ] + }, + "readOnly": true + } + } + }, + "ClusterReportedProperties": { + "type": "object", + "description": "Properties reported by cluster agent.", + "properties": { + "clusterName": { + "type": "string", + "description": "Name of the on-prem cluster connected to this resource.", + "readOnly": true + }, + "clusterId": { + "type": "string", + "description": "Unique id generated by the on-prem cluster.", + "readOnly": true + }, + "clusterVersion": { + "type": "string", + "description": "Version of the cluster software.", + "readOnly": true + }, + "nodes": { + "type": "array", + "description": "List of nodes reported by the cluster.", + "items": { + "$ref": "#/definitions/ClusterNode" + }, + "readOnly": true + }, + "lastUpdated": { + "type": "string", + "format": "date-time", + "description": "Last time the cluster reported the data.", + "readOnly": true + }, + "msiExpirationTimeStamp": { + "type": "string", + "format": "date-time", + "description": "Specifies the expiration timestamp of the cluster's Managed Service Identity (MSI). The value is expressed in Coordinated Universal Time (UTC).", + "readOnly": true + }, + "imdsAttestation": { + "$ref": "#/definitions/ImdsAttestation", + "description": "IMDS attestation status of the cluster.", + "readOnly": true + }, + "diagnosticLevel": { + "$ref": "#/definitions/DiagnosticLevel", + "description": "Level of diagnostic data emitted by the cluster." + }, + "supportedCapabilities": { + "type": "array", + "description": "Capabilities supported by the cluster.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "clusterType": { + "$ref": "#/definitions/ClusterNodeType", + "description": "Specifies the type of hardware vendor for all nodes in the cluster. Indicates whether the nodes are provided by Microsoft or a third-party vendor.", + "readOnly": true + }, + "manufacturer": { + "type": "string", + "description": "The manufacturer of all the nodes of the cluster.", + "readOnly": true + }, + "oemActivation": { + "$ref": "#/definitions/OemActivation", + "description": "OEM activation status of the cluster.", + "readOnly": true + }, + "hardwareClass": { + "type": "string", + "description": "Hardware class of the cluster.", + "default": "Medium", + "enum": [ + "Small", + "Medium", + "Large" + ], + "x-ms-enum": { + "name": "HardwareClass", + "modelAsString": true, + "values": [ + { + "name": "Small", + "value": "Small", + "description": "The hardware class is small." + }, + { + "name": "Medium", + "value": "Medium", + "description": "The hardware class is medium. This corresponds to the default" + }, + { + "name": "Large", + "value": "Large", + "description": "The hardware class is large." + } + ] + }, + "readOnly": true + } + } + }, + "ClusterSdnProperties": { + "type": "object", + "description": "Represents the Software Defined Networking (SDN) configuration state of the Azure Stack HCI cluster.", + "properties": { + "sdnIntegrationIntent": { + "$ref": "#/definitions/SdnIntegrationIntent", + "description": "Indicates whether Software Defined Networking (SDN) integration should be enabled or disabled for this deployment.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/SdnProperties" + } + ] + }, + "CollectLogJobProperties": { + "type": "object", + "description": "Represents the properties of a log collection job.", + "properties": { + "fromDate": { + "type": "string", + "format": "date-time", + "description": "From date for log collection." + }, + "toDate": { + "type": "string", + "format": "date-time", + "description": "To date for log collection." + }, + "lastLogGenerated": { + "type": "string", + "format": "date-time", + "description": "To date for log collection.", + "readOnly": true + }, + "reportedProperties": { + "$ref": "#/definitions/LogCollectionReportedProperties", + "description": "log collection job reported properties.", + "readOnly": true + } + }, + "required": [ + "fromDate", + "toDate" + ] + }, + "ComplianceAssignmentType": { + "type": "string", + "description": "Represents the compliance assignment type of a resource.", + "enum": [ + "Audit", + "ApplyAndAutoCorrect" + ], + "x-ms-enum": { + "name": "ComplianceAssignmentType", + "modelAsString": true, + "values": [ + { + "name": "Audit", + "value": "Audit", + "description": "Report on the state of the machine, but don't make changes." + }, + { + "name": "ApplyAndAutoCorrect", + "value": "ApplyAndAutoCorrect", + "description": "Applied to the machine. If it drifts, the local service inside the machine makes a correction at the next evaluation." + } + ] + } + }, + "ComplianceStatus": { + "type": "string", + "description": "Represents the compliance status of a resource.", + "enum": [ + "Compliant", + "NonCompliant", + "Pending" + ], + "x-ms-enum": { + "name": "ComplianceStatus", + "modelAsString": true, + "values": [ + { + "name": "Compliant", + "value": "Compliant", + "description": "The resource is compliant" + }, + { + "name": "NonCompliant", + "value": "NonCompliant", + "description": "The resource is non-compliant" + }, + { + "name": "Pending", + "value": "Pending", + "description": "The resource compliance status is pending" + } + ] + } + }, + "ConfidentialVmIntent": { + "type": "string", + "description": "Captures the customer's intent to enable or disable Confidential Virtual Machine (CVM) support on the cluster, either during initial deployment (Day-0) or at a later stage (Day-N).", + "enum": [ + "Enable", + "Disable" + ], + "x-ms-enum": { + "name": "ConfidentialVmIntent", + "modelAsString": true, + "values": [ + { + "name": "Enable", + "value": "Enable", + "description": "Indicates that the customer intends to enable CVM support on the cluster." + }, + { + "name": "Disable", + "value": "Disable", + "description": "Indicates that the customer intends to disable CVM support on the cluster." + } + ] + } + }, "ConfidentialVmProfile": { "type": "object", - "description": "Represents the Confidential Virtual Machine (CVM) configuration status for an edge device. It includes the current IGVM support state and detailed component-level status information.", + "description": "Represents the Confidential Virtual Machine (CVM) configuration status for an edge device. It includes the current IGVM support state and detailed component-level status information.", + "properties": { + "igvmStatus": { + "$ref": "#/definitions/IgvmStatus", + "description": "Indicates whether Independent Guest Virtual Machine (IGVM) support is available on the device. This will be 'Enabled' if the device supports CVMs, 'Disabled' if not, and 'Unknown' if the status cannot be determined.", + "readOnly": true + }, + "statusDetails": { + "type": "array", + "description": "Provides detailed status entries for IGVM-related components, including deployment status, compatibility checks, and error diagnostics.", + "items": { + "$ref": "#/definitions/IgvmStatusDetail" + }, + "x-ms-identifiers": [ + "code" + ] + } + } + }, + "ConfidentialVmProperties": { + "type": "object", + "description": "Represents the Confidential Virtual Machine (CVM) support intent and current status for the cluster resource.", + "properties": { + "confidentialVmIntent": { + "type": "string", + "description": "Captures the customer's intent to enable or disable CVM support on the cluster, either during initial deployment (Day-0) or at a later stage (Day-N).", + "default": "Disable", + "enum": [ + "Enable", + "Disable" + ], + "x-ms-enum": { + "name": "ConfidentialVmIntent", + "modelAsString": true, + "values": [ + { + "name": "Enable", + "value": "Enable", + "description": "Indicates that the customer intends to enable CVM support on the cluster." + }, + { + "name": "Disable", + "value": "Disable", + "description": "Indicates that the customer intends to disable CVM support on the cluster." + } + ] + }, + "readOnly": true + }, + "confidentialVmStatus": { + "type": "string", + "description": "Captures the current status of CVM support on the cluster.", + "default": "Disabled", + "enum": [ + "Enabled", + "PartiallyEnabled", + "Disabled" + ], + "x-ms-enum": { + "name": "ConfidentialVmStatus", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "CVM support is fully enabled on the cluster. All nodes are CVM capable." + }, + { + "name": "PartiallyEnabled", + "value": "PartiallyEnabled", + "description": "CVM support is partially enabled. At least one node in the cluster is CVM capable." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "CVM support is disabled. None of the nodes in the cluster are CVM capable." + } + ] + }, + "readOnly": true + }, + "confidentialVmStatusSummary": { + "type": "string", + "description": "Additional context about CVM support on the cluster, such as reasons for partial enablement or hardware constraints.", + "readOnly": true + } + } + }, + "ConfidentialVmStatus": { + "type": "string", + "description": "Captures the current status of Confidential Virtual Machine (CVM) support on the cluster.", + "enum": [ + "Enabled", + "PartiallyEnabled", + "Disabled" + ], + "x-ms-enum": { + "name": "ConfidentialVmStatus", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "CVM support is fully enabled on the cluster. All nodes are CVM capable." + }, + { + "name": "PartiallyEnabled", + "value": "PartiallyEnabled", + "description": "CVM support is partially enabled. At least one node in the cluster is CVM capable." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "CVM support is disabled. None of the nodes in the cluster are CVM capable." + } + ] + } + }, + "ConnectivityStatus": { + "type": "string", + "description": "Overall connectivity status for the cluster resource. Indicates whether the cluster is connected to Azure, partially connected, or has not recently communicated.", + "enum": [ + "NotYetRegistered", + "Connected", + "NotConnectedRecently", + "PartiallyConnected", + "Disconnected", + "NotSpecified" + ], + "x-ms-enum": { + "name": "ConnectivityStatus", + "modelAsString": true, + "values": [ + { + "name": "NotYetRegistered", + "value": "NotYetRegistered", + "description": "The cluster has not yet registered with Azure." + }, + { + "name": "Connected", + "value": "Connected", + "description": "The cluster is fully connected to Azure." + }, + { + "name": "NotConnectedRecently", + "value": "NotConnectedRecently", + "description": "The cluster has not connected to Azure recently." + }, + { + "name": "PartiallyConnected", + "value": "PartiallyConnected", + "description": "Some components of the cluster are connected, while others are not." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The cluster is not connected to Azure." + }, + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The connectivity status is not specified." + } + ] + } + }, + "ContentPayload": { + "type": "object", + "description": "Represents details of a specific update content payload.", + "properties": { + "url": { + "type": "string", + "description": "Represents url of a update payload." + }, + "hash": { + "type": "string", + "description": "Represents hash of a update payload." + }, + "hashAlgorithm": { + "type": "string", + "description": "Represents hash algorithm of a update payload." + }, + "identifier": { + "type": "string", + "description": "Represents identifier of a update payload." + }, + "packageSizeInBytes": { + "type": "string", + "description": "Represents size in bytes of a update payload." + }, + "group": { + "type": "string", + "description": "Represents the group of a update payload." + }, + "fileName": { + "type": "string", + "description": "Represents the file name of a update payload." + } + } + }, + "DefaultExtensionDetails": { + "type": "object", + "description": "Properties for a particular default extension category.", + "properties": { + "category": { + "type": "string", + "description": "Default extension category", + "readOnly": true + }, + "consentTime": { + "type": "string", + "format": "date-time", + "description": "Consent time for extension category", + "readOnly": true + } + } + }, + "DeploymentCluster": { + "type": "object", + "description": "AzureStackHCI Cluster deployment properties.", + "properties": { + "name": { + "type": "string", + "description": "The cluster name provided when preparing Active Directory." + }, + "witnessType": { + "type": "string", + "description": "Use a cloud witness if you have internet access and if you use an Azure Storage account to provide a vote on cluster quorum. A cloud witness uses Azure Blob Storage to read or write a blob file and then uses it to arbitrate in split-brain resolution. Only allowed values are 'Cloud', 'FileShare'." + }, + "witnessPath": { + "type": "string", + "description": "Specify the fileshare path for the local witness for your Azure Stack HCI cluster." + }, + "cloudAccountName": { + "type": "string", + "description": "Specify the Azure Storage account name for cloud witness for your Azure Stack HCI cluster." + }, + "azureServiceEndpoint": { + "type": "string", + "description": "For Azure blob service endpoint type, select either Default or Custom domain. If you selected **Custom domain, enter the domain for the blob service in this format core.windows.net." + }, + "hardwareClass": { + "type": "string", + "description": "Hardware class of the cluster.", + "default": "Medium", + "enum": [ + "Small", + "Medium", + "Large" + ], + "x-ms-enum": { + "name": "HardwareClass", + "modelAsString": true, + "values": [ + { + "name": "Small", + "value": "Small", + "description": "The hardware class is small." + }, + { + "name": "Medium", + "value": "Medium", + "description": "The hardware class is medium. This corresponds to the default" + }, + { + "name": "Large", + "value": "Large", + "description": "The hardware class is large." + } + ] + }, + "readOnly": true + }, + "clusterPattern": { + "$ref": "#/definitions/ClusterPattern", + "description": "Cluster Pattern supported." + } + } + }, + "DeploymentConfiguration": { + "type": "object", + "description": "Deployment Configuration", + "properties": { + "version": { + "type": "string", + "description": "deployment template version" + }, + "scaleUnits": { + "type": "array", + "description": "Scale units will contains list of deployment data", + "items": { + "$ref": "#/definitions/ScaleUnits" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "scaleUnits" + ] + }, + "DeploymentData": { + "type": "object", + "description": "The Deployment data of AzureStackHCI Cluster.", + "properties": { + "securitySettings": { + "$ref": "#/definitions/DeploymentSecuritySettings", + "description": "SecuritySettings to deploy AzureStackHCI Cluster." + }, + "observability": { + "$ref": "#/definitions/Observability", + "description": "Observability config to deploy AzureStackHCI Cluster." + }, + "cluster": { + "$ref": "#/definitions/DeploymentCluster", + "description": "Observability config to deploy AzureStackHCI Cluster." + }, + "identityProvider": { + "$ref": "#/definitions/IdentityProvider", + "description": "Identity Provider for the cluster" + }, + "storage": { + "$ref": "#/definitions/Storage", + "description": "Storage config to deploy AzureStackHCI Cluster." + }, + "namingPrefix": { + "type": "string", + "description": "naming prefix to deploy cluster.", + "pattern": "^[a-zA-Z0-9-]{1,8}$" + }, + "domainFqdn": { + "type": "string", + "description": "FQDN to deploy cluster" + }, + "infrastructureNetwork": { + "type": "array", + "description": "InfrastructureNetwork config to deploy AzureStackHCI Cluster.", + "items": { + "$ref": "#/definitions/InfrastructureNetwork" + }, + "x-ms-identifiers": [] + }, + "physicalNodes": { + "type": "array", + "description": "list of physical nodes config to deploy AzureStackHCI Cluster.", + "items": { + "$ref": "#/definitions/PhysicalNodes" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "hostNetwork": { + "$ref": "#/definitions/DeploymentSettingHostNetwork", + "description": "HostNetwork config to deploy AzureStackHCI Cluster." + }, + "sdnIntegration": { + "$ref": "#/definitions/SdnIntegration", + "description": "SDN Integration config to deploy AzureStackHCI Cluster." + }, + "isManagementCluster": { + "type": "boolean", + "description": "Is Management Cluster, when true indicates that the cluster is used for managing other clusters" + }, + "adouPath": { + "type": "string", + "description": "The path to the Active Directory Organizational Unit container object prepared for the deployment." + }, + "secretsLocation": { + "type": "string", + "description": "Azure key vault endpoint. This property is deprecated from 2023-12-01-preview. Please use secrets property instead." + }, + "secrets": { + "type": "array", + "description": "secrets used for cloud deployment.", + "items": { + "$ref": "#/definitions/EceDeploymentSecrets" + }, + "x-ms-identifiers": [ + "secretName" + ] + }, + "optionalServices": { + "$ref": "#/definitions/OptionalServices", + "description": "OptionalServices config to deploy AzureStackHCI Cluster." + }, + "localAvailabilityZones": { + "type": "array", + "description": "Local Availability Zone information for HCI cluster", + "items": { + "$ref": "#/definitions/LocalAvailabilityZones" + }, + "x-ms-identifiers": [ + "localAvailabilityZoneName" + ] + }, + "assemblyInfo": { + "$ref": "#/definitions/AssemblyInfo", + "description": "Assembly Package details for Validated Solution Recipe for AzureStackHCI Cluster" + } + } + }, + "DeploymentMode": { + "type": "string", + "description": "Deployment mode to trigger job.", + "enum": [ + "Validate", + "Deploy" + ], + "x-ms-enum": { + "name": "DeploymentMode", + "modelAsString": true, + "values": [ + { + "name": "Validate", + "value": "Validate", + "description": "Validate ECE action deployment for a cluster." + }, + { + "name": "Deploy", + "value": "Deploy", + "description": "Deploy ECE action deployment for a cluster." + } + ] + } + }, + "DeploymentSecuritySettings": { + "type": "object", + "description": "The SecuritySettings of AzureStackHCI Cluster.", + "properties": { + "hvciProtection": { + "type": "boolean", + "description": "By default, Hypervisor-protected Code Integrity is enabled on your Azure HCI cluster.", + "default": true + }, + "drtmProtection": { + "type": "boolean", + "description": "By default, Secure Boot is enabled on your Azure HCI cluster. This setting is hardware dependent.", + "default": true + }, + "driftControlEnforced": { + "type": "boolean", + "description": "When set to true, the security baseline is re-applied regularly.", + "default": true + }, + "credentialGuardEnforced": { + "type": "boolean", + "description": "When set to true, Credential Guard is enabled.", + "default": false + }, + "smbSigningEnforced": { + "type": "boolean", + "description": "When set to true, the SMB default instance requires sign in for the client and server services.", + "default": true + }, + "smbClusterEncryption": { + "type": "boolean", + "description": "When set to true, cluster east-west traffic is encrypted.", + "default": false + }, + "sideChannelMitigationEnforced": { + "type": "boolean", + "description": "When set to true, all the side channel mitigations are enabled", + "default": true + }, + "bitlockerBootVolume": { + "type": "boolean", + "description": "When set to true, BitLocker XTS_AES 256-bit encryption is enabled for all data-at-rest on the OS volume of your Azure Stack HCI cluster. This setting is TPM-hardware dependent.", + "default": true + }, + "bitlockerDataVolumes": { + "type": "boolean", + "description": "When set to true, BitLocker XTS-AES 256-bit encryption is enabled for all data-at-rest on your Azure Stack HCI cluster shared volumes.", + "default": true + }, + "wdacEnforced": { + "type": "boolean", + "description": "WDAC is enabled by default and limits the applications and the code that you can run on your Azure Stack HCI cluster.", + "default": true + } + } + }, + "DeploymentSetting": { + "type": "object", + "description": "Edge device resource", + "properties": { + "properties": { + "$ref": "#/definitions/DeploymentSettingsProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true, + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "DeploymentSettingAdapterPropertyOverrides": { + "type": "object", + "description": "The AdapterPropertyOverrides of a cluster.", + "properties": { + "jumboPacket": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." + }, + "networkDirect": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." + }, + "networkDirectTechnology": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. Expected values are 'iWARP', 'RoCEv2', 'RoCE'" + } + } + }, + "DeploymentSettingHostNetwork": { + "type": "object", + "description": "The HostNetwork of a cluster.", + "properties": { + "intents": { + "type": "array", + "description": "The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.", + "items": { + "$ref": "#/definitions/DeploymentSettingIntents" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "storageNetworks": { + "type": "array", + "description": "List of StorageNetworks config to deploy AzureStackHCI Cluster.", + "items": { + "$ref": "#/definitions/DeploymentSettingStorageNetworks" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "storageConnectivitySwitchless": { + "type": "boolean", + "description": "Defines how the storage adapters between nodes are connected either switch or switch less..", + "default": false + }, + "enableStorageAutoIp": { + "type": "boolean", + "description": "Optional parameter required only for 3 Nodes Switchless deployments. This allows users to specify IPs and Mask for Storage NICs when Network ATC is not assigning the IPs for storage automatically.", + "default": false + } + } + }, + "DeploymentSettingIntents": { + "type": "object", + "description": "The Intents of a cluster.", + "properties": { + "name": { + "type": "string", + "description": "Name of the network intent you wish to create." + }, + "trafficType": { + "type": "array", + "description": "List of network traffic types. Only allowed values are 'Compute', 'Storage', 'Management'.", + "items": { + "type": "string" + } + }, + "adapter": { + "type": "array", + "description": "Array of network interfaces used for the network intent.", + "items": { + "type": "string" + } + }, + "overrideVirtualSwitchConfiguration": { + "type": "boolean", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "default": false + }, + "virtualSwitchConfigurationOverrides": { + "$ref": "#/definitions/DeploymentSettingVirtualSwitchConfigurationOverrides", + "description": "Set virtualSwitch ConfigurationOverrides for cluster." + }, + "overrideQosPolicy": { + "type": "boolean", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "default": false + }, + "qosPolicyOverrides": { + "$ref": "#/definitions/QosPolicyOverrides", + "description": "Set QoS PolicyOverrides for cluster." + }, + "overrideAdapterProperty": { + "type": "boolean", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "default": false + }, + "adapterPropertyOverrides": { + "$ref": "#/definitions/DeploymentSettingAdapterPropertyOverrides", + "description": "Set Adapter PropertyOverrides for cluster." + } + } + }, + "DeploymentSettingListResult": { + "type": "object", + "description": "The response of a DeploymentSetting list operation.", + "properties": { + "value": { + "type": "array", + "description": "The DeploymentSetting items on this page", + "items": { + "$ref": "#/definitions/DeploymentSetting" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "DeploymentSettingStorageAdapterIPInfo": { + "type": "object", + "description": "The StorageAdapter physical nodes of a cluster.", + "properties": { + "physicalNode": { + "type": "string", + "description": "storage adapter physical node name." + }, + "ipv4Address": { + "type": "string", + "description": "The IPv4 address assigned to each storage adapter physical node on your Azure Stack HCI cluster." + }, + "subnetMask": { + "type": "string", + "description": "The SubnetMask address assigned to each storage adapter physical node on your Azure Stack HCI cluster." + } + } + }, + "DeploymentSettingStorageNetworks": { + "type": "object", + "description": "The StorageNetworks of a cluster.", + "properties": { + "name": { + "type": "string", + "description": "Name of the storage network." + }, + "networkAdapterName": { + "type": "string", + "description": "Name of the storage network adapter." + }, + "vlanId": { + "type": "string", + "description": "ID specified for the VLAN storage network. This setting is applied to the network interfaces that route the storage and VM migration traffic." + }, + "storageAdapterIPInfo": { + "type": "array", + "description": "List of Storage adapter physical nodes config to deploy AzureStackHCI Cluster.", + "items": { + "$ref": "#/definitions/DeploymentSettingStorageAdapterIPInfo" + }, + "x-ms-identifiers": [ + "physicalNode" + ] + } + } + }, + "DeploymentSettingVirtualSwitchConfigurationOverrides": { + "type": "object", + "description": "The VirtualSwitchConfigurationOverrides of a cluster.", + "properties": { + "enableIov": { + "type": "string", + "description": "Enable IoV for Virtual Switch" + }, + "loadBalancingAlgorithm": { + "type": "string", + "description": "Load Balancing Algorithm for Virtual Switch" + } + } + }, + "DeploymentSettingsProperties": { + "type": "object", + "description": "DeploymentSetting properties", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "DeploymentSetting provisioning state", + "readOnly": true + }, + "arcNodeResourceIds": { + "type": "array", + "description": "Azure resource ids of Arc machines to be part of cluster.", + "items": { + "type": "string" + } + }, + "deploymentMode": { + "$ref": "#/definitions/DeploymentMode", + "description": "The deployment mode for cluster deployment." + }, + "operationType": { + "type": "string", + "description": "The intended operation for a cluster.", + "default": "ClusterProvisioning", + "enum": [ + "ClusterProvisioning", + "ClusterUpgrade" + ], + "x-ms-enum": { + "name": "OperationType", + "modelAsString": true, + "values": [ + { + "name": "ClusterProvisioning", + "value": "ClusterProvisioning", + "description": "Cluster provisioning operation." + }, + { + "name": "ClusterUpgrade", + "value": "ClusterUpgrade", + "description": "Cluster upgrade operation." + } + ] + } + }, + "deploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration", + "description": "Scale units will contains list of deployment data" + }, + "reportedProperties": { + "$ref": "#/definitions/EceReportedProperties", + "description": "Deployment Status reported from cluster.", + "readOnly": true + } + }, + "required": [ + "arcNodeResourceIds", + "deploymentMode", + "deploymentConfiguration" + ] + }, + "DeploymentStep": { + "type": "object", + "description": "The Step of AzureStackHCI Cluster.", + "properties": { + "name": { + "type": "string", + "description": "Name of step.", + "readOnly": true + }, + "description": { + "type": "string", + "description": "Description of step.", + "readOnly": true + }, + "fullStepIndex": { + "type": "string", + "description": "FullStepIndex of step.", + "readOnly": true + }, + "startTimeUtc": { + "type": "string", + "description": "Start time of step.", + "readOnly": true + }, + "endTimeUtc": { + "type": "string", + "description": "End time of step.", + "readOnly": true + }, + "status": { + "type": "string", + "description": "Status of step. Allowed values are 'Error', 'Success', 'InProgress'", + "readOnly": true + }, + "steps": { + "type": "array", + "description": "List of nested steps of AzureStackHCI Cluster Deployment.", + "items": { + "$ref": "#/definitions/DeploymentStep" + }, + "readOnly": true, + "x-ms-identifiers": [] + }, + "exception": { + "type": "array", + "description": "List of exceptions in AzureStackHCI Cluster Deployment.", + "items": { + "type": "string" + }, + "readOnly": true + } + } + }, + "DeviceConfiguration": { + "type": "object", + "description": "The device Configuration for edge device.", + "properties": { + "nicDetails": { + "type": "array", + "description": "NIC Details of device", + "items": { + "$ref": "#/definitions/NicDetail" + }, + "x-ms-identifiers": [ + "adapterName" + ] + }, + "deviceMetadata": { + "type": "string", + "description": "Device metadata details." + } + } + }, + "DeviceKind": { + "type": "string", + "description": "Edge device kind.", + "enum": [ + "HCI" + ], + "x-ms-enum": { + "name": "DeviceKind", + "modelAsString": true, + "values": [ + { + "name": "HCI", + "value": "HCI", + "description": "Arc-enabled edge device with HCI OS." + } + ] + } + }, + "DeviceLogCollectionStatus": { + "type": "string", + "description": "Represents the status of a log collection operation.", + "enum": [ + "NotStarted", + "Running", + "Failed", + "Succeeded", + "Canceled" + ], + "x-ms-enum": { + "name": "DeviceLogCollectionStatus", + "modelAsString": true, + "values": [ + { + "name": "NotStarted", + "value": "NotStarted", + "description": "Log collection operation has not been initiated." + }, + { + "name": "Running", + "value": "Running", + "description": "Indicates that the log collection operation is currently running." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Indicates that the log collection operation has failed." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Indicates that the log collection operation has completed successfully." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Indicates that the log collection operation has completed successfully." + } + ] + }, + "readOnly": true + }, + "DeviceState": { + "type": "string", + "description": "The edge device state.", + "enum": [ + "NotSpecified", + "Connected", + "Disconnected", + "Repairing", + "Draining", + "InMaintenance", + "Resuming", + "Processing" + ], + "x-ms-enum": { + "name": "DeviceState", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The edge device state is not specified." + }, + { + "name": "Connected", + "value": "Connected", + "description": "The edge device state is in connected state." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The edge device state is in disconnected state." + }, + { + "name": "Repairing", + "value": "Repairing", + "description": "The edge device state is in repairing state." + }, + { + "name": "Draining", + "value": "Draining", + "description": "The edge device state is in draining state." + }, + { + "name": "InMaintenance", + "value": "InMaintenance", + "description": "The edge device state is in maintenance state." + }, + { + "name": "Resuming", + "value": "Resuming", + "description": "The edge device state is in resuming state." + }, + { + "name": "Processing", + "value": "Processing", + "description": "The edge device state is in processing state." + } + ] + } + }, + "DiagnosticLevel": { + "type": "string", + "description": "Desired level of diagnostic data emitted by the cluster.", + "enum": [ + "Off", + "Basic", + "Enhanced" + ], + "x-ms-enum": { + "name": "DiagnosticLevel", + "modelAsString": true, + "values": [ + { + "name": "Off", + "value": "Off", + "description": "No diagnostic data will be emitted." + }, + { + "name": "Basic", + "value": "Basic", + "description": "Basic diagnostic data will be emitted, including essential health metrics." + }, + { + "name": "Enhanced", + "value": "Enhanced", + "description": "Enhanced diagnostic data will be emitted, including detailed performance and usage metrics." + } + ] + } + }, + "DnsServerConfig": { + "type": "string", + "description": "Specifies how DNS servers are configured for the infrastructure network. Allowed values are 'UseDnsServer' to use the provided DNS servers, and 'UseForwarder' to use DNS forwarders.", + "enum": [ + "UseDnsServer", + "UseForwarder" + ], + "x-ms-enum": { + "name": "DnsServerConfig", + "modelAsString": true, + "values": [ + { + "name": "UseDnsServer", + "value": "UseDnsServer", + "description": "Use the provided DNS servers for the infrastructure network." + }, + { + "name": "UseForwarder", + "value": "UseForwarder", + "description": "Use DNS forwarders for the infrastructure network." + } + ] + } + }, + "DnsZones": { + "type": "object", + "description": "Details of the DNS Zones to be configured.", + "properties": { + "dnsZoneName": { + "type": "string", + "description": "Name of the DNS Zone to be configured." + }, + "dnsForwarder": { + "type": "array", + "description": "Forwarder details of the DNS Zone to be configured.", + "items": { + "type": "string" + } + } + } + }, + "DownloadOsJobProperties": { + "type": "object", + "description": "Represents the properties of Download Os job.", + "properties": { + "downloadRequest": { + "$ref": "#/definitions/DownloadRequest", + "description": "Download OS request." + }, + "reportedProperties": { + "$ref": "#/definitions/ProvisionOsReportedProperties", + "description": "Reported Properties for Download Os job" + } + }, + "required": [ + "downloadRequest" + ], + "allOf": [ + { + "$ref": "#/definitions/EdgeMachineJobProperties" + } + ], + "x-ms-discriminator-value": "DownloadOs" + }, + "DownloadOsProfile": { + "type": "object", + "description": "Operating system profile.", + "properties": { + "osName": { + "type": "string", + "description": "Name of the operating system." + }, + "osType": { + "type": "string", + "description": "Type of the operating system." + }, + "osVersion": { + "type": "string", + "description": "Version of the operating system." + }, + "osImageLocation": { + "type": "string", + "description": "Location of the operating system image." + }, + "vsrVersion": { + "type": "string", + "description": "Validated Solution Recipe version to be used for the job" + }, + "imageHash": { + "type": "string", + "description": "Hash of the OS package downloaded" + }, + "gpgPubKey": { + "type": "string", + "description": "GPG Public Key used for package verification" + } + } + }, + "DownloadRequest": { + "type": "object", + "description": "Download Request properties", + "properties": { + "target": { + "$ref": "#/definitions/ProvisioningOsType", + "description": "Target operating system to support polymorphic resource.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "osProfile": { + "$ref": "#/definitions/DownloadOsProfile", + "description": "Operating system profile." + } + }, + "required": [ + "target", + "osProfile" + ] + }, + "EceActionStatus": { + "type": "object", + "description": "The ECE action plan deployment status for AzureStackHCI Cluster.", + "properties": { + "status": { + "type": "string", + "description": "Status of ECE action AzureStackHCI Cluster Deployment.", + "readOnly": true + }, + "steps": { + "type": "array", + "description": "List of steps of AzureStackHCI Cluster Deployment.", + "items": { + "$ref": "#/definitions/DeploymentStep" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "EceDeploymentSecrets": { + "type": "object", + "description": "Protected parameters list stored in keyvault.", + "properties": { + "secretName": { + "type": "string", + "description": "Secret name stored in keyvault." + }, + "eceSecretName": { + "$ref": "#/definitions/EceSecrets", + "description": "Secret name expected for Enterprise Cloud Engine (ECE) deployment." + }, + "secretLocation": { + "type": "string", + "format": "uri", + "description": "Secret URI stored in keyvault." + } + } + }, + "EceReportedProperties": { + "type": "object", + "description": "The DeploymentStatus of AzureStackHCI Cluster.", + "properties": { + "validationStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "validation status of AzureStackHCI Cluster Deployment.", + "readOnly": true + }, + "deploymentStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Deployment status of AzureStackHCI Cluster Deployment.", + "readOnly": true + } + } + }, + "EceSecrets": { + "type": "string", + "description": "Secret names allowed for Enterprise Cloud Engine (ECE) deployment.", + "enum": [ + "AzureStackLCMUserCredential", + "DefaultARBApplication", + "LocalAdminCredential", + "WitnessStorageKey" + ], + "x-ms-enum": { + "name": "EceSecrets", + "modelAsString": true, + "values": [ + { + "name": "AzureStackLCMUserCredential", + "value": "AzureStackLCMUserCredential", + "description": "AzureStackLCMUserCredential used for LCM operations for AzureStackHCI cluster." + }, + { + "name": "DefaultARBApplication", + "value": "DefaultARBApplication", + "description": "DefaultARBApplication used to manage Azure Arc resource bridge (ARB) for AzureStackHCI cluster." + }, + { + "name": "LocalAdminCredential", + "value": "LocalAdminCredential", + "description": "LocalAdminCredential used for admin operations for AzureStackHCI cluster." + }, + { + "name": "WitnessStorageKey", + "value": "WitnessStorageKey", + "description": "WitnessStorageKey used for setting up a cloud witness for AzureStackHCI cluster." + } + ] + } + }, + "EdgeDevice": { + "type": "object", + "description": "Edge device resource.", + "properties": { + "kind": { + "$ref": "#/definitions/DeviceKind", + "description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + "pattern": "^[-\\w\\._,\\(\\\\\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "discriminator": "kind", + "required": [ + "kind" + ], + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "EdgeDeviceJob": { + "type": "object", + "description": "EdgeDevice Jobs resource", + "properties": { + "kind": { + "$ref": "#/definitions/EdgeDeviceKind", + "description": "Metadata used by portal/tooling/etc to render different UX experiences for resources of the same type; e.g. ApiApps are a kind of Microsoft.Web/sites type. If supported, the resource provider must validate and persist this value.", + "pattern": "^[-\\w\\._,\\(\\\\\\)]+$", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "discriminator": "kind", + "required": [ + "kind" + ], + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "EdgeDeviceJobListResult": { + "type": "object", + "description": "The response of a EdgeDeviceJob list operation.", + "properties": { + "value": { + "type": "array", + "description": "The EdgeDeviceJob items on this page", + "items": { + "$ref": "#/definitions/EdgeDeviceJob" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "EdgeDeviceJobProperties": { + "type": "object", + "description": "Edge device job properties", + "properties": { + "deploymentMode": { + "$ref": "#/definitions/DeploymentMode", + "description": "Deployment mode to trigger job." + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Job provisioning state", + "readOnly": true + }, + "jobId": { + "type": "string", + "description": "Unique, immutable job id.", + "readOnly": true + }, + "startTimeUtc": { + "type": "string", + "format": "date-time", + "description": "The UTC date and time at which the job started.", + "readOnly": true + }, + "endTimeUtc": { + "type": "string", + "format": "date-time", + "description": "The UTC date and time at which the job completed.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/JobStatus", + "description": "Status of Edge device job.", + "readOnly": true + } + } + }, + "EdgeDeviceJobType": { + "type": "string", + "description": "Common Job Types supported.", + "enum": [ + "CollectLog", + "RemoteSupport" + ], + "x-ms-enum": { + "name": "EdgeDeviceJobType", + "modelAsString": true, + "values": [ + { + "name": "CollectLog", + "value": "CollectLog", + "description": "Job to collect logs from the device." + }, + { + "name": "RemoteSupport", + "value": "RemoteSupport", + "description": "Job to provide remote support to the device." + } + ] + } + }, + "EdgeDeviceKind": { + "type": "string", + "description": "Edge device kind.", + "enum": [ + "HCI" + ], + "x-ms-enum": { + "name": "EdgeDeviceKind", + "modelAsString": true, + "values": [ + { + "name": "HCI", + "value": "HCI", + "description": "Arc-enabled edge device with HCI OS." + } + ] + } + }, + "EdgeDeviceListResult": { + "type": "object", + "description": "The response of a EdgeDevice list operation.", + "properties": { + "value": { + "type": "array", + "description": "The EdgeDevice items on this page", + "items": { + "$ref": "#/definitions/EdgeDevice" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "EdgeDeviceProperties": { + "type": "object", + "description": "Edge Device properties", + "properties": { + "deviceConfiguration": { + "$ref": "#/definitions/DeviceConfiguration", + "description": "Device Configuration" + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of edgeDevice resource", + "readOnly": true + } + } + }, + "EdgeMachine": { + "type": "object", + "description": "EdgeMachine details.", + "properties": { + "properties": { + "$ref": "#/definitions/EdgeMachineProperties", + "description": "The resource-specific properties for this resource." + }, + "identity": { + "$ref": "../../../../../../common-types/resource-management/v6/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The managed service identities assigned to this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/TrackedResource" + } + ] + }, + "EdgeMachineCollectLogJobProperties": { + "type": "object", + "description": "Properties for pausing a server in the cluster.", + "properties": { + "fromDate": { + "type": "string", + "format": "date-time", + "description": "From date for log collection." + }, + "toDate": { + "type": "string", + "format": "date-time", + "description": "To date for log collection." + }, + "lastLogGenerated": { + "type": "string", + "format": "date-time", + "description": "To date for log collection.", + "readOnly": true + }, + "reportedProperties": { + "$ref": "#/definitions/EdgeMachineCollectLogJobReportedProperties", + "description": "log collection job reported properties.", + "readOnly": true + } + }, + "required": [ + "fromDate", + "toDate" + ], + "allOf": [ + { + "$ref": "#/definitions/EdgeMachineJobProperties" + } + ], + "x-ms-discriminator-value": "CollectLog" + }, + "EdgeMachineCollectLogJobReportedProperties": { + "type": "object", + "description": "Represents the reported properties of a log collection job.", + "properties": { + "percentComplete": { + "type": "integer", + "format": "int32", + "description": "The percentage of the job that is complete.", + "readOnly": true + }, + "validationStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Validation status of job.", + "readOnly": true + }, + "deploymentStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Deployment status of job.", + "readOnly": true + }, + "logCollectionSessionDetails": { + "type": "array", + "description": "Details of the log collection session.", + "items": { + "$ref": "#/definitions/LogCollectionJobSession" + }, + "readOnly": true, + "x-ms-identifiers": [ + "correlationId" + ] + } + } + }, + "EdgeMachineConnectivityStatus": { + "type": "string", + "description": "Overall connectivity status for the machine resource.", + "enum": [ + "NotSpecified", + "Disconnected", + "Connected" + ], + "x-ms-enum": { + "name": "EdgeMachineConnectivityStatus", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The connectivity status of the machine resource is not specified." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The machine resource is disconnected." + }, + { + "name": "Connected", + "value": "Connected", + "description": "The machine resource is connected." + } + ] + } + }, + "EdgeMachineJob": { + "type": "object", + "description": "Cluster Jobs resource", + "properties": { + "properties": { + "$ref": "#/definitions/EdgeMachineJobProperties", + "description": "The resource-specific properties for this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "EdgeMachineJobListResult": { + "type": "object", + "description": "The response of a EdgeMachineJob list operation.", + "properties": { + "value": { + "type": "array", + "description": "The EdgeMachineJob items on this page", + "items": { + "$ref": "#/definitions/EdgeMachineJob" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "EdgeMachineJobProperties": { + "type": "object", + "description": "EdgeMachine Job properties", + "properties": { + "jobType": { + "$ref": "#/definitions/EdgeMachineJobType", + "description": "Job Type to support polymorphic resource.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "deploymentMode": { + "$ref": "#/definitions/DeploymentMode", + "description": "Deployment mode to trigger job." + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Job provisioning state", + "readOnly": true + }, + "jobId": { + "type": "string", + "description": "Unique, immutable job id.", + "readOnly": true + }, + "startTimeUtc": { + "type": "string", + "format": "date-time", + "description": "The UTC date and time at which the job started.", + "readOnly": true + }, + "endTimeUtc": { + "type": "string", + "format": "date-time", + "description": "The UTC date and time at which the job completed.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/JobStatus", + "description": "Status of Edge device job.", + "readOnly": true + }, + "error": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorDetail", + "description": "error details.", + "readOnly": true + } + }, + "discriminator": "jobType", + "required": [ + "jobType" + ] + }, + "EdgeMachineJobReportedProperties": { + "type": "object", + "description": "Reported Properties for job triggered from cloud.", + "properties": { + "percentComplete": { + "type": "integer", + "format": "int32", + "description": "The percentage of the job that is complete.", + "readOnly": true + }, + "validationStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Validation status of job.", + "readOnly": true + }, + "deploymentStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Deployment status of job.", + "readOnly": true + } + } + }, + "EdgeMachineJobType": { + "type": "string", + "description": "Job Type supported.", + "enum": [ + "CollectLog", + "RemoteSupport", + "ProvisionOs", + "DownloadOs" + ], + "x-ms-enum": { + "name": "EdgeMachineJobType", + "modelAsString": true, + "values": [ + { + "name": "CollectLog", + "value": "CollectLog", + "description": "Job to collect logs from the device." + }, + { + "name": "RemoteSupport", + "value": "RemoteSupport", + "description": "Job to provide remote support to the device." + }, + { + "name": "ProvisionOs", + "value": "ProvisionOs", + "description": "Job to provision operating system in the device." + }, + { + "name": "DownloadOs", + "value": "DownloadOs", + "description": "Job to download OS packages on to the device" + } + ] + } + }, + "EdgeMachineKind": { + "type": "string", + "description": "Edge Machine Kind.", + "enum": [ + "Standard", + "Dedicated" + ], + "x-ms-enum": { + "name": "EdgeMachineKind", + "modelAsString": true, + "values": [ + { + "name": "Standard", + "value": "Standard", + "description": "EdgeMachine resource created using Zero-touch provisioning." + }, + { + "name": "Dedicated", + "value": "Dedicated", + "description": "EdgeMachine resource created for brownfield HCI customers without zero touch provisioning." + } + ] + } + }, + "EdgeMachineListResult": { + "type": "object", + "description": "The response of a EdgeMachine list operation.", + "properties": { + "value": { + "type": "array", + "description": "The EdgeMachine items on this page", + "items": { + "$ref": "#/definitions/EdgeMachine" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "EdgeMachineNetworkProfile": { + "type": "object", + "description": "NetworkProfile of edge machine.", + "properties": { + "nicDetails": { + "type": "array", + "description": "List of Network Interface Card (NIC) Details of edge machine.", + "items": { + "$ref": "#/definitions/EdgeMachineNicDetail" + }, + "readOnly": true, + "x-ms-identifiers": [ + "adapterName" + ] + }, + "switchDetails": { + "type": "array", + "description": "List of switch Details of edge machine.", + "items": { + "$ref": "#/definitions/SwitchDetail" + }, + "readOnly": true, + "x-ms-identifiers": [ + "switchName" + ] + } + } + }, + "EdgeMachineNicDetail": { + "type": "object", + "description": "Network Interface Card (NIC) Details of edge machine.", + "properties": { + "adapterName": { + "type": "string", + "description": "Adapter Name of NIC", + "readOnly": true + }, + "interfaceDescription": { + "type": "string", + "description": "Interface Description of NIC", + "readOnly": true + }, + "componentId": { + "type": "string", + "description": "Component Id of NIC", + "readOnly": true + }, + "driverVersion": { + "type": "string", + "description": "Driver Version of NIC", + "readOnly": true + }, + "ip4Address": { + "type": "string", + "description": "Subnet Mask of NIC", + "readOnly": true + }, + "subnetMask": { + "type": "string", + "description": "Subnet Mask of NIC", + "readOnly": true + }, + "defaultGateway": { + "type": "string", + "description": "Default Gateway of NIC", + "readOnly": true + }, + "dnsServers": { + "type": "array", + "description": "DNS Servers for NIC", + "items": { + "type": "string" + }, + "readOnly": true + }, + "defaultIsolationId": { + "type": "string", + "description": "Default Isolation of Management NIC", + "readOnly": true + }, + "macAddress": { + "type": "string", + "description": "MAC address information of NIC.", + "readOnly": true + }, + "slot": { + "type": "string", + "description": "The slot attached to the NIC.", + "readOnly": true + }, + "switchName": { + "type": "string", + "description": "The switch attached to the NIC, if any.", + "readOnly": true + }, + "nicType": { + "type": "string", + "description": "The type of NIC, physical, virtual, management.", + "readOnly": true + }, + "vlanId": { + "type": "string", + "description": "The VLAN ID of the physical NIC.", + "readOnly": true + }, + "nicStatus": { + "type": "string", + "description": "The status of NIC, up, disconnected.", + "readOnly": true + }, + "rdmaCapability": { + "type": "string", + "description": "Describes the RDMA capability of the network adapter.", + "default": "Disabled", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "RdmaCapability", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Network Adapter on the device is RDMA Capable" + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Network Adapter on the device is RDMA Capable" + } + ] + }, + "readOnly": true + } + } + }, + "EdgeMachinePatch": { + "type": "object", + "description": "Model for patching edge machine.", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "identity": { + "$ref": "../../../../../../common-types/resource-management/v6/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The managed service identities assigned to this resource." + } + } + }, + "EdgeMachineProperties": { + "type": "object", + "description": "Properties for edge machine.", + "properties": { + "edgeMachineKind": { + "$ref": "#/definitions/EdgeMachineKind", + "description": "Edge Machine type.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "The provisioning state of a resource.", + "readOnly": true + }, + "cloudId": { + "type": "string", + "description": "Unique, immutable resource id.", + "readOnly": true + }, + "arcMachineResourceGroupId": { + "type": "string", + "format": "arm-id", + "description": "Optional property to create arc machine in custom resource group.", + "x-ms-mutability": [ + "read", + "create" + ], + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Resources/resourceGroups" + } + ] + } + }, + "arcMachineResourceId": { + "type": "string", + "format": "arm-id", + "description": "Arc machine instance resource id.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.HybridCompute/machines" + } + ] + } + }, + "arcGatewayResourceId": { + "type": "string", + "format": "arm-id", + "description": "Link to Arc Gateway ARM resource Id", + "x-ms-mutability": [ + "read", + "create" + ], + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.HybridCompute/gateways" + } + ] + } + }, + "siteDetails": { + "$ref": "#/definitions/SiteDetails", + "description": "Service fetches common configuration from site.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "ownershipVoucherDetails": { + "$ref": "#/definitions/OwnershipVoucherDetails", + "description": "Ownership voucher details for provisioned machine.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "provisioningDetails": { + "$ref": "#/definitions/ProvisioningDetails", + "description": "Details for device provisioning.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "devicePoolResourceId": { + "type": "string", + "description": "A machine can only be assigned to single device pool", + "readOnly": true + }, + "machineState": { + "$ref": "#/definitions/EdgeMachineState", + "description": "OS configuration status details ", + "readOnly": true + }, + "connectivityStatus": { + "$ref": "#/definitions/EdgeMachineConnectivityStatus", + "description": "machine connectivity status", + "readOnly": true + }, + "claimedBy": { + "type": "string", + "description": "Tracks the ID of the consuming resource, setting the machine as in-use.", + "readOnly": true + }, + "reportedProperties": { + "$ref": "#/definitions/EdgeMachineReportedProperties", + "description": "Reported properties for edge machine.", + "readOnly": true + }, + "operationDetails": { + "type": "array", + "description": "operation status details for edge machine.", + "items": { + "$ref": "#/definitions/OperationDetail" + }, + "readOnly": true, + "x-ms-identifiers": [] + }, + "lastSyncTimestamp": { + "type": "string", + "format": "date-time", + "description": "Last time data updated to service.", + "readOnly": true + } + } + }, + "EdgeMachineRemoteSupportJobProperties": { + "type": "object", + "description": "Properties for adding a server in the cluster.", + "properties": { + "accessLevel": { + "$ref": "#/definitions/RemoteSupportAccessLevel", + "description": "Remote support access level." + }, + "expirationTimestamp": { + "type": "string", + "format": "date-time", + "description": "Remote support expiration timestamp." + }, + "type": { + "$ref": "#/definitions/RemoteSupportType", + "description": "Remote support type." + }, + "reportedProperties": { + "$ref": "#/definitions/EdgeMachineRemoteSupportJobReportedProperties", + "description": "log collection job reported properties.", + "readOnly": true + } + }, + "required": [ + "accessLevel", + "expirationTimestamp", + "type" + ], + "allOf": [ + { + "$ref": "#/definitions/EdgeMachineJobProperties" + } + ], + "x-ms-discriminator-value": "RemoteSupport" + }, + "EdgeMachineRemoteSupportJobReportedProperties": { + "type": "object", + "description": "Represents the reported properties of a remote support job.", + "properties": { + "percentComplete": { + "type": "integer", + "format": "int32", + "description": "The percentage of the job that is complete.", + "readOnly": true + }, + "validationStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Validation status of job.", + "readOnly": true + }, + "deploymentStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Deployment status of job.", + "readOnly": true + }, + "nodeSettings": { + "$ref": "#/definitions/EdgeMachineRemoteSupportNodeSettings", + "description": "Optional settings for configuring the node for remote support.", + "readOnly": true + }, + "sessionDetails": { + "type": "array", + "description": "Details of the remote support session.", + "items": { + "$ref": "#/definitions/RemoteSupportSession" + }, + "readOnly": true, + "x-ms-identifiers": [ + "sessionId" + ] + } + } + }, + "EdgeMachineRemoteSupportNodeSettings": { + "type": "object", + "description": "Represents the settings of a remote support node.", + "properties": { + "state": { + "type": "string", + "description": "The state of the remote support node.", + "readOnly": true + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the node settings were created, in UTC.", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the node settings were last updated, in UTC.", + "readOnly": true + }, + "connectionStatus": { + "type": "string", + "description": "The current connection status of the remote support session.", + "readOnly": true + }, + "connectionErrorMessage": { + "type": "string", + "description": "The error message, if any, from the last connection attempt.", + "readOnly": true + } + } + }, + "EdgeMachineReportedProperties": { + "type": "object", + "description": "Reported properties for edge machine.", + "properties": { + "lastUpdated": { + "type": "string", + "format": "date-time", + "description": "Last time data reported.", + "readOnly": true + }, + "networkProfile": { + "$ref": "#/definitions/EdgeMachineNetworkProfile", + "description": "Network details for edge machine.", + "readOnly": true + }, + "osProfile": { + "$ref": "#/definitions/OsProfile", + "description": "OS Properties for edge machine.", + "readOnly": true + }, + "hardwareProfile": { + "$ref": "#/definitions/HardwareProfile", + "description": "Hardware related information for edge machine.", + "readOnly": true + }, + "storageProfile": { + "$ref": "#/definitions/StorageProfile", + "description": "Storage related information for edge machine.", + "readOnly": true + }, + "sbeDeploymentPackageInfo": { + "$ref": "#/definitions/SbeDeploymentPackageInfo", + "description": "Solution builder extension (SBE) deployment package information.", + "readOnly": true + }, + "extensionProfile": { + "$ref": "#/definitions/ExtensionProfile", + "description": "Extension details for edge machine.", + "readOnly": true + } + } + }, + "EdgeMachineState": { + "type": "string", + "description": "OS State", + "enum": [ + "Created", + "Registering", + "Unpurposed", + "Transitioning", + "Purposed", + "Updating", + "Resetting", + "Failed", + "Preparing" + ], + "x-ms-enum": { + "name": "EdgeMachineState", + "modelAsString": true, + "values": [ + { + "name": "Created", + "value": "Created", + "description": "Created when EdgeMachine resource created" + }, + { + "name": "Registering", + "value": "Registering", + "description": "EdgeMachine state during device discovery and registration" + }, + { + "name": "Unpurposed", + "value": "Unpurposed", + "description": "EdgeMachine state when machine configured with restricted OS and not provisioned to deploy workloads" + }, + { + "name": "Transitioning", + "value": "Transitioning", + "description": "EdgeMachine state when transitioning from initial OS to target OS" + }, + { + "name": "Purposed", + "value": "Purposed", + "description": "EdgeMachine state when machine configured with target OS to deploy workloads" + }, + { + "name": "Updating", + "value": "Updating", + "description": "EdgeMachine state when OS updates are in-progress" + }, + { + "name": "Resetting", + "value": "Resetting", + "description": "EdgeMachine state when transitioning from target OS to restricted OS" + }, + { + "name": "Failed", + "value": "Failed", + "description": "EdgeMachine failed state and only option to recover is to re-provisioning machine" + }, + { + "name": "Preparing", + "value": "Preparing", + "description": "Preparing EdgeMachine" + } + ] + } + }, + "EdgeSolutionType": { + "type": "string", + "description": "Edge solution type.", + "enum": [ + "WindowsServer" + ], + "x-ms-enum": { + "name": "EdgeSolutionType", + "modelAsString": true, + "values": [ + { + "name": "WindowsServer", + "value": "WindowsServer", + "description": "Edge solution for Windows based edge devices." + } + ] + } + }, + "ErrorDetailModel": { + "type": "object", + "description": "details of validation failure", + "properties": { + "exception": { + "type": "string", + "description": "Exception details while installing extension.", + "readOnly": true + } + } + }, + "Extension": { + "type": "object", + "description": "Details of a particular extension in HCI Cluster.", + "properties": { + "properties": { + "$ref": "#/definitions/ExtensionProperties", + "description": "Describes Machine Extension Properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "ExtensionAggregateState": { + "type": "string", + "description": "Aggregate state of Arc Extensions across the nodes in this HCI cluster. This reflects the overall status of the extension deployment and operation across all nodes.", + "enum": [ + "NotSpecified", + "Error", + "Succeeded", + "Canceled", + "Failed", + "Connected", + "Disconnected", + "Deleted", + "Creating", + "Updating", + "Deleting", + "Moving", + "PartiallySucceeded", + "PartiallyConnected", + "InProgress", + "Accepted", + "Provisioning", + "UpgradeFailedRollbackSucceeded" + ], + "x-ms-enum": { + "name": "ExtensionAggregateState", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The aggregate state is not specified." + }, + { + "name": "Error", + "value": "Error", + "description": "An error occurred in the aggregate state." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The operation succeeded across all nodes." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "The operation was canceled across the nodes." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The operation failed on all or most nodes." + }, + { + "name": "Connected", + "value": "Connected", + "description": "All nodes are connected." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "All nodes are disconnected." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "The extension has been deleted from all nodes." + }, + { + "name": "Creating", + "value": "Creating", + "description": "The extension is being created across the nodes." + }, + { + "name": "Updating", + "value": "Updating", + "description": "The extension is being updated across the nodes." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The extension is being deleted across the nodes." + }, + { + "name": "Moving", + "value": "Moving", + "description": "The extension is being moved across the nodes." + }, + { + "name": "PartiallySucceeded", + "value": "PartiallySucceeded", + "description": "The operation succeeded on some nodes." + }, + { + "name": "PartiallyConnected", + "value": "PartiallyConnected", + "description": "Some nodes are connected, others are not." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "The operation is currently in progress across the nodes." + }, + { + "name": "Accepted", + "value": "Accepted", + "description": "The operation has been accepted and is pending execution." + }, + { + "name": "Provisioning", + "value": "Provisioning", + "description": "The extension is currently being provisioned across the nodes." + }, + { + "name": "UpgradeFailedRollbackSucceeded", + "value": "UpgradeFailedRollbackSucceeded", + "description": "Extension upgrade failed, but rollback succeeded across the nodes." + } + ] + }, + "readOnly": true + }, + "ExtensionInstanceView": { + "type": "object", + "description": "Describes the Extension Instance View.", + "properties": { + "name": { + "type": "string", + "description": "The extension name." + }, + "type": { + "type": "string", + "description": "Specifies the type of the extension; an example is \"MicrosoftMonitoringAgent\"." + }, + "typeHandlerVersion": { + "type": "string", + "description": "Specifies the version of the script handler." + }, + "status": { + "$ref": "#/definitions/ExtensionInstanceViewStatus", + "description": "Instance view status." + } + } + }, + "ExtensionInstanceViewStatus": { + "type": "object", + "description": "Instance view status.", + "properties": { + "code": { + "type": "string", + "description": "The status code." + }, + "level": { + "$ref": "#/definitions/StatusLevelTypes", + "description": "The level code. Indicates the severity or importance of the status message." + }, + "displayStatus": { + "type": "string", + "description": "The short localizable label for the status." + }, + "message": { + "type": "string", + "description": "The detailed status message, including for alerts and error messages." + }, + "time": { + "type": "string", + "format": "date-time", + "description": "The time of the status." + } + } + }, + "ExtensionList": { + "type": "object", + "description": "List of Extensions in HCI cluster.", + "properties": { + "value": { + "type": "array", + "description": "The Extension items on this page", + "items": { + "$ref": "#/definitions/Extension" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ExtensionManagedBy": { + "type": "string", + "description": "Indicates whether the extension is managed by the user or by Azure.", + "enum": [ + "User", + "Azure" + ], + "x-ms-enum": { + "name": "ExtensionManagedBy", + "modelAsString": true, + "values": [ + { + "name": "User", + "value": "User", + "description": "The extension is managed by the user." + }, + { + "name": "Azure", + "value": "Azure", + "description": "The extension is managed by Azure." + } + ] + } + }, + "ExtensionParameters": { + "type": "object", + "description": "Describes the properties of a Machine Extension. This object mirrors the definition in HybridCompute.", + "properties": { + "forceUpdateTag": { + "type": "string", + "description": "How the extension handler should be forced to update even if the extension configuration has not changed." + }, + "publisher": { + "type": "string", + "description": "The name of the extension handler publisher." + }, + "type": { + "type": "string", + "description": "Specifies the type of the extension; an example is \"CustomScriptExtension\"." + }, + "typeHandlerVersion": { + "type": "string", + "description": "Specifies the version of the script handler. Latest version would be used if not specified." + }, + "autoUpgradeMinorVersion": { + "type": "boolean", + "description": "Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true." + }, + "settings": { + "description": "Json formatted public settings for the extension." + }, + "protectedSettings": { + "format": "password", + "description": "Protected settings (may contain secrets).", + "x-ms-secret": true + }, + "enableAutomaticUpgrade": { + "type": "boolean", + "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version available." + } + } + }, + "ExtensionPatch": { + "type": "object", + "description": "Extension Details to update", + "properties": { + "properties": { + "$ref": "#/definitions/ExtensionPatchProperties", + "description": "Describes Machine Extension Properties that can be updated.", + "x-ms-client-flatten": true + } + } + }, + "ExtensionPatchParameters": { + "type": "object", + "description": "Describes the properties of a Machine Extension that can be updated.", + "properties": { + "typeHandlerVersion": { + "type": "string", + "description": "Specifies the version of the script handler. Latest version would be used if not specified." + }, + "enableAutomaticUpgrade": { + "type": "boolean", + "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version available." + }, + "settings": { + "description": "Json formatted public settings for the extension." + }, + "protectedSettings": { + "format": "password", + "description": "Protected settings (may contain secrets).", + "x-ms-secret": true + } + } + }, + "ExtensionPatchProperties": { + "type": "object", + "description": "Describes Machine Extension Properties that can be updated.", + "properties": { + "extensionParameters": { + "$ref": "#/definitions/ExtensionPatchParameters", + "description": "Describes the properties of a Machine Extension that can be updated." + } + } + }, + "ExtensionProfile": { + "type": "object", + "description": "Extensions details for edge device.", + "properties": { + "extensions": { + "type": "array", + "description": "List of Arc extensions installed on edge device.", + "items": { + "$ref": "#/definitions/HciEdgeDeviceArcExtension" + }, + "readOnly": true, + "x-ms-identifiers": [ + "extensionName" + ] + } + } + }, + "ExtensionProperties": { + "type": "object", + "description": "Status of Arc Extension for a particular node in HCI Cluster.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of the Extension proxy resource. Indicates the current lifecycle status of the resource, such as whether it's being created, updated, deleted, or has encountered an error.", + "readOnly": true + }, + "extensionParameters": { + "$ref": "#/definitions/ExtensionParameters", + "description": "Parameters specific to this extension type.", + "x-ms-client-flatten": true + }, + "aggregateState": { + "$ref": "#/definitions/ExtensionAggregateState", + "description": "Aggregate state of Arc Extensions across the nodes in this HCI cluster. This reflects the overall status of the extension deployment and operation across all nodes.", + "readOnly": true + }, + "perNodeExtensionDetails": { + "type": "array", + "description": "State of Arc Extension in each of the nodes.", + "items": { + "$ref": "#/definitions/PerNodeExtensionState" + }, + "readOnly": true + }, + "managedBy": { + "$ref": "#/definitions/ExtensionManagedBy", + "description": "Indicates if the extension is managed by Azure or the user. This determines who controls the deployment and lifecycle of the extension.", + "readOnly": true + } + } + }, + "ExtensionUpgradeParameters": { + "type": "object", + "description": "Describes the parameters for Extension upgrade.", + "properties": { + "targetVersion": { + "type": "string", + "description": "Extension Upgrade Target Version." + } + } + }, + "HardwareClass": { + "type": "string", + "description": "Hardware class of the cluster.", + "enum": [ + "Small", + "Medium", + "Large" + ], + "x-ms-enum": { + "name": "HardwareClass", + "modelAsString": true, + "values": [ + { + "name": "Small", + "value": "Small", + "description": "The hardware class is small." + }, + { + "name": "Medium", + "value": "Medium", + "description": "The hardware class is medium. This corresponds to the default" + }, + { + "name": "Large", + "value": "Large", + "description": "The hardware class is large." + } + ] + } + }, + "HardwareProfile": { + "type": "object", + "description": "Hardware profile for the machine", + "properties": { + "cpuCores": { + "type": "integer", + "format": "int64", + "description": "Number of cpu cores in the machine", + "readOnly": true + }, + "cpuSockets": { + "type": "integer", + "format": "int64", + "description": "Number of cpu sockets in the machine", + "readOnly": true + }, + "memoryCapacityInGb": { + "type": "integer", + "format": "int64", + "description": "Memory capacity of the machine", + "readOnly": true + }, + "model": { + "type": "string", + "description": "Model info of the machine", + "readOnly": true + }, + "manufacturer": { + "type": "string", + "description": "manufacturer info of the machine", + "readOnly": true + }, + "serialNumber": { + "type": "string", + "description": "Serial number of the machine", + "readOnly": true + }, + "processorType": { + "type": "string", + "description": "Process type of the machine", + "readOnly": true + } + } + }, + "HciCollectLogJobProperties": { + "type": "object", + "description": "Represents the properties of an HCI Collect Log job.", + "properties": { + "fromDate": { + "type": "string", + "format": "date-time", + "description": "From date for log collection." + }, + "toDate": { + "type": "string", + "format": "date-time", + "description": "To date for log collection." + }, + "lastLogGenerated": { + "type": "string", + "format": "date-time", + "description": "To date for log collection.", + "readOnly": true + }, + "reportedProperties": { + "$ref": "#/definitions/LogCollectionReportedProperties", + "description": "log collection job reported properties.", + "readOnly": true + } + }, + "required": [ + "fromDate", + "toDate" + ], + "allOf": [ + { + "$ref": "#/definitions/HciEdgeDeviceJobProperties" + } + ], + "x-ms-discriminator-value": "CollectLog" + }, + "HciEdgeDevice": { + "type": "object", + "description": "Arc-enabled edge device with HCI OS.", + "properties": { + "properties": { + "$ref": "#/definitions/HciEdgeDeviceProperties", + "description": "properties for Arc-enabled edge device with HCI OS." + } + }, + "allOf": [ + { + "$ref": "#/definitions/EdgeDevice" + } + ], + "x-ms-discriminator-value": "HCI" + }, + "HciEdgeDeviceAdapterPropertyOverrides": { + "type": "object", + "description": "The AdapterPropertyOverrides of a cluster.", + "properties": { + "jumboPacket": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "readOnly": true + }, + "networkDirect": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "readOnly": true + }, + "networkDirectTechnology": { + "type": "string", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation. Expected values are 'iWARP', 'RoCEv2', 'RoCE'", + "readOnly": true + } + } + }, + "HciEdgeDeviceArcExtension": { + "type": "object", + "description": "Arc extension installed on edge device.", + "properties": { + "extensionName": { + "type": "string", + "description": "Arc extension name installed on edge device.", + "readOnly": true + }, + "state": { + "$ref": "#/definitions/ArcExtensionState", + "description": "Arc extension state from arc machine extension.", + "readOnly": true + }, + "errorDetails": { + "type": "array", + "description": "Error details while installing Arc extension.", + "items": { + "$ref": "#/definitions/HciValidationFailureDetail" + }, + "readOnly": true, + "x-ms-identifiers": [] + }, + "extensionResourceId": { + "type": "string", + "format": "arm-id", + "description": "Arc Extension Azure resource id.", + "readOnly": true + }, + "typeHandlerVersion": { + "type": "string", + "description": "Extension version installed.", + "readOnly": true + }, + "managedBy": { + "$ref": "#/definitions/ExtensionManagedBy", + "description": "Indicates whether the extension is managed by the user or by Azure.", + "readOnly": true + } + } + }, + "HciEdgeDeviceHostNetwork": { + "type": "object", + "description": "The HostNetwork of a cluster.", + "properties": { + "intents": { + "type": "array", + "description": "The network intents assigned to the network reference pattern used for the deployment. Each intent will define its own name, traffic type, adapter names, and overrides as recommended by your OEM.", + "items": { + "$ref": "#/definitions/HciEdgeDeviceIntents" + }, + "readOnly": true, + "x-ms-identifiers": [ + "intentName" + ] + }, + "storageNetworks": { + "type": "array", + "description": "List of StorageNetworks config to deploy AzureStackHCI Cluster.", + "items": { + "$ref": "#/definitions/HciEdgeDeviceStorageNetworks" + }, + "readOnly": true, + "x-ms-identifiers": [ + "networkAdapterName" + ] + }, + "storageConnectivitySwitchless": { + "type": "boolean", + "description": "Defines how the storage adapters between nodes are connected either switch or switch less.", + "readOnly": true + }, + "enableStorageAutoIp": { + "type": "boolean", + "description": "Optional parameter required only for 3 Nodes Switchless deployments. This allows users to specify IPs and Mask for Storage NICs when Network ATC is not assigning the IPs for storage automatically.", + "default": false, + "readOnly": true + } + } + }, + "HciEdgeDeviceIntents": { + "type": "object", + "description": "The Intents of a cluster.", + "properties": { + "scope": { + "type": "integer", + "format": "int64", + "description": "Scope for host network intent.", + "readOnly": true + }, + "intentType": { + "type": "integer", + "format": "int64", + "description": "IntentType for host network intent.", + "readOnly": true + }, + "isComputeIntentSet": { + "type": "boolean", + "description": "IsComputeIntentSet for host network intent.", + "readOnly": true + }, + "isStorageIntentSet": { + "type": "boolean", + "description": "IsStorageIntentSet for host network intent.", + "readOnly": true + }, + "isOnlyStorage": { + "type": "boolean", + "description": "IntentType for host network intent.", + "readOnly": true + }, + "isManagementIntentSet": { + "type": "boolean", + "description": "IsManagementIntentSet for host network intent.", + "readOnly": true + }, + "isStretchIntentSet": { + "type": "boolean", + "description": "IsStretchIntentSet for host network intent.", + "readOnly": true + }, + "isOnlyStretch": { + "type": "boolean", + "description": "IsOnlyStretch for host network intent.", + "readOnly": true + }, + "isNetworkIntentType": { + "type": "boolean", + "description": "IsNetworkIntentType for host network intent.", + "readOnly": true + }, + "intentName": { + "type": "string", + "description": "Name of the network intent you wish to create.", + "readOnly": true + }, + "intentAdapters": { + "type": "array", + "description": "Array of adapters used for the network intent.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "overrideVirtualSwitchConfiguration": { + "type": "boolean", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "readOnly": true + }, + "virtualSwitchConfigurationOverrides": { + "$ref": "#/definitions/HciEdgeDeviceVirtualSwitchConfigurationOverrides", + "description": "Set virtualSwitch ConfigurationOverrides for cluster.", + "readOnly": true + }, + "overrideQosPolicy": { + "type": "boolean", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "readOnly": true + }, + "qosPolicyOverrides": { + "$ref": "#/definitions/QosPolicyOverrides", + "description": "Set QoS PolicyOverrides for cluster.", + "readOnly": true + }, + "overrideAdapterProperty": { + "type": "boolean", + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation.", + "readOnly": true + }, + "adapterPropertyOverrides": { + "$ref": "#/definitions/HciEdgeDeviceAdapterPropertyOverrides", + "description": "Set Adapter PropertyOverrides for cluster.", + "readOnly": true + } + } + }, + "HciEdgeDeviceJob": { + "type": "object", + "description": "Edge device job for Azure Stack HCI solution.", + "properties": { + "properties": { + "$ref": "#/definitions/HciEdgeDeviceJobProperties", + "description": "HCI Edge device job properties" + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "#/definitions/EdgeDeviceJob" + } + ], + "x-ms-discriminator-value": "HCI" + }, + "HciEdgeDeviceJobProperties": { + "type": "object", + "description": "HCI Edge device job properties", + "properties": { + "deploymentMode": { + "$ref": "#/definitions/DeploymentMode", + "description": "Deployment mode to trigger job." + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Job provisioning state", + "readOnly": true + }, + "jobId": { + "type": "string", + "description": "Unique, immutable job id.", + "readOnly": true + }, + "startTimeUtc": { + "type": "string", + "format": "date-time", + "description": "The UTC date and time at which the job started.", + "readOnly": true + }, + "endTimeUtc": { + "type": "string", + "format": "date-time", + "description": "The UTC date and time at which the job completed.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/JobStatus", + "description": "Status of Edge device job.", + "readOnly": true + }, + "jobType": { + "$ref": "#/definitions/HciEdgeDeviceJobType", + "description": "Job Type to support polymorphic resource.", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "discriminator": "jobType", + "required": [ + "jobType" + ] + }, + "HciEdgeDeviceJobType": { + "type": "string", + "description": "Job Type supported.", + "enum": [ + "CollectLog", + "RemoteSupport" + ], + "x-ms-enum": { + "name": "HciEdgeDeviceJobType", + "modelAsString": true, + "values": [ + { + "name": "CollectLog", + "value": "CollectLog", + "description": "Job to collect logs from the device." + }, + { + "name": "RemoteSupport", + "value": "RemoteSupport", + "description": "Job to provide remote support to the device." + } + ] + } + }, + "HciEdgeDeviceProperties": { + "type": "object", + "description": "properties for Arc-enabled edge device with HCI OS.", + "properties": { + "reportedProperties": { + "$ref": "#/definitions/HciReportedProperties", + "description": "The instance view of all current configurations on HCI device.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/EdgeDeviceProperties" + } + ] + }, + "HciEdgeDeviceStorageAdapterIPInfo": { + "type": "object", + "description": "The StorageAdapter physical nodes of a cluster.", + "properties": { + "physicalNode": { + "type": "string", + "description": "storage adapter physical node name.", + "readOnly": true + }, + "ipv4Address": { + "type": "string", + "description": "The IPv4 address assigned to each storage adapter physical node on your Azure Stack HCI cluster.", + "readOnly": true + }, + "subnetMask": { + "type": "string", + "description": "The SubnetMask address assigned to each storage adapter physical node on your Azure Stack HCI cluster.", + "readOnly": true + } + } + }, + "HciEdgeDeviceStorageNetworks": { + "type": "object", + "description": "The StorageNetworks of a cluster.", + "properties": { + "name": { + "type": "string", + "description": "Name of the storage network.", + "readOnly": true + }, + "networkAdapterName": { + "type": "string", + "description": "Name of the storage network adapter.", + "readOnly": true + }, + "storageVlanId": { + "type": "string", + "description": "ID specified for the VLAN storage network. This setting is applied to the network interfaces that route the storage and VM migration traffic.", + "readOnly": true + }, + "storageAdapterIPInfo": { + "type": "array", + "description": "List of Storage adapter physical nodes config to deploy AzureStackHCI Cluster.", + "items": { + "$ref": "#/definitions/HciEdgeDeviceStorageAdapterIPInfo" + }, + "readOnly": true, + "x-ms-identifiers": [ + "physicalNode" + ] + } + } + }, + "HciEdgeDeviceVirtualSwitchConfigurationOverrides": { + "type": "object", + "description": "The VirtualSwitchConfigurationOverrides of a cluster.", + "properties": { + "enableIov": { + "type": "string", + "description": "Enable IoV for Virtual Switch", + "readOnly": true + }, + "loadBalancingAlgorithm": { + "type": "string", + "description": "Load Balancing Algorithm for Virtual Switch", + "readOnly": true + } + } + }, + "HciHardwareProfile": { + "type": "object", + "description": "Hardware configurations for HCI device.", + "properties": { + "processorType": { + "type": "string", + "description": "Process type of the device", + "readOnly": true + } + } + }, + "HciNetworkProfile": { + "type": "object", + "description": "The network profile of a device.", + "properties": { + "nicDetails": { + "type": "array", + "description": "List of NIC Details of device.", + "items": { + "$ref": "#/definitions/HciNicDetail" + }, + "readOnly": true, + "x-ms-identifiers": [ + "adapterName" + ] + }, + "switchDetails": { + "type": "array", + "description": "List of switch details for edge device.", + "items": { + "$ref": "#/definitions/SwitchDetail" + }, + "readOnly": true, + "x-ms-identifiers": [ + "switchName" + ] + }, + "hostNetwork": { + "$ref": "#/definitions/HciEdgeDeviceHostNetwork", + "description": "HostNetwork config to deploy AzureStackHCI Cluster.", + "readOnly": true + }, + "sdnProperties": { + "$ref": "#/definitions/SdnProperties", + "description": "oftware Defined Networking Properties of the cluster", + "readOnly": true + } + } + }, + "HciNicDetail": { + "type": "object", + "description": "The NIC Detail of a device.", + "properties": { + "adapterName": { + "type": "string", + "description": "Adapter Name of NIC", + "readOnly": true + }, + "interfaceDescription": { + "type": "string", + "description": "Interface Description of NIC", + "readOnly": true + }, + "componentId": { + "type": "string", + "description": "Component Id of NIC", + "readOnly": true + }, + "driverVersion": { + "type": "string", + "description": "Driver Version of NIC", + "readOnly": true + }, + "ip4Address": { + "type": "string", + "description": "Subnet Mask of NIC", + "readOnly": true + }, + "subnetMask": { + "type": "string", + "description": "Subnet Mask of NIC", + "readOnly": true + }, + "defaultGateway": { + "type": "string", + "description": "Default Gateway of NIC", + "readOnly": true + }, + "dnsServers": { + "type": "array", + "description": "DNS Servers for NIC", + "items": { + "type": "string" + }, + "readOnly": true + }, + "defaultIsolationId": { + "type": "string", + "description": "Default Isolation of Management NIC", + "readOnly": true + }, + "macAddress": { + "type": "string", + "description": "MAC address information of NIC.", + "readOnly": true + }, + "slot": { + "type": "string", + "description": "The slot attached to the NIC.", + "readOnly": true + }, + "switchName": { + "type": "string", + "description": "The switch attached to the NIC, if any.", + "readOnly": true + }, + "nicType": { + "type": "string", + "description": "The type of NIC, physical, virtual, management.", + "readOnly": true + }, + "vlanId": { + "type": "string", + "description": "The VLAN ID of the physical NIC.", + "readOnly": true + }, + "nicStatus": { + "type": "string", + "description": "The status of NIC, up, disconnected.", + "readOnly": true + }, + "rdmaCapability": { + "type": "string", + "description": "Describes the RDMA capability of the network adapter.", + "default": "Disabled", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "RdmaCapability", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Network Adapter on the device is RDMA Capable" + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Network Adapter on the device is RDMA Capable" + } + ] + }, + "readOnly": true + } + } + }, + "HciOsProfile": { + "type": "object", + "description": "OS configurations for HCI device.", + "properties": { + "bootType": { + "type": "string", + "description": "The boot type of the device. e.g. UEFI, Legacy etc", + "readOnly": true + }, + "assemblyVersion": { + "type": "string", + "description": "Version of assembly present on device", + "readOnly": true + } + } + }, + "HciRemoteSupportJobProperties": { + "type": "object", + "description": "Represents the properties of a remote support job for HCI.", + "properties": { + "accessLevel": { + "$ref": "#/definitions/RemoteSupportAccessLevel", + "description": "Remote support access level." + }, + "expirationTimestamp": { + "type": "string", + "format": "date-time", + "description": "Remote support expiration timestamp." + }, + "type": { + "$ref": "#/definitions/RemoteSupportType", + "description": "Remote support type." + }, + "reportedProperties": { + "$ref": "#/definitions/RemoteSupportJobReportedProperties", + "description": "log collection job reported properties.", + "readOnly": true + } + }, + "required": [ + "accessLevel", + "expirationTimestamp", + "type" + ], + "allOf": [ + { + "$ref": "#/definitions/HciEdgeDeviceJobProperties" + } + ], + "x-ms-discriminator-value": "RemoteSupport" + }, + "HciReportedProperties": { + "type": "object", + "description": "The device Configuration for HCI device.", + "properties": { + "networkProfile": { + "$ref": "#/definitions/HciNetworkProfile", + "description": "HCI device network information.", + "readOnly": true + }, + "osProfile": { + "$ref": "#/definitions/HciOsProfile", + "description": "HCI device OS specific information.", + "readOnly": true + }, + "sbeDeploymentPackageInfo": { + "$ref": "#/definitions/SbeDeploymentPackageInfo", + "description": "Solution builder extension (SBE) deployment package information.", + "readOnly": true + }, + "storageProfile": { + "$ref": "#/definitions/HciStorageProfile", + "description": "Hci device storage specific information.", + "readOnly": true + }, + "hardwareProfile": { + "$ref": "#/definitions/HciHardwareProfile", + "description": "Hci device hardware specific information.", + "readOnly": true + } + }, + "allOf": [ + { + "$ref": "#/definitions/ReportedProperties" + } + ] + }, + "HciStorageProfile": { + "type": "object", + "description": "Storage configurations for HCI device.", + "properties": { + "poolableDisksCount": { + "type": "integer", + "format": "int64", + "description": "Number of storage disks in the device with $CanPool as true.", + "readOnly": true + } + } + }, + "HciValidationFailureDetail": { + "type": "object", + "description": "details of validation failure", + "properties": { + "exception": { + "type": "string", + "description": "Exception details while installing extension.", + "readOnly": true + } + } + }, + "HealthState": { + "type": "string", + "description": "Overall health state for update-specific health checks. Indicates whether the system is functioning correctly, has warnings or errors, or is undergoing a health evaluation.", + "enum": [ + "Unknown", + "Success", + "Failure", + "Warning", + "Error", + "InProgress" + ], + "x-ms-enum": { + "name": "HealthState", + "modelAsString": true, + "values": [ + { + "name": "Unknown", + "value": "Unknown", + "description": "The health state is not known or cannot be determined." + }, + { + "name": "Success", + "value": "Success", + "description": "The health check completed successfully and the system is healthy." + }, + { + "name": "Failure", + "value": "Failure", + "description": "The health check failed, indicating a critical issue." + }, + { + "name": "Warning", + "value": "Warning", + "description": "The health check detected a non-critical issue that may require attention." + }, + { + "name": "Error", + "value": "Error", + "description": "An error occurred during the health check process." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "The health check is currently in progress." + } + ] + } + }, + "IdentityProvider": { + "type": "string", + "description": "Identity Provider for the cluster", + "enum": [ + "ActiveDirectory", + "LocalIdentity" + ], + "x-ms-enum": { + "name": "IdentityProvider", + "modelAsString": true, + "values": [ + { + "name": "ActiveDirectory", + "value": "ActiveDirectory", + "description": "Uses Active Directory as the identity provider, enabling domain-based authentication and centralized identity management. This is the default option." + }, + { + "name": "LocalIdentity", + "value": "LocalIdentity", + "description": "Uses a local identity system integrated with Azure Key Vault for authentication. Suitable for AD-less environments where Active Directory is not available or required." + } + ] + } + }, + "IgvmStatus": { + "type": "string", + "description": "Represents the IGVM support status for the device.", + "enum": [ + "Unknown", + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "IgvmStatus", + "modelAsString": true, + "values": [ + { + "name": "Unknown", + "value": "Unknown", + "description": "The IGVM status could not be determined due to a query failure or inconsistent system state." + }, + { + "name": "Enabled", + "value": "Enabled", + "description": "IGVM support is enabled, indicating that confidential VM features are available on this device." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "IGVM status is disabled, indicating that confidential VM features are not supported on this device." + } + ] + } + }, + "IgvmStatusDetail": { + "type": "object", + "description": "Provides component-level status information related to IGVM enablement on the device.", + "properties": { + "code": { + "type": "string", + "description": "A machine-readable status code indicating the result or condition of a specific IGVM-related check or operation.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "A human-readable message providing context or explanation for the associated status code.", + "readOnly": true + } + } + }, + "ImdsAttestation": { + "type": "string", + "description": "IMDS attestation status of the cluster.", + "enum": [ + "Disabled", + "Enabled" + ], + "x-ms-enum": { + "name": "ImdsAttestation", + "modelAsString": true, + "values": [ + { + "name": "Disabled", + "value": "Disabled", + "description": "IMDS attestation is disabled for the cluster." + }, + { + "name": "Enabled", + "value": "Enabled", + "description": "IMDS attestation is enabled for the cluster." + } + ] + } + }, + "InfrastructureNetwork": { + "type": "object", + "description": "The InfrastructureNetwork of a AzureStackHCI Cluster.", + "properties": { + "subnetMask": { + "type": "string", + "description": "Subnet mask that matches the provided IP address space." + }, + "gateway": { + "type": "string", + "description": "Default gateway that should be used for the provided IP address space." + }, + "ipPools": { + "type": "array", + "description": "Range of IP addresses from which addresses are allocated for nodes within a subnet.", + "items": { + "$ref": "#/definitions/IpPools" + }, + "x-ms-identifiers": [] + }, + "dnsServerConfig": { + "type": "string", + "description": "Specifies how DNS servers are configured for the infrastructure network. Allowed values are 'UseDnsServer' to use the provided DNS servers, and 'UseForwarder' to use DNS forwarders.", + "default": "UseDnsServer", + "enum": [ + "UseDnsServer", + "UseForwarder" + ], + "x-ms-enum": { + "name": "DnsServerConfig", + "modelAsString": true, + "values": [ + { + "name": "UseDnsServer", + "value": "UseDnsServer", + "description": "Use the provided DNS servers for the infrastructure network." + }, + { + "name": "UseForwarder", + "value": "UseForwarder", + "description": "Use DNS forwarders for the infrastructure network." + } + ] + } + }, + "dnsZones": { + "type": "array", + "description": "Details of the DNS Zones to be configured.", + "items": { + "$ref": "#/definitions/DnsZones" + }, + "x-ms-identifiers": [ + "dnsZoneName" + ] + }, + "dnsServers": { + "type": "array", + "description": "IPv4 address of the DNS servers in your environment.", + "items": { + "type": "string" + } + }, + "useDhcp": { + "type": "boolean", + "description": "Allows customers to use DHCP for Hosts and Cluster IPs. If not declared, the deployment will default to static IPs. When true, GW and DNS servers are not required" + } + } + }, + "IpAddressRange": { + "type": "object", + "description": "IP address range configuration.", + "properties": { + "startIp": { + "type": "string", + "description": "Start IP address." + }, + "endIp": { + "type": "string", + "description": "End IP address." + } + }, + "required": [ + "startIp", + "endIp" + ] + }, + "IpAssignmentType": { + "type": "string", + "description": "IP assignment types", + "enum": [ + "Automatic", + "Manual" + ], + "x-ms-enum": { + "name": "IpAssignmentType", + "modelAsString": true, + "values": [ + { + "name": "Automatic", + "value": "Automatic", + "description": "Automatic IP assignment" + }, + { + "name": "Manual", + "value": "Manual", + "description": "Manual IP assignment" + } + ] + } + }, + "IpPools": { + "type": "object", + "description": "The dnsServers of a device.", + "properties": { + "startingAddress": { + "type": "string", + "description": "Starting IP address for the management network. A minimum of six free, contiguous IPv4 addresses (excluding your host IPs) are needed for infrastructure services such as clustering." + }, + "endingAddress": { + "type": "string", + "description": "Ending IP address for the management network. A minimum of six free, contiguous IPv4 addresses (excluding your host IPs) are needed for infrastructure services such as clustering." + } + } + }, + "IsolatedVmAttestationConfiguration": { + "type": "object", + "description": "Attestation configurations for isolated VM (e.g. TVM, CVM) of the cluster.", + "properties": { + "attestationResourceId": { + "type": "string", + "format": "arm-id", + "description": "Fully qualified Azure resource id of the Microsoft Azure attestation resource associated with this cluster.", + "readOnly": true, + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Attestation/attestationProviders", + "scopes": [ + "Tenant" + ] + } + ] + } + }, + "relyingPartyServiceEndpoint": { + "type": "string", + "description": "Region specific endpoint for relying party service.", + "readOnly": true + }, + "attestationServiceEndpoint": { + "type": "string", + "description": "Region specific endpoint for Microsoft Azure Attestation service for the cluster", + "readOnly": true + } + } + }, + "JobReportedProperties": { + "type": "object", + "description": "Reported Properties for job triggered from cloud.", + "properties": { + "percentComplete": { + "type": "integer", + "format": "int32", + "description": "The percentage of the job that is complete.", + "readOnly": true + }, + "validationStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Validation status of job.", + "readOnly": true + }, + "deploymentStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Deployment status of job.", + "readOnly": true + } + } + }, + "JobStatus": { + "type": "string", + "description": "Represents the various statuses a job can have throughout its lifecycle.", + "enum": [ + "NotSpecified", + "ValidationInProgress", + "ValidationSuccess", + "ValidationFailed", + "DeploymentInProgress", + "DeploymentFailed", + "DeploymentSuccess", + "Succeeded", + "Failed", + "Canceled", + "Paused", + "Scheduled" + ], + "x-ms-enum": { + "name": "JobStatus", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The job status has not been specified." + }, + { + "name": "ValidationInProgress", + "value": "ValidationInProgress", + "description": "The job is currently undergoing validation." + }, + { + "name": "ValidationSuccess", + "value": "ValidationSuccess", + "description": "The job has successfully passed validation." + }, + { + "name": "ValidationFailed", + "value": "ValidationFailed", + "description": "The job has failed validation." + }, + { + "name": "DeploymentInProgress", + "value": "DeploymentInProgress", + "description": "The job's deployment is currently in progress." + }, + { + "name": "DeploymentFailed", + "value": "DeploymentFailed", + "description": "The job's deployment has failed." + }, + { + "name": "DeploymentSuccess", + "value": "DeploymentSuccess", + "description": "The job has been successfully deployed." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The job has succeeded." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The job has failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "The job has been canceled." + }, + { + "name": "Paused", + "value": "Paused", + "description": "The job is paused." + }, + { + "name": "Scheduled", + "value": "Scheduled", + "description": "The job is scheduled to run." + } + ] + }, + "readOnly": true + }, + "KubernetesVersion": { + "type": "object", + "description": "Represents a kubernetes version resource.", + "properties": { + "properties": { + "$ref": "#/definitions/KubernetesVersionProperties", + "description": "The resource-specific properties for this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "KubernetesVersionListResult": { + "type": "object", + "description": "The response of a KubernetesVersion list operation.", + "properties": { + "value": { + "type": "array", + "description": "The KubernetesVersion items on this page", + "items": { + "$ref": "#/definitions/KubernetesVersion" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "KubernetesVersionProperties": { + "type": "object", + "description": "Represents properties of a kubernetes version.", + "properties": { + "version": { + "type": "string", + "description": "Represents kubernetes version." + } + }, + "required": [ + "version" + ] + }, + "LocalAvailabilityZones": { + "type": "object", + "description": "Local Availability Zone information for HCI cluster", + "properties": { + "localAvailabilityZoneName": { + "type": "string", + "description": "Local Availability Zone name for HCI cluster" + }, + "nodes": { + "type": "array", + "description": "Nodes belonging to a particular zone", + "items": { + "type": "string" + } + } + } + }, + "LogCollectionError": { + "type": "object", + "description": "Log Collection Error details of the cluster.", + "properties": { + "errorCode": { + "type": "string", + "description": "Error Code of the log collection", + "readOnly": true + }, + "errorMessage": { + "type": "string", + "description": "Error Message of the log collection", + "readOnly": true + } + } + }, + "LogCollectionJobSession": { + "type": "object", + "description": "Represents a session for collecting logs from an edge device.", + "properties": { + "startTime": { + "type": "string", + "description": "The timestamp when log collection started, in ISO 8601 format.", + "readOnly": true + }, + "endTime": { + "type": "string", + "description": "The timestamp when log collection ended, in ISO 8601 format.", + "readOnly": true + }, + "timeCollected": { + "type": "string", + "description": "The total time logs were collected for, in ISO 8601 duration format.", + "readOnly": true + }, + "logSize": { + "type": "integer", + "format": "int32", + "description": "The size of the collected logs in bytes.", + "readOnly": true + }, + "status": { + "$ref": "#/definitions/DeviceLogCollectionStatus", + "description": "The status of the log collection session.", + "readOnly": true + }, + "correlationId": { + "type": "string", + "description": "A unique identifier for correlating this log collection session with other operations or sessions.", + "readOnly": true + } + } + }, + "LogCollectionJobType": { + "type": "string", + "description": "Specifies the type of log collection job. Determines whether the logs are collected immediately on demand or as part of a scheduled operation.", + "enum": [ + "OnDemand", + "Scheduled" + ], + "x-ms-enum": { + "name": "LogCollectionJobType", + "modelAsString": true, + "values": [ + { + "name": "OnDemand", + "value": "OnDemand", + "description": "Log collection is triggered manually and executed immediately." + }, + { + "name": "Scheduled", + "value": "Scheduled", + "description": "Log collection is scheduled to run at a predefined time or interval." + } + ] + } + }, + "LogCollectionProperties": { + "type": "object", + "description": "Log Collection properties of the cluster.", + "properties": { + "fromDate": { + "type": "string", + "format": "date-time", + "description": "From DateTimeStamp from when logs need to be connected", + "readOnly": true + }, + "toDate": { + "type": "string", + "format": "date-time", + "description": "To DateTimeStamp till when logs need to be connected", + "readOnly": true + }, + "lastLogGenerated": { + "type": "string", + "format": "date-time", + "description": "Recent DateTimeStamp where logs are successfully generated", + "readOnly": true + }, + "logCollectionSessionDetails": { + "type": "array", + "items": { + "$ref": "#/definitions/LogCollectionSession" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "LogCollectionReportedProperties": { + "type": "object", + "description": "Represents the reported properties of a log collection job.", + "properties": { + "percentComplete": { + "type": "integer", + "format": "int32", + "description": "The percentage of the job that is complete.", + "readOnly": true + }, + "validationStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Validation status of job.", + "readOnly": true + }, + "deploymentStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Deployment status of job.", + "readOnly": true + }, + "logCollectionSessionDetails": { + "type": "array", + "description": "Details of the log collection session.", + "items": { + "$ref": "#/definitions/LogCollectionJobSession" + }, + "readOnly": true, + "x-ms-identifiers": [ + "correlationId" + ] + } + } + }, + "LogCollectionRequest": { + "type": "object", + "description": "Log Collection Request", + "properties": { + "properties": { + "$ref": "#/definitions/LogCollectionRequestProperties", + "description": "Properties for Log Collection Request" + } + } + }, + "LogCollectionRequestProperties": { + "type": "object", + "description": "Properties for Log Collection Request", + "properties": { + "fromDate": { + "type": "string", + "format": "date-time", + "description": "From DateTimeStamp from when logs need to be connected" + }, + "toDate": { + "type": "string", + "format": "date-time", + "description": "To DateTimeStamp till when logs need to be connected" + } + }, + "required": [ + "fromDate", + "toDate" + ] + }, + "LogCollectionSession": { + "type": "object", + "description": "Log Collection Session details of the cluster.", + "properties": { + "logStartTime": { + "type": "string", + "format": "date-time", + "description": "Start Time of the logs when it was collected", + "readOnly": true + }, + "logEndTime": { + "type": "string", + "format": "date-time", + "description": "End Time of the logs when it was collected", + "readOnly": true + }, + "timeCollected": { + "type": "string", + "format": "date-time", + "description": "Duration of logs collected", + "readOnly": true + }, + "logSize": { + "type": "integer", + "format": "int64", + "description": "Size of the logs collected", + "readOnly": true + }, + "logCollectionStatus": { + "$ref": "#/definitions/LogCollectionStatus", + "description": "LogCollection status", + "readOnly": true + }, + "correlationId": { + "type": "string", + "description": "CorrelationId of the log collection", + "readOnly": true + }, + "logCollectionJobType": { + "$ref": "#/definitions/LogCollectionJobType", + "description": "Specifies the type of log collection job. Determines whether the logs are collected immediately on demand or as part of a scheduled operation.", + "readOnly": true + }, + "endTimeCollected": { + "type": "string", + "format": "date-time", + "description": "End Time of the logs when it was collected", + "readOnly": true + }, + "logCollectionError": { + "$ref": "#/definitions/LogCollectionError", + "description": "Log Collection Error details of the cluster.", + "readOnly": true + } + } + }, + "LogCollectionStatus": { + "type": "string", + "description": "LogCollection status", + "enum": [ + "None", + "InProgress", + "Failed", + "Succeeded" + ], + "x-ms-enum": { + "name": "LogCollectionStatus", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "No log collection has been initiated." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "Log collection is currently in progress." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Log collection has failed." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Log collection completed successfully." + } + ] + }, + "readOnly": true + }, + "NetworkAdapter": { + "type": "object", + "description": "Network adapter configuration.", + "properties": { + "ipAssignmentType": { + "$ref": "#/definitions/IpAssignmentType", + "description": "Type of IP assignment." + }, + "ipAddress": { + "type": "string", + "description": "IP address." + }, + "adapterName": { + "type": "string", + "description": "Adapter Name." + }, + "macAddress": { + "type": "string", + "description": "MAC address." + }, + "ipAddressRange": { + "$ref": "#/definitions/IpAddressRange", + "description": "IP address range." + }, + "gateway": { + "type": "string", + "description": "Gateway id." + }, + "subnetMask": { + "type": "string", + "description": "Subnet mask." + }, + "dnsAddressArray": { + "type": "array", + "description": "Array of DNS addresses.", + "items": { + "type": "string" + } + }, + "vlanId": { + "type": "string", + "description": "VLAN ID for the network setup." + } + }, + "required": [ + "ipAssignmentType" + ] + }, + "NetworkConfiguration": { + "type": "object", + "description": "Network configuration.", + "properties": { + "networkAdapters": { + "type": "array", + "description": "List of network adapters.", + "items": { + "$ref": "#/definitions/NetworkAdapter" + }, + "x-ms-identifiers": [] + } + } + }, + "NetworkController": { + "type": "object", + "description": "network controller config for SDN Integration to deploy AzureStackHCI Cluster.", + "properties": { + "macAddressPoolStart": { + "type": "string", + "description": "macAddressPoolStart of network controller used for SDN Integration." + }, + "macAddressPoolStop": { + "type": "string", + "description": "macAddressPoolStop of network controller used for SDN Integration." + }, + "networkVirtualizationEnabled": { + "type": "boolean", + "description": "NetworkVirtualizationEnabled of network controller used for SDN Integration." + } + } + }, + "NicDetail": { + "type": "object", + "description": "The NIC Detail of a device.", + "properties": { + "adapterName": { + "type": "string", + "description": "Adapter Name of NIC" + }, + "interfaceDescription": { + "type": "string", + "description": "Interface Description of NIC" + }, + "componentId": { + "type": "string", + "description": "Component Id of NIC" + }, + "driverVersion": { + "type": "string", + "description": "Driver Version of NIC" + }, + "ip4Address": { + "type": "string", + "description": "Subnet Mask of NIC" + }, + "subnetMask": { + "type": "string", + "description": "Subnet Mask of NIC" + }, + "defaultGateway": { + "type": "string", + "description": "Default Gateway of NIC" + }, + "dnsServers": { + "type": "array", + "description": "DNS Servers for NIC", + "items": { + "type": "string" + } + }, + "defaultIsolationId": { + "type": "string", + "description": "Default Isolation of Management NIC" + } + } + }, + "NodeArcState": { + "type": "string", + "description": "State of the Arc agent in this node. Indicates the current lifecycle status of the agent, such as whether it's being provisioned, connected, updated, or has encountered an error.", + "enum": [ + "NotSpecified", + "Error", + "Succeeded", + "Canceled", + "Failed", + "Connected", + "Disconnected", + "Deleted", + "Creating", + "Updating", + "Deleting", + "Moving", + "PartiallySucceeded", + "PartiallyConnected", + "InProgress", + "Accepted", + "Provisioning", + "DisableInProgress" + ], + "x-ms-enum": { + "name": "NodeArcState", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The state is not specified." + }, + { + "name": "Error", + "value": "Error", + "description": "An error occurred during the agent's lifecycle." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The operation completed successfully." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "The operation was canceled before completion." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The operation failed." + }, + { + "name": "Connected", + "value": "Connected", + "description": "The Arc agent is connected on this node." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The Arc agent is disconnected on this node." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "The Arc agent has been deleted from this node." + }, + { + "name": "Creating", + "value": "Creating", + "description": "The Arc agent is being created on this node." + }, + { + "name": "Updating", + "value": "Updating", + "description": "The Arc agent is being updated on this node." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The Arc agent is being deleted from this node." + }, + { + "name": "Moving", + "value": "Moving", + "description": "The Arc agent is being moved on this node." + }, + { + "name": "PartiallySucceeded", + "value": "PartiallySucceeded", + "description": "The operation partially succeeded." + }, + { + "name": "PartiallyConnected", + "value": "PartiallyConnected", + "description": "The Arc agent is partially connected on this node." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "The operation is currently in progress." + }, + { + "name": "Accepted", + "value": "Accepted", + "description": "The operation has been accepted and is pending execution." + }, + { + "name": "Provisioning", + "value": "Provisioning", + "description": "The Arc agent is currently being provisioned on this node." + }, + { + "name": "DisableInProgress", + "value": "DisableInProgress", + "description": "The Arc agent is in the process of being disabled on this node." + } + ] + }, + "readOnly": true + }, + "NodeExtensionState": { + "type": "string", + "description": "State of Arc Extension in this node. Reflects the current lifecycle status of the extension on the individual node, such as whether it's being created, updated, deleted, or has encountered an error.", + "enum": [ + "NotSpecified", + "Error", + "Succeeded", + "Canceled", + "Failed", + "Connected", + "Disconnected", + "Deleted", + "Creating", + "Updating", + "Deleting", + "Moving", + "PartiallySucceeded", + "PartiallyConnected", + "InProgress", + "Accepted", + "Provisioning" + ], + "x-ms-enum": { + "name": "NodeExtensionState", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The state is not specified." + }, + { + "name": "Error", + "value": "Error", + "description": "An error occurred during the extension lifecycle." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The extension operation completed successfully." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "The extension operation was canceled." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The extension operation failed." + }, + { + "name": "Connected", + "value": "Connected", + "description": "The extension is connected on the node." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The extension is disconnected on the node." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "The extension has been deleted from the node." + }, + { + "name": "Creating", + "value": "Creating", + "description": "The extension is being created on the node." + }, + { + "name": "Updating", + "value": "Updating", + "description": "The extension is being updated on the node." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The extension is being deleted from the node." + }, + { + "name": "Moving", + "value": "Moving", + "description": "The extension is being moved on the node." + }, + { + "name": "PartiallySucceeded", + "value": "PartiallySucceeded", + "description": "The extension operation partially succeeded." + }, + { + "name": "PartiallyConnected", + "value": "PartiallyConnected", + "description": "The extension is partially connected on the node." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "The extension operation is currently in progress." + }, + { + "name": "Accepted", + "value": "Accepted", + "description": "The extension operation has been accepted and is pending execution." + }, + { + "name": "Provisioning", + "value": "Provisioning", + "description": "The extension is currently being provisioned on the node." + } + ] + }, + "readOnly": true + }, + "OSOperationType": { + "type": "string", + "description": "OS Provision Operation type", + "enum": [ + "Provision", + "Update", + "ReImage" + ], + "x-ms-enum": { + "name": "OSOperationType", + "modelAsString": true, + "values": [ + { + "name": "Provision", + "value": "Provision", + "description": "OS Provisioning operation" + }, + { + "name": "Update", + "value": "Update", + "description": "OS Update operation" + }, + { + "name": "ReImage", + "value": "ReImage", + "description": "OS ReImage operation" + } + ] + } + }, + "Observability": { + "type": "object", + "description": "The Observability of AzureStackHCI Cluster.", "properties": { - "igvmStatus": { - "$ref": "#/definitions/IgvmStatus", - "description": "Indicates whether Independent Guest Virtual Machine (IGVM) support is available on the device. This will be 'Enabled' if the device supports CVMs, 'Disabled' if not, and 'Unknown' if the status cannot be determined.", + "streamingDataClient": { + "type": "boolean", + "description": "Enables telemetry data to be sent to Microsoft", + "default": true + }, + "euLocation": { + "type": "boolean", + "description": "Location of your cluster. The log and diagnostic data is sent to the appropriate diagnostics servers depending upon where your cluster resides. Setting this to false results in all data sent to Microsoft to be stored outside of the EU.", + "default": false + }, + "episodicDataUpload": { + "type": "boolean", + "description": "When set to true, collects log data to facilitate quicker issue resolution.", + "default": true + } + } + }, + "OemActivation": { + "type": "string", + "description": "OEM activation status of the cluster.", + "enum": [ + "Disabled", + "Enabled" + ], + "x-ms-enum": { + "name": "OemActivation", + "modelAsString": true, + "values": [ + { + "name": "Disabled", + "value": "Disabled", + "description": "OEM activation is disabled for the cluster." + }, + { + "name": "Enabled", + "value": "Enabled", + "description": "OEM activation is enabled for the cluster." + } + ] + } + }, + "Offer": { + "type": "object", + "description": "Offer details.", + "properties": { + "properties": { + "$ref": "#/definitions/OfferProperties", + "description": "Offer properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "OfferList": { + "type": "object", + "description": "List of Offer proxy resources for the HCI cluster.", + "properties": { + "value": { + "type": "array", + "description": "The Offer items on this page", + "items": { + "$ref": "#/definitions/Offer" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "OfferProperties": { + "type": "object", + "description": "Publisher properties.", + "properties": { + "provisioningState": { + "type": "string", + "description": "Provisioning State", + "readOnly": true + }, + "publisherId": { + "type": "string", + "description": "Identifier of the Publisher for the offer" + }, + "content": { + "type": "string", + "description": "JSON serialized catalog content of the offer" + }, + "contentVersion": { + "type": "string", + "description": "The API version of the catalog service used to serve the catalog content" + }, + "skuMappings": { + "type": "array", + "description": "Array of SKU mappings", + "items": { + "$ref": "#/definitions/SkuMappings" + }, + "x-ms-identifiers": [] + } + } + }, + "OnboardingConfiguration": { + "type": "object", + "description": "Onboarding configuration.", + "properties": { + "type": { + "$ref": "#/definitions/OnboardingResourceType", + "description": "Type of the onboarding resource to support polymorphic resource.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "resourceId": { + "type": "string", + "format": "arm-id", + "description": "Resource ID." + }, + "location": { + "type": "string", + "description": "Location of the resource.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "tenantId": { + "type": "string", + "description": "Tenant ID of the resource." + }, + "arcVirtualMachineId": { + "type": "string", + "description": "Azure Arc virtual machine ID." + } + } + }, + "OnboardingResourceType": { + "type": "string", + "description": "Onboarding resource type.", + "enum": [ + "HybridComputeMachine" + ], + "x-ms-enum": { + "name": "OnboardingResourceType", + "modelAsString": true, + "values": [ + { + "name": "HybridComputeMachine", + "value": "HybridComputeMachine", + "description": "Hybrid Compute Machine." + } + ] + } + }, + "OperationDetail": { + "type": "object", + "description": "operation detail.", + "properties": { + "name": { + "type": "string", + "description": "operation name.", + "readOnly": true + }, + "id": { + "type": "string", + "description": "operation id.", + "readOnly": true + }, + "type": { + "type": "string", + "description": "operation type.", + "readOnly": true + }, + "resourceId": { + "type": "string", + "format": "arm-id", + "description": "operation resource id.", + "readOnly": true + }, + "description": { + "type": "string", + "description": "operation description.", + "readOnly": true + }, + "status": { + "type": "string", + "description": "operation status.", + "readOnly": true + }, + "error": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorDetail", + "description": "error details.", + "readOnly": true + } + } + }, + "OperationType": { + "type": "string", + "description": "The intended operation for a cluster.", + "enum": [ + "ClusterProvisioning", + "ClusterUpgrade" + ], + "x-ms-enum": { + "name": "OperationType", + "modelAsString": true, + "values": [ + { + "name": "ClusterProvisioning", + "value": "ClusterProvisioning", + "description": "Cluster provisioning operation." + }, + { + "name": "ClusterUpgrade", + "value": "ClusterUpgrade", + "description": "Cluster upgrade operation." + } + ] + } + }, + "OptionalServices": { + "type": "object", + "description": "The OptionalServices of AzureStackHCI Cluster.", + "properties": { + "customLocation": { + "type": "string", + "description": "The name of custom location." + } + } + }, + "OsImage": { + "type": "object", + "description": "Represents a os image resource.", + "properties": { + "properties": { + "$ref": "#/definitions/OsImageProperties", + "description": "The resource-specific properties for this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "OsImageListResult": { + "type": "object", + "description": "The response of a OsImage list operation.", + "properties": { + "value": { + "type": "array", + "description": "The OsImage items on this page", + "items": { + "$ref": "#/definitions/OsImage" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "OsImageProperties": { + "type": "object", + "description": "Represents properties of a os image resource.", + "properties": { + "validatedSolutionRecipeVersion": { + "type": "string", + "description": "Represents validated solution recipe version of a os image." + }, + "composedImageVersion": { + "type": "string", + "description": "Represents composed image version of a os image." + }, + "composedImageIsoUrl": { + "type": "string", + "description": "Represents composed image iso download url of a os image." + }, + "composedImageIsoHash": { + "type": "string", + "description": "Represents composed image iso hash of a os image." + } + } + }, + "OsProfile": { + "type": "object", + "description": "OS configurations for HCI device.", + "properties": { + "bootType": { + "type": "string", + "description": "The boot type of the device. e.g. UEFI, Legacy etc", "readOnly": true }, - "statusDetails": { - "type": "array", - "description": "Provides detailed status entries for IGVM-related components, including deployment status, compatibility checks, and error diagnostics.", - "items": { - "$ref": "#/definitions/IgvmStatusDetail" - }, - "x-ms-identifiers": [ - "code" - ] + "assemblyVersion": { + "type": "string", + "description": "Version of assembly present on device", + "readOnly": true + }, + "osType": { + "type": "string", + "description": "OS type (“windows\", “linux”)", + "readOnly": true + }, + "osSku": { + "type": "string", + "description": "OS SKU (e.g., “ Microsoft Azure Linux ROE“, “Azure Stack HCI\", \"Microsoft Azure Linux 3.0\")", + "readOnly": true + }, + "osVersion": { + "type": "string", + "description": "OS Version", + "readOnly": true + }, + "buildNumber": { + "type": "string", + "description": "OS Build Number", + "readOnly": true + }, + "baseImageVersion": { + "type": "string", + "description": "OS Base Image Version", + "readOnly": true + }, + "imageVersion": { + "type": "string", + "description": "OS Image Version", + "readOnly": true } } }, - "ConfidentialVmProperties": { + "OsProvisionProfile": { "type": "object", - "description": "Represents the Confidential Virtual Machine (CVM) support intent and current status for the cluster resource.", + "description": "Operating system profile.", "properties": { - "confidentialVmIntent": { + "osName": { "type": "string", - "description": "Captures the customer's intent to enable or disable CVM support on the cluster, either during initial deployment (Day-0) or at a later stage (Day-N).", - "default": "Disable", - "enum": [ - "Enable", - "Disable" - ], - "x-ms-enum": { - "name": "ConfidentialVmIntent", - "modelAsString": true, - "values": [ - { - "name": "Enable", - "value": "Enable", - "description": "Indicates that the customer intends to enable CVM support on the cluster." - }, - { - "name": "Disable", - "value": "Disable", - "description": "Indicates that the customer intends to disable CVM support on the cluster." - } - ] - }, - "readOnly": true + "description": "Name of the operating system." }, - "confidentialVmStatus": { + "osType": { "type": "string", - "description": "Captures the current status of CVM support on the cluster.", - "default": "Disabled", + "description": "Type of the operating system." + }, + "osVersion": { + "type": "string", + "description": "Version of the operating system." + }, + "osImageLocation": { + "type": "string", + "description": "Location of the operating system image." + }, + "vsrVersion": { + "type": "string", + "description": "Validated Solution Recipe version to be used for the job" + }, + "imageHash": { + "type": "string", + "description": "Hash of the OS package downloaded" + }, + "gpgPubKey": { + "type": "string", + "description": "GPG Public Key used for package verification" + }, + "operationType": { + "type": "string", + "description": "Operation sub type of OS Provisioning", + "default": "Provision", "enum": [ - "Enabled", - "PartiallyEnabled", - "Disabled" + "Provision", + "Update", + "ReImage" ], "x-ms-enum": { - "name": "ConfidentialVmStatus", + "name": "OSOperationType", "modelAsString": true, "values": [ { - "name": "Enabled", - "value": "Enabled", - "description": "CVM support is fully enabled on the cluster. All nodes are CVM capable." + "name": "Provision", + "value": "Provision", + "description": "OS Provisioning operation" }, { - "name": "PartiallyEnabled", - "value": "PartiallyEnabled", - "description": "CVM support is partially enabled. At least one node in the cluster is CVM capable." + "name": "Update", + "value": "Update", + "description": "OS Update operation" }, { - "name": "Disabled", - "value": "Disabled", - "description": "CVM support is disabled. None of the nodes in the cluster are CVM capable." + "name": "ReImage", + "value": "ReImage", + "description": "OS ReImage operation" } ] - }, - "readOnly": true + } + } + } + }, + "OwnerKeyType": { + "type": "string", + "description": "Type of owner key in the voucher", + "enum": [ + "MicrosoftManaged" + ], + "x-ms-enum": { + "name": "OwnerKeyType", + "modelAsString": true, + "values": [ + { + "name": "MicrosoftManaged", + "value": "MicrosoftManaged", + "description": "Owner is Microsoft managed key" + } + ] + } + }, + "OwnershipVoucherDetails": { + "type": "object", + "description": "Details for ownership voucher.", + "properties": { + "ownershipVoucher": { + "type": "string", + "format": "password", + "description": "Ownership voucher in base64 encoded format", + "x-ms-secret": true }, - "confidentialVmStatusSummary": { + "ownerKeyType": { + "$ref": "#/definitions/OwnerKeyType", + "description": "Owner key type" + } + }, + "required": [ + "ownershipVoucher", + "ownerKeyType" + ] + }, + "OwnershipVoucherValidationDetails": { + "type": "object", + "description": "Ownership Voucher Validation Details", + "properties": { + "validationStatus": { + "$ref": "#/definitions/OwnershipVoucherValidationStatus", + "description": "The ownership voucher validation status." + }, + "serialNumber": { "type": "string", - "description": "Additional context about CVM support on the cluster, such as reasons for partial enablement or hardware constraints.", - "readOnly": true + "description": "Serial number of the device." + }, + "id": { + "type": "string", + "description": "FDO guid of the Ownership Voucher." + }, + "manufacturer": { + "type": "string", + "description": "Name of the manufacturer." + }, + "modelName": { + "type": "string", + "description": "Name of the model." + }, + "version": { + "type": "string", + "description": "Version of the Ownership Voucher format" + }, + "azureMachineId": { + "type": "string", + "description": "Azure Machine Id of the Ownership voucher" + }, + "error": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorDetail", + "description": "Error details if the validation failed." } } }, - "ConfidentialVmStatus": { + "OwnershipVoucherValidationStatus": { "type": "string", - "description": "Captures the current status of Confidential Virtual Machine (CVM) support on the cluster.", + "description": "Ownership Voucher validation Status.", "enum": [ - "Enabled", - "PartiallyEnabled", - "Disabled" + "Valid", + "Invalid" ], "x-ms-enum": { - "name": "ConfidentialVmStatus", + "name": "OwnershipVoucherValidationStatus", "modelAsString": true, "values": [ { - "name": "Enabled", - "value": "Enabled", - "description": "CVM support is fully enabled on the cluster. All nodes are CVM capable." - }, - { - "name": "PartiallyEnabled", - "value": "PartiallyEnabled", - "description": "CVM support is partially enabled. At least one node in the cluster is CVM capable." + "name": "Valid", + "value": "Valid", + "description": "Voucher evaluated as valid." }, { - "name": "Disabled", - "value": "Disabled", - "description": "CVM support is disabled. None of the nodes in the cluster are CVM capable." + "name": "Invalid", + "value": "Invalid", + "description": "Voucher evaluated as invalid." } ] } }, - "ContentPayload": { + "PackageVersionInfo": { + "type": "object", + "description": "Current version of each updatable component.", + "properties": { + "packageType": { + "type": "string", + "description": "Package type" + }, + "version": { + "type": "string", + "description": "Package version" + }, + "lastUpdated": { + "type": "string", + "format": "date-time", + "description": "Last time this component was updated." + } + } + }, + "PasswordCredential": { + "type": "object", + "properties": { + "secretText": { + "type": "string" + }, + "keyId": { + "type": "string" + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + } + } + }, + "PerNodeExtensionState": { "type": "object", - "description": "Represents details of a specific update content payload.", + "description": "Status of Arc Extension for a particular node in HCI Cluster.", "properties": { - "url": { + "name": { "type": "string", - "description": "Represents url of a update payload." + "description": "Name of the node in HCI Cluster.", + "readOnly": true }, - "hash": { + "extension": { "type": "string", - "description": "Represents hash of a update payload." + "description": "Fully qualified resource ID for the particular Arc Extension on this node.", + "readOnly": true }, - "hashAlgorithm": { + "typeHandlerVersion": { "type": "string", - "description": "Represents hash algorithm of a update payload." + "description": "Specifies the version of the script handler.", + "readOnly": true }, - "identifier": { - "type": "string", - "description": "Represents identifier of a update payload." + "state": { + "$ref": "#/definitions/NodeExtensionState", + "description": "State of Arc Extension in this node. Reflects the current lifecycle status of the extension on the individual node, such as whether it's being created, updated, deleted, or has encountered an error.", + "readOnly": true }, - "packageSizeInBytes": { + "instanceView": { + "$ref": "#/definitions/ExtensionInstanceView", + "description": "The extension instance view.", + "readOnly": true + } + } + }, + "PerNodeRemoteSupportSession": { + "type": "object", + "description": "Remote Support Node Session Details on the Node.", + "properties": { + "sessionStartTime": { "type": "string", - "description": "Represents size in bytes of a update payload." + "format": "date-time", + "description": "Remote Support Session StartTime on the Node", + "readOnly": true }, - "group": { + "sessionEndTime": { "type": "string", - "description": "Represents the group of a update payload." + "format": "date-time", + "description": "Remote Support Session EndTime on the Node", + "readOnly": true }, - "fileName": { + "nodeName": { "type": "string", - "description": "Represents the file name of a update payload." + "description": "Name of the node", + "readOnly": true + }, + "duration": { + "type": "integer", + "format": "int64", + "description": "Duration of Remote Support Enablement", + "readOnly": true + }, + "accessLevel": { + "$ref": "#/definitions/AccessLevel", + "description": "Remote Support Access Level", + "readOnly": true } } }, - "DeploymentMode": { - "type": "string", - "description": "Deployment mode to trigger job.", - "enum": [ - "Validate", - "Deploy" - ], - "x-ms-enum": { - "name": "DeploymentMode", - "modelAsString": true, - "values": [ - { - "name": "Validate", - "value": "Validate", - "description": "Validate ECE action deployment for a cluster." - }, - { - "name": "Deploy", - "value": "Deploy", - "description": "Deploy ECE action deployment for a cluster." - } - ] + "PerNodeState": { + "type": "object", + "description": "Status of Arc agent for a particular node in HCI Cluster.", + "properties": { + "name": { + "type": "string", + "description": "Name of the Node in HCI Cluster", + "readOnly": true + }, + "arcInstance": { + "type": "string", + "description": "Fully qualified resource ID for the Arc agent of this node.", + "readOnly": true + }, + "arcNodeServicePrincipalObjectId": { + "type": "string", + "description": "The service principal id of the arc for server node", + "readOnly": true + }, + "state": { + "$ref": "#/definitions/NodeArcState", + "description": "State of the Arc agent in this node. Indicates the current lifecycle status of the agent, such as whether it's being provisioned, connected, updated, or has encountered an error.", + "readOnly": true + } } }, - "DeviceConfiguration": { + "PhysicalNodes": { "type": "object", - "description": "Device configuration.", + "description": "The PhysicalNodes of a cluster.", "properties": { - "network": { - "$ref": "#/definitions/NetworkConfiguration", - "description": "Network configuration." + "name": { + "type": "string", + "description": "NETBIOS name of each physical server on your Azure Stack HCI cluster." }, - "hostName": { + "ipv4Address": { "type": "string", - "description": "Hostname of the device." + "description": "The IPv4 address assigned to each physical server on your Azure Stack HCI cluster." + } + } + }, + "PlatformPayload": { + "type": "object", + "description": "Represents details of a specific platform update payload.", + "properties": { + "payloadUrl": { + "type": "string", + "description": "Represents url of a platform update payload." }, - "webProxy": { - "$ref": "#/definitions/WebProxyConfiguration", - "description": "Web proxy configuration." + "payloadHash": { + "type": "string", + "description": "Represents hash of a platform update payload." }, - "time": { - "$ref": "#/definitions/TimeConfiguration", - "description": "Time configuration." + "payloadPackageSizeInBytes": { + "type": "string", + "description": "Represents size in bytes of a platform update payload." }, - "storage": { - "$ref": "#/definitions/StorageConfiguration", - "description": "Storage configuration." + "payloadIdentifier": { + "type": "string", + "description": "Represents identifier of a platform update payload." } } }, - "DeviceLogCollectionStatus": { - "type": "string", - "description": "Represents the status of a log collection operation.", - "enum": [ - "NotStarted", - "Running", - "Failed", - "Succeeded", - "Canceled" - ], - "x-ms-enum": { - "name": "DeviceLogCollectionStatus", - "modelAsString": true, - "values": [ - { - "name": "NotStarted", - "value": "NotStarted", - "description": "Log collection operation has not been initiated." - }, - { - "name": "Running", - "value": "Running", - "description": "Indicates that the log collection operation is currently running." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Indicates that the log collection operation has failed." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Indicates that the log collection operation has completed successfully." + "PlatformUpdate": { + "type": "object", + "description": "Represents a platform update resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PlatformUpdateProperties", + "description": "The resource-specific properties for this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "PlatformUpdateDetails": { + "type": "object", + "description": "Represents details of a specific platform update.", + "properties": { + "validatedSolutionRecipeVersion": { + "type": "string", + "description": "Represents validated solution recipe version of a platform update." + }, + "platformVersion": { + "type": "string", + "description": "Represents version of a platform update." + }, + "platformPayloads": { + "type": "array", + "description": "Represents the platform payloads of a platform update.", + "items": { + "$ref": "#/definitions/PlatformPayload" }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Indicates that the log collection operation has completed successfully." - } - ] + "x-ms-identifiers": [] + } }, - "readOnly": true + "required": [ + "platformPayloads" + ] }, - "DownloadOsJobProperties": { + "PlatformUpdateListResult": { "type": "object", - "description": "Represents the properties of Download Os job.", + "description": "The response of a PlatformUpdate list operation.", "properties": { - "downloadRequest": { - "$ref": "#/definitions/DownloadRequest", - "description": "Download OS request." + "value": { + "type": "array", + "description": "The PlatformUpdate items on this page", + "items": { + "$ref": "#/definitions/PlatformUpdate" + } }, - "reportedProperties": { - "$ref": "#/definitions/ProvisionOsReportedProperties", - "description": "Reported Properties for Download Os job" + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" } }, "required": [ - "downloadRequest" - ], - "allOf": [ - { - "$ref": "#/definitions/EdgeMachineJobProperties" + "value" + ] + }, + "PlatformUpdateProperties": { + "type": "object", + "description": "Represents properties of a platform update resource.", + "properties": { + "platformUpdateDetails": { + "type": "array", + "description": "Represents applicable platform updates.", + "items": { + "$ref": "#/definitions/PlatformUpdateDetails" + }, + "x-ms-identifiers": [] } - ], - "x-ms-discriminator-value": "DownloadOs" + }, + "required": [ + "platformUpdateDetails" + ] }, - "DownloadOsProfile": { + "PrecheckResult": { "type": "object", - "description": "Operating system profile.", "properties": { - "osName": { + "name": { + "type": "string", + "description": "Name of the individual test/rule/alert that was executed. Unique, not exposed to the customer." + }, + "displayName": { + "type": "string", + "description": "The health check DisplayName localized of the individual test executed." + }, + "tags": { + "$ref": "#/definitions/PrecheckResultTags", + "description": "Key-value pairs that allow grouping/filtering individual tests." + }, + "healthCheckTags": { + "description": "Key-value pairs that allow grouping/filtering individual tests." + }, + "title": { "type": "string", - "description": "Name of the operating system." + "description": "User-facing name; one or more sentences indicating the direct issue." }, - "osType": { + "status": { + "$ref": "#/definitions/Status", + "description": "Represents the current status of the check being performed. Indicates whether the check has completed successfully, failed, or is still in progress." + }, + "severity": { + "$ref": "#/definitions/Severity", + "description": "Indicates the importance or impact level of the result. Determines whether the result is informational, a warning, or a critical issue that may block updates." + }, + "description": { "type": "string", - "description": "Type of the operating system." + "description": "Detailed overview of the issue and what impact the issue has on the stamp." }, - "osVersion": { + "remediation": { "type": "string", - "description": "Version of the operating system." + "description": "Set of steps that can be taken to resolve the issue found." }, - "osImageLocation": { + "targetResourceID": { "type": "string", - "description": "Location of the operating system image." + "description": "The unique identifier for the affected resource (such as a node or drive)." }, - "vsrVersion": { + "targetResourceName": { "type": "string", - "description": "Validated Solution Recipe version to be used for the job" + "description": "The name of the affected resource." }, - "imageHash": { + "targetResourceType": { "type": "string", - "description": "Hash of the OS package downloaded" + "description": "The type of resource being referred to (well-known set of nouns in infrastructure, aligning with Monitoring)." }, - "gpgPubKey": { + "timestamp": { "type": "string", - "description": "GPG Public Key used for package verification" + "format": "date-time", + "description": "The time in which the HealthCheck was called." + }, + "additionalData": { + "type": "string", + "description": "Property bag of key value pairs for additional information." + }, + "healthCheckSource": { + "type": "string", + "description": "The name of the services called for the HealthCheck (I.E. Test-AzureStack, Test-Cluster)." } } }, - "DownloadRequest": { + "PrecheckResultTags": { "type": "object", - "description": "Download Request properties", + "description": "Key-value pairs that allow grouping/filtering individual tests.", "properties": { - "target": { - "$ref": "#/definitions/ProvisioningOsType", - "description": "Target operating system to support polymorphic resource.", - "x-ms-mutability": [ - "read", - "create" - ] + "key": { + "type": "string", + "description": "Key that allow grouping/filtering individual tests." }, - "osProfile": { - "$ref": "#/definitions/DownloadOsProfile", - "description": "Operating system profile." + "value": { + "type": "string", + "description": "Value of the key that allow grouping/filtering individual tests." + } + } + }, + "ProvisionOsJobProperties": { + "type": "object", + "description": "Represents the properties of an Azure Linux restricted operating environment Provision Os job.", + "properties": { + "provisioningRequest": { + "$ref": "#/definitions/ProvisioningRequest", + "description": "Os Provisioning request." + }, + "reportedProperties": { + "$ref": "#/definitions/ProvisionOsReportedProperties", + "description": "Reported Properties for Provision Os job" } }, "required": [ - "target", - "osProfile" - ] + "provisioningRequest" + ], + "allOf": [ + { + "$ref": "#/definitions/EdgeMachineJobProperties" + } + ], + "x-ms-discriminator-value": "ProvisionOs" }, - "EceActionStatus": { + "ProvisionOsReportedProperties": { "type": "object", - "description": "Validation / deployment status details for Job.", + "description": "Reported Properties for Provision Os job", "properties": { - "status": { - "type": "string", - "description": "Job status.", + "percentComplete": { + "type": "integer", + "format": "int32", + "description": "The percentage of the job that is complete.", "readOnly": true }, - "steps": { - "type": "array", - "description": "List of steps of Edge device job.", - "items": { - "$ref": "#/definitions/Step" - }, - "readOnly": true, - "x-ms-identifiers": [ - "name" - ] + "validationStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Validation status of job.", + "readOnly": true + }, + "deploymentStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Deployment status of job.", + "readOnly": true } } }, - "EdgeMachine": { + "ProvisioningDetails": { "type": "object", - "description": "EdgeMachine details.", + "description": "Details for device provisioning.", "properties": { - "properties": { - "$ref": "#/definitions/EdgeMachineProperties", - "description": "The resource-specific properties for this resource." + "osProfile": { + "$ref": "#/definitions/OsProvisionProfile", + "description": "Operating system profile." }, - "identity": { - "$ref": "../../../../../../common-types/resource-management/v6/managedidentity.json#/definitions/ManagedServiceIdentity", - "description": "The managed service identities assigned to this resource." + "userDetails": { + "type": "array", + "description": "User configuration.", + "minItems": 1, + "items": { + "$ref": "#/definitions/UserDetails" + }, + "x-ms-identifiers": [ + "userName" + ] } }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/TrackedResource" - } + "required": [ + "osProfile" ] }, - "EdgeMachineConnectivityStatus": { + "ProvisioningOsType": { "type": "string", - "description": "Overall connectivity status for the machine resource.", + "description": "Represents the provisioning operating system type.", "enum": [ - "NotSpecified", - "Disconnected", - "Connected" + "AzureLinux", + "HCI" ], "x-ms-enum": { - "name": "EdgeMachineConnectivityStatus", + "name": "ProvisioningOsType", "modelAsString": true, "values": [ { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The connectivity status of the machine resource is not specified." - }, - { - "name": "Disconnected", - "value": "Disconnected", - "description": "The machine resource is disconnected." + "name": "AzureLinux", + "value": "AzureLinux", + "description": "AzureLinux OS." }, { - "name": "Connected", - "value": "Connected", - "description": "The machine resource is connected." + "name": "HCI", + "value": "HCI", + "description": "HCI OS." } ] } }, - "EdgeMachineJob": { - "type": "object", - "description": "Cluster Jobs resource", - "properties": { - "properties": { - "$ref": "#/definitions/EdgeMachineJobProperties", - "description": "The resource-specific properties for this resource." - } - }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ] - }, - "EdgeMachineJobListResult": { - "type": "object", - "description": "The response of a EdgeMachineJob list operation.", - "properties": { - "value": { - "type": "array", - "description": "The EdgeMachineJob items on this page", - "items": { - "$ref": "#/definitions/EdgeMachineJob" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "EdgeMachineJobProperties": { + "ProvisioningRequest": { "type": "object", - "description": "EdgeMachine Job properties", + "description": "Represents a provisioning request.", "properties": { - "jobType": { - "$ref": "#/definitions/EdgeMachineJobType", - "description": "Job Type to support polymorphic resource.", + "target": { + "$ref": "#/definitions/ProvisioningOsType", + "description": "Target operating system to support polymorphic resource.", "x-ms-mutability": [ "read", "create" ] }, - "deploymentMode": { - "$ref": "#/definitions/DeploymentMode", - "description": "Deployment mode to trigger job." + "osProfile": { + "$ref": "#/definitions/OsProvisionProfile", + "description": "Operating system profile." }, - "provisioningState": { - "$ref": "#/definitions/ProvisioningState", - "description": "Job provisioning state", - "readOnly": true + "userDetails": { + "type": "array", + "description": "User configuration.", + "items": { + "$ref": "#/definitions/UserDetails" + }, + "x-ms-identifiers": [ + "userName" + ] }, - "jobId": { - "type": "string", - "description": "Unique, immutable job id.", - "readOnly": true + "onboardingConfiguration": { + "$ref": "#/definitions/OnboardingConfiguration", + "description": "Onboarding configuration." }, - "startTimeUtc": { - "type": "string", - "format": "date-time", - "description": "The UTC date and time at which the job started.", - "readOnly": true + "deviceConfiguration": { + "$ref": "#/definitions/TargetDeviceConfiguration", + "description": "Device configuration." }, - "endTimeUtc": { + "customConfiguration": { "type": "string", - "format": "date-time", - "description": "The UTC date and time at which the job completed.", - "readOnly": true - }, - "status": { - "$ref": "#/definitions/JobStatus", - "description": "Status of Edge device job.", - "readOnly": true - }, - "error": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorDetail", - "description": "error details.", - "readOnly": true + "description": "Base64 encoded custom configuration for CAPI to use" } }, - "discriminator": "jobType", "required": [ - "jobType" + "target", + "osProfile" ] }, - "EdgeMachineJobType": { + "ProvisioningState": { "type": "string", - "description": "Job Type supported.", + "description": "Provisioning state of the ArcSetting proxy resource.", "enum": [ - "CollectLog", - "RemoteSupport", - "ProvisionOs", - "DownloadOs" + "NotSpecified", + "Error", + "Succeeded", + "Failed", + "Canceled", + "Connected", + "Disconnected", + "Deleted", + "Creating", + "Updating", + "Deleting", + "Moving", + "PartiallySucceeded", + "PartiallyConnected", + "InProgress", + "Accepted", + "Provisioning", + "DisableInProgress" ], "x-ms-enum": { - "name": "EdgeMachineJobType", + "name": "ProvisioningState", "modelAsString": true, "values": [ { - "name": "CollectLog", - "value": "CollectLog", - "description": "Job to collect logs from the device." + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The provisioning state is not specified." }, { - "name": "RemoteSupport", - "value": "RemoteSupport", - "description": "Job to provide remote support to the device." + "name": "Error", + "value": "Error", + "description": "An error occurred during provisioning." }, { - "name": "ProvisionOs", - "value": "ProvisionOs", - "description": "Job to provision operating system in the device." + "name": "Succeeded", + "value": "Succeeded", + "description": "Provisioning completed successfully." }, { - "name": "DownloadOs", - "value": "DownloadOs", - "description": "Job to download OS packages on to the device" - } - ] - } - }, - "EdgeMachineKind": { - "type": "string", - "description": "Edge Machine Kind.", - "enum": [ - "Standard", - "Dedicated" - ], - "x-ms-enum": { - "name": "EdgeMachineKind", - "modelAsString": true, - "values": [ + "name": "Failed", + "value": "Failed", + "description": "Provisioning failed." + }, { - "name": "Standard", - "value": "Standard", - "description": "EdgeMachine resource created using Zero-touch provisioning." + "name": "Canceled", + "value": "Canceled", + "description": "Provisioning was canceled." }, { - "name": "Dedicated", - "value": "Dedicated", - "description": "EdgeMachine resource created for brownfield HCI customers without zero touch provisioning." + "name": "Connected", + "value": "Connected", + "description": "The resource is connected." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The resource is disconnected." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "The resource has been deleted." + }, + { + "name": "Creating", + "value": "Creating", + "description": "The resource is being created." + }, + { + "name": "Updating", + "value": "Updating", + "description": "The resource is being updated." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The resource is being deleted." + }, + { + "name": "Moving", + "value": "Moving", + "description": "The resource is being moved." + }, + { + "name": "PartiallySucceeded", + "value": "PartiallySucceeded", + "description": "Provisioning partially succeeded." + }, + { + "name": "PartiallyConnected", + "value": "PartiallyConnected", + "description": "The resource is partially connected." + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "Provisioning is in progress." + }, + { + "name": "Accepted", + "value": "Accepted", + "description": "Provisioning request has been accepted." + }, + { + "name": "Provisioning", + "value": "Provisioning", + "description": "The resource is currently provisioning." + }, + { + "name": "DisableInProgress", + "value": "DisableInProgress", + "description": "The resource is being disabled." } ] - } + }, + "readOnly": true }, - "EdgeMachineListResult": { + "Publisher": { "type": "object", - "description": "The response of a EdgeMachine list operation.", + "description": "Publisher details.", + "properties": { + "properties": { + "$ref": "#/definitions/PublisherProperties", + "description": "Publisher properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "PublisherList": { + "type": "object", + "description": "List of Publisher proxy resources for the HCI cluster.", "properties": { "value": { "type": "array", - "description": "The EdgeMachine items on this page", + "description": "The Publisher items on this page", "items": { - "$ref": "#/definitions/EdgeMachine" + "$ref": "#/definitions/Publisher" } }, "nextLink": { @@ -1784,1009 +12161,1006 @@ "value" ] }, - "EdgeMachinePatch": { + "PublisherProperties": { "type": "object", - "description": "Model for patching edge machine.", + "description": "Publisher properties.", "properties": { - "tags": { - "type": "object", - "description": "Resource tags.", - "additionalProperties": { - "type": "string" - } - }, - "identity": { - "$ref": "../../../../../../common-types/resource-management/v6/managedidentity.json#/definitions/ManagedServiceIdentity", - "description": "The managed service identities assigned to this resource." + "provisioningState": { + "type": "string", + "description": "Provisioning State", + "readOnly": true } } }, - "EdgeMachineProperties": { + "QosPolicyOverrides": { "type": "object", - "description": "Properties for edge machine.", + "description": "The QoSPolicyOverrides of a cluster.", "properties": { - "edgeMachineKind": { - "$ref": "#/definitions/EdgeMachineKind", - "description": "Edge Machine type.", - "x-ms-mutability": [ - "read", - "create" - ] - }, - "provisioningState": { - "$ref": "#/definitions/ProvisioningState", - "description": "The provisioning state of a resource.", - "readOnly": true - }, - "cloudId": { - "type": "string", - "description": "Unique, immutable resource id.", - "readOnly": true - }, - "arcMachineResourceGroupId": { - "type": "string", - "format": "arm-id", - "description": "Optional property to create arc machine in custom resource group.", - "x-ms-mutability": [ - "read", - "create" - ], - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.Resources/resourceGroups" - } - ] - } - }, - "arcMachineResourceId": { - "type": "string", - "format": "arm-id", - "description": "Arc machine instance resource id.", - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.HybridCompute/machines" - } - ] - } - }, - "arcGatewayResourceId": { + "priorityValue8021Action_Cluster": { "type": "string", - "format": "arm-id", - "description": "Link to Arc Gateway ARM resource Id", - "x-ms-mutability": [ - "read", - "create" - ], - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.HybridCompute/gateways" - } - ] - } - }, - "siteDetails": { - "$ref": "#/definitions/SiteDetails", - "description": "Service fetches common configuration from site.", - "x-ms-mutability": [ - "read", - "create" - ] - }, - "ownershipVoucherDetails": { - "$ref": "#/definitions/OwnershipVoucherDetails", - "description": "Ownership voucher details for provisioned machine.", - "x-ms-mutability": [ - "read", - "create" - ] - }, - "provisioningDetails": { - "$ref": "#/definitions/ProvisioningDetails", - "description": "Details for device provisioning.", - "x-ms-mutability": [ - "read", - "create" - ] + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." }, - "devicePoolResourceId": { + "priorityValue8021Action_SMB": { "type": "string", - "description": "A machine can only be assigned to single device pool", - "readOnly": true - }, - "machineState": { - "$ref": "#/definitions/EdgeMachineState", - "description": "OS configuration status details ", - "readOnly": true - }, - "connectivityStatus": { - "$ref": "#/definitions/EdgeMachineConnectivityStatus", - "description": "machine connectivity status", - "readOnly": true + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." }, - "claimedBy": { + "bandwidthPercentage_SMB": { "type": "string", - "description": "Tracks the ID of the consuming resource, setting the machine as in-use.", - "readOnly": true - }, - "reportedProperties": { - "$ref": "#/definitions/ReportedProperties", - "description": "Reported properties for edge machine.", - "readOnly": true - }, - "operationDetails": { + "description": "This parameter should only be modified based on your OEM guidance. Do not modify this parameter without OEM validation." + } + } + }, + "RawCertificateData": { + "type": "object", + "properties": { + "certificates": { "type": "array", - "description": "operation status details for edge machine.", - "items": { - "$ref": "#/definitions/OperationDetail" - }, - "readOnly": true, - "x-ms-identifiers": [] - }, - "lastSyncTimestamp": { - "type": "string", - "format": "date-time", - "description": "Last time data updated to service.", - "readOnly": true + "items": { + "type": "string" + } } } }, - "EdgeMachineState": { + "RdmaCapability": { "type": "string", - "description": "OS State", + "description": "Describes the RDMA capability of the network adapter.", "enum": [ - "Created", - "Registering", - "Unpurposed", - "Transitioning", - "Purposed", - "Updating", - "Resetting", - "Failed", - "Preparing" + "Enabled", + "Disabled" ], "x-ms-enum": { - "name": "EdgeMachineState", + "name": "RdmaCapability", "modelAsString": true, "values": [ { - "name": "Created", - "value": "Created", - "description": "Created when EdgeMachine resource created" - }, - { - "name": "Registering", - "value": "Registering", - "description": "EdgeMachine state during device discovery and registration" - }, - { - "name": "Unpurposed", - "value": "Unpurposed", - "description": "EdgeMachine state when machine configured with restricted OS and not provisioned to deploy workloads" - }, - { - "name": "Transitioning", - "value": "Transitioning", - "description": "EdgeMachine state when transitioning from initial OS to target OS" - }, - { - "name": "Purposed", - "value": "Purposed", - "description": "EdgeMachine state when machine configured with target OS to deploy workloads" + "name": "Enabled", + "value": "Enabled", + "description": "Network Adapter on the device is RDMA Capable" }, { - "name": "Updating", - "value": "Updating", - "description": "EdgeMachine state when OS updates are in-progress" - }, + "name": "Disabled", + "value": "Disabled", + "description": "Network Adapter on the device is RDMA Capable" + } + ] + } + }, + "RebootRequirement": { + "type": "string", + "description": "Indicates whether a reboot is required after the update or operation. Helps determine if a system restart is necessary to complete the process.", + "enum": [ + "Unknown", + "True", + "False" + ], + "x-ms-enum": { + "name": "RebootRequirement", + "modelAsString": true, + "values": [ { - "name": "Resetting", - "value": "Resetting", - "description": "EdgeMachine state when transitioning from target OS to restricted OS" + "name": "Unknown", + "value": "Unknown", + "description": "It is not known whether a reboot is required." }, { - "name": "Failed", - "value": "Failed", - "description": "EdgeMachine failed state and only option to recover is to re-provisioning machine" + "name": "True", + "value": "True", + "description": "A reboot is required to complete the operation." }, { - "name": "Preparing", - "value": "Preparing", - "description": "Preparing EdgeMachine" + "name": "False", + "value": "False", + "description": "No reboot is required after the operation." } ] } }, - "ErrorDetailModel": { + "ReconcileArcSettingsRequest": { "type": "object", - "description": "details of validation failure", + "description": "Request for reconciling Arc Settings.", "properties": { - "exception": { - "type": "string", - "description": "Exception details while installing extension.", - "readOnly": true + "properties": { + "$ref": "#/definitions/ReconcileArcSettingsRequestProperties", + "description": "List of Arc Nodes in the cluster" } } }, - "Extension": { + "ReconcileArcSettingsRequestProperties": { "type": "object", - "description": "Arc extension installed on edge device.", + "description": "List of Arc Nodes in the cluster", "properties": { - "extensionName": { - "type": "string", - "description": "Arc extension name installed on edge device.", - "readOnly": true - }, - "state": { - "$ref": "#/definitions/ArcExtensionState", - "description": "Arc extension state from arc machine extension.", - "readOnly": true - }, - "errorDetails": { + "clusterNodes": { "type": "array", - "description": "Error details while installing Arc extension.", "items": { - "$ref": "#/definitions/ErrorDetailModel" - }, - "readOnly": true, - "x-ms-identifiers": [] - }, - "exception": { - "type": "string", - "description": "Exception details while installing Arc extension.", - "readOnly": true - }, - "extensionResourceId": { - "type": "string", - "format": "arm-id", - "description": "Arc Extension Azure resource id.", - "readOnly": true - }, - "typeHandlerVersion": { - "type": "string", - "description": "Extension version installed.", - "readOnly": true - }, - "managedBy": { - "$ref": "#/definitions/ExtensionManagedBy", - "description": "Extension managed by user or Azure.", - "readOnly": true + "type": "string" + } } } }, - "ExtensionManagedBy": { + "RemoteSupportAccessLevel": { "type": "string", - "description": "Extension managed by user or Azure.", + "description": "Defines the level of remote support access granted.", "enum": [ - "User", - "Azure" + "None", + "Diagnostics", + "DiagnosticsAndRepair" ], "x-ms-enum": { - "name": "ExtensionManagedBy", + "name": "RemoteSupportAccessLevel", "modelAsString": true, "values": [ { - "name": "User", - "value": "User", - "description": "Extension managed by user." + "name": "None", + "value": "None", + "description": "No remote support access is granted." }, { - "name": "Azure", - "value": "Azure", - "description": "Extension managed by Azure." + "name": "Diagnostics", + "value": "Diagnostics", + "description": "Access is limited to diagnostics information only." + }, + { + "name": "DiagnosticsAndRepair", + "value": "DiagnosticsAndRepair", + "description": "Access includes diagnostics information and the ability to perform repairs." } ] } }, - "ExtensionProfile": { + "RemoteSupportJobNodeSettings": { "type": "object", - "description": "Extensions details for edge device.", + "description": "Represents the settings of a remote support node.", "properties": { - "extensions": { + "state": { + "type": "string", + "description": "The state of the remote support node.", + "readOnly": true + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the node settings were created, in UTC.", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the node settings were last updated, in UTC.", + "readOnly": true + }, + "connectionStatus": { + "type": "string", + "description": "The current connection status of the remote support session.", + "readOnly": true + }, + "connectionErrorMessage": { + "type": "string", + "description": "The error message, if any, from the last connection attempt.", + "readOnly": true + } + } + }, + "RemoteSupportJobProperties": { + "type": "object", + "description": "Represents the properties of a remote support job.", + "properties": { + "accessLevel": { + "$ref": "#/definitions/RemoteSupportAccessLevel", + "description": "Remote support access level." + }, + "expirationTimestamp": { + "type": "string", + "format": "date-time", + "description": "Remote support expiration timestamp." + }, + "type": { + "$ref": "#/definitions/RemoteSupportType", + "description": "Remote support type." + }, + "reportedProperties": { + "$ref": "#/definitions/RemoteSupportJobReportedProperties", + "description": "log collection job reported properties.", + "readOnly": true + } + }, + "required": [ + "accessLevel", + "expirationTimestamp", + "type" + ] + }, + "RemoteSupportJobReportedProperties": { + "type": "object", + "description": "Represents the reported properties of a remote support job.", + "properties": { + "percentComplete": { + "type": "integer", + "format": "int32", + "description": "The percentage of the job that is complete.", + "readOnly": true + }, + "validationStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Validation status of job.", + "readOnly": true + }, + "deploymentStatus": { + "$ref": "#/definitions/EceActionStatus", + "description": "Deployment status of job.", + "readOnly": true + }, + "nodeSettings": { + "$ref": "#/definitions/RemoteSupportJobNodeSettings", + "description": "Optional settings for configuring the node for remote support.", + "readOnly": true + }, + "sessionDetails": { "type": "array", - "description": "List of Arc extensions installed on edge device.", + "description": "Details of the remote support session.", "items": { - "$ref": "#/definitions/Extension" + "$ref": "#/definitions/RemoteSupportSession" }, "readOnly": true, "x-ms-identifiers": [ - "extensionName" + "sessionId" ] } } }, - "HardwareProfile": { + "RemoteSupportNodeSettings": { "type": "object", - "description": "Hardware profile for the machine", + "description": "Remote Support Node Settings of the cluster.", "properties": { - "cpuCores": { - "type": "integer", - "format": "int64", - "description": "Number of cpu cores in the machine", + "arcResourceId": { + "type": "string", + "description": "Arc ResourceId of the Node", "readOnly": true }, - "cpuSockets": { - "type": "integer", - "format": "int64", - "description": "Number of cpu sockets in the machine", + "state": { + "type": "string", + "description": "Remote Support Access Connection State on the Node", "readOnly": true }, - "memoryCapacityInGb": { - "type": "integer", - "format": "int64", - "description": "Memory capacity of the machine", + "createdAt": { + "type": "string", + "format": "date-time", + "description": "Remote Support Enablement Request Created TimeStamp on the Node", "readOnly": true }, - "model": { + "updatedAt": { "type": "string", - "description": "Model info of the machine", + "format": "date-time", + "description": "Remote Support Enablement Request Updated TimeStamp on the Node", "readOnly": true }, - "manufacturer": { + "connectionStatus": { "type": "string", - "description": "manufacturer info of the machine", + "description": "Remote Support Access Connection Status on the Node", "readOnly": true }, - "serialNumber": { + "connectionErrorMessage": { "type": "string", - "description": "Serial number of the machine", + "description": "Remote Support Access Connection Error Message on the Node", "readOnly": true }, - "processorType": { + "transcriptLocation": { "type": "string", - "description": "Process type of the machine", + "description": "Remote Support Transcript location on the node", "readOnly": true } } }, - "IgvmStatus": { - "type": "string", - "description": "Represents the IGVM support status for the device.", - "enum": [ - "Unknown", - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "IgvmStatus", - "modelAsString": true, - "values": [ - { - "name": "Unknown", - "value": "Unknown", - "description": "The IGVM status could not be determined due to a query failure or inconsistent system state." - }, - { - "name": "Enabled", - "value": "Enabled", - "description": "IGVM support is enabled, indicating that confidential VM features are available on this device." - }, - { - "name": "Disabled", - "value": "Disabled", - "description": "IGVM status is disabled, indicating that confidential VM features are not supported on this device." - } - ] - } - }, - "IgvmStatusDetail": { + "RemoteSupportProperties": { "type": "object", - "description": "Provides component-level status information related to IGVM enablement on the device.", + "description": "Remote Support properties of the cluster.", "properties": { - "code": { - "type": "string", - "description": "A machine-readable status code indicating the result or condition of a specific IGVM-related check or operation.", + "accessLevel": { + "$ref": "#/definitions/AccessLevel", + "description": "Remote Support Access Level", "readOnly": true }, - "message": { + "expirationTimeStamp": { "type": "string", - "description": "A human-readable message providing context or explanation for the associated status code.", + "format": "date-time", + "description": "Expiration DateTimeStamp when Remote Support Access will be expired", "readOnly": true + }, + "remoteSupportType": { + "$ref": "#/definitions/RemoteSupportType", + "description": "Remote Support Type for cluster", + "readOnly": true + }, + "remoteSupportNodeSettings": { + "type": "array", + "items": { + "$ref": "#/definitions/RemoteSupportNodeSettings" + }, + "readOnly": true, + "x-ms-identifiers": [] + }, + "remoteSupportSessionDetails": { + "type": "array", + "items": { + "$ref": "#/definitions/PerNodeRemoteSupportSession" + }, + "readOnly": true, + "x-ms-identifiers": [] } } }, - "IpAddressRange": { + "RemoteSupportRequest": { "type": "object", - "description": "IP address range configuration.", + "description": "Remote Support Request", "properties": { - "startIp": { - "type": "string", - "description": "Start IP address." + "properties": { + "$ref": "#/definitions/RemoteSupportRequestProperties", + "description": "Properties for Remote Support Request" + } + } + }, + "RemoteSupportRequestProperties": { + "type": "object", + "description": "Properties for Remote Support Request", + "properties": { + "accessLevel": { + "$ref": "#/definitions/AccessLevel", + "description": "Remote Support Access Level", + "readOnly": true }, - "endIp": { + "expirationTimeStamp": { "type": "string", - "description": "End IP address." + "format": "date-time", + "description": "Expiration DateTimeStamp when Remote Support Access will be expired" + }, + "remoteSupportType": { + "$ref": "#/definitions/RemoteSupportType", + "description": "Remote Support Type for cluster" } - }, - "required": [ - "startIp", - "endIp" - ] - }, - "IpAssignmentType": { - "type": "string", - "description": "IP assignment types", - "enum": [ - "Automatic", - "Manual" - ], - "x-ms-enum": { - "name": "IpAssignmentType", - "modelAsString": true, - "values": [ - { - "name": "Automatic", - "value": "Automatic", - "description": "Automatic IP assignment" - }, - { - "name": "Manual", - "value": "Manual", - "description": "Manual IP assignment" - } - ] } }, - "JobReportedProperties": { + "RemoteSupportSession": { "type": "object", - "description": "Reported Properties for job triggered from cloud.", + "description": "Represents a remote support session.", "properties": { - "percentComplete": { - "type": "integer", - "format": "int32", - "description": "The percentage of the job that is complete.", + "sessionId": { + "type": "string", + "description": "Unique session Id.", "readOnly": true }, - "validationStatus": { - "$ref": "#/definitions/EceActionStatus", - "description": "Validation status of job.", + "sessionStartTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the remote support session, in UTC.", "readOnly": true }, - "deploymentStatus": { - "$ref": "#/definitions/EceActionStatus", - "description": "Deployment status of job.", + "sessionEndTime": { + "type": "string", + "format": "date-time", + "description": "The end time of the remote support session, in UTC.", + "readOnly": true + }, + "accessLevel": { + "$ref": "#/definitions/RemoteSupportAccessLevel", + "description": "The level of access granted during the remote support session.", + "readOnly": true + }, + "transcriptLocation": { + "type": "string", + "description": "The location where the session transcript is stored.", "readOnly": true } } }, - "JobStatus": { + "RemoteSupportType": { "type": "string", - "description": "Represents the various statuses a job can have throughout its lifecycle.", + "description": "Remote Support Type for cluster", "enum": [ - "NotSpecified", - "ValidationInProgress", - "ValidationSuccess", - "ValidationFailed", - "DeploymentInProgress", - "DeploymentFailed", - "DeploymentSuccess", - "Succeeded", - "Failed", - "Canceled", - "Paused", - "Scheduled" + "Enable", + "Revoke" ], "x-ms-enum": { - "name": "JobStatus", + "name": "RemoteSupportType", "modelAsString": true, "values": [ { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The job status has not been specified." - }, - { - "name": "ValidationInProgress", - "value": "ValidationInProgress", - "description": "The job is currently undergoing validation." - }, - { - "name": "ValidationSuccess", - "value": "ValidationSuccess", - "description": "The job has successfully passed validation." - }, - { - "name": "ValidationFailed", - "value": "ValidationFailed", - "description": "The job has failed validation." - }, - { - "name": "DeploymentInProgress", - "value": "DeploymentInProgress", - "description": "The job's deployment is currently in progress." - }, - { - "name": "DeploymentFailed", - "value": "DeploymentFailed", - "description": "The job's deployment has failed." - }, - { - "name": "DeploymentSuccess", - "value": "DeploymentSuccess", - "description": "The job has been successfully deployed." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The job has succeeded." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The job has failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The job has been canceled." - }, - { - "name": "Paused", - "value": "Paused", - "description": "The job is paused." + "name": "Enable", + "value": "Enable", + "description": "Enable remote support for the cluster." }, { - "name": "Scheduled", - "value": "Scheduled", - "description": "The job is scheduled to run." + "name": "Revoke", + "value": "Revoke", + "description": "Revoke previously enabled remote support for the cluster." } ] - }, - "readOnly": true + } }, - "KubernetesVersion": { + "ReportedProperties": { "type": "object", - "description": "Represents a kubernetes version resource.", + "description": "Reported properties pushed from edge device.", "properties": { - "properties": { - "$ref": "#/definitions/KubernetesVersionProperties", - "description": "The resource-specific properties for this resource." - } - }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + "deviceState": { + "$ref": "#/definitions/DeviceState", + "description": "edge device state.", + "readOnly": true + }, + "extensionProfile": { + "$ref": "#/definitions/ExtensionProfile", + "description": "Extensions details for edge device.", + "readOnly": true + }, + "lastSyncTimestamp": { + "type": "string", + "format": "date-time", + "description": "Most recent edge device sync timestamp in UTC.", + "readOnly": true + }, + "confidentialVmProfile": { + "$ref": "#/definitions/ConfidentialVmProfile", + "description": "CVM support details for edge device.", + "readOnly": true } - ] + } }, - "KubernetesVersionListResult": { + "SbeCredentials": { "type": "object", - "description": "The response of a KubernetesVersion list operation.", + "description": "secrets used for solution builder extension (SBE) partner extensibility.", "properties": { - "value": { - "type": "array", - "description": "The KubernetesVersion items on this page", - "items": { - "$ref": "#/definitions/KubernetesVersion" - } + "secretName": { + "type": "string", + "description": "secret name stored in keyvault." }, - "nextLink": { + "eceSecretName": { + "type": "string", + "description": "secret name expected for Enterprise Cloud Engine (ECE)." + }, + "secretLocation": { "type": "string", "format": "uri", - "description": "The link to the next page of items" + "description": "secret URI stored in keyvault." } - }, - "required": [ - "value" - ] + } }, - "KubernetesVersionProperties": { + "SbeDeploymentInfo": { "type": "object", - "description": "Represents properties of a kubernetes version.", + "description": "Solution builder extension (SBE) package and manifest information for the solution builder extension staged for AzureStackHCI cluster deployment.", "properties": { "version": { "type": "string", - "description": "Represents kubernetes version." + "description": "SBE package version." + }, + "family": { + "type": "string", + "description": "SBE family name." + }, + "publisher": { + "type": "string", + "description": "SBE manifest publisher." + }, + "sbeManifestSource": { + "type": "string", + "description": "SBE Manifest Source." + }, + "sbeManifestCreationDate": { + "type": "string", + "format": "date-time", + "description": "SBE Manifest Creation Date." } - }, - "required": [ - "version" - ] + } }, - "LogCollectionReportedProperties": { + "SbeDeploymentPackageInfo": { "type": "object", - "description": "Represents the reported properties of a log collection job.", + "description": "Solution builder extension (SBE) deployment package information.", "properties": { - "percentComplete": { - "type": "integer", - "format": "int32", - "description": "The percentage of the job that is complete.", + "code": { + "type": "string", + "description": "SBE deployment validation code.", "readOnly": true }, - "validationStatus": { - "$ref": "#/definitions/EceActionStatus", - "description": "Validation status of job.", + "message": { + "type": "string", + "description": "A detailed message that explains the SBE package validation result.", "readOnly": true }, - "deploymentStatus": { - "$ref": "#/definitions/EceActionStatus", - "description": "Deployment status of job.", + "sbeManifest": { + "type": "string", + "description": "This represents discovered update results for matching updates and store it as SBE manifest.", "readOnly": true + } + } + }, + "SbePartnerInfo": { + "type": "object", + "description": "The solution builder extension (SBE) partner deployment info for cluster.", + "properties": { + "sbeDeploymentInfo": { + "$ref": "#/definitions/SbeDeploymentInfo", + "description": "SBE package and manifest information for the solution Builder Extension staged for AzureStackHCI cluster deployment." }, - "logCollectionSessionDetails": { + "partnerProperties": { "type": "array", - "description": "Details of the log collection session.", + "description": "List of SBE partner properties for AzureStackHCI cluster deployment.", "items": { - "$ref": "#/definitions/LogCollectionSession" + "$ref": "#/definitions/SbePartnerProperties" + }, + "x-ms-identifiers": [] + }, + "credentialList": { + "type": "array", + "description": "SBE credentials list for AzureStackHCI cluster deployment.", + "items": { + "$ref": "#/definitions/SbeCredentials" }, - "readOnly": true, "x-ms-identifiers": [ - "correlationId" + "secretName" ] } } }, - "LogCollectionSession": { + "SbePartnerProperties": { "type": "object", - "description": "Represents a session for collecting logs from an edge device.", + "description": "Solution builder extension (SBE) partner properties object.", "properties": { - "startTime": { - "type": "string", - "description": "The timestamp when log collection started, in ISO 8601 format.", - "readOnly": true - }, - "endTime": { + "name": { "type": "string", - "description": "The timestamp when log collection ended, in ISO 8601 format.", - "readOnly": true + "description": "SBE partner property name." }, - "timeCollected": { + "value": { "type": "string", - "description": "The total time logs were collected for, in ISO 8601 duration format.", - "readOnly": true + "description": "SBE partner property value." + } + } + }, + "ScaleUnits": { + "type": "object", + "description": "Scale units will contains list of deployment data", + "properties": { + "deploymentData": { + "$ref": "#/definitions/DeploymentData", + "description": "Deployment Data to deploy AzureStackHCI Cluster." }, - "logSize": { - "type": "integer", - "format": "int32", - "description": "The size of the collected logs in bytes.", + "sbePartnerInfo": { + "$ref": "#/definitions/SbePartnerInfo", + "description": "Solution builder extension (SBE) partner properties" + } + }, + "required": [ + "deploymentData" + ], + "externalDocs": { + "description": "Deploy Azure Stack HCI using an existing configuration file", + "url": "https://learn.microsoft.com/en-us/azure-stack/hci/deploy/deployment-tool-existing-file" + } + }, + "SdnIntegration": { + "type": "object", + "description": "SDN Integration config to deploy AzureStackHCI Cluster.", + "properties": { + "networkController": { + "$ref": "#/definitions/NetworkController", + "description": "network controller config for SDN Integration to deploy AzureStackHCI Cluster." + } + } + }, + "SdnIntegrationIntent": { + "type": "string", + "description": "Indicates whether Software Defined Networking (SDN) integration should be enabled or disabled for this deployment.", + "enum": [ + "Enable", + "Disable" + ], + "x-ms-enum": { + "name": "SdnIntegrationIntent", + "modelAsString": true, + "values": [ + { + "name": "Enable", + "value": "Enable", + "description": "Enable SDN integration for the deployment." + }, + { + "name": "Disable", + "value": "Disable", + "description": "Disable SDN integration for the deployment." + } + ] + } + }, + "SdnProperties": { + "type": "object", + "description": "Represents the Software Defined Networking (SDN) configuration state.", + "properties": { + "sdnStatus": { + "$ref": "#/definitions/SdnStatus", + "description": "Indicates the current Software Defined Networking (SDN) status of the resource, which may be an individual device or a cluster.", "readOnly": true }, - "status": { - "$ref": "#/definitions/DeviceLogCollectionStatus", - "description": "The status of the log collection session.", + "sdnDomainName": { + "type": "string", + "description": "The fully qualified domain name (FQDN) associated with the SDN deployment. This value is propagated from the Device Management Extension to the cluster resource. It is typically in the format `-nc.` when SDN is enabled. May be null or absent in unsupported or disabled states.", "readOnly": true }, - "correlationId": { + "sdnApiAddress": { "type": "string", - "description": "A unique identifier for correlating this log collection session with other operations or sessions.", + "description": "Represents the API address for the SDN deployment.", "readOnly": true } } }, - "NetworkAdapter": { + "SdnStatus": { + "type": "string", + "description": "Indicates the current Software Defined Networking (SDN) status of the resource, which may be an individual device or a cluster.", + "enum": [ + "Unknown", + "Disabled", + "Enabled" + ], + "x-ms-enum": { + "name": "SdnStatus", + "modelAsString": true, + "values": [ + { + "name": "Unknown", + "value": "Unknown", + "description": "The SDN status could not be determined due to a failure in querying the SDN API service. This may occur if the query script fails or if the system is in an inconsistent state. The domain name will be null in this case." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "SDN is not enabled on the resource. The domain name will be null. This is the default state when SDN has not been configured." + }, + { + "name": "Enabled", + "value": "Enabled", + "description": "SDN is successfully enabled on the resource. The domain name will be populated in the format `-nc.`. Customers may need to manage DNS settings to ensure proper resolution." + } + ] + } + }, + "SecretType": { + "type": "string", + "description": "Type of secret used for authentication.", + "enum": [ + "KeyVault", + "SshPubKey" + ], + "x-ms-enum": { + "name": "SecretType", + "modelAsString": true, + "values": [ + { + "name": "KeyVault", + "value": "KeyVault", + "description": "Key Vault based authentication" + }, + { + "name": "SshPubKey", + "value": "SshPubKey", + "description": "SSH Public Key based authentication" + } + ] + } + }, + "SecretsLocationDetails": { "type": "object", - "description": "Network adapter configuration.", + "description": "Secrets location details", "properties": { - "ipAssignmentType": { - "$ref": "#/definitions/IpAssignmentType", - "description": "Type of IP assignment." - }, - "ipAddress": { - "type": "string", - "description": "IP address." - }, - "adapterName": { - "type": "string", - "description": "Adapter Name." - }, - "macAddress": { - "type": "string", - "description": "MAC address." - }, - "ipAddressRange": { - "$ref": "#/definitions/IpAddressRange", - "description": "IP address range." + "secretsType": { + "$ref": "#/definitions/SecretsType", + "description": "Type of secrets to store" }, - "gateway": { - "type": "string", - "description": "Gateway id." - }, - "subnetMask": { - "type": "string", - "description": "Subnet mask." - }, - "dnsAddressArray": { - "type": "array", - "description": "Array of DNS addresses.", - "items": { - "type": "string" - } - }, - "vlanId": { + "secretsLocation": { "type": "string", - "description": "VLAN ID for the network setup." + "description": "secrets location" } }, "required": [ - "ipAssignmentType" + "secretsType", + "secretsLocation" ] }, - "NetworkConfiguration": { - "type": "object", - "description": "Network configuration.", - "properties": { - "networkAdapters": { - "type": "array", - "description": "List of network adapters.", - "items": { - "$ref": "#/definitions/NetworkAdapter" - }, - "x-ms-identifiers": [] - } - } - }, - "NetworkProfile": { + "SecretsLocationsChangeRequest": { "type": "object", - "description": "NetworkProfile of edge machine.", + "description": "Update secrets locations change Request.", "properties": { - "nicDetails": { - "type": "array", - "description": "List of Network Interface Card (NIC) Details of edge machine.", - "items": { - "$ref": "#/definitions/NicDetail" - }, - "readOnly": true, - "x-ms-identifiers": [ - "adapterName" - ] - }, - "switchDetails": { + "properties": { "type": "array", - "description": "List of switch Details of edge machine.", + "description": "List of secret locations", "items": { - "$ref": "#/definitions/SwitchDetail" + "$ref": "#/definitions/SecretsLocationDetails" }, - "readOnly": true, - "x-ms-identifiers": [ - "switchName" - ] + "x-ms-identifiers": [] } } }, - "NicDetail": { + "SecretsType": { + "type": "string", + "description": "Type of secrets to store", + "enum": [ + "BackupSecrets" + ], + "x-ms-enum": { + "name": "SecretsType", + "modelAsString": true, + "values": [ + { + "name": "BackupSecrets", + "value": "BackupSecrets", + "description": "Backup secrets type" + } + ] + } + }, + "SecurityComplianceStatus": { "type": "object", - "description": "Network Interface Card (NIC) Details of edge machine.", + "description": "Security compliance properties of the resource", "properties": { - "adapterName": { - "type": "string", - "description": "Adapter Name of NIC", - "readOnly": true - }, - "interfaceDescription": { - "type": "string", - "description": "Interface Description of NIC", - "readOnly": true - }, - "componentId": { - "type": "string", - "description": "Component Id of NIC", - "readOnly": true - }, - "driverVersion": { - "type": "string", - "description": "Driver Version of NIC", - "readOnly": true - }, - "ip4Address": { - "type": "string", - "description": "Subnet Mask of NIC", - "readOnly": true - }, - "subnetMask": { - "type": "string", - "description": "Subnet Mask of NIC", - "readOnly": true - }, - "defaultGateway": { - "type": "string", - "description": "Default Gateway of NIC", - "readOnly": true - }, - "dnsServers": { - "type": "array", - "description": "DNS Servers for NIC", - "items": { - "type": "string" - }, - "readOnly": true - }, - "defaultIsolationId": { - "type": "string", - "description": "Default Isolation of Management NIC", + "securedCoreCompliance": { + "$ref": "#/definitions/ComplianceStatus", + "description": "Indicates whether HCI hosts meets secured-core server requirements.", "readOnly": true }, - "macAddress": { - "type": "string", - "description": "MAC address information of NIC.", + "wdacCompliance": { + "$ref": "#/definitions/ComplianceStatus", + "description": "Indicates whether HCI hosts have enforced consistent Windows Defender Application Control.", "readOnly": true }, - "slot": { - "type": "string", - "description": "The slot attached to the NIC.", + "dataAtRestEncrypted": { + "$ref": "#/definitions/ComplianceStatus", + "description": "Indicates whether data at-rest encryption is enabled on Azure Stack HCI clustered volumes.", "readOnly": true }, - "switchName": { - "type": "string", - "description": "The switch attached to the NIC, if any.", + "dataInTransitProtected": { + "$ref": "#/definitions/ComplianceStatus", + "description": "Indicates whether HCI cluster has data in-transit protection.", "readOnly": true }, - "nicType": { + "lastUpdated": { "type": "string", - "description": "The type of NIC, physical, virtual, management.", + "format": "date-time", + "description": "Time in UTC when compliance status was last updated.", "readOnly": true - }, - "vlanId": { + } + } + }, + "SecurityProperties": { + "type": "object", + "description": "Security properties of the resource", + "properties": { + "securedCoreComplianceAssignment": { "type": "string", - "description": "The VLAN ID of the physical NIC.", - "readOnly": true + "description": "Secured Core Compliance Assignment", + "default": "Audit", + "enum": [ + "Audit", + "ApplyAndAutoCorrect" + ], + "x-ms-enum": { + "name": "ComplianceAssignmentType", + "modelAsString": true, + "values": [ + { + "name": "Audit", + "value": "Audit", + "description": "Report on the state of the machine, but don't make changes." + }, + { + "name": "ApplyAndAutoCorrect", + "value": "ApplyAndAutoCorrect", + "description": "Applied to the machine. If it drifts, the local service inside the machine makes a correction at the next evaluation." + } + ] + } }, - "nicStatus": { + "wdacComplianceAssignment": { "type": "string", - "description": "The status of NIC, up, disconnected.", - "readOnly": true + "description": "WDAC Compliance Assignment", + "default": "Audit", + "enum": [ + "Audit", + "ApplyAndAutoCorrect" + ], + "x-ms-enum": { + "name": "ComplianceAssignmentType", + "modelAsString": true, + "values": [ + { + "name": "Audit", + "value": "Audit", + "description": "Report on the state of the machine, but don't make changes." + }, + { + "name": "ApplyAndAutoCorrect", + "value": "ApplyAndAutoCorrect", + "description": "Applied to the machine. If it drifts, the local service inside the machine makes a correction at the next evaluation." + } + ] + } }, - "rdmaCapability": { + "smbEncryptionForIntraClusterTrafficComplianceAssignment": { "type": "string", - "description": "Describes the RDMA capability of the network adapter.", - "default": "Disabled", + "description": "SMB encryption for intra-cluster traffic Compliance Assignment", + "default": "Audit", "enum": [ - "Enabled", - "Disabled" + "Audit", + "ApplyAndAutoCorrect" ], "x-ms-enum": { - "name": "RdmaCapability", + "name": "ComplianceAssignmentType", "modelAsString": true, "values": [ { - "name": "Enabled", - "value": "Enabled", - "description": "Network Adapter on the device is RDMA Capable" + "name": "Audit", + "value": "Audit", + "description": "Report on the state of the machine, but don't make changes." }, { - "name": "Disabled", - "value": "Disabled", - "description": "Network Adapter on the device isn't RDMA Capable" + "name": "ApplyAndAutoCorrect", + "value": "ApplyAndAutoCorrect", + "description": "Applied to the machine. If it drifts, the local service inside the machine makes a correction at the next evaluation." } ] - }, + } + }, + "securityComplianceStatus": { + "$ref": "#/definitions/SecurityComplianceStatus", + "description": "Security Compliance Status", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "The status of the last operation.", "readOnly": true } } }, - "OSOperationType": { - "type": "string", - "description": "OS Provision Operation type", - "enum": [ - "Provision", - "Update", - "ReImage" - ], - "x-ms-enum": { - "name": "OSOperationType", - "modelAsString": true, - "values": [ - { - "name": "Provision", - "value": "Provision", - "description": "OS Provisioning operation" - }, - { - "name": "Update", - "value": "Update", - "description": "OS Update operation" - }, - { - "name": "ReImage", - "value": "ReImage", - "description": "OS ReImage operation" - } - ] - } - }, - "OnboardingConfiguration": { + "SecuritySetting": { "type": "object", - "description": "Onboarding configuration.", + "description": "Security settings proxy resource", "properties": { - "type": { - "$ref": "#/definitions/OnboardingResourceType", - "description": "Type of the onboarding resource to support polymorphic resource.", - "x-ms-mutability": [ - "read", - "create" - ] - }, - "resourceId": { - "type": "string", - "format": "arm-id", - "description": "Resource ID." - }, - "location": { - "type": "string", - "description": "Location of the resource.", + "properties": { + "$ref": "#/definitions/SecurityProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true, "x-ms-mutability": [ "read", "create" ] + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "SecuritySettingListResult": { + "type": "object", + "description": "The response of a SecuritySetting list operation.", + "properties": { + "value": { + "type": "array", + "description": "The SecuritySetting items on this page", + "items": { + "$ref": "#/definitions/SecuritySetting" + } }, - "tenantId": { + "nextLink": { "type": "string", - "description": "Tenant ID of the resource." + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ServiceConfiguration": { + "type": "object", + "description": "Service configuration details", + "properties": { + "serviceName": { + "$ref": "#/definitions/ServiceName", + "description": "Specifies the name of the service associated with the update or operation. This helps identify which system component or tool is involved." }, - "arcVirtualMachineId": { - "type": "string", - "description": "Azure Arc virtual machine ID." + "port": { + "type": "integer", + "format": "int64", + "description": "The port on which service is enabled." } + }, + "required": [ + "serviceName", + "port" + ] + }, + "ServiceName": { + "type": "string", + "description": "Specifies the name of the service associated with the update or operation. This helps identify which system component or tool is involved.", + "enum": [ + "WAC" + ], + "x-ms-enum": { + "name": "ServiceName", + "modelAsString": true, + "values": [ + { + "name": "WAC", + "value": "WAC", + "description": "Windows Admin Center (WAC) is the service associated with this operation." + } + ] } }, - "OnboardingResourceType": { + "Severity": { "type": "string", - "description": "Onboarding resource type.", + "description": "Indicates the importance or impact level of the result. Determines whether the result is informational, a warning, or a critical issue that may block updates.", "enum": [ - "HybridComputeMachine" + "Critical", + "Warning", + "Informational", + "Hidden" ], "x-ms-enum": { - "name": "OnboardingResourceType", + "name": "Severity", "modelAsString": true, "values": [ { - "name": "HybridComputeMachine", - "value": "HybridComputeMachine", - "description": "Hybrid Compute Machine." + "name": "Critical", + "value": "Critical", + "description": "A critical issue that blocks updates and requires immediate attention." + }, + { + "name": "Warning", + "value": "Warning", + "description": "A warning that may indicate a potential issue but does not block updates." + }, + { + "name": "Informational", + "value": "Informational", + "description": "General information that does not indicate any issue." + }, + { + "name": "Hidden", + "value": "Hidden", + "description": "The result is hidden and not shown in the output." } ] } }, - "OperationDetail": { + "SiteDetails": { "type": "object", - "description": "operation detail.", + "description": "Site Details consists of common configurations.", "properties": { - "name": { - "type": "string", - "description": "operation name.", - "readOnly": true - }, - "id": { - "type": "string", - "description": "operation id.", - "readOnly": true - }, - "type": { - "type": "string", - "description": "operation type.", - "readOnly": true - }, - "resourceId": { + "siteResourceId": { "type": "string", "format": "arm-id", - "description": "operation resource id.", - "readOnly": true - }, - "description": { - "type": "string", - "description": "operation description.", - "readOnly": true - }, - "status": { - "type": "string", - "description": "operation status.", - "readOnly": true + "description": "Site resource Id to be set during Edge Machine resource creation.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Edge/sites" + } + ] + } }, - "error": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorDetail", - "description": "error details.", - "readOnly": true + "deviceConfiguration": { + "$ref": "#/definitions/DeviceConfiguration", + "description": "Edge Device configuration received from site common configuration." } - } + }, + "required": [ + "siteResourceId" + ] }, - "OsImage": { + "Sku": { "type": "object", - "description": "Represents a os image resource.", + "description": "Sku details.", "properties": { "properties": { - "$ref": "#/definitions/OsImageProperties", - "description": "The resource-specific properties for this resource." + "$ref": "#/definitions/SkuProperties", + "description": "SKU properties.", + "x-ms-client-flatten": true } }, "allOf": [ @@ -2795,15 +13169,15 @@ } ] }, - "OsImageListResult": { + "SkuList": { "type": "object", - "description": "The response of a OsImage list operation.", + "description": "List of SKU proxy resources for the HCI cluster.", "properties": { "value": { "type": "array", - "description": "The OsImage items on this page", + "description": "The Sku items on this page", "items": { - "$ref": "#/definitions/OsImage" + "$ref": "#/definitions/Sku" } }, "nextLink": { @@ -2816,268 +13190,610 @@ "value" ] }, - "OsImageProperties": { + "SkuMappings": { "type": "object", - "description": "Represents properties of a os image resource.", + "description": "SKU Mapping details.", "properties": { - "validatedSolutionRecipeVersion": { + "catalogPlanId": { "type": "string", - "description": "Represents validated solution recipe version of a os image." + "description": "Identifier of the CatalogPlan for the sku" }, - "composedImageVersion": { + "marketplaceSkuId": { "type": "string", - "description": "Represents composed image version of a os image." + "description": "Identifier for the sku" }, - "composedImageIsoUrl": { + "marketplaceSkuVersions": { + "type": "array", + "description": "Array of SKU versions available", + "items": { + "type": "string" + } + } + } + }, + "SkuProperties": { + "type": "object", + "description": "SKU properties.", + "properties": { + "provisioningState": { "type": "string", - "description": "Represents composed image iso download url of a os image." + "description": "Provisioning State", + "readOnly": true }, - "composedImageIsoHash": { + "publisherId": { "type": "string", - "description": "Represents composed image iso hash of a os image." + "description": "Identifier of the Publisher for the offer" + }, + "offerId": { + "type": "string", + "description": "Identifier of the Offer for the sku" + }, + "content": { + "type": "string", + "description": "JSON serialized catalog content of the sku offer" + }, + "contentVersion": { + "type": "string", + "description": "The API version of the catalog service used to serve the catalog content" + }, + "skuMappings": { + "type": "array", + "description": "Array of SKU mappings", + "items": { + "$ref": "#/definitions/SkuMappings" + }, + "x-ms-identifiers": [] + } + } + }, + "SoftwareAssuranceChangeRequest": { + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/SoftwareAssuranceChangeRequestProperties" + } + } + }, + "SoftwareAssuranceChangeRequestProperties": { + "type": "object", + "properties": { + "softwareAssuranceIntent": { + "$ref": "#/definitions/SoftwareAssuranceIntent", + "description": "Customer Intent for Software Assurance Benefit. This indicates whether the customer wishes to opt in or out of the Software Assurance program, which provides licensing and support benefits." + } + } + }, + "SoftwareAssuranceIntent": { + "type": "string", + "description": "Customer Intent for Software Assurance Benefit.", + "enum": [ + "Enable", + "Disable" + ], + "x-ms-enum": { + "name": "SoftwareAssuranceIntent", + "modelAsString": true, + "values": [ + { + "name": "Enable", + "value": "Enable", + "description": "Customer intends to enable the Software Assurance benefit." + }, + { + "name": "Disable", + "value": "Disable", + "description": "Customer intends to disable the Software Assurance benefit." + } + ] + } + }, + "SoftwareAssuranceProperties": { + "type": "object", + "description": "Software Assurance properties of the cluster.", + "properties": { + "softwareAssuranceStatus": { + "$ref": "#/definitions/SoftwareAssuranceStatus", + "description": "Status of the Software Assurance for the cluster.", + "readOnly": true + }, + "softwareAssuranceIntent": { + "$ref": "#/definitions/SoftwareAssuranceIntent", + "description": "Customer Intent for Software Assurance Benefit." + }, + "lastUpdated": { + "type": "string", + "format": "date-time", + "description": "TimeStamp denoting the latest SA benefit applicability is validated.", + "readOnly": true } } }, - "OsProfile": { + "SoftwareAssuranceStatus": { + "type": "string", + "description": "Status of the Software Assurance for the cluster.", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "SoftwareAssuranceStatus", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Software Assurance is enabled for the cluster." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Software Assurance is disabled for the cluster." + } + ] + } + }, + "State": { + "type": "string", + "description": "Represents the current state of the update as it relates to this stamp. This includes phases such as preparation, installation, scanning, and error handling, providing insight into the update's progress and any issues encountered.", + "enum": [ + "HasPrerequisite", + "Obsolete", + "Ready", + "NotApplicableBecauseAnotherUpdateIsInProgress", + "Preparing", + "Installing", + "Installed", + "PreparationFailed", + "InstallationFailed", + "Invalid", + "Recalled", + "Downloading", + "DownloadFailed", + "HealthChecking", + "HealthCheckFailed", + "ReadyToInstall", + "ScanInProgress", + "ScanFailed", + "AdditionalContentRequired" + ], + "x-ms-enum": { + "name": "State", + "modelAsString": true, + "values": [ + { + "name": "HasPrerequisite", + "value": "HasPrerequisite", + "description": "The update has prerequisites that must be fulfilled before it can proceed." + }, + { + "name": "Obsolete", + "value": "Obsolete", + "description": "The update is obsolete and no longer applicable." + }, + { + "name": "Ready", + "value": "Ready", + "description": "The update is ready to be installed." + }, + { + "name": "NotApplicableBecauseAnotherUpdateIsInProgress", + "value": "NotApplicableBecauseAnotherUpdateIsInProgress", + "description": "The update cannot be applied because another update is currently in progress." + }, + { + "name": "Preparing", + "value": "Preparing", + "description": "The update is currently in the preparation phase." + }, + { + "name": "Installing", + "value": "Installing", + "description": "The update is currently being installed." + }, + { + "name": "Installed", + "value": "Installed", + "description": "The update has been successfully installed." + }, + { + "name": "PreparationFailed", + "value": "PreparationFailed", + "description": "The update preparation phase failed." + }, + { + "name": "InstallationFailed", + "value": "InstallationFailed", + "description": "The update installation failed." + }, + { + "name": "Invalid", + "value": "Invalid", + "description": "The update is invalid and cannot be applied." + }, + { + "name": "Recalled", + "value": "Recalled", + "description": "The update has been recalled and should not be applied." + }, + { + "name": "Downloading", + "value": "Downloading", + "description": "The update is currently being downloaded." + }, + { + "name": "DownloadFailed", + "value": "DownloadFailed", + "description": "The update download failed." + }, + { + "name": "HealthChecking", + "value": "HealthChecking", + "description": "A health check is being performed before applying the update." + }, + { + "name": "HealthCheckFailed", + "value": "HealthCheckFailed", + "description": "The health check failed, preventing the update from proceeding." + }, + { + "name": "ReadyToInstall", + "value": "ReadyToInstall", + "description": "The update is ready to be installed after successful preparation and checks." + }, + { + "name": "ScanInProgress", + "value": "ScanInProgress", + "description": "The system is scanning for updates." + }, + { + "name": "ScanFailed", + "value": "ScanFailed", + "description": "The scan for updates failed." + }, + { + "name": "AdditionalContentRequired", + "value": "AdditionalContentRequired", + "description": "Additional content is required to proceed with the update." + } + ] + } + }, + "Status": { + "type": "string", + "description": "Status of the cluster agent. Indicates the current connectivity, validation, and deployment state of the agent within the cluster.", + "enum": [ + "NotYetRegistered", + "ConnectedRecently", + "NotConnectedRecently", + "Disconnected", + "Error", + "NotSpecified", + "ValidationInProgress", + "ValidationSuccess", + "ValidationFailed", + "DeploymentInProgress", + "DeploymentFailed", + "DeploymentSuccess" + ], + "x-ms-enum": { + "name": "Status", + "modelAsString": true, + "values": [ + { + "name": "NotYetRegistered", + "value": "NotYetRegistered", + "description": "The cluster agent has not yet registered with Azure." + }, + { + "name": "ConnectedRecently", + "value": "ConnectedRecently", + "description": "The cluster agent has connected to Azure recently." + }, + { + "name": "NotConnectedRecently", + "value": "NotConnectedRecently", + "description": "The cluster agent has not connected to Azure recently." + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The cluster agent is currently disconnected from Azure." + }, + { + "name": "Error", + "value": "Error", + "description": "An error occurred in the cluster agent's operation." + }, + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The status of the cluster agent is not specified." + }, + { + "name": "ValidationInProgress", + "value": "ValidationInProgress", + "description": "Validation of the cluster agent is currently in progress." + }, + { + "name": "ValidationSuccess", + "value": "ValidationSuccess", + "description": "Validation of the cluster agent completed successfully." + }, + { + "name": "ValidationFailed", + "value": "ValidationFailed", + "description": "Validation of the cluster agent failed." + }, + { + "name": "DeploymentInProgress", + "value": "DeploymentInProgress", + "description": "Deployment of the cluster agent is currently in progress." + }, + { + "name": "DeploymentFailed", + "value": "DeploymentFailed", + "description": "Deployment of the cluster agent failed." + }, + { + "name": "DeploymentSuccess", + "value": "DeploymentSuccess", + "description": "Deployment of the cluster agent completed successfully." + } + ] + } + }, + "StatusLevelTypes": { + "type": "string", + "description": "The level code. Indicates the severity or importance of the status message.", + "enum": [ + "Info", + "Warning", + "Error" + ], + "x-ms-enum": { + "name": "StatusLevelTypes", + "modelAsString": true, + "values": [ + { + "name": "Info", + "value": "Info", + "description": "Informational message indicating normal operation." + }, + { + "name": "Warning", + "value": "Warning", + "description": "Warning message indicating a potential issue or non-critical problem." + }, + { + "name": "Error", + "value": "Error", + "description": "Error message indicating a failure or critical issue." + } + ] + } + }, + "Step": { "type": "object", - "description": "OS configurations for HCI device.", + "description": "Progress representation of the update run steps.", "properties": { - "bootType": { + "name": { "type": "string", - "description": "The boot type of the device. e.g. UEFI, Legacy etc", - "readOnly": true + "description": "Name of the step." }, - "assemblyVersion": { + "description": { "type": "string", - "description": "Version of assembly present on device", - "readOnly": true + "description": "More detailed description of the step." }, - "osType": { + "errorMessage": { "type": "string", - "description": "OS type (“windows\", “linux”)", - "readOnly": true + "description": "Error message, specified if the step is in a failed state." }, - "osSku": { + "status": { "type": "string", - "description": "OS SKU (e.g., “ Microsoft Azure Linux ROE“, “Azure Stack HCI\", \"Microsoft Azure Linux 3.0\")", - "readOnly": true + "description": "Status of the step, bubbled up from the ECE action plan for installation attempts. Values are: 'Success', 'Error', 'InProgress', and 'Unknown status'." }, - "osVersion": { + "startTimeUtc": { "type": "string", - "description": "OS Version", - "readOnly": true + "format": "date-time", + "description": "When the step started, or empty if it has not started executing." }, - "buildNumber": { + "endTimeUtc": { "type": "string", - "description": "OS Build Number", - "readOnly": true + "format": "date-time", + "description": "When the step reached a terminal state." }, - "baseImageVersion": { + "lastUpdatedTimeUtc": { "type": "string", - "description": "OS Base Image Version", - "readOnly": true + "format": "date-time", + "description": "Completion time of this step or the last completed sub-step." }, - "imageVersion": { + "expectedExecutionTime": { "type": "string", - "description": "OS Image Version", - "readOnly": true + "description": "Expected execution time of a given step. This is optionally authored in the update action plan and can be empty." + }, + "steps": { + "type": "array", + "description": "Recursive model for child steps of this step.", + "items": { + "$ref": "#/definitions/Step" + }, + "x-ms-identifiers": [ + "name" + ] } } }, - "OsProvisionProfile": { + "Storage": { "type": "object", - "description": "Operating system profile.", + "description": "The Storage config of AzureStackHCI Cluster.", "properties": { - "osName": { + "configurationMode": { "type": "string", - "description": "Name of the operating system." - }, - "osType": { - "type": "string", - "description": "Type of the operating system." - }, - "osVersion": { - "type": "string", - "description": "Version of the operating system." - }, - "osImageLocation": { - "type": "string", - "description": "Location of the operating system image." - }, - "vsrVersion": { - "type": "string", - "description": "Validated Solution Recipe version to be used for the job" - }, - "imageHash": { - "type": "string", - "description": "Hash of the OS package downloaded" - }, - "gpgPubKey": { - "type": "string", - "description": "GPG Public Key used for package verification" - }, - "operationType": { + "description": "By default, this mode is set to Express and your storage is configured as per best practices based on the number of nodes in the cluster. Allowed values are 'Express','InfraOnly', 'KeepStorage'", + "default": "Express" + } + } + }, + "StorageConfiguration": { + "type": "object", + "description": "Storage configuration.", + "properties": { + "partitionSize": { "type": "string", - "description": "Operation sub type of OS Provisioning", - "default": "Provision", - "enum": [ - "Provision", - "Update", - "ReImage" - ], - "x-ms-enum": { - "name": "OSOperationType", - "modelAsString": true, - "values": [ - { - "name": "Provision", - "value": "Provision", - "description": "OS Provisioning operation" - }, - { - "name": "Update", - "value": "Update", - "description": "OS Update operation" - }, - { - "name": "ReImage", - "value": "ReImage", - "description": "OS ReImage operation" - } - ] - } + "description": "Partition size." } } }, - "OwnerKeyType": { + "StorageProfile": { + "type": "object", + "description": "StorageProfile of edge machine.", + "properties": { + "poolableDisksCount": { + "type": "integer", + "format": "int64", + "description": "Number of storage disks in the device with $CanPool as true.", + "readOnly": true + } + } + }, + "SupportStatus": { "type": "string", - "description": "Type of owner key in the voucher", + "description": "Indicates whether the cluster is under support.", "enum": [ - "MicrosoftManaged" + "InSupport", + "OutOfSupport", + "NotSpecified" ], "x-ms-enum": { - "name": "OwnerKeyType", + "name": "SupportStatus", "modelAsString": true, "values": [ { - "name": "MicrosoftManaged", - "value": "MicrosoftManaged", - "description": "Owner is Microsoft managed key" + "name": "InSupport", + "value": "InSupport", + "description": "The cluster is under support." + }, + { + "name": "OutOfSupport", + "value": "OutOfSupport", + "description": "The cluster is out of support." + }, + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "The support status is not specified." } ] } }, - "OwnershipVoucherDetails": { + "SwitchDetail": { "type": "object", - "description": "Details for ownership voucher.", + "description": "List of switch details for edge device.", "properties": { - "ownershipVoucher": { + "switchName": { "type": "string", - "format": "password", - "description": "Ownership voucher in base64 encoded format", - "x-ms-secret": true + "description": "The name of the switch.", + "readOnly": true }, - "ownerKeyType": { - "$ref": "#/definitions/OwnerKeyType", - "description": "Owner key type" + "switchType": { + "type": "string", + "description": "The type of the switch. e.g. external, internal.", + "readOnly": true + }, + "extensions": { + "type": "array", + "description": "This represents extensions installed on virtualSwitch.", + "items": { + "$ref": "#/definitions/SwitchExtension" + }, + "readOnly": true, + "x-ms-identifiers": [ + "extensionName" + ] } - }, - "required": [ - "ownershipVoucher", - "ownerKeyType" - ] + } }, - "OwnershipVoucherValidationDetails": { + "SwitchExtension": { "type": "object", - "description": "Ownership Voucher Validation Details", + "description": "This represents extensions installed on virtualSwitch.", "properties": { - "validationStatus": { - "$ref": "#/definitions/OwnershipVoucherValidationStatus", - "description": "The ownership voucher validation status." - }, - "serialNumber": { - "type": "string", - "description": "Serial number of the device." - }, - "id": { - "type": "string", - "description": "FDO guid of the Ownership Voucher." - }, - "manufacturer": { - "type": "string", - "description": "Name of the manufacturer." - }, - "modelName": { - "type": "string", - "description": "Name of the model." - }, - "version": { + "switchId": { "type": "string", - "description": "Version of the Ownership Voucher format" + "description": "Unique identifier for virtualSwitch.", + "readOnly": true }, - "azureMachineId": { + "extensionName": { "type": "string", - "description": "Azure Machine Id of the Ownership voucher" + "description": "This will show extension name for virtualSwitch.", + "readOnly": true }, - "error": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorDetail", - "description": "Error details if the validation failed." + "extensionEnabled": { + "type": "boolean", + "description": "This represents whether extension is enabled on virtualSwitch.", + "readOnly": true } } }, - "OwnershipVoucherValidationStatus": { - "type": "string", - "description": "Ownership Voucher validation Status.", - "enum": [ - "Valid", - "Invalid" - ], - "x-ms-enum": { - "name": "OwnershipVoucherValidationStatus", - "modelAsString": true, - "values": [ - { - "name": "Valid", - "value": "Valid", - "description": "Voucher evaluated as valid." - }, - { - "name": "Invalid", - "value": "Invalid", - "description": "Voucher evaluated as invalid." - } - ] + "TargetDeviceConfiguration": { + "type": "object", + "description": "Device configuration.", + "properties": { + "network": { + "$ref": "#/definitions/NetworkConfiguration", + "description": "Network configuration." + }, + "hostName": { + "type": "string", + "description": "Hostname of the device." + }, + "webProxy": { + "$ref": "#/definitions/WebProxyConfiguration", + "description": "Web proxy configuration." + }, + "time": { + "$ref": "#/definitions/TimeConfiguration", + "description": "Time configuration." + }, + "storage": { + "$ref": "#/definitions/StorageConfiguration", + "description": "Storage configuration." + } } }, - "PlatformPayload": { + "TimeConfiguration": { "type": "object", - "description": "Represents details of a specific platform update payload.", + "description": "Time configuration.", "properties": { - "payloadUrl": { - "type": "string", - "description": "Represents url of a platform update payload." - }, - "payloadHash": { + "primaryTimeServer": { "type": "string", - "description": "Represents hash of a platform update payload." + "description": "Primary NTP server." }, - "payloadPackageSizeInBytes": { + "secondaryTimeServer": { "type": "string", - "description": "Represents size in bytes of a platform update payload." + "description": "Secondary NTP server." }, - "payloadIdentifier": { + "timeZone": { "type": "string", - "description": "Represents identifier of a platform update payload." + "description": "Time zone." } } }, - "PlatformUpdate": { + "Update": { "type": "object", - "description": "Represents a platform update resource.", + "description": "Update details", "properties": { "properties": { - "$ref": "#/definitions/PlatformUpdateProperties", - "description": "The resource-specific properties for this resource." + "$ref": "#/definitions/UpdateProperties", + "description": "Update properties", + "x-ms-client-flatten": true + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] } }, "allOf": [ @@ -3086,40 +13802,30 @@ } ] }, - "PlatformUpdateDetails": { + "UpdateContent": { "type": "object", - "description": "Represents details of a specific platform update.", + "description": "Represents a update content.", "properties": { - "validatedSolutionRecipeVersion": { - "type": "string", - "description": "Represents validated solution recipe version of a platform update." - }, - "platformVersion": { - "type": "string", - "description": "Represents version of a platform update." - }, - "platformPayloads": { - "type": "array", - "description": "Represents the platform payloads of a platform update.", - "items": { - "$ref": "#/definitions/PlatformPayload" - }, - "x-ms-identifiers": [] + "properties": { + "$ref": "#/definitions/UpdateContentProperties", + "description": "The resource-specific properties for this resource." } }, - "required": [ - "platformPayloads" + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } ] }, - "PlatformUpdateListResult": { + "UpdateContentListResult": { "type": "object", - "description": "The response of a PlatformUpdate list operation.", + "description": "The response of a UpdateContent list operation.", "properties": { "value": { "type": "array", - "description": "The PlatformUpdate items on this page", + "description": "The UpdateContent items on this page", "items": { - "$ref": "#/definitions/PlatformUpdate" + "$ref": "#/definitions/UpdateContent" } }, "nextLink": { @@ -3132,896 +13838,846 @@ "value" ] }, - "PlatformUpdateProperties": { + "UpdateContentProperties": { "type": "object", - "description": "Represents properties of a platform update resource.", + "description": "Represents properties of a update content resource.", "properties": { - "platformUpdateDetails": { + "updatePayloads": { "type": "array", - "description": "Represents applicable platform updates.", + "description": "Represents the payloads of a update content resource.", "items": { - "$ref": "#/definitions/PlatformUpdateDetails" + "$ref": "#/definitions/ContentPayload" }, "x-ms-identifiers": [] } }, "required": [ - "platformUpdateDetails" + "updatePayloads" ] }, - "ProvisionOsJobProperties": { + "UpdateList": { "type": "object", - "description": "Represents the properties of an Azure Linux restricted operating environment Provision Os job.", + "description": "List of Updates", "properties": { - "provisioningRequest": { - "$ref": "#/definitions/ProvisioningRequest", - "description": "Os Provisioning request." + "value": { + "type": "array", + "description": "The Update items on this page", + "items": { + "$ref": "#/definitions/Update" + } }, - "reportedProperties": { - "$ref": "#/definitions/ProvisionOsReportedProperties", - "description": "Reported Properties for Provision Os job" + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" } }, "required": [ - "provisioningRequest" - ], - "allOf": [ - { - "$ref": "#/definitions/EdgeMachineJobProperties" - } - ], - "x-ms-discriminator-value": "ProvisionOs" + "value" + ] }, - "ProvisionOsReportedProperties": { + "UpdatePrerequisite": { "type": "object", - "description": "Reported Properties for Provision Os job", + "description": "If update State is HasPrerequisite, this property contains an array of objects describing prerequisite updates before installing this update. Otherwise, it is empty.", "properties": { - "percentComplete": { - "type": "integer", - "format": "int32", - "description": "The percentage of the job that is complete.", - "readOnly": true + "updateType": { + "type": "string", + "description": "Updatable component type." }, - "validationStatus": { - "$ref": "#/definitions/EceActionStatus", - "description": "Validation status of job.", - "readOnly": true + "version": { + "type": "string", + "description": "Version of the prerequisite." }, - "deploymentStatus": { - "$ref": "#/definitions/EceActionStatus", - "description": "Deployment status of job.", - "readOnly": true + "packageName": { + "type": "string", + "description": "Friendly name of the prerequisite." } } }, - "ProvisioningDetails": { + "UpdateProperties": { "type": "object", - "description": "Details for device provisioning.", + "description": "Details of a singular Update in HCI Cluster", "properties": { - "osProfile": { - "$ref": "#/definitions/OsProvisionProfile", - "description": "Operating system profile." + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of the Updates proxy resource. Indicates the current lifecycle status of the update operation, such as whether it has been accepted, is in progress, or has completed.", + "readOnly": true }, - "userDetails": { + "installedDate": { + "type": "string", + "format": "date-time", + "description": "Date that the update was installed." + }, + "description": { + "type": "string", + "description": "Description of the update." + }, + "minSbeVersionRequired": { + "type": "string", + "description": "Minimum Sbe Version of the update." + }, + "state": { + "$ref": "#/definitions/State", + "description": "Represents the current state of the update as it relates to this stamp. This includes phases such as preparation, installation, scanning, and error handling, providing insight into the update's progress and any issues encountered." + }, + "prerequisites": { "type": "array", - "description": "User configuration.", - "minItems": 1, + "description": "If update State is HasPrerequisite, this property contains an array of objects describing prerequisite updates before installing this update. Otherwise, it is empty.", "items": { - "$ref": "#/definitions/UserDetails" + "$ref": "#/definitions/UpdatePrerequisite" }, "x-ms-identifiers": [ - "userName" + "packageName" ] - } - }, - "required": [ - "osProfile" - ] - }, - "ProvisioningOsType": { - "type": "string", - "description": "Represents the provisioning operating system type.", - "enum": [ - "AzureLinux", - "HCI" - ], - "x-ms-enum": { - "name": "ProvisioningOsType", - "modelAsString": true, - "values": [ - { - "name": "AzureLinux", - "value": "AzureLinux", - "description": "AzureLinux OS." + }, + "componentVersions": { + "type": "array", + "description": "An array of component versions for a Solution Bundle update, and an empty array otherwise.", + "items": { + "$ref": "#/definitions/PackageVersionInfo" }, - { - "name": "HCI", - "value": "HCI", - "description": "HCI OS." + "x-ms-identifiers": [ + "version" + ] + }, + "rebootRequired": { + "$ref": "#/definitions/RebootRequirement", + "description": "Indicates whether a reboot is required after the update or operation. Helps determine if a system restart is necessary to complete the process." + }, + "healthState": { + "$ref": "#/definitions/HealthState", + "description": "Overall health state for update-specific health checks." + }, + "healthCheckResult": { + "type": "array", + "description": "An array of PrecheckResult objects.", + "items": { + "$ref": "#/definitions/PrecheckResult" } - ] + }, + "healthCheckDate": { + "type": "string", + "format": "date-time", + "description": "Last time the package-specific checks were run." + }, + "packagePath": { + "type": "string", + "description": "Path where the update package is available." + }, + "packageSizeInMb": { + "type": "number", + "format": "float", + "description": "Size of the package. This value is a combination of the size from update metadata and size of the payload that results from the live scan operation for OS update content." + }, + "displayName": { + "type": "string", + "description": "Display name of the Update" + }, + "version": { + "type": "string", + "description": "Version of the update." + }, + "publisher": { + "type": "string", + "description": "Publisher of the update package." + }, + "releaseLink": { + "type": "string", + "description": "Link to release notes for the update." + }, + "availabilityType": { + "$ref": "#/definitions/AvailabilityType", + "description": "Indicates how the update content is made available for download. This determines whether the update is sourced locally, from an online repository, or requires user notification." + }, + "packageType": { + "type": "string", + "description": "Customer-visible type of the update." + }, + "additionalProperties": { + "type": "string", + "description": "Extensible KV pairs serialized as a string. This is currently used to report the stamp OEM family and hardware model information when an update is flagged as Invalid for the stamp based on OEM type." + }, + "updateStateProperties": { + "$ref": "#/definitions/UpdateStateProperties", + "description": "Additional information regarding the state of the update. See definition of UpdateStateProperties type below for more details on this property.", + "x-ms-client-flatten": true + } } }, - "ProvisioningRequest": { + "UpdateRun": { "type": "object", - "description": "Represents a provisioning request.", + "description": "Details of an Update run", "properties": { - "target": { - "$ref": "#/definitions/ProvisioningOsType", - "description": "Target operating system to support polymorphic resource.", + "properties": { + "$ref": "#/definitions/UpdateRunProperties", + "description": "Describes Update Run Properties.", + "x-ms-client-flatten": true + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", "x-ms-mutability": [ "read", "create" ] + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "UpdateRunList": { + "type": "object", + "description": "List of Update runs", + "properties": { + "value": { + "type": "array", + "description": "The UpdateRun items on this page", + "items": { + "$ref": "#/definitions/UpdateRun" + } }, - "osProfile": { - "$ref": "#/definitions/OsProvisionProfile", - "description": "Operating system profile." - }, - "userDetails": { - "type": "array", - "description": "User configuration.", - "items": { - "$ref": "#/definitions/UserDetails" - }, - "x-ms-identifiers": [ - "userName" - ] - }, - "onboardingConfiguration": { - "$ref": "#/definitions/OnboardingConfiguration", - "description": "Onboarding configuration." - }, - "deviceConfiguration": { - "$ref": "#/definitions/DeviceConfiguration", - "description": "Device configuration." - }, - "customConfiguration": { + "nextLink": { "type": "string", - "description": "Base64 encoded custom configuration for CAPI to use" + "format": "uri", + "description": "The link to the next page of items" } }, "required": [ - "target", - "osProfile" + "value" ] }, - "ProvisioningState": { + "UpdateRunProperties": { + "type": "object", + "description": "Details of an Update run", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of the UpdateRuns proxy resource. Indicates the current lifecycle status of the update operation, such as whether it has been accepted, is in progress, or has completed.", + "readOnly": true + }, + "timeStarted": { + "type": "string", + "format": "date-time", + "description": "Timestamp of the update run was started." + }, + "lastUpdatedTime": { + "type": "string", + "format": "date-time", + "description": "Timestamp of the most recently completed step in the update run." + }, + "duration": { + "type": "string", + "description": "Duration of the update run." + }, + "state": { + "$ref": "#/definitions/UpdateRunPropertiesState", + "description": "Represents the current state of the update run. Indicates whether the update is in progress, has completed successfully, failed, or is in an unknown state." + }, + "progress": { + "$ref": "#/definitions/Step", + "description": "Progress representation of the update run steps.", + "x-ms-client-flatten": true + } + } + }, + "UpdateRunPropertiesState": { "type": "string", - "description": "The provisioning state of a resource.", + "description": "Represents the current state of the update run. Indicates whether the update is in progress, has completed successfully, failed, or is in an unknown state.", "enum": [ - "NotSpecified", + "Unknown", "Succeeded", - "Failed", - "Canceled", "InProgress", - "Provisioning", - "Updating", - "Deleting", - "Accepted" + "Failed" ], "x-ms-enum": { - "name": "ProvisioningState", + "name": "UpdateRunPropertiesState", "modelAsString": true, "values": [ { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The resource provision state is not specified" + "name": "Unknown", + "value": "Unknown", + "description": "The state of the update run is not known." }, { "name": "Succeeded", "value": "Succeeded", - "description": "Resource has been created." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Resource creation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Resource creation was canceled." + "description": "The update run completed successfully." }, { "name": "InProgress", "value": "InProgress", - "description": "Resource creation is in progress." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The resource is being provisioned" - }, - { - "name": "Updating", - "value": "Updating", - "description": "The resource is updating" - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The resource is being deleted" + "description": "The update run is currently in progress." }, { - "name": "Accepted", - "value": "Accepted", - "description": "The resource create request has been accepted" + "name": "Failed", + "value": "Failed", + "description": "The update run failed to complete successfully." } ] }, "readOnly": true }, - "RdmaCapability": { - "type": "string", - "description": "Describes the RDMA capability of the network adapter.", - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "RdmaCapability", - "modelAsString": true, - "values": [ - { - "name": "Enabled", - "value": "Enabled", - "description": "Network Adapter on the device is RDMA Capable" - }, - { - "name": "Disabled", - "value": "Disabled", - "description": "Network Adapter on the device isn't RDMA Capable" - } - ] - } - }, - "RemoteSupportAccessLevel": { - "type": "string", - "description": "Defines the level of remote support access granted.", - "enum": [ - "None", - "Diagnostics", - "DiagnosticsAndRepair" - ], - "x-ms-enum": { - "name": "RemoteSupportAccessLevel", - "modelAsString": true, - "values": [ - { - "name": "None", - "value": "None", - "description": "No remote support access is granted." - }, - { - "name": "Diagnostics", - "value": "Diagnostics", - "description": "Access is limited to diagnostics information only." - }, - { - "name": "DiagnosticsAndRepair", - "value": "DiagnosticsAndRepair", - "description": "Access includes diagnostics information and the ability to perform repairs." - } - ] + "UpdateStateProperties": { + "type": "object", + "description": "Additional information regarding the state of the update. See definition of UpdateStateProperties type below for more details on this property.", + "properties": { + "progressPercentage": { + "type": "number", + "format": "float", + "description": "Progress percentage of ongoing operation. Currently this property is only valid when the update is in the Downloading state, where it maps to how much of the update content has been downloaded." + }, + "notifyMessage": { + "type": "string", + "description": "Brief message with instructions for updates of AvailabilityType Notify." + } } }, - "RemoteSupportJobProperties": { + "UpdateSummaries": { "type": "object", - "description": "Properties for adding a server in the cluster.", + "description": "Get the update summaries for the cluster", "properties": { - "accessLevel": { - "$ref": "#/definitions/RemoteSupportAccessLevel", - "description": "Remote support access level." + "properties": { + "$ref": "#/definitions/UpdateSummariesProperties", + "description": "Update summaries properties", + "x-ms-client-flatten": true }, - "expirationTimestamp": { + "location": { "type": "string", - "format": "date-time", - "description": "Remote support expiration timestamp." - }, - "type": { - "$ref": "#/definitions/RemoteSupportType", - "description": "Remote support type." - }, - "reportedProperties": { - "$ref": "#/definitions/RemoteSupportReportedProperties", - "description": "log collection job reported properties.", - "readOnly": true + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] } }, - "required": [ - "accessLevel", - "expirationTimestamp", - "type" - ], "allOf": [ { - "$ref": "#/definitions/EdgeMachineJobProperties" + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" } - ], - "x-ms-discriminator-value": "RemoteSupport" + ] }, - "RemoteSupportNodeSettings": { + "UpdateSummariesList": { "type": "object", - "description": "Represents the settings of a remote support node.", + "description": "List of Update Summaries", "properties": { - "state": { - "type": "string", - "description": "The state of the remote support node.", - "readOnly": true - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the node settings were created, in UTC.", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "description": "The timestamp when the node settings were last updated, in UTC.", - "readOnly": true - }, - "connectionStatus": { - "type": "string", - "description": "The current connection status of the remote support session.", - "readOnly": true + "value": { + "type": "array", + "description": "The UpdateSummaries items on this page", + "items": { + "$ref": "#/definitions/UpdateSummaries" + } }, - "connectionErrorMessage": { + "nextLink": { "type": "string", - "description": "The error message, if any, from the last connection attempt.", - "readOnly": true + "format": "uri", + "description": "The link to the next page of items" } - } + }, + "required": [ + "value" + ] }, - "RemoteSupportReportedProperties": { + "UpdateSummariesProperties": { "type": "object", - "description": "Represents the reported properties of a remote support job.", + "description": "Properties of Update summaries", "properties": { - "percentComplete": { - "type": "integer", - "format": "int32", - "description": "The percentage of the job that is complete.", + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of the UpdateSummaries proxy resource. Indicates the current lifecycle status of the update summary operation, such as whether it has been accepted, is in progress, or has completed.", "readOnly": true }, - "validationStatus": { - "$ref": "#/definitions/EceActionStatus", - "description": "Validation status of job.", - "readOnly": true + "oemFamily": { + "type": "string", + "description": "OEM family name." }, - "deploymentStatus": { - "$ref": "#/definitions/EceActionStatus", - "description": "Deployment status of job.", - "readOnly": true + "currentOemVersion": { + "type": "string", + "description": "Current OEM Version." }, - "nodeSettings": { - "$ref": "#/definitions/RemoteSupportNodeSettings", - "description": "Optional settings for configuring the node for remote support.", - "readOnly": true + "hardwareModel": { + "type": "string", + "description": "Name of the hardware model." }, - "sessionDetails": { + "packageVersions": { "type": "array", - "description": "Details of the remote support session.", + "description": "Current version of each updatable component.", "items": { - "$ref": "#/definitions/RemoteSupportSession" + "$ref": "#/definitions/PackageVersionInfo" }, - "readOnly": true, "x-ms-identifiers": [ - "sessionId" + "version" ] - } - } - }, - "RemoteSupportSession": { - "type": "object", - "description": "Represents a remote support session.", - "properties": { - "sessionId": { + }, + "currentVersion": { "type": "string", - "description": "Unique session Id.", - "readOnly": true + "description": "Current Solution Bundle version of the stamp." }, - "sessionStartTime": { + "currentSbeVersion": { + "type": "string", + "description": "Current Sbe version of the stamp." + }, + "lastUpdated": { "type": "string", "format": "date-time", - "description": "The start time of the remote support session, in UTC.", - "readOnly": true + "description": "Last time an update installation completed successfully." }, - "sessionEndTime": { + "lastChecked": { "type": "string", "format": "date-time", - "description": "The end time of the remote support session, in UTC.", - "readOnly": true + "description": "Last time the update service successfully checked for updates" }, - "accessLevel": { - "$ref": "#/definitions/RemoteSupportAccessLevel", - "description": "The level of access granted during the remote support session.", - "readOnly": true + "healthState": { + "$ref": "#/definitions/HealthState", + "description": "Overall health state for update-specific health checks." + }, + "healthCheckResult": { + "type": "array", + "description": "An array of pre-check result objects.", + "items": { + "$ref": "#/definitions/PrecheckResult" + }, + "x-ms-identifiers": [ + "name" + ] }, - "transcriptLocation": { + "healthCheckDate": { "type": "string", - "description": "The location where the session transcript is stored.", - "readOnly": true + "format": "date-time", + "description": "Last time the package-specific checks were run." + }, + "state": { + "$ref": "#/definitions/UpdateSummariesPropertiesState", + "description": "Overall update state of the stamp. Indicates the current status of update deployment across the stamp, including preparation, application, and any issues encountered." } } }, - "RemoteSupportType": { + "UpdateSummariesPropertiesState": { "type": "string", - "description": "Defines the type of remote support action to be performed on an edge device.", + "description": "Overall update state of the stamp. Indicates the current status of update deployment across the stamp, including preparation, application, and any issues encountered.", "enum": [ - "Enable", - "Revoke" + "Unknown", + "AppliedSuccessfully", + "UpdateAvailable", + "UpdateInProgress", + "UpdateFailed", + "NeedsAttention", + "PreparationInProgress", + "PreparationFailed" ], "x-ms-enum": { - "name": "RemoteSupportType", + "name": "UpdateSummariesPropertiesState", "modelAsString": true, "values": [ { - "name": "Enable", - "value": "Enable", - "description": "Enables remote support for the edge device." + "name": "Unknown", + "value": "Unknown", + "description": "The update state is not known." }, { - "name": "Revoke", - "value": "Revoke", - "description": "Revokes remote support access for the edge device." + "name": "AppliedSuccessfully", + "value": "AppliedSuccessfully", + "description": "Updates have been successfully applied to the stamp." + }, + { + "name": "UpdateAvailable", + "value": "UpdateAvailable", + "description": "Updates are available but have not yet been applied." + }, + { + "name": "UpdateInProgress", + "value": "UpdateInProgress", + "description": "Updates are currently being applied to the stamp." + }, + { + "name": "UpdateFailed", + "value": "UpdateFailed", + "description": "The update process failed." + }, + { + "name": "NeedsAttention", + "value": "NeedsAttention", + "description": "The update process requires user intervention or has encountered issues needing attention." + }, + { + "name": "PreparationInProgress", + "value": "PreparationInProgress", + "description": "Preparation for the update is currently in progress." + }, + { + "name": "PreparationFailed", + "value": "PreparationFailed", + "description": "Preparation for the update failed." } ] } }, - "ReportedProperties": { + "UploadCertificateRequest": { "type": "object", - "description": "Reported properties for edge machine.", "properties": { - "lastUpdated": { - "type": "string", - "format": "date-time", - "description": "Last time data reported.", - "readOnly": true - }, - "networkProfile": { - "$ref": "#/definitions/NetworkProfile", - "description": "Network details for edge machine.", - "readOnly": true - }, - "osProfile": { - "$ref": "#/definitions/OsProfile", - "description": "OS Properties for edge machine.", - "readOnly": true - }, - "hardwareProfile": { - "$ref": "#/definitions/HardwareProfile", - "description": "Hardware related information for edge machine.", - "readOnly": true - }, - "storageProfile": { - "$ref": "#/definitions/StorageProfile", - "description": "Storage related information for edge machine.", - "readOnly": true - }, - "sbeDeploymentPackageInfo": { - "$ref": "#/definitions/SbeDeploymentPackageInfo", - "description": "Solution builder extension (SBE) deployment package information.", - "readOnly": true - }, - "extensionProfile": { - "$ref": "#/definitions/ExtensionProfile", - "description": "Extension details for edge machine.", - "readOnly": true + "properties": { + "$ref": "#/definitions/RawCertificateData" } } }, - "SbeDeploymentPackageInfo": { + "UserDetails": { "type": "object", - "description": "Solution builder extension (SBE) deployment package information.", + "description": "User configuration.", "properties": { - "code": { + "userName": { "type": "string", - "description": "SBE deployment validation code.", - "readOnly": true + "description": "Name of the user." }, - "message": { - "type": "string", - "description": "A detailed message that explains the SBE package validation result.", - "readOnly": true + "secretType": { + "$ref": "#/definitions/SecretType", + "description": "Type of the secret used for authentication." }, - "sbeManifest": { + "secretLocation": { "type": "string", - "description": "This represents discovered update results for matching updates and store it as SBE manifest.", - "readOnly": true + "description": "Location of the secret used for authentication." + }, + "sshPubKey": { + "type": "array", + "description": "SSH Public Key for the user.", + "items": { + "type": "string" + } } - } + }, + "required": [ + "userName", + "secretType" + ] }, - "SdnIntegrationIntent": { - "type": "string", - "description": "Indicates whether Software Defined Networking (SDN) integration should be enabled or disabled for this deployment.", - "enum": [ - "Enable", - "Disable" - ], - "x-ms-enum": { - "name": "SdnIntegrationIntent", - "modelAsString": true, - "values": [ - { - "name": "Enable", - "value": "Enable", - "description": "Enable SDN integration for the deployment." + "ValidateOwnershipVouchersRequest": { + "type": "object", + "description": "Validate Ownership Voucher Request", + "properties": { + "ownershipVoucherDetails": { + "type": "array", + "description": "Ownership Voucher Details.", + "minItems": 1, + "items": { + "$ref": "#/definitions/OwnershipVoucherDetails" }, - { - "name": "Disable", - "value": "Disable", - "description": "Disable SDN integration for the deployment." - } - ] - } + "x-ms-identifiers": [] + } + }, + "required": [ + "ownershipVoucherDetails" + ] }, - "SdnProperties": { + "ValidateOwnershipVouchersResponse": { "type": "object", - "description": "Represents the Software Defined Networking (SDN) configuration state.", + "description": "Validate Ownership Voucher Response", "properties": { - "sdnStatus": { - "$ref": "#/definitions/SdnStatus", - "description": "Indicates the current Software Defined Networking (SDN) status of the resource, which may be an individual device or a cluster.", - "readOnly": true + "ownershipVoucherValidationDetails": { + "type": "array", + "description": "Ownership Voucher Validation Details.", + "items": { + "$ref": "#/definitions/OwnershipVoucherValidationDetails" + }, + "x-ms-identifiers": [ + "id" + ] + } + }, + "required": [ + "ownershipVoucherValidationDetails" + ] + }, + "ValidateRequest": { + "type": "object", + "description": "The validate request for Edge Device.", + "properties": { + "edgeDeviceIds": { + "type": "array", + "description": "Node Ids against which, current node has to be validated.", + "items": { + "type": "string" + } }, - "sdnDomainName": { + "additionalInfo": { "type": "string", - "description": "The fully qualified domain name (FQDN) associated with the SDN deployment. This value is propagated from the Device Management Extension to the cluster resource. It is typically in the format `-nc.` when SDN is enabled. May be null or absent in unsupported or disabled states.", - "readOnly": true - }, - "sdnApiAddress": { + "description": "Additional info required for validation." + } + }, + "required": [ + "edgeDeviceIds" + ] + }, + "ValidateResponse": { + "type": "object", + "description": "An Accepted response with an Operation-Location header.", + "properties": { + "status": { "type": "string", - "description": "Represents the API address for the SDN deployment.", + "description": "edge device validation status", "readOnly": true } } }, - "SdnStatus": { - "type": "string", - "description": "Indicates the current Software Defined Networking (SDN) status of the resource, which may be an individual device or a cluster.", - "enum": [ - "Unknown", - "Disabled", - "Enabled" - ], - "x-ms-enum": { - "name": "SdnStatus", - "modelAsString": true, - "values": [ - { - "name": "Unknown", - "value": "Unknown", - "description": "The SDN status could not be determined due to a failure in querying the SDN API service. This may occur if the query script fails or if the system is in an inconsistent state. The domain name will be null in this case." - }, - { - "name": "Disabled", - "value": "Disabled", - "description": "SDN is not enabled on the resource. The domain name will be null. This is the default state when SDN has not been configured." - }, - { - "name": "Enabled", - "value": "Enabled", - "description": "SDN is successfully enabled on the resource. The domain name will be populated in the format `-nc.`. Customers may need to manage DNS settings to ensure proper resolution." - } - ] - } + "ValidatedSolutionRecipe": { + "type": "object", + "description": "Represents a validated solution recipe resource.", + "properties": { + "properties": { + "$ref": "#/definitions/ValidatedSolutionRecipeProperties", + "description": "The resource-specific properties for this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] }, - "SecretType": { - "type": "string", - "description": "Type of secret used for authentication.", - "enum": [ - "KeyVault", - "SshPubKey" - ], - "x-ms-enum": { - "name": "SecretType", - "modelAsString": true, - "values": [ - { - "name": "KeyVault", - "value": "KeyVault", - "description": "Key Vault based authentication" + "ValidatedSolutionRecipeCapabilities": { + "type": "object", + "description": "Represents capabilities available in a validated solution recipe.", + "properties": { + "clusterCapabilities": { + "type": "array", + "description": "Represents the cluster capabilities.", + "items": { + "$ref": "#/definitions/ValidatedSolutionRecipeCapability" }, - { - "name": "SshPubKey", - "value": "SshPubKey", - "description": "SSH Public Key based authentication" - } - ] - } + "x-ms-identifiers": [] + }, + "nodeCapabilities": { + "type": "array", + "description": "Represents the node capabilities.", + "items": { + "$ref": "#/definitions/ValidatedSolutionRecipeCapability" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "clusterCapabilities", + "nodeCapabilities" + ] }, - "SiteDetails": { + "ValidatedSolutionRecipeCapability": { "type": "object", - "description": "Site Details consists of common configurations.", + "description": "Represents capability available in a validated solution recipe.", "properties": { - "siteResourceId": { + "capabilityName": { "type": "string", - "format": "arm-id", - "description": "Site resource Id to be set during Edge Machine resource creation.", - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.Edge/sites" - } - ] - } - }, - "deviceConfiguration": { - "$ref": "#/definitions/DeviceConfiguration", - "description": "Edge Device configuration received from site common configuration." + "description": "Represents the capability name." } }, "required": [ - "siteResourceId" + "capabilityName" ] }, - "Step": { + "ValidatedSolutionRecipeComponent": { "type": "object", - "description": "Step details during job execution.", + "description": "Represents component available in a validated solution recipe.", "properties": { "name": { "type": "string", - "description": "Name of step.", - "readOnly": true - }, - "description": { - "type": "string", - "description": "Description of step.", - "readOnly": true - }, - "fullStepIndex": { - "type": "string", - "description": "FullStepIndex of step.", - "readOnly": true + "description": "Represents the component's name." }, - "startTimeUtc": { + "type": { "type": "string", - "description": "Start time in utc of step.", - "readOnly": true + "description": "Represents the component's type." }, - "endTimeUtc": { + "requiredVersion": { "type": "string", - "description": "End time in utc of step.", - "readOnly": true + "description": "Represents the component's required version." }, - "status": { - "type": "string", - "description": "Status of step. Allowed values are 'Error', 'Success', 'InProgress'", - "readOnly": true + "installOrder": { + "type": "integer", + "format": "int64", + "description": "Represents the component's install order." }, - "steps": { + "tags": { "type": "array", - "description": "List of nested steps during job execution..", + "description": "Represents the component's tags.", "items": { - "$ref": "#/definitions/Step" - }, - "readOnly": true, - "x-ms-identifiers": [ - "name" - ] + "type": "string" + } }, - "exception": { + "payloads": { "type": "array", - "description": "List of exceptions in job execution.", + "description": "Represents the component's payloads.", "items": { - "type": "string" + "$ref": "#/definitions/ValidatedSolutionRecipeComponentPayload" }, - "readOnly": true + "x-ms-identifiers": [] }, - "error": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorDetail", - "description": "Error information for the step", - "readOnly": true + "metadata": { + "$ref": "#/definitions/ValidatedSolutionRecipeComponentMetadata", + "description": "Represents the component's metadata." } - } + }, + "required": [ + "name", + "type", + "tags" + ] }, - "StorageConfiguration": { + "ValidatedSolutionRecipeComponentMetadata": { "type": "object", - "description": "Storage configuration.", + "description": "Represents metadata associated with a component available in a validated solution recipe.", "properties": { - "partitionSize": { + "extensionType": { "type": "string", - "description": "Partition size." - } - } - }, - "StorageProfile": { - "type": "object", - "description": "StorageProfile of edge machine.", - "properties": { - "poolableDisksCount": { - "type": "integer", - "format": "int64", - "description": "Number of storage disks in the device with $CanPool as true.", - "readOnly": true - } - } - }, - "SwitchDetail": { - "type": "object", - "description": "Switch Details of edge machine.", - "properties": { - "switchName": { + "description": "Represents the type of extension." + }, + "publisher": { "type": "string", - "description": "The name of the switch.", - "readOnly": true + "description": "Represents the publisher of the extension." }, - "switchType": { + "enableAutomaticUpgrade": { + "type": "boolean", + "description": "Indicates whether automatic upgrades of the extension are enabled." + }, + "lcmUpdate": { + "type": "boolean", + "description": "Indicates whether the LCM (Lifecycle Management) update of the extension is enabled." + }, + "catalog": { "type": "string", - "description": "The type of the switch. e.g. external, internal.", - "readOnly": true + "description": "Specifies the catalog to which the extension belongs." }, - "extensions": { - "type": "array", - "description": "This represents extensions installed on virtualSwitch.", - "items": { - "$ref": "#/definitions/SwitchExtension" - }, - "readOnly": true, - "x-ms-identifiers": [ - "extensionName" - ] - } - } - }, - "SwitchExtension": { - "type": "object", - "description": "This represents extensions installed on virtualSwitch.", - "properties": { - "switchId": { + "ring": { "type": "string", - "description": "Unique identifier for virtualSwitch.", - "readOnly": true + "description": "Specifies the ring to which the extension belongs, internally used by component." }, - "extensionName": { + "releaseTrain": { "type": "string", - "description": "This will show extension name for virtualSwitch.", - "readOnly": true + "description": "Specifies the release train to which given component belongs." }, - "extensionEnabled": { - "type": "boolean", - "description": "This represents whether extension is enabled on virtualSwitch.", - "readOnly": true - } - } - }, - "TimeConfiguration": { - "type": "object", - "description": "Time configuration.", - "properties": { - "primaryTimeServer": { + "link": { "type": "string", - "description": "Primary NTP server." + "description": "Specifies the link associated with the extension." }, - "secondaryTimeServer": { + "name": { "type": "string", - "description": "Secondary NTP server." + "description": "Specifies the name of the extension." }, - "timeZone": { + "expectedHash": { "type": "string", - "description": "Time zone." + "description": "Specifies the expected hash of the extension." + }, + "previewSource": { + "type": "string", + "description": "Specifies the preview source of the extension." } } }, - "UpdateContent": { - "type": "object", - "description": "Represents a update content.", - "properties": { - "properties": { - "$ref": "#/definitions/UpdateContentProperties", - "description": "The resource-specific properties for this resource." - } - }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ] - }, - "UpdateContentListResult": { + "ValidatedSolutionRecipeComponentPayload": { "type": "object", - "description": "The response of a UpdateContent list operation.", + "description": "Represents payloads associated with a component available in a validated solution recipe.", "properties": { - "value": { - "type": "array", - "description": "The UpdateContent items on this page", - "items": { - "$ref": "#/definitions/UpdateContent" - } + "identifier": { + "type": "string", + "description": "Represents the unique identifier of the payload used to query the URL." }, - "nextLink": { + "hash": { "type": "string", - "format": "uri", - "description": "The link to the next page of items" + "description": "Represents the cryptographic hash of the payload, ensuring data integrity." + }, + "fileName": { + "type": "string", + "description": "Represents the name of the file associated with the payload." + }, + "url": { + "type": "string", + "description": "Represents the URL from which the payload can be downloaded." } }, "required": [ - "value" + "identifier", + "hash", + "fileName", + "url" ] }, - "UpdateContentProperties": { + "ValidatedSolutionRecipeContent": { "type": "object", - "description": "Represents properties of a update content resource.", + "description": "Represents contents of a validated solution recipe resource.", "properties": { - "updatePayloads": { + "info": { + "$ref": "#/definitions/ValidatedSolutionRecipeInfo", + "description": "Represents information about a validated solution recipe." + }, + "capabilities": { + "$ref": "#/definitions/ValidatedSolutionRecipeCapabilities", + "description": "Represents capabilities available in a validated solution recipe." + }, + "components": { "type": "array", - "description": "Represents the payloads of a update content resource.", + "description": "Represents components available in a validated solution recipe.", "items": { - "$ref": "#/definitions/ContentPayload" + "$ref": "#/definitions/ValidatedSolutionRecipeComponent" }, "x-ms-identifiers": [] } }, "required": [ - "updatePayloads" + "info", + "components" ] }, - "UserDetails": { + "ValidatedSolutionRecipeInfo": { "type": "object", - "description": "User configuration.", + "description": "Represents information about a validated solution recipe.", "properties": { - "userName": { + "solutionType": { "type": "string", - "description": "Name of the user." - }, - "secretType": { - "$ref": "#/definitions/SecretType", - "description": "Type of the secret used for authentication." + "description": "Represents the solution type for which this validated solution recipe is applicable." }, - "secretLocation": { + "version": { "type": "string", - "description": "Location of the secret used for authentication." - }, - "sshPubKey": { - "type": "array", - "description": "SSH Public Key for the user.", - "items": { - "type": "string" - } + "description": "Represents the version for which this validated solution recipe is applicable." } }, "required": [ - "userName", - "secretType" + "solutionType", + "version" ] }, - "ValidateOwnershipVouchersRequest": { + "ValidatedSolutionRecipeListResult": { "type": "object", - "description": "Validate Ownership Voucher Request", + "description": "The response of a ValidatedSolutionRecipe list operation.", "properties": { - "ownershipVoucherDetails": { + "value": { "type": "array", - "description": "Ownership Voucher Details.", - "minItems": 1, + "description": "The ValidatedSolutionRecipe items on this page", "items": { - "$ref": "#/definitions/OwnershipVoucherDetails" - }, - "x-ms-identifiers": [] + "$ref": "#/definitions/ValidatedSolutionRecipe" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" } }, "required": [ - "ownershipVoucherDetails" + "value" ] }, - "ValidateOwnershipVouchersResponse": { + "ValidatedSolutionRecipeProperties": { "type": "object", - "description": "Validate Ownership Voucher Response", + "description": "Represents properties of a validated solution recipe resource.", "properties": { - "ownershipVoucherValidationDetails": { - "type": "array", - "description": "Ownership Voucher Validation Details.", - "items": { - "$ref": "#/definitions/OwnershipVoucherValidationDetails" - }, - "x-ms-identifiers": [ - "id" - ] + "recipeContent": { + "$ref": "#/definitions/ValidatedSolutionRecipeContent", + "description": "Represents contents of a validated solution recipe." + }, + "signature": { + "type": "string", + "description": "Represents the signature of the recipe, to be used for ensuring its integrity." } }, "required": [ - "ownershipVoucherValidationDetails" + "recipeContent" ] }, "WebProxyConfiguration": { @@ -4047,6 +14703,30 @@ } } } + }, + "WindowsServerSubscription": { + "type": "string", + "description": "Desired state of Windows Server Subscription.", + "enum": [ + "Disabled", + "Enabled" + ], + "x-ms-enum": { + "name": "WindowsServerSubscription", + "modelAsString": true, + "values": [ + { + "name": "Disabled", + "value": "Disabled", + "description": "Windows Server Subscription is disabled." + }, + { + "name": "Enabled", + "value": "Enabled", + "description": "Windows Server Subscription is enabled." + } + ] + } } }, "parameters": {} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/hciCommon.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/hciCommon.json deleted file mode 100644 index 513127d3f5d5..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/hciCommon.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "AzureStackHCI Common", - "version": "2025-12-01-preview", - "description": "Azure Stack HCI common Rest API spec definitions." - }, - "schemes": [ - "https" - ], - "host": "management.azure.com", - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "tags": [], - "paths": {}, - "definitions": { - "DeploymentMode": { - "type": "string", - "description": "The deployment mode of EnterpriseCloudEngine(ECE) action for a cluster.", - "enum": [ - "Validate", - "Deploy" - ], - "default": "Deploy", - "x-ms-enum": { - "name": "DeploymentMode", - "modelAsString": true, - "values": [ - { - "name": "Validate", - "value": "Validate", - "description": "Validate ECE action deployment for a cluster." - }, - { - "name": "Deploy", - "value": "Deploy", - "description": "Deploy ECE action deployment for a cluster." - } - ] - } - }, - "EceReportedProperties": { - "type": "object", - "description": "The DeploymentStatus of AzureStackHCI Cluster.", - "properties": { - "validationStatus": { - "$ref": "#/definitions/EceActionStatus", - "description": "validation status of AzureStackHCI Cluster Deployment.", - "readOnly": true - }, - "deploymentStatus": { - "$ref": "#/definitions/EceActionStatus", - "description": "Deployment status of AzureStackHCI Cluster Deployment.", - "readOnly": true - } - } - }, - "EceActionStatus": { - "type": "object", - "description": "The ECE action plan deployment status for AzureStackHCI Cluster.", - "properties": { - "status": { - "type": "string", - "description": "Status of ECE action AzureStackHCI Cluster Deployment.", - "readOnly": true - }, - "steps": { - "type": "array", - "description": "List of steps of AzureStackHCI Cluster Deployment.", - "items": { - "$ref": "#/definitions/DeploymentStep" - }, - "readOnly": true, - "x-ms-identifiers": [] - } - } - }, - "ProvisioningState": { - "type": "string", - "description": "The provisioning state of a resource.", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "NotSpecified", - "Provisioning", - "Updating", - "Deleting", - "Accepted" - ], - "readOnly": true, - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Resource has been created." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Resource creation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Resource creation was canceled." - }, - { - "name": "NotSpecified", - "value": "NotSpecified", - "description": "The resource provision state is not specified" - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The resource is being provisioned" - }, - { - "name": "Updating", - "value": "Updating", - "description": "The resource is updating" - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The resource is being deleted" - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The resource create request has been accepted" - } - ] - } - }, - "EceDeploymentSecrets": { - "type": "object", - "description": "Protected parameters list stored in keyvault.", - "properties": { - "secretName": { - "type": "string", - "description": "Secret name stored in keyvault." - }, - "eceSecretName": { - "$ref": "#/definitions/EceSecrets", - "description": "Secret name expected for Enterprise Cloud Engine (ECE) deployment." - }, - "secretLocation": { - "type": "string", - "format": "uri", - "description": "Secret URI stored in keyvault." - } - } - }, - "IdentityProvider": { - "type": "string", - "description": "Specifies the identity provider used for authenticating and managing access to cluster nodes. Choose between Active Directory for domain-based identity or Local Identity for AD-less configurations using Azure Key Vault.", - "enum": [ - "ActiveDirectory", - "LocalIdentity" - ], - "default": "ActiveDirectory", - "x-ms-enum": { - "name": "IdentityProvider", - "modelAsString": true, - "values": [ - { - "name": "ActiveDirectory", - "value": "ActiveDirectory", - "description": "Uses Active Directory as the identity provider, enabling domain-based authentication and centralized identity management. This is the default option." - }, - { - "name": "LocalIdentity", - "value": "LocalIdentity", - "description": "Uses a local identity system integrated with Azure Key Vault for authentication. Suitable for AD-less environments where Active Directory is not available or required." - } - ] - } - }, - "ClusterPattern": { - "type": "string", - "description": "Supported Storage Pattern for HCI Cluster", - "enum": [ - "Standard", - "RackAware" - ], - "x-ms-enum": { - "name": "ClusterPattern", - "modelAsString": true, - "values": [ - { - "name": "Standard", - "value": "Standard", - "description": "Standard cluster." - }, - { - "name": "RackAware", - "value": "RackAware", - "description": "RackAware cluster." - } - ] - } - }, - "LocalAvailabilityZones": { - "type": "object", - "description": "Local Availability Zone information for HCI cluster", - "properties": { - "localAvailabilityZoneName": { - "type": "string", - "description": "Local Availability Zone name for HCI cluster" - }, - "nodes": { - "type": "array", - "description": "Nodes belonging to a particular zone", - "items": { - "type": "string" - }, - "x-ms-identifiers": [] - } - } - }, - "EceSecrets": { - "type": "string", - "description": "Secret names allowed for Enterprise Cloud Engine (ECE) deployment.", - "enum": [ - "AzureStackLCMUserCredential", - "DefaultARBApplication", - "LocalAdminCredential", - "WitnessStorageKey" - ], - "x-ms-enum": { - "name": "EceSecrets", - "modelAsString": true, - "values": [ - { - "name": "AzureStackLCMUserCredential", - "value": "AzureStackLCMUserCredential", - "description": "AzureStackLCMUserCredential used for LCM operations for AzureStackHCI cluster." - }, - { - "name": "DefaultARBApplication", - "value": "DefaultARBApplication", - "description": "DefaultARBApplication used to manage Azure Arc resource bridge (ARB) for AzureStackHCI cluster." - }, - { - "name": "LocalAdminCredential", - "value": "LocalAdminCredential", - "description": "LocalAdminCredential used for admin operations for AzureStackHCI cluster." - }, - { - "name": "WitnessStorageKey", - "value": "WitnessStorageKey", - "description": "WitnessStorageKey used for setting up a cloud witness for AzureStackHCI cluster." - } - ] - } - }, - "DeploymentStep": { - "type": "object", - "description": "The Step of AzureStackHCI Cluster.", - "properties": { - "name": { - "type": "string", - "description": "Name of step.", - "readOnly": true - }, - "description": { - "type": "string", - "description": "Description of step.", - "readOnly": true - }, - "fullStepIndex": { - "type": "string", - "description": "FullStepIndex of step.", - "readOnly": true - }, - "startTimeUtc": { - "type": "string", - "description": "Start time of step.", - "readOnly": true - }, - "endTimeUtc": { - "type": "string", - "description": "End time of step.", - "readOnly": true - }, - "status": { - "type": "string", - "description": "Status of step. Allowed values are 'Error', 'Success', 'InProgress'", - "readOnly": true - }, - "steps": { - "type": "array", - "description": "List of nested steps of AzureStackHCI Cluster Deployment.", - "items": { - "$ref": "#/definitions/DeploymentStep" - }, - "readOnly": true, - "x-ms-identifiers": [] - }, - "exception": { - "type": "array", - "description": "List of exceptions in AzureStackHCI Cluster Deployment.", - "items": { - "type": "string" - }, - "readOnly": true, - "x-ms-identifiers": [] - } - } - }, - "PrecheckResult": { - "type": "object", - "properties": { - "name": { - "description": "Name of the individual test/rule/alert that was executed. Unique, not exposed to the customer.", - "type": "string" - }, - "displayName": { - "description": "The health check DisplayName localized of the individual test executed.", - "type": "string" - }, - "tags": { - "description": "Key-value pairs that allow grouping/filtering individual tests.", - "type": "object", - "properties": { - "key": { - "description": "Key that allow grouping/filtering individual tests.", - "type": "string" - }, - "value": { - "description": "Value of the key that allow grouping/filtering individual tests.", - "type": "string" - } - } - }, - "healthCheckTags": { - "description": "Key-value pairs that allow grouping/filtering individual tests.", - "type": "object" - }, - "title": { - "description": "User-facing name; one or more sentences indicating the direct issue.", - "type": "string" - }, - "status": { - "description": "Represents the current status of the check being performed. Indicates whether the check has completed successfully, failed, or is still in progress.", - "type": "string", - "enum": [ - "Succeeded", - "Failed", - "InProgress" - ], - "x-ms-enum": { - "name": "status", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The check completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The check completed but failed." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The check is currently in progress." - } - ] - } - }, - "severity": { - "description": "Indicates the importance or impact level of the result. Determines whether the result is informational, a warning, or a critical issue that may block updates.", - "type": "string", - "enum": [ - "Critical", - "Warning", - "Informational", - "Hidden" - ], - "x-ms-enum": { - "name": "severity", - "modelAsString": true, - "values": [ - { - "name": "Critical", - "value": "Critical", - "description": "A critical issue that blocks updates and requires immediate attention." - }, - { - "name": "Warning", - "value": "Warning", - "description": "A warning that may indicate a potential issue but does not block updates." - }, - { - "name": "Informational", - "value": "Informational", - "description": "General information that does not indicate any issue." - }, - { - "name": "Hidden", - "value": "Hidden", - "description": "The result is hidden and not shown in the output." - } - ] - } - }, - "description": { - "description": "Detailed overview of the issue and what impact the issue has on the stamp.", - "type": "string" - }, - "remediation": { - "description": "Set of steps that can be taken to resolve the issue found.", - "type": "string" - }, - "targetResourceID": { - "description": "The unique identifier for the affected resource (such as a node or drive).", - "type": "string" - }, - "targetResourceName": { - "description": "The name of the affected resource.", - "type": "string" - }, - "targetResourceType": { - "description": "The type of resource being referred to (well-known set of nouns in infrastructure, aligning with Monitoring).", - "type": "string" - }, - "timestamp": { - "description": "The time in which the HealthCheck was called.", - "type": "string", - "format": "date-time" - }, - "additionalData": { - "description": "Property bag of key value pairs for additional information.", - "type": "string" - }, - "healthCheckSource": { - "description": "The name of the services called for the HealthCheck (I.E. Test-AzureStack, Test-Cluster).", - "type": "string" - } - } - }, - "EdgeDeviceKind": { - "type": "string", - "description": "Edge device kind.", - "enum": [ - "HCI" - ], - "default": "HCI", - "x-ms-enum": { - "name": "EdgeDeviceKind", - "modelAsString": true, - "values": [ - { - "name": "HCI", - "value": "HCI", - "description": "Arc-enabled edge device with HCI OS." - } - ] - } - }, - "HardwareClass": { - "type": "string", - "description": "Hardware class of the cluster.", - "enum": [ - "Small", - "Medium", - "Large" - ], - "default": "Medium", - "x-ms-enum": { - "name": "HardwareClass", - "modelAsString": true, - "values": [ - { - "name": "Small", - "value": "Small", - "description": "The hardware class is small." - }, - { - "name": "Medium", - "value": "Medium", - "description": "The hardware class is medium. This corresponds to the default" - }, - { - "name": "Large", - "value": "Large", - "description": "The hardware class is large." - } - ] - } - } - }, - "parameters": {} -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/offers.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/offers.json deleted file mode 100644 index ce80f1d5e50f..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/offers.json +++ /dev/null @@ -1,302 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-12-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers": { - "get": { - "operationId": "Offers_ListByPublisher", - "description": "List Offers available for a publisher within the HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/PublisherNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ODataExpandParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OfferList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Offer resources by publisher for the HCI Cluster": { - "$ref": "./examples/ListOffersByPublisher.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/offers": { - "get": { - "operationId": "Offers_ListByCluster", - "description": "List Offers available across publishers for the HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ODataExpandParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OfferList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Offer resources by HCI Cluster": { - "$ref": "./examples/ListOffersByCluster.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}": { - "get": { - "operationId": "Offers_Get", - "description": "Get Offer resource details within a publisher of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/PublisherNameParameter" - }, - { - "$ref": "#/parameters/OfferNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ODataExpandParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Offer" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Offer": { - "$ref": "./examples/GetOffer.json" - } - } - } - } - }, - "definitions": { - "OfferList": { - "description": "List of Offer proxy resources for the HCI cluster.", - "type": "object", - "properties": { - "value": { - "description": "List of Offer proxy resources.", - "type": "array", - "items": { - "$ref": "#/definitions/Offer" - }, - "readOnly": true - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "Offer": { - "description": "Offer details.", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "description": "Offer properties.", - "$ref": "#/definitions/OfferProperties", - "x-ms-client-flatten": true - } - } - }, - "OfferProperties": { - "description": "Publisher properties.", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning State", - "type": "string", - "readOnly": true - }, - "publisherId": { - "type": "string", - "description": "Identifier of the Publisher for the offer" - }, - "content": { - "type": "string", - "description": "JSON serialized catalog content of the offer" - }, - "contentVersion": { - "type": "string", - "description": "The API version of the catalog service used to serve the catalog content" - }, - "skuMappings": { - "type": "array", - "description": "Array of SKU mappings", - "items": { - "$ref": "#/definitions/SkuMappings" - }, - "x-ms-identifiers": [] - } - } - }, - "SkuMappings": { - "description": "SKU Mapping details.", - "type": "object", - "properties": { - "catalogPlanId": { - "type": "string", - "description": "Identifier of the CatalogPlan for the sku" - }, - "marketplaceSkuId": { - "type": "string", - "description": "Identifier for the sku" - }, - "marketplaceSkuVersions": { - "type": "array", - "description": "Array of SKU versions available", - "items": { - "type": "string" - } - } - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "PublisherNameParameter": { - "name": "publisherName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the publisher available within HCI cluster.", - "x-ms-parameter-location": "method" - }, - "OfferNameParameter": { - "name": "offerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the offer available within HCI cluster.", - "x-ms-parameter-location": "method" - }, - "ODataExpandParameter": { - "name": "$expand", - "in": "query", - "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/publishers.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/publishers.json deleted file mode 100644 index c18a8c3efa90..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/publishers.json +++ /dev/null @@ -1,188 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-12-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers": { - "get": { - "operationId": "Publishers_ListByCluster", - "description": "List Publishers available for the HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/PublisherList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Publisher resources by HCI Cluster": { - "$ref": "./examples/ListPublishersByCluster.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}": { - "get": { - "operationId": "Publishers_Get", - "description": "Get Publisher resource details of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/PublisherNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Publisher" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Publisher": { - "$ref": "./examples/GetPublisher.json" - } - } - } - } - }, - "definitions": { - "PublisherList": { - "description": "List of Publisher proxy resources for the HCI cluster.", - "type": "object", - "properties": { - "value": { - "description": "List of Publisher proxy resources.", - "type": "array", - "items": { - "$ref": "#/definitions/Publisher" - }, - "readOnly": true - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "Publisher": { - "description": "Publisher details.", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "description": "Publisher properties.", - "$ref": "#/definitions/PublisherProperties", - "x-ms-client-flatten": true - } - } - }, - "PublisherProperties": { - "description": "Publisher properties.", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning State", - "type": "string", - "readOnly": true - } - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "PublisherNameParameter": { - "name": "publisherName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the publisher available within HCI cluster.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/securitySettings.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/securitySettings.json deleted file mode 100644 index 48583fe68c92..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/securitySettings.json +++ /dev/null @@ -1,502 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "AzureStackHCI", - "version": "2025-12-01-preview", - "description": "Azure Stack HCI cluster security settings." - }, - "schemes": [ - "https" - ], - "host": "management.azure.com", - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "tags": [ - { - "name": "SecuritySettings" - } - ], - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/securitySettings": { - "get": { - "operationId": "SecuritySettings_ListByClusters", - "tags": [ - "SecuritySettings" - ], - "description": "List SecuritySetting resources by Clusters", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - } - ], - "responses": { - "200": { - "description": "ARM operation completed successfully.", - "schema": { - "$ref": "#/definitions/SecuritySettingListResult" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Security Settings": { - "$ref": "./examples/ListSecuritySettingsByCluster.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/securitySettings/{securitySettingsName}": { - "get": { - "operationId": "SecuritySettings_Get", - "tags": [ - "SecuritySettings" - ], - "description": "Get a SecuritySetting", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "name": "securitySettingsName", - "in": "path", - "description": "Name of security setting", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "200": { - "description": "ARM operation completed successfully.", - "schema": { - "$ref": "#/definitions/SecuritySetting" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Security Settings": { - "$ref": "./examples/GetSecuritySettings.json" - } - } - }, - "put": { - "operationId": "SecuritySettings_CreateOrUpdate", - "tags": [ - "SecuritySettings" - ], - "description": "Create a security setting", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "name": "securitySettingsName", - "in": "path", - "description": "Name of security setting", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - }, - { - "name": "resource", - "in": "body", - "description": "Resource create parameters.", - "required": true, - "schema": { - "$ref": "#/definitions/SecuritySetting" - } - } - ], - "responses": { - "200": { - "description": "Resource 'SecuritySetting' update operation succeeded", - "schema": { - "$ref": "#/definitions/SecuritySetting" - } - }, - "201": { - "description": "Resource 'SecuritySetting' create operation succeeded", - "schema": { - "$ref": "#/definitions/SecuritySetting" - }, - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - } - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Create Security Settings": { - "$ref": "./examples/PutSecuritySettings.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-long-running-operation": true - }, - "delete": { - "operationId": "SecuritySettings_Delete", - "tags": [ - "SecuritySettings" - ], - "description": "Delete a SecuritySetting", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "name": "securitySettingsName", - "in": "path", - "description": "Name of security setting", - "required": true, - "type": "string", - "default": "default", - "pattern": "^[a-zA-Z0-9-]{3,24}$" - } - ], - "responses": { - "202": { - "description": "Resource deletion accepted.", - "headers": { - "Retry-After": { - "type": "integer", - "format": "int32", - "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." - }, - "Location": { - "type": "string", - "description": "The Location header contains the URL where the status of the long running operation can be checked." - } - } - }, - "204": { - "description": "Resource deleted successfully." - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Delete Security Settings": { - "$ref": "./examples/DeleteSecuritySettings.json" - } - }, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - }, - "x-ms-long-running-operation": true - } - } - }, - "definitions": { - "ComplianceAssignmentType": { - "type": "string", - "description": "Represents the compliance assignment type of a resource.", - "enum": [ - "Audit", - "ApplyAndAutoCorrect" - ], - "x-ms-enum": { - "name": "ComplianceAssignmentType", - "modelAsString": true, - "values": [ - { - "name": "Audit", - "value": "Audit", - "description": "Report on the state of the machine, but don't make changes." - }, - { - "name": "ApplyAndAutoCorrect", - "value": "ApplyAndAutoCorrect", - "description": "Applied to the machine. If it drifts, the local service inside the machine makes a correction at the next evaluation." - } - ] - } - }, - "ComplianceStatus": { - "type": "string", - "description": "Represents the compliance status of a resource.", - "enum": [ - "Compliant", - "NonCompliant", - "Pending" - ], - "x-ms-enum": { - "name": "ComplianceStatus", - "modelAsString": true, - "values": [ - { - "name": "Compliant", - "value": "Compliant", - "description": "The resource is compliant" - }, - { - "name": "NonCompliant", - "value": "NonCompliant", - "description": "The resource is non-compliant" - }, - { - "name": "Pending", - "value": "Pending", - "description": "The resource compliance status is pending" - } - ] - } - }, - "ProvisioningState": { - "type": "string", - "description": "The provisioning state of a resource.", - "readOnly": true, - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "Provisioning", - "Updating", - "Deleting", - "Accepted" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "Resource has been created." - }, - { - "name": "Failed", - "value": "Failed", - "description": "Resource creation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "Resource creation was canceled." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The resource is being provisioned" - }, - { - "name": "Updating", - "value": "Updating", - "description": "The resource is updating" - }, - { - "name": "Deleting", - "value": "Deleting", - "description": "The resource is being deleted" - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The resource create request has been accepted" - } - ] - } - }, - "SecurityComplianceStatus": { - "type": "object", - "description": "Security compliance properties of the resource", - "properties": { - "securedCoreCompliance": { - "$ref": "#/definitions/ComplianceStatus", - "description": "Indicates whether HCI hosts meets secured-core server requirements.", - "readOnly": true - }, - "wdacCompliance": { - "$ref": "#/definitions/ComplianceStatus", - "description": "Indicates whether HCI hosts have enforced consistent Windows Defender Application Control.", - "readOnly": true - }, - "dataAtRestEncrypted": { - "$ref": "#/definitions/ComplianceStatus", - "description": "Indicates whether data at-rest encryption is enabled on Azure Stack HCI clustered volumes.", - "readOnly": true - }, - "dataInTransitProtected": { - "$ref": "#/definitions/ComplianceStatus", - "description": "Indicates whether HCI cluster has data in-transit protection.", - "readOnly": true - }, - "lastUpdated": { - "type": "string", - "format": "date-time", - "description": "Time in UTC when compliance status was last updated.", - "readOnly": true - } - } - }, - "SecurityProperties": { - "type": "object", - "description": "Security properties of the resource", - "properties": { - "securedCoreComplianceAssignment": { - "$ref": "#/definitions/ComplianceAssignmentType", - "description": "Secured Core Compliance Assignment", - "default": "Audit" - }, - "wdacComplianceAssignment": { - "$ref": "#/definitions/ComplianceAssignmentType", - "description": "WDAC Compliance Assignment", - "default": "Audit" - }, - "smbEncryptionForIntraClusterTrafficComplianceAssignment": { - "$ref": "#/definitions/ComplianceAssignmentType", - "description": "SMB encryption for intra-cluster traffic Compliance Assignment", - "default": "Audit" - }, - "securityComplianceStatus": { - "$ref": "#/definitions/SecurityComplianceStatus", - "description": "Security Compliance Status", - "readOnly": true - }, - "provisioningState": { - "$ref": "#/definitions/ProvisioningState", - "description": "The status of the last operation." - } - } - }, - "SecuritySetting": { - "type": "object", - "description": "Security settings proxy resource", - "properties": { - "properties": { - "$ref": "#/definitions/SecurityProperties", - "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] - } - }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ] - }, - "SecuritySettingListResult": { - "type": "object", - "description": "The response of a SecuritySetting list operation.", - "properties": { - "value": { - "type": "array", - "description": "The SecuritySetting items on this page", - "items": { - "$ref": "#/definitions/SecuritySetting" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/skus.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/skus.json deleted file mode 100644 index 9ef085f9862c..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/skus.json +++ /dev/null @@ -1,275 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-12-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}/skus": { - "get": { - "operationId": "Skus_ListByOffer", - "description": "List Skus available for a offer within the HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/PublisherNameParameter" - }, - { - "$ref": "#/parameters/OfferNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ODataExpandParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SkuList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List SKU resources by offer for the HCI Cluster": { - "$ref": "./examples/ListSkusByOffer.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}/skus/{skuName}": { - "get": { - "operationId": "Skus_Get", - "description": "Get SKU resource details within a offer of HCI Cluster.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/PublisherNameParameter" - }, - { - "$ref": "#/parameters/OfferNameParameter" - }, - { - "$ref": "#/parameters/SkuNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ODataExpandParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Sku" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Sku": { - "$ref": "./examples/GetSku.json" - } - } - } - } - }, - "definitions": { - "SkuList": { - "description": "List of SKU proxy resources for the HCI cluster.", - "type": "object", - "properties": { - "value": { - "description": "List of SKU proxy resources.", - "type": "array", - "items": { - "$ref": "#/definitions/Sku" - }, - "readOnly": true - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "Sku": { - "description": "Sku details.", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "description": "SKU properties.", - "$ref": "#/definitions/SkuProperties", - "x-ms-client-flatten": true - } - } - }, - "SkuProperties": { - "description": "SKU properties.", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning State", - "type": "string", - "readOnly": true - }, - "publisherId": { - "type": "string", - "description": "Identifier of the Publisher for the offer" - }, - "offerId": { - "type": "string", - "description": "Identifier of the Offer for the sku" - }, - "content": { - "type": "string", - "description": "JSON serialized catalog content of the sku offer" - }, - "contentVersion": { - "type": "string", - "description": "The API version of the catalog service used to serve the catalog content" - }, - "skuMappings": { - "type": "array", - "description": "Array of SKU mappings", - "items": { - "$ref": "#/definitions/SkuMappings" - }, - "x-ms-identifiers": [] - } - } - }, - "SkuMappings": { - "description": "SKU Mapping details.", - "type": "object", - "properties": { - "catalogPlanId": { - "type": "string", - "description": "Identifier of the CatalogPlan for the sku" - }, - "marketplaceSkuId": { - "type": "string", - "description": "Identifier for the sku" - }, - "marketplaceSkuVersions": { - "type": "array", - "description": "Array of SKU versions available", - "items": { - "type": "string" - } - } - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "PublisherNameParameter": { - "name": "publisherName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the publisher available within HCI cluster.", - "x-ms-parameter-location": "method" - }, - "OfferNameParameter": { - "name": "offerName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the offer available within HCI cluster.", - "x-ms-parameter-location": "method" - }, - "SkuNameParameter": { - "name": "skuName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the SKU available within HCI cluster.", - "x-ms-parameter-location": "method" - }, - "ODataExpandParameter": { - "name": "$expand", - "in": "query", - "description": "Specify $expand=content,contentVersion to populate additional fields related to the marketplace offer.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/updateRuns.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/updateRuns.json deleted file mode 100644 index ee9376a319ca..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/updateRuns.json +++ /dev/null @@ -1,461 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-12-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns": { - "get": { - "operationId": "UpdateRuns_List", - "description": "List all Update runs for a specified update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateRunList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List Update runs under cluster resource": { - "$ref": "./examples/ListUpdateRuns.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns/{updateRunName}": { - "delete": { - "operationId": "UpdateRuns_Delete", - "description": "Delete specified Update Run", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "#/parameters/UpdateRunNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "ACCEPTED", - "headers": { - "Azure-AsyncOperation": { - "description": "URL to query for status of the operation.", - "type": "string" - } - } - }, - "204": { - "description": "No Content" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Delete an Update": { - "$ref": "./examples/DeleteUpdateRuns.json" - } - } - }, - "put": { - "operationId": "UpdateRuns_Put", - "description": "Put Update runs for a specified update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "#/parameters/UpdateRunNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "updateRunsProperties", - "in": "body", - "description": "Properties of the updateRuns object", - "required": true, - "schema": { - "$ref": "#/definitions/UpdateRun" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateRun" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Update runs under cluster resource": { - "$ref": "./examples/PutUpdateRuns.json" - } - } - }, - "get": { - "operationId": "UpdateRuns_Get", - "description": "Get the Update run for a specified update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "#/parameters/UpdateRunNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateRun" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Update runs under cluster resource": { - "$ref": "./examples/GetUpdateRuns.json" - } - } - } - } - }, - "definitions": { - "UpdateRunList": { - "description": "List of Update runs", - "type": "object", - "properties": { - "value": { - "description": "List of Update runs", - "type": "array", - "items": { - "$ref": "#/definitions/UpdateRun" - } - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "UpdateRun": { - "description": "Details of an Update run", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "location": { - "type": "string", - "x-ms-mutability": [ - "read", - "create" - ], - "description": "The geo-location where the resource lives" - }, - "properties": { - "description": "Describes Update Run Properties.", - "$ref": "#/definitions/UpdateRunProperties", - "x-ms-client-flatten": true - } - } - }, - "UpdateRunProperties": { - "description": "Details of an Update run", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning state of the UpdateRuns proxy resource. Indicates the current lifecycle status of the update operation, such as whether it has been accepted, is in progress, or has completed.", - "type": "string", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "Accepted", - "Provisioning" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The update operation completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The update operation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The update operation was canceled before completion." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The update operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The update operation is currently being provisioned." - } - ] - }, - "readOnly": true - }, - "timeStarted": { - "description": "Timestamp of the update run was started.", - "type": "string", - "format": "date-time" - }, - "lastUpdatedTime": { - "description": "Timestamp of the most recently completed step in the update run.", - "type": "string", - "format": "date-time" - }, - "duration": { - "description": "Duration of the update run.", - "type": "string" - }, - "state": { - "description": "Represents the current state of the update run. Indicates whether the update is in progress, has completed successfully, failed, or is in an unknown state.", - "type": "string", - "enum": [ - "Unknown", - "Succeeded", - "InProgress", - "Failed" - ], - "x-ms-enum": { - "name": "updateRunPropertiesState", - "modelAsString": true, - "values": [ - { - "name": "Unknown", - "value": "Unknown", - "description": "The state of the update run is not known." - }, - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The update run completed successfully." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The update run is currently in progress." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The update run failed to complete successfully." - } - ] - } - }, - "progress": { - "description": "Progress representation of the update run steps.", - "$ref": "#/definitions/Step", - "x-ms-client-flatten": true - } - } - }, - "Step": { - "description": "Progress representation of the update run steps.", - "type": "object", - "properties": { - "name": { - "description": "Name of the step.", - "type": "string" - }, - "description": { - "description": "More detailed description of the step.", - "type": "string" - }, - "errorMessage": { - "description": "Error message, specified if the step is in a failed state.", - "type": "string" - }, - "status": { - "description": "Status of the step, bubbled up from the ECE action plan for installation attempts. Values are: 'Success', 'Error', 'InProgress', and 'Unknown status'.", - "type": "string" - }, - "startTimeUtc": { - "description": "When the step started, or empty if it has not started executing.", - "type": "string", - "format": "date-time" - }, - "endTimeUtc": { - "description": "When the step reached a terminal state.", - "type": "string", - "format": "date-time" - }, - "lastUpdatedTimeUtc": { - "description": "Completion time of this step or the last completed sub-step.", - "type": "string", - "format": "date-time" - }, - "expectedExecutionTime": { - "description": "Expected execution time of a given step. This is optionally authored in the update action plan and can be empty.", - "type": "string" - }, - "steps": { - "description": "Recursive model for child steps of this step.", - "type": "array", - "items": { - "$ref": "#/definitions/Step" - }, - "x-ms-identifiers": [ - "name" - ] - } - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "UpdateNameParameter": { - "name": "updateName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the Update", - "x-ms-parameter-location": "method" - }, - "UpdateRunNameParameter": { - "name": "updateRunName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the Update Run", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/updateSummaries.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/updateSummaries.json deleted file mode 100644 index 47cbc2766953..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/updateSummaries.json +++ /dev/null @@ -1,510 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-12-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSummaries": { - "get": { - "operationId": "UpdateSummaries_List", - "description": "List all Update summaries under the HCI cluster", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateSummariesList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Update summaries under cluster resource": { - "$ref": "./examples/ListUpdateSummaries.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSummaries/default": { - "delete": { - "operationId": "UpdateSummaries_Delete", - "description": "Delete Update Summaries", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "ACCEPTED", - "headers": { - "Azure-AsyncOperation": { - "description": "URL to query for status of the operation.", - "type": "string" - } - } - }, - "204": { - "description": "No Content" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Delete an Update": { - "$ref": "./examples/DeleteUpdateSummaries.json" - } - } - }, - "put": { - "operationId": "UpdateSummaries_Put", - "description": "Put Update summaries under the HCI cluster", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "updateLocationProperties", - "in": "body", - "description": "Properties of the UpdateSummaries resource", - "required": true, - "schema": { - "$ref": "#/definitions/UpdateSummaries" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateSummaries" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Put Update summaries under cluster resource": { - "$ref": "./examples/PutUpdateSummaries.json" - } - } - }, - "get": { - "operationId": "UpdateSummaries_Get", - "description": "Get all Update summaries under the HCI cluster", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateSummaries" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Update summaries under cluster resource": { - "$ref": "./examples/GetUpdateSummaries.json" - } - } - } - } - }, - "definitions": { - "UpdateSummariesList": { - "description": "List of Update Summaries", - "type": "object", - "properties": { - "value": { - "description": "List of Update Summaries", - "type": "array", - "items": { - "$ref": "#/definitions/UpdateSummaries" - }, - "x-ms-identifiers": [] - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "UpdateSummaries": { - "description": "Get the update summaries for the cluster", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "location": { - "type": "string", - "x-ms-mutability": [ - "read", - "create" - ], - "description": "The geo-location where the resource lives" - }, - "properties": { - "description": "Update summaries properties", - "type": "object", - "$ref": "#/definitions/UpdateSummariesProperties", - "x-ms-client-flatten": true - } - } - }, - "UpdateSummariesProperties": { - "description": "Properties of Update summaries", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning state of the UpdateSummaries proxy resource. Indicates the current lifecycle status of the update summary operation, such as whether it has been accepted, is in progress, or has completed.", - "type": "string", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "Accepted", - "Provisioning" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The update summary operation completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The update summary operation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The update summary operation was canceled before completion." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The update summary operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The update summary operation is currently being provisioned." - } - ] - }, - "readOnly": true - }, - "oemFamily": { - "description": "OEM family name.", - "type": "string" - }, - "currentOemVersion": { - "description": "Current OEM Version.", - "type": "string" - }, - "hardwareModel": { - "description": "Name of the hardware model.", - "type": "string" - }, - "packageVersions": { - "description": "Current version of each updatable component.", - "type": "array", - "items": { - "$ref": "#/definitions/PackageVersionInfo" - }, - "x-ms-client-flatten": true, - "x-ms-identifiers": [ - "version" - ] - }, - "currentVersion": { - "description": "Current Solution Bundle version of the stamp.", - "type": "string" - }, - "currentSbeVersion": { - "description": "Current Sbe version of the stamp.", - "type": "string" - }, - "lastUpdated": { - "description": "Last time an update installation completed successfully.", - "type": "string", - "format": "date-time" - }, - "lastChecked": { - "description": "Last time the update service successfully checked for updates", - "type": "string", - "format": "date-time" - }, - "healthState": { - "description": "Overall health state for update-specific health checks.", - "type": "object", - "$ref": "#/definitions/HealthState", - "x-ms-client-flatten": true - }, - "healthCheckResult": { - "description": "An array of pre-check result objects.", - "type": "array", - "items": { - "$ref": "./hciCommon.json#/definitions/PrecheckResult" - }, - "x-ms-client-flatten": true, - "x-ms-identifiers": [ - "name" - ] - }, - "healthCheckDate": { - "description": "Last time the package-specific checks were run.", - "type": "string", - "format": "date-time" - }, - "state": { - "description": "Overall update state of the stamp. Indicates the current status of update deployment across the stamp, including preparation, application, and any issues encountered.", - "type": "string", - "enum": [ - "Unknown", - "AppliedSuccessfully", - "UpdateAvailable", - "UpdateInProgress", - "UpdateFailed", - "NeedsAttention", - "PreparationInProgress", - "PreparationFailed" - ], - "x-ms-enum": { - "name": "updateSummariesPropertiesState", - "modelAsString": true, - "values": [ - { - "name": "Unknown", - "value": "Unknown", - "description": "The update state is not known." - }, - { - "name": "AppliedSuccessfully", - "value": "AppliedSuccessfully", - "description": "Updates have been successfully applied to the stamp." - }, - { - "name": "UpdateAvailable", - "value": "UpdateAvailable", - "description": "Updates are available but have not yet been applied." - }, - { - "name": "UpdateInProgress", - "value": "UpdateInProgress", - "description": "Updates are currently being applied to the stamp." - }, - { - "name": "UpdateFailed", - "value": "UpdateFailed", - "description": "The update process failed." - }, - { - "name": "NeedsAttention", - "value": "NeedsAttention", - "description": "The update process requires user intervention or has encountered issues needing attention." - }, - { - "name": "PreparationInProgress", - "value": "PreparationInProgress", - "description": "Preparation for the update is currently in progress." - }, - { - "name": "PreparationFailed", - "value": "PreparationFailed", - "description": "Preparation for the update failed." - } - ] - } - } - } - }, - "PackageVersionInfo": { - "description": "Current version of each updatable component.", - "type": "object", - "properties": { - "packageType": { - "description": "Package type", - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - }, - "lastUpdated": { - "description": "Last time this component was updated.", - "type": "string", - "format": "date-time" - } - } - }, - "HealthState": { - "type": "string", - "description": "Represents the health status of a system component or operation. Indicates whether the component is functioning correctly, has warnings or errors, or is undergoing a process.", - "enum": [ - "Unknown", - "Success", - "Failure", - "Warning", - "Error", - "InProgress" - ], - "x-ms-enum": { - "name": "HealthState", - "modelAsString": true, - "values": [ - { - "name": "Unknown", - "value": "Unknown", - "description": "The health state is not known or cannot be determined." - }, - { - "name": "Success", - "value": "Success", - "description": "The component is healthy and operating as expected." - }, - { - "name": "Failure", - "value": "Failure", - "description": "The component has failed and is not functioning properly." - }, - { - "name": "Warning", - "value": "Warning", - "description": "The component has a warning that may require attention but is still operational." - }, - { - "name": "Error", - "value": "Error", - "description": "The component has encountered an error affecting its functionality." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The health evaluation or operation is currently in progress." - } - ] - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/updates.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/updates.json deleted file mode 100644 index 666d6d099df0..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/updates.json +++ /dev/null @@ -1,769 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "2025-12-01-preview", - "title": "AzureStackHCI", - "description": "Azure Stack HCI management service" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/apply": { - "post": { - "operationId": "Updates_Post", - "description": "Apply Update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "ACCEPTED", - "headers": { - "Azure-AsyncOperation": { - "description": "URL to query for status of the operation.", - "type": "string" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List available updates": { - "$ref": "./examples/PostUpdates.json" - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates": { - "get": { - "operationId": "Updates_List", - "description": "List all Updates", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/UpdateList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "List available updates": { - "$ref": "./examples/ListUpdates.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}": { - "delete": { - "operationId": "Updates_Delete", - "description": "Delete specified Update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "ACCEPTED", - "headers": { - "Azure-AsyncOperation": { - "description": "URL to query for status of the operation.", - "type": "string" - } - } - }, - "204": { - "description": "No Content" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - }, - "x-ms-examples": { - "Delete an Update": { - "$ref": "./examples/DeleteUpdates.json" - } - } - }, - "put": { - "operationId": "Updates_Put", - "description": "Put specified Update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "name": "updateProperties", - "in": "body", - "description": "Properties of the Updates object", - "required": true, - "schema": { - "$ref": "#/definitions/Update" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Update" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Put a specific update": { - "$ref": "./examples/PutUpdates.json" - } - } - }, - "get": { - "operationId": "Updates_Get", - "description": "Get specified Update", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/ClusterNameParameter" - }, - { - "$ref": "#/parameters/UpdateNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/Update" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "Get a specific update": { - "$ref": "./examples/GetUpdates.json" - } - } - } - } - }, - "definitions": { - "UpdateList": { - "description": "List of Updates", - "type": "object", - "properties": { - "value": { - "description": "List of Updates", - "type": "array", - "items": { - "$ref": "#/definitions/Update" - } - }, - "nextLink": { - "description": "Link to the next set of results.", - "type": "string", - "readOnly": true - } - } - }, - "UpdatePrerequisite": { - "description": "If update State is HasPrerequisite, this property contains an array of objects describing prerequisite updates before installing this update. Otherwise, it is empty.", - "type": "object", - "properties": { - "updateType": { - "description": "Updatable component type.", - "type": "string" - }, - "version": { - "description": "Version of the prerequisite.", - "type": "string" - }, - "packageName": { - "description": "Friendly name of the prerequisite.", - "type": "string" - } - } - }, - "Update": { - "description": "Update details", - "type": "object", - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "location": { - "type": "string", - "x-ms-mutability": [ - "read", - "create" - ], - "description": "The geo-location where the resource lives" - }, - "properties": { - "description": "Update properties", - "type": "object", - "$ref": "#/definitions/UpdateProperties", - "x-ms-client-flatten": true - } - } - }, - "UpdateProperties": { - "description": "Details of a singular Update in HCI Cluster", - "type": "object", - "properties": { - "provisioningState": { - "description": "Provisioning state of the Updates proxy resource. Indicates the current lifecycle status of the update operation, such as whether it has been accepted, is in progress, or has completed.", - "type": "string", - "enum": [ - "Succeeded", - "Failed", - "Canceled", - "Accepted", - "Provisioning" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true, - "values": [ - { - "name": "Succeeded", - "value": "Succeeded", - "description": "The update operation completed successfully." - }, - { - "name": "Failed", - "value": "Failed", - "description": "The update operation failed." - }, - { - "name": "Canceled", - "value": "Canceled", - "description": "The update operation was canceled before completion." - }, - { - "name": "Accepted", - "value": "Accepted", - "description": "The update operation has been accepted and is pending execution." - }, - { - "name": "Provisioning", - "value": "Provisioning", - "description": "The update operation is currently being provisioned." - } - ] - }, - "readOnly": true - }, - "installedDate": { - "description": "Date that the update was installed.", - "type": "string", - "format": "date-time" - }, - "description": { - "description": "Description of the update.", - "type": "string" - }, - "minSbeVersionRequired": { - "description": "Minimum Sbe Version of the update.", - "type": "string" - }, - "state": { - "description": "Represents the current state of the update as it relates to this stamp. This includes phases such as preparation, installation, scanning, and error handling, providing insight into the update's progress and any issues encountered.", - "type": "string", - "enum": [ - "HasPrerequisite", - "Obsolete", - "Ready", - "NotApplicableBecauseAnotherUpdateIsInProgress", - "Preparing", - "Installing", - "Installed", - "PreparationFailed", - "InstallationFailed", - "Invalid", - "Recalled", - "Downloading", - "DownloadFailed", - "HealthChecking", - "HealthCheckFailed", - "ReadyToInstall", - "ScanInProgress", - "ScanFailed", - "AdditionalContentRequired" - ], - "x-ms-enum": { - "name": "state", - "modelAsString": true, - "values": [ - { - "name": "HasPrerequisite", - "value": "HasPrerequisite", - "description": "The update has prerequisites that must be fulfilled before it can proceed." - }, - { - "name": "Obsolete", - "value": "Obsolete", - "description": "The update is obsolete and no longer applicable." - }, - { - "name": "Ready", - "value": "Ready", - "description": "The update is ready to be installed." - }, - { - "name": "NotApplicableBecauseAnotherUpdateIsInProgress", - "value": "NotApplicableBecauseAnotherUpdateIsInProgress", - "description": "The update cannot be applied because another update is currently in progress." - }, - { - "name": "Preparing", - "value": "Preparing", - "description": "The update is currently in the preparation phase." - }, - { - "name": "Installing", - "value": "Installing", - "description": "The update is currently being installed." - }, - { - "name": "Installed", - "value": "Installed", - "description": "The update has been successfully installed." - }, - { - "name": "PreparationFailed", - "value": "PreparationFailed", - "description": "The update preparation phase failed." - }, - { - "name": "InstallationFailed", - "value": "InstallationFailed", - "description": "The update installation failed." - }, - { - "name": "Invalid", - "value": "Invalid", - "description": "The update is invalid and cannot be applied." - }, - { - "name": "Recalled", - "value": "Recalled", - "description": "The update has been recalled and should not be applied." - }, - { - "name": "Downloading", - "value": "Downloading", - "description": "The update is currently being downloaded." - }, - { - "name": "DownloadFailed", - "value": "DownloadFailed", - "description": "The update download failed." - }, - { - "name": "HealthChecking", - "value": "HealthChecking", - "description": "A health check is being performed before applying the update." - }, - { - "name": "HealthCheckFailed", - "value": "HealthCheckFailed", - "description": "The health check failed, preventing the update from proceeding." - }, - { - "name": "ReadyToInstall", - "value": "ReadyToInstall", - "description": "The update is ready to be installed after successful preparation and checks." - }, - { - "name": "ScanInProgress", - "value": "ScanInProgress", - "description": "The system is scanning for updates." - }, - { - "name": "ScanFailed", - "value": "ScanFailed", - "description": "The scan for updates failed." - }, - { - "name": "AdditionalContentRequired", - "value": "AdditionalContentRequired", - "description": "Additional content is required to proceed with the update." - } - ] - } - }, - "prerequisites": { - "description": "If update State is HasPrerequisite, this property contains an array of objects describing prerequisite updates before installing this update. Otherwise, it is empty.", - "type": "array", - "items": { - "$ref": "#/definitions/UpdatePrerequisite" - }, - "x-ms-identifiers": [ - "packageName" - ] - }, - "componentVersions": { - "description": "An array of component versions for a Solution Bundle update, and an empty array otherwise. ", - "type": "array", - "items": { - "$ref": "#/definitions/PackageVersionInfo" - }, - "x-ms-client-flatten": true, - "x-ms-identifiers": [ - "version" - ] - }, - "rebootRequired": { - "type": "object", - "$ref": "#/definitions/RebootRequirement", - "x-ms-client-flatten": true - }, - "healthState": { - "description": "Overall health state for update-specific health checks.", - "type": "object", - "$ref": "#/definitions/HealthState", - "x-ms-client-flatten": true - }, - "healthCheckResult": { - "description": "An array of PrecheckResult objects.", - "type": "array", - "items": { - "$ref": "./hciCommon.json#/definitions/PrecheckResult" - }, - "x-ms-client-flatten": true - }, - "healthCheckDate": { - "description": "Last time the package-specific checks were run.", - "type": "string", - "format": "date-time" - }, - "packagePath": { - "description": "Path where the update package is available.", - "type": "string" - }, - "packageSizeInMb": { - "description": "Size of the package. This value is a combination of the size from update metadata and size of the payload that results from the live scan operation for OS update content.", - "type": "number" - }, - "displayName": { - "description": "Display name of the Update", - "type": "string" - }, - "version": { - "description": "Version of the update.", - "type": "string" - }, - "publisher": { - "description": "Publisher of the update package.", - "type": "string" - }, - "releaseLink": { - "description": "Link to release notes for the update.", - "type": "string" - }, - "availabilityType": { - "description": "Indicates how the update content is made available for download. This determines whether the update is sourced locally, from an online repository, or requires user notification.", - "type": "string", - "enum": [ - "Local", - "Online", - "Notify" - ], - "x-ms-enum": { - "name": "availabilityType", - "modelAsString": true, - "values": [ - { - "name": "Local", - "value": "Local", - "description": "The update content is available locally within the environment." - }, - { - "name": "Online", - "value": "Online", - "description": "The update content is available from an online source." - }, - { - "name": "Notify", - "value": "Notify", - "description": "The system will notify the user when update content becomes available." - } - ] - } - }, - "packageType": { - "description": "Customer-visible type of the update.", - "type": "string" - }, - "additionalProperties": { - "description": "Extensible KV pairs serialized as a string. This is currently used to report the stamp OEM family and hardware model information when an update is flagged as Invalid for the stamp based on OEM type.", - "type": "string" - }, - "updateStateProperties": { - "description": "Additional information regarding the state of the update. See definition of UpdateStateProperties type below for more details on this property.", - "type": "object", - "$ref": "#/definitions/UpdateStateProperties", - "x-ms-client-flatten": true - } - } - }, - "UpdateStateProperties": { - "description": "Additional information regarding the state of the update. See definition of UpdateStateProperties type below for more details on this property.", - "type": "object", - "properties": { - "progressPercentage": { - "description": "Progress percentage of ongoing operation. Currently this property is only valid when the update is in the Downloading state, where it maps to how much of the update content has been downloaded.", - "type": "number" - }, - "notifyMessage": { - "description": "Brief message with instructions for updates of AvailabilityType Notify.", - "type": "string" - } - } - }, - "PackageVersionInfo": { - "description": "Current version of each updatable component.", - "type": "object", - "properties": { - "packageType": { - "description": "Package type", - "type": "string" - }, - "version": { - "description": "Package version", - "type": "string" - }, - "lastUpdated": { - "description": "Last time this component was updated.", - "type": "string", - "format": "date-time" - } - } - }, - "RebootRequirement": { - "type": "string", - "description": "Indicates whether a reboot is required after the update or operation. Helps determine if a system restart is necessary to complete the process.", - "enum": [ - "Unknown", - "True", - "False" - ], - "x-ms-enum": { - "name": "RebootRequirement", - "modelAsString": true, - "values": [ - { - "name": "Unknown", - "value": "Unknown", - "description": "It is not known whether a reboot is required." - }, - { - "name": "True", - "value": "True", - "description": "A reboot is required to complete the operation." - }, - { - "name": "False", - "value": "False", - "description": "No reboot is required after the operation." - } - ] - } - }, - "HealthState": { - "type": "string", - "description": "Overall health state for update-specific health checks. Indicates whether the system is functioning correctly, has warnings or errors, or is undergoing a health evaluation.", - "enum": [ - "Unknown", - "Success", - "Failure", - "Warning", - "Error", - "InProgress" - ], - "x-ms-enum": { - "name": "HealthState", - "modelAsString": true, - "values": [ - { - "name": "Unknown", - "value": "Unknown", - "description": "The health state is not known or cannot be determined." - }, - { - "name": "Success", - "value": "Success", - "description": "The health check completed successfully and the system is healthy." - }, - { - "name": "Failure", - "value": "Failure", - "description": "The health check failed, indicating a critical issue." - }, - { - "name": "Warning", - "value": "Warning", - "description": "The health check detected a non-critical issue that may require attention." - }, - { - "name": "Error", - "value": "Error", - "description": "An error occurred during the health check process." - }, - { - "name": "InProgress", - "value": "InProgress", - "description": "The health check is currently in progress." - } - ] - } - } - }, - "parameters": { - "ClusterNameParameter": { - "name": "clusterName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the cluster.", - "x-ms-parameter-location": "method" - }, - "UpdateNameParameter": { - "name": "updateName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the Update", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/validatedSolutionRecipes.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/validatedSolutionRecipes.json deleted file mode 100644 index 80e28248b825..000000000000 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/validatedSolutionRecipes.json +++ /dev/null @@ -1,396 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Microsoft.AzureStackHCI", - "version": "2025-12-01-preview", - "description": "Azure Stack HCI service" - }, - "schemes": [ - "https" - ], - "host": "management.azure.com", - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "description": "Microsoft Entra ID OAuth 2.0 Flow.", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "tags": [ - { - "name": "ValidatedSolutionRecipes" - } - ], - "paths": { - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/validatedSolutionRecipes": { - "get": { - "operationId": "ValidatedSolutionRecipes_ListBySubscriptionLocationResource", - "tags": [ - "ValidatedSolutionRecipes" - ], - "description": "List all validated solution recipes.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/ValidatedSolutionRecipeListResult" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "ValidatedSolutionRecipes_ListBySubscriptionLocationResource": { - "$ref": "./examples/ValidatedSolutionRecipes_ListBySubscriptionLocationResource.json" - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzureStackHCI/locations/{location}/validatedSolutionRecipes/{validatedSolutionRecipeName}": { - "get": { - "operationId": "ValidatedSolutionRecipes_Get", - "tags": [ - "ValidatedSolutionRecipes" - ], - "description": "Get a validated solution recipe.", - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" - }, - { - "name": "validatedSolutionRecipeName", - "in": "path", - "description": "The name of the ValidatedSolutionRecipe", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9-.]{3,50}$" - } - ], - "responses": { - "200": { - "description": "Azure operation completed successfully.", - "schema": { - "$ref": "#/definitions/ValidatedSolutionRecipe" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "ValidatedSolutionRecipes_Get": { - "$ref": "./examples/ValidatedSolutionRecipes_Get.json" - } - } - } - } - }, - "definitions": { - "ValidatedSolutionRecipe": { - "type": "object", - "description": "Represents a validated solution recipe resource.", - "properties": { - "properties": { - "$ref": "#/definitions/ValidatedSolutionRecipeProperties", - "description": "The resource-specific properties for this resource." - } - }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" - } - ] - }, - "ValidatedSolutionRecipeCapabilities": { - "type": "object", - "description": "Represents capabilities available in a validated solution recipe.", - "properties": { - "clusterCapabilities": { - "type": "array", - "description": "Represents the cluster capabilities.", - "items": { - "$ref": "#/definitions/ValidatedSolutionRecipeCapability" - }, - "x-ms-identifiers": [] - }, - "nodeCapabilities": { - "type": "array", - "description": "Represents the node capabilities.", - "items": { - "$ref": "#/definitions/ValidatedSolutionRecipeCapability" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "clusterCapabilities", - "nodeCapabilities" - ] - }, - "ValidatedSolutionRecipeCapability": { - "type": "object", - "description": "Represents capability available in a validated solution recipe.", - "properties": { - "capabilityName": { - "type": "string", - "description": "Represents the capability name." - } - }, - "required": [ - "capabilityName" - ] - }, - "ValidatedSolutionRecipeComponent": { - "type": "object", - "description": "Represents component available in a validated solution recipe.", - "properties": { - "name": { - "type": "string", - "description": "Represents the component's name." - }, - "type": { - "type": "string", - "description": "Represents the component's type." - }, - "requiredVersion": { - "type": "string", - "description": "Represents the component's required version." - }, - "installOrder": { - "type": "integer", - "format": "int64", - "description": "Represents the component's install order." - }, - "tags": { - "type": "array", - "description": "Represents the component's tags.", - "items": { - "type": "string" - } - }, - "payloads": { - "type": "array", - "description": "Represents the component's payloads.", - "items": { - "$ref": "#/definitions/ValidatedSolutionRecipeComponentPayload" - }, - "x-ms-identifiers": [] - }, - "metadata": { - "$ref": "#/definitions/ValidatedSolutionRecipeComponentMetadata", - "description": "Represents the component's metadata." - } - }, - "required": [ - "name", - "type", - "tags" - ] - }, - "ValidatedSolutionRecipeComponentMetadata": { - "type": "object", - "description": "Represents metadata associated with a component available in a validated solution recipe.", - "properties": { - "extensionType": { - "type": "string", - "description": "Represents the type of extension." - }, - "publisher": { - "type": "string", - "description": "Represents the publisher of the extension." - }, - "enableAutomaticUpgrade": { - "type": "boolean", - "description": "Indicates whether automatic upgrades of the extension are enabled." - }, - "lcmUpdate": { - "type": "boolean", - "description": "Indicates whether the LCM (Lifecycle Management) update of the extension is enabled." - }, - "catalog": { - "type": "string", - "description": "Specifies the catalog to which the extension belongs." - }, - "ring": { - "type": "string", - "description": "Specifies the ring to which the extension belongs, internally used by component." - }, - "releaseTrain": { - "type": "string", - "description": "Specifies the release train to which given component belongs." - }, - "link": { - "type": "string", - "description": "Specifies the link associated with the extension." - }, - "name": { - "type": "string", - "description": "Specifies the name of the extension." - }, - "expectedHash": { - "type": "string", - "description": "Specifies the expected hash of the extension." - }, - "previewSource": { - "type": "string", - "description": "Specifies the preview source of the extension." - } - } - }, - "ValidatedSolutionRecipeComponentPayload": { - "type": "object", - "description": "Represents payloads associated with a component available in a validated solution recipe.", - "properties": { - "identifier": { - "type": "string", - "description": "Represents the unique identifier of the payload used to query the URL." - }, - "hash": { - "type": "string", - "description": "Represents the cryptographic hash of the payload, ensuring data integrity." - }, - "fileName": { - "type": "string", - "description": "Represents the name of the file associated with the payload." - }, - "url": { - "type": "string", - "description": "Represents the URL from which the payload can be downloaded." - } - }, - "required": [ - "identifier", - "hash", - "fileName", - "url" - ] - }, - "ValidatedSolutionRecipeContent": { - "type": "object", - "description": "Represents contents of a validated solution recipe resource.", - "properties": { - "info": { - "$ref": "#/definitions/ValidatedSolutionRecipeInfo", - "description": "Represents information about a validated solution recipe." - }, - "capabilities": { - "$ref": "#/definitions/ValidatedSolutionRecipeCapabilities", - "description": "Represents capabilities available in a validated solution recipe." - }, - "components": { - "type": "array", - "description": "Represents components available in a validated solution recipe.", - "items": { - "$ref": "#/definitions/ValidatedSolutionRecipeComponent" - }, - "x-ms-identifiers": [] - } - }, - "required": [ - "info", - "components" - ] - }, - "ValidatedSolutionRecipeInfo": { - "type": "object", - "description": "Represents information about a validated solution recipe.", - "properties": { - "solutionType": { - "type": "string", - "description": "Represents the solution type for which this validated solution recipe is applicable." - }, - "version": { - "type": "string", - "description": "Represents the version for which this validated solution recipe is applicable." - } - }, - "required": [ - "solutionType", - "version" - ] - }, - "ValidatedSolutionRecipeListResult": { - "type": "object", - "description": "The response of a ValidatedSolutionRecipe list operation.", - "properties": { - "value": { - "type": "array", - "description": "The ValidatedSolutionRecipe items on this page", - "items": { - "$ref": "#/definitions/ValidatedSolutionRecipe" - } - }, - "nextLink": { - "type": "string", - "format": "uri", - "description": "The link to the next page of items" - } - }, - "required": [ - "value" - ] - }, - "ValidatedSolutionRecipeProperties": { - "type": "object", - "description": "Represents properties of a validated solution recipe resource.", - "properties": { - "recipeContent": { - "$ref": "#/definitions/ValidatedSolutionRecipeContent", - "description": "Represents contents of a validated solution recipe." - }, - "signature": { - "type": "string", - "description": "Represents the signature of the recipe, to be used for ensuring its integrity." - } - }, - "required": [ - "recipeContent" - ] - } - }, - "parameters": {} -} diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/readme.md b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/readme.md index ee17d2783271..14b25f8157d3 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/readme.md +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/readme.md @@ -150,6 +150,110 @@ suppressions: - updateRuns.json - updates.json - updateSummaries.json + + - code: PutResponseCodes + from: hci.json + reason: already used in GA api version, fixing it will cause breaking change + where: + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}"].put + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}"].put + + - code: ProvisioningStateSpecifiedForLROPut + from: hci.json + reason: already working without the properties section, adding it will break polymorphism + where: + - $.paths["/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}"].put + - $.paths["/{resourceUri}/providers/Microsoft.AzureStackHCI/edgeDevices/{edgeDeviceName}/jobs/{jobsName}"].put + + - code: ResourceNameRestriction + from: hci.json + reason: Resource name parameters didn't have a pattern initially, adding the constraint now will cause a breaking change + where: $.paths[?(@property.match(/clusters\/\{clusterName\}/))] + + - code: DeleteResponseCodes + from: hci.json + reason: already used in GA api version, fixing it will cause breaking change + where: + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}"].delete + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}"].delete + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions/{extensionName}"].delete + + - code: ConsistentPatchProperties + from: hci.json + where: + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}"].patch.parameters[5]["schema"] + reason: already used in GA api version, fixing it will cause breaking change + + - code: LroLocationHeader + from: hci.json + reason: already used in GA api version, fixing it will cause breaking change + where: + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}"].delete.responses["202"].headers + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions/{extensionName}"].patch.responses["202"].headers + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/extensions/{extensionName}/upgrade"].post.responses["202"].headers + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSummaries/default"].delete.responses["202"].headers + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}"].delete.responses["202"].headers + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns/{updateRunName}"].delete.responses["202"].headers + + - code: PostResponseCodes + from: hci.json + where: + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/arcSettings/{arcSettingName}/initializeDisableProcess"].post + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/apply"].post + reason: already used in GA api version, fixing it will cause breaking change + + - code: ParametersInPointGet + from: hci.json + reason: already used in GA api version, fixing it will cause a breaking change + where: + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}"].get.parameters + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/publishers/{publisherName}/offers/{offerName}/skus/{skuName}"].get.parameters + + - code: PutResponseCodes + from: hci.json + reason: already used in GA api version, fixing it will cause breaking change + where: + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSummaries/default"].put + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}"].put + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns/{updateRunName}"].put + + - code: DeleteResponseCodes + from: hci.json + reason: already used in GA api version, fixing it will cause breaking change + where: + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSummaries/default"].delete + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}"].delete + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns/{updateRunName}"].delete + + - code: RequestSchemaForTrackedResourcesMustHaveTags + from: hci.json + reason: these are not tracked resources, so tags are not needed + where: + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updateSummaries/default"].put + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}"].put + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureStackHCI/clusters/{clusterName}/updates/{updateName}/updateRuns/{updateRunName}"].put + + - code: TrackedResourcePatchOperation + from: hci.json + reason: these are not tracked resources, so no tags and corresponding patch operation is needed + where: + - $.definitions.UpdateSummaries + - $.definitions.Update + - $.definitions.UpdateRun + + - code: DefinitionsPropertiesNamesCamelCase + from: hci.json + reason: We have a dependency on other team which is already using these values, changing it will break backward compatibility + where: + - $.definitions.QosPolicyOverrides.properties.priorityValue8021Action_Cluster + - $.definitions.QosPolicyOverrides.properties.priorityValue8021Action_SMB + - $.definitions.QosPolicyOverrides.properties.bandwidthPercentage_SMB + + - code: AvoidAdditionalProperties + from: hci.json + reason: already used in GA api version, fixing it will cause breaking change + where: + - $.definitions.UpdateProperties.properties - code: ConsistentPatchProperties reason: already used in GA api version, fixing it will cause breaking change @@ -245,21 +349,6 @@ These settings apply only when `--tag=package-preview-2025-12-01-preview` is spe ```yaml $(tag) == 'package-preview-2025-12-01-preview' input-file: - - preview/2025-12-01-preview/arcSettings.json - - preview/2025-12-01-preview/clusters.json - - preview/2025-12-01-preview/deploymentSettings.json - - preview/2025-12-01-preview/edgeDeviceJobs.json - - preview/2025-12-01-preview/edgeDevices.json - - preview/2025-12-01-preview/extensions.json - - preview/2025-12-01-preview/hciCommon.json - - preview/2025-12-01-preview/offers.json - - preview/2025-12-01-preview/publishers.json - - preview/2025-12-01-preview/securitySettings.json - - preview/2025-12-01-preview/skus.json - - preview/2025-12-01-preview/updateRuns.json - - preview/2025-12-01-preview/updates.json - - preview/2025-12-01-preview/updateSummaries.json - - preview/2025-12-01-preview/validatedSolutionRecipes.json - preview/2025-12-01-preview/hci.json ``` @@ -269,21 +358,6 @@ These settings apply only when `--tag=package-preview-2025-11-01-preview` is spe ```yaml $(tag) == 'package-preview-2025-11-01-preview' input-file: - - preview/2025-11-01-preview/arcSettings.json - - preview/2025-11-01-preview/clusters.json - - preview/2025-11-01-preview/deploymentSettings.json - - preview/2025-11-01-preview/edgeDeviceJobs.json - - preview/2025-11-01-preview/edgeDevices.json - - preview/2025-11-01-preview/extensions.json - - preview/2025-11-01-preview/hciCommon.json - - preview/2025-11-01-preview/offers.json - - preview/2025-11-01-preview/publishers.json - - preview/2025-11-01-preview/securitySettings.json - - preview/2025-11-01-preview/skus.json - - preview/2025-11-01-preview/updateRuns.json - - preview/2025-11-01-preview/updates.json - - preview/2025-11-01-preview/updateSummaries.json - - preview/2025-11-01-preview/validatedSolutionRecipes.json - preview/2025-11-01-preview/hci.json ``` diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml index 425d05b4c287..51c2b039b924 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/tspconfig.yaml @@ -18,17 +18,19 @@ options: flavor: "azure" #!!!IMPORTANT!!! To ensure the emitter correctly produces SDK, this configuration is added by Azure SDK Team. Some configurations use placeholder values. For modifications, please refer to https://aka.ms/azsdk/specs/typespec-validation#sdktspconfigvalidation emitter-output-dir: "{output-dir}/{service-dir}/armazurestackhci" "@azure-tools/typespec-python": - emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-placeholder" #!!!IMPORTANT!!! To ensure the emitter correctly produces SDK, this configuration is added by Azure SDK Team. Some configurations use placeholder values. For modifications, please refer to https://aka.ms/azsdk/specs/typespec-validation#sdktspconfigvalidation - namespace: azure.mgmt.placeholder #!!!IMPORTANT!!! To ensure the emitter correctly produces SDK, this configuration is added by Azure SDK Team. Some configurations use placeholder values. For modifications, please refer to https://aka.ms/azsdk/specs/typespec-validation#sdktspconfigvalidation - generate-test: true #!!!IMPORTANT!!! To ensure the emitter correctly produces SDK, this configuration is added by Azure SDK Team. Some configurations use placeholder values. For modifications, please refer to https://aka.ms/azsdk/specs/typespec-validation#sdktspconfigvalidation - generate-sample: true #!!!IMPORTANT!!! To ensure the emitter correctly produces SDK, this configuration is added by Azure SDK Team. Some configurations use placeholder values. For modifications, please refer to https://aka.ms/azsdk/specs/typespec-validation#sdktspconfigvalidation - flavor: azure #!!!IMPORTANT!!! To ensure the emitter correctly produces SDK, this configuration is added by Azure SDK Team. Some configurations use placeholder values. For modifications, please refer to https://aka.ms/azsdk/specs/typespec-validation#sdktspconfigvalidation + service-dir: "sdk/azurestackhci" + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-azurestackhci" + namespace: azure.mgmt.azurestackhci + generate-test: true + generate-sample: true + flavor: azure "@azure-tools/typespec-java": flavor: azure namespace: com.azure.resourcemanager.azurestackhci service-dir: "sdk/azurestackhci" emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-azurestackhci" - service-name: "AzureStackHCI" + service-name: "Azure Stack Hci" + use-object-for-unknown: true "@azure-tools/typespec-csharp": flavor: azure namespace: "Azure.ResourceManager.StackHCI" diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/updateContents.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/updateContents.tsp index f77ee62fa759..0bc32048a9f0 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/updateContents.tsp +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/updateContents.tsp @@ -12,7 +12,6 @@ using TypeSpec.Versioning; @armProviderNamespace("Microsoft.AzureStackHCI") namespace Microsoft.AzureStackHCI; -@added(Versions.v2025_11_01_preview) @doc("Represents a update content.") @parentResource(SubscriptionLocationResource) model UpdateContent @@ -23,7 +22,6 @@ model UpdateContent >; } -@added(Versions.v2025_11_01_preview) @armResourceOperations interface UpdateContents { @doc("Gets content for an update.") @@ -37,7 +35,6 @@ interface UpdateContents { } #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" -@added(Versions.v2025_11_01_preview) @doc("Represents properties of a update content resource.") model UpdateContentProperties { @doc("Represents the payloads of a update content resource.") @@ -45,7 +42,6 @@ model UpdateContentProperties { updatePayloads: Array; } -@added(Versions.v2025_11_01_preview) @doc("Represents details of a specific update content payload.") model ContentPayload { @doc("Represents url of a update payload.") From 3fde27c10f35fdb038ae45126a23d27d8653ba77 Mon Sep 17 00:00:00 2001 From: Arthur Ma Date: Thu, 18 Dec 2025 15:01:37 +0800 Subject: [PATCH 060/117] Update client setting of Terraform (#39304) --- .../Microsoft.AzureTerraform.Management/client.tsp | 4 ++++ .../Microsoft.AzureTerraform.Management/tspconfig.yaml | 7 ++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/specification/terraform/Microsoft.AzureTerraform.Management/client.tsp b/specification/terraform/Microsoft.AzureTerraform.Management/client.tsp index 1575dd70009d..67327cbd78cd 100644 --- a/specification/terraform/Microsoft.AzureTerraform.Management/client.tsp +++ b/specification/terraform/Microsoft.AzureTerraform.Management/client.tsp @@ -5,6 +5,10 @@ using Azure.ClientGenerator.Core; using Azure.ResourceManager; using Microsoft.AzureTerraform; +@@clientName(Microsoft.AzureTerraform.Terraform, + "TerraformInterface", + "csharp" +); @@clientName(Type, "CommonExportType", "csharp"); @@clientName(BaseExportModel, "CommonExportProperties", "csharp"); @@clientName(BaseExportModel.fullProperties, diff --git a/specification/terraform/Microsoft.AzureTerraform.Management/tspconfig.yaml b/specification/terraform/Microsoft.AzureTerraform.Management/tspconfig.yaml index 26993a27de8a..844ba54abc27 100644 --- a/specification/terraform/Microsoft.AzureTerraform.Management/tspconfig.yaml +++ b/specification/terraform/Microsoft.AzureTerraform.Management/tspconfig.yaml @@ -10,12 +10,9 @@ options: emitter-output-dir: "{project-root}/.." azure-resource-provider-folder: "resource-manager" output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/export.json" - "@azure-tools/typespec-csharp": - emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - flavor: azure - clear-output-folder: true - model-namespace: false + "@azure-typespec/http-client-csharp-mgmt": namespace: "Azure.ResourceManager.Terraform" + emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" "@azure-tools/typespec-go": service-dir: "sdk/resourcemanager/terraform" emitter-output-dir: "{output-dir}/{service-dir}/armterraform" From f3ea0455b78a048b64fff58723307e039c551dd8 Mon Sep 17 00:00:00 2001 From: Nneka Okeke <149507727+NneOkeke@users.noreply.github.com> Date: Thu, 18 Dec 2025 14:41:21 -0500 Subject: [PATCH 061/117] update descriptions for execute create and delete (#39218) --- .../computeschedule/ComputeSchedule.Management/routes.tsp | 4 ++-- .../preview/2025-04-15-preview/computeschedule.json | 4 ++-- .../preview/2026-01-01-preview/computeschedule.json | 4 ++-- .../stable/2025-05-01/computeschedule.json | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/specification/computeschedule/ComputeSchedule.Management/routes.tsp b/specification/computeschedule/ComputeSchedule.Management/routes.tsp index 2ffc4cebbb1d..007951abd677 100644 --- a/specification/computeschedule/ComputeSchedule.Management/routes.tsp +++ b/specification/computeschedule/ComputeSchedule.Management/routes.tsp @@ -144,7 +144,7 @@ interface ScheduledActions { Parameters = LocationParameter >; - /** VirtualMachinesExecuteCreate: Execute create operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it. */ + /** [PRIVATE PREVIEW]: VirtualMachinesExecuteCreate: Execute create operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it. */ @added(Microsoft.ComputeSchedule.Versions.`2025-05-01`) virtualMachinesExecuteCreate is ArmProviderActionSync< Request = ExecuteCreateRequest, @@ -153,7 +153,7 @@ interface ScheduledActions { Parameters = LocationParameter >; - /** VirtualMachinesExecuteDelete: Execute delete operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it. */ + /** [PRIVATE PREVIEW]: VirtualMachinesExecuteDelete: Execute delete operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it. */ @added(Microsoft.ComputeSchedule.Versions.`2025-05-01`) virtualMachinesExecuteDelete is ArmProviderActionSync< Request = ExecuteDeleteRequest, diff --git a/specification/computeschedule/resource-manager/Microsoft.ComputeSchedule/preview/2025-04-15-preview/computeschedule.json b/specification/computeschedule/resource-manager/Microsoft.ComputeSchedule/preview/2025-04-15-preview/computeschedule.json index 55fb35e4b0f9..c175ccb76905 100644 --- a/specification/computeschedule/resource-manager/Microsoft.ComputeSchedule/preview/2025-04-15-preview/computeschedule.json +++ b/specification/computeschedule/resource-manager/Microsoft.ComputeSchedule/preview/2025-04-15-preview/computeschedule.json @@ -229,7 +229,7 @@ "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesExecuteCreate": { "post": { "operationId": "ScheduledActions_VirtualMachinesExecuteCreate", - "description": "VirtualMachinesExecuteCreate: Execute create operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", + "description": "[PRIVATE PREVIEW]: VirtualMachinesExecuteCreate: Execute create operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", "parameters": [ { "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" @@ -335,7 +335,7 @@ "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesExecuteDelete": { "post": { "operationId": "ScheduledActions_VirtualMachinesExecuteDelete", - "description": "VirtualMachinesExecuteDelete: Execute delete operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", + "description": "[PRIVATE PREVIEW]: VirtualMachinesExecuteDelete: Execute delete operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", "parameters": [ { "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" diff --git a/specification/computeschedule/resource-manager/Microsoft.ComputeSchedule/preview/2026-01-01-preview/computeschedule.json b/specification/computeschedule/resource-manager/Microsoft.ComputeSchedule/preview/2026-01-01-preview/computeschedule.json index 5af3d8438957..4b386ab512f0 100644 --- a/specification/computeschedule/resource-manager/Microsoft.ComputeSchedule/preview/2026-01-01-preview/computeschedule.json +++ b/specification/computeschedule/resource-manager/Microsoft.ComputeSchedule/preview/2026-01-01-preview/computeschedule.json @@ -223,7 +223,7 @@ "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesExecuteCreate": { "post": { "operationId": "ScheduledActions_VirtualMachinesExecuteCreate", - "description": "VirtualMachinesExecuteCreate: Execute create operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", + "description": "[PRIVATE PREVIEW]: VirtualMachinesExecuteCreate: Execute create operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", "parameters": [ { "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" @@ -323,7 +323,7 @@ "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesExecuteDelete": { "post": { "operationId": "ScheduledActions_VirtualMachinesExecuteDelete", - "description": "VirtualMachinesExecuteDelete: Execute delete operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", + "description": "[PRIVATE PREVIEW]: VirtualMachinesExecuteDelete: Execute delete operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", "parameters": [ { "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" diff --git a/specification/computeschedule/resource-manager/Microsoft.ComputeSchedule/stable/2025-05-01/computeschedule.json b/specification/computeschedule/resource-manager/Microsoft.ComputeSchedule/stable/2025-05-01/computeschedule.json index e39f579d2b72..d4e70c709a73 100644 --- a/specification/computeschedule/resource-manager/Microsoft.ComputeSchedule/stable/2025-05-01/computeschedule.json +++ b/specification/computeschedule/resource-manager/Microsoft.ComputeSchedule/stable/2025-05-01/computeschedule.json @@ -139,7 +139,7 @@ "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesExecuteCreate": { "post": { "operationId": "ScheduledActions_VirtualMachinesExecuteCreate", - "description": "VirtualMachinesExecuteCreate: Execute create operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", + "description": "[PRIVATE PREVIEW]: VirtualMachinesExecuteCreate: Execute create operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", "parameters": [ { "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" @@ -245,7 +245,7 @@ "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesExecuteDelete": { "post": { "operationId": "ScheduledActions_VirtualMachinesExecuteDelete", - "description": "VirtualMachinesExecuteDelete: Execute delete operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", + "description": "[PRIVATE PREVIEW]: VirtualMachinesExecuteDelete: Execute delete operation for a batch of virtual machines, this operation is triggered as soon as Computeschedule receives it.", "parameters": [ { "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" From bde57df8b11dd2428cb174fd9402752ab9f48e17 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Thu, 18 Dec 2025 13:15:18 -0800 Subject: [PATCH 062/117] [EngSys] npm update --before 2025-12-17 (#39336) --- .github/package-lock.json | 288 +++++++++++++++--------------- .github/shared/package-lock.json | 288 +++++++++++++++--------------- package-lock.json | 295 +++++++++++++++---------------- 3 files changed, 435 insertions(+), 436 deletions(-) diff --git a/.github/package-lock.json b/.github/package-lock.json index 5e61c528dc12..496a4cc156a5 100644 --- a/.github/package-lock.json +++ b/.github/package-lock.json @@ -1395,9 +1395,9 @@ "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.4.tgz", - "integrity": "sha512-PWU3Y92H4DD0bOqorEPp1Y0tbzwAurFmIYpjcObv5axGVOtcTlB0b2UKMd2echo08MgN7jO8WQZSSysvfisFSQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.5.tgz", + "integrity": "sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ==", "cpu": [ "arm" ], @@ -1409,9 +1409,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.4.tgz", - "integrity": "sha512-Gw0/DuVm3rGsqhMGYkSOXXIx20cC3kTlivZeuaGt4gEgILivykNyBWxeUV5Cf2tDA2nPLah26vq3emlRrWVbng==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.5.tgz", + "integrity": "sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw==", "cpu": [ "arm64" ], @@ -1423,9 +1423,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.4.tgz", - "integrity": "sha512-+w06QvXsgzKwdVg5qRLZpTHh1bigHZIqoIUPtiqh05ZiJVUQ6ymOxaPkXTvRPRLH88575ZCRSRM3PwIoNma01Q==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.5.tgz", + "integrity": "sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ==", "cpu": [ "arm64" ], @@ -1437,9 +1437,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.4.tgz", - "integrity": "sha512-EB4Na9G2GsrRNRNFPuxfwvDRDUwQEzJPpiK1vo2zMVhEeufZ1k7J1bKnT0JYDfnPC7RNZ2H5YNQhW6/p2QKATw==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.5.tgz", + "integrity": "sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA==", "cpu": [ "x64" ], @@ -1451,9 +1451,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.4.tgz", - "integrity": "sha512-bldA8XEqPcs6OYdknoTMaGhjytnwQ0NClSPpWpmufOuGPN5dDmvIa32FygC2gneKK4A1oSx86V1l55hyUWUYFQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.5.tgz", + "integrity": "sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw==", "cpu": [ "arm64" ], @@ -1465,9 +1465,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.4.tgz", - "integrity": "sha512-3T8GPjH6mixCd0YPn0bXtcuSXi1Lj+15Ujw2CEb7dd24j9thcKscCf88IV7n76WaAdorOzAgSSbuVRg4C8V8Qw==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.5.tgz", + "integrity": "sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ==", "cpu": [ "x64" ], @@ -1479,9 +1479,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.4.tgz", - "integrity": "sha512-UPMMNeC4LXW7ZSHxeP3Edv09aLsFUMaD1TSVW6n1CWMECnUIJMFFB7+XC2lZTdPtvB36tYC0cJWc86mzSsaviw==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.5.tgz", + "integrity": "sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA==", "cpu": [ "arm" ], @@ -1493,9 +1493,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.4.tgz", - "integrity": "sha512-H8uwlV0otHs5Q7WAMSoyvjV9DJPiy5nJ/xnHolY0QptLPjaSsuX7tw+SPIfiYH6cnVx3fe4EWFafo6gH6ekZKA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.5.tgz", + "integrity": "sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==", "cpu": [ "arm" ], @@ -1507,9 +1507,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.4.tgz", - "integrity": "sha512-BLRwSRwICXz0TXkbIbqJ1ibK+/dSBpTJqDClF61GWIrxTXZWQE78ROeIhgl5MjVs4B4gSLPCFeD4xML9vbzvCQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.5.tgz", + "integrity": "sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg==", "cpu": [ "arm64" ], @@ -1521,9 +1521,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.4.tgz", - "integrity": "sha512-6bySEjOTbmVcPJAywjpGLckK793A0TJWSbIa0sVwtVGfe/Nz6gOWHOwkshUIAp9j7wg2WKcA4Snu7Y1nUZyQew==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.5.tgz", + "integrity": "sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g==", "cpu": [ "arm64" ], @@ -1535,9 +1535,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.4.tgz", - "integrity": "sha512-U0ow3bXYJZ5MIbchVusxEycBw7bO6C2u5UvD31i5IMTrnt2p4Fh4ZbHSdc/31TScIJQYHwxbj05BpevB3201ug==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.5.tgz", + "integrity": "sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA==", "cpu": [ "loong64" ], @@ -1549,9 +1549,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.4.tgz", - "integrity": "sha512-iujDk07ZNwGLVn0YIWM80SFN039bHZHCdCCuX9nyx3Jsa2d9V/0Y32F+YadzwbvDxhSeVo9zefkoPnXEImnM5w==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.5.tgz", + "integrity": "sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q==", "cpu": [ "ppc64" ], @@ -1563,9 +1563,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.4.tgz", - "integrity": "sha512-MUtAktiOUSu+AXBpx1fkuG/Bi5rhlorGs3lw5QeJ2X3ziEGAq7vFNdWVde6XGaVqi0LGSvugwjoxSNJfHFTC0g==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.5.tgz", + "integrity": "sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ==", "cpu": [ "riscv64" ], @@ -1577,9 +1577,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.4.tgz", - "integrity": "sha512-btm35eAbDfPtcFEgaXCI5l3c2WXyzwiE8pArhd66SDtoLWmgK5/M7CUxmUglkwtniPzwvWioBKKl6IXLbPf2sQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.5.tgz", + "integrity": "sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w==", "cpu": [ "riscv64" ], @@ -1591,9 +1591,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.4.tgz", - "integrity": "sha512-uJlhKE9ccUTCUlK+HUz/80cVtx2RayadC5ldDrrDUFaJK0SNb8/cCmC9RhBhIWuZ71Nqj4Uoa9+xljKWRogdhA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.5.tgz", + "integrity": "sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==", "cpu": [ "s390x" ], @@ -1605,9 +1605,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.4.tgz", - "integrity": "sha512-jjEMkzvASQBbzzlzf4os7nzSBd/cvPrpqXCUOqoeCh1dQ4BP3RZCJk8XBeik4MUln3m+8LeTJcY54C/u8wb3DQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.5.tgz", + "integrity": "sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw==", "cpu": [ "x64" ], @@ -1619,9 +1619,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.4.tgz", - "integrity": "sha512-lu90KG06NNH19shC5rBPkrh6mrTpq5kviFylPBXQVpdEu0yzb0mDgyxLr6XdcGdBIQTH/UAhDJnL+APZTBu1aQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.5.tgz", + "integrity": "sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg==", "cpu": [ "x64" ], @@ -1633,9 +1633,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.4.tgz", - "integrity": "sha512-dFDcmLwsUzhAm/dn0+dMOQZoONVYBtgik0VuY/d5IJUUb787L3Ko/ibvTvddqhb3RaB7vFEozYevHN4ox22R/w==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.5.tgz", + "integrity": "sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg==", "cpu": [ "arm64" ], @@ -1647,9 +1647,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.4.tgz", - "integrity": "sha512-WvUpUAWmUxZKtRnQWpRKnLW2DEO8HB/l8z6oFFMNuHndMzFTJEXzaYJ5ZAmzNw0L21QQJZsUQFt2oPf3ykAD/w==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.5.tgz", + "integrity": "sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA==", "cpu": [ "arm64" ], @@ -1661,9 +1661,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.4.tgz", - "integrity": "sha512-JGbeF2/FDU0x2OLySw/jgvkwWUo05BSiJK0dtuI4LyuXbz3wKiC1xHhLB1Tqm5VU6ZZDmAorj45r/IgWNWku5g==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.5.tgz", + "integrity": "sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w==", "cpu": [ "ia32" ], @@ -1675,9 +1675,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.4.tgz", - "integrity": "sha512-zuuC7AyxLWLubP+mlUwEyR8M1ixW1ERNPHJfXm8x7eQNP4Pzkd7hS3qBuKBR70VRiQ04Kw8FNfRMF5TNxuZq2g==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.5.tgz", + "integrity": "sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A==", "cpu": [ "x64" ], @@ -1689,9 +1689,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.4.tgz", - "integrity": "sha512-Sbx45u/Lbb5RyptSbX7/3deP+/lzEmZ0BTSHxwxN/IMOZDZf8S0AGo0hJD5n/LQssxb5Z3B4og4P2X6Dd8acCA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.5.tgz", + "integrity": "sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ==", "cpu": [ "x64" ], @@ -2048,14 +2048,14 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.15.tgz", - "integrity": "sha512-FUJ+1RkpTFW7rQITdgTi93qOCWJobWhBirEPCeXh2SW2wsTlFxy51apDz5gzG+ZEYt/THvWeNmhdAoS9DTwpCw==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.16.tgz", + "integrity": "sha512-2rNdjEIsPRzsdu6/9Eq0AYAzYdpP6Bx9cje9tL3FE5XzXRQF1fNU9pe/1yE8fCrS0HD+fBtt6gLPh6LI57tX7A==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.0.15", + "@vitest/utils": "4.0.16", "ast-v8-to-istanbul": "^0.3.8", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", @@ -2070,8 +2070,8 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "4.0.15", - "vitest": "4.0.15" + "@vitest/browser": "4.0.16", + "vitest": "4.0.16" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -2080,16 +2080,16 @@ } }, "node_modules/@vitest/expect": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.15.tgz", - "integrity": "sha512-Gfyva9/GxPAWXIWjyGDli9O+waHDC0Q0jaLdFP1qPAUUfo1FEXPXUfUkp3eZA0sSq340vPycSyOlYUeM15Ft1w==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.16.tgz", + "integrity": "sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==", "dev": true, "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.0.0", "@types/chai": "^5.2.2", - "@vitest/spy": "4.0.15", - "@vitest/utils": "4.0.15", + "@vitest/spy": "4.0.16", + "@vitest/utils": "4.0.16", "chai": "^6.2.1", "tinyrainbow": "^3.0.3" }, @@ -2098,13 +2098,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.15.tgz", - "integrity": "sha512-CZ28GLfOEIFkvCFngN8Sfx5h+Se0zN+h4B7yOsPVCcgtiO7t5jt9xQh2E1UkFep+eb9fjyMfuC5gBypwb07fvQ==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.16.tgz", + "integrity": "sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "4.0.15", + "@vitest/spy": "4.0.16", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, @@ -2125,9 +2125,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.15.tgz", - "integrity": "sha512-SWdqR8vEv83WtZcrfLNqlqeQXlQLh2iilO1Wk1gv4eiHKjEzvgHb2OVc3mIPyhZE6F+CtfYjNlDJwP5MN6Km7A==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.16.tgz", + "integrity": "sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==", "dev": true, "license": "MIT", "dependencies": { @@ -2138,13 +2138,13 @@ } }, "node_modules/@vitest/runner": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.15.tgz", - "integrity": "sha512-+A+yMY8dGixUhHmNdPUxOh0la6uVzun86vAbuMT3hIDxMrAOmn5ILBHm8ajrqHE0t8R9T1dGnde1A5DTnmi3qw==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.16.tgz", + "integrity": "sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "4.0.15", + "@vitest/utils": "4.0.16", "pathe": "^2.0.3" }, "funding": { @@ -2152,13 +2152,13 @@ } }, "node_modules/@vitest/snapshot": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.15.tgz", - "integrity": "sha512-A7Ob8EdFZJIBjLjeO0DZF4lqR6U7Ydi5/5LIZ0xcI+23lYlsYJAfGn8PrIWTYdZQRNnSRlzhg0zyGu37mVdy5g==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.16.tgz", + "integrity": "sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.0.15", + "@vitest/pretty-format": "4.0.16", "magic-string": "^0.30.21", "pathe": "^2.0.3" }, @@ -2167,9 +2167,9 @@ } }, "node_modules/@vitest/spy": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.15.tgz", - "integrity": "sha512-+EIjOJmnY6mIfdXtE/bnozKEvTC4Uczg19yeZ2vtCz5Yyb0QQ31QWVQ8hswJ3Ysx/K2EqaNsVanjr//2+P3FHw==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.16.tgz", + "integrity": "sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==", "dev": true, "license": "MIT", "funding": { @@ -2177,13 +2177,13 @@ } }, "node_modules/@vitest/utils": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.15.tgz", - "integrity": "sha512-HXjPW2w5dxhTD0dLwtYHDnelK3j8sR8cWIaLxr22evTyY6q8pRCjZSmhRWVjBaOVXChQd6AwMzi9pucorXCPZA==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.16.tgz", + "integrity": "sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.0.15", + "@vitest/pretty-format": "4.0.16", "tinyrainbow": "^3.0.3" }, "funding": { @@ -2264,9 +2264,9 @@ } }, "node_modules/ast-v8-to-istanbul": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.8.tgz", - "integrity": "sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.9.tgz", + "integrity": "sha512-dSC6tJeOJxbZrPzPbv5mMd6CMiQ1ugaVXXPRad2fXUSsy1kstFn9XQWemV9VW7Y7kpxgQ/4WMoZfwdH8XSU48w==", "dev": true, "license": "MIT", "dependencies": { @@ -3383,9 +3383,9 @@ } }, "node_modules/rollup": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.4.tgz", - "integrity": "sha512-YpXaaArg0MvrnJpvduEDYIp7uGOqKXbH9NsHGQ6SxKCOsNAjZF018MmxefFUulVP2KLtiGw1UvZbr+/ekjvlDg==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.5.tgz", + "integrity": "sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3399,28 +3399,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.53.4", - "@rollup/rollup-android-arm64": "4.53.4", - "@rollup/rollup-darwin-arm64": "4.53.4", - "@rollup/rollup-darwin-x64": "4.53.4", - "@rollup/rollup-freebsd-arm64": "4.53.4", - "@rollup/rollup-freebsd-x64": "4.53.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.53.4", - "@rollup/rollup-linux-arm-musleabihf": "4.53.4", - "@rollup/rollup-linux-arm64-gnu": "4.53.4", - "@rollup/rollup-linux-arm64-musl": "4.53.4", - "@rollup/rollup-linux-loong64-gnu": "4.53.4", - "@rollup/rollup-linux-ppc64-gnu": "4.53.4", - "@rollup/rollup-linux-riscv64-gnu": "4.53.4", - "@rollup/rollup-linux-riscv64-musl": "4.53.4", - "@rollup/rollup-linux-s390x-gnu": "4.53.4", - "@rollup/rollup-linux-x64-gnu": "4.53.4", - "@rollup/rollup-linux-x64-musl": "4.53.4", - "@rollup/rollup-openharmony-arm64": "4.53.4", - "@rollup/rollup-win32-arm64-msvc": "4.53.4", - "@rollup/rollup-win32-ia32-msvc": "4.53.4", - "@rollup/rollup-win32-x64-gnu": "4.53.4", - "@rollup/rollup-win32-x64-msvc": "4.53.4", + "@rollup/rollup-android-arm-eabi": "4.53.5", + "@rollup/rollup-android-arm64": "4.53.5", + "@rollup/rollup-darwin-arm64": "4.53.5", + "@rollup/rollup-darwin-x64": "4.53.5", + "@rollup/rollup-freebsd-arm64": "4.53.5", + "@rollup/rollup-freebsd-x64": "4.53.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.5", + "@rollup/rollup-linux-arm-musleabihf": "4.53.5", + "@rollup/rollup-linux-arm64-gnu": "4.53.5", + "@rollup/rollup-linux-arm64-musl": "4.53.5", + "@rollup/rollup-linux-loong64-gnu": "4.53.5", + "@rollup/rollup-linux-ppc64-gnu": "4.53.5", + "@rollup/rollup-linux-riscv64-gnu": "4.53.5", + "@rollup/rollup-linux-riscv64-musl": "4.53.5", + "@rollup/rollup-linux-s390x-gnu": "4.53.5", + "@rollup/rollup-linux-x64-gnu": "4.53.5", + "@rollup/rollup-linux-x64-musl": "4.53.5", + "@rollup/rollup-openharmony-arm64": "4.53.5", + "@rollup/rollup-win32-arm64-msvc": "4.53.5", + "@rollup/rollup-win32-ia32-msvc": "4.53.5", + "@rollup/rollup-win32-x64-gnu": "4.53.5", + "@rollup/rollup-win32-x64-msvc": "4.53.5", "fsevents": "~2.3.2" } }, @@ -3765,20 +3765,20 @@ } }, "node_modules/vitest": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.15.tgz", - "integrity": "sha512-n1RxDp8UJm6N0IbJLQo+yzLZ2sQCDyl1o0LeugbPWf8+8Fttp29GghsQBjYJVmWq3gBFfe9Hs1spR44vovn2wA==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.16.tgz", + "integrity": "sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@vitest/expect": "4.0.15", - "@vitest/mocker": "4.0.15", - "@vitest/pretty-format": "4.0.15", - "@vitest/runner": "4.0.15", - "@vitest/snapshot": "4.0.15", - "@vitest/spy": "4.0.15", - "@vitest/utils": "4.0.15", + "@vitest/expect": "4.0.16", + "@vitest/mocker": "4.0.16", + "@vitest/pretty-format": "4.0.16", + "@vitest/runner": "4.0.16", + "@vitest/snapshot": "4.0.16", + "@vitest/spy": "4.0.16", + "@vitest/utils": "4.0.16", "es-module-lexer": "^1.7.0", "expect-type": "^1.2.2", "magic-string": "^0.30.21", @@ -3806,10 +3806,10 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.0.15", - "@vitest/browser-preview": "4.0.15", - "@vitest/browser-webdriverio": "4.0.15", - "@vitest/ui": "4.0.15", + "@vitest/browser-playwright": "4.0.16", + "@vitest/browser-preview": "4.0.16", + "@vitest/browser-webdriverio": "4.0.16", + "@vitest/ui": "4.0.16", "happy-dom": "*", "jsdom": "*" }, @@ -3907,9 +3907,9 @@ } }, "node_modules/zod": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.2.0.tgz", - "integrity": "sha512-Bd5fw9wlIhtqCCxotZgdTOMwGm1a0u75wARVEY9HMs1X17trvA/lMi4+MGK5EUfYkXVTbX8UDiDKW4OgzHVUZw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.2.1.tgz", + "integrity": "sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/.github/shared/package-lock.json b/.github/shared/package-lock.json index e2eab03dcdb2..faef10916062 100644 --- a/.github/shared/package-lock.json +++ b/.github/shared/package-lock.json @@ -812,9 +812,9 @@ "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.4.tgz", - "integrity": "sha512-PWU3Y92H4DD0bOqorEPp1Y0tbzwAurFmIYpjcObv5axGVOtcTlB0b2UKMd2echo08MgN7jO8WQZSSysvfisFSQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.5.tgz", + "integrity": "sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ==", "cpu": [ "arm" ], @@ -826,9 +826,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.4.tgz", - "integrity": "sha512-Gw0/DuVm3rGsqhMGYkSOXXIx20cC3kTlivZeuaGt4gEgILivykNyBWxeUV5Cf2tDA2nPLah26vq3emlRrWVbng==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.5.tgz", + "integrity": "sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw==", "cpu": [ "arm64" ], @@ -840,9 +840,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.4.tgz", - "integrity": "sha512-+w06QvXsgzKwdVg5qRLZpTHh1bigHZIqoIUPtiqh05ZiJVUQ6ymOxaPkXTvRPRLH88575ZCRSRM3PwIoNma01Q==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.5.tgz", + "integrity": "sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ==", "cpu": [ "arm64" ], @@ -854,9 +854,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.4.tgz", - "integrity": "sha512-EB4Na9G2GsrRNRNFPuxfwvDRDUwQEzJPpiK1vo2zMVhEeufZ1k7J1bKnT0JYDfnPC7RNZ2H5YNQhW6/p2QKATw==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.5.tgz", + "integrity": "sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA==", "cpu": [ "x64" ], @@ -868,9 +868,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.4.tgz", - "integrity": "sha512-bldA8XEqPcs6OYdknoTMaGhjytnwQ0NClSPpWpmufOuGPN5dDmvIa32FygC2gneKK4A1oSx86V1l55hyUWUYFQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.5.tgz", + "integrity": "sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw==", "cpu": [ "arm64" ], @@ -882,9 +882,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.4.tgz", - "integrity": "sha512-3T8GPjH6mixCd0YPn0bXtcuSXi1Lj+15Ujw2CEb7dd24j9thcKscCf88IV7n76WaAdorOzAgSSbuVRg4C8V8Qw==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.5.tgz", + "integrity": "sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ==", "cpu": [ "x64" ], @@ -896,9 +896,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.4.tgz", - "integrity": "sha512-UPMMNeC4LXW7ZSHxeP3Edv09aLsFUMaD1TSVW6n1CWMECnUIJMFFB7+XC2lZTdPtvB36tYC0cJWc86mzSsaviw==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.5.tgz", + "integrity": "sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA==", "cpu": [ "arm" ], @@ -910,9 +910,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.4.tgz", - "integrity": "sha512-H8uwlV0otHs5Q7WAMSoyvjV9DJPiy5nJ/xnHolY0QptLPjaSsuX7tw+SPIfiYH6cnVx3fe4EWFafo6gH6ekZKA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.5.tgz", + "integrity": "sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==", "cpu": [ "arm" ], @@ -924,9 +924,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.4.tgz", - "integrity": "sha512-BLRwSRwICXz0TXkbIbqJ1ibK+/dSBpTJqDClF61GWIrxTXZWQE78ROeIhgl5MjVs4B4gSLPCFeD4xML9vbzvCQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.5.tgz", + "integrity": "sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg==", "cpu": [ "arm64" ], @@ -938,9 +938,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.4.tgz", - "integrity": "sha512-6bySEjOTbmVcPJAywjpGLckK793A0TJWSbIa0sVwtVGfe/Nz6gOWHOwkshUIAp9j7wg2WKcA4Snu7Y1nUZyQew==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.5.tgz", + "integrity": "sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g==", "cpu": [ "arm64" ], @@ -952,9 +952,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.4.tgz", - "integrity": "sha512-U0ow3bXYJZ5MIbchVusxEycBw7bO6C2u5UvD31i5IMTrnt2p4Fh4ZbHSdc/31TScIJQYHwxbj05BpevB3201ug==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.5.tgz", + "integrity": "sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA==", "cpu": [ "loong64" ], @@ -966,9 +966,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.4.tgz", - "integrity": "sha512-iujDk07ZNwGLVn0YIWM80SFN039bHZHCdCCuX9nyx3Jsa2d9V/0Y32F+YadzwbvDxhSeVo9zefkoPnXEImnM5w==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.5.tgz", + "integrity": "sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q==", "cpu": [ "ppc64" ], @@ -980,9 +980,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.4.tgz", - "integrity": "sha512-MUtAktiOUSu+AXBpx1fkuG/Bi5rhlorGs3lw5QeJ2X3ziEGAq7vFNdWVde6XGaVqi0LGSvugwjoxSNJfHFTC0g==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.5.tgz", + "integrity": "sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ==", "cpu": [ "riscv64" ], @@ -994,9 +994,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.4.tgz", - "integrity": "sha512-btm35eAbDfPtcFEgaXCI5l3c2WXyzwiE8pArhd66SDtoLWmgK5/M7CUxmUglkwtniPzwvWioBKKl6IXLbPf2sQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.5.tgz", + "integrity": "sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w==", "cpu": [ "riscv64" ], @@ -1008,9 +1008,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.4.tgz", - "integrity": "sha512-uJlhKE9ccUTCUlK+HUz/80cVtx2RayadC5ldDrrDUFaJK0SNb8/cCmC9RhBhIWuZ71Nqj4Uoa9+xljKWRogdhA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.5.tgz", + "integrity": "sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==", "cpu": [ "s390x" ], @@ -1022,9 +1022,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.4.tgz", - "integrity": "sha512-jjEMkzvASQBbzzlzf4os7nzSBd/cvPrpqXCUOqoeCh1dQ4BP3RZCJk8XBeik4MUln3m+8LeTJcY54C/u8wb3DQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.5.tgz", + "integrity": "sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw==", "cpu": [ "x64" ], @@ -1036,9 +1036,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.4.tgz", - "integrity": "sha512-lu90KG06NNH19shC5rBPkrh6mrTpq5kviFylPBXQVpdEu0yzb0mDgyxLr6XdcGdBIQTH/UAhDJnL+APZTBu1aQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.5.tgz", + "integrity": "sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg==", "cpu": [ "x64" ], @@ -1050,9 +1050,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.4.tgz", - "integrity": "sha512-dFDcmLwsUzhAm/dn0+dMOQZoONVYBtgik0VuY/d5IJUUb787L3Ko/ibvTvddqhb3RaB7vFEozYevHN4ox22R/w==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.5.tgz", + "integrity": "sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg==", "cpu": [ "arm64" ], @@ -1064,9 +1064,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.4.tgz", - "integrity": "sha512-WvUpUAWmUxZKtRnQWpRKnLW2DEO8HB/l8z6oFFMNuHndMzFTJEXzaYJ5ZAmzNw0L21QQJZsUQFt2oPf3ykAD/w==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.5.tgz", + "integrity": "sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA==", "cpu": [ "arm64" ], @@ -1078,9 +1078,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.4.tgz", - "integrity": "sha512-JGbeF2/FDU0x2OLySw/jgvkwWUo05BSiJK0dtuI4LyuXbz3wKiC1xHhLB1Tqm5VU6ZZDmAorj45r/IgWNWku5g==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.5.tgz", + "integrity": "sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w==", "cpu": [ "ia32" ], @@ -1092,9 +1092,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.4.tgz", - "integrity": "sha512-zuuC7AyxLWLubP+mlUwEyR8M1ixW1ERNPHJfXm8x7eQNP4Pzkd7hS3qBuKBR70VRiQ04Kw8FNfRMF5TNxuZq2g==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.5.tgz", + "integrity": "sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A==", "cpu": [ "x64" ], @@ -1106,9 +1106,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.4.tgz", - "integrity": "sha512-Sbx45u/Lbb5RyptSbX7/3deP+/lzEmZ0BTSHxwxN/IMOZDZf8S0AGo0hJD5n/LQssxb5Z3B4og4P2X6Dd8acCA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.5.tgz", + "integrity": "sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ==", "cpu": [ "x64" ], @@ -1465,14 +1465,14 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.15.tgz", - "integrity": "sha512-FUJ+1RkpTFW7rQITdgTi93qOCWJobWhBirEPCeXh2SW2wsTlFxy51apDz5gzG+ZEYt/THvWeNmhdAoS9DTwpCw==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.16.tgz", + "integrity": "sha512-2rNdjEIsPRzsdu6/9Eq0AYAzYdpP6Bx9cje9tL3FE5XzXRQF1fNU9pe/1yE8fCrS0HD+fBtt6gLPh6LI57tX7A==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.0.15", + "@vitest/utils": "4.0.16", "ast-v8-to-istanbul": "^0.3.8", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", @@ -1487,8 +1487,8 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "4.0.15", - "vitest": "4.0.15" + "@vitest/browser": "4.0.16", + "vitest": "4.0.16" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -1497,16 +1497,16 @@ } }, "node_modules/@vitest/expect": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.15.tgz", - "integrity": "sha512-Gfyva9/GxPAWXIWjyGDli9O+waHDC0Q0jaLdFP1qPAUUfo1FEXPXUfUkp3eZA0sSq340vPycSyOlYUeM15Ft1w==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.16.tgz", + "integrity": "sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==", "dev": true, "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.0.0", "@types/chai": "^5.2.2", - "@vitest/spy": "4.0.15", - "@vitest/utils": "4.0.15", + "@vitest/spy": "4.0.16", + "@vitest/utils": "4.0.16", "chai": "^6.2.1", "tinyrainbow": "^3.0.3" }, @@ -1515,13 +1515,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.15.tgz", - "integrity": "sha512-CZ28GLfOEIFkvCFngN8Sfx5h+Se0zN+h4B7yOsPVCcgtiO7t5jt9xQh2E1UkFep+eb9fjyMfuC5gBypwb07fvQ==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.16.tgz", + "integrity": "sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "4.0.15", + "@vitest/spy": "4.0.16", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, @@ -1542,9 +1542,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.15.tgz", - "integrity": "sha512-SWdqR8vEv83WtZcrfLNqlqeQXlQLh2iilO1Wk1gv4eiHKjEzvgHb2OVc3mIPyhZE6F+CtfYjNlDJwP5MN6Km7A==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.16.tgz", + "integrity": "sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==", "dev": true, "license": "MIT", "dependencies": { @@ -1555,13 +1555,13 @@ } }, "node_modules/@vitest/runner": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.15.tgz", - "integrity": "sha512-+A+yMY8dGixUhHmNdPUxOh0la6uVzun86vAbuMT3hIDxMrAOmn5ILBHm8ajrqHE0t8R9T1dGnde1A5DTnmi3qw==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.16.tgz", + "integrity": "sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "4.0.15", + "@vitest/utils": "4.0.16", "pathe": "^2.0.3" }, "funding": { @@ -1569,13 +1569,13 @@ } }, "node_modules/@vitest/snapshot": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.15.tgz", - "integrity": "sha512-A7Ob8EdFZJIBjLjeO0DZF4lqR6U7Ydi5/5LIZ0xcI+23lYlsYJAfGn8PrIWTYdZQRNnSRlzhg0zyGu37mVdy5g==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.16.tgz", + "integrity": "sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.0.15", + "@vitest/pretty-format": "4.0.16", "magic-string": "^0.30.21", "pathe": "^2.0.3" }, @@ -1584,9 +1584,9 @@ } }, "node_modules/@vitest/spy": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.15.tgz", - "integrity": "sha512-+EIjOJmnY6mIfdXtE/bnozKEvTC4Uczg19yeZ2vtCz5Yyb0QQ31QWVQ8hswJ3Ysx/K2EqaNsVanjr//2+P3FHw==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.16.tgz", + "integrity": "sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==", "dev": true, "license": "MIT", "funding": { @@ -1594,13 +1594,13 @@ } }, "node_modules/@vitest/utils": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.15.tgz", - "integrity": "sha512-HXjPW2w5dxhTD0dLwtYHDnelK3j8sR8cWIaLxr22evTyY6q8pRCjZSmhRWVjBaOVXChQd6AwMzi9pucorXCPZA==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.16.tgz", + "integrity": "sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.0.15", + "@vitest/pretty-format": "4.0.16", "tinyrainbow": "^3.0.3" }, "funding": { @@ -1681,9 +1681,9 @@ } }, "node_modules/ast-v8-to-istanbul": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.8.tgz", - "integrity": "sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.9.tgz", + "integrity": "sha512-dSC6tJeOJxbZrPzPbv5mMd6CMiQ1ugaVXXPRad2fXUSsy1kstFn9XQWemV9VW7Y7kpxgQ/4WMoZfwdH8XSU48w==", "dev": true, "license": "MIT", "dependencies": { @@ -2735,9 +2735,9 @@ } }, "node_modules/rollup": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.4.tgz", - "integrity": "sha512-YpXaaArg0MvrnJpvduEDYIp7uGOqKXbH9NsHGQ6SxKCOsNAjZF018MmxefFUulVP2KLtiGw1UvZbr+/ekjvlDg==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.5.tgz", + "integrity": "sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2751,28 +2751,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.53.4", - "@rollup/rollup-android-arm64": "4.53.4", - "@rollup/rollup-darwin-arm64": "4.53.4", - "@rollup/rollup-darwin-x64": "4.53.4", - "@rollup/rollup-freebsd-arm64": "4.53.4", - "@rollup/rollup-freebsd-x64": "4.53.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.53.4", - "@rollup/rollup-linux-arm-musleabihf": "4.53.4", - "@rollup/rollup-linux-arm64-gnu": "4.53.4", - "@rollup/rollup-linux-arm64-musl": "4.53.4", - "@rollup/rollup-linux-loong64-gnu": "4.53.4", - "@rollup/rollup-linux-ppc64-gnu": "4.53.4", - "@rollup/rollup-linux-riscv64-gnu": "4.53.4", - "@rollup/rollup-linux-riscv64-musl": "4.53.4", - "@rollup/rollup-linux-s390x-gnu": "4.53.4", - "@rollup/rollup-linux-x64-gnu": "4.53.4", - "@rollup/rollup-linux-x64-musl": "4.53.4", - "@rollup/rollup-openharmony-arm64": "4.53.4", - "@rollup/rollup-win32-arm64-msvc": "4.53.4", - "@rollup/rollup-win32-ia32-msvc": "4.53.4", - "@rollup/rollup-win32-x64-gnu": "4.53.4", - "@rollup/rollup-win32-x64-msvc": "4.53.4", + "@rollup/rollup-android-arm-eabi": "4.53.5", + "@rollup/rollup-android-arm64": "4.53.5", + "@rollup/rollup-darwin-arm64": "4.53.5", + "@rollup/rollup-darwin-x64": "4.53.5", + "@rollup/rollup-freebsd-arm64": "4.53.5", + "@rollup/rollup-freebsd-x64": "4.53.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.5", + "@rollup/rollup-linux-arm-musleabihf": "4.53.5", + "@rollup/rollup-linux-arm64-gnu": "4.53.5", + "@rollup/rollup-linux-arm64-musl": "4.53.5", + "@rollup/rollup-linux-loong64-gnu": "4.53.5", + "@rollup/rollup-linux-ppc64-gnu": "4.53.5", + "@rollup/rollup-linux-riscv64-gnu": "4.53.5", + "@rollup/rollup-linux-riscv64-musl": "4.53.5", + "@rollup/rollup-linux-s390x-gnu": "4.53.5", + "@rollup/rollup-linux-x64-gnu": "4.53.5", + "@rollup/rollup-linux-x64-musl": "4.53.5", + "@rollup/rollup-openharmony-arm64": "4.53.5", + "@rollup/rollup-win32-arm64-msvc": "4.53.5", + "@rollup/rollup-win32-ia32-msvc": "4.53.5", + "@rollup/rollup-win32-x64-gnu": "4.53.5", + "@rollup/rollup-win32-x64-msvc": "4.53.5", "fsevents": "~2.3.2" } }, @@ -3087,20 +3087,20 @@ } }, "node_modules/vitest": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.15.tgz", - "integrity": "sha512-n1RxDp8UJm6N0IbJLQo+yzLZ2sQCDyl1o0LeugbPWf8+8Fttp29GghsQBjYJVmWq3gBFfe9Hs1spR44vovn2wA==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.16.tgz", + "integrity": "sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@vitest/expect": "4.0.15", - "@vitest/mocker": "4.0.15", - "@vitest/pretty-format": "4.0.15", - "@vitest/runner": "4.0.15", - "@vitest/snapshot": "4.0.15", - "@vitest/spy": "4.0.15", - "@vitest/utils": "4.0.15", + "@vitest/expect": "4.0.16", + "@vitest/mocker": "4.0.16", + "@vitest/pretty-format": "4.0.16", + "@vitest/runner": "4.0.16", + "@vitest/snapshot": "4.0.16", + "@vitest/spy": "4.0.16", + "@vitest/utils": "4.0.16", "es-module-lexer": "^1.7.0", "expect-type": "^1.2.2", "magic-string": "^0.30.21", @@ -3128,10 +3128,10 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.0.15", - "@vitest/browser-preview": "4.0.15", - "@vitest/browser-webdriverio": "4.0.15", - "@vitest/ui": "4.0.15", + "@vitest/browser-playwright": "4.0.16", + "@vitest/browser-preview": "4.0.16", + "@vitest/browser-webdriverio": "4.0.16", + "@vitest/ui": "4.0.16", "happy-dom": "*", "jsdom": "*" }, @@ -3222,9 +3222,9 @@ } }, "node_modules/zod": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.2.0.tgz", - "integrity": "sha512-Bd5fw9wlIhtqCCxotZgdTOMwGm1a0u75wARVEY9HMs1X17trvA/lMi4+MGK5EUfYkXVTbX8UDiDKW4OgzHVUZw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.2.1.tgz", + "integrity": "sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/package-lock.json b/package-lock.json index 128907ab287a..0d384bec4402 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4038,9 +4038,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.4.tgz", - "integrity": "sha512-PWU3Y92H4DD0bOqorEPp1Y0tbzwAurFmIYpjcObv5axGVOtcTlB0b2UKMd2echo08MgN7jO8WQZSSysvfisFSQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.5.tgz", + "integrity": "sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ==", "cpu": [ "arm" ], @@ -4052,9 +4052,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.4.tgz", - "integrity": "sha512-Gw0/DuVm3rGsqhMGYkSOXXIx20cC3kTlivZeuaGt4gEgILivykNyBWxeUV5Cf2tDA2nPLah26vq3emlRrWVbng==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.5.tgz", + "integrity": "sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw==", "cpu": [ "arm64" ], @@ -4066,9 +4066,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.4.tgz", - "integrity": "sha512-+w06QvXsgzKwdVg5qRLZpTHh1bigHZIqoIUPtiqh05ZiJVUQ6ymOxaPkXTvRPRLH88575ZCRSRM3PwIoNma01Q==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.5.tgz", + "integrity": "sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ==", "cpu": [ "arm64" ], @@ -4080,9 +4080,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.4.tgz", - "integrity": "sha512-EB4Na9G2GsrRNRNFPuxfwvDRDUwQEzJPpiK1vo2zMVhEeufZ1k7J1bKnT0JYDfnPC7RNZ2H5YNQhW6/p2QKATw==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.5.tgz", + "integrity": "sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA==", "cpu": [ "x64" ], @@ -4094,9 +4094,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.4.tgz", - "integrity": "sha512-bldA8XEqPcs6OYdknoTMaGhjytnwQ0NClSPpWpmufOuGPN5dDmvIa32FygC2gneKK4A1oSx86V1l55hyUWUYFQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.5.tgz", + "integrity": "sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw==", "cpu": [ "arm64" ], @@ -4108,9 +4108,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.4.tgz", - "integrity": "sha512-3T8GPjH6mixCd0YPn0bXtcuSXi1Lj+15Ujw2CEb7dd24j9thcKscCf88IV7n76WaAdorOzAgSSbuVRg4C8V8Qw==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.5.tgz", + "integrity": "sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ==", "cpu": [ "x64" ], @@ -4122,9 +4122,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.4.tgz", - "integrity": "sha512-UPMMNeC4LXW7ZSHxeP3Edv09aLsFUMaD1TSVW6n1CWMECnUIJMFFB7+XC2lZTdPtvB36tYC0cJWc86mzSsaviw==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.5.tgz", + "integrity": "sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA==", "cpu": [ "arm" ], @@ -4136,9 +4136,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.4.tgz", - "integrity": "sha512-H8uwlV0otHs5Q7WAMSoyvjV9DJPiy5nJ/xnHolY0QptLPjaSsuX7tw+SPIfiYH6cnVx3fe4EWFafo6gH6ekZKA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.5.tgz", + "integrity": "sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==", "cpu": [ "arm" ], @@ -4150,9 +4150,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.4.tgz", - "integrity": "sha512-BLRwSRwICXz0TXkbIbqJ1ibK+/dSBpTJqDClF61GWIrxTXZWQE78ROeIhgl5MjVs4B4gSLPCFeD4xML9vbzvCQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.5.tgz", + "integrity": "sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg==", "cpu": [ "arm64" ], @@ -4164,9 +4164,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.4.tgz", - "integrity": "sha512-6bySEjOTbmVcPJAywjpGLckK793A0TJWSbIa0sVwtVGfe/Nz6gOWHOwkshUIAp9j7wg2WKcA4Snu7Y1nUZyQew==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.5.tgz", + "integrity": "sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g==", "cpu": [ "arm64" ], @@ -4178,9 +4178,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.4.tgz", - "integrity": "sha512-U0ow3bXYJZ5MIbchVusxEycBw7bO6C2u5UvD31i5IMTrnt2p4Fh4ZbHSdc/31TScIJQYHwxbj05BpevB3201ug==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.5.tgz", + "integrity": "sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA==", "cpu": [ "loong64" ], @@ -4192,9 +4192,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.4.tgz", - "integrity": "sha512-iujDk07ZNwGLVn0YIWM80SFN039bHZHCdCCuX9nyx3Jsa2d9V/0Y32F+YadzwbvDxhSeVo9zefkoPnXEImnM5w==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.5.tgz", + "integrity": "sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q==", "cpu": [ "ppc64" ], @@ -4206,9 +4206,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.4.tgz", - "integrity": "sha512-MUtAktiOUSu+AXBpx1fkuG/Bi5rhlorGs3lw5QeJ2X3ziEGAq7vFNdWVde6XGaVqi0LGSvugwjoxSNJfHFTC0g==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.5.tgz", + "integrity": "sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ==", "cpu": [ "riscv64" ], @@ -4220,9 +4220,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.4.tgz", - "integrity": "sha512-btm35eAbDfPtcFEgaXCI5l3c2WXyzwiE8pArhd66SDtoLWmgK5/M7CUxmUglkwtniPzwvWioBKKl6IXLbPf2sQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.5.tgz", + "integrity": "sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w==", "cpu": [ "riscv64" ], @@ -4234,9 +4234,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.4.tgz", - "integrity": "sha512-uJlhKE9ccUTCUlK+HUz/80cVtx2RayadC5ldDrrDUFaJK0SNb8/cCmC9RhBhIWuZ71Nqj4Uoa9+xljKWRogdhA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.5.tgz", + "integrity": "sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==", "cpu": [ "s390x" ], @@ -4248,9 +4248,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.4.tgz", - "integrity": "sha512-jjEMkzvASQBbzzlzf4os7nzSBd/cvPrpqXCUOqoeCh1dQ4BP3RZCJk8XBeik4MUln3m+8LeTJcY54C/u8wb3DQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.5.tgz", + "integrity": "sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw==", "cpu": [ "x64" ], @@ -4262,9 +4262,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.4.tgz", - "integrity": "sha512-lu90KG06NNH19shC5rBPkrh6mrTpq5kviFylPBXQVpdEu0yzb0mDgyxLr6XdcGdBIQTH/UAhDJnL+APZTBu1aQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.5.tgz", + "integrity": "sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg==", "cpu": [ "x64" ], @@ -4276,9 +4276,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.4.tgz", - "integrity": "sha512-dFDcmLwsUzhAm/dn0+dMOQZoONVYBtgik0VuY/d5IJUUb787L3Ko/ibvTvddqhb3RaB7vFEozYevHN4ox22R/w==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.5.tgz", + "integrity": "sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg==", "cpu": [ "arm64" ], @@ -4290,9 +4290,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.4.tgz", - "integrity": "sha512-WvUpUAWmUxZKtRnQWpRKnLW2DEO8HB/l8z6oFFMNuHndMzFTJEXzaYJ5ZAmzNw0L21QQJZsUQFt2oPf3ykAD/w==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.5.tgz", + "integrity": "sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA==", "cpu": [ "arm64" ], @@ -4304,9 +4304,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.4.tgz", - "integrity": "sha512-JGbeF2/FDU0x2OLySw/jgvkwWUo05BSiJK0dtuI4LyuXbz3wKiC1xHhLB1Tqm5VU6ZZDmAorj45r/IgWNWku5g==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.5.tgz", + "integrity": "sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w==", "cpu": [ "ia32" ], @@ -4318,9 +4318,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.4.tgz", - "integrity": "sha512-zuuC7AyxLWLubP+mlUwEyR8M1ixW1ERNPHJfXm8x7eQNP4Pzkd7hS3qBuKBR70VRiQ04Kw8FNfRMF5TNxuZq2g==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.5.tgz", + "integrity": "sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A==", "cpu": [ "x64" ], @@ -4332,9 +4332,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.4.tgz", - "integrity": "sha512-Sbx45u/Lbb5RyptSbX7/3deP+/lzEmZ0BTSHxwxN/IMOZDZf8S0AGo0hJD5n/LQssxb5Z3B4og4P2X6Dd8acCA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.5.tgz", + "integrity": "sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ==", "cpu": [ "x64" ], @@ -4396,7 +4396,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -6085,14 +6084,14 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.15.tgz", - "integrity": "sha512-FUJ+1RkpTFW7rQITdgTi93qOCWJobWhBirEPCeXh2SW2wsTlFxy51apDz5gzG+ZEYt/THvWeNmhdAoS9DTwpCw==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.16.tgz", + "integrity": "sha512-2rNdjEIsPRzsdu6/9Eq0AYAzYdpP6Bx9cje9tL3FE5XzXRQF1fNU9pe/1yE8fCrS0HD+fBtt6gLPh6LI57tX7A==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.0.15", + "@vitest/utils": "4.0.16", "ast-v8-to-istanbul": "^0.3.8", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", @@ -6107,8 +6106,8 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "4.0.15", - "vitest": "4.0.15" + "@vitest/browser": "4.0.16", + "vitest": "4.0.16" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -6117,16 +6116,16 @@ } }, "node_modules/@vitest/expect": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.15.tgz", - "integrity": "sha512-Gfyva9/GxPAWXIWjyGDli9O+waHDC0Q0jaLdFP1qPAUUfo1FEXPXUfUkp3eZA0sSq340vPycSyOlYUeM15Ft1w==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.16.tgz", + "integrity": "sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==", "dev": true, "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.0.0", "@types/chai": "^5.2.2", - "@vitest/spy": "4.0.15", - "@vitest/utils": "4.0.15", + "@vitest/spy": "4.0.16", + "@vitest/utils": "4.0.16", "chai": "^6.2.1", "tinyrainbow": "^3.0.3" }, @@ -6135,13 +6134,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.15.tgz", - "integrity": "sha512-CZ28GLfOEIFkvCFngN8Sfx5h+Se0zN+h4B7yOsPVCcgtiO7t5jt9xQh2E1UkFep+eb9fjyMfuC5gBypwb07fvQ==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.16.tgz", + "integrity": "sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "4.0.15", + "@vitest/spy": "4.0.16", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, @@ -6162,9 +6161,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.15.tgz", - "integrity": "sha512-SWdqR8vEv83WtZcrfLNqlqeQXlQLh2iilO1Wk1gv4eiHKjEzvgHb2OVc3mIPyhZE6F+CtfYjNlDJwP5MN6Km7A==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.16.tgz", + "integrity": "sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==", "dev": true, "license": "MIT", "dependencies": { @@ -6175,13 +6174,13 @@ } }, "node_modules/@vitest/runner": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.15.tgz", - "integrity": "sha512-+A+yMY8dGixUhHmNdPUxOh0la6uVzun86vAbuMT3hIDxMrAOmn5ILBHm8ajrqHE0t8R9T1dGnde1A5DTnmi3qw==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.16.tgz", + "integrity": "sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "4.0.15", + "@vitest/utils": "4.0.16", "pathe": "^2.0.3" }, "funding": { @@ -6189,13 +6188,13 @@ } }, "node_modules/@vitest/snapshot": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.15.tgz", - "integrity": "sha512-A7Ob8EdFZJIBjLjeO0DZF4lqR6U7Ydi5/5LIZ0xcI+23lYlsYJAfGn8PrIWTYdZQRNnSRlzhg0zyGu37mVdy5g==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.16.tgz", + "integrity": "sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.0.15", + "@vitest/pretty-format": "4.0.16", "magic-string": "^0.30.21", "pathe": "^2.0.3" }, @@ -6204,9 +6203,9 @@ } }, "node_modules/@vitest/spy": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.15.tgz", - "integrity": "sha512-+EIjOJmnY6mIfdXtE/bnozKEvTC4Uczg19yeZ2vtCz5Yyb0QQ31QWVQ8hswJ3Ysx/K2EqaNsVanjr//2+P3FHw==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.16.tgz", + "integrity": "sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==", "dev": true, "license": "MIT", "funding": { @@ -6214,13 +6213,13 @@ } }, "node_modules/@vitest/utils": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.15.tgz", - "integrity": "sha512-HXjPW2w5dxhTD0dLwtYHDnelK3j8sR8cWIaLxr22evTyY6q8pRCjZSmhRWVjBaOVXChQd6AwMzi9pucorXCPZA==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.16.tgz", + "integrity": "sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.0.15", + "@vitest/pretty-format": "4.0.16", "tinyrainbow": "^3.0.3" }, "funding": { @@ -6420,9 +6419,9 @@ } }, "node_modules/ast-v8-to-istanbul": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.8.tgz", - "integrity": "sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.9.tgz", + "integrity": "sha512-dSC6tJeOJxbZrPzPbv5mMd6CMiQ1ugaVXXPRad2fXUSsy1kstFn9XQWemV9VW7Y7kpxgQ/4WMoZfwdH8XSU48w==", "dev": true, "license": "MIT", "dependencies": { @@ -9672,9 +9671,9 @@ "license": "MIT" }, "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "version": "4.17.22", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz", + "integrity": "sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==", "dev": true, "license": "MIT" }, @@ -10982,9 +10981,9 @@ } }, "node_modules/rollup": { - "version": "4.53.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.4.tgz", - "integrity": "sha512-YpXaaArg0MvrnJpvduEDYIp7uGOqKXbH9NsHGQ6SxKCOsNAjZF018MmxefFUulVP2KLtiGw1UvZbr+/ekjvlDg==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.5.tgz", + "integrity": "sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10998,28 +10997,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.53.4", - "@rollup/rollup-android-arm64": "4.53.4", - "@rollup/rollup-darwin-arm64": "4.53.4", - "@rollup/rollup-darwin-x64": "4.53.4", - "@rollup/rollup-freebsd-arm64": "4.53.4", - "@rollup/rollup-freebsd-x64": "4.53.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.53.4", - "@rollup/rollup-linux-arm-musleabihf": "4.53.4", - "@rollup/rollup-linux-arm64-gnu": "4.53.4", - "@rollup/rollup-linux-arm64-musl": "4.53.4", - "@rollup/rollup-linux-loong64-gnu": "4.53.4", - "@rollup/rollup-linux-ppc64-gnu": "4.53.4", - "@rollup/rollup-linux-riscv64-gnu": "4.53.4", - "@rollup/rollup-linux-riscv64-musl": "4.53.4", - "@rollup/rollup-linux-s390x-gnu": "4.53.4", - "@rollup/rollup-linux-x64-gnu": "4.53.4", - "@rollup/rollup-linux-x64-musl": "4.53.4", - "@rollup/rollup-openharmony-arm64": "4.53.4", - "@rollup/rollup-win32-arm64-msvc": "4.53.4", - "@rollup/rollup-win32-ia32-msvc": "4.53.4", - "@rollup/rollup-win32-x64-gnu": "4.53.4", - "@rollup/rollup-win32-x64-msvc": "4.53.4", + "@rollup/rollup-android-arm-eabi": "4.53.5", + "@rollup/rollup-android-arm64": "4.53.5", + "@rollup/rollup-darwin-arm64": "4.53.5", + "@rollup/rollup-darwin-x64": "4.53.5", + "@rollup/rollup-freebsd-arm64": "4.53.5", + "@rollup/rollup-freebsd-x64": "4.53.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.5", + "@rollup/rollup-linux-arm-musleabihf": "4.53.5", + "@rollup/rollup-linux-arm64-gnu": "4.53.5", + "@rollup/rollup-linux-arm64-musl": "4.53.5", + "@rollup/rollup-linux-loong64-gnu": "4.53.5", + "@rollup/rollup-linux-ppc64-gnu": "4.53.5", + "@rollup/rollup-linux-riscv64-gnu": "4.53.5", + "@rollup/rollup-linux-riscv64-musl": "4.53.5", + "@rollup/rollup-linux-s390x-gnu": "4.53.5", + "@rollup/rollup-linux-x64-gnu": "4.53.5", + "@rollup/rollup-linux-x64-musl": "4.53.5", + "@rollup/rollup-openharmony-arm64": "4.53.5", + "@rollup/rollup-win32-arm64-msvc": "4.53.5", + "@rollup/rollup-win32-ia32-msvc": "4.53.5", + "@rollup/rollup-win32-x64-gnu": "4.53.5", + "@rollup/rollup-win32-x64-msvc": "4.53.5", "fsevents": "~2.3.2" } }, @@ -12502,20 +12501,20 @@ } }, "node_modules/vitest": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.15.tgz", - "integrity": "sha512-n1RxDp8UJm6N0IbJLQo+yzLZ2sQCDyl1o0LeugbPWf8+8Fttp29GghsQBjYJVmWq3gBFfe9Hs1spR44vovn2wA==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.16.tgz", + "integrity": "sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@vitest/expect": "4.0.15", - "@vitest/mocker": "4.0.15", - "@vitest/pretty-format": "4.0.15", - "@vitest/runner": "4.0.15", - "@vitest/snapshot": "4.0.15", - "@vitest/spy": "4.0.15", - "@vitest/utils": "4.0.15", + "@vitest/expect": "4.0.16", + "@vitest/mocker": "4.0.16", + "@vitest/pretty-format": "4.0.16", + "@vitest/runner": "4.0.16", + "@vitest/snapshot": "4.0.16", + "@vitest/spy": "4.0.16", + "@vitest/utils": "4.0.16", "es-module-lexer": "^1.7.0", "expect-type": "^1.2.2", "magic-string": "^0.30.21", @@ -12543,10 +12542,10 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.0.15", - "@vitest/browser-preview": "4.0.15", - "@vitest/browser-webdriverio": "4.0.15", - "@vitest/ui": "4.0.15", + "@vitest/browser-playwright": "4.0.16", + "@vitest/browser-preview": "4.0.16", + "@vitest/browser-webdriverio": "4.0.16", + "@vitest/ui": "4.0.16", "happy-dom": "*", "jsdom": "*" }, @@ -13245,9 +13244,9 @@ } }, "node_modules/zod": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.2.0.tgz", - "integrity": "sha512-Bd5fw9wlIhtqCCxotZgdTOMwGm1a0u75wARVEY9HMs1X17trvA/lMi4+MGK5EUfYkXVTbX8UDiDKW4OgzHVUZw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.2.1.tgz", + "integrity": "sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw==", "dev": true, "license": "MIT", "funding": { From a0203e3fc6642a5fd4c5950f018290c5a978d4e3 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Thu, 18 Dec 2025 13:53:13 -0800 Subject: [PATCH 063/117] [eng/tools] bump vitest from 3.2.4 to 4.0.15 (#39315) - reactions to breaking changes - adds config to include only `test` dir - by default, vitest@4 only excludes tests from `node_modules` and `.git` folders (not `dist`) - [openapi-diff-runner] mock ctors using `function` instead of `=>` --- eng/tools/lint-diff/package.json | 4 +- eng/tools/lint-diff/vitest.config.js | 5 + eng/tools/oav-runner/package.json | 3 +- eng/tools/oav-runner/vitest.config.js | 5 + eng/tools/openapi-diff-runner/package.json | 4 +- .../test/detect-breaking-change.test.ts | 14 +- .../openapi-diff-runner/vitest.config.js | 5 + eng/tools/sdk-suppressions/package.json | 4 +- eng/tools/sdk-suppressions/vitest.config.js | 5 + eng/tools/spec-gen-sdk-runner/package.json | 4 +- eng/tools/spec-gen-sdk-runner/vite.config.ts | 6 +- eng/tools/summarize-impact/package.json | 3 +- eng/tools/summarize-impact/vitest.config.js | 5 + eng/tools/suppressions/package.json | 4 +- eng/tools/suppressions/vitest.config.ts | 3 + eng/tools/tsp-client-tests/package.json | 2 +- eng/tools/tsp-client-tests/vite.config.ts | 5 +- eng/tools/typespec-requirement/package.json | 2 +- eng/tools/typespec-requirement/vite.config.ts | 5 +- eng/tools/typespec-validation/package.json | 4 +- .../typespec-validation/vitest.config.js | 5 + eng/tools/vitest.base.config.js | 11 + package-lock.json | 922 +----------------- 23 files changed, 136 insertions(+), 894 deletions(-) create mode 100644 eng/tools/lint-diff/vitest.config.js create mode 100644 eng/tools/oav-runner/vitest.config.js create mode 100644 eng/tools/openapi-diff-runner/vitest.config.js create mode 100644 eng/tools/sdk-suppressions/vitest.config.js create mode 100644 eng/tools/summarize-impact/vitest.config.js create mode 100644 eng/tools/typespec-validation/vitest.config.js create mode 100644 eng/tools/vitest.base.config.js diff --git a/eng/tools/lint-diff/package.json b/eng/tools/lint-diff/package.json index 23b6d6bc850e..a3f1a62c2531 100644 --- a/eng/tools/lint-diff/package.json +++ b/eng/tools/lint-diff/package.json @@ -35,7 +35,7 @@ "@eslint/js": "^9.22.0", "@types/deep-eql": "^4.0.2", "@types/node": "^20.0.0", - "@vitest/coverage-v8": "^3.0.2", + "@vitest/coverage-v8": "^4.0.15", "cross-env": "^10.1.0", "eslint": "^9.22.0", "execa": "^9.5.2", @@ -44,6 +44,6 @@ "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", - "vitest": "^3.2.4" + "vitest": "^4.0.15" } } diff --git a/eng/tools/lint-diff/vitest.config.js b/eng/tools/lint-diff/vitest.config.js new file mode 100644 index 000000000000..cc1eea51f064 --- /dev/null +++ b/eng/tools/lint-diff/vitest.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import { baseConfig } from "../vitest.base.config.js"; + +export default baseConfig; diff --git a/eng/tools/oav-runner/package.json b/eng/tools/oav-runner/package.json index f2745aac5b0b..c0121e47bfe6 100644 --- a/eng/tools/oav-runner/package.json +++ b/eng/tools/oav-runner/package.json @@ -25,13 +25,14 @@ "devDependencies": { "@eslint/js": "^9.22.0", "@types/node": "^20.0.0", + "@vitest/coverage-v8": "^4.0.15", "cross-env": "^10.1.0", "eslint": "^9.22.0", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "engines": { "node": ">=20.0.0" diff --git a/eng/tools/oav-runner/vitest.config.js b/eng/tools/oav-runner/vitest.config.js new file mode 100644 index 000000000000..cc1eea51f064 --- /dev/null +++ b/eng/tools/oav-runner/vitest.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import { baseConfig } from "../vitest.base.config.js"; + +export default baseConfig; diff --git a/eng/tools/openapi-diff-runner/package.json b/eng/tools/openapi-diff-runner/package.json index 2d766cf6ef3a..89cc854a488e 100644 --- a/eng/tools/openapi-diff-runner/package.json +++ b/eng/tools/openapi-diff-runner/package.json @@ -23,10 +23,10 @@ }, "devDependencies": { "@types/node": "^20.0.0", - "@vitest/coverage-v8": "^3.1.2", + "@vitest/coverage-v8": "^4.0.15", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", - "vitest": "^3.2.4" + "vitest": "^4.0.15" } } diff --git a/eng/tools/openapi-diff-runner/test/detect-breaking-change.test.ts b/eng/tools/openapi-diff-runner/test/detect-breaking-change.test.ts index 418e22eca6bb..f672b4ab4778 100644 --- a/eng/tools/openapi-diff-runner/test/detect-breaking-change.test.ts +++ b/eng/tools/openapi-diff-runner/test/detect-breaking-change.test.ts @@ -233,11 +233,13 @@ describe("detect-breaking-change", () => { setupSpecModelMock: (mockInstance?: any) => { if (mockInstance) { // Use the provided instance - vi.mocked(SpecModel).mockImplementation(() => mockInstance as unknown as SpecModel); + vi.mocked(SpecModel).mockImplementation(function () { + return mockInstance as unknown as SpecModel; + }); return mockInstance; } else { // Create different instances based on folder path - vi.mocked(SpecModel).mockImplementation((folder: string) => { + vi.mocked(SpecModel).mockImplementation(function (folder: string) { return TestFixtures.createMockSpecModel(folder) as unknown as SpecModel; }); return null; // No specific instance to return @@ -727,7 +729,9 @@ describe("detect-breaking-change", () => { { path: "/test/swagger2.json" }, ]); - vi.mocked(SpecModel).mockImplementation(() => mockSpecModelInstance); + vi.mocked(SpecModel).mockImplementation(function () { + return mockSpecModelInstance; + }); vi.mocked(getPrecedingSwaggers).mockResolvedValue({ stable: "/test/previous-stable.json", preview: "/test/previous-preview.json", @@ -778,7 +782,9 @@ describe("detect-breaking-change", () => { }; // Mock SpecModel constructor directly - vi.mocked(SpecModel).mockImplementation(() => mockSpecModelInstance as unknown as SpecModel); + vi.mocked(SpecModel).mockImplementation(function () { + return mockSpecModelInstance as unknown as SpecModel; + }); // Mock getExistedVersionOperations to return a proper Map vi.mocked(getExistedVersionOperations).mockResolvedValue(new Map()); diff --git a/eng/tools/openapi-diff-runner/vitest.config.js b/eng/tools/openapi-diff-runner/vitest.config.js new file mode 100644 index 000000000000..cc1eea51f064 --- /dev/null +++ b/eng/tools/openapi-diff-runner/vitest.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import { baseConfig } from "../vitest.base.config.js"; + +export default baseConfig; diff --git a/eng/tools/sdk-suppressions/package.json b/eng/tools/sdk-suppressions/package.json index 6a4a740d9107..710f0fb49859 100644 --- a/eng/tools/sdk-suppressions/package.json +++ b/eng/tools/sdk-suppressions/package.json @@ -30,10 +30,10 @@ "@types/debug": "^4.1.12", "@types/lodash": "^4.14.161", "@types/node": "^20.0.0", - "@vitest/coverage-v8": "^3.1.2", + "@vitest/coverage-v8": "^4.0.15", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", - "vitest": "^3.2.4" + "vitest": "^4.0.15" } } diff --git a/eng/tools/sdk-suppressions/vitest.config.js b/eng/tools/sdk-suppressions/vitest.config.js new file mode 100644 index 000000000000..cc1eea51f064 --- /dev/null +++ b/eng/tools/sdk-suppressions/vitest.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import { baseConfig } from "../vitest.base.config.js"; + +export default baseConfig; diff --git a/eng/tools/spec-gen-sdk-runner/package.json b/eng/tools/spec-gen-sdk-runner/package.json index 2dc9e7d96409..70f9068b438f 100644 --- a/eng/tools/spec-gen-sdk-runner/package.json +++ b/eng/tools/spec-gen-sdk-runner/package.json @@ -24,10 +24,10 @@ }, "devDependencies": { "@types/node": "^20.0.0", - "@vitest/coverage-v8": "^3.1.2", + "@vitest/coverage-v8": "^4.0.15", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", - "vitest": "^3.2.4" + "vitest": "^4.0.15" } } diff --git a/eng/tools/spec-gen-sdk-runner/vite.config.ts b/eng/tools/spec-gen-sdk-runner/vite.config.ts index c88b2223da88..9f9107f5bfdf 100644 --- a/eng/tools/spec-gen-sdk-runner/vite.config.ts +++ b/eng/tools/spec-gen-sdk-runner/vite.config.ts @@ -1,9 +1,11 @@ -import { defineConfig } from "vite"; -import { configDefaults } from "vitest/config"; +import { configDefaults, defineConfig } from "vitest/config"; export default defineConfig({ test: { ...configDefaults, + // By default, vitest@4 only excludes tests from "node_modules" and ".git" folders (not "dist"). + // Recommended fix is to *include* only the folders you want (more performant than excluding). + dir: "./test", // eslint-disable-next-line unicorn/numeric-separators-style testTimeout: 20000, coverage: { diff --git a/eng/tools/summarize-impact/package.json b/eng/tools/summarize-impact/package.json index d951c2c3d9c0..63580b54e035 100644 --- a/eng/tools/summarize-impact/package.json +++ b/eng/tools/summarize-impact/package.json @@ -29,10 +29,11 @@ "@types/commonmark": "0.27.10", "@types/lodash": "^4.14.161", "@types/node": "^20.0.0", + "@vitest/coverage-v8": "^4.0.15", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "engines": { "node": ">=20.0.0" diff --git a/eng/tools/summarize-impact/vitest.config.js b/eng/tools/summarize-impact/vitest.config.js new file mode 100644 index 000000000000..cc1eea51f064 --- /dev/null +++ b/eng/tools/summarize-impact/vitest.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import { baseConfig } from "../vitest.base.config.js"; + +export default baseConfig; diff --git a/eng/tools/suppressions/package.json b/eng/tools/suppressions/package.json index b8c32b8b2588..2a9a7e46d8ae 100644 --- a/eng/tools/suppressions/package.json +++ b/eng/tools/suppressions/package.json @@ -28,13 +28,13 @@ "@azure-tools/specs-shared": "file:../../../.github/shared", "@eslint/js": "^9.22.0", "@types/node": "^20.0.0", - "@vitest/coverage-v8": "^3.1.2", + "@vitest/coverage-v8": "^4.0.15", "cross-env": "^10.1.0", "eslint": "^9.22.0", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", - "vitest": "^3.2.4" + "vitest": "^4.0.15" } } diff --git a/eng/tools/suppressions/vitest.config.ts b/eng/tools/suppressions/vitest.config.ts index bc6ad4809131..71c02dc711cb 100644 --- a/eng/tools/suppressions/vitest.config.ts +++ b/eng/tools/suppressions/vitest.config.ts @@ -2,6 +2,9 @@ import { configDefaults, defineConfig } from "vitest/config"; export default defineConfig({ test: { + // By default, vitest@4 only excludes tests from "node_modules" and ".git" folders (not "dist"). + // Recommended fix is to *include* only the folders you want (more performant than excluding). + dir: "./test", coverage: { exclude: [...configDefaults.coverage.exclude!, "cmd/**", "src/index.ts"], }, diff --git a/eng/tools/tsp-client-tests/package.json b/eng/tools/tsp-client-tests/package.json index 9a7143ad382c..6d7256394c59 100644 --- a/eng/tools/tsp-client-tests/package.json +++ b/eng/tools/tsp-client-tests/package.json @@ -8,7 +8,7 @@ "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "scripts": { "build": "tsc --build", diff --git a/eng/tools/tsp-client-tests/vite.config.ts b/eng/tools/tsp-client-tests/vite.config.ts index 56e16cce625c..7e7bd2b23a05 100644 --- a/eng/tools/tsp-client-tests/vite.config.ts +++ b/eng/tools/tsp-client-tests/vite.config.ts @@ -1,7 +1,10 @@ -import { defineConfig } from "vite"; +import { defineConfig } from "vitest/config"; export default defineConfig({ test: { + // By default, vitest@4 only excludes tests from "node_modules" and ".git" folders (not "dist"). + // Recommended fix is to *include* only the folders you want (more performant than excluding). + dir: "./test", testTimeout: 240000, }, }); diff --git a/eng/tools/typespec-requirement/package.json b/eng/tools/typespec-requirement/package.json index e4af0b78f754..b8fa750b5602 100644 --- a/eng/tools/typespec-requirement/package.json +++ b/eng/tools/typespec-requirement/package.json @@ -8,7 +8,7 @@ "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "scripts": { "build": "tsc --build", diff --git a/eng/tools/typespec-requirement/vite.config.ts b/eng/tools/typespec-requirement/vite.config.ts index 346b4e424284..6d622f72bb21 100644 --- a/eng/tools/typespec-requirement/vite.config.ts +++ b/eng/tools/typespec-requirement/vite.config.ts @@ -1,7 +1,10 @@ -import { defineConfig } from "vite"; +import { defineConfig } from "vitest/config"; export default defineConfig({ test: { + // By default, vitest@4 only excludes tests from "node_modules" and ".git" folders (not "dist"). + // Recommended fix is to *include* only the folders you want (more performant than excluding). + dir: "./test", // Default timeout of 5 seconds is too low testTimeout: 20000, }, diff --git a/eng/tools/typespec-validation/package.json b/eng/tools/typespec-validation/package.json index d78d42615cde..aa50a2c9601a 100644 --- a/eng/tools/typespec-validation/package.json +++ b/eng/tools/typespec-validation/package.json @@ -21,14 +21,14 @@ "@eslint/js": "^9.22.0", "@types/debug": "^4.1.12", "@types/node": "^20.0.0", - "@vitest/coverage-v8": "^3.1.2", + "@vitest/coverage-v8": "^4.0.15", "cross-env": "^10.1.0", "eslint": "^9.22.0", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "scripts": { "build": "tsc --build", diff --git a/eng/tools/typespec-validation/vitest.config.js b/eng/tools/typespec-validation/vitest.config.js new file mode 100644 index 000000000000..cc1eea51f064 --- /dev/null +++ b/eng/tools/typespec-validation/vitest.config.js @@ -0,0 +1,5 @@ +// @ts-check + +import { baseConfig } from "../vitest.base.config.js"; + +export default baseConfig; diff --git a/eng/tools/vitest.base.config.js b/eng/tools/vitest.base.config.js new file mode 100644 index 000000000000..20acbdc1f660 --- /dev/null +++ b/eng/tools/vitest.base.config.js @@ -0,0 +1,11 @@ +// @ts-check + +import { defineConfig } from "vitest/config"; + +export const baseConfig = defineConfig({ + test: { + // By default, vitest@4 only excludes tests from "node_modules" and ".git" folders (not "dist"). + // Recommended fix is to *include* only the folders you want (more performant than excluding). + dir: "./test", + }, +}); diff --git a/package-lock.json b/package-lock.json index 0d384bec4402..36eafe0b5c6e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -129,7 +129,7 @@ "@eslint/js": "^9.22.0", "@types/deep-eql": "^4.0.2", "@types/node": "^20.0.0", - "@vitest/coverage-v8": "^3.0.2", + "@vitest/coverage-v8": "^4.0.15", "cross-env": "^10.1.0", "eslint": "^9.22.0", "execa": "^9.5.2", @@ -138,134 +138,12 @@ "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "engines": { "node": ">= 20.0.0" } }, - "eng/tools/node_modules/@vitest/coverage-v8": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", - "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.3.0", - "@bcoe/v8-coverage": "^1.0.2", - "ast-v8-to-istanbul": "^0.3.3", - "debug": "^4.4.1", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-lib-source-maps": "^5.0.6", - "istanbul-reports": "^3.1.7", - "magic-string": "^0.30.17", - "magicast": "^0.3.5", - "std-env": "^3.9.0", - "test-exclude": "^7.0.1", - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@vitest/browser": "3.2.4", - "vitest": "3.2.4" - }, - "peerDependenciesMeta": { - "@vitest/browser": { - "optional": true - } - } - }, - "eng/tools/node_modules/@vitest/expect": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", - "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "^5.2.2", - "@vitest/spy": "3.2.4", - "@vitest/utils": "3.2.4", - "chai": "^5.2.0", - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "eng/tools/node_modules/@vitest/pretty-format": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", - "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "eng/tools/node_modules/@vitest/runner": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", - "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "3.2.4", - "pathe": "^2.0.3", - "strip-literal": "^3.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "eng/tools/node_modules/@vitest/snapshot": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", - "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "3.2.4", - "magic-string": "^0.30.17", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "eng/tools/node_modules/@vitest/spy": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", - "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyspy": "^4.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "eng/tools/node_modules/@vitest/utils": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", - "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "3.2.4", - "loupe": "^3.1.4", - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, "eng/tools/node_modules/ajv": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", @@ -296,23 +174,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "eng/tools/node_modules/chai": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", - "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, "eng/tools/node_modules/cliui": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", @@ -335,18 +196,6 @@ "dev": true, "license": "MIT" }, - "eng/tools/node_modules/magicast": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", - "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.25.4", - "@babel/types": "^7.25.4", - "source-map-js": "^1.2.0" - } - }, "eng/tools/node_modules/marked": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/marked/-/marked-17.0.1.tgz", @@ -376,19 +225,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "eng/tools/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "eng/tools/node_modules/strip-ansi": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", @@ -405,124 +241,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "eng/tools/node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "dev": true, - "license": "MIT" - }, - "eng/tools/node_modules/tinyrainbow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "eng/tools/node_modules/vitest": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", - "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/chai": "^5.2.2", - "@vitest/expect": "3.2.4", - "@vitest/mocker": "3.2.4", - "@vitest/pretty-format": "^3.2.4", - "@vitest/runner": "3.2.4", - "@vitest/snapshot": "3.2.4", - "@vitest/spy": "3.2.4", - "@vitest/utils": "3.2.4", - "chai": "^5.2.0", - "debug": "^4.4.1", - "expect-type": "^1.2.1", - "magic-string": "^0.30.17", - "pathe": "^2.0.3", - "picomatch": "^4.0.2", - "std-env": "^3.9.0", - "tinybench": "^2.9.0", - "tinyexec": "^0.3.2", - "tinyglobby": "^0.2.14", - "tinypool": "^1.1.1", - "tinyrainbow": "^2.0.0", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", - "vite-node": "3.2.4", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@types/debug": "^4.1.12", - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.2.4", - "@vitest/ui": "3.2.4", - "happy-dom": "*", - "jsdom": "*" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@types/debug": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - } - } - }, - "eng/tools/node_modules/vitest/node_modules/@vitest/mocker": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", - "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "3.2.4", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.17" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "msw": "^2.4.9", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" - }, - "peerDependenciesMeta": { - "msw": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, "eng/tools/node_modules/yargs": { "version": "18.0.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", @@ -566,13 +284,14 @@ "devDependencies": { "@eslint/js": "^9.22.0", "@types/node": "^20.0.0", + "@vitest/coverage-v8": "^4.0.15", "cross-env": "^10.1.0", "eslint": "^9.22.0", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "engines": { "node": ">=20.0.0" @@ -590,11 +309,11 @@ }, "devDependencies": { "@types/node": "^20.0.0", - "@vitest/coverage-v8": "^3.1.2", + "@vitest/coverage-v8": "^4.0.15", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "engines": { "node": ">=20.0.0" @@ -619,11 +338,11 @@ "@types/debug": "^4.1.12", "@types/lodash": "^4.14.161", "@types/node": "^20.0.0", - "@vitest/coverage-v8": "^3.1.2", + "@vitest/coverage-v8": "^4.0.15", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "engines": { "node": ">=20.0.0" @@ -641,11 +360,11 @@ }, "devDependencies": { "@types/node": "^20.0.0", - "@vitest/coverage-v8": "^3.1.2", + "@vitest/coverage-v8": "^4.0.15", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "engines": { "node": ">=20.0.0" @@ -672,10 +391,11 @@ "@types/commonmark": "0.27.10", "@types/lodash": "^4.14.161", "@types/node": "^20.0.0", + "@vitest/coverage-v8": "^4.0.15", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "engines": { "node": ">=20.0.0" @@ -696,14 +416,14 @@ "@azure-tools/specs-shared": "file:../../../.github/shared", "@eslint/js": "^9.22.0", "@types/node": "^20.0.0", - "@vitest/coverage-v8": "^3.1.2", + "@vitest/coverage-v8": "^4.0.15", "cross-env": "^10.1.0", "eslint": "^9.22.0", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "engines": { "node": ">=20.0.0" @@ -718,7 +438,7 @@ "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "engines": { "node": ">=20.0.0" @@ -758,7 +478,7 @@ "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "engines": { "node": ">=20.0.0" @@ -785,33 +505,19 @@ "@eslint/js": "^9.22.0", "@types/debug": "^4.1.12", "@types/node": "^20.0.0", - "@vitest/coverage-v8": "^3.1.2", + "@vitest/coverage-v8": "^4.0.15", "cross-env": "^10.1.0", "eslint": "^9.22.0", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", "typescript-eslint": "^8.45.0", - "vitest": "^3.2.4" + "vitest": "^4.0.15" }, "engines": { "node": ">=20.0.0" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@apidevtools/json-schema-ref-parser": { "version": "15.1.3", "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-15.1.3.tgz", @@ -3384,173 +3090,62 @@ "node": "20 || >=22" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "minipass": "^7.0.4" }, "engines": { - "node": ">=12" + "node": ">=18.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=6.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, "license": "MIT" }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jsep-plugin/assignment": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", + "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/fs-minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jsep-plugin/assignment": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", - "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.16.0" + "node": ">= 10.16.0" }, "peerDependencies": { "jsep": "^0.4.0||^1.0.0" @@ -4026,17 +3621,6 @@ "@noble/hashes": "^1.1.5" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.53.5", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.5.tgz", @@ -4396,6 +3980,7 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -6560,16 +6145,6 @@ "node": ">=8" } }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -6697,16 +6272,6 @@ "dev": true, "license": "MIT" }, - "node_modules/check-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, "node_modules/chownr": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", @@ -7245,13 +6810,6 @@ "node": ">= 0.4" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, "node_modules/emoji-regex": { "version": "10.6.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", @@ -8148,23 +7706,6 @@ "dev": true, "license": "MIT" }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/form-data": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", @@ -9404,22 +8945,6 @@ "node": ">=8" } }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -9719,13 +9244,6 @@ "node": ">=10" } }, - "node_modules/loupe": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", - "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", - "dev": true, - "license": "MIT" - }, "node_modules/lru-cache": { "version": "11.2.4", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", @@ -10532,13 +10050,6 @@ "node": ">=6" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -10627,16 +10138,6 @@ "dev": true, "license": "MIT" }, - "node_modules/pathval": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", - "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.16" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -11484,52 +10985,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/string-width/node_modules/ansi-regex": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", @@ -11665,30 +11120,6 @@ "node": ">=6" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/strip-final-newline": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", @@ -11715,26 +11146,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-literal": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", - "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-tokens": "^9.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/strip-literal/node_modules/js-tokens": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", - "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", - "dev": true, - "license": "MIT" - }, "node_modules/superagent": { "version": "10.2.3", "resolved": "https://registry.npmjs.org/superagent/-/superagent-10.2.3.tgz", @@ -11814,92 +11225,6 @@ "dev": true, "license": "ISC" }, - "node_modules/test-exclude": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", - "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^10.4.1", - "minimatch": "^9.0.4" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/test-exclude/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/test-exclude/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/text-hex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", @@ -11990,16 +11315,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/tinypool": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", - "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, "node_modules/tinyrainbow": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", @@ -12010,16 +11325,6 @@ "node": ">=14.0.0" } }, - "node_modules/tinyspy": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", - "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/title-case": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", @@ -12445,29 +11750,6 @@ } } }, - "node_modules/vite-node": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", - "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cac": "^6.7.14", - "debug": "^4.4.1", - "es-module-lexer": "^1.7.0", - "pathe": "^2.0.3", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, "node_modules/vite/node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", @@ -12937,106 +12219,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", From e5bd77c17d47f533027883951dd9736006c24a8d Mon Sep 17 00:00:00 2001 From: Ray Chen Date: Thu, 18 Dec 2025 15:38:45 -0800 Subject: [PATCH 064/117] Set StagedArtifactsFolder to empty if it's undefined (#39303) * Set StagedArtifactsFolder to empty if it's undefined * Set variable when it's valid --- eng/tools/spec-gen-sdk-runner/src/command-helpers.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/eng/tools/spec-gen-sdk-runner/src/command-helpers.ts b/eng/tools/spec-gen-sdk-runner/src/command-helpers.ts index c18366ff10b4..17af0667298c 100644 --- a/eng/tools/spec-gen-sdk-runner/src/command-helpers.ts +++ b/eng/tools/spec-gen-sdk-runner/src/command-helpers.ts @@ -53,7 +53,9 @@ export function setPipelineVariables( setVsoVariable("PrTitle", prTitle); setVsoVariable("PrBody", prBody); } - setVsoVariable("StagedArtifactsFolder", stagedArtifactsFolder); + if (stagedArtifactsFolder) { + setVsoVariable("StagedArtifactsFolder", stagedArtifactsFolder); + } } /** From 1c6d377a346d3da003c7ac32692c0f51597584d8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Dec 2025 16:53:08 -0800 Subject: [PATCH 065/117] build(deps-dev): bump @azure-tools/spec-gen-sdk from 0.9.4 to 0.9.5 (#39338) Bumps [@azure-tools/spec-gen-sdk](https://github.com/Azure/azure-sdk-tools) from 0.9.4 to 0.9.5. - [Release notes](https://github.com/Azure/azure-sdk-tools/releases) - [Commits](https://github.com/Azure/azure-sdk-tools/commits) --- updated-dependencies: - dependency-name: "@azure-tools/spec-gen-sdk" dependency-version: 0.9.5 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 36eafe0b5c6e..b7b27b227df3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -833,9 +833,9 @@ "link": true }, "node_modules/@azure-tools/spec-gen-sdk": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@azure-tools/spec-gen-sdk/-/spec-gen-sdk-0.9.4.tgz", - "integrity": "sha512-fanBaHNegeOKshFmnaIFRkzlgfmYcSPjXRTPS6iXggYPNqTkQV8vNfs6TYnRxWsyTEBH1n3M5lOSACGQc/ZiHQ==", + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@azure-tools/spec-gen-sdk/-/spec-gen-sdk-0.9.5.tgz", + "integrity": "sha512-s4q659DvE6DVFpfZkW0WO2QLccUTmj9QWFcVrIUcbA+wU4ajbzBDX3dq2DuZIfC+pELiqZZogLQg0DcdV5DGiA==", "dev": true, "license": "MIT", "dependencies": { From 4e8946e77e12b5f6b96c20a61f519cc8746aea19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Dec 2025 16:53:39 -0800 Subject: [PATCH 066/117] build(deps-dev): bump @azure-tools/typespec-client-generator-core (#39337) Bumps the typespec group with 1 update in the / directory: [@azure-tools/typespec-client-generator-core](https://github.com/Azure/typespec-azure). Updates `@azure-tools/typespec-client-generator-core` from 0.63.0 to 0.63.1 - [Release notes](https://github.com/Azure/typespec-azure/releases) - [Commits](https://github.com/Azure/typespec-azure/compare/@azure-tools/typespec-azure-rulesets@0.63.0...@azure-tools/typespec-client-generator-core@0.63.1) --- updated-dependencies: - dependency-name: "@azure-tools/typespec-client-generator-core" dependency-version: 0.63.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: typespec ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index b7b27b227df3..d572fb83c757 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@azure-tools/typespec-azure-resource-manager": "0.63.0", "@azure-tools/typespec-azure-rulesets": "0.63.0", "@azure-tools/typespec-client-generator-cli": "0.31.0", - "@azure-tools/typespec-client-generator-core": "0.63.0", + "@azure-tools/typespec-client-generator-core": "0.63.1", "@azure-tools/typespec-liftr-base": "0.10.0", "@azure/avocado": "0.10.5", "@azure/oad": "0.12.3", @@ -1038,9 +1038,9 @@ } }, "node_modules/@azure-tools/typespec-client-generator-core": { - "version": "0.63.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.63.0.tgz", - "integrity": "sha512-zpvFvjCjNW+GWzHBV7vJ2E1PKXrmyNqp7FQiYo/D7PJBVTXNtOyIKqqo043ktAaWihbr8cl5QguuNSoBAKL0+Q==", + "version": "0.63.1", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.63.1.tgz", + "integrity": "sha512-/LMrPVKrzPRBicjVSz+zqC/EBysqbIKgjfoAxMDXa4nmJchzxls+hgvprAZsCAJy5uEeshOn7WdNT/aQkBQRXw==", "dev": true, "license": "MIT", "peer": true, diff --git a/package.json b/package.json index 0416f09bba4a..a613319b95b4 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "@azure-tools/typespec-azure-resource-manager": "0.63.0", "@azure-tools/typespec-azure-rulesets": "0.63.0", "@azure-tools/typespec-client-generator-cli": "0.31.0", - "@azure-tools/typespec-client-generator-core": "0.63.0", + "@azure-tools/typespec-client-generator-core": "0.63.1", "@azure-tools/typespec-liftr-base": "0.10.0", "@autorest/openapi-to-typespec": "0.11.12", "@azure/avocado": "0.10.5", From 5214e009eb7f7e43df634c52803dd92bbfe4c978 Mon Sep 17 00:00:00 2001 From: ZiWei Chen <98569699+kazrael2119@users.noreply.github.com> Date: Fri, 19 Dec 2025 13:46:33 +0800 Subject: [PATCH 067/117] fix flatten breakings for avs (#39325) --- .../vmware/resource-manager/Microsoft.AVS/AVS/clusters.tsp | 2 +- .../resource-manager/Microsoft.AVS/AVS/placementPolicies.tsp | 2 +- .../vmware/resource-manager/Microsoft.AVS/AVS/privateClouds.tsp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/specification/vmware/resource-manager/Microsoft.AVS/AVS/clusters.tsp b/specification/vmware/resource-manager/Microsoft.AVS/AVS/clusters.tsp index 73376903fb46..e2abd9fd85f6 100644 --- a/specification/vmware/resource-manager/Microsoft.AVS/AVS/clusters.tsp +++ b/specification/vmware/resource-manager/Microsoft.AVS/AVS/clusters.tsp @@ -102,7 +102,7 @@ model ClusterUpdate { #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Legacy flatten" @doc("The properties of a cluster resource that may be updated") - @Azure.ClientGenerator.Core.Legacy.flattenProperty + @Azure.ClientGenerator.Core.Legacy.flattenProperty("!javascript") properties?: ClusterUpdateProperties; } diff --git a/specification/vmware/resource-manager/Microsoft.AVS/AVS/placementPolicies.tsp b/specification/vmware/resource-manager/Microsoft.AVS/AVS/placementPolicies.tsp index f312ce23a540..915a5439f88a 100644 --- a/specification/vmware/resource-manager/Microsoft.AVS/AVS/placementPolicies.tsp +++ b/specification/vmware/resource-manager/Microsoft.AVS/AVS/placementPolicies.tsp @@ -142,7 +142,7 @@ model PlacementPolicyProperties { model PlacementPolicyUpdate { #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Legacy flatten" @doc("The properties of a placement policy resource that may be updated") - @Azure.ClientGenerator.Core.Legacy.flattenProperty + @Azure.ClientGenerator.Core.Legacy.flattenProperty("!javascript") properties?: PlacementPolicyUpdateProperties; } diff --git a/specification/vmware/resource-manager/Microsoft.AVS/AVS/privateClouds.tsp b/specification/vmware/resource-manager/Microsoft.AVS/AVS/privateClouds.tsp index 19a74cc9885f..c188c25fdf73 100644 --- a/specification/vmware/resource-manager/Microsoft.AVS/AVS/privateClouds.tsp +++ b/specification/vmware/resource-manager/Microsoft.AVS/AVS/privateClouds.tsp @@ -193,7 +193,7 @@ model PrivateCloudUpdate { #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Legacy flatten" @doc("The updatable properties of a private cloud resource") - @Azure.ClientGenerator.Core.Legacy.flattenProperty + @Azure.ClientGenerator.Core.Legacy.flattenProperty("!javascript") properties?: PrivateCloudUpdateProperties; } From c920bd9f5b44dd03ea3e195ac3ae0d4a79f7601f Mon Sep 17 00:00:00 2001 From: Judy Liu Date: Fri, 19 Dec 2025 15:25:10 +0800 Subject: [PATCH 068/117] Add swagger and typespec `module` version suffix (#39133) * add suffix * add config * add config * add version suffix * add quota version suffix * update version --- .../newrelic/NewRelicObservability.Management/tspconfig.yaml | 2 +- specification/newrelic/resource-manager/readme.go.md | 2 +- .../paloaltonetworks/PaloAltoNetworks.Management/tspconfig.yaml | 2 +- specification/paloaltonetworks/resource-manager/readme.go.md | 2 +- .../quota/resource-manager/Microsoft.Quota/Quota/tspconfig.yaml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/specification/newrelic/NewRelicObservability.Management/tspconfig.yaml b/specification/newrelic/NewRelicObservability.Management/tspconfig.yaml index 89d369b5e2c4..51d63b55ce74 100644 --- a/specification/newrelic/NewRelicObservability.Management/tspconfig.yaml +++ b/specification/newrelic/NewRelicObservability.Management/tspconfig.yaml @@ -40,7 +40,7 @@ options: "@azure-tools/typespec-go": service-dir: "sdk/resourcemanager/newrelic" emitter-output-dir: "{output-dir}/{service-dir}/armnewrelicobservability" - module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armnewrelicobservability" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armnewrelicobservability/v2" fix-const-stuttering: true flavor: "azure" generate-samples: true diff --git a/specification/newrelic/resource-manager/readme.go.md b/specification/newrelic/resource-manager/readme.go.md index 098de10debde..4c73676ee998 100644 --- a/specification/newrelic/resource-manager/readme.go.md +++ b/specification/newrelic/resource-manager/readme.go.md @@ -4,7 +4,7 @@ These settings apply only when `--go` is specified on the command line. ```yaml $(go) && $(track2) license-header: MICROSOFT_MIT_NO_VERSION -module-name: sdk/resourcemanager/newrelic/armnewrelicobservability +module-name: sdk/resourcemanager/newrelic/armnewrelicobservability/v2 module: github.com/Azure/azure-sdk-for-go/$(module-name) output-folder: $(go-sdk-folder)/$(module-name) azure-arm: true diff --git a/specification/paloaltonetworks/PaloAltoNetworks.Management/tspconfig.yaml b/specification/paloaltonetworks/PaloAltoNetworks.Management/tspconfig.yaml index b66279382c28..0559e30e9583 100644 --- a/specification/paloaltonetworks/PaloAltoNetworks.Management/tspconfig.yaml +++ b/specification/paloaltonetworks/PaloAltoNetworks.Management/tspconfig.yaml @@ -34,7 +34,7 @@ options: "@azure-tools/typespec-go": service-dir: "sdk/resourcemanager/paloaltonetworksngfw" emitter-output-dir: "{output-dir}/{service-dir}/armpanngfw" - module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armpanngfw" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armpanngfw/v2" fix-const-stuttering: true flavor: "azure" generate-samples: true diff --git a/specification/paloaltonetworks/resource-manager/readme.go.md b/specification/paloaltonetworks/resource-manager/readme.go.md index 52f559885df7..a2e8648650f7 100644 --- a/specification/paloaltonetworks/resource-manager/readme.go.md +++ b/specification/paloaltonetworks/resource-manager/readme.go.md @@ -4,7 +4,7 @@ These settings apply only when `--go` is specified on the command line. ``` yaml $(go) && $(track2) license-header: MICROSOFT_MIT_NO_VERSION -module-name: sdk/resourcemanager/paloaltonetworksngfw/armpanngfw +module-name: sdk/resourcemanager/paloaltonetworksngfw/armpanngfw/v2 module: github.com/Azure/azure-sdk-for-go/$(module-name) output-folder: $(go-sdk-folder)/$(module-name) azure-arm: true diff --git a/specification/quota/resource-manager/Microsoft.Quota/Quota/tspconfig.yaml b/specification/quota/resource-manager/Microsoft.Quota/Quota/tspconfig.yaml index 0ee1b8fa2370..d489b5172b7e 100644 --- a/specification/quota/resource-manager/Microsoft.Quota/Quota/tspconfig.yaml +++ b/specification/quota/resource-manager/Microsoft.Quota/Quota/tspconfig.yaml @@ -38,7 +38,7 @@ options: "@azure-tools/typespec-go": service-dir: "sdk/resourcemanager/quota" emitter-output-dir: "{output-dir}/{service-dir}/armquota" - module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armquota" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armquota/v2" fix-const-stuttering: false flavor: "azure" generate-samples: true From 651744ec688d07e2051537f7af3e21ff74f8a0ed Mon Sep 17 00:00:00 2001 From: Ray Chen Date: Fri, 19 Dec 2025 09:51:50 -0800 Subject: [PATCH 069/117] Cleaned up obsolete content (#39225) --- .../.net/README.md | 14 ------ ...-and-apiview-in-sdk-automation-pipeline.md | 32 ------------- .../onboard-dpg-in-sdkautomation/README.md | 44 ----------------- ...utorest-configuration-for-dataplane-sdk.md | 16 ------- .../imgs/example_generated_apiview.png | Bin 77741 -> 0 bytes .../imgs/example_generated_sdk.png | Bin 110373 -> 0 bytes .../imgs/integrate-dpg-and-apiview.png | Bin 86897 -> 0 bytes .../imgs/workflow-service-team.png | Bin 81926 -> 0 bytes .../java/README.md | 40 ---------------- .../onboard-dpg-in-sdkautomation/js/README.md | 45 ------------------ .../python/README.md | 39 --------------- .../samplefiles-dp-for-multi-client/README.md | 33 ------------- .../README.md | 33 ------------- documentation/samplefiles/ABOUT.md | 3 -- .../YYYY-MM-DD/scenarios/quickStart.yaml | 34 ------------- documentation/samplefiles/README.md | 37 -------------- documentation/samplefiles/readme.az.md | 28 ----------- documentation/samplefiles/readme.cli.md | 1 - documentation/samplefiles/samplereadme.md | 23 --------- 19 files changed, 422 deletions(-) delete mode 100644 documentation/onboard-dpg-in-sdkautomation/.net/README.md delete mode 100644 documentation/onboard-dpg-in-sdkautomation/Integrate-dpg-and-apiview-in-sdk-automation-pipeline.md delete mode 100644 documentation/onboard-dpg-in-sdkautomation/README.md delete mode 100644 documentation/onboard-dpg-in-sdkautomation/add-autorest-configuration-for-dataplane-sdk.md delete mode 100644 documentation/onboard-dpg-in-sdkautomation/imgs/example_generated_apiview.png delete mode 100644 documentation/onboard-dpg-in-sdkautomation/imgs/example_generated_sdk.png delete mode 100644 documentation/onboard-dpg-in-sdkautomation/imgs/integrate-dpg-and-apiview.png delete mode 100644 documentation/onboard-dpg-in-sdkautomation/imgs/workflow-service-team.png delete mode 100644 documentation/onboard-dpg-in-sdkautomation/java/README.md delete mode 100644 documentation/onboard-dpg-in-sdkautomation/js/README.md delete mode 100644 documentation/onboard-dpg-in-sdkautomation/python/README.md delete mode 100644 documentation/samplefiles/Microsoft.YourServiceName/stable/YYYY-MM-DD/scenarios/quickStart.yaml delete mode 100644 documentation/samplefiles/readme.az.md delete mode 100644 documentation/samplefiles/readme.cli.md delete mode 100644 documentation/samplefiles/samplereadme.md diff --git a/documentation/onboard-dpg-in-sdkautomation/.net/README.md b/documentation/onboard-dpg-in-sdkautomation/.net/README.md deleted file mode 100644 index 3c071bd90db4..000000000000 --- a/documentation/onboard-dpg-in-sdkautomation/.net/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Add TypeSpec Configuration of .Net SDK - -Please copy the following configuration into `tspconfig.yaml` in your spec folder and replace `package-dir` and `namespace` to your own values. - -``` yaml - "@azure-tools/typespec-csharp": - package-dir: "Azure.AI.Vision.Face" - flavor: azure - namespace: "{package-dir}" -``` - -- `package-dir`: Name of your package directory. It should be several parts concatenated with `.` and all the paerts should be pascal case. -- `flavor`: Always `azure` for Azure SDK. -- `namespace`: Should be the same as `package-dir`. diff --git a/documentation/onboard-dpg-in-sdkautomation/Integrate-dpg-and-apiview-in-sdk-automation-pipeline.md b/documentation/onboard-dpg-in-sdkautomation/Integrate-dpg-and-apiview-in-sdk-automation-pipeline.md deleted file mode 100644 index b2e9c3df6991..000000000000 --- a/documentation/onboard-dpg-in-sdkautomation/Integrate-dpg-and-apiview-in-sdk-automation-pipeline.md +++ /dev/null @@ -1,32 +0,0 @@ -# Integrate DPG and ApiView in SDK Automation Pipeline -This document is targeting for everyone who wants to know all the implementation details of SDK automation pipeline. -It describes the details of integrating DPG and ApiView in SDK Automation Pipeline. - -Before go through this document, please go through [Service Onboard DPG with Swagger CI Pipeline](README.md) to be familiar with the user experience in service team side. Also, you need to be familiar with [SDK Automation Pipeline Framework](../sdkautomation/README.md). - -# WorkFlow -![integrate-dpg-and-apiview](imgs/integrate-dpg-and-apiview.png) - -__Description:__ -1. SDK Automation Pipeline is triggered in spec PR CI. -2. SDK Automation Pipeline Framework checks whether there is a comment containing autorest configuration in spec PR. If found, generate sdk by the autorest configuration in comment. -Otherwise, sdk automation pipeline will try to find if there is autorest configuration file in sdk repo. If found, generate sdk with the founded autorest configuration file. If not found, pipeline stops. - 1. When there is a comment containing autorest configuration, sdk automation pipeline will extract the autorest configuration from the comment, and let automation script use it to generate a new autorest configuration file, and use the new generated autorest configuration file to generate SDK. - 1. We need to make the comment as simple as possible. Currently, the common fields needed by all sdk are `output-folder` and `require` keyword. - 2. When getting the comment, automation script needs to parse it to extract needed information, and then use the extracted information to generate autorest configuration file in sdk repository. - 3. The value of `output-folder` is a relative path from sdk root folder. It is mainly used to extract information, such as service name, package name. In generating autorest configuration file in sdk repository, please replace it to the correct value. - 4. The value of `require` is a relative path to readme.md from spec root folder. In generating autorest configuration file in sdk repository, please concat relative path from package folder to sdk repo and `specFolder` in `generateInput.json`. For example: - ```yaml - require: - - ../../../../../azure-rest-api-specs/specification/deviceupdate/data-plane/readme.md - ``` - *You can also use the absolute path of spec repo, which can be resolved by yourself.* - 5. If there is other metadata in autorest configuration of spec PR comment, please copy them to autorest configuration file directly. (Although we only list little metadata service team can use in spec PR comment, we still need to support to add more metadata because the metadata listed in document maybe not enough.) - 2. When using the autorest configuration file found in sdk repository to generate SDK, SDK automation script need to modify the autorest configuration file in the SDK repo. - 1. If `require` block is used, change the `require` block to include the latest swagger `readme.md` in the PR. - 2. `input-file` will not be used. If the existing autorest configuration file uses `input-file`, we should change it to `require` before triggering the sdk automation pipeline, or add the autorest configuration in spec comment. -3. After generating SDK, SDK automation pipeline generates ApiView and then add comments about results to the Swagger PR. - -# Future Work -Currently, we ask service team must add a comment containing autorest configuration in spec PR when new service onboards DPG. -In the future, we are going to integrate it with PowerAPP Workflow. Then service team can provide the necessary information in PowerAPP Workflow, and the information will be added to spec PR automatically. \ No newline at end of file diff --git a/documentation/onboard-dpg-in-sdkautomation/README.md b/documentation/onboard-dpg-in-sdkautomation/README.md deleted file mode 100644 index 5bd2172b60a2..000000000000 --- a/documentation/onboard-dpg-in-sdkautomation/README.md +++ /dev/null @@ -1,44 +0,0 @@ -# Service Onboard DPG with Swagger CI Pipeline - -Service Onboarding DPG with Swagger CI pipeline can help you get generated SDK and ApiView during the procedure of creating swagger PR. -The benefits are following: -1. API signature could be reviewed at the same time when we submit a Swagger PR. This could help to detect API issues at the early stage. -2. It enables service teams to access their SDKs even before their Swagger PR is merged. - -This Document describes the process of how to onboard DPG with SDK automation pipeline. __This document is targeting for service team, who wants to onboard DPG.__ - -*If you want to go through details of pipeline implementation, please go to [Integrate DPG and ApiView in SDK Automation Pipeline](Integrate-dpg-and-apiview-in-sdk-automation-pipeline.md).* - -## WorkFlow - -![workflow-for-service-team](imgs/workflow-service-team.png) - -__Description:__ -1. Creates a swagger PR with [Guide to design and creation of Data Plane REST API and Client Libraries](https://aka.ms/azsdk/dpcodegen). -2. If you have added a comment, which contains autorest configuration, and run `/azp run` in the spec PR, the autorest configuration in the comment will be used to generate SDK. -Otherwise, pipeline will try to find autorest configuration file in sdk repository. If found, use the autorest configuration file to generate SDK. If not found, pipeline will stop. - - Please refer to [Add autorest configuration in spec comment](./add-autorest-configuration-for-dataplane-sdk.md) on how to add autorest configuration in spec comment. -3. SDK and ApiView will be generated in spec CI pipeline, and you can find them in spec PR comment. Refer to the [Get your PR merged](https://eng.ms/docs/products/azure-developer-experience/design/api-specs-pr/api-specs-pr?tabs=dataplane) for next steps. -4. If any change needed, please update the autorest configuration in spec PR comment and regenerate the SDK by adding a comment `/azp run` to swagger PR. - -## FAQ - -1. Where can I find the generated sdk and corresponding ApiView? - - __Answer__: You can find them in spec PR comment. The generated SDK can be found in comment `Swagger Generation Artifacts`, and the corresponding ApiView Link can be found in comment `Generated ApiView`. Following screenshots comes from [example PR](https://github.com/Azure/azure-rest-api-specs/pull/20017) - - ![](./imgs/example_generated_sdk.png) - ![](./imgs/example_generated_apiview.png) - -3. What should I do when I encounter error in generating SDK in swagger PR CI pipeline? - - __Answer__: Please check the comment [Swagger Generation Artifacts] and the error message of failed pipeline. If you find the error messages ask you to fix autorest configuration comment or swagger, please fix it. If you cannot understand error message, please ask sdk owners for help with mail: azsdk-dpgsupport@microsoft.com. - -4. What should I do when it creates ApiView Failed? - - __Answer__: If the ApiView is created failed, you can find there is an error message: `Create ApiView failed. Please ensure your github account in Azure/Microsoft is public and re-trigger the CI. If issue still exists, please ask PR assignee for help`. If you want to get the ApiView, -please follow the action in error message, and make you github account's organization information public, then re-trigger the CI (You can re-trigger CI by comment `/azp run`, or close and reopen the PR). If it still cannot generate ApiView, please ask PR assignee for help. - -5. Is there ApiView generated when there is no sdk generated in sdk automation pipeline? - - __Answer__: No. Creating ApiView is based on the generated codes in sdk automation pipeline. diff --git a/documentation/onboard-dpg-in-sdkautomation/add-autorest-configuration-for-dataplane-sdk.md b/documentation/onboard-dpg-in-sdkautomation/add-autorest-configuration-for-dataplane-sdk.md deleted file mode 100644 index 8c8c9916064f..000000000000 --- a/documentation/onboard-dpg-in-sdkautomation/add-autorest-configuration-for-dataplane-sdk.md +++ /dev/null @@ -1,16 +0,0 @@ -# Add Autorest Configuration for Dataplane SDK - -## Prerequisites -There should be a basic readme.md together with swagger, and you can refer to the [sample](../samplefiles-dp). - -## Add Autorest Configuration for .Net SDK -Please refer to [Add Autorest Configuration for .Net SDK](.net/README.md). - -## Add Autorest Configuration for Java SDK -Please refer to [Add Autorest Configuration for Java SDK](java/README.md). - -## Add Autorest Configuration for Python SDK -Please refer to [Add Autorest Configuration for Python SDK](python/README.md). - -## Add Autorest Configuration for JS SDK -Please refer to [Add Autorest Configuration for JS SDK](js/README.md). diff --git a/documentation/onboard-dpg-in-sdkautomation/imgs/example_generated_apiview.png b/documentation/onboard-dpg-in-sdkautomation/imgs/example_generated_apiview.png deleted file mode 100644 index cabede2a659c42d28344a96687a373d2cfba0d60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77741 zcmeFZ2T+r17cQz>1v@GzO<*f-n$*ywMn!@Mh=BB_KNA`p7-Vx$L<4xvPp z&_eG$N|hQ&fB-3+pzi(u=gzq^cjnH$GiT;x2AJ>TE9+hFde?f^v(}r?Cy&)GoaH!s z?AWmj>JK029y@j_?AWp6ho>3nXZ9a1f2037?xCx8|5!=S^=10ONxOSm_l_Mai#kVn zeu{p4#_gf8$FXBqJdb{k&)D+#9y@lJqyFIDQ(ucUs>`RV!*!&HOzk`&(!TfO;r-2k ze!Ybf=C47Wtlnja1unlxKO4pfD==b%c|0dH|M>mrOPGh}PhP#~gm~~ECm{UU&HE2d zNx7-1s`^QsWz+FC`egC!csOSDm9Uva>MFcnsr5&{Qd@e(l8Hw*>mId`cB-h}j`X8{ z^vA{)zTfcB@?;N`R$q)gLl^ber$<>l>^Oq$pTlp$j0iURnSYLZUi_bb({=GpI4>9E z4uhf775#K0d4QsAkz7t^m&;cGtL0e*&sa|Uqp$So^L09uC>VtoV5&gcNKkTd(GqE7 zf?94XXQ=u`~gZA4Fwe_WlQMkm!ol&eu8cY-dD<5EQh2mD!@q+p_jL`XtY5#?}L)WBrg~?0z zPv3a``&V%M?nLEMZlmmabB4(I6dmNC^n=`$`qlaNO8gtG8Atnf5wl2c7+#Ig+_Tf) zv>b?(4$LB9H+oK#7g?jP%LVBk9PYkJH=axT*DzK>{(Yo_*kk_}cJeA#EUW$1-Yo9= zYD^(dtr12VQGjYhxRYGD5wN*WTgo$fWt-J9XeS|HizJqF7>>p+)5QKKDW4qTXx#fQ z6FwEoc2%r-N_CQfp6R7IR=@AK%sz>>Q)meHzGC6dvK8PDy?Bq43CvU{YVImuL!K zayOpj_kgzO6Un_^F+<9}4|~4#V=L}s+TH&QA^+llgMjCOu~MOtzn9%jed#dmOhxvT z+#_T8`s)Gi*n?F>;0RgyX+X8V7;ot1|Hxj5@H`tvLkC{=`*p8N&}?czOHW}BsEn3x zUfHXXoM*(}Ibvyg{*=If?z(UPBZn%N@%R1TZ;awnxR#Q8PsJzysU3Y*@kg>+k$bA` zef}SrKA6o7W z#v1BDIiaS|H0UJiJW3d)nZ59@TH@QGbltOI^!xfaG3%mihjb$?`1atmbkap`W$u)U zb+Z5bUcq29*iq1&!Tg#zpLum3;NPK!UG?{3!+@IwN|gB@@77($P?K9uOILZKLNZ*; z``^v6_8CRXDE|-i&al+g&Loq8yI-T zvUChl3*F<}I&Q(JmS2#gwk#93Ux@8&xB6}Gj;=0LqTM}SBaPm{0p3tnQJR)pU7!4A zkh`mRSWz(KN}Ocn%ORh;BVsNw<4mQATy1|4i}L3b46qH1Ci5v57+(=X?)xWcM-zL{ zcMDWy>X!3t+OX)vaVCnv2wqz(ilAQeJY(R7RB22OwrhV$b1WZz3_^iMH{*gfnN#Y7QVebf);{rZ%Zz3^LHuc7J=Yvg)LxkzjZ_@L zT3t)}t&rf5n3fAjAl2lpDrn`@3#^8U!#D0|9PTn?so^_%S93C3zfWKWZQ?3HR$Tke zl+$aq@>4CP<`{ zOK(`xIGJs>a$CjiyvBEwUoU1m7HQKcod|%(Z0rrG8ir?6yF2Pj3S#Xi;^xL0=rG_7 zi+EUgfzKp|-(C_h!A|zglA+44l_x*Bkk)d7eKV)qifZa~Ew18@$OVx5Me#7k#|1Gh zfmwMcu4HFFxwCVU1HS!kYA)|FVc06UUy|UL+vkWJ$S33x7%d241i+>rQ z?=$gOHtAP%dn(FA@aI$^%31zW0kiN-Rf94!lvKEVa|ni?ca(nwp6ON@etLofla|=- zf;PJep{hm+$)Yg=pd0_p0UW80^k4~DG`yL%l+427aO9o7!DovOYbKU)G(2IrIWYI+ zO*I@KfaR6*Wvb;&Mek}x`0JtU= zZJNjvJxInSonkIc2>;-a)RDk!YGdxSD+_WQZ_Aq&GPJmI7&NvZ+cA&9V`r2hDLq$3 zfg5YxD6`u(tuV98OJ@wgC~8a>!6d||1C>LUCe`3IJh=Y{Ax;~8-tCahG#DHw$Gcc(ITQDv^I0X-lPMw zq%%w2YDZJ~tXTb4sTz2dKwj`qih7s3d|jjPdXKu@VVrO9tQ1!!*HTkISCG}DpW zKj#3u(%!ae(=V2X?FPOh&E-z!VY{xnEH6Cv!Y=C({WE$y2`ZQ(3*_ii`i(;Rnj@i_!&@!i4ipF%4 zX9;%-Tvl9uSf_|sdrw1wUi-5LoACf657$wV`Ukd;cUQpQ<*T}z*=mBN!lKq=tIqLw z^2S4G%ZT!W!I{sHu$KN=AFxmJ*259YJ^74OpYU;S`&6Ocl|##b27KVc`x?!=*~!CR zJe1FQ1^)HUPf3u@4Lu8U8<^g`G`1_tl)+M^7$FZ9gpz7v;Bx;*$ zEl#&Vc*=D=q7;emmHV~+1R~!XXqZ(?vtb5 zT3Rb5{AqOFh~&^B&BQenzOV-2YbT}zG_?Vt_nYiAe}sc9#S9PqtsXJeTfeC^iEEPt z;ZrAX8m{aoSw25sZ)7NXaI4DI?vup}m&%!<#_|CCxcN-^2?77B@L6`IL-`3N7ssGM zj&u`*sZE^St9Z#UVu>2hU~#xBplusar#l)d*{{|vf@O~Ld7*fZiq?_ zR+c23;+gbn=?t7AJ{-m{HD$w!sue(`SdO|!U-3y^1*l4pdw5s<*W_`b$k;nkt2ZQ4 z8Lo{QQ++0BVL+?Vcc8Kv#zwJhzfkBxuXgu4&6>2_uDB)3$y;f-Ktlr{F@K6Yv};qh zp+(qyP!$#9R}Gqh`ouNt3=E1Mx>N^@2v|_|f?p7~`E7PM(`?oyi8iq^Z-O@S8+Nuh z>PU>hgp^*S-lQpi?;#aMWdY4NQy`{G_f z8eOBEaJo^egdZ3l8Z6Hw?Lx6ELXJtmWKkwXS8D@Ir08Kw-on>8TKU9#xb|zYjBg=NgkBVf`0qj~F)6M~_ zW>ju(Ku^nleSNHV?gcyjnvFel87NcQh0j0ePPuxOUEuZB-dI(!#H>{7LTqZyxr4f@@Ru^`gDln5Gd=!t6Isw%Zmk_m=)voZsh(Xqw=C^&8 zFV~LLDo{cdtgQW@M zoDKbnZ9|?Fly$MRuv-$1Sayuxs7HWDxLHXO&-BgJ#{O0))J7@` zNRRDY+MLNcNUfPAaFIEQHVha~MOVydgWOl=Xf7^ei+48shU!dg?bPCV4BFN$t@Q42 z{NH0UkE0L8=X&hRtQ4LeKGV;0r7|`aah^kN9%JEpefcauIaJmWJ#j#QC527_! zOpR@k3oBdNqrmBMgWh_-x5#af)1=`LB$*cG32ifhhygApa0jivP76Xok{b5(8YB4U zRe&;Zoq(^e`E4p70qbTrd{TF&>V{y^Lr(AqN~znW9z^5*VOw?-QojQh?6P#sDWITnhFjp*s%5-0L*hPN7g`NpdG#4pdT(xlM`FD_-#eY%KlbKeGvVqfgp z-LtssTa%@Q=fVP zlGmKb)-l8yAn4!>49dOidG)~O#)*j}bc8N;+0VNU8uUy%SSS4ie3nv)U-bsL=hzPP z{rFoE=Hwh{u1xx>naYr}G5n%lqSv;;K}{X{c4B(Rs91?!I+VaB%nkwXl;?-Dp5q{;>1-kMvK;2^+_xJVeG-9Y#2d3z<{Wq1P6wk?|kRG_Thaf z4k|U_ZDqUD@it_rTopb51m;8_>1JDe!aDYAJ(Ua2bu^*GS!nYevrFBV}dwW?IVl(Bgbp%v3C>yxq80=Yal=nz!rgjG5 zq`1*YkfI^LS;b)dAiPetA9Kj%U&)M_zV{1qrmaI$XQz(J%*w>@A-iH~)kj z2+^3gt(vBT&PKdF(Y$JUcYFKcT za+T*@l9-@VWFo*;qf4QZsIpHTu*5cyb3YDnvd|-aV&j-hM!{;)yJk+QWZ9Zz++PeX za)>*l&<1OhMy($zfaInPA=Kv1qP9(xl|FFZn?kBE%8 zki%YH{_T0R#A#M%A@SO6h^w#_OJ0Prh;@&=WLKO--4#iv5XB-j{L1>Zgc@@qSryN) zD{KG$s$|&h@e*T$;qTvv zU_yYf+Y=#1jV=oF#Yq;?m~(VAoO=tg7q^oZauIFB%LrI%F;X{Pul%TGlT;<-%=~rYWr1L}yj-|5&VLZa~JYDyPwf9vH%$7>j6ZR|PUKlKt7cLprn{z@k%xg*2 zCzg<(i7@(^^xiKAxl02TmpCi4_j7Duc2@y~#h2HMDvCB0ZXVEX*Ix&@@37MsF=sC& z$5x)SjDBESHdjiXFB&~8B@FY>Aku?(Bdj7I*AA;PZQbRV2PB8CFqi0744by?_;fUc zz_>;Rn9hM%SmOnyN=sFOfN~P&Ld=62%>uFJ0RNGbk_W!;;IkO_rs?<%b3+(n%#`Lo z_{Wa(cGu#ag|B_=n5*1ARo!hBI|ZJjEAw}_a1^Kg4Ro?s>J+vHM{-IDXiOP72HJY2 ztNqc!ZgjxbS?bCF8xM~nR}|nP`$K%|A{+=22f2?AF`weS{WYvR`zGQPFM9=6a%&0_ zFet0*9{ed@$IL$cs_S6EX91bX^qp57MH~a(%aw@d(|ATF7Q^!C*_~Ju!%oHS+r-J2 zY?$VC@Ms=QRNPxqD1Xp~dX*iMum-~^`>i&QeTM7SS1O8xXBqQCilH|y@)xF8Vi>C55i*m^n6ra@QZ5yeHa)%s#@-Gl`D&6g^{UTLOxy`P}8H#_+zwvNs1y zgi)EQ;|K17hW8~V`F%~LmFn2vGSJdjiGX7PtT zxi1B*t2ZdcW?bDhZzlweeJttuB2$B9ZGb@zy#KRe(#ZX#xgE>83mpCliRJ}Q{T>x` z;XPe{5~F8fAv!8 zEeubA+y!L*DBNgUgExaCn5;jaydY*hwzoJC9n|G&+0gib_d>*3wP0H?=xcSu?M7P@ zYj%vS=aSe6OTahL{6F+6+$@w4wXy4|P#v%2`K=3GOc*U=`kJB>*t^7#75o*1-Q4Bc z!39i4m1G!G)3r92dqMV-JyR%6W1)QVKg&in=fZm8Ej4$6JinKklf#e`ue)8eN1lq( zDIajzlkGy6$6}$~70|?#mGS_q%#pL?0J(o>oP6AIV7&M> zz#?+y1<1W==N6y6Jx>LPJmQY>Mt`MZTVuMJl1;?K2?AyB3dr4lvKXC!S6w}b6dub= z)>e0>$Tc?Tt`4|&8~}&`RX$v?)DWS)yIHZ)VLU;rrOSRJ@dwR=4v5;JcUHY-9B>^Z z=^kFg-a^>g_A1ug5&Qz4h;3Wxg$N_Y=AA{JKhBvC${H2eka18cUo`k@QhGJ{(*tFi z)3c@yUei#W)b^qMXm-r*S69rgWc-P-77KxCm6tI^In~D5I%Y#|Qd{Xrr(<5gzh!jH zQx49}ABe{LJ=?;1H8Wl-%g*c-h`d1fvdacMeLDT{kAc-%owPL`hDDM~6v^ols4Q{g z_3JJx&7TCLborwQS{1^7N73bA1zf!Bi1*sYjpN4sKlC+J=ySkluRmj9iiD!IIU<{WbW-ZaI41kIy^S}rh6lHT`gryTu|(+@~32--u}3OiOX!o7WYR4nwD9e zJ`N7+l%~2`1j6j~oN0^gI+V{mXFXUBomCh9NpcP9VXU}2Q}rL>v%#9=eD z6xhY)N>5x(L(OpxtN`u)McQ)<(STCzCqfUTf5@0Qe#O!Nfn}!fsTp z(}{%?rmt5Eu$`;Qc4>E#Qw&wd8$M^pUs0Pe=jGh>!-|ezZF}TQ+MYJ9PzL&;otzkN zXtSD7JuaSc+s|c|necq~D`(%w6YK#Yn(woW^g%e#pd=uI0J`b|t~2YOt~iq-Ncm1am80Ta5h5iz-5 z9W48Sg_3D(j)pji8vr3h!{-^uTWSbIxXsaAxtVRi#64)dsLf30&Pq+Z1ZT1jWt|+i zWAUQcjEW!aRFzk1p1QUlB&FocvLxzXK!}ee)te4gd$Nmh1U8!asVi!&c9KWx`&&#F z;Ij>@{eEd#HMaQ%PsL_}psPH(2%`e8{g!~XMr3S1enObG$W{TQQzE<5w$OF~8tKf7 z@F06}%2`PL0X}U$C4+Xrcy08?@>ElscE-h?b9D6VL-Pb}AMAaN0^VTK+*c2HK4Ked z7vx<6;Hjho84Mr4!c4;*IWwu$UsYsu>OQQO5k?NhzozoBB*aIfs$K@`DR{ZE;l{ zs0Y^ymJ`@=LeEA_6COqC_4^g<>~zv8i|sRdiycIr>&0=brnag)QRh-#HS#Em)GY77 zv;GRVfXWsosSeV4L6Ly_i&vdZT`KM)#!3!zJ8~6Ei=#t!4(xj4vcRKRg=AKn;s|^P zo#5zYDIlMnd@!7&WpR}=sNn&5kC>G|7ww?dbBPv8L4s8)VNNhoK1DO(@c30zKRs=u zIMUnDb2d2>GZSr=?r&X}ZZ9_EMlO9t57xyE`^|6py~ry;Xigie81bapb(g`s6T`AX zHRi`pq0)n8!>W+R$g8PQN62c(zP#Y(HdSL}Y8d839OY=;RpyWHY@T6UUSLS|p4CkF zU2n;r;SDD>QQ?|Rs%gkFLGS(_reMPCPWhahw=wR)T6804X7r?5T2u#}Q=X!=lgn$~ zrFj3C8wU7Wl}EIHP9MA33)uxdGq7iIsw#1cF@P|2kj5G3-_bz9cF{ee^hb3 zxMkYZbPMKC*<|-({+9j#c$9o8)$n~2F9BDobVHKA^=FV@!5`zg|>c;+pc@>S@(h zRv{Zb2;QdOm$N#gG?rR^pEjB1Ge0Lya9i2yjb+Rnr!y@BtM9D;@>pXni91xb?adjM z2&-aK3O+&^wy{k0mHi5RvL7h@ZBtA+In4q+$LV-HAJ#Lg_$ck&cQA*(v@rSZ zg+*jxRc3`|lg^qZDV7j1dxggxn~lz-nM&QP8Hk#Ye&w0+tJ=f+TIfk{8sTqLvnZ)w z?N^De@CMag9w%JV@?#i#z*lBrXkS-h{3~=Cvf_kk6v+2)$Wl6edM-k-G{o~6|uiW6R zO(wtvvUYwu=TnSTo$Va4LKtb>xzQQ=(_9sv)4t#3)(Kk<|lLa@RH z13CiTp1>%ss4lZwkTP;OWckPyyuKuKlP-4uSNX$F+{Q?};SSma%E90sWL&zTc@j~3 zR^C6t>h+VH0YBJ|+AO_J*S@8f7mOX!{Z%@izx8he!z1kP((xsb#Qpp$)SYdd4ZfK- zMs9M#{q8Q0JV(S2C9ebGH^OlI%-fm7ncSIb(O}VVQ9XOVUpl0V^VfgZuzyy*;R8w( zIyc^4IsE^m?EOnq^ilnPQi}h-KK<#ifN~JU*Cv&Q^?0u5Bk&Z0*uz#G_S$FdG%;QM zpIQKhEk}wJmB&p$2W=dYclot2&kg^nyv^7KX?Fl>VP_w`Icgf#oC zkSp+i%HBset^Dj%cseam?HAV8sGFvP*^vsA&%$dHXy#B zLv4Kp%(5Cawm!KJtvqT;`M-I?$o9^TDzA&z*|2Px@YUxmPH{$g>3!sUl2?B7&vMW& zGrXTqJDU9VXf{l09KSXQRLE_t81Eq9=)$t<$qcgb1Qfw1wUd7u}G|iSkKV6 zfBUNJWyHg>UH_|rN{WFE^F;Q)I@LH%z^(E**)acfVjYV(4w4wU0Jr+*#NVy-v92(H zB>p*Z*ZOar^Ij+Z)BN^c;_KZbk`m?}M_utQt{rUeR#{W;+=yANb z5g(D|seYKWh!+|pc3j)9EW%Nankb z36W0$oF_O3oN^6Ag2oTp+4N+2=X-!peb#^7f6UGH6@B&*CCxratr7I*drda~U^BoJ zN93cV$QY-fJLZcGoAL+=&QwPZ3_o}{gOyKWbDe)-@CL_%)3ULg#Q4lU5nPn%yXKYh zEq7ruk4EB&f4(cLXOYBw*r!KD={SyG6FK+$Wlzo?N$Yi{sY%8-2zMd0&frl^aXdFs z^7JMcy+)q*GM0BLghQR{Q;cpG+OznG#;u~ibCHN@?defn4cQ+c^}?tvfE;A+>Wif! zbK6;UW9fxI_WAW9O%1ta2E+TsIPpB+JC&YytA_?yDJ>!R!D~6J?Vn->7ls49g?zA-9QNnO3Vw-GxzDBnqe0Cr}3RuvVxF{V)Y83BD zsWAAufxDTNwqNzpXWet3-^nB?98D7e3`V@o5?y_qdejE{^K;^8eSx%sOCj}LTUxUk zZP*W_aM(knPcMV<5J4W~F4%LD?$0yIe@xmcS?6`WF7wV91iL`EK(o7$=oH*12l3p_ zLTg*--%lq(jX7UG5d8gMae7B8U2xI8127dif0arsNfqN{50vvgdR`nq_~UqpQ(|>T zUbtF)VCp9nH_yw#X1Jlje@&_Ym#4M6#<=pzy9!9~-3u5` z9S5z9!HjHdJZG%SB_#%X({|tPKg(1r6h5cte)aqMYC9$?CG@v?`|OXrT)zJ1x&<^? z;>+w*MKG6t9b{dT9X!H1ke`LVK?by%cM8xOPlCTYjJ-}cg&y995kA7b_U+F}uaUJo z^8#(3t4s(e3$Et+Aqso5@aG#d4Y6$Kr6?V=wqvm_!uQXe9IdJ1D3-$?-|`a^2t)Ml z1Q)jnubI79YvFv}9Rr-}&4Og_l3%lrqp zz`g|l_x{*pN$Ko#9kYIktwE3TSz6{hBEK%+9^xibd$LcBlXPrX>}+|KW6 z5#Sai@o~Lig>c#Er zWrpWDxZqzbu-OMX5alI8#p2vi&ix0LNqM>83-d48F^x{K1hNAk1rT>>XGgT$ZOq9iKUHl-ccuga8HbqjTq8{#IV}xg*b2 zb%yS^R+OLQs*R*}COx_p1wUoIEMXktk< zwaMkwN#pKz9?#nqkqBqBVj&mY&h0ExQz8<_Rsqc=3Le+Fn)-`8SI?bd1RcosYIpfn zWpXv4OC*h+fi}VtuiNr8&2a)3BOMc|Cm@$ z%%w_nq&btU*UpuDt#A7_W##Q{uDSy8W@%jP7k*Dr#7R2LiI_N<1sTbSc&fI0zw`ix9; zcP!g3y@Bv66Oulf3L3t$j?LDMr($sV$}EmSH&B3b{qwzw3800C%Dt;`fQi7b)kvN6 zp5nkI9;7s9UdFpT*4}KhE`gH00ZE_0NS~v1dD8^%i7hHa-dnVxQVfDM`1}y?5Lu0pXS&}-tr|PM4>^=_PQRRh0 zN9uJ6ytV(sqFIJ3SUgM*5ks^`A+ZO;f(W0q6r=WM@Y(HrJISz7Z3Xv9je;nK19}Pa zwld$nIKN8au+$josCBiKSSe5$n<^`( zSOi>hh^8}}<#H0%ZKpzRvgVBieH@!hiAjn~lDjS2KB5$oLozZ`7evqrD&O}z3sE0M zX!Z2cu*Jcf2BC+8(Srhyxpi%n|43>RNE8)Q^K>>KJMdGOHo=0nEKGcFsoMfN!t#R$ z_x!N8c)VNP;-l_JL}DZD8Gi}(H!AoDrr0)*qRkh5c^|4(IWsLaO0!5B1;&*aHGQ)> zKSnovy0cX3xR4gC2y%~o^}JH}pha_gQ_b4Yk%g(U32LF$X};|f$T`nlp$P`Lqn#TL zEvFCoDYoIx0qA!@%z66n;<+xT$y=y`c5^|Z{I-q{L=kra&*RPf$21gTdQ8)El64f5 z*&YWbyB_FaUTEx6kA0c>_6JCe0VUa zowW<9JXp*>yjS|28SEEB`E-MU-iN5{C<9t_7EP?EiKdILTXL%uiGT!mU3Xn#9MS1% zq0jcdAnP{%EQ2no=tY$KLSegr0XX#_;#@b1Cq9B+B-@5;?E>SN#()+}Q3h=}ZmQ%& z{+&|db+WR%1;Qw@QIvV@1qqn^F=Ml9{1Uy8-`w&E1T=aFB*3zK{tOvh0TZ(T+ond1b=Ubfz&qzxx>FHZqPyoizst5~ zXro0rfy=Qo*8GU5W|sh`97Rvk9pm^d8iOlKTY+Tk3roH^6NAo!sELniE)_K%dCmcc zKk?pF9bbnwvcUPl)+xXmYQJ1@B1v@LvpWv3F>o1xjMoX+^Xe7m;w3eFx|aYB77jeP zU`Ts8oYWJTHZSOn9z+BT6Fh=^Q&MF>Ah{DtX!^#6CIbSmm*Dn~xsTW7(N&TUsB_Y0 z!*R-@QOkjof>|r_wRi@6a>Q+^??etvp{RjY-RI;AgYQh6`z+F7R}YeFcl0lPz0A{{ z1dCjORKnpaKvRBLa74OnUowOlTwFiXIS z8k0O=Qcgz3dS2q7G8ti@xuU4`3)arV=nTFn9brbxBvU2HvC$(;fivZFj zL^O`C(K7Yag<#1rYdVyR&I5qC>1eQSv5l#7Kw2S(zoOd=RJOQzt!l>oMW_T^tjV#V z%dAdvBIM(g>PY`6Uy(^J-;Ucd8#`$;@s$)y!iZr@QV4i%a1e}~w)6^UouQ^X!&e~3 zcq%kdsDlM}{LWs>@7dBiN`oULrT4xG|LOGaMkOh^U+HtUL-RlR+~1Pt zf2CA?mH+11pV{g8@=+3PZ}M-d{q6h_gr=XD68SgVc6&?DnvYWH)NB7H+;_hIpKSVn z7j7Y6b#vL}XYau;GH9r)@Kn{rSTIBGviKh z@*jWOA`)c-e_344(X`)dV=KHMaq3w2KYWYS*&~Dd!KPAmBlp<*@!y=v-yr&?gB1oY z>wK9OmSa-?&^LVoN5S~L_4(nqN6-F;qTx7oWT2k#?1@Wy$NHRqTj^cI(V7m9lz7T% zb@o{5Ka9^WFV!dU)=@?C_}z+sSe=MJjtpA9^@+c%w_H>tpw>1d2N@nokLvRu_%w<#b!Uia$nwbO zF?{h(LE!Q6uI6&dJI9WFesZ*u5#L|ozdfpxM!BaPktz;-PoGsk4gXqBk+B}i^-O^u zeE0NQDVABL4hYLXNH+$RS!P+!XRlLjp*LL7rqwBeZn<>Wa!mYm)0AL%lS^rt9(Y(n zvXR5tQsC={9g9C}nhLeLMUA0|@saq^kFpj*?Hf6=E!YdNCo(J8CUl7*$7&B>9cj!p z_w^m&BEIB>w_@?dwvG!&Q!XX{+jUJG$z%m`{}7(nAWDAQC#>udVU<&q8Lu5a#0A7QO-%TQ4QE5E9(34ixhn87(A{ka>aU(-dYD7 z|7&$==7+ou^9alOjSH!g69NVt^-|Z1*f4fHM_%$oj-|}ZVQIe?F*B#7)w@46KcFW!LEx;&bbiFE7&huOnvJ@Kx9| zrA#TI{<$2O(J2`n5NIjIz1%Y@W&Nd2!0wTJ;&&f6-Oxk3XQNynCwVc-ws-wFfCdYX zE5$D&Nt-?soXy+Ju0vZjS@B#jS!PbQBZs|t^qT%5&{p$$IVI*Nr!mV}L?8HHxGYg^ zFmU5rgnTkF<{`c(0YD@hw(tVPxOkblCvPfc8}>1|#;5|hd0ExajhZ0pp8B}&r`vTB zJFfGO*d0|N6ha~{T8OlH+hz@!Kv?b&`3tfQl>zem(E2uljStBx{wnY2dVIu=u`tU3 z;ui8(_wA1$lrOtiK}z1-{Kk@vb&SePy4f>`Oq*V=l^q(IxCJ0;}dZ3$Z{^MWdQ zWig2#OftpVEJi`1HQw^CruFI02TL3T1ERFNCY$yO3(6m27Ml{7=WtN+!Vjl7eG$Ed z)EHjf)kCS#_l~8?mJ__Ib}3%@f!JL9!wKhB0p)SNRZHI|d}ekN*|DOebZM8AQJ_Af z@QPGhTL~-)*2B&(X_&g;#igiZ-Z~*)>y8qh=AKD`RxVVWq3iSSm;Lp&g_J?rp(;Uu zGkJJNx+yopjFMvfh2Q!Kch8JdZ_-YNt&YZ`^2}_tKP|Yt=}$%#!rj1mYlS!|HX7b#IRLn*N%W(ud7)+_JqDHyhw^I()1;EHTAJ#aTG?}oSZP>t| zex3#d$3F6CS?XG-j-u;C*AKH;rKKs{muDO zom^g?Ssi!`PgJFeG@(Ut0<>}s^SHK_(Y^16Eu+4&(Y$pycb>NT{l7?0%m)!05g%|u z7@jG~^rs|_{%zg5c}y zwJ8mAY*I|&_=^qYHz1p(vEKf-*s%PD40f{ghT5P{=S`=FT1JU*gQu%Fdo^9h3j+c@ z=0SG$1!)ar*;|M#@? zK|2z7@&W^DrTfkfRWK>FWZ7r_Zsdu3PGPfeDL7N|$CosE?UyV~fK z*Yxy5n@RP2GN%nXO>-$YN@q^rlnx~w5<;=^6;%^M-Gj*C) zXZsWq6%{NZSa#fn1r4?}-38#f33R?)a=TayQu={=K;{ZPJ!cn;Mfo=7z&$KvHi zqIw*vQ#MGu6XmdYuY3e~LEU($N*>jFdYh^IHTm3|ljQ3uO+B%_n(J3rS5Lxcr!}-P z3UK5a6M9{O=jXhY>X^Om_I`@61Ng~mTU)kI?bmWPZFOkHG!~poXqNoJV8_CG<4KS| z5js;dEOjVq&$L*M`VjwAqUhnKHaQmJC&f z66%mQele@Hnmr@<(?>lsdzMv)B6z=|^GLmGR;)}KubTVlqy66YPdmM=p*rd74X7A{ zM+Yje)nnpDy?WC&Q{|$3UG_725rSt5T_K@05>H+Bo&PwBP%qMND6B`#P#**+4YoS$ za<~V`#qYd}5B8yO0 z5MRANTklEP*1dKNIwoXWk(`@kMH=Azx^OzW27PJG!{$J~pz-vM7XaiAh_-r|=81(oKa0=iV;v#-2! z<*naf+iDF>ApU~NQA2eiSz1SU=jkJW?`#k7Bagyr$Oj$TxA>Pu>YVYXULPFK*_bnT zWbCc=!qSTvIRq|KgwZr3TypS{pasn8l>$+gC^c@V9*n8)Fj-Q?X}MJ zhU3K3)9ncdTAQt6KKn`);=XfiY+fttgJboqohnhUtG0PTEV456vHS@3=_0r3D zf(NEBp6qW;pDmN5!=}CbDyN{ZJ^7-lp5z{R7k!&o+P+FC0~pE(X8Ih3T&ITAN2-yL zY8sveh&z5RFnYH-jSy0k6b)Z=lbsTkO`pi?-uh_rijIi>U^*U_ zZJ9;^R!J0i>{Y9yWoK*tq)q)uBW!(d+kraezI`!T$0A^D(?bpl5r5W$GW_!^sLVfN z$m#3uaJLnLLe!ZONEDm2S%$T=me4*efDG+Ib&%*1Zmq$(SJd>+E7t){4^~3yu|3Fi zriCpl`{dDj22@wyI>G(Ov2)eJBn$xB$^^gAk^+|MAVm{oa`d)~k9ifN8{2mb=jdB7 zF|KKPgykE(4gJV^(+yPxQ07ol^yI}cy_a=natu;b#!!$^e8Pu-q7 zCHJ)Zf{o*TXD1%M+Bb@rZo^Q#{+b-(*(;Q$`^OKy=`8POYx|Hxw^kp{_J&8*jZeLF z(9O6^{azb-$Z?oK8l z7Zi8Zz9*uhMr+IIV8CgpykEMmo%#wb>cryD1U`q?xS#Jt+&SPVttPn!Xd?!nJaDQY zDHQ@g1?}(sIPPC3WtoU##~diD=6wgWdBmf7I}GWV{5Jxq*P%OUhUKb72fG(>l5B{v z!@FieJWjAQhE2>?t~#xNv&chYmEVmD;_fYcTJ__#}}C><(A&1 zDT0UB)=sIJ>~oq9QBeY!oBtz2^nY;nSw+(7KL;@Vy7ar`y4 z2W%XO+NR$T?@!Kni&@-KMsUZ6(i< zpHtWWwx2H0>EfoLkUDErTEq7_n||*@K9z*kxP%wIkO5itEYV0{gTlt*)(WnFCghEa z(0Ov-I9b4weZ`UGb}Z8brjCyO-Z%YRt!9YYWGkY8gtq8Ak2e-RZ&1(mWz$7=ojT}t zd6jGcWhg~GN7>j=bUr<2Uc_D}Zq*J&qzCQb*g=nyEH1<5SA?o4z1>of{jko`3&Oo_ zgZp-35jGJU7)rS^3)XfJA?H1-UjE=3xvLH!V~>MgKyUFE#2JmoTed zi$<)W=r75ryQ16$)=v(Bp^Z=MKElZN2V?rSYRo@Cto=bH-BF4w1D^isDHSvASBsxJ zPU-~B(RuYAv+3o5L8{C*pJ$a_%21xa&--u(cCus6_MVQKXUC}L83{USLnjL*b0(fq zE~jTpgsqPMhQEZ_9M#)?7akE9`S)Kj2NP1yFe6r>o;+)T6z?%ol6p}V?fp<-!ws(p zgGWoMyPKm6^r*IYz?0B1g?%tszF3S(tY23Z6zlR-?Je3}zx&rA)PljMSO395(ETLe ze7IF$!}bZ{p6U5QZNlX_y2e+|9PyI2(qTISUy8*vlgbtuHfA~VuzG335s{M572^tK z)AEutNm=n{3^DXCBC-1)?7df9lWG6;J2O7&jEzx1L7Iy6-aA-9x^(GEF9`@CK!AW< zDIrorOAtb@(xpbF6A02vAW=FA3DOcm-M2H(|9wCEvk&*dK6v+eAnm@cT=)8|^PKbuPU)V#3`u^x9i3yrT;pb zMs`ZsX+M6jN-j&!UVE8%JTK3mX|{-FT(rPCUMF$=f*{%qV4QlJz0iKn++T3Y)eRlU+3 zOe|clg1BDrSoRa!gq-KOG08xZfV0{YO>X z{8yF>c-LNC;@(!axA1X0yb`xVcMxMv9=NMW8)|zgEr5U-x0VQx#z^DWFp{&V>wvHS z9ySz_s2`X1B5=DbT?R6~mdvl?WlB$8q`M}}yLlfqDE)rw{68=69}%(V#J_^x^%l*J zrFI8tk&^Lz3wJAHNU)H~n3;+7`Uxky_6mDZ`~Cjh^S{ZRTzuLXni5pucr2*gG+-Q> zk{9|AaIpRUn-8Fq1Mijp*9qvG+=Y=Ecz!>tidi>rE>O!AxaUr`-^04LJt;pAI{Z;Z zdo6HSq|m{Uy!bQNmLzXgv7t>Uz{zUU0kz@~bE-Gz4^P0Z_}g#4>~+8Wc8%@-XzjD^ zPi^AwdjH#4S!Daa1?15iy9cLU|JSexJmjH5$>mWWjk;6VPk#ZTG@5?=2m1c79A`%S z-**t=;UiZv-v0N&*1ta6Ut@@pdRhCw?+gh4j~(+N|JWb@4l;_Szk+W6sg(J@42m#I z;L`kMBgFcgtvPvp6!b4X1Ne`NW>UY-A;)Z0eDNs^~;8Ro$&?et!Xd;_x}kvr&8H-8@~d z*=Nd@HBU9ILw)!c_ukoo%3){SNC4@%<>M*WN7AB)Fp_a4M)CTz)Q`)Zl zCG(OZNM{#3598tb^lJwJCT(9uNi&zYg>26^AA~i+>1U=CEmiJwb>4o$fi0NGj+AOQ zBDO8&>ncB%izyX~o6E7xE`uwQCN`)sK~3S!?p-%q`}u7nMP+d%>eun>Nc>h^G+#Aq z>zjOj-JG8 zBoEUR<-dV6c3dQ|XV<3%N34SkyNmnP-`sI@lqZ0gS%o~yPaeq9kpc-;nAMHC-g5cK z02D~W!Rx625pqplN^iJZqe=yyJvKac9)w0=VUUUH_^6@~`^>1ItB8r8Pw7y%&6jY=d zrYBQMS>ml}t28AF)=ca?V6OI8o48YIzE0LcU5t;+i6P5#&tAM?-I|UrXW!=$f;%}> zOMC=9%%`)P8g_^C>BCW?rtVe4GPBKdi#VkzNoPN23Dv^;@@%eadxPoK_QG1uYjzhK zez*6-o#&7y%4ncy%J@^$%)g5+|N7BXO+vU7{+PhG3>1FFNtI%&=NHK(JoCQpx5v+Q ziC#E^PQQWkKilum^@PL5aNr3?_Iogu(OaulK75JtOh8={Z?j?& z-E^D(8B5JgeNJ~NW_LtJDr3RPa z6KhB2bgRbHLZCgVH)w4>>TsjfK{I0Jql1TOEp25Q88{M|f>kg`@LI*3W>#xOYnpeR0e% zi>;E&Jb*i6UOcjO@`3jpzwIzR^O<;jOlRG2gQa6W!NQ$tA!DHrDuK)i5Etx&9l1F{ z&c!zXUm%23s>a;QPY(lZXPY}{+_->$^8gtd;QK$C>eR0I`8OAck8v%Bx$oH}Gm#?fxfVln;WAcUqEU7p++NO=Xat=A(cxgXPG1bbU*?!69(x??>MOP%)}nRZX% zLx+6QyPRo;UDgb|=I%v1`2Gx}v4EJPYTYnw8CqChfIqP65Um%)2%hjlP7zkwt7lRn zKAww$h#&T^CZsJEA?vHutN^Od4fsOV^Pu<`sO#V=IfjaKBg)p|k zQMgK28_EF6#!1ubHQ_Ikl9v5ZNvG~NQ99BH!ow3A!j-f)8eqFqBqzE)yR3C{jOvxL zF&Kg;%oi9@cz+UVf`ba1>Z3rY0kdoaMq7?0sHx%k1sY1f>)OFM_H=*GXyhuXY7p^v zHlxCSN!Z_gA-X)K@6vz9m@v~YAwmsVTYlPn_Jp|gDw~~VzZaE}1jV#yNC@d>#X~9iu zm|;G9hmO@F@z=CJI!A)yN8T;VGoyv3Z`lR(cj1?8+tf=={yM!89$_a}c8N>?jHcJq zqLaV82xNrvf%8L=H4r{Zm5q7(U{N>82dp5d8`Q0!C~)2!$bVRQ+99_siI@!xO>&I5H22mVhhqccNuQAYh-ne?ihBC?4<&1 z3=Q|U0`o`#%Ph^}^Kmf;T?oa97LC>xo=%%D%4MfqI8JkRTU)lpMW@*ZZm-u!AIi?U>7}0*1j=Ia|~?7I2X|4!5~zW6&{i1)BkJbemHfB=Qj3{ zu|k*QZSiX%#!P`VeiT^a1lGq?gsM-61dbLaW;)$a&ZfRAgqB5CJbxWlk;eR|Xxd6VV zx4+Px8)706+T%~YX^0+4JnS8BR)E#euKDvkq?u%gID~%{^$V4a$$X|TE6Ny{u}=-@ zY1*GV&JH>B&sS;&MZML8z+IX^8NR6llyS~#l^Q=VhrnLw>;7G&gp2E5qVFO@kA!N? zG3(#EYa6?sxQ=Y=FN3^_fb?^uA8v{Siq;&E7TNpdeaL(9edCKvJX2cWqH(j=HizxU zoQ?jRH_9;@I?2ldgweyO86jjLW#gHq&e0tO+`FYnE~#ek3R^e$eDA5|+MU;&EMU7uXzybBQ&ezG!{`V8u z>d=XNG7UX6S0l;nsB{Ols{4`08)gmt1&smcFe*@V(EgjzA5eL*sdDbFhbbT{f&#)mSDrSjVKYSgBTQBf(eyepLqBgr{ z&vH`qzxOl8ggTr#N1j$;>(l(tbTjOA6RXv!O-<8DxbJP-%3ZYunGg`_Ad=3}I9)rj zk|i5b2hv)TvUqO3d(3aUCpNh zPZ9_@vpujSHpTD>-+b~nTEOrAH6(eJv~t2MiC!m|7evshTcZXCeHVi*ua0|>c9nkE zIPMfRd09S57|Ijcx&i@W$^;3 zi?P7e>bDx!URJ^!vN~o_-Ec&qpmFs-aGDz7`f1~n!3xbd`aHAdoDMEg*7VzW?$(i<)=!QVp(^~r`w6L6IpC}y_!mmP=7A-v5 zbx_Yz}XDHmFEUGW_5FSUQNG?KkR4uPnS{-8stFNn#{0M@S2^A z23I(G?w4*=)K4ZLxUs54={61jY>-%Lvts`4?U&NzJe}!JKP@YG?HF9Ir=tt=5S~_{ zT2H|;94I@VV?ZYEwrZhJr$;Z?xOP4_A`?&?JgIrsP+ zL*IpIvz#;2pS|nKz5Y`p-d(DOSQIb*_l%brH`iN=1Ry#hJzG;r845`SJ?qW5_r|f6 zsM6!v4Cr*naFoPsbH!)THebJ3hvFl?U>2tztX$#>JdvbJq}=4weawm#t~5!PiH?S3 z_hZ7#_d;GpYz6v$_HvXsE6+C&RvLhq>-cTF3!|M{b-h68tAa9H4<+3H9kQ;_ZOYf3 zls)Hu+LdGQp&X=<6?Lh((2bg#dCAq(pU4dt%zevuq--D|7lS*#6+4q_JYZPybg5wc zV=;Aj$;0_=S(|-#dWOzHOeh)sBc!~a6eMp)-_2xZdP{ANJGYWc>$y-?<@-M-jgULh zlDqZN_z|3>{!)>tJ|Gpd&3-!lOP%B z1ui%^h%|I;%H6pb?^-~bTeVoIXx@=W74Pss?5Q!AZE-B_Ms*II8WL(gIMYsz;NN@@ z>V0i&Of<4ZFj6b9nzBNP8rX)k*c{Yrk~8`i89Uw^WbEZN8$K+*ZPD>McL^EzR*d&u zXUz2bN0rkLgJxFMJY(#Tw%U6LN|6xyL(m0HbdqVMjCeNf8{bFaZ1azT{K%3K;(4U7 z)#m0E5k9GMH^ua$&}dS9w*6ofqIMI0Hb}Bnv+*RKoxf!=Z3ZyO5}A19K!B)d1CL`e z*ELsX#(73Z5I*u|b9`&OBB--`9y%VDzTr77vew z@+qv%-MTNBVxFi>v)OwB*Uv$Xl8~dTqbF9k{3KO2`{*|7zo%bDWU%F5@4cARm>P{D zZqCp@MJDGm=D1BFNnHz%))Vx%2Ew!;R+(DH;PvM{1N}q-Ca%{Els3{;xmUp= z%yTKgKp}Mc0C^u-=rn%SDvZyk&51yd`lc$D;o0)aY)zNn!%4&%y=S#GAXiNcUaq)F z_S|f0@KH%Wtwm2WYQSc;Zh4m+E@=|f>HW2%4^%2?o;ti<1K1Zf`LUgc&Wzq7FP`$v z9zxldq*1HeT6XBY(zS!f+4$4yM>}_FI^td8^ZMX9YRm}3&O4e~t}8{mdxKubcJ5t7 z5BS?AM-azC(^vqOG6=rgTYu8VPsXEA3p}hB>K@I}dB_u+jPSbV*4!0Q--ba#eRD2UVB`Q|VPG_pu|3RDX||tnG>a40)s9r-?^}-H>-y zPD==b^KBmRb$M}D=&58Z?gtBbj74c)&ukh9%5SC8*{*6wM`I%)-Tp~K@Ahr*ZmyFY zX-ZIQL7q-r_Wr9frc4=J&wUnte03t=^BPpWVD2+lR2xf&3;U?MKMu+lIMZCLR^g&1 zkJM}E3G-hl#_)IR9sJ#HB2(TW8sFePPe}&B7lajNYtI4~w0}GOQG)!o-Pm@|xjI3= z*`6QkJuhfc5Iop%fxGtj$bRZc0rl|ci^`}Xkw5szx*|Tc*@>Si5VXzr9_r6iV=X2& zxH)=)!x0lTj$;NQsqR2;fcN%cb%hihLY+?B8_+uv^#V4iCQ%oTb$Bm`d4OMFBFpU8QnKk;n3YZkB=9L<| zfVf&MoKBr7R2S428Q?ROQkfPanQ9Fn7Pb)N_Wi}~A$3=wE?;wHTzg6)Jvsftm>P54 zP*)~f{kpH#yk$t2qZYFyG)6tJe6tim64e~M7pHeGpDOHbS=tn>4nKJ+H&G!iw$&s% zuEjw29OM3~$ad|Egglswyv#1x zR~^$w7(E$zGoKcxXF%L(4zn~65RqXncPPWgFgjWz<-qujZ*WQo=?N;kx0p#1BOWAl zIi7Z-nXLN@;?M=loN_VY$ou>3;JeTxRQR%-eReT#ijyZ9Ei=>RsYena8pS=TLk?AA za&i|0mKzNDJ=dXr9uiTjN14rgrmplbAH>NH>lVg$6f5ksr_N=2iJ zcwp!UI!4vY>Yg6OVPmZOV9fZ3#@cSY4rNq4$w_%*EsxNRB0v|MZ3-iuT=Q=-65qBsXO0USuBls0SmwJx z|JI)s(DWmCkHnBqB$o}gRIQpz7eT&`kcjN!{2r=UIS_}2v0qBnmih>jw{0`EQ^Uib zx!p4dYo2Xy^6Cg*LU6)Cph(h9T($Z4$$N6P^1>}D*UWdg<5RBOt-6$`P`Fb!?dzWo znHG>=R%|ZcR-@IfIgF$>1?y&%%t?&_0rcK=r&_bfA;2{EuEAJs(+ zW)x#s%{v!eJ@U`}=$J`Q2n)*?6qS~ZRGyTF38H4b@SnXrglwb-9~&BF)#hB0@;7cg zcDVQeYo?=AVdij;{)kiC>mAf!T<0fx@>PoyAJ1SYPu#D;bvXCS{Xx z9_*P9S%F1I7wKI)PEw9pw--Ro&x^$U1#8u86Lc!L6$#Te>|Y7Rh?~~>*J}pYR|zJM zfG3N>>t_6zUlbZ<+w<&EBHglH93pJ#XGk1BcM_%=qN23r`pQ9N-Y+#YD&JjtY2WEN z{w`o27?Q$}*y5L?Y91)(!KF}LA|c}3DEFZgojJ4IaI01E889>+Ts7cHA{oP`|29!q zIiV7BS5W5y{!WsiW#-KxR_Fe3(3j1|WPYnF4qZ@r@!imLid*-7LeL-LBo!gD7o@VJ ziBNF72dfrn3rOes+sU)zNPAnn2@W1vrfI^8QAanU5z4BS-a(KQ8>=Upa{!p&o>R>Uk{&{-0{>KQ>RUdOmLJb zRJ<*6u-#HKHCl=xy4`d5A-b}V;s$o2HW|c2l}%cCTc+M#kD3xWzI>=#XXSqr9ozgK z7J2ZDm6mN&0nGf4Lp`YW0)t){H4Ods>zFa{{d2s9iL}~p&wfG)j^OH<$OEyuid&M+ z69wgRS-geGFsiPYN1Q;-K!>P_fF}>LDsdv0b~onzlPgF|P?8=7Ngdbv_EeC3*5XTY z%znoQLJ!Z5GeLBGZ*Q9s)Eb6IJOs-%J6_?L+Iq=9+j=c>(nhw)KJ#N+zw_ zy(LX5;^Q|NVx;G}yfv8lm~jL@Gp|pP&WbB8?YoHlTgu{s5K8{qhtWU71?tm{FQx+?t6 zxH|Tu75YTY^3=Wi)SAS}ZC!6qD52Jxy@9mRqnT_h0W1Ad{G$3373FNo%@W+%sfwP{ z?yibX+R6b)u z>pwe$lkSwl>Hlg>l33NUC$5p`$T4Dm+E3kfTh|_e-+9Hd%^V_}Trz3_$gkH_ZdU~n zx$ll{d~{RTBq!R|$4P7Kn{HL)v!6p@u*i+dvCc*74U1TgQax~>`iU|rE&qqbBBXaC zs;b`XgNWaxrNMtvc7(dgC>$GL^yAZ7@2+zsuhw&J!W%Gi)m3ftQ`C8HW-DhV&V#(Y zS1)~)PsZ11#h4BG&d9;@nXdw**48t5J@_@KFYdRBTFoYH5almo9F$zyvtc3D^BCXJhY^UOa8|k6o0}1{_EN0`G+eLwe$1&Daa~H^V%t1vu9;bp}*o zwC;{^Lorp0QP29IEv;a6g^IlXO{bXGld`dTv?De!FLlT{%y$2G;eB!6o@dH|U4B2Y z#y+#kHf5zJ{O!bSw{neUISQgbVqf3gayhAI<;(K^?I2kQ_z|6u7gw&q_Wn^#lMgC$ zg`wBWdVj?GH1TlWtV#Q+SL3g7 z(;}HQ=tzyd(l`)W?d3=;Tt&(X^O-e@pRhHksF?K%@;%Cck1YS`n>dZMg}d?hbEIu9 z&TIEg+225Zk}!Q9WblUHc5XQMrUw>R`2`7Se2Z*@O^MiJl-a_zSAs*zOiH(+xs^)l ztHzB&XdgOYqKQ{(7Aq`rwxBl;!w$mvq^06@_9oHm_!PmsyZQ!aTS@x<1$vfmDmZOf z_*Y9;0JBD>(2$%TFj{CNLwByKi!3O&8g#sg^6QC=lQQ4@mUoR|)CN(x!5}fbf&zNg zRVxTzmY!rPpFL|d5%-lE<7#0l!Hb`SRNAY~0@>`v>2zwQB6JGfv-}M{T zqM?zMk|NaTl(wkgkGNMw<$uxDEu3LJH@O0B+_LLUdq?hx9=DOyZhaJupX)XVYeYwZ zAi_T<##qYxk2_07)ucFW_R6nVbkooCmRt0$tU~^PeQ4j$jC*97Kh-nqQG&JmO0 z%m}N|Oni&C^7*?T_%&?08{s>pOc@WIYGqaIF ztviO>KE)p^5=YI!jCfBsEMKq96WAr}r_k`H*teBY+R6&EJ(OlQD`be~9k9kX?Yn{9 zhcSQ23qB-0qGqKxc?Uev2BA)CxsQi6W};gXW*J;;A4qeH60$KTmOIVC*Ubrgr6}2$ z`JDpwo|2@=M7ihE2UeaHY!_KrN;THXRS0|df)%TvCW?(Hg-qw)huY11_eP#`BhM&; z|7dh?9cm9&{Gjx%Ah^$?(j>r}`G=$O}*sI_pQGP$ddvN$cgJPv!M}pY%>FD%iQ}6fGn80V}PvS+jep?si>-;+cb|2cLz**uN}^D_8khgyi8rSW44l4a&(2dlxW7I1DVp zA@YUX%);0%@%OwkqPf+!%<8UA?pRhxa&oEdsbA`hWiH)sggC;4+Bv(wwDfrZ2Biql6d%mu+ zHD~0QVAO;B3FlhSH@nNMFgH!%iVP_G0M=Q=EMG$7PT5 zALto|`Z07><^@uHRiK_s(ZW;^bqdDmk?c{H;GAvGK-Ii7g@m_#T8e4yY`Ct zH2M7ZA7ZjKuCpFwCWr4-ZNN{?#9Kh}Fpu9(*BheDnj#Z}+cakg z62oS;T1wJ-lcFZWPd>Ri{0JyZHEWrl;+b=oPzCg6f*)43_pJToZ92-8_SUU;PODe1 zsW0Q&qTW~v!Fi3lesAY-R33J^d+pbC95Es&7n1@K>E~i+j4iHpPu^L|+5cej)Y3m^ zMt%Fwt0Vf=e9Fzz=;P7UoNHG~L{!vOyf8PH?95L)wQ7>kYD@R?D8gZj8V^-g-N%{) z5EG8urRx;cX%jE+lje#GF};`Yp;-7!tc=1LKI)_Vb7@cQcjha8s-84DJs2bb<|ssZ zRukl7bcdn6YtF^>9`#A;7-g*oAJIPfh;u53p$+}A!uR^PAYy94_{3m^^1Q@J1R<%b zMXEoVPc>WprHD3R(X~aV#AY^LcXi0GYxErvUG5BanbiEieOJ(Q=E{h2rpfh4RSt(P zvA;v=opLulP&R=}i8f2`VQUMBJ4(clwAM9Nd7N2RONM~Dv*!YVsn0#zD7_3*&ikO2 zp6(>+6mvK(=El+N4O=*@a2b&ZGBL^BCT5(2xN*1JK7J9M%}E7gtSUT zfhB?u4cfGF8WI+`Djz-%vZC8vZ90Pa-_IlPd{KU%wZ0`9YEqW???AR@Of*<`{O7)V z>ybI`=y(Tro{JZAJyB_09O&r5(ehfWl8V_ z7aKAY-vkZVHyYOB7|M*Dqv9jJ{k-`>bdI$m?VaZ)XFZ!K%%%EqddGXI z{v5j^V8^v8!_U>^Z!wWZ~FsUbUIdih6QH{>D;-XT^5C7ildoy0An;)g{Pf)N1gY z9wBM}&2x2X^tAhYTbjvz;aZZP56(Z=5Fb<1n@iA^H~ zjhNId@~HZ>VcJ8d{>%LHq0ZPH)p?Wh(g!VXbUB(`fx$#)kR2_P_0EGKb)H-+d0FPR z>j-N4__|7rM9lfY1sNDg4AlO5(?tvlHzl0NnHkLIC>uQET2s{G>%5D2R~rQCJXOs6 zTrgZ6+WmOCIsM|8^o2xT8vTo2yeoUR+vdedGn__Nyv1M^bos*>*G~9vme~#Xyz^oe zdFcJ++IS^l@WTW+;ylCXC@jteFsBK4mYbECxKKS;hjIl0C4AoOHQD~Ee3W)F%p-4p zk`Vu%W)YP&< zf*HU|)#gVz+2nTc?#K6s&T>HksgGLIITKUP}fOnIbd&2^wlaCrq70EW^YCtk(0%KaQ=XmB&^n5kFab zlu_T$GeTPVs_7xrdDoHswtm^=xFYmE_GJ)A5@*WaAn*(?xF4XIFR|Q~-9i7s=Kkea zML$20cRpgr!?oH@H-NrnudEXCvdBBmWh-p+UEzsS6MDhP9;F8q>{sMe2ikWep~iWf zfit1;@MK_X!V=Z<^aitB}YX^*cxJN-RX&@TK7DZ~Gr@UFd76RnzCJ z(IP0)*Q@zVdb~!=k(X#@s%v$Lj&E{kWo?1(lWg@HcreL8iu_v@wh6FMkxNy|0TdTw zD%jR<-8rs|dv(H?ayKq4opWPD)aPs1j^zw+!`DM4NfZ%=bb=kayk<+vjqH}4 zsoM`0{Jd?mxIO|Ms}lKbPoo}nz8IhuGbb?1z-dlG4MQZY83cOj#%yWn(t5fwG)(gO zBREuIb~N{6n)YwB9>0G)=jR>ZEl_J>$n18M2iq1%&)$8hoUZ76%mXl)mPZWYAvc)` z5+lNg!Jct(5X;QbV-Mr5>VV484TiSu0bmgE81$xmDl^~VM>mMj^?9-Z8`6$?cgeBt zYbO%?X1@Z**wN%$|1f7yoabQc;qakZA$}+G$T(sxDBYsb(v;a(?=H+Nsqo!T5Cuz4 z)&B9zxPm_{r*1xzgb_g_v9_(Iv5w)IQW_INYNqV$#+|({lx;VwqFTRIeH=uuTL`S+ z?ce=u{nLqC{na4!X7;rFX@7S7$% z`iir^@P?paP^{ciZfHl+mYk)Bl~g>DVDzwts=3*R5RYUwzKq>CGg0WTc?CHDqwk{M zTj3cn*2?^&v?n?lsY;b&&>LeHuqqPjNyvH@t!=J4)MKw!*|rU@eKU6Jr|$A2vRjBh zdq;QISjhLu$+S_nH#D_*wS77Dx)x*B{POmAmArMQLHIT6-0D1+P98Y_uBgw0MS}Mr zYguu9M%FJKwbUaK9#}3bK7J~uczE%2@xON{Yf3RGnkNc&S9Au0hME@6u$K5dI{fni z`mypgngqk3T^jdwKW+NY#=ReG1Mm7D0fn9xz=S`pw~z`%WW)M7<<|~;-5E3c!#hRi zD@$Eo?zC*lBuUh;Tx=XuYePOeANk(W|UFc(qV)z(0RD;x+Q+4V=p@rownF+?}p88YOl3zKH7cMfp=p41j2+5 z>orq&IujE1Wf;3ofAhCGmVv4BTiA}QF)$+&<$U>=tfAaJc7zDr$=%AQ28sxnNUAy~ zkBUtxPFx+`*pqI$8UI#dxxUBIBaFheT%;1-UkU(87gceKjT>ceGulNNMwiQbn-}hk z{T`@W==s?j4v%T#R^h{S7|lw}gFJ8S1bnhiU+O<81gQbz473cOpXM$k?9Gl8j6_~z z-DsdLOi!2_#+B4yJI?5x6gD`=Z}G-!zXZ}W8Si7L{yU%)B>LC7BV3qGt!6zxr9Jp5 zL#hnHCw5mzoDa(FA=?QjCe&$txJjNOSwSE{qv&+n}fv~d#xv*w^xV{L(0(~F zZK^HXvt<|7oNQLMfOxlG!56UHW+@=CzqtRksXvSPLa-n<%Tz*@P}Snc%)ka*!hw=QGX3orkFXHfmTl67S^jyY1NMK4R~v4pBNJo#ltPc z_QsVH;p?2^TW&tIw{33g_1Z;&b#!~fwR|fNhel*y+Go^xmsFhCNX1DSEVZ!D=rW!^ zJlS0^38V4WwSW~)?o(YJ6oblcPL!K(R(j_Xyk83@jw$&d;FBLvQ=DkzY->j3$L%ZY zdxchI=Q%9$@oeV**u1-J!2nNpaDl1mPf=Inu+ybZO2dxYGUI;8-Dy)Bi16~crdu`s z!*qcODZIHv26{Is(NdcSOJ(VA%^a)%yt=U=U^n8fS<9uaCw8k8sSkD`_cX2sTs4-s zK~^Omw`pn*balH2E_R5x9UlF@AX-0+HF5S!AnNg)FxQU?U1u~(xLL$!67C6D`*Ha0 z@V(!OwbGi}jf*4vONwt7;Nw{Z+(@Lfim7cLr!)USC(fn$-wCcj!AAUy;|v}B8;a&P zf}im8*kb^}Y5Qk)Myon5@Nv31n8+{S>6clJn@R}lfix+^pGAe+Hb7cunjCwJzPH5a z-XO129{(yOja$qv+Q~z@?y0b-QW)oxKq1PDEqlRYwK$jj`M2)9g3Ysto!488LUrdo z>c~ic>H9t5h+%Wh4sgIjDO>c0|vH+?)QoF=CF z%c9@7R}G@Xv?=FSo5J@W{5bt&^l0(|sWxQaJm9A@5voijpA`%w6nJHV1} zn=hVs8}8qhcU^{t5luJa1|`N!TGbz<8=2_G(|S~EHcDIqXdCAB%c> z@;NLextPS{i+W8W-!t!6JpGJsL-wB}YN_rnufGsDTjB@N(Vu-j2VpR%IoVByY#r zX%ILoE_9q>J)|a;=(FB@A&;K0=Klg}QM_Tly7|)bpIAnKE?4J?6or_1-uy4_4?BGx z{R(Hq6ftxI!1)@1wlC`_eF`NNprg4yt0eecwdAzVu+7`Kr&1?O3^P~{qCe^VnNwr- z@A{qsaWo%P17XJdP6_u@&I14FR|g}f5pj-P$-mAcYTO(OXin^{3)~l6$2%F#mHf{O z{C_@{80Vt6{VTtslt~Es^?Cft#aQzF|Jj%So#ru%{a(ZO^nbDNufNK$s{3F~ECyig z#-hcPv}S-|!W*6IVt|Irz)|F58122Vp{ zCD9tr{C2>tiN~eU?CU_&7aheDRcqK*pa>v8PbtkordS?@{SGrinaBwD0;{g&X11Oe zoqU^X*(T{?i2f((zAm(`36l)(hvDKn7iKGI@u|ntNOkv`bZf+}*8DEuXmOglt`G&e z6^v0H`5t$x;rX%Iw^LUWlBz-0Gi^A=!V}ip^fPsN=@rmA1Zu#P9zz@|I~)cVjG-&{ zM(fJ%(s$E~-}a)bXZv4l{)&lw9>xD0icniWID6xK=Fg_>wBD1v0JK>bZ=Ae%dO-1A zk(CjAZ_+EIOt_4$WHHEFU*EAG?1aBIBP4^tmk2$b3J$0U8oR?-qsezmsw@jC z6g%_O!%<~$$1sJ1Rs=$f!0%s zmN=e&R!UH$8=rk#qb1KAzy{`i*JOpPlIoq82;h`h%R@bC_KbLlChS%)<1)tbwB_aO zky-g!kOw%R8>}sn9pHwHc-Hl?JQ@>94qG=-+6p>%O-+N=z(!~d_XZDp8D}2MO1{4y0y9Wx7gY|J zug59|S{IfH+?uGD$4*Mv>%X3M3*@ivX3U6{L|VJctVJc!aNfq_`IM&%3(xBV>IMeT zf!(t{_F;}+=53nLB0k%v&Hwtf*~rEyRp)4y<(6q}`zrtHZQO52J>#ia-#nlJMn`osFc(nrOk z-@4R!I=k6=_`>$tfr86h(5SY?_VkGQxby3+Z12RmJ730=pC|ei4#@%8qVPRJV*CAR zIHy`Uh2dA%+8e%*a(MSJPfXZOPK^Qmm~k6E#KDH0k|mKjEgZaL2W%oM#wu> zYB>KiLX~YR2|{v9K1qs=sy%&;7&xUIgWCoCh$E5d8bq!K9z-Rjm~gf}j`dIO`P3%G zZ2X>H(k5rB9$)MP18764PsuVpJ9sfWs@|q+aGF)5C0&}oq(hW3r4qW9b zDDMop7;G5Hbt&KLH|!@!y2CNz(>Z_)Y*HVLNse^wU;QgPo2~%XfRNrFOBV8!z`k}`z(Gm8oxL}zM87!E%t59ln6kG+*G!d@ zi5E!mq!ooLtxv%{_H6Ho(uoaFAQnUtZ8(~*?hn^^VnMkc-~x)+!d-X}t~k9Vp|;`F z>~Lw!cQ301@gV`i?AwDgG7dx3s=)r5e>hamv#=gvM(*ytPc^}jZ{`}qX_(NXYn6IH zmnK@RAgE1g7SJ=sqzBp-R9@fZkUI+EN&jT;K{5M&xD;C46uF2it0GJL8p1lWX(iB_;(e7t=R|{W%Y< z#*b_qDk=}l?jAkXd&dx7MnME<4E{9Bu=qoRdL93IjR2&kubyI5fcdz#M*)?ZP>KtJ zjeGQAU8Ni`=E<@#twVc)0wfutqlOiDuZDk0dqFV9@Ougkm3izT>@)XPZ%Em)WpH*z zBAYlrNtU2Cxc7f|nTS8ba+tjmHB#pJC3|2)18#)*SnzY^MBojK9j|}3M**X_>c7|0 z7w%5>MQhi&3z>B}vM5pA0JAsR1ttK~Dxh_?k@2xC8~XepY42FcaIox=pCoqo)EK`} z36clZOMel6{}3^UNnyvTs;(cLcGo)LCfL{Y5T)KWE@|CeH%2wYfPt>XM85F(%w3=- zaQmIBqo3AX+IH^U+k6NYly&Yq+sW{U^sEod4fyGoB{i2*YOFA7g8sKNiJ}Z*vBDh# zD1+Fvpy3h4Bf@tNA$ob$lcT#;^;H|B&On4C_8HLbGE`=?JVYiz?1kQ3<^>uSxUIgu`FT$3(H?UbNL?O{ZI_uFuUt4A@kp zg7+=p>kmWr5*|u#Xfl6u-sz%dl~9^`stGIoS6zbdH4kTjgZF#YR!~s}DE-Ppaa|Yg z&E${@sY=5d_Rw!@sZ63?{_>-`7P&vq4&P{0o)Kpw0#lxV5y=uwotO%D*oX+w{hOqs zazjCwN;N z3gCp7@m*Q~{c-zvNZu3D1rzt?_y_*y{uOG|fpr?h0Z_%zwzBDThyL1PPJfY7R`r_z>S-4b6|DKZHVOEp4~W3T~;* zix0NHAt_lH!*ubvI{VPdq7RWE`xP^st+sEL!zJ!-sNP9i3HJuru0ZD(gmB1qeo4O! z08xLS-Kfy&2)}UnMA)Om2ps2OID!(ku)5 z|2X_nC=@=dCPV&f8x)4@lTc5&FZ^~~sy>$_3;>L}%J;M*MBzqh%YD(y531J|gIVV=Y9&#^a_XG%G`i zJN;{k5y0;0NtiurIpgzEMO_a-sqJJAs5g{_fMlBN4+-&-+dl>J3hs<`dY^og;-hi4 zg||#_Ik;~RGvBHA?#<8XUrqsY#hKmd$cd#9JflxONjc{y*Uha&E-lLDmn$7LJ|~(m zFU4~IP)i+I9&MTMwJLD#+QO%(l<2H~x&Nao8a3f=!pQ#$0rhU_&UArcHw?5N=rg1o z8)6LRIvp)ecm$b^!f=8FH9Ex^ZQ(!ae22yHmj({*q}{E+@Z?4HeSz_0-*RQ4msQ<+^uk13DzI8gvj; z$TSZnuzZDlO+j!A0#pLrw7dCaA5!3?rN(YDw*P8k@qL>QTc0RK2GZa2wA|h~1~GSJ zib<|o+NB`hu7aEAwVvd!NhyTY6!jLmfX0%KSL+Ms*Afi}j_ah+;-%Hv6|R5(+6zc^ z%nqnZL~fbEY(KCO?pyI(^`z{}bElLXUo5HU|C<+nj<&7>YnXK|*_r;o*n6+2CcC~5 z^HEf+Ad2)NA{{|Mdb5V!q<5rBjg-)f9SKc(2Ql;(>7A&Q&|Bz)L}`J95FroNt16I@tF% zXXL6auwT_YYfbOCz7H2-UQQw`LGA*4*DY}JX9BvsJioZ1ul^ZSC)y%NvFyDOi))3r zDya%kmW^ZF^G-W!v9umj9>^T@*jF<2$yd>;g0g!^72EBJ-=*qQPl7XBzQ2z7k-Qs!G2uQMR1T$jEw0u zR%61f)|4ZK^iHcEL{LO-snDjtJm^dy>SZ!4cZU~*U26sVRSWVgK1@Y z4uo!riKF3b?RdkyL;Jo}W3ZBo<<`ZNJFV{g;CKZR7W1`zCBhdZQ)`RbU9MV=pxx%F zItfkj?Z+*>wSllBe)~77%bl)})nkXe^`6Nqm7x=IN8+$Y+G#`LmG%^p%<`O(MX&u8 zs_0R2z8GQTr)st%N z2!~Ysf_zl`8(qwXhPvRpU7d4mM;oDgpM-;|2%Z@t9=4(6ST8plo!;-Hpan?VSkv!- zQE$m@lN{JQmuFCJgS4WQm<)J`*8onX_#7`7YLa06nv-?-2iG}C@(VU3b*FEqUy$xt ztEg2?;9?f11iVzw5|S=*pCctHc=Wr7>*1=(sKj>U6kiUd#eb)IFzM)zi&x7t5zu9| z2}6nPYxa9O$4wF$guR5*HQu3~qRSlBqu&NooBsjs`Ia*VrHjW#d)s5VI;a8RTzgWN z^GGZz($2&C&-oz~sRGn3} zJeT>cmA2tDK&He0NJ*q%Gbg?{(m zf42hH64hnwQioA*)-#PJy#Q^5cA~mOSF?iF205n-!o(ge4Q-944#gen!3%UT$d*L^<@;}7pS-6mV@5|z3dq30TJ)5fDJaGosJJ{t7&@=D_KxN7%8M{;qECkn`5k z*e$6z??uie9&UXx-NRW`q%;^qf#5!I7N^Dl?f zz8QsEm}TKTAW;JaosDHHZ728qBg^jB__6m+3hKaJGl*EYe4@<0)6U{g8Y<5x^-mY8 zU@tEI0l>A(lhkdUs3x@i?bcGM<6LGBB$ArF)%0;HgC>D1zPVNa*^e`WcO04d-iurA z|8|(-s|FKJ5}M4Sdy`~(8OEQ>t+=k_pp8)*Pm4nm{dYp3x=qmgi0yeXWr}3sLBLR` zs)@amGWHpOIodCvL_})&@Yk8F_PfMeB-Gu+Tr^W<06KunjppnrYAkWlm0lP(i2vQR znZrQw;5LFAfSk8>rh?a9Itoy@zB&LKW|q0LI9myd3JEsc4&y>bIF^aBkkVm z$IZ7oZA1-9w_hzLiifz6Ry&qil^FRAyq>|Asu^tjzG0yO}H=-EyXSB5Ij0+Ar<(shE+?LeszB1b> z2wh7=H7*)sHqJttoRLD_^H}8ZWsTb7A+q<(@6lVuBO_y{Q!mmH$7%O;QFRtxgO?(B z#(h6?4H>di0-cIA3Rx0-3@|Yfecou9`}}0@Uqvz{d;6IAv5poKZ}<7I53XrZ5xS<9 zSSv0a_3xVTubRU_CM+#2B&cju+P*<(?ekILCJ}+X&^pMRtWTG!PsK>|)ftClomczW zZ9;~annt;?#?o^9?$7OEOB;K{78SL`=XtP5&wFGuApp&!pXjZbJ;+STmQXVZaeC4k z9s-%qCx>oFPWY%Iv&9!S( z=svNk>o1Z(LpD)&cdHVL;y#X@B1KN4vrhARu?s+=11`cMu+ zEk_O2#oDEsI@R8FFyAE|0ul1inV%a^{bYOEv1Eol+FH7K>=fged@LSxQWwm~`55?A z_J4r;GS2ai&uDVRzNuZc)mzexjpbZf3SEURhkmhAlYpT+7^nlYc^s!KM`_--jlG)_ zzQn7ox0QrE1GoS!O!-W-ZGH&#_B)9WDJ2}16j!S4Ahqry^PZQ1Wao* zoey)!3$^9^5re@NofQzgO}9@qU2Dhz=kAr;bmxPf`)~G48Vj68{XW-rz6OQxC2u3LXg2Y7xk^Xe zbbc^@4ekGJuO|8mVxqFd4)=L^O0Pp(0p21#eHX6?}UHFZ=TKiQV_=ciVClj2!8y&4NZ`uZoEEU{z5DYnE3@r%D<43myEbi&j z=X9Hv#`m*4fqmo#O%As`fs4vLUR>K@UEXimB~>y6Ip25>!1uN6>zURj+4ik5>>bE& z-e&DeXNOJZr1IIy*YIvm>;3R7KmjKq9ygI2MX5$Nax&X$>el`9GpB~0?%Rm^*kZ=z zSFZWIw{v7`bIOZ19-EqhE*^zt#To8vTnQBf{Mtv3q3dB<3H8b~w3^1=j&4Ez%1Sv- zKrP>n{^&OsuU%cM{1f~GhdT1nC_jBiLf6lPuUCt8zhP88uP)+UhplHvPl&nZ3~oiO zhvE^rya_XTa;_^!%7SB9lRLE0X@2m-S^M3G-P~v|aAuva{mW60yeNa{j%01+=Y7Hw zFY0>21%%`R73kbofeiEs{;0Z_jw$P>#p^O6vm@lY`i0vle{5P& zD1nb+M&rIg&an0V2zyJRcWGmf$>W}gqS}B^dlGg+GtF?2{oq4!?O&nQgVuw>4BU{_ zN9F+3C*)nKs5-m^Rimj@jn3?#QUK4^*dKPZ(0?_aJ_4tTg{%l@ncoWk^(%?C7(VfT z7gS&pO!?#sWcg4-hibeZLU+6RZTL{HqdX==xlJ(mpyvaiHV98jC@>g^@HqP)Qk~mH zwqES8FefIPF=R8mVd2$fb{a&$#pXeE!wvpxke27PGlG&_Q60a09-k}?scgS0`o|@Q zGhW4SJH27z0UJcYLCzNQbr0!-uiY=lkH7ylEf@?|OTepnF6GAU zqMJ|T|b^=5COKO7e+Kpz7 z3Z$i?8$Y~F+S0ON&Rs$7$c6m8<#Rga%V6q1rY-ZhRaf=edn>ly^H7IS`EgTuFdgx2 z$$PBI;^=s*F{vLp%OJ#W>i1blqf~uaK{E>K6$ON;?BpZ}V=4+lyJ0)fV6-$Kr@Qm= z7U&MXVR++VRL+jbIF30Z`5q+f!?e#(sxfqogOvpOt)4UL`bNZMr-}RIm5Jj?8)e_l zQbM4)!(3h>{*$@V~(WNLEWn-Y~DY6*PoUU(}e`5rDwRr+Ty}&8ymdZ z#d+-cx@UeRK+%^ZZUm)2gex{1+5Fy_y6~C%UJz9kzuOZAUws-geD4ky?zpdD`@g zPiLNXj@DLF_cKXvHLs$L54Nj|#zThq+3eE;E+-St=`D*F4}SdyQf%xlx-dcWJ=Sj+ ztw*oX;#s_#CTCsK4~~NWIQd0k?_V&Vyb#d-spJEX0yCfU;|t_vXdSUrKjZO+jVcy3 z?8kVry~sP~v%q$3sq$sYOv!;TNic!uJWtlIirkpml7*9h;v88KB;;EB^)Aas5mwgq zdlx%_n9y1Fi0xQX^F||_e{A0>tvS_bD`U2RLf)p^Olq`Cu($2{_n84?+VrtzIYmyy z1+Ug9AGpQ!Jzv{tR{b38yEuj0M>AkmIaD1!&0wDYBXDdj%?SO;J@girDHzcu61TM4 zVNFuHPaCe{I&Y0r>~_D4rh!Z6YRguSY$kgkOGVSlv&Xh^}Is^3eRZt^|+b|!aRCt7QwUr!<>a7 zD|-%CpHA}bO2aNPJs{h}6%QqUmRr9JJX_(!tWk0tzY_>ht<#(K`7TVt25c?8p~zcd zC*9^&lppgGQ;Ueui55QsE2cae&xE4IY zmFF|18QfFL)3}1!N07}3!41YG!}k##oTq~a)tYXToWGrhyftcF{ppSu;|$&m1a`?m zY6wdiYvn6;8?|3rFL%kp}N^4M=G zXiq=-cGIRcCTUT)W-qt`Qb%kIWXCs3QOh z&o;&UXkg=|ElJ@nTt3`ZYkb!8)aLnK zD1HG*-gU)6ubT?F=4j=aL?+zRPY#l|53lsjG2v`dp^M2_%_XR&HkPr0H70X*qesJ@ z3EQUcsXl(RbPNnSr~WNtDs0zqEE&mIvRpP-`wH`p3*#L&N}b>dAse0$-+zxtObkO* zBqv^wWBH$96U~u%>&VnSW092d`pr6^{}v}c>pZ08&Qz_|?pS*ANLbG2)gC=H;mn^h zLl=O|xZHuAHsr;*GuI!G2m3PJ=00+jc(C_!n5NfGsN_lTv8!&);G(`rSfoF0YKr@W z-ODca7L+}oH@UIPJl8VLLn&d4z<)Zo&9I6vV}P?dRv zky6E1cM~iuMbXX6d0L*4SjLx>?)cDq4+c)W`${>1dtl0S1FbGUZuzC!I_^V-&JVU3 z+Yjf>b#y>powFU3giL<+P8?}A%ycRtSv=Zaen9ETg|C$BmbLmW9R#D0ArUrSMaQ}+ zY3j@2@r!*|dsoD`HOifMw$5cpNu7l}_2=xRQ^;qU*cj-P?rmVYcYOPyF=^!WoxBKj z`5K@^8`HZVOo3-|nOLCcuFLigJs(F)Z}DL6o_}1af^c2T}f>9vD{dYSvU)m$tCD&W(49%qsN9=dOylk&2x9mnV6Hy&ul% zJ-7$t5}`?7X*S?RpI7P#%!||TU+Rat@i#_3A9s}9@`fDdu!}$t;lq{A+#Ag|p1TGl z&)hyK0sm0d1w&^G!U_o_cyFU9!C=LGZP1#;f$dyNR(Viy!ez~j*4%rJX70^u(F(b6 zLsDzu>vv&GP`*xlKZ%DqRhh7O9RJF4@<3~Tq%B(T8DUc!`9$>c%0nX>ooOOu5g)a| zR&H^>FQUu``J{jRNs8dVwm5+AN1CsuYsZ&&x6L;<%zGirG+#>Yh2F29rVkyN6NfP3 z^5>u2G^W(;M5X{720ec#wb)Tg0f35=Ob>+VSpSSJ*DqgjK^1T z=w&t1t?-s#erqf;MwKs_#nf!Q0PdBf>p6YY(3Hd?GVe#R4>dU9Q+$KGbA)rgpyH?M zA40{3$ymm6?<>9k@uZOR-T){g<0kg-bz&utqPA4CkD0Mbs-8T#bL9Tt_I{U#fNSH z&=DrXarswvgXXE6PB!P1InsAq-SHQ1F6~@QP>`5;BkWja(ghSyN@+^@s?69va=PT1 zf5|7uE_yM`K~b4UqW5PMcj|tUh)HHn;8EC;ul5^hsD-kzhzY$%!LrgH+TmetEfPOj znS&R=_JMvqAwD?T4|mGm*gI1wqcv$MFq;6OtAyXr0uCFN>DdcS;fvnjOa`Z)9+sJFI#PVWA1xr8*W0gzt=tCVfzc#VF9L3klv#Ul8*KXCX zKS?=H?o)*j+5NAq@Z5i2V}w27Nfg%i>t1NKoD|WJHVNn)HAlTgHk`kU$=G`W862y9 z(cxkm<|7vNSZ{esa_seT?{v2h2q|4#y?tgS7f!O{QzPKK!~K0Xo7re>B6!`D>f;Tb z`yme3)$cMSArHvqI*!Q-n(=ZHEb>{zz|D$8-qB~cNGXInG49ypa^XrIz7A|}+pLy|2 zon(sqn>;aTJv?FZ8{uC}L8nWBi|x}W*x(2=YG~e05S6Xf4HT+i6*bFZIrViJb;9kt zdo7D24cI|z^tTfcpE4(=NPHvxy_@a1`LaZp(ZPFl$G@~To4v~k-@@DcN@SiizTp1d zi};UVqND<0T836xlbsF+_&Tm8oREiGP}01w5bxubg{#5w^_4uS%_IR0D9rPnc+?QG z!SseX*x~AaL2ACLwex0`FE$uXlr&pwAm{L3FjSwu4_=$&^edg;rfF&g+r4F4h*TDc5% z`$l}!6-289=nZ8}R&X)$eh!S9vWS9K*-!F84>3b_#~j-}twxyZBn<`*V-k|R9TH_+ zE=j6PSap^qY>yTZw*lr^O0Pn$CH9|9DX68jyCW;5|KJ448&6|7< zN?|+GJKWmy&k)BI9y_-QwO9Q&Q+m^5l=^ETSEK<5!R_?(65Q_qrTTM{2=jBxm0&<^ z4Ka%_@3fPadq}j)xCzqjKN0g}X5|@szqO+xfSYygdVFdM#SOPx5EtAh=y`jUjT8Ua`-9*IAbWnd$6$DY7|95k7ZSlUh(9Wk;+v?N71HoC*lc+)sFSG z6Ws_0arSb{Lu}A%?V%fY3NSvn^}I37t2erN%oZDy_N!sN1t~osR&v9wjb-p8|mFNm^4PStl0Q zY{>@B#M&w^O{KVrp4S9CPDl~pKK&HwmYAl>;y#iJ>YLxqm=zIK|+*)f!b(p&(14%xEF2jD#56QlxXuuXmBrE@XVnPOcnlN@C435fL?A_!~I~ z$coX^`B1G4YiZ7XV)s3IY7)7f`RUZ|GI7C+W$ z7wPTVdq1L0(q;@yX-*WmdTkdCIne_mf5hCQMr7(~j*Gq` z@p*#{YOpZz?f5BD&Kk516`1%)Fp9Vp< z1dzjO9_5?mNzTKixe3FY%HYg9C|uL|zRE4Sk zm_CCXDl=}yjNAalN$&27coNYGUDGCx%oxRdUvf%I>@orkoSu(VRKgT3x_h9*!GR=M zRGF?Uy6F*xql?m#l&)$<>NY%&=^hS|R5;r;M}7eJW#E;s9#(6m2WiU*d?@xpiXl1q zLRK#d8n^$XJgD@8LyIz!o7L%rb@+e7DFy*po)n{4^XQCSVHPoLI^_GMPO1xFeS$ z=LC)4R@0)`qxsv=<-3x9ph+z1vbqB%*LS+wqUqR|POM5KbZnJHThtbD`SCFSY3Zge zV@5=TAHmq^Z-{8cOBPJ8^3?(|B6&Pf{P_)O?Zy1zUI4r2$hUrHcF7>M&PRc61oyqV zM7>mpL2y3{@%aGCXo4xg0Y4uGI=D+Ty`|F3p*&CDP9F`kR2IBn93 zVybV*HLBWNBDW2beI09_0X7pcL%WF`vGyPM!Tfs{bxdb2jozM;k~3YeLfW}Hho)&T zYXn1@=x`vHPHj%Yjx?)1=$-CMOA%{2oUWQh;1k!?GI__76Z$Jk?xCyr$yS6*uA8ez z{eCvDenvD+_kuF)q$QpI>U|p3+fR&vjm7C>-pt4Rh|UIfH5zktgqF0faPe>~stjfi zI`FUS66^emQt>Um$l1GKlP@Y`Z-{~T(ItzP70?c)OcQ}{A;vix$XH~H*({cpbiGwT zKuID-#MayB9=LR(3lr5>LG_(vTFTg9gGv1|ddow7lK;x(uDLv(LS$#F%#mNn!G76 z{7Gw)xd$Ro>~XGXY5W_SfsJotb#PzXgN9OB+lrSsH?h1p+Rq_hpj03ch$mEs(J$bxyN7wq(%>R!VB>BC-lzh8|Md2v-+`J>|aEt=VuT3)j`J%(+dcG zgEEr$wbK4?+0zmR9YHGWYa4$6ndKJWpcAFSpuf{gryE3~=X`)9O1QymDkVTpu{s{DG+8V~o$z z1;?BHK)R18$SxShy@*=6xN>ebT^h4BroLF9<|Z63&JoLDDhSFK@oGoCQy)9@$0R=2 zW-sS6$&vJ6_Ea-yrlsRxs-=drWeM9R$6_x}Ep@{h0ePzFi}=>Ux3u>xbvKeae8b*WQh zy(_RMesl(Y$3vr)km8suKYbPt{U?I4Vz6+V4j&>A+%=in9%$l+qSD$0r1X2X=4so; zD>NrJXr)RP{G$K%UkN&!G^C}ES-!nOvz06F^6?oa)#Vn8!EWvHfv!g(Hj#*N`t2`S ze-_<09$gB)en8VRI{kYmfPM5|hdRwV$dxBi{4|CMPDhLUO1)~0#_(vaWxjWHdbzNf zb=jBJU7@LTXquc7p8wj>m;31dI*I=IXO!jt@@+oh|FNO}^7{9f{eS-v1>?W&XxiV) z$iH9p|9#i`|KmcD)j9MgRdU?&F1K;v=0(1#vO4*Q!jS)IA36UAzVrWEiT+u{;ViAIvHKI-EHI*8QDrs_#XZsK&h!- z$BGA-(aULY4wEtc#>cWM5?#0bjqAz?P?$SIKt`|Xo*M159>w6raJP)O=^?QZ>g_DG z4O&AfK)b0L_nAGBkP^hON52k1P@ZHcU zQUTa(qac+pPu;&cnQ;_hHbwk(%f6l(T?4-iwM3d1hWp&5C%o>$9GynZdX` z3F$1hW6xGf?AwC4HQBT6bC9A=1zYLwe6k*~Wk!cN(>ls))+sCKsE7rgtj-#ZHUs+f zdyoY46(td&(;u3V<)MedauME^AWA|uf`&lPzbt!B(K)JATNXPDh)lUGIk80>PcM*G@Jhe*)0r1I=mjM5`WzS@H?Oh4di8=s9T z_;>edNiqL%?twzHJlZ9?>ZG(OFsfM`bu$w>0@o@Dw{rXQE(Och`z{gvW)N7q6R4AO z&I*H^=F2f)uBoi}U*k{(R>bS#j7?z+0iW~%rioqu*{<@0sF77i0~s&M1^z{0DLoj9 zURiJ03YSfwZ?_X_3~#sgc@6Ll%ZRHliJeqLox*6$@3cO9HAqW;>({E};HmX=nb>X>=AB+fv=^?X<$n0AF~H_dxesnhy(GQ#6w2fBLItCv+*pylxxOxjTxe z*2+0ZYmID=FvaPO^4IothE@&J#oyVjQ9SygS;2LLs{1a^qXcQOp0@qQ({Q%78Bbn) zh!b82UedeIJ20Ni%QcJre1`+3*>(fLwmJpWEpGCfmT zg?Up)n5I%_r!+S8@R)cXdWM5U905&%5N4N~ld#UTb%?PNB{z z-$yj|v_W@f@=p4~g75n_4@VL*x#~fSVY)MspVbn#|HpV#h5u_jYSu$->!goVcdL3R zqXPFg@CV682OoSZmY24iYCNYjxCQm=A<qA2D1Kh%8M z>YD?+OCx~k>*S>{3^^+A5~v-R7MW+iTY})HJ3c_m;zYfr3gW6ix9fcAig}ee9-EdI z$m}EMgCxt2UHnOltkl@ZO@A`2i^4d^wVlC99>*0LFI!1H6o6#b&-MkJxE?&=h0;W? z1_R28o{&aUK;}xuaprpyBQBG#J?F$VFReByGBXCN8qdjtF+J|*P@7754aGk=dbhdS zt1ftJEQKXz&rDeV2kBGSie zwgb4$YFHZK84=LGHG%@hTVRvq2_-RmauCnZcdm{=priM2S{2pMrL) zKrXS92$_l(amyVbd_t6z-e-*Rv|pasDvM0@FN^k&o6hcVG;&YRe?-a0R-!suJrz#) zAc zAN4OB#Gt>V8%1dFn}$bAA9Jz-h(JpeUo>?u4tWEQJ4dEajq4)KI?$M1do}W$_r@e>6tob{KNTKw2|W00z{PY!2#{ktU~mu6=!( z#k4ze+M>e~rEG`^!4>8nG4vm4B=0|kTX;i3mUFGhDLV}xe#E`jtgbGwXy=_l$nFTl=+56uF*~=rmbV?R zc3pN8wYuL8H839P^3iB48{I}!PrMx8@k}U=@?1@>BYSb~D3rjg2FzV7yNmz1d2>T>$Tiwy{$wVQTZHD1 z`lLSN>?8?}#&jaT)nO(Z3)aPBNofoxNrqC{-Tqj*z zCshuj(MA@95Orkk0_9Y8(^<(SPGy(LVdqxiE|dkrbK{k#0yUN|oTSs0BiU~@ zFZ*x(rmX9wn^~T)0^5Ro5WuHJ@yoe8nf^2#}tmB9u|o z{rmynH{pbNTh~^GkoBYBg>S9AZRkFw+hb^svGxTCLKCfbQa-zxHIA`8wVs#yJo}78 z_nH$krW&WNdXv}Q9#uz^V{qq0({iuYwC(!&d*0tSa}rm0Rr$~|f~04V6>n?fusLqA zqQm^WC&Sv`7-wbqSxQJ77!^Vj*6mAoS2>Z|^No-Pg~Lr3!q@p< zS+m9`l-PG|qy$?nUMBy5Wx9BWf#b}be&(PzcTd_aYXTyI0Xs;RAe*hD1Xu)2F>-T- zNvpS4J?hC=yZsFNN^zMHvdPM)`D4utZJo+lC)~ZDUryn6Ys!dkWJ*fPt1{?~sjk1V zZ)gUmK?$9bi4!3iWq!|a+mf9jDeKh&V`1CZ`&8s0;JeqYgL4Ca1U^~-m&MjMkyi#MBq%0Bc}1EtIzXAEd7OhUg% zHcVktb3Ou;=ThuW$k(31fc~0i?2=5@I>xQlatdm`za;LivINW-2tg`JIyng%MvxX; z(A9snKcd}>M(oK+=`{0?Mik|AQTbFzY)~0}xtF{mz<5slCpD%d6*80{vy4mfPIS=jw{Rj5I0cvNn)!4^7f+V>xtL?bTY$nSMLvR ze1G^l=CRrVd5?%kEEyCa+!TftqeEa7sPl+Yg9F4EaSwqBIVe@fCn}PYJI+i~Cwhc; z%8FA*a;jj^1+zw|+0cU~EZF zN7^K$@$A7pp*?ap=COyZ@AhKtC|>fY#=f~B@=Gd_D;3kLN)Y6?q3o;9sN29an@y$l zdM#=!&3vw!6b$*7tV#v$#Z{v17H~ zl}8WOsuy!x*z+|?PoL(Ug61gH%mde7#j&a$Tp6%flchzp)^8y*fcxRbb?>7zHM>!H zm{Mx!Tbhk$1qbBt4)(~w^POCM z2~q>PD8FMLXH@loyls!*A)B2hp%LKCllg;}y>b&{AE*7CHhgHN`~i*c)TNOjB!?A!7_91zz1wFr{k^Bprg3aQL?U|3nW^>AqJz3MB zi37{8z%o$5O?l;-wzV@09z)^d=!>u9=`Ffx(c^~hAQqVZ@fM?ALa@C#@ajsAdvA2< zNswp}n63AOE?rMC=hRn2g*R9I;7X>nxcnoX%nWVRoQc&GM6g{>ef=VS>1Dj^&c#h$ zMg%&`rSc#~SY}kOWr>6T*&T4~vlLMmjHKG5YEOka%`NLRP>Pn`^&ICynK;OTxo@vDtPU!O2l&xPU+p4V?~UFY*hUtCe`O-H$hC^qeJ_# z(cxL-Id4kuC<3p#UK?KB7XM^{+3a}tBZ)86+YlIiOC95)9FtqHd?9IT@fqzMj~^Ja zdB2vdw%|Wl1;?suTO(zWv17(H@5VzoxKaQgdv^j5z#jhbCP{Le^QCv_1lFHLdh0t4 zaDxAQ1&9vdTNpUwRORi)tH>o2X^TBS^C-0M+4-Xts*Chsmj#T#qA1tfL%1xwkkl3!xKz`mU9x^9n)4KF13bGa{W0j+b2hFt z@yO;!IJFbW%d4E*QOg4^5?`~K2J_Nh57wek0sS4Py;-Y!%G)Kw+DZ0@eL_>d3z6df zJ=xxUUGUjq;k9!I?rN<2)OSwpN(bguIx3g$7xl^4+ruKuDPP|Ek7s%raf>TGm0Wn~ zL~Q?&4XHhvkH}>4O>hnwAzW2SOKx$+`#KeNxjtLe^Re!ae}na(_Yp{}6$h!b&&+$a zjjNZdWyGOaC_76}qv8@p0Ikh<_JFv=H1IIc{_Bo%wF;&9{F@ z+4L9wmN5Q@AuMlQsAY0ZB%_axt@n!~ZO}M)AN)>fPkM>HTI|k0^me5MY~4=)UOZ7Q zT_~RoUs7i1W-;%d15lBBaNdH^G|iX3R_2)y89&@q-mvBED@6Gkw;WJZjN=_>xTZ~i z>Rm(i`fbM15AMrYb?D`86`pIfVIBnj3* zIaYzZs-1wSKmxAs+v>&D{+>pr_B+pdm-lL|$h#dk%MwG5WQ_AOjlvh9n+}cq-^1`cFxv*< z;>B=*S)tO(y1Njjr%N9e!aGc9K{~|=?h;nKb)QqpmpeCu_E+qH26_)~6p(o_^zNo^ z%kbTKJ}d7#HhEe!SRkd^G798Ju@U9b!}2re1czirco_joV`2v5qI5JGw<+>6ip+wg zm0|83b6i!m@G*+7=E~%3X_@CSWgN26glxK6QQbhUO6W$4PbS7y3=HcW$p9_p;c6*~ z(984qONc(Lr-6f7&9UoxY8RlZJkt$;rv5x(giDLJ=89c-U&_cZt8uIF&z3AKPo5qC zy1tq6)5}2PyCwM|Kd{f5>_3*Bf}9DR%-t%zLl2cPi=zf-x;{lKK7=9h8EyqcZJ~s= zx^}-b2WE`7f!wk)I7OJ-%8`Xt= zPuuv)4d14vvlp7;|=$x zlOe-8%I1xe04ZD!%mnjtum#Kufz5dAgs|+x-dk=iyekmYq?Y(PxzwRLm~tMhgz)}Q z(idS~vvpJ#-sCdDZU)I)uPABCFLdRU6*Pofw}!IJR+-%O=#$kM{NG1b`{ZsP*GmCsj*^+h!4n1RDiTuL7Tqz{ zn!sqKsL-lj!)WD)Aj$K?$hnb*_l^d_FIzng9)^c+muI~GNQ;LG@dewevwVD@O-DG$ z%+adQj}j=z6odWmqblma%u6^?r36x7lideniK-WPqfC&Tv>54o3l@2k)C&yb(a@7@ zp2)2;N0-z?C7xS-7nZ2kuExpG+lVFs)i?O{`EBEjP8cPNueOos<7>?{{k;=x+1EA& z68X|07F!xo>%^Ju`+_>h?{>V;yTl_#?Gb2=AzI_;j!A2{T%E^qwYFZk2{enVH zjndM)QJ3Sr8M>W|4#mlX{Be#^qXNz&MoEr8@6{`IkF@bY=I&i#BkQ}VU2M{M-jvtE z!+GVSXE zHRHyfa<{4Z90MNL*k2e;+%cn#h38h)cPzbbm^d%z4+*nesQiqyZ-^7}2)xmM^IYVc zxY&mSeDY*Q-I+KWyI)n|;cjDw1h~d#Z$_y5e7Eh622du>anvYxLH~>0Tact+sm~1& z!Rg%(s?xjc4rL)Qqm2lE4MG09$r1^x{jQKT`C=lwX+fid?fxAd2IWY;^%PnWW; zI9l?RA5C2NR&e{6b%g99w>w8L*0@sNnz#QI;$R}H^YlDC4q_9r>+EbcujR8R{Y_o) zYl4k_@6S36TXQ4IZnxt`%3e_xU&15Oz++7KpOaB<+T$|zGD5bsIjO)t2dyV&r@ReO zzv(A(`z^+OuFN5Vm=W!6zLn%Hz;w+_bKBxzA&2gce6uZ!42F(o$mzU1#BM%{G+-;X zahthXD_K|%+%{OhCoxC3nb^|arpT!Z=JAI9zD^1Ir7G|OV!`qCPTG0SyT=`c%fKn} z{<~Sm7bhMoHU0a2)3gx*g@h2aYC>L1SRG+8i@|tUxw*H5y*6V@*#$ovi0Da_vUF7& z`|7VA7#Zt-kNo_nrmykTz2=Ch7m1qkUk=8OFY*L) zs`QqE1&y)_kRai$6(OPFqk$d5;q}hu{rj?&eq$>+d~)}qldIiAMzrl`1Gr0ZD4lKV zrbUZBiwuVK2;b^oHi(igm?t!(m;}#VY{Fp=t_#ZsAUIfWg{Oz2@xCh{R}M*2w{8vk z&0ZFNTT`b2&pR!>(>lKZj*on`WAU95#S`)6Cd!xcW;X4%j_f_PR0`8lv0`$K=b=$! zi@PO>)50JshR>Yd-hB4!o<7RF0Rs^+BTa|>!KS9KZ8iUA~Y4zdaFy8Rjk!;Tte+o;K zYC~~|JsPDViE1%w28opdKf7C#t~d5YtsSoxdRQBE&67f~J%>kl1qcP8aZa+}27yK8azu->eO&-&S2f?cWo7 zF;lWD30FIy{OT4&%$Cd|>K>9CnzH-1YT0{hP6w14B2*v@E-+ov{0>W;qm+noO1Eph zdgUtHsUnD`%;Kn0-8^8f#J@0fVCB*pMW-1`&@n$j z6h2gpkHpyjgSna)B`pc{n`oClyVwsf_t)2MMQQ`$ZY9Uvby?d?5&F3CjI+_bhsg|9 z%VhQy7Jl&iyA)^je6>)OlQj54h>RM*w;Zp?QQT5%6p%F4qsA?@4!m$~3}Kj+$T-PC zJXFOr#H}3!V3r?MgxxVzgXocZwZ9h3QHa+r_#_^ZzhIT!nXjw}7$~><8&<>KLcZ&r zCXk#E{|9^j71rd^y#eF8QBe^ULFu5NG$~R;M=6PPLhn&RuhMH^ivm&t(t8aMI?|=1 z(yP=+S6YA&FhD4QkT352zSsYE@E-lY)9<=+_T(wEX3fl+HTSyjS848D#k-%z`>R;O z2<@Mxk|g3)miD`Tut`LzWFm*z<43>1`i=*F;=kd=o#>*k|I%^Q7Onz9-GLAR{^iaI z2hAikStHRW1wpGqYca>mg_rx#CUX^Z_#ElI)!fzqpDoDkGTd_@9OLcJJ|OW+|C&gM z5c+F&lUirLXvf~Yvlpf4SH=4C=?4p`FtMCgljM-z1i=>c7F(GpI;9f*75dt6u}>kc zqgp-{Yv|Xy)#&cvrwBgU-Fh(HCzXcizDV<(-&28Bv45L5y&(E0$Sx&yr)|v_8RrTJ zo)x|qa(mspOjU}peTiF*4oP_igVHQrPCuUySf;dJ8k*&W4VL0A0fkE#o<(^lK_)8R z^a`O_ljE|fl%ClpNkWZZafn@S^d_(akPHjGCTBP&O75{Sf(w9%VVJQ!By-$fn_l; zv;78C)7&HnyR}!8^o_^R3Ys=l0TFY6ukKBHQm$Ncn&Ww}C33SNE@*tYu?uZ7SP{|H zqT0Oh{WU^TET`FinZ1ogW0Jc)ctnd&Fgc!KkVt&QjL*=>r4fl* zEPTfBC^=>Rn)a@ym!-%4U~#yB5+8lp$LLXmKC*&l`>)k`qk8{me1Z?{Zegw~p7A&l zZ2z7+q79gr;C59jV=ao$tkh8s7?mH0S6hJ}3nquf7^esc4t+mi?73X`>|2n!o82w! zz)A^`w2i#qsgJck`UYEsORbPA;x)kW!d%%5c{aTjKU1w+O3WC;=AbF}WiD`WK3({n(DoWJ)jG@Y;)wTJ{81Q2W^7OOIH9}3Nrk+2G}gw-Erlf7 zY+QVlc&fBosy|n9fQn{WIl5=dj&5atfO_e>+X_qlai{mq?Q8edK#x-@e+Z7f^^zNM zG7R9K@-`1fNXqpVWAyq}Aekkn$|3wSeFv^)xo%-@4{TW7O!F}bn{`Fz?1fX}W)MoH zRio!ugX6;Ks-BYAZtdz_5NR2uWp=31#`;G^C_gfyMgJB*Oirc2fN=-IDe5N zN>E=SFcQ!bysuV$8uIo0hB84VK??MmE)`T(g*dPE$C$QtVP)co@ zmI&iC-$=3RP=nG^Zm-za?WDz!sA~3m>`;9qRnx=_j|d9s^=Tf`*kF+v)1!MMOKSUI zGQ(3N1?dM{6OEFx>Gf?MZX1Ddkx4H)ef%>jCxA6^F&pPC*ta0XhTGpgNqIA13~uP> zR}9@<)Hjm2tz&+_4X>}B8eH6EfaR0yZDQq8&L(9?$Q(W9zAo8ug|>bYq}wZA#;y!# zvOke$4w)v$d}=?}-FGAWwfR=QY3sLc0R|d?{6C(lU!c4WF+apW+&oi_808 zILAyeGRI}~rA;>L6q#Rq(K*Y}Ni>`6@VK`TgUvHxPXIjLaAEZ!X{%(I*5&1MBZdn! zYbRo_Cklx<_zX^RpV^2#5;~wIv-Cn07iMh8;;r6QgmovF@k;&RIdH<=Wk*8tFZ6u^g|^%)BIn*T`;xcZL@`=F|a31J1ni+I2i`!{HT(UJ>B7`X6ITP6I=#}{p8 z2)P5K8^XNPfF&f&+5VQDf>r!(=DW|PE#hrBT^^Z~svY&2p0e!7lqS0S&QP}9+lBsA z)78r{Ryx95h2ZmX%;CZ=!Yk+}57wc5Svg({F2}cbt7AR~0h_63B6OukK089#1b4HFmpXmB`#4H{eUkIJ!=|aYD|2x=CG)AdtS`mr={vhjK02 z#UFK~-8U%$+6Fon1Q2W*0oRP~s64U!3!nm5T6rQ#32Dx?{e0eAz#bFyd}x?DVSt2Y zB1iR-FuyJ9Ag+_J8U77eRXG5#*r7cJ%ZQC(b2DfH@37<7B0+BZ zeJvxI0}5rneGqF7?y?#{b|&C0=EmQC{>Eq;Qn)8)aA5rieVHEhiG7@ZW~FPLfi-qjEo+|+CgkNs7DmN-MIDj%x*hCxt|Rj z;CZ>aSBf+sXK493-pNN<@~W+tGRoyW(IeJgYb+A)*540mZIDXUwVl}?_y@U|#s(S? zX9qq$Q?vsAKq??-9!z%dOKtfGCCWSpG=7l(!o*lCfC(rOcMlHa#C{CMguD`2I<2kB z9FD9n;g*Vrt1AzfaB^tp?y%?0U?W{x`UTu>{}9=)4Qw3Dyw6f8`+USHsPkvz4BiNc zFy89rjwLkxxKrBk>Yzle4tWJ3Ih&LFz<#XVjeGfJ_2@bh9{=jhG*)(16(Mk%&RlKo zYV4kvmmi%0<)s*%=;|ZZ+e2#wE2R)~Wh%^8TQ%f_Lh8(Dyz*3#m)79RIR&=jPQ6^1 zW_F^pA-CQaI_$BB`6^3Kf-}nl7M7TY z9Li9~u!Q4P!~xLZl`s29?R-2?JX4D+bsO$S z)bTv9S>ZLqmZz+AlWuRCkt%w7L#cjKyatl;GAtqZ)Vz(vH4h)FD+wAnm@j4kM{Pgx zV#_4w6H^nG6!th9t3;ztd*91}lm(qq`1MqYdEK6G+!Vw+Ws>ZNTr=og0Iz>aAwEYN z`etB0Z7=Ut3PYn4%F*58n8|MOp{iUqvxcvo@oMbQB1Xn&W2}POkj8SVkR5-K!p34F z3$!ABWImQ-U@V6QE9h!k?lNWqxH~3L-RplLha9r=j9|u*K_cwGaCRtnl8nR8)o)WR zsif-OoxVHc(dD-m~m=}qiPr99F@7Ku}xt3BnxdY>6e%PUt_ z4SSr^g1=wwr4%{~N?4i#asD$--|_M&;AlW-Az?x(&Ju&b+vnKmti_UA*4IY z2q!MhB6bP!OnTKK_&tZ-Pr5YWHDhjMV(M=$huIjv<&pYOIG}+A=$_u~?V{0Pf&c4mVug4p;u|;ivA39VLo-y}cq?TrH znj4LxL}#qyg6}FknD({vWb`wi914<77Gdg98<1|>m~WIb0esgEMr8^&vq8vH13x#f z+IGYlV2_$PxuSZ^DA8N=^sv{KemY%M6fJuw6e066x-pvl%<QAfeP+}p%o>f{#jtg0%E!9787$Atwa=BHji6BYw`pbAA;{S za1;@0gp}+S{p!8Rxby;H9LXK-6WUGKfVEsW%k}9&H|>R76w6klH9z!dUVh?Wb*s&x zpl{ftRUjDAAxc9=pv97$?i@~t$h?TfauQj0X*((@z%7yTDN*~L;~HB$&QIA@4JAbu zLFVZ$IsI$`#80C>8(GO(!www16+pW4l1Iicy@%X3ofH$HivnzD2j zxLm6y9OYS$6u-T5>_R#e%3R6R2q5jtj^q@Q=ka7^uOiWh79EBH^Etagn$tE`3sg(5 zZZh{YW-t0u)z_uiPp&oku}g?Rcps!^AeKSf;8g@e>gS7fNrU5koi`f8Vo}Kn&{%zb zY{X`w=#*qB+_EG51TTd=tm^)pz0kpGWPEWgf7)TX>HR<-ro3f_D3pHG&n)wW+q$CH zt7<=B`$xC&eYq$>*AgfAIGI`qS(?g>I&7h1`Qph@e2Xlk>NXKIswcms(q3QC!>^sh z8=|1Yx6UHAT4iCxH+>O_p@>sx)AXm_$IGTTrKB=bOrvWT)!3jT)NV$%cOfft9z7g* zGvE@>QwI$kVA9h?Mu%J1yE>9!h+UCa&+3a8CI;_ct!s(n6* zTnuDTagxAeWYIS=_Q~2Tw-{F4AB=-dhpZ3_=n!e%=c_0Om3M$04n$3U zy5*dSDTE;!Jj`c93T7X;5b(IA9q@N!H(RHyW?=B~C1N*Y$J|F!q~jg>WPzk=*;BX` zV`Gd#|;MCY>(VB)gQLvzdU3R(D1Uw_)PBLND?L(a9<~Q%-UG!G!r;^p0#D0~% zp@H%;^|O+avZtvDq4%T6ib*K}O~(_mPM1nlw`5}_r3JX`N>u@!jGeiL6?6bB@sq140|L_~6w+%Q=oC=F-QAwB%~J=G=uz28iA0 zH<%SkYHafTc*=!2`o|2OOpeyrStj2cb^z*|D~;au-{SEOw@l%6TdI&|dZuRpvn%2o zm>o5|SkO9hqgl^kppQBZ%+DY5-gOS#k(DnwauE2aJ(mxc%=;Mf^xGC z=H48Nd^U3r7pYDCtK)8HC8k z_`>b}UZ*Pb&#Jo@KCC9F_uG^cBju&_a*KE%uZt;znjm^*%p#Tz(CAi>3SZ>&^nE-9 zq7D7ZV?i9+Q%u2#U4~7eWsP91S`Fh%v?h4-lZ<4OW3^f~>(*r1UZC#!Pjjr*V##t_ zlDk%tSaH&47q)M{B?lmQ=S(4Wj$1KtgbcBjq z^KO*#qBdZ<_^c2tAdI05*((wDLhb3NtF+r3bBD0qzZbJIM+tPNe)b4%wV6=n7-Mxk zG%t%u8{sEQChnyLL=JM%7#wT({`5?NSvRGr8b^_36n}c!XRT@e)L*hHY4qY9og6aU zJidG71+B@yaXy)4X`P&yyB_MO`7EkWkkJ6Wzty|u$r($0B7OM_Pu1<&lCkgV@AH@@ zo=9s88Rai4-Myk||L?3pUdfZqo<%*nUM5cd=L<4x>BH-xCI57;im`R^T)R&J6xMhBb5qI86~yOjR}l<I{ogj3k-vi6rvJ3(Ay3@@`Jyy|KVL+)+rMwTn*{nlmK=WYuO%P- zV~B^>2ND0r6t-0Vn&Lk>%SlJ z&r?eb#o1y|!M)7n?&$LKlJ{5qPwW5vA{_xoS%zw23|YCv>F=S2gSUfk<*!~U5$`N3-5R7O&|S)#A^XO^7yeYLyo-7p zDa-@d)VuVzDY@7Gy^!}uB$MwNS8v`zp7!NSj?@f2|6cg}561rgd&&QQ=6dcT9Pm>! zpuRM0W{*Wgor~??nn1E;|6sUvgr5mtTQANyn|gUHVcHq=Xe7g*!a{t@u@Yl9S&=KJ zj9Hda=0uM~JJ#HtD7My zvusBXDZM$%?%?USUoUO?y*^{cZAnFD$pK+!)bKr2206LbFO~xu^T`r{{Ixp7yFJ$y z&lDn&nX};X;QlL;o+#odt1f?;|1xy_w-eRYoT{F~Oj)~_V~VEO|L`%*X?*ELll_)P zY)V_UVFxS?SXZDOhb;i@WvLlyw!Gbj$T>d<#Ub7q)|yn;*QSAGTcVjr8<~!aVf79_ z_$hvJ{4f7Bm_`C+HplxPyXN63J-XF$_K-6H644lYSd+=M-pF$xu74x!&}jK{2A9Go zr?0@S(EY#ut;HnQc9Mne$Wt0ERL8ZfRNK3<8c|N(#auO0mX7Rjsjsy}W~9khzRe*j z6GyJuct%{D8#9lbg%biVGQ|o~?MHJ9s(dBIzhb=>>0InRf>#L}fKp71NyO}8fx?hJ zMFX22rj$4=KBU`Qa#ry+*z-`x_R)BbZ5^DQ6nooKn%a}a6T-~VH1l0Bzy~Lr;ofcu zP;0=ITZkE3u`PdT3_R@MYWSXWK&*H0XSEobH?!G}l=A!_Aud#CGWo;Y2$MnhkvqJU zzwJuen3nH}m}n41kB5#(d(5*M=_38g95>>X%p z!TAp#1tZOLt-9dG6rVonbPl64e?6G1nF8Fa?YSoc>XL`LHZ~qhsS)^oI}TApCT(A? zU{*USpCTY{gU_l{bh3vqFp80r@q2SqcJfV0rOO64|Hu5HCl1>VqO7!5+KGiv*^HE3 zNMsC=H^-o-^Nrv@GpZ5c;&i}s?eUphPt$i#>J6B3MlW@|wHp{$%i)rOSd=4|b_;C(#aLts60+Bw=u#Po|;yWr!<(fO-w^Luu`6Esqna(=j z0;h;ixv1S)IudIavI`w`&X*gNWj9#QanV>P^;)bfFdqp-h##FtrH;hL*k5!AoK>7H zt1+i;GazvRzRnNRA9geMz{}d|@EygGsSmU=vPA--r%`qgoN0tTk)^$&s$rRVUyQuL zre?BF{GAVK6m?W##%ijq`d}>jzRgIJrEq*Q$8b?xHR|RIa}Mu@34sw zM;4MkmIPNQ9B}y*gBM6#;^%kd>4(vJ#gpE}aGTt9kL4pkz-iA>s~WkG_}`KKf8D!S z+q)w6R*eb9#b0Z@_^NY&xK6nrDP3H7*13Vjl~`jck<51gOP%v2As0*`jY9yd-`kCn zz5SN3i6<Q$y!%y1b97U1I>!fO9tTV>KxX!e!a;B55e7*8U*Em10AH)+YFdobVF#X#Zof2nLTLa$yk412L0(lKG2}FvrMl2Qj zFQ0H(Gz4V=s2FK^`6u;^6YD>omTw_vTIG=QejctO3aG1X|CU4i1mTO z_EC?TTS)!9fpAIVs3? znK}ENsXvC%@c$q$X_vy-2F|KtwmV#!-YEDeHRg^Z5VToooDpx3_1|}S2Gi^hi4jxM zP2UqcCjgI&D{BNl!=HC7t~JZ6n9<{w)jItY8ib?`-#awZjlgZg@nts87e zdY3)Vg1F@v(_8c$*7qogY79Lr_gMwV`Z|A|cp&36m*0SMn>~z#{@1$X7_(A1+iJ#~ zrmEy?Jv4C=aMR^Yk>|w3??-cW{+x0x+mFi7hnFP))wlW2bM$fph9& zeaaEzx6B)iJ+3BQmr|1SU8k$@nu(ta9V~eN*Wy;m*mIVf!3c?yG`N&m<^JyQw-ag8 zV-qOEktrJYKuk{A6LEdyBUn}~(9pfg9PiI>SN+Q>X2n|2MC&S!7D~5V^PbJ3LArvP zRgeR3BGE!?+Ct8TBH>14UFw>c*8-cz4v zH=gr0$aYkP0(cl`O|o}!qjbDtBwp|O`BQxg<=j)WRi4DI`|a) z@SrjP!SC<`zU!LL=$wc14bIiz%Ht^qJCC^FO(q5Fc2;<->3l0YEkb;Zm|=#YeSo>; z7nLK_yDD}#`U!HXe35Eyqtjt{Lb8alhr{j7D8Xa?=XJA0-`Pfg6hUUnPFlM`0=int z%7WGgqhy50G0cwoQAH%PkT#BQ0!NE*eI*6#t+cmCVB z=YPsl^lxdzyl5`Xkhd8zwBx@$UVKd=%q_2FL&9c6ox#Zi4T!2VDV1Mc=!&er2F?En z-Wh88Xn9s}1^Hv5X0A}hK5qtUn=Tfmm$S+{Czh)~wWcnSWJ^a?C*ua2P2DfW&m+#; zB`9mYu06|X2+kZZ5txvBFIi2n@{(2KvNB2m6^C6<9OFr`SqkYoSNJ$7IaM9xZ)y(` zVY1ZmkTc}{UjsLQkR(ozY0LL5PRyyyWlIl8L{5WO9|RwUBpt~bAQ9$B4W!i2ynXI1 zCfh8qIU3UMb3uo-?=Z-;R$KbST*Rump<*RUm2O8A48a*F1iw9+hq28A;SxwU^5zcj zQYbaB__yK+T3Yg+Z$Bn^=I*eY!3<1|h5z-Rxn)x?q z?Fh?YWD{ec!_T`|KNouHL66)$-}p^I6_pBEH#&#TEMQGw&5}UzcG0NNiT$bj3VP_K;TWL`_#PwGG#P`L zeeRT>48Bqd*g0AEJL<7XL>3*?jAl%}G=n#BLp*xNYf+l3Nmuk7Ts^6#Rfg2aoLUj{ zOx;IbQg(}FaGc+vtNTqdi(szlyQ0D1r|k32seQ9WaXJ{>a+RRDzvNti(CNuf@Eop7 zA9}=Rp^#lwjuLuN=U<3+{v-vPOme1s8a16-5f~16Wj6$9Hp!S(sxMt~1sz`{X=dh- zNv9&uwCZ=0t_5iBaE6?%i$~$9E?H!2nZC??|I2A$+i0OTgnsd%@QQ@+Mvcauuj?01 zt)nXcD}Y#av`cD{s4h;{WOe|(Rw!{SX_WUqX$YHZ%bI=JdHR@DbBh6s{PK6?#^yZm zsiv3+h;7UzII(5)u_s-5Csuu3YF><#xYj5g-L|DMa2-8m`UrFyQ!fsiVHt56cMZC zl<{95+D*1u;@Rm{1Q`Yla?XLmpz|f$k)`$d_riO;KdK8PjY-%(}n zCgxxNgjd-Up9ar?88)fRfoB?!%>ruBNUiDW51N*5 zSrnRKOA%&8zfVt=b%Jb8a9iIEJ>dFAzyY3~;lTWqAAW}|xhc+$BlE-V+^S9H{IEpEc1c(*zz zn7{Lh)@1pe?LEl&cTiw?aIwKw$B~_5h}s@$w~1t(azijkD^5rZZ&DIBC0o>_^qoiR zaM>LjOopcn0bpS`dcAL#TbfH#XRs{Diz8Kb3x^{ZD#fwcKXH0b=zBBgyTcO?{Omrb z*sGKWHf`_~A#Lzk^rF{65bT!G=w87o^EHQ`>IYJY!9w`tSC8;1>GK{?jL91L4VQH8&zL^GKX{q;vRXj@m3D&-EkzE zjSy-Ap6dJL|M1iMit{MzfG=n(Vff%9J3?)mLMD9#855Yx4uF;12mH0|<22q{-s6BN zsW#yaD)YR=T$cRe;&)BB#iwK@emz$t$QM$mDG~HR!o}~ywq4ao>|Fs01DQNBzn#UNb7608B#309b1}9sehM=L}}leEO&AIdVcWxaq>t6e5`x`_YHKAd1tk2 zps5vcV<}miIvnz|G`P*T&F@)R^sLM3&wG{(`9_(3p>K3Ft8TVih(uFO)fLHz2)G6Z ze<)Mf7;P4t`!{61eTJ+SJQD}?@IWhmpo(|$gVttA`5OX-U+1j9w z5E(ra@i3gmS~YYAwr)*x8r-wV-Z_R`L`o}A7K)L1mW1L}m0##fD{4NSGPcJcP2pBm z+OH?fXCGdWe$s5$7-UWIkn8X5+Aqk%8=p;rc6h@15?P*B{d9WmaY^1IW+S?`kIpn? z0dDm=f%iTj3QuUv>9e9EMOTIt8^)~I5T~FW;CUd<$ZP*2!KJa09HXJZWbS(JuYecl z0TpYKV}Oi~JfllUe-F9iEUK#naH&Xf z0%`pV7yW#tTRpQXoAeiUOGX9JYs|vBi2)&akG=DHDq#RSX8`WO@wABW}}%1y+?WGd6zVrm!;4%SqK-P7YrtkEM7a@*&6d zY|qrV>dm!Lc>=^%2Isk@UB6D#ejb&3Jn?|}NlD}Dv(;qnTivd^)XrNo7_@zKEkjRk zFmSTK#s0o{6fFi_-sDFd!qq3O!h0(=9rB`uq3S<(E(r*8y&hiJ@JL%<7XUR^!{1_W zKrht1moUt%s)&q>_csgDl!GOyvB0UA~R^D_Ar)F}-mMcg%J@{kzD`dIH zTXk>N7z9etV}bTVHJ45AB_BML^EJ6J=V@mx8{kPnmqxn{iA1F<5xwf9mbO(Xg|)5_ zh@)sc=crl0m`X1cTBACuY#8KRGA>NXSN zU0ly<>K4{{jvItO$$2jU9cUYK^AbTfV^S}Nu69aC>|Xc-#M_0HDIf&mbQCyf7qL_# z6rzsb+We6K9q51N9qzFgUBhYAl5&ar4)x?fS8@54wAsx+Q&5RG!taf**?EsKIk%A2 zBlLm39X=6Dc^Lhrir{WW=+QX0;y+laB#hX;QJ8sAS^g)jBPE+$)#`aeu2rH% zRc8m@Mcb~jub;0V>02#g8&zeu{DeO4zh0vXNY*p?AseSQnR5KSynW-KATE%8K$AJ2 zGj@{ptlIw79!-GkM|Hu|zp78-&ON72fz?kvlZ@)H2i+&Q!S^8I7-kk0ZPcmY!ae6zO-eVm=9NDl9T+FCL(!}r4VG=cRyg5#a z-n4r)ZGSs*KXS;T-H)>yMrZtJ_Vh`UkRM-Xqdr2Hmi86dE(Usc%79Cj(}S%r*~jhc zZ)CNt{QhEI)(R?sRLEU*95y+A&rbQdb7A3-5mplNo~vI{n~JfAUVr(S%}czDL0oke z{?tuR%GyQHx~RAvcaU8(-Xe(fe?d`eOxE>w$%^6eEZ(|oTC2q5x-H{$*c@;$w8ehW zLy&87Dh3Dr(r~S zu1%v84BQm-pho#!3@G^l=J%04E2*I^`Yf`RaueEtO8)QlZcVm8HnGEQ^nEokIgp^(f8+t=(ap8!`Cp|7sH%c~;ioc_)r zYqmF})3<6CVO-m@ZAWO_e&p`oon5|*V3$=+M66R!Ww7M=Hl>X@>wj9NXZ~Eb(SP2c zSBit-s8kDc(t^;Ab6~IE>_u|ru7I=27N0pUVv}f17|p`MilsT3XnL5(H6Mg&5Z-NM zb#Sznb&}pR@ixC$4+MO_bz$bPMV5}Zbm^HO5SJm}63zY6QIXSg(xQ}$a;}4zm17d{ z(e;5sKa!m3QJg9j)2U-3;aUDnz#&N>@;CymRGeR5)7z$d6)41Cw8j#&>V4c{{tp ziX0quccMS0vG4`uEOcGbVrV^*tc_Xm-1f80l*l^tv~Zm-7HmS7z_a9@llJ4^+!rkI zm_2ga)HAZz?o%gx7NORcxZmhC2^jVjfI;B}gk=2aR3B}yks4DpQ4j#e!b z>jAE@EfHEV6geVq1Ia8Ng|^F%1CPS9iLnV-z5O6x z;*Z9rP2ak(S!_)A$G4pGGEZw0sTC5dUJb-{cL~io3>?4$%++$V^JTxrQhDtjyq?<+ zGD>nf9PDw-N?MJLwlYF>RCQnCu*_hrNKGI!@SvF9N~44O(JZ-2vNM@@QMgrL>>Qr+ zn}qdsuDjt*Wf%90ScIBVJ8oo;{TQC_Q|unbuKj@6XWjUSk!Fc^(^&d0L?uQZ9FO+g zV{(c|u`mJy(-gyjsvk@IdfYLU1#niVZcwrq6VcC@&Gao-F#_O_!-knQ9@%W$; zT?5uXn>@%La`C)FFX($6SJ?e-8Xp`-u017hRvKeg01oSVtt&z-G7Tdt*IT{Ee7~#J zIe$qxxzvF)$t+7`|Di$v^xbuFv}6Xr#&Qde)_;|(eRHAyO6IW!iQ1W8xdy4jEIr3F zOFML@oSoloXmTY}7`+FtXMMTs zxFZ%zE!Hs;RnBwASC2>aA=jdrw#6HrD68 zDs!}sUgC8#UlH-}a%}_DuC78^BMl=BrNcVNiur5XR9`7)#OYod?yNNX`j$(D=i(?c zG=FpO1MS7tXOlThzwr_Qp%N|THMjs7BtfrULBdv9ou4o1k;_l&N;kIa#sk%c9oB4e@?iH5JKbNj{KU{0^go7npAYM9B`b6o2z$T3ps z)WhP1WHcU6rxuL*%LJ5uJ(iiV5DNK)xMOh2RO!!G&=<5U=t?(qbguJWeDG)r-4wUb zu_D|c)WiqMqt*d!$G0k?9r{mxrV2!^MrwAnf9ZneykoBcc=xVeh0gO>M%=8?P95zQ zh-T($ytvtLV0qypFez|-6}6NX`51AEy-)-<^$^;>vYJ^{$j>gV_LlczkIdI)GrsQqSY5!pmhK1t&aT*dB-MH=nro}`P+jB^HI6aud8sj z_(1Qs%migfzDZP6TsHnWb}q#t7BxZ$HghDBGeep*iPI!CvgT0r+N7HEt=N zo8zwe+m_FH6N=sk&VlT>3iQ^ocmf4 z6_efHHk;^G#1ugk7{qrg?xX3+#6SW^MbU4U^CZ^aSE~EE3_&*Y#Jm;Ll+Q0=+HktO$}cIBgKj$Hc-w?4)h1V#PS8g8VFyQw{_%$a1j3na3KcXh?L_)mkSACJf~-+!Q%Z^ce(=>4=J1%<1gLul!R0T`qwemO&44)TwDLD}ddU`i` zJJyWM=eBW=9b_0G^mprw-|8U#_*J(9I*2Z~fj%hpdh*8&V$q<_{p-cd-6{D6@u}-<0-Wnx3@nur{3RNe*@stMHhG61}(dz zvZ5IhJt0n4pD^`QI2o4Uo{Hrq|~4>0gt%kcngIFtpLj4v2HrhlC6{~Hi}Lo zXqLh1C-Ei&vreY+CXP<%g-S?@fot#!WV_V;&U_Q*f2RD6n3eJ1Ig%E$Tx(g_gY%cg zdOG)j!o=4Cn$aoI^kcI&fXX7`#FU(ZS_J76+%%*i!%#4XUfUtwrYz@AHlsrP^gX^M z5i`H}X|YN@(Osr;Phu$4kJE34pkqcS9Hr!+R=0iU4;tkP;~jF%Q2y`S^ZTKfJOI2z;E*^ZmI}Uu^ zKW7uUSy2z>*Vs|4#qY7jH=c>Obj{Z#TAkJAYZDHk$!{a8fjcrMp&V}KEvxrWFK!N0 z3T^im(a?C)s@SM4tfEcEWeMZ3C6LFxJ}z^yS&fWq{)9qP5Qyf!F=*if?_(LE02m6%zts=UO;}ysIGoM$TPa2VN=5o&yQ;xoi&PQxni%3s)p?RA?zhwnp(JkXM zg=*m$p|yS6nwN4Ze+WgZu!YBvIXRsBjOlA!-44@SJhEq*@4~qZH2Mw*t-PKE_MIq6 zPS6prs}l6u9I^Xuc&2!i1<5!g=+x)~c~hVND4?M-jxD4>=18(*$MY(D#kjlEgv)(Z zxfd5Pr&>_u{sN)8zs`f-*+H1O=-Y`9jA_>88>LA8*<7)~vhf|GML+Gy2jzB?$>&LK z@)>b-Rf`_xPR^b`UaGlbl&VZbt8h0h6-4Z&2{m*#{9~*PNOL~~7D%#Tae$uGkbPd7 zDT2{H?Trmi%?|koeYunAomUgAQ3!EKKucYajd2da?bx7w8UtKssFL4{8popQGov)DPLJ8+yKDsP}h+bw)| z9il?DtKdZoH1s7P3kvLBr0TY>Bj2Jb^`DcS7*mlbkZ*Od30Kkkkvg-^AaQ}u-}n=O zH6Peq&!3MyKdK%F_fA^B-%Gz8aA@duWGQptlYy^`*c|Wiwl$&A!=LlcbuJ;vM2}zA zuKE-^Kh*Y!`9!nx&!KT@#tpIvAp6AmexZ!@?n`lADwQ`yINHt%mh2vmSSh|8Tfi56 zTA28a=CerojLu>HR`Oi=;bX&kBe-HPWwG z;uLsikz-Ui`0{c>ljcp9=;)47Kaqz98)OGU%Bx{E&=FRD#Q*4h^q_e`rhVpOrO^cq z&GFOzwGTyxm0RusSvo~E)ST_;8-9?}#0F13rH?Md3(}_>Pi*0Alp2LKd`jmwNm7LN zFO0FZ+NID>anC77o`X>{JX&!|jOHKE^0E6-f_wSB$d(cR&9kiNg*z%gissBXa%B5k zUNAUvN0y;WEJb=fA~DQix=h{AR?7%l(oy8%n`4~kbc0!}lcpD2^UFc&!%Bq+s10v@ zFc@Ks3eoTQ3t<1wn#Juw)vk?P()T{Aes0PH@SMsgbf!>5$BfF*l((c;2gn2UOSf-L z*xc#K)v?@590Wj?&tU5EF%_6n>Q5L9;t&c*qHHN8BQ4&v$$5Fn3Q?(`LCbe8xD1x{ zJ82f+fA_Rc<@iOqE0?aven4Aw_>VkaDXMFr_=Dmqt2;QYrykv;>)l(JQ4-@TFwJt{ zgIk4(hjW95u*YP?Qtm}o4KJT0(`R*HeUf!qtnQhR24jW$yaQ(j8e9%TntxP(O~+n< z_xx-A{U4OV3$AdmGd%9OiKL_T9u3Jhphz)JAGFp#K0wn4PI9(ae5#>33JoxHR?_Mg zcr7}@v0u}&XN_tXS3S9E8sZMFc1YxR`Tl`e!5EY2@d)JC}7@sg9H5a}&OL28xw8v1et( zX5tkEUmP{l?ty9~?lAooHtMhP@TSy46U7;;QXo({-amId$n&CZ2Y#t|Gx0KGZ$xx~ zKI~PIpKxCETs!HdG+z07Dy@-Q?uePZoi4EA*{!VCx>ho0<_nZt%}N_A^<0ITq_429 zl!5HC6f5G=>MhVLGV4ap>uaW*W~_1IQQ4*C+jTn1HKIqsOJr!-U4In{ERx!zVYv8G ze2^7nH`Q;8owFDFD#wItO6#vbyde1_aBe{J;3 zjn+*0s#z$^tbN@XsUT^5?aNgC+4Nxtid7+`b*Hyq4HmLaXsOAYe`xw3rdU&VJ54s+ zsj~2;MIo=QJg!+GcgHO}$cCRt_~mw8rFnUsR%YPnE;`Wt)Lrx1&2A5VZkqMjb_U5r z&-#PYceb|@{eL>q{sCp`+n_N^FFiSw^w#eAl(Hnyw8#fYIM5yV*y232#NEkKPDY(#WmsG}}~7XER~wkx5wQ<@|FF z+yL}u>Upc$@-EQwZ!j}G3K?4eTR<{@ zbdnn{4VIht?p_m#%lF_VvkzrMbclV2&?-pX)Uk_$M%WRv+n7%FgSD>??9`j10wn9d z#p0mWIpyd!hob}e?PtWfCZ{FPYWu0r@jU0~6*V~X*N<<)RU@(d$KstZolIWA#c0;R z0Q(`IY;~!e2t#niGF8?u285YIV-pqamt1=Gt48gph9O^m<9Bg!$7Pe7EiB-`4<0|b--M#R z(iO!G6p@27lhyUGn9x|>0^?NSy4&|`reGyW7?3Q7$;wz<^s}hNq3hms9=|*r>X(I` zpJS%@DGgvnz)u-usBQ_v^!RDGJto}6%kP8^e)tDsDOUQ>_9pEVV-GnS#j5a%)fMl+ zPL=?Pu4oTSxlm;8#AmL*Lc>=EhMLAdEE?s`rK-FCg0FlT5vZ?qq4#E$S?A0cyET5% z2+Vjr_zcUtH@piGop**d@_BZWM(q{I8*|b4E_w&Lrz7@D>qEh1i8H87f_eu_HMF6$ z+-!5)+8~*RoW1(n6j4S7tc(-|uLUOr(;js_IFl^N=)T=+N9pmGvo;B2Rx)i&6<&PMD|BBIW?yC%(?f3}Ky!TAL5TbT3iOtvLNU zJu{4B*^7P1*Q{h0+r9d5Bt!#c*Kh5C=Z&#)`&1$wyi+1XDJrdq6*}sLbgyt+Z{55- z%E$xRw$+$@n(D1W>eYp?fD`)yr|qJrt%pYol=&h`VAu|jJhIOvN9l=w+pdjAP(@7= zMOKr?M>a@i(4jes8l+*18p$ms^0rs=dycABO1GU{xJ8Ltf& z43IrC=0j>pDymx^5!D;Ln`5l1JlRLQ-f9J}u-9c{_i=+A7Q;MRO-Sz99AqhM=#{LR zdYi!#Ufey$cIl*FL_Q4)vbcFO6=b;Z`15|S_r*{nVPAU+2fQQqt`lUfymqfpw-^N~OALJ0G4qC_TNU>1CoH zVu1R~;q;dC9@0Ayw3#JPz!cb2BK(laQxX>~!C=|dd2-9F2YM6-^w!H1UmH)&oh-Qp7 zMDbjLsy#{YYpTMGkUk?;{d#nA%^@ZN5LF#y)kR8?b)G0zp8tp{e@4!JeXeQ|HeQev zQoitreu)`AmYX6gyO0l09w2_GT$LFqPHtWAAJ@jX2(GB=ZMB%WAx+LXn$rd9CyHS& z8G9UM=U;hJ*FBiva;JW^hE7D5x-3a&a~*VKGLLw?rfcO{{lvB0l5y0(j6|Q6PG>a6 z>o+6QQ}>#aXvkx1%ptE?bh=ZoII}i$U2l6rXqB z0BfF^7$N9s&A~WYkN1~_iz*>Wq=qnH0=G-xmx|3Ij z2??3gjfXz7g)_7*iKN#D6a;dN7H^B*9Hw>uf7(0Gu%?nVj-%{i!Lmy40xM-{(mO05 zK~^v{MFauq5CK70loHgnP!g0y2puuf5f&4oC?qOPM4F)q2G-C5A%u>Uz@3m4+2?wn z`}sb1^Wl8RnfjhNGjrzs|7J?XK6S6Edj84SsJ@#ns@nV;B#4jXDRm~3*h@G&azr60 zpVPK*YNYNr9*yd}tCX<_zQVEn7rf+xv?KMUrQb>zpObY4hoW_K%bBWKH^#%Oa)ei$ zt}SBBrJ!_dWz^^lqt2jL7|UhdT@#B-5XrbrZJ~&&g~)0E8e~mqUl-vOJqnv z&Gp0r=&X(t-k5rP+VX(6YvJOj$aFu3ug22~ip!J7LnFu~v<-rsAvW19b;oZAcHF>I zW5a)5!8Xo1vp_$Ii%}T;b|`?7Z!f{60?+nZhJTNAGZ4F2m$ULQK}opF6DgJAFBgH& zNBmLuj1M8qDOevTOcM^!JVQ?Xh}6mR;D&X;#iW4%=kUnLy0Wa!uU*kSag+-J6|lL! zIC`&vXIohGWk}OJXBquP_u}n-s6SD#LS8rJ4=sAg$`AEd&&w<%6b|ZkYX6XI?%z+C zwxE@m4?K7u)s>(f*^)E_^XQhcaENaGvGc*iF&i3flyb;_u^|~{ zX+E^%D2mo{-uQr6xI&BzkchebVA!DHjSOYy_yv`IJ6VT>_hq$sgT2V689#yA%I@El zof{^!gAArqtIOn~8hj&{hZx4F4u2Eb66Tr}nUMHUS-sd%8-gT(wcUQ>!#&=P0WQ%F zBZ{3%HLu6)LxFJK4&kR9_f%0sN?It}(D9`1?|cHIcDo+CIGOc8AY=R0yk|JECP;Ay z?Knv%L5{qUewk3>1o&pcT-ei6s_TM*(ZC*tm zou`bR66=!tgd+I|_`uU+SyMB(ZgRevMq|%QPJ~3$)8{D2j2t6n@MQ1C5qwDa&pHKE+O< zPeX^^vg>wvxK$lC zX?TL_MzY|~Go;04Kyzce&{%t`@Dkd&AUeXdNlTf=3ce+ig1ydv;yep#M2a}O6Inxy-O*KH>_iA zKYOR7#CfG#K-ViI*-u_zdhDs{@lL`Txx^cnv%6Z}_Bclge%i@Li*k2ck(FFc3U zCeOVn8mC>*u`gtFh8p8K)SK;AC-)&xhl-);3pPs@4XRxOv?l{`rSv|9rAjHz=mV%mnS`EbjXV*074&Xh zqwUeM)#a z@Hsu;6l6;cuZ&fTn|m}P25m3+Inzzkgso5y)hZ+E@}#9q<#%vyU5i|r9Mt2~YcE0m zu#e59#!AoFD{tySF>W8O?O=$qvAxt{XNpciLVLi6qAplT1A9;%ukA0~F?U30I?*KsBGQ=4BZeR&vA>uM*N2-@*wk<)>t*Q#(djRo zX&qNfLw=Ga`nJw$^hNvG8v(7r7$^2mGt79OPZppgvcT(okWAf=BcTHk7C^u~cE_jD zmeaRk!Hcm{iLEU)0Ho772l|rX)2l*JzdA>!cuccb4VL)MV*88m%a*5|F*{SOoD{c! zvqeysFTk0l#Q_4YJ*_P9x-N}_v5|)Hz3m{X8E59ZkuK(A8}@#`ntLlvje5p?wwT`L zPt~NFqpyf7Fuo65;;3X4d8NI#RKU6~ajH=RJ2%R6PW4zSHzxxs$d+b)37@0UvXQg? z!nSiIar|Nk!?y_YGE@+ni zsxn6Y_QnB}I$r;hHh6`;RZhVIAF4!PcmDVz>A=}h*iFPDsfdr~;YCQrNi%D`hg#68 zmm^?#h81<2`r9Zc{R*I=;x%A_z*4mMNqLfxZ-TN*mbH8^Cp4m%DBqk96onK;zjw)K zEjcp3Q`xs`vnNLNY}D#ds5h`E=a)ZO#SLy#qc!J=_D`W`<9vMfsXa_ z^B!{#waiXx|aT268qE;h$>N){ab!)#!%zNO} zLW@7v>=7J@`rq|3n3GyFss&I>oIfGguj6wpO^4lL_c!o~fB4h?5t8=51IqZs#6w?r zXcijoyG3dLja;r*-z3V1g4N;%Bk20uvYIU7rk2TH-6`%?wj0ym#63*8QFw7NBlzjy{`xv;I__&9}2NzdJG9l=NzW zmEe(wUjX;b?4DW$J*kE-#Vn~*wluHIbK&bDK_-7WXsT6-A01*&g1J0;i#M8Cr-A~-ndRXSw3I_TZ=1u}%|6=Rf+`w$B zXV?rT@=vgD7-VQ@qsJs#c>~P;wtjXTipQmvu-mzng=ENr zh^gK7r^j=nMthN>Xz$A1v)j8B35k6IWsH|PY>&@>us6v)FhT!$GY{Cv;JZ7Om+u_+ z*q+7^dqmJ=)A=%4X?ZZK-iL?15}(REcuQB7;5(x)>Q0jbpALZ zY<>~c8$B(u4_-?yIGenWx;oCr(gvwbULO``WA@`Xz9-r*B5gP>%f8(k82CHzwWE zl~kKO`f-y@)85>ZHF`1~(r=@FbGY+V;%)NXiYviwf~U`g`8`tM5qQma>EvnJyJYx7 zo_B3Lmr{T!odCo=#*6yem!21Uu$kWulXUF5!a-h1?e%t3mUbor~17MsSQa^3fu6hiPmOQ`2FwAb(}grbbn&kl4^oV zHWpEShofF$PPWvjdO~sbv_m|~(+zsJO3>KL&05Q7r?1Moyaggv{~03fkP-9Twx9pp z8=n6>vp8?`3oHwe1kR4y2!$IrUfj%Gs4uAlLZWqb2K?2|Mquv0Z}N$z?5$NFG_G>V zr(Q^vt{-PetQo(cGc}RUS^K=(q}p#yy4rom$htrmsgA_FEE@?QrF1m+?Bq@$u6SFa7IT zshrSIhF=vK;h^H6MW0zt@(8 z48T82P$|+i<`ep_nRwcK=`??eyl!3mB-|ME3P*PVBFQN^_xdHUi@dBM4W zbj^RS{gPT|h|QL%3DU}1lusR5jAxz9WQa%4b(dU~2BIS$8YAfO*-@i{em$l$9+&2)n z^U@3bfd%0-QnUrQds{(XsLm`$$g{tW6s?jTk5l;f+TQTUiMLgjER&&yXJR?jG$M?> z9wQh2YtT0<4R=gU8A35M-~2CS4DPhj7R3XgIrV>ONv)sJ!wdaN^TNqk?f(*mqH+%w zdy-d*=EMJ`mED8?jSCEpn3egbr&d3!O}*<=Mww4NbL6-AWkAYP)Y@qDF*fW!juGnl zv9R!r8kiP*-td6K2-m7>-scuJVA7lOn&(NX zdKp+7-@=Ll-~Tht%FJM?Z*stVGW(R2%+#E}^-w>jM_28UZE#g1aU`Hg7iX4r?=&x( zbI_0%$V^D}i-0WqhSh;A%TLk0S>ehYU2V>&|Kj*AkLUv`c#KTNeVow$N2H$3cU}v* zTioUY0@*SxlztAw#4D9hAh{&Qdl|-4=htIigV6xnW@Oc4;{TbGAU8bd2na|Js?^Wa z#RPC)$q-4Bqs1{7AB<&A2eTCRx!Q7P3c44+Wtctvfx`V#C#gg;5n-x(xUS>VD(X{H zeJkjjv@gbObuLWDfka884R-MX_+UCbu|A|`e22q=Q`MNgYkU3i zOMn-@Bzn1h9waw`mly^!KJXN)M_Mc)yLgSdLmuQ*-NfAn zSZW#DEcfd*$gDb$`jrn5Nm2TWl)!Rb#jG;KH~}A!+uX+;BaaZ2l9vPU5(?d(*4u7C zOJ{?+IZ2gr?+dP{_!yV;~w0J=j-zI$*Z}Ocz@VSZwOPaS5>z>K|q-VYtJ|z$WT` zE8RO${>O*bX?9ykyogbZ!SA>g#|#hUnZsp#bbZKP(SUKSzlL@W%A#V#+Fu$>RaN)c%cne zM4SN!+?5$X&!L%160-^>{ zO-?vOHKSE?!}}&pV&xn^^ZF3gO>30Xy=}^)C7<>YC{jVNFr>sR|HB+d6Ox!=(uDr^ zn@Cnf`j&#wU(v-=?cGj#9?|q#Ts|?Sxi490$NB=zI5jFwb4fab4 zwQm?@RFSxCuUFz_JF{sa<3VhQE01%Da}~Ntm){=R*IZLVNt!;I?i^pXUC)CmR(!w0 z0K>|9xpGodXOCtSe+;~+MwTJWmb%kB@fEXfhetlM@b5}TPg0=hBRF)=2s-sGlaYMp zQ_BwWF{2{6Mt=L_uWxo zbyL+PupN79>P@hYcJ!c%kr4DVe-hgyU&E37Cd3Tu$AU9zOe`s{lYvo(wV>Wmzcp*B z5DKOfhN+1$0xgT0eb2ZqIYP>;LNrphm*l@HpD-TY#J_3afdPjLjquAo^t znV4HYKao03mv8&6#HXt^sWK%kkkHo@w6c{ymCSC1@4oIc;dcc5K~hQ^0{48}-8(3B zo7yv-dEuA_O;&!i<4FryI@~MDOU!|t857;MJ}Wn~r*P<8g4EYs=qz=`$j1g=c(^Gy z+s3H8HJXmDfS1&-irI3v>-o$qCyKbGM-`TBC;2G9V7Ky*YR>D@=IKjQY|gRr?X8KH znU$*iK2@g=i@M2@fwdX!!a;rco~@_&T!8p4JAM&qE;flp1{f&oPV8T`irRY~@vhu~ zh33c}q#0^KNi}{av3_$__V;Vkb%blvV_PL`ov)7$yXA8kwu47)Sga;HhS=rd(=xN^ z#@A2XO81McSLTpJdYH(!Q`SkPvn*vr!-2&J(& z&KmC~!0UUa+PI=Bt=`~57Y><`8JruTUMXh2smu|p#9ipe#p+M|eJZfJB!pOK10Md- ze9O)p4eO#s*X7qr>`1?iUr7L%?lL?ab7XO|M;kPUu)cv41~BfIq_a04Do;n}GB8NJ zaK)1O@!_VV7l$?!P`ktKyjiR^`t+F6nHx3K&7*HeFEC~5&kNNP?}_Jk1)tomdniMZkgG=7EjN>z?D%c7 z^imM0ki#u~SNQC8V-dA@G|YT4TJ=a{A{`t+(1fI!3q*vBe@iw4UOunx{yw>=lhmwBqww zx`i>DCe)XQHhN~MxH{xpe0N81P)7Y9c4bBAMTBG8TAu>xB((yEbRc+4U39s64KaWu zMI@Cx#&^?05F^k}yX{Ko=3={LDMJID6)vITZ{nY&ocH2wE@_%6P+ElXgz8xzRc@|T zu0UtcvZ-}H1|R(9GUyF1M}izvruHV9^KgAHZh8Fs=!I%VcSs4>cbhMm_d>rz)_3CP)~PcP3WXeXeWyXb*p%C6$eg`4 ziMkz~RKYAR7jp!Jpqdvmm`w;!{;5PjLHSnfziBFPkK>TK5k}b4;%tmJBZW}5235=|t*)(bv_bsYF+bLfS z*^!Oc*vPLc+qY`Hd%1h)&O8LC`qht6(&w?J$hg;J^c3~Iq|5A@_5qFy1C^QagR`fT zrlHiRGblR38}Zm*+A}hm^DbEy+ArrQc+E=@W(biIyQd@+75jC# z>4$?}gao44GX|NBLn?j9Io~}hU(`3}7-DVfQYc+j&Rn0r>Fk6KRuV7b1Xht)PaPb> zE+b$W8o?Q|8x{TXQMo~*vrG9+p~{^zDSNRc5h!kAGp?Y_xZ6YJXI5r-dmVkW2MnY$ zp&NWDaj!747lwqkZp?)m(VDpcy8VYlgrW*}i=dTif zI5ZWN8?%c(Pv)r=^(qO`#6n`=KT=APa0LNFjn8MT-)@SJ)W>NS6BU?eEh@F&NF_u} zpgdMSx;^bDOiu6uSUIk7+?+rGkNBn0kUuX}vvhtSTYG5|>Z=MH2mw-=Yl1uXd!D3A z`Mjna&UIEI3(+7eQ%?CG9g_#%=+;Pcj{{;=WR!8w$NCzadY%a1xm|8SNSSF~I%r0V zt3BC=p6*olOMomWd_Pk6nxy1YzvrJIc5QJvR=;j1Y;hOktm9Y(g6BWHh*OAchpUXg znz)6K72Ru%0KLCm__!ou(z`xGMR}6QS~#+&D=t2mh)>CAQ48b49|YIG>%Ikttd<}k zG12~cV@-8uK{*{Q>Mi*16=Fo{TP9*~AHqXe-esfiLQtx;B)^;&e$S@+Yo`UOu$+U@ z-FC$>-VsY|=DcYr)y#wRbmre0=88p<5wiY6GwQVL_e}f!m%PB`(A?Ch ztBMXg^i)y9bgw{UdO5LOqOYan5H>muU@4@>nu7Q{m4!n8pp#Blo$u|soe;%A1es{Q z?-)-e7DcB1NSd#*==?IoTG;U9Lg(vX)UAEaD%)BEfvUW#hUqOm+uC&T zRTYYny`Tfh79Kfk8(A;JC&9PD7wTHOkdbww;)AoK;jKBOOXiC@T*{gy=gyEYbc=Fv zZ<>3mNLI82uATVYlDg*l3>egQ+2KH`F=HCjkg4`SiM&@3SI!ODMzFu@5-Cc!T5u?I zi|%>hMs+Tpa0%fbrO0xFY(81J*=E%5+3g*)Iz-gwCA<#d5)H^$6gCa`dTTu2WyFz9 zZrP8Wutn*Jf{wd6MQ8#OmoWWJBCe)Wir<5p^_Q#bC_&WEu0TRSO-Z7`wU1YTlyPq- z9l99<0pZ>Hu-RqXXUWQyq7FA%Q!Fd}99GL2X=$yd&uSD zb6wzJ_8?BDd9;4>>m!B+wbXJI0{2xHQ_kBqNC_?bAVGvk)I7;?rA%r4h2%2{8kS` zgv+OaGFY3wEFFy1Ter693$D4;rG*x7!3v2iq7HdJhB!o@oD%l2IRzl`IMcn@BgEy| zjd6ihY22#&kxzX;T}ksa(%G{0=%YOWdGAqCpf9wf@i3#m64Puq{-T+h{V2<&^}{;1 z=j0#I7&e%a3=8>Y7ie_KjJHSB^YP)0hglZT2SOy-Y=^^2x(yaYovqgNkLzr4^KlDA z=Oib2t+686kY7m41c!jCL#)tmh|SntRN@CnG3If)F^wut zvDr%Y_*Rw%lrEIxRWn^C^2s7L6TEgpVaC0&92u%i85*Q~CB^la&V84~7BY$!#fv<^ z@aPisY^&3ICL7x_`$Z1%P`BoQP^gRT@ENo51kDSSHs0%_(idCSOy#8knU3=4Mk`I5 z73Fhrswu*Tlb9fXpfUB~Jv+YNc$t{Hfpj59Z!K)xMy=wu{2aa-xg^xH$EWzrk~Cj7 z2TRPitk>V?Gn!x5#>%i*u?bY{a(EqZ_a!)MK3Gg#U$u*BbDGeereNt=OJ>m7KxyH_Zu#oQkkk0nZ9ozv-$*~KfWW1vwBHuRT0_At zU-^KEPbxx#jeMiCqZJ3Iy+^-2c{Z1I|E3h%2Rn!hd}*v*@WdXtY=oLD$;y_jv`mtl@d30xy`_l@B$&aC-dc@T>%X z4_~Th^b2^pOriqzQEfo%hYueMJn;#Cp1aB4ULJk-#^o-q2+UmpZQTU(9Mp3rZii9K zy;CXTcUk8eJ|3$$*d>vlrexPzZ@PXMdbZ_VhD3I&X%efPG|J(+ISC*JUS*&SFo!ns z$jR$~6LZOOKO+DHIk4GaSVK)D~r94LJ(U@{<9c1ywLM zc$EhH*cw!t1ddjdO*l>=4rvj&oLoL6E4u5);z)ybziG$yD>*nHjT^5>8akk@l!XBl zCtAHxrw{U;oI)V(xLY7Lgf_(4=UNySvxFt3epVVQ2VeZr&5CxsK&ox*gsqtUell|o znaYtG0?dTVsDX;Cd{Mq!V}0ihO=HP#HJVl{_qZ9M3m|YTfnhqDj_Ovuut+T)&MM{w ze&?6;3Tn0Y`C$j$-7Ww;LfW*CREd0jy0uyElptplikhL(Y#Wq`l?)%xn4p&V{o|;T09}ng$Xg|=Ly9b(LHiuV5jRo zMjp__fZPwy6pwO-4-axVBIKGkD!dC#a)jj9B0c&@ltNYnqAWI?*f7D(aPu-NF?h0R zFTX8VE5tx-+)vfez{S`fO)V6v80=7>0>*XkcIRQTR7Ud60c{gEy{L<7T2rXoOpY`) zU#&1t4s?HFEjeWxRfAZp8xga+mPgE=5Iv98Ar!K>TZ?vS6%-ZZii-d`-;MUY)x_2$ zU4pGJRGZRUYnUUt9%HlAEcBFteJWR1{F`=_Yv&w`AY5jU;v;k<6DT#Q8(A4Sh`Gn+ zuF0|%a}s>Haim1O2(Z{v+W%48e3KsC+_sg_pXZ40CkLLRh+WqJU!Fu6C>nEPg{Ly; z(GK9c@E1^;<38d~o=6mz|K+rsg4K5tj%FWj8@`mB$uBb4FiQ5d9XV-&eSgG_9FMw9nMUsY+n)4KF-aY67Fj}btUe~@LO#J@05 zJIBP5gpn!?`=K;{28QXgNYJ9((%xJIIe{i!C0gV zdN&}q)Z1XiagwX+C_z)tI$&aX_)vjXiDcaK3!fcHJXWiSG;6=qGYK^nJ<=bx2i>5Y z_gQUy*K{(#Swr?l0uQ7@>}q(7uS@&EwTC%!!n|WJjK{|G3 zF-P;tPtQHPp(SL_p#!r(IW2$qWD)1vr?lsb+}#@*~7fcH0Aowm(z zqrEdJ-oV^Y$JQ(-nyzHpBo^!-$6vBx9yvKs-qxxF9IGjLB$1~Q(X;AHH;xHnz}~{n zctZ-^?mq&++YxuO&ihSU*2)69dow3yN{=*q!>)%ARPUq1f_t@62>S-TI|Zey974Tx zg{8_o23KFSlID#DhsG zc%jM6C;^KvX|8p89jncYp4j=gJKU7t+4QX&T#q*r9$@tQHfNvsR3qFNOIW5HbhwpZ zHeoFj4@t;ixTkoXI4B03ilQN*^oOy3KJmJbB50hZyqP&xuwO)CeS3F>x|0x}_;H!? zTITjuR8FzF{jQZs%1t2e!$PahWwg2rm~Q$lo*&(>vOUZf7gcs&_eHMB@W>U6(|7kJ z>%@aN&kup;Kr!mLj}~fa>bNUt1m5V7sU%B`Nr4byUHHS1=GN>wGSm9nA4gtV)A7Ng zmZdMy5Nxz1I@3Wo3~un$L^u?@!9W|}$Ak+j!oOoT%fIIofZxCBYZYLNrSm*rDJ`{r;)tWpd)a>x;g<4Cbz$Tgi6I&x)b2!^lHV=YNp z0pJo%np?7l{cP~eP7hGo$EcUv=8Y&VrYj4YpfcR`D%;LZN^{}g$nhZ7BM;Y|y@b5C znp1mA&tK@G!uKCpp~ml8R&$i$8@cgI{J^oh%Qgd(qPBy)Hmv0BAIAtyOZQSWrfYRV z;GuwFUU}xLqDMK}JQIFUV)x;JAMANStz>ucge?j$5LH17)$d4K%N6}QUYHh5WVW@_ zKyNks8F<#uTDI#Rewx%Z9|Xe&W_!cu*6^IS0ZywVZKkLCYqUh0bkojt(ufypyUD0Q zZW=MGs#}@xx1Q~)207>0x8uBAM-D~`?UNWF?xWC834Tb{Js9C96+p0eJP0U_`p2W2c^YfD?)ZlMoxs8g>1&j=?a2+cRV{q||vtsufaJ z6Z>t*8}zB^fIR8CJC@k9b6ltj3{$M3sp9$4CIQo>6`TCuj5bVMR>rjFZzUv88|Db@ zR&;!S-bk*Ab;uxX6qFT5K2mgazn1dnu+(wwpu8NJEb74^tYg)mp(0_maFp2z-(IF$ zLpfCHQSSBUk@a}R`Pb)5$+#vsWR6w&(LEEgjp8%MbpIrb%=MdOI0$4iab@tJ2yxe* z^vOdDj12N-ysc%mIdHfZ)Z$(oU<_{)UP-+JoJB;}Dfe<0R$;iaX*~e*{_LZGJf)Ee z$58{gP~lD2HM5V%bfC|4YrE;iAIH@yKukA}*YIb>P-?nGpq?o^z--243m9)uxp%3z z?PP@uAwr`gqvQbaPx#)37wGBr6j^R}v^`Rf&l&F9F4q~-+}28t5NH>%|C-m+s2byJ zzHi%tpP{^G<^SUf+5RpFw~Sxk5f`&jT}1ym5WpQ|-1CL*%o8bIU}xixd10HP=k-U} z!riX-#^&lH*AZBZqE|1Nw}G)2C`V3S4mXb?n?{HPZyOnE<$$>+!F|~SRgUm$whhX` zr`PqWr-2el&a^nBj;5iDB4#yh)-#)OP_AIMtEq}5nPaZEW06(H*Mu0b(Zl_c*|ldU zC8Wz$JR+o}lb&8mWPtoO3eDN&mi|ir^#sIxH0@2IJ1CQQ@MIzhzwP9<4f0Go{e^}< zS6c9B&Z_}T7Fn3n=8lRCrn`G%INqZWPK6hd5n-q3LQB&m#_(L^P}@ryi=HvetXqe- z%fFkNh8YLrjZ_wU7{o{vYzDIe)Q|Kw?rxe_V2wDN3_1JJ*ruJg1A3IOJT9x`#T6zF zbGgc1;(rx}b;Z7qF6IkTNglUWM`nmOnz${PyZBN2q|+s#hEK17oAkdL!$zqu-bbiC z544r~W-?nnQL)80EtTL7NT9M~8;^oy^4LLDY@dLWrDAe_jp}cQr$!KVNCM zwJgWmvOEw7>^Bm9n0W4IznT6}`Snq=Y9>|u0@W6gc&@^9pBg!IDHP+arl^iAxaSDA z;ngYk3JC?7BXt{jSrF)RWA{~JQ!JdrH8lhQqLeBtjED0*5$nYzQL)2QYCiN>Ytn}a zjZ13%43_tiL-X#x`r~R%su3E&5@6ZTLHDhkDd zptTgYuBM~KhkEl9p)$lQ2qec>Ha8 z%uB!YcOrvxeZ3-nHifes)jlR8KNz4{DQNvnxWj8C&t)n3zq`_!c}Ne8p-tYBpd{znKVX3C(|#v zOiS)+Y$pizhJz(co7aBc8KPMb_7kHX;pzOz9Nspjzw@H&9^`nte1DiD#CNOyt?q^x zf$vO!TO~ob5%O#}`#s;*>SRlfMR66y`IAL6H0Uuw*2a5z|cX zqWZ~%TNHIMc4BG8H+CY9Mn+I0T?F~zVEYPv$w)bb>yxbi@D|j(|3w-=Ug(uas;5=* z2083>JW1|5kA3K6nEsL0Q~!q<(G^l#XYnBC_u~d)R^ov69<3qj=O^oQ#9ZyW4~8>M zG`Jg;2P&$L9>;rYOByx6EFJ!z(}n(hdU2UOL5?bS7+D+9h{5d4#AZ6JSk&dA(vg?{ z#gkb5-yli+>*xPJvoQG7!43}DN#XU%iHRAUOxB`+>gH|u!B5`H|DbbtLTI84&e624 zc1=$TZ{|$@`-FxqRp>Db<$v-*thtwP;2XCAGHx^Lx%29mpYk8`V@xA3UfgNlHqA*h zhCG1(X5_3LGf!xA8nc0cZ;$jd;uC&NDJkgg6pc^w=2t)dZ=Opi>X?u6;Woe}19KU^ znO20M`P{YH>DgH)jlP(_`_6yUDh3J1%nylQd@sp+w$#AK`66;yATKaNSMENORGx&1cCItTal8*D8AqIRMk>eealz@{jeLd$U45RwqauS;~3RUK(im1hH~UN6PmjPPy!gzyU z1(ef9;^n`1aYEpY>wh!wPOMy!Q_oSE{1>b5`zbYW^uzzK{QmFp|C#dm9?vQ7U9)Nn z*}D%6qX>rEM3QP(_&i}A1CGVZjrJQ@59z27zMy{zck-USOD`k;YP zj)}Um7%jhbk2I`E6e4D}4X-*9Ubb>`Yq5dk$7`O)*Vk+=wpTSS66@&$>ex9>sp6rf zzTC_y3>+Nv0rDX+N=G@qhY%vAI8`y9;5gG`UNQY!Gexy5tvx43fL;49gZI1`in%_V z%3X(*>(X|$xK;rWr zS}?I{cKW@Bd-KRc+zYmGE$fh0Ak~{S>xeZDH4=#RuCz?GroZ{4jUZOmSW@iQEI&EE z)$F~S&JW-hCfm%E2nrv8s-ZrPq`HA=uT6+jg8MDI97rhU;I1QH!KZDolbxcUdES_S zAY?vCsCv%Li&o%Rn5BGnZ7QyFs(LQfAi33OGH<=020u&S>6rpnJ-2+f(-Isp^*VTc z@3Ow^%^fVYkEbVNbA2XiqE@BWhVy(_K=Rx7P!I(Y1Qy2zvjRvc98&AR02p zB25oze564v^u#~mhF7Z7Gm#cG8_vDKhdfy&$V>s&>y^_zQ!L9ppWBI7!ZzP%Vyz0Q zz6`&5EmONC-e`4Q!@s?W%VUN2FXHm2{MR&LS>FJ_a`T+g+Eb)IQR-lu$3+&XBF%V1 zpDD$fQZIIIJG(RHG_?0@-_aFEMZGxOlSH^2B&=Au`3vqvxLFL^P!7k_2p3a zSpKjq4eo2JF|m6C(!uXEBg>^`sW0N-Ll2Cu6{O`!e)z+p8da-yE|;y1iGf{|$nbK! zYhEtKgcrUybN1-q#<7##jFJ7EG+aCCHug;^;~>lyqeG&!?9m0sjSJTA9%C4ARVwai zQb&};Q)FFioib9q!`nxGyj%+%Yi+WvFt8NVA%1I(-tIJm#z5UwUW&Y507Ay68fK1ASvYSlP2zV6g-@;CElg%)zWChqBk-4P4?zC5tq<|%uLjPZ0<|X%WC_Q8l6y47 z)APr0|HM<~hc90qk_o|$qR9zeZ-$k$u8Df`^Zgkud-Q$Y9Wl@V-?|=Mm%#?V`&)|K zqpY@|nD!)GcDsYFcl+HR9hTt?GdXHVl=vJ6DvrDJ)kB#ij69oWT+Q58oD6J${=meB z_bx#WimqJbQWM1TRq#nHEU+MgE;EPANqa@AICOS|FohTU+-hpBa4Qi%LP<-R6Q*jm z+BXmbjmYUJ8VeA;7;)L=cGveJO*BoeHqeFQbi!0Uwv40DqD^ZQ$*LFuHci)v(9?Pc zUVnCeyq4dz;v6M#J3+tkS+zf+PbX1q?cOm3c`0r`-6-=e;`SYT4AJ7g&|2;2p_aX= zFhE#Q)m!P8xK^5Ip;^~4%vg&B#PnX}p@)k$M(~vZ}4OlaS)%;JMKegp#ZxPUnm@2dT_3hBiv%#;#o zrX>w}-A+TFY~xD3H-!ovJd64=J%Tr~{M%?W)KAFzpwUJ_)!nomF(IyNU4sTZ>3;Y# z{KD~_AfvXET3#-UF12Uv0D1uHtB|@|pkZy~j9>o;`^mx!4ze;HBkS{PiyUrUY9>&p zA}h$opZ4{_*|G_3nPWpzx+}t-5bR{vYKE~!F9oq7M*<#}2q%u7eB{Jo+2v$+6HAGm zyBSV_Jx93E7c;vN&aGXF$uAXc-OBM0jF)FAV&0o;3|^RLr{FicCwxubLF||-O4zCK-ubMh#`Z$;SdOIK7?MvndnQjJ9( z3gy$*O(}LGs=v7{w2`&o%8eA8xux~M zkwQ-PIZrxpD!X^kW36vs-Dc8J2tH1y#F;Su*N%#523q2Q zTjA?-ld3Ia_(EnolT6-3Kb1*m=ykjOJ+4Icmyap>as=IG@9KavJxbJ++AUfgD>@{9!P@DInl)dkxx zXzjocw?~7ZCe0vGSBylo#k;41e5zr7Q(^hFtiqPfRn}ppGx16(R$~)yCbDU5F6Go8 z;xf}J_eI}koV~ej+G~#7f8@~O0F1Ht@Iq;RMS0%=CdJjy&Cv%*lM-mHGJ-$VJ2iBb z7kz!MmQWJJZdvUr8YHGAkpIMoo=_ZZn9~tlo*_DH3Nzt_6>Xtyxi-Nt%;4Hu*A=vB?!tmf zZRWQ5yX{*nwwaf7L{s?fZ?J@8e(Zr;P@D`ExjISv8(8KMt=PDS%(Gq3DhF6jx+|(# zZay@t?|6eXu*^N}JLZN}6FlEa))q=sUC=wJZ{Ch9v|(gq{|$gK%Bga8la+Q-2rF`W zx1bUM$mIk1MwMD4A9|Iqfj=WY-mz3zW4t_9kr221=wOP*;|D6jlF2`^W9pAaFKm|( zLW~68(VC4D*HO2V)70-jHCj;dI+s5=;OJPwAimWJqVxJIh}s+nQPXf^hna&j?asQv zORQ53wTn^{1_>WO+^GdeXeNIw^8@f}xjaOeoqSFpthv?X0;Qd=XByD4vk2XSsq9}4 z7YB9aRfV*v2(lpN{0iyn9|?ZoOHNH4_85G6<2h%azWHO`YoaGnm0VfHB%bxL8tX`r zSdNk0lyekm1!E9!74lNdI7uAGGAz4=?W4v}lVkB?kE74RXMB?^I*%ceuqY zKNbxk_n=@>V&{9W7K*I2MuU@~=CLVnul`zX9SwoI9?u>tw8isU=<27Qp%*BOLHT1^ z(K4?hEfCvcx(_>izAYY53Osn#`qmnncqd!R z3Dw81lSBr71_~r<2t;>t!n3$|f%C>Eu_$hFU6y!$>V!XIR-Ey06^#kfsYmm2!zfLu zhg{+Xe4bD{X*U`IIWZJ1Dx-n4DXd;-y?sIsKqD4l4kwX2?ki~{GF>9oti-5>P-DeW z^7X+cU#5GRk-nCiVk`*e{Hi~a*s{afuXU>&7CErMX#V=Vr1t5Cq;|F9i^dYS(OI4%C;7yF-u@H2B999ShA3aA+wuAN>F%id0{sZHFk5xTV67UV=1|Fg zl}zT6I&Mc}+}H~&L|w3{(!Q>Ey;$~-=49Ez()=@6)i*=YQHzFxuV`TL$pBg04L~s2 zwHiuMFAK5|6hQ+T$y=W_-m`ZHyIh)WHMQ**Tu12Ah{E?>F>dGvqE(b8+P^)yU&Ve( zf|<2U6X<8jBdoLi6nn#}2ay7#Fp>|MTpy~c+Ua+OVM-gNX1b${dI^YqL!e22lt~RE z!X)QCR4sPk=t&o*CBwQ>Bj+N9!E7 zeL0!sFC#d6T-2HKVsk#QIU05(h(6}CV{S?jx_y_p&rYv_=5hbSyg<&Tg)i}pfGXb& zz7L)mX0L)J^miD*GpdbQ!gDue3wBai==!;JOgIB}TzvfR-ipn-ebUo9{%-h>i8w{+ z+*c|jp09;H4W_ox)@HGyg$=1KGpB79P1TE2;+0nk%>Q0v#R-uQ|b0jN(_WmKIqNbT*qzYh*tk zKDQFQX}f5&V84CKC@`-OZ@4^4*xk=1R;*!Cwl4hA#{S9J6bCuWoJ0n?OpW(3noY=} zNc1N48OeU!m){E%e%qmk=#+9okNr~C&W!x`Bm3k#e1MEAiULLjn)KF#n-eCTw{=al zo{n$Efp5fd<);OC7do&q3zQr#>Ou7mT_c_buaHmuK0Sq_LHl!T3^`Td#y9TX%rxq4 z(WbYSVf%xYlMd1-ol2&OMPE@xp&&ciu;-euIDgbDC!}?%%v%Z9Pj1poG%u44$Pi=r zjv#J&b~Ye3&M5f6k~001RJ|{wSZNFy15$y*3^3b z^BxwWI+<|ynR#j4jTHJ%nRa&OH*WFCCe%LbMB*F88ru4yf`evSM+F!7!Z%<})|San z>Z(w=PT&CTFXuq-g>G)p3c#~b= z?7g|jAPnXV(ka}6W~CZA^n@rJW;5kCep++6D-BZuqK*&FTQs8~&Fn%-)dr+%=X zw_I4nNcL?_E^OJjTCI2(T*cTyotitgEH`zXz5W7ER)T(2Oqh&lwJG&Raf1C#n4v}3 zi@_9!XysaLmh>+roH#MCL#srusDUBpDtM*xvzAPX&VU-m58}20WB>likLeRMTfT(A zW(GU$;+%0X!qO7qILY5-HjcGeS1)N@1Ag%JdRdQU)@VU~tNVh&m9%rU|K3{tYEys~1K(;EU$iW?DRc-C zZe};_nW@zWm77(g#-kudXMD)!joK0hUSh>oVutk)3Q^_x-$Tk%Aqc8@!ZW+hidA>kh(J$E(9xX zIMQI4X=Un<{G+M8=zJ6D?eqch4sps!`PfaSLTUSE!(qY(-^-RO{Jp%Dz9R$HCX8O`h5Bw5S%@HBn>I z*tVUw;aa`66u@+~W0sJy5#;6cHsD)28s)C4Br!pw71qhr_Y6QmDlTARCNt4=mgJBgqZZ|hxPckCkUGtcEA>-IL z^rZH_aS6+&ZeWR^JZqdJ!G1p+W~0KjOSw5!H10ufS)mTT!u&DjJoj9c+pNufq{CNc zgq_vkrbV@#>L{r3_9?Gp9Qqig_SyVEkuP@nw9zJk%&1h)!7-jhc9RLBa3290zwgh$ zQOBNe`?P}}0Me{@x={jBA6o9ZytfllNvAd7)LHy8pV4+H#plRMpN2>T4AUq|laop+ zki8v9(1L5-;zgg)MiQ*8!lARa*s_{Unf?}?=@k3lxq0qg5-@! z9iyH1IbVuQ&*P|-Nd;`Gn?d~MVi&Q(k9hI#Q{9BMRSpC2XBu_*R5bqJl{$z+)d?~X z7ENt-CiQH*6Yrc?M}B=0){QM3_09aF-0wg~oB}z4{U8&IbQEt>!|m&fh&zu5x2;kt zWa_3->6=Hy7IW8@Wf!Vd>DqPaC+;B;#;T-=86p$sc!;0CT9ear)1RKQlKdAY7jaBI zZj|3TY{{6=(xR!R%_lEO6GLOX@jjhvQO8$@T*qHj*tZxHv|OQw>Bn}rfq zu6P!k<-8YM8@91C6)@8n)u2I^nPkm7PHH2TTO!)|7ha+S$-j>|&5imXV%|xnt zBZeasgFpM%-))rttOeK*Y)MxBpwuM>J-Qx$b+}EdWtedz4la}$eg$Nz{mceSl@n(^ zd%of8ECs@-U?y0`07)K60&gV!XRWyW;f=AfR=vQ@Q_3!{P{k4yJXPL@mMTtl0SoDKwFkZ4D=JKJ296mv zHS|Kj5}(pES>xy@9KE6^7Z$$4Yu-{{Bv1&yh1AgQUHcBk%OvGA3;p|xp0+;I zZ%YxZ0DIn^D@_MTr-SRoCX861*F{74ZvE3&a3>QGCMbo=uC*hvy`xC^p46X}{Ys?C z^Mu-H+4|97{;OXl9ece44sj2}$CE_66J6>?X?VALJ{)4RWkdCy3JWq6$xho7t}dY^ zObj6BeQ+e7!9Exg zSxQNi@;ajIvbC|*6%naEsmD?_txZEt^9Vm*pvl6YU0k%ZEyxPyRB>gEV#Z=}6VUEb zf^vsqo$>;t;$W#&L2F!oZp9S%;j&*cq6b^SWxJGk+T$Z`YJxrFbirMZeKwyKRh@%- zCnxfuC0DDvT*k_2IPmU?5JvO$wL<@EewPrJZTxykl#hY;lvOK#Zibj;#}*W_k>T5$M=0}et;tGHu>ys zjfW_zb%cI9!`0yV9}{bCKWxAA_axi}yX3lL)=0=^LNY%M^wY}L)33v(83JrA5?*&* zL_a^rLf&qsWCXB7W0oCQ$<~uboo00ZZnLYwmJ*=^l}}dQ`|?6u z0P{G6%RQ34m~6e(Gq&7_F>4A8mOqH;7ZyuTAG0 zPbT; zVIm3n?!{a3UK5T-J^>>MbEw+dg{|EF_c|pFb>GLU>Q?=RJaV_Ply?zD8S*z3NVHm2 zR4IbPfkParv8NDf(TOVfZ+j92u#)3sT@Q4EhZeQydWaoyxrGr7y5_rbgx5&+l=5@? z{v9$lZ*b_K#(D7s_ktc($itXm6~T*W+nui##HogTh6ADP3CHC4mea4QLY9Y*4eP_5 z;WCrQ+c+9dz2_pgc{W~2=;_(_Ug!9;`BK|TtJY@6Y0+gzkWU74v4!tlSG$T4V7xE0 z=Rp{%hPEmAPQ30Lm1H>cQ(E&y)Y)ZREc1qz4D|C!+n7mwLnmCL{AG8dbva-o$3rJv zyCytA6IK)Z=b&F}ktAI`t=-w1R9$N=x^s^uTe|&il`x-?npt&?o{H|k`xeWB|A)Qz zj%qS%_l9Sl8AlNn0RaJ#0qMmEQbYt4L8;Pv$si&fr1xYV6%i2-q*v*^6FOm}4nYV? zLZ~7jEg>L65=jVocW~x8&pGFNzqP*q&idBzFI~4$a^L&j`?`MZ@=b|$#YmZ^MwiJ+ zvF9lI)=`(J{60IB+LlqxC<*o;f+?nuqSDp16qid=MU-bJtkNxNoou(GI6W~yzW0)Fo@I;IPcTgHK%xl%B zvcyjGY^x5DB791&&U+1&ITE4MUGwodn9ogir*&tVF50akLssSrAB{HYaPigkOohN1 zHg66w0d*R0<}@}Jm#*@{#`>4_(Q%DBq<7M0^BFyF3Pj=@*4s^2%jr&cpROfDcd6-< z_eDJfI`7C5zh^?Jaf14B_=yhU8u4X-T{nloYmN+J{309DMA(F@=@OZn%C z+mh!zsE@sE-YoL?u)pZ@{NT+d(VYPEK4{u(z+Egb-%vVNMefSX;);uf z-b=)mMsYgAu)a;A<$GCZw6hExHW4+lr$fj zKP2)vHtH=+Va|x@^pOpmR>rQa9TZ}8P2zO0bUad&b%c~153H6k=VK*ZW=m^pTy2RA zK(IGMg=ITq^LXjPv}*7q6wa;RutGPGxI%od0NyCMF7mTRMA1noBoV=PnUi zEQ*!9XBN+NcqVmz8D3E(EGctMcMmC_ z;zWYWDU1|bT%qonf~|@Ex_3MyRXW5_`F{RYo8_6qj37X0r3j#fxx0e5FbWqcG=eeL zgX3-gy>NUjo)rG+ZA@qS$*OPIZGnOTa;Yuvxi<@YS_1i|ee6Cyf#^3R?M zD{_SssnctNTq}1%WnIReNw7{j;vhVzo98-|M?#}^YeMu|biYK&yHqZSfjW??)A4l8 zFgi8;H}AtAMjh-zjW{KatlNegE5q7hnf{ zjJ2C*tIb;r*T8R)e2$C?A7wMIly=iz|G)}J))PI!k$EgS(| zle;yODr})?ht8B&>#N^?bvo)Hepe43IMKujv3CPE9-TsLUBeo;bmB{QN;T%(sAu9+ zzZ`B(UAt;Og?uD4`QM(v@g%;78y3Q%SDG|gwMi#X`CrW_e9uO6r8NDfc!jaZZ-l8U*`__NQL%}H^Lc%r&AFYXuP7*&a9{s0SLgK1 zx}AJt+iq82@asVD=ln6x>9RByFPmhJkG3g;<5A@~_{!@sBz3BhxM*F`c%hQV?dTb^ zm3)3>qy!dWs6nt#mPRF{6q~nu3?dy>EgxpD(lK&bXKrUU78uKlA1*~rB2%d~b1Jt3 zFS`7Q{E8>Q^04OCVnH=77Dgjm@eOpPF$<`!7d`uWUGFL{$U4J*>@?<0J)M8sq(&$A znr9I$oAqHkyI{*pZI@UnyS=%j5qe}C2BG1 zzpeNQtT2fQz7FW8ozt@v1Gin+F`6-!J(T(&3nm|CISkY8K^EzandqMwxoI%(d0{cK zOsu8Z;UD66rsFxZ7J0m0b6yu?ZcE8J2o-u@_2{-cu3YSrMV({Jhx!jdka(!1ar8QBWQ~IljF*cy31#&CbUR6ck6U%Z#nSg8B?c|pYu5w!=03GIzFcquhj>~FjUfKPPnk);0nU5IPXr<|- zx~Y->DY{jLLx=2Irji3>bUMLa9dQSbL)AQj$V@0zx5`?JO7h&Z zIO|*}M3|Fvis)Yi<@xB{}%Zb|g1h_YkVlW9&pnLj6%WjvSrF*ob3Lce20 ztE3|lEWXYi_?H_09~_bDQvMkwW^c5GitziiQlcNaL0AMC9Aw9 z*-v-1DXCXG?zp~G6I`TExA&oc=_5x|K*g=-@t=FgIE)(QBU)`Ab2VBG0ZvhyBwH;# zq0Foq@rIc;rKnmDO}Brt4`=#ApZ2}f<1{b0hAGrQX#!@#Nl}6(t*>Hm%O!*sQx|FRRiIb*YcP)8oT+ouR7SU`lZCsuGN2&tikUc!rfzF$#%U^{$ z8$bK@RXsK*i4Wcoc&5Scm2H7Nku(GSD05(G8*C%uXXX;*?Q-@RYeGf7_s6M6Ir_$u z&L%_sHrS54vNI3so@Bq1YOM@!U%S?yH(-4(jWZL)jg=ze!~xtyae{-2=;g0!@vJpyjq_mBdIew07%8NyzHQlF>0 zM(}8`?R8TBwA|rYTzgj!A_&6HD8LjFdav7cFKPT)OkEfgfGM4CfpjH;8rMX>^E=*z z{+UT{m=%8vBnbE{4}O5WK_qiztO)CumTIyZm5iBqKdtL1LwfOxy)_@REM^;6WOi&l z{o9?4?MQ1{F5DzPc~koJ4>LR`Pts+QJcdd%GwtKJTk}lcK6sL9rWU*qu)VaMY;N;m z7**ay_aU7;c2`Zy!`^5V5zf^5&FbS`@H|aAaWH_S@g(ZH2$yPkNT@d(1xPZN>3E8Q z)&8UK<8-g&I~{MMc-n4G2G(b#Bm9N z`R@2233CmDT9c|fwNsV{n?wsqEy}ceP&7Qr7a;1`vY&jr2J)>)ugudv^HlattwFzd z7wy{#@~ZbT{4%4%;4dnq+lg zKQo00U;p?E=!`~uM$7DK#v5JbxTD47{{=0%y%lFMkNsdKXoI(`o)tZKsU1H%=cugw zO`api2-ZAy8s0NZr?x~NBH(u3P`4BID#0a?i1+JUKA(%ll*tnh^A{@(th^b^;{&kS zKX|Ma%GRu=N(DKsZzpRGa#d!gT1BVvx!e4P@ zq-w_9E$MeZ&qS-jykwntbvPcRIz~_O1gB0^<%bKXaK|KTpdMnjIW$q{;s@Rgv!t>d zi-z3;JErut^-{ZT69}U^d;itBDW1%z_G? z!*^c}sReP4Y+LG@;8TL+k3A)fYX)=X+3uL?P;>+m_iS^+!v= zR8+X{TTfjEVeDeVJ45fOuBJ25y)2WUj=pNfpp^t1_+|a$)2j&XcHICa#Pxgf;yRTXABHp0q z7C?wpdO^4&G2l)?duyNTEob{B`>2Z?>R0*VP}Nq9D#t~7^x7E>{-?yaq5F1&KL4o; z+BlVDYXsnutXBraApB3dv6aL{VRP?zvT^*ipMQ@uy?2gmju$m0=&DRlJN&J7Wx|`v zNi&!(AxXKaSV)<&hzou_iSzY}CkwVp4W!j}K*UZifMv&!848#oiv;?1+@1HV5k?fv zmZ`>JTAHPg@W(v^CV$u&ivbC%qS_A;LYXsl+vSB?SagLy;u#)$5hU==^KeFo!??n| zJIgqbFQ8RA#C0-2{t^HAOZW%}5hlHLlWaUA<-^hvG02vu-#`8Xu?QfL-+6(bzT@j$ zqx?!@E)T7u@e_{Bh+pDQeUslfHAGv$B-i21{4Zu;xN>?@50z ziy!c(nQw_}Qb!c+42U9iHVqFBT<_@kOAh!A+!1orwTez|~a&iS8l>Mby|NDxB zX(~%ra+U+vgVKLpQ9JsKglQ)}2)HSu-UNh#?sZNB23HRGEGOQk=*h=wHz8x&)jzKm zS{|{nVl_`D&a&Ed@-(fz3!)vazR9H=I8)va<)3TObZi3_gvbT^If{R)-$ZHeqyjWb ztuLMNAI#Q`0(1(K8K9WmeY1;i@+9FEqh-~yOFUcKqkP;S!TDPHYZm6d9v@mUoSpZ< zjfTXWwy~f4g;-WJbi`o?0vY{u;=r5=B*lyd0$m5?cup?3J; zqEWZk{>H_Kb~E&~qkbdWbZkV980U=cCI^(|V@Kl8E6&tdw>KJhoYQS#`Xboq7aE=V ze!)?`!Vc|ef`R4PDxSekMtq!_eis0EzXkNRbI;=UUkxChV^p^;Zf-B)j$c?>9m|GJ zWw8MqW0MKsXk1jdY;F|K8J|wO7&>0#?eTR5Nf1^f?CWS-o%lJzM=BOGnyt)}KLp73 zX~kLxyQ!bTgpGu;>IARI*UxI@tMcBX6w*LiL4I!a?&sSK1apPGfBY`JR<;WPx-h>rtf%8ey!PBr=_>We5|S4 z16czJ0;&gs+<}Qe>|*~~#}JVSv*Z_~m%W~IpnSwhi5cx<(h2VU&aE}y@wt7bSmFBZ zVm*a}Su|y5I+a*b5q8`3!KCyrB>0TJd0atAPqGY83|=%10$n`ASoS;2GrF;IiZabJ zLFc&I%tAViHD3C^PEr) zmCWwA7a>9M=$R?wPRjBSq`h1(SAQqH@~=br`&ZX5wq1wsE#!WKIT;a)MILtFUs9dW z2V91*g^^GuB zl1HRM$ZHy;+qIKZ&=#-c?LF&x2uM5a_6ED}{liV>v6M0PowqAN_gAH+{84SSx1rdT zs)MaMtZ1w_D|Ux;vaXR;8u-soB3=)_2bo3I@2L7KzW zH&ZY^w0CBN@@5ZUNu6(_-v*sVEW@E_B!qRs)o!GrwSwysZ0 z$bqj+W|9K*!937QEo)*a=lCepOV8%ZMvZc$X44M2yf>bl$C~Z#Jwun()?DYkZZtVH zHd7XSk+Jl2DU6G{pA7<@L~V^1JWows!;-Md`stUYQ`|P5#BN7@8mhyZP_n3(v}#;P z2ety(o{+hqI>zmkElDiwdZPMkFPSOV-^aL?X=UgYWc3()ER2VXhks&U)wbAYcBe+w zwO<~3Z{>Dc_5A8(-loE9r+=5Xia}zn&((6|YP9O{0|7o?e2d_9W z1lpc9wzZTO9VrTza6QzfyE8722wjRA99eTyKI^QswdcRFx8jPoxr)t%R@>>Y?TG0}(QA3r9 zO%T1$76yvK7SIpB0M0nQvz}6-z5hViV2AY5_r=#cyP20~Z4zzAd1M9nVJs8fz|?WG zM~%Cw;D_Y;u<2$)=pIJwIOr*MC=~T?^^Zy&C>03CB?|+BQI=eR?Q`B_csp%1=Py;c&J6c&sY*4 ztlzM4Rz>(SjfIGKQmlxV8qvhCP8-&3C6+wbJgJ zm;1Z*09|LD-iZ_FsOeOC+=}8#+~BK0gKx*z{-cBbz8}_dSDcJmyr6toqPg)EK#md4 z!ym8%$4X_wbE!A6tcEt{slwicI?&L)0qL<`g-Z5{``?x?*`;1(FFg-bMvlVkYu9$G z`1Z6%sFzO7$H+@M@9>=bHT8X0-42f~(QI|6BS_ZUx$(Al;l8tMfW^}12KFMoM$S|V z$?1}Sb^ALbVIja_Whu>LeP!@Xt;na^?Q8`k}v z5uv`Q-!VK9-d4Gym}n~DNX3}C(F$t19*31w_7dWYFL7Olu5UVecDEu94>bL4d!Z|- z?=57V7%s8qM6-v@4{{xh3}~AH8i&0N)u)U}t%DCj)n!kWcqa=LYh|v3s%R9cfsr}pVIBT1v9!TTG&jPd2pkKt#c-(cM*o)F5sCf_G6jrI+L%A z5;*z!eAGn{_(tJBId$ypO|RkM4N8w zAtiL`4@BhEaY(D*tx>u!HTF5E!(m&T|T`~|9WX#sj8Y?tR8%=4`}zliQ>)mC-LeWAJzx6VVF=f5!o zUzxok$fK~$2_9^B3{JTudS#ZsPcX7bt5E7rVorvP-DS!q)z!)mDRP|@EmRr{6n^H|D|ypCNKi5h2Pm}e8%k7; ztx#>D5~5*&hhO3fhUF1Y9(cA_oHF(1hDjz6WO;=p3!~EHq!)!uD!iTZcnPh%l|`kt z&+C$eQ_?D}5KoC0?h$?!dD!f*X3_3%ZG)WFu`~BHY-p70QbcskN|J(kTI-lAeYV*rS9Krl zy6^3$xyoRo_OHmB^Hx-3EGw%g3QNZO;j6#W8{r2v|`I>P?xAa;^#K)a>$Adbl6kq)&{TakZ%wqWb0>+F5O|JqXTwFylp7**-jjssS!Tu!+LX&bDiKj)BL4PC}fmF$W=;5u#S;w(hN zmU!w0|4EcTokwrxTgS?YSrsn`JGlp@gz-f+W9;)d-f=u6SGM6ZIVu`b3>N$?R z<2-ch$e3A_wk-5ZpE`=8f{#D>tYnH%RXfb$?r2HH23z$-zkK}!^Q@7{JpOna7aROq z^~T9+uh5=~V5QzeN#c_alIkzb1s@d16{1;K4ApR`Qr4@)Q@P@vUPCmQCq6(8N#C}S z=ybgQ!Ew<@DAPN$)y8RA{oI00L1WWHv}D?7GNmIu^zFsiDU3>Ay{j#gZaweWGLkk-CD=vSkK_kMk~qn#>EAla4{UZ5&iU zoRXWF271vI7EV%7R#ut4#MCHzsE4s8i6iMH4(7mHrh$`($M_!zC5EhUpHtco1@U_upJ$XZ* z;H`SlQwUu!5nU@6MG2`Ca8(AOsq)1TwccXGHrc^dOS5)hx#hhI9$Z(w3`mfdXv7&- z-GVj;+T-;z@F4h+E*6Ml`85J7cdpK6its1(!~SP8blQnQ^IT0Ev7M6Tz`DgHi#z($ zA6gKQqM2H{(4zWl4>H~-&D?Cz1f1&~5SGByc%HM8ciV##Xi(>OrF`QD6>04^4sa}?_(an^2gTfnYs(8T1YxVQXx1| zZSfqWz)O8bW;5{|;A3~pE_Yr@GpY0~Ic0l$D0Sp{ixR;tN$OVEw^su`XrTW}9hIe2 zyu&cMaRxoF%oQKRVwi;3u^R5G8TK0=uzC|+fMigmjz9%IHBFH2mVXH_GrykS?fu42 zxHR(ms8L*D^kA=yuc}cfd}T}^jZND_)*1Jgy6aa#rs@?$jExFX-xepH6s;6zvg~Qa zFREw>QYg$VdcF?=>aVD7gfNN4JT@u#)aWf_YcRa(fT`+RL@kNg8Wgj1o5~ct`D&vn z9u3~J3{3hJPV>c_GVqR#5=)~}xj9a53!O`)_Lf0le&Au1Zt8OmRYZ78&Z;NzA(I95 zyb2&qw)W!4JKQbC&r$ka(E(!*O=@$O57}mAkgfHyGg79a@uC>)WW$LwJoJ;ak-^Bx zgU1LCvWYCfs8r1C`U5^aTegz!N$327JXb!i2rW~KsMrweZ4^_e+*o*&A4{{PzOmiY z3y^_``j~ONAGDpy6MM7V?&uuI#?i8}+MpT>4fY^FuI(emvWTWJmc4ROqH7Y8l1YU-UKyFc<`m?lA0}d- z8pH>^+e4sM-hDpWG?S}UN$p?N!NOwa-!b#;=Fi@P=%+Oks+KJDuN zoZcz|bPz#^C@DzNOj?5{=0hzLK7GY@WGm9f=S6INCJQ$$ciW$zeteI!mEY4F1BExR3EMKn}oT|`?%WD{ZMA~(pJBxbt=@#c78 z8>l(7p`ZS<5%V})>4P|-O5aDuBrDDEz}Th5e>aDZAkF7Rx;En~#v}{MQ^%v{pCF$j z$?3{bDya=#6K(ezWLO6pK3lYz1|RK>cE8@4#hhu8Z`v~X(BJPC8ZQ(0G8Q_(Y-OxG zEOUdZsk+`OfCYY#!TTSHh5X_FSc8aQ%E7vYekt(d9ZTg)=fdv!wxQ)cfokjx^|^o4E6u8dq3P@_Ra1C1OBq|zg=8)B z*{A-xyLx)(pLy3rU==tP1Clj+Em>E~bN5uzqi1aLe+++EO+THh(RD}Gg)}6P8gHe` zrlH?UHp^ygjbE~hLY|0sjq>50)bLv%T<^%M~7lU)HyYL+-!24Gg;OMlMHc3?~ zAT{DAat?ua0&YhPiMsPN;L_|qCWKFQG2?ycwZqR7b6~*4>Y5f;rIpM?ANmmN%UCSf zmq%ml|3jYe9aGH|CY9Q4KjK$z*@k~M`$v=ggJF!h+hPSqrSh~>ub8xmR^Pi}y%nxx zekN^w_=i?pZ1dS{h{aIZXU&&Lw*lPg<>y6-kTG{Dunn`H6pePw#;AB*Hm5bZe$}4c zJGS#lTOwM4qQAL$-|1sp;d0CfPabP+f`JAc=ZC1pUwvaj>-mLOWx&75= z>NberLhKH(lU>_`?~!^wcjn$DmXpoJ8a`LIROEp?)q+zWg6W=xP*%j$T(uK?U})+> zTV;An$)Jx)uX?3+aaI>A;Z4K&N!86=V*`oah||$e)sz>N5LWnU{ZvCl6Fb=`g8FOp z7`^j$;v**4Jz_e#SS{m@Rn6hh@@EvAjeYSBX7a&}R7$ZKdJpY7H_2g2eK`@<8=(Ic zc0DNFx-l%tf)eoy8|glIfTiwRdy-*w6H_jYf5imEH|ngk`Bc+Y}d-zr`FQAb+dT@3Ik~x9rp4)@szimnlrAz9?tD$ zBBh!?*f~fC2`V(d8Y>D(gqHW3M4vXAK2!hl3T-TxSqS-*h5D_( z{QUq#>lyM>mB9sD5uLC4ndXZ(JcYz;P385zu6`7v&;mB}t#aOS6hUnL1kN273{K%W z?$|V!*488dPogQV{3+E5BmyAeSoC#Ap@w1z!MFQrLx!PkZLS#|Ns%~}Q&}c7G0?ppL;@JH?d{2VOyy!+CW974(#6+(v#G)nZFrI<{m=dsa z@2_b!I;>zX^4QPeC}syL1+H=zY2?V#nee~jw!Vc&uO)!-al1vERuMiHj&bnlH8Vk- z$c+FUmufaKB;{6>pP9Z*lv2fLb%KY!3vGk#W<{77Rt)t(oxZty5Ef)G>FQhw$6U-p z_03cRkNb2!cla>|oSeUQIVwClySwn9*ZXR^uOIw;*Ob1M0F6o10MxQq)~2(@_&$%| z*z{+YN)(;&`@YY;#km%rQ8G1h;R8Mm)Jt}`1zLDM9QdV%vadf9D0^_+0Xpb?s zd_YRh&iva^{C{QWkEwCWDk%VgJPdaIb{zyz5;q|x%LBUMQdEvwcWHInLEKUmk&J3u z?Xj?1$A;Pcz=CIs`Z9m3(AdnP+=y!j!=`qOGc`CL5KO9f*o{agkd7)HZ_guz()R{w zON>dhrk%?~42r*Y-Pa*{>X$o?UuEg3_q=D8ZDm>z_O zau!Srw4XIkoejKz-MiJ6A@DRm6QjSmYa-+tJT|2wYWOaMx_R%IIU?-aa#lJI@}=Z^IJnV1%Cj{=8>pi{Uozg zQGJ0S&W4CYGc^T2{Y?Om191WKlDSEp)xj)(*9W%0uaKC&a_~L5P(KqZaR)&T@+N;f z8{Yt4Ilv%8bdBv*Tdf~-oUtkY`{U#6%)evAlrH@B>qxlpzd?t8v*bVg zj|_U;U^&vL_|OLpYb(N@czStk)sOE72{`;~UA+1D*TbJ}-G0OrsetIwnA$4Bzm^o{ zD2J&QL?RSOzMY=F75uOH)8DTo2wP;nk*t`uxb^Tqt}sI|fv5#h1?G^R#2&|w3>s$7 z4Magg7~klEopwGwRrT0*;4|}CYnh)*8p`=JS?w<4<*mxEk zkM>iuyYB92L0pYmLCP95^gWZNn+MKQ)2V+DR|-OK9Zb(pgg5nBFZbHBuIcr|K9#Hb zE#H@Spw*F7CKl7x^+E7>-8Wo1KwmlrOROA;bp@}!bZnvyVYCo1Eq5px4Dvj*(3lOy z?YcPA55&`$)>CFdNerHk4B42Fo_n`qH`lsAEp)i22+#+_F=76rccFvx|Kc{SJ%eS% z-*tVCanFz1f_2f*QC;*cEsD3Jfl01ScX&LyqZ?QVZ4tb}q|PU?n4vp27U4c18}Hhx zs3{|0dwL59z?p=1q}!~~FYiK_wzx#reETgWFL&D2M(?3kpLM(Vt?>w+cA$k|wIcuq zk+feBaS(`CkbnH$qc+R*Bm*E>)Z>u2Mr&g)y2I1boLjnjS~qDr&CQk^Z`T>_?hmag z2){*NKLtD`UmadOU)kbJqR!uPEoHBd~SXg6rq}5_m0G9-H*~DLLSbpKE3l-imLf>rl_Sw2hsNVgY^94 zXU{Za@t`$p>7R^UyG}VsjP%NoyKYlDS>E5P9XGG`B&OpDn<}dHEz_vH_0;TM$Ts|1 z#kUvU5@(xw`wI`T+aRS((+esgWGLlEi+Qac%%pyM$l>pH#5)HOo>7^^*;X16eq&1u z+5?{^E;xWZBtPgqM&+v20zV%&7|b}2XPTYiqxoA6>4bU8$=1mI7n-r$=J)Dy3AQKc zHI%>p1muP=_OQI--EdfvPwR+cukv1U^OK~)*#lOeA@Pv z;1FioqOoxHmnj$3*@wVUe2%B*Ll2Xk2<;{jaGgyN4(pT+K78F-1aT35V+==v_;wM| z6^(vVQEB!O)BcprDZc?v!C;KvVdBLK7_{9ZwR1O5$Y+5LUmL+Y8mZ8|ly|z>=72Eb zWQpyGp^8%8HV~HxGbm5Ez6uHn9=+1(j-aZ}N=6Wp7!>*35Pc>5T~oBIYV(1b=ly1SzRR$eT;N4<|-X*9SIu$x= zR!7}Va=qU<6L5kApHdF@QM?@3HP}dURha>P&y@Y_0|Fy_0Dkw1$lmTZ_t7m^WtlH# zKe+i=bR+A+EKYOg`mJ|7L*;)N=b(hB))hoiDOrA1wua)bl1u*zU0B!s3tVB19kA75 zd1qS`_EuFpwsL9*|IeVXfu0KmzotfBUs_*|)4a>EGTItE=`L<7=lIox)_20CSofdg z=jOWCSS08&?ZU%Mk&p6k6!FHr6aZwb?EEtTH>rBZf5))q=*N8-}LEIjd<@w#)`6z-qqqcM&I>b`fwL0=H zOKnI12w+~2sQcGkF+*T};lW)q?H>d!fB-2L2ss?4K0MYc8!HHY{YX*7y3ch$q;Lsn5=f7& z(Kqd(5%)xQiE}3jcXN$|N$-d5bTH)`apcyIFdU_Q47;60&==`M_)2`;YidbV9aHF0}f3DhsiAnXweVRsaZ zN|E)7dlEgJmmHARZhIzoVvB(HJl-*Stf4p{N^P0HHE=_o(K#mCUh2_prRWa_zc{p+g}C|vgVn^GDVVRhC7RDPU$zDb%#n6R};^n zzT{pFanvsG>>nD-?)k$P_ienZ*CRrAn`!i$6%}9uqXZAg#%DLeTj#?PHHxba}{!-;xr6Mp$tKcW(VIS(n-Sxo}wBfZ+KdFTk!A!8)a{5O%H$nvBlcSS4L3C}|Y0)2sUfLYBA+ReVfit`H4=!PLx58sOV?6#x{to(-+Q^|Wih$H*nrwFSt zlJMkTBH)`w$3YqU^;c6_5v>$m%LLHPi0<+AxD+1NF$jz$@_s(UZYN|kJL`Jsj2kOz zYofbMB>k1WoJy(H@7Y;=#ITeFfbVsZPVXotSD{#EgL7UVhiFRTzz4FefXh zmiNk^-mJBp!tFvk+^!WTtBfMqWbXqI#G~?OPF*bx$CVKaROB>`Q&My=o(o!mmn8EkDg(Z;hQdr&t{)?k6j$; zs-~R_CK_W-&X*OJk)xMKP|~mcL7X!zn|)GWcz!TFUVC`>k!{SQoORm*k(YArd=K*~ zePueyKvrm);u8Gvn!aN6miVSCXN6zH`Hp8=_%B0uxmz|hZAv=QuLR7_jNrwpHBh;I zTFrxd?L2$r0;T8g+Z9&9+X%+oOX-{26eSlW7t7J}>^5M5qc=cKh!P{hZdE7sS2_(D zFt^4UV%YP$&R^LQXP6wYZt=y?FN<3x=}_4VslX&wb-EkLAjWB+&sEqhY$KZHIxL4Q z_)}k5Q^Dai-Zdmm9+ zARD=|{c{?=hB%b>s4{{c->SD-cn-yffpx=tY+l@v_-e|W6z7GjLz$46=vow$8C#p;?NFO45gH#pIvi>ZK=(*U$>*tC>E<-oEKL0vnPSRECN ztT$@xFB7=5;l6~%Lw#~e$pbok`h$9#tfMPc1mNaiWMyEs@iF!B+6M>j*MH(KQmVB$ zjupjT)LaoUy=~)Rtr~+vkn49@rLDFuFqvq0Ys7GtCoXT}o1@v3wLxkP7}ArIryiM! zR&aRVHD6=XGf)3o`U?aA{wZ&O8(ZFZA;0^*17k@lgsEiIa8Shc%+&3g|Ca*|q!2#1 zlVM}UT;)o8RHW`iijIW>BvdubOVQ*^cb;!ugS3KgN#i>&_0g2J%&V@oaJm)obr!9O z?-m!T)wp=@{@b4u9aiUykjVcMB_VdsmEs-+F*sw1+WdX)n ziPpxAnn*P!D4G&~i_@F#D(HZZ*jw_)JeV&#QJ0HA&%70JwoiYB*+(HYf97IJbfuTMO9{RM z2wh6gB|~jUY*5;n?E-BBMAr;tx_DQ&HafuHQr~h`f6P6ioqh!Pu7*GJd@Gr!zaC z^hi)tbC+cq2bXO*1f2DRXRv#kopC#~$^L1wo;tJp=6d;M8U?4SVh=~m@fISgr+f=1h*+0V! z3rH!?V**Dl-9i4bS1dr>iso*4>6nRR;}w-6T7u}a*fiq@y2jK0Fk+(W9w#|r1qvKg zo81ZzC_)%3l1c`ngP!(IQVW#oH|?q>fF^boj#C?~YKe*Ci>8c!aAYR#AyLVQfTye! z^C!Ah*1~#wmRIjqQZWylrV>GO&=IrGYRjD^4@OVzyCa}PuKQo@GDj)P8qY&Esq-t~pKivmF%TkE8RDA-*7mSqDX+%9{}t&-0-|3M7vd%ToW23&^I z6&h{fd3N<32lmaHjTRpixhtsq;;O9`XXLV6x&CT?78IE`uj#*XNqXtW?YxvYGsTuqbGbYuZ{K>q=goD0WF&TAV8|fQhJwgAl5Eo zL_F*>mj)j=hpTGW@r8{M#eHtbOp2r zdJW4fKiLkO4ls7C7?6;~ZAQ;i5Qo!lH_?t2&{nLh128XJ@2bYqH-<) z6&^xTx&@&y!%>E0Z{v%3%G@lNfT_)*gpnQ|T=orw>x1?6-$YUtMU9ervuE5iZJrkp(N;w(7>V3b3NJ4J!BzHX*fA%tT+<%vB=H8!PS=7yUqX&SAT?lGI~+c^QUnWCU@mroyIYih8$r?_`uk{lgq z%xEgQqS{=pYRGp{JqtG=5~8LWITIafSxUr5L#OSQMmB>2p70;SUPpW_3fd|!h&y8C z&`ErS?mr$bk2Rtm2wV-z<)>N}LHqF_Qzcx8Hk3OQPj5crUwX)ILm-;pJO4jI&M;Ag z|3-({dmVf&D3-8z$4^Gr`eAxRD3S_w9{3y^lQS;8l0{}8bPKh54Kz{xv9U6=Zu_VA z{oXH$ZoPov!iNiuC(Bwg-<%u)A{$McSIG)u?4tQ+RPoo8Hy0OcwCuP!tT=*fF+)FR z7jNcLPWee&A>K)PNQ~?fL&T|`Q zsvCk9>enj`iwGsQo%Vw2NqJoU0K=V|}&2CQ^UTVUtMrukbT zvi|6(8T({OzM?3OLNNzXV^NDCBhO&f!oIz5IAhJKy$1j=kdWo4X%%A4bkJ%aD2kc~ z9UKo(vXC|W>kJ)#eWb%bTR{?GMl{r|5fteuA{G*tNNf=YLH_yoXJ^I5(b-%-c)xvM zXD3n(k|W;1NTip&mfvcB4Xc*qU)m2aOW~|gzO=+(kIU&{NUpEvXN8`FF7&OA~ThAzHPBieHBM#x(GB;tC=g-V{A zc5YQVhyheeQaP?`u``+q4fx4QRrYbLdAy=FVkqeDW+uoE`|f29IfB%)b>=&Q>`Wh& zY6j#;6*a4w5b<>8zf*2eJkwRkjU8iQoqx?lEpsCd2euaP3Q|}NnNu{jvVMGWkn`tp z`r!!;qrZ^T@8X`$So8Nx@7BX$i*ofJyh|*T!a<-?RG3SVM|7l!2l@_c=#d9O8_i_$ z%ne!p_zrd6r2NRl_=|Mrkx_R|-Htx}H(F0T_WcqUqHAd(>8&*V?+eC|qdWhHq; z$Pokd|930o{}d}B(rd1H*a4UUk47eSGRG6yld-7Z5(XtE17~xqXEL`g8LD@=XUhM&1j^?s~2c&LiL9CdE!eoe)3R zJ{a-s!d{?bHu5b!Dqm#_@CDp0&0e&`wReHHKYB3&*gDt$Y+yZl{N8`DoBx)E89LB| z1gVNx#mn7aJ>aJY9DA;hJAlrir~7LA^48l!YLEJ-v&ybpUA>m;_n7gOnYO?YK2Tr zPR_@6{X73qEBY&A^|8%X%H6aMb!W?OZQm-meCo3K=a_Uz9QM+--KJ%=C)9GUSS5Sz zuoV*M8|kpna3Rjz#aFr3fsh7pu5gD?T|;4um7tu2R+&enTy<6^u)>_cB)YTid?`dd zo3!t1{qgxwt$KuFuzK$GQHCGO_xgE!pSe-HJ~tn(htu}eeSo?lTGqSl|JjXqj8t@$ z8Jst^@VaUAO~9YoI)>QW|M<$ZN#;Ym)Pe>&3{~e=(6xKKmB|%`s&HTFw0)@^8>2=? zVk`QEt(Hedg=hIFCWfik_1gD&r5Nn3`aLA_4Kv}GImd~cn#|bhr?5tNh>OY*xHuOw z9feIi*(*+#1Lk7=USLR)R7zX;?nqU)LDaz$;Ax$?RU8bq)uYF@&sGZ1Xp$qUv_<+T_A~UwZPn=4nkN7aQpik)jR4c_E z>c{c=@zWg}mW-K>+I=t_%%3Tp0S-nJiT96D4uQiihyO2x1?PV!EcCl=i#HFBvCc6~ zW!u`j`If>rf|(xO8d=j#U<`Q?RUpqyIoTGB5ZEX1F0|!u@ACJ+L2v-QHD7TfKGT}A1> zZR^IuD%SvK4qRsAp&KEizc00Y=y?)zCV)A~BjwSdI@ZVo0)iSmUL=8d1unhK!pTN- zf`ChXGG>n)5MX@zKkU6{SX0}-Exg@qMG-|oqzNbpD!m9w%~qsJ z4G=mJY0^cc6WA6&q)G2YItjgmP=ivX287UyfV9x0gpv@rE9gGwU(UJreV_Z~KJRomnA@*+=7~M%sm=Myr}f#fyTKOL1fB`Zh}zj_ zCTcVz7;T}qzw2abZJ)y1#zeD8IzFceXX|?@RMUSDA(uL+OwK{whvk+`YcY6>k;9LC zd3_1KsCJIV{Wt(n24rG0a!XzQ0$}$DAaDl_(tL=D{*l)B@pGC_n^dcBOyT{Vcb0za zJPL3BXnoKK$}|-2P>ZXWmVhJ1x}G71BPTcLK($t<3QE_FM#{=mQ1X?#;;snhqy5_f zaAY$D#~gPCNUdmJy7mbG@FY61%1~O(TYcsC>68yVbd%hA>%J7382Dc+0g&CtqvVUS zE$2C{6C5sf#2ouU%0TK1IqPO5Fjza(ahXG+w^C~n2Grff$L?G4V$8S`RrfwFlv3#(Cq&2xAijmuJ&FJ4umb*gKtP@Uug*p}a8~7q3dAiemh(-aR zTWLPIoD~^iVxLPE)!PH-364uFqI!|QzHS2x0~WO!ihJgClDu~SBHD+&r39? zr8qn}gjM-0h+h|1CR4;Et2Ina+U5agUQde04;)Si1n9Jg;h}wL3V;#4G7m&2gkL5s zCw>e!C^TK3w{LVP-fIGn9B}x27xnzsi%q5|RQ=3%)E#J5qJ#6D$MVGZWPsSEL#dta zr$9ihQ{j)9lkCUo-}G7qYOkKIAn=Jy4Xn4z@moatirUC z{Q>Boy;@YrE}VpL)KMTeP-2hh4cCM!KgAOVtRnj)ZWiI%~5W9JU+|^ z#!W?6mzjp?Kq}XBHs;A{H$B3v_DksQw*XyRVNLN@F-cNgk;i}sKxt{tZaL_%gJXTU z3>&vogwK>lm^F!t0+xH+@yZ3+|(Vc01Vwa)`GV1cQj>UV0=!IYtXEyHD@VpXX#A@1k9Q&3eIkyDY z847`OMi(soXKR0lH4paIJ0Jq(%l=u`TISS0O+xCNc`gTsEU>r5R5zBLs-lsxeRS+$UJ`wGjW!Bdmi8Wq$P$dTe*oJ8I%#(TM!ve` zukMy%8?{HqU#D#ZGTpiYFg&ngkmM-y?O>R5FwA~&Xq!2U)(NJx6nQFhsLWx+{ns8n zjqbnVY{nTnrNeoUe|uT-We8(CANlO}w>RwTD#bJir2}@xY^u;_YoTQ~ZhW*H=K{|O zf8$-MEHNEPz{d-3)y1uzSNtgUQP0I`xS)gHWwRcZ)h@fTmr_U*HB!4AFLQYGgJZSU zCveKj>5!(XltibncE$YGslHbq-fB3t~tT8q`xADtUz(V{;!oCi!XDDM}0&%Y@w+OOV5vYr0aU2~ovVi56 zck*5o*HZvH#RsBbNKVTK$*tiG5MNhmnCj!9Ex@X7=V_(s+ZVbZ2NSjIP6Mn_8BUA( z`OsX~MB~LoXsVlj37HKrf9APDXy>#(6)Z|I+5`(OZL7Y}e{F(&BZi*?eP8lJfYe#W zIOW?PF5>+1J6VTi8C5o@Cptn>yJ?68M=lf0k`(>IpdJQVe|B40h2qOH%>9WXS5c%qwr;6;I0Kj=E3%k zq8Wt-(uEefJDNPQKb#-={v=+dw2yz~VWys&anOy;>fF*NQQ2izB|{cLaf30}ugv3x z!FzpN=YTHlOapz?aY(-5M_)o_edT4YEC8TZ4uq8{ge9{!>X|J z-^r4?fHJ!=>J51RA96j$XBmDn+(op-Mo4&P_F;j%l0vDNJ^H)!5C7 zoZf;DOJA?B#;q5P`7(J->d6&cMx>x&D@?J(d5sIsJ;ZqRt@G)I>x;_l5_W0u?YoS) z`myOsyI`5QGHd_ofX0^*G6yp`>qI7l8sDjBFOQdJM{6!2@Xcx^yKD|A$%iIah}YgL z7UaK_A9ul)rJJN=8Dr~?yfQ(x%XBjIN^mwD{nNZ z&nDnojer6l(o*na+Izb?T75u^7t1$VvNY_e*CAyeB5<>G)%|%7h_yH(oo9O|r}nGE z3h`+XnQ#d~$utZwqJy3*qV9aCFNrMT6WrVd8b1!@JGKjn!2?t+zkfDgGf+zGy>$bK zO69z&rl$oN=T`ua^8=wr3NPn7;}2*x%$H0vREmNI%jmPlavjk@ug@|L1=ElnRpO6! zKQxDq$GIYbc&%%zjIOAJTuzY;CoZ-53aiI7sHC?jtC~lJ4KG~8gjeq=kY2)PwY>Yk z5L87eO6gcbeR$MvK6s0HH2%95J#@3PH|QLwVe48iEDtULNA3nfF~F2p)een7iG-Lx z9>xr&`mZTEJsCwqZpFZA+r6f`o?k{7UQblfk1r{=TDvxXl}{}Sc>R3}lDPF@_L&l^ z?LP1HCM&7}_k{Fp!$Yf`B^NUzyqzb!jw?C?w^25eCB=wtJ-`jkR$_#2p|-emc#I;E zdg29TrOtSwW${$bfkUU+JSGwzas?GD5mm5E4}Ln>f=0n{23Wo7B`umXEvGnCVoHw% zOJv{`AU&y*Sq_hBl_%|VDb{s9yL>yOzYGpZ$2_9-wRHk#tHrJZeT(Qqgx*z$blmaw zYokfE>>#&n`*a7gD_6QuYx>H)X`j4OYbIiIVtIRWS)NZTHn*?7-SybSYz}+NVpt-| z7!bFt8Y%w7J73CEO1x1ncWlF+8&DssQ*2^@fu4Oe3apZwyQ^9#S*!ssNdCeFM6#L2 z*JQ^H^8AL9JN(^=Kj^VgV98(YDzb<$jFrP_e`{v^M6#~#xck(PE;LMZXm`J>>``ht z6AFuwHG#zT7U;L4-up=`brIQIFlNy`cU(UXr@H&6w0#!4i4yD{#I5xH)Gh%p1Rxyb z@16)ZC@p>zZy4)!pAhDDC?66rh$P!jYo{jG_tgM_f$p#v2W0TN&bThUBB5U%N2X*0 zKkdymzU0wpENJRRpb2NPwz99|ioYXj%s3%tbfL?pO21VDkBqSJsHhrmva^7zg{ghO zPtD?b6ddadFs{4s3{n1?oEMufnTbZ=av&jLbI-U_?PFd!Tw(#pO3HyY?N)fd<{{0g z>&lU66vX)TBcJ;PJH;!SDB>xdq^CRucDCc>cRv^7wp;IYRaGA^B5Rx@ADo}aZ2QW% zH|#tyqZCl@a7y;ZOcH$weNJ>GRCp5S8I4w+LXRYD2mvu;S}ggL%_N+A#DAF6zX{F1 zS~C=TZRRx?4<#uWjc6ea4wZ8XkI=P1vckBS$LU|d#>xqLe+6-G(kFPlx@@P*f#OtK z^CcRA=xfqNxaqOYGas}pJ(YQOR7c65NYF|~>yE20s3wn^B9q^Mp}lhl5(H_~*)Bf7 zZ`0-2+UTL$sOH#J{{taFgM`sb$=A(KuTAf9GcL*(DZ4y0-Frjl2}@OmcBunWV`n32 z(OkP8ZFn81@|XOm57+51h1qYuD*%E^y^K{zOg&A9a*Bx_p~3SDnde3Kcg2QBNL2+V zgK-2qPq&0iW-e4k^$J6@w9*Z4dbOJ8jfC)C_9}M)-KUjM%RPYAI+TTL$&m}OwP8F} zV-QPMAWy)RvYlh<0~(IgvF`^qHx0oMI6l+2&i02ke4aS_*5HslR)Dp4LDh{ZvaHos z;XigecIY!$0z*c5-e<3&32L(Vl|bNgA90TB3q&X9+(?2skvd#)c6O0|Ac|um0-(ZN&E5y*#%(d8)TS2z!zW zBPzn|)lWusN%|KEDYXb)web_L_+dh#Fsd1?S>V~bVHArj*{b;4!R7I>{RrU}Vl@Bd zo8DKtWGO5hG#~XP5+-VJdqsC#k5|Y9Fle%l8e?*diy4tx&7Yen4Gu;}ha0Kfe3o&i zgNnUmTcs1oL%!6gt@Ey&jXY5atb5>NX}x=rSCpCybw#3@fc;g2r+3TBkPR1~rsD{@nE4^#6w^s9S{ z+6qIajaR^~(%#DWRi6x`W#hCe}QV~E{{c9Lt6+@bFN9=#9cl-qy&>b!{l9o)gzMtJeGXe ze`8ZT>xFc0`oX@N2!ZALs{F$!KET`hCwul+@d=Kpko{jOh&~D??)S|?RtmavPpjx? zX8&~W4DaZ*Uoh?A{>LK#QB(hobV!@O^I?UzLIuQ$I{zvIA~M{o>A3JTYPN7J{dGE{ zhD)ZvA`r9#jsem!+4JUP@JTCxCgHV_Tpx#ewpus8H1~FS!Pz`Mok1?}8Z$fGM-IdB(jaOq z`bMKkS@mX>D#it_~Y ztv%tbodLm|%Sd8uk{KhC?oYvIisa{?^V-^mLd{P7xp(?kuZYtxV(x#&*%5qN8yo&F zXZMRM2JZ0xFF3k?dx6vu?aMP3(3p(EvEA z*@+ML*d_z++uC$UJ_E5!d7O~m*8_f$`e_8UV?e9NgSI{WFCw3j6$9$puHw}Vv?nhh zu^53KpEz@Nrx}dU5O{?FKYGaAa9dhiO?b^V+;Cmdia7u_C4e4x-=56TDtS&(a!&iN zgnCHf-VMetqUPlpIbnw()8-K`))?TzVLoJ6p2!x}TNua6fn*B}k6b zrBS9IHm(?i2TV6>b1wZx59#0nCfOuh;HjqP=#?qGaH3;-M$63+3tze(iR#C;7C1<4F)1u*r1g zRtgt#w3E^3VTDj$)sBU?TelxA6k#3*#*HD9N+*ohlEL&(`~B{!A$D7es21F zu2S|OKvwZ=zNOa74Nbqs(mW3^J#gmDv}GQ8)YT{?MN$;#GZ01J`xc^h)Jlm9?idi~ z1dQ8&fV%a`B&U=VmZ&lEms%Hxf4-*w4UW$2grhSYY$Te^yPLjSJI|91TOQh_y9HZq zYuqUh5Zp?uvhixN3~Y zaasSTxG4F!l76PFz@X%gqq{R8g?9eYXVDs1`Vs?VGS=~hR07h46WL4EG{C&o1arbB zoF;2=8)(V18^gEJS};KJajJD255@KO@(*&d3ZLk!gUvwl@b!&e-=Hhl9Fm{MYBj`( z-(Ij_7hO*2l=0?CNElHp{i&ya9|8y(B6JR|B_K8bj3d0h5M{k4Us~g9?FRTqT z0+MN*z4WUSgU2-KHE}e>UlnU!?Uh0-o|YH}Fx2~Pf=0E2E*0B7fbxbCEOK;Ej*TiH zLKm4{hpNg^QA)eulqYCo=zbuTxde>{3DwNbc^@i zaLt^%smFhA`rth41Q3UyTYvAIS_dNz;H^py#OV2f7NU1g0Tl(-#ZQW4ww;7*2#fb2 zkNl^kD3G1){op)5q?TgJJM9c}1!O~8dxok?J)@%-d*8GTK=&3WgpC3^(nDppBg~QQVOliu!rOaZ?GIakzunu?C-P|!`WDIv*n1V}?j?od2`T!O5DH_pZA zIvF>O_nb^28WOZg$TTf!f;!0NC(AKb4`>X(rz^@2tsNRY`!Y?jgP~;P%moR$T7sNB z_AvcRSOUfGR+r5?4?QcgGbWH7GZ6DIP<+OruJ?VmRI9o(p zOM}9?FiYr6jYPcO5e`trP818yPtf zb%5NU>*fP}p?Lea4}<-#9zvFrwKksX2TTVr+r8S-#D*%%_KU&~2R+8}YMD=XFna=7 zJ36*GLSGK3khSeovb&Po%-mD%1-wd;aq*u)-<5_uG!~P2bbiy2G-7ymnen z)kRmp|2wNRC(y;Fcgvcmk~WSES{h&Vxu&4ATLJaXJWa9$j;Mawr|CK@WyKz`_#awr3cuHh4+3#|B6kmqcn{H9#x zmk?l0L(r=~(Wm#j17tT=1sp5a-CE&!CHeh`n(P`~*wZ6OcK-TkZ+o|nfm~%@W~ood zfS~sp^JtS=tV3yN_?w_qvXPuTuggozK036wkX~Y0-$Y9#S6x3J{vceDU~)Ua^5y`K zk1p8h@6=VLNbjLzXKUR|6>FZ7rt;3G90!k96xRx;o8)m`QhTqbj;0=p@;TBz{$~H4 zn!iA$h!!+IV0Uz&g0fX_P(+qLij&}z;!|ZE*r~4BX*QRT@Mh8CpC!adzy=)tio+&>Mh0G9WVv&Y4?3&rRct!ylN@|0O?fY` z5Zv7BH0B{U~SzI2=w{m z>u(SrmI&{T83?JrtyFnEskR%)rA@Cu81iVCB?BNNDw#q1cXg5mBv6HeBBApS0MHdi zpBU68|47qMIZ_(HkrbOZMd-2%)D2~;R%;|)`HB(In<}+z-io#ckT3q-|#JA#F z{O4Ttjlwxcfwu&aSr~nAbQ^0$idcDWYq@n7nQV~Ev^$?>$?X`bX9yoQ_CSl3L-(>s zVl38NlJ1)4+1MbG-P#xK45y3EKe7PKhG%znX1e@xm)|d}0TjsEdcr*kuUAQo8GjVr z1joH19<7F-5FV7CElLmC5zap??}TpTvnT@f-CmIj>(G^_aE^eWVx8#MxBZcJ!7y>f zFS-bzBWg=?uB;g}C_G>dh!~G$V-?Qm8!RKLhl9|8fcp_jxyW+3)Z-UEydwZ$L%ei= z{qe(!KNQvfSJr~_eFbT|taT4Zbvm6Z4(@7i=&w?0-6tn0V|GJ&0m<|+fXbV7%AMz=BQu_+S@9wiOg%aWq!Q9xZw(x)%3Y;peJ6t$QFlCMFwI!`d0kJFT zP&or*FHP)Q`INOt`7)IYkr(>q$)wEq_t~_NjRV*&(Fb`nv-8`GT;ACKG4MiVo=acJ+s9x^wKr}(pj}P54pWG>KLg~Wc{yG%*!~HI78Btuga9`q}VP# z2Djp1%8b_dk4IYQG2t3kc-|Nw8`Cb=-YXJrxv?849qUbBQuQfD3_Ryere*N=S(8ph z>wq5D+figu=3PS=Ci7J75o6HcnRu9kd--scd*pdm)XE}pB;g9+*5b7R1P|lf3m&*jE<0|0HP_cteS`|_jPTC2E=(Sbzdv-p zBhzkD+H(tz?Mzi3>|5#T^y`g|z5&_o=j+5z4Z0u>gfw0U!t4p*aQGG8821Q~g3&$+ z+`Y~1v`jfJcbz#&bo{DWiM%Wy@c|4~P;6H*~; z!D!8y3kTTmRrlQ=UQ~_$Ej&;9vZQcvPoN`#1{6t4%F;GbwEwsH;@?$L|K_+CrFa{R z@(RH)pBEJ2I+edheC;fz#gajMA&|s~`JID%CQpoB!&ue0Tw{?#)V^}McpJhGjyuRd zonNVCT?zeNbE!VL!tIwrs(*)~koqE@Qlh@Ub+LskCE1uT-Xh?HA|LGm%`^=Aq zvkCD0`fb1M4wsgY81F5s)IyS**U{fe)V`scE-6b2oPu3u; z?UT~VGHN$o9XJIn6ULF8*xL`Kb2j<738$4yQuc<9x`w7q$e&G0()hUJ+`0yiU59HM z#XR;8!)%WSCQJ?k+olT4>ukwjxd*;0?E>=(2Tg-vmVaVz@}{@4BC>YPGJH@`_F`=bNjGeht!BhSn4)vav(7f{dwa5#!ytw8$_+c3FG*4mt zY)zV@ zik@Gg&9%F6_S5q|n(=3l+Zy<{jU}U&8#U!97Q~-^THbAL_)?9?2Vb6vfo~*pFZDqZe$kJ^cjBCTU4naa zO1J8pmyLeCH7Kw3xd$6kmHsVM2lTOVVhr+aJxFjjpIq{*{b`SHbt}(Hd?w9t2EAk- za^Y}RgnU(R@TY5;TGt_r3_**HU~^)`ELD>{v23y#tSoC1FT(tVn$yRyVJw-GMos*^ zycUSN5lDHc8oPZ9`#sI1HtSsO<^#}m%~{?H#B=VN6J@>0&%|j&?;nq2h6k}XTdydV z$ZZbcEvU^6*kYLxAj66u*J|y?-{98U3k#ZM7fMmMO(rL#CV6JT9-ZY}>~C38uwt97 zqZAe^b)Rf)*a~qKd;&O24gt|ehPnzo`cEsZwpfy>Vq$JKd#62bZako_W z^YZAOcEu^2GlMw;AB?Ei9>-WIaMRp9s1C`!|krLiD-PY753PmCb8c@(8 z|6(udj>Yo%V~?ZL6*oNoG@7cOHd!1iLPY*KT*_=yuVc1wd&cN$6Bo@VnzQs-t z%;9_fm3^-4y{Wx`(u)d*gQsD16#@knVUk&wxEZ;{@aVmUTpyyc3lg&*Be)HDA74tR zpqI;khA$T{mEeTn5V$zEd-MkL(wAUDGBpeKJ+6^~SeBE`Y^TlhLNYoxr=b-^6?W3+ zxZ@=4={GCh9}6FC>9|89mV)yV>JM>l1zNaUOWX5?`>W?}4P(6`ejF@maT-J_kHPo- zT@M)D4vgPN)h1#bxN*#sXPbx%2_NJTKgaE!YIVkj$s%|C;C+@ZL)_XXk6vh;Xy}7n z8ew#8-JHF#cta&iU_qQK3(#`c@iFzPV>au_;HZ!;iyE`c?NOPmw05w6>d`-MP^i%} zIG~9Uxd3|qB|$W+iSMo)DRyzu!${R3myIRxR_aa-@pv_1V3EsFeSF7_m+#niMv3u2%tmjgNz{3M{vg$cz@2qz z`&t~<+f3sb3U&8=lynF&3BrvkG+;vja~g1|g+h+myNPzDaU;aO6fT+pgD5BWJCpS*%?C(o%z3He0-woA`6MP>ym$7_Zi@v%zyvBlRxcHKGvp$q|EjwM-LMve*)(GvR^B}$=}pLrND#z z`!Szs%A66d#K-?Y zT-PnqK zY^&rliFpD3uI`IzY_@2j^rF29U3SkyRa^}GXjQrh&Az{mpYq*En{*)lv8GWspt(a; z@j`^RUE<8+XXEX1n|3(daADG9d2J18in@S_qoUYnf_fN&o>>N z`43PLB*i)6D>i=4S>k_B1-INE9|O~X^yJjd=~<9DuSIrr+bNd-+q5%2-5^<%PuDmd z5}k4+ii~=%dUQ~M(UWu8OVB$eVULmW&IywqCA|loH8|Mbd+{f~mbZtVC5`s!{=U-=$bkL6G5pfTguc_nSftFkT2@4?#(cK_ZIZ}Yg^_aq zS;NkkZHriBbCFUfrY_M(;^gJDsrfa%&KDgdMM(*n`L~YQV+}aW$X)C3{N3@Defyqd zldsQnz9g`4#)yE0Nu$_;V9-`S3PYYeUl7dU^UMQ_pN)`NFEp6MZ1%XY)btiNS~$74 z+=@V6^xvR{OgxELz>09YZ!ZYq_@NE$sSm*TEY4#q!Y3;8WwfE1xP7WXn~L1Vq06v$ z4Qah@WlaoxjQu=p02HJan!==RLEHvMsZFn*++2H#Z5s^sCG*n{zr9hkL5cLy5b@YG ziUkoHE(RXb2_G!?zZ;)^+>|h6nK8(daFl%!&3cEl{uKXfF`93q6rOLRh|vc1xkOSs z$oggjfqf%c&PP6_%26Y{+jY6`O>d!w-ZG`)xM1+!FKJWs95*2tM0908e!=n(W^reJ zLT8$;Wc+Dzm|hd+M@~thJZxeU*H*WVL_3XpxDYzBKxUkg-VssGSCyy3^oU-Ml<;iw zXn&8c-@*n$i)-?H_UlSY{2ky01#SVDW>ZsIHEQ7X2-kaHqzo)h#D2r~i$iIFxfmI> zhF>e-1ZBtr_ugpowRgWh9Vt{9vf^B0y}NW^#k)}ba>lbb(Ka*UX*QR*ykmAmWKOIb zFw1ZGG>@Sw;Acvu6HLf;Ef&d1Hr)EA0i<0#_F`?ZPq&3b!8lsL*}Xh`aJl){RGmbb z$`e(Y5zoKXT}1SR3Q6OaENvr=RcxL_JSMGqAO6lAXF{$hO$u_I)3`T`Rt32wOyXZ` zO|(%;8=NAj+H1XP>)CZl)fni}mXvr+rLbnK1j2?yCv>Fa-fPeZ0Ws~sp*!U@`o0tE z-5zoVTUwl(!?<)(y>~80@wJ1YJ(Pn>;YISNU}Ph#n_=bdF-s zo=fOLp+NtnVm{=kaY@i11qz;Rm9hgYd9m zShY~s3@53@@tw_V8G7P{10k@YH{JJu5xaA^9>|pA9x%|eV$+8E>_+Gk{hr`QMW`4* z?~xdk^HfSaKWl%r<93pm=yYPdbrK@$JjTre)y_7hhdyu7v7#JtzkICPHRIIYw>NZ< zgv0%>_8a%sKukxQTK-CeBy74NAZ&&89$NTz9}_R2aRpkVm}3*V!YXGcb9T+i)ryT% z=Vzb2_PM1+*&Vo#4pK9NUVA0eCg#Fgx)S-ij2A+rvm5PX`N&YHJHhcCyGYQKYoG7J zZ07WjY8rf{)nKX1#72?3;a7jMxl3X3;d}{Rl%@S+^&0Tz?uNsnk5c7g;!Af}0%4y+ zp*oRfxX~AEh#xa96Gr4N{J6s~xpXY?=~x zZC@-=Q%*102J4&E+n5jvxt)=bw$q&TgfZel;W#IA*y4`lQ93hX(Vv_G?1;$GE3I8n zLTxSR2XiL+oL3XtJ`cro=*HWw}Ba~CzVBI>JF7_9E1L>-smL;EBu^Jz#biLTJETWP-S?A zcPA%G?ONnvO8Zc|MZQf8{w$X4*IEDt8A#HW+inoC?i`{Qe`8o&KCWId#c+_TZ{cQk zlF%gOW@lv#hdFu94G!8k4H4bYSQ@dFw?z}9uEr`ToyuGf@EOJ0C~W-Zrsbq6^^Cu1 z)5wO)rk!n1?jtHyBR^uPpp(k(d7*O%C&Y$mr=GB-BU#n)*Jb8goS-dTH&PVwcQTus zlFbE@)vC5;XP0F6pvn0d%pc7O{;Kt6=~N+z?ZtqDd?NKYEI2FVYx@;?G% zPQ|Qc70SN&OZEwe|3RvogZMkn4-s$wItMEUnX+RM4$sSx@m~ zOIBzLcJAtJkcCR9zjB&JlL~n>d=GLAYm~rUUcAuxs-t6DPZT6|)CKHMrbuxz$mxKt zWV}xBl=ft$Yj6^A0JR6nGp(C=wVVDtk_mOw)CTGK9hSO%8oyZB z?s-i(Osmavm8z4CbWS2` z`}c)c>e0Lx#J$9*+z`f|UF>eciP5`$t^H}xyF94RRzDK4*PtcQmkYnn^2o=^h$|?X zy0)uvCb6r(PKm%_?&}P-#I32zHy(w%^rVc4N!f75j0&1~$lm)0*hZoh*>z7*b&`^sCyph+|(v$$P~DZPN-Xy%m4yr|X4Hk9Cf?n2Nd zenV6z(-L+6AH2dEXVk0cbc4&Q2nJQ0TNt__r-@yvptio?i^n7NJ`f`~vD*yE=2DNC z8saJJ)uKsB8X(Sa0U*{~F%@2I@#4pDFDgGj-l8TOC*G_C>6Euo$$>JPq!i?|FEE6n zR~Gg>!*s*?sT#e;SK~i#CZ;FCqo7kSpzgiaCP?aLyC-u))CGCh{4EK4oQ5Wo-g^;M z8x>JBg{;=yVnffg(%j}yw_xU^=JrTHVus87X$zzZVQAUb6OC;~;eh+4G8vBp~NNuqjyv#x#$u zK)Vr1!85!bv2rORuhcI#iF}@@v}^xPAOAGFE##KSLCbAxp4%}4XZhzmU`OX=8b1b) zm)5u^zMOLZk%1%MNIT15K%3*Zg*=S49CYR+q46$B5*p)SgS;vZiFVR=xZ^gp->=C& zHtgdKdkk^gn!CvVc)8J(>Ful~DXqg&rnq`5fq+tkeZ0`SSLR~Z{bO=w$Yc?H%QALb zWHGkR7JCdpn4bRlX z=vTC7b`>w1FO3)mJe=3(uxzNjvkSbve3SXPB1W78nC@?v3e(AB>d=pJUL2(yjDOwd z7!(#Y9_u|-CNvHELc+&|?vz+9OUl26 zcNnQ~lUNUy^Z!%HH$@L?)>Q7JXEA3#L_a3J%Q(jD1`5^vdY{*EJW>o<0hE&WCdwL! zF`niIYre#YZEE!VF%}K2`&N^u(?6jnt)YY;B5@!w-mODEj4J~mA6-JQ%lPGc{3bO7 zPRLgkV7Nn#OSZyhS+bd9F9Z6Q*G!G|KJx{8`8{5cCgm&8-MNd;0%Q}YhX2@73YZ&$ z$pzhv*HW_gkROtt9jb8~#PBO241R7+GAg(qF7cLzBt+Uv5l#YK0TK$t|Qt*3M3s?DIFE2T8Chfn{)k5*ix zE0Z5rr~P_eu<5H-oJUN^`JG`ic;g)N*ZJTuosT8uO@@(%-;zS-L)~sG>rQpSSl{sZ zGB~*^Efu74d#Sf8PB-3lK^%L`4~>bC!yAf=;W5PAfqR2kHP~*u z3qCwbO~xb8znS@4G9xxiL;&O1n7-XD_1b|u(rv~FAv*;;!^Qg5YuT`tBDckSm_Zo0 zWs7=J<<+E!M=2IQO_X9nHxOV0qiK z%!(RM_?A7Mr-N9h4TTsGsUxikOLr%$df$E^kN%-cnr+dKv9C&CaG3N788s^QGovZI z|5Spn0IbSHrH3}P4>XNG-uL>;@QnIZme9gpvSBdHv%xV4Qo=76@s`kt5fvkJg<#s-bGp)9p3eGJfdBwI>ek85AJ`H}5W%6D$%P=YV zMswtNeAeY6TbXiUO-Eqk=qpt=B-p-6+A`=(o0OK%rz*ner&qToU}G=O3DQHk7`sZd zFdodIgN~FSa?B2t`G{VIFH^h5J-g->>h15$(DLR^R~Jfe zZ)dLiQT8?2>HE9fa&+;yB`5Fbnp8REyP2YT@((ls#>oA~ z0E4|A3vI2`@!9kJZ__PQ(*)5`KI_m-pJ?s!FGFKdIc~~@{tX(D)Y+PZH&VS`%Mz9OmH^#nN+ouf(^vv%ZrzY zrv&4*ELk=K9+6Z`7JGF_#mqV8;U@sB(Fq(ECk8e`d^xWyqMsZV6W0C75xh%(=WSB* zTC?G#mjQgZJieEGv= zIiO%_V3%M)3^Hxn&kJGIT20qztiM;k0QXp>;0#uqnZHbpacZ1;mpcn=PN=e#$E5R_xiTLb+4$jd2fk)&-p=d>-MpH2(b)(WMqBIo=|eJu{lMMi z8rJq4sW(z;{-WV1F#4^3_^4V#`@OUTksy)ka*S5vx1_m5YKt4+%I1aQ86zDt`R(rVR9@yf#mXF-`l*EcqSJ=3QwA!?6{k| zJ@QzOj(1Bo5XHugbB7niWFODzE8)knwN6teBvF?D02#{bRGFX9N_p13Tro9E_de49 z)q~=-KiL|WtV;?#0y_9tYC3u~{5`*!Uum}2YvOXw zSY$z(^|1{}MN~^cV7C_P3L6u1x0E^Gt#xj4vCfJL9_0yJbjF;qYqhka8hh=u1CyJ5 z;O(Gm)BQ*#l4?8P_l9F8+%jVRh<(PZJXZVzs`6KFbj2pc%s^{)G)i?U*-mysc1+ZiU zXu=dUzH^QfQ$}n+)6!~xJpUw~em6YNDPI%grRzSVRW+!zv>j1f<1ddlhnqlMxM5q( zg2ymXa7ubbp{>9QYctKDMvBMb^G}HbY7UV6*RylA&F{6wq9x@BJK`(5c|~?^8KMf% z@9S5ZqJ<7VTSd+f5N@)Sj46*vdkW=lG~Fir;^<#k0yI-$c2q4hu(M6{^47CSRbnTU zmE^TYWJ(&wwZ7L(Qjiso4dIEoC-3ky59{;^+r$C6OpnmPM+(j1ezY|4|&o=2&;wrg6liRGM9vtLeQ5mt&E*uI+=nk<@1rK40u z8NQd(CY7BPvpI`>EBhZzY{k@FtwY~NyJMnJ(!5&JGd>}76iwpk!piThPL(q4x}FoS z;qx0z2~ZujD}2-oW=ty73hKfpTo>ff;tMhbAX;ZyX5w#lTVhEm!$m0$1`&}WN)(LU zjU4pCVzv+TOzZ3QqOFlwykETeouQo zD0T3qnT-s;+{_C%B!u26!2Frc(mp@OtaL6VTx08@ z5lf6wU5S~mC83QxWxN<;ncUW}^*|00@ci+;MIqei{jkBUa8kX*vHPt_WAe+j266Ai z3#p~v<8KI^gVSjdyP$P#^pF21u)31j;_F#^13|I?64~>ts zKh7O;9GNNrmO!N>X0{#b-quPD?|R5R%OJ6!E1cxllHa8t9Y0LXq5y_Ak=HJ@)6UGI z_~U`Ogz@Ttr}95n%(f!n%QpD*lKavUI-?xWhbTjU>q)u>l#j*r8;i<{Kto*(NjsOueJo5K0FtiwcYUVKr(2`&%R zbG={&XpU<*6|;3B0CBsE{?iCnPl>99k;sTBDWtz&2M$#Z3%z_G2Go)slDVTQKPiyh z$P-G*Cc7!VXfNC5Z%S2$TN3{Y97Wi#>;< zEgruZx`MPg*1Pl^Na)UGTzVlz}-jDaw zy=&zIYbES+&fd>{&a;1I?|9DAFmm=5aX)qZr1!+u5{f*3Se)$4kM-s}%EQ@B@@kn2 zlcrzZ)U}~c)F)$x{Qnx&XzWkIS?AvArtIoADvY)+H(s)nb0&b&zS_A{zA?-WWhB~n zb#7M}>z8O+BlACgp(mx9P43fv!OPb>dpV>{=cC@p>YDL@NB2U_4KEOIhLATFMYW8A z$nyHm?^GJK=8-d_6uw2*Imhb!+*ea(rL~w2@h-~ewiw%|$cVWo!y_3f0r~dPYfHhL z+ve&lj@7%nq`*oh5DFQ^kMw+^%nWxwz`brL=w+J1W7pNn^*28?wSFegRAHcPVVd8g zwCpwWbrrY&>?2CB=j({90R37L$IH4jKKo!VlCJy7c5l^?T|v_ohzSU-@Gc@4$u39W zP^A-lugyP=v5K71H2tR?qQAV5sQ5{!bmHN+XILw7#HS}i9X~{Kc#rZh(eDM@JN$bv zUlJiECSnhq@iTOT_H_o6CSrf&rq&P8n!gX#>@{p>el)bEM{`9R98XJ#I>0x)&!BGO zcavOM<+N|`nD*_jSVIuI&tY#QvkMSU1})~MCeB*AtaR?IOzDq;k*~bgt%Qs;07@<2 zrHFim+m*lVeSiH!^sb1qg{OV}BAcUW0J>_?muM*gF?jU%KF)DY6MQ@S!V_Y?Na^TH zmzCh<;fu~9Ms9o0$@4Lv!#@`6jDh(AS-lRB-J|(>Frnx+jaN-z_0%~$29?5ek8O;ekJTi<;{;92xEc}>Ihilm}6qppW3c_cNs6T zO%J6VsCn*SGLt;kj5fDON|lxFkv5V|GndS^u$!pv2n?nFVt1fU_$z&8YkVn#$o2e} z{y%~kxBB1?AgvVng_cmSSJlUzXIld~@)2kFVxh}s{Z!S^SEr2pAA)#+sDm9>(&kvnE;Me80Oq!}X_JL-< z?W4ZSWZzPXgh1y5+UeC(RX?){sHK6t>(}w&HZoxSgjO}n+$s{WdAxCM2>(X zUczIh)5pkn(1Yp21Xr#XF#O9a`m-2FcV zV)KdqO5vuZtanB3_cu<)etBUvaf!h@IJO?YU>+L;V!UAQgjMb35DDMuO0f_(@uC^G zLq9sI_fx#u$Dirj2g#aSm!pvAg?k(*t=){cX5|<4!I{<01oGZxM$1KA0xHG*Q)+dbj@QUaF$hJk zKG$;nTnh$66p_?|mTerESSm7%cB0e=k?%M|B9bbzWhgdzwu3LyP}KtuKyu>)FN~6Q1bntK4j4)GS=gFTYd|qvKgm82Wf9tU7f^Y z=LQ;ii%d`OP2Ls{i_*X5cCk;bCwzR$+F0CCY+nQ`_+B9|F)8zv=>D4L*(+|1wHMai z04{jU5+B{Gps#j%e!!z%9Y8r$kf0C&QN^!O6(ZM!8o1i`@$T@$&Yq#KCX4aWxTJwvvT5-bwaDGjIi^@#;YaVCG zs>-WWERTQO;NYs8vPz$xec{~N*?oB}jlf>FW|#-6Pa$L;Pq8za#DPuv%g?;uJu8Sg z6)^Ed3$_q?hop(|Zc(-BpB3l~5A8r_u)$M{hRAENZ^hSMo!JEcJ{?Mit-Y)2M?Nt% z+nxS>P;0~^Dt*`E6nxHj_x5h((ks(`=9BIB5!TO7EqAlO2gF3ZhS?JQ14c1@UCTuAj@;dI@_@OlhCFd%;L+_-QF#;l%osEq_ce9lZo>f zy2-N*)j*@sM6edW4a|VRObZ-aCxUvpUeW&H83Sd^>)Ek>Eg)uFnldDsll*|tT7)C4^wS_7N#W}%7XqzDF z?!cf%wlZW#;{(6d0uJ*~+a3^*=V%Tr)oJ>vijn8~C&I0^<_Z#`ld{XMX_`9!tn!ap zj2--8c=}Y}*_p7;W|+ZE9rujzFmQzsyum-`#79u0gqkjZ`&WI7-GC0z1A;I+h!T z(;FM#2+yjKi&7u;h>=Ji&BH&%m~KR*+%+4 z8>)8@#_EIS^;Qsba{d_M@=ltx`aTrD*C#py^)RzV3YccX4I)bHjV2E1pdaGm;iDtd+IfE9r%jZ@EvUC_@)Q?S`NF zR(JTj2wU#uvSmc5oMQIcN0h-k0VZFbob*8s_tSSPvhHG|dF;S&U{AUbDl1*E^vaNM zsr^hlO4ER%*{i~4G3<%6%t3?hQyE}>krkVTs+u1h)Xxv@S!O}fq}X1x0KqJZu6KDl zefX5+=~cKv>?b~hPNbUf!`M^(AxHTdm%@r(lN-Rhq>PWPRSld-Q1%-Pf(}$i?5k_C z>%JjLUx)@Utmqd~T%i1S4t0M#mcp=FNOdsyyhZ0I&o)O-JgibAG>YbaB-I2Z&!1_e^BuUiu%lHON;7qPpDpByGBJ>5F+fk!jZ|mUdV~Q{7OjLSn<)(26cdn zeSIx7QCWNJ8P5$wf>Fz_mC#?ER*E{a9O`w7m#N2cqIe<)ewBOXKz${YpgR4~e7d&w zcI0^QLO1$XZiyp&<%`?Ndmh-+0Qw> zUzCN6U8|;-H--(mh8!iqc@r-j&2;Ii(zG|+O^K89lHTO-qPJ7VGR4F2zZPMhsXokZ z2we;a%?K$qC?Dt;2-QL%O6AORa(Pr1GDhew+ zzR;@znt^*PGy_y`;cauMiDQ7Q*B{!`h3@8L_Ob=k)-p>LYajIPWc_fpuL0PeQv(A_ z76lS_U&ZpcQI*nQwmHzdJjo|5u6`^?d2`pm=pd;-C5i6+D>s491(A?!C!Y$StCAH;JphO`nM$Ok?I&6Wk<6UqqUI7C7er~!w` z-fbM2(C`v}ANyMb`4DwZ$H4DabOKFwUg0`Oc{akJ{2fW@hMXBVGO=Wnp9JTeWC_au znRJr(8N_}g+GD?0t!DyvV$|<^c*B*it+t5oX+k|yMXTOwB6ctzHxV57rZf*I{!p0$ zk6_F3k*h=Yl20Tf*Rqp@Tz9sw2sD_>SpI6vo%G?1y;MdzpHwymly`czB_v=n(TwJI znuGH*OJmtj8i`2;9o4NrSncBC8~JU2QEuH8VHV$-H43r6eA63CmPqnKx)-2H2yj8z z*bot3Gh;WT=?Vj{~HxEJ4OH5;I zTHizZlqosN&weAuTll?sxW)TcUFf03_z#IGZN;M!y!9%=2_(((R9PFex;l5fN`-Bq zb5CD1N9K;LQ!?Pc>Z!2ShellNT%VLw_)T9e)8Izi2d+8z5#foR;YfQYCZ6(dZH< z?z~3V!wkgU?zz8)Q?vRhXI2L=gYcP~7E2tJNup`% zf*ibhUmp8CqO{#4F}gSvmsE1*0e{X$$IrfVhrY^f=YVKNFSxpNeYM4N5W^M2wOO zEVE4cSeQ;+r!godG|bPOlO%f@;*un%wcVeFz`mYO)~KtlvM$=_Nqp*V1gXoBEQ7#Q&C z2EU9677RX!tdYk#vQokpON*#FYVPDmfL&94NKPIv3;d&MPkihBEF>sEkyb8$Y{3zSKY81-A_cD_?|rOv zQ*kt<47Qv6(`ZzA=I@$8ZV!!GQrImmT~lq`bB?yEAh2PxVw?Uvn8+x;cO(LevAYGF`N+3pF)Ysbpd z{BB*YjpYbappNItShSaPM|)(!_otS`fUdHR3f*_3=JBRUXJ9i#78-1xfE z(({)JnsOq}E4RD~9HVXukLGxxdQ*gO_f4o9lG~F+5fR9!L zUE80Qh~nc@5h>W<2g9>1U)NHP9d(2m&aL=x_L3%;H~g;eax$Liof+u*wpAAYcH^Bg zBt+)>^wd&Y+$Yk^=EukA;NdTz(aV+6o+18DPoO_1;a{Etb-;n1bYkf=4!#vDBPq*S zX6}N95(X~JB9h@r9OGt9(Ycn zq_ha+CT9fQz?o308qijJ)E$YtnNo4JQH*b+Y-4;Pma>+esw1C=d826L(~{FTWFi)# zAuB8Z>KbXOTx^$mnog!u%~Dw92!3U9gYdU`D|m|+;uHye1U&-qPZY{jd|^y zc4_UhF~`pqia+sAiD0Wh@b2kfs`Wzl@9CU`ER>As>zTgO#l7WNfLe%1Y%#ER)$t zKc>AJ8}?VGgF$Zl_N9u{R#DE_NkWuTuZwFhEz!RHDD1eWD+jC(Z%s7q=a$L`d<-8Q zs&5giUCH3!D32el$dD;F52ihHOv?VQ%;bI4a;V>T^x4_(f(Hsfpw6tD%1mm8o*g%W z@VmrHKz`Vt(~0eZn5fOWLKz6yGdX+pKB86N#lg+n90KZ*?haFat8gH_pb6*oiIvRz z4qC>mUr|+AFRA_nFNx?$25ym*R;ml1kT%Eny>dGi1z~>Rv-FwH)#v}{QahQr1RA;5oBN1m%J*sZyu=)i3*gdT``o_v}na^rkX)bEI^StkPLEZPkA#KSBL z-@JqVF|*sW;blmD{`8$BwH?KBi(Ru1=`^D}H+_(I#AaMl?eTXU5%c}p_C;(ub2ivB z>y#&6FVGqwxAMrVMGv`2GPpNs& zi3fp^xv6HXdasHgi>L_Ov9b#557G}h_c)~*Azwnmp0#ezaDWH=Ing4oyZYgWL*MQ` zm`!{6Bl^KL*Uwq&(;TYM&?9y!Ug*()c)u-QdV=_eIruM+JmpHfMZKKB&GqMXOEpqJ z)m(yMQ&~jEotEJ;`Jd5KX?0$=hBxCOC5iG721!Ox;41N{cUk9)o5A4)ZLK@zF4+aa zjPaOi{8|bFx5IIMYUa>tpRJzc>ZHHiCY`oNl%Mp3AAj++joa`ll!tLOx?`XFrugqv zd;Ek|_kC_0&)Gq=sZW}NGcKvftVew`Ch}Zize-}3hw{|DU$@&ohFOec-Rao)xLP&T zHQ3-0cWO5KX7s+&IZ&Pu_64IZdFgjYDy?`JC4s<(4@bl2%nlG2swz&T3r)9VO z>(PVrZ2~U98XoPH{8Rlz$RDfgv$F_Uks@pTo zj1xug^{rf7MT)KU>d)};ZG2ZK?5c8sY`?ovT?5)Tvmo z@q?W|wbDg1t@S6^G``SEr|7+breQSzbH{Kd5Gp1=z9(Z)ZOATQo1;P<`iZuOfYT;Fn)&xJ_?f18&PQhRHps;O$@5-rp{2 zc`0<_Vs3gx*DJ}r$C%QS`*b_~ySvC*Y?{y?nz*96n|i%iTA3>R_1VEn&z+_XrLxWk z<5P@H>-EuR!@p6r63MnK6VbNzkiv&xQiHX6B2YX{6QCldB5of1iXfO)oJ#V1`?h4u z>_)wBbC7FVYI#&hv~O3p*J1;A_``$GKagjb1r5t_{U?_#*}A($;x*)ajEAFl<)V|3 z;e?h^Wc#coBmA@AAh4kB?ubYDqF(Oa{j+bB(4^o=X8Z;h2Zin^(9!z5yjr=V6RVw> zb~~n5n}fiX2C8~4wo$VbYEqJ8=O}T(>2G%3ZtuUsh(M{S2+O5T%l9n@+YzI?UlWANn(^OSSAtmGN9G^Z(ET@~uScvFrJ9L+;M!ke7ld`b z<$;I=Eth_rGyiUqTh}9)2+w*0b7(2wFqmUk#_R_)xPPDV1WSZm<$!c0MFyLUF})O= zi;+h8V`5pBdD{{uQXd7LC z$%~kGN@kCZ8X6Mr{V7k06ZrB}`B~p<$hweQ;XnrPW2D|16$^?Z^4eX93ns+RV1_04_LGu7Uy<=(9`i{8Imw3Ho_w6QpcWpGme zYl}9~h~P%*C$Yma0Urz(&TL)%?rCRz7L~UNZO-X%Jx7aYD{m@~aQBziuELS@n=*u$VqN z&yafGlKkNGtPqz|5?c4tP0w&{3uz0(&H8e+r@AsYBHi-ai{p0H{lo?*zPXk>m3~TW z&blpZitt>e!dD{j>+Vf4H$N9NoS}I+!A06{~grVMMB)2;1f$ZK_UaWS%`S_mWq-t@A7Q3)KXc9Mh`1|qX z&^h&e#Nww0?C*pruyz_Xc=cB0-65Eet>>ecOl2A}s732rQj=}$?xt@=#l)2^lS*#f zOUvC9(9tRF>NEXsV?6$N*?Z3ea$g-VRjpjCn$|EaURX@h$Qv9Ll$4!6*%$PB@FwEI zw8uNlz~7|s_Fwki6O$a9sE+mWMZ0`YBUz;qTsQpUI;4b42(^&UUVhX!R4d@DAeD>J zchKJ}xDxI+bC;Rn-5qclNLLqA-3PQu(z%l>*Rd_U9W!8G(T6bCHvz?LOVz*Mx{*sRKpa)!1eE!`aBxkG~_}5tc@(Gu5{LH_b z^j+ZZ{BY@?@XX*j{qHaF-B)rB{oUx)`MSUF;;&z*bN^Fz9B}{l)j;=8{~eef2Ydg0 zhv@hJT;|>37ys&y49FYPdw=okFOQ%4AD6$L_Lty7=e)@I|McJfA90dT{&_`Q{U3LA z%<|WNV5!Fr|Na;L|31hs|NlY$9+&@1BT~6Wj~3T!C+!Sz0mG&nwLi{Wk?Cp*m`-0Q zL~f^N0vepTaHC6`8gAdsai|ei~w)&gg zx2tw4G5JB;3l$3ntG9@)j#mbck*}Z>-UVQ0glis(Wo7u@FYMiN&)b{BxlR;j?o3zI zT~M&s84o9pD>cA3lNacHW(zEDt%)DD!d{(+hcdey6)ndc+s75XqWd=zzp$ob{~b0I z`v^B$Tlx$_Q;GTekic?aRG{k#6`@ILgiqgrjmY4l7r zVqoULCCV$M98G||i%$|JMgzLA*IB+g@uV~9QEqywSss#D>N^)?vQWJmwaT@~vTn?q zAXWRcNgDTnMJaa}6QR}iS>ED5@F8MfgN~Dgh~x08S=k+Wkh9X6RrRPD$MXKYj?m&R zsoVbwamqwcbn0D2nJzgfvif_Udsa!6voSHqYK26DZAyL&v^afc0zd&NGCJU4sgmst z0yH0_2Ol+Xf@{x$nMljQ7MHCqa1q&;Xznt1hd162zcv*@B~Nh*y16*LbzNG;b2&INy zP8p-NhQrOB{%C$#HLr94uhAl67iN(+$*z+yZ2S^9`Xlu2qS8(Cv(Ua?jd7*rzGgAI z62G_YPK>(Kd#`I2qVpX&=fUXL*_Yfvb-HquT;o*AJCCZxN*}J=RWPEN<%!43v>B+Q z;LObJM`8{sv|z(5e#Bk~=jMu%SG_ZbSHBbd*k!_DQAIxgO-vpwNbaWe{PYlBVAd8@ zoR@1yL*+ADW1^<&_PWY&_3R}Bxgo!<^;=PSf1H6qrvzpMjqVN#$SA5$zr8Njt9Lrn z!U}Vx&$1Jrkb;p>q?P8~lp8iz+yiyEy2-@yH01%vh=`<}mN@4KIkH6vb_TtIYaJ2z zEiS>QHKld=dIp2imvLjUmz9JIItAZ^ti8s>R0gF-D4p#wgTxX>U_KSPy=&4Kx9LK$ zny7ltsX7H_GENcgo0(9f{JO%fB?{ZOy3MWH5~rHE%)5b~(K>A2SNo!w!omzhf>u;r z>#V@-Q_X^sDY@0yj1YNi`=e=%RqHKTdS+&AeqqZ+`lS9iAm-Mf?pqg%cKw(;PT4FM z5n|yor*Vcip7x{*x=@P9=y$YX;Wj@9PtS~>Tbr(aK%KnU=|I5Uj<75l#;^V=+EaJ5 ze(cfwPnFoli2RNhzm<2B5UOrQe)GcxVdE*mBw2DLPfdGm{x-}FzczlW_eMm^bAu~+ zVf9fNl+sFy>T0pkfNQoLDobrcnlqV%-6KvhG26uYufTytEG&aSl!^$to?wY~RT$38kO5imvf%lmCdwAf3<6 zL_`ZA7Fsc(Ny}p7yX37dJ+`$mJhy6evIY+hiSkP-33_Ndzd3XJ)vh?4q9k?TF!QY1!9qSPo<(JZX!UwoX*&1F zq-34U*BhwE^zmh3=pMEO4<^Ma6BrDiP1;<7)1s`>wo`^wB2@LrckOc(&?rUx)f}Yd zxyh1;89{F1x4yhV4Zk}UG1_-t&c0GN8ieca3r*Ly+^w5IjHsxbL-~qHU{bB}+S5EO z>?4HiPN2*`y)dVyP?a_&iie2&G$|4$tMvv>0xKuK)~AdUaKlq@wU*=}lO&x4x2-~` zELW_I6jLbF>W!j2xmI)1a3| znAl>XUHljQ@h;M(3`0IFuU9+eIyO`V;2rN4eQQr){#Hm8eOwyAa%V#v^$6#wHSHz6 z4-u|Z%ZO!Fn7NE1(G-3M?Hd=zA|kByA$wBeDoh-$7}X_jhcwl( zoVdIG=d;XBNkW#IQ|wlqE~a?>))a0tB}CMAGhR~0c|`h0pUya|5>{jaf2iSUhLX3$ z8l#fymT}Q_R>1kJ7@pE)=q#>b?D-O$9FGXDdmGcNn9eBL?c4MaDFmMzGpG~w!3s)Y z>l89l9@JIsoNu(14?6>vn$J|t2p+arQX<2l5XTL}i5bDd5y9~vV;O4>-CldBB=pv# zor@A$eUg8}Zd}ey`*4bm_*mT-C%^^b6zB;trS0b#VB|7LEbMGxdc>P^rdM1d(=#iF zaE~rnBnO~;l5Rub8+_GbHQ|hN!NCGl5adNj=_7cEXrIb|bMqw%|5L@bNn?Z*EvU`v zxsIE=G(rkw#nW0Fc3faIab)0*6iW3(oJ6&tl~l1?T3t0D3ewU0P^N+<6*FQT4x6a4 zROxhcWoZ{Yn7Rda;)~Zrb=DgcMYo)o7*i72JARVPiB1V9>g`jA^~`B~E=nuCRU!9~hsreQPunh3af@ z_D)kGJqgD>@^G|^wbtqM!&b^$0tyHE@7aiCEXu;r?M0X(M7&~Ctlp__v z_3Or;xGRDd>ycaabl#o+l-b%>Gj2FrofjT_rtqVWqRspDkbS|aBUpnuny_LCpY1#- zFr6vavltw){(<|7%cVAH-3SR>Y0{;UOfITTMB=QL)ec^%y*Pa)(88U+2<=idhLKGJ z&fhM?2W3FOY%Qr@>R@DAc~!FYGdzxr+$t`eo&Z*tv;xlMN`}2qPH$XNvJ}?jpA_FH zXbiIpvxNAP6j4i4tSqa+_&J~f_m#?&=fpsH^RzR@<2CQh`EP?*B~d)SnVKlVhm&`* zPqGM-hd?es@ya}DEEND8ztN(EFI+#3=NuRT9s|(S6C2RnYJ~#_cbJty$$)@#mHrP> zjl|eA63kooO1VD1&K7flVYY|KCzD4&euZ~fB$An1&US+2bKDI1qz;m$>mzo>bgxF# z*u>itqC_tUe`jMCn`AvMmHvGFZcIiF3B8|vaNyk3^421K6|XH3x`r^yGWtAS*Lmks zAjcuvLu($ZeVB`Tg;J<0iG~#9b|aWyg$u_TV~o!-an;9guH=xb*bK;3h&Fl`KBAd6 z;!bN>7R1!Sm8qTkQNVe*846dB?97&JF}EDIdytz@;SCdrpr)&>L4S0|efkYEKE%dR zge7(@Y*HiQ3~Cp;F=I`Zrz@FTJ4Qjy9jSj zEvRJu(%G}Oe+_()DfO)H8KvHeC+|hkoT*vh1Np+s2G|GNdZrS#5nz!y_juq*l~@xg z5JGJ{4!MhQHpwu@xq>E6lfk+O04v>$GmcUPfmdB^<>vGf8A{IN8_h7`DK ziQzjPqyRQzShTun#8ChFMaUj%(AOrSp2BT2AL~#^75s=RQGa*Cv(_WxLh^_#UEOTY z$*mae1aLIGk8^b-s}sRMo7`mC5t=*lE!t($HAV>bHW|uj2LQCuo3F-MZ|aznfc zL4F9RNq(9UIppP*Y3X1laFcsPy2pd6hO|9j z1$5nEE08;v9dNuoUQ8vrM{%*HHy+OMq-*&2AwC>E4RnvA{F~Ph4ls7L9dbEsD4*?30Z|By2217Xd ztFYA$?%0iNuQ+g9x5w=F2#))8#Ar!EKic2ieyyUq!I=qddnupkK9#dsv4`G!wQj!E z+##P!Q*t>(p0gLJ7>YM#N>i4EPtLZc+xzVNdV0rf`V%K{Qj{e$5+Bwpoxbl7g%l@W zkR7-Ed;V)6#QGk(ciH60O3b>8)OGmPyM>72M=tfHrd%5t?0>YM0@TI21Z6DyunU9t z2G-whzsD0f!D4I%PoP5N_0)e@NW zY0R@csbq76wLj$V*7D$_>Zi}Bg0P`Y_zfHvgve|_C6}A06lEETslj4M>aaVGoJB5`EoUx`w*o=0j6TLaa|dgeLF3+!W2^@Rc8>=Qx0izJa%cwt(C^(c`(1jFTT5 z1I7n={2XH<@CV1vUSN|$@^oOLzi-8=aO5J8J@34WdnKzMsFO|Nk0|BAHEn7%9w?kT*A`+=AyS{$FBNM|e&SawsZiFjwmyL?T6RW)@w?XieWf}& zoApw|jtS*ZNPY%x;|lkKzJJh|+6LZWebOPY9l zl=-*;Z5oiN>8oRR5f17CC7V1|<-wta#oSH=;luHV2q+*YAttgdPbwn^L_?WBqMV9&LCGXg zwT+jB>BvEG&WXv7R4PxRVCF?lm66m^eAePcMgoSpS_ZWn-vbc&U9+1ee}t@zbe3oe z+Hw7-k^qO_ypVB*h>fjd-Pt5dtCl#)!2y=ucCn1W1g#1JQ8DR!JpR z<+wVhEkFU~DAuM5(^4$kPZjqI`-D)6FjeugH zKyTrGgdn0VqgBlUc{S-=G5cx zYSW_vaOcDqr50(S$yC6{@|wk9ZC6|8J_FO;^v0+^N2P_w<8iwe#B9b@B0#ul&Py_S za@T$_6m<~hRoRc0zXe@GEZ=hWj!F;V+`Q(U7F=ioL-ijpc`ipKA#gJy4&-NGhKT-ECPlRd6q~S+D2=%CTmi3| zh+~OvSU8t;oP~AynD_p8WxXy=k^f=JQ8nsee8o0m`2}RjzshiKbi8ic59Kf~FJ3kn zoWYMHHSplW0=oOQ-r|D17}Xe$*v#NVR7wv&+R}$J0!I=&&#kW{s5QmqY zOTxTWL3yD0i&NY&v*T}o|mT+P6-M!*c5zaoFJ_5CFhPtnlcB-+S+ zg3eLyUQzwDrT0%zemzBaip7pGc_t=NfYB+Ka1$(P=w%5Cs?KY60p|`~MIqbNA}DrSiXo9+n6x zPOmZ{#ywrG@V;&c<@*hf4po#OqAU9<@V%2b;=-zNloXX(xBaJUM9Tbg4izPRcZuQt zPj_(m78=|SX=M~8ltOrMZAz9SD@y_5a}1_T8Y>r5JDU(QGG+?#+#F-@8g1uC5!!X? zCg%%*h1_uG`y)YlqXLl~S^rf0Q~xipB$hRbY^p60T=;E_)^Fh89fQ63NPZ7wZ{c5yk^*C`(uGt^y;d?@xUT*P@wV{D&*sa*RvRhHv& zTn$h}N*45msGCY4Hl-9s1~+T?tpmnpnt9R;EXHh0O7tv9CSqY?VMMdWzMvFS+%^53 zc0HDkouLaXRHSLFM!**tv`Z=2YB;NJT$R54AO^F48Djar__Yc{oZWkqtjkj>&Jc;l zSe)b&yc_A=)?FX*oWrQfiUAX6MTvkq+Fk6?(qKV`NwlY1+x=qF+WE*c>MQ8#?>D2h z3EWAxnK~t%%D2ISEHAP=u7&~96=vY zwHl~wi>8$Pwu2sM>O6!!Yu?qoKCuBCJ>)yY@TE7O#i;*gDuM{K8V$y_=14+>@U8EV z81JLTJ4+mk7@@Ca%v6CdcVEJ&-e1aky=Psw3+lQ?6Sy*ij=82a0$YQm$#?fDLw1YG z1yLY**2ga9^sCJkl8)57AME%tb^iiAkFJ$uMa zkfAN8Y#JJOd)oFkL?=#@py2AtyuZ-BLW+DF(ESDhShHj5fOvK zApulDtE#euE~48Ez_Bpl;P~2E#A}r(6)Ng z%RR5oYCwc+G*pBm)RkwJY|A&HoNb@0F1eFbZN`nP{k#krL46jSEn%m++B>Zb_mN(Z zZD~2d0b48`OpZb7akeUSrfHc$WRGimJBS7A8NT%h>Bmgkqt`Wv%v#LVUgOB=T)PXT2QUtqj{5{_? z382_>#$s|Y>lxk-F7I?9FP7g#_0cn65LX^!VTf400?fRa7f!@jrvMWuWIJR(M!F`` zPn?0(?wcrXr(t`l8$mOY)s+QkXwo7F`{5AnjlTcQ_a1q3_{vUoIvyi=Ick=OD_hq} zh_*N~CjenB91CII$_}SodO=t-*9Sz6u3v7etXGt!zcGc*a<(EaLl4XWkO|hK9@dKp zC^7w{0hasjXzxpdt6g_mx1CCC`X_8H*AO_Gp{^bCwcc(aW6xTnQX!#BRF`ya)SeAw zo$+_rwFEHnESGWHO1?O27aUk1H&gPsuPc#vQ3guQhn7zSx#}5IL?XdCBN^#fKfjPF ziZs=`&d6un1;9D1&H$&}gE8h6cRNx6g~TwYy(AjFIi&>{od1fwt~UbYa!x0zu(7@h zvD`MB7cgFjSDNYJ4zAXZsLX=pIzN!s`a2G-u|0>lwpUuj*rj6fxRE8~PJS;7wOe;RUJLsnEO#WctiI9;M;Vi9{obUA!@=EM@6+Q! zg+g}Y*2HvU)4k^p%p4;wpQLuGx&v@QQ`BH)agI`->d~UPOir{VsRrJ6EKy8r>#Tsfe?(SJXXkW# zUwqYgQ24TvwP=?5G8Ui=Ysn|iyc4C$ zEo^Yxk8HL9HZ#(6ptt8=XxXmxym5pyvvY@BU~?Ot>)Ti zuy?9P)W&jv(ru^t{hlgA4Vg(Gl#4%< zJjAQQ+hF8vGslh!(Q*N*FNw2pddJK4G~$h1U@U0Ih&N!V%R2o^fh&*;qE)O?xk4J| z{y7g7tp4@ZqX2i&Nn0FCjCVB5b)GpWK;8N+i-PAw(Z;Q8r9o1LOs+gn?!E7pP`-9a z2z7YuOtts#=rgHyqc>4`@}5wa6~a2!3j^nPJ+!*Lb~0rVYMWCfs?vT-g}6eOYJLi+ zGG`>Sb@Mobptx6+gkCSo5---SbS`#-h}l|3q)%3B0!TQy2_FlA7lYUcWNq%h+m zXX~J96pZP_$~q-gD4S-01shx2#amm30Q~K>NhIGh2*xEuw7Y|Nf=@ZU&nLar#-Uh@ z;B2|py9py3%hb~X0YF$`9$e` zPzMm2Lju-{v_NAwE1(xkx9;TK;kCE8vFGRT5yEs#l)j<;WN4eSxgkOCb{4cQ7MgO8M4f|qC+xe zE4|jQ#o!*OShDO3!0b!a>*1SnpD^6sY3U~dy>_g%&sht(xZwgZ4g<~7Sg8=3k~gZo zyKnsb!esE$xDmV7T_V$Tb_{M(KP^Ccv33&@{TgT!C4G+E2s^8oq~yD*7-EqV7;BR~ z*L>dUobR>C|Ha;W2Q`_#@1yIwwiQJ{1w>#K1?g3kBIqK$NheZ53rGn_lbWClf^?DI zRcc5G5FkKkD=iqBlz@a1DFF#hN+^NAd2x3?ANM!sk8|eCIrE!2-x&sG!kahm`{aJ_ z=eh6edaeuQj`6}jl@!xlW-;kdnT#wFjJF~H=w?@t;LE=C)M|CdD#)%-9}6gC`j8@H zXppMJN(4M|OAusr#Cf|6kpKGCjeI=14O1Lfxo8TSJL+3Zk=EsPqEy!2e+H{Tqh$rf zfRNRyXfPa|x98@g{>~67thnmybTl`bqJO9tj+Ws8M2C{3H<}gZiS|yZ-KkI3X(ld< z1I9-Q;As7yJpA9e^oZD3-2jk`Fc>YQc_qWNzVM?4P=I94eSaQ6rsN-%^hdlw(K5iB zV|ZZ5iI1i|9}LZTpl7|n79C(2@qGdU{$KRN`V;uHXD4kPQ~Dluhp~)MMnm#C)u;}@ zdrfNAk-7c6U)e$Ce-j8FYyL>-`s>60`u+biCSWXhb??g*aneKSEp7(gvvAO)x!VZT zQ9g$^h(!%a@9%x&3IGbtu%@8?b|UZLN4`KZnQrda>I2leWdMbm-DJ^y;`K_+Gd*4E zK3Z}^ojJ(=UT+s8^>Dp}>Zu?6xRE#ZjR1FMyQ{8gRr~i+T7kUx07rI7p^9zUA2@OC z*?snWReO8#!bn7>2PikZnqHupT~kUFr?bu+&JOnK00K4{9e^k2n_h#A!y``KYO0}8 zNX`$fh>kMny%y7)1~V-VQym?;e4UdWwrj(>R)nppJqmXvH9=_RsT_Ye3{`K7Ns#C4 z7toT<@5>n4y$A2-HocPvI7ieZkeEGl7Fub3SCX?8c0%L;)oIFO?I6gWSz^a-_9OD5 zDQ1#>FyUoLRk6@9?D8$;x8_2eZI?@3-90Ka7vM-MN`M*p*r;{5Rn$d~k=>pjqW(5q zbfi6~&iLpGVRz6+B)nuQ@EJp>6`3<}&9Ag(4yMaFN*zLm!UTptx@7M=ICdJUS{XQX z_2+gqiG<$7Udoug;X35a<}1c$0xMm(@^&kd5x;2%+LN%(D?UX~nWQVa8*d|h-Nb7! z-lq=5BNDWD!HC5V`2`yvT_g=PgPfe}Wn(Kv39iqpuG)K47%E$rl1KLnJ#+3nQ%j~5 ztxCFyw~DFK4@PK;68|)|Fvsj-!Gq7%R$ALV>clu^26`o?hz|DS9Y(1*BN8m*E6O-W zBlV1?+~vsr+V z?3*yDwvUpw_GII|cBrr*WgB?5OAizfvgR?xhvqfIPYlV?_Q7>jpCL)v9z&2>XaZ?_ zH6?M#tEyeA#v}7tp=ABQUrfIF35vX*C-f>MF8{w-={1G*xXgi8diH6bX%mj7{f@}1 zp5?OTY^xGMKfA2~V`W?HLA~dm_}LVz z30gt*U=$G^$;$>EBgQGVF2d@Cwv6XHxVWSK%hG!q~Z)A6PkpxA-k42 zhe@f}T9$=7L~v$O8A=pq>Dq<8$+J$Ny^-gFi0D2p8N)EKLLx_^P;fcfVRa@X-H1Dt z_UAl@*qpj=(GEslWMjlQ4lUI623T$K@*RldnLJsMXmO8(@=vBIWB~I#GeRztmfy)p)CW9&- zgs!Hl*mi1f9fzdr#|if7CY?>T-P=)wQj6WhBk9BbDTIT8VfVG5$bm@T0{M7Pm;I!T z1ym04&@K&i)yiaxePEUKyn#Mc&1DH3-MENwzN*^p^WSO4JViy`x%~m*kTUPp9;YYt zD;}&DmZgDCGGCG#7ALH6Ok!meeeA zRcNr6P=HgB2a5A)n-I6NO89*(ts>M&v4}VXezWD4cpE5uDg@^2E_|FYU}FI^D*(=O z-swyt2!XwuJZvO7V2SI})gf=p-@dyDAeuh;^q5h}}(i(dfG6s1yALMZ8OS z&)lH2uY`?Svb>L?$9TF}fS7~h)&$Ryt`AFlR)|{H3|)qf%o^k$uyv{J+FLj+rxULo z;`iBd_ERaV*SW{?If`038Xlq3QZaERAtf{ZZtRGCNua7Xi0elw*_*E;RyDK@j1Cir ztn=?I?J4XUPPA{u=4vBE)+|}K+jofPA=X_o73TV%8f(y}8w*+8yOlB!6LVNd<2qs&qL@N*v ztr9EFOi&+bnlSY0;y@pt1s>T!ZW;Y;Smb1xZy zkC0^r_oI=W_opp75)qSa!*%Ov53Ochm)7;qD7`U4TBLpD!7zJ5nE^p1 zTVe~K(G9UgjbS|h7{bbvk=!$~#ysSUxpbF(o_)S#$tXKHz$%7B z2ODKSsV7`sOoKsc4K@(#slH}&w~+!510mM0<8qS{fE_vJK-bDeyX8&U4rg_H84OZ4 z)8wB;5*W5J+ONo63mAv8EEb4b@&n^HW}H$i)m*$>Yr6+z)yx)%uOi`gmGhoq0bR7O zU3WLyr9_s68%VM1C5y?8P~3+A|=*7UtQ>s zDk!+%meI5Gx8hCiRahP38^lfX$wLu#86??%=Id!2kXW(+LPtK*K>*>e7@GAoSaKv% zH#GAp?oS_pyBR68fx1iBPoCPWlgaUsa>L!1(WDt#X9?!=Cu^{?|HH(qOLGv=(cFy{ zI4Eoo0Xj&rhGQi?XbR-5^SUbl$= zmBlfiH5`+|DA2UR|8Bu>*u!8TV+4DXEsjD#l+uQ4pwXVA^Ly+wXI9VT#52=3p_9Zb(LDP)h{k-%ty*x!KJ2fzsJIstgrcC@;7e7mT;aD!??q zE&{qjugXCRsV-4@rM+DZPcmB^eN!X9CHZ}(zR}5>)nAYyng~w6T_M!&y)E>r(WE%z zdSz(Ig;hJ%I3yz?)@UGV_qESe z-z$r?+Ppl4sQuz@Bq<{>X3E$MV$q?9UyklCZ{pc_TTVT7m2D%n`UTY({}3@g>UV`` z)opg!%!qrzp9tFp32ls5i|&jM6#*zgZ$$Npy?UU@j=h^XJ>w1B(^C+4{9j2$5KO7l zqdalFQ|Z66sE420ib{L?iWc`2>ExRe>;ftOGJXN~MxE|QANdXy>l`>PK~aW*Ee1Ky$p0^I8B`{^@U zo^5QA(@_8?>y28;dWUS=nacS$>hR&au5w0PsWF<@r}IW#ytNFJM;uejv+Yl)}0dI>$JtYl|1c`sy^- z#$*lSXpR;G?e-%#e}aY_p3I2X(lbL8Dpv8TVhXG)?K(B7wM~I zU7Tp1dlftkN@|I#7sUWHTfun9C=edbevQLgP)|%*S2b495>!MWm&@~DVF<$}jCTb+ zn;P?Ut)4GHyhd~O&an1Tf6iPG!5CW~94gBo6)y3PHhFR&T<}t0!=+V7y%wl$beLkr z0ofgzqy(F+$q?BM1M)IjY5>}==J=f-lSg&-PdCpEE&akC@ATW^A9-vAdKzK&yq>=2 zieQwF1>Kb`6;`&Gr}PF^H6drdt%Mw~VpyI8kl@|UEK(L|}K3{)F55*sisE3-4y6d`%oc=k^itRkS>`3vvc4-|so(jG7V2F-T74O%5=z zNS(*bzEM^!(?AM5gzAp=mSM7y4YIs zR0cKJ+@id>t6H{1w6}0)=j!6yqgV*$ph6WR#h838?RNB`=~AwVw8Q9FACgux}OoXO`Y;e zN|_-vRndEJgT6rS{SG_qO|aXZ_x>#3yGOAz6s z9zJC^Pb5m;w+-s*d9wtY?E6?qTV)L|-lH49samp%#l3=bZ3*)N_HC&dEy)n!v2xv# zMO)ygu4t;Axtv`{&sM5Sm;DG_B;n3LZ_}4*LDyD;MRchZ21pi0I5%~xjbv#2!u6)F zskz+mKYadaW(P+?RDmT^BlBWd%Ufv-kGA%;(ghphEVs%)Yk4 zssWi4(X$bR9n8L-x~mtF|QmmXbuw$|b)5UH%*_FJGm+X|oNGAxZ$y<iQRjQ{H6<)bPFjgtg7-5RCD2sljovbdCWt;ksM?W({@=D z+sKpZo4tuFL!Hl{2aVD4qF>c4WL&*1Vwrl-QZZyASJp`wzO6(R&&e!4yUxigo)3jW zhi*1{YCwp-$qmW#KhY2z=eR(trHu{)>T}#HJaghYyZ(MsX#>Zt zJ}s36OliYwhrh^xEF-nC#uOtOcx5%?x^0!#SzE}Gf^keFwU{l#h=+Rb|YP$(7 zw>RZmN&&atr?&(`kHO`P_YK1IR+I=^lq(X z6u4Nl)5u7nGS=14DA1slP|T#W z_56JR1n!2Nm*R?D6RYb`k99St)fQ=@kX)w1D6a?`Re^O)#5 zinBFK$BSJ-L(jrY#-WBgUMs%`fIDmt7vdTXjvWh~xb1NzoG zk{)tdoMt%uK(M_CH!`25b{VY+IpRP5p4q;ScLjX=|EB!U~ z;og5Z#&YHD-;E)czcQH{AYA-dzHl z3FrBRu!ojf5l?m5b7Vb%>D)uImm_Xx6bQJI)%Ex9$_>*)+A7v&W0O*C+26_j#RwdQ z5LH0u+mVXG&H0@1U4%lMP=V6mGq*x9Uy)?zRA*MR;kkkg!gJ$ORJ`tOeNe%%Bc zV6^AJ5W>D(H|a2o@{a_2zTWO~>h0U_A;oxA=ucJ3kf`Ph?G29jH?q#Y>ErD)c8|lN zebtp_(h@MO z)b*>a$(|`Ru7a)Tsd}w7M_<<4B3Xn?qN*`Sd}tT2b4JA}Y#~3R3+!s8lm?38MzI`x zmk_xReeYq7huuNEopedaE8E>>H`n&~%dQ7+cqoHAUB<(joJzo&UeT(+E7_NrG=gd_ z7Y$DcPljAXj7uuTzW8kIqECsGs1U86%bj@@u|t3vKsXCfD9~pP_oI2sO?XDwWLT8q zUO$YjewmMHlK@J$ltZbjG&1Ee@+rhJx-nd>LcAmWWwfspswrXpH9#MX_j2^k5&_n| z(u)fDjTeE-T<%oCg0EZ_>jD>IP_vDSShta4DZn9@hQxcc2fsPFS1Bu0Aa9cOszGG# z@jGwx7-3|yx%I(%`qLy8#(l;cTok^Qf?fmRYgQp{pUj7+huSrk=@V~iF{^^|0s&ci zdPBPac0HS@g#AohMn0hDtn!{PYyMBRmc5TU=xp{9Yu@p)gnu0V#jhGBNlMrGwF^_I zucQu2A(~jl456p95=%91#=6y42U9BnP<4h9P4$)~m1gVy>w+Ele5D51DaD>Jxz$8B zL-Q1()9zIWXpoQ7nzCJF7@YgKyV5JdIZI9GP5PDg-B(_YQ>Byyx(T@Kcz4gVv<&q9 zV}-;YF6}P_=!u3CD82^B6|C`8q$U;f~(pLc?{;vdZOv!5Syuv@X0vZ-F zmOWJ^;yOR@U(~0wm>`Dz?-85Ana3ZeRD1u(h%kn*Tl@`30yru?x#yT@7pd+C2-J|8 zpQxu*qdnR_{5PB`(v<;+c;D~Bm_|Gsg{1lfA%4I;Zs`C*F8}#Rg(8gHTL=iL!hx{r z9{TTL7c}`x0OIdI_-wY(=+#dE4fGnY$M9c=UDW+QJzKwqs^5gK*%kNyQac`E68ei&~pfQ$T3(jduwACJe}RJ-@@ z|9kbX4U(vaX5m z&fY(l{8*3sTX+fm+dC8A)y7J2=aE0gpwsvFa3VxP;5)p=#MJ|Ve{PWfJ^AYXVbEb+ zNz>-;sQCPm7Sn<-AiC52Fvb|pIOtM75B~bkkUeIB9aN2qFMK};@MH?=#&99hibD?e zc2jG2&er`6nuF|3w_rhzW8!6L42(OVsg~AsBsD2gpAa~NzYGu9t0W^!oER!5jfWGv zz~ub*wLHd6)`b9yD~G@Z9uDuX&Xfg>E~WY&X)$e{17vj^M`MTXS<4-2kF_3tV#eM1 zE*s_eM)5Fxqd9S7^k{e*+W@B_&@;Z|ny?OW=;7w(DEIfHI?^J)t<>}evoqK1R(}3& zyY$bYG?mqJV3Om(`u7t662o$}Jz##J>B=Kns=!D<=cjT>t)#gM@XG>Tsl@Ck)B%5` zZ~vt-^q0XDi1I(L9*y(=SK}}?+Qc}Zt^{FCGO=!@vhE~|+jaQBwR?Zbc6CI>9%&3a zy8I<8HFu=mMLhBoE1dU=_R%DNe~!{BY`*)XrC<3=N9wGt$rHz?dXKHM|8m{y_~TzE z>5WK!n~tb6Tqk^&FXpIpaLYe>D2+n@*25C^RR~G!j6Vt*z=y0wt>lLwIi)k5a^PDt zZg6D5<^xU)j&26&x{W>a@TD#|nI8ELyUcXNR$A!h)=|)VNIdK*l-6QDY~n{AD>GT= zl2v}xxYcHXB$MW;RA%xss4oS#=eX@N-??$e^t*iwxxsF6DW&8f7rMk19(SmAcXBh- zzB$P3NS|7|4BE5aA~#*9K54lumDiLl{w(m{*Zz}7PhU*8=RziU&zUA(AM$>9?>s&D z3P0N};qE*VjQlQ&N$NJt%q(1Tx%ybpMR#GI}=zLgX zy6u(;9tn0-*gK>e#3SH4dAxlqpw3f(#hCBi1N4oW33w1KGA|DCY!tdp4LRHe_fQy@ z%HS|sWiD8W%Y{-qJCNH=SwxA$0-i0d-w$G}S!kC)`>|B)>vD6PKgD2)r@ppn77ID;Yg_YIP1f26& zDA8L9ZbVbqD?^+=oXaK(^pef3swdTi9G07DIql@Bw;Nnh^A5@Pz8jeYu2n2vCSIN? zEK{S-r8n(;JS%G&uQ*FTa@z^CX0$gP>~{nq4+EO(B$d!v|Vg{D3_YHU= zWtexc$r574?YFNgNL{?yXO8hU7rwZ;641|Qq8t%wr8Tv!l|cdMa9*2XVe zv$=b_pFHXbtxCWh?>KG$QnK}P#dq_*G=sk-=Q?$Oz~9l&z0>!QyIn)|X7fI=45_ZX zqDkBU?+j31io+m{EvpJgmTs$5o2zOrnlftjX;B3UQ4)n1;&<6AaPzysm5pa*8{gif zHsk2K;^<D8Q(FpSLGuRwf6 z&9Iz3T;v`Z7EWIsr;gR1NIh>FX5?fAxUCJLc-Q&x>>-$fxU=?~MXvKT4~AtqibA}< zo+IWt4iO(t9Q>(LZ5stJ6~xC)%L<`@t5@*my}vS+z1oMrtonYFmcYNe?dlG)dB0LK zzeW=xiUb$F(dS_-koKom*93Ab4@15MDVLYTyln#fFA@R2t~}S{d+WmJtaFk!1+m6D zDgz-yWQK}wdvbHu1kO8=6TxEo44BuCF9y20j5rs3)L``cj+GqJ3te5L1%j@et^qXt zzmY?1puY1H45eIPe(eCv#lIbRuNLo-n4RcZqsKa~pX4JAd~k4+Hf(1un=t*$*Tri| zltwTxz@D?uOh%=lQCiEt)+`+=2U%GuNBySYl=N96JN|nz?+`h8w2XKhI|R0btI}}y zwh;&abqYH-fdOF<H53!b>!dFa-Pssp^%sIUlFZIdqjTRhB8wk?hrqS%$J&Rp)2!Wf?px4pfTjy^J7 zV8u^*kecBK0=r*Qwg88;r`6AvV=LcX9xzVfx7+EfI(Fk7m8AbXao(R?P zU-t!!3#m_!1gwdR+ky6t+3T<+HgyvVtVjbby;f6Yp@hdSms2eWy*s%TwkxvsIvIIlpYJ+-wQK}t3cN=%7Or!@|2CCa zq1e2RX$fn6y)V9JX+_56zK{%i@G#JT0M4vSUAE`K$B$`1+P}!9LeuMGGbNZ6zTv3$ zhtHhomf9^L3q^q8kHS}+yhzQX)sVSx>PXF`*@$w@BYd6&PO>e)nt#eUbR^qn@ee0! z!Y|oX2_^Ezjm5kMakNa{Vr$QFQJN6m-qGXCDSD45x!%>9`6>wQf{eO8)o*oB2Y4J!iQxyDC}1Wbi-d9BQs zh889GXb0(WD)ml`$759`NnUW;`~+`Jx#waitz^3BD%_qC!u~#i(Dmg!gUU?{coA6G z#K{I3L)WmpXZ;*73*9oiOSa4JnZVbR0fV(rblBLQZ)dqE>1InquN4j#>n zxPWlmT}boC;G}@C1iwGW$e=^sc)ZQbXs}zW%rthRNYOjBu8+eQ3bdZmo{Wdba;jP; zoygN$u(!G0KJoowkX8yYh2qxS^asSiNe}DJm<^LNT+1>M+uSv;?Zf*|2F3wk=9lz$ z73cI7X3kcs_v#;>(GM{7UG^R6TR~7Q21gI#LMH)1m9=5`z?XKz0tDwf9%b10nlGqW zh2AcmTWP`IG*Fg@n_J}W*9}tpMk@n-Q88Zt!9h2(FoSL<0B?A1KsRCMOZEZv^sMbI z1^t;dDuaS6g$$=&9%2q(LV^#&Pr$skQyVbws-KsEHW|z7)Fug*|_=$}0^EbX+)jjutcOO=Z3_(qdz0vHOOX)2c1>h0nffrpuagU+#^* zehtbA8^y(~Z8D}%>@Zb)%#c?1YqP%UE0xk9A_|Ao{@xc;CJMr+d|CgEY&Q_&+B%>m{-3ZX7Lr*dW-moPb;%^o41T%z1LM^EXvIkyDvtGcwTwlmLNZEu;3^s0|TzRJ1Q1z&&X zX@Mr(1c&A6hwL}R9!2{zMSZHgHT;e_%MXhxX@G^#RHU=yDjiSiWa|FGD2kOsj6*yr zIXUY0nr$bx3Dy|?ZqCib+!gaWj&t=uwjXELqi?|O;PG2LBoL`b7lFSdtdZjTw-=1c+I3jnv7_I}zTnIozU0@nQ~aNYHmoEi*yLyU_Bckhk;| zgV(?VeJSm7pZs)Tz)8WiwXI-ao#XdRRj>o48=a*fJ{vfBAVX4>_pAmVwp^Mj{0)F1NQ zx&nwcx(S2l9@e+dJmCL&Bi49*Z7H5Cv)b-RRj-nRIW2Q<#ClPewkI)#*3KMLqq+I- zl5-j?MS{Y`=aiLyZcB}aK*w%!yF6NJSGo_LS3hRzY`19@g10G96gKXHa-!56m-L*C?w}KbgV%fvE_cX&T|wsZlW5b%4TONSfi2&YY*J zT{K-jb|sY~Z7sb#|Aid*;B;H9o$p?`=S}zA1!Nj3sIN-jxpTk~g>H6X#BEX31x$wy zQD65q6U=3;PIaxC3jbJo76Ol{DZD#OXQ@jkPt4)uoMGGYUjKd72p%8D>NT`taAue( zcS?A&`>NBWt2KsqKCDUEPirT>pE7}u#_zos zoLW)pSiWm9_;jN@p&OehNZPj1CnV9@j^DQ-*2oC9nLjncD?QRi%Q(L z$Do*n?eb>-*#?trj-s@HG}KUKw|A*cPfi4(WQo0D=aTREtC>ky=ib}|Yh1$iuwMgm zQrz3r23szb2tx(F#A3raz%n~To~n1I27m%NrHJSA7Q$X>@NT&JvKipC!cE}{vv6Z1 z&4{CA_{o0mS7#sCr^q(~72(j>6F*Y!H_)MR2!Yg?-=op~+h@jCU*b`57vPxU4iY2( zk^4RLPLGzDPV|;p*$(l~KS8%RmN=H1Gvre462|r<3jwz%18gZ3ZZ4ncG?3s-kew*em6QAf(&0iw z#EF_AWFL?YpHYSbiF~`Qk9yp>1sV%D5Qm)z<-` zcAx`Mc(l$vGDqwF(~XsX0jL~tB#*M0!TId<>w;U!fcATiQ0udVPs`&{PXQgk$RHD@W9bNYH~D=mSwSD zM^u)6^1>u0Eh)`UOFf?DC!kMo>`5ZExU}>{eDZHh0VE7WJ(nn}qgi^ZC&n1s#Wc`a z%qT%7ln~$TcRmNzf2Io#I&+x~@zFjiQOqbR`{3)|N%mTyH9%OL=r)WIi#h(KDpE2z zoi{xpN-*kOKR@Ti#|wngZVpwBx+8ZW=tCRK!IVx04t7QQ7w#1J*#X+RCv3)F z_nz}}D?227nvq5t)NiJq22q{`4cvgzRV~kGDlgmROTpoLx+C2|lOp&}BcNkFwLBDE z#vgYvCaKU)jh=49t^Na-uG6rzjb9o29*!i_KJHkC>I}v*^4!u)@LQZ=?pG=FFUzIy zPd7}*LwSxpKhx_%E_CXo%0IF`Zu$!s0tl4up(E*Y9l$QBRf26VWlW=IvL%ErNX}%R zt4b8NyfAlE8jE+|`lD70t(%7OgFdd!(5}&|{JmVpnZ%S^E1n^xJI7+fRKc9LW_619 zF>G@tSEpTcTGv6X1k2***n&;|D^z%6jp=FbA39KN{(Oy6R?r#ApVHogxP!OC5?!T} z#&+vUbH6EK?jvPJI}T@6YF^mCXAwgmbpQE?GMa^(0Qb$rIPxQ1D}%3j`BOJV1H);rEs+*}(E7zYsBuMgi(u~~$(^LZ*r_ocL5oR>>L zofLhy+RvN{B+}%`uK4LDs+{v5?m<1Vt~|xCq_K*2 z^Uvq|eeI$<74g{$Mq-4DMF9`A?4)$C+nLzo@GoDZVut*iE&z|fDEwQhM_E@~K-8M% z#Cot{453>i*50HX@YtwmhB)l)=E~^T`FoS@T$mUCpp7us)Scvv$eQ>6VES<6#rl=< zACrpXmDr(V_^9#L&w@TfEa0;3$}7pl5>IkY*;R^T--{0W^oy%~yaD;Fp@34mwxO8upl5R}c3LEMJw$YUqr(}`~A~}?#?}4I&5vp8fDND2@m|X~|VZ^Tg*G zkc7*ZLI1A%%@jDEL? z!2+Q&R{I7Bm1=tta``1h>v}=CF2fQ@_Zbro?++m@QctK|?0ovF*iVdDTc#E^k{h_$(5hy$h?P8Y5EdAp$ zyCikIQgc*0|C9Q8g`mP$PU4??er5!a zq0FvbuH1W9db*wvs?uHiU(wgidb20wucRkvfwllcWBExe;H4==$d7(#kNjv8)%L9* z;n#7mJ{SF%yOUq_YVU#u2nOr<>}=K7_+pcba{;?;ddLJdZd9%A$dRX7a_m_qOfxv0 z71&}U95`yi1%+}O1c2liKraq?&>SobbIk8J@S>-KpLF*XGhEUV2-^Anv&Yuf?8Le~ zIm{Ss2ZQYzMCsR~DK!0ifGkA2%fq!AnzxQoPVP>7t{cM4@b*1zi7Qv6)HWObL>Cq@ zak@v}EZvFGG966Vx+B(HPj9WUQt&Xb;*!$SGJ3fqm6*Dz;a3+sv@?JPZtePk)9q>Z z+-~wiW~mII2>c*A9Tr{V*9vTnf1Ex}j4`$_bW)7^!@jb~9Q!>TJbtM~oEAb zBUsWfKu>f}(mVBc$NPYiFX9xFVaHlg)HCrh{w5nl@U9^n$Lq9clq1B%l^x@CTB$M{ zem~@Sp;Es0$tiaGd?~a6z@3lJcC;evW8?x)bx3WArb4^ON3VE70DP`S_+&T35 zb8GnExgEK|{L)fB0-vw}n1*Yl%C_%EI{<8BOo`d#hf{*Y@w8~cGF4s)&VA0y{cq2owpt#EBn5V^J9#0 z<3z@oO@OIQ*w}l?)M@WC5RH43Z(NJ1v`(L2m@YCI^GII+E8b?}6evKnKqpb~0>yrj z0gF-X!9tm_=ZB-i4mPSj!6Iy962=*mr1-V=v(aHWAd4mtcituGS37yfK9+7!t}7&S zN#Bw>rzQkZ`l_wqzACo({7|y7Hdekx)^y6t;x6)Zm4N~(Nrbda<#-CFjW^VX`>*uz-=;fLx2-(Y9<1LpSiA%=&eN(sL}wzpU=+YU1p_zrM^Jv>1pbJxe-3rcre&a|sNUXI{7oOK#nNMKfS zHS}bhQ!q`yi0Tbx0+)9qM<3z;G0(k6E$Nt%4Br)tf)74z0&yA9Dks5AK(X*Br7}yz z^X%4GGQqycEwBnxRfCS-^nM{u)Yc+-=c~^jE8Q`vITOwkHl%EJF;jtXU z!`H85-?F%u4V+{y0{5n$b7P0*Y_k<&F!EKPMiZ{Ud<|h?ppkfE4&XtN4kiV^CcHZzOR4*4V0HVxkWQvxm=?6^X(x7hfd7ra8nR?_$ z+b25CjuE!_pfN)NJu%EJn)-X4u{0rrxOW~-;zlkmT+;&C2BzuO@C_J|k9ll<;Np;fIiHX`76Tx>v1P!z%JG<*vdG zPa!i$N;9QH-wO`5TiQ?eZpcBBSjB}!K|MwG5@a<{!mp@-`fowxGTob;Z~Dd|H34gm zz;q>(Cc&w0l_2Ert-LE>DGPdBztw@e=isujeS~s0K2Az~rTT=K8u^rxIa)ogsX30j=Yj6Wkvzz5V3Z($|r zl*h`^l7{b4r`iq`$+bw%!ksR-_4_dk+V$cXe!ffQjoVrJS?u9v080<@ffrS1(=-jwFPd}d+Mk)KjcojFY4D?c$1guv&Bbwk& z*=4U{j9WCriacyq*4%peNhCFoET_X}tGcKA4xe%*vpBUmVrO4A5#rgBG--er_OCIz z>0@oX=t_?=bUh3&?VM_t{|5;NwN$-@KQhSUS`?aZJ>P(qHL>6OcI%BfJBZ`&{MG)q zPgJ>c*YHs1(!XugVkGkbz3bZy^}eV!Hy(GQsDm5;Iu$10MW+DHW=FID5EC%B9vNi$ zkt;=SOVv|bRxJ&hvjMV+uu0|9yr^JK`|ewv8bE>FM?Bovw<_I|9Xug^!oI*dz#@PP zRW(;}rHb((f=Bi;pKl**(oz|m<{xn{ZzQd$GR^b$uQ4ngzuJda*ng)rNap=>t*|`? zB0(<7|I8)iBk^WCC@w_uI{0X!molVj{9MMLrH5{Y1u+!6nsfSlrbg3SJ4qpcwf8iE zr^c>Zrs6Yj<~2##&hJpcf8fDfQHxd0p6+DUU0}^niIZDRwOE`NZCXBCLlmCEBI>U>^T3ABH|z3MTLZR0$;4aSH`x{5 zZfJzbyN25#gDItm1vxPmLYm2hW-;VSv`Dqj5Nd3)18`1;7^jNSv+ zl3cR?>e6L<`7f)pKMa)>cktfGwsCVEfaeb?2O3p7k5MImNxLBhau}#JpZr!wBQ^&y zOjL*|;nV&fD{73#u*x#^zSqJmK7JGpP}sm{BJn&}EWH$lUa@SVIKBb2)+U=PMu^o5 z&;Cs3DnSmD&F&42hZ*(Z(&No^o2TQV7Z;SJ@JSUaj&cdzv-&q zQ0+d$if!DDIY(UODKCsmEf=S6;&9EWF~Yoe*mu8rp>M{#4QbpK_A_Qyc&grfO}sCy zF8s*%QeF*^Be8T-jm3)gu&8hDk zlYzyWo|SZXhi!fiy|sr3cXCS`Ogx}HB+bmyyrEs#X2l&k&ixbcjFe#~ zQ}5n3>h36IHa(j7pkn=I^>Lg!kEo~F7KsAmkFz~L&bgGO)2F4wm#kEDN^J4ssp;~u zYC`;94yBF6k6QE8ooHF&eBlwoI3a*gp&HuUfUo}%>$@}GI~!kq3ciNL!FYWE#(*x@ zDgL=-z(c);abPiQyt+RCB_2UVTrr2R=G#Qx1{#Tqsov;QZ(a8UzllE_y2eYXlZ}$+ zhi5BuhGdn!ia78Z*2fz2GKRB{7B$t?2GO2e?|A!jzncB3-*A;&kQ-I)Hx7;unYPUW z@`S>r1HB{0;P+A!$dwBbkyEW?7z}Dtemz-p#iimEFuW-ujz34SL|j`dI%Q?XAYL0W zyEBY0mR@?n(U!(J>VnQbLHa55TwZCINsu_BTeSMcA7|KNk3%@Mo-FLCP<89@^`?Z~?=9@%# z4+}cg*#JT1?XT&IWZ%C1!1-~49JZl;x|LijecN0dH@Fc>4)t3s+*|y}FKl$DTL)!!942Kb2{mtQcQ^q2 zilI4@*GvaAChFVokEcJ8HasT%wHkJvd->eW&=(8cbyttG@k##yqW_UM(v!V0_NSsl_1xcV zjn=-iv&Zw++HUYR>#SD<;e&&ZC_VhjA@$`zGqpq+zE@2oF4m0XN&--8*`31WhrGc6 z0CXOPI)`V8Gbzh-YLQd|p0MomAp%FN&VSn1>z)AoWL7reol709Kk)Yb9HDF&eF#1> zIdAfO`%y$V()?0e6u?l`;;rzr@dFL+K26S)-=rnW&ygt8>;I6r)^XGi<^xQkPu6CXKkX}zNVd2UQomzgrWUqCd z-|yMKCWiJM?C5UffIGFOm(06=(K+F65-;5B@UubL_T=FsXug-ll5fqb1TXGWft7=~ z0Tv()q*)Mszkq=0@I!`azCqt1O?Sjt8Ru@1ZDy+Fcv1kruJh1c+EnSupw~;#h>{F| zj&__07^!8kBApqUZ8o7YngNqySE9G}4QWGr@I=G%2m01CCPf-M z+$RbtbUXZ0csf>Y6X`cp_^xG;oe;Q?(QIH7v%l4CZfhdg`4dFPEnU=N_SJ^$@cgcq ziF2fm8mU-@Al-S&J|+46g^h}Ugxyb{`*c3>Pll{;Z=kPLSV@0f?Dt>(8ULvlh$;UG z8xvHAB4g3YiEKTR{G`icyok?Exq-2As^o~?F~Yp7-5j%~(jEU>cTN$itdDn-_SsJ^ z!c%O<@?kE;;Cw3CXLWpceK%|do)`8e zSjfH5oHKLce{PUl_YEC*z55q!WB}$&M(5VY+TEcVz<;)BBZR4SV>gXSYOU@0mtk-I zVZ}W0NxiHGSKCx^EIMbWZ>*->OnRA`^0bRTv2%T^Ps3t2+UZYrM;Lv0h`VA8)iFnyPZdWXBzoY$AJ4+ozl?e;2^+aP|3fEucl<9L0?jfHwsGp zW$xnKBbgE$maVvN1ErS3rkP{Dpmx~$mhuujbk!k z5mZDvNH8EZdT3GtLO=*D$AX|VDWL~cnh=V#&=VB_sZlzFA_RyK0zwESA<5lX-s2hH z_v7Aw_uldC!C>r>-PT%juDREmdp*wstY$16i>a$UoxRFq5$|vxB;&1Adr*=tCSw}- zKHUGYr45L!R{gAG^VA-rQnp6#l5|60YpjAeXNamcRHJjZqiqit&7ni~BPWwxudi92 zT|fOuSL@r}zbg_1*X2(L7S%+P)LAR47{A>_KRITRp}>BcQ@3Fhy!+595B=b>?EMay z^FXK-Dv9|<1Mj^UFm8m1agu30P6CBa3wyv#runZz@=Rf#FDH5s?Cq6)h$CmTltKP~ z{`LVMQ09hzIUZ_}rOEB0uwyNnsEqKem-H(3s1vE&t+2!VrQ*}}eb(m)`E82F+MBS- zh?#>jS0;6IgR<&EGar1&iS7Tp$>L}n(Dh5sm>9*a=$wDsUX9rJG!n=&ddPp;8CWcl zcA-nvKIQ#m8d1R;DQeHBB4H`lcIy&fQ~Psdo0%5*zUYKE@*H$^p6G8>Dfb>$o1A%Iw zOVM_+Q8Igyjbh;rQ+Cf&J!0`4%*iVC_AV?}XVji%ZF{+w9oU!UhsYge-Qh1An&oEO)bc4cY#z>LU4JBL1s-QTMsimm+WeaeT5v z^R=R?b5O)-l+@d8AKV`5b5|!Mp)IF&7yq#6Y|#7NM^ZM*_KQXuiW(7M z)Qd5zdX`6A(pBHy7ezrf^s%_&VB^HRQ^)L#bfzZ5q#xds^NhM-A*@`S^FH8nF<#!7 zXdrpe$LOX--<_1!z%N4!!{IqyA2OBS-N+3ge&ByC?1_T9C&OF_I>!)EqbsUU1J9Za za~djWDS)b^Y(AgltKtF}i?1Ej9m8QA)F03_BqoIdlY}L>OK}b?uH8jDnVR+$8U0It`jG>S<-_ekEt~DvA9~?c*9Bg*_~x=UX=;K0^M}_V3E!f^JS2TiN5o#dOXl*< zvKCouTH!yS(wSj+G5>?^z2|_Lp4=T6$k0wJNj6CS?`(7jAZ0*v$hAvfu-GN9`u>HR z&7K^6SLHj=$13AJAOy#gyPkzW+hdLmUt^&ZyfMX&Gqr&!kB!kyBkhCN6vuYslbfzZ zRonh4-BN4=s_-$C(~zj2dYqxm>PYp4kBdqWkK|8*B)tk zZ^dPo_ja14X0u+3C3++=1$bm^@{O!0zX;WD`AZEY-u8(+k3#o=J-|wsN8n*3;zc$NvJ>P-n98jL1>BbAPM0%)&K)v!~ba!LRQ6S^eV;R zr9bgLeI)Pu;M?*jzZg-RVRdfNyyJDLx5-3Gq8-D5Eo9u@iQ-Iot#OLBIHg*6nSjJg z#y*cNicJUq8`vPt)e+*ZCA#A}PeQe*65pAkTkrmMpc$?iX&HYi*LTI3Cd_$UZ9f<7 zYf>9PZE&f$u9T|x;;F{mvpZh-Ug;mMet)%97$xk}K!=!Yv0`{EA4hsi$Y@k6N~llq zMadt&X+I_&`9Rb>0vZ^#E8(yCDp!&07sXZr?S(BH9v{s{MAA2OKkhmP9~(E#Vj$KV zo$bd{wvvI2w9|~Q2O-LAWxp|$C+=M_fwnL5&R7*HjUKG1Vc-z+CKphlDs7tA)P|q3 zD19DX`tePf{QPpIxm9UHk)g976O8X{mL!IsZsEX3=5SpT*7r+*W@F{snPrXK;h!|$ zcQ~FDK^WiD|H4s%@ES~#!CS#>6LneL7%A;r%-m|?{pxbgk^$<)VC|eDm8#N1Q zd$Z4>wiGJg<<^Ahmu>nOm8OFKFpPN?OIh%;*6FvviYg9Ep3g3tZ4M@i*bGi!8xQjm zTa0e^3(sEP9GE#6rDh@WIn;j?z#QX@z!q2U4BS&!mv~##p8!TRy-f+&o>X?QFHqu* zw}j^-=iO6I&J_0>u?&Tgm9P_-3z|Z{5;JG=ZGU1MUWT) zME7~Ja=g{(Se?^F8y+JYABi#xit`6zhcz)^d}QK&@IGe^3P^L}W{B)beJJ7UF1|uj zqzWc^>d1(0uzV_@oco90`)p;|L-5a#gmN?|xgOstihwtzW{{2U0Q_eP~lT)1z#MSLI$}Un%X@dv3jYYPBgO z-l=JXTcAwtB*q}6i?}0YH=Sp0sHP@*Cm8EJMbFjx*a5HJnNn9JQ9|llYR`)(%s%g9 z(Af-oMeVU~$JbA&919ZNuroG&dn;#5_ROnyFWOdHS(I+IVza16^1$pCI*@Bu{uFVI zxs#emGKz2Q*~r#Px?bp+FSsU@X2!T-W3%H)?*xCKHVSfyniv?oyqD6~MhAGuVk5fLdK`%K$`Ef_su*a zOx4e32hYlE4mHl`fYf4}$)=Ar--*MGE|(Zah9!TvvsVSRl>S00y~KtOIv6cq(z(IS zZ>q5zT!>BTSNLjGvD|Qy+604c#zogjLM}8%eo4bh+>L70^t4d@SHi4r>)rt^ytWQ8 zz#J#qGgFBBvvc6?MIZh@3N1{PU-FjAK8UHdT9M}#^_+18wHPa(Wzve($6sd{e@ppB zwQW#VoOA5C5TH2;!GB0@E>J;Hlcw_OT+@%Je0J`>qs+fnr9RK|7QZ!Qd|=9XM#h;> zBCLa8k$NV%+Od2p@#1|gXS++aNoUWSKjPKDL}#jWqK}DAHHfg%4jmxS>QXVz;4>lD zXH_Zh6^_sRDwP7Wl)srM}ttB15kUW}$xWym-dE?Y_*$HBlX zhv-ks4L2^RpUy^0OxG%g+&wVzSY9U^#FQsoS6_LkJj3}KGM@_Lq#gbd#HJ#zyA5t3 zzv?0va)bH$2#8eG{03qXVK(}Zz2vpV7WMrXU1VAE6-DP}wMmbZfn)+kQm~;&c2-+f zTCO5J6MR5EE4-1r>`;kAr5Ndhdi5-Ad^dF1cdY$PaIar>RHVH5{r9cO5uYtDh96T_ z01dNBDo8j#!GyqS)5QQ=ZKL{5F3J_eWbjeE$W~2Q+p~gGhrFWAS_~G5&Pd|FQ(c;s zYGM1V6!#k_KIm~wBEjWd1AFIA9oNV|B3HIY)UU`>ND^Vy*gP-fIT5;zm@@k6IO=!| zw4z(r;F?OPnP4E*=lgFp><%N<$)$4h<4>j3>ewcD0f;@(=%b!pEf>$kJi_`0p%7C5 z?RDpJSFZ^4*kA1|00Y-A>d;_U1+43ek`{f_r_HC5U^(R|cttbclhobF zUoP=N`nq^jPx4&CsxkeTtJ4LqnUo!Cu2Ik|0f)p>31RZ(uhKMIAe!d>>wC=4pDvYC zTiEDH^nAoyW9B@PN+1;==v_q38qE0V=yqjcBshL+=&j9I8<)3PR@9z@=Z_N5MW#Rd zdTEiw429hpWlHM+g@@8&>NKzX0fnE=D^1Kh0qq(h9zE@p5x*#Vt2=lvT}3h zeEtWkJQ*|G!;5^8DTpYWj(A6T50d&eF?+Mu;kmEzMrd@%Ypb+q%ms8de!?j;~6lbfJ#98s}P zOg7FzH1;Q^NKZ;9mb% zW(A?C&}^=vR6Z^ZT#E8Fe2OdE@LBRw^O`u>oDm_DW@JaT96+vIXDU8rdI#S?Y(>0P z&0uadPfL37<`;L=7!+tpx@bP8pFyPGNKtNv9ma>u@V{403Yng~1i^;9gC9wwyI%84 znu&uNDuGm8yvIMmix(uyJjw)1YN3n<_oa!3r6=@Oo~cO3&9hNPy?66KyHAH4p}yY? zBWrB_m_=`)MuE>BzaXzbrp;p4XFVln>xk=ao4Y!FUJ2T4-ib**m4@Q@S0WDhT9VTL zcl1q#=%U29y0sVvS$FLo=QZ1xo)&WdO4n{ckuVgK|@tm`@=!VO&q~a9~_m+KlP)G;K%cid)sw;8oU!e$C-CA)H zm_6pj0mSoG@W2g~rJ@N|DKBkV2<;-^ZBFyD^tAg{u3gc-?C%4V<`)R~2Y~*6?^g`< z%OfuE`WX9i6=j^#f9WUTfl^oK%-BY{Qx@K{-*LX@vKIRRAyz$@5>!2r zby)l-o;^+U2iri==P;SdKc5u-KnkBd81KQc&2ta@4Jfu>FWlafvQJPphvuxEI8{I` zd-{{>pji3m^|`L`&Ofi##G)pCP!m`~f07~?9t-`P^Apba&Fv@eg1geMJKH5#Bi(>S zo=*igcj|7nS^Nfj0 zONKVI@m((dtFaz`-}>2dm1GtdzXsKAOT`73z;>nq7^93Q72Bml+kNMp0ayV1CI-2T zZmw3gb}oJu{Ouuwk7Pnv4NKEp*t>&@-%V*n`Cgc9Is>n9_wi)RJQoWAro|&h%0NiM zR?s<5?_Y!v;A}2_+e;hmW9a!iY=?3G6;8;v1z(@L+xE1m|4*^g&@R}bIptTcJ<@-% zB6JipOteH${MOr5=>MT|0B|Dg=fnv!cYc>X*mem=+LuMV{`n{0>v`yh0*>fkIq$D{ z>Ek~B^qV9lzDwWAN#J#lk$97X+pXDg^2hy*I`zV+I4~HGm_6J$A2tUwumsJ)a(`LP zfc7?hz3}uXg|7;Om_Ii6_|tZ^iWYy={#tZjX2PLgR{T-ntG^NWd@s_kB82_p6qkSA z{)hShzvSVOO#ZJ@eXc2HG(eZHWE&r!)q9b+m@vNnu8D+9z+2VaQJY!C5Bm91rO3U^ z-dE+CUpcL6ybVKc&8+~cv2XrqNkE+L7cXM@j&j?R)p6p-cwn*wT-syrnx7(ousR&t zA~H_Az|^>1FIvd>Hx8Box8F6AD)+*?t4c0Q_4n&FU+8z!znPY&3~D|9`}y53{^_sJ zT|d`YxSBkAf<#glWTGz_%>wc{J)j`O{gc*G2v`P zTPs#+u(Y^KGfZoQ6Vi?8|5|KCq_SOgC@* zcqB?xl142P)>2xxa!tHmY1DrAN&Iy_LDwUT+j0@i)HnR*v$Yx)lX|*$UI7BSl83@# zmz`+IG!&??+LdhhkHM6F=abnk#BFE$J5MNp$loC2uUmb`lZ`4@E;bK3cGAF5C!}gh zznNHn*+JtzKq=Nhfjh4BZm`fy{z2YogKL4yLwUg;-$c3U0np&(BZA9G1czWN{&qtf zEiHFBYeL* zbcUP4Zl@LF_j*vZl2W&h3Zu5WyOs6*G&=P}8p~Pok8WzTxeF@hFo-*-?HPC%i{Ww2L9zbL~;gtLPZ1frYZS6y^G*qvM@7?`wr}ci3xV<{f zXPS44jkxWvdU58+-j}=E9zDP8qrLON%kRknxyg33cSiX)?Q($ zcD<-^z&~WrI*7fJSv6P^BA_2Pl3Yg_U6be1DUA5O@pBFD)|r3HU0?_ke9r8wyZY_! z@dDV)Z7GP-_(v=MB3ht9W9?LpF^cG?8C{4ik zzWM;aX$)FxT#{XixVN}A5%TmF+0hC`To7is4H~-M@^?S&8D~v&8nbo*mz!Y5ijR~O zNr1>TBg_Fhg)ygh!0f-RNH!|bf-;y#s0_0}21DCY*@CWdX{(GyLtMDQnop7bfO~AU zj4_$NR02eBqQL9Fy^74A`gSj}@4l6K^|=muPbJP-zdkn96KWw~Q{QbnH{0JVWCP-Ko0zBE!Q!K@3UIe!!o_Bj>PDT%F?jj$h{;)&HLxZnw|>aU1%!cK&98#?PV`K%9Acc6H>XrBvpN zAKf(~;^Q)E_4-ejm>UmTO8@T<<*P5T7{gqVzb@m?(uY)veeaO|K9)Z_e?&y(aNpSL zm)rhDdyx3kw}ph_J<6{g`W_XiD`%IL5I;>DM^u;#Q?`5c?{Lk+Hz3s3#M$%-5HD{Y_%{B8_mT0+nZJK(ezt`?q z$NKk96{5MM7J*!Jv4}2YoR_@-tjcUmZWmo6bZD|Ey_r=TU&7g~1Aop2Z>Fj9vZtdY zc-ddWAa)td<#bHaVip9>rkN|Rn*d<M_U)XrZ35cjC?hymrAyz5=~VzF*Ut(GUi` zd0#9ubxwm7DY#kIjK9Pjj>Ox4+bmX!utnQetX*1nhz*#YYL-!V@Sbx@_A0KrH5%L@ z6-i>%Lo&LFVZ0&U?sK09c?;4+)XDQmw??Ys`EX+uDsG zk!mlgVKxz*vsh}2OPm76u-NSGLN@`$Qk%vGkO(O0s2`spXvs z9Of&v-TD%vj!Du8$mT8p2txKmW(7k8ybMOd8y5@bCX$5w*wbl^n_H) z?Jcv;84qPpA|Zjx9r^N$IA$9s@A`PXBnQ^JzdzD6biUUHaTJ_`St<(-V`-B@9K|zX z(q8oxjO(W8s?Pisvz$dwtytqYwI>ZOhw01%92}p_a}F=Oi0tFGt2Mk=?Xz-E0IlQ3 zb2~P8mBIMW6Dl@m@~M3ZhRfpGRq261`*2U7(vKgcMeK&*0_Yc#*Fs zFchKVHozolZG9`aXE58|!JQ*!;Ep<%dt*R-QqFX!tYN|n=}x2DPFm}j7X!nhW;SbR z!8Q<_vj%fruP90E!dR`Z32xnXZvzF5dWA5oBI_6H+{wt?5wFa~RF`{6T3gxc#suc# zQe%*N+h5*YN)s9FA1oVZJDbP+CmJ^v52;9Y2a@WKpGO7HS9)UqWcNUrRn01;jh^n2 z3@1-g1Nl;~@E<-dBtXe2H!>2tkvpeB%XMlAZbAfitb*xL>+^%G*;UCwegtB1sfO6y zEZDFf64|Ob+1AUVeto!*->oBnz%U7=w(_V)QSf&p=?wd&{;EaN%|VsYna0mCHiJ2s zt`+yvde7x_94*Neq8h`GH&&rEMA9>Z7Ol4MT3QJ2l>*bO*-RMK#*2lT+c1RWbW>DH zolr&T9w9vNgf!iW(*GUAi9<6y4XE)l$;At7-E?@jUATv3>3Qbh5c$MFbeRESkwGkWD4?1-xR|82 zx|B9JsI{;fKjYz^CX^v|jg`ydRyV5tqiVOpJ8$m9KluT^(qLMpU2(dcY4FyueEHJG%s~XHKGH>V zofkt&gTY4Ta2myoH-Ju`0Ia}!NyY|(b6|@>U{QXJJ|3z#J{8qbA=gT77`SXTy>&95CJLXu`g@FOsk2?QmS z+?aG#(Z37J0%#XBxm0oNB|~0Qvd*&se%)@DmQXTbTu#7!0IJ2+2wuY38|3-TjEs`S zYCthn{x;5y-1dHhcUhDJmExl#8X`_F-ZaUJ|HSI?TJ#7?{>mI2ZL@4M;Lm%)9lDzuMRrKD>*toxC7P8)lc6mw5qkr?jNR6Z>o5c{@0Iszah12xahaLE zBqQdNJk8$3W!>8PgrhGDP!SUhE!i$2%`2ey{&2dw2yDXMcM!{>FBx^bGMKW>vhiy4bDuL&c#vPH^YXH0nh>q`Bv8825D8taRDRA_Bzl4p4X_Fx$TH$ zE@SrGX=7IuH6FusYomJASl|(|8C`C6x?yIE23u-HJGkP(jtkfm(RBk%I%RpVD&tiB zESBIm)*%NBX86zjd{ypt>rK*)1LaE%SP!!v7t;tU1-PcF&S)f*^lSukvyg51xxc+U zv>Rr@Qx*b8ddu5W&@t}SKIok1Mse#4q{iE7S+zE0p<$Z2F3%b#Ht}pH@k!9@*~6{D zv@PAx)uX+d=J8kn+?cYzx~@Xr!I==;$gYG0e_rjU*V!xKgHf6YcJrnniX{zS{3>P| z(sJJwPD1&c_(L%w9&M<^+KP%2vtk=Yn&BFRbOAxSb>Ey+BPg-SRT?_x%j;3OR8WVl zg0dqXzka3G?AoVlg|uF}_pC1wU)x(XJ>m>+tX`2|vuC|cN5^%uY{O4^ZH-rYZl6)> zgI+BqEn&Y%h}DejES92|hwSeY?=3uNqhg;b@o6>*$qlQ`E?;YGA1%X6p_f5B@yKjg zd3T|Z(p<-cBs$)wzpN_E!LdZFj_M`jFkQw`A1#+ZJ4D7CtCI#sRinVf>rnGO)X^cO z^@i5jXIt?OnFK9hIDKI|q<&Nf1&Kuz-Xc3O#6gBgkUnJZ%u;BP_-hLh!cDk^jwL$g zC8{Z-6Wv~70kH=^wIDl>3U5vpCqkDltuuS&rY*mkAI`gM=$-bbEW=nVc^aN(8rW{0 zUw;y2Id7`9EJpCZI560&V3J8qEq$6_)Hyg(QPi!ET4#}0hw%kk>;;ODU&%R1zfAJU z{<>PKB8k+SRr_T}n_Pcj5VNd!#1#7%dwUFoYywy+QIQ95_ddtCM09smWjRQ|I#s_O z=$T+Q!CXl8{v3mWe$u2ho26dXr9PR`%^CXi(L+p4nTD^C75GolOmPtU%ZOpz$Z_jU z1dl^)g&gswTvA9;0!6{ZX1}xGuw{Lb<7l>3&UK1cb!`%-dCmZquKq}Z;yttB4u=Zz z3Hu{4geogP&-t`YXu|4JSgp5D%t-CE=z2Gt-#9_YufNX9o|;;JTJ=1IapdPnHTq^w zUSFz2u@GTh$1PPNbGD@&QxCj0Wt}?h1)Az8!ql&ZZ&FUFv+?DLkI69z6>uT=X(~uj z%Qx};vI1|gr#Kj9=@xoJT+1ktxi!Q^ldDCKm-;F@G4n?nlf!FfvV*l3Ne(|bt`x5O{k`uDl+nt~>@*-sP%Hp>!6jqg! z6f%v^bMiB}UvG#RK*Ln4CmNFc=<7Fd4YSGW@#M{_An;Oiwq1^eJ|YPgXTe3G;U25bUSw;d^Xn=QzREG;BZ;0^;E|{7*JREwcF;q`n zD{!?Y!DM{gD@F^iZ+s=?VHK8Tr(0YG!_Ow0q?#WqNEA?IF@Q<-#UIgX0sZb zmx*wP2Sxk1cqGk8u#`MU1IbVV-nf`tkxV`UR_?Zo9T=^tf-*inehrIv>97wRp6M-5 z>`M*GMA0d;@Z4JARdWP2b?)#W@*Tq_s zCjm}bqK@$!32}~UOl*VQ4>C zMx4YRtbo_#Ekg%bbol~Q7+qe3GDZ4O%Hy4C&6OeQ z5X&_kp4(#h6^V^uX%W}8_AM2={NQ`5Zc z>o3kto9CCA=Q-QgHm&BH1T4hBEVM9*P86AC7ps^uDJk=>mlj<@?^~;AMIimCOR!A# zlK*JjNf>dUbehDLv(zXtCo$h~7pR7-w&IrSR2DY+S^gOz-D|am%QpCcF0z#jtlPVi zq}fq!g6gPc4g?j))OJdlzDs|lGAKECCf50509>X|bGDE1^)7Eg+(R@@L4n*gR-8H` zwmt&6S2`u>A23TB>*RsPg*atFCzIgL*dVD%x&t}6U-R&~CBw2f8BS|GYBg~Dp~-Qb=i0MqN-7d0ij!5E#CcuFrsOUO^7hnHFdJ^JGwTKlxCB zCeJ&GjYyX;hDWI~7e)JqIYyo0`n;6@fxwpxSe>?vjj zlUfOE|E7Vi3gN%vr4`xtaV5~iDc)~36pjEFfC<&jqiW#&qEPQ7ccF*rG$6y zg4yWy9WQ_m2T2aO#{u(V4i8|)3?x+_C95A4oOiNY><%Ua;HAX~4Mv9lQjG#8*(H-T zFA*AI?O!eEqNexk=5|`5_j_{cbdfk&dSf)q#;_&%&+ntfK+(IIZKpx6de#RD_Y zJeLei367=SJC+a5oF#9;HOaMztp`>3Z~PCo>&r2u_&whS?ET0@a2NbPuq%z-Iu*&l zu(-C%${*$HJ2!tgT*&W{bmP>gsqXs4aXJv!I5;luo%`C;FK}3A{tvs5G5_N#qrM#j zknJOHujuI}mn`1908;rnYvTn8rWLwZv$peP9EY!})%p5`Ysb~yv9t|A)q{2bKYsZ; zC*4rjzlOWu)P074zX?});|xa7Lu&gNhw@pJZC$OeZ@6JxAcqg(o^*=3`SyX^3O&ua z3F@PztGqh%JM_sYn+U4L6Wb44prH_(((jjYnbcu?J?F-I-sMKB$E%w~3eo<~-GP^R zY!}%4vfwDY#|gswE59Abnd%Fj8|`Tnn6rB=r86%#y;6#Rsc)Cy?dNR0OHVF*FY0Z? z1yJnS?=HeIB>1e)A>zB8Io863XeVCj?Ey~zoB8se)3qdzvjs74ICq*+Qhc{>rmtgi Kt>o(MhyM#1@}8>z diff --git a/documentation/onboard-dpg-in-sdkautomation/imgs/integrate-dpg-and-apiview.png b/documentation/onboard-dpg-in-sdkautomation/imgs/integrate-dpg-and-apiview.png deleted file mode 100644 index b588779f696a716c7393c4a71722d4bf9a36f19d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86897 zcmeFZ1zc5IyDmOiq@oCdNJt1Gpfu8{l!SDHD9sWU-5_Csgf!A1DJdn5f=Y;l(%mT` zh?D}}u~-W?JHB(y{m#DMckciG`LQ=^&NarEBi?x4=Y6M-l@(=99;Y}CLC{Ir>yoMv z1Vca&ra2xCxMMtLV+H9xTBP|Bf`}TZerBM*f=;c za7!|9ahcc~y1;E%ZLOTl;nv_9e2K6zft$fiO;8QEIJmf2Ie1vPc+@!r7`U%;@PYsF zaItY-;nYR7H#9f3MvunB#sLOk(&pr3;JyYvDZs6rT)|&ge%@QWSD3-4tG2dQrdp;( z@^D86E@>WaJ~nP%WEc7C>NgY^xFo=5E4Za8_#jNP+vH@*_xv6nj(zA27vA0mIC``0yi|bH$;Hp;pkoAM7SCwT1n3?EW zNLbrTX_^?L#;`U7b3NEvWw0@=|R?`6 z9ESGxHZH$!W@ck`xJcAswqPB<8y$H=&DhZD&v&)pCXN=Uw){Nk=^3&&&Ao$$_YK_RbxjRd(?D}>^YEv12uF)SfLtlUjrKJ z2nQ0UU}$7&rEKE>cSPy0k&UCH4FYV&VS}qyaC4+$J0ds#=q}qhIa=VEjJ%pcG1eqjlOjGO%o1pSsYOUUUakn&VC-+jU!w4uMk&P zxZ@FN1y@L6MT)s8`23r!A}4lXZK=_R z&vj^$504c!DRi$tXv!~HIvD#uQy%n+jwp|Wy{Vxi(ow3p7@C`#0zKkTR{fJQ{brt! zN91AwcQjSAH9Rm6F2EiAUP(~BkJ?MLN%`N|GPEf@HqY- z*N8*$|D8&pA>tkNi0G=@!_gA!XmKFHlJY=$uL9QyAOX^{15t+Cnj#JM|2To> zIuzc2i9n+f$&tO&0Z{M2r~kh$m%WREg}+|qv%AbSfNgpm`#;QyH?2NA!O zgpCzI*GP!Z&B4KM2%;|TYi8iNNA8;){DAuoj`lW|039Fc!NYgZ12u>L7AD~O6Gr|s zNCtC6J?SVW;QS+=`e(upfy1!qUmMi{ZTlYulMij}w6A%zcjPjd08(IUhh{MSN zIRL7!wW$mE44AQlCnLZ84@N^j8ZZODbpapMkgy18CXcxK|1CWK2Pp=P8XOS|DdeI3!|g?``d=R| z@gD~DM>pkg}bMGsi*PbJSuum{|S?0{UNw=l`Jp|6UZp{Rd{?7w`SA5%qr$ zxBEX01#ohpwc)6W2>jc^reD)Jq9IpJkjjAetp@;MR5fv?`wR( zhaGrYTe$OqYW+jw{(rmf@E!Wee~s?&qs-8eL;C-aUE)1VM;+plKL;oLe-WD;I_1Mi z@}B`EoFJomfIyDy>;dTe0~aQH$c1r8gEXY6i;exC9RtW$fCSIcl!qZY7h()TPCyU; zIZ1+mo0uRIUDrVP33oR%I!JmUagQyM=03>u@LXfykpy>;;1#q%=53I=^ZRho+6M4+ z0977|InlRJtNU*SkGzMQ|BsL77wvu&ApI@pa~OXfIiJ5(^8dYv{Ew1<7^WXFDu!`1?=f%Aah}|Iam}@_fJe%A=@> zlk;yUPyWk+1t%KC{d)qpe~Mc^=!7hF(D{v#Mqd7wF+R9LTKWHwaQI!ocgQ0jJ(qtY zn&td6$?y-d00)H(z-Jz*1Nl4M^cL&&i37O^)p2|4<6+R}swr z8B2&(!K0S&7ytBcpuP^B;}Io1Lc^n=-Vv(Z3|U17)bT$h$^U=^|L>*4c?5o6JH+!> zbogNqa}@0T6U;BLJiirD9@x(#rKpES^{~kG@ETn#%q`{G&v+7oXdzk2tLm->ONqx4 zf_r{8iE%f!_CGDkY#>#Ao_;+;bu)vGS?5wfGAQ9qjZ9Wf{Ukm3;3JnT{ER9Iv!0|b zURX@CsB!D=t>ks@f-#=iIFC8&j=L*!H3qd@4#{)EW9y<#twUQ0>j`AfB?WywK15ya zTdecNoHI2sA-Qq=I=_CZbT zi(~k<(3Lek^Yqq}^z;kqSy@vD-0HW?gDUf6cFu5kod!w|PwuJcheM7@T``^d4Ftd6-- z^eCThNc@x@S~^MV)7BqyLYUSL|CpV~y9qG)u)cctO6%#3Sh^>Uu#rM49%ZRFnm$j` zEA}3VtzB$qsT--1!jh~D2Gis6yZ@vppw&yQJ4|kzbUMW_9mnQ=g*UVs-Ck98Rf*{V z9wRM0aF{^Y?)L78%h=6g*@%mb1VMA3G}vG7783-848PKtcBZF=ufLGFfY@K_8lk&Q z6j~~^uUt{CUuj=UaE{;BKw4V*(}M>O-ZIEV_7|FWBxOTMA-l8L*mSosVd1<#1t-3B zHa>l*1bw7{lssf{S7AQp`F?B|w#+_OP?Osxm(Lv3S}OXQpw0y18M)_)E$#;K>1<7( z`Pl`nV10z@c-bk)aK}j@8+W_>*G~&sqoBg&Q_yqFl=9b6v-J^U-@A-NK7IGZ@d@^- z>Egz&!`7@>hgu0f%8v|mtgp{^JcU*p*1~kzuvV=L))tFc!^^HO&(=(}V_dodRl2Z$mD(>L;u)#au?PJsrXswlwRta*3evKuI=5|c{Zz-Uattn z$)OLd=hO97y;^isxrPHC$6gFju8BH7gmL@0Pc@W)JI;AouPFi%!)5h4y<*y;IIHRgQ(CdSKfOo>maS#uN8BaX`0pb(%}cnpbnPii78I*tWET8p+~8~Y z39nZTr_b+GrwOZEAOHBqG$dQU zXlzR5)^S%eGpKl#&PN7Ay^u_~G^VySgmGq#!^h8FcIZd%6$frh_c+A#%OJaqhQxD} z7~4?YK(D%~L04MRr15N|y_hF9V zuN{Eq{duQaz3JZsL+;wIx3|Ly10e4(?jKXKgPMAs5}cE9DX;St$Qqc+w=0`EtjOsn zt2p=V&1a{L`rz@FFh+`h)cLehWvk|grZ0L5+OooUw-!|7F6dM%g{TfP zDJKM&Ju|tebFE=6()NSDihJx#dWCCvShp_va|+uKwS zcev*iy|IHVWuLZv>naU)kWdF5d|mRQ=h)n{6@_HKs@2$YyO)4RtUPvoaF>#JM?OB+ z%d9X?m%OBp<=EE?hy;QucGrLoy=WE=p*Jt>hAYH(KIE=CSbN&OKka?W-aX`XzW~ER za4An&=EdA<5g+oHN=@Ni?9mV3gF4^dYEIaka_oQ6%Widi%=NN-)2&Vti57}1ArV8yWwsmB z9uU{6ZD83KpUt7lL!U91gKhKJ zPv19rRDGoGEQi8mI=IwJAJ9Y&ywLtenmK%m&ZB^Jid|5vF`#48k-a+S;YUrJw{aHQ+IV8=@FF!b8EJAsQW7x5eT zM~zA@L?oHDI)9Tq^Y|6|A@7hVooDG>_zr^bwA(5QJ65D-Srr69UuOeLD|zXr8yL$= zRhXC(S*&PEEE8JxKi%{^W_XxDZDtlc*~DYs>J^^P z-r1P#tYl}mN0p@&uSaRjuNb>FtkP(V449ZQFu_PJDvH=wMZCVU^ZC@40wqIM1_L}H zD#dep-&8SsoLHctMIqW_f?c=3&^Y?-&C>!>E!jMZL|kf80>+Q>D1G3)8^f#O_2Yw= zqj{_?GnsG;oD^%C;uQ#nnzMx)wa-G_Li$th%!Q3vljf2~`bs(D-?kEEO;i{JTMm+4 z=99&eAB>@zc4sA3^tG3MWC?p8!^QU@oTT7tnveb4hwQPuWr>Tc{HE`hn1&i#=^1)! zx9Jd`qI}NEK`|mTBrK->1LBQyH-4_t;3Q3^V%e`_G_i9hCY+wtHW^Mx%F=VApgHGJ znbEe^`r$2@?BZ!$skFSo??JJ4&2thwzEPhtrbgE`lwA5V3Z4tKeU>Gf5QK8@~U zcj#+`0{V^0$8{KQNz~uKUwJ4bE->Rt>O%@KJ!rk7@+d~Yi1a}bhrA4Y(#XCA$6JLv z_l;Jd@^L2XQN`CP`%DjNo_=ju&@ekySr+m&&g}6yF^6Sp)1_gnI@b#70JS(a&Xdul zDmepuB(#c)Dy{rcO>o@+&R7*qrnud~K5#a%)mH=(TNmsUZB+AO7FeE_u8BT5Ul2HC ziVz+@O>4%mbJr$4*eQXHt+CA;3dNn8UD4(m?>Ah#BFYq*lpefg_c=**UYFSIG!_s7 zv4AD#^7J-qkyO`&0~8_V{yMYm_1yf5IPth6C%0Gvmqrl=5SNpJ=Y7s!AB5qlX*{kw zhJ-~p_tV?Nye6vkI!Q%0-9&Xd%}NN?xX;PPCqquvc+;`~lZ@4cmhLpMd%DOEzG*V( zG~?c^$CK$KJ&}{6hE%{{q!{ixmg8w-MZz6=l|xGfa>aTmstM;GEkF0YH0u;|=@rqq zSKZhuB*rGrf{iW|yb z4|1#0?RgO15YY5UECuiJ_{VxHtI_Zxu_=po%+uv~3s)Y(Ey3CAxrFr9*P7gPI|Xft zdEE46Bf%hARk;0Wuiqfo%;?Oq_%CS>Cd(H3(!340sm;H8m9KzU&lZW)ch_wBp#8a| zo5sC}fQ?(z<;tvtz8u8bq4yFVoeX>=5YT*g_mtQ<>2>w_tsB$M&*;jJVeBy!%gT^& zoG36(OHt_`?kjTp?u9{e)7)FnRH?KyiOCw_VKT`=x8f?wZ2X+aLpyID>Nw=X)iCO) zD7JHn+d1ZnyZWUYTj?MbBY0KU^Sk+^6H`hws#{XXo%SA~6bw zPhV?cn7V}P(|4lWNDf21KCqliMJVrOql=Ev9!*KH({Ole(0PVX)w1T6%$wNbR8SLC zV{J+e0CzETQD?(kXP{97xqW|x-ZcF%g@y` z;yh4w-sZ@i28lH@=LowIvzI-!R6#c~AYdvkL!}&JlZ);=w_cobSpViqR7iugBzGt8 zm#V<{v77Twb6Zk6hzPL5rx^4gNZeTUV-APFeXHlh@u z!WSzk0fI#u#{>gD!C<9})4QFL})ka)uZ6v&`d2#oiNxSF!Rw-&C zDHhn(iy(SERd}ki5qAVH1s5{=$b?C9$?S2(qqd0B{4x_?qjyh()W~9vrIF2$ifuKn zQdm!>n%E`|Q$cKH(|&z3QSc9}h*py#g5Cx-xOPl^YGK03@jHtdbG!R}n$pXNx|;MI zB>44+Nt|5QW^y1AE*pv{Re2`}(}s_%WBJfQI644x7}*;RSiZD$pcYwp?BXPEaC7;R z)s3!VB__l&hNorE92>&w%gNp?X17+_BzE}vmoK4<*0OrH`5)zwdiOrxaj_hv$4Qe1r+oy=FWy8NmMa2+%3P+6sg(1FP z#|44j%duZ0c+JxKy%gy|T#>CWh5@m&HcKI9_L;x- zJEKiQbcSR~Fr^T~ibctTiecTd=;Kq1_euK=mRh zamzIVZcHiA(@eGq+wRxxXfzkbq9_wmc^e!uKsbyzX#3k zxB}lDg>KP=T)9%@lh(=wZpJLFohoq^mQkrvZqrX>U+F%;|Hf>+<<5+V6gz(Y%S?xd z;tSQt3V_{Of*}$Cuh~J7mj22CpEV9*>8tjSvkz8c*1YY0CV;i0Z1#zML7-4#X%TCy zT)0pr=ZE(r8J;46xm2xjIV3(l>G{ydYo78Py{Xt~?S#gkrX*<{k>^vid3A8tBXos; z4?~Vsid~ug=Sde2t1VC2_~okUbf0^%XYfrn+eb;xB;su!n0Ilc3#6L|`W7lA-$`mx z=cP`wv|(OfFcy-zs7X|K7HJ>%&coM3ZefkE!tw3RWe4w_=nwfU5q1pU>|)0sTP3fM zVj%m7G+krrOL+KIXEQzjxg;$OEO4c1QZwIE7B*!$@txP&Z>~fGz_PEj;&y?- zZ~d31W;bvz84&ujJ`gJ@S*>``hOb>EiB&@jEG7)FS8rT!vz6$dza_~*gEUup@z>+E z3}?vuWC!Wel1Vbq_qP>*ljP>o8v~Da+G65I6U9vY7_xfx0|RS{vhh?NQk;(ucvF9I z2zYZC^hsLd`k+-e`Efv29#FF|a2BN3<0f8!BiI*J#zMnDLK0YbS<3B`dKuwmh0pr# zqj_A~3UJi*GnAhP84%Ad7R((Ej)V%=um(e#N-;Sw0h!m@nnf))R0&kH@AhDw&F3K`2(wstSb7o`3f<1zi_gSEKSdm?1{}wFw7P4-W&CkH$O+2B zwWac*(q!6Qa)N>}(lN>K#?>HzNX+i?o~XMHC1P;kH*rhVO8vN3Yp9G@87x~8JBz7*B&jdt`VM|iSfB78sD^D`<<37@mD6aDHI((>1FSe`z zdIYm*DT&8u#VI7OBZOMVHA;(J@?;M8OtP*KYy&mB$YyjN$wCPNjY zh^P%G^2;A)*$`d%9gNz2`lo=iJge8)D6!DgPwAUVe3(O^1@pPvboC}=iE+*mzlh&Q z9wV=`*s8`XaA+<8=Jb?T@u~g#n=6ZPkD|8|;j%;KP)v~;(P8gG0c3X}fAXT*N?sD% zkwJmp$azgD5y~r!Qyyw*u9P35gfuZ-8>=!OM(L#0*ttilZUx*WV&X!J3E`oxoQEQd zXQTZqQ>RH5xF8Kk*mC)FEu}c7B|QcoV>+z4us7ch6UIlcZ=?9E;-o%rq42yHfiVA)SE7UiH`KqOThYQUAcGh? z4xBn#XwCY@dn^u&x{u8^NxFx*C}6xC8p&>#A^3c-%4ba=rc>fNyyoAEbkF~`O(rKQ z%!eXP9j<5ndi=N|2s7KsPOS{^nhqp<%DVFqeI5ytz%nIZ)LT)yMA(-*Shg;zZQ(-_f1fETfjEZtHf9AhuM~ynb~iyExw#bM5I>0hbpY^IDopS31Bl4p6QH^j4VCR zz>v|tIw9O6%MgAnh=S)h=ug?z)zuL=?abtie#UB)&s0XRT56)8(`Qbn&+636>5~ww z)_p@TAv&7(hFS)}yaLbF0}EYe2~&JpHu(7QV@sEnVe%KuDleKIEVECm!)IEexIyMj z_f|Zy)!5DBs8k-UIMz8Ie7vMUxJiyjj*ibf?S<_p-w ze|!7}mCM9q!;q1u>?_X5$moIh=IPin=WK=&YuC7Pg2|=7M4V@Qfg5n(LmmYBq-C&* zitaZT+^jy$!$VOpai(U@KA_a7AwY(kn>!He3v-SR+OI50)P3s2p=D%bY!WR!BP)LF z-Mg5H#c!PFl+AJ!4%*P#ALHLUo0QIK-(>bGOn&gIR60J&sGLK}PfB}GS?2Y@)cmF% z1LU^(TLX_Yzw*=Hx;C9PwOXk@@L*Eg*Fjr)j+@prAjbdk?I9h?MB<48FSts+cb5+R32+X)_w^Al4wQ0L(x^>l212R0@Se%aFP-(c(9Ij9z|Q(IfgmPu zvOVNmru-mXE$*4uDDh?oZC`!td|8I{`5G=vWCw@pOG_MDicMaabBY@I|f z8i0}Ag5}N*g5=@>>xJ5-dq~f%P?aO}9E^OmA-4tPJ*}i^b2664yni+n8opf}_4qQ8 z?7e^W<(;07FK&sQAmgCDJpxqZVfm;#{z#S6dUpH9V&9Z6E_Gc?)a9_m#Nf|8xl@lB zlj@xMZqBKROuX6-WPc?dNXkk`Lt}GIRzcw%GRu9|z_ot0eNW&;wti*tf?xf8++*Yp^f`4QTRSQs_YBf+S+Hz~wPp6kIN&(Y!5R^_z#F-PNa&9_c@i=ndord0;S z#FCDP9!m1Mu~Ib$XWJ7ku@LLCZ6L+ne{4l;f17@Pd+JoFWgkI?T+|zorM60c(uWu- zYcuiL-(6RV5O809*=M_u@iflkmfOr3;f-!Je&;2!c7eHb3dy2W8S+mXcjl5qfPtDU z{=mk4kIQCMSZ(f^gr7ntQn8qBz1o%CYZui1*`6q*lC7FSoV>TY-XYDFtC=4l6-XK@ z#vRyK>*2CARQ~0G57&NoxB9Tl*j;JT*kurWTPg(E+1YJ_4#9-8)6+4V!aLIu(ka^P zKZW6)7w8{FW`n%G@rP*Ei#Yo`!F;3Q($bG6xa}q-NiM0+lPInTuZMGey}j4!s2b@Y zPnqoWW4Sy{F;S3A)UzU;wOj1WH(`{#>Yeu2g;QR!2#q}rtW!?Y6K1V~g!k4eCNVvg z+mnI8w}%}%M6`>Humv6GZ*$!u$t-CX#HZx5zB1WW?P5bO6Tzs&OU~7DdggJl)@!f3 z^!mGErnc|H8DhB2+nG6$We(SeK#heR*vdF&39W@sX}ATi_uc6&_kL{gsXaGt465(Z zx)n@mQ$qyoA&mQRi0F4Fuk8t3dh@6H_K%5DK+yxad6HWuQG0K`Ui_D$yOFAL>Yxgu z$nY%=y#|$#^A&Qg{jL2UUnmFChohKOV2MI5yd7z~l@0;H!6MnLZnApr?o~uR_i<0f zeIL#UE-Emn9W)s<>qtVFbg8LiwndAnkwhM-x_Bs_WPa%g&;;pojZdgNbm2ch@xrHc zSz@cf(qlje&Vy9^?P7VBUFTM1&q~X=eWka_0*k{S? zjCbbKLKKG1vKv^Xw>2>HwF0h)w}c>IVs~f##%7V}hiGXmotOsW*TO*9rDK$|fbIC6 zopJ|lJY;F_WGojoQNIPH2>1AaK9zQEE|-r@f>Y<|a@7~_V2J|RBql|YY?U-=a=T~O zZNGn6D(T?8HpzyFOaSYrcyD*ctlSHza|9Q>5;K)hH6><3ukbd;CCxmGY0HT>4=uVf zgW+#$w?+ex5noIJr3=zu$=>d5jfK3l?2F5z$>MiAS>oKw7+z#SHqPZwA$g8x{5-ASdYcKr*Cb`pjF3}~9>Um9aZ2d^JOMH&N zOTA15azHldw=-E@(J||Qj@)UHawkg zH}oUv*xG-BlTyeGKHZ%me|Bl?^%x!vpRn!mXv^~b{U0_Z(ZTjwxtgr>`jORhNggZd z_4OxlhsW!j%p+L}h|?5QxMFWweoXNV<1m}2_FTQXe%EYt|NA0)#G2)3P38N2JKd)P zyar7QI(-EirG8ppa{F zveUYJubl52H3pwJCGw4M+o0l-Mh+SC%oBA*OzwSPi5i=U@wr{~bDOpr!+LUGyt*8fc`vQfDj<|MD*jMLql&nKl!Rb zMZ(obplsH|RMd($Saf}GssD0-EXrYN0~cRUXF26A(DvcPd6!5o<0cj=J{At+<{;`U zr^ViU%TeQ|r>DezER~d51*f+~kEEucQ3AkHq!$XE3!E1^GiG_tw-&5zQ0PCE2{WEZ zuEYr;=X*8zKrJOpPm8qOS#I!+?5z$Y_Q4>+;{jOY`Qt@53{Z%KPbQ~v;Q&ApVt|-x5VCoG+yWjL9849JkRa^(=E1Rt%lGxeuU9xgFhYzp^gbp5+9>Uo>C~> za!6HG_45gug4ojQH2rDP!PoBG$>}YYa+kT}g#sSQ$0Q$?V(`;5GsCY|J1@5@-nhY< zldYQEB-?K@9%&&b*D~R@K8v^kDi;ZE%k)BB-P&_0Ci^(^}>&9 z9SjRttn(?iR!5Zs5-dS(txGFF9ev*usLT4Xr_1cor30@5Nm9^zMG^$a)!V~M?oZR( z3PjQ>P+}@srvx-j3}bM~SvI~+P;vr&cH${OxL{J9)Ehv?KAj409}XA{!?7+W+$mdYK{_mDpuFTJIx}V z;3<=ZmqEVjhuq9)g5tPB9g>8ZyY>79` z&gp0AZD)0>4r@N?kd>hK1V02SGawAaI}bSo!pC6dVf~g##?h$EJbI!0$V!2{`rore z;A)->5K5)SJuK*U%9(9C#>l2elIgL$enGxJFoIwlSap&R8(bcTgS5^Tnxg8|3{W~|Gt8DuJbc4R1+wey!=j42yO&pE(w~2$50j zw5g#ZU$Fgv9U;SPEnCJ39q&yz0nK1AeV7dr)x3;88FA!fFt)7Xi>(M2)PFsG_?U%z zH~Cb($WSIrJok6?{KFGFFqGW1F^DN^)fLhnUEaBGxgd3p(jBBh6u|TyDC@%*e)iI; zeL?-DBzisiSg9(5cbXa-o!Qkg6|yjK3DnzKTNS!(3mJX4x3|-fb*IHHUq(xTNm+or z%FNRP=Mil>1Awi5pAZjY|OdJbfEI)vsZm$eiHeI|C7fF2f?AC$l zIP;wA*U=Lx((0x!2c@T{V=oWB6cXa$dHGzD^{X^1HX8%O%xaC>dRb;x79VaQ{a4** z{%AQ$8OKV!HW(fr&I|f=lZz%~31&-j`2xIpo`=WD*xmiRTi7r`0~>k|UY)kBDYcU; z1!zztQ!%k6Em8fPc#75w1HZ1$&P;etH%4OiMU>9D-T=l=Q;3t(ZW)AdQ#=fxH)0C+ z9wuDM2W7dlApTmkbhx)%EsufnBv}4PzJ!<8S>4|L>o@?rBm{))8pg!1`#2{BdF>|O zWfhl{@XR41L{-R8=TXl94EU68S!rphU|SpyKAThzwLL8GEW31;Vq$3->-6-7_<@}I z+7bcR&;U5GftQwAshQGmd1~%$=_`h59{Q1S5h)%NL*nmq7Y}LWr@>FZUm4voCf^t` zZqG!~N0==NQ7A|($%c{j^G!sl)JlIVpS`T!D}P5{l;OA!tjxLY*iXGAfSTB-7(8&a zpKbsfGqOkXDgSAyl;ak&D@u82fH(BS%KWe_0rWokmGTAjs(=FHiyDiZzYc`^DlGR` ztN~hmuvSqX1xCe9LbeaJ$@~w2P%?{d(C1|DMZ!moU^4 zY-E5zt$S>hpvy{-X1?w-Aj8-N9(&(6T*rNJ3+-p*x>k-*AbxpyEF^6DWXFyj%iK?u z3Y-kMTu=w9^X-r{z?Zvg4QJ;;xGu{=*0C~DeX{)8!{cZ8dHaIHd0!Ldz)(kphqU(3 zN~~Y+IqQQMjf~6WdXkHZnQM(|rTvWO^PZpbZl5IpnYY$=%Ntu^@J?Sr@bt6^y+LFe zi2BaD4BO$BS&sySGssiGhsqF??ZWE{>%-u61LNuDux)_oZFgp#CetB)?tSrITgXa| z`*N1~bWB7RNXdmz^`IzTLIJRSqTe*E;d(FcoLQ+_WJ~bg-;ve_!Hff4m-DxIm52r1 zDo5rVz(nL0R2}!;UBitbn)+!|z0A8b`0|6va{?OCAYQ~^jKTm=x>XPbPknqQ@mw>X z0=)e25QMQ)vF1tjfOJuq%{6X%;<{ASq$ue%70hP@^!vG9Ih*LtH1UaZ{2zDS_IG!- zL9}N#6QyOexisJ(7`U$eTIdnzbzW4ITF7NZ60k3dp5N9x#L~dv!jwxF;0`xAjNaj~ z=$7K$y1UUM+qv0DX)~UkmGlN|S#YuGhwtLM-=4}1!XBxfLCZ4)5ZI~2NWDQOm0(J~ z#>+2ij7-|@x_<)%4PWXv5O+{Kv+PVirdwtOFPQme3Ih1m=?JB`RuYDwvDbiYQATnX zqPsu0*QSb0-k)xb<;Kkm8OX7DwbMAfXaMGI%w<3#McVswF4;S-m6Y4)B*m3Fz?4}? zwyW(`qIeEU?A1Zb7d)}TT6Q-=s<;pZUu*`78?I9^L{2ucj7-0e2(D4>Zx>u-p|P0r z&Q53bmaalM@jBFTnHqF9^62B9qL#F>T9WN_{=ixu1HY!oSqxaby5z`3~DDbGFuIIJt-PphXH5T2U=1GZ+gzO!4V;LnSmi`q9jXr${cytc~K~$B0t9I~4!}T~|`#Bfn~(_v{+>(nxjRb;?CNldw|k z@XXJr58{JDA>jdRB4a_DAGJw)qh(ZSNwg`o7u%W`eUy@`$?D^2kJc((; z+!}T`MarV>^XMeytbj<%f{_^sb8IWAs(xRd&i$=1?=h3_uYRluk+2&K<4$J1R!6=G zl5_pQ7tz9i_41rguSpNKF9q+ZsHF#|zFTPD-}@2Y0r058Y*42(vtEsBkq&;7{lvqw zafxv(tq)Y}?awNPu<4bZ;5KVzDlBEVc+ov?tX9>UH^s^>pu4s({~+97aUAm>uX+?) z3j}O(Dnv}wlpcot#ByTP>j#3yUw#mVBY!B3!pOb4IUiVRHzAV6RY~q+`8JLhamV24 zRrpjUredx=H-?Lv>JtO69aDYpy$!RRNVUg+v3(P8<}wFj@QN_l0<#$l43wXOXZyw?YTUE(ZW=Q~z(Exdf z7JZjbQfCwC5V!>AILHOf7FS;X^rCt0@k%|m%;&Z`8a@#L#5OA-vqOjYvGt`XzkKvg zCU0eQ;J_7tM-%KYF|#Bpt%Cx0W3#8EalF0&oBIZsfqLfmsu^;?x%Mn^h=96*V+l_( zrtQ}2K}4Y z2?0-g(&$Qiu5RaSji^Q-3M~mEIeEAv^6ezE#6e)zgHu2v^b2S8LS}sHH`-g6Z#Lk< zBEAF6W~GYdDXnh&^KC9 zt34NM#6s<=o9N(|uXoH-qo#D7fpDX0-W3XYB zmSB7q@1J|+0ypY6D2Tk15`T!?5#Dla4n051#6~UG@nT1`40tEfdCrwi(&h>V1omeF zG=dw4U@Ghg&-I^610`((DW0ELL-dTug`8Q+tOoAAk6=vx##5r~=_C_%NuyP$Z@XA$ zWq*22t#w!5{yoD*J*ffan^jk+y?5=_-{_g;S9pAjP!i?zo_)E?t;8`Nn>q|{Is5hE zg$prf7rx@LP=6D3S<&y#*Xz^&5R`JcYqMSGOH5Uzd=&0SZbh@7O!C6_0{q^tXVeM{ z2F^t%IkXEfp6shJ@cM9n#7$g;AzDX9D>In$YoTkBb6pn|(nliAY&Rbu@rA()bhA{B zCft_2ERpQDM&E@Abu~W4=eBI#`m`ohC(LF!`R?)fPCg3~hydo=Hz?=?NF%g+HYS!Q z1%T?=?PKY`ASB4n1ZSNYzPmM|U2O7LKrkS+QOhwwaga&otiG-9`&P~_>4_;>Nd74s z53DibBoljHpbqD&D_hU}sJR%=D?57auE`)1DQ)q5d>xq=zFIIFyd@^uUg4$2l`>47 zw!IX|$XHmBNxm~$4nlJBwFx_|$aerP#2Xhdc}5BxCpKLHNg*DX?0I{3H(AP%v{YM_ zZ?1LK@`Fst!d?MJ)gD{c-Op9tnlR{)37ztr`^lVPB4FO0Ae@01dv(_W$pC6o4@iAV z0z*PP{Nn;zRRb)jG`reR%rv2lm%j!pm>h!;qr?g7i6_v(*oGl(iByZV$8M`8Vryh+=R!{1NMSw5(#>}Z&yEzx7!&(#JX{Bpq zm-mw&lGlTGAIC$)_UjPkBWC=ZIHWDy9X6)U9mw3kd$G7~UX=*f45b5Lv-zdKaJS$AieKc!5RKP%z15xZ?h6^gmhYGhBdL=@>t5(E1+-SId63Yw zoRJE)TO+|PU<6fvt&NDm()Z`)S1z?G=Ig#}F)1286}{zX244xrlL{c=ob%;+>)c3g zoeS4c~yVZc!U-4z$u{aw>Q+R0_ZU<<*aN6Jnj_ zX8@Hx%1XZ>cE~6|AjLC9!5MIxp-F>D1RzYmu!{v+KL9FHTw*fC@fW(`U_R)+xdi7@ zZjCA8SbTTmc;rb?pkFLQKDnV^(&%K+x}T^x7<0_{V(l z!v5nE>Rz$Dz4iPtcQ5HzZ~&xW*89XRAS|{#J^exnr%zXM0S_Xm?`3B2fZ*{?k1w@; zFJ66b$%ErRDpgTru6(_>8Sl0U5{TAZk@_DRH+&LwXDNgfJ4AusrS2{rU&C80BJF0z@;-(x_uUTIGd=rW2S_RUie%0MfE7h%aN@M8{fdrDO`L=Ca`i$6xrMnH! zRnkJ^;&NVEZLVCDVm#O>LM)idc?8scT~1E-BPi!6QBzY3ypwYUkDj?%!(Q&nALy0l z5cLi8Vc))dK(`A172V3O7u*za@7eSGKNi_sVYoB4uWEuCqMm_JqtonJ-k<1J&I*4G zkE?$!_36vJe=ofIF6iBoESY*(3ji(^X+goz>;td$?nmdK&uWZYg@YGS%X^9S4S!VU zCj0M-!ffvWsnEH9_4n*v=fCA0nE%?_IiZ}kVm>O+BPa&1jsfu=YJ`yy+^&%r%rQG; zfz^qXGg*tPUt{?=LOKuu=Jn!NY{zNazke4u;Zyl^$N=Gm0>%B>R8I!ohu&55Fc8;a zK@#+@-R_`S9>Ddaw~-tB43v#Pr-$PrFj9meWKCDoFWCY$cA=c(NeH#*w)2U<9`7TB zaU(>~SQu3sCY_vfXcBBs1LW+0gH?hUzR@z0s{3I!!AnCPtv7W5=L(q9Mv9Zy1lP`| z{*ibDr8s2x91%4bg)=o0pr(-l`t+Mf7KHJblMvc>jI;#&HTv`l!Mo zLRi!4t(st|ux^uvUv;J_3VPE)z6BP6*IY?BpWkm`f*ZsyT23swxEP7q7ZNpbo-SDn zd!aG!jtBGtx{KVpjz`Nq&oz1jxe;p8w-lpg8ohcD8G zOK+ifhD-tH+ZFDARnAd9OU>E=?~-V~M%tKiC8>er9KI8od(z={i;n_>JwZXvmqv2j z5HjK*V+gx1$K-1?alCQ4(l4lns?O^jEw0i8e^P_cZBfNvrM0v{px?7c-o%&aF)%UG zQ%-QH5H%=Y=)UT@RznXtPY`a>QHx*VT0JrPR*`+B`;hjhg5o~U3C zWdic&53nvg_&nhy%=p%1l&cW;n16%3Al-*k(N!8~rg|6jS;tJ$DxVd-lLMPn?#~rk zb|TU$-^-^jUg}{EKvjp)#sT+ruV-k7isww;98R?XRoEG;H#xV^gM3B0pl@}n8_%=F z#l+M%7X0&+!@z3`=zsYF$U62NTC7R%ZNur$?v9e0$gC>r9959TYc^T9Q_q>bjgR;3 z3DRBGpWe_v*nM9nFuBVXjDDc!y++cNAE0N2hd8>v$`)BZ{34O!Nm{07@F%vuMSqs+ zZx1F>PSY02e(@z*JWb22dEE1)Z{D9pXfwbFMcnvv0N2^&6mv5qE}-zLGo3zIO}0o@ z1xn_vKvFbXi&3&gMU9tC9Q*iH8Iv=3@z&_BpahS1Yd@qrEtAga#G-%R^<{wul;AU zjfb}(>=`1kd?sy;>;n-JHzD?Cg9pwcAC>U=caORa`*a>5c;`~x+lwc9z;1Jh_tB$f zza&{V(3zQ*xpbu$MjQy{a6+aBH3vdFtORCcr%9aD4h*nc$zcmPsC{m}IDQV^rJ@!l zavGna_DS<4CV>&OlQhJlyEW+8t^VL-CGEpp`r><7nmy<&@k8-xxuNCfK~rRSwAiMh zj{}$<(K*-W@V}9!-6GO?xO&3uwt4^Lr(cEh;#hP_$f10yMkji}f%v%;#vMH6lMJnW zI_s8-+60bBcu>6iiys66zv%@)Jj9Lf8Ld>Kg+p3E#dqY_-*9+s3xpZMJROw%c5LvTb{_ zZMRvQZPz>dfABtE&WFxvaL+yWT-Q${iVxb$=v4mCnhz9Uf~3IckAex2N2KSF*5x(d zEc_?grUo&K_=~PU8B#HIcmmZwc4#GYJt*Adp$Wb@*m+ku$hk>S(unOVjKfGdwynQu-xFQCfN& zrTTbIV~%NmQ}lt z>`bo+GA3&1Tj~qkE1jS1Et_n1*7kN-MMef*R!BM$Dk}40@w0R7e=m9NKZt5(7s*X+ zWA}L}5Nx?0kNf+DjfqJ2dj=49b~pL?s1rEZ$A1htaqkrK^5@>QRo0dr&_tX7E+5L(TDKkM$qGMER@S(7CoIW0W3b_wx<9bE^_d4gRj)>BL#(_0k%@A{^k+cvoJcToE^7dH-C1 z>AU&BeVkYwI%~R<>%q_{Wzv1ao5mYyMq9WTDbL{!^Mc8cSh?zVPawu>Uex9 z{@-%P3LFg7WOKC2=kxLMFx6sr?4za&_zrLnopS--(l=z+OZ` z-@WfDh=X{>J9{p_o_%uA|1*TWZK_jk(~@R_M^zLkw$ZI(fVIB5XJy^W!7u;CK_rpZ ze)olaXCv}rfK-N{XU|SIX7m2-C+=iN&oF)$-!G3(7p~rzdbTepsD3H#v-NgmE~uhx z_~Ae2a7ZX9pf=q;2=Y7eO|mX@sjMIv2>i><^rA@|M5OW9r#i3?5_q76a1ll3Qe_;d zZjemfQlckb*o=nNgrvC#E3rZ;lljB>?q0T*_ownU<~>D!VXW1CQd*Sm(Zb!lK5qTZ z-Wi?9t7dq8JmPLKAtgG=*L(z#!TV%A&!B~C;?}X@ zVYMW&Ba}Vp2 zwh8gMB){KViK^9DUy6`gq;Q|wo1aB^TK_62Q)%|BDc!f!nd@}0o>%#?Yj)1f-i|0u zWc6m~?du<9OUWIh#zazfdCf|{ZRkF@!rOgcIVhD4H|KTmja0;!D7jq-%o^>T%@0N~vb)vtO_e9qCa7EQFvM2eg zXuZaS>=$Ath8g1o^`eFhL*c%}Whb3i(>8V)jI-2>Y^F^^*HDeRQkx>fg({Vl%Qwgy zpTS4tdP@e zbJ}n2SNic51?q{uO%0`OKSH1$w+0dIC#4SD6WB(-T`=BQW5?eaiP8}>fT2gK_9OE8 za$NZ={=RK06pi`gx4{=`crqHb?z&;Kl_qkpWouz{Z+Ev@E_ZxDLtduu`m)@7Q14Zv ze-eo56W_L*0?LOsJuu#l+A-4~Ul)q!hcuG=-YN zw1VSq5PmrNU?a>2`{lAb5BhRsUrrX54Co{Qx@RTDey)XmduEJqAdA#Xc1@2a7wx!H z6EoA&4ZL`)b>hU7@1^->sJUUbki$Kyi!nfuDdh5DyGurNq9Z|qF6c@vR_qP-F8Y%) zy~cvH&v(~{-shAvN1G&jpL>e~IVPt*X=yF~3GZ@)fuAW}bJ`i4N7AH5$o>6k_XP}Jj`=iK%b zrQ~?xS}k;pSXxZpeTs=Ww0ZNyE4rd^gMtMZC#ooZYuHQUsB;FTB%x zH|^DxRKgqaG9DmEYdbgv!0^L${b`7bmVW~H|OquJ>)3P zZ<$QAAVsYTp&NF0B-}+!mwU}_Xu&BUt@C~fM++`@dSna-Pr{m9D*sO}Cj;aD070Fd zU!*-dNZl9mn@;$kC3Aw2F`{>rfOevlJR-3Cn^uyq9+#vHok<;ai{8`rbDGs$bIj3b zs#+Sg+Ph;B{5QCGtrf2MQ~f%}j4YlM4w1cb4(HPK&wXj|eJb@;-y?Th?xO>TOWO^iL$@PR)lw{YOsf}*tJzN)zyaei zx2)FnM?Kp(_)@e?yK5durmFmgOeq1zG@-dOdM@WYBpr<^cbtHNU79VOteG?LWLMj2 zAcZqy(}d5mUAxcP|8k%6jqyA-NkuE~&Ff5oE4RTw@q2E82JOB~QKd{H8ZWe>>*0TmE zul>IOVRh|1mZQ9LgVux7V?Wa}Q-Oq_%rI@`tTu1on*(#@7G%wiIaorM=feWPxh;ja zRKyfNz^e3N`W~4OLTw7>ey&$nk=-WNk`xhlH@2Z?zf|mIFw}!j$@_dwlN_YMGC0U; zwMIUY8OqCd9`NAj@zLLyah;EKYcV}EjP2H-=>GVIEF+fUmU}fN^{#E`TH5-TS$-}b z4MTRXWB!^vLuH4KG-v$WL8d8!Nnge>!;Js9mNyz8O+=do+nEa6k)r| zL$y2A=%%po*JrvL<~LAjnG56doTn!S?iEKyrp4dLqp+v<%>Y_T?{Wyde!upfwsFF_ zgBwwHm4D;bp)YhvF|fsTD*5WKMU<0|k>(Ify;kcW|tq{-zu5Zrq`!qSO7SgM&?lY*HRrGo=D6{35Xeo zR9xuH0@UJnXTT}f7mAqN5E9i%0O$yj#KAxQ)BlK9l}SOilLD8vefRH>3WG)4^(gHX z;FvH3j0qeE8BVgJ4K{yjzyLFfn6)+CcV=cL%XzAQq>=aMXg4YG*D$%?|7ie!LmJxC zK8h;Z7EArWHqIl7$PN4b`-BTPDu1M5A7PA398&`$f#aBKN$uH1z=#AyHhyy2AMXLU z2e-HeK==la$oELJ(r6W$?fd)%pniJxC(@}M;+m)k`7JwP{)7v_dm1wP*W0tf<_2d9 zD$$W3g+OxHw4x7z!XZ*ZKKzigBlIAfJrb-|sB8c^0z`^~*I$rW%|D@ikh#0{&=P+&^Kw2x00#$lio!*>PozIr_UbkshRXq@hJpN5Kt7)fNfI#;OP=1Jv zrLjq9O^f9c5P=5}=d9-kY#*x8duNX9Xkn($VYm9N;WKJKfLnHI&sB4Ew4_#>Y?n*9 zCmoO{GBAlrJl$w_8YfrJm8h2Cu)WrU1$E&?g=k@VqDtQCK!4Ic3&cMADxZ{ACH zx=xOyA?7O|vvV=G&ynjQ=nUU4x_5hS&^Y|Ew2H0qo#J{Y2-l*}xz$pb`8=NcHR7kh z_2McFk*B>@1o_Zz9oM}!-J@aE+LfAnxaogN4QFwB+B{XU`pc zM}X8v5-i>O%{YNpbFw`lnGtgz&f7zlLT~3~=7KOa9^V~a>AKgLZnG9|^Wkx$T_Bke zlHhiasNH=%l45tjC`s4i2{ujDB7*+q_g1-$Ug{juV?};YOq!GM2iI+~Mf1tY=m1T6 zvwPkrqqg_6lbJSOJNQoL8cwqJ|8AxxT55QRbEO5b={8%|+6OihEq2Gk#dMiaGOb+L zifJy%``->8hTg~D{;=y4{`6%4T<8~F$vxds~SqF@5OJhWcyY$jn^w6^qtf|SuB zeKrb7$Lqe)Jbn@C159bsP6Rd94X@p-36RBw|Q}seE7#%Dw0~M+z!+w}{G_ zM>jHWpHF7w_pMvy+ydT&2-r*0>hFE&$&Kv$dny~AC70#1v2j)&$M9mje?0=;QGd{> zhbXO_+Tn|b9;(oVXNQdR`P3eBC>udU5p(*E{66vc`8VA32OBoSA*HXn+HZNBcm4+f zb+!abNiX&fH*u59sq7Ktay(%xdG%s_8+X7-wE?i%|6Jzuh8Dx~h$gCFG2|ewlBhT; zyV${Cnh2+{j7ao#wG0m9Ozeu_W=Lf^&6y0$W8cT;+0~>pC*IVM{O&7z$0R6poUI^S z{%%gj%w2_*jpIv<&Ziq(=~siimeA0go0^x`g0r^s&0KfOE7XGy#|gaHV#AiR_SJC( zJ^BrcZH1Mh-*?}4h`;R+WM*JAg_W%-A$4c{uaJ|NkM?Q=||Fk@j7 z3;C+ef^_4Xj#*|~yX52w@hALkxJMLkNPK)y>>gHrChR}SXuR_z+?RJY1+7W#GUFJTwxyQv6+VaC-AGUV11ak8$9M=j&#C7I zZ#0T4vwvdqPkg((@^^+c0wPM6C$e)#3uyKUvSPW~N9-G_mkGS}R8srD{{gB`WJbAE zwyNs%7K0)WHaJ93Hc$}P?@!J>*HWRYVu*anUB_&T0G*l}x`2?x(5Rya&r z%}+?$YmPrV$sISAQW5B_iLd4+2yr|lI@RuOA=KZWU3T|z><%z@A1OQ>*oz&6jfriI zYN(}Ij1n9?eER?xboX!E%oaR3S%o4C7^Z!KeHLGD64_wsnQf|0bJm|3sIKt%iLHQH z^fWw(ni9SD!y}0XJ)rxas41(|5-lJH2_~wcMX(L~4kJ^(mPw6e;EUbEti%THW!s{Kjkq&1Q@3 z6Ag(`jNuw*W~p54@AWgrT~sCj&=RCI)wW292sH5k3MnepW-Nl&>z+Wh5^gwIA^;iwFEqJ_c0Q9t9}d9TwVZEW09?UF>^}FHN zSiRM4$p2#V;xeyn?r~y~3;5gNSRHufAYsLcSZ4QO&u!5L`QQcce&%8A$bTu6&+`X~ z_1J_M!fuD0=n1SI+c@wXG=mynFxTyL-OEwH!2vuS^4A>U3!A|?r<)ONiKtRzVP|JVN<@g>Y?5il7s0*}B`ATefm7N!vn44>5`IZGZd_n(=B z-i}uW5>}e%6*w#%fP-j8b;-|$be>NDf*QSok(&v-semlB%VzZC266~2IDHQPE96Cr z5L$4BAKiSj`@Q&kV#Xo^CG}FIF7pXGo`Md+NuShEZnA0qFGre2%k?jr$6B=8cXl5f ztx(K(+1i_f5f7hr@1KScR!|?_|3|k(HUGg$p2ybZbf9vH7x4Q)x$e%{`>t^+) zWr&@nJS-`tI&)`Tg#a^MO|f$IJLA;D)gkb&v&LZ~(N_Y$PiDhxrUIb)A|vweeX{`7 zuxuB>g$B7+Z!=mK64;zY4DO2(hG*f#$^siRd|fZ+!u{p2ggP1mc{tYJt4T(q>DBzm z3AqL=U^t!)lLa4S60~j9hXjnqS8fsF<&;nV%d(p8#wePT2!MlVZ9dZ37LYY?#{6T_ zW~q<@0+FZ`8u2zZ>Y#NRk}8QFonv8wlLY=srAH?PG)=(< z<+BSrv^d6<^k(FWK%vJCMkuDvj8+9Bj1G1np6>PgD2(m^(GVD`S3XrZ2w8mx*hy{# z=U8gAIZ9$;iYo1vW+112z;Lr``AphrKVGi&n9}{k)lLbk9^Lwc$jnilu(U;v0b?t*krFrWPcXQ?KY|C zMw3By@&9N6V%~11u8f#CAD`4!C*eN&4Na5Hx)<{PB?}u+Y*|}4^#EgGKmc@L?ErJ~ zNmvD01`?xSYvqq%GdCq}reqSGa|y6@MZg$)jnmWVGem9w0f>~_)uriX>tc;0Z|21_;uKUT)XY&lpVCj?-CAS zjM|rkcd0{;HSD}&Fl)6H89_t!-#DwjZCKy4uyKcG09G8(kDM*Pc+z|y53y2!c3k%Y zc#@5`{6lN8tw=QINJhLl#uN8R^1V19RUj#vRHPZ5Fs&IPc6{%D0lhYQfh5Y&ONZ1U8GV4p>Vx2`V3 ziSm90XHoxt+vH0QkQfgBA{|Hl;+>r>?Rb#kv&i?bk=XITSx#$7L!+sMk(Nk9{xUne za7|5J@Sw{>&#fi4|Ksg49JNR)?lLBKH~Ja%O6DqRGXEQRc({OJe3Spwjij+kFszs% zLl{bGBh=O>XFUJU*cZLA+v-u-QvDbN3CLlFkbGx9B^ka_3D9@^uzb0@5V%j&7bTy#pv311IQ7X*9a+9t|lX z`YP-^MP-W6eKp6*;tJlSrIw}NO?o$#<+V}yUB?Afi+p#ciTetvW^uAjWxCwJlhBqP zc@RjEE?~Y{j7{~$=AvjHBIMxGbjQNU!%AFrqD46PdK4CUW5pJ}s(CPZ`iDkhRdMmyMwwgWbpB+Nj75AT<2s$p!-SP>_aO z_l!SIvpz`~i=g->rA3gXt*POWTpB$+l@E{$Bn0uu$wg>M#c&~!<|u+W9mOEvTJPuoMAF2uh-fJd z?G}#FaH7vG)P;Z&B9zo8Qx>U@Do91CB@B)#gs-@#n7tuW8bV@KdekWDgfXOKL@d!A z_#J|~BXpbBO7mL^a)R=)k2{U?cx5SIMD; z((K)aXV?S@kW&1@#EWVlwfC^^@4*?}p>V-367++8E_18g#5G z+O)w#;mH3kaI3+BM7W_uDOSKu`vlsohQ@RFsdZl=%`A@2@1ljV?%A936mEUUJR~p* zn}M?gb<+|kA6(M2OAA}jPy`jq8FIigA@At}OCfy_#;&NX(zL_X{e?3V9W4w!y8yi;uGq~LVaDpC4k%kpHIiP*m;!ClSMSQ88D z^Ts8tWjleBi`)-UK>IhS=o18Hs}W#eNeMJizl_Xb;wHK5<@r5dOF-kZ8cctiAz2e8 zwCFhaQ2z5{xGYoLNSFZhOox`Tyq4ZLMUi0pQ#agSlU%<_37MQvnsbd>&%4`y8eM9g zPQ{oZG5*^Xxg3V-zcDZzX|uLMCaNjpPAiX?S75KynpIaUgF%X!Vt|;{NY!YqsB>2J z=He7J8z`X1z;|Q&HytBHs_Q0@1&NXilr5H%(+1-dkptO?+kkl=?Cdo!nN*rBg^FkWpoBg{vE@WS_NZo0WR8; z9A9O2P-*(2^7?-*up*{))DAJ9_-A%{dceZzwx~bB85pu)>@2yb;7kP|Q^5r2OO(P= zM=;W>(5n=|XO|9^7nvjLA64WHBzqx70~g+16Ti@4n**TK{wigSVZ+oEpfN_6|JZ^* zqT7=BlA`5>=NpBAyBzZ<=&yHqwI{dY+07Ttn0;;isp9tfA> ze3CFTF~K%fEy^+i^I};~8=cjd*~@pY`3d~**1(*T{w#*xyY%DouY!afL2jKsAv)^B z%Q0fpPeex*LC|+bVlh}IXrISq;O0)E`-Yg9!Pr)ejIBtG%I}Y#Y$kHPzA%X(2mVTQg=LDk;5xbz%Uj0Th%|Npred}xm`wxLFp*KD$ zQWS8ykD7?mD?4M^UzpRGf$51ZW*KoTE}Mi31(9X$P1-%Hado!2lZGGPv?JK+K4>tj z%ENI(g)Hb#UPuB-=7y>S11V)TLbJi@JYJR^pu)uZg{?^#3AhJHYA}~`q*o%~HP1N| zVIav0jX&dOlqqxZ>d>q4iGCy4bx;e8XVd8i5v`UO@F3+l2tI7Kq4eG7lw z*M8o)=*I+>QeYhZ^TEWK4lEdR#4f+c3*rluEz4jjr6dOm_?Hjkgt`xY+fzx2QAn93 zW}xO-8&lXQ?Eku936)s&03X)lcY{<{JYK8awfhckCgcw+g+JvDU$Z2%yq{A4eJ~%J z3B@TwO)G+DIgyX34zM)xd}$neH4gXOtPQ9Q|0HELP_#*6!pg5n8e;5x+gCu(^@_Bl z>iq`{eb6^x`Qr&U8WAs)xiBF(^j&W7mnj2T8wvBB5dqxWzQv<;Bv=F}!suG(pcqQI80^&4gUzutJ$U6xvd9+cXZ5~GetKz3p*>mhRo~Z%{+oE8M+a-g zfS-`7*$=%0POt74+z|1r95b$Ih`3^z_Zl4a>G!2EHhw8)Tga!`X8_%Aoq)JXiD7NV zv5S76_H^RR(lw@=46+5*xlEIk)Kt%y&F&5A^2&?W#UH<0u{rRLYMZ+b1-4$ZwP%=O zgKK*0=txWs7RV$Fv$HV+!(aCN3+Crl+|ADzQjD@(hFxrxuf&o<-fvj2C@y_BhijT_ zKd$@A!FDydJ|nL+E%lR<`lKvQhCj1Y1vWI674MXCt047gbu9Et*}crv=0;Q@a!eB0 z=-Dz)+qM!C-ns2Yz>zq?SwF4!Z-w9_wWFnSVm8#JML*;Y1tGj{s(k11B`L%hB@;0v zIH=DH$HE_}{iRu?uN8PU#l5kI&+};g3s+5tYI{qet-4p(QV7(f|B--ZkxzNgs>Ab# zv*mDPhrR0%t6hCg&u>~$1v&|vZ@h#Z1k4#TAF*9GsrRZ_QRTdO3SfpEr*N>H)Y~@8 za#B<8IZGh0YS8Oh)evU4?}$dz%9W#MT!O=O&CKLAMFFY= zpYdSb7C_Ll<367GhZLVHPu~y^VZ*TD?F_(u#WQzob3AtQ`c7Yv2!afUqp%5pTeM-m zoae}P|Ivy+TPnV~jf#;Lb#LJ7hH2Z%;};Tg;hK8Ly2J>RGe&H1TaU2j(h+#!mU_rB z7keSrGVm>6sywvWUQ3U$ZYKi{Sy%&f$&oaI^nUpW?dy}Vq-h~V6b zj6XizJm?mr-&cKN2sMVR+n{;21@hC;USHe75t!f1)pdFhKbSw)63p}x!`Rv1oCqW@ z`&vI%gUvzOmRrUixdKDAc=e3()p94sFM2(>I6B=Y1U%K+BlG)Q}1>C09#o!;&q3uk?{= z_Eh6r98Ob;^6rrug-7TpvJ&G}sr`<96$K#|eYbtorZWDb2>o`Ke%1a4{i(5bjHSI^ zHdGE8M@8*hUI?mWRw2qLe;GIn_MXs9+k(;w>!rt$CqCha{#M%P_oUk<(iz@;;0;A( zblX>Hu%7&PU#c(Lrgt7B+hZJaUh3<|QLKc1+Z0)Dp z4FZb&X&}C@#7#T=jNQb&qRFs{RkcUYp(%?%#$mKYFVAB-_C1WiE+1G31 z!}DmNjlxhtv>ky!(9j|#(nW!QtWtWP2i;aonGI6Se69T{L3ncbo&#}b`|I=57uzQg z+w0P$CoIVPHuJiOp>r zVka}?Rh~F5D34qB-tZ2I+mPkN2_LR&cHohje~#%M;_GI#W8@*$vib#K1QGV;`%r)6 z$MtR-$d+!?e5=uowE}-1O2qsa{xa`@l+B@|qgqW{4%8&z=`3hPd46~z@(`-b(xEiK z=q1B~x6_w&W&5M#{PY05Y2huD#5(gj{AXg2^)-gbEG>?5a zP-2$ZOeHcJa`G;OVJ_qQXDY-Jb1dg&do`0{-^D5SA>CJ*j`2&Kn2&SX9;Q`R-bBD1 zR=2vinaPpn;t!#CZlpTaYqN5>T0=Z zaFmFKh2sm6Y%%=i3ySmx9bE+!g_PWhGjr7v(HXLc6nV|_YM~?|RpG^mw$vY=ve9y?Fs~MGAS+rpn7LLa$ zEYS0m>U%~$cOtRLJuNoJ6Jh6Ot9#>g2T_oCnUUHEpTDQLP!QM@Jq!Q+hIFMsSqK}Nh=QaeqnA0p@0sitwGJ}r&RyP>W%{cRp*-$K@7!U_GlPd&$ z?*aeRULx~VT#}k*g&VDOe3`5;%)23Ve<%hVwl$mx-b<}dFOlGXU-T7WGz1nDC1O4%y;6PnmN$5*+ z7u=FwhM#AGuKS#-`80gGy`m@6$;73^>f;`c>zj#z`$Hs+@mVC?td#OBEoa?JwSQ(%{rcqDeRB92Z~-CcxODoFlVm9x!~2!dM)O zUzFP){YlmS{?0jok}$)cT%`8#?4O#|5P1uWcK>(OXJN<@yhdJ|ftjgzQf$ZO`Ag-@5*7BM2q3N<>Mc|+&Ugr33emd?2 z(Z|b=wiEE%HsGyD<7(5Y%K60A?k#wIm!SWH``K}+L zk``aaI@uwQ3PpoM@_5B~RjYh&;@DQmTWgBnG8ui@`k@k?q8mc$vPpt|>-cc_JdJYW z#AI-|&5E-6EUAHJwvGQX%*$y1^2@?ALLKQoH@OyS`-$*ZCiXo)T}+t7jtASKsG&mc z_vQGyC4)A#h};P+QX{+x>VhyI%UadaTDnChh=6w$g1Xu{$yQzIBzowz-Y3>i&k^Pl zuKjNflLv!TIMSegNw0KnQvRU06MqWNQhpQn5-DWaqW^R1$q4 zUFEm3tSAe*Wc=$x63gZjONDv!%Hn-RQ?xE1H5P#;!SKDnfYhYL{Szr zxCk+TMPART9zHH%ripLQq?$S3LUlZr#zg07?k264W)@r04D%t#Pb`)7*eV2}%X%h= zuXMY;=E>{vr&d|ICI_BJ;|JP*&Yly!)K-xgjHF~onLc=(w8$4n?jW-mq7f+#)Ox}8 z_3r3Ha>~U|X@HwA{(-jB#WNM#*p*TeM-tvz%~{T3jh9KLn0^QCk$cqbM?o22c^TF) zZRQ!El!+xW+DmSO`)-x@=1jOID{<=BabYTQ+FOYEy)c8?gzZwIxC8F)FQ<*L=;?aC zEB)G55kl=1ksTL{vL{RYtQGScNl2x5_k`MTpf!?5Zi7Xahc6bC`~e{>MUz8BT2r7n z?wMdA6=|V6qip=Q-}O@ZlBJ#gZvpl9;E$NV8{?u$&az(5yC}*EBn;<1fig-d=cWRD zgWiPNnBYii8@v)GmGbc$8sZaSUo3W|?P-VkmARKa%k+K$Z>u2xF-*`QGqCGMmE+6+ zVpu_QbRqx3d+>ZUXDc`IM!SZ&e@w~Rb0ioSUClKamH-Oje>mQAxKJp3GL4iK0CTG{LP(*)1eT=J z#5a{VNtg!-f|^h%Wpe;sT#o1OZqeY44lg4h2nvX`rpH4FeS88^SR#PG)lV4>AA~U7 z)e|&J0R3uW0-2Tt8FgY_gpS`DRzRMpKY-?tYCFC`OPP7_6d8lr;dHNg4Q&s_)zdJE z?PI#bKV>2=MH8E$$CqY1_n9DUfrZkzK-x=qrln=Xl?~gnGdCJKf+0Gg0041#EgJZ& z1~l^>-lu=?S{WGOdUC*ec!0pjWSoT7$c|pgOlkuPN9;|Df8gqy6_%~iAk;GJ{4Z6W*T)4DOhiY?O3~yrG z7+gP3MaHl%H;?s?BNQhRPrAsOz36V0ASr&PI^~&Kd}w*iis8(KaA&_@8<-))$K?$E zd03_k@W=W2Tjtbu7v7>k~3wxxa z?Zn{A^zM()UnzMI0WN(g;MX8?Xa5tkpwl3AiS2;N;TMxw4fF3#{|<*%K>{}u&fSR- zk&DH7D|H3-{iZmi$jE1><|u7xaIq+dinBO+(?oiOP%E;+JGg!cS7r+p{3ZBa?uu%8U|C4bht`KH^as%KLaI z8hlqNMtMaptS)V_Wn->C%AZSNAW3Y<6c!#faSkuH7VlIX&PIROzWV$T97^@g4HP(g z(b+GZQsQ5zJwrt0KV!SnXo+Z?3ptapPd3846CF!6c2&V*tWF`4<+hf)wLgaRmVo zIWact6Ds~mXj{m;DbcLxF5mawNT>z$+#&2W@#LlhAsPz53Zt<{vR6=I7jG~twa}VN zX4KgW9WjWtE(Fz0n>5lz^yC*=(cv#ME=Z4YCj`730X!<1W5j^_UY0KT&tG6xlly&? zQkZUNNV@w^xv(FbzWE4WYWgMvb9>7%VxtPUoYi)DqjgRT1oYt&zm5en!E|$F1q4@x z6>ZxzF}PyEj;JEOO+0H4^;SFQHVZIb2~qk#=sJEeRIJa&1j@*qjjs_z&WM|q#lqP* zC#VI{#_3fT$31_WWY=EgL|`^hiI=}Ke0ix8if4a*dA=R|3+q!w|pevc7_BimDX;FB9C#ucm&gk)`;3k ztnq)2#vWM7e`PS5#jyD;C474HMIXz*6Uh98p}WNdi~4j4>tBnE9nKvt1*z&hxK|dj zUl)iVt3s2RRh2}Wo!5I5CcVOdlGD+mIaHi37g;+82SR|?y=_DwA%*k&Lq|e1`wmz! zkf~ep%N!*kGr~6B*lBkPGYKv7!(c##>vLz%jB&(y3A;^S%qVTL-_2nv7X(PT#T6q~ zB0uUR;6zFSM`Zl*K+W6|UT=K7M+pR$eZ&Qn$4E1UKZSh$F!wcu7gVI7%#3ix4}^I6y}Fyp*1~6eyij5W)jj+>`g6UJ~PXeCyG3GtIGL!kwA8v zUHql?LH1$U*zHagA_&7AJXs)r_`Dv~yTmIfFqts2)5!fbEu?Rm3xQxh*8Hc-_%xHw z5>wZ<@he973#*{dHw)kzKHe)Dx&_jAm5ufw|c{Tf7I+Xc9<$(&0KW-hKnn-sh<$;r=M$A!^A#_qymE zgp=6~ARplpUmUlzFk~juK#4}X?Xb?d*GbV8aqlb^S_!3uGzY~gm$T_W2`vt;S`Sj2 z9$aK_R@*b267z5Uv}^{DI2K_sHb-cG>6#TrJzqm{RP9(ro*lHMD8)$=?VmkfEiz~t zCwq!!*et9#=4oe(f^jVx_m{#N6xKHrF(ttxmlUh0l_?e)WzVEe;g0YRzHGpIvRWDTyb%d zMLEx#RxWfe8{K)jt}KyZ$l+acRRf6ZnK9j;No>4KDZP?3fksRQ;PD{qCnEIB`|D|Z6l{M)1R zZRD#QBrlSMmwT|Ba2o-^_P|zghPn4xs-HEI1>E?-lr?Puud>u1^At?KacPX1DFNl! zMJQxPP1*o1R!umvV*;YCA)chL_Gl}W+cvYlo^O;x!m3SGCipBY5`zdb^+hy$Ox5T5 z?tM?bUv&Elq9wGxFm&bNr{&o|gF&jLJ$@>1N~kmskPF^ea_w{Z8Ej@OVR>RN5p(O@ z=q>sAbD5_1krItXV2!+WK~$$MY$UnAf^ws{H(#@qy1^(Y* zO%pnmk>Xp-jc`>KaG?!AvBDVs^<5gdgyDhv@)18GEaT2+mC>@Z#Fc)U%2EQfu#B%m zGQi`P$)K3^alYT{qQe7_NmUl4uev%V;lo30@6!)L4L-TN=jt2cdOaM5;(l%KR1PW<#hvGX5F48J?jYVl8B}s7^uL{W*^jLAPc|&A2EQnr{ zY7+~GocU4OFqbgt+*TuKYv{xPY64wY6z`Ku4ZFx{ed9|QJ-=tl+f{|FS^ljUBuy!KwfS4-xMItBGeQo=bH}z+ zcAwm?ru?vM5&ob5Ye^v^e@Jl-J}LVv>r51L<0S^I0z?Shk%#lm5xjE z4slU$RDHTRHr=x4*o@t=N@)O!rJX%&>^Z6x(KZQ--&9L=B2Y@_dvq`rX94MSIpqEa zYZ7&dNkvI=;R;7|lF15xLlM>s6aMtaI(y$drw&)W0=JTk@b{O69vqd#~p7My9~{G{nXueJ8VMMLQ>$u(AUTu?yOIj`KPocetr zo-Z1bNEva#sESa`iLM|qvELM&3pQBGkQk}5;4Gm)xoKMw-6Fb5Ywp-Y-y*{^R021? z=@t30o%=k_f2E9Op$8X1z8%xwRC@od0VAR}aU8$?V z_uU{NiwcOFNtjoSDvGIyYHGG>HVKx&Cdb>A!U#>Q4{(A5q9PR(DrVqW=!z4tuXs`mN+O{oFx$W8tEJw1f)?y7+@&rQc6l{NNHg}I*0D=8oH!JRJuXx z+35M-=bY!c-#ssQGaqKpj%%-L#rL;X5=Za*g_Is@vIsuSjAvE8^#|bvh6gj`oI)nf zQ7$Mz2wf1xr3U|Km@uf_hSHaGA{Z27^ex`?{E zdU&xL_$ryR+<8lswwY;`KGwSpeIoOw{r)P3TFTL}RARB%v+efiBJb}xKbk9mvBkjQ z(1fu_T;2IdFIfQ81B(8((rN%s6+)Q`XJ!C1cIlUwx?WqSh-#K#r}P|e@-fDA?5_lj z$LIC=us9Ng)%A!2yqGkWLh_=>GGTnZMame53;z6v25I1E?uR)62IB1O`39Gsd-Kpl z4h-{WU{wL2t?nehbrQ=fv-RAQ;f7v%r1raU&)s=#ON_57n-h(!U*W}Q`zg$DVeA)d zuo}dJ;p`n-a5~x{&oY!j@A>@ju+l-s4DmvXZgGiB(XDMpI-=hkwFobak3NAs&+5!y zD7~O5VRh1AqZv`POT-h;30eyM@%UHiw1A+fpkBQ9g(t{6q<=I@no1S8)|$_7W=wFN zrG(X!=8B@<9w!CC(1y84PqoF2!|Y763h)}gBreRWinnNT10+@gd-mOhF<4q!hvWH6 zsok^Gr;J`NBc(t^10VDn%z)bl913o0l(zYcLysz^tBjycOrHRl9i~1!GX29PO+a75 zYu}^4$!)fAJfqzZiq4b@T#xi9jGI7t36viUxxcX?%unq23 z`+`8k@l!`59e!M*n9H&oi0~Uo8dUTyaL=zDpkIK~{GBz>wr}M5ghxYi^_uy-O;e#` z$5}zZwgdRwhM6^j>H+;zigrLA>&|TP2#=x`z4T}3upW*kC&wZuK%x{Rm&6r!{aQN(Pm7hM z;xK}W06;t1Vwfo*p1C#{Jpk zE4AWYpUfkF3>||Kx4b5|1-Q$}-J*@EXy*J#v~Ag#E*SSW5M>dqiECAjV<@KI;ahsA zn1;ri33_DT^FOa@RAiSM;L5DP*Ay_FbUpWvQU^w+Yj+(0tV>7f?~m6Nu--MC8(k=v zjFaTozvfF-aEFL{cwNkpM{)E%qrxLlLeGGX>EsLHe&x* zwu%69WqXgly#*B&o<0MZH&#fAPshnPWy11JT=WoSrNJjcrS}d;UOUmq_M;?N8%Ltb zm2Uc1m_t=?-Q=-IYfUs&6?V+zbc%wx^zc|qZw-vs;t6#PtdN!0-*g!bH`=3!);w_e z6q<(LFDF{g41dUIU^^UP43(A^Q~jT~FjpoqyI)jw_DiS^+8LE<7ma#-fscRcsuu+= z@m9mKXU{{<6L^kMj+J)P$}#hi>oFEYf$Hh5T2ja(E0$CK+V*FpE6z2!8=|RRW0_3G ziIVCdJ^B-sD2i;r%uY8j5Ptj{P(`@+_{)m}h*$24T$K~8s*OSl9!Q6SQ&lQH6Vjlo zV3fBr3-=*6pfJ_177UgD@UXSX@{qT^V0obJ5*(vIc_6W2<}Zz0s?^rxU@)-O90E?S zxU6h;23{1>3M%Ui!3%zqsHzaBBS!|%J@^cf0ZB*b%&`Dt2fdJCFal7z-c5IUc6Ti) zzYP@NAMrMrg)kF@SRl-GmtJcYz;7D!1&zvWMFBTy_*tp3&P%=L%nIrprfC;_89S~R z$|}|X!VB;Yw`qcVS=d0E;=4;Q$}D8FVX`K1Pa zAg6iOjPdawfb@%er>A&kpthI_S2#nm-ed>?t_l6|;L1}Bq{qLw#IA7&%RwM*s$bw@ zU}lcX)K}mIWK!jx6}Nsk{_NbdC0g8vgAdj5bzeyX z*jMd_%iLk6zrmorLbaemF!1f%&Lm&%fWMpJUpk=4Xx@uH#yT%4(#pZ}ttTmekp zJ!JpZ$6@kbJQY?qiT$N>LSU&S31S#zYa-X#!J5Igg;VsM_bac3#f#cxPSSyf~Jn`r9_1JJ<6wX z>>G%{tZK`XD45jF;8+SEbaJqgNH^VbmR_#b> zo?l$VU~mz@*ghrZc{O?OLW~K04Pu{?F8~|8^ygwH&gW!%J7NJm(!JfNv+ihApVqDZ zA5|b{aSii>BV;8B5*{`iDKe@57mCD+7*b9JFu?4KRJ!AO-lZN4+Cz_5q&yl4l_#1+ z5O(E;50=g>k&)}bl@TRp6 z0p5$&&qf;hA)P0M?}sSb5EH23@(G@gB+TNtU##wvW*4pD)%a8evgzCFs`YkMHKK;H z;vi62rme(GSnT^}&g$0Wsy@xq9+{eePb&HI$kP%d5SlzDR&+ZE)v1Ep=FaO6=Sr=Q zmw^adKNIHlj>@h^vfo9Q>+f08qEFuJgfQ(c zI_2J#n5o%q$|fukThY{Lm6f2a#%gpigQ0X{#Yi%x;Q|DY^OTKcJW!TQwcdYGri^y? zHLo6IXMp_87OHg*1v)Y{f7t$diDKw~#*SA0bFFjAvxI>k6vaOMLh75<>wPt84>oK*(u^o~%-hM!A@QZ5&5F4oKjZW(d7U>oZC=DV* zb^apZFx^k($v*`E_sJ^&sH23uoD;rbNSnQP5g$3fB0;9M`J-uCwQEf}dm!+{+ovKn zGxx>%6CV5QV5wE*z6?FFSqH&q?ajB%zc}3-zCm*5x^bufW$?5#B$ak>Pc4*Rq9KM< z3dIMaq-6`q4b?NoAy8N4 zewTLe5ACpAxIh)!=jW>lzV(l6ncVik(G?)u7}cB3-bC)JbK6K8BBY_->W+!ZN_>IuX}Oi8p)~3El(`G+w7ppak2HI=isPh-|)R~UZ9w0 z^VwFX&S5>j2FT!sFHYtGYL-62sg99{B%3+gkwfm2z(-)?_5g{8p7||6XA8B(V;5Yd z#UN?J`q7Se2{-fn-=Y!w%M;6prC`xa)A{o-YA}}kR1hCd931GCfC%?&+3h`eKE_qI zdKVVaueg8`PC?L4Z~(qMB_DMnlCWKffsEyC1B^74QlKxy6?zn6U0A z-RvX(i-n`9S{GHoLwbzxm^1Z!v(^!40F1cd0a|XG#MkXD)#m}NljE$(1KMf3KjL(+ zc&_5az!hR?yX%+;X?IF0^cU8BvOADnh)+@e_&YY7c4okTdKISvb@`ruJ?o)TwI7g zh^2dOyv>bgfF#!WK_bjy$G9|A<6wJTQ<(#R@~I5MnTs6tfDP`{%L_R4Jl9w@)8mPQ zYq!3te}7fQI~-E1%wVUGPI#=i7(O9Lz0(~}wU+x72!+i_Aq12gg|5UkGU??Ctw#oJZScuE{N*<$s&=kVd^AdeC#kWcQ>*75woZ^+>)ZI6v) zLK0TY>A@dRT@3&9(E0_KyWI^85PJgV)GK}p%m8~AU&n1+x7LNltCo63DNJOI(6_iS z(#08paThOl_5o@Qzc{eNC3|@pP;RlU)@`o?=BNPU7nOEt%7EEQ0FM+3pn}r!t26yzwKzgm*_&L=phHx8Cr)`4K=e12Puy zW|V;d+fvr%XLx8J(V+CoeHy7Ru2Je_XN1|i+e??-&uCj8C-uJY(63+pbL4ts+dq2+ zRP$PFA{JbE$EOY*AjDwnz|8kXvi7G?51LZi{jvOST5*$7_l_G25!*I%H|}C-tJbv3 z=@;nnvX4=LpM68HxkLV#9*s))0O{Pugs#J$KZJ7gha&e-S{=k!{e{qC*d7t|bt-#A{4jVOs9H-GZP?$Be1eUeWHtD z^bq+E=5Z||xj2u_5+Z=5e(099)gQ=6!qYC@1t&FWD9uG-cnze}Wn{N_!a^QvicI`u zdGeI+_p__ZFlx=NVRYif6XUHBI2 zn*U+xk5B0NPwrP7bnK*@+sL*sgz)^*6|JkDMZH!$hGh>*Fz3W(e5&aSI9ERx7vCsM(i(@m~|)vL1cwJi4p z3QNw(xW0ldQB+D%`HBDq({ZypR#f~oQY&l`_D;3$f}d?+Wr|LCfT4Wa^<6%^?WVV9 z;~UTNbUfEnh1%bD-N}w=e}VDkpi~r{51n8YXogXf zS%28=auC(G=krm3D1~8^ED~-_TcdTa$IDXd@?~(Z4yIRIPU9yfhLHjT{p4T5(+iA) zVv>a8(RdE}Aa5owxaz}H4sV`j)9K0YvgyqHpwUxSi=Wo3C6$<$xK)cN{ITipb*Znw z#tq1K#2F=2tSbL6o@cVLePm^k_yA`(#jkLHP9TN8N>^mXs0|gn*P3Vx%>2_*^cC&7 zcteP;ehz^*?ko-SHAYJOxY*H-dBNe}!E@*nZ=8M_76`_YDHrZ~Q;N>7XDZ$yW?EWQ5 z_Hg)Q>U|4W{jEU1^DbaL2De!*lIQ?NlV664T5bwh9m+7sR0WHXMjeL92Z{f%02s2) z*8wRJLNEO)Iu3YN^iwu%_1U*a2*X#A4V`kXL9VT#$ULn@EsYpv*e9`AV2*v~Q_yy9@(MkI_R2 zQFm!<`ZF4JZlC%uAN=3|8j`+|vm|Q7fe%4kfr2n}e#BYtE0y1g525X5HwNu974pJ1qRs1}~wG%!jL{Xfo(gJ6&Eck%Q8s2TLNq=s{blRnkrhR6R2z?{+0$ zM^XqCf5!Y{Qg9$hL009dT(>)Nh4+hK2n1jC%x@T0_vXZ&ONwmSMgb#JZvT~ z$cl$}wP3sNzMJhgcX`-e+Z)Nuq^IRrDG8J_v09}v7%9@-PwiSg|CXuZJ3#+IYD%lst4%od>gVMyEAqj) z$NJb^BCcL9AH~xzKL5&yRrgws{KNp4YPZ!kZxK0)qDwUQI-JzKctH@N+pch5;hq_! zu=>+hY9)5>Do&_4iV;zp6Q;V03lSZRwWLwS=jE87ZC@@oU23^Lji;3_D0FoAZzpSB z+T8(gYjj^JompjLJ8u?aF;|HOqi+@3XgV>_WkkTWhrBgxQVQdZ4{KvSZHdjsI!7@p z5%hd>y81FSaM1wG6D8p}SnK@u*<;0&?HXJoFLDluA~%%SJ!xYf)+kLY#nQWt2MZRh zOse1={zy3|iN_fHEJn6gyW&?G{Ke93vMxehQC&cio?CYgMwjSqjZp!_F;`KKfN4Xl_?3*V$Rl;ah8z>>ljXc$HPh=GAQ?jfX})2EBrcj%EyS#O-zJA6#d!6x_hCB9 z{}3BL&-;dhsefY|Zcbo`W1@5xGUs-l13)yp)1wvIX`lamQK!?4IST#s^rI!PSmy(D zYR;G+7ON_X2MzoYikCVI1(>sZDKMrI-GPm)N|(spST21_QzLS?z?O1*R?@6xW+uX( zcS!v*vP**nq7cY&LB9QPm&T~6f~PhG2Z2cy!{-UK*e%B~wC1hJC{rQIvFH9HfoM(` zi)Q3kZ!C+I#E`5y=RBg#T!1=ZZywt^Yef>NJ5*>n~EUyuwF1U1J8abBNBEYq!mxW;P0Wauy_N$e#ma0Q064&Z6J4&H%6mnW32guv^jws`qg83k}# zn1fQhV+bBrEdgp`v$zv*b^KuQ1BD*yo<|Q(PY1}s0!|Nn)%FB^soNfaAJ-3%2*Kt} zGNk>%Pu-1Aq5_MPtX$|I+CpM=n_J!#S!HDmWxL?f$y}<0Ke$=ul@9u_ejsZOmTzoF zkp_MTW9>UxIzt7B1rlmr%_Jt}^@SxSm+iM=F%pnT`i|J*isUm^JN$ANjcGIsIBdvG zZ!o@G zcvDTPjn%Pd4Oo-e*^7yHONsl~3)HSu=rxkon7 zjZy!Os=yZ^=Q(#wmRk3&dh8_ zV&?nBYGbz!r`7lNUF85jNIzKX8fQ#JkwGgN^6Hy+`)MIEFOUh_Hpb=?S{MJv3c8NQ zPO~FzIxbO)2#=p*Wp2&>WKp16TzXSL`@jfd*GpA%eX?DbzNN(c_IVh_-A6m)5CD33 z@KEW@elGL}JFBs1cP?HQBF$twg4RT52PANAc?_--l)I^UeXD%J%kZE5m)K3F5@z@8 zkAM3237)}NA#$?naLHz^MQ)h^Q`4{LtrHZjt@CN?BvPz8N+HFg62)51bjR`(g`E)1 zf>1H!U6&G=ikDch{BLU@FTg!PBj$IpwC*T_?c4r~bP^t@DHfOg!?y24!(??Pco34= zaFLDqv9$yPQD<#Jcy1lW0`cB%^~(#K`!>@<-z9(de~7!e8>C;87-g9a|De0cQw_cF zA>qF=Iw3=*Cn%Awi1q&OQS90CWTexn@T2q(1Ow3@tS48z0@R_(uoy~4EeAl)t@G173Jn24%HHZ$5;@kHpCzJCGeD7! z6zP9SNPBs)yE{gOS3d!AqAzc{KfdYgeUOlDL@|T`$#!`b2wLo7ydZ-*;Cn0hPfPiF zp@8#zit48P<^>j6&~%q(wjt^;jo_)gleX!j^@1sa3TYT*e1r+``7#(3rj-CyuZg*W zVwmC=&rF>%%9$!{^|@R#z!%*6hic)^X)#*3b=e>EVb5jN#Mi|{>k0&{gqeR`B#U#t z&EMNqUNR3Wi@QX*P+iUQsiTsLn;c@#P0M_HrO?Cm6ufg*iR{@56-Ugzt|WaL$e3xs z0*UuUa@CB8>Hx+smjaU&{my1y<#4gyKFn-3sC+Fmp92J&lpJl(_#alT6|izC7?_t> zSUSHvk|SLbG`_ZBWxQ?(H8wkbJ(p-j-|!6(FaxT?C*bQ#G~}m~MxqnkA=}7;5T-Vb z-n;)WQQRWc3dj2Yi&`3(5+ogDP#0^?Qw^UPH~)%d(NOtSH7-R)Q_Oihx)Ey+Y_f=7 z<(h-_>J{|p<|%ElISZD|mGhn`C75yw5mB7^B6V&w!f1}&qNX?1+C!bPR_pS6rtr-E ziciv~u?z7^%WQUr72N55YRiDHfL#?fTXFGh%81HB+Llt0`qEYI{i$d#~=EIVWxy!nWr2{3b$Z8H1l)O$vI!sB?|kAC0Cb@m9I z?@#`{X?ZyKK+fFD{Y&ecFaHaXqCXlGKft*cR7jiIOO*e8(Uwm9Ain=}uA!YklA8S= z94a@%9Xn_M*YP(#CEjs?oT!A+^0*oeuNjaou6vkqS!VnSrc5bdE6s#0_YpgAcuO{0 z(m!WM%x=0cus4cy6PV`Q0c2_T0&cu6{Up`0C8>eD4M2(VVlfE)0MxaUAY+HpDQFFU zW&5Y|aBUp3ULXt?pNf&})7ea`GdLz$GNM995n{lm7JCXz^Xx59Pp2E^2Zqpw?e01N zV?@nTA4XcnGb(KW+FixXzG&?deQp6DBlnPfiWdhQn{_T4#t(lhjef#ULmusIIOu5- zhwbxR8ukALk$gJ)?d2JBfn3cbr^8DS13n!@xBDDWi$>lTY8O9Dv=7SJf&i&c`?>O7 z;Ozm%c1umX*R6k({QZU3ZU~T#0g757Mu(wUy8uMzGjg_R8xsnzhR&;L0nWQkA92$Z z;U!W+9pR(Quupa3GK|ygvDcL$`cB>l7;#$8fT#mTrUSDF6{g!JHKvA=IA3NO zlRxUu^T~BEc>$z@fa2ndGMg+_Ho%)YT6~S-%7`Bc&lGV%0&=rxGtEzg7*6+BC;>f- z9Pqd9EYdSh>wl^Ze3m|y*HRft1SHddqVBuaBLn78z<@zzv-+d;Q7)ZVY|pTl^d6ir zpdX9kTK}rr3n|fyH`PZz*Kw#n5jbL5rR0A`8csfoQ~S#{mB5h&DJT-^Y!8u^@YMl3 z5yj$E$^C}m;ry1sDB%MWkE@HUH>5V&|7Cq-yKC5hf6tXpy0$|3YdHtr3`!7F{{6Wv zS}-Hx=!Awy{`8@!OjSg%?|$0)-(mxulD?$s zxbOd!9{O@99f`+iBob2jf_g-i1GCBDUG z{>(`$N`h|5vrv-3Q|@F_73#XeEL{R@v~!dds&Zv|`nkIi0~YZ5EH!xyzzMEXqxt+a0k%%Hb| zKs0UvGm_{Q5e_HXR`SMBGpa4_3PlNnd()vkwWZ`lC?N{96=iYzf2;W8H*1^^UT4#V zc~9kiQC{MV71zqECpCV){2<*Q6Enr%nmwC|J7FY_at2-n=lG2svcQ)>C;=sv1Kj!t zf8G{R_qHVPYGsdY`jl8q=s<|C)pVbttZwRtAyQE+bDB*oX%{--Qa~$g#*qhPLdIV? z2|lw8{Ky;D_=Nnr5D-V}#aEq^0^Vx=n{MUn-I{Wz%TPk3Gtx14oMO(xnblzb8t9jd z7ZG{;(!3u9+`}2gC~(i-jAI*nL{6hAd->Zd>hRo7x7c@7$gw>iAUvF-H_kp=Tegx} zls!{|CFXiOrb6XK#CcC+ro(aGFGkomc|H5djz-g{C!+!u&u!e{<@|ob_J`CFFkL)4 zKm#IR&Cf|s|6TgP)sd7^re!k``zN>wurJQslrKNIRad+MWYSO6?H8n2Z%5v4`p-X9 ztEvR$RvMVpyIw8f0D;*@K{*G6B0~MC%Z_V1b-ehJyI_U(1Q3!Zz0~*$VdoaD%O{%C z#pN!i;quA$#F;oKD4WP3ufs&jH>~*v2N|=ij4LTEp5UxKJ7UDSU!j!*=ee=J5xA4X zDXC8jLXWlo^^|>C>x9wu|9aj_07-v7b=z=f0h+GTzJ9(W3nc=;SslhP6{zt&=Qdh|KUiem=0tIfSi0P)H)XA@oLuQJ)J;Bfz`@$>YA5~qj zvS+qOwVysbgl;YPf3vNB;;d^Y6G2tN)dYQwtg zBW~6!c`>+o!Xbn0I#j4B23GL%K6dpB-AQUFP*8fZ@TI9qE4~USf%mXHDsIdh#S2uF zuQ=L~bVyG{DJG|EGLY*Fqc|Ve=yO7oRa&&&>_b~!5`@5!>pNfb0;yq9AnhpV>Qpv) zr2W2rzQuXG#0==2Qyo4L?|icx!$XfR^?+12VEH!5j>X!ob^%8Afkd%H5kd6X(>*l1 z0*HefK)&h5WO4F?!Zfbt90!nqp1xZgsB{aazw`IiBWE-g=`9FR29n&R+AIH~%G0Ej zPKX%^zxD5ty_GSu6+6rx^cXeHsm)&RpA*NfdTiN2g!{>$xby4dm*&nNnF14`5aE@u z13-nUk`~fj{?d6ZoVkr?`KMTMNuK&c&kjKQN-rZ7TJGa z%Z^q&izNnv<-gYI@5yugJ$Y^pQWi?$H^8o=K&G`1Otl3P$qZhibw36k-fD+3gSzu& zARzE?Y&fbXqyVy~Eb!|**W(rzpwzL|WtGS9(54F=d1!?h2{3_bD7^i%RNg@FA5}&? zJe&2f5scvo-|5RT0^wtb$9r9ktT`q?uxXO&pd0c~C3z#=*ew6BDk9dl=F=D-0{W_2 zi-pB^asV#WxZby_VvBP5Xis(N_MuEq z1#L#szdjP^?^D(dQb9JgxvmQM8mNk}UiL2gB=MP~pmhx!%o?Bf-yMcR{bs^RaHrcl z_dR#{aSlqSLVI-ceq#b96U@LrQRas^|E;leSh3HYGm(n%=4zlK1o}ig!f2MtTt_Z? z7AG(Z=!!B94e5_4>P@rR5sxUsBSur?j)GAO9mNNU3^j-M1BML0J}(lP z%x||-Ha7Y9e(a3+U|?18fjPa@SH8`0!cvjq>(*5T{lq$$2b7k;0rY?FhBk4RB|4(E zcNSDo^Cwh8nCvafJm17Ue=rl3eP*mIQ=dW1+r5pp#O zUzlUG9so=|0qI9yN%vpmEf0vjUH?-~b0fiOI8TdNaeoWR?R-rO^t`}Q_~XP^2)-z#1u7siu@F^=77`)Dg*HkxGiu_F@b&RiT zO9mM%+})XtOKSYsKQMir#jeV83`~C2(mK8r5a%}?6)m^)Szlka`-|kRDEo_c_gMB^ zFXQLXiMPdN=@jAUwak4XT=N@;@B!*Mc+#3BG)#jD<>O0fTItHW4B8HnN4%_r_%G%P{}F0k z@paM7Y9qU^rN;k<9E%f$BAy8`1v@n}L!4igIGVTw`g6zA{Auya%Y+>DlwK)b>NLyc6x-sd&#-JXhG@ zY8^gPeeqRI{%~M3LH3FP$pX@h+HqboC}i>Ydrs0QY5mg9tUTaIB>NzQ+FEJGVDj%6a9bfeP#)SK;3Z+pa7#CT3jz`6pxC(^1M4!bm&dZP5-eOS3b@xh<9qzy_k4)i+~^u72C_iR_zahT2}z0%PMi3byzeLoWNp#G_K-y`8Z^^gPD&B^$;0 zzS9>P=H&yH1kUif$)O)rOW#w1;^Fad=CaF;>ZgPP=UdXmUz1XOb(ixu5R@$)AEJc0 zCcuJTwGrIx^y|)V!9>I9J&~==L*Zn>#BaV(_)Rn8&qOU*^rDVEUt433!u*|bbo|{Q zDX{Tq@AAmu__LMc`Q7w~1X6CcEMe*1aS+1?CI*p&=j^KKBkT)#IyR#gk0Zb1N_%BX ze;><@P+I&h7E!h2iztPnfAa>##?Dd@*rRx;p?_?Egnm+~mivKC@zu+}p)XuPTx}px zCeNhlT^*U;TRS_{9e6&f#J8O=^zd5sY7nz=VwFQc;Uk(RE2t1u2v2WRH`2Ol5&GB) z-NgqVt7VQaVAq&~c3rPN0q#BHp*?@9BwY$INBTKvP7^A9L z{vbgc!Zw`Rprq7R82f5?^g=)LG*Wr-2GT$Ewsi^ZONd@@xlvg`S+5i2 z*Vh-QkJTSpAPJ)UX5(V^X^0Y%^u#d0lVO)3-Im zlau<(O%Nfo*0=EA0tQ+(n5bS2^G|stksemCAM4HI$55g7^ILGk&Dp>KN;23&GJC@L zAZzw?7_=}SXTRJp62DXBl{D-n!X>CBBvx)20O~x<;Jq}nFjp~geRcQ3U$;hOy zZ{_Y%6^q7mrj%P{y||-f{JmvN#(K9ktZ33`A!g_qS({ieePKrw=NpN9Ht z@5U&J&&>67X5P*xgK6Hcddxz(I3ETbb{f|9*Bc}~B~xIdE8@SdPfB3O+zcFvSQs$X zY0qg;o^8KrB78jOBkgTp0Jth85%Vr-2f z&pN+)j4GBK&=YRS-xP(=Cp|-_TOJ8^1w4XdlEB2ov}Z2S1m4wlhi3g9O4U;N^v%-( z2?5!N4uAbsX_Q}Ux>*b9>c!N_2AI6x;D!8js^8GNiv3yCuE#x_pmQqZesd=($*osVW*UIJ9FtUj$@ zMo%>{H-#?0rQ(HAt3SS2tU2QLnj}M#dU#$ac9lI2eg!nD;Y`x7=aj!5=QchVvB#22 zP+v^m`#OMV6s>baso!5R(x%Qn@hZCLuet@`�bn*8xkPa-E)R3;O8@hJ{z~p2&!M>OE%d3vyDv)PM$aI@ z1mZDn$gcRo zSXM~P4#}(IrQuIQ7Az8~y(;tdUvRsPnKc%hW@cp2_nlteOGt&L3YNh1NR(_ObiiQM zgLe`l)h;n8T`Hl@-V>56NUzR(jLP=P2Jl3P!3kbP zZ8erImqe5sOmRCjY5*7b0OF`Ulol^z&ftuo=o6qHP=8z7`>Uteavq&S;FUq{$ z$_r?`r-+=O17sBvtPVI!!qj|nTt>$IsGG-S?=2T$znW35D}a_N7nTlukeFm{Fz?xs zu%ZJMb!jOC%QH1`t4O}>(H2YQg&lrRC|mSGC|Nlb1#DorA?3_gOM}v>pv&7kZvtiu%;rYX7fA6~0-mR4I>jO}Ym>QFub~vb% zfTQF6v<|Yz?Hif9Qi^Hzyxx?hXpvJ8diioy?p*^JnR-X|I{m!!z$d&pika1`YCF2e zHx?k3UHtf6ZBey+R@?aH$LI${;Z&amieLToY)?&M=6J<|!$j6@)%Hkv;{$$E6)##J zb;h|wLg~z;D$cX?z$WY3)P??Ji8K>$8l^?1#}=cHpZ8V3nYm6OIo*JZPIbdZ=3Q-@ zv60}sf_87C?Krz89qoE6R0iw)FphKC@}7=~WwcE)Z;&EIg5&#GvIM4r)#_f(s|Yk% zIA{^ERe5?H#=-bDC_w*`D6;T!ogHhE zqNO8e!N`B%~rr6u2&qH`Pj}RPF zK_>QMrjRrKjo&sH5)P&p@sK=%DnQkFXdYu+8$5r3j%QI8F%*vv23>mR$8*;#Niv}d zUK3HAjfq2ruD6?G(vmaRG+_igV+*8sLwOej36%% zdG7bF+IC_N_Eof1Bu|-yU zN__zNYmd(Bjuke}>M*b_zswWX_B7yAs~4$guKdy)%pis}2Fh4{iZ%caE|(h1r>fYv0Sk3r$THS z<|ryqx>db+f*htPD;1$xm0v7Iv!+2DJ$j_GiZ_j6@NA)Sqy0EXQoSrC8cu|f0`MtDdYq6-|8v_B2QB0XW{OHIsVg}p#*NfH~fSGzTViquH zhEOIpS5tz9=dhp-9LvwWobQwC3MUx&Kdx${mBv?l{uolgd6-y0Y9V}X4^p!o! z_3H$NQ-vrlTY9|ky~^gQDY1u{c8EYk?UmkGy?f zAXv7XhH&fLe^eT`?&5=*NQ9z$1D=L4OiB48JQc@~ptE z8(3Mw@=SDcd{<5*sbz5I; zy=ra{Vv?(OB!`$Jf3|8KLdQVl_#8dbYgR|9wN@6pk9+dbtJi-EYwwRlNu+yKa|Se+ z9Pj)0oF03qEZv*)pCi$VBMWvqM+Sl_wgi^&jh)-KGy9NrX=ARGo)8sh|7M$76(=Pg zzQWz(lex^4aun zMPBaAb(VOI;!M_43of2T$id>`88g+xPWCod>@M@)t-8qmcdJZodU69q%P?C~_9Zt_Kkn>OHF@EzO9+QcQO8aqL*d`#zu3;)-CZ`qev&zLIyANByVxp+%d# zuIzaX62|#4D~kl390knu;PlgIZGVuTI6qnE5v9xveJ+}T*wAp&7pQ?fkvn6nZ@WmP zQk~Bu-NYu>76|Kv+>^4ZZx7?V_^Vn>Tiyg}lmtF4O(v`APbvqM3TW+frFp^Be`pq4 zX{X0p>KzBS)PH_%OPIvC4h(+Ptckrhty?QHd2Hv85#>B22)$*l&4h_mF@lZTjI9!Kdu0YT zCej5P`>}x~%h0=%LEjOB4z8edeVfdVj~_eGsEV0IurE8Ce*y)JRId_Um4}9o)vO~p z!8{%Mw*8G;9N^?A1l+S@CF908g}Q!XCzxBSVYGY(%g3d*`>l(o0q&vU;}$V{=jEcQ zoEG4UdSN(Z>?XWN#DNczQ>k(J|j!&GpmX=#HE{eyJXSzJ~U zy%{Om{Rnf>a~tUMCl26Qfk%rTAa2FBqnjcStL1h_)>ex)$Q>v?Mw7ygu>k=aMSDh_v>orlF!BIVFD7%*9^slj z?YW00VYoeQqp!mHz;}G6GZQdXHbU2vU3B8D4wuFlTtam@DcjFpw_KAxc>{Men_Ie3 z4sf^{G!ts>LVTD*w0x>n{Ko%icNS~fS?p`OED2H3<|!ZU6TLmf20UZ5PL3#tyI7W_ zb6$VrmttOYU!U@sW#a>xh}BsPU`Kq2UYH>4j1XC-ke>N6qp|7bc%WoCT1=5AZnVf$ zdpnwZw7Iyu@cO;~TSgs^k_3ZAs84xKX%S3kg$Pv^>*(4xlOVkxh5c2C)g;d9j-K~yjtsR7F#ZE`{aO_`(_6{!E8bn2IWw9`V=g4 zO+(p`kzwS8|A)D^{HrqRx<=^~Bm@Kj=?>}c?(P)n?k)*wL0Y=IyStH;kWDGwDP8Zi zxA%RX_jjK22b`~aUoltBHRc#|&5Iu0G!_>KuJW6y=ljm1r8z>ZSfByUQEyB-eZXs; zkSO?c9a(Z_g&--D63#-k`F1~gR-`A(`8^iWoUh(WF0TgX=AMoo_D;T9kcMW8-#}Up zT>$gH*r&|vY3r&fwW%QM!3Z!unJ|v$Xnr7+;X2h!S!1n`D)H}!L|p|SFe?WskLq+& z5b_H#Xj{2T6+HsxgX&@|7ucy{n$zzP+__F)_^^cyI zSgFrqnn_cT$$ZNn_j7~)>e!+ssv!cWZ3&Sjyu*ADV9L+2JoIDsPU*HtI1TYL=Kz$h zjWdOfQ61=Ly(4#E=#iqlf&Zr}(`CQoKLg`cZ(Xxpf`3}YN;YJyp;;Q+23JP#2|4W3 zSf^~oSp&7smKfH_@*QK|CcG1{ONEHVMv6O3v+j=_@XP=t z$7Xwu@p8lKsiLw2c*ru3wz2*u-II7eMp>HkXvf8qR#!tX1)V~tUPhhJFY{#}NruyE zGE2n?o>fht^}SLL>{2Y(x`dnuq7`KbD<9U%rQlE|x9n!;dL&V@vBTio=wCY@87k?c-g+$4=7vgWKb(K9419*Pp%DE~x_o#lZV)P0 zL2)f+ii1whqIIH#VWhPjv&QHfp<5v~2HYH=sFnE@y7=joNz$MZuR;Yr@!#zFkpxxv zEKDYEl@&fTFlp|?!BALFf3tqctFhuSXoziY&t977@pXXX(zKhIob5Xz9by7jFKF#r&_ZFg7aQ%oO#T zCpj@GY;7-l9ifmLmQ+a8@)KyF?~kSAR)q+z>GPAXAXL&*Qvs~JOQB$)e-&);7G4Q7 z7B;mRPtnb*=)>`p`=uuj1mcnB_M0l*Rz3zhvUGB*gqF#eunFz+BE}`ju^k8{_a(CN z$9DiUeWO4VFqp<=Rjx5&_xBchyX?=k8Mgidpxy}M9tCVaJ}x-A`(`9P$}m}Bi_+AV zRC6?%4V-eD54GS(QihE*o0L>4m512=C%%ZWk00<;{R(iZB@_Z{vHM({v|Q4p{M~_)LAMx8R?i7)MIj^b($l8A-MJD40fw} zuK1LPBLUe$=#C#;4>-%d@!XW1!bIaJqutaR7u2l<3atG`Ww{bzx}39A$iR1W-A&BH z<9EZHdTHYIg8Kt>rY%L~JGMegw2ftBg}1w&b}ZPsZhOPSyDKeqB%+ks;K@M7g@qGQ zYdBnyvcTTABYCwkM;r{0d&9P&izxB91qvGz1ys4KtmglyE+E8ubQ_Gs@3e)JN10yp zHjZ*~v86bb1`U8Hb^cs`WmFAwn$wEa1;x|dvAN{W?7I-H=FcK(0Q4QS#20=otS0wP zi~5EoneD=KPP`iJ*9ipiDokz!heAX-`sJ>%-pA#evc2FvOTSbpV_XfB#OiV`^PISK zHmG3!-75N5nFwY_P^Lu`N4@EPw$` zJVM+;Ye=Q48^`(Cw4ansP~S$K(!JpEYaBjp3OSSbegRokAK^!WHxt-7CPv#X7Rj8X z{_!)dmSM=>SuNFrer7OACiU)fgZu43qVwmjtjC-Ecve8^`)gC8wyL^7%uer7o+xtP zVv{2)D@~JKuPRP9Y~zB)?Y;(6iBR%a9ZK-{T|rw8ce1i~k@Us*6NT1U?4hL+wnA3ufZ#}+ozW?&0Jb8$%kG?4i+z|RVNuotqKtoF5;+oqlw-9r$ zUcq@vdJYNlOQL{%W3{q6%6D1t6R?EW6lZrfd3%7HIaB}F%?S;6E$C-J(1iwGt(Pbg zg>j|gfr!p@&|Ak8c7j!~{Nx=b!T&3M6|6j)c>vbni1qvWVjt3HiZ;KVT zzQQ>_uhpy8coXooeWpWFZ1&C$bx^%Sg+L$wbPKu+5@Sm;a^&d|5!Ho37c=Rwlq->B z9pS~mVh3-!soYjiIl8}}Lee5XNWPN>`DQlQy?-S)IF?IbrTXJfHqwaR^Wh(w!^@w4 z?l%;lkxPxLKtE;u356Vbqp}A!2BI-i8GAATDnj7Ta{|+b1L~TA)j%4i2nNjV*sgmf zX4L(5Ls^!71N4XQm7ZkcVzWCb4*GdfR92T>v)5F4<0+`f3$lfh=-uKywoMz&;d`mO z#bo(q4UtttT|xuV?q+ic@)7qrJa;Jt($we5 z%r9Vf2&P+tG_TM)9s46=+YU$v%?`V;gQK`AJ?XTd1dl3)r^8}?7wYxByL`p%I2KLq z0+(Yx3N>$OcptlSfFByZPdbt`>P`%L>2h8!+log=xL9A0ex}@cQV~*hw9k+2AvA!P~SqfphwxNf4kGBbc(CuFYmeNdaX)JBekep z#`o^Q0WHvK3-4Ht`LO#$KUcZAj=ariDOAvPQqZ;oK6pu!N)B~tgevZi7pDPuiwCNL zLpKV$E=7<#`e0~0W$-0D;?I%zs%l+cL4K;CpakkqObeMokNY$T?~k{UT7nuhh>2sI zm=Vh)_e8_}@B4%1`-9JpM&7=%DisS$<9&2m3mU>U!DM07#wAarlLeh5TX7aF4xXY z&!&{sL3}esNfc03&;SIM5$SM1U&$HwWtbs?l0qc_}sLbQ6Gc3P8@FJO^z>)YS zU_L16YecXULxIGcM#DF7pB?%JEqrKP5vbH z!mfZEtL&x%QbBUV(^V|a)zBdDoh#BYEHidk1ail#DxBGhT<#>x}T`!hz_VMJ#L+?@Lxe8_xE03`0%{^O~kV;=Xltq*MH_<9d#%C z6xxf>YWY50N5E(+?wkaHW=;qtWhYEDdyG5_a5`&}@tj7~cFSLk<*PF8Yws=(H=Ib&9g9E|whG^MCtGw^i$W0p#Qmv634r`%M2-8cke2+$xnf!vLYKQ09x zd(`U$q*c`&=Ud8&+EOiHUDLZdME4|M3g8Ovd zp_A1Z7<7Na=#}qkcrd^c$2kRr*Xo3(_hC8i(s4WOtY)IDUZJw8(kbL;!|!K2@;+5E z63F-4rzlM#KOuaci*It#sw}y3e?_+Yg~lei7cQgST7|{7ad@D)fy0{%!J%o6UQS&W z2&?36QWo+YVBdKW+$D+V6ofQv?-PX@QHPOu;G$7nD?AJG(8FyIyZKJu8~wQb7y6Jg zsKbsP=ywfgP*@$lv;vxvHTJSg^NamZdwKM)t1RG$&0Aw>SRZ`kmnQm|P3h$mY#=_W zBSn5JW11F?=fn%#d!~hW#?gECSA!F(l)?2MswSQs5{m^yHkK4KqFXf_Q0lzXY!ipu zF#vu(VP5k+elS?bEz*$+(XkxE7J zpR5wJTkSA$ljKQQoMNa3a_sT-0qA2R#I@3sP1-CB zh>ChTEz8La)4!$yPDSqsG~@D;{D{HI;nj($w}vbkN4&>EuSv-%O_*K|1ZVRy(d##- zaQT+@F|v~wqCBO`VnX(G>X8MEIKK;5D*?4e7}WH-cP@kH3U;4Np`B}7EsLURrd%uL z&y-SsdKMY>_L(BY9lKs-+9{h>cp9SZ{6$q=Xh^_2Udk7)A@*zzHl!rxj%OEPkH{Zdy2bL=;|qlb+z6)!$%mOD-*>ireE%uk;=^GVuvJ}5~ z()}$Xs03PeG5yO=V$wIEXS(2q&03$U`uArkpUvo!6Au7PwyCy*>TNlxlsbt#3?Z{}AxgFfKG8Q}B)uFP97iu4%X}GN%3m!P@fTBGu&RP%SR7Ji=vtTjzlfmdgK2Ucn|0P*AL)C9Lz>&Wz*we#m{u8 ziTyl44vk?h5n!$;$TU+3UGy{#ViEi&0iKbsgY)Tglx^NZfFOCUYEQC+Wfw(oGb zMin7(8a}>-b4Q=gpwVS7F&&C-n0rX8Tj_S_-TzrjeW+NQe9_o=_sbi|IErZ)^)8eX zE&5=0B^nB|6g4}%w&$|@YR2Ov?RCw==UBT6Ly;IVDKw7Yff#C&xXK%Ij1JVWXW-4(zxYHD=ECT#b#l0y4vl)Bi@&6 za_cF^it$SjiLydhT%86FYlPviDbx;SO1RBmOYsJgPm-;>7QdC4F_(=7DXcEFW~l(> zycDRes#c<`OhrZQd5TXWgSb06xW+g*pJJU9oTQjv^^?19#(Ry_}igx)f znRa+jST?1y#K|Diio`BHYr#=8F={axjPiSF-yC(D?9tvBblDCh(Nhi8d5wMHH$;b| zrM!;NW6DH-ufwpH!B$MXRBv-->veV8Ox;-(x1hdQonH788V06j&a_WD`AWKa^{ji> zo+!NIvq+lVcUG%x-wPQ(8iT^MV%UpdX4cuaZo6N3W-)9k*J%h-IvjBPX<2|Ec)1&i z|0v_Ej0#Es<|-{v{<~`~J}cawm?-=7AqUd5b&sl)m51`kvK5QoM|NFIBD=w0MBL3x zz9O378S7fz8f94DAw@*1=J&p;zHkE?)^&MWlZ4(1$v<@66ytils*;gZ5?r~kN?r6_0#^(YId`zO-b%Gv($)!3j4@Lz|jlNud6jzD4fxi^_GoTt4qB0n1R0fkI@@qU5cR&HK9 zyr!ZooG$@%);qz@PQzAi@PAr#_OhWxd0?7xLYp5SWp z&|;oh0ao1pz4qST0RLxL+Cqzy7MZ0w;3jT$0-N;($_?P^e!9*wUMSD3!q8Jw z!U)CyR%EXkR_haj|D(s@Dil?lQHy+AO${R+xQpP{^AjUSF}}eoO|eaan66FFc)LKn zrx>u}&(GzXvlgvY4A!;(U7zLJQdAfZHS(vgLP0d&(Gw31jLugvU@74JT-SIM6J=cEKI=xoWr z-7iWG)mltn!T1VjWcTn{WNBXrz``!0X#y$trGN6q<%0Cw05A`TVY3_e;jFnLocqh85uv|fff9e*5D>=XjzN)(Gv?E zqik%_*%J>&^!Fq=iU%e#+rcMzCa*;p8b-`BZE&yF>TNa$sX%TTLf#UW**agw>+!(# z$M4a|7*I{T$dquR6elsj1P69&ctGn7wTUaOSZ zmTK`gG;knq7MAlf*#I!D_frZK;?Wzzg?Zp+DG$V?f?8zBjRWzwQ!{>xJ&Y9=;DJx; zFmK)ITYwFZZ*UuU82O4x10}GI_Fn8ae{{=N8SSquf=#SUVMqlW;EQbr?mC76=kZr= zma5iPDVL%k2tUk$l*B+|>O<2+GiOq{3^n+uj$+Scts-WQ;ytC+VW4HA*aw4rK~MHy z`UNc7xhTz!7|>*A>p-Kn0*1eOv>`$t6d1)fUDxE*`LIXUdqcs5L05zf!BXTRiT9)f zmlbfGW;u*0g58qB#Py-Zw}!i`YnO8-@aY_;;CSp-B(M|IJJ6t2Q>OA&et_-Jev~jp zn~bdYm^8Vru4lOfic>2+J0chaq94mO4bN`Mz5LAZ;X9TX>WQZ5uJNrqd9P{qR@R(8 zB8ghdM5SJW=0iKw4^5YqPUti!@#|Re8->+#yL1N?XMY*}77tP#m-Z*Jc+O_AABeZ` zK)?Krvb!#mPz7AHYH^Kj3~oE$v1B3(ikJub;J#k53Wt)0@60W#@7+Vn?e8AMQlFmw zcKV%)@Q5h|@r3I10?#hirSabhZP`7xESvqX?@e9`pJFq~)!(CJN`^fQJ#a6c65iXM z1Xu1h4XtW*8~ZU>)m@h})uLrVC4&hWa&i{xUAffL^~=kwkbVjY}WZ|^wbjIjo6hw>J@ zul9qO>9mD%a_84~yc@c6jpBIZA;-5do8c^jzgr)tKK8tB;>^@=*6Ix^LakwQrVjaK zhCUfBvW)QYCUmt%4-`@nfm7Rq4L@zC*4%Q}ZF^r>SJ7F&OSJOdS7>rJIaNPMWfjJ4 z#_SWG+e^e6bXUHIV1ea|5cXZ2fq@pb7{^IxY_RxW5?GX}x)tDxH^aJMoW z@Zrh4l^MDYWzG@Tw_RaBBf9LbIGjUwL^rG7(MPTP-7Tg+Ol-jor6D@-MzZU&3XZyA z-tc|7jD*T;cR{~Q`w={9BKlJKG*czc_t&c}wyt4&JoPoE0J*Y*gn+nyRL?Y>myO6pJMJtUgQTI1@4(cxX3B`ui7pQbXygHM(r<==0;roHx}JeKl>C|I-gw= zQ?}{r-+p!F3)0WtR=o(@6Fr-)f2KL-njTD+>P~dToiwk ziErxHLjSb!IpQEquG&zv-C_CT`k>!|Lv08$K0&ib2ATLwk>%BCrmUN2Y@NWgrCYvd z!Ew?>b&kQg`@y=IbOmT)(SfYL;nfG-=<_YhYjrkP`k!b-U57c(1{*&YvJGQ7iWg{R zoAUe7O}~Ga@T1Zc>Q{z!_Dhq~fu}4|V6bDQpgO6~&n``EL#O2X-56P&dwl^qVB@n& zu;58JbY1^hQdfXty*mX{| zpMJL~29Q9ZBHQpH;pn;^GwzVPHgbReMfI!Izzl?e0MhI`F-M}dL2Nm}P#pA#U}5h$rIY`{%g zTt594^{+`Rlq3NPYCu))5OH!q_g^7joCS3ypZFfgIEiD|iyb*=Rd-M6{#A{8S zdeP-9iaIqX18XX{tanDDvkQf;coG}B)i#+0XWxTa=@%`ZdG0=bcsJK53S#=(9axMf zSh-Ts&UYgDEBb@>M~NDyw=-gS-^lsH>dtuLn`(MK=)ZLo(HZtXxo1Q9K^y3UU?p@` zU8u0JkTE*nY3q?Vri&7!)vtjzldFzsrs3N;dq~qbFS+^ z+-`@7vNRaZH}_48n~dhdq0l92If@xJbI-Xg(yw1!-U=DqB6qt!!Dn*1_8kam<=cF( zI>0x>O^m?%Y2NLyk1D5Oo27k8A<`#!1Zdwy9JLDN_kuSc^)s7ZR`1^n-rZp{Jb$W9-IV4llV2c&KFzjGh||L=%(%Li(K@`3Xj-MD4xTK;Uzd8yraaSMJYU>>o)9& z7~K4NC=1nRgKX-d>GeQ zRj%+rdN9DFSKcD55{H0tS-%Z^;?IEcC1nd6dgcv&pU1QHHCe zx}vGeD3d+?c^RS1UEzc{UP0%2ysoUcSm@QLq=46@Y2@OAb_PHJi1@Wg-hgep`SgRj z;1w7(Eaw*}pbVop#p_!CJWvRpdz+vLbwV6VNq&M$60`dPfSOcKM>2GM-ncw!A>85u znPqG!L+B5b60f%h#d}`B2EQD)7FVZ&dn==1lsX25qpt#?9w_C8?>Bb!x#8O^;@8W^Iy6-ji;MLKIlzY>bJ1; z9fp;^BxhyK-U_hDE&t@n(hRk%4>OmFrbYPV9^2~?;8zS%mcd+)vEVF&X%}TGTuX0= zkmX)0yT&c}Rpn}z>f(wnPUZ7JXK{hdLvZzzhMjqqP=Xb&H(n_DH-IwAN{whPU<50k zNLlyTejjDl@3rLSAN2BWeJ7DQoayy#t~M6!lqZ(=oE zT2h5==fwUjMIU8P`;S|rafsblw`dAo_CfC_pK^4iWtf$`k~e7*I-{*`4XyoYB|rmx z8tif^8rcdc$5d47(fw?We!t!3DGVbYcV11DE@ZiBYHB=kU-H7K^)O=o*&UGIvVY@%Wq$nj3tfcz8&;EM% zBD}b!S>JUGEKVP+JSISeSg4DC?8Cm9nd8pCSO0=h6C3dS*1|qp1#VI>tl^99x_Kv= z|5q`jTZ2HB9Ho;K5}=GxEekIq2~feq=T51EN-q0S^NYGk_rc{-w{eUN`!0WM z{30{qZj`6#JZV&R!&PoYIGuEDB(ooO{8~Wj&@W&=ncGN2vO@K-)TvKs>v10TRa4 zf!;4y=4(=LD}j&`lP}?lxn<4hL;W&uXi?K%)oQN3bA1gQ=n7@S8LD0lh_SFrc%ULqEioC5 z7XuBL=}-p{bu>IvUNJaHC|2?5eB*RFr=rT%-;Hk2m{K!nHPNfKc?!QDso%O}de>eu zMUka|#apmm64wN;fcyJLCR;4fAI=nbKug{++Szln@K6F2k2nbtz&4Uw$)z<2q`dH$ z#gw&_X)$SR@mikv}rc#ht}kLP=5i^OPaO6N(|$c?woFj3d}x*%c_o~vsBl~ z&Ks!U-Jso^%id|d@%nb#5CzMW_fT{~S7fK1^zpW2QflmCNBcr7Ja3>ff=@jjhi_-a2tR@g&+1j?N3^qg@YNbu5jOdDfYf6^TqoP|6TF2w2w8Kirn<0m3 zOqtiT|0ENHaY47xA5x%Ta(itAswP-Vnbg$%*t#)*68&gZK$aiBN0JIztdyc43V#KJ zPoUZJknMbc1S5fA5)TA~^HUCz?}$JP{e6rp~w;@R$T?cAE!NlEr7odQQXI)j2nzbyc{GP0=;h(5}pp1d$G z&vXYD-#{l;s1K8xS}5l89Nb|k-7Hi!t8a*idX%u;l>DGfZoH;krWd8DLo4Nn8{EN> zQxyb~7D{!fYrU|u(@T&Ji28|MtqH#MVLI{(X_z0;5;L2RTnT&TDX24~+-zJfvZpH* zWp$EzVJBdV{UOhx=#QA`FfZ%Cf6ActRx^P}x?#F6p^c=GH&x7`+;Py@g` zQZM_veL}sWUYp1iBEVS+!>xov=Iy)raj_y?)Yb1@7V4_K=ZC}R5(&&0X3>4`me~c~*|iJ9)H z4dUrj5Q7SEAO=|#+W0D_0f%Xm&6O`j07Ef8vqOf05p6yuR`wn6%vl5r!BBwGBa3T- zoWCus96GnM0#=qDLEsN5;CErTSwbMA5kN0mZLVIwe~$&La7yXS> zi^+giKGW?2E;$gXfD7{G{mNjgOJBgE-tS7J;NLNzn*loj2A6YNHX#DljIJPZac444 z?}{Vy=7E2HLpH5JZoDMz&bmyrN2-cY<+uP#7bIBn^qJ0i+1jAIh1cGStcCBrs9ZYV z%=QYTDSt)5vx>3Pb&6vO%>ko|U`Y=48o=NTmTkgGmwW1E3D$;2K%fbP*FDcn4`5&i zdmk9xr}G4F*f;{1BV}fXgZTZ3`B%&|ImkRR+!Q2 zR`dWtJInDjd!w)w52b|raWbbBIY;5in|bW3ji;zJG*Qug8IZ4yP%8n@W#NHn;6CF# z^~d`Q?ft5fRb6M^Ib^G6PE3tue^=(${j4SfU+pW@SVnbJLPNI}Yb*z9JC!0D>CGDy zRQi&x96=61v$W=GeG7hAj~K)<-(9o+__D8>HhLem=Rf}PaC&b}n3ao5gSN?rXz`WY zu5z(aGTYhDk$eXM!S3A_AIXR;@Sy)%1;uD5a}YRG%uygvQF8Q-UVqJm2bV}MWWs`r zTpTZmd^I-baHy&zsTvoQWLazia0|zW4X@jojw11XQawopoZj*AI_yPf?t0uKkN_DD z^|AWM5N9R`)6f7^HCR0rpXb;3pXD13UeLe-rn?ialeO6@|2)$E?H6V%Y%A-Q=+vpt zQ2Eb=I!n19p8g19j10vqg@P=WR+kZWTV%kDCxJnR99!R%`{M%4%)6CjXUGhOrXu5B zgl?0%^Y>&1rrKJ&M`8we{{AL})&*HwZ9e?JF4qM;&d)AD&(MS!@7-eE62eeHVTSjj zgxs!xT1X&66+kX5mu{pB;@yPH5|!cqvkp2iK?&1qMFn#%T3sCMi1%bCCskoMlK#Ys3r_yj&h}fT0I6f0=XP{!xe$2V$pP6CBn6 zgIGfla6diP@&^1~C`{vb^u@ftmzVPEjuca4>M16Q6L(=7#`c&&Y2lCWTs@4yLsn`AIdE=%v7i$6LNv+_ zsXu`xP`ORE^Q;0RWzS3e4-?r(NuUA%C9^)f1l7N%4*$DhqRZ1MNp~8RCr8A5Poowo z8P@CZFu_m@N#%cNTj3N-Z##r+Ik4f){_Ohz(_%a#If88Uk26t-!d0wej$kSQKA!SEms61WZq`rj|Ya2-UDW$v)}$8=OlLJ3#C zBOH9GFdY9|h=pD?-ffEPbZv(~}jy!49lj?n`iL%=vgIo^CN8pb3)dg}AA5DDz(^exAuv?atxIu+$fwUgj zY~25OLW8gbN+BEpoe$?^|4ckHhK$Hg@4-IrOvzqVe>@vx%7+Wz|Lga^Gac;ybT|Sr z(7T(Eei!fAhO`$*E!;-NMu$HW4EzSfIW_e6Bv9|6-@+P4QX|RY|GP90i2@t4)0mb; zdKg^)Zw0F$=AU(0?WcR+B;YoANfa z+9m^7jIEkJZJ>V8^w>`Q^5nm3fRGyOq_Z{bbyEK?Q3V*l-%jQ}nIc%M|JAbrQhxyIh`t|JU*V&+{Jo20)tidTam91-PaR%mU@PwBTE9n2x|Qy+O#J4U3&@%<=s9;7Zx^U++t! zL)r|*`;n7jFO+bagzYbqm-Yk$58Z&xEHQMcARgLp&gd2ddYBrh@ed@&@PDxXO%oC{ zu(E9fctNk+LC%mrGH--S==jF}7$6~i=8L6Sk)Zfd5{uKaWq_K~@Sj;K56pl^K$7{V zuE-R%ov}_y{ALX-hxo)+QB~Ie*aQ#Q(_y4H zfmsegv80Z~lKR6G48w2V>*1$}fmg(t2iUs!27p>pqbY53alXZcnbo*@^=aAHM(yAJ z3*PDWft?Pg05(qr9XR}d|C?#~|B_JvqXJJ!{`q}Sf8-SFHuC!OpI!y9 zpo(<+9@62@#aDveCcr#dHvzOV4CwBEXx0dhYB4j~Q0YeWE_B=JdCjZXVc?j{KL04i z%<0cssOO^khz_(-^F4t?H_ZW?gBrjM*PQ(lO{o~hw|{ZFK!AVudut*g_6SxQ^h{sS z5exA#qmX&GgfVU1aGSsQUiCpY7u@c_(c|M>@a;n&e%G&BswGEYOE-g^lj>KK^L>yqoFm1jL z%268jwGeFPpiOU#1=H_!H+I(%qgC<0#c|P4UrhO-i)VH#}ljqU8Mw8U|X6W=? zwW-XBTV3+Zyi~r=(h1Tm!pDB2cONX5NgAn0)$;ubLU$z6@}+mkv@eFSd_8}QRoHZ* zS4KAW0f-n(4O<%33EU^0BF0GOn;y57(oe1kVk?EhutTS61mLE57WFVKTX` z`lIb*ecbIF*WmSwN6rbd%9%vK$a3OK&p~qe`JF@d=5TkwK-2Z|2j@lU$BQZEF&Mlh zAuK=6n_fVY7!E{%#aJUDgco8Cr-sSy>6&~{_V%~Zk7x^`oJh&h&9Vj}KvE)r)(}mi z)Bvb+to4RF1Rv&;!8+{mGoPt-6*DKCj5arvY7JjBgK<}htLm~(#)Y3f+wYfYIJ)1Q z5S(o2cf0)Zwl9y*cYg+@E_+tpGqf%?GA$6iUwFpgNM7g>=oi=?TJ`d$2GHQ=L)hv~ zKrZ-rlvO)|pN75rkS(>Kql1};+8YXuhr!SBc1f&mQ$1VFdeyl*uKU&ftJ|Z+sg2U< zs6nHFkTh&%FDEmJ6Vuhx(}4H%id8@@%R@Dz{L`H-nzTY1FlRjQh;`s^!OabvYufmF z#b1O(%4o;L^NI%o1$%x%;##2Mn?)}`n&2$eX)})LYSLOzc61%PnQikN`XO#aj_{n z{h{|a;s`4nYFpCrmp1r=yw&F8ISYW1AF3d)uQ`~~7)fDy|Mf=jt2`Ska55+3FuAkl z)o|5&HC%Rl6CFYoJGcXeYT)CE!5V0ee-BiymH=WVcQ#KpGGj?59is)%cT{nCYH1?P zW|lCbP2^b)K9Q#Eo@A&^;mj_0x_u(-@KyF}D*j0<50LNQVc2*E|I9~L1FHo{4gXu8 zbOG6V^uL0g`#X{WW9!aRCvhxw_>oD-&mDKg&YvT%2{44yK9A(%BCJ^r=3^gttX^6=@_RS~f5p8FgzZ{HHLFMz z)m3Elt16+>N>M6o(wC+8tY61yIZA2A7}YfJi{O)rhlIfj*UB*c zwo&c3GJuU~Y%qvw`|_@OUD;ln)Y63Is3A9@PFj{W&YcqUCzOMEK#epaX*s}32+%Inn9qlwM;;)qFbhB`Ky{p^*sKSn@4;-tX4IhbxE>!FVT>r7l9MLaJ&GWsT?c+U?uQ%u=u0{AlX^m`A|+TDXL{@aYEhwIBL*P z-SjjY@g?Upxr^I>)3c*-VMGfyDxFcXfmXLwx%=UekHNMLW0ljbAE;%9<8}Dt>R@K~ zc)J_BiG>d|dldc9NIzEDphWhX+wC&3?gz4>sA#CP?9k~Ca<-QwKnhNHZ7?PYh8X`H z`iJVY{s#ce0|njI2qXXfH3iwDpDecj!~n@TKoZ%>tL=ZR3jzeb&h5QEy^;nX3cs@+ z%^NUYB}szZQm7j0*}e;|ZRX`88Ug9vQYi?Baiu$e&kx?VUoT@sLNJaaG6Z|b(8rtl z$WAHjU+QrB=-B#Ov0Y3}o?;!#S!2<@fQgtSvx5W4LwmfnKhW`&Z2-QwV!lCKmm0mJ z1V9M~h!uX2fLc!XlJ0+!DB>Cl&nV}GgU724B~PZD%lQhc_pkO2%QRB; z5M|Q!{%mi7f!SwQ2-h;vdLSd_NgJ6?NfULD!sGd1?0d7}QKlw3RVSda%2|pB7Lhq3 z=0p+{5oTG0K?*XMI`#8}r_i(fh6kxK^mJB~9H%#4sh-ApbcFP)u+}@}r3Z~ft{L}G%5KR2YJ7x{kNXIVs=X(rd9>QvL|0cfh{HR#rxz{TfTP$x}SMTnGE%XFX&7y1pZ4Y$OSfl zFdQf(T~l?%JFoWl7N|vk@1~Zq=SMaPFq4Nv^KXk$4h_8=CFV!@yeB?mt83fg-s zfUNsKc;-62sf^074pBz0E_Va?kT`(XnEx?QR&GgUFMe4k*cMiNbH{Pkr46^SgJtEy zH>|4~#lZ`My5+cXz%H#Evrx#^GkM9!vUwKm`5FnJtWbW+GAoh-b=#PfCG7c<4nigi z`SRByz2k!F9@>wF*P?tjfdW#d4jMjkZt`(e2w%k_kKAdNMBLCZL|eKq{cU-g;r+O7 z2EUz1ec0V2^nG65jm(g#1yS$vM_}p5{ca}iE^T~rJVBiQ^LxT#P2EP?T0k{gEBsKe zeNA;hh4-CwuD%ng9AYpa@2hOdqr6#uHyKsoepB-1MuP|gSF5*FuUNfyqspwUENHL} zoz%swo1uIpNW}o9{9!q!L{@aGJPoYIE3;x{K5cR9m)3-Ou>*_^tIDm4k4!oU4caSD9 zr9cJwf$S!Ds_y5{gHj=eOU{(n1}k_{SQZP}r3`Kf=!$(a#8T%2f2lVr{J{z}xqD1t zLn-K|RqTOVTKpA~l}&9^sI?ZQSR0RY3Y?DITC|r_)jAKHBC@M22++qX7#smmp?zj5Qj%C6Z%v+jBr=<9TjEIyUP3)l|CSKGm5aQ%qr7|^ zak_?!)}UYh1PoP`(!P|gm(#ZAYmDY~Ah9J$gHcKv9l)PB3I16HAPGjkS_US|0MGe9 zV_4=Mv6A2O65*@+`cTRw)cZ(pqOO$gzmH)=Ww7g}Ea-}|69vBv#@`&guHG1k!9E9Y zKszz1-4v6bW@BGGDQ=rc5(4c7)rq20`vKKqMm%Tj5YCjUeyi2-=30(VNlObEfQ*9< zyvp*&hnNn?Ydd(JGb{RmvHEW;ADHrwjU|}n1mr`)cK265Un?nH^O4k=FZ0<-l{Z#? zs5q$cOs*Ssqb|=Xai671rnbuPC*S!JnIy+OKt%6kn*DrVdN1u=D9iurwsSLyUbR9S zS*p)gd$>D6H}+GtstgkbPzqIz^fMNo$4(L(kVRU{-oymb9o!xT(v}7`s98Q!*o|tE z8cIWAI%){#5WjGvDWUh#wDB9=WV!q`t0JQsupW?weQdM%c-*iQm2-0MwHeKys16kyi7T5%jFRjiS?J&NYik z<_zGCZPf&azryhl_fPp0DXsj{%Y=vnjVZbny*0uB?09aY6w`+KVe!U}`_F}*uS?R3 z>CCw@Vr)s5jGIzxw{Ee_(6CbqO_RVo-8T>NqDAAlTWclUjab6AT1O<&H_VI;7tK$&=J- zGvYtA-6UisTxK?ljpPZ`ii9U%^a9%S!z4^XJJwJGB_6HeKjDH3GOismMw#PuxZDxJ zO+X1Im;v4QJ zG+lDR@%%qk#J}+DxmG)#^W~RC6`0uz5Q9W}SG>$XHo-4DaKeWF1%-LywUX*df9->a zGhEBlklp+tTj32Q=S>Y=zcQdEt1>V3 zXC9?`L-H?L#j^{Cx8N$9id_2N)eL2uAUe8sHs@lx9(s7EU9QYnp{f^X+8ufc-~Z$= z+IG!CL$d76NesuZ$?sTL9OD0^DkeV8Qi}3&kF2yaAAMP!b*JA+ z_C5iWEoCSR9-fEe0)w-FZjD-*#d*t+Fz#JITNhP;%}ziFq#*t$WDRtMxjovm zc-wBlFre$&_2OlknWS;GoLF>JxSKMRR6?&k>x*2rT?!=j&?lD0r77{kOD_gHfP8~H z@owlu-EzjEw^b8&xBlfS0_PsVi3{p7>E%G;g357L#;8ZdE{nv6!P$j2Z5xUEf~RCx zMGTM1hAtE#tgj=_-wt%vv!94z>0SwY20H?~-*57hnQ&svTL6gS)MD51>@2ZF+D1^G z1DHDxfVOjl3aDIzfA4>)m>5QI&t4BY7#W+5Cjr@Vr0_Ly+WSG%&UWK1?wXqA^ZUFK zLuqn0W%kHI9#8lLmT#=sQqfv?&&s?PCQ{QQ%9(+gh%RLKk0s-T^b)azFhS~Ys>vLp z%e$#TAYUX=LID#0sz=e_H?OsX%0|)AjwfN@`M|o~J^Vz-78C{DCm)tGSY96vB+*n> zM4HhSh06@><0p+P-zPWGuc60ia;Z*z8#?7O>Mp(ak_}L@xB#*h%$OPaYY&Gv7(T0Z z+le<~?ll)?lZDS_7<~DGBS4|6(}*>c8o{B=5KX2A?86$LZhL4y1Eny!ReZ3$Yo!Uk z5X2q+)Za5K^3j)HUVnO)9Cu?pU!GsDc^%gJ|7~bMz;j zBWvFLH_w3aH0t7bwI6~j71DO;!)eb&HqI*ZUAMTC- z%7TWadw{$^f#BEcGIr@!=SFB8ak9 zWp%QV97+}bz>kWBygUZQ80!~2LKW5@nCexK?F*>B(9p=X<2>0nhA^edh5xfv)ixd)1s6|qtH6sC~Won|5M(T zzeBmc@$5v=apZK4B!nU=r7SU~gtB#NY-6;DnK0Rsbu7nr4yl8$B&M0+pfD-MSc+6f zWgp6jv1A=#$Tnic_j%s$kNpYX`DL!_e((3WKlkVU-1qy;^0CFQg% zQ3UzEL7k^#EBCIAUh-`%k+{?*yD=)UI&opBHPLM7@5~|BY|h3KGk3Fcv0|mMjwjm| z`J54^3SPjwE@qctm0#|ogm!2KvJc|Fn+=Y0bvkV4o_&%>h=0wti z4k}%c5p4M7TgF0{kDljph!a;}_C4wjqrMTZdt=BIC#b7**_>SCf9dq%mV}KgS?X;( zBK^LcokeMqP$WGa5b{xGRP+AgluzAt8efk#H4{YFZ`w{1O^t8OzfM`4(e9Yg-(1L! zoc*Jt(mp3+Ti)u38GiK1ZkJ*fJME0KxR9{u)K7AK@yuF{sGqyH67wByZU>HX zzx<9OlpJB;9y(Q=n0r5e>Q2g==X(B!n&ekK4aWbO)nji3FVIn!C5348W)?py>7}hMhG7j?0-Srqz<+_bH^1#qdpW!IJN+(nP234w zw-IfJ+whzT?!YRUCh<=8rtRmU3=?jJFU}`r8DsdlyHAU!q#`Gf2gl0Z>)v5F^U=&T< z0j-JIS%bwHit5zqWdUkTB_NhbA&PGM4>rZVVnP{`Swaj; zgRyJrfauSNf=G&xton|xsOjUAB8LtCgb|H&KD%o$fH4ln$I z#(J?h>Gfy#JJ9!xF7!=}d{i5XjvH)z;w%r0k}_)0x=mlN?j)PK!VKPN2lKliJnM5+gM6)I6Phups5Ph!csxYL8B+76s+m9u2 zHBb&lyy@IfXG56&8hYo(b#c@ zT?+1*2GW{m5UZDactolB9C2DF7v@(e+TRk-JfJHc=Wdas062@y6N8pKiOAX$KiJ#| zC3$s7W(rVKUaS&12Xz>72?w>ZX8J~iK17xMcT5FFoO}vp#vYzm8t9T)o75pA_4cxa zIC98MIbTbDU6P86FhtPRKwpCe+SG{Dws6JgS8b6lxs6y`Uo7#R;|4iwmlH6UjTBTD z#!W`NF4+Llw}mvcSjc|68SsOxn&oH_fn;_7nQv65y;Lg%-gBsxWm2Mq>r3-Je>R!J zh^#A!%-)QK&72clOYhKh$rw9lT`2M0FTMZou?p)OCj1Wq@KP4GZ~&}Z&Nr6rh?u?g zLS%ZJ^>%ebk10V$hLYJb_@lvRa%JXF7oum>VMWz`Etn;H;nH883mmy!PI!x_-tdPi-b|s~XVKGo*`W{EsKJ^%E;v9B-B= zfUb%i5d%Y;KDn1t!|}?ZPdaKt*)}4rI)7?#hI!0B!@xdeO$R&Ab5sFXk`-V_Tuq9o z9ng5OYs(h#AnViS7oU1n@%ZY|;}yP*E3UC1J1rM5$d59PrLJI@4Y}nl7j}bti{<6| zytfgPwl@(A+-HL(7-6;q?aEhEswk=>^=`BQsAR@#sm-GnaDcxIPTu`(c5l4$uLw#)2a(tB_c{f4{>Ba?&8 z+@a!78ACQOCSopavDm4{Q0R5E0Fwq%<|bAkB}ps@zIYPA{>pz;Wr-8B01pleCgwb_ zJpJHR)P`|*5W{kGwd_6x>S0X01#bF3bP11Aa0?wy=&dJ36r!8UN@`|nr@PjVPxg4+ zJ$dh(Uft1%mD$}(mPVvp7W)g|8P1YBmVBmtd?H~fGCeF~@@@~HU`uQo z5FVOiCE=Z?`P;Q39xX|^8Js`c7kq5*lhutU&u5z-o{T65r&IGgLS{atX+NpXW3c$C z>U*pLU!TqyX#`URb=gf=RwHbv+HR1$XyB)oxgI>pqG>!`5llOu;)uwa{7uJJO+1X4 zy)HCcw=!7jURTRtc@@!zMv2SFRHDYP3{*b)D&H!l@iLvkkjrtxc6wM15bI;Z)7>^om9BCtBygJ7$7JxQ7%HJ6woHTq1+E-vclVSL-nc92feJp0OyJTO7Q2`2{HYVPf4zg5?GF&90gmzvbR_~(;GXq`8t8QvEm?xq)`p-sLoU~)&MJ%?!5=+lduOE(Qlil z$40?U@9pF1e(1L{p?{ZSS0qbk`;6m11X6eea8MNp6O~_b_1~YalZg_^Hviu)WObvrvtusefokhbpbF{)OY3Z8?fvf zf+5l{a5J)87pG8miBM9#dKT=>Pzk^-!B(%}8jb!RyW%)VfH>e&{CuE|CIDy0Y|KOA y+6Xr$F%Q=m5<^7KQif-(uu{NNvbDHjbBp8j8^3lt#>*|>V{Kt~`U(2-AO8g#znBmJ diff --git a/documentation/onboard-dpg-in-sdkautomation/imgs/workflow-service-team.png b/documentation/onboard-dpg-in-sdkautomation/imgs/workflow-service-team.png deleted file mode 100644 index 86ca23c310b6f7d9f00e72b83277ac83c1085af9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81926 zcmd>m1z1&E*DfU?A|;>#f}2vhL%LDYAXQ*X=SDiD1O!A0MMBa-Bm@LS=~9poOiDTo z8tJ@aZQvZv7k_+l{{P;49uDliVy-zyzT+Kp8Lp$HO1Ag#UK|`8vXg2`XK--v7I1Lz z@reoH$lJH4W#A94%NbP#oTu*?e&FD6Ot>l=xH@=R+Sps*un8${ePR>jx5l`*vI!}% z2@0A!qdjaeJWlp*RyL0C9Zou6%xx@fEX=nq5absW95WCQU=vb+PZ~CkZl3VhQ(V+URQNc2l6P{lx6rq^q;BKN zCa5AJB*rTwirk{Ec1}}+O;8a&+uPV#z#ml$Gdm1&i=wqN#sQ9~NQm+B^9qYf2=WSx z!11$aOSH4iu2GQ5TezaFwkB?HTERmQt!iSajuBB4*Er|s<^rQ5*SK3ayVzhHw=NS9 z;T7Q(-a6sxZmB$yyU*Zeb52nR{+sB`Cr#zICU$*VYj+epnqc zPb=r&9{2l!vo_w_;|qYSv6s2om|M7P-HUykAipaHWAAF?^v8o{7)M77vu#anUx;>g z#(4bkGE0p8&LX$QcY<~NVRYocSu?c#Umw-CF?Y4zx>j6ddwR&#Y8EzD);muY;NL#u zfZn-y`+$oz+8pDtbwBnHR{G8u4BV=WwO>UGdqj9Ua@o31cV8sPkKVQw ztKY7J;kV@v9~?Zf3i{j1+MbI$+TLw@P}{;NG=XWU&;L~TN{DXf_T6DZWc%2k9VSF~ z>~u%3TN(Rb5hg?=wtRS(2N(i2#DakT&n;j_+q*4bM-l%z3;3^sA+c@Hze`bCnEy#V z?PPEyn{Ol0|8_pdj)B10-(dju+YS!+yZL1|Wc^!u5{29eKm32bo_1!lOHU`kpZMi< zPQq^`3ricvEiek$*vZKmw$Ok7ICkv$Pf{&Mwni3g*>q<63(aUZ~T@Q7v3fkKVxeK}F z_oIlv?=qr48?=e+fUj*Y65jEc-CneF&2BG}*alqxloM@dhh6JOjOOgWnTdda|G%oV z+o|LJcR10GvUfSrU&Z-9K}-LoB>KNha@*DG|ByLvXMtVO{Xa)G|CXGv9T|3;v)FdJ z{MY4#zfDyL?y$w%;p{h%uoI@XCiSnVLBxc&Omvr@{2geErSm{LyVy|lHi2gbX$Uxt zzh?FvY|PCOc2)s$k&QR{5|*h&61@|`&0y(C5d}68B{=feo+7qwh=0XrU~?M6j&BbL zw_-umwlII=YJQ`Bc=&lmg~k4Y>)3kWf0;P_+nVAL*e*-AHMP}3_?>#iSX#OOmy6)x z-Nfr}Q~WQ{NjvdjmyXoX!1W69dtuz*H`*NGwBaxO|2rtyMgumER>-Npfd{a(te~hp zlGiUeLpHbC%J8CS2ZU;JyySxXK^jf`E>0HEF~L$+{9BM<3o`sSAj1DR&K3m59$S~} zIMt4m?ZyZ@9N}(^Ah5&s?0DZlgtWKqWS0(gT@V#+VL2N|ON=wLSP-ThIwr`k-!%zM z20!|72c`WcguH&aNI559jx}x zh*xZf`~1CM@wccH=o26|{%;Clh?7B>L;591Msjg=#@Im3v@1RQ)(+jB9|U&T$Q{4UT@dRJ~uy1Uq zxZBy0w)1^^XP=Pr#q)AwI5^BWCza&Sc^Z$Wka!+YUU?%+TpyjpN{v6bm-E=+i>5Rb zdZ%^dLI~*YKfPLi9amq1z?>#V-TdMK0;LgRPQ3dBG-{?X>N@d?rollt zX;87V9^L%LBP4!9f;~|yqx4(uH*^nckFLpjR>^8^UPV?GhX$)09`d8(i$|`cq%_CH z!?S+Y-29=rrRAw|?|FAC3kzRX)RexgWUoB-!hW7W?_SHQ)sq1PY5@dm*X4r3!ophc ziT2xntngh;aG&TR*_h}l)n6Fz4Dzq!HmO)MRZ&qPr%;??!IcRJvHFAB@Yn}Ikbt3d)aO5 zB17a%Jw2DgKR(tD)i16Y7#MgZAt9khDRI8X$4i<78Cq^0o}(W{m&cAg)StEOxTvW6 z5C}ve>-@6a(^qdc`ZhP{NNp;!Cd*o ziADTNA~N>RTR0)U7e81UB8xHAz+=pNHF{Tbb#W@s{n)$D`X&ytp3|ltl${RESs!f? zIq~lYl?)Zp@US7%H=!iH5f-*2AtY32<3?uPRb=Dt?!KUWLF)WP=dH@(vbHostIZ{A^MSR#IZ?=@uzSKxx;(T!29}6J@+ldn)zUemg*OQWMh@qZfmP6+Ssic!&Wx$L# zfB*h{(LRqpU;Sdc_R0HTE^4a_6C+8Oipv}7+FDv0qAV;!?)aa>Gj1XJI1c(ux_`)! z1et553*MsgmUEQLE1{HF3ysUYO)S7QxKUg`zaFMl!@36ZfrW8`E&J)EIz}_FSa&|G zEDf1<8Jiq>ibuXz8+)A`x>W}2b$^_r6W)OZLX6y9xX5%rd>*w{{c;t#`^rhM{P;OT zQA8ZEliYHE-+I={TH_@?runS*(cVK*acA&Df`{ftJeCJaF`2=5kCh+Wh z>7+-F|Al-HQ>5p&&p8CcZ@EL+l8xdH!ZxMbj_6!S1L(F;Xy*p_5BitgU zdG;9!(O$n0%tl7B^(rFIelhqmPPU`f^!&v*<|%C8B7Ba@zE-l2yEJ4(m zYkKC4*pnUvGBh!|DCgp^uY;0827-vrqj5r{SCKyuyfjHP4p3fEWe*P<+sw1^D~m#8 zs#Zk`OE<0>%Ebz$o}eVW!CZ__x@>W&M^ARNCJQ^g-I~W$q|UUi=BE2_xWv##3f8-8 z?GUf7$yuZ>&q^&<6x@1*^|3TC<;6lmD>tm+s^g{BeeiL<8E-j_s04mI5Yba_i9VGo zGg2&dW+C;=2sT8gQ-Z*5$_dgVmrmp3eZHBNH#zSY5Uq9YE&NMu!;LbE4d%$P%O}+dh1J z8uHCV+uoWKnalS`FpkN)!GuUi4B#dHq+)-?VfYEDfiTv^<`7RL&y~a4wVVlo?Z?um zBisQMnePu{7y5_P$w-ws;knfH&LmXLh6)+{lML?O)h?@MDy;g{2!7T)FisM}Q@Nyh z9ucwJSrF*mL32xF;-=PkZinzq;w=u9oVEsK;gEQq0*^dO0#Aao$*{r0wcdi zc7Z!`LqEjf)Sf`BY2Xm_%cosXJWx?md~I}A6qy=72dvxW1(%&NA|p^~1bXb2XcG#g z5V#kK2zKxYhQB%4xLczXvl;M;ye8SJKCT?XmPb4y$ohyq* zq_cLt>J()s3N?fJ(1eecJ*9LwqCwqHIs6VbxiW&$x1ToKHWrdVV#>~=DE;sTT*_CP zN?LK9*DA|-P$|l+XO&W^V&+k|*igzA{ytht8DR}Ll!0RY#bHuMQLj+XjFc9_8x&Eq zVw9bkw@-ZBht+`;=%7~YC>N+p4(~2?05OIgHKaW3MR_@_p~>PA_kkEZ%0tIdVqp!0 zlqA$K?aIU71f$k{QL{N=t~4=MD7{RSBEuSlP*)QJA{s4mqsgfel|=`rAVCQ4tv%MR zln5#g#1JVD`=dT&H8=TPG+fsTBOaVuj9vd))O>!5b38tF-Pf{Hq&T9XQt6>$V*aL) z(uNJnIAm)5?|m!^<7s>jZm&eeK@UDas1bpp}P-w{Z(Jy%+6P} z-cS3r;=FrHS|cG5Ph;>p2MVuMc6(0OkU0gv&B4xzfS}({cH#vw?d7@nxRAazR@A!k zaQ3qjW5dx-51NGtW%InSG9!1*RzY%U0vUzN%xkwbs;=u|!^}lQBf2ha2eBS@JP^d} zGL-DWW52xkhZHB;B(9S$ecZh#FqdKmh=56v_~d%3<6{8Q>=Zk_Va+b zU`S^DkP~eIa1|j%;?^w^a7K0tCr1VrBm>?%_JGkEd*)ywTo!Xa>IFpqglq8G=I$*T zY^cLV^F!XW8pxz85tM?#ikIsDMyQegj`%Atic8u2Wf(Ut<>P#RH6_c425Ho@d+&14 z@~}Yoxeggr5)bPja+<{AN)HW`-i4{fhM9+jDJvZgR~x!(-r$3%2Ji_;eTq@GR};B! z<5d44%ESxo!zugrHu)`T`-jwcV{<7VlHG5~G+}E9GwOiiBgWqP=&6;$0y|Y~1yE&* z==h7Na6B@ot5VfxJ8evPh?)PNs3P)M5r70H z_||11SUc*M!hPKCcPotlMJi(ua^#8{gs{+QLt$h=2?277l!nJp;V9=X1oLPbIImWf zk378FRX7PLYz5dWbVbUPKAD zf1C4ZLMn>4w^1EpT8nIH)(k`sHwO*M3&G0#sE{z9MuZZ3k`ly5D=B%%Z81L+-KqTSk`Uc~s!f7Zt* zsqY}TMnUXHA#$5fsgS0eg|S!cJ@@`mresNsM!p7 zrH&5kwFsPW=T5}N#AA4xcZCfX-q2&#<_AKVMkT+P`(A>&`Vot2cx>g!EUXj2iY7zMompkMPG^A*vQupXG|vUhlq3#7Wyns%9>kQncP$MYsT6~5rTTy zG)J*IKz)GAS^9hzFRIt@a|DVybTLR@S#siX`4agYGCsc`m?BH@5eEcxa|M3*@Zn5( zmr7|Ft4?0(itFs^4>r|afT`)yxD^RSR*eh@I05n2`69n=Hf6;GRD&zfm*LtV@rM^a zk3BOi61ZMtOdr_{_ABQDK&DH`A`%1z)4~kOAiv&Nd{(R46$Rzu!C>7wxw{T3qw~mA zM*;c46ZiT|Bnqk`vIAjXWVoGDwWM1z9T_e7-0eA*ynEhjg%pO4-;aqd5jK2&l}y5+T1{ z<{TzDh}2ot^wFc>``?ie&6}i5|KQm8^MQs7aBUG3E_u>tN3o^lfd%$SeE8*fLGLEP zKBRK$CsX?cVsnMk&^W&3{>{@M5GQlQa=M@tX-_@wf;INNKGcgaCu%X?Y!y607!os0 z_z=OhC5SqkEZ@I5w%5l&9BWJyurRyUSP2B1%iXDw;owkB^_i4d23mrZi%Z?;xh-3i z?8eJ|OfnaQykEb5JzGu0)PPSem2Q}-(qR2DL-RwSmA1{N%oxG;O9g82ycdV(+fDS7 zdp0BO?uyuDEJZO&zG&n;)1e<8hLrY8VX)??szL+M#aZgia~<)qu?^r>tbu`nf@W{_ zy&AmEHQdBk8C!qEN8^asFeTg4b2XoZ@ffQ#U%fARCV9&4*WTjS_onhroOM?0xuqo+r)XMhT}y^fPE#+fT=6{C>TYoI0n* z$;o-jYwD=?z|qOJdqGqW6tC@z$*Wj7H8?mp{5Z|;%;3r`b>5iG^(p^TtUzfQko@ra zHTt&k4%eOhYi(}=`b);1o*iV^d>t?l!B-It*0qF3@6>vA59#o2ZJE<3hI_|>uqmE3 z@AF%oIMpUQQ%619BG%U+ySc3WY9#Lbr#>dXC3Lk$T`&pt@K|1@-lDPp`ur(Y4pvsR z2wI*`ro)kvlRA}(<@~0BZIfNkvmqPkkW4Ktd5+lBSL$Z#Jqd&tv5y`-Drj1TqkDvq z`016O?Roz4jE&R_iHV7}6u0B!AJ4kbEabaEE@(8{+*qB;#yx2fe#A$n9|_Vx>*Te^ z-Ma{%RoKCTLRA@1zrX;p&UHKnhU%tR?=c9HDMfbeTI24evwAE&PPJr>>g1H(qs@nG zK0FLxS@)SLe@wVt41N^Iui_4>9T4}|2Ilmzz1)&wnHhgj@Fq~NS%$=) zC`BcR4jQ-wR1*ZRgRk%v6cn8L%94ArRPVD__X~$p9g@p06VG>tZV zVQ&cE>LVE;LDKxP$DA>w)#1^%W!DDCPnDJI^&uWSem3Kn z{J6$++~#8Crf$tw5jGBv?2wGG_fvh9m1PTEc9#k}W99muSwwvG`j*nTz>#+4jODxJ zi3Il?# z?SoR;-+6#PS=p0dI^B$ z?CYY%m?+dtAFCo=$P9>}i=!3WNp25V3pX zSyUmuy1`2bMQ#F^W0A%y4u}s^OFUgik8n@7;4f7|`vY$zxYa#TtgC67;JrY(f%ks7 zy>dgB#Jnz1QO*o~d~jf(Ak?(tTdEJMn3z7<-h4H>0hzGl+S=Os1@i}SOpkKcNf6>p zzbVa-a2d_iNerjv$TCq(HlyTie6txE%7kLVr}muw_~FB+8@M&@{5}C~M?EJlGfGVo zk5yN(u(PX#bTg|Q5u)X*Sh|0hB3a7o%!ERayr#8vX5+86dy1zz@(c@AS_JKTN_4#@ zD7A(e_^o-ytBKuBX{+7z9+YXFLSsf%a3zd3a6bFzsk&iI{VWqYz=t(R1+oAqx&x3P<~3$(LqTh*^_+2?bPc` zvsLxF;o8!ui}o99-(*eXD3*`DV;B$)`=-h*OIxmBU{=i7K_n14of2>2XPD~0;iW5j zY369;j7M;V=>Ye5jp-hI;<{e5rjubF+!gEfvKvQ<_A^97@G~Ggod0pZ!cEh~Z0O4n zh*DYN&I0DpY=fT9O0Ih^j z%$i@{{h8|d?honj|9y~J z)k;$2*t60AakKqHt3bkw6^E`O3Gb!p0lkb|W-d^esR5wlYYrz4BM4p}4~<6mVR}mD zXQA`=#2V+Plp|>0W}be~+tkwHTUB(&{562!eF#~Yuc=y#KwXXgw*$4ImBKJQGh?^f zM_al6DgRBMYKUqQDoVXM)e~E_t?eCXGvy9ijKX6#PBAkxr@u^3XHGx;KxN~4mFqn3 zv18HG)6>unLWySmFp8%^;kqF7zpCUjTDW6{#Yw-|u_w;4r$pp}f5!X!cPU;%#uf6I z{2ES?tZnNoJB834fn7inn{)>!LIWkBkIK5YY?*$2b$1zkw?mk& zOjjozI&?@o@!_c)Lb#L!sUGrA8?u41ty2(_lc#-r;n3|-Vd*@_VOpCkh7d1%$GB3^$G z5fpret>X<-&R5}au{kY|#BU}fCK~>965kkd5_flAq<2R+G8UvvJ!AJ?4?a`1aRi>B z99UFJb5P6%g{_6*nAG`w>d4_l3Z+j}z(*V5HQ6HtUit|zfNaHxcBH<5J{I&cQ~%%R zv6TAVDGiUKYL(3k!o)+?6;Xocl_n`;$W*c@9I$+_5Mq0ZT+j9+PV#lpT7G9QfX*TT z1L_Pn%1Vj#l#-xQ9SU_*>EY#`q*^L$xeUVWBm#-UkFCNEp|nUBw?3IB@-})ABn&^E zAmm<2zp^Ccvb98oBF0_XI~cvDui&)kZ8) zoX(DTyu!`xxrmbpABYJ--8zP{3g6!xPIB&d!+|8``{2~ z-3eq70jI%Z=%0^Riy;eIN|4jh(aG!Y@4sVXV^b|4Am9c6kw8^7=4(&8wWFXCX|@(? zwq8eum1`k^Z4Ec9AwoS&k@UDG>GA`B*TOx;P=_fZZcG1|B!iYv=X@fo7)5YTM4U!Pu-jH;vu ziic;SqreP(`t*A?)UAQguLc%~Ffz~L9jQzo`@~6`A&CdYxZ?GQh;L5~3hw(|xpKw# zaiHCo9EteoXq^w~@<9W8_U!rPY9&qvtk3jyx!P-Fl0XSAeWd2lGEh)d%ub2#af}~r zNs`=4N{Zp(*yo9lNGm#^9<(p5GEz)u#KOYTKL7J`cFQx1CeF1iat3jJkM))L zP$40qfpYD|^F}%1Bne@1*4E#Hc#Mh?T>7g5`7zmUEh6p1YXGThU0huH=0*9o+v_^e z1@l?Bv6mz`IQYhK9-fqEwx2oGqmU|?>--D*;}h+9X^KkhT@wrO;XtZay(GAF>C%SV z`g}XN*2$CMZCSLws|zh%%fuZoOGZ`j*WG-{QB~8U$^~>G285Yqu74t212ee zoiATIQGYEYcr>}^UAFq^$~>z1I4v-3(=gJ15fg$%@@yVTYP4jhPm z0V%x=^57op)Y9|Upd#UVHTJaB`PZ*sW=g~M4)OJCh#^)nAz4Y0OaF9zLqmfhRMSzg zJ0tkbn>V&v=9?SqABr)37fO3J+$}9f)mlhRufYR)sjTTKDDtPk`fy?X1;t)oS2m$U z82+Hn$8-Gn@mG3E`@OHQ@L@SDs$=osF#aAlv_LdZ9;im`Pvu8nee~kAMxx+r0jPM& zzJ9&nIpy)$-K!azAL+J;(Oy1%`m{PQP8nWOzMmg$dcTIM+_tr$;ovzPo&2tkKAwzN zBdnT&=(1{)mv59Ck)vm~`RUWAe7#(w&xb;QGgV8I@pZNr?G6=9ns|SLD`5{L;kC$s z&$hm!S=mp$SAhQgX#Xwg?xo2ux#z!B2N9XP=(OkiEKJ^u?GtYxJl&?Z+#6$_#!He7!;3J8DhSFWt}kkWEbdq;Wa9%N@{ zAI&i?Um2R4n^WB}!~j{OW_$4Eg;6e3k$vYgD_dJzPgmEXR=d>H)csSw3-2GOignn( z@bPt|AY;arJ&KI`8bsZF^N92bHH>bmfSJk$&{B&Tj~{OuVqUyIg3aWT;5OyO(S!?o z2ngyv=b6ZQf%VN(QB%{~MnB3h-@MAqM9K#NDtD=Q}D=#6!Cbae27q6g&V zOI+Tiz@`H~8TWT@dn^4n_b0Vn3(8G^1XIN3bXiWW>OHvQo+5{Cy~U}GAR_WOW1orV z-%g!6#Y+=I-F4s85lNh;T6iV?uac;JCfXY>6-f0viO2Dte~~i`giYSO^podV?`KDv z?v&F;SWt|&bDBU$WJ3eO7hw+ssrD2pFTwoFLvOChUtSnDwE2=_DDUVvnF17N_dYXm zGHjY=LS#<4WW+7HJJ=eDMGR)0?^{}08lUJc_D_n5!JYE;bDR1$50k2-3cG&&a2M2X zHUL>|Y|pX7HL~l!T4ke}8X6L;KAmWD#Kv1>pM{(JtH?&;eft>BT(}_R@%lQ={Ls+Q zSo`UM=X%Y+p1xyaWsMcKZZq|im&cX;{#@nmp`<&ACCjzZwhNKt2-Y$0= z`{DscdsZcnbOMPjfn6v_ZRgF$L{02q>r@GBU3!l2G}b+|7gryV{V~?&ty3A|ksM5u zgSJcwShR=lKnR`2FD=iF&xZ{2$F_|c;t^cw9YGSJTs51;#yK~X^=l@~&7*>%%u-WP zxpu+%Et~TG&<78~#zlNX4CN7pP9v>UqG(swllBG%20#0&gIG+wM(&t0c8*Y=eRJc` zZD6`%6K~)CsH(KET1QNK3O1{?71?}TMWIlmzMJcd*Lp~@GY;mx9K4>Klao`gohDOW zmfJ^vZwJkHP+qU2%8cyXIyF!&SCt z1h63`Ff%hVobiO~!DVpYgMJXPZov-C#UFW<8{Y0JDsP7Gj#jTC`mEXqDS5u{dJ1^O zS=Fc`j8f z&AiqiK!7IWSI#3GfX@~`J8D=Jm4#x^WeHj1(TN*xs5Sz+B@r z&EE2px7o8Zv{Je}KV_c2IcIanEcE*WWI_V4o^72P1PRbggj9ge@l zr7t?sS!h*zcf_=}RMfshN7%F~;G=u#I_lS#TOuro_soK&jOADvXcNepV-FwUZ#hPwElR@1#+EJ8 z7}pssmqJavckfR|28QJ1xVX_p$xB{)Wg$O6UytvotgL_e3My^1%Ue7hXeSHUQnL`HO8ASU1*F@ld@&Ngy!K>xC5itepm z@j!{|k6TD%l_0*G9qm0(CD&=9dXbw-4Re>aYfzB^J?iWSE}q!9S16$nXt z44(bL5zwHYNBRv+^roIIpw0#8=Tx>dGz2Wl^tCVKU!lqj+l{pu9?zDIvqJ}}DNWjE z;VC4`BgU4mk!^}X$8*h?EceEiS@babs33oa?IL%d#byC4<8#gcE?a@U1~goF)R z#|Mpdboir8)#NY)cSRjmhSrvUB|#@a_)C(5%5$rc#ycUPAr5fHmOJ$-4oY26_UIf3 z)K)Ua{5~co#?A*OZQ1$E;+~s6w|dr%s;WSIm-ajpe{mrp>fTk?4=7wliZI)b{DB$h zkw3c(VP+}v%S-tM=uUMNnAO(+BcZOusyH;Bh{YyLu{g4a-2!C6P;Dp^*JkRO&U?>& zmmhVjDm$SJY5!4?Nu}R@%0%npZj-0)%3*&<5o;TC4c^_P7u%Qv%04bSnu4d$(wLV3 zdJn>w-mj+(3_R@s>}%CvH*6GAq&MXB#Qh<_&Tw5U%_)C}=zd{%c$gaWKi$hTb3)M) zHli?796r2a3XPRf263l=F~_XxmLzp#YjH9}#i;!5iHP#Ip^Hd)A7Bjj-F`+r_}VqC z7Y5u9Af-}&1^(ZNGo;g2(-hk6RCILl-<-rPM@L7sKArF%RmB^jgkZAV4n0Fzaj@B| z!9U~VE?l_qMc>5tPHbG z!x%!MrIwZ!6J@6fN60gZN>&5_4JeXJyRHK2k;wk`;0V9_xWVe+>j<$&0D)esvgadR zNUFAA2;A%k{aaWC1)cTO)EZa-qTGXK$>GuFoGbFCfM&%zINKeID^n5^B|gxJ=4-f6 z19a@GSQ?Dbms;pB(`>$YcD)^t&5!1nmxn5fJMG(l^cfjpo46xLV>ZLebuSs2CZn{s z>ojz&xVy~XUYJubZHzr0c}U1|cw}_6#-~!9&;9*=#Xo}Z8K)B|!Xv;HotlKM+1ItT zHA~c)OzJ{wV3nZI-`apSVq*Q=h|Vzg%f^!@PtdtW&u0b2dY|g!Aw5kf9)|%Hk~@fY zKk$Bj+x^g0xo&6!`a-jY^d-!n44p4~$P4waWInjLT&;)3mEl+T;1;K?ns^I?FxF>)Gd+z-1vlqj{L*LvuCKO3|=~+-&1Q# z9R-}AehhT2-x}M(LXv@h9c`=j5Wvut2PNI@O97?-dW~+YKq{Cu z$bOq9-rnB&L3)9fNa;udLg75z^%q$7+a!(Otm(PpyG`+Y`s=lq3ic`ZKbc%F>rF;B zaYXVNK4Z;*;7-=Cki4vSg6{fab(3us`depHM($Nt?N1s*U$R;`u6r{vBFt=yuYFj z*3uhu?vn-*k{xy>B_q4&F+2RW>dj61+c)15CrkV2LH^K-PD=8z0&^6-tsC_j0vEF3 zVwIGh{{;BxMQF>O=et-U{HfnT{g>WW%A6cvx7m}ECDKv|k3BOIiR5IUfrW8+OuKpaT%pl<8u8d?14Eth;X zE&o2aDvsy;snz+hZxk`%01zxR1ufX!PMT(g)rB>f7Aq7g57Sb1j;)pd0h7Dgm^#GM z967=Z?_R{y@)%vv`2>ypPg8)Tvn&*pmvy4;zk-QQ05tPB_uj66ZBka*{IR3A z7#Sj0M%+r;g&p=m#O@1$$Inl1U2it+{Si_1^kOM1FE4NFfKzjGOG`>7-h)=f@i7P4%PCZT3;fGq=$pm1>p zlBNj|ATLbw1HAj=1?=}o#p>kQ#h07oIYW?FQAlI>3SekR0w`_i`B-GT%K9>FCx}5> z$DO~b@X0f0`xB$CU%!R)Q)kmQ*Hn354O9Jq4GgBG`kv!JCViHc^q7nt9K3|=`Pg@4 zZH!e_dHGc<&Ui@H7rMnRgmnjc1qs;hOF1+ZcEv#jl3CAMTF6REc8W~Y; zZf-ZwcuZc|>?tRQ0E<*s9m+rmF2j&aEk=ij=O|;=Ss&Tq-62_(gw9~uy`myvn4aQ? zXBO&gmh{5b%+SleEjjs8aq`tS*l!bK(kfEZC%f{Ug>B*J6(Dh*65`+!?u$O}_)3|? zza797M{$pPw^ub8WvT0rGZNl&nQOn&HqYVFTiMFh72AG3MRrh%W`SY`SdN$wQo2S2 z217D`zQRXH>AzIV6l)N=j;UDApc;qe-j0nu099$?74U;wX=!|7y`B$TC%SYmN;(g# zv1JMvynXjhFX$$WVeqtkp=<9i7rKS^iykR!Lrj}GDEj$e{!j`JZRk~!q0`EuEnR+gqPVXSG;SrrZ&Y#RRT-qcQ*~z3LGIrnGCW&_(p(?K zjVuY(OBuRgA;9Ld1I=nZ(;%p zNS0Faqi)csrIx0qF5V)vwoap%j?Au3RhoqBg!w#tZr9EkSmMwfLZ4Fx zyHOf%lWU6xbC$JI%#+J3r59oPj8$%4HAI1a&s{xe;mJ8Z@Tk60<>uihQp|B^4<)5w zD2)xnU06eF@BIV{>M~%C8>W`jy}qnr)=4cH1cGJ#3G&}RJc?N9hFwTJ;N7#(_J3Zp z2HS(AejYpkw2+Bbs?-w#aldbO_cO_G!z*_|rYiV_G|I}#wqNjtDEwDGroG!dvS`|d z%X?7G0s8Zup{^e_#ohumJ?E1wep!Lc77|iy{^D>+V;6Z)fj>9{8*nYt9cJsV>rv03 zm6wsf_}yzr8Pb(8)iejX@3^qAu-n}C_tn(w8u^}YZx-JUU?<4XNE`(EQpMQOk+*EI zRQPRdqV-9fnhM>-cHI$r1_p+-v@}_Ag_S7(wFk4@wMk_6NUBMq7Be)HScQbn@>Z@n z(+FN|BO|u)44x|crL{cU#1|9QNM0Eg85swa@d{ok+73ZWjDtQ@;56tS7i^$`jsJ@1Hx@$1FMOZL}uUM)FkpdRo@_}ahetjUSTd@ zn{E2JNCBR3@BlL(YnTJ^H`w%3jFoAy7@;7=FVklpQ^qu~@x6*{xuh$!l7)cy1^P>M zB0mKl-99b%soq>dUbO_qYUVvhb>2B0$q(5UULl`#8epp999&#uGY~=->EMllt2A#C zQXbSBH$A@XwMAH(5c_0*E@`lRzM!qCNmd&xLQV2L9H(Z_%G{6JW`&(HMV!e=-G2e*ianT635idAUAEvy{YQc`%3zODBiGH2B_NMe7LygDS^SCDN+(OyL!QYEqpE`<^XaXc z%L}D~8>)t;_E9U`I58f1~n)*~~E>jW6=sWR@qOVAOh&^Hhodt-inQ< zYlrw+Onf`A@G`?=s`s%NruRzL%a=>Kdsnl(Pi!LXYZ}}_($z_1*Q^M5`kMzTH&@)= zC598Yo-!S6PPD3zV)9>r_ZZie%nP+z=EMr$k*+2rBrFo`JJ>e%yxo|zUQ2*t0r>Y2 zBZj?E(sk@*Zw=N+$OS(@>1Y8Bj9GZ;Q{SsN2Ff26AW%*(*4kB?R^yHQxTgA5`e-bX zz~qu-jb}7-`oOYkrvdAAK`5pU-{Bx&BM_nuR+zqoGxOy?rs68#!Eo?*^_b zu(?SM7>7^yFV;1(yx9OAKgKH6OU0|!*+-UV;@wc#fph+`X@G@u? zpeYdqU}-@EjICZ+jGE+NAkL*YD7|j`4mZTy1bBXgrNiEt{!Tt5;SxuH1_jzuGr@Z^ zJYWl)UhoyU@0T7Q3>zz*syNTnuavpBi@J2E%4H4S)J;|mX=4b!W*VOagnPEPfU(HSCI?C?IM1s=8xFJ@cOb>HMp9zrs@zAxZ>GbOe`%ev%+rBP;x&_Fq{2$?K5Qa zX-eFWB&$%Cyb|y+<5|U*L zU?((zWd3n`k)&=6xTj27FTq2%5hxw8vN+}6QLLE|- zc$vNitEo92vBUT7V$1@-7WWQ&Q3m_h=ZXnqaHb7JSk8O`ope zC_KndI81p0HQUW;;_%E0*?7#FPMo070d(pg*rCdl*%}pgTxtpfNVq@S5e9zc6-m~^ zRZfCEd*=7=->;>muKuf2f-cOYUi8NFmv|C|9+wA!y41i1ylrY~Qg3K&t#_2bzNemk z9QOg~YC5ojZWl{jmxrJns}*LeZB~=BA{ZPRDg=^IShl!)La0@EbT_jl{Z;tR zC1qFTboF@N&d~jgca!hj5mDE__8!^NP)p69lTW@?v`BHl%iYYpyiY3z&R?Zr#w8~P z$Ub@jK<-JPtgq1>IMDp7pVs&c8D7g>k)%H8M+LK~#|h`YaVU!=$kOabb|048e9Ra= z`&f(Y$wEsR_LVtK=5&4ZW?|S@4pgOMffM>V1icIGr5;mXU_NB8)AGp}_8+dEr05X9 zl@v7X7A|Mcp_!ZC*$ZG#6w1hx-{0Q~rDeuY z)yHSG7^k99n$(UuyGE}9B~{E}flEr?pdaE@CRhLQ8)>)E{mpX=41-my<6==2quIkY zzGctzp7sU;useO;`BJGCLruu~LbfdtW^A;Ksq}~h`LC?Z^~ah?ak5~O7omigF5-+w zny5=+xQZmJKwCdnHlNMX&E|%EF0zlACHDN5Qz7;RlECB5PhauFzOy5 zC;@u%1KgC7t)JI>9k{h09fQd=6_!1@pc~nDX|k1GpwgkA!~H*gjf~5RpL=pYm`A99 zPkLjS)60knGm)L`!Te&=^@O*RU_Qr0zeA6c?2EmxMISkdAJx^Hgo1>WnwnZ0dh%Uj zTt&|_`F|nhFBvWi@u~o7Rtcg%U*z@cS(QM4;IuPxB48AF#-BRW$@hu*#24*w8~Hk5vZ00W>4l!h3x(V!Go}-Y|mU6pc@~*BxS^ zV<(oiR}U+@ymE9w;myXoWB9#?Jwv0DWzDoL8S<}EQ%So0eCS@PrlqB~dS>XL+xUPK zrdMjjqCQ{`J`KagD01Efw>KMaJC5VyAM#wv*LRhZ3pk-hIIrXzL*)KJt^#`Z=ZNY| zwI?dqM)>FsMt$Vw&`3zv!qf?jO=~>ZPtz%6_l3Lq^jybzdLfkf9V*gQC!A&|{T?11 zjAl$e_hT-3=$uCKIg-*UY9DnoCi^SXjYC1JU&qMkL&@kf2ou{?v z3 z3gD9D-Q2YdD z9Hc|?++ULLF{tx4Y_Q5yj6~4yLUz5IwSN0XJG`Uh#>s8zGR52R_otnH&3sA>bvr*<)^u>XXr)hg?hfJ#OjJ!iV{!4ym+ieqK}lWwQDHvM-Lk9x&{9 z_DSNbPVegH0jF4ZDE^9yiVpZvuihQh2^vBP$|;>%!oluqc}y_JJAUtal&Z2a&Et#= z!lBn;w~1$J+%=bUOs{wUD5!5@cq}m(bahjKct|l!QJ;BkTBywI<>XM5tlndmLFK3@ zl3)&*@ug_RgM+3AiK|||6lcQ|2yoJblC5X?6k<1>Bi#M)fywq0mrPYwPi=nb!V^6SdH*E^iOs=2(2P~i76Q_AjL?}o@;xi{SXTo4kaCv_WarIz@G}m}N4!L{n z2GC=gw7eINA$z;2T>HcN%<{t*_QXSSekm+2z7ztR7Lpsj$SEE9HK*LK+AiOw=+K8k zi2)xsbsH%BEXAAr{WUuKURic$Qg%9Seg==>0Q;Z(1EoDd|voIzezIBRz_4t58suzB~?_Hz1Ia#BBi+DhH)e^Bj# zjMIhwSBkQA>!}rd0xzMpak>?D|5q{XC*b#}!0%b@HH(sFhXN2!6|Yyj|3=B+I>>iK zT0fMWslxPH%X3D~L4!j~?cQb!kM1wZ_ELLdOqoYdow>N@Njdl;Tum+H`e-`HFl<35dX=*M9Jz|&)j&_ zdnPa>y0$OIiCaR3d8utMvP_Y9{&JW?uJ^2jnw5MgSpOW-CdKOOK z3Kb*2Pg?owT*nX#QS1J)TD2t#IfJSPQ7_#(f*xOsaH%!g=FJjtXF4wrm< zJy=@ii}=$c7A!|E5V*bWe<FD4~s7K7M_R*$bjehwvpAHwJo(v#1upLbO_4HJ=^< z8-ZY^fNa*kL`?bPu4CzhsE7eQuv>e4G8I{?@jEJfecU8gxTLQ2)81M%H5g{{HJ^MoIVJ0k2wSY7Nz!haXYMd)}{1cc`NAC9I($ z=`|=j+fVE?;Xkc5#AIm@-R3v_aL9Lv^B9-+wXY$*Uh4$!NQb{MNL}I&v??x}=k|<` zU2F!TK;U~_DUR0uhp?kxi|hhF#loC#cp#O*;Grs^AN!QyUwVDHc(R#)uxEID$TM;# z`J9EeS6TkWOuO&Ng^bgVSz%_nHNDFz0X;P3n_N^2p7Hu~ey`Js*6jysLL{J$VnP>p zuZ9!L?8E$eh22o0P4fLrM|-w@>k&rAix}wL$rDQiw(nyi^1RV|<(H;N?$5hlL(0bn z4cilZ!j{6qh}r65qQxT5hswPU-HR4!ps&vwdNftiMs~!Bp?3ek_}%Hinsv|Wp$CyV z+Fq?)#sq%NCG*tljIs!8l7uW*dezP6r(WMtsGr{}YoJSi=3-+jbR1f{D7 z{B#%6jVU(OrgJ3yd9^!+6hjQD+e0$Me=-^uWd)bpmCvB-Lk}LYEn>8!ZyTM)i{ls< zc)kBU8Rm)5(S1Y%8VRp5GyPx63hR=rHg?sD@OhxgEe+~IgZ;j(6#kO&JSMOjbcn4Z zP>O#H_kGyL)j%>Th3gb|@%K~gIhcG@3SKQ*e+9JiM00bq$>(FYZ&#JTJ7^!^O|R!J z;6=f|;=faW7y6#3=9$`N(x!cM-;9S4@qm~<01bL4UkyeL#joevJ~53zfk)4R{C zZFC&S`OAhtx);;@AKKnKp6dU9A2&`MBQq;|XRpehk%TCFlNsVf<}pK7g_IGYCD}qz z#&IN)s8kNg79o4j-~H+HdB4A}_xt<%{rUT+TesV(GoH`K^FFTobzOHRrba%#+GZ-^ zVOr=13V93U{|CFN1*p*z<}))f(*|^-2?yG9Csn?ee=u>Pm5F1i>b0495MP4Bw{!G9 z+f*>mpgSL(LaR-5`2@W=X^M2LYGEopUreR~gWBR^d42qtqbDa9=K0j%pQ?CWwmggl zJ&_YJ@8~K=hI`K8^GwE&kP`G#+ir>edMKl6)pJoNT4kBmXj&zP8B`Cu$~v7o)6%t1 zEE~M$toC}b>l)IdPpG@$90W6u{`FrYI2Vu^si}-xQ(%n-NZ0$c32$FX43J!=k>kqB z)^yNPpl2X^J8~=VW+pe6+b+uun3shAYjU^VCQIAfP}@*+4uFI^0rP`fk6~o;Lg!`h z4_*O!*&7=q`?F#8UmO;_v7&QJ-BFl0VQz}>W7R&^(DoC#Nhp-DTL|lV2dAno`XCExeynk#IobxNF z?b;q2w;ftLc#pS9<~xnAuo};No{0fFKQ&2YymZ?)`B=e*Ki#nnOKEWm8gr@uZZI|M zAnH2eIl${5YkARCB-L4l4K6yxlqJl*AG3Au5+vh7D{F<#fzmTDT9?C>&z8KZzk{4h z(O9ry0hWZB`cI%^E_d_ieq>9E>8Gy|$!c+?c4CBi z_6p!4VJ_AEk|(=jShNi#TPSf42IH|aiq6kHA7~10z+BcBCP+b(Fikl=x~0`1M|Ku; z2o43l5ld|>Gj=iADk|K;L!yl9@K`U<#afRjA}Dp}@2WD1?HqG1Yy-P78H$gr9WB$U z(QQYtSnqPwNQ#J?q7SDECnpV8F)3e*ZbiwZ1@{yzL^E}24zEHGuT&I2K}H(8RKV?g zls;H_IC|djjuizpkFlhi=HlE~XhVu>Ej%PCzUOr~#Ky<17dnRyDjA*P(MRw*!~Ofy zc}$HCA7|a65^zV@3>|LOb{14AsA}M5O7jw{qW=>=yVUYxb6SINrfbyoP6``J9Ner}v=&>EZPGAjx>VH6H-q^{m14i}_-@cLsrJ1s8TO<{>K``@j=j+Eda|8x&5=Ajgu549n#WlVOj}za~*0^SZ}w-AH4%2*J8zWeJ_{`>9RY5M+&KdMT{)^FdqapUWcay$0Wl~3~Ijzo7h z&?uEWiqcwQ-O}1j*51qSL=nY#9s#6?AFhR^b&Wotsm z$R7n^P8UQvJKnM)3y#0Y-Dlb_7ZbNReWrsd50el`?UGvI6~5S|>Eg_cu3Ab_+b%k8 z%OA4cr2VTZ{ir360d;c!(w*y(}*TX%>4|&!` ze1_^K530k_%?|18l&IbistS%DD94eJ)yvrxueQtS$rM3x{XxxdqT_7Nr@$2QA8KNJ z>6NdJ&xWbi+1rsgrD!tY-$*B%$>Dd>NQ!21lNLQ+J5uHQZ$dGv!2@0=;|1GT%CuW- zTHf)Urm7@o#}e3*0hG*uv6X`uA9;y|i9PUlMvPEld~^TJ!eW`{{$sSdS5S`D#~F|p zPRJagB_@$lPG3Na+tyX0tA+oUEwB|}^OTAawfF9&15Fc5pb{CcssKFyY#fi0CHWSqr1UH%lwW>ul2%qT5=$^LN;oLd#>gyyZmOp@;sK zmzE||1gXDa%AD5Y3NYoPQYgOFBO&?U1cSE=zy3Nii#IW&d4||cmOyi7&FOTOZpWZW zFiK$`;5)Yk!13aNE>S&aEXF}Lb!@ep(Xv-(;_-~-?6GxAv6vNdOace<p}zdgn7UI#k@PtnC>^ zsLtqpyR*LuP^Ff_do+1h_uDU1lK6tSOIk3xIChVjz8*6kC?yRb-^1YPNAZ%OFuINW z<$D*LF>udOd11>R#z14X!4Ayun1of9GzWR74L;so%0~*8tv3QB5=7oBu~|3`m)XcO z{k$W=^^oduRnY+34|eV*CO&O}0ax~hU%(%yiiR;z#{Wv|zj3#+nWkDcS4t4dK+*?>__gA(qj%sRRq z&zw%U^DQKbfjP>V{2oxlt}Hjnl(aXQE0M~bItEsHN59*i%s|cLYM60f{1m6^*}=M_ zgLmC- zRc+KQH+;T_Vs-ZIbaQ=%SaX?$YkTPsl)Z3v*G^v5w{yKo>Q-4qJIbWcKxK33GC;k< z^hGV@3Kyasp4eT>#dDoHYpbySt38B_z(hW!?nr-vhV%vt_w$CaT;j6Jb9N{CJS;e- zn#RkY8|{=&c1p1&->qV4SP{6&vHx4;50f0yg%SsL z*K9$fK9jd%#f(91GWuTCTmr^Bs4&sFkHs5r!{@x32gDzprf_U_%XLc(U%s}lfA zoR&w5bYu!6RL{4@I)djCkM1idGIB@68jgg*9FzuogRb?(Z2)r_IVNuC+*RNq=Vc=F zqvCaW)j8fB8U1ar7*_c7X|8%+ljO_?S?y0*ixd40Sdt5Q4*_*#g46GF$!r)CI(H4n zqLrAGl=O|FSK$Lo^+m#D`zhdgnNql^7}0%JXj}!dQrYU(hfkl(deE{ zuCVDuD5M>yO1b9o(94fyev_S96p@k77{6HFzvGolPBca**%xc_Qf3kVr>%&TCe@$I zGrn~Iv&kGd-qJ-$^Wa8fu++#?*SUze)-}va@gKf**g1#rHM7YN@pf4cTXsmgK!Nkz z0Eg?|l8cpG?r+4tw$6+W`$Cg-4P%I&44p{RJ*J+!oFohLjb~a7m5eN`W8rbFg}FB6 zkGT{QsN>JJ5Jz*y?E}X>NwdchU(neD6w%{2 zSqg!dnyTxX)@hnk{ziIwdhRfX*ibdfE1O9?6ffnXuJg}*q@Fo;{P+VUAT^Ev#lwnVKreo7Sxho1DOhb}6NGDWs) zplvT&d?UR|Twc+*{$Su4#Tw4XAUI`op-7J77^}+Yb<5n>*MMpi8pi2;#-8ps%pJ_S zk5V%j4<~IOU2acoRyfMO@Cgi0MD6GC5zq^+w{4D;^JVdlR)PG{^Mi zpE4gU71=BLM0`iM8H2g$Ju8vvCVgxCF^cAtgal*mnLdX|yH`HHMClaH(XpaSTJEVe z7^15%^N()RDyjKF<2ZHnrY=>UL2z$nEw9O6Mhy_I{U5r-%XR&RN|Y)U*77(b<4OfW z{l-8y9ETkQ5o2z_?A!r(nV8$VCtT}8X~t)Z#g=88thSDYMC+P#F{EUi=MtvK$*JcMfW2Yo+$NhGb`t(KAspD+GjE{v$VJgj zpM$jaI`lbCdEo)(uC&{6$i)>AN9`-AVrXIyT4qyF%&e6KLq+5Rq{H_S$To=Wm5mNw zgE)rmTU+lehK$th$mgLE+Lk-Rngok)zS2bRx}ti0sBey}fsq~3Y9o*Kp)ze|d&@Nh zN~`xm1^P}7H&6bP0@NAjaMD?BqkfGpBJ1VN=UfzAYQbZRGX6pwC*o*_$hpG`F4Vsx z=c4Ex-|V>T;Ae2H^~sb0y0zuxTe)1Kt?}`slzJ1o&4y(mc}JlAhrmOe4P!A@oxk!S z0baI^pFe*lx2f@vnSw#;b|KPe!%;-mdN?O7QKv-hw^qqzqOuY|4S9%R-qO zyBa91cg{qAZFeb`?y!agM=m*ZVazfHS=uibQg5^{QeT^&uWH8;U)$_{Q#W<{GyPzU zmm_1t2iCbWF5|zVLR+hEPwcYUhc%FMf#=H_mRf-BrbS+5I}dkQDnMus)n7agZ{zzvGqP%f5UFj59kv9u2bozoSOgJ09H=8eDt&x zp(GG}^yowHD$BEFR@FkRdAvdk6dHgWC1yDZge@*c`-KYH=|@RNPf_H_2qdfm;WIxa zGiZ&_T1}q9iBkItngEf_tQ1xmJoZWUnP(`vQ2PJFidHg85v)CrKIu)U^an#0b=8pN zr)}XEg973jy=2gBI2z-{&a=-?A_BL#snnu^2lbszBaeh$0Is|*ycLnvoS>IpIpU+H; zn~oyEfufGg-d`No_JDi0zkDLCeh%)5 zy#_|rzCz^w?r&ti`R>;YCARB=(?wCTmzIl(M<#(WUc9>1;&a0CI@MAN>JgegMVeLR z3Hno%ahyD>%-;OlII}+I6j|xisJ;j=Pw14Je=rn0ezew+WsJr3i6mW75&OG{5Iomg z=NA9lK`51Jx;L0(j$bOh{AdlMH+9Z&&$YZo(Hx0AaJpFaoC|B4(sGPUgwR42fG4r0 zmgd>6A|sOH!kl%?px4uPN+Bld9Da2*r2( zA*Fj}R53ngXl46PMR=+?)5OXXCO!Y(azIqv1>)!eq}K(f?&B}b;b{mk#3kVEWhnoP zh7e&Fvl87!Q2iGdAanVI!Rq&~|4pTC_95wh$`%bx%clj1G|@KN765j z6rJjl{fC$wr=Rc8>K$yugaVz~SzA!FrN8nW=9-rfS5qHiI61WkoQw}@U|KN&qBX1E zrM!q0@Q4`6S(f#roVLp$xKWHakTR`4fCJUSm$aoOl5Rh}f;XrPDTngyTF?!}M%e$_ z2?<}L_y;p&-2CnL_I71aUOGlbaO29%OwG@a98Gk73Qi;%B**Eb<0^yvK!Wk_?s(i1 zBZL?bii?AP+rQZ?!GE%6GH|YZgy}!zwYPa0DT2=s*<_4;v!ic0*bO8~kk4MWKYVQX z9RUh^^M5H|U$*Jt5>PPCvyAOM0koV<<4c!b4kQFfCw~I6b91R}{mUyod8$X3)LNL6 zV3xKFwZ0x`atEFrp}@|JODoM)R7_oO=M1uSR1ciRN30P}uXd#IduH-{BmHS{T=42( zT~$%!!T$5Vfjc^9tFi+T(M5XHpV-D~HjvAbOW3@c%YN|S_?;B?Lq63jn!mvJTTkQH zJv{(Q-&>B=>I7CMrnO065ns*^9!nGotyqXAC3opa<@IDg>rI;2IG846lvmoF#i|xo zS6%`f3{3PM0ne~AE)0%as{1n1Y^S}mIMgFJY|^G$6@p@kXGN^U>uC_bl} zLYi9{skUC%zK{y^%X{tIQ)YwE5X^iQ=Rn0plhD+(I$cu8`fzG=)il>JIecR{bXFo@ zK#ZpU%|g@8H&;T*@RomYaNU4Bx4Q?=AO-ed{2l??jH1Rl-~yJB@hO-PJ@35S6Y1^= z6Sb}03a|8MuS00rPm5!LOO^lh*|R;$s6!V|&+MrFxJJDDKZG^&@eSW(9o&pa%osF+ zHUFs+7xf)EqQ+0h#B{0(pm=`pfMK*t#s+E7{h|ACXwlt=>fAF7*)NQl-KDX~acpwUf zHqqi%FSYlM2dr+_(|{-i`uAp}qB#H+zWX*_ej^^?qOihfVGw+{N185KB7 z)>9lIU0mz51RAE=8=1?#O8@ZA}M-a}t!qfNCf9k?y1nEclL0iXKT}u#O zQ-cv=#KB(BB-uESf;WP>oFIRnkBtPs9eIi!L}mi2mR}6(AfUcDuZ|um+Uw8$1A`hw z0O5HGC&MOvd;2Pr+h0z{WsE{ZKJ$}=PJyulmUOR1OD;-JP@|`ym%F% zEN@DIP~MJnadG9}yN602_c`NwC;I~pvATo9un9ZRL4QD%ab`H5Se^rYd9$!Jj!gFj zewYj2UGixgu7<(f3kw zyzf3ZBY==F&`cfPC?{xieO!EEEp`vYYba){!KGWQz=paz1m}wilqi$h0{sagE_s03 zl^Ws7@%GfdxOzJ`ALcoR{-K@g#We~euOu^CaN0W0In`6Cig@c0f{%6EF0;G_(7}29) z!?nbCHIVXx?zbS~cJCF;uE3Zl>DM1%OBiM#1UhYgg?7%8rv%d+MyHfLV$4DG_aP4_ zP=v97XIt<|UfxGHzbwDs1zH;+IjSsfueP|Hft9sRR9w7taIU}lc4Xj##)0Rq=OGOZ z-viluIvln-kC`G@%J(-;AO=_^fVZrT0MB*S_oM)bFBlC(IrkUAWyU;W1{D1!?C#h6 zXl%WQB6hB_LD0S@Mjo?rK%Nl!uEM@1?WaeFXWx>w8f zd={6&o#PCujK`;cx%FLE58u8XZKSqN#VUfZvp>KBo17<4p4hO9ICLQnXR07^b|?u_ zS8sMwmvw&%pszP);duE=!2-iOHo)LaxfhYL3T|{s0l8wLuG!FuA2^=QlwRc9`mz8V{u;04dS8C-it)|9hzMU1;P2-SHj)IbG z8%l);yhG%knJBG&rh7#}Wiwj<%#|6RJbpZsl#+6w&?9<73RyWo%t;dZ_?HjfepD2Y znqe`E@-Ewk;A<_w;X39b#uq(@&{4O(14?wAn>*j4CtqD%S-D5He2W6K!6(-@HXIP; z$Cys?@vnc?ex{1d9dP$Uee@J8N2b!#)47}dCOhAIw@w^-;Em{j2(WyVnU<2$8Zp^X z0vV&+r;zXV-eLv=M@c|=ukaSypNG)ASANa+AE!TCB^2!!N6Do03Zx}kr#!!Xo^>zN z!`*l`@Y>hm{VxCzPJt5WZbEL2BfXUX{F-#e&+HiQD^-0zUO=#^hNp%KYLToV;Gdo0 zzT&?8%423u%DU!UEiF9H^Bz)#lGJhwG9<*r#1~hldT6iql|M{rXK>Zp(&CYoT|N&N z_%TS(L?`sgHZQ^3GhmRFCG4qmf(i=3t{@vdUS?S}#@r~@^UL7w7jX@usc2+r&Kw-C zh~(S180qkMSiKPuES4)RjBVXnf`0+8g%KUtCd2EQYmBuMJ2 zFZROE^>hGyD8Z`QjcFQ+mr-w(&LU=kMeroBod*p(*nyuCS5*zqK9bzQ7m}a>@>_Sf zbitRwh2;9|3SDo*d0_jf>A}U_kpy3qxQ0;S;X`M0MKFBIC-s99>0nWAyHy1>x(!B6 zE~XLv?%lf+VtbJ7A`@=k{(HINYjusHARPzC?)!&9LyB`S-=gWday(4Zm*S+)pn?<3 z^3yLnI}i8#lwUbCtxH8#!6=U3eEtBsBJV%I&P)RLoVs(}>7(gxe9~}6^uZ^lAs9$5 z!rBwMa+423K1GrsxEc4cV>KgS72H5Abx^|pk;AmuR74O+#XDOoQ}xH)7vEf7hk&<_ z=xQZx&R{T$&*AGEfn6(^>5EH(nJ<>EJz-D)Nfr2>oQ7Re>p5VU!gBk8(eIDPP@cy` zO+ESml%P@^UiM5Hv{6YHHp+V^QU3>ie!Y$Mx>ZA+I2SzFZJ@%&7HY9??(FE&z)hNf z!x^TUE?^=<84Zf_Lc?rX!BdKg^<@d(r_MKJ(V8%xxb#>%aT-kl-r=rMT zhM>or0M_|^`m|)S56snvdwP5j*GTsJ5$`}oYP7Mkf^~wRwO{M`{cB{D47H&nSg|fX zGXhJcEwH4DNPQ&tu`Bzo2K>}+sKZSE0?|#zgc+xmO+!oDEDio2XFzDZVOeA;4tpY^ zJ|SPd3GW4!xb`~myb(dWeyCbVVHOM0*Z(_}iS5ld1Pc#48IeF8KD<8tW&8{H2z^~p z%YT4_vuT1Tvje~;?BTKqRhYz~R2mU^>q-yhCj4ibi6OHOrAl8r84WY7^Z$`(u5TNp zpk(;!YMh(1}R2JJc~dDzx6_k4eKy!$Wr z7#p9*Ls0PQfhPhf#NDP2L#4389T2y)qVQ_8p7@>~->ig&YS7*dL)Z65rYDADiOHG- zm^eMt;P&$%;TBx`Y;7fhR0k9#i{xOX$Ctcsut44eZgO2{5{uOSS2%NS67~&sj!>vjhAM;zO$kL$e#~?@N=2o=v9uJj2AZ1c zUtzbtoa5<1-xD>P>Bv>|?*u<9rcc$G*1J03Fi}rI}ga#N`)Yn(TL2Wgf@=q?Nf`h!Qf$ z!uUWrVB>uG@&iVCc5W)E`mB$bA*b2TE@tWeh`*a(dOk8g*xzFm&7{IvviX7PeVA7|6a6`Gzk5Y+&l4 zKv{C%?V*1qf}F%k#O=oU$Mx#VZAlWG;HvipS{)V{H|ESbuPs<@Ou}4A7{+*m59Hp2B_Vc*U5K|RE`SBH z!40seOY*uV4gSl`!trk=r`1AS4*x7dsy}jp>-*+(iYmyA{(m_5B`8Xx?4gbMb_6LDUe6SNG2{uTDX9 zb8{rJ+2Q=1p7mFIKu?O zZyE+?1of-&Z`|1sa}ypUJqcZ5fyyLrerjq14|4lmukXdKcWtriIUp{1pD6zUEG+Ut zvPiqU&%Q;*Ak7>N?1C>~Rl>dsILuG;K~U<7UV}g;2d3>qGUk7!)&1d#?8kl_qsJG82h!4g<%85!#9=RC;G zRT+KRa%mvvv zLr@6Bb7z1x+XuL*&n`VXFK;=w@%N`NLiq=@y|Mc zZ&{FhYw_!Uh4mF)sxUzc*6gT!h!HP9?sd$IQ2EH!w|WS=&i@J_+Tau;1_J215rMn##r#&h?SDM@ zZ3k^?tE{Z-kky;(FMOekkg%csuM}|4sBX)eLHbBEWTSAXyehr|f_boIYJCFg?vXJF zcPT;w0^cf)t1J&!m@T5C4dM`AkRus8uZJUSAZI)an*$#v0jO*;-@VgbTH6~Q6$f9f zl3h4MmkJHoK2n}fFcqKMDo9zCHM9wt(-x9#I33f}qqI=!{ERUVG`>(lOK(tXG|9I+#jj8jGJ$n~i3!+pOC zi$+g4IXu>;&^vdoPLr?zPU~P+B{J7&W90J;O8uowD1l_XAf+8q2Aivx5D}LfL3}_mfydMB%O|eMXdv7!PL)-7S4mifP3Y1)@&fwh& z4}%*K%9av4addx`P(%PDg8EDklnRy;qxQX`P0u+8i_?OrN@nFYHF4o z2Vu86_^1@B@;(6|$Q`t&4RVr_H0Im>@3p!HQ=>xA2*@b`>rrDtYg}?K#4p_W0#K)N zfW51m5pNKP$7wlCn%D!i%BD&v0|LS^+7yp+xp4nU{=6$16r(oz~+<_=JYOVO$< zLQ2XrHCwkIo1NY92ItBfkc$h0{tkRUnKKRE6Hk|Ck({*EWB-B;3|%310JeL3Z*R}y zAz*QJ<0qWuQt`Y;T|4h7=I7?_ZX)Jb4|sdJ4p*K`2ou{I-_KuN8TkbvUJPQ)cMqt7 zUgPd}7L7t8fWCGPET1F))g7F}RiiqYL`|m&&@)g%Q`EXRpAJFhV;x9{E5LWqf*~zE zPp9SE;q`q0$)n7wLjGQ{@guFj;D5y`1MoHpboC1jNL^+Dd6nzoy?drDMIkOthwq*M?|$1-%)ZkE!h9e6 ztO#*vf)IBksm8WF7s%?E>off@qA$CB`*wIIBtzKx3Q+{oR|NFk!4E-R%Id@B3m!dF zLKkxDz@7g0qrrP=J%>(5oD|a%?QRJP_8iK7a{k#l|Jf)+Fu6by3Y_eAM)w=Ymv`ic{B*k5+d@ae?#=3T02o-zOD#toO3Wov z7+W5a|Ahq(|Lzak9dIZ}YJU0!XQ4s~o! zXpwaLb&NBTGXIT5bzjp8gWZ2TM#zHU1pv{*z5@u$vhpJt0-6-8Xc;qxGD3AIl)U#) z{Gbdr^RJ!DW;5&0J35YZLT!?nFXw*Y)t(Q$YYqcF{WV!$USbwQ&hL?&&QNc%CL-;y zJhJOT1|WIw$b-;H!104S5%W}Nh6~f}ZIQ(sND9Rw{dW6D^Qyhw-J9S6d<(`hhlycr zAgR=$S?vj&^ecR_O5h4|x6HAsQovCL0i(DF0d{CaZci1X{{T>&7u&fbV<8qd`^eae z(;(TB^+r^l<@mMCn?;3TpR_Rm6j{{5fgON@y=OQ1)aJF%2V^S6%FRtH7H-h=J4*^| z;}+4xki4flGo=njp^Weg|FH)eu>02`%vk`EG8H1=Z*XXHgB;pp>)ywF=z(0bsSmAe zc5U#|*bTq{PD}@T{9iHrHG?w(jr7u;u&u+ig3G3l0*uHjnwvk?H-20Oo11eGe|shE z8wji5{b^%hf^j=s_i2E*;l|$2NU@USf^x1HGJgPouFPPC5?>8f^bi{h3%S@{eOMQZ z140qCBhl1JI+i#93r&!wX8JaJpZ`m^hPR+xaA*kI@;gGGxZ=Z{t%O`6a6Th9wBUG^ z)`eE#gnrQp=6@RWR@&O|IIQy+7n{D|2ZD(RSeKcbR=k51JuD8Pf1VxoEPvYmW$dhi z?ADdz_?ty393EI2kkP-6#G)TCU#uKWpyxkdcSFVrAL|e5Ap(HRD@A{!>EV-!C??>< z?x@6Gt+KdCuqoBD;$XmJYGlj0{szQT1r}CpJy}uAHI`=BFjFB1p3V|INVCM{UaAr3@ywq~?eM#vYsE132FBD8K ziG)trX$$f8t$xyyN0mD}{BsPf#LK&SxL}PMwmA+F-FN&dj^UBN(kAm$VB`pVp$4M+ zdPt(t2!#LXp2<3{jK=V|+ra;IjKrOWAge(_1_rOb1)b7X=CDb_+^I{FA~=m`hg1sh z`W0Rk7=fRO4bqdzlS6(cvQM{$P<{090!1Sis7TfzgNYKGZpK=zPhu~C+s7qivJck) z)*&sD-KAT)$*Mn*vn_@^pzO$dIugNO$%;_vZqcOmdSZ9_g@~o-F!QucjA=1^vbHPb zboBkgd?`sC4)z_S>4&lUC%{Fo!x=kdh$weBo{Yx`I4Y8K?`aCsZ`o)cPw3e9dUlj0 zjfzhe=l9G#`tT<3AUEL>{n?KQEJikC8%J`4a=Ny{_E}FnBns*?Jk^Q&Hhjye2{p`V zJK8Sw3E$}G-#rxMJF4?eS6e6nt*wqXrVr86{v4D`pEl3u_fGnm%h|(s9zm_fvXs3f ztI+UuO@Rf~F4>Y4mUlJWoOS5w`z82VwI>4Tw=A`PCwE+@r(j6q;`2*R*yZIjO6Z`V zSLETVTz_u6gQcL~N)b$~GCsV{XR3#g=~H$7$+0a=kxGcl<(P^YBMKyXwcVNXb;h)G53jYNx?n~uRyh~ z!=2z0hy$HUi+58djtQjvr@z+wyI=YBrWQGHmSXj3Oq5 zC52~U@KzX+3By8Uc~1kl--Q1C80MJe3{QO*+C^|K$d++Et&dCP`lrh&!*40+b`}yk ze(`<1*@5)5QK&)w0^x>f=LIg^k8L+9)nW2*^6G$T{W#*UNH-%3&W$40HAM|D;RFz# zsUGyTf_!{h$dV^T%t#b??i)hTKY?sH1B2&3wNf9iIY*zv6{249&pl5%ca1*!6jzSB zI$fF$-=*n+r7Sxg0YmM)=F`L;UM7X&hdb6?a-#AUA6NFAzT~AcLQsK{b)gd)Au*Wb zWJ2e49-0{eUS3U~`XksOZDiM346Rx!;+zGwm>6O}2Eyg@FfvJ?h_c^#NhY2F5rRh< zKeRCLLP0@>-09OPd5)(tR@zE-{=JFJX+wN3GlT!}+fU5>8uzHTq;aCn-v(=mqDVC6 z;~zlC8J4<7Aws^qHh$I$=%>5Ti*J%s4VryyaY7!LTnbF7V-5rc9%52tsf30gs|;0n z>>i-dlaSmHN`i<*E;w+RS6Hl&F7HA7vILaN`6n6bVkN-D##+}CkolD zhe_oY^cCH8R{J6r_KyWe()>E-QJm!D4`TN%JNa)!~5{aop7yGZ+woKi*0$E}47NX!LrRrsXZPFe6N%0jjx{3#aq zl{Ik6m(Sf|W~f9%+)6eTNCvdo(FdNd-{tBRlX>_dFOO_#3QNRJoXP9HE3$8r6aHnd zS+82PmhSAnl8x?eh6}*0i6uU=fWcN zMhdY{JXXIod{UDfPoKjPLBM7$V8}Xx1a#PA%ibXZkyBByed-)86kfBexM0NxuQ9@l z@=nj#1U_O_QT54m8|H1iSAJox_dqm{Rxp&9?1sql3wNi`c;s9Iz@9vqe)OTHJ zCdgi(-C|IXbM~T%MWd|_PYosZRdg=Hh(?}?U)UW~sV=;>Hgiu9xxh#*%xG?{=2{<@ zAWolVp))~6e~o%VRomre!gczz+O2!?O#n{w_);{$j_ky9bwGDqCHL2PnwfBmE^TAw zv_ACw$gO~K{ijAC`e|YZ6Ma1opC%uJFkchjC2j2_H(}oQP#jCE5*y6ZbEJoreYf}Z zmI)uVB0_G1G#_zecjm{Ev!%7WAA8yPmb*{!E_AfDc{RtZ-2sOcoEpkJ`CN%X(oSRY z@XvT^{lneKTiQ?^`K{s&5xhYhpa9!bli%n{+{{-|u zjy$k?n3Yv$rcE+2t37|!z(N{hfL`!W`=tepf->_7u-u$ujX&k6~Kfi+I=w(0-)ov#yvU!bOuJ(XC z#|$M5LsE>(g+J{7!3S* zH4}!@Nz5mVHL!}AZRb13;M8X!;hw#gnU2o*8El#$2kJx1ZC{_om(KTq&?E*{L@&ho zg#TJbWNaN!d@HxZ_QHAxu28@}65Af5@U5+`VCXgr_ql)YG3;VO0x6Q^ZYPzPzW54& zL|JibukT=#Ywrof{vU)ryYx&<0nLW=m4pNS&*d<5Sz(d1J!jI`W}^+J{)6z%rLi_w zmL9(hhTkp($FIV{D(D{Y6Ld{YkICcyRKEm}eb zJWWW}Mb=^0(O% z;OEh%W!9$}fYc+^1l(co^8%@Y(J)B<2;Tz_LfFqaMc#S^2`MQ(ao{lAi*`((f!W)K zb4Er|e0&z(mt2?u8av#v93Wa`TkrQ1;Eh=b6`dnyALb_Iqv53K!4Um5_{RLo91a=X zS&7q#0WhIrxXPLQ*ZT62$f4#{WT|j7Tu>ptW$aM%Lu8c=Pjn7+H?uWK41(tcpyBUO zKY8-r-+0tZ#JXDo-qlboXr4p1&`^jj z4EI*kI+3|G zHktRQ;P0<|C;=HOiJ-*hm?L6JDXPmD=<;_{~KV46#AvRz#!>F8Uq=T(@CvZBD1sB=BTiM7glqWtarU6_`+8d$#edB{*t zmy2vk6;M;Nw+98+cip;lt}zdZb-2R!fCxxo-T-qpL717OB0b*%NeSI_Wa#?bizc=( zsm%*8xde82t$lo3 z6LfaP6&m}gG-DA^7?W(&b(QI}c*Ww*7qZ**IWt6 zw6vJ`$iZ+=k5S?fEWRpgITo`C^+W-gwPop{u{7ww?-T4R9iwlt%U?K}g-L69$1fpa zm}qXX1xW7V+U_`89UY+mwv8-|R0inO4H#;RwhRLNx&?fR`yIL}WnwgBp_cnRLk~&G z4DXRf#{8sNK1z0C13^GwQ+Qb@if<2D{C#s?GIvJVs3FzU~AM3jK2&?^Tr$R!&)I% zsA?peu@Yy((x&|M%vPi)0C&rRJ|Zzt0q^QHBHOw$)TUZh@OI1<0}@eUG3REMbazo)_Bb z>hK$GU}gJjTHbw-Jr*YtvjQ(n$57*?XuOzHO4wr~ZqU`?Ffn>y+i;Zc_TOnwMvmK2FjSHm)?yOu9d`lc!R{fdPxj zrnTJQ1m+tRi5M%{$I41+5xX}v+l)e#P(n83Sr{?;@iB?ysTzoxCz)_=JlvMkMv!30oGp!TtMd{LAh6wOG|y z1)&8rGMM_yF6L6cO@B4C8$Yykm5)Z~!*r&j!Dn#Yu`fj{4J8IWI*7W4uTR1EzzXj4 zPAY0X#ONFziem9q*v?WWiVqq#bNGFp;C%lH^fsQ8w8RE7AsYR>b9VR7*aVifacya< zN2}RrN)6i53 z8C_oAiXN5PV2)}=o$6nbv$cX2N2t<(*RftrKtLM=Hsxf7;#RH2x1%&^wU}b~##-9Q z!ELls*SdU}n7HC-FuAxrtAJBnOn}Y!N3=%Jm6uz_?rb;`wY@t+LR7AteZ+FE z%6oxTK&Ajp|1^)zW!d6RjY11%A*s|+;g1oVlR?&U8S5{eZb~IY0Z3vA6f2D|ekQFGy3n{K%|lSnuH977S}ePrt=+gcqM4?wdywqcHc0-4uYr)?)&nP||dz!xnM^rzm0C$gx`p03t@g*|0l#ifagx-<0z&W;6|4)QO5VE zaz#bTWUN*h5vLz16T9Gs=VHdbi>cGnc!(d+OK#lP#j_@96f$G$$~35z#Xlq@tlwUz z8NPZI=V=MK^WGYJ$%XPJ>|eQgO02=>UwTr)5M@NnagI0*+zj6~H9Bm{By^B|oo=dp zTh;>4Rf4K4ZyiX9GNZCw`oevQutEjE$|03%??IqGfj=AiT#;sTbT60@T2gew=4FxL ze&BY9HJhTXsHb~WR&Ft*E~d8=(PXk)Fk^FTNY#xjUpv;u(<%#*kH{J9dq9v-#dT5>o45*9g1PMgs`Pj|JXV4nQ zT5nXWRmE3`k(qi=$Cad=)*!&5)iY(18iTlE3Vp>3^DVK&TEtrr@n-|X3f4msA~ut@F2 z{Mdz1Mf&v<+}o_HhMW7w7sB$ho=#{JV&Y1gsBhTW*vF@+b|x$^HLXuq0A1v9Q}{hN zh50AoiMKm^;%k25x%67hjsQXW1uKSU(W&u;;J?jz+W3s&7Ic3ScIEDjfD zX(zm_f)EiMt->F&5>$uqZX|Es2n}kUKux7zln3k*9N@ywghb$R9gPbc)#fyC8Kf9g znWYi@`2K?_;YrPApp4%836}k7k6FxZO>8ul`t*Y*jZZ#}tulqZwhG^{zM)`9jy2;c zt&(p8{{t6-nfhZxNjB)pQd-^m3Sk3h9>sx3h27bI~Wv3b(V)(?wNClx|vAEp+?W-zL?JB5H|CJbIz` zTB%=M`suhv<$L1n?awM-dnaDCm)<7)Y#^@Ogd~C#;rF$mE9!V6Ga^gG!fpBM8d;z{ zS=|XIK~mlM7EY3RvyS+;(a4A^OOnx+HJ_pWjQ49 zT52W}F66SLk zGiy~>K9Z%Ei;08d%Kx9eyM79;2!9AU0RY5p1Xz> z-xlLYo8^GYzwpl2wx!C$5Bo*8URO2iFqr8ccovy7MJXOWHR+(urLx4FK2;vu9x|h# zbHv?rJS;HR0`|Fi-+wbc1%-G~ayn*6_JU2z{W+LKUvh6aLpOGbC6}C5GqKmPGVPeW zJQujFJjDJ#biH>x)&KwhZybA*y~&D<%1X8(L=uj@BZY&I?0H01Aw|(Jia16&na36> zm6bgk92p_9e)nge_vd%{e7=|O_w|R%>*dwU%XyB+Ai~SRQJK0ZNj`h{o!HPgWpKUa>pN)I13?_7s-#(Ib`p*e7ren5rKI! z07ZlZL`E)i8qSn?&okBb%#t0?d&Oj={2?hAP4rXc_^=7E@XJ;mbM)RAzYeN~yxtVH ztC+`O{{B^`Z~23-c5#-c!OB)+yk_a9FHGGyJtxp*F?%NRd9np-Uf>}dGD`opiaFpF z{!RD@EM~AtZY=e$_fkSCn#_1tJfseGzV&NPCwPXDf_GoTh#%?t(R2<`Trff7d>P%dG{EOsOj4$ffd(2?4=MwMz zt(iw7&r@^V1w-ap0#yYqr>b%_=LJdkX=Qucj*|2K@(WV`MIMEw65M0h7fby}p<8yU zz?Z-;f;S@B&wS(9new$KsYuRtkmK^Q4q6^XxH#vC86R%#`JE>g#ha z#~!~9C7o>m1r+TFac0Q_Z|QvDp`x%!rQ_Fq2C#nACBuY173<`FzMqoW$8%v^`R zNSlBfPqKwR_~4Y=&c!rg%@ki|zfXUh6xSf5mJSw_m%;N# zBau4xVF3XbZCl+!R(o#lobTQt^bAUxDnaNqY=73=CKjrn%4c?tX^)e0|LX2S+4@WZ zE|~i7sK}*DdM6^ z&>4g{8WBMq%6pP~A7F zv8DbVLpR{b(v+m@!blMV*85cTj-gJ;yx(RNx(qXC2fTQJpCe zqvXWv%SU&BBLf*q>rMC3zY&WsiU)Ru8(4(iD1=1gKAt~-iLl29i%*yR$w57FY+oLm zj(O%aV;D!0u#L4aL>cdW@(|S=jZiHOQ>nF2>Cn*8`<9rf+b_EK_S(>23J#y&aMntX zYWdfcGbm~m81h4>3F`=d6XJueLy2BNJ;yF&My2jQK=3jPWU-PmV;Hs;ExP7FJbt<- zgkEDb}jRr!X3&_y#$yNG@c$Ac{Qo~(`o1mF)>W4xx)Qce?hYtH5tYFTmZ z0ZnM4C%R4EN%ZSQ{LIr7rcB*hGypv)9q^=izF>Sn%3WmgkjY3p1+a0Eny;Alq>xH(r>eu4- z-ttpCB8@kr>*z!LDLaRX=G!HcY|?8xhW>$V7~2<(W=S|a zLn)2#79u=E)v|jet7i{5lLn(dD0CC*;h%hQ+f3<6B9SLEfvgy%IdBfJ+O7o zw{R>9XIf8EKQW>lOH#{84E*=_Iq5}9>Yx5Vy3!igR+&Z;E?}wuNm-;oPCI{DhFIOB z&(Rw3PBD33eb^4eoW-%r7ik#QFOE8)r)P>CMa6$ldO?-hPf@-^z_>=e=JXN7jp&|g zU8lIufyK0IQD|PGHroC&2V;8d?5Dd@NvUFGlpgKFbfcbl%BxP*JbNRLsBC1Ubh$Kt zzduQK7$M`{w*L(RyXN;OuOI0AfI(P>y=nRwY`HsD^nG5>XQpeX-f9nt-2_uSg$Do z?U84BjDn%`{Uh>p%0iigUv*5A8^51sEqYGS|Q1 zmS@CPk@)H+`+rk;dTb}|`@3w8TlVz*?Pw!}6` z!n-@qA1)QP;QTylNkoaO&2-Xwq%Dx;9D62vxfXgx&koKaiXT78J<|;Ac*o$pk~qt} z{b%iRo?W}uNb(&$3W0{X6#C!pggGMB2><&y8Ft++NwhR{x&GE_ndP@EOqga)0|9d zVce1sN?mp)U~6hv%sZX>pH6?Jt?b{23_w2Q|4Y$Xx(cU{$Ks2f3c7K>W-s%}4N%;x zA%PA&-DQ^#$sp_o1QmtdZJo><>@?=Zk|-8&F2-<#hL_a*lWD*+Kv|{o>n^4YM7zm{ zn?08nxZ%H*D=5MZW4%J0(^9Uh@GyG3pBoR(6I{V7SPC+^deZc}_%3aw%W;HuQTVAS zeO}`at>*v}Qpw~3UVCUK9M8fT*~W4YZ$I{E8lOydpE&asI7mAQT{sUaI2Q!@@OfX0 z(@1KaeDu&AoTJG9nJxu+ACSuhvQr0GQu1ZC&K=oe-UngbTv==Gl4LNM&%@4dx2{)p zb%f%N81aHY?HmH4>!9j3-ieNLY9Schn=3riyBAE5pT}qWAS(}lL>SD>hS2?f3xnd`LT)2EW=rnJ!Ch92nUI{b_h#PugcXy_(D zY8ZGh0C6od&LL=Gmi~UhBB;DNOKohI@Eb-{8G>Bx1|FxyEqyePpV<%y->CZ$4^-h2 zeH-l!oK*L!1WS2UogD*b*G$YC$mEuax(R3cMYEb@A+rJpUz|X@f3YD#+(_oQP0hvo z`V5HZ5Ce%E-$gebJC68VS3f^qpPQXM{Bb9J?sSH;A?ipS;Uxf){6S$7D-mw;3y_w* z*IIwF8je#$DuJ6?)`Oq)%WP{+?78BjYS!wT4-af7a>8K{R|)T1zv`Mc7l6JUklz1= z0Ie2P8xZcq;$0beKQz&d5=W@4W8VD{iy#_hi^g!yvD0MIc6YIK>zD^ZspAwCFf=4| z{)av7u3h9wW5VRWNAwVRL@!7a{rc3((OBjv6#_}xm>)Sgc~*DVavC!|*9JKGZpGsA zVKzGJZ;02_U0qE`^aLNr!=q>RH@^4-s6|oBRj4CU0W%w9G)_V{{1`Nq7d1%frMSiA zfx${OKhRujeTKSES&sZyFRVH^$Knq>JCb7yF#+c+OpW0sJav z;h~VRwVYy!J3f0gUVR)bbi?miX#hbvX@$9!?_Q8`iE!qcJ={LqiOVVHN&lvSmGW2{ z$++t=t8y6xK=RiT5>6HC=?`#+Kc1y!lISDMm-2@-bN;7M_*JKvw6W)YA^c4tE+o>AwefmZz1Mqa3M-NjXS4svyi<>h6!Cj--#U zNmkcGQCg1E|Kt-Qk;lRKl$R~s_ox!1kZCm~+v?&>2IR44d>$dT{J&#hA|KRBP4;ry zF)}u8h)7Vhq!LmA3_yjWG-Zmmvu}UWyWHy`#v_h+jJEY#;d7NwzvU2h`duzDup~!i z$(Ip;`(@9$g(sn%5=EW1?9L;%Twe_ht4Btc#PBz_1v5NZHsG}k3`@>A6_=3kQUhsV zA5%rofAWAb{gd+hTxHW=F#b@{3>($yMi3?nmkW2Z2#wFp%~@zZVc$Yi=>3Ie|HU;h z3q7&q=ud+i#`UC3{<4r08ENU6o;VAtGQ+3&EqdRfcwL8abuR`a-GQa><}2!m zJNd#&=ui>~ZIBWe4ku{?$6=mRGmO8X;H8yWLpyXu?I4u5&#okK9q)yS3TXR=n`RyH zy(s}vB!u-dGMm&ekSG)4>XVqA%a<^GUdh3tI*8%hnF{!* zFq5JUm9K#>?^<8T(J2A8t?oWJ2@F#BGQY*?wVh_VrrgAfFH+F~t;`KFMZf~jX*)|b z#Z@-;fP&h2gOvFSJqHK4&-1fDX7^X$H|G*9e(LoO_c~L?kWq3k0u1h(Moiy== zK0z-M@UxdH9Ms(_yEM`7S%f}2U%-YwwuJqXc}3?ie!XC&^(g5*mRC4zB9^5^AzHh6 zu+WGTk&`ps1rktr(c^abi?6N|?!p)`rq?<@Z^JW2lVsf1`S11J`Sx`KsazWb$ za?(D6c0sV3+b_6q!^$1e&wJ{kX z4nLKP9uy2G)l(N2L|bSP{xC*{qvu}3pr6=4{?Z8G-K=7k{ER92%2igM=ugGwzIsG{ zkl@je)$V`R0BX4<8w^DkzxkZ|(nu&ul&w+@+4ct1VF$Vl;3-6J^S&4>sfARjqj<_G za~bT)*J}NpM%`7{uM;7^WyVQ_de%%s7wX|Iu_~9{0O9&lL<^Te5S^1ipn0dN~XWFn?^78-lnHix^%92M{tu;Dz(2;T6TLX`jRKEZAi0%(v zy?@>7LvWA{`ekCEtsJCJs7+3(!u7be9cw=cE!O_+Ejw$XaQDnZEFKr63Axe54Ia4i zLy_BuhoE5gFm$m9J)hBtW7n9c;r&%9NHqguywyJWcnT0)5R#KHndL1!yLO2hOt;(w zen;sby|GDuzLOZ~&!^38v}EG}PHSC9sa6tJH0^GkVUZ-NYiC>?$wBIyW1wCNzJzx) zdl{MhtcY)0jBf$8Z@+>^Yi2AdB~ay91wb?wAY0E7+-QNTa4I z?A~6oo|@*RpR#yP-phB8+!wq`aZbZ&-x2)AqczFeoW-+3`KxRRo>6$^0C>v+mKRR1 zz+1MxWC{+qe2e|msHMh+>7KQm46$B z=@JmyF#XUfaJ7J`MLB*uwIHw~`n8~}(uiqX)LvU3_510hjq!kwFTzo)rCl`kKzw>L zsyjX6n>of)jQe<8Tf;X1S&lqO{JY{q@ z|GQ>=ifcX>#j$I5isQGYp|h#8?}6oe)^x2&Zp$KmPTZwVgjI zK^Ua|-qyI*3F`;9qhB=qhDb!cN}*S zx%3;XSs`Uw(PT_83f@ZYVu98t;9AlCO*=tJv!@wN%YIDH9w;rxB_)3lKS+@pyYaWKU5uN)U=+Ff{bRoA`|j?X0KgFkR~aV5 zRRC`lRHOKF@VSOAK=1y_AY9jK+K+Bjo%{P3mhuN2YSa>k^i5$ZfFM54oRV4#SB zRR`DTjN1q~N1}{{PpqMS>eR+21d)yXA{35;^Gf@l^9o7y!0F~c=Bk}dG6a?N2!0ht z`zp8de!G{P-u=F(1^e;`7*HKK4mqr;FW;cPZidtj*up5m7!7am@+k7+{`qx5>p+qi==B0@l<%mR1UBdx7!+N?Pnc4QAZEMZ zaX)=SFRz!)(N!H~^Ze2GZ~ghT{|THrZ=+>ba=tI+B2$A8;4*KpWvK2vWNA9{ks7QC z3qO!iD-Sd_LlW}jJ`01hf%4}>{U2CcnXC$N!Oz|ze`W#~a?OawPQU;- z0e;y>(9e9~?ZK!d8@dmopU+=V`jba;qF*IB0IA3bdRaFO^df34TD)yWU?NiByg3YZ z-@3znayw*eO+GJDhpKHN`m;O@QzK%r?P_#Dr@0&b2FsxwVc z4yf1m8(Fm*9=5Z%Z zHr9WK6}EHQ(mdm)qzXZ8ZJ*X%t0hf~G{r%~rEy%qoFx^ec z*@If9-jC)o6c?Ki&}V{9)3DhfY()FvU``UaTKKVNNCEt$p)(slzXadzHnWYz`OSb4 zuK62Ss(p8e)gMQ5V$_o~5c?V!r7RzT-6KWa@cPOn$awl)gqBEAJQh2~i!$;>lYz>T z39b$Lr*Nl|kf`P^*t1qjElRU_E4e#TQINHf`#DlMw*sde-*C0;eD@}kf(y{XY=#dk zc|m+gydP@xYB1AGd=Xi1d~MY8Ihp`5&(~#O8(#+Rkg3p7Cj&C*V`r)ce3N;G3$D1; zgN=*hJ00*1#v(sGnLUBz;q6n?(y%M;H4{A_)+Y@Lpk%+6z`#4S-ofd3lqZ=L8AJk| z7}r6tAbGy3_2gIMEQJ?z7XtK4UQFt7ji2d{I-MbdJ^wC@ME(XZQf{C*Tu?tau7-w# z|MyJ&(1j~Ox3{1f<_Kmt$4)R%hu*R8dGCMaLV@0GR!-oEB>`I|sYK?SkdhLI$AjX+ z=g*H+qd%eZWT-Efp%oUP6(;3a##Q==p(6(+YljztXLuL7f4rOKkdjn~IDXkz018|` z(@|n6jsrSy$V@zE5M2CO0qOhq+D8W7U0|i$*_!r#BW$*zi zbE#Ln&)26}tujoTb#s{%f@K&9-(SFWytJx_n1-rXb_&YA>l!^jEJaDorYanpOJFsc zzLaQ$PFYPMtQ`NO@~qa$X(687e<{ zs2|Kfx50+X55H3#SZl(AWiQP>yCM?x#TPt&es95}Zw?339^2mcmqT_khrvdc2{Et{ zIk3vfD0`2d`t|8u@vZKk*AOboRk#7gseGz2=fiYNzRUy^!T-be@3EQ)Qb}TfW7h%* zhc!g-VJHHUVcxdFp)m%4CRy-ko%i(g{AKPzyJIK>U4?_a-=@(y;9cGw1Pj^mSHMaN zO%v3dOf8<8zc!e&z5q5(L37|sJci&~3j@z7tw`Y?a;s@AT&UGobAnB~@FEw9Nl0{w zi;4AVfSnQLI-mabKUtCdiXcQ<4b25oa>UtwE94fb z%dI$Wj^=>)wU80yghsT=kS@)l;`QitNDvpW{;s6v>;BE60Xb+&Br@g1-b%cgrrsrCe z&i1Q>QXHqUvin2{hF&oVle}&Yz8WSxO?{nY3K+9hxWC>eq4HNk;x|;JTU6KSEG4Ed zjT9Fbw>6u$i&PPm9eK&#psytPPOHWD9Ysnf26FSdNY0q*(}Piykr!z-ugV>_TSI^x${?p#fy*#bjiRHNb!j z-$r07Gz%d7{Gi?=#ox`eCM}l z0wzlcghefQsDC}j-b80`DSBnvG!i-rkii>Aj@w)Y*7N1joQuwiu3N;f{;<*Yz&gcF z)qV)@yyvj`el9i@+#HAZ#toL{myF{n*fRwt&D*ndVnuK`E)};eF~aEVKl#NZsDVs- zwps}IHjQpm9o(GHJ zV8G30IBwJ$16`uoUPI19Qmy$BNp7T9Li z$FSC3ep&`E{W_>>(ixG^Id+fs1>Y}mqTcGZIdvPnxelCLu>D<*VSVcO(S<34nv`BS z1^6H#;8k4!@3!IP`dgZyzeu1kki;njC%BgmNk)U)JJu`@>RzZjd({7oivmXV;$cVo zJaknNe$Ow;Ac$o3G*aKAL*ZwUcG^0ChI*hJ7_82bna)@H3Co!=_{KDL;1RLlhE}a4 zo(?hj#)x*V?ZP7X4oqjy#gAfkfv=i&|Dt!6-8G z!?WRsKnh-mWY5dLal9NT&Dj(_)k|x7yQCgA#OmKaPn6fgQ;sCo5xy*BADdH`9a@d! z)#DZ+>Q$;22t3rRP4=!r09BdazCwK?@j5DT5-QE}moH~l*|b$LNGp@cECEc({O3_I zvGX9TP|R|~eC2mO1fxDpoMbC>z_L0JAB5jdM51ou#d#`Hj)?7q3j6vkN@u1P8ttSh z(dR`)0Lmz+nr!nYQiBY7Ce}5a1)2_p_`TIOCZEDTP>)KUW7L52f>pLZdTp&9mTN~3 z8{h;fI_H4697VpKyb6C*ni0K8Kv9&^IMF$;n4B>dfy*2iUPw9=QidU1par`UH$WZV zJ_*Yq@sv=prU^AB-o1Cv;s~+NbE>KF;fCsH65^{r%t?2;8*`pAzHy>ncqKcZ{B7{g zi9l9)HduA8ygdF*Q37>>eG8Yw1gKv=5qgdxk+VtNP$6YnaL+Q6O|S^*Ad;Eh53rSI z=A6?ShjQf{O(?oe*kMf>9qs(OYhFl*qsNay;BwvJ1s+yD?n*%^ zErNTl=F1qgN6*P09N!r9yKLyYK%jzKH#1`Nw>hi58(n}Md<-IJzHGkVeOQEnHy}WR z&PO7z!<7?8IWKTn!P9%?&JTj)AhjVW_ybBF>0n-JMO3087~qJ)CC;CM@HK?f>Yn{V zVnpY+kr3rWkRm;gsETI@XWN|j&)Hz8v~R5nVsXLSt#iK2yUYozXM;B*@cRT)e%WI= z@=i~qBcV6I;ZGgjfkaJf?+C2f~4F!wn0T^2Tjr9M#CnEufmIt zOt5cZOk+9(HfQ-7q==P0QS7wa%BvvG*dpF5N zDZm(TT}+YQ+XHQV4AFQ%yJrR-G*;n zwMJZZNUT_}XZb`Xoin-;`XSu(!c}a>pIljpdKc-#eV?gXgNV~hcGTYF;I4400;!gU zaMDaUSuHcQZ{ihn=Zr1mq2G49D;Y_CP??Mq8HtsscNDu|MQTCSe|rI>>9*zK-bl|R z-%e5c87-xh>!K5zQn@OpZ>{jvZ+oPTEbW8~I|;AR#6Q`!p2?E)B4>_W%kg)@HTGFd zKIS%zHs@^0OM=1txxMb{f_=wrc^u~-wf@Y+A#_>sbu`zZW;LO&TJ@l5ryvn<6el4S ziGeFac;ggEri^s`6J4&W3{s*iW`@Xm&nP`?ou%XCM@LnDWdr`QcbVx zr{cBZr(;(GQ0PLxr@de%&syM#;f!IEC=t>c*NGDq7*|eLGWpq3WS98v{Uo%Z`~r{B zt*52r8!$=KIkCy1#4JTHb??DOo;AqV<=84AI27I>R~;}=X~y0vD60U27T(VAg}!1A zQdWnjppQnP&B^tIQj5-jOBOjB_dHVw)}5EbJD8%revQBZ!s=@(iNSGzo_NKh?ny&q z>K?;!D$ETOo?I30QV|W_`?~f78)77((|UkS+#fc^&l}LmK2~`+XyrJu(Fb)?Bk#J; zj!JsyeK~Up(vwJZyJ*zKAwY+KQ~s#q*{09idcOtHXO`^`-yT<|T1V7{qfY!tP}}^z z%=vHdufCq3H-$=U)xzxuy}yw1jZOK0qv^%4{LV}HG|31;$KpHrjiwX-h5AXZ^gRj~ zlH&jwAZSPJla9pkApjkYg5$0_?Qa0|gy zKwx=XiAK@uK;|3Cqp$LiR#1oL;bYiLt7uhn`MdaMCExGS{+j>77Scweq9TqAGuzbj zm;FMZ(S&K`milQQ@-+|tzG`*|f01~4{fIKF>$8&|=DW-u0xaA5M_;eFghU$Mk`9Iu;Sjd<$&jVmK? zpxK-g_oG2OtaWslmzcsf*mCxYWa*ZF^?3G!R*hQJ^8Ok4;lr9nreroqDJxKBqD8YC z7l#TgmHF_r>#QDZm*(H!%^@L?Dy^JZ)@J}Fdzq`lf-%_#yI=8#SWN&?o|cYiPh?pf zznOQ^5l-pWKx@xa@zb$R^)oy2;aXS75`Zu)YG0g|*-{y09p52eOZR*=_EH&)?WY@NhJa z`Tdv017f+0Wr3Oe_g!c5!i_C4mTEo&XRU#HCIR|p2AH#HWc^x0;oGy?=(#&kO750= z_*rUx2*sYY<>mW1$DPNSW`W9N5>c<-o4zDhmN0D`o>y@Q;}Bok#$+gcz;>yVtK>#N zGHdww7M_kIq@@FmCoW~^3uJ(3SQ`9xHn#fUQ7=Og=q#5v5^k$LDFIvA0RawWkwE6>dlIT0`C~a3P@z zW{HXA%)9{+3J4($zf(`w3e57maLqDts?Jm5lmE?H&+Xg zbolTTozXTV3Kl>WwEjkQkFiW%$f@udSTeoV=L|d2c}{_F6hqEaAN$vW)REuee1HE}w;C*7e;BQb z49Tt_$f7&1JI{Dvqgc0aL-62P-FEhllGFek3^Z-b_IZY`;!_FhjLww9{P;8>m57Ao zc*_yp0i6=v_igGFvuvd#h^8QHk3z5VYqrrc(aGrv%dA1By3$|q6D9RJ5CA2O)WlgZ zx1%@tvIBy_>_nmb?4Rby;iIz3iCy3x@N&miyE45Rw9BvBDkk&GCR1awx{%Ki>WwlGUMmyf>N_*3F}l?iZj5b zF(bVxw^ut8%Gey?9TllA)4$q*#bN2_C&`_eh8Yvl=mY1$uA`LFR5n(8`0;`}Aal!% zWBQ^gtfikT>=4{KD(j|SMibl%f$#3sK|Zwc9->?ZPVjfZ=syZOEh{+AmWe$ugU&pT z4W}AeiX!2ZE;}V;TE0zS2XihQy)$w zH-59cLuFx3%O|hS$;3dYnFgoXjkrr1FKE$(ZkOq*wDqCN`Bx_r;%`BR!tna+pVfS9 z2cHXb%wU#$oA@RCdqNUJ3%xcCoj06@vZR^HIxw~{hw0;HU$qULIxTUV+cFs4J+npH zt7fMu^m0b&IRkU~Dlc|WAp19TjqM5-(SmKN@JSy}cWjQ$J|stww& zx^XleDKx5dll}S(;F=|3s4pd2Q2+j?tQN#a#s0vWo|5TN5u=#p7M4zyejGpDLHY4; z@4F^K9eORrA>xa8;aExU^K`vXf!9;1*Tp}&uM&rIbv>rEKHJXk9p#kZghhAFllz=v z?qMEh9>JZOJHlyffYat$i1r-##uiGBp=Gf1OlK4qV*X<@L%bo5t1oBXP3#zYw733Aby^CXf$eLMudDV&4MA5yA+jE0M<=-5m74Q{03|u z@7t0XXBe}YKRsB}=B{Dm!H`@2GzhS`+%&Xg~TOk=&n?!d} znDsQ*lXBv`XvLO{%yaZPB(s@9#ySXMRQFpC8-X|Ol zd004-mS!-GI$y^b4l{qjn*pIyR(Z)e~Tp}QIV&vF{b0~O9J zfjlfqA6nz7Wp$W0Mo5;4E54VH9N9YeiaTIFnf$Hl;_bIbqZ{Du7m}0w&A$WYEe*|| zzbAY^X$+=g6Mc*9Di;vU9Kxxq2R=fr(S=-m9zcl7&yc%4Lcntbne-@aYMiD#0u^!) z1t)@Hjq!*%RHN!=KR^D75vuiQtR6U;&W&`|I4vd8eOnzujb5H~%d<+GJI0cicDCkL zyql%Qvg(?ulxFH&du5JFZ4-!0i=KvjQV+%oE-2Stb>BP_->Cf4M$?;deyGAVI~`@m z;wdb0I6V25aMrqL|8PAnMPB!`akdSwd((iAuZ#7VD!1O9I~SkTzOl5KC@d>+3q5{d z=Hpo${wXEAT5=S_e*O`)cDVPLCs+qV`E7$Q z;?MWFVyDO7n<|z#jq9kitygieV%$| z-C$wfj7W&NXX_UQY1s@Hp{6wQQq1fU2o$ow`*;r8=Uiy#T>mqe|Fyt;ERT?M&)Bb< zmRJ(07H9vSmtL83B@V$v6eRh^6Qr~Y11r4(bOphrj?W+v6nL6+GO=UbeELGpXuuA!%iGowzxd zV)%yFWw3ds?(SXImUpkAtNIjyMbDvffw=7q3D_2ZMh6e}V zfeh6&>=+*2C~|j=o2P0Wkh33Ob(0 zaqS%)QZ8IU&twHm&k7O2-Vz@hCWoIUTlh)yi#M^WjY%`iAVrqW5qg_{=ypfF$Afa@?U$rdHh@ZBP!u2QCNhI zj&1?^p_V6VBvrL7`K))F7tmF74tLJ#{(J||F?S{|5<2JZzzXRJZ#q~V zATgy_eO(b46m-lKbulP5^kBP7^O&GEVK;KQUSLXJ>RtZ9hQxv`g6wU8XQPL%$WvwH zXUVhFyU@@jI{mye;d8%vZ$YjHkN@-ho(Zia@#M*qS$Bm_B|02dgul@maSZzEPHW^C z%a2Zs(Xj? zbOtvTr|+$@Sjr?p%y8BZ;x9bmSwf{Bq?~gnJhD|_N;hHje%2qRi;lvPD$Xl%+nfLz zcOyFAkJNpovAFx`qG62jjVTIxuPL)*r<_|+3s*Zqz()T2Zue8B zd+(lSjyWmJ%MmlU^>^5K9&$+y*)iIKDH|mZem_VuRhUR z!q27N(-#QQdmzZX3yDCU&mURh_tSA}MJvchI`*HB)J(s!$3jE%BNJJFy*`G=uyXsm zxtLMGDdi7SPNn|sJ1ZR*-C8Q}v$TaWg%vpcA%3~1v(3!C+Gh2mx`Jgm{VROdzL|AGwyDOAzB8Yd55kvQ*(fr52>NG8w||;OzD)eu zLcNQyIl-_{*nr-{YVK*z+~&NxUt6yy#du;yQm(c4U5Wh^^iZp~xDvaZ;=^%#{VOm4 z>Qy_7DKkz;>pbhtXWH|wl^Ks8m*cp-p5X+KsZLUXl$S>Z*eRi?fzNZ2f*dSz8R=0b z$UU3uFr~I~%gj)H3|e_r8*Q9oyL}{g5Vd0iW*4j@(t)!jz52_FL76|tU}nIPC#jq! zmAUV=_McE505O9(txI&IkWz;&a89>xq>Zt`DVbh1=s^2HACOy~xXqBm#@HRp8C3b3 z(a_Y1uE#U|CzFyZlXluA4zP}1QP=`WAv6)!RZov5nJ%0Mi_o!^V+9QDuDDhWG-LC@ zWhMjhsKK!gy^lr!<)Daa>ML@bUfo!K=qBdU|?(?d|RPHaPfZ zC!XTsWKthS0Et;B3)5Bs+Z!&Sml{q+v5IA0kB4_m_eoc%6!NJEQK;)mV-M%&=T#Z8 zt}+fiOJn0c$_^xBFww5+$*Wi1(WES&+{2O3uZLaW0(*R8c`J9Iha~Y?Y99GrEn^yE zQv-t%TWI;e094U*MxwjB`z}nmIAd>b&pnc)R+JrpVWoZqwa5?puex!dO6qgrKGYZE zhC`x$3eap*qhAeS;Wr?|wq<}Hp}nBR$=9oXV)E98iM0vV23 zSNUmSsWFBnIC&cq8K~XfW?Om|>>Hij!!_G_Nd0WdkejoO9 zeRto`is4c|VqEx`U)2&!mUu>_iJT^oaszVy4Aed``BucP$$^3Ac4_(QM7gxG6Td=X zv2X`E)cU>ry`w*ta8~LjpE@FT)Ya9KespRZs$?!!^~#z%kW2uK|87W^z_QA9nlYtG z@HQB72vA+sCV@$y_pp35@w$&OD(r7U_j(-(M&kLe2)(KFMB_2e%`v>8e_bnf;kqs4k&NuXiI9KXQ2=W&vxGpHR3k||D5l3r zt{dGx+XalMO#HOaiS4v|K>_|QwF(eN&yFZ8`DjTSy4exOk)fqRZOjFObX*-ACfk7u z7>Bv>V@luId1exx>Y>!sRBn;aJiiXU3exB$Y5}h$PE1b@wEzwAV(P1Woi_$8tfY!x z%w-_B-wd2iX)Fwxu(`U5r#bZ*6r4wKj&ldtgA4ICz9%`76Kx8go9mu&T(ACU^KRL5L*V7rL+SA9y_GRCzaX9l*V&a@u<$1G-_zQrZZ{s8LyaOyPA@O7BfjZ<2~p=b1gCU6dA-3dVpzme zoIC3_#_4cVo29@LMDeD(n;-i6vViFGPO3Oh^86PL)yDmE+V+ zDjNZ2miaNg5-D}up{cuG+q}PAFo77BO(G_s;YujkTfg6Y8Fl)^GM1M&e}<-&g40e& z6BttL8L6O*HW!&ZdKs4TaYpko&$co&>m5SDHz7Txk%z;kIfid$`A>jZu5de%BK{#5 zL?1qVqHZfme9d{%#+ZzpMP5Qo%=^QK505XInfd(?$Yz;+_`-$0t*xyfx0MMN zo`i|J@UXzg*W8|tH5{t1s#*_?K$?41;k!XQ6DtwHtGgpH9AYZnGS5!62Q&2q3uVi} zd7`k)4QisQ;1!3nBUAzW9CY#V@$2BymtIir_L@R!=plhtjgu$MRo!U%{%pe75cb_L zB`57jm}*Wb2F~gH@GWciH4MH|VG`;vS@_2XRsCy<)S;P+(-Eh(8H7_Q&O16E0+*`$ zyu_m;7f0Ik@5CmsdG9wfcA@C>1&?ga6nKtnz>%Cc^j5hj*_G;$C&Nqj_O`ZaJwCNe z$#1SPFfcS)TU#T{)Z_`DKWv`_^5-(N(ortrMB(w_SGE$bU%yUz!Cc3@z=+jlX>KxZ zl5>S+pa&hpLTsT8b*o={UeM5B$Fill`}N~|9Gqs#a4WxlS@s0HEG=cPUmGB`-q+#| zm7%_9`MV-=-{|cM#`Rfb7^CC<$H6EZWYg)N2#co0({S*I$EzFO$MtKsu`%6A4rV2= z)vr%Cl4j0c9HH8|*V=mu{JRd-PoB*jT|G`(Iyjo1ogH+}!Xis-$k;z1z#aycjOCdW zs}H@wgt7j>BJZoAN5poUU=KVerVH_x23~`YJt5~H_0uuTTT_R zLR+_8=eh{dk9I^a}rN8QA{<6aCbT2@~v*OR2nFB+oBXm%0dGUO+FGIdRKXQv3M zSS)&cdcppX(zzKr^a~WjNbhK-2BwF_%60rLKP#2mjHA+Tz>?G-ZWL=u$<4)R#;Zq4 za7DvD%ktD%Fz`IV?L^=2n`f>KS2#|=2#AxHj+4wiqEYL3>H4_e|Q_pXcg`l-@?VHk1Va;mDDSL z=XR-T8thkQLASM!YZ^NJmG02K%IJXaP$Od=m5h~=mNpN{SG8;VLPBI%Da8tUULRNo z=+l=Tj(bfB6wF>b3IdCVl?H_5MsSK+Ebi{UfwP<3lFR)kf_u|cJxzbnGL37Uyt6k> zKd4OW8~9#gc2w&>hpX1JLQ+yMPAe(~o`W6P1^<^mSo42W8?Lp!cKAmwkv0;{=FSy? zH$S}*Y!wJxg-&A9R=)y&n&Os1N5xKy6j4!7=QIq=+QQ@UqcHk{6F~A2ETdz`jy}5N6PvW zB#fR2?(|$fDbFfo7s$0QRo*_bb&Qem!pT$7nLy8jt?9{YJbru3RU~l0(9m!zD?9tN znwr{|v(K&d%RjLPLYKfQILz}=BGmjmafrL^$gPI^C=o4!OQlRTTE=K`X{m2y#irub z+qc#*qWovjTRUlc+2Iq7f6q5xhWQH)7BdA3`_L)--ari@(QwI)n{qU9_X%-+bDfIc z78WkZ0G^K8cX)C66%L2-h5K+#U%!i<<*G$RVU6(;3JPcZ$A`JO5-x(lN~{+}Nz=Mw z$=_?x-3U|Z$mMxf%$Td9JitO_OKwzgI@bS1U%Y>k#F3bqfM zdN4mHLvZJu`rEUPH}pt~|5}306S!rPC1yeKtr|T9RX!*jbNar;J5&S*dV4QR)=voh z_=9&QD1r(8io1JYS4YS3p!x|@u1>$xJbq-*5pkJ0%W1!%$o}Tz}+113yr@XYX(l7VR z&zjOsNuH;HWM52F7cwIofWt3SHGJ!6pw}VP0}T~#-|lol@|OW~Wc(>Ejm(Wvn@odD z{NB~aU31p;Kz@0gmzS4uG~g!L;NYM-tWW$`PdxY*dggK9{8=(#R+U*e5FO$Q3*B`R z_g8~h6RD%2G#^4N>L}XX#A!vn;v-uL)F&TZCjVat2rrzzkrMb`Zzw4$di(hLe*AQI zqQ)W|m8yBLT@NWZb302*C7tl0Pa>jhXfTXMgFHSt0VO_+W9U99d}>OHs5{qHe_n{| zf4|}}Z=;9#3=5#urlzTR$XhX-3zIC|^vHC@|c3 z`2=1c&zyx#xo^}nvPSEMXF7hFGa7sh85!$;P&wH=E| zS97CEIEn!rrr`c(Bf0QJe;7L8(al|;Q4H}vCN~cc!Ts-=hi@OXI)tx%x(k$8nU?&R%Z?Qc4kt278?#|fYUYC_!kA&uBacQZvuHGB3mMfzrvShHf9m|37mf;{E z3O3vshr!gw5 zVDU6K#v;-`I(jUqzOfq4NGV@_HmK^f;cWTYw%5`k8xVQ=EC9>sjplFgc_`K^!JxHY zu#rqc7tUAXhpz-wKF^AL#-IY^7qlrpP9_E1>eSX&oojx6Yb>KD?CXcJGc$?O$B#qf zCa5UcpgKtX$wH-2dS>R0M_qF}%h0+y_aP@b;M0hK&^qd(xh9~dA45cdcXVt_a7j%h zK78J_U>HJJn>^Nk*)8A|cYn~~VtvWc(HBNr-Ci8wGk*SmEIcQKqqSKL5Nw9yyPlrY z2cX2y2>gkS>*}S_7t+*>oC0E!jmE+DTs7rs=iJr^jB&_jGaTmvl+v|4QR2YO^a+6K zJr1ef`|D;Wp0G;F$c)=sTYnw>^eIDJq+Vw^?GJA<0SMl{$`6cdK}|_h2iU_L;Njh2 z9GQP7w@2bTy++@%ugrC|0%`gPauCkMJNBGWzUREhTCS8!=x2QNg*1Gu})p)=ky;y75z-o1anS65v8-Q<4n>to~l)tVD* zgx+5g`Ox{S)|)?5{AEWF7@BIc;QUj!{PXxr3yxIdZ$rdmx1*OlZpZZ(!( zyLL_g>++UXb7-4}h8iDVbV5SHWLa6+FW7rKd}?=Zw@mbv!ekCIX1uQ6s!4B!-n_$S zTES?oNIS{N)-D@gbw8gU$DeLUxWHz2O&5mlaa&keWG6DTri$taDJu^Tj*Q^@e%=@r zJwc)-M(WBsA|WDazaH_&(e+Yd)bNolmME`uSt%j|t7o0+jsIiq;(L5q^+u*bV|86! zod*mj6TKk*B`mG0TDGVYgJJF0Aaz?>IWXyec4bfC%5od$W!l}<%2PI`u$d;S?DHS_ zUyD|3T?S`qHo{!@FgO454QhP8L7ww%23q^5u&=lB3*V1o6|TS%5_c6>4oe6JrjGX% zX{eo@op(sc&T2!$na76Qrb*WP!AMU@2Y z!Z5;&q#+}q3`kOuoa2xL0R;>sm8gh-m=F{sjHDrpVj_+r3Mztt7|5uIk`)D%D5yw~ zpn@=jTRpqqF1q*sz4v+UKK@w8(|!7MS65e8y>AunH|;Z-biqK%3@?Nf*kZ~U|h<|Z1X4V|ZDOCT3rPBJi z3mx-0yL?JlaYU~N$4JaGHw8?7e!kno585BzzkjEZ(VWKqS+7TuY>l%vjW9eC1`eI| z3~!11rdeJS$v4xOxL3M4l8DmoJTeO;;|-STH-R6;bj!q z)8(gNPfxO(FRm&4!+YUo&*8T~!-7SDa@PC8UV8oM_`u{^HEtrAjJGy5cJT+-4#RDO zCqtY!3^3c&t4v*L!Jtt40=9|_*eXO}?%^cTiYvVeSC@%7_zM@gsfm>8XVk(ZhF#%) zFGbD5v8lcx7GNlKYe50-PjLAZQVyQ?a}y&!Z%*6-KZ?m-=pmYb zdbsg>53#>*%a?dX84SSAk9V}U`y4rPBuh;En?X-w+*VQ_Hg~-^!Fe?eM^ZJryg*hl zqb7{q?DBCM{uyZ3@$Ow>(T8zzh_lcdzF>W}KldWO7E)`Y1u%9I$Ics>40DCuyCA2j z?#FHRq)mV2S3(eUrUA(Vb^6pMmE7|oy-St zL`^`!i#3N-mcJg^kB7L=Zx<31f0dc-nA=jMwOr)MmD7J%LLI6V+=dEg2ixDil@xk; zWL_v3v%>B_aa~`_RDy9gnmLl7%nHF#qon<2RB)?p8SS)sa+49W!m9{MTb2EaCC^skE@*y@d+bZd%C-ABeDkeW zaJ@(IW}woTr7O6eUAOOsm5>A+*Rf;4U*KZjfwqq7FlL(+xdy&pkS(8B00%ucue^2y zLnu*mLx~wtQcl z9e@LOD@33)p_;k8ZyRR@x2Lb~CEy-C0UO^OHjm{kU$5T$-d?AL%_2Jhqi;`SSGy6S z>c?}^7<-n_a|c%-mO6UFqM1Dd`RCT)Y2L=b@!lL*qY$t#=H*zmVpJ_>2-kMiK!wI72lD@LzljUrg(4M zxDo6Abo<_k<;Ae@k%hDClXP|<+D2pp&?JX|I&kUIC4NotEMB~FGbe}r>WV$j;aB8c zzjmsQf^;2z(@A5qU-MOfl>Arp`5tTTG#+7bPkQe5_#}+J0WqsQfZZAX_-9ZD$L`K5 zu(ywYIQ(!!ZAEUbS+gF^C&xLfa2YaT^C?mavQB?q^Z477(IJStrGSI|>FS`p4}rLg z?5>nikSV7_K0b&qV+7Yg*TrXFfTS40L3Rix3*9LL3W7)C;OAP*3 zVe_hiGukRIHy3xB(<0Q>+0ITHJXS?O^p*5p8g*WFl&k#pF{Fu{tN$rw=MZIm;yFZh zU3YpYIV7@T;`5vB+S}k>Is_IpyLl&#GqBA>;3c@~sQbS`z|12AXuz=vRkWUoApilT zq^FC_L7y9?GyKkrYb=dcEm=G+t*F=s7k!CMn=FXp;3(!fJ$x;CKXC9^l)pb>xjG!f zBfU`%Djk1!ky>6}npjRT!OxQmfa`e~eBAZGoX~Ws3MLQ4Fcf|0>FJpc7hNDNO-Ae2 z-+!_0PW)T&V^8{edtZR^3a?NcN+$#Ad)Q@OUs#+7y-ep|$?cT^Ai=Ajzm`Rz9b#LW zp^$EA=+8UOFM*=4f8p2EG(ZAgf#W&<2UFJ5&5ZY$?r0o2(_Ar=%=K;xE)ML-oE&(X;BIM-}J#*XCRg~9pghEwd|0cegRx|bS?Xpz0s9AHACr>q` zQ;e%OyA6TozTm>)Z60JVEHM@1&U@L#60zW|Lo5 zeNOe}m2wH+!Alt@&;NY5_Uu~mb)_OOo+5C+My}CV{;Xb=T=wmW#c9K1?KY+_q23!` zP(wolpL72pipEfuAQWfA)q$W2J`wr$<<$X&t5}~60kz1MpM&7;l986SslzEK-;KKt z=mXUhwXI?N<@L(ZQl1tAWrqn1ccZ1Zrs3^62q5aUAMZqo#IgTg__(= zuU?HnE&DxV{$*J>FUY2o#ln^)3m;2r@RZMdkS61;)P$D(gG-jrk8}=gt|O% z_LSy^95oe3Otiot2 z^6v2|jt2=4CiqBU;Vq=anN?q=PNi6C3Mow!ww%(!xGvYS%HtM{!jBrBW_`7eI5xFr z!6e+i_MpA-0DhIZJMm^=zkvf=rY%*BmgJ-Fvqfqd0-YB|M!a%TAf=_^qmkQpQeY8u z9Sl?+LApzRHvu zejbdTYu44Pc?*rM>s(!j<;UQPZCa%+7cTjuk5)PmbQwovdc6AC7)7#~PI4PaKTW?N)0OEo62>~OxJLkC%0PLhToEu**dMde_%@G0Kl8fZ;BpU zrLA)a(V4_65yhltC%eiSQ7g8|2<9bm)(LNW2`cu*3z5N(d3baGGjWN9+v_K^fcSQ( z1&*JE19o;D&&+V|h6_+t1P=iPq+7ARPy`XIrwf=eXGG zuzW8Ha$!{oe(u4wWx}BY-iJOChSXrGGw&L=Y|W| zcf~62as`#$x4d)Y#iH^I;a&ZZw6rt}0Ddp9jr1X4!KXv3GX46qtU3p)>ThQo$PTV$ zp-BBY+tREt$o5HDHgozape$-tLBX-)yZ4=o_Q#w*Y5JHo zLcOTHzVTyH>2kADZdn~`Mx~NSR)Wk6gRWP=vVJNxHf1I%sR6kTk~^G3_iU7gHM=sov&{FUX}~@m;06%olOeY zyK~-8SQXpwX@^&T^8FVUWdzIm#=#tWoJ9M}rveJkE%F69S%scq<)`M8;#OTMs0)Fh zlX;fRzqj z<6O5+(sKK)omYhieDB`pRBvmYAKf(8COqN_PsNkQKl6P;yRo}RdBL#BsoWl^1; z%1n7#D1uVl}?XOYD*|^_>IH zw=GBARlFDN!Y=7PQI(_%TvDcys{0MBLQ0XR@^~HgQ`#U}w|h=#Gp{S>wYX!}MQ1NF z1k*kk5wb-X<8TT!4R;B%OOm>RWfL8GYL7TSX%l{)is2s&%d;{bTxGkzEBVv2xR}mp z(NAoXt5hd*U%vRbI*yfcd#TRgD=$B;P}rT+Nb60m{v{Jfs#{maJtwqaj3<=xJ-0do`ct6w}?n8a}ZPT=GUm$zeh`mx=G-!e|CYa{&Z0l0R(P$=>{$8E)vv;7-EX`a>Z%DkJ6% zI8sNyfib+(z@WyHz0-o{q$TxVU#a&cO8HH9yRVQ=n1n@u4T4-5s32?om41`B;NC7X zVk#DbH$^{!9336iN*+8IxXTRw07h;>B>-!PWe+BRENY3b1gfZ;n})RU@$ux|y*mbW z%W~c5PmdV0@YroRhu~QuG00?>OlpJLtmJwgGjsFX+qZ4Yu(7kdEI8MuaW)yh!o$71 z^wncalwlt@!VIM#+NEUZ59Knc(tr4?(vt(H6Dpr&k^pAY0tsVGQ!Q`KtxGz%Z*24R zRq)C{R3z_~=W79YWg!>1T-br#esI_B-43Y|Wd(Du z2>Xo7s38$vUGiVAo&1Aua*)UHPftM%j{T`Gs;3Jck82}*_*3kPsDgG_CjQC_Yrnr# zGceH)duC6GXL8xin;t9EpHDH2Led#M@Uw)>}oW zx5fF9!^v$w2KcEL8yg!7f&v4-`90oyC%*A)r9J&-Nxwf{p;^M`N`EaZp5--}s?OtewmU9?d>V8>;3ih#`4+B54$9?-t z0Dwq?dQ!}%)#W=jkw1U-xC;3iKR~buUfJ+tM0yc9Mo^}-pLJ1}ph#$L8p+(v?Rs`$ zVXNcby=NkxY|A;BEM>i8M^QmZNqbjU*Ht<3rsQ==i!ju449YXx_Ww*-yoBdDvAjt zHlGube1`>3#*6?T-)V4Qdc@Rw-!F|Gq`wkA5xp575fcWE{tM~pIxhx}#;c}1R`$43 zc>A94!w(6vi^M0QkzRu;bSX;fw+nqW$puAJPx((>{%r@#}Qi%Y2S zbvOPacA}^h{*+!hy$Uw7rXrxq%!n8)?Dv11HCw1b{%e?ibJn;i=tR>C5{5w|Ch?C* za3vH}{v+x}qmcp6Q~x9CcgF{Q(OaN0@XhRKNht~|eN&RPM)zq7JoW#YfinsLP2cE) z8-rIqO-xyf23>s(+vxG#u%M&tNolEnN{=t+kFv`+cT3Pg*VH#{x}z;8=X?Ldc!+r2 z=cA|4YjCk7s=i!>IQMWWmHDFy8UzXBw%y$PeR@WQZqD`VXFq(-^)r-pEUDkOb7yfy zMMZEF<OJSgdeq(? z;-^V`rxT%UE!3~%f$C8YHRa`x7@`CgZLZJWFaII%?`8n8fb`dD&|lZA2X*Q1m0GFX zA$)@0SuiGLk7;UZQu-Iob!ki3V=Qe zjFDJ`k+-t`=82Af7q`=ED*IpEj^bdq=`aRpIRNz?MLA-}5CsEUYgz44oWFJZ_RPVf z8g;2n-D{M0mHR&2^ZL!3*?(g5UZLe#=;3w<@;W8hT-%1;4*s=d4eY~INprW@2LHRe@O^-^1}8}1tStZ~{Qdl(%JseeZy$G~ zrK387=*%Z<)&2v3=Tp5ONUkNY(M6Vs+!*bZ^cSt4Y6Q*8x9ZW79)dhq7uYWP0m|WeYG116q7g}pDL@PgML!j7XcjGd#;rZKTqeyW%FtcrZJZ8ut(R!PPa zkU#1(gqJn|(8A_}+QAiZP-Ww1`4&Zfv8e5J&>woSg_^u*thragruf_23+Y2XgGVy{ zN*=Oe5UVG+znY93s<$cZ&ydAsR*g!CpkN^A0}_VuPvGdAjsJ$7$+E%Tk7x%&(F(Zi z2T|XWs25CMQbwHpZ(e%I{oDW0=aJoF+VpAR)`$S}N1AT_oP(M&JGgmx)`Bng9b_|H z9~GN-S;@!f;6uh6NNu9ZWSC#xju{`H{jx zH~A5apP+#U!veog64RwmxIG}Sl1^eZ^iV(8so|8WyPDh3#6aAftG_Rn6!D8bYsO@- zHEqHg#n8WzzQ7EgT<7w{6uM(a-BEb*k>SOtiU3_F{5&Bh9Oeq@Kv=5%uelS4oS%Ab zo?VLc_rUR{cgnW>JbH~8^`HB=1Qi3FZNy==(IqMYI_o&aa0td0rU#vku21{{c{1P( zKorSKKQz@)XJXO+R&Cg4sD*GGcC>fH5Zy<3Z(6)UAgw98g({_GGV9FbrcD64b(d4MdAc~ zizuKV4U@4yaFNhq4Ls*bJZTnoV7mcyy!IHC54EQrfcB1w>kdPkR(6nxo`~~_^d)YD z!MtG8Wr3?BksJ!2{Kbd<^#F7xL*NTHd+t3Xhn~N3FCDC78 zjzZ6W-IC2n%CIo1JR61J0!zXuin(Y4LPL9bzN6|D@WJ?)I7BpvkW1qNWc{;-JimM? zHjSMukud^j2a(WrGOB%%hLi`O@^9b19T@sOt*;*9I-CY3>`N#~%0*!MX?cDD4%U|E ztmr|PdT13LpQuj1q$%R4ywVT}`P`Bv55(+C#m!n4DE%9MoC&|YlPs#v{_UIZRmkat z0zxR`+~fI?I~OO$f%VT1kqq!U1yifk>%z9mqt1zEv6#i{2NHs@1I6C-y##uU1|Tmp z;2B&?8H8&tDYpTo@5(k!x&(|BbBOAt17>y_bfcM(QMgZE)1WW84r5HSe?IgNeXUy$A^+l zH*P6;_^<(7`9u@~+I#$^-^)2L}D1 z!+W7*C{M-`~HPIKrP? z5yh}Ynm&(PV3FLhne-b~m@SS?Vyx`Rlc6W0_jua-Xik|G0_>%pGrLX;kr>6%Px~>WmCE-ZVgxNX!CQk z=#m)L41XEbsYV}8QiqqHTT$H! zm331%PIICs5!4JeGeRoD)780HUx8%jVCkV?wwch`3R?W?$PlzlBw3iv7w7d}Al<`w zn1@ul&LJ?=bz=EJX+`!=q+H;XOrPI(%G{E$@~06kM-v<%I_Bpa#`Fy1%NT zS4PDB%|Hx(lv^Z{S zsUH-dX62e1sTM`&6bX|Gu(g7&*0!Ud7-b066ZLbj%`<)P+c%@McUE6VMv9DG_i|ig z!c0v~-BWb0D<3`n*y(*$=&~Bu=`Ae2ZL44yeCR|vcGMGj=`8VkUDVQ+10ky`hdxk? z8^O+0IytgS6L>@JUc4+F9Aw1F0YF+xC`y~44IsMb;5nIf5*J@?PZTJD+Y8A8X7&N^ z=J%jt34E9rA}1PCA;$X|LWpfX4;-_Vq*&VY$>3US05(r|84xKt-oFpbU(&r94W9&1 z5LeN|A4Sl2)}cKm>Jw^_PA zorOng^%%6_j9uwT`5}1}!i>6)fv11xlH5KaQ!NR?Rt&_JXYV;x%yVV|0q?q5;?qi) z;dsDG_u5b0dkK{?34b|p#F@XzyC**#NI-`SKC1{*nK(PXW*e@dZjBt!Lazh%H>-s4XGX|wi9IEeP}d9dZ>o|@l+ z*33rLUJvwk+1uM6eX%xx?X#Mb1xAd=zVggt9U!t)0a$r??eT+SNUA4cA=vd-;o$#W zAjrLEwd2rjwKYZ{YL%705lN*$W6H*?kML*zl89~FT?@+2 zy%7Vs1e=#p6%?D@P8Cm9yk{CrLFu6BC@fX2QP>*VVx0|8~1S2SuNZzTo5drk`M(1J_30v3KX3ai@#UDWF7h;*@n(Dw_tJGi$vfcAAk z|Gb4#WFCB@(C(0nCqLrvDbEP832j56Gi}(eh3gMQ*C6ZW5-;-7;GmSN9ziSwxdr}r zjUy|V!?#>OV}?^oZ_KRAwGc*w_}Q?O82CC)V@eiin!ouYcXxT|jsfQcSG!cdJ}Cu2LRMbh-k%T*$ot;oEwQn&DVdXt5I~N5>va(_5$w%8 zGrbiuI{exSF`U{0;=CESi$R60Z59EkB$i_NDfLgqm39~hnhepuMS#G>s;dRAC_=ofR$m! zDeVI-XN@a~F?$^#J43@S?BJT3nK7Iwp5q}UEP5AINI_cq<#mF%8I*^DIJTA}+A>3H z_uLtnujxABBlQ5l9y$_AO9RrdOy7$R_3oogk-ETQss@=9wel^*UwL^!dXqZse^Lin04!;G5wgv`g6siXp&W$hovah! zFpUx;m~{#>W7i@rpo@af8u2LjJiD_q8qzFubXe@$mjQUhO&NN#-6tT;@e*Hvc8u&KKD0VGjipI&g5(ubz zZ;%x0SWUBL)vxFBH}2lGgm4s_@&NOoOu+LsY@0#TN*vXIHAokw@49nh;wPhzrPTJ~ zib*+oKrB*GP>I8;AeUyiLH0{{#ubhTQU4ob3ii;d=KRN#@EaMfGc4lIko6i57FjRO z#x^erj5&5T@Kv*eYUyxk^;81A)Crq7dhG^nwo7o6Exd7RE&N7=e#p3~6QCd0!?jA? zFlG11dSG}n85Nt6!a@911yxc(u;GM+tDWg9j&Lv$L}fQP!9|n+Nb_K#;X*oH+<`wx zIB;vz3xH{;01u$EJ)*Czg z|4;ruzRFJjoY5k|KiUSyuT&(H7%*UzMOtR+bb&MbqM1F2oCIMbD12-DbO^{z6Hj56 zk9>hc@n^{We9*gBK#RH=gL07%efm_<{qCLry;9j*51^G7I)UnPTczN%$>kP=@@Gr| zJtsR3Lrt!Q48h&gB0h7|pDN%kI2%;aEB+eY$;sCE$t3$+>}gc`dL3?W$V%>XpDY4mTOFet>(Ts~zx7XBskx#Ev`? zX?%or+_MK>lJj)je@}u1ITHyeWHkuZI8-DLpR<`qBLJ{cEszhyp=1nu7)(^a0lr;q z)}Dat!shq)Q!jzFk$V-?Kx($p2T*a>&HDirvedIpy~l62jZNEdE=OYxn`u9khnWI; zRJOMs0JWS2n@?+@jkGdGYu10axH(W247R(#iZhD){KkWwU=Oe!Fh2)!fL^kf%6Q_C zIDC5)Y;tcIdlk6F5rOZvJ^hz6?MD%`w zPM2AB3SInp1QO+F>#l2g4nWC*+fNN0!R10#hxrYRlUam2C{CK}>i#0J!VOLWfxwDh zWk}4UoO9<+oP0;rg~CKyY*JD{0_5$6C`@-LR2&(J1jc;TaOb`!fD{1N)3Rtx{q*t2 TTdN!x;J>XV+l}uTx}5!Ak^ZJ~ diff --git a/documentation/onboard-dpg-in-sdkautomation/java/README.md b/documentation/onboard-dpg-in-sdkautomation/java/README.md deleted file mode 100644 index fa6661dd09de..000000000000 --- a/documentation/onboard-dpg-in-sdkautomation/java/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# Add TypeSpec Configuration for Java SDK - -See [Use SDK Automation from REST API specifications](https://github.com/Azure/azure-sdk-for-java/wiki/TypeSpec-Java-Quickstart#use-sdk-automation-from-rest-api-specifications) in TypeSpec Java QuickStart. - -`flavor` is always `azure` for Azure SDK. - -## Example for Java data-plane SDK - -`namespace` always starts with `com.azure` for Azure Java data-plane SDK. [Review process](https://azure.github.io/azure-sdk/policies_reviewprocess.html). - -```yaml - "@azure-tools/typespec-java": - emitter-output-dir: "{output-dir}/{service-dir}/azure-ai-openai" - flavor: azure - namespace: "com.azure.ai.openai" -``` - -## Example for Java management-plane SDK - -`namespace` always starts with `com.azure.resourcemanager` for Azure Java management-plane SDK. [Review process](https://eng.ms/docs/products/azure-developer-experience/develop/namespace-review). - -`service-name` is the name of the service. It is used for SDK class name and documentations. - -```yaml - "@azure-tools/typespec-java": - emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-standbypool" - flavor: "azure" - namespace: "com.azure.resourcemanager.standbypool" - service-name: "Standby Pool" -``` - -# Add AutoRest Configuration for Java SDK - -AutoRest configuration should only be used for management-plane SDK, when there is no TypeSpec on your resource provider. - -One can copy the [sample readme.java.md file](https://github.com/Azure/azure-rest-api-specs/blob/main/documentation/samplefiles/readme.java.md). - -It is recommended to add a `service-name` to the readme.java.md file. - -Service does not need to configure the namespace in readme.java.md. The namespace is configured in [api-specs.yaml in SDK repository](https://github.com/Azure/azure-sdk-for-java/blob/main/eng/mgmt/automation/api-specs.yaml) that would be automatically updated upon SDK pull request. diff --git a/documentation/onboard-dpg-in-sdkautomation/js/README.md b/documentation/onboard-dpg-in-sdkautomation/js/README.md deleted file mode 100644 index e82f8d0f7199..000000000000 --- a/documentation/onboard-dpg-in-sdkautomation/js/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# Add Autorest Configuration of JS SDK - -## Parameter Description - -- ``: The RP name, which is usually same as folder name in swagger. -- ``: Python package folder name, which must ends with `-rest`. For example: `purview-administration-rest`. -- ``: The sub-folder name in the package. It's only used by multi-client scenario. - -## Single Client -If you want to generate sdk with single client, please copy the following configuration into spec PR comment. -~~~ -# azure-sdk-for-js -``` yaml -output-folder: sdk// -require: - - specification//data-plane/readme.md -``` -~~~ -- `output-folder`: The relative path of destination to generate SDK. -- `require`: The item of the value is the relative path of spec readme.md file. - -## Multi Client -If you want to generate sdk with multi client, please copy the following configuration into spec PR comment. -~~~ -# azure-sdk-for-js -``` yaml $(multi-client) -tag: false -require: - - specification//data-plane/readme.md -batch: - - package-A: true - - package-B: true -``` - -``` yaml $(package-A) -output-folder: sdk///src/ -``` - -``` yaml $(package-B) -output-folder: sdk///src/ -``` -~~~ -- `output-folder`: The relative path of destination to generate SDK. -- `require`: The item of the value is the relative path of spec readme.md file. -- `package-A` and `package-B` must be defined in swagger `readme.md` file. For samples, please refer to [dataplane samples for multi client](../../samplefiles-dp/samplefiles-dp-for-multi-client). diff --git a/documentation/onboard-dpg-in-sdkautomation/python/README.md b/documentation/onboard-dpg-in-sdkautomation/python/README.md deleted file mode 100644 index 45ce0fa7a084..000000000000 --- a/documentation/onboard-dpg-in-sdkautomation/python/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# Add Autorest Configuration of Python SDK - -## Parameter Description - -- ``: The RP name, which is usually same as folder name in swagger. -- ``: Python package name. -- ``: SDK Client Name - -## Single Client -If you want to generate sdk with single client, please copy the following configuration into spec PR comment. -~~~ -# azure-sdk-for-python -``` yaml -output-folder: sdk/<ServiceName>/<PackageName> -require: - - specification/<RPName>/data-plane/readme.md -``` -~~~ -- `output-folder`: The relative path of destination to generate SDK. -- `require`: The item of the value is the relative path of spec readme.md file. - -## Multi Client -If you want to generate sdk with multi client, please copy the following configuration into spec PR comment. -~~~ -# azure-sdk-for-python -``` yaml -tag: false -output-folder: sdk/<ServiceName>/<PackageName> -require: - - specification/<ServiceName>/data-plane/readme.md -batch: - - package-A: true - - package-B: true -``` - -~~~ -- `output-folder`: The relative path of destination to generate SDK. -- `require`: The item of the value is the relative path of spec readme.md file. -- `package-A` and `package-B` must be defined in swagger `readme.md` file. For samples, please refer to [dataplane samples for multi client](../../samplefiles-dp/samplefiles-dp-for-multi-client). diff --git a/documentation/samplefiles-dp/samplefiles-dp-for-multi-client/README.md b/documentation/samplefiles-dp/samplefiles-dp-for-multi-client/README.md index b777412aa8bc..1150dfa11ea7 100644 --- a/documentation/samplefiles-dp/samplefiles-dp-for-multi-client/README.md +++ b/documentation/samplefiles-dp/samplefiles-dp-for-multi-client/README.md @@ -1,23 +1,5 @@ # [[ServiceName]] -> see https://aka.ms/autorest - -This is the AutoRest configuration file for [[ServiceName]]. - -## Getting Started - -To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run: - -> `autorest readme.md` - -To see additional help and options, run: - -> `autorest --help` - -For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page. - ---- - ## Configuration ### Basic Information @@ -68,18 +50,3 @@ These settings apply only when `--package-B-tag=package-B-[[Version]]` is specif input-file: - Microsoft.YourServiceName/stable/YYYY-MM-DD/YourServiceNameB.json ``` - -# Code Generation - -## Swagger to SDK - -This section describes what SDK should be generated by the automatic system. -This is not used by Autorest itself. - -```yaml $(swagger-to-sdk) -swagger-to-sdk: - - repo: azure-sdk-for-js - - repo: azure-sdk-for-python - - repo: azure-sdk-for-java - - repo: azure-sdk-for-net -``` diff --git a/documentation/samplefiles-dp/samplefiles-dp-for-single-client/README.md b/documentation/samplefiles-dp/samplefiles-dp-for-single-client/README.md index d0033dc14b95..65c0b2e01806 100644 --- a/documentation/samplefiles-dp/samplefiles-dp-for-single-client/README.md +++ b/documentation/samplefiles-dp/samplefiles-dp-for-single-client/README.md @@ -1,23 +1,5 @@ # [[ServiceName]] -> see https://aka.ms/autorest - -This is the AutoRest configuration file for [[ServiceName]]. - -## Getting Started - -To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run: - -> `autorest readme.md` - -To see additional help and options, run: - -> `autorest --help` - -For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page. - ---- - ## Configuration ### Basic Information @@ -40,18 +22,3 @@ These settings apply only when `--tag=package-[[Version]]` is specified on the c input-file: - [[ResourceProviderName]]/[[ReleaseState]]/[[Version]]/[[ServiceName]].json ``` - -# Code Generation - -## Swagger to SDK - -This section describes what SDK should be generated by the automatic system. -This is not used by Autorest itself. - -```yaml $(swagger-to-sdk) -swagger-to-sdk: - - repo: azure-sdk-for-js - - repo: azure-sdk-for-python - - repo: azure-sdk-for-java - - repo: azure-sdk-for-net -``` diff --git a/documentation/samplefiles/ABOUT.md b/documentation/samplefiles/ABOUT.md index 09978fd29bfc..fc9d5e7e0aba 100644 --- a/documentation/samplefiles/ABOUT.md +++ b/documentation/samplefiles/ABOUT.md @@ -9,9 +9,6 @@ specification files referenced by the README files. > which is a legacy, obsolete approach. For current approach refer to > [aka.ms/azsdk/typespec](https://aka.ms/azsdk/typespec). -Finally, the `./Microsoft.YourServiceName/stable/YYYY-MM-DD/scenarios/quickStart.yaml` -is an [`api-scenario`](../api-scenario/README.md) sample. - You can learn more about AutoRest configuration files at [aka.ms/azsdk/autorest](https://aka.ms/azsdk/autorest). diff --git a/documentation/samplefiles/Microsoft.YourServiceName/stable/YYYY-MM-DD/scenarios/quickStart.yaml b/documentation/samplefiles/Microsoft.YourServiceName/stable/YYYY-MM-DD/scenarios/quickStart.yaml deleted file mode 100644 index 14ac75ea7a23..000000000000 --- a/documentation/samplefiles/Microsoft.YourServiceName/stable/YYYY-MM-DD/scenarios/quickStart.yaml +++ /dev/null @@ -1,34 +0,0 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/documentation/api-scenario/references/v1.2/schema.json - -scope: ResourceGroup - -scenarios: - - description: Microsoft.YourService Test Operation Get - steps: - - step: Test Operation Get - exampleFile: ../examples/OperationGroupGet.json - - - description: Microsoft.YourService Test Cat Create and Update - steps: - - step: Create cat Rococo - exampleFile: ../examples/CatsCreateOrUpdate.json - - - step: Get cat Rococo - exampleFile: ../examples/CatsGet.json - - - description: Microsoft.YourService Test Cat mate link - steps: - - step: Create cat Rococo - exampleFile: ../examples/CatsCreateOrUpdate.json - - - step: Create cat Baroque - exampleFile: ../examples/CatsCreateOrUpdate.json - variables: - catName: Baroque - requestUpdate: - - replace: /parameters/properties/fullName - value: Baroque the Cat - outputVariables: - cat1Id: - fromResponse: /id - diff --git a/documentation/samplefiles/README.md b/documentation/samplefiles/README.md index fe937b5a2672..461046b7bb1e 100644 --- a/documentation/samplefiles/README.md +++ b/documentation/samplefiles/README.md @@ -1,21 +1,5 @@ # [[ServiceName]] -> see https://aka.ms/autorest - -This is the AutoRest configuration file for [[ServiceName]]. - -## Getting Started - -To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run: - -> `autorest readme.md` - -To see additional help and options, run: - -> `autorest --help` - -For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page. - --- ## Configuration @@ -40,27 +24,6 @@ input-file: --- -# Code Generation - -## Swagger to SDK - -This section describes what SDK should be generated by the automatic system. -This is not used by Autorest itself. - -```yaml $(swagger-to-sdk) -swagger-to-sdk: - - repo: azure-sdk-for-python - - repo: azure-sdk-for-java - - repo: azure-sdk-for-go - - repo: azure-sdk-for-js - - repo: azure-resource-manager-schemas - - repo: azure-cli-extensions - - repo: azure-powershell -``` -## Az - -See configuration in [readme.az.md](./readme.az.md) - ## Go See configuration in [readme.go.md](./readme.go.md) diff --git a/documentation/samplefiles/readme.az.md b/documentation/samplefiles/readme.az.md deleted file mode 100644 index ab6eaf1557a1..000000000000 --- a/documentation/samplefiles/readme.az.md +++ /dev/null @@ -1,28 +0,0 @@ -## AZ - -These settings apply only when `--az` is specified on the command line. - -For new Resource Provider. It is highly recommended to onboard Azure CLI extensions. There's no differences in terms of customer usage. - -``` yaml $(az) && $(target-mode) != 'core' -az: - extensions: [[ServiceName]] - namespace: azure.mgmt.[[ServiceName]] - package-name: azure-mgmt-[[ServiceName]] -az-output-folder: $(azure-cli-extension-folder)/src/[[ServiceName]] -python-sdk-output-folder: "$(az-output-folder)/azext_[[ServiceName]]/vendored_sdks/[[ServiceName]]" -# add additional configuration here specific for Azure CLI -# refer to the faq.md for more details -``` - - - -This is for command modules that already in azure cli main repo. -``` yaml $(az) && $(target-mode) == 'core' -az: - extensions: [[ServiceName]] - namespace: azure.mgmt.[[ServiceName]] - package-name: azure-mgmt-[[ServiceName]] -az-output-folder: $(azure-cli-folder)/src/azure-cli/azure/cli/command_modules/[[ServiceName]] -python-sdk-output-folder: "$(az-output-folder)/vendored_sdks/[[ServiceName]]" -``` \ No newline at end of file diff --git a/documentation/samplefiles/readme.cli.md b/documentation/samplefiles/readme.cli.md deleted file mode 100644 index c6cf6ad37ea4..000000000000 --- a/documentation/samplefiles/readme.cli.md +++ /dev/null @@ -1 +0,0 @@ -## CLI Common Settings for all the command line tools \ No newline at end of file diff --git a/documentation/samplefiles/samplereadme.md b/documentation/samplefiles/samplereadme.md deleted file mode 100644 index 750da28419b5..000000000000 --- a/documentation/samplefiles/samplereadme.md +++ /dev/null @@ -1,23 +0,0 @@ -# [[ServiceName]] - ---- - -## Configuration - -### Basic Information - -These are the global settings for the [[ServiceName]]. - -```yaml -openapi-type: [[OpenApiType]] -tag: package-[[Version]] -``` - -### Tag: package-[[Version]] - -These settings apply only when `--tag=package-[[Version]]` is specified on the command line. - -```yaml $(tag) == 'package-[[Version]]' -input-file: - - [[ResourceProviderName]]/[[ReleaseState]]/[[Version]]/[[ServiceName]].json -``` From 39a03af627756fbf2d528d5fdfb249e437871f4a Mon Sep 17 00:00:00 2001 From: Mike Harder <mharder@microsoft.com> Date: Fri, 19 Dec 2025 12:38:17 -0800 Subject: [PATCH 070/117] [typespec-requirement] enable eslint (#39348) --- .github/workflows/typespec-requirement-test.yaml | 1 + eng/tools/typespec-requirement/eslint.config.js | 9 +++++++++ eng/tools/typespec-requirement/package.json | 6 ++++++ package-lock.json | 4 ++++ 4 files changed, 20 insertions(+) create mode 100644 eng/tools/typespec-requirement/eslint.config.js diff --git a/.github/workflows/typespec-requirement-test.yaml b/.github/workflows/typespec-requirement-test.yaml index 922b34fd19a3..5e6f86689a5f 100644 --- a/.github/workflows/typespec-requirement-test.yaml +++ b/.github/workflows/typespec-requirement-test.yaml @@ -25,3 +25,4 @@ jobs: uses: ./.github/workflows/_reusable-eng-tools-test.yaml with: package: typespec-requirement + lint: true diff --git a/eng/tools/typespec-requirement/eslint.config.js b/eng/tools/typespec-requirement/eslint.config.js new file mode 100644 index 000000000000..f473ad5e3dd9 --- /dev/null +++ b/eng/tools/typespec-requirement/eslint.config.js @@ -0,0 +1,9 @@ +// @ts-check + +import { defineBaseConfig } from "../eslint.base.config.js"; + +export default defineBaseConfig({ + // ensures the tsconfig path resolves relative to this file (so cannot be defined in base file) + // default is process.cwd() when running eslint, which may be incorrect + tsconfigRootDir: import.meta.dirname, +}); diff --git a/eng/tools/typespec-requirement/package.json b/eng/tools/typespec-requirement/package.json index b8fa750b5602..6bdee8ca7b5e 100644 --- a/eng/tools/typespec-requirement/package.json +++ b/eng/tools/typespec-requirement/package.json @@ -3,18 +3,24 @@ "private": true, "type": "module", "devDependencies": { + "@eslint/js": "^9.22.0", "@types/node": "^20.0.0", + "cross-env": "^10.1.0", + "eslint": "^9.22.0", "execa": "^9.3.0", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", + "typescript-eslint": "^8.45.0", "vitest": "^4.0.15" }, "scripts": { "build": "tsc --build", + "check": "npm run build && npm run lint && npm run format:check && npm run test:ci", "format": "prettier . --ignore-path ../.prettierignore --write", "format:check": "prettier . --ignore-path ../.prettierignore --check", "format:check:ci": "prettier . --ignore-path ../.prettierignore --check --log-level debug", + "lint": "cross-env DEBUG=eslint:eslint,eslint:linter eslint", "test": "vitest", "test:ci": "vitest run --reporter=verbose" }, diff --git a/package-lock.json b/package-lock.json index d572fb83c757..098bed49e7ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -473,11 +473,15 @@ "name": "@azure-tools/typespec-requirement", "dev": true, "devDependencies": { + "@eslint/js": "^9.22.0", "@types/node": "^20.0.0", + "cross-env": "^10.1.0", + "eslint": "^9.22.0", "execa": "^9.3.0", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", + "typescript-eslint": "^8.45.0", "vitest": "^4.0.15" }, "engines": { From 12538548094906a0cef1da912fd0dba5763ac666 Mon Sep 17 00:00:00 2001 From: Mike Harder <mharder@microsoft.com> Date: Fri, 19 Dec 2025 12:38:36 -0800 Subject: [PATCH 071/117] [eslint] Enable debug category "eslint:linter" (#39349) - Lists all files analyzed --- .github/package.json | 2 +- .github/shared/package.json | 2 +- eng/tools/lint-diff/package.json | 2 +- eng/tools/oav-runner/package.json | 2 +- eng/tools/suppressions/package.json | 2 +- eng/tools/typespec-validation/package.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/package.json b/.github/package.json index e40abec42d96..5dbb67c885e7 100644 --- a/.github/package.json +++ b/.github/package.json @@ -41,7 +41,7 @@ "scripts": { "check": "npm run lint && npm run format:check && npm run test:ci", "lint": "npm run lint:eslint && npm run lint:tsc", - "lint:eslint": "cross-env DEBUG=eslint:eslint eslint", + "lint:eslint": "cross-env DEBUG=eslint:eslint,eslint:linter eslint", "lint:tsc": "tsc --build --verbose", "format": "prettier . --write", "format:check": "prettier . --check", diff --git a/.github/shared/package.json b/.github/shared/package.json index 4543a28842bc..67bf4e3ed876 100644 --- a/.github/shared/package.json +++ b/.github/shared/package.json @@ -63,7 +63,7 @@ "scripts": { "check": "npm run lint && npm run format:check && npm run test:ci", "lint": "npm run lint:eslint && npm run lint:tsc", - "lint:eslint": "cross-env DEBUG=eslint:eslint eslint", + "lint:eslint": "cross-env DEBUG=eslint:eslint,eslint:linter eslint", "lint:tsc": "tsc --build --verbose", "format": "prettier . --ignore-path ../.prettierignore --write", "format:check": "prettier . --ignore-path ../.prettierignore --check", diff --git a/eng/tools/lint-diff/package.json b/eng/tools/lint-diff/package.json index a3f1a62c2531..fedfa53c9d26 100644 --- a/eng/tools/lint-diff/package.json +++ b/eng/tools/lint-diff/package.json @@ -13,7 +13,7 @@ "format": "prettier . --ignore-path ../.prettierignore --write", "format:check": "prettier . --ignore-path ../.prettierignore --check", "format:check:ci": "prettier . --ignore-path ../.prettierignore --check --log-level debug", - "lint": "cross-env DEBUG=eslint:eslint eslint", + "lint": "cross-env DEBUG=eslint:eslint,eslint:linter eslint", "test": "vitest", "test:ci": "vitest run --coverage --reporter=verbose" }, diff --git a/eng/tools/oav-runner/package.json b/eng/tools/oav-runner/package.json index c0121e47bfe6..e86b8d9358be 100644 --- a/eng/tools/oav-runner/package.json +++ b/eng/tools/oav-runner/package.json @@ -12,7 +12,7 @@ "format": "prettier . --ignore-path ../.prettierignore --write", "format:check": "prettier . --ignore-path ../.prettierignore --check", "format:check:ci": "prettier . --ignore-path ../.prettierignore --check --log-level debug", - "lint": "cross-env DEBUG=eslint:eslint eslint", + "lint": "cross-env DEBUG=eslint:eslint,eslint:linter eslint", "test": "vitest", "test:ci": "vitest run --coverage --reporter=verbose" }, diff --git a/eng/tools/suppressions/package.json b/eng/tools/suppressions/package.json index 2a9a7e46d8ae..7627c5cf193d 100644 --- a/eng/tools/suppressions/package.json +++ b/eng/tools/suppressions/package.json @@ -12,7 +12,7 @@ "format": "prettier . --ignore-path ../.prettierignore --write", "format:check": "prettier . --ignore-path ../.prettierignore --check", "format:check:ci": "prettier . --ignore-path ../.prettierignore --check --log-level debug", - "lint": "cross-env DEBUG=eslint:eslint eslint", + "lint": "cross-env DEBUG=eslint:eslint,eslint:linter eslint", "test": "vitest", "test:ci": "vitest run --coverage --reporter=verbose" }, diff --git a/eng/tools/typespec-validation/package.json b/eng/tools/typespec-validation/package.json index aa50a2c9601a..c82ef0d9b0f5 100644 --- a/eng/tools/typespec-validation/package.json +++ b/eng/tools/typespec-validation/package.json @@ -36,7 +36,7 @@ "format": "prettier . --ignore-path ../.prettierignore --write", "format:check": "prettier . --ignore-path ../.prettierignore --check", "format:check:ci": "prettier . --ignore-path ../.prettierignore --check --log-level debug", - "lint": "cross-env DEBUG=eslint:eslint eslint", + "lint": "cross-env DEBUG=eslint:eslint,eslint:linter eslint", "test": "vitest", "test:ci": "vitest run --coverage --reporter=verbose" }, From 0c932f4a1e126784161397209484678f3adda2f6 Mon Sep 17 00:00:00 2001 From: Mike Harder <mharder@microsoft.com> Date: Fri, 19 Dec 2025 12:44:26 -0800 Subject: [PATCH 072/117] [tsp-client-tests] enable eslint (#39350) --- .github/workflows/tsp-client-test.yaml | 1 + eng/tools/tsp-client-tests/eslint.config.js | 9 +++++++++ eng/tools/tsp-client-tests/package.json | 6 ++++++ package-lock.json | 4 ++++ 4 files changed, 20 insertions(+) create mode 100644 eng/tools/tsp-client-tests/eslint.config.js diff --git a/.github/workflows/tsp-client-test.yaml b/.github/workflows/tsp-client-test.yaml index 3a27b0e1420c..1ac664e54498 100644 --- a/.github/workflows/tsp-client-test.yaml +++ b/.github/workflows/tsp-client-test.yaml @@ -28,6 +28,7 @@ jobs: uses: ./.github/workflows/_reusable-eng-tools-test.yaml with: package: tsp-client-tests + lint: true sparse-checkout-paths: | specification/common-types specification/contosowidgetmanager diff --git a/eng/tools/tsp-client-tests/eslint.config.js b/eng/tools/tsp-client-tests/eslint.config.js new file mode 100644 index 000000000000..f473ad5e3dd9 --- /dev/null +++ b/eng/tools/tsp-client-tests/eslint.config.js @@ -0,0 +1,9 @@ +// @ts-check + +import { defineBaseConfig } from "../eslint.base.config.js"; + +export default defineBaseConfig({ + // ensures the tsconfig path resolves relative to this file (so cannot be defined in base file) + // default is process.cwd() when running eslint, which may be incorrect + tsconfigRootDir: import.meta.dirname, +}); diff --git a/eng/tools/tsp-client-tests/package.json b/eng/tools/tsp-client-tests/package.json index 6d7256394c59..56ea3ed641ef 100644 --- a/eng/tools/tsp-client-tests/package.json +++ b/eng/tools/tsp-client-tests/package.json @@ -4,17 +4,23 @@ "type": "module", "devDependencies": { "@azure-tools/specs-shared": "file:../../../.github/shared", + "@eslint/js": "^9.22.0", "@types/node": "^20.0.0", + "cross-env": "^10.1.0", + "eslint": "^9.22.0", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", + "typescript-eslint": "^8.45.0", "vitest": "^4.0.15" }, "scripts": { "build": "tsc --build", + "check": "npm run build && npm run lint && npm run format:check && npm run test:ci", "format": "prettier . --ignore-path ../.prettierignore --write", "format:check": "prettier . --ignore-path ../.prettierignore --check", "format:check:ci": "prettier . --ignore-path ../.prettierignore --check --log-level debug", + "lint": "cross-env DEBUG=eslint:eslint,eslint:linter eslint", "test": "vitest", "test:ci": "vitest run --reporter=verbose" }, diff --git a/package-lock.json b/package-lock.json index 098bed49e7ba..ac853e483c17 100644 --- a/package-lock.json +++ b/package-lock.json @@ -434,10 +434,14 @@ "dev": true, "devDependencies": { "@azure-tools/specs-shared": "file:../../../.github/shared", + "@eslint/js": "^9.22.0", "@types/node": "^20.0.0", + "cross-env": "^10.1.0", + "eslint": "^9.22.0", "prettier": "3.7.4", "prettier-plugin-organize-imports": "^4.2.0", "typescript": "~5.9.2", + "typescript-eslint": "^8.45.0", "vitest": "^4.0.15" }, "engines": { From 455d20a5e76d8184f7cff960501a57e1f88986b7 Mon Sep 17 00:00:00 2001 From: Meghana Gupta <93553451+meghanagupta95@users.noreply.github.com> Date: Sun, 21 Dec 2025 19:15:56 -0800 Subject: [PATCH 073/117] Change folder name for Micosoft.Management RP and move resource type servicegroups to own service and updated SDK packages (#38861) * Move service groups to its own service * Change RP name from managementgroups to management * Update SDK config files * Update readme.java.md * Update readme.java.md * Update readme.java.md * Update readme.md * Update wth Typespec migration * Move typespec files to service ManagementGroups * Update tspconfig.yaml * Move service groups to its own service * Change RP name from managementgroups to management * Update SDK config files * Update readme.java.md * Update readme.java.md * Update readme.java.md * Update readme.md * Update wth Typespec migration * Move typespec files to service ManagementGroups * Update tspconfig.yaml --------- Co-authored-by: Weidong Xu <weidxu@microsoft.com> Co-authored-by: Chenjie Shi <tadelesh.shi@live.cn> --- .../cspell.yaml | 0 .../ManagementGroups}/HierarchySettings.tsp | 0 .../ManagementGroups}/ManagementGroup.tsp | 0 .../SubscriptionUnderManagementGroup.tsp | 0 .../ManagementGroups}/back-compatible.tsp | 0 .../ManagementGroups}/client.tsp | 0 .../AddManagementGroupSubscription.json | 0 .../CheckManagementGroupNameAvailability.json | 0 .../2023-04-01/DeleteHierarchySettings.json | 0 .../2023-04-01/DeleteManagementGroup.json | 0 ...etAllSubscriptionsFromManagementGroup.json | 0 .../examples/2023-04-01/GetDescendants.json | 0 .../examples/2023-04-01/GetEntities.json | 0 .../2023-04-01/GetHierarchySettings.json | 0 .../2023-04-01/GetManagementGroup.json | 0 .../GetManagementGroupWithAncestors.json | 0 .../GetManagementGroupWithExpand.json | 0 ...etManagementGroupWithExpandAndRecurse.json | 0 .../GetManagementGroupWithPath.json | 0 .../GetSubscriptionFromManagementGroup.json | 0 .../2023-04-01/ListHierarchySettings.json | 0 .../2023-04-01/ListManagementGroups.json | 0 .../examples/2023-04-01/ListOperations.json | 0 .../2023-04-01/PatchHierarchySettings.json | 0 .../2023-04-01/PatchManagementGroup.json | 0 .../2023-04-01/PutHierarchySettings.json | 0 .../2023-04-01/PutManagementGroup.json | 0 .../RemoveManagementGroupSubscription.json | 0 .../StartTenantBackfillRequest.json | 0 .../TenantBackfillStatusRequest.json | 0 .../ManagementGroups}/main.tsp | 0 .../ManagementGroups}/models.tsp | 0 .../examples/GetGroups.json | 0 .../examples/GetManagementGroup.json | 0 .../GetManagementGroupWithExpand.json | 0 ...etManagementGroupWithExpandAndRecurse.json | 0 .../examples/ListOperations.json | 0 .../2017-08-31-preview/management.json | 0 .../examples/ListOperations.json | 23 ++++++ .../addManagementGroupSubscription.json | 0 .../createOrUpdateManagementGroup.json | 0 .../examples/deleteManagementGroup.json | 0 .../examples/getManagementGroup.json | 0 .../getManagementGroupSubscription.json | 0 .../getManagementGroupWithExpand.json | 0 ...etManagementGroupWithExpandAndRecurse.json | 0 .../examples/getOperations.json | 0 .../examples/listManagementGroups.json | 0 .../removeManagementGroupSubscription.json | 0 .../examples/updateManagementGroup.json | 0 .../2017-11-01-preview/management.json | 0 .../AddManagementGroupSubscription.json | 0 .../CheckManagementGroupNameAvailability.json | 0 .../examples/DeleteManagementGroup.json | 0 .../examples/EntitiesGetHierarchy.json | 0 .../examples/GetEntities.json | 0 .../examples/GetManagementGroup.json | 0 .../GetManagementGroupWithExpand.json | 0 ...etManagementGroupWithExpandAndRecurse.json | 0 .../examples/GetOperationResult.json | 0 .../examples/ListManagementGroups.json | 0 .../examples/PatchManagementGroup.json | 0 .../examples/PutManagementGroup.json | 0 .../RemoveManagementGroupSubscription.json | 0 .../2018-01-01-preview/management.json | 0 .../AddManagementGroupSubscription.json | 0 .../CheckManagementGroupNameAvailability.json | 0 .../examples/DeleteManagementGroup.json | 0 .../examples/EntitiesGetHierarchy.json | 0 .../examples/GetDescendants.json | 0 .../examples/GetEntities.json | 0 .../examples/GetManagementGroup.json | 0 .../GetManagementGroupWithExpand.json | 0 ...etManagementGroupWithExpandAndRecurse.json | 0 .../examples/GetOperationResult.json | 0 .../examples/ListManagementGroups.json | 0 .../examples/PatchManagementGroup.json | 0 .../examples/PutManagementGroup.json | 0 .../RemoveManagementGroupSubscription.json | 0 .../examples/StartTenantBackfillRequest.json | 0 .../examples/TenantBackfillStatusRequest.json | 0 .../2018-03-01-preview/management.json | 0 .../AddManagementGroupSubscription.json | 0 .../CheckManagementGroupNameAvailability.json | 0 ...erviceGroupNameAvailability_Available.json | 0 ...viceGroupNameAvailability_Unavailable.json | 0 .../examples/DeleteHierarchySettings.json | 0 .../examples/DeleteManagementGroup.json | 0 ...etAllSubscriptionsFromManagementGroup.json | 0 .../examples/GetDescendants.json | 0 .../examples/GetEntities.json | 0 .../examples/GetHierarchySettings.json | 0 .../examples/GetManagementGroup.json | 0 .../GetManagementGroupWithAncestors.json | 0 .../GetManagementGroupWithExpand.json | 0 ...etManagementGroupWithExpandAndRecurse.json | 0 .../examples/GetManagementGroupWithPath.json | 0 .../GetSubscriptionFromManagementGroup.json | 0 .../examples/ListHierarchySettings.json | 0 .../examples/ListManagementGroups.json | 0 .../examples/ListOperations.json | 23 ++++++ .../examples/PatchHierarchySettings.json | 0 .../examples/PatchManagementGroup.json | 0 .../examples/PutHierarchySettings.json | 0 .../examples/PutManagementGroup.json | 0 .../RemoveManagementGroupSubscription.json | 0 .../examples/StartTenantBackfillRequest.json | 0 .../examples/TenantBackfillStatusRequest.json | 0 .../2024-02-01-preview/management.json | 0 .../ManagementGroups/readme.az.md | 0 .../ManagementGroups/readme.cli.md | 0 .../ManagementGroups/readme.go.md | 0 .../ManagementGroups/readme.md | 13 --- .../ManagementGroups/readme.nodejs.md | 0 .../ManagementGroups/readme.python.md | 0 .../ManagementGroups/readme.ruby.md | 0 .../ManagementGroups/readme.typescript.md | 0 .../ManagementGroups}/routes.tsp | 0 .../ManagementGroups/sdk-suppressions.yaml | 0 .../AddManagementGroupSubscription.json | 0 .../CheckManagementGroupNameAvailability.json | 0 .../examples/DeleteManagementGroup.json | 0 .../2019-11-01/examples/GetDescendants.json | 0 .../2019-11-01/examples/GetEntities.json | 0 .../examples/GetManagementGroup.json | 0 .../GetManagementGroupWithExpand.json | 0 ...etManagementGroupWithExpandAndRecurse.json | 0 .../examples/ListManagementGroups.json | 0 .../examples/PatchManagementGroup.json | 0 .../examples/PutManagementGroup.json | 0 .../RemoveManagementGroupSubscription.json | 0 .../examples/StartTenantBackfillRequest.json | 0 .../examples/TenantBackfillStatusRequest.json | 0 .../stable/2019-11-01/management.json | 0 .../AddManagementGroupSubscription.json | 0 .../CheckManagementGroupNameAvailability.json | 0 .../examples/DeleteHierarchySettings.json | 0 .../examples/DeleteManagementGroup.json | 0 .../2020-02-01/examples/GetDescendants.json | 0 .../2020-02-01/examples/GetEntities.json | 0 .../examples/GetHierarchySettings.json | 0 .../examples/GetManagementGroup.json | 0 .../GetManagementGroupWithExpand.json | 0 ...etManagementGroupWithExpandAndRecurse.json | 0 .../examples/ListHierarchySettings.json | 0 .../examples/ListManagementGroups.json | 0 .../examples/PatchHierarchySettings.json | 0 .../examples/PatchManagementGroup.json | 0 .../examples/PutHierarchySettings.json | 0 .../examples/PutManagementGroup.json | 0 .../RemoveManagementGroupSubscription.json | 0 .../examples/StartTenantBackfillRequest.json | 0 .../examples/TenantBackfillStatusRequest.json | 0 .../stable/2020-02-01/management.json | 0 .../AddManagementGroupSubscription.json | 0 .../CheckManagementGroupNameAvailability.json | 0 .../examples/DeleteHierarchySettings.json | 0 .../examples/DeleteManagementGroup.json | 0 ...etAllSubscriptionsFromManagementGroup.json | 0 .../2020-05-01/examples/GetDescendants.json | 0 .../2020-05-01/examples/GetEntities.json | 0 .../examples/GetHierarchySettings.json | 0 .../examples/GetManagementGroup.json | 0 .../GetManagementGroupWithExpand.json | 0 ...etManagementGroupWithExpandAndRecurse.json | 0 .../GetSubscriptionFromManagementGroup.json | 0 .../examples/ListHierarchySettings.json | 0 .../examples/ListManagementGroups.json | 0 .../2020-05-01/examples/ListOperations.json | 0 .../examples/PatchHierarchySettings.json | 0 .../examples/PatchManagementGroup.json | 0 .../examples/PutHierarchySettings.json | 0 .../examples/PutManagementGroup.json | 0 .../RemoveManagementGroupSubscription.json | 0 .../examples/StartTenantBackfillRequest.json | 0 .../examples/TenantBackfillStatusRequest.json | 0 .../stable/2020-05-01/management.json | 0 .../AddManagementGroupSubscription.json | 0 .../CheckManagementGroupNameAvailability.json | 0 .../examples/DeleteHierarchySettings.json | 0 .../examples/DeleteManagementGroup.json | 0 ...etAllSubscriptionsFromManagementGroup.json | 0 .../2020-10-01/examples/GetDescendants.json | 0 .../2020-10-01/examples/GetEntities.json | 0 .../examples/GetHierarchySettings.json | 0 .../examples/GetManagementGroup.json | 0 .../GetManagementGroupWithAncestors.json | 0 .../GetManagementGroupWithExpand.json | 0 ...etManagementGroupWithExpandAndRecurse.json | 0 .../examples/GetManagementGroupWithPath.json | 0 .../GetSubscriptionFromManagementGroup.json | 0 .../examples/ListHierarchySettings.json | 0 .../examples/ListManagementGroups.json | 0 .../2020-10-01/examples/ListOperations.json | 0 .../examples/PatchHierarchySettings.json | 0 .../examples/PatchManagementGroup.json | 0 .../examples/PutHierarchySettings.json | 0 .../examples/PutManagementGroup.json | 0 .../RemoveManagementGroupSubscription.json | 0 .../examples/StartTenantBackfillRequest.json | 0 .../examples/TenantBackfillStatusRequest.json | 0 .../stable/2020-10-01/management.json | 0 .../AddManagementGroupSubscription.json | 0 .../CheckManagementGroupNameAvailability.json | 0 .../examples/DeleteHierarchySettings.json | 0 .../examples/DeleteManagementGroup.json | 0 ...etAllSubscriptionsFromManagementGroup.json | 0 .../2021-04-01/examples/GetDescendants.json | 0 .../2021-04-01/examples/GetEntities.json | 0 .../examples/GetHierarchySettings.json | 0 .../examples/GetManagementGroup.json | 0 .../GetManagementGroupWithAncestors.json | 0 .../GetManagementGroupWithExpand.json | 0 ...etManagementGroupWithExpandAndRecurse.json | 0 .../examples/GetManagementGroupWithPath.json | 0 .../GetSubscriptionFromManagementGroup.json | 0 .../examples/ListHierarchySettings.json | 0 .../examples/ListManagementGroups.json | 0 .../2021-04-01/examples/ListOperations.json | 0 .../examples/PatchHierarchySettings.json | 0 .../examples/PatchManagementGroup.json | 0 .../examples/PutHierarchySettings.json | 0 .../examples/PutManagementGroup.json | 0 .../RemoveManagementGroupSubscription.json | 0 .../examples/StartTenantBackfillRequest.json | 0 .../examples/TenantBackfillStatusRequest.json | 0 .../stable/2021-04-01/management.json | 0 .../AddManagementGroupSubscription.json | 0 .../CheckManagementGroupNameAvailability.json | 0 .../examples/DeleteHierarchySettings.json | 0 .../examples/DeleteManagementGroup.json | 0 ...etAllSubscriptionsFromManagementGroup.json | 0 .../2023-04-01/examples/GetDescendants.json | 0 .../2023-04-01/examples/GetEntities.json | 0 .../examples/GetHierarchySettings.json | 0 .../examples/GetManagementGroup.json | 0 .../GetManagementGroupWithAncestors.json | 0 .../GetManagementGroupWithExpand.json | 0 ...etManagementGroupWithExpandAndRecurse.json | 0 .../examples/GetManagementGroupWithPath.json | 0 .../GetSubscriptionFromManagementGroup.json | 0 .../examples/ListHierarchySettings.json | 0 .../examples/ListManagementGroups.json | 0 .../2023-04-01/examples/ListOperations.json | 0 .../examples/PatchHierarchySettings.json | 0 .../examples/PatchManagementGroup.json | 0 .../examples/PutHierarchySettings.json | 0 .../examples/PutManagementGroup.json | 0 .../RemoveManagementGroupSubscription.json | 0 .../examples/StartTenantBackfillRequest.json | 0 .../examples/TenantBackfillStatusRequest.json | 0 .../stable/2023-04-01/management.json | 0 .../ManagementGroups/suppressions.yaml | 0 .../ManagementGroups}/tspconfig.yaml | 5 +- .../examples/ListOperations.json | 23 ++++++ .../examples/ServiceGroup_Delete.json | 0 .../examples/ServiceGroup_Get.json | 0 .../examples/ServiceGroup_ListAncestors.json | 0 .../examples/ServiceGroup_Patch.json | 0 .../examples/ServiceGroup_Put.json | 0 .../2024-02-01-preview/serviceGroups.json | 0 .../ServiceGroups/readme.az.md | 15 ++++ .../ServiceGroups/readme.cli.md | 5 ++ .../ServiceGroups/readme.go.md | 11 +++ .../ServiceGroups/readme.java.md | 8 ++ .../ServiceGroups/readme.md | 79 +++++++++++++++++++ .../ServiceGroups/readme.python.md | 17 ++++ .../ServiceGroups/readme.typescript.md | 12 +++ .../ServiceGroups/suppressions.yaml | 3 + 269 files changed, 222 insertions(+), 15 deletions(-) rename specification/{managementgroups => management}/cspell.yaml (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/HierarchySettings.tsp (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/ManagementGroup.tsp (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/SubscriptionUnderManagementGroup.tsp (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/back-compatible.tsp (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/client.tsp (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/AddManagementGroupSubscription.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/CheckManagementGroupNameAvailability.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/DeleteHierarchySettings.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/DeleteManagementGroup.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/GetAllSubscriptionsFromManagementGroup.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/GetDescendants.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/GetEntities.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/GetHierarchySettings.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/GetManagementGroup.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/GetManagementGroupWithAncestors.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/GetManagementGroupWithExpand.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/GetManagementGroupWithExpandAndRecurse.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/GetManagementGroupWithPath.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/GetSubscriptionFromManagementGroup.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/ListHierarchySettings.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/ListManagementGroups.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/ListOperations.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/PatchHierarchySettings.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/PatchManagementGroup.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/PutHierarchySettings.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/PutManagementGroup.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/RemoveManagementGroupSubscription.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/StartTenantBackfillRequest.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/examples/2023-04-01/TenantBackfillStatusRequest.json (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/main.tsp (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/models.tsp (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetGroups.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroupWithExpand.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroupWithExpandAndRecurse.json (100%) rename specification/{managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview => management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview}/examples/ListOperations.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/management.json (100%) create mode 100644 specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/ListOperations.json rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/addManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/createOrUpdateManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/deleteManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupWithExpand.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupWithExpandAndRecurse.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getOperations.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/listManagementGroups.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/removeManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/updateManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/management.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/AddManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/CheckManagementGroupNameAvailability.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/DeleteManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/EntitiesGetHierarchy.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetEntities.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroupWithExpand.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetOperationResult.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/ListManagementGroups.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/PatchManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/PutManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/RemoveManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/management.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/AddManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/CheckManagementGroupNameAvailability.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/DeleteManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/EntitiesGetHierarchy.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetDescendants.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetEntities.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroupWithExpand.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetOperationResult.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/ListManagementGroups.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/PatchManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/PutManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/RemoveManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/StartTenantBackfillRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/TenantBackfillStatusRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/management.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/AddManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckManagementGroupNameAvailability.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckServiceGroupNameAvailability_Available.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckServiceGroupNameAvailability_Unavailable.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/DeleteHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/DeleteManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetAllSubscriptionsFromManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetDescendants.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetEntities.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithAncestors.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithExpand.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithPath.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetSubscriptionFromManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListManagementGroups.json (100%) create mode 100644 specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListOperations.json rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PatchHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PatchManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PutHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PutManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/RemoveManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/StartTenantBackfillRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/TenantBackfillStatusRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/management.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/readme.az.md (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/readme.cli.md (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/readme.go.md (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/readme.md (96%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/readme.nodejs.md (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/readme.python.md (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/readme.ruby.md (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/readme.typescript.md (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/routes.tsp (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/sdk-suppressions.yaml (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/AddManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/CheckManagementGroupNameAvailability.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/DeleteManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetDescendants.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetEntities.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroupWithExpand.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroupWithExpandAndRecurse.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/ListManagementGroups.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/PatchManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/PutManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/RemoveManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/StartTenantBackfillRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/TenantBackfillStatusRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/management.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/AddManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/CheckManagementGroupNameAvailability.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/DeleteHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/DeleteManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetDescendants.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetEntities.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroupWithExpand.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroupWithExpandAndRecurse.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/ListHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/ListManagementGroups.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PatchHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PatchManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PutHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PutManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/RemoveManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/StartTenantBackfillRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/TenantBackfillStatusRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/management.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/AddManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/CheckManagementGroupNameAvailability.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/DeleteHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/DeleteManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetAllSubscriptionsFromManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetDescendants.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetEntities.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroupWithExpand.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroupWithExpandAndRecurse.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetSubscriptionFromManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListManagementGroups.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListOperations.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PatchHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PatchManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PutHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PutManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/RemoveManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/StartTenantBackfillRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/TenantBackfillStatusRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/management.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/AddManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/CheckManagementGroupNameAvailability.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/DeleteHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/DeleteManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetAllSubscriptionsFromManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetDescendants.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetEntities.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithAncestors.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithExpand.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithExpandAndRecurse.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithPath.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetSubscriptionFromManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListManagementGroups.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListOperations.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PatchHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PatchManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PutHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PutManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/RemoveManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/StartTenantBackfillRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/TenantBackfillStatusRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/management.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/AddManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/CheckManagementGroupNameAvailability.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/DeleteHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/DeleteManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetAllSubscriptionsFromManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetDescendants.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetEntities.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithAncestors.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithExpand.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithExpandAndRecurse.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithPath.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetSubscriptionFromManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListManagementGroups.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListOperations.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PatchHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PatchManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PutHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PutManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/RemoveManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/StartTenantBackfillRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/TenantBackfillStatusRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/management.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/AddManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/CheckManagementGroupNameAvailability.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetAllSubscriptionsFromManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetDescendants.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetEntities.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithAncestors.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpand.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpandAndRecurse.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithPath.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetSubscriptionFromManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListManagementGroups.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListOperations.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutHierarchySettings.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutManagementGroup.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/RemoveManagementGroupSubscription.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/StartTenantBackfillRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/TenantBackfillStatusRequest.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/management.json (100%) rename specification/{managementgroups => management}/resource-manager/Microsoft.Management/ManagementGroups/suppressions.yaml (100%) rename specification/{managementgroups/ManagementGroups.Management => management/resource-manager/Microsoft.Management/ManagementGroups}/tspconfig.yaml (91%) create mode 100644 specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ListOperations.json rename specification/{managementgroups/resource-manager/Microsoft.Management/ManagementGroups => management/resource-manager/Microsoft.Management/ServiceGroups}/preview/2024-02-01-preview/examples/ServiceGroup_Delete.json (100%) rename specification/{managementgroups/resource-manager/Microsoft.Management/ManagementGroups => management/resource-manager/Microsoft.Management/ServiceGroups}/preview/2024-02-01-preview/examples/ServiceGroup_Get.json (100%) rename specification/{managementgroups/resource-manager/Microsoft.Management/ManagementGroups => management/resource-manager/Microsoft.Management/ServiceGroups}/preview/2024-02-01-preview/examples/ServiceGroup_ListAncestors.json (100%) rename specification/{managementgroups/resource-manager/Microsoft.Management/ManagementGroups => management/resource-manager/Microsoft.Management/ServiceGroups}/preview/2024-02-01-preview/examples/ServiceGroup_Patch.json (100%) rename specification/{managementgroups/resource-manager/Microsoft.Management/ManagementGroups => management/resource-manager/Microsoft.Management/ServiceGroups}/preview/2024-02-01-preview/examples/ServiceGroup_Put.json (100%) rename specification/{managementgroups/resource-manager/Microsoft.Management/ManagementGroups => management/resource-manager/Microsoft.Management/ServiceGroups}/preview/2024-02-01-preview/serviceGroups.json (100%) create mode 100644 specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.az.md create mode 100644 specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.cli.md create mode 100644 specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.go.md create mode 100644 specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.java.md create mode 100644 specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.md create mode 100644 specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.python.md create mode 100644 specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.typescript.md create mode 100644 specification/management/resource-manager/Microsoft.Management/ServiceGroups/suppressions.yaml diff --git a/specification/managementgroups/cspell.yaml b/specification/management/cspell.yaml similarity index 100% rename from specification/managementgroups/cspell.yaml rename to specification/management/cspell.yaml diff --git a/specification/managementgroups/ManagementGroups.Management/HierarchySettings.tsp b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/HierarchySettings.tsp similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/HierarchySettings.tsp rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/HierarchySettings.tsp diff --git a/specification/managementgroups/ManagementGroups.Management/ManagementGroup.tsp b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/ManagementGroup.tsp similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/ManagementGroup.tsp rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/ManagementGroup.tsp diff --git a/specification/managementgroups/ManagementGroups.Management/SubscriptionUnderManagementGroup.tsp b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/SubscriptionUnderManagementGroup.tsp similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/SubscriptionUnderManagementGroup.tsp rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/SubscriptionUnderManagementGroup.tsp diff --git a/specification/managementgroups/ManagementGroups.Management/back-compatible.tsp b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/back-compatible.tsp similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/back-compatible.tsp rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/back-compatible.tsp diff --git a/specification/managementgroups/ManagementGroups.Management/client.tsp b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/client.tsp similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/client.tsp rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/client.tsp diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/AddManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/AddManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/AddManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/AddManagementGroupSubscription.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/CheckManagementGroupNameAvailability.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/CheckManagementGroupNameAvailability.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/CheckManagementGroupNameAvailability.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/CheckManagementGroupNameAvailability.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/DeleteHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/DeleteHierarchySettings.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/DeleteHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/DeleteHierarchySettings.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/DeleteManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/DeleteManagementGroup.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/DeleteManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/DeleteManagementGroup.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetAllSubscriptionsFromManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetAllSubscriptionsFromManagementGroup.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetAllSubscriptionsFromManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetAllSubscriptionsFromManagementGroup.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetDescendants.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetDescendants.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetDescendants.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetDescendants.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetEntities.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetEntities.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetEntities.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetEntities.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetHierarchySettings.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetHierarchySettings.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetManagementGroup.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetManagementGroup.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithAncestors.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetManagementGroupWithAncestors.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithAncestors.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetManagementGroupWithAncestors.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithExpand.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetManagementGroupWithExpand.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithExpand.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetManagementGroupWithExpand.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithExpandAndRecurse.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetManagementGroupWithExpandAndRecurse.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithExpandAndRecurse.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetManagementGroupWithExpandAndRecurse.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithPath.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetManagementGroupWithPath.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetManagementGroupWithPath.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetManagementGroupWithPath.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetSubscriptionFromManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetSubscriptionFromManagementGroup.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/GetSubscriptionFromManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/GetSubscriptionFromManagementGroup.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/ListHierarchySettings.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/ListHierarchySettings.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListManagementGroups.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/ListManagementGroups.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListManagementGroups.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/ListManagementGroups.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListOperations.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/ListOperations.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/ListOperations.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/ListOperations.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PatchHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/PatchHierarchySettings.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PatchHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/PatchHierarchySettings.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PatchManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/PatchManagementGroup.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PatchManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/PatchManagementGroup.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PutHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/PutHierarchySettings.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PutHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/PutHierarchySettings.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PutManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/PutManagementGroup.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/PutManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/PutManagementGroup.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/RemoveManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/RemoveManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/RemoveManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/RemoveManagementGroupSubscription.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/StartTenantBackfillRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/StartTenantBackfillRequest.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/StartTenantBackfillRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/StartTenantBackfillRequest.json diff --git a/specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/TenantBackfillStatusRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/TenantBackfillStatusRequest.json similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/examples/2023-04-01/TenantBackfillStatusRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/examples/2023-04-01/TenantBackfillStatusRequest.json diff --git a/specification/managementgroups/ManagementGroups.Management/main.tsp b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/main.tsp similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/main.tsp rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/main.tsp diff --git a/specification/managementgroups/ManagementGroups.Management/models.tsp b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/models.tsp similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/models.tsp rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/models.tsp diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetGroups.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetGroups.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetGroups.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetGroups.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroupWithExpand.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroupWithExpand.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroupWithExpand.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroupWithExpand.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroupWithExpandAndRecurse.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroupWithExpandAndRecurse.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroupWithExpandAndRecurse.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/GetManagementGroupWithExpandAndRecurse.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListOperations.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/ListOperations.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListOperations.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/examples/ListOperations.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/management.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/management.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/management.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-08-31-preview/management.json diff --git a/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/ListOperations.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/ListOperations.json new file mode 100644 index 000000000000..d22d6304309d --- /dev/null +++ b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/ListOperations.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2024-02-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "display": { + "provider": "aaaaaaaaaaaaaaaaaaaaa", + "resource": "aaaaaaaaaaaaa", + "operation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "description": "aaaaaaaaaaaaaaaaaaaaaa" + } + } + ], + "nextLink": "aaaaaaaaaaaaaaaaaaa" + } + } + } +} diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/addManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/addManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/addManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/addManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/createOrUpdateManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/createOrUpdateManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/createOrUpdateManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/createOrUpdateManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/deleteManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/deleteManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/deleteManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/deleteManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupWithExpand.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupWithExpand.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupWithExpand.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupWithExpand.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupWithExpandAndRecurse.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupWithExpandAndRecurse.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupWithExpandAndRecurse.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getManagementGroupWithExpandAndRecurse.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getOperations.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getOperations.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getOperations.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/getOperations.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/listManagementGroups.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/listManagementGroups.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/listManagementGroups.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/listManagementGroups.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/removeManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/removeManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/removeManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/removeManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/updateManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/updateManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/updateManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/examples/updateManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/management.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/management.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/management.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2017-11-01-preview/management.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/AddManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/AddManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/AddManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/AddManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/CheckManagementGroupNameAvailability.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/CheckManagementGroupNameAvailability.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/CheckManagementGroupNameAvailability.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/CheckManagementGroupNameAvailability.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/DeleteManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/DeleteManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/DeleteManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/DeleteManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/EntitiesGetHierarchy.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/EntitiesGetHierarchy.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/EntitiesGetHierarchy.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/EntitiesGetHierarchy.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetEntities.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetEntities.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetEntities.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetEntities.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroupWithExpand.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroupWithExpand.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroupWithExpand.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroupWithExpand.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetOperationResult.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetOperationResult.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetOperationResult.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/GetOperationResult.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/ListManagementGroups.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/ListManagementGroups.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/ListManagementGroups.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/ListManagementGroups.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/PatchManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/PatchManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/PatchManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/PatchManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/PutManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/PutManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/PutManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/PutManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/RemoveManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/RemoveManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/RemoveManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/examples/RemoveManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/management.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/management.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/management.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-01-01-preview/management.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/AddManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/AddManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/AddManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/AddManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/CheckManagementGroupNameAvailability.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/CheckManagementGroupNameAvailability.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/CheckManagementGroupNameAvailability.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/CheckManagementGroupNameAvailability.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/DeleteManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/DeleteManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/DeleteManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/DeleteManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/EntitiesGetHierarchy.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/EntitiesGetHierarchy.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/EntitiesGetHierarchy.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/EntitiesGetHierarchy.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetDescendants.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetDescendants.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetDescendants.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetDescendants.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetEntities.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetEntities.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetEntities.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetEntities.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroupWithExpand.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroupWithExpand.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroupWithExpand.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroupWithExpand.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetOperationResult.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetOperationResult.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetOperationResult.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/GetOperationResult.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/ListManagementGroups.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/ListManagementGroups.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/ListManagementGroups.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/ListManagementGroups.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/PatchManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/PatchManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/PatchManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/PatchManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/PutManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/PutManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/PutManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/PutManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/RemoveManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/RemoveManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/RemoveManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/RemoveManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/StartTenantBackfillRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/StartTenantBackfillRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/StartTenantBackfillRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/StartTenantBackfillRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/TenantBackfillStatusRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/TenantBackfillStatusRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/TenantBackfillStatusRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/examples/TenantBackfillStatusRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/management.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/management.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/management.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2018-03-01-preview/management.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/AddManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/AddManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/AddManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/AddManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckManagementGroupNameAvailability.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckManagementGroupNameAvailability.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckManagementGroupNameAvailability.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckManagementGroupNameAvailability.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckServiceGroupNameAvailability_Available.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckServiceGroupNameAvailability_Available.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckServiceGroupNameAvailability_Available.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckServiceGroupNameAvailability_Available.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckServiceGroupNameAvailability_Unavailable.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckServiceGroupNameAvailability_Unavailable.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckServiceGroupNameAvailability_Unavailable.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/CheckServiceGroupNameAvailability_Unavailable.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/DeleteHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/DeleteHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/DeleteHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/DeleteHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/DeleteManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/DeleteManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/DeleteManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/DeleteManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetAllSubscriptionsFromManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetAllSubscriptionsFromManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetAllSubscriptionsFromManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetAllSubscriptionsFromManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetDescendants.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetDescendants.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetDescendants.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetDescendants.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetEntities.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetEntities.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetEntities.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetEntities.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithAncestors.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithAncestors.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithAncestors.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithAncestors.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithExpand.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithExpand.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithExpand.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithExpand.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithExpandAndRecurse.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithPath.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithPath.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithPath.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetManagementGroupWithPath.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetSubscriptionFromManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetSubscriptionFromManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetSubscriptionFromManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/GetSubscriptionFromManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListManagementGroups.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListManagementGroups.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListManagementGroups.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListManagementGroups.json diff --git a/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListOperations.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListOperations.json new file mode 100644 index 000000000000..d22d6304309d --- /dev/null +++ b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ListOperations.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2024-02-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "display": { + "provider": "aaaaaaaaaaaaaaaaaaaaa", + "resource": "aaaaaaaaaaaaa", + "operation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "description": "aaaaaaaaaaaaaaaaaaaaaa" + } + } + ], + "nextLink": "aaaaaaaaaaaaaaaaaaa" + } + } + } +} diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PatchHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PatchHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PatchHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PatchHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PatchManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PatchManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PatchManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PatchManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PutHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PutHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PutHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PutHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PutManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PutManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PutManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/PutManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/RemoveManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/RemoveManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/RemoveManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/RemoveManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/StartTenantBackfillRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/StartTenantBackfillRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/StartTenantBackfillRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/StartTenantBackfillRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/TenantBackfillStatusRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/TenantBackfillStatusRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/TenantBackfillStatusRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/TenantBackfillStatusRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/management.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/management.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/management.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/management.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.az.md b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.az.md similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.az.md rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.az.md diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.cli.md b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.cli.md similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.cli.md rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.cli.md diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.go.md b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.go.md similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.go.md rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.go.md diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.md b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.md similarity index 96% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.md rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.md index 03b68f8d5fb0..9b2247b6d0ee 100644 --- a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.md +++ b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.md @@ -36,7 +36,6 @@ These settings apply only when `--tag=package-2024-02-preview` is specified on t ```yaml $(tag) == 'package-2024-02-preview' input-file: - preview/2024-02-01-preview/management.json - - preview/2024-02-01-preview/serviceGroups.json ``` ### Tag: package-2023-04 @@ -127,18 +126,6 @@ These settings apply only when `--tag=package-2017-08` is specified on the comma input-file: - preview/2017-08-31-preview/management.json ``` ---- - -# Suppression - -``` yaml -suppressions: - - code: TenantLevelAPIsNotAllowed - reason: These are tenant level APIs and resource types by design. - from: serviceGroups.json - where: $.paths["/providers/Microsoft.Management/serviceGroups/{serviceGroupName}"] -``` ---- # Code Generation diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.nodejs.md b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.nodejs.md similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.nodejs.md rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.nodejs.md diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.python.md b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.python.md similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.python.md rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.python.md diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.ruby.md b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.ruby.md similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.ruby.md rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.ruby.md diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.typescript.md b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.typescript.md similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/readme.typescript.md rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/readme.typescript.md diff --git a/specification/managementgroups/ManagementGroups.Management/routes.tsp b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/routes.tsp similarity index 100% rename from specification/managementgroups/ManagementGroups.Management/routes.tsp rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/routes.tsp diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/sdk-suppressions.yaml b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/sdk-suppressions.yaml similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/sdk-suppressions.yaml rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/sdk-suppressions.yaml diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/AddManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/AddManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/AddManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/AddManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/CheckManagementGroupNameAvailability.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/CheckManagementGroupNameAvailability.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/CheckManagementGroupNameAvailability.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/CheckManagementGroupNameAvailability.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/DeleteManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/DeleteManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/DeleteManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/DeleteManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetDescendants.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetDescendants.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetDescendants.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetDescendants.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetEntities.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetEntities.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetEntities.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetEntities.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroupWithExpand.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroupWithExpand.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroupWithExpand.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroupWithExpand.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroupWithExpandAndRecurse.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroupWithExpandAndRecurse.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroupWithExpandAndRecurse.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/GetManagementGroupWithExpandAndRecurse.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/ListManagementGroups.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/ListManagementGroups.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/ListManagementGroups.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/ListManagementGroups.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/PatchManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/PatchManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/PatchManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/PatchManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/PutManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/PutManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/PutManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/PutManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/RemoveManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/RemoveManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/RemoveManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/RemoveManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/StartTenantBackfillRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/StartTenantBackfillRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/StartTenantBackfillRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/StartTenantBackfillRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/TenantBackfillStatusRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/TenantBackfillStatusRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/TenantBackfillStatusRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/examples/TenantBackfillStatusRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/management.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/management.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/management.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2019-11-01/management.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/AddManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/AddManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/AddManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/AddManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/CheckManagementGroupNameAvailability.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/CheckManagementGroupNameAvailability.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/CheckManagementGroupNameAvailability.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/CheckManagementGroupNameAvailability.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/DeleteHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/DeleteHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/DeleteHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/DeleteHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/DeleteManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/DeleteManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/DeleteManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/DeleteManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetDescendants.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetDescendants.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetDescendants.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetDescendants.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetEntities.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetEntities.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetEntities.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetEntities.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroupWithExpand.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroupWithExpand.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroupWithExpand.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroupWithExpand.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroupWithExpandAndRecurse.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroupWithExpandAndRecurse.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroupWithExpandAndRecurse.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/GetManagementGroupWithExpandAndRecurse.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/ListHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/ListHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/ListHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/ListHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/ListManagementGroups.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/ListManagementGroups.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/ListManagementGroups.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/ListManagementGroups.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PatchHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PatchHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PatchHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PatchHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PatchManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PatchManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PatchManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PatchManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PutHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PutHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PutHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PutHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PutManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PutManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PutManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/PutManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/RemoveManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/RemoveManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/RemoveManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/RemoveManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/StartTenantBackfillRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/StartTenantBackfillRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/StartTenantBackfillRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/StartTenantBackfillRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/TenantBackfillStatusRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/TenantBackfillStatusRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/TenantBackfillStatusRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/examples/TenantBackfillStatusRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/management.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/management.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/management.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-02-01/management.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/AddManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/AddManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/AddManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/AddManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/CheckManagementGroupNameAvailability.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/CheckManagementGroupNameAvailability.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/CheckManagementGroupNameAvailability.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/CheckManagementGroupNameAvailability.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/DeleteHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/DeleteHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/DeleteHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/DeleteHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/DeleteManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/DeleteManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/DeleteManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/DeleteManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetAllSubscriptionsFromManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetAllSubscriptionsFromManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetAllSubscriptionsFromManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetAllSubscriptionsFromManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetDescendants.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetDescendants.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetDescendants.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetDescendants.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetEntities.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetEntities.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetEntities.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetEntities.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroupWithExpand.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroupWithExpand.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroupWithExpand.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroupWithExpand.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroupWithExpandAndRecurse.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroupWithExpandAndRecurse.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroupWithExpandAndRecurse.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetManagementGroupWithExpandAndRecurse.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetSubscriptionFromManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetSubscriptionFromManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetSubscriptionFromManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/GetSubscriptionFromManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListManagementGroups.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListManagementGroups.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListManagementGroups.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListManagementGroups.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListOperations.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListOperations.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListOperations.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/ListOperations.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PatchHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PatchHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PatchHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PatchHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PatchManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PatchManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PatchManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PatchManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PutHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PutHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PutHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PutHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PutManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PutManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PutManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/PutManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/RemoveManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/RemoveManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/RemoveManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/RemoveManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/StartTenantBackfillRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/StartTenantBackfillRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/StartTenantBackfillRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/StartTenantBackfillRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/TenantBackfillStatusRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/TenantBackfillStatusRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/TenantBackfillStatusRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/examples/TenantBackfillStatusRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/management.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/management.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/management.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-05-01/management.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/AddManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/AddManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/AddManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/AddManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/CheckManagementGroupNameAvailability.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/CheckManagementGroupNameAvailability.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/CheckManagementGroupNameAvailability.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/CheckManagementGroupNameAvailability.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/DeleteHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/DeleteHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/DeleteHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/DeleteHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/DeleteManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/DeleteManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/DeleteManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/DeleteManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetAllSubscriptionsFromManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetAllSubscriptionsFromManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetAllSubscriptionsFromManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetAllSubscriptionsFromManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetDescendants.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetDescendants.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetDescendants.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetDescendants.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetEntities.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetEntities.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetEntities.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetEntities.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithAncestors.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithAncestors.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithAncestors.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithAncestors.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithExpand.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithExpand.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithExpand.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithExpand.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithExpandAndRecurse.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithExpandAndRecurse.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithExpandAndRecurse.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithExpandAndRecurse.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithPath.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithPath.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithPath.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetManagementGroupWithPath.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetSubscriptionFromManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetSubscriptionFromManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetSubscriptionFromManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/GetSubscriptionFromManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListManagementGroups.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListManagementGroups.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListManagementGroups.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListManagementGroups.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListOperations.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListOperations.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListOperations.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/ListOperations.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PatchHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PatchHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PatchHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PatchHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PatchManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PatchManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PatchManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PatchManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PutHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PutHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PutHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PutHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PutManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PutManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PutManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/PutManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/RemoveManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/RemoveManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/RemoveManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/RemoveManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/StartTenantBackfillRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/StartTenantBackfillRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/StartTenantBackfillRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/StartTenantBackfillRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/TenantBackfillStatusRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/TenantBackfillStatusRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/TenantBackfillStatusRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/examples/TenantBackfillStatusRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/management.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/management.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/management.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2020-10-01/management.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/AddManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/AddManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/AddManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/AddManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/CheckManagementGroupNameAvailability.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/CheckManagementGroupNameAvailability.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/CheckManagementGroupNameAvailability.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/CheckManagementGroupNameAvailability.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/DeleteHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/DeleteHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/DeleteHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/DeleteHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/DeleteManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/DeleteManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/DeleteManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/DeleteManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetAllSubscriptionsFromManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetAllSubscriptionsFromManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetAllSubscriptionsFromManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetAllSubscriptionsFromManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetDescendants.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetDescendants.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetDescendants.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetDescendants.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetEntities.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetEntities.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetEntities.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetEntities.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithAncestors.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithAncestors.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithAncestors.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithAncestors.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithExpand.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithExpand.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithExpand.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithExpand.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithExpandAndRecurse.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithExpandAndRecurse.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithExpandAndRecurse.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithExpandAndRecurse.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithPath.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithPath.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithPath.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetManagementGroupWithPath.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetSubscriptionFromManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetSubscriptionFromManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetSubscriptionFromManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/GetSubscriptionFromManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListManagementGroups.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListManagementGroups.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListManagementGroups.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListManagementGroups.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListOperations.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListOperations.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListOperations.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/ListOperations.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PatchHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PatchHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PatchHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PatchHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PatchManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PatchManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PatchManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PatchManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PutHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PutHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PutHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PutHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PutManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PutManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PutManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/PutManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/RemoveManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/RemoveManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/RemoveManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/RemoveManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/StartTenantBackfillRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/StartTenantBackfillRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/StartTenantBackfillRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/StartTenantBackfillRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/TenantBackfillStatusRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/TenantBackfillStatusRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/TenantBackfillStatusRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/examples/TenantBackfillStatusRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/management.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/management.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/management.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2021-04-01/management.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/AddManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/AddManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/AddManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/AddManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/CheckManagementGroupNameAvailability.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/CheckManagementGroupNameAvailability.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/CheckManagementGroupNameAvailability.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/CheckManagementGroupNameAvailability.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/DeleteManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetAllSubscriptionsFromManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetAllSubscriptionsFromManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetAllSubscriptionsFromManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetAllSubscriptionsFromManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetDescendants.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetDescendants.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetDescendants.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetDescendants.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetEntities.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetEntities.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetEntities.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetEntities.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithAncestors.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithAncestors.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithAncestors.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithAncestors.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpand.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpand.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpand.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpand.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpandAndRecurse.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpandAndRecurse.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpandAndRecurse.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithExpandAndRecurse.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithPath.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithPath.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithPath.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetManagementGroupWithPath.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetSubscriptionFromManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetSubscriptionFromManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetSubscriptionFromManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/GetSubscriptionFromManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListManagementGroups.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListManagementGroups.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListManagementGroups.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListManagementGroups.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListOperations.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListOperations.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListOperations.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/ListOperations.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PatchManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutHierarchySettings.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutHierarchySettings.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutHierarchySettings.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutHierarchySettings.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutManagementGroup.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutManagementGroup.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutManagementGroup.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/PutManagementGroup.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/RemoveManagementGroupSubscription.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/RemoveManagementGroupSubscription.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/RemoveManagementGroupSubscription.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/RemoveManagementGroupSubscription.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/StartTenantBackfillRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/StartTenantBackfillRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/StartTenantBackfillRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/StartTenantBackfillRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/TenantBackfillStatusRequest.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/TenantBackfillStatusRequest.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/TenantBackfillStatusRequest.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/examples/TenantBackfillStatusRequest.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/management.json b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/management.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/management.json rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/stable/2023-04-01/management.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/suppressions.yaml b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/suppressions.yaml similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/suppressions.yaml rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/suppressions.yaml diff --git a/specification/managementgroups/ManagementGroups.Management/tspconfig.yaml b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/tspconfig.yaml similarity index 91% rename from specification/managementgroups/ManagementGroups.Management/tspconfig.yaml rename to specification/management/resource-manager/Microsoft.Management/ManagementGroups/tspconfig.yaml index 622c7549489a..3890144e9948 100644 --- a/specification/managementgroups/ManagementGroups.Management/tspconfig.yaml +++ b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/tspconfig.yaml @@ -6,11 +6,12 @@ emit: options: "@azure-tools/typespec-autorest": omit-unreachable-types: true - emitter-output-dir: "{project-root}/.." + emitter-output-dir: "{project-root}" azure-resource-provider-folder: "resource-manager" - output-file: "{azure-resource-provider-folder}/{service-name}/ManagementGroups/{version-status}/{version}/management.json" + output-file: "{version-status}/{version}/management.json" emit-lro-options: "all" examples-dir: "{project-root}/examples" + arm-types-dir: "{project-root}/../../../../common-types/resource-management" "@azure-tools/typespec-csharp": flavor: azure emitter-output-dir: "{output-dir}/{service-dir}/Azure.ResourceManager.ManagementGroups" diff --git a/specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ListOperations.json b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ListOperations.json new file mode 100644 index 000000000000..d22d6304309d --- /dev/null +++ b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ListOperations.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2024-02-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "display": { + "provider": "aaaaaaaaaaaaaaaaaaaaa", + "resource": "aaaaaaaaaaaaa", + "operation": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "description": "aaaaaaaaaaaaaaaaaaaaaa" + } + } + ], + "nextLink": "aaaaaaaaaaaaaaaaaaa" + } + } + } +} diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ServiceGroup_Delete.json b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ServiceGroup_Delete.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ServiceGroup_Delete.json rename to specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ServiceGroup_Delete.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ServiceGroup_Get.json b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ServiceGroup_Get.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ServiceGroup_Get.json rename to specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ServiceGroup_Get.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ServiceGroup_ListAncestors.json b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ServiceGroup_ListAncestors.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ServiceGroup_ListAncestors.json rename to specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ServiceGroup_ListAncestors.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ServiceGroup_Patch.json b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ServiceGroup_Patch.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ServiceGroup_Patch.json rename to specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ServiceGroup_Patch.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ServiceGroup_Put.json b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ServiceGroup_Put.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/examples/ServiceGroup_Put.json rename to specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/examples/ServiceGroup_Put.json diff --git a/specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/serviceGroups.json b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/serviceGroups.json similarity index 100% rename from specification/managementgroups/resource-manager/Microsoft.Management/ManagementGroups/preview/2024-02-01-preview/serviceGroups.json rename to specification/management/resource-manager/Microsoft.Management/ServiceGroups/preview/2024-02-01-preview/serviceGroups.json diff --git a/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.az.md b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.az.md new file mode 100644 index 000000000000..21e5c8b82490 --- /dev/null +++ b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.az.md @@ -0,0 +1,15 @@ +## AZ + +These settings apply only when `--az` is specified on the command line. + +``` yaml $(az) +az: + extensions: servicegroup + namespace: azure.mgmt.servicegroup + package-name: azure-mgmt-servicegroup + client-subscription-bound: false + client-base-url-bound: true +az-output-folder: $(azure-cli-extension-folder)/src/servicegroup +python-sdk-output-folder: "$(az-output-folder)/azext_servicegroup/vendored_sdks/servicegroup" + +``` diff --git a/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.cli.md b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.cli.md new file mode 100644 index 000000000000..c41d5e8d8f67 --- /dev/null +++ b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.cli.md @@ -0,0 +1,5 @@ + CLI + +These settings apply only when `--cli` is specified on the command line. + + diff --git a/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.go.md b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.go.md new file mode 100644 index 000000000000..ba4e6255417c --- /dev/null +++ b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.go.md @@ -0,0 +1,11 @@ +## Go + +These settings apply only when `--go` is specified on the command line. + +``` yaml $(go) && $(track2) +license-header: MICROSOFT_MIT_NO_VERSION +module-name: sdk/resourcemanager/management/armservicegroups +module: github.com/Azure/azure-sdk-for-go/$(module-name) +output-folder: $(go-sdk-folder)/$(module-name) +azure-arm: true +``` diff --git a/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.java.md b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.java.md new file mode 100644 index 000000000000..f6556c056108 --- /dev/null +++ b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.java.md @@ -0,0 +1,8 @@ +## Java + +These settings apply only when --java is specified on the command line. + +``` yaml $(java) +service-name: Service Groups +title: ServiceGroupsManagementClient +``` diff --git a/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.md b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.md new file mode 100644 index 000000000000..68f189ee8b60 --- /dev/null +++ b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.md @@ -0,0 +1,79 @@ +# Service Groups + +> see https://aka.ms/autorest + +This is the AutoRest configuration file for Service Groups. + +--- + +## Getting Started + +To build the SDK for Service Groups, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: + +> `autorest` + +To see additional help and options, run: + +> `autorest --help` + +--- + +## Configuration + +### Basic Information + +These are the global settings for the API. + +``` yaml +openapi-type: arm +tag: package-2024-02-preview +``` + +### Tag: package-2024-02-preview + +These settings apply only when `--tag=package-2024-02-preview` is specified on the command line. + +```yaml $(tag) == 'package-2024-02-preview' +input-file: + - preview/2024-02-01-preview/serviceGroups.json +v3: true +``` +--- + +# Suppression + +``` yaml +suppressions: + - code: TenantLevelAPIsNotAllowed + reason: These are tenant level APIs and resource types by design. + from: serviceGroups.json + where: $.paths["/providers/Microsoft.Management/serviceGroups/{serviceGroupName}"] +``` +--- + +# Code Generation + +## Swagger to SDK + +This section describes what SDK should be generated by the automatic system. +This is not used by Autorest itself. + +``` yaml $(swagger-to-sdk) +swagger-to-sdk: + - repo: azure-sdk-for-python + - repo: azure-sdk-for-java + - repo: azure-sdk-for-go + - repo: azure-sdk-for-js + - repo: azure-cli-extensions + - repo: azure-resource-manager-schemas + - repo: azure-powershell +``` + +## Python + +See configuration in [readme.python.md](./readme.python.md) + + +## Go + +See configuration in [readme.go.md](./readme.go.md) diff --git a/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.python.md b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.python.md new file mode 100644 index 000000000000..cdd64da9de6d --- /dev/null +++ b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.python.md @@ -0,0 +1,17 @@ +## Python + +These settings apply only when `--python` is specified on the command line. +Please also specify `--python-sdks-folder=<path to the root directory of your azure-sdk-for-python clone>`. + +```yaml $(python) +azure-arm: true +license-header: MICROSOFT_MIT_NO_VERSION +namespace: azure.mgmt.servicegroups +package-name: azure-mgmt-management +package-version: 1.0.0b1 +clear-output-folder: true +``` +``` yaml $(python) +no-namespace-folders: true +output-folder: $(python-sdks-folder)/management/azure-mgmt-management/azure/mgmt/servicegroups +``` diff --git a/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.typescript.md b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.typescript.md new file mode 100644 index 000000000000..91e8d9863767 --- /dev/null +++ b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/readme.typescript.md @@ -0,0 +1,12 @@ +## TypeScript + +These settings apply only when `--typescript` is specified on the command line. +Please also specify `--typescript-sdks-folder=<path to root folder of your azure-sdk-for-js clone>`. + +``` yaml $(typescript) +typescript: + azure-arm: true + package-name: "@azure/arm-servicegroups" + output-folder: "$(typescript-sdks-folder)/sdk/management/arm-servicegroups" + generate-metadata: true +``` diff --git a/specification/management/resource-manager/Microsoft.Management/ServiceGroups/suppressions.yaml b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/suppressions.yaml new file mode 100644 index 000000000000..a360a1d026a4 --- /dev/null +++ b/specification/management/resource-manager/Microsoft.Management/ServiceGroups/suppressions.yaml @@ -0,0 +1,3 @@ +- tool: TypeSpecRequirement + path: ./preview/2024-02-01-preview/*.json + reason: Brownfield service not ready to migrate \ No newline at end of file From 10daf6e1864160c05f7401c5f74ab21de72720d4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 21 Dec 2025 20:58:53 -0800 Subject: [PATCH 074/117] build(deps-dev): bump @azure-tools/spec-gen-sdk from 0.9.5 to 0.9.6 (#39364) Bumps [@azure-tools/spec-gen-sdk](https://github.com/Azure/azure-sdk-tools) from 0.9.5 to 0.9.6. - [Release notes](https://github.com/Azure/azure-sdk-tools/releases) - [Commits](https://github.com/Azure/azure-sdk-tools/commits) --- updated-dependencies: - dependency-name: "@azure-tools/spec-gen-sdk" dependency-version: 0.9.6 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index ac853e483c17..794dc72651de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -841,9 +841,9 @@ "link": true }, "node_modules/@azure-tools/spec-gen-sdk": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@azure-tools/spec-gen-sdk/-/spec-gen-sdk-0.9.5.tgz", - "integrity": "sha512-s4q659DvE6DVFpfZkW0WO2QLccUTmj9QWFcVrIUcbA+wU4ajbzBDX3dq2DuZIfC+pELiqZZogLQg0DcdV5DGiA==", + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@azure-tools/spec-gen-sdk/-/spec-gen-sdk-0.9.6.tgz", + "integrity": "sha512-a+TBXCcDVECTPUledv3EnNsLfB6Fs/tND0fs6rDQy51f0q6DRh75XOjzjjpcAPL82NXMnNFpezLIlctmWqdBxA==", "dev": true, "license": "MIT", "dependencies": { From 34055f27a4e67f0555408a2bc1156c12051cbdb4 Mon Sep 17 00:00:00 2001 From: Arthur Ma <mars.arthur@263.net> Date: Mon, 22 Dec 2025 14:06:22 +0800 Subject: [PATCH 075/117] Updete client settings for VirtualEnclaves (#39355) --- specification/mission/Mission.Management/client.tsp | 7 +++++++ specification/mission/Mission.Management/tspconfig.yaml | 5 +---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/specification/mission/Mission.Management/client.tsp b/specification/mission/Mission.Management/client.tsp index 6e5d33a3973e..9154d1e0bc43 100644 --- a/specification/mission/Mission.Management/client.tsp +++ b/specification/mission/Mission.Management/client.tsp @@ -132,5 +132,12 @@ using Microsoft.Mission; "EnclaveDefaultSettingsPatch", "csharp" ); +@@clientName(ApprovalActionRequest, "ApprovalActionContent", "csharp"); +@@clientName(CheckAddressSpaceAvailabilityRequest, + "CheckAddressSpaceAvailabilityContent", + "csharp" +); +@@clientName(ServiceIdentifier.PrivateDNSZones, "PrivateDnsZones", "csharp"); +@@clientName(ActionPerformed, "ApproverActionPerformed", "csharp"); @@clientName(Microsoft.Mission, "VirtualEnclavesMgmtClient", "python"); diff --git a/specification/mission/Mission.Management/tspconfig.yaml b/specification/mission/Mission.Management/tspconfig.yaml index 08745729c2dc..ef0a0fffd6ce 100644 --- a/specification/mission/Mission.Management/tspconfig.yaml +++ b/specification/mission/Mission.Management/tspconfig.yaml @@ -35,10 +35,7 @@ options: experimental-extensible-enums: true package-details: name: "@azure/arm-virtualenclaves" - "@azure-tools/typespec-csharp": - flavor: azure - clear-output-folder: true - model-namespace: true + "@azure-typespec/http-client-csharp-mgmt": namespace: "Azure.ResourceManager.VirtualEnclaves" emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" linter: From 9e42299bb759f720eb4751496d5b13df26d87302 Mon Sep 17 00:00:00 2001 From: Arthur Ma <mars.arthur@263.net> Date: Mon, 22 Dec 2025 14:06:44 +0800 Subject: [PATCH 076/117] Update client settings for StorageMover (#39329) --- .../StorageMover.Management/client.tsp | 16 ++++++++++++++++ .../StorageMover.Management/tspconfig.yaml | 7 ++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/specification/storagemover/StorageMover.Management/client.tsp b/specification/storagemover/StorageMover.Management/client.tsp index 8ad47a7b3c3a..a5bda2f454ad 100644 --- a/specification/storagemover/StorageMover.Management/client.tsp +++ b/specification/storagemover/StorageMover.Management/client.tsp @@ -5,6 +5,11 @@ using Azure.ClientGenerator.Core; using Microsoft.StorageMover; using Azure.Core; +@@alternateType(Azure.ResourceManager.ProxyResource.id, + armResourceIdentifier, + "csharp" +); + @@clientName(Endpoint, "StorageMoverEndpoint", "csharp"); @@clientName(EndpointBaseUpdateParameters, "StorageMoverEndpointPatch", @@ -25,6 +30,10 @@ using Azure.Core; @@clientName(WeeklyRecurrence, "ScheduleWeeklyRecurrence", "csharp"); @@clientName(Recurrence, "ScheduleRecurrence", "csharp"); @@clientName(Time, "ScheduleTime", "csharp"); +@@clientName(JobRunResourceId.jobRunResourceId, + "JobRunResourceIdValue", + "csharp" +); @@alternateType(JobDefinitionProperties.agentResourceId, armResourceIdentifier, @@ -71,6 +80,13 @@ using Azure.Core; "UsernameUriString", "csharp" ); +@@clientName(ConnectionProperties, + "StorageMoverConnectionProperties", + "csharp" +); +@@clientName(Connection, "StorageMoverConnection", "csharp"); +@@clientName(ConnectionStatus, "StorageMoverConnectionStatus", "csharp"); + @@clientName(Minute.`0`, "Zero", "csharp,go,python,javascript"); @@clientName(Minute.`30`, "Thirty", "csharp,go,python,javascript"); @@usage(JobRun, Usage.input, "csharp"); diff --git a/specification/storagemover/StorageMover.Management/tspconfig.yaml b/specification/storagemover/StorageMover.Management/tspconfig.yaml index fff3ffd53176..42edb35f5358 100644 --- a/specification/storagemover/StorageMover.Management/tspconfig.yaml +++ b/specification/storagemover/StorageMover.Management/tspconfig.yaml @@ -11,12 +11,9 @@ options: output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/storagemover.json" examples-dir: "{project-root}/examples" use-read-only-status-schema: true - "@azure-tools/typespec-csharp": - emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - flavor: azure - clear-output-folder: true - model-namespace: true + "@azure-typespec/http-client-csharp-mgmt": namespace: "Azure.ResourceManager.StorageMover" + emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" "@azure-tools/typespec-python": emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-storagemover" namespace: "azure.mgmt.storagemover" From 1959975cadf9c431731ba5f0b95360141fbae06c Mon Sep 17 00:00:00 2001 From: Arthur Ma <mars.arthur@263.net> Date: Mon, 22 Dec 2025 14:06:59 +0800 Subject: [PATCH 077/117] Updete client settings for WorkloadOrchestration (#39356) --- .../tspconfig.yaml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/specification/edge/Microsoft.Edge.ConfigurationManager.Management/tspconfig.yaml b/specification/edge/Microsoft.Edge.ConfigurationManager.Management/tspconfig.yaml index 03e589040957..1cb65927067e 100644 --- a/specification/edge/Microsoft.Edge.ConfigurationManager.Management/tspconfig.yaml +++ b/specification/edge/Microsoft.Edge.ConfigurationManager.Management/tspconfig.yaml @@ -10,12 +10,9 @@ options: azure-resource-provider-folder: "resource-manager" output-file: "{azure-resource-provider-folder}/{service-name}/configurationmanager/{version-status}/{version}/configurationmanager.json" arm-types-dir: "{project-root}/../../common-types/resource-management" - "@azure-tools/typespec-csharp": - flavor: azure - emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - clear-output-folder: true - model-namespace: true + "@azure-typespec/http-client-csharp-mgmt": namespace: "Azure.ResourceManager.WorkloadOrchestration" + emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" api-version: "2025-06-01" "@azure-tools/typespec-go": service-dir: "sdk/resourcemanager/workloadorchestration" From d664e01927cefd05516c0495f0da4d7d26075624 Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Mon, 22 Dec 2025 15:58:27 +0800 Subject: [PATCH 078/117] configure default value for python (#39368) --- .../StackHCI/client.tsp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/client.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/client.tsp index ba2cd6abfbc9..d1087bb838fe 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/client.tsp +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/client.tsp @@ -41,3 +41,21 @@ using Microsoft.AzureStackHCI; "HciEdgeDeviceStorageAdapterIpInfo", "java" ); + +@@clientName(Microsoft.AzureStackHCI, "AzureStackHCIClient", "python"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Legacy decorator required for Python SDK compatibility" +@@Azure.ClientGenerator.Core.Legacy.clientDefaultValue(EdgeDevice.name, + "default", + "python" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Legacy decorator required for Python SDK compatibility" +@@Azure.ClientGenerator.Core.Legacy.clientDefaultValue(DeploymentSetting.name, + "default", + "python" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Legacy decorator required for Python SDK compatibility" +@@Azure.ClientGenerator.Core.Legacy.clientDefaultValue(SecuritySetting.name, + "default", + "python" +); From 05809299e74fc16df7badbab3fb29e25da59f7d2 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 22 Dec 2025 11:56:26 -0800 Subject: [PATCH 079/117] Migrate stress cluster resource groups (#39126) Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com> --- .../stress-testing/deploy-stress-tests.ps1 | 25 +++++++++++++++++++ .../stress-test-deployment-lib.ps1 | 6 ++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/eng/common/scripts/stress-testing/deploy-stress-tests.ps1 b/eng/common/scripts/stress-testing/deploy-stress-tests.ps1 index cf763b5bb1cd..3f8c0f63bb43 100755 --- a/eng/common/scripts/stress-testing/deploy-stress-tests.ps1 +++ b/eng/common/scripts/stress-testing/deploy-stress-tests.ps1 @@ -42,5 +42,30 @@ param( . $PSScriptRoot/stress-test-deployment-lib.ps1 +# If there are local changes to values.yaml it's almost certain that the user +# is an admin and has provisioned a new stress cluster but not published a +# new addons chart with the new infra config values. In these cases we should +# just fail, as deploying without the local addons override causes misleading +# errors in the cluster with pods not able to mount storage accounts using the +# old values.yaml reference from the published stress-test-addons helm chart. +if (!$LocalAddonsPath) { + try { + $repoRoot = git -C $PSScriptRoot rev-parse --show-toplevel 2>$null + } catch { + $repoRoot = $null + } + + if ($repoRoot -and (Split-Path $repoRoot -Leaf) -eq "azure-sdk-tools") { + $valuesFile = Join-Path $repoRoot "tools/stress-cluster/cluster/kubernetes/stress-test-addons/values.yaml" + if (Test-Path $valuesFile) { + $valuesStatus = git -C $repoRoot status --porcelain -- $valuesFile + if ($valuesStatus) { + $localAddonsDir = Split-Path $valuesFile -Parent + throw "Detected changes to '$valuesFile' without -LocalAddonsPath. Re-run with '-LocalAddonsPath $localAddonsDir' to apply local addon values." + } + } + } +} + CheckDependencies DeployStressTests @PSBoundParameters diff --git a/eng/common/scripts/stress-testing/stress-test-deployment-lib.ps1 b/eng/common/scripts/stress-testing/stress-test-deployment-lib.ps1 index a9f45a0a9a00..64d850bf896f 100644 --- a/eng/common/scripts/stress-testing/stress-test-deployment-lib.ps1 +++ b/eng/common/scripts/stress-testing/stress-test-deployment-lib.ps1 @@ -122,21 +122,21 @@ function DeployStressTests( if ($clusterGroup -or $subscription) { Write-Warning "Overriding cluster group and subscription with defaults for 'pg' environment." } - $clusterGroup = 'rg-stress-cluster-pg' + $clusterGroup = 'SSS3PT_rg-stress-cluster-pg' $subscription = 'Azure SDK Test Resources - TME' $tenant = '70a036f6-8e4d-4615-bad6-149c02e7720d' } elseif ($environment -eq 'prod') { if ($clusterGroup -or $subscription) { Write-Warning "Overriding cluster group and subscription with defaults for 'prod' environment." } - $clusterGroup = 'rg-stress-cluster-prod' + $clusterGroup = 'SSS3PT_rg-stress-cluster-prod' $subscription = 'Azure SDK Test Resources - TME' $tenant = '70a036f6-8e4d-4615-bad6-149c02e7720d' } elseif ($environment -eq 'storage') { if ($clusterGroup -or $subscription) { Write-Warning "Overriding cluster group and subscription with defaults for 'storage' environment." } - $clusterGroup = 'rg-stress-cluster-storage' + $clusterGroup = 'SSS3PT_rg-stress-cluster-storage' $subscription = 'Azure SDK Test Resources - TME' $tenant = '72f988bf-86f1-41af-91ab-2d7cd011db47' } elseif (!$clusterGroup -or !$subscription -or $tenant) { From 96086ecacd33f5e91557e03cf5838d5f45be9f3b Mon Sep 17 00:00:00 2001 From: "Qishun Zhong (MSFT)" <v-qzhong@microsoft.com> Date: Tue, 23 Dec 2025 13:28:09 +0800 Subject: [PATCH 080/117] [TSP Migration][batch] TypeSpec migrated from swagger (#38084) * converted * solved error * update @list && main.tsp description * update parameters:name * update response:header * update x-nullable:true * update deprecated && delete deprecated suppress * update tspconfig.yml & midify readme & delete other swagger file * after prettier * after prettier recource-manager * solve warning * add @secret & update #suppress * fix x-ms-enum missing name * update readme * fix tspconfig location error * remove operationId * remove @useDepedency * update missing * model validation test * model validation test * fix model validation error * fix model validation error * fix model validation error * fix model validation error * Revert "model validation test" This reverts commit bba6306db7970a9ac21698e2239d3ac2f4122496. * fix default response * update * update * prettire * update * update dec & summary * update * update * fix tsmv error * format change * diff fix * add title * fix diff * diff fix * update description * delete * fix model validation error * update response * update * update * fix * remove FIXME * Replace with Custom Resource Model and Update * update client name for js sdk * update * java config * java config * Update client.tsp * update go config * update go config * add go config * add go config * add go config * Add publicNetworkAccess missing enum name * update * update * update * update * update * add go config * fix * add go config * format * add go config * format * update path parameter descriptions * fix * update * update accountName Doc and Pattern * update title on nodeDeallocationOption * change batchaccount to TrackedResource * Update client.tsp * Update client.tsp * Clean up blank lines in client.tsp Removed unnecessary blank lines in client.tsp * delete duplicate title * update batchaccount pattern * Add config for csharp --------- Co-authored-by: mcgallan <88413158+mcgallan@users.noreply.github.com> Co-authored-by: mcgallan <1186003288@qq.com> Co-authored-by: Jiao Di (MSFT) <v-jiaodi@microsoft.com> Co-authored-by: XiaofeiCao <xiaofeicao@microsoft.com> Co-authored-by: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Co-authored-by: Yuchao Yan <yuchaoyan@microsoft.com> Co-authored-by: judy.liu <v-liujudy@microsoft.com> Co-authored-by: Pan Shao <97225342+pshao25@users.noreply.github.com> Co-authored-by: Minghao Chen <30464227+HarveyLink@users.noreply.github.com> --- .../batch/Batch.Management/Application.tsp | 105 + .../Batch.Management/ApplicationPackage.tsp | 107 + .../batch/Batch.Management/BatchAccount.tsp | 156 + .../batch/Batch.Management/Certificate.tsp | 209 + .../Batch.Management/DetectorResponse.tsp | 62 + .../NetworkSecurityPerimeterConfiguration.tsp | 64 + specification/batch/Batch.Management/Pool.tsp | 213 + .../PrivateEndpointConnection.tsp | 109 + .../Batch.Management/PrivateLinkResource.tsp | 73 + .../Batch.Management/back-compatible.tsp | 140 + .../batch/Batch.Management/client.tsp | 387 + .../2024-07-01/ApplicationCreate.json | 33 + .../2024-07-01/ApplicationDelete.json | 15 + .../examples/2024-07-01/ApplicationGet.json | 27 + .../examples/2024-07-01/ApplicationList.json | 37 + .../ApplicationPackageActivate.json | 32 + .../2024-07-01/ApplicationPackageCreate.json | 29 + .../2024-07-01/ApplicationPackageDelete.json | 16 + .../2024-07-01/ApplicationPackageGet.json | 29 + .../2024-07-01/ApplicationPackageList.json | 37 + .../2024-07-01/ApplicationUpdate.json | 35 + .../2024-07-01/BatchAccountCreate_BYOS.json | 55 + .../BatchAccountCreate_Default.json | 46 + ...hAccountCreate_SystemAssignedIdentity.json | 51 + ...tchAccountCreate_UserAssignedIdentity.json | 58 + .../2024-07-01/BatchAccountDelete.json | 19 + .../examples/2024-07-01/BatchAccountGet.json | 37 + .../2024-07-01/BatchAccountGetKeys.json | 19 + .../examples/2024-07-01/BatchAccountList.json | 39 + .../BatchAccountListByResourceGroup.json | 40 + ...tOutboundNetworkDependenciesEndpoints.json | 110 + .../2024-07-01/BatchAccountRegenerateKey.json | 22 + ...atchAccountSynchronizeAutoStorageKeys.json | 13 + .../2024-07-01/BatchAccountUpdate.json | 44 + .../2024-07-01/CertificateCancelDeletion.json | 33 + .../2024-07-01/CertificateCreate_Full.json | 39 + .../2024-07-01/CertificateCreate_Minimal.json | 36 + .../CertificateCreate_MinimalCer.json | 37 + .../2024-07-01/CertificateDelete.json | 21 + .../examples/2024-07-01/CertificateGet.json | 31 + .../CertificateGetWithDeletionError.json | 44 + .../examples/2024-07-01/CertificateList.json | 33 + .../2024-07-01/CertificateListWithFilter.json | 38 + .../2024-07-01/CertificateUpdate.json | 37 + .../examples/2024-07-01/DetectorGet.json | 23 + .../examples/2024-07-01/DetectorList.json | 26 + ...onCheckNameAvailability_AlreadyExists.json | 22 + ...cationCheckNameAvailability_Available.json | 20 + .../2024-07-01/LocationGetQuotas.json | 16 + .../LocationListVirtualMachineSkus.json | 138 + .../2024-07-01/NspConfigurationGet.json | 69 + .../2024-07-01/NspConfigurationReconcile.json | 19 + .../2024-07-01/NspConfigurationsList.json | 72 + .../examples/2024-07-01/OperationsList.json | 572 + .../PoolCreate_AcceleratedNetworking.json | 95 + ...te_MinimalVirtualMachineConfiguration.json | 78 + .../PoolCreate_NoPublicIPAddresses.json | 78 + .../2024-07-01/PoolCreate_PublicIPs.json | 84 + .../2024-07-01/PoolCreate_ResourceTags.json | 93 + .../PoolCreate_SecurityProfile.json | 100 + .../PoolCreate_SharedImageGallery.json | 66 + .../examples/2024-07-01/PoolCreate_Tags.json | 85 + .../2024-07-01/PoolCreate_UpgradePolicy.json | 133 + .../PoolCreate_UserAssignedIdentities.json | 98 + ...oolCreate_VirtualMachineConfiguration.json | 201 + ...irtualMachineConfiguration_Extensions.json | 106 + ...ualMachineConfiguration_ManagedOSDisk.json | 100 + ...onfiguration_ServiceArtifactReference.json | 109 + .../examples/2024-07-01/PoolDelete.json | 21 + .../2024-07-01/PoolDisableAutoScale.json | 57 + .../examples/2024-07-01/PoolGet.json | 161 + .../PoolGet_AcceleratedNetworking.json | 68 + .../2024-07-01/PoolGet_SecurityProfile.json | 71 + .../2024-07-01/PoolGet_UpgradePolicy.json | 88 + ...irtualMachineConfiguration_Extensions.json | 79 + ...tualMachineConfiguration_MangedOSDisk.json | 72 + ...onfiguration_ServiceArtifactReference.json | 76 + .../examples/2024-07-01/PoolList.json | 167 + .../2024-07-01/PoolListWithFilter.json | 44 + .../examples/2024-07-01/PoolStopResize.json | 63 + .../PoolUpdate_EnableAutoScale.json | 75 + .../PoolUpdate_OtherProperties.json | 123 + .../PoolUpdate_RemoveStartTask.json | 71 + .../2024-07-01/PoolUpdate_ResizePool.json | 80 + .../2024-07-01/PrivateBatchAccountCreate.json | 55 + .../2024-07-01/PrivateBatchAccountGet.json | 50 + .../PrivateEndpointConnectionDelete.json | 19 + .../PrivateEndpointConnectionGet.json | 33 + .../PrivateEndpointConnectionUpdate.json | 50 + .../PrivateEndpointConnectionsList.json | 37 + .../2024-07-01/PrivateLinkResourceGet.json | 29 + .../2024-07-01/PrivateLinkResourcesList.json | 32 + specification/batch/Batch.Management/main.tsp | 60 + .../batch/Batch.Management/models.tsp | 3564 ++++++ .../batch/Batch.Management/routes.tsp | 89 + .../batch/Batch.Management/tspconfig.yaml | 50 + .../2024-07-01/NetworkSecurityPerimeter.json | 197 - .../examples/ApplicationCreate.json | 21 +- .../examples/ApplicationDelete.json | 10 +- .../2024-07-01/examples/ApplicationGet.json | 21 +- .../2024-07-01/examples/ApplicationList.json | 18 +- .../examples/ApplicationPackageActivate.json | 27 +- .../examples/ApplicationPackageCreate.json | 23 +- .../examples/ApplicationPackageDelete.json | 8 +- .../examples/ApplicationPackageGet.json | 23 +- .../examples/ApplicationPackageList.json | 24 +- .../examples/ApplicationUpdate.json | 29 +- .../examples/BatchAccountCreate_BYOS.json | 50 +- .../examples/BatchAccountCreate_Default.json | 42 +- ...hAccountCreate_SystemAssignedIdentity.json | 52 +- ...tchAccountCreate_UserAssignedIdentity.json | 66 +- .../examples/BatchAccountDelete.json | 10 +- .../2024-07-01/examples/BatchAccountGet.json | 34 +- .../examples/BatchAccountGetKeys.json | 8 +- .../2024-07-01/examples/BatchAccountList.json | 32 +- .../BatchAccountListByResourceGroup.json | 34 +- ...tOutboundNetworkDependenciesEndpoints.json | 24 +- .../examples/BatchAccountRegenerateKey.json | 10 +- ...atchAccountSynchronizeAutoStorageKeys.json | 8 +- .../examples/BatchAccountUpdate.json | 38 +- .../examples/CertificateCancelDeletion.json | 31 +- .../examples/CertificateCreate_Full.json | 34 +- .../examples/CertificateCreate_Minimal.json | 30 +- .../CertificateCreate_MinimalCer.json | 29 +- .../examples/CertificateDelete.json | 14 +- .../2024-07-01/examples/CertificateGet.json | 27 +- .../CertificateGetWithDeletionError.json | 35 +- .../2024-07-01/examples/CertificateList.json | 25 +- .../examples/CertificateListWithFilter.json | 26 +- .../examples/CertificateUpdate.json | 27 +- .../2024-07-01/examples/DetectorGet.json | 14 +- .../2024-07-01/examples/DetectorList.json | 12 +- ...onCheckNameAvailability_AlreadyExists.json | 12 +- ...cationCheckNameAvailability_Available.json | 8 +- .../examples/LocationGetQuotas.json | 8 +- .../LocationListVirtualMachineSkus.json | 16 +- .../examples/NspConfigurationGet.json | 51 +- .../examples/NspConfigurationReconcile.json | 14 +- .../examples/NspConfigurationsList.json | 51 +- .../2024-07-01/examples/OperationsList.json | 975 +- .../PoolCreate_AcceleratedNetworking.json | 81 +- ...te_MinimalVirtualMachineConfiguration.json | 61 +- .../PoolCreate_NoPublicIPAddresses.json | 77 +- .../examples/PoolCreate_PublicIPs.json | 89 +- .../examples/PoolCreate_ResourceTags.json | 73 +- .../examples/PoolCreate_SecurityProfile.json | 71 +- .../PoolCreate_SharedImageGallery.json | 53 +- .../2024-07-01/examples/PoolCreate_Tags.json | 75 +- .../examples/PoolCreate_UpgradePolicy.json | 89 +- .../PoolCreate_UserAssignedIdentities.json | 101 +- ...oolCreate_VirtualMachineConfiguration.json | 129 +- ...irtualMachineConfiguration_Extensions.json | 95 +- ...ualMachineConfiguration_ManagedOSDisk.json | 75 +- ...onfiguration_ServiceArtifactReference.json | 89 +- .../2024-07-01/examples/PoolDelete.json | 18 +- .../examples/PoolDisableAutoScale.json | 49 +- .../stable/2024-07-01/examples/PoolGet.json | 167 +- .../PoolGet_AcceleratedNetworking.json | 61 +- .../examples/PoolGet_SecurityProfile.json | 63 +- .../examples/PoolGet_UpgradePolicy.json | 75 +- ...irtualMachineConfiguration_Extensions.json | 81 +- ...tualMachineConfiguration_MangedOSDisk.json | 63 +- ...onfiguration_ServiceArtifactReference.json | 73 +- .../stable/2024-07-01/examples/PoolList.json | 173 +- .../examples/PoolListWithFilter.json | 30 +- .../2024-07-01/examples/PoolStopResize.json | 59 +- .../examples/PoolUpdate_EnableAutoScale.json | 67 +- .../examples/PoolUpdate_OtherProperties.json | 141 +- .../examples/PoolUpdate_RemoveStartTask.json | 67 +- .../examples/PoolUpdate_ResizePool.json | 75 +- .../examples/PrivateBatchAccountCreate.json | 46 +- .../examples/PrivateBatchAccountGet.json | 40 +- .../PrivateEndpointConnectionDelete.json | 12 +- .../PrivateEndpointConnectionGet.json | 26 +- .../PrivateEndpointConnectionUpdate.json | 43 +- .../PrivateEndpointConnectionsList.json | 26 +- .../examples/PrivateLinkResourceGet.json | 12 +- .../examples/PrivateLinkResourcesList.json | 12 +- .../{BatchManagement.json => openapi.json} | 9799 +++++++++-------- .../batch/resource-manager/readme.md | 3 +- 180 files changed, 18034 insertions(+), 7257 deletions(-) create mode 100644 specification/batch/Batch.Management/Application.tsp create mode 100644 specification/batch/Batch.Management/ApplicationPackage.tsp create mode 100644 specification/batch/Batch.Management/BatchAccount.tsp create mode 100644 specification/batch/Batch.Management/Certificate.tsp create mode 100644 specification/batch/Batch.Management/DetectorResponse.tsp create mode 100644 specification/batch/Batch.Management/NetworkSecurityPerimeterConfiguration.tsp create mode 100644 specification/batch/Batch.Management/Pool.tsp create mode 100644 specification/batch/Batch.Management/PrivateEndpointConnection.tsp create mode 100644 specification/batch/Batch.Management/PrivateLinkResource.tsp create mode 100644 specification/batch/Batch.Management/back-compatible.tsp create mode 100644 specification/batch/Batch.Management/client.tsp create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/ApplicationCreate.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/ApplicationDelete.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/ApplicationGet.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/ApplicationList.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageActivate.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageCreate.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageDelete.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageGet.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageList.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/ApplicationUpdate.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_BYOS.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_Default.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_SystemAssignedIdentity.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_UserAssignedIdentity.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/BatchAccountDelete.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/BatchAccountGet.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/BatchAccountGetKeys.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/BatchAccountList.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/BatchAccountListByResourceGroup.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/BatchAccountListOutboundNetworkDependenciesEndpoints.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/BatchAccountRegenerateKey.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/BatchAccountSynchronizeAutoStorageKeys.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/BatchAccountUpdate.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/CertificateCancelDeletion.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/CertificateCreate_Full.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/CertificateCreate_Minimal.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/CertificateCreate_MinimalCer.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/CertificateDelete.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/CertificateGet.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/CertificateGetWithDeletionError.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/CertificateList.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/CertificateListWithFilter.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/CertificateUpdate.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/DetectorGet.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/DetectorList.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/LocationCheckNameAvailability_AlreadyExists.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/LocationCheckNameAvailability_Available.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/LocationGetQuotas.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/LocationListVirtualMachineSkus.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/NspConfigurationGet.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/NspConfigurationReconcile.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/NspConfigurationsList.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/OperationsList.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_AcceleratedNetworking.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_MinimalVirtualMachineConfiguration.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_NoPublicIPAddresses.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_PublicIPs.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_ResourceTags.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_SecurityProfile.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_SharedImageGallery.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_Tags.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_UpgradePolicy.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_UserAssignedIdentities.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration_Extensions.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolDelete.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolDisableAutoScale.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolGet.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolGet_AcceleratedNetworking.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolGet_SecurityProfile.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolGet_UpgradePolicy.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolGet_VirtualMachineConfiguration_Extensions.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolList.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolListWithFilter.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolStopResize.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_EnableAutoScale.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_OtherProperties.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_RemoveStartTask.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_ResizePool.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PrivateBatchAccountCreate.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PrivateBatchAccountGet.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionDelete.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionGet.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionUpdate.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionsList.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PrivateLinkResourceGet.json create mode 100644 specification/batch/Batch.Management/examples/2024-07-01/PrivateLinkResourcesList.json create mode 100644 specification/batch/Batch.Management/main.tsp create mode 100644 specification/batch/Batch.Management/models.tsp create mode 100644 specification/batch/Batch.Management/routes.tsp create mode 100644 specification/batch/Batch.Management/tspconfig.yaml delete mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/NetworkSecurityPerimeter.json rename specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/{BatchManagement.json => openapi.json} (58%) diff --git a/specification/batch/Batch.Management/Application.tsp b/specification/batch/Batch.Management/Application.tsp new file mode 100644 index 000000000000..b6dddfe2b786 --- /dev/null +++ b/specification/batch/Batch.Management/Application.tsp @@ -0,0 +1,105 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./BatchAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Batch; +/** + * Contains information about an application in a Batch account. + */ +@parentResource(BatchAccount) +model Application + is Azure.ResourceManager.ProxyResource<ApplicationProperties> { + ...ResourceNameParameter< + Resource = Application, + KeyName = "applicationName", + SegmentName = "applications", + NamePattern = "^[a-zA-Z0-9_-]+$" + >; + + /** + * The ETag of the resource, used for concurrency statements. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + etag?: string; + + /** + * The tags of the resource. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record<string>; +} + +@armResourceOperations +interface Applications { + /** + * Gets information about the specified application. + */ + get is ArmResourceRead<Application, Error = CloudError>; + + /** + * Adds an application to the specified Batch account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + create is Azure.ResourceManager.Legacy.CreateOrReplaceSync< + Application, + Response = ArmResourceUpdatedResponse<Application>, + OptionalRequestBody = true, + Error = CloudError + >; + + /** + * Updates settings for the specified application. + */ + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchSync< + Application, + PatchModel = Application, + Error = CloudError + >; + + /** + * Deletes an application. + */ + delete is ArmResourceDeleteSync<Application, Error = CloudError>; + + /** + * Lists all of the applications in the specified account. + */ + list is ArmResourceListByParent< + Application, + Parameters = { + /** + * The maximum number of items to return in the response. + */ + @query("maxresults") + maxresults?: int32; + }, + Response = ArmResponse<ListApplicationsResult>, + Error = CloudError + >; +} + +@@maxLength(Application.name, 64); +@@minLength(Application.name, 1); +@@doc(Application.name, + "The name of the application. This must be unique within the account." +); +@@doc(Application.properties, + "The properties associated with the Application." +); +@@doc(Applications.create::parameters.resource, + "The parameters for the request." +); +@@doc(Applications.update::parameters.properties, + "The parameters for the request." +); diff --git a/specification/batch/Batch.Management/ApplicationPackage.tsp b/specification/batch/Batch.Management/ApplicationPackage.tsp new file mode 100644 index 000000000000..b46ba913a19d --- /dev/null +++ b/specification/batch/Batch.Management/ApplicationPackage.tsp @@ -0,0 +1,107 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./Application.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Batch; +/** + * An application package which represents a particular version of an application. + */ +@parentResource(Application) +model ApplicationPackage + is Azure.ResourceManager.ProxyResource<ApplicationPackageProperties> { + ...ResourceNameParameter< + Resource = ApplicationPackage, + KeyName = "versionName", + SegmentName = "versions", + NamePattern = "^[a-zA-Z0-9_-][a-zA-Z0-9_.-]*$" + >; + + /** + * The ETag of the resource, used for concurrency statements. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + etag?: string; + + /** + * The tags of the resource. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record<string>; +} + +@armResourceOperations +interface ApplicationPackages { + /** + * Gets information about the specified application package. + */ + get is ArmResourceRead<ApplicationPackage, Error = CloudError>; + + /** + * Creates an application package record. The record contains a storageUrl where the package should be uploaded to. Once it is uploaded the `ApplicationPackage` needs to be activated using `ApplicationPackageActive` before it can be used. If the auto storage account was configured to use storage keys, the URL returned will contain a SAS. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + create is Azure.ResourceManager.Legacy.CreateOrReplaceSync< + ApplicationPackage, + Response = ArmResourceUpdatedResponse<ApplicationPackage>, + OptionalRequestBody = true, + Error = CloudError + >; + + /** + * Deletes an application package record and its associated binary file. + */ + delete is ArmResourceDeleteSync<ApplicationPackage, Error = CloudError>; + + /** + * Lists all of the application packages in the specified application. + */ + list is ArmResourceListByParent< + ApplicationPackage, + Parameters = { + /** + * The maximum number of items to return in the response. + */ + @query("maxresults") + maxresults?: int32; + }, + Response = ArmResponse<ListApplicationPackagesResult>, + Error = CloudError + >; + + /** + * Activates the specified application package. This should be done after the `ApplicationPackage` was created and uploaded. This needs to be done before an `ApplicationPackage` can be used on Pools or Tasks. + */ + activate is ArmResourceActionSync< + ApplicationPackage, + ActivateApplicationPackageParameters, + ArmResponse<ApplicationPackage>, + Error = CloudError + >; +} + +@@maxLength(ApplicationPackage.name, 64); +@@minLength(ApplicationPackage.name, 1); +@@doc(ApplicationPackage.name, "The version of the application."); +@@doc(ApplicationPackage.properties, + "The properties associated with the Application Package." +); +@@doc(ApplicationPackages.create::parameters.resource, + "The parameters for the request." +); +@@doc(ApplicationPackages.activate::parameters.body, + "The parameters for the request." +); +#suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@extension(Applications.create::parameters.resource, "required", false); +#suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@extension(ApplicationPackages.create::parameters.resource, "required", false); diff --git a/specification/batch/Batch.Management/BatchAccount.tsp b/specification/batch/Batch.Management/BatchAccount.tsp new file mode 100644 index 000000000000..839235e9caef --- /dev/null +++ b/specification/batch/Batch.Management/BatchAccount.tsp @@ -0,0 +1,156 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Batch; +/** + * Contains information about an Azure Batch account. + */ +model BatchAccount + is Azure.ResourceManager.TrackedResource<BatchAccountProperties> { + ...ResourceNameParameter< + Resource = BatchAccount, + KeyName = "accountName", + SegmentName = "batchAccounts", + NamePattern = "^[a-zA-Z0-9]+$" + >; + + /** + * The identity of the Batch account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + identity?: BatchAccountIdentity; +} + +@armResourceOperations +interface BatchAccounts { + /** + * Gets information about the specified Batch account. + */ + get is ArmResourceRead<BatchAccount, Error = CloudError>; + + /** + * Creates a new Batch account with the specified parameters. Existing accounts cannot be updated with this API and should instead be updated with the Update Batch Account API. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + create is Legacy.CreateOrReplaceAsync< + BatchAccount, + Request = BatchAccountCreateParameters, + Response = ArmResourceUpdatedResponse<BatchAccount> | ArmAcceptedLroResponse<LroHeaders = ArmLroLocationHeader<FinalResult = BatchAccount> & + Azure.Core.Foundations.RetryAfterHeader>, + Error = CloudError + >; + + /** + * Updates the properties of an existing Batch account. + */ + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchSync< + BatchAccount, + PatchModel = BatchAccountUpdateParameters, + Error = CloudError + >; + + /** + * Deletes the specified Batch account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteWithoutOkAsync< + BatchAccount, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse, + Error = CloudError + >; + + /** + * Gets information about the Batch accounts associated with the specified resource group. + */ + listByResourceGroup is ArmResourceListByParent< + BatchAccount, + Response = BatchAccountListResult, + Error = CloudError + >; + + /** + * Gets information about the Batch accounts associated with the subscription. + */ + list is ArmListBySubscription< + BatchAccount, + Response = BatchAccountListResult, + Error = CloudError + >; + + /** + * Synchronizes access keys for the auto-storage account configured for the specified Batch account, only if storage key authentication is being used. + */ + @action("syncAutoStorageKeys") + synchronizeAutoStorageKeys is ArmResourceActionSync< + BatchAccount, + void, + NoContentResponse, + Error = CloudError + >; + + /** + * This operation applies only to Batch accounts with allowedAuthenticationModes containing 'SharedKey'. If the Batch account doesn't contain 'SharedKey' in its allowedAuthenticationMode, clients cannot use shared keys to authenticate, and must use another allowedAuthenticationModes instead. In this case, regenerating the keys will fail. + */ + @action("regenerateKeys") + regenerateKey is ArmResourceActionSync< + BatchAccount, + BatchAccountRegenerateKeyParameters, + ArmResponse<BatchAccountKeys>, + Error = CloudError + >; + + /** + * This operation applies only to Batch accounts with allowedAuthenticationModes containing 'SharedKey'. If the Batch account doesn't contain 'SharedKey' in its allowedAuthenticationMode, clients cannot use shared keys to authenticate, and must use another allowedAuthenticationModes instead. In this case, getting the keys will fail. + */ + @action("listKeys") + getKeys is ArmResourceActionSync< + BatchAccount, + void, + ArmResponse<BatchAccountKeys>, + Error = CloudError + >; + + /** + * Lists the endpoints that a Batch Compute Node under this Batch Account may call as part of Batch service administration. If you are deploying a Pool inside of a virtual network that you specify, you must make sure your network allows outbound access to these endpoints. Failure to allow access to these endpoints may cause Batch to mark the affected nodes as unusable. For more information about creating a pool inside of a virtual network, see https://learn.microsoft.com/azure/batch/batch-virtual-network. + */ + @get + @list + @action("outboundNetworkDependenciesEndpoints") + listOutboundNetworkDependenciesEndpoints is ArmResourceActionSync< + BatchAccount, + void, + ArmResponse<OutboundEnvironmentEndpointCollection>, + Error = CloudError + >; +} + +@@maxLength(BatchAccount.name, 24); +@@minLength(BatchAccount.name, 3); +@@doc(BatchAccount.name, + "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/." +); +@@doc(BatchAccount.properties, "The properties associated with the account."); +@@doc(BatchAccounts.create::parameters.resource, + "Additional parameters for account creation." +); +@@doc(BatchAccounts.update::parameters.properties, + "Additional parameters for account update." +); +@@doc(BatchAccounts.regenerateKey::parameters.body, + "The type of key to regenerate." +); +@@summary(BatchAccounts.getKeys, + "Gets the account keys for the specified Batch account." +); +@@summary(BatchAccounts.regenerateKey, + "Regenerates the specified account key for the Batch account." +); diff --git a/specification/batch/Batch.Management/Certificate.tsp b/specification/batch/Batch.Management/Certificate.tsp new file mode 100644 index 000000000000..021c67c5e8c3 --- /dev/null +++ b/specification/batch/Batch.Management/Certificate.tsp @@ -0,0 +1,209 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./BatchAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Batch; +/** + * Contains information about a certificate. + */ +@parentResource(BatchAccount) +model Certificate + is Azure.ResourceManager.ProxyResource<CertificateProperties> { + ...ResourceNameParameter< + Resource = Certificate, + KeyName = "certificateName", + SegmentName = "certificates", + NamePattern = "^[\\w]+-[\\w]+$" + >; + + /** + * The ETag of the resource, used for concurrency statements. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + etag?: string; + + /** + * The tags of the resource. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record<string>; +} + +@armResourceOperations +interface Certificates { + /** + * 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. + */ + #deprecated "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + get is ArmResourceRead< + Certificate, + Response = ArmResponse<Certificate> & { + /** + * The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers. + */ + @header("ETag") + etag?: string; + }, + Error = CloudError + >; + + /** + * 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. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #deprecated "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + create is Azure.ResourceManager.Legacy.CreateOrReplaceAsync< + Certificate, + Request = CertificateCreateOrUpdateParameters, + Parameters = { + /** + * The entity state (ETag) version of the certificate to update. A value of "*" can be used to apply the operation only if the certificate already exists. If omitted, this operation will always be applied. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header("If-Match") + `If-Match`?: string; + + /** + * Set to '*' to allow a new certificate to be created, but to prevent updating an existing certificate. Other values will be ignored. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header("If-None-Match") + `If-None-Match`?: string; + }, + Response = ArmResourceUpdatedResponse<Certificate> & { + /** + * The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers. + */ + @header("ETag") + etag?: string; + }, + Error = CloudError + >; + + /** + * 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. + */ + #deprecated "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchSync< + Certificate, + PatchModel = CertificateCreateOrUpdateParameters, + Parameters = { + /** + * The entity state (ETag) version of the certificate to update. This value can be omitted or set to "*" to apply the operation unconditionally. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header("If-Match") + `If-Match`?: string; + }, + Response = ArmResponse<Certificate> & { + /** + * The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers. + */ + @header("ETag") + etag?: string; + }, + Error = CloudError + >; + + /** + * 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. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #deprecated "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteWithoutOkAsync< + Certificate, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse, + Error = CloudError + >; + + /** + * 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. + */ + #deprecated "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + listByBatchAccount is ArmResourceListByParent< + Certificate, + Parameters = { + /** + * The maximum number of items to return in the response. + */ + @query("maxresults") + maxresults?: int32; + + /** + * Comma separated list of properties that should be returned. e.g. "properties/provisioningState". Only top level properties under properties/ are valid for selection. + */ + @query("$select") + $select?: string; + + /** + * OData filter expression. Valid properties for filtering are "properties/provisioningState", "properties/provisioningStateTransitionTime", "name". + */ + @query("$filter") + $filter?: string; + }, + Response = ArmResponse<ListCertificatesResult>, + Error = CloudError + >; + + /** + * If you try to delete a certificate that is being used by a pool or compute node, the status of the certificate changes to deleteFailed. If you decide that you want to continue using the certificate, you can use this operation to set the status of the certificate back to active. If you intend to delete the certificate, you do not need to run this operation after the deletion failed. You must make sure that the certificate is not being used by any resources, and then you can try again to delete the certificate. + * + * 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. + */ + #deprecated "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @action("cancelDelete") + cancelDeletion is ArmResourceActionSync< + Certificate, + void, + Response = ArmResponse<Certificate> & { + /** + * The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers. + */ + @header("ETag") + etag?: string; + }, + Error = CloudError + >; +} + +@@maxLength(Certificate.name, 45); +@@minLength(Certificate.name, 5); +@@doc(Certificate.name, + "The identifier for the certificate. This must be made up of algorithm and thumbprint separated by a dash, and must match the certificate data in the request. For example SHA1-a3d1c5." +); +@@doc(Certificate.properties, + "The properties associated with the certificate." +); +@@doc(Certificates.create::parameters.resource, + "Additional parameters for certificate creation." +); +@@doc(Certificates.update::parameters.properties, + "Certificate entity to update." +); +@@summary(Certificates.listByBatchAccount, + "Lists all of the certificates in the specified account." +); +@@summary(Certificates.get, + "Gets information about the specified certificate." +); +@@summary(Certificates.create, + "Creates a new certificate inside the specified account." +); +@@summary(Certificates.update, + "Updates the properties of an existing certificate." +); +@@summary(Certificates.delete, "Deletes the specified certificate."); +@@summary(Certificates.cancelDeletion, + "Cancels a failed deletion of a certificate from the specified account." +); diff --git a/specification/batch/Batch.Management/DetectorResponse.tsp b/specification/batch/Batch.Management/DetectorResponse.tsp new file mode 100644 index 000000000000..909bdb09fa4c --- /dev/null +++ b/specification/batch/Batch.Management/DetectorResponse.tsp @@ -0,0 +1,62 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./BatchAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Batch; +/** + * Contains the information for a detector. + */ +@parentResource(BatchAccount) +model DetectorResponse + is Azure.ResourceManager.ProxyResource<DetectorResponseProperties> { + ...ResourceNameParameter< + Resource = DetectorResponse, + KeyName = "detectorId", + SegmentName = "detectors", + NamePattern = "" + >; + + /** + * The ETag of the resource, used for concurrency statements. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + etag?: string; + + /** + * The tags of the resource. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record<string>; +} + +@armResourceOperations +interface DetectorResponses { + /** + * Gets information about the given detector for a given Batch account. + */ + getDetector is ArmResourceRead<DetectorResponse, Error = CloudError>; + + /** + * Gets information about the detectors available for a given Batch account. + */ + listDetectors is ArmResourceListByParent< + DetectorResponse, + Response = ArmResponse<DetectorListResult>, + Error = CloudError + >; +} + +@@doc(DetectorResponse.name, "The name of the detector."); +@@doc(DetectorResponse.properties, + "The properties associated with the detector." +); diff --git a/specification/batch/Batch.Management/NetworkSecurityPerimeterConfiguration.tsp b/specification/batch/Batch.Management/NetworkSecurityPerimeterConfiguration.tsp new file mode 100644 index 000000000000..a611961257f8 --- /dev/null +++ b/specification/batch/Batch.Management/NetworkSecurityPerimeterConfiguration.tsp @@ -0,0 +1,64 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "./models.tsp"; +import "./BatchAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Batch; +/** + * Network security perimeter (NSP) configuration resource + */ +@parentResource(BatchAccount) +model NetworkSecurityPerimeterConfiguration + is Azure.ResourceManager.NspConfiguration; + +alias NspConfigurationOperations = Azure.ResourceManager.NspConfigurations<NetworkSecurityPerimeterConfiguration>; + +@armResourceOperations +interface NetworkSecurityPerimeterConfigurations { + /** + * Gets information about the specified NSP configuration. + */ + getConfiguration is NspConfigurationOperations.Read< + ParentResource = BatchAccount, + Resource = NetworkSecurityPerimeterConfiguration, + Response = CommonTypes.NetworkSecurityPerimeterConfiguration, + Error = CloudError + >; + + /** + * Lists all of the NSP configurations in the specified account. + */ + @list + listConfigurations is NspConfigurationOperations.ListByParent< + ParentResource = BatchAccount, + Resource = NetworkSecurityPerimeterConfiguration, + Response = CommonTypes.NetworkSecurityPerimeterConfigurationListResult, + Error = CloudError + >; + + /** + * Reconciles the specified NSP configuration. + */ + @post + @action("reconcile") + reconcileConfiguration is NspConfigurationOperations.Read< + ParentResource = BatchAccount, + Resource = NetworkSecurityPerimeterConfiguration, + Response = ArmAcceptedLroResponse + >; +} + +@@doc(NetworkSecurityPerimeterConfiguration.properties, + "Network security configuration properties." +); +@@pageItems(CommonTypes.NetworkSecurityPerimeterConfigurationListResult.value); +@@nextLink(CommonTypes.NetworkSecurityPerimeterConfigurationListResult.nextLink +); diff --git a/specification/batch/Batch.Management/Pool.tsp b/specification/batch/Batch.Management/Pool.tsp new file mode 100644 index 000000000000..d5f1116e70c1 --- /dev/null +++ b/specification/batch/Batch.Management/Pool.tsp @@ -0,0 +1,213 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./BatchAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Batch; +/** + * Contains information about a pool. + */ +@parentResource(BatchAccount) +model Pool is Azure.ResourceManager.ProxyResource<PoolProperties> { + ...ResourceNameParameter< + Resource = Pool, + KeyName = "poolName", + SegmentName = "pools", + NamePattern = "^[a-zA-Z0-9_-]+$" + >; + + /** + * The type of identity used for the Batch Pool. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + identity?: BatchPoolIdentity; + + /** + * The ETag of the resource, used for concurrency statements. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + etag?: string; + + /** + * The tags of the resource. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record<string>; +} + +@armResourceOperations +interface Pools { + /** + * Gets information about the specified pool. + */ + get is ArmResourceRead< + Pool, + Response = ArmResourceUpdatedResponse<Pool> & { + /** + * The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers. + */ + @header("ETag") + etag?: string; + }, + Error = CloudError + >; + + /** + * Creates a new pool inside the specified account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + create is ArmResourceCreateOrReplaceSync< + Pool, + Parameters = { + /** + * The entity state (ETag) version of the pool to update. A value of "*" can be used to apply the operation only if the pool already exists. If omitted, this operation will always be applied. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header("If-Match") + `If-Match`?: string; + + /** + * Set to '*' to allow a new pool to be created, but to prevent updating an existing pool. Other values will be ignored. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header("If-None-Match") + `If-None-Match`?: string; + }, + Response = ArmResourceUpdatedResponse<Pool> & { + /** + * The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers. + */ + @header("ETag") + etag?: string; + }, + Error = CloudError + >; + + /** + * Updates the properties of an existing pool. + */ + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchSync< + Pool, + PatchModel = Pool, + Parameters = { + /** + * The entity state (ETag) version of the pool to update. This value can be omitted or set to "*" to apply the operation unconditionally. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header("If-Match") + `If-Match`?: string; + }, + Response = ArmResourceUpdatedResponse<Pool> & { + /** + * The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers. + */ + @header("ETag") + etag?: string; + }, + Error = CloudError + >; + + /** + * Deletes the specified pool. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteWithoutOkAsync< + Pool, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse, + Error = CloudError + >; + + /** + * Lists all of the pools in the specified account. + */ + listByBatchAccount is ArmResourceListByParent< + Pool, + Parameters = { + /** + * The maximum number of items to return in the response. + */ + @query("maxresults") + maxresults?: int32; + + /** + * Comma separated list of properties that should be returned. e.g. "properties/provisioningState". Only top level properties under properties/ are valid for selection. + */ + @query("$select") + $select?: string; + + /** + * OData filter expression. Valid properties for filtering are: + * + * name + * properties/allocationState + * properties/allocationStateTransitionTime + * properties/creationTime + * properties/provisioningState + * properties/provisioningStateTransitionTime + * properties/lastModified + * properties/vmSize + * properties/interNodeCommunication + * properties/scaleSettings/autoScale + * properties/scaleSettings/fixedScale + */ + @query("$filter") + $filter?: string; + }, + Response = ArmResponse<ListPoolsResult>, + Error = CloudError + >; + + /** + * Disables automatic scaling for a pool. + */ + disableAutoScale is ArmResourceActionSync< + Pool, + void, + Response = ArmResponse<Pool> & { + /** + * The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers. + */ + @header("ETag") + etag?: string; + }, + Error = CloudError + >; + + /** + * This does not restore the pool to its previous state before the resize operation: it only stops any further changes being made, and the pool maintains its current state. After stopping, the pool stabilizes at the number of nodes it was at when the stop operation was done. During the stop operation, the pool allocation state changes first to stopping and then to steady. A resize operation need not be an explicit resize pool request; this API can also be used to halt the initial sizing of the pool when it is created. + */ + stopResize is ArmResourceActionSync< + Pool, + void, + Response = ArmResponse<Pool> & { + /** + * The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers. + */ + @header("ETag") + etag?: string; + }, + Error = CloudError + >; +} + +@@maxLength(Pool.name, 64); +@@minLength(Pool.name, 1); +@@doc(Pool.name, "The pool name. This must be unique within the account."); +@@doc(Pool.properties, "The properties associated with the pool."); +@@doc(Pools.create::parameters.resource, + "Additional parameters for pool creation." +); +@@doc(Pools.update::parameters.properties, + "Pool properties that should be updated. Properties that are supplied will be updated, any property not supplied will be unchanged." +); +@@summary(Pools.stopResize, "Stops an ongoing resize operation on the pool."); diff --git a/specification/batch/Batch.Management/PrivateEndpointConnection.tsp b/specification/batch/Batch.Management/PrivateEndpointConnection.tsp new file mode 100644 index 000000000000..a8f8be92c857 --- /dev/null +++ b/specification/batch/Batch.Management/PrivateEndpointConnection.tsp @@ -0,0 +1,109 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./BatchAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Batch; +/** + * Contains information about a private link resource. + */ +@parentResource(BatchAccount) +model PrivateEndpointConnection + is Azure.ResourceManager.ProxyResource<PrivateEndpointConnectionProperties> { + ...ResourceNameParameter< + Resource = PrivateEndpointConnection, + KeyName = "privateEndpointConnectionName", + SegmentName = "privateEndpointConnections", + NamePattern = "^[a-zA-Z0-9_-]+\\.?[a-fA-F0-9-]*$" + >; + + /** + * The ETag of the resource, used for concurrency statements. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + etag?: string; + + /** + * The tags of the resource. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record<string>; +} + +@armResourceOperations +interface PrivateEndpointConnections { + /** + * Gets information about the specified private endpoint connection. + */ + get is ArmResourceRead<PrivateEndpointConnection, Error = CloudError>; + + /** + * Updates the properties of an existing private endpoint connection. + */ + @Azure.Core.useFinalStateVia("azure-async-operation") + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchAsync< + PrivateEndpointConnection, + PatchModel = PrivateEndpointConnection, + LroHeaders = ArmCombinedLroHeaders<FinalResult = PrivateEndpointConnection> & + Azure.Core.Foundations.RetryAfterHeader, + Parameters = { + /** + * The state (ETag) version of the private endpoint connection to update. This value can be omitted or set to "*" to apply the operation unconditionally. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header("If-Match") + `If-Match`?: string; + }, + Error = CloudError + >; + + /** + * Deletes the specified private endpoint connection. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.Core.useFinalStateVia("azure-async-operation") + delete is ArmResourceDeleteWithoutOkAsync< + PrivateEndpointConnection, + LroHeaders = ArmCombinedLroHeaders & + Azure.Core.Foundations.RetryAfterHeader, + Error = CloudError + >; + + /** + * Lists all of the private endpoint connections in the specified account. + */ + listByBatchAccount is ArmResourceListByParent< + PrivateEndpointConnection, + Parameters = { + /** + * The maximum number of items to return in the response. + */ + @query("maxresults") + maxresults?: int32; + }, + Response = ArmResponse<ListPrivateEndpointConnectionsResult>, + Error = CloudError + >; +} + +@@maxLength(PrivateEndpointConnection.name, 101); +@@minLength(PrivateEndpointConnection.name, 1); +@@doc(PrivateEndpointConnection.name, + "The private endpoint connection name. This must be unique within the account." +); +@@doc(PrivateEndpointConnection.properties, + "The properties associated with the private endpoint connection." +); +@@doc(PrivateEndpointConnections.update::parameters.properties, + "PrivateEndpointConnection properties that should be updated. Properties that are supplied will be updated, any property not supplied will be unchanged." +); diff --git a/specification/batch/Batch.Management/PrivateLinkResource.tsp b/specification/batch/Batch.Management/PrivateLinkResource.tsp new file mode 100644 index 000000000000..d9616c1fc27d --- /dev/null +++ b/specification/batch/Batch.Management/PrivateLinkResource.tsp @@ -0,0 +1,73 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./BatchAccount.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Batch; +/** + * Contains information about a private link resource. + */ +@parentResource(BatchAccount) +model PrivateLinkResource + is Azure.ResourceManager.ProxyResource<PrivateLinkResourceProperties> { + ...ResourceNameParameter< + Resource = PrivateLinkResource, + KeyName = "privateLinkResourceName", + SegmentName = "privateLinkResources", + NamePattern = "^[a-zA-Z0-9_-]+\\.?[a-fA-F0-9-]*$" + >; + + /** + * The ETag of the resource, used for concurrency statements. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + etag?: string; + + /** + * The tags of the resource. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record<string>; +} + +@armResourceOperations +interface PrivateLinkResources { + /** + * Gets information about the specified private link resource. + */ + get is ArmResourceRead<PrivateLinkResource, Error = CloudError>; + + /** + * Lists all of the private link resources in the specified account. + */ + listByBatchAccount is ArmResourceListByParent< + PrivateLinkResource, + Parameters = { + /** + * The maximum number of items to return in the response. + */ + @query("maxresults") + maxresults?: int32; + }, + Response = ArmResponse<ListPrivateLinkResourcesResult>, + Error = CloudError + >; +} + +@@maxLength(PrivateLinkResource.name, 101); +@@minLength(PrivateLinkResource.name, 1); +@@doc(PrivateLinkResource.name, + "The private link resource name. This must be unique within the account." +); +@@doc(PrivateLinkResource.properties, + "The properties associated with the private link resource." +); diff --git a/specification/batch/Batch.Management/back-compatible.tsp b/specification/batch/Batch.Management/back-compatible.tsp new file mode 100644 index 000000000000..696925015aa8 --- /dev/null +++ b/specification/batch/Batch.Management/back-compatible.tsp @@ -0,0 +1,140 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Azure.ClientGenerator.Core.Legacy; +using Microsoft.Batch; + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(BatchAccountCreateParameters.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(BatchAccountUpdateParameters.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(CertificateCreateOrUpdateParameters.properties); + +@@clientName(ContainerRegistry.username, "userName"); + +@@clientLocation(BatchAccounts.get, "BatchAccount"); +@@clientLocation(BatchAccounts.create, "BatchAccount"); +@@clientName(BatchAccounts.create::parameters.resource, "parameters"); +@@clientLocation(BatchAccounts.update, "BatchAccount"); +@@clientName(BatchAccounts.update::parameters.properties, "parameters"); +@@clientLocation(BatchAccounts.delete, "BatchAccount"); +@@clientLocation(BatchAccounts.listByResourceGroup, "BatchAccount"); +@@clientLocation(BatchAccounts.list, "BatchAccount"); +@@clientLocation(BatchAccounts.synchronizeAutoStorageKeys, "BatchAccount"); +@@clientLocation(BatchAccounts.regenerateKey, "BatchAccount"); +@@clientName(BatchAccounts.regenerateKey::parameters.body, "parameters"); +@@clientLocation(BatchAccounts.getKeys, "BatchAccount"); +@@clientLocation(BatchAccounts.listOutboundNetworkDependenciesEndpoints, + "BatchAccount" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(BatchAccount.properties); + +@@clientLocation(PrivateEndpointConnections.get, "PrivateEndpointConnection"); +@@clientLocation(PrivateEndpointConnections.update, + "PrivateEndpointConnection" +); +@@clientName(PrivateEndpointConnections.update::parameters.properties, + "parameters" +); +@@clientLocation(PrivateEndpointConnections.delete, + "PrivateEndpointConnection" +); +@@clientLocation(PrivateEndpointConnections.listByBatchAccount, + "PrivateEndpointConnection" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(PrivateEndpointConnection.properties); + +@@clientLocation(ApplicationPackages.get, "ApplicationPackage"); +@@clientLocation(ApplicationPackages.create, "ApplicationPackage"); +@@clientName(ApplicationPackages.create::parameters.resource, "parameters"); +@@clientLocation(ApplicationPackages.delete, "ApplicationPackage"); +@@clientLocation(ApplicationPackages.list, "ApplicationPackage"); +@@clientLocation(ApplicationPackages.activate, "ApplicationPackage"); +@@clientName(ApplicationPackages.activate::parameters.body, "parameters"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(ApplicationPackage.properties); + +@@clientLocation(Applications.get, "Application"); +@@clientLocation(Applications.create, "Application"); +@@clientName(Applications.create::parameters.resource, "parameters"); +@@clientLocation(Applications.update, "Application"); +@@clientName(Applications.update::parameters.properties, "parameters"); +@@clientLocation(Applications.delete, "Application"); +@@clientLocation(Applications.list, "Application"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(Application.properties); + +@@clientLocation(Certificates.get, "Certificate"); +@@clientLocation(Certificates.create, "Certificate"); +@@clientName(Certificates.create::parameters.resource, "parameters"); +@@clientLocation(Certificates.update, "Certificate"); +@@clientName(Certificates.update::parameters.properties, "parameters"); +@@clientLocation(Certificates.delete, "Certificate"); +@@clientLocation(Certificates.listByBatchAccount, "Certificate"); +@@clientLocation(Certificates.cancelDeletion, "Certificate"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(Certificate.properties); + +@@clientLocation(DetectorResponses.getDetector, "BatchAccount"); +@@clientLocation(DetectorResponses.listDetectors, "BatchAccount"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(DetectorResponse.properties); + +@@clientLocation(PrivateLinkResources.get, "PrivateLinkResource"); +@@clientLocation(PrivateLinkResources.listByBatchAccount, + "PrivateLinkResource" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(PrivateLinkResource.properties); + +@@clientLocation(Pools.get, "Pool"); +@@clientLocation(Pools.create, "Pool"); +@@clientName(Pools.create::parameters.resource, "parameters"); +@@clientLocation(Pools.update, "Pool"); +@@clientName(Pools.update::parameters.properties, "parameters"); +@@clientLocation(Pools.delete, "Pool"); +@@clientLocation(Pools.listByBatchAccount, "Pool"); +@@clientLocation(Pools.disableAutoScale, "Pool"); +@@clientLocation(Pools.stopResize, "Pool"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(Pool.properties); + +@@clientLocation(NetworkSecurityPerimeterConfigurations.getConfiguration, + "NetworkSecurityPerimeter" +); +@@clientLocation(NetworkSecurityPerimeterConfigurations.listConfigurations, + "NetworkSecurityPerimeter" +); +@@clientLocation(NetworkSecurityPerimeterConfigurations.reconcileConfiguration, + "NetworkSecurityPerimeter" +); + +@@clientLocation(LocationOperationGroup.getQuotas, "Location"); +@@clientLocation(LocationOperationGroup.listSupportedVirtualMachineSkus, + "Location" +); +@@clientLocation(LocationOperationGroup.checkNameAvailability, "Location"); +@@clientName(LocationOperationGroup.checkNameAvailability::parameters.body, + "parameters" +); +@@alternateType(DiffDiskSettings.placement, "CacheDisk", "go"); +@@alternateType(CheckNameAvailabilityParameters.type, + "Microsoft.Batch/batchAccounts", + "go" +); +@@alternateType(IPRule.action, "Allow", "go"); + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AccessRulePropertiesSubscriptionsItem { + /** The fully qualified Azure resource ID of the subscription e.g. ('/subscriptions/00000000-0000-0000-0000-000000000000') */ + id?: Azure.Core.armResourceIdentifier; +} +@@alternateType(Azure.ResourceManager.CommonTypes.AccessRuleProperties.subscriptions, + AccessRulePropertiesSubscriptionsItem[], + "go" +); diff --git a/specification/batch/Batch.Management/client.tsp b/specification/batch/Batch.Management/client.tsp new file mode 100644 index 000000000000..7cb7fbb18051 --- /dev/null +++ b/specification/batch/Batch.Management/client.tsp @@ -0,0 +1,387 @@ +import "@azure-tools/typespec-client-generator-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./main.tsp"; + +using Azure.ClientGenerator.Core; +using Microsoft.Batch; + +@@clientName(Microsoft.Batch, "BatchManagementClient", "javascript, python"); + +// Java compat renames for existing management SDK surface +@@clientName(Microsoft.Batch.IPAddressProvisioningType, + "IpAddressProvisioningType", + "java" +); +@@clientName(Microsoft.Batch.PublicIPAddressConfiguration, + "PublicIpAddressConfiguration", + "java" +); +@@clientName(Microsoft.Batch.IPRule, "IpRule", "java"); +@@clientName(Microsoft.Batch.IPRuleAction, "IpRuleAction", "java"); +@@clientName(Microsoft.Batch.NFSMountConfiguration, + "NfsMountConfiguration", + "java" +); +@@clientName(Microsoft.Batch.CifsMountConfiguration, + "CifsMountConfiguration", + "java" +); +@@clientName(Microsoft.Batch.NetworkConfiguration.publicIPAddressConfiguration, + "publicIpAddressConfiguration", + "java" +); +@@clientName(Microsoft.Batch.CifsMountConfiguration.userName, + "username", + "java" +); +@@clientName(Microsoft.Batch.ContainerRegistry.username, "username", "java"); +@@clientName(Microsoft.Batch.UserIdentity.userName, "username", "java"); + +@@clientName(Microsoft.Batch.PrivateLinkServiceConnectionState.actionsRequired, + "ActionRequired", + "go" +); +@@clientName(Microsoft.Batch.NetworkConfiguration.dynamicVnetAssignmentScope, + "DynamicVNetAssignmentScope", + "go" +); +@@clientName(Microsoft.Batch.CifsMountConfiguration.userName, "Username", "go"); + +@@clientName(Azure.ResourceManager.CommonTypes.TrackedResource, + "AzureResource", + "python" +); + +@@clientName(CachingType, "BatchDiskCachingType", "csharp"); +@@clientName(Application, "BatchApplication", "csharp"); +@@clientName(ApplicationPackage, "BatchApplicationPackage", "csharp"); +@@clientName(ApplicationPackageProperties.lastActivationTime, + "LastActivatedOn", + "csharp" +); +@@clientName(PublicNetworkAccessType, "BatchPublicNetworkAccess", "csharp"); +@@clientName(BatchAccountProperties.dedicatedCoreQuotaPerVMFamilyEnforced, + "IsDedicatedCoreQuotaPerVmFamilyEnforced", + "csharp" +); +@@alternateType(Pool.identity, + Azure.ResourceManager.CommonTypes.ManagedServiceIdentity, + "csharp" +); +@@alternateType(Pool.etag, Azure.Core.eTag, "csharp"); +@@clientName(DetectorResponse, "BatchAccountDetector", "csharp"); +@@clientName(OutboundEnvironmentEndpoint, + "BatchAccountOutboundEnvironmentEndpoint", + "csharp" +); +@@clientName(EndpointDependency, "BatchAccountEndpointDependency", "csharp"); +@@clientName(EndpointDetail, "BatchEndpointDetail", "csharp"); +@@clientName(Pool, "BatchAccountPool", "csharp"); +@@clientName(PoolProperties.lastModified, "LastModifiedOn", "csharp"); +@@clientName(PoolProperties.provisioningStateTransitionTime, + "provisioningStateTransitOn", + "csharp" +); +@@clientName(PoolAllocationMode, "BatchAccountPoolAllocationMode", "csharp"); +@@clientName(AutoScaleRun, "BatchAccountPoolAutoScaleRun", "csharp"); +@@clientName(ResizeOperationStatus, "BatchResizeOperationStatus", "csharp"); +@@clientName(ComputeNodeDeallocationOption, + "BatchNodeDeallocationOption", + "csharp" +); +@@clientName(Certificate, "BatchAccountCertificate", "csharp"); +@@clientName(CertificateFormat, "BatchAccountCertificateFormat", "csharp"); +@@clientName(CertificateProvisioningState, + "BatchAccountCertificateProvisioningState", + "csharp" +); +@@clientName(CertificateProperties.provisioningStateTransitionTime, + "provisioningStateTransitOn", + "csharp" +); +@@clientName(CertificateProperties.previousProvisioningStateTransitionTime, + "previousProvisioningStateTransitOn", + "csharp" +); +@@clientName(CertificateStoreLocation, + "BatchCertificateStoreLocation", + "csharp" +); +@@clientName(CertificateVisibility, "BatchCertificateVisibility", "csharp"); +@@clientName(PoolProvisioningState, + "BatchAccountPoolProvisioningState", + "csharp" +); +@@clientName(DeploymentConfiguration, "BatchDeploymentConfiguration", "csharp"); +@@clientName(DeploymentConfiguration.virtualMachineConfiguration, + "vmConfiguration", + "csharp" +); +@@clientName(VirtualMachineConfiguration, "BatchVmConfiguration", "csharp"); +@@clientName(DataDisk, "BatchVmDataDisk", "csharp"); +@@clientName(DataDisk.diskSizeGB, "DiskSizeInGB", "csharp"); +@@clientName(VMExtension, "BatchVmExtension", "csharp"); +@@clientName(VMExtension.type, "ExtensionType", "csharp"); +@@clientName(ContainerConfiguration, "BatchVmContainerConfiguration", "csharp"); +@@clientName(ContainerType, "BatchVmContainerType", "csharp"); +@@clientName(ContainerRegistry, "BatchVmContainerRegistry", "csharp"); +@@clientName(WindowsConfiguration.enableAutomaticUpdates, + "IsAutomaticUpdateEnabled", + "csharp" +); +@@clientName(ContainerRegistry.identityReference, "Identity", "csharp"); +@@clientName(NetworkProfile, "BatchNetworkProfile", "csharp"); +@@clientName(EndpointAccessProfile, "BatchEndpointAccessProfile", "csharp"); +@@clientName(EndpointAccessDefaultAction, + "BatchEndpointAccessDefaultAction", + "csharp" +); +@@clientName(AllocationState, "BatchAccountPoolAllocationState", "csharp"); +@@clientName(ApplicationPackageReference, + "BatchApplicationPackageReference", + "csharp" +); +@@alternateType(ApplicationPackageReference.id, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@clientName(CertificateReference, "BatchCertificateReference", "csharp"); +@@alternateType(CertificateReference.id, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@clientName(MetadataItem, "BatchAccountPoolMetadataItem", "csharp"); +@@clientName(MountConfiguration, "BatchMountConfiguration", "csharp"); +@@clientName(AzureBlobFileSystemConfiguration, + "BatchBlobFileSystemConfiguration", + "csharp" +); +@@clientName(AzureBlobFileSystemConfiguration.identityReference, + "Identity", + "csharp" +); +@@clientName(AzureFileShareConfiguration, + "BatchFileShareConfiguration", + "csharp" +); +@@alternateType(ComputeNodeIdentityReference.resourceId, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@clientName(AutoStorageProperties, + "BatchAccountAutoStorageConfiguration", + "csharp" +); +@@clientName(AutoStorageProperties.lastKeySync, "LastKeySyncedOn", "csharp"); +@@clientName(AutoStorageBaseProperties, + "BatchAccountAutoStorageBaseConfiguration", + "csharp" +); +@@alternateType(AutoStorageBaseProperties.storageAccountId, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@clientName(AutoStorageAuthenticationMode, + "BatchAutoStorageAuthenticationMode", + "csharp" +); +@@clientName(AutoStorageBaseProperties.nodeIdentityReference, + "NodeIdentity", + "csharp" +); +@@clientName(KeyVaultReference, "BatchKeyVaultReference", "csharp"); +@@alternateType(KeyVaultReference.id, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@clientName(AuthenticationMode, "BatchAuthenticationMode", "csharp"); +@@clientName(EncryptionProperties, + "BatchAccountEncryptionConfiguration", + "csharp" +); +@@clientName(KeySource, "BatchAccountKeySource", "csharp"); +@@clientName(IPRule, "BatchIPRule", "csharp"); +@@clientName(ResourceFile.identityReference, "Identity", "csharp"); +@@clientName(VirtualMachineFamilyCoreQuota, "BatchVmFamilyCoreQuota", "csharp"); +@@clientName(ScaleSettings, "BatchAccountPoolScaleSettings", "csharp"); +@@clientName(AutoScaleSettings, "BatchAccountAutoScaleSettings", "csharp"); +@@clientName(FixedScaleSettings, "BatchAccountFixedScaleSettings", "csharp"); +@@clientName(StartTask, "BatchAccountPoolStartTask", "csharp"); +@@clientName(ResourceFile, "BatchResourceFile", "csharp"); +@@clientName(EnvironmentSetting, "BatchEnvironmentSetting", "csharp"); +@@clientName(TaskContainerSettings, "BatchTaskContainerSettings", "csharp"); +@@clientName(ComputeNodeFillType, "BatchNodeFillType", "csharp"); +@@clientName(UserAccount, "BatchUserAccount", "csharp"); +@@clientName(ElevationLevel, "BatchUserAccountElevationLevel", "csharp"); +@@clientName(AutoUserScope, "BatchAutoUserScope", "csharp"); +@@clientName(AutoUserSpecification, "BatchAutoUserSpecification", "csharp"); +@@clientName(LinuxUserConfiguration, "BatchLinuxUserConfiguration", "csharp"); +@@clientName(WindowsUserConfiguration, + "BatchWindowsUserConfiguration", + "csharp" +); +@@clientName(LoginMode, "BatchWindowsLoginMode", "csharp"); +@@clientName(ApplicationPackageProperties.storageUrlExpiry, + "StorageUriExpireOn", + "csharp" +); +@@clientName(SupportedSku, "BatchSupportedSku", "csharp"); +@@clientName(ActivateApplicationPackageParameters, + "BatchApplicationPackageActivateContent", + "csharp" +); +@@clientName(CheckNameAvailabilityParameters, + "BatchNameAvailabilityContent", + "csharp" +); +@@alternateType(CheckNameAvailabilityParameters.type, + Azure.Core.armResourceType, + "csharp" +); +@@clientName(CheckNameAvailabilityResult, + "BatchNameAvailabilityResult", + "csharp" +); +@@clientName(CheckNameAvailabilityResult.nameAvailable, + "IsNameAvailable", + "csharp" +); +@@clientName(NameAvailabilityReason, "BatchNameUnavailableReason", "csharp"); +@@clientName(CifsMountConfiguration, "BatchCifsMountConfiguration", "csharp"); +@@clientName(CifsMountConfiguration.userName, "username", "csharp"); +@@clientName(NFSMountConfiguration, "BatchNFSMountConfiguration", "csharp"); +@@clientName(ContainerWorkingDirectory, + "BatchContainerWorkingDirectory", + "csharp" +); +@@clientName(DiffDiskPlacement, "BatchDiffDiskPlacement", "csharp"); +@@clientName(DiskEncryptionTarget, "BatchDiskEncryptionTarget", "csharp"); +@@clientName(InboundEndpointProtocol, "BatchInboundEndpointProtocol", "csharp"); +@@clientName(InboundNatPool, "BatchInboundNatPool", "csharp"); +@@clientName(IPAddressProvisioningType, + "BatchIPAddressProvisioningType", + "csharp" +); +@@clientName(IPRuleAction, "BatchIPRuleAction", "csharp"); +@@clientName(NetworkConfiguration, "BatchNetworkConfiguration", "csharp"); +@@clientName(NetworkConfiguration.dynamicVnetAssignmentScope, + "dynamicVNetAssignmentScope", + "csharp" +); +@@alternateType(NetworkConfiguration.subnetId, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@clientName(NetworkSecurityGroupRule, + "BatchNetworkSecurityGroupRule", + "csharp" +); +@@clientName(NetworkSecurityGroupRuleAccess, + "BatchNetworkSecurityGroupRuleAccess", + "csharp" +); +@@clientName(NodePlacementPolicyType, "BatchNodePlacementPolicyType", "csharp"); +@@clientName(PackageState, "BatchApplicationPackageState", "csharp"); +@@clientName(PrivateLinkServiceConnectionStatus, + "BatchPrivateLinkServiceConnectionStatus", + "csharp" +); +@@clientName(PrivateLinkServiceConnectionState.actionsRequired, + "actionRequired", + "csharp" +); +@@clientName(PublicIPAddressConfiguration, + "BatchPublicIPAddressConfiguration", + "csharp" +); +@@clientName(SkuCapability, "BatchSkuCapability", "csharp"); +@@clientName(UserIdentity, "BatchUserIdentity", "csharp"); +@@clientName(ImageReference, "BatchImageReference", "csharp"); +@@alternateType(ImageReference.id, Azure.Core.armResourceIdentifier, "csharp"); +@@alternateType(CertificateCreateOrUpdateProperties.data, unknown, "csharp"); +@@alternateType(KeyVaultProperties.keyIdentifier, url, "csharp"); +@@clientName(AzureFileShareConfiguration.azureFileUrl, "FileUrl", "csharp"); +@@clientName(MountConfiguration.azureBlobFileSystemConfiguration, + "BlobFileSystemConfiguration", + "csharp" +); +@@clientName(MountConfiguration.azureFileShareConfiguration, + "FileShareConfiguration", + "csharp" +); +@@clientName(ResourceFile.storageContainerUrl, "BlobContainerUri", "csharp"); +@@clientName(ResourceFile.autoStorageContainerName, + "AutoBlobContainerName", + "csharp" +); +@@clientName(AccountKeyType, "BatchAccountKeyType", "csharp"); +@@clientName(BatchAccountRegenerateKeyParameters.keyName, "KeyType", "csharp"); +@@clientName(CertificateProperties.thumbprint, "ThumbprintString", "csharp"); +@@clientName(CertificateCreateOrUpdateProperties.thumbprint, + "ThumbprintString", + "csharp" +); +@@clientName(OSDisk, "BatchOSDisk", "csharp"); +@@clientName(OSDisk.writeAcceleratorEnabled, + "IsWriteAcceleratorEnabled", + "csharp" +); +@@clientName(SecurityProfile, "BatchSecurityProfile", "csharp"); +@@clientName(UefiSettings, "BatchUefiSettings", "csharp"); +@@clientName(UefiSettings.secureBootEnabled, "IsSecureBootEnabled", "csharp"); +@@clientName(UefiSettings.vTpmEnabled, "IsVTpmEnabled", "csharp"); +@@clientName(SecurityTypes, "BatchSecurityType", "csharp"); +@@clientName(StorageAccountType.StandardSSD_LRS, "StandardSsdLrs", "csharp"); +@@clientName(StorageAccountType, "BatchStorageAccountType", "csharp"); +@@clientName(ProvisioningState, "BatchProvisioningState", "csharp"); +@@clientName(Azure.ResourceManager.CommonTypes.Severity, + "BatchSeverity", + "csharp" +); +// @@clientName(NetworkSecurityPerimeterConfiguration, +// "NetworkSecurityPerimeterConfigurationResource", +// "csharp" +// ); +@@clientName(Azure.ResourceManager.CommonTypes.AccessRule, + "BatchAccessRule", + "csharp" +); +@@clientName(Azure.ResourceManager.CommonTypes.AccessRuleDirection, + "BatchAccessRuleDirection", + "csharp" +); +@@clientName(Azure.ResourceManager.CommonTypes.AccessRuleProperties, + "BatchAccessRuleProperties", + "csharp" +); +@@clientName(Azure.ResourceManager.CommonTypes.IssueType, + "BatchIssueType", + "csharp" +); +@@clientName(Azure.ResourceManager.CommonTypes.ProvisioningIssue, + "BatchProvisioningIssue", + "csharp" +); +@@clientName(Azure.ResourceManager.CommonTypes.ProvisioningIssueProperties, + "BatchProvisioningIssueProperties", + "csharp" +); +@@clientName(Azure.ResourceManager.CommonTypes.ResourceAssociation, + "BatchResourceAssociation", + "csharp" +); +@@clientName(SecurityEncryptionTypes, "BatchSecurityEncryptionType", "csharp"); +@@clientName(PrivateEndpointConnection, + "BatchPrivateEndpointConnection", + "csharp" +); +@@clientName(PrivateLinkResource, "BatchPrivateLinkResource", "csharp"); +@@clientName(BatchAccountCreateParameters, + "BatchAccountCreateOrUpdateContent", + "csharp" +); +// @@clientName(CertificateCreateOrUpdateParameters, "Foooooooooooooo", "csharp"); +@@clientName(BatchAccountRegenerateKeyParameters, + "BatchAccountRegenerateKeyContent", + "csharp" +); diff --git a/specification/batch/Batch.Management/examples/2024-07-01/ApplicationCreate.json b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationCreate.json new file mode 100644 index 000000000000..32ec46dce379 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationCreate.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "applicationName": "app1", + "parameters": { + "properties": { + "allowUpdates": false, + "displayName": "myAppName" + } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "app1", + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", + "properties": { + "allowUpdates": false, + "displayName": "myAppName" + } + }, + "headers": { + "ETag": "W/\"0x8D64F8EBB3DC411\"" + } + } + }, + "operationId": "Application_Create", + "title": "ApplicationCreate" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/ApplicationDelete.json b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationDelete.json new file mode 100644 index 000000000000..2885b1018327 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationDelete.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "applicationName": "app1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "Application_Delete", + "title": "ApplicationDelete" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/ApplicationGet.json b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationGet.json new file mode 100644 index 000000000000..b56515e57cda --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationGet.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "applicationName": "app1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "app1", + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", + "properties": { + "allowUpdates": true, + "displayName": "Sample Application" + } + }, + "headers": { + "ETag": "W/\"0x8D64F915BDF7F00\"" + } + } + }, + "operationId": "Application_Get", + "title": "ApplicationGet" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/ApplicationList.json b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationList.json new file mode 100644 index 000000000000..ca4032c859d4 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationList.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "app1", + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", + "properties": { + "allowUpdates": false, + "defaultVersion": "1" + } + }, + { + "name": "app1", + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app2", + "properties": { + "allowUpdates": false, + "defaultVersion": "2.0", + "displayName": "myAppName" + } + } + ] + } + } + }, + "operationId": "Application_List", + "title": "ApplicationList" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageActivate.json b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageActivate.json new file mode 100644 index 000000000000..5132453596d3 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageActivate.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "applicationName": "app1", + "parameters": { + "format": "zip" + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "versionName": "1" + }, + "responses": { + "200": { + "body": { + "name": "1", + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1", + "properties": { + "format": "zip", + "lastActivationTime": "2017-06-27T18:48:09.9330991Z", + "state": "Active" + } + }, + "headers": { + "ETag": "W/\"0x8D64FEC83A3B436\"" + } + } + }, + "operationId": "ApplicationPackage_Activate", + "title": "ApplicationPackageActivate" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageCreate.json b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageCreate.json new file mode 100644 index 000000000000..2ffa02af7ca0 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageCreate.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "applicationName": "app1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "versionName": "1" + }, + "responses": { + "200": { + "body": { + "name": "1", + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1", + "properties": { + "state": "Pending", + "storageUrl": "http://mystorage1.blob.core.windows.net/myapp?mysas", + "storageUrlExpiry": "2017-06-27T18:48:09.9330991Z" + } + }, + "headers": { + "ETag": "W/\"0x8D64FEC83A3B436\"" + } + } + }, + "operationId": "ApplicationPackage_Create", + "title": "ApplicationPackageCreate" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageDelete.json b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageDelete.json new file mode 100644 index 000000000000..b15057a538b6 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageDelete.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "applicationName": "app1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "versionName": "1" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "ApplicationPackage_Delete", + "title": "ApplicationPackageDelete" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageGet.json b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageGet.json new file mode 100644 index 000000000000..12a814f3be3f --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageGet.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "applicationName": "app1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "versionName": "1" + }, + "responses": { + "200": { + "body": { + "name": "1", + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1", + "properties": { + "format": "zip", + "lastActivationTime": "2017-06-27T18:48:09.9330991Z", + "state": "Active" + } + }, + "headers": { + "ETag": "W/\"0x8D64FEC83A3B436\"" + } + } + }, + "operationId": "ApplicationPackage_Get", + "title": "ApplicationPackageGet" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageList.json b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageList.json new file mode 100644 index 000000000000..b64836a8ffef --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationPackageList.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "applicationName": "app1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.0", + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1.0", + "properties": { + "state": "Pending" + } + }, + { + "name": "2.0", + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/2.0", + "properties": { + "format": "zip", + "lastActivationTime": "2017-06-27T18:48:09.9330991Z", + "state": "Active" + } + } + ] + } + } + }, + "operationId": "ApplicationPackage_List", + "title": "ApplicationPackageList" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/ApplicationUpdate.json b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationUpdate.json new file mode 100644 index 000000000000..910c723de5b7 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/ApplicationUpdate.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "applicationName": "app1", + "parameters": { + "properties": { + "allowUpdates": true, + "defaultVersion": "2", + "displayName": "myAppName" + } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "app1", + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", + "properties": { + "allowUpdates": true, + "defaultVersion": "2", + "displayName": "myAppName" + } + }, + "headers": { + "ETag": "W/\"0x8D64F915BDF7F00\"" + } + } + }, + "operationId": "Application_Update", + "title": "ApplicationUpdate" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_BYOS.json b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_BYOS.json new file mode 100644 index 000000000000..fa91b16618e6 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_BYOS.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "location": "japaneast", + "properties": { + "autoStorage": { + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "keyVaultReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", + "url": "http://sample.vault.azure.net/" + }, + "poolAllocationMode": "UserSubscription" + } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "dedicatedCoreQuota": 20, + "keyVaultReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", + "url": "http://sample.vault.azure.net/" + }, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "UserSubscription", + "poolQuota": 20, + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + }, + "202": {} + }, + "operationId": "BatchAccount_Create", + "title": "BatchAccountCreate_BYOS" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_Default.json b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_Default.json new file mode 100644 index 000000000000..b2280a896005 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_Default.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "location": "japaneast", + "properties": { + "autoStorage": { + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + } + } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + }, + "202": {} + }, + "operationId": "BatchAccount_Create", + "title": "BatchAccountCreate_Default" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_SystemAssignedIdentity.json b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_SystemAssignedIdentity.json new file mode 100644 index 000000000000..14e9cfab62a3 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_SystemAssignedIdentity.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "identity": { + "type": "SystemAssigned" + }, + "location": "japaneast", + "properties": { + "autoStorage": { + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + } + } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "SystemAssigned", + "principalId": "1a2e532b-9900-414c-8600-cfc6126628d7", + "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd" + }, + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + }, + "202": {} + }, + "operationId": "BatchAccount_Create", + "title": "BatchAccountCreate_SystemAssignedIdentity" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_UserAssignedIdentity.json b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_UserAssignedIdentity.json new file mode 100644 index 000000000000..22be16f9e691 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountCreate_UserAssignedIdentity.json @@ -0,0 +1,58 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {} + } + }, + "location": "japaneast", + "properties": { + "autoStorage": { + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + } + } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": { + "clientId": "clientId1", + "principalId": "principalId1" + } + } + }, + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + }, + "202": {} + }, + "operationId": "BatchAccount_Create", + "title": "BatchAccountCreate_UserAssignedIdentity" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountDelete.json b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountDelete.json new file mode 100644 index 000000000000..e2f2b2f5ac25 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountDelete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.Batch/locations/japaneast/accountOperationResults/sampleacct-30a022cb-a64f-4fd5-9289-8b38b342e9de?api-version=2024-07-01" + } + }, + "204": {} + }, + "operationId": "BatchAccount_Delete", + "title": "BatchAccountDelete" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountGet.json b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountGet.json new file mode 100644 index 000000000000..bdb30f458bbc --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountGet.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + } + }, + "operationId": "BatchAccount_Get", + "title": "BatchAccountGet" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountGetKeys.json b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountGetKeys.json new file mode 100644 index 000000000000..b7f2eb7f3967 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountGetKeys.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "accountName": "sampleacct", + "primary": "AAAA==", + "secondary": "BBBB==" + } + } + }, + "operationId": "BatchAccount_GetKeys", + "title": "BatchAccountGetKeys" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountList.json b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountList.json new file mode 100644 index 000000000000..9ab1b473b54f --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountList.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2024-07-01", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + ] + } + } + }, + "operationId": "BatchAccount_List", + "title": "BatchAccountList" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountListByResourceGroup.json b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountListByResourceGroup.json new file mode 100644 index 000000000000..49624cea56e4 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountListByResourceGroup.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + ] + } + } + }, + "operationId": "BatchAccount_ListByResourceGroup", + "title": "BatchAccountListByResourceGroup" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountListOutboundNetworkDependenciesEndpoints.json b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountListOutboundNetworkDependenciesEndpoints.json new file mode 100644 index 000000000000..b9c469c22a4a --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountListOutboundNetworkDependenciesEndpoints.json @@ -0,0 +1,110 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "category": "Azure Batch", + "endpoints": [ + { + "description": "Applicable to job manager tasks, tasks that use job scoped authentication, or any task that makes calls to Batch.", + "domainName": "sampleacct.japaneast.batch.azure.com", + "endpointDetails": [ + { + "port": 443 + } + ] + }, + { + "description": "Applicable to all Azure Batch pools.", + "domainName": "japaneast.service.batch.azure.com", + "endpointDetails": [ + { + "port": 443 + } + ] + } + ] + }, + { + "category": "Azure Storage", + "endpoints": [ + { + "description": "AutoStorage endpoint for this Batch account. Applicable to all Azure Batch pools under this account.", + "domainName": "autostorageaccountname.blob.core.windows.net", + "endpointDetails": [ + { + "port": 443 + } + ] + }, + { + "description": "Applicable to all Azure Batch pools.", + "domainName": "*.blob.core.windows.net", + "endpointDetails": [ + { + "port": 443 + } + ] + }, + { + "description": "Applicable to all Azure Batch pools.", + "domainName": "*.table.core.windows.net", + "endpointDetails": [ + { + "port": 443 + } + ] + }, + { + "description": "Applicable to all Azure Batch pools.", + "domainName": "*.queue.core.windows.net", + "endpointDetails": [ + { + "port": 443 + } + ] + } + ] + }, + { + "category": "Microsoft Package Repository", + "endpoints": [ + { + "description": "Only applicable to pools containing a Mount Configuration. Learn about Mount Configurations in Batch at https://learn.microsoft.com/azure/batch/virtual-file-mount.", + "domainName": "packages.microsoft.com", + "endpointDetails": [ + { + "port": 443 + } + ] + } + ] + }, + { + "category": "Azure Key Vault", + "endpoints": [ + { + "description": "Only applicable to pools containing a Disk Encryption Configuration and whose VM size does not support encryption at host. Learn more about disk encryption in Azure Batch at https://learn.microsoft.com/azure/batch/disk-encryption. Learn more about encryption at host and supported VM sizes at https://learn.microsoft.com/azure/virtual-machines/disks-enable-host-based-encryption-portal.", + "domainName": "*.vault.azure.net", + "endpointDetails": [ + { + "port": 443 + } + ] + } + ] + } + ] + } + } + }, + "operationId": "BatchAccount_ListOutboundNetworkDependenciesEndpoints", + "title": "ListOutboundNetworkDependencies" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountRegenerateKey.json b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountRegenerateKey.json new file mode 100644 index 000000000000..5c00b9d5bb55 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountRegenerateKey.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "keyName": "Primary" + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "accountName": "sampleacct", + "primary": "AAAA==", + "secondary": "BBBB==" + } + } + }, + "operationId": "BatchAccount_RegenerateKey", + "title": "BatchAccountRegenerateKey" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountSynchronizeAutoStorageKeys.json b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountSynchronizeAutoStorageKeys.json new file mode 100644 index 000000000000..718f40074de9 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountSynchronizeAutoStorageKeys.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "204": {} + }, + "operationId": "BatchAccount_SynchronizeAutoStorageKeys", + "title": "BatchAccountSynchronizeAutoStorageKeys" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountUpdate.json b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountUpdate.json new file mode 100644 index 000000000000..286986ab6ac8 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/BatchAccountUpdate.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "autoStorage": { + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + } + } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", + "publicNetworkAccess": "Enabled" + } + } + } + }, + "operationId": "BatchAccount_Update", + "title": "BatchAccountUpdate" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/CertificateCancelDeletion.json b/specification/batch/Batch.Management/examples/2024-07-01/CertificateCancelDeletion.json new file mode 100644 index 000000000000..bdedd23fde99 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/CertificateCancelDeletion.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "type": "Microsoft.Batch/batchAccounts/certificates", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "properties": { + "format": "Pfx", + "previousProvisioningState": "Failed", + "previousProvisioningStateTransitionTime": "2017-07-21T00:22:54.3299195Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDD513C3EDBB\"" + } + } + }, + "operationId": "Certificate_CancelDeletion", + "title": "CertificateCancelDeletion" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/CertificateCreate_Full.json b/specification/batch/Batch.Management/examples/2024-07-01/CertificateCreate_Full.json new file mode 100644 index 000000000000..52d70249bc28 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/CertificateCreate_Full.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "parameters": { + "properties": { + "data": "MIIJmQIBAzCCCVUGCSqGSIb3DQEHAaCCCUYEgglCMIIJPjCCBE0GCSqGSI...", + "format": "Pfx", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" + } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "type": "Microsoft.Batch/batchAccounts/certificates", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "properties": { + "format": "Pfx", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDD5118668F7\"" + } + } + }, + "operationId": "Certificate_Create", + "title": "CreateCertificate - Full" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/CertificateCreate_Minimal.json b/specification/batch/Batch.Management/examples/2024-07-01/CertificateCreate_Minimal.json new file mode 100644 index 000000000000..fc0f4ee4e805 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/CertificateCreate_Minimal.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "parameters": { + "properties": { + "data": "MIIJmQIBAzCCCVUGCSqGSIb3DQEHAaCCCUYEgglCMIIJPjCCBE0GCSqGSI..." + } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "type": "Microsoft.Batch/batchAccounts/certificates", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "properties": { + "format": "Pfx", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDD5118668F7\"" + } + } + }, + "operationId": "Certificate_Create", + "title": "CreateCertificate - Minimal Pfx" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/CertificateCreate_MinimalCer.json b/specification/batch/Batch.Management/examples/2024-07-01/CertificateCreate_MinimalCer.json new file mode 100644 index 000000000000..b5b2e0ad9335 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/CertificateCreate_MinimalCer.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "parameters": { + "properties": { + "data": "MIIJmQIBAzCCCVUGCSqGSIb3DQEHAaCCCUYEgglCMIIJPjCCBE0GCSqGSI...", + "format": "Cer" + } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "type": "Microsoft.Batch/batchAccounts/certificates", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "properties": { + "format": "Cer", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDD5118668F7\"" + } + } + }, + "operationId": "Certificate_Create", + "title": "CreateCertificate - Minimal Cer" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/CertificateDelete.json b/specification/batch/Batch.Management/examples/2024-07-01/CertificateDelete.json new file mode 100644 index 000000000000..c94a172c797d --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/CertificateDelete.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/certificateOperationResults/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e-8D4EDFF164A11C9?api-version=2024-07-01", + "Retry-After": "15" + } + }, + "204": {} + }, + "operationId": "Certificate_Delete", + "title": "CertificateDelete" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/CertificateGet.json b/specification/batch/Batch.Management/examples/2024-07-01/CertificateGet.json new file mode 100644 index 000000000000..d9dfcdb4c729 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/CertificateGet.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "type": "Microsoft.Batch/batchAccounts/certificates", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "properties": { + "format": "Pfx", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDD5118668F7\"" + } + } + }, + "operationId": "Certificate_Get", + "title": "Get Certificate" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/CertificateGetWithDeletionError.json b/specification/batch/Batch.Management/examples/2024-07-01/CertificateGetWithDeletionError.json new file mode 100644 index 000000000000..dc4a850e6818 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/CertificateGetWithDeletionError.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "type": "Microsoft.Batch/batchAccounts/certificates", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "properties": { + "format": "Pfx", + "deleteCertificateError": { + "code": "NodesReferencingCertificate", + "message": "The specified certificate is being used by the below mentioned node(s)\nRequestId:2dc78afc-b15b-42d2-8c85-39cb61a0799e\nTime:2017-08-28T10:22:52.8633406Z", + "target": "BatchAccount", + "details": [ + { + "code": "Nodes", + "message": "node1, node3" + } + ] + }, + "previousProvisioningState": "Deleting", + "previousProvisioningStateTransitionTime": "2017-07-21T00:15:25.5625498Z", + "provisioningState": "Failed", + "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDD5118668F7\"" + } + } + }, + "operationId": "Certificate_Get", + "title": "Get Certificate with Deletion Error" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/CertificateList.json b/specification/batch/Batch.Management/examples/2024-07-01/CertificateList.json new file mode 100644 index 000000000000..ab75a207cf5b --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/CertificateList.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "maxResults": "1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates?api-version=2024-07-01&$skiptoken=NPK%3D28%3A2857p428pug%2022F53A7734C947B8NRK%3D45%3Asha1-c23dc7f22edc793856a7506fe66397ccb4a33b46SM%3D5%3AFalse", + "value": [ + { + "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "type": "Microsoft.Batch/batchAccounts/certificates", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "properties": { + "format": "Pfx", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" + } + } + ] + } + } + }, + "operationId": "Certificate_ListByBatchAccount", + "title": "ListCertificates" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/CertificateListWithFilter.json b/specification/batch/Batch.Management/examples/2024-07-01/CertificateListWithFilter.json new file mode 100644 index 000000000000..7382e8e4b88b --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/CertificateListWithFilter.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "$filter": "properties/provisioningStateTransitionTime gt '2017-05-01' or properties/provisioningState eq 'Failed'", + "$select": "properties/format,properties/provisioningState", + "accountName": "sampleacct", + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "type": "Microsoft.Batch/batchAccounts/certificates", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "properties": { + "format": "Pfx", + "provisioningState": "Failed" + } + }, + { + "name": "sha1-aeb228ffb0bf67a793d61dce263ebd16949f15a1", + "type": "Microsoft.Batch/batchAccounts/certificates", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-aeb228ffb0bf67a793d61dce263ebd16949f15a1", + "properties": { + "format": "Cer", + "provisioningState": "Failed" + } + } + ] + } + } + }, + "operationId": "Certificate_ListByBatchAccount", + "title": "ListCertificates - Filter and Select" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/CertificateUpdate.json b/specification/batch/Batch.Management/examples/2024-07-01/CertificateUpdate.json new file mode 100644 index 000000000000..d7ceaf2f6aae --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/CertificateUpdate.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "parameters": { + "properties": { + "data": "MIIJsgIBAzCCCW4GCSqGSIb3DQE...", + "password": "<ExamplePassword>" + } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "type": "Microsoft.Batch/batchAccounts/certificates", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "properties": { + "format": "Pfx", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDD5118668F7\"" + } + } + }, + "operationId": "Certificate_Update", + "title": "UpdateCertificate" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/DetectorGet.json b/specification/batch/Batch.Management/examples/2024-07-01/DetectorGet.json new file mode 100644 index 000000000000..49058b6774c0 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/DetectorGet.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "detectorId": "poolsAndNodes", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "poolsAndNodes", + "type": "Microsoft.Batch/batchAccounts/detectors", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/detectors/poolsAndNodes", + "properties": { + "value": "ew0KICAibWV0YWRhdGEiOiB7DQogICAgImlkIjogInBvb2xzQW5kTm9kZXMiLA0KICAgICJuYW1lIjogIlBvb2xzIGFuZCBOb2RlcyIsDQogICAgImRlc2NyaXB0aW9uIjogbnVsbCwNCiAgICAiYXV0aG9yIjogIiIsDQogICAgImNhdGVnb3J5IjogbnVsbCwNCiAgICAic3VwcG9ydFRvcGljTGlzdCI6IFsNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDc3IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDYxIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY1IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY2IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY5IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDcyIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDc5IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDgyIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDkxIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDkzIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDk0IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfQ0KICAgIF0sDQogICAgImFuYWx5c2lzVHlwZXMiOiBudWxsLA0KICAgICJ0eXBlIjogIkFuYWx5c2lzIiwNCiAgICAic2NvcmUiOiAwLjANCiAgfSwNCiAgImRhdGFzZXQiOiBbXSwNCiAgInN0YXR1cyI6IHsNCiAgICAibWVzc2FnZSI6IG51bGwsDQogICAgInN0YXR1c0lkIjogNA0KICB9LA0KICAiZGF0YVByb3ZpZGVyc01ldGFkYXRhIjogbnVsbCwNCiAgInN1Z2dlc3RlZFV0dGVyYW5jZXMiOiBudWxsDQp9" + } + } + } + }, + "operationId": "BatchAccount_GetDetector", + "title": "GetDetector" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/DetectorList.json b/specification/batch/Batch.Management/examples/2024-07-01/DetectorList.json new file mode 100644 index 000000000000..5a584dbdd99b --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/DetectorList.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "poolsAndNodes", + "type": "Microsoft.Batch/batchAccounts/detectors", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/detectors/poolsAndNodes", + "properties": { + "value": "ew0KICAibWV0YWRhdGEiOiB7DQogICAgImlkIjogInBvb2xzQW5kTm9kZXMiLA0KICAgICJuYW1lIjogIlBvb2xzIGFuZCBOb2RlcyIsDQogICAgImRlc2NyaXB0aW9uIjogbnVsbCwNCiAgICAiYXV0aG9yIjogIiIsDQogICAgImNhdGVnb3J5IjogbnVsbCwNCiAgICAic3VwcG9ydFRvcGljTGlzdCI6IFsNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDc3IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDYxIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY1IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY2IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY5IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDcyIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDc5IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDgyIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDkxIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDkzIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDk0IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfQ0KICAgIF0sDQogICAgImFuYWx5c2lzVHlwZXMiOiBudWxsLA0KICAgICJ0eXBlIjogIkFuYWx5c2lzIiwNCiAgICAic2NvcmUiOiAwLjANCiAgfSwNCiAgImRhdGFzZXQiOiBbXSwNCiAgInN0YXR1cyI6IHsNCiAgICAibWVzc2FnZSI6IG51bGwsDQogICAgInN0YXR1c0lkIjogNA0KICB9LA0KICAiZGF0YVByb3ZpZGVyc01ldGFkYXRhIjogbnVsbCwNCiAgInN1Z2dlc3RlZFV0dGVyYW5jZXMiOiBudWxsDQp9" + } + } + ] + } + } + }, + "operationId": "BatchAccount_ListDetectors", + "title": "ListDetectors" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/LocationCheckNameAvailability_AlreadyExists.json b/specification/batch/Batch.Management/examples/2024-07-01/LocationCheckNameAvailability_AlreadyExists.json new file mode 100644 index 000000000000..4461d51cc4d3 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/LocationCheckNameAvailability_AlreadyExists.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2024-07-01", + "locationName": "japaneast", + "parameters": { + "name": "existingaccountname", + "type": "Microsoft.Batch/batchAccounts" + }, + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "message": "An account named 'existingaccountname' is already in use.", + "nameAvailable": false, + "reason": "AlreadyExists" + } + } + }, + "operationId": "Location_CheckNameAvailability", + "title": "LocationCheckNameAvailability_AlreadyExists" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/LocationCheckNameAvailability_Available.json b/specification/batch/Batch.Management/examples/2024-07-01/LocationCheckNameAvailability_Available.json new file mode 100644 index 000000000000..1dbc0ea0818b --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/LocationCheckNameAvailability_Available.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2024-07-01", + "locationName": "japaneast", + "parameters": { + "name": "newaccountname", + "type": "Microsoft.Batch/batchAccounts" + }, + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "nameAvailable": true + } + } + }, + "operationId": "Location_CheckNameAvailability", + "title": "LocationCheckNameAvailability_Available" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/LocationGetQuotas.json b/specification/batch/Batch.Management/examples/2024-07-01/LocationGetQuotas.json new file mode 100644 index 000000000000..6f588b333a80 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/LocationGetQuotas.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "api-version": "2024-07-01", + "locationName": "japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "accountQuota": 1 + } + } + }, + "operationId": "Location_GetQuotas", + "title": "LocationGetQuotas" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/LocationListVirtualMachineSkus.json b/specification/batch/Batch.Management/examples/2024-07-01/LocationListVirtualMachineSkus.json new file mode 100644 index 000000000000..8585340af824 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/LocationListVirtualMachineSkus.json @@ -0,0 +1,138 @@ +{ + "parameters": { + "api-version": "2024-07-01", + "locationName": "japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Standard_D1_v2", + "capabilities": [ + { + "name": "MaxResourceVolumeMB", + "value": "20480" + }, + { + "name": "vCPUs", + "value": "1" + }, + { + "name": "HyperVGenerations", + "value": "V1" + }, + { + "name": "MemoryGB", + "value": "0.75" + }, + { + "name": "LowPriorityCapable", + "value": "False" + }, + { + "name": "vCPUsAvailable", + "value": "1" + }, + { + "name": "EphemeralOSDiskSupported", + "value": "False" + } + ], + "familyName": "standardDFamily" + }, + { + "name": "Standard_A1", + "batchSupportEndOfLife": "2024-08-31T00:00:00Z", + "capabilities": [ + { + "name": "MaxResourceVolumeMB", + "value": "71680" + }, + { + "name": "OSVhdSizeMB", + "value": "1047552" + }, + { + "name": "vCPUs", + "value": "1" + }, + { + "name": "MemoryPreservingMaintenanceSupported", + "value": "True" + }, + { + "name": "HyperVGenerations", + "value": "V1" + }, + { + "name": "MemoryGB", + "value": "1.75" + }, + { + "name": "MaxDataDiskCount", + "value": "2" + }, + { + "name": "CpuArchitectureType", + "value": "x64" + }, + { + "name": "LowPriorityCapable", + "value": "False" + }, + { + "name": "PremiumIO", + "value": "False" + }, + { + "name": "VMDeploymentTypes", + "value": "IaaS,PaaS" + }, + { + "name": "vCPUsAvailable", + "value": "1" + }, + { + "name": "ACUs", + "value": "100" + }, + { + "name": "vCPUsPerCore", + "value": "1" + }, + { + "name": "EphemeralOSDiskSupported", + "value": "False" + }, + { + "name": "EncryptionAtHostSupported", + "value": "False" + }, + { + "name": "CapacityReservationSupported", + "value": "False" + }, + { + "name": "AcceleratedNetworkingEnabled", + "value": "False" + }, + { + "name": "RdmaEnabled", + "value": "False" + }, + { + "name": "MaxNetworkInterfaces", + "value": "2" + } + ], + "familyName": "standardA0_A7Family" + } + ] + } + } + }, + "operationId": "Location_ListSupportedVirtualMachineSkus", + "title": "LocationListVirtualMachineSkus" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/NspConfigurationGet.json b/specification/batch/Batch.Management/examples/2024-07-01/NspConfigurationGet.json new file mode 100644 index 000000000000..7a99e59c8e03 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/NspConfigurationGet.json @@ -0,0 +1,69 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "networkSecurityPerimeterConfigurationName": "00000000-0000-0000-0000-000000000000.sampleassociation", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "00000000-0000-0000-0000-000000000000.sampleassociation", + "type": "Microsoft.Batch/batchAccounts/networkSecurityPerimeterConfigurations", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/networkSecurityPerimeterConfigurations/00000000-0000-0000-0000-000000000000.sampleassociation", + "properties": { + "networkSecurityPerimeter": { + "id": "/subscriptions/perimeterSubscriptionId/resourceGroups/perimeterResourceGroupName/providers/Microsoft.Network/networkSecurityPerimeters/perimeterName", + "location": "perimeterLocation", + "perimeterGuid": "00000000-0000-0000-0000-000000000000" + }, + "profile": { + "name": "profileName", + "accessRules": [ + { + "name": "accessRule1", + "properties": { + "addressPrefixes": [ + "10.11.0.0/16", + "10.10.1.0/24" + ], + "direction": "Inbound", + "emailAddresses": [], + "fullyQualifiedDomainNames": [], + "networkSecurityPerimeters": [], + "phoneNumbers": [], + "subscriptions": [] + } + }, + { + "name": "accessRule2", + "properties": { + "addressPrefixes": [], + "direction": "Outbound", + "emailAddresses": [], + "fullyQualifiedDomainNames": [ + "paasrp1.contoso.org", + "paasrp2.contoso.org" + ], + "networkSecurityPerimeters": [], + "phoneNumbers": [], + "subscriptions": [] + } + } + ], + "accessRulesVersion": 1 + }, + "provisioningIssues": [], + "provisioningState": "Succeeded", + "resourceAssociation": { + "name": "sampleassociation", + "accessMode": "Learning" + } + } + } + } + }, + "operationId": "NetworkSecurityPerimeter_GetConfiguration", + "title": "GetNspConfiguration" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/NspConfigurationReconcile.json b/specification/batch/Batch.Management/examples/2024-07-01/NspConfigurationReconcile.json new file mode 100644 index 000000000000..f7524a38b8ba --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/NspConfigurationReconcile.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "networkSecurityPerimeterConfigurationName": "00000000-0000-0000-0000-000000000000.sampleassociation", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/networkSecurityPerimeterConfigurationOperationResults/AcceptedReconciling$00000000-0000-0000-0000-000000000000.sampleassociation$00000000-1111-2222-3333-444444444444?api-version=2024-07-01", + "Retry-After": "15" + } + } + }, + "operationId": "NetworkSecurityPerimeter_ReconcileConfiguration", + "title": "ReconcileNspConfiguration" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/NspConfigurationsList.json b/specification/batch/Batch.Management/examples/2024-07-01/NspConfigurationsList.json new file mode 100644 index 000000000000..7eeb69517ac8 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/NspConfigurationsList.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "00000000-0000-0000-0000-000000000000.sampleassociation", + "type": "Microsoft.Batch/batchAccounts/networkSecurityPerimeterConfigurations", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/networkSecurityPerimeterConfigurations/00000000-0000-0000-0000-000000000000.sampleassociation", + "properties": { + "networkSecurityPerimeter": { + "id": "/subscriptions/perimeterSubscriptionId/resourceGroups/perimeterResourceGroupName/providers/Microsoft.Network/networkSecurityPerimeters/perimeterName", + "location": "perimeterLocation", + "perimeterGuid": "00000000-0000-0000-0000-000000000000" + }, + "profile": { + "name": "profileName", + "accessRules": [ + { + "name": "accessRule1", + "properties": { + "addressPrefixes": [ + "10.11.0.0/16", + "10.10.1.0/24" + ], + "direction": "Inbound", + "emailAddresses": [], + "fullyQualifiedDomainNames": [], + "networkSecurityPerimeters": [], + "phoneNumbers": [], + "subscriptions": [] + } + }, + { + "name": "accessRule2", + "properties": { + "addressPrefixes": [], + "direction": "Outbound", + "emailAddresses": [], + "fullyQualifiedDomainNames": [ + "paasrp1.contoso.org", + "paasrp2.contoso.org" + ], + "networkSecurityPerimeters": [], + "phoneNumbers": [], + "subscriptions": [] + } + } + ], + "accessRulesVersion": 1 + }, + "provisioningIssues": [], + "provisioningState": "Succeeded", + "resourceAssociation": { + "name": "sampleassociation", + "accessMode": "Learning" + } + } + } + ] + } + } + }, + "operationId": "NetworkSecurityPerimeter_ListConfigurations", + "title": "ListNspConfigurations" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/OperationsList.json b/specification/batch/Batch.Management/examples/2024-07-01/OperationsList.json new file mode 100644 index 000000000000..516fff82b519 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/OperationsList.json @@ -0,0 +1,572 @@ +{ + "parameters": { + "api-version": "2024-07-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.Batch/batchAccounts/providers/Microsoft.Insights/diagnosticSettings/read", + "display": { + "description": "Gets the diagnostic setting for the resource", + "operation": "Read diagnostic setting", + "provider": "Microsoft Batch", + "resource": "Batch Accounts" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/providers/Microsoft.Insights/diagnosticSettings/write", + "display": { + "description": "Creates or updates the diagnostic setting for the resource", + "operation": "Write diagnostic setting", + "provider": "Microsoft Batch", + "resource": "Batch Accounts" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/providers/Microsoft.Insights/logDefinitions/read", + "display": { + "description": "Gets the available logs for the Batch service", + "operation": "Read Batch service log definitions", + "provider": "Microsoft Batch", + "resource": "Batch Account Log Definitions" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/providers/Microsoft.Insights/metricDefinitions/read", + "display": { + "description": "Gets the available metrics for the Batch service", + "operation": "Read Batch service metric definitions", + "provider": "Microsoft Batch", + "resource": "Batch Account Metric Definitions" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/jobs/read", + "display": { + "description": "Lists jobs on a Batch account or gets the properties of a job", + "operation": "List or Get Jobs", + "provider": "Microsoft Batch", + "resource": "Jobs" + }, + "isDataAction": true + }, + { + "name": "Microsoft.Batch/batchAccounts/jobs/write", + "display": { + "description": "Creates a new job on a Batch account or updates an existing job", + "operation": "Create or Update Job", + "provider": "Microsoft Batch", + "resource": "Jobs" + }, + "isDataAction": true + }, + { + "name": "Microsoft.Batch/batchAccounts/jobs/delete", + "display": { + "description": "Deletes a job from a Batch account", + "operation": "Delete Job", + "provider": "Microsoft Batch", + "resource": "Jobs" + }, + "isDataAction": true + }, + { + "name": "Microsoft.Batch/batchAccounts/jobSchedules/read", + "display": { + "description": "Lists job schedules on a Batch account or gets the properties of a job schedule", + "operation": "List or Get Job Schedules", + "provider": "Microsoft Batch", + "resource": "Job Schedules" + }, + "isDataAction": true + }, + { + "name": "Microsoft.Batch/batchAccounts/jobSchedules/write", + "display": { + "description": "Creates a new job schedule on a Batch account or updates an existing job schedule", + "operation": "Create or Update Job Schedule", + "provider": "Microsoft Batch", + "resource": "Job Schedules" + }, + "isDataAction": true + }, + { + "name": "Microsoft.Batch/batchAccounts/jobSchedules/delete", + "display": { + "description": "Deletes a job schedule from a Batch account", + "operation": "Delete Job Schedule", + "provider": "Microsoft Batch", + "resource": "Job Schedules" + }, + "isDataAction": true + }, + { + "name": "Microsoft.Batch/operations/read", + "display": { + "description": "Lists operations available on Microsoft.Batch resource provider", + "operation": "List Available Batch Operations", + "provider": "Microsoft Batch", + "resource": "Available Batch Operations" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/read", + "display": { + "description": "Lists Batch accounts or gets the properties of a Batch account", + "operation": "List or Get Batch Accounts", + "provider": "Microsoft Batch", + "resource": "Batch Accounts" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/write", + "display": { + "description": "Creates a new Batch account or updates an existing Batch account", + "operation": "Create or Update Batch Account", + "provider": "Microsoft Batch", + "resource": "Batch Accounts" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/delete", + "display": { + "description": "Deletes a Batch account", + "operation": "Delete Batch Account", + "provider": "Microsoft Batch", + "resource": "Batch Accounts" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/listkeys/action", + "display": { + "description": "Lists access keys for a Batch account", + "operation": "List Batch Account Keys", + "provider": "Microsoft Batch", + "resource": "Batch Accounts" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/regeneratekeys/action", + "display": { + "description": "Regenerates access keys for a Batch account", + "operation": "Regenerate Batch Account Keys", + "provider": "Microsoft Batch", + "resource": "Batch Accounts" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/locations/quotas/read", + "display": { + "description": "Gets Batch quotas of the specified subscription at the specified Azure region", + "operation": "Get Batch Quotas", + "provider": "Microsoft Batch", + "resource": "Batch Quotas" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/locations/checkNameAvailability/action", + "display": { + "description": "Checks that the account name is valid and not in use.", + "operation": "Check Name Availability", + "provider": "Microsoft Batch", + "resource": "Name Availability" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/operationResults/read", + "display": { + "description": "Gets the results of a long running Batch account operation", + "operation": "Get Batch account operation results", + "provider": "Microsoft Batch", + "resource": "Batch Resource Provider" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/locations/accountOperationResults/read", + "display": { + "description": "Gets the results of a long running Batch account operation", + "operation": "Get Batch account operation results", + "provider": "Microsoft Batch", + "resource": "Batch Resource Provider" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/register/action", + "display": { + "description": "Registers the subscription for the Batch Resource Provider and enables the creation of Batch accounts", + "operation": "Register the Batch Resource Provider", + "provider": "Microsoft Batch", + "resource": "Batch Resource Provider" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/unregister/action", + "display": { + "description": "Unregisters the subscription for the Batch Resource Provider preventing the creation of Batch accounts", + "operation": "Unregister the Batch Resource Provider", + "provider": "Microsoft Batch", + "resource": "Batch Resource Provider" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/syncAutoStorageKeys/action", + "display": { + "description": "Synchronizes access keys for the auto storage account configured for a Batch account", + "operation": "Synchronize Auto Storage Account Keys", + "provider": "Microsoft Batch", + "resource": "Batch Accounts" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/read", + "display": { + "description": "Lists applications or gets the properties of an application", + "operation": "List or Get Applications", + "provider": "Microsoft Batch", + "resource": "Applications" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/write", + "display": { + "description": "Creates a new application or updates an existing application", + "operation": "Create or Update Application", + "provider": "Microsoft Batch", + "resource": "Applications" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/delete", + "display": { + "description": "Deletes an application", + "operation": "Delete Application", + "provider": "Microsoft Batch", + "resource": "Applications" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/versions/read", + "display": { + "description": "Gets the properties of an application package", + "operation": "Get Application Package", + "provider": "Microsoft Batch", + "resource": "Application Packages" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/versions/write", + "display": { + "description": "Creates a new application package or updates an existing application package", + "operation": "Create or Update Application Package", + "provider": "Microsoft Batch", + "resource": "Application Packages" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/versions/delete", + "display": { + "description": "Deletes an application package", + "operation": "Delete Application Package", + "provider": "Microsoft Batch", + "resource": "Application Packages" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/versions/activate/action", + "display": { + "description": "Activates an application package", + "operation": "Activate Application Package", + "provider": "Microsoft Batch", + "resource": "Application Packages" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/certificates/read", + "display": { + "description": "Lists certificates on a Batch account or gets the properties of a certificate", + "operation": "List or Get Certificates", + "provider": "Microsoft Batch", + "resource": "Certificates" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/certificates/write", + "display": { + "description": "Creates a new certificate on a Batch account or updates an existing certificate", + "operation": "Create or Update Certificate", + "provider": "Microsoft Batch", + "resource": "Certificates" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/certificates/delete", + "display": { + "description": "Deletes a certificate from a Batch account", + "operation": "Delete Certificate", + "provider": "Microsoft Batch", + "resource": "Certificates" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/certificates/cancelDelete/action", + "display": { + "description": "Cancels the failed deletion of a certificate on a Batch account", + "operation": "Cancel Delete Certificate", + "provider": "Microsoft Batch", + "resource": "Certificates" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/certificateOperationResults/read", + "display": { + "description": "Gets the results of a long running certificate operation on a Batch account", + "operation": "Get Certificate Operation Results", + "provider": "Microsoft Batch", + "resource": "Certificates" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/pools/read", + "display": { + "description": "Lists pools on a Batch account or gets the properties of a pool", + "operation": "List or Get Pools", + "provider": "Microsoft Batch", + "resource": "Pools" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/pools/write", + "display": { + "description": "Creates a new pool on a Batch account or updates an existing pool", + "operation": "Create or Update Pool", + "provider": "Microsoft Batch", + "resource": "Pools" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/pools/delete", + "display": { + "description": "Deletes a pool from a Batch account", + "operation": "Delete Pool", + "provider": "Microsoft Batch", + "resource": "Pools" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/pools/stopResize/action", + "display": { + "description": "Stops an ongoing resize operation on a Batch account pool", + "operation": "Stop Pool Resize", + "provider": "Microsoft Batch", + "resource": "Pools" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/pools/disableAutoscale/action", + "display": { + "description": "Disables automatic scaling for a Batch account pool", + "operation": "Disable Pool AutoScale", + "provider": "Microsoft Batch", + "resource": "Pools" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/poolOperationResults/read", + "display": { + "description": "Gets the results of a long running pool operation on a Batch account", + "operation": "Get Pool Operation Results", + "provider": "Microsoft Batch", + "resource": "Pools" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/locations/virtualMachineSkus/read", + "display": { + "description": "Lists available Batch supported Virtual Machine VM sizes at the given location", + "operation": "List Supported Batch Virtual Machine VM", + "provider": "Microsoft Batch", + "resource": "Batch Supported Skus" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/locations/cloudServiceSkus/read", + "display": { + "description": "Lists available Batch supported Cloud Service VM sizes at the given location", + "operation": "List Supported Batch Cloud Service VM", + "provider": "Microsoft Batch", + "resource": "Batch Supported Skus" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/privateLinkResources/read", + "display": { + "description": "Gets the properties of a Private link resource or Lists Private link resources on a Batch account", + "operation": "Get or List Private link resources", + "provider": "Microsoft Batch", + "resource": "PrivateLinkResources" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnections/write", + "display": { + "description": "Update an existing Private endpoint connection on a Batch account", + "operation": "Update Private endpoint connection", + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnections" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnections/read", + "display": { + "description": "Gets Private endpoint connection or Lists Private endpoint connections on a Batch account", + "operation": "Get or List Private endpoint connection", + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnections" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionResults/read", + "display": { + "description": "Gets the results of a long running Batch account private endpoint connection operation", + "operation": "Get Batch account private endpoint connection operation results", + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnections" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxies/validate/action", + "display": { + "description": "Validates a Private endpoint connection proxy on a Batch account", + "operation": "Validates a Private endpoint connection proxy", + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxies/write", + "display": { + "description": "Create a new Private endpoint connection proxy on a Batch account", + "operation": "Create or Update Private endpoint connection proxy", + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxies/read", + "display": { + "description": "Gets Private endpoint connection proxy on a Batch account", + "operation": "Get Private endpoint connection proxy", + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxies/delete", + "display": { + "description": "Delete a Private endpoint connection proxy on a Batch account", + "operation": "Delete Private endpoint connection proxy", + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxyResults/read", + "display": { + "description": "Gets the results of a long running Batch account private endpoint connection proxy operation", + "operation": "Get Batch account private endpoint connection proxy operation results", + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/outboundNetworkDependenciesEndpoints/read", + "display": { + "description": "Lists the outbound network dependency endpoints for a Batch account", + "operation": "List Outbound Network Dependency Endpoints", + "provider": "Microsoft Batch", + "resource": "Outbound Network Dependencies Endpoints" + }, + "isDataAction": false, + "origin": "user,system" + } + ] + } + } + }, + "operationId": "Operations_List", + "title": "OperationsList" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_AcceleratedNetworking.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_AcceleratedNetworking.json new file mode 100644 index 000000000000..21a903131e78 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_AcceleratedNetworking.json @@ -0,0 +1,95 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "networkConfiguration": { + "enableAcceleratedNetworking": true, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "vmSize": "STANDARD_D1_V2" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Steady", + "allocationStateTransitionTime": "2023-04-27T03:00:34.0646502Z", + "creationTime": "2023-04-27T02:59:41.8592226Z", + "currentDedicatedNodes": 1, + "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-04-27T02:59:41.8592226Z", + "networkConfiguration": { + "dynamicVnetAssignmentScope": "none", + "enableAcceleratedNetworking": true, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-04-27T02:59:41.8592226Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-04-27T02:59:41.8592226Z", + "targetDedicatedNodes": 1 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D1_V2" + } + }, + "headers": { + "ETag": "W/\"0x8DB46CB72A227E2\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - accelerated networking" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_MinimalVirtualMachineConfiguration.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_MinimalVirtualMachineConfiguration.json new file mode 100644 index 000000000000..e76c74944e5b --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_MinimalVirtualMachineConfiguration.json @@ -0,0 +1,78 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18.04-LTS", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "scaleSettings": { + "autoScale": { + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" + } + }, + "vmSize": "STANDARD_D4" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18.04-LTS", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "scaleSettings": { + "autoScale": { + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - Minimal VirtualMachineConfiguration" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_NoPublicIPAddresses.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_NoPublicIPAddresses.json new file mode 100644 index 000000000000..823f992e6be2 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_NoPublicIPAddresses.json @@ -0,0 +1,78 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "networkConfiguration": { + "publicIPAddressConfiguration": { + "provision": "NoPublicIPAddresses" + }, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "vmSize": "STANDARD_D4" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Steady", + "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "networkConfiguration": { + "publicIPAddressConfiguration": { + "provision": "NoPublicIPAddresses" + }, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 0, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - No public IP" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_PublicIPs.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_PublicIPs.json new file mode 100644 index 000000000000..2d21feaf688a --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_PublicIPs.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "networkConfiguration": { + "publicIPAddressConfiguration": { + "ipAddressIds": [ + "/subscriptions/12345678-1234-1234-1234-1234567890121/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135" + ], + "provision": "UserManaged" + }, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "vmSize": "STANDARD_D4" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Steady", + "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "networkConfiguration": { + "publicIPAddressConfiguration": { + "ipAddressIds": [ + "/subscriptions/12345678-1234-1234-1234-1234567890121/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135" + ], + "provision": "UserManaged" + }, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 0, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - Public IPs" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_ResourceTags.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_ResourceTags.json new file mode 100644 index 000000000000..889d4ba2de96 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_ResourceTags.json @@ -0,0 +1,93 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18_04-lts-gen2", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "resourceTags": { + "TagName1": "TagValue1", + "TagName2": "TagValue2" + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "vmSize": "Standard_d4s_v3" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2023-06-14T07:03:58.3231917Z", + "creationTime": "2023-06-14T07:03:58.3231917Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18_04-lts-gen2", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-06-14T07:03:58.3231917Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-06-14T07:03:58.3231917Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-09-27T07:33:13.0625789Z", + "targetDedicatedNodes": 1 + }, + "resourceTags": { + "TagName1": "TagValue1", + "TagName2": "TagValue2" + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4S_V3" + } + }, + "headers": { + "ETag": "W/\"0x8DB554F8E08BCF4\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - ResourceTags" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_SecurityProfile.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_SecurityProfile.json new file mode 100644 index 000000000000..bb2931ad5016 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_SecurityProfile.json @@ -0,0 +1,100 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18_04-lts-gen2", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04", + "securityProfile": { + "encryptionAtHost": true, + "securityType": "trustedLaunch", + "uefiSettings": { + "secureBootEnabled": null, + "vTpmEnabled": false + } + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "vmSize": "Standard_d4s_v3" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2023-06-14T07:03:58.3231917Z", + "creationTime": "2023-06-14T07:03:58.3231917Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18_04-lts-gen2", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04", + "securityProfile": { + "encryptionAtHost": true, + "securityType": "trustedLaunch", + "uefiSettings": { + "vTpmEnabled": false + } + } + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-06-14T07:03:58.3231917Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-06-14T07:03:58.3231917Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-06-14T07:03:58.3231917Z", + "targetDedicatedNodes": 1 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4S_V3" + } + }, + "headers": { + "ETag": "W/\"0x8DB554F8E08BCF4\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - SecurityProfile" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_SharedImageGallery.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_SharedImageGallery.json new file mode 100644 index 000000000000..a424d182f087 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_SharedImageGallery.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "vmSize": "STANDARD_D4" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Steady", + "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 0, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - Custom Image" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_Tags.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_Tags.json new file mode 100644 index 000000000000..530a4df6c6c5 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_Tags.json @@ -0,0 +1,85 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "0001-com-ubuntu-server-jammy", + "publisher": "Canonical", + "sku": "22_04-lts", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 22.04" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "vmSize": "Standard_d4s_v3" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2023-06-14T07:03:58.3231917Z", + "creationTime": "2023-06-14T07:03:58.3231917Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "0001-com-ubuntu-server-jammy", + "publisher": "Canonical", + "sku": "22_04-lts", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 22.04" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-06-14T07:03:58.3231917Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-06-14T07:03:58.3231917Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-09-27T07:33:13.0625789Z", + "targetDedicatedNodes": 1 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4S_V3" + } + }, + "headers": { + "ETag": "W/\"0x8DB554F8E08BCF4\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - Tags" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_UpgradePolicy.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_UpgradePolicy.json new file mode 100644 index 000000000000..068ad7ed544e --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_UpgradePolicy.json @@ -0,0 +1,133 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2019-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "nodePlacementConfiguration": { + "policy": "Zonal" + }, + "windowsConfiguration": { + "enableAutomaticUpdates": false + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 2, + "targetLowPriorityNodes": 0 + } + }, + "upgradePolicy": { + "automaticOSUpgradePolicy": { + "disableAutomaticRollback": true, + "enableAutomaticOSUpgrade": true, + "osRollingUpgradeDeferral": true, + "useRollingUpgradePolicy": true + }, + "mode": "automatic", + "rollingUpgradePolicy": { + "enableCrossZoneUpgrade": true, + "maxBatchInstancePercent": 20, + "maxUnhealthyInstancePercent": 20, + "maxUnhealthyUpgradedInstancePercent": 20, + "pauseTimeBetweenBatches": "PT0S", + "prioritizeUnhealthyInstances": false, + "rollbackFailedInstancesOnPolicyBreach": false + } + }, + "vmSize": "Standard_d4s_v3" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2023-05-11T06:16:44.2372184Z", + "creationTime": "2023-05-11T06:16:44.2372184Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2019-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "nodePlacementConfiguration": { + "policy": "Zonal" + }, + "windowsConfiguration": { + "enableAutomaticUpdates": false + } + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-05-11T06:16:44.2372184Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-05-11T06:16:44.2372184Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-05-11T06:16:44.2372184Z", + "targetDedicatedNodes": 2 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 2, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "upgradePolicy": { + "automaticOSUpgradePolicy": { + "disableAutomaticRollback": true, + "enableAutomaticOSUpgrade": true, + "osRollingUpgradeDeferral": true, + "useRollingUpgradePolicy": true + }, + "mode": "automatic", + "rollingUpgradePolicy": { + "enableCrossZoneUpgrade": true, + "maxBatchInstancePercent": 20, + "maxUnhealthyInstancePercent": 20, + "maxUnhealthyUpgradedInstancePercent": 20, + "pauseTimeBetweenBatches": "PT0S", + "prioritizeUnhealthyInstances": false, + "rollbackFailedInstancesOnPolicyBreach": false + } + }, + "vmSize": "STANDARD_D4S_V3" + } + }, + "headers": { + "ETag": "W/\"0x8DB51E64D3C3B69\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - UpgradePolicy" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_UserAssignedIdentities.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_UserAssignedIdentities.json new file mode 100644 index 000000000000..bf85ad55a106 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_UserAssignedIdentities.json @@ -0,0 +1,98 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {}, + "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": {} + } + }, + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18.04-LTS", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "scaleSettings": { + "autoScale": { + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" + } + }, + "vmSize": "STANDARD_D4" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": { + "clientId": "clientId1", + "principalId": "principalId1" + }, + "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": { + "clientId": "clientId2", + "principalId": "principalId2" + } + } + }, + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2020-10-01T10:22:55.9407275Z", + "creationTime": "2020-10-01T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18.04-LTS", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2020-10-01T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2020-10-01T10:22:55.9407275Z", + "scaleSettings": { + "autoScale": { + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - UserAssignedIdentities" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration.json new file mode 100644 index 000000000000..13ac26b1d67d --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration.json @@ -0,0 +1,201 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "dataDisks": [ + { + "caching": "ReadWrite", + "diskSizeGB": 30, + "lun": 0, + "storageAccountType": "Premium_LRS" + }, + { + "caching": "None", + "diskSizeGB": 200, + "lun": 1, + "storageAccountType": "Standard_LRS" + } + ], + "diskEncryptionConfiguration": { + "targets": [ + "OsDisk", + "TemporaryDisk" + ] + }, + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-Datacenter-SmallDisk", + "version": "latest" + }, + "licenseType": "Windows_Server", + "nodeAgentSkuId": "batch.node.windows amd64", + "nodePlacementConfiguration": { + "policy": "Zonal" + }, + "osDisk": { + "ephemeralOSDiskSettings": { + "placement": "CacheDisk" + } + }, + "windowsConfiguration": { + "enableAutomaticUpdates": false + } + } + }, + "networkConfiguration": { + "endpointConfiguration": { + "inboundNatPools": [ + { + "name": "testnat", + "backendPort": 12001, + "frontendPortRangeEnd": 15100, + "frontendPortRangeStart": 15000, + "networkSecurityGroupRules": [ + { + "access": "Allow", + "priority": 150, + "sourceAddressPrefix": "192.100.12.45", + "sourcePortRanges": [ + "1", + "2" + ] + }, + { + "access": "Deny", + "priority": 3500, + "sourceAddressPrefix": "*", + "sourcePortRanges": [ + "*" + ] + } + ], + "protocol": "TCP" + } + ] + } + }, + "scaleSettings": { + "autoScale": { + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" + } + }, + "vmSize": "STANDARD_D4" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "dataDisks": [ + { + "caching": "ReadWrite", + "diskSizeGB": 30, + "lun": 0, + "storageAccountType": "Premium_LRS" + }, + { + "caching": "None", + "diskSizeGB": 200, + "lun": 1, + "storageAccountType": "Standard_LRS" + } + ], + "diskEncryptionConfiguration": { + "targets": [ + "OsDisk", + "TemporaryDisk" + ] + }, + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-Datacenter-SmallDisk", + "version": "latest" + }, + "licenseType": "Windows_Server", + "nodeAgentSkuId": "batch.node.windows amd64", + "nodePlacementConfiguration": { + "policy": "Zonal" + }, + "windowsConfiguration": { + "enableAutomaticUpdates": false + } + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "networkConfiguration": { + "endpointConfiguration": { + "inboundNatPools": [ + { + "name": "testnat", + "backendPort": 12001, + "frontendPortRangeEnd": 15100, + "frontendPortRangeStart": 15000, + "networkSecurityGroupRules": [ + { + "access": "Allow", + "priority": 150, + "sourceAddressPrefix": "192.100.12.45", + "sourcePortRanges": [ + "1", + "2" + ] + }, + { + "access": "Deny", + "priority": 3500, + "sourceAddressPrefix": "*", + "sourcePortRanges": [ + "*" + ] + } + ], + "protocol": "TCP" + } + ] + } + }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "scaleSettings": { + "autoScale": { + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - Full VirtualMachineConfiguration" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration_Extensions.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration_Extensions.json new file mode 100644 index 000000000000..6e842de2db62 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration_Extensions.json @@ -0,0 +1,106 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "0001-com-ubuntu-server-focal", + "publisher": "Canonical", + "sku": "20_04-lts" + }, + "nodeAgentSkuId": "batch.node.ubuntu 20.04", + "extensions": [ + { + "name": "batchextension1", + "type": "KeyVaultForLinux", + "autoUpgradeMinorVersion": true, + "enableAutomaticUpgrade": true, + "publisher": "Microsoft.Azure.KeyVault", + "settings": { + "authenticationSettingsKey": "authenticationSettingsValue", + "secretsManagementSettingsKey": "secretsManagementSettingsValue" + }, + "typeHandlerVersion": "2.0" + } + ] + } + }, + "scaleSettings": { + "autoScale": { + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" + } + }, + "targetNodeCommunicationMode": "Default", + "vmSize": "STANDARD_D4" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "0001-com-ubuntu-server-focal", + "publisher": "Canonical", + "sku": "20_04-lts" + }, + "nodeAgentSkuId": "batch.node.ubuntu 20.04", + "extensions": [ + { + "name": "batchextension1", + "type": "KeyVaultForLinux", + "autoUpgradeMinorVersion": true, + "enableAutomaticUpgrade": true, + "publisher": "Microsoft.Azure.KeyVault", + "settings": { + "authenticationSettingsKey": "authenticationSettingsValue", + "secretsManagementSettingsKey": "secretsManagementSettingsValue" + }, + "typeHandlerVersion": "2.0" + } + ] + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "scaleSettings": { + "autoScale": { + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" + } + }, + "targetNodeCommunicationMode": "Default", + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - VirtualMachineConfiguration Extensions" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json new file mode 100644 index 000000000000..8767b2a84f51 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json @@ -0,0 +1,100 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "windowsserver", + "publisher": "microsoftwindowsserver", + "sku": "2022-datacenter-smalldisk" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "osDisk": { + "caching": "ReadWrite", + "diskSizeGB": 100, + "managedDisk": { + "storageAccountType": "StandardSSD_LRS" + }, + "writeAcceleratorEnabled": false + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "vmSize": "Standard_d2s_v3" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2023-08-24T02:12:27.7527697Z", + "creationTime": "2023-08-24T02:12:27.7527697Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "windowsserver", + "publisher": "microsoftwindowsserver", + "sku": "2022-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "osDisk": { + "caching": "ReadWrite", + "diskSizeGB": 100, + "managedDisk": { + "storageAccountType": "StandardSSD_LRS" + }, + "writeAcceleratorEnabled": false + } + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-08-24T02:12:27.7527697Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-08-24T02:12:27.7527697Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-08-24T02:12:27.7527697Z", + "targetDedicatedNodes": 1 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D2_V3" + } + }, + "headers": { + "ETag": "W/\"0x8DB51F14DC1A8AD\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - VirtualMachineConfiguration OSDisk" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json new file mode 100644 index 000000000000..d2ca2c85c240 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json @@ -0,0 +1,109 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2019-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "serviceArtifactReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile" + }, + "windowsConfiguration": { + "enableAutomaticUpdates": false + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 2, + "targetLowPriorityNodes": 0 + } + }, + "upgradePolicy": { + "automaticOSUpgradePolicy": { + "enableAutomaticOSUpgrade": true + }, + "mode": "automatic" + }, + "vmSize": "Standard_d4s_v3" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "mypool41", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2023-05-11T07:44:44.8580493Z", + "creationTime": "2023-05-11T07:44:44.8580493Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2019-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "serviceArtifactReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile" + }, + "windowsConfiguration": { + "enableAutomaticUpdates": false + } + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-05-11T07:44:44.8580493Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-05-11T07:44:44.8580493Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-05-11T07:44:44.8580493Z", + "targetDedicatedNodes": 2 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 2, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "upgradePolicy": { + "automaticOSUpgradePolicy": { + "enableAutomaticOSUpgrade": true + }, + "mode": "automatic" + }, + "vmSize": "STANDARD_D4S_V3" + } + }, + "headers": { + "ETag": "W/\"0x8DB51F14DC1A8AD\"" + } + } + }, + "operationId": "Pool_Create", + "title": "CreatePool - VirtualMachineConfiguration ServiceArtifactReference" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolDelete.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolDelete.json new file mode 100644 index 000000000000..4951c3b4b9e4 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolDelete.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/poolOperationResults/delete-testpool-8D4EDFF164A11C9?api-version=2024-07-01", + "Retry-After": "15" + } + }, + "204": {} + }, + "operationId": "Pool_Delete", + "title": "DeletePool" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolDisableAutoScale.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolDisableAutoScale.json new file mode 100644 index 000000000000..f23336a54107 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolDisableAutoScale.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18.04-LTS", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 3, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_DisableAutoScale", + "title": "Disable AutoScale" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolGet.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet.json new file mode 100644 index 000000000000..606d32207a39 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet.json @@ -0,0 +1,161 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "applicationLicenses": [ + "app-license0", + "app-license1" + ], + "applicationPackages": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234", + "version": "asdf" + } + ], + "certificates": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567", + "storeLocation": "LocalMachine", + "storeName": "MY", + "visibility": [ + "RemoteUser" + ] + } + ], + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-Datacenter-SmallDisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "interNodeCommunication": "Enabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "metadata": [ + { + "name": "metadata-1", + "value": "value-1" + }, + { + "name": "metadata-2", + "value": "value-2" + } + ], + "networkConfiguration": { + "endpointConfiguration": { + "inboundNatPools": [ + { + "name": "testnat", + "backendPort": 12001, + "frontendPortRangeEnd": 15100, + "frontendPortRangeStart": 15000, + "networkSecurityGroupRules": [ + { + "access": "Allow", + "priority": 150, + "sourceAddressPrefix": "192.100.12.45", + "sourcePortRanges": [ + "123", + "22" + ] + }, + { + "access": "Deny", + "priority": 3500, + "sourceAddressPrefix": "*", + "sourcePortRanges": [ + "*" + ] + } + ], + "protocol": "TCP" + } + ] + }, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "startTime": "2017-08-28T10:22:55.9407275Z", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT8M", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28 + } + }, + "startTask": { + "commandLine": "cmd /c SET", + "environmentSettings": [ + { + "name": "MYSET", + "value": "1234" + } + ], + "maxTaskRetryCount": 6, + "resourceFiles": [ + { + "fileMode": "777", + "filePath": "c:\\temp\\gohere", + "httpUrl": "https://testaccount.blob.core.windows.net/example-blob-file" + } + ], + "userIdentity": { + "autoUser": { + "elevationLevel": "Admin", + "scope": "Pool" + } + }, + "waitForSuccess": true + }, + "taskSchedulingPolicy": { + "nodeFillType": "Pack" + }, + "taskSlotsPerNode": 13, + "userAccounts": [ + { + "name": "username1", + "elevationLevel": "Admin", + "linuxUserConfiguration": { + "gid": 4567, + "uid": 1234 + } + } + ], + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Get", + "title": "GetPool" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_AcceleratedNetworking.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_AcceleratedNetworking.json new file mode 100644 index 000000000000..b2d7caeb9a79 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_AcceleratedNetworking.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Steady", + "allocationStateTransitionTime": "2023-04-28T02:33:40.82831Z", + "creationTime": "2023-04-28T02:32:32.8696419Z", + "currentDedicatedNodes": 1, + "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-04-28T02:32:32.8696419Z", + "networkConfiguration": { + "dynamicVnetAssignmentScope": "none", + "enableAcceleratedNetworking": true + }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-04-28T02:32:32.8696419Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-04-28T02:32:32.8696419Z", + "targetDedicatedNodes": 1 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D1_V2" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Get", + "title": "GetPool - AcceleratedNetworking" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_SecurityProfile.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_SecurityProfile.json new file mode 100644 index 000000000000..e50c784bd88b --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_SecurityProfile.json @@ -0,0 +1,71 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Steady", + "allocationStateTransitionTime": "2023-06-14T07:04:57.3413444Z", + "creationTime": "2023-06-14T07:03:58.3231917Z", + "currentDedicatedNodes": 1, + "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18_04-lts-gen2", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04", + "securityProfile": { + "encryptionAtHost": true, + "securityType": "trustedLaunch", + "uefiSettings": { + "vTpmEnabled": false + } + } + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-06-14T07:03:58.3231917Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-06-14T07:03:58.3231917Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-06-14T07:03:58.3231917Z", + "targetDedicatedNodes": 1 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4S_V3" + } + }, + "headers": { + "ETag": "W/\"0x8DB554F8E08BCF4\"" + } + } + }, + "operationId": "Pool_Get", + "title": "GetPool - SecurityProfile" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_UpgradePolicy.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_UpgradePolicy.json new file mode 100644 index 000000000000..bedde0ff7f00 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_UpgradePolicy.json @@ -0,0 +1,88 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Steady", + "allocationStateTransitionTime": "2023-05-11T06:10:31.4670326Z", + "creationTime": "2023-05-11T06:09:38.3178089Z", + "currentDedicatedNodes": 2, + "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2019-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "nodePlacementConfiguration": { + "policy": "Zonal" + }, + "windowsConfiguration": { + "enableAutomaticUpdates": false + } + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-05-11T06:09:38.3178089Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-05-11T06:09:38.3178089Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-05-11T06:09:38.3178089Z", + "targetDedicatedNodes": 2 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 2, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "upgradePolicy": { + "automaticOSUpgradePolicy": { + "disableAutomaticRollback": true, + "enableAutomaticOSUpgrade": true, + "osRollingUpgradeDeferral": true, + "useRollingUpgradePolicy": true + }, + "mode": "automatic", + "rollingUpgradePolicy": { + "enableCrossZoneUpgrade": true, + "maxBatchInstancePercent": 20, + "maxUnhealthyInstancePercent": 20, + "maxUnhealthyUpgradedInstancePercent": 20, + "pauseTimeBetweenBatches": "PT0S", + "prioritizeUnhealthyInstances": false, + "rollbackFailedInstancesOnPolicyBreach": false + } + }, + "vmSize": "STANDARD_D4S_V3" + } + }, + "headers": { + "ETag": "W/\"0x8DB51E64D3C3B69\"" + } + } + }, + "operationId": "Pool_Get", + "title": "GetPool - UpgradePolicy" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_VirtualMachineConfiguration_Extensions.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_VirtualMachineConfiguration_Extensions.json new file mode 100644 index 000000000000..c6fe0367dea6 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_VirtualMachineConfiguration_Extensions.json @@ -0,0 +1,79 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "0001-com-ubuntu-server-focal", + "publisher": "Canonical", + "sku": "20_04-lts" + }, + "nodeAgentSkuId": "batch.node.ubuntu 20.04", + "extensions": [ + { + "name": "batchextension1", + "type": "KeyVaultForLinux", + "autoUpgradeMinorVersion": true, + "enableAutomaticUpgrade": true, + "publisher": "Microsoft.Azure.KeyVault", + "settings": { + "authenticationSettingsKey": "authenticationSettingsValue", + "secretsManagementSettingsKey": "secretsManagementSettingsValue" + }, + "typeHandlerVersion": "2.0" + } + ] + } + }, + "interNodeCommunication": "Enabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "startTime": "2017-08-28T10:22:55.9407275Z", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT8M", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28 + } + }, + "targetNodeCommunicationMode": "Default", + "taskSchedulingPolicy": { + "nodeFillType": "Pack" + }, + "taskSlotsPerNode": 13, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Get", + "title": "GetPool - VirtualMachineConfiguration Extensions" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json new file mode 100644 index 000000000000..c420166f4e93 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Steady", + "allocationStateTransitionTime": "2023-08-24T02:13:22.4881351Z", + "creationTime": "2023-08-24T02:12:27.7527697Z", + "currentDedicatedNodes": 1, + "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "windowsserver", + "publisher": "microsoftwindowsserver", + "sku": "2022-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "osDisk": { + "caching": "ReadWrite", + "diskSizeGB": 100, + "managedDisk": { + "storageAccountType": "StandardSSD_LRS" + }, + "writeAcceleratorEnabled": false + } + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-08-24T02:12:27.7527697Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-08-24T02:12:27.7527697Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-08-24T02:12:27.7527697Z", + "targetDedicatedNodes": 1 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D2_V3" + } + }, + "headers": { + "ETag": "W/\"0x8DB51E64D3C3B69\"" + } + } + }, + "operationId": "Pool_Get", + "title": "GetPool - VirtualMachineConfiguration OSDisk" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json new file mode 100644 index 000000000000..b2daf6ac50c1 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Steady", + "allocationStateTransitionTime": "2023-05-11T07:45:42.0881659Z", + "creationTime": "2023-05-11T07:44:44.8580493Z", + "currentDedicatedNodes": 2, + "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2019-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "serviceArtifactReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile" + }, + "windowsConfiguration": { + "enableAutomaticUpdates": false + } + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-05-11T07:44:44.8580493Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-05-11T07:44:44.8580493Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-05-11T07:44:44.8580493Z", + "targetDedicatedNodes": 2 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 2, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "upgradePolicy": { + "automaticOSUpgradePolicy": { + "enableAutomaticOSUpgrade": true + }, + "mode": "automatic" + }, + "vmSize": "STANDARD_D4S_V3" + } + }, + "headers": { + "ETag": "W/\"0x8DB51E64D3C3B69\"" + } + } + }, + "operationId": "Pool_Get", + "title": "GetPool - VirtualMachineConfiguration ServiceArtifactReference" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolList.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolList.json new file mode 100644 index 000000000000..ce62864cbad1 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolList.json @@ -0,0 +1,167 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Steady", + "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "applicationLicenses": [ + "app-license0", + "app-license1" + ], + "applicationPackages": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234", + "version": "asdf" + } + ], + "certificates": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567", + "storeLocation": "LocalMachine", + "storeName": "MY", + "visibility": [ + "RemoteUser" + ] + } + ], + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-Datacenter-SmallDisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "interNodeCommunication": "Enabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "metadata": [ + { + "name": "metadata-1", + "value": "value-1" + }, + { + "name": "metadata-2", + "value": "value-2" + } + ], + "networkConfiguration": { + "endpointConfiguration": { + "inboundNatPools": [ + { + "name": "testnat", + "backendPort": 12001, + "frontendPortRangeEnd": 15100, + "frontendPortRangeStart": 15000, + "networkSecurityGroupRules": [ + { + "access": "Allow", + "priority": 150, + "sourceAddressPrefix": "192.100.12.45", + "sourcePortRanges": [ + "*" + ] + }, + { + "access": "Deny", + "priority": 3500, + "sourceAddressPrefix": "*", + "sourcePortRanges": [ + "*" + ] + } + ], + "protocol": "TCP" + } + ] + }, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "errors": [ + { + "code": "AllocationTimedout", + "message": "Desired number of dedicated nodes could not be allocated as the resize timeout was reached" + } + ], + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "startTime": "2017-08-28T10:22:55.9407275Z", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT8M", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28 + } + }, + "startTask": { + "commandLine": "cmd /c SET", + "environmentSettings": [ + { + "name": "MYSET", + "value": "1234" + } + ], + "maxTaskRetryCount": 6, + "resourceFiles": [ + { + "fileMode": "777", + "filePath": "c:\\temp\\gohere", + "httpUrl": "https://testaccount.blob.core.windows.net/example-blob-file" + } + ], + "userIdentity": { + "autoUser": { + "elevationLevel": "Admin", + "scope": "Pool" + } + }, + "waitForSuccess": true + }, + "taskSchedulingPolicy": { + "nodeFillType": "Pack" + }, + "taskSlotsPerNode": 13, + "userAccounts": [ + { + "name": "username1", + "elevationLevel": "Admin", + "linuxUserConfiguration": { + "gid": 4567, + "uid": 1234 + } + } + ], + "vmSize": "STANDARD_D4" + } + } + ] + } + } + }, + "operationId": "Pool_ListByBatchAccount", + "title": "ListPool" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolListWithFilter.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolListWithFilter.json new file mode 100644 index 000000000000..0c218a031ba9 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolListWithFilter.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "$filter": "startswith(name, 'po') or (properties/allocationState eq 'Steady' and properties/provisioningStateTransitionTime lt datetime'2017-02-02')", + "$select": "properties/allocationState,properties/provisioningStateTransitionTime,properties/currentDedicatedNodes,properties/currentLowPriorityNodes", + "accountName": "sampleacct", + "api-version": "2024-07-01", + "maxResults": "50", + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Steady", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 2, + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z" + } + }, + { + "name": "pooltest", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/pooltest", + "properties": { + "allocationState": "Resizing", + "currentDedicatedNodes": 4, + "currentLowPriorityNodes": 0, + "provisioningStateTransitionTime": "2017-08-26T10:22:55.9407275Z" + } + } + ] + } + } + }, + "operationId": "Pool_ListByBatchAccount", + "title": "ListPoolWithFilter" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolStopResize.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolStopResize.json new file mode 100644 index 000000000000..3ba79399eaab --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolStopResize.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Steady", + "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "UbuntuServer", + "publisher": "Canonical", + "sku": "18.04-LTS", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 18.04" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT10M", + "startTime": "2017-08-28T10:22:55.9407275Z", + "targetDedicatedNodes": 1 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 3, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_StopResize", + "title": "StopPoolResize" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_EnableAutoScale.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_EnableAutoScale.json new file mode 100644 index 000000000000..f80e48c9573b --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_EnableAutoScale.json @@ -0,0 +1,75 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "scaleSettings": { + "autoScale": { + "formula": "$TargetDedicatedNodes=34" + } + } + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2017-08-29T10:22:55.9407275Z", + "autoScaleRun": { + "evaluationTime": "2017-08-29T10:22:55.9407275Z", + "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" + }, + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 12, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-Datacenter-SmallDisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-29T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2017-08-29T10:22:55.9407275Z", + "targetDedicatedNodes": 34 + }, + "scaleSettings": { + "autoScale": { + "evaluationInterval": "PT15M", + "formula": "$TargetDedicated=34" + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Update", + "title": "UpdatePool - Enable Autoscale" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_OtherProperties.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_OtherProperties.json new file mode 100644 index 000000000000..263a78bbf133 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_OtherProperties.json @@ -0,0 +1,123 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "applicationPackages": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234" + }, + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_5678", + "version": "1.0" + } + ], + "certificates": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567", + "storeLocation": "LocalMachine", + "storeName": "MY" + } + ], + "metadata": [ + { + "name": "key1", + "value": "value1" + } + ], + "targetNodeCommunicationMode": "Simplified" + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2017-08-29T10:22:55.9407275Z", + "applicationPackages": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234" + }, + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_5678", + "version": "1.0" + } + ], + "autoScaleRun": { + "evaluationTime": "2017-08-29T10:22:55.9407275Z", + "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" + }, + "certificates": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567", + "storeLocation": "LocalMachine", + "storeName": "MY", + "visibility": [ + "StartTask", + "Task", + "RemoteUser" + ] + } + ], + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 12, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-Datacenter-SmallDisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-29T10:22:55.9407275Z", + "metadata": [ + { + "name": "key1", + "value": "value1" + } + ], + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "startTime": "2017-08-29T10:22:55.9407275Z", + "targetDedicatedNodes": 8 + }, + "scaleSettings": { + "fixedScale": { + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "targetNodeCommunicationMode": "Simplified", + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Update", + "title": "UpdatePool - Other Properties" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_RemoveStartTask.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_RemoveStartTask.json new file mode 100644 index 000000000000..edd102d73e07 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_RemoveStartTask.json @@ -0,0 +1,71 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "startTask": {} + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2017-08-29T10:22:55.9407275Z", + "autoScaleRun": { + "evaluationTime": "2017-08-29T10:22:55.9407275Z", + "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" + }, + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 12, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-Datacenter-SmallDisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-29T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2017-08-29T10:22:55.9407275Z", + "targetDedicatedNodes": 34 + }, + "scaleSettings": { + "autoScale": { + "evaluationInterval": "PT15M", + "formula": "$TargetDedicated=34" + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Update", + "title": "UpdatePool - Remove Start Task" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_ResizePool.json b/specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_ResizePool.json new file mode 100644 index 000000000000..7bc6628f709d --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PoolUpdate_ResizePool.json @@ -0,0 +1,80 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "scaleSettings": { + "fixedScale": { + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "targetDedicatedNodes": 5, + "targetLowPriorityNodes": 0 + } + } + } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "properties": { + "allocationState": "Resizing", + "allocationStateTransitionTime": "2017-08-29T10:22:55.9407275Z", + "autoScaleRun": { + "evaluationTime": "2017-08-29T10:22:55.9407275Z", + "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" + }, + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 12, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-Datacenter-SmallDisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-29T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "startTime": "2017-08-29T10:22:55.9407275Z", + "targetDedicatedNodes": 8 + }, + "scaleSettings": { + "fixedScale": { + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + } + }, + "operationId": "Pool_Update", + "title": "UpdatePool - Resize Pool" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PrivateBatchAccountCreate.json b/specification/batch/Batch.Management/examples/2024-07-01/PrivateBatchAccountCreate.json new file mode 100644 index 000000000000..2bcf08e7e1cb --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PrivateBatchAccountCreate.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "location": "japaneast", + "properties": { + "autoStorage": { + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "keyVaultReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", + "url": "http://sample.vault.azure.net/" + }, + "publicNetworkAccess": "Disabled" + } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "dedicatedCoreQuota": 20, + "keyVaultReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", + "url": "http://sample.vault.azure.net/" + }, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "UserSubscription", + "poolQuota": 20, + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + } + } + }, + "202": {} + }, + "operationId": "BatchAccount_Create", + "title": "PrivateBatchAccountCreate" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PrivateBatchAccountGet.json b/specification/batch/Batch.Management/examples/2024-07-01/PrivateBatchAccountGet.json new file mode 100644 index 000000000000..c31c12c61f00 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PrivateBatchAccountGet.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "privateEndpointConnections": [ + { + "name": "testprivateEndpointConnection.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Approved by xyz.abc@company.com", + "status": "Approved" + } + } + } + ], + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + } + } + } + }, + "operationId": "BatchAccount_Get", + "title": "PrivateBatchAccountGet" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionDelete.json b/specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionDelete.json new file mode 100644 index 000000000000..591a971819f2 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionDelete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "privateEndpointConnectionName": "testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0/accountOperationResults/sampleacct-30a022cb-a64f-4fd5-9289-8b38b342e9de?api-version=2024-07-01" + } + }, + "204": {} + }, + "operationId": "PrivateEndpointConnection_Delete", + "title": "PrivateEndpointConnectionDelete" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionGet.json b/specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionGet.json new file mode 100644 index 000000000000..ff88c82ef488 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionGet.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "privateEndpointConnectionName": "testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "properties": { + "groupIds": [ + "batchAccount" + ], + "privateEndpoint": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Approved by xyz.abc@company.com", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "PrivateEndpointConnection_Get", + "title": "GetPrivateEndpointConnection" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionUpdate.json b/specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionUpdate.json new file mode 100644 index 000000000000..de769dfca4b1 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionUpdate.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "parameters": { + "properties": { + "privateLinkServiceConnectionState": { + "description": "Approved by xyz.abc@company.com", + "status": "Approved" + } + } + }, + "privateEndpointConnectionName": "testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "properties": { + "groupIds": [ + "batchAccount" + ], + "privateEndpoint": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Approved by xyz.abc@company.com", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + } + }, + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnectionProxyResults/Updating$testprivateEndpointConnection5.24d6b4b5$e65c-4330-bbe9-3a290d62f8e0-8D4EDFF164A11C9?api-version=2024-07-01", + "Retry-After": "15" + } + } + }, + "operationId": "PrivateEndpointConnection_Update", + "title": "UpdatePrivateEndpointConnection" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionsList.json b/specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionsList.json new file mode 100644 index 000000000000..ef4bfd31fae7 --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PrivateEndpointConnectionsList.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "privateEndpointConnectionName": "testprivateEndpointConnection", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "testprivateEndpointConnection", + "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection", + "properties": { + "groupIds": [ + "batchAccount" + ], + "privateEndpoint": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Approved by xyz.abc@company.com", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + }, + "operationId": "PrivateEndpointConnection_ListByBatchAccount", + "title": "ListPrivateEndpointConnections" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PrivateLinkResourceGet.json b/specification/batch/Batch.Management/examples/2024-07-01/PrivateLinkResourceGet.json new file mode 100644 index 000000000000..b8be7b978f0e --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PrivateLinkResourceGet.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "privateLinkResourceName": "batchAccount", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts/privateLinkResources", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateLinkResources/batchAccount", + "properties": { + "groupId": "batchAccount", + "requiredMembers": [ + "batchAccount" + ], + "requiredZoneNames": [ + "privatelink.japaneast.batch.azure.com" + ] + } + } + } + }, + "operationId": "PrivateLinkResource_Get", + "title": "GetPrivateLinkResource" +} diff --git a/specification/batch/Batch.Management/examples/2024-07-01/PrivateLinkResourcesList.json b/specification/batch/Batch.Management/examples/2024-07-01/PrivateLinkResourcesList.json new file mode 100644 index 000000000000..52e20181b99a --- /dev/null +++ b/specification/batch/Batch.Management/examples/2024-07-01/PrivateLinkResourcesList.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "accountName": "sampleacct", + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "batchAccount", + "type": "Microsoft.Batch/batchAccounts/privateLinkResources", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateLinkResources/batchAccount", + "properties": { + "groupId": "batchAccount", + "requiredMembers": [ + "batchAccount" + ], + "requiredZoneNames": [ + "privatelink.japaneast.batch.azure.com" + ] + } + } + ] + } + } + }, + "operationId": "PrivateLinkResource_ListByBatchAccount", + "title": "ListPrivateLinkResource" +} diff --git a/specification/batch/Batch.Management/main.tsp b/specification/batch/Batch.Management/main.tsp new file mode 100644 index 000000000000..c2094edf3cc1 --- /dev/null +++ b/specification/batch/Batch.Management/main.tsp @@ -0,0 +1,60 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.4 + * Date: 2025-09-22T08:48:31.238Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./BatchAccount.tsp"; +import "./DetectorResponse.tsp"; +import "./ApplicationPackage.tsp"; +import "./Application.tsp"; +import "./Certificate.tsp"; +import "./PrivateLinkResource.tsp"; +import "./PrivateEndpointConnection.tsp"; +import "./Pool.tsp"; +import "./NetworkSecurityPerimeterConfiguration.tsp"; +import "./routes.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * The Batch Management Client. + */ +@armProviderNamespace +@service(#{ title: "BatchManagementClient" }) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) +namespace Microsoft.Batch; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2024-07-01 API version. + */ + v2024_07_01: "2024-07-01", +} + +interface Operations + extends Azure.ResourceManager.Legacy.Operations< + ArmResponse<OperationListResult>, + CloudError + > {} + +@@doc(Operations.list, + "Lists available operations for the Microsoft.Batch provider" +); diff --git a/specification/batch/Batch.Management/models.tsp b/specification/batch/Batch.Management/models.tsp new file mode 100644 index 000000000000..eaf0c5a97e82 --- /dev/null +++ b/specification/batch/Batch.Management/models.tsp @@ -0,0 +1,3564 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; + +namespace Microsoft.Batch; + +/** + * The container technology to be used. + */ +union ContainerType { + string, + + /** + * A Docker compatible container technology will be used to launch the containers. + */ + DockerCompatible: "DockerCompatible", + + /** + * A CRI based technology will be used to launch the containers. + */ + CriCompatible: "CriCompatible", +} + +/** + * Specifies the EncryptionType of the managed disk. It is set to VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and required when using Confidential VMs. + */ +union SecurityEncryptionTypes { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NonPersistedTPM: "NonPersistedTPM", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + VMGuestStateOnly: "VMGuestStateOnly", +} + +/** + * The paths which will be mounted to container task's container. + */ +union ContainerHostDataPath { + string, + + /** + * The path for multi-instances task to shared their files. + */ + Shared: "Shared", + + /** + * The path for start task. + */ + Startup: "Startup", + + /** + * The path contains all virtual file systems are mounted on this node. + */ + VfsMounts: "VfsMounts", + + /** + * The task path. + */ + Task: "Task", + + /** + * The job-prep task path. + */ + JobPrep: "JobPrep", + + /** + * The applications path. + */ + Applications: "Applications", +} + +/** + * Type of issue + */ +union IssueType { + string, + + /** + * Unknown issue type + */ + Unknown: "Unknown", + + /** + * An error occurred while applying the network security perimeter (NSP) configuration. + */ + ConfigurationPropagationFailure: "ConfigurationPropagationFailure", + + /** + * A network connectivity issue is happening on the resource which could be addressed either by adding new resources to the network security perimeter (NSP) or by modifying access rules. + */ + MissingPerimeterConfiguration: "MissingPerimeterConfiguration", + + /** + * An managed identity hasn't been associated with the resource. The resource will still be able to validate inbound traffic from the network security perimeter (NSP) or matching inbound access rules, but it won't be able to perform outbound access as a member of the NSP. + */ + MissingIdentityConfiguration: "MissingIdentityConfiguration", +} + +/** + * Severity of the issue. + */ +union Severity { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Warning: "Warning", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Error: "Error", +} + +/** + * The type of identity that created the resource. + */ +union CreatedByType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + User: "User", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Application: "Application", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ManagedIdentity: "ManagedIdentity", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Key: "Key", +} + +/** + * The authentication mode which the Batch service will use to manage the auto-storage account. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum AutoStorageAuthenticationMode { + /** + * The Batch service will authenticate requests to auto-storage using storage account keys. + */ + StorageKeys, + + /** + * The Batch service will authenticate requests to auto-storage using the managed identity assigned to the Batch account. + */ + BatchAccountManagedIdentity, +} + +/** + * The allocation mode for creating pools in the Batch account. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum PoolAllocationMode { + /** + * Pools will be allocated in subscriptions owned by the Batch service. + */ + BatchService, + + /** + * Pools will be allocated in a subscription owned by the user. + */ + UserSubscription, +} + +/** + * The network access type for operating on the resources in the Batch account. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum PublicNetworkAccessType { + /** + * Enables connectivity to Azure Batch through public DNS. + */ + Enabled, + + /** + * Disables public connectivity and enables private connectivity to Azure Batch Service through private endpoint resource. + */ + Disabled, + + /** + * Secures connectivity to Azure Batch through NSP configuration. + */ + SecuredByPerimeter, +} + +/** + * Default action for endpoint access. It is only applicable when publicNetworkAccess is enabled. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum EndpointAccessDefaultAction { + /** + * Allow client access. + */ + Allow, + + /** + * Deny client access. + */ + Deny, +} + +/** + * Type of the key source. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum KeySource { + /** + * Batch creates and manages the encryption keys used to protect the account data. + */ + `Microsoft.Batch`, + + /** + * The encryption keys used to protect the account data are stored in an external key vault. If this is set then the Batch Account identity must be set to `SystemAssigned` and a valid Key Identifier must also be supplied under the keyVaultProperties. + */ + `Microsoft.KeyVault`, +} + +/** + * The authentication mode for the Batch account. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum AuthenticationMode { + /** + * The authentication mode using shared keys. + */ + SharedKey, + + /** + * The authentication mode using Microsoft Entra ID. + */ + AAD, + + /** + * The authentication mode using task authentication tokens. + */ + TaskAuthenticationToken, +} + +/** + * The type of identity used for the Batch account. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum ResourceIdentityType { + /** + * Batch account has a system assigned identity with it. + */ + SystemAssigned, + + /** + * Batch account has user assigned identities with it. + */ + UserAssigned, + + /** + * Batch account has no identity associated with it. Setting `None` in update account will remove existing identities. + */ + None, +} + +/** + * The provisioned state of the resource + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum ProvisioningState { + /** + * The account is in an invalid state. + */ + Invalid, + + /** + * The account is being created. + */ + Creating, + + /** + * The account is being deleted. + */ + Deleting, + + /** + * The account has been created and is ready for use. + */ + Succeeded, + + /** + * The last operation for the account is failed. + */ + Failed, + + /** + * The last operation for the account is cancelled. + */ + Cancelled, +} + +/** + * The provisioning state of the private endpoint connection. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum PrivateEndpointConnectionProvisioningState { + /** + * The connection is creating. + */ + Creating, + + /** + * The user has requested that the connection status be updated, but the update operation has not yet completed. You may not reference the connection when connecting the Batch account. + */ + Updating, + + /** + * The connection is deleting. + */ + Deleting, + + /** + * The connection status is final and is ready for use if Status is Approved. + */ + Succeeded, + + /** + * The user requested that the connection be updated and it failed. You may retry the update operation. + */ + Failed, + + /** + * The user has cancelled the connection creation. + */ + Cancelled, +} + +/** + * The status of the Batch private endpoint connection + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum PrivateLinkServiceConnectionStatus { + /** + * The private endpoint connection is approved and can be used to access Batch account + */ + Approved, + + /** + * The private endpoint connection is pending and cannot be used to access Batch account + */ + Pending, + + /** + * The private endpoint connection is rejected and cannot be used to access Batch account + */ + Rejected, + + /** + * The private endpoint connection is disconnected and cannot be used to access Batch account + */ + Disconnected, +} + +/** + * The type of account key to regenerate. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum AccountKeyType { + /** + * The primary account key. + */ + Primary, + + /** + * The secondary account key. + */ + Secondary, +} + +/** + * The current state of the application package. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum PackageState { + /** + * The application package has been created but has not yet been activated. + */ + Pending, + + /** + * The application package is ready for use. + */ + Active, +} + +/** + * Gets the reason that a Batch account name could not be used. The Reason element is only returned if NameAvailable is false. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum NameAvailabilityReason { + /** + * The requested name is invalid. + */ + Invalid, + + /** + * The requested name is already in use. + */ + AlreadyExists, +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum CertificateProvisioningState { + /** + * The certificate is available for use in pools. + */ + Succeeded, + + /** + * The user has requested that the certificate be deleted, but the delete operation has not yet completed. You may not reference the certificate when creating or updating pools. + */ + Deleting, + + /** + * The user requested that the certificate be deleted, but there are pools that still have references to the certificate, or it is still installed on one or more compute nodes. (The latter can occur if the certificate has been removed from the pool, but the node has not yet restarted. Nodes refresh their certificates only when they restart.) You may use the cancel certificate delete operation to cancel the delete, or the delete certificate operation to retry the delete. + */ + Failed, +} + +/** + * The format of the certificate - either Pfx or Cer. If omitted, the default is Pfx. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum CertificateFormat { + /** + * The certificate is a PFX (PKCS#12) formatted certificate or certificate chain. + */ + Pfx, + + /** + * The certificate is a base64-encoded X.509 certificate. + */ + Cer, +} + +/** + * The current state of the pool. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum PoolProvisioningState { + /** + * The pool is available to run tasks subject to the availability of compute nodes. + */ + Succeeded, + + /** + * The user has requested that the pool be deleted, but the delete operation has not yet completed. + */ + Deleting, +} + +/** + * Whether the pool is resizing. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum AllocationState { + /** + * The pool is not resizing. There are no changes to the number of nodes in the pool in progress. A pool enters this state when it is created and when no operations are being performed on the pool to change the number of nodes. + */ + Steady, + + /** + * The pool is resizing; that is, compute nodes are being added to or removed from the pool. + */ + Resizing, + + /** + * The pool was resizing, but the user has requested that the resize be stopped, but the stop request has not yet been completed. + */ + Stopping, +} + +/** + * The type of caching to enable for the disk. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum CachingType { + /** + * The caching mode for the disk is not enabled. + */ + None, + + /** + * The caching mode for the disk is read only. + */ + ReadOnly, + + /** + * The caching mode for the disk is read and write. + */ + ReadWrite, +} + +/** + * The storage account type for use in creating data disks or OS disk. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum StorageAccountType { + /** + * The data disk / OS disk should use standard locally redundant storage. + */ + Standard_LRS, + + /** + * The data disk / OS disk should use premium locally redundant storage. + */ + Premium_LRS, + + /** + * The data disk / OS disk should use standard SSD locally redundant storage. + */ + StandardSSD_LRS, +} + +/** + * If omitted, no disks on the compute nodes in the pool will be encrypted. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@summary("The disks to encrypt on each compute node.") +enum DiskEncryptionTarget { + /** + * The OS Disk on the compute node is encrypted. + */ + OsDisk, + + /** + * The temporary disk on the compute node is encrypted. On Linux this encryption applies to other partitions (such as those on mounted data disks) when encryption occurs at boot time. + */ + TemporaryDisk, +} + +/** + * The default value is regional. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum NodePlacementPolicyType { + /** + * All nodes in the pool will be allocated in the same region. + */ + Regional, + + /** + * Nodes in the pool will be spread across different zones with best effort balancing. + */ + Zonal, +} + +/** + * Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum SecurityTypes { + /** + * Trusted launch protects against advanced and persistent attack techniques. + */ + trustedLaunch, + + /** + * Azure confidential computing offers confidential VMs are for tenants with high security and confidentiality requirements. These VMs provide a strong, hardware-enforced boundary to help meet your security needs. You can use confidential VMs for migrations without making changes to your code, with the platform protecting your VM's state from being read or modified. + */ + confidentialVM, +} + +/** + * Determines what to do with a node and its running task(s) after it has been selected for deallocation. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum ComputeNodeDeallocationOption { + /** + * Terminate running task processes and requeue the tasks. The tasks will run again when a node is available. Remove nodes as soon as tasks have been terminated. + */ + Requeue, + + /** + * Terminate running tasks. The tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Remove nodes as soon as tasks have been terminated. + */ + Terminate, + + /** + * Allow currently running tasks to complete. Schedule no new tasks while waiting. Remove nodes when all tasks have completed. + */ + TaskCompletion, + + /** + * Deprecated, we encourage you to upload task data to Azure Storage in your task and use `TaskCompletion` instead. Allow currently running tasks to complete, then wait for all task data retention periods to expire. Schedule no new tasks while waiting. Remove nodes when all task retention periods have expired. + */ + RetainedData, +} + +/** + * This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. If not specified, this value defaults to 'Disabled'. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum InterNodeCommunicationState { + /** + * Enable network communication between virtual machines. + */ + Enabled, + + /** + * Disable network communication between virtual machines. + */ + Disabled, +} + +/** + * The scope of dynamic vnet assignment. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum DynamicVNetAssignmentScope { + /** + * No dynamic VNet assignment is enabled. + */ + none, + + /** + * Dynamic VNet assignment is done per-job. If this value is set, the network configuration subnet ID must also be set. This feature requires approval before use, please contact support + */ + job, +} + +/** + * The protocol of the endpoint. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum InboundEndpointProtocol { + /** + * Use TCP for the endpoint. + */ + TCP, + + /** + * Use UDP for the endpoint. + */ + UDP, +} + +/** + * The action that should be taken for a specified IP address, subnet range or tag. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum NetworkSecurityGroupRuleAccess { + /** + * Allow access. + */ + Allow, + + /** + * Deny access. + */ + Deny, +} + +/** + * The provisioning type for Public IP Addresses for the Batch Pool. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum IPAddressProvisioningType { + /** + * A public IP will be created and managed by Batch. There may be multiple public IPs depending on the size of the Pool. + */ + BatchManaged, + + /** + * Public IPs are provided by the user and will be used to provision the Compute Nodes. + */ + UserManaged, + + /** + * No public IP Address will be created for the Compute Nodes in the Pool. + */ + NoPublicIPAddresses, +} + +/** + * How tasks should be distributed across compute nodes. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum ComputeNodeFillType { + /** + * Tasks should be assigned evenly across all nodes in the pool. + */ + Spread, + + /** + * As many tasks as possible (taskSlotsPerNode) should be assigned to each node in the pool before any tasks are assigned to the next node in the pool. + */ + Pack, +} + +/** + * The elevation level of the user. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum ElevationLevel { + /** + * The user is a standard user without elevated access. + */ + NonAdmin, + + /** + * The user is a user with elevated access and operates with full Administrator permissions. + */ + Admin, +} + +/** + * Specifies login mode for the user. The default value is Interactive. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum LoginMode { + /** + * The LOGON32_LOGON_BATCH Win32 login mode. The batch login mode is recommended for long running parallel processes. + */ + Batch, + + /** + * The LOGON32_LOGON_INTERACTIVE Win32 login mode. Some applications require having permissions associated with the interactive login mode. If this is the case for an application used in your task, then this option is recommended. + */ + Interactive, +} + +/** + * The default value is Pool. If the pool is running Windows a value of Task should be specified if stricter isolation between tasks is required. For example, if the task mutates the registry in a way which could impact other tasks, or if certificates have been specified on the pool which should not be accessible by normal tasks but should be accessible by start tasks. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum AutoUserScope { + /** + * Specifies that the service should create a new user for the task. + */ + Task, + + /** + * Specifies that the task runs as the common auto user account which is created on every node in a pool. + */ + Pool, +} + +/** + * A flag to indicate where the container task working directory is. The default is 'taskWorkingDirectory'. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum ContainerWorkingDirectory { + /** + * Use the standard Batch service task working directory, which will contain the Task resource files populated by Batch. + */ + TaskWorkingDirectory, + + /** + * Using container image defined working directory. Beware that this directory will not contain the resource files downloaded by Batch. + */ + ContainerImageDefault, +} + +/** + * The default value is currentUser. This property is applicable only for pools configured with Windows compute nodes. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum CertificateStoreLocation { + /** + * Certificates should be installed to the CurrentUser certificate store. + */ + CurrentUser, + + /** + * Certificates should be installed to the LocalMachine certificate store. + */ + LocalMachine, +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum CertificateVisibility { + /** + * The certificate should be visible to the user account under which the start task is run. Note that if AutoUser Scope is Pool for both the StartTask and a Task, this certificate will be visible to the Task as well. + */ + StartTask, + + /** + * The certificate should be visible to the user accounts under which job tasks are run. + */ + Task, + + /** + * The certificate should be visible to the user accounts under which users remotely access the node. + */ + RemoteUser, +} + +/** + * Determines how a pool communicates with the Batch service. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum NodeCommunicationMode { + /** + * The node communication mode is automatically set by the Batch service. + */ + Default, + + /** + * Nodes using the Classic communication mode require inbound TCP communication on ports 29876 and 29877 from the "BatchNodeManagement.{region}" service tag and outbound TCP communication on port 443 to the "Storage.region" and "BatchNodeManagement.{region}" service tags. + */ + Classic, + + /** + * Nodes using the Simplified communication mode require outbound TCP communication on port 443 to the "BatchNodeManagement.{region}" service tag. No open inbound ports are required. + */ + Simplified, +} + +/** + * Specifies the mode of an upgrade to virtual machines in the scale set.<br /><br /> Possible values are:<br /><br /> **Manual** - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action.<br /><br /> **Automatic** - All virtual machines in the scale set are automatically updated at the same time.<br /><br /> **Rolling** - Scale set performs updates in batches with an optional pause time in between. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum UpgradeMode { + /** + * All virtual machines in the scale set are automatically updated at the same time. + */ + automatic, + + /** + * You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. + */ + manual, + + /** + * The existing instances in a scale set are brought down in batches to be upgraded. Once the upgraded batch is complete, the instances will begin taking traffic again and the next batch will begin. This continues until all instances brought up-to-date. + */ + rolling, +} + +/** + * The type of identity used for the Batch Pool. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum PoolIdentityType { + /** + * Batch pool has user assigned identities with it. + */ + UserAssigned, + + /** + * Batch pool has no identity associated with it. Setting `None` in update pool will remove existing identities. + */ + None, +} + +/** + * Parameters supplied to the Create operation. + */ +model BatchAccountCreateParameters { + /** + * The region in which to create the account. + */ + location: string; + + /** + * The user-specified tags associated with the account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record<string>; + + /** + * The properties of the Batch account. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: BatchAccountCreateProperties; + + /** + * The identity of the Batch account. + */ + identity?: BatchAccountIdentity; +} + +/** + * The properties of a Batch account. + */ +model BatchAccountCreateProperties { + /** + * The properties related to the auto-storage account. + */ + autoStorage?: AutoStorageBaseProperties; + + /** + * The pool allocation mode also affects how clients may authenticate to the Batch Service API. If the mode is BatchService, clients may authenticate using access keys or Microsoft Entra ID. If the mode is UserSubscription, clients must use Microsoft Entra ID. The default is BatchService. + */ + @summary("The allocation mode to use for creating pools in the Batch account.") + poolAllocationMode?: PoolAllocationMode; + + /** + * A reference to the Azure key vault associated with the Batch account. + */ + keyVaultReference?: KeyVaultReference; + + /** + * The network access type for operating on the resources in the Batch account. + */ + @summary("The network access type for accessing Azure Batch account.") + publicNetworkAccess?: PublicNetworkAccessType = PublicNetworkAccessType.Enabled; + + /** + * The network profile only takes effect when publicNetworkAccess is enabled. + */ + @summary("Network profile for Batch account, which contains network rule settings for each endpoint.") + networkProfile?: NetworkProfile; + + /** + * Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead. + */ + @summary("The encryption configuration for the Batch account.") + encryption?: EncryptionProperties; + + /** + * List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + allowedAuthenticationModes?: AuthenticationMode[] | null; +} + +/** + * The properties related to the auto-storage account. + */ +model AutoStorageBaseProperties { + /** + * The resource ID of the storage account to be used for auto-storage account. + */ + storageAccountId: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.Storage/storageAccounts"; + } + ]>; + + /** + * The authentication mode which the Batch service will use to manage the auto-storage account. + */ + authenticationMode?: AutoStorageAuthenticationMode = AutoStorageAuthenticationMode.StorageKeys; + + /** + * The identity referenced here must be assigned to pools which have compute nodes that need access to auto-storage. + */ + @summary("The reference to the user assigned identity which compute nodes will use to access auto-storage.") + nodeIdentityReference?: ComputeNodeIdentityReference; +} + +/** + * The reference to a user assigned identity associated with the Batch pool which a compute node will use. + */ +model ComputeNodeIdentityReference { + /** + * The ARM resource id of the user assigned identity. + */ + resourceId?: string; +} + +/** + * Identifies the Azure key vault associated with a Batch account. + */ +model KeyVaultReference { + /** + * The resource ID of the Azure key vault associated with the Batch account. + */ + id: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.KeyVault/vaults"; + } + ]>; + + /** + * The URL of the Azure key vault associated with the Batch account. + */ + url: string; +} + +/** + * Network profile for Batch account, which contains network rule settings for each endpoint. + */ +model NetworkProfile { + /** + * Network access profile for batchAccount endpoint (Batch account data plane API). + */ + accountAccess?: EndpointAccessProfile; + + /** + * Network access profile for nodeManagement endpoint (Batch service managing compute nodes for Batch pools). + */ + nodeManagementAccess?: EndpointAccessProfile; +} + +/** + * Network access profile for Batch endpoint. + */ +model EndpointAccessProfile { + /** + * Default action for endpoint access. It is only applicable when publicNetworkAccess is enabled. + */ + @summary("The default action when there is no IPRule matched.") + defaultAction: EndpointAccessDefaultAction; + + /** + * Array of IP ranges to filter client IP address. + */ + @identifiers(#["action"]) + ipRules?: IPRule[]; +} + +/** + * The action when client IP address is matched. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum IPRuleAction { + /** + * Allow access for the matched client IP address. + */ + Allow: "Allow", +} +/** + * Rule to filter client IP address. + */ +model IPRule { + /** + * Action when client IP address is matched. + */ + action: IPRuleAction; + + /** + * IPv4 address, or IPv4 address range in CIDR format. + */ + @summary("The IP address or IP address range to filter") + value: string; +} + +/** + * Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead. + */ +model EncryptionProperties { + /** + * Type of the key source. + */ + keySource?: KeySource; + + /** + * Additional details when using Microsoft.KeyVault + */ + keyVaultProperties?: KeyVaultProperties; +} + +/** + * KeyVault configuration when using an encryption KeySource of Microsoft.KeyVault. + */ +model KeyVaultProperties { + /** + * Full path to the secret with or without version. Example https://mykeyvault.vault.azure.net/keys/testkey/6e34a81fef704045975661e297a4c053. or https://mykeyvault.vault.azure.net/keys/testkey. To be usable the following prerequisites must be met: + * + * The Batch Account has a System Assigned identity + * The account identity has been granted Key/Get, Key/Unwrap and Key/Wrap permissions + * The KeyVault has soft-delete and purge protection enabled + */ + keyIdentifier?: string; +} + +/** + * The identity of the Batch account, if configured. This is used when the user specifies 'Microsoft.KeyVault' as their Batch account encryption configuration or when `ManagedIdentity` is selected as the auto-storage authentication mode. + */ +model BatchAccountIdentity { + /** + * The principal id of the Batch account. This property will only be provided for a system assigned identity. + */ + @visibility(Lifecycle.Read) + principalId?: string; + + /** + * The tenant id associated with the Batch account. This property will only be provided for a system assigned identity. + */ + @visibility(Lifecycle.Read) + tenantId?: string; + + /** + * The type of identity used for the Batch account. + */ + type: ResourceIdentityType; + + /** + * The list of user identities associated with the Batch account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + userAssignedIdentities?: Record<UserAssignedIdentities>; +} + +/** + * The list of associated user identities. + */ +model UserAssignedIdentities { + /** + * The principal id of user assigned identity. + */ + @visibility(Lifecycle.Read) + principalId?: string; + + /** + * The client id of user assigned identity. + */ + @visibility(Lifecycle.Read) + clientId?: string; +} + +/** + * Account specific properties. + */ +model BatchAccountProperties { + /** + * The account endpoint used to interact with the Batch service. + */ + @visibility(Lifecycle.Read) + accountEndpoint?: string; + + /** + * The endpoint used by compute node to connect to the Batch node management service. + */ + @visibility(Lifecycle.Read) + nodeManagementEndpoint?: string; + + /** + * The provisioned state of the resource + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * The allocation mode for creating pools in the Batch account. + */ + @visibility(Lifecycle.Read) + @summary("The allocation mode to use for creating pools in the Batch account.") + poolAllocationMode?: PoolAllocationMode; + + /** + * Identifies the Azure key vault associated with a Batch account. + */ + @visibility(Lifecycle.Read) + @summary("A reference to the Azure key vault associated with the Batch account.") + keyVaultReference?: KeyVaultReference; + + /** + * The network access type for operating on the resources in the Batch account. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @summary("The network interface type for accessing Azure Batch service and Batch account operations.") + publicNetworkAccess?: PublicNetworkAccessType | null = PublicNetworkAccessType.Enabled; + + /** + * The network profile only takes effect when publicNetworkAccess is enabled. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @summary("Network profile for Batch account, which contains network rule settings for each endpoint.") + networkProfile?: NetworkProfile | null; + + /** + * List of private endpoint connections associated with the Batch account + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + privateEndpointConnections?: PrivateEndpointConnection[] | null; + + /** + * Contains information about the auto-storage account associated with a Batch account. + */ + @visibility(Lifecycle.Read) + @summary("The properties and status of any auto-storage account associated with the Batch account.") + autoStorage?: AutoStorageProperties; + + /** + * Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead. + */ + @visibility(Lifecycle.Read) + @summary("The encryption configuration for the Batch account.") + encryption?: EncryptionProperties; + + /** + * For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + @summary("The dedicated core quota for the Batch account.") + dedicatedCoreQuota?: int32 | null; + + /** + * For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + @summary("The Spot/low-priority core quota for the Batch account.") + lowPriorityCoreQuota?: int32 | null; + + /** + * A list of the dedicated core quota per Virtual Machine family for the Batch account. For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + @OpenAPI.extension("x-ms-identifiers", #["name"]) + dedicatedCoreQuotaPerVMFamily?: VirtualMachineFamilyCoreQuota[] | null; + + /** + * If this flag is true, dedicated core quota is enforced via both the dedicatedCoreQuotaPerVMFamily and dedicatedCoreQuota properties on the account. If this flag is false, dedicated core quota is enforced only via the dedicatedCoreQuota property on the account and does not consider Virtual Machine family. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + @summary("A value indicating whether core quotas per Virtual Machine family are enforced for this account") + dedicatedCoreQuotaPerVMFamilyEnforced?: boolean; + + /** + * The pool quota for the Batch account. + */ + @visibility(Lifecycle.Read) + poolQuota?: int32; + + /** + * The active job and job schedule quota for the Batch account. + */ + @visibility(Lifecycle.Read) + activeJobAndJobScheduleQuota?: int32; + + /** + * List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + allowedAuthenticationModes?: AuthenticationMode[] | null; +} + +/** + * Private endpoint connection properties. + */ +model PrivateEndpointConnectionProperties { + /** + * The provisioning state of the private endpoint connection. + */ + @visibility(Lifecycle.Read) + provisioningState?: PrivateEndpointConnectionProvisioningState; + + /** + * The private endpoint of the private endpoint connection. + */ + @visibility(Lifecycle.Read) + @summary("The ARM resource identifier of the private endpoint.") + privateEndpoint?: PrivateEndpoint; + + /** + * The value has one and only one group id. + */ + @summary("The group id of the private endpoint connection.") + @visibility(Lifecycle.Read) + groupIds?: string[]; + + /** + * The private link service connection state of the private endpoint connection. + */ + privateLinkServiceConnectionState?: PrivateLinkServiceConnectionState; +} + +/** + * The private endpoint of the private endpoint connection. + */ +model PrivateEndpoint { + /** + * The ARM resource identifier of the private endpoint. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/privateEndpoints/{privateEndpoint}. + */ + @visibility(Lifecycle.Read) + id?: string; +} + +/** + * The private link service connection state of the private endpoint connection + */ +model PrivateLinkServiceConnectionState { + /** + * The status of the Batch private endpoint connection + */ + status: PrivateLinkServiceConnectionStatus; + + /** + * Description of the private Connection state + */ + description?: string; + + /** + * Action required on the private connection state + */ + @visibility(Lifecycle.Read) + actionsRequired?: string; +} + +/** + * A definition of an Azure resource. + */ +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@Azure.ResourceManager.Legacy.customAzureResource +model AzureProxyResource { + /** + * The ID of the resource. + */ + @visibility(Lifecycle.Read) + id?: string; + + /** + * The name of the resource. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The type of the resource. + */ + @visibility(Lifecycle.Read) + type?: string; + + /** + * The ETag of the resource, used for concurrency statements. + */ + @visibility(Lifecycle.Read) + etag?: string; + + /** + * The tags of the resource. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record<string>; +} + +/** + * Contains information about the auto-storage account associated with a Batch account. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AutoStorageProperties extends AutoStorageBaseProperties { + /** + * The UTC time at which storage keys were last synchronized with the Batch account. + */ + lastKeySync: utcDateTime; +} + +/** + * A VM Family and its associated core quota for the Batch account. + */ +model VirtualMachineFamilyCoreQuota { + /** + * The Virtual Machine family name. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The core quota for the VM family for the Batch account. + */ + @visibility(Lifecycle.Read) + coreQuota?: int32; +} + +/** + * An error response from the Batch service. + */ +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@error +@Azure.ResourceManager.Legacy.armExternalType +model CloudError { + /** + * The body of the error response. + */ + error?: CloudErrorBody; +} + +/** + * An error response from the Batch service. + */ +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@Azure.ResourceManager.Legacy.armExternalType +model CloudErrorBody { + /** + * An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + */ + code?: string; + + /** + * A message describing the error, intended to be suitable for display in a user interface. + */ + message?: string; + + /** + * The target of the particular error. For example, the name of the property in error. + */ + target?: string; + + /** + * A list of additional details about the error. + */ + @identifiers(#["message", "target"]) + details?: CloudErrorBody[]; +} + +/** + * Parameters for updating an Azure Batch account. + */ +model BatchAccountUpdateParameters { + /** + * The user-specified tags associated with the account. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record<string>; + + /** + * The properties of the account. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: BatchAccountUpdateProperties; + + /** + * The identity of the Batch account. + */ + identity?: BatchAccountIdentity; +} + +/** + * The properties of a Batch account. + */ +model BatchAccountUpdateProperties { + /** + * The properties related to the auto-storage account. + */ + autoStorage?: AutoStorageBaseProperties; + + /** + * Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead. + */ + @summary("The encryption configuration for the Batch account.") + encryption?: EncryptionProperties; + + /** + * List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + allowedAuthenticationModes?: AuthenticationMode[] | null; + + /** + * The network access type for operating on the resources in the Batch account. + */ + @summary("The network access type for accessing Azure Batch account.") + publicNetworkAccess?: PublicNetworkAccessType = PublicNetworkAccessType.Enabled; + + /** + * The network profile only takes effect when publicNetworkAccess is enabled. + */ + @summary("Network profile for Batch account, which contains network rule settings for each endpoint.") + networkProfile?: NetworkProfile; +} + +/** + * Parameters supplied to the RegenerateKey operation. + */ +model BatchAccountRegenerateKeyParameters { + /** + * The type of account key to regenerate. + */ + keyName: AccountKeyType; +} + +/** + * A set of Azure Batch account keys. + */ +model BatchAccountKeys { + /** + * The Batch account name. + */ + @visibility(Lifecycle.Read) + accountName?: string; + + /** + * The primary key associated with the account. + */ + @visibility(Lifecycle.Read) + primary?: string; + + /** + * The secondary key associated with the account. + */ + @visibility(Lifecycle.Read) + secondary?: string; +} + +/** + * Parameters for an activating an application package. + */ +model ActivateApplicationPackageParameters { + /** + * The format of the application package binary file. + */ + format: string; +} + +/** + * Properties of an application package + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ApplicationPackageProperties { + /** + * The current state of the application package. + */ + @visibility(Lifecycle.Read) + state?: PackageState; + + /** + * The format of the application package, if the package is active. + */ + @visibility(Lifecycle.Read) + format?: string; + + /** + * The URL for the application package in Azure Storage. + */ + @visibility(Lifecycle.Read) + storageUrl?: string; + + /** + * The UTC time at which the Azure Storage URL will expire. + */ + @visibility(Lifecycle.Read) + storageUrlExpiry?: utcDateTime; + + /** + * The time at which the package was last activated, if the package is active. + */ + @visibility(Lifecycle.Read) + lastActivationTime?: utcDateTime; +} + +/** + * The properties associated with the Application. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ApplicationProperties { + /** + * The display name for the application. + */ + displayName?: string; + + /** + * A value indicating whether packages within the application may be overwritten using the same version string. + */ + allowUpdates?: boolean; + + /** + * The package to use if a client requests the application but does not specify a version. This property can only be set to the name of an existing package. + */ + defaultVersion?: string; +} + +/** + * The result of performing list applications. + */ +model ListApplicationsResult is Azure.Core.Page<Application>; + +/** + * The result of performing list application packages. + */ +model ListApplicationPackagesResult is Azure.Core.Page<ApplicationPackage>; + +/** + * Quotas associated with a Batch region for a particular subscription. + */ +model BatchLocationQuota { + /** + * The number of Batch accounts that may be created under the subscription in the specified region. + */ + @visibility(Lifecycle.Read) + accountQuota?: int32; +} + +/** + * The Batch List supported SKUs operation response. + */ +model SupportedSkusResult is Azure.Core.Page<SupportedSku>; + +/** + * Describes a Batch supported SKU. + */ +model SupportedSku { + /** + * The name of the SKU. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The family name of the SKU. + */ + @visibility(Lifecycle.Read) + familyName?: string; + + /** + * A collection of capabilities which this SKU supports. + */ + @visibility(Lifecycle.Read) + @identifiers(#["name"]) + capabilities?: SkuCapability[]; + + /** + * The time when Azure Batch service will retire this SKU. + */ + @visibility(Lifecycle.Read) + batchSupportEndOfLife?: utcDateTime; +} + +/** + * A SKU capability, such as the number of cores. + */ +model SkuCapability { + /** + * The name of the feature. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The value of the feature. + */ + @visibility(Lifecycle.Read) + value?: string; +} + +/** + * A REST API operation + */ +model Operation { + /** + * This is of the format {provider}/{resource}/{operation} + */ + @summary("The operation name.") + name?: string; + + /** + * Indicates whether the operation is a data action + */ + isDataAction?: boolean; + + /** + * The object that describes the operation. + */ + display?: OperationDisplay; + + /** + * The intended executor of the operation. + */ + origin?: string; + + /** + * Properties of the operation. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/no-unknown" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: unknown; +} + +/** + * The object that describes the operation. + */ +model OperationDisplay { + /** + * Friendly name of the resource provider. + */ + provider?: string; + + /** + * For example: read, write, delete, or listKeys/action + */ + @summary("The operation type.") + operation?: string; + + /** + * The resource type on which the operation is performed. + */ + resource?: string; + + /** + * The friendly name of the operation + */ + description?: string; +} + +/** + * The result of the request to list operations. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum ResourceType { + /** + * The resource type for Microsoft.Batch/batchAccounts + */ + MicrosoftBatchBatchAccounts: "Microsoft.Batch/batchAccounts", +} + +/** + * Parameters for a check name availability request. + */ +model CheckNameAvailabilityParameters { + /** + * The name to check for availability + */ + name: string; + + /** + * The resource type. + */ + type: ResourceType; +} + +/** + * The CheckNameAvailability operation response. + */ +model CheckNameAvailabilityResult { + /** + * Gets a boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or invalid and cannot be used. + */ + @visibility(Lifecycle.Read) + nameAvailable?: boolean; + + /** + * Gets the reason that a Batch account name could not be used. The Reason element is only returned if NameAvailable is false. + */ + @visibility(Lifecycle.Read) + reason?: NameAvailabilityReason; + + /** + * Gets an error message explaining the Reason value in more detail. + */ + @visibility(Lifecycle.Read) + message?: string; +} + +/** + * Values returned by the List operation. + */ +model ListCertificatesResult is Azure.Core.Page<Certificate>; + +/** + * Certificate properties. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model CertificateProperties extends CertificateBaseProperties { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @summary("The provisioned state of the resource") + @visibility(Lifecycle.Read) + provisioningState?: CertificateProvisioningState; + + /** + * The time at which the certificate entered its current state. + */ + @visibility(Lifecycle.Read) + provisioningStateTransitionTime?: utcDateTime; + + /** + * The previous provisioned state of the resource + */ + @visibility(Lifecycle.Read) + previousProvisioningState?: CertificateProvisioningState; + + /** + * The time at which the certificate entered its previous state. + */ + @visibility(Lifecycle.Read) + previousProvisioningStateTransitionTime?: utcDateTime; + + /** + * The public key of the certificate. + */ + @visibility(Lifecycle.Read) + publicData?: string; + + /** + * This is only returned when the certificate provisioningState is 'Failed'. + */ + @visibility(Lifecycle.Read) + @summary("The error which occurred while deleting the certificate") + deleteCertificateError?: DeleteCertificateError; +} + +/** + * An error response from the Batch service. + */ +model DeleteCertificateError { + /** + * An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + */ + code: string; + + /** + * A message describing the error, intended to be suitable for display in a user interface. + */ + message: string; + + /** + * The target of the particular error. For example, the name of the property in error. + */ + target?: string; + + /** + * A list of additional details about the error. + */ + @identifiers(#["code"]) + details?: DeleteCertificateError[]; +} + +/** + * Base certificate properties. + */ +model CertificateBaseProperties { + /** + * This must match the first portion of the certificate name. Currently required to be 'SHA1'. + */ + @summary("The algorithm of the certificate thumbprint.") + thumbprintAlgorithm?: string; + + /** + * This must match the thumbprint from the name. + */ + @summary("The thumbprint of the certificate.") + thumbprint?: string; + + /** + * The format of the certificate - either Pfx or Cer. If omitted, the default is Pfx. + */ + format?: CertificateFormat; +} + +/** + * Contains information about a certificate. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model CertificateCreateOrUpdateParameters extends AzureProxyResource { + /** + * The properties associated with the certificate. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + properties?: CertificateCreateOrUpdateProperties; +} + +/** + * Certificate properties for create operations + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model CertificateCreateOrUpdateProperties extends CertificateBaseProperties { + /** + * The maximum size is 10KB. + */ + @visibility(Lifecycle.Read, Lifecycle.Update) + @summary("The base64-encoded contents of the certificate.") + data: string; + + /** + * This must not be specified if the certificate format is Cer. + */ + @summary("The password to access the certificate's private key.") + @secret + password?: string; +} + +/** + * Detector response properties. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model DetectorResponseProperties { + /** + * A base64 encoded string that represents the content of a detector. + */ + value?: string; +} + +/** + * Values returned by the List operation. + */ +model ListPrivateLinkResourcesResult is Azure.Core.Page<PrivateLinkResource>; + +/** + * Private link resource properties. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model PrivateLinkResourceProperties { + /** + * The group id is used to establish the private link connection. + */ + @summary("The group id of the private link resource.") + @visibility(Lifecycle.Read) + groupId?: string; + + /** + * The list of required members that are used to establish the private link connection. + */ + @visibility(Lifecycle.Read) + requiredMembers?: string[]; + + /** + * The list of required zone names for the private DNS resource name + */ + @visibility(Lifecycle.Read) + requiredZoneNames?: string[]; +} + +/** + * Values returned by the List operation. + */ +model ListPrivateEndpointConnectionsResult + is Azure.Core.Page<PrivateEndpointConnection>; + +/** + * Values returned by the List operation. + */ +model ListPoolsResult is Azure.Core.Page<Pool>; + +/** + * Pool properties. + */ +model PoolProperties { + /** + * The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024. + */ + @summary("The display name for the pool.") + displayName?: string; + + /** + * This is the last time at which the pool level data, such as the targetDedicatedNodes or autoScaleSettings, changed. It does not factor in node-level changes such as a compute node changing state. + */ + @visibility(Lifecycle.Read) + @summary("The last modified time of the pool.") + lastModified?: utcDateTime; + + /** + * The creation time of the pool. + */ + @visibility(Lifecycle.Read) + creationTime?: utcDateTime; + + /** + * The current state of the pool. + */ + @visibility(Lifecycle.Read) + provisioningState?: PoolProvisioningState; + + /** + * The time at which the pool entered its current state. + */ + @visibility(Lifecycle.Read) + provisioningStateTransitionTime?: utcDateTime; + + /** + * Whether the pool is resizing. + */ + @visibility(Lifecycle.Read) + allocationState?: AllocationState; + + /** + * The time at which the pool entered its current allocation state. + */ + @visibility(Lifecycle.Read) + allocationStateTransitionTime?: utcDateTime; + + /** + * For information about available VM sizes, see Sizes for Virtual Machines in Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). + */ + @summary("The size of virtual machines in the pool. All VMs in a pool are the same size.") + vmSize?: string; + + /** + * Deployment configuration properties. + */ + @summary("This property describes the virtual machines that the pool nodes will be deployed on.") + deploymentConfiguration?: DeploymentConfiguration; + + /** + * The number of dedicated compute nodes currently in the pool. + */ + @visibility(Lifecycle.Read) + currentDedicatedNodes?: int32; + + /** + * The number of Spot/low-priority compute nodes currently in the pool. + */ + @visibility(Lifecycle.Read) + currentLowPriorityNodes?: int32; + + /** + * Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes. + */ + @summary("Settings which configure the number of nodes in the pool.") + scaleSettings?: ScaleSettings; + + /** + * This property is set only if the pool automatically scales, i.e. autoScaleSettings are used. + */ + @summary("The results and errors from the last execution of the autoscale formula.") + @visibility(Lifecycle.Read) + autoScaleRun?: AutoScaleRun; + + /** + * This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. If not specified, this value defaults to 'Disabled'. + */ + @summary("Whether the pool permits direct communication between nodes.") + interNodeCommunication?: InterNodeCommunicationState; + + /** + * The network configuration for a pool. + */ + @summary("The network configuration for the pool.") + networkConfiguration?: NetworkConfiguration; + + /** + * The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256. + */ + @summary("The number of task slots that can be used to run concurrent tasks on a single compute node in the pool.") + taskSlotsPerNode?: int32 = 1; + + /** + * If not specified, the default is spread. + */ + @summary("How tasks are distributed across compute nodes in a pool.") + taskSchedulingPolicy?: TaskSchedulingPolicy; + + /** + * The list of user accounts to be created on each node in the pool. + */ + @identifiers(#["name"]) + userAccounts?: UserAccount[]; + + /** + * The Batch service does not assign any meaning to metadata; it is solely for the use of user code. + */ + @summary("A list of name-value pairs associated with the pool as metadata.") + @identifiers(#["name"]) + metadata?: MetadataItem[]; + + /** + * In an PATCH (update) operation, this property can be set to an empty object to remove the start task from the pool. + */ + @summary("A task specified to run on each compute node as it joins the pool.") + startTask?: StartTask; + + /** + * For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory. + * + * Warning: This property 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("The list of certificates to be installed on each compute node in the pool.") + certificates?: CertificateReference[]; + + /** + * Changes to application package references affect all new compute nodes joining the pool, but do not affect compute nodes that are already in the pool until they are rebooted or reimaged. There is a maximum of 10 application package references on any given pool. + */ + @summary("The list of application packages to be installed on each compute node in the pool.") + applicationPackages?: ApplicationPackageReference[]; + + /** + * The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, pool creation will fail. + */ + @summary("The list of application licenses the Batch service will make available on each compute node in the pool.") + applicationLicenses?: string[]; + + /** + * Describes either the current operation (if the pool AllocationState is Resizing) or the previously completed operation (if the AllocationState is Steady). + */ + @summary("Contains details about the current or last completed resize operation.") + @visibility(Lifecycle.Read) + resizeOperationStatus?: ResizeOperationStatus; + + /** + * This supports Azure Files, NFS, CIFS/SMB, and Blobfuse. + */ + @summary("A list of file systems to mount on each node in the pool.") + @identifiers(#[]) + mountConfiguration?: MountConfiguration[]; + + /** + * If omitted, the default value is Default. + */ + @summary("Determines how a pool communicates with the Batch service.") + targetNodeCommunicationMode?: NodeCommunicationMode; + + /** + * Determines how a pool communicates with the Batch service. + */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + currentNodeCommunicationMode?: NodeCommunicationMode | null; + + /** + * Describes an upgrade policy - automatic, manual, or rolling. + */ + @summary("The upgrade policy for the pool.") + upgradePolicy?: UpgradePolicy; + + /** + * The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @summary("The user-specified tags associated with the pool.") + resourceTags?: Record<string>; +} + +/** + * Deployment configuration properties. + */ +model DeploymentConfiguration { + /** + * The configuration for compute nodes in a pool based on the Azure Virtual Machines infrastructure. + */ + @summary("The virtual machine configuration for the pool.") + virtualMachineConfiguration?: VirtualMachineConfiguration; +} + +/** + * The configuration for compute nodes in a pool based on the Azure Virtual Machines infrastructure. + */ +model VirtualMachineConfiguration { + /** + * A reference to an Azure Virtual Machines Marketplace image or the Azure Image resource of a custom Virtual Machine. To get the list of all imageReferences verified by Azure Batch, see the 'List supported node agent SKUs' operation. + */ + @summary("A reference to the Azure Virtual Machines Marketplace Image or the custom Virtual Machine Image to use.") + imageReference: ImageReference; + + /** + * The Batch node agent is a program that runs on each node in the pool, and provides the command-and-control interface between the node and the Batch service. There are different implementations of the node agent, known as SKUs, for different operating systems. You must specify a node agent SKU which matches the selected image reference. To get the list of supported node agent SKUs along with their list of verified image references, see the 'List supported node agent SKUs' operation. + */ + @summary("The SKU of the Batch node agent to be provisioned on compute nodes in the pool.") + nodeAgentSkuId: string; + + /** + * This property must not be specified if the imageReference specifies a Linux OS image. + */ + @summary("Windows operating system settings on the virtual machine.") + windowsConfiguration?: WindowsConfiguration; + + /** + * This property must be specified if the compute nodes in the pool need to have empty data disks attached to them. + */ + @summary("The configuration for data disks attached to the compute nodes in the pool.") + @identifiers(#["lun"]) + dataDisks?: DataDisk[]; + + /** + * This only applies to images that contain the Windows operating system, and should only be used when you hold valid on-premises licenses for the nodes which will be deployed. If omitted, no on-premises licensing discount is applied. Values are: + * + * Windows_Server - The on-premises license is for Windows Server. + * Windows_Client - The on-premises license is for Windows Client. + * + */ + @summary("The type of on-premises license to be used when deploying the operating system.") + licenseType?: string; + + /** + * If specified, setup is performed on each node in the pool to allow tasks to run in containers. All regular tasks and job manager tasks run on this pool must specify the containerSettings property, and all other tasks may specify it. + */ + @summary("The container configuration for the pool.") + containerConfiguration?: ContainerConfiguration; + + /** + * If specified, encryption is performed on each node in the pool during node provisioning. + */ + @summary("The disk encryption configuration for the pool.") + diskEncryptionConfiguration?: DiskEncryptionConfiguration; + + /** + * This configuration will specify rules on how nodes in the pool will be physically allocated. + */ + @summary("The node placement configuration for the pool.") + nodePlacementConfiguration?: NodePlacementConfiguration; + + /** + * If specified, the extensions mentioned in this configuration will be installed on each node. + */ + @summary("The virtual machine extension for the pool.") + @identifiers(#["name", "type"]) + extensions?: VMExtension[]; + + /** + * Contains configuration for ephemeral OSDisk settings. + */ + @summary("Settings for the operating system disk of the Virtual Machine.") + osDisk?: OSDisk; + + /** + * Specifies the security profile settings for the virtual machine or virtual machine scale set. + */ + securityProfile?: SecurityProfile; + + /** + * The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} + */ + @summary("Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version.") + serviceArtifactReference?: ServiceArtifactReference; +} + +/** + * A reference to an Azure Virtual Machines Marketplace image or the Azure Image resource of a custom Virtual Machine. To get the list of all imageReferences verified by Azure Batch, see the 'List supported node agent SKUs' operation. + */ +model ImageReference { + /** + * For example, Canonical or MicrosoftWindowsServer. + */ + @summary("The publisher of the Azure Virtual Machines Marketplace image.") + publisher?: string; + + /** + * For example, UbuntuServer or WindowsServer. + */ + @summary("The offer type of the Azure Virtual Machines Marketplace image.") + offer?: string; + + /** + * For example, 18.04-LTS or 2022-datacenter. + */ + @summary("The SKU of the Azure Virtual Machines Marketplace image.") + sku?: string; + + /** + * A value of 'latest' can be specified to select the latest version of an image. If omitted, the default is 'latest'. + */ + @summary("The version of the Azure Virtual Machines Marketplace image.") + version?: string; + + /** + * This property is mutually exclusive with other properties. The Azure Compute Gallery Image must have replicas in the same region as the Azure Batch account. For information about the firewall settings for the Batch node agent to communicate with the Batch service see https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. + */ + @summary("The ARM resource identifier of the Azure Compute Gallery Image. Compute Nodes in the Pool will be created using this Image Id. This is of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}.") + id?: string; + + /** + * This property is mutually exclusive with other properties and can be fetched from shared gallery image GET call. + */ + @summary("The shared gallery image unique identifier") + sharedGalleryImageId?: string; + + /** + * This property is mutually exclusive with other properties and can be fetched from community gallery image GET call. + */ + @summary("The community gallery image unique identifier") + communityGalleryImageId?: string; +} + +/** + * Windows operating system settings to apply to the virtual machine. + */ +model WindowsConfiguration { + /** + * If omitted, the default value is true. + */ + @summary("Whether automatic updates are enabled on the virtual machine.") + enableAutomaticUpdates?: boolean; +} + +/** + * Settings which will be used by the data disks associated to Compute Nodes in the Pool. When using attached data disks, you need to mount and format the disks from within a VM to use them. + */ +model DataDisk { + /** + * The lun is used to uniquely identify each data disk. If attaching multiple disks, each should have a distinct lun. The value must be between 0 and 63, inclusive. + */ + @summary("The logical unit number.") + lun: int32; + + /** + * Values are: + * + * none - The caching mode for the disk is not enabled. + * readOnly - The caching mode for the disk is read only. + * readWrite - The caching mode for the disk is read and write. + * + * The default value for caching is none. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/. + */ + @summary("The type of caching to enable for the disk.") + caching?: CachingType; + + /** + * The initial disk size in GB when creating new data disk. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + diskSizeGB: int32; + + /** + * If omitted, the default is "Standard_LRS". Values are: + * + * Standard_LRS - The data disk should use standard locally redundant storage. + * Premium_LRS - The data disk should use premium locally redundant storage. + */ + @summary("The storage account type for use in creating data disks or OS disk.") + storageAccountType?: StorageAccountType; +} + +/** + * The configuration for container-enabled pools. + */ +model ContainerConfiguration { + /** + * The container technology to be used. + */ + type: ContainerType; + + /** + * This is the full image reference, as would be specified to "docker pull". An image will be sourced from the default Docker registry unless the image is fully qualified with an alternative registry. + */ + @summary("The collection of container image names.") + containerImageNames?: string[]; + + /** + * If any images must be downloaded from a private registry which requires credentials, then those credentials must be provided here. + */ + @identifiers(#["registryServer"]) + @summary("Additional private registries from which containers can be pulled.") + containerRegistries?: ContainerRegistry[]; +} + +/** + * A private container registry. + */ +model ContainerRegistry { + /** + * The user name to log into the registry server. + */ + username?: string; + + /** + * The password to log into the registry server. + */ + @secret + password?: string; + + /** + * If omitted, the default is "docker.io". + */ + @summary("The registry URL.") + registryServer?: string; + + /** + * The reference to a user assigned identity associated with the Batch pool which a compute node will use. + */ + @summary("The reference to the user assigned identity to use to access an Azure Container Registry instead of username and password.") + identityReference?: ComputeNodeIdentityReference; +} + +/** + * The disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Azure Compute Gallery Image. + */ +model DiskEncryptionConfiguration { + /** + * On Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and "TemporaryDisk" must be specified. + */ + @summary("The list of disk targets Batch Service will encrypt on the compute node") + targets?: DiskEncryptionTarget[]; +} + +/** + * Allocation configuration used by Batch Service to provision the nodes. + */ +@summary("Node placement configuration for batch pools.") +model NodePlacementConfiguration { + /** + * Allocation policy used by Batch Service to provision the nodes. If not specified, Batch will use the regional policy. + */ + @summary("The placement policy for allocating nodes in the pool.") + policy?: NodePlacementPolicyType; +} + +/** + * The configuration for virtual machine extensions. + */ +model VMExtension { + /** + * The name of the virtual machine extension. + */ + name: string; + + /** + * The name of the extension handler publisher. + */ + publisher: string; + + /** + * The type of the extensions. + */ + type: string; + + /** + * The version of script handler. + */ + typeHandlerVersion?: string; + + /** + * Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true. + */ + autoUpgradeMinorVersion?: boolean; + + /** + * Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available. + */ + enableAutomaticUpgrade?: boolean; + + /** + * JSON formatted public settings for the extension. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + settings?: unknown; + + /** + * The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @secret + protectedSettings?: unknown; + + /** + * Collection of extension names after which this extension needs to be provisioned. + */ + @summary("The collection of extension names.") + provisionAfterExtensions?: string[]; +} + +/** + * Settings for the operating system disk of the virtual machine. + */ +model OSDisk { + /** + * Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ephemeralOSDiskSettings?: DiffDiskSettings; + + /** + * The type of caching to enable for the disk. + */ + caching?: CachingType; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @summary("The managed disk parameters.") + managedDisk?: ManagedDisk; + + /** + * The initial disk size in GB when creating new OS disk. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + diskSizeGB?: int32; + + /** + * Specifies whether writeAccelerator should be enabled or disabled on the disk. + */ + writeAcceleratorEnabled?: boolean; +} + +/** + * The location where the OS disk should be placed. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum DiffDiskPlacement { + /** + * The OS disk will be placed on the cache disk of the VM. + */ + CacheDisk: "CacheDisk", +} + +/** + * Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine. + */ +model DiffDiskSettings { + /** + * This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. + */ + @summary("Specifies the ephemeral disk placement for operating system disk for all VMs in the pool.") + placement?: DiffDiskPlacement; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ManagedDisk { + /** + * The storage account type for use in creating data disks or OS disk. + */ + storageAccountType?: StorageAccountType; + + /** + * Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and is required when using Confidential VMs. + */ + @summary("Specifies the security profile for the managed disk.") + securityProfile?: VMDiskSecurityProfile; +} + +/** + * Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and is required when using Confidential VMs. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model VMDiskSecurityProfile { + /** + * Specifies the EncryptionType of the managed disk. It is set to VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and required when using Confidential VMs. + */ + securityEncryptionType?: SecurityEncryptionTypes; +} + +/** + * Specifies the security profile settings for the virtual machine or virtual machine scale set. + */ +model SecurityProfile { + /** + * Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. + */ + securityType?: SecurityTypes; + + /** + * This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. + */ + encryptionAtHost?: boolean; + + /** + * Specifies the security settings like secure boot and vTPM used while creating the virtual machine. + */ + uefiSettings?: UefiSettings; +} + +/** + * Specifies the security settings like secure boot and vTPM used while creating the virtual machine. + */ +model UefiSettings { + /** + * Specifies whether secure boot should be enabled on the virtual machine. + */ + secureBootEnabled?: boolean; + + /** + * Specifies whether vTPM should be enabled on the virtual machine. + */ + vTpmEnabled?: boolean; +} + +/** + * Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version. + */ +model ServiceArtifactReference { + /** + * The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} + */ + @summary("The service artifact reference id of ServiceArtifactReference") + id: string; +} + +/** + * Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes. + */ +@summary("Scale settings for the pool") +model ScaleSettings { + /** + * This property and autoScale are mutually exclusive and one of the properties must be specified. + */ + @summary("Fixed scale settings for the pool.") + fixedScale?: FixedScaleSettings; + + /** + * This property and fixedScale are mutually exclusive and one of the properties must be specified. + */ + @summary("AutoScale settings for the pool.") + autoScale?: AutoScaleSettings; +} + +/** + * Fixed scale settings for the pool. + */ +model FixedScaleSettings { + /** + * The default value is 15 minutes. Timeout values use ISO 8601 format. For example, use PT10M for 10 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service rejects the request with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request). + */ + @summary("The timeout for allocation of compute nodes to the pool.") + resizeTimeout?: duration = duration.fromISO("PT15M"); + + /** + * At least one of targetDedicatedNodes, targetLowPriorityNodes must be set. + */ + @summary("The desired number of dedicated compute nodes in the pool.") + targetDedicatedNodes?: int32; + + /** + * At least one of targetDedicatedNodes, targetLowPriorityNodes must be set. + */ + @summary("The desired number of Spot/low-priority compute nodes in the pool.") + targetLowPriorityNodes?: int32; + + /** + * If omitted, the default value is Requeue. + */ + @summary("Determines what to do with a node and its running task(s) if the pool size is decreasing.") + @visibility(Lifecycle.Create, Lifecycle.Update) + nodeDeallocationOption?: ComputeNodeDeallocationOption; +} + +/** + * AutoScale settings for the pool. + */ +model AutoScaleSettings { + /** + * A formula for the desired number of compute nodes in the pool. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.externalDocs( + "https://learn.microsoft.com/azure/batch/batch-automatic-scaling", + "Create an automatic scaling formula for scaling compute nodes in a Batch pool" + ) + formula: string; + + /** + * If omitted, the default value is 15 minutes (PT15M). + */ + @summary("The time interval at which to automatically adjust the pool size according to the autoscale formula.") + evaluationInterval?: duration; +} + +/** + * The results and errors from an execution of a pool autoscale formula. + */ +model AutoScaleRun { + /** + * The time at which the autoscale formula was last evaluated. + */ + evaluationTime: utcDateTime; + + /** + * Each variable value is returned in the form $variable=value, and variables are separated by semicolons. + */ + @summary("The final values of all variables used in the evaluation of the autoscale formula.") + results?: string; + + /** + * An error that occurred when autoscaling a pool. + */ + @summary("Details of the error encountered evaluating the autoscale formula on the pool, if the evaluation was unsuccessful.") + error?: AutoScaleRunError; +} + +/** + * An error that occurred when autoscaling a pool. + */ +model AutoScaleRunError { + /** + * An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + */ + code: string; + + /** + * A message describing the error, intended to be suitable for display in a user interface. + */ + message: string; + + /** + * Additional details about the error. + */ + @identifiers(#["code"]) + details?: AutoScaleRunError[]; +} + +/** + * The network configuration for a pool. + */ +model NetworkConfiguration { + /** + * The virtual network must be in the same region and subscription as the Azure Batch account. The specified subnet should have enough free IP addresses to accommodate the number of nodes in the pool. If the subnet doesn't have enough free IP addresses, the pool will partially allocate compute nodes and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule tasks on the compute nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the compute nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the compute nodes to unusable. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication,including ports 29876 and 29877. Also enable outbound connections to Azure Storage on port 443. For more details see: https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.externalDocs( + "https://learn.microsoft.com/azure/batch/batch-virtual-network", + "Create an Azure Batch pool in a virtual network" + ) + @summary("The ARM resource identifier of the virtual network subnet which the compute nodes of the pool will join. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}.") + subnetId?: string; + + /** + * The scope of dynamic vnet assignment. + */ + dynamicVnetAssignmentScope?: DynamicVNetAssignmentScope = DynamicVNetAssignmentScope.none; + + /** + * The endpoint configuration for a pool. + */ + @summary("The configuration for endpoints on compute nodes in the Batch pool.") + endpointConfiguration?: PoolEndpointConfiguration; + + /** + * The public IP Address configuration of the networking configuration of a Pool. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @summary("The Public IPAddress configuration for Compute Nodes in the Batch Pool.") + publicIPAddressConfiguration?: PublicIPAddressConfiguration; + + /** + * Accelerated networking enables single root I/O virtualization (SR-IOV) to a VM, which may lead to improved networking performance. For more details, see: https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @summary("Whether this pool should enable accelerated networking.") + @OpenAPI.externalDocs( + "https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview", + "Create a VM with Accelerated Networking." + ) + enableAcceleratedNetworking?: boolean; +} + +/** + * The endpoint configuration for a pool. + */ +model PoolEndpointConfiguration { + /** + * The maximum number of inbound NAT pools per Batch pool is 5. If the maximum number of inbound NAT pools is exceeded the request fails with HTTP status code 400. This cannot be specified if the IPAddressProvisioningType is NoPublicIPAddresses. + */ + @summary("A list of inbound NAT pools that can be used to address specific ports on an individual compute node externally.") + @identifiers(#["name"]) + inboundNatPools: InboundNatPool[]; +} + +/** + * A inbound NAT pool that can be used to address specific ports on compute nodes in a Batch pool externally. + */ +model InboundNatPool { + /** + * The name must be unique within a Batch pool, can contain letters, numbers, underscores, periods, and hyphens. Names must start with a letter or number, must end with a letter, number, or underscore, and cannot exceed 77 characters. If any invalid values are provided the request fails with HTTP status code 400. + */ + @summary("The name of the endpoint.") + name: string; + + /** + * The protocol of the endpoint. + */ + protocol: InboundEndpointProtocol; + + /** + * This must be unique within a Batch pool. Acceptable values are between 1 and 65535 except for 29876 and 29877 as these are reserved. If any reserved values are provided the request fails with HTTP status code 400. + */ + @summary("The port number on the compute node.") + backendPort: int32; + + /** + * Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400. + */ + @summary("The first port number in the range of external ports that will be used to provide inbound access to the backendPort on individual compute nodes.") + frontendPortRangeStart: int32; + + /** + * Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved by the Batch service. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400. + */ + @summary("The last port number in the range of external ports that will be used to provide inbound access to the backendPort on individual compute nodes.") + frontendPortRangeEnd: int32; + + /** + * The maximum number of rules that can be specified across all the endpoints on a Batch pool is 25. If no network security group rules are specified, a default rule will be created to allow inbound access to the specified backendPort. If the maximum number of network security group rules is exceeded the request fails with HTTP status code 400. + */ + @summary("A list of network security group rules that will be applied to the endpoint.") + @identifiers(#[]) + networkSecurityGroupRules?: NetworkSecurityGroupRule[]; +} + +/** + * A network security group rule to apply to an inbound endpoint. + */ +model NetworkSecurityGroupRule { + /** + * Priorities within a pool must be unique and are evaluated in order of priority. The lower the number the higher the priority. For example, rules could be specified with order numbers of 150, 250, and 350. The rule with the order number of 150 takes precedence over the rule that has an order of 250. Allowed priorities are 150 to 4096. If any reserved or duplicate values are provided the request fails with HTTP status code 400. + */ + @summary("The priority for this rule.") + priority: int32; + + /** + * The action that should be taken for a specified IP address, subnet range or tag. + */ + access: NetworkSecurityGroupRuleAccess; + + /** + * Valid values are a single IP address (i.e. 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all addresses). If any other values are provided the request fails with HTTP status code 400. + */ + @summary("The source address prefix or tag to match for the rule.") + sourceAddressPrefix: string; + + /** + * Valid values are '*' (for all ports 0 - 65535) or arrays of ports or port ranges (i.e. 100-200). The ports should in the range of 0 to 65535 and the port ranges or ports can't overlap. If any other values are provided the request fails with HTTP status code 400. Default value will be *. + */ + @summary("The source port ranges to match for the rule.") + sourcePortRanges?: string[]; +} + +/** + * The public IP Address configuration of the networking configuration of a Pool. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model PublicIPAddressConfiguration { + /** + * The default value is BatchManaged + */ + @summary("The provisioning type for Public IP Addresses for the Batch Pool.") + provision?: IPAddressProvisioningType; + + /** + * The number of IPs specified here limits the maximum size of the Pool - 100 dedicated nodes or 100 Spot/low-priority nodes can be allocated for each public IP. For example, a pool needing 250 dedicated VMs would need at least 3 public IPs specified. Each element of this collection is of the form: /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. + */ + @summary("The list of public IPs which the Batch service will use when provisioning Compute Nodes.") + ipAddressIds?: string[]; +} + +/** + * Specifies how tasks should be distributed across compute nodes. + */ +model TaskSchedulingPolicy { + /** + * How tasks should be distributed across compute nodes. + */ + nodeFillType: ComputeNodeFillType = ComputeNodeFillType.Spread; +} + +/** + * Properties used to create a user on an Azure Batch node. + */ +model UserAccount { + /** + * The name of the user account. Names can contain any Unicode characters up to a maximum length of 20. + */ + name: string; + + /** + * The password for the user account. + */ + @secret + password: string; + + /** + * nonAdmin - The auto user is a standard user without elevated access. admin - The auto user is a user with elevated access and operates with full Administrator permissions. The default value is nonAdmin. + */ + @summary("The elevation level of the user.") + elevationLevel?: ElevationLevel; + + /** + * This property is ignored if specified on a Windows pool. If not specified, the user is created with the default options. + */ + @summary("The Linux-specific user configuration for the user account.") + linuxUserConfiguration?: LinuxUserConfiguration; + + /** + * This property can only be specified if the user is on a Windows pool. If not specified and on a Windows pool, the user is created with the default options. + */ + @summary("The Windows-specific user configuration for the user account.") + windowsUserConfiguration?: WindowsUserConfiguration; +} + +/** + * Properties used to create a user account on a Linux node. + */ +model LinuxUserConfiguration { + /** + * The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the uid. + */ + @summary("The user ID of the user account.") + uid?: int32; + + /** + * The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the gid. + */ + @summary("The group ID for the user account.") + gid?: int32; + + /** + * The private key must not be password protected. The private key is used to automatically configure asymmetric-key based authentication for SSH between nodes in a Linux pool when the pool's enableInterNodeCommunication property is true (it is ignored if enableInterNodeCommunication is false). It does this by placing the key pair into the user's .ssh directory. If not specified, password-less SSH is not configured between nodes (no modification of the user's .ssh directory is done). + */ + @summary("The SSH private key for the user account.") + @secret + sshPrivateKey?: string; +} + +/** + * Properties used to create a user account on a Windows node. + */ +model WindowsUserConfiguration { + /** + * Specifies login mode for the user. The default value is Interactive. + */ + @summary("Login mode for user") + loginMode?: LoginMode; +} + +/** + * The Batch service does not assign any meaning to this metadata; it is solely for the use of user code. + */ +@summary("A name-value pair associated with a Batch service resource.") +model MetadataItem { + /** + * The name of the metadata item. + */ + name: string; + + /** + * The value of the metadata item. + */ + value: string; +} + +/** + * In some cases the start task may be re-run even though the node was not rebooted. Due to this, start tasks should be idempotent and exit gracefully if the setup they're performing has already been done. Special care should be taken to avoid start tasks which create breakaway process or install/launch services from the start task working directory, as this will block Batch from being able to re-run the start task. + */ +@summary("A task which is run when a compute node joins a pool in the Azure Batch service, or when the compute node is rebooted or reimaged.") +model StartTask { + /** + * The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using "cmd /c MyCommand" in Windows or "/bin/sh -c MyCommand" in Linux. Required if any other properties of the startTask are specified. + */ + @summary("The command line of the start task.") + commandLine?: string; + + /** + * A list of files that the Batch service will download to the compute node before running the command line. + */ + @identifiers(#["httpUrl"]) + resourceFiles?: ResourceFile[]; + + /** + * A list of environment variable settings for the start task. + */ + @identifiers(#["name"]) + environmentSettings?: EnvironmentSetting[]; + + /** + * If omitted, the task runs as a non-administrative user unique to the task. + */ + @summary("The user identity under which the start task runs.") + userIdentity?: UserIdentity; + + /** + * The Batch service retries a task if its exit code is nonzero. Note that this value specifically controls the number of retries. The Batch service will try the task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the task. If the maximum retry count is -1, the Batch service retries the task without limit. Default is 0 + */ + @summary("The maximum number of times the task may be retried.") + maxTaskRetryCount?: int32 = 0; + + /** + * If true and the start task fails on a compute node, the Batch service retries the start task up to its maximum retry count (maxTaskRetryCount). If the task has still not completed successfully after all retries, then the Batch service marks the compute node unusable, and will not schedule tasks to it. This condition can be detected via the node state and scheduling error detail. If false, the Batch service will not wait for the start task to complete. In this case, other tasks can start executing on the compute node while the start task is still running; and even if the start task fails, new tasks will continue to be scheduled on the node. The default is true. + */ + @summary("Whether the Batch service should wait for the start task to complete successfully (that is, to exit with exit code 0) before scheduling any tasks on the compute node.") + waitForSuccess?: boolean; + + /** + * When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all task environment variables are mapped into the container, and the task command line is executed in the container. + */ + @summary("The settings for the container under which the start task runs.") + containerSettings?: TaskContainerSettings; +} + +/** + * A single file or multiple files to be downloaded to a compute node. + */ +model ResourceFile { + /** + * The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. + */ + @summary("The storage container name in the auto storage account.") + autoStorageContainerName?: string; + + /** + * The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. This URL must be readable and listable from compute nodes. There are three ways to get such a URL for a container in Azure storage: include a Shared Access Signature (SAS) granting read and list permissions on the container, use a managed identity with read and list permissions, or set the ACL for the container to allow public access. + */ + @summary("The URL of the blob container within Azure Blob Storage.") + storageContainerUrl?: string; + + /** + * The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. If the URL points to Azure Blob Storage, it must be readable from compute nodes. There are three ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read permissions on the blob, use a managed identity with read permission, or set the ACL for the blob or its container to allow public access. + */ + @summary("The URL of the file to download.") + httpUrl?: string; + + /** + * The property is valid only when autoStorageContainerName or storageContainerUrl is used. This prefix can be a partial filename or a subdirectory. If a prefix is not specified, all the files in the container will be downloaded. + */ + @summary("The blob prefix to use when downloading blobs from an Azure Storage container. Only the blobs whose names begin with the specified prefix will be downloaded.") + blobPrefix?: string; + + /** + * If the httpUrl property is specified, the filePath is required and describes the path which the file will be downloaded to, including the filename. Otherwise, if the autoStorageContainerName or storageContainerUrl property is specified, filePath is optional and is the directory to download the files to. In the case where filePath is used as a directory, any directory structure already associated with the input data will be retained in full and appended to the specified filePath directory. The specified relative path cannot break out of the task's working directory (for example by using '..'). + */ + @summary("The location on the compute node to which to download the file, relative to the task's working directory.") + filePath?: string; + + /** + * This property applies only to files being downloaded to Linux compute nodes. It will be ignored if it is specified for a resourceFile which will be downloaded to a Windows node. If this property is not specified for a Linux node, then a default value of 0770 is applied to the file. + */ + @summary("The file permission mode attribute in octal format.") + fileMode?: string; + + /** + * The reference to a user assigned identity associated with the Batch pool which a compute node will use. + */ + @summary("The reference to the user assigned identity to use to access Azure Blob Storage specified by storageContainerUrl or httpUrl") + identityReference?: ComputeNodeIdentityReference; +} + +/** + * An environment variable to be set on a task process. + */ +model EnvironmentSetting { + /** + * The name of the environment variable. + */ + name: string; + + /** + * The value of the environment variable. + */ + value?: string; +} + +/** + * Specify either the userName or autoUser property, but not both. + */ +@summary("The definition of the user identity under which the task is run.") +model UserIdentity { + /** + * The userName and autoUser properties are mutually exclusive; you must specify one but not both. + */ + @summary("The name of the user identity under which the task is run.") + userName?: string; + + /** + * The userName and autoUser properties are mutually exclusive; you must specify one but not both. + */ + @summary("The auto user under which the task is run.") + autoUser?: AutoUserSpecification; +} + +/** + * Specifies the parameters for the auto user that runs a task on the Batch service. + */ +model AutoUserSpecification { + /** + * The default value is Pool. If the pool is running Windows a value of Task should be specified if stricter isolation between tasks is required. For example, if the task mutates the registry in a way which could impact other tasks, or if certificates have been specified on the pool which should not be accessible by normal tasks but should be accessible by start tasks. + */ + @summary("The scope for the auto user") + scope?: AutoUserScope; + + /** + * The default value is nonAdmin. + */ + @summary("The elevation level of the user.") + elevationLevel?: ElevationLevel; +} + +/** + * The container settings for a task. + */ +model TaskContainerSettings { + /** + * These additional options are supplied as arguments to the "docker create" command, in addition to those controlled by the Batch Service. + */ + @summary("Additional options to the container create command.") + containerRunOptions?: string; + + /** + * This is the full image reference, as would be specified to "docker pull". If no tag is provided as part of the image name, the tag ":latest" is used as a default. + */ + @summary("The image to use to create the container in which the task will run.") + imageName: string; + + /** + * This setting can be omitted if was already provided at pool creation. + */ + @summary("The private registry which contains the container image.") + registry?: ContainerRegistry; + + /** + * A flag to indicate where the container task working directory is. The default is 'taskWorkingDirectory'. + */ + workingDirectory?: ContainerWorkingDirectory; + + /** + * If this array is null or be not present, container task will mount entire temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in Linux). It won't' mount any data paths into container if this array is set as empty. + */ + @summary("The paths you want to mounted to container task.") + @identifiers(#[]) + containerHostBatchBindMounts?: ContainerHostBatchBindMountEntry[]; +} + +/** + * The entry of path and mount mode you want to mount into task container. + */ +model ContainerHostBatchBindMountEntry { + /** + * The paths which will be mounted to container task's container. + */ + source?: ContainerHostDataPath; + + /** + * For Linux, if you mount this path as a read/write mode, this does not mean that all users in container have the read/write access for the path, it depends on the access in host VM. If this path is mounted read-only, all users within the container will not be able to modify the path. + */ + @summary("Mount this source path as read-only mode or not. Default value is false (read/write mode).") + isReadOnly?: boolean; +} + +/** + * Warning: This object 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("A reference to a certificate to be installed on compute nodes in a pool. This must exist inside the same account as the pool.") +model CertificateReference { + /** + * The fully qualified ID of the certificate to install on the pool. This must be inside the same batch account as the pool. + */ + id: string; + + /** + * The default value is currentUser. This property is applicable only for pools configured with Windows compute nodes. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory. + */ + @summary("The location of the certificate store on the compute node into which to install the certificate.") + storeLocation?: CertificateStoreLocation; + + /** + * This property is applicable only for pools configured with Windows compute nodes. Common store names include: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but any custom store name can also be used. The default value is My. + */ + @summary("The name of the certificate store on the compute node into which to install the certificate.") + storeName?: string; + + /** + * Which user accounts on the compute node should have access to the private data of the certificate. + */ + visibility?: CertificateVisibility[]; +} + +/** + * Link to an application package inside the batch account + */ +model ApplicationPackageReference { + /** + * The ID of the application package to install. This must be inside the same batch account as the pool. This can either be a reference to a specific version or the default version if one exists. + */ + id: string; + + /** + * If this is omitted, and no default version is specified for this application, the request fails with the error code InvalidApplicationPackageReferences. If you are calling the REST API directly, the HTTP status code is 409. + */ + @summary("The version of the application to deploy. If omitted, the default version is deployed.") + version?: string; +} + +/** + * Describes either the current operation (if the pool AllocationState is Resizing) or the previously completed operation (if the AllocationState is Steady). + */ +@summary("Details about the current or last completed resize operation.") +model ResizeOperationStatus { + /** + * The desired number of dedicated compute nodes in the pool. + */ + targetDedicatedNodes?: int32; + + /** + * The desired number of Spot/low-priority compute nodes in the pool. + */ + targetLowPriorityNodes?: int32; + + /** + * The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request). + */ + @summary("The timeout for allocation of compute nodes to the pool or removal of compute nodes from the pool.") + resizeTimeout?: duration; + + /** + * The default value is requeue. + */ + @summary("Determines what to do with a node and its running task(s) after it has been selected for deallocation.") + nodeDeallocationOption?: ComputeNodeDeallocationOption; + + /** + * The time when this resize operation was started. + */ + startTime?: utcDateTime; + + /** + * This property is set only if an error occurred during the last pool resize, and only when the pool allocationState is Steady. + */ + @summary("Details of any errors encountered while performing the last resize on the pool.") + @identifiers(#["code"]) + errors?: ResizeError[]; +} + +/** + * An error that occurred when resizing a pool. + */ +model ResizeError { + /** + * An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + */ + code: string; + + /** + * A message describing the error, intended to be suitable for display in a user interface. + */ + message: string; + + /** + * Additional details about the error. + */ + @identifiers(#["code"]) + details?: ResizeError[]; +} + +/** + * The file system to mount on each node. + */ +model MountConfiguration { + /** + * This property is mutually exclusive with all other properties. + */ + @summary("The Azure Storage Container to mount using blob FUSE on each node.") + azureBlobFileSystemConfiguration?: AzureBlobFileSystemConfiguration; + + /** + * This property is mutually exclusive with all other properties. + */ + @summary("The NFS file system to mount on each node.") + nfsMountConfiguration?: NFSMountConfiguration; + + /** + * This property is mutually exclusive with all other properties. + */ + @summary("The CIFS/SMB file system to mount on each node.") + cifsMountConfiguration?: CifsMountConfiguration; + + /** + * This property is mutually exclusive with all other properties. + */ + @summary("The Azure File Share to mount on each node.") + azureFileShareConfiguration?: AzureFileShareConfiguration; +} + +/** + * Information used to connect to an Azure Storage Container using Blobfuse. + */ +model AzureBlobFileSystemConfiguration { + /** + * The Azure Storage Account name. + */ + accountName: string; + + /** + * The Azure Blob Storage Container name. + */ + containerName: string; + + /** + * This property is mutually exclusive with both sasKey and identity; exactly one must be specified. + */ + @summary("The Azure Storage Account key.") + @secret + accountKey?: string; + + /** + * This property is mutually exclusive with both accountKey and identity; exactly one must be specified. + */ + @summary("The Azure Storage SAS token.") + @secret + sasKey?: string; + + /** + * These are 'net use' options in Windows and 'mount' options in Linux. + */ + @summary("Additional command line options to pass to the mount command.") + blobfuseOptions?: string; + + /** + * All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable. + */ + @summary("The relative path on the compute node where the file system will be mounted") + relativeMountPath: string; + + /** + * This property is mutually exclusive with both accountKey and sasKey; exactly one must be specified. + */ + @summary("The reference to the user assigned identity to use to access containerName") + identityReference?: ComputeNodeIdentityReference; +} + +/** + * Information used to connect to an NFS file system. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model NFSMountConfiguration { + /** + * The URI of the file system to mount. + */ + source: string; + + /** + * All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable. + */ + @summary("The relative path on the compute node where the file system will be mounted") + relativeMountPath: string; + + /** + * These are 'net use' options in Windows and 'mount' options in Linux. + */ + @summary("Additional command line options to pass to the mount command.") + mountOptions?: string; +} + +/** + * Information used to connect to a CIFS file system. + */ +model CifsMountConfiguration { + /** + * The user to use for authentication against the CIFS file system. + */ + userName: string; + + /** + * The URI of the file system to mount. + */ + source: string; + + /** + * All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable. + */ + @summary("The relative path on the compute node where the file system will be mounted") + relativeMountPath: string; + + /** + * These are 'net use' options in Windows and 'mount' options in Linux. + */ + @summary("Additional command line options to pass to the mount command.") + mountOptions?: string; + + /** + * The password to use for authentication against the CIFS file system. + */ + @secret + password: string; +} + +/** + * Information used to connect to an Azure Fileshare. + */ +model AzureFileShareConfiguration { + /** + * The Azure Storage account name. + */ + accountName: string; + + /** + * This is of the form 'https://{account}.file.core.windows.net/'. + */ + @summary("The Azure Files URL.") + azureFileUrl: string; + + /** + * The Azure Storage account key. + */ + @secret + accountKey: string; + + /** + * All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable. + */ + @summary("The relative path on the compute node where the file system will be mounted") + relativeMountPath: string; + + /** + * These are 'net use' options in Windows and 'mount' options in Linux. + */ + @summary("Additional command line options to pass to the mount command.") + mountOptions?: string; +} + +/** + * Describes an upgrade policy - automatic, manual, or rolling. + */ +model UpgradePolicy { + /** + * Specifies the mode of an upgrade to virtual machines in the scale set.<br /><br /> Possible values are:<br /><br /> **Manual** - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action.<br /><br /> **Automatic** - All virtual machines in the scale set are automatically updated at the same time.<br /><br /> **Rolling** - Scale set performs updates in batches with an optional pause time in between. + */ + mode: UpgradeMode; + + /** + * The configuration parameters used for performing automatic OS upgrade. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + automaticOSUpgradePolicy?: AutomaticOSUpgradePolicy; + + /** + * The configuration parameters used while performing a rolling upgrade. + */ + rollingUpgradePolicy?: RollingUpgradePolicy; +} + +/** + * The configuration parameters used for performing automatic OS upgrade. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AutomaticOSUpgradePolicy { + /** + * Whether OS image rollback feature should be disabled. + */ + disableAutomaticRollback?: boolean; + + /** + * Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. <br /><br /> If this is set to true for Windows based pools, [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) cannot be set to true. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + enableAutomaticOSUpgrade?: boolean; + + /** + * Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS. + */ + useRollingUpgradePolicy?: boolean; + + /** + * Defer OS upgrades on the TVMs if they are running tasks. + */ + osRollingUpgradeDeferral?: boolean; +} + +/** + * The configuration parameters used while performing a rolling upgrade. + */ +model RollingUpgradePolicy { + /** + * Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size. If this field is not set, Azure Azure Batch will not set its default value. The value of enableCrossZoneUpgrade on the created VirtualMachineScaleSet will be decided by the default configurations on VirtualMachineScaleSet. This field is able to be set to true or false only when using NodePlacementConfiguration as Zonal. + */ + enableCrossZoneUpgrade?: boolean; + + /** + * The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent. + */ + @maxValue(100) + @minValue(5) + maxBatchInstancePercent?: int32; + + /** + * The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent. + */ + @maxValue(100) + @minValue(5) + maxUnhealthyInstancePercent?: int32; + + /** + * The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The value of this field should be between 0 and 100, inclusive. + */ + @maxValue(100) + @minValue(0) + maxUnhealthyUpgradedInstancePercent?: int32; + + /** + * The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format. + */ + pauseTimeBetweenBatches?: string; + + /** + * Upgrade all unhealthy instances in a scale set before any healthy instances. + */ + prioritizeUnhealthyInstances?: boolean; + + /** + * Rollback failed instances to previous model if the Rolling Upgrade policy is violated. + */ + rollbackFailedInstancesOnPolicyBreach?: boolean; +} + +/** + * The identity of the Batch pool, if configured. If the pool identity is updated during update an existing pool, only the new vms which are created after the pool shrinks to 0 will have the updated identities + */ +model BatchPoolIdentity { + /** + * The type of identity used for the Batch Pool. + */ + type: PoolIdentityType; + + /** + * The list of user identities associated with the Batch pool. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + userAssignedIdentities?: Record<UserAssignedIdentities>; +} + +/** + * Values returned by the List operation. + */ +model OutboundEnvironmentEndpointCollection + is Azure.Core.Page<OutboundEnvironmentEndpoint>; + +/** + * A collection of related endpoints from the same service for which the Batch service requires outbound access. + */ +model OutboundEnvironmentEndpoint { + /** + * The type of service that the Batch service connects to. + */ + @visibility(Lifecycle.Read) + category?: string; + + /** + * The endpoints for this service to which the Batch service makes outbound calls. + */ + @visibility(Lifecycle.Read) + @identifiers(#["domainName"]) + endpoints?: EndpointDependency[]; +} + +/** + * A domain name and connection details used to access a dependency. + */ +model EndpointDependency { + /** + * The domain name of the dependency. Domain names may be fully qualified or may contain a * wildcard. + */ + @visibility(Lifecycle.Read) + domainName?: string; + + /** + * Human-readable supplemental information about the dependency and when it is applicable. + */ + @visibility(Lifecycle.Read) + description?: string; + + /** + * The list of connection details for this endpoint. + */ + @visibility(Lifecycle.Read) + @identifiers(#["port"]) + endpointDetails?: EndpointDetail[]; +} + +/** + * Details about the connection between the Batch service and the endpoint. + */ +model EndpointDetail { + /** + * The port an endpoint is connected to. + */ + @visibility(Lifecycle.Read) + port?: int32; +} + +model DetectorListResult is Azure.Core.Page<DetectorResponse>; + +model OperationListResult is Azure.Core.Page<Operation>; + +model BatchAccountListResult is Azure.Core.Page<BatchAccount>; +@@identifiers(BatchAccountListResult.value, #["/properties/accountEndpoint"]); +@@summary(OperationListResult.value, + "The list of operations supported by the resource provider." +); +@@summary(OperationListResult.nextLink, + "The URL to get the next set of operation list results if there are any." +); +@@summary(OperationListResult, + "Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next set of results." +); +@@identifiers(OperationListResult.value, #["name"]); +@@visibility(OutboundEnvironmentEndpointCollection.value, Lifecycle.Read); +@@identifiers(SupportedSkusResult.value, #["name"]); +@@Azure.ClientGenerator.Core.clientName(CifsMountConfiguration, + "CIFSMountConfiguration" +); diff --git a/specification/batch/Batch.Management/routes.tsp b/specification/batch/Batch.Management/routes.tsp new file mode 100644 index 000000000000..3ae6e69e4443 --- /dev/null +++ b/specification/batch/Batch.Management/routes.tsp @@ -0,0 +1,89 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models.tsp"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using TypeSpec.OpenAPI; + +namespace Microsoft.Batch; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface LocationOperationGroup { + /** + * Gets the Batch service quotas for the specified subscription at the given location. + */ + @autoRoute + @get + @action("quotas") + getQuotas is ArmProviderActionSync< + Response = BatchLocationQuota, + Scope = SubscriptionActionScope, + Parameters = { + /** + * The region for which to retrieve Batch service quotas. + */ + @path + @segment("locations") + locationName: string; + }, + Error = CloudError + >; + /** + * Gets the list of Batch supported Virtual Machine VM sizes available at the given location. + */ + @autoRoute + @list + @get + @action("virtualMachineSkus") + listSupportedVirtualMachineSkus is ArmProviderActionSync< + Response = SupportedSkusResult, + Scope = SubscriptionActionScope, + Parameters = { + /** + * The region for which to retrieve Batch service supported SKUs. + */ + @path + @segment("locations") + locationName: string; + + /** + * The maximum number of items to return in the response. + */ + @query("maxresults") + maxresults?: int32; + + /** + * OData filter expression. Valid properties for filtering are "familyName". + */ + @query("$filter") + $filter?: string; + }, + Error = CloudError + >; + /** + * Checks whether the Batch account name is available in the specified region. + */ + @autoRoute + checkNameAvailability is ArmProviderActionSync< + Request = CheckNameAvailabilityParameters, + Response = CheckNameAvailabilityResult, + Scope = SubscriptionActionScope, + Parameters = { + /** + * The desired region for the name check. + */ + @path + @segment("locations") + locationName: string; + }, + Error = CloudError + >; +} + +@@doc(LocationOperationGroup.checkNameAvailability::parameters.body, + "Properties needed to check the availability of a name." +); diff --git a/specification/batch/Batch.Management/tspconfig.yaml b/specification/batch/Batch.Management/tspconfig.yaml new file mode 100644 index 000000000000..098011730f5b --- /dev/null +++ b/specification/batch/Batch.Management/tspconfig.yaml @@ -0,0 +1,50 @@ +parameters: + "service-dir": + default: "sdk/batch" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + omit-unreachable-types: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/openapi.json" + examples-dir: "{project-root}/examples" + emit-lro-options: "all" + "@azure-tools/typespec-python": + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-batch" + namespace: "azure.mgmt.batch" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-batch" + namespace: "com.azure.resourcemanager.batch" + service-name: "Batch" # human-readable service name, whitespace allowed + flavor: azure + client-side-validations: true + use-object-for-unknown: true + "@azure-tools/typespec-ts": + service-dir: sdk/batch + emitter-output-dir: "{output-dir}/{service-dir}/arm-batch" + is-modular-library: true + flavor: "azure" + experimental-extensible-enums: true + package-details: + name: "@azure/arm-batch" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/batch" + emitter-output-dir: "{output-dir}/{service-dir}/armbatch" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armbatch" + fix-const-stuttering: false + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true + "@azure-typespec/http-client-csharp-mgmt": + namespace: "Azure.ResourceManager.Batch" + emitter-output-dir: "{output-dir}/sdk/batch/{namespace}" +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/NetworkSecurityPerimeter.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/NetworkSecurityPerimeter.json deleted file mode 100644 index b0bca5fba0f6..000000000000 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/NetworkSecurityPerimeter.json +++ /dev/null @@ -1,197 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "BatchManagementClient", - "description": "The Batch Management Client.", - "version": "2024-07-01" - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Microsoft Entra OAuth 2.0 auth code flow", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations": { - "get": { - "tags": [ - "NetworkSecurityPerimeter" - ], - "operationId": "NetworkSecurityPerimeter_ListConfigurations", - "description": "Lists all of the NSP configurations in the specified account.", - "x-ms-examples": { - "ListNspConfigurations": { - "$ref": "./examples/NspConfigurationsList.json" - } - }, - "parameters": [ - { - "$ref": "./BatchManagement.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "./BatchManagement.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./BatchManagement.json#/parameters/AccountNameParameter" - }, - { - "$ref": "./BatchManagement.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "The operation was successful. The response contains a list of NSP configurations associated with the account.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfigurationListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./BatchManagement.json#/definitions/CloudError" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}": { - "get": { - "tags": [ - "NetworkSecurityPerimeter" - ], - "operationId": "NetworkSecurityPerimeter_GetConfiguration", - "description": "Gets information about the specified NSP configuration.", - "x-ms-examples": { - "GetNspConfiguration": { - "$ref": "./examples/NspConfigurationGet.json" - } - }, - "parameters": [ - { - "$ref": "./BatchManagement.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "./BatchManagement.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./BatchManagement.json#/parameters/AccountNameParameter" - }, - { - "$ref": "#/parameters/networkSecurityPerimeterConfigurationName" - }, - { - "$ref": "./BatchManagement.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "The operation was successful. The response contains the NSP configuration.", - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfiguration" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "./BatchManagement.json#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}/reconcile": { - "post": { - "tags": [ - "NetworkSecurityPerimeter" - ], - "operationId": "NetworkSecurityPerimeter_ReconcileConfiguration", - "description": "Reconciles the specified NSP configuration.", - "x-ms-examples": { - "ReconcileNspConfiguration": { - "$ref": "./examples/NspConfigurationReconcile.json" - } - }, - "parameters": [ - { - "$ref": "./BatchManagement.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "./BatchManagement.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./BatchManagement.json#/parameters/AccountNameParameter" - }, - { - "$ref": "#/parameters/networkSecurityPerimeterConfigurationName" - }, - { - "$ref": "./BatchManagement.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "202": { - "description": "The operation was accepted and will be performed in the background.", - "headers": { - "Location": { - "description": "The URL of the resource used to check the status of the asynchronous operation.", - "type": "string" - }, - "Retry-After": { - "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that specifies the delay in seconds.", - "type": "integer", - "format": "int32" - } - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "x-ms-error-response": true, - "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - } - } - }, - "parameters": { - "networkSecurityPerimeterConfigurationName": { - "name": "networkSecurityPerimeterConfigurationName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^.*$", - "description": "The name for Network Security Perimeter configuration", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationCreate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationCreate.json index debd488d6c9c..32ec46dce379 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationCreate.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationCreate.json @@ -1,32 +1,33 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "applicationName": "app1", "parameters": { "properties": { "allowUpdates": false, "displayName": "myAppName" } - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D64F8EBB3DC411\"" - }, "body": { - "type": "Microsoft.Batch/batchAccounts/applications", - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", "name": "app1", - "etag": "W/\"0x8D64F8EBB3DC411\"", + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", "properties": { "allowUpdates": false, "displayName": "myAppName" } + }, + "headers": { + "ETag": "W/\"0x8D64F8EBB3DC411\"" } } - } + }, + "operationId": "Application_Create", + "title": "ApplicationCreate" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationDelete.json index d1baa47623ba..2885b1018327 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationDelete.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationDelete.json @@ -1,13 +1,15 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", - "applicationName": "app1" + "applicationName": "app1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "Application_Delete", + "title": "ApplicationDelete" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationGet.json index 74a39201d028..b56515e57cda 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationGet.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationGet.json @@ -1,26 +1,27 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", - "applicationName": "app1" + "applicationName": "app1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D64F915BDF7F00\"" - }, "body": { - "type": "Microsoft.Batch/batchAccounts/applications", - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", "name": "app1", - "etag": "W/\"0x8D64F915BDF7F00\"", + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", "properties": { "allowUpdates": true, "displayName": "Sample Application" } + }, + "headers": { + "ETag": "W/\"0x8D64F915BDF7F00\"" } } - } + }, + "operationId": "Application_Get", + "title": "ApplicationGet" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationList.json index 430b315bf9cc..ca4032c859d4 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationList.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationList.json @@ -1,29 +1,27 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { "value": [ { - "type": "Microsoft.Batch/batchAccounts/applications", - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", "name": "app1", - "etag": "W/\"0x8D64F91A9089879\"", + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", "properties": { "allowUpdates": false, "defaultVersion": "1" } }, { - "type": "Microsoft.Batch/batchAccounts/applications", - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app2", "name": "app1", - "etag": "W/\"0x8D64F91A9089879\"", + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app2", "properties": { "allowUpdates": false, "defaultVersion": "2.0", @@ -33,5 +31,7 @@ ] } } - } + }, + "operationId": "Application_List", + "title": "ApplicationList" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageActivate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageActivate.json index eea8f72c4ca9..5132453596d3 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageActivate.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageActivate.json @@ -1,31 +1,32 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "applicationName": "app1", - "versionName": "1", "parameters": { "format": "zip" - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "versionName": "1" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D64FEC83A3B436\"" - }, "body": { - "type": "Microsoft.Batch/batchAccounts/applications/versions", - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1", "name": "1", - "etag": "W/\"0x8D64FEC83A3B436\"", + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1", "properties": { - "state": "Active", "format": "zip", - "lastActivationTime": "2017-06-27T18:48:09.9330991Z" + "lastActivationTime": "2017-06-27T18:48:09.9330991Z", + "state": "Active" } + }, + "headers": { + "ETag": "W/\"0x8D64FEC83A3B436\"" } } - } + }, + "operationId": "ApplicationPackage_Activate", + "title": "ApplicationPackageActivate" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageCreate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageCreate.json index 3df4b404305d..2ffa02af7ca0 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageCreate.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageCreate.json @@ -1,28 +1,29 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "applicationName": "app1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012", "versionName": "1" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D64FEC83A3B436\"" - }, "body": { - "type": "Microsoft.Batch/batchAccounts/applications/versions", - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1", "name": "1", - "etag": "W/\"0x8D64FEC83A3B436\"", + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1", "properties": { + "state": "Pending", "storageUrl": "http://mystorage1.blob.core.windows.net/myapp?mysas", - "storageUrlExpiry": "2017-06-27T18:48:09.9330991Z", - "state": "Pending" + "storageUrlExpiry": "2017-06-27T18:48:09.9330991Z" } + }, + "headers": { + "ETag": "W/\"0x8D64FEC83A3B436\"" } } - } + }, + "operationId": "ApplicationPackage_Create", + "title": "ApplicationPackageCreate" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageDelete.json index 153ca321d9c4..b15057a538b6 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageDelete.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageDelete.json @@ -1,14 +1,16 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "applicationName": "app1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012", "versionName": "1" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "ApplicationPackage_Delete", + "title": "ApplicationPackageDelete" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageGet.json index 063dc5b12a01..12a814f3be3f 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageGet.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageGet.json @@ -1,28 +1,29 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "applicationName": "app1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012", "versionName": "1" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D64FEC83A3B436\"" - }, "body": { - "type": "Microsoft.Batch/batchAccounts/applications/versions", - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1", "name": "1", - "etag": "W/\"0x8D64FEC83A3B436\"", + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1", "properties": { - "state": "Active", "format": "zip", - "lastActivationTime": "2017-06-27T18:48:09.9330991Z" + "lastActivationTime": "2017-06-27T18:48:09.9330991Z", + "state": "Active" } + }, + "headers": { + "ETag": "W/\"0x8D64FEC83A3B436\"" } } - } + }, + "operationId": "ApplicationPackage_Get", + "title": "ApplicationPackageGet" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageList.json index b608bd955157..b64836a8ffef 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageList.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationPackageList.json @@ -1,37 +1,37 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", - "applicationName": "app1" + "applicationName": "app1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { "value": [ { - "type": "Microsoft.Batch/batchAccounts/applications/versions", - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1.0", "name": "1.0", - "etag": "W/\"0x8D64FF0B9F47F67\"", + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1.0", "properties": { "state": "Pending" } }, { - "type": "Microsoft.Batch/batchAccounts/applications/versions", - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/2.0", "name": "2.0", - "etag": "W/\"0x8D64FF0B9F47F67\"", + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/2.0", "properties": { - "state": "Active", "format": "zip", - "lastActivationTime": "2017-06-27T18:48:09.9330991Z" + "lastActivationTime": "2017-06-27T18:48:09.9330991Z", + "state": "Active" } } ] } } - } + }, + "operationId": "ApplicationPackage_List", + "title": "ApplicationPackageList" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationUpdate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationUpdate.json index 6352f39b5fa0..910c723de5b7 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationUpdate.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/ApplicationUpdate.json @@ -1,34 +1,35 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "applicationName": "app1", "parameters": { "properties": { "allowUpdates": true, - "displayName": "myAppName", - "defaultVersion": "2" + "defaultVersion": "2", + "displayName": "myAppName" } - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D64F915BDF7F00\"" - }, "body": { - "type": "Microsoft.Batch/batchAccounts/applications", - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", "name": "app1", - "etag": "W/\"0x8D64F915BDF7F00\"", + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", "properties": { "allowUpdates": true, - "displayName": "myAppName", - "defaultVersion": "2" + "defaultVersion": "2", + "displayName": "myAppName" } + }, + "headers": { + "ETag": "W/\"0x8D64F915BDF7F00\"" } } - } + }, + "operationId": "Application_Update", + "title": "ApplicationUpdate" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_BYOS.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_BYOS.json index 2979901eaf6b..fa91b16618e6 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_BYOS.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_BYOS.json @@ -1,53 +1,55 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "parameters": { "location": "japaneast", "properties": { "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" }, - "poolAllocationMode": "UserSubscription", "keyVaultReference": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", "url": "http://sample.vault.azure.net/" - } + }, + "poolAllocationMode": "UserSubscription" } - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { - "202": {}, "200": { "body": { "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, "location": "japaneast", "properties": { "accountEndpoint": "sampleacct.japaneast.batch.azure.com", - "provisioningState": "Succeeded", - "poolAllocationMode": "UserSubscription", - "dedicatedCoreQuota": 20, - "lowPriorityCoreQuota": 20, - "poolQuota": 20, "activeJobAndJobScheduleQuota": 20, "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", - "lastKeySync": "2016-03-10T23:48:38.9878479Z" + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" }, + "dedicatedCoreQuota": 20, "keyVaultReference": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", "url": "http://sample.vault.azure.net/" }, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "UserSubscription", + "poolQuota": 20, + "provisioningState": "Succeeded", "publicNetworkAccess": "Enabled" - }, - "identity": { - "type": "None" - }, - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", - "type": "Microsoft.Batch/batchAccounts" + } } - } - } + }, + "202": {} + }, + "operationId": "BatchAccount_Create", + "title": "BatchAccountCreate_BYOS" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_Default.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_Default.json index 2936ff5120f7..b2280a896005 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_Default.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_Default.json @@ -1,44 +1,46 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "parameters": { "location": "japaneast", "properties": { "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" } } - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { - "202": {}, "200": { "body": { "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, "location": "japaneast", "properties": { "accountEndpoint": "sampleacct.japaneast.batch.azure.com", - "provisioningState": "Succeeded", - "poolAllocationMode": "BatchService", - "dedicatedCoreQuota": 20, - "lowPriorityCoreQuota": 20, - "poolQuota": 20, "activeJobAndJobScheduleQuota": 20, "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", - "lastKeySync": "2016-03-10T23:48:38.9878479Z" + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", "publicNetworkAccess": "Enabled" - }, - "identity": { - "type": "None" - }, - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", - "type": "Microsoft.Batch/batchAccounts" + } } - } - } + }, + "202": {} + }, + "operationId": "BatchAccount_Create", + "title": "BatchAccountCreate_Default" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_SystemAssignedIdentity.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_SystemAssignedIdentity.json index 2d83d87a359c..14e9cfab62a3 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_SystemAssignedIdentity.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_SystemAssignedIdentity.json @@ -1,49 +1,51 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "parameters": { + "identity": { + "type": "SystemAssigned" + }, "location": "japaneast", "properties": { "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" } - }, - "identity": { - "type": "SystemAssigned" } - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { - "202": {}, "200": { "body": { "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "SystemAssigned", + "principalId": "1a2e532b-9900-414c-8600-cfc6126628d7", + "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd" + }, "location": "japaneast", "properties": { "accountEndpoint": "sampleacct.japaneast.batch.azure.com", - "provisioningState": "Succeeded", - "poolAllocationMode": "BatchService", - "dedicatedCoreQuota": 20, - "lowPriorityCoreQuota": 20, - "poolQuota": 20, "activeJobAndJobScheduleQuota": 20, "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", - "lastKeySync": "2016-03-10T23:48:38.9878479Z" + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", "publicNetworkAccess": "Enabled" - }, - "identity": { - "principalId": "1a2e532b-9900-414c-8600-cfc6126628d7", - "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd", - "type": "SystemAssigned" - }, - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", - "type": "Microsoft.Batch/batchAccounts" + } } - } - } + }, + "202": {} + }, + "operationId": "BatchAccount_Create", + "title": "BatchAccountCreate_SystemAssignedIdentity" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_UserAssignedIdentity.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_UserAssignedIdentity.json index 89fd32095a4d..22be16f9e691 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_UserAssignedIdentity.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountCreate_UserAssignedIdentity.json @@ -1,56 +1,58 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "parameters": { - "location": "japaneast", - "properties": { - "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" - } - }, "identity": { "type": "UserAssigned", "userAssignedIdentities": { - "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {} + "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {} + } + }, + "location": "japaneast", + "properties": { + "autoStorage": { + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" } } - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { - "202": {}, "200": { "body": { "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": { + "clientId": "clientId1", + "principalId": "principalId1" + } + } + }, "location": "japaneast", "properties": { "accountEndpoint": "sampleacct.japaneast.batch.azure.com", - "provisioningState": "Succeeded", - "poolAllocationMode": "BatchService", - "dedicatedCoreQuota": 20, - "lowPriorityCoreQuota": 20, - "poolQuota": 20, "activeJobAndJobScheduleQuota": 20, "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", - "lastKeySync": "2016-03-10T23:48:38.9878479Z" + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", "publicNetworkAccess": "Enabled" - }, - "identity": { - "type": "UserAssigned", - "userAssignedIdentities": { - "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": { - "principalId": "principalId1", - "clientId": "clientId1" - } - } - }, - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", - "type": "Microsoft.Batch/batchAccounts" + } } - } - } + }, + "202": {} + }, + "operationId": "BatchAccount_Create", + "title": "BatchAccountCreate_UserAssignedIdentity" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountDelete.json index 992eaec1ca36..e2f2b2f5ac25 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountDelete.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountDelete.json @@ -1,17 +1,19 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": {}, "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Batch/locations/japaneast/accountOperationResults/sampleacct-30a022cb-a64f-4fd5-9289-8b38b342e9de?api-version=2024-07-01" + "Location": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.Batch/locations/japaneast/accountOperationResults/sampleacct-30a022cb-a64f-4fd5-9289-8b38b342e9de?api-version=2024-07-01" } }, "204": {} - } + }, + "operationId": "BatchAccount_Delete", + "title": "BatchAccountDelete" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountGet.json index 3718254e5e71..bdb30f458bbc 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountGet.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountGet.json @@ -1,35 +1,37 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, "location": "japaneast", "properties": { "accountEndpoint": "sampleacct.japaneast.batch.azure.com", - "provisioningState": "Succeeded", - "poolAllocationMode": "BatchService", - "dedicatedCoreQuota": 20, - "lowPriorityCoreQuota": 20, - "poolQuota": 20, "activeJobAndJobScheduleQuota": 20, "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", - "lastKeySync": "2016-03-10T23:48:38.9878479Z" + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", "publicNetworkAccess": "Enabled" - }, - "identity": { - "type": "None" - }, - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", - "type": "Microsoft.Batch/batchAccounts" + } } } - } + }, + "operationId": "BatchAccount_Get", + "title": "BatchAccountGet" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountGetKeys.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountGetKeys.json index e4e320736777..b7f2eb7f3967 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountGetKeys.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountGetKeys.json @@ -1,9 +1,9 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { @@ -13,5 +13,7 @@ "secondary": "BBBB==" } } - } + }, + "operationId": "BatchAccount_GetKeys", + "title": "BatchAccountGetKeys" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountList.json index e8b14bd2d001..9ab1b473b54f 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountList.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountList.json @@ -1,7 +1,7 @@ { "parameters": { "api-version": "2024-07-01", - "subscriptionId": "subid" + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { @@ -9,29 +9,31 @@ "value": [ { "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, "location": "japaneast", "properties": { "accountEndpoint": "sampleacct.japaneast.batch.azure.com", - "provisioningState": "Succeeded", - "poolAllocationMode": "BatchService", - "dedicatedCoreQuota": 20, - "lowPriorityCoreQuota": 20, - "poolQuota": 20, "activeJobAndJobScheduleQuota": 20, "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", - "lastKeySync": "2016-03-10T23:48:38.9878479Z" + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", "publicNetworkAccess": "Enabled" - }, - "identity": { - "type": "None" - }, - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", - "type": "Microsoft.Batch/batchAccounts" + } } ] } } - } + }, + "operationId": "BatchAccount_List", + "title": "BatchAccountList" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountListByResourceGroup.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountListByResourceGroup.json index 4a5af1a2b2ad..49624cea56e4 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountListByResourceGroup.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountListByResourceGroup.json @@ -1,8 +1,8 @@ { "parameters": { - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { @@ -10,29 +10,31 @@ "value": [ { "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, "location": "japaneast", "properties": { "accountEndpoint": "sampleacct.japaneast.batch.azure.com", - "provisioningState": "Succeeded", - "poolAllocationMode": "BatchService", - "dedicatedCoreQuota": 20, - "lowPriorityCoreQuota": 20, - "poolQuota": 20, "activeJobAndJobScheduleQuota": 20, "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", - "lastKeySync": "2016-03-10T23:48:38.9878479Z" + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", "publicNetworkAccess": "Enabled" - }, - "identity": { - "type": "None" - }, - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", - "type": "Microsoft.Batch/batchAccounts" + } } ] } } - } + }, + "operationId": "BatchAccount_ListByResourceGroup", + "title": "BatchAccountListByResourceGroup" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json index 624654cad57a..b9c469c22a4a 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json @@ -1,9 +1,9 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { @@ -13,8 +13,8 @@ "category": "Azure Batch", "endpoints": [ { - "domainName": "sampleacct.japaneast.batch.azure.com", "description": "Applicable to job manager tasks, tasks that use job scoped authentication, or any task that makes calls to Batch.", + "domainName": "sampleacct.japaneast.batch.azure.com", "endpointDetails": [ { "port": 443 @@ -22,8 +22,8 @@ ] }, { - "domainName": "japaneast.service.batch.azure.com", "description": "Applicable to all Azure Batch pools.", + "domainName": "japaneast.service.batch.azure.com", "endpointDetails": [ { "port": 443 @@ -36,8 +36,8 @@ "category": "Azure Storage", "endpoints": [ { - "domainName": "autostorageaccountname.blob.core.windows.net", "description": "AutoStorage endpoint for this Batch account. Applicable to all Azure Batch pools under this account.", + "domainName": "autostorageaccountname.blob.core.windows.net", "endpointDetails": [ { "port": 443 @@ -45,8 +45,8 @@ ] }, { - "domainName": "*.blob.core.windows.net", "description": "Applicable to all Azure Batch pools.", + "domainName": "*.blob.core.windows.net", "endpointDetails": [ { "port": 443 @@ -54,8 +54,8 @@ ] }, { - "domainName": "*.table.core.windows.net", "description": "Applicable to all Azure Batch pools.", + "domainName": "*.table.core.windows.net", "endpointDetails": [ { "port": 443 @@ -63,8 +63,8 @@ ] }, { - "domainName": "*.queue.core.windows.net", "description": "Applicable to all Azure Batch pools.", + "domainName": "*.queue.core.windows.net", "endpointDetails": [ { "port": 443 @@ -77,8 +77,8 @@ "category": "Microsoft Package Repository", "endpoints": [ { - "domainName": "packages.microsoft.com", "description": "Only applicable to pools containing a Mount Configuration. Learn about Mount Configurations in Batch at https://learn.microsoft.com/azure/batch/virtual-file-mount.", + "domainName": "packages.microsoft.com", "endpointDetails": [ { "port": 443 @@ -91,8 +91,8 @@ "category": "Azure Key Vault", "endpoints": [ { - "domainName": "*.vault.azure.net", "description": "Only applicable to pools containing a Disk Encryption Configuration and whose VM size does not support encryption at host. Learn more about disk encryption in Azure Batch at https://learn.microsoft.com/azure/batch/disk-encryption. Learn more about encryption at host and supported VM sizes at https://learn.microsoft.com/azure/virtual-machines/disks-enable-host-based-encryption-portal.", + "domainName": "*.vault.azure.net", "endpointDetails": [ { "port": 443 @@ -104,5 +104,7 @@ ] } } - } + }, + "operationId": "BatchAccount_ListOutboundNetworkDependenciesEndpoints", + "title": "ListOutboundNetworkDependencies" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountRegenerateKey.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountRegenerateKey.json index 873d6790d9b9..5c00b9d5bb55 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountRegenerateKey.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountRegenerateKey.json @@ -1,12 +1,12 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "parameters": { "keyName": "Primary" - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { @@ -16,5 +16,7 @@ "secondary": "BBBB==" } } - } + }, + "operationId": "BatchAccount_RegenerateKey", + "title": "BatchAccountRegenerateKey" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountSynchronizeAutoStorageKeys.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountSynchronizeAutoStorageKeys.json index 7749e16eafa7..718f40074de9 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountSynchronizeAutoStorageKeys.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountSynchronizeAutoStorageKeys.json @@ -1,11 +1,13 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "204": {} - } + }, + "operationId": "BatchAccount_SynchronizeAutoStorageKeys", + "title": "BatchAccountSynchronizeAutoStorageKeys" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountUpdate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountUpdate.json index 87ac7abae0fe..286986ab6ac8 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountUpdate.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/BatchAccountUpdate.json @@ -1,42 +1,44 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "parameters": { "properties": { "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" } } - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, "location": "japaneast", "properties": { "accountEndpoint": "sampleacct.japaneast.batch.azure.com", - "provisioningState": "Succeeded", - "poolAllocationMode": "BatchService", - "dedicatedCoreQuota": 20, - "lowPriorityCoreQuota": 20, - "poolQuota": 20, "activeJobAndJobScheduleQuota": 20, "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", - "lastKeySync": "2016-03-10T23:48:38.9878479Z" + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" }, + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, + "provisioningState": "Succeeded", "publicNetworkAccess": "Enabled" - }, - "identity": { - "type": "None" - }, - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", - "type": "Microsoft.Batch/batchAccounts" + } } } - } + }, + "operationId": "BatchAccount_Update", + "title": "BatchAccountUpdate" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCancelDeletion.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCancelDeletion.json index f98b824406bc..bdedd23fde99 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCancelDeletion.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCancelDeletion.json @@ -1,32 +1,33 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", - "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e" + "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDD513C3EDBB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "type": "Microsoft.Batch/batchAccounts/certificates", - "etag": "W/\"0x8D4EDD513C3EDBB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "properties": { - "thumbprintAlgorithm": "sha1", - "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", + "format": "Pfx", "previousProvisioningState": "Failed", "previousProvisioningStateTransitionTime": "2017-07-21T00:22:54.3299195Z", - "format": "Pfx", - "publicData": "MIICrjCCAZagAwI..." + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" } + }, + "headers": { + "ETag": "W/\"0x8D4EDD513C3EDBB\"" } } - } + }, + "operationId": "Certificate_CancelDeletion", + "title": "CertificateCancelDeletion" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCreate_Full.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCreate_Full.json index e668450aea9e..52d70249bc28 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCreate_Full.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCreate_Full.json @@ -1,39 +1,39 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "parameters": { "properties": { - "thumbprintAlgorithm": "sha1", + "data": "MIIJmQIBAzCCCVUGCSqGSIb3DQEHAaCCCUYEgglCMIIJPjCCBE0GCSqGSI...", + "format": "Pfx", "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", - "data": "MIIJsgIBAzCCCW4GCSqGSIb3DQE...", - "password": "<ExamplePassword>", - "format": "Pfx" + "thumbprintAlgorithm": "sha1" } - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDD5118668F7\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "type": "Microsoft.Batch/batchAccounts/certificates", - "etag": "W/\"0x8D4EDD5118668F7\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "properties": { - "thumbprintAlgorithm": "sha1", - "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "format": "Pfx", "provisioningState": "Succeeded", "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", - "format": "Pfx", - "publicData": "MIICrjCCAZagAwI..." + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" } + }, + "headers": { + "ETag": "W/\"0x8D4EDD5118668F7\"" } } - } + }, + "operationId": "Certificate_Create", + "title": "CreateCertificate - Full" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCreate_Minimal.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCreate_Minimal.json index 2cea6327af1e..fc0f4ee4e805 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCreate_Minimal.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCreate_Minimal.json @@ -1,36 +1,36 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "parameters": { "properties": { - "data": "MIIJsgIBAzCCCW4GCSqGSIb3DQE...", - "password": "<ExamplePassword>" + "data": "MIIJmQIBAzCCCVUGCSqGSIb3DQEHAaCCCUYEgglCMIIJPjCCBE0GCSqGSI..." } - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDD5118668F7\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "type": "Microsoft.Batch/batchAccounts/certificates", - "etag": "W/\"0x8D4EDD5118668F7\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "properties": { - "thumbprintAlgorithm": "sha1", - "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "format": "Pfx", "provisioningState": "Succeeded", "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", - "format": "Pfx", - "publicData": "MIICrjCCAZagAwI..." + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" } + }, + "headers": { + "ETag": "W/\"0x8D4EDD5118668F7\"" } } - } + }, + "operationId": "Certificate_Create", + "title": "CreateCertificate - Minimal Pfx" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCreate_MinimalCer.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCreate_MinimalCer.json index 06f20e6535f1..b5b2e0ad9335 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCreate_MinimalCer.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateCreate_MinimalCer.json @@ -1,36 +1,37 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "parameters": { "properties": { - "data": "MIICrjCCAZagAwI...", + "data": "MIIJmQIBAzCCCVUGCSqGSIb3DQEHAaCCCUYEgglCMIIJPjCCBE0GCSqGSI...", "format": "Cer" } - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDD5118668F7\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "type": "Microsoft.Batch/batchAccounts/certificates", - "etag": "W/\"0x8D4EDD5118668F7\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "properties": { - "thumbprintAlgorithm": "sha1", - "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "format": "Cer", "provisioningState": "Succeeded", "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", - "format": "Cer", - "publicData": "MIICrjCCAZagAwI..." + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" } + }, + "headers": { + "ETag": "W/\"0x8D4EDD5118668F7\"" } } - } + }, + "operationId": "Certificate_Create", + "title": "CreateCertificate - Minimal Cer" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateDelete.json index 03e6ba5702c3..c94a172c797d 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateDelete.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateDelete.json @@ -1,19 +1,21 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": {}, "202": { "headers": { - "Retry-After": "15", - "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/certificateOperationResults/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e-8D4EDFF164A11C9?api-version=2024-07-01" + "Location": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/certificateOperationResults/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e-8D4EDFF164A11C9?api-version=2024-07-01", + "Retry-After": "15" } }, "204": {} - } + }, + "operationId": "Certificate_Delete", + "title": "CertificateDelete" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateGet.json index 1c75ad64d6b7..d9dfcdb4c729 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateGet.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateGet.json @@ -1,30 +1,31 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDD5118668F7\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "type": "Microsoft.Batch/batchAccounts/certificates", - "etag": "W/\"0x8D4EDD5118668F7\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "properties": { - "thumbprintAlgorithm": "sha1", - "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "format": "Pfx", "provisioningState": "Succeeded", "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", - "format": "Pfx", - "publicData": "MIICrjCCAZagAwI..." + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" } + }, + "headers": { + "ETag": "W/\"0x8D4EDD5118668F7\"" } } - } + }, + "operationId": "Certificate_Get", + "title": "Get Certificate" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateGetWithDeletionError.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateGetWithDeletionError.json index cf693922f926..dc4a850e6818 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateGetWithDeletionError.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateGetWithDeletionError.json @@ -1,30 +1,19 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDD5118668F7\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "type": "Microsoft.Batch/batchAccounts/certificates", - "etag": "W/\"0x8D4EDD5118668F7\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "properties": { - "thumbprintAlgorithm": "sha1", - "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", - "provisioningState": "Failed", - "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", - "previousProvisioningState": "Deleting", - "previousProvisioningStateTransitionTime": "2017-07-21T00:15:25.5625498Z", "format": "Pfx", - "publicData": "MIICrjCCAZagAwI...", "deleteCertificateError": { "code": "NodesReferencingCertificate", "message": "The specified certificate is being used by the below mentioned node(s)\nRequestId:2dc78afc-b15b-42d2-8c85-39cb61a0799e\nTime:2017-08-28T10:22:52.8633406Z", @@ -35,9 +24,21 @@ "message": "node1, node3" } ] - } + }, + "previousProvisioningState": "Deleting", + "previousProvisioningStateTransitionTime": "2017-07-21T00:15:25.5625498Z", + "provisioningState": "Failed", + "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" } + }, + "headers": { + "ETag": "W/\"0x8D4EDD5118668F7\"" } } - } + }, + "operationId": "Certificate_Get", + "title": "Get Certificate with Deletion Error" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateList.json index 1eaab5bf81a4..ab75a207cf5b 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateList.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateList.json @@ -1,32 +1,33 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", "api-version": "2024-07-01", - "maxResults": "1" + "maxResults": "1", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { + "nextLink": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates?api-version=2024-07-01&$skiptoken=NPK%3D28%3A2857p428pug%2022F53A7734C947B8NRK%3D45%3Asha1-c23dc7f22edc793856a7506fe66397ccb4a33b46SM%3D5%3AFalse", "value": [ { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "type": "Microsoft.Batch/batchAccounts/certificates", - "etag": "W/\"0x8D4EDD5118668F7\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "properties": { - "thumbprintAlgorithm": "sha1", - "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "format": "Pfx", "provisioningState": "Succeeded", "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", - "format": "Pfx", - "publicData": "MIICrjCCAZagAwI..." + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" } } - ], - "nextLink": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates?api-version=2024-07-01&$skiptoken=NPK%3D28%3A2857p428pug%2022F53A7734C947B8NRK%3D45%3Asha1-c23dc7f22edc793856a7506fe66397ccb4a33b46SM%3D5%3AFalse" + ] } } - } + }, + "operationId": "Certificate_ListByBatchAccount", + "title": "ListCertificates" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateListWithFilter.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateListWithFilter.json index 527925879332..7382e8e4b88b 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateListWithFilter.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateListWithFilter.json @@ -1,38 +1,38 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", + "$filter": "properties/provisioningStateTransitionTime gt '2017-05-01' or properties/provisioningState eq 'Failed'", + "$select": "properties/format,properties/provisioningState", "accountName": "sampleacct", "api-version": "2024-07-01", - "$filter": "properties/provisioningStateTransitionTime gt '2017-05-01' or properties/provisioningState eq 'Failed'", - "$select": "properties/format,properties/provisioningState" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "type": "Microsoft.Batch/batchAccounts/certificates", - "etag": "W/\"0x8D4EDD5118668F7\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "properties": { - "provisioningState": "Failed", - "format": "Pfx" + "format": "Pfx", + "provisioningState": "Failed" } }, { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-aeb228ffb0bf67a793d61dce263ebd16949f15a1", "name": "sha1-aeb228ffb0bf67a793d61dce263ebd16949f15a1", "type": "Microsoft.Batch/batchAccounts/certificates", - "etag": "W/\"0x8D4EDD5118572E0\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-aeb228ffb0bf67a793d61dce263ebd16949f15a1", "properties": { - "provisioningState": "Failed", - "format": "Cer" + "format": "Cer", + "provisioningState": "Failed" } } ] } } - } + }, + "operationId": "Certificate_ListByBatchAccount", + "title": "ListCertificates - Filter and Select" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateUpdate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateUpdate.json index 2cea6327af1e..d7ceaf2f6aae 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateUpdate.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/CertificateUpdate.json @@ -1,36 +1,37 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "certificateName": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "parameters": { "properties": { "data": "MIIJsgIBAzCCCW4GCSqGSIb3DQE...", "password": "<ExamplePassword>" } - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDD5118668F7\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "name": "sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "type": "Microsoft.Batch/batchAccounts/certificates", - "etag": "W/\"0x8D4EDD5118668F7\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/samplecct/certificates/sha1-0a0e4f50d51beadeac1d35afc5116098e7902e6e", "properties": { - "thumbprintAlgorithm": "sha1", - "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "format": "Pfx", "provisioningState": "Succeeded", "provisioningStateTransitionTime": "2017-07-21T01:47:38.4420202Z", - "format": "Pfx", - "publicData": "MIICrjCCAZagAwI..." + "publicData": "MIICrjCCAZagAwI...", + "thumbprint": "0a0e4f50d51beadeac1d35afc5116098e7902e6e", + "thumbprintAlgorithm": "sha1" } + }, + "headers": { + "ETag": "W/\"0x8D4EDD5118668F7\"" } } - } + }, + "operationId": "Certificate_Update", + "title": "UpdateCertificate" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/DetectorGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/DetectorGet.json index 3518846f7dd7..49058b6774c0 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/DetectorGet.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/DetectorGet.json @@ -1,21 +1,23 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", - "detectorId": "poolsAndNodes" + "detectorId": "poolsAndNodes", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { - "type": "Microsoft.Batch/batchAccounts/detectors", - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/detectors/poolsAndNodes", "name": "poolsAndNodes", + "type": "Microsoft.Batch/batchAccounts/detectors", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/detectors/poolsAndNodes", "properties": { "value": "ew0KICAibWV0YWRhdGEiOiB7DQogICAgImlkIjogInBvb2xzQW5kTm9kZXMiLA0KICAgICJuYW1lIjogIlBvb2xzIGFuZCBOb2RlcyIsDQogICAgImRlc2NyaXB0aW9uIjogbnVsbCwNCiAgICAiYXV0aG9yIjogIiIsDQogICAgImNhdGVnb3J5IjogbnVsbCwNCiAgICAic3VwcG9ydFRvcGljTGlzdCI6IFsNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDc3IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDYxIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY1IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY2IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY5IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDcyIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDc5IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDgyIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDkxIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDkzIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDk0IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfQ0KICAgIF0sDQogICAgImFuYWx5c2lzVHlwZXMiOiBudWxsLA0KICAgICJ0eXBlIjogIkFuYWx5c2lzIiwNCiAgICAic2NvcmUiOiAwLjANCiAgfSwNCiAgImRhdGFzZXQiOiBbXSwNCiAgInN0YXR1cyI6IHsNCiAgICAibWVzc2FnZSI6IG51bGwsDQogICAgInN0YXR1c0lkIjogNA0KICB9LA0KICAiZGF0YVByb3ZpZGVyc01ldGFkYXRhIjogbnVsbCwNCiAgInN1Z2dlc3RlZFV0dGVyYW5jZXMiOiBudWxsDQp9" } } } - } + }, + "operationId": "BatchAccount_GetDetector", + "title": "GetDetector" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/DetectorList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/DetectorList.json index 01c003a77f4f..5a584dbdd99b 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/DetectorList.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/DetectorList.json @@ -1,18 +1,18 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { "value": [ { - "type": "Microsoft.Batch/batchAccounts/detectors", - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/detectors/poolsAndNodes", "name": "poolsAndNodes", + "type": "Microsoft.Batch/batchAccounts/detectors", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/detectors/poolsAndNodes", "properties": { "value": "ew0KICAibWV0YWRhdGEiOiB7DQogICAgImlkIjogInBvb2xzQW5kTm9kZXMiLA0KICAgICJuYW1lIjogIlBvb2xzIGFuZCBOb2RlcyIsDQogICAgImRlc2NyaXB0aW9uIjogbnVsbCwNCiAgICAiYXV0aG9yIjogIiIsDQogICAgImNhdGVnb3J5IjogbnVsbCwNCiAgICAic3VwcG9ydFRvcGljTGlzdCI6IFsNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDc3IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDYxIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY1IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY2IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY5IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDcyIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDc5IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDgyIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDkxIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDkzIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDk0IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfQ0KICAgIF0sDQogICAgImFuYWx5c2lzVHlwZXMiOiBudWxsLA0KICAgICJ0eXBlIjogIkFuYWx5c2lzIiwNCiAgICAic2NvcmUiOiAwLjANCiAgfSwNCiAgImRhdGFzZXQiOiBbXSwNCiAgInN0YXR1cyI6IHsNCiAgICAibWVzc2FnZSI6IG51bGwsDQogICAgInN0YXR1c0lkIjogNA0KICB9LA0KICAiZGF0YVByb3ZpZGVyc01ldGFkYXRhIjogbnVsbCwNCiAgInN1Z2dlc3RlZFV0dGVyYW5jZXMiOiBudWxsDQp9" } @@ -20,5 +20,7 @@ ] } } - } + }, + "operationId": "BatchAccount_ListDetectors", + "title": "ListDetectors" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationCheckNameAvailability_AlreadyExists.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationCheckNameAvailability_AlreadyExists.json index c94f99ba9214..4461d51cc4d3 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationCheckNameAvailability_AlreadyExists.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationCheckNameAvailability_AlreadyExists.json @@ -1,20 +1,22 @@ { "parameters": { "api-version": "2024-07-01", - "subscriptionId": "subid", "locationName": "japaneast", "parameters": { "name": "existingaccountname", "type": "Microsoft.Batch/batchAccounts" - } + }, + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { + "message": "An account named 'existingaccountname' is already in use.", "nameAvailable": false, - "reason": "AlreadyExists", - "message": "An account named 'existingaccountname' is already in use." + "reason": "AlreadyExists" } } - } + }, + "operationId": "Location_CheckNameAvailability", + "title": "LocationCheckNameAvailability_AlreadyExists" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationCheckNameAvailability_Available.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationCheckNameAvailability_Available.json index c6d5cf245593..1dbc0ea0818b 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationCheckNameAvailability_Available.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationCheckNameAvailability_Available.json @@ -1,12 +1,12 @@ { "parameters": { "api-version": "2024-07-01", - "subscriptionId": "subid", "locationName": "japaneast", "parameters": { "name": "newaccountname", "type": "Microsoft.Batch/batchAccounts" - } + }, + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { @@ -14,5 +14,7 @@ "nameAvailable": true } } - } + }, + "operationId": "Location_CheckNameAvailability", + "title": "LocationCheckNameAvailability_Available" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationGetQuotas.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationGetQuotas.json index 02a38e227dc1..6f588b333a80 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationGetQuotas.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationGetQuotas.json @@ -1,8 +1,8 @@ { "parameters": { "api-version": "2024-07-01", - "subscriptionId": "subid", - "locationName": "japaneast" + "locationName": "japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { @@ -10,5 +10,7 @@ "accountQuota": 1 } } - } + }, + "operationId": "Location_GetQuotas", + "title": "LocationGetQuotas" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationListVirtualMachineSkus.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationListVirtualMachineSkus.json index 29b7ea739798..8585340af824 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationListVirtualMachineSkus.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/LocationListVirtualMachineSkus.json @@ -1,8 +1,8 @@ { "parameters": { "api-version": "2024-07-01", - "subscriptionId": "subid", - "locationName": "japaneast" + "locationName": "japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { @@ -10,7 +10,6 @@ "value": [ { "name": "Standard_D1_v2", - "familyName": "standardDFamily", "capabilities": [ { "name": "MaxResourceVolumeMB", @@ -40,11 +39,12 @@ "name": "EphemeralOSDiskSupported", "value": "False" } - ] + ], + "familyName": "standardDFamily" }, { "name": "Standard_A1", - "familyName": "standardA0_A7Family", + "batchSupportEndOfLife": "2024-08-31T00:00:00Z", "capabilities": [ { "name": "MaxResourceVolumeMB", @@ -127,10 +127,12 @@ "value": "2" } ], - "batchSupportEndOfLife": "2024-08-31T00:00:00Z" + "familyName": "standardA0_A7Family" } ] } } - } + }, + "operationId": "Location_ListSupportedVirtualMachineSkus", + "title": "LocationListVirtualMachineSkus" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/NspConfigurationGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/NspConfigurationGet.json index efc1482d14bb..7a99e59c8e03 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/NspConfigurationGet.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/NspConfigurationGet.json @@ -1,72 +1,69 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "networkSecurityPerimeterConfigurationName": "00000000-0000-0000-0000-000000000000.sampleassociation", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/networkSecurityPerimeterConfigurations/00000000-0000-0000-0000-000000000000.sampleassociation", "name": "00000000-0000-0000-0000-000000000000.sampleassociation", "type": "Microsoft.Batch/batchAccounts/networkSecurityPerimeterConfigurations", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/networkSecurityPerimeterConfigurations/00000000-0000-0000-0000-000000000000.sampleassociation", "properties": { - "provisioningState": "Succeeded", - "provisioningIssues": [], "networkSecurityPerimeter": { "id": "/subscriptions/perimeterSubscriptionId/resourceGroups/perimeterResourceGroupName/providers/Microsoft.Network/networkSecurityPerimeters/perimeterName", - "perimeterGuid": "00000000-0000-0000-0000-000000000000", - "location": "perimeterLocation" - }, - "resourceAssociation": { - "name": "sampleassociation", - "accessMode": "Learning" + "location": "perimeterLocation", + "perimeterGuid": "00000000-0000-0000-0000-000000000000" }, "profile": { "name": "profileName", - "accessRulesVersion": 1, "accessRules": [ { "name": "accessRule1", "properties": { - "direction": "Inbound", "addressPrefixes": [ "10.11.0.0/16", "10.10.1.0/24" ], + "direction": "Inbound", + "emailAddresses": [], "fullyQualifiedDomainNames": [], - "subscriptions": [], "networkSecurityPerimeters": [], - "emailAddresses": [], - "phoneNumbers": [] + "phoneNumbers": [], + "subscriptions": [] } }, { "name": "accessRule2", "properties": { - "direction": "Outbound", "addressPrefixes": [], + "direction": "Outbound", + "emailAddresses": [], "fullyQualifiedDomainNames": [ "paasrp1.contoso.org", "paasrp2.contoso.org" ], - "subscriptions": [], "networkSecurityPerimeters": [], - "emailAddresses": [], - "phoneNumbers": [] + "phoneNumbers": [], + "subscriptions": [] } } ], - "diagnosticSettingsVersion": 1, - "enabledLogCategories": [ - "logCategory1", - "logCategory2" - ] + "accessRulesVersion": 1 + }, + "provisioningIssues": [], + "provisioningState": "Succeeded", + "resourceAssociation": { + "name": "sampleassociation", + "accessMode": "Learning" } } } } - } + }, + "operationId": "NetworkSecurityPerimeter_GetConfiguration", + "title": "GetNspConfiguration" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/NspConfigurationReconcile.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/NspConfigurationReconcile.json index 2b4ed18f70b4..f7524a38b8ba 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/NspConfigurationReconcile.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/NspConfigurationReconcile.json @@ -1,17 +1,19 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "networkSecurityPerimeterConfigurationName": "00000000-0000-0000-0000-000000000000.sampleassociation", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "202": { "headers": { - "Retry-After": "15", - "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/networkSecurityPerimeterConfigurationOperationResults/AcceptedReconciling$00000000-0000-0000-0000-000000000000.sampleassociation$00000000-1111-2222-3333-444444444444?api-version=2024-07-01" + "Location": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/networkSecurityPerimeterConfigurationOperationResults/AcceptedReconciling$00000000-0000-0000-0000-000000000000.sampleassociation$00000000-1111-2222-3333-444444444444?api-version=2024-07-01", + "Retry-After": "15" } } - } + }, + "operationId": "NetworkSecurityPerimeter_ReconcileConfiguration", + "title": "ReconcileNspConfiguration" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/NspConfigurationsList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/NspConfigurationsList.json index e1e878efde9a..7eeb69517ac8 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/NspConfigurationsList.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/NspConfigurationsList.json @@ -1,75 +1,72 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "api-version": "2024-07-01" + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/networkSecurityPerimeterConfigurations/00000000-0000-0000-0000-000000000000.sampleassociation", "name": "00000000-0000-0000-0000-000000000000.sampleassociation", "type": "Microsoft.Batch/batchAccounts/networkSecurityPerimeterConfigurations", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/networkSecurityPerimeterConfigurations/00000000-0000-0000-0000-000000000000.sampleassociation", "properties": { - "provisioningState": "Succeeded", - "provisioningIssues": [], "networkSecurityPerimeter": { "id": "/subscriptions/perimeterSubscriptionId/resourceGroups/perimeterResourceGroupName/providers/Microsoft.Network/networkSecurityPerimeters/perimeterName", - "perimeterGuid": "00000000-0000-0000-0000-000000000000", - "location": "perimeterLocation" - }, - "resourceAssociation": { - "name": "sampleassociation", - "accessMode": "Learning" + "location": "perimeterLocation", + "perimeterGuid": "00000000-0000-0000-0000-000000000000" }, "profile": { "name": "profileName", - "accessRulesVersion": 1, "accessRules": [ { "name": "accessRule1", "properties": { - "direction": "Inbound", "addressPrefixes": [ "10.11.0.0/16", "10.10.1.0/24" ], + "direction": "Inbound", + "emailAddresses": [], "fullyQualifiedDomainNames": [], - "subscriptions": [], "networkSecurityPerimeters": [], - "emailAddresses": [], - "phoneNumbers": [] + "phoneNumbers": [], + "subscriptions": [] } }, { "name": "accessRule2", "properties": { - "direction": "Outbound", "addressPrefixes": [], + "direction": "Outbound", + "emailAddresses": [], "fullyQualifiedDomainNames": [ "paasrp1.contoso.org", "paasrp2.contoso.org" ], - "subscriptions": [], "networkSecurityPerimeters": [], - "emailAddresses": [], - "phoneNumbers": [] + "phoneNumbers": [], + "subscriptions": [] } } ], - "diagnosticSettingsVersion": 1, - "enabledLogCategories": [ - "logCategory1", - "logCategory2" - ] + "accessRulesVersion": 1 + }, + "provisioningIssues": [], + "provisioningState": "Succeeded", + "resourceAssociation": { + "name": "sampleassociation", + "accessMode": "Learning" } } } ] } } - } + }, + "operationId": "NetworkSecurityPerimeter_ListConfigurations", + "title": "ListNspConfigurations" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/OperationsList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/OperationsList.json index 6dab6731af78..516fff82b519 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/OperationsList.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/OperationsList.json @@ -9,10 +9,10 @@ { "name": "Microsoft.Batch/batchAccounts/providers/Microsoft.Insights/diagnosticSettings/read", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Accounts", + "description": "Gets the diagnostic setting for the resource", "operation": "Read diagnostic setting", - "description": "Gets the diagnostic setting for the resource" + "provider": "Microsoft Batch", + "resource": "Batch Accounts" }, "isDataAction": false, "origin": "system" @@ -20,10 +20,10 @@ { "name": "Microsoft.Batch/batchAccounts/providers/Microsoft.Insights/diagnosticSettings/write", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Accounts", + "description": "Creates or updates the diagnostic setting for the resource", "operation": "Write diagnostic setting", - "description": "Creates or updates the diagnostic setting for the resource" + "provider": "Microsoft Batch", + "resource": "Batch Accounts" }, "isDataAction": false, "origin": "system" @@ -31,751 +31,102 @@ { "name": "Microsoft.Batch/batchAccounts/providers/Microsoft.Insights/logDefinitions/read", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Account Log Definitions", + "description": "Gets the available logs for the Batch service", "operation": "Read Batch service log definitions", - "description": "Gets the available logs for the Batch service" + "provider": "Microsoft Batch", + "resource": "Batch Account Log Definitions" }, "isDataAction": false, - "origin": "system", - "properties": { - "serviceSpecification": { - "logSpecifications": [ - { - "name": "ServiceLog", - "displayName": "Service Logs", - "blobDuration": "PT1H" - } - ] - } - } + "origin": "system" }, { "name": "Microsoft.Batch/batchAccounts/providers/Microsoft.Insights/metricDefinitions/read", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Account Metric Definitions", + "description": "Gets the available metrics for the Batch service", "operation": "Read Batch service metric definitions", - "description": "Gets the available metrics for the Batch service" + "provider": "Microsoft Batch", + "resource": "Batch Account Metric Definitions" }, "isDataAction": false, - "origin": "system", - "properties": { - "serviceSpecification": { - "metricSpecifications": [ - { - "name": "CoreCount", - "displayName": "Dedicated Core Count", - "displayDescription": "Total number of dedicated cores in the batch account", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "TotalNodeCount", - "displayName": "Dedicated Node Count", - "displayDescription": "Total number of dedicated nodes in the batch account", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "LowPriorityCoreCount", - "displayName": "LowPriority Core Count", - "displayDescription": "Total number of low-priority cores in the batch account", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "TotalLowPriorityNodeCount", - "displayName": "Low-Priority Node Count", - "displayDescription": "Total number of low-priority nodes in the batch account", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "CreatingNodeCount", - "displayName": "Creating Node Count", - "displayDescription": "Number of nodes being created", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "StartingNodeCount", - "displayName": "Starting Node Count", - "displayDescription": "Number of nodes starting", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "WaitingForStartTaskNodeCount", - "displayName": "Waiting For Start Task Node Count", - "displayDescription": "Number of nodes waiting for the Start Task to complete", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "StartTaskFailedNodeCount", - "displayName": "Start Task Failed Node Count", - "displayDescription": "Number of nodes where the Start Task has failed", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "IdleNodeCount", - "displayName": "Idle Node Count", - "displayDescription": "Number of idle nodes", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "OfflineNodeCount", - "displayName": "Offline Node Count", - "displayDescription": "Number of offline nodes", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "RebootingNodeCount", - "displayName": "Rebooting Node Count", - "displayDescription": "Number of rebooting nodes", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "ReimagingNodeCount", - "displayName": "Reimaging Node Count", - "displayDescription": "Number of reimaging nodes", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "RunningNodeCount", - "displayName": "Running Node Count", - "displayDescription": "Number of running nodes", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "LeavingPoolNodeCount", - "displayName": "Leaving Pool Node Count", - "displayDescription": "Number of nodes leaving the Pool", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "UnusableNodeCount", - "displayName": "Unusable Node Count", - "displayDescription": "Number of unusable nodes", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "PreemptedNodeCount", - "displayName": "Preempted Node Count", - "displayDescription": "Number of preempted nodes", - "unit": "Count", - "aggregationType": "Total", - "lockAggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "TaskStartEvent", - "displayName": "Task Start Events", - "displayDescription": "Total number of tasks that have started", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "poolId", - "displayName": "Pool ID", - "toBeExportedForShoebox": true - }, - { - "name": "jobId", - "displayName": "Job ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "TaskCompleteEvent", - "displayName": "Task Complete Events", - "displayDescription": "Total number of tasks that have completed", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "poolId", - "displayName": "Pool ID", - "toBeExportedForShoebox": true - }, - { - "name": "jobId", - "displayName": "Job ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "TaskFailEvent", - "displayName": "Task Fail Events", - "displayDescription": "Total number of tasks that have completed in a failed state", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "poolId", - "displayName": "Pool ID", - "toBeExportedForShoebox": true - }, - { - "name": "jobId", - "displayName": "Job ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "PoolCreateEvent", - "displayName": "Pool Create Events", - "displayDescription": "Total number of pools that have been created", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "poolId", - "displayName": "Pool ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "PoolResizeStartEvent", - "displayName": "Pool Resize Start Events", - "displayDescription": "Total number of pool resizes that have started", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "poolId", - "displayName": "Pool ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "PoolResizeCompleteEvent", - "displayName": "Pool Resize Complete Events", - "displayDescription": "Total number of pool resizes that have completed", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "poolId", - "displayName": "Pool ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "PoolDeleteStartEvent", - "displayName": "Pool Delete Start Events", - "displayDescription": "Total number of pool deletes that have started", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "poolId", - "displayName": "Pool ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "PoolDeleteCompleteEvent", - "displayName": "Pool Delete Complete Events", - "displayDescription": "Total number of pool deletes that have completed", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "poolId", - "displayName": "Pool ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "JobDeleteCompleteEvent", - "displayName": "Job Delete Complete Events", - "displayDescription": "Total number of jobs that have been successfully deleted.", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "jobId", - "displayName": "Job ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "JobDeleteStartEvent", - "displayName": "Job Delete Start Events", - "displayDescription": "Total number of jobs that have been requested to be deleted.", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "jobId", - "displayName": "Job ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "JobDisableCompleteEvent", - "displayName": "Job Disable Complete Events", - "displayDescription": "Total number of jobs that have been successfully disabled.", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "jobId", - "displayName": "Job ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "JobDisableStartEvent", - "displayName": "Job Disable Start Events", - "displayDescription": "Total number of jobs that have been requested to be disabled.", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "jobId", - "displayName": "Job ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "JobStartEvent", - "displayName": "Job Start Events", - "displayDescription": "Total number of jobs that have been successfully started.", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "jobId", - "displayName": "Job ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "JobTerminateCompleteEvent", - "displayName": "Job Terminate Complete Events", - "displayDescription": "Total number of jobs that have been successfully terminated.", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "jobId", - "displayName": "Job ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - }, - { - "name": "JobTerminateStartEvent", - "displayName": "Job Terminate Start Events", - "displayDescription": "Total number of jobs that have been requested to be terminated.", - "unit": "Count", - "aggregationType": "Total", - "fillGapWithZero": false, - "availabilities": [ - { - "timeGrain": "PT1M", - "blobDuration": "PT1H" - } - ], - "dimensions": [ - { - "name": "jobId", - "displayName": "Job ID", - "toBeExportedForShoebox": true - } - ], - "supportsInstanceLevelAggregation": false, - "enableRegionalMdmAccount": false - } - ] - } - } + "origin": "system" }, { "name": "Microsoft.Batch/batchAccounts/jobs/read", "display": { - "provider": "Microsoft Batch", - "resource": "Jobs", + "description": "Lists jobs on a Batch account or gets the properties of a job", "operation": "List or Get Jobs", - "description": "Lists jobs on a Batch account or gets the properties of a job" + "provider": "Microsoft Batch", + "resource": "Jobs" }, "isDataAction": true }, { "name": "Microsoft.Batch/batchAccounts/jobs/write", "display": { - "provider": "Microsoft Batch", - "resource": "Jobs", + "description": "Creates a new job on a Batch account or updates an existing job", "operation": "Create or Update Job", - "description": "Creates a new job on a Batch account or updates an existing job" + "provider": "Microsoft Batch", + "resource": "Jobs" }, "isDataAction": true }, { "name": "Microsoft.Batch/batchAccounts/jobs/delete", "display": { - "provider": "Microsoft Batch", - "resource": "Jobs", + "description": "Deletes a job from a Batch account", "operation": "Delete Job", - "description": "Deletes a job from a Batch account" + "provider": "Microsoft Batch", + "resource": "Jobs" }, "isDataAction": true }, { "name": "Microsoft.Batch/batchAccounts/jobSchedules/read", "display": { - "provider": "Microsoft Batch", - "resource": "Job Schedules", + "description": "Lists job schedules on a Batch account or gets the properties of a job schedule", "operation": "List or Get Job Schedules", - "description": "Lists job schedules on a Batch account or gets the properties of a job schedule" + "provider": "Microsoft Batch", + "resource": "Job Schedules" }, "isDataAction": true }, { "name": "Microsoft.Batch/batchAccounts/jobSchedules/write", "display": { - "provider": "Microsoft Batch", - "resource": "Job Schedules", + "description": "Creates a new job schedule on a Batch account or updates an existing job schedule", "operation": "Create or Update Job Schedule", - "description": "Creates a new job schedule on a Batch account or updates an existing job schedule" + "provider": "Microsoft Batch", + "resource": "Job Schedules" }, "isDataAction": true }, { "name": "Microsoft.Batch/batchAccounts/jobSchedules/delete", "display": { - "provider": "Microsoft Batch", - "resource": "Job Schedules", + "description": "Deletes a job schedule from a Batch account", "operation": "Delete Job Schedule", - "description": "Deletes a job schedule from a Batch account" + "provider": "Microsoft Batch", + "resource": "Job Schedules" }, "isDataAction": true }, { "name": "Microsoft.Batch/operations/read", "display": { - "provider": "Microsoft Batch", - "resource": "Available Batch Operations", + "description": "Lists operations available on Microsoft.Batch resource provider", "operation": "List Available Batch Operations", - "description": "Lists operations available on Microsoft.Batch resource provider" + "provider": "Microsoft Batch", + "resource": "Available Batch Operations" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/read", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Accounts", + "description": "Lists Batch accounts or gets the properties of a Batch account", "operation": "List or Get Batch Accounts", - "description": "Lists Batch accounts or gets the properties of a Batch account" + "provider": "Microsoft Batch", + "resource": "Batch Accounts" }, "isDataAction": false, "origin": "user,system" @@ -783,10 +134,10 @@ { "name": "Microsoft.Batch/batchAccounts/write", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Accounts", + "description": "Creates a new Batch account or updates an existing Batch account", "operation": "Create or Update Batch Account", - "description": "Creates a new Batch account or updates an existing Batch account" + "provider": "Microsoft Batch", + "resource": "Batch Accounts" }, "isDataAction": false, "origin": "user,system" @@ -794,10 +145,10 @@ { "name": "Microsoft.Batch/batchAccounts/delete", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Accounts", + "description": "Deletes a Batch account", "operation": "Delete Batch Account", - "description": "Deletes a Batch account" + "provider": "Microsoft Batch", + "resource": "Batch Accounts" }, "isDataAction": false, "origin": "user,system" @@ -805,10 +156,10 @@ { "name": "Microsoft.Batch/batchAccounts/listkeys/action", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Accounts", + "description": "Lists access keys for a Batch account", "operation": "List Batch Account Keys", - "description": "Lists access keys for a Batch account" + "provider": "Microsoft Batch", + "resource": "Batch Accounts" }, "isDataAction": false, "origin": "user,system" @@ -816,10 +167,10 @@ { "name": "Microsoft.Batch/batchAccounts/regeneratekeys/action", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Accounts", + "description": "Regenerates access keys for a Batch account", "operation": "Regenerate Batch Account Keys", - "description": "Regenerates access keys for a Batch account" + "provider": "Microsoft Batch", + "resource": "Batch Accounts" }, "isDataAction": false, "origin": "user,system" @@ -827,10 +178,10 @@ { "name": "Microsoft.Batch/locations/quotas/read", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Quotas", + "description": "Gets Batch quotas of the specified subscription at the specified Azure region", "operation": "Get Batch Quotas", - "description": "Gets Batch quotas of the specified subscription at the specified Azure region" + "provider": "Microsoft Batch", + "resource": "Batch Quotas" }, "isDataAction": false, "origin": "user,system" @@ -838,10 +189,10 @@ { "name": "Microsoft.Batch/locations/checkNameAvailability/action", "display": { - "provider": "Microsoft Batch", - "resource": "Name Availability", + "description": "Checks that the account name is valid and not in use.", "operation": "Check Name Availability", - "description": "Checks that the account name is valid and not in use." + "provider": "Microsoft Batch", + "resource": "Name Availability" }, "isDataAction": false, "origin": "user,system" @@ -849,30 +200,30 @@ { "name": "Microsoft.Batch/batchAccounts/operationResults/read", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Resource Provider", + "description": "Gets the results of a long running Batch account operation", "operation": "Get Batch account operation results", - "description": "Gets the results of a long running Batch account operation" + "provider": "Microsoft Batch", + "resource": "Batch Resource Provider" }, "isDataAction": false }, { "name": "Microsoft.Batch/locations/accountOperationResults/read", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Resource Provider", + "description": "Gets the results of a long running Batch account operation", "operation": "Get Batch account operation results", - "description": "Gets the results of a long running Batch account operation" + "provider": "Microsoft Batch", + "resource": "Batch Resource Provider" }, "isDataAction": false }, { "name": "Microsoft.Batch/register/action", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Resource Provider", + "description": "Registers the subscription for the Batch Resource Provider and enables the creation of Batch accounts", "operation": "Register the Batch Resource Provider", - "description": "Registers the subscription for the Batch Resource Provider and enables the creation of Batch accounts" + "provider": "Microsoft Batch", + "resource": "Batch Resource Provider" }, "isDataAction": false, "origin": "user,system" @@ -880,10 +231,10 @@ { "name": "Microsoft.Batch/unregister/action", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Resource Provider", + "description": "Unregisters the subscription for the Batch Resource Provider preventing the creation of Batch accounts", "operation": "Unregister the Batch Resource Provider", - "description": "Unregisters the subscription for the Batch Resource Provider preventing the creation of Batch accounts" + "provider": "Microsoft Batch", + "resource": "Batch Resource Provider" }, "isDataAction": false, "origin": "user,system" @@ -891,10 +242,10 @@ { "name": "Microsoft.Batch/batchAccounts/syncAutoStorageKeys/action", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Accounts", + "description": "Synchronizes access keys for the auto storage account configured for a Batch account", "operation": "Synchronize Auto Storage Account Keys", - "description": "Synchronizes access keys for the auto storage account configured for a Batch account" + "provider": "Microsoft Batch", + "resource": "Batch Accounts" }, "isDataAction": false, "origin": "user,system" @@ -902,10 +253,10 @@ { "name": "Microsoft.Batch/batchAccounts/applications/read", "display": { - "provider": "Microsoft Batch", - "resource": "Applications", + "description": "Lists applications or gets the properties of an application", "operation": "List or Get Applications", - "description": "Lists applications or gets the properties of an application" + "provider": "Microsoft Batch", + "resource": "Applications" }, "isDataAction": false, "origin": "user,system" @@ -913,10 +264,10 @@ { "name": "Microsoft.Batch/batchAccounts/applications/write", "display": { - "provider": "Microsoft Batch", - "resource": "Applications", + "description": "Creates a new application or updates an existing application", "operation": "Create or Update Application", - "description": "Creates a new application or updates an existing application" + "provider": "Microsoft Batch", + "resource": "Applications" }, "isDataAction": false, "origin": "user,system" @@ -924,10 +275,10 @@ { "name": "Microsoft.Batch/batchAccounts/applications/delete", "display": { - "provider": "Microsoft Batch", - "resource": "Applications", + "description": "Deletes an application", "operation": "Delete Application", - "description": "Deletes an application" + "provider": "Microsoft Batch", + "resource": "Applications" }, "isDataAction": false, "origin": "user,system" @@ -935,10 +286,10 @@ { "name": "Microsoft.Batch/batchAccounts/applications/versions/read", "display": { - "provider": "Microsoft Batch", - "resource": "Application Packages", + "description": "Gets the properties of an application package", "operation": "Get Application Package", - "description": "Gets the properties of an application package" + "provider": "Microsoft Batch", + "resource": "Application Packages" }, "isDataAction": false, "origin": "user,system" @@ -946,10 +297,10 @@ { "name": "Microsoft.Batch/batchAccounts/applications/versions/write", "display": { - "provider": "Microsoft Batch", - "resource": "Application Packages", + "description": "Creates a new application package or updates an existing application package", "operation": "Create or Update Application Package", - "description": "Creates a new application package or updates an existing application package" + "provider": "Microsoft Batch", + "resource": "Application Packages" }, "isDataAction": false, "origin": "user,system" @@ -957,10 +308,10 @@ { "name": "Microsoft.Batch/batchAccounts/applications/versions/delete", "display": { - "provider": "Microsoft Batch", - "resource": "Application Packages", + "description": "Deletes an application package", "operation": "Delete Application Package", - "description": "Deletes an application package" + "provider": "Microsoft Batch", + "resource": "Application Packages" }, "isDataAction": false, "origin": "user,system" @@ -968,10 +319,10 @@ { "name": "Microsoft.Batch/batchAccounts/applications/versions/activate/action", "display": { - "provider": "Microsoft Batch", - "resource": "Application Packages", + "description": "Activates an application package", "operation": "Activate Application Package", - "description": "Activates an application package" + "provider": "Microsoft Batch", + "resource": "Application Packages" }, "isDataAction": false, "origin": "user,system" @@ -979,180 +330,180 @@ { "name": "Microsoft.Batch/batchAccounts/certificates/read", "display": { - "provider": "Microsoft Batch", - "resource": "Certificates", + "description": "Lists certificates on a Batch account or gets the properties of a certificate", "operation": "List or Get Certificates", - "description": "Lists certificates on a Batch account or gets the properties of a certificate" + "provider": "Microsoft Batch", + "resource": "Certificates" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/certificates/write", "display": { - "provider": "Microsoft Batch", - "resource": "Certificates", + "description": "Creates a new certificate on a Batch account or updates an existing certificate", "operation": "Create or Update Certificate", - "description": "Creates a new certificate on a Batch account or updates an existing certificate" + "provider": "Microsoft Batch", + "resource": "Certificates" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/certificates/delete", "display": { - "provider": "Microsoft Batch", - "resource": "Certificates", + "description": "Deletes a certificate from a Batch account", "operation": "Delete Certificate", - "description": "Deletes a certificate from a Batch account" + "provider": "Microsoft Batch", + "resource": "Certificates" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/certificates/cancelDelete/action", "display": { - "provider": "Microsoft Batch", - "resource": "Certificates", + "description": "Cancels the failed deletion of a certificate on a Batch account", "operation": "Cancel Delete Certificate", - "description": "Cancels the failed deletion of a certificate on a Batch account" + "provider": "Microsoft Batch", + "resource": "Certificates" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/certificateOperationResults/read", "display": { - "provider": "Microsoft Batch", - "resource": "Certificates", + "description": "Gets the results of a long running certificate operation on a Batch account", "operation": "Get Certificate Operation Results", - "description": "Gets the results of a long running certificate operation on a Batch account" + "provider": "Microsoft Batch", + "resource": "Certificates" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/pools/read", "display": { - "provider": "Microsoft Batch", - "resource": "Pools", + "description": "Lists pools on a Batch account or gets the properties of a pool", "operation": "List or Get Pools", - "description": "Lists pools on a Batch account or gets the properties of a pool" + "provider": "Microsoft Batch", + "resource": "Pools" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/pools/write", "display": { - "provider": "Microsoft Batch", - "resource": "Pools", + "description": "Creates a new pool on a Batch account or updates an existing pool", "operation": "Create or Update Pool", - "description": "Creates a new pool on a Batch account or updates an existing pool" + "provider": "Microsoft Batch", + "resource": "Pools" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/pools/delete", "display": { - "provider": "Microsoft Batch", - "resource": "Pools", + "description": "Deletes a pool from a Batch account", "operation": "Delete Pool", - "description": "Deletes a pool from a Batch account" + "provider": "Microsoft Batch", + "resource": "Pools" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/pools/stopResize/action", "display": { - "provider": "Microsoft Batch", - "resource": "Pools", + "description": "Stops an ongoing resize operation on a Batch account pool", "operation": "Stop Pool Resize", - "description": "Stops an ongoing resize operation on a Batch account pool" + "provider": "Microsoft Batch", + "resource": "Pools" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/pools/disableAutoscale/action", "display": { - "provider": "Microsoft Batch", - "resource": "Pools", + "description": "Disables automatic scaling for a Batch account pool", "operation": "Disable Pool AutoScale", - "description": "Disables automatic scaling for a Batch account pool" + "provider": "Microsoft Batch", + "resource": "Pools" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/poolOperationResults/read", "display": { - "provider": "Microsoft Batch", - "resource": "Pools", + "description": "Gets the results of a long running pool operation on a Batch account", "operation": "Get Pool Operation Results", - "description": "Gets the results of a long running pool operation on a Batch account" + "provider": "Microsoft Batch", + "resource": "Pools" }, "isDataAction": false }, { "name": "Microsoft.Batch/locations/virtualMachineSkus/read", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Supported Skus", + "description": "Lists available Batch supported Virtual Machine VM sizes at the given location", "operation": "List Supported Batch Virtual Machine VM", - "description": "Lists available Batch supported Virtual Machine VM sizes at the given location" + "provider": "Microsoft Batch", + "resource": "Batch Supported Skus" }, "isDataAction": false }, { "name": "Microsoft.Batch/locations/cloudServiceSkus/read", "display": { - "provider": "Microsoft Batch", - "resource": "Batch Supported Skus", + "description": "Lists available Batch supported Cloud Service VM sizes at the given location", "operation": "List Supported Batch Cloud Service VM", - "description": "Lists available Batch supported Cloud Service VM sizes at the given location" + "provider": "Microsoft Batch", + "resource": "Batch Supported Skus" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/privateLinkResources/read", "display": { - "provider": "Microsoft Batch", - "resource": "PrivateLinkResources", + "description": "Gets the properties of a Private link resource or Lists Private link resources on a Batch account", "operation": "Get or List Private link resources", - "description": "Gets the properties of a Private link resource or Lists Private link resources on a Batch account" + "provider": "Microsoft Batch", + "resource": "PrivateLinkResources" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/privateEndpointConnections/write", "display": { - "provider": "Microsoft Batch", - "resource": "PrivateEndpointConnections", + "description": "Update an existing Private endpoint connection on a Batch account", "operation": "Update Private endpoint connection", - "description": "Update an existing Private endpoint connection on a Batch account" + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnections" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/privateEndpointConnections/read", "display": { - "provider": "Microsoft Batch", - "resource": "PrivateEndpointConnections", + "description": "Gets Private endpoint connection or Lists Private endpoint connections on a Batch account", "operation": "Get or List Private endpoint connection", - "description": "Gets Private endpoint connection or Lists Private endpoint connections on a Batch account" + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnections" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionResults/read", "display": { - "provider": "Microsoft Batch", - "resource": "PrivateEndpointConnections", + "description": "Gets the results of a long running Batch account private endpoint connection operation", "operation": "Get Batch account private endpoint connection operation results", - "description": "Gets the results of a long running Batch account private endpoint connection operation" + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnections" }, "isDataAction": false }, { "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxies/validate/action", "display": { - "provider": "Microsoft Batch", - "resource": "PrivateEndpointConnectionProxies", + "description": "Validates a Private endpoint connection proxy on a Batch account", "operation": "Validates a Private endpoint connection proxy", - "description": "Validates a Private endpoint connection proxy on a Batch account" + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies" }, "isDataAction": false, "origin": "system" @@ -1160,10 +511,10 @@ { "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxies/write", "display": { - "provider": "Microsoft Batch", - "resource": "PrivateEndpointConnectionProxies", + "description": "Create a new Private endpoint connection proxy on a Batch account", "operation": "Create or Update Private endpoint connection proxy", - "description": "Create a new Private endpoint connection proxy on a Batch account" + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies" }, "isDataAction": false, "origin": "system" @@ -1171,10 +522,10 @@ { "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxies/read", "display": { - "provider": "Microsoft Batch", - "resource": "PrivateEndpointConnectionProxies", + "description": "Gets Private endpoint connection proxy on a Batch account", "operation": "Get Private endpoint connection proxy", - "description": "Gets Private endpoint connection proxy on a Batch account" + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies" }, "isDataAction": false, "origin": "system" @@ -1182,10 +533,10 @@ { "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxies/delete", "display": { - "provider": "Microsoft Batch", - "resource": "PrivateEndpointConnectionProxies", + "description": "Delete a Private endpoint connection proxy on a Batch account", "operation": "Delete Private endpoint connection proxy", - "description": "Delete a Private endpoint connection proxy on a Batch account" + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies" }, "isDataAction": false, "origin": "system" @@ -1193,10 +544,10 @@ { "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxyResults/read", "display": { - "provider": "Microsoft Batch", - "resource": "PrivateEndpointConnectionProxies", + "description": "Gets the results of a long running Batch account private endpoint connection proxy operation", "operation": "Get Batch account private endpoint connection proxy operation results", - "description": "Gets the results of a long running Batch account private endpoint connection proxy operation" + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies" }, "isDataAction": false, "origin": "system" @@ -1204,10 +555,10 @@ { "name": "Microsoft.Batch/batchAccounts/outboundNetworkDependenciesEndpoints/read", "display": { - "provider": "Microsoft Batch", - "resource": "Outbound Network Dependencies Endpoints", + "description": "Lists the outbound network dependency endpoints for a Batch account", "operation": "List Outbound Network Dependency Endpoints", - "description": "Lists the outbound network dependency endpoints for a Batch account" + "provider": "Microsoft Batch", + "resource": "Outbound Network Dependencies Endpoints" }, "isDataAction": false, "origin": "user,system" @@ -1215,5 +566,7 @@ ] } } - } + }, + "operationId": "Operations_List", + "title": "OperationsList" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_AcceleratedNetworking.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_AcceleratedNetworking.json index 5ff402dcab7a..21a903131e78 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_AcceleratedNetworking.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_AcceleratedNetworking.json @@ -1,94 +1,95 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { - "vmSize": "STANDARD_D1_V2", - "networkConfiguration": { - "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", - "enableAcceleratedNetworking": true - }, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2016-datacenter-smalldisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64" } }, + "networkConfiguration": { + "enableAcceleratedNetworking": true, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, "scaleSettings": { "fixedScale": { "targetDedicatedNodes": 1, "targetLowPriorityNodes": 0 } - } + }, + "vmSize": "STANDARD_D1_V2" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8DB46CB72A227E2\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8DB46CB72A227E2\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2023-04-27T02:59:41.8592226Z", - "creationTime": "2023-04-27T02:59:41.8592226Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2023-04-27T02:59:41.8592226Z", "allocationState": "Steady", "allocationStateTransitionTime": "2023-04-27T03:00:34.0646502Z", - "vmSize": "STANDARD_D1_V2", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2023-04-27T02:59:41.8592226Z", + "currentDedicatedNodes": 1, + "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2016-datacenter-smalldisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64" } }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-04-27T02:59:41.8592226Z", "networkConfiguration": { - "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", "dynamicVnetAssignmentScope": "none", - "enableAcceleratedNetworking": true + "enableAcceleratedNetworking": true, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-04-27T02:59:41.8592226Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-04-27T02:59:41.8592226Z", + "targetDedicatedNodes": 1 }, "scaleSettings": { "fixedScale": { + "resizeTimeout": "PT15M", "targetDedicatedNodes": 1, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" + "targetLowPriorityNodes": 0 } }, - "resizeOperationStatus": { - "targetDedicatedNodes": 1, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT15M", - "startTime": "2023-04-27T02:59:41.8592226Z" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 1, - "currentLowPriorityNodes": 0, - "currentNodeCommunicationMode": "Classic" + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D1_V2" } + }, + "headers": { + "ETag": "W/\"0x8DB46CB72A227E2\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - accelerated networking" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_MinimalVirtualMachineConfiguration.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_MinimalVirtualMachineConfiguration.json index 8c778ceeb6da..e76c74944e5b 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_MinimalVirtualMachineConfiguration.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_MinimalVirtualMachineConfiguration.json @@ -1,18 +1,14 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { - "vmSize": "STANDARD_D4", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "UbuntuServer", + "publisher": "Canonical", "sku": "18.04-LTS", "version": "latest" }, @@ -21,57 +17,62 @@ }, "scaleSettings": { "autoScale": { - "formula": "$TargetDedicatedNodes=1", - "evaluationInterval": "PT5M" + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" } - } + }, + "vmSize": "STANDARD_D4" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-28T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "UbuntuServer", + "publisher": "Canonical", "sku": "18.04-LTS", "version": "latest" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04" } }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "scaleSettings": { "autoScale": { - "formula": "$TargetDedicatedNodes=1", - "evaluationInterval": "PT5M" + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" } }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0 + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - Minimal VirtualMachineConfiguration" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_NoPublicIPAddresses.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_NoPublicIPAddresses.json index 7a14b92d4708..823f992e6be2 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_NoPublicIPAddresses.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_NoPublicIPAddresses.json @@ -1,77 +1,78 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { - "vmSize": "STANDARD_D4", - "networkConfiguration": { - "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", - "publicIPAddressConfiguration": { - "provision": "NoPublicIPAddresses" - } - }, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04" } - } + }, + "networkConfiguration": { + "publicIPAddressConfiguration": { + "provision": "NoPublicIPAddresses" + }, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "vmSize": "STANDARD_D4" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-28T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Steady", "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, - "networkConfiguration": { - "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", - "publicIPAddressConfiguration": { - "provision": "NoPublicIPAddresses" - } - }, + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04" } }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "networkConfiguration": { + "publicIPAddressConfiguration": { + "provision": "NoPublicIPAddresses" + }, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "scaleSettings": { "fixedScale": { "targetDedicatedNodes": 0, "targetLowPriorityNodes": 0 } }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0 + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - No public IP" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_PublicIPs.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_PublicIPs.json index 33b59f779bb0..2d21feaf688a 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_PublicIPs.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_PublicIPs.json @@ -1,83 +1,84 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { - "vmSize": "STANDARD_D4", - "networkConfiguration": { - "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", - "publicIPAddressConfiguration": { - "provision": "UserManaged", - "ipAddressIds": [ - "/subscriptions/subid1/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135" - ] - } - }, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04" } - } + }, + "networkConfiguration": { + "publicIPAddressConfiguration": { + "ipAddressIds": [ + "/subscriptions/12345678-1234-1234-1234-1234567890121/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135" + ], + "provision": "UserManaged" + }, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "vmSize": "STANDARD_D4" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-28T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Steady", "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, - "networkConfiguration": { - "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", - "publicIPAddressConfiguration": { - "provision": "UserManaged", - "ipAddressIds": [ - "/subscriptions/subid1/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135" - ] - } - }, + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04" } }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "networkConfiguration": { + "publicIPAddressConfiguration": { + "ipAddressIds": [ + "/subscriptions/12345678-1234-1234-1234-1234567890121/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135" + ], + "provision": "UserManaged" + }, + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "scaleSettings": { "fixedScale": { "targetDedicatedNodes": 0, "targetLowPriorityNodes": 0 } }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0 + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - Public IPs" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_ResourceTags.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_ResourceTags.json index 261793844f71..889d4ba2de96 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_ResourceTags.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_ResourceTags.json @@ -1,18 +1,14 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { - "vmSize": "Standard_d4s_v3", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "UbuntuServer", + "publisher": "Canonical", "sku": "18_04-lts-gen2", "version": "latest" }, @@ -28,65 +24,70 @@ "targetDedicatedNodes": 1, "targetLowPriorityNodes": 0 } - } + }, + "vmSize": "Standard_d4s_v3" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8DB554F8E08BCF4\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8DB554F8E08BCF4\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2023-06-14T07:03:58.3231917Z", - "creationTime": "2023-06-14T07:03:58.3231917Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2023-06-14T07:03:58.3231917Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2023-06-14T07:03:58.3231917Z", - "vmSize": "STANDARD_D4S_V3", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2023-06-14T07:03:58.3231917Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "UbuntuServer", + "publisher": "Canonical", "sku": "18_04-lts-gen2", "version": "latest" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04" } }, - "scaleSettings": { - "fixedScale": { - "targetDedicatedNodes": 1, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" - } - }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-06-14T07:03:58.3231917Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-06-14T07:03:58.3231917Z", "resizeOperationStatus": { - "targetDedicatedNodes": 1, "nodeDeallocationOption": "Requeue", "resizeTimeout": "PT15M", - "startTime": "2023-09-27T07:33:13.0625789Z" + "startTime": "2023-09-27T07:33:13.0625789Z", + "targetDedicatedNodes": 1 }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0, "resourceTags": { "TagName1": "TagValue1", "TagName2": "TagValue2" - } + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT15M", + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4S_V3" } + }, + "headers": { + "ETag": "W/\"0x8DB554F8E08BCF4\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - ResourceTags" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_SecurityProfile.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_SecurityProfile.json index 27ba1212f75a..bb2931ad5016 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_SecurityProfile.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_SecurityProfile.json @@ -1,25 +1,21 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { - "vmSize": "Standard_d4s_v3", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "UbuntuServer", + "publisher": "Canonical", "sku": "18_04-lts-gen2", "version": "latest" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04", "securityProfile": { - "securityType": "trustedLaunch", "encryptionAtHost": true, + "securityType": "trustedLaunch", "uefiSettings": { "secureBootEnabled": null, "vTpmEnabled": false @@ -32,68 +28,73 @@ "targetDedicatedNodes": 1, "targetLowPriorityNodes": 0 } - } + }, + "vmSize": "Standard_d4s_v3" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8DB554F8E08BCF4\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8DB554F8E08BCF4\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2023-06-14T07:03:58.3231917Z", - "creationTime": "2023-06-14T07:03:58.3231917Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2023-06-14T07:03:58.3231917Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2023-06-14T07:03:58.3231917Z", - "vmSize": "STANDARD_D4S_V3", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2023-06-14T07:03:58.3231917Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "UbuntuServer", + "publisher": "Canonical", "sku": "18_04-lts-gen2", "version": "latest" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04", "securityProfile": { - "securityType": "trustedLaunch", "encryptionAtHost": true, + "securityType": "trustedLaunch", "uefiSettings": { "vTpmEnabled": false } } } }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-06-14T07:03:58.3231917Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-06-14T07:03:58.3231917Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-06-14T07:03:58.3231917Z", + "targetDedicatedNodes": 1 + }, "scaleSettings": { "fixedScale": { + "resizeTimeout": "PT15M", "targetDedicatedNodes": 1, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" + "targetLowPriorityNodes": 0 } }, - "resizeOperationStatus": { - "targetDedicatedNodes": 1, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT15M", - "startTime": "2023-06-14T07:03:58.3231917Z" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0 + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4S_V3" } + }, + "headers": { + "ETag": "W/\"0x8DB554F8E08BCF4\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - SecurityProfile" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_SharedImageGallery.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_SharedImageGallery.json index 190b5c18323c..a424d182f087 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_SharedImageGallery.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_SharedImageGallery.json @@ -1,65 +1,66 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { - "vmSize": "STANDARD_D4", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04" } - } + }, + "vmSize": "STANDARD_D4" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-28T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Steady", "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04" } }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "scaleSettings": { "fixedScale": { "targetDedicatedNodes": 0, "targetLowPriorityNodes": 0 } }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0 + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - Custom Image" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_Tags.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_Tags.json index 0bd7fda9680d..530a4df6c6c5 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_Tags.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_Tags.json @@ -1,22 +1,14 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { - "tags": { - "TagName1": "TagValue1", - "TagName2": "TagValue2" - }, "properties": { - "vmSize": "Standard_d4s_v3", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "0001-com-ubuntu-server-jammy", + "publisher": "Canonical", "sku": "22_04-lts", "version": "latest" }, @@ -28,65 +20,66 @@ "targetDedicatedNodes": 1, "targetLowPriorityNodes": 0 } - } + }, + "vmSize": "Standard_d4s_v3" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8DB554F8E08BCF4\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8DB554F8E08BCF4\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2023-06-14T07:03:58.3231917Z", - "creationTime": "2023-06-14T07:03:58.3231917Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2023-06-14T07:03:58.3231917Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2023-06-14T07:03:58.3231917Z", - "vmSize": "STANDARD_D4S_V3", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2023-06-14T07:03:58.3231917Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "0001-com-ubuntu-server-jammy", + "publisher": "Canonical", "sku": "22_04-lts", "version": "latest" }, "nodeAgentSkuId": "batch.node.ubuntu 22.04" } }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-06-14T07:03:58.3231917Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-06-14T07:03:58.3231917Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-09-27T07:33:13.0625789Z", + "targetDedicatedNodes": 1 + }, "scaleSettings": { "fixedScale": { + "resizeTimeout": "PT15M", "targetDedicatedNodes": 1, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" + "targetLowPriorityNodes": 0 } }, - "resizeOperationStatus": { - "targetDedicatedNodes": 1, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT15M", - "startTime": "2023-09-27T07:33:13.0625789Z" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0 - }, - "tags": { - "TagName1": "TagValue1", - "TagName2": "TagValue2" + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4S_V3" } + }, + "headers": { + "ETag": "W/\"0x8DB554F8E08BCF4\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - Tags" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_UpgradePolicy.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_UpgradePolicy.json index 15be78e2f891..068ad7ed544e 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_UpgradePolicy.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_UpgradePolicy.json @@ -1,25 +1,21 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { - "vmSize": "Standard_d4s_v3", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2019-datacenter-smalldisk", "version": "latest" }, + "nodeAgentSkuId": "batch.node.windows amd64", "nodePlacementConfiguration": { "policy": "Zonal" }, - "nodeAgentSkuId": "batch.node.windows amd64", "windowsConfiguration": { "enableAutomaticUpdates": false } @@ -32,13 +28,13 @@ } }, "upgradePolicy": { - "mode": "automatic", "automaticOSUpgradePolicy": { "disableAutomaticRollback": true, "enableAutomaticOSUpgrade": true, - "useRollingUpgradePolicy": true, - "osRollingUpgradeDeferral": true + "osRollingUpgradeDeferral": true, + "useRollingUpgradePolicy": true }, + "mode": "automatic", "rollingUpgradePolicy": { "enableCrossZoneUpgrade": true, "maxBatchInstancePercent": 20, @@ -48,73 +44,72 @@ "prioritizeUnhealthyInstances": false, "rollbackFailedInstancesOnPolicyBreach": false } - } + }, + "vmSize": "Standard_d4s_v3" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8DB51E64D3C3B69\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8DB51E64D3C3B69\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2023-05-11T06:16:44.2372184Z", - "creationTime": "2023-05-11T06:16:44.2372184Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2023-05-11T06:16:44.2372184Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2023-05-11T06:16:44.2372184Z", - "vmSize": "STANDARD_D4S_V3", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2023-05-11T06:16:44.2372184Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2019-datacenter-smalldisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64", - "windowsConfiguration": { - "enableAutomaticUpdates": false - }, "nodePlacementConfiguration": { "policy": "Zonal" + }, + "windowsConfiguration": { + "enableAutomaticUpdates": false } } }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-05-11T06:16:44.2372184Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-05-11T06:16:44.2372184Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-05-11T06:16:44.2372184Z", + "targetDedicatedNodes": 2 + }, "scaleSettings": { "fixedScale": { + "resizeTimeout": "PT15M", "targetDedicatedNodes": 2, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" + "targetLowPriorityNodes": 0 } }, - "resizeOperationStatus": { - "targetDedicatedNodes": 2, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT15M", - "startTime": "2023-05-11T06:16:44.2372184Z" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0, + "taskSlotsPerNode": 1, "upgradePolicy": { - "mode": "automatic", "automaticOSUpgradePolicy": { "disableAutomaticRollback": true, "enableAutomaticOSUpgrade": true, - "useRollingUpgradePolicy": true, - "osRollingUpgradeDeferral": true + "osRollingUpgradeDeferral": true, + "useRollingUpgradePolicy": true }, + "mode": "automatic", "rollingUpgradePolicy": { "enableCrossZoneUpgrade": true, "maxBatchInstancePercent": 20, @@ -124,9 +119,15 @@ "prioritizeUnhealthyInstances": false, "rollbackFailedInstancesOnPolicyBreach": false } - } + }, + "vmSize": "STANDARD_D4S_V3" } + }, + "headers": { + "ETag": "W/\"0x8DB51E64D3C3B69\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - UpgradePolicy" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_UserAssignedIdentities.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_UserAssignedIdentities.json index 7ee46d5d2447..bf85ad55a106 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_UserAssignedIdentities.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_UserAssignedIdentities.json @@ -1,18 +1,21 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {}, + "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": {} + } + }, "properties": { - "vmSize": "STANDARD_D4", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "UbuntuServer", + "publisher": "Canonical", "sku": "18.04-LTS", "version": "latest" }, @@ -21,77 +24,75 @@ }, "scaleSettings": { "autoScale": { - "formula": "$TargetDedicatedNodes=1", - "evaluationInterval": "PT5M" + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" } - } - }, - "identity": { - "type": "UserAssigned", - "userAssignedIdentities": { - "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {}, - "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": {} - } + }, + "vmSize": "STANDARD_D4" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": { + "clientId": "clientId1", + "principalId": "principalId1" + }, + "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": { + "clientId": "clientId2", + "principalId": "principalId2" + } + } + }, "properties": { - "lastModified": "2020-10-01T10:22:55.9407275Z", - "creationTime": "2020-10-01T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2020-10-01T10:22:55.9407275Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2020-10-01T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2020-10-01T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "UbuntuServer", + "publisher": "Canonical", "sku": "18.04-LTS", "version": "latest" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04" } }, + "interNodeCommunication": "Disabled", + "lastModified": "2020-10-01T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2020-10-01T10:22:55.9407275Z", "scaleSettings": { "autoScale": { - "formula": "$TargetDedicatedNodes=1", - "evaluationInterval": "PT5M" + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" } }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0 - }, - "identity": { - "type": "UserAssigned", - "userAssignedIdentities": { - "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": { - "principalId": "principalId1", - "clientId": "clientId1" - }, - "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": { - "principalId": "principalId2", - "clientId": "clientId2" - } - } + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - UserAssignedIdentities" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration.json index fd0e5fb1fe10..13ac26b1d67d 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration.json @@ -1,37 +1,22 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { - "vmSize": "STANDARD_D4", "deploymentConfiguration": { "virtualMachineConfiguration": { - "imageReference": { - "publisher": "MicrosoftWindowsServer", - "offer": "WindowsServer", - "sku": "2016-Datacenter-SmallDisk", - "version": "latest" - }, - "nodeAgentSkuId": "batch.node.windows amd64", - "windowsConfiguration": { - "enableAutomaticUpdates": false - }, - "licenseType": "Windows_Server", "dataDisks": [ { - "lun": 0, "caching": "ReadWrite", "diskSizeGB": 30, + "lun": 0, "storageAccountType": "Premium_LRS" }, { - "lun": 1, "caching": "None", "diskSizeGB": 200, + "lun": 1, "storageAccountType": "Standard_LRS" } ], @@ -41,6 +26,14 @@ "TemporaryDisk" ] }, + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-Datacenter-SmallDisk", + "version": "latest" + }, + "licenseType": "Windows_Server", + "nodeAgentSkuId": "batch.node.windows amd64", "nodePlacementConfiguration": { "policy": "Zonal" }, @@ -48,6 +41,9 @@ "ephemeralOSDiskSettings": { "placement": "CacheDisk" } + }, + "windowsConfiguration": { + "enableAutomaticUpdates": false } } }, @@ -56,15 +52,14 @@ "inboundNatPools": [ { "name": "testnat", - "protocol": "TCP", "backendPort": 12001, - "frontendPortRangeStart": 15000, "frontendPortRangeEnd": 15100, + "frontendPortRangeStart": 15000, "networkSecurityGroupRules": [ { "access": "Allow", - "sourceAddressPrefix": "192.100.12.45", "priority": 150, + "sourceAddressPrefix": "192.100.12.45", "sourcePortRanges": [ "1", "2" @@ -72,73 +67,56 @@ }, { "access": "Deny", - "sourceAddressPrefix": "*", "priority": 3500, + "sourceAddressPrefix": "*", "sourcePortRanges": [ "*" ] } - ] + ], + "protocol": "TCP" } ] } }, "scaleSettings": { "autoScale": { - "formula": "$TargetDedicatedNodes=1", - "evaluationInterval": "PT5M" + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" } - } + }, + "vmSize": "STANDARD_D4" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-28T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { - "imageReference": { - "publisher": "MicrosoftWindowsServer", - "offer": "WindowsServer", - "sku": "2016-Datacenter-SmallDisk", - "version": "latest" - }, - "nodeAgentSkuId": "batch.node.windows amd64", - "windowsConfiguration": { - "enableAutomaticUpdates": false - }, - "licenseType": "Windows_Server", "dataDisks": [ { - "lun": 0, "caching": "ReadWrite", "diskSizeGB": 30, + "lun": 0, "storageAccountType": "Premium_LRS" }, { - "lun": 1, "caching": "None", "diskSizeGB": 200, + "lun": 1, "storageAccountType": "Standard_LRS" } ], @@ -148,25 +126,37 @@ "TemporaryDisk" ] }, + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-Datacenter-SmallDisk", + "version": "latest" + }, + "licenseType": "Windows_Server", + "nodeAgentSkuId": "batch.node.windows amd64", "nodePlacementConfiguration": { "policy": "Zonal" + }, + "windowsConfiguration": { + "enableAutomaticUpdates": false } } }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", "networkConfiguration": { "endpointConfiguration": { "inboundNatPools": [ { "name": "testnat", - "protocol": "TCP", "backendPort": 12001, - "frontendPortRangeStart": 15000, "frontendPortRangeEnd": 15100, + "frontendPortRangeStart": 15000, "networkSecurityGroupRules": [ { "access": "Allow", - "sourceAddressPrefix": "192.100.12.45", "priority": 150, + "sourceAddressPrefix": "192.100.12.45", "sourcePortRanges": [ "1", "2" @@ -174,27 +164,38 @@ }, { "access": "Deny", - "sourceAddressPrefix": "*", "priority": 3500, + "sourceAddressPrefix": "*", "sourcePortRanges": [ "*" ] } - ] + ], + "protocol": "TCP" } ] } }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "scaleSettings": { "autoScale": { - "formula": "$TargetDedicatedNodes=1", - "evaluationInterval": "PT5M" + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" } }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0 + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - Full VirtualMachineConfiguration" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration_Extensions.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration_Extensions.json index 8e4d82ed54f4..6e842de2db62 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration_Extensions.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration_Extensions.json @@ -1,24 +1,14 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { - "vmSize": "STANDARD_D4", - "scaleSettings": { - "autoScale": { - "formula": "$TargetDedicatedNodes=1", - "evaluationInterval": "PT5M" - } - }, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "0001-com-ubuntu-server-focal", + "publisher": "Canonical", "sku": "20_04-lts" }, "nodeAgentSkuId": "batch.node.ubuntu 20.04", @@ -26,58 +16,49 @@ { "name": "batchextension1", "type": "KeyVaultForLinux", - "publisher": "Microsoft.Azure.KeyVault", - "typeHandlerVersion": "2.0", "autoUpgradeMinorVersion": true, "enableAutomaticUpgrade": true, + "publisher": "Microsoft.Azure.KeyVault", "settings": { - "secretsManagementSettingsKey": "secretsManagementSettingsValue", - "authenticationSettingsKey": "authenticationSettingsValue" - } + "authenticationSettingsKey": "authenticationSettingsValue", + "secretsManagementSettingsKey": "secretsManagementSettingsValue" + }, + "typeHandlerVersion": "2.0" } ] } }, - "targetNodeCommunicationMode": "Default" + "scaleSettings": { + "autoScale": { + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" + } + }, + "targetNodeCommunicationMode": "Default", + "vmSize": "STANDARD_D4" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-28T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, - "scaleSettings": { - "autoScale": { - "formula": "$TargetDedicatedNodes=1", - "evaluationInterval": "PT5M" - } - }, + "creationTime": "2017-08-28T10:22:55.9407275Z", "currentDedicatedNodes": 0, "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "0001-com-ubuntu-server-focal", + "publisher": "Canonical", "sku": "20_04-lts" }, "nodeAgentSkuId": "batch.node.ubuntu 20.04", @@ -85,21 +66,41 @@ { "name": "batchextension1", "type": "KeyVaultForLinux", - "publisher": "Microsoft.Azure.KeyVault", - "typeHandlerVersion": "2.0", "autoUpgradeMinorVersion": true, "enableAutomaticUpgrade": true, + "publisher": "Microsoft.Azure.KeyVault", "settings": { - "secretsManagementSettingsKey": "secretsManagementSettingsValue", - "authenticationSettingsKey": "authenticationSettingsValue" - } + "authenticationSettingsKey": "authenticationSettingsValue", + "secretsManagementSettingsKey": "secretsManagementSettingsValue" + }, + "typeHandlerVersion": "2.0" } ] } }, - "targetNodeCommunicationMode": "Default" + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "scaleSettings": { + "autoScale": { + "evaluationInterval": "PT5M", + "formula": "$TargetDedicatedNodes=1" + } + }, + "targetNodeCommunicationMode": "Default", + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - VirtualMachineConfiguration Extensions" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json index d7a8129c17d2..8767b2a84f51 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json @@ -1,29 +1,25 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { - "vmSize": "Standard_d2s_v3", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "microsoftwindowsserver", "offer": "windowsserver", + "publisher": "microsoftwindowsserver", "sku": "2022-datacenter-smalldisk" }, + "nodeAgentSkuId": "batch.node.windows amd64", "osDisk": { + "caching": "ReadWrite", "diskSizeGB": 100, "managedDisk": { "storageAccountType": "StandardSSD_LRS" }, - "caching": "ReadWrite", "writeAcceleratorEnabled": false - }, - "nodeAgentSkuId": "batch.node.windows amd64" + } } }, "scaleSettings": { @@ -31,69 +27,74 @@ "targetDedicatedNodes": 1, "targetLowPriorityNodes": 0 } - } + }, + "vmSize": "Standard_d2s_v3" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8DB51F14DC1A8AD\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8DB51F396992B8D\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2023-08-24T02:12:27.7527697Z", - "creationTime": "2023-08-24T02:12:27.7527697Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2023-08-24T02:12:27.7527697Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2023-08-24T02:12:27.7527697Z", - "vmSize": "STANDARD_D2_V3", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2023-08-24T02:12:27.7527697Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "microsoftwindowsserver", "offer": "windowsserver", + "publisher": "microsoftwindowsserver", "sku": "2022-datacenter-smalldisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64", "osDisk": { "caching": "ReadWrite", + "diskSizeGB": 100, "managedDisk": { "storageAccountType": "StandardSSD_LRS" }, - "diskSizeGB": 100, "writeAcceleratorEnabled": false } } }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-08-24T02:12:27.7527697Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-08-24T02:12:27.7527697Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-08-24T02:12:27.7527697Z", + "targetDedicatedNodes": 1 + }, "scaleSettings": { "fixedScale": { + "resizeTimeout": "PT15M", "targetDedicatedNodes": 1, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" + "targetLowPriorityNodes": 0 } }, - "resizeOperationStatus": { - "targetDedicatedNodes": 1, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT15M", - "startTime": "2023-08-24T02:12:27.7527697Z" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0 + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D2_V3" } + }, + "headers": { + "ETag": "W/\"0x8DB51F14DC1A8AD\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - VirtualMachineConfiguration OSDisk" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json index 9cd764913ac1..d2ca2c85c240 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json @@ -1,27 +1,23 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { - "vmSize": "Standard_d4s_v3", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2019-datacenter-smalldisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64", + "serviceArtifactReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile" + }, "windowsConfiguration": { "enableAutomaticUpdates": false - }, - "serviceArtifactReference": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile" } } }, @@ -32,77 +28,82 @@ } }, "upgradePolicy": { - "mode": "automatic", "automaticOSUpgradePolicy": { "enableAutomaticOSUpgrade": true - } - } + }, + "mode": "automatic" + }, + "vmSize": "Standard_d4s_v3" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8DB51F14DC1A8AD\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "mypool41", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8DB51F396992B8D\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2023-05-11T07:44:44.8580493Z", - "creationTime": "2023-05-11T07:44:44.8580493Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2023-05-11T07:44:44.8580493Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2023-05-11T07:44:44.8580493Z", - "vmSize": "STANDARD_D4S_V3", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2023-05-11T07:44:44.8580493Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2019-datacenter-smalldisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64", + "serviceArtifactReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile" + }, "windowsConfiguration": { "enableAutomaticUpdates": false - }, - "serviceArtifactReference": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile" } } }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-05-11T07:44:44.8580493Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-05-11T07:44:44.8580493Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-05-11T07:44:44.8580493Z", + "targetDedicatedNodes": 2 + }, "scaleSettings": { "fixedScale": { + "resizeTimeout": "PT15M", "targetDedicatedNodes": 2, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" + "targetLowPriorityNodes": 0 } }, - "resizeOperationStatus": { - "targetDedicatedNodes": 2, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT15M", - "startTime": "2023-05-11T07:44:44.8580493Z" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0, + "taskSlotsPerNode": 1, "upgradePolicy": { - "mode": "automatic", "automaticOSUpgradePolicy": { "enableAutomaticOSUpgrade": true - } - } + }, + "mode": "automatic" + }, + "vmSize": "STANDARD_D4S_V3" } + }, + "headers": { + "ETag": "W/\"0x8DB51F14DC1A8AD\"" } } - } + }, + "operationId": "Pool_Create", + "title": "CreatePool - VirtualMachineConfiguration ServiceArtifactReference" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolDelete.json index a0f69e6d15b6..4951c3b4b9e4 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolDelete.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolDelete.json @@ -1,19 +1,21 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "poolName": "testpool", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": {}, - "204": {}, "202": { "headers": { - "Retry-After": "15", - "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/poolOperationResults/delete-testpool-8D4EDFF164A11C9?api-version=2024-07-01" + "Location": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/poolOperationResults/delete-testpool-8D4EDFF164A11C9?api-version=2024-07-01", + "Retry-After": "15" } - } - } + }, + "204": {} + }, + "operationId": "Pool_Delete", + "title": "DeletePool" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolDisableAutoScale.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolDisableAutoScale.json index ccc6baa591e2..f23336a54107 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolDisableAutoScale.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolDisableAutoScale.json @@ -1,56 +1,57 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "poolName": "testpool", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-28T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "UbuntuServer", + "publisher": "Canonical", "sku": "18.04-LTS", "version": "latest" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04" } }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "scaleSettings": { "fixedScale": { + "resizeTimeout": "PT15M", "targetDedicatedNodes": 3, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" + "targetLowPriorityNodes": 0 } }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0 + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_DisableAutoScale", + "title": "Disable AutoScale" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet.json index 8055515c434d..606d32207a39 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet.json @@ -1,67 +1,79 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "poolName": "testpool", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-28T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Enabled", - "taskSlotsPerNode": 13, - "taskSchedulingPolicy": { - "nodeFillType": "Pack" - }, + "applicationLicenses": [ + "app-license0", + "app-license1" + ], + "applicationPackages": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234", + "version": "asdf" + } + ], + "certificates": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567", + "storeLocation": "LocalMachine", + "storeName": "MY", + "visibility": [ + "RemoteUser" + ] + } + ], + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2016-Datacenter-SmallDisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64" } }, - "scaleSettings": { - "fixedScale": { - "targetDedicatedNodes": 6, - "targetLowPriorityNodes": 28, - "resizeTimeout": "PT8M" + "interNodeCommunication": "Enabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "metadata": [ + { + "name": "metadata-1", + "value": "value-1" + }, + { + "name": "metadata-2", + "value": "value-2" } - }, + ], "networkConfiguration": { - "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", "endpointConfiguration": { "inboundNatPools": [ { "name": "testnat", - "protocol": "TCP", "backendPort": 12001, - "frontendPortRangeStart": 15000, "frontendPortRangeEnd": 15100, + "frontendPortRangeStart": 15000, "networkSecurityGroupRules": [ { "access": "Allow", - "sourceAddressPrefix": "192.100.12.45", "priority": 150, + "sourceAddressPrefix": "192.100.12.45", "sourcePortRanges": [ "123", "22" @@ -69,92 +81,81 @@ }, { "access": "Deny", - "sourceAddressPrefix": "*", "priority": 3500, + "sourceAddressPrefix": "*", "sourcePortRanges": [ "*" ] } - ] + ], + "protocol": "TCP" } ] - } - }, - "metadata": [ - { - "name": "metadata-1", - "value": "value-1" }, - { - "name": "metadata-2", - "value": "value-2" + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "startTime": "2017-08-28T10:22:55.9407275Z", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT8M", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28 } - ], + }, "startTask": { "commandLine": "cmd /c SET", - "resourceFiles": [ - { - "httpUrl": "https://testaccount.blob.core.windows.net/example-blob-file", - "filePath": "c:\\temp\\gohere", - "fileMode": "777" - } - ], "environmentSettings": [ { "name": "MYSET", "value": "1234" } ], + "maxTaskRetryCount": 6, + "resourceFiles": [ + { + "fileMode": "777", + "filePath": "c:\\temp\\gohere", + "httpUrl": "https://testaccount.blob.core.windows.net/example-blob-file" + } + ], "userIdentity": { "autoUser": { - "scope": "Pool", - "elevationLevel": "Admin" + "elevationLevel": "Admin", + "scope": "Pool" } }, - "maxTaskRetryCount": 6, "waitForSuccess": true }, + "taskSchedulingPolicy": { + "nodeFillType": "Pack" + }, + "taskSlotsPerNode": 13, "userAccounts": [ { "name": "username1", "elevationLevel": "Admin", "linuxUserConfiguration": { - "uid": 1234, - "gid": 4567 + "gid": 4567, + "uid": 1234 } } ], - "applicationPackages": [ - { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234", - "version": "asdf" - } - ], - "certificates": [ - { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567", - "storeLocation": "LocalMachine", - "storeName": "MY", - "visibility": [ - "RemoteUser" - ] - } - ], - "applicationLicenses": [ - "app-license0", - "app-license1" - ], - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0, - "resizeOperationStatus": { - "startTime": "2017-08-28T10:22:55.9407275Z", - "targetDedicatedNodes": 6, - "targetLowPriorityNodes": 28, - "nodeDeallocationOption": "TaskCompletion", - "resizeTimeout": "PT8M" - } + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Get", + "title": "GetPool" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_AcceleratedNetworking.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_AcceleratedNetworking.json index 3f84b13cb00a..b2d7caeb9a79 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_AcceleratedNetworking.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_AcceleratedNetworking.json @@ -1,67 +1,68 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "poolName": "testpool", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2023-04-28T02:32:32.8696419Z", - "creationTime": "2023-04-28T02:32:32.8696419Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2023-04-28T02:32:32.8696419Z", "allocationState": "Steady", "allocationStateTransitionTime": "2023-04-28T02:33:40.82831Z", - "vmSize": "STANDARD_D1_V2", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2023-04-28T02:32:32.8696419Z", + "currentDedicatedNodes": 1, + "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2016-datacenter-smalldisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64" } }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-04-28T02:32:32.8696419Z", "networkConfiguration": { "dynamicVnetAssignmentScope": "none", "enableAcceleratedNetworking": true }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-04-28T02:32:32.8696419Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-04-28T02:32:32.8696419Z", + "targetDedicatedNodes": 1 + }, "scaleSettings": { "fixedScale": { + "resizeTimeout": "PT15M", "targetDedicatedNodes": 1, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" + "targetLowPriorityNodes": 0 } }, - "resizeOperationStatus": { - "targetDedicatedNodes": 1, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT15M", - "startTime": "2023-04-28T02:32:32.8696419Z" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 1, - "currentLowPriorityNodes": 0, - "currentNodeCommunicationMode": "Classic" + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D1_V2" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Get", + "title": "GetPool - AcceleratedNetworking" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_SecurityProfile.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_SecurityProfile.json index 865d645691d5..e50c784bd88b 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_SecurityProfile.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_SecurityProfile.json @@ -1,70 +1,71 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "poolName": "testpool", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8DB554F8E08BCF4\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8DB554F8E08BCF4\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2023-06-14T07:03:58.3231917Z", - "creationTime": "2023-06-14T07:03:58.3231917Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2023-06-14T07:03:58.3231917Z", "allocationState": "Steady", "allocationStateTransitionTime": "2023-06-14T07:04:57.3413444Z", - "vmSize": "STANDARD_D4S_V3", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2023-06-14T07:03:58.3231917Z", + "currentDedicatedNodes": 1, + "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "UbuntuServer", + "publisher": "Canonical", "sku": "18_04-lts-gen2", "version": "latest" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04", "securityProfile": { - "securityType": "trustedLaunch", "encryptionAtHost": true, + "securityType": "trustedLaunch", "uefiSettings": { "vTpmEnabled": false } } } }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-06-14T07:03:58.3231917Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-06-14T07:03:58.3231917Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-06-14T07:03:58.3231917Z", + "targetDedicatedNodes": 1 + }, "scaleSettings": { "fixedScale": { + "resizeTimeout": "PT15M", "targetDedicatedNodes": 1, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" + "targetLowPriorityNodes": 0 } }, - "resizeOperationStatus": { - "targetDedicatedNodes": 1, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT15M", - "startTime": "2023-06-14T07:03:58.3231917Z" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 1, - "currentLowPriorityNodes": 0, - "currentNodeCommunicationMode": "Classic" + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4S_V3" } + }, + "headers": { + "ETag": "W/\"0x8DB554F8E08BCF4\"" } } - } + }, + "operationId": "Pool_Get", + "title": "GetPool - SecurityProfile" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_UpgradePolicy.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_UpgradePolicy.json index 32b1fbde629e..bedde0ff7f00 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_UpgradePolicy.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_UpgradePolicy.json @@ -1,75 +1,70 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "poolName": "testpool", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8DB51E64D3C3B69\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8DB51E64D3C3B69\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2023-05-11T06:09:38.3178089Z", - "creationTime": "2023-05-11T06:09:38.3178089Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2023-05-11T06:09:38.3178089Z", "allocationState": "Steady", "allocationStateTransitionTime": "2023-05-11T06:10:31.4670326Z", - "vmSize": "STANDARD_D4S_V3", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2023-05-11T06:09:38.3178089Z", + "currentDedicatedNodes": 2, + "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2019-datacenter-smalldisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64", - "windowsConfiguration": { - "enableAutomaticUpdates": false - }, "nodePlacementConfiguration": { "policy": "Zonal" + }, + "windowsConfiguration": { + "enableAutomaticUpdates": false } } }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-05-11T06:09:38.3178089Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-05-11T06:09:38.3178089Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-05-11T06:09:38.3178089Z", + "targetDedicatedNodes": 2 + }, "scaleSettings": { "fixedScale": { + "resizeTimeout": "PT15M", "targetDedicatedNodes": 2, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" + "targetLowPriorityNodes": 0 } }, - "resizeOperationStatus": { - "targetDedicatedNodes": 2, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT15M", - "startTime": "2023-05-11T06:09:38.3178089Z" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 2, - "currentLowPriorityNodes": 0, - "currentNodeCommunicationMode": "Classic", + "taskSlotsPerNode": 1, "upgradePolicy": { - "mode": "automatic", "automaticOSUpgradePolicy": { "disableAutomaticRollback": true, "enableAutomaticOSUpgrade": true, - "useRollingUpgradePolicy": true, - "osRollingUpgradeDeferral": true + "osRollingUpgradeDeferral": true, + "useRollingUpgradePolicy": true }, + "mode": "automatic", "rollingUpgradePolicy": { "enableCrossZoneUpgrade": true, "maxBatchInstancePercent": 20, @@ -79,9 +74,15 @@ "prioritizeUnhealthyInstances": false, "rollbackFailedInstancesOnPolicyBreach": false } - } + }, + "vmSize": "STANDARD_D4S_V3" } + }, + "headers": { + "ETag": "W/\"0x8DB51E64D3C3B69\"" } } - } + }, + "operationId": "Pool_Get", + "title": "GetPool - UpgradePolicy" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_VirtualMachineConfiguration_Extensions.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_VirtualMachineConfiguration_Extensions.json index 1a24a3964e66..c6fe0367dea6 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_VirtualMachineConfiguration_Extensions.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_VirtualMachineConfiguration_Extensions.json @@ -1,55 +1,29 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "poolName": "testpool", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-28T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Enabled", - "taskSlotsPerNode": 13, - "taskSchedulingPolicy": { - "nodeFillType": "Pack" - }, - "scaleSettings": { - "fixedScale": { - "targetDedicatedNodes": 6, - "targetLowPriorityNodes": 28, - "resizeTimeout": "PT8M" - } - }, - "resizeOperationStatus": { - "startTime": "2017-08-28T10:22:55.9407275Z", - "targetDedicatedNodes": 6, - "targetLowPriorityNodes": 28, - "nodeDeallocationOption": "TaskCompletion", - "resizeTimeout": "PT8M" - }, + "creationTime": "2017-08-28T10:22:55.9407275Z", "currentDedicatedNodes": 0, "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "0001-com-ubuntu-server-focal", + "publisher": "Canonical", "sku": "20_04-lts" }, "nodeAgentSkuId": "batch.node.ubuntu 20.04", @@ -57,22 +31,49 @@ { "name": "batchextension1", "type": "KeyVaultForLinux", - "publisher": "Microsoft.Azure.KeyVault", - "typeHandlerVersion": "2.0", "autoUpgradeMinorVersion": true, "enableAutomaticUpgrade": true, + "publisher": "Microsoft.Azure.KeyVault", "settings": { - "secretsManagementSettingsKey": "secretsManagementSettingsValue", - "authenticationSettingsKey": "authenticationSettingsValue" - } + "authenticationSettingsKey": "authenticationSettingsValue", + "secretsManagementSettingsKey": "secretsManagementSettingsValue" + }, + "typeHandlerVersion": "2.0" } ] } }, + "interNodeCommunication": "Enabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "startTime": "2017-08-28T10:22:55.9407275Z", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT8M", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28 + } + }, "targetNodeCommunicationMode": "Default", - "currentNodeCommunicationMode": "Classic" + "taskSchedulingPolicy": { + "nodeFillType": "Pack" + }, + "taskSlotsPerNode": 13, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Get", + "title": "GetPool - VirtualMachineConfiguration Extensions" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json index a5b2d5a86282..c420166f4e93 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json @@ -1,71 +1,72 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "poolName": "testpool", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8DB51E64D3C3B69\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8DB51E64D3C3B69\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2023-08-24T02:12:27.7527697Z", - "creationTime": "2023-08-24T02:12:27.7527697Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2023-08-24T02:12:27.7527697Z", "allocationState": "Steady", "allocationStateTransitionTime": "2023-08-24T02:13:22.4881351Z", - "vmSize": "STANDARD_D2_V3", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2023-08-24T02:12:27.7527697Z", + "currentDedicatedNodes": 1, + "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "microsoftwindowsserver", "offer": "windowsserver", + "publisher": "microsoftwindowsserver", "sku": "2022-datacenter-smalldisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64", "osDisk": { "caching": "ReadWrite", + "diskSizeGB": 100, "managedDisk": { "storageAccountType": "StandardSSD_LRS" }, - "diskSizeGB": 100, "writeAcceleratorEnabled": false } } }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-08-24T02:12:27.7527697Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-08-24T02:12:27.7527697Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-08-24T02:12:27.7527697Z", + "targetDedicatedNodes": 1 + }, "scaleSettings": { "fixedScale": { + "resizeTimeout": "PT15M", "targetDedicatedNodes": 1, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" + "targetLowPriorityNodes": 0 } }, - "resizeOperationStatus": { - "targetDedicatedNodes": 1, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT15M", - "startTime": "2023-08-24T02:12:27.7527697Z" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 1, - "currentLowPriorityNodes": 0, - "currentNodeCommunicationMode": "Classic" + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D2_V3" } + }, + "headers": { + "ETag": "W/\"0x8DB51E64D3C3B69\"" } } - } + }, + "operationId": "Pool_Get", + "title": "GetPool - VirtualMachineConfiguration OSDisk" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json index 3a84fe49b775..b2daf6ac50c1 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json @@ -1,75 +1,76 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "poolName": "testpool", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8DB51E64D3C3B69\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8DB51E64D3C3B69\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2023-05-11T07:44:44.8580493Z", - "creationTime": "2023-05-11T07:44:44.8580493Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2023-05-11T07:44:44.8580493Z", "allocationState": "Steady", "allocationStateTransitionTime": "2023-05-11T07:45:42.0881659Z", - "vmSize": "STANDARD_D4S_V3", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2023-05-11T07:44:44.8580493Z", + "currentDedicatedNodes": 2, + "currentLowPriorityNodes": 0, + "currentNodeCommunicationMode": "Classic", "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2019-datacenter-smalldisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64", + "serviceArtifactReference": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile" + }, "windowsConfiguration": { "enableAutomaticUpdates": false - }, - "serviceArtifactReference": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile" } } }, + "interNodeCommunication": "Disabled", + "lastModified": "2023-05-11T07:44:44.8580493Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-05-11T07:44:44.8580493Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-05-11T07:44:44.8580493Z", + "targetDedicatedNodes": 2 + }, "scaleSettings": { "fixedScale": { + "resizeTimeout": "PT15M", "targetDedicatedNodes": 2, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" + "targetLowPriorityNodes": 0 } }, - "resizeOperationStatus": { - "targetDedicatedNodes": 2, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT15M", - "startTime": "2023-05-11T07:44:44.8580493Z" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 2, - "currentLowPriorityNodes": 0, - "currentNodeCommunicationMode": "Classic", + "taskSlotsPerNode": 1, "upgradePolicy": { - "mode": "automatic", "automaticOSUpgradePolicy": { "enableAutomaticOSUpgrade": true - } - } + }, + "mode": "automatic" + }, + "vmSize": "STANDARD_D4S_V3" } + }, + "headers": { + "ETag": "W/\"0x8DB51E64D3C3B69\"" } } - } + }, + "operationId": "Pool_Get", + "title": "GetPool - VirtualMachineConfiguration ServiceArtifactReference" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolList.json index 9a19b4a7f4a7..ce62864cbad1 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolList.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolList.json @@ -1,166 +1,167 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "poolName": "testpool", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-28T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Steady", "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Enabled", - "taskSlotsPerNode": 13, - "taskSchedulingPolicy": { - "nodeFillType": "Pack" - }, + "applicationLicenses": [ + "app-license0", + "app-license1" + ], + "applicationPackages": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234", + "version": "asdf" + } + ], + "certificates": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567", + "storeLocation": "LocalMachine", + "storeName": "MY", + "visibility": [ + "RemoteUser" + ] + } + ], + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2016-Datacenter-SmallDisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64" } }, - "scaleSettings": { - "fixedScale": { - "targetDedicatedNodes": 6, - "targetLowPriorityNodes": 28, - "resizeTimeout": "PT8M" + "interNodeCommunication": "Enabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "metadata": [ + { + "name": "metadata-1", + "value": "value-1" + }, + { + "name": "metadata-2", + "value": "value-2" } - }, + ], "networkConfiguration": { - "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", "endpointConfiguration": { "inboundNatPools": [ { "name": "testnat", - "protocol": "TCP", "backendPort": 12001, - "frontendPortRangeStart": 15000, "frontendPortRangeEnd": 15100, + "frontendPortRangeStart": 15000, "networkSecurityGroupRules": [ { "access": "Allow", - "sourceAddressPrefix": "192.100.12.45", "priority": 150, + "sourceAddressPrefix": "192.100.12.45", "sourcePortRanges": [ "*" ] }, { "access": "Deny", - "sourceAddressPrefix": "*", "priority": 3500, + "sourceAddressPrefix": "*", "sourcePortRanges": [ "*" ] } - ] + ], + "protocol": "TCP" } ] - } - }, - "metadata": [ - { - "name": "metadata-1", - "value": "value-1" }, - { - "name": "metadata-2", - "value": "value-2" - } - ], - "startTask": { - "commandLine": "cmd /c SET", - "resourceFiles": [ + "subnetId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123" + }, + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "errors": [ { - "httpUrl": "https://testaccount.blob.core.windows.net/example-blob-file", - "filePath": "c:\\temp\\gohere", - "fileMode": "777" + "code": "AllocationTimedout", + "message": "Desired number of dedicated nodes could not be allocated as the resize timeout was reached" } ], + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "startTime": "2017-08-28T10:22:55.9407275Z", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28 + }, + "scaleSettings": { + "fixedScale": { + "resizeTimeout": "PT8M", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28 + } + }, + "startTask": { + "commandLine": "cmd /c SET", "environmentSettings": [ { "name": "MYSET", "value": "1234" } ], + "maxTaskRetryCount": 6, + "resourceFiles": [ + { + "fileMode": "777", + "filePath": "c:\\temp\\gohere", + "httpUrl": "https://testaccount.blob.core.windows.net/example-blob-file" + } + ], "userIdentity": { "autoUser": { - "scope": "Pool", - "elevationLevel": "Admin" + "elevationLevel": "Admin", + "scope": "Pool" } }, - "maxTaskRetryCount": 6, "waitForSuccess": true }, + "taskSchedulingPolicy": { + "nodeFillType": "Pack" + }, + "taskSlotsPerNode": 13, "userAccounts": [ { "name": "username1", "elevationLevel": "Admin", "linuxUserConfiguration": { - "uid": 1234, - "gid": 4567 + "gid": 4567, + "uid": 1234 } } ], - "applicationPackages": [ - { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234", - "version": "asdf" - } - ], - "certificates": [ - { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567", - "storeLocation": "LocalMachine", - "storeName": "MY", - "visibility": [ - "RemoteUser" - ] - } - ], - "applicationLicenses": [ - "app-license0", - "app-license1" - ], - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0, - "resizeOperationStatus": { - "startTime": "2017-08-28T10:22:55.9407275Z", - "targetDedicatedNodes": 6, - "targetLowPriorityNodes": 28, - "nodeDeallocationOption": "TaskCompletion", - "resizeTimeout": "PT8M", - "errors": [ - { - "code": "AllocationTimedout", - "message": "Desired number of dedicated nodes could not be allocated as the resize timeout was reached" - } - ] - } + "vmSize": "STANDARD_D4" } } ] } } - } + }, + "operationId": "Pool_ListByBatchAccount", + "title": "ListPool" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolListWithFilter.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolListWithFilter.json index d045dccfa7cf..0c218a031ba9 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolListWithFilter.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolListWithFilter.json @@ -1,44 +1,44 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", - "accountName": "sampleacct", - "poolName": "testpool", - "api-version": "2024-07-01", "$filter": "startswith(name, 'po') or (properties/allocationState eq 'Steady' and properties/provisioningStateTransitionTime lt datetime'2017-02-02')", "$select": "properties/allocationState,properties/provisioningStateTransitionTime,properties/currentDedicatedNodes,properties/currentLowPriorityNodes", - "maxResults": "50" + "accountName": "sampleacct", + "api-version": "2024-07-01", + "maxResults": "50", + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Steady", "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 2 + "currentLowPriorityNodes": 2, + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z" } }, { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/pooltest", "name": "pooltest", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/pooltest", "properties": { - "provisioningStateTransitionTime": "2017-08-26T10:22:55.9407275Z", "allocationState": "Resizing", "currentDedicatedNodes": 4, - "currentLowPriorityNodes": 0 + "currentLowPriorityNodes": 0, + "provisioningStateTransitionTime": "2017-08-26T10:22:55.9407275Z" } } ] } } - } + }, + "operationId": "Pool_ListByBatchAccount", + "title": "ListPoolWithFilter" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolStopResize.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolStopResize.json index 65fa363bb6f3..3ba79399eaab 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolStopResize.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolStopResize.json @@ -1,62 +1,63 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "poolName": "testpool", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-28T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Steady", "allocationStateTransitionTime": "2017-08-28T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "Canonical", "offer": "UbuntuServer", + "publisher": "Canonical", "sku": "18.04-LTS", "version": "latest" }, "nodeAgentSkuId": "batch.node.ubuntu 18.04" } }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT10M", + "startTime": "2017-08-28T10:22:55.9407275Z", + "targetDedicatedNodes": 1 + }, "scaleSettings": { "fixedScale": { + "resizeTimeout": "PT15M", "targetDedicatedNodes": 3, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT15M" + "targetLowPriorityNodes": 0 } }, - "resizeOperationStatus": { - "startTime": "2017-08-28T10:22:55.9407275Z", - "targetDedicatedNodes": 1, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT10M" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 0, - "currentLowPriorityNodes": 0 + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_StopResize", + "title": "StopPoolResize" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_EnableAutoScale.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_EnableAutoScale.json index 39f984bdb7f4..f80e48c9573b 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_EnableAutoScale.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_EnableAutoScale.json @@ -1,9 +1,6 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { @@ -13,62 +10,66 @@ } } } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-29T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2017-08-29T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" + "autoScaleRun": { + "evaluationTime": "2017-08-29T10:22:55.9407275Z", + "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" }, + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 12, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2016-Datacenter-SmallDisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64" } }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-29T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2017-08-29T10:22:55.9407275Z", + "targetDedicatedNodes": 34 + }, "scaleSettings": { "autoScale": { - "formula": "$TargetDedicated=34", - "evaluationInterval": "PT15M" + "evaluationInterval": "PT15M", + "formula": "$TargetDedicated=34" } }, - "autoScaleRun": { - "evaluationTime": "2017-08-29T10:22:55.9407275Z", - "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 12, - "currentLowPriorityNodes": 0, - "resizeOperationStatus": { - "startTime": "2017-08-29T10:22:55.9407275Z", - "targetDedicatedNodes": 34, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT15M" - } + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Update", + "title": "UpdatePool - Enable Autoscale" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_OtherProperties.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_OtherProperties.json index 7fd2162825e7..263a78bbf133 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_OtherProperties.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_OtherProperties.json @@ -1,110 +1,63 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { - "metadata": [ - { - "name": "key1", - "value": "value1" - } - ], "applicationPackages": [ { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234" + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234" }, { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_5678", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_5678", "version": "1.0" } ], "certificates": [ { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567", "storeLocation": "LocalMachine", "storeName": "MY" } ], + "metadata": [ + { + "name": "key1", + "value": "value1" + } + ], "targetNodeCommunicationMode": "Simplified" } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-29T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2017-08-29T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" - }, - "deploymentConfiguration": { - "virtualMachineConfiguration": { - "imageReference": { - "publisher": "MicrosoftWindowsServer", - "offer": "WindowsServer", - "sku": "2016-Datacenter-SmallDisk", - "version": "latest" - }, - "nodeAgentSkuId": "batch.node.windows amd64" - } - }, - "scaleSettings": { - "fixedScale": { - "targetDedicatedNodes": 1, - "targetLowPriorityNodes": 0, - "resizeTimeout": "PT8M", - "nodeDeallocationOption": "TaskCompletion" - } - }, - "autoScaleRun": { - "evaluationTime": "2017-08-29T10:22:55.9407275Z", - "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" - }, - "currentDedicatedNodes": 12, - "currentLowPriorityNodes": 0, - "resizeOperationStatus": { - "startTime": "2017-08-29T10:22:55.9407275Z", - "targetDedicatedNodes": 8, - "nodeDeallocationOption": "TaskCompletion", - "resizeTimeout": "PT8M" - }, - "metadata": [ - { - "name": "key1", - "value": "value1" - } - ], "applicationPackages": [ { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234" + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234" }, { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_5678", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_5678", "version": "1.0" } ], + "autoScaleRun": { + "evaluationTime": "2017-08-29T10:22:55.9407275Z", + "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" + }, "certificates": [ { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/certificates/sha1-1234567", "storeLocation": "LocalMachine", "storeName": "MY", "visibility": [ @@ -114,9 +67,57 @@ ] } ], - "targetNodeCommunicationMode": "Simplified" + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 12, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", + "sku": "2016-Datacenter-SmallDisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-29T10:22:55.9407275Z", + "metadata": [ + { + "name": "key1", + "value": "value1" + } + ], + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "startTime": "2017-08-29T10:22:55.9407275Z", + "targetDedicatedNodes": 8 + }, + "scaleSettings": { + "fixedScale": { + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + }, + "targetNodeCommunicationMode": "Simplified", + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Update", + "title": "UpdatePool - Other Properties" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_RemoveStartTask.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_RemoveStartTask.json index 301e0e80eeb7..edd102d73e07 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_RemoveStartTask.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_RemoveStartTask.json @@ -1,70 +1,71 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { "startTask": {} } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-29T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2017-08-29T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" + "autoScaleRun": { + "evaluationTime": "2017-08-29T10:22:55.9407275Z", + "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" }, + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 12, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2016-Datacenter-SmallDisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64" } }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-29T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2017-08-29T10:22:55.9407275Z", + "targetDedicatedNodes": 34 + }, "scaleSettings": { "autoScale": { - "formula": "$TargetDedicated=34", - "evaluationInterval": "PT15M" + "evaluationInterval": "PT15M", + "formula": "$TargetDedicated=34" } }, - "autoScaleRun": { - "evaluationTime": "2017-08-29T10:22:55.9407275Z", - "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 12, - "currentLowPriorityNodes": 0, - "resizeOperationStatus": { - "startTime": "2017-08-29T10:22:55.9407275Z", - "targetDedicatedNodes": 34, - "nodeDeallocationOption": "Requeue", - "resizeTimeout": "PT15M" - } + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Update", + "title": "UpdatePool - Remove Start Task" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_ResizePool.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_ResizePool.json index 2c7cc3b2be08..7bc6628f709d 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_ResizePool.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PoolUpdate_ResizePool.json @@ -1,79 +1,80 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "poolName": "testpool", "api-version": "2024-07-01", "parameters": { "properties": { "scaleSettings": { "fixedScale": { - "targetDedicatedNodes": 5, - "targetLowPriorityNodes": 0, + "nodeDeallocationOption": "TaskCompletion", "resizeTimeout": "PT8M", - "nodeDeallocationOption": "TaskCompletion" + "targetDedicatedNodes": 5, + "targetLowPriorityNodes": 0 } } } - } + }, + "poolName": "testpool", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "name": "testpool", "type": "Microsoft.Batch/batchAccounts/pools", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", "properties": { - "lastModified": "2017-08-29T10:22:55.9407275Z", - "creationTime": "2017-08-28T10:22:55.9407275Z", - "provisioningState": "Succeeded", - "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", "allocationState": "Resizing", "allocationStateTransitionTime": "2017-08-29T10:22:55.9407275Z", - "vmSize": "STANDARD_D4", - "interNodeCommunication": "Disabled", - "taskSlotsPerNode": 1, - "taskSchedulingPolicy": { - "nodeFillType": "Spread" + "autoScaleRun": { + "evaluationTime": "2017-08-29T10:22:55.9407275Z", + "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" }, + "creationTime": "2017-08-28T10:22:55.9407275Z", + "currentDedicatedNodes": 12, + "currentLowPriorityNodes": 0, "deploymentConfiguration": { "virtualMachineConfiguration": { "imageReference": { - "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", + "publisher": "MicrosoftWindowsServer", "sku": "2016-Datacenter-SmallDisk", "version": "latest" }, "nodeAgentSkuId": "batch.node.windows amd64" } }, + "interNodeCommunication": "Disabled", + "lastModified": "2017-08-29T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2017-08-28T10:22:55.9407275Z", + "resizeOperationStatus": { + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "startTime": "2017-08-29T10:22:55.9407275Z", + "targetDedicatedNodes": 8 + }, "scaleSettings": { "fixedScale": { - "targetDedicatedNodes": 1, - "targetLowPriorityNodes": 0, + "nodeDeallocationOption": "TaskCompletion", "resizeTimeout": "PT8M", - "nodeDeallocationOption": "TaskCompletion" + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 } }, - "autoScaleRun": { - "evaluationTime": "2017-08-29T10:22:55.9407275Z", - "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" + "taskSchedulingPolicy": { + "nodeFillType": "Spread" }, - "currentDedicatedNodes": 12, - "currentLowPriorityNodes": 0, - "resizeOperationStatus": { - "startTime": "2017-08-29T10:22:55.9407275Z", - "targetDedicatedNodes": 8, - "nodeDeallocationOption": "TaskCompletion", - "resizeTimeout": "PT8M" - } + "taskSlotsPerNode": 1, + "vmSize": "STANDARD_D4" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } } - } + }, + "operationId": "Pool_Update", + "title": "UpdatePool - Resize Pool" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateBatchAccountCreate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateBatchAccountCreate.json index b726b392fd43..2bcf08e7e1cb 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateBatchAccountCreate.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateBatchAccountCreate.json @@ -1,53 +1,55 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid", "parameters": { "location": "japaneast", "properties": { "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" }, "keyVaultReference": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", "url": "http://sample.vault.azure.net/" }, "publicNetworkAccess": "Disabled" } - } + }, + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { - "202": {}, "200": { "body": { "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "identity": { + "type": "None" + }, "location": "japaneast", "properties": { "accountEndpoint": "sampleacct.japaneast.batch.azure.com", - "provisioningState": "Succeeded", - "poolAllocationMode": "UserSubscription", - "dedicatedCoreQuota": 20, - "lowPriorityCoreQuota": 20, - "poolQuota": 20, "activeJobAndJobScheduleQuota": 20, "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", - "lastKeySync": "2016-03-10T23:48:38.9878479Z" + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" }, + "dedicatedCoreQuota": 20, "keyVaultReference": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", "url": "http://sample.vault.azure.net/" }, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "UserSubscription", + "poolQuota": 20, + "provisioningState": "Succeeded", "publicNetworkAccess": "Disabled" - }, - "identity": { - "type": "None" - }, - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", - "type": "Microsoft.Batch/batchAccounts" + } } - } - } + }, + "202": {} + }, + "operationId": "BatchAccount_Create", + "title": "PrivateBatchAccountCreate" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateBatchAccountGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateBatchAccountGet.json index 0f0fcde04547..c31c12c61f00 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateBatchAccountGet.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateBatchAccountGet.json @@ -1,48 +1,50 @@ { "parameters": { "accountName": "sampleacct", - "resourceGroupName": "default-azurebatch-japaneast", "api-version": "2024-07-01", - "subscriptionId": "subid" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", "location": "japaneast", "properties": { "accountEndpoint": "sampleacct.japaneast.batch.azure.com", - "provisioningState": "Succeeded", - "poolAllocationMode": "BatchService", - "dedicatedCoreQuota": 20, - "lowPriorityCoreQuota": 20, - "poolQuota": 20, "activeJobAndJobScheduleQuota": 20, "autoStorage": { - "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", - "lastKeySync": "2016-03-10T23:48:38.9878479Z" + "lastKeySync": "2016-03-10T23:48:38.9878479Z", + "storageAccountId": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" }, - "publicNetworkAccess": "Disabled", + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolAllocationMode": "BatchService", + "poolQuota": 20, "privateEndpointConnections": [ { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", "name": "testprivateEndpointConnection.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", "properties": { "privateEndpoint": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" }, "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Approved by xyz.abc@company.com" + "description": "Approved by xyz.abc@company.com", + "status": "Approved" } } } - ] - }, - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", - "type": "Microsoft.Batch/batchAccounts" + ], + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + } } } - } + }, + "operationId": "BatchAccount_Get", + "title": "PrivateBatchAccountGet" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionDelete.json index 126c684aff1e..591a971819f2 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionDelete.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionDelete.json @@ -1,17 +1,19 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "privateEndpointConnectionName": "testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0/accountOperationResults/sampleacct-30a022cb-a64f-4fd5-9289-8b38b342e9de?api-version=2024-07-01" + "Location": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0/accountOperationResults/sampleacct-30a022cb-a64f-4fd5-9289-8b38b342e9de?api-version=2024-07-01" } }, "204": {} - } + }, + "operationId": "PrivateEndpointConnection_Delete", + "title": "PrivateEndpointConnectionDelete" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionGet.json index d066ecdbb949..ff88c82ef488 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionGet.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionGet.json @@ -1,31 +1,33 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "privateEndpointConnectionName": "testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", "name": "testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", "properties": { - "provisioningState": "Succeeded", - "privateEndpoint": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" - }, "groupIds": [ "batchAccount" ], + "privateEndpoint": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" + }, "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Approved by xyz.abc@company.com" - } + "description": "Approved by xyz.abc@company.com", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } } - } + }, + "operationId": "PrivateEndpointConnection_Get", + "title": "GetPrivateEndpointConnection" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionUpdate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionUpdate.json index d34318cc3194..de769dfca4b1 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionUpdate.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionUpdate.json @@ -1,49 +1,50 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "privateEndpointConnectionName": "testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", "api-version": "2024-07-01", "parameters": { "properties": { "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Approved by xyz.abc@company.com" + "description": "Approved by xyz.abc@company.com", + "status": "Approved" } } - } + }, + "privateEndpointConnectionName": "testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { - "headers": { - "ETag": "W/\"0x8D4EDFEBFADF4AB\"" - }, "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", "name": "testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections", - "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", "properties": { - "provisioningState": "Succeeded", - "privateEndpoint": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" - }, "groupIds": [ "batchAccount" ], + "privateEndpoint": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" + }, "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Approved by xyz.abc@company.com" - } + "description": "Approved by xyz.abc@company.com", + "status": "Approved" + }, + "provisioningState": "Succeeded" } + }, + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" } }, "202": { "headers": { - "Retry-After": "15", - "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnectionProxyResults/Updating$testprivateEndpointConnection5.24d6b4b5$e65c-4330-bbe9-3a290d62f8e0-8D4EDFF164A11C9?api-version=2024-07-01" + "Location": "https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnectionProxyResults/Updating$testprivateEndpointConnection5.24d6b4b5$e65c-4330-bbe9-3a290d62f8e0-8D4EDFF164A11C9?api-version=2024-07-01", + "Retry-After": "15" } } - } + }, + "operationId": "PrivateEndpointConnection_Update", + "title": "UpdatePrivateEndpointConnection" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionsList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionsList.json index f22309864b92..ef4bfd31fae7 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionsList.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateEndpointConnectionsList.json @@ -1,35 +1,37 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "privateEndpointConnectionName": "testprivateEndpointConnection", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection", "name": "testprivateEndpointConnection", "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection", "properties": { - "provisioningState": "Succeeded", - "privateEndpoint": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" - }, "groupIds": [ "batchAccount" ], + "privateEndpoint": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" + }, "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Approved by xyz.abc@company.com" - } + "description": "Approved by xyz.abc@company.com", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } ] } } - } + }, + "operationId": "PrivateEndpointConnection_ListByBatchAccount", + "title": "ListPrivateEndpointConnections" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateLinkResourceGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateLinkResourceGet.json index 88c8d535b246..b8be7b978f0e 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateLinkResourceGet.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateLinkResourceGet.json @@ -1,17 +1,17 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", + "api-version": "2024-07-01", "privateLinkResourceName": "batchAccount", - "api-version": "2024-07-01" + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateLinkResources/batchAccount", "name": "sampleacct", "type": "Microsoft.Batch/batchAccounts/privateLinkResources", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateLinkResources/batchAccount", "properties": { "groupId": "batchAccount", "requiredMembers": [ @@ -23,5 +23,7 @@ } } } - } + }, + "operationId": "PrivateLinkResource_Get", + "title": "GetPrivateLinkResource" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateLinkResourcesList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateLinkResourcesList.json index a4a4a8abf8af..52e20181b99a 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateLinkResourcesList.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/examples/PrivateLinkResourcesList.json @@ -1,18 +1,18 @@ { "parameters": { - "subscriptionId": "subid", - "resourceGroupName": "default-azurebatch-japaneast", "accountName": "sampleacct", - "api-version": "2024-07-01" + "api-version": "2024-07-01", + "resourceGroupName": "default-azurebatch-japaneast", + "subscriptionId": "12345678-1234-1234-1234-123456789012" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateLinkResources/batchAccount", "name": "batchAccount", "type": "Microsoft.Batch/batchAccounts/privateLinkResources", + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateLinkResources/batchAccount", "properties": { "groupId": "batchAccount", "requiredMembers": [ @@ -26,5 +26,7 @@ ] } } - } + }, + "operationId": "PrivateLinkResource_ListByBatchAccount", + "title": "ListPrivateLinkResource" } diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/BatchManagement.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/openapi.json similarity index 58% rename from specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/BatchManagement.json rename to specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/openapi.json index a66774496e21..333f452955c3 100644 --- a/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/BatchManagement.json +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/openapi.json @@ -2,17 +2,22 @@ "swagger": "2.0", "info": { "title": "BatchManagementClient", + "version": "2024-07-01", "description": "The Batch Management Client.", - "version": "2024-07-01" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, - "host": "management.azure.com", "schemes": [ "https" ], - "consumes": [ + "host": "management.azure.com", + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], "security": [ @@ -25,287 +30,267 @@ "securityDefinitions": { "azure_auth": { "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "description": "Azure Active Directory OAuth2 Flow.", "flow": "implicit", - "description": "Microsoft Entra OAuth 2.0 auth code flow", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "scopes": { "user_impersonation": "impersonate your user account" } } }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "BatchAccounts" + }, + { + "name": "DetectorResponses" + }, + { + "name": "ApplicationPackages" + }, + { + "name": "Applications" + }, + { + "name": "Certificates" + }, + { + "name": "PrivateLinkResources" + }, + { + "name": "PrivateEndpointConnections" + }, + { + "name": "Pools" + }, + { + "name": "NetworkSecurityPerimeterConfigurations" + } + ], "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}": { - "put": { + "/providers/Microsoft.Batch/operations": { + "get": { + "operationId": "Operations_List", "tags": [ - "BatchAccount" + "Operations" ], - "operationId": "BatchAccount_Create", - "x-ms-examples": { - "BatchAccountCreate_Default": { - "$ref": "./examples/BatchAccountCreate_Default.json" - }, - "BatchAccountCreate_BYOS": { - "$ref": "./examples/BatchAccountCreate_BYOS.json" - }, - "PrivateBatchAccountCreate": { - "$ref": "./examples/PrivateBatchAccountCreate.json" - }, - "BatchAccountCreate_SystemAssignedIdentity": { - "$ref": "./examples/BatchAccountCreate_SystemAssignedIdentity.json" - }, - "BatchAccountCreate_UserAssignedIdentity": { - "$ref": "./examples/BatchAccountCreate_UserAssignedIdentity.json" - } - }, - "description": "Creates a new Batch account with the specified parameters. Existing accounts cannot be updated with this API and should instead be updated with the Update Batch Account API.", + "description": "Lists available operations for the Microsoft.Batch provider", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" - }, - { - "name": "accountName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[a-z0-9]+$", - "minLength": 3, - "maxLength": 24, - "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/BatchAccountCreateParameters" - }, - "description": "Additional parameters for account creation." - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the Batch account entity.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/BatchAccount" - } - }, - "202": { - "description": "The operation will be completed asynchronously.", - "headers": { - "Location": { - "description": "The URL of the resource used to check the status of the asynchronous operation.", - "type": "string" - }, - "Retry-After": { - "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that specifies the delay in seconds.", - "type": "integer", - "format": "int32" - } + "$ref": "#/definitions/OperationListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - }, - "patch": { - "tags": [ - "BatchAccount" - ], - "operationId": "BatchAccount_Update", "x-ms-examples": { - "BatchAccountUpdate": { - "$ref": "./examples/BatchAccountUpdate.json" + "OperationsList": { + "$ref": "./examples/OperationsList.json" } }, - "description": "Updates the properties of an existing Batch account.", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/batchAccounts": { + "get": { + "operationId": "BatchAccount_List", + "tags": [ + "BatchAccounts" + ], + "description": "Gets information about the Batch accounts associated with the subscription.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/AccountNameParameter" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/BatchAccountUpdateParameters" - }, - "description": "Additional parameters for account update." - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the Batch account entity.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/BatchAccount" + "$ref": "#/definitions/BatchAccountListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } - } - }, - "delete": { - "tags": [ - "BatchAccount" - ], - "operationId": "BatchAccount_Delete", + }, "x-ms-examples": { - "BatchAccountDelete": { - "$ref": "./examples/BatchAccountDelete.json" + "BatchAccountList": { + "$ref": "./examples/BatchAccountList.json" } }, - "description": "Deletes the specified Batch account.", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/checkNameAvailability": { + "post": { + "operationId": "Location_CheckNameAvailability", + "description": "Checks whether the Batch account name is available in the specified region.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "locationName", + "in": "path", + "description": "The desired region for the name check.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "Properties needed to check the availability of a name.", + "required": true, + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityParameters" + } } ], "responses": { "200": { - "description": "The operation was successful." - }, - "202": { - "description": "The operation will be completed asynchronously.", - "headers": { - "Location": { - "description": "The URL of the resource used to check the status of the asynchronous operation.", - "type": "string" - }, - "Retry-After": { - "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that specifies the delay in seconds.", - "type": "integer", - "format": "int32" - } + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityResult" } }, - "204": { - "description": "NoContent -- account does not exist in the subscription." - }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - }, - "get": { - "tags": [ - "BatchAccount" - ], - "operationId": "BatchAccount_Get", "x-ms-examples": { - "BatchAccountGet": { - "$ref": "./examples/BatchAccountGet.json" + "LocationCheckNameAvailability_AlreadyExists": { + "$ref": "./examples/LocationCheckNameAvailability_AlreadyExists.json" }, - "PrivateBatchAccountGet": { - "$ref": "./examples/PrivateBatchAccountGet.json" + "LocationCheckNameAvailability_Available": { + "$ref": "./examples/LocationCheckNameAvailability_Available.json" } - }, - "description": "Gets information about the specified Batch account.", + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/quotas": { + "get": { + "operationId": "Location_GetQuotas", + "description": "Gets the Batch service quotas for the specified subscription at the given location.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "locationName", + "in": "path", + "description": "The region for which to retrieve Batch service quotas.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the Batch account entity.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/BatchAccount" + "$ref": "#/definitions/BatchLocationQuota" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "LocationGetQuotas": { + "$ref": "./examples/LocationGetQuotas.json" + } } } }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/batchAccounts": { + "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/virtualMachineSkus": { "get": { - "tags": [ - "BatchAccount" - ], - "operationId": "BatchAccount_List", - "x-ms-examples": { - "BatchAccountList": { - "$ref": "./examples/BatchAccountList.json" - } - }, - "description": "Gets information about the Batch accounts associated with the subscription.", + "operationId": "Location_ListSupportedVirtualMachineSkus", + "description": "Gets the list of Batch supported Virtual Machine VM sizes available at the given location.", "parameters": [ { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "locationName", + "in": "path", + "description": "The region for which to retrieve Batch service supported SKUs.", + "required": true, + "type": "string" + }, + { + "name": "maxresults", + "in": "query", + "description": "The maximum number of items to return in the response.", + "required": false, + "type": "integer", + "format": "int32" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "$filter", + "in": "query", + "description": "OData filter expression. Valid properties for filtering are \"familyName\".", + "required": false, + "type": "string" } ], "responses": { "200": { - "description": "The operation was successful. The response contains a list of Batch account entities associated with the subscription.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/BatchAccountListResult" + "$ref": "#/definitions/SupportedSkusResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, + "x-ms-examples": { + "LocationListVirtualMachineSkus": { + "$ref": "./examples/LocationListVirtualMachineSkus.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -313,1307 +298,1489 @@ }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts": { "get": { + "operationId": "BatchAccount_ListByResourceGroup", "tags": [ - "BatchAccount" + "BatchAccounts" ], - "operationId": "BatchAccount_ListByResourceGroup", - "x-ms-examples": { - "BatchAccountListByResourceGroup": { - "$ref": "./examples/BatchAccountListByResourceGroup.json" - } - }, "description": "Gets information about the Batch accounts associated with the specified resource group.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { "200": { - "description": "The operation was successful. The response contains a list of Batch account entities associated with the resource group.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/BatchAccountListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, + "x-ms-examples": { + "BatchAccountListByResourceGroup": { + "$ref": "./examples/BatchAccountListByResourceGroup.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/syncAutoStorageKeys": { - "post": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}": { + "get": { + "operationId": "BatchAccount_Get", "tags": [ - "BatchAccount" + "BatchAccounts" ], - "operationId": "BatchAccount_SynchronizeAutoStorageKeys", - "x-ms-examples": { - "BatchAccountSynchronizeAutoStorageKeys": { - "$ref": "./examples/BatchAccountSynchronizeAutoStorageKeys.json" - } - }, - "description": "Synchronizes access keys for the auto-storage account configured for the specified Batch account, only if storage key authentication is being used.", + "description": "Gets information about the specified Batch account.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" } ], "responses": { - "204": { - "description": "The operation was successful." + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/BatchAccount" + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "BatchAccountGet": { + "$ref": "./examples/BatchAccountGet.json" + }, + "PrivateBatchAccountGet": { + "$ref": "./examples/PrivateBatchAccountGet.json" + } } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/regenerateKeys": { - "post": { + }, + "put": { + "operationId": "BatchAccount_Create", "tags": [ - "BatchAccount" + "BatchAccounts" ], - "operationId": "BatchAccount_RegenerateKey", - "x-ms-examples": { - "BatchAccountRegenerateKey": { - "$ref": "./examples/BatchAccountRegenerateKey.json" - } - }, - "summary": "Regenerates the specified account key for the Batch account.", - "description": "This operation applies only to Batch accounts with allowedAuthenticationModes containing 'SharedKey'. If the Batch account doesn't contain 'SharedKey' in its allowedAuthenticationMode, clients cannot use shared keys to authenticate, and must use another allowedAuthenticationModes instead. In this case, regenerating the keys will fail.", + "description": "Creates a new Batch account with the specified parameters. Existing accounts cannot be updated with this API and should instead be updated with the Update Batch Account API.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/BatchAccountRegenerateKeyParameters" - }, - "description": "The type of key to regenerate." + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "Additional parameters for account creation.", + "required": true, + "schema": { + "$ref": "#/definitions/BatchAccountCreateParameters" + } } ], "responses": { "200": { - "description": "The operation was successful. The response contains the Batch account keys.", + "description": "Resource 'BatchAccount' update operation succeeded", "schema": { - "$ref": "#/definitions/BatchAccountKeys" + "$ref": "#/definitions/BatchAccount" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/listKeys": { - "post": { - "tags": [ - "BatchAccount" - ], - "operationId": "BatchAccount_GetKeys", + }, "x-ms-examples": { - "BatchAccountGetKeys": { - "$ref": "./examples/BatchAccountGetKeys.json" + "BatchAccountCreate_BYOS": { + "$ref": "./examples/BatchAccountCreate_BYOS.json" + }, + "BatchAccountCreate_Default": { + "$ref": "./examples/BatchAccountCreate_Default.json" + }, + "BatchAccountCreate_SystemAssignedIdentity": { + "$ref": "./examples/BatchAccountCreate_SystemAssignedIdentity.json" + }, + "BatchAccountCreate_UserAssignedIdentity": { + "$ref": "./examples/BatchAccountCreate_UserAssignedIdentity.json" + }, + "PrivateBatchAccountCreate": { + "$ref": "./examples/PrivateBatchAccountCreate.json" } }, - "summary": "Gets the account keys for the specified Batch account.", - "description": "This operation applies only to Batch accounts with allowedAuthenticationModes containing 'SharedKey'. If the Batch account doesn't contain 'SharedKey' in its allowedAuthenticationMode, clients cannot use shared keys to authenticate, and must use another allowedAuthenticationModes instead. In this case, getting the keys will fail.", + "x-ms-long-running-operation-options": { + "final-state-via": "location", + "final-state-schema": "#/definitions/BatchAccount" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "BatchAccount_Update", + "tags": [ + "BatchAccounts" + ], + "description": "Updates the properties of an existing Batch account.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "Additional parameters for account update.", + "required": true, + "schema": { + "$ref": "#/definitions/BatchAccountUpdateParameters" + } } ], "responses": { "200": { - "description": "The operation was successful. The response contains the keys of the Batch account.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/BatchAccountKeys" + "$ref": "#/definitions/BatchAccount" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "BatchAccountUpdate": { + "$ref": "./examples/BatchAccountUpdate.json" + } } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions/{versionName}/activate": { - "post": { + }, + "delete": { + "operationId": "BatchAccount_Delete", "tags": [ - "ApplicationPackage" + "BatchAccounts" ], - "operationId": "ApplicationPackage_Activate", - "x-ms-examples": { - "ApplicationPackageActivate": { - "$ref": "./examples/ApplicationPackageActivate.json" - } - }, - "description": "Activates the specified application package. This should be done after the `ApplicationPackage` was created and uploaded. This needs to be done before an `ApplicationPackage` can be used on Pools or Tasks.", + "description": "Deletes the specified Batch account.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ApplicationNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/VersionNameParameter" - }, - { - "name": "parameters", - "in": "body", + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", "required": true, - "schema": { - "$ref": "#/definitions/ActivateApplicationPackageParameters" - }, - "description": "The parameters for the request." - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the application package entity.", - "schema": { - "$ref": "#/definitions/ApplicationPackage" + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, + "204": { + "description": "Resource does not exist." + }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } - } + }, + "x-ms-examples": { + "BatchAccountDelete": { + "$ref": "./examples/BatchAccountDelete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}": { - "put": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications": { + "get": { + "operationId": "Application_List", "tags": [ - "Application" + "Applications" ], - "operationId": "Application_Create", - "x-ms-examples": { - "ApplicationCreate": { - "$ref": "./examples/ApplicationCreate.json" - } - }, - "description": "Adds an application to the specified Batch account.", + "description": "Lists all of the applications in the specified account.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApplicationNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "parameters", - "in": "body", - "required": false, - "schema": { - "$ref": "#/definitions/Application" - }, - "description": "The parameters for the request." + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "maxresults", + "in": "query", + "description": "The maximum number of items to return in the response.", + "required": false, + "type": "integer", + "format": "int32" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the application entity.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/Application" + "$ref": "#/definitions/ListApplicationsResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } - } - }, - "delete": { - "tags": [ - "Application" - ], - "operationId": "Application_Delete", + }, "x-ms-examples": { - "ApplicationDelete": { - "$ref": "./examples/ApplicationDelete.json" + "ApplicationList": { + "$ref": "./examples/ApplicationList.json" } }, - "description": "Deletes an application.", + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}": { + "get": { + "operationId": "Application_Get", + "tags": [ + "Applications" + ], + "description": "Gets information about the specified application.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ApplicationNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "applicationName", + "in": "path", + "description": "The name of the application. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" } ], "responses": { "200": { - "description": "The operation was successful." - }, - "204": { - "description": "The operation was successful." + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Application" + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } - } - }, - "get": { - "tags": [ - "Application" - ], - "operationId": "Application_Get", + }, "x-ms-examples": { "ApplicationGet": { "$ref": "./examples/ApplicationGet.json" } - }, - "description": "Gets information about the specified application.", - "parameters": [ - { - "$ref": "#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/AccountNameParameter" - }, - { - "$ref": "#/parameters/ApplicationNameParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "The operation was successful. The response contains the application entity.", - "schema": { - "$ref": "#/definitions/Application" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/CloudError" - } - } } }, - "patch": { + "put": { + "operationId": "Application_Create", "tags": [ - "Application" + "Applications" ], - "operationId": "Application_Update", - "x-ms-examples": { - "ApplicationUpdate": { - "$ref": "./examples/ApplicationUpdate.json" - } - }, - "description": "Updates settings for the specified application.", + "description": "Adds an application to the specified Batch account.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ApplicationNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "in": "body", + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", "required": true, - "schema": { - "$ref": "#/definitions/Application" - }, - "description": "The parameters for the request." + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "applicationName", + "in": "path", + "description": "The name of the application. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "The parameters for the request.", + "required": false, + "schema": { + "$ref": "#/definitions/Application" + } } ], "responses": { "200": { - "description": "The operation was successful. The response contains the application entity.", + "description": "Resource 'Application' update operation succeeded", "schema": { "$ref": "#/definitions/Application" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "ApplicationCreate": { + "$ref": "./examples/ApplicationCreate.json" + } } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions/{versionName}": { - "put": { + }, + "patch": { + "operationId": "Application_Update", "tags": [ - "ApplicationPackage" + "Applications" ], - "operationId": "ApplicationPackage_Create", - "x-ms-examples": { - "ApplicationPackageCreate": { - "$ref": "./examples/ApplicationPackageCreate.json" - } - }, - "description": "Creates an application package record. The record contains a storageUrl where the package should be uploaded to. Once it is uploaded the `ApplicationPackage` needs to be activated using `ApplicationPackageActive` before it can be used. If the auto storage account was configured to use storage keys, the URL returned will contain a SAS.", + "description": "Updates settings for the specified application.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApplicationNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/VersionNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "applicationName", + "in": "path", + "description": "The name of the application. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" }, { "name": "parameters", "in": "body", - "required": false, + "description": "The parameters for the request.", + "required": true, "schema": { - "$ref": "#/definitions/ApplicationPackage" - }, - "description": "The parameters for the request." + "$ref": "#/definitions/Application" + } } ], "responses": { "200": { - "description": "The operation was successful. The response contains the application package entity.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ApplicationPackage" + "$ref": "#/definitions/Application" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "ApplicationUpdate": { + "$ref": "./examples/ApplicationUpdate.json" + } } }, "delete": { + "operationId": "Application_Delete", "tags": [ - "ApplicationPackage" + "Applications" ], - "operationId": "ApplicationPackage_Delete", - "x-ms-examples": { - "ApplicationPackageDelete": { - "$ref": "./examples/ApplicationPackageDelete.json" - } - }, - "description": "Deletes an application package record and its associated binary file.", + "description": "Deletes an application.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApplicationNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/VersionNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "applicationName", + "in": "path", + "description": "The name of the application. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" } ], "responses": { "200": { - "description": "The operation was successful." + "description": "Resource deleted successfully." }, "204": { - "description": "The operation was successful." + "description": "Resource does not exist." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "ApplicationDelete": { + "$ref": "./examples/ApplicationDelete.json" + } } - }, + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions": { "get": { + "operationId": "ApplicationPackage_List", "tags": [ - "ApplicationPackage" + "ApplicationPackages" ], - "operationId": "ApplicationPackage_Get", - "x-ms-examples": { - "ApplicationPackageGet": { - "$ref": "./examples/ApplicationPackageGet.json" - } - }, - "description": "Gets information about the specified application package.", + "description": "Lists all of the application packages in the specified application.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ApplicationNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/VersionNameParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "applicationName", + "in": "path", + "description": "The name of the application. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "maxresults", + "in": "query", + "description": "The maximum number of items to return in the response.", + "required": false, + "type": "integer", + "format": "int32" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the application package entity.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ApplicationPackage" + "$ref": "#/definitions/ListApplicationPackagesResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "ApplicationPackageList": { + "$ref": "./examples/ApplicationPackageList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions/{versionName}": { "get": { + "operationId": "ApplicationPackage_Get", "tags": [ - "Application" + "ApplicationPackages" ], - "operationId": "Application_List", - "x-ms-examples": { - "ApplicationList": { - "$ref": "./examples/ApplicationList.json" - } - }, - "description": "Lists all of the applications in the specified account.", + "description": "Gets information about the specified application package.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "description": "The maximum number of items to return in the response." + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "applicationName", + "in": "path", + "description": "The name of the application. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "versionName", + "in": "path", + "description": "The version of the application.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-][a-zA-Z0-9_.-]*$" } ], "responses": { "200": { - "description": "The operation was successful. The response contains a list of the application entities associated with the specified account.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ListApplicationsResult" + "$ref": "#/definitions/ApplicationPackage" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" + "x-ms-examples": { + "ApplicationPackageGet": { + "$ref": "./examples/ApplicationPackageGet.json" + } } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions": { - "get": { + }, + "put": { + "operationId": "ApplicationPackage_Create", "tags": [ - "ApplicationPackage" + "ApplicationPackages" ], - "operationId": "ApplicationPackage_List", - "x-ms-examples": { - "ApplicationPackageList": { - "$ref": "./examples/ApplicationPackageList.json" - } - }, - "description": "Lists all of the application packages in the specified application.", + "description": "Creates an application package record. The record contains a storageUrl where the package should be uploaded to. Once it is uploaded the `ApplicationPackage` needs to be activated using `ApplicationPackageActive` before it can be used. If the auto storage account was configured to use storage keys, the URL returned will contain a SAS.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ApplicationNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "description": "The maximum number of items to return in the response." + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" + }, + { + "name": "applicationName", + "in": "path", + "description": "The name of the application. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "versionName", + "in": "path", + "description": "The version of the application.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-][a-zA-Z0-9_.-]*$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "The parameters for the request.", + "required": false, + "schema": { + "$ref": "#/definitions/ApplicationPackage" + } } ], "responses": { "200": { - "description": "The operation was successful. The response contains a list of the application package entities associated with the specified application.", + "description": "Resource 'ApplicationPackage' update operation succeeded", "schema": { - "$ref": "#/definitions/ListApplicationPackagesResult" + "$ref": "#/definitions/ApplicationPackage" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/quotas": { - "get": { - "tags": [ - "Location" - ], - "operationId": "Location_GetQuotas", "x-ms-examples": { - "LocationGetQuotas": { - "$ref": "./examples/LocationGetQuotas.json" + "ApplicationPackageCreate": { + "$ref": "./examples/ApplicationPackageCreate.json" } - }, - "description": "Gets the Batch service quotas for the specified subscription at the given location.", + } + }, + "delete": { + "operationId": "ApplicationPackage_Delete", + "tags": [ + "ApplicationPackages" + ], + "description": "Deletes an application package record and its associated binary file.", "parameters": [ { - "name": "locationName", - "in": "path", - "required": true, - "type": "string", - "description": "The region for which to retrieve Batch service quotas." + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "The operation was successful. The response contains the Batch service quotas for the subscription in the specified location.", - "schema": { - "$ref": "#/definitions/BatchLocationQuota" - } + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/CloudError" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/virtualMachineSkus": { - "get": { - "tags": [ - "Location" - ], - "operationId": "Location_ListSupportedVirtualMachineSkus", - "x-ms-examples": { - "LocationListVirtualMachineSkus": { - "$ref": "./examples/LocationListVirtualMachineSkus.json" - } - }, - "description": "Gets the list of Batch supported Virtual Machine VM sizes available at the given location.", - "parameters": [ { - "name": "locationName", + "name": "accountName", "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", "required": true, "type": "string", - "description": "The region for which to retrieve Batch service supported SKUs." - }, - { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "description": "The maximum number of items to return in the response." + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "name": "$filter", - "in": "query", - "required": false, + "name": "applicationName", + "in": "path", + "description": "The name of the application. This must be unique within the account.", + "required": true, "type": "string", - "description": "OData filter expression. Valid properties for filtering are \"familyName\"." - }, - { - "$ref": "#/parameters/ApiVersionParameter" + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "versionName", + "in": "path", + "description": "The version of the application.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-][a-zA-Z0-9_.-]*$" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the Batch service supported virtual machine vm sizes for the subscription in the specified location.", - "schema": { - "$ref": "#/definitions/SupportedSkusResult" - } + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" + "x-ms-examples": { + "ApplicationPackageDelete": { + "$ref": "./examples/ApplicationPackageDelete.json" + } } } }, - "/providers/Microsoft.Batch/operations": { - "get": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions/{versionName}/activate": { + "post": { + "operationId": "ApplicationPackage_Activate", "tags": [ - "Operations" + "ApplicationPackages" ], - "operationId": "Operations_List", - "x-ms-examples": { - "OperationsList": { - "$ref": "./examples/OperationsList.json" - } - }, - "description": "Lists available operations for the Microsoft.Batch provider", + "description": "Activates the specified application package. This should be done after the `ApplicationPackage` was created and uploaded. This needs to be done before an `ApplicationPackage` can be used on Pools or Tasks.", "parameters": [ { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "The operation was successful. The response contains the list of available operations.", - "schema": { - "$ref": "#/definitions/OperationListResult" - } + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/CloudError" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/checkNameAvailability": { - "post": { - "operationId": "Location_CheckNameAvailability", - "description": "Checks whether the Batch account name is available in the specified region.", - "x-ms-examples": { - "LocationCheckNameAvailability_Available": { - "$ref": "./examples/LocationCheckNameAvailability_Available.json" + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, - "LocationCheckNameAvailability_AlreadyExists": { - "$ref": "./examples/LocationCheckNameAvailability_AlreadyExists.json" - } - }, - "parameters": [ { - "name": "locationName", + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", "required": true, "type": "string", - "description": "The desired region for the name check." + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "applicationName", + "in": "path", + "description": "The name of the application. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "versionName", + "in": "path", + "description": "The version of the application.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-][a-zA-Z0-9_.-]*$" }, { "name": "parameters", "in": "body", + "description": "The parameters for the request.", "required": true, "schema": { - "$ref": "#/definitions/CheckNameAvailabilityParameters" - }, - "description": "Properties needed to check the availability of a name." + "$ref": "#/definitions/ActivateApplicationPackageParameters" + } } ], "responses": { "200": { - "description": "Success. Returns details about whether a Batch account name is available.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/CheckNameAvailabilityResult" + "$ref": "#/definitions/ApplicationPackage" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "ApplicationPackageActivate": { + "$ref": "./examples/ApplicationPackageActivate.json" + } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/certificates": { "get": { + "operationId": "Certificate_ListByBatchAccount", "tags": [ - "Certificate" + "Certificates" ], - "deprecated": true, - "operationId": "Certificate_ListByBatchAccount", "summary": "Lists all of the certificates in the specified account.", "description": "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.", - "x-ms-examples": { - "ListCertificates": { - "$ref": "./examples/CertificateList.json" - }, - "ListCertificates - Filter and Select": { - "$ref": "./examples/CertificateListWithFilter.json" - } - }, "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { "name": "maxresults", "in": "query", + "description": "The maximum number of items to return in the response.", "required": false, "type": "integer", - "format": "int32", - "description": "The maximum number of items to return in the response." + "format": "int32" }, { "name": "$select", "in": "query", + "description": "Comma separated list of properties that should be returned. e.g. \"properties/provisioningState\". Only top level properties under properties/ are valid for selection.", "required": false, - "type": "string", - "description": "Comma separated list of properties that should be returned. e.g. \"properties/provisioningState\". Only top level properties under properties/ are valid for selection." + "type": "string" }, { "name": "$filter", "in": "query", + "description": "OData filter expression. Valid properties for filtering are \"properties/provisioningState\", \"properties/provisioningStateTransitionTime\", \"name\".", "required": false, - "type": "string", - "description": "OData filter expression. Valid properties for filtering are \"properties/provisioningState\", \"properties/provisioningStateTransitionTime\", \"name\"." - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" + "type": "string" } ], "responses": { "200": { - "description": "The operation was successful. The response contains a list of certificates associated with the account.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ListCertificatesResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, + "deprecated": true, + "x-ms-examples": { + "ListCertificates": { + "$ref": "./examples/CertificateList.json" + }, + "ListCertificates - Filter and Select": { + "$ref": "./examples/CertificateListWithFilter.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/certificates/{certificateName}": { - "put": { + "get": { + "operationId": "Certificate_Get", "tags": [ - "Certificate" + "Certificates" ], - "deprecated": true, - "operationId": "Certificate_Create", - "summary": "Creates a new certificate inside the specified account.", + "summary": "Gets information about the specified certificate.", "description": "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.", - "x-ms-examples": { - "CreateCertificate - Minimal Pfx": { - "$ref": "./examples/CertificateCreate_Minimal.json" - }, - "CreateCertificate - Minimal Cer": { - "$ref": "./examples/CertificateCreate_MinimalCer.json" - }, - "CreateCertificate - Full": { - "$ref": "./examples/CertificateCreate_Full.json" - } - }, "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/CertificateNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "in": "body", + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", "required": true, - "schema": { - "$ref": "#/definitions/CertificateCreateOrUpdateParameters" - }, - "description": "Additional parameters for certificate creation." - }, - { - "name": "If-Match", - "in": "header", - "required": false, "type": "string", - "description": "The entity state (ETag) version of the certificate to update. A value of \"*\" can be used to apply the operation only if the certificate already exists. If omitted, this operation will always be applied." + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "name": "If-None-Match", - "in": "header", - "required": false, + "name": "certificateName", + "in": "path", + "description": "The identifier for the certificate. This must be made up of algorithm and thumbprint separated by a dash, and must match the certificate data in the request. For example SHA1-a3d1c5.", + "required": true, "type": "string", - "description": "Set to '*' to allow a new certificate to be created, but to prevent updating an existing certificate. Other values will be ignored." - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" + "minLength": 5, + "maxLength": 45, + "pattern": "^[\\w]+-[\\w]+$" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the certificate entity.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Certificate" }, "headers": { "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "deprecated": true, + "x-ms-examples": { + "Get Certificate": { + "$ref": "./examples/CertificateGet.json" + }, + "Get Certificate with Deletion Error": { + "$ref": "./examples/CertificateGetWithDeletionError.json" + } } }, - "patch": { + "put": { + "operationId": "Certificate_Create", "tags": [ - "Certificate" + "Certificates" ], - "deprecated": true, - "operationId": "Certificate_Update", - "summary": "Updates the properties of an existing certificate.", + "summary": "Creates a new certificate inside the specified account.", "description": "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.", - "x-ms-examples": { - "UpdateCertificate": { - "$ref": "./examples/CertificateUpdate.json" - } - }, "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/CertificateNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "in": "body", + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", "required": true, - "schema": { - "$ref": "#/definitions/CertificateCreateOrUpdateParameters" - }, - "description": "Certificate entity to update." - }, - { - "name": "If-Match", - "in": "header", - "required": false, "type": "string", - "description": "The entity state (ETag) version of the certificate to update. This value can be omitted or set to \"*\" to apply the operation unconditionally." + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "certificateName", + "in": "path", + "description": "The identifier for the certificate. This must be made up of algorithm and thumbprint separated by a dash, and must match the certificate data in the request. For example SHA1-a3d1c5.", + "required": true, + "type": "string", + "minLength": 5, + "maxLength": 45, + "pattern": "^[\\w]+-[\\w]+$" + }, + { + "name": "If-Match", + "in": "header", + "description": "The entity state (ETag) version of the certificate to update. A value of \"*\" can be used to apply the operation only if the certificate already exists. If omitted, this operation will always be applied.", + "required": false, + "type": "string" + }, + { + "name": "If-None-Match", + "in": "header", + "description": "Set to '*' to allow a new certificate to be created, but to prevent updating an existing certificate. Other values will be ignored.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "Additional parameters for certificate creation.", + "required": true, + "schema": { + "$ref": "#/definitions/CertificateCreateOrUpdateParameters" + } } ], "responses": { "200": { - "description": "The operation was successful. The response contains the certificate entity.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Certificate" }, "headers": { "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "deprecated": true, + "x-ms-examples": { + "CreateCertificate - Full": { + "$ref": "./examples/CertificateCreate_Full.json" + }, + "CreateCertificate - Minimal Cer": { + "$ref": "./examples/CertificateCreate_MinimalCer.json" + }, + "CreateCertificate - Minimal Pfx": { + "$ref": "./examples/CertificateCreate_Minimal.json" + } } }, - "delete": { + "patch": { + "operationId": "Certificate_Update", "tags": [ - "Certificate" + "Certificates" ], - "deprecated": true, - "operationId": "Certificate_Delete", - "summary": "Deletes the specified certificate.", + "summary": "Updates the properties of an existing certificate.", "description": "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.", - "x-ms-examples": { - "CertificateDelete": { - "$ref": "./examples/CertificateDelete.json" - } - }, "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/CertificateNameParameter" + "name": "certificateName", + "in": "path", + "description": "The identifier for the certificate. This must be made up of algorithm and thumbprint separated by a dash, and must match the certificate data in the request. For example SHA1-a3d1c5.", + "required": true, + "type": "string", + "minLength": 5, + "maxLength": 45, + "pattern": "^[\\w]+-[\\w]+$" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "If-Match", + "in": "header", + "description": "The entity state (ETag) version of the certificate to update. This value can be omitted or set to \"*\" to apply the operation unconditionally.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "Certificate entity to update.", + "required": true, + "schema": { + "$ref": "#/definitions/CertificateCreateOrUpdateParameters" + } } ], "responses": { "200": { - "description": "The operation was successful." - }, - "202": { - "description": "The operation will be completed asynchronously.", + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Certificate" + }, "headers": { - "Location": { - "description": "The URL of the resource used to check the status of the asynchronous operation.", - "type": "string" - }, - "Retry-After": { - "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that represents the seconds.", - "type": "integer", - "format": "int32" + "ETag": { + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." } } }, - "204": { - "description": "The operation was successful." - }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" + "deprecated": true, + "x-ms-examples": { + "UpdateCertificate": { + "$ref": "./examples/CertificateUpdate.json" + } } }, - "get": { + "delete": { + "operationId": "Certificate_Delete", "tags": [ - "Certificate" + "Certificates" ], - "deprecated": true, - "operationId": "Certificate_Get", - "summary": "Gets information about the specified certificate.", + "summary": "Deletes the specified certificate.", "description": "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.", - "x-ms-examples": { - "Get Certificate": { - "$ref": "./examples/CertificateGet.json" - }, - "Get Certificate with Deletion Error": { - "$ref": "./examples/CertificateGetWithDeletionError.json" - } - }, "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/CertificateNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "certificateName", + "in": "path", + "description": "The identifier for the certificate. This must be made up of algorithm and thumbprint separated by a dash, and must match the certificate data in the request. For example SHA1-a3d1c5.", + "required": true, + "type": "string", + "minLength": 5, + "maxLength": 45, + "pattern": "^[\\w]+-[\\w]+$" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the certificate entity.", - "schema": { - "$ref": "#/definitions/Certificate" - }, + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", "headers": { - "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, + "204": { + "description": "Resource does not exist." + }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } - } + }, + "deprecated": true, + "x-ms-examples": { + "CertificateDelete": { + "$ref": "./examples/CertificateDelete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/certificates/{certificateName}/cancelDelete": { "post": { + "operationId": "Certificate_CancelDeletion", "tags": [ - "Certificate" + "Certificates" ], - "deprecated": true, - "operationId": "Certificate_CancelDeletion", "summary": "Cancels a failed deletion of a certificate from the specified account.", "description": "If you try to delete a certificate that is being used by a pool or compute node, the status of the certificate changes to deleteFailed. If you decide that you want to continue using the certificate, you can use this operation to set the status of the certificate back to active. If you intend to delete the certificate, you do not need to run this operation after the deletion failed. You must make sure that the certificate is not being used by any resources, and then you can try again to delete the certificate.\n\nWarning: 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.", - "x-ms-examples": { - "CertificateCancelDeletion": { - "$ref": "./examples/CertificateCancelDeletion.json" - } - }, "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/CertificateNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "certificateName", + "in": "path", + "description": "The identifier for the certificate. This must be made up of algorithm and thumbprint separated by a dash, and must match the certificate data in the request. For example SHA1-a3d1c5.", + "required": true, + "type": "string", + "minLength": 5, + "maxLength": 45, + "pattern": "^[\\w]+-[\\w]+$" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the certificate entity.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/Certificate" }, "headers": { "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "deprecated": true, + "x-ms-examples": { + "CertificateCancelDeletion": { + "$ref": "./examples/CertificateCancelDeletion.json" + } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/detectors": { "get": { "operationId": "BatchAccount_ListDetectors", + "tags": [ + "DetectorResponses" + ], "description": "Gets information about the detectors available for a given Batch account.", - "x-ms-examples": { - "ListDetectors": { - "$ref": "./examples/DetectorList.json" - } - }, "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" } ], "responses": { "200": { - "description": "The operation was successful. The response contains a list of detectors associated with a Batch account.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/DetectorListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, + "x-ms-examples": { + "ListDetectors": { + "$ref": "./examples/DetectorList.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -1622,2881 +1789,3125 @@ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/detectors/{detectorId}": { "get": { "operationId": "BatchAccount_GetDetector", + "tags": [ + "DetectorResponses" + ], "description": "Gets information about the given detector for a given Batch account.", - "x-ms-examples": { - "GetDetector": { - "$ref": "./examples/DetectorGet.json" - } - }, "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/DetectorIdParameter" + "name": "detectorId", + "in": "path", + "description": "The name of the detector.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "The operation was successful. The response contains information about the given detector associated with a Batch account.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/DetectorResponse" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "GetDetector": { + "$ref": "./examples/DetectorGet.json" + } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateLinkResources": { - "get": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/listKeys": { + "post": { + "operationId": "BatchAccount_GetKeys", "tags": [ - "PrivateLinkResource" + "BatchAccounts" ], - "operationId": "PrivateLinkResource_ListByBatchAccount", - "description": "Lists all of the private link resources in the specified account.", - "x-ms-examples": { - "ListPrivateLinkResource": { - "$ref": "./examples/PrivateLinkResourcesList.json" - } - }, + "summary": "Gets the account keys for the specified Batch account.", + "description": "This operation applies only to Batch accounts with allowedAuthenticationModes containing 'SharedKey'. If the Batch account doesn't contain 'SharedKey' in its allowedAuthenticationMode, clients cannot use shared keys to authenticate, and must use another allowedAuthenticationModes instead. In this case, getting the keys will fail.", "parameters": [ { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "description": "The maximum number of items to return in the response." + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" } ], "responses": { "200": { - "description": "The operation was successful. The response contains a list of private link resources associated with the account.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ListPrivateLinkResourcesResult" + "$ref": "#/definitions/BatchAccountKeys" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" + "x-ms-examples": { + "BatchAccountGetKeys": { + "$ref": "./examples/BatchAccountGetKeys.json" + } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateLinkResources/{privateLinkResourceName}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations": { "get": { + "operationId": "NetworkSecurityPerimeter_ListConfigurations", "tags": [ - "PrivateLinkResource" + "NetworkSecurityPerimeterConfigurations" ], - "operationId": "PrivateLinkResource_Get", - "description": "Gets information about the specified private link resource.", - "x-ms-examples": { - "GetPrivateLinkResource": { - "$ref": "./examples/PrivateLinkResourceGet.json" - } - }, + "description": "Lists all of the NSP configurations in the specified account.", "parameters": [ { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/PrivateLinkResourceNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the private link resource.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/PrivateLinkResource" + "$ref": "../../../../../common-types/resource-management/v5/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfigurationListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "ListNspConfigurations": { + "$ref": "./examples/NspConfigurationsList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateEndpointConnections": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}": { "get": { + "operationId": "NetworkSecurityPerimeter_GetConfiguration", "tags": [ - "PrivateEndpointConnection" + "NetworkSecurityPerimeterConfigurations" ], - "operationId": "PrivateEndpointConnection_ListByBatchAccount", - "description": "Lists all of the private endpoint connections in the specified account.", - "x-ms-examples": { - "ListPrivateEndpointConnections": { - "$ref": "./examples/PrivateEndpointConnectionsList.json" - } - }, + "description": "Gets information about the specified NSP configuration.", "parameters": [ { - "$ref": "#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "description": "The maximum number of items to return in the response." + "name": "networkSecurityPerimeterConfigurationName", + "in": "path", + "description": "The name for a network security perimeter configuration", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 512 } ], "responses": { "200": { - "description": "The operation was successful. The response contains a list of private link resources associated with the account.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/ListPrivateEndpointConnectionsResult" + "$ref": "../../../../../common-types/resource-management/v5/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfiguration" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}": { - "get": { - "tags": [ - "PrivateEndpointConnection" - ], - "operationId": "PrivateEndpointConnection_Get", - "description": "Gets information about the specified private endpoint connection.", "x-ms-examples": { - "GetPrivateEndpointConnection": { - "$ref": "./examples/PrivateEndpointConnectionGet.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/AccountNameParameter" - }, - { - "$ref": "#/parameters/PrivateEndpointConnectionNameParameter" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "The operation was successful. The response contains the private endpoint connection.", - "schema": { - "$ref": "#/definitions/PrivateEndpointConnection" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/CloudError" - } + "GetNspConfiguration": { + "$ref": "./examples/NspConfigurationGet.json" } } - }, - "patch": { + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}/reconcile": { + "post": { + "operationId": "NetworkSecurityPerimeter_ReconcileConfiguration", "tags": [ - "PrivateEndpointConnection" + "NetworkSecurityPerimeterConfigurations" ], - "operationId": "PrivateEndpointConnection_Update", - "description": "Updates the properties of an existing private endpoint connection.", - "x-ms-examples": { - "UpdatePrivateEndpointConnection": { - "$ref": "./examples/PrivateEndpointConnectionUpdate.json" - } - }, + "description": "Reconciles the specified NSP configuration.", "parameters": [ { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/PrivateEndpointConnectionNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "in": "body", + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", "required": true, - "schema": { - "$ref": "#/definitions/PrivateEndpointConnection" - }, - "description": "PrivateEndpointConnection properties that should be updated. Properties that are supplied will be updated, any property not supplied will be unchanged." + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "name": "If-Match", - "in": "header", - "required": false, + "name": "networkSecurityPerimeterConfigurationName", + "in": "path", + "description": "The name for a network security perimeter configuration", + "required": true, "type": "string", - "description": "The state (ETag) version of the private endpoint connection to update. This value can be omitted or set to \"*\" to apply the operation unconditionally." + "minLength": 1, + "maxLength": 512 } ], "responses": { - "200": { - "description": "The operation was successful. The response contains the PrivateEndpointConnection.", - "schema": { - "$ref": "#/definitions/PrivateEndpointConnection" - } - }, "202": { - "description": "The operation was accepted and will be performed in the background.", + "description": "Resource operation accepted.", "headers": { "Location": { - "description": "The URL of the resource used to check the status of the asynchronous operation.", - "type": "string" + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." }, "Retry-After": { - "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that represents the seconds.", "type": "integer", - "format": "int32" + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - }, - "delete": { - "tags": [ - "PrivateEndpointConnection" - ], - "operationId": "PrivateEndpointConnection_Delete", "x-ms-examples": { - "PrivateEndpointConnectionDelete": { - "$ref": "./examples/PrivateEndpointConnectionDelete.json" + "ReconcileNspConfiguration": { + "$ref": "./examples/NspConfigurationReconcile.json" } }, - "description": "Deletes the specified private endpoint connection.", + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/outboundNetworkDependenciesEndpoints": { + "get": { + "operationId": "BatchAccount_ListOutboundNetworkDependenciesEndpoints", + "tags": [ + "BatchAccounts" + ], + "description": "Lists the endpoints that a Batch Compute Node under this Batch Account may call as part of Batch service administration. If you are deploying a Pool inside of a virtual network that you specify, you must make sure your network allows outbound access to these endpoints. Failure to allow access to these endpoints may cause Batch to mark the affected nodes as unusable. For more information about creating a pool inside of a virtual network, see https://learn.microsoft.com/azure/batch/batch-virtual-network.", "parameters": [ { - "$ref": "#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/PrivateEndpointConnectionNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" } ], "responses": { - "202": { - "description": "The operation will be completed asynchronously.", - "headers": { - "Location": { - "description": "The URL of the resource used to check the status of the asynchronous operation.", - "type": "string" - }, - "Retry-After": { - "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that specifies the delay in seconds.", - "type": "integer", - "format": "int32" - } + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OutboundEnvironmentEndpointCollection" } }, - "204": { - "description": "The operation was successful." - }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" + "x-ms-examples": { + "ListOutboundNetworkDependencies": { + "$ref": "./examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools": { "get": { + "operationId": "Pool_ListByBatchAccount", "tags": [ - "Pool" + "Pools" ], - "operationId": "Pool_ListByBatchAccount", "description": "Lists all of the pools in the specified account.", - "x-ms-examples": { - "ListPool": { - "$ref": "./examples/PoolList.json" - }, - "ListPoolWithFilter": { - "$ref": "./examples/PoolListWithFilter.json" - } - }, "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { "name": "maxresults", "in": "query", + "description": "The maximum number of items to return in the response.", "required": false, "type": "integer", - "format": "int32", - "description": "The maximum number of items to return in the response." + "format": "int32" }, { "name": "$select", "in": "query", + "description": "Comma separated list of properties that should be returned. e.g. \"properties/provisioningState\". Only top level properties under properties/ are valid for selection.", "required": false, - "type": "string", - "description": "Comma separated list of properties that should be returned. e.g. \"properties/provisioningState\". Only top level properties under properties/ are valid for selection." + "type": "string" }, { "name": "$filter", "in": "query", + "description": "OData filter expression. Valid properties for filtering are:\n\nname\nproperties/allocationState\nproperties/allocationStateTransitionTime\nproperties/creationTime\nproperties/provisioningState\nproperties/provisioningStateTransitionTime\nproperties/lastModified\nproperties/vmSize\nproperties/interNodeCommunication\nproperties/scaleSettings/autoScale\nproperties/scaleSettings/fixedScale", "required": false, - "type": "string", - "description": "OData filter expression. Valid properties for filtering are:\n\n name\n properties/allocationState\n properties/allocationStateTransitionTime\n properties/creationTime\n properties/provisioningState\n properties/provisioningStateTransitionTime\n properties/lastModified\n properties/vmSize\n properties/interNodeCommunication\n properties/scaleSettings/autoScale\n properties/scaleSettings/fixedScale" - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" + "type": "string" } ], "responses": { "200": { - "description": "The operation was successful. The response contains a list of certificates associated with the account.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ListPoolsResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, + "x-ms-examples": { + "ListPool": { + "$ref": "./examples/PoolList.json" + }, + "ListPoolWithFilter": { + "$ref": "./examples/PoolListWithFilter.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}": { - "put": { + "get": { + "operationId": "Pool_Get", "tags": [ - "Pool" + "Pools" ], - "operationId": "Pool_Create", - "description": "Creates a new pool inside the specified account.", - "x-ms-examples": { - "CreatePool - Minimal VirtualMachineConfiguration": { - "$ref": "./examples/PoolCreate_MinimalVirtualMachineConfiguration.json" - }, - "CreatePool - ResourceTags": { - "$ref": "./examples/PoolCreate_ResourceTags.json" - }, - "CreatePool - Custom Image": { - "$ref": "./examples/PoolCreate_SharedImageGallery.json" - }, - "CreatePool - Public IPs": { - "$ref": "./examples/PoolCreate_PublicIPs.json" - }, - "CreatePool - Full VirtualMachineConfiguration": { - "$ref": "./examples/PoolCreate_VirtualMachineConfiguration.json" - }, - "CreatePool - No public IP": { - "$ref": "./examples/PoolCreate_NoPublicIPAddresses.json" - }, - "CreatePool - UserAssignedIdentities": { - "$ref": "./examples/PoolCreate_UserAssignedIdentities.json" - }, - "CreatePool - VirtualMachineConfiguration Extensions": { - "$ref": "./examples/PoolCreate_VirtualMachineConfiguration_Extensions.json" - }, - "CreatePool - accelerated networking": { - "$ref": "./examples/PoolCreate_AcceleratedNetworking.json" - }, - "CreatePool - SecurityProfile": { - "$ref": "./examples/PoolCreate_SecurityProfile.json" - }, - "CreatePool - UpgradePolicy": { - "$ref": "./examples/PoolCreate_UpgradePolicy.json" - }, - "CreatePool - VirtualMachineConfiguration ServiceArtifactReference": { - "$ref": "./examples/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json" - }, - "CreatePool - VirtualMachineConfiguration OSDisk": { - "$ref": "./examples/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json" - }, - "CreatePool - Tags": { - "$ref": "./examples/PoolCreate_Tags.json" - } - }, + "description": "Gets information about the specified pool.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/PoolNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "in": "body", + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", "required": true, - "schema": { - "$ref": "#/definitions/Pool" - }, - "description": "Additional parameters for pool creation." - }, - { - "name": "If-Match", - "in": "header", - "required": false, "type": "string", - "description": "The entity state (ETag) version of the pool to update. A value of \"*\" can be used to apply the operation only if the pool already exists. If omitted, this operation will always be applied." + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "name": "If-None-Match", - "in": "header", - "required": false, + "name": "poolName", + "in": "path", + "description": "The pool name. This must be unique within the account.", + "required": true, "type": "string", - "description": "Set to '*' to allow a new pool to be created, but to prevent updating an existing pool. Other values will be ignored." - }, - { - "$ref": "#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/SubscriptionIdParameter" + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the pool entity.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Pool" }, "headers": { "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } - } - }, - "patch": { - "tags": [ - "Pool" - ], - "operationId": "Pool_Update", - "description": "Updates the properties of an existing pool.", + }, "x-ms-examples": { - "UpdatePool - Resize Pool": { - "$ref": "./examples/PoolUpdate_ResizePool.json" + "GetPool": { + "$ref": "./examples/PoolGet.json" }, - "UpdatePool - Enable Autoscale": { - "$ref": "./examples/PoolUpdate_EnableAutoScale.json" + "GetPool - AcceleratedNetworking": { + "$ref": "./examples/PoolGet_AcceleratedNetworking.json" }, - "UpdatePool - Remove Start Task": { - "$ref": "./examples/PoolUpdate_RemoveStartTask.json" + "GetPool - SecurityProfile": { + "$ref": "./examples/PoolGet_SecurityProfile.json" }, - "UpdatePool - Other Properties": { - "$ref": "./examples/PoolUpdate_OtherProperties.json" + "GetPool - UpgradePolicy": { + "$ref": "./examples/PoolGet_UpgradePolicy.json" + }, + "GetPool - VirtualMachineConfiguration Extensions": { + "$ref": "./examples/PoolGet_VirtualMachineConfiguration_Extensions.json" + }, + "GetPool - VirtualMachineConfiguration OSDisk": { + "$ref": "./examples/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json" + }, + "GetPool - VirtualMachineConfiguration ServiceArtifactReference": { + "$ref": "./examples/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json" } - }, + } + }, + "put": { + "operationId": "Pool_Create", + "tags": [ + "Pools" + ], + "description": "Creates a new pool inside the specified account.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/PoolNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "parameters", - "in": "body", + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", "required": true, - "schema": { - "$ref": "#/definitions/Pool" - }, - "description": "Pool properties that should be updated. Properties that are supplied will be updated, any property not supplied will be unchanged." + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" + }, + { + "name": "poolName", + "in": "path", + "description": "The pool name. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" }, { "name": "If-Match", "in": "header", + "description": "The entity state (ETag) version of the pool to update. A value of \"*\" can be used to apply the operation only if the pool already exists. If omitted, this operation will always be applied.", "required": false, - "type": "string", - "description": "The entity state (ETag) version of the pool to update. This value can be omitted or set to \"*\" to apply the operation unconditionally." + "type": "string" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "If-None-Match", + "in": "header", + "description": "Set to '*' to allow a new pool to be created, but to prevent updating an existing pool. Other values will be ignored.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "Additional parameters for pool creation.", + "required": true, + "schema": { + "$ref": "#/definitions/Pool" + } } ], "responses": { "200": { - "description": "The operation was successful. The response contains the pool entity.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/Pool" }, "headers": { "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "CreatePool - Custom Image": { + "$ref": "./examples/PoolCreate_SharedImageGallery.json" + }, + "CreatePool - Full VirtualMachineConfiguration": { + "$ref": "./examples/PoolCreate_VirtualMachineConfiguration.json" + }, + "CreatePool - Minimal VirtualMachineConfiguration": { + "$ref": "./examples/PoolCreate_MinimalVirtualMachineConfiguration.json" + }, + "CreatePool - No public IP": { + "$ref": "./examples/PoolCreate_NoPublicIPAddresses.json" + }, + "CreatePool - Public IPs": { + "$ref": "./examples/PoolCreate_PublicIPs.json" + }, + "CreatePool - ResourceTags": { + "$ref": "./examples/PoolCreate_ResourceTags.json" + }, + "CreatePool - SecurityProfile": { + "$ref": "./examples/PoolCreate_SecurityProfile.json" + }, + "CreatePool - Tags": { + "$ref": "./examples/PoolCreate_Tags.json" + }, + "CreatePool - UpgradePolicy": { + "$ref": "./examples/PoolCreate_UpgradePolicy.json" + }, + "CreatePool - UserAssignedIdentities": { + "$ref": "./examples/PoolCreate_UserAssignedIdentities.json" + }, + "CreatePool - VirtualMachineConfiguration Extensions": { + "$ref": "./examples/PoolCreate_VirtualMachineConfiguration_Extensions.json" + }, + "CreatePool - VirtualMachineConfiguration OSDisk": { + "$ref": "./examples/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json" + }, + "CreatePool - VirtualMachineConfiguration ServiceArtifactReference": { + "$ref": "./examples/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json" + }, + "CreatePool - accelerated networking": { + "$ref": "./examples/PoolCreate_AcceleratedNetworking.json" + } } }, - "delete": { + "patch": { + "operationId": "Pool_Update", "tags": [ - "Pool" + "Pools" ], - "operationId": "Pool_Delete", - "description": "Deletes the specified pool.", - "x-ms-examples": { - "DeletePool": { - "$ref": "./examples/PoolDelete.json" - } - }, + "description": "Updates the properties of an existing pool.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/PoolNameParameter" + "name": "poolName", + "in": "path", + "description": "The pool name. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "If-Match", + "in": "header", + "description": "The entity state (ETag) version of the pool to update. This value can be omitted or set to \"*\" to apply the operation unconditionally.", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "parameters", + "in": "body", + "description": "Pool properties that should be updated. Properties that are supplied will be updated, any property not supplied will be unchanged.", + "required": true, + "schema": { + "$ref": "#/definitions/Pool" + } } ], "responses": { "200": { - "description": "The operation was successful." - }, - "202": { - "description": "The operation will be completed asynchronously.", + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Pool" + }, "headers": { - "Location": { - "description": "The URL of the resource used to check the status of the asynchronous operation.", - "type": "string" - }, - "Retry-After": { - "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that represents the seconds.", - "type": "integer", - "format": "int32" + "ETag": { + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." } } }, - "204": { - "description": "The operation was successful." - }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "location" - } - }, - "get": { - "tags": [ - "Pool" - ], - "operationId": "Pool_Get", - "description": "Gets information about the specified pool.", "x-ms-examples": { - "GetPool": { - "$ref": "./examples/PoolGet.json" - }, - "GetPool - VirtualMachineConfiguration Extensions": { - "$ref": "./examples/PoolGet_VirtualMachineConfiguration_Extensions.json" - }, - "GetPool - AcceleratedNetworking": { - "$ref": "./examples/PoolGet_AcceleratedNetworking.json" - }, - "GetPool - SecurityProfile": { - "$ref": "./examples/PoolGet_SecurityProfile.json" + "UpdatePool - Enable Autoscale": { + "$ref": "./examples/PoolUpdate_EnableAutoScale.json" }, - "GetPool - UpgradePolicy": { - "$ref": "./examples/PoolGet_UpgradePolicy.json" + "UpdatePool - Other Properties": { + "$ref": "./examples/PoolUpdate_OtherProperties.json" }, - "GetPool - VirtualMachineConfiguration ServiceArtifactReference": { - "$ref": "./examples/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json" + "UpdatePool - Remove Start Task": { + "$ref": "./examples/PoolUpdate_RemoveStartTask.json" }, - "GetPool - VirtualMachineConfiguration OSDisk": { - "$ref": "./examples/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json" + "UpdatePool - Resize Pool": { + "$ref": "./examples/PoolUpdate_ResizePool.json" } - }, + } + }, + "delete": { + "operationId": "Pool_Delete", + "tags": [ + "Pools" + ], + "description": "Deletes the specified pool.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/PoolNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "poolName", + "in": "path", + "description": "The pool name. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the pool entity.", - "schema": { - "$ref": "#/definitions/Pool" - }, + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", "headers": { - "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, + "204": { + "description": "Resource does not exist." + }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } - } + }, + "x-ms-examples": { + "DeletePool": { + "$ref": "./examples/PoolDelete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}/disableAutoScale": { "post": { + "operationId": "Pool_DisableAutoScale", "tags": [ - "Pool" + "Pools" ], - "operationId": "Pool_DisableAutoScale", "description": "Disables automatic scaling for a pool.", - "x-ms-examples": { - "Disable AutoScale": { - "$ref": "./examples/PoolDisableAutoScale.json" - } - }, "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/PoolNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "poolName", + "in": "path", + "description": "The pool name. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the pool entity.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/Pool" }, "headers": { "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "Disable AutoScale": { + "$ref": "./examples/PoolDisableAutoScale.json" + } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}/stopResize": { "post": { + "operationId": "Pool_StopResize", "tags": [ - "Pool" + "Pools" ], - "operationId": "Pool_StopResize", "summary": "Stops an ongoing resize operation on the pool.", "description": "This does not restore the pool to its previous state before the resize operation: it only stops any further changes being made, and the pool maintains its current state. After stopping, the pool stabilizes at the number of nodes it was at when the stop operation was done. During the stop operation, the pool allocation state changes first to stopping and then to steady. A resize operation need not be an explicit resize pool request; this API can also be used to halt the initial sizing of the pool when it is created.", - "x-ms-examples": { - "StopPoolResize": { - "$ref": "./examples/PoolStopResize.json" - } - }, "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/PoolNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "poolName", + "in": "path", + "description": "The pool name. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9_-]+$" } ], "responses": { "200": { - "description": "The operation was successful. The response contains the pool entity.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/Pool" }, "headers": { "ETag": { - "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", - "type": "string" + "type": "string", + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } + }, + "x-ms-examples": { + "StopPoolResize": { + "$ref": "./examples/PoolStopResize.json" + } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/outboundNetworkDependenciesEndpoints": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateEndpointConnections": { "get": { + "operationId": "PrivateEndpointConnection_ListByBatchAccount", "tags": [ - "BatchAccount" + "PrivateEndpointConnections" ], - "operationId": "BatchAccount_ListOutboundNetworkDependenciesEndpoints", - "description": "Lists the endpoints that a Batch Compute Node under this Batch Account may call as part of Batch service administration. If you are deploying a Pool inside of a virtual network that you specify, you must make sure your network allows outbound access to these endpoints. Failure to allow access to these endpoints may cause Batch to mark the affected nodes as unusable. For more information about creating a pool inside of a virtual network, see https://learn.microsoft.com/azure/batch/batch-virtual-network.", - "x-ms-examples": { - "ListOutboundNetworkDependencies": { - "$ref": "./examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json" - } - }, + "description": "Lists all of the private endpoint connections in the specified account.", "parameters": [ { - "$ref": "#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/AccountNameParameter" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersionParameter" + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "$ref": "#/parameters/SubscriptionIdParameter" + "name": "maxresults", + "in": "query", + "description": "The maximum number of items to return in the response.", + "required": false, + "type": "integer", + "format": "int32" } ], "responses": { "200": { - "description": "The operation was successful. The response contains a list of outbound network dependencies.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/OutboundEnvironmentEndpointCollection" + "$ref": "#/definitions/ListPrivateEndpointConnectionsResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/CloudError" } } }, + "x-ms-examples": { + "ListPrivateEndpointConnections": { + "$ref": "./examples/PrivateEndpointConnectionsList.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } } - } - }, - "definitions": { - "AutoStorageBaseProperties": { - "type": "object", - "properties": { - "storageAccountId": { - "type": "string", - "format": "arm-id", - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.Storage/storageAccounts" - } - ] - }, - "description": "The resource ID of the storage account to be used for auto-storage account." - }, - "authenticationMode": { - "type": "string", - "description": "The authentication mode which the Batch service will use to manage the auto-storage account.", - "default": "StorageKeys", - "enum": [ - "StorageKeys", - "BatchAccountManagedIdentity" - ], - "x-ms-enum": { - "name": "AutoStorageAuthenticationMode", - "modelAsString": false, - "values": [ - { - "value": "StorageKeys", - "description": "The Batch service will authenticate requests to auto-storage using storage account keys." - }, - { - "value": "BatchAccountManagedIdentity", - "description": "The Batch service will authenticate requests to auto-storage using the managed identity assigned to the Batch account." - } - ] - } - }, - "nodeIdentityReference": { - "title": "The reference to the user assigned identity which compute nodes will use to access auto-storage.", - "description": "The identity referenced here must be assigned to pools which have compute nodes that need access to auto-storage.", - "$ref": "#/definitions/ComputeNodeIdentityReference" - } - }, - "required": [ - "storageAccountId" - ], - "description": "The properties related to the auto-storage account." }, - "BatchAccountUpdateProperties": { - "type": "object", - "properties": { - "autoStorage": { - "$ref": "#/definitions/AutoStorageBaseProperties", - "description": "The properties related to the auto-storage account." - }, - "encryption": { - "title": "The encryption configuration for the Batch account.", - "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.", - "$ref": "#/definitions/EncryptionProperties" - }, - "allowedAuthenticationModes": { - "x-nullable": true, - "type": "array", - "items": { - "$ref": "#/definitions/AuthenticationMode" + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}": { + "get": { + "operationId": "PrivateEndpointConnection_Get", + "tags": [ + "PrivateEndpointConnections" + ], + "description": "Gets information about the specified private endpoint connection.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, - "description": "List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane." - }, - "publicNetworkAccess": { - "title": "The network access type for accessing Azure Batch account.", - "description": "If not specified, the default value is 'enabled'.", - "$ref": "#/definitions/PublicNetworkAccessType" - }, - "networkProfile": { - "title": "Network profile for Batch account, which contains network rule settings for each endpoint.", - "description": "The network profile only takes effect when publicNetworkAccess is enabled.", - "$ref": "#/definitions/NetworkProfile" - } - }, - "description": "The properties of a Batch account." - }, - "BatchAccountCreateProperties": { - "type": "object", - "properties": { - "autoStorage": { - "$ref": "#/definitions/AutoStorageBaseProperties", - "description": "The properties related to the auto-storage account." - }, - "poolAllocationMode": { - "title": "The allocation mode to use for creating pools in the Batch account.", - "description": "The pool allocation mode also affects how clients may authenticate to the Batch Service API. If the mode is BatchService, clients may authenticate using access keys or Microsoft Entra ID. If the mode is UserSubscription, clients must use Microsoft Entra ID. The default is BatchService.", - "$ref": "#/definitions/PoolAllocationMode" - }, - "keyVaultReference": { - "$ref": "#/definitions/KeyVaultReference", - "description": "A reference to the Azure key vault associated with the Batch account." - }, - "publicNetworkAccess": { - "title": "The network access type for accessing Azure Batch account.", - "description": "If not specified, the default value is 'enabled'.", - "$ref": "#/definitions/PublicNetworkAccessType" - }, - "networkProfile": { - "title": "Network profile for Batch account, which contains network rule settings for each endpoint.", - "description": "The network profile only takes effect when publicNetworkAccess is enabled.", - "$ref": "#/definitions/NetworkProfile" - }, - "encryption": { - "title": "The encryption configuration for the Batch account.", - "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.", - "$ref": "#/definitions/EncryptionProperties" - }, - "allowedAuthenticationModes": { - "x-nullable": true, - "type": "array", - "items": { - "$ref": "#/definitions/AuthenticationMode" + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, - "description": "List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane." - } - }, - "description": "The properties of a Batch account." - }, - "AuthenticationMode": { - "type": "string", - "description": "The authentication mode for the Batch account.", - "enum": [ - "SharedKey", - "AAD", - "TaskAuthenticationToken" - ], - "x-ms-enum": { - "name": "AuthenticationMode", - "modelAsString": false, - "values": [ { - "value": "SharedKey", - "description": "The authentication mode using shared keys." + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "value": "AAD", - "description": "The authentication mode using Microsoft Entra ID." + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" }, { - "value": "TaskAuthenticationToken", - "description": "The authentication mode using task authentication tokens." + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The private endpoint connection name. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 101, + "pattern": "^[a-zA-Z0-9_-]+\\.?[a-fA-F0-9-]*$" } - ] - } - }, - "BatchAccountCreateParameters": { - "type": "object", - "properties": { - "location": { - "type": "string", - "description": "The region in which to create the account." - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } }, - "description": "The user-specified tags associated with the account." - }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/BatchAccountCreateProperties", - "description": "The properties of the Batch account." + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } }, - "identity": { - "$ref": "#/definitions/BatchAccountIdentity", - "description": "The identity of the Batch account." + "x-ms-examples": { + "GetPrivateEndpointConnection": { + "$ref": "./examples/PrivateEndpointConnectionGet.json" + } } }, - "required": [ - "location" - ], - "description": "Parameters supplied to the Create operation." - }, - "KeyVaultReference": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "arm-id", - "x-ms-arm-id-details": { - "allowedResources": [ - { - "type": "Microsoft.KeyVault/vaults" - } - ] + "patch": { + "operationId": "PrivateEndpointConnection_Update", + "tags": [ + "PrivateEndpointConnections" + ], + "description": "Updates the properties of an existing private endpoint connection.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, - "description": "The resource ID of the Azure key vault associated with the Batch account." - }, - "url": { - "type": "string", - "description": "The URL of the Azure key vault associated with the Batch account." - } - }, - "required": [ - "id", - "url" - ], - "description": "Identifies the Azure key vault associated with a Batch account." - }, - "AutoStorageProperties": { + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" + }, + { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The private endpoint connection name. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 101, + "pattern": "^[a-zA-Z0-9_-]+\\.?[a-fA-F0-9-]*$" + }, + { + "name": "If-Match", + "in": "header", + "description": "The state (ETag) version of the private endpoint connection to update. This value can be omitted or set to \"*\" to apply the operation unconditionally.", + "required": false, + "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "PrivateEndpointConnection properties that should be updated. Properties that are supplied will be updated, any property not supplied will be unchanged.", + "required": true, + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "202": { + "description": "Resource update request accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "UpdatePrivateEndpointConnection": { + "$ref": "./examples/PrivateEndpointConnectionUpdate.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/PrivateEndpointConnection" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "PrivateEndpointConnection_Delete", + "tags": [ + "PrivateEndpointConnections" + ], + "description": "Deletes the specified private endpoint connection.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" + }, + { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The private endpoint connection name. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 101, + "pattern": "^[a-zA-Z0-9_-]+\\.?[a-fA-F0-9-]*$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "format": "uri", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "PrivateEndpointConnectionDelete": { + "$ref": "./examples/PrivateEndpointConnectionDelete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateLinkResources": { + "get": { + "operationId": "PrivateLinkResource_ListByBatchAccount", + "tags": [ + "PrivateLinkResources" + ], + "description": "Lists all of the private link resources in the specified account.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" + }, + { + "name": "maxresults", + "in": "query", + "description": "The maximum number of items to return in the response.", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ListPrivateLinkResourcesResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "ListPrivateLinkResource": { + "$ref": "./examples/PrivateLinkResourcesList.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateLinkResources/{privateLinkResourceName}": { + "get": { + "operationId": "PrivateLinkResource_Get", + "tags": [ + "PrivateLinkResources" + ], + "description": "Gets information about the specified private link resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" + }, + { + "name": "privateLinkResourceName", + "in": "path", + "description": "The private link resource name. This must be unique within the account.", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 101, + "pattern": "^[a-zA-Z0-9_-]+\\.?[a-fA-F0-9-]*$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PrivateLinkResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "GetPrivateLinkResource": { + "$ref": "./examples/PrivateLinkResourceGet.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/regenerateKeys": { + "post": { + "operationId": "BatchAccount_RegenerateKey", + "tags": [ + "BatchAccounts" + ], + "summary": "Regenerates the specified account key for the Batch account.", + "description": "This operation applies only to Batch accounts with allowedAuthenticationModes containing 'SharedKey'. If the Batch account doesn't contain 'SharedKey' in its allowedAuthenticationMode, clients cannot use shared keys to authenticate, and must use another allowedAuthenticationModes instead. In this case, regenerating the keys will fail.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The type of key to regenerate.", + "required": true, + "schema": { + "$ref": "#/definitions/BatchAccountRegenerateKeyParameters" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/BatchAccountKeys" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "BatchAccountRegenerateKey": { + "$ref": "./examples/BatchAccountRegenerateKey.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/syncAutoStorageKeys": { + "post": { + "operationId": "BatchAccount_SynchronizeAutoStorageKeys", + "tags": [ + "BatchAccounts" + ], + "description": "Synchronizes access keys for the auto-storage account configured for the specified Batch account, only if storage key authentication is being used.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9]+$" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "BatchAccountSynchronizeAutoStorageKeys": { + "$ref": "./examples/BatchAccountSynchronizeAutoStorageKeys.json" + } + } + } + } + }, + "definitions": { + "AccountKeyType": { + "type": "string", + "description": "The type of account key to regenerate.", + "enum": [ + "Primary", + "Secondary" + ], + "x-ms-enum": { + "name": "AccountKeyType", + "modelAsString": false, + "values": [ + { + "name": "Primary", + "value": "Primary", + "description": "The primary account key." + }, + { + "name": "Secondary", + "value": "Secondary", + "description": "The secondary account key." + } + ] + } + }, + "ActivateApplicationPackageParameters": { "type": "object", + "description": "Parameters for an activating an application package.", "properties": { - "lastKeySync": { + "format": { "type": "string", - "format": "date-time", - "description": "The UTC time at which storage keys were last synchronized with the Batch account." + "description": "The format of the application package binary file." } }, "required": [ - "lastKeySync" - ], - "allOf": [ - { - "$ref": "#/definitions/AutoStorageBaseProperties" - } + "format" + ] + }, + "AllocationState": { + "type": "string", + "description": "Whether the pool is resizing.", + "enum": [ + "Steady", + "Resizing", + "Stopping" ], - "description": "Contains information about the auto-storage account associated with a Batch account." + "x-ms-enum": { + "name": "AllocationState", + "modelAsString": false, + "values": [ + { + "name": "Steady", + "value": "Steady", + "description": "The pool is not resizing. There are no changes to the number of nodes in the pool in progress. A pool enters this state when it is created and when no operations are being performed on the pool to change the number of nodes." + }, + { + "name": "Resizing", + "value": "Resizing", + "description": "The pool is resizing; that is, compute nodes are being added to or removed from the pool." + }, + { + "name": "Stopping", + "value": "Stopping", + "description": "The pool was resizing, but the user has requested that the resize be stopped, but the stop request has not yet been completed." + } + ] + } }, - "VirtualMachineFamilyCoreQuota": { + "Application": { "type": "object", + "description": "Contains information about an application in a Batch account.", "properties": { - "name": { - "readOnly": true, - "x-nullable": false, + "properties": { + "$ref": "#/definitions/ApplicationProperties", + "description": "The properties associated with the Application.", + "x-ms-client-flatten": true + }, + "etag": { "type": "string", - "description": "The Virtual Machine family name." + "description": "The ETag of the resource, used for concurrency statements.", + "readOnly": true }, - "coreQuota": { - "readOnly": true, - "x-nullable": false, - "type": "integer", - "format": "int32", - "description": "The core quota for the VM family for the Batch account." + "tags": { + "type": "object", + "description": "The tags of the resource.", + "additionalProperties": { + "type": "string" + } } }, - "description": "A VM Family and its associated core quota for the Batch account." + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] }, - "BatchAccountIdentity": { + "ApplicationPackage": { "type": "object", + "description": "An application package which represents a particular version of an application.", "properties": { - "principalId": { - "readOnly": true, - "type": "string", - "description": "The principal id of the Batch account. This property will only be provided for a system assigned identity." - }, - "tenantId": { - "readOnly": true, - "type": "string", - "description": "The tenant id associated with the Batch account. This property will only be provided for a system assigned identity." + "properties": { + "$ref": "#/definitions/ApplicationPackageProperties", + "description": "The properties associated with the Application Package.", + "x-ms-client-flatten": true }, - "type": { + "etag": { "type": "string", - "description": "The type of identity used for the Batch account.", - "enum": [ - "SystemAssigned", - "UserAssigned", - "None" - ], - "x-ms-enum": { - "name": "ResourceIdentityType", - "modelAsString": false, - "values": [ - { - "value": "SystemAssigned", - "description": "Batch account has a system assigned identity with it." - }, - { - "value": "UserAssigned", - "description": "Batch account has user assigned identities with it." - }, - { - "value": "None", - "description": "Batch account has no identity associated with it. Setting `None` in update account will remove existing identities." - } - ] - } + "description": "The ETag of the resource, used for concurrency statements.", + "readOnly": true }, - "userAssignedIdentities": { + "tags": { "type": "object", - "description": "The list of user identities associated with the Batch account.", + "description": "The tags of the resource.", "additionalProperties": { - "$ref": "#/definitions/UserAssignedIdentities" + "type": "string" } } }, - "description": "The identity of the Batch account, if configured. This is used when the user specifies 'Microsoft.KeyVault' as their Batch account encryption configuration or when `ManagedIdentity` is selected as the auto-storage authentication mode.", - "required": [ - "type" + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } ] }, - "BatchAccountProperties": { + "ApplicationPackageProperties": { "type": "object", + "description": "Properties of an application package", "properties": { - "accountEndpoint": { - "type": "string", - "readOnly": true, - "description": "The account endpoint used to interact with the Batch service." + "state": { + "$ref": "#/definitions/PackageState", + "description": "The current state of the application package.", + "readOnly": true }, - "nodeManagementEndpoint": { + "format": { "type": "string", - "readOnly": true, - "description": "The endpoint used by compute node to connect to the Batch node management service." + "description": "The format of the application package, if the package is active.", + "readOnly": true }, - "provisioningState": { + "storageUrl": { "type": "string", - "readOnly": true, - "x-nullable": false, - "description": "The provisioned state of the resource", - "enum": [ - "Invalid", - "Creating", - "Deleting", - "Succeeded", - "Failed", - "Cancelled" - ], - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": false, - "values": [ - { - "value": "Invalid", - "description": "The account is in an invalid state." - }, - { - "value": "Creating", - "description": "The account is being created." - }, - { - "value": "Deleting", - "description": "The account is being deleted." - }, - { - "value": "Succeeded", - "description": "The account has been created and is ready for use." - }, - { - "value": "Failed", - "description": "The last operation for the account is failed." - }, - { - "value": "Cancelled", - "description": "The last operation for the account is cancelled." - } - ] - } - }, - "poolAllocationMode": { - "readOnly": true, - "x-nullable": false, - "title": "The allocation mode to use for creating pools in the Batch account.", - "$ref": "#/definitions/PoolAllocationMode" - }, - "keyVaultReference": { - "title": "A reference to the Azure key vault associated with the Batch account.", - "readOnly": true, - "$ref": "#/definitions/KeyVaultReference" - }, - "publicNetworkAccess": { - "x-nullable": true, - "title": "The network interface type for accessing Azure Batch service and Batch account operations.", - "description": "If not specified, the default value is 'enabled'.", - "$ref": "#/definitions/PublicNetworkAccessType" - }, - "networkProfile": { - "x-nullable": true, - "title": "Network profile for Batch account, which contains network rule settings for each endpoint.", - "description": "The network profile only takes effect when publicNetworkAccess is enabled.", - "$ref": "#/definitions/NetworkProfile" - }, - "privateEndpointConnections": { - "readOnly": true, - "x-nullable": true, - "type": "array", - "items": { - "$ref": "#/definitions/PrivateEndpointConnection" - }, - "description": "List of private endpoint connections associated with the Batch account" - }, - "autoStorage": { - "title": "The properties and status of any auto-storage account associated with the Batch account.", - "readOnly": true, - "$ref": "#/definitions/AutoStorageProperties" - }, - "encryption": { - "title": "The encryption configuration for the Batch account.", - "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.", - "readOnly": true, - "$ref": "#/definitions/EncryptionProperties" - }, - "dedicatedCoreQuota": { - "readOnly": true, - "x-nullable": true, - "type": "integer", - "format": "int32", - "title": "The dedicated core quota for the Batch account.", - "description": "For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned." - }, - "lowPriorityCoreQuota": { - "readOnly": true, - "x-nullable": true, - "type": "integer", - "format": "int32", - "title": "The Spot/low-priority core quota for the Batch account.", - "description": "For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned." - }, - "dedicatedCoreQuotaPerVMFamily": { - "readOnly": true, - "x-nullable": true, - "type": "array", - "items": { - "$ref": "#/definitions/VirtualMachineFamilyCoreQuota" - }, - "x-ms-identifiers": [ - "name" - ], - "description": "A list of the dedicated core quota per Virtual Machine family for the Batch account. For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned." - }, - "dedicatedCoreQuotaPerVMFamilyEnforced": { - "readOnly": true, - "x-nullable": false, - "type": "boolean", - "title": "A value indicating whether core quotas per Virtual Machine family are enforced for this account", - "description": "If this flag is true, dedicated core quota is enforced via both the dedicatedCoreQuotaPerVMFamily and dedicatedCoreQuota properties on the account. If this flag is false, dedicated core quota is enforced only via the dedicatedCoreQuota property on the account and does not consider Virtual Machine family." - }, - "poolQuota": { - "readOnly": true, - "x-nullable": false, - "type": "integer", - "format": "int32", - "title": "The pool quota for the Batch account." + "description": "The URL for the application package in Azure Storage.", + "readOnly": true }, - "activeJobAndJobScheduleQuota": { - "readOnly": true, - "x-nullable": false, - "type": "integer", - "format": "int32", - "title": "The active job and job schedule quota for the Batch account." + "storageUrlExpiry": { + "type": "string", + "format": "date-time", + "description": "The UTC time at which the Azure Storage URL will expire.", + "readOnly": true }, - "allowedAuthenticationModes": { - "readOnly": true, - "x-nullable": true, - "type": "array", - "items": { - "$ref": "#/definitions/AuthenticationMode" - }, - "description": "List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane." + "lastActivationTime": { + "type": "string", + "format": "date-time", + "description": "The time at which the package was last activated, if the package is active.", + "readOnly": true } - }, - "description": "Account specific properties." + } }, - "BatchAccount": { + "ApplicationPackageReference": { "type": "object", + "description": "Link to an application package inside the batch account", "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/BatchAccountProperties", - "description": "The properties associated with the account." + "id": { + "type": "string", + "description": "The ID of the application package to install. This must be inside the same batch account as the pool. This can either be a reference to a specific version or the default version if one exists." }, - "identity": { - "$ref": "#/definitions/BatchAccountIdentity", - "description": "The identity of the Batch account." + "version": { + "type": "string", + "title": "The version of the application to deploy. If omitted, the default version is deployed.", + "description": "If this is omitted, and no default version is specified for this application, the request fails with the error code InvalidApplicationPackageReferences. If you are calling the REST API directly, the HTTP status code is 409." } }, - "allOf": [ - { - "$ref": "#/definitions/AzureResource" + "required": [ + "id" + ] + }, + "ApplicationProperties": { + "type": "object", + "description": "The properties associated with the Application.", + "properties": { + "displayName": { + "type": "string", + "description": "The display name for the application." + }, + "allowUpdates": { + "type": "boolean", + "description": "A value indicating whether packages within the application may be overwritten using the same version string." + }, + "defaultVersion": { + "type": "string", + "description": "The package to use if a client requests the application but does not specify a version. This property can only be set to the name of an existing package." } + } + }, + "AuthenticationMode": { + "type": "string", + "description": "The authentication mode for the Batch account.", + "enum": [ + "SharedKey", + "AAD", + "TaskAuthenticationToken" ], - "description": "Contains information about an Azure Batch account." + "x-ms-enum": { + "name": "AuthenticationMode", + "modelAsString": false, + "values": [ + { + "name": "SharedKey", + "value": "SharedKey", + "description": "The authentication mode using shared keys." + }, + { + "name": "AAD", + "value": "AAD", + "description": "The authentication mode using Microsoft Entra ID." + }, + { + "name": "TaskAuthenticationToken", + "value": "TaskAuthenticationToken", + "description": "The authentication mode using task authentication tokens." + } + ] + } }, - "BatchAccountUpdateParameters": { + "AutoScaleRun": { "type": "object", + "description": "The results and errors from an execution of a pool autoscale formula.", "properties": { - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "The user-specified tags associated with the account." + "evaluationTime": { + "type": "string", + "format": "date-time", + "description": "The time at which the autoscale formula was last evaluated." }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/BatchAccountUpdateProperties", - "description": "The properties of the account." + "results": { + "type": "string", + "title": "The final values of all variables used in the evaluation of the autoscale formula.", + "description": "Each variable value is returned in the form $variable=value, and variables are separated by semicolons." }, - "identity": { - "$ref": "#/definitions/BatchAccountIdentity", - "description": "The identity of the Batch account." + "error": { + "$ref": "#/definitions/AutoScaleRunError", + "title": "Details of the error encountered evaluating the autoscale formula on the pool, if the evaluation was unsuccessful.", + "description": "An error that occurred when autoscaling a pool." } }, - "description": "Parameters for updating an Azure Batch account." + "required": [ + "evaluationTime" + ] }, - "BatchAccountListResult": { + "AutoScaleRunError": { "type": "object", + "description": "An error that occurred when autoscaling a pool.", "properties": { - "value": { + "code": { + "type": "string", + "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." + }, + "message": { + "type": "string", + "description": "A message describing the error, intended to be suitable for display in a user interface." + }, + "details": { "type": "array", + "description": "Additional details about the error.", "items": { - "$ref": "#/definitions/BatchAccount" + "$ref": "#/definitions/AutoScaleRunError" }, "x-ms-identifiers": [ - "/properties/accountEndpoint" - ], - "description": "The collection of Batch accounts returned by the listing operation." - }, - "nextLink": { - "type": "string", - "description": "The continuation token." + "code" + ] } }, - "description": "Values returned by the List operation." + "required": [ + "code", + "message" + ] }, - "EncryptionProperties": { + "AutoScaleSettings": { "type": "object", + "description": "AutoScale settings for the pool.", "properties": { - "keySource": { + "formula": { "type": "string", - "description": "Type of the key source.", - "enum": [ - "Microsoft.Batch", - "Microsoft.KeyVault" - ], - "x-ms-enum": { - "name": "KeySource", - "modelAsString": false, - "values": [ - { - "value": "Microsoft.Batch", - "description": "Batch creates and manages the encryption keys used to protect the account data." - }, - { - "value": "Microsoft.KeyVault", - "description": "The encryption keys used to protect the account data are stored in an external key vault. If this is set then the Batch Account identity must be set to `SystemAssigned` and a valid Key Identifier must also be supplied under the keyVaultProperties." - } - ] + "description": "A formula for the desired number of compute nodes in the pool.", + "externalDocs": { + "description": "Create an automatic scaling formula for scaling compute nodes in a Batch pool", + "url": "https://learn.microsoft.com/azure/batch/batch-automatic-scaling" } }, - "keyVaultProperties": { - "$ref": "#/definitions/KeyVaultProperties", - "description": "Additional details when using Microsoft.KeyVault" - } - }, - "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead." - }, - "KeyVaultProperties": { - "type": "object", - "properties": { - "keyIdentifier": { + "evaluationInterval": { "type": "string", - "description": "Full path to the secret with or without version. Example https://mykeyvault.vault.azure.net/keys/testkey/6e34a81fef704045975661e297a4c053. or https://mykeyvault.vault.azure.net/keys/testkey. To be usable the following prerequisites must be met:\n\n The Batch Account has a System Assigned identity\n The account identity has been granted Key/Get, Key/Unwrap and Key/Wrap permissions\n The KeyVault has soft-delete and purge protection enabled" + "format": "duration", + "title": "The time interval at which to automatically adjust the pool size according to the autoscale formula.", + "description": "If omitted, the default value is 15 minutes (PT15M)." } }, - "description": "KeyVault configuration when using an encryption KeySource of Microsoft.KeyVault." + "required": [ + "formula" + ] }, - "BatchAccountRegenerateKeyParameters": { + "AutoStorageBaseProperties": { "type": "object", + "description": "The properties related to the auto-storage account.", "properties": { - "keyName": { + "storageAccountId": { + "type": "string", + "format": "arm-id", + "description": "The resource ID of the storage account to be used for auto-storage account.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Storage/storageAccounts" + } + ] + } + }, + "authenticationMode": { "type": "string", - "description": "The type of account key to regenerate.", + "description": "The authentication mode which the Batch service will use to manage the auto-storage account.", + "default": "StorageKeys", "enum": [ - "Primary", - "Secondary" + "StorageKeys", + "BatchAccountManagedIdentity" ], "x-ms-enum": { - "name": "AccountKeyType", + "name": "AutoStorageAuthenticationMode", "modelAsString": false, "values": [ { - "value": "Primary", - "description": "The primary account key." + "name": "StorageKeys", + "value": "StorageKeys", + "description": "The Batch service will authenticate requests to auto-storage using storage account keys." }, { - "value": "Secondary", - "description": "The secondary account key." + "name": "BatchAccountManagedIdentity", + "value": "BatchAccountManagedIdentity", + "description": "The Batch service will authenticate requests to auto-storage using the managed identity assigned to the Batch account." } ] } - } - }, - "required": [ - "keyName" - ], - "description": "Parameters supplied to the RegenerateKey operation." - }, - "BatchAccountKeys": { - "type": "object", - "properties": { - "accountName": { - "type": "string", - "readOnly": true, - "description": "The Batch account name." - }, - "primary": { - "type": "string", - "readOnly": true, - "description": "The primary key associated with the account." }, - "secondary": { - "type": "string", - "readOnly": true, - "description": "The secondary key associated with the account." + "nodeIdentityReference": { + "$ref": "#/definitions/ComputeNodeIdentityReference", + "title": "The reference to the user assigned identity which compute nodes will use to access auto-storage.", + "description": "The identity referenced here must be assigned to pools which have compute nodes that need access to auto-storage." } }, - "description": "A set of Azure Batch account keys." + "required": [ + "storageAccountId" + ] }, - "ActivateApplicationPackageParameters": { + "AutoStorageProperties": { "type": "object", + "description": "Contains information about the auto-storage account associated with a Batch account.", "properties": { - "format": { + "lastKeySync": { "type": "string", - "description": "The format of the application package binary file." + "format": "date-time", + "description": "The UTC time at which storage keys were last synchronized with the Batch account." } }, "required": [ - "format" + "lastKeySync" ], - "description": "Parameters for an activating an application package." - }, - "Application": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/ApplicationProperties", - "description": "The properties associated with the Application." - } - }, "allOf": [ { - "$ref": "#/definitions/AzureProxyResource" + "$ref": "#/definitions/AutoStorageBaseProperties" } + ] + }, + "AutoUserScope": { + "type": "string", + "description": "The default value is Pool. If the pool is running Windows a value of Task should be specified if stricter isolation between tasks is required. For example, if the task mutates the registry in a way which could impact other tasks, or if certificates have been specified on the pool which should not be accessible by normal tasks but should be accessible by start tasks.", + "enum": [ + "Task", + "Pool" ], - "description": "Contains information about an application in a Batch account." + "x-ms-enum": { + "name": "AutoUserScope", + "modelAsString": false, + "values": [ + { + "name": "Task", + "value": "Task", + "description": "Specifies that the service should create a new user for the task." + }, + { + "name": "Pool", + "value": "Pool", + "description": "Specifies that the task runs as the common auto user account which is created on every node in a pool." + } + ] + } }, - "ApplicationProperties": { + "AutoUserSpecification": { "type": "object", + "description": "Specifies the parameters for the auto user that runs a task on the Batch service.", "properties": { - "displayName": { - "type": "string", - "description": "The display name for the application." - }, - "allowUpdates": { - "type": "boolean", - "description": "A value indicating whether packages within the application may be overwritten using the same version string." + "scope": { + "$ref": "#/definitions/AutoUserScope", + "title": "The scope for the auto user", + "description": "The default value is Pool. If the pool is running Windows a value of Task should be specified if stricter isolation between tasks is required. For example, if the task mutates the registry in a way which could impact other tasks, or if certificates have been specified on the pool which should not be accessible by normal tasks but should be accessible by start tasks." }, - "defaultVersion": { - "type": "string", - "description": "The package to use if a client requests the application but does not specify a version. This property can only be set to the name of an existing package." - } - }, - "description": "The properties associated with the Application." - }, - "ApplicationPackage": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/ApplicationPackageProperties", - "description": "The properties associated with the Application Package." - } - }, - "allOf": [ - { - "$ref": "#/definitions/AzureProxyResource" + "elevationLevel": { + "$ref": "#/definitions/ElevationLevel", + "title": "The elevation level of the user.", + "description": "The default value is nonAdmin." } - ], - "description": "An application package which represents a particular version of an application." + } }, - "ApplicationPackageProperties": { + "AutomaticOSUpgradePolicy": { "type": "object", + "description": "The configuration parameters used for performing automatic OS upgrade.", "properties": { - "state": { - "type": "string", - "readOnly": true, - "description": "The current state of the application package.", - "enum": [ - "Pending", - "Active" - ], - "x-ms-enum": { - "name": "PackageState", - "modelAsString": false, - "values": [ - { - "value": "Pending", - "description": "The application package has been created but has not yet been activated." - }, - { - "value": "Active", - "description": "The application package is ready for use." - } - ] - } + "disableAutomaticRollback": { + "type": "boolean", + "description": "Whether OS image rollback feature should be disabled." }, - "format": { + "enableAutomaticOSUpgrade": { + "type": "boolean", + "description": "Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. <br /><br /> If this is set to true for Windows based pools, [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) cannot be set to true." + }, + "useRollingUpgradePolicy": { + "type": "boolean", + "description": "Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS." + }, + "osRollingUpgradeDeferral": { + "type": "boolean", + "description": "Defer OS upgrades on the TVMs if they are running tasks." + } + } + }, + "AzureBlobFileSystemConfiguration": { + "type": "object", + "description": "Information used to connect to an Azure Storage Container using Blobfuse.", + "properties": { + "accountName": { "type": "string", - "readOnly": true, - "description": "The format of the application package, if the package is active." + "description": "The Azure Storage Account name." }, - "storageUrl": { + "containerName": { "type": "string", - "readOnly": true, - "description": "The URL for the application package in Azure Storage." + "description": "The Azure Blob Storage Container name." }, - "storageUrlExpiry": { + "accountKey": { "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The UTC time at which the Azure Storage URL will expire." + "format": "password", + "title": "The Azure Storage Account key.", + "description": "This property is mutually exclusive with both sasKey and identity; exactly one must be specified.", + "x-ms-secret": true }, - "lastActivationTime": { + "sasKey": { "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The time at which the package was last activated, if the package is active." - } - }, - "description": "Properties of an application package" - }, - "ListApplicationsResult": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/Application" - }, - "description": "The list of applications." + "format": "password", + "title": "The Azure Storage SAS token.", + "description": "This property is mutually exclusive with both accountKey and identity; exactly one must be specified.", + "x-ms-secret": true }, - "nextLink": { + "blobfuseOptions": { "type": "string", - "description": "The URL to get the next set of results." - } - }, - "description": "The result of performing list applications." - }, - "ListApplicationPackagesResult": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationPackage" - }, - "description": "The list of application packages." + "title": "Additional command line options to pass to the mount command.", + "description": "These are 'net use' options in Windows and 'mount' options in Linux." }, - "nextLink": { + "relativeMountPath": { "type": "string", - "description": "The URL to get the next set of results." - } - }, - "description": "The result of performing list application packages." - }, - "BatchLocationQuota": { - "type": "object", - "properties": { - "accountQuota": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The number of Batch accounts that may be created under the subscription in the specified region." + "title": "The relative path on the compute node where the file system will be mounted", + "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable." + }, + "identityReference": { + "$ref": "#/definitions/ComputeNodeIdentityReference", + "title": "The reference to the user assigned identity to use to access containerName", + "description": "This property is mutually exclusive with both accountKey and sasKey; exactly one must be specified." } }, - "description": "Quotas associated with a Batch region for a particular subscription." + "required": [ + "accountName", + "containerName", + "relativeMountPath" + ] }, - "AzureResource": { + "AzureFileShareConfiguration": { "type": "object", + "description": "Information used to connect to an Azure Fileshare.", "properties": { - "id": { - "readOnly": true, + "accountName": { "type": "string", - "description": "The ID of the resource." + "description": "The Azure Storage account name." }, - "name": { - "readOnly": true, + "azureFileUrl": { "type": "string", - "description": "The name of the resource." + "title": "The Azure Files URL.", + "description": "This is of the form 'https://{account}.file.core.windows.net/'." }, - "type": { - "readOnly": true, + "accountKey": { "type": "string", - "description": "The type of the resource." + "format": "password", + "description": "The Azure Storage account key.", + "x-ms-secret": true }, - "location": { - "readOnly": true, + "relativeMountPath": { "type": "string", - "description": "The location of the resource." + "title": "The relative path on the compute node where the file system will be mounted", + "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable." }, - "tags": { - "readOnly": true, - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "The tags of the resource." + "mountOptions": { + "type": "string", + "title": "Additional command line options to pass to the mount command.", + "description": "These are 'net use' options in Windows and 'mount' options in Linux." } }, - "description": "A definition of an Azure resource.", - "x-ms-azure-resource": true + "required": [ + "accountName", + "azureFileUrl", + "accountKey", + "relativeMountPath" + ] }, "AzureProxyResource": { "type": "object", + "description": "A definition of an Azure resource.", "properties": { "id": { - "readOnly": true, "type": "string", - "description": "The ID of the resource." + "description": "The ID of the resource.", + "readOnly": true }, "name": { - "readOnly": true, "type": "string", - "description": "The name of the resource." + "description": "The name of the resource.", + "readOnly": true }, "type": { - "readOnly": true, "type": "string", - "description": "The type of the resource." + "description": "The type of the resource.", + "readOnly": true }, "etag": { - "readOnly": true, "type": "string", - "description": "The ETag of the resource, used for concurrency statements." + "description": "The ETag of the resource, used for concurrency statements.", + "readOnly": true }, "tags": { "type": "object", + "description": "The tags of the resource.", "additionalProperties": { "type": "string" - }, - "description": "The tags of the resource." - } - }, - "description": "A definition of an Azure resource.", - "x-ms-azure-resource": true - }, - "PublicNetworkAccessType": { - "type": "string", - "description": "The network access type for operating on the resources in the Batch account.", - "default": "Enabled", - "enum": [ - "Enabled", - "Disabled", - "SecuredByPerimeter" - ], - "x-ms-enum": { - "name": "PublicNetworkAccessType", - "modelAsString": false, - "values": [ - { - "value": "Enabled", - "description": "Enables connectivity to Azure Batch through public DNS." - }, - { - "value": "Disabled", - "description": "Disables public connectivity and enables private connectivity to Azure Batch Service through private endpoint resource." - }, - { - "value": "SecuredByPerimeter", - "description": "Secures connectivity to Azure Batch through NSP configuration." } - ] + } } }, - "NetworkProfile": { + "BatchAccount": { "type": "object", + "description": "Contains information about an Azure Batch account.", "properties": { - "accountAccess": { - "$ref": "#/definitions/EndpointAccessProfile", - "description": "Network access profile for batchAccount endpoint (Batch account data plane API)." + "properties": { + "$ref": "#/definitions/BatchAccountProperties", + "description": "The properties associated with the account.", + "x-ms-client-flatten": true }, - "nodeManagementAccess": { - "$ref": "#/definitions/EndpointAccessProfile", - "description": "Network access profile for nodeManagement endpoint (Batch service managing compute nodes for Batch pools)." + "identity": { + "$ref": "#/definitions/BatchAccountIdentity", + "description": "The identity of the Batch account." } }, - "description": "Network profile for Batch account, which contains network rule settings for each endpoint." - }, - "EndpointAccessProfile": { - "type": "object", - "properties": { - "defaultAction": { - "type": "string", - "title": "The default action when there is no IPRule matched.", - "description": "Default action for endpoint access. It is only applicable when publicNetworkAccess is enabled.", - "enum": [ - "Allow", - "Deny" - ], - "x-ms-enum": { - "name": "EndpointAccessDefaultAction", - "modelAsString": false, - "values": [ - { - "value": "Allow", - "description": "Allow client access." - }, - { - "value": "Deny", - "description": "Deny client access." - } - ] - } - }, - "ipRules": { - "type": "array", - "items": { - "$ref": "#/definitions/IPRule" - }, - "x-ms-identifiers": [ - "action" - ], - "description": "Array of IP ranges to filter client IP address." + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" } - }, - "description": "Network access profile for Batch endpoint.", - "required": [ - "defaultAction" ] }, - "IPRule": { + "BatchAccountCreateParameters": { "type": "object", + "description": "Parameters supplied to the Create operation.", "properties": { - "action": { + "location": { "type": "string", - "description": "Action when client IP address is matched.", - "enum": [ - "Allow" - ], - "x-ms-enum": { - "name": "IPRuleAction", - "modelAsString": false, - "values": [ - { - "value": "Allow", - "description": "Allow access for the matched client IP address." - } - ] + "description": "The region in which to create the account." + }, + "tags": { + "type": "object", + "description": "The user-specified tags associated with the account.", + "additionalProperties": { + "type": "string" } }, - "value": { - "type": "string", - "title": "The IP address or IP address range to filter", - "description": "IPv4 address, or IPv4 address range in CIDR format." + "properties": { + "$ref": "#/definitions/BatchAccountCreateProperties", + "description": "The properties of the Batch account.", + "x-ms-client-flatten": true + }, + "identity": { + "$ref": "#/definitions/BatchAccountIdentity", + "description": "The identity of the Batch account." } }, - "description": "Rule to filter client IP address.", "required": [ - "action", - "value" + "location" ] }, - "PoolAllocationMode": { - "type": "string", - "description": "The allocation mode for creating pools in the Batch account.", - "enum": [ - "BatchService", - "UserSubscription" - ], - "x-ms-enum": { - "name": "PoolAllocationMode", - "modelAsString": false, - "values": [ - { - "value": "BatchService", - "description": "Pools will be allocated in subscriptions owned by the Batch service." - }, - { - "value": "UserSubscription", - "description": "Pools will be allocated in a subscription owned by the user." - } - ] - } - }, - "CertificateBaseProperties": { - "description": "Base certificate properties.", + "BatchAccountCreateProperties": { "type": "object", + "description": "The properties of a Batch account.", "properties": { - "thumbprintAlgorithm": { - "type": "string", - "title": "The algorithm of the certificate thumbprint.", - "description": "This must match the first portion of the certificate name. Currently required to be 'SHA1'." + "autoStorage": { + "$ref": "#/definitions/AutoStorageBaseProperties", + "description": "The properties related to the auto-storage account." }, - "thumbprint": { - "type": "string", - "title": "The thumbprint of the certificate.", - "description": "This must match the thumbprint from the name." + "poolAllocationMode": { + "$ref": "#/definitions/PoolAllocationMode", + "title": "The allocation mode to use for creating pools in the Batch account.", + "description": "The pool allocation mode also affects how clients may authenticate to the Batch Service API. If the mode is BatchService, clients may authenticate using access keys or Microsoft Entra ID. If the mode is UserSubscription, clients must use Microsoft Entra ID. The default is BatchService." }, - "format": { + "keyVaultReference": { + "$ref": "#/definitions/KeyVaultReference", + "description": "A reference to the Azure key vault associated with the Batch account." + }, + "publicNetworkAccess": { "type": "string", - "x-nullable": false, - "description": "The format of the certificate - either Pfx or Cer. If omitted, the default is Pfx.", + "title": "The network access type for accessing Azure Batch account.", + "description": "The network access type for operating on the resources in the Batch account.", + "default": "Enabled", "enum": [ - "Pfx", - "Cer" + "Enabled", + "Disabled", + "SecuredByPerimeter" ], "x-ms-enum": { - "name": "CertificateFormat", + "name": "PublicNetworkAccessType", "modelAsString": false, "values": [ { - "value": "Pfx", - "description": "The certificate is a PFX (PKCS#12) formatted certificate or certificate chain." + "name": "Enabled", + "value": "Enabled", + "description": "Enables connectivity to Azure Batch through public DNS." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disables public connectivity and enables private connectivity to Azure Batch Service through private endpoint resource." }, { - "value": "Cer", - "description": "The certificate is a base64-encoded X.509 certificate." + "name": "SecuredByPerimeter", + "value": "SecuredByPerimeter", + "description": "Secures connectivity to Azure Batch through NSP configuration." } ] } + }, + "networkProfile": { + "$ref": "#/definitions/NetworkProfile", + "title": "Network profile for Batch account, which contains network rule settings for each endpoint.", + "description": "The network profile only takes effect when publicNetworkAccess is enabled." + }, + "encryption": { + "$ref": "#/definitions/EncryptionProperties", + "title": "The encryption configuration for the Batch account.", + "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead." + }, + "allowedAuthenticationModes": { + "type": "array", + "description": "List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/AuthenticationMode" + } } } }, - "CertificateProperties": { + "BatchAccountIdentity": { "type": "object", + "description": "The identity of the Batch account, if configured. This is used when the user specifies 'Microsoft.KeyVault' as their Batch account encryption configuration or when `ManagedIdentity` is selected as the auto-storage authentication mode.", "properties": { - "provisioningState": { + "principalId": { "type": "string", - "readOnly": true, - "x-nullable": false, - "title": "The provisioned state of the resource", - "enum": [ - "Succeeded", - "Deleting", - "Failed" - ], - "x-ms-enum": { - "name": "CertificateProvisioningState", - "modelAsString": false, - "values": [ - { - "value": "Succeeded", - "description": "The certificate is available for use in pools." - }, - { - "value": "Deleting", - "description": "The user has requested that the certificate be deleted, but the delete operation has not yet completed. You may not reference the certificate when creating or updating pools." - }, - { - "value": "Failed", - "description": "The user requested that the certificate be deleted, but there are pools that still have references to the certificate, or it is still installed on one or more compute nodes. (The latter can occur if the certificate has been removed from the pool, but the node has not yet restarted. Nodes refresh their certificates only when they restart.) You may use the cancel certificate delete operation to cancel the delete, or the delete certificate operation to retry the delete." - } - ] + "description": "The principal id of the Batch account. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "description": "The tenant id associated with the Batch account. This property will only be provided for a system assigned identity.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ResourceIdentityType", + "description": "The type of identity used for the Batch account." + }, + "userAssignedIdentities": { + "type": "object", + "description": "The list of user identities associated with the Batch account.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentities" } + } + }, + "required": [ + "type" + ] + }, + "BatchAccountKeys": { + "type": "object", + "description": "A set of Azure Batch account keys.", + "properties": { + "accountName": { + "type": "string", + "description": "The Batch account name.", + "readOnly": true }, - "provisioningStateTransitionTime": { + "primary": { "type": "string", - "format": "date-time", - "title": "The time at which the certificate entered its current state.", + "description": "The primary key associated with the account.", "readOnly": true }, - "previousProvisioningState": { + "secondary": { "type": "string", - "readOnly": true, - "x-nullable": false, - "description": "The previous provisioned state of the resource", + "description": "The secondary key associated with the account.", + "readOnly": true + } + } + }, + "BatchAccountListResult": { + "type": "object", + "description": "Paged collection of BatchAccount items", + "properties": { + "value": { + "type": "array", + "description": "The BatchAccount items on this page", + "items": { + "$ref": "#/definitions/BatchAccount" + }, + "x-ms-identifiers": [ + "/properties/accountEndpoint" + ] + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "BatchAccountProperties": { + "type": "object", + "description": "Account specific properties.", + "properties": { + "accountEndpoint": { + "type": "string", + "description": "The account endpoint used to interact with the Batch service.", + "readOnly": true + }, + "nodeManagementEndpoint": { + "type": "string", + "description": "The endpoint used by compute node to connect to the Batch node management service.", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "The provisioned state of the resource", + "readOnly": true + }, + "poolAllocationMode": { + "$ref": "#/definitions/PoolAllocationMode", + "title": "The allocation mode to use for creating pools in the Batch account.", + "description": "The allocation mode for creating pools in the Batch account.", + "readOnly": true + }, + "keyVaultReference": { + "$ref": "#/definitions/KeyVaultReference", + "title": "A reference to the Azure key vault associated with the Batch account.", + "description": "Identifies the Azure key vault associated with a Batch account.", + "readOnly": true + }, + "publicNetworkAccess": { + "type": "string", + "title": "The network interface type for accessing Azure Batch service and Batch account operations.", + "description": "The network access type for operating on the resources in the Batch account.", + "default": "Enabled", "enum": [ - "Succeeded", - "Deleting", - "Failed" + "Enabled", + "Disabled", + "SecuredByPerimeter" ], "x-ms-enum": { - "name": "CertificateProvisioningState", + "name": "PublicNetworkAccessType", "modelAsString": false, "values": [ { - "value": "Succeeded", - "description": "The certificate is available for use in pools." + "name": "Enabled", + "value": "Enabled", + "description": "Enables connectivity to Azure Batch through public DNS." }, { - "value": "Deleting", - "description": "The user has requested that the certificate be deleted, but the delete operation has not yet completed. You may not reference the certificate when creating or updating pools." + "name": "Disabled", + "value": "Disabled", + "description": "Disables public connectivity and enables private connectivity to Azure Batch Service through private endpoint resource." }, { - "value": "Failed", - "description": "The user requested that the certificate be deleted, but there are pools that still have references to the certificate, or it is still installed on one or more compute nodes. (The latter can occur if the certificate has been removed from the pool, but the node has not yet restarted. Nodes refresh their certificates only when they restart.) You may use the cancel certificate delete operation to cancel the delete, or the delete certificate operation to retry the delete." + "name": "SecuredByPerimeter", + "value": "SecuredByPerimeter", + "description": "Secures connectivity to Azure Batch through NSP configuration." } ] - } + }, + "x-nullable": true }, - "previousProvisioningStateTransitionTime": { - "type": "string", - "format": "date-time", - "title": "The time at which the certificate entered its previous state.", + "networkProfile": { + "$ref": "#/definitions/NetworkProfile", + "title": "Network profile for Batch account, which contains network rule settings for each endpoint.", + "description": "The network profile only takes effect when publicNetworkAccess is enabled.", + "x-nullable": true + }, + "privateEndpointConnections": { + "type": "array", + "description": "List of private endpoint connections associated with the Batch account", + "x-nullable": true, + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, "readOnly": true }, - "publicData": { - "type": "string", - "readOnly": true, - "description": "The public key of the certificate." + "autoStorage": { + "$ref": "#/definitions/AutoStorageProperties", + "title": "The properties and status of any auto-storage account associated with the Batch account.", + "description": "Contains information about the auto-storage account associated with a Batch account.", + "readOnly": true }, - "deleteCertificateError": { + "encryption": { + "$ref": "#/definitions/EncryptionProperties", + "title": "The encryption configuration for the Batch account.", + "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.", + "readOnly": true + }, + "dedicatedCoreQuota": { + "type": "integer", + "format": "int32", + "title": "The dedicated core quota for the Batch account.", + "description": "For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned.", + "x-nullable": true, + "readOnly": true + }, + "lowPriorityCoreQuota": { + "type": "integer", + "format": "int32", + "title": "The Spot/low-priority core quota for the Batch account.", + "description": "For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned.", + "x-nullable": true, + "readOnly": true + }, + "dedicatedCoreQuotaPerVMFamily": { + "type": "array", + "description": "A list of the dedicated core quota per Virtual Machine family for the Batch account. For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/VirtualMachineFamilyCoreQuota" + }, "readOnly": true, - "$ref": "#/definitions/DeleteCertificateError", - "title": "The error which occurred while deleting the certificate", - "description": "This is only returned when the certificate provisioningState is 'Failed'." - } - }, - "allOf": [ - { - "$ref": "#/definitions/CertificateBaseProperties" - } - ], - "description": "Certificate properties." - }, - "CertificateCreateOrUpdateProperties": { - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/CertificateBaseProperties" - } - ], - "properties": { - "data": { - "type": "string", - "title": "The base64-encoded contents of the certificate.", - "description": "The maximum size is 10KB.", - "x-ms-mutability": [ - "read", - "update" + "x-ms-identifiers": [ + "name" ] }, - "password": { - "type": "string", - "title": "The password to access the certificate's private key.", - "description": "This must not be specified if the certificate format is Cer.", - "x-ms-secret": true - } - }, - "description": "Certificate properties for create operations", - "required": [ - "data" - ] - }, - "Certificate": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/CertificateProperties", - "description": "The properties associated with the certificate." - } - }, - "allOf": [ - { - "$ref": "#/definitions/AzureProxyResource" - } - ], - "description": "Contains information about a certificate." - }, - "CertificateCreateOrUpdateParameters": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/CertificateCreateOrUpdateProperties", - "description": "The properties associated with the certificate." - } - }, - "allOf": [ - { - "$ref": "#/definitions/AzureProxyResource" + "dedicatedCoreQuotaPerVMFamilyEnforced": { + "type": "boolean", + "title": "A value indicating whether core quotas per Virtual Machine family are enforced for this account", + "description": "If this flag is true, dedicated core quota is enforced via both the dedicatedCoreQuotaPerVMFamily and dedicatedCoreQuota properties on the account. If this flag is false, dedicated core quota is enforced only via the dedicatedCoreQuota property on the account and does not consider Virtual Machine family.", + "readOnly": true + }, + "poolQuota": { + "type": "integer", + "format": "int32", + "description": "The pool quota for the Batch account.", + "readOnly": true + }, + "activeJobAndJobScheduleQuota": { + "type": "integer", + "format": "int32", + "description": "The active job and job schedule quota for the Batch account.", + "readOnly": true + }, + "allowedAuthenticationModes": { + "type": "array", + "description": "List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane.", + "x-nullable": true, + "items": { + "$ref": "#/definitions/AuthenticationMode" + }, + "readOnly": true } - ], - "description": "Contains information about a certificate." + } }, - "ListCertificatesResult": { + "BatchAccountRegenerateKeyParameters": { "type": "object", + "description": "Parameters supplied to the RegenerateKey operation.", "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/Certificate" - }, - "description": "The collection of returned certificates." - }, - "nextLink": { - "type": "string", - "description": "The continuation token." + "keyName": { + "$ref": "#/definitions/AccountKeyType", + "description": "The type of account key to regenerate." } }, - "description": "Values returned by the List operation." + "required": [ + "keyName" + ] }, - "DeleteCertificateError": { + "BatchAccountUpdateParameters": { "type": "object", + "description": "Parameters for updating an Azure Batch account.", "properties": { - "code": { - "type": "string", - "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." - }, - "message": { - "type": "string", - "description": "A message describing the error, intended to be suitable for display in a user interface." + "tags": { + "type": "object", + "description": "The user-specified tags associated with the account.", + "additionalProperties": { + "type": "string" + } }, - "target": { - "type": "string", - "description": "The target of the particular error. For example, the name of the property in error." + "properties": { + "$ref": "#/definitions/BatchAccountUpdateProperties", + "description": "The properties of the account.", + "x-ms-client-flatten": true }, - "details": { - "type": "array", - "items": { - "$ref": "#/definitions/DeleteCertificateError" - }, - "x-ms-identifiers": [ - "code" - ], - "description": "A list of additional details about the error." + "identity": { + "$ref": "#/definitions/BatchAccountIdentity", + "description": "The identity of the Batch account." } - }, - "required": [ - "code", - "message" - ], - "description": "An error response from the Batch service." + } }, - "DetectorListResult": { + "BatchAccountUpdateProperties": { "type": "object", + "description": "The properties of a Batch account.", "properties": { - "value": { + "autoStorage": { + "$ref": "#/definitions/AutoStorageBaseProperties", + "description": "The properties related to the auto-storage account." + }, + "encryption": { + "$ref": "#/definitions/EncryptionProperties", + "title": "The encryption configuration for the Batch account.", + "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead." + }, + "allowedAuthenticationModes": { "type": "array", + "description": "List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane.", + "x-nullable": true, "items": { - "$ref": "#/definitions/DetectorResponse" - }, - "description": "The collection of Batch account detectors returned by the listing operation." + "$ref": "#/definitions/AuthenticationMode" + } }, - "nextLink": { + "publicNetworkAccess": { "type": "string", - "description": "The URL to get the next set of results." + "title": "The network access type for accessing Azure Batch account.", + "description": "The network access type for operating on the resources in the Batch account.", + "default": "Enabled", + "enum": [ + "Enabled", + "Disabled", + "SecuredByPerimeter" + ], + "x-ms-enum": { + "name": "PublicNetworkAccessType", + "modelAsString": false, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Enables connectivity to Azure Batch through public DNS." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disables public connectivity and enables private connectivity to Azure Batch Service through private endpoint resource." + }, + { + "name": "SecuredByPerimeter", + "value": "SecuredByPerimeter", + "description": "Secures connectivity to Azure Batch through NSP configuration." + } + ] + } + }, + "networkProfile": { + "$ref": "#/definitions/NetworkProfile", + "title": "Network profile for Batch account, which contains network rule settings for each endpoint.", + "description": "The network profile only takes effect when publicNetworkAccess is enabled." } - }, - "description": "Values returned by the List operation." + } }, - "DetectorResponse": { + "BatchLocationQuota": { "type": "object", + "description": "Quotas associated with a Batch region for a particular subscription.", "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/DetectorResponseProperties", - "description": "The properties associated with the detector." - } - }, - "allOf": [ - { - "$ref": "#/definitions/AzureProxyResource" + "accountQuota": { + "type": "integer", + "format": "int32", + "description": "The number of Batch accounts that may be created under the subscription in the specified region.", + "readOnly": true } - ], - "description": "Contains the information for a detector." + } }, - "DetectorResponseProperties": { + "BatchPoolIdentity": { "type": "object", + "description": "The identity of the Batch pool, if configured. If the pool identity is updated during update an existing pool, only the new vms which are created after the pool shrinks to 0 will have the updated identities", "properties": { - "value": { - "type": "string", - "description": "A base64 encoded string that represents the content of a detector." + "type": { + "$ref": "#/definitions/PoolIdentityType", + "description": "The type of identity used for the Batch Pool." + }, + "userAssignedIdentities": { + "type": "object", + "description": "The list of user identities associated with the Batch pool.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentities" + } } }, - "description": "Detector response properties." + "required": [ + "type" + ] }, - "PrivateLinkResource": { + "CIFSMountConfiguration": { "type": "object", + "description": "Information used to connect to a CIFS file system.", "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/PrivateLinkResourceProperties", - "description": "The properties associated with the private link resource." + "userName": { + "type": "string", + "description": "The user to use for authentication against the CIFS file system." + }, + "source": { + "type": "string", + "description": "The URI of the file system to mount." + }, + "relativeMountPath": { + "type": "string", + "title": "The relative path on the compute node where the file system will be mounted", + "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable." + }, + "mountOptions": { + "type": "string", + "title": "Additional command line options to pass to the mount command.", + "description": "These are 'net use' options in Windows and 'mount' options in Linux." + }, + "password": { + "type": "string", + "format": "password", + "description": "The password to use for authentication against the CIFS file system.", + "x-ms-secret": true } }, - "allOf": [ - { - "$ref": "#/definitions/AzureProxyResource" - } + "required": [ + "userName", + "source", + "relativeMountPath", + "password" + ] + }, + "CachingType": { + "type": "string", + "description": "The type of caching to enable for the disk.", + "enum": [ + "None", + "ReadOnly", + "ReadWrite" ], - "description": "Contains information about a private link resource." + "x-ms-enum": { + "name": "CachingType", + "modelAsString": false, + "values": [ + { + "name": "None", + "value": "None", + "description": "The caching mode for the disk is not enabled." + }, + { + "name": "ReadOnly", + "value": "ReadOnly", + "description": "The caching mode for the disk is read only." + }, + { + "name": "ReadWrite", + "value": "ReadWrite", + "description": "The caching mode for the disk is read and write." + } + ] + } }, - "PrivateLinkResourceProperties": { + "Certificate": { "type": "object", + "description": "Contains information about a certificate.", "properties": { - "groupId": { - "type": "string", - "title": "The group id of the private link resource.", - "description": "The group id is used to establish the private link connection.", - "readOnly": true + "properties": { + "$ref": "#/definitions/CertificateProperties", + "description": "The properties associated with the certificate.", + "x-ms-client-flatten": true }, - "requiredMembers": { - "type": "array", - "items": { - "type": "string" - }, - "title": "The list of required members that are used to establish the private link connection.", + "etag": { + "type": "string", + "description": "The ETag of the resource, used for concurrency statements.", "readOnly": true }, - "requiredZoneNames": { - "type": "array", - "items": { + "tags": { + "type": "object", + "description": "The tags of the resource.", + "additionalProperties": { "type": "string" - }, - "title": "The list of required zone names for the private DNS resource name", - "readOnly": true - } - }, - "description": "Private link resource properties." - }, - "PrivateEndpointConnection": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/PrivateEndpointConnectionProperties", - "description": "The properties associated with the private endpoint connection." + } } }, "allOf": [ { - "$ref": "#/definitions/AzureProxyResource" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" } - ], - "description": "Contains information about a private link resource." + ] }, - "PrivateEndpointConnectionProperties": { + "CertificateBaseProperties": { "type": "object", - "properties": { - "provisioningState": { - "type": "string", - "readOnly": true, - "x-nullable": false, - "title": "The provisioning state of the private endpoint connection.", - "enum": [ - "Creating", - "Updating", - "Deleting", - "Succeeded", - "Failed", - "Cancelled" - ], - "x-ms-enum": { - "name": "PrivateEndpointConnectionProvisioningState", - "modelAsString": false, - "values": [ - { - "value": "Creating", - "description": "The connection is creating." - }, - { - "value": "Updating", - "description": "The user has requested that the connection status be updated, but the update operation has not yet completed. You may not reference the connection when connecting the Batch account." - }, - { - "value": "Deleting", - "description": "The connection is deleting." - }, - { - "value": "Succeeded", - "description": "The connection status is final and is ready for use if Status is Approved." - }, - { - "value": "Failed", - "description": "The user requested that the connection be updated and it failed. You may retry the update operation." - }, - { - "value": "Cancelled", - "description": "The user has cancelled the connection creation." - } - ] - } - }, - "privateEndpoint": { - "$ref": "#/definitions/PrivateEndpoint", - "readOnly": true, - "title": "The ARM resource identifier of the private endpoint." - }, - "groupIds": { - "type": "array", - "readOnly": true, - "items": { - "type": "string" - }, - "title": "The group id of the private endpoint connection.", - "description": "The value has one and only one group id." + "description": "Base certificate properties.", + "properties": { + "thumbprintAlgorithm": { + "type": "string", + "title": "The algorithm of the certificate thumbprint.", + "description": "This must match the first portion of the certificate name. Currently required to be 'SHA1'." }, - "privateLinkServiceConnectionState": { - "$ref": "#/definitions/PrivateLinkServiceConnectionState", - "title": "The private link service connection state of the private endpoint connection." + "thumbprint": { + "type": "string", + "title": "The thumbprint of the certificate.", + "description": "This must match the thumbprint from the name." + }, + "format": { + "$ref": "#/definitions/CertificateFormat", + "description": "The format of the certificate - either Pfx or Cer. If omitted, the default is Pfx." } - }, - "description": "Private endpoint connection properties." + } }, - "PrivateEndpoint": { + "CertificateCreateOrUpdateParameters": { "type": "object", + "description": "Contains information about a certificate.", "properties": { - "id": { - "type": "string", - "title": "The ARM resource identifier of the private endpoint. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/privateEndpoints/{privateEndpoint}.", - "readOnly": true + "properties": { + "$ref": "#/definitions/CertificateCreateOrUpdateProperties", + "description": "The properties associated with the certificate.", + "x-ms-client-flatten": true } }, - "description": "The private endpoint of the private endpoint connection." + "allOf": [ + { + "$ref": "#/definitions/AzureProxyResource" + } + ] }, - "PrivateLinkServiceConnectionState": { + "CertificateCreateOrUpdateProperties": { "type": "object", + "description": "Certificate properties for create operations", "properties": { - "status": { - "$ref": "#/definitions/PrivateLinkServiceConnectionStatus", - "title": "The status for the private endpoint connection of Batch account" - }, - "description": { + "data": { "type": "string", - "title": "Description of the private Connection state" + "title": "The base64-encoded contents of the certificate.", + "description": "The maximum size is 10KB.", + "x-ms-mutability": [ + "read", + "update" + ] }, - "actionsRequired": { + "password": { "type": "string", - "title": "Action required on the private connection state", - "readOnly": true + "format": "password", + "title": "The password to access the certificate's private key.", + "description": "This must not be specified if the certificate format is Cer.", + "x-ms-secret": true } }, "required": [ - "status" + "data" ], - "description": "The private link service connection state of the private endpoint connection" + "allOf": [ + { + "$ref": "#/definitions/CertificateBaseProperties" + } + ] }, - "PrivateLinkServiceConnectionStatus": { + "CertificateFormat": { "type": "string", - "title": "The status of the Batch private endpoint connection", + "description": "The format of the certificate - either Pfx or Cer. If omitted, the default is Pfx.", "enum": [ - "Approved", - "Pending", - "Rejected", - "Disconnected" + "Pfx", + "Cer" ], "x-ms-enum": { - "name": "PrivateLinkServiceConnectionStatus", + "name": "CertificateFormat", "modelAsString": false, "values": [ { - "value": "Approved", - "description": "The private endpoint connection is approved and can be used to access Batch account" - }, - { - "value": "Pending", - "description": "The private endpoint connection is pending and cannot be used to access Batch account" - }, - { - "value": "Rejected", - "description": "The private endpoint connection is rejected and cannot be used to access Batch account" + "name": "Pfx", + "value": "Pfx", + "description": "The certificate is a PFX (PKCS#12) formatted certificate or certificate chain." }, { - "value": "Disconnected", - "description": "The private endpoint connection is disconnected and cannot be used to access Batch account" + "name": "Cer", + "value": "Cer", + "description": "The certificate is a base64-encoded X.509 certificate." } ] } }, - "Pool": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/PoolProperties", - "description": "The properties associated with the pool." - }, - "identity": { - "title": "The type of identity used for the Batch Pool.", - "description": "The type of identity used for the Batch Pool.", - "$ref": "#/definitions/BatchPoolIdentity" - } - }, - "allOf": [ - { - "$ref": "#/definitions/AzureProxyResource" - } - ], - "description": "Contains information about a pool." - }, - "PoolProperties": { + "CertificateProperties": { "type": "object", - "properties": { - "displayName": { - "type": "string", - "title": "The display name for the pool.", - "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024." - }, - "lastModified": { - "type": "string", - "format": "date-time", - "title": "The last modified time of the pool.", - "description": "This is the last time at which the pool level data, such as the targetDedicatedNodes or autoScaleSettings, changed. It does not factor in node-level changes such as a compute node changing state.", - "readOnly": true - }, - "creationTime": { - "type": "string", - "format": "date-time", - "title": "The creation time of the pool.", - "readOnly": true - }, - "provisioningState": { - "type": "string", - "title": "The current state of the pool.", - "enum": [ - "Succeeded", - "Deleting" - ], - "x-ms-enum": { - "name": "PoolProvisioningState", - "modelAsString": false, - "values": [ - { - "value": "Succeeded", - "description": "The pool is available to run tasks subject to the availability of compute nodes." - }, - { - "value": "Deleting", - "description": "The user has requested that the pool be deleted, but the delete operation has not yet completed." - } - ] - }, - "readOnly": true - }, - "provisioningStateTransitionTime": { - "type": "string", - "format": "date-time", - "title": "The time at which the pool entered its current state.", - "readOnly": true - }, - "allocationState": { - "type": "string", - "title": "Whether the pool is resizing.", - "enum": [ - "Steady", - "Resizing", - "Stopping" - ], - "x-ms-enum": { - "name": "AllocationState", - "modelAsString": false, - "values": [ - { - "value": "Steady", - "description": "The pool is not resizing. There are no changes to the number of nodes in the pool in progress. A pool enters this state when it is created and when no operations are being performed on the pool to change the number of nodes." - }, - { - "value": "Resizing", - "description": "The pool is resizing; that is, compute nodes are being added to or removed from the pool." - }, - { - "value": "Stopping", - "description": "The pool was resizing, but the user has requested that the resize be stopped, but the stop request has not yet been completed." - } - ] - }, - "readOnly": true - }, - "allocationStateTransitionTime": { - "type": "string", - "format": "date-time", - "title": "The time at which the pool entered its current allocation state.", - "readOnly": true - }, - "vmSize": { - "type": "string", - "title": "The size of virtual machines in the pool. All VMs in a pool are the same size.", - "description": "For information about available VM sizes, see Sizes for Virtual Machines in Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series)." - }, - "deploymentConfiguration": { - "$ref": "#/definitions/DeploymentConfiguration", - "title": "This property describes the virtual machines that the pool nodes will be deployed on." - }, - "currentDedicatedNodes": { - "type": "integer", - "format": "int32", - "title": "The number of dedicated compute nodes currently in the pool.", - "readOnly": true - }, - "currentLowPriorityNodes": { - "type": "integer", - "format": "int32", - "title": "The number of Spot/low-priority compute nodes currently in the pool.", - "readOnly": true - }, - "scaleSettings": { - "$ref": "#/definitions/ScaleSettings", - "title": "Settings which configure the number of nodes in the pool." - }, - "autoScaleRun": { - "$ref": "#/definitions/AutoScaleRun", - "title": "The results and errors from the last execution of the autoscale formula.", - "description": "This property is set only if the pool automatically scales, i.e. autoScaleSettings are used.", - "readOnly": true - }, - "interNodeCommunication": { - "type": "string", - "enum": [ - "Enabled", - "Disabled" - ], - "x-ms-enum": { - "name": "InterNodeCommunicationState", - "modelAsString": false, - "values": [ - { - "value": "Enabled", - "description": "Enable network communication between virtual machines." - }, - { - "value": "Disabled", - "description": "Disable network communication between virtual machines." - } - ] - }, - "title": "Whether the pool permits direct communication between nodes.", - "description": "This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. If not specified, this value defaults to 'Disabled'." - }, - "networkConfiguration": { - "$ref": "#/definitions/NetworkConfiguration", - "title": "The network configuration for the pool." - }, - "taskSlotsPerNode": { - "type": "integer", - "format": "int32", - "default": 1, - "title": "The number of task slots that can be used to run concurrent tasks on a single compute node in the pool.", - "description": "The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256." - }, - "taskSchedulingPolicy": { - "$ref": "#/definitions/TaskSchedulingPolicy", - "title": "How tasks are distributed across compute nodes in a pool.", - "description": "If not specified, the default is spread." - }, - "userAccounts": { - "type": "array", - "items": { - "$ref": "#/definitions/UserAccount" - }, - "x-ms-identifiers": [ - "name" - ], - "title": "The list of user accounts to be created on each node in the pool." - }, - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/MetadataItem" - }, - "x-ms-identifiers": [ - "name" - ], - "title": "A list of name-value pairs associated with the pool as metadata.", - "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code." - }, - "startTask": { - "$ref": "#/definitions/StartTask", - "title": "A task specified to run on each compute node as it joins the pool.", - "description": "In an PATCH (update) operation, this property can be set to an empty object to remove the start task from the pool." - }, - "certificates": { - "type": "array", - "items": { - "$ref": "#/definitions/CertificateReference" - }, - "title": "The list of certificates to be installed on each compute node in the pool.", - "description": "For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.\n\nWarning: This property 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." - }, - "applicationPackages": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationPackageReference" - }, - "title": "The list of application packages to be installed on each compute node in the pool.", - "description": "Changes to application package references affect all new compute nodes joining the pool, but do not affect compute nodes that are already in the pool until they are rebooted or reimaged. There is a maximum of 10 application package references on any given pool." - }, - "applicationLicenses": { - "type": "array", - "items": { - "type": "string" - }, - "title": "The list of application licenses the Batch service will make available on each compute node in the pool.", - "description": "The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, pool creation will fail." - }, - "resizeOperationStatus": { - "$ref": "#/definitions/ResizeOperationStatus", - "title": "Contains details about the current or last completed resize operation.", + "description": "Certificate properties.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/CertificateProvisioningState", + "title": "The provisioned state of the resource", "readOnly": true }, - "mountConfiguration": { - "type": "array", - "items": { - "$ref": "#/definitions/MountConfiguration" - }, - "x-ms-identifiers": [], - "title": "A list of file systems to mount on each node in the pool.", - "description": "This supports Azure Files, NFS, CIFS/SMB, and Blobfuse." + "provisioningStateTransitionTime": { + "type": "string", + "format": "date-time", + "description": "The time at which the certificate entered its current state.", + "readOnly": true }, - "targetNodeCommunicationMode": { - "title": "The desired node communication mode for the pool.", - "description": "If omitted, the default value is Default.", - "$ref": "#/definitions/NodeCommunicationMode" + "previousProvisioningState": { + "$ref": "#/definitions/CertificateProvisioningState", + "description": "The previous provisioned state of the resource", + "readOnly": true }, - "currentNodeCommunicationMode": { - "title": "The current state of the pool communication mode.", - "$ref": "#/definitions/NodeCommunicationMode", - "x-nullable": true, + "previousProvisioningStateTransitionTime": { + "type": "string", + "format": "date-time", + "description": "The time at which the certificate entered its previous state.", "readOnly": true }, - "upgradePolicy": { - "$ref": "#/definitions/UpgradePolicy", - "title": "The upgrade policy for the pool." + "publicData": { + "type": "string", + "description": "The public key of the certificate.", + "readOnly": true }, - "resourceTags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "title": "The user-specified tags associated with the pool.", - "description": "The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'." + "deleteCertificateError": { + "$ref": "#/definitions/DeleteCertificateError", + "title": "The error which occurred while deleting the certificate", + "description": "This is only returned when the certificate provisioningState is 'Failed'.", + "readOnly": true } }, - "description": "Pool properties." + "allOf": [ + { + "$ref": "#/definitions/CertificateBaseProperties" + } + ] }, - "BatchPoolIdentity": { + "CertificateProvisioningState": { + "type": "string", + "enum": [ + "Succeeded", + "Deleting", + "Failed" + ], + "x-ms-enum": { + "name": "CertificateProvisioningState", + "modelAsString": false, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The certificate is available for use in pools." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The user has requested that the certificate be deleted, but the delete operation has not yet completed. You may not reference the certificate when creating or updating pools." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The user requested that the certificate be deleted, but there are pools that still have references to the certificate, or it is still installed on one or more compute nodes. (The latter can occur if the certificate has been removed from the pool, but the node has not yet restarted. Nodes refresh their certificates only when they restart.) You may use the cancel certificate delete operation to cancel the delete, or the delete certificate operation to retry the delete." + } + ] + } + }, + "CertificateReference": { "type": "object", + "title": "A reference to a certificate to be installed on compute nodes in a pool. This must exist inside the same account as the pool.", + "description": "Warning: This object 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.", "properties": { - "type": { + "id": { "type": "string", - "description": "The type of identity used for the Batch Pool.", - "enum": [ - "UserAssigned", - "None" - ], - "x-ms-enum": { - "name": "PoolIdentityType", - "modelAsString": false, - "values": [ - { - "value": "UserAssigned", - "description": "Batch pool has user assigned identities with it." - }, - { - "value": "None", - "description": "Batch pool has no identity associated with it. Setting `None` in update pool will remove existing identities." - } - ] - } + "description": "The fully qualified ID of the certificate to install on the pool. This must be inside the same batch account as the pool." }, - "userAssignedIdentities": { - "type": "object", - "description": "The list of user identities associated with the Batch pool.", - "additionalProperties": { - "$ref": "#/definitions/UserAssignedIdentities" + "storeLocation": { + "$ref": "#/definitions/CertificateStoreLocation", + "title": "The location of the certificate store on the compute node into which to install the certificate.", + "description": "The default value is currentUser. This property is applicable only for pools configured with Windows compute nodes. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory." + }, + "storeName": { + "type": "string", + "title": "The name of the certificate store on the compute node into which to install the certificate.", + "description": "This property is applicable only for pools configured with Windows compute nodes. Common store names include: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but any custom store name can also be used. The default value is My." + }, + "visibility": { + "type": "array", + "description": "Which user accounts on the compute node should have access to the private data of the certificate.", + "items": { + "$ref": "#/definitions/CertificateVisibility" } } }, - "description": "The identity of the Batch pool, if configured. If the pool identity is updated during update an existing pool, only the new vms which are created after the pool shrinks to 0 will have the updated identities", "required": [ + "id" + ] + }, + "CertificateStoreLocation": { + "type": "string", + "description": "The default value is currentUser. This property is applicable only for pools configured with Windows compute nodes. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.", + "enum": [ + "CurrentUser", + "LocalMachine" + ], + "x-ms-enum": { + "name": "CertificateStoreLocation", + "modelAsString": false, + "values": [ + { + "name": "CurrentUser", + "value": "CurrentUser", + "description": "Certificates should be installed to the CurrentUser certificate store." + }, + { + "name": "LocalMachine", + "value": "LocalMachine", + "description": "Certificates should be installed to the LocalMachine certificate store." + } + ] + } + }, + "CertificateVisibility": { + "type": "string", + "enum": [ + "StartTask", + "Task", + "RemoteUser" + ], + "x-ms-enum": { + "name": "CertificateVisibility", + "modelAsString": false, + "values": [ + { + "name": "StartTask", + "value": "StartTask", + "description": "The certificate should be visible to the user account under which the start task is run. Note that if AutoUser Scope is Pool for both the StartTask and a Task, this certificate will be visible to the Task as well." + }, + { + "name": "Task", + "value": "Task", + "description": "The certificate should be visible to the user accounts under which job tasks are run." + }, + { + "name": "RemoteUser", + "value": "RemoteUser", + "description": "The certificate should be visible to the user accounts under which users remotely access the node." + } + ] + } + }, + "CheckNameAvailabilityParameters": { + "type": "object", + "description": "Parameters for a check name availability request.", + "properties": { + "name": { + "type": "string", + "description": "The name to check for availability" + }, + "type": { + "$ref": "#/definitions/ResourceType", + "description": "The resource type." + } + }, + "required": [ + "name", "type" ] }, - "DeploymentConfiguration": { + "CheckNameAvailabilityResult": { "type": "object", + "description": "The CheckNameAvailability operation response.", "properties": { - "virtualMachineConfiguration": { - "$ref": "#/definitions/VirtualMachineConfiguration", - "title": "The virtual machine configuration for the pool." + "nameAvailable": { + "type": "boolean", + "description": "Gets a boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or invalid and cannot be used.", + "readOnly": true + }, + "reason": { + "$ref": "#/definitions/NameAvailabilityReason", + "description": "Gets the reason that a Batch account name could not be used. The Reason element is only returned if NameAvailable is false.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "Gets an error message explaining the Reason value in more detail.", + "readOnly": true + } + } + }, + "CloudError": { + "type": "object", + "description": "An error response from the Batch service.", + "properties": { + "error": { + "$ref": "#/definitions/CloudErrorBody", + "description": "The body of the error response." } }, - "title": "Deployment configuration properties." + "x-ms-external": true }, - "ScaleSettings": { + "CloudErrorBody": { "type": "object", + "description": "An error response from the Batch service.", "properties": { - "fixedScale": { - "$ref": "#/definitions/FixedScaleSettings", - "title": "Fixed scale settings for the pool.", - "description": "This property and autoScale are mutually exclusive and one of the properties must be specified." + "code": { + "type": "string", + "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." }, - "autoScale": { - "$ref": "#/definitions/AutoScaleSettings", - "title": "AutoScale settings for the pool.", - "description": "This property and fixedScale are mutually exclusive and one of the properties must be specified." + "message": { + "type": "string", + "description": "A message describing the error, intended to be suitable for display in a user interface." + }, + "target": { + "type": "string", + "description": "The target of the particular error. For example, the name of the property in error." + }, + "details": { + "type": "array", + "description": "A list of additional details about the error.", + "items": { + "$ref": "#/definitions/CloudErrorBody" + }, + "x-ms-identifiers": [ + "message", + "target" + ] } }, - "title": "Scale settings for the pool", - "description": "Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes." + "x-ms-external": true }, - "AutoScaleSettings": { + "ComputeNodeDeallocationOption": { + "type": "string", + "description": "Determines what to do with a node and its running task(s) after it has been selected for deallocation.", + "enum": [ + "Requeue", + "Terminate", + "TaskCompletion", + "RetainedData" + ], + "x-ms-enum": { + "name": "ComputeNodeDeallocationOption", + "modelAsString": false, + "values": [ + { + "name": "Requeue", + "value": "Requeue", + "description": "Terminate running task processes and requeue the tasks. The tasks will run again when a node is available. Remove nodes as soon as tasks have been terminated." + }, + { + "name": "Terminate", + "value": "Terminate", + "description": "Terminate running tasks. The tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Remove nodes as soon as tasks have been terminated." + }, + { + "name": "TaskCompletion", + "value": "TaskCompletion", + "description": "Allow currently running tasks to complete. Schedule no new tasks while waiting. Remove nodes when all tasks have completed." + }, + { + "name": "RetainedData", + "value": "RetainedData", + "description": "Deprecated, we encourage you to upload task data to Azure Storage in your task and use `TaskCompletion` instead. Allow currently running tasks to complete, then wait for all task data retention periods to expire. Schedule no new tasks while waiting. Remove nodes when all task retention periods have expired." + } + ] + } + }, + "ComputeNodeIdentityReference": { "type": "object", + "description": "The reference to a user assigned identity associated with the Batch pool which a compute node will use.", "properties": { - "formula": { + "resourceId": { "type": "string", - "title": "A formula for the desired number of compute nodes in the pool.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/batch/batch-automatic-scaling", - "description": "Create an automatic scaling formula for scaling compute nodes in a Batch pool" + "description": "The ARM resource id of the user assigned identity." + } + } + }, + "ContainerConfiguration": { + "type": "object", + "description": "The configuration for container-enabled pools.", + "properties": { + "type": { + "$ref": "#/definitions/ContainerType", + "description": "The container technology to be used." + }, + "containerImageNames": { + "type": "array", + "title": "The collection of container image names.", + "description": "This is the full image reference, as would be specified to \"docker pull\". An image will be sourced from the default Docker registry unless the image is fully qualified with an alternative registry.", + "items": { + "type": "string" } }, - "evaluationInterval": { - "type": "string", - "format": "duration", - "title": "The time interval at which to automatically adjust the pool size according to the autoscale formula.", - "description": "If omitted, the default value is 15 minutes (PT15M)." + "containerRegistries": { + "type": "array", + "title": "Additional private registries from which containers can be pulled.", + "description": "If any images must be downloaded from a private registry which requires credentials, then those credentials must be provided here.", + "items": { + "$ref": "#/definitions/ContainerRegistry" + }, + "x-ms-identifiers": [ + "registryServer" + ] } }, "required": [ - "formula" - ], - "title": "AutoScale settings for the pool." + "type" + ] }, - "FixedScaleSettings": { + "ContainerHostBatchBindMountEntry": { "type": "object", + "description": "The entry of path and mount mode you want to mount into task container.", "properties": { - "resizeTimeout": { - "type": "string", - "format": "duration", - "default": "PT15M", - "title": "The timeout for allocation of compute nodes to the pool.", - "description": "The default value is 15 minutes. Timeout values use ISO 8601 format. For example, use PT10M for 10 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service rejects the request with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)." - }, - "targetDedicatedNodes": { - "type": "integer", - "format": "int32", - "title": "The desired number of dedicated compute nodes in the pool.", - "description": "At least one of targetDedicatedNodes, targetLowPriorityNodes must be set." - }, - "targetLowPriorityNodes": { - "type": "integer", - "format": "int32", - "title": "The desired number of Spot/low-priority compute nodes in the pool.", - "description": "At least one of targetDedicatedNodes, targetLowPriorityNodes must be set." + "source": { + "$ref": "#/definitions/ContainerHostDataPath", + "description": "The paths which will be mounted to container task's container." }, - "nodeDeallocationOption": { - "title": "Determines what to do with a node and its running task(s) if the pool size is decreasing.", - "description": "If omitted, the default value is Requeue.", - "$ref": "#/definitions/ComputeNodeDeallocationOption", - "x-ms-mutability": [ - "create", - "update" - ] + "isReadOnly": { + "type": "boolean", + "title": "Mount this source path as read-only mode or not. Default value is false (read/write mode).", + "description": "For Linux, if you mount this path as a read/write mode, this does not mean that all users in container have the read/write access for the path, it depends on the access in host VM. If this path is mounted read-only, all users within the container will not be able to modify the path." } - }, - "title": "Fixed scale settings for the pool." + } }, - "ComputeNodeDeallocationOption": { + "ContainerHostDataPath": { "type": "string", - "title": "Determines what to do with a node and its running task(s) after it has been selected for deallocation.", + "description": "The paths which will be mounted to container task's container.", "enum": [ - "Requeue", - "Terminate", - "TaskCompletion", - "RetainedData" + "Shared", + "Startup", + "VfsMounts", + "Task", + "JobPrep", + "Applications" ], "x-ms-enum": { - "name": "ComputeNodeDeallocationOption", - "modelAsString": false, + "name": "ContainerHostDataPath", + "modelAsString": true, "values": [ { - "value": "Requeue", - "description": "Terminate running task processes and requeue the tasks. The tasks will run again when a node is available. Remove nodes as soon as tasks have been terminated." + "name": "Shared", + "value": "Shared", + "description": "The path for multi-instances task to shared their files." }, { - "value": "Terminate", - "description": "Terminate running tasks. The tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Remove nodes as soon as tasks have been terminated." + "name": "Startup", + "value": "Startup", + "description": "The path for start task." }, { - "value": "TaskCompletion", - "description": "Allow currently running tasks to complete. Schedule no new tasks while waiting. Remove nodes when all tasks have completed." + "name": "VfsMounts", + "value": "VfsMounts", + "description": "The path contains all virtual file systems are mounted on this node." }, { - "value": "RetainedData", - "description": "Deprecated, we encourage you to upload task data to Azure Storage in your task and use `TaskCompletion` instead. Allow currently running tasks to complete, then wait for all task data retention periods to expire. Schedule no new tasks while waiting. Remove nodes when all task retention periods have expired." + "name": "Task", + "value": "Task", + "description": "The task path." + }, + { + "name": "JobPrep", + "value": "JobPrep", + "description": "The job-prep task path." + }, + { + "name": "Applications", + "value": "Applications", + "description": "The applications path." } ] } }, - "CertificateReference": { + "ContainerRegistry": { "type": "object", + "description": "A private container registry.", "properties": { - "id": { + "username": { "type": "string", - "title": "The fully qualified ID of the certificate to install on the pool. This must be inside the same batch account as the pool." + "description": "The user name to log into the registry server.", + "x-ms-client-name": "userName" }, - "storeLocation": { + "password": { "type": "string", - "title": "The location of the certificate store on the compute node into which to install the certificate.", - "description": "The default value is currentUser. This property is applicable only for pools configured with Windows compute nodes. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.", - "enum": [ - "CurrentUser", - "LocalMachine" - ], - "x-ms-enum": { - "name": "CertificateStoreLocation", - "modelAsString": false, - "values": [ - { - "value": "CurrentUser", - "description": "Certificates should be installed to the CurrentUser certificate store." - }, - { - "value": "LocalMachine", - "description": "Certificates should be installed to the LocalMachine certificate store." - } - ] - } + "format": "password", + "description": "The password to log into the registry server.", + "x-ms-secret": true }, - "storeName": { + "registryServer": { "type": "string", - "title": "The name of the certificate store on the compute node into which to install the certificate.", - "description": "This property is applicable only for pools configured with Windows compute nodes. Common store names include: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but any custom store name can also be used. The default value is My." + "title": "The registry URL.", + "description": "If omitted, the default is \"docker.io\"." }, - "visibility": { - "type": "array", - "items": { - "type": "string", - "x-nullable": false, - "enum": [ - "StartTask", - "Task", - "RemoteUser" - ], - "x-ms-enum": { - "name": "CertificateVisibility", - "modelAsString": false, - "values": [ - { - "value": "StartTask", - "description": "The certificate should be visible to the user account under which the start task is run. Note that if AutoUser Scope is Pool for both the StartTask and a Task, this certificate will be visible to the Task as well." - }, - { - "value": "Task", - "description": "The certificate should be visible to the user accounts under which job tasks are run." - }, - { - "value": "RemoteUser", - "description": "The certificate should be visible to the user accounts under which users remotely access the node." - } - ] - } - }, - "title": "Which user accounts on the compute node should have access to the private data of the certificate." + "identityReference": { + "$ref": "#/definitions/ComputeNodeIdentityReference", + "title": "The reference to the user assigned identity to use to access an Azure Container Registry instead of username and password.", + "description": "The reference to a user assigned identity associated with the Batch pool which a compute node will use." } - }, - "required": [ - "id" + } + }, + "ContainerType": { + "type": "string", + "description": "The container technology to be used.", + "enum": [ + "DockerCompatible", + "CriCompatible" ], - "title": "A reference to a certificate to be installed on compute nodes in a pool. This must exist inside the same account as the pool.", - "description": "Warning: This object 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." + "x-ms-enum": { + "name": "ContainerType", + "modelAsString": true, + "values": [ + { + "name": "DockerCompatible", + "value": "DockerCompatible", + "description": "A Docker compatible container technology will be used to launch the containers." + }, + { + "name": "CriCompatible", + "value": "CriCompatible", + "description": "A CRI based technology will be used to launch the containers." + } + ] + } }, - "ApplicationPackageReference": { + "ContainerWorkingDirectory": { + "type": "string", + "description": "A flag to indicate where the container task working directory is. The default is 'taskWorkingDirectory'.", + "enum": [ + "TaskWorkingDirectory", + "ContainerImageDefault" + ], + "x-ms-enum": { + "name": "ContainerWorkingDirectory", + "modelAsString": false, + "values": [ + { + "name": "TaskWorkingDirectory", + "value": "TaskWorkingDirectory", + "description": "Use the standard Batch service task working directory, which will contain the Task resource files populated by Batch." + }, + { + "name": "ContainerImageDefault", + "value": "ContainerImageDefault", + "description": "Using container image defined working directory. Beware that this directory will not contain the resource files downloaded by Batch." + } + ] + } + }, + "DataDisk": { "type": "object", + "description": "Settings which will be used by the data disks associated to Compute Nodes in the Pool. When using attached data disks, you need to mount and format the disks from within a VM to use them.", "properties": { - "id": { - "type": "string", - "title": "The ID of the application package to install. This must be inside the same batch account as the pool. This can either be a reference to a specific version or the default version if one exists." + "lun": { + "type": "integer", + "format": "int32", + "title": "The logical unit number.", + "description": "The lun is used to uniquely identify each data disk. If attaching multiple disks, each should have a distinct lun. The value must be between 0 and 63, inclusive." }, - "version": { - "type": "string", - "title": "The version of the application to deploy. If omitted, the default version is deployed.", - "description": "If this is omitted, and no default version is specified for this application, the request fails with the error code InvalidApplicationPackageReferences. If you are calling the REST API directly, the HTTP status code is 409." + "caching": { + "$ref": "#/definitions/CachingType", + "title": "The type of caching to enable for the disk.", + "description": "Values are:\n\nnone - The caching mode for the disk is not enabled.\nreadOnly - The caching mode for the disk is read only.\nreadWrite - The caching mode for the disk is read and write.\n\nThe default value for caching is none. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/." + }, + "diskSizeGB": { + "type": "integer", + "format": "int32", + "description": "The initial disk size in GB when creating new data disk." + }, + "storageAccountType": { + "$ref": "#/definitions/StorageAccountType", + "title": "The storage account type for use in creating data disks or OS disk.", + "description": "If omitted, the default is \"Standard_LRS\". Values are:\n\nStandard_LRS - The data disk should use standard locally redundant storage.\nPremium_LRS - The data disk should use premium locally redundant storage." } }, - "title": "Link to an application package inside the batch account", "required": [ - "id" + "lun", + "diskSizeGB" ] }, - "ResizeError": { + "DeleteCertificateError": { "type": "object", + "description": "An error response from the Batch service.", "properties": { "code": { "type": "string", @@ -4506,409 +4917,409 @@ "type": "string", "description": "A message describing the error, intended to be suitable for display in a user interface." }, + "target": { + "type": "string", + "description": "The target of the particular error. For example, the name of the property in error." + }, "details": { "type": "array", + "description": "A list of additional details about the error.", "items": { - "$ref": "#/definitions/ResizeError" + "$ref": "#/definitions/DeleteCertificateError" }, "x-ms-identifiers": [ "code" - ], - "title": "Additional details about the error." + ] } }, - "title": "An error that occurred when resizing a pool.", "required": [ "code", "message" ] }, - "AutoScaleRunError": { + "DeploymentConfiguration": { "type": "object", + "description": "Deployment configuration properties.", "properties": { - "code": { + "virtualMachineConfiguration": { + "$ref": "#/definitions/VirtualMachineConfiguration", + "title": "The virtual machine configuration for the pool.", + "description": "The configuration for compute nodes in a pool based on the Azure Virtual Machines infrastructure." + } + } + }, + "DetectorListResult": { + "type": "object", + "description": "Paged collection of DetectorResponse items", + "properties": { + "value": { + "type": "array", + "description": "The DetectorResponse items on this page", + "items": { + "$ref": "#/definitions/DetectorResponse" + } + }, + "nextLink": { "type": "string", - "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "DetectorResponse": { + "type": "object", + "description": "Contains the information for a detector.", + "properties": { + "properties": { + "$ref": "#/definitions/DetectorResponseProperties", + "description": "The properties associated with the detector.", + "x-ms-client-flatten": true }, - "message": { + "etag": { "type": "string", - "description": "A message describing the error, intended to be suitable for display in a user interface." + "description": "The ETag of the resource, used for concurrency statements.", + "readOnly": true }, - "details": { - "type": "array", - "items": { - "$ref": "#/definitions/AutoScaleRunError" - }, - "x-ms-identifiers": [ - "code" - ], - "title": "Additional details about the error." + "tags": { + "type": "object", + "description": "The tags of the resource.", + "additionalProperties": { + "type": "string" + } } }, - "title": "An error that occurred when autoscaling a pool.", - "required": [ - "code", - "message" + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } ] }, - "AutoScaleRun": { + "DetectorResponseProperties": { + "type": "object", + "description": "Detector response properties.", + "properties": { + "value": { + "type": "string", + "description": "A base64 encoded string that represents the content of a detector." + } + } + }, + "DiffDiskPlacement": { + "type": "string", + "description": "The location where the OS disk should be placed.", + "enum": [ + "CacheDisk" + ], + "x-ms-enum": { + "name": "DiffDiskPlacement", + "modelAsString": false, + "values": [ + { + "name": "CacheDisk", + "value": "CacheDisk", + "description": "The OS disk will be placed on the cache disk of the VM." + } + ] + } + }, + "DiffDiskSettings": { + "type": "object", + "description": "Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine.", + "properties": { + "placement": { + "$ref": "#/definitions/DiffDiskPlacement", + "title": "Specifies the ephemeral disk placement for operating system disk for all VMs in the pool.", + "description": "This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements." + } + } + }, + "DiskEncryptionConfiguration": { "type": "object", + "description": "The disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Azure Compute Gallery Image.", "properties": { - "evaluationTime": { - "type": "string", - "format": "date-time", - "title": "The time at which the autoscale formula was last evaluated." - }, - "results": { - "type": "string", - "title": "The final values of all variables used in the evaluation of the autoscale formula.", - "description": "Each variable value is returned in the form $variable=value, and variables are separated by semicolons." - }, - "error": { - "$ref": "#/definitions/AutoScaleRunError", - "title": "Details of the error encountered evaluating the autoscale formula on the pool, if the evaluation was unsuccessful." + "targets": { + "type": "array", + "title": "The list of disk targets Batch Service will encrypt on the compute node", + "description": "On Linux pool, only \"TemporaryDisk\" is supported; on Windows pool, \"OsDisk\" and \"TemporaryDisk\" must be specified.", + "items": { + "$ref": "#/definitions/DiskEncryptionTarget" + } } - }, - "required": [ - "evaluationTime" - ], - "title": "The results and errors from an execution of a pool autoscale formula." + } }, - "NodeCommunicationMode": { + "DiskEncryptionTarget": { "type": "string", - "title": "Determines how a pool communicates with the Batch service.", + "description": "If omitted, no disks on the compute nodes in the pool will be encrypted.", "enum": [ - "Default", - "Classic", - "Simplified" + "OsDisk", + "TemporaryDisk" ], "x-ms-enum": { - "name": "NodeCommunicationMode", + "name": "DiskEncryptionTarget", "modelAsString": false, "values": [ { - "value": "Default", - "description": "The node communication mode is automatically set by the Batch service." + "name": "OsDisk", + "value": "OsDisk", + "description": "The OS Disk on the compute node is encrypted." }, { - "value": "Classic", - "description": "Nodes using the Classic communication mode require inbound TCP communication on ports 29876 and 29877 from the \"BatchNodeManagement.{region}\" service tag and outbound TCP communication on port 443 to the \"Storage.region\" and \"BatchNodeManagement.{region}\" service tags." + "name": "TemporaryDisk", + "value": "TemporaryDisk", + "description": "The temporary disk on the compute node is encrypted. On Linux this encryption applies to other partitions (such as those on mounted data disks) when encryption occurs at boot time." + } + ] + } + }, + "ElevationLevel": { + "type": "string", + "description": "The elevation level of the user.", + "enum": [ + "NonAdmin", + "Admin" + ], + "x-ms-enum": { + "name": "ElevationLevel", + "modelAsString": false, + "values": [ + { + "name": "NonAdmin", + "value": "NonAdmin", + "description": "The user is a standard user without elevated access." }, { - "value": "Simplified", - "description": "Nodes using the Simplified communication mode require outbound TCP communication on port 443 to the \"BatchNodeManagement.{region}\" service tag. No open inbound ports are required." + "name": "Admin", + "value": "Admin", + "description": "The user is a user with elevated access and operates with full Administrator permissions." } ] } }, - "ServiceArtifactReference": { + "EncryptionProperties": { "type": "object", + "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.", "properties": { - "id": { - "type": "string", - "title": "The service artifact reference id of ServiceArtifactReference", - "description": "The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}" + "keySource": { + "$ref": "#/definitions/KeySource", + "description": "Type of the key source." + }, + "keyVaultProperties": { + "$ref": "#/definitions/KeyVaultProperties", + "description": "Additional details when using Microsoft.KeyVault" } - }, - "required": [ - "id" + } + }, + "EndpointAccessDefaultAction": { + "type": "string", + "description": "Default action for endpoint access. It is only applicable when publicNetworkAccess is enabled.", + "enum": [ + "Allow", + "Deny" ], - "description": "Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version." + "x-ms-enum": { + "name": "EndpointAccessDefaultAction", + "modelAsString": false, + "values": [ + { + "name": "Allow", + "value": "Allow", + "description": "Allow client access." + }, + { + "name": "Deny", + "value": "Deny", + "description": "Deny client access." + } + ] + } }, - "VirtualMachineConfiguration": { + "EndpointAccessProfile": { "type": "object", + "description": "Network access profile for Batch endpoint.", "properties": { - "imageReference": { - "$ref": "#/definitions/ImageReference", - "title": "A reference to the Azure Virtual Machines Marketplace Image or the custom Virtual Machine Image to use." - }, - "nodeAgentSkuId": { - "type": "string", - "title": "The SKU of the Batch node agent to be provisioned on compute nodes in the pool.", - "description": "The Batch node agent is a program that runs on each node in the pool, and provides the command-and-control interface between the node and the Batch service. There are different implementations of the node agent, known as SKUs, for different operating systems. You must specify a node agent SKU which matches the selected image reference. To get the list of supported node agent SKUs along with their list of verified image references, see the 'List supported node agent SKUs' operation." - }, - "windowsConfiguration": { - "$ref": "#/definitions/WindowsConfiguration", - "title": "Windows operating system settings on the virtual machine.", - "description": "This property must not be specified if the imageReference specifies a Linux OS image." + "defaultAction": { + "$ref": "#/definitions/EndpointAccessDefaultAction", + "title": "The default action when there is no IPRule matched.", + "description": "Default action for endpoint access. It is only applicable when publicNetworkAccess is enabled." }, - "dataDisks": { + "ipRules": { "type": "array", + "description": "Array of IP ranges to filter client IP address.", "items": { - "$ref": "#/definitions/DataDisk" + "$ref": "#/definitions/IPRule" }, "x-ms-identifiers": [ - "lun" - ], - "title": "The configuration for data disks attached to the compute nodes in the pool.", - "description": "This property must be specified if the compute nodes in the pool need to have empty data disks attached to them." - }, - "licenseType": { + "action" + ] + } + }, + "required": [ + "defaultAction" + ] + }, + "EndpointDependency": { + "type": "object", + "description": "A domain name and connection details used to access a dependency.", + "properties": { + "domainName": { "type": "string", - "title": "The type of on-premises license to be used when deploying the operating system.", - "description": "This only applies to images that contain the Windows operating system, and should only be used when you hold valid on-premises licenses for the nodes which will be deployed. If omitted, no on-premises licensing discount is applied. Values are:\n\n Windows_Server - The on-premises license is for Windows Server.\n Windows_Client - The on-premises license is for Windows Client.\n" - }, - "containerConfiguration": { - "$ref": "#/definitions/ContainerConfiguration", - "title": "The container configuration for the pool.", - "description": "If specified, setup is performed on each node in the pool to allow tasks to run in containers. All regular tasks and job manager tasks run on this pool must specify the containerSettings property, and all other tasks may specify it." - }, - "diskEncryptionConfiguration": { - "$ref": "#/definitions/DiskEncryptionConfiguration", - "title": "The disk encryption configuration for the pool.", - "description": "If specified, encryption is performed on each node in the pool during node provisioning." + "description": "The domain name of the dependency. Domain names may be fully qualified or may contain a * wildcard.", + "readOnly": true }, - "nodePlacementConfiguration": { - "$ref": "#/definitions/NodePlacementConfiguration", - "title": "The node placement configuration for the pool.", - "description": "This configuration will specify rules on how nodes in the pool will be physically allocated." + "description": { + "type": "string", + "description": "Human-readable supplemental information about the dependency and when it is applicable.", + "readOnly": true }, - "extensions": { + "endpointDetails": { "type": "array", + "description": "The list of connection details for this endpoint.", "items": { - "$ref": "#/definitions/VMExtension" + "$ref": "#/definitions/EndpointDetail" }, + "readOnly": true, "x-ms-identifiers": [ - "name", - "type" - ], - "title": "The virtual machine extension for the pool.", - "description": "If specified, the extensions mentioned in this configuration will be installed on each node." - }, - "osDisk": { - "$ref": "#/definitions/OSDisk", - "title": "Settings for the operating system disk of the Virtual Machine.", - "description": "Contains configuration for ephemeral OSDisk settings." - }, - "securityProfile": { - "$ref": "#/definitions/SecurityProfile", - "title": "Specifies the security profile settings for the virtual machine or virtual machine scale set." - }, - "serviceArtifactReference": { - "$ref": "#/definitions/ServiceArtifactReference", - "title": "Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version.", - "description": "The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}" + "port" + ] } - }, - "required": [ - "imageReference", - "nodeAgentSkuId" - ], - "title": "The configuration for compute nodes in a pool based on the Azure Virtual Machines infrastructure." + } }, - "ContainerRegistry": { + "EndpointDetail": { "type": "object", + "description": "Details about the connection between the Batch service and the endpoint.", "properties": { - "username": { - "type": "string", - "x-ms-client-name": "userName", - "title": "The user name to log into the registry server." - }, - "password": { - "type": "string", - "title": "The password to log into the registry server.", - "x-ms-secret": true - }, - "registryServer": { - "type": "string", - "title": "The registry URL.", - "description": "If omitted, the default is \"docker.io\"." - }, - "identityReference": { - "title": "The reference to the user assigned identity to use to access an Azure Container Registry instead of username and password.", - "$ref": "#/definitions/ComputeNodeIdentityReference" + "port": { + "type": "integer", + "format": "int32", + "description": "The port an endpoint is connected to.", + "readOnly": true } - }, - "title": "A private container registry." + } }, - "DiskEncryptionConfiguration": { + "EnvironmentSetting": { "type": "object", + "description": "An environment variable to be set on a task process.", "properties": { - "targets": { - "type": "array", - "items": { - "type": "string", - "x-nullable": false, - "title": "The disks to encrypt on each compute node.", - "description": "If omitted, no disks on the compute nodes in the pool will be encrypted.", - "enum": [ - "OsDisk", - "TemporaryDisk" - ], - "x-ms-enum": { - "name": "DiskEncryptionTarget", - "modelAsString": false, - "values": [ - { - "value": "OsDisk", - "description": "The OS Disk on the compute node is encrypted.", - "name": "OsDisk" - }, - { - "value": "TemporaryDisk", - "description": "The temporary disk on the compute node is encrypted. On Linux this encryption applies to other partitions (such as those on mounted data disks) when encryption occurs at boot time.", - "name": "TemporaryDisk" - } - ] - } - }, - "title": "The list of disk targets Batch Service will encrypt on the compute node", - "description": "On Linux pool, only \"TemporaryDisk\" is supported; on Windows pool, \"OsDisk\" and \"TemporaryDisk\" must be specified." + "name": { + "type": "string", + "description": "The name of the environment variable." + }, + "value": { + "type": "string", + "description": "The value of the environment variable." } }, - "description": "The disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Azure Compute Gallery Image." + "required": [ + "name" + ] }, - "ContainerConfiguration": { + "FixedScaleSettings": { "type": "object", + "description": "Fixed scale settings for the pool.", "properties": { - "type": { + "resizeTimeout": { "type": "string", - "title": "The container technology to be used.", - "enum": [ - "DockerCompatible", - "CriCompatible" - ], - "x-ms-enum": { - "name": "ContainerType", - "modelAsString": true, - "values": [ - { - "value": "DockerCompatible", - "description": "A Docker compatible container technology will be used to launch the containers." - }, - { - "value": "CriCompatible", - "description": "A CRI based technology will be used to launch the containers." - } - ] - } + "format": "duration", + "title": "The timeout for allocation of compute nodes to the pool.", + "description": "The default value is 15 minutes. Timeout values use ISO 8601 format. For example, use PT10M for 10 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service rejects the request with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).", + "default": "PT15M" }, - "containerImageNames": { - "type": "array", - "items": { - "type": "string" - }, - "title": "The collection of container image names.", - "description": "This is the full image reference, as would be specified to \"docker pull\". An image will be sourced from the default Docker registry unless the image is fully qualified with an alternative registry." + "targetDedicatedNodes": { + "type": "integer", + "format": "int32", + "title": "The desired number of dedicated compute nodes in the pool.", + "description": "At least one of targetDedicatedNodes, targetLowPriorityNodes must be set." }, - "containerRegistries": { - "type": "array", - "items": { - "$ref": "#/definitions/ContainerRegistry" - }, - "x-ms-identifiers": [ - "registryServer" - ], - "title": "Additional private registries from which containers can be pulled.", - "description": "If any images must be downloaded from a private registry which requires credentials, then those credentials must be provided here." + "targetLowPriorityNodes": { + "type": "integer", + "format": "int32", + "title": "The desired number of Spot/low-priority compute nodes in the pool.", + "description": "At least one of targetDedicatedNodes, targetLowPriorityNodes must be set." + }, + "nodeDeallocationOption": { + "$ref": "#/definitions/ComputeNodeDeallocationOption", + "title": "Determines what to do with a node and its running task(s) if the pool size is decreasing.", + "description": "If omitted, the default value is Requeue.", + "x-ms-mutability": [ + "update", + "create" + ] } - }, - "required": [ - "type" - ], - "title": "The configuration for container-enabled pools." + } }, - "NodePlacementPolicyType": { + "IPAddressProvisioningType": { "type": "string", - "title": "The placement policy for allocating nodes in the pool.", - "description": "The default value is regional.", + "description": "The provisioning type for Public IP Addresses for the Batch Pool.", "enum": [ - "Regional", - "Zonal" + "BatchManaged", + "UserManaged", + "NoPublicIPAddresses" ], "x-ms-enum": { - "name": "NodePlacementPolicyType", + "name": "IPAddressProvisioningType", "modelAsString": false, "values": [ { - "value": "Regional", - "description": "All nodes in the pool will be allocated in the same region." + "name": "BatchManaged", + "value": "BatchManaged", + "description": "A public IP will be created and managed by Batch. There may be multiple public IPs depending on the size of the Pool." }, { - "value": "Zonal", - "description": "Nodes in the pool will be spread across different zones with best effort balancing.", - "name": "Zonal" + "name": "UserManaged", + "value": "UserManaged", + "description": "Public IPs are provided by the user and will be used to provision the Compute Nodes." + }, + { + "name": "NoPublicIPAddresses", + "value": "NoPublicIPAddresses", + "description": "No public IP Address will be created for the Compute Nodes in the Pool." } ] } }, - "NodePlacementConfiguration": { - "title": "Node placement configuration for batch pools.", - "description": "Allocation configuration used by Batch Service to provision the nodes.", - "type": "object", - "properties": { - "policy": { - "$ref": "#/definitions/NodePlacementPolicyType", - "title": "Node placement Policy type on Batch Pools.", - "description": "Allocation policy used by Batch Service to provision the nodes. If not specified, Batch will use the regional policy." - } - } - }, - "VMExtension": { + "IPRule": { "type": "object", + "description": "Rule to filter client IP address.", "properties": { - "name": { - "type": "string", - "title": "The name of the virtual machine extension." - }, - "publisher": { - "type": "string", - "title": "The name of the extension handler publisher." - }, - "type": { - "type": "string", - "title": "The type of the extensions." + "action": { + "$ref": "#/definitions/IPRuleAction", + "description": "Action when client IP address is matched." }, - "typeHandlerVersion": { + "value": { "type": "string", - "title": "The version of script handler." - }, - "autoUpgradeMinorVersion": { - "type": "boolean", - "description": "Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true." - }, - "enableAutomaticUpgrade": { - "type": "boolean", - "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available." - }, - "settings": { - "type": "object", - "title": "JSON formatted public settings for the extension." - }, - "protectedSettings": { - "x-ms-secret": true, - "type": "object", - "description": "The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. " - }, - "provisionAfterExtensions": { - "type": "array", - "items": { - "type": "string" - }, - "title": "The collection of extension names.", - "description": "Collection of extension names after which this extension needs to be provisioned." + "title": "The IP address or IP address range to filter", + "description": "IPv4 address, or IPv4 address range in CIDR format." } }, "required": [ - "name", - "publisher", - "type" - ], - "title": "The configuration for virtual machine extensions." + "action", + "value" + ] }, - "WindowsConfiguration": { - "type": "object", - "properties": { - "enableAutomaticUpdates": { - "type": "boolean", - "title": "Whether automatic updates are enabled on the virtual machine.", - "description": "If omitted, the default value is true." - } - }, - "title": "Windows operating system settings to apply to the virtual machine." + "IPRuleAction": { + "type": "string", + "description": "The action when client IP address is matched.", + "enum": [ + "Allow" + ], + "x-ms-enum": { + "name": "IPRuleAction", + "modelAsString": false, + "values": [ + { + "name": "Allow", + "value": "Allow", + "description": "Allow access for the matched client IP address." + } + ] + } }, "ImageReference": { "type": "object", + "description": "A reference to an Azure Virtual Machines Marketplace image or the Azure Image resource of a custom Virtual Machine. To get the list of all imageReferences verified by Azure Batch, see the 'List supported node agent SKUs' operation.", "properties": { "publisher": { "type": "string", @@ -4945,74 +5356,168 @@ "title": "The community gallery image unique identifier", "description": "This property is mutually exclusive with other properties and can be fetched from community gallery image GET call." } - }, - "title": "A reference to an Azure Virtual Machines Marketplace image or the Azure Image resource of a custom Virtual Machine. To get the list of all imageReferences verified by Azure Batch, see the 'List supported node agent SKUs' operation." + } }, - "DataDisk": { + "InboundEndpointProtocol": { + "type": "string", + "description": "The protocol of the endpoint.", + "enum": [ + "TCP", + "UDP" + ], + "x-ms-enum": { + "name": "InboundEndpointProtocol", + "modelAsString": false, + "values": [ + { + "name": "TCP", + "value": "TCP", + "description": "Use TCP for the endpoint." + }, + { + "name": "UDP", + "value": "UDP", + "description": "Use UDP for the endpoint." + } + ] + } + }, + "InboundNatPool": { "type": "object", + "description": "A inbound NAT pool that can be used to address specific ports on compute nodes in a Batch pool externally.", "properties": { - "lun": { + "name": { + "type": "string", + "title": "The name of the endpoint.", + "description": "The name must be unique within a Batch pool, can contain letters, numbers, underscores, periods, and hyphens. Names must start with a letter or number, must end with a letter, number, or underscore, and cannot exceed 77 characters. If any invalid values are provided the request fails with HTTP status code 400." + }, + "protocol": { + "$ref": "#/definitions/InboundEndpointProtocol", + "description": "The protocol of the endpoint." + }, + "backendPort": { "type": "integer", "format": "int32", - "title": "The logical unit number.", - "description": "The lun is used to uniquely identify each data disk. If attaching multiple disks, each should have a distinct lun. The value must be between 0 and 63, inclusive." + "title": "The port number on the compute node.", + "description": "This must be unique within a Batch pool. Acceptable values are between 1 and 65535 except for 29876 and 29877 as these are reserved. If any reserved values are provided the request fails with HTTP status code 400." }, - "caching": { - "$ref": "#/definitions/CachingType", - "title": "The type of caching to be enabled for the data disks.", - "description": "Values are:\n\n none - The caching mode for the disk is not enabled.\n readOnly - The caching mode for the disk is read only.\n readWrite - The caching mode for the disk is read and write.\n\n The default value for caching is none. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/." + "frontendPortRangeStart": { + "type": "integer", + "format": "int32", + "title": "The first port number in the range of external ports that will be used to provide inbound access to the backendPort on individual compute nodes.", + "description": "Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400." }, - "diskSizeGB": { + "frontendPortRangeEnd": { "type": "integer", "format": "int32", - "title": "The initial disk size in GB when creating new data disk." + "title": "The last port number in the range of external ports that will be used to provide inbound access to the backendPort on individual compute nodes.", + "description": "Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved by the Batch service. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400." }, - "storageAccountType": { - "title": "The storage account type to be used for the data disk.", - "description": "If omitted, the default is \"Standard_LRS\". Values are:\n\n Standard_LRS - The data disk should use standard locally redundant storage.\n Premium_LRS - The data disk should use premium locally redundant storage.", - "$ref": "#/definitions/StorageAccountType" + "networkSecurityGroupRules": { + "type": "array", + "title": "A list of network security group rules that will be applied to the endpoint.", + "description": "The maximum number of rules that can be specified across all the endpoints on a Batch pool is 25. If no network security group rules are specified, a default rule will be created to allow inbound access to the specified backendPort. If the maximum number of network security group rules is exceeded the request fails with HTTP status code 400.", + "items": { + "$ref": "#/definitions/NetworkSecurityGroupRule" + }, + "x-ms-identifiers": [] } }, "required": [ - "lun", - "diskSizeGB" + "name", + "protocol", + "backendPort", + "frontendPortRangeStart", + "frontendPortRangeEnd" + ] + }, + "InterNodeCommunicationState": { + "type": "string", + "description": "This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. If not specified, this value defaults to 'Disabled'.", + "enum": [ + "Enabled", + "Disabled" ], - "description": "Settings which will be used by the data disks associated to Compute Nodes in the Pool. When using attached data disks, you need to mount and format the disks from within a VM to use them." + "x-ms-enum": { + "name": "InterNodeCommunicationState", + "modelAsString": false, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Enable network communication between virtual machines." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disable network communication between virtual machines." + } + ] + } }, - "TaskSchedulingPolicy": { + "KeySource": { + "type": "string", + "description": "Type of the key source.", + "enum": [ + "Microsoft.Batch", + "Microsoft.KeyVault" + ], + "x-ms-enum": { + "name": "KeySource", + "modelAsString": false, + "values": [ + { + "name": "Microsoft.Batch", + "value": "Microsoft.Batch", + "description": "Batch creates and manages the encryption keys used to protect the account data." + }, + { + "name": "Microsoft.KeyVault", + "value": "Microsoft.KeyVault", + "description": "The encryption keys used to protect the account data are stored in an external key vault. If this is set then the Batch Account identity must be set to `SystemAssigned` and a valid Key Identifier must also be supplied under the keyVaultProperties." + } + ] + } + }, + "KeyVaultProperties": { "type": "object", + "description": "KeyVault configuration when using an encryption KeySource of Microsoft.KeyVault.", "properties": { - "nodeFillType": { + "keyIdentifier": { "type": "string", - "default": "Spread", - "title": "How tasks should be distributed across compute nodes.", - "enum": [ - "Spread", - "Pack" - ], - "x-ms-enum": { - "name": "ComputeNodeFillType", - "modelAsString": false, - "values": [ - { - "value": "Spread", - "description": "Tasks should be assigned evenly across all nodes in the pool." - }, + "description": "Full path to the secret with or without version. Example https://mykeyvault.vault.azure.net/keys/testkey/6e34a81fef704045975661e297a4c053. or https://mykeyvault.vault.azure.net/keys/testkey. To be usable the following prerequisites must be met:\n\nThe Batch Account has a System Assigned identity\nThe account identity has been granted Key/Get, Key/Unwrap and Key/Wrap permissions\nThe KeyVault has soft-delete and purge protection enabled" + } + } + }, + "KeyVaultReference": { + "type": "object", + "description": "Identifies the Azure key vault associated with a Batch account.", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "The resource ID of the Azure key vault associated with the Batch account.", + "x-ms-arm-id-details": { + "allowedResources": [ { - "value": "Pack", - "description": "As many tasks as possible (taskSlotsPerNode) should be assigned to each node in the pool before any tasks are assigned to the next node in the pool." + "type": "Microsoft.KeyVault/vaults" } ] } + }, + "url": { + "type": "string", + "description": "The URL of the Azure key vault associated with the Batch account." } }, "required": [ - "nodeFillType" - ], - "title": "Specifies how tasks should be distributed across compute nodes." + "id", + "url" + ] }, "LinuxUserConfiguration": { "type": "object", + "description": "Properties used to create a user account on a Linux node.", "properties": { "uid": { "type": "integer", @@ -5028,876 +5533,1253 @@ }, "sshPrivateKey": { "type": "string", + "format": "password", "title": "The SSH private key for the user account.", "description": "The private key must not be password protected. The private key is used to automatically configure asymmetric-key based authentication for SSH between nodes in a Linux pool when the pool's enableInterNodeCommunication property is true (it is ignored if enableInterNodeCommunication is false). It does this by placing the key pair into the user's .ssh directory. If not specified, password-less SSH is not configured between nodes (no modification of the user's .ssh directory is done).", "x-ms-secret": true } - }, - "title": "Properties used to create a user account on a Linux node." + } }, - "WindowsUserConfiguration": { + "ListApplicationPackagesResult": { "type": "object", + "description": "The result of performing list application packages.", "properties": { - "loginMode": { + "value": { + "type": "array", + "description": "The ApplicationPackage items on this page", + "items": { + "$ref": "#/definitions/ApplicationPackage" + } + }, + "nextLink": { "type": "string", - "title": "Login mode for user", - "description": "Specifies login mode for the user. The default value is Interactive.", - "enum": [ - "Batch", - "Interactive" - ], - "x-ms-enum": { - "name": "LoginMode", - "modelAsString": false, - "values": [ - { - "value": "Batch", - "description": "The LOGON32_LOGON_BATCH Win32 login mode. The batch login mode is recommended for long running parallel processes." - }, - { - "value": "Interactive", - "description": "The LOGON32_LOGON_INTERACTIVE Win32 login mode. Some applications require having permissions associated with the interactive login mode. If this is the case for an application used in your task, then this option is recommended." - } - ] + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ListApplicationsResult": { + "type": "object", + "description": "The result of performing list applications.", + "properties": { + "value": { + "type": "array", + "description": "The Application items on this page", + "items": { + "$ref": "#/definitions/Application" } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" } }, - "title": "Properties used to create a user account on a Windows node." + "required": [ + "value" + ] }, - "UserAccount": { + "ListCertificatesResult": { "type": "object", + "description": "Values returned by the List operation.", "properties": { - "name": { - "type": "string", - "title": "The name of the user account. Names can contain any Unicode characters up to a maximum length of 20." + "value": { + "type": "array", + "description": "The Certificate items on this page", + "items": { + "$ref": "#/definitions/Certificate" + } }, - "password": { + "nextLink": { "type": "string", - "title": "The password for the user account.", - "x-ms-secret": true - }, - "elevationLevel": { - "title": "The elevation level of the user account.", - "description": "nonAdmin - The auto user is a standard user without elevated access. admin - The auto user is a user with elevated access and operates with full Administrator permissions. The default value is nonAdmin.", - "$ref": "#/definitions/ElevationLevel" - }, - "linuxUserConfiguration": { - "title": "The Linux-specific user configuration for the user account.", - "description": "This property is ignored if specified on a Windows pool. If not specified, the user is created with the default options.", - "$ref": "#/definitions/LinuxUserConfiguration" - }, - "windowsUserConfiguration": { - "title": "The Windows-specific user configuration for the user account.", - "description": "This property can only be specified if the user is on a Windows pool. If not specified and on a Windows pool, the user is created with the default options.", - "$ref": "#/definitions/WindowsUserConfiguration" + "format": "uri", + "description": "The link to the next page of items" } }, "required": [ - "name", - "password" - ], - "title": "Properties used to create a user on an Azure Batch node." + "value" + ] }, - "StartTask": { + "ListPoolsResult": { "type": "object", + "description": "Values returned by the List operation.", "properties": { - "commandLine": { - "type": "string", - "title": "The command line of the start task.", - "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. Required if any other properties of the startTask are specified." - }, - "resourceFiles": { + "value": { "type": "array", + "description": "The Pool items on this page", "items": { - "$ref": "#/definitions/ResourceFile" - }, - "x-ms-identifiers": [ - "httpUrl" - ], - "title": "A list of files that the Batch service will download to the compute node before running the command line." + "$ref": "#/definitions/Pool" + } }, - "environmentSettings": { + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ListPrivateEndpointConnectionsResult": { + "type": "object", + "description": "Values returned by the List operation.", + "properties": { + "value": { "type": "array", + "description": "The PrivateEndpointConnection items on this page", "items": { - "$ref": "#/definitions/EnvironmentSetting" - }, - "x-ms-identifiers": [ - "name" - ], - "title": "A list of environment variable settings for the start task." - }, - "userIdentity": { - "$ref": "#/definitions/UserIdentity", - "title": "The user identity under which the start task runs.", - "description": "If omitted, the task runs as a non-administrative user unique to the task." - }, - "maxTaskRetryCount": { - "type": "integer", - "format": "int32", - "default": 0, - "title": "The maximum number of times the task may be retried.", - "description": "The Batch service retries a task if its exit code is nonzero. Note that this value specifically controls the number of retries. The Batch service will try the task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the task. If the maximum retry count is -1, the Batch service retries the task without limit. Default is 0" - }, - "waitForSuccess": { - "type": "boolean", - "title": "Whether the Batch service should wait for the start task to complete successfully (that is, to exit with exit code 0) before scheduling any tasks on the compute node.", - "description": "If true and the start task fails on a compute node, the Batch service retries the start task up to its maximum retry count (maxTaskRetryCount). If the task has still not completed successfully after all retries, then the Batch service marks the compute node unusable, and will not schedule tasks to it. This condition can be detected via the node state and scheduling error detail. If false, the Batch service will not wait for the start task to complete. In this case, other tasks can start executing on the compute node while the start task is still running; and even if the start task fails, new tasks will continue to be scheduled on the node. The default is true." + "$ref": "#/definitions/PrivateEndpointConnection" + } }, - "containerSettings": { - "$ref": "#/definitions/TaskContainerSettings", - "title": "The settings for the container under which the start task runs.", - "description": "When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all task environment variables are mapped into the container, and the task command line is executed in the container." + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" } }, - "title": "A task which is run when a compute node joins a pool in the Azure Batch service, or when the compute node is rebooted or reimaged.", - "description": "In some cases the start task may be re-run even though the node was not rebooted. Due to this, start tasks should be idempotent and exit gracefully if the setup they're performing has already been done. Special care should be taken to avoid start tasks which create breakaway process or install/launch services from the start task working directory, as this will block Batch from being able to re-run the start task." + "required": [ + "value" + ] }, - "TaskContainerSettings": { + "ListPrivateLinkResourcesResult": { "type": "object", + "description": "Values returned by the List operation.", "properties": { - "containerRunOptions": { - "type": "string", - "title": "Additional options to the container create command.", - "description": "These additional options are supplied as arguments to the \"docker create\" command, in addition to those controlled by the Batch Service." - }, - "imageName": { - "type": "string", - "title": "The image to use to create the container in which the task will run.", - "description": "This is the full image reference, as would be specified to \"docker pull\". If no tag is provided as part of the image name, the tag \":latest\" is used as a default." - }, - "registry": { - "$ref": "#/definitions/ContainerRegistry", - "title": "The private registry which contains the container image.", - "description": "This setting can be omitted if was already provided at pool creation." - }, - "workingDirectory": { - "type": "string", - "title": "A flag to indicate where the container task working directory is. The default is 'taskWorkingDirectory'.", - "enum": [ - "TaskWorkingDirectory", - "ContainerImageDefault" - ], - "x-ms-enum": { - "name": "ContainerWorkingDirectory", - "modelAsString": false, - "values": [ - { - "value": "TaskWorkingDirectory", - "description": "Use the standard Batch service task working directory, which will contain the Task resource files populated by Batch." - }, - { - "value": "ContainerImageDefault", - "description": "Using container image defined working directory. Beware that this directory will not contain the resource files downloaded by Batch." - } - ] - } - }, - "containerHostBatchBindMounts": { + "value": { "type": "array", + "description": "The PrivateLinkResource items on this page", "items": { - "$ref": "#/definitions/ContainerHostBatchBindMountEntry" - }, - "title": "The paths you want to mounted to container task.", - "description": "If this array is null or be not present, container task will mount entire temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in Linux). It won't' mount any data paths into container if this array is set as empty." + "$ref": "#/definitions/PrivateLinkResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" } }, "required": [ - "imageName" + "value" + ] + }, + "LoginMode": { + "type": "string", + "description": "Specifies login mode for the user. The default value is Interactive.", + "enum": [ + "Batch", + "Interactive" ], - "title": "The container settings for a task." + "x-ms-enum": { + "name": "LoginMode", + "modelAsString": false, + "values": [ + { + "name": "Batch", + "value": "Batch", + "description": "The LOGON32_LOGON_BATCH Win32 login mode. The batch login mode is recommended for long running parallel processes." + }, + { + "name": "Interactive", + "value": "Interactive", + "description": "The LOGON32_LOGON_INTERACTIVE Win32 login mode. Some applications require having permissions associated with the interactive login mode. If this is the case for an application used in your task, then this option is recommended." + } + ] + } }, - "ResourceFile": { + "ManagedDisk": { "type": "object", "properties": { - "autoStorageContainerName": { - "type": "string", - "title": "The storage container name in the auto storage account.", - "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified." - }, - "storageContainerUrl": { - "type": "string", - "title": "The URL of the blob container within Azure Blob Storage.", - "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. This URL must be readable and listable from compute nodes. There are three ways to get such a URL for a container in Azure storage: include a Shared Access Signature (SAS) granting read and list permissions on the container, use a managed identity with read and list permissions, or set the ACL for the container to allow public access." - }, - "httpUrl": { - "type": "string", - "title": "The URL of the file to download.", - "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. If the URL points to Azure Blob Storage, it must be readable from compute nodes. There are three ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read permissions on the blob, use a managed identity with read permission, or set the ACL for the blob or its container to allow public access." - }, - "blobPrefix": { - "type": "string", - "title": "The blob prefix to use when downloading blobs from an Azure Storage container. Only the blobs whose names begin with the specified prefix will be downloaded.", - "description": "The property is valid only when autoStorageContainerName or storageContainerUrl is used. This prefix can be a partial filename or a subdirectory. If a prefix is not specified, all the files in the container will be downloaded." - }, - "filePath": { - "type": "string", - "title": "The location on the compute node to which to download the file, relative to the task's working directory.", - "description": "If the httpUrl property is specified, the filePath is required and describes the path which the file will be downloaded to, including the filename. Otherwise, if the autoStorageContainerName or storageContainerUrl property is specified, filePath is optional and is the directory to download the files to. In the case where filePath is used as a directory, any directory structure already associated with the input data will be retained in full and appended to the specified filePath directory. The specified relative path cannot break out of the task's working directory (for example by using '..')." - }, - "fileMode": { - "type": "string", - "title": "The file permission mode attribute in octal format.", - "description": "This property applies only to files being downloaded to Linux compute nodes. It will be ignored if it is specified for a resourceFile which will be downloaded to a Windows node. If this property is not specified for a Linux node, then a default value of 0770 is applied to the file." + "storageAccountType": { + "$ref": "#/definitions/StorageAccountType", + "description": "The storage account type for use in creating data disks or OS disk." }, - "identityReference": { - "title": "The reference to the user assigned identity to use to access Azure Blob Storage specified by storageContainerUrl or httpUrl", - "$ref": "#/definitions/ComputeNodeIdentityReference" + "securityProfile": { + "$ref": "#/definitions/VMDiskSecurityProfile", + "title": "Specifies the security profile for the managed disk.", + "description": "Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and is required when using Confidential VMs." } - }, - "title": "A single file or multiple files to be downloaded to a compute node." + } }, - "EnvironmentSetting": { + "MetadataItem": { "type": "object", + "title": "A name-value pair associated with a Batch service resource.", + "description": "The Batch service does not assign any meaning to this metadata; it is solely for the use of user code.", "properties": { "name": { "type": "string", - "title": "The name of the environment variable." + "description": "The name of the metadata item." }, "value": { "type": "string", - "title": "The value of the environment variable." + "description": "The value of the metadata item." } }, "required": [ - "name" - ], - "title": "An environment variable to be set on a task process." + "name", + "value" + ] }, - "UserIdentity": { + "MountConfiguration": { "type": "object", + "description": "The file system to mount on each node.", "properties": { - "userName": { - "type": "string", - "title": "The name of the user identity under which the task is run.", - "description": "The userName and autoUser properties are mutually exclusive; you must specify one but not both." + "azureBlobFileSystemConfiguration": { + "$ref": "#/definitions/AzureBlobFileSystemConfiguration", + "title": "The Azure Storage Container to mount using blob FUSE on each node.", + "description": "This property is mutually exclusive with all other properties." }, - "autoUser": { - "$ref": "#/definitions/AutoUserSpecification", - "title": "The auto user under which the task is run.", - "description": "The userName and autoUser properties are mutually exclusive; you must specify one but not both." + "nfsMountConfiguration": { + "$ref": "#/definitions/NFSMountConfiguration", + "title": "The NFS file system to mount on each node.", + "description": "This property is mutually exclusive with all other properties." + }, + "cifsMountConfiguration": { + "$ref": "#/definitions/CIFSMountConfiguration", + "title": "The CIFS/SMB file system to mount on each node.", + "description": "This property is mutually exclusive with all other properties." + }, + "azureFileShareConfiguration": { + "$ref": "#/definitions/AzureFileShareConfiguration", + "title": "The Azure File Share to mount on each node.", + "description": "This property is mutually exclusive with all other properties." } - }, - "title": "The definition of the user identity under which the task is run.", - "description": "Specify either the userName or autoUser property, but not both." + } }, - "UserAssignedIdentities": { + "NFSMountConfiguration": { "type": "object", - "description": "The list of associated user identities.", + "description": "Information used to connect to an NFS file system.", "properties": { - "principalId": { - "readOnly": true, + "source": { "type": "string", - "description": "The principal id of user assigned identity." + "description": "The URI of the file system to mount." }, - "clientId": { - "readOnly": true, + "relativeMountPath": { "type": "string", - "description": "The client id of user assigned identity." - } - } - }, - "ComputeNodeIdentityReference": { - "type": "object", - "properties": { - "resourceId": { + "title": "The relative path on the compute node where the file system will be mounted", + "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable." + }, + "mountOptions": { "type": "string", - "description": "The ARM resource id of the user assigned identity." + "title": "Additional command line options to pass to the mount command.", + "description": "These are 'net use' options in Windows and 'mount' options in Linux." } }, - "description": "The reference to a user assigned identity associated with the Batch pool which a compute node will use." + "required": [ + "source", + "relativeMountPath" + ] }, - "AutoUserSpecification": { + "NameAvailabilityReason": { + "type": "string", + "description": "Gets the reason that a Batch account name could not be used. The Reason element is only returned if NameAvailable is false.", + "enum": [ + "Invalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "NameAvailabilityReason", + "modelAsString": false, + "values": [ + { + "name": "Invalid", + "value": "Invalid", + "description": "The requested name is invalid." + }, + { + "name": "AlreadyExists", + "value": "AlreadyExists", + "description": "The requested name is already in use." + } + ] + } + }, + "NetworkConfiguration": { "type": "object", + "description": "The network configuration for a pool.", "properties": { - "scope": { + "subnetId": { "type": "string", - "title": "The scope for the auto user", - "description": "The default value is Pool. If the pool is running Windows a value of Task should be specified if stricter isolation between tasks is required. For example, if the task mutates the registry in a way which could impact other tasks, or if certificates have been specified on the pool which should not be accessible by normal tasks but should be accessible by start tasks.", + "title": "The ARM resource identifier of the virtual network subnet which the compute nodes of the pool will join. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}.", + "description": "The virtual network must be in the same region and subscription as the Azure Batch account. The specified subnet should have enough free IP addresses to accommodate the number of nodes in the pool. If the subnet doesn't have enough free IP addresses, the pool will partially allocate compute nodes and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule tasks on the compute nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the compute nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the compute nodes to unusable. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication,including ports 29876 and 29877. Also enable outbound connections to Azure Storage on port 443. For more details see: https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration", + "externalDocs": { + "description": "Create an Azure Batch pool in a virtual network", + "url": "https://learn.microsoft.com/azure/batch/batch-virtual-network" + } + }, + "dynamicVnetAssignmentScope": { + "type": "string", + "description": "The scope of dynamic vnet assignment.", + "default": "none", "enum": [ - "Task", - "Pool" + "none", + "job" ], "x-ms-enum": { - "name": "AutoUserScope", + "name": "DynamicVNetAssignmentScope", "modelAsString": false, "values": [ { - "value": "Task", - "description": "Specifies that the service should create a new user for the task." + "name": "none", + "value": "none", + "description": "No dynamic VNet assignment is enabled." }, { - "value": "Pool", - "description": "Specifies that the task runs as the common auto user account which is created on every node in a pool." + "name": "job", + "value": "job", + "description": "Dynamic VNet assignment is done per-job. If this value is set, the network configuration subnet ID must also be set. This feature requires approval before use, please contact support" } ] } }, - "elevationLevel": { - "title": "The elevation level of the auto user.", - "description": "The default value is nonAdmin.", - "$ref": "#/definitions/ElevationLevel" + "endpointConfiguration": { + "$ref": "#/definitions/PoolEndpointConfiguration", + "title": "The configuration for endpoints on compute nodes in the Batch pool.", + "description": "The endpoint configuration for a pool." + }, + "publicIPAddressConfiguration": { + "$ref": "#/definitions/PublicIPAddressConfiguration", + "title": "The Public IPAddress configuration for Compute Nodes in the Batch Pool.", + "description": "The public IP Address configuration of the networking configuration of a Pool." + }, + "enableAcceleratedNetworking": { + "type": "boolean", + "title": "Whether this pool should enable accelerated networking.", + "description": "Accelerated networking enables single root I/O virtualization (SR-IOV) to a VM, which may lead to improved networking performance. For more details, see: https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview.", + "externalDocs": { + "description": "Create a VM with Accelerated Networking.", + "url": "https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview" + } + } + } + }, + "NetworkProfile": { + "type": "object", + "description": "Network profile for Batch account, which contains network rule settings for each endpoint.", + "properties": { + "accountAccess": { + "$ref": "#/definitions/EndpointAccessProfile", + "description": "Network access profile for batchAccount endpoint (Batch account data plane API)." + }, + "nodeManagementAccess": { + "$ref": "#/definitions/EndpointAccessProfile", + "description": "Network access profile for nodeManagement endpoint (Batch service managing compute nodes for Batch pools)." + } + } + }, + "NetworkSecurityGroupRule": { + "type": "object", + "description": "A network security group rule to apply to an inbound endpoint.", + "properties": { + "priority": { + "type": "integer", + "format": "int32", + "title": "The priority for this rule.", + "description": "Priorities within a pool must be unique and are evaluated in order of priority. The lower the number the higher the priority. For example, rules could be specified with order numbers of 150, 250, and 350. The rule with the order number of 150 takes precedence over the rule that has an order of 250. Allowed priorities are 150 to 4096. If any reserved or duplicate values are provided the request fails with HTTP status code 400." + }, + "access": { + "$ref": "#/definitions/NetworkSecurityGroupRuleAccess", + "description": "The action that should be taken for a specified IP address, subnet range or tag." + }, + "sourceAddressPrefix": { + "type": "string", + "title": "The source address prefix or tag to match for the rule.", + "description": "Valid values are a single IP address (i.e. 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all addresses). If any other values are provided the request fails with HTTP status code 400." + }, + "sourcePortRanges": { + "type": "array", + "title": "The source port ranges to match for the rule.", + "description": "Valid values are '*' (for all ports 0 - 65535) or arrays of ports or port ranges (i.e. 100-200). The ports should in the range of 0 to 65535 and the port ranges or ports can't overlap. If any other values are provided the request fails with HTTP status code 400. Default value will be *.", + "items": { + "type": "string" + } } }, - "title": "Specifies the parameters for the auto user that runs a task on the Batch service." + "required": [ + "priority", + "access", + "sourceAddressPrefix" + ] }, - "ElevationLevel": { + "NetworkSecurityGroupRuleAccess": { "type": "string", - "title": "The elevation level of the user.", + "description": "The action that should be taken for a specified IP address, subnet range or tag.", "enum": [ - "NonAdmin", - "Admin" + "Allow", + "Deny" ], "x-ms-enum": { - "name": "ElevationLevel", + "name": "NetworkSecurityGroupRuleAccess", "modelAsString": false, "values": [ { - "value": "NonAdmin", - "description": "The user is a standard user without elevated access." + "name": "Allow", + "value": "Allow", + "description": "Allow access." }, { - "value": "Admin", - "description": "The user is a user with elevated access and operates with full Administrator permissions." + "name": "Deny", + "value": "Deny", + "description": "Deny access." } ] } }, - "StorageAccountType": { + "NodeCommunicationMode": { "type": "string", - "title": "The storage account type for use in creating data disks or OS disk.", + "description": "Determines how a pool communicates with the Batch service.", "enum": [ - "Standard_LRS", - "Premium_LRS", - "StandardSSD_LRS" + "Default", + "Classic", + "Simplified" ], "x-ms-enum": { - "name": "StorageAccountType", + "name": "NodeCommunicationMode", "modelAsString": false, "values": [ { - "value": "Standard_LRS", - "description": "The data disk / OS disk should use standard locally redundant storage." + "name": "Default", + "value": "Default", + "description": "The node communication mode is automatically set by the Batch service." }, { - "value": "Premium_LRS", - "description": "The data disk / OS disk should use premium locally redundant storage." + "name": "Classic", + "value": "Classic", + "description": "Nodes using the Classic communication mode require inbound TCP communication on ports 29876 and 29877 from the \"BatchNodeManagement.{region}\" service tag and outbound TCP communication on port 443 to the \"Storage.region\" and \"BatchNodeManagement.{region}\" service tags." }, { - "value": "StandardSSD_LRS", - "description": "The data disk / OS disk should use standard SSD locally redundant storage." + "name": "Simplified", + "value": "Simplified", + "description": "Nodes using the Simplified communication mode require outbound TCP communication on port 443 to the \"BatchNodeManagement.{region}\" service tag. No open inbound ports are required." } ] } }, - "CachingType": { + "NodePlacementConfiguration": { + "type": "object", + "title": "Node placement configuration for batch pools.", + "description": "Allocation configuration used by Batch Service to provision the nodes.", + "properties": { + "policy": { + "$ref": "#/definitions/NodePlacementPolicyType", + "title": "The placement policy for allocating nodes in the pool.", + "description": "Allocation policy used by Batch Service to provision the nodes. If not specified, Batch will use the regional policy." + } + } + }, + "NodePlacementPolicyType": { "type": "string", - "title": "The type of caching to enable for the disk.", + "description": "The default value is regional.", "enum": [ - "None", - "ReadOnly", - "ReadWrite" + "Regional", + "Zonal" ], "x-ms-enum": { - "name": "CachingType", + "name": "NodePlacementPolicyType", "modelAsString": false, "values": [ { - "value": "None", - "description": "The caching mode for the disk is not enabled." - }, - { - "value": "ReadOnly", - "description": "The caching mode for the disk is read only." + "name": "Regional", + "value": "Regional", + "description": "All nodes in the pool will be allocated in the same region." }, { - "value": "ReadWrite", - "description": "The caching mode for the disk is read and write." + "name": "Zonal", + "value": "Zonal", + "description": "Nodes in the pool will be spread across different zones with best effort balancing." } ] } }, - "ContainerHostDataPath": { - "type": "string", - "title": "The paths which will be mounted to container task's container.", - "enum": [ - "Shared", - "Startup", - "VfsMounts", - "Task", - "JobPrep", - "Applications" - ], - "x-ms-enum": { - "name": "ContainerHostDataPath", - "modelAsString": true, - "values": [ - { - "value": "Shared", - "description": "The path for multi-instances task to shared their files." - }, - { - "value": "Startup", - "description": "The path for start task." - }, - { - "value": "VfsMounts", - "description": "The path contains all virtual file systems are mounted on this node." - }, - { - "value": "Task", - "description": "The task path." + "OSDisk": { + "type": "object", + "description": "Settings for the operating system disk of the virtual machine.", + "properties": { + "ephemeralOSDiskSettings": { + "$ref": "#/definitions/DiffDiskSettings", + "description": "Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine." + }, + "caching": { + "$ref": "#/definitions/CachingType", + "description": "The type of caching to enable for the disk." + }, + "managedDisk": { + "$ref": "#/definitions/ManagedDisk", + "title": "The managed disk parameters." + }, + "diskSizeGB": { + "type": "integer", + "format": "int32", + "description": "The initial disk size in GB when creating new OS disk." + }, + "writeAcceleratorEnabled": { + "type": "boolean", + "description": "Specifies whether writeAccelerator should be enabled or disabled on the disk." + } + } + }, + "Operation": { + "type": "object", + "description": "A REST API operation", + "properties": { + "name": { + "type": "string", + "title": "The operation name.", + "description": "This is of the format {provider}/{resource}/{operation}" + }, + "isDataAction": { + "type": "boolean", + "description": "Indicates whether the operation is a data action" + }, + "display": { + "$ref": "#/definitions/OperationDisplay", + "description": "The object that describes the operation." + }, + "origin": { + "type": "string", + "description": "The intended executor of the operation." + }, + "properties": { + "description": "Properties of the operation." + } + } + }, + "OperationDisplay": { + "type": "object", + "description": "The object that describes the operation.", + "properties": { + "provider": { + "type": "string", + "description": "Friendly name of the resource provider." + }, + "operation": { + "type": "string", + "title": "The operation type.", + "description": "For example: read, write, delete, or listKeys/action" + }, + "resource": { + "type": "string", + "description": "The resource type on which the operation is performed." + }, + "description": { + "type": "string", + "description": "The friendly name of the operation" + } + } + }, + "OperationListResult": { + "type": "object", + "title": "Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next set of results.", + "description": "Paged collection of Operation items", + "properties": { + "value": { + "type": "array", + "title": "The list of operations supported by the resource provider.", + "description": "The Operation items on this page", + "items": { + "$ref": "#/definitions/Operation" }, - { - "value": "JobPrep", - "description": "The job-prep task path." + "x-ms-identifiers": [ + "name" + ] + }, + "nextLink": { + "type": "string", + "format": "uri", + "title": "The URL to get the next set of operation list results if there are any.", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "OutboundEnvironmentEndpoint": { + "type": "object", + "description": "A collection of related endpoints from the same service for which the Batch service requires outbound access.", + "properties": { + "category": { + "type": "string", + "description": "The type of service that the Batch service connects to.", + "readOnly": true + }, + "endpoints": { + "type": "array", + "description": "The endpoints for this service to which the Batch service makes outbound calls.", + "items": { + "$ref": "#/definitions/EndpointDependency" }, - { - "value": "Applications", - "description": "The applications path." - } - ] + "readOnly": true, + "x-ms-identifiers": [ + "domainName" + ] + } } }, - "ContainerHostBatchBindMountEntry": { + "OutboundEnvironmentEndpointCollection": { "type": "object", - "title": "The entry of path and mount mode you want to mount into task container.", + "description": "Values returned by the List operation.", "properties": { - "source": { - "$ref": "#/definitions/ContainerHostDataPath", - "title": "The path which be mounted to container customer can select." + "value": { + "type": "array", + "description": "The OutboundEnvironmentEndpoint items on this page", + "items": { + "$ref": "#/definitions/OutboundEnvironmentEndpoint" + }, + "readOnly": true }, - "isReadOnly": { - "type": "boolean", - "title": "Mount this source path as read-only mode or not. Default value is false (read/write mode).", - "description": "For Linux, if you mount this path as a read/write mode, this does not mean that all users in container have the read/write access for the path, it depends on the access in host VM. If this path is mounted read-only, all users within the container will not be able to modify the path." + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" } - } + }, + "required": [ + "value" + ] }, - "DiffDiskPlacement": { + "PackageState": { "type": "string", - "title": "Specifies the ephemeral disk placement for operating system disk for all VMs in the pool.", - "description": "This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements", + "description": "The current state of the application package.", "enum": [ - "CacheDisk" + "Pending", + "Active" ], "x-ms-enum": { - "name": "DiffDiskPlacement", + "name": "PackageState", "modelAsString": false, "values": [ { - "value": "CacheDisk", - "description": "The Ephemeral OS Disk is stored on the VM cache.", - "name": "CacheDisk" + "name": "Pending", + "value": "Pending", + "description": "The application package has been created but has not yet been activated." + }, + { + "name": "Active", + "value": "Active", + "description": "The application package is ready for use." } ] } }, - "DiffDiskSettings": { - "type": "object", - "properties": { - "placement": { - "$ref": "#/definitions/DiffDiskPlacement", - "title": "Specifies the ephemeral disk placement for operating system disk for all VMs in the pool.", - "description": "This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements." - } - }, - "title": "Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine." - }, - "OSDisk": { + "Pool": { "type": "object", + "description": "Contains information about a pool.", "properties": { - "ephemeralOSDiskSettings": { - "$ref": "#/definitions/DiffDiskSettings", - "title": "Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine." - }, - "caching": { - "$ref": "#/definitions/CachingType", - "title": "Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage." + "properties": { + "$ref": "#/definitions/PoolProperties", + "description": "The properties associated with the pool.", + "x-ms-client-flatten": true }, - "managedDisk": { - "$ref": "#/definitions/ManagedDisk", - "title": "The managed disk parameters." + "identity": { + "$ref": "#/definitions/BatchPoolIdentity", + "description": "The type of identity used for the Batch Pool." }, - "diskSizeGB": { - "type": "integer", - "format": "int32", - "title": "The initial disk size in GB when creating new OS disk." + "etag": { + "type": "string", + "description": "The ETag of the resource, used for concurrency statements.", + "readOnly": true }, - "writeAcceleratorEnabled": { - "type": "boolean", - "title": "Specifies whether writeAccelerator should be enabled or disabled on the disk." + "tags": { + "type": "object", + "description": "The tags of the resource.", + "additionalProperties": { + "type": "string" + } } }, - "title": "Settings for the operating system disk of the virtual machine." + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] }, - "IPAddressProvisioningType": { + "PoolAllocationMode": { "type": "string", - "title": "The provisioning type for Public IP Addresses for the Batch Pool.", + "description": "The allocation mode for creating pools in the Batch account.", "enum": [ - "BatchManaged", - "UserManaged", - "NoPublicIPAddresses" + "BatchService", + "UserSubscription" ], "x-ms-enum": { - "name": "IPAddressProvisioningType", + "name": "PoolAllocationMode", "modelAsString": false, "values": [ { - "value": "BatchManaged", - "description": "A public IP will be created and managed by Batch. There may be multiple public IPs depending on the size of the Pool." - }, - { - "value": "UserManaged", - "description": "Public IPs are provided by the user and will be used to provision the Compute Nodes." + "name": "BatchService", + "value": "BatchService", + "description": "Pools will be allocated in subscriptions owned by the Batch service." }, { - "value": "NoPublicIPAddresses", - "description": "No public IP Address will be created for the Compute Nodes in the Pool." + "name": "UserSubscription", + "value": "UserSubscription", + "description": "Pools will be allocated in a subscription owned by the user." } ] } }, - "PublicIPAddressConfiguration": { + "PoolEndpointConfiguration": { "type": "object", + "description": "The endpoint configuration for a pool.", "properties": { - "provision": { - "$ref": "#/definitions/IPAddressProvisioningType", - "title": "The provisioning type for Public IP Addresses for the pool", - "description": "The default value is BatchManaged" - }, - "ipAddressIds": { + "inboundNatPools": { "type": "array", + "title": "A list of inbound NAT pools that can be used to address specific ports on an individual compute node externally.", + "description": "The maximum number of inbound NAT pools per Batch pool is 5. If the maximum number of inbound NAT pools is exceeded the request fails with HTTP status code 400. This cannot be specified if the IPAddressProvisioningType is NoPublicIPAddresses.", "items": { - "type": "string" + "$ref": "#/definitions/InboundNatPool" }, - "title": "The list of public IPs which the Batch service will use when provisioning Compute Nodes.", - "description": "The number of IPs specified here limits the maximum size of the Pool - 100 dedicated nodes or 100 Spot/low-priority nodes can be allocated for each public IP. For example, a pool needing 250 dedicated VMs would need at least 3 public IPs specified. Each element of this collection is of the form: /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}." + "x-ms-identifiers": [ + "name" + ] } }, - "description": "The public IP Address configuration of the networking configuration of a Pool." + "required": [ + "inboundNatPools" + ] }, - "NetworkConfiguration": { + "PoolIdentityType": { + "type": "string", + "description": "The type of identity used for the Batch Pool.", + "enum": [ + "UserAssigned", + "None" + ], + "x-ms-enum": { + "name": "PoolIdentityType", + "modelAsString": false, + "values": [ + { + "name": "UserAssigned", + "value": "UserAssigned", + "description": "Batch pool has user assigned identities with it." + }, + { + "name": "None", + "value": "None", + "description": "Batch pool has no identity associated with it. Setting `None` in update pool will remove existing identities." + } + ] + } + }, + "PoolProperties": { "type": "object", + "description": "Pool properties.", "properties": { - "subnetId": { + "displayName": { "type": "string", - "title": "The ARM resource identifier of the virtual network subnet which the compute nodes of the pool will join. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}.", - "description": "The virtual network must be in the same region and subscription as the Azure Batch account. The specified subnet should have enough free IP addresses to accommodate the number of nodes in the pool. If the subnet doesn't have enough free IP addresses, the pool will partially allocate compute nodes and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule tasks on the compute nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the compute nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the compute nodes to unusable. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication,including ports 29876 and 29877. Also enable outbound connections to Azure Storage on port 443. For more details see: https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/batch/batch-virtual-network", - "description": "Create an Azure Batch pool in a virtual network" - } + "title": "The display name for the pool.", + "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024." }, - "dynamicVnetAssignmentScope": { + "lastModified": { "type": "string", - "title": "The scope of dynamic vnet assignment.", - "default": "none", - "enum": [ - "none", - "job" - ], - "x-ms-enum": { - "name": "DynamicVNetAssignmentScope", - "modelAsString": false, - "values": [ - { - "value": "none", - "description": "No dynamic VNet assignment is enabled." - }, - { - "value": "job", - "description": "Dynamic VNet assignment is done per-job. If this value is set, the network configuration subnet ID must also be set. This feature requires approval before use, please contact support" - } - ] - } + "format": "date-time", + "title": "The last modified time of the pool.", + "description": "This is the last time at which the pool level data, such as the targetDedicatedNodes or autoScaleSettings, changed. It does not factor in node-level changes such as a compute node changing state.", + "readOnly": true }, - "endpointConfiguration": { - "$ref": "#/definitions/PoolEndpointConfiguration", - "title": "The configuration for endpoints on compute nodes in the Batch pool." + "creationTime": { + "type": "string", + "format": "date-time", + "description": "The creation time of the pool.", + "readOnly": true }, - "publicIPAddressConfiguration": { - "$ref": "#/definitions/PublicIPAddressConfiguration", - "title": "The Public IPAddress configuration for Compute Nodes in the Batch Pool." + "provisioningState": { + "$ref": "#/definitions/PoolProvisioningState", + "description": "The current state of the pool.", + "readOnly": true }, - "enableAcceleratedNetworking": { - "type": "boolean", - "title": "Whether this pool should enable accelerated networking.", - "description": "Accelerated networking enables single root I/O virtualization (SR-IOV) to a VM, which may lead to improved networking performance. For more details, see: https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview.", - "externalDocs": { - "url": "https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview", - "description": "Create a VM with Accelerated Networking." - } - } - }, - "description": "The network configuration for a pool." - }, - "MetadataItem": { - "type": "object", - "properties": { - "name": { + "provisioningStateTransitionTime": { "type": "string", - "title": "The name of the metadata item." + "format": "date-time", + "description": "The time at which the pool entered its current state.", + "readOnly": true }, - "value": { + "allocationState": { + "$ref": "#/definitions/AllocationState", + "description": "Whether the pool is resizing.", + "readOnly": true + }, + "allocationStateTransitionTime": { "type": "string", - "title": "The value of the metadata item." - } - }, - "required": [ - "name", - "value" - ], - "title": "A name-value pair associated with a Batch service resource.", - "description": "The Batch service does not assign any meaning to this metadata; it is solely for the use of user code." - }, - "ResizeOperationStatus": { - "type": "object", - "properties": { - "targetDedicatedNodes": { + "format": "date-time", + "description": "The time at which the pool entered its current allocation state.", + "readOnly": true + }, + "vmSize": { + "type": "string", + "title": "The size of virtual machines in the pool. All VMs in a pool are the same size.", + "description": "For information about available VM sizes, see Sizes for Virtual Machines in Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series)." + }, + "deploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration", + "title": "This property describes the virtual machines that the pool nodes will be deployed on.", + "description": "Deployment configuration properties." + }, + "currentDedicatedNodes": { + "type": "integer", + "format": "int32", + "description": "The number of dedicated compute nodes currently in the pool.", + "readOnly": true + }, + "currentLowPriorityNodes": { "type": "integer", "format": "int32", - "title": "The desired number of dedicated compute nodes in the pool." + "description": "The number of Spot/low-priority compute nodes currently in the pool.", + "readOnly": true + }, + "scaleSettings": { + "$ref": "#/definitions/ScaleSettings", + "title": "Settings which configure the number of nodes in the pool.", + "description": "Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes." + }, + "autoScaleRun": { + "$ref": "#/definitions/AutoScaleRun", + "title": "The results and errors from the last execution of the autoscale formula.", + "description": "This property is set only if the pool automatically scales, i.e. autoScaleSettings are used.", + "readOnly": true + }, + "interNodeCommunication": { + "$ref": "#/definitions/InterNodeCommunicationState", + "title": "Whether the pool permits direct communication between nodes.", + "description": "This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. If not specified, this value defaults to 'Disabled'." }, - "targetLowPriorityNodes": { + "networkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration", + "title": "The network configuration for the pool.", + "description": "The network configuration for a pool." + }, + "taskSlotsPerNode": { "type": "integer", "format": "int32", - "title": "The desired number of Spot/low-priority compute nodes in the pool." - }, - "resizeTimeout": { - "type": "string", - "format": "duration", - "title": "The timeout for allocation of compute nodes to the pool or removal of compute nodes from the pool.", - "description": "The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)." - }, - "nodeDeallocationOption": { - "title": "Determines what to do with a node and its running task(s) if the pool size is decreasing.", - "description": "The default value is requeue.", - "$ref": "#/definitions/ComputeNodeDeallocationOption" + "title": "The number of task slots that can be used to run concurrent tasks on a single compute node in the pool.", + "description": "The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256.", + "default": 1 }, - "startTime": { - "type": "string", - "format": "date-time", - "title": "The time when this resize operation was started." + "taskSchedulingPolicy": { + "$ref": "#/definitions/TaskSchedulingPolicy", + "title": "How tasks are distributed across compute nodes in a pool.", + "description": "If not specified, the default is spread." }, - "errors": { + "userAccounts": { "type": "array", + "description": "The list of user accounts to be created on each node in the pool.", "items": { - "$ref": "#/definitions/ResizeError" + "$ref": "#/definitions/UserAccount" }, "x-ms-identifiers": [ - "code" - ], - "title": "Details of any errors encountered while performing the last resize on the pool.", - "description": "This property is set only if an error occurred during the last pool resize, and only when the pool allocationState is Steady." - } - }, - "title": "Details about the current or last completed resize operation.", - "description": "Describes either the current operation (if the pool AllocationState is Resizing) or the previously completed operation (if the AllocationState is Steady)." - }, - "PoolEndpointConfiguration": { - "type": "object", - "properties": { - "inboundNatPools": { + "name" + ] + }, + "metadata": { "type": "array", + "title": "A list of name-value pairs associated with the pool as metadata.", + "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code.", "items": { - "$ref": "#/definitions/InboundNatPool" + "$ref": "#/definitions/MetadataItem" }, "x-ms-identifiers": [ "name" - ], - "title": "A list of inbound NAT pools that can be used to address specific ports on an individual compute node externally.", - "description": "The maximum number of inbound NAT pools per Batch pool is 5. If the maximum number of inbound NAT pools is exceeded the request fails with HTTP status code 400. This cannot be specified if the IPAddressProvisioningType is NoPublicIPAddresses." - } - }, - "required": [ - "inboundNatPools" - ], - "title": "The endpoint configuration for a pool." - }, - "InboundNatPool": { - "type": "object", - "properties": { - "name": { - "type": "string", - "title": "The name of the endpoint.", - "description": "The name must be unique within a Batch pool, can contain letters, numbers, underscores, periods, and hyphens. Names must start with a letter or number, must end with a letter, number, or underscore, and cannot exceed 77 characters. If any invalid values are provided the request fails with HTTP status code 400." + ] }, - "protocol": { - "type": "string", - "title": "The protocol of the endpoint.", - "enum": [ - "TCP", - "UDP" - ], - "x-ms-enum": { - "name": "InboundEndpointProtocol", - "modelAsString": false, - "values": [ - { - "value": "TCP", - "description": "Use TCP for the endpoint." - }, - { - "value": "UDP", - "description": "Use UDP for the endpoint." - } - ] + "startTask": { + "$ref": "#/definitions/StartTask", + "title": "A task specified to run on each compute node as it joins the pool.", + "description": "In an PATCH (update) operation, this property can be set to an empty object to remove the start task from the pool." + }, + "certificates": { + "type": "array", + "title": "The list of certificates to be installed on each compute node in the pool.", + "description": "For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.\n\nWarning: This property 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.", + "items": { + "$ref": "#/definitions/CertificateReference" } }, - "backendPort": { - "type": "integer", - "format": "int32", - "title": "The port number on the compute node.", - "description": "This must be unique within a Batch pool. Acceptable values are between 1 and 65535 except for 29876 and 29877 as these are reserved. If any reserved values are provided the request fails with HTTP status code 400." + "applicationPackages": { + "type": "array", + "title": "The list of application packages to be installed on each compute node in the pool.", + "description": "Changes to application package references affect all new compute nodes joining the pool, but do not affect compute nodes that are already in the pool until they are rebooted or reimaged. There is a maximum of 10 application package references on any given pool.", + "items": { + "$ref": "#/definitions/ApplicationPackageReference" + } }, - "frontendPortRangeStart": { - "type": "integer", - "format": "int32", - "title": "The first port number in the range of external ports that will be used to provide inbound access to the backendPort on individual compute nodes.", - "description": "Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400." + "applicationLicenses": { + "type": "array", + "title": "The list of application licenses the Batch service will make available on each compute node in the pool.", + "description": "The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, pool creation will fail.", + "items": { + "type": "string" + } }, - "frontendPortRangeEnd": { - "type": "integer", - "format": "int32", - "title": "The last port number in the range of external ports that will be used to provide inbound access to the backendPort on individual compute nodes.", - "description": "Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved by the Batch service. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400." + "resizeOperationStatus": { + "$ref": "#/definitions/ResizeOperationStatus", + "title": "Contains details about the current or last completed resize operation.", + "description": "Describes either the current operation (if the pool AllocationState is Resizing) or the previously completed operation (if the AllocationState is Steady).", + "readOnly": true }, - "networkSecurityGroupRules": { + "mountConfiguration": { "type": "array", - "title": "A list of network security group rules that will be applied to the endpoint.", - "description": "The maximum number of rules that can be specified across all the endpoints on a Batch pool is 25. If no network security group rules are specified, a default rule will be created to allow inbound access to the specified backendPort. If the maximum number of network security group rules is exceeded the request fails with HTTP status code 400.", + "title": "A list of file systems to mount on each node in the pool.", + "description": "This supports Azure Files, NFS, CIFS/SMB, and Blobfuse.", "items": { - "$ref": "#/definitions/NetworkSecurityGroupRule" + "$ref": "#/definitions/MountConfiguration" }, "x-ms-identifiers": [] + }, + "targetNodeCommunicationMode": { + "$ref": "#/definitions/NodeCommunicationMode", + "title": "Determines how a pool communicates with the Batch service.", + "description": "If omitted, the default value is Default." + }, + "currentNodeCommunicationMode": { + "$ref": "#/definitions/NodeCommunicationMode", + "description": "Determines how a pool communicates with the Batch service.", + "x-nullable": true, + "readOnly": true + }, + "upgradePolicy": { + "$ref": "#/definitions/UpgradePolicy", + "title": "The upgrade policy for the pool.", + "description": "Describes an upgrade policy - automatic, manual, or rolling." + }, + "resourceTags": { + "type": "object", + "title": "The user-specified tags associated with the pool.", + "description": "The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'.", + "additionalProperties": { + "type": "string" + } } - }, - "required": [ - "name", - "protocol", - "backendPort", - "frontendPortRangeStart", - "frontendPortRangeEnd" + } + }, + "PoolProvisioningState": { + "type": "string", + "description": "The current state of the pool.", + "enum": [ + "Succeeded", + "Deleting" ], - "title": "A inbound NAT pool that can be used to address specific ports on compute nodes in a Batch pool externally." + "x-ms-enum": { + "name": "PoolProvisioningState", + "modelAsString": false, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The pool is available to run tasks subject to the availability of compute nodes." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The user has requested that the pool be deleted, but the delete operation has not yet completed." + } + ] + } }, - "NetworkSecurityGroupRule": { + "PrivateEndpoint": { "type": "object", + "description": "The private endpoint of the private endpoint connection.", "properties": { - "priority": { - "type": "integer", - "format": "int32", - "title": "The priority for this rule.", - "description": "Priorities within a pool must be unique and are evaluated in order of priority. The lower the number the higher the priority. For example, rules could be specified with order numbers of 150, 250, and 350. The rule with the order number of 150 takes precedence over the rule that has an order of 250. Allowed priorities are 150 to 4096. If any reserved or duplicate values are provided the request fails with HTTP status code 400." + "id": { + "type": "string", + "description": "The ARM resource identifier of the private endpoint. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/privateEndpoints/{privateEndpoint}.", + "readOnly": true + } + } + }, + "PrivateEndpointConnection": { + "type": "object", + "description": "Contains information about a private link resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "description": "The properties associated with the private endpoint connection.", + "x-ms-client-flatten": true }, - "access": { + "etag": { "type": "string", - "title": "The action that should be taken for a specified IP address, subnet range or tag.", - "enum": [ - "Allow", - "Deny" - ], - "x-ms-enum": { - "name": "NetworkSecurityGroupRuleAccess", - "modelAsString": false, - "values": [ - { - "value": "Allow", - "description": "Allow access." - }, - { - "value": "Deny", - "description": "Deny access." - } - ] + "description": "The ETag of the resource, used for concurrency statements.", + "readOnly": true + }, + "tags": { + "type": "object", + "description": "The tags of the resource.", + "additionalProperties": { + "type": "string" } + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "description": "Private endpoint connection properties.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/PrivateEndpointConnectionProvisioningState", + "description": "The provisioning state of the private endpoint connection.", + "readOnly": true }, - "sourceAddressPrefix": { - "type": "string", - "title": "The source address prefix or tag to match for the rule.", - "description": "Valid values are a single IP address (i.e. 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all addresses). If any other values are provided the request fails with HTTP status code 400." + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "title": "The ARM resource identifier of the private endpoint.", + "description": "The private endpoint of the private endpoint connection.", + "readOnly": true }, - "sourcePortRanges": { + "groupIds": { "type": "array", + "title": "The group id of the private endpoint connection.", + "description": "The value has one and only one group id.", "items": { "type": "string" }, - "title": "The source port ranges to match for the rule.", - "description": "Valid values are '*' (for all ports 0 - 65535) or arrays of ports or port ranges (i.e. 100-200). The ports should in the range of 0 to 65535 and the port ranges or ports can't overlap. If any other values are provided the request fails with HTTP status code 400. Default value will be *." + "readOnly": true + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "description": "The private link service connection state of the private endpoint connection." } - }, - "required": [ - "priority", - "access", - "sourceAddressPrefix" + } + }, + "PrivateEndpointConnectionProvisioningState": { + "type": "string", + "description": "The provisioning state of the private endpoint connection.", + "enum": [ + "Creating", + "Updating", + "Deleting", + "Succeeded", + "Failed", + "Cancelled" ], - "title": "A network security group rule to apply to an inbound endpoint." + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": false, + "values": [ + { + "name": "Creating", + "value": "Creating", + "description": "The connection is creating." + }, + { + "name": "Updating", + "value": "Updating", + "description": "The user has requested that the connection status be updated, but the update operation has not yet completed. You may not reference the connection when connecting the Batch account." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The connection is deleting." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The connection status is final and is ready for use if Status is Approved." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The user requested that the connection be updated and it failed. You may retry the update operation." + }, + { + "name": "Cancelled", + "value": "Cancelled", + "description": "The user has cancelled the connection creation." + } + ] + } }, - "ListPrivateLinkResourcesResult": { + "PrivateLinkResource": { "type": "object", + "description": "Contains information about a private link resource.", "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/PrivateLinkResource" - }, - "description": "The collection of returned private link resources." + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "The properties associated with the private link resource.", + "x-ms-client-flatten": true }, - "nextLink": { + "etag": { "type": "string", - "description": "The continuation token." + "description": "The ETag of the resource, used for concurrency statements.", + "readOnly": true + }, + "tags": { + "type": "object", + "description": "The tags of the resource.", + "additionalProperties": { + "type": "string" + } } }, - "description": "Values returned by the List operation." + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] }, - "ListPrivateEndpointConnectionsResult": { + "PrivateLinkResourceProperties": { "type": "object", + "description": "Private link resource properties.", "properties": { - "value": { + "groupId": { + "type": "string", + "title": "The group id of the private link resource.", + "description": "The group id is used to establish the private link connection.", + "readOnly": true + }, + "requiredMembers": { "type": "array", + "description": "The list of required members that are used to establish the private link connection.", "items": { - "$ref": "#/definitions/PrivateEndpointConnection" + "type": "string" }, - "description": "The collection of returned private endpoint connection." + "readOnly": true }, - "nextLink": { - "type": "string", - "description": "The continuation token." + "requiredZoneNames": { + "type": "array", + "description": "The list of required zone names for the private DNS resource name", + "items": { + "type": "string" + }, + "readOnly": true } - }, - "description": "Values returned by the List operation." + } }, - "ListPoolsResult": { + "PrivateLinkServiceConnectionState": { "type": "object", + "description": "The private link service connection state of the private endpoint connection", "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/Pool" - }, - "description": "The collection of returned pools." + "status": { + "$ref": "#/definitions/PrivateLinkServiceConnectionStatus", + "description": "The status of the Batch private endpoint connection" }, - "nextLink": { + "description": { + "type": "string", + "description": "Description of the private Connection state" + }, + "actionsRequired": { "type": "string", - "description": "The continuation token." + "description": "Action required on the private connection state", + "readOnly": true } }, - "description": "Values returned by the List operation." + "required": [ + "status" + ] }, - "CloudError": { + "PrivateLinkServiceConnectionStatus": { + "type": "string", + "description": "The status of the Batch private endpoint connection", + "enum": [ + "Approved", + "Pending", + "Rejected", + "Disconnected" + ], + "x-ms-enum": { + "name": "PrivateLinkServiceConnectionStatus", + "modelAsString": false, + "values": [ + { + "name": "Approved", + "value": "Approved", + "description": "The private endpoint connection is approved and can be used to access Batch account" + }, + { + "name": "Pending", + "value": "Pending", + "description": "The private endpoint connection is pending and cannot be used to access Batch account" + }, + { + "name": "Rejected", + "value": "Rejected", + "description": "The private endpoint connection is rejected and cannot be used to access Batch account" + }, + { + "name": "Disconnected", + "value": "Disconnected", + "description": "The private endpoint connection is disconnected and cannot be used to access Batch account" + } + ] + } + }, + "ProvisioningState": { + "type": "string", + "description": "The provisioned state of the resource", + "enum": [ + "Invalid", + "Creating", + "Deleting", + "Succeeded", + "Failed", + "Cancelled" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": false, + "values": [ + { + "name": "Invalid", + "value": "Invalid", + "description": "The account is in an invalid state." + }, + { + "name": "Creating", + "value": "Creating", + "description": "The account is being created." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The account is being deleted." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The account has been created and is ready for use." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The last operation for the account is failed." + }, + { + "name": "Cancelled", + "value": "Cancelled", + "description": "The last operation for the account is cancelled." + } + ] + } + }, + "PublicIPAddressConfiguration": { "type": "object", - "x-ms-external": true, + "description": "The public IP Address configuration of the networking configuration of a Pool.", "properties": { - "error": { - "description": "The body of the error response.", - "$ref": "#/definitions/CloudErrorBody" + "provision": { + "$ref": "#/definitions/IPAddressProvisioningType", + "title": "The provisioning type for Public IP Addresses for the Batch Pool.", + "description": "The default value is BatchManaged" + }, + "ipAddressIds": { + "type": "array", + "title": "The list of public IPs which the Batch service will use when provisioning Compute Nodes.", + "description": "The number of IPs specified here limits the maximum size of the Pool - 100 dedicated nodes or 100 Spot/low-priority nodes can be allocated for each public IP. For example, a pool needing 250 dedicated VMs would need at least 3 public IPs specified. Each element of this collection is of the form: /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}.", + "items": { + "type": "string" + } } - }, - "description": "An error response from the Batch service." + } }, - "CloudErrorBody": { + "ResizeError": { "type": "object", - "x-ms-external": true, + "description": "An error that occurred when resizing a pool.", "properties": { "code": { "type": "string", @@ -5907,789 +6789,836 @@ "type": "string", "description": "A message describing the error, intended to be suitable for display in a user interface." }, - "target": { - "type": "string", - "description": "The target of the particular error. For example, the name of the property in error." - }, "details": { "type": "array", + "description": "Additional details about the error.", "items": { - "$ref": "#/definitions/CloudErrorBody" + "$ref": "#/definitions/ResizeError" }, "x-ms-identifiers": [ - "message", - "target" - ], - "description": "A list of additional details about the error." + "code" + ] } }, - "description": "An error response from the Batch service." + "required": [ + "code", + "message" + ] }, - "SkuCapability": { + "ResizeOperationStatus": { "type": "object", + "title": "Details about the current or last completed resize operation.", + "description": "Describes either the current operation (if the pool AllocationState is Resizing) or the previously completed operation (if the AllocationState is Steady).", "properties": { - "name": { - "type": "string", - "readOnly": true, - "description": "The name of the feature." + "targetDedicatedNodes": { + "type": "integer", + "format": "int32", + "description": "The desired number of dedicated compute nodes in the pool." }, - "value": { - "type": "string", - "readOnly": true, - "description": "The value of the feature." - } - }, - "description": "A SKU capability, such as the number of cores." - }, - "SupportedSku": { - "type": "object", - "properties": { - "name": { - "readOnly": true, + "targetLowPriorityNodes": { + "type": "integer", + "format": "int32", + "description": "The desired number of Spot/low-priority compute nodes in the pool." + }, + "resizeTimeout": { "type": "string", - "description": "The name of the SKU." + "format": "duration", + "title": "The timeout for allocation of compute nodes to the pool or removal of compute nodes from the pool.", + "description": "The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)." }, - "familyName": { - "readOnly": true, + "nodeDeallocationOption": { + "$ref": "#/definitions/ComputeNodeDeallocationOption", + "title": "Determines what to do with a node and its running task(s) after it has been selected for deallocation.", + "description": "The default value is requeue." + }, + "startTime": { "type": "string", - "description": "The family name of the SKU." + "format": "date-time", + "description": "The time when this resize operation was started." }, - "capabilities": { + "errors": { "type": "array", - "readOnly": true, + "title": "Details of any errors encountered while performing the last resize on the pool.", + "description": "This property is set only if an error occurred during the last pool resize, and only when the pool allocationState is Steady.", "items": { - "$ref": "#/definitions/SkuCapability" + "$ref": "#/definitions/ResizeError" }, "x-ms-identifiers": [ - "name" - ], - "description": "A collection of capabilities which this SKU supports." - }, - "batchSupportEndOfLife": { - "type": "string", - "readOnly": true, - "format": "date-time", - "description": "The time when Azure Batch service will retire this SKU." + "code" + ] } - }, - "description": "Describes a Batch supported SKU." + } }, - "SupportedSkusResult": { + "ResourceFile": { "type": "object", + "description": "A single file or multiple files to be downloaded to a compute node.", "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/SupportedSku" - }, - "x-ms-identifiers": [ - "name" - ], - "description": "The list of SKUs available for the Batch service in the location." + "autoStorageContainerName": { + "type": "string", + "title": "The storage container name in the auto storage account.", + "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified." }, - "nextLink": { - "readOnly": true, + "storageContainerUrl": { + "type": "string", + "title": "The URL of the blob container within Azure Blob Storage.", + "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. This URL must be readable and listable from compute nodes. There are three ways to get such a URL for a container in Azure storage: include a Shared Access Signature (SAS) granting read and list permissions on the container, use a managed identity with read and list permissions, or set the ACL for the container to allow public access." + }, + "httpUrl": { + "type": "string", + "title": "The URL of the file to download.", + "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. If the URL points to Azure Blob Storage, it must be readable from compute nodes. There are three ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read permissions on the blob, use a managed identity with read permission, or set the ACL for the blob or its container to allow public access." + }, + "blobPrefix": { + "type": "string", + "title": "The blob prefix to use when downloading blobs from an Azure Storage container. Only the blobs whose names begin with the specified prefix will be downloaded.", + "description": "The property is valid only when autoStorageContainerName or storageContainerUrl is used. This prefix can be a partial filename or a subdirectory. If a prefix is not specified, all the files in the container will be downloaded." + }, + "filePath": { "type": "string", - "description": "The URL to use for getting the next set of results." + "title": "The location on the compute node to which to download the file, relative to the task's working directory.", + "description": "If the httpUrl property is specified, the filePath is required and describes the path which the file will be downloaded to, including the filename. Otherwise, if the autoStorageContainerName or storageContainerUrl property is specified, filePath is optional and is the directory to download the files to. In the case where filePath is used as a directory, any directory structure already associated with the input data will be retained in full and appended to the specified filePath directory. The specified relative path cannot break out of the task's working directory (for example by using '..')." + }, + "fileMode": { + "type": "string", + "title": "The file permission mode attribute in octal format.", + "description": "This property applies only to files being downloaded to Linux compute nodes. It will be ignored if it is specified for a resourceFile which will be downloaded to a Windows node. If this property is not specified for a Linux node, then a default value of 0770 is applied to the file." + }, + "identityReference": { + "$ref": "#/definitions/ComputeNodeIdentityReference", + "title": "The reference to the user assigned identity to use to access Azure Blob Storage specified by storageContainerUrl or httpUrl", + "description": "The reference to a user assigned identity associated with the Batch pool which a compute node will use." } - }, - "required": [ - "value" + } + }, + "ResourceIdentityType": { + "type": "string", + "description": "The type of identity used for the Batch account.", + "enum": [ + "SystemAssigned", + "UserAssigned", + "None" + ], + "x-ms-enum": { + "name": "ResourceIdentityType", + "modelAsString": false, + "values": [ + { + "name": "SystemAssigned", + "value": "SystemAssigned", + "description": "Batch account has a system assigned identity with it." + }, + { + "name": "UserAssigned", + "value": "UserAssigned", + "description": "Batch account has user assigned identities with it." + }, + { + "name": "None", + "value": "None", + "description": "Batch account has no identity associated with it. Setting `None` in update account will remove existing identities." + } + ] + } + }, + "ResourceType": { + "type": "string", + "description": "The result of the request to list operations.", + "enum": [ + "Microsoft.Batch/batchAccounts" ], - "description": "The Batch List supported SKUs operation response." + "x-ms-enum": { + "name": "ResourceType", + "modelAsString": false, + "values": [ + { + "name": "MicrosoftBatchBatchAccounts", + "value": "Microsoft.Batch/batchAccounts", + "description": "The resource type for Microsoft.Batch/batchAccounts" + } + ] + } }, - "Operation": { - "title": "A REST API operation", + "RollingUpgradePolicy": { "type": "object", + "description": "The configuration parameters used while performing a rolling upgrade.", "properties": { - "name": { - "title": "The operation name.", - "description": "This is of the format {provider}/{resource}/{operation}", - "type": "string" + "enableCrossZoneUpgrade": { + "type": "boolean", + "description": "Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size. If this field is not set, Azure Azure Batch will not set its default value. The value of enableCrossZoneUpgrade on the created VirtualMachineScaleSet will be decided by the default configurations on VirtualMachineScaleSet. This field is able to be set to true or false only when using NodePlacementConfiguration as Zonal." }, - "isDataAction": { - "description": "Indicates whether the operation is a data action", - "type": "boolean" + "maxBatchInstancePercent": { + "type": "integer", + "format": "int32", + "description": "The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent.", + "minimum": 5, + "maximum": 100 }, - "display": { - "title": "The object that describes the operation.", - "type": "object", - "properties": { - "provider": { - "title": "Friendly name of the resource provider.", - "type": "string" - }, - "operation": { - "title": "The operation type.", - "description": "For example: read, write, delete, or listKeys/action", - "type": "string" - }, - "resource": { - "title": "The resource type on which the operation is performed.", - "type": "string" - }, - "description": { - "title": "The friendly name of the operation", - "type": "string" - } - } + "maxUnhealthyInstancePercent": { + "type": "integer", + "format": "int32", + "description": "The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent.", + "minimum": 5, + "maximum": 100 }, - "origin": { - "title": "The intended executor of the operation.", - "type": "string" + "maxUnhealthyUpgradedInstancePercent": { + "type": "integer", + "format": "int32", + "description": "The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The value of this field should be between 0 and 100, inclusive.", + "minimum": 0, + "maximum": 100 }, - "properties": { - "title": "Properties of the operation.", - "type": "object" + "pauseTimeBetweenBatches": { + "type": "string", + "description": "The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format." + }, + "prioritizeUnhealthyInstances": { + "type": "boolean", + "description": "Upgrade all unhealthy instances in a scale set before any healthy instances." + }, + "rollbackFailedInstancesOnPolicyBreach": { + "type": "boolean", + "description": "Rollback failed instances to previous model if the Rolling Upgrade policy is violated." } } }, - "OperationListResult": { - "title": "Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next set of results.", + "ScaleSettings": { "type": "object", + "title": "Scale settings for the pool", + "description": "Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes.", "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/Operation" - }, - "x-ms-identifiers": [ - "name" - ], - "title": "The list of operations supported by the resource provider." + "fixedScale": { + "$ref": "#/definitions/FixedScaleSettings", + "title": "Fixed scale settings for the pool.", + "description": "This property and autoScale are mutually exclusive and one of the properties must be specified." }, - "nextLink": { - "type": "string", - "title": "The URL to get the next set of operation list results if there are any." + "autoScale": { + "$ref": "#/definitions/AutoScaleSettings", + "title": "AutoScale settings for the pool.", + "description": "This property and fixedScale are mutually exclusive and one of the properties must be specified." } } }, - "CheckNameAvailabilityParameters": { + "SecurityEncryptionTypes": { + "type": "string", + "description": "Specifies the EncryptionType of the managed disk. It is set to VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and required when using Confidential VMs.", + "enum": [ + "NonPersistedTPM", + "VMGuestStateOnly" + ], + "x-ms-enum": { + "name": "SecurityEncryptionTypes", + "modelAsString": true, + "values": [ + { + "name": "NonPersistedTPM", + "value": "NonPersistedTPM" + }, + { + "name": "VMGuestStateOnly", + "value": "VMGuestStateOnly" + } + ] + } + }, + "SecurityProfile": { "type": "object", + "description": "Specifies the security profile settings for the virtual machine or virtual machine scale set.", "properties": { - "name": { - "type": "string", - "description": "The name to check for availability" + "securityType": { + "$ref": "#/definitions/SecurityTypes", + "description": "Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings." }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Batch/batchAccounts" - ], - "x-ms-enum": { - "name": "ResourceType", - "modelAsString": false, - "values": [ - { - "value": "Microsoft.Batch/batchAccounts", - "description": "The Batch account resource type.", - "name": "BatchAccounts" - } - ] - }, - "description": "The resource type." + "encryptionAtHost": { + "type": "boolean", + "description": "This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself." + }, + "uefiSettings": { + "$ref": "#/definitions/UefiSettings", + "description": "Specifies the security settings like secure boot and vTPM used while creating the virtual machine." } - }, - "required": [ - "name", - "type" + } + }, + "SecurityTypes": { + "type": "string", + "description": "Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings.", + "enum": [ + "trustedLaunch", + "confidentialVM" ], - "description": "Parameters for a check name availability request." + "x-ms-enum": { + "name": "SecurityTypes", + "modelAsString": false, + "values": [ + { + "name": "trustedLaunch", + "value": "trustedLaunch", + "description": "Trusted launch protects against advanced and persistent attack techniques." + }, + { + "name": "confidentialVM", + "value": "confidentialVM", + "description": "Azure confidential computing offers confidential VMs are for tenants with high security and confidentiality requirements. These VMs provide a strong, hardware-enforced boundary to help meet your security needs. You can use confidential VMs for migrations without making changes to your code, with the platform protecting your VM's state from being read or modified." + } + ] + } }, - "CheckNameAvailabilityResult": { + "ServiceArtifactReference": { "type": "object", + "description": "Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version.", "properties": { - "nameAvailable": { - "readOnly": true, - "type": "boolean", - "description": "Gets a boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or invalid and cannot be used." - }, - "reason": { - "readOnly": true, - "type": "string", - "enum": [ - "Invalid", - "AlreadyExists" - ], - "x-ms-enum": { - "name": "NameAvailabilityReason", - "modelAsString": false, - "values": [ - { - "value": "Invalid", - "description": "The requested name is invalid." - }, - { - "value": "AlreadyExists", - "description": "The requested name is already in use." - } - ] - }, - "description": "Gets the reason that a Batch account name could not be used. The Reason element is only returned if NameAvailable is false." - }, - "message": { - "readOnly": true, + "id": { "type": "string", - "description": "Gets an error message explaining the Reason value in more detail." + "title": "The service artifact reference id of ServiceArtifactReference", + "description": "The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}" } }, - "description": "The CheckNameAvailability operation response." + "required": [ + "id" + ] }, - "MountConfiguration": { + "SkuCapability": { "type": "object", + "description": "A SKU capability, such as the number of cores.", "properties": { - "azureBlobFileSystemConfiguration": { - "$ref": "#/definitions/AzureBlobFileSystemConfiguration", - "title": "The Azure Storage Container to mount using blob FUSE on each node.", - "description": "This property is mutually exclusive with all other properties." - }, - "nfsMountConfiguration": { - "$ref": "#/definitions/NFSMountConfiguration", - "title": "The NFS file system to mount on each node.", - "description": "This property is mutually exclusive with all other properties." - }, - "cifsMountConfiguration": { - "$ref": "#/definitions/CIFSMountConfiguration", - "title": "The CIFS/SMB file system to mount on each node.", - "description": "This property is mutually exclusive with all other properties." + "name": { + "type": "string", + "description": "The name of the feature.", + "readOnly": true }, - "azureFileShareConfiguration": { - "$ref": "#/definitions/AzureFileShareConfiguration", - "title": "The Azure File Share to mount on each node.", - "description": "This property is mutually exclusive with all other properties." + "value": { + "type": "string", + "description": "The value of the feature.", + "readOnly": true } - }, - "title": "The file system to mount on each node." + } }, - "AzureBlobFileSystemConfiguration": { + "StartTask": { "type": "object", + "title": "A task which is run when a compute node joins a pool in the Azure Batch service, or when the compute node is rebooted or reimaged.", + "description": "In some cases the start task may be re-run even though the node was not rebooted. Due to this, start tasks should be idempotent and exit gracefully if the setup they're performing has already been done. Special care should be taken to avoid start tasks which create breakaway process or install/launch services from the start task working directory, as this will block Batch from being able to re-run the start task.", "properties": { - "accountName": { + "commandLine": { "type": "string", - "title": "The Azure Storage Account name." + "title": "The command line of the start task.", + "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. Required if any other properties of the startTask are specified." }, - "containerName": { - "type": "string", - "title": "The Azure Blob Storage Container name." + "resourceFiles": { + "type": "array", + "description": "A list of files that the Batch service will download to the compute node before running the command line.", + "items": { + "$ref": "#/definitions/ResourceFile" + }, + "x-ms-identifiers": [ + "httpUrl" + ] }, - "accountKey": { - "type": "string", - "title": "The Azure Storage Account key.", - "description": "This property is mutually exclusive with both sasKey and identity; exactly one must be specified.", - "x-ms-secret": true + "environmentSettings": { + "type": "array", + "description": "A list of environment variable settings for the start task.", + "items": { + "$ref": "#/definitions/EnvironmentSetting" + }, + "x-ms-identifiers": [ + "name" + ] }, - "sasKey": { - "type": "string", - "title": "The Azure Storage SAS token.", - "description": "This property is mutually exclusive with both accountKey and identity; exactly one must be specified.", - "x-ms-secret": true + "userIdentity": { + "$ref": "#/definitions/UserIdentity", + "title": "The user identity under which the start task runs.", + "description": "If omitted, the task runs as a non-administrative user unique to the task." }, - "blobfuseOptions": { - "type": "string", - "title": "Additional command line options to pass to the mount command.", - "description": "These are 'net use' options in Windows and 'mount' options in Linux." + "maxTaskRetryCount": { + "type": "integer", + "format": "int32", + "title": "The maximum number of times the task may be retried.", + "description": "The Batch service retries a task if its exit code is nonzero. Note that this value specifically controls the number of retries. The Batch service will try the task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the task. If the maximum retry count is -1, the Batch service retries the task without limit. Default is 0", + "default": 0 }, - "relativeMountPath": { - "type": "string", - "title": "The relative path on the compute node where the file system will be mounted", - "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable." + "waitForSuccess": { + "type": "boolean", + "title": "Whether the Batch service should wait for the start task to complete successfully (that is, to exit with exit code 0) before scheduling any tasks on the compute node.", + "description": "If true and the start task fails on a compute node, the Batch service retries the start task up to its maximum retry count (maxTaskRetryCount). If the task has still not completed successfully after all retries, then the Batch service marks the compute node unusable, and will not schedule tasks to it. This condition can be detected via the node state and scheduling error detail. If false, the Batch service will not wait for the start task to complete. In this case, other tasks can start executing on the compute node while the start task is still running; and even if the start task fails, new tasks will continue to be scheduled on the node. The default is true." }, - "identityReference": { - "title": "The reference to the user assigned identity to use to access containerName", - "description": "This property is mutually exclusive with both accountKey and sasKey; exactly one must be specified.", - "$ref": "#/definitions/ComputeNodeIdentityReference" + "containerSettings": { + "$ref": "#/definitions/TaskContainerSettings", + "title": "The settings for the container under which the start task runs.", + "description": "When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all task environment variables are mapped into the container, and the task command line is executed in the container." } - }, - "required": [ - "accountName", - "containerName", - "relativeMountPath" + } + }, + "StorageAccountType": { + "type": "string", + "description": "The storage account type for use in creating data disks or OS disk.", + "enum": [ + "Standard_LRS", + "Premium_LRS", + "StandardSSD_LRS" ], - "title": "Information used to connect to an Azure Storage Container using Blobfuse." + "x-ms-enum": { + "name": "StorageAccountType", + "modelAsString": false, + "values": [ + { + "name": "Standard_LRS", + "value": "Standard_LRS", + "description": "The data disk / OS disk should use standard locally redundant storage." + }, + { + "name": "Premium_LRS", + "value": "Premium_LRS", + "description": "The data disk / OS disk should use premium locally redundant storage." + }, + { + "name": "StandardSSD_LRS", + "value": "StandardSSD_LRS", + "description": "The data disk / OS disk should use standard SSD locally redundant storage." + } + ] + } }, - "NFSMountConfiguration": { + "SupportedSku": { "type": "object", + "description": "Describes a Batch supported SKU.", "properties": { - "source": { + "name": { "type": "string", - "title": "The URI of the file system to mount." + "description": "The name of the SKU.", + "readOnly": true }, - "relativeMountPath": { + "familyName": { "type": "string", - "title": "The relative path on the compute node where the file system will be mounted", - "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable." + "description": "The family name of the SKU.", + "readOnly": true }, - "mountOptions": { + "capabilities": { + "type": "array", + "description": "A collection of capabilities which this SKU supports.", + "items": { + "$ref": "#/definitions/SkuCapability" + }, + "readOnly": true, + "x-ms-identifiers": [ + "name" + ] + }, + "batchSupportEndOfLife": { "type": "string", - "title": "Additional command line options to pass to the mount command.", - "description": "These are 'net use' options in Windows and 'mount' options in Linux." + "format": "date-time", + "description": "The time when Azure Batch service will retire this SKU.", + "readOnly": true } - }, - "required": [ - "source", - "relativeMountPath" - ], - "title": "Information used to connect to an NFS file system." + } }, - "CIFSMountConfiguration": { + "SupportedSkusResult": { "type": "object", + "description": "The Batch List supported SKUs operation response.", "properties": { - "userName": { - "type": "string", - "title": "The user to use for authentication against the CIFS file system." - }, - "source": { - "type": "string", - "title": "The URI of the file system to mount." - }, - "relativeMountPath": { - "type": "string", - "title": "The relative path on the compute node where the file system will be mounted", - "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable." - }, - "mountOptions": { - "type": "string", - "title": "Additional command line options to pass to the mount command.", - "description": "These are 'net use' options in Windows and 'mount' options in Linux." + "value": { + "type": "array", + "description": "The SupportedSku items on this page", + "items": { + "$ref": "#/definitions/SupportedSku" + }, + "x-ms-identifiers": [ + "name" + ] }, - "password": { + "nextLink": { "type": "string", - "title": "The password to use for authentication against the CIFS file system.", - "x-ms-secret": true + "format": "uri", + "description": "The link to the next page of items" } }, "required": [ - "userName", - "source", - "password", - "relativeMountPath" - ], - "title": "Information used to connect to a CIFS file system." + "value" + ] }, - "AzureFileShareConfiguration": { + "TaskContainerSettings": { "type": "object", + "description": "The container settings for a task.", "properties": { - "accountName": { + "containerRunOptions": { "type": "string", - "title": "The Azure Storage account name." + "title": "Additional options to the container create command.", + "description": "These additional options are supplied as arguments to the \"docker create\" command, in addition to those controlled by the Batch Service." }, - "azureFileUrl": { + "imageName": { "type": "string", - "title": "The Azure Files URL.", - "description": "This is of the form 'https://{account}.file.core.windows.net/'." + "title": "The image to use to create the container in which the task will run.", + "description": "This is the full image reference, as would be specified to \"docker pull\". If no tag is provided as part of the image name, the tag \":latest\" is used as a default." }, - "accountKey": { - "type": "string", - "title": "The Azure Storage account key.", - "x-ms-secret": true + "registry": { + "$ref": "#/definitions/ContainerRegistry", + "title": "The private registry which contains the container image.", + "description": "This setting can be omitted if was already provided at pool creation." }, - "relativeMountPath": { - "type": "string", - "title": "The relative path on the compute node where the file system will be mounted", - "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable." + "workingDirectory": { + "$ref": "#/definitions/ContainerWorkingDirectory", + "description": "A flag to indicate where the container task working directory is. The default is 'taskWorkingDirectory'." }, - "mountOptions": { - "type": "string", - "title": "Additional command line options to pass to the mount command.", - "description": "These are 'net use' options in Windows and 'mount' options in Linux." + "containerHostBatchBindMounts": { + "type": "array", + "title": "The paths you want to mounted to container task.", + "description": "If this array is null or be not present, container task will mount entire temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in Linux). It won't' mount any data paths into container if this array is set as empty.", + "items": { + "$ref": "#/definitions/ContainerHostBatchBindMountEntry" + }, + "x-ms-identifiers": [] } }, "required": [ - "accountName", - "azureFileUrl", - "relativeMountPath", - "accountKey" - ], - "title": "Information used to connect to an Azure Fileshare." + "imageName" + ] }, - "OutboundEnvironmentEndpointCollection": { + "TaskSchedulingPolicy": { "type": "object", + "description": "Specifies how tasks should be distributed across compute nodes.", "properties": { - "value": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/OutboundEnvironmentEndpoint" - }, - "x-ms-identifiers": [], - "description": "The collection of outbound network dependency endpoints returned by the listing operation." - }, - "nextLink": { + "nodeFillType": { "type": "string", - "description": "The continuation token." + "description": "How tasks should be distributed across compute nodes.", + "default": "Spread", + "enum": [ + "Spread", + "Pack" + ], + "x-ms-enum": { + "name": "ComputeNodeFillType", + "modelAsString": false, + "values": [ + { + "name": "Spread", + "value": "Spread", + "description": "Tasks should be assigned evenly across all nodes in the pool." + }, + { + "name": "Pack", + "value": "Pack", + "description": "As many tasks as possible (taskSlotsPerNode) should be assigned to each node in the pool before any tasks are assigned to the next node in the pool." + } + ] + } } }, - "description": "Values returned by the List operation." + "required": [ + "nodeFillType" + ] }, - "OutboundEnvironmentEndpoint": { + "UefiSettings": { "type": "object", + "description": "Specifies the security settings like secure boot and vTPM used while creating the virtual machine.", "properties": { - "category": { - "type": "string", - "readOnly": true, - "description": "The type of service that the Batch service connects to." + "secureBootEnabled": { + "type": "boolean", + "description": "Specifies whether secure boot should be enabled on the virtual machine." }, - "endpoints": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/EndpointDependency" - }, - "x-ms-identifiers": [ - "domainName" - ], - "description": "The endpoints for this service to which the Batch service makes outbound calls." + "vTpmEnabled": { + "type": "boolean", + "description": "Specifies whether vTPM should be enabled on the virtual machine." } - }, - "description": "A collection of related endpoints from the same service for which the Batch service requires outbound access." + } }, - "EndpointDependency": { + "UpgradeMode": { + "type": "string", + "description": "Specifies the mode of an upgrade to virtual machines in the scale set.<br /><br /> Possible values are:<br /><br /> **Manual** - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action.<br /><br /> **Automatic** - All virtual machines in the scale set are automatically updated at the same time.<br /><br /> **Rolling** - Scale set performs updates in batches with an optional pause time in between.", + "enum": [ + "automatic", + "manual", + "rolling" + ], + "x-ms-enum": { + "name": "UpgradeMode", + "modelAsString": false, + "values": [ + { + "name": "automatic", + "value": "automatic", + "description": "All virtual machines in the scale set are automatically updated at the same time." + }, + { + "name": "manual", + "value": "manual", + "description": "You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action." + }, + { + "name": "rolling", + "value": "rolling", + "description": "The existing instances in a scale set are brought down in batches to be upgraded. Once the upgraded batch is complete, the instances will begin taking traffic again and the next batch will begin. This continues until all instances brought up-to-date." + } + ] + } + }, + "UpgradePolicy": { "type": "object", + "description": "Describes an upgrade policy - automatic, manual, or rolling.", "properties": { - "domainName": { - "type": "string", - "readOnly": true, - "description": "The domain name of the dependency. Domain names may be fully qualified or may contain a * wildcard." + "mode": { + "$ref": "#/definitions/UpgradeMode", + "description": "Specifies the mode of an upgrade to virtual machines in the scale set.<br /><br /> Possible values are:<br /><br /> **Manual** - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action.<br /><br /> **Automatic** - All virtual machines in the scale set are automatically updated at the same time.<br /><br /> **Rolling** - Scale set performs updates in batches with an optional pause time in between." }, - "description": { - "type": "string", - "readOnly": true, - "description": "Human-readable supplemental information about the dependency and when it is applicable." + "automaticOSUpgradePolicy": { + "$ref": "#/definitions/AutomaticOSUpgradePolicy", + "description": "The configuration parameters used for performing automatic OS upgrade." }, - "endpointDetails": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/EndpointDetail" - }, - "x-ms-identifiers": [ - "port" - ], - "description": "The list of connection details for this endpoint." + "rollingUpgradePolicy": { + "$ref": "#/definitions/RollingUpgradePolicy", + "description": "The configuration parameters used while performing a rolling upgrade." } }, - "description": "A domain name and connection details used to access a dependency." + "required": [ + "mode" + ] }, - "EndpointDetail": { + "UserAccount": { "type": "object", + "description": "Properties used to create a user on an Azure Batch node.", "properties": { - "port": { - "type": "integer", - "format": "int32", - "readOnly": true, - "description": "The port an endpoint is connected to." + "name": { + "type": "string", + "description": "The name of the user account. Names can contain any Unicode characters up to a maximum length of 20." + }, + "password": { + "type": "string", + "format": "password", + "description": "The password for the user account.", + "x-ms-secret": true + }, + "elevationLevel": { + "$ref": "#/definitions/ElevationLevel", + "title": "The elevation level of the user.", + "description": "nonAdmin - The auto user is a standard user without elevated access. admin - The auto user is a user with elevated access and operates with full Administrator permissions. The default value is nonAdmin." + }, + "linuxUserConfiguration": { + "$ref": "#/definitions/LinuxUserConfiguration", + "title": "The Linux-specific user configuration for the user account.", + "description": "This property is ignored if specified on a Windows pool. If not specified, the user is created with the default options." + }, + "windowsUserConfiguration": { + "$ref": "#/definitions/WindowsUserConfiguration", + "title": "The Windows-specific user configuration for the user account.", + "description": "This property can only be specified if the user is on a Windows pool. If not specified and on a Windows pool, the user is created with the default options." } }, - "description": "Details about the connection between the Batch service and the endpoint." + "required": [ + "name", + "password" + ] }, - "ManagedDisk": { + "UserAssignedIdentities": { "type": "object", + "description": "The list of associated user identities.", "properties": { - "storageAccountType": { - "$ref": "#/definitions/StorageAccountType", - "title": "The storage account type for managed disk." - }, - "securityProfile": { - "$ref": "#/definitions/VMDiskSecurityProfile", - "title": "Specifies the security profile for the managed disk." + "principalId": { + "type": "string", + "description": "The principal id of user assigned identity.", + "readOnly": true + }, + "clientId": { + "type": "string", + "description": "The client id of user assigned identity.", + "readOnly": true } } }, - "SecurityProfile": { + "UserIdentity": { "type": "object", + "title": "The definition of the user identity under which the task is run.", + "description": "Specify either the userName or autoUser property, but not both.", "properties": { - "securityType": { + "userName": { "type": "string", - "title": "Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings.", - "enum": [ - "trustedLaunch", - "confidentialVM" - ], - "x-ms-enum": { - "name": "SecurityTypes", - "modelAsString": false, - "values": [ - { - "value": "trustedLaunch", - "description": "Trusted launch protects against advanced and persistent attack techniques." - }, - { - "value": "confidentialVM", - "description": "Azure confidential computing offers confidential VMs are for tenants with high security and confidentiality requirements. These VMs provide a strong, hardware-enforced boundary to help meet your security needs. You can use confidential VMs for migrations without making changes to your code, with the platform protecting your VM's state from being read or modified." - } - ] - } - }, - "encryptionAtHost": { - "type": "boolean", - "description": "This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself." + "title": "The name of the user identity under which the task is run.", + "description": "The userName and autoUser properties are mutually exclusive; you must specify one but not both." }, - "uefiSettings": { - "$ref": "#/definitions/UefiSettings", - "title": "Specifies the security settings like secure boot and vTPM used while creating the virtual machine.", - "description": "Specifies the security settings like secure boot and vTPM used while creating the virtual machine." + "autoUser": { + "$ref": "#/definitions/AutoUserSpecification", + "title": "The auto user under which the task is run.", + "description": "The userName and autoUser properties are mutually exclusive; you must specify one but not both." } - }, - "description": "Specifies the security profile settings for the virtual machine or virtual machine scale set." + } }, - "UefiSettings": { + "VMDiskSecurityProfile": { "type": "object", + "description": "Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and is required when using Confidential VMs.", "properties": { - "secureBootEnabled": { - "type": "boolean", - "description": "Specifies whether secure boot should be enabled on the virtual machine." - }, - "vTpmEnabled": { - "type": "boolean", - "description": "Specifies whether vTPM should be enabled on the virtual machine." + "securityEncryptionType": { + "$ref": "#/definitions/SecurityEncryptionTypes", + "description": "Specifies the EncryptionType of the managed disk. It is set to VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and required when using Confidential VMs." } - }, - "description": "Specifies the security settings like secure boot and vTPM used while creating the virtual machine." + } }, - "UpgradePolicy": { + "VMExtension": { "type": "object", + "description": "The configuration for virtual machine extensions.", "properties": { - "mode": { + "name": { "type": "string", - "title": "Specifies the mode of an upgrade to virtual machines in the scale set.<br /><br /> Possible values are:<br /><br /> **Manual** - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action.<br /><br /> **Automatic** - All virtual machines in the scale set are automatically updated at the same time.<br /><br /> **Rolling** - Scale set performs updates in batches with an optional pause time in between.", - "enum": [ - "automatic", - "manual", - "rolling" - ], - "x-ms-enum": { - "name": "UpgradeMode", - "modelAsString": false, - "values": [ - { - "value": "automatic", - "description": "All virtual machines in the scale set are automatically updated at the same time." - }, - { - "value": "manual", - "description": "You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action." - }, - { - "value": "rolling", - "description": "The existing instances in a scale set are brought down in batches to be upgraded. Once the upgraded batch is complete, the instances will begin taking traffic again and the next batch will begin. This continues until all instances brought up-to-date." - } - ] - } + "description": "The name of the virtual machine extension." }, - "automaticOSUpgradePolicy": { - "$ref": "#/definitions/AutomaticOSUpgradePolicy", - "title": "Configuration parameters used for performing automatic OS Upgrade.", - "description": "The configuration parameters used for performing automatic OS upgrade." + "publisher": { + "type": "string", + "description": "The name of the extension handler publisher." }, - "rollingUpgradePolicy": { - "$ref": "#/definitions/RollingUpgradePolicy", - "title": "The configuration parameters used while performing a rolling upgrade." - } - }, - "required": [ - "mode" - ], - "description": "Describes an upgrade policy - automatic, manual, or rolling." - }, - "AutomaticOSUpgradePolicy": { - "type": "object", - "properties": { - "disableAutomaticRollback": { - "type": "boolean", - "description": "Whether OS image rollback feature should be disabled." + "type": { + "type": "string", + "description": "The type of the extensions." }, - "enableAutomaticOSUpgrade": { - "type": "boolean", - "description": "Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. <br /><br /> If this is set to true for Windows based pools, [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) cannot be set to true." + "typeHandlerVersion": { + "type": "string", + "description": "The version of script handler." }, - "useRollingUpgradePolicy": { + "autoUpgradeMinorVersion": { "type": "boolean", - "description": "Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS." + "description": "Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true." }, - "osRollingUpgradeDeferral": { + "enableAutomaticUpgrade": { "type": "boolean", - "description": "Defer OS upgrades on the TVMs if they are running tasks." + "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available." + }, + "settings": { + "description": "JSON formatted public settings for the extension." + }, + "protectedSettings": { + "format": "password", + "description": "The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.", + "x-ms-secret": true + }, + "provisionAfterExtensions": { + "type": "array", + "title": "The collection of extension names.", + "description": "Collection of extension names after which this extension needs to be provisioned.", + "items": { + "type": "string" + } } }, - "description": "The configuration parameters used for performing automatic OS upgrade." + "required": [ + "name", + "publisher", + "type" + ] }, - "RollingUpgradePolicy": { + "VirtualMachineConfiguration": { "type": "object", + "description": "The configuration for compute nodes in a pool based on the Azure Virtual Machines infrastructure.", "properties": { - "enableCrossZoneUpgrade": { - "type": "boolean", - "description": "Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size. If this field is not set, Azure Azure Batch will not set its default value. The value of enableCrossZoneUpgrade on the created VirtualMachineScaleSet will be decided by the default configurations on VirtualMachineScaleSet. This field is able to be set to true or false only when using NodePlacementConfiguration as Zonal." + "imageReference": { + "$ref": "#/definitions/ImageReference", + "title": "A reference to the Azure Virtual Machines Marketplace Image or the custom Virtual Machine Image to use.", + "description": "A reference to an Azure Virtual Machines Marketplace image or the Azure Image resource of a custom Virtual Machine. To get the list of all imageReferences verified by Azure Batch, see the 'List supported node agent SKUs' operation." }, - "maxBatchInstancePercent": { - "type": "integer", - "format": "int32", - "minimum": 5, - "maximum": 100, - "description": "The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent." + "nodeAgentSkuId": { + "type": "string", + "title": "The SKU of the Batch node agent to be provisioned on compute nodes in the pool.", + "description": "The Batch node agent is a program that runs on each node in the pool, and provides the command-and-control interface between the node and the Batch service. There are different implementations of the node agent, known as SKUs, for different operating systems. You must specify a node agent SKU which matches the selected image reference. To get the list of supported node agent SKUs along with their list of verified image references, see the 'List supported node agent SKUs' operation." }, - "maxUnhealthyInstancePercent": { - "type": "integer", - "format": "int32", - "minimum": 5, - "maximum": 100, - "description": "The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent." + "windowsConfiguration": { + "$ref": "#/definitions/WindowsConfiguration", + "title": "Windows operating system settings on the virtual machine.", + "description": "This property must not be specified if the imageReference specifies a Linux OS image." }, - "maxUnhealthyUpgradedInstancePercent": { - "type": "integer", - "format": "int32", - "minimum": 0, - "maximum": 100, - "description": "The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The value of this field should be between 0 and 100, inclusive." + "dataDisks": { + "type": "array", + "title": "The configuration for data disks attached to the compute nodes in the pool.", + "description": "This property must be specified if the compute nodes in the pool need to have empty data disks attached to them.", + "items": { + "$ref": "#/definitions/DataDisk" + }, + "x-ms-identifiers": [ + "lun" + ] }, - "pauseTimeBetweenBatches": { + "licenseType": { "type": "string", - "description": "The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format." + "title": "The type of on-premises license to be used when deploying the operating system.", + "description": "This only applies to images that contain the Windows operating system, and should only be used when you hold valid on-premises licenses for the nodes which will be deployed. If omitted, no on-premises licensing discount is applied. Values are:\n\nWindows_Server - The on-premises license is for Windows Server.\nWindows_Client - The on-premises license is for Windows Client." }, - "prioritizeUnhealthyInstances": { - "type": "boolean", - "description": "Upgrade all unhealthy instances in a scale set before any healthy instances." + "containerConfiguration": { + "$ref": "#/definitions/ContainerConfiguration", + "title": "The container configuration for the pool.", + "description": "If specified, setup is performed on each node in the pool to allow tasks to run in containers. All regular tasks and job manager tasks run on this pool must specify the containerSettings property, and all other tasks may specify it." }, - "rollbackFailedInstancesOnPolicyBreach": { - "type": "boolean", - "description": "Rollback failed instances to previous model if the Rolling Upgrade policy is violated." + "diskEncryptionConfiguration": { + "$ref": "#/definitions/DiskEncryptionConfiguration", + "title": "The disk encryption configuration for the pool.", + "description": "If specified, encryption is performed on each node in the pool during node provisioning." + }, + "nodePlacementConfiguration": { + "$ref": "#/definitions/NodePlacementConfiguration", + "title": "The node placement configuration for the pool.", + "description": "This configuration will specify rules on how nodes in the pool will be physically allocated." + }, + "extensions": { + "type": "array", + "title": "The virtual machine extension for the pool.", + "description": "If specified, the extensions mentioned in this configuration will be installed on each node.", + "items": { + "$ref": "#/definitions/VMExtension" + }, + "x-ms-identifiers": [ + "name", + "type" + ] + }, + "osDisk": { + "$ref": "#/definitions/OSDisk", + "title": "Settings for the operating system disk of the Virtual Machine.", + "description": "Contains configuration for ephemeral OSDisk settings." + }, + "securityProfile": { + "$ref": "#/definitions/SecurityProfile", + "description": "Specifies the security profile settings for the virtual machine or virtual machine scale set." + }, + "serviceArtifactReference": { + "$ref": "#/definitions/ServiceArtifactReference", + "title": "Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version.", + "description": "The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}" } }, - "description": "The configuration parameters used while performing a rolling upgrade." + "required": [ + "imageReference", + "nodeAgentSkuId" + ] }, - "VMDiskSecurityProfile": { + "VirtualMachineFamilyCoreQuota": { "type": "object", + "description": "A VM Family and its associated core quota for the Batch account.", "properties": { - "securityEncryptionType": { + "name": { "type": "string", - "title": "Specifies the EncryptionType of the managed disk. It is set to VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and required when using Confidential VMs.", - "enum": [ - "NonPersistedTPM", - "VMGuestStateOnly" - ], - "x-ms-enum": { - "name": "SecurityEncryptionTypes", - "modelAsString": true, - "values": [ - { - "value": "NonPersistedTPM" - }, - { - "value": "VMGuestStateOnly" - } - ] - } + "description": "The Virtual Machine family name.", + "readOnly": true + }, + "coreQuota": { + "type": "integer", + "format": "int32", + "description": "The core quota for the VM family for the Batch account.", + "readOnly": true } - }, - "description": "Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and is required when using Confidential VMs." - } - }, - "parameters": { - "SubscriptionIdParameter": { - "name": "subscriptionId", - "in": "path", - "required": true, - "type": "string", - "description": "The Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000)" - }, - "ApiVersionParameter": { - "name": "api-version", - "in": "query", - "required": true, - "type": "string", - "description": "The API version to be used with the HTTP request." - }, - "ResourceGroupNameParameter": { - "name": "resourceGroupName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the resource group that contains the Batch account.", - "x-ms-parameter-location": "method" + } }, - "AccountNameParameter": { - "name": "accountName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9]+$", - "minLength": 3, - "maxLength": 24, - "description": "The name of the Batch account.", - "x-ms-parameter-location": "method" - }, - "CertificateNameParameter": { - "name": "certificateName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[\\w]+-[\\w]+$", - "minLength": 5, - "maxLength": 45, - "description": "The identifier for the certificate. This must be made up of algorithm and thumbprint separated by a dash, and must match the certificate data in the request. For example SHA1-a3d1c5.", - "x-ms-parameter-location": "method" - }, - "DetectorIdParameter": { - "name": "detectorId", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the detector.", - "x-ms-parameter-location": "method" + "WindowsConfiguration": { + "type": "object", + "description": "Windows operating system settings to apply to the virtual machine.", + "properties": { + "enableAutomaticUpdates": { + "type": "boolean", + "title": "Whether automatic updates are enabled on the virtual machine.", + "description": "If omitted, the default value is true." + } + } }, - "PoolNameParameter": { - "name": "poolName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9_-]+$", - "minLength": 1, - "maxLength": 64, - "description": "The pool name. This must be unique within the account.", - "x-ms-parameter-location": "method" - }, - "PrivateLinkResourceNameParameter": { - "name": "privateLinkResourceName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9_-]+\\.?[a-fA-F0-9-]*$", - "minLength": 1, - "maxLength": 101, - "description": "The private link resource name. This must be unique within the account.", - "x-ms-parameter-location": "method" - }, - "PrivateEndpointConnectionNameParameter": { - "name": "privateEndpointConnectionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9_-]+\\.?[a-fA-F0-9-]*$", - "minLength": 1, - "maxLength": 101, - "description": "The private endpoint connection name. This must be unique within the account.", - "x-ms-parameter-location": "method" - }, - "ApplicationNameParameter": { - "name": "applicationName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9_-]+$", - "minLength": 1, - "maxLength": 64, - "description": "The name of the application. This must be unique within the account.", - "x-ms-parameter-location": "method" - }, - "VersionNameParameter": { - "name": "versionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z0-9_-][a-zA-Z0-9_.-]*$", - "minLength": 1, - "maxLength": 64, - "description": "The version of the application.", - "x-ms-parameter-location": "method" + "WindowsUserConfiguration": { + "type": "object", + "description": "Properties used to create a user account on a Windows node.", + "properties": { + "loginMode": { + "$ref": "#/definitions/LoginMode", + "title": "Login mode for user", + "description": "Specifies login mode for the user. The default value is Interactive." + } + } } - } + }, + "parameters": {} } diff --git a/specification/batch/resource-manager/readme.md b/specification/batch/resource-manager/readme.md index 68f97287d8b1..321f24b42e37 100644 --- a/specification/batch/resource-manager/readme.md +++ b/specification/batch/resource-manager/readme.md @@ -38,8 +38,7 @@ These settings apply only when `--tag=package-2024-07` is specified on the comma ```yaml $(tag) == 'package-2024-07' input-file: - - Microsoft.Batch/stable/2024-07-01/BatchManagement.json - - Microsoft.Batch/stable/2024-07-01/NetworkSecurityPerimeter.json + - Microsoft.Batch/stable/2024-07-01/openapi.json ``` ### Tag: package-2024-02 From be46becafeb29aa993898709e35759d3643b2809 Mon Sep 17 00:00:00 2001 From: Sean McCullough <44180881+seanmcc-msft@users.noreply.github.com> Date: Tue, 23 Dec 2025 16:42:20 -0600 Subject: [PATCH 081/117] Storage STG 101 Swagger (#39127) * initial commit (#37884) * update blob enum (#37888) * Added Files Swagger (#37955) * Added Files swagger (#37986) * Added IncrementalCopyOfEarlierSnapshotNotAllowed blob error code and Deprecated IncrementalCopyOfEarlierVersionSnapshotNotAllowed (#37893) * Add support for missing SKU Name values (#37954) * Delete Blob Conditional Tier 101 (#37913) * Delete Blob Conditional Tier * un-parameterized * Added SourceCustomerProvidedKey Request Headers (#37928) * Cross-Tenant support for Principal Bound Delegation Sas 101 (#38020) * Added Request body and Response body * Added changes for Files * Added chnages for Queues * removed queues * Added queues back * Added ShareErrorCodes (#37984) * Grouped Source CPK (#39176) * Removed enum (#39320) --------- Co-authored-by: Nick Liu <nicliu@microsoft.com> Co-authored-by: Mike Harder <mharder@microsoft.com> --- .../Microsoft.BlobStorage/readme.md | 9 + .../stable/2026-04-06/blob.json | 12745 ++++++++++++++++ .../Microsoft.FileStorage/readme.md | 11 +- .../stable/2026-04-06/file.json | 8963 +++++++++++ .../Microsoft.QueueStorage/readme.md | 11 +- .../stable/2026-04-06/queue.json | 2070 +++ 6 files changed, 23807 insertions(+), 2 deletions(-) create mode 100644 specification/storage/data-plane/Microsoft.BlobStorage/stable/2026-04-06/blob.json create mode 100644 specification/storage/data-plane/Microsoft.FileStorage/stable/2026-04-06/file.json create mode 100644 specification/storage/data-plane/Microsoft.QueueStorage/stable/2026-04-06/queue.json diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/readme.md b/specification/storage/data-plane/Microsoft.BlobStorage/readme.md index 136cffb50351..27bebe38c483 100644 --- a/specification/storage/data-plane/Microsoft.BlobStorage/readme.md +++ b/specification/storage/data-plane/Microsoft.BlobStorage/readme.md @@ -157,6 +157,15 @@ input-file: - stable/2026-02-06/blob.json ``` +### Tag: package-2026-04 + +These settings apply only when `--tag=package-2026-04` is specified on the command line. + +```yaml $(tag) == 'package-2026-04' +input-file: + - stable/2026-04-06/blob.json +``` + ### Tag: package-2026-04-tsp These settings apply only when `--tag=package-2026-04-tsp` is specified on the command line. diff --git a/specification/storage/data-plane/Microsoft.BlobStorage/stable/2026-04-06/blob.json b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2026-04-06/blob.json new file mode 100644 index 000000000000..aaa131ade451 --- /dev/null +++ b/specification/storage/data-plane/Microsoft.BlobStorage/stable/2026-04-06/blob.json @@ -0,0 +1,12745 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Blob Storage", + "version": "2026-04-06", + "x-ms-code-generation-settings": { + "header": "MIT", + "strictSpecAdherence": false + } + }, + "x-ms-parameterized-host": { + "hostTemplate": "{url}", + "useSchemePrefix": false, + "positionInOperation": "first", + "parameters": [ + { + "$ref": "#/parameters/Url" + } + ] + }, + "schemes": [ + "https" + ], + "consumes": [ + "application/xml" + ], + "produces": [ + "application/xml" + ], + "paths": {}, + "x-ms-paths": { + "/?restype=service&comp=properties": { + "put": { + "tags": [ + "service" + ], + "operationId": "Service_SetProperties", + "description": "Sets properties for a storage account's Blob service endpoint, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules", + "parameters": [ + { + "$ref": "#/parameters/StorageServiceProperties" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "202": { + "description": "Success (Accepted)", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "get": { + "tags": [ + "service" + ], + "operationId": "Service_GetProperties", + "description": "gets the properties of a storage account's Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + } + }, + "schema": { + "$ref": "#/definitions/StorageServiceProperties" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "service" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "properties" + ] + } + ] + }, + "/?restype=service&comp=stats": { + "get": { + "tags": [ + "service" + ], + "operationId": "Service_GetStatistics", + "description": "Retrieves statistics related to replication for the Blob service. It is only available on the secondary location endpoint when read-access geo-redundant replication is enabled for the storage account.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/StorageServiceStats" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "service" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "stats" + ] + } + ] + }, + "/?comp=list": { + "get": { + "tags": [ + "service" + ], + "operationId": "Service_ListContainersSegment", + "description": "The List Containers Segment operation returns a list of the containers under the specified account", + "parameters": [ + { + "$ref": "#/parameters/Prefix" + }, + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/MaxResults" + }, + { + "$ref": "#/parameters/ListContainersInclude" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + } + }, + "schema": { + "$ref": "#/definitions/ListContainersSegmentResponse" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "NextMarker" + } + }, + "parameters": [ + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "list" + ] + } + ] + }, + "/?restype=service&comp=userdelegationkey": { + "post": { + "tags": [ + "service" + ], + "operationId": "Service_GetUserDelegationKey", + "description": "Retrieves a user delegation key for the Blob service. This is only a valid operation when using bearer token authentication.", + "parameters": [ + { + "$ref": "#/parameters/KeyInfo" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/UserDelegationKey" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "service" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "userdelegationkey" + ] + } + ] + }, + "/?restype=account&comp=properties": { + "get": { + "tags": [ + "service" + ], + "operationId": "Service_GetAccountInfo", + "description": "Returns the sku name and account kind ", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success (OK)", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-sku-name": { + "x-ms-client-name": "SkuName", + "type": "string", + "enum": [ + "Standard_LRS", + "Standard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS", + "Standard_GZRS", + "Premium_ZRS", + "Standard_RAGZRS" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": false + }, + "description": "Identifies the sku name of the account" + }, + "x-ms-account-kind": { + "x-ms-client-name": "AccountKind", + "type": "string", + "enum": [ + "Storage", + "BlobStorage", + "StorageV2", + "FileStorage", + "BlockBlobStorage" + ], + "x-ms-enum": { + "name": "AccountKind", + "modelAsString": false + }, + "description": "Identifies the account kind" + }, + "x-ms-is-hns-enabled": { + "x-ms-client-name": "IsHierarchicalNamespaceEnabled", + "type": "boolean", + "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "account" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "properties" + ] + } + ] + }, + "/?comp=batch": { + "post": { + "tags": [ + "service" + ], + "operationId": "Service_SubmitBatch", + "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", + "parameters": [ + { + "$ref": "#/parameters/Body" + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/MultipartContentType" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "Content-Type": { + "type": "string", + "description": "The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID" + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + } + }, + "schema": { + "type": "object", + "format": "file" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "batch" + ] + } + ] + }, + "/?comp=blobs": { + "get": { + "tags": [ + "service" + ], + "operationId": "Service_FilterBlobs", + "description": "The Filter Blobs operation enables callers to list blobs across all containers whose tags match a given search expression. Filter blobs searches across all containers within a storage account but can be scoped within the expression to a single container.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/FilterBlobsWhere" + }, + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/MaxResults" + }, + { + "$ref": "#/parameters/FilterBlobsInclude" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/FilterBlobSegment" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "blobs" + ] + } + ] + }, + "/{containerName}?restype=container": { + "put": { + "tags": [ + "container" + ], + "operationId": "Container_Create", + "description": "creates a new container under the specified account. If the container with the same name already exists, the operation fails", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/BlobPublicAccess" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/DefaultEncryptionScope" + }, + { + "$ref": "#/parameters/DenyEncryptionScopeOverride" + } + ], + "responses": { + "201": { + "description": "Success, Container created.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "get": { + "tags": [ + "container" + ], + "operationId": "Container_GetProperties", + "description": "returns all user-defined metadata and system properties for the specified container. The data returned does not include the container's list of blobs", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-ms-meta": { + "type": "string", + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-lease-duration": { + "x-ms-client-name": "LeaseDuration", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", + "type": "string", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "modelAsString": false + } + }, + "x-ms-lease-state": { + "x-ms-client-name": "LeaseState", + "description": "Lease state of the blob.", + "type": "string", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseStateType", + "modelAsString": false + } + }, + "x-ms-lease-status": { + "x-ms-client-name": "LeaseStatus", + "description": "The current lease status of the blob.", + "type": "string", + "enum": [ + "locked", + "unlocked" + ], + "x-ms-enum": { + "name": "LeaseStatusType", + "modelAsString": false + } + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-blob-public-access": { + "x-ms-client-name": "BlobPublicAccess", + "description": "Indicated whether data in the container may be accessed publicly and the level of access", + "type": "string", + "enum": [ + "container", + "blob" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true + } + }, + "x-ms-has-immutability-policy": { + "x-ms-client-name": "HasImmutabilityPolicy", + "description": "Indicates whether the container has an immutability policy set on it.", + "type": "boolean" + }, + "x-ms-has-legal-hold": { + "x-ms-client-name": "HasLegalHold", + "description": "Indicates whether the container has a legal hold.", + "type": "boolean" + }, + "x-ms-default-encryption-scope": { + "x-ms-client-name": "DefaultEncryptionScope", + "description": "The default encryption scope for the container.", + "type": "string" + }, + "x-ms-deny-encryption-scope-override": { + "x-ms-client-name": "DenyEncryptionScopeOverride", + "description": "Indicates whether the container's default encryption scope can be overriden.", + "type": "boolean" + }, + "x-ms-immutable-storage-with-versioning-enabled": { + "x-ms-client-name": "IsImmutableStorageWithVersioningEnabled", + "description": "Indicates whether version level worm is enabled on a container.", + "type": "boolean" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "delete": { + "tags": [ + "container" + ], + "operationId": "Container_Delete", + "description": "operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "202": { + "description": "Accepted", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + } + ] + }, + "/{containerName}?restype=container&comp=metadata": { + "put": { + "tags": [ + "container" + ], + "operationId": "Container_SetMetadata", + "description": "operation sets one or more user-defined name-value pairs for the specified container.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "metadata" + ] + } + ] + }, + "/{containerName}?restype=container&comp=acl": { + "get": { + "tags": [ + "container" + ], + "operationId": "Container_GetAccessPolicy", + "description": "gets the permissions for the specified container. The permissions indicate whether container data may be accessed publicly.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-ms-blob-public-access": { + "x-ms-client-name": "BlobPublicAccess", + "description": "Indicated whether data in the container may be accessed publicly and the level of access", + "type": "string", + "enum": [ + "container", + "blob" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true + } + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "put": { + "tags": [ + "container" + ], + "operationId": "Container_SetAccessPolicy", + "description": "sets the permissions for the specified container. The permissions indicate whether blobs in a container may be accessed publicly.", + "parameters": [ + { + "$ref": "#/parameters/ContainerAcl" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/BlobPublicAccess" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "acl" + ] + } + ] + }, + "/{containerName}?restype=container&comp=undelete": { + "put": { + "tags": [ + "container" + ], + "operationId": "Container_Restore", + "description": "Restores a previously-deleted container.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/DeletedContainerName" + }, + { + "$ref": "#/parameters/DeletedContainerVersion" + } + ], + "responses": { + "201": { + "description": "Created.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "undelete" + ] + } + ] + }, + "/{containerName}?restype=container&comp=rename": { + "put": { + "tags": [ + "container" + ], + "operationId": "Container_Rename", + "description": "Renames an existing container.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/SourceContainerName" + }, + { + "$ref": "#/parameters/SourceLeaseId" + } + ], + "responses": { + "200": { + "description": "Created.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "rename" + ] + } + ] + }, + "/{containerName}?restype=container&comp=batch": { + "post": { + "tags": [ + "container" + ], + "operationId": "Container_SubmitBatch", + "description": "The Batch operation allows multiple API calls to be embedded into a single HTTP request.", + "parameters": [ + { + "$ref": "#/parameters/Body" + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/MultipartContentType" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "202": { + "description": "Success.", + "headers": { + "Content-Type": { + "type": "string", + "description": "The media type of the body of the response. For batch requests, this is multipart/mixed; boundary=batchresponse_GUID" + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + } + }, + "schema": { + "type": "object", + "format": "file" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "batch" + ] + } + ] + }, + "/{containerName}?restype=container&comp=blobs": { + "get": { + "tags": [ + "container" + ], + "operationId": "Container_FilterBlobs", + "description": "The Filter Blobs operation enables callers to list blobs in a container whose tags match a given search expression. Filter blobs searches within the given container.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/FilterBlobsWhere" + }, + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/MaxResults" + }, + { + "$ref": "#/parameters/FilterBlobsInclude" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/FilterBlobSegment" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "blobs" + ] + } + ] + }, + "/{containerName}?comp=lease&restype=container&acquire": { + "put": { + "tags": [ + "container" + ], + "operationId": "Container_AcquireLease", + "description": "[Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseDuration" + }, + { + "$ref": "#/parameters/ProposedLeaseIdOptional" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "201": { + "description": "The Acquire operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a container's lease" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "acquire" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{containerName}?comp=lease&restype=container&release": { + "put": { + "tags": [ + "container" + ], + "operationId": "Container_ReleaseLease", + "description": "[Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The Release operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "release" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{containerName}?comp=lease&restype=container&renew": { + "put": { + "tags": [ + "container" + ], + "operationId": "Container_RenewLease", + "description": "[Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The Renew operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a container's lease" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "renew" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{containerName}?comp=lease&restype=container&break": { + "put": { + "tags": [ + "container" + ], + "operationId": "Container_BreakLease", + "description": "[Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseBreakPeriod" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "202": { + "description": "The Break operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-lease-time": { + "x-ms-client-name": "LeaseTime", + "type": "integer", + "description": "Approximate time remaining in the lease period, in seconds." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "break" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{containerName}?comp=lease&restype=container&change": { + "put": { + "tags": [ + "container" + ], + "operationId": "Container_ChangeLease", + "description": "[Update] establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/ProposedLeaseIdRequired" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The Change operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a container's lease" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "change" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{containerName}?restype=container&comp=list&flat": { + "get": { + "tags": [ + "containers" + ], + "operationId": "Container_ListBlobFlatSegment", + "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", + "parameters": [ + { + "$ref": "#/parameters/Prefix" + }, + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/MaxResults" + }, + { + "$ref": "#/parameters/ListBlobsInclude" + }, + { + "$ref": "#/parameters/ListBlobsStartFrom" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "Content-Type": { + "type": "string", + "description": "The media type of the body of the response. For List Blobs this is 'application/xml'" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/ListBlobsFlatSegmentResponse" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "NextMarker" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "list" + ] + } + ] + }, + "/{containerName}?restype=container&comp=list&hierarchy": { + "get": { + "tags": [ + "containers" + ], + "operationId": "Container_ListBlobHierarchySegment", + "description": "[Update] The List Blobs operation returns a list of the blobs under the specified container", + "parameters": [ + { + "$ref": "#/parameters/Prefix" + }, + { + "$ref": "#/parameters/Delimiter" + }, + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/MaxResults" + }, + { + "$ref": "#/parameters/ListBlobsInclude" + }, + { + "$ref": "#/parameters/ListBlobsStartFrom" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "Content-Type": { + "type": "string", + "description": "The media type of the body of the response. For List Blobs this is 'application/xml'" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/ListBlobsHierarchySegmentResponse" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "NextMarker" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "container" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "list" + ] + } + ] + }, + "/{containerName}?restype=account&comp=properties": { + "get": { + "tags": [ + "container" + ], + "operationId": "Container_GetAccountInfo", + "description": "Returns the sku name and account kind ", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success (OK)", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-sku-name": { + "x-ms-client-name": "SkuName", + "type": "string", + "enum": [ + "Standard_LRS", + "Standard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS", + "Standard_GZRS", + "Premium_ZRS", + "Standard_RAGZRS" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": false + }, + "description": "Identifies the sku name of the account" + }, + "x-ms-account-kind": { + "x-ms-client-name": "AccountKind", + "type": "string", + "enum": [ + "Storage", + "BlobStorage", + "StorageV2", + "FileStorage", + "BlockBlobStorage" + ], + "x-ms-enum": { + "name": "AccountKind", + "modelAsString": false + }, + "description": "Identifies the account kind" + }, + "x-ms-is-hns-enabled": { + "x-ms-client-name": "IsHierarchicalNamespaceEnabled", + "type": "boolean", + "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "account" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "properties" + ] + } + ] + }, + "/{containerName}/{blob}": { + "get": { + "tags": [ + "blob" + ], + "operationId": "Blob_Download", + "description": "The Download operation reads or downloads a blob from the system, including its metadata and properties. You can also call Download to read a snapshot.", + "parameters": [ + { + "$ref": "#/parameters/Snapshot" + }, + { + "$ref": "#/parameters/VersionId" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Range" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/GetRangeContentMD5" + }, + { + "$ref": "#/parameters/GetRangeContentCRC64" + }, + { + "$ref": "#/parameters/StructuredBodyGet" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Returns the content of the entire blob.", + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-creation-time": { + "x-ms-client-name": "CreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was created." + }, + "x-ms-meta": { + "type": "string", + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "x-ms-or-policy-id": { + "x-ms-client-name": "ObjectReplicationPolicyId", + "type": "string", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + }, + "x-ms-or": { + "type": "string", + "x-ms-client-name": "ObjectReplicationRules", + "x-ms-header-collection-prefix": "x-ms-or-", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed)." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-Type": { + "type": "string", + "description": "The media type of the body of the response. For Download Blob this is 'application/octet-stream'" + }, + "Content-Range": { + "type": "string", + "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Content-Encoding": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Encoding request header" + }, + "Cache-Control": { + "type": "string", + "description": "This header is returned if it was previously specified for the blob." + }, + "Content-Disposition": { + "type": "string", + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + }, + "Content-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "x-ms-blob-sequence-number": { + "x-ms-client-name": "BlobSequenceNumber", + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" + }, + "x-ms-blob-type": { + "x-ms-client-name": "BlobType", + "description": "The blob's type.", + "type": "string", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false + } + }, + "x-ms-copy-completion-time": { + "x-ms-client-name": "CopyCompletionTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status-description": { + "x-ms-client-name": "CopyStatusDescription", + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-progress": { + "x-ms-client-name": "CopyProgress", + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-source": { + "x-ms-client-name": "CopySource", + "type": "string", + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by x-ms-copy-id.", + "type": "string", + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } + }, + "x-ms-lease-duration": { + "x-ms-client-name": "LeaseDuration", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", + "type": "string", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "modelAsString": false + } + }, + "x-ms-lease-state": { + "x-ms-client-name": "LeaseState", + "description": "Lease state of the blob.", + "type": "string", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseStateType", + "modelAsString": false + } + }, + "x-ms-lease-status": { + "x-ms-client-name": "LeaseStatus", + "description": "The current lease status of the blob.", + "type": "string", + "enum": [ + "locked", + "unlocked" + ], + "x-ms-enum": { + "name": "LeaseStatusType", + "modelAsString": false + } + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "x-ms-version-id": { + "x-ms-client-name": "VersionId", + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + }, + "x-ms-is-current-version": { + "x-ms-client-name": "IsCurrentVersion", + "type": "boolean", + "description": "The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header." + }, + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial blob content." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-blob-committed-block-count": { + "x-ms-client-name": "BlobCommittedBlockCount", + "type": "integer", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the blob data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the blob is unencrypted, or if only parts of the blob/application metadata are encrypted)." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + }, + "x-ms-blob-content-md5": { + "x-ms-client-name": "BlobContentMD5", + "type": "string", + "format": "byte", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-tag-count": { + "x-ms-client-name": "TagCount", + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" + }, + "x-ms-blob-sealed": { + "x-ms-client-name": "IsSealed", + "type": "boolean", + "description": "If this blob has been sealed" + }, + "x-ms-last-access-time": { + "x-ms-client-name": "LastAccessed", + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob was last read or written to" + }, + "x-ms-immutability-policy-until-date": { + "x-ms-client-name": "ImmutabilityPolicyExpiresOn", + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." + }, + "x-ms-immutability-policy-mode": { + "x-ms-client-name": "ImmutabilityPolicyMode", + "type": "string", + "enum": [ + "Mutable", + "Unlocked", + "Locked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": false + }, + "description": "Indicates immutability policy mode." + }, + "x-ms-legal-hold": { + "x-ms-client-name": "LegalHold", + "type": "boolean", + "description": "Indicates if a legal hold is present on the blob." + }, + "x-ms-structured-body": { + "x-ms-client-name": "StructuredBodyType", + "type": "string", + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." + }, + "x-ms-structured-content-length": { + "x-ms-client-name": "StructuredContentLength", + "type": "integer", + "format": "int64", + "description": "The length of the blob/file content inside the message body when the response body is returned as a structured message. Will always be smaller than Content-Length." + } + }, + "schema": { + "type": "object", + "format": "file" + } + }, + "206": { + "description": "Returns the content of a specified range of the blob.", + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-creation-time": { + "x-ms-client-name": "CreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was created." + }, + "x-ms-meta": { + "type": "string", + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "x-ms-or-policy-id": { + "x-ms-client-name": "ObjectReplicationPolicyId", + "type": "string", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + }, + "x-ms-or": { + "type": "string", + "x-ms-client-name": "ObjectReplicationRules", + "x-ms-header-collection-prefix": "x-ms-or-", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed)." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-Type": { + "type": "string", + "description": "The media type of the body of the response. For Download Blob this is 'application/octet-stream'" + }, + "Content-Range": { + "type": "string", + "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Content-Encoding": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Encoding request header" + }, + "Cache-Control": { + "type": "string", + "description": "This header is returned if it was previously specified for the blob." + }, + "Content-Disposition": { + "type": "string", + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + }, + "Content-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "x-ms-blob-sequence-number": { + "x-ms-client-name": "BlobSequenceNumber", + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" + }, + "x-ms-blob-type": { + "x-ms-client-name": "BlobType", + "description": "The blob's type.", + "type": "string", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false + } + }, + "x-ms-content-crc64": { + "x-ms-client-name": "ContentCrc64", + "type": "string", + "format": "byte", + "description": "If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to true, then the request returns a crc64 for the range, as long as the range size is less than or equal to 4 MB. If both x-ms-range-get-content-crc64 & x-ms-range-get-content-md5 is specified in the same request, it will fail with 400(Bad Request)" + }, + "x-ms-copy-completion-time": { + "x-ms-client-name": "CopyCompletionTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status-description": { + "x-ms-client-name": "CopyStatusDescription", + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-progress": { + "x-ms-client-name": "CopyProgress", + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-source": { + "x-ms-client-name": "CopySource", + "type": "string", + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by x-ms-copy-id.", + "type": "string", + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } + }, + "x-ms-lease-duration": { + "x-ms-client-name": "LeaseDuration", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", + "type": "string", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "modelAsString": false + } + }, + "x-ms-lease-state": { + "x-ms-client-name": "LeaseState", + "description": "Lease state of the blob.", + "type": "string", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseStateType", + "modelAsString": false + } + }, + "x-ms-lease-status": { + "x-ms-client-name": "LeaseStatus", + "description": "The current lease status of the blob.", + "type": "string", + "enum": [ + "locked", + "unlocked" + ], + "x-ms-enum": { + "name": "LeaseStatusType", + "modelAsString": false + } + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "x-ms-version-id": { + "x-ms-client-name": "VersionId", + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + }, + "x-ms-is-current-version": { + "x-ms-client-name": "IsCurrentVersion", + "type": "boolean", + "description": "The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header." + }, + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial blob content." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-blob-committed-block-count": { + "x-ms-client-name": "BlobCommittedBlockCount", + "type": "integer", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the blob data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the blob is unencrypted, or if only parts of the blob/application metadata are encrypted)." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + }, + "x-ms-blob-content-md5": { + "x-ms-client-name": "BlobContentMD5", + "type": "string", + "format": "byte", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + }, + "x-ms-tag-count": { + "x-ms-client-name": "TagCount", + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" + }, + "x-ms-blob-sealed": { + "x-ms-client-name": "IsSealed", + "type": "boolean", + "description": "If this blob has been sealed" + }, + "x-ms-last-access-time": { + "x-ms-client-name": "LastAccessed", + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob was last read or written to" + }, + "x-ms-immutability-policy-until-date": { + "x-ms-client-name": "ImmutabilityPolicyExpiresOn", + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." + }, + "x-ms-immutability-policy-mode": { + "x-ms-client-name": "ImmutabilityPolicyMode", + "type": "string", + "description": "Indicates immutability policy mode." + }, + "x-ms-legal-hold": { + "x-ms-client-name": "LegalHold", + "type": "boolean", + "description": "Indicates if a legal hold is present on the blob." + }, + "x-ms-structured-body": { + "x-ms-client-name": "StructuredBodyType", + "type": "string", + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." + }, + "x-ms-structured-content-length": { + "x-ms-client-name": "StructuredContentLength", + "type": "integer", + "format": "int64", + "description": "The length of the blob/file content inside the message body when the response body is returned as a structured message. Will always be smaller than Content-Length." + } + }, + "schema": { + "type": "object", + "format": "file" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "head": { + "tags": [ + "blob" + ], + "operationId": "Blob_GetProperties", + "description": "The Get Properties operation returns all user-defined metadata, standard HTTP properties, and system properties for the blob. It does not return the content of the blob.", + "parameters": [ + { + "$ref": "#/parameters/Snapshot" + }, + { + "$ref": "#/parameters/VersionId" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Returns the properties of the blob.", + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-creation-time": { + "x-ms-client-name": "CreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was created." + }, + "x-ms-meta": { + "type": "string", + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "x-ms-or-policy-id": { + "x-ms-client-name": "ObjectReplicationPolicyId", + "type": "string", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + }, + "x-ms-or": { + "type": "string", + "x-ms-client-name": "ObjectReplicationRules", + "x-ms-header-collection-prefix": "x-ms-or-", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed)." + }, + "x-ms-blob-type": { + "x-ms-client-name": "BlobType", + "description": "The blob's type.", + "type": "string", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false + } + }, + "x-ms-copy-completion-time": { + "x-ms-client-name": "CopyCompletionTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status-description": { + "x-ms-client-name": "CopyStatusDescription", + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-progress": { + "x-ms-client-name": "CopyProgress", + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-source": { + "x-ms-client-name": "CopySource", + "type": "string", + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by x-ms-copy-id.", + "type": "string", + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } + }, + "x-ms-incremental-copy": { + "x-ms-client-name": "IsIncrementalCopy", + "type": "boolean", + "description": "Included if the blob is incremental copy blob." + }, + "x-ms-copy-destination-snapshot": { + "x-ms-client-name": "DestinationSnapshot", + "type": "string", + "description": "Included if the blob is incremental copy blob or incremental copy snapshot, if x-ms-copy-status is success. Snapshot time of the last successful incremental copy snapshot for this blob." + }, + "x-ms-lease-duration": { + "x-ms-client-name": "LeaseDuration", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", + "type": "string", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "modelAsString": false + } + }, + "x-ms-lease-state": { + "x-ms-client-name": "LeaseState", + "description": "Lease state of the blob.", + "type": "string", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseStateType", + "modelAsString": false + } + }, + "x-ms-lease-status": { + "x-ms-client-name": "LeaseStatus", + "description": "The current lease status of the blob.", + "type": "string", + "enum": [ + "locked", + "unlocked" + ], + "x-ms-enum": { + "name": "LeaseStatusType", + "modelAsString": false + } + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-Type": { + "type": "string", + "description": "The content type specified for the blob. The default content type is 'application/octet-stream'" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Content-Encoding": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Encoding request header" + }, + "Content-Disposition": { + "type": "string", + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + }, + "Content-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "Cache-Control": { + "type": "string", + "description": "This header is returned if it was previously specified for the blob." + }, + "x-ms-blob-sequence-number": { + "x-ms-client-name": "BlobSequenceNumber", + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial blob content." + }, + "x-ms-blob-committed-block-count": { + "x-ms-client-name": "BlobCommittedBlockCount", + "type": "integer", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the blob data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the blob is unencrypted, or if only parts of the blob/application metadata are encrypted)." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the metadata. This header is only returned when the metadata was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + }, + "x-ms-access-tier": { + "x-ms-client-name": "AccessTier", + "type": "string", + "description": "The tier of page blob on a premium storage account or tier of block blob on blob storage LRS accounts. For a list of allowed premium page blob tiers, see https://learn.microsoft.com/azure/virtual-machines/disks-types#premium-ssd. For blob storage LRS accounts, valid values are Hot/Cool/Archive." + }, + "x-ms-access-tier-inferred": { + "x-ms-client-name": "AccessTierInferred", + "type": "boolean", + "description": "For page blobs on a premium storage account only. If the access tier is not explicitly set on the blob, the tier is inferred based on its content length and this header will be returned with true value." + }, + "x-ms-archive-status": { + "x-ms-client-name": "ArchiveStatus", + "type": "string", + "description": "For blob storage LRS accounts, valid values are rehydrate-pending-to-hot/rehydrate-pending-to-cool. If the blob is being rehydrated and is not complete then this header is returned indicating that rehydrate is pending and also tells the destination tier." + }, + "x-ms-access-tier-change-time": { + "x-ms-client-name": "AccessTierChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "The time the tier was changed on the object. This is only returned if the tier on the block blob was ever set." + }, + "x-ms-version-id": { + "x-ms-client-name": "VersionId", + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + }, + "x-ms-is-current-version": { + "x-ms-client-name": "IsCurrentVersion", + "type": "boolean", + "description": "The value of this header indicates whether version of this blob is a current version, see also x-ms-version-id header." + }, + "x-ms-tag-count": { + "x-ms-client-name": "TagCount", + "type": "integer", + "format": "int64", + "description": "The number of tags associated with the blob" + }, + "x-ms-expiry-time": { + "x-ms-client-name": "ExpiresOn", + "type": "string", + "format": "date-time-rfc1123", + "description": "The time this blob will expire." + }, + "x-ms-blob-sealed": { + "x-ms-client-name": "IsSealed", + "type": "boolean", + "description": "If this blob has been sealed" + }, + "x-ms-rehydrate-priority": { + "x-ms-client-name": "RehydratePriority", + "description": "If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.", + "type": "string" + }, + "x-ms-last-access-time": { + "x-ms-client-name": "LastAccessed", + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob was last read or written to" + }, + "x-ms-immutability-policy-until-date": { + "x-ms-client-name": "ImmutabilityPolicyExpiresOn", + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the blob immutability policy will expire." + }, + "x-ms-immutability-policy-mode": { + "x-ms-client-name": "ImmutabilityPolicyMode", + "type": "string", + "enum": [ + "Mutable", + "Unlocked", + "Locked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": false + }, + "description": "Indicates immutability policy mode." + }, + "x-ms-legal-hold": { + "x-ms-client-name": "LegalHold", + "type": "boolean", + "description": "Indicates if a legal hold is present on the blob." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "delete": { + "tags": [ + "blob" + ], + "operationId": "Blob_Delete", + "description": "If the storage account's soft delete feature is disabled then, when a blob is deleted, it is permanently removed from the storage account. If the storage account's soft delete feature is enabled, then, when a blob is deleted, it is marked for deletion and becomes inaccessible immediately. However, the blob service retains the blob or snapshot for the number of days specified by the DeleteRetentionPolicy section of [Storage service properties] (Set-Blob-Service-Properties.md). After the specified number of days has passed, the blob's data is permanently removed from the storage account. Note that you continue to be charged for the soft-deleted blob's storage until it is permanently removed. Use the List Blobs API and specify the \"include=deleted\" query parameter to discover which blobs and snapshots have been soft deleted. You can then use the Undelete Blob API to restore a soft-deleted blob. All other operations on a soft-deleted blob or snapshot causes the service to return an HTTP status code of 404 (ResourceNotFound).", + "parameters": [ + { + "$ref": "#/parameters/Snapshot" + }, + { + "$ref": "#/parameters/VersionId" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/DeleteSnapshots" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/BlobDeleteType" + }, + { + "$ref": "#/parameters/AccessTierIfModifiedSince" + }, + { + "$ref": "#/parameters/AccessTierIfUnmodifiedSince" + } + ], + "responses": { + "202": { + "description": "The delete request was accepted and the blob will be deleted.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + } + ] + }, + "/{containerName}/{blob}?PageBlob": { + "put": { + "tags": [ + "blob" + ], + "operationId": "PageBlob_Create", + "description": "The Create operation creates a new page blob.", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/PremiumPageBlobAccessTierOptional" + }, + { + "$ref": "#/parameters/BlobContentType" + }, + { + "$ref": "#/parameters/BlobContentEncoding" + }, + { + "$ref": "#/parameters/BlobContentLanguage" + }, + { + "$ref": "#/parameters/BlobContentMD5" + }, + { + "$ref": "#/parameters/BlobCacheControl" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/BlobContentDisposition" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/BlobContentLengthRequired" + }, + { + "$ref": "#/parameters/BlobSequenceNumber" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/BlobTagsHeader" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiry" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyMode" + }, + { + "$ref": "#/parameters/LegalHoldOptional" + } + ], + "responses": { + "201": { + "description": "The blob was created.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "x-ms-version-id": { + "x-ms-client-name": "VersionId", + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "x-ms-blob-type", + "x-ms-client-name": "blobType", + "in": "header", + "required": true, + "x-ms-parameter-location": "method", + "description": "Specifies the type of blob to create: block blob, page blob, or append blob.", + "type": "string", + "enum": [ + "PageBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false + } + } + ] + }, + "/{containerName}/{blob}?AppendBlob": { + "put": { + "tags": [ + "blob" + ], + "operationId": "AppendBlob_Create", + "description": "The Create Append Blob operation creates a new append blob.", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/BlobContentType" + }, + { + "$ref": "#/parameters/BlobContentEncoding" + }, + { + "$ref": "#/parameters/BlobContentLanguage" + }, + { + "$ref": "#/parameters/BlobContentMD5" + }, + { + "$ref": "#/parameters/BlobCacheControl" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/BlobContentDisposition" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/BlobTagsHeader" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiry" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyMode" + }, + { + "$ref": "#/parameters/LegalHoldOptional" + } + ], + "responses": { + "201": { + "description": "The blob was created.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "x-ms-version-id": { + "x-ms-client-name": "VersionId", + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "x-ms-blob-type", + "x-ms-client-name": "blobType", + "in": "header", + "required": true, + "x-ms-parameter-location": "method", + "description": "Specifies the type of blob to create: block blob, page blob, or append blob.", + "type": "string", + "enum": [ + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false + } + } + ] + }, + "/{containerName}/{blob}?BlockBlob": { + "put": { + "tags": [ + "blob" + ], + "operationId": "BlockBlob_Upload", + "description": "The Upload Block Blob operation updates the content of an existing block blob. Updating an existing block blob overwrites any existing metadata on the blob. Partial updates are not supported with Put Blob; the content of the existing blob is overwritten with the content of the new blob. To perform a partial update of the content of a block blob, use the Put Block List operation.", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "$ref": "#/parameters/Body" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ContentMD5" + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/BlobContentType" + }, + { + "$ref": "#/parameters/BlobContentEncoding" + }, + { + "$ref": "#/parameters/BlobContentLanguage" + }, + { + "$ref": "#/parameters/BlobContentMD5" + }, + { + "$ref": "#/parameters/BlobCacheControl" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/BlobContentDisposition" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/AccessTierOptional" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/BlobTagsHeader" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiry" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyMode" + }, + { + "$ref": "#/parameters/LegalHoldOptional" + }, + { + "$ref": "#/parameters/ContentCrc64" + }, + { + "$ref": "#/parameters/StructuredBodyPut" + }, + { + "$ref": "#/parameters/StructuredContentLength" + } + ], + "responses": { + "201": { + "description": "The blob was updated.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "x-ms-version-id": { + "x-ms-client-name": "VersionId", + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + }, + "x-ms-structured-body": { + "x-ms-client-name": "StructuredBodyType", + "type": "string", + "description": "Indicates the structured message body was accepted and mirrors back the message schema version and properties." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "x-ms-blob-type", + "x-ms-client-name": "blobType", + "in": "header", + "required": true, + "x-ms-parameter-location": "method", + "description": "Specifies the type of blob to create: block blob, page blob, or append blob.", + "type": "string", + "enum": [ + "BlockBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false + } + } + ] + }, + "/{containerName}/{blob}?BlockBlob&fromUrl": { + "put": { + "tags": [ + "blob" + ], + "operationId": "BlockBlob_PutBlobFromUrl", + "description": "The Put Blob from URL operation creates a new Block Blob where the contents of the blob are read from a given URL. This API is supported beginning with the 2020-04-08 version. Partial updates are not supported with Put Blob from URL; the content of an existing blob is overwritten with the content of the new blob. To perform partial updates to a block blob’s contents using a source URL, use the Put Block from URL API in conjunction with Put Block List.", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ContentMD5" + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/BlobContentType" + }, + { + "$ref": "#/parameters/BlobContentEncoding" + }, + { + "$ref": "#/parameters/BlobContentLanguage" + }, + { + "$ref": "#/parameters/BlobContentMD5" + }, + { + "$ref": "#/parameters/BlobCacheControl" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/BlobContentDisposition" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/AccessTierOptional" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/SourceIfModifiedSince" + }, + { + "$ref": "#/parameters/SourceIfUnmodifiedSince" + }, + { + "$ref": "#/parameters/SourceIfMatch" + }, + { + "$ref": "#/parameters/SourceIfNoneMatch" + }, + { + "$ref": "#/parameters/SourceIfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/SourceContentMD5" + }, + { + "$ref": "#/parameters/BlobTagsHeader" + }, + { + "$ref": "#/parameters/CopySource" + }, + { + "$ref": "#/parameters/CopySourceBlobProperties" + }, + { + "$ref": "#/parameters/CopySourceAuthorization" + }, + { + "$ref": "#/parameters/CopySourceTags" + }, + { + "$ref": "#/parameters/FileRequestIntent" + }, + { + "$ref": "#/parameters/SourceEncryptionKey" + }, + { + "$ref": "#/parameters/SourceEncryptionKeySha256" + }, + { + "$ref": "#/parameters/SourceEncryptionAlgorithm" + } + ], + "responses": { + "201": { + "description": "The blob was updated.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "x-ms-version-id": { + "x-ms-client-name": "VersionId", + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + }, + "x-ms-copy-source-error-code": { + "x-ms-client-name": "CopySourceErrorCode", + "type": "string" + }, + "x-ms-copy-source-status-code": { + "x-ms-client-name": "CopySourceStatusCode", + "type": "integer", + "format": "int32" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "x-ms-blob-type", + "x-ms-client-name": "blobType", + "in": "header", + "required": true, + "x-ms-parameter-location": "method", + "description": "Specifies the type of blob to create: block blob, page blob, or append blob.", + "type": "string", + "enum": [ + "BlockBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false + } + } + ] + }, + "/{containerName}/{blob}?comp=undelete": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_Undelete", + "description": "Undelete a blob that was previously soft deleted", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The blob was undeleted successfully.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "undelete" + ] + } + ] + }, + "/{containerName}/{blob}?comp=expiry": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_SetExpiry", + "description": "Sets the time a blob will expire and be deleted.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/BlobExpiryOptions" + }, + { + "$ref": "#/parameters/BlobExpiryTime" + } + ], + "responses": { + "200": { + "description": "The blob expiry was set successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "expiry" + ] + } + ] + }, + "/{containerName}/{blob}?comp=properties&SetHTTPHeaders": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_SetHTTPHeaders", + "description": "The Set HTTP Headers operation sets system properties on the blob", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/BlobCacheControl" + }, + { + "$ref": "#/parameters/BlobContentType" + }, + { + "$ref": "#/parameters/BlobContentMD5" + }, + { + "$ref": "#/parameters/BlobContentEncoding" + }, + { + "$ref": "#/parameters/BlobContentLanguage" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/BlobContentDisposition" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The properties were set successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-blob-sequence-number": { + "x-ms-client-name": "BlobSequenceNumber", + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "properties" + ] + } + ] + }, + "/{containerName}/{blob}?comp=immutabilityPolicies": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_SetImmutabilityPolicy", + "description": "The Set Immutability Policy operation sets the immutability policy on the blob", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiry" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyMode" + }, + { + "$ref": "#/parameters/Snapshot" + }, + { + "$ref": "#/parameters/VersionId" + } + ], + "responses": { + "200": { + "description": "The immutability policy was successfully set.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-immutability-policy-until-date": { + "x-ms-client-name": "ImmutabilityPolicyExpiry", + "type": "string", + "format": "date-time-rfc1123", + "description": "Indicates the time the immutability policy will expire." + }, + "x-ms-immutability-policy-mode": { + "x-ms-client-name": "ImmutabilityPolicyMode", + "type": "string", + "enum": [ + "Mutable", + "Unlocked", + "Locked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": false + }, + "description": "Indicates immutability policy mode." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "delete": { + "tags": [ + "blob" + ], + "operationId": "Blob_DeleteImmutabilityPolicy", + "description": "The Delete Immutability Policy operation deletes the immutability policy on the blob", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/Snapshot" + }, + { + "$ref": "#/parameters/VersionId" + } + ], + "responses": { + "200": { + "description": "The delete immutability policy request was accepted and the immutability policy will be deleted.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "immutabilityPolicies" + ] + } + ] + }, + "/{containerName}/{blob}?comp=legalhold": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_SetLegalHold", + "description": "The Set Legal Hold operation sets a legal hold on the blob.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/LegalHoldRequired" + }, + { + "$ref": "#/parameters/Snapshot" + }, + { + "$ref": "#/parameters/VersionId" + } + ], + "responses": { + "200": { + "description": "The legal hold was successfully set on the blob.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-legal-hold": { + "x-ms-client-name": "LegalHold", + "type": "boolean", + "description": "Indicates if the blob has a legal hold." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "legalhold" + ] + } + ] + }, + "/{containerName}/{blob}?comp=metadata": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_SetMetadata", + "description": "The Set Blob Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The metadata was set successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "x-ms-version-id": { + "x-ms-client-name": "VersionId", + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the metadata. This header is only returned when the metadata was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "metadata" + ] + } + ] + }, + "/{containerName}/{blob}?comp=lease&acquire": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_AcquireLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseDuration" + }, + { + "$ref": "#/parameters/ProposedLeaseIdOptional" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "201": { + "description": "The Acquire operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "acquire" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{containerName}/{blob}?comp=lease&release": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_ReleaseLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The Release operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "release" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{containerName}/{blob}?comp=lease&renew": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_RenewLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The Renew operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "renew" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{containerName}/{blob}?comp=lease&change": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_ChangeLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/ProposedLeaseIdRequired" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The Change operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a blobs' lease" + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "change" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{containerName}/{blob}?comp=lease&break": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_BreakLease", + "description": "[Update] The Lease Blob operation establishes and manages a lock on a blob for write and delete operations", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseBreakPeriod" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "202": { + "description": "The Break operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the blob was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-lease-time": { + "x-ms-client-name": "LeaseTime", + "type": "integer", + "description": "Approximate time remaining in the lease period, in seconds." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "break" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{containerName}/{blob}?comp=snapshot": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_CreateSnapshot", + "description": "The Create Snapshot operation creates a read-only snapshot of a blob", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "201": { + "description": "The snaptshot was taken successfully.", + "headers": { + "x-ms-snapshot": { + "x-ms-client-name": "Snapshot", + "type": "string", + "description": "Uniquely identifies the snapshot and indicates the snapshot version. It may be used in subsequent requests to access the snapshot" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "x-ms-version-id": { + "x-ms-client-name": "VersionId", + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "True if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise. For a snapshot request, this header is set to true when metadata was provided in the request and encrypted with a customer-provided key." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "snapshot" + ] + } + ] + }, + "/{containerName}/{blob}?comp=copy": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_StartCopyFromURL", + "description": "The Start Copy From URL operation copies a blob or an internet resource to a new blob.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/AccessTierOptional" + }, + { + "$ref": "#/parameters/RehydratePriority" + }, + { + "$ref": "#/parameters/SourceIfModifiedSince" + }, + { + "$ref": "#/parameters/SourceIfUnmodifiedSince" + }, + { + "$ref": "#/parameters/SourceIfMatch" + }, + { + "$ref": "#/parameters/SourceIfNoneMatch" + }, + { + "$ref": "#/parameters/SourceIfTags" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/CopySource" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/BlobTagsHeader" + }, + { + "$ref": "#/parameters/SealBlob" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiry" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyMode" + }, + { + "$ref": "#/parameters/LegalHoldOptional" + } + ], + "responses": { + "202": { + "description": "The copy blob has been accepted with the specified copy status.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "x-ms-version-id": { + "x-ms-client-name": "VersionId", + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by x-ms-copy-id.", + "type": "string", + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + }, + "x-ms-copy-source-error-code": { + "x-ms-client-name": "CopySourceErrorCode", + "type": "string" + }, + "x-ms-copy-source-status-code": { + "x-ms-client-name": "CopySourceStatusCode", + "type": "integer", + "format": "int32" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + } + ] + }, + "/{containerName}/{blob}?comp=copy&sync": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_CopyFromURL", + "description": "The Copy From URL operation copies a blob or an internet resource to a new blob. It will not return a response until the copy is complete.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/AccessTierOptional" + }, + { + "$ref": "#/parameters/SourceIfModifiedSince" + }, + { + "$ref": "#/parameters/SourceIfUnmodifiedSince" + }, + { + "$ref": "#/parameters/SourceIfMatch" + }, + { + "$ref": "#/parameters/SourceIfNoneMatch" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/CopySource" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/SourceContentMD5" + }, + { + "$ref": "#/parameters/BlobTagsHeader" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiry" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyMode" + }, + { + "$ref": "#/parameters/LegalHoldOptional" + }, + { + "$ref": "#/parameters/CopySourceAuthorization" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/CopySourceTags" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "202": { + "description": "The copy has completed.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "x-ms-version-id": { + "x-ms-client-name": "VersionId", + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", + "type": "string", + "description": "String identifier for this copy operation." + }, + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by x-ms-copy-id.", + "type": "string", + "enum": [ + "success" + ], + "x-ms-enum": { + "name": "SyncCopyStatusType", + "modelAsString": false + } + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content. This header is only returned if the source content MD5 was specified." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This response header is returned so that the client can check for the integrity of the copied content." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + }, + "x-ms-copy-source-error-code": { + "x-ms-client-name": "CopySourceErrorCode", + "type": "string" + }, + "x-ms-copy-source-status-code": { + "x-ms-client-name": "CopySourceStatusCode", + "type": "integer", + "format": "int32" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "x-ms-requires-sync", + "description": "This header indicates that this is a synchronous Copy Blob From URL instead of a Asynchronous Copy Blob.", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "true" + ] + } + ] + }, + "/{containerName}/{blob}?comp=copy©id": { + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_AbortCopyFromURL", + "description": "The Abort Copy From URL operation aborts a pending Copy From URL operation, and leaves a destination blob with zero length and full metadata.", + "parameters": [ + { + "$ref": "#/parameters/CopyId" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "204": { + "description": "The delete request was accepted and the blob will be deleted.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "copy" + ] + }, + { + "name": "x-ms-copy-action", + "description": "Copy action.", + "x-ms-client-name": "copyActionAbortConstant", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "abort" + ], + "x-ms-parameter-location": "method" + } + ] + }, + "/{containerName}/{blob}?comp=tier": { + "put": { + "tags": [ + "blobs" + ], + "operationId": "Blob_SetTier", + "description": "The Set Tier operation sets the tier on a blob. The operation is allowed on a page blob in a premium storage account and on a block blob in a blob storage account (locally redundant storage only). A premium page blob's tier determines the allowed size, IOPS, and bandwidth of the blob. A block blob's tier determines Hot/Cool/Archive storage type. This operation does not update the blob's ETag.", + "parameters": [ + { + "$ref": "#/parameters/Snapshot" + }, + { + "$ref": "#/parameters/VersionId" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/AccessTierRequired" + }, + { + "$ref": "#/parameters/RehydratePriority" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/IfTags" + } + ], + "responses": { + "200": { + "description": "The new tier will take effect immediately.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and newer." + } + } + }, + "202": { + "description": "The transition to the new tier is pending.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and newer." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "tier" + ] + } + ] + }, + "/{containerName}/{blob}?restype=account&comp=properties&blob": { + "get": { + "tags": [ + "blob" + ], + "operationId": "Blob_GetAccountInfo", + "description": "Returns the sku name and account kind ", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success (OK)", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-sku-name": { + "x-ms-client-name": "SkuName", + "type": "string", + "enum": [ + "Standard_LRS", + "Standard_GRS", + "Standard_RAGRS", + "Standard_ZRS", + "Premium_LRS", + "Standard_GZRS", + "Premium_ZRS", + "Standard_RAGZRS" + ], + "x-ms-enum": { + "name": "SkuName", + "modelAsString": false + }, + "description": "Identifies the sku name of the account" + }, + "x-ms-account-kind": { + "x-ms-client-name": "AccountKind", + "type": "string", + "enum": [ + "Storage", + "BlobStorage", + "StorageV2", + "FileStorage", + "BlockBlobStorage" + ], + "x-ms-enum": { + "name": "AccountKind", + "modelAsString": false + }, + "description": "Identifies the account kind" + }, + "x-ms-is-hns-enabled": { + "x-ms-client-name": "IsHierarchicalNamespaceEnabled", + "type": "boolean", + "description": "Version 2019-07-07 and newer. Indicates if the account has a hierarchical namespace enabled." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "account" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "properties" + ] + } + ] + }, + "/{containerName}/{blob}?comp=block": { + "put": { + "tags": [ + "blockblob" + ], + "operationId": "BlockBlob_StageBlock", + "description": "The Stage Block operation creates a new block to be committed as part of a blob", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "$ref": "#/parameters/BlockId" + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/ContentMD5" + }, + { + "$ref": "#/parameters/ContentCrc64" + }, + { + "$ref": "#/parameters/Body" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/StructuredBodyPut" + }, + { + "$ref": "#/parameters/StructuredContentLength" + } + ], + "responses": { + "201": { + "description": "The block was created.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the block. This header is only returned when the block was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + }, + "x-ms-structured-body": { + "x-ms-client-name": "StructuredBodyType", + "type": "string", + "description": "Indicates the structured message body was accepted and mirrors back the message schema version and properties." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "block" + ] + } + ] + }, + "/{containerName}/{blob}?comp=block&fromURL": { + "put": { + "tags": [ + "blockblob" + ], + "operationId": "BlockBlob_StageBlockFromURL", + "description": "The Stage Block operation creates a new block to be committed as part of a blob where the contents are read from a URL.", + "parameters": [ + { + "$ref": "#/parameters/BlockId" + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/SourceUrl" + }, + { + "$ref": "#/parameters/SourceRange" + }, + { + "$ref": "#/parameters/SourceContentMD5" + }, + { + "$ref": "#/parameters/SourceContentCRC64" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/SourceIfModifiedSince" + }, + { + "$ref": "#/parameters/SourceIfUnmodifiedSince" + }, + { + "$ref": "#/parameters/SourceIfMatch" + }, + { + "$ref": "#/parameters/SourceIfNoneMatch" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/CopySourceAuthorization" + }, + { + "$ref": "#/parameters/FileRequestIntent" + }, + { + "$ref": "#/parameters/SourceEncryptionKey" + }, + { + "$ref": "#/parameters/SourceEncryptionKeySha256" + }, + { + "$ref": "#/parameters/SourceEncryptionAlgorithm" + } + ], + "responses": { + "201": { + "description": "The block was created.", + "headers": { + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the block. This header is only returned when the block was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + }, + "x-ms-copy-source-error-code": { + "x-ms-client-name": "CopySourceErrorCode", + "type": "string" + }, + "x-ms-copy-source-status-code": { + "x-ms-client-name": "CopySourceStatusCode", + "type": "integer", + "format": "int32" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "block" + ] + } + ] + }, + "/{containerName}/{blob}?comp=blocklist": { + "put": { + "tags": [ + "blockblob" + ], + "operationId": "BlockBlob_CommitBlockList", + "description": "The Commit Block List operation writes a blob by specifying the list of block IDs that make up the blob. In order to be written as part of a blob, a block must have been successfully written to the server in a prior Put Block operation. You can call Put Block List to update a blob by uploading only those blocks that have changed, then committing the new and existing blocks together. You can do this by specifying whether to commit a block from the committed block list or from the uncommitted block list, or to commit the most recently uploaded version of the block, whichever list it may belong to.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/BlobCacheControl" + }, + { + "$ref": "#/parameters/BlobContentType" + }, + { + "$ref": "#/parameters/BlobContentEncoding" + }, + { + "$ref": "#/parameters/BlobContentLanguage" + }, + { + "$ref": "#/parameters/BlobContentMD5" + }, + { + "$ref": "#/parameters/ContentMD5" + }, + { + "$ref": "#/parameters/ContentCrc64" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/BlobContentDisposition" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/AccessTierOptional" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "name": "blocks", + "description": "Blob Blocks.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/BlockLookupList" + } + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/BlobTagsHeader" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyExpiry" + }, + { + "$ref": "#/parameters/ImmutabilityPolicyMode" + }, + { + "$ref": "#/parameters/LegalHoldOptional" + } + ], + "responses": { + "201": { + "description": "The block list was recorded.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "This header is returned so that the client can check for message content integrity. This header refers to the content of the request, meaning, in this case, the list of blocks, and not the content of the blob itself." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This header is returned so that the client can check for message content integrity. This header refers to the content of the request, meaning, in this case, the list of blocks, and not the content of the blob itself." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "x-ms-version-id": { + "x-ms-client-name": "VersionId", + "type": "string", + "description": "A DateTime value returned by the service that uniquely identifies the blob. The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "get": { + "tags": [ + "blockblob" + ], + "operationId": "BlockBlob_GetBlockList", + "description": "The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob", + "parameters": [ + { + "$ref": "#/parameters/Snapshot" + }, + { + "$ref": "#/parameters/BlockListType" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The page range was written.", + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Content-Type": { + "type": "string", + "description": "The media type of the body of the response. For Get Block List this is 'application/xml'" + }, + "x-ms-blob-content-length": { + "x-ms-client-name": "BlobContentLength", + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/BlockList" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "blocklist" + ] + } + ] + }, + "/{containerName}/{blob}?comp=page&update": { + "put": { + "tags": [ + "pageblob" + ], + "operationId": "PageBlob_UploadPages", + "description": "The Upload Pages operation writes a range of pages to a page blob", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "$ref": "#/parameters/Body" + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/ContentMD5" + }, + { + "$ref": "#/parameters/ContentCrc64" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Range" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualTo" + }, + { + "$ref": "#/parameters/IfSequenceNumberLessThan" + }, + { + "$ref": "#/parameters/IfSequenceNumberEqualTo" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/StructuredBodyPut" + }, + { + "$ref": "#/parameters/StructuredContentLength" + } + ], + "responses": { + "201": { + "description": "The page range was written.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." + }, + "x-ms-blob-sequence-number": { + "x-ms-client-name": "BlobSequenceNumber", + "type": "integer", + "format": "int64", + "description": "The current sequence number for the page blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the pages. This header is only returned when the pages were encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + }, + "x-ms-structured-body": { + "x-ms-client-name": "StructuredBodyType", + "type": "string", + "description": "Indicates the structured message body was accepted and mirrors back the message schema version and properties." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "page" + ] + }, + { + "name": "x-ms-page-write", + "x-ms-client-name": "pageWrite", + "in": "header", + "required": true, + "x-ms-parameter-location": "method", + "description": "Required. You may specify one of the following options:\n - Update: Writes the bytes specified by the request body into the specified range. The Range and Content-Length headers must match to perform the update.\n - Clear: Clears the specified range and releases the space used in storage for that range. To clear a range, set the Content-Length header to zero, and the Range header to a value that indicates the range to clear, up to maximum blob size.", + "type": "string", + "enum": [ + "update" + ], + "x-ms-enum": { + "name": "PageWriteType", + "modelAsString": false + } + } + ] + }, + "/{containerName}/{blob}?comp=page&clear": { + "put": { + "tags": [ + "pageblob" + ], + "operationId": "PageBlob_ClearPages", + "description": "The Clear Pages operation clears a set of pages from a page blob", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Range" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualTo" + }, + { + "$ref": "#/parameters/IfSequenceNumberLessThan" + }, + { + "$ref": "#/parameters/IfSequenceNumberEqualTo" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "201": { + "description": "The page range was cleared.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." + }, + "x-ms-blob-sequence-number": { + "x-ms-client-name": "BlobSequenceNumber", + "type": "integer", + "format": "int64", + "description": "The current sequence number for the page blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "page" + ] + }, + { + "name": "x-ms-page-write", + "x-ms-client-name": "pageWrite", + "in": "header", + "required": true, + "x-ms-parameter-location": "method", + "description": "Required. You may specify one of the following options:\n - Update: Writes the bytes specified by the request body into the specified range. The Range and Content-Length headers must match to perform the update.\n - Clear: Clears the specified range and releases the space used in storage for that range. To clear a range, set the Content-Length header to zero, and the Range header to a value that indicates the range to clear, up to maximum blob size.", + "type": "string", + "enum": [ + "clear" + ], + "x-ms-enum": { + "name": "PageWriteType", + "modelAsString": false + } + } + ] + }, + "/{containerName}/{blob}?comp=page&update&fromUrl": { + "put": { + "tags": [ + "pageblob" + ], + "operationId": "PageBlob_UploadPagesFromURL", + "description": "The Upload Pages operation writes a range of pages to a page blob where the contents are read from a URL", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "$ref": "#/parameters/SourceUrl" + }, + { + "$ref": "#/parameters/SourceRangeRequiredPutPageFromUrl" + }, + { + "$ref": "#/parameters/SourceContentMD5" + }, + { + "$ref": "#/parameters/SourceContentCRC64" + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/RangeRequiredPutPageFromUrl" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/IfSequenceNumberLessThanOrEqualTo" + }, + { + "$ref": "#/parameters/IfSequenceNumberLessThan" + }, + { + "$ref": "#/parameters/IfSequenceNumberEqualTo" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/SourceIfModifiedSince" + }, + { + "$ref": "#/parameters/SourceIfUnmodifiedSince" + }, + { + "$ref": "#/parameters/SourceIfMatch" + }, + { + "$ref": "#/parameters/SourceIfNoneMatch" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/CopySourceAuthorization" + }, + { + "$ref": "#/parameters/FileRequestIntent" + }, + { + "$ref": "#/parameters/SourceEncryptionKey" + }, + { + "$ref": "#/parameters/SourceEncryptionKeySha256" + }, + { + "$ref": "#/parameters/SourceEncryptionAlgorithm" + } + ], + "responses": { + "201": { + "description": "The page range was written.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." + }, + "x-ms-blob-sequence-number": { + "x-ms-client-name": "BlobSequenceNumber", + "type": "integer", + "format": "int64", + "description": "The current sequence number for the page blob." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + }, + "x-ms-copy-source-error-code": { + "x-ms-client-name": "CopySourceErrorCode", + "type": "string" + }, + "x-ms-copy-source-status-code": { + "x-ms-client-name": "CopySourceStatusCode", + "type": "integer", + "format": "int32" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "page" + ] + }, + { + "name": "x-ms-page-write", + "x-ms-client-name": "pageWrite", + "in": "header", + "required": true, + "x-ms-parameter-location": "method", + "description": "Required. You may specify one of the following options:\n - Update: Writes the bytes specified by the request body into the specified range. The Range and Content-Length headers must match to perform the update.\n - Clear: Clears the specified range and releases the space used in storage for that range. To clear a range, set the Content-Length header to zero, and the Range header to a value that indicates the range to clear, up to maximum blob size.", + "type": "string", + "enum": [ + "update" + ], + "x-ms-enum": { + "name": "PageWriteType", + "modelAsString": false + } + } + ] + }, + "/{containerName}/{blob}?comp=pagelist": { + "get": { + "tags": [ + "pageblob" + ], + "operationId": "PageBlob_GetPageRanges", + "description": "The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a page blob", + "parameters": [ + { + "$ref": "#/parameters/Snapshot" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Range" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/MaxResults" + } + ], + "responses": { + "200": { + "description": "Information on the page blob was found.", + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "x-ms-blob-content-length": { + "x-ms-client-name": "BlobContentLength", + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/PageList" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "NextMarker" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "pagelist" + ] + } + ] + }, + "/{containerName}/{blob}?comp=pagelist&diff": { + "get": { + "tags": [ + "pageblob" + ], + "operationId": "PageBlob_GetPageRangesDiff", + "description": "The Get Page Ranges Diff operation returns the list of valid page ranges for a page blob that were changed between target blob and previous snapshot.", + "parameters": [ + { + "$ref": "#/parameters/Snapshot" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/PrevSnapshot" + }, + { + "$ref": "#/parameters/PrevSnapshotUrl" + }, + { + "$ref": "#/parameters/Range" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/MaxResults" + } + ], + "responses": { + "200": { + "description": "Information on the page blob was found.", + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "x-ms-blob-content-length": { + "x-ms-client-name": "BlobContentLength", + "type": "integer", + "format": "int64", + "description": "The size of the blob in bytes." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/PageList" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "NextMarker" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "pagelist" + ] + } + ] + }, + "/{containerName}/{blob}?comp=properties&Resize": { + "put": { + "tags": [ + "pageblob" + ], + "operationId": "PageBlob_Resize", + "description": "Resize the Blob", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/BlobContentLengthRequired" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The Blob was resized successfully", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-blob-sequence-number": { + "x-ms-client-name": "BlobSequenceNumber", + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "properties" + ] + } + ] + }, + "/{containerName}/{blob}?comp=properties&UpdateSequenceNumber": { + "put": { + "tags": [ + "pageblob" + ], + "operationId": "PageBlob_UpdateSequenceNumber", + "description": "Update the sequence number of the blob", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/SequenceNumberAction" + }, + { + "$ref": "#/parameters/BlobSequenceNumber" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "The sequence numbers were updated successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-blob-sequence-number": { + "x-ms-client-name": "BlobSequenceNumber", + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "properties" + ] + } + ] + }, + "/{containerName}/{blob}?comp=incrementalcopy": { + "put": { + "tags": [ + "pageblob" + ], + "operationId": "PageBlob_CopyIncremental", + "description": "The Copy Incremental operation copies a snapshot of the source page blob to a destination page blob. The snapshot is copied such that only the differential changes between the previously copied snapshot are transferred to the destination. The copied snapshots are complete copies of the original snapshot and can be read or copied from as usual. This API is supported since REST version 2016-05-31.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/CopySource" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "202": { + "description": "The blob was copied.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by x-ms-copy-id.", + "type": "string", + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "incrementalcopy" + ] + } + ] + }, + "/{containerName}/{blob}?comp=appendblock": { + "put": { + "tags": [ + "appendblob" + ], + "consumes": [ + "application/octet-stream" + ], + "operationId": "AppendBlob_AppendBlock", + "description": "The Append Block operation commits a new block of data to the end of an existing append blob. The Append Block operation is permitted only if the blob was created with x-ms-blob-type set to AppendBlob. Append Block is supported only on version 2015-02-21 version or later.", + "parameters": [ + { + "$ref": "#/parameters/Body" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/ContentMD5" + }, + { + "$ref": "#/parameters/ContentCrc64" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/BlobConditionMaxSize" + }, + { + "$ref": "#/parameters/BlobConditionAppendPos" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/StructuredBodyPut" + }, + { + "$ref": "#/parameters/StructuredContentLength" + } + ], + "responses": { + "201": { + "description": "The block was created.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-blob-append-offset": { + "x-ms-client-name": "BlobAppendOffset", + "type": "string", + "description": "This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes." + }, + "x-ms-blob-committed-block-count": { + "x-ms-client-name": "BlobCommittedBlockCount", + "type": "integer", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the block. This header is only returned when the block was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + }, + "x-ms-structured-body": { + "x-ms-client-name": "StructuredBodyType", + "type": "string", + "description": "Indicates the structured message body was accepted and mirrors back the message schema version and properties." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "appendblock" + ] + } + ] + }, + "/{containerName}/{blob}?comp=appendblock&fromUrl": { + "put": { + "tags": [ + "appendblob" + ], + "operationId": "AppendBlob_AppendBlockFromUrl", + "description": "The Append Block operation commits a new block of data to the end of an existing append blob where the contents are read from a source url. The Append Block operation is permitted only if the blob was created with x-ms-blob-type set to AppendBlob. Append Block is supported only on version 2015-02-21 version or later.", + "parameters": [ + { + "$ref": "#/parameters/SourceUrl" + }, + { + "$ref": "#/parameters/SourceRange" + }, + { + "$ref": "#/parameters/SourceContentMD5" + }, + { + "$ref": "#/parameters/SourceContentCRC64" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/ContentMD5" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/EncryptionScope" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/BlobConditionMaxSize" + }, + { + "$ref": "#/parameters/BlobConditionAppendPos" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/SourceIfModifiedSince" + }, + { + "$ref": "#/parameters/SourceIfUnmodifiedSince" + }, + { + "$ref": "#/parameters/SourceIfMatch" + }, + { + "$ref": "#/parameters/SourceIfNoneMatch" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/CopySourceAuthorization" + }, + { + "$ref": "#/parameters/FileRequestIntent" + }, + { + "$ref": "#/parameters/SourceEncryptionKey" + }, + { + "$ref": "#/parameters/SourceEncryptionKeySha256" + }, + { + "$ref": "#/parameters/SourceEncryptionAlgorithm" + } + ], + "responses": { + "201": { + "description": "The block was created.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the Blob service; it is not necessarily the same value specified in the request headers." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-blob-append-offset": { + "x-ms-client-name": "BlobAppendOffset", + "type": "string", + "description": "This response header is returned only for append operations. It returns the offset at which the block was committed, in bytes." + }, + "x-ms-blob-committed-block-count": { + "x-ms-client-name": "BlobCommittedBlockCount", + "type": "integer", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the block. This header is only returned when the block was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + }, + "x-ms-copy-source-error-code": { + "x-ms-client-name": "CopySourceErrorCode", + "type": "string" + }, + "x-ms-copy-source-status-code": { + "x-ms-client-name": "CopySourceStatusCode", + "type": "integer", + "format": "int32" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "appendblock" + ] + } + ] + }, + "/{containerName}/{blob}?comp=seal": { + "put": { + "tags": [ + "appendblob" + ], + "operationId": "AppendBlob_Seal", + "description": "The Seal operation seals the Append Blob to make it read-only. Seal is supported only on version 2019-12-12 version or later.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/BlobConditionAppendPos" + } + ], + "responses": { + "200": { + "description": "The blob was sealed.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-blob-sealed": { + "x-ms-client-name": "IsSealed", + "type": "boolean", + "description": "If this blob has been sealed" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "seal" + ] + } + ] + }, + "/{containerName}/{blob}?comp=query": { + "post": { + "tags": [ + "blob" + ], + "operationId": "Blob_Query", + "description": "The Query operation enables users to select/project on blob data by providing simple query expressions.", + "parameters": [ + { + "$ref": "#/parameters/QueryRequest" + }, + { + "$ref": "#/parameters/Snapshot" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/EncryptionKey" + }, + { + "$ref": "#/parameters/EncryptionKeySha256" + }, + { + "$ref": "#/parameters/EncryptionAlgorithm" + }, + { + "$ref": "#/parameters/IfModifiedSince" + }, + { + "$ref": "#/parameters/IfUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfMatch" + }, + { + "$ref": "#/parameters/IfNoneMatch" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Returns the content of the entire blob.", + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-meta": { + "type": "string", + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-Type": { + "type": "string", + "description": "The media type of the body of the response. For Download Blob this is 'application/octet-stream'" + }, + "Content-Range": { + "type": "string", + "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Content-Encoding": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Encoding request header" + }, + "Cache-Control": { + "type": "string", + "description": "This header is returned if it was previously specified for the blob." + }, + "Content-Disposition": { + "type": "string", + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + }, + "Content-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "x-ms-blob-sequence-number": { + "x-ms-client-name": "BlobSequenceNumber", + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" + }, + "x-ms-blob-type": { + "x-ms-client-name": "BlobType", + "description": "The blob's type.", + "type": "string", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false + } + }, + "x-ms-copy-completion-time": { + "x-ms-client-name": "CopyCompletionTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status-description": { + "x-ms-client-name": "CopyStatusDescription", + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-progress": { + "x-ms-client-name": "CopyProgress", + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-source": { + "x-ms-client-name": "CopySource", + "type": "string", + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by x-ms-copy-id.", + "type": "string", + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } + }, + "x-ms-lease-duration": { + "x-ms-client-name": "LeaseDuration", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", + "type": "string", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "modelAsString": false + } + }, + "x-ms-lease-state": { + "x-ms-client-name": "LeaseState", + "description": "Lease state of the blob.", + "type": "string", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseStateType", + "modelAsString": false + } + }, + "x-ms-lease-status": { + "x-ms-client-name": "LeaseStatus", + "description": "The current lease status of the blob.", + "type": "string", + "enum": [ + "locked", + "unlocked" + ], + "x-ms-enum": { + "name": "LeaseStatusType", + "modelAsString": false + } + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial blob content." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-blob-committed-block-count": { + "x-ms-client-name": "BlobCommittedBlockCount", + "type": "integer", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the blob data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the blob is unencrypted, or if only parts of the blob/application metadata are encrypted)." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + }, + "x-ms-blob-content-md5": { + "x-ms-client-name": "BlobContentMD5", + "type": "string", + "format": "byte", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + } + }, + "schema": { + "type": "object", + "format": "file" + } + }, + "206": { + "description": "Returns the content of a specified range of the blob.", + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob's metadata or properties, changes the last-modified time of the blob." + }, + "x-ms-meta": { + "type": "string", + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-Type": { + "type": "string", + "description": "The media type of the body of the response. For Download Blob this is 'application/octet-stream'" + }, + "Content-Range": { + "type": "string", + "description": "Indicates the range of bytes returned in the event that the client requested a subset of the blob by setting the 'Range' request header." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the blob has an MD5 hash and this operation is to read the full blob, this response header is returned so that the client can check for message content integrity." + }, + "Content-Encoding": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Encoding request header" + }, + "Cache-Control": { + "type": "string", + "description": "This header is returned if it was previously specified for the blob." + }, + "Content-Disposition": { + "type": "string", + "description": "This header returns the value that was specified for the 'x-ms-blob-content-disposition' header. The Content-Disposition response header field conveys additional information about how to process the response payload, and also can be used to attach additional metadata. For example, if set to attachment, it indicates that the user-agent should not display the response, but instead show a Save As dialog with a filename other than the blob name specified." + }, + "Content-Language": { + "type": "string", + "description": "This header returns the value that was specified for the Content-Language request header." + }, + "x-ms-blob-sequence-number": { + "x-ms-client-name": "BlobSequenceNumber", + "type": "integer", + "format": "int64", + "description": "The current sequence number for a page blob. This header is not returned for block blobs or append blobs" + }, + "x-ms-blob-type": { + "x-ms-client-name": "BlobType", + "description": "The blob's type.", + "type": "string", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false + } + }, + "x-ms-content-crc64": { + "x-ms-client-name": "ContentCrc64", + "type": "string", + "format": "byte", + "description": "If the request is to read a specified range and the x-ms-range-get-content-crc64 is set to true, then the request returns a crc64 for the range, as long as the range size is less than or equal to 4 MB. If both x-ms-range-get-content-crc64 and x-ms-range-get-content-md5 is specified in the same request, it will fail with 400(Bad Request)" + }, + "x-ms-copy-completion-time": { + "x-ms-client-name": "CopyCompletionTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Conclusion time of the last attempted Copy Blob operation where this blob was the destination blob. This value can specify the time of a completed, aborted, or failed copy attempt. This header does not appear if a copy is pending, if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status-description": { + "x-ms-client-name": "CopyStatusDescription", + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes the cause of the last fatal or non-fatal copy operation failure. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", + "type": "string", + "description": "String identifier for this copy operation. Use with Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy." + }, + "x-ms-copy-progress": { + "x-ms-client-name": "CopyProgress", + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy Blob operation where this blob was the destination blob. Can show between 0 and Content-Length bytes copied. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List" + }, + "x-ms-copy-source": { + "x-ms-client-name": "CopySource", + "type": "string", + "description": "URL up to 2 KB in length that specifies the source blob or file used in the last attempted Copy Blob operation where this blob was the destination blob. This header does not appear if this blob has never been the destination in a Copy Blob operation, or if this blob has been modified after a concluded Copy Blob operation using Set Blob Properties, Put Blob, or Put Block List." + }, + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by x-ms-copy-id.", + "type": "string", + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } + }, + "x-ms-lease-duration": { + "x-ms-client-name": "LeaseDuration", + "description": "When a blob is leased, specifies whether the lease is of infinite or fixed duration.", + "type": "string", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "modelAsString": false + } + }, + "x-ms-lease-state": { + "x-ms-client-name": "LeaseState", + "description": "Lease state of the blob.", + "type": "string", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseStateType", + "modelAsString": false + } + }, + "x-ms-lease-status": { + "x-ms-client-name": "LeaseStatus", + "description": "The current lease status of the blob.", + "type": "string", + "enum": [ + "locked", + "unlocked" + ], + "x-ms-enum": { + "name": "LeaseStatusType", + "modelAsString": false + } + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial blob content." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-blob-committed-block-count": { + "x-ms-client-name": "BlobCommittedBlockCount", + "type": "integer", + "description": "The number of committed blocks present in the blob. This header is returned only for append blobs." + }, + "x-ms-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the blob data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the blob is unencrypted, or if only parts of the blob/application metadata are encrypted)." + }, + "x-ms-encryption-key-sha256": { + "x-ms-client-name": "EncryptionKeySha256", + "type": "string", + "description": "The SHA-256 hash of the encryption key used to encrypt the blob. This header is only returned when the blob was encrypted with a customer-provided key." + }, + "x-ms-encryption-scope": { + "x-ms-client-name": "EncryptionScope", + "type": "string", + "description": "Returns the name of the encryption scope used to encrypt the blob contents and application metadata. Note that the absence of this header implies use of the default account encryption scope." + }, + "x-ms-blob-content-md5": { + "x-ms-client-name": "BlobContentMD5", + "type": "string", + "format": "byte", + "description": "If the blob has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole blob's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range" + } + }, + "schema": { + "type": "object", + "format": "file" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "query" + ] + } + ] + }, + "/{containerName}/{blob}?comp=tags": { + "get": { + "tags": [ + "blob" + ], + "operationId": "Blob_GetTags", + "description": "The Get Tags operation enables users to get the tags associated with a blob.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/Snapshot" + }, + { + "$ref": "#/parameters/VersionId" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/IfBlobModifiedSince" + }, + { + "$ref": "#/parameters/IfBlobUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfBlobMatch" + }, + { + "$ref": "#/parameters/IfBlobNoneMatch" + } + ], + "responses": { + "200": { + "description": "Retrieved blob tags", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/BlobTags" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "put": { + "tags": [ + "blob" + ], + "operationId": "Blob_SetTags", + "description": "The Set Tags operation enables users to set tags on a blob.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/VersionId" + }, + { + "$ref": "#/parameters/ContentMD5" + }, + { + "$ref": "#/parameters/ContentCrc64" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/IfTags" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/IfBlobModifiedSince" + }, + { + "$ref": "#/parameters/IfBlobUnmodifiedSince" + }, + { + "$ref": "#/parameters/IfBlobMatch" + }, + { + "$ref": "#/parameters/IfBlobNoneMatch" + }, + { + "$ref": "#/parameters/BlobTagsBody" + } + ], + "responses": { + "204": { + "description": "The tags were applied to the blob", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "#/parameters/Blob" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "tags" + ] + } + ] + } + }, + "definitions": { + "KeyInfo": { + "type": "object", + "required": [ + "Start", + "Expiry" + ], + "description": "Key information", + "properties": { + "Start": { + "description": "The date-time the key is active in ISO 8601 UTC time", + "type": "string" + }, + "Expiry": { + "description": "The date-time the key expires in ISO 8601 UTC time", + "type": "string" + }, + "DelegatedUserTid": { + "description": "The delegated user tenant id in Azure AD", + "type": "string" + } + } + }, + "UserDelegationKey": { + "type": "object", + "required": [ + "SignedOid", + "SignedTid", + "SignedStart", + "SignedExpiry", + "SignedService", + "SignedVersion", + "Value" + ], + "description": "A user delegation key", + "properties": { + "SignedOid": { + "description": "The Azure Active Directory object ID in GUID format.", + "type": "string" + }, + "SignedTid": { + "description": "The Azure Active Directory tenant ID in GUID format", + "type": "string" + }, + "SignedStart": { + "description": "The date-time the key is active", + "type": "string", + "format": "date-time" + }, + "SignedExpiry": { + "description": "The date-time the key expires", + "type": "string", + "format": "date-time" + }, + "SignedService": { + "description": "Abbreviation of the Azure Storage service that accepts the key", + "type": "string" + }, + "SignedVersion": { + "description": "The service version that created the key", + "type": "string" + }, + "SignedDelegatedUserTid": { + "description": "The delegated user tenant id in Azure AD. Return if DelegatedUserTid is specified.", + "type": "string" + }, + "Value": { + "description": "The key as a base64 string", + "type": "string" + } + } + }, + "PublicAccessType": { + "type": "string", + "enum": [ + "container", + "blob" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true + } + }, + "CopyStatus": { + "type": "string", + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } + }, + "LeaseDuration": { + "type": "string", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "modelAsString": false + } + }, + "LeaseState": { + "type": "string", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseStateType", + "modelAsString": false + } + }, + "LeaseStatus": { + "type": "string", + "enum": [ + "locked", + "unlocked" + ], + "x-ms-enum": { + "name": "LeaseStatusType", + "modelAsString": false + } + }, + "StorageError": { + "type": "object", + "properties": { + "Message": { + "type": "string" + }, + "CopySourceStatusCode": { + "type": "integer", + "format": "int32" + }, + "CopySourceErrorCode": { + "type": "string" + }, + "CopySourceErrorMessage": { + "type": "string" + } + } + }, + "AccessPolicy": { + "type": "object", + "description": "An Access policy", + "properties": { + "Start": { + "description": "the date-time the policy is active", + "type": "string", + "format": "date-time" + }, + "Expiry": { + "description": "the date-time the policy expires", + "type": "string", + "format": "date-time" + }, + "Permission": { + "description": "the permissions for the acl policy", + "type": "string" + } + } + }, + "AccessTier": { + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Premium", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true + } + }, + "ArchiveStatus": { + "type": "string", + "enum": [ + "rehydrate-pending-to-hot", + "rehydrate-pending-to-cool", + "rehydrate-pending-to-cold" + ], + "x-ms-enum": { + "name": "ArchiveStatus", + "modelAsString": true + } + }, + "BlobItemInternal": { + "xml": { + "name": "Blob" + }, + "description": "An Azure Storage blob", + "type": "object", + "required": [ + "Name", + "Deleted", + "Snapshot", + "Properties" + ], + "properties": { + "Name": { + "$ref": "#/definitions/BlobName" + }, + "Deleted": { + "type": "boolean" + }, + "Snapshot": { + "type": "string" + }, + "VersionId": { + "type": "string" + }, + "IsCurrentVersion": { + "type": "boolean" + }, + "Properties": { + "$ref": "#/definitions/BlobPropertiesInternal" + }, + "Metadata": { + "$ref": "#/definitions/BlobMetadata" + }, + "BlobTags": { + "$ref": "#/definitions/BlobTags" + }, + "ObjectReplicationMetadata": { + "$ref": "#/definitions/ObjectReplicationMetadata" + }, + "HasVersionsOnly": { + "type": "boolean" + } + } + }, + "BlobPropertiesInternal": { + "xml": { + "name": "Properties" + }, + "description": "Properties of a blob", + "type": "object", + "required": [ + "Etag", + "Last-Modified" + ], + "properties": { + "Creation-Time": { + "type": "string", + "format": "date-time-rfc1123" + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123" + }, + "Etag": { + "type": "string" + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "Size in bytes" + }, + "Content-Type": { + "type": "string" + }, + "Content-Encoding": { + "type": "string" + }, + "Content-Language": { + "type": "string" + }, + "Content-MD5": { + "type": "string", + "format": "byte" + }, + "Content-Disposition": { + "type": "string" + }, + "Cache-Control": { + "type": "string" + }, + "x-ms-blob-sequence-number": { + "x-ms-client-name": "blobSequenceNumber", + "type": "integer", + "format": "int64" + }, + "BlobType": { + "type": "string", + "enum": [ + "BlockBlob", + "PageBlob", + "AppendBlob" + ], + "x-ms-enum": { + "name": "BlobType", + "modelAsString": false + } + }, + "LeaseStatus": { + "$ref": "#/definitions/LeaseStatus" + }, + "LeaseState": { + "$ref": "#/definitions/LeaseState" + }, + "LeaseDuration": { + "$ref": "#/definitions/LeaseDuration" + }, + "CopyId": { + "type": "string" + }, + "CopyStatus": { + "$ref": "#/definitions/CopyStatus" + }, + "CopySource": { + "type": "string" + }, + "CopyProgress": { + "type": "string" + }, + "CopyCompletionTime": { + "type": "string", + "format": "date-time-rfc1123" + }, + "CopyStatusDescription": { + "type": "string" + }, + "ServerEncrypted": { + "type": "boolean" + }, + "IncrementalCopy": { + "type": "boolean" + }, + "DestinationSnapshot": { + "type": "string" + }, + "DeletedTime": { + "type": "string", + "format": "date-time-rfc1123" + }, + "RemainingRetentionDays": { + "type": "integer" + }, + "AccessTier": { + "$ref": "#/definitions/AccessTier" + }, + "AccessTierInferred": { + "type": "boolean" + }, + "ArchiveStatus": { + "$ref": "#/definitions/ArchiveStatus" + }, + "CustomerProvidedKeySha256": { + "type": "string" + }, + "EncryptionScope": { + "type": "string", + "description": "The name of the encryption scope under which the blob is encrypted." + }, + "AccessTierChangeTime": { + "type": "string", + "format": "date-time-rfc1123" + }, + "TagCount": { + "type": "integer" + }, + "Expiry-Time": { + "x-ms-client-name": "ExpiresOn", + "type": "string", + "format": "date-time-rfc1123" + }, + "Sealed": { + "x-ms-client-name": "IsSealed", + "type": "boolean" + }, + "RehydratePriority": { + "$ref": "#/definitions/RehydratePriority" + }, + "LastAccessTime": { + "x-ms-client-name": "LastAccessedOn", + "type": "string", + "format": "date-time-rfc1123" + }, + "ImmutabilityPolicyUntilDate": { + "x-ms-client-name": "ImmutabilityPolicyExpiresOn", + "type": "string", + "format": "date-time-rfc1123" + }, + "ImmutabilityPolicyMode": { + "type": "string", + "enum": [ + "Mutable", + "Unlocked", + "Locked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": false + } + }, + "LegalHold": { + "type": "boolean" + } + } + }, + "ListBlobsFlatSegmentResponse": { + "xml": { + "name": "EnumerationResults" + }, + "description": "An enumeration of blobs", + "type": "object", + "required": [ + "ServiceEndpoint", + "ContainerName", + "Segment" + ], + "properties": { + "ServiceEndpoint": { + "type": "string", + "xml": { + "attribute": true + } + }, + "ContainerName": { + "type": "string", + "xml": { + "attribute": true + } + }, + "Prefix": { + "type": "string" + }, + "Marker": { + "type": "string" + }, + "MaxResults": { + "type": "integer" + }, + "Segment": { + "$ref": "#/definitions/BlobFlatListSegment" + }, + "NextMarker": { + "type": "string" + } + } + }, + "ListBlobsHierarchySegmentResponse": { + "xml": { + "name": "EnumerationResults" + }, + "description": "An enumeration of blobs", + "type": "object", + "required": [ + "ServiceEndpoint", + "ContainerName", + "Segment" + ], + "properties": { + "ServiceEndpoint": { + "type": "string", + "xml": { + "attribute": true + } + }, + "ContainerName": { + "type": "string", + "xml": { + "attribute": true + } + }, + "Prefix": { + "type": "string" + }, + "Marker": { + "type": "string" + }, + "MaxResults": { + "type": "integer" + }, + "Delimiter": { + "type": "string" + }, + "Segment": { + "$ref": "#/definitions/BlobHierarchyListSegment" + }, + "NextMarker": { + "type": "string" + } + } + }, + "BlobFlatListSegment": { + "xml": { + "name": "Blobs" + }, + "required": [ + "BlobItems" + ], + "type": "object", + "properties": { + "BlobItems": { + "type": "array", + "items": { + "$ref": "#/definitions/BlobItemInternal" + } + } + } + }, + "BlobHierarchyListSegment": { + "xml": { + "name": "Blobs" + }, + "type": "object", + "required": [ + "BlobItems" + ], + "properties": { + "BlobPrefixes": { + "type": "array", + "items": { + "$ref": "#/definitions/BlobPrefix" + } + }, + "BlobItems": { + "type": "array", + "items": { + "$ref": "#/definitions/BlobItemInternal" + } + } + } + }, + "BlobPrefix": { + "type": "object", + "required": [ + "Name" + ], + "properties": { + "Name": { + "$ref": "#/definitions/BlobName" + } + } + }, + "BlobName": { + "type": "object", + "properties": { + "Encoded": { + "xml": { + "attribute": true, + "name": "Encoded" + }, + "type": "boolean", + "description": "Indicates if the blob name is encoded." + }, + "content": { + "xml": { + "x-ms-text": true + }, + "type": "string", + "description": "The name of the blob." + } + } + }, + "BlobTag": { + "xml": { + "name": "Tag" + }, + "type": "object", + "required": [ + "Key", + "Value" + ], + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + } + }, + "BlobTags": { + "type": "object", + "xml": { + "name": "Tags" + }, + "description": "Blob tags", + "required": [ + "BlobTagSet" + ], + "properties": { + "BlobTagSet": { + "xml": { + "wrapped": true, + "name": "TagSet" + }, + "type": "array", + "items": { + "$ref": "#/definitions/BlobTag" + } + } + } + }, + "Block": { + "type": "object", + "required": [ + "Name", + "Size" + ], + "description": "Represents a single block in a block blob. It describes the block's ID and size.", + "properties": { + "Name": { + "description": "The base64 encoded block ID.", + "type": "string" + }, + "Size": { + "description": "The block size in bytes.", + "type": "integer", + "format": "int64" + } + } + }, + "BlockList": { + "type": "object", + "properties": { + "CommittedBlocks": { + "xml": { + "wrapped": true + }, + "type": "array", + "items": { + "$ref": "#/definitions/Block" + } + }, + "UncommittedBlocks": { + "xml": { + "wrapped": true + }, + "type": "array", + "items": { + "$ref": "#/definitions/Block" + } + } + } + }, + "BlockLookupList": { + "type": "object", + "properties": { + "Committed": { + "type": "array", + "items": { + "type": "string", + "xml": { + "name": "Committed" + } + } + }, + "Uncommitted": { + "type": "array", + "items": { + "type": "string", + "xml": { + "name": "Uncommitted" + } + } + }, + "Latest": { + "type": "array", + "items": { + "type": "string", + "xml": { + "name": "Latest" + } + } + } + }, + "xml": { + "name": "BlockList" + } + }, + "ContainerItem": { + "xml": { + "name": "Container" + }, + "type": "object", + "required": [ + "Name", + "Properties" + ], + "description": "An Azure Storage container", + "properties": { + "Name": { + "type": "string" + }, + "Deleted": { + "type": "boolean" + }, + "Version": { + "type": "string" + }, + "Properties": { + "$ref": "#/definitions/ContainerProperties" + }, + "Metadata": { + "$ref": "#/definitions/ContainerMetadata" + } + } + }, + "ContainerProperties": { + "type": "object", + "required": [ + "Last-Modified", + "Etag" + ], + "description": "Properties of a container", + "properties": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123" + }, + "Etag": { + "type": "string" + }, + "LeaseStatus": { + "$ref": "#/definitions/LeaseStatus" + }, + "LeaseState": { + "$ref": "#/definitions/LeaseState" + }, + "LeaseDuration": { + "$ref": "#/definitions/LeaseDuration" + }, + "PublicAccess": { + "$ref": "#/definitions/PublicAccessType" + }, + "HasImmutabilityPolicy": { + "type": "boolean" + }, + "HasLegalHold": { + "type": "boolean" + }, + "DefaultEncryptionScope": { + "type": "string" + }, + "DenyEncryptionScopeOverride": { + "type": "boolean", + "x-ms-client-name": "PreventEncryptionScopeOverride" + }, + "DeletedTime": { + "type": "string", + "format": "date-time-rfc1123" + }, + "RemainingRetentionDays": { + "type": "integer" + }, + "ImmutableStorageWithVersioningEnabled": { + "x-ms-client-name": "IsImmutableStorageWithVersioningEnabled", + "type": "boolean", + "description": "Indicates if version level worm is enabled on this container." + } + } + }, + "DelimitedTextConfiguration": { + "xml": { + "name": "DelimitedTextConfiguration" + }, + "description": "Groups the settings used for interpreting the blob data if the blob is delimited text formatted.", + "type": "object", + "properties": { + "ColumnSeparator": { + "type": "string", + "description": "The string used to separate columns.", + "xml": { + "name": "ColumnSeparator" + } + }, + "FieldQuote": { + "type": "string", + "description": "The string used to quote a specific field.", + "xml": { + "name": "FieldQuote" + } + }, + "RecordSeparator": { + "type": "string", + "description": "The string used to separate records.", + "xml": { + "name": "RecordSeparator" + } + }, + "EscapeChar": { + "type": "string", + "description": "The string used as an escape character.", + "xml": { + "name": "EscapeChar" + } + }, + "HeadersPresent": { + "type": "boolean", + "description": "Represents whether the data has headers.", + "xml": { + "name": "HasHeaders" + } + } + } + }, + "JsonTextConfiguration": { + "xml": { + "name": "JsonTextConfiguration" + }, + "description": "json text configuration", + "type": "object", + "properties": { + "RecordSeparator": { + "type": "string", + "description": "The string used to separate records.", + "xml": { + "name": "RecordSeparator" + } + } + } + }, + "ArrowConfiguration": { + "xml": { + "name": "ArrowConfiguration" + }, + "description": "Groups the settings used for formatting the response if the response should be Arrow formatted.", + "type": "object", + "required": [ + "Schema" + ], + "properties": { + "Schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ArrowField" + }, + "xml": { + "wrapped": true, + "name": "Schema" + } + } + } + }, + "ParquetConfiguration": { + "xml": { + "name": "ParquetTextConfiguration" + }, + "description": "parquet configuration", + "type": "object" + }, + "ArrowField": { + "xml": { + "name": "Field" + }, + "description": "Groups settings regarding specific field of an arrow schema", + "type": "object", + "required": [ + "Type" + ], + "properties": { + "Type": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Precision": { + "type": "integer" + }, + "Scale": { + "type": "integer" + } + } + }, + "ListContainersSegmentResponse": { + "xml": { + "name": "EnumerationResults" + }, + "description": "An enumeration of containers", + "type": "object", + "required": [ + "ServiceEndpoint", + "ContainerItems" + ], + "properties": { + "ServiceEndpoint": { + "type": "string", + "xml": { + "attribute": true + } + }, + "Prefix": { + "type": "string" + }, + "Marker": { + "type": "string" + }, + "MaxResults": { + "type": "integer" + }, + "ContainerItems": { + "xml": { + "wrapped": true, + "name": "Containers" + }, + "type": "array", + "items": { + "$ref": "#/definitions/ContainerItem" + } + }, + "NextMarker": { + "type": "string" + } + } + }, + "CorsRule": { + "description": "CORS is an HTTP feature that enables a web application running under one domain to access resources in another domain. Web browsers implement a security restriction known as same-origin policy that prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin domain) to call APIs in another domain", + "type": "object", + "required": [ + "AllowedOrigins", + "AllowedMethods", + "AllowedHeaders", + "ExposedHeaders", + "MaxAgeInSeconds" + ], + "properties": { + "AllowedOrigins": { + "description": "The origin domains that are permitted to make a request against the storage service via CORS. The origin domain is the domain from which the request originates. Note that the origin must be an exact case-sensitive match with the origin that the user age sends to the service. You can also use the wildcard character '*' to allow all origin domains to make requests via CORS.", + "type": "string" + }, + "AllowedMethods": { + "description": "The methods (HTTP request verbs) that the origin domain may use for a CORS request. (comma separated)", + "type": "string" + }, + "AllowedHeaders": { + "description": "the request headers that the origin domain may specify on the CORS request.", + "type": "string" + }, + "ExposedHeaders": { + "description": "The response headers that may be sent in the response to the CORS request and exposed by the browser to the request issuer", + "type": "string" + }, + "MaxAgeInSeconds": { + "description": "The maximum amount time that a browser should cache the preflight OPTIONS request.", + "type": "integer", + "minimum": 0 + } + } + }, + "ErrorCode": { + "description": "Error codes returned by the service", + "type": "string", + "enum": [ + "AccountAlreadyExists", + "AccountBeingCreated", + "AccountIsDisabled", + "AuthenticationFailed", + "AuthorizationFailure", + "ConditionHeadersNotSupported", + "ConditionNotMet", + "EmptyMetadataKey", + "InsufficientAccountPermissions", + "InternalError", + "InvalidAuthenticationInfo", + "InvalidHeaderValue", + "InvalidHttpVerb", + "InvalidInput", + "InvalidMd5", + "InvalidMetadata", + "InvalidQueryParameterValue", + "InvalidRange", + "InvalidResourceName", + "InvalidUri", + "InvalidXmlDocument", + "InvalidXmlNodeValue", + "Md5Mismatch", + "MetadataTooLarge", + "MissingContentLengthHeader", + "MissingRequiredQueryParameter", + "MissingRequiredHeader", + "MissingRequiredXmlNode", + "MultipleConditionHeadersNotSupported", + "OperationTimedOut", + "OutOfRangeInput", + "OutOfRangeQueryParameterValue", + "RequestBodyTooLarge", + "ResourceTypeMismatch", + "RequestUrlFailedToParse", + "ResourceAlreadyExists", + "ResourceNotFound", + "ServerBusy", + "UnsupportedHeader", + "UnsupportedXmlNode", + "UnsupportedQueryParameter", + "UnsupportedHttpVerb", + "AppendPositionConditionNotMet", + "BlobAlreadyExists", + "BlobImmutableDueToPolicy", + "BlobNotFound", + "BlobOverwritten", + "BlobTierInadequateForContentLength", + "BlobUsesCustomerSpecifiedEncryption", + "BlockCountExceedsLimit", + "BlockListTooLong", + "CannotChangeToLowerTier", + "CannotVerifyCopySource", + "ContainerAlreadyExists", + "ContainerBeingDeleted", + "ContainerDisabled", + "ContainerNotFound", + "ContentLengthLargerThanTierLimit", + "CopyAcrossAccountsNotSupported", + "CopyIdMismatch", + "FeatureVersionMismatch", + "IncrementalCopyBlobMismatch", + "IncrementalCopyOfEarlierSnapshotNotAllowed", + "IncrementalCopySourceMustBeSnapshot", + "InfiniteLeaseDurationRequired", + "InvalidBlobOrBlock", + "InvalidBlobTier", + "InvalidBlobType", + "InvalidBlockId", + "InvalidBlockList", + "InvalidOperation", + "InvalidPageRange", + "InvalidSourceBlobType", + "InvalidSourceBlobUrl", + "InvalidVersionForPageBlobOperation", + "LeaseAlreadyPresent", + "LeaseAlreadyBroken", + "LeaseIdMismatchWithBlobOperation", + "LeaseIdMismatchWithContainerOperation", + "LeaseIdMismatchWithLeaseOperation", + "LeaseIdMissing", + "LeaseIsBreakingAndCannotBeAcquired", + "LeaseIsBreakingAndCannotBeChanged", + "LeaseIsBrokenAndCannotBeRenewed", + "LeaseLost", + "LeaseNotPresentWithBlobOperation", + "LeaseNotPresentWithContainerOperation", + "LeaseNotPresentWithLeaseOperation", + "MaxBlobSizeConditionNotMet", + "NoAuthenticationInformation", + "NoPendingCopyOperation", + "OperationNotAllowedOnIncrementalCopyBlob", + "PendingCopyOperation", + "PreviousSnapshotCannotBeNewer", + "PreviousSnapshotNotFound", + "PreviousSnapshotOperationNotSupported", + "SequenceNumberConditionNotMet", + "SequenceNumberIncrementTooLarge", + "SnapshotCountExceeded", + "SnapshotOperationRateExceeded", + "SnapshotsPresent", + "SourceConditionNotMet", + "SystemInUse", + "TargetConditionNotMet", + "UnauthorizedBlobOverwrite", + "BlobBeingRehydrated", + "BlobArchived", + "BlobNotArchived", + "AuthorizationSourceIPMismatch", + "AuthorizationProtocolMismatch", + "AuthorizationPermissionMismatch", + "AuthorizationServiceMismatch", + "AuthorizationResourceTypeMismatch", + "BlobAccessTierNotSupportedForAccountType" + ], + "x-ms-enum": { + "name": "StorageErrorCode", + "modelAsString": true + } + }, + "FilterBlobItem": { + "xml": { + "name": "Blob" + }, + "description": "Blob info from a Filter Blobs API call", + "type": "object", + "required": [ + "Name", + "ContainerName" + ], + "properties": { + "Name": { + "type": "string" + }, + "ContainerName": { + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/BlobTags" + }, + "VersionId": { + "type": "string" + }, + "IsCurrentVersion": { + "type": "boolean" + } + } + }, + "FilterBlobSegment": { + "description": "The result of a Filter Blobs API call", + "xml": { + "name": "EnumerationResults" + }, + "type": "object", + "required": [ + "ServiceEndpoint", + "Where", + "Blobs" + ], + "properties": { + "ServiceEndpoint": { + "type": "string", + "xml": { + "attribute": true + } + }, + "Where": { + "type": "string" + }, + "Blobs": { + "xml": { + "name": "Blobs", + "wrapped": true + }, + "type": "array", + "items": { + "$ref": "#/definitions/FilterBlobItem" + } + }, + "NextMarker": { + "type": "string" + } + } + }, + "GeoReplication": { + "description": "Geo-Replication information for the Secondary Storage Service", + "type": "object", + "required": [ + "Status", + "LastSyncTime" + ], + "properties": { + "Status": { + "description": "The status of the secondary location", + "type": "string", + "enum": [ + "live", + "bootstrap", + "unavailable" + ], + "x-ms-enum": { + "name": "GeoReplicationStatusType", + "modelAsString": true + } + }, + "LastSyncTime": { + "description": "A GMT date/time value, to the second. All primary writes preceding this value are guaranteed to be available for read operations at the secondary. Primary writes after this point in time may or may not be available for reads.", + "type": "string", + "format": "date-time-rfc1123" + } + } + }, + "Logging": { + "description": "Azure Analytics Logging settings.", + "type": "object", + "required": [ + "Version", + "Delete", + "Read", + "Write", + "RetentionPolicy" + ], + "properties": { + "Version": { + "description": "The version of Storage Analytics to configure.", + "type": "string" + }, + "Delete": { + "description": "Indicates whether all delete requests should be logged.", + "type": "boolean" + }, + "Read": { + "description": "Indicates whether all read requests should be logged.", + "type": "boolean" + }, + "Write": { + "description": "Indicates whether all write requests should be logged.", + "type": "boolean" + }, + "RetentionPolicy": { + "$ref": "#/definitions/RetentionPolicy" + } + } + }, + "ContainerMetadata": { + "type": "object", + "xml": { + "name": "Metadata" + }, + "additionalProperties": { + "type": "string" + } + }, + "BlobMetadata": { + "type": "object", + "xml": { + "name": "Metadata" + }, + "properties": { + "Encrypted": { + "type": "string", + "xml": { + "attribute": true + } + } + }, + "additionalProperties": { + "type": "string" + } + }, + "ObjectReplicationMetadata": { + "type": "object", + "xml": { + "name": "OrMetadata" + }, + "additionalProperties": { + "type": "string" + } + }, + "Metrics": { + "description": "a summary of request statistics grouped by API in hour or minute aggregates for blobs", + "required": [ + "Enabled" + ], + "properties": { + "Version": { + "description": "The version of Storage Analytics to configure.", + "type": "string" + }, + "Enabled": { + "description": "Indicates whether metrics are enabled for the Blob service.", + "type": "boolean" + }, + "IncludeAPIs": { + "description": "Indicates whether metrics should generate summary statistics for called API operations.", + "type": "boolean" + }, + "RetentionPolicy": { + "$ref": "#/definitions/RetentionPolicy" + } + } + }, + "PageList": { + "description": "the list of pages", + "type": "object", + "properties": { + "PageRange": { + "type": "array", + "items": { + "$ref": "#/definitions/PageRange" + } + }, + "ClearRange": { + "type": "array", + "items": { + "$ref": "#/definitions/ClearRange" + } + }, + "NextMarker": { + "type": "string" + } + } + }, + "PageRange": { + "type": "object", + "required": [ + "Start", + "End" + ], + "properties": { + "Start": { + "type": "integer", + "format": "int64", + "xml": { + "name": "Start" + } + }, + "End": { + "type": "integer", + "format": "int64", + "xml": { + "name": "End" + } + } + }, + "xml": { + "name": "PageRange" + } + }, + "ClearRange": { + "type": "object", + "required": [ + "Start", + "End" + ], + "properties": { + "Start": { + "type": "integer", + "format": "int64", + "xml": { + "name": "Start" + } + }, + "End": { + "type": "integer", + "format": "int64", + "xml": { + "name": "End" + } + } + }, + "xml": { + "name": "ClearRange" + } + }, + "QueryRequest": { + "description": "Groups the set of query request settings.", + "type": "object", + "required": [ + "QueryType", + "Expression" + ], + "properties": { + "QueryType": { + "type": "string", + "description": "Required. The type of the provided query expression.", + "xml": { + "name": "QueryType" + }, + "enum": [ + "SQL" + ] + }, + "Expression": { + "type": "string", + "description": "The query expression in SQL. The maximum size of the query expression is 256KiB.", + "xml": { + "name": "Expression" + } + }, + "InputSerialization": { + "$ref": "#/definitions/QuerySerialization", + "xml": { + "name": "InputSerialization" + } + }, + "OutputSerialization": { + "$ref": "#/definitions/QuerySerialization", + "xml": { + "name": "OutputSerialization" + } + } + }, + "xml": { + "name": "QueryRequest" + } + }, + "QueryFormat": { + "type": "object", + "required": [ + "Type" + ], + "properties": { + "Type": { + "$ref": "#/definitions/QueryType" + }, + "DelimitedTextConfiguration": { + "$ref": "#/definitions/DelimitedTextConfiguration" + }, + "JsonTextConfiguration": { + "$ref": "#/definitions/JsonTextConfiguration" + }, + "ArrowConfiguration": { + "$ref": "#/definitions/ArrowConfiguration" + }, + "ParquetTextConfiguration": { + "$ref": "#/definitions/ParquetConfiguration" + } + } + }, + "QuerySerialization": { + "type": "object", + "required": [ + "Format" + ], + "properties": { + "Format": { + "$ref": "#/definitions/QueryFormat", + "xml": { + "name": "Format" + } + } + } + }, + "QueryType": { + "type": "string", + "description": "The quick query format type.", + "enum": [ + "delimited", + "json", + "arrow", + "parquet" + ], + "x-ms-enum": { + "name": "QueryFormatType", + "modelAsString": false + }, + "xml": { + "name": "Type" + } + }, + "RehydratePriority": { + "description": "If an object is in rehydrate pending state then this header is returned with priority of rehydrate. Valid values are High and Standard.", + "type": "string", + "enum": [ + "High", + "Standard" + ], + "x-ms-enum": { + "name": "RehydratePriority", + "modelAsString": true + }, + "xml": { + "name": "RehydratePriority" + } + }, + "RetentionPolicy": { + "description": "the retention policy which determines how long the associated data should persist", + "type": "object", + "required": [ + "Enabled" + ], + "properties": { + "Enabled": { + "description": "Indicates whether a retention policy is enabled for the storage service", + "type": "boolean" + }, + "Days": { + "description": "Indicates the number of days that metrics or logging or soft-deleted data should be retained. All data older than this value will be deleted", + "type": "integer", + "minimum": 1 + }, + "AllowPermanentDelete": { + "description": "Indicates whether permanent delete is allowed on this storage account.", + "type": "boolean" + } + } + }, + "SignedIdentifier": { + "xml": { + "name": "SignedIdentifier" + }, + "description": "signed identifier", + "type": "object", + "required": [ + "Id", + "AccessPolicy" + ], + "properties": { + "Id": { + "type": "string", + "description": "a unique id" + }, + "AccessPolicy": { + "$ref": "#/definitions/AccessPolicy" + } + } + }, + "SignedIdentifiers": { + "description": "a collection of signed identifiers", + "type": "array", + "items": { + "$ref": "#/definitions/SignedIdentifier" + }, + "xml": { + "wrapped": true, + "name": "SignedIdentifiers" + } + }, + "StaticWebsite": { + "description": "The properties that enable an account to host a static website", + "type": "object", + "required": [ + "Enabled" + ], + "properties": { + "Enabled": { + "description": "Indicates whether this account is hosting a static website", + "type": "boolean" + }, + "IndexDocument": { + "description": "The default name of the index page under each directory", + "type": "string" + }, + "ErrorDocument404Path": { + "description": "The absolute path of the custom 404 page", + "type": "string" + }, + "DefaultIndexDocumentPath": { + "description": "Absolute path of the default index page", + "type": "string" + } + } + }, + "StorageServiceProperties": { + "description": "Storage Service Properties.", + "type": "object", + "properties": { + "Logging": { + "$ref": "#/definitions/Logging" + }, + "HourMetrics": { + "$ref": "#/definitions/Metrics" + }, + "MinuteMetrics": { + "$ref": "#/definitions/Metrics" + }, + "Cors": { + "description": "The set of CORS rules.", + "type": "array", + "items": { + "$ref": "#/definitions/CorsRule" + }, + "xml": { + "wrapped": true + } + }, + "DefaultServiceVersion": { + "description": "The default version to use for requests to the Blob service if an incoming request's version is not specified. Possible values include version 2008-10-27 and all more recent versions", + "type": "string" + }, + "DeleteRetentionPolicy": { + "$ref": "#/definitions/RetentionPolicy" + }, + "StaticWebsite": { + "$ref": "#/definitions/StaticWebsite" + } + } + }, + "StorageServiceStats": { + "description": "Stats for the storage service.", + "type": "object", + "properties": { + "GeoReplication": { + "$ref": "#/definitions/GeoReplication" + } + } + } + }, + "parameters": { + "Url": { + "name": "url", + "description": "The URL of the service account, container, or blob that is the target of the desired operation.", + "x-ms-parameter-location": "client", + "required": true, + "type": "string", + "in": "path", + "x-ms-skip-url-encoding": true + }, + "AccessTierIfModifiedSince": { + "name": "x-ms-access-tier-if-modified-since", + "x-ms-client-name": "accessTierIfModifiedSince", + "in": "header", + "required": false, + "type": "string", + "format": "date-time-rfc1123", + "x-ms-parameter-location": "method", + "description": "Specify this header value to operate only on a blob if the access-tier has been modified since the specified date/time." + }, + "AccessTierIfUnmodifiedSince": { + "name": "x-ms-access-tier-if-unmodified-since", + "x-ms-client-name": "accessTierIfUnmodifiedSince", + "in": "header", + "required": false, + "type": "string", + "format": "date-time-rfc1123", + "x-ms-parameter-location": "method", + "description": "Specify this header value to operate only on a blob if the access-tier has not been modified since the specified date/time." + }, + "ApiVersionParameter": { + "name": "x-ms-version", + "x-ms-parameter-location": "client", + "x-ms-client-name": "version", + "in": "header", + "required": true, + "type": "string", + "description": "Specifies the version of the operation to use for this request." + }, + "Blob": { + "name": "blob", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]+(?:/[a-zA-Z0-9]+)*(?:\\.[a-zA-Z0-9]+){0,1}$", + "minLength": 1, + "maxLength": 1024, + "x-ms-parameter-location": "method", + "description": "The blob name." + }, + "BlobCacheControl": { + "name": "x-ms-blob-cache-control", + "x-ms-client-name": "blobCacheControl", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "blob-HTTP-headers" + }, + "description": "Optional. Sets the blob's cache control. If specified, this property is stored with the blob and returned with a read request." + }, + "BlobConditionAppendPos": { + "name": "x-ms-blob-condition-appendpos", + "x-ms-client-name": "appendPosition", + "in": "header", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "append-position-access-conditions" + }, + "description": "Optional conditional header, used only for the Append Block operation. A number indicating the byte offset to compare. Append Block will succeed only if the append position is equal to this number. If it is not, the request will fail with the AppendPositionConditionNotMet error (HTTP status code 412 - Precondition Failed)." + }, + "BlobConditionMaxSize": { + "name": "x-ms-blob-condition-maxsize", + "x-ms-client-name": "maxSize", + "in": "header", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "append-position-access-conditions" + }, + "description": "Optional conditional header. The max length in bytes permitted for the append blob. If the Append Block operation would cause the blob to exceed that limit or if the blob size is already greater than the value specified in this header, the request will fail with MaxBlobSizeConditionNotMet error (HTTP status code 412 - Precondition Failed)." + }, + "BlobPublicAccess": { + "name": "x-ms-blob-public-access", + "x-ms-client-name": "access", + "in": "header", + "required": false, + "x-ms-parameter-location": "method", + "description": "Specifies whether data in the container may be accessed publicly and the level of access", + "type": "string", + "enum": [ + "container", + "blob" + ], + "x-ms-enum": { + "name": "PublicAccessType", + "modelAsString": true + } + }, + "BlobTagsBody": { + "name": "Tags", + "in": "body", + "schema": { + "$ref": "#/definitions/BlobTags" + }, + "x-ms-parameter-location": "method", + "description": "Blob tags" + }, + "BlobTagsHeader": { + "name": "x-ms-tags", + "x-ms-client-name": "BlobTagsString", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Optional. Used to set blob tags in various blob operations." + }, + "AccessTierRequired": { + "name": "x-ms-access-tier", + "x-ms-client-name": "tier", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true + }, + "x-ms-parameter-location": "method", + "description": "Indicates the tier to be set on the blob." + }, + "AccessTierOptional": { + "name": "x-ms-access-tier", + "x-ms-client-name": "tier", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80", + "Hot", + "Cool", + "Archive", + "Cold" + ], + "x-ms-enum": { + "name": "AccessTier", + "modelAsString": true + }, + "x-ms-parameter-location": "method", + "description": "Optional. Indicates the tier to be set on the blob." + }, + "PremiumPageBlobAccessTierOptional": { + "name": "x-ms-access-tier", + "x-ms-client-name": "tier", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "P4", + "P6", + "P10", + "P15", + "P20", + "P30", + "P40", + "P50", + "P60", + "P70", + "P80" + ], + "x-ms-enum": { + "name": "PremiumPageBlobAccessTier", + "modelAsString": true + }, + "x-ms-parameter-location": "method", + "description": "Optional. Indicates the tier to be set on the page blob." + }, + "RehydratePriority": { + "name": "x-ms-rehydrate-priority", + "x-ms-client-name": "rehydratePriority", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "High", + "Standard" + ], + "x-ms-enum": { + "name": "RehydratePriority", + "modelAsString": true + }, + "x-ms-parameter-location": "method", + "description": "Optional: Indicates the priority with which to rehydrate an archived blob." + }, + "BlobContentDisposition": { + "name": "x-ms-blob-content-disposition", + "x-ms-client-name": "blobContentDisposition", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "blob-HTTP-headers" + }, + "description": "Optional. Sets the blob's Content-Disposition header." + }, + "BlobContentEncoding": { + "name": "x-ms-blob-content-encoding", + "x-ms-client-name": "blobContentEncoding", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "blob-HTTP-headers" + }, + "description": "Optional. Sets the blob's content encoding. If specified, this property is stored with the blob and returned with a read request." + }, + "BlobContentLanguage": { + "name": "x-ms-blob-content-language", + "x-ms-client-name": "blobContentLanguage", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "blob-HTTP-headers" + }, + "description": "Optional. Set the blob's content language. If specified, this property is stored with the blob and returned with a read request." + }, + "BlobContentLengthOptional": { + "name": "x-ms-blob-content-length", + "x-ms-client-name": "blobContentLength", + "in": "header", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "description": "This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned to a 512-byte boundary." + }, + "BlobContentLengthRequired": { + "name": "x-ms-blob-content-length", + "x-ms-client-name": "blobContentLength", + "in": "header", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "description": "This header specifies the maximum size for the page blob, up to 1 TB. The page blob size must be aligned to a 512-byte boundary." + }, + "BlobContentMD5": { + "name": "x-ms-blob-content-md5", + "x-ms-client-name": "blobContentMD5", + "in": "header", + "required": false, + "type": "string", + "format": "byte", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "blob-HTTP-headers" + }, + "description": "Optional. An MD5 hash of the blob content. Note that this hash is not validated, as the hashes for the individual blocks were validated when each was uploaded." + }, + "BlobContentType": { + "name": "x-ms-blob-content-type", + "x-ms-client-name": "blobContentType", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "blob-HTTP-headers" + }, + "description": "Optional. Sets the blob's content type. If specified, this property is stored with the blob and returned with a read request." + }, + "BlobDeleteType": { + "name": "deletetype", + "x-ms-client-name": "blobDeleteType", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "Permanent" + ], + "x-ms-enum": { + "name": "BlobDeleteType", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Optional. Only possible value is 'permanent', which specifies to permanently delete a blob if blob soft delete is enabled." + }, + "BlobExpiryOptions": { + "name": "x-ms-expiry-option", + "x-ms-client-name": "ExpiryOptions", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "NeverExpire", + "RelativeToCreation", + "RelativeToNow", + "Absolute" + ], + "x-ms-enum": { + "name": "BlobExpiryOptions", + "modelAsString": true + }, + "x-ms-parameter-location": "method", + "description": "Required. Indicates mode of the expiry time" + }, + "BlobExpiryTime": { + "name": "x-ms-expiry-time", + "x-ms-client-name": "ExpiresOn", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "The time to set the blob to expiry" + }, + "BlobSequenceNumber": { + "name": "x-ms-blob-sequence-number", + "x-ms-client-name": "blobSequenceNumber", + "in": "header", + "required": false, + "type": "integer", + "format": "int64", + "default": 0, + "x-ms-parameter-location": "method", + "description": "Set for page blobs only. The sequence number is a user-controlled value that you can use to track requests. The value of the sequence number must be between 0 and 2^63 - 1." + }, + "BlockId": { + "name": "blockid", + "x-ms-client-name": "blockId", + "in": "query", + "type": "string", + "required": true, + "x-ms-parameter-location": "method", + "description": "A valid Base64 string value that identifies the block. Prior to encoding, the string must be less than or equal to 64 bytes in size. For a given blob, the length of the value specified for the blockid parameter must be the same size for each block." + }, + "BlockListType": { + "name": "blocklisttype", + "x-ms-client-name": "listType", + "in": "query", + "required": true, + "default": "committed", + "x-ms-parameter-location": "method", + "description": "Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together.", + "type": "string", + "enum": [ + "committed", + "uncommitted", + "all" + ], + "x-ms-enum": { + "name": "BlockListType", + "modelAsString": false + } + }, + "Body": { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "format": "file" + }, + "x-ms-parameter-location": "method", + "description": "Initial data" + }, + "ContainerAcl": { + "name": "containerAcl", + "in": "body", + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + }, + "x-ms-parameter-location": "method", + "description": "the acls for the container" + }, + "CopyId": { + "name": "copyid", + "x-ms-client-name": "copyId", + "in": "query", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "The copy identifier provided in the x-ms-copy-id header of the original Copy Blob operation." + }, + "ClientRequestId": { + "name": "x-ms-client-request-id", + "x-ms-client-name": "requestId", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled." + }, + "ContainerName": { + "name": "containerName", + "in": "path", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "The container name." + }, + "ContentCrc64": { + "name": "x-ms-content-crc64", + "x-ms-client-name": "transactionalContentCrc64", + "in": "header", + "required": false, + "type": "string", + "format": "byte", + "x-ms-parameter-location": "method", + "description": "Specify the transactional crc64 for the body, to be validated by the service." + }, + "ContentLength": { + "name": "Content-Length", + "in": "header", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "description": "The length of the request." + }, + "ContentMD5": { + "name": "Content-MD5", + "x-ms-client-name": "transactionalContentMD5", + "in": "header", + "required": false, + "type": "string", + "format": "byte", + "x-ms-parameter-location": "method", + "description": "Specify the transactional md5 for the body, to be validated by the service." + }, + "CopySource": { + "name": "x-ms-copy-source", + "x-ms-client-name": "copySource", + "in": "header", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Specifies the name of the source page blob snapshot. This value is a URL of up to 2 KB in length that specifies a page blob snapshot. The value should be URL-encoded as it would appear in a request URI. The source blob must either be public or must be authenticated via a shared access signature." + }, + "CopySourceAuthorization": { + "name": "x-ms-copy-source-authorization", + "x-ms-client-name": "copySourceAuthorization", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source." + }, + "CopySourceBlobProperties": { + "name": "x-ms-copy-source-blob-properties", + "x-ms-client-name": "copySourceBlobProperties", + "in": "header", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "description": "Optional, default is true. Indicates if properties from the source blob should be copied." + }, + "CopySourceTags": { + "name": "x-ms-copy-source-tag-option", + "x-ms-client-name": "copySourceTags", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "REPLACE", + "COPY" + ], + "x-ms-enum": { + "name": "BlobCopySourceTags", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Optional, default 'replace'. Indicates if source tags should be copied or replaced with the tags specified by x-ms-tags." + }, + "DeleteSnapshots": { + "name": "x-ms-delete-snapshots", + "x-ms-client-name": "deleteSnapshots", + "description": "Required if the blob has associated snapshots. Specify one of the following two options: include: Delete the base blob and all of its snapshots. only: Delete only the blob's snapshots and not the blob itself", + "x-ms-parameter-location": "method", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "include", + "only" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": false + } + }, + "Delimiter": { + "name": "delimiter", + "description": "When the request includes this parameter, the operation returns a BlobPrefix element in the response body that acts as a placeholder for all blobs whose names begin with the same substring up to the appearance of the delimiter character. The delimiter may be a single character or a string.", + "type": "string", + "x-ms-parameter-location": "method", + "in": "query", + "required": true + }, + "EncryptionKey": { + "name": "x-ms-encryption-key", + "x-ms-client-name": "encryptionKey", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "cpk-info" + }, + "description": "Optional. Specifies the encryption key to use to encrypt the data provided in the request. If not specified, encryption is performed with the root account encryption key. For more information, see Encryption at Rest for Azure Storage Services." + }, + "EncryptionKeySha256": { + "name": "x-ms-encryption-key-sha256", + "x-ms-client-name": "encryptionKeySha256", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "cpk-info" + }, + "description": "The SHA-256 hash of the provided encryption key. Must be provided if the x-ms-encryption-key header is provided." + }, + "EncryptionAlgorithm": { + "name": "x-ms-encryption-algorithm", + "x-ms-client-name": "encryptionAlgorithm", + "type": "string", + "in": "header", + "required": false, + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "cpk-info" + }, + "description": "The algorithm used to produce the encryption key hash. Currently, the only accepted value is \"AES256\". Must be provided if the x-ms-encryption-key header is provided." + }, + "EncryptionScope": { + "name": "x-ms-encryption-scope", + "x-ms-client-name": "encryptionScope", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "cpk-scope-info" + }, + "description": "Optional. Version 2019-07-07 and later. Specifies the name of the encryption scope to use to encrypt the data provided in the request. If not specified, encryption is performed with the default account encryption scope. For more information, see Encryption at Rest for Azure Storage Services." + }, + "DefaultEncryptionScope": { + "name": "x-ms-default-encryption-scope", + "x-ms-client-name": "DefaultEncryptionScope", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "container-cpk-scope-info" + }, + "description": "Optional. Version 2019-07-07 and later. Specifies the default encryption scope to set on the container and use for all future writes." + }, + "DeletedContainerName": { + "name": "x-ms-deleted-container-name", + "x-ms-client-name": "DeletedContainerName", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "method", + "description": "Optional. Version 2019-12-12 and later. Specifies the name of the deleted container to restore." + }, + "DeletedContainerVersion": { + "name": "x-ms-deleted-container-version", + "x-ms-client-name": "DeletedContainerVersion", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "method", + "description": "Optional. Version 2019-12-12 and later. Specifies the version of the deleted container to restore." + }, + "DenyEncryptionScopeOverride": { + "name": "x-ms-deny-encryption-scope-override", + "x-ms-client-name": "PreventEncryptionScopeOverride", + "type": "boolean", + "in": "header", + "required": false, + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "container-cpk-scope-info" + }, + "description": "Optional. Version 2019-07-07 and newer. If true, prevents any request from specifying a different encryption scope than the scope set on the container." + }, + "FileRequestIntent": { + "name": "x-ms-file-request-intent", + "x-ms-client-name": "fileRequestIntent", + "in": "header", + "description": "Valid value is backup", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "enum": [ + "backup" + ], + "x-ms-enum": { + "name": "FileShareTokenIntent", + "modelAsString": true + } + }, + "FilterBlobsInclude": { + "name": "include", + "in": "query", + "required": false, + "type": "array", + "collectionFormat": "csv", + "items": { + "type": "string", + "enum": [ + "none", + "versions" + ], + "x-ms-enum": { + "name": "FilterBlobsIncludeItem", + "modelAsString": false + } + }, + "x-ms-parameter-location": "method", + "description": "Include this parameter to specify one or more datasets to include in the response." + }, + "FilterBlobsWhere": { + "name": "where", + "in": "query", + "required": false, + "type": "string", + "description": "Filters the results to return only to return only blobs whose tags match the specified expression.", + "x-ms-parameter-location": "method" + }, + "GetRangeContentMD5": { + "name": "x-ms-range-get-content-md5", + "x-ms-client-name": "rangeGetContentMD5", + "in": "header", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "description": "When set to true and specified together with the Range, the service returns the MD5 hash for the range, as long as the range is less than or equal to 4 MB in size." + }, + "GetRangeContentCRC64": { + "name": "x-ms-range-get-content-crc64", + "x-ms-client-name": "rangeGetContentCRC64", + "in": "header", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "description": "When set to true and specified together with the Range, the service returns the CRC64 hash for the range, as long as the range is less than or equal to 4 MB in size." + }, + "StructuredBodyGet": { + "name": "x-ms-structured-body", + "x-ms-client-name": "StructuredBodyType", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Specifies the response content should be returned as a structured message and specifies the message schema version and properties." + }, + "StructuredBodyPut": { + "name": "x-ms-structured-body", + "x-ms-client-name": "StructuredBodyType", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Required if the request body is a structured message. Specifies the message schema version and properties." + }, + "StructuredContentLength": { + "name": "x-ms-structured-content-length", + "x-ms-client-name": "StructuredContentLength", + "in": "header", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "description": "Required if the request body is a structured message. Specifies the length of the blob/file content inside the message body. Will always be smaller than Content-Length." + }, + "IfMatch": { + "name": "If-Match", + "x-ms-client-name": "ifMatch", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "modified-access-conditions" + }, + "description": "Specify an ETag value to operate only on blobs with a matching value." + }, + "IfModifiedSince": { + "name": "If-Modified-Since", + "x-ms-client-name": "ifModifiedSince", + "in": "header", + "required": false, + "type": "string", + "format": "date-time-rfc1123", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "modified-access-conditions" + }, + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time." + }, + "IfNoneMatch": { + "name": "If-None-Match", + "x-ms-client-name": "ifNoneMatch", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "modified-access-conditions" + }, + "description": "Specify an ETag value to operate only on blobs without a matching value." + }, + "IfUnmodifiedSince": { + "name": "If-Unmodified-Since", + "x-ms-client-name": "ifUnmodifiedSince", + "in": "header", + "required": false, + "type": "string", + "format": "date-time-rfc1123", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "modified-access-conditions" + }, + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time." + }, + "IfSequenceNumberEqualTo": { + "name": "x-ms-if-sequence-number-eq", + "x-ms-client-name": "ifSequenceNumberEqualTo", + "in": "header", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "sequence-number-access-conditions" + }, + "description": "Specify this header value to operate only on a blob if it has the specified sequence number." + }, + "IfSequenceNumberLessThan": { + "name": "x-ms-if-sequence-number-lt", + "x-ms-client-name": "ifSequenceNumberLessThan", + "in": "header", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "sequence-number-access-conditions" + }, + "description": "Specify this header value to operate only on a blob if it has a sequence number less than the specified." + }, + "IfSequenceNumberLessThanOrEqualTo": { + "name": "x-ms-if-sequence-number-le", + "x-ms-client-name": "ifSequenceNumberLessThanOrEqualTo", + "in": "header", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "sequence-number-access-conditions" + }, + "description": "Specify this header value to operate only on a blob if it has a sequence number less than or equal to the specified." + }, + "IfTags": { + "name": "x-ms-if-tags", + "x-ms-client-name": "ifTags", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "modified-access-conditions" + }, + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value." + }, + "IfBlobMatch": { + "name": "x-ms-blob-if-match", + "x-ms-client-name": "ifMatch", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "blob-modified-access-conditions" + }, + "description": "Specify an ETag value to operate only on blobs with a matching value." + }, + "IfBlobModifiedSince": { + "name": "x-ms-blob-if-modified-since", + "x-ms-client-name": "ifModifiedSince", + "in": "header", + "required": false, + "type": "string", + "format": "date-time-rfc1123", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "blob-modified-access-conditions" + }, + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time." + }, + "IfBlobNoneMatch": { + "name": "x-ms-blob-if-none-match", + "x-ms-client-name": "ifNoneMatch", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "blob-modified-access-conditions" + }, + "description": "Specify an ETag value to operate only on blobs without a matching value." + }, + "IfBlobUnmodifiedSince": { + "name": "x-ms-blob-if-unmodified-since", + "x-ms-client-name": "ifUnmodifiedSince", + "in": "header", + "required": false, + "type": "string", + "format": "date-time-rfc1123", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "blob-modified-access-conditions" + }, + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time." + }, + "ImmutabilityPolicyExpiry": { + "name": "x-ms-immutability-policy-until-date", + "x-ms-client-name": "immutabilityPolicyExpiry", + "in": "header", + "required": false, + "type": "string", + "format": "date-time-rfc1123", + "x-ms-parameter-location": "method", + "description": "Specifies the date time when the blobs immutability policy is set to expire." + }, + "ImmutabilityPolicyMode": { + "name": "x-ms-immutability-policy-mode", + "x-ms-client-name": "immutabilityPolicyMode", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "Unlocked", + "Locked" + ], + "x-ms-enum": { + "name": "BlobImmutabilityPolicyMode", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Specifies the immutability policy mode to set on the blob." + }, + "KeyInfo": { + "description": "Key information", + "name": "KeyInfo", + "in": "body", + "x-ms-parameter-location": "method", + "required": true, + "schema": { + "$ref": "#/definitions/KeyInfo" + } + }, + "ListBlobsInclude": { + "name": "include", + "in": "query", + "required": false, + "type": "array", + "collectionFormat": "csv", + "items": { + "type": "string", + "enum": [ + "copy", + "deleted", + "metadata", + "snapshots", + "uncommittedblobs", + "versions", + "tags", + "immutabilitypolicy", + "legalhold", + "deletedwithversions" + ], + "x-ms-enum": { + "name": "ListBlobsIncludeItem", + "modelAsString": false + } + }, + "x-ms-parameter-location": "method", + "description": "Include this parameter to specify one or more datasets to include in the response." + }, + "ListBlobsStartFrom": { + "name": "startFrom", + "in": "query", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Specifies the relative path to list paths from. For non-recursive list, only one entity level is supported; For recursive list, multiple entity levels are supported. (Inclusive)" + }, + "ListContainersInclude": { + "name": "include", + "in": "query", + "required": false, + "type": "array", + "collectionFormat": "csv", + "items": { + "type": "string", + "enum": [ + "metadata", + "deleted", + "system" + ], + "x-ms-enum": { + "name": "ListContainersIncludeType", + "modelAsString": false + } + }, + "x-ms-parameter-location": "method", + "description": "Include this parameter to specify that the container's metadata be returned as part of the response body." + }, + "LeaseBreakPeriod": { + "name": "x-ms-lease-break-period", + "x-ms-client-name": "breakPeriod", + "in": "header", + "required": false, + "type": "integer", + "x-ms-parameter-location": "method", + "description": "For a break operation, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60. This break period is only used if it is shorter than the time remaining on the lease. If longer, the time remaining on the lease is used. A new lease will not be available before the break period has expired, but the lease may be held for longer than the break period. If this header does not appear with a break operation, a fixed-duration lease breaks after the remaining lease period elapses, and an infinite lease breaks immediately." + }, + "LeaseDuration": { + "name": "x-ms-lease-duration", + "x-ms-client-name": "duration", + "in": "header", + "required": false, + "type": "integer", + "x-ms-parameter-location": "method", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change." + }, + "LeaseIdOptional": { + "name": "x-ms-lease-id", + "x-ms-client-name": "leaseId", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "lease-access-conditions" + }, + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID." + }, + "LeaseIdRequired": { + "name": "x-ms-lease-id", + "x-ms-client-name": "leaseId", + "in": "header", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Specifies the current lease ID on the resource." + }, + "LegalHoldOptional": { + "name": "x-ms-legal-hold", + "x-ms-client-name": "legalHold", + "in": "header", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "description": "Specified if a legal hold should be set on the blob." + }, + "LegalHoldRequired": { + "name": "x-ms-legal-hold", + "x-ms-client-name": "legalHold", + "in": "header", + "required": true, + "type": "boolean", + "x-ms-parameter-location": "method", + "description": "Specified if a legal hold should be set on the blob." + }, + "Marker": { + "name": "marker", + "in": "query", + "required": false, + "type": "string", + "description": "A string value that identifies the portion of the list of containers to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all containers remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "x-ms-parameter-location": "method" + }, + "MaxResults": { + "name": "maxresults", + "in": "query", + "required": false, + "type": "integer", + "minimum": 1, + "x-ms-parameter-location": "method", + "description": "Specifies the maximum number of containers to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items. Note that if the listing operation crosses a partition boundary, then the service will return a continuation token for retrieving the remainder of the results. For this reason, it is possible that the service will return fewer results than specified by maxresults, or than the default of 5000." + }, + "Metadata": { + "name": "x-ms-meta", + "x-ms-client-name": "metadata", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Optional. Specifies a user-defined name-value pair associated with the blob. If no name-value pairs are specified, the operation will copy the metadata from the source blob or file to the destination blob. If one or more name-value pairs are specified, the destination blob is created with the specified metadata, and metadata is not copied from the source blob or file. Note that beginning with version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. See Naming and Referencing Containers, Blobs, and Metadata for more information.", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "MultipartContentType": { + "name": "Content-Type", + "x-ms-client-name": "multipartContentType", + "in": "header", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Required. The value of this header must be multipart/mixed with a batch boundary. Example header value: multipart/mixed; boundary=batch_<GUID>" + }, + "ObjectReplicationPolicyId": { + "name": "x-ms-or-policy-id", + "x-ms-client-name": "objectReplicationPolicyId", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the destination blob of the replication." + }, + "ObjectReplicationRules": { + "name": "x-ms-or", + "x-ms-client-name": "ObjectReplicationRules", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Optional. Only valid when Object Replication is enabled for the storage container and on the source blob of the replication. When retrieving this header, it will return the header with the policy id and rule id (e.g. x-ms-or-policyid_ruleid), and the value will be the status of the replication (e.g. complete, failed).", + "x-ms-header-collection-prefix": "x-ms-or-" + }, + "Prefix": { + "name": "prefix", + "in": "query", + "required": false, + "type": "string", + "description": "Filters the results to return only containers whose name begins with the specified prefix.", + "x-ms-parameter-location": "method" + }, + "PrevSnapshot": { + "name": "prevsnapshot", + "in": "query", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Optional in version 2015-07-08 and newer. The prevsnapshot parameter is a DateTime value that specifies that the response will contain only pages that were changed between target blob and previous snapshot. Changed pages include both updated and cleared pages. The target blob may be a snapshot, as long as the snapshot specified by prevsnapshot is the older of the two. Note that incremental snapshots are currently supported only for blobs created on or after January 1, 2016." + }, + "PrevSnapshotUrl": { + "name": "x-ms-previous-snapshot-url", + "x-ms-client-name": "prevSnapshotUrl", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Optional. This header is only supported in service versions 2019-04-19 and after and specifies the URL of a previous snapshot of the target blob. The response will only contain pages that were changed between the target blob and its previous snapshot." + }, + "ProposedLeaseIdOptional": { + "name": "x-ms-proposed-lease-id", + "x-ms-client-name": "proposedLeaseId", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID string formats." + }, + "ProposedLeaseIdRequired": { + "name": "x-ms-proposed-lease-id", + "x-ms-client-name": "proposedLeaseId", + "in": "header", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Proposed lease ID, in a GUID string format. The Blob service returns 400 (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID string formats." + }, + "QueryRequest": { + "name": "queryRequest", + "in": "body", + "x-ms-parameter-location": "client", + "schema": { + "$ref": "#/definitions/QueryRequest" + }, + "description": "the query request" + }, + "Range": { + "name": "x-ms-range", + "x-ms-client-name": "range", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Return only the bytes of the blob in the specified range." + }, + "RangeRequiredPutPageFromUrl": { + "name": "x-ms-range", + "x-ms-client-name": "range", + "in": "header", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "The range of bytes to which the source range would be written. The range should be 512 aligned and range-end is required." + }, + "SequenceNumberAction": { + "name": "x-ms-sequence-number-action", + "x-ms-client-name": "sequenceNumberAction", + "in": "header", + "required": true, + "x-ms-parameter-location": "method", + "description": "Required if the x-ms-blob-sequence-number header is set for the request. This property applies to page blobs only. This property indicates how the service should modify the blob's sequence number", + "type": "string", + "enum": [ + "max", + "update", + "increment" + ], + "x-ms-enum": { + "name": "SequenceNumberActionType", + "modelAsString": false + } + }, + "Snapshot": { + "name": "snapshot", + "in": "query", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the blob snapshot to retrieve. For more information on working with blob snapshots, see <a href=\"https://learn.microsoft.com/rest/api/storageservices/creating-a-snapshot-of-a-blob\">Creating a Snapshot of a Blob.</a>" + }, + "SourceEncryptionKey": { + "name": "x-ms-source-encryption-key", + "x-ms-client-name": "sourceEncryptionKey", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "source-cpk-info" + }, + "description": "Optional. Specifies the source encryption key to use to encrypt the source data provided in the request." + }, + "SourceEncryptionKeySha256": { + "name": "x-ms-source-encryption-key-sha256", + "x-ms-client-name": "sourceEncryptionKeySha256", + "type": "string", + "in": "header", + "required": false, + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "source-cpk-info" + }, + "description": "The SHA-256 hash of the provided source encryption key. Must be provided if the x-ms-source-encryption-key header is provided." + }, + "SourceEncryptionAlgorithm": { + "name": "x-ms-source-encryption-algorithm", + "x-ms-client-name": "sourceEncryptionAlgorithm", + "type": "string", + "in": "header", + "required": false, + "enum": [ + "AES256" + ], + "x-ms-enum": { + "name": "EncryptionAlgorithmType", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "source-cpk-info" + }, + "description": "The algorithm used to produce the source encryption key hash. Currently, the only accepted value is \"AES256\". Must be provided if the x-ms-source-encryption-key is provided." + }, + "VersionId": { + "name": "versionid", + "x-ms-client-name": "versionId", + "in": "query", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "The version id parameter is an opaque DateTime value that, when present, specifies the version of the blob to operate on. It's for service version 2019-10-10 and newer." + }, + "SealBlob": { + "name": "x-ms-seal-blob", + "x-ms-client-name": "SealBlob", + "in": "header", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "description": "Overrides the sealed state of the destination blob. Service version 2019-12-12 and newer." + }, + "SourceContainerName": { + "name": "x-ms-source-container-name", + "x-ms-client-name": "SourceContainerName", + "type": "string", + "in": "header", + "required": true, + "x-ms-parameter-location": "method", + "description": "Required. Specifies the name of the container to rename." + }, + "SourceContentMD5": { + "name": "x-ms-source-content-md5", + "x-ms-client-name": "sourceContentMD5", + "in": "header", + "required": false, + "type": "string", + "format": "byte", + "x-ms-parameter-location": "method", + "description": "Specify the md5 calculated for the range of bytes that must be read from the copy source." + }, + "SourceContentCRC64": { + "name": "x-ms-source-content-crc64", + "x-ms-client-name": "sourceContentcrc64", + "in": "header", + "required": false, + "type": "string", + "format": "byte", + "x-ms-parameter-location": "method", + "description": "Specify the crc64 calculated for the range of bytes that must be read from the copy source." + }, + "SourceRange": { + "name": "x-ms-source-range", + "x-ms-client-name": "sourceRange", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Bytes of source data in the specified range." + }, + "SourceRangeRequiredPutPageFromUrl": { + "name": "x-ms-source-range", + "x-ms-client-name": "sourceRange", + "in": "header", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Bytes of source data in the specified range. The length of this range should match the ContentLength header and x-ms-range/Range destination range header." + }, + "SourceIfMatch": { + "name": "x-ms-source-if-match", + "x-ms-client-name": "sourceIfMatch", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "source-modified-access-conditions" + }, + "description": "Specify an ETag value to operate only on blobs with a matching value." + }, + "SourceIfModifiedSince": { + "name": "x-ms-source-if-modified-since", + "x-ms-client-name": "sourceIfModifiedSince", + "in": "header", + "required": false, + "type": "string", + "format": "date-time-rfc1123", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "source-modified-access-conditions" + }, + "description": "Specify this header value to operate only on a blob if it has been modified since the specified date/time." + }, + "SourceIfNoneMatch": { + "name": "x-ms-source-if-none-match", + "x-ms-client-name": "sourceIfNoneMatch", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "source-modified-access-conditions" + }, + "description": "Specify an ETag value to operate only on blobs without a matching value." + }, + "SourceIfUnmodifiedSince": { + "name": "x-ms-source-if-unmodified-since", + "x-ms-client-name": "sourceIfUnmodifiedSince", + "in": "header", + "required": false, + "type": "string", + "format": "date-time-rfc1123", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "source-modified-access-conditions" + }, + "description": "Specify this header value to operate only on a blob if it has not been modified since the specified date/time." + }, + "SourceLeaseId": { + "name": "x-ms-source-lease-id", + "x-ms-client-name": "sourceLeaseId", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "A lease ID for the source path. If specified, the source path must have an active lease and the lease ID must match." + }, + "SourceIfTags": { + "name": "x-ms-source-if-tags", + "x-ms-client-name": "sourceIfTags", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "source-modified-access-conditions" + }, + "description": "Specify a SQL where clause on blob tags to operate only on blobs with a matching value." + }, + "SourceUrl": { + "name": "x-ms-copy-source", + "x-ms-client-name": "sourceUrl", + "in": "header", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Specify a URL to the copy source." + }, + "StorageServiceProperties": { + "name": "StorageServiceProperties", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/StorageServiceProperties" + }, + "x-ms-parameter-location": "method", + "description": "The StorageService properties." + }, + "Timeout": { + "name": "timeout", + "in": "query", + "required": false, + "type": "integer", + "minimum": 0, + "x-ms-parameter-location": "method", + "description": "The timeout parameter is expressed in seconds. For more information, see <a href=\"https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations\">Setting Timeouts for Blob Service Operations.</a>" + } + } +} diff --git a/specification/storage/data-plane/Microsoft.FileStorage/readme.md b/specification/storage/data-plane/Microsoft.FileStorage/readme.md index d2dfcec1f54e..6048e0be790b 100644 --- a/specification/storage/data-plane/Microsoft.FileStorage/readme.md +++ b/specification/storage/data-plane/Microsoft.FileStorage/readme.md @@ -25,7 +25,7 @@ These are the global settings for the FileStorage API. ``` yaml openapi-type: data-plane -tag: package-2026-02 +tag: package-2026-04 use-internal-constructors: true add-credentials: true ``` @@ -183,6 +183,15 @@ input-file: - stable/2026-02-06/file.json ``` +### Tag: package-2026-04 + +These settings apply only when `--tag=package-2026-04` is specified on the command line. + +``` yaml $(tag) == 'package-2026-04' +input-file: +- stable/2026-04-06/file.json +``` + ### Suppression ``` yaml directive: diff --git a/specification/storage/data-plane/Microsoft.FileStorage/stable/2026-04-06/file.json b/specification/storage/data-plane/Microsoft.FileStorage/stable/2026-04-06/file.json new file mode 100644 index 000000000000..2b28ffb840be --- /dev/null +++ b/specification/storage/data-plane/Microsoft.FileStorage/stable/2026-04-06/file.json @@ -0,0 +1,8963 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure File Storage", + "version": "2026-04-06", + "x-ms-code-generation-settings": { + "header": "MIT", + "strictSpecAdherence": false + } + }, + "x-ms-parameterized-host": { + "hostTemplate": "{url}", + "useSchemePrefix": false, + "positionInOperation": "first", + "parameters": [ + { + "$ref": "#/parameters/Url" + } + ] + }, + "securityDefinitions": { + "File_shared_key": { + "type": "apiKey", + "name": "Authorization", + "in": "header" + } + }, + "schemes": [ + "https" + ], + "consumes": [ + "application/xml" + ], + "produces": [ + "application/xml" + ], + "paths": {}, + "x-ms-paths": { + "/?restype=service&comp=properties": { + "put": { + "tags": [ + "service" + ], + "operationId": "Service_SetProperties", + "description": "Sets properties for a storage account's File service endpoint, including properties for Storage Analytics metrics and CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "#/parameters/StorageServiceProperties" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "202": { + "description": "Success (Accepted)", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "get": { + "tags": [ + "service" + ], + "operationId": "Service_GetProperties", + "description": "Gets the properties of a storage account's File service, including properties for Storage Analytics metrics and CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + } + }, + "schema": { + "$ref": "#/definitions/StorageServiceProperties" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "service" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "properties" + ] + } + ] + }, + "/?comp=list": { + "get": { + "tags": [ + "service" + ], + "operationId": "Service_ListSharesSegment", + "description": "The List Shares Segment operation returns a list of the shares and share snapshots under the specified account.", + "parameters": [ + { + "$ref": "#/parameters/Prefix" + }, + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/MaxResults" + }, + { + "$ref": "#/parameters/ListSharesInclude" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + } + }, + "schema": { + "$ref": "#/definitions/ListSharesResponse" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "NextMarker" + } + }, + "parameters": [ + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "list" + ] + } + ] + }, + "/?restype=service&comp=userdelegationkey": { + "post": { + "tags": [ + "service" + ], + "operationId": "Service_GetUserDelegationKey", + "description": "Retrieves a user delegation key for the File service. This is only a valid operation when using bearer token authentication.", + "parameters": [ + { + "$ref": "#/parameters/KeyInfo" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/UserDelegationKey" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "service" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "userdelegationkey" + ] + } + ] + }, + "/{shareName}?restype=share": { + "put": { + "tags": [ + "share" + ], + "operationId": "Share_Create", + "description": "Creates a new share under the specified account. If the share with the same name already exists, the operation fails.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/ShareQuota" + }, + { + "$ref": "#/parameters/AccessTierOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ShareEnabledProtocols" + }, + { + "$ref": "#/parameters/ShareRootSquash" + }, + { + "$ref": "#/parameters/EnableSnapshotVirtualDirectoryAccess" + }, + { + "$ref": "#/parameters/PaidBurstingEnabled" + }, + { + "$ref": "#/parameters/PaidBurstingMaxBandwidthMibps" + }, + { + "$ref": "#/parameters/PaidBurstingMaxIops" + }, + { + "$ref": "#/parameters/FileRequestIntent" + }, + { + "$ref": "#/parameters/ShareProvisionedIops" + }, + { + "$ref": "#/parameters/ShareProvisionedBandwidthMibps" + }, + { + "$ref": "#/parameters/EnableSmbDirectoryLease" + } + ], + "responses": { + "201": { + "description": "Success, Share created.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the share, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the share or its properties or metadata updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-share-quota": { + "x-ms-client-name": "Quota", + "type": "integer", + "format": "int64", + "description": "Returns the current share quota in GB." + }, + "x-ms-share-provisioned-iops": { + "x-ms-client-name": "ShareProvisionedIops", + "type": "integer", + "format": "int64", + "description": "The provisioned IOPS of the share." + }, + "x-ms-share-provisioned-bandwidth-mibps": { + "x-ms-client-name": "ShareProvisionedBandwidthMibps", + "type": "integer", + "format": "int64", + "description": "The provisioned throughput of the share." + }, + "x-ms-share-included-burst-iops": { + "x-ms-client-name": "ShareIncludedBurstIops", + "type": "integer", + "format": "int64", + "description": "Returns the calculated burst IOPS of the share." + }, + "x-ms-share-max-burst-credits-for-iops": { + "x-ms-client-name": "MaxBurstCreditsForIops", + "description": "Returned the calculated maximum burst credits.", + "type": "integer", + "format": "int64" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "get": { + "tags": [ + "share" + ], + "operationId": "Share_GetProperties", + "description": "Returns all user-defined metadata and system properties for the specified share or share snapshot. The data returned does not include the share's list of files.", + "parameters": [ + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-ms-meta": { + "type": "string", + "description": "A set of name-value pairs that contain the user-defined metadata of the share.", + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the share or its properties updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-share-quota": { + "x-ms-client-name": "Quota", + "type": "integer", + "description": "Returns the current share quota in GB." + }, + "x-ms-share-provisioned-iops": { + "x-ms-client-name": "ProvisionedIops", + "type": "integer", + "description": "Returns the current share provisioned ipos." + }, + "x-ms-share-provisioned-ingress-mbps": { + "x-ms-client-name": "ProvisionedIngressMBps", + "type": "integer", + "description": "Returns the current share provisioned ingress in megabytes per second." + }, + "x-ms-share-provisioned-egress-mbps": { + "x-ms-client-name": "ProvisionedEgressMBps", + "type": "integer", + "description": "Returns the current share provisioned egress in megabytes per second." + }, + "x-ms-share-next-allowed-quota-downgrade-time": { + "x-ms-client-name": "NextAllowedQuotaDowngradeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the current share next allowed quota downgrade time." + }, + "x-ms-share-provisioned-bandwidth-mibps": { + "x-ms-client-name": "ProvisionedBandwidthMibps", + "type": "integer", + "description": "Returns the current share provisioned bandwidth in mebibytes per second." + }, + "x-ms-lease-duration": { + "x-ms-client-name": "LeaseDuration", + "description": "When a share is leased, specifies whether the lease is of infinite or fixed duration.", + "type": "string", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "modelAsString": false + } + }, + "x-ms-lease-state": { + "x-ms-client-name": "LeaseState", + "description": "Lease state of the share.", + "type": "string", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseStateType", + "modelAsString": false + } + }, + "x-ms-lease-status": { + "x-ms-client-name": "LeaseStatus", + "description": "The current lease status of the share.", + "type": "string", + "enum": [ + "locked", + "unlocked" + ], + "x-ms-enum": { + "name": "LeaseStatusType", + "modelAsString": false + } + }, + "x-ms-access-tier": { + "x-ms-client-name": "AccessTier", + "type": "string", + "description": "Returns the access tier set on the share." + }, + "x-ms-access-tier-change-time": { + "x-ms-client-name": "AccessTierChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the last modified time (in UTC) of the access tier of the share." + }, + "x-ms-access-tier-transition-state": { + "x-ms-client-name": "AccessTierTransitionState", + "type": "string", + "description": "Returns the transition state between access tiers, when present." + }, + "x-ms-enabled-protocols": { + "x-ms-client-name": "EnabledProtocols", + "description": "The protocols that have been enabled on the share.", + "type": "string" + }, + "x-ms-root-squash": { + "x-ms-client-name": "RootSquash", + "description": "Valid for NFS shares only.", + "type": "string", + "enum": [ + "NoRootSquash", + "RootSquash", + "AllSquash" + ], + "x-ms-enum": { + "name": "ShareRootSquash", + "modelAsString": false + } + }, + "x-ms-enable-snapshot-virtual-directory-access": { + "x-ms-client-name": "EnableSnapshotVirtualDirectoryAccess", + "description": "Version 2023-08-03 and newer. Specifies whether the snapshot virtual directory should be accessible at the root of share mount point when NFS is enabled. This header is only returned for shares, not for snapshots.", + "type": "boolean" + }, + "x-ms-share-paid-bursting-enabled": { + "x-ms-client-name": "PaidBurstingEnabled", + "description": "Optional. Boolean. Default if not specified is false. This property enables paid bursting.", + "type": "boolean" + }, + "x-ms-share-paid-bursting-max-iops": { + "x-ms-client-name": "PaidBurstingMaxIops", + "description": "Optional. Integer. Default if not specified is the maximum IOPS the file share can support. Current maximum for a file share is 102,400 IOPS.", + "type": "integer", + "format": "int64" + }, + "x-ms-share-paid-bursting-max-bandwidth-mibps": { + "x-ms-client-name": "PaidBurstingMaxBandwidthMibps", + "description": "Optional. Integer. Default if not specified is the maximum throughput the file share can support. Current maximum for a file share is 10,340 MiB/sec.", + "type": "integer", + "format": "int64" + }, + "x-ms-share-included-burst-iops": { + "x-ms-client-name": "IncludedBurstIops", + "description": "Return the calculated burst IOPS of the share.", + "type": "integer", + "format": "int64" + }, + "x-ms-share-max-burst-credits-for-iops": { + "x-ms-client-name": "MaxBurstCreditsForIops", + "description": "Returned the calculated maximum burst credits. This is not the current burst credit level, but the maximum burst credits the share can have.", + "type": "integer", + "format": "int64" + }, + "x-ms-share-next-allowed-provisioned-iops-downgrade-time": { + "x-ms-client-name": "NextAllowedProvisionedIopsDowngradeTime", + "description": "Returns the current share next allowed provisioned iops downgrade time.", + "type": "string", + "format": "date-time-rfc1123" + }, + "x-ms-share-next-allowed-provisioned-bandwidth-downgrade-time": { + "x-ms-client-name": "NextAllowedProvisionedBandwidthDowngradeTime", + "description": "Returns the current share next allowed provisioned bandwidth downgrade time.", + "type": "string", + "format": "date-time-rfc1123" + }, + "x-ms-enable-smb-directory-lease": { + "x-ms-client-name": "enableSmbDirectoryLease", + "description": "Specifies whether granting of new directory leases for directories present in a share is enabled(allowed) or disabled(blocked). Header is only returned for a SMB Share.", + "type": "boolean" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "delete": { + "tags": [ + "share" + ], + "operationId": "Share_Delete", + "description": "Operation marks the specified share or share snapshot for deletion. The share or share snapshot and any files contained within it are later deleted during garbage collection.", + "parameters": [ + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/DeleteSnapshots" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "202": { + "description": "Accepted", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-file-share-usage-bytes": { + "type": "integer", + "format": "int64", + "description": "Returned only for provisioned v2 file shares. Returns an approximate used storage size of the share, in bytes." + }, + "x-ms-file-share-snapshot-usage-bytes": { + "type": "integer", + "format": "int64", + "description": "Returned only for provisioned v2 file shares. Returns an approximate used snapshot storage size of the share, in bytes." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "share" + ] + } + ] + }, + "/{shareName}?restype=share&comp=lease&acquire": { + "put": { + "tags": [ + "share" + ], + "operationId": "Share_AcquireLease", + "description": "The Lease Share operation establishes and manages a lock on a share, or the specified snapshot for set and delete share operations.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseDuration" + }, + { + "$ref": "#/parameters/ProposedLeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "201": { + "description": "The Acquire operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the share or its properties updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a share's lease" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "acquire" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "share" + ] + } + ] + }, + "/{shareName}?restype=share&comp=lease&release": { + "put": { + "tags": [ + "share" + ], + "operationId": "Share_ReleaseLease", + "description": "The Lease Share operation establishes and manages a lock on a share, or the specified snapshot for set and delete share operations.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "The Release operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the share or its properties updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "release" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "share" + ] + } + ] + }, + "/{shareName}?restype=share&comp=lease&change": { + "put": { + "tags": [ + "share" + ], + "operationId": "Share_ChangeLease", + "description": "The Lease Share operation establishes and manages a lock on a share, or the specified snapshot for set and delete share operations.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/ProposedLeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "The Change operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the share or its properties updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a share's lease" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "change" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "share" + ] + } + ] + }, + "/{shareName}?restype=share&comp=lease&renew": { + "put": { + "tags": [ + "share" + ], + "operationId": "Share_RenewLease", + "description": "The Lease Share operation establishes and manages a lock on a share, or the specified snapshot for set and delete share operations.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "The Renew operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the share or its properties updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a share's lease" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the current share next allowed quota downgrade time." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "renew" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "share" + ] + } + ] + }, + "/{shareName}?restype=share&comp=lease&break": { + "put": { + "tags": [ + "share" + ], + "operationId": "Share_BreakLease", + "description": "The Lease Share operation establishes and manages a lock on a share, or the specified snapshot for set and delete share operations.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseBreakPeriod" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "202": { + "description": "The Break operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the share or its properties updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-lease-time": { + "x-ms-client-name": "LeaseTime", + "type": "integer", + "description": "Approximate time remaining in the lease period, in seconds." + }, + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a share's lease" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "break" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "share" + ] + } + ] + }, + "/{shareName}?restype=share&comp=snapshot": { + "put": { + "tags": [ + "share" + ], + "operationId": "Share_CreateSnapshot", + "description": "Creates a read-only snapshot of a share.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "201": { + "description": "Success, Share snapshot created.", + "headers": { + "x-ms-snapshot": { + "x-ms-client-name": "Snapshot", + "type": "string", + "description": "This header is a DateTime value that uniquely identifies the share snapshot. The value of this header may be used in subsequent requests to access the share snapshot. This value is opaque." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the share snapshot, in quotes. A share snapshot cannot be modified, so the ETag of a given share snapshot never changes. However, if new metadata was supplied with the Snapshot Share request then the ETag of the share snapshot differs from that of the base share. If no metadata was specified with the request, the ETag of the share snapshot is identical to that of the base share at the time the share snapshot was taken." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. A share snapshot cannot be modified, so the last modified time of a given share snapshot never changes. However, if new metadata was supplied with the Snapshot Share request then the last modified time of the share snapshot differs from that of the base share. If no metadata was specified with the request, the last modified time of the share snapshot is identical to that of the base share at the time the share snapshot was taken." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "share" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "snapshot" + ] + } + ] + }, + "/{shareName}?restype=share&comp=filepermission": { + "put": { + "tags": [ + "share" + ], + "operationId": "Share_CreatePermission", + "description": "Create a permission (a security descriptor).", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SharePermission" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "201": { + "description": "Success, Share level permission created.", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-file-permission-key": { + "x-ms-client-name": "FilePermissionKey", + "type": "string", + "description": "Key of the permission set for the directory/file." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "get": { + "tags": [ + "share" + ], + "operationId": "Share_GetPermission", + "description": "Returns the permission (security descriptor) for a given key", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/FilePermissionKeyRequired" + }, + { + "$ref": "#/parameters/FilePermissionFormat" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + }, + "schema": { + "$ref": "#/definitions/SharePermission" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "share" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "filepermission" + ] + } + ] + }, + "/{shareName}?restype=share&comp=properties": { + "put": { + "tags": [ + "share" + ], + "operationId": "Share_SetProperties", + "description": "Sets properties for the specified share.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ShareQuota" + }, + { + "$ref": "#/parameters/AccessTierOptional" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/ShareRootSquash" + }, + { + "$ref": "#/parameters/EnableSnapshotVirtualDirectoryAccess" + }, + { + "$ref": "#/parameters/PaidBurstingEnabled" + }, + { + "$ref": "#/parameters/PaidBurstingMaxBandwidthMibps" + }, + { + "$ref": "#/parameters/PaidBurstingMaxIops" + }, + { + "$ref": "#/parameters/FileRequestIntent" + }, + { + "$ref": "#/parameters/ShareProvisionedIops" + }, + { + "$ref": "#/parameters/ShareProvisionedBandwidthMibps" + }, + { + "$ref": "#/parameters/EnableSmbDirectoryLease" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the share or its properties updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-share-quota": { + "x-ms-client-name": "Quota", + "type": "integer", + "format": "int64", + "description": "Returns the current share quota in GB." + }, + "x-ms-share-provisioned-iops": { + "x-ms-client-name": "ProvisionedIops", + "type": "integer", + "format": "int64", + "description": "Returns the current share provisioned ipos." + }, + "x-ms-share-provisioned-bandwidth-mibps": { + "x-ms-client-name": "ProvisionedBandwidthMibps", + "type": "integer", + "format": "int64", + "description": "Returns the current share provisioned bandwidth in mebibytes per second." + }, + "x-ms-share-included-burst-iops": { + "x-ms-client-name": "IncludedBurstIops", + "description": "Return the calculated burst IOPS of the share.", + "type": "integer", + "format": "int64" + }, + "x-ms-share-max-burst-credits-for-iops": { + "x-ms-client-name": "MaxBurstCreditsForIops", + "description": "Returned the calculated maximum burst credits. This is not the current burst credit level, but the maximum burst credits the share can have.", + "type": "integer", + "format": "int64" + }, + "x-ms-share-next-allowed-quota-downgrade-time": { + "x-ms-client-name": "NextAllowedQuotaDowngradeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the current share next allowed quota downgrade time." + }, + "x-ms-share-next-allowed-provisioned-iops-downgrade-time": { + "x-ms-client-name": "NextAllowedProvisionedIopsDowngradeTime", + "description": "Returns the current share next allowed provisioned iops downgrade time.", + "type": "string", + "format": "date-time-rfc1123" + }, + "x-ms-share-next-allowed-provisioned-bandwidth-downgrade-time": { + "x-ms-client-name": "NextAllowedProvisionedBandwidthDowngradeTime", + "description": "Returns the current share next allowed provisioned bandwidth downgrade time.", + "type": "string", + "format": "date-time-rfc1123" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "share" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "properties" + ] + } + ] + }, + "/{shareName}?restype=share&comp=metadata": { + "put": { + "tags": [ + "share" + ], + "operationId": "Share_SetMetadata", + "description": "Sets one or more user-defined name-value pairs for the specified share.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the share or its properties updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "share" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "metadata" + ] + } + ] + }, + "/{shareName}?restype=share&comp=acl": { + "get": { + "tags": [ + "share" + ], + "operationId": "Share_GetAccessPolicy", + "description": "Returns information about stored access policies specified on the share.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the share or its properties updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + }, + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "put": { + "tags": [ + "share" + ], + "operationId": "Share_SetAccessPolicy", + "description": "Sets a stored access policy for use with shared access signatures.", + "parameters": [ + { + "$ref": "#/parameters/ShareAcl" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the share or its properties updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "share" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "acl" + ] + } + ] + }, + "/{shareName}?restype=share&comp=stats": { + "get": { + "tags": [ + "share" + ], + "operationId": "Share_GetStatistics", + "description": "Retrieves statistics related to the share.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the share or its properties updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + }, + "schema": { + "$ref": "#/definitions/ShareStats" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "share" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "stats" + ] + } + ] + }, + "/{shareName}?restype=share&comp=undelete": { + "put": { + "tags": [ + "share" + ], + "operationId": "Share_Restore", + "description": "Restores a previously deleted Share.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/DeletedShareName" + }, + { + "$ref": "#/parameters/DeletedShareVersion" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "201": { + "description": "Created", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the share or its properties updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-share-quota": { + "x-ms-client-name": "Quota", + "type": "integer", + "format": "int64", + "description": "Returns the current share quota in GB." + }, + "x-ms-share-provisioned-iops": { + "x-ms-client-name": "ProvisionedIops", + "type": "integer", + "format": "int64", + "description": "Returns the current share provisioned ipos." + }, + "x-ms-share-provisioned-bandwidth-mibps": { + "x-ms-client-name": "ProvisionedBandwidthMibps", + "type": "integer", + "format": "int64", + "description": "Returns the current share provisioned bandwidth in mebibytes per second." + }, + "x-ms-share-included-burst-iops": { + "x-ms-client-name": "IncludedBurstIops", + "description": "Return the calculated burst IOPS of the share.", + "type": "integer", + "format": "int64" + }, + "x-ms-share-max-burst-credits-for-iops": { + "x-ms-client-name": "MaxBurstCreditsForIops", + "description": "Returned the calculated maximum burst credits. This is not the current burst credit level, but the maximum burst credits the share can have.", + "type": "integer", + "format": "int64" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "share" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "undelete" + ] + } + ] + }, + "/{shareName}/{directory}?restype=directory": { + "put": { + "tags": [ + "directory" + ], + "operationId": "Directory_Create", + "description": "Creates a new directory under the specified share or parent directory.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/FilePermission" + }, + { + "$ref": "#/parameters/FilePermissionFormat" + }, + { + "$ref": "#/parameters/FilePermissionKey" + }, + { + "$ref": "#/parameters/FileAttributes" + }, + { + "$ref": "#/parameters/FileCreationTime" + }, + { + "$ref": "#/parameters/FileLastWriteTime" + }, + { + "$ref": "#/parameters/FileChangeTime" + }, + { + "$ref": "#/parameters/FileRequestIntent" + }, + { + "$ref": "#/parameters/Owner" + }, + { + "$ref": "#/parameters/Group" + }, + { + "$ref": "#/parameters/FileMode" + }, + { + "$ref": "#/parameters/FilePropertySemantics" + } + ], + "responses": { + "201": { + "description": "Success, Directory created.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the directory, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the directory or its properties updates the last modified time. Operations on files do not affect the last modified time of the directory." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-file-permission-key": { + "x-ms-client-name": "FilePermissionKey", + "type": "string", + "description": "Key of the permission set for the directory." + }, + "x-ms-file-attributes": { + "x-ms-client-name": "FileAttributes", + "type": "string", + "description": "Attributes set for the directory." + }, + "x-ms-file-creation-time": { + "x-ms-client-name": "FileCreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Creation time for the directory." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the directory." + }, + "x-ms-file-change-time": { + "x-ms-client-name": "FileChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Change time for the directory." + }, + "x-ms-file-id": { + "x-ms-client-name": "FileId", + "type": "string", + "description": "The fileId of the directory." + }, + "x-ms-file-parent-id": { + "x-ms-client-name": "FileParentId", + "type": "string", + "description": "The parent fileId of the directory." + }, + "x-ms-mode": { + "x-ms-client-name": "fileMode", + "type": "string", + "description": "NFS only. The mode of the file or directory." + }, + "x-ms-owner": { + "x-ms-client-name": "owner", + "type": "string", + "description": "NFS only. The owner of the file or directory." + }, + "x-ms-group": { + "x-ms-client-name": "group", + "type": "string", + "description": "NFS only. The owning group of the file or directory." + }, + "x-ms-file-file-type": { + "x-ms-client-name": "nfsFileType", + "description": "NFS only. Type of the file or directory.", + "type": "string", + "enum": [ + "Regular", + "Directory", + "SymLink" + ], + "x-ms-enum": { + "name": "NfsFileType", + "modelAsString": true + } + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "get": { + "tags": [ + "directory" + ], + "operationId": "Directory_GetProperties", + "description": "Returns all system properties for the specified directory, and can also be used to check the existence of a directory. The data returned does not include the files in the directory or any subdirectories.", + "parameters": [ + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-meta": { + "type": "string", + "description": "A set of name-value pairs that contain metadata for the directory.", + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the Directory was last modified. Operations on files within the directory do not affect the last modified time of the directory." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the directory metadata is completely encrypted using the specified algorithm. Otherwise, the value is set to false." + }, + "x-ms-file-attributes": { + "x-ms-client-name": "FileAttributes", + "type": "string", + "description": "Attributes set for the directory." + }, + "x-ms-file-creation-time": { + "x-ms-client-name": "FileCreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Creation time for the directory." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the directory." + }, + "x-ms-file-change-time": { + "x-ms-client-name": "FileChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Change time for the directory." + }, + "x-ms-file-permission-key": { + "x-ms-client-name": "FilePermissionKey", + "type": "string", + "description": "Key of the permission set for the directory." + }, + "x-ms-file-id": { + "x-ms-client-name": "FileId", + "type": "string", + "description": "The fileId of the directory." + }, + "x-ms-file-parent-id": { + "x-ms-client-name": "FileParentId", + "type": "string", + "description": "The parent fileId of the directory." + }, + "x-ms-mode": { + "x-ms-client-name": "fileMode", + "type": "string", + "description": "NFS only. The mode of the file or directory." + }, + "x-ms-owner": { + "x-ms-client-name": "owner", + "type": "string", + "description": "NFS only. The owner of the file or directory." + }, + "x-ms-group": { + "x-ms-client-name": "group", + "type": "string", + "description": "NFS only. The owning group of the file or directory." + }, + "x-ms-file-file-type": { + "x-ms-client-name": "nfsFileType", + "description": "NFS only. Type of the file or directory.", + "type": "string", + "enum": [ + "Regular", + "Directory", + "SymLink" + ], + "x-ms-enum": { + "name": "NfsFileType", + "modelAsString": true + } + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "delete": { + "tags": [ + "directory" + ], + "operationId": "Directory_Delete", + "description": "Removes the specified empty directory. Note that the directory must be empty before it can be deleted.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "202": { + "description": "Success (Accepted).", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "directory" + ] + }, + { + "$ref": "#/parameters/AllowTrailingDot" + } + ] + }, + "/{shareName}/{directory}?restype=directory&comp=properties": { + "put": { + "tags": [ + "directory" + ], + "operationId": "Directory_SetProperties", + "description": "Sets properties on the directory.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/FilePermission" + }, + { + "$ref": "#/parameters/FilePermissionFormat" + }, + { + "$ref": "#/parameters/FilePermissionKey" + }, + { + "$ref": "#/parameters/FileAttributes" + }, + { + "$ref": "#/parameters/FileCreationTime" + }, + { + "$ref": "#/parameters/FileLastWriteTime" + }, + { + "$ref": "#/parameters/FileChangeTime" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + }, + { + "$ref": "#/parameters/Owner" + }, + { + "$ref": "#/parameters/Group" + }, + { + "$ref": "#/parameters/FileMode" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the file, in quotes." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the directory was last modified. Any operation that modifies the directory or its properties updates the last modified time. Operations on files do not affect the last modified time of the directory." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-file-permission-key": { + "x-ms-client-name": "FilePermissionKey", + "type": "string", + "description": "Key of the permission set for the directory." + }, + "x-ms-file-attributes": { + "x-ms-client-name": "FileAttributes", + "type": "string", + "description": "Attributes set for the directory." + }, + "x-ms-file-creation-time": { + "x-ms-client-name": "FileCreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Creation time for the directory." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the directory." + }, + "x-ms-file-change-time": { + "x-ms-client-name": "FileChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Change time for the directory." + }, + "x-ms-file-id": { + "x-ms-client-name": "FileId", + "type": "string", + "description": "The fileId of the directory." + }, + "x-ms-file-parent-id": { + "x-ms-client-name": "FileParentId", + "type": "string", + "description": "The parent fileId of the directory." + }, + "x-ms-mode": { + "x-ms-client-name": "fileMode", + "type": "string", + "description": "NFS only. The mode of the file or directory." + }, + "x-ms-owner": { + "x-ms-client-name": "owner", + "type": "string", + "description": "NFS only. The owner of the file or directory." + }, + "x-ms-group": { + "x-ms-client-name": "group", + "type": "string", + "description": "NFS only. The owning group of the file or directory." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "directory" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "properties" + ] + } + ] + }, + "/{shareName}/{directory}?restype=directory&comp=metadata": { + "put": { + "tags": [ + "directory" + ], + "operationId": "Directory_SetMetadata", + "description": "Updates user defined metadata for the specified directory.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success (OK).", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the directory, in quotes." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "directory" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "metadata" + ] + } + ] + }, + "/{shareName}/{directory}?restype=directory&comp=list": { + "get": { + "tags": [ + "directory" + ], + "operationId": "Directory_ListFilesAndDirectoriesSegment", + "description": "Returns a list of files or directories under the specified share or directory. It lists the contents only for a single level of the directory hierarchy.", + "parameters": [ + { + "$ref": "#/parameters/Prefix" + }, + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/MaxResults" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ListFilesInclude" + }, + { + "$ref": "#/parameters/ListFilesExtendedInfo" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "Content-Type": { + "type": "string", + "description": "Specifies the format in which the results are returned. Currently this value is 'application/xml'." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + }, + "schema": { + "$ref": "#/definitions/ListFilesAndDirectoriesSegmentResponse" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "NextMarker" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "directory" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "list" + ] + } + ] + }, + "/{shareName}/{directory}?comp=listhandles": { + "get": { + "tags": [ + "directory" + ], + "operationId": "Directory_ListHandles", + "description": "Lists handles for directory.", + "parameters": [ + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/MaxResults" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/Recursive" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "Content-Type": { + "type": "string", + "description": "Specifies the format in which the results are returned. Currently this value is 'application/xml'." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + }, + "schema": { + "$ref": "#/definitions/ListHandlesResponse" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "listhandles" + ] + } + ] + }, + "/{shareName}/{directory}?comp=forceclosehandles": { + "put": { + "tags": [ + "directory" + ], + "operationId": "Directory_ForceCloseHandles", + "description": "Closes all handles open for given directory.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/HandleId" + }, + { + "$ref": "#/parameters/Recursive" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-marker": { + "x-ms-client-name": "marker", + "type": "string", + "description": "A string describing next handle to be closed. It is returned when more handles need to be closed to complete the request." + }, + "x-ms-number-of-handles-closed": { + "x-ms-client-name": "numberOfHandlesClosed", + "type": "integer", + "description": "Contains count of number of handles closed." + }, + "x-ms-number-of-handles-failed": { + "x-ms-client-name": "numberOfHandlesFailedToClose", + "type": "integer", + "description": "Contains count of number of handles that failed to close." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "forceclosehandles" + ] + } + ] + }, + "/{shareName}/{directory}?restype=directory&comp=rename": { + "put": { + "tags": [ + "directory" + ], + "operationId": "Directory_Rename", + "description": "Renames a directory", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/RenameSource" + }, + { + "$ref": "#/parameters/RenameReplaceIfExists" + }, + { + "$ref": "#/parameters/RenameIgnoreReadOnly" + }, + { + "$ref": "#/parameters/SourceLeaseId" + }, + { + "$ref": "#/parameters/DestinationLeaseId" + }, + { + "$ref": "#/parameters/FileCopyFileAttributes" + }, + { + "$ref": "#/parameters/FileCopyFileCreationTime" + }, + { + "$ref": "#/parameters/FileCopyFileLastWriteTime" + }, + { + "$ref": "#/parameters/FileCopyFileChangeTime" + }, + { + "$ref": "#/parameters/FilePermission" + }, + { + "$ref": "#/parameters/FilePermissionFormat" + }, + { + "$ref": "#/parameters/FilePermissionKey" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/SourceAllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the file, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the directory or its properties updates the last modified time. Operations on files do not affect the last modified time of the directory." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-file-permission-key": { + "x-ms-client-name": "FilePermissionKey", + "type": "string", + "description": "Key of the permission set for the file." + }, + "x-ms-file-attributes": { + "x-ms-client-name": "FileAttributes", + "type": "string", + "description": "Attributes set for the file." + }, + "x-ms-file-creation-time": { + "x-ms-client-name": "FileCreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Creation time for the file." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the file." + }, + "x-ms-file-change-time": { + "x-ms-client-name": "FileChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Change time for the file." + }, + "x-ms-file-id": { + "x-ms-client-name": "FileId", + "type": "string", + "description": "The fileId of the file." + }, + "x-ms-file-parent-id": { + "x-ms-client-name": "FileParentId", + "type": "string", + "description": "The parent fileId of the directory." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "directory" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "rename" + ] + } + ] + }, + "/{shareName}/{directory}/{fileName}": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_Create", + "description": "Creates a new file or replaces a file. Note it only initializes the file with no content.", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "x-ms-content-length", + "x-ms-client-name": "fileContentLength", + "in": "header", + "description": "Specifies the maximum size for the file, up to 4 TB.", + "required": true, + "type": "integer", + "format": "int64" + }, + { + "$ref": "#/parameters/FileType" + }, + { + "$ref": "#/parameters/FileContentType" + }, + { + "$ref": "#/parameters/FileContentEncoding" + }, + { + "$ref": "#/parameters/FileContentLanguage" + }, + { + "$ref": "#/parameters/FileCacheControl" + }, + { + "$ref": "#/parameters/FileContentMD5" + }, + { + "$ref": "#/parameters/FileContentDisposition" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/FilePermission" + }, + { + "$ref": "#/parameters/FilePermissionFormat" + }, + { + "$ref": "#/parameters/FilePermissionKey" + }, + { + "$ref": "#/parameters/FileAttributes" + }, + { + "$ref": "#/parameters/FileCreationTime" + }, + { + "$ref": "#/parameters/FileLastWriteTime" + }, + { + "$ref": "#/parameters/FileChangeTime" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/FileRequestIntent" + }, + { + "$ref": "#/parameters/Owner" + }, + { + "$ref": "#/parameters/Group" + }, + { + "$ref": "#/parameters/FileMode" + }, + { + "$ref": "#/parameters/NfsFileType" + }, + { + "$ref": "#/parameters/ContentMD5" + }, + { + "$ref": "#/parameters/FilePropertySemantics" + }, + { + "$ref": "#/parameters/ContentLengthOptional" + }, + { + "$ref": "#/parameters/OptionalBody" + } + ], + "responses": { + "201": { + "description": "Success, File created.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the file, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the directory or its properties updates the last modified time. Operations on files do not affect the last modified time of the directory." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-file-permission-key": { + "x-ms-client-name": "FilePermissionKey", + "type": "string", + "description": "Key of the permission set for the file." + }, + "x-ms-file-attributes": { + "x-ms-client-name": "FileAttributes", + "type": "string", + "description": "Attributes set for the file." + }, + "x-ms-file-creation-time": { + "x-ms-client-name": "FileCreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Creation time for the file." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the file." + }, + "x-ms-file-change-time": { + "x-ms-client-name": "FileChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Change time for the file." + }, + "x-ms-file-id": { + "x-ms-client-name": "FileId", + "type": "string", + "description": "The fileId of the file." + }, + "x-ms-file-parent-id": { + "x-ms-client-name": "FileParentId", + "type": "string", + "description": "The parent fileId of the file." + }, + "x-ms-mode": { + "x-ms-client-name": "fileMode", + "type": "string", + "description": "NFS only. The mode of the file or directory." + }, + "x-ms-owner": { + "x-ms-client-name": "owner", + "type": "string", + "description": "NFS only. The owner of the file or directory." + }, + "x-ms-group": { + "x-ms-client-name": "group", + "type": "string", + "description": "NFS only. The owning group of the file or directory." + }, + "x-ms-file-file-type": { + "x-ms-client-name": "nfsFileType", + "description": "NFS only. Type of the file or directory.", + "type": "string", + "enum": [ + "Regular", + "Directory", + "SymLink" + ], + "x-ms-enum": { + "name": "NfsFileType", + "modelAsString": true + } + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the file has an MD5 hash and the request is to read the full file, this response header is returned so that the client can check for message content integrity. If the request is to read a specified range and the 'x-ms-range-get-content-md5' is set to true, then the request returns an MD5 hash for the range, as long as the range size is less than or equal to 4 MB. If neither of these sets of conditions is true, then no value is returned for the 'Content-MD5' header." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "get": { + "tags": [ + "file" + ], + "operationId": "File_Download", + "description": "Reads or downloads a file from the system, including its metadata and properties.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/Range" + }, + { + "$ref": "#/parameters/GetRangeContentMD5" + }, + { + "$ref": "#/parameters/StructuredBodyGet" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Succeeded to read the entire file.", + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the file was last modified. Any operation that modifies the file or its properties updates the last modified time." + }, + "x-ms-meta": { + "type": "string", + "description": "A set of name-value pairs associated with this file as user-defined metadata.", + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-Type": { + "type": "string", + "description": "The content type specified for the file. The default content type is 'application/octet-stream'" + }, + "Content-Range": { + "type": "string", + "description": "Indicates the range of bytes returned if the client requested a subset of the file by setting the Range request header." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the file has an MD5 hash and the request is to read the full file, this response header is returned so that the client can check for message content integrity. If the request is to read a specified range and the 'x-ms-range-get-content-md5' is set to true, then the request returns an MD5 hash for the range, as long as the range size is less than or equal to 4 MB. If neither of these sets of conditions is true, then no value is returned for the 'Content-MD5' header." + }, + "Content-Encoding": { + "type": "string", + "description": "Returns the value that was specified for the Content-Encoding request header." + }, + "Cache-Control": { + "type": "string", + "description": "Returned if it was previously specified for the file." + }, + "Content-Disposition": { + "type": "string", + "description": "Returns the value that was specified for the 'x-ms-content-disposition' header and specifies how to process the response." + }, + "Content-Language": { + "type": "string", + "description": "Returns the value that was specified for the Content-Language request header." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial file content." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-copy-completion-time": { + "x-ms-client-name": "CopyCompletionTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Conclusion time of the last attempted Copy File operation where this file was the destination file. This value can specify the time of a completed, aborted, or failed copy attempt." + }, + "x-ms-copy-status-description": { + "x-ms-client-name": "CopyStatusDescription", + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes cause of fatal or non-fatal copy operation failure." + }, + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", + "type": "string", + "description": "String identifier for the last attempted Copy File operation where this file was the destination file." + }, + "x-ms-copy-progress": { + "x-ms-client-name": "CopyProgress", + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy File operation where this file was the destination file. Can show between 0 and Content-Length bytes copied." + }, + "x-ms-copy-source": { + "x-ms-client-name": "CopySource", + "type": "string", + "description": "URL up to 2KB in length that specifies the source file used in the last attempted Copy File operation where this file was the destination file." + }, + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by 'x-ms-copy-id'.", + "type": "string", + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } + }, + "x-ms-content-md5": { + "x-ms-client-name": "FileContentMD5", + "type": "string", + "format": "byte", + "description": "If the file has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole file's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range." + }, + "x-ms-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the file data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the file is unencrypted, or if only parts of the file/application metadata are encrypted)." + }, + "x-ms-file-attributes": { + "x-ms-client-name": "FileAttributes", + "type": "string", + "description": "Attributes set for the file." + }, + "x-ms-file-creation-time": { + "x-ms-client-name": "FileCreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Creation time for the file." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the file." + }, + "x-ms-file-change-time": { + "x-ms-client-name": "FileChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Change time for the file." + }, + "x-ms-file-permission-key": { + "x-ms-client-name": "FilePermissionKey", + "type": "string", + "description": "Key of the permission set for the file." + }, + "x-ms-file-id": { + "x-ms-client-name": "FileId", + "type": "string", + "description": "The fileId of the file." + }, + "x-ms-file-parent-id": { + "x-ms-client-name": "FileParentId", + "type": "string", + "description": "The parent fileId of the file." + }, + "x-ms-lease-duration": { + "x-ms-client-name": "LeaseDuration", + "description": "When a file is leased, specifies whether the lease is of infinite or fixed duration.", + "type": "string", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "modelAsString": false + } + }, + "x-ms-lease-state": { + "x-ms-client-name": "LeaseState", + "description": "Lease state of the file.", + "type": "string", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseStateType", + "modelAsString": false + } + }, + "x-ms-lease-status": { + "x-ms-client-name": "LeaseStatus", + "description": "The current lease status of the file.", + "type": "string", + "enum": [ + "locked", + "unlocked" + ], + "x-ms-enum": { + "name": "LeaseStatusType", + "modelAsString": false + } + }, + "x-ms-structured-body": { + "x-ms-client-name": "StructuredBodyType", + "type": "string", + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." + }, + "x-ms-structured-content-length": { + "x-ms-client-name": "StructuredContentLength", + "type": "integer", + "format": "int64", + "description": "The length of the blob/file content inside the message body when the response body is returned as a structured message. Will always be smaller than Content-Length." + }, + "x-ms-mode": { + "x-ms-client-name": "fileMode", + "type": "string", + "description": "NFS only. The mode of the file or directory." + }, + "x-ms-owner": { + "x-ms-client-name": "owner", + "type": "string", + "description": "NFS only. The owner of the file or directory." + }, + "x-ms-group": { + "x-ms-client-name": "group", + "type": "string", + "description": "NFS only. The owning group of the file or directory." + }, + "x-ms-link-count": { + "x-ms-client-name": "linkCount", + "type": "integer", + "format": "int64", + "description": "NFS only. The link count of the file or directory." + } + }, + "schema": { + "type": "object", + "format": "file" + } + }, + "206": { + "description": "Succeeded to read a specified range of the file.", + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the file was last modified. Any operation that modifies the file or its properties updates the last modified time." + }, + "x-ms-meta": { + "type": "string", + "description": "A set of name-value pairs associated with this file as user-defined metadata.", + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The number of bytes present in the response body." + }, + "Content-Type": { + "type": "string", + "description": "The content type specified for the file. The default content type is 'application/octet-stream'" + }, + "Content-Range": { + "type": "string", + "description": "Indicates the range of bytes returned if the client requested a subset of the file by setting the Range request header." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the file has an MD5 hash and the request is to read the full file, this response header is returned so that the client can check for message content integrity. If the request is to read a specified range and the 'x-ms-range-get-content-md5' is set to true, then the request returns an MD5 hash for the range, as long as the range size is less than or equal to 4 MB. If neither of these sets of conditions is true, then no value is returned for the 'Content-MD5' header." + }, + "Content-Encoding": { + "type": "string", + "description": "Returns the value that was specified for the Content-Encoding request header." + }, + "Cache-Control": { + "type": "string", + "description": "Returned if it was previously specified for the file." + }, + "Content-Disposition": { + "type": "string", + "description": "Returns the value that was specified for the 'x-ms-content-disposition' header and specifies how to process the response." + }, + "Content-Language": { + "type": "string", + "description": "Returns the value that was specified for the Content-Language request header." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Accept-Ranges": { + "type": "string", + "description": "Indicates that the service supports requests for partial file content." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-copy-completion-time": { + "x-ms-client-name": "CopyCompletionTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Conclusion time of the last attempted Copy File operation where this file was the destination file. This value can specify the time of a completed, aborted, or failed copy attempt." + }, + "x-ms-copy-status-description": { + "x-ms-client-name": "CopyStatusDescription", + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes cause of fatal or non-fatal copy operation failure." + }, + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", + "type": "string", + "description": "String identifier for the last attempted Copy File operation where this file was the destination file." + }, + "x-ms-copy-progress": { + "x-ms-client-name": "CopyProgress", + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy File operation where this file was the destination file. Can show between 0 and Content-Length bytes copied." + }, + "x-ms-copy-source": { + "x-ms-client-name": "CopySource", + "type": "string", + "description": "URL up to 2KB in length that specifies the source file used in the last attempted Copy File operation where this file was the destination file." + }, + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by 'x-ms-copy-id'.", + "type": "string", + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } + }, + "x-ms-content-md5": { + "x-ms-client-name": "FileContentMD5", + "type": "string", + "format": "byte", + "description": "If the file has a MD5 hash, and if request contains range header (Range or x-ms-range), this response header is returned with the value of the whole file's MD5 value. This value may or may not be equal to the value returned in Content-MD5 header, with the latter calculated from the requested range." + }, + "x-ms-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the file data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the file is unencrypted, or if only parts of the file/application metadata are encrypted)." + }, + "x-ms-file-attributes": { + "x-ms-client-name": "FileAttributes", + "type": "string", + "description": "Attributes set for the file." + }, + "x-ms-file-creation-time": { + "x-ms-client-name": "FileCreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Creation time for the file." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the file." + }, + "x-ms-file-change-time": { + "x-ms-client-name": "FileChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Change time for the file." + }, + "x-ms-file-permission-key": { + "x-ms-client-name": "FilePermissionKey", + "type": "string", + "description": "Key of the permission set for the file." + }, + "x-ms-file-id": { + "x-ms-client-name": "FileId", + "type": "string", + "description": "The fileId of the file." + }, + "x-ms-file-parent-id": { + "x-ms-client-name": "FileParentId", + "type": "string", + "description": "The parent fileId of the file." + }, + "x-ms-lease-duration": { + "x-ms-client-name": "LeaseDuration", + "description": "When a file is leased, specifies whether the lease is of infinite or fixed duration.", + "type": "string", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "modelAsString": false + } + }, + "x-ms-lease-state": { + "x-ms-client-name": "LeaseState", + "description": "Lease state of the file.", + "type": "string", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseStateType", + "modelAsString": false + } + }, + "x-ms-lease-status": { + "x-ms-client-name": "LeaseStatus", + "description": "The current lease status of the file.", + "type": "string", + "enum": [ + "locked", + "unlocked" + ], + "x-ms-enum": { + "name": "LeaseStatusType", + "modelAsString": false + } + }, + "x-ms-structured-body": { + "x-ms-client-name": "StructuredBodyType", + "type": "string", + "description": "Indicates the response body contains a structured message and specifies the message schema version and properties." + }, + "x-ms-structured-content-length": { + "x-ms-client-name": "StructuredContentLength", + "type": "integer", + "format": "int64", + "description": "The length of the blob/file content inside the message body when the response body is returned as a structured message. Will always be smaller than Content-Length." + }, + "x-ms-mode": { + "x-ms-client-name": "fileMode", + "type": "string", + "description": "NFS only. The mode of the file or directory." + }, + "x-ms-owner": { + "x-ms-client-name": "owner", + "type": "string", + "description": "NFS only. The owner of the file or directory." + }, + "x-ms-group": { + "x-ms-client-name": "group", + "type": "string", + "description": "NFS only. The owning group of the file or directory." + }, + "x-ms-link-count": { + "x-ms-client-name": "linkCount", + "type": "integer", + "format": "int64", + "description": "NFS only. The link count of the file or directory." + } + }, + "schema": { + "type": "object", + "format": "file" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "head": { + "tags": [ + "file" + ], + "operationId": "File_GetProperties", + "description": "Returns all user-defined metadata, standard HTTP properties, and system properties for the file. It does not return the content of the file.", + "parameters": [ + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the file was last modified. The date format follows RFC 1123. Any operation that modifies the file or its properties updates the last modified time." + }, + "x-ms-meta": { + "type": "string", + "description": "A set of name-value pairs associated with this file as user-defined metadata.", + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "x-ms-type": { + "x-ms-client-name": "FileType", + "description": "Returns the type File. Reserved for future use.", + "type": "string", + "enum": [ + "File" + ] + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The size of the file in bytes. This header returns the value of the 'x-ms-content-length' header that is stored with the file." + }, + "Content-Type": { + "type": "string", + "description": "The content type specified for the file. The default content type is 'application/octet-stream'" + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally, in quotes." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "If the Content-MD5 header has been set for the file, the Content-MD5 response header is returned so that the client can check for message content integrity." + }, + "Content-Encoding": { + "type": "string", + "description": "If the Content-Encoding request header has previously been set for the file, the Content-Encoding value is returned in this header." + }, + "Cache-Control": { + "type": "string", + "description": "If the Cache-Control request header has previously been set for the file, the Cache-Control value is returned in this header." + }, + "Content-Disposition": { + "type": "string", + "description": "Returns the value that was specified for the 'x-ms-content-disposition' header and specifies how to process the response." + }, + "Content-Language": { + "type": "string", + "description": "Returns the value that was specified for the Content-Language request header." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-copy-completion-time": { + "x-ms-client-name": "CopyCompletionTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Conclusion time of the last attempted Copy File operation where this file was the destination file. This value can specify the time of a completed, aborted, or failed copy attempt." + }, + "x-ms-copy-status-description": { + "x-ms-client-name": "CopyStatusDescription", + "type": "string", + "description": "Only appears when x-ms-copy-status is failed or pending. Describes cause of fatal or non-fatal copy operation failure." + }, + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", + "type": "string", + "description": "String identifier for the last attempted Copy File operation where this file was the destination file." + }, + "x-ms-copy-progress": { + "x-ms-client-name": "CopyProgress", + "type": "string", + "description": "Contains the number of bytes copied and the total bytes in the source in the last attempted Copy File operation where this file was the destination file. Can show between 0 and Content-Length bytes copied." + }, + "x-ms-copy-source": { + "x-ms-client-name": "CopySource", + "type": "string", + "description": "URL up to 2KB in length that specifies the source file used in the last attempted Copy File operation where this file was the destination file." + }, + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by 'x-ms-copy-id'.", + "type": "string", + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } + }, + "x-ms-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the file data and application metadata are completely encrypted using the specified algorithm. Otherwise, the value is set to false (when the file is unencrypted, or if only parts of the file/application metadata are encrypted)." + }, + "x-ms-file-attributes": { + "x-ms-client-name": "FileAttributes", + "type": "string", + "description": "Attributes set for the file." + }, + "x-ms-file-creation-time": { + "x-ms-client-name": "FileCreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Creation time for the file." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the file." + }, + "x-ms-file-change-time": { + "x-ms-client-name": "FileChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Change time for the file." + }, + "x-ms-file-permission-key": { + "x-ms-client-name": "FilePermissionKey", + "type": "string", + "description": "Key of the permission set for the file." + }, + "x-ms-file-id": { + "x-ms-client-name": "FileId", + "type": "string", + "description": "The fileId of the file." + }, + "x-ms-file-parent-id": { + "x-ms-client-name": "FileParentId", + "type": "string", + "description": "The parent fileId of the file." + }, + "x-ms-lease-duration": { + "x-ms-client-name": "LeaseDuration", + "description": "When a file is leased, specifies whether the lease is of infinite or fixed duration.", + "type": "string", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "modelAsString": false + } + }, + "x-ms-lease-state": { + "x-ms-client-name": "LeaseState", + "description": "Lease state of the file.", + "type": "string", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseStateType", + "modelAsString": false + } + }, + "x-ms-lease-status": { + "x-ms-client-name": "LeaseStatus", + "description": "The current lease status of the file.", + "type": "string", + "enum": [ + "locked", + "unlocked" + ], + "x-ms-enum": { + "name": "LeaseStatusType", + "modelAsString": false + } + }, + "x-ms-mode": { + "x-ms-client-name": "fileMode", + "type": "string", + "description": "NFS only. The mode of the file or directory." + }, + "x-ms-owner": { + "x-ms-client-name": "owner", + "type": "string", + "description": "NFS only. The owner of the file or directory." + }, + "x-ms-group": { + "x-ms-client-name": "group", + "type": "string", + "description": "NFS only. The owning group of the file or directory." + }, + "x-ms-link-count": { + "x-ms-client-name": "linkCount", + "type": "integer", + "format": "int64", + "description": "NFS only. The link count of the file or directory." + }, + "x-ms-file-file-type": { + "x-ms-client-name": "nfsFileType", + "description": "NFS only. Type of the file or directory.", + "type": "string", + "enum": [ + "Regular", + "Directory", + "SymLink" + ], + "x-ms-enum": { + "name": "NfsFileType", + "modelAsString": true + } + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "delete": { + "tags": [ + "file" + ], + "operationId": "File_Delete", + "description": "removes the file from the storage account.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "202": { + "description": "Success (Accepted).", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-link-count": { + "x-ms-client-name": "linkCount", + "type": "integer", + "format": "int64", + "description": "NFS only. The link count of the file or directory." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=properties": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_SetHTTPHeaders", + "description": "Sets HTTP headers on the file.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "x-ms-content-length", + "x-ms-client-name": "fileContentLength", + "in": "header", + "description": "Resizes a file to the specified size. If the specified byte value is less than the current size of the file, then all ranges above the specified byte value are cleared.", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "$ref": "#/parameters/FileContentType" + }, + { + "$ref": "#/parameters/FileContentEncoding" + }, + { + "$ref": "#/parameters/FileContentLanguage" + }, + { + "$ref": "#/parameters/FileCacheControl" + }, + { + "$ref": "#/parameters/FileContentMD5" + }, + { + "$ref": "#/parameters/FileContentDisposition" + }, + { + "$ref": "#/parameters/FilePermission" + }, + { + "$ref": "#/parameters/FilePermissionFormat" + }, + { + "$ref": "#/parameters/FilePermissionKey" + }, + { + "$ref": "#/parameters/FileAttributes" + }, + { + "$ref": "#/parameters/FileCreationTime" + }, + { + "$ref": "#/parameters/FileLastWriteTime" + }, + { + "$ref": "#/parameters/FileChangeTime" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + }, + { + "$ref": "#/parameters/Owner" + }, + { + "$ref": "#/parameters/Group" + }, + { + "$ref": "#/parameters/FileMode" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the file, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the directory was last modified. Any operation that modifies the directory or its properties updates the last modified time. Operations on files do not affect the last modified time of the directory." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-file-permission-key": { + "x-ms-client-name": "FilePermissionKey", + "type": "string", + "description": "Key of the permission set for the file." + }, + "x-ms-file-attributes": { + "x-ms-client-name": "FileAttributes", + "type": "string", + "description": "Attributes set for the file." + }, + "x-ms-file-creation-time": { + "x-ms-client-name": "FileCreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Creation time for the file." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the file." + }, + "x-ms-file-change-time": { + "x-ms-client-name": "FileChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Change time for the file." + }, + "x-ms-file-id": { + "x-ms-client-name": "FileId", + "type": "string", + "description": "The fileId of the directory." + }, + "x-ms-file-parent-id": { + "x-ms-client-name": "FileParentId", + "type": "string", + "description": "The parent fileId of the directory." + }, + "x-ms-mode": { + "x-ms-client-name": "fileMode", + "type": "string", + "description": "NFS only. The mode of the file or directory." + }, + "x-ms-owner": { + "x-ms-client-name": "owner", + "type": "string", + "description": "NFS only. The owner of the file or directory." + }, + "x-ms-group": { + "x-ms-client-name": "group", + "type": "string", + "description": "NFS only. The owning group of the file or directory." + }, + "x-ms-link-count": { + "x-ms-client-name": "linkCount", + "type": "integer", + "format": "int64", + "description": "NFS only. The link count of the file or directory." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "properties" + ] + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=metadata": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_SetMetadata", + "description": "Updates user-defined metadata for the specified file.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success (OK).", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the file, in quotes." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "metadata" + ] + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=lease&acquire": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_AcquireLease", + "description": "[Update] The Lease File operation establishes and manages a lock on a file for write and delete operations", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseDuration" + }, + { + "$ref": "#/parameters/ProposedLeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "201": { + "description": "The Acquire operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the file was last modified. Any operation that modifies the file, including an update of the file's metadata or properties, changes the last-modified time of the file." + }, + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a file's lease" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "acquire" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=lease&release": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_ReleaseLease", + "description": "[Update] The Lease File operation establishes and manages a lock on a file for write and delete operations", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "The Release operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the file was last modified. Any operation that modifies the file, including an update of the file's metadata or properties, changes the last-modified time of the file." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "release" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=lease&change": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_ChangeLease", + "description": "[Update] The Lease File operation establishes and manages a lock on a file for write and delete operations", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdRequired" + }, + { + "$ref": "#/parameters/ProposedLeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "The Change operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the file was last modified. Any operation that modifies the file, including an update of the file's metadata or properties, changes the last-modified time of the file." + }, + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a file's lease" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "change" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=lease&break": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_BreakLease", + "description": "[Update] The Lease File operation establishes and manages a lock on a file for write and delete operations", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "202": { + "description": "The Break operation completed successfully.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the file was last modified. Any operation that modifies the file, including an update of the file's metadata or properties, changes the last-modified time of the file." + }, + "x-ms-lease-id": { + "x-ms-client-name": "LeaseId", + "type": "string", + "description": "Uniquely identifies a file's lease" + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "lease" + ] + }, + { + "name": "x-ms-lease-action", + "x-ms-client-name": "action", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "break" + ], + "x-ms-enum": { + "name": "LeaseAction", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "Describes what lease action to take." + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=range": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_UploadRange", + "description": "Upload a range of bytes to a file.", + "consumes": [ + "application/octet-stream" + ], + "parameters": [ + { + "$ref": "#/parameters/OptionalBody" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "name": "x-ms-range", + "x-ms-client-name": "range", + "in": "header", + "description": "Specifies the range of bytes to be written. Both the start and end of the range must be specified. For an update operation, the range can be up to 4 MB in size. For a clear operation, the range can be up to the value of the file's full size. The File service accepts only a single byte range for the Range and 'x-ms-range' headers, and the byte range must be specified in the following format: bytes=startByte-endByte.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-write", + "x-ms-client-name": "FileRangeWrite", + "in": "header", + "description": "Specify one of the following options: - Update: Writes the bytes specified by the request body into the specified range. The Range and Content-Length headers must match to perform the update. - Clear: Clears the specified range and releases the space used in storage for that range. To clear a range, set the Content-Length header to zero, and set the Range header to a value that indicates the range to clear, up to maximum file size.", + "required": true, + "type": "string", + "enum": [ + "update", + "clear" + ], + "default": "update", + "x-ms-enum": { + "name": "FileRangeWriteType", + "modelAsString": false + } + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/ContentMD5" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/FileLastWriteTimeMode" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + }, + { + "$ref": "#/parameters/StructuredBodyPut" + }, + { + "$ref": "#/parameters/StructuredContentLength" + } + ], + "responses": { + "201": { + "description": "Success (Created).", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the file, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the directory was last modified. Any operation that modifies the share or its properties or metadata updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "Content-MD5": { + "type": "string", + "format": "byte", + "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the File service; it is not necessarily the same value as may have been specified in the request headers." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the file." + }, + "x-ms-structured-body": { + "x-ms-client-name": "StructuredBodyType", + "type": "string", + "description": "Indicates the structured message body was accepted and mirrors back the message schema version and properties." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "range" + ] + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=range&fromURL": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_UploadRangeFromURL", + "description": "Upload a range of bytes to a file where the contents are read from a URL.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/TargetRange" + }, + { + "$ref": "#/parameters/CopySource" + }, + { + "$ref": "#/parameters/SourceRange" + }, + { + "$ref": "#/parameters/FileRangeWriteFromUrl" + }, + { + "$ref": "#/parameters/ContentLength" + }, + { + "$ref": "#/parameters/SourceContentCrc64" + }, + { + "$ref": "#/parameters/SourceIfMatchCrc64" + }, + { + "$ref": "#/parameters/SourceIfNoneMatchCrc64" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/CopySourceAuthorization" + }, + { + "$ref": "#/parameters/FileLastWriteTimeMode" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/SourceAllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "201": { + "description": "Success (Created).", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the file, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the directory was last modified. Any operation that modifies the share or its properties or metadata updates the last modified time. Operations on files do not affect the last modified time of the share." + }, + "x-ms-content-crc64": { + "type": "string", + "format": "byte", + "description": "This header is returned so that the client can check for message content integrity. The value of this header is computed by the File service; it is not necessarily the same value as may have been specified in the request headers." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the file." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + }, + "x-ms-copy-source-error-code": { + "x-ms-client-name": "CopySourceErrorCode", + "type": "string" + }, + "x-ms-copy-source-status-code": { + "x-ms-client-name": "CopySourceStatusCode", + "type": "integer", + "format": "int64" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "range" + ] + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=rangelist": { + "get": { + "tags": [ + "file" + ], + "operationId": "File_GetRangeList", + "description": "Returns the list of valid ranges for a file.", + "parameters": [ + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/PrevShareSnapshot" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "x-ms-range", + "x-ms-client-name": "range", + "in": "header", + "description": "Specifies the range of bytes over which to list ranges, inclusively.", + "required": false, + "type": "string" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + }, + { + "$ref": "#/parameters/SupportRename" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The date/time that the file was last modified. Any operation that modifies the file, including an update of the file's metadata or properties, changes the file's last modified time." + }, + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the file, in quotes." + }, + "x-ms-content-length": { + "x-ms-client-name": "FileContentLength", + "type": "integer", + "format": "int64", + "description": "The size of the file in bytes." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + }, + "schema": { + "$ref": "#/definitions/ShareFileRangeList" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "rangelist" + ] + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=copy": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_StartCopy", + "description": "Copies a blob or file to a destination file within the storage account.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/CopySource" + }, + { + "$ref": "#/parameters/FilePermission" + }, + { + "$ref": "#/parameters/FilePermissionFormat" + }, + { + "$ref": "#/parameters/FilePermissionKey" + }, + { + "$ref": "#/parameters/FileCopyPermissionCopyMode" + }, + { + "$ref": "#/parameters/FileCopyIgnoreReadOnly" + }, + { + "$ref": "#/parameters/FileCopyFileAttributes" + }, + { + "$ref": "#/parameters/FileCopyFileCreationTime" + }, + { + "$ref": "#/parameters/FileCopyFileLastWriteTime" + }, + { + "$ref": "#/parameters/FileCopyFileChangeTime" + }, + { + "$ref": "#/parameters/FileCopySetArchiveAttribute" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/SourceAllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + }, + { + "$ref": "#/parameters/Owner" + }, + { + "$ref": "#/parameters/Group" + }, + { + "$ref": "#/parameters/FileMode" + }, + { + "$ref": "#/parameters/FileCopyModeCopyMode" + }, + { + "$ref": "#/parameters/FileCopyOwnerCopyMode" + } + ], + "responses": { + "202": { + "description": "The copy file has been accepted with the specified copy status.", + "headers": { + "ETag": { + "type": "string", + "description": "If the copy is completed, contains the ETag of the destination file. If the copy is not complete, contains the ETag of the empty file created at the start of the copy." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date/time that the copy operation to the destination file completed." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-copy-id": { + "x-ms-client-name": "CopyId", + "type": "string", + "description": "String identifier for this copy operation. Use with Get File or Get File Properties to check the status of this copy operation, or pass to Abort Copy File to abort a pending copy." + }, + "x-ms-copy-status": { + "x-ms-client-name": "CopyStatus", + "description": "State of the copy operation identified by x-ms-copy-id.", + "type": "string", + "enum": [ + "pending", + "success", + "aborted", + "failed" + ], + "x-ms-enum": { + "name": "CopyStatusType", + "modelAsString": false + } + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + }, + "x-ms-copy-source-error-code": { + "x-ms-client-name": "CopySourceErrorCode", + "type": "string" + }, + "x-ms-copy-source-status-code": { + "x-ms-client-name": "CopySourceStatusCode", + "type": "integer", + "format": "int64" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=copy©id": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_AbortCopy", + "description": "Aborts a pending Copy File operation, and leaves a destination file with zero length and full metadata.", + "parameters": [ + { + "$ref": "#/parameters/CopyId" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/CopyActionAbort" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "204": { + "description": "The delete request was accepted and the file will be deleted.", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "copy" + ] + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=listhandles": { + "get": { + "tags": [ + "file" + ], + "operationId": "File_ListHandles", + "description": "Lists handles for file", + "parameters": [ + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/MaxResults" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "Content-Type": { + "type": "string", + "description": "Specifies the format in which the results are returned. Currently this value is 'application/xml'." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + } + }, + "schema": { + "$ref": "#/definitions/ListHandlesResponse" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "listhandles" + ] + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=forceclosehandles": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_ForceCloseHandles", + "description": "Closes all handles open for given file", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/HandleId" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-marker": { + "x-ms-client-name": "marker", + "type": "string", + "description": "A string describing next handle to be closed. It is returned when more handles need to be closed to complete the request." + }, + "x-ms-number-of-handles-closed": { + "x-ms-client-name": "numberOfHandlesClosed", + "type": "integer", + "description": "Contains count of number of handles closed." + }, + "x-ms-number-of-handles-failed": { + "x-ms-client-name": "numberOfHandlesFailedToClose", + "type": "integer", + "description": "Contains count of number of handles that failed to close." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "forceclosehandles" + ] + } + ] + }, + "/{shareName}/{directory}/{fileName}?comp=rename": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_Rename", + "description": "Renames a file", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/RenameSource" + }, + { + "$ref": "#/parameters/RenameReplaceIfExists" + }, + { + "$ref": "#/parameters/RenameIgnoreReadOnly" + }, + { + "$ref": "#/parameters/SourceLeaseId" + }, + { + "$ref": "#/parameters/DestinationLeaseId" + }, + { + "$ref": "#/parameters/FileCopyFileAttributes" + }, + { + "$ref": "#/parameters/FileCopyFileCreationTime" + }, + { + "$ref": "#/parameters/FileCopyFileLastWriteTime" + }, + { + "$ref": "#/parameters/FileCopyFileChangeTime" + }, + { + "$ref": "#/parameters/FilePermission" + }, + { + "$ref": "#/parameters/FilePermissionFormat" + }, + { + "$ref": "#/parameters/FilePermissionKey" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/FileContentType" + }, + { + "$ref": "#/parameters/AllowTrailingDot" + }, + { + "$ref": "#/parameters/SourceAllowTrailingDot" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the file, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the directory or its properties updates the last modified time. Operations on files do not affect the last modified time of the directory." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-request-server-encrypted": { + "x-ms-client-name": "IsServerEncrypted", + "type": "boolean", + "description": "The value of this header is set to true if the contents of the request are successfully encrypted using the specified algorithm, and false otherwise." + }, + "x-ms-file-permission-key": { + "x-ms-client-name": "FilePermissionKey", + "type": "string", + "description": "Key of the permission set for the file." + }, + "x-ms-file-attributes": { + "x-ms-client-name": "FileAttributes", + "type": "string", + "description": "Attributes set for the file." + }, + "x-ms-file-creation-time": { + "x-ms-client-name": "FileCreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Creation time for the file." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the file." + }, + "x-ms-file-change-time": { + "x-ms-client-name": "FileChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Change time for the file." + }, + "x-ms-file-id": { + "x-ms-client-name": "FileId", + "type": "string", + "description": "The fileId of the file." + }, + "x-ms-file-parent-id": { + "x-ms-client-name": "FileParentId", + "type": "string", + "description": "The parent fileId of the directory." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "rename" + ] + } + ] + }, + "/{shareName}/{directory}/{fileName}?restype=symboliclink": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_CreateSymbolicLink", + "description": "Creates a symbolic link.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/FileCreationTime" + }, + { + "$ref": "#/parameters/FileLastWriteTime" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/Owner" + }, + { + "$ref": "#/parameters/Group" + }, + { + "$ref": "#/parameters/LinkText" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "201": { + "description": "Success, symbolic link created.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the file, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the directory or its properties updates the last modified time. Operations on files do not affect the last modified time of the directory." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-file-creation-time": { + "x-ms-client-name": "FileCreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Creation time for the file." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the file." + }, + "x-ms-file-change-time": { + "x-ms-client-name": "FileChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Change time for the file." + }, + "x-ms-file-id": { + "x-ms-client-name": "FileId", + "type": "string", + "description": "The fileId of the file." + }, + "x-ms-file-parent-id": { + "x-ms-client-name": "FileParentId", + "type": "string", + "description": "The parent fileId of the directory." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-mode": { + "x-ms-client-name": "fileMode", + "type": "string", + "description": "NFS only. The mode of the file or directory." + }, + "x-ms-owner": { + "x-ms-client-name": "owner", + "type": "string", + "description": "NFS only. The owner of the file or directory." + }, + "x-ms-group": { + "x-ms-client-name": "group", + "type": "string", + "description": "NFS only. The owning group of the file or directory." + }, + "x-ms-file-file-type": { + "x-ms-client-name": "nfsFileType", + "description": "NFS only. Type of the file or directory.", + "type": "string", + "enum": [ + "Regular", + "Directory", + "SymLink" + ], + "x-ms-enum": { + "name": "NfsFileType", + "modelAsString": true + } + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "get": { + "tags": [ + "file" + ], + "operationId": "File_GetSymbolicLink", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ShareSnapshot" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "200": { + "description": "Succeeded, read SymLink.", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the file, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the directory or its properties updates the last modified time. Operations on files do not affect the last modified time of the directory." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-link-text": { + "x-ms-client-name": "linkText", + "type": "string", + "description": "The path to the original file, the symbolic link is pointing to. The path is of type string which is not resolved and is stored as is. The path can be absolute path or the relative path depending on the content stored in the symbolic link file." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "symboliclink" + ] + } + ] + }, + "/{shareName}/{directory}/{fileName}?restype=hardlink": { + "put": { + "tags": [ + "file" + ], + "operationId": "File_CreateHardLink", + "description": "Creates a hard link.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/FileType" + }, + { + "$ref": "#/parameters/ClientRequestId" + }, + { + "$ref": "#/parameters/LeaseIdOptional" + }, + { + "$ref": "#/parameters/TargetFile" + }, + { + "$ref": "#/parameters/FileRequestIntent" + } + ], + "responses": { + "201": { + "description": "Success, hard link created", + "headers": { + "ETag": { + "type": "string", + "description": "The ETag contains a value which represents the version of the file, in quotes." + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Returns the date and time the share was last modified. Any operation that modifies the directory or its properties updates the last modified time. Operations on files do not affect the last modified time of the directory." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the File service used to execute the request." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value generated by the service that indicates the time at which the response was initiated." + }, + "x-ms-file-creation-time": { + "x-ms-client-name": "FileCreationTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Creation time for the file." + }, + "x-ms-file-last-write-time": { + "x-ms-client-name": "FileLastWriteTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Last write time for the file." + }, + "x-ms-file-change-time": { + "x-ms-client-name": "FileChangeTime", + "type": "string", + "format": "date-time-rfc1123", + "description": "Change time for the file." + }, + "x-ms-file-id": { + "x-ms-client-name": "FileId", + "type": "string", + "description": "The fileId of the file." + }, + "x-ms-file-parent-id": { + "x-ms-client-name": "FileParentId", + "type": "string", + "description": "The parent fileId of the directory." + }, + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-link-count": { + "x-ms-client-name": "linkCount", + "type": "integer", + "format": "int64", + "description": "NFS only. The link count of the file or directory." + }, + "x-ms-mode": { + "x-ms-client-name": "fileMode", + "type": "string", + "description": "NFS only. The mode of the file or directory." + }, + "x-ms-owner": { + "x-ms-client-name": "owner", + "type": "string", + "description": "NFS only. The owner of the file or directory." + }, + "x-ms-group": { + "x-ms-client-name": "group", + "type": "string", + "description": "NFS only. The owning group of the file or directory." + }, + "x-ms-file-file-type": { + "x-ms-client-name": "nfsFileType", + "description": "NFS only. Type of the file or directory.", + "type": "string", + "enum": [ + "Regular", + "Directory", + "SymLink" + ], + "x-ms-enum": { + "name": "NfsFileType", + "modelAsString": true + } + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ShareName" + }, + { + "$ref": "#/parameters/DirectoryPath" + }, + { + "$ref": "#/parameters/FilePath" + }, + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "hardlink" + ] + } + ] + } + }, + "definitions": { + "AccessRight": { + "description": "Access rights of the access policy.", + "type": "string", + "enum": [ + "Read", + "Write", + "Delete" + ], + "x-ms-enum": { + "name": "AccessRight", + "modelAsString": false + } + }, + "AccessPolicy": { + "description": "An Access policy.", + "type": "object", + "properties": { + "Start": { + "description": "The date-time the policy is active.", + "type": "string", + "format": "date-time" + }, + "Expiry": { + "description": "The date-time the policy expires.", + "type": "string", + "format": "date-time" + }, + "Permission": { + "description": "The permissions for the ACL policy.", + "type": "string" + } + } + }, + "CorsRule": { + "description": "CORS is an HTTP feature that enables a web application running under one domain to access resources in another domain. Web browsers implement a security restriction known as same-origin policy that prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin domain) to call APIs in another domain.", + "type": "object", + "required": [ + "AllowedOrigins", + "AllowedMethods", + "AllowedHeaders", + "ExposedHeaders", + "MaxAgeInSeconds" + ], + "properties": { + "AllowedOrigins": { + "description": "The origin domains that are permitted to make a request against the storage service via CORS. The origin domain is the domain from which the request originates. Note that the origin must be an exact case-sensitive match with the origin that the user age sends to the service. You can also use the wildcard character '*' to allow all origin domains to make requests via CORS.", + "type": "string" + }, + "AllowedMethods": { + "description": "The methods (HTTP request verbs) that the origin domain may use for a CORS request. (comma separated)", + "type": "string" + }, + "AllowedHeaders": { + "description": "The request headers that the origin domain may specify on the CORS request.", + "type": "string" + }, + "ExposedHeaders": { + "description": "The response headers that may be sent in the response to the CORS request and exposed by the browser to the request issuer.", + "type": "string" + }, + "MaxAgeInSeconds": { + "description": "The maximum amount time that a browser should cache the preflight OPTIONS request.", + "type": "integer", + "minimum": 0 + } + } + }, + "ErrorCode": { + "description": "Error codes returned by the service", + "type": "string", + "enum": [ + "AccountAlreadyExists", + "AccountBeingCreated", + "AccountIsDisabled", + "AuthenticationFailed", + "AuthorizationFailure", + "ConditionHeadersNotSupported", + "ConditionNotMet", + "EmptyMetadataKey", + "FileShareProvisionedBandwidthDowngradeNotAllowed", + "FileShareProvisionedIopsDowngradeNotAllowed", + "InsufficientAccountPermissions", + "InternalError", + "InvalidAuthenticationInfo", + "InvalidHeaderValue", + "InvalidHttpVerb", + "InvalidInput", + "InvalidMd5", + "InvalidMetadata", + "InvalidQueryParameterValue", + "InvalidRange", + "InvalidResourceName", + "InvalidUri", + "InvalidXmlDocument", + "InvalidXmlNodeValue", + "Md5Mismatch", + "MetadataTooLarge", + "MissingContentLengthHeader", + "MissingRequiredQueryParameter", + "MissingRequiredHeader", + "MissingRequiredXmlNode", + "MultipleConditionHeadersNotSupported", + "OperationTimedOut", + "OutOfRangeInput", + "OutOfRangeQueryParameterValue", + "RequestBodyTooLarge", + "ResourceTypeMismatch", + "RequestUrlFailedToParse", + "ResourceAlreadyExists", + "ResourceNotFound", + "ServerBusy", + "UnsupportedHeader", + "UnsupportedXmlNode", + "UnsupportedQueryParameter", + "UnsupportedHttpVerb", + "CannotDeleteFileOrDirectory", + "ClientCacheFlushDelay", + "DeletePending", + "DirectoryNotEmpty", + "FileLockConflict", + "InvalidFileOrDirectoryPathName", + "ParentNotFound", + "ReadOnlyAttribute", + "ShareAlreadyExists", + "ShareBeingDeleted", + "ShareDisabled", + "ShareNotFound", + "SharingViolation", + "ShareSnapshotInProgress", + "ShareSnapshotCountExceeded", + "ShareSnapshotOperationNotSupported", + "ShareHasSnapshots", + "PreviousSnapshotNotFound", + "ContainerQuotaDowngradeNotAllowed", + "AuthorizationSourceIPMismatch", + "AuthorizationProtocolMismatch", + "AuthorizationPermissionMismatch", + "AuthorizationServiceMismatch", + "AuthorizationResourceTypeMismatch", + "FeatureVersionMismatch", + "ShareSnapshotNotFound", + "FileShareProvisionedIopsInvalid", + "FileShareProvisionedBandwidthInvalid", + "FileShareProvisionedStorageInvalid", + "TotalSharesProvisionedCapacityExceedsAccountLimit", + "TotalSharesProvisionedIopsExceedsAccountLimit", + "TotalSharesProvisionedBandwidthExceedsAccountLimit", + "TotalSharesCountExceedsAccountLimit" + ], + "x-ms-enum": { + "name": "StorageErrorCode", + "modelAsString": true + } + }, + "FilesAndDirectoriesListSegment": { + "description": "Abstract for entries that can be listed from Directory.", + "type": "object", + "required": [ + "DirectoryItems", + "FileItems" + ], + "properties": { + "DirectoryItems": { + "type": "array", + "items": { + "$ref": "#/definitions/DirectoryItem" + } + }, + "FileItems": { + "type": "array", + "items": { + "$ref": "#/definitions/FileItem" + } + } + }, + "xml": { + "name": "Entries" + } + }, + "DirectoryItem": { + "xml": { + "name": "Directory" + }, + "description": "A listed directory item.", + "type": "object", + "required": [ + "Name" + ], + "properties": { + "Name": { + "$ref": "#/definitions/StringEncoded" + }, + "FileId": { + "type": "string" + }, + "Properties": { + "$ref": "#/definitions/FileProperty" + }, + "Attributes": { + "type": "string" + }, + "PermissionKey": { + "type": "string" + } + } + }, + "FileItem": { + "xml": { + "name": "File" + }, + "description": "A listed file item.", + "type": "object", + "required": [ + "Name", + "Properties" + ], + "properties": { + "Name": { + "$ref": "#/definitions/StringEncoded" + }, + "FileId": { + "type": "string" + }, + "Properties": { + "$ref": "#/definitions/FileProperty" + }, + "Attributes": { + "type": "string" + }, + "PermissionKey": { + "type": "string" + } + } + }, + "StringEncoded": { + "type": "object", + "properties": { + "Encoded": { + "xml": { + "name": "Encoded", + "attribute": true + }, + "type": "boolean" + }, + "content": { + "xml": { + "x-ms-text": true + }, + "type": "string" + } + } + }, + "FileProperty": { + "description": "File properties.", + "type": "object", + "required": [ + "Content-Length" + ], + "properties": { + "Content-Length": { + "description": "Content length of the file. This value may not be up-to-date since an SMB client may have modified the file locally. The value of Content-Length may not reflect that fact until the handle is closed or the op-lock is broken. To retrieve current property values, call Get File Properties.", + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "LastAccessTime": { + "type": "string", + "format": "date-time" + }, + "LastWriteTime": { + "type": "string", + "format": "date-time" + }, + "ChangeTime": { + "type": "string", + "format": "date-time" + }, + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123" + }, + "Etag": { + "type": "string" + } + } + }, + "HandleItem": { + "xml": { + "name": "Handle" + }, + "description": "A listed Azure Storage handle item.", + "type": "object", + "required": [ + "HandleId", + "Path", + "FileId", + "SessionId", + "ClientIp", + "ClientName", + "OpenTime" + ], + "properties": { + "HandleId": { + "type": "string", + "description": "XSMB service handle ID" + }, + "Path": { + "$ref": "#/definitions/StringEncoded" + }, + "FileId": { + "type": "string", + "description": "FileId uniquely identifies the file or directory." + }, + "ParentId": { + "type": "string", + "description": "ParentId uniquely identifies the parent directory of the object." + }, + "SessionId": { + "type": "string", + "description": "SMB session ID in context of which the file handle was opened" + }, + "ClientIp": { + "type": "string", + "description": "Client IP that opened the handle" + }, + "ClientName": { + "type": "string", + "description": "Name of the client machine where the share is being mounted" + }, + "OpenTime": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Time when the session that previously opened the handle has last been reconnected. (UTC)" + }, + "LastReconnectTime": { + "type": "string", + "format": "date-time-rfc1123", + "description": "Time handle was last connected to (UTC)" + }, + "AccessRightList": { + "type": "array", + "items": { + "$ref": "#/definitions/AccessRight" + }, + "xml": { + "wrapped": true + } + } + } + }, + "LeaseDuration": { + "xml": { + "name": "LeaseDuration" + }, + "description": "When a share is leased, specifies whether the lease is of infinite or fixed duration.", + "type": "string", + "enum": [ + "infinite", + "fixed" + ], + "x-ms-enum": { + "name": "LeaseDurationType", + "modelAsString": false + } + }, + "LeaseState": { + "xml": { + "name": "LeaseState" + }, + "description": "Lease state of the share.", + "type": "string", + "enum": [ + "available", + "leased", + "expired", + "breaking", + "broken" + ], + "x-ms-enum": { + "name": "LeaseStateType", + "modelAsString": false + } + }, + "LeaseStatus": { + "xml": { + "name": "LeaseStatus" + }, + "description": "The current lease status of the share.", + "type": "string", + "enum": [ + "locked", + "unlocked" + ], + "x-ms-enum": { + "name": "LeaseStatusType", + "modelAsString": false + } + }, + "ListFilesAndDirectoriesSegmentResponse": { + "xml": { + "name": "EnumerationResults" + }, + "description": "An enumeration of directories and files.", + "type": "object", + "required": [ + "ServiceEndpoint", + "ShareName", + "DirectoryPath", + "Prefix", + "NextMarker", + "Segment" + ], + "properties": { + "ServiceEndpoint": { + "type": "string", + "xml": { + "attribute": true + } + }, + "ShareName": { + "type": "string", + "xml": { + "attribute": true + } + }, + "ShareSnapshot": { + "type": "string", + "xml": { + "attribute": true + } + }, + "Encoded": { + "type": "boolean", + "xml": { + "attribute": true + } + }, + "DirectoryPath": { + "type": "string", + "xml": { + "attribute": true + } + }, + "Prefix": { + "$ref": "#/definitions/StringEncoded" + }, + "Marker": { + "type": "string" + }, + "MaxResults": { + "type": "integer" + }, + "Segment": { + "$ref": "#/definitions/FilesAndDirectoriesListSegment" + }, + "NextMarker": { + "type": "string" + }, + "DirectoryId": { + "type": "string" + } + } + }, + "ListHandlesResponse": { + "xml": { + "name": "EnumerationResults" + }, + "description": "An enumeration of handles.", + "type": "object", + "required": [ + "NextMarker" + ], + "properties": { + "HandleList": { + "type": "array", + "items": { + "$ref": "#/definitions/HandleItem" + }, + "xml": { + "name": "Entries", + "wrapped": true + } + }, + "NextMarker": { + "type": "string" + } + } + }, + "ListSharesResponse": { + "xml": { + "name": "EnumerationResults" + }, + "description": "An enumeration of shares.", + "type": "object", + "required": [ + "ServiceEndpoint", + "NextMarker" + ], + "properties": { + "ServiceEndpoint": { + "type": "string", + "xml": { + "attribute": true + } + }, + "Prefix": { + "type": "string" + }, + "Marker": { + "type": "string" + }, + "MaxResults": { + "type": "integer" + }, + "ShareItems": { + "type": "array", + "items": { + "$ref": "#/definitions/ShareItemInternal" + }, + "xml": { + "name": "Shares", + "wrapped": true + } + }, + "NextMarker": { + "type": "string" + } + } + }, + "Metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "Metrics": { + "description": "Storage Analytics metrics for file service.", + "required": [ + "Version", + "Enabled" + ], + "properties": { + "Version": { + "description": "The version of Storage Analytics to configure.", + "type": "string" + }, + "Enabled": { + "description": "Indicates whether metrics are enabled for the File service.", + "type": "boolean" + }, + "IncludeAPIs": { + "description": "Indicates whether metrics should generate summary statistics for called API operations.", + "type": "boolean" + }, + "RetentionPolicy": { + "$ref": "#/definitions/RetentionPolicy" + } + } + }, + "SmbMultichannel": { + "description": "Settings for SMB multichannel", + "type": "object", + "properties": { + "Enabled": { + "type": "boolean", + "description": "If SMB multichannel is enabled." + } + }, + "xml": { + "name": "Multichannel" + } + }, + "FileRange": { + "description": "An Azure Storage file range.", + "type": "object", + "required": [ + "Start", + "End" + ], + "properties": { + "Start": { + "type": "integer", + "format": "int64", + "description": "Start of the range." + }, + "End": { + "type": "integer", + "format": "int64", + "description": "End of the range." + } + }, + "xml": { + "name": "Range" + } + }, + "ClearRange": { + "type": "object", + "required": [ + "Start", + "End" + ], + "properties": { + "Start": { + "type": "integer", + "format": "int64", + "xml": { + "name": "Start" + } + }, + "End": { + "type": "integer", + "format": "int64", + "xml": { + "name": "End" + } + } + }, + "xml": { + "name": "ClearRange" + } + }, + "ShareProtocolSettings": { + "description": "Protocol settings", + "type": "object", + "xml": { + "name": "ProtocolSettings" + }, + "properties": { + "Smb": { + "description": "Settings for SMB protocol.", + "$ref": "#/definitions/ShareSmbSettings" + }, + "Nfs": { + "description": "Settings for NFS protocol.", + "$ref": "#/definitions/ShareNfsSettings" + } + } + }, + "ShareFileRangeList": { + "description": "The list of file ranges", + "type": "object", + "properties": { + "Ranges": { + "type": "array", + "items": { + "$ref": "#/definitions/FileRange" + } + }, + "ClearRanges": { + "type": "array", + "items": { + "$ref": "#/definitions/ClearRange" + } + } + } + }, + "StorageError": { + "type": "object", + "properties": { + "Message": { + "type": "string" + }, + "CopySourceStatusCode": { + "type": "integer", + "format": "int64" + }, + "CopySourceErrorCode": { + "type": "string" + }, + "CopySourceErrorMessage": { + "type": "string" + }, + "AuthenticationErrorDetail": { + "type": "string" + } + } + }, + "RetentionPolicy": { + "description": "The retention policy.", + "type": "object", + "required": [ + "Enabled" + ], + "properties": { + "Enabled": { + "description": "Indicates whether a retention policy is enabled for the File service. If false, metrics data is retained, and the user is responsible for deleting it.", + "type": "boolean" + }, + "Days": { + "description": "Indicates the number of days that metrics data should be retained. All data older than this value will be deleted. Metrics data is deleted on a best-effort basis after the retention period expires.", + "type": "integer", + "minimum": 1, + "maximum": 365 + } + } + }, + "ShareItemInternal": { + "xml": { + "name": "Share" + }, + "description": "A listed Azure Storage share item.", + "type": "object", + "required": [ + "Name", + "Properties" + ], + "properties": { + "Name": { + "type": "string" + }, + "Snapshot": { + "type": "string" + }, + "Deleted": { + "type": "boolean" + }, + "Version": { + "type": "string" + }, + "Properties": { + "$ref": "#/definitions/SharePropertiesInternal" + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + } + } + }, + "SharePropertiesInternal": { + "description": "Properties of a share.", + "type": "object", + "required": [ + "Last-Modified", + "Etag", + "Quota" + ], + "properties": { + "Last-Modified": { + "type": "string", + "format": "date-time-rfc1123" + }, + "Etag": { + "type": "string" + }, + "Quota": { + "type": "integer" + }, + "ProvisionedIops": { + "type": "integer" + }, + "ProvisionedIngressMBps": { + "type": "integer" + }, + "ProvisionedEgressMBps": { + "type": "integer" + }, + "ProvisionedBandwidthMiBps": { + "type": "integer" + }, + "NextAllowedQuotaDowngradeTime": { + "type": "string", + "format": "date-time-rfc1123" + }, + "DeletedTime": { + "type": "string", + "format": "date-time-rfc1123" + }, + "RemainingRetentionDays": { + "type": "integer" + }, + "AccessTier": { + "type": "string" + }, + "AccessTierChangeTime": { + "type": "string", + "format": "date-time-rfc1123" + }, + "AccessTierTransitionState": { + "type": "string" + }, + "LeaseStatus": { + "$ref": "#/definitions/LeaseStatus" + }, + "LeaseState": { + "$ref": "#/definitions/LeaseState" + }, + "LeaseDuration": { + "$ref": "#/definitions/LeaseDuration" + }, + "EnabledProtocols": { + "$ref": "#/definitions/ShareEnabledProtocols" + }, + "RootSquash": { + "$ref": "#/definitions/ShareRootSquash" + }, + "EnableSnapshotVirtualDirectoryAccess": { + "type": "boolean" + }, + "PaidBurstingEnabled": { + "type": "boolean" + }, + "PaidBurstingMaxIops": { + "type": "integer", + "format": "int64" + }, + "PaidBurstingMaxBandwidthMibps": { + "type": "integer", + "format": "int64" + }, + "IncludedBurstIops": { + "type": "integer", + "format": "int64" + }, + "MaxBurstCreditsForIops": { + "type": "integer", + "format": "int64" + }, + "NextAllowedProvisionedIopsDowngradeTime": { + "type": "string", + "format": "date-time-rfc1123" + }, + "NextAllowedProvisionedBandwidthDowngradeTime": { + "type": "string", + "format": "date-time-rfc1123" + }, + "EnableSmbDirectoryLease": { + "type": "boolean" + } + } + }, + "ShareStats": { + "description": "Stats for the share.", + "type": "object", + "required": [ + "ShareUsageBytes" + ], + "properties": { + "ShareUsageBytes": { + "description": "The approximate size of the data stored in bytes. Note that this value may not include all recently created or recently resized files.", + "type": "integer" + } + } + }, + "SignedIdentifier": { + "description": "Signed identifier.", + "type": "object", + "required": [ + "Id" + ], + "properties": { + "Id": { + "type": "string", + "description": "A unique id." + }, + "AccessPolicy": { + "description": "The access policy.", + "$ref": "#/definitions/AccessPolicy" + } + } + }, + "SignedIdentifiers": { + "description": "A collection of signed identifiers.", + "type": "array", + "items": { + "$ref": "#/definitions/SignedIdentifier", + "xml": { + "name": "SignedIdentifier" + } + }, + "xml": { + "wrapped": true, + "name": "SignedIdentifiers" + } + }, + "ShareSmbSettings": { + "description": "Settings for SMB protocol.", + "type": "object", + "xml": { + "name": "SMB" + }, + "properties": { + "Multichannel": { + "description": "Settings for SMB Multichannel.", + "$ref": "#/definitions/SmbMultichannel" + }, + "EncryptionInTransit": { + "description": "Enable or disable encryption in transit.", + "type": "object", + "properties": { + "Required": { + "description": "If encryption in transit is required", + "type": "boolean" + } + } + } + } + }, + "ShareNfsSettings": { + "description": "Settings for SMB protocol.", + "type": "object", + "xml": { + "name": "NFS" + }, + "properties": { + "EncryptionInTransit": { + "description": "Enable or disable encryption in transit.", + "type": "object", + "properties": { + "Required": { + "description": "If encryption in transit is required", + "type": "boolean" + } + } + } + } + }, + "StorageServiceProperties": { + "description": "Storage service properties.", + "type": "object", + "properties": { + "HourMetrics": { + "description": "A summary of request statistics grouped by API in hourly aggregates for files.", + "$ref": "#/definitions/Metrics" + }, + "MinuteMetrics": { + "description": "A summary of request statistics grouped by API in minute aggregates for files.", + "$ref": "#/definitions/Metrics" + }, + "Cors": { + "description": "The set of CORS rules.", + "type": "array", + "items": { + "$ref": "#/definitions/CorsRule" + }, + "xml": { + "wrapped": true + } + }, + "Protocol": { + "description": "Protocol settings", + "$ref": "#/definitions/ShareProtocolSettings" + } + } + }, + "SharePermission": { + "description": "A permission (a security descriptor) at the share level.", + "type": "object", + "required": [ + "permission" + ], + "properties": { + "permission": { + "type": "string", + "description": "The permission in the Security Descriptor Definition Language (SDDL)." + }, + "format": { + "type": "string", + "enum": [ + "Sddl", + "Binary" + ], + "x-ms-enum": { + "name": "FilePermissionFormat", + "modelAsString": false + } + } + } + }, + "ShareEnabledProtocols": { + "type": "string" + }, + "ShareRootSquash": { + "type": "string", + "enum": [ + "NoRootSquash", + "RootSquash", + "AllSquash" + ], + "x-ms-enum": { + "name": "ShareRootSquash", + "modelAsString": false + } + }, + "KeyInfo": { + "type": "object", + "required": [ + "Expiry" + ], + "description": "Key information", + "properties": { + "Start": { + "description": "The date-time the key is active in ISO 8601 UTC time", + "type": "string" + }, + "Expiry": { + "description": "The date-time the key expires in ISO 8601 UTC time", + "type": "string" + }, + "DelegatedUserTid": { + "description": "The delegated user tenant id in Azure AD", + "type": "string" + } + } + }, + "UserDelegationKey": { + "type": "object", + "required": [ + "SignedOid", + "SignedTid", + "SignedStart", + "SignedExpiry", + "SignedService", + "SignedVersion", + "Value" + ], + "description": "A user delegation key", + "properties": { + "SignedOid": { + "description": "The Azure Active Directory object ID in GUID format.", + "type": "string" + }, + "SignedTid": { + "description": "The Azure Active Directory tenant ID in GUID format", + "type": "string" + }, + "SignedStart": { + "description": "The date-time the key is active", + "type": "string", + "format": "date-time" + }, + "SignedExpiry": { + "description": "The date-time the key expires", + "type": "string", + "format": "date-time" + }, + "SignedService": { + "description": "Abbreviation of the Azure Storage service that accepts the key", + "type": "string" + }, + "SignedVersion": { + "description": "The service version that created the key", + "type": "string" + }, + "SignedDelegatedUserTid": { + "description": "The delegated user tenant id in Azure AD. Return if DelegatedUserTid is specified.", + "type": "string" + }, + "Value": { + "description": "The key as a base64 string", + "type": "string" + } + } + } + }, + "parameters": { + "AccessTierOptional": { + "name": "x-ms-access-tier", + "x-ms-client-name": "accessTier", + "in": "header", + "description": "Specifies the access tier of the share.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "enum": [ + "TransactionOptimized", + "Hot", + "Cool", + "Premium" + ], + "x-ms-enum": { + "name": "ShareAccessTier", + "modelAsString": true + } + }, + "ApiVersionParameter": { + "name": "x-ms-version", + "x-ms-client-name": "version", + "x-ms-parameter-location": "client", + "in": "header", + "description": "Specifies the version of the operation to use for this request.", + "required": true, + "type": "string" + }, + "ClientRequestId": { + "name": "x-ms-client-request-id", + "x-ms-client-name": "requestId", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled." + }, + "ContentLength": { + "name": "Content-Length", + "x-ms-client-name": "contentLength", + "in": "header", + "description": "Specifies the number of bytes being transmitted in the request body. When the x-ms-write header is set to clear, the value of this header must be set to zero.", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method" + }, + "ContentLengthOptional": { + "name": "Content-Length", + "x-ms-client-name": "contentLength", + "in": "header", + "description": "Specifies the number of bytes being transmitted in the request body. When the x-ms-write header is set to clear, the value of this header must be set to zero.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method" + }, + "ContentMD5": { + "name": "Content-MD5", + "x-ms-client-name": "contentMD5", + "in": "header", + "description": "An MD5 hash of the content. This hash is used to verify the integrity of the data during transport. When the Content-MD5 header is specified, the File service compares the hash of the content that has arrived with the header value that was sent. If the two hashes do not match, the operation will fail with error code 400 (Bad Request).", + "required": false, + "type": "string", + "format": "byte", + "x-ms-parameter-location": "method" + }, + "CopyActionAbort": { + "name": "x-ms-copy-action", + "x-ms-client-name": "copyActionAbortConstant", + "in": "header", + "required": true, + "type": "string", + "enum": [ + "abort" + ], + "x-ms-parameter-location": "method", + "description": "Abort." + }, + "CopyId": { + "name": "copyid", + "x-ms-client-name": "copyId", + "in": "query", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "The copy identifier provided in the x-ms-copy-id header of the original Copy File operation." + }, + "CopySource": { + "name": "x-ms-copy-source", + "x-ms-client-name": "copySource", + "in": "header", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Specifies the URL of the source file or blob, up to 2 KB in length. To copy a file to another file within the same storage account, you may use Shared Key to authenticate the source file. If you are copying a file from another storage account, or if you are copying a blob from the same storage account or another storage account, then you must authenticate the source file or blob using a shared access signature. If the source is a public blob, no authentication is required to perform the copy operation. A file in a share snapshot can also be specified as a copy source." + }, + "CopySourceAuthorization": { + "name": "x-ms-copy-source-authorization", + "x-ms-client-name": "copySourceAuthorization", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Only Bearer type is supported. Credentials should be a valid OAuth access token to copy source." + }, + "FileCopyPermissionCopyMode": { + "name": "x-ms-file-permission-copy-mode", + "x-ms-client-name": "filePermissionCopyMode", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "source", + "override" + ], + "x-ms-enum": { + "name": "PermissionCopyModeType", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "copy-file-smb-info" + }, + "description": "Specifies the option to copy file security descriptor from source file or to set it using the value which is defined by the header value of x-ms-file-permission or x-ms-file-permission-key." + }, + "FileCopyIgnoreReadOnly": { + "name": "x-ms-file-copy-ignore-readonly", + "x-ms-client-name": "ignoreReadOnly", + "in": "header", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "copy-file-smb-info" + }, + "description": "Specifies the option to overwrite the target file if it already exists and has read-only attribute set." + }, + "FileCopyFileAttributes": { + "name": "x-ms-file-attributes", + "x-ms-client-name": "fileAttributes", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "copy-file-smb-info" + }, + "description": "Specifies either the option to copy file attributes from a source file(source) to a target file or a list of attributes to set on a target file." + }, + "FileCopyFileCreationTime": { + "name": "x-ms-file-creation-time", + "x-ms-client-name": "fileCreationTime", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "copy-file-smb-info" + }, + "description": "Specifies either the option to copy file creation time from a source file(source) to a target file or a time value in ISO 8601 format to set as creation time on a target file." + }, + "FileCopyFileLastWriteTime": { + "name": "x-ms-file-last-write-time", + "x-ms-client-name": "fileLastWriteTime", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "copy-file-smb-info" + }, + "description": "Specifies either the option to copy file last write time from a source file(source) to a target file or a time value in ISO 8601 format to set as last write time on a target file." + }, + "FileCopyFileChangeTime": { + "name": "x-ms-file-change-time", + "x-ms-client-name": "fileChangeTime", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "copy-file-smb-info" + }, + "description": "Specifies either the option to copy file last write time from a source file(source) to a target file or a time value in ISO 8601 format to set as last write time on a target file." + }, + "FileCopySetArchiveAttribute": { + "name": "x-ms-file-copy-set-archive", + "x-ms-client-name": "setArchiveAttribute", + "in": "header", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "copy-file-smb-info" + }, + "description": "Specifies the option to set archive attribute on a target file. True means archive attribute will be set on a target file despite attribute overrides or a source file state." + }, + "FileCopyModeCopyMode": { + "name": "x-ms-file-mode-copy-mode", + "x-ms-client-name": "fileModeCopyMode", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "source", + "override" + ], + "x-ms-enum": { + "name": "ModeCopyMode", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "NFS only. Applicable only when the copy source is a File. Determines the copy behavior of the mode bits of the file. source: The mode on the destination file is copied from the source file. override: The mode on the destination file is determined via the x-ms-mode header." + }, + "FileCopyOwnerCopyMode": { + "name": "x-ms-file-owner-copy-mode", + "x-ms-client-name": "fileOwnerCopyMode", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "source", + "override" + ], + "x-ms-enum": { + "name": "OwnerCopyMode", + "modelAsString": false + }, + "x-ms-parameter-location": "method", + "description": "NFS only. Determines the copy behavior of the owner user identifier (UID) and group identifier (GID) of the file. source: The owner user identifier (UID) and group identifier (GID) on the destination file is copied from the source file. override: The owner user identifier (UID) and group identifier (GID) on the destination file is determined via the x-ms-owner and x-ms-group headers." + }, + "DeletedShareName": { + "name": "x-ms-deleted-share-name", + "x-ms-client-name": "DeletedShareName", + "description": "Specifies the name of the previously-deleted share.", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "DirectoryPath": { + "name": "directory", + "in": "path", + "description": "The path of the target directory.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-skip-url-encoding": false + }, + "FilePath": { + "name": "fileName", + "in": "path", + "description": "The path of the target file.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-skip-url-encoding": false + }, + "ShareName": { + "name": "shareName", + "in": "path", + "description": "The name of the target share.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "DeletedShareVersion": { + "name": "x-ms-deleted-share-version", + "x-ms-client-name": "DeletedShareVersion", + "description": "Specifies the version of the previously-deleted share.", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "DeleteSnapshots": { + "name": "x-ms-delete-snapshots", + "x-ms-client-name": "deleteSnapshots", + "description": "Specifies the option include to delete the base share and all of its snapshots.", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "include", + "include-leased" + ], + "x-ms-enum": { + "name": "DeleteSnapshotsOptionType", + "modelAsString": false + }, + "x-ms-parameter-location": "method" + }, + "DestinationLeaseId": { + "name": "x-ms-destination-lease-id", + "x-ms-client-name": "destinationLeaseId", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "destination-lease-access-conditions" + }, + "description": "Required if the destination file has an active infinite lease. The lease ID specified for this header must match the lease ID of the destination file. If the request does not include the lease ID or it is not valid, the operation fails with status code 412 (Precondition Failed). If this header is specified and the destination file does not currently have an active lease, the operation will also fail with status code 412 (Precondition Failed)." + }, + "EnableSnapshotVirtualDirectoryAccess": { + "name": "x-ms-enable-snapshot-virtual-directory-access", + "x-ms-client-name": "enableSnapshotVirtualDirectoryAccess", + "in": "header", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method" + }, + "FileAttributes": { + "name": "x-ms-file-attributes", + "x-ms-client-name": "FileAttributes", + "in": "header", + "description": "If specified, the provided file attributes shall be set. Default value: ‘Archive’ for file and ‘Directory’ for directory. ‘None’ can also be specified as default.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "FileCacheControl": { + "name": "x-ms-cache-control", + "x-ms-client-name": "fileCacheControl", + "description": "Sets the file's cache control. The File service stores this value but does not use or modify it.", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "file-HTTP-headers" + } + }, + "FileContentDisposition": { + "name": "x-ms-content-disposition", + "x-ms-client-name": "fileContentDisposition", + "description": "Sets the file's Content-Disposition header.", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "file-HTTP-headers" + } + }, + "FileContentEncoding": { + "name": "x-ms-content-encoding", + "x-ms-client-name": "fileContentEncoding", + "in": "header", + "description": "Specifies which content encodings have been applied to the file.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "file-HTTP-headers" + } + }, + "FileContentLanguage": { + "name": "x-ms-content-language", + "x-ms-client-name": "fileContentLanguage", + "in": "header", + "description": "Specifies the natural languages used by this resource.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "file-HTTP-headers" + } + }, + "FileContentMD5": { + "name": "x-ms-content-md5", + "x-ms-client-name": "fileContentMD5", + "in": "header", + "description": "Sets the file's MD5 hash.", + "required": false, + "type": "string", + "format": "byte", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "file-HTTP-headers" + } + }, + "FileContentType": { + "name": "x-ms-content-type", + "x-ms-client-name": "fileContentType", + "in": "header", + "description": "Sets the MIME content type of the file. The default type is 'application/octet-stream'.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "file-HTTP-headers" + } + }, + "FileCreationTime": { + "name": "x-ms-file-creation-time", + "x-ms-client-name": "FileCreationTime", + "in": "header", + "description": "Creation time for the file/directory. Default value: Now.", + "required": false, + "type": "string", + "format": "date-time-rfc1123", + "x-ms-parameter-location": "method" + }, + "FileLastWriteTime": { + "name": "x-ms-file-last-write-time", + "x-ms-client-name": "FileLastWriteTime", + "in": "header", + "description": "Last write time for the file/directory. Default value: Now.", + "required": false, + "type": "string", + "format": "date-time-rfc1123", + "x-ms-parameter-location": "method" + }, + "FileChangeTime": { + "name": "x-ms-file-change-time", + "x-ms-client-name": "FileChangeTime", + "in": "header", + "description": "Change time for the file/directory. Default value: Now.", + "required": false, + "type": "string", + "format": "date-time-rfc1123", + "x-ms-parameter-location": "method" + }, + "FileLastWriteTimeMode": { + "name": "x-ms-file-last-write-time", + "x-ms-client-name": "FileLastWrittenMode", + "in": "header", + "description": "If the file last write time should be preserved or overwritten", + "required": false, + "x-ms-parameter-location": "method", + "type": "string", + "enum": [ + "Now", + "Preserve" + ], + "x-ms-enum": { + "name": "FileLastWrittenMode", + "modelAsString": false + } + }, + "FilePermission": { + "name": "x-ms-file-permission", + "x-ms-client-name": "FilePermission", + "in": "header", + "description": "If specified the permission (security descriptor) shall be set for the directory/file. This header can be used if Permission size is <= 8KB, else x-ms-file-permission-key header shall be used. Default value: Inherit. If SDDL is specified as input, it must have owner, group and dacl. Note: Only one of the x-ms-file-permission or x-ms-file-permission-key should be specified.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "FilePermissionKey": { + "name": "x-ms-file-permission-key", + "x-ms-client-name": "FilePermissionKey", + "in": "header", + "description": "Key of the permission to be set for the directory/file. Note: Only one of the x-ms-file-permission or x-ms-file-permission-key should be specified.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "FilePermissionFormat": { + "name": "x-ms-file-permission-format", + "x-ms-client-name": "FilePermissionFormat", + "description": "Optional. Available for version 2023-06-01 and later. Specifies the format in which the permission is returned. Acceptable values are SDDL or binary. If x-ms-file-permission-format is unspecified or explicitly set to SDDL, the permission is returned in SDDL format. If x-ms-file-permission-format is explicitly set to binary, the permission is returned as a base64 string representing the binary encoding of the permission", + "in": "header", + "x-ms-parameter-location": "method", + "required": false, + "type": "string", + "enum": [ + "Sddl", + "Binary" + ], + "x-ms-enum": { + "name": "FilePermissionFormat", + "modelAsString": false + } + }, + "FilePermissionKeyRequired": { + "name": "x-ms-file-permission-key", + "x-ms-client-name": "FilePermissionKey", + "in": "header", + "description": "Key of the permission to be set for the directory/file.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "FileRangeWriteFromUrl": { + "name": "x-ms-write", + "x-ms-parameter-location": "client", + "x-ms-client-name": "fileRangeWriteFromUrl", + "in": "header", + "description": "Only update is supported: - Update: Writes the bytes downloaded from the source url into the specified range.", + "required": true, + "type": "string", + "enum": [ + "update" + ], + "default": "update", + "x-ms-enum": { + "name": "FileRangeWriteFromUrlType", + "modelAsString": false + } + }, + "FileRequestIntent": { + "name": "x-ms-file-request-intent", + "x-ms-client-name": "fileRequestIntent", + "in": "header", + "description": "Valid value is backup", + "required": false, + "type": "string", + "enum": [ + "backup" + ], + "x-ms-enum": { + "name": "ShareTokenIntent", + "modelAsString": true + } + }, + "SupportRename": { + "name": "x-ms-file-support-rename", + "x-ms-client-name": "SupportRename", + "in": "header", + "required": false, + "type": "boolean", + "description": "This header is allowed only when PrevShareSnapshot query parameter is set. Determines whether the changed ranges for a file that has been renamed or moved between the target snapshot (or the live file) and the previous snapshot should be listed. If the value is true, the valid changed ranges for the file will be returned. If the value is false, the operation will result in a failure with 409 (Conflict) response. The default value is false.", + "x-ms-parameter-location": "method" + }, + "FileType": { + "name": "x-ms-type", + "x-ms-client-name": "fileTypeConstant", + "in": "header", + "required": true, + "description": "Dummy constant parameter, file type can only be file.", + "type": "string", + "enum": [ + "file" + ], + "x-ms-parameter-location": "method" + }, + "GetRangeContentMD5": { + "name": "x-ms-range-get-content-md5", + "x-ms-client-name": "rangeGetContentMD5", + "in": "header", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "description": "When this header is set to true and specified together with the Range header, the service returns the MD5 hash for the range, as long as the range is less than or equal to 4 MB in size." + }, + "StructuredBodyGet": { + "name": "x-ms-structured-body", + "x-ms-client-name": "StructuredBodyType", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Specifies the response content should be returned as a structured message and specifies the message schema version and properties." + }, + "StructuredBodyPut": { + "name": "x-ms-structured-body", + "x-ms-client-name": "StructuredBodyType", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Required if the request body is a structured message. Specifies the message schema version and properties." + }, + "StructuredContentLength": { + "name": "x-ms-structured-content-length", + "x-ms-client-name": "StructuredContentLength", + "in": "header", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "description": "Required if the request body is a structured message. Specifies the length of the blob/file content inside the message body. Will always be smaller than Content-Length." + }, + "HandleId": { + "name": "x-ms-handle-id", + "x-ms-client-name": "handleId", + "in": "header", + "description": "Specifies handle ID opened on the file or directory to be closed. Asterisk (‘*’) is a wildcard that specifies all handles.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "LeaseBreakPeriod": { + "name": "x-ms-lease-break-period", + "x-ms-client-name": "breakPeriod", + "in": "header", + "required": false, + "type": "integer", + "x-ms-parameter-location": "method", + "description": "For a break operation, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60. This break period is only used if it is shorter than the time remaining on the lease. If longer, the time remaining on the lease is used. A new lease will not be available before the break period has expired, but the lease may be held for longer than the break period. If this header does not appear with a break operation, a fixed-duration lease breaks after the remaining lease period elapses, and an infinite lease breaks immediately." + }, + "LeaseDuration": { + "name": "x-ms-lease-duration", + "x-ms-client-name": "duration", + "in": "header", + "required": false, + "type": "integer", + "x-ms-parameter-location": "method", + "description": "Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. A non-infinite lease can be between 15 and 60 seconds. A lease duration cannot be changed using renew or change." + }, + "LeaseIdOptional": { + "name": "x-ms-lease-id", + "x-ms-client-name": "leaseId", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "lease-access-conditions" + }, + "description": "If specified, the operation only succeeds if the resource's lease is active and matches this ID." + }, + "LeaseIdRequired": { + "name": "x-ms-lease-id", + "x-ms-client-name": "leaseId", + "in": "header", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Specifies the current lease ID on the resource." + }, + "ListFilesInclude": { + "name": "include", + "in": "query", + "description": "Include this parameter to specify one or more datasets to include in the response.", + "required": false, + "type": "array", + "collectionFormat": "csv", + "items": { + "type": "string", + "enum": [ + "Timestamps", + "Etag", + "Attributes", + "PermissionKey" + ], + "x-ms-enum": { + "name": "ListFilesIncludeType", + "modelAsString": false + } + }, + "x-ms-parameter-location": "method" + }, + "ListFilesExtendedInfo": { + "name": "x-ms-file-extended-info", + "x-ms-client-name": "includeExtendedInfo", + "x-ms-parameter-location": "method", + "in": "header", + "type": "boolean", + "required": false, + "description": "Include extended information." + }, + "ListSharesInclude": { + "name": "include", + "in": "query", + "description": "Include this parameter to specify one or more datasets to include in the response.", + "required": false, + "type": "array", + "collectionFormat": "csv", + "items": { + "type": "string", + "enum": [ + "snapshots", + "metadata", + "deleted" + ], + "x-ms-enum": { + "name": "ListSharesIncludeType", + "modelAsString": false + } + }, + "x-ms-parameter-location": "method" + }, + "Marker": { + "name": "marker", + "in": "query", + "description": "A string value that identifies the portion of the list to be returned with the next list operation. The operation returns a marker value within the response body if the list returned was not complete. The marker value may then be used in a subsequent call to request the next set of list items. The marker value is opaque to the client.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "MaxResults": { + "name": "maxresults", + "in": "query", + "description": "Specifies the maximum number of entries to return. If the request does not specify maxresults, or specifies a value greater than 5,000, the server will return up to 5,000 items.", + "required": false, + "type": "integer", + "minimum": 1, + "x-ms-parameter-location": "method" + }, + "Metadata": { + "name": "x-ms-meta", + "x-ms-client-name": "metadata", + "in": "header", + "description": "A name-value pair to associate with a file storage object.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "OptionalBody": { + "name": "optionalbody", + "in": "body", + "description": "Initial data.", + "required": false, + "schema": { + "type": "object", + "format": "file" + }, + "x-ms-parameter-location": "method" + }, + "PaidBurstingEnabled": { + "name": "x-ms-share-paid-bursting-enabled", + "x-ms-client-name": "paidBurstingEnabled", + "description": "Optional. Boolean. Default if not specified is false. This property enables paid bursting.", + "in": "header", + "x-ms-parameter-location": "method", + "required": false, + "type": "boolean" + }, + "PaidBurstingMaxBandwidthMibps": { + "name": "x-ms-share-paid-bursting-max-bandwidth-mibps", + "x-ms-client-name": "PaidBurstingMaxBandwidthMibps", + "description": "Optional. Integer. Default if not specified is the maximum throughput the file share can support. Current maximum for a file share is 10,340 MiB/sec.", + "in": "header", + "x-ms-parameter-location": "method", + "required": false, + "type": "integer", + "format": "int64" + }, + "PaidBurstingMaxIops": { + "name": "x-ms-share-paid-bursting-max-iops", + "x-ms-client-name": "paidBurstingMaxIops", + "description": "Optional. Integer. Default if not specified is the maximum IOPS the file share can support. Current maximum for a file share is 102,400 IOPS.", + "in": "header", + "x-ms-parameter-location": "method", + "required": false, + "type": "integer", + "format": "int64" + }, + "Prefix": { + "name": "prefix", + "in": "query", + "description": "Filters the results to return only entries whose name begins with the specified prefix.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "PrevShareSnapshot": { + "name": "prevsharesnapshot", + "in": "query", + "description": "The previous snapshot parameter is an opaque DateTime value that, when present, specifies the previous snapshot.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "ProposedLeaseIdOptional": { + "name": "x-ms-proposed-lease-id", + "x-ms-client-name": "proposedLeaseId", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Proposed lease ID, in a GUID string format. The File service returns 400 (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID string formats." + }, + "ProposedLeaseIdRequired": { + "name": "x-ms-proposed-lease-id", + "x-ms-client-name": "proposedLeaseId", + "in": "header", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Proposed lease ID, in a GUID string format. The File service returns 400 (Invalid request) if the proposed lease ID is not in the correct format. See Guid Constructor (String) for a list of valid GUID string formats." + }, + "Range": { + "name": "x-ms-range", + "x-ms-client-name": "range", + "in": "header", + "description": "Return file data only from the specified byte range.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "Recursive": { + "name": "x-ms-recursive", + "x-ms-client-name": "recursive", + "in": "header", + "description": "Specifies operation should apply to the directory specified in the URI, its files, its subdirectories and their files.", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method" + }, + "RenameIgnoreReadOnly": { + "name": "x-ms-file-rename-ignore-readonly", + "x-ms-client-name": "ignoreReadOnly", + "in": "header", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "description": "Optional. A boolean value that specifies whether the ReadOnly attribute on a preexisting destination file should be respected. If true, the rename will succeed, otherwise, a previous file at the destination with the ReadOnly attribute set will cause the rename to fail." + }, + "RenameReplaceIfExists": { + "name": "x-ms-file-rename-replace-if-exists", + "x-ms-client-name": "replaceIfExists", + "in": "header", + "required": false, + "type": "boolean", + "x-ms-parameter-location": "method", + "description": "Optional. A boolean value for if the destination file already exists, whether this request will overwrite the file or not. If true, the rename will succeed and will overwrite the destination file. If not provided or if false and the destination file does exist, the request will not overwrite the destination file. If provided and the destination file doesn’t exist, the rename will succeed. Note: This value does not override the x-ms-file-copy-ignore-read-only header value." + }, + "RenameSource": { + "name": "x-ms-file-rename-source", + "x-ms-client-name": "renameSource", + "in": "header", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Required. Specifies the URI-style path of the source file, up to 2 KB in length." + }, + "Url": { + "name": "url", + "x-ms-parameter-location": "client", + "in": "path", + "description": "The URL of the service account, share, directory or file that is the target of the desired operation.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true + }, + "ShareAcl": { + "name": "shareAcl", + "in": "body", + "description": "The ACL for the share.", + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + }, + "x-ms-parameter-location": "method" + }, + "ShareProvisionedIops": { + "name": "x-ms-share-provisioned-iops", + "x-ms-client-name": "shareProvisionedIops", + "in": "header", + "description": "Optional. Supported in version 2025-01-05 and later. Only allowed for provisioned v2 file shares. Specifies the provisioned number of input/output operations per second (IOPS) of the share. If this is not specified, the provisioned IOPS is set to value calculated based on recommendation formula.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method" + }, + "ShareProvisionedBandwidthMibps": { + "name": "x-ms-share-provisioned-bandwidth-mibps", + "x-ms-client-name": "shareProvisionedBandwidthMibps", + "in": "header", + "description": "Optional. Supported in version 2025-01-05 and later. Only allowed for provisioned v2 file shares. Specifies the provisioned bandwidth of the share, in mebibytes per second (MiBps). If this is not specified, the provisioned bandwidth is set to value calculated based on recommendation formula.", + "required": false, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method" + }, + "ShareQuota": { + "name": "x-ms-share-quota", + "x-ms-client-name": "quota", + "in": "header", + "description": "Specifies the maximum size of the share, in gigabytes.", + "required": false, + "type": "integer", + "minimum": 1, + "x-ms-parameter-location": "method" + }, + "ShareSnapshot": { + "name": "sharesnapshot", + "in": "query", + "description": "The snapshot parameter is an opaque DateTime value that, when present, specifies the share snapshot to query.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "SourceContentCrc64": { + "name": "x-ms-source-content-crc64", + "x-ms-client-name": "sourceContentCrc64", + "in": "header", + "required": false, + "type": "string", + "format": "byte", + "x-ms-parameter-location": "method", + "description": "Specify the crc64 calculated for the range of bytes that must be read from the copy source." + }, + "SourceIfMatchCrc64": { + "name": "x-ms-source-if-match-crc64", + "x-ms-client-name": "sourceIfMatchCrc64", + "in": "header", + "required": false, + "type": "string", + "format": "byte", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "source-modified-access-conditions" + }, + "description": "Specify the crc64 value to operate only on range with a matching crc64 checksum." + }, + "SourceIfNoneMatchCrc64": { + "name": "x-ms-source-if-none-match-crc64", + "x-ms-client-name": "sourceIfNoneMatchCrc64", + "in": "header", + "required": false, + "type": "string", + "format": "byte", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "source-modified-access-conditions" + }, + "description": "Specify the crc64 value to operate only on range without a matching crc64 checksum." + }, + "SourceLeaseId": { + "name": "x-ms-source-lease-id", + "x-ms-client-name": "sourceLeaseId", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "x-ms-parameter-grouping": { + "name": "source-lease-access-conditions" + }, + "description": "Required if the source file has an active infinite lease." + }, + "SourceRange": { + "name": "x-ms-source-range", + "x-ms-client-name": "sourceRange", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Bytes of source data in the specified range." + }, + "StorageServiceProperties": { + "name": "StorageServiceProperties", + "in": "body", + "description": "The StorageService properties.", + "required": true, + "schema": { + "$ref": "#/definitions/StorageServiceProperties" + }, + "x-ms-parameter-location": "method" + }, + "TargetRange": { + "name": "x-ms-range", + "x-ms-client-name": "Range", + "in": "header", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Writes data to the specified byte range in the file." + }, + "Timeout": { + "name": "timeout", + "in": "query", + "description": "The timeout parameter is expressed in seconds. For more information, see <a href=\"https://learn.microsoft.com/rest/api/storageservices/Setting-Timeouts-for-File-Service-Operations\">Setting Timeouts for File Service Operations.</a>", + "required": false, + "type": "integer", + "minimum": 0, + "x-ms-parameter-location": "method" + }, + "SharePermission": { + "name": "sharePermission", + "in": "body", + "description": "A permission (a security descriptor) at the share level.", + "required": true, + "schema": { + "$ref": "#/definitions/SharePermission" + }, + "x-ms-parameter-location": "method" + }, + "ShareEnabledProtocols": { + "name": "x-ms-enabled-protocols", + "description": "Protocols to enable on the share.", + "x-ms-client-name": "enabledProtocols", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "ShareRootSquash": { + "name": "x-ms-root-squash", + "description": "Root squash to set on the share. Only valid for NFS shares.", + "x-ms-client-name": "rootSquash", + "in": "header", + "required": false, + "type": "string", + "enum": [ + "NoRootSquash", + "RootSquash", + "AllSquash" + ], + "x-ms-enum": { + "name": "ShareRootSquash", + "modelAsString": false + }, + "x-ms-parameter-location": "method" + }, + "AllowTrailingDot": { + "name": "x-ms-allow-trailing-dot", + "description": "If true, the trailing dot will not be trimmed from the target URI.", + "x-ms-client-name": "allowTrailingDot", + "in": "header", + "required": false, + "type": "boolean" + }, + "SourceAllowTrailingDot": { + "name": "x-ms-source-allow-trailing-dot", + "description": "If true, the trailing dot will not be trimmed from the source URI.", + "x-ms-client-name": "allowSourceTrailingDot", + "in": "header", + "required": false, + "type": "boolean" + }, + "Owner": { + "name": "x-ms-owner", + "x-ms-client-name": "owner", + "in": "header", + "required": false, + "type": "string", + "description": "Optional, NFS only. The owner of the file or directory.", + "x-ms-parameter-location": "method" + }, + "Group": { + "name": "x-ms-group", + "x-ms-client-name": "group", + "in": "header", + "required": false, + "type": "string", + "description": "Optional, NFS only. The owning group of the file or directory.", + "x-ms-parameter-location": "method" + }, + "FileMode": { + "name": "x-ms-mode", + "x-ms-client-name": "fileMode", + "in": "header", + "required": false, + "type": "string", + "description": "Optional, NFS only. The file mode of the file or directory", + "x-ms-parameter-location": "method" + }, + "NfsFileType": { + "name": "x-ms-file-file-type", + "x-ms-client-name": "nfsFileType", + "in": "header", + "required": false, + "description": "Optional, NFS only. Type of the file or directory.", + "type": "string", + "enum": [ + "Regular", + "Directory", + "SymLink" + ], + "x-ms-enum": { + "name": "NfsFileType", + "modelAsString": true + }, + "x-ms-parameter-location": "method" + }, + "LinkText": { + "name": "x-ms-link-text", + "x-ms-client-name": "linkText", + "in": "header", + "required": true, + "description": "NFS only. Required. The path to the original file, the symbolic link is pointing to. The path is of type string which is not resolved and is stored as is. The path can be absolute path or the relative path depending on the content stored in the symbolic link file.", + "type": "string", + "x-ms-parameter-location": "method" + }, + "TargetFile": { + "name": "x-ms-file-target-file", + "x-ms-client-name": "targetFile", + "in": "header", + "required": true, + "description": "NFS only. Required. Specifies the path of the target file to which the link will be created, up to 2 KiB in length. It should be full path of the target from the root.The target file must be in the same share and hence the same storage account.", + "type": "string", + "x-ms-parameter-location": "method" + }, + "KeyInfo": { + "description": "Key information", + "name": "KeyInfo", + "in": "body", + "x-ms-parameter-location": "method", + "required": true, + "schema": { + "$ref": "#/definitions/KeyInfo" + } + }, + "EnableSmbDirectoryLease": { + "name": "x-ms-enable-smb-directory-lease", + "x-ms-client-name": "enableSmbDirectoryLease", + "in": "header", + "required": false, + "description": "SMB only, default is true. Specifies whether granting of new directory leases for directories present in a share are to be enabled or disabled. An input of true specifies that granting of new directory leases is to be allowed. An input of false specifies that granting of new directory leases is to be blocked.", + "type": "boolean", + "x-ms-parameter-location": "method" + }, + "FilePropertySemantics": { + "name": "x-ms-file-property-semantics", + "x-ms-client-name": "filePropertySemantics", + "in": "header", + "required": false, + "description": "SMB only, default value is New. New will forcefully add the ARCHIVE attribute flag and alter the permissions specified in x-ms-file-permission to inherit missing permissions from the parent. Restore will apply changes without further modification.", + "type": "string", + "enum": [ + "New", + "Restore" + ], + "x-ms-enum": { + "name": "FilePropertySemantics", + "modelAsString": true + }, + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/storage/data-plane/Microsoft.QueueStorage/readme.md b/specification/storage/data-plane/Microsoft.QueueStorage/readme.md index 44fe627160e6..9e5080112585 100644 --- a/specification/storage/data-plane/Microsoft.QueueStorage/readme.md +++ b/specification/storage/data-plane/Microsoft.QueueStorage/readme.md @@ -25,7 +25,7 @@ These are the global settings for the QueueStorage API. ``` yaml openapi-type: data-plane -tag: package-2026-02 +tag: package-2026-04 use-internal-constructors: true add-credentials: true ``` @@ -57,6 +57,15 @@ input-file: - stable/2026-02-06/queue.json ``` +### Tag: package-2026-04 + +These settings apply only when `--tag=package-2026-04` is specified on the command line. + +``` yaml $(tag) == 'package-2026-04' +input-file: +- stable/2026-04-06/queue.json +``` + ### Suppression ``` yaml directive: diff --git a/specification/storage/data-plane/Microsoft.QueueStorage/stable/2026-04-06/queue.json b/specification/storage/data-plane/Microsoft.QueueStorage/stable/2026-04-06/queue.json new file mode 100644 index 000000000000..e01de7698e3c --- /dev/null +++ b/specification/storage/data-plane/Microsoft.QueueStorage/stable/2026-04-06/queue.json @@ -0,0 +1,2070 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Queue Storage", + "version": "2026-04-06", + "x-ms-code-generation-settings": { + "header": "MIT", + "strictSpecAdherence": false + } + }, + "x-ms-parameterized-host": { + "hostTemplate": "{url}", + "useSchemePrefix": false, + "positionInOperation": "first", + "parameters": [ + { + "$ref": "#/parameters/Url" + } + ] + }, + "securityDefinitions": { + "queue_shared_key": { + "type": "apiKey", + "name": "Authorization", + "in": "header" + } + }, + "schemes": [ + "https" + ], + "consumes": [ + "application/xml" + ], + "produces": [ + "application/xml" + ], + "paths": {}, + "x-ms-paths": { + "/?restype=service&comp=properties": { + "put": { + "tags": [ + "service" + ], + "operationId": "Service_SetProperties", + "description": "Sets properties for a storage account's Queue service endpoint, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules", + "parameters": [ + { + "$ref": "#/parameters/StorageServiceProperties" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "202": { + "description": "Success (Accepted)", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "get": { + "tags": [ + "service" + ], + "operationId": "Service_GetProperties", + "description": "gets the properties of a storage account's Queue service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + } + }, + "schema": { + "$ref": "#/definitions/StorageServiceProperties" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "service" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "properties" + ] + } + ] + }, + "/?restype=service&comp=stats": { + "get": { + "tags": [ + "service" + ], + "operationId": "Service_GetStatistics", + "description": "Retrieves statistics related to replication for the Queue service. It is only available on the secondary location endpoint when read-access geo-redundant replication is enabled for the storage account.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/StorageServiceStats" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "service" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "stats" + ] + } + ] + }, + "/?restype=service&comp=userdelegationkey": { + "post": { + "tags": [ + "service" + ], + "operationId": "Service_GetUserDelegationKey", + "description": "Retrieves a user delegation key for the Queue service. This is only a valid operation when using bearer token authentication.", + "parameters": [ + { + "$ref": "#/parameters/KeyInfo" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-client-request-id": { + "x-ms-client-name": "ClientRequestId", + "type": "string", + "description": "If a client request id header is sent in the request, this header will be present in the response with the same value." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/UserDelegationKey" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "name": "restype", + "description": "restype", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "service" + ] + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "userdelegationkey" + ] + } + ] + }, + "/?comp=list": { + "get": { + "tags": [ + "service" + ], + "operationId": "Service_ListQueuesSegment", + "description": "The List Queues Segment operation returns a list of the queues under the specified account", + "parameters": [ + { + "$ref": "#/parameters/Prefix" + }, + { + "$ref": "#/parameters/Marker" + }, + { + "$ref": "#/parameters/MaxResults" + }, + { + "$ref": "#/parameters/ListQueuesInclude" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/ListQueuesSegmentResponse" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "NextMarker" + } + }, + "parameters": [ + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "list" + ] + } + ] + }, + "/{queueName}": { + "put": { + "tags": [ + "service" + ], + "operationId": "Queue_Create", + "description": "creates a new queue under the given account.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "201": { + "description": "Success, queue created.", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "204": { + "description": "Success, queue created.", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "delete": { + "tags": [ + "queue" + ], + "operationId": "Queue_Delete", + "description": "operation permanently deletes the specified queue", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "204": { + "description": "No Content", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/QueueName" + } + ] + }, + "/{queueName}?comp=metadata": { + "get": { + "tags": [ + "queue" + ], + "operationId": "Queue_GetProperties", + "description": "Retrieves user-defined metadata and queue properties on the specified queue. Metadata is associated with the queue as name-values pairs.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success.", + "headers": { + "x-ms-meta": { + "type": "string", + "x-ms-client-name": "Metadata", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "x-ms-approximate-messages-count": { + "type": "integer", + "format": "int64", + "x-ms-client-name": "ApproximateMessagesCount", + "description": "The approximate number of messages in the queue. This number is not lower than the actual number of messages in the queue, but could be higher." + }, + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "put": { + "tags": [ + "queue" + ], + "operationId": "Queue_SetMetadata", + "description": "sets user-defined metadata on the specified queue. Metadata is associated with the queue as name-value pairs.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/Metadata" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "204": { + "description": "No Content", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/QueueName" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "metadata" + ] + } + ] + }, + "/{queueName}?comp=acl": { + "get": { + "tags": [ + "queue" + ], + "operationId": "Queue_GetAccessPolicy", + "description": "returns details about any stored access policies specified on the queue that may be used with Shared Access Signatures.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "put": { + "tags": [ + "queue" + ], + "operationId": "Queue_SetAccessPolicy", + "description": "sets stored access policies for the queue that may be used with Shared Access Signatures", + "parameters": [ + { + "$ref": "#/parameters/QueueAcl" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "204": { + "description": "No Content", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/QueueName" + }, + { + "name": "comp", + "description": "comp", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "acl" + ] + } + ] + }, + "/{queueName}/messages": { + "get": { + "tags": [ + "message" + ], + "operationId": "Messages_Dequeue", + "description": "The Dequeue operation retrieves one or more messages from the front of the queue.", + "parameters": [ + { + "$ref": "#/parameters/NumOfMessages" + }, + { + "$ref": "#/parameters/VisibilityTimeout" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/DequeuedMessagesList" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "delete": { + "tags": [ + "message" + ], + "operationId": "Messages_Clear", + "description": "The Clear operation deletes all messages from the specified queue.", + "parameters": [ + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "204": { + "description": "No Content", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "post": { + "tags": [ + "message" + ], + "operationId": "Messages_Enqueue", + "description": "The Enqueue operation adds a new message to the back of the message queue. A visibility timeout can also be specified to make the message invisible until the visibility timeout expires. A message must be in a format that can be included in an XML request with UTF-8 encoding. The encoded message can be up to 64 KB in size for versions 2011-08-18 and newer, or 8 KB in size for previous versions.", + "parameters": [ + { + "$ref": "#/parameters/RequiredQueueMessage" + }, + { + "$ref": "#/parameters/VisibilityTimeoutForEnqueue" + }, + { + "$ref": "#/parameters/MessageTTL" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "201": { + "description": "Created", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/EnqueuedMessageList" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/QueueName" + } + ] + }, + "/{queueName}/messages?peekonly=true": { + "get": { + "tags": [ + "message" + ], + "operationId": "Messages_Peek", + "description": "The Peek operation retrieves one or more messages from the front of the queue, but does not alter the visibility of the message.", + "parameters": [ + { + "$ref": "#/parameters/NumOfMessages" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + }, + "schema": { + "$ref": "#/definitions/PeekedMessagesList" + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/QueueName" + }, + { + "name": "peekonly", + "description": "Peek message(s).", + "in": "query", + "required": true, + "type": "string", + "enum": [ + "true" + ] + } + ] + }, + "/{queueName}/messages/{messageid}": { + "put": { + "tags": [ + "messageId" + ], + "operationId": "MessageId_Update", + "description": "The Update operation was introduced with version 2011-08-18 of the Queue service API. The Update Message operation updates the visibility timeout of a message. You can also use this operation to update the contents of a message. A message must be in a format that can be included in an XML request with UTF-8 encoding, and the encoded message can be up to 64KB in size.", + "parameters": [ + { + "$ref": "#/parameters/QueueMessage" + }, + { + "$ref": "#/parameters/PopReceipt" + }, + { + "$ref": "#/parameters/VisibilityTimeoutRequired" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "204": { + "description": "No Content", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + }, + "x-ms-popreceipt": { + "x-ms-client-name": "PopReceipt", + "type": "string", + "description": "The pop receipt of the queue message." + }, + "x-ms-time-next-visible": { + "x-ms-client-name": "TimeNextVisible", + "type": "string", + "format": "date-time-rfc1123", + "description": "A UTC date/time value that represents when the message will be visible on the queue." + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "delete": { + "tags": [ + "messageId" + ], + "operationId": "MessageId_Delete", + "description": "The Delete operation deletes the specified message.", + "parameters": [ + { + "$ref": "#/parameters/PopReceipt" + }, + { + "$ref": "#/parameters/Timeout" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/ClientRequestId" + } + ], + "responses": { + "204": { + "description": "No Content", + "headers": { + "x-ms-request-id": { + "x-ms-client-name": "RequestId", + "type": "string", + "description": "This header uniquely identifies the request that was made and can be used for troubleshooting the request." + }, + "x-ms-version": { + "x-ms-client-name": "Version", + "type": "string", + "description": "Indicates the version of the Queue service used to execute the request. This header is returned for requests made against version 2009-09-19 and above." + }, + "Date": { + "type": "string", + "format": "date-time-rfc1123", + "description": "UTC date/time value generated by the service that indicates the time at which the response was initiated" + } + } + }, + "default": { + "description": "Failure", + "headers": { + "x-ms-error-code": { + "x-ms-client-name": "ErrorCode", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/StorageError" + } + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/QueueName" + }, + { + "$ref": "#/parameters/MessageId" + } + ] + } + }, + "definitions": { + "AccessPolicy": { + "type": "object", + "description": "An Access policy", + "properties": { + "Start": { + "description": "the date-time the policy is active", + "type": "string", + "format": "date-time" + }, + "Expiry": { + "description": "the date-time the policy expires", + "type": "string", + "format": "date-time" + }, + "Permission": { + "description": "the permissions for the acl policy", + "type": "string" + } + } + }, + "ListQueuesSegmentResponse": { + "xml": { + "name": "EnumerationResults" + }, + "description": "The object returned when calling List Queues on a Queue Service.", + "type": "object", + "required": [ + "ServiceEndpoint", + "Prefix", + "MaxResults", + "NextMarker" + ], + "properties": { + "ServiceEndpoint": { + "type": "string", + "xml": { + "attribute": true + } + }, + "Prefix": { + "type": "string" + }, + "Marker": { + "type": "string" + }, + "MaxResults": { + "type": "integer" + }, + "QueueItems": { + "xml": { + "wrapped": true, + "name": "Queues" + }, + "type": "array", + "items": { + "$ref": "#/definitions/QueueItem" + } + }, + "NextMarker": { + "type": "string" + } + } + }, + "CorsRule": { + "description": "CORS is an HTTP feature that enables a web application running under one domain to access resources in another domain. Web browsers implement a security restriction known as same-origin policy that prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin domain) to call APIs in another domain", + "type": "object", + "required": [ + "AllowedOrigins", + "AllowedMethods", + "AllowedHeaders", + "ExposedHeaders", + "MaxAgeInSeconds" + ], + "properties": { + "AllowedOrigins": { + "description": "The origin domains that are permitted to make a request against the storage service via CORS. The origin domain is the domain from which the request originates. Note that the origin must be an exact case-sensitive match with the origin that the user age sends to the service. You can also use the wildcard character '*' to allow all origin domains to make requests via CORS.", + "type": "string" + }, + "AllowedMethods": { + "description": "The methods (HTTP request verbs) that the origin domain may use for a CORS request. (comma separated)", + "type": "string" + }, + "AllowedHeaders": { + "description": "the request headers that the origin domain may specify on the CORS request.", + "type": "string" + }, + "ExposedHeaders": { + "description": "The response headers that may be sent in the response to the CORS request and exposed by the browser to the request issuer", + "type": "string" + }, + "MaxAgeInSeconds": { + "description": "The maximum amount time that a browser should cache the preflight OPTIONS request.", + "type": "integer", + "minimum": 0 + } + } + }, + "ErrorCode": { + "description": "Error codes returned by the service", + "type": "string", + "enum": [ + "AccountAlreadyExists", + "AccountBeingCreated", + "AccountIsDisabled", + "AuthenticationFailed", + "AuthorizationFailure", + "ConditionHeadersNotSupported", + "ConditionNotMet", + "EmptyMetadataKey", + "InsufficientAccountPermissions", + "InternalError", + "InvalidAuthenticationInfo", + "InvalidHeaderValue", + "InvalidHttpVerb", + "InvalidInput", + "InvalidMd5", + "InvalidMetadata", + "InvalidQueryParameterValue", + "InvalidRange", + "InvalidResourceName", + "InvalidUri", + "InvalidXmlDocument", + "InvalidXmlNodeValue", + "Md5Mismatch", + "MetadataTooLarge", + "MissingContentLengthHeader", + "MissingRequiredQueryParameter", + "MissingRequiredHeader", + "MissingRequiredXmlNode", + "MultipleConditionHeadersNotSupported", + "OperationTimedOut", + "OutOfRangeInput", + "OutOfRangeQueryParameterValue", + "RequestBodyTooLarge", + "ResourceTypeMismatch", + "RequestUrlFailedToParse", + "ResourceAlreadyExists", + "ResourceNotFound", + "ServerBusy", + "UnsupportedHeader", + "UnsupportedXmlNode", + "UnsupportedQueryParameter", + "UnsupportedHttpVerb", + "InvalidMarker", + "MessageNotFound", + "MessageTooLarge", + "PopReceiptMismatch", + "QueueAlreadyExists", + "QueueBeingDeleted", + "QueueDisabled", + "QueueNotEmpty", + "QueueNotFound", + "AuthorizationSourceIPMismatch", + "AuthorizationProtocolMismatch", + "AuthorizationPermissionMismatch", + "AuthorizationServiceMismatch", + "AuthorizationResourceTypeMismatch", + "FeatureVersionMismatch" + ], + "x-ms-enum": { + "name": "StorageErrorCode", + "modelAsString": true + } + }, + "GeoReplication": { + "type": "object", + "required": [ + "Status", + "LastSyncTime" + ], + "properties": { + "Status": { + "description": "The status of the secondary location", + "type": "string", + "enum": [ + "live", + "bootstrap", + "unavailable" + ], + "x-ms-enum": { + "name": "GeoReplicationStatusType", + "modelAsString": true + } + }, + "LastSyncTime": { + "description": "A GMT date/time value, to the second. All primary writes preceding this value are guaranteed to be available for read operations at the secondary. Primary writes after this point in time may or may not be available for reads.", + "type": "string", + "format": "date-time-rfc1123" + } + } + }, + "Logging": { + "description": "Azure Analytics Logging settings.", + "type": "object", + "required": [ + "Version", + "Delete", + "Read", + "Write", + "RetentionPolicy" + ], + "properties": { + "Version": { + "description": "The version of Storage Analytics to configure.", + "type": "string" + }, + "Delete": { + "description": "Indicates whether all delete requests should be logged.", + "type": "boolean" + }, + "Read": { + "description": "Indicates whether all read requests should be logged.", + "type": "boolean" + }, + "Write": { + "description": "Indicates whether all write requests should be logged.", + "type": "boolean" + }, + "RetentionPolicy": { + "$ref": "#/definitions/RetentionPolicy" + } + } + }, + "Metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "StorageError": { + "type": "object", + "properties": { + "Message": { + "type": "string" + } + } + }, + "Metrics": { + "description": "a summary of request statistics grouped by API in hour or minute aggregates for queues", + "required": [ + "Enabled" + ], + "properties": { + "Version": { + "description": "The version of Storage Analytics to configure.", + "type": "string" + }, + "Enabled": { + "description": "Indicates whether metrics are enabled for the Queue service.", + "type": "boolean" + }, + "IncludeAPIs": { + "description": "Indicates whether metrics should generate summary statistics for called API operations.", + "type": "boolean" + }, + "RetentionPolicy": { + "$ref": "#/definitions/RetentionPolicy" + } + } + }, + "QueueItem": { + "description": "An Azure Storage Queue.", + "type": "object", + "required": [ + "Name" + ], + "properties": { + "Name": { + "type": "string", + "description": "The name of the Queue." + }, + "Metadata": { + "$ref": "#/definitions/Metadata" + } + }, + "xml": { + "name": "Queue" + } + }, + "QueueMessage": { + "description": "A Message object which can be stored in a Queue", + "type": "object", + "required": [ + "MessageText" + ], + "properties": { + "MessageText": { + "type": "string", + "description": "The content of the message" + } + } + }, + "DequeuedMessageItem": { + "description": "The object returned in the QueueMessageList array when calling Get Messages on a Queue.", + "type": "object", + "required": [ + "MessageId", + "InsertionTime", + "ExpirationTime", + "PopReceipt", + "TimeNextVisible", + "DequeueCount", + "MessageText" + ], + "properties": { + "MessageId": { + "type": "string", + "description": "The Id of the Message." + }, + "InsertionTime": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The time the Message was inserted into the Queue." + }, + "ExpirationTime": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The time that the Message will expire and be automatically deleted." + }, + "PopReceipt": { + "type": "string", + "description": "This value is required to delete the Message. If deletion fails using this popreceipt then the message has been dequeued by another client." + }, + "TimeNextVisible": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The time that the message will again become visible in the Queue." + }, + "DequeueCount": { + "type": "integer", + "format": "int64", + "description": "The number of times the message has been dequeued." + }, + "MessageText": { + "type": "string", + "description": "The content of the Message." + } + }, + "xml": { + "wrapped": true, + "name": "QueueMessage" + } + }, + "PeekedMessageItem": { + "description": "The object returned in the QueueMessageList array when calling Peek Messages on a Queue", + "type": "object", + "required": [ + "MessageId", + "InsertionTime", + "ExpirationTime", + "DequeueCount", + "MessageText" + ], + "properties": { + "MessageId": { + "type": "string", + "description": "The Id of the Message." + }, + "InsertionTime": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The time the Message was inserted into the Queue." + }, + "ExpirationTime": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The time that the Message will expire and be automatically deleted." + }, + "DequeueCount": { + "type": "integer", + "format": "int64", + "description": "The number of times the message has been dequeued." + }, + "MessageText": { + "type": "string", + "description": "The content of the Message." + } + }, + "xml": { + "wrapped": true, + "name": "QueueMessage" + } + }, + "EnqueuedMessage": { + "description": "The object returned in the QueueMessageList array when calling Put Message on a Queue", + "type": "object", + "required": [ + "MessageId", + "InsertionTime", + "ExpirationTime", + "PopReceipt", + "TimeNextVisible" + ], + "properties": { + "MessageId": { + "type": "string", + "description": "The Id of the Message." + }, + "InsertionTime": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The time the Message was inserted into the Queue." + }, + "ExpirationTime": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The time that the Message will expire and be automatically deleted." + }, + "PopReceipt": { + "type": "string", + "description": "This value is required to delete the Message. If deletion fails using this popreceipt then the message has been dequeued by another client." + }, + "TimeNextVisible": { + "type": "string", + "format": "date-time-rfc1123", + "description": "The time that the message will again become visible in the Queue." + } + }, + "xml": { + "wrapped": true, + "name": "QueueMessage" + } + }, + "DequeuedMessagesList": { + "description": "The object returned when calling Get Messages on a Queue", + "type": "array", + "items": { + "$ref": "#/definitions/DequeuedMessageItem", + "xml": { + "name": "QueueMessage" + } + }, + "xml": { + "wrapped": true, + "name": "QueueMessagesList" + } + }, + "PeekedMessagesList": { + "description": "The object returned when calling Peek Messages on a Queue", + "type": "array", + "items": { + "$ref": "#/definitions/PeekedMessageItem", + "xml": { + "name": "QueueMessage" + } + }, + "xml": { + "wrapped": true, + "name": "QueueMessagesList" + } + }, + "EnqueuedMessageList": { + "description": "The object returned when calling Put Message on a Queue", + "type": "array", + "items": { + "$ref": "#/definitions/EnqueuedMessage", + "xml": { + "name": "QueueMessage" + } + }, + "xml": { + "wrapped": true, + "name": "QueueMessagesList" + } + }, + "RetentionPolicy": { + "description": "the retention policy", + "type": "object", + "required": [ + "Enabled" + ], + "properties": { + "Enabled": { + "description": "Indicates whether a retention policy is enabled for the storage service", + "type": "boolean" + }, + "Days": { + "description": "Indicates the number of days that metrics or logging or soft-deleted data should be retained. All data older than this value will be deleted", + "type": "integer", + "minimum": 1 + } + } + }, + "SignedIdentifier": { + "description": "signed identifier", + "type": "object", + "required": [ + "Id", + "AccessPolicy" + ], + "properties": { + "Id": { + "type": "string", + "description": "a unique id" + }, + "AccessPolicy": { + "description": "The access policy", + "$ref": "#/definitions/AccessPolicy" + } + } + }, + "SignedIdentifiers": { + "description": "a collection of signed identifiers", + "type": "array", + "items": { + "$ref": "#/definitions/SignedIdentifier", + "xml": { + "name": "SignedIdentifier" + } + }, + "xml": { + "wrapped": true, + "name": "SignedIdentifiers" + } + }, + "StorageServiceProperties": { + "description": "Storage Service Properties.", + "type": "object", + "properties": { + "Logging": { + "description": "Azure Analytics Logging settings", + "$ref": "#/definitions/Logging" + }, + "HourMetrics": { + "description": "A summary of request statistics grouped by API in hourly aggregates for queues", + "$ref": "#/definitions/Metrics" + }, + "MinuteMetrics": { + "description": "a summary of request statistics grouped by API in minute aggregates for queues", + "$ref": "#/definitions/Metrics" + }, + "Cors": { + "description": "The set of CORS rules.", + "type": "array", + "items": { + "$ref": "#/definitions/CorsRule", + "xml": { + "name": "CorsRule" + } + }, + "xml": { + "wrapped": true + } + } + } + }, + "StorageServiceStats": { + "description": "Stats for the storage service.", + "type": "object", + "properties": { + "GeoReplication": { + "description": "Geo-Replication information for the Secondary Storage Service", + "$ref": "#/definitions/GeoReplication" + } + } + }, + "KeyInfo": { + "type": "object", + "required": [ + "Expiry" + ], + "description": "Key information", + "properties": { + "Start": { + "description": "The date-time the key is active in ISO 8601 UTC time", + "type": "string" + }, + "Expiry": { + "description": "The date-time the key expires in ISO 8601 UTC time", + "type": "string" + }, + "DelegatedUserTid": { + "description": "The delegated user tenant id in Azure AD", + "type": "string" + } + } + }, + "UserDelegationKey": { + "type": "object", + "required": [ + "SignedOid", + "SignedTid", + "SignedStart", + "SignedExpiry", + "SignedService", + "SignedVersion", + "Value" + ], + "description": "A user delegation key", + "properties": { + "SignedOid": { + "description": "The Azure Active Directory object ID in GUID format.", + "type": "string" + }, + "SignedTid": { + "description": "The Azure Active Directory tenant ID in GUID format", + "type": "string" + }, + "SignedStart": { + "description": "The date-time the key is active", + "type": "string", + "format": "date-time" + }, + "SignedExpiry": { + "description": "The date-time the key expires", + "type": "string", + "format": "date-time" + }, + "SignedService": { + "description": "Abbreviation of the Azure Storage service that accepts the key", + "type": "string" + }, + "SignedVersion": { + "description": "The service version that created the key", + "type": "string" + }, + "SignedDelegatedUserTid": { + "description": "The delegated user tenant id in Azure AD. Return if DelegatedUserTid is specified.", + "type": "string" + }, + "Value": { + "description": "The key as a base64 string", + "type": "string" + } + } + } + }, + "parameters": { + "Url": { + "name": "url", + "x-ms-parameter-location": "client", + "description": "The URL of the service account, queue or message that is the target of the desired operation.", + "required": true, + "type": "string", + "in": "path", + "x-ms-skip-url-encoding": true + }, + "ApiVersionParameter": { + "name": "x-ms-version", + "x-ms-parameter-location": "client", + "x-ms-client-name": "version", + "in": "header", + "required": true, + "type": "string", + "description": "Specifies the version of the operation to use for this request." + }, + "Body": { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "format": "file" + }, + "x-ms-parameter-location": "method", + "description": "Initial data" + }, + "QueueAcl": { + "name": "queueAcl", + "in": "body", + "schema": { + "$ref": "#/definitions/SignedIdentifiers" + }, + "x-ms-parameter-location": "method", + "description": "the acls for the queue" + }, + "ClientRequestId": { + "name": "x-ms-client-request-id", + "x-ms-client-name": "requestId", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled." + }, + "ContentLength": { + "name": "Content-Length", + "in": "header", + "required": true, + "type": "integer", + "format": "int64", + "x-ms-parameter-location": "method", + "description": "The length of the request." + }, + "ListQueuesInclude": { + "name": "include", + "in": "query", + "required": false, + "type": "array", + "collectionFormat": "csv", + "items": { + "type": "string", + "enum": [ + "metadata" + ], + "x-ms-enum": { + "name": "ListQueuesIncludeType", + "modelAsString": false + } + }, + "x-ms-parameter-location": "method", + "description": "Include this parameter to specify that the queues' metadata be returned as part of the response body." + }, + "Marker": { + "name": "marker", + "in": "query", + "required": false, + "type": "string", + "description": "A string value that identifies the portion of the list of queues to be returned with the next listing operation. The operation returns the NextMarker value within the response body if the listing operation did not return all queues remaining to be listed with the current page. The NextMarker value can be used as the value for the marker parameter in a subsequent call to request the next page of list items. The marker value is opaque to the client.", + "x-ms-parameter-location": "method" + }, + "MaxResults": { + "name": "maxresults", + "in": "query", + "required": false, + "type": "integer", + "minimum": 1, + "x-ms-parameter-location": "method", + "description": "Specifies the maximum number of queues to return. If the request does not specify maxresults, or specifies a value greater than 5000, the server will return up to 5000 items. Note that if the listing operation crosses a partition boundary, then the service will return a continuation token for retrieving the remainder of the results. For this reason, it is possible that the service will return fewer results than specified by maxresults, or than the default of 5000." + }, + "MessageId": { + "name": "messageid", + "in": "path", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "The container name." + }, + "MessageTTL": { + "name": "messagettl", + "x-ms-client-name": "MessageTimeToLive", + "in": "query", + "required": false, + "type": "integer", + "minimum": -1, + "x-ms-parameter-location": "method", + "description": "Optional. Specifies the time-to-live interval for the message, in seconds. Prior to version 2017-07-29, the maximum time-to-live allowed is 7 days. For version 2017-07-29 or later, the maximum time-to-live can be any positive number, as well as -1 indicating that the message does not expire. If this parameter is omitted, the default time-to-live is 7 days." + }, + "Metadata": { + "name": "x-ms-meta", + "x-ms-client-name": "metadata", + "in": "header", + "required": false, + "type": "string", + "x-ms-parameter-location": "method", + "description": "Optional. Include this parameter to specify that the queue's metadata be returned as part of the response body. Note that metadata requested with this parameter must be stored in accordance with the naming restrictions imposed by the 2009-09-19 version of the Queue service. Beginning with this version, all metadata names must adhere to the naming conventions for C# identifiers.", + "x-ms-header-collection-prefix": "x-ms-meta-" + }, + "NumOfMessages": { + "name": "numofmessages", + "x-ms-client-name": "numberOfMessages", + "in": "query", + "required": false, + "type": "integer", + "minimum": 1, + "x-ms-parameter-location": "method", + "description": "Optional. A nonzero integer value that specifies the number of messages to retrieve from the queue, up to a maximum of 32. If fewer are visible, the visible messages are returned. By default, a single message is retrieved from the queue with this operation." + }, + "PopReceipt": { + "name": "popreceipt", + "x-ms-client-name": "popReceipt", + "in": "query", + "required": true, + "x-ms-parameter-location": "method", + "description": "Required. Specifies the valid pop receipt value returned from an earlier call to the Get Messages or Update Message operation.", + "type": "string" + }, + "Prefix": { + "name": "prefix", + "in": "query", + "required": false, + "type": "string", + "description": "Filters the results to return only queues whose name begins with the specified prefix.", + "x-ms-parameter-location": "method" + }, + "QueueMessage": { + "name": "QueueMessage", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/QueueMessage" + }, + "x-ms-parameter-location": "method", + "description": "A Message object which can be stored in a Queue" + }, + "RequiredQueueMessage": { + "name": "QueueMessage", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/QueueMessage" + }, + "x-ms-parameter-location": "method", + "description": "A Message object which can be stored in a Queue" + }, + "QueueName": { + "name": "queueName", + "in": "path", + "required": true, + "type": "string", + "x-ms-parameter-location": "method", + "description": "The queue name." + }, + "StorageServiceProperties": { + "name": "StorageServiceProperties", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/StorageServiceProperties" + }, + "x-ms-parameter-location": "method", + "description": "The StorageService properties." + }, + "Timeout": { + "name": "timeout", + "in": "query", + "required": false, + "type": "integer", + "minimum": 0, + "x-ms-parameter-location": "method", + "description": "The The timeout parameter is expressed in seconds. For more information, see <a href=\"https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-queue-service-operations>Setting Timeouts for Queue Service Operations.</a>" + }, + "VisibilityTimeout": { + "name": "visibilitytimeout", + "in": "query", + "required": false, + "type": "integer", + "minimum": 0, + "maximum": 604800, + "x-ms-parameter-location": "method", + "description": "Optional. Specifies the new visibility timeout value, in seconds, relative to server time. The default value is 30 seconds. A specified value must be larger than or equal to 1 second, and cannot be larger than 7 days, or larger than 2 hours on REST protocol versions prior to version 2011-08-18. The visibility timeout of a message can be set to a value later than the expiry time." + }, + "VisibilityTimeoutRequired": { + "name": "visibilitytimeout", + "in": "query", + "required": true, + "type": "integer", + "minimum": 0, + "maximum": 604800, + "x-ms-parameter-location": "method", + "description": "Optional. Specifies the new visibility timeout value, in seconds, relative to server time. The default value is 30 seconds. A specified value must be larger than or equal to 1 second, and cannot be larger than 7 days, or larger than 2 hours on REST protocol versions prior to version 2011-08-18. The visibility timeout of a message can be set to a value later than the expiry time." + }, + "VisibilityTimeoutForEnqueue": { + "name": "visibilitytimeout", + "in": "query", + "required": false, + "type": "integer", + "minimum": 0, + "maximum": 604800, + "x-ms-parameter-location": "method", + "description": "Optional. If specified, the request must be made using an x-ms-version of 2011-08-18 or later. If not specified, the default value is 0. Specifies the new visibility timeout value, in seconds, relative to server time. The new value must be larger than or equal to 0, and cannot be larger than 7 days. The visibility timeout of a message cannot be set to a value later than the expiry time. visibilitytimeout should be set to a value smaller than the time-to-live value." + }, + "KeyInfo": { + "description": "Key information", + "name": "KeyInfo", + "in": "body", + "x-ms-parameter-location": "method", + "required": true, + "schema": { + "$ref": "#/definitions/KeyInfo" + } + } + } +} From f93506492eae6420262aa134976c8cb509043e7e Mon Sep 17 00:00:00 2001 From: haiyuan_zhang <haiyuan.zhang1982@gmail.com> Date: Thu, 25 Dec 2025 10:35:30 +0800 Subject: [PATCH 082/117] MPG migration - purestorageblock (#39365) --- .../purestorage/PureStorage.Block.Management/client.tsp | 1 + .../purestorage/PureStorage.Block.Management/tspconfig.yaml | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/specification/purestorage/PureStorage.Block.Management/client.tsp b/specification/purestorage/PureStorage.Block.Management/client.tsp index 1364912f708b..c7275eee2297 100644 --- a/specification/purestorage/PureStorage.Block.Management/client.tsp +++ b/specification/purestorage/PureStorage.Block.Management/client.tsp @@ -138,3 +138,4 @@ using PureStorage.Block; "csharp" ); @@clientName(VolumeType, "PureStorageAvsVmVolumeType", "csharp"); +@@clientName(ServiceInitializationData.vSphereIp, "vSphereIP", "csharp"); diff --git a/specification/purestorage/PureStorage.Block.Management/tspconfig.yaml b/specification/purestorage/PureStorage.Block.Management/tspconfig.yaml index f73b6bcc1020..e6b5cf443551 100644 --- a/specification/purestorage/PureStorage.Block.Management/tspconfig.yaml +++ b/specification/purestorage/PureStorage.Block.Management/tspconfig.yaml @@ -15,10 +15,8 @@ options: output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/purestorage.json" emit-common-types-schema: "never" - "@azure-tools/typespec-csharp": + "@azure-typespec/http-client-csharp-mgmt": emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - flavor: azure - clear-output-folder: true namespace: "Azure.ResourceManager.PureStorageBlock" "@azure-tools/typespec-python": emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-purestorageblock" From 8d29806ed6f671e5fbe8c128a70dd0fc07ade661 Mon Sep 17 00:00:00 2001 From: haiyuan_zhang <haiyuan.zhang1982@gmail.com> Date: Thu, 25 Dec 2025 10:35:59 +0800 Subject: [PATCH 083/117] MPG migration - onlineexperimentation (#39345) --- .../client.tsp | 21 +++++++++++++++++++ .../tspconfig.yaml | 6 +----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/specification/onlineexperimentation/OnlineExperimentation.Management/client.tsp b/specification/onlineexperimentation/OnlineExperimentation.Management/client.tsp index 3872ff1a348d..7665eca8e14a 100644 --- a/specification/onlineexperimentation/OnlineExperimentation.Management/client.tsp +++ b/specification/onlineexperimentation/OnlineExperimentation.Management/client.tsp @@ -24,3 +24,24 @@ using Microsoft.OnlineExperimentation; uuid, "csharp" ); + +@@clientName(PrivateEndpointConnection, + "OnlineExperimentationPrivateEndpointConnection", + "csharp" +); + +@@clientName(PrivateLinkResource, "OnlineExperimentationPrivateLink", "csharp"); + +// we add this model in this namespace in order to replace some models with this model via alternateType decorator +namespace Azure.ResourceManager.Models { + /** represents a reference to an existing resource by its id */ + model SubResource { + /** the id */ + id?: armResourceIdentifier; + } +} + +@@alternateType(Azure.ResourceManager.PrivateEndpointConnectionProperties.privateEndpoint, + Azure.ResourceManager.Models.SubResource, + "csharp" +); diff --git a/specification/onlineexperimentation/OnlineExperimentation.Management/tspconfig.yaml b/specification/onlineexperimentation/OnlineExperimentation.Management/tspconfig.yaml index f8b512fb1cb2..18d13c5c378c 100644 --- a/specification/onlineexperimentation/OnlineExperimentation.Management/tspconfig.yaml +++ b/specification/onlineexperimentation/OnlineExperimentation.Management/tspconfig.yaml @@ -9,13 +9,9 @@ options: emitter-output-dir: "{project-root}/.." azure-resource-provider-folder: "resource-manager" output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/OnlineExperimentationWorkspace.json" - "@azure-tools/typespec-csharp": + "@azure-typespec/http-client-csharp-mgmt": emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - flavor: azure - clear-output-folder: true - model-namespace: true namespace: "Azure.ResourceManager.OnlineExperimentation" - api-version: "2025-05-31-preview" "@azure-tools/typespec-python": emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-onlineexperimentation" namespace: "azure.mgmt.onlineexperimentation" From be36de931322b23890d3353e06bcc6ad34212877 Mon Sep 17 00:00:00 2001 From: haiyuan_zhang <haiyuan.zhang1982@gmail.com> Date: Thu, 25 Dec 2025 10:36:21 +0800 Subject: [PATCH 084/117] update tspconfig.yaml (#39359) --- .../liftrmongodb/MongoDB.Atlas.Management/tspconfig.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/specification/liftrmongodb/MongoDB.Atlas.Management/tspconfig.yaml b/specification/liftrmongodb/MongoDB.Atlas.Management/tspconfig.yaml index a51cb7eafdef..aaf2900c167c 100644 --- a/specification/liftrmongodb/MongoDB.Atlas.Management/tspconfig.yaml +++ b/specification/liftrmongodb/MongoDB.Atlas.Management/tspconfig.yaml @@ -10,10 +10,8 @@ options: azure-resource-provider-folder: "resource-manager" output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/openapi.json" examples-dir: "{project-root}/examples" - "@azure-tools/typespec-csharp": + "@azure-typespec/http-client-csharp-mgmt": emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - flavor: azure - clear-output-folder: true namespace: "Azure.ResourceManager.MongoDBAtlas" "@azure-tools/typespec-java": emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-mongodbatlas" From 1d5f5b041214d74ab8d0361c992e8f84bc99f089 Mon Sep 17 00:00:00 2001 From: Dudi Likvornik <likdudi@gmail.com> Date: Mon, 29 Dec 2025 14:54:47 +0200 Subject: [PATCH 085/117] Microsoft.OperationalInsights: Stable 2025-07-01 summary logs read only removal (#39088) * Microsoft.OperationalInsights: Stable 2025-07-01 summary logs read only removal * update go config --------- Co-authored-by: ReleaseHelper <ReleaseHelper> --- .../OperationalInsights/readme.go.md | 2 +- .../stable/2025-07-01/SummaryLogs.json | 1 - .../stable/2025-07-01/examples/SummaryLogsUpsert.json | 9 ++++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/OperationalInsights/readme.go.md b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/OperationalInsights/readme.go.md index 9ce63c7c5b40..363cc559a69b 100644 --- a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/OperationalInsights/readme.go.md +++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/OperationalInsights/readme.go.md @@ -4,7 +4,7 @@ These settings apply only when `--go` is specified on the command line. ``` yaml $(go) && $(track2) license-header: MICROSOFT_MIT_NO_VERSION -module-name: sdk/resourcemanager/operationalinsights/armoperationalinsights +module-name: sdk/resourcemanager/operationalinsights/armoperationalinsights/v2 module: github.com/Azure/azure-sdk-for-go/$(module-name) output-folder: $(go-sdk-folder)/$(module-name) azure-arm: true diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/OperationalInsights/stable/2025-07-01/SummaryLogs.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/OperationalInsights/stable/2025-07-01/SummaryLogs.json index 3ea5ff699043..23d87b05e02f 100644 --- a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/OperationalInsights/stable/2025-07-01/SummaryLogs.json +++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/OperationalInsights/stable/2025-07-01/SummaryLogs.json @@ -468,7 +468,6 @@ } }, "destinationTable": { - "readOnly": true, "type": "string", "description": "The destination table used for the Summary rule results." } diff --git a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/OperationalInsights/stable/2025-07-01/examples/SummaryLogsUpsert.json b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/OperationalInsights/stable/2025-07-01/examples/SummaryLogsUpsert.json index 28254da0a082..d538c44d2757 100644 --- a/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/OperationalInsights/stable/2025-07-01/examples/SummaryLogsUpsert.json +++ b/specification/operationalinsights/resource-manager/Microsoft.OperationalInsights/OperationalInsights/stable/2025-07-01/examples/SummaryLogsUpsert.json @@ -12,7 +12,8 @@ "query": "MyTable_CL", "binSize": 180, "binDelay": 10, - "binStartTime": "2020-02-03T04:05:06Z" + "binStartTime": "2020-02-03T04:05:06Z", + "destinationTable": "MyDestinationTable_CL" } } } @@ -34,7 +35,8 @@ "query": "MyTable_CL", "binSize": 180, "binDelay": 10, - "binStartTime": "2024-02-03T04:00:00Z" + "binStartTime": "2024-02-03T04:00:00Z", + "destinationTable": "MyDestinationTable_CL" }, "provisioningState": "Updating", "isActive": false @@ -59,7 +61,8 @@ "query": "MyTable_CL", "binSize": 180, "binDelay": 10, - "binStartTime": "2020-02-03T04:05:06Z" + "binStartTime": "2020-02-03T04:05:06Z", + "destinationTable": "MyDestinationTable_CL" }, "provisioningState": "Updating", "isActive": false From fb25c38a86b35dcf8bb03eaaa7844643bd92c5a2 Mon Sep 17 00:00:00 2001 From: tundwed <55289657+tundwed@users.noreply.github.com> Date: Mon, 29 Dec 2025 10:09:00 -0800 Subject: [PATCH 086/117] Edge actions api 2025 12 01 preview - Remove addAttachment and deleteAttachment operations from the public EdgeActions API (#38775) * Add baseline for 2025-12-01-preview based on 2025-09-01-preview Copy all files from 2025-09-01-preview as baseline for new API version. This is an exact copy of 2025-09-01-preview before making any changes to remove attachment APIs. * Remove addAttachment and deleteAttachment operations from 2025-12-01-preview - Added @removed decorator to addAttachment and deleteAttachment operations in main.tsp - Updated tspconfig.yaml with multi-version output pattern - Set 2025-12-01-preview as default tag in readme.md - Removed stale example files with incorrect naming - Both API versions generated from single TypeSpec source * fix: make read-only properties optional in 2025-12-01-preview to fix SDK generation - EdgeActionAttachment.id: made optional with @madeOptional decorator - EdgeActionVersionProperties.validationStatus: made optional - EdgeActionVersionProperties.lastPackageUpdateTime: made optional - EdgeActionExecutionFilterProperties.lastUpdateTime: made optional These read-only properties cannot be provided by clients on create/update, so they should not be required. Using @madeOptional ensures the change only applies to 2025-12-01-preview while maintaining backward compatibility with 2025-09-01-preview. --------- Co-authored-by: Danny Tundwe (from Dev Box) <dannytundwe@microsoft.com> Co-authored-by: AnamikaNupur <72171048+AnamikaNupur@users.noreply.github.com> --- .../EdgeActions/edgeactionsbasemodels.tsp | 12 +- .../EdgeActionExecutionFilters_Create.json | 51 + .../EdgeActionExecutionFilters_Delete.json | 19 + .../EdgeActionExecutionFilters_Get.json | 28 + ...tionExecutionFilters_ListByEdgeAction.json | 44 + .../EdgeActionExecutionFilters_Update.json | 38 + .../EdgeActionVersions_Create.json | 50 + .../EdgeActionVersions_Delete.json | 19 + .../EdgeActionVersions_DeployVersionCode.json | 31 + .../EdgeActionVersions_Get.json | 28 + .../EdgeActionVersions_GetVersionCode.json | 25 + .../EdgeActionVersions_ListByEdgeAction.json | 44 + .../EdgeActionVersions_SwapDefault.json | 20 + .../EdgeActionVersions_Update.json | 38 + .../EdgeActions_AddAttachment.json | 25 + .../EdgeActions_Create.json | 51 + .../EdgeActions_Delete.json | 18 + .../EdgeActions_DeleteAttachment.json | 21 + .../2025-12-01-preview/EdgeActions_Get.json | 28 + .../EdgeActions_ListByResourceGroup.json | 45 + .../EdgeActions_ListBySubscription.json | 44 + .../EdgeActions_Update.json | 39 + .../Microsoft.Cdn/EdgeActions/main.tsp | 4 + .../EdgeActionExecutionFilters_Create.json | 51 + .../EdgeActionExecutionFilters_Delete.json | 19 + .../EdgeActionExecutionFilters_Get.json | 28 + ...tionExecutionFilters_ListByEdgeAction.json | 44 + .../EdgeActionExecutionFilters_Update.json | 38 + .../examples/EdgeActionVersions_Create.json | 50 + .../examples/EdgeActionVersions_Delete.json | 19 + .../EdgeActionVersions_DeployVersionCode.json | 31 + .../examples/EdgeActionVersions_Get.json | 28 + .../EdgeActionVersions_GetVersionCode.json | 25 + .../EdgeActionVersions_ListByEdgeAction.json | 44 + .../EdgeActionVersions_SwapDefault.json | 20 + .../examples/EdgeActionVersions_Update.json | 38 + .../EdgeActionsExecutionFilters_Create.json | 51 + .../EdgeActionsExecutionFilters_Delete.json | 19 + .../EdgeActionsExecutionFilters_Get.json | 28 + ...ionsExecutionFilters_ListByEdgeAction.json | 44 + .../EdgeActionsExecutionFilters_Update.json | 38 + .../examples/EdgeActionsVersions_Create.json | 50 + .../examples/EdgeActionsVersions_Delete.json | 19 + .../examples/EdgeActionsVersions_Get.json | 28 + .../EdgeActionsVersions_ListByEdgeAction.json | 44 + .../examples/EdgeActionsVersions_Update.json | 38 + .../examples/EdgeActions_AddAttachment.json | 25 + .../examples/EdgeActions_Create.json | 51 + .../examples/EdgeActions_Delete.json | 18 + .../EdgeActions_DeleteAttachment.json | 21 + .../examples/EdgeActions_Get.json | 28 + .../EdgeActions_ListByResourceGroup.json | 45 + .../EdgeActions_ListBySubscription.json | 44 + .../examples/EdgeActions_Update.json | 39 + .../preview/2025-12-01-preview/openapi.json | 1934 +++++++++++++++++ .../Microsoft.Cdn/EdgeActions/readme.md | 28 +- .../Microsoft.Cdn/EdgeActions/tspconfig.yaml | 5 +- 57 files changed, 3746 insertions(+), 8 deletions(-) create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Create.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Delete.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Get.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_ListByEdgeAction.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Update.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Create.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Delete.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_DeployVersionCode.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Get.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_GetVersionCode.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_ListByEdgeAction.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_SwapDefault.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Update.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_AddAttachment.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Create.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Delete.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_DeleteAttachment.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Get.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_ListByResourceGroup.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_ListBySubscription.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Update.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Create.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Delete.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Get.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_ListByEdgeAction.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Update.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Create.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Delete.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_DeployVersionCode.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Get.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_GetVersionCode.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_ListByEdgeAction.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_SwapDefault.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Update.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Create.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Delete.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Get.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_ListByEdgeAction.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Update.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Create.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Delete.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Get.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_ListByEdgeAction.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Update.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_AddAttachment.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Create.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Delete.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_DeleteAttachment.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Get.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_ListByResourceGroup.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_ListBySubscription.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Update.json create mode 100644 specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/openapi.json diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/edgeactionsbasemodels.tsp b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/edgeactionsbasemodels.tsp index 2ee290dcf064..9a20c10d8e76 100644 --- a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/edgeactionsbasemodels.tsp +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/edgeactionsbasemodels.tsp @@ -116,7 +116,8 @@ union ProvisioningState { model EdgeActionAttachment { @doc("The edge action attachment id") @visibility(Lifecycle.Read) - id: string; + @madeOptional(Versions.`2025-12-01-preview`) + id?: string; @doc("The attached resource Id") @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) @@ -151,7 +152,8 @@ model EdgeActionVersionProperties { @doc("The validation status") @visibility(Lifecycle.Read) - validationStatus: EdgeActionVersionValidationStatus; + @madeOptional(Versions.`2025-12-01-preview`) + validationStatus?: EdgeActionVersionValidationStatus; @doc("The provisioning state") @visibility(Lifecycle.Read) @@ -163,7 +165,8 @@ model EdgeActionVersionProperties { @doc("The last update time in UTC for package update") @visibility(Lifecycle.Read) - lastPackageUpdateTime: utcDateTime; + @madeOptional(Versions.`2025-12-01-preview`) + lastPackageUpdateTime?: utcDateTime; } /** Properties for edge action execution filter */ @@ -174,7 +177,8 @@ model EdgeActionExecutionFilterProperties { @doc("The last update time in UTC for the execution filter") @visibility(Lifecycle.Read) - lastUpdateTime: utcDateTime; + @madeOptional(Versions.`2025-12-01-preview`) + lastUpdateTime?: utcDateTime; @doc("Custom Header Key associated with the execution filter") @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Create.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Create.json new file mode 100644 index 000000000000..0a661d6e9338 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Create.json @@ -0,0 +1,51 @@ +{ + "operationId": "EdgeActionExecutionFilters_Create", + "title": "CreateEdgeActionExecutionFilters", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "executionFilter": "executionFilter1", + "resource": { + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value" + } + } + }, + "responses": { + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + }, + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Delete.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Delete.json new file mode 100644 index 000000000000..303bae95081c --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Delete.json @@ -0,0 +1,19 @@ +{ + "operationId": "EdgeActionExecutionFilters_Delete", + "title": "DeleteEdgeActionExecutionFilters", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "executionFilter": "executionFilter1" + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + }, + "204": {} + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Get.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Get.json new file mode 100644 index 000000000000..48a0074af6bd --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Get.json @@ -0,0 +1,28 @@ +{ + "operationId": "EdgeActionExecutionFilters_Get", + "title": "GetEdgeActionExecutionFilters", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "executionFilter": "executionFilter1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_ListByEdgeAction.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_ListByEdgeAction.json new file mode 100644 index 000000000000..143cf14b79dc --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_ListByEdgeAction.json @@ -0,0 +1,44 @@ +{ + "operationId": "EdgeActionExecutionFilters_ListByEdgeAction", + "title": "ListEdgeActionsExecutionFiltersByEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters2", + "name": "executionFilter2", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version2", + "executionFilterIdentifierHeaderName": "header-key2", + "executionFilterIdentifierHeaderValue": "header-value2", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + ] + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Update.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Update.json new file mode 100644 index 000000000000..e4899408ada0 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionExecutionFilters_Update.json @@ -0,0 +1,38 @@ +{ + "operationId": "EdgeActionExecutionFilters_Update", + "title": "UpdateEdgeActionExecutionFilters", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "executionFilter": "executionFilter1", + "properties": { + "properties": { + "executionFilterIdentifierHeaderValue": "header-value2" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/slots/slot1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value2", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Create.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Create.json new file mode 100644 index 000000000000..a0a1912189b3 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Create.json @@ -0,0 +1,50 @@ +{ + "operationId": "EdgeActionVersions_Create", + "title": "CreateEdgeActionVersion", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "version": "version2", + "resource": { + "location": "global", + "properties": { + "deploymentType": "zip", + "isDefaultVersion": "True" + } + } + }, + "responses": { + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version2", + "name": "version2", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + } + }, + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version2", + "name": "version2", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Delete.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Delete.json new file mode 100644 index 000000000000..9f703e6a6167 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Delete.json @@ -0,0 +1,19 @@ +{ + "operationId": "EdgeActionVersions_Delete", + "title": "DeleteEdgeActionVersion", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "version": "version1" + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + }, + "204": {} + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_DeployVersionCode.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_DeployVersionCode.json new file mode 100644 index 000000000000..bdc42929650a --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_DeployVersionCode.json @@ -0,0 +1,31 @@ +{ + "operationId": "EdgeActionVersions_DeployVersionCode", + "title": "DeployVersionCode", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "version": "version2", + "body": { + "name": "zippedFile", + "content": "UEsDBBQAAAAIAI1NzkQAAAAABQAAAA==" + } + }, + "responses": { + "200": { + "body": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Get.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Get.json new file mode 100644 index 000000000000..1980a732a0b1 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Get.json @@ -0,0 +1,28 @@ +{ + "operationId": "EdgeActionVersions_Get", + "title": "GetEdgeActionVersion", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "version": "version1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version1", + "name": "version1", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_GetVersionCode.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_GetVersionCode.json new file mode 100644 index 000000000000..31d6087d9dc8 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_GetVersionCode.json @@ -0,0 +1,25 @@ +{ + "operationId": "EdgeActionVersions_GetVersionCode", + "title": "GetVersionCode", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "version": "version1", + "body": {} + }, + "responses": { + "200": { + "body": { + "name": "zipfile", + "content": "encodedzip" + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_ListByEdgeAction.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_ListByEdgeAction.json new file mode 100644 index 000000000000..4ab676c55d08 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_ListByEdgeAction.json @@ -0,0 +1,44 @@ +{ + "operationId": "EdgeActionVersions_ListByEdgeAction", + "title": "GetEdgeActionVersionsByEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version1", + "name": "version1", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version2", + "name": "version2", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "False", + "lastPackageUpdateTime": "2024-05-25T11:19:23Z" + } + } + ] + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_SwapDefault.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_SwapDefault.json new file mode 100644 index 000000000000..e618fd569404 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_SwapDefault.json @@ -0,0 +1,20 @@ +{ + "operationId": "EdgeActionVersions_SwapDefault", + "title": "Swap Default Version", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "edgeActionName": "edgeAction1", + "version": "1.0", + "api-version": "2025-12-01-preview", + "body": {} + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + }, + "204": {} + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Update.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Update.json new file mode 100644 index 000000000000..6705af543eb9 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActionVersions_Update.json @@ -0,0 +1,38 @@ +{ + "operationId": "EdgeActionVersions_Update", + "title": "UpdateEdgeActionVersion", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "version": "version1", + "properties": { + "properties": { + "deploymentType": "others" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version1", + "name": "version1", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "others", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_AddAttachment.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_AddAttachment.json new file mode 100644 index 000000000000..6d21874605b6 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_AddAttachment.json @@ -0,0 +1,25 @@ +{ + "operationId": "EdgeActions_AddAttachment", + "title": "AddAttachment", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-09-01-preview", + "edgeActionName": "edgeAction1", + "body": { + "attachedResourceId": "/subscriptions/sub1/resourceGroups/rs1/providers/Microsoft.Cdn/Profiles/myProfile/afdEndpoints/ep1/routes/route1" + } + }, + "responses": { + "200": { + "body": { + "edgeActionId": "someguid" + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Create.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Create.json new file mode 100644 index 000000000000..7ae27063a2f5 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Create.json @@ -0,0 +1,51 @@ +{ + "operationId": "EdgeActions_Create", + "title": "CreateEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "resource": { + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + } + } + }, + "responses": { + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1", + "name": "edgeAction1", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + } + }, + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1", + "name": "edgeAction1", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Delete.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Delete.json new file mode 100644 index 000000000000..42db6d08fd6c --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Delete.json @@ -0,0 +1,18 @@ +{ + "operationId": "EdgeActions_Delete", + "title": "DeleteEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1" + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2024-03-06-preview" + } + }, + "204": {} + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_DeleteAttachment.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_DeleteAttachment.json new file mode 100644 index 000000000000..e5e87774eaf2 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_DeleteAttachment.json @@ -0,0 +1,21 @@ +{ + "operationId": "EdgeActions_DeleteAttachment", + "title": "DeleteAttachment", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-09-01-preview", + "edgeActionName": "edgeAction1", + "body": { + "attachedResourceId": "/subscriptions/sub1/resourceGroups/rs1/providers/Microsoft.Cdn/Profiles/myProfile/afdEndpoints/ep1/routes/route1" + } + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + }, + "204": {} + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Get.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Get.json new file mode 100644 index 000000000000..653b64e1fce3 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Get.json @@ -0,0 +1,28 @@ +{ + "operationId": "EdgeActions_Get", + "title": "GetEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1", + "name": "edgeAction1", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_ListByResourceGroup.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_ListByResourceGroup.json new file mode 100644 index 000000000000..bbd2be523837 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_ListByResourceGroup.json @@ -0,0 +1,45 @@ +{ + "operationId": "EdgeActions_ListByResourceGroup", + "title": "ListEdgeActions_byResourceGroup", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-12-01-preview", + "resourceGroupName": "testrg" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1", + "name": "edgeAction1", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction2", + "name": "edgeAction2", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + } + ] + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_ListBySubscription.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_ListBySubscription.json new file mode 100644 index 000000000000..ca2b33f30a15 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_ListBySubscription.json @@ -0,0 +1,44 @@ +{ + "operationId": "EdgeActions_ListBySubscription", + "title": "ListEdgeActions_bySubscription", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1", + "name": "edgeAction1", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction2", + "name": "edgeAction2", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + } + ] + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Update.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Update.json new file mode 100644 index 000000000000..8bded21a0cce --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/examples/2025-12-01-preview/EdgeActions_Update.json @@ -0,0 +1,39 @@ +{ + "operationId": "EdgeActions_Update", + "title": "UpdateEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "properties": { + "sku": { + "name": "Standard", + "tier": "Standard" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1", + "name": "edgeAction1", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2024-03-06-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/main.tsp b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/main.tsp index c79a9418a7c9..ded45b464ede 100644 --- a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/main.tsp +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/main.tsp @@ -23,6 +23,7 @@ namespace Microsoft.Cdn; enum Versions { `2025-09-01-preview`, + `2025-12-01-preview`, } #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "SKU property required at envelope level for backwards compatibility with 2024-07-22-preview" @@ -88,6 +89,8 @@ interface EdgeActions { delete is ArmResourceDeleteWithoutOkAsync<EdgeAction>; listByResourceGroup is ArmResourceListByParent<EdgeAction>; listBySubscription is ArmListBySubscription<EdgeAction>; + + @removed(Versions.`2025-12-01-preview`) addAttachment is ArmResourceActionAsync< EdgeAction, EdgeActionAttachment, @@ -95,6 +98,7 @@ interface EdgeActions { >; #suppress "@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes" "Operation matches 2024 baseline with 200, 202 responses" + @removed(Versions.`2025-12-01-preview`) deleteAttachment is ArmResourceActionNoContentAsync< EdgeAction, EdgeActionAttachment diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Create.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Create.json new file mode 100644 index 000000000000..0a661d6e9338 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Create.json @@ -0,0 +1,51 @@ +{ + "operationId": "EdgeActionExecutionFilters_Create", + "title": "CreateEdgeActionExecutionFilters", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "executionFilter": "executionFilter1", + "resource": { + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value" + } + } + }, + "responses": { + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + }, + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Delete.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Delete.json new file mode 100644 index 000000000000..303bae95081c --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Delete.json @@ -0,0 +1,19 @@ +{ + "operationId": "EdgeActionExecutionFilters_Delete", + "title": "DeleteEdgeActionExecutionFilters", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "executionFilter": "executionFilter1" + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + }, + "204": {} + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Get.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Get.json new file mode 100644 index 000000000000..48a0074af6bd --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Get.json @@ -0,0 +1,28 @@ +{ + "operationId": "EdgeActionExecutionFilters_Get", + "title": "GetEdgeActionExecutionFilters", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "executionFilter": "executionFilter1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_ListByEdgeAction.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_ListByEdgeAction.json new file mode 100644 index 000000000000..143cf14b79dc --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_ListByEdgeAction.json @@ -0,0 +1,44 @@ +{ + "operationId": "EdgeActionExecutionFilters_ListByEdgeAction", + "title": "ListEdgeActionsExecutionFiltersByEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters2", + "name": "executionFilter2", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version2", + "executionFilterIdentifierHeaderName": "header-key2", + "executionFilterIdentifierHeaderValue": "header-value2", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + ] + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Update.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Update.json new file mode 100644 index 000000000000..e4899408ada0 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionExecutionFilters_Update.json @@ -0,0 +1,38 @@ +{ + "operationId": "EdgeActionExecutionFilters_Update", + "title": "UpdateEdgeActionExecutionFilters", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "executionFilter": "executionFilter1", + "properties": { + "properties": { + "executionFilterIdentifierHeaderValue": "header-value2" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/slots/slot1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value2", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Create.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Create.json new file mode 100644 index 000000000000..a0a1912189b3 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Create.json @@ -0,0 +1,50 @@ +{ + "operationId": "EdgeActionVersions_Create", + "title": "CreateEdgeActionVersion", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "version": "version2", + "resource": { + "location": "global", + "properties": { + "deploymentType": "zip", + "isDefaultVersion": "True" + } + } + }, + "responses": { + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version2", + "name": "version2", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + } + }, + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version2", + "name": "version2", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Delete.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Delete.json new file mode 100644 index 000000000000..9f703e6a6167 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Delete.json @@ -0,0 +1,19 @@ +{ + "operationId": "EdgeActionVersions_Delete", + "title": "DeleteEdgeActionVersion", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "version": "version1" + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + }, + "204": {} + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_DeployVersionCode.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_DeployVersionCode.json new file mode 100644 index 000000000000..bdc42929650a --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_DeployVersionCode.json @@ -0,0 +1,31 @@ +{ + "operationId": "EdgeActionVersions_DeployVersionCode", + "title": "DeployVersionCode", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "version": "version2", + "body": { + "name": "zippedFile", + "content": "UEsDBBQAAAAIAI1NzkQAAAAABQAAAA==" + } + }, + "responses": { + "200": { + "body": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Get.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Get.json new file mode 100644 index 000000000000..1980a732a0b1 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Get.json @@ -0,0 +1,28 @@ +{ + "operationId": "EdgeActionVersions_Get", + "title": "GetEdgeActionVersion", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "version": "version1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version1", + "name": "version1", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_GetVersionCode.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_GetVersionCode.json new file mode 100644 index 000000000000..31d6087d9dc8 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_GetVersionCode.json @@ -0,0 +1,25 @@ +{ + "operationId": "EdgeActionVersions_GetVersionCode", + "title": "GetVersionCode", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "version": "version1", + "body": {} + }, + "responses": { + "200": { + "body": { + "name": "zipfile", + "content": "encodedzip" + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_ListByEdgeAction.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_ListByEdgeAction.json new file mode 100644 index 000000000000..4ab676c55d08 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_ListByEdgeAction.json @@ -0,0 +1,44 @@ +{ + "operationId": "EdgeActionVersions_ListByEdgeAction", + "title": "GetEdgeActionVersionsByEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version1", + "name": "version1", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version2", + "name": "version2", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "False", + "lastPackageUpdateTime": "2024-05-25T11:19:23Z" + } + } + ] + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_SwapDefault.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_SwapDefault.json new file mode 100644 index 000000000000..e618fd569404 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_SwapDefault.json @@ -0,0 +1,20 @@ +{ + "operationId": "EdgeActionVersions_SwapDefault", + "title": "Swap Default Version", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "edgeActionName": "edgeAction1", + "version": "1.0", + "api-version": "2025-12-01-preview", + "body": {} + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + }, + "204": {} + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Update.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Update.json new file mode 100644 index 000000000000..6705af543eb9 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionVersions_Update.json @@ -0,0 +1,38 @@ +{ + "operationId": "EdgeActionVersions_Update", + "title": "UpdateEdgeActionVersion", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "version": "version1", + "properties": { + "properties": { + "deploymentType": "others" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version1", + "name": "version1", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "others", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Create.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Create.json new file mode 100644 index 000000000000..bf4003702796 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Create.json @@ -0,0 +1,51 @@ +{ + "operationId": "EdgeActionExecutionFilters_Create", + "title": "CreateEdgeActionExecutionFilters", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2024-07-22-preview", + "edgeActionName": "edgeAction1", + "executionFilter": "executionFilter1", + "resource": { + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value" + } + } + }, + "responses": { + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + }, + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Delete.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Delete.json new file mode 100644 index 000000000000..046ebee7af71 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Delete.json @@ -0,0 +1,19 @@ +{ + "operationId": "EdgeActionExecutionFilters_Delete", + "title": "DeleteEdgeActionExecutionFilters", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2024-07-22-preview", + "edgeActionName": "edgeAction1", + "executionFilter": "executionFilter1" + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2024-07-22-preview" + } + }, + "204": {} + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Get.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Get.json new file mode 100644 index 000000000000..1b5c551edbeb --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Get.json @@ -0,0 +1,28 @@ +{ + "operationId": "EdgeActionExecutionFilters_Get", + "title": "GetEdgeActionExecutionFilters", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2024-07-22-preview", + "edgeActionName": "edgeAction1", + "executionFilter": "executionFilter1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_ListByEdgeAction.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_ListByEdgeAction.json new file mode 100644 index 000000000000..54d39eb602e7 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_ListByEdgeAction.json @@ -0,0 +1,44 @@ +{ + "operationId": "EdgeActionExecutionFilters_ListByEdgeAction", + "title": "ListEdgeActionsExecutionFilters_byEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2024-07-22-preview", + "edgeActionName": "edgeAction1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/executionFilters/executionFilters2", + "name": "executionFilter2", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version2", + "executionFilterIdentifierHeaderName": "header-key2", + "executionFilterIdentifierHeaderValue": "header-value2", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + ] + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Update.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Update.json new file mode 100644 index 000000000000..9cb78a259e6b --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsExecutionFilters_Update.json @@ -0,0 +1,38 @@ +{ + "operationId": "EdgeActionExecutionFilters_Update", + "title": "UpdateEdgeActionExecutionFilters", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2024-07-22-preview", + "edgeActionName": "edgeAction1", + "executionFilter": "executionFilter1", + "properties": { + "properties": { + "executionFilterIdentifierHeaderValue": "header-value2" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/slots/slot1", + "name": "executionFilter1", + "type": "Microsoft.Cdn/edgeActions/executionFilters", + "location": "global", + "properties": { + "versionId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testrg/providers/Microsoft.Cdn/EdgeActions/edgeAction1/versions/version1", + "executionFilterIdentifierHeaderName": "header-key", + "executionFilterIdentifierHeaderValue": "header-value2", + "provisioningState": "Succeeded", + "lastUpdateTime": "2024-04-25T15:19:23Z" + } + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2024-07-22-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Create.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Create.json new file mode 100644 index 000000000000..b3293b8c2240 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Create.json @@ -0,0 +1,50 @@ +{ + "operationId": "EdgeActionVersion_Create", + "title": "CreateEdgeActionVersion", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2024-07-22-preview", + "edgeActionName": "edgeAction1", + "version": "version2", + "resource": { + "location": "global", + "properties": { + "deploymentType": "zip", + "isDefaultVersion": "True" + } + } + }, + "responses": { + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version2", + "name": "version2", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + } + }, + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version2", + "name": "vesrion2", + "type": "Microsoft.Cdn/edgAactions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Delete.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Delete.json new file mode 100644 index 000000000000..584a81045993 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Delete.json @@ -0,0 +1,19 @@ +{ + "operationId": "EdgeActionsVersion_Delete", + "title": "DeleteEdgeActionVersion", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2024-07-22-preview", + "edgeActionName": "edgeAction1", + "version": "version1" + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2024-07-22-preview" + } + }, + "204": {} + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Get.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Get.json new file mode 100644 index 000000000000..2288d25b6c09 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Get.json @@ -0,0 +1,28 @@ +{ + "operationId": "EdgeActionVersion_Get", + "title": "GetEdgeActionVersion", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2024-07-22-preview", + "edgeActionName": "edgeAction1", + "version": "version1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version1", + "name": "version1", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_ListByEdgeAction.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_ListByEdgeAction.json new file mode 100644 index 000000000000..c69c871e579e --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_ListByEdgeAction.json @@ -0,0 +1,44 @@ +{ + "operationId": "EdgeActionVersions_ListByEdgeAction", + "title": "GetEdgeActionVersionsByEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2024-07-22-preview", + "edgeActionName": "edgeAction1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version1", + "name": "version1", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeactions/edgeaction1/versions/version2", + "name": "version2", + "type": "Microsoft.Cdn/edgeactions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "zip", + "validationStatus": "Succeeded", + "isDefaultVersion": "False", + "lastPackageUpdateTime": "2024-05-25T11:19:23Z" + } + } + ] + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Update.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Update.json new file mode 100644 index 000000000000..ee5500d4251e --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActionsVersions_Update.json @@ -0,0 +1,38 @@ +{ + "operationId": "EdgeActionsVersion_Update", + "title": "UpdateEdgeActionVersion", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2024-07-22-preview", + "edgeActionName": "edgeAction1", + "version": "version1", + "properties": { + "properties": { + "deploymentType": "others" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1/versions/version1", + "name": "version1", + "type": "Microsoft.Cdn/edgeActions/versions", + "location": "global", + "properties": { + "provisioningState": "Succeeded", + "deploymentType": "others", + "validationStatus": "Succeeded", + "isDefaultVersion": "True", + "lastPackageUpdateTime": "2024-05-25T16:19:23Z" + } + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2024-07-22-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_AddAttachment.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_AddAttachment.json new file mode 100644 index 000000000000..6d21874605b6 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_AddAttachment.json @@ -0,0 +1,25 @@ +{ + "operationId": "EdgeActions_AddAttachment", + "title": "AddAttachment", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-09-01-preview", + "edgeActionName": "edgeAction1", + "body": { + "attachedResourceId": "/subscriptions/sub1/resourceGroups/rs1/providers/Microsoft.Cdn/Profiles/myProfile/afdEndpoints/ep1/routes/route1" + } + }, + "responses": { + "200": { + "body": { + "edgeActionId": "someguid" + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Create.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Create.json new file mode 100644 index 000000000000..7ae27063a2f5 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Create.json @@ -0,0 +1,51 @@ +{ + "operationId": "EdgeActions_Create", + "title": "CreateEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "resource": { + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + } + } + }, + "responses": { + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1", + "name": "edgeAction1", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + } + }, + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1", + "name": "edgeAction1", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Delete.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Delete.json new file mode 100644 index 000000000000..42db6d08fd6c --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Delete.json @@ -0,0 +1,18 @@ +{ + "operationId": "EdgeActions_Delete", + "title": "DeleteEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1" + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2024-03-06-preview" + } + }, + "204": {} + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_DeleteAttachment.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_DeleteAttachment.json new file mode 100644 index 000000000000..e5e87774eaf2 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_DeleteAttachment.json @@ -0,0 +1,21 @@ +{ + "operationId": "EdgeActions_DeleteAttachment", + "title": "DeleteAttachment", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-09-01-preview", + "edgeActionName": "edgeAction1", + "body": { + "attachedResourceId": "/subscriptions/sub1/resourceGroups/rs1/providers/Microsoft.Cdn/Profiles/myProfile/afdEndpoints/ep1/routes/route1" + } + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2025-09-01-preview" + } + }, + "204": {} + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Get.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Get.json new file mode 100644 index 000000000000..653b64e1fce3 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Get.json @@ -0,0 +1,28 @@ +{ + "operationId": "EdgeActions_Get", + "title": "GetEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1", + "name": "edgeAction1", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_ListByResourceGroup.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_ListByResourceGroup.json new file mode 100644 index 000000000000..bbd2be523837 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_ListByResourceGroup.json @@ -0,0 +1,45 @@ +{ + "operationId": "EdgeActions_ListByResourceGroup", + "title": "ListEdgeActions_byResourceGroup", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-12-01-preview", + "resourceGroupName": "testrg" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1", + "name": "edgeAction1", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction2", + "name": "edgeAction2", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + } + ] + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_ListBySubscription.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_ListBySubscription.json new file mode 100644 index 000000000000..ca2b33f30a15 --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_ListBySubscription.json @@ -0,0 +1,44 @@ +{ + "operationId": "EdgeActions_ListBySubscription", + "title": "ListEdgeActions_bySubscription", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-12-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1", + "name": "edgeAction1", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + }, + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction2", + "name": "edgeAction2", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + } + ] + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Update.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Update.json new file mode 100644 index 000000000000..8bded21a0cce --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/examples/EdgeActions_Update.json @@ -0,0 +1,39 @@ +{ + "operationId": "EdgeActions_Update", + "title": "UpdateEdgeAction", + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "testrg", + "api-version": "2025-12-01-preview", + "edgeActionName": "edgeAction1", + "properties": { + "sku": { + "name": "Standard", + "tier": "Standard" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/Microsoft.Cdn/edgeActions/edgeAction1", + "name": "edgeAction1", + "type": "Microsoft.Cdn/edgeActions", + "location": "global", + "sku": { + "name": "Standard", + "tier": "Standard" + }, + "properties": { + "provisioningState": "Succeeded", + "attachments": [] + } + } + }, + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/resourcegroups/resourceGroupName/providers/Microsoft.Cdn/operationresults/operationId?api-version=2024-03-06-preview" + } + } + } +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/openapi.json b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/openapi.json new file mode 100644 index 000000000000..ea21654054bc --- /dev/null +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/preview/2025-12-01-preview/openapi.json @@ -0,0 +1,1934 @@ +{ + "swagger": "2.0", + "info": { + "title": "Microsoft.Cdn/EdgeAction", + "version": "2025-12-01-preview", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "EdgeActions" + }, + { + "name": "EdgeActionVersions" + }, + { + "name": "EdgeActionExecutionFilters" + } + ], + "paths": { + "/subscriptions/{subscriptionId}/providers/Microsoft.Cdn/edgeActions": { + "get": { + "operationId": "EdgeActions_ListBySubscription", + "tags": [ + "EdgeActions" + ], + "description": "List EdgeAction resources by subscription ID", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeActionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ListEdgeActions_bySubscription": { + "$ref": "./examples/EdgeActions_ListBySubscription.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/edgeActions": { + "get": { + "operationId": "EdgeActions_ListByResourceGroup", + "tags": [ + "EdgeActions" + ], + "description": "List EdgeAction resources by resource group", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeActionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ListEdgeActions_byResourceGroup": { + "$ref": "./examples/EdgeActions_ListByResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/edgeActions/{edgeActionName}": { + "get": { + "operationId": "EdgeActions_Get", + "tags": [ + "EdgeActions" + ], + "description": "Get a EdgeAction", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeAction" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetEdgeAction": { + "$ref": "./examples/EdgeActions_Get.json" + } + } + }, + "put": { + "operationId": "EdgeActions_Create", + "tags": [ + "EdgeActions" + ], + "description": "Create a EdgeAction", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/EdgeAction" + } + } + ], + "responses": { + "200": { + "description": "Resource 'EdgeAction' update operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeAction" + } + }, + "201": { + "description": "Resource 'EdgeAction' create operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeAction" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "CreateEdgeAction": { + "$ref": "./examples/EdgeActions_Create.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "EdgeActions_Update", + "tags": [ + "EdgeActions" + ], + "description": "Update a EdgeAction", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "properties", + "in": "body", + "description": "The resource properties to be updated.", + "required": true, + "schema": { + "$ref": "#/definitions/EdgeActionUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeAction" + } + }, + "202": { + "description": "Resource update request accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "UpdateEdgeAction": { + "$ref": "./examples/EdgeActions_Update.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "EdgeActions_Delete", + "tags": [ + "EdgeActions" + ], + "description": "Delete a EdgeAction", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "DeleteEdgeAction": { + "$ref": "./examples/EdgeActions_Delete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/edgeActions/{edgeActionName}/executionFilters": { + "get": { + "operationId": "EdgeActionExecutionFilters_ListByEdgeAction", + "tags": [ + "EdgeActionExecutionFilters" + ], + "description": "List EdgeActionExecutionFilter resources by EdgeAction", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeActionExecutionFilterListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ListEdgeActionsExecutionFiltersByEdgeAction": { + "$ref": "./examples/EdgeActionExecutionFilters_ListByEdgeAction.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/edgeActions/{edgeActionName}/executionFilters/{executionFilter}": { + "get": { + "operationId": "EdgeActionExecutionFilters_Get", + "tags": [ + "EdgeActionExecutionFilters" + ], + "description": "Get a EdgeActionExecutionFilter", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "executionFilter", + "in": "path", + "description": "The name of the execution filter", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeActionExecutionFilter" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetEdgeActionExecutionFilters": { + "$ref": "./examples/EdgeActionExecutionFilters_Get.json" + } + } + }, + "put": { + "operationId": "EdgeActionExecutionFilters_Create", + "tags": [ + "EdgeActionExecutionFilters" + ], + "description": "Create a EdgeActionExecutionFilter", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "executionFilter", + "in": "path", + "description": "The name of the execution filter", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/EdgeActionExecutionFilter" + } + } + ], + "responses": { + "200": { + "description": "Resource 'EdgeActionExecutionFilter' update operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeActionExecutionFilter" + } + }, + "201": { + "description": "Resource 'EdgeActionExecutionFilter' create operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeActionExecutionFilter" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "CreateEdgeActionExecutionFilters": { + "$ref": "./examples/EdgeActionExecutionFilters_Create.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "EdgeActionExecutionFilters_Update", + "tags": [ + "EdgeActionExecutionFilters" + ], + "description": "Update a EdgeActionExecutionFilter", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "executionFilter", + "in": "path", + "description": "The name of the execution filter", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "properties", + "in": "body", + "description": "The resource properties to be updated.", + "required": true, + "schema": { + "$ref": "#/definitions/EdgeActionExecutionFilterUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeActionExecutionFilter" + } + }, + "202": { + "description": "Resource update request accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "UpdateEdgeActionExecutionFilters": { + "$ref": "./examples/EdgeActionExecutionFilters_Update.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "EdgeActionExecutionFilters_Delete", + "tags": [ + "EdgeActionExecutionFilters" + ], + "description": "Delete a EdgeActionExecutionFilter", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "executionFilter", + "in": "path", + "description": "The name of the execution filter", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "DeleteEdgeActionExecutionFilters": { + "$ref": "./examples/EdgeActionExecutionFilters_Delete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/edgeActions/{edgeActionName}/versions": { + "get": { + "operationId": "EdgeActionVersions_ListByEdgeAction", + "tags": [ + "EdgeActionVersions" + ], + "description": "List EdgeActionVersion resources by EdgeAction", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeActionVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetEdgeActionVersionsByEdgeAction": { + "$ref": "./examples/EdgeActionVersions_ListByEdgeAction.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/edgeActions/{edgeActionName}/versions/{version}": { + "get": { + "operationId": "EdgeActionVersions_Get", + "tags": [ + "EdgeActionVersions" + ], + "description": "Get a EdgeActionVersion", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "version", + "in": "path", + "description": "The name of the Edge Action version", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeActionVersion" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetEdgeActionVersion": { + "$ref": "./examples/EdgeActionVersions_Get.json" + } + } + }, + "put": { + "operationId": "EdgeActionVersions_Create", + "tags": [ + "EdgeActionVersions" + ], + "description": "Create a EdgeActionVersion", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "version", + "in": "path", + "description": "The name of the Edge Action version", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/EdgeActionVersion" + } + } + ], + "responses": { + "200": { + "description": "Resource 'EdgeActionVersion' update operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeActionVersion" + } + }, + "201": { + "description": "Resource 'EdgeActionVersion' create operation succeeded", + "schema": { + "$ref": "#/definitions/EdgeActionVersion" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "CreateEdgeActionVersion": { + "$ref": "./examples/EdgeActionVersions_Create.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "EdgeActionVersions_Update", + "tags": [ + "EdgeActionVersions" + ], + "description": "Update a EdgeActionVersion", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "version", + "in": "path", + "description": "The name of the Edge Action version", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "properties", + "in": "body", + "description": "The resource properties to be updated.", + "required": true, + "schema": { + "$ref": "#/definitions/EdgeActionVersionUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeActionVersion" + } + }, + "202": { + "description": "Resource update request accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "UpdateEdgeActionVersion": { + "$ref": "./examples/EdgeActionVersions_Update.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "EdgeActionVersions_Delete", + "tags": [ + "EdgeActionVersions" + ], + "description": "Delete a EdgeActionVersion", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "version", + "in": "path", + "description": "The name of the Edge Action version", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "DeleteEdgeActionVersion": { + "$ref": "./examples/EdgeActionVersions_Delete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/edgeActions/{edgeActionName}/versions/{version}/deployVersionCode": { + "post": { + "operationId": "EdgeActionVersions_DeployVersionCode", + "tags": [ + "EdgeActionVersions" + ], + "description": "A long-running resource action.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "version", + "in": "path", + "description": "The name of the Edge Action version", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "body", + "in": "body", + "description": "The content of the action request", + "required": true, + "schema": { + "$ref": "#/definitions/VersionCode" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/EdgeActionVersionProperties" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "DeployVersionCode": { + "$ref": "./examples/EdgeActionVersions_DeployVersionCode.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/edgeActions/{edgeActionName}/versions/{version}/getVersionCode": { + "post": { + "operationId": "EdgeActionVersions_GetVersionCode", + "tags": [ + "EdgeActionVersions" + ], + "description": "A long-running resource action.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "version", + "in": "path", + "description": "The name of the Edge Action version", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/VersionCode" + } + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GetVersionCode": { + "$ref": "./examples/EdgeActionVersions_GetVersionCode.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/edgeActions/{edgeActionName}/versions/{version}/swapDefault": { + "post": { + "operationId": "EdgeActionVersions_SwapDefault", + "tags": [ + "EdgeActionVersions" + ], + "description": "A long-running resource action.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "edgeActionName", + "in": "path", + "description": "The name of the Edge Action", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + }, + { + "name": "version", + "in": "path", + "description": "The name of the Edge Action version", + "required": true, + "type": "string", + "maxLength": 50, + "pattern": "[a-zA-Z0-9]+" + } + ], + "responses": { + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Action completed successfully." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Swap Default Version": { + "$ref": "./examples/EdgeActionVersions_SwapDefault.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "AttachedResourceId": { + "type": "string", + "format": "arm-id", + "description": "Azure resource identifier for attached routes", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Cdn/Profiles/afdEndpoints/routes" + } + ] + } + }, + "Azure.ResourceManager.CommonTypes.TrackedResourceUpdate": { + "type": "object", + "title": "Tracked Resource", + "description": "The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/Resource" + } + ] + }, + "EdgeAction": { + "type": "object", + "description": "Concrete tracked resource types can be created by aliasing this type using a specific property type.", + "properties": { + "properties": { + "$ref": "#/definitions/EdgeActionProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true, + "x-ms-mutability": [ + "read", + "create" + ] + }, + "sku": { + "$ref": "#/definitions/SkuType", + "description": "The sku type of the edge action" + } + }, + "required": [ + "sku" + ], + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/TrackedResource" + } + ] + }, + "EdgeActionAttachment": { + "type": "object", + "description": "Edge action attachment information", + "properties": { + "id": { + "type": "string", + "description": "The edge action attachment id", + "readOnly": true + }, + "attachedResourceId": { + "$ref": "#/definitions/AttachedResourceId", + "description": "The attached resource Id", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + } + }, + "required": [ + "attachedResourceId" + ] + }, + "EdgeActionExecutionFilter": { + "type": "object", + "description": "Concrete tracked resource types can be created by aliasing this type using a specific property type.", + "properties": { + "properties": { + "$ref": "#/definitions/EdgeActionExecutionFilterProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true, + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/TrackedResource" + } + ] + }, + "EdgeActionExecutionFilterListResult": { + "type": "object", + "description": "The response of a EdgeActionExecutionFilter list operation.", + "properties": { + "value": { + "type": "array", + "description": "The EdgeActionExecutionFilter items on this page", + "items": { + "$ref": "#/definitions/EdgeActionExecutionFilter" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "EdgeActionExecutionFilterProperties": { + "type": "object", + "description": "Properties for edge action execution filter", + "properties": { + "versionId": { + "$ref": "#/definitions/EdgeActionVersionId", + "description": "The referenced versionId of the edgeaction version", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "lastUpdateTime": { + "type": "string", + "format": "date-time", + "description": "The last update time in UTC for the execution filter", + "readOnly": true + }, + "executionFilterIdentifierHeaderName": { + "type": "string", + "description": "Custom Header Key associated with the execution filter", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "executionFilterIdentifierHeaderValue": { + "type": "string", + "description": "Custom Header Value associated with the execution filter", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "The provisioning state", + "readOnly": true + } + }, + "required": [ + "versionId", + "executionFilterIdentifierHeaderName", + "executionFilterIdentifierHeaderValue" + ] + }, + "EdgeActionExecutionFilterPropertiesUpdate": { + "type": "object", + "description": "Properties for edge action execution filter", + "properties": { + "versionId": { + "$ref": "#/definitions/EdgeActionVersionId", + "description": "The referenced versionId of the edgeaction version", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "executionFilterIdentifierHeaderName": { + "type": "string", + "description": "Custom Header Key associated with the execution filter", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "executionFilterIdentifierHeaderValue": { + "type": "string", + "description": "Custom Header Value associated with the execution filter", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + } + } + }, + "EdgeActionExecutionFilterUpdate": { + "type": "object", + "description": "Concrete tracked resource types can be created by aliasing this type using a specific property type.", + "properties": { + "properties": { + "$ref": "#/definitions/EdgeActionExecutionFilterPropertiesUpdate", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true, + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "allOf": [ + { + "$ref": "#/definitions/Azure.ResourceManager.CommonTypes.TrackedResourceUpdate" + } + ] + }, + "EdgeActionIsDefaultVersion": { + "type": "string", + "description": "Indicates whether this is the default version", + "enum": [ + "True", + "False" + ], + "x-ms-enum": { + "name": "EdgeActionIsDefaultVersion", + "modelAsString": true, + "values": [ + { + "name": "True", + "value": "True", + "description": "This is the default version" + }, + { + "name": "False", + "value": "False", + "description": "This is not the default version" + } + ] + } + }, + "EdgeActionListResult": { + "type": "object", + "description": "The response of a EdgeAction list operation.", + "properties": { + "value": { + "type": "array", + "description": "The EdgeAction items on this page", + "items": { + "$ref": "#/definitions/EdgeAction" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "EdgeActionProperties": { + "type": "object", + "description": "Represents an edge action properties", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "The provisioning state of the edge action", + "readOnly": true + }, + "attachments": { + "type": "array", + "description": "A list of attachments for the edge action", + "items": { + "$ref": "#/definitions/EdgeActionAttachment" + }, + "readOnly": true + } + }, + "required": [ + "attachments" + ] + }, + "EdgeActionPropertiesUpdate": { + "type": "object", + "description": "Represents an edge action properties" + }, + "EdgeActionUpdate": { + "type": "object", + "description": "Concrete tracked resource types can be created by aliasing this type using a specific property type.", + "properties": { + "properties": { + "$ref": "#/definitions/EdgeActionPropertiesUpdate", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true, + "x-ms-mutability": [ + "read", + "create" + ] + }, + "sku": { + "$ref": "#/definitions/SkuTypeUpdate", + "description": "The sku type of the edge action" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Azure.ResourceManager.CommonTypes.TrackedResourceUpdate" + } + ] + }, + "EdgeActionVersion": { + "type": "object", + "description": "Concrete tracked resource types can be created by aliasing this type using a specific property type.", + "properties": { + "properties": { + "$ref": "#/definitions/EdgeActionVersionProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true, + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/TrackedResource" + } + ] + }, + "EdgeActionVersionDeploymentType": { + "type": "string", + "description": "The deployment type for edge action versions", + "enum": [ + "zip", + "file", + "others" + ], + "x-ms-enum": { + "name": "EdgeActionVersionDeploymentType", + "modelAsString": true, + "values": [ + { + "name": "zip", + "value": "zip", + "description": "ZIP file deployment" + }, + { + "name": "file", + "value": "file", + "description": "Single file deployment" + }, + { + "name": "others", + "value": "others", + "description": "Other deployment types" + } + ] + } + }, + "EdgeActionVersionId": { + "type": "string", + "format": "arm-id", + "description": "Azure resource identifier for edge action versions", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Cdn/edgeActions/versions" + } + ] + } + }, + "EdgeActionVersionListResult": { + "type": "object", + "description": "The response of a EdgeActionVersion list operation.", + "properties": { + "value": { + "type": "array", + "description": "The EdgeActionVersion items on this page", + "items": { + "$ref": "#/definitions/EdgeActionVersion" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "EdgeActionVersionProperties": { + "type": "object", + "description": "Represents an edge action version", + "properties": { + "deploymentType": { + "$ref": "#/definitions/EdgeActionVersionDeploymentType", + "description": "The deployment type", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "validationStatus": { + "$ref": "#/definitions/EdgeActionVersionValidationStatus", + "description": "The validation status", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "The provisioning state", + "readOnly": true + }, + "isDefaultVersion": { + "$ref": "#/definitions/EdgeActionIsDefaultVersion", + "description": "The active state", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "lastPackageUpdateTime": { + "type": "string", + "format": "date-time", + "description": "The last update time in UTC for package update", + "readOnly": true + } + }, + "required": [ + "deploymentType", + "isDefaultVersion" + ] + }, + "EdgeActionVersionPropertiesUpdate": { + "type": "object", + "description": "Represents an edge action version", + "properties": { + "deploymentType": { + "$ref": "#/definitions/EdgeActionVersionDeploymentType", + "description": "The deployment type", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "isDefaultVersion": { + "$ref": "#/definitions/EdgeActionIsDefaultVersion", + "description": "The active state", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + } + } + }, + "EdgeActionVersionUpdate": { + "type": "object", + "description": "Concrete tracked resource types can be created by aliasing this type using a specific property type.", + "properties": { + "properties": { + "$ref": "#/definitions/EdgeActionVersionPropertiesUpdate", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true, + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "allOf": [ + { + "$ref": "#/definitions/Azure.ResourceManager.CommonTypes.TrackedResourceUpdate" + } + ] + }, + "EdgeActionVersionValidationStatus": { + "type": "string", + "description": "The validation status for edge action versions", + "enum": [ + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "EdgeActionVersionValidationStatus", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Validation succeeded" + }, + { + "name": "Failed", + "value": "Failed", + "description": "Validation failed" + } + ] + }, + "readOnly": true + }, + "ProvisioningState": { + "type": "string", + "description": "The status of the current operation", + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "Provisioning", + "Upgrading" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Resource has been created." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Resource creation failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Resource creation was canceled." + }, + { + "name": "Provisioning", + "value": "Provisioning", + "description": "Initial provisioning in progress" + }, + { + "name": "Upgrading", + "value": "Upgrading", + "description": "Upgrade in progress" + } + ] + }, + "readOnly": true + }, + "SkuType": { + "type": "object", + "description": "The SKU type for the edge action", + "properties": { + "name": { + "type": "string", + "description": "The name of the SKU" + }, + "tier": { + "type": "string", + "description": "The tier of the SKU" + } + }, + "required": [ + "name", + "tier" + ] + }, + "SkuTypeUpdate": { + "type": "object", + "description": "The SKU type for the edge action", + "properties": { + "name": { + "type": "string", + "description": "The name of the SKU" + }, + "tier": { + "type": "string", + "description": "The tier of the SKU" + } + } + }, + "VersionCode": { + "type": "object", + "description": "Version code information for edge action", + "properties": { + "content": { + "type": "string", + "description": "The version code deployment content ", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "name": { + "type": "string", + "description": "The version code name", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + } + }, + "required": [ + "content", + "name" + ] + } + }, + "parameters": {} +} diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/readme.md b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/readme.md index ceb5e9833781..4357f3d3a24e 100644 --- a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/readme.md +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/readme.md @@ -28,13 +28,39 @@ These are the global settings for the EdgeActions API. title: EdgeActionsManagementClient description: Edge Actions Management Client openapi-type: arm -tag: package-2025-09-01-preview +tag: package-2025-12-01-preview +``` + +### Tag: package-2025-12-01-preview + +These settings apply only when `--tag=package-2025-12-01-preview` is specified on the command line. + +This is the default tag. It removes the internal `addAttachment` and `deleteAttachment` operations +that are used exclusively by the AFD RP. + +```yaml $(tag) == 'package-2025-12-01-preview' +input-file: + - preview/2025-12-01-preview/openapi.json +modelerfour: + lenient-model-deduplication: true + prenamer: true +suppressions: + # Operations endpoint for Microsoft.Cdn already defined in central Cdn swagger, not duplicated here + - code: OperationsAPIImplementation + reason: Operations API implemented in central Cdn swagger (package-preview-2025-09) for provider Microsoft.Cdn. + # LRO POST actions intentionally return 200 (final) and 202 (in-progress) matching 2024-07-22-preview baseline. + - code: PostResponseCodes + where: + - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/edgeActions/{edgeActionName}/versions/{version}/swapDefault"].post + reason: Preexisting LRO pattern (200,202) retained for backward compatibility with 2024-07-22-preview. ``` ### Tag: package-2025-09-01-preview These settings apply only when `--tag=package-2025-09-01-preview` is specified on the command line. +This version includes the internal `addAttachment` and `deleteAttachment` operations. + ```yaml $(tag) == 'package-2025-09-01-preview' input-file: - preview/2025-09-01-preview/openapi.json diff --git a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/tspconfig.yaml b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/tspconfig.yaml index 76d49a355190..22fc04547234 100644 --- a/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/tspconfig.yaml +++ b/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/tspconfig.yaml @@ -4,14 +4,13 @@ parameters: linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" -output-dir: "{project-root}/preview/2025-09-01-preview" emit: - "@azure-tools/typespec-autorest" options: "@azure-tools/typespec-autorest": omit-unreachable-types: true - emitter-output-dir: "{output-dir}" - output-file: "openapi.json" + emitter-output-dir: "{project-root}" + output-file: "{version-status}/{version}/openapi.json" azure-resource-provider-folder: "resource-manager" examples-dir: "{project-root}/examples" arm-types-dir: "{project-root}/../../../../common-types/resource-management" From 16c5a93d4e3e6d4cec95c969991fd65cb3458327 Mon Sep 17 00:00:00 2001 From: Aakash Saini <aakashsaini@microsoft.com> Date: Tue, 30 Dec 2025 16:14:02 +0530 Subject: [PATCH 087/117] Fixed SiteDetails in EdgeMachine (#39407) merging bug fix --- .../Microsoft.AzureStackHCI/StackHCI/edgeMachine.tsp | 2 +- .../StackHCI/preview/2025-12-01-preview/hci.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/edgeMachine.tsp b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/edgeMachine.tsp index cb1cdcbf207f..984c1a8f7fd4 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/edgeMachine.tsp +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/edgeMachine.tsp @@ -248,7 +248,7 @@ model SiteDetails { ]>; @doc("Edge Device configuration received from site common configuration.") - deviceConfiguration?: DeviceConfiguration; + deviceConfiguration?: TargetDeviceConfiguration; } @added(Versions.v2025_12_01_preview) diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/hci.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/hci.json index 2ddbe3bab442..95133fe6e49d 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/hci.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCI/preview/2025-12-01-preview/hci.json @@ -13145,7 +13145,7 @@ } }, "deviceConfiguration": { - "$ref": "#/definitions/DeviceConfiguration", + "$ref": "#/definitions/TargetDeviceConfiguration", "description": "Edge Device configuration received from site common configuration." } }, From 032a0e553ac3e692bf5858b50653a8e9a7d18264 Mon Sep 17 00:00:00 2001 From: MJ <71822730+mjmadhu@users.noreply.github.com> Date: Wed, 31 Dec 2025 14:02:50 +0530 Subject: [PATCH 088/117] Added new api to provide workspace details using workspace ID (#39186) * Base commit to add new api-version * Added new api to provide workspace details using workspace ID * Fixed CI validation * Fixed CI validation * Update specification/loadtestservice/data-plane/playwright/typespec/models.tsp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update specification/loadtestservice/data-plane/playwright/typespec/models.tsp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/playwright.json Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fixed CI validation --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Mike Harder <mharder@microsoft.com> --- .../AccessTokens_CreateOrReplace.json | 35 + .../AccessTokens_Delete.json | 12 + .../2026-01-01-preview/AccessTokens_Get.json | 20 + .../2026-01-01-preview/AccessTokens_List.json | 24 + .../TestRuns_CreateOrUpdate.json | 86 + .../2026-01-01-preview/TestRuns_List.json | 51 + .../2026-01-01-preview/Workspaces_Get.json | 25 + .../Workspaces_GetBrowsers.json | 16 + .../data-plane/playwright/main.tsp | 7 +- .../AccessTokens_CreateOrReplace.json | 35 + .../examples/AccessTokens_Delete.json | 12 + .../examples/AccessTokens_Get.json | 20 + .../examples/AccessTokens_List.json | 24 + .../examples/TestRuns_CreateOrUpdate.json | 86 + .../examples/TestRuns_List.json | 51 + .../examples/Workspaces_Get.json | 25 + .../examples/Workspaces_GetBrowsers.json | 16 + .../2026-01-01-preview/playwright.json | 1407 +++++++++++++++++ .../data-plane/playwright/readme.md | 14 + .../playwright/typespec/accesstokens.tsp | 73 + .../data-plane/playwright/typespec/models.tsp | 112 ++ .../playwright/{ => typespec}/routes.tsp | 31 +- .../{models.tsp => typespec/testruns.tsp} | 85 +- 23 files changed, 2169 insertions(+), 98 deletions(-) create mode 100644 specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_CreateOrReplace.json create mode 100644 specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_Delete.json create mode 100644 specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_Get.json create mode 100644 specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_List.json create mode 100644 specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/TestRuns_CreateOrUpdate.json create mode 100644 specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/TestRuns_List.json create mode 100644 specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/Workspaces_Get.json create mode 100644 specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/Workspaces_GetBrowsers.json create mode 100644 specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_CreateOrReplace.json create mode 100644 specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_Delete.json create mode 100644 specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_Get.json create mode 100644 specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_List.json create mode 100644 specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/TestRuns_CreateOrUpdate.json create mode 100644 specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/TestRuns_List.json create mode 100644 specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/Workspaces_Get.json create mode 100644 specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/Workspaces_GetBrowsers.json create mode 100644 specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/playwright.json create mode 100644 specification/loadtestservice/data-plane/playwright/typespec/accesstokens.tsp create mode 100644 specification/loadtestservice/data-plane/playwright/typespec/models.tsp rename specification/loadtestservice/data-plane/playwright/{ => typespec}/routes.tsp (54%) rename specification/loadtestservice/data-plane/playwright/{models.tsp => typespec/testruns.tsp} (66%) diff --git a/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_CreateOrReplace.json b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_CreateOrReplace.json new file mode 100644 index 000000000000..02a942aec214 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_CreateOrReplace.json @@ -0,0 +1,35 @@ +{ + "title": "AccessTokens_CreateOrReplace", + "operationId": "AccessTokens_CreateOrReplace", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000", + "accessTokenId": "00000000-0000-0000-0000-000000000000", + "resource": { + "name": "sampleAccessToken", + "expiryAt": "2022-09-28T12:32:33Z" + } + }, + "responses": { + "200": { + "body": { + "id": "00000000-0000-0000-0000-000000000000", + "name": "sampleAccessToken", + "jwtToken": "sampleJwtToken", + "createdAt": "2021-09-28T12:32:33Z", + "expiryAt": "2022-09-28T12:32:33Z", + "state": "Active" + } + }, + "201": { + "body": { + "id": "00000000-0000-0000-0000-000000000000", + "name": "sampleAccessToken", + "jwtToken": "sampleJwtToken", + "createdAt": "2021-09-28T12:32:33Z", + "expiryAt": "2022-09-28T12:32:33Z", + "state": "Active" + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_Delete.json b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_Delete.json new file mode 100644 index 000000000000..9b27d85e7f04 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_Delete.json @@ -0,0 +1,12 @@ +{ + "title": "AccessTokens_Delete", + "operationId": "AccessTokens_Delete", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000", + "accessTokenId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "204": {} + } +} diff --git a/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_Get.json b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_Get.json new file mode 100644 index 000000000000..ff9d9d26ff81 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_Get.json @@ -0,0 +1,20 @@ +{ + "title": "AccessTokens_Get", + "operationId": "AccessTokens_Get", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000", + "accessTokenId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "id": "00000000-0000-0000-0000-000000000000", + "name": "sampleAccessToken", + "createdAt": "2021-09-28T12:32:33Z", + "expiryAt": "2022-09-28T12:32:33Z", + "state": "Active" + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_List.json b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_List.json new file mode 100644 index 000000000000..1ff88ea72560 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/AccessTokens_List.json @@ -0,0 +1,24 @@ +{ + "title": "AccessTokens_List", + "operationId": "AccessTokens_List", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "00000000-0000-0000-0000-000000000000", + "name": "sampleAccessToken", + "createdAt": "2021-09-28T12:32:33Z", + "expiryAt": "2022-09-28T12:32:33Z", + "state": "Active" + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/TestRuns_CreateOrUpdate.json b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/TestRuns_CreateOrUpdate.json new file mode 100644 index 000000000000..bbef8be4c9bf --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/TestRuns_CreateOrUpdate.json @@ -0,0 +1,86 @@ +{ + "title": "TestRuns_CreateOrUpdate", + "operationId": "TestRuns_CreateOrUpdate", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000", + "runId": "00000000-0000-0000-0000-000000000000", + "resource": { + "displayName": "sampleTestRun" + } + }, + "responses": { + "200": { + "body": { + "id": "00000000-0000-0000-0000-000000000000", + "displayName": "sampleTestRun", + "creatorId": "string", + "creatorName": "string", + "config": { + "framework": { + "name": "string", + "version": "string", + "runnerName": "string" + }, + "sdkLanguage": "JAVASCRIPT", + "maxWorkers": 10 + }, + "ciConfig": { + "providerName": "string", + "branch": "string", + "author": "string", + "commitId": "string", + "revisionUrl": "string" + }, + "summary": { + "status": "RUNNING", + "billableTime": 0, + "numBrowserSessions": 1, + "maxConcurrentBrowserSessions": 10, + "startTime": "2025-06-06T11:43:28.954Z", + "endTime": "2025-06-06T11:43:28.954Z", + "duration": 0, + "errorMessages": [ + "string" + ] + } + } + }, + "201": { + "body": { + "id": "00000000-0000-0000-0000-000000000000", + "displayName": "sampleTestRun", + "creatorId": "string", + "creatorName": "string", + "config": { + "framework": { + "name": "string", + "version": "string", + "runnerName": "string" + }, + "sdkLanguage": "JAVASCRIPT", + "maxWorkers": 10 + }, + "ciConfig": { + "providerName": "string", + "branch": "string", + "author": "string", + "commitId": "string", + "revisionUrl": "string" + }, + "summary": { + "status": "RUNNING", + "billableTime": 0, + "numBrowserSessions": 1, + "maxConcurrentBrowserSessions": 10, + "startTime": "2025-06-06T11:43:28.954Z", + "endTime": "2025-06-06T11:43:28.954Z", + "duration": 0, + "errorMessages": [ + "string" + ] + } + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/TestRuns_List.json b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/TestRuns_List.json new file mode 100644 index 000000000000..ec181aa958df --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/TestRuns_List.json @@ -0,0 +1,51 @@ +{ + "title": "TestRuns_List", + "operationId": "TestRuns_List", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "00000000-0000-0000-0000-000000000000", + "displayName": "string", + "creatorId": "string", + "creatorName": "string", + "config": { + "framework": { + "name": "string", + "version": "string", + "runnerName": "string" + }, + "sdkLanguage": "JAVASCRIPT", + "maxWorkers": 10 + }, + "ciConfig": { + "providerName": "string", + "branch": "string", + "author": "string", + "commitId": "string", + "revisionUrl": "string" + }, + "summary": { + "status": "RUNNING", + "billableTime": 0, + "numBrowserSessions": 1, + "maxConcurrentBrowserSessions": 10, + "startTime": "2025-06-06T11:43:28.954Z", + "endTime": "2025-06-06T11:43:28.954Z", + "duration": 0, + "errorMessages": [ + "string" + ] + } + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/Workspaces_Get.json b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/Workspaces_Get.json new file mode 100644 index 000000000000..2acd894b0e79 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/Workspaces_Get.json @@ -0,0 +1,25 @@ +{ + "title": "Workspaces_Get", + "operationId": "Workspaces_Get", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "id": "00000000-0000-0000-0000-000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/dummyrg/providers/Microsoft.LoadTestService/PlaywrightWorkspaces/myWorkspace", + "name": "myPlaywrightWorkspace", + "state": "Active", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "subscriptionState": "Registered", + "tenantId": "00000000-0000-0000-0000-000000000000", + "location": "westus3", + "regionalAffinity": "Enabled", + "localAuth": "Enabled", + "storageUri": "https://examplestorageaccount.blob.core.windows.net" + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/Workspaces_GetBrowsers.json b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/Workspaces_GetBrowsers.json new file mode 100644 index 000000000000..2dfe5cba7aa3 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/examples/2026-01-01-preview/Workspaces_GetBrowsers.json @@ -0,0 +1,16 @@ +{ + "title": "Workspaces_GetBrowsers", + "operationId": "Workspaces_GetBrowsers", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000", + "os": "Linux" + }, + "responses": { + "302": { + "headers": { + "location": "wss://{region}.api.playwright.microsoft.com/redirectURL?api-version=2026-01-01-preview&os=Linux" + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/main.tsp b/specification/loadtestservice/data-plane/playwright/main.tsp index ce1030e53226..7419ac8d0c0c 100644 --- a/specification/loadtestservice/data-plane/playwright/main.tsp +++ b/specification/loadtestservice/data-plane/playwright/main.tsp @@ -3,7 +3,9 @@ import "@typespec/http"; import "@typespec/versioning"; -import "./routes.tsp"; +import "./typespec/routes.tsp"; +import "./typespec/accesstokens.tsp"; +import "./typespec/testruns.tsp"; using TypeSpec.Http; using TypeSpec.Versioning; @@ -51,4 +53,7 @@ enum Versions { @doc("Stable version 2025-09-01 with general availability features.") v2025_09_01: "2025-09-01", + + @doc("Preview version 2026-01-01-preview with experimental features.") + v2026_01_01_preview: "2026-01-01-preview", } diff --git a/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_CreateOrReplace.json b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_CreateOrReplace.json new file mode 100644 index 000000000000..02a942aec214 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_CreateOrReplace.json @@ -0,0 +1,35 @@ +{ + "title": "AccessTokens_CreateOrReplace", + "operationId": "AccessTokens_CreateOrReplace", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000", + "accessTokenId": "00000000-0000-0000-0000-000000000000", + "resource": { + "name": "sampleAccessToken", + "expiryAt": "2022-09-28T12:32:33Z" + } + }, + "responses": { + "200": { + "body": { + "id": "00000000-0000-0000-0000-000000000000", + "name": "sampleAccessToken", + "jwtToken": "sampleJwtToken", + "createdAt": "2021-09-28T12:32:33Z", + "expiryAt": "2022-09-28T12:32:33Z", + "state": "Active" + } + }, + "201": { + "body": { + "id": "00000000-0000-0000-0000-000000000000", + "name": "sampleAccessToken", + "jwtToken": "sampleJwtToken", + "createdAt": "2021-09-28T12:32:33Z", + "expiryAt": "2022-09-28T12:32:33Z", + "state": "Active" + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_Delete.json b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_Delete.json new file mode 100644 index 000000000000..9b27d85e7f04 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_Delete.json @@ -0,0 +1,12 @@ +{ + "title": "AccessTokens_Delete", + "operationId": "AccessTokens_Delete", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000", + "accessTokenId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "204": {} + } +} diff --git a/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_Get.json b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_Get.json new file mode 100644 index 000000000000..ff9d9d26ff81 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_Get.json @@ -0,0 +1,20 @@ +{ + "title": "AccessTokens_Get", + "operationId": "AccessTokens_Get", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000", + "accessTokenId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "id": "00000000-0000-0000-0000-000000000000", + "name": "sampleAccessToken", + "createdAt": "2021-09-28T12:32:33Z", + "expiryAt": "2022-09-28T12:32:33Z", + "state": "Active" + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_List.json b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_List.json new file mode 100644 index 000000000000..1ff88ea72560 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/AccessTokens_List.json @@ -0,0 +1,24 @@ +{ + "title": "AccessTokens_List", + "operationId": "AccessTokens_List", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "00000000-0000-0000-0000-000000000000", + "name": "sampleAccessToken", + "createdAt": "2021-09-28T12:32:33Z", + "expiryAt": "2022-09-28T12:32:33Z", + "state": "Active" + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/TestRuns_CreateOrUpdate.json b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/TestRuns_CreateOrUpdate.json new file mode 100644 index 000000000000..bbef8be4c9bf --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/TestRuns_CreateOrUpdate.json @@ -0,0 +1,86 @@ +{ + "title": "TestRuns_CreateOrUpdate", + "operationId": "TestRuns_CreateOrUpdate", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000", + "runId": "00000000-0000-0000-0000-000000000000", + "resource": { + "displayName": "sampleTestRun" + } + }, + "responses": { + "200": { + "body": { + "id": "00000000-0000-0000-0000-000000000000", + "displayName": "sampleTestRun", + "creatorId": "string", + "creatorName": "string", + "config": { + "framework": { + "name": "string", + "version": "string", + "runnerName": "string" + }, + "sdkLanguage": "JAVASCRIPT", + "maxWorkers": 10 + }, + "ciConfig": { + "providerName": "string", + "branch": "string", + "author": "string", + "commitId": "string", + "revisionUrl": "string" + }, + "summary": { + "status": "RUNNING", + "billableTime": 0, + "numBrowserSessions": 1, + "maxConcurrentBrowserSessions": 10, + "startTime": "2025-06-06T11:43:28.954Z", + "endTime": "2025-06-06T11:43:28.954Z", + "duration": 0, + "errorMessages": [ + "string" + ] + } + } + }, + "201": { + "body": { + "id": "00000000-0000-0000-0000-000000000000", + "displayName": "sampleTestRun", + "creatorId": "string", + "creatorName": "string", + "config": { + "framework": { + "name": "string", + "version": "string", + "runnerName": "string" + }, + "sdkLanguage": "JAVASCRIPT", + "maxWorkers": 10 + }, + "ciConfig": { + "providerName": "string", + "branch": "string", + "author": "string", + "commitId": "string", + "revisionUrl": "string" + }, + "summary": { + "status": "RUNNING", + "billableTime": 0, + "numBrowserSessions": 1, + "maxConcurrentBrowserSessions": 10, + "startTime": "2025-06-06T11:43:28.954Z", + "endTime": "2025-06-06T11:43:28.954Z", + "duration": 0, + "errorMessages": [ + "string" + ] + } + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/TestRuns_List.json b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/TestRuns_List.json new file mode 100644 index 000000000000..ec181aa958df --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/TestRuns_List.json @@ -0,0 +1,51 @@ +{ + "title": "TestRuns_List", + "operationId": "TestRuns_List", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "00000000-0000-0000-0000-000000000000", + "displayName": "string", + "creatorId": "string", + "creatorName": "string", + "config": { + "framework": { + "name": "string", + "version": "string", + "runnerName": "string" + }, + "sdkLanguage": "JAVASCRIPT", + "maxWorkers": 10 + }, + "ciConfig": { + "providerName": "string", + "branch": "string", + "author": "string", + "commitId": "string", + "revisionUrl": "string" + }, + "summary": { + "status": "RUNNING", + "billableTime": 0, + "numBrowserSessions": 1, + "maxConcurrentBrowserSessions": 10, + "startTime": "2025-06-06T11:43:28.954Z", + "endTime": "2025-06-06T11:43:28.954Z", + "duration": 0, + "errorMessages": [ + "string" + ] + } + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/Workspaces_Get.json b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/Workspaces_Get.json new file mode 100644 index 000000000000..2acd894b0e79 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/Workspaces_Get.json @@ -0,0 +1,25 @@ +{ + "title": "Workspaces_Get", + "operationId": "Workspaces_Get", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "id": "00000000-0000-0000-0000-000000000000", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/dummyrg/providers/Microsoft.LoadTestService/PlaywrightWorkspaces/myWorkspace", + "name": "myPlaywrightWorkspace", + "state": "Active", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "subscriptionState": "Registered", + "tenantId": "00000000-0000-0000-0000-000000000000", + "location": "westus3", + "regionalAffinity": "Enabled", + "localAuth": "Enabled", + "storageUri": "https://examplestorageaccount.blob.core.windows.net" + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/Workspaces_GetBrowsers.json b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/Workspaces_GetBrowsers.json new file mode 100644 index 000000000000..2dfe5cba7aa3 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/examples/Workspaces_GetBrowsers.json @@ -0,0 +1,16 @@ +{ + "title": "Workspaces_GetBrowsers", + "operationId": "Workspaces_GetBrowsers", + "parameters": { + "api-version": "2026-01-01-preview", + "workspaceId": "00000000-0000-0000-0000-000000000000", + "os": "Linux" + }, + "responses": { + "302": { + "headers": { + "location": "wss://{region}.api.playwright.microsoft.com/redirectURL?api-version=2026-01-01-preview&os=Linux" + } + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/playwright.json b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/playwright.json new file mode 100644 index 000000000000..0abc083ddfb1 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/preview/2026-01-01-preview/playwright.json @@ -0,0 +1,1407 @@ +{ + "swagger": "2.0", + "info": { + "title": "Playwright Service API", + "version": "2026-01-01-preview", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "x-ms-parameterized-host": { + "hostTemplate": "{endpoint}", + "useSchemePrefix": false, + "parameters": [ + { + "name": "endpoint", + "in": "path", + "description": "Playwright Service API endpoint (protocol and hostname) formatted as https://{region}.api.playwright.microsoft.com.\nThe region corresponds to your Azure Playwright workspace location. You can find this value in your Azure Playwright workspace properties under `dataplaneUri`.", + "required": true, + "type": "string" + } + ] + }, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "OAuth2Auth": [ + "https://playwright.microsoft.com/.default" + ], + "OAuth2Auth_": [ + "https://playwright.microsoft.com/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://playwright.microsoft.com/.default": "" + } + }, + "OAuth2Auth_": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://playwright.microsoft.com/.default": "" + }, + "tokenUrl": "https://login.microsoftonline.com/common/v2.0/oauth2/token" + } + }, + "tags": [], + "paths": { + "/playwrightworkspaces/{workspaceId}": { + "get": { + "operationId": "Workspaces_Get", + "description": "Get details of the Azure resource mapped to a workspace for the given workspace id. Authorization required is Bearer JWT Access token provided by EntraID.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "workspaceId", + "in": "path", + "description": "The workspace ID in GUID format.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "x-ms-useragent", + "in": "header", + "description": "Optional header to specify additional client information when the standard 'User-Agent' header cannot be explicitly set, such as when using Playwright Client. The value should follow the standard 'User-Agent' header format.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/Workspace" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" + }, + "headers": { + "x-ms-error-code": { + "type": "string", + "description": "String error code indicating what went wrong." + } + } + } + }, + "x-ms-examples": { + "Workspaces_Get": { + "$ref": "./examples/Workspaces_Get.json" + } + } + } + }, + "/playwrightworkspaces/{workspaceId}/access-tokens": { + "get": { + "operationId": "AccessTokens_List", + "description": "Lists access tokens for the specified workspace ID. Supports OData query parameters: $select, $filter, $orderby, $top, and $skip. Default page size is 10. Use nextLink in response to fetch additional results. Requires Bearer JWT access token provided by Entra ID.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "workspaceId", + "in": "path", + "description": "The workspace ID in GUID format.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "x-ms-useragent", + "in": "header", + "description": "Optional header to specify additional client information when the standard 'User-Agent' header cannot be explicitly set, such as when using Playwright Client. The value should follow the standard 'User-Agent' header format.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedAccessToken" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" + }, + "headers": { + "x-ms-error-code": { + "type": "string", + "description": "String error code indicating what went wrong." + } + } + } + }, + "x-ms-examples": { + "AccessTokens_List": { + "$ref": "./examples/AccessTokens_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/playwrightworkspaces/{workspaceId}/access-tokens/{accessTokenId}": { + "get": { + "operationId": "AccessTokens_Get", + "description": "Gets an access token for the workspace with the specified access token ID. Requires Bearer JWT access token provided by Entra ID.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "workspaceId", + "in": "path", + "description": "The workspace ID in GUID format.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+" + }, + { + "name": "accessTokenId", + "in": "path", + "description": "The access token ID in GUID format.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "x-ms-useragent", + "in": "header", + "description": "Optional header to specify additional client information when the standard 'User-Agent' header cannot be explicitly set, such as when using Playwright Client. The value should follow the standard 'User-Agent' header format.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/AccessToken" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" + }, + "headers": { + "x-ms-error-code": { + "type": "string", + "description": "String error code indicating what went wrong." + } + } + } + }, + "x-ms-examples": { + "AccessTokens_Get": { + "$ref": "./examples/AccessTokens_Get.json" + } + } + }, + "put": { + "operationId": "AccessTokens_CreateOrReplace", + "description": "Creates an access token for the workspace with the specified access token ID and name. The ID and name must be unique among active access tokens for the user within a Playwright workspace. Requires Bearer JWT access token provided by Entra ID.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "workspaceId", + "in": "path", + "description": "The workspace ID in GUID format.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+" + }, + { + "name": "accessTokenId", + "in": "path", + "description": "The access token ID in GUID format.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "x-ms-useragent", + "in": "header", + "description": "Optional header to specify additional client information when the standard 'User-Agent' header cannot be explicitly set, such as when using Playwright Client. The value should follow the standard 'User-Agent' header format.", + "required": false, + "type": "string" + }, + { + "name": "resource", + "in": "body", + "description": "The resource instance.", + "required": true, + "schema": { + "$ref": "#/definitions/AccessToken" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/AccessToken" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/AccessToken" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" + }, + "headers": { + "x-ms-error-code": { + "type": "string", + "description": "String error code indicating what went wrong." + } + } + } + }, + "x-ms-examples": { + "AccessTokens_CreateOrReplace": { + "$ref": "./examples/AccessTokens_CreateOrReplace.json" + } + } + }, + "delete": { + "operationId": "AccessTokens_Delete", + "description": "Deletes an access token for the workspace with the specified access token ID. Requires Bearer JWT access token provided by Entra ID.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "workspaceId", + "in": "path", + "description": "The workspace ID in GUID format.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+" + }, + { + "name": "accessTokenId", + "in": "path", + "description": "The access token ID in GUID format.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "x-ms-useragent", + "in": "header", + "description": "Optional header to specify additional client information when the standard 'User-Agent' header cannot be explicitly set, such as when using Playwright Client. The value should follow the standard 'User-Agent' header format.", + "required": false, + "type": "string" + } + ], + "responses": { + "204": { + "description": "There is no content to send for this request, but the headers may be useful. ", + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" + }, + "headers": { + "x-ms-error-code": { + "type": "string", + "description": "String error code indicating what went wrong." + } + } + } + }, + "x-ms-examples": { + "AccessTokens_Delete": { + "$ref": "./examples/AccessTokens_Delete.json" + } + } + } + }, + "/playwrightworkspaces/{workspaceId}/browsers": { + "get": { + "operationId": "Workspaces_GetBrowsers", + "description": "Gets remote browsers for the specified workspace ID and redirects the client to execute Playwright scripts. Requires Bearer JWT access token provided by Entra ID or Playwright Service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "workspaceId", + "in": "path", + "description": "The workspace ID in GUID format.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+" + }, + { + "name": "os", + "in": "query", + "description": "The operating system for remote script execution.", + "required": true, + "type": "string", + "enum": [ + "Linux", + "Windows" + ], + "x-ms-enum": { + "name": "OS", + "modelAsString": true, + "values": [ + { + "name": "Linux", + "value": "Linux", + "description": "Linux operating system." + }, + { + "name": "Windows", + "value": "Windows", + "description": "Windows operating system." + } + ] + } + }, + { + "name": "runId", + "in": "query", + "description": "The run ID in GUID format.", + "required": false, + "type": "string", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "x-ms-useragent", + "in": "header", + "description": "Optional header to specify additional client information when the standard 'User-Agent' header cannot be explicitly set, such as when using Playwright Client. The value should follow the standard 'User-Agent' header format.", + "required": false, + "type": "string" + } + ], + "responses": { + "302": { + "description": "Redirection", + "headers": { + "location": { + "type": "string", + "description": "The redirect target URL for executing Playwright scripts on remote browsers." + }, + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" + }, + "headers": { + "x-ms-error-code": { + "type": "string", + "description": "String error code indicating what went wrong." + } + } + } + }, + "x-ms-examples": { + "Workspaces_GetBrowsers": { + "$ref": "./examples/Workspaces_GetBrowsers.json" + } + } + } + }, + "/playwrightworkspaces/{workspaceId}/test-runs": { + "get": { + "operationId": "TestRuns_List", + "description": "Lists test runs for the specified workspace ID. Supports OData query parameters such as $filter and $top. Default page size is 10. Use nextLink in response to fetch additional results. Requires Bearer JWT access token provided by Entra ID or Playwright Service.", + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "workspaceId", + "in": "path", + "description": "The workspace ID in GUID format.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "x-ms-useragent", + "in": "header", + "description": "Optional header to specify additional client information when the standard 'User-Agent' header cannot be explicitly set, such as when using Playwright Client. The value should follow the standard 'User-Agent' header format.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PagedTestRun" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" + }, + "headers": { + "x-ms-error-code": { + "type": "string", + "description": "String error code indicating what went wrong." + } + } + } + }, + "x-ms-examples": { + "TestRuns_List": { + "$ref": "./examples/TestRuns_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/playwrightworkspaces/{workspaceId}/test-runs/{runId}": { + "patch": { + "operationId": "TestRuns_CreateOrUpdate", + "description": "Creates or updates a test run for the workspace with the specified test run ID. Requires Bearer JWT access token provided by Entra ID or Playwright Service.", + "consumes": [ + "application/merge-patch+json" + ], + "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, + { + "name": "workspaceId", + "in": "path", + "description": "The workspace ID in GUID format.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+" + }, + { + "name": "runId", + "in": "path", + "description": "The test run ID in GUID format.", + "required": true, + "type": "string", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+" + }, + { + "$ref": "#/parameters/Azure.Core.ClientRequestIdHeader" + }, + { + "name": "x-ms-useragent", + "in": "header", + "description": "Optional header to specify additional client information when the standard 'User-Agent' header cannot be explicitly set, such as when using Playwright Client. The value should follow the standard 'User-Agent' header format.", + "required": false, + "type": "string" + }, + { + "name": "resource", + "in": "body", + "description": "The resource instance.", + "required": true, + "schema": { + "$ref": "#/definitions/TestRunCreateOrUpdate" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/TestRun" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "201": { + "description": "The request has succeeded and a new resource has been created as a result.", + "schema": { + "$ref": "#/definitions/TestRun" + }, + "headers": { + "x-ms-client-request-id": { + "type": "string", + "format": "uuid", + "description": "An opaque, globally-unique, client-generated string identifier for the request." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Azure.Core.Foundations.ErrorResponse" + }, + "headers": { + "x-ms-error-code": { + "type": "string", + "description": "String error code indicating what went wrong." + } + } + } + }, + "x-ms-examples": { + "TestRuns_CreateOrUpdate": { + "$ref": "./examples/TestRuns_CreateOrUpdate.json" + } + } + } + } + }, + "definitions": { + "AccessToken": { + "type": "object", + "description": "Model of an access token linked to a workspace.", + "properties": { + "id": { + "type": "string", + "description": "The access token ID in GUID format.", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The access token name.", + "minLength": 3, + "maxLength": 24, + "pattern": "^[a-zA-Z0-9-]{3,24}$", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "jwtToken": { + "type": "string", + "description": "The access token value in JWT format.", + "readOnly": true + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The access token creation timestamp in UTC.", + "readOnly": true + }, + "expiryAt": { + "type": "string", + "format": "date-time", + "description": "The access token expiration timestamp in UTC.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "state": { + "$ref": "#/definitions/AccessTokenState", + "description": "The access token state.", + "readOnly": true + } + }, + "required": [ + "id", + "name", + "createdAt", + "expiryAt", + "state" + ] + }, + "AccessTokenState": { + "type": "string", + "description": "The access token state.", + "enum": [ + "Active", + "Expired" + ], + "x-ms-enum": { + "name": "AccessTokenState", + "modelAsString": true, + "values": [ + { + "name": "Active", + "value": "Active", + "description": "The access token is active and can be used for authentication." + }, + { + "name": "Expired", + "value": "Expired", + "description": "The access token has expired and cannot be used for authentication." + } + ] + } + }, + "Azure.Core.Foundations.Error": { + "type": "object", + "description": "The error object.", + "properties": { + "code": { + "type": "string", + "description": "One of a server-defined set of error codes." + }, + "message": { + "type": "string", + "description": "A human-readable representation of the error." + }, + "target": { + "type": "string", + "description": "The target of the error." + }, + "details": { + "type": "array", + "description": "An array of details about specific errors that led to this reported error.", + "items": { + "$ref": "#/definitions/Azure.Core.Foundations.Error" + } + }, + "innererror": { + "$ref": "#/definitions/Azure.Core.Foundations.InnerError", + "description": "An object containing more specific information than the current object about the error." + } + }, + "required": [ + "code", + "message" + ] + }, + "Azure.Core.Foundations.ErrorResponse": { + "type": "object", + "description": "A response containing error details.", + "properties": { + "error": { + "$ref": "#/definitions/Azure.Core.Foundations.Error", + "description": "The error object." + } + }, + "required": [ + "error" + ] + }, + "Azure.Core.Foundations.InnerError": { + "type": "object", + "description": "An object containing more specific information about the error. As per Azure REST API guidelines - https://aka.ms/AzureRestApiGuidelines#handling-errors.", + "properties": { + "code": { + "type": "string", + "description": "One of a server-defined set of error codes." + }, + "innererror": { + "$ref": "#/definitions/Azure.Core.Foundations.InnerError", + "description": "Inner error." + } + } + }, + "CiConfig": { + "type": "object", + "description": "The test run CI configuration.", + "properties": { + "providerName": { + "type": "string", + "description": "The CI provider name.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "branch": { + "type": "string", + "description": "The CI branch name.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "author": { + "type": "string", + "description": "The CI commit author.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "commitId": { + "type": "string", + "description": "The CI commit ID.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "revisionUrl": { + "type": "string", + "description": "The CI revision URL.", + "x-ms-mutability": [ + "read", + "create" + ] + } + } + }, + "PagedAccessToken": { + "type": "object", + "description": "Paged collection of AccessToken items", + "properties": { + "value": { + "type": "array", + "description": "The AccessToken items on this page", + "items": { + "$ref": "#/definitions/AccessToken" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PagedTestRun": { + "type": "object", + "description": "Paged collection of TestRun items", + "properties": { + "value": { + "type": "array", + "description": "The TestRun items on this page", + "items": { + "$ref": "#/definitions/TestRun" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "RunConfig": { + "type": "object", + "description": "The run configuration.", + "properties": { + "framework": { + "$ref": "#/definitions/RunFramework", + "description": "The framework used for the test run.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "sdkLanguage": { + "$ref": "#/definitions/SDKLanguage", + "description": "The SDK language used for the test run.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "maxWorkers": { + "type": "integer", + "format": "int64", + "description": "The maximum number of workers required for the test run.", + "minimum": 1, + "maximum": 500, + "x-ms-mutability": [ + "read", + "create" + ] + } + } + }, + "RunFramework": { + "type": "object", + "description": "The test run framework information.", + "properties": { + "name": { + "type": "string", + "description": "The framework name.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "version": { + "type": "string", + "description": "The framework version.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "runnerName": { + "type": "string", + "description": "The framework runner name.", + "x-ms-mutability": [ + "read", + "create" + ] + } + } + }, + "RunStatus": { + "type": "string", + "description": "The test run status.", + "enum": [ + "RUNNING", + "CLIENT_COMPLETE", + "SERVER_COMPLETE" + ], + "x-ms-enum": { + "name": "RunStatus", + "modelAsString": true, + "values": [ + { + "name": "RUNNING", + "value": "RUNNING", + "description": "The test run is currently running." + }, + { + "name": "CLIENT_COMPLETE", + "value": "CLIENT_COMPLETE", + "description": "The test run has completed on the client side." + }, + { + "name": "SERVER_COMPLETE", + "value": "SERVER_COMPLETE", + "description": "The test run has completed on the server side." + } + ] + } + }, + "RunSummary": { + "type": "object", + "description": "The test run summary.", + "properties": { + "status": { + "$ref": "#/definitions/RunStatus", + "description": "The test run status.", + "readOnly": true + }, + "billableTime": { + "type": "integer", + "format": "int64", + "description": "The test run billable time in milliseconds.", + "readOnly": true + }, + "numBrowserSessions": { + "type": "integer", + "format": "int64", + "description": "The total number of browser sessions allocated to the test run.", + "readOnly": true + }, + "maxConcurrentBrowserSessions": { + "type": "integer", + "format": "int64", + "description": "The highest number of browser sessions that were running concurrently during the test run.", + "readOnly": true + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The test run start time in UTC.", + "readOnly": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "The test run end time in UTC.", + "readOnly": true + }, + "duration": { + "type": "integer", + "format": "int64", + "description": "The test run duration in milliseconds.", + "readOnly": true + }, + "errorMessages": { + "type": "array", + "description": "The list of error messages corresponding to the test run.", + "items": { + "type": "string" + }, + "readOnly": true + } + }, + "required": [ + "status", + "startTime" + ] + }, + "SDKLanguage": { + "type": "string", + "description": "The SDK language used for the test run.", + "enum": [ + "JAVASCRIPT", + "TYPESCRIPT", + "CSHARP" + ], + "x-ms-enum": { + "name": "SDKLanguage", + "modelAsString": true, + "values": [ + { + "name": "JAVASCRIPT", + "value": "JAVASCRIPT", + "description": "JavaScript SDK" + }, + { + "name": "TYPESCRIPT", + "value": "TYPESCRIPT", + "description": "TypeScript SDK" + }, + { + "name": "CSHARP", + "value": "CSHARP", + "description": "C# SDK" + } + ] + } + }, + "SubscriptionState": { + "type": "string", + "description": "The Azure subscription state.", + "enum": [ + "Registered", + "Warned", + "Suspended", + "Deleted", + "Unregistered" + ], + "x-ms-enum": { + "name": "SubscriptionState", + "modelAsString": true, + "values": [ + { + "name": "Registered", + "value": "Registered", + "description": "The subscription state is Registered." + }, + { + "name": "Warned", + "value": "Warned", + "description": "The subscription state is Warned." + }, + { + "name": "Suspended", + "value": "Suspended", + "description": "The subscription state is Suspended." + }, + { + "name": "Deleted", + "value": "Deleted", + "description": "The subscription state is Deleted." + }, + { + "name": "Unregistered", + "value": "Unregistered", + "description": "The subscription state is Unregistered." + } + ] + } + }, + "TestRun": { + "type": "object", + "description": "Model of a test run used for tracking purposes.", + "properties": { + "id": { + "type": "string", + "description": "The test run ID in GUID format.", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+", + "readOnly": true + }, + "displayName": { + "type": "string", + "description": "The test run display name.", + "minLength": 1, + "maxLength": 200, + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "creatorId": { + "type": "string", + "description": "The test run creator's ID.", + "readOnly": true + }, + "creatorName": { + "type": "string", + "description": "The test run creator's name.", + "readOnly": true + }, + "config": { + "$ref": "#/definitions/RunConfig", + "description": "The test run configuration.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "ciConfig": { + "$ref": "#/definitions/CiConfig", + "description": "The test run CI configuration.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "summary": { + "$ref": "#/definitions/RunSummary", + "description": "The test run summary.", + "readOnly": true + } + }, + "required": [ + "id", + "displayName", + "creatorId", + "summary" + ] + }, + "TestRunCreateOrUpdate": { + "type": "object", + "description": "Model of a test run used for tracking purposes.", + "properties": { + "displayName": { + "type": "string", + "description": "The test run display name.", + "minLength": 1, + "maxLength": 200, + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "config": { + "$ref": "#/definitions/RunConfig", + "description": "The test run configuration.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "ciConfig": { + "$ref": "#/definitions/CiConfig", + "description": "The test run CI configuration.", + "x-ms-mutability": [ + "read", + "create" + ] + } + } + }, + "Workspace": { + "type": "object", + "description": "Playwright workspace is the parent resource for most of the other service resources.", + "properties": { + "id": { + "type": "string", + "description": "The workspace ID in GUID format.", + "minLength": 3, + "maxLength": 36, + "pattern": "[A-Za-z0-9]+(-[A-Za-z0-9]+)+", + "readOnly": true + }, + "resourceId": { + "type": "string", + "description": "The fully-qualified Azure resource id for the workspace.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The workspace name.", + "readOnly": true + }, + "state": { + "$ref": "#/definitions/WorkspaceState", + "description": "The state of workspace - Active | Inactive", + "readOnly": true + }, + "subscriptionId": { + "type": "string", + "description": "The Azure subscription id in GUID format for the workspace.", + "readOnly": true + }, + "subscriptionState": { + "$ref": "#/definitions/SubscriptionState", + "description": "The Azure subscription state - Registered | Unregistered | Warned | Suspended | Deleted", + "readOnly": true + }, + "tenantId": { + "type": "string", + "description": "The Azure tenant id in GUID format for the workspace.", + "readOnly": true + }, + "location": { + "type": "string", + "description": "The workspace resource location in Azure, for eg. eastus, southeastasia.", + "readOnly": true + }, + "regionalAffinity": { + "type": "string", + "description": "This property sets the connection region for Playwright client workers to cloud-hosted browsers. If enabled, workers connect to browsers in the closest Azure region, ensuring lower latency. If disabled, workers connect to browsers in the Azure region in which the workspace was initially created.", + "default": "Enabled", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "EnablementStatus", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "The feature is Enabled." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "The feature is Disabled." + } + ] + }, + "readOnly": true + }, + "localAuth": { + "type": "string", + "description": "When enabled, this feature allows the workspace to use local auth (through service access token) for executing operations.", + "default": "Disabled", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "EnablementStatus", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "The feature is Enabled." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "The feature is Disabled." + } + ] + }, + "readOnly": true + }, + "storageUri": { + "type": "string", + "format": "uri", + "description": "When set on Playwright workspace resource, it provides the URI of the Azure storage account used to store workspace artifacts, test results, and reports.", + "readOnly": true + } + }, + "required": [ + "id", + "resourceId", + "name", + "state", + "subscriptionId", + "subscriptionState", + "tenantId", + "location" + ] + }, + "WorkspaceState": { + "type": "string", + "description": "The Playwright workspace state.", + "enum": [ + "Active", + "Inactive" + ], + "x-ms-enum": { + "name": "WorkspaceState", + "modelAsString": true, + "values": [ + { + "name": "Active", + "value": "Active", + "description": "The workspace is Active." + }, + { + "name": "Inactive", + "value": "Inactive", + "description": "The workspace is Inactive." + } + ] + } + } + }, + "parameters": { + "Azure.Core.ClientRequestIdHeader": { + "name": "x-ms-client-request-id", + "in": "header", + "description": "An opaque, globally-unique, client-generated string identifier for the request.", + "required": false, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method", + "x-ms-client-name": "clientRequestId" + }, + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "apiVersion" + } + } +} diff --git a/specification/loadtestservice/data-plane/playwright/readme.md b/specification/loadtestservice/data-plane/playwright/readme.md index 9b9eef70acfd..547ec3da0035 100644 --- a/specification/loadtestservice/data-plane/playwright/readme.md +++ b/specification/loadtestservice/data-plane/playwright/readme.md @@ -30,6 +30,20 @@ description: Microsoft Playwright Service Client openapi-type: data-plane tag: package-2025-09-01 ``` +### Tag: package-2026-01-01-preview +These settings apply only when `--tag=2026-01-01-preview` is specified on the command line. + +```yaml $(tag) == 'package-2026-01-01-preview' +input-file: + - preview/2026-01-01-preview/playwright.json +suppressions: + - code: ValidResponseCodeRequired + from: playwright.json + reason: Need 302 response code as a product requirement to redirect the client for script execution on remote browsers provided by the service. + where: + - $.paths["/playwrightworkspaces/{workspaceId}/browsers"].get.responses +``` + ### Tag: package-2025-09-01 These settings apply only when `--tag=2025-09-01` is specified on the command line. diff --git a/specification/loadtestservice/data-plane/playwright/typespec/accesstokens.tsp b/specification/loadtestservice/data-plane/playwright/typespec/accesstokens.tsp new file mode 100644 index 000000000000..2b795eaf3a56 --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/typespec/accesstokens.tsp @@ -0,0 +1,73 @@ +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; + +namespace Playwright; + +// Models //////////////////// + +@doc("Model of an access token linked to a workspace.") +@resource("access-tokens") +@parentResource(Workspace) +model AccessToken { + @key("accessTokenId") + @doc("The access token ID in GUID format.") + @minLength(3) + @maxLength(36) + @pattern("[A-Za-z0-9]+(-[A-Za-z0-9]+)+") + @visibility(Lifecycle.Read) + id: string; + + // Standard Azure Resource Name parameter regex pattern - https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/reference/data-types/#Azure.ResourceManager.ResourceNameParameter + @minLength(3) + @maxLength(24) + @pattern("^[a-zA-Z0-9-]{3,24}$") + @doc("The access token name.") + @visibility(Lifecycle.Read, Lifecycle.Create) + name: string; + + @doc("The access token value in JWT format.") + @visibility(Lifecycle.Read) + jwtToken?: string; + + @doc("The access token creation timestamp in UTC.") + @visibility(Lifecycle.Read) + createdAt: utcDateTime; + + @doc("The access token expiration timestamp in UTC.") + @visibility(Lifecycle.Read, Lifecycle.Create) + expiryAt: utcDateTime; + + @doc("The access token state.") + @visibility(Lifecycle.Read) + state: AccessTokenState; +} + +@doc("The access token state.") +union AccessTokenState { + string, + + @doc("The access token is active and can be used for authentication.") + Active: "Active", + + @doc("The access token has expired and cannot be used for authentication.") + Expired: "Expired", +} + +// Operations //////////////////// + +interface AccessTokens { + // AccessToken Operations + @doc("Creates an access token for the workspace with the specified access token ID and name. The ID and name must be unique among active access tokens for the user within a Playwright workspace. Requires Bearer JWT access token provided by Entra ID.") + createOrReplace is Operations.ResourceCreateOrReplace<AccessToken>; + + @doc("Gets an access token for the workspace with the specified access token ID. Requires Bearer JWT access token provided by Entra ID.") + get is Operations.ResourceRead<AccessToken>; + + @doc("Deletes an access token for the workspace with the specified access token ID. Requires Bearer JWT access token provided by Entra ID.") + delete is Operations.ResourceDelete<AccessToken>; + + @doc("Lists access tokens for the specified workspace ID. Supports OData query parameters: $select, $filter, $orderby, $top, and $skip. Default page size is 10. Use nextLink in response to fetch additional results. Requires Bearer JWT access token provided by Entra ID.") + list is Operations.ResourceList<AccessToken>; +} diff --git a/specification/loadtestservice/data-plane/playwright/typespec/models.tsp b/specification/loadtestservice/data-plane/playwright/typespec/models.tsp new file mode 100644 index 000000000000..83f434c5136e --- /dev/null +++ b/specification/loadtestservice/data-plane/playwright/typespec/models.tsp @@ -0,0 +1,112 @@ +import "@typespec/rest"; +import "@azure-tools/typespec-azure-core"; + +using TypeSpec.Rest; +namespace Playwright; + +// Models //////////////////// + +@doc("Playwright workspace is the parent resource for most of the other service resources.") +@resource("playwrightworkspaces") +model Workspace { + @key("workspaceId") + @doc("The workspace ID in GUID format.") + @maxLength(36) + @minLength(3) + @pattern("[A-Za-z0-9]+(-[A-Za-z0-9]+)+") + @visibility(Lifecycle.Read) + id: string; + + @doc("The fully-qualified Azure resource id for the workspace.") + @visibility(Lifecycle.Read) + resourceId: string; + + @doc("The workspace name.") + @visibility(Lifecycle.Read) + name: string; + + @doc("The state of workspace - Active | Inactive") + @visibility(Lifecycle.Read) + state: WorkspaceState; + + @doc("The Azure subscription id in GUID format for the workspace.") + @visibility(Lifecycle.Read) + subscriptionId: string; + + @doc("The Azure subscription state - Registered | Unregistered | Warned | Suspended | Deleted") + @visibility(Lifecycle.Read) + subscriptionState: SubscriptionState; + + @doc("The Azure tenant id in GUID format for the workspace.") + @visibility(Lifecycle.Read) + tenantId: string; + + @doc("The workspace resource location in Azure, for eg. eastus, southeastasia.") + @visibility(Lifecycle.Read) + location: string; + + @doc("This property sets the connection region for Playwright client workers to cloud-hosted browsers. If enabled, workers connect to browsers in the closest Azure region, ensuring lower latency. If disabled, workers connect to browsers in the Azure region in which the workspace was initially created.") + @visibility(Lifecycle.Read) + regionalAffinity?: EnablementStatus = EnablementStatus.Enabled; + + @doc("When enabled, this feature allows the workspace to use local auth (through service access token) for executing operations.") + @visibility(Lifecycle.Read) + localAuth?: EnablementStatus = EnablementStatus.Disabled; + + @doc("When set on Playwright workspace resource, it provides the URI of the Azure storage account used to store workspace artifacts, test results, and reports.") + @visibility(Lifecycle.Read) + storageUri?: url; +} + +@doc("The Playwright workspace state.") +union WorkspaceState { + string, + + @doc("The workspace is Active.") + Active: "Active", + + @doc("The workspace is Inactive.") + Inactive: "Inactive", +} + +@doc("The Azure subscription state.") +union SubscriptionState { + string, + + @doc("The subscription state is Registered.") + Registered: "Registered", + + @doc("The subscription state is Warned.") + Warned: "Warned", + + @doc("The subscription state is Suspended.") + Suspended: "Suspended", + + @doc("The subscription state is Deleted.") + Deleted: "Deleted", + + @doc("The subscription state is Unregistered.") + Unregistered: "Unregistered", +} + +@doc("The enablement status of a feature.") +union EnablementStatus { + string, + + @doc("The feature is Enabled.") + Enabled: "Enabled", + + @doc("The feature is Disabled.") + Disabled: "Disabled", +} + +@doc("The operating system to configure for remote script execution.") +union OS { + string, + + @doc("Linux operating system.") + Linux: "Linux", + + @doc("Windows operating system.") + Windows: "Windows", +} diff --git a/specification/loadtestservice/data-plane/playwright/routes.tsp b/specification/loadtestservice/data-plane/playwright/typespec/routes.tsp similarity index 54% rename from specification/loadtestservice/data-plane/playwright/routes.tsp rename to specification/loadtestservice/data-plane/playwright/typespec/routes.tsp index fa3494d8e8d1..e6c053b2b577 100644 --- a/specification/loadtestservice/data-plane/playwright/routes.tsp +++ b/specification/loadtestservice/data-plane/playwright/typespec/routes.tsp @@ -1,10 +1,12 @@ import "@azure-tools/typespec-azure-core"; import "@typespec/http"; +import "@typespec/versioning"; import "./models.tsp"; using Azure.Core; using Azure.Core.Traits; using TypeSpec.Http; +using TypeSpec.Versioning; namespace Playwright; @@ -22,21 +24,6 @@ alias ServiceTraits = NoRepeatableRequests & alias Operations = Azure.Core.ResourceOperations<ServiceTraits>; -interface AccessTokens { - // AccessToken Operations - @doc("Creates an access token for the workspace with the specified access token ID and name. The ID and name must be unique among active access tokens for the user within a Playwright workspace. Requires Bearer JWT access token provided by Entra ID.") - createOrReplace is Operations.ResourceCreateOrReplace<AccessToken>; - - @doc("Gets an access token for the workspace with the specified access token ID. Requires Bearer JWT access token provided by Entra ID.") - get is Operations.ResourceRead<AccessToken>; - - @doc("Deletes an access token for the workspace with the specified access token ID. Requires Bearer JWT access token provided by Entra ID.") - delete is Operations.ResourceDelete<AccessToken>; - - @doc("Lists access tokens for the specified workspace ID. Supports OData query parameters: $select, $filter, $orderby, $top, and $skip. Default page size is 10. Use nextLink in response to fetch additional results. Requires Bearer JWT access token provided by Entra ID.") - list is Operations.ResourceList<AccessToken>; -} - alias GetBrowsersParams = { @path @maxLength(36) @@ -68,6 +55,11 @@ alias GetBrowsersResponse = { interface Workspaces { // Workspaces Operations + + @added(Versions.v2026_01_01_preview) + @doc("Get details of the Azure resource mapped to a workspace for the given workspace id. Authorization required is Bearer JWT Access token provided by EntraID.") + get is Operations.ResourceRead<Workspace>; + #suppress "@azure-tools/typespec-azure-core/no-rpc-path-params" "Operations defined using RpcOperation should not have path parameters. Consider using ResourceAction or ResourceCollectionAction instead." @doc("Gets remote browsers for the specified workspace ID and redirects the client to execute Playwright scripts. Requires Bearer JWT access token provided by Entra ID or Playwright Service.") @route("/playwrightworkspaces/{workspaceId}/browsers") @@ -77,12 +69,3 @@ interface Workspaces { ServiceTraits >; } - -interface TestRuns { - // TestRun Operations - @doc("Creates or updates a test run for the workspace with the specified test run ID. Requires Bearer JWT access token provided by Entra ID or Playwright Service.") - createOrUpdate is Operations.ResourceCreateOrUpdate<TestRun>; - - @doc("Lists test runs for the specified workspace ID. Supports OData query parameters such as $filter and $top. Default page size is 10. Use nextLink in response to fetch additional results. Requires Bearer JWT access token provided by Entra ID or Playwright Service.") - list is Operations.ResourceList<TestRun>; -} diff --git a/specification/loadtestservice/data-plane/playwright/models.tsp b/specification/loadtestservice/data-plane/playwright/typespec/testruns.tsp similarity index 66% rename from specification/loadtestservice/data-plane/playwright/models.tsp rename to specification/loadtestservice/data-plane/playwright/typespec/testruns.tsp index 7c2cdbea6cff..c4eb9ecfdf32 100644 --- a/specification/loadtestservice/data-plane/playwright/models.tsp +++ b/specification/loadtestservice/data-plane/playwright/typespec/testruns.tsp @@ -1,82 +1,10 @@ import "@typespec/rest"; +import "./models.tsp"; using TypeSpec.Rest; namespace Playwright; -// Models //////////////////// - -@doc("Model of an access token linked to a workspace.") -@resource("access-tokens") -@parentResource(Workspace) -model AccessToken { - @key("accessTokenId") - @doc("The access token ID in GUID format.") - @minLength(3) - @maxLength(36) - @pattern("[A-Za-z0-9]+(-[A-Za-z0-9]+)+") - @visibility(Lifecycle.Read) - id: string; - - // Standard Azure Resource Name parameter regex pattern - https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/reference/data-types/#Azure.ResourceManager.ResourceNameParameter - @minLength(3) - @maxLength(24) - @pattern("^[a-zA-Z0-9-]{3,24}$") - @doc("The access token name.") - @visibility(Lifecycle.Read, Lifecycle.Create) - name: string; - - @doc("The access token value in JWT format.") - @visibility(Lifecycle.Read) - jwtToken?: string; - - @doc("The access token creation timestamp in UTC.") - @visibility(Lifecycle.Read) - createdAt: utcDateTime; - - @doc("The access token expiration timestamp in UTC.") - @visibility(Lifecycle.Read, Lifecycle.Create) - expiryAt: utcDateTime; - - @doc("The access token state.") - @visibility(Lifecycle.Read) - state: AccessTokenState; -} - -@doc("The access token state.") -union AccessTokenState { - string, - - @doc("The access token is active and can be used for authentication.") - Active: "Active", - - @doc("The access token has expired and cannot be used for authentication.") - Expired: "Expired", -} - -@doc("The operating system to configure for remote script execution.") -union OS { - string, - - @doc("Linux operating system.") - Linux: "Linux", - - @doc("Windows operating system.") - Windows: "Windows", -} - -@doc("Playwright workspace is the parent resource for most of the other service resources.") -@resource("playwrightworkspaces") -model Workspace { - @key("workspaceId") - @doc("The workspace ID in GUID format.") - @maxLength(36) - @minLength(3) - @pattern("[A-Za-z0-9]+(-[A-Za-z0-9]+)+") - @visibility(Lifecycle.Read) - id: string; -} - @doc("Model of a test run used for tracking purposes.") @resource("test-runs") @parentResource(Workspace) @@ -233,3 +161,14 @@ union RunStatus { @doc("The test run has completed on the server side.") SERVER_COMPLETE: "SERVER_COMPLETE", } + +// Operations //////////////////// + +interface TestRuns { + // TestRun Operations + @doc("Creates or updates a test run for the workspace with the specified test run ID. Requires Bearer JWT access token provided by Entra ID or Playwright Service.") + createOrUpdate is Operations.ResourceCreateOrUpdate<TestRun>; + + @doc("Lists test runs for the specified workspace ID. Supports OData query parameters such as $filter and $top. Default page size is 10. Use nextLink in response to fetch additional results. Requires Bearer JWT access token provided by Entra ID or Playwright Service.") + list is Operations.ResourceList<TestRun>; +} From 4ec8aa514db7bc663d173ff5186f31bd60c33e36 Mon Sep 17 00:00:00 2001 From: Rajdeep Chauhan <rajdeepc2792@gmail.com> Date: Fri, 2 Jan 2026 20:48:58 +0530 Subject: [PATCH 089/117] Add Azure Red Hat OpenShift 2025-07-25 API version (#35013) * commit previous API version `v2024-08-12-preview` first * commit new API version `v2025-07-25` second --- .../OpenShiftClusters/readme.md | 11 +- .../OpenShiftClusters_CreateOrUpdate.json | 211 +++ .../examples/OpenShiftClusters_Delete.json | 16 + .../examples/OpenShiftClusters_Get.json | 117 ++ .../examples/OpenShiftClusters_List.json | 119 ++ ...penShiftClusters_ListAdminCredentials.json | 15 + ...OpenShiftClusters_ListByResourceGroup.json | 120 ++ .../OpenShiftClusters_ListCredentials.json | 16 + .../examples/OpenShiftClusters_Update.json | 210 +++ .../examples/OpenShiftVersions_Get.json | 20 + .../examples/OpenShiftVersions_List.json | 23 + .../2025-07-25/examples/Operations_List.json | 21 + .../PlatformWorkloadIdentityRoleSet_Get.json | 27 + ...PlatformWorkloadIdentityRoleSets_List.json | 30 + .../stable/2025-07-25/redhatopenshift.json | 1370 +++++++++++++++++ .../OpenShiftClusters/suppressions.yaml | 1 + 16 files changed, 2326 insertions(+), 1 deletion(-) create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_CreateOrUpdate.json create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_Delete.json create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_Get.json create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_List.json create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_ListAdminCredentials.json create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_ListByResourceGroup.json create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_ListCredentials.json create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_Update.json create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftVersions_Get.json create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftVersions_List.json create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/Operations_List.json create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/PlatformWorkloadIdentityRoleSet_Get.json create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/PlatformWorkloadIdentityRoleSets_List.json create mode 100644 specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/redhatopenshift.json diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/readme.md b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/readme.md index cbadbdab824c..8b4b0598b6e2 100644 --- a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/readme.md +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/readme.md @@ -26,7 +26,7 @@ These are the global settings for the Azure Red Hat OpenShift API. ``` yaml openapi-type: arm -tag: package-2024-08-12-preview +tag: package-2025-07-25 suppressions: - code: AvoidAdditionalProperties from: redhatopenshift.json @@ -118,6 +118,15 @@ These settings apply only when `--tag=package-2024-08-12-preview` is specified o input-file: - preview/2024-08-12-preview/redhatopenshift.json ``` + +### Tag: package-2025-07-25 + +These settings apply only when `--tag=package-2025-07-25` is specified on the command line. + +``` yaml $(tag) == 'package-2025-07-25' +input-file: + - stable/2025-07-25/redhatopenshift.json +``` --- # Code Generation diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_CreateOrUpdate.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_CreateOrUpdate.json new file mode 100644 index 000000000000..fc9ca16279bb --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_CreateOrUpdate.json @@ -0,0 +1,211 @@ +{ + "parameters": { + "api-version": "2025-07-25", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resourceGroup", + "resourceName": "resourceName", + "parameters": { + "location": "location", + "tags": { + "key": "value" + }, + "properties": { + "clusterProfile": { + "pullSecret": "{\"auths\":{\"registry.connect.redhat.com\":{\"auth\":\"\"},\"registry.redhat.io\":{\"auth\":\"\"}}}", + "domain": "cluster.location.aroapp.io", + "resourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clusterResourceGroup", + "fipsValidatedModules": "Enabled" + }, + "consoleProfile": {}, + "servicePrincipalProfile": { + "clientId": "clientId", + "clientSecret": "clientSecret" + }, + "platformWorkloadIdentityProfile": { + "platformWorkloadIdentities": { + "": {} + } + }, + "networkProfile": { + "podCidr": "10.128.0.0/14", + "serviceCidr": "172.30.0.0/16", + "loadBalancerProfile": { + "managedOutboundIps": { + "count": 1 + } + }, + "preconfiguredNSG": "Disabled" + }, + "masterProfile": { + "vmSize": "Standard_D8s_v3", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/master", + "encryptionAtHost": "Enabled" + }, + "workerProfiles": [ + { + "name": "worker", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 3 + } + ], + "apiserverProfile": { + "visibility": "Public" + }, + "ingressProfiles": [ + { + "name": "default", + "visibility": "Public" + } + ] + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "": {} + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup/providers/Microsoft.RedHatOpenShift/OpenShiftClusters/resourceName", + "name": "resourceName", + "type": "Microsoft.RedHatOpenShift/OpenShiftClusters", + "location": "location", + "systemData": { + "createdBy": "string", + "createdByType": "Application", + "createdAt": "2020-02-03T01:01:01.1075056Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application", + "lastModifiedAt": "2020-02-03T01:01:01.1075056Z" + }, + "tags": { + "key": "value" + }, + "properties": { + "provisioningState": "Succeeded", + "clusterProfile": { + "domain": "cluster.location.aroapp.io", + "version": "4.11.0", + "resourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clusterResourceGroup" + }, + "consoleProfile": { + "url": "https://console-openshift-console.apps.cluster.location.aroapp.io/" + }, + "servicePrincipalProfile": { + "clientId": "clientId" + }, + "networkProfile": { + "podCidr": "10.128.0.0/14", + "serviceCidr": "172.30.0.0/16", + "preconfiguredNSG": "Disabled" + }, + "masterProfile": { + "vmSize": "Standard_D8s_v3", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/master" + }, + "workerProfiles": [ + { + "name": "worker", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 3 + } + ], + "apiserverProfile": { + "visibility": "Public", + "url": "https://api.cluster.location.aroapp.io:6443/", + "ip": "1.2.3.4" + }, + "ingressProfiles": [ + { + "name": "default", + "visibility": "Public", + "ip": "1.2.3.4" + } + ] + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "": {} + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup/providers/Microsoft.RedHatOpenShift/OpenShiftClusters/resourceName", + "name": "resourceName", + "type": "Microsoft.RedHatOpenShift/OpenShiftClusters", + "location": "location", + "systemData": { + "createdBy": "string", + "createdByType": "Application", + "createdAt": "2020-02-03T01:01:01.1075056Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application", + "lastModifiedAt": "2020-02-03T01:01:01.1075056Z" + }, + "tags": { + "key": "value" + }, + "properties": { + "provisioningState": "Succeeded", + "clusterProfile": { + "domain": "cluster.location.aroapp.io", + "version": "4.11.0", + "resourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clusterResourceGroup" + }, + "consoleProfile": { + "url": "https://console-openshift-console.apps.cluster.location.aroapp.io/" + }, + "servicePrincipalProfile": { + "clientId": "clientId" + }, + "networkProfile": { + "podCidr": "10.128.0.0/14", + "serviceCidr": "172.30.0.0/16", + "preconfiguredNSG": "Disabled" + }, + "masterProfile": { + "vmSize": "Standard_D8s_v3", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/master" + }, + "workerProfiles": [ + { + "name": "worker", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 3 + } + ], + "apiserverProfile": { + "visibility": "Public", + "url": "https://api.cluster.location.aroapp.io:6443/", + "ip": "1.2.3.4" + }, + "ingressProfiles": [ + { + "name": "default", + "visibility": "Public", + "ip": "1.2.3.4" + } + ] + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "": {} + } + } + } + } + } +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_Delete.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_Delete.json new file mode 100644 index 000000000000..3ada18a63acf --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_Delete.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "api-version": "2025-07-25", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resourceGroup", + "resourceName": "resourceName" + }, + "responses": { + "202": { + "headers": { + "location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Cache/...pathToOperationResult..." + } + }, + "204": {} + } +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_Get.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_Get.json new file mode 100644 index 000000000000..0ffa0bc579a9 --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_Get.json @@ -0,0 +1,117 @@ +{ + "parameters": { + "api-version": "2025-07-25", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resourceGroup", + "resourceName": "resourceName" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup/providers/Microsoft.RedHatOpenShift/OpenShiftClusters/resourceName", + "name": "resourceName", + "type": "Microsoft.RedHatOpenShift/OpenShiftClusters", + "location": "location", + "systemData": { + "createdBy": "string", + "createdByType": "Application", + "createdAt": "2020-02-03T01:01:01.1075056Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application", + "lastModifiedAt": "2020-02-03T01:01:01.1075056Z" + }, + "tags": { + "key": "value" + }, + "properties": { + "provisioningState": "Succeeded", + "clusterProfile": { + "domain": "cluster.location.aroapp.io", + "version": "4.11.0", + "resourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clusterResourceGroup" + }, + "consoleProfile": { + "url": "https://console-openshift-console.apps.cluster.location.aroapp.io/" + }, + "servicePrincipalProfile": { + "clientId": "clientId" + }, + "platformWorkloadIdentityProfile": { + "platformWorkloadIdentities": { + "": {} + } + }, + "networkProfile": { + "podCidr": "10.128.0.0/14", + "serviceCidr": "172.30.0.0/16", + "loadBalancerProfile": { + "managedOutboundIps": { + "count": 1 + }, + "effectiveOutboundIps": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clusterResourceGroup/providers/Microsoft.Network/publicIPAddresses/publicIPAddressName" + } + ] + }, + "preconfiguredNSG": "Disabled" + }, + "masterProfile": { + "vmSize": "Standard_D8s_v3", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/master" + }, + "workerProfiles": [ + { + "name": "worker", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 3 + } + ], + "workerProfilesStatus": [ + { + "name": "worker1", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 1 + }, + { + "name": "worker2", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 1 + }, + { + "name": "worker3", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 1 + } + ], + "apiserverProfile": { + "visibility": "Public", + "url": "https://api.cluster.location.aroapp.io:6443/", + "ip": "1.2.3.4" + }, + "ingressProfiles": [ + { + "name": "default", + "visibility": "Public", + "ip": "1.2.3.4" + } + ] + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "": {} + } + } + } + } + } +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_List.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_List.json new file mode 100644 index 000000000000..98a3d6a9eba6 --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_List.json @@ -0,0 +1,119 @@ +{ + "parameters": { + "api-version": "2025-07-25", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup/providers/Microsoft.RedHatOpenShift/OpenShiftClusters/resourceName", + "name": "resourceName", + "type": "Microsoft.RedHatOpenShift/OpenShiftClusters", + "location": "location", + "systemData": { + "createdBy": "string", + "createdByType": "Application", + "createdAt": "2020-02-03T01:01:01.1075056Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application", + "lastModifiedAt": "2020-02-03T01:01:01.1075056Z" + }, + "tags": { + "key": "value" + }, + "properties": { + "provisioningState": "Succeeded", + "clusterProfile": { + "domain": "cluster.location.aroapp.io", + "version": "4.11.0", + "resourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clusterResourceGroup" + }, + "consoleProfile": { + "url": "https://console-openshift-console.apps.cluster.location.aroapp.io/" + }, + "servicePrincipalProfile": { + "clientId": "clientId" + }, + "platformWorkloadIdentityProfile": { + "platformWorkloadIdentities": { + "": {} + } + }, + "networkProfile": { + "podCidr": "10.128.0.0/14", + "serviceCidr": "172.30.0.0/16", + "loadBalancerProfile": { + "managedOutboundIps": { + "count": 1 + }, + "effectiveOutboundIps": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clusterResourceGroup/providers/Microsoft.Network/publicIPAddresses/publicIPAddressName" + } + ] + }, + "preconfiguredNSG": "Disabled" + }, + "masterProfile": { + "vmSize": "Standard_D8s_v3", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/master" + }, + "workerProfiles": [ + { + "name": "worker", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 3 + } + ], + "workerProfilesStatus": [ + { + "name": "worker1", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 1 + }, + { + "name": "worker2", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 1 + }, + { + "name": "worker3", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 1 + } + ], + "apiserverProfile": { + "visibility": "Public", + "url": "https://api.cluster.location.aroapp.io:6443/", + "ip": "1.2.3.4" + }, + "ingressProfiles": [ + { + "name": "default", + "visibility": "Public", + "ip": "1.2.3.4" + } + ] + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "": {} + } + } + } + ] + } + } + } +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_ListAdminCredentials.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_ListAdminCredentials.json new file mode 100644 index 000000000000..53fb2c558e66 --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_ListAdminCredentials.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "api-version": "2025-07-25", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resourceGroup", + "resourceName": "resourceName" + }, + "responses": { + "200": { + "body": { + "kubeconfig": "e30=" + } + } + } +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_ListByResourceGroup.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_ListByResourceGroup.json new file mode 100644 index 000000000000..ba4d1891c1f0 --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_ListByResourceGroup.json @@ -0,0 +1,120 @@ +{ + "parameters": { + "api-version": "2025-07-25", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resourceGroup" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup/providers/Microsoft.RedHatOpenShift/OpenShiftClusters/resourceName", + "name": "resourceName", + "type": "Microsoft.RedHatOpenShift/OpenShiftClusters", + "location": "location", + "systemData": { + "createdBy": "string", + "createdByType": "Application", + "createdAt": "2020-02-03T01:01:01.1075056Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application", + "lastModifiedAt": "2020-02-03T01:01:01.1075056Z" + }, + "tags": { + "key": "value" + }, + "properties": { + "provisioningState": "Succeeded", + "clusterProfile": { + "domain": "cluster.location.aroapp.io", + "version": "4.11.0", + "resourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clusterResourceGroup" + }, + "consoleProfile": { + "url": "https://console-openshift-console.apps.cluster.location.aroapp.io/" + }, + "servicePrincipalProfile": { + "clientId": "clientId" + }, + "platformWorkloadIdentityProfile": { + "platformWorkloadIdentities": { + "": {} + } + }, + "networkProfile": { + "podCidr": "10.128.0.0/14", + "serviceCidr": "172.30.0.0/16", + "loadBalancerProfile": { + "managedOutboundIps": { + "count": 1 + }, + "effectiveOutboundIps": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clusterResourceGroup/providers/Microsoft.Network/publicIPAddresses/publicIPAddressName" + } + ] + }, + "preconfiguredNSG": "Disabled" + }, + "masterProfile": { + "vmSize": "Standard_D8s_v3", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/master" + }, + "workerProfiles": [ + { + "name": "worker", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 3 + } + ], + "workerProfilesStatus": [ + { + "name": "worker1", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 1 + }, + { + "name": "worker2", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 1 + }, + { + "name": "worker3", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 1 + } + ], + "apiserverProfile": { + "visibility": "Public", + "url": "https://api.cluster.location.aroapp.io:6443/", + "ip": "1.2.3.4" + }, + "ingressProfiles": [ + { + "name": "default", + "visibility": "Public", + "ip": "1.2.3.4" + } + ] + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "": {} + } + } + } + ] + } + } + } +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_ListCredentials.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_ListCredentials.json new file mode 100644 index 000000000000..77b274823a30 --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_ListCredentials.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "api-version": "2025-07-25", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resourceGroup", + "resourceName": "resourceName" + }, + "responses": { + "200": { + "body": { + "kubeadminUsername": "kubeadmin", + "kubeadminPassword": "password" + } + } + } +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_Update.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_Update.json new file mode 100644 index 000000000000..cbd9e01c76e8 --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftClusters_Update.json @@ -0,0 +1,210 @@ +{ + "parameters": { + "api-version": "2025-07-25", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resourceGroup", + "resourceName": "resourceName", + "parameters": { + "tags": { + "key": "value" + }, + "properties": { + "clusterProfile": { + "pullSecret": "{\"auths\":{\"registry.connect.redhat.com\":{\"auth\":\"\"},\"registry.redhat.io\":{\"auth\":\"\"}}}", + "domain": "cluster.location.aroapp.io", + "resourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clusterResourceGroup", + "fipsValidatedModules": "Enabled" + }, + "consoleProfile": {}, + "servicePrincipalProfile": { + "clientId": "clientId", + "clientSecret": "clientSecret" + }, + "platformWorkloadIdentityProfile": { + "platformWorkloadIdentities": { + "": {} + } + }, + "networkProfile": { + "podCidr": "10.128.0.0/14", + "serviceCidr": "172.30.0.0/16", + "loadBalancerProfile": { + "managedOutboundIps": { + "count": 1 + } + }, + "preconfiguredNSG": "Disabled" + }, + "masterProfile": { + "vmSize": "Standard_D8s_v3", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/master", + "encryptionAtHost": "Enabled" + }, + "workerProfiles": [ + { + "name": "worker", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 3 + } + ], + "apiserverProfile": { + "visibility": "Public" + }, + "ingressProfiles": [ + { + "name": "default", + "visibility": "Public" + } + ] + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "": {} + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup/providers/Microsoft.RedHatOpenShift/OpenShiftClusters/resourceName", + "name": "resourceName", + "type": "Microsoft.RedHatOpenShift/OpenShiftClusters", + "location": "location", + "systemData": { + "createdBy": "string", + "createdByType": "Application", + "createdAt": "2020-02-03T01:01:01.1075056Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application", + "lastModifiedAt": "2020-02-03T01:01:01.1075056Z" + }, + "tags": { + "key": "value" + }, + "properties": { + "provisioningState": "Succeeded", + "clusterProfile": { + "domain": "cluster.location.aroapp.io", + "version": "4.11.0", + "resourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clusterResourceGroup" + }, + "consoleProfile": { + "url": "https://console-openshift-console.apps.cluster.location.aroapp.io/" + }, + "servicePrincipalProfile": { + "clientId": "clientId" + }, + "networkProfile": { + "podCidr": "10.128.0.0/14", + "serviceCidr": "172.30.0.0/16", + "preconfiguredNSG": "Disabled" + }, + "masterProfile": { + "vmSize": "Standard_D8s_v3", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/master" + }, + "workerProfiles": [ + { + "name": "worker", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 3 + } + ], + "apiserverProfile": { + "visibility": "Public", + "url": "https://api.cluster.location.aroapp.io:6443/", + "ip": "1.2.3.4" + }, + "ingressProfiles": [ + { + "name": "default", + "visibility": "Public", + "ip": "1.2.3.4" + } + ] + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "": {} + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup/providers/Microsoft.RedHatOpenShift/OpenShiftClusters/resourceName", + "name": "resourceName", + "type": "Microsoft.RedHatOpenShift/OpenShiftClusters", + "location": "location", + "systemData": { + "createdBy": "string", + "createdByType": "Application", + "createdAt": "2020-02-03T01:01:01.1075056Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application", + "lastModifiedAt": "2020-02-03T01:01:01.1075056Z" + }, + "tags": { + "key": "value" + }, + "properties": { + "provisioningState": "Succeeded", + "clusterProfile": { + "domain": "cluster.location.aroapp.io", + "version": "4.11.0", + "resourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clusterResourceGroup" + }, + "consoleProfile": { + "url": "https://console-openshift-console.apps.cluster.location.aroapp.io/" + }, + "servicePrincipalProfile": { + "clientId": "clientId" + }, + "networkProfile": { + "podCidr": "10.128.0.0/14", + "serviceCidr": "172.30.0.0/16", + "preconfiguredNSG": "Disabled" + }, + "masterProfile": { + "vmSize": "Standard_D8s_v3", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/master" + }, + "workerProfiles": [ + { + "name": "worker", + "vmSize": "Standard_D2s_v3", + "diskSizeGB": 128, + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/vnetResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet/subnets/worker", + "count": 3 + } + ], + "apiserverProfile": { + "visibility": "Public", + "url": "https://api.cluster.location.aroapp.io:6443/", + "ip": "1.2.3.4" + }, + "ingressProfiles": [ + { + "name": "default", + "visibility": "Public", + "ip": "1.2.3.4" + } + ] + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "": {} + } + } + } + } + } +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftVersions_Get.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftVersions_Get.json new file mode 100644 index 000000000000..3b0e40f22ac3 --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftVersions_Get.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2025-07-25", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "location": "location", + "openShiftVersion": "4.14.40" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroupName/providers/resourceProviderNamespace/resourceType/resourceName", + "name": "4.10.20", + "type": "Microsoft.RedHatOpenShift/OpenShiftVersion", + "properties": { + "version": "4.10.20" + } + } + } + } +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftVersions_List.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftVersions_List.json new file mode 100644 index 000000000000..dfc457bdb7a4 --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/OpenShiftVersions_List.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2025-07-25", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "location": "location" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroupName/providers/resourceProviderNamespace/resourceType/resourceName", + "name": "4.10.20", + "type": "Microsoft.RedHatOpenShift/OpenShiftVersion", + "properties": { + "version": "4.10.20" + } + } + ] + } + } + } +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/Operations_List.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/Operations_List.json new file mode 100644 index 000000000000..6dac40bde86a --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/Operations_List.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2025-07-25" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.RedHatOpenShift/openShiftClusters/read", + "display": { + "provider": "Azure Red Hat OpenShift", + "resource": "openShiftClusters", + "operation": "Read OpenShift cluster" + } + } + ] + } + } + } +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/PlatformWorkloadIdentityRoleSet_Get.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/PlatformWorkloadIdentityRoleSet_Get.json new file mode 100644 index 000000000000..599d6c96ad2e --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/PlatformWorkloadIdentityRoleSet_Get.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2025-07-25", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "location": "location", + "openShiftMinorVersion": "4.14" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroupName/providers/resourceProviderNamespace/resourceType/resourceName", + "name": "4.14", + "type": "Microsoft.RedHatOpenShift/PlatformWorkloadIdentityRoleSet", + "properties": { + "openShiftVersion": "4.14", + "platformWorkloadIdentityRoles": [ + { + "operatorName": "aro-operator", + "roleDefinitionName": "Azure Red Hat OpenShift Service Operator", + "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000" + } + ] + } + } + } + } +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/PlatformWorkloadIdentityRoleSets_List.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/PlatformWorkloadIdentityRoleSets_List.json new file mode 100644 index 000000000000..5ad1dab598e1 --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/examples/PlatformWorkloadIdentityRoleSets_List.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2025-07-25", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "location": "location" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroupName/providers/resourceProviderNamespace/resourceType/resourceName", + "name": "4.14", + "type": "Microsoft.RedHatOpenShift/PlatformWorkloadIdentityRoleSet", + "properties": { + "openShiftVersion": "4.14", + "platformWorkloadIdentityRoles": [ + { + "operatorName": "aro-operator", + "roleDefinitionName": "Azure Red Hat OpenShift Service Operator", + "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000" + } + ] + } + } + ] + } + } + } +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/redhatopenshift.json b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/redhatopenshift.json new file mode 100644 index 000000000000..a6af2906db30 --- /dev/null +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/stable/2025-07-25/redhatopenshift.json @@ -0,0 +1,1370 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Red Hat OpenShift Client", + "description": "Rest API for Azure Red Hat OpenShift 4", + "version": "2025-07-25" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/providers/Microsoft.RedHatOpenShift/operations": { + "get": { + "tags": [ + "Operations" + ], + "summary": "Lists all of the available RP operations.", + "description": "The operation returns the RP operations.", + "operationId": "Operations_List", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OperationList" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource doesn't exist, 404 (Not Found) is returned. If any of the input parameters is wrong, 400 (Bad Request) is returned.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Lists all of the available RP operations.": { + "$ref": "./examples/Operations_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.RedHatOpenShift/locations/{location}/openShiftVersions": { + "get": { + "tags": [ + "OpenShiftVersions" + ], + "summary": "Lists all OpenShift versions available to install in the specified location.", + "description": "The operation returns the installable OpenShift versions as a string.", + "operationId": "OpenShiftVersions_List", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OpenShiftVersionList" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource doesn't exist, 404 (Not Found) is returned. If any of the input parameters is wrong, 400 (Bad Request) is returned.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Lists all OpenShift versions available to install in the specified location.": { + "$ref": "./examples/OpenShiftVersions_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.RedHatOpenShift/locations/{location}/openShiftVersions/{openShiftVersion}": { + "get": { + "tags": [ + "OpenShiftVersions" + ], + "summary": "Gets an available OpenShift version to install in the specified location.", + "description": "This operation returns installable OpenShift version as a string.", + "operationId": "OpenShiftVersions_Get", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + }, + { + "name": "openShiftVersion", + "in": "path", + "description": "The desired version value of the OpenShiftVersion resource.", + "required": true, + "type": "string", + "maxLength": 63, + "minLength": 1, + "pattern": "^(\\d+)\\.(\\d+)\\.(\\d+)(.*)" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OpenShiftVersion" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource doesn't exist, 404 (Not Found) is returned. If any of the input parameters is wrong, 400 (Bad Request) is returned.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Gets an available OpenShift version to install in the specified location.": { + "$ref": "./examples/OpenShiftVersions_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.RedHatOpenShift/locations/{location}/platformWorkloadIdentityRoleSets": { + "get": { + "tags": [ + "PlatformWorkloadIdentityRoleSets" + ], + "summary": "Lists a mapping of OpenShift versions to identity requirements, which include operatorName, roleDefinitionName, roleDefinitionId, and serviceAccounts.", + "description": "This operation returns a list of Platform Workload Identity Role Sets as a string", + "operationId": "PlatformWorkloadIdentityRoleSets_List", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PlatformWorkloadIdentityRoleSetList" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource doesn't exist, 404 (Not Found) is returned. If any of the input parameters is wrong, 400 (Bad Request) is returned.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Lists a mapping of OpenShift versions to identity requirements, which include operatorName, roleDefinitionName, roleDefinitionId, and serviceAccounts.": { + "$ref": "./examples/PlatformWorkloadIdentityRoleSets_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.RedHatOpenShift/locations/{location}/platformWorkloadIdentityRoleSets/{openShiftMinorVersion}": { + "get": { + "tags": [ + "PlatformWorkloadIdentityRoleSets" + ], + "summary": "Gets a mapping of an OpenShift version to identity requirements, which includes operatorName, roleDefinitionName, roleDefinitionId, and serviceAccounts.", + "description": "This operation returns Platform Workload Identity Role Set as a string", + "operationId": "PlatformWorkloadIdentityRoleSet_Get", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/LocationParameter" + }, + { + "name": "openShiftMinorVersion", + "in": "path", + "description": "The desired version value of the PlatformWorkloadIdentityRoleSet resource.", + "required": true, + "type": "string", + "maxLength": 63, + "minLength": 1, + "pattern": "^(\\d+)\\.(\\d+)" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PlatformWorkloadIdentityRoleSet" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource doesn't exist, 404 (Not Found) is returned. If any of the input parameters is wrong, 400 (Bad Request) is returned.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Gets a mapping of an OpenShift version to identity requirements, which includes operatorName, roleDefinitionName, roleDefinitionId, and serviceAccounts.": { + "$ref": "./examples/PlatformWorkloadIdentityRoleSet_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.RedHatOpenShift/openShiftClusters": { + "get": { + "tags": [ + "OpenShiftClusters" + ], + "summary": "Lists OpenShift clusters in the specified subscription.", + "description": "The operation returns properties of each OpenShift cluster.", + "operationId": "OpenShiftClusters_List", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OpenShiftClusterList" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource doesn't exist, 404 (Not Found) is returned. If any of the input parameters is wrong, 400 (Bad Request) is returned.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Lists OpenShift clusters in the specified subscription.": { + "$ref": "./examples/OpenShiftClusters_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RedHatOpenShift/openShiftClusters": { + "get": { + "tags": [ + "OpenShiftClusters" + ], + "summary": "Lists OpenShift clusters in the specified subscription and resource group.", + "description": "The operation returns properties of each OpenShift cluster.", + "operationId": "OpenShiftClusters_ListByResourceGroup", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OpenShiftClusterList" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource doesn't exist, 404 (Not Found) is returned. If any of the input parameters is wrong, 400 (Bad Request) is returned.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Lists OpenShift clusters in the specified subscription and resource group.": { + "$ref": "./examples/OpenShiftClusters_ListByResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RedHatOpenShift/openShiftClusters/{resourceName}": { + "get": { + "tags": [ + "OpenShiftClusters" + ], + "summary": "Gets a OpenShift cluster with the specified subscription, resource group and resource name.", + "description": "The operation returns properties of a OpenShift cluster.", + "operationId": "OpenShiftClusters_Get", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "resourceName", + "in": "path", + "description": "The name of the OpenShift cluster resource.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OpenShiftCluster" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource doesn't exist, 404 (Not Found) is returned. If any of the input parameters is wrong, 400 (Bad Request) is returned.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Gets a OpenShift cluster with the specified subscription, resource group and resource name.": { + "$ref": "./examples/OpenShiftClusters_Get.json" + } + } + }, + "put": { + "tags": [ + "OpenShiftClusters" + ], + "summary": "Creates or updates a OpenShift cluster with the specified subscription, resource group and resource name.", + "description": "The operation returns properties of a OpenShift cluster.", + "operationId": "OpenShiftClusters_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "resourceName", + "in": "path", + "description": "The name of the OpenShift cluster resource.", + "required": true, + "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "The OpenShift cluster resource.", + "required": true, + "schema": { + "$ref": "#/definitions/OpenShiftCluster" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OpenShiftCluster" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/OpenShiftCluster" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource doesn't exist, 404 (Not Found) is returned. If any of the input parameters is wrong, 400 (Bad Request) is returned.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Creates or updates a OpenShift cluster with the specified subscription, resource group and resource name.": { + "$ref": "./examples/OpenShiftClusters_CreateOrUpdate.json" + } + } + }, + "delete": { + "tags": [ + "OpenShiftClusters" + ], + "summary": "Deletes a OpenShift cluster with the specified subscription, resource group and resource name.", + "description": "The operation returns nothing.", + "operationId": "OpenShiftClusters_Delete", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "resourceName", + "in": "path", + "description": "The name of the OpenShift cluster resource.", + "required": true, + "type": "string" + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "204": { + "description": "No Content" + }, + "default": { + "description": "Error response describing why the operation failed. If the resource doesn't exist, 404 (Not Found) is returned. If any of the input parameters is wrong, 400 (Bad Request) is returned.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Deletes a OpenShift cluster with the specified subscription, resource group and resource name.": { + "$ref": "./examples/OpenShiftClusters_Delete.json" + } + } + }, + "patch": { + "tags": [ + "OpenShiftClusters" + ], + "summary": "Creates or updates a OpenShift cluster with the specified subscription, resource group and resource name.", + "description": "The operation returns properties of a OpenShift cluster.", + "operationId": "OpenShiftClusters_Update", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "resourceName", + "in": "path", + "description": "The name of the OpenShift cluster resource.", + "required": true, + "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "The OpenShift cluster resource.", + "required": true, + "schema": { + "$ref": "#/definitions/OpenShiftClusterUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OpenShiftCluster" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/OpenShiftCluster" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource doesn't exist, 404 (Not Found) is returned. If any of the input parameters is wrong, 400 (Bad Request) is returned.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Creates or updates a OpenShift cluster with the specified subscription, resource group and resource name.": { + "$ref": "./examples/OpenShiftClusters_Update.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RedHatOpenShift/openShiftClusters/{resourceName}/listAdminCredentials": { + "post": { + "tags": [ + "OpenShiftClusters" + ], + "summary": "Lists admin kubeconfig of an OpenShift cluster with the specified subscription, resource group and resource name.", + "description": "The operation returns the admin kubeconfig.", + "operationId": "OpenShiftClusters_ListAdminCredentials", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "resourceName", + "in": "path", + "description": "The name of the OpenShift cluster resource.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OpenShiftClusterAdminKubeconfig" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource doesn't exist, 404 (Not Found) is returned. If any of the input parameters is wrong, 400 (Bad Request) is returned.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Lists admin kubeconfig of an OpenShift cluster with the specified subscription, resource group and resource name.": { + "$ref": "./examples/OpenShiftClusters_ListAdminCredentials.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RedHatOpenShift/openShiftClusters/{resourceName}/listCredentials": { + "post": { + "tags": [ + "OpenShiftClusters" + ], + "summary": "Lists credentials of an OpenShift cluster with the specified subscription, resource group and resource name.", + "description": "The operation returns the credentials.", + "operationId": "OpenShiftClusters_ListCredentials", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "resourceName", + "in": "path", + "description": "The name of the OpenShift cluster resource.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OpenShiftClusterCredentials" + } + }, + "default": { + "description": "Error response describing why the operation failed. If the resource doesn't exist, 404 (Not Found) is returned. If any of the input parameters is wrong, 400 (Bad Request) is returned.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Lists credentials of an OpenShift cluster with the specified subscription, resource group and resource name.": { + "$ref": "./examples/OpenShiftClusters_ListCredentials.json" + } + } + } + } + }, + "definitions": { + "APIServerProfile": { + "description": "APIServerProfile represents an API server profile.", + "type": "object", + "properties": { + "visibility": { + "$ref": "#/definitions/Visibility", + "description": "API server visibility." + }, + "url": { + "description": "The URL to access the cluster API server.", + "type": "string", + "readOnly": true + }, + "ip": { + "description": "The IP of the cluster API server.", + "type": "string", + "readOnly": true + } + } + }, + "CloudError": { + "description": "CloudError represents a cloud error.", + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/CloudErrorBody", + "description": "An error response from the service." + } + } + }, + "CloudErrorBody": { + "description": "CloudErrorBody represents the body of a cloud error.", + "type": "object", + "properties": { + "code": { + "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically.", + "type": "string" + }, + "message": { + "description": "A message describing the error, intended to be suitable for display in a user interface.", + "type": "string" + }, + "target": { + "description": "The target of the particular error. For example, the name of the property in error.", + "type": "string" + }, + "details": { + "description": "A list of additional details about the error.", + "type": "array", + "items": { + "$ref": "#/definitions/CloudErrorBody" + }, + "x-ms-identifiers": [] + } + } + }, + "ClusterProfile": { + "description": "ClusterProfile represents a cluster profile.", + "type": "object", + "properties": { + "pullSecret": { + "description": "The pull secret for the cluster.", + "type": "string" + }, + "domain": { + "description": "The domain for the cluster.", + "type": "string" + }, + "version": { + "description": "The version of the cluster.", + "type": "string" + }, + "resourceGroupId": { + "description": "The ID of the cluster resource group.", + "type": "string" + }, + "fipsValidatedModules": { + "$ref": "#/definitions/FipsValidatedModules", + "description": "If FIPS validated crypto modules are used" + }, + "oidcIssuer": { + "$ref": "#/definitions/OIDCIssuer", + "description": "The URL of the managed OIDC issuer in a workload identity cluster.", + "readOnly": true + } + } + }, + "ConsoleProfile": { + "description": "ConsoleProfile represents a console profile.", + "type": "object", + "properties": { + "url": { + "description": "The URL to access the cluster console.", + "type": "string", + "readOnly": true + } + } + }, + "Display": { + "description": "Display represents the display details of an operation.", + "type": "object", + "properties": { + "provider": { + "description": "Friendly name of the resource provider.", + "type": "string" + }, + "resource": { + "description": "Resource type on which the operation is performed.", + "type": "string" + }, + "operation": { + "description": "Operation type: read, write, delete, listKeys/action, etc.", + "type": "string" + }, + "description": { + "description": "Friendly name of the operation.", + "type": "string" + } + } + }, + "EffectiveOutboundIP": { + "description": "EffectiveOutboundIP represents an effective outbound IP resource of the cluster public load balancer.", + "type": "object", + "properties": { + "id": { + "description": "The fully qualified Azure resource id of an IP address resource.", + "type": "string" + } + } + }, + "EncryptionAtHost": { + "description": "EncryptionAtHost represents encryption at host state", + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string", + "x-ms-enum": { + "name": "EncryptionAtHost", + "modelAsString": true + } + }, + "FipsValidatedModules": { + "description": "FipsValidatedModules determines if FIPS is used.", + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string", + "x-ms-enum": { + "name": "FipsValidatedModules", + "modelAsString": true + } + }, + "IngressProfile": { + "description": "IngressProfile represents an ingress profile.", + "type": "object", + "properties": { + "name": { + "description": "The ingress profile name.", + "type": "string" + }, + "visibility": { + "$ref": "#/definitions/Visibility", + "description": "Ingress visibility." + }, + "ip": { + "description": "The IP of the ingress.", + "type": "string", + "readOnly": true + } + } + }, + "LoadBalancerProfile": { + "description": "LoadBalancerProfile represents the profile of the cluster public load balancer.", + "type": "object", + "properties": { + "managedOutboundIps": { + "$ref": "#/definitions/ManagedOutboundIPs", + "description": "The desired managed outbound IPs for the cluster public load balancer." + }, + "effectiveOutboundIps": { + "description": "The list of effective outbound IP addresses of the public load balancer.", + "type": "array", + "items": { + "$ref": "#/definitions/EffectiveOutboundIP" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "ManagedOutboundIPs": { + "description": "ManagedOutboundIPs represents the desired managed outbound IPs for the cluster public load balancer.", + "type": "object", + "properties": { + "count": { + "format": "int32", + "description": "Count represents the desired number of IPv4 outbound IPs created and managed by Azure for the cluster public load balancer. Allowed values are in the range of 1 - 20. The default value is 1.", + "type": "integer" + } + } + }, + "MasterProfile": { + "description": "MasterProfile represents a master profile.", + "type": "object", + "properties": { + "vmSize": { + "$ref": "#/definitions/VMSize", + "description": "The size of the master VMs." + }, + "subnetId": { + "description": "The Azure resource ID of the master subnet.", + "type": "string" + }, + "encryptionAtHost": { + "$ref": "#/definitions/EncryptionAtHost", + "description": "Whether master virtual machines are encrypted at host." + }, + "diskEncryptionSetId": { + "description": "The resource ID of an associated DiskEncryptionSet, if applicable.", + "type": "string" + } + } + }, + "NetworkProfile": { + "description": "NetworkProfile represents a network profile.", + "type": "object", + "properties": { + "podCidr": { + "description": "The CIDR used for OpenShift/Kubernetes Pods.", + "type": "string" + }, + "serviceCidr": { + "description": "The CIDR used for OpenShift/Kubernetes Services.", + "type": "string" + }, + "outboundType": { + "$ref": "#/definitions/OutboundType", + "description": "The OutboundType used for egress traffic." + }, + "loadBalancerProfile": { + "$ref": "#/definitions/LoadBalancerProfile", + "description": "The cluster load balancer profile." + }, + "preconfiguredNSG": { + "$ref": "#/definitions/PreconfiguredNSG", + "description": "Specifies whether subnets are pre-attached with an NSG" + } + } + }, + "OIDCIssuer": { + "description": "OIDCIssuer represents the URL of the managed OIDC issuer in a workload identity cluster.", + "type": "string" + }, + "OpenShiftCluster": { + "description": "OpenShiftCluster represents an Azure Red Hat OpenShift cluster.", + "type": "object", + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/TrackedResource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/OpenShiftClusterProperties", + "description": "The cluster properties.", + "x-ms-client-flatten": true + }, + "identity": { + "$ref": "../../../../../../common-types/resource-management/v6/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "Identity stores information about the cluster MSI(s) in a workload identity cluster." + } + } + }, + "OpenShiftClusterAdminKubeconfig": { + "description": "OpenShiftClusterAdminKubeconfig represents an OpenShift cluster's admin kubeconfig.", + "type": "object", + "properties": { + "kubeconfig": { + "description": "The base64-encoded kubeconfig file.", + "type": "string", + "x-ms-secret": true + } + } + }, + "OpenShiftClusterCredentials": { + "description": "OpenShiftClusterCredentials represents an OpenShift cluster's credentials.", + "type": "object", + "properties": { + "kubeadminUsername": { + "description": "The username for the kubeadmin user.", + "type": "string" + }, + "kubeadminPassword": { + "description": "The password for the kubeadmin user.", + "type": "string", + "x-ms-secret": true + } + } + }, + "OpenShiftClusterList": { + "description": "OpenShiftClusterList represents a list of OpenShift clusters.", + "type": "object", + "properties": { + "value": { + "description": "The list of OpenShift clusters.", + "type": "array", + "items": { + "$ref": "#/definitions/OpenShiftCluster" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "description": "The link used to get the next page of operations.", + "type": "string" + } + } + }, + "OpenShiftClusterProperties": { + "description": "OpenShiftClusterProperties represents an OpenShift cluster's properties.", + "type": "object", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "The cluster provisioning state." + }, + "clusterProfile": { + "$ref": "#/definitions/ClusterProfile", + "description": "The cluster profile." + }, + "consoleProfile": { + "$ref": "#/definitions/ConsoleProfile", + "description": "The console profile." + }, + "servicePrincipalProfile": { + "$ref": "#/definitions/ServicePrincipalProfile", + "description": "The cluster service principal profile." + }, + "platformWorkloadIdentityProfile": { + "$ref": "#/definitions/PlatformWorkloadIdentityProfile", + "description": "The workload identity profile." + }, + "networkProfile": { + "$ref": "#/definitions/NetworkProfile", + "description": "The cluster network profile." + }, + "masterProfile": { + "$ref": "#/definitions/MasterProfile", + "description": "The cluster master profile." + }, + "workerProfiles": { + "description": "The cluster worker profiles.", + "type": "array", + "items": { + "$ref": "#/definitions/WorkerProfile" + }, + "x-ms-identifiers": [] + }, + "workerProfilesStatus": { + "description": "The cluster worker profiles status.", + "type": "array", + "items": { + "$ref": "#/definitions/WorkerProfile" + }, + "readOnly": true, + "x-ms-identifiers": [] + }, + "apiserverProfile": { + "$ref": "#/definitions/APIServerProfile", + "description": "The cluster API server profile." + }, + "ingressProfiles": { + "description": "The cluster ingress profiles.", + "type": "array", + "items": { + "$ref": "#/definitions/IngressProfile" + }, + "x-ms-identifiers": [] + } + } + }, + "OpenShiftClusterUpdate": { + "description": "OpenShiftCluster represents an Azure Red Hat OpenShift cluster.", + "type": "object", + "properties": { + "tags": { + "$ref": "#/definitions/Tags", + "description": "The resource tags." + }, + "properties": { + "$ref": "#/definitions/OpenShiftClusterProperties", + "description": "The cluster properties.", + "x-ms-client-flatten": true + }, + "identity": { + "$ref": "../../../../../../common-types/resource-management/v6/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "Identity stores information about the cluster MSI(s) in a workload identity cluster." + } + } + }, + "OpenShiftVersion": { + "description": "OpenShiftVersion represents an OpenShift version that can be installed.", + "type": "object", + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/OpenShiftVersionProperties", + "description": "The properties for the OpenShiftVersion resource.", + "x-ms-client-flatten": true + } + } + }, + "OpenShiftVersionList": { + "description": "OpenShiftVersionList represents a List of available versions.", + "type": "object", + "properties": { + "value": { + "description": "The List of available versions.", + "type": "array", + "items": { + "$ref": "#/definitions/OpenShiftVersion" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "description": "Next Link to next operation.", + "type": "string" + } + } + }, + "OpenShiftVersionProperties": { + "description": "OpenShiftVersionProperties represents the properties of an OpenShiftVersion.", + "type": "object", + "properties": { + "version": { + "description": "Version represents the version to create the cluster at.", + "type": "string" + } + } + }, + "Operation": { + "description": "Operation represents an RP operation.", + "type": "object", + "properties": { + "name": { + "description": "Operation name: {provider}/{resource}/{operation}.", + "type": "string" + }, + "display": { + "$ref": "#/definitions/Display", + "description": "The object that describes the operation." + }, + "origin": { + "description": "Sources of requests to this operation. Comma separated list with valid values user or system, e.g. \"user,system\".", + "type": "string" + } + } + }, + "OperationList": { + "description": "OperationList represents an RP operation list.", + "type": "object", + "properties": { + "value": { + "description": "List of operations supported by the resource provider.", + "type": "array", + "items": { + "$ref": "#/definitions/Operation" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "description": "The link used to get the next page of operations.", + "type": "string" + } + } + }, + "OutboundType": { + "description": "The outbound routing strategy used to provide your cluster egress to the internet.", + "enum": [ + "Loadbalancer", + "UserDefinedRouting" + ], + "type": "string", + "x-ms-enum": { + "name": "OutboundType", + "modelAsString": true + } + }, + "PlatformWorkloadIdentity": { + "description": "PlatformWorkloadIdentity stores information representing a single workload identity.", + "type": "object", + "properties": { + "resourceId": { + "description": "The resource ID of the PlatformWorkloadIdentity resource", + "type": "string" + }, + "clientId": { + "description": "The ClientID of the PlatformWorkloadIdentity resource", + "type": "string", + "readOnly": true + }, + "objectId": { + "description": "The ObjectID of the PlatformWorkloadIdentity resource", + "type": "string", + "readOnly": true + } + } + }, + "PlatformWorkloadIdentityProfile": { + "description": "PlatformWorkloadIdentityProfile encapsulates all information that is specific to workload identity clusters.", + "type": "object", + "properties": { + "upgradeableTo": { + "$ref": "#/definitions/UpgradeableTo" + }, + "platformWorkloadIdentities": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/PlatformWorkloadIdentity" + } + } + } + }, + "PlatformWorkloadIdentityRole": { + "description": "PlatformWorkloadIdentityRole represents a mapping from a particular OCP operator to the built-in role that should be assigned to that operator's corresponding managed identity.", + "type": "object", + "properties": { + "operatorName": { + "description": "OperatorName represents the name of the operator that this role is for.", + "type": "string" + }, + "roleDefinitionName": { + "description": "RoleDefinitionName represents the name of the role.", + "type": "string" + }, + "roleDefinitionId": { + "description": "RoleDefinitionID represents the resource ID of the role definition.", + "type": "string" + } + } + }, + "PlatformWorkloadIdentityRoleSet": { + "description": "PlatformWorkloadIdentityRoleSet represents a mapping from the names of OCP operators to the built-in roles that should be assigned to those operator's corresponding managed identities for a particular OCP version.", + "type": "object", + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/PlatformWorkloadIdentityRoleSetProperties", + "description": "The properties for the PlatformWorkloadIdentityRoleSet resource.", + "x-ms-client-flatten": true + } + } + }, + "PlatformWorkloadIdentityRoleSetList": { + "description": "PlatformWorkloadIdentityRoleSetList represents a List of role sets.", + "type": "object", + "properties": { + "value": { + "description": "The list of role sets.", + "type": "array", + "items": { + "$ref": "#/definitions/PlatformWorkloadIdentityRoleSet" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "description": "Next Link to next operation.", + "type": "string" + } + } + }, + "PlatformWorkloadIdentityRoleSetProperties": { + "description": "PlatformWorkloadIdentityRoleSetProperties represents the properties of a PlatformWorkloadIdentityRoleSet resource.", + "type": "object", + "properties": { + "openShiftVersion": { + "description": "OpenShiftVersion represents the version associated with this set of roles.", + "type": "string" + }, + "platformWorkloadIdentityRoles": { + "description": "PlatformWorkloadIdentityRoles represents the set of roles associated with this version.", + "type": "array", + "items": { + "$ref": "#/definitions/PlatformWorkloadIdentityRole" + }, + "x-ms-identifiers": [] + } + } + }, + "PreconfiguredNSG": { + "description": "PreconfiguredNSG represents whether customers want to use their own NSG attached to the subnets", + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string", + "x-ms-enum": { + "name": "PreconfiguredNSG", + "modelAsString": true + } + }, + "ProvisioningState": { + "description": "ProvisioningState represents a provisioning state.", + "enum": [ + "AdminUpdating", + "Canceled", + "Creating", + "Deleting", + "Failed", + "Succeeded", + "Updating" + ], + "type": "string", + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true + } + }, + "ServicePrincipalProfile": { + "description": "ServicePrincipalProfile represents a service principal profile.", + "type": "object", + "properties": { + "clientId": { + "description": "The client ID used for the cluster.", + "type": "string" + }, + "clientSecret": { + "description": "The client secret used for the cluster.", + "type": "string" + } + } + }, + "Tags": { + "description": "Tags represents an OpenShift cluster's tags.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "UpgradeableTo": { + "description": "UpgradeableTo stores a single OpenShift version a workload identity cluster can be upgraded to", + "type": "string" + }, + "VMSize": { + "description": "VM size availability varies by region.\nIf a node contains insufficient compute resources (memory, cpu, etc.), pods might fail to run correctly.\nFor more details on restricted VM sizes, see: https://docs.microsoft.com/en-us/azure/openshift/support-policies-v4#supported-virtual-machine-sizes", + "type": "string" + }, + "Visibility": { + "description": "Visibility represents visibility.", + "enum": [ + "Private", + "Public" + ], + "type": "string", + "x-ms-enum": { + "name": "Visibility", + "modelAsString": true + } + }, + "WorkerProfile": { + "description": "WorkerProfile represents a worker profile.", + "type": "object", + "properties": { + "name": { + "description": "The worker profile name.", + "type": "string" + }, + "vmSize": { + "$ref": "#/definitions/VMSize", + "description": "The size of the worker VMs." + }, + "diskSizeGB": { + "format": "int32", + "description": "The disk size of the worker VMs.", + "type": "integer" + }, + "subnetId": { + "description": "The Azure resource ID of the worker subnet.", + "type": "string" + }, + "count": { + "format": "int32", + "description": "The number of worker VMs.", + "type": "integer" + }, + "encryptionAtHost": { + "$ref": "#/definitions/EncryptionAtHost", + "description": "Whether master virtual machines are encrypted at host." + }, + "diskEncryptionSetId": { + "description": "The resource ID of an associated DiskEncryptionSet, if applicable.", + "type": "string" + } + } + } + }, + "parameters": { + "api-version": { + "name": "api-version", + "in": "query", + "description": "The version of the API the caller wants to use.", + "required": true, + "type": "string", + "pattern": "^\\d{2}-\\d{2}-\\d{4}(-preview)?$", + "x-ms-parameter-location": "client" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ] +} diff --git a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/suppressions.yaml b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/suppressions.yaml index 4300d9a02e1e..bebeb5747a42 100644 --- a/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/suppressions.yaml +++ b/specification/redhatopenshift/resource-manager/Microsoft.RedHatOpenShift/OpenShiftClusters/suppressions.yaml @@ -9,4 +9,5 @@ - ./stable/2023-04-01/**/*.json - ./stable/2023-09-04/**/*.json - ./stable/2023-11-22/**/*.json + - ./stable/2025-07-25/**/*.json reason: Brownfield service not ready to migrate \ No newline at end of file From e08a0710a90e3119272bd78f10f1631ad28f30e4 Mon Sep 17 00:00:00 2001 From: Tikii <26470758+Tikii@users.noreply.github.com> Date: Sun, 4 Jan 2026 03:28:06 +0100 Subject: [PATCH 090/117] Remove unsupported SQL Pool Metadata Sync Configs pages (#39331) * Change only the current default versions (the one specified in https://github.com/Azure/azure-rest-api-specs/blob/main/specification/synapse/resource-manager/readme.md#tag-package-composite-v2) * Moving it from preview file as well as avocado error states that. * Removing API from older versions * Removing unreferenced MetadataSyncConfig config --------- Co-authored-by: Tijana Sonjic <tisonjic@microsoft.com> --- .../CreateSqlPoolMetadataSyncConfig.json | 35 ---- .../GetSqlPoolMetadataSyncConfig.json | 30 ---- .../preview/2019-06-01-preview/sqlPool.json | 152 ----------------- .../CreateSqlPoolMetadataSyncConfig.json | 35 ---- .../GetSqlPoolMetadataSyncConfig.json | 30 ---- .../preview/2021-04-01-preview/sqlPool.json | 152 ----------------- .../CreateSqlPoolMetadataSyncConfig.json | 35 ---- .../GetSqlPoolMetadataSyncConfig.json | 30 ---- .../preview/2021-06-01-preview/sqlPool.json | 155 ------------------ .../CreateSqlPoolMetadataSyncConfig.json | 35 ---- .../GetSqlPoolMetadataSyncConfig.json | 30 ---- .../stable/2020-12-01/sqlPool.json | 152 ----------------- .../CreateSqlPoolMetadataSyncConfig.json | 35 ---- .../GetSqlPoolMetadataSyncConfig.json | 30 ---- .../stable/2021-03-01/sqlPool.json | 151 ----------------- .../CreateSqlPoolMetadataSyncConfig.json | 35 ---- .../GetSqlPoolMetadataSyncConfig.json | 30 ---- .../stable/2021-05-01/sqlPool.json | 151 ----------------- .../CreateSqlPoolMetadataSyncConfig.json | 35 ---- .../GetSqlPoolMetadataSyncConfig.json | 30 ---- .../stable/2021-06-01/sqlPool.json | 154 ----------------- 21 files changed, 1522 deletions(-) delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateSqlPoolMetadataSyncConfig.json delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolMetadataSyncConfig.json delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/examples/CreateSqlPoolMetadataSyncConfig.json delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/examples/GetSqlPoolMetadataSyncConfig.json delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-06-01-preview/examples/CreateSqlPoolMetadataSyncConfig.json delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-06-01-preview/examples/GetSqlPoolMetadataSyncConfig.json delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/examples/CreateSqlPoolMetadataSyncConfig.json delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/examples/GetSqlPoolMetadataSyncConfig.json delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/examples/CreateSqlPoolMetadataSyncConfig.json delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/examples/GetSqlPoolMetadataSyncConfig.json delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-05-01/examples/CreateSqlPoolMetadataSyncConfig.json delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-05-01/examples/GetSqlPoolMetadataSyncConfig.json delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-06-01/examples/CreateSqlPoolMetadataSyncConfig.json delete mode 100644 specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-06-01/examples/GetSqlPoolMetadataSyncConfig.json diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateSqlPoolMetadataSyncConfig.json deleted file mode 100644 index 9697eb7cc7b1..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/CreateSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2019-06-01-preview", - "metadataSyncConfiguration": { - "properties": { - "enabled": true - } - } - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolMetadataSyncConfig.json deleted file mode 100644 index a0fa88772064..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/examples/GetSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2019-06-01-preview" - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/sqlPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/sqlPool.json index d264a912561d..83b5083e65f9 100644 --- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/sqlPool.json +++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2019-06-01-preview/sqlPool.json @@ -459,129 +459,6 @@ } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/metadataSync/config": { - "get": { - "operationId": "SqlPoolMetadataSyncConfigs_Get", - "summary": "Get SQL pool metadata sync config", - "description": "Get the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./workspace.json#/parameters/workspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - } - ], - "responses": { - "404": { - "description": "" - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Get metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/GetSqlPoolMetadataSyncConfig.json" - } - } - }, - "put": { - "operationId": "SqlPoolMetadataSyncConfigs_Create", - "summary": "Set SQL pool metadata sync config", - "description": "Set the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./workspace.json#/parameters/workspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - }, - { - "description": "Metadata sync configuration", - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "in": "body", - "name": "metadataSyncConfiguration", - "required": true - } - ], - "responses": { - "404": { - "description": "" - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../common/v1/types.json#/definitions/ErrorContract" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Set metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/CreateSqlPoolMetadataSyncConfig.json" - } - } - } - }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/operationResults/{operationId}": { "get": { "operationId": "SqlPoolOperationResults_GetLocationHeaderResult", @@ -5309,35 +5186,6 @@ } } }, - "MetadataSyncConfig": { - "type": "object", - "title": "Metadata sync configuration", - "description": "Configuration for metadata sync", - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "title": "Metadata Sync Config properties", - "description": "Metadata Sync Config properties", - "properties": { - "enabled": { - "type": "boolean", - "description": "Indicates whether the metadata sync is enabled or disabled" - }, - "syncIntervalInMinutes": { - "type": "integer", - "format": "int32", - "description": "The Sync Interval in minutes." - } - }, - "x-ms-client-flatten": true - } - }, - "x-ms-azure-resource": true - }, "GeoBackupPolicyProperties": { "properties": { "state": { diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/examples/CreateSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/examples/CreateSqlPoolMetadataSyncConfig.json deleted file mode 100644 index ce2d4588897f..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/examples/CreateSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2021-04-01-preview", - "metadataSyncConfiguration": { - "properties": { - "enabled": true - } - } - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/examples/GetSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/examples/GetSqlPoolMetadataSyncConfig.json deleted file mode 100644 index f0405f7d781b..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/examples/GetSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2021-04-01-preview" - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/sqlPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/sqlPool.json index d1a36e297ea3..f87061762b37 100644 --- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/sqlPool.json +++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-04-01-preview/sqlPool.json @@ -459,129 +459,6 @@ } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/metadataSync/config": { - "get": { - "operationId": "SqlPoolMetadataSyncConfigs_Get", - "summary": "Get SQL pool metadata sync config", - "description": "Get the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./workspace.json#/parameters/workspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - } - ], - "responses": { - "404": { - "description": "" - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Get metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/GetSqlPoolMetadataSyncConfig.json" - } - } - }, - "put": { - "operationId": "SqlPoolMetadataSyncConfigs_Create", - "summary": "Set SQL pool metadata sync config", - "description": "Set the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./workspace.json#/parameters/workspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - }, - { - "description": "Metadata sync configuration", - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "in": "body", - "name": "metadataSyncConfiguration", - "required": true - } - ], - "responses": { - "404": { - "description": "" - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Set metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/CreateSqlPoolMetadataSyncConfig.json" - } - } - } - }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/operationResults/{operationId}": { "get": { "operationId": "SqlPoolOperationResults_GetLocationHeaderResult", @@ -5326,35 +5203,6 @@ } } }, - "MetadataSyncConfig": { - "type": "object", - "title": "Metadata sync configuration", - "description": "Configuration for metadata sync", - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "title": "Metadata Sync Config properties", - "description": "Metadata Sync Config properties", - "properties": { - "enabled": { - "type": "boolean", - "description": "Indicates whether the metadata sync is enabled or disabled" - }, - "syncIntervalInMinutes": { - "type": "integer", - "format": "int32", - "description": "The Sync Interval in minutes." - } - }, - "x-ms-client-flatten": true - } - }, - "x-ms-azure-resource": true - }, "GeoBackupPolicyProperties": { "properties": { "state": { diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-06-01-preview/examples/CreateSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-06-01-preview/examples/CreateSqlPoolMetadataSyncConfig.json deleted file mode 100644 index f81906eb8f33..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-06-01-preview/examples/CreateSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2021-06-01-preview", - "metadataSyncConfiguration": { - "properties": { - "enabled": true - } - } - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-06-01-preview/examples/GetSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-06-01-preview/examples/GetSqlPoolMetadataSyncConfig.json deleted file mode 100644 index 48b399ede4d2..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-06-01-preview/examples/GetSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2021-06-01-preview" - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-06-01-preview/sqlPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-06-01-preview/sqlPool.json index b0e640901a93..0ec9668c4e78 100644 --- a/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-06-01-preview/sqlPool.json +++ b/specification/synapse/resource-manager/Microsoft.Synapse/preview/2021-06-01-preview/sqlPool.json @@ -467,131 +467,6 @@ } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/metadataSync/config": { - "get": { - "operationId": "SqlPoolMetadataSyncConfigs_Get", - "summary": "Get SQL pool metadata sync config", - "description": "Get the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - } - ], - "responses": { - "404": { - "description": "", - "x-ms-error-response": true - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Get metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/GetSqlPoolMetadataSyncConfig.json" - } - } - }, - "put": { - "operationId": "SqlPoolMetadataSyncConfigs_Create", - "summary": "Set SQL pool metadata sync config", - "description": "Set the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - }, - { - "description": "Metadata sync configuration", - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "in": "body", - "name": "metadataSyncConfiguration", - "required": true - } - ], - "responses": { - "404": { - "description": "", - "x-ms-error-response": true - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Set metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/CreateSqlPoolMetadataSyncConfig.json" - } - } - } - }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/operationResults/{operationId}": { "get": { "operationId": "SqlPoolOperationResults_GetLocationHeaderResult", @@ -5492,36 +5367,6 @@ } } }, - "MetadataSyncConfig": { - "type": "object", - "title": "Metadata sync configuration", - "description": "Configuration for metadata sync", - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "type": "object", - "title": "Metadata Sync Config properties", - "description": "Metadata Sync Config properties", - "properties": { - "enabled": { - "type": "boolean", - "description": "Indicates whether the metadata sync is enabled or disabled" - }, - "syncIntervalInMinutes": { - "type": "integer", - "format": "int32", - "description": "The Sync Interval in minutes.", - "readOnly": true - } - }, - "x-ms-client-flatten": true - } - } - }, "GeoBackupPolicyProperties": { "type": "object", "properties": { diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/examples/CreateSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/examples/CreateSqlPoolMetadataSyncConfig.json deleted file mode 100644 index f6be6f4656cc..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/examples/CreateSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2020-12-01", - "metadataSyncConfiguration": { - "properties": { - "enabled": true - } - } - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/examples/GetSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/examples/GetSqlPoolMetadataSyncConfig.json deleted file mode 100644 index 71de1e0046f1..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/examples/GetSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2020-12-01" - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/sqlPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/sqlPool.json index 990ddb87d16f..8a61da84cabc 100644 --- a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/sqlPool.json +++ b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2020-12-01/sqlPool.json @@ -459,129 +459,6 @@ } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/metadataSync/config": { - "get": { - "operationId": "SqlPoolMetadataSyncConfigs_Get", - "summary": "Get SQL pool metadata sync config", - "description": "Get the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./workspace.json#/parameters/workspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - } - ], - "responses": { - "404": { - "description": "" - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Get metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/GetSqlPoolMetadataSyncConfig.json" - } - } - }, - "put": { - "operationId": "SqlPoolMetadataSyncConfigs_Create", - "summary": "Set SQL pool metadata sync config", - "description": "Set the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./workspace.json#/parameters/workspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - }, - { - "description": "Metadata sync configuration", - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "in": "body", - "name": "metadataSyncConfiguration", - "required": true - } - ], - "responses": { - "404": { - "description": "" - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Set metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/CreateSqlPoolMetadataSyncConfig.json" - } - } - } - }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/operationResults/{operationId}": { "get": { "operationId": "SqlPoolOperationResults_GetLocationHeaderResult", @@ -5322,35 +5199,6 @@ } } }, - "MetadataSyncConfig": { - "type": "object", - "title": "Metadata sync configuration", - "description": "Configuration for metadata sync", - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "title": "Metadata Sync Config properties", - "description": "Metadata Sync Config properties", - "properties": { - "enabled": { - "type": "boolean", - "description": "Indicates whether the metadata sync is enabled or disabled" - }, - "syncIntervalInMinutes": { - "type": "integer", - "format": "int32", - "description": "The Sync Interval in minutes." - } - }, - "x-ms-client-flatten": true - } - }, - "x-ms-azure-resource": true - }, "GeoBackupPolicyProperties": { "properties": { "state": { diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/examples/CreateSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/examples/CreateSqlPoolMetadataSyncConfig.json deleted file mode 100644 index abe6b335f5a3..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/examples/CreateSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2021-03-01", - "metadataSyncConfiguration": { - "properties": { - "enabled": true - } - } - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/examples/GetSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/examples/GetSqlPoolMetadataSyncConfig.json deleted file mode 100644 index 679db925af79..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/examples/GetSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2021-03-01" - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/sqlPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/sqlPool.json index 5865e74fc882..ca9dbb7f897d 100644 --- a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/sqlPool.json +++ b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-03-01/sqlPool.json @@ -459,129 +459,6 @@ } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/metadataSync/config": { - "get": { - "operationId": "SqlPoolMetadataSyncConfigs_Get", - "summary": "Get SQL pool metadata sync config", - "description": "Get the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./workspace.json#/parameters/workspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - } - ], - "responses": { - "404": { - "description": "" - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Get metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/GetSqlPoolMetadataSyncConfig.json" - } - } - }, - "put": { - "operationId": "SqlPoolMetadataSyncConfigs_Create", - "summary": "Set SQL pool metadata sync config", - "description": "Set the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./workspace.json#/parameters/workspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - }, - { - "description": "Metadata sync configuration", - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "in": "body", - "name": "metadataSyncConfiguration", - "required": true - } - ], - "responses": { - "404": { - "description": "" - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Set metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/CreateSqlPoolMetadataSyncConfig.json" - } - } - } - }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/operationResults/{operationId}": { "get": { "operationId": "SqlPoolOperationResults_GetLocationHeaderResult", @@ -5326,34 +5203,6 @@ } } }, - "MetadataSyncConfig": { - "type": "object", - "title": "Metadata sync configuration", - "description": "Configuration for metadata sync", - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "title": "Metadata Sync Config properties", - "description": "Metadata Sync Config properties", - "properties": { - "enabled": { - "type": "boolean", - "description": "Indicates whether the metadata sync is enabled or disabled" - }, - "syncIntervalInMinutes": { - "type": "integer", - "format": "int32", - "description": "The Sync Interval in minutes." - } - }, - "x-ms-client-flatten": true - } - } - }, "GeoBackupPolicyProperties": { "properties": { "state": { diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-05-01/examples/CreateSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-05-01/examples/CreateSqlPoolMetadataSyncConfig.json deleted file mode 100644 index 96d2ea080f61..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-05-01/examples/CreateSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2021-05-01", - "metadataSyncConfiguration": { - "properties": { - "enabled": true - } - } - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-05-01/examples/GetSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-05-01/examples/GetSqlPoolMetadataSyncConfig.json deleted file mode 100644 index a9e66f0ab6e9..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-05-01/examples/GetSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2021-05-01" - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-05-01/sqlPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-05-01/sqlPool.json index 133b991eb51a..d3e1de5976d1 100644 --- a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-05-01/sqlPool.json +++ b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-05-01/sqlPool.json @@ -459,129 +459,6 @@ } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/metadataSync/config": { - "get": { - "operationId": "SqlPoolMetadataSyncConfigs_Get", - "summary": "Get SQL pool metadata sync config", - "description": "Get the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./workspace.json#/parameters/workspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - } - ], - "responses": { - "404": { - "description": "" - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Get metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/GetSqlPoolMetadataSyncConfig.json" - } - } - }, - "put": { - "operationId": "SqlPoolMetadataSyncConfigs_Create", - "summary": "Set SQL pool metadata sync config", - "description": "Set the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "./workspace.json#/parameters/workspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - }, - { - "description": "Metadata sync configuration", - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "in": "body", - "name": "metadataSyncConfiguration", - "required": true - } - ], - "responses": { - "404": { - "description": "" - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Set metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/CreateSqlPoolMetadataSyncConfig.json" - } - } - } - }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/operationResults/{operationId}": { "get": { "operationId": "SqlPoolOperationResults_GetLocationHeaderResult", @@ -5326,34 +5203,6 @@ } } }, - "MetadataSyncConfig": { - "type": "object", - "title": "Metadata sync configuration", - "description": "Configuration for metadata sync", - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "title": "Metadata Sync Config properties", - "description": "Metadata Sync Config properties", - "properties": { - "enabled": { - "type": "boolean", - "description": "Indicates whether the metadata sync is enabled or disabled" - }, - "syncIntervalInMinutes": { - "type": "integer", - "format": "int32", - "description": "The Sync Interval in minutes." - } - }, - "x-ms-client-flatten": true - } - } - }, "GeoBackupPolicyProperties": { "properties": { "state": { diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-06-01/examples/CreateSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-06-01/examples/CreateSqlPoolMetadataSyncConfig.json deleted file mode 100644 index 7a7295e9236b..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-06-01/examples/CreateSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2021-06-01", - "metadataSyncConfiguration": { - "properties": { - "enabled": true - } - } - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-06-01/examples/GetSqlPoolMetadataSyncConfig.json b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-06-01/examples/GetSqlPoolMetadataSyncConfig.json deleted file mode 100644 index c85ee071f8f5..000000000000 --- a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-06-01/examples/GetSqlPoolMetadataSyncConfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parameters": { - "subscriptionId": "01234567-89ab-4def-0123-456789abcdef", - "resourceGroupName": "ExampleResourceGroup", - "workspaceName": "ExampleWorkspace", - "sqlPoolName": "ExampleSqlPool", - "api-version": "2021-06-01" - }, - "responses": { - "200": { - "body": { - "id": "/subscriptions/01234567-89ab-4def-0123-456789abcdef/resourceGroups/ExampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/bigDataPools/ExamplePool/metadataSync/config", - "type": "Microsoft.Synapse/workspaces/bigDataPools/metadataSync/config", - "name": "config", - "properties": { - "enabled": true - } - } - }, - "404": {}, - "default": { - "body": { - "error": { - "code": "Error code", - "message": "Error message" - } - } - } - } -} diff --git a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-06-01/sqlPool.json b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-06-01/sqlPool.json index 61512fc37b56..319e044dc416 100644 --- a/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-06-01/sqlPool.json +++ b/specification/synapse/resource-manager/Microsoft.Synapse/stable/2021-06-01/sqlPool.json @@ -467,131 +467,6 @@ } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/metadataSync/config": { - "get": { - "operationId": "SqlPoolMetadataSyncConfigs_Get", - "summary": "Get SQL pool metadata sync config", - "description": "Get the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - } - ], - "responses": { - "404": { - "description": "", - "x-ms-error-response": true - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Get metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/GetSqlPoolMetadataSyncConfig.json" - } - } - }, - "put": { - "operationId": "SqlPoolMetadataSyncConfigs_Create", - "summary": "Set SQL pool metadata sync config", - "description": "Set the metadata sync configuration for a SQL pool", - "tags": [ - "SqlPools" - ], - "deprecated": false, - "parameters": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../common/v1/types.json#/parameters/WorkspaceNameParameter" - }, - { - "type": "string", - "in": "path", - "name": "sqlPoolName", - "description": "SQL pool name", - "required": true - }, - { - "description": "Metadata sync configuration", - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "in": "body", - "name": "metadataSyncConfiguration", - "required": true - } - ], - "responses": { - "404": { - "description": "", - "x-ms-error-response": true - }, - "200": { - "schema": { - "$ref": "#/definitions/MetadataSyncConfig" - }, - "description": "" - }, - "default": { - "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - }, - "description": "" - } - }, - "consumes": [], - "produces": [ - "application/json" - ], - "x-ms-examples": { - "Set metadata sync config for a SQL Analytics pool": { - "$ref": "./examples/CreateSqlPoolMetadataSyncConfig.json" - } - } - } - }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/operationResults/{operationId}": { "get": { "operationId": "SqlPoolOperationResults_GetLocationHeaderResult", @@ -5396,35 +5271,6 @@ } } }, - "MetadataSyncConfig": { - "type": "object", - "title": "Metadata sync configuration", - "description": "Configuration for metadata sync", - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" - } - ], - "properties": { - "properties": { - "title": "Metadata Sync Config properties", - "description": "Metadata Sync Config properties", - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Indicates whether the metadata sync is enabled or disabled" - }, - "syncIntervalInMinutes": { - "type": "integer", - "format": "int32", - "description": "The Sync Interval in minutes." - } - }, - "x-ms-client-flatten": true - } - } - }, "GeoBackupPolicyProperties": { "type": "object", "properties": { From 62f105d5732ecbb1d5c103006b9db71d8f2a90d1 Mon Sep 17 00:00:00 2001 From: Guy Wilf Shukrun <guywilfshukrun@gmail.com> Date: Sun, 4 Jan 2026 05:22:11 +0200 Subject: [PATCH 091/117] User/gwilfshukrun/fix discrepancies between preview stable (#39293) * Fix metadataPatch model to be consistent with BE + Preview versions * Fix operations preview version discrepancies * Fix alert rules discrepancies between stable and preview * Fix discrepancies of data connectors between preview and stable * Fix watchlists discrepancies between preview and stable * Fix incidents discrepancies between preview and stable * Fix prettier * Fix prettier attemp 2 * Fix model of data connectors * Fix dataconnectors examples * add mdti to spellcheck * Revert all previous private changes, keep only the latest preview changes * Fix alert rule descriptions * Updated descriptions to better align with naming conventions and product names (#39402) * Fix AAD references, using name Microsoft Entra ID * Fix description for data connectors stable --------- Co-authored-by: Guy Wilf Shukrun <gwilfshukrun@microsoft.com> Co-authored-by: dacousin-msft <dacousin@microsoft.com> --- specification/securityinsights/cspell.yaml | 1 + .../2025-07-01-preview/AlertRules.json | 72 ++++++---- .../preview/2025-07-01-preview/Incidents.json | 92 ++++++++----- .../2025-07-01-preview/Watchlists.json | 92 ++++++++++--- .../common/RelationTypes.json | 3 +- .../2025-07-01-preview/dataConnectors.json | 77 +++++++++++ ...rosoftThreatIntelligenceDataConnector.json | 4 +- ...derForThreatIntelligenceDataConnector.json | 61 +++++++++ ...derForThreatIntelligenceDataConnector.json | 13 ++ .../GetMicrosoftThreatIntelligenceById.json | 2 +- ...softDefenderForThreatIntelligenceById.json | 30 +++++ .../2025-07-01-preview/operations.json | 3 +- .../stable/2023-02-01/Metadata.json | 5 + .../stable/2023-11-01/Metadata.json | 5 + .../stable/2024-03-01/Metadata.json | 5 + .../stable/2024-09-01/AlertRules.json | 98 ++++++++------ .../stable/2024-09-01/DataConnectors.json | 126 +++++++++++------- .../stable/2024-09-01/Metadata.json | 5 + .../dataConnectors/GetDataConnectors.json | 3 + .../stable/2025-03-01/AlertRules.json | 98 ++++++++------ .../stable/2025-03-01/DataConnectors.json | 126 +++++++++++------- .../stable/2025-03-01/Metadata.json | 5 + .../dataConnectors/GetDataConnectors.json | 3 + .../stable/2025-06-01/AlertRules.json | 98 ++++++++------ .../stable/2025-06-01/DataConnectors.json | 126 +++++++++++------- .../stable/2025-06-01/Metadata.json | 5 + .../dataConnectors/GetDataConnectors.json | 3 + .../stable/2025-09-01/AlertRules.json | 98 ++++++++------ .../stable/2025-09-01/DataConnectors.json | 126 +++++++++++------- .../stable/2025-09-01/Metadata.json | 5 + .../dataConnectors/GetDataConnectors.json | 3 + 31 files changed, 940 insertions(+), 453 deletions(-) create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/CreatePremiumMicrosoftDefenderForThreatIntelligenceDataConnector.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/DeletePremiumMicrosoftDefenderForThreatIntelligenceDataConnector.json create mode 100644 specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/GetPremiumMicrosoftDefenderForThreatIntelligenceById.json diff --git a/specification/securityinsights/cspell.yaml b/specification/securityinsights/cspell.yaml index ab8c7cae7823..932476a897f6 100644 --- a/specification/securityinsights/cspell.yaml +++ b/specification/securityinsights/cspell.yaml @@ -49,6 +49,7 @@ overrides: - usgrpuser - usracl - usrstamp + - mdti - filename: >- **/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/**/*.json words: diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/AlertRules.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/AlertRules.json index c9772a128d1a..825dd0c46fc9 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/AlertRules.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/AlertRules.json @@ -642,7 +642,8 @@ "properties": { "kind": { "$ref": "#/definitions/AlertRuleKindEnum", - "description": "The kind of the alert rule" + "description": "The kind of the alert rule", + "type": "string" } }, "required": [ @@ -661,7 +662,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] } }, "type": "object" @@ -670,7 +672,7 @@ "description": "Base alert rule template property bag.", "properties": { "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", + "description": "The number of alert rules that were created by this template", "type": "integer", "format": "int32" }, @@ -818,7 +820,8 @@ "items": { "$ref": "#/definitions/AlertRuleTemplate" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] } }, "type": "object", @@ -853,7 +856,8 @@ "items": { "$ref": "#/definitions/AlertRule" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] } }, "type": "object", @@ -916,7 +920,8 @@ "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" }, "readOnly": true, - "type": "array" + "type": "array", + "x-ms-identifiers": [] }, "techniques": { "description": "The techniques of the alert rule", @@ -1047,7 +1052,8 @@ "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" }, "readOnly": true, - "type": "array" + "type": "array", + "x-ms-identifiers": [] }, "techniques": { "description": "The techniques of the alert rule", @@ -1210,7 +1216,7 @@ "description": "Fusion alert rule template properties", "properties": { "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", + "description": "The number of alert rules that were created by this template", "format": "int32", "type": "integer" }, @@ -1282,8 +1288,7 @@ "type": "array" } }, - "type": "object", - "x-ms-client-flatten": true + "type": "object" }, "FusionTemplateSourceSetting": { "description": "Represents a source signal consumed in Fusion detection.", @@ -1491,14 +1496,16 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] }, "displayNamesExcludeFilter": { "description": "the alerts' displayNames on which the cases will not be generated", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] }, "productFilter": { "$ref": "#/definitions/MicrosoftSecurityProductName", @@ -1509,7 +1516,8 @@ "items": { "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] } }, "required": [ @@ -1610,14 +1618,16 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] }, "displayNamesExcludeFilter": { "description": "the alerts' displayNames on which the cases will not be generated", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] }, "productFilter": { "$ref": "#/definitions/MicrosoftSecurityProductName", @@ -1628,11 +1638,11 @@ "items": { "$ref": "./common/AlertTypes.json#/definitions/AlertSeverityEnum" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] } }, - "type": "object", - "x-ms-client-flatten": true + "type": "object" }, "ScheduledAlertRuleProperties": { "allOf": [ @@ -1682,7 +1692,8 @@ "items": { "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] }, "techniques": { "description": "The techniques of the alert rule", @@ -1715,8 +1726,7 @@ "suppressionEnabled", "suppressionDuration" ], - "type": "object", - "x-ms-client-flatten": true + "type": "object" }, "NrtAlertRuleProperties": { "description": "Nrt alert rule base property bag.", @@ -1829,7 +1839,7 @@ "description": "Scheduled alert rule template properties", "properties": { "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", + "description": "The number of alert rules that were created by this template", "format": "int32", "type": "integer" }, @@ -2288,7 +2298,8 @@ "items": { "$ref": "#/definitions/EntityMappingType" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] }, "groupByAlertDetails": { "description": "A list of alert details to group by (when matchingMethod is Selected)", @@ -2314,14 +2325,16 @@ ] } }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] }, "groupByCustomDetails": { "description": "A list of custom details keys to group by (when matchingMethod is Selected). Only keys defined in the current alert rule may be used.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] } }, "type": "object", @@ -2383,11 +2396,15 @@ "ActionResponse": { "allOf": [ { - "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Resource" } ], "description": "Action for alert rule.", "properties": { + "etag": { + "description": "ETag of the action.", + "type": "string" + }, "properties": { "$ref": "#/definitions/ActionResponseProperties", "description": "Action properties for get request", @@ -2424,7 +2441,8 @@ "items": { "$ref": "#/definitions/ActionResponse" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] } }, "type": "object", diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/Incidents.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/Incidents.json index a083792a08ca..69e1c9359d2f 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/Incidents.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/Incidents.json @@ -36,7 +36,13 @@ "$ref": "../../../common/2.0/types.json#/parameters/ODataOrderBy" }, { - "$ref": "../../../common/2.0/types.json#/parameters/ODataTop" + "description": "Returns only the first n results. Optional.", + "format": "int32", + "in": "query", + "maximum": 1000, + "name": "$top", + "type": "integer", + "x-ms-parameter-location": "method" }, { "$ref": "../../../common/2.0/types.json#/parameters/ODataSkipToken" @@ -44,7 +50,7 @@ ], "responses": { "200": { - "description": "OK", + "description": "OK, Operation successfully completed", "schema": { "$ref": "#/definitions/IncidentList" } @@ -71,7 +77,7 @@ "tags": [ "Incidents" ], - "description": "Gets an incident.", + "description": "Gets a given incident.", "operationId": "Incidents_Get", "produces": [ "application/json" @@ -95,7 +101,7 @@ ], "responses": { "200": { - "description": "OK", + "description": "OK, Operation successfully completed", "schema": { "$ref": "#/definitions/Incident" } @@ -117,7 +123,7 @@ "tags": [ "Incidents" ], - "description": "Creates or updates the incident.", + "description": "Creates or updates an incident.", "operationId": "Incidents_CreateOrUpdate", "produces": [ "application/json" @@ -144,7 +150,7 @@ ], "responses": { "200": { - "description": "OK", + "description": "OK, Operation successfully completed", "schema": { "$ref": "#/definitions/Incident" } @@ -172,7 +178,7 @@ "tags": [ "Incidents" ], - "description": "Delete the incident.", + "description": "Deletes a given incident.", "operationId": "Incidents_Delete", "produces": [ "application/json" @@ -196,7 +202,7 @@ ], "responses": { "200": { - "description": "OK" + "description": "OK, Operation successfully completed" }, "204": { "description": "No Content" @@ -220,7 +226,7 @@ "tags": [ "IncidentAlerts" ], - "description": "Gets all incident alerts.", + "description": "Gets all alerts for an incident.", "operationId": "Incidents_ListAlerts", "produces": [ "application/json" @@ -268,7 +274,7 @@ "tags": [ "IncidentBookmarks" ], - "description": "Gets all incident bookmarks.", + "description": "Gets all bookmarks for an incident.", "operationId": "Incidents_ListBookmarks", "produces": [ "application/json" @@ -316,7 +322,7 @@ "tags": [ "IncidentComments" ], - "description": "Gets all incident comments.", + "description": "Gets all comments for a given incident.", "operationId": "IncidentComments_List", "produces": [ "application/json" @@ -352,7 +358,7 @@ ], "responses": { "200": { - "description": "OK", + "description": "OK, Operation successfully completed", "schema": { "$ref": "#/definitions/IncidentCommentList" } @@ -364,6 +370,7 @@ } } }, + "x-ms-odata": "#/definitions/IncidentComment", "x-ms-pageable": { "nextLinkName": "nextLink" }, @@ -406,7 +413,7 @@ ], "responses": { "200": { - "description": "OK", + "description": "OK, Operation successfully completed", "schema": { "$ref": "#/definitions/IncidentComment" } @@ -428,7 +435,7 @@ "tags": [ "IncidentComments" ], - "description": "Creates or updates the incident comment.", + "description": "Creates or updates a comment for a given incident.", "operationId": "IncidentComments_CreateOrUpdate", "produces": [ "application/json" @@ -458,7 +465,7 @@ ], "responses": { "200": { - "description": "OK", + "description": "Updated", "schema": { "$ref": "#/definitions/IncidentComment" } @@ -486,7 +493,7 @@ "tags": [ "IncidentComments" ], - "description": "Delete the incident comment.", + "description": "Deletes a comment for a given incident.", "operationId": "IncidentComments_Delete", "produces": [ "application/json" @@ -537,7 +544,7 @@ "tags": [ "IncidentEntities" ], - "description": "Gets all incident related entities.", + "description": "Gets all entities for an incident.", "operationId": "Incidents_ListEntities", "produces": [ "application/json" @@ -590,7 +597,7 @@ "tags": [ "IncidentRelations" ], - "description": "Gets all incident relations.", + "description": "Gets all relations for a given incident.", "operationId": "IncidentRelations_List", "produces": [ "application/json" @@ -654,7 +661,7 @@ "tags": [ "IncidentRelations" ], - "description": "Gets an incident relation.", + "description": "Gets a relation for a given incident.", "operationId": "IncidentRelations_Get", "produces": [ "application/json" @@ -696,7 +703,7 @@ }, "put": { "x-ms-examples": { - "Creates or updates an incident relation.": { + "Creates or updates a relation for a given incident.": { "$ref": "./examples/incidents/relations/CreateIncidentRelation.json" } }, @@ -761,7 +768,7 @@ "tags": [ "IncidentRelations" ], - "description": "Delete the incident relation.", + "description": "Deletes a relation for a given incident.", "operationId": "IncidentRelations_Delete", "produces": [ "application/json" @@ -1014,6 +1021,7 @@ }, "definitions": { "Incident": { + "description": "Represents an incident in Azure Security Insights.", "type": "object", "allOf": [ { @@ -1022,6 +1030,7 @@ ], "properties": { "properties": { + "description": "Incident properties", "type": "object", "$ref": "#/definitions/IncidentProperties", "x-ms-client-flatten": true @@ -1057,7 +1066,8 @@ "description": "Alert product name", "type": "string" }, - "readOnly": true + "readOnly": true, + "x-ms-identifiers": [] }, "tactics": { "description": "The tactics associated with incident", @@ -1065,7 +1075,8 @@ "items": { "$ref": "./common/AlertTypes.json#/definitions/AttackTactic" }, - "readOnly": true + "readOnly": true, + "x-ms-identifiers": [] }, "techniques": { "description": "The techniques associated with incident's tactics", @@ -1101,7 +1112,8 @@ "type": "array", "items": { "$ref": "./common/EntityTypes.json#/definitions/SecurityAlert" - } + }, + "x-ms-identifiers": [] } }, "required": [ @@ -1117,7 +1129,8 @@ "type": "array", "items": { "$ref": "./common/EntityTypes.json#/definitions/HuntingBookmark" - } + }, + "x-ms-identifiers": [] } }, "required": [ @@ -1142,15 +1155,19 @@ } }, "IncidentCommentList": { + "description": "List of incident comments.", "type": "object", "properties": { "value": { + "description": "Array of comments.", "type": "array", "items": { "$ref": "#/definitions/IncidentComment" - } + }, + "x-ms-identifiers": [] }, "nextLink": { + "description": "URL to fetch the next set of comments.", "type": "string", "readOnly": true } @@ -1199,14 +1216,16 @@ "type": "array", "items": { "$ref": "./common/EntityTypes.json#/definitions/Entity" - } + }, + "x-ms-identifiers": [] }, "metaData": { "description": "The metadata from the incident related entities results.", "type": "array", "items": { "$ref": "#/definitions/IncidentEntitiesResultsMetadata" - } + }, + "x-ms-identifiers": [] } } }, @@ -1237,10 +1256,12 @@ "type": "object", "properties": { "value": { + "description": "Array of incidents.", "type": "array", "items": { "$ref": "#/definitions/Incident" - } + }, + "x-ms-identifiers": [] }, "nextLink": { "description": "URL to fetch the next set of incidents.", @@ -1250,6 +1271,7 @@ } }, "IncidentProperties": { + "description": "Describes incident properties", "required": [ "severity", "status", @@ -1266,9 +1288,11 @@ "type": "string" }, "severity": { + "description": "The severity of the incident", "$ref": "./common/IncidentTypes.json#/definitions/IncidentSeverityEnum" }, "status": { + "description": "The status of the incident", "$ref": "./common/IncidentTypes.json#/definitions/IncidentStatusEnum" }, "classification": { @@ -1293,7 +1317,8 @@ "type": "array", "items": { "$ref": "./common/IncidentTypes.json#/definitions/IncidentLabel" - } + }, + "x-ms-identifiers": [] }, "firstActivityTimeUtc": { "format": "date-time", @@ -1347,7 +1372,8 @@ ] } }, - "readOnly": true + "readOnly": true, + "x-ms-identifiers": [] }, "incidentUrl": { "description": "The deep-link url to the incident in Azure portal", @@ -1372,6 +1398,7 @@ } }, "IncidentTask": { + "description": "Describes incident task properties", "required": [ "properties" ], @@ -1390,6 +1417,7 @@ } }, "IncidentTaskList": { + "description": "List of incident tasks", "type": "object", "properties": { "value": { @@ -1404,6 +1432,7 @@ } }, "IncidentTaskProperties": { + "description": "Describes the properties of an incident task", "required": [ "status", "title" @@ -1444,6 +1473,7 @@ } }, "IncidentTaskStatus": { + "description": "The status of the task", "enum": [ "New", "Completed" diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/Watchlists.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/Watchlists.json index af72da80f924..d39d37328378 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/Watchlists.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/Watchlists.json @@ -44,7 +44,7 @@ "tags": [ "Watchlists" ], - "description": "Gets all watchlists, without watchlist items.", + "description": "Get all watchlists, without watchlist items.", "operationId": "Watchlists_List", "parameters": [ { @@ -92,7 +92,7 @@ "tags": [ "Watchlists" ], - "description": "Gets a watchlist, without its watchlist items.", + "description": "Get a watchlist, without its watchlist items.", "operationId": "Watchlists_Get", "parameters": [ { @@ -163,6 +163,7 @@ "type": "string" }, "Location": { + "description": "Location URL to poll for result.", "type": "string" } } @@ -177,21 +178,24 @@ } } }, - "x-ms-long-running-operation": true + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + } }, "put": { "x-ms-examples": { - "Creates or updates a watchlist.": { + "Create or update a watchlist.": { "$ref": "./examples/watchlists/CreateWatchlist.json" }, - "Creates or updates a watchlist and bulk creates watchlist items.": { + "Create or update a watchlist and bulk creates watchlist items.": { "$ref": "./examples/watchlists/CreateWatchlistAndWatchlistItems.json" } }, "tags": [ "Watchlists" ], - "description": "Create or update a Watchlist and its Watchlist Items (bulk creation, e.g. through text/csv content type). To create a Watchlist and its Items, we should call this endpoint with either rawContent or a valid SAR URI and contentType properties. The rawContent is mainly used for small watchlist (content size below 3.8 MB). The SAS URI enables the creation of large watchlist, where the content size can go up to 500 MB. The status of processing such large file can be polled through the URL returned in Azure-AsyncOperation header.", + "description": "Create or update a Watchlist and its Watchlist Items (bulk creation, e.g. through text/csv content type). To create a Watchlist and its Items, we should call this endpoint with rawContent and contentType properties.", "operationId": "Watchlists_CreateOrUpdate", "parameters": [ { @@ -239,7 +243,10 @@ } } }, - "x-ms-long-running-operation": true + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{workspaceName}/providers/Microsoft.SecurityInsights/watchlists/{watchlistAlias}/watchlistItems": { @@ -252,7 +259,7 @@ "tags": [ "WatchlistItems" ], - "description": "Gets all watchlist Items.", + "description": "Get all watchlist Items.", "operationId": "WatchlistItems_List", "parameters": [ { @@ -303,7 +310,7 @@ "tags": [ "WatchlistItems" ], - "description": "Gets a watchlist, without its watchlist items.", + "description": "Get a watchlist item.", "operationId": "WatchlistItems_Get", "parameters": [ { @@ -342,7 +349,7 @@ }, "delete": { "x-ms-examples": { - "Delete a watchlist Item.": { + "Delete a watchlist item.": { "$ref": "./examples/watchlists/DeleteWatchlistItem.json" } }, @@ -388,14 +395,14 @@ }, "put": { "x-ms-examples": { - "Creates or updates a watchlist item.": { + "Create or update a watchlist item.": { "$ref": "./examples/watchlists/CreateWatchlistItem.json" } }, "tags": [ "WatchlistItems" ], - "description": "Creates or updates a watchlist item.", + "description": "Create or update a watchlist item.", "operationId": "WatchlistItems_CreateOrUpdate", "parameters": [ { @@ -509,7 +516,17 @@ "type": "string", "x-ms-enum": { "modelAsString": true, - "name": "sourceType" + "name": "sourceType", + "values": [ + { + "description": "The source from local file.", + "value": "Local" + }, + { + "description": "The source from Azure storage.", + "value": "AzureStorage" + } + ] } }, "created": { @@ -578,11 +595,11 @@ "type": "string" }, "contentType": { - "description": "The content type of the raw content. Example : text/csv or text/tsv ", + "description": "The content type of the raw content. Example : text/csv or text/tsv", "type": "string" }, "uploadStatus": { - "description": "The status of the Watchlist upload : New, InProgress or Complete. Pls note : When a Watchlist upload status is equal to InProgress, the Watchlist cannot be deleted", + "description": "The status of the Watchlist upload : New, InProgress or Complete. **Note** : When a Watchlist upload status is InProgress, the Watchlist cannot be deleted", "type": "string" }, "provisioningState": { @@ -598,9 +615,10 @@ }, "WatchlistItemList": { "description": "List all the watchlist items.", + "type": "object", "properties": { "nextLink": { - "description": "URL to fetch the next set of watchlist item.", + "description": "URL to fetch the next set of watchlist items.", "readOnly": true, "type": "string" }, @@ -612,7 +630,6 @@ "type": "array" } }, - "type": "object", "required": [ "value" ] @@ -623,7 +640,7 @@ "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" } ], - "description": "Represents a Watchlist item in Azure Security Insights.", + "description": "Represents a Watchlist Item in Azure Security Insights.", "properties": { "properties": { "$ref": "#/definitions/WatchlistItemProperties", @@ -669,7 +686,8 @@ }, "updatedBy": { "$ref": "../../../common/2.0/types.json#/definitions/UserInfo", - "description": "Describes a user that updated the watchlist item" + "description": "Describes a user that updated the watchlist item", + "type": "object" }, "itemsKeyValue": { "description": "key-value pairs for a watchlist item", @@ -699,14 +717,44 @@ "type": "string", "x-ms-enum": { "name": "ProvisioningState", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "description": "The New provisioning state.", + "value": "New" + }, + { + "description": "The InProgress provisioning state.", + "value": "InProgress" + }, + { + "description": "The Uploading provisioning state.", + "value": "Uploading" + }, + { + "description": "The Deleting provisioning state.", + "value": "Deleting" + }, + { + "description": "The Succeeded provisioning state.", + "value": "Succeeded" + }, + { + "description": "The Failed provisioning state.", + "value": "Failed" + }, + { + "description": "The Canceled provisioning state.", + "value": "Canceled" + } + ] }, "readOnly": true } }, "parameters": { "WatchlistAlias": { - "description": "Watchlist Alias", + "description": "The watchlist alias", "in": "path", "name": "watchlistAlias", "required": true, @@ -734,7 +782,7 @@ "x-ms-parameter-location": "method" }, "WatchlistItemId": { - "description": "Watchlist Item Id (GUID)", + "description": "The watchlist item id (GUID)", "in": "path", "name": "watchlistItemId", "required": true, diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/common/RelationTypes.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/common/RelationTypes.json index f20f9bb487b1..0d21711524d2 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/common/RelationTypes.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/common/RelationTypes.json @@ -19,7 +19,8 @@ "type": "array", "items": { "$ref": "#/definitions/Relation" - } + }, + "x-ms-identifiers": [] } }, "type": "object", diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/dataConnectors.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/dataConnectors.json index 98d430fdc4b9..33bf79e33e1e 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/dataConnectors.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/dataConnectors.json @@ -136,6 +136,9 @@ "Get a MicrosoftThreatIntelligence data connector": { "$ref": "./examples/dataConnectors/GetMicrosoftThreatIntelligenceById.json" }, + "Get a PremiumMicrosoftDefenderForThreatIntelligence data connector": { + "$ref": "./examples/dataConnectors/GetPremiumMicrosoftDefenderForThreatIntelligenceById.json" + }, "Get a GenericUI data connector": { "$ref": "./examples/dataConnectors/GetGenericUI.json" }, @@ -207,6 +210,9 @@ "Creates or updates a Microsoft Threat Intelligence data connector.": { "$ref": "./examples/dataConnectors/CreateMicrosoftThreatIntelligenceDataConnector.json" }, + "Creates or updates a PremiumMicrosoftDefenderForThreatIntelligence data connector.": { + "$ref": "./examples/dataConnectors/CreatePremiumMicrosoftDefenderForThreatIntelligenceDataConnector.json" + }, "Creates or updates an Office PowerBI data connector": { "$ref": "./examples/dataConnectors/CreateOfficePowerBIDataConnector.json" }, @@ -295,6 +301,9 @@ "Delete an MicrosoftThreatIntelligence data connector": { "$ref": "./examples/dataConnectors/DeleteMicrosoftThreatIntelligenceDataConnector.json" }, + "Deletes a PremiumMicrosoftDefenderForThreatIntelligence data connector.": { + "$ref": "./examples/dataConnectors/DeletePremiumMicrosoftDefenderForThreatIntelligenceDataConnector.json" + }, "Delete an Office PowerBI data connector": { "$ref": "./examples/dataConnectors/DeleteOfficePowerBIDataConnetor.json" }, @@ -1147,6 +1156,7 @@ "properties": { "lookbackPeriod": { "description": "The lookback period for the feed to be imported.", + "format": "date-time", "type": "string" } }, @@ -1180,6 +1190,69 @@ ], "type": "object" }, + "PremiumMicrosoftDefenderForThreatIntelligence": { + "allOf": [ + { + "$ref": "#/definitions/DataConnector" + } + ], + "description": "Represents Microsoft Defender for Threat Intelligence Premium data connector.", + "properties": { + "properties": { + "$ref": "#/definitions/PremiumMdtiDataConnectorProperties", + "description": "Microsoft Defender for Threat Intelligence Premium data connector properties.", + "x-ms-client-flatten": true + } + }, + "type": "object", + "x-ms-discriminator-value": "PremiumMicrosoftDefenderForThreatIntelligence" + }, + "PremiumMdtiDataConnectorDataTypes": { + "description": "The available data types for Microsoft Defender for Threat Intelligence Premium data connector.", + "properties": { + "connector": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorDataTypeCommon" + } + ], + "description": "Data type for Microsoft Defender for Threat Intelligence Premium data connector.", + "type": "object" + } + }, + "type": "object", + "required": [ + "connector" + ] + }, + "PremiumMdtiDataConnectorProperties": { + "description": "Microsoft Defender for Threat Intelligence Premium data connector properties.", + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], + "properties": { + "lookbackPeriod": { + "description": "The lookback period for the feed to be imported. The date-time to begin importing the feed from, for example: 2024-01-01T00:00:00.000Z.", + "format": "date-time", + "type": "string" + }, + "requiredSKUsPresent": { + "description": "The flag to indicate whether the tenant has the premium SKU required to access this connector.", + "type": "boolean" + }, + "dataTypes": { + "$ref": "#/definitions/PremiumMdtiDataConnectorDataTypes", + "description": "The available data types for the connector." + } + }, + "required": [ + "dataTypes", + "lookbackPeriod" + ], + "type": "object" + }, "MTPDataConnector": { "allOf": [ { @@ -2573,6 +2646,7 @@ "Dynamics365", "MicrosoftThreatProtection", "MicrosoftThreatIntelligence", + "PremiumMicrosoftDefenderForThreatIntelligence", "GenericUI", "APIPolling", "IOT", @@ -2639,6 +2713,9 @@ { "value": "MicrosoftThreatIntelligence" }, + { + "value": "PremiumMicrosoftDefenderForThreatIntelligence" + }, { "value": "GenericUI" }, diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/CreateMicrosoftThreatIntelligenceDataConnector.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/CreateMicrosoftThreatIntelligenceDataConnector.json index 5133326fe6f8..758fef324a11 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/CreateMicrosoftThreatIntelligenceDataConnector.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/CreateMicrosoftThreatIntelligenceDataConnector.json @@ -31,7 +31,7 @@ "dataTypes": { "microsoftEmergingThreatFeed": { "state": "Enabled", - "lookbackPeriod": "01/01/1970 00:00:00" + "lookbackPeriod": "1970-01-01T00:00:00.000Z" } } } @@ -49,7 +49,7 @@ "dataTypes": { "microsoftEmergingThreatFeed": { "state": "Enabled", - "lookbackPeriod": "01/01/1970 00:00:00" + "lookbackPeriod": "1970-01-01T00:00:00.000Z" } } } diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/CreatePremiumMicrosoftDefenderForThreatIntelligenceDataConnector.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/CreatePremiumMicrosoftDefenderForThreatIntelligenceDataConnector.json new file mode 100644 index 000000000000..dd7685a25aba --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/CreatePremiumMicrosoftDefenderForThreatIntelligenceDataConnector.json @@ -0,0 +1,61 @@ +{ + "parameters": { + "api-version": "2025-07-01-preview", + "subscriptionId": "b66e5c69-e2eb-422a-81c3-002de57059f3", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "8c569548-a86c-4fb4-8ae4-d1e35a6146f8", + "dataConnector": { + "kind": "PremiumMicrosoftDefenderForThreatIntelligence", + "properties": { + "tenantId": "e4afb3c4-813b-4e68-b6de-e5360866e798", + "lookbackPeriod": "1970-01-01T00:00:00.000Z", + "dataTypes": { + "connector": { + "state": "Enabled" + } + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/b66e5c69-e2eb-422a-81c3-002de57059f3/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/3deede2e-c6d1-4ee6-afc8-e0190ac34200", + "name": "3deede2e-c6d1-4ee6-afc8-e0190ac34200", + "etag": "56003401-0000-0100-0000-67314b0b0000", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "PremiumMicrosoftDefenderForThreatIntelligence", + "properties": { + "lookbackPeriod": "2024-11-01T00:00:00Z", + "requiredSKUsPresent": true, + "dataTypes": { + "connector": { + "state": "Enabled" + } + }, + "tenantId": "e4afb3c4-813b-4e68-b6de-e5360866e798" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/b66e5c69-e2eb-422a-81c3-002de57059f3/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/3deede2e-c6d1-4ee6-afc8-e0190ac34200", + "name": "3deede2e-c6d1-4ee6-afc8-e0190ac34200", + "etag": "56003401-0000-0100-0000-67314b0b0000", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "PremiumMicrosoftDefenderForThreatIntelligence", + "properties": { + "lookbackPeriod": "2024-11-01T00:00:00Z", + "requiredSKUsPresent": true, + "dataTypes": { + "connector": { + "state": "Enabled" + } + }, + "tenantId": "e4afb3c4-813b-4e68-b6de-e5360866e798" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/DeletePremiumMicrosoftDefenderForThreatIntelligenceDataConnector.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/DeletePremiumMicrosoftDefenderForThreatIntelligenceDataConnector.json new file mode 100644 index 000000000000..90bbfad90072 --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/DeletePremiumMicrosoftDefenderForThreatIntelligenceDataConnector.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2025-07-01-preview", + "subscriptionId": "b66e5c69-e2eb-422a-81c3-002de57059f3", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "8c569548-a86c-4fb4-8ae4-d1e35a6146f8" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/GetMicrosoftThreatIntelligenceById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/GetMicrosoftThreatIntelligenceById.json index 0439c960fd5b..01b317915289 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/GetMicrosoftThreatIntelligenceById.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/GetMicrosoftThreatIntelligenceById.json @@ -19,7 +19,7 @@ "dataTypes": { "microsoftEmergingThreatFeed": { "state": "Enabled", - "lookbackPeriod": "01/01/1970 00:00:00" + "lookbackPeriod": "1970-01-01T00:00:00.000Z" } } } diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/GetPremiumMicrosoftDefenderForThreatIntelligenceById.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/GetPremiumMicrosoftDefenderForThreatIntelligenceById.json new file mode 100644 index 000000000000..d640d20fc5ef --- /dev/null +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/examples/dataConnectors/GetPremiumMicrosoftDefenderForThreatIntelligenceById.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2025-07-01-preview", + "subscriptionId": "b66e5c69-e2eb-422a-81c3-002de57059f3", + "resourceGroupName": "myRg", + "workspaceName": "myWorkspace", + "dataConnectorId": "8c569548-a86c-4fb4-8ae4-d1e35a6146f8" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/b66e5c69-e2eb-422a-81c3-002de57059f3/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace/providers/Microsoft.SecurityInsights/dataConnectors/8c569548-a86c-4fb4-8ae4-d1e35a6146f8", + "name": "8c569548-a86c-4fb4-8ae4-d1e35a6146f8", + "etag": "d30049a2-0000-0800-0000-658ca2270000", + "type": "Microsoft.SecurityInsights/dataConnectors", + "kind": "PremiumMicrosoftDefenderForThreatIntelligence", + "properties": { + "lookbackPeriod": "2023-12-26T22:16:07Z", + "requiredSKUsPresent": false, + "dataTypes": { + "connector": { + "state": "Enabled" + } + }, + "tenantId": "e4afb3c4-813b-4e68-b6de-e5360866e798" + } + } + } + } +} diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/operations.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/operations.json index 5c594ef60bc0..8d2a702709e1 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/operations.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/preview/2025-07-01-preview/operations.json @@ -85,7 +85,8 @@ "items": { "$ref": "#/definitions/Operation" }, - "type": "array" + "type": "array", + "x-ms-identifiers": [] } }, "required": [ diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2023-02-01/Metadata.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2023-02-01/Metadata.json index 9251dca31c12..4c87116806ca 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2023-02-01/Metadata.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2023-02-01/Metadata.json @@ -323,6 +323,11 @@ } }, "metadataPatch": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], "description": "Metadata patch request body.", "type": "object", "properties": { diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2023-11-01/Metadata.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2023-11-01/Metadata.json index 3c662b07f17e..2dc8843368b4 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2023-11-01/Metadata.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2023-11-01/Metadata.json @@ -323,6 +323,11 @@ } }, "metadataPatch": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], "description": "Metadata patch request body.", "type": "object", "properties": { diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-03-01/Metadata.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-03-01/Metadata.json index 8fb436ab136a..13b4323cc0d7 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-03-01/Metadata.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-03-01/Metadata.json @@ -323,6 +323,11 @@ } }, "metadataPatch": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], "description": "Metadata patch request body.", "type": "object", "properties": { diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/AlertRules.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/AlertRules.json index eaa4845ed2dc..b0eb476e0bfb 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/AlertRules.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/AlertRules.json @@ -568,7 +568,8 @@ "properties": { "triggerUri": { "description": "Logic App Callback URL for this specific workflow.", - "type": "string" + "type": "string", + "x-ms-secret": true } }, "required": [ @@ -585,7 +586,7 @@ "description": "Action for alert rule.", "properties": { "etag": { - "description": "Etag of the action.", + "description": "ETag of the action.", "type": "string" }, "properties": { @@ -705,6 +706,51 @@ }, "type": "object" }, + "AlertRuleTemplatePropertiesBase": { + "description": "Base alert rule template property bag.", + "properties": { + "alertRulesCreatedByTemplateCount": { + "description": "The number of alert rules that were created by this template", + "format": "int32", + "type": "integer" + }, + "createdDateUTC": { + "description": "The time that this alert rule template has been added.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "The description of the alert rule template.", + "type": "string" + }, + "displayName": { + "description": "The display name for alert rule template.", + "type": "string" + }, + "lastUpdatedDateUTC": { + "description": "The last time that this alert rule template has been updated.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "requiredDataConnectors": { + "description": "The required data sources for this template", + "items": { + "$ref": "#/definitions/AlertRuleTemplateDataSource" + }, + "type": "array", + "x-ms-identifiers": [ + "connectorId" + ] + }, + "status": { + "$ref": "#/definitions/AlertRuleTemplateStatus", + "description": "The alert rule template status." + } + }, + "type": "object" + }, "AlertRuleTemplateStatus": { "description": "The alert rule template status.", "enum": [ @@ -891,7 +937,7 @@ "description": "Represents Fusion alert rule template properties", "properties": { "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", + "description": "The number of alert rules that were created by this template", "format": "int32", "type": "integer" }, @@ -1068,46 +1114,13 @@ "x-ms-discriminator-value": "MicrosoftSecurityIncidentCreation" }, "MicrosoftSecurityIncidentCreationAlertRuleTemplateProperties": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplatePropertiesBase" + } + ], "description": "MicrosoftSecurityIncidentCreation rule template properties", "properties": { - "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", - "format": "int32", - "type": "integer" - }, - "createdDateUTC": { - "description": "The time that this alert rule template has been added.", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "lastUpdatedDateUTC": { - "description": "The time that this alert rule template was last updated.", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "The description of the alert rule template.", - "type": "string" - }, - "displayName": { - "description": "The display name for alert rule template.", - "type": "string" - }, - "requiredDataConnectors": { - "description": "The required data connectors for this template", - "items": { - "$ref": "#/definitions/AlertRuleTemplateDataSource" - }, - "type": "array", - "x-ms-identifiers": [] - }, - "status": { - "$ref": "#/definitions/AlertRuleTemplateStatus", - "description": "The alert rule template status.", - "type": "string" - }, "displayNamesFilter": { "description": "the alerts' displayNames on which the cases will be generated", "items": { @@ -1520,7 +1533,7 @@ "description": "Scheduled alert rule template properties", "properties": { "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", + "description": "The number of alert rules that were created by this template", "format": "int32", "type": "integer" }, @@ -1650,6 +1663,7 @@ "triggerThreshold", "version" ], + "type": "object", "x-ms-client-flatten": true } }, diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/DataConnectors.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/DataConnectors.json index 5e8558c1f792..d03237aaa51a 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/DataConnectors.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/DataConnectors.json @@ -273,11 +273,11 @@ "$ref": "#/definitions/DataConnector" } ], - "description": "Represents AAD (Azure Active Directory) data connector.", + "description": "Represents Microsoft Entra ID data connector.", "properties": { "properties": { "$ref": "#/definitions/AADDataConnectorProperties", - "description": "AAD (Azure Active Directory) data connector properties.", + "description": "Microsoft Entra ID data connector properties.", "x-ms-client-flatten": true } }, @@ -285,17 +285,15 @@ "x-ms-discriminator-value": "AzureActiveDirectory" }, "AADDataConnectorProperties": { - "description": "AAD (Azure Active Directory) data connector properties.", - "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" }, - "dataTypes": { - "$ref": "#/definitions/AlertsDataTypeOfDataConnector", - "description": "The available data types for the connector." + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" } - }, + ], + "description": "Microsoft Entra ID data connector properties.", "type": "object" }, "AATPDataConnector": { @@ -317,16 +315,14 @@ }, "AATPDataConnectorProperties": { "description": "AATP (Azure Advanced Threat Protection) data connector properties.", - "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" }, - "dataTypes": { - "$ref": "#/definitions/AlertsDataTypeOfDataConnector", - "description": "The available data types for the connector." + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" } - }, + ], "type": "object" }, "ASCDataConnector": { @@ -370,6 +366,9 @@ "type": "object" } }, + "required": [ + "alerts" + ], "type": "object" }, "AwsCloudTrailDataConnector": { @@ -402,6 +401,9 @@ "type": "object" } }, + "required": [ + "logs" + ], "type": "object" }, "AwsCloudTrailDataConnectorProperties": { @@ -416,6 +418,9 @@ "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" }, "RestApiPollerDataConnector": { @@ -1389,7 +1394,8 @@ "properties": { "kind": { "$ref": "#/definitions/DataConnectorKind", - "description": "The data connector kind" + "description": "The data connector kind", + "type": "string" } }, "type": "object" @@ -1487,6 +1493,9 @@ } } }, + "required": [ + "state" + ], "type": "object" }, "DataConnectorTenantId": { @@ -1497,6 +1506,9 @@ "type": "string" } }, + "required": [ + "tenantId" + ], "type": "object" }, "DataConnectorWithAlertsProperties": { @@ -1534,10 +1546,6 @@ ], "description": "The available data types for MCAS (Microsoft Cloud App Security) data connector.", "properties": { - "alerts": { - "$ref": "#/definitions/DataConnectorDataTypeCommon", - "description": "Alerts data type connection." - }, "discoveryLogs": { "$ref": "#/definitions/DataConnectorDataTypeCommon", "description": "Discovery log data type connection." @@ -1546,17 +1554,21 @@ "type": "object" }, "MCASDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], "description": "MCAS (Microsoft Cloud App Security) data connector properties.", "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" - }, "dataTypes": { "$ref": "#/definitions/MCASDataConnectorDataTypes", "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" }, "MDATPDataConnector": { @@ -1577,17 +1589,15 @@ "x-ms-discriminator-value": "MicrosoftDefenderAdvancedThreatProtection" }, "MDATPDataConnectorProperties": { - "description": "MDATP (Microsoft Defender Advanced Threat Protection) data connector properties.", - "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" }, - "dataTypes": { - "$ref": "#/definitions/AlertsDataTypeOfDataConnector", - "description": "The available data types for the connector." + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" } - }, + ], + "description": "MDATP (Microsoft Defender Advanced Threat Protection) data connector properties.", "type": "object" }, "TIDataConnector": { @@ -1620,15 +1630,19 @@ "type": "object" } }, + "required": [ + "indicators" + ], "type": "object" }, "TIDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], "description": "TI (Threat Intelligence) data connector properties.", "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" - }, "tipLookbackPeriod": { "description": "The lookback period for the feed to be imported.", "format": "date-time", @@ -1640,6 +1654,9 @@ "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" }, "MSTIDataConnector": { @@ -1711,11 +1728,11 @@ "$ref": "#/definitions/DataConnector" } ], - "description": "Represents Premium Microsoft Defender for Threat Intelligence data connector.", + "description": "Represents Microsoft Defender for Threat Intelligence Premium data connector.", "properties": { "properties": { "$ref": "#/definitions/PremiumMdtiDataConnectorProperties", - "description": "Premium Microsoft Defender for Threat Intelligence data connector properties.", + "description": "Microsoft Defender for Threat Intelligence Premium data connector properties.", "x-ms-client-flatten": true } }, @@ -1723,7 +1740,7 @@ "x-ms-discriminator-value": "PremiumMicrosoftDefenderForThreatIntelligence" }, "PremiumMdtiDataConnectorDataTypes": { - "description": "The available data types for Premium Microsoft Defender for Threat Intelligence data connector.", + "description": "The available data types for Microsoft Defender for Threat Intelligence Premium data connector.", "properties": { "connector": { "allOf": [ @@ -1731,7 +1748,7 @@ "$ref": "#/definitions/DataConnectorDataTypeCommon" } ], - "description": "Data type for Premium Microsoft Defender for Threat Intelligence data connector.", + "description": "Data type for Microsoft Defender for Threat Intelligence Premium data connector.", "type": "object" } }, @@ -1741,7 +1758,7 @@ ] }, "PremiumMdtiDataConnectorProperties": { - "description": "Premium Microsoft Defender for Threat Intelligence data connector properties.", + "description": "Microsoft Defender for Threat Intelligence Premium data connector properties.", "allOf": [ { "$ref": "#/definitions/DataConnectorTenantId" @@ -1816,20 +1833,29 @@ "type": "object" } }, + "required": [ + "exchange", + "sharePoint", + "teams" + ], "type": "object" }, "OfficeDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], "description": "Office data connector properties.", "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" - }, "dataTypes": { "$ref": "#/definitions/OfficeDataConnectorDataTypes", "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" } }, diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/Metadata.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/Metadata.json index ae7d1a08ace9..1f8d2d9549df 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/Metadata.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/Metadata.json @@ -323,6 +323,11 @@ } }, "metadataPatch": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], "description": "Metadata patch request body.", "type": "object", "properties": { diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/examples/dataConnectors/GetDataConnectors.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/examples/dataConnectors/GetDataConnectors.json index c21df3ff522a..ad2a65b66648 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/examples/dataConnectors/GetDataConnectors.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2024-09-01/examples/dataConnectors/GetDataConnectors.json @@ -69,6 +69,9 @@ }, "exchange": { "state": "Enabled" + }, + "teams": { + "state": "Enabled" } } } diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/AlertRules.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/AlertRules.json index 3bb053893453..cd15044e3c2d 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/AlertRules.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/AlertRules.json @@ -568,7 +568,8 @@ "properties": { "triggerUri": { "description": "Logic App Callback URL for this specific workflow.", - "type": "string" + "type": "string", + "x-ms-secret": true } }, "required": [ @@ -585,7 +586,7 @@ "description": "Action for alert rule.", "properties": { "etag": { - "description": "Etag of the action.", + "description": "ETag of the action.", "type": "string" }, "properties": { @@ -705,6 +706,51 @@ }, "type": "object" }, + "AlertRuleTemplatePropertiesBase": { + "description": "Base alert rule template property bag.", + "properties": { + "alertRulesCreatedByTemplateCount": { + "description": "The number of alert rules that were created by this template", + "format": "int32", + "type": "integer" + }, + "createdDateUTC": { + "description": "The time that this alert rule template has been added.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "The description of the alert rule template.", + "type": "string" + }, + "displayName": { + "description": "The display name for alert rule template.", + "type": "string" + }, + "lastUpdatedDateUTC": { + "description": "The last time that this alert rule template has been updated.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "requiredDataConnectors": { + "description": "The required data sources for this template", + "items": { + "$ref": "#/definitions/AlertRuleTemplateDataSource" + }, + "type": "array", + "x-ms-identifiers": [ + "connectorId" + ] + }, + "status": { + "$ref": "#/definitions/AlertRuleTemplateStatus", + "description": "The alert rule template status." + } + }, + "type": "object" + }, "AlertRuleTemplateStatus": { "description": "The alert rule template status.", "enum": [ @@ -891,7 +937,7 @@ "description": "Represents Fusion alert rule template properties", "properties": { "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", + "description": "The number of alert rules that were created by this template", "format": "int32", "type": "integer" }, @@ -1068,46 +1114,13 @@ "x-ms-discriminator-value": "MicrosoftSecurityIncidentCreation" }, "MicrosoftSecurityIncidentCreationAlertRuleTemplateProperties": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplatePropertiesBase" + } + ], "description": "MicrosoftSecurityIncidentCreation rule template properties", "properties": { - "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", - "format": "int32", - "type": "integer" - }, - "createdDateUTC": { - "description": "The time that this alert rule template has been added.", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "lastUpdatedDateUTC": { - "description": "The time that this alert rule template was last updated.", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "The description of the alert rule template.", - "type": "string" - }, - "displayName": { - "description": "The display name for alert rule template.", - "type": "string" - }, - "requiredDataConnectors": { - "description": "The required data connectors for this template", - "items": { - "$ref": "#/definitions/AlertRuleTemplateDataSource" - }, - "type": "array", - "x-ms-identifiers": [] - }, - "status": { - "$ref": "#/definitions/AlertRuleTemplateStatus", - "description": "The alert rule template status.", - "type": "string" - }, "displayNamesFilter": { "description": "the alerts' displayNames on which the cases will be generated", "items": { @@ -1520,7 +1533,7 @@ "description": "Scheduled alert rule template properties", "properties": { "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", + "description": "The number of alert rules that were created by this template", "format": "int32", "type": "integer" }, @@ -1650,6 +1663,7 @@ "triggerThreshold", "version" ], + "type": "object", "x-ms-client-flatten": true } }, diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/DataConnectors.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/DataConnectors.json index d1de22642522..9579c948f8c6 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/DataConnectors.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/DataConnectors.json @@ -273,11 +273,11 @@ "$ref": "#/definitions/DataConnector" } ], - "description": "Represents AAD (Azure Active Directory) data connector.", + "description": "Represents Microsoft Entra ID data connector.", "properties": { "properties": { "$ref": "#/definitions/AADDataConnectorProperties", - "description": "AAD (Azure Active Directory) data connector properties.", + "description": "Microsoft Entra ID data connector properties.", "x-ms-client-flatten": true } }, @@ -285,17 +285,15 @@ "x-ms-discriminator-value": "AzureActiveDirectory" }, "AADDataConnectorProperties": { - "description": "AAD (Azure Active Directory) data connector properties.", - "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" }, - "dataTypes": { - "$ref": "#/definitions/AlertsDataTypeOfDataConnector", - "description": "The available data types for the connector." + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" } - }, + ], + "description": "Microsoft Entra ID data connector properties.", "type": "object" }, "AATPDataConnector": { @@ -317,16 +315,14 @@ }, "AATPDataConnectorProperties": { "description": "AATP (Azure Advanced Threat Protection) data connector properties.", - "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" }, - "dataTypes": { - "$ref": "#/definitions/AlertsDataTypeOfDataConnector", - "description": "The available data types for the connector." + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" } - }, + ], "type": "object" }, "ASCDataConnector": { @@ -370,6 +366,9 @@ "type": "object" } }, + "required": [ + "alerts" + ], "type": "object" }, "AwsCloudTrailDataConnector": { @@ -402,6 +401,9 @@ "type": "object" } }, + "required": [ + "logs" + ], "type": "object" }, "AwsCloudTrailDataConnectorProperties": { @@ -416,6 +418,9 @@ "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" }, "RestApiPollerDataConnector": { @@ -1389,7 +1394,8 @@ "properties": { "kind": { "$ref": "#/definitions/DataConnectorKind", - "description": "The data connector kind" + "description": "The data connector kind", + "type": "string" } }, "type": "object" @@ -1487,6 +1493,9 @@ } } }, + "required": [ + "state" + ], "type": "object" }, "DataConnectorTenantId": { @@ -1497,6 +1506,9 @@ "type": "string" } }, + "required": [ + "tenantId" + ], "type": "object" }, "DataConnectorWithAlertsProperties": { @@ -1534,10 +1546,6 @@ ], "description": "The available data types for MCAS (Microsoft Cloud App Security) data connector.", "properties": { - "alerts": { - "$ref": "#/definitions/DataConnectorDataTypeCommon", - "description": "Alerts data type connection." - }, "discoveryLogs": { "$ref": "#/definitions/DataConnectorDataTypeCommon", "description": "Discovery log data type connection." @@ -1546,17 +1554,21 @@ "type": "object" }, "MCASDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], "description": "MCAS (Microsoft Cloud App Security) data connector properties.", "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" - }, "dataTypes": { "$ref": "#/definitions/MCASDataConnectorDataTypes", "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" }, "MDATPDataConnector": { @@ -1577,17 +1589,15 @@ "x-ms-discriminator-value": "MicrosoftDefenderAdvancedThreatProtection" }, "MDATPDataConnectorProperties": { - "description": "MDATP (Microsoft Defender Advanced Threat Protection) data connector properties.", - "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" }, - "dataTypes": { - "$ref": "#/definitions/AlertsDataTypeOfDataConnector", - "description": "The available data types for the connector." + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" } - }, + ], + "description": "MDATP (Microsoft Defender Advanced Threat Protection) data connector properties.", "type": "object" }, "TIDataConnector": { @@ -1620,15 +1630,19 @@ "type": "object" } }, + "required": [ + "indicators" + ], "type": "object" }, "TIDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], "description": "TI (Threat Intelligence) data connector properties.", "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" - }, "tipLookbackPeriod": { "description": "The lookback period for the feed to be imported.", "format": "date-time", @@ -1640,6 +1654,9 @@ "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" }, "MSTIDataConnector": { @@ -1711,11 +1728,11 @@ "$ref": "#/definitions/DataConnector" } ], - "description": "Represents Premium Microsoft Defender for Threat Intelligence data connector.", + "description": "Represents Microsoft Defender for Threat Intelligence Premium data connector.", "properties": { "properties": { "$ref": "#/definitions/PremiumMdtiDataConnectorProperties", - "description": "Premium Microsoft Defender for Threat Intelligence data connector properties.", + "description": "Microsoft Defender for Threat Intelligence Premium data connector properties.", "x-ms-client-flatten": true } }, @@ -1723,7 +1740,7 @@ "x-ms-discriminator-value": "PremiumMicrosoftDefenderForThreatIntelligence" }, "PremiumMdtiDataConnectorDataTypes": { - "description": "The available data types for Premium Microsoft Defender for Threat Intelligence data connector.", + "description": "The available data types for Microsoft Defender for Threat Intelligence Premium data connector.", "properties": { "connector": { "allOf": [ @@ -1731,7 +1748,7 @@ "$ref": "#/definitions/DataConnectorDataTypeCommon" } ], - "description": "Data type for Premium Microsoft Defender for Threat Intelligence data connector.", + "description": "Data type for Microsoft Defender for Threat Intelligence Premium data connector.", "type": "object" } }, @@ -1741,7 +1758,7 @@ ] }, "PremiumMdtiDataConnectorProperties": { - "description": "Premium Microsoft Defender for Threat Intelligence data connector properties.", + "description": "Microsoft Defender for Threat Intelligence Premium data connector properties.", "allOf": [ { "$ref": "#/definitions/DataConnectorTenantId" @@ -1816,20 +1833,29 @@ "type": "object" } }, + "required": [ + "exchange", + "sharePoint", + "teams" + ], "type": "object" }, "OfficeDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], "description": "Office data connector properties.", "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" - }, "dataTypes": { "$ref": "#/definitions/OfficeDataConnectorDataTypes", "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" } }, diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/Metadata.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/Metadata.json index bc47cc8e4323..a9f6be02d1d1 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/Metadata.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/Metadata.json @@ -323,6 +323,11 @@ } }, "metadataPatch": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], "description": "Metadata patch request body.", "type": "object", "properties": { diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/examples/dataConnectors/GetDataConnectors.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/examples/dataConnectors/GetDataConnectors.json index 1de8344ea898..71b1f92e1c6b 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/examples/dataConnectors/GetDataConnectors.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-03-01/examples/dataConnectors/GetDataConnectors.json @@ -69,6 +69,9 @@ }, "exchange": { "state": "Enabled" + }, + "teams": { + "state": "Enabled" } } } diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/AlertRules.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/AlertRules.json index 56be9ad98891..186c1c795b0b 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/AlertRules.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/AlertRules.json @@ -568,7 +568,8 @@ "properties": { "triggerUri": { "description": "Logic App Callback URL for this specific workflow.", - "type": "string" + "type": "string", + "x-ms-secret": true } }, "required": [ @@ -585,7 +586,7 @@ "description": "Action for alert rule.", "properties": { "etag": { - "description": "Etag of the action.", + "description": "ETag of the action.", "type": "string" }, "properties": { @@ -705,6 +706,51 @@ }, "type": "object" }, + "AlertRuleTemplatePropertiesBase": { + "description": "Base alert rule template property bag.", + "properties": { + "alertRulesCreatedByTemplateCount": { + "description": "The number of alert rules that were created by this template", + "format": "int32", + "type": "integer" + }, + "createdDateUTC": { + "description": "The time that this alert rule template has been added.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "The description of the alert rule template.", + "type": "string" + }, + "displayName": { + "description": "The display name for alert rule template.", + "type": "string" + }, + "lastUpdatedDateUTC": { + "description": "The last time that this alert rule template has been updated.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "requiredDataConnectors": { + "description": "The required data sources for this template", + "items": { + "$ref": "#/definitions/AlertRuleTemplateDataSource" + }, + "type": "array", + "x-ms-identifiers": [ + "connectorId" + ] + }, + "status": { + "$ref": "#/definitions/AlertRuleTemplateStatus", + "description": "The alert rule template status." + } + }, + "type": "object" + }, "AlertRuleTemplateStatus": { "description": "The alert rule template status.", "enum": [ @@ -891,7 +937,7 @@ "description": "Represents Fusion alert rule template properties", "properties": { "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", + "description": "The number of alert rules that were created by this template", "format": "int32", "type": "integer" }, @@ -1068,46 +1114,13 @@ "x-ms-discriminator-value": "MicrosoftSecurityIncidentCreation" }, "MicrosoftSecurityIncidentCreationAlertRuleTemplateProperties": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplatePropertiesBase" + } + ], "description": "MicrosoftSecurityIncidentCreation rule template properties", "properties": { - "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", - "format": "int32", - "type": "integer" - }, - "createdDateUTC": { - "description": "The time that this alert rule template has been added.", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "lastUpdatedDateUTC": { - "description": "The time that this alert rule template was last updated.", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "The description of the alert rule template.", - "type": "string" - }, - "displayName": { - "description": "The display name for alert rule template.", - "type": "string" - }, - "requiredDataConnectors": { - "description": "The required data connectors for this template", - "items": { - "$ref": "#/definitions/AlertRuleTemplateDataSource" - }, - "type": "array", - "x-ms-identifiers": [] - }, - "status": { - "$ref": "#/definitions/AlertRuleTemplateStatus", - "description": "The alert rule template status.", - "type": "string" - }, "displayNamesFilter": { "description": "the alerts' displayNames on which the cases will be generated", "items": { @@ -1520,7 +1533,7 @@ "description": "Scheduled alert rule template properties", "properties": { "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", + "description": "The number of alert rules that were created by this template", "format": "int32", "type": "integer" }, @@ -1650,6 +1663,7 @@ "triggerThreshold", "version" ], + "type": "object", "x-ms-client-flatten": true } }, diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/DataConnectors.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/DataConnectors.json index 8a8ea003a718..d26eedab0cd1 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/DataConnectors.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/DataConnectors.json @@ -273,11 +273,11 @@ "$ref": "#/definitions/DataConnector" } ], - "description": "Represents AAD (Azure Active Directory) data connector.", + "description": "Represents Microsoft Entra ID data connector.", "properties": { "properties": { "$ref": "#/definitions/AADDataConnectorProperties", - "description": "AAD (Azure Active Directory) data connector properties.", + "description": "Microsoft Entra ID data connector properties.", "x-ms-client-flatten": true } }, @@ -285,17 +285,15 @@ "x-ms-discriminator-value": "AzureActiveDirectory" }, "AADDataConnectorProperties": { - "description": "AAD (Azure Active Directory) data connector properties.", - "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" }, - "dataTypes": { - "$ref": "#/definitions/AlertsDataTypeOfDataConnector", - "description": "The available data types for the connector." + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" } - }, + ], + "description": "Microsoft Entra ID data connector properties.", "type": "object" }, "AATPDataConnector": { @@ -317,16 +315,14 @@ }, "AATPDataConnectorProperties": { "description": "AATP (Azure Advanced Threat Protection) data connector properties.", - "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" }, - "dataTypes": { - "$ref": "#/definitions/AlertsDataTypeOfDataConnector", - "description": "The available data types for the connector." + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" } - }, + ], "type": "object" }, "ASCDataConnector": { @@ -370,6 +366,9 @@ "type": "object" } }, + "required": [ + "alerts" + ], "type": "object" }, "AwsCloudTrailDataConnector": { @@ -402,6 +401,9 @@ "type": "object" } }, + "required": [ + "logs" + ], "type": "object" }, "AwsCloudTrailDataConnectorProperties": { @@ -416,6 +418,9 @@ "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" }, "RestApiPollerDataConnector": { @@ -1389,7 +1394,8 @@ "properties": { "kind": { "$ref": "#/definitions/DataConnectorKind", - "description": "The data connector kind" + "description": "The data connector kind", + "type": "string" } }, "type": "object" @@ -1487,6 +1493,9 @@ } } }, + "required": [ + "state" + ], "type": "object" }, "DataConnectorTenantId": { @@ -1497,6 +1506,9 @@ "type": "string" } }, + "required": [ + "tenantId" + ], "type": "object" }, "DataConnectorWithAlertsProperties": { @@ -1534,10 +1546,6 @@ ], "description": "The available data types for MCAS (Microsoft Cloud App Security) data connector.", "properties": { - "alerts": { - "$ref": "#/definitions/DataConnectorDataTypeCommon", - "description": "Alerts data type connection." - }, "discoveryLogs": { "$ref": "#/definitions/DataConnectorDataTypeCommon", "description": "Discovery log data type connection." @@ -1546,17 +1554,21 @@ "type": "object" }, "MCASDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], "description": "MCAS (Microsoft Cloud App Security) data connector properties.", "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" - }, "dataTypes": { "$ref": "#/definitions/MCASDataConnectorDataTypes", "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" }, "MDATPDataConnector": { @@ -1577,17 +1589,15 @@ "x-ms-discriminator-value": "MicrosoftDefenderAdvancedThreatProtection" }, "MDATPDataConnectorProperties": { - "description": "MDATP (Microsoft Defender Advanced Threat Protection) data connector properties.", - "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" }, - "dataTypes": { - "$ref": "#/definitions/AlertsDataTypeOfDataConnector", - "description": "The available data types for the connector." + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" } - }, + ], + "description": "MDATP (Microsoft Defender Advanced Threat Protection) data connector properties.", "type": "object" }, "TIDataConnector": { @@ -1620,15 +1630,19 @@ "type": "object" } }, + "required": [ + "indicators" + ], "type": "object" }, "TIDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], "description": "TI (Threat Intelligence) data connector properties.", "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" - }, "tipLookbackPeriod": { "description": "The lookback period for the feed to be imported.", "format": "date-time", @@ -1640,6 +1654,9 @@ "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" }, "MSTIDataConnector": { @@ -1711,11 +1728,11 @@ "$ref": "#/definitions/DataConnector" } ], - "description": "Represents Premium Microsoft Defender for Threat Intelligence data connector.", + "description": "Represents Microsoft Defender for Threat Intelligence Premium data connector.", "properties": { "properties": { "$ref": "#/definitions/PremiumMdtiDataConnectorProperties", - "description": "Premium Microsoft Defender for Threat Intelligence data connector properties.", + "description": "Microsoft Defender for Threat Intelligence Premium data connector properties.", "x-ms-client-flatten": true } }, @@ -1723,7 +1740,7 @@ "x-ms-discriminator-value": "PremiumMicrosoftDefenderForThreatIntelligence" }, "PremiumMdtiDataConnectorDataTypes": { - "description": "The available data types for Premium Microsoft Defender for Threat Intelligence data connector.", + "description": "The available data types for Microsoft Defender for Threat Intelligence Premium data connector.", "properties": { "connector": { "allOf": [ @@ -1731,7 +1748,7 @@ "$ref": "#/definitions/DataConnectorDataTypeCommon" } ], - "description": "Data type for Premium Microsoft Defender for Threat Intelligence data connector.", + "description": "Data type for Microsoft Defender for Threat Intelligence Premium data connector.", "type": "object" } }, @@ -1741,7 +1758,7 @@ ] }, "PremiumMdtiDataConnectorProperties": { - "description": "Premium Microsoft Defender for Threat Intelligence data connector properties.", + "description": "Microsoft Defender for Threat Intelligence Premium data connector properties.", "allOf": [ { "$ref": "#/definitions/DataConnectorTenantId" @@ -1816,20 +1833,29 @@ "type": "object" } }, + "required": [ + "exchange", + "sharePoint", + "teams" + ], "type": "object" }, "OfficeDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], "description": "Office data connector properties.", "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" - }, "dataTypes": { "$ref": "#/definitions/OfficeDataConnectorDataTypes", "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" } }, diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/Metadata.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/Metadata.json index 70e990c7c82c..a593d2def400 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/Metadata.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/Metadata.json @@ -323,6 +323,11 @@ } }, "metadataPatch": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], "description": "Metadata patch request body.", "type": "object", "properties": { diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/examples/dataConnectors/GetDataConnectors.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/examples/dataConnectors/GetDataConnectors.json index e6a69908a826..4405c48462f6 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/examples/dataConnectors/GetDataConnectors.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-06-01/examples/dataConnectors/GetDataConnectors.json @@ -69,6 +69,9 @@ }, "exchange": { "state": "Enabled" + }, + "teams": { + "state": "Enabled" } } } diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/AlertRules.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/AlertRules.json index 3691a442f51d..46e2a912e6e3 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/AlertRules.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/AlertRules.json @@ -568,7 +568,8 @@ "properties": { "triggerUri": { "description": "Logic App Callback URL for this specific workflow.", - "type": "string" + "type": "string", + "x-ms-secret": true } }, "required": [ @@ -585,7 +586,7 @@ "description": "Action for alert rule.", "properties": { "etag": { - "description": "Etag of the action.", + "description": "ETag of the action.", "type": "string" }, "properties": { @@ -705,6 +706,51 @@ }, "type": "object" }, + "AlertRuleTemplatePropertiesBase": { + "description": "Base alert rule template property bag.", + "properties": { + "alertRulesCreatedByTemplateCount": { + "description": "The number of alert rules that were created by this template", + "format": "int32", + "type": "integer" + }, + "createdDateUTC": { + "description": "The time that this alert rule template has been added.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "The description of the alert rule template.", + "type": "string" + }, + "displayName": { + "description": "The display name for alert rule template.", + "type": "string" + }, + "lastUpdatedDateUTC": { + "description": "The last time that this alert rule template has been updated.", + "format": "date-time", + "readOnly": true, + "type": "string" + }, + "requiredDataConnectors": { + "description": "The required data sources for this template", + "items": { + "$ref": "#/definitions/AlertRuleTemplateDataSource" + }, + "type": "array", + "x-ms-identifiers": [ + "connectorId" + ] + }, + "status": { + "$ref": "#/definitions/AlertRuleTemplateStatus", + "description": "The alert rule template status." + } + }, + "type": "object" + }, "AlertRuleTemplateStatus": { "description": "The alert rule template status.", "enum": [ @@ -891,7 +937,7 @@ "description": "Represents Fusion alert rule template properties", "properties": { "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", + "description": "The number of alert rules that were created by this template", "format": "int32", "type": "integer" }, @@ -1068,46 +1114,13 @@ "x-ms-discriminator-value": "MicrosoftSecurityIncidentCreation" }, "MicrosoftSecurityIncidentCreationAlertRuleTemplateProperties": { + "allOf": [ + { + "$ref": "#/definitions/AlertRuleTemplatePropertiesBase" + } + ], "description": "MicrosoftSecurityIncidentCreation rule template properties", "properties": { - "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", - "format": "int32", - "type": "integer" - }, - "createdDateUTC": { - "description": "The time that this alert rule template has been added.", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "lastUpdatedDateUTC": { - "description": "The time that this alert rule template was last updated.", - "format": "date-time", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "The description of the alert rule template.", - "type": "string" - }, - "displayName": { - "description": "The display name for alert rule template.", - "type": "string" - }, - "requiredDataConnectors": { - "description": "The required data connectors for this template", - "items": { - "$ref": "#/definitions/AlertRuleTemplateDataSource" - }, - "type": "array", - "x-ms-identifiers": [] - }, - "status": { - "$ref": "#/definitions/AlertRuleTemplateStatus", - "description": "The alert rule template status.", - "type": "string" - }, "displayNamesFilter": { "description": "the alerts' displayNames on which the cases will be generated", "items": { @@ -1520,7 +1533,7 @@ "description": "Scheduled alert rule template properties", "properties": { "alertRulesCreatedByTemplateCount": { - "description": "the number of alert rules that were created by this template", + "description": "The number of alert rules that were created by this template", "format": "int32", "type": "integer" }, @@ -1650,6 +1663,7 @@ "triggerThreshold", "version" ], + "type": "object", "x-ms-client-flatten": true } }, diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/DataConnectors.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/DataConnectors.json index 9f6ed40d09d3..ce1bcc24e50c 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/DataConnectors.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/DataConnectors.json @@ -273,11 +273,11 @@ "$ref": "#/definitions/DataConnector" } ], - "description": "Represents AAD (Azure Active Directory) data connector.", + "description": "Represents Microsoft Entra ID data connector.", "properties": { "properties": { "$ref": "#/definitions/AADDataConnectorProperties", - "description": "AAD (Azure Active Directory) data connector properties.", + "description": "Microsoft Entra ID data connector properties.", "x-ms-client-flatten": true } }, @@ -285,17 +285,15 @@ "x-ms-discriminator-value": "AzureActiveDirectory" }, "AADDataConnectorProperties": { - "description": "AAD (Azure Active Directory) data connector properties.", - "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" }, - "dataTypes": { - "$ref": "#/definitions/AlertsDataTypeOfDataConnector", - "description": "The available data types for the connector." + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" } - }, + ], + "description": "Microsoft Entra ID data connector properties.", "type": "object" }, "AATPDataConnector": { @@ -317,16 +315,14 @@ }, "AATPDataConnectorProperties": { "description": "AATP (Azure Advanced Threat Protection) data connector properties.", - "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" }, - "dataTypes": { - "$ref": "#/definitions/AlertsDataTypeOfDataConnector", - "description": "The available data types for the connector." + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" } - }, + ], "type": "object" }, "ASCDataConnector": { @@ -370,6 +366,9 @@ "type": "object" } }, + "required": [ + "alerts" + ], "type": "object" }, "AwsCloudTrailDataConnector": { @@ -402,6 +401,9 @@ "type": "object" } }, + "required": [ + "logs" + ], "type": "object" }, "AwsCloudTrailDataConnectorProperties": { @@ -416,6 +418,9 @@ "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" }, "RestApiPollerDataConnector": { @@ -1389,7 +1394,8 @@ "properties": { "kind": { "$ref": "#/definitions/DataConnectorKind", - "description": "The data connector kind" + "description": "The data connector kind", + "type": "string" } }, "type": "object" @@ -1487,6 +1493,9 @@ } } }, + "required": [ + "state" + ], "type": "object" }, "DataConnectorTenantId": { @@ -1497,6 +1506,9 @@ "type": "string" } }, + "required": [ + "tenantId" + ], "type": "object" }, "DataConnectorWithAlertsProperties": { @@ -1534,10 +1546,6 @@ ], "description": "The available data types for MCAS (Microsoft Cloud App Security) data connector.", "properties": { - "alerts": { - "$ref": "#/definitions/DataConnectorDataTypeCommon", - "description": "Alerts data type connection." - }, "discoveryLogs": { "$ref": "#/definitions/DataConnectorDataTypeCommon", "description": "Discovery log data type connection." @@ -1546,17 +1554,21 @@ "type": "object" }, "MCASDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], "description": "MCAS (Microsoft Cloud App Security) data connector properties.", "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" - }, "dataTypes": { "$ref": "#/definitions/MCASDataConnectorDataTypes", "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" }, "MDATPDataConnector": { @@ -1577,17 +1589,15 @@ "x-ms-discriminator-value": "MicrosoftDefenderAdvancedThreatProtection" }, "MDATPDataConnectorProperties": { - "description": "MDATP (Microsoft Defender Advanced Threat Protection) data connector properties.", - "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" }, - "dataTypes": { - "$ref": "#/definitions/AlertsDataTypeOfDataConnector", - "description": "The available data types for the connector." + { + "$ref": "#/definitions/DataConnectorWithAlertsProperties" } - }, + ], + "description": "MDATP (Microsoft Defender Advanced Threat Protection) data connector properties.", "type": "object" }, "TIDataConnector": { @@ -1620,15 +1630,19 @@ "type": "object" } }, + "required": [ + "indicators" + ], "type": "object" }, "TIDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], "description": "TI (Threat Intelligence) data connector properties.", "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" - }, "tipLookbackPeriod": { "description": "The lookback period for the feed to be imported.", "format": "date-time", @@ -1640,6 +1654,9 @@ "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" }, "MSTIDataConnector": { @@ -1711,11 +1728,11 @@ "$ref": "#/definitions/DataConnector" } ], - "description": "Represents Premium Microsoft Defender for Threat Intelligence data connector.", + "description": "Represents Microsoft Defender for Threat Intelligence Premium data connector.", "properties": { "properties": { "$ref": "#/definitions/PremiumMdtiDataConnectorProperties", - "description": "Premium Microsoft Defender for Threat Intelligence data connector properties.", + "description": "Microsoft Defender for Threat Intelligence Premium data connector properties.", "x-ms-client-flatten": true } }, @@ -1723,7 +1740,7 @@ "x-ms-discriminator-value": "PremiumMicrosoftDefenderForThreatIntelligence" }, "PremiumMdtiDataConnectorDataTypes": { - "description": "The available data types for Premium Microsoft Defender for Threat Intelligence data connector.", + "description": "The available data types for Microsoft Defender for Threat Intelligence Premium data connector.", "properties": { "connector": { "allOf": [ @@ -1731,7 +1748,7 @@ "$ref": "#/definitions/DataConnectorDataTypeCommon" } ], - "description": "Data type for Premium Microsoft Defender for Threat Intelligence data connector.", + "description": "Data type for Microsoft Defender for Threat Intelligence Premium data connector.", "type": "object" } }, @@ -1741,7 +1758,7 @@ ] }, "PremiumMdtiDataConnectorProperties": { - "description": "Premium Microsoft Defender for Threat Intelligence data connector properties.", + "description": "Microsoft Defender for Threat Intelligence Premium data connector properties.", "allOf": [ { "$ref": "#/definitions/DataConnectorTenantId" @@ -1816,20 +1833,29 @@ "type": "object" } }, + "required": [ + "exchange", + "sharePoint", + "teams" + ], "type": "object" }, "OfficeDataConnectorProperties": { + "allOf": [ + { + "$ref": "#/definitions/DataConnectorTenantId" + } + ], "description": "Office data connector properties.", "properties": { - "tenantId": { - "description": "The tenant id to connect to, and get the data from.", - "type": "string" - }, "dataTypes": { "$ref": "#/definitions/OfficeDataConnectorDataTypes", "description": "The available data types for the connector." } }, + "required": [ + "dataTypes" + ], "type": "object" } }, diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/Metadata.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/Metadata.json index 5bacdd650bc7..f702a30d5689 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/Metadata.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/Metadata.json @@ -323,6 +323,11 @@ } }, "metadataPatch": { + "allOf": [ + { + "$ref": "../../../common/2.0/types.json#/definitions/ResourceWithEtag" + } + ], "description": "Metadata patch request body.", "type": "object", "properties": { diff --git a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/examples/dataConnectors/GetDataConnectors.json b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/examples/dataConnectors/GetDataConnectors.json index c3dba4c5835d..349effca94ab 100644 --- a/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/examples/dataConnectors/GetDataConnectors.json +++ b/specification/securityinsights/resource-manager/Microsoft.SecurityInsights/stable/2025-09-01/examples/dataConnectors/GetDataConnectors.json @@ -69,6 +69,9 @@ }, "exchange": { "state": "Enabled" + }, + "teams": { + "state": "Enabled" } } } From b19b668697a05c42a12eef434e0e294df0be4a51 Mon Sep 17 00:00:00 2001 From: Zhonglei Ma <v-zhongleima@microsoft.com> Date: Sun, 4 Jan 2026 12:38:05 +0800 Subject: [PATCH 092/117] [DisconnectedOperations] Add configuration to verify the new code generation (#39033) --- .../client.tsp | 1 + .../tspconfig.yaml | 8 +++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/specification/edge/Microsoft.Edge.DisconnectedOperations.Management/client.tsp b/specification/edge/Microsoft.Edge.DisconnectedOperations.Management/client.tsp index fb35e8e8fd2b..0f427ff2df84 100644 --- a/specification/edge/Microsoft.Edge.DisconnectedOperations.Management/client.tsp +++ b/specification/edge/Microsoft.Edge.DisconnectedOperations.Management/client.tsp @@ -44,3 +44,4 @@ using Microsoft.Edge; "DisconnectedOperationsResourceProvisioningState", "csharp" ); +@@clientName(DisconnectedOperations, "Disconnected", "csharp"); diff --git a/specification/edge/Microsoft.Edge.DisconnectedOperations.Management/tspconfig.yaml b/specification/edge/Microsoft.Edge.DisconnectedOperations.Management/tspconfig.yaml index d8cb2625a45d..3d21caf08caa 100644 --- a/specification/edge/Microsoft.Edge.DisconnectedOperations.Management/tspconfig.yaml +++ b/specification/edge/Microsoft.Edge.DisconnectedOperations.Management/tspconfig.yaml @@ -7,11 +7,6 @@ options: emitter-output-dir: "{output-dir}/{service-dir}/arm-disconnectedoperations" package-details: name: "@azure/arm-disconnectedoperations" - "@azure-tools/typespec-csharp": - flavor: azure - emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - namespace: Azure.ResourceManager.DisconnectedOperations - clear-output-folder: true "@azure-tools/typespec-autorest": use-read-only-status-schema: true emitter-output-dir: "{project-root}/.." @@ -100,6 +95,9 @@ options: - where: parameter-name: ImageName clear-alias: true + "@azure-typespec/http-client-csharp-mgmt": + namespace: "Azure.ResourceManager.DisconnectedOperations" + emitter-output-dir: "{output-dir}/sdk/disconnectedoperations/{namespace}" linter: extends: From 97b085bb1ffc867a1b3d6f9465182b8d53ed1550 Mon Sep 17 00:00:00 2001 From: Zhonglei Ma <v-zhongleima@microsoft.com> Date: Sun, 4 Jan 2026 12:40:00 +0800 Subject: [PATCH 093/117] [DevOpsInfrastructure] Add configuration to verify the new code generation (#39008) --- .../client.tsp | 14 ++++++++++++++ .../tspconfig.yaml | 8 +++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure.Management/client.tsp b/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure.Management/client.tsp index d7a9461497a3..fd26a854ac07 100644 --- a/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure.Management/client.tsp +++ b/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure.Management/client.tsp @@ -113,6 +113,20 @@ using Microsoft.DevOpsInfrastructure; @@clientName(EphemeralType, "DevOpsEphemeralType", "csharp"); /* Rename opeartions */ @@clientName(SubscriptionUsages.usages, "GetUsages", "csharp"); +@@clientName(ResourceDetails.listByPool, "GetResourceDetails", "csharp"); +@@clientName(Sku.listByLocation, "GetSkusByLocation", "csharp"); +@@clientName(ImageVersions.listByImage, "GetImageVersionsByImage", "csharp"); +@@clientName(NetworkProfile.ipAddresses, "IPAddresses", "csharp"); +@@clientName(NetworkProfile.staticIpAddressCount, + "StaticIPAddressCount", + "csharp" +); +@@clientName(StorageProfile.osDiskStorageAccountType, + "OSDiskStorageAccountType", + "csharp" +); +@@clientName(VmssFabricProfile.osProfile, "OSProfile", "csharp"); +@@clientName(OsDiskStorageAccountType, "OSDiskStorageAccountType", "csharp"); @@clientName(StorageAccountType.StandardSSDLRS, "StandardSSDLRS", "javascript"); @@clientName(StorageAccountType.StandardSSDZRS, "StandardSSDZRS", "javascript"); diff --git a/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure.Management/tspconfig.yaml b/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure.Management/tspconfig.yaml index c5e4b9dbebc1..20cc074e33f8 100644 --- a/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure.Management/tspconfig.yaml +++ b/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure.Management/tspconfig.yaml @@ -31,11 +31,6 @@ options: clear-output-folder: true namespace: Microsoft.DevOpsInfrastructure model-namespace: false - "@azure-tools/typespec-csharp": - flavor: azure - clear-output-folder: true - namespace: "Azure.ResourceManager.DevOpsInfrastructure" - emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" "@azure-tools/typespec-ts": experimental-extensible-enums: true emitter-output-dir: "{output-dir}/{service-dir}/arm-devopsinfrastructure" @@ -52,3 +47,6 @@ options: generate-fakes: true head-as-boolean: true inject-spans: true + "@azure-typespec/http-client-csharp-mgmt": + namespace: "Azure.ResourceManager.DevOpsInfrastructure" + emitter-output-dir: "{output-dir}/sdk/devopsinfrastructure/{namespace}" From 3e5a767cd854ecb2559595228f8b34256cb99b46 Mon Sep 17 00:00:00 2001 From: Zhonglei Ma <v-zhongleima@microsoft.com> Date: Sun, 4 Jan 2026 12:44:14 +0800 Subject: [PATCH 094/117] [ComputeSchedule] Add configuration to verify the new code generation (#39022) --- .../ComputeSchedule.Management/client.tsp | 24 +++++++++++++++---- .../ComputeSchedule.Management/tspconfig.yaml | 8 +++---- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/specification/computeschedule/ComputeSchedule.Management/client.tsp b/specification/computeschedule/ComputeSchedule.Management/client.tsp index 423accfb3ef7..1fd43d6fcd97 100644 --- a/specification/computeschedule/ComputeSchedule.Management/client.tsp +++ b/specification/computeschedule/ComputeSchedule.Management/client.tsp @@ -3,6 +3,7 @@ import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; using Microsoft.ComputeSchedule; +using Azure.ResourceManager; @@clientName(Microsoft.ComputeSchedule, "ComputeScheduleMgmtClient", "python"); @@clientName(Microsoft.ComputeSchedule, "ComputeScheduleMgmtClient", "java"); @@ -173,7 +174,7 @@ using Microsoft.ComputeSchedule; "ScheduledActionResourceOperationResult", "csharp" ); -@@clientName(Azure.ResourceManager.ResourceProvisioningState, +@@clientName(ResourceProvisioningState, "OccurrenceResourceProvisioningState", "csharp" ); @@ -188,15 +189,15 @@ using Microsoft.ComputeSchedule; ); @@clientName(OccurrenceState, "ScheduledActionOccurrenceState", "csharp"); @@clientName(ResourceAttachRequest, - "ScheduledActionResourceAttachRequest", + "ScheduledActionResourceAttachContent", "csharp" ); @@clientName(ResourceDetachRequest, - "ScheduledActionResourceDetachRequest", + "ScheduledActionResourceDetachContent", "csharp" ); @@clientName(ResourcePatchRequest, - "ScheduledActionResourcePatchRequest", + "ScheduledActionResourcePatchContent", "csharp" ); @@clientName(ResourceStatus, "ScheduledActionResourceStatus", "csharp"); @@ -226,3 +227,18 @@ using Microsoft.ComputeSchedule; "javascript" ); @@clientName(Microsoft.ComputeSchedule.ActionType, "ScheduledActionType"); + +@@clientName(SubmitDeallocateRequest, "SubmitDeallocateContent"); +@@clientName(ExecuteHibernateRequest, "ExecuteHibernateContent"); +@@clientName(CancelOperationsRequest, "CancelOperationsContent"); +@@clientName(ExecuteCreateRequest, "ExecuteCreateContent"); +@@clientName(ExecuteDeallocateRequest, "ExecuteDeallocateContent"); +@@clientName(ExecuteDeleteRequest, "ExecuteDeleteContent"); +@@clientName(ExecuteStartRequest, "ExecuteStartContent"); +@@clientName(GetOperationErrorsRequest, "GetOperationErrorsContent"); +@@clientName(GetOperationStatusRequest, "GetOperationStatusContent"); +@@clientName(SubmitStartRequest, "SubmitStartContent"); +@@clientName(SubmitHibernateRequest, "SubmitHibernateContent"); +@@clientName(ScheduledActionsExtensionProperties, + "ScheduledActionsExtensionProperties" +); diff --git a/specification/computeschedule/ComputeSchedule.Management/tspconfig.yaml b/specification/computeschedule/ComputeSchedule.Management/tspconfig.yaml index ef83d643d8a1..ba6b11ddbb83 100644 --- a/specification/computeschedule/ComputeSchedule.Management/tspconfig.yaml +++ b/specification/computeschedule/ComputeSchedule.Management/tspconfig.yaml @@ -21,11 +21,6 @@ options: flavor: azure package-details: name: "@azure/arm-computeschedule" - "@azure-tools/typespec-csharp": - emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - flavor: azure - clear-output-folder: true - namespace: "Azure.ResourceManager.ComputeSchedule" "@azure-tools/typespec-java": emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-computeschedule" namespace: "com.azure.resourcemanager.computeschedule" @@ -41,6 +36,9 @@ options: generate-fakes: true head-as-boolean: true inject-spans: true + "@azure-typespec/http-client-csharp-mgmt": + namespace: "Azure.ResourceManager.ComputeSchedule" + emitter-output-dir: "{output-dir}/sdk/computeschedule/{namespace}" linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" From fe333d9050f199487dae5b96667d2f830db8400e Mon Sep 17 00:00:00 2001 From: Zhonglei Ma <v-zhongleima@microsoft.com> Date: Sun, 4 Jan 2026 12:46:47 +0800 Subject: [PATCH 095/117] [Qumulo] Add configuration to verify the new code generation (#39011) --- .../liftrqumulo/Qumulo.Storage.Management/client.tsp | 4 ++++ .../liftrqumulo/Qumulo.Storage.Management/tspconfig.yaml | 8 +++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/specification/liftrqumulo/Qumulo.Storage.Management/client.tsp b/specification/liftrqumulo/Qumulo.Storage.Management/client.tsp index 90af26bbf061..34d70890bef2 100644 --- a/specification/liftrqumulo/Qumulo.Storage.Management/client.tsp +++ b/specification/liftrqumulo/Qumulo.Storage.Management/client.tsp @@ -94,3 +94,7 @@ enum OldMarketplaceSubscriptionStatus { Suspended, Unsubscribed, } +@@alternateType(Azure.ResourceManager.CommonTypes.Resource.id, + Azure.Core.armResourceIdentifier, + "csharp" +); diff --git a/specification/liftrqumulo/Qumulo.Storage.Management/tspconfig.yaml b/specification/liftrqumulo/Qumulo.Storage.Management/tspconfig.yaml index 23f49780037c..da6ca5bfcb25 100644 --- a/specification/liftrqumulo/Qumulo.Storage.Management/tspconfig.yaml +++ b/specification/liftrqumulo/Qumulo.Storage.Management/tspconfig.yaml @@ -18,11 +18,6 @@ options: flavor: azure package-details: name: "@azure/arm-qumulo" - "@azure-tools/typespec-csharp": - emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - flavor: azure - clear-output-folder: true - namespace: "Azure.ResourceManager.Qumulo" "@azure-tools/typespec-python": package-name: "azure-mgmt-qumulo" emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-qumulo" @@ -46,6 +41,9 @@ options: namespace: "com.azure.resourcemanager.qumulo" service-name: "Qumulo" flavor: azure + "@azure-typespec/http-client-csharp-mgmt": + namespace: "Azure.ResourceManager.Qumulo" + emitter-output-dir: "{output-dir}/sdk/qumulo/{namespace}" linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" From a03d9e3159075f4b5ab9224c1008d541ee792dc5 Mon Sep 17 00:00:00 2001 From: Zhonglei Ma <v-zhongleima@microsoft.com> Date: Sun, 4 Jan 2026 13:09:35 +0800 Subject: [PATCH 096/117] [Grafana] Add configuration to verify the new code generation (#39052) --- package-lock.json | 647 +++++++++--------- package.json | 2 +- .../IntegrationFabric.tsp | 2 +- .../dashboard/Dashboard.Management/client.tsp | 24 + .../Dashboard.Management/tspconfig.yaml | 9 +- 5 files changed, 337 insertions(+), 347 deletions(-) diff --git a/package-lock.json b/package-lock.json index 794dc72651de..e4c375b58a81 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@azure-tools/typespec-azure-resource-manager": "0.63.0", "@azure-tools/typespec-azure-rulesets": "0.63.0", "@azure-tools/typespec-client-generator-cli": "0.31.0", - "@azure-tools/typespec-client-generator-core": "0.63.1", + "@azure-tools/typespec-client-generator-core": "0.63.3", "@azure-tools/typespec-liftr-base": "0.10.0", "@azure/avocado": "0.10.5", "@azure/oad": "0.12.3", @@ -600,7 +600,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -955,7 +954,6 @@ "integrity": "sha512-FbEmpZSQENzBt/Y8qSF1b98T8CqT3bV7IRV8AGGm/73NQZiWQCm2LvQzR0/lbqGntS2EnSBrt394Kt69wM4ifA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=20.0.0" }, @@ -982,7 +980,6 @@ "integrity": "sha512-QXHryXgV9Rh7lBW9hrehjdGVM/W8eBN6wnfRRZtAAyfTc1AkRGDKOMFBtRtfbEkQpur16mgQTd7EyH2tpqfuSw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "change-case": "~5.4.4", "pluralize": "^8.0.0" @@ -1046,12 +1043,11 @@ } }, "node_modules/@azure-tools/typespec-client-generator-core": { - "version": "0.63.1", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.63.1.tgz", - "integrity": "sha512-/LMrPVKrzPRBicjVSz+zqC/EBysqbIKgjfoAxMDXa4nmJchzxls+hgvprAZsCAJy5uEeshOn7WdNT/aQkBQRXw==", + "version": "0.63.3", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.63.3.tgz", + "integrity": "sha512-+ZSajpbwjZgMztgYgszFWzLrhOzjWNW7VEQjWvc7mMBtsF0fDTvB0gGfQlJ81CBM9yudPBW0JpwYrO26NXXk8g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "change-case": "~5.4.4", "pluralize": "^8.0.0", @@ -2010,9 +2006,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.1.tgz", - "integrity": "sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", "cpu": [ "ppc64" ], @@ -2027,9 +2023,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.1.tgz", - "integrity": "sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", "cpu": [ "arm" ], @@ -2044,9 +2040,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.1.tgz", - "integrity": "sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", "cpu": [ "arm64" ], @@ -2061,9 +2057,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.1.tgz", - "integrity": "sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", "cpu": [ "x64" ], @@ -2078,9 +2074,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.1.tgz", - "integrity": "sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", "cpu": [ "arm64" ], @@ -2095,9 +2091,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.1.tgz", - "integrity": "sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", "cpu": [ "x64" ], @@ -2112,9 +2108,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.1.tgz", - "integrity": "sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", "cpu": [ "arm64" ], @@ -2129,9 +2125,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.1.tgz", - "integrity": "sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", "cpu": [ "x64" ], @@ -2146,9 +2142,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.1.tgz", - "integrity": "sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", "cpu": [ "arm" ], @@ -2163,9 +2159,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.1.tgz", - "integrity": "sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", "cpu": [ "arm64" ], @@ -2180,9 +2176,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.1.tgz", - "integrity": "sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", "cpu": [ "ia32" ], @@ -2197,9 +2193,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.1.tgz", - "integrity": "sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", "cpu": [ "loong64" ], @@ -2214,9 +2210,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.1.tgz", - "integrity": "sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", "cpu": [ "mips64el" ], @@ -2231,9 +2227,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.1.tgz", - "integrity": "sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", "cpu": [ "ppc64" ], @@ -2248,9 +2244,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.1.tgz", - "integrity": "sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", "cpu": [ "riscv64" ], @@ -2265,9 +2261,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.1.tgz", - "integrity": "sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", "cpu": [ "s390x" ], @@ -2282,9 +2278,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.1.tgz", - "integrity": "sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", "cpu": [ "x64" ], @@ -2299,9 +2295,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.1.tgz", - "integrity": "sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", "cpu": [ "arm64" ], @@ -2316,9 +2312,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.1.tgz", - "integrity": "sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", "cpu": [ "x64" ], @@ -2333,9 +2329,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.1.tgz", - "integrity": "sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", "cpu": [ "arm64" ], @@ -2350,9 +2346,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.1.tgz", - "integrity": "sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", "cpu": [ "x64" ], @@ -2367,9 +2363,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.1.tgz", - "integrity": "sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", "cpu": [ "arm64" ], @@ -2384,9 +2380,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.1.tgz", - "integrity": "sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", "cpu": [ "x64" ], @@ -2401,9 +2397,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.1.tgz", - "integrity": "sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", "cpu": [ "arm64" ], @@ -2418,9 +2414,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.1.tgz", - "integrity": "sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", "cpu": [ "ia32" ], @@ -2435,9 +2431,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.1.tgz", - "integrity": "sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", "cpu": [ "x64" ], @@ -3021,14 +3017,14 @@ "license": "MIT" }, "node_modules/@inversifyjs/container": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/@inversifyjs/container/-/container-1.14.3.tgz", - "integrity": "sha512-dt9JwumXFpIQx2hbsCouDLdZ6sVMvkdUcwyM8hugRbXMCxSJ3nDd2pjdE4MGWyfWP/61zDiAXCiff+2jVrhcmw==", + "version": "1.14.5", + "resolved": "https://registry.npmjs.org/@inversifyjs/container/-/container-1.14.5.tgz", + "integrity": "sha512-fbNiJc66HaY5QUbIDnONNhwusQQSv8xkf9y54WfuG9v2tqPG8wGLSwt1+cwUtRFHjs1RlQnA6eCd2HuLRZ9r0Q==", "dev": true, "license": "MIT", "dependencies": { "@inversifyjs/common": "1.5.2", - "@inversifyjs/core": "9.1.1", + "@inversifyjs/core": "9.1.2", "@inversifyjs/plugin": "0.2.0", "@inversifyjs/reflect-metadata-utils": "1.4.1" }, @@ -3037,9 +3033,9 @@ } }, "node_modules/@inversifyjs/core": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@inversifyjs/core/-/core-9.1.1.tgz", - "integrity": "sha512-3GNF/a889+Z3AxMZGl5LvBaHYIRvn+rm4b6jec3YncyqNRXoLQjUUAleE0AbVUdUl8YntJ5NW+qe5vjbM0wk/w==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@inversifyjs/core/-/core-9.1.2.tgz", + "integrity": "sha512-8baIvwVUliZ6TeaYI0w8XRMTOX3i3AtANolbH/8TazecALIcpLAaiadKOm2yPguac1uCIUznSglOlG411rBTAQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3468,7 +3464,6 @@ "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.3", @@ -3630,9 +3625,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.5.tgz", - "integrity": "sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.54.0.tgz", + "integrity": "sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng==", "cpu": [ "arm" ], @@ -3644,9 +3639,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.5.tgz", - "integrity": "sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.54.0.tgz", + "integrity": "sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw==", "cpu": [ "arm64" ], @@ -3658,9 +3653,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.5.tgz", - "integrity": "sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.54.0.tgz", + "integrity": "sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw==", "cpu": [ "arm64" ], @@ -3672,9 +3667,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.5.tgz", - "integrity": "sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.54.0.tgz", + "integrity": "sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A==", "cpu": [ "x64" ], @@ -3686,9 +3681,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.5.tgz", - "integrity": "sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.54.0.tgz", + "integrity": "sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA==", "cpu": [ "arm64" ], @@ -3700,9 +3695,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.5.tgz", - "integrity": "sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.54.0.tgz", + "integrity": "sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ==", "cpu": [ "x64" ], @@ -3714,9 +3709,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.5.tgz", - "integrity": "sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.54.0.tgz", + "integrity": "sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ==", "cpu": [ "arm" ], @@ -3728,9 +3723,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.5.tgz", - "integrity": "sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.54.0.tgz", + "integrity": "sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA==", "cpu": [ "arm" ], @@ -3742,9 +3737,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.5.tgz", - "integrity": "sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.54.0.tgz", + "integrity": "sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng==", "cpu": [ "arm64" ], @@ -3756,9 +3751,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.5.tgz", - "integrity": "sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.54.0.tgz", + "integrity": "sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg==", "cpu": [ "arm64" ], @@ -3770,9 +3765,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.5.tgz", - "integrity": "sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.54.0.tgz", + "integrity": "sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw==", "cpu": [ "loong64" ], @@ -3784,9 +3779,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.5.tgz", - "integrity": "sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.54.0.tgz", + "integrity": "sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA==", "cpu": [ "ppc64" ], @@ -3798,9 +3793,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.5.tgz", - "integrity": "sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.54.0.tgz", + "integrity": "sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ==", "cpu": [ "riscv64" ], @@ -3812,9 +3807,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.5.tgz", - "integrity": "sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.54.0.tgz", + "integrity": "sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A==", "cpu": [ "riscv64" ], @@ -3826,9 +3821,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.5.tgz", - "integrity": "sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.54.0.tgz", + "integrity": "sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ==", "cpu": [ "s390x" ], @@ -3840,9 +3835,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.5.tgz", - "integrity": "sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.54.0.tgz", + "integrity": "sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ==", "cpu": [ "x64" ], @@ -3854,9 +3849,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.5.tgz", - "integrity": "sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.54.0.tgz", + "integrity": "sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==", "cpu": [ "x64" ], @@ -3868,9 +3863,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.5.tgz", - "integrity": "sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.54.0.tgz", + "integrity": "sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg==", "cpu": [ "arm64" ], @@ -3882,9 +3877,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.5.tgz", - "integrity": "sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.54.0.tgz", + "integrity": "sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw==", "cpu": [ "arm64" ], @@ -3896,9 +3891,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.5.tgz", - "integrity": "sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.54.0.tgz", + "integrity": "sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ==", "cpu": [ "ia32" ], @@ -3910,9 +3905,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.5.tgz", - "integrity": "sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.54.0.tgz", + "integrity": "sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ==", "cpu": [ "x64" ], @@ -3924,9 +3919,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.5.tgz", - "integrity": "sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.54.0.tgz", + "integrity": "sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg==", "cpu": [ "x64" ], @@ -3938,9 +3933,9 @@ ] }, "node_modules/@scalar/helpers": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@scalar/helpers/-/helpers-0.2.2.tgz", - "integrity": "sha512-oGef7vvtz1KgCy34IaVcbMV99dEXjcGETJtwogT4MU8R7gnYDg6qSTh5200hWAGVO+Ai/6h9rlGVfgeHTzelfg==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@scalar/helpers/-/helpers-0.2.4.tgz", + "integrity": "sha512-G7oGybO2QXM+MIxa4OZLXaYsS9mxKygFgOcY4UOXO6xpVoY5+8rahdak9cPk7HNj8RZSt4m/BveoT8g5BtnXxg==", "dev": true, "license": "MIT", "engines": { @@ -3948,13 +3943,13 @@ } }, "node_modules/@scalar/json-magic": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/@scalar/json-magic/-/json-magic-0.8.6.tgz", - "integrity": "sha512-alxGHRJXgaefvfv9IISxb11D2y9iVyN+2/1dLBg3jJildkCJCP6yaT5ESC9qB+YOZeuuxIF32gmk+CLwx38YnQ==", + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@scalar/json-magic/-/json-magic-0.8.8.tgz", + "integrity": "sha512-BUyBfXrbwRrpjqPXHbUTYQD06KRtonoWIVTxCylQmS4kbp91k9G7SUCnJe9txX1GrpD6CwkBvyQ/Q9oNy1HTaw==", "dev": true, "license": "MIT", "dependencies": { - "@scalar/helpers": "0.2.2", + "@scalar/helpers": "0.2.4", "yaml": "^2.8.0" }, "engines": { @@ -3962,13 +3957,13 @@ } }, "node_modules/@scalar/openapi-parser": { - "version": "0.23.7", - "resolved": "https://registry.npmjs.org/@scalar/openapi-parser/-/openapi-parser-0.23.7.tgz", - "integrity": "sha512-OEuP+RM74YT7S11K9yHwuPq7bUnj+8ywCV5few73FY1szr90y39yGreLPcAmZ+SeC0HPhP4ZGKIhBCeSmuSL6Q==", + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/@scalar/openapi-parser/-/openapi-parser-0.23.9.tgz", + "integrity": "sha512-0fMsZtTKKEXy9q4TDJnJa3DYXe450FcpZilaIYMJmjjEBVW78op8GnHJjuxvaYIw1gkj2Stz71qzvnoz1VomBg==", "dev": true, "license": "MIT", "dependencies": { - "@scalar/json-magic": "0.8.6", + "@scalar/json-magic": "0.8.8", "@scalar/openapi-types": "0.5.3", "@scalar/openapi-upgrader": "0.1.6", "ajv": "^8.17.1", @@ -3988,7 +3983,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -4300,7 +4294,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -4401,7 +4394,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -4752,8 +4744,7 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true, - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/@ts-common/property-set": { "version": "0.1.0", @@ -4963,8 +4954,7 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/lodash": { "version": "4.17.21", @@ -5047,20 +5037,20 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.50.0.tgz", - "integrity": "sha512-O7QnmOXYKVtPrfYzMolrCTfkezCJS9+ljLdKW/+DCvRsc3UAz+sbH6Xcsv7p30+0OwUbeWfUDAQE0vpabZ3QLg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.51.0.tgz", + "integrity": "sha512-XtssGWJvypyM2ytBnSnKtHYOGT+4ZwTnBVl36TA4nRO2f4PRNGz5/1OszHzcZCvcBMh+qb7I06uoCmLTRdR9og==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.50.0", - "@typescript-eslint/type-utils": "8.50.0", - "@typescript-eslint/utils": "8.50.0", - "@typescript-eslint/visitor-keys": "8.50.0", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/type-utils": "8.51.0", + "@typescript-eslint/utils": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.1.0" + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5070,7 +5060,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.50.0", + "@typescript-eslint/parser": "^8.51.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -5086,17 +5076,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.50.0.tgz", - "integrity": "sha512-6/cmF2piao+f6wSxUsJLZjck7OQsYyRtcOZS02k7XINSNlz93v6emM8WutDQSXnroG2xwYlEVHJI+cPA7CPM3Q==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.51.0.tgz", + "integrity": "sha512-3xP4XzzDNQOIqBMWogftkwxhg5oMKApqY0BAflmLZiFYHqyhSOxv/cd/zPQLTcCXr4AkaKb25joocY0BD1WC6A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.50.0", - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/typescript-estree": "8.50.0", - "@typescript-eslint/visitor-keys": "8.50.0", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", "debug": "^4.3.4" }, "engines": { @@ -5112,14 +5101,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.50.0.tgz", - "integrity": "sha512-Cg/nQcL1BcoTijEWyx4mkVC56r8dj44bFDvBdygifuS20f3OZCHmFbjF34DPSi07kwlFvqfv/xOLnJ5DquxSGQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.51.0.tgz", + "integrity": "sha512-Luv/GafO07Z7HpiI7qeEW5NW8HUtZI/fo/kE0YbtQEFpJRUuR0ajcWfCE5bnMvL7QQFrmT/odMe8QZww8X2nfQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.50.0", - "@typescript-eslint/types": "^8.50.0", + "@typescript-eslint/tsconfig-utils": "^8.51.0", + "@typescript-eslint/types": "^8.51.0", "debug": "^4.3.4" }, "engines": { @@ -5134,14 +5123,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.50.0.tgz", - "integrity": "sha512-xCwfuCZjhIqy7+HKxBLrDVT5q/iq7XBVBXLn57RTIIpelLtEIZHXAF/Upa3+gaCpeV1NNS5Z9A+ID6jn50VD4A==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.51.0.tgz", + "integrity": "sha512-JhhJDVwsSx4hiOEQPeajGhCWgBMBwVkxC/Pet53EpBVs7zHHtayKefw1jtPaNRXpI9RA2uocdmpdfE7T+NrizA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/visitor-keys": "8.50.0" + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5152,9 +5141,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.50.0.tgz", - "integrity": "sha512-vxd3G/ybKTSlm31MOA96gqvrRGv9RJ7LGtZCn2Vrc5htA0zCDvcMqUkifcjrWNNKXHUU3WCkYOzzVSFBd0wa2w==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.51.0.tgz", + "integrity": "sha512-Qi5bSy/vuHeWyir2C8u/uqGMIlIDu8fuiYWv48ZGlZ/k+PRPHtaAu7erpc7p5bzw2WNNSniuxoMSO4Ar6V9OXw==", "dev": true, "license": "MIT", "engines": { @@ -5169,17 +5158,17 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.50.0.tgz", - "integrity": "sha512-7OciHT2lKCewR0mFoBrvZJ4AXTMe/sYOe87289WAViOocEmDjjv8MvIOT2XESuKj9jp8u3SZYUSh89QA4S1kQw==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.51.0.tgz", + "integrity": "sha512-0XVtYzxnobc9K0VU7wRWg1yiUrw4oQzexCG2V2IDxxCxhqBMSMbjB+6o91A+Uc0GWtgjCa3Y8bi7hwI0Tu4n5Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/typescript-estree": "8.50.0", - "@typescript-eslint/utils": "8.50.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/utils": "8.51.0", "debug": "^4.3.4", - "ts-api-utils": "^2.1.0" + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5194,9 +5183,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.50.0.tgz", - "integrity": "sha512-iX1mgmGrXdANhhITbpp2QQM2fGehBse9LbTf0sidWK6yg/NE+uhV5dfU1g6EYPlcReYmkE9QLPq/2irKAmtS9w==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.51.0.tgz", + "integrity": "sha512-TizAvWYFM6sSscmEakjY3sPqGwxZRSywSsPEiuZF6d5GmGD9Gvlsv0f6N8FvAAA0CD06l3rIcWNbsN1e5F/9Ag==", "dev": true, "license": "MIT", "engines": { @@ -5208,21 +5197,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.50.0.tgz", - "integrity": "sha512-W7SVAGBR/IX7zm1t70Yujpbk+zdPq/u4soeFSknWFdXIFuWsBGBOUu/Tn/I6KHSKvSh91OiMuaSnYp3mtPt5IQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.51.0.tgz", + "integrity": "sha512-1qNjGqFRmlq0VW5iVlcyHBbCjPB7y6SxpBkrbhNWMy/65ZoncXCEPJxkRZL8McrseNH6lFhaxCIaX+vBuFnRng==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.50.0", - "@typescript-eslint/tsconfig-utils": "8.50.0", - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/visitor-keys": "8.50.0", + "@typescript-eslint/project-service": "8.51.0", + "@typescript-eslint/tsconfig-utils": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", "debug": "^4.3.4", "minimatch": "^9.0.4", "semver": "^7.6.0", "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.1.0" + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5262,16 +5251,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.50.0.tgz", - "integrity": "sha512-87KgUXET09CRjGCi2Ejxy3PULXna63/bMYv72tCAlDJC3Yqwln0HiFJ3VJMst2+mEtNtZu5oFvX4qJGjKsnAgg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.51.0.tgz", + "integrity": "sha512-11rZYxSe0zabiKaCP2QAwRf/dnmgFgvTmeDTtZvUvXG3UuAdg/GU02NExmmIXzz3vLGgMdtrIosI84jITQOxUA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.50.0", - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/typescript-estree": "8.50.0" + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5286,13 +5275,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.50.0.tgz", - "integrity": "sha512-Xzmnb58+Db78gT/CCj/PVCvK+zxbnsw6F+O1oheYszJbBSdEjVhQi3C/Xttzxgi/GLmpvOggRs1RFpiJ8+c34Q==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.51.0.tgz", + "integrity": "sha512-mM/JRQOzhVN1ykejrvwnBRV3+7yTKK8tVANVN3o1O0t0v7o+jqdVu9crPy5Y9dov15TJk/FTIgoUGHrTOVL3Zg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/types": "8.51.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -5322,7 +5311,6 @@ "integrity": "sha512-sb3MEsKjFlAx8ZG484exs5Ec+JwmYf2anJqLjMusrV3rRMUhv3fbEulk9MD+l4eOkBS46VMNGqRu0wTn8suVVA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "~7.27.1", "@inquirer/prompts": "^8.0.1", @@ -5468,7 +5456,6 @@ "integrity": "sha512-NbOzi7axEt/xGgXaLjcGGV2HjQKNFjbvsQpCeDA6loUghZDK5+5ik/jwMumeUDunoBsAKF78ZxVF5qhQh56dGA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5482,7 +5469,6 @@ "integrity": "sha512-4cGkcMiob3bedWbFkRcq614TDH7WPEI3YMgrg44mBarj903arpEniAESIhNUbLQzQFFc5rOJagexQDl4agVDyA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5502,7 +5488,6 @@ "integrity": "sha512-tEAIgGnjLvOjbGAoCfkBudvpe/tXaOXkzy5nVFXs4921/jAaMTwzcJIt0bTXZpp5cExdlL7w9ZrnehARHiposQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5593,7 +5578,6 @@ "integrity": "sha512-DEUMD9zYqUVUhKCGktV7Z+sFkzj+bcSpJRhEXxOrJxupWM4I3N4deMop+ulxezxlLxIRUz7ELc+6WucYXgOnAA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5608,7 +5592,6 @@ "integrity": "sha512-rVML/sPNj+MomKXftko/eUNM5OhHlIevoit3Dbtaf1aWS5pcJ5jKX05Prz53VIyeUP7ra5ocmPE/iIEPb8ZbCA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5625,7 +5608,6 @@ "integrity": "sha512-qqfJW4n19Jgi5FxQhsEgoIc5zD9o47AAoZxLKUX91z6aB/YWrLSTrrrIAvhNCESXuB89zlJPwlZ/j4YmpxZ/jw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5654,7 +5636,6 @@ "integrity": "sha512-eAInPZYPkxpBUS8IKQfNZ5eZsLfkWqEX0d6YM/AfooGYbxcKdHQBfYOWBvRC4NkKEMub4ROaD5GcPLYTyWQIWw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5668,7 +5649,6 @@ "integrity": "sha512-DNVAOMaRUPGpLEsqf3sn7UAWuAE1rs8Jf1FIAU7DF/sVmzeXs4OBanxSSsVmbcdfPRHPbjPuRnW6e+QS2Sjk3Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=20.0.0" }, @@ -5838,7 +5818,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -6012,9 +5991,9 @@ } }, "node_modules/ast-v8-to-istanbul": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.9.tgz", - "integrity": "sha512-dSC6tJeOJxbZrPzPbv5mMd6CMiQ1ugaVXXPRad2fXUSsy1kstFn9XQWemV9VW7Y7kpxgQ/4WMoZfwdH8XSU48w==", + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.10.tgz", + "integrity": "sha512-p4K7vMz2ZSk3wN8l5o3y2bJAoZXT3VuJI5OLTATY/01CYWumWvwkUw0SqDBnNq6IiTO3qDa1eSQDibAV8g7XOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6231,9 +6210,9 @@ } }, "node_modules/chai": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.1.tgz", - "integrity": "sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "dev": true, "license": "MIT", "engines": { @@ -7032,9 +7011,9 @@ } }, "node_modules/esbuild": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.1.tgz", - "integrity": "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -7045,32 +7024,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.1", - "@esbuild/android-arm": "0.27.1", - "@esbuild/android-arm64": "0.27.1", - "@esbuild/android-x64": "0.27.1", - "@esbuild/darwin-arm64": "0.27.1", - "@esbuild/darwin-x64": "0.27.1", - "@esbuild/freebsd-arm64": "0.27.1", - "@esbuild/freebsd-x64": "0.27.1", - "@esbuild/linux-arm": "0.27.1", - "@esbuild/linux-arm64": "0.27.1", - "@esbuild/linux-ia32": "0.27.1", - "@esbuild/linux-loong64": "0.27.1", - "@esbuild/linux-mips64el": "0.27.1", - "@esbuild/linux-ppc64": "0.27.1", - "@esbuild/linux-riscv64": "0.27.1", - "@esbuild/linux-s390x": "0.27.1", - "@esbuild/linux-x64": "0.27.1", - "@esbuild/netbsd-arm64": "0.27.1", - "@esbuild/netbsd-x64": "0.27.1", - "@esbuild/openbsd-arm64": "0.27.1", - "@esbuild/openbsd-x64": "0.27.1", - "@esbuild/openharmony-arm64": "0.27.1", - "@esbuild/sunos-x64": "0.27.1", - "@esbuild/win32-arm64": "0.27.1", - "@esbuild/win32-ia32": "0.27.1", - "@esbuild/win32-x64": "0.27.1" + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" } }, "node_modules/escalade": { @@ -7102,7 +7081,6 @@ "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -7495,9 +7473,9 @@ "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, "license": "ISC", "dependencies": { @@ -8436,15 +8414,15 @@ } }, "node_modules/inversify": { - "version": "7.10.6", - "resolved": "https://registry.npmjs.org/inversify/-/inversify-7.10.6.tgz", - "integrity": "sha512-pjJfyS9KS5Q4aIKx2Mc/mPnyxMParygddMY66irM+IIZUv3+Qp9pjEu+rMmUYPxGqaX2QgDIU/pH1t2eb3xodw==", + "version": "7.10.8", + "resolved": "https://registry.npmjs.org/inversify/-/inversify-7.10.8.tgz", + "integrity": "sha512-NF9t4p1j5BtrJjf1jXRlGCXvixjtdu5UFkmye/3zFrITJbB7KvrkNS1vm8yAm8RW07hst4yxpvXGG3JtrQ365w==", "dev": true, "license": "MIT", "dependencies": { "@inversifyjs/common": "1.5.2", - "@inversifyjs/container": "1.14.3", - "@inversifyjs/core": "9.1.1" + "@inversifyjs/container": "1.14.5", + "@inversifyjs/core": "9.1.2" } }, "node_modules/is-array-buffer": { @@ -8979,7 +8957,6 @@ "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 10.16.0" } @@ -10241,7 +10218,6 @@ "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -10330,9 +10306,9 @@ } }, "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -10384,8 +10360,7 @@ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "dev": true, - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", @@ -10490,9 +10465,9 @@ } }, "node_modules/rollup": { - "version": "4.53.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.5.tgz", - "integrity": "sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.54.0.tgz", + "integrity": "sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==", "dev": true, "license": "MIT", "dependencies": { @@ -10506,28 +10481,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.53.5", - "@rollup/rollup-android-arm64": "4.53.5", - "@rollup/rollup-darwin-arm64": "4.53.5", - "@rollup/rollup-darwin-x64": "4.53.5", - "@rollup/rollup-freebsd-arm64": "4.53.5", - "@rollup/rollup-freebsd-x64": "4.53.5", - "@rollup/rollup-linux-arm-gnueabihf": "4.53.5", - "@rollup/rollup-linux-arm-musleabihf": "4.53.5", - "@rollup/rollup-linux-arm64-gnu": "4.53.5", - "@rollup/rollup-linux-arm64-musl": "4.53.5", - "@rollup/rollup-linux-loong64-gnu": "4.53.5", - "@rollup/rollup-linux-ppc64-gnu": "4.53.5", - "@rollup/rollup-linux-riscv64-gnu": "4.53.5", - "@rollup/rollup-linux-riscv64-musl": "4.53.5", - "@rollup/rollup-linux-s390x-gnu": "4.53.5", - "@rollup/rollup-linux-x64-gnu": "4.53.5", - "@rollup/rollup-linux-x64-musl": "4.53.5", - "@rollup/rollup-openharmony-arm64": "4.53.5", - "@rollup/rollup-win32-arm64-msvc": "4.53.5", - "@rollup/rollup-win32-ia32-msvc": "4.53.5", - "@rollup/rollup-win32-x64-gnu": "4.53.5", - "@rollup/rollup-win32-x64-msvc": "4.53.5", + "@rollup/rollup-android-arm-eabi": "4.54.0", + "@rollup/rollup-android-arm64": "4.54.0", + "@rollup/rollup-darwin-arm64": "4.54.0", + "@rollup/rollup-darwin-x64": "4.54.0", + "@rollup/rollup-freebsd-arm64": "4.54.0", + "@rollup/rollup-freebsd-x64": "4.54.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.54.0", + "@rollup/rollup-linux-arm-musleabihf": "4.54.0", + "@rollup/rollup-linux-arm64-gnu": "4.54.0", + "@rollup/rollup-linux-arm64-musl": "4.54.0", + "@rollup/rollup-linux-loong64-gnu": "4.54.0", + "@rollup/rollup-linux-ppc64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-musl": "4.54.0", + "@rollup/rollup-linux-s390x-gnu": "4.54.0", + "@rollup/rollup-linux-x64-gnu": "4.54.0", + "@rollup/rollup-linux-x64-musl": "4.54.0", + "@rollup/rollup-openharmony-arm64": "4.54.0", + "@rollup/rollup-win32-arm64-msvc": "4.54.0", + "@rollup/rollup-win32-ia32-msvc": "4.54.0", + "@rollup/rollup-win32-x64-gnu": "4.54.0", + "@rollup/rollup-win32-x64-msvc": "4.54.0", "fsevents": "~2.3.2" } }, @@ -11315,7 +11290,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -11398,9 +11372,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.3.0.tgz", + "integrity": "sha512-6eg3Y9SF7SsAvGzRHQvvc1skDAhwI4YQ32ui1scxD1Ccr0G5qIIbUBT3pFTKX8kmWIQClHobtUdNuaBgwdfdWg==", "dev": true, "license": "MIT", "engines": { @@ -11415,8 +11389,7 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/tunnel": { "version": "0.0.6", @@ -11525,7 +11498,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11535,16 +11507,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.50.0.tgz", - "integrity": "sha512-Q1/6yNUmCpH94fbgMUMg2/BSAr/6U7GBk61kZTv1/asghQOWOjTlp9K8mixS5NcJmm2creY+UFfGeW/+OcA64A==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.51.0.tgz", + "integrity": "sha512-jh8ZuM5oEh2PSdyQG9YAEM1TCGuWenLSuSUhf/irbVUNW9O5FhbFVONviN2TgMTBnUmyHv7E56rYnfLZK6TkiA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.50.0", - "@typescript-eslint/parser": "8.50.0", - "@typescript-eslint/typescript-estree": "8.50.0", - "@typescript-eslint/utils": "8.50.0" + "@typescript-eslint/eslint-plugin": "8.51.0", + "@typescript-eslint/parser": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/utils": "8.51.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11688,7 +11660,6 @@ "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -11782,7 +11753,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -11796,7 +11766,6 @@ "integrity": "sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vitest/expect": "4.0.16", "@vitest/mocker": "4.0.16", diff --git a/package.json b/package.json index a613319b95b4..9dbd54d46dec 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "@azure-tools/typespec-azure-resource-manager": "0.63.0", "@azure-tools/typespec-azure-rulesets": "0.63.0", "@azure-tools/typespec-client-generator-cli": "0.31.0", - "@azure-tools/typespec-client-generator-core": "0.63.1", + "@azure-tools/typespec-client-generator-core": "0.63.3", "@azure-tools/typespec-liftr-base": "0.10.0", "@autorest/openapi-to-typespec": "0.11.12", "@azure/avocado": "0.10.5", diff --git a/specification/dashboard/Dashboard.Management/IntegrationFabric.tsp b/specification/dashboard/Dashboard.Management/IntegrationFabric.tsp index 0b583a9fa4ae..89ed33f319f2 100644 --- a/specification/dashboard/Dashboard.Management/IntegrationFabric.tsp +++ b/specification/dashboard/Dashboard.Management/IntegrationFabric.tsp @@ -44,7 +44,7 @@ interface IntegrationFabrics { #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" delete is ArmResourceDeleteWithoutOkAsync< IntegrationFabric, - LroHeaders = ArmAsyncOperationHeader<FinalResult = IntegrationFabric> & + LroHeaders = ArmAsyncOperationHeader & Azure.Core.Foundations.RetryAfterHeader & LocationHeader >; diff --git a/specification/dashboard/Dashboard.Management/client.tsp b/specification/dashboard/Dashboard.Management/client.tsp index 6eed3bd2f8b7..e68f66ce39a1 100644 --- a/specification/dashboard/Dashboard.Management/client.tsp +++ b/specification/dashboard/Dashboard.Management/client.tsp @@ -57,6 +57,12 @@ using Microsoft.Dashboard; ); @@clientName(StartTLSPolicy.MandatoryStartTLS, "MandatoryStartTls", "csharp"); @@clientName(StartTLSPolicy.NoStartTLS, "NoStartTls", "csharp"); +@@clientName(CreatorCanAdmin, "GrafanaCreatorCanAdmin", "csharp"); +@@clientName(Size, "GrafanaSize", "csharp"); +@@clientName(PrivateEndpointConnection, + "GrafanaPrivateEndpointConnection", + "csharp" +); @@clientName(DeterministicOutboundIP, "DeterministicOutboundIp", "java"); @@clientName(StartTLSPolicy, "StartTlsPolicy", "java"); @@ -75,3 +81,21 @@ using Microsoft.Dashboard; @@clientName(Smtp.startTLSPolicy, "startTlsPolicy", "java"); @@clientName(Microsoft.Dashboard, "DashboardManagementClient", "javascript"); @@clientName(Microsoft.Dashboard, "DashboardManagementClient", "python"); +@@alternateType(Azure.ResourceManager.CommonTypes.Resource.id, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@alternateType(Azure.ResourceManager.CommonTypes.PrivateEndpoint.id, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@clientName(GrafanaAvailablePluginListResponse, + "GrafanaAvailablePluginListResult", + "csharp" +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Change the base type back to TrackedResource for backward compatibility" +@@Azure.ClientGenerator.Core.Legacy.hierarchyBuilding(ManagedGrafana, + Azure.ResourceManager.Foundations.TrackedResource, + "csharp" +); diff --git a/specification/dashboard/Dashboard.Management/tspconfig.yaml b/specification/dashboard/Dashboard.Management/tspconfig.yaml index 3eb460134567..b37a80cf90b4 100644 --- a/specification/dashboard/Dashboard.Management/tspconfig.yaml +++ b/specification/dashboard/Dashboard.Management/tspconfig.yaml @@ -11,12 +11,6 @@ options: output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/grafana.json" examples-dir: "{project-root}/examples" use-read-only-status-schema: true - "@azure-tools/typespec-csharp": - flavor: azure - clear-output-folder: true - model-namespace: true - namespace: "Azure.ResourceManager.Grafana" - emitter-output-dir: "{output-dir}/sdk/grafana/{namespace}" "@azure-tools/typespec-python": emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-dashboard" namespace: "azure.mgmt.dashboard" @@ -45,6 +39,9 @@ options: generate-fakes: true head-as-boolean: true inject-spans: true + "@azure-typespec/http-client-csharp-mgmt": + namespace: "Azure.ResourceManager.Grafana" + emitter-output-dir: "{output-dir}/sdk/grafana/{namespace}" linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" From 936e311149a3769a0dc6eb0d0ad278a0f975b571 Mon Sep 17 00:00:00 2001 From: Arthur Ma <mars.arthur@263.net> Date: Sun, 4 Jan 2026 13:32:50 +0800 Subject: [PATCH 097/117] Updete client settings for OracleDatabase (#39394) --- .../Oracle.Database.Management/client.tsp | 43 ++++++++++++++++++- .../Oracle.Database.Management/tspconfig.yaml | 7 +-- 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/specification/oracle/Oracle.Database.Management/client.tsp b/specification/oracle/Oracle.Database.Management/client.tsp index 7d7d6276c980..87e4845a52fb 100644 --- a/specification/oracle/Oracle.Database.Management/client.tsp +++ b/specification/oracle/Oracle.Database.Management/client.tsp @@ -69,6 +69,7 @@ using Oracle.Database; "CloudVmClusterVirtualNetworkAddressProperties", "csharp" ); +@@clientName(VirtualNetworkAddressProperties.ipAddress, "IPAddress", "csharp"); @@clientName(ActivationLinks, "CloudAccountActivationLinks", "csharp"); @@clientName(AllConnectionStringType, "AutonomousDatabaseConnectionStringType", @@ -174,6 +175,14 @@ using Oracle.Database; ); @@clientName(AutonomousDatabaseBaseProperties.peerDbIds, "PeerDBIds", "csharp"); @@clientName(AutonomousDatabaseBaseProperties.peerDbId, "peerDBId", "csharp"); +@@clientName(AutonomousDatabaseBaseProperties.privateEndpointIp, + "PrivateEndpointIP", + "csharp" +); +@@clientName(AutonomousDatabaseBaseProperties.whitelistedIps, + "WhitelistedIPs", + "csharp" +); @@clientName(AutonomousDatabaseCloneProperties.timeUntilReconnectCloneEnabled, "ReconnectCloneEnabledOn", "csharp" @@ -239,6 +248,7 @@ using Oracle.Database; "ExascaleDBStorageVaultId", "csharp" ); +@@clientName(ExadbVmClusterProperties.scanIpIds, "ScanIPIds", "csharp"); @@clientName(VirtualNetworkAddressProperties.timeAssigned, "AssignedOn", "csharp" @@ -293,6 +303,7 @@ using Oracle.Database; @@clientName(DnsPrivateZoneProperties.timeCreated, "CreatedOn", "csharp"); @@clientName(GenerateType, "WalletGenerateType", "csharp"); @@clientName(HostFormatType, "ConnectionHostFormatType", "csharp"); +@@clientName(HostFormatType.Ip, "IP", "csharp"); @@clientName(Intent, "OracleSubscriptionUpdateIntent", "csharp"); @@clientName(LicenseModel, "OracleLicenseModel", "csharp"); @@clientName(LongTermBackUpScheduleDetails.timeOfBackup, "BackupOn", "csharp"); @@ -314,6 +325,7 @@ using Oracle.Database; @@clientName(Preference, "MaintenancePreference", "csharp"); @@clientName(PrivateIpAddressesFilter, "PrivateIPAddressesContent", "csharp"); @@clientName(PrivateIpAddressProperties, "PrivateIPAddressResult", "csharp"); +@@clientName(PrivateIpAddressProperties.ipAddress, "IPAddress", "csharp"); @@clientName(ProtocolType, "ConnectionProtocolType", "csharp"); @@clientName(ProtocolType.TCP, "Tcp", "csharp"); @@clientName(ProtocolType.TCPS, "Tcps", "csharp"); @@ -461,6 +473,10 @@ using Oracle.Database; "csharp" ); @@clientName(AutonomousDatabaseUpdateProperties.peerDbId, "peerDBId", "csharp"); +@@clientName(AutonomousDatabaseUpdateProperties.whitelistedIps, + "WhitelistedIPs", + "csharp" +); @@usage(AutonomousDatabaseCharacterSetProperties, Usage.input | Usage.output, @@ -533,6 +549,7 @@ using Oracle.Database; "ExascaleDBStorageVaultOcid", "csharp" ); +@@clientName(CloudVmClusterProperties.scanIpIds, "ScanIPIds", "csharp"); @@clientName(VirtualNetworkAddressProperties.vmOcid, "VipVmOcid", "csharp"); @@clientName(VirtualNetworkAddressProperties.ocid, "VipOcid", "csharp"); @@clientName(DbServerProperties.ocid, "DBServerOcid", "csharp"); @@ -558,6 +575,12 @@ using Oracle.Database; "CloudAccountOcid", "csharp" ); +/* +@@alternateType(OracleSubscription.plan, + Azure.ResourceManager.CommonTypes.Plan, + "csharp" +); +*/ @@clientName(PrivateIpAddressesFilter.vnicId, "VnicOcid", "csharp"); @@clientName(PrivateIpAddressesFilter.subnetId, "SubnetOcid", "csharp"); @@clientName(PrivateIpAddressProperties.ocid, @@ -576,6 +599,7 @@ using Oracle.Database; @@clientName(DbSystemProperties.dbVersion, "DBVersion", "csharp"); @@clientName(DbSystemProperties.pdbName, "PluggableDatabaseName", "csharp"); @@clientName(DbSystemBaseProperties, "OracleDBSystemBaseProperties", "csharp"); +@@clientName(DbSystemBaseProperties.scanIps, "ScanIPs", "csharp"); @@clientName(DbVersion, "OracleDBVersion", "csharp"); @@clientName(DbVersionProperties, "OracleDBVersionProperties", "csharp"); @@clientName(DbVersionProperties.supportsPdb, @@ -587,6 +611,14 @@ using Oracle.Database; "OracleNetworkAnchorProperties", "csharp" ); +@@clientName(NetworkAnchorProperties.dnsForwardingEndpointIpAddress, + "DnsForwardingEndpointIPAddress", + "csharp" +); +@@clientName(NetworkAnchorProperties.dnsListeningEndpointIpAddress, + "DnsListeningEndpointIPAddress", + "csharp" +); @@alternateType(NetworkAnchorProperties.dnsForwardingRulesUrl, url, "csharp"); @@alternateType(NetworkAnchorProperties.dnsListeningEndpointNsgRulesUrl, url, @@ -601,7 +633,8 @@ using Oracle.Database; "OracleResourceAnchorProperties", "csharp" ); -@@clientName(BaseDbSystemShapes, "OracleBaseDbSystemShapes", "csharp"); +@@clientName(BaseDbSystemShapes, "OracleBaseDbSystemShape", "csharp"); +@@clientName(BaseDbSystemShapes.VMStandardX86, "VmStandardX86", "csharp"); @@clientName(DbSystemOptions, "OracleDBSystemOptions", "csharp"); @@clientName(DbSystemDatabaseEditionType, "DBSystemDatabaseEditionType", @@ -611,12 +644,20 @@ using Oracle.Database; @@clientName(DbSystemSourceType, "DBSystemSourceType", "csharp"); @@clientName(DiskRedundancyType, "DBSystemDiskRedundancyType", "csharp"); @@clientName(DnsForwardingRule, "NetworkAnchorDnsForwardingRule", "csharp"); +@@clientName(DnsForwardingRule.forwardingIpAddress, + "ForwardingIPAddress", + "csharp" +); @@clientName(ExadataVmClusterStorageManagementType.ASM, "Asm", "csharp"); @@clientName(ShapeAttribute, "ExascaleStorageShapeAttribute", "csharp"); @@clientName(ShapeAttribute.SMART_STORAGE, "SmartStorage", "csharp"); @@clientName(ShapeAttribute.BLOCK_STORAGE, "BlockStorage", "csharp"); @@clientName(StorageManagementType.LVM, "Lvm", "csharp"); @@clientName(ShapeFamilyType.ExadbXs, "ExadbXS", "csharp"); +@@clientName(CloudVmClusters.listPrivateIpAddresses, + "GetPrivateIPAddresses", + "csharp" +); // Java @@clientName(AutonomousDatabaseBackups.listByParent, diff --git a/specification/oracle/Oracle.Database.Management/tspconfig.yaml b/specification/oracle/Oracle.Database.Management/tspconfig.yaml index c6877921ba4e..d1f80043fa3d 100644 --- a/specification/oracle/Oracle.Database.Management/tspconfig.yaml +++ b/specification/oracle/Oracle.Database.Management/tspconfig.yaml @@ -45,12 +45,9 @@ options: generate-test: true generate-sample: true flavor: azure - "@azure-tools/typespec-csharp": + "@azure-typespec/http-client-csharp-mgmt": namespace: "Azure.ResourceManager.OracleDatabase" - clear-output-folder: true - flavor: azure - emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - service-dir: "sdk/oracle" + emitter-output-dir: "{output-dir}/sdk/oracle/{namespace}" linter: extends: From c26378fdafe89239d78a5f1841ab58be91956652 Mon Sep 17 00:00:00 2001 From: Arthur Ma <mars.arthur@263.net> Date: Sun, 4 Jan 2026 13:33:12 +0800 Subject: [PATCH 098/117] Updete client settings for IotOperations (#39416) --- .../IoTOperations.Management/client.tsp | 25 +++++++++++++++++-- .../IoTOperations.Management/tspconfig.yaml | 6 ++--- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/specification/iotoperations/IoTOperations.Management/client.tsp b/specification/iotoperations/IoTOperations.Management/client.tsp index 53e7a51ffa8c..2bdc190a684a 100644 --- a/specification/iotoperations/IoTOperations.Management/client.tsp +++ b/specification/iotoperations/IoTOperations.Management/client.tsp @@ -30,6 +30,10 @@ using Microsoft.IoTOperations; "IotOperationsBrokerListenerProperties", "csharp" ); +@@clientName(BrokerListenerProperties.serviceType, + "ListenerServiceType", + "csharp" +); @@clientName(BrokerResource, "IotOperationsBroker", "csharp"); @@clientName(BrokerProperties, "IotOperationsBrokerProperties", "csharp"); @@clientName(DataflowEndpointResource, @@ -73,18 +77,24 @@ using Microsoft.IoTOperations; @@clientName(MetricProperties, "IotOperationsMetricsProperties", "csharp"); @@clientName(OperationalMode, "IotOperationsOperationalMode", "csharp"); @@clientName(OperationType, "DataflowOperationType", "csharp"); -@@clientName(OperatorValues, "BrokerOperatorValues", "csharp"); +@@clientName(OperatorValues, "BrokerOperatorValue", "csharp"); @@clientName(PrincipalDefinition, "PrincipalConfig", "csharp"); @@clientName(ProfileDiagnostics, "DataflowProfileDiagnostics", "csharp"); @@clientName(ProvisioningState, "IotOperationsProvisioningState", "csharp"); @@clientName(SelfCheck, "BrokerDiagnosticSelfCheck", "csharp"); @@clientName(SelfTracing, "DiagnosticSelfTracing", "csharp"); -@@clientName(ServiceType, "BlockerListenerServiceType", "csharp"); +@@clientName(ServiceType, "BrokerListenerServiceType", "csharp"); +@@clientName(ServiceType.ClusterIp, "ClusterIP", "csharp"); @@clientName(SourceSerializationFormat, "DataflowSourceSerializationFormat", "csharp" ); +@@clientName(BrokerAuthenticatorValidationMethods, + "BrokerAuthenticatorValidationMethod", + "csharp" +); @@clientName(TlsCertMethod, "ListenerPortTlsCertMethod", "csharp"); +@@clientName(X509ManualCertificate, "BrokerX509ManualCertificate", "csharp"); @@clientName(TlsProperties, "IotOperationsTlsProperties", "csharp"); @@clientName(Traces, "BrokerDiagnosticTraces", "csharp"); @@clientName(AkriConnectorResource, "IotOperationsAkriConnector", "csharp"); @@ -113,6 +123,17 @@ using Microsoft.IoTOperations; "IotOperationsRegistryEndpointProperties", "csharp" ); +@@clientName(BrokerResourceDefinitionMethods, + "BrokerResourceDefinitionMethod", + "csharp" +); +@@clientName(DataflowEndpointKafkaAcks, "DataflowEndpointKafkaAck", "csharp"); +@@clientName(SanForCert.ip, "IP", "csharp"); +@@clientName(StateStoreResourceDefinitionMethods, + "StateStoreResourceDefinitionMethod", + "csharp" +); +@@clientName(StateStoreResourceKeyTypes, "StateStoreResourceKeyType", "csharp"); @@clientName(Versions.`2024-11-01`, "$DO_NOT_NORMALIZE$V2024-11-01", diff --git a/specification/iotoperations/IoTOperations.Management/tspconfig.yaml b/specification/iotoperations/IoTOperations.Management/tspconfig.yaml index a6f64d2c77f6..96a013a0ee3b 100644 --- a/specification/iotoperations/IoTOperations.Management/tspconfig.yaml +++ b/specification/iotoperations/IoTOperations.Management/tspconfig.yaml @@ -9,11 +9,9 @@ options: azure-resource-provider-folder: "resource-manager" output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/iotoperations.json" use-read-only-status-schema: true - "@azure-tools/typespec-csharp": - emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - flavor: azure - clear-output-folder: true + "@azure-typespec/http-client-csharp-mgmt": namespace: "Azure.ResourceManager.IotOperations" + emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" "@azure-tools/typespec-python": emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-iotoperations" namespace: "azure.mgmt.iotoperations" From 53d56e4ec74156c450d1e51745a971d3f2031dd7 Mon Sep 17 00:00:00 2001 From: Weidong Xu <weidxu@microsoft.com> Date: Mon, 5 Jan 2026 10:33:55 +0800 Subject: [PATCH 099/117] java, mgmt, healthbot, tspconfig for backward-compatibility (#39430) --- specification/healthbot/HealthBot.Management/tspconfig.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/specification/healthbot/HealthBot.Management/tspconfig.yaml b/specification/healthbot/HealthBot.Management/tspconfig.yaml index e54f211966c7..120c77a53ffd 100644 --- a/specification/healthbot/HealthBot.Management/tspconfig.yaml +++ b/specification/healthbot/HealthBot.Management/tspconfig.yaml @@ -23,6 +23,7 @@ options: namespace: "com.azure.resourcemanager.healthbot" service-name: "Healthbot" # human-readable service name, whitespace allowed flavor: azure + use-object-for-unknown: true "@azure-tools/typespec-ts": service-dir: sdk/healthbot emitter-output-dir: "{output-dir}/{service-dir}/arm-healthbot" From cc2aeedb1891cf813f77b8d20892f4cad8d16daa Mon Sep 17 00:00:00 2001 From: Arthur Ma <mars.arthur@263.net> Date: Mon, 5 Jan 2026 11:57:20 +0800 Subject: [PATCH 100/117] Update client settings for FileShare .Net SDK (#39422) --- .../FileShares/client.tsp | 84 ++++++++++++++++--- .../FileShares/tspconfig.yaml | 7 +- 2 files changed, 75 insertions(+), 16 deletions(-) diff --git a/specification/fileshares/resource-manager/Microsoft.FileShares/FileShares/client.tsp b/specification/fileshares/resource-manager/Microsoft.FileShares/FileShares/client.tsp index dfaa6bcceffa..bc757b76cb3f 100644 --- a/specification/fileshares/resource-manager/Microsoft.FileShares/FileShares/client.tsp +++ b/specification/fileshares/resource-manager/Microsoft.FileShares/FileShares/client.tsp @@ -3,27 +3,89 @@ import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; using Azure.ResourceManager.Foundations; +using Microsoft.FileShares; @@clientName(Microsoft.FileShares, "FileSharesManagementClient", "java"); +@@scope(Operations.list, "!csharp"); +@@clientName(Microsoft.FileShares.FileShares, "FileSharesInterface", "csharp"); +@@clientName(CheckNameAvailabilityRequest, + "FileShareNameAvailabilityContent", + "csharp" +); @@clientName(CheckNameAvailabilityResponse, - "CheckNameAvailabilityResult", + "FileShareNameAvailabilityResult", "csharp" ); - -@@clientName(Microsoft.FileShares.FileShareLimitsResponse, - "FileShareLimitsResult", +@@clientName(CheckNameAvailabilityReason, + "FileShareNameUnavailableReason", "csharp" ); - -@@clientName(Microsoft.FileShares.FileShareProvisioningRecommendationResponse, +@@clientName(FileShares.checkNameAvailability, + "CheckFileShareNameAvailability", + "csharp" +); +@@clientName(FileShareLimitsResponse, "FileShareLimitsResult", "csharp"); +@@clientName(FileShareProvisioningRecommendationResponse, "FileShareProvisioningRecommendationResult", "csharp" ); - -@@clientName(Microsoft.FileShares.FileShareUsageDataResponse, - "FileShareUsageDataResult", +@@clientName(FileShareProvisioningRecommendationOutput, + "FileShareProvisioningRecommendationOutputProperties", + "csharp" +); +@@clientName(FileShareUsageDataResponse, "FileShareUsageDataResult", "csharp"); +@@clientName(FileShareUsageDataOutput, + "FileShareUsageDataProperties", + "csharp" +); +@@clientName(FileShareProperties.provisionedStorageGiB, + "ProvisionedStorageInGiB", + "csharp" +); +@@clientName(FileShareProperties.provisionedStorageNextAllowedDowngrade, + "ProvisionedStorageNextAllowedDowngradeOn", + "csharp" +); +@@clientName(FileShareProperties.provisionedIOPerSecNextAllowedDowngrade, + "ProvisionedIOPerSecNextAllowedDowngradeOn", + "csharp" +); +@@clientName(FileShareProperties.provisionedThroughputNextAllowedDowngrade, + "ProvisionedThroughputNextAllowedDowngradeOn", + "csharp" +); +@@clientName(FileShareProvisioningRecommendationRequest, + "FileShareProvisioningRecommendationContent", + "csharp" +); +@@clientName(FileShareProvisioningRecommendationInput, + "FileShareProvisioningRecommendationInputProperties", + "csharp" +); +@@clientName(FileShareProvisioningRecommendationInput.provisionedStorageGiB, + "ProvisionedStorageInGiB", + "csharp" +); +@@clientName(PublicNetworkAccess, "FileSharePublicNetworkAccess", "csharp"); +@@clientName(MediaTier, "FileShareMediaTier", "csharp"); +@@clientName(MediaTier.SSD, "Ssd", "csharp"); +@@clientName(Redundancy, "FileShareRedundancyLevel", "csharp"); +@@clientName(Protocol, "FileShareProtocol", "csharp"); +@@clientName(Protocol.NFS, "Nfs", "csharp"); +@@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties, + "FileSharePrivateEndpointConnectionProperties", + "csharp" +); +@@clientName(Azure.ResourceManager.CommonTypes.PrivateLinkServiceConnectionState, + "FileSharePrivateLinkServiceConnectionState", + "csharp" +); +@@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProvisioningState, + "FileSharePrivateEndpointConnectionProvisioningState", + "csharp" +); +@@clientName(Azure.ResourceManager.PrivateEndpointConnection, + "FileSharePrivateEndpointConnection", "csharp" ); - -@@clientName(Azure.ResourceManager.CommonTypes.Operation, "Info", "csharp"); diff --git a/specification/fileshares/resource-manager/Microsoft.FileShares/FileShares/tspconfig.yaml b/specification/fileshares/resource-manager/Microsoft.FileShares/FileShares/tspconfig.yaml index ecd0392b6db8..adaa7577092f 100644 --- a/specification/fileshares/resource-manager/Microsoft.FileShares/FileShares/tspconfig.yaml +++ b/specification/fileshares/resource-manager/Microsoft.FileShares/FileShares/tspconfig.yaml @@ -10,12 +10,9 @@ options: azure-resource-provider-folder: "resource-manager" output-file: "{version-status}/{version}/fileshares.json" arm-types-dir: "{project-root}/../../../../common-types/resource-management" - "@azure-tools/typespec-csharp": + "@azure-typespec/http-client-csharp-mgmt": + namespace: "Azure.ResourceManager.FileShares" emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - flavor: azure - clear-output-folder: true - model-namespace: true - namespace: "Azure.ResourceManager.Fileshares" "@azure-tools/typespec-python": emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-fileshares" namespace: "azure.mgmt.fileshares" From 241a61e926ba37f56654e85b117d4e32ec4c1bd5 Mon Sep 17 00:00:00 2001 From: haiyuan_zhang <haiyuan.zhang1982@gmail.com> Date: Mon, 5 Jan 2026 13:03:59 +0800 Subject: [PATCH 101/117] MPG migration - workloadssapvirtualinstance (#39286) --- .../client.tsp | 76 ++++++++++++++++++- .../tspconfig.yaml | 5 +- 2 files changed, 73 insertions(+), 8 deletions(-) diff --git a/specification/workloads/Workloads.SAPVirtualInstance.Management/client.tsp b/specification/workloads/Workloads.SAPVirtualInstance.Management/client.tsp index 48c76d2d7338..2b78e86e39c5 100644 --- a/specification/workloads/Workloads.SAPVirtualInstance.Management/client.tsp +++ b/specification/workloads/Workloads.SAPVirtualInstance.Management/client.tsp @@ -2,6 +2,7 @@ import "./main.tsp"; import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; +using Azure.Core; using Microsoft.Workloads; @@clientName(Microsoft.Workloads, @@ -162,21 +163,21 @@ using Microsoft.Workloads; "csharp" ); @@clientName(SAPSizingRecommendationRequest, - "SapSizingRecommendationRequest", + "SapSizingRecommendationContent", "csharp" ); @@clientName(SAPSizingRecommendationResult, "SapSizingRecommendationResult", "csharp" ); -@@clientName(SAPSupportedSkusRequest, "SapSupportedSkusRequest", "csharp"); +@@clientName(SAPSupportedSkusRequest, "SapSupportedSkusContent", "csharp"); @@clientName(SAPSupportedResourceSkusResult, "SapSupportedResourceSkusResult", "csharp" ); @@clientName(SAPSupportedSku, "SapSupportedSku", "csharp"); @@clientName(SAPDiskConfigurationsRequest, - "SapDiskConfigurationsRequest", + "SapDiskConfigurationsContent", "csharp" ); @@clientName(SAPDiskConfigurationsResult, @@ -185,7 +186,7 @@ using Microsoft.Workloads; ); @@clientName(SAPDiskConfiguration, "SapDiskConfiguration", "csharp"); @@clientName(SAPAvailabilityZoneDetailsRequest, - "SapAvailabilityZoneDetailsRequest", + "SapAvailabilityZoneDetailsContent", "csharp" ); @@clientName(SAPAvailabilityZoneDetailsResult, @@ -405,23 +406,90 @@ using Microsoft.Workloads; "csharp" ); @@clientName(ThreeTierRecommendationResult.dbVmSku, "DBVmSku", "csharp"); +@@clientName(MessageServerProperties.ipAddress, "IPAddress", "csharp"); @@alternateType(MessageServerProperties.ipAddress, Azure.Core.ipV4Address, "csharp" ); +@@clientName(EnqueueServerProperties.ipAddress, "IPAddress", "csharp"); @@alternateType(EnqueueServerProperties.ipAddress, Azure.Core.ipV4Address, "csharp" ); +@@clientName(EnqueueReplicationServerProperties.ipAddress, + "IPAddress", + "csharp" +); @@alternateType(EnqueueReplicationServerProperties.ipAddress, Azure.Core.ipV4Address, "csharp" ); +@@clientName(SAPDatabaseProperties.ipAddress, "IPAddress", "csharp"); @@alternateType(SAPDatabaseProperties.ipAddress, Azure.Core.ipV4Address, "csharp" ); +@@clientName(SAPApplicationServerProperties.ipAddress, "IPAddress", "csharp"); @@alternateType(SAPApplicationServerProperties.ipAddress, Azure.Core.ipV4Address, "csharp" ); +@@clientName(NetworkConfiguration.isSecondaryIpEnabled, + "isSecondaryIPEnabled", + "csharp" +); +@@clientName(LoadBalancerResourceNames.frontendIpConfigurationNames, + "frontendIPConfigurationNames", + "csharp" +); +@@clientName(OsSapConfiguration, "OSSapConfiguration", "csharp"); +@@clientName(VirtualMachineResourceNames.osDiskName, "OSDiskName", "csharp"); +@@clientName(DeploymentWithOSConfiguration.osSapConfiguration, + "OSSapConfiguration", + "csharp" +); +@@clientName(OSProfile.osConfiguration, "OSConfiguration", "csharp"); +@@clientName(VirtualMachineConfiguration.osProfile, "OSProfile", "csharp"); +@@clientName(SAPVirtualInstances.getSizingRecommendations, + "getSizingRecommendationsSapVirtualInstance", + "csharp" +); +@@clientName(SAPVirtualInstances.getSapSupportedSku, + "getSapSupportedSkuSapVirtualInstance", + "csharp" +); +@@clientName(SAPVirtualInstances.getDiskConfigurations, + "getDiskConfigurationsSapVirtualInstance", + "csharp" +); +@@clientName(SAPVirtualInstances.getAvailabilityZoneDetails, + "getAvailabilityZoneDetailsSapVirtualInstance", + "csharp" +); + +@@alternateType(LoadBalancerDetails.id, + Azure.Core.armResourceIdentifier, + "csharp" +); + +@@alternateType(CentralServerVmDetails.storageDetails, + Azure.ResourceManager.Models.SubResource[], + "csharp" +); +@@alternateType(DatabaseVmDetails.storageDetails, + Azure.ResourceManager.Models.SubResource[], + "csharp" +); +@@alternateType(ApplicationServerVmDetails.storageDetails, + Azure.ResourceManager.Models.SubResource[], + "csharp" +); + +// we add this model in this namespace in order to replace some models with this model via alternateType decorator +namespace Azure.ResourceManager.Models { + /** represents a reference to an existing resource by its id */ + model SubResource { + /** the id */ + id?: armResourceIdentifier; + } +} diff --git a/specification/workloads/Workloads.SAPVirtualInstance.Management/tspconfig.yaml b/specification/workloads/Workloads.SAPVirtualInstance.Management/tspconfig.yaml index 898cd6f81738..1287060e0998 100644 --- a/specification/workloads/Workloads.SAPVirtualInstance.Management/tspconfig.yaml +++ b/specification/workloads/Workloads.SAPVirtualInstance.Management/tspconfig.yaml @@ -11,11 +11,8 @@ options: azure-resource-provider-folder: "resource-manager" emit-common-types-schema: "never" output-file: "{azure-resource-provider-folder}/{service-name}/SAPVirtualInstance/{version-status}/{version}/SAPVirtualInstance.json" - "@azure-tools/typespec-csharp": + "@azure-typespec/http-client-csharp-mgmt": emitter-output-dir: "{output-dir}/sdk/workloadssapvirtualinstance/{namespace}" - flavor: azure - clear-output-folder: true - model-namespace: false namespace: "Azure.ResourceManager.WorkloadsSapVirtualInstance" "@azure-tools/typespec-ts": experimental-extensible-enums: true From 7f97f2cb2d32350cee3d268d7b36ff58365440b2 Mon Sep 17 00:00:00 2001 From: Arthur Ma <mars.arthur@263.net> Date: Mon, 5 Jan 2026 13:30:42 +0800 Subject: [PATCH 102/117] Update client settings for AzureStackHciVm (#39425) --- .../client.tsp | 271 +++++++++++++++++- .../tspconfig.yaml | 9 +- 2 files changed, 273 insertions(+), 7 deletions(-) diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp index 0166780924d2..d879fdfe553f 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp @@ -2,6 +2,7 @@ import "./main.tsp"; import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; +using Azure.Core; using Microsoft.AzureStackHCI; @@clientName(Microsoft.AzureStackHCI, "AzureStackHCIVmClient", "python"); @@ -22,7 +23,6 @@ using Microsoft.AzureStackHCI; @@clientName(StatusLevelTypes, "HciVmStatusLevelType", "csharp"); @@clientName(PowerStateEnum, "HciVmPowerState", "csharp"); @@clientName(ProvisioningAction, "GuestAgentProvisioningAction", "csharp"); -@@clientName(Identity, "HciVmIdentity", "csharp"); @@clientName(SshConfiguration, "HciVmOSProfileSshConfiguration", "csharp"); @@clientName(SshPublicKey, "HciVmOSProfileSshPublicKey", "csharp"); @@clientName(AttestationStatus, "HciVmAttestationStatus", "csharp"); @@ -32,6 +32,7 @@ using Microsoft.AzureStackHCI; ); @@clientName(GalleryImage, "HciVmGalleryImage", "csharp"); @@clientName(GalleryImageProperties, "HciVmGalleryImageProperties", "csharp"); +@@clientName(GalleryImageProperties.osType, "OSType", "csharp"); @@clientName(GuestAgent, "HciVmGuestAgent", "csharp"); @@clientName(GuestAgentProperties, "HciVmGuestAgentProperties", "csharp"); @@clientName(HybridIdentityMetadata, "HciVmHybridIdentityMetadata", "csharp"); @@ -49,6 +50,7 @@ using Microsoft.AzureStackHCI; "HciVmMarketplaceGalleryImageProperties", "csharp" ); +@@clientName(MarketplaceGalleryImageProperties.osType, "OSType", "csharp"); @@clientName(NetworkInterface, "HciVmNetworkInterface", "csharp"); @@clientName(NetworkInterfaceProperties, "HciVmNetworkInterfaceProperties", @@ -316,12 +318,279 @@ using Microsoft.AzureStackHCI; "HciVmInstanceStorageProfileOSDisk", "csharp" ); +@@clientName(VirtualMachineInstancePropertiesStorageProfileOsDisk.osType, + "OSType", + "csharp" +); @@clientName(VirtualMachineInstanceStatus, "HciVmInstanceStatus", "csharp"); @@clientName(VirtualMachineInstanceStatusProvisioningStatus, "HciVmInstanceProvisioningStatus", "csharp" ); @@clientName(VmSizeEnum, "HciVmSize", "csharp"); +@@clientName(VirtualMachineInstanceManagedDiskParameters, + "VirtualMachineInstanceManagedDiskContent", + "csharp" +); +@@clientName(VirtualMachineInstancePropertiesOsProfileLinuxConfiguration.provisionVMAgent, + "ProvisionVmAgent", + "csharp" +); +@@clientName(VirtualMachineInstancePropertiesOsProfileLinuxConfiguration.provisionVMConfigAgent, + "ProvisionVmConfigAgent", + "csharp" +); +@@clientName(VirtualMachineInstancePropertiesOsProfileWindowsConfiguration.provisionVMAgent, + "ProvisionVmAgent", + "csharp" +); +@@clientName(VirtualMachineInstancePropertiesOsProfileWindowsConfiguration.provisionVMConfigAgent, + "ProvisionVmConfigAgent", + "csharp" +); +@@clientName(OsProfileUpdateLinuxConfiguration.provisionVMAgent, + "ProvisionVmAgent", + "csharp" +); +@@clientName(OsProfileUpdateLinuxConfiguration.provisionVMConfigAgent, + "ProvisionVmConfigAgent", + "csharp" +); +@@clientName(OsProfileUpdateWindowsConfiguration.provisionVMAgent, + "ProvisionVmAgent", + "csharp" +); +@@clientName(OsProfileUpdateWindowsConfiguration.provisionVMConfigAgent, + "ProvisionVmConfigAgent", + "csharp" +); +@@alternateType(VirtualMachineInstanceUpdateRequest.identity, + Azure.ResourceManager.CommonTypes.ManagedServiceIdentity, + "csharp" +); +@@alternateType(HybridIdentityMetadataProperties.identity, + Azure.ResourceManager.CommonTypes.ManagedServiceIdentity, + "csharp" +); +@@clientName(NetworkInterfaceArmReference, + "HciVmNetworkInterfaceArmReference", + "csharp" +); +@@clientName(VirtualHardDiskArmReference, + "HciVmVirtualHardDiskArmReference", + "csharp" +); +@@clientName(LogicalNetworkArmReference, + "HciVmLogicalNetworkArmReference", + "csharp" +); +@@clientName(SubnetIpConfigurationReference, + "HciVmSubnetIPConfigurationReference", + "csharp" +); +@@clientName(IPConfigurationArmReference, + "HciVmIPConfigurationArmReference", + "csharp" +); +@@clientName(VirtualMachineInstanceProperties.hostNodeIpAddress, + "HostNodeIPAddress", + "csharp" +); +@@clientName(VirtualMachineInstanceProperties.osProfile, "OSProfile", "csharp"); +@@clientName(VirtualMachineInstanceUpdateProperties.osProfile, + "OSProfile", + "csharp" +); +@@clientName(VirtualMachineInstancePropertiesStorageProfile.osDisk, + "OSDisk", + "csharp" +); +@@clientName(IPPool.ipPoolType, "IPPoolType", "csharp"); +@@clientName(RouteProperties.nextHopIpAddress, "nextHopIPAddress", "csharp"); +@@clientName(SubnetProperties.ipAllocationMethod, + "IPAllocationMethod", + "csharp" +); +@@clientName(SubnetProperties.ipConfigurationReferences, + "IPConfigurationReferences", + "csharp" +); +@@clientName(SubnetProperties.ipPools, "IPPools", "csharp"); +@@clientName(NetworkInterfaceProperties.ipConfigurations, + "IPConfigurations", + "csharp" +); +@@clientName(VirtualNetworkSubnetProperties.ipConfigurations, + "IPConfigurations", + "csharp" +); +@@clientName(SecurityTypes.ConfidentialVM, "ConfidentialVm", "csharp"); +@@clientName(GalleryImageVersionStorageProfile.osDiskImage, + "OSDiskImage", + "csharp" +); +@@clientName(LoadBalancer, "HciVmLoadBalancer", "csharp"); +@@clientName(LoadBalancerProperties, "HciVmLoadBalancerProperties", "csharp"); +@@clientName(NatGateway, "HciVmNatGateway", "csharp"); +@@clientName(NatGatewayProperties, "HciVmNatGatewayProperties", "csharp"); +@@clientName(NatGatewayProperties.inboundNATRules, "InboundNatRules", "csharp"); +@@clientName(PublicIPAddress, "HciVmPublicIPAddress", "csharp"); +@@clientName(PublicIPAddressProperties, + "HciVmPublicIPAddressProperties", + "csharp" +); +@@clientName(VirtualNetwork, "HciVmVirtualNetwork", "csharp"); +@@clientName(VirtualNetworkProperties, + "HciVmVirtualNetworkProperties", + "csharp" +); +@@clientName(VirtualNetworkSubnet, "HciVmVirtualNetworkSubnet", "csharp"); +@@clientName(VirtualNetworkSubnetProperties, + "HciVmVirtualNetworkSubnetProperties", + "csharp" +); +@@clientName(BackendAddressPool, "HciVmBackendAddressPool", "csharp"); +@@clientName(BackendAddressPoolProperties, + "HciVmBackendAddressPoolProperties", + "csharp" +); +@@clientName(FabricConnectionHealthEnum, + "FabricConnectionHealthStateType", + "csharp" +); +@@clientName(FabricIntegrationStateEnum, + "FabricIntegrationStateType", + "csharp" +); +@@clientName(FabricIntegrationStatus.lastChecked, "LastCheckedOn", "csharp"); +@@clientName(FabricIssue, "ManagedNetworkFabricIssue", "csharp"); +@@clientName(FabricResourceTypeEnum, "FabricResourceType", "csharp"); +@@clientName(FrontendIPConfiguration, "HciVmFrontendIPConfiguration", "csharp"); +@@clientName(FrontendIPConfigurationProperties, + "HciVmFrontendIPConfigurationProperties", + "csharp" +); +@@clientName(NetworkInterfaceProperties.bypassSdnPolicies, + "IsSdnPoliciesBypassed", + "csharp" +); +@@clientName(NetworkInterfacesUpdateProperties.bypassSdnPolicies, + "IsSdnPoliciesBypassed", + "csharp" +); +@@clientName(InboundNATRule, "HciVmInboundNatRule", "csharp"); +@@clientName(InboundNATRuleProperties, + "HciVmInboundNatRuleProperties", + "csharp" +); +@@clientName(InboundNATRuleProtocol, "HciVmInboundNatRuleProtocol", "csharp"); +@@clientName(InboundNATRuleProtocol.TCP, "Tcp", "csharp"); +@@clientName(InboundNATRuleProtocol.UDP, "Udp", "csharp"); +@@clientName(LoadBalancerBackendAddress, + "HciVmLoadBalancerBackendAddress", + "csharp" +); +@@clientName(LoadBalancerBackendAddressProperties, + "HciVmLoadBalancerBackendAddressProperties", + "csharp" +); +@@clientName(LoadBalancerBackendAddressProperties.ipAddress, + "IPAddress", + "csharp" +); +@@clientName(LoadBalancerBackendAddressAdminState, + "HciVmLoadBalancerBackendAddressAdminState", + "csharp" +); +@@clientName(LoadBalancerBackendAddressPoolReference, + "HciVmLoadBalancerBackendAddressPoolReference", + "csharp" +); +@@clientName(LoadBalancerFrontendIPConfigurationReference, + "HciVmLoadBalancerFrontendIPConfigurationReference", + "csharp" +); +@@clientName(LoadBalancerProbeProtocol, + "HciVmLoadBalancerProbeProtocol", + "csharp" +); +@@clientName(LoadBalancerProbeProtocol.HTTP, "Http", "csharp"); +@@clientName(LoadBalancerProbeProtocol.TCP, "Tcp", "csharp"); +@@clientName(LoadBalancerRule, "HciVmLoadBalancerRule", "csharp"); +@@clientName(LoadBalancerRuleProperties, + "HciVmLoadBalancerRuleProperties", + "csharp" +); +@@clientName(LoadBalancerRuleSessionPersistenceType, + "HciVmLoadBalancerRuleSessionPersistenceType", + "csharp" +); +@@clientName(LoadBalancerRuleTransportProtocol, + "HciVmLoadBalancerRuleTransportProtocol", + "csharp" +); +@@clientName(LoadBalancerRuleTransportProtocol.TCP, "Tcp", "csharp"); +@@clientName(LoadBalancerRuleTransportProtocol.UDP, "Udp", "csharp"); +@@clientName(LoadBalancerStatus, "HciVmLoadBalancerStatus", "csharp"); +@@clientName(LoadBalancerStatusProvisioningStatus, + "HciVmLoadBalancerStatusProvisioningStatus", + "csharp" +); +@@clientName(NatGatewayStatus, "HciVmNatGatewayStatus", "csharp"); +@@clientName(NatGatewayStatusProvisioningStatus, + "HciVmNatGatewayStatusProvisioningStatus", + "csharp" +); +@@clientName(Probe, "HciVmLoadBalancerHealthProbe", "csharp"); +@@clientName(ProbeProperties, + "HciVmLoadBalancerHealthProbeProperties", + "csharp" +); +@@clientName(PublicIPAddressArmReference, + "HciVmPublicIPAddressArmReference", + "csharp" +); +@@clientName(PublicIPAddressProperties.ipAddress, "IPAddress", "csharp"); +@@clientName(PublicIPAddressProperties.ipAllocationScope, + "IPAllocationScope", + "csharp" +); +@@clientName(PublicIPAddressProperties.ipConfiguration, + "IPConfiguration", + "csharp" +); +@@clientName(PublicIPAddressType, "HciVmPublicIPAddressType", "csharp"); +@@clientName(VirtualNetworkAddressSpace, + "HciVmVirtualNetworkAddressSpace", + "csharp" +); +@@clientName(VirtualNetworkStatus, "HciVmVirtualNetworkStatus", "csharp"); +@@clientName(VirtualNetworkStatusProvisioningStatus, + "HciVmVirtualNetworkStatusProvisioningStatus", + "csharp" +); +@@clientName(VirtualNetworkDhcpOptions, + "HciVmVirtualNetworkDhcpOptions", + "csharp" +); +@@clientName(VirtualNetworkSubnetArmReference, + "HciVmVirtualNetworkSubnetArmReference", + "csharp" +); +@@clientName(VirtualNetworkSubnetIpConfigurationReference, + "HciVmVirtualNetworkSubnetIPConfigurationReference", + "csharp" +); +@@clientName(VirtualNetworkSubnetStatus, + "HciVmVirtualNetworkSubnetStatus", + "csharp" +); +@@clientName(VirtualNetworkSubnetStatusProvisioningStatus, + "HciVmVirtualNetworkSubnetStatusProvisioningStatus", + "csharp" +); +@@clientName(InterfaceDNSSettings, "HciVmInterfaceDnsSettings", "csharp"); +@@clientName(VMDiskSecurityProfile, "HciVmDiskSecurityProfile", "csharp"); // Java @@clientName(Update, "HciUpdate", "java"); diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/tspconfig.yaml b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/tspconfig.yaml index 69f3a9f10b63..4a6c52d867d7 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/tspconfig.yaml +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/tspconfig.yaml @@ -33,12 +33,9 @@ options: namespace: "com.azure.resourcemanager.azurestackhci.vm" service-name: "Azure Stack Hci Vm" flavor: azure - "@azure-tools/typespec-csharp": - flavor: azure - package-dir: "Azure.ResourceManager.Hci.Vm" - clear-output-folder: true - model-namespace: true - namespace: "{package-dir}" + "@azure-typespec/http-client-csharp-mgmt": + namespace: "Azure.ResourceManager.Hci.Vm" + emitter-output-dir: "{output-dir}/sdk/azurestackhci/{namespace}" "@azure-tools/typespec-ts": experimental-extensible-enums: true emitter-output-dir: "{output-dir}/{service-dir}/arm-azurestackhcivm" From b4df1a565790e5a7ecad779548b94ef8de787781 Mon Sep 17 00:00:00 2001 From: Zhonglei Ma <v-zhongleima@microsoft.com> Date: Mon, 5 Jan 2026 14:22:20 +0800 Subject: [PATCH 103/117] MPG migration - Fabric (#39010) --- .../resource-manager/Microsoft.Fabric/Fabric/capacity.tsp | 2 +- .../resource-manager/Microsoft.Fabric/Fabric/client.tsp | 4 +++- .../resource-manager/Microsoft.Fabric/Fabric/tspconfig.yaml | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/specification/fabric/resource-manager/Microsoft.Fabric/Fabric/capacity.tsp b/specification/fabric/resource-manager/Microsoft.Fabric/Fabric/capacity.tsp index a5df56e98fe6..7c9d47de1484 100644 --- a/specification/fabric/resource-manager/Microsoft.Fabric/Fabric/capacity.tsp +++ b/specification/fabric/resource-manager/Microsoft.Fabric/Fabric/capacity.tsp @@ -96,6 +96,6 @@ interface FabricCapacities { Request = void, Response = PagedQuota, Scope = Extension.Subscription, - Parameters = LocationParameter + Parameters = LocationResourceParameter >; } diff --git a/specification/fabric/resource-manager/Microsoft.Fabric/Fabric/client.tsp b/specification/fabric/resource-manager/Microsoft.Fabric/Fabric/client.tsp index dda1a84171ea..fddb4295f12a 100644 --- a/specification/fabric/resource-manager/Microsoft.Fabric/Fabric/client.tsp +++ b/specification/fabric/resource-manager/Microsoft.Fabric/Fabric/client.tsp @@ -46,7 +46,9 @@ namespace Microsoft.Fabric { "FabricCapacityAdministration", "csharp" ); - @@clientName(Quota, "FabricQuota", "csharp"); + @@clientName(Quota, "FabricCapacitiesQuota", "csharp"); + @@clientName(FabricCapacities.listSkus, "GetSkusFabricCapacities", "csharp"); + @@clientName(QuotaName, "FabricCapacitiesQuotaName", "csharp"); } @@clientName(Microsoft.Fabric, "FabricMgmtClient", "python"); diff --git a/specification/fabric/resource-manager/Microsoft.Fabric/Fabric/tspconfig.yaml b/specification/fabric/resource-manager/Microsoft.Fabric/Fabric/tspconfig.yaml index 554f3065a2d7..8bbb95e9ec8d 100644 --- a/specification/fabric/resource-manager/Microsoft.Fabric/Fabric/tspconfig.yaml +++ b/specification/fabric/resource-manager/Microsoft.Fabric/Fabric/tspconfig.yaml @@ -43,6 +43,9 @@ options: generate-fakes: true head-as-boolean: true inject-spans: true + "@azure-typespec/http-client-csharp-mgmt": + namespace: "Azure.ResourceManager.Fabric" + emitter-output-dir: "{output-dir}/sdk/fabric/{namespace}" linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" From bbef13380e23a0a4e2f0a1f2e53f94c7c0fcbe2d Mon Sep 17 00:00:00 2001 From: Arthur Ma <mars.arthur@263.net> Date: Mon, 5 Jan 2026 15:03:40 +0800 Subject: [PATCH 104/117] Update client setting for FileShares (#39433) --- .../Microsoft.FileShares/FileShares/client.tsp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/specification/fileshares/resource-manager/Microsoft.FileShares/FileShares/client.tsp b/specification/fileshares/resource-manager/Microsoft.FileShares/FileShares/client.tsp index bc757b76cb3f..fd592a590914 100644 --- a/specification/fileshares/resource-manager/Microsoft.FileShares/FileShares/client.tsp +++ b/specification/fileshares/resource-manager/Microsoft.FileShares/FileShares/client.tsp @@ -17,6 +17,10 @@ using Microsoft.FileShares; "FileShareNameAvailabilityResult", "csharp" ); +@@clientName(CheckNameAvailabilityResponse.nameAvailable, + "IsNameAvailable", + "csharp" +); @@clientName(CheckNameAvailabilityReason, "FileShareNameUnavailableReason", "csharp" From b7893ea6dac17989815b535f56593e11023d0da6 Mon Sep 17 00:00:00 2001 From: Yuchao Yan <yuchaoyan@microsoft.com> Date: Mon, 5 Jan 2026 15:43:00 +0800 Subject: [PATCH 105/117] [storage] configure default value for python (#39251) * configure default value for python * configure default value for python --- .../Storage.Management/StorageAccount.tsp | 32 +++++++++++-------- .../storage/Storage.Management/client.tsp | 12 +++++++ 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/specification/storage/Storage.Management/StorageAccount.tsp b/specification/storage/Storage.Management/StorageAccount.tsp index 4dbd912ab8b6..ea94b62132b8 100644 --- a/specification/storage/Storage.Management/StorageAccount.tsp +++ b/specification/storage/Storage.Management/StorageAccount.tsp @@ -57,6 +57,22 @@ model StorageAccount placement?: Placement; } +alias StorageAccountListKeysParameters = { + /** + * Specifies type of the key to be listed. Possible value is kerb. + */ + @query("$expand") + $expand?: "kerb"; +}; + +alias StorageAccountFailoverParameters = { + /** + * The parameter is set to 'Planned' to indicate whether a Planned failover is requested. + */ + @query("failoverType") + failoverType?: "Planned"; +}; + @armResourceOperations interface StorageAccounts { /** @@ -138,13 +154,7 @@ interface StorageAccounts { StorageAccount, void, ArmResponse<StorageAccountListKeysResult>, - Parameters = { - /** - * Specifies type of the key to be listed. Possible value is kerb. - */ - @query("$expand") - $expand?: "kerb"; - }, + Parameters = StorageAccountListKeysParameters, Error = ErrorResponse >; @@ -191,13 +201,7 @@ interface StorageAccounts { { @body body: void; }, - Parameters = { - /** - * The parameter is set to 'Planned' to indicate whether a Planned failover is requested. - */ - @query("failoverType") - failoverType?: "Planned"; - }, + Parameters = StorageAccountFailoverParameters, Error = ErrorResponse, LroHeaders = Azure.Core.Foundations.RetryAfterHeader & ArmLroLocationHeader<FinalResult = void> diff --git a/specification/storage/Storage.Management/client.tsp b/specification/storage/Storage.Management/client.tsp index 23ae6cb60a9c..a8d77a782963 100644 --- a/specification/storage/Storage.Management/client.tsp +++ b/specification/storage/Storage.Management/client.tsp @@ -81,3 +81,15 @@ op getDeletedAccountCustomized( "ResourceAutoGenerated", "python" ); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Legacy decorator required for Python SDK compatibility" +@@Azure.ClientGenerator.Core.Legacy.clientDefaultValue(StorageAccountListKeysParameters.$expand, + "kerb", + "python" +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Legacy decorator required for Python SDK compatibility" +@@Azure.ClientGenerator.Core.Legacy.clientDefaultValue(StorageAccountFailoverParameters.failoverType, + "Planned", + "python" +); From 3c506ed6527d74b2261d34d955cfa64119eb2369 Mon Sep 17 00:00:00 2001 From: "Jiao Di (MSFT)" <80496810+v-jiaodi@users.noreply.github.com> Date: Mon, 5 Jan 2026 15:56:13 +0800 Subject: [PATCH 106/117] revert (#39326) --- .../Microsoft.Management/ManagementGroups/back-compatible.tsp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/management/resource-manager/Microsoft.Management/ManagementGroups/back-compatible.tsp b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/back-compatible.tsp index f66818efb676..4b7874c7576a 100644 --- a/specification/management/resource-manager/Microsoft.Management/ManagementGroups/back-compatible.tsp +++ b/specification/management/resource-manager/Microsoft.Management/ManagementGroups/back-compatible.tsp @@ -18,7 +18,7 @@ using Rest; @@Legacy.flattenProperty(AzureAsyncOperationResults.properties); #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." -@@Legacy.flattenProperty(DescendantInfo.properties, "!javascript"); +@@Legacy.flattenProperty(DescendantInfo.properties); @@clientName(HierarchySettingsList.`@nextLink`, "NextLink"); @@ -29,7 +29,7 @@ using Rest; @@Legacy.flattenProperty(CreateOrUpdateSettingsRequest.properties); #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." -@@Legacy.flattenProperty(EntityInfo.properties, "!javascript"); +@@Legacy.flattenProperty(EntityInfo.properties); #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." @@Legacy.flattenProperty(OperationResults.properties); From 0ec2f3084b5877f2b1efcc70afc630f90b6546af Mon Sep 17 00:00:00 2001 From: olrakovs <110152609+olrakovs@users.noreply.github.com> Date: Mon, 5 Jan 2026 12:14:47 +0200 Subject: [PATCH 107/117] Adding ADA fields (#38832) * Adding ada fields * resolve comments * resolving model valisation * resolve model validation * Adding an example for fulfillmentTiming * Adding value example * prettier fix --- .../ProductGet_GetByBillingAccount.json | 163 +++++++-- .../ProductGet_GetByBillingProfile.json | 163 +++++++-- .../ProductGet_GetBySubscription.json | 163 +++++++-- .../2025-05-01/ProductGet_GetByTenant.json | 163 +++++++-- .../Microsoft.Products/Products/product.tsp | 203 +++++++++++ .../ProductGet_GetByBillingAccount.json | 163 +++++++-- .../ProductGet_GetByBillingProfile.json | 163 +++++++-- .../ProductGet_GetBySubscription.json | 163 +++++++-- .../examples/ProductGet_GetByTenant.json | 163 +++++++-- .../Products/stable/2025-05-01/openapi.json | 331 ++++++++++++++++++ 10 files changed, 1566 insertions(+), 272 deletions(-) diff --git a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetByBillingAccount.json b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetByBillingAccount.json index 6b5236aca36b..aa6df6f4cc39 100644 --- a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetByBillingAccount.json +++ b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetByBillingAccount.json @@ -11,7 +11,7 @@ "responses": { "200": { "body": { - "displayName": "CloudGuard Security Scanner", + "displayName": "Example Security Scanner", "popularity": 4.8, "categoryIds": [ "SecurityAndIdentity" @@ -19,7 +19,7 @@ "industryIds": [ "Technology" ], - "publisherId": "cloudguard-security", + "publisherId": "example-security", "azureBenefit": "Eligible", "badges": [ "PreferredSolution", @@ -38,17 +38,17 @@ "pricingTypes": [ "Payg" ], - "publisherDisplayName": "CloudGuard Security, Inc.", - "longSummary": "CloudGuard Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", + "publisherDisplayName": "Example Security, Inc.", + "longSummary": "Example Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", "summary": "Enterprise cloud security scanner with continuous monitoring, compliance checking, and automated remediation guidance", "videos": [ { - "caption": "CloudGuard Security Scanner Overview", - "uri": "https://www.youtube.com/watch?v=cloudguard-demo", + "caption": "Example Security Scanner Overview", + "uri": "https://www.youtube.com/watch?v=example-demo", "videoPurpose": "trailer", "previewImage": { "caption": "Product Overview", - "uri": "https://www.cloudguard.com/media/preview-image.png", + "uri": "https://www.example.com/media/preview-image.png", "imagePurpose": "preview" } } @@ -59,7 +59,7 @@ "items": [ { "id": "dashboard", - "uri": "https://www.cloudguard.com/screenshots/dashboard.png", + "uri": "https://www.example.com/screenshots/dashboard.png", "type": "screenshot" } ] @@ -69,19 +69,20 @@ { "id": "documentation", "displayName": "Documentation", - "uri": "https://docs.cloudguard.com" + "uri": "https://docs.example.com" } ], "linkedAddIns": [ - "cloudguard-cli:latest" + "example-cli:latest" ], - "smallIconUri": "https://www.cloudguard.com/icons/small.png", - "description": "CloudGuard Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", + "smallIconUri": "https://www.example.com/icons/small.png", + "description": "Example Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", "ratingBuckets": [ "AboveFour" ], "ratingAverage": 4.8, "ratingCount": 245, + "hasAddOns": true, "plans": [ { "planId": "pro", @@ -128,7 +129,7 @@ { "id": "iso27001", "displayName": "ISO 27001 Certified", - "uri": "https://www.cloudguard.com/certifications/iso27001" + "uri": "https://www.example.com/certifications/iso27001" } ], "customerInstruction": "Contact support for enterprise deployment assistance", @@ -138,13 +139,13 @@ ], "hasRi": true, "skuType": "Standard", - "skuTitle": "CloudGuard Pro Scanner", + "skuTitle": "Example Pro Scanner", "location": "Global", "armRegionName": "global", "cloud": "Public", "locationType": "Global", "region": "Global", - "skuGroupId": "cloudguard-scanner-group", + "skuGroupId": "example-scanner-group", "zone": "Zone 1", "feature": "SecurityScanning", "serviceType": "SaaS", @@ -165,7 +166,7 @@ "numberOfCores": null, "ram": null, "vCpu": null, - "armSkuName": "cloudguard-pro", + "armSkuName": "example-pro", "accessTier": "Standard" }, "billingComponents": [ @@ -179,6 +180,88 @@ "discountPercentage": 20.0 } ], + "hasConsumptionComponents": true, + "isEndUserEligible": true, + "isAdminEligible": true, + "entraIdVersion": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "technicalRequirements": "Azure subscription with sufficient compute resources for security scanning workloads", + "faqUri": "https://support.example.com/faq/pro-plan", + "fulfillmentData": { + "fulfillmentType": "AdditionalProductsOnly", + "additionalProducts": [ + { + "productSkuId": "product/sku", + "defaultKeyActivationCount": 300 + } + ], + "attributes": { + "fulfillmentTiming": "CapacityDependent", + "fulfillmentDelayMitigation": "WaitList" + } + }, + "benefits": [ + { + "benefitType": "EarlyAccess", + "basePlanId": "productId/planid", + "billingPlan": "monthly", + "termDuration": "P1M" + } + ], + "constraintsData": { + "seatConstraints": [ + { + "type": "Quantity", + "minSeats": 1, + "maxSeats": 1000 + } + ], + "assetOwnershipLimits": [ + { + "type": "LifetimeCount", + "minAssets": 0, + "maxAssets": 1 + } + ], + "prerequisiteSkus": { + "mustHaveAll": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "mustHaveAny": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "seatConstraints": [ + { + "minPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + }, + { + "maxPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + } + ] + } + }, + "meterTypeDescriptions": [ + { + "key": "1 Consumption Unit - Outbound", + "value": { + "meterType": "1 Consumption Unit - Outbound", + "unitOfMeasure": "Per call" + } + } + ], + "usageUnit": "program pass", + "skuName": "Example Pro Scanner", "availabilities": [ { "id": "pro-payg", @@ -189,7 +272,7 @@ "meter": { "meterId": "scan-meter-001", "partNumber": "CGSCAN-PRO-001", - "consumptionResourceId": "cloudguard-scanner-pro", + "consumptionResourceId": "example-scanner-pro", "price": { "currencyCode": "USD", "isPiRequired": true, @@ -243,7 +326,19 @@ "value": "30 days" } ], - "renewToTermBillingPlan": "pro-monthly-renewed" + "renewToTermBillingPlan": "pro-monthly-renewed", + "lifecyclePolicy": { + "graceDuration": "P7D", + "inactiveDuration": "P30D", + "lockoutDuration": "P90D" + }, + "productCode": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "state": "Active", + "actions": [ + "Purchase", + "Renew", + "Cancel" + ] } ], "hasFreeTrials": true, @@ -265,7 +360,7 @@ ], "serviceFamily": "Security", "service": "SecurityServices", - "productId": "cloudguard-scanner-2025", + "productId": "example-scanner-2025", "hasMarketplaceFootprint": true, "attributes": [ { @@ -275,33 +370,33 @@ ], "language": "en", "hasStandardContractAmendments": true, - "offerId": "cloudguard-security-scanner", + "offerId": "example-security-scanner", "standardContractAmendmentsRevisionId": "2025-05-01-rev1", - "universalAmendmentUrl": "https://www.cloudguard.com/legal/universal-amendment", + "universalAmendmentUrl": "https://www.example.com/legal/universal-amendment", "isPrivate": false, "isStopSell": false, - "legalTermsUri": "https://www.cloudguard.com/legal/terms", - "cspLegalTermsUri": "https://www.cloudguard.com/legal/csp-terms", + "legalTermsUri": "https://www.example.com/legal/terms", + "cspLegalTermsUri": "https://www.example.com/legal/csp-terms", "legalTermsType": "EA", - "privacyPolicyUri": "https://www.cloudguard.com/legal/privacy", - "supportUri": "https://support.cloudguard.com", - "uiDefinitionUri": "https://www.cloudguard.com/setup/ui-definition", - "pricingDetailsUri": "https://www.cloudguard.com/pricing", - "mediumIconUri": "https://www.cloudguard.com/icons/medium.png", - "largeIconUri": "https://www.cloudguard.com/icons/large.png", - "wideIconUri": "https://www.cloudguard.com/icons/wide.png", + "privacyPolicyUri": "https://www.example.com/legal/privacy", + "supportUri": "https://support.example.com", + "uiDefinitionUri": "https://www.example.com/setup/ui-definition", + "pricingDetailsUri": "https://www.example.com/pricing", + "mediumIconUri": "https://www.example.com/icons/medium.png", + "largeIconUri": "https://www.example.com/icons/large.png", + "wideIconUri": "https://www.example.com/icons/wide.png", "isReseller": false, "productOwnershipSellingMotion": "3PPAgency", "disableSendEmailOnPurchase": false, "isCoreVm": false, "stopSellInfo": null, "marketingMaterial": { - "path": "https://www.cloudguard.com/resources", - "learnUri": "https://learn.cloudguard.com" + "path": "https://www.example.com/resources", + "learnUri": "https://learn.example.com" }, "screenshotUris": [ - "https://www.cloudguard.com/screenshots/dashboard.png", - "https://www.cloudguard.com/screenshots/reports.png" + "https://www.example.com/screenshots/dashboard.png", + "https://www.example.com/screenshots/reports.png" ], "hasRiPlans": true, "artifacts": [ diff --git a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetByBillingProfile.json b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetByBillingProfile.json index 4c4b4261d842..f230c525df59 100644 --- a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetByBillingProfile.json +++ b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetByBillingProfile.json @@ -12,7 +12,7 @@ "responses": { "200": { "body": { - "displayName": "CloudGuard Security Scanner", + "displayName": "Example Security Scanner", "popularity": 4.8, "categoryIds": [ "SecurityAndIdentity" @@ -20,7 +20,7 @@ "industryIds": [ "Technology" ], - "publisherId": "cloudguard-security", + "publisherId": "example-security", "azureBenefit": "Eligible", "badges": [ "PreferredSolution", @@ -39,17 +39,17 @@ "pricingTypes": [ "Payg" ], - "publisherDisplayName": "CloudGuard Security, Inc.", - "longSummary": "CloudGuard Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", + "publisherDisplayName": "Example Security, Inc.", + "longSummary": "Example Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", "summary": "Enterprise cloud security scanner with continuous monitoring, compliance checking, and automated remediation guidance", "videos": [ { - "caption": "CloudGuard Security Scanner Overview", - "uri": "https://www.youtube.com/watch?v=cloudguard-demo", + "caption": "Example Security Scanner Overview", + "uri": "https://www.youtube.com/watch?v=example-demo", "videoPurpose": "trailer", "previewImage": { "caption": "Product Overview", - "uri": "https://www.cloudguard.com/media/preview-image.png", + "uri": "https://www.example.com/media/preview-image.png", "imagePurpose": "preview" } } @@ -60,7 +60,7 @@ "items": [ { "id": "dashboard", - "uri": "https://www.cloudguard.com/screenshots/dashboard.png", + "uri": "https://www.example.com/screenshots/dashboard.png", "type": "screenshot" } ] @@ -70,19 +70,20 @@ { "id": "documentation", "displayName": "Documentation", - "uri": "https://docs.cloudguard.com" + "uri": "https://docs.example.com" } ], "linkedAddIns": [ - "cloudguard-cli:latest" + "example-cli:latest" ], - "smallIconUri": "https://www.cloudguard.com/icons/small.png", - "description": "CloudGuard Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", + "smallIconUri": "https://www.example.com/icons/small.png", + "description": "Example Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", "ratingBuckets": [ "AboveFour" ], "ratingAverage": 4.8, "ratingCount": 245, + "hasAddOns": true, "plans": [ { "planId": "pro", @@ -129,7 +130,7 @@ { "id": "iso27001", "displayName": "ISO 27001 Certified", - "uri": "https://www.cloudguard.com/certifications/iso27001" + "uri": "https://www.example.com/certifications/iso27001" } ], "customerInstruction": "Contact support for enterprise deployment assistance", @@ -139,13 +140,13 @@ ], "hasRi": true, "skuType": "Standard", - "skuTitle": "CloudGuard Pro Scanner", + "skuTitle": "Example Pro Scanner", "location": "Global", "armRegionName": "global", "cloud": "Public", "locationType": "Global", "region": "Global", - "skuGroupId": "cloudguard-scanner-group", + "skuGroupId": "example-scanner-group", "zone": "Zone 1", "feature": "SecurityScanning", "serviceType": "SaaS", @@ -166,7 +167,7 @@ "numberOfCores": null, "ram": null, "vCpu": null, - "armSkuName": "cloudguard-pro", + "armSkuName": "example-pro", "accessTier": "Standard" }, "billingComponents": [ @@ -180,6 +181,88 @@ "discountPercentage": 20.0 } ], + "hasConsumptionComponents": true, + "isEndUserEligible": true, + "isAdminEligible": true, + "entraIdVersion": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "technicalRequirements": "Azure subscription with sufficient compute resources for security scanning workloads", + "faqUri": "https://support.example.com/faq/pro-plan", + "fulfillmentData": { + "fulfillmentType": "AdditionalProductsOnly", + "additionalProducts": [ + { + "productSkuId": "product/sku", + "defaultKeyActivationCount": 300 + } + ], + "attributes": { + "fulfillmentTiming": "CapacityDependent", + "fulfillmentDelayMitigation": "WaitList" + } + }, + "benefits": [ + { + "benefitType": "EarlyAccess", + "basePlanId": "productId/planid", + "billingPlan": "monthly", + "termDuration": "P1M" + } + ], + "constraintsData": { + "seatConstraints": [ + { + "type": "Quantity", + "minSeats": 1, + "maxSeats": 1000 + } + ], + "assetOwnershipLimits": [ + { + "type": "LifetimeCount", + "minAssets": 0, + "maxAssets": 1 + } + ], + "prerequisiteSkus": { + "mustHaveAll": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "mustHaveAny": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "seatConstraints": [ + { + "minPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + }, + { + "maxPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + } + ] + } + }, + "meterTypeDescriptions": [ + { + "key": "1 Consumption Unit - Outbound", + "value": { + "meterType": "1 Consumption Unit - Outbound", + "unitOfMeasure": "Per call" + } + } + ], + "usageUnit": "program pass", + "skuName": "Example Pro Scanner", "availabilities": [ { "id": "pro-payg", @@ -190,7 +273,7 @@ "meter": { "meterId": "scan-meter-001", "partNumber": "CGSCAN-PRO-001", - "consumptionResourceId": "cloudguard-scanner-pro", + "consumptionResourceId": "example-scanner-pro", "price": { "currencyCode": "USD", "isPiRequired": true, @@ -244,7 +327,19 @@ "value": "30 days" } ], - "renewToTermBillingPlan": "pro-monthly-renewed" + "renewToTermBillingPlan": "pro-monthly-renewed", + "lifecyclePolicy": { + "graceDuration": "P7D", + "inactiveDuration": "P30D", + "lockoutDuration": "P90D" + }, + "productCode": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "state": "Active", + "actions": [ + "Purchase", + "Renew", + "Cancel" + ] } ], "hasFreeTrials": true, @@ -266,7 +361,7 @@ ], "serviceFamily": "Security", "service": "SecurityServices", - "productId": "cloudguard-scanner-2025", + "productId": "example-scanner-2025", "hasMarketplaceFootprint": true, "attributes": [ { @@ -276,33 +371,33 @@ ], "language": "en", "hasStandardContractAmendments": true, - "offerId": "cloudguard-security-scanner", + "offerId": "example-security-scanner", "standardContractAmendmentsRevisionId": "2025-05-01-rev1", - "universalAmendmentUrl": "https://www.cloudguard.com/legal/universal-amendment", + "universalAmendmentUrl": "https://www.example.com/legal/universal-amendment", "isPrivate": false, "isStopSell": false, - "legalTermsUri": "https://www.cloudguard.com/legal/terms", - "cspLegalTermsUri": "https://www.cloudguard.com/legal/csp-terms", + "legalTermsUri": "https://www.example.com/legal/terms", + "cspLegalTermsUri": "https://www.example.com/legal/csp-terms", "legalTermsType": "EA", - "privacyPolicyUri": "https://www.cloudguard.com/legal/privacy", - "supportUri": "https://support.cloudguard.com", - "uiDefinitionUri": "https://www.cloudguard.com/setup/ui-definition", - "pricingDetailsUri": "https://www.cloudguard.com/pricing", - "mediumIconUri": "https://www.cloudguard.com/icons/medium.png", - "largeIconUri": "https://www.cloudguard.com/icons/large.png", - "wideIconUri": "https://www.cloudguard.com/icons/wide.png", + "privacyPolicyUri": "https://www.example.com/legal/privacy", + "supportUri": "https://support.example.com", + "uiDefinitionUri": "https://www.example.com/setup/ui-definition", + "pricingDetailsUri": "https://www.example.com/pricing", + "mediumIconUri": "https://www.example.com/icons/medium.png", + "largeIconUri": "https://www.example.com/icons/large.png", + "wideIconUri": "https://www.example.com/icons/wide.png", "isReseller": false, "productOwnershipSellingMotion": "3PPAgency", "disableSendEmailOnPurchase": false, "isCoreVm": false, "stopSellInfo": null, "marketingMaterial": { - "path": "https://www.cloudguard.com/resources", - "learnUri": "https://learn.cloudguard.com" + "path": "https://www.example.com/resources", + "learnUri": "https://learn.example.com" }, "screenshotUris": [ - "https://www.cloudguard.com/screenshots/dashboard.png", - "https://www.cloudguard.com/screenshots/reports.png" + "https://www.example.com/screenshots/dashboard.png", + "https://www.example.com/screenshots/reports.png" ], "hasRiPlans": true, "artifacts": [ diff --git a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetBySubscription.json b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetBySubscription.json index 9ccd2f9abf3c..c296c97b2a3a 100644 --- a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetBySubscription.json +++ b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetBySubscription.json @@ -11,7 +11,7 @@ "responses": { "200": { "body": { - "displayName": "CloudGuard Security Scanner", + "displayName": "Example Security Scanner", "popularity": 4.8, "categoryIds": [ "SecurityAndIdentity" @@ -19,7 +19,7 @@ "industryIds": [ "Technology" ], - "publisherId": "cloudguard-security", + "publisherId": "example-security", "azureBenefit": "Eligible", "badges": [ "PreferredSolution", @@ -38,17 +38,17 @@ "pricingTypes": [ "Payg" ], - "publisherDisplayName": "CloudGuard Security, Inc.", - "longSummary": "CloudGuard Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", + "publisherDisplayName": "Example Security, Inc.", + "longSummary": "Example Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", "summary": "Enterprise cloud security scanner with continuous monitoring, compliance checking, and automated remediation guidance", "videos": [ { - "caption": "CloudGuard Security Scanner Overview", - "uri": "https://www.youtube.com/watch?v=cloudguard-demo", + "caption": "Example Security Scanner Overview", + "uri": "https://www.youtube.com/watch?v=example-demo", "videoPurpose": "trailer", "previewImage": { "caption": "Product Overview", - "uri": "https://www.cloudguard.com/media/preview-image.png", + "uri": "https://www.example.com/media/preview-image.png", "imagePurpose": "preview" } } @@ -59,7 +59,7 @@ "items": [ { "id": "dashboard", - "uri": "https://www.cloudguard.com/screenshots/dashboard.png", + "uri": "https://www.example.com/screenshots/dashboard.png", "type": "screenshot" } ] @@ -69,19 +69,20 @@ { "id": "documentation", "displayName": "Documentation", - "uri": "https://docs.cloudguard.com" + "uri": "https://docs.example.com" } ], "linkedAddIns": [ - "cloudguard-cli:latest" + "example-cli:latest" ], - "smallIconUri": "https://www.cloudguard.com/icons/small.png", - "description": "CloudGuard Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", + "smallIconUri": "https://www.example.com/icons/small.png", + "description": "Example Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", "ratingBuckets": [ "AboveFour" ], "ratingAverage": 4.8, "ratingCount": 245, + "hasAddOns": true, "plans": [ { "planId": "pro", @@ -128,7 +129,7 @@ { "id": "iso27001", "displayName": "ISO 27001 Certified", - "uri": "https://www.cloudguard.com/certifications/iso27001" + "uri": "https://www.example.com/certifications/iso27001" } ], "customerInstruction": "Contact support for enterprise deployment assistance", @@ -138,13 +139,13 @@ ], "hasRi": true, "skuType": "Standard", - "skuTitle": "CloudGuard Pro Scanner", + "skuTitle": "Example Pro Scanner", "location": "Global", "armRegionName": "global", "cloud": "Public", "locationType": "Global", "region": "Global", - "skuGroupId": "cloudguard-scanner-group", + "skuGroupId": "example-scanner-group", "zone": "Zone 1", "feature": "SecurityScanning", "serviceType": "SaaS", @@ -165,7 +166,7 @@ "numberOfCores": null, "ram": null, "vCpu": null, - "armSkuName": "cloudguard-pro", + "armSkuName": "example-pro", "accessTier": "Standard" }, "billingComponents": [ @@ -179,6 +180,88 @@ "discountPercentage": 20.0 } ], + "hasConsumptionComponents": true, + "isEndUserEligible": true, + "isAdminEligible": true, + "entraIdVersion": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "technicalRequirements": "Azure subscription with sufficient compute resources for security scanning workloads", + "faqUri": "https://support.example.com/faq/pro-plan", + "fulfillmentData": { + "fulfillmentType": "AdditionalProductsOnly", + "additionalProducts": [ + { + "productSkuId": "product/sku", + "defaultKeyActivationCount": 300 + } + ], + "attributes": { + "fulfillmentTiming": "CapacityDependent", + "fulfillmentDelayMitigation": "WaitList" + } + }, + "benefits": [ + { + "benefitType": "EarlyAccess", + "basePlanId": "productId/planid", + "billingPlan": "monthly", + "termDuration": "P1M" + } + ], + "constraintsData": { + "seatConstraints": [ + { + "type": "Quantity", + "minSeats": 1, + "maxSeats": 1000 + } + ], + "assetOwnershipLimits": [ + { + "type": "LifetimeCount", + "minAssets": 0, + "maxAssets": 1 + } + ], + "prerequisiteSkus": { + "mustHaveAll": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "mustHaveAny": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "seatConstraints": [ + { + "minPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + }, + { + "maxPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + } + ] + } + }, + "meterTypeDescriptions": [ + { + "key": "1 Consumption Unit - Outbound", + "value": { + "meterType": "1 Consumption Unit - Outbound", + "unitOfMeasure": "Per call" + } + } + ], + "usageUnit": "program pass", + "skuName": "Example Pro Scanner", "availabilities": [ { "id": "pro-payg", @@ -189,7 +272,7 @@ "meter": { "meterId": "scan-meter-001", "partNumber": "CGSCAN-PRO-001", - "consumptionResourceId": "cloudguard-scanner-pro", + "consumptionResourceId": "example-scanner-pro", "price": { "currencyCode": "USD", "isPiRequired": true, @@ -243,7 +326,19 @@ "value": "30 days" } ], - "renewToTermBillingPlan": "pro-monthly-renewed" + "renewToTermBillingPlan": "pro-monthly-renewed", + "lifecyclePolicy": { + "graceDuration": "P7D", + "inactiveDuration": "P30D", + "lockoutDuration": "P90D" + }, + "productCode": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "state": "Active", + "actions": [ + "Purchase", + "Renew", + "Cancel" + ] } ], "hasFreeTrials": true, @@ -265,7 +360,7 @@ ], "serviceFamily": "Security", "service": "SecurityServices", - "productId": "cloudguard-scanner-2025", + "productId": "example-scanner-2025", "hasMarketplaceFootprint": true, "attributes": [ { @@ -275,33 +370,33 @@ ], "language": "en", "hasStandardContractAmendments": true, - "offerId": "cloudguard-security-scanner", + "offerId": "example-security-scanner", "standardContractAmendmentsRevisionId": "2025-05-01-rev1", - "universalAmendmentUrl": "https://www.cloudguard.com/legal/universal-amendment", + "universalAmendmentUrl": "https://www.example.com/legal/universal-amendment", "isPrivate": false, "isStopSell": false, - "legalTermsUri": "https://www.cloudguard.com/legal/terms", - "cspLegalTermsUri": "https://www.cloudguard.com/legal/csp-terms", + "legalTermsUri": "https://www.example.com/legal/terms", + "cspLegalTermsUri": "https://www.example.com/legal/csp-terms", "legalTermsType": "EA", - "privacyPolicyUri": "https://www.cloudguard.com/legal/privacy", - "supportUri": "https://support.cloudguard.com", - "uiDefinitionUri": "https://www.cloudguard.com/setup/ui-definition", - "pricingDetailsUri": "https://www.cloudguard.com/pricing", - "mediumIconUri": "https://www.cloudguard.com/icons/medium.png", - "largeIconUri": "https://www.cloudguard.com/icons/large.png", - "wideIconUri": "https://www.cloudguard.com/icons/wide.png", + "privacyPolicyUri": "https://www.example.com/legal/privacy", + "supportUri": "https://support.example.com", + "uiDefinitionUri": "https://www.example.com/setup/ui-definition", + "pricingDetailsUri": "https://www.example.com/pricing", + "mediumIconUri": "https://www.example.com/icons/medium.png", + "largeIconUri": "https://www.example.com/icons/large.png", + "wideIconUri": "https://www.example.com/icons/wide.png", "isReseller": false, "productOwnershipSellingMotion": "3PPAgency", "disableSendEmailOnPurchase": false, "isCoreVm": false, "stopSellInfo": null, "marketingMaterial": { - "path": "https://www.cloudguard.com/resources", - "learnUri": "https://learn.cloudguard.com" + "path": "https://www.example.com/resources", + "learnUri": "https://learn.example.com" }, "screenshotUris": [ - "https://www.cloudguard.com/screenshots/dashboard.png", - "https://www.cloudguard.com/screenshots/reports.png" + "https://www.example.com/screenshots/dashboard.png", + "https://www.example.com/screenshots/reports.png" ], "hasRiPlans": true, "artifacts": [ diff --git a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetByTenant.json b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetByTenant.json index bcd7c49649ec..718b84b29502 100644 --- a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetByTenant.json +++ b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/examples/2025-05-01/ProductGet_GetByTenant.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "displayName": "CloudGuard Security Scanner", + "displayName": "Example Security Scanner", "popularity": 4.8, "categoryIds": [ "SecurityAndIdentity" @@ -18,7 +18,7 @@ "industryIds": [ "Technology" ], - "publisherId": "cloudguard-security", + "publisherId": "example-security", "azureBenefit": "Eligible", "badges": [ "PreferredSolution", @@ -37,17 +37,17 @@ "pricingTypes": [ "Payg" ], - "publisherDisplayName": "CloudGuard Security, Inc.", - "longSummary": "CloudGuard Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", + "publisherDisplayName": "Example Security, Inc.", + "longSummary": "Example Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", "summary": "Enterprise cloud security scanner with continuous monitoring, compliance checking, and automated remediation guidance", "videos": [ { - "caption": "CloudGuard Security Scanner Overview", - "uri": "https://www.youtube.com/watch?v=cloudguard-demo", + "caption": "Example Security Scanner Overview", + "uri": "https://www.youtube.com/watch?v=example-demo", "videoPurpose": "trailer", "previewImage": { "caption": "Product Overview", - "uri": "https://www.cloudguard.com/media/preview-image.png", + "uri": "https://www.example.com/media/preview-image.png", "imagePurpose": "preview" } } @@ -58,7 +58,7 @@ "items": [ { "id": "dashboard", - "uri": "https://www.cloudguard.com/screenshots/dashboard.png", + "uri": "https://www.example.com/screenshots/dashboard.png", "type": "screenshot" } ] @@ -68,19 +68,20 @@ { "id": "documentation", "displayName": "Documentation", - "uri": "https://docs.cloudguard.com" + "uri": "https://docs.example.com" } ], "linkedAddIns": [ - "cloudguard-cli:latest" + "example-cli:latest" ], - "smallIconUri": "https://www.cloudguard.com/icons/small.png", - "description": "CloudGuard Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", + "smallIconUri": "https://www.example.com/icons/small.png", + "description": "Example Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", "ratingBuckets": [ "AboveFour" ], "ratingAverage": 4.8, "ratingCount": 245, + "hasAddOns": true, "plans": [ { "planId": "pro", @@ -127,7 +128,7 @@ { "id": "iso27001", "displayName": "ISO 27001 Certified", - "uri": "https://www.cloudguard.com/certifications/iso27001" + "uri": "https://www.example.com/certifications/iso27001" } ], "customerInstruction": "Contact support for enterprise deployment assistance", @@ -137,13 +138,13 @@ ], "hasRi": true, "skuType": "Standard", - "skuTitle": "CloudGuard Pro Scanner", + "skuTitle": "Example Pro Scanner", "location": "Global", "armRegionName": "global", "cloud": "Public", "locationType": "Global", "region": "Global", - "skuGroupId": "cloudguard-scanner-group", + "skuGroupId": "example-scanner-group", "zone": "Zone 1", "feature": "SecurityScanning", "serviceType": "SaaS", @@ -164,7 +165,7 @@ "numberOfCores": null, "ram": null, "vCpu": null, - "armSkuName": "cloudguard-pro", + "armSkuName": "example-pro", "accessTier": "Standard" }, "billingComponents": [ @@ -178,6 +179,88 @@ "discountPercentage": 20.0 } ], + "hasConsumptionComponents": true, + "isEndUserEligible": true, + "isAdminEligible": true, + "entraIdVersion": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "technicalRequirements": "Azure subscription with sufficient compute resources for security scanning workloads", + "faqUri": "https://support.example.com/faq/pro-plan", + "fulfillmentData": { + "fulfillmentType": "AdditionalProductsOnly", + "additionalProducts": [ + { + "productSkuId": "product/sku", + "defaultKeyActivationCount": 300 + } + ], + "attributes": { + "fulfillmentTiming": "CapacityDependent", + "fulfillmentDelayMitigation": "WaitList" + } + }, + "benefits": [ + { + "benefitType": "EarlyAccess", + "basePlanId": "productId/planid", + "billingPlan": "monthly", + "termDuration": "P1M" + } + ], + "constraintsData": { + "seatConstraints": [ + { + "type": "Quantity", + "minSeats": 1, + "maxSeats": 1000 + } + ], + "assetOwnershipLimits": [ + { + "type": "LifetimeCount", + "minAssets": 0, + "maxAssets": 1 + } + ], + "prerequisiteSkus": { + "mustHaveAll": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "mustHaveAny": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "seatConstraints": [ + { + "minPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + }, + { + "maxPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + } + ] + } + }, + "meterTypeDescriptions": [ + { + "key": "1 Consumption Unit - Outbound", + "value": { + "meterType": "1 Consumption Unit - Outbound", + "unitOfMeasure": "Per call" + } + } + ], + "usageUnit": "program pass", + "skuName": "Example Pro Scanner", "availabilities": [ { "id": "pro-payg", @@ -188,7 +271,7 @@ "meter": { "meterId": "scan-meter-001", "partNumber": "CGSCAN-PRO-001", - "consumptionResourceId": "cloudguard-scanner-pro", + "consumptionResourceId": "example-scanner-pro", "price": { "currencyCode": "USD", "isPiRequired": true, @@ -242,7 +325,19 @@ "value": "30 days" } ], - "renewToTermBillingPlan": "pro-monthly-renewed" + "renewToTermBillingPlan": "pro-monthly-renewed", + "lifecyclePolicy": { + "graceDuration": "P7D", + "inactiveDuration": "P30D", + "lockoutDuration": "P90D" + }, + "productCode": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "state": "Active", + "actions": [ + "Purchase", + "Renew", + "Cancel" + ] } ], "hasFreeTrials": true, @@ -264,7 +359,7 @@ ], "serviceFamily": "Security", "service": "SecurityServices", - "productId": "cloudguard-scanner-2025", + "productId": "example-scanner-2025", "hasMarketplaceFootprint": true, "attributes": [ { @@ -274,33 +369,33 @@ ], "language": "en", "hasStandardContractAmendments": true, - "offerId": "cloudguard-security-scanner", + "offerId": "example-security-scanner", "standardContractAmendmentsRevisionId": "2025-05-01-rev1", - "universalAmendmentUrl": "https://www.cloudguard.com/legal/universal-amendment", + "universalAmendmentUrl": "https://www.example.com/legal/universal-amendment", "isPrivate": false, "isStopSell": false, - "legalTermsUri": "https://www.cloudguard.com/legal/terms", - "cspLegalTermsUri": "https://www.cloudguard.com/legal/csp-terms", + "legalTermsUri": "https://www.example.com/legal/terms", + "cspLegalTermsUri": "https://www.example.com/legal/csp-terms", "legalTermsType": "EA", - "privacyPolicyUri": "https://www.cloudguard.com/legal/privacy", - "supportUri": "https://support.cloudguard.com", - "uiDefinitionUri": "https://www.cloudguard.com/setup/ui-definition", - "pricingDetailsUri": "https://www.cloudguard.com/pricing", - "mediumIconUri": "https://www.cloudguard.com/icons/medium.png", - "largeIconUri": "https://www.cloudguard.com/icons/large.png", - "wideIconUri": "https://www.cloudguard.com/icons/wide.png", + "privacyPolicyUri": "https://www.example.com/legal/privacy", + "supportUri": "https://support.example.com", + "uiDefinitionUri": "https://www.example.com/setup/ui-definition", + "pricingDetailsUri": "https://www.example.com/pricing", + "mediumIconUri": "https://www.example.com/icons/medium.png", + "largeIconUri": "https://www.example.com/icons/large.png", + "wideIconUri": "https://www.example.com/icons/wide.png", "isReseller": false, "productOwnershipSellingMotion": "3PPAgency", "disableSendEmailOnPurchase": false, "isCoreVm": false, "stopSellInfo": null, "marketingMaterial": { - "path": "https://www.cloudguard.com/resources", - "learnUri": "https://learn.cloudguard.com" + "path": "https://www.example.com/resources", + "learnUri": "https://learn.example.com" }, "screenshotUris": [ - "https://www.cloudguard.com/screenshots/dashboard.png", - "https://www.cloudguard.com/screenshots/reports.png" + "https://www.example.com/screenshots/dashboard.png", + "https://www.example.com/screenshots/reports.png" ], "hasRiPlans": true, "artifacts": [ diff --git a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/product.tsp b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/product.tsp index 25395b5fd6e3..a4f190dd6792 100644 --- a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/product.tsp +++ b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/product.tsp @@ -220,6 +220,9 @@ model ProductDetails { @doc("Full set of plan/SKU attributes") plans?: PlanDetails[]; + + @doc("Indicates that the SKU has add-ons") + hasAddOns?: boolean; } @doc("Returns a subset of Plan attributes") @@ -386,6 +389,44 @@ model PlanDetails { @doc("SKU price related properties.") @identifiers(#[]) offeringProperties?: OfferingProperties[]; + + @doc("Indicates if this SKU has consumption components") + hasConsumptionComponents?: boolean; + + @doc("Indicates if this SKU is available for end users") + isEndUserEligible?: boolean; + + @doc("Indicates if this SKU is available for admins") + isAdminEligible?: boolean; + + @doc("The entra id version for products that come with entra id support") + entraIdVersion?: string; + + @doc("Technical Requirements") + technicalRequirements?: string; + + @doc("The URI to the FAQ page") + faqUri?: string; + + @doc("Fulfillment instructions for this SKU") + fulfillmentData?: FulfillmentData; + + @doc("Provides promotion data") + @identifiers(#[]) + benefits?: Benefit[]; + + @doc("Contains constraint product properties to determine eligibility") + constraintsData?: ConstraintsData; + + @doc("Meter type descriptions") + @identifiers(#[]) + meterTypeDescriptions?: MeterTypeDescription[]; + + @doc("Usage unit") + usageUnit?: string; + + @doc("Sku name") + skuName?: string; } @doc("The SKU properties, contains some of the attributes for faster OData filter") @@ -613,6 +654,18 @@ model Term { @doc("Indicates if autorenew is enabled") isAutorenewable?: boolean; + + @doc("Defines the lifecycle management policy for the term") + lifecyclePolicy?: LifecyclePolicy; + + @doc("Product code for this term") + productCode?: string; + + @doc("Term state") + state?: string; + + @doc("Term Actions") + actions?: string[]; } @doc("Availability for a given plan") @@ -705,3 +758,153 @@ model Image { @doc("Image type") type?: string; } + +@doc("Contains fulfillment configuration and instructions") +model FulfillmentData { + @doc("Differentiates between fulfillment types") + fulfillmentType?: string; + + @doc("Fulfillment attributes") + attributes?: FulfillmentAttributes; + + @doc("Bundled products included defining additional product/SKU combinations") + @identifiers(#[]) + additionalProducts?: ProductFulfillmentConfig[]; +} + +@doc("Configuration for additional products bundled with early access pass SKUs") +model ProductFulfillmentConfig { + @doc("Product and SKU ID for bundled products included with the license") + productSkuId?: string; + + @doc("Quantity of the bundled product per license ") + defaultKeyActivationCount?: int32; +} + +@doc("Attributes that define fulfillment timing and delay handling") +model FulfillmentAttributes { + @doc("Timing configuration for product fulfillment") + fulfillmentTiming?: string; + + @doc("Mitigation explanation for delayed fulfillment") + fulfillmentDelayMitigation?: string; +} + +@doc("Benefit information for a plan") +model Benefit { + @doc("Benefit type") + benefitType?: string; + + @doc("Base plan ID") + basePlanId?: string; + + @doc("Billing plan") + billingPlan?: string; + + @doc("Term duration. Examples: 'P1M' (1 month), 'P30D' (30 days)") + termDuration?: string; +} + +@doc("Constraints data for a plan") +model ConstraintsData { + @doc("Seat constraint configurations defining minimum and maximum seat limits") + @identifiers(#[]) + seatConstraints?: MinMaxSeatsConstraint[]; + + @doc("Asset ownership limits") + @identifiers(#[]) + assetOwnershipLimits?: AssetOwnershipLimit[]; + + @doc("Lists eligible prerequisite SKUs") + prerequisiteSkus?: Prerequisites; +} + +@doc("Defines minimum and maximum seat limits for a specific constraint type") +model MinMaxSeatsConstraint { + @doc("Constraint type") + type?: string; + + @doc("Minimum seats") + minSeats?: int32; + + @doc("Maximum seats") + maxSeats?: int32; +} + +@doc("Minimum and maximum percentage seats constraint") +model MinMaxPercentageSeatsConstraint { + @doc("Constraint type") + type?: string; + + @doc("Minimum percent seats") + minPercentSeats?: float64; + + @doc("Maximum percent seats") + maxPercentSeats?: float64; +} + +@doc("Defines ownership restrictions and limits for SKU assets") +model AssetOwnershipLimit { + @doc("Limit type") + type?: string; + + @doc("Minimum number of assets") + minAssets?: int32; + + @doc("Maximum number of assets") + maxAssets?: int32; +} + +@doc("Defines prerequisite SKU requirements and seat constraints") +model Prerequisites { + @doc("Prerequisite sets where all specified SKUs must be owned") + @identifiers(#[]) + mustHaveAll?: PrerequisiteSet[]; + + @doc("Prerequisite sets where any one of the specified SKUs must be owned") + @identifiers(#[]) + mustHaveAny?: PrerequisiteSet[]; + + @doc("Percentage-based seat constraints for prerequisite SKUs") + @identifiers(#[]) + seatConstraints?: MinMaxPercentageSeatsConstraint[]; +} + +@doc("Prerequisite set") +model PrerequisiteSet { + @doc("Product ID") + productId?: string; + + @doc("SKU IDs") + skuIds?: string[]; +} + +@doc("Meter type description") +model MeterTypeDescription { + @doc("Meter Type Description key") + key?: string; + + @doc("Meter type description value") + value?: MeterTypeDescriptionValue; +} + +@doc("Meter type description value") +model MeterTypeDescriptionValue { + @doc("The type of meter") + meterType?: string; + + @doc("The unit of measurement for the meter") + unitOfMeasure?: string; +} + +@doc("Defines lifecycle management policy") +model LifecyclePolicy { + @doc("Grace period duration where customers retain access to their product. Examples: 'P1M' (1 month), 'P30D' (30 days), 'P0D' (0 days)") + graceDuration?: string; + + @doc("Inactive period duration") + inactiveDuration?: string; + + @doc("Lockout period duration") + lockoutDuration?: string; +} diff --git a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetByBillingAccount.json b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetByBillingAccount.json index 6b5236aca36b..aa6df6f4cc39 100644 --- a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetByBillingAccount.json +++ b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetByBillingAccount.json @@ -11,7 +11,7 @@ "responses": { "200": { "body": { - "displayName": "CloudGuard Security Scanner", + "displayName": "Example Security Scanner", "popularity": 4.8, "categoryIds": [ "SecurityAndIdentity" @@ -19,7 +19,7 @@ "industryIds": [ "Technology" ], - "publisherId": "cloudguard-security", + "publisherId": "example-security", "azureBenefit": "Eligible", "badges": [ "PreferredSolution", @@ -38,17 +38,17 @@ "pricingTypes": [ "Payg" ], - "publisherDisplayName": "CloudGuard Security, Inc.", - "longSummary": "CloudGuard Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", + "publisherDisplayName": "Example Security, Inc.", + "longSummary": "Example Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", "summary": "Enterprise cloud security scanner with continuous monitoring, compliance checking, and automated remediation guidance", "videos": [ { - "caption": "CloudGuard Security Scanner Overview", - "uri": "https://www.youtube.com/watch?v=cloudguard-demo", + "caption": "Example Security Scanner Overview", + "uri": "https://www.youtube.com/watch?v=example-demo", "videoPurpose": "trailer", "previewImage": { "caption": "Product Overview", - "uri": "https://www.cloudguard.com/media/preview-image.png", + "uri": "https://www.example.com/media/preview-image.png", "imagePurpose": "preview" } } @@ -59,7 +59,7 @@ "items": [ { "id": "dashboard", - "uri": "https://www.cloudguard.com/screenshots/dashboard.png", + "uri": "https://www.example.com/screenshots/dashboard.png", "type": "screenshot" } ] @@ -69,19 +69,20 @@ { "id": "documentation", "displayName": "Documentation", - "uri": "https://docs.cloudguard.com" + "uri": "https://docs.example.com" } ], "linkedAddIns": [ - "cloudguard-cli:latest" + "example-cli:latest" ], - "smallIconUri": "https://www.cloudguard.com/icons/small.png", - "description": "CloudGuard Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", + "smallIconUri": "https://www.example.com/icons/small.png", + "description": "Example Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", "ratingBuckets": [ "AboveFour" ], "ratingAverage": 4.8, "ratingCount": 245, + "hasAddOns": true, "plans": [ { "planId": "pro", @@ -128,7 +129,7 @@ { "id": "iso27001", "displayName": "ISO 27001 Certified", - "uri": "https://www.cloudguard.com/certifications/iso27001" + "uri": "https://www.example.com/certifications/iso27001" } ], "customerInstruction": "Contact support for enterprise deployment assistance", @@ -138,13 +139,13 @@ ], "hasRi": true, "skuType": "Standard", - "skuTitle": "CloudGuard Pro Scanner", + "skuTitle": "Example Pro Scanner", "location": "Global", "armRegionName": "global", "cloud": "Public", "locationType": "Global", "region": "Global", - "skuGroupId": "cloudguard-scanner-group", + "skuGroupId": "example-scanner-group", "zone": "Zone 1", "feature": "SecurityScanning", "serviceType": "SaaS", @@ -165,7 +166,7 @@ "numberOfCores": null, "ram": null, "vCpu": null, - "armSkuName": "cloudguard-pro", + "armSkuName": "example-pro", "accessTier": "Standard" }, "billingComponents": [ @@ -179,6 +180,88 @@ "discountPercentage": 20.0 } ], + "hasConsumptionComponents": true, + "isEndUserEligible": true, + "isAdminEligible": true, + "entraIdVersion": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "technicalRequirements": "Azure subscription with sufficient compute resources for security scanning workloads", + "faqUri": "https://support.example.com/faq/pro-plan", + "fulfillmentData": { + "fulfillmentType": "AdditionalProductsOnly", + "additionalProducts": [ + { + "productSkuId": "product/sku", + "defaultKeyActivationCount": 300 + } + ], + "attributes": { + "fulfillmentTiming": "CapacityDependent", + "fulfillmentDelayMitigation": "WaitList" + } + }, + "benefits": [ + { + "benefitType": "EarlyAccess", + "basePlanId": "productId/planid", + "billingPlan": "monthly", + "termDuration": "P1M" + } + ], + "constraintsData": { + "seatConstraints": [ + { + "type": "Quantity", + "minSeats": 1, + "maxSeats": 1000 + } + ], + "assetOwnershipLimits": [ + { + "type": "LifetimeCount", + "minAssets": 0, + "maxAssets": 1 + } + ], + "prerequisiteSkus": { + "mustHaveAll": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "mustHaveAny": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "seatConstraints": [ + { + "minPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + }, + { + "maxPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + } + ] + } + }, + "meterTypeDescriptions": [ + { + "key": "1 Consumption Unit - Outbound", + "value": { + "meterType": "1 Consumption Unit - Outbound", + "unitOfMeasure": "Per call" + } + } + ], + "usageUnit": "program pass", + "skuName": "Example Pro Scanner", "availabilities": [ { "id": "pro-payg", @@ -189,7 +272,7 @@ "meter": { "meterId": "scan-meter-001", "partNumber": "CGSCAN-PRO-001", - "consumptionResourceId": "cloudguard-scanner-pro", + "consumptionResourceId": "example-scanner-pro", "price": { "currencyCode": "USD", "isPiRequired": true, @@ -243,7 +326,19 @@ "value": "30 days" } ], - "renewToTermBillingPlan": "pro-monthly-renewed" + "renewToTermBillingPlan": "pro-monthly-renewed", + "lifecyclePolicy": { + "graceDuration": "P7D", + "inactiveDuration": "P30D", + "lockoutDuration": "P90D" + }, + "productCode": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "state": "Active", + "actions": [ + "Purchase", + "Renew", + "Cancel" + ] } ], "hasFreeTrials": true, @@ -265,7 +360,7 @@ ], "serviceFamily": "Security", "service": "SecurityServices", - "productId": "cloudguard-scanner-2025", + "productId": "example-scanner-2025", "hasMarketplaceFootprint": true, "attributes": [ { @@ -275,33 +370,33 @@ ], "language": "en", "hasStandardContractAmendments": true, - "offerId": "cloudguard-security-scanner", + "offerId": "example-security-scanner", "standardContractAmendmentsRevisionId": "2025-05-01-rev1", - "universalAmendmentUrl": "https://www.cloudguard.com/legal/universal-amendment", + "universalAmendmentUrl": "https://www.example.com/legal/universal-amendment", "isPrivate": false, "isStopSell": false, - "legalTermsUri": "https://www.cloudguard.com/legal/terms", - "cspLegalTermsUri": "https://www.cloudguard.com/legal/csp-terms", + "legalTermsUri": "https://www.example.com/legal/terms", + "cspLegalTermsUri": "https://www.example.com/legal/csp-terms", "legalTermsType": "EA", - "privacyPolicyUri": "https://www.cloudguard.com/legal/privacy", - "supportUri": "https://support.cloudguard.com", - "uiDefinitionUri": "https://www.cloudguard.com/setup/ui-definition", - "pricingDetailsUri": "https://www.cloudguard.com/pricing", - "mediumIconUri": "https://www.cloudguard.com/icons/medium.png", - "largeIconUri": "https://www.cloudguard.com/icons/large.png", - "wideIconUri": "https://www.cloudguard.com/icons/wide.png", + "privacyPolicyUri": "https://www.example.com/legal/privacy", + "supportUri": "https://support.example.com", + "uiDefinitionUri": "https://www.example.com/setup/ui-definition", + "pricingDetailsUri": "https://www.example.com/pricing", + "mediumIconUri": "https://www.example.com/icons/medium.png", + "largeIconUri": "https://www.example.com/icons/large.png", + "wideIconUri": "https://www.example.com/icons/wide.png", "isReseller": false, "productOwnershipSellingMotion": "3PPAgency", "disableSendEmailOnPurchase": false, "isCoreVm": false, "stopSellInfo": null, "marketingMaterial": { - "path": "https://www.cloudguard.com/resources", - "learnUri": "https://learn.cloudguard.com" + "path": "https://www.example.com/resources", + "learnUri": "https://learn.example.com" }, "screenshotUris": [ - "https://www.cloudguard.com/screenshots/dashboard.png", - "https://www.cloudguard.com/screenshots/reports.png" + "https://www.example.com/screenshots/dashboard.png", + "https://www.example.com/screenshots/reports.png" ], "hasRiPlans": true, "artifacts": [ diff --git a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetByBillingProfile.json b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetByBillingProfile.json index 4c4b4261d842..f230c525df59 100644 --- a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetByBillingProfile.json +++ b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetByBillingProfile.json @@ -12,7 +12,7 @@ "responses": { "200": { "body": { - "displayName": "CloudGuard Security Scanner", + "displayName": "Example Security Scanner", "popularity": 4.8, "categoryIds": [ "SecurityAndIdentity" @@ -20,7 +20,7 @@ "industryIds": [ "Technology" ], - "publisherId": "cloudguard-security", + "publisherId": "example-security", "azureBenefit": "Eligible", "badges": [ "PreferredSolution", @@ -39,17 +39,17 @@ "pricingTypes": [ "Payg" ], - "publisherDisplayName": "CloudGuard Security, Inc.", - "longSummary": "CloudGuard Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", + "publisherDisplayName": "Example Security, Inc.", + "longSummary": "Example Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", "summary": "Enterprise cloud security scanner with continuous monitoring, compliance checking, and automated remediation guidance", "videos": [ { - "caption": "CloudGuard Security Scanner Overview", - "uri": "https://www.youtube.com/watch?v=cloudguard-demo", + "caption": "Example Security Scanner Overview", + "uri": "https://www.youtube.com/watch?v=example-demo", "videoPurpose": "trailer", "previewImage": { "caption": "Product Overview", - "uri": "https://www.cloudguard.com/media/preview-image.png", + "uri": "https://www.example.com/media/preview-image.png", "imagePurpose": "preview" } } @@ -60,7 +60,7 @@ "items": [ { "id": "dashboard", - "uri": "https://www.cloudguard.com/screenshots/dashboard.png", + "uri": "https://www.example.com/screenshots/dashboard.png", "type": "screenshot" } ] @@ -70,19 +70,20 @@ { "id": "documentation", "displayName": "Documentation", - "uri": "https://docs.cloudguard.com" + "uri": "https://docs.example.com" } ], "linkedAddIns": [ - "cloudguard-cli:latest" + "example-cli:latest" ], - "smallIconUri": "https://www.cloudguard.com/icons/small.png", - "description": "CloudGuard Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", + "smallIconUri": "https://www.example.com/icons/small.png", + "description": "Example Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", "ratingBuckets": [ "AboveFour" ], "ratingAverage": 4.8, "ratingCount": 245, + "hasAddOns": true, "plans": [ { "planId": "pro", @@ -129,7 +130,7 @@ { "id": "iso27001", "displayName": "ISO 27001 Certified", - "uri": "https://www.cloudguard.com/certifications/iso27001" + "uri": "https://www.example.com/certifications/iso27001" } ], "customerInstruction": "Contact support for enterprise deployment assistance", @@ -139,13 +140,13 @@ ], "hasRi": true, "skuType": "Standard", - "skuTitle": "CloudGuard Pro Scanner", + "skuTitle": "Example Pro Scanner", "location": "Global", "armRegionName": "global", "cloud": "Public", "locationType": "Global", "region": "Global", - "skuGroupId": "cloudguard-scanner-group", + "skuGroupId": "example-scanner-group", "zone": "Zone 1", "feature": "SecurityScanning", "serviceType": "SaaS", @@ -166,7 +167,7 @@ "numberOfCores": null, "ram": null, "vCpu": null, - "armSkuName": "cloudguard-pro", + "armSkuName": "example-pro", "accessTier": "Standard" }, "billingComponents": [ @@ -180,6 +181,88 @@ "discountPercentage": 20.0 } ], + "hasConsumptionComponents": true, + "isEndUserEligible": true, + "isAdminEligible": true, + "entraIdVersion": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "technicalRequirements": "Azure subscription with sufficient compute resources for security scanning workloads", + "faqUri": "https://support.example.com/faq/pro-plan", + "fulfillmentData": { + "fulfillmentType": "AdditionalProductsOnly", + "additionalProducts": [ + { + "productSkuId": "product/sku", + "defaultKeyActivationCount": 300 + } + ], + "attributes": { + "fulfillmentTiming": "CapacityDependent", + "fulfillmentDelayMitigation": "WaitList" + } + }, + "benefits": [ + { + "benefitType": "EarlyAccess", + "basePlanId": "productId/planid", + "billingPlan": "monthly", + "termDuration": "P1M" + } + ], + "constraintsData": { + "seatConstraints": [ + { + "type": "Quantity", + "minSeats": 1, + "maxSeats": 1000 + } + ], + "assetOwnershipLimits": [ + { + "type": "LifetimeCount", + "minAssets": 0, + "maxAssets": 1 + } + ], + "prerequisiteSkus": { + "mustHaveAll": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "mustHaveAny": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "seatConstraints": [ + { + "minPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + }, + { + "maxPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + } + ] + } + }, + "meterTypeDescriptions": [ + { + "key": "1 Consumption Unit - Outbound", + "value": { + "meterType": "1 Consumption Unit - Outbound", + "unitOfMeasure": "Per call" + } + } + ], + "usageUnit": "program pass", + "skuName": "Example Pro Scanner", "availabilities": [ { "id": "pro-payg", @@ -190,7 +273,7 @@ "meter": { "meterId": "scan-meter-001", "partNumber": "CGSCAN-PRO-001", - "consumptionResourceId": "cloudguard-scanner-pro", + "consumptionResourceId": "example-scanner-pro", "price": { "currencyCode": "USD", "isPiRequired": true, @@ -244,7 +327,19 @@ "value": "30 days" } ], - "renewToTermBillingPlan": "pro-monthly-renewed" + "renewToTermBillingPlan": "pro-monthly-renewed", + "lifecyclePolicy": { + "graceDuration": "P7D", + "inactiveDuration": "P30D", + "lockoutDuration": "P90D" + }, + "productCode": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "state": "Active", + "actions": [ + "Purchase", + "Renew", + "Cancel" + ] } ], "hasFreeTrials": true, @@ -266,7 +361,7 @@ ], "serviceFamily": "Security", "service": "SecurityServices", - "productId": "cloudguard-scanner-2025", + "productId": "example-scanner-2025", "hasMarketplaceFootprint": true, "attributes": [ { @@ -276,33 +371,33 @@ ], "language": "en", "hasStandardContractAmendments": true, - "offerId": "cloudguard-security-scanner", + "offerId": "example-security-scanner", "standardContractAmendmentsRevisionId": "2025-05-01-rev1", - "universalAmendmentUrl": "https://www.cloudguard.com/legal/universal-amendment", + "universalAmendmentUrl": "https://www.example.com/legal/universal-amendment", "isPrivate": false, "isStopSell": false, - "legalTermsUri": "https://www.cloudguard.com/legal/terms", - "cspLegalTermsUri": "https://www.cloudguard.com/legal/csp-terms", + "legalTermsUri": "https://www.example.com/legal/terms", + "cspLegalTermsUri": "https://www.example.com/legal/csp-terms", "legalTermsType": "EA", - "privacyPolicyUri": "https://www.cloudguard.com/legal/privacy", - "supportUri": "https://support.cloudguard.com", - "uiDefinitionUri": "https://www.cloudguard.com/setup/ui-definition", - "pricingDetailsUri": "https://www.cloudguard.com/pricing", - "mediumIconUri": "https://www.cloudguard.com/icons/medium.png", - "largeIconUri": "https://www.cloudguard.com/icons/large.png", - "wideIconUri": "https://www.cloudguard.com/icons/wide.png", + "privacyPolicyUri": "https://www.example.com/legal/privacy", + "supportUri": "https://support.example.com", + "uiDefinitionUri": "https://www.example.com/setup/ui-definition", + "pricingDetailsUri": "https://www.example.com/pricing", + "mediumIconUri": "https://www.example.com/icons/medium.png", + "largeIconUri": "https://www.example.com/icons/large.png", + "wideIconUri": "https://www.example.com/icons/wide.png", "isReseller": false, "productOwnershipSellingMotion": "3PPAgency", "disableSendEmailOnPurchase": false, "isCoreVm": false, "stopSellInfo": null, "marketingMaterial": { - "path": "https://www.cloudguard.com/resources", - "learnUri": "https://learn.cloudguard.com" + "path": "https://www.example.com/resources", + "learnUri": "https://learn.example.com" }, "screenshotUris": [ - "https://www.cloudguard.com/screenshots/dashboard.png", - "https://www.cloudguard.com/screenshots/reports.png" + "https://www.example.com/screenshots/dashboard.png", + "https://www.example.com/screenshots/reports.png" ], "hasRiPlans": true, "artifacts": [ diff --git a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetBySubscription.json b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetBySubscription.json index 9ccd2f9abf3c..c296c97b2a3a 100644 --- a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetBySubscription.json +++ b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetBySubscription.json @@ -11,7 +11,7 @@ "responses": { "200": { "body": { - "displayName": "CloudGuard Security Scanner", + "displayName": "Example Security Scanner", "popularity": 4.8, "categoryIds": [ "SecurityAndIdentity" @@ -19,7 +19,7 @@ "industryIds": [ "Technology" ], - "publisherId": "cloudguard-security", + "publisherId": "example-security", "azureBenefit": "Eligible", "badges": [ "PreferredSolution", @@ -38,17 +38,17 @@ "pricingTypes": [ "Payg" ], - "publisherDisplayName": "CloudGuard Security, Inc.", - "longSummary": "CloudGuard Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", + "publisherDisplayName": "Example Security, Inc.", + "longSummary": "Example Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", "summary": "Enterprise cloud security scanner with continuous monitoring, compliance checking, and automated remediation guidance", "videos": [ { - "caption": "CloudGuard Security Scanner Overview", - "uri": "https://www.youtube.com/watch?v=cloudguard-demo", + "caption": "Example Security Scanner Overview", + "uri": "https://www.youtube.com/watch?v=example-demo", "videoPurpose": "trailer", "previewImage": { "caption": "Product Overview", - "uri": "https://www.cloudguard.com/media/preview-image.png", + "uri": "https://www.example.com/media/preview-image.png", "imagePurpose": "preview" } } @@ -59,7 +59,7 @@ "items": [ { "id": "dashboard", - "uri": "https://www.cloudguard.com/screenshots/dashboard.png", + "uri": "https://www.example.com/screenshots/dashboard.png", "type": "screenshot" } ] @@ -69,19 +69,20 @@ { "id": "documentation", "displayName": "Documentation", - "uri": "https://docs.cloudguard.com" + "uri": "https://docs.example.com" } ], "linkedAddIns": [ - "cloudguard-cli:latest" + "example-cli:latest" ], - "smallIconUri": "https://www.cloudguard.com/icons/small.png", - "description": "CloudGuard Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", + "smallIconUri": "https://www.example.com/icons/small.png", + "description": "Example Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", "ratingBuckets": [ "AboveFour" ], "ratingAverage": 4.8, "ratingCount": 245, + "hasAddOns": true, "plans": [ { "planId": "pro", @@ -128,7 +129,7 @@ { "id": "iso27001", "displayName": "ISO 27001 Certified", - "uri": "https://www.cloudguard.com/certifications/iso27001" + "uri": "https://www.example.com/certifications/iso27001" } ], "customerInstruction": "Contact support for enterprise deployment assistance", @@ -138,13 +139,13 @@ ], "hasRi": true, "skuType": "Standard", - "skuTitle": "CloudGuard Pro Scanner", + "skuTitle": "Example Pro Scanner", "location": "Global", "armRegionName": "global", "cloud": "Public", "locationType": "Global", "region": "Global", - "skuGroupId": "cloudguard-scanner-group", + "skuGroupId": "example-scanner-group", "zone": "Zone 1", "feature": "SecurityScanning", "serviceType": "SaaS", @@ -165,7 +166,7 @@ "numberOfCores": null, "ram": null, "vCpu": null, - "armSkuName": "cloudguard-pro", + "armSkuName": "example-pro", "accessTier": "Standard" }, "billingComponents": [ @@ -179,6 +180,88 @@ "discountPercentage": 20.0 } ], + "hasConsumptionComponents": true, + "isEndUserEligible": true, + "isAdminEligible": true, + "entraIdVersion": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "technicalRequirements": "Azure subscription with sufficient compute resources for security scanning workloads", + "faqUri": "https://support.example.com/faq/pro-plan", + "fulfillmentData": { + "fulfillmentType": "AdditionalProductsOnly", + "additionalProducts": [ + { + "productSkuId": "product/sku", + "defaultKeyActivationCount": 300 + } + ], + "attributes": { + "fulfillmentTiming": "CapacityDependent", + "fulfillmentDelayMitigation": "WaitList" + } + }, + "benefits": [ + { + "benefitType": "EarlyAccess", + "basePlanId": "productId/planid", + "billingPlan": "monthly", + "termDuration": "P1M" + } + ], + "constraintsData": { + "seatConstraints": [ + { + "type": "Quantity", + "minSeats": 1, + "maxSeats": 1000 + } + ], + "assetOwnershipLimits": [ + { + "type": "LifetimeCount", + "minAssets": 0, + "maxAssets": 1 + } + ], + "prerequisiteSkus": { + "mustHaveAll": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "mustHaveAny": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "seatConstraints": [ + { + "minPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + }, + { + "maxPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + } + ] + } + }, + "meterTypeDescriptions": [ + { + "key": "1 Consumption Unit - Outbound", + "value": { + "meterType": "1 Consumption Unit - Outbound", + "unitOfMeasure": "Per call" + } + } + ], + "usageUnit": "program pass", + "skuName": "Example Pro Scanner", "availabilities": [ { "id": "pro-payg", @@ -189,7 +272,7 @@ "meter": { "meterId": "scan-meter-001", "partNumber": "CGSCAN-PRO-001", - "consumptionResourceId": "cloudguard-scanner-pro", + "consumptionResourceId": "example-scanner-pro", "price": { "currencyCode": "USD", "isPiRequired": true, @@ -243,7 +326,19 @@ "value": "30 days" } ], - "renewToTermBillingPlan": "pro-monthly-renewed" + "renewToTermBillingPlan": "pro-monthly-renewed", + "lifecyclePolicy": { + "graceDuration": "P7D", + "inactiveDuration": "P30D", + "lockoutDuration": "P90D" + }, + "productCode": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "state": "Active", + "actions": [ + "Purchase", + "Renew", + "Cancel" + ] } ], "hasFreeTrials": true, @@ -265,7 +360,7 @@ ], "serviceFamily": "Security", "service": "SecurityServices", - "productId": "cloudguard-scanner-2025", + "productId": "example-scanner-2025", "hasMarketplaceFootprint": true, "attributes": [ { @@ -275,33 +370,33 @@ ], "language": "en", "hasStandardContractAmendments": true, - "offerId": "cloudguard-security-scanner", + "offerId": "example-security-scanner", "standardContractAmendmentsRevisionId": "2025-05-01-rev1", - "universalAmendmentUrl": "https://www.cloudguard.com/legal/universal-amendment", + "universalAmendmentUrl": "https://www.example.com/legal/universal-amendment", "isPrivate": false, "isStopSell": false, - "legalTermsUri": "https://www.cloudguard.com/legal/terms", - "cspLegalTermsUri": "https://www.cloudguard.com/legal/csp-terms", + "legalTermsUri": "https://www.example.com/legal/terms", + "cspLegalTermsUri": "https://www.example.com/legal/csp-terms", "legalTermsType": "EA", - "privacyPolicyUri": "https://www.cloudguard.com/legal/privacy", - "supportUri": "https://support.cloudguard.com", - "uiDefinitionUri": "https://www.cloudguard.com/setup/ui-definition", - "pricingDetailsUri": "https://www.cloudguard.com/pricing", - "mediumIconUri": "https://www.cloudguard.com/icons/medium.png", - "largeIconUri": "https://www.cloudguard.com/icons/large.png", - "wideIconUri": "https://www.cloudguard.com/icons/wide.png", + "privacyPolicyUri": "https://www.example.com/legal/privacy", + "supportUri": "https://support.example.com", + "uiDefinitionUri": "https://www.example.com/setup/ui-definition", + "pricingDetailsUri": "https://www.example.com/pricing", + "mediumIconUri": "https://www.example.com/icons/medium.png", + "largeIconUri": "https://www.example.com/icons/large.png", + "wideIconUri": "https://www.example.com/icons/wide.png", "isReseller": false, "productOwnershipSellingMotion": "3PPAgency", "disableSendEmailOnPurchase": false, "isCoreVm": false, "stopSellInfo": null, "marketingMaterial": { - "path": "https://www.cloudguard.com/resources", - "learnUri": "https://learn.cloudguard.com" + "path": "https://www.example.com/resources", + "learnUri": "https://learn.example.com" }, "screenshotUris": [ - "https://www.cloudguard.com/screenshots/dashboard.png", - "https://www.cloudguard.com/screenshots/reports.png" + "https://www.example.com/screenshots/dashboard.png", + "https://www.example.com/screenshots/reports.png" ], "hasRiPlans": true, "artifacts": [ diff --git a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetByTenant.json b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetByTenant.json index bcd7c49649ec..718b84b29502 100644 --- a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetByTenant.json +++ b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/examples/ProductGet_GetByTenant.json @@ -10,7 +10,7 @@ "responses": { "200": { "body": { - "displayName": "CloudGuard Security Scanner", + "displayName": "Example Security Scanner", "popularity": 4.8, "categoryIds": [ "SecurityAndIdentity" @@ -18,7 +18,7 @@ "industryIds": [ "Technology" ], - "publisherId": "cloudguard-security", + "publisherId": "example-security", "azureBenefit": "Eligible", "badges": [ "PreferredSolution", @@ -37,17 +37,17 @@ "pricingTypes": [ "Payg" ], - "publisherDisplayName": "CloudGuard Security, Inc.", - "longSummary": "CloudGuard Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", + "publisherDisplayName": "Example Security, Inc.", + "longSummary": "Example Security Scanner is an enterprise-grade cloud security solution that continuously monitors your cloud infrastructure for vulnerabilities, misconfigurations, and compliance violations. With real-time scanning, automated remediation suggestions, and comprehensive reporting, it helps organizations maintain a strong security posture across their cloud environments.", "summary": "Enterprise cloud security scanner with continuous monitoring, compliance checking, and automated remediation guidance", "videos": [ { - "caption": "CloudGuard Security Scanner Overview", - "uri": "https://www.youtube.com/watch?v=cloudguard-demo", + "caption": "Example Security Scanner Overview", + "uri": "https://www.youtube.com/watch?v=example-demo", "videoPurpose": "trailer", "previewImage": { "caption": "Product Overview", - "uri": "https://www.cloudguard.com/media/preview-image.png", + "uri": "https://www.example.com/media/preview-image.png", "imagePurpose": "preview" } } @@ -58,7 +58,7 @@ "items": [ { "id": "dashboard", - "uri": "https://www.cloudguard.com/screenshots/dashboard.png", + "uri": "https://www.example.com/screenshots/dashboard.png", "type": "screenshot" } ] @@ -68,19 +68,20 @@ { "id": "documentation", "displayName": "Documentation", - "uri": "https://docs.cloudguard.com" + "uri": "https://docs.example.com" } ], "linkedAddIns": [ - "cloudguard-cli:latest" + "example-cli:latest" ], - "smallIconUri": "https://www.cloudguard.com/icons/small.png", - "description": "CloudGuard Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", + "smallIconUri": "https://www.example.com/icons/small.png", + "description": "Example Security Scanner provides comprehensive cloud security monitoring and compliance management for enterprises. Key features include:\n\n- Continuous Security Monitoring: Real-time scanning of cloud resources for security vulnerabilities\n- Compliance Management: Pre-built compliance templates for major standards (PCI DSS, HIPAA, SOC 2)\n- Automated Remediation: Smart suggestions for fixing security issues with one-click implementation\n- Custom Policies: Create and enforce organization-specific security policies\n- Integration Support: Works with major DevOps tools and CI/CD pipelines\n- Advanced Reporting: Detailed security insights and compliance reports\n\nOur solution helps organizations maintain security best practices while accelerating their cloud journey.", "ratingBuckets": [ "AboveFour" ], "ratingAverage": 4.8, "ratingCount": 245, + "hasAddOns": true, "plans": [ { "planId": "pro", @@ -127,7 +128,7 @@ { "id": "iso27001", "displayName": "ISO 27001 Certified", - "uri": "https://www.cloudguard.com/certifications/iso27001" + "uri": "https://www.example.com/certifications/iso27001" } ], "customerInstruction": "Contact support for enterprise deployment assistance", @@ -137,13 +138,13 @@ ], "hasRi": true, "skuType": "Standard", - "skuTitle": "CloudGuard Pro Scanner", + "skuTitle": "Example Pro Scanner", "location": "Global", "armRegionName": "global", "cloud": "Public", "locationType": "Global", "region": "Global", - "skuGroupId": "cloudguard-scanner-group", + "skuGroupId": "example-scanner-group", "zone": "Zone 1", "feature": "SecurityScanning", "serviceType": "SaaS", @@ -164,7 +165,7 @@ "numberOfCores": null, "ram": null, "vCpu": null, - "armSkuName": "cloudguard-pro", + "armSkuName": "example-pro", "accessTier": "Standard" }, "billingComponents": [ @@ -178,6 +179,88 @@ "discountPercentage": 20.0 } ], + "hasConsumptionComponents": true, + "isEndUserEligible": true, + "isAdminEligible": true, + "entraIdVersion": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "technicalRequirements": "Azure subscription with sufficient compute resources for security scanning workloads", + "faqUri": "https://support.example.com/faq/pro-plan", + "fulfillmentData": { + "fulfillmentType": "AdditionalProductsOnly", + "additionalProducts": [ + { + "productSkuId": "product/sku", + "defaultKeyActivationCount": 300 + } + ], + "attributes": { + "fulfillmentTiming": "CapacityDependent", + "fulfillmentDelayMitigation": "WaitList" + } + }, + "benefits": [ + { + "benefitType": "EarlyAccess", + "basePlanId": "productId/planid", + "billingPlan": "monthly", + "termDuration": "P1M" + } + ], + "constraintsData": { + "seatConstraints": [ + { + "type": "Quantity", + "minSeats": 1, + "maxSeats": 1000 + } + ], + "assetOwnershipLimits": [ + { + "type": "LifetimeCount", + "minAssets": 0, + "maxAssets": 1 + } + ], + "prerequisiteSkus": { + "mustHaveAll": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "mustHaveAny": [ + { + "productId": "some product id", + "skuIds": [ + "0001" + ] + } + ], + "seatConstraints": [ + { + "minPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + }, + { + "maxPercentSeats": 1.0, + "type": "AddOnSeatsasPercentageofCumulativeBase" + } + ] + } + }, + "meterTypeDescriptions": [ + { + "key": "1 Consumption Unit - Outbound", + "value": { + "meterType": "1 Consumption Unit - Outbound", + "unitOfMeasure": "Per call" + } + } + ], + "usageUnit": "program pass", + "skuName": "Example Pro Scanner", "availabilities": [ { "id": "pro-payg", @@ -188,7 +271,7 @@ "meter": { "meterId": "scan-meter-001", "partNumber": "CGSCAN-PRO-001", - "consumptionResourceId": "cloudguard-scanner-pro", + "consumptionResourceId": "example-scanner-pro", "price": { "currencyCode": "USD", "isPiRequired": true, @@ -242,7 +325,19 @@ "value": "30 days" } ], - "renewToTermBillingPlan": "pro-monthly-renewed" + "renewToTermBillingPlan": "pro-monthly-renewed", + "lifecyclePolicy": { + "graceDuration": "P7D", + "inactiveDuration": "P30D", + "lockoutDuration": "P90D" + }, + "productCode": "3f2504e0-4f89-11d3-9a0c-0305e82c3301", + "state": "Active", + "actions": [ + "Purchase", + "Renew", + "Cancel" + ] } ], "hasFreeTrials": true, @@ -264,7 +359,7 @@ ], "serviceFamily": "Security", "service": "SecurityServices", - "productId": "cloudguard-scanner-2025", + "productId": "example-scanner-2025", "hasMarketplaceFootprint": true, "attributes": [ { @@ -274,33 +369,33 @@ ], "language": "en", "hasStandardContractAmendments": true, - "offerId": "cloudguard-security-scanner", + "offerId": "example-security-scanner", "standardContractAmendmentsRevisionId": "2025-05-01-rev1", - "universalAmendmentUrl": "https://www.cloudguard.com/legal/universal-amendment", + "universalAmendmentUrl": "https://www.example.com/legal/universal-amendment", "isPrivate": false, "isStopSell": false, - "legalTermsUri": "https://www.cloudguard.com/legal/terms", - "cspLegalTermsUri": "https://www.cloudguard.com/legal/csp-terms", + "legalTermsUri": "https://www.example.com/legal/terms", + "cspLegalTermsUri": "https://www.example.com/legal/csp-terms", "legalTermsType": "EA", - "privacyPolicyUri": "https://www.cloudguard.com/legal/privacy", - "supportUri": "https://support.cloudguard.com", - "uiDefinitionUri": "https://www.cloudguard.com/setup/ui-definition", - "pricingDetailsUri": "https://www.cloudguard.com/pricing", - "mediumIconUri": "https://www.cloudguard.com/icons/medium.png", - "largeIconUri": "https://www.cloudguard.com/icons/large.png", - "wideIconUri": "https://www.cloudguard.com/icons/wide.png", + "privacyPolicyUri": "https://www.example.com/legal/privacy", + "supportUri": "https://support.example.com", + "uiDefinitionUri": "https://www.example.com/setup/ui-definition", + "pricingDetailsUri": "https://www.example.com/pricing", + "mediumIconUri": "https://www.example.com/icons/medium.png", + "largeIconUri": "https://www.example.com/icons/large.png", + "wideIconUri": "https://www.example.com/icons/wide.png", "isReseller": false, "productOwnershipSellingMotion": "3PPAgency", "disableSendEmailOnPurchase": false, "isCoreVm": false, "stopSellInfo": null, "marketingMaterial": { - "path": "https://www.cloudguard.com/resources", - "learnUri": "https://learn.cloudguard.com" + "path": "https://www.example.com/resources", + "learnUri": "https://learn.example.com" }, "screenshotUris": [ - "https://www.cloudguard.com/screenshots/dashboard.png", - "https://www.cloudguard.com/screenshots/reports.png" + "https://www.example.com/screenshots/dashboard.png", + "https://www.example.com/screenshots/reports.png" ], "hasRiPlans": true, "artifacts": [ diff --git a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/openapi.json b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/openapi.json index fa0d380f7b83..643e4d667a3d 100644 --- a/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/openapi.json +++ b/specification/marketplacecatalog/resource-manager/Microsoft.Products/Products/stable/2025-05-01/openapi.json @@ -833,6 +833,26 @@ "artifactType" ] }, + "AssetOwnershipLimit": { + "type": "object", + "description": "Defines ownership restrictions and limits for SKU assets", + "properties": { + "type": { + "type": "string", + "description": "Limit type" + }, + "minAssets": { + "type": "integer", + "format": "int32", + "description": "Minimum number of assets" + }, + "maxAssets": { + "type": "integer", + "format": "int32", + "description": "Maximum number of assets" + } + } + }, "Attribute": { "type": "object", "description": "Represents a SKU attribute, which consists of a key and value. The attributes may differ across various services.", @@ -898,6 +918,28 @@ "displayRank" ] }, + "Benefit": { + "type": "object", + "description": "Benefit information for a plan", + "properties": { + "benefitType": { + "type": "string", + "description": "Benefit type" + }, + "basePlanId": { + "type": "string", + "description": "Base plan ID" + }, + "billingPlan": { + "type": "string", + "description": "Billing plan" + }, + "termDuration": { + "type": "string", + "description": "Term duration. Examples: 'P1M' (1 month), 'P30D' (30 days)" + } + } + }, "BillingAccountBaseParameters": { "type": "object", "description": "The static parameters for a billing based resource", @@ -976,6 +1018,32 @@ "billingProfileId" ] }, + "ConstraintsData": { + "type": "object", + "description": "Constraints data for a plan", + "properties": { + "seatConstraints": { + "type": "array", + "description": "Seat constraint configurations defining minimum and maximum seat limits", + "items": { + "$ref": "#/definitions/MinMaxSeatsConstraint" + }, + "x-ms-identifiers": [] + }, + "assetOwnershipLimits": { + "type": "array", + "description": "Asset ownership limits", + "items": { + "$ref": "#/definitions/AssetOwnershipLimit" + }, + "x-ms-identifiers": [] + }, + "prerequisiteSkus": { + "$ref": "#/definitions/Prerequisites", + "description": "Lists eligible prerequisite SKUs" + } + } + }, "DiscoveryErrorDetails": { "type": "object", "description": "Error details returned in DiscoveryErrorPayload", @@ -1007,6 +1075,42 @@ "error" ] }, + "FulfillmentAttributes": { + "type": "object", + "description": "Attributes that define fulfillment timing and delay handling", + "properties": { + "fulfillmentTiming": { + "type": "string", + "description": "Timing configuration for product fulfillment" + }, + "fulfillmentDelayMitigation": { + "type": "string", + "description": "Mitigation explanation for delayed fulfillment" + } + } + }, + "FulfillmentData": { + "type": "object", + "description": "Contains fulfillment configuration and instructions", + "properties": { + "fulfillmentType": { + "type": "string", + "description": "Differentiates between fulfillment types" + }, + "attributes": { + "$ref": "#/definitions/FulfillmentAttributes", + "description": "Fulfillment attributes" + }, + "additionalProducts": { + "type": "array", + "description": "Bundled products included defining additional product/SKU combinations", + "items": { + "$ref": "#/definitions/ProductFulfillmentConfig" + }, + "x-ms-identifiers": [] + } + } + }, "Image": { "type": "object", "description": "Includes link to the product image", @@ -1056,6 +1160,24 @@ } } }, + "LifecyclePolicy": { + "type": "object", + "description": "Defines lifecycle management policy", + "properties": { + "graceDuration": { + "type": "string", + "description": "Grace period duration where customers retain access to their product. Examples: 'P1M' (1 month), 'P30D' (30 days), 'P0D' (0 days)" + }, + "inactiveDuration": { + "type": "string", + "description": "Inactive period duration" + }, + "lockoutDuration": { + "type": "string", + "description": "Lockout period duration" + } + } + }, "LinkProperties": { "type": "object", "description": "Represents a link item read from the gallery item package", @@ -1122,6 +1244,74 @@ } } }, + "MeterTypeDescription": { + "type": "object", + "description": "Meter type description", + "properties": { + "key": { + "type": "string", + "description": "Meter Type Description key" + }, + "value": { + "$ref": "#/definitions/MeterTypeDescriptionValue", + "description": "Meter type description value" + } + } + }, + "MeterTypeDescriptionValue": { + "type": "object", + "description": "Meter type description value", + "properties": { + "meterType": { + "type": "string", + "description": "The type of meter" + }, + "unitOfMeasure": { + "type": "string", + "description": "The unit of measurement for the meter" + } + } + }, + "MinMaxPercentageSeatsConstraint": { + "type": "object", + "description": "Minimum and maximum percentage seats constraint", + "properties": { + "type": { + "type": "string", + "description": "Constraint type" + }, + "minPercentSeats": { + "type": "number", + "format": "double", + "description": "Minimum percent seats" + }, + "maxPercentSeats": { + "type": "number", + "format": "double", + "description": "Maximum percent seats" + } + } + }, + "MinMaxSeatsConstraint": { + "type": "object", + "description": "Defines minimum and maximum seat limits for a specific constraint type", + "properties": { + "type": { + "type": "string", + "description": "Constraint type" + }, + "minSeats": { + "type": "integer", + "format": "int32", + "description": "Minimum seats" + }, + "maxSeats": { + "type": "integer", + "format": "int32", + "description": "Maximum seats" + } + } + }, "OfferingProperties": { "type": "object", "description": "SKU price related properties", @@ -1399,6 +1589,62 @@ "$ref": "#/definitions/OfferingProperties" }, "x-ms-identifiers": [] + }, + "hasConsumptionComponents": { + "type": "boolean", + "description": "Indicates if this SKU has consumption components" + }, + "isEndUserEligible": { + "type": "boolean", + "description": "Indicates if this SKU is available for end users" + }, + "isAdminEligible": { + "type": "boolean", + "description": "Indicates if this SKU is available for admins" + }, + "entraIdVersion": { + "type": "string", + "description": "The entra id version for products that come with entra id support" + }, + "technicalRequirements": { + "type": "string", + "description": "Technical Requirements" + }, + "faqUri": { + "type": "string", + "description": "The URI to the FAQ page" + }, + "fulfillmentData": { + "$ref": "#/definitions/FulfillmentData", + "description": "Fulfillment instructions for this SKU" + }, + "benefits": { + "type": "array", + "description": "Provides promotion data", + "items": { + "$ref": "#/definitions/Benefit" + }, + "x-ms-identifiers": [] + }, + "constraintsData": { + "$ref": "#/definitions/ConstraintsData", + "description": "Contains constraint product properties to determine eligibility" + }, + "meterTypeDescriptions": { + "type": "array", + "description": "Meter type descriptions", + "items": { + "$ref": "#/definitions/MeterTypeDescription" + }, + "x-ms-identifiers": [] + }, + "usageUnit": { + "type": "string", + "description": "Usage unit" + }, + "skuName": { + "type": "string", + "description": "Sku name" } }, "required": [ @@ -1520,6 +1766,53 @@ "planType" ] }, + "PrerequisiteSet": { + "type": "object", + "description": "Prerequisite set", + "properties": { + "productId": { + "type": "string", + "description": "Product ID" + }, + "skuIds": { + "type": "array", + "description": "SKU IDs", + "items": { + "type": "string" + } + } + } + }, + "Prerequisites": { + "type": "object", + "description": "Defines prerequisite SKU requirements and seat constraints", + "properties": { + "mustHaveAll": { + "type": "array", + "description": "Prerequisite sets where all specified SKUs must be owned", + "items": { + "$ref": "#/definitions/PrerequisiteSet" + }, + "x-ms-identifiers": [] + }, + "mustHaveAny": { + "type": "array", + "description": "Prerequisite sets where any one of the specified SKUs must be owned", + "items": { + "$ref": "#/definitions/PrerequisiteSet" + }, + "x-ms-identifiers": [] + }, + "seatConstraints": { + "type": "array", + "description": "Percentage-based seat constraints for prerequisite SKUs", + "items": { + "$ref": "#/definitions/MinMaxPercentageSeatsConstraint" + }, + "x-ms-identifiers": [] + } + } + }, "PreviewImage": { "type": "object", "description": "Video preview image", @@ -2066,6 +2359,10 @@ "items": { "$ref": "#/definitions/PlanDetails" } + }, + "hasAddOns": { + "type": "boolean", + "description": "Indicates that the SKU has add-ons" } }, "required": [ @@ -2075,6 +2372,21 @@ "isStopSell" ] }, + "ProductFulfillmentConfig": { + "type": "object", + "description": "Configuration for additional products bundled with early access pass SKUs", + "properties": { + "productSkuId": { + "type": "string", + "description": "Product and SKU ID for bundled products included with the license" + }, + "defaultKeyActivationCount": { + "type": "integer", + "format": "int32", + "description": "Quantity of the bundled product per license " + } + } + }, "ProductSingle": { "type": "object", "description": "Product resource", @@ -2486,6 +2798,25 @@ "isAutorenewable": { "type": "boolean", "description": "Indicates if autorenew is enabled" + }, + "lifecyclePolicy": { + "$ref": "#/definitions/LifecyclePolicy", + "description": "Defines the lifecycle management policy for the term" + }, + "productCode": { + "type": "string", + "description": "Product code for this term" + }, + "state": { + "type": "string", + "description": "Term state" + }, + "actions": { + "type": "array", + "description": "Term Actions", + "items": { + "type": "string" + } } } }, From e1734ebf46938ee34012d31d634ab30073537c4b Mon Sep 17 00:00:00 2001 From: Jorge Rangel <102122018+jorgerangel-msft@users.noreply.github.com> Date: Mon, 5 Jan 2026 10:29:52 -0600 Subject: [PATCH 108/117] add new c# generator client.tsp overrides (#38390) --- specification/batch/Azure.Batch/client.tsp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/specification/batch/Azure.Batch/client.tsp b/specification/batch/Azure.Batch/client.tsp index 1109cb0c981d..c9d322e11bca 100644 --- a/specification/batch/Azure.Batch/client.tsp +++ b/specification/batch/Azure.Batch/client.tsp @@ -134,8 +134,15 @@ interface BatchClient { @@clientName(BatchClient.disableJob, "disableJobInternal", "csharp"); @@access(Azure.Batch.Jobs.enableJob, Access.internal, "csharp"); @@clientName(BatchClient.enableJob, "enableJobInternal", "csharp"); +@@convenientAPI(Azure.Batch.Pools.poolExists, false, "csharp"); @@access(Azure.Batch.Pools.poolExists, Access.internal, "csharp"); +@@clientName(BatchClient.poolExists, "poolExistsInternal", "csharp"); @@access(Azure.Batch.JobSchedules.jobScheduleExists, Access.internal, "csharp"); +@@convenientAPI(Azure.Batch.JobSchedules.jobScheduleExists, false, "csharp"); +@@clientName(BatchClient.jobScheduleExists, + "jobScheduleExistsInternal", + "csharp" +); @@access(Azure.Batch.Tasks.getTaskFileProperties, Access.internal, "csharp"); @@clientName(BatchClient.getTaskFileProperties, "getTaskFilePropertiesInternal", @@ -147,6 +154,20 @@ interface BatchClient { "csharp" ); +@@clientName(BatchClient.listJobsFromSchedule, + "listJobsFromSchedules", + "csharp" +); +@@clientName(BatchClient.listJobPreparationAndReleaseTaskStatus, + "listJobPreparationAndReleaseTaskStatuses", + "csharp" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Back compatibility" +@@Azure.ClientGenerator.Core.Legacy.clientDefaultValue(Azure.Batch.CommonParameters.returnClientRequestId, + true, + "csharp" +); + /* PYTHON OVERRIDES */ @@access(Azure.Batch.Tasks.getTaskFileProperties, Access.internal, "python"); @@clientName(BatchClient.getTaskFileProperties, From 858c32f036f78aa0293759e0b6bfda50c81089e8 Mon Sep 17 00:00:00 2001 From: raosuhas <suhasrao@microsoft.com> Date: Mon, 5 Jan 2026 12:55:18 -0800 Subject: [PATCH 109/117] [.github/instructions] Add ARM OpenAPI review instructions (#39446) --- .github/CODEOWNERS | 1 + .../armapi-review.instructions.md | 143 ++++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 .github/instructions/armapi-review.instructions.md diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index f50d9e9c167d..1c5ec9031984 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -311,4 +311,5 @@ /.github/copilot-instructions.md @praveenkuttappan @maririos /.github/prompts/ @praveenkuttappan @maririos /.github/instructions/ @praveenkuttappan @maririos +/.github/instructions/*arm*.md @raosuhas /.github/chatmodes/ @praveenkuttappan @maririos diff --git a/.github/instructions/armapi-review.instructions.md b/.github/instructions/armapi-review.instructions.md new file mode 100644 index 000000000000..597b212d0009 --- /dev/null +++ b/.github/instructions/armapi-review.instructions.md @@ -0,0 +1,143 @@ +--- +applyTo: "**/specification/**/resource-manager/*.json" +--- + +# ARM OpenAPI (Swagger) Review Instructions + +When reviewing Azure Resource Manager (ARM) OpenAPI specifications, ensure compliance with Microsoft API +Guidelines and Azure RPC contracts. Prioritize Azure RPC requirements when conflicts arise. + +## Critical Requirements + +### 1. API Guidelines Compliance + +- **MUST** follow [Azure REST API Guidelines] + (https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md) +- **MUST** conform to [Azure RPC contracts] + (https://github.com/cloud-and-ai-microsoft/resource-provider-contract) +- Azure RPC takes precedence over general guidelines in case of conflicts + +### 2. Breaking Changes Prevention + +- **NO breaking changes** in GA (stable) API versions per + [Azure Breaking Changes Policy](https://aka.ms/AzBreakingChangesPolicy) +- Verify no removal/renaming of properties, operations, or parameters in existing versions +- Check property types remain unchanged (e.g., boolean → string is breaking) +- Ensure enum values are not removed or renamed +- New required properties or parameters require new API version +- URL path format changes require new API version + +### 3. ARM Resource Model Requirements + +- Resource model name **MUST** match singular form of resource type (e.g., `VirtualMachine` for `virtualMachines`) +- Top-level resources **MUST** have `ListByResourceGroup` and `ListBySubscription` operations +- Tracked resources **MUST** have GET, PUT, PATCH (update), and DELETE operations +- All resources **MUST** include `systemData` property (read-only) with type from common-types +- Nested resources **MUST** have List operation + +### 4. Common Types Usage + +- **MUST** reference appropriate common-types version (v3, v4, or v5) for standard ARM types: + - `Resource`, `TrackedResource`, `ProxyResource`, `ExtensionResource` + - `ErrorResponse`, `ErrorDetail` + - Standard parameters: `SubscriptionIdParameter`, `ResourceGroupNameParameter`, `ApiVersionParameter` +- Use `$ref` to common-types instead of redefining standard ARM structures + +### 5. API Versioning + +- API version **MUST** follow `YYYY-MM-DD` format +- Version **MUST** be in path: + `/subscriptions/{subscriptionId}/providers/Microsoft.{Namespace}/...?api-version=YYYY-MM-DD` +- Stable versions in `/stable/` directory, preview in `/preview/` + +### 6. Security & Authentication + +- **MUST** define `securityDefinitions` with OAuth2 Azure AD authentication +- **MUST** apply `security` requirement to all operations +- Scopes should use `user_impersonation` for management plane + +### 7. Property & Parameter Correctness + +- Mark required parameters as `"required": true` - incorrect marking breaks customers +- Mark read-only properties as `"readOnly": true` (e.g., `id`, `name`, `type`, `systemData`) +- Use `x-ms-mutability` to specify create/read/update behavior +- Collections **MUST** support multiple elements, not artificially limited to one +- Only define operations/properties/parameters actually supported by the service + +### 8. Naming Conventions + +- Properties and parameters: **camelCase** (e.g., `resourceGroupName`) +- Resource types in path: **camelCase** (e.g., `/virtualMachines/{virtualMachineName}`) +- Resource provider namespace: **PascalCase** (e.g., `Microsoft.Compute`) +- Model definitions: **PascalCase** (e.g., `VirtualMachine`) +- Enum values: **PascalCase** preferred +- Avoid abbreviations in names unless industry-standard +- Use resource name, not abbreviations, in path parameters: `{virtualMachineName}` not `{vmName}` + +### 9. Operations & Operation IDs + +- OperationId format: `{ResourceType}_{Action}` (e.g., `VirtualMachines_Get`, `VirtualMachines_CreateOrUpdate`) +- Operations **MUST** have unique `operationId` +- Use standard verbs: GET → `Get/List`, PUT → `CreateOrUpdate`, PATCH → `Update`, DELETE → `Delete`, POST → action name +- Include `x-ms-examples` referencing example JSON files +- DELETE operations: return 200 (with body), 202 (async), or 204 (no content) +- Long-running operations: use `x-ms-long-running-operation: true` and return 201 or 202 + +### 10. Pagination & Collections + +- List operations **MUST** use `x-ms-pageable` with `nextLinkName` +- Collection models **MUST** have `value` array property and optional `nextLink` string + +### 11. Documentation Quality + +- Every operation, parameter, property, and model **MUST** have clear description +- Start operation descriptions with verb (e.g., "Gets the virtual machine.") +- Start with capital letter, end with period +- Specify units for quantifiable properties (MB, seconds, etc.) +- Use correct acronym capitalization: "URL" not "Url", "ID" not "Id" +- Avoid: "Gets or sets...", "Gets...", "Sets..." in property descriptions +- Document all HTTP status codes in responses + +### 12. Error Handling + +- Default error response **MUST** reference common-types `ErrorResponse` +- Include "default" response for all operations +- Use `x-ms-error-response: true` for error responses + +### 13. Extensions & Special Features + +- **REQUIRED**: `x-ms-parameter-location: "method"` for common parameters + (subscriptionId, resourceGroupName, apiVersion) +- Use `x-ms-enum` with `modelAsString: true` for extensible enums (allows new values without breaking) +- Use `x-ms-discriminator-value` for polymorphic types +- Private/internal operations: mark with `x-ms-visibility: "internal"` + +### 14. Customer Usability + +Think as a customer: Are parameter names intuitive? Is required vs. optional clear? Are default values +documented? Can developers understand how to use this API from the specification alone? + +### 15. Examples & Testing + +- **MUST** include `x-ms-examples` for all operations +- Example files in `examples/` directory +- **MUST** test all operations before PR submission +- Examples **MUST** validate against specification + +## Review Checklist Summary + +✓ No breaking changes in existing versions +✓ Follows Azure RPC contracts +✓ Common-types properly referenced +✓ Naming conventions (camelCase properties, PascalCase types) +✓ Required/readOnly correctly marked +✓ Security definitions present +✓ Standard ARM operations implemented +✓ Pagination on list operations +✓ Operation IDs follow pattern +✓ Examples provided and valid +✓ Descriptions clear and complete +✓ API version format correct + +Flag violations clearly with line numbers and specific guidance for fixes. +Once completed always add the following comment : "Copilot used the entire file : .github/instructions/armapi-review.instructions.md for arm api reviews." From dc849da96cb4bd6b2b0c9587c97cbb262261ca39 Mon Sep 17 00:00:00 2001 From: Mike Harder <mharder@microsoft.com> Date: Mon, 5 Jan 2026 17:17:19 -0800 Subject: [PATCH 110/117] [.github] bump actionlint from 1.7.9 to 1.7.10 (#39458) --- .github/workflows/github-test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/github-test.yaml b/.github/workflows/github-test.yaml index 60d07bdce08b..7588e19d3eb7 100644 --- a/.github/workflows/github-test.yaml +++ b/.github/workflows/github-test.yaml @@ -41,7 +41,7 @@ jobs: - if: ${{ matrix.folder == '.github' && matrix.os == 'ubuntu'}} name: Lint workflows - uses: docker://rhysd/actionlint:1.7.9 + uses: docker://rhysd/actionlint:1.7.10 with: args: -color -verbose From 7da6f316b9cc1a5d145ec904e86de78ecc8cb19f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Jan 2026 18:21:00 -0800 Subject: [PATCH 111/117] build(deps-dev): bump the eslint group across 2 directories with 1 update (#39456) Bumps the eslint group with 1 update in the /.github directory: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint). Bumps the eslint group with 1 update in the /.github/shared directory: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint). Updates `typescript-eslint` from 8.50.0 to 8.51.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.51.0/packages/typescript-eslint) Updates `typescript-eslint` from 8.50.0 to 8.51.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.51.0/packages/typescript-eslint) Updates `typescript-eslint` from 8.50.0 to 8.51.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.51.0/packages/typescript-eslint) Updates `typescript-eslint` from 8.50.0 to 8.51.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.51.0/packages/typescript-eslint) --- updated-dependencies: - dependency-name: typescript-eslint dependency-version: 8.51.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint - dependency-name: typescript-eslint dependency-version: 8.51.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint - dependency-name: typescript-eslint dependency-version: 8.51.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint - dependency-name: typescript-eslint dependency-version: 8.51.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/package-lock.json | 148 ++++++++++++++----------------- .github/shared/package-lock.json | 146 ++++++++++++++---------------- 2 files changed, 136 insertions(+), 158 deletions(-) diff --git a/.github/package-lock.json b/.github/package-lock.json index 496a4cc156a5..6571bfa043e0 100644 --- a/.github/package-lock.json +++ b/.github/package-lock.json @@ -943,7 +943,6 @@ "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -1259,7 +1258,6 @@ "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.3", @@ -1762,8 +1760,7 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/ms": { "version": "2.1.0", @@ -1778,7 +1775,6 @@ "integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -1791,20 +1787,20 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.50.0.tgz", - "integrity": "sha512-O7QnmOXYKVtPrfYzMolrCTfkezCJS9+ljLdKW/+DCvRsc3UAz+sbH6Xcsv7p30+0OwUbeWfUDAQE0vpabZ3QLg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.51.0.tgz", + "integrity": "sha512-XtssGWJvypyM2ytBnSnKtHYOGT+4ZwTnBVl36TA4nRO2f4PRNGz5/1OszHzcZCvcBMh+qb7I06uoCmLTRdR9og==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.50.0", - "@typescript-eslint/type-utils": "8.50.0", - "@typescript-eslint/utils": "8.50.0", - "@typescript-eslint/visitor-keys": "8.50.0", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/type-utils": "8.51.0", + "@typescript-eslint/utils": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.1.0" + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1814,7 +1810,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.50.0", + "@typescript-eslint/parser": "^8.51.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -1830,17 +1826,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.50.0.tgz", - "integrity": "sha512-6/cmF2piao+f6wSxUsJLZjck7OQsYyRtcOZS02k7XINSNlz93v6emM8WutDQSXnroG2xwYlEVHJI+cPA7CPM3Q==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.51.0.tgz", + "integrity": "sha512-3xP4XzzDNQOIqBMWogftkwxhg5oMKApqY0BAflmLZiFYHqyhSOxv/cd/zPQLTcCXr4AkaKb25joocY0BD1WC6A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.50.0", - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/typescript-estree": "8.50.0", - "@typescript-eslint/visitor-keys": "8.50.0", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", "debug": "^4.3.4" }, "engines": { @@ -1856,14 +1851,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.50.0.tgz", - "integrity": "sha512-Cg/nQcL1BcoTijEWyx4mkVC56r8dj44bFDvBdygifuS20f3OZCHmFbjF34DPSi07kwlFvqfv/xOLnJ5DquxSGQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.51.0.tgz", + "integrity": "sha512-Luv/GafO07Z7HpiI7qeEW5NW8HUtZI/fo/kE0YbtQEFpJRUuR0ajcWfCE5bnMvL7QQFrmT/odMe8QZww8X2nfQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.50.0", - "@typescript-eslint/types": "^8.50.0", + "@typescript-eslint/tsconfig-utils": "^8.51.0", + "@typescript-eslint/types": "^8.51.0", "debug": "^4.3.4" }, "engines": { @@ -1878,14 +1873,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.50.0.tgz", - "integrity": "sha512-xCwfuCZjhIqy7+HKxBLrDVT5q/iq7XBVBXLn57RTIIpelLtEIZHXAF/Upa3+gaCpeV1NNS5Z9A+ID6jn50VD4A==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.51.0.tgz", + "integrity": "sha512-JhhJDVwsSx4hiOEQPeajGhCWgBMBwVkxC/Pet53EpBVs7zHHtayKefw1jtPaNRXpI9RA2uocdmpdfE7T+NrizA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/visitor-keys": "8.50.0" + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1896,9 +1891,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.50.0.tgz", - "integrity": "sha512-vxd3G/ybKTSlm31MOA96gqvrRGv9RJ7LGtZCn2Vrc5htA0zCDvcMqUkifcjrWNNKXHUU3WCkYOzzVSFBd0wa2w==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.51.0.tgz", + "integrity": "sha512-Qi5bSy/vuHeWyir2C8u/uqGMIlIDu8fuiYWv48ZGlZ/k+PRPHtaAu7erpc7p5bzw2WNNSniuxoMSO4Ar6V9OXw==", "dev": true, "license": "MIT", "engines": { @@ -1913,17 +1908,17 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.50.0.tgz", - "integrity": "sha512-7OciHT2lKCewR0mFoBrvZJ4AXTMe/sYOe87289WAViOocEmDjjv8MvIOT2XESuKj9jp8u3SZYUSh89QA4S1kQw==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.51.0.tgz", + "integrity": "sha512-0XVtYzxnobc9K0VU7wRWg1yiUrw4oQzexCG2V2IDxxCxhqBMSMbjB+6o91A+Uc0GWtgjCa3Y8bi7hwI0Tu4n5Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/typescript-estree": "8.50.0", - "@typescript-eslint/utils": "8.50.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/utils": "8.51.0", "debug": "^4.3.4", - "ts-api-utils": "^2.1.0" + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1938,9 +1933,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.50.0.tgz", - "integrity": "sha512-iX1mgmGrXdANhhITbpp2QQM2fGehBse9LbTf0sidWK6yg/NE+uhV5dfU1g6EYPlcReYmkE9QLPq/2irKAmtS9w==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.51.0.tgz", + "integrity": "sha512-TizAvWYFM6sSscmEakjY3sPqGwxZRSywSsPEiuZF6d5GmGD9Gvlsv0f6N8FvAAA0CD06l3rIcWNbsN1e5F/9Ag==", "dev": true, "license": "MIT", "engines": { @@ -1952,21 +1947,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.50.0.tgz", - "integrity": "sha512-W7SVAGBR/IX7zm1t70Yujpbk+zdPq/u4soeFSknWFdXIFuWsBGBOUu/Tn/I6KHSKvSh91OiMuaSnYp3mtPt5IQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.51.0.tgz", + "integrity": "sha512-1qNjGqFRmlq0VW5iVlcyHBbCjPB7y6SxpBkrbhNWMy/65ZoncXCEPJxkRZL8McrseNH6lFhaxCIaX+vBuFnRng==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.50.0", - "@typescript-eslint/tsconfig-utils": "8.50.0", - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/visitor-keys": "8.50.0", + "@typescript-eslint/project-service": "8.51.0", + "@typescript-eslint/tsconfig-utils": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", "debug": "^4.3.4", "minimatch": "^9.0.4", "semver": "^7.6.0", "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.1.0" + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2006,16 +2001,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.50.0.tgz", - "integrity": "sha512-87KgUXET09CRjGCi2Ejxy3PULXna63/bMYv72tCAlDJC3Yqwln0HiFJ3VJMst2+mEtNtZu5oFvX4qJGjKsnAgg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.51.0.tgz", + "integrity": "sha512-11rZYxSe0zabiKaCP2QAwRf/dnmgFgvTmeDTtZvUvXG3UuAdg/GU02NExmmIXzz3vLGgMdtrIosI84jITQOxUA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.50.0", - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/typescript-estree": "8.50.0" + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2030,13 +2025,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.50.0.tgz", - "integrity": "sha512-Xzmnb58+Db78gT/CCj/PVCvK+zxbnsw6F+O1oheYszJbBSdEjVhQi3C/Xttzxgi/GLmpvOggRs1RFpiJ8+c34Q==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.51.0.tgz", + "integrity": "sha512-mM/JRQOzhVN1ykejrvwnBRV3+7yTKK8tVANVN3o1O0t0v7o+jqdVu9crPy5Y9dov15TJk/FTIgoUGHrTOVL3Zg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/types": "8.51.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -2196,7 +2191,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2503,7 +2497,6 @@ "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -3281,7 +3274,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -3334,7 +3326,6 @@ "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -3577,9 +3568,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, "license": "MIT", "engines": { @@ -3618,7 +3609,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -3628,16 +3618,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.50.0.tgz", - "integrity": "sha512-Q1/6yNUmCpH94fbgMUMg2/BSAr/6U7GBk61kZTv1/asghQOWOjTlp9K8mixS5NcJmm2creY+UFfGeW/+OcA64A==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.51.0.tgz", + "integrity": "sha512-jh8ZuM5oEh2PSdyQG9YAEM1TCGuWenLSuSUhf/irbVUNW9O5FhbFVONviN2TgMTBnUmyHv7E56rYnfLZK6TkiA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.50.0", - "@typescript-eslint/parser": "8.50.0", - "@typescript-eslint/typescript-estree": "8.50.0", - "@typescript-eslint/utils": "8.50.0" + "@typescript-eslint/eslint-plugin": "8.51.0", + "@typescript-eslint/parser": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/utils": "8.51.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3694,7 +3684,6 @@ "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -3770,7 +3759,6 @@ "integrity": "sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vitest/expect": "4.0.16", "@vitest/mocker": "4.0.16", diff --git a/.github/shared/package-lock.json b/.github/shared/package-lock.json index faef10916062..db5a2c7d05c2 100644 --- a/.github/shared/package-lock.json +++ b/.github/shared/package-lock.json @@ -1179,8 +1179,7 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/ms": { "version": "2.1.0", @@ -1195,7 +1194,6 @@ "integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -1208,20 +1206,20 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.50.0.tgz", - "integrity": "sha512-O7QnmOXYKVtPrfYzMolrCTfkezCJS9+ljLdKW/+DCvRsc3UAz+sbH6Xcsv7p30+0OwUbeWfUDAQE0vpabZ3QLg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.51.0.tgz", + "integrity": "sha512-XtssGWJvypyM2ytBnSnKtHYOGT+4ZwTnBVl36TA4nRO2f4PRNGz5/1OszHzcZCvcBMh+qb7I06uoCmLTRdR9og==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.50.0", - "@typescript-eslint/type-utils": "8.50.0", - "@typescript-eslint/utils": "8.50.0", - "@typescript-eslint/visitor-keys": "8.50.0", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/type-utils": "8.51.0", + "@typescript-eslint/utils": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.1.0" + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1231,7 +1229,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.50.0", + "@typescript-eslint/parser": "^8.51.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -1247,17 +1245,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.50.0.tgz", - "integrity": "sha512-6/cmF2piao+f6wSxUsJLZjck7OQsYyRtcOZS02k7XINSNlz93v6emM8WutDQSXnroG2xwYlEVHJI+cPA7CPM3Q==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.51.0.tgz", + "integrity": "sha512-3xP4XzzDNQOIqBMWogftkwxhg5oMKApqY0BAflmLZiFYHqyhSOxv/cd/zPQLTcCXr4AkaKb25joocY0BD1WC6A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.50.0", - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/typescript-estree": "8.50.0", - "@typescript-eslint/visitor-keys": "8.50.0", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", "debug": "^4.3.4" }, "engines": { @@ -1273,14 +1270,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.50.0.tgz", - "integrity": "sha512-Cg/nQcL1BcoTijEWyx4mkVC56r8dj44bFDvBdygifuS20f3OZCHmFbjF34DPSi07kwlFvqfv/xOLnJ5DquxSGQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.51.0.tgz", + "integrity": "sha512-Luv/GafO07Z7HpiI7qeEW5NW8HUtZI/fo/kE0YbtQEFpJRUuR0ajcWfCE5bnMvL7QQFrmT/odMe8QZww8X2nfQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.50.0", - "@typescript-eslint/types": "^8.50.0", + "@typescript-eslint/tsconfig-utils": "^8.51.0", + "@typescript-eslint/types": "^8.51.0", "debug": "^4.3.4" }, "engines": { @@ -1295,14 +1292,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.50.0.tgz", - "integrity": "sha512-xCwfuCZjhIqy7+HKxBLrDVT5q/iq7XBVBXLn57RTIIpelLtEIZHXAF/Upa3+gaCpeV1NNS5Z9A+ID6jn50VD4A==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.51.0.tgz", + "integrity": "sha512-JhhJDVwsSx4hiOEQPeajGhCWgBMBwVkxC/Pet53EpBVs7zHHtayKefw1jtPaNRXpI9RA2uocdmpdfE7T+NrizA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/visitor-keys": "8.50.0" + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1313,9 +1310,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.50.0.tgz", - "integrity": "sha512-vxd3G/ybKTSlm31MOA96gqvrRGv9RJ7LGtZCn2Vrc5htA0zCDvcMqUkifcjrWNNKXHUU3WCkYOzzVSFBd0wa2w==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.51.0.tgz", + "integrity": "sha512-Qi5bSy/vuHeWyir2C8u/uqGMIlIDu8fuiYWv48ZGlZ/k+PRPHtaAu7erpc7p5bzw2WNNSniuxoMSO4Ar6V9OXw==", "dev": true, "license": "MIT", "engines": { @@ -1330,17 +1327,17 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.50.0.tgz", - "integrity": "sha512-7OciHT2lKCewR0mFoBrvZJ4AXTMe/sYOe87289WAViOocEmDjjv8MvIOT2XESuKj9jp8u3SZYUSh89QA4S1kQw==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.51.0.tgz", + "integrity": "sha512-0XVtYzxnobc9K0VU7wRWg1yiUrw4oQzexCG2V2IDxxCxhqBMSMbjB+6o91A+Uc0GWtgjCa3Y8bi7hwI0Tu4n5Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/typescript-estree": "8.50.0", - "@typescript-eslint/utils": "8.50.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/utils": "8.51.0", "debug": "^4.3.4", - "ts-api-utils": "^2.1.0" + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1355,9 +1352,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.50.0.tgz", - "integrity": "sha512-iX1mgmGrXdANhhITbpp2QQM2fGehBse9LbTf0sidWK6yg/NE+uhV5dfU1g6EYPlcReYmkE9QLPq/2irKAmtS9w==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.51.0.tgz", + "integrity": "sha512-TizAvWYFM6sSscmEakjY3sPqGwxZRSywSsPEiuZF6d5GmGD9Gvlsv0f6N8FvAAA0CD06l3rIcWNbsN1e5F/9Ag==", "dev": true, "license": "MIT", "engines": { @@ -1369,21 +1366,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.50.0.tgz", - "integrity": "sha512-W7SVAGBR/IX7zm1t70Yujpbk+zdPq/u4soeFSknWFdXIFuWsBGBOUu/Tn/I6KHSKvSh91OiMuaSnYp3mtPt5IQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.51.0.tgz", + "integrity": "sha512-1qNjGqFRmlq0VW5iVlcyHBbCjPB7y6SxpBkrbhNWMy/65ZoncXCEPJxkRZL8McrseNH6lFhaxCIaX+vBuFnRng==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.50.0", - "@typescript-eslint/tsconfig-utils": "8.50.0", - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/visitor-keys": "8.50.0", + "@typescript-eslint/project-service": "8.51.0", + "@typescript-eslint/tsconfig-utils": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", "debug": "^4.3.4", "minimatch": "^9.0.4", "semver": "^7.6.0", "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.1.0" + "ts-api-utils": "^2.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1423,16 +1420,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.50.0.tgz", - "integrity": "sha512-87KgUXET09CRjGCi2Ejxy3PULXna63/bMYv72tCAlDJC3Yqwln0HiFJ3VJMst2+mEtNtZu5oFvX4qJGjKsnAgg==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.51.0.tgz", + "integrity": "sha512-11rZYxSe0zabiKaCP2QAwRf/dnmgFgvTmeDTtZvUvXG3UuAdg/GU02NExmmIXzz3vLGgMdtrIosI84jITQOxUA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.50.0", - "@typescript-eslint/types": "8.50.0", - "@typescript-eslint/typescript-estree": "8.50.0" + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1447,13 +1444,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.50.0.tgz", - "integrity": "sha512-Xzmnb58+Db78gT/CCj/PVCvK+zxbnsw6F+O1oheYszJbBSdEjVhQi3C/Xttzxgi/GLmpvOggRs1RFpiJ8+c34Q==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.51.0.tgz", + "integrity": "sha512-mM/JRQOzhVN1ykejrvwnBRV3+7yTKK8tVANVN3o1O0t0v7o+jqdVu9crPy5Y9dov15TJk/FTIgoUGHrTOVL3Zg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.50.0", + "@typescript-eslint/types": "8.51.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -1613,7 +1610,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1899,7 +1895,6 @@ "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -2633,7 +2628,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -2686,7 +2680,6 @@ "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -2929,9 +2922,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, "license": "MIT", "engines": { @@ -2960,7 +2953,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2970,16 +2962,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.50.0.tgz", - "integrity": "sha512-Q1/6yNUmCpH94fbgMUMg2/BSAr/6U7GBk61kZTv1/asghQOWOjTlp9K8mixS5NcJmm2creY+UFfGeW/+OcA64A==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.51.0.tgz", + "integrity": "sha512-jh8ZuM5oEh2PSdyQG9YAEM1TCGuWenLSuSUhf/irbVUNW9O5FhbFVONviN2TgMTBnUmyHv7E56rYnfLZK6TkiA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.50.0", - "@typescript-eslint/parser": "8.50.0", - "@typescript-eslint/typescript-estree": "8.50.0", - "@typescript-eslint/utils": "8.50.0" + "@typescript-eslint/eslint-plugin": "8.51.0", + "@typescript-eslint/parser": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/utils": "8.51.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3016,7 +3008,6 @@ "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -3092,7 +3083,6 @@ "integrity": "sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vitest/expect": "4.0.16", "@vitest/mocker": "4.0.16", From e537eca5322c546b3221e01beda3470e714e3dda Mon Sep 17 00:00:00 2001 From: wiboris <54044985+wiboris@users.noreply.github.com> Date: Mon, 5 Jan 2026 21:01:56 -0800 Subject: [PATCH 112/117] Batch Management Plane 2025-06-01 (#35105) * update to 2025-06-01 * removing Certificate, ApplicationLIcenses, and resrouceTags --------- Co-authored-by: Qiaoqiao Zhang <55688292+qiaozha@users.noreply.github.com> --- .../stable/2025-06-01/BatchManagement.json | 6110 +++++++++++++++++ .../2025-06-01/NetworkSecurityPerimeter.json | 197 + .../examples/ApplicationCreate.json | 32 + .../examples/ApplicationDelete.json | 13 + .../2025-06-01/examples/ApplicationGet.json | 26 + .../2025-06-01/examples/ApplicationList.json | 37 + .../examples/ApplicationPackageActivate.json | 31 + .../examples/ApplicationPackageCreate.json | 28 + .../examples/ApplicationPackageDelete.json | 14 + .../examples/ApplicationPackageGet.json | 28 + .../examples/ApplicationPackageList.json | 37 + .../examples/ApplicationUpdate.json | 34 + .../examples/BatchAccountCreate_BYOS.json | 53 + .../examples/BatchAccountCreate_Default.json | 44 + ...hAccountCreate_SystemAssignedIdentity.json | 49 + ...tchAccountCreate_UserAssignedIdentity.json | 56 + .../examples/BatchAccountDelete.json | 17 + .../2025-06-01/examples/BatchAccountGet.json | 35 + .../examples/BatchAccountGetKeys.json | 17 + .../2025-06-01/examples/BatchAccountList.json | 37 + .../BatchAccountListByResourceGroup.json | 38 + ...tOutboundNetworkDependenciesEndpoints.json | 108 + .../examples/BatchAccountRegenerateKey.json | 20 + ...atchAccountSynchronizeAutoStorageKeys.json | 11 + .../examples/BatchAccountUpdate.json | 42 + .../2025-06-01/examples/DetectorGet.json | 21 + .../2025-06-01/examples/DetectorList.json | 24 + ...onCheckNameAvailability_AlreadyExists.json | 20 + ...cationCheckNameAvailability_Available.json | 18 + .../examples/LocationGetQuotas.json | 14 + .../LocationListVirtualMachineSkus.json | 136 + .../examples/NspConfigurationGet.json | 72 + .../examples/NspConfigurationReconcile.json | 17 + .../examples/NspConfigurationsList.json | 75 + .../2025-06-01/examples/OperationsList.json | 1278 ++++ .../PoolCreate_AcceleratedNetworking.json | 93 + ...yptionSet_ForUserSubscriptionAccounts.json | 158 + ...merManagedKey_ForBatchManagedAccounts.json | 122 + ...yptionSet_ForUserSubscriptionAccounts.json | 111 + .../PoolCreate_DualStackNetworking.json | 144 + ...te_MinimalVirtualMachineConfiguration.json | 77 + .../PoolCreate_NoPublicIPAddresses.json | 77 + .../examples/PoolCreate_PublicIPs.json | 83 + .../examples/PoolCreate_SecurityProfile.json | 99 + .../PoolCreate_SharedImageGallery.json | 65 + .../2025-06-01/examples/PoolCreate_Tags.json | 92 + .../examples/PoolCreate_UpgradePolicy.json | 132 + .../PoolCreate_UserAssignedIdentities.json | 97 + ...oolCreate_VirtualMachineConfiguration.json | 200 + ...irtualMachineConfiguration_Extensions.json | 103 + ...ualMachineConfiguration_ManagedOSDisk.json | 99 + ...onfiguration_ServiceArtifactReference.json | 108 + .../2025-06-01/examples/PoolDelete.json | 19 + .../examples/PoolDisableAutoScale.json | 56 + .../stable/2025-06-01/examples/PoolGet.json | 146 + .../PoolGet_AcceleratedNetworking.json | 66 + .../examples/PoolGet_SecurityProfile.json | 69 + .../examples/PoolGet_UpgradePolicy.json | 86 + ...irtualMachineConfiguration_Extensions.json | 76 + ...tualMachineConfiguration_MangedOSDisk.json | 70 + ...onfiguration_ServiceArtifactReference.json | 74 + .../stable/2025-06-01/examples/PoolList.json | 152 + .../examples/PoolListWithFilter.json | 44 + .../2025-06-01/examples/PoolStopResize.json | 62 + .../examples/PoolUpdate_EnableAutoScale.json | 74 + .../examples/PoolUpdate_OtherProperties.json | 101 + .../examples/PoolUpdate_RemoveStartTask.json | 70 + .../examples/PoolUpdate_ResizePool.json | 79 + .../examples/PrivateBatchAccountCreate.json | 53 + .../examples/PrivateBatchAccountGet.json | 48 + .../PrivateEndpointConnectionDelete.json | 17 + .../PrivateEndpointConnectionGet.json | 31 + .../PrivateEndpointConnectionUpdate.json | 49 + .../PrivateEndpointConnectionsList.json | 35 + .../examples/PrivateLinkResourceGet.json | 27 + .../examples/PrivateLinkResourcesList.json | 30 + .../batch/resource-manager/readme.md | 16 +- 77 files changed, 12193 insertions(+), 6 deletions(-) create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/BatchManagement.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/NetworkSecurityPerimeter.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationCreate.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationDelete.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationGet.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationList.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageActivate.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageCreate.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageDelete.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageGet.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageList.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationUpdate.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_BYOS.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_Default.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_SystemAssignedIdentity.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_UserAssignedIdentity.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountDelete.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountGet.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountGetKeys.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountList.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountListByResourceGroup.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountRegenerateKey.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountSynchronizeAutoStorageKeys.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountUpdate.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/DetectorGet.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/DetectorList.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationCheckNameAvailability_AlreadyExists.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationCheckNameAvailability_Available.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationGetQuotas.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationListVirtualMachineSkus.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/NspConfigurationGet.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/NspConfigurationReconcile.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/NspConfigurationsList.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/OperationsList.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_AcceleratedNetworking.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_ConfidentialDiskEncryptionSet_ForUserSubscriptionAccounts.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_CustomerManagedKey_ForBatchManagedAccounts.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_DiskEncryptionSet_ForUserSubscriptionAccounts.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_DualStackNetworking.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_MinimalVirtualMachineConfiguration.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_NoPublicIPAddresses.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_PublicIPs.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_SecurityProfile.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_SharedImageGallery.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_Tags.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_UpgradePolicy.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_UserAssignedIdentities.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration_Extensions.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolDelete.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolDisableAutoScale.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_AcceleratedNetworking.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_SecurityProfile.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_UpgradePolicy.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_VirtualMachineConfiguration_Extensions.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolList.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolListWithFilter.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolStopResize.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_EnableAutoScale.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_OtherProperties.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_RemoveStartTask.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_ResizePool.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateBatchAccountCreate.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateBatchAccountGet.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionDelete.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionGet.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionUpdate.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionsList.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateLinkResourceGet.json create mode 100644 specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateLinkResourcesList.json diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/BatchManagement.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/BatchManagement.json new file mode 100644 index 000000000000..a6b388c4dde4 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/BatchManagement.json @@ -0,0 +1,6110 @@ +{ + "swagger": "2.0", + "info": { + "title": "BatchManagementClient", + "description": "The Batch Management Client.", + "version": "2025-06-01" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Microsoft Entra OAuth 2.0 auth code flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}": { + "put": { + "tags": [ + "BatchAccount" + ], + "operationId": "BatchAccount_Create", + "x-ms-examples": { + "BatchAccountCreate_Default": { + "$ref": "./examples/BatchAccountCreate_Default.json" + }, + "BatchAccountCreate_BYOS": { + "$ref": "./examples/BatchAccountCreate_BYOS.json" + }, + "PrivateBatchAccountCreate": { + "$ref": "./examples/PrivateBatchAccountCreate.json" + }, + "BatchAccountCreate_SystemAssignedIdentity": { + "$ref": "./examples/BatchAccountCreate_SystemAssignedIdentity.json" + }, + "BatchAccountCreate_UserAssignedIdentity": { + "$ref": "./examples/BatchAccountCreate_UserAssignedIdentity.json" + } + }, + "description": "Creates a new Batch account with the specified parameters. Existing accounts cannot be updated with this API and should instead be updated with the Update Batch Account API.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-z0-9]+$", + "minLength": 3, + "maxLength": 24, + "description": "A name for the Batch account which must be unique within the region. Batch account names must be between 3 and 24 characters in length and must use only numbers and lowercase letters. This name is used as part of the DNS name that is used to access the Batch service in the region in which the account is created. For example: http://accountname.region.batch.azure.com/." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/BatchAccountCreateParameters" + }, + "description": "Additional parameters for account creation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the Batch account entity.", + "schema": { + "$ref": "#/definitions/BatchAccount" + } + }, + "202": { + "description": "The operation will be completed asynchronously.", + "headers": { + "Location": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Retry-After": { + "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that specifies the delay in seconds.", + "type": "integer", + "format": "int32" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + }, + "patch": { + "tags": [ + "BatchAccount" + ], + "operationId": "BatchAccount_Update", + "x-ms-examples": { + "BatchAccountUpdate": { + "$ref": "./examples/BatchAccountUpdate.json" + } + }, + "description": "Updates the properties of an existing Batch account.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/BatchAccountUpdateParameters" + }, + "description": "Additional parameters for account update." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the Batch account entity.", + "schema": { + "$ref": "#/definitions/BatchAccount" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "delete": { + "tags": [ + "BatchAccount" + ], + "operationId": "BatchAccount_Delete", + "x-ms-examples": { + "BatchAccountDelete": { + "$ref": "./examples/BatchAccountDelete.json" + } + }, + "description": "Deletes the specified Batch account.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful." + }, + "202": { + "description": "The operation will be completed asynchronously.", + "headers": { + "Location": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Retry-After": { + "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that specifies the delay in seconds.", + "type": "integer", + "format": "int32" + } + } + }, + "204": { + "description": "NoContent -- account does not exist in the subscription." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + }, + "get": { + "tags": [ + "BatchAccount" + ], + "operationId": "BatchAccount_Get", + "x-ms-examples": { + "BatchAccountGet": { + "$ref": "./examples/BatchAccountGet.json" + }, + "PrivateBatchAccountGet": { + "$ref": "./examples/PrivateBatchAccountGet.json" + } + }, + "description": "Gets information about the specified Batch account.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the Batch account entity.", + "schema": { + "$ref": "#/definitions/BatchAccount" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/batchAccounts": { + "get": { + "tags": [ + "BatchAccount" + ], + "operationId": "BatchAccount_List", + "x-ms-examples": { + "BatchAccountList": { + "$ref": "./examples/BatchAccountList.json" + } + }, + "description": "Gets information about the Batch accounts associated with the subscription.", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains a list of Batch account entities associated with the subscription.", + "schema": { + "$ref": "#/definitions/BatchAccountListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts": { + "get": { + "tags": [ + "BatchAccount" + ], + "operationId": "BatchAccount_ListByResourceGroup", + "x-ms-examples": { + "BatchAccountListByResourceGroup": { + "$ref": "./examples/BatchAccountListByResourceGroup.json" + } + }, + "description": "Gets information about the Batch accounts associated with the specified resource group.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains a list of Batch account entities associated with the resource group.", + "schema": { + "$ref": "#/definitions/BatchAccountListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/syncAutoStorageKeys": { + "post": { + "tags": [ + "BatchAccount" + ], + "operationId": "BatchAccount_SynchronizeAutoStorageKeys", + "x-ms-examples": { + "BatchAccountSynchronizeAutoStorageKeys": { + "$ref": "./examples/BatchAccountSynchronizeAutoStorageKeys.json" + } + }, + "description": "Synchronizes access keys for the auto-storage account configured for the specified Batch account, only if storage key authentication is being used.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "The operation was successful." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/regenerateKeys": { + "post": { + "tags": [ + "BatchAccount" + ], + "operationId": "BatchAccount_RegenerateKey", + "x-ms-examples": { + "BatchAccountRegenerateKey": { + "$ref": "./examples/BatchAccountRegenerateKey.json" + } + }, + "summary": "Regenerates the specified account key for the Batch account.", + "description": "This operation applies only to Batch accounts with allowedAuthenticationModes containing 'SharedKey'. If the Batch account doesn't contain 'SharedKey' in its allowedAuthenticationMode, clients cannot use shared keys to authenticate, and must use another allowedAuthenticationModes instead. In this case, regenerating the keys will fail.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/BatchAccountRegenerateKeyParameters" + }, + "description": "The type of key to regenerate." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the Batch account keys.", + "schema": { + "$ref": "#/definitions/BatchAccountKeys" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/listKeys": { + "post": { + "tags": [ + "BatchAccount" + ], + "operationId": "BatchAccount_GetKeys", + "x-ms-examples": { + "BatchAccountGetKeys": { + "$ref": "./examples/BatchAccountGetKeys.json" + } + }, + "summary": "Gets the account keys for the specified Batch account.", + "description": "This operation applies only to Batch accounts with allowedAuthenticationModes containing 'SharedKey'. If the Batch account doesn't contain 'SharedKey' in its allowedAuthenticationMode, clients cannot use shared keys to authenticate, and must use another allowedAuthenticationModes instead. In this case, getting the keys will fail.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the keys of the Batch account.", + "schema": { + "$ref": "#/definitions/BatchAccountKeys" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions/{versionName}/activate": { + "post": { + "tags": [ + "ApplicationPackage" + ], + "operationId": "ApplicationPackage_Activate", + "x-ms-examples": { + "ApplicationPackageActivate": { + "$ref": "./examples/ApplicationPackageActivate.json" + } + }, + "description": "Activates the specified application package. This should be done after the `ApplicationPackage` was created and uploaded. This needs to be done before an `ApplicationPackage` can be used on Pools or Tasks.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApplicationNameParameter" + }, + { + "$ref": "#/parameters/VersionNameParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ActivateApplicationPackageParameters" + }, + "description": "The parameters for the request." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the application package entity.", + "schema": { + "$ref": "#/definitions/ApplicationPackage" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}": { + "put": { + "tags": [ + "Application" + ], + "operationId": "Application_Create", + "x-ms-examples": { + "ApplicationCreate": { + "$ref": "./examples/ApplicationCreate.json" + } + }, + "description": "Adds an application to the specified Batch account.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApplicationNameParameter" + }, + { + "name": "parameters", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/Application" + }, + "description": "The parameters for the request." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the application entity.", + "schema": { + "$ref": "#/definitions/Application" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "delete": { + "tags": [ + "Application" + ], + "operationId": "Application_Delete", + "x-ms-examples": { + "ApplicationDelete": { + "$ref": "./examples/ApplicationDelete.json" + } + }, + "description": "Deletes an application.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApplicationNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful." + }, + "204": { + "description": "The operation was successful." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "get": { + "tags": [ + "Application" + ], + "operationId": "Application_Get", + "x-ms-examples": { + "ApplicationGet": { + "$ref": "./examples/ApplicationGet.json" + } + }, + "description": "Gets information about the specified application.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApplicationNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the application entity.", + "schema": { + "$ref": "#/definitions/Application" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "patch": { + "tags": [ + "Application" + ], + "operationId": "Application_Update", + "x-ms-examples": { + "ApplicationUpdate": { + "$ref": "./examples/ApplicationUpdate.json" + } + }, + "description": "Updates settings for the specified application.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApplicationNameParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Application" + }, + "description": "The parameters for the request." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the application entity.", + "schema": { + "$ref": "#/definitions/Application" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions/{versionName}": { + "put": { + "tags": [ + "ApplicationPackage" + ], + "operationId": "ApplicationPackage_Create", + "x-ms-examples": { + "ApplicationPackageCreate": { + "$ref": "./examples/ApplicationPackageCreate.json" + } + }, + "description": "Creates an application package record. The record contains a storageUrl where the package should be uploaded to. Once it is uploaded the `ApplicationPackage` needs to be activated using `ApplicationPackageActive` before it can be used. If the auto storage account was configured to use storage keys, the URL returned will contain a SAS.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApplicationNameParameter" + }, + { + "$ref": "#/parameters/VersionNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "parameters", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/ApplicationPackage" + }, + "description": "The parameters for the request." + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the application package entity.", + "schema": { + "$ref": "#/definitions/ApplicationPackage" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "delete": { + "tags": [ + "ApplicationPackage" + ], + "operationId": "ApplicationPackage_Delete", + "x-ms-examples": { + "ApplicationPackageDelete": { + "$ref": "./examples/ApplicationPackageDelete.json" + } + }, + "description": "Deletes an application package record and its associated binary file.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApplicationNameParameter" + }, + { + "$ref": "#/parameters/VersionNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful." + }, + "204": { + "description": "The operation was successful." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "get": { + "tags": [ + "ApplicationPackage" + ], + "operationId": "ApplicationPackage_Get", + "x-ms-examples": { + "ApplicationPackageGet": { + "$ref": "./examples/ApplicationPackageGet.json" + } + }, + "description": "Gets information about the specified application package.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApplicationNameParameter" + }, + { + "$ref": "#/parameters/VersionNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the application package entity.", + "schema": { + "$ref": "#/definitions/ApplicationPackage" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications": { + "get": { + "tags": [ + "Application" + ], + "operationId": "Application_List", + "x-ms-examples": { + "ApplicationList": { + "$ref": "./examples/ApplicationList.json" + } + }, + "description": "Lists all of the applications in the specified account.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "name": "maxresults", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The maximum number of items to return in the response." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains a list of the application entities associated with the specified account.", + "schema": { + "$ref": "#/definitions/ListApplicationsResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions": { + "get": { + "tags": [ + "ApplicationPackage" + ], + "operationId": "ApplicationPackage_List", + "x-ms-examples": { + "ApplicationPackageList": { + "$ref": "./examples/ApplicationPackageList.json" + } + }, + "description": "Lists all of the application packages in the specified application.", + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApplicationNameParameter" + }, + { + "name": "maxresults", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The maximum number of items to return in the response." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains a list of the application package entities associated with the specified application.", + "schema": { + "$ref": "#/definitions/ListApplicationPackagesResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/quotas": { + "get": { + "tags": [ + "Location" + ], + "operationId": "Location_GetQuotas", + "x-ms-examples": { + "LocationGetQuotas": { + "$ref": "./examples/LocationGetQuotas.json" + } + }, + "description": "Gets the Batch service quotas for the specified subscription at the given location.", + "parameters": [ + { + "name": "locationName", + "in": "path", + "required": true, + "type": "string", + "description": "The region for which to retrieve Batch service quotas." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the Batch service quotas for the subscription in the specified location.", + "schema": { + "$ref": "#/definitions/BatchLocationQuota" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/virtualMachineSkus": { + "get": { + "tags": [ + "Location" + ], + "operationId": "Location_ListSupportedVirtualMachineSkus", + "x-ms-examples": { + "LocationListVirtualMachineSkus": { + "$ref": "./examples/LocationListVirtualMachineSkus.json" + } + }, + "description": "Gets the list of Batch supported Virtual Machine VM sizes available at the given location.", + "parameters": [ + { + "name": "locationName", + "in": "path", + "required": true, + "type": "string", + "description": "The region for which to retrieve Batch service supported SKUs." + }, + { + "name": "maxresults", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The maximum number of items to return in the response." + }, + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "OData filter expression. Valid properties for filtering are \"familyName\"." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the Batch service supported virtual machine vm sizes for the subscription in the specified location.", + "schema": { + "$ref": "#/definitions/SupportedSkusResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.Batch/operations": { + "get": { + "tags": [ + "Operations" + ], + "operationId": "Operations_List", + "x-ms-examples": { + "OperationsList": { + "$ref": "./examples/OperationsList.json" + } + }, + "description": "Lists available operations for the Microsoft.Batch provider", + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the list of available operations.", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/checkNameAvailability": { + "post": { + "operationId": "Location_CheckNameAvailability", + "description": "Checks whether the Batch account name is available in the specified region.", + "x-ms-examples": { + "LocationCheckNameAvailability_Available": { + "$ref": "./examples/LocationCheckNameAvailability_Available.json" + }, + "LocationCheckNameAvailability_AlreadyExists": { + "$ref": "./examples/LocationCheckNameAvailability_AlreadyExists.json" + } + }, + "parameters": [ + { + "name": "locationName", + "in": "path", + "required": true, + "type": "string", + "description": "The desired region for the name check." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityParameters" + }, + "description": "Properties needed to check the availability of a name." + } + ], + "responses": { + "200": { + "description": "Success. Returns details about whether a Batch account name is available.", + "schema": { + "$ref": "#/definitions/CheckNameAvailabilityResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/detectors": { + "get": { + "operationId": "BatchAccount_ListDetectors", + "description": "Gets information about the detectors available for a given Batch account.", + "x-ms-examples": { + "ListDetectors": { + "$ref": "./examples/DetectorList.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains a list of detectors associated with a Batch account.", + "schema": { + "$ref": "#/definitions/DetectorListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/detectors/{detectorId}": { + "get": { + "operationId": "BatchAccount_GetDetector", + "description": "Gets information about the given detector for a given Batch account.", + "x-ms-examples": { + "GetDetector": { + "$ref": "./examples/DetectorGet.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/DetectorIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains information about the given detector associated with a Batch account.", + "schema": { + "$ref": "#/definitions/DetectorResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateLinkResources": { + "get": { + "tags": [ + "PrivateLinkResource" + ], + "operationId": "PrivateLinkResource_ListByBatchAccount", + "description": "Lists all of the private link resources in the specified account.", + "x-ms-examples": { + "ListPrivateLinkResource": { + "$ref": "./examples/PrivateLinkResourcesList.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "maxresults", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The maximum number of items to return in the response." + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains a list of private link resources associated with the account.", + "schema": { + "$ref": "#/definitions/ListPrivateLinkResourcesResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateLinkResources/{privateLinkResourceName}": { + "get": { + "tags": [ + "PrivateLinkResource" + ], + "operationId": "PrivateLinkResource_Get", + "description": "Gets information about the specified private link resource.", + "x-ms-examples": { + "GetPrivateLinkResource": { + "$ref": "./examples/PrivateLinkResourceGet.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/PrivateLinkResourceNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the private link resource.", + "schema": { + "$ref": "#/definitions/PrivateLinkResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateEndpointConnections": { + "get": { + "tags": [ + "PrivateEndpointConnection" + ], + "operationId": "PrivateEndpointConnection_ListByBatchAccount", + "description": "Lists all of the private endpoint connections in the specified account.", + "x-ms-examples": { + "ListPrivateEndpointConnections": { + "$ref": "./examples/PrivateEndpointConnectionsList.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "maxresults", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The maximum number of items to return in the response." + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains a list of private link resources associated with the account.", + "schema": { + "$ref": "#/definitions/ListPrivateEndpointConnectionsResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}": { + "get": { + "tags": [ + "PrivateEndpointConnection" + ], + "operationId": "PrivateEndpointConnection_Get", + "description": "Gets information about the specified private endpoint connection.", + "x-ms-examples": { + "GetPrivateEndpointConnection": { + "$ref": "./examples/PrivateEndpointConnectionGet.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the private endpoint connection.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "patch": { + "tags": [ + "PrivateEndpointConnection" + ], + "operationId": "PrivateEndpointConnection_Update", + "description": "Updates the properties of an existing private endpoint connection.", + "x-ms-examples": { + "UpdatePrivateEndpointConnection": { + "$ref": "./examples/PrivateEndpointConnectionUpdate.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "description": "PrivateEndpointConnection properties that should be updated. Properties that are supplied will be updated, any property not supplied will be unchanged." + }, + { + "name": "If-Match", + "in": "header", + "required": false, + "type": "string", + "description": "The state (ETag) version of the private endpoint connection to update. This value can be omitted or set to \"*\" to apply the operation unconditionally." + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the PrivateEndpointConnection.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "202": { + "description": "The operation was accepted and will be performed in the background.", + "headers": { + "Location": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Retry-After": { + "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that represents the seconds.", + "type": "integer", + "format": "int32" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + } + }, + "delete": { + "tags": [ + "PrivateEndpointConnection" + ], + "operationId": "PrivateEndpointConnection_Delete", + "x-ms-examples": { + "PrivateEndpointConnectionDelete": { + "$ref": "./examples/PrivateEndpointConnectionDelete.json" + } + }, + "description": "Deletes the specified private endpoint connection.", + "parameters": [ + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/PrivateEndpointConnectionNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "202": { + "description": "The operation will be completed asynchronously.", + "headers": { + "Location": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Retry-After": { + "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that specifies the delay in seconds.", + "type": "integer", + "format": "int32" + } + } + }, + "204": { + "description": "The operation was successful." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools": { + "get": { + "tags": [ + "Pool" + ], + "operationId": "Pool_ListByBatchAccount", + "description": "Lists all of the pools in the specified account.", + "x-ms-examples": { + "ListPool": { + "$ref": "./examples/PoolList.json" + }, + "ListPoolWithFilter": { + "$ref": "./examples/PoolListWithFilter.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "name": "maxresults", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "description": "The maximum number of items to return in the response." + }, + { + "name": "$select", + "in": "query", + "required": false, + "type": "string", + "description": "Comma separated list of properties that should be returned. e.g. \"properties/provisioningState\". Only top level properties under properties/ are valid for selection." + }, + { + "name": "$filter", + "in": "query", + "required": false, + "type": "string", + "description": "OData filter expression. Valid properties for filtering are:\n\n name\n properties/allocationState\n properties/allocationStateTransitionTime\n properties/creationTime\n properties/provisioningState\n properties/provisioningStateTransitionTime\n properties/lastModified\n properties/vmSize\n properties/interNodeCommunication\n properties/scaleSettings/autoScale\n properties/scaleSettings/fixedScale" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains a list of pools in the account.", + "schema": { + "$ref": "#/definitions/ListPoolsResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}": { + "put": { + "tags": [ + "Pool" + ], + "operationId": "Pool_Create", + "description": "Creates a new pool inside the specified account.", + "x-ms-examples": { + "CreatePool - Minimal VirtualMachineConfiguration": { + "$ref": "./examples/PoolCreate_MinimalVirtualMachineConfiguration.json" + }, + "CreatePool - Custom Image": { + "$ref": "./examples/PoolCreate_SharedImageGallery.json" + }, + "CreatePool - Public IPs": { + "$ref": "./examples/PoolCreate_PublicIPs.json" + }, + "CreatePool - Full VirtualMachineConfiguration": { + "$ref": "./examples/PoolCreate_VirtualMachineConfiguration.json" + }, + "CreatePool - No public IP": { + "$ref": "./examples/PoolCreate_NoPublicIPAddresses.json" + }, + "CreatePool - UserAssignedIdentities": { + "$ref": "./examples/PoolCreate_UserAssignedIdentities.json" + }, + "CreatePool - VirtualMachineConfiguration Extensions": { + "$ref": "./examples/PoolCreate_VirtualMachineConfiguration_Extensions.json" + }, + "CreatePool - accelerated networking": { + "$ref": "./examples/PoolCreate_AcceleratedNetworking.json" + }, + "CreatePool - SecurityProfile": { + "$ref": "./examples/PoolCreate_SecurityProfile.json" + }, + "CreatePool - UpgradePolicy": { + "$ref": "./examples/PoolCreate_UpgradePolicy.json" + }, + "CreatePool - VirtualMachineConfiguration ServiceArtifactReference": { + "$ref": "./examples/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json" + }, + "CreatePool - VirtualMachineConfiguration OSDisk": { + "$ref": "./examples/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json" + }, + "CreatePool - Tags": { + "$ref": "./examples/PoolCreate_Tags.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/PoolNameParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Pool" + }, + "description": "Additional parameters for pool creation." + }, + { + "name": "If-Match", + "in": "header", + "required": false, + "type": "string", + "description": "The entity state (ETag) version of the pool to update. A value of \"*\" can be used to apply the operation only if the pool already exists. If omitted, this operation will always be applied." + }, + { + "name": "If-None-Match", + "in": "header", + "required": false, + "type": "string", + "description": "Set to '*' to allow a new pool to be created, but to prevent updating an existing pool. Other values will be ignored." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the pool entity.", + "schema": { + "$ref": "#/definitions/Pool" + }, + "headers": { + "ETag": { + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", + "type": "string" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "patch": { + "tags": [ + "Pool" + ], + "operationId": "Pool_Update", + "description": "Updates the properties of an existing pool.", + "x-ms-examples": { + "UpdatePool - Resize Pool": { + "$ref": "./examples/PoolUpdate_ResizePool.json" + }, + "UpdatePool - Enable Autoscale": { + "$ref": "./examples/PoolUpdate_EnableAutoScale.json" + }, + "UpdatePool - Remove Start Task": { + "$ref": "./examples/PoolUpdate_RemoveStartTask.json" + }, + "UpdatePool - Other Properties": { + "$ref": "./examples/PoolUpdate_OtherProperties.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/PoolNameParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Pool" + }, + "description": "Pool properties that should be updated. Properties that are supplied will be updated, any property not supplied will be unchanged." + }, + { + "name": "If-Match", + "in": "header", + "required": false, + "type": "string", + "description": "The entity state (ETag) version of the pool to update. This value can be omitted or set to \"*\" to apply the operation unconditionally." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the pool entity.", + "schema": { + "$ref": "#/definitions/Pool" + }, + "headers": { + "ETag": { + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", + "type": "string" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + }, + "delete": { + "tags": [ + "Pool" + ], + "operationId": "Pool_Delete", + "description": "Deletes the specified pool.", + "x-ms-examples": { + "DeletePool": { + "$ref": "./examples/PoolDelete.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/PoolNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful." + }, + "202": { + "description": "The operation will be completed asynchronously.", + "headers": { + "Location": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Retry-After": { + "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that represents the seconds.", + "type": "integer", + "format": "int32" + } + } + }, + "204": { + "description": "The operation was successful." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + }, + "get": { + "tags": [ + "Pool" + ], + "operationId": "Pool_Get", + "description": "Gets information about the specified pool.", + "x-ms-examples": { + "GetPool": { + "$ref": "./examples/PoolGet.json" + }, + "GetPool - VirtualMachineConfiguration Extensions": { + "$ref": "./examples/PoolGet_VirtualMachineConfiguration_Extensions.json" + }, + "GetPool - AcceleratedNetworking": { + "$ref": "./examples/PoolGet_AcceleratedNetworking.json" + }, + "GetPool - SecurityProfile": { + "$ref": "./examples/PoolGet_SecurityProfile.json" + }, + "GetPool - UpgradePolicy": { + "$ref": "./examples/PoolGet_UpgradePolicy.json" + }, + "GetPool - VirtualMachineConfiguration ServiceArtifactReference": { + "$ref": "./examples/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json" + }, + "GetPool - VirtualMachineConfiguration OSDisk": { + "$ref": "./examples/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/PoolNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the pool entity.", + "schema": { + "$ref": "#/definitions/Pool" + }, + "headers": { + "ETag": { + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", + "type": "string" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}/disableAutoScale": { + "post": { + "tags": [ + "Pool" + ], + "operationId": "Pool_DisableAutoScale", + "description": "Disables automatic scaling for a pool.", + "x-ms-examples": { + "Disable AutoScale": { + "$ref": "./examples/PoolDisableAutoScale.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/PoolNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the pool entity.", + "schema": { + "$ref": "#/definitions/Pool" + }, + "headers": { + "ETag": { + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", + "type": "string" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}/stopResize": { + "post": { + "tags": [ + "Pool" + ], + "operationId": "Pool_StopResize", + "summary": "Stops an ongoing resize operation on the pool.", + "description": "This does not restore the pool to its previous state before the resize operation: it only stops any further changes being made, and the pool maintains its current state. After stopping, the pool stabilizes at the number of nodes it was at when the stop operation was done. During the stop operation, the pool allocation state changes first to stopping and then to steady. A resize operation need not be an explicit resize pool request; this API can also be used to halt the initial sizing of the pool when it is created.", + "x-ms-examples": { + "StopPoolResize": { + "$ref": "./examples/PoolStopResize.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/PoolNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the pool entity.", + "schema": { + "$ref": "#/definitions/Pool" + }, + "headers": { + "ETag": { + "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.", + "type": "string" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/outboundNetworkDependenciesEndpoints": { + "get": { + "tags": [ + "BatchAccount" + ], + "operationId": "BatchAccount_ListOutboundNetworkDependenciesEndpoints", + "description": "Lists the endpoints that a Batch Compute Node under this Batch Account may call as part of Batch service administration. If you are deploying a Pool inside of a virtual network that you specify, you must make sure your network allows outbound access to these endpoints. Failure to allow access to these endpoints may cause Batch to mark the affected nodes as unusable. For more information about creating a pool inside of a virtual network, see https://learn.microsoft.com/azure/batch/batch-virtual-network.", + "x-ms-examples": { + "ListOutboundNetworkDependencies": { + "$ref": "./examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains a list of outbound network dependencies.", + "schema": { + "$ref": "#/definitions/OutboundEnvironmentEndpointCollection" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "AutoStorageBaseProperties": { + "type": "object", + "properties": { + "storageAccountId": { + "type": "string", + "format": "arm-id", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Storage/storageAccounts" + } + ] + }, + "description": "The resource ID of the storage account to be used for auto-storage account." + }, + "authenticationMode": { + "type": "string", + "description": "The authentication mode which the Batch service will use to manage the auto-storage account.", + "default": "StorageKeys", + "enum": [ + "StorageKeys", + "BatchAccountManagedIdentity" + ], + "x-ms-enum": { + "name": "AutoStorageAuthenticationMode", + "modelAsString": false, + "values": [ + { + "value": "StorageKeys", + "description": "The Batch service will authenticate requests to auto-storage using storage account keys." + }, + { + "value": "BatchAccountManagedIdentity", + "description": "The Batch service will authenticate requests to auto-storage using the managed identity assigned to the Batch account." + } + ] + } + }, + "nodeIdentityReference": { + "title": "The reference to the user assigned identity which compute nodes will use to access auto-storage.", + "description": "The identity referenced here must be assigned to pools which have compute nodes that need access to auto-storage.", + "$ref": "#/definitions/ComputeNodeIdentityReference" + } + }, + "required": [ + "storageAccountId" + ], + "description": "The properties related to the auto-storage account." + }, + "BatchAccountUpdateProperties": { + "type": "object", + "properties": { + "autoStorage": { + "$ref": "#/definitions/AutoStorageBaseProperties", + "description": "The properties related to the auto-storage account." + }, + "encryption": { + "title": "The encryption configuration for the Batch account.", + "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.", + "$ref": "#/definitions/EncryptionProperties" + }, + "allowedAuthenticationModes": { + "x-nullable": true, + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticationMode" + }, + "description": "List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane." + }, + "publicNetworkAccess": { + "title": "The network access type for accessing Azure Batch account.", + "description": "If not specified, the default value is 'enabled'.", + "$ref": "#/definitions/PublicNetworkAccessType" + }, + "networkProfile": { + "title": "Network profile for Batch account, which contains network rule settings for each endpoint.", + "description": "The network profile only takes effect when publicNetworkAccess is enabled.", + "$ref": "#/definitions/NetworkProfile" + } + }, + "description": "The properties of a Batch account." + }, + "BatchAccountCreateProperties": { + "type": "object", + "properties": { + "autoStorage": { + "$ref": "#/definitions/AutoStorageBaseProperties", + "description": "The properties related to the auto-storage account." + }, + "poolAllocationMode": { + "title": "The allocation mode to use for creating pools in the Batch account.", + "description": "The pool allocation mode also affects how clients may authenticate to the Batch Service API. If the mode is BatchService, clients may authenticate using access keys or Microsoft Entra ID. If the mode is UserSubscription, clients must use Microsoft Entra ID. The default is BatchService.", + "$ref": "#/definitions/PoolAllocationMode" + }, + "keyVaultReference": { + "$ref": "#/definitions/KeyVaultReference", + "description": "A reference to the Azure key vault associated with the Batch account." + }, + "publicNetworkAccess": { + "title": "The network access type for accessing Azure Batch account.", + "description": "If not specified, the default value is 'enabled'.", + "$ref": "#/definitions/PublicNetworkAccessType" + }, + "networkProfile": { + "title": "Network profile for Batch account, which contains network rule settings for each endpoint.", + "description": "The network profile only takes effect when publicNetworkAccess is enabled.", + "$ref": "#/definitions/NetworkProfile" + }, + "encryption": { + "title": "The encryption configuration for the Batch account.", + "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.", + "$ref": "#/definitions/EncryptionProperties" + }, + "allowedAuthenticationModes": { + "x-nullable": true, + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticationMode" + }, + "description": "List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane." + } + }, + "description": "The properties of a Batch account." + }, + "AuthenticationMode": { + "type": "string", + "description": "The authentication mode for the Batch account.", + "enum": [ + "SharedKey", + "AAD", + "TaskAuthenticationToken" + ], + "x-ms-enum": { + "name": "AuthenticationMode", + "modelAsString": false, + "values": [ + { + "value": "SharedKey", + "description": "The authentication mode using shared keys." + }, + { + "value": "AAD", + "description": "The authentication mode using Microsoft Entra ID." + }, + { + "value": "TaskAuthenticationToken", + "description": "The authentication mode using task authentication tokens." + } + ] + } + }, + "BatchAccountCreateParameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The region in which to create the account." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The user-specified tags associated with the account." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/BatchAccountCreateProperties", + "description": "The properties of the Batch account." + }, + "identity": { + "$ref": "#/definitions/BatchAccountIdentity", + "description": "The identity of the Batch account." + } + }, + "required": [ + "location" + ], + "description": "Parameters supplied to the Create operation." + }, + "KeyVaultReference": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.KeyVault/vaults" + } + ] + }, + "description": "The resource ID of the Azure key vault associated with the Batch account." + }, + "url": { + "type": "string", + "description": "The URL of the Azure key vault associated with the Batch account." + } + }, + "required": [ + "id", + "url" + ], + "description": "Identifies the Azure key vault associated with a Batch account." + }, + "AutoStorageProperties": { + "type": "object", + "properties": { + "lastKeySync": { + "type": "string", + "format": "date-time", + "description": "The UTC time at which storage keys were last synchronized with the Batch account." + } + }, + "required": [ + "lastKeySync" + ], + "allOf": [ + { + "$ref": "#/definitions/AutoStorageBaseProperties" + } + ], + "description": "Contains information about the auto-storage account associated with a Batch account." + }, + "VirtualMachineFamilyCoreQuota": { + "type": "object", + "properties": { + "name": { + "readOnly": true, + "x-nullable": false, + "type": "string", + "description": "The Virtual Machine family name." + }, + "coreQuota": { + "readOnly": true, + "x-nullable": false, + "type": "integer", + "format": "int32", + "description": "The core quota for the VM family for the Batch account." + } + }, + "description": "A VM Family and its associated core quota for the Batch account." + }, + "BatchAccountIdentity": { + "type": "object", + "properties": { + "principalId": { + "readOnly": true, + "type": "string", + "description": "The principal id of the Batch account. This property will only be provided for a system assigned identity." + }, + "tenantId": { + "readOnly": true, + "type": "string", + "description": "The tenant id associated with the Batch account. This property will only be provided for a system assigned identity." + }, + "type": { + "type": "string", + "description": "The type of identity used for the Batch account.", + "enum": [ + "SystemAssigned", + "UserAssigned", + "None" + ], + "x-ms-enum": { + "name": "ResourceIdentityType", + "modelAsString": false, + "values": [ + { + "value": "SystemAssigned", + "description": "Batch account has a system assigned identity with it." + }, + { + "value": "UserAssigned", + "description": "Batch account has user assigned identities with it." + }, + { + "value": "None", + "description": "Batch account has no identity associated with it. Setting `None` in update account will remove existing identities." + } + ] + } + }, + "userAssignedIdentities": { + "type": "object", + "description": "The list of user identities associated with the Batch account.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentities" + } + } + }, + "description": "The identity of the Batch account, if configured. This is used when the user specifies 'Microsoft.KeyVault' as their Batch account encryption configuration or when `ManagedIdentity` is selected as the auto-storage authentication mode.", + "required": [ + "type" + ] + }, + "BatchAccountProperties": { + "type": "object", + "properties": { + "accountEndpoint": { + "type": "string", + "readOnly": true, + "description": "The account endpoint used to interact with the Batch service." + }, + "nodeManagementEndpoint": { + "type": "string", + "readOnly": true, + "description": "The endpoint used by compute node to connect to the Batch node management service." + }, + "provisioningState": { + "type": "string", + "readOnly": true, + "x-nullable": false, + "description": "The provisioned state of the resource", + "enum": [ + "Invalid", + "Creating", + "Deleting", + "Succeeded", + "Failed", + "Cancelled" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": false, + "values": [ + { + "value": "Invalid", + "description": "The account is in an invalid state." + }, + { + "value": "Creating", + "description": "The account is being created." + }, + { + "value": "Deleting", + "description": "The account is being deleted." + }, + { + "value": "Succeeded", + "description": "The account has been created and is ready for use." + }, + { + "value": "Failed", + "description": "The last operation for the account is failed." + }, + { + "value": "Cancelled", + "description": "The last operation for the account is cancelled." + } + ] + } + }, + "poolAllocationMode": { + "readOnly": true, + "x-nullable": false, + "title": "The allocation mode to use for creating pools in the Batch account.", + "$ref": "#/definitions/PoolAllocationMode" + }, + "keyVaultReference": { + "title": "A reference to the Azure key vault associated with the Batch account.", + "readOnly": true, + "$ref": "#/definitions/KeyVaultReference" + }, + "publicNetworkAccess": { + "x-nullable": true, + "title": "The network interface type for accessing Azure Batch service and Batch account operations.", + "description": "If not specified, the default value is 'enabled'.", + "$ref": "#/definitions/PublicNetworkAccessType" + }, + "networkProfile": { + "x-nullable": true, + "title": "Network profile for Batch account, which contains network rule settings for each endpoint.", + "description": "The network profile only takes effect when publicNetworkAccess is enabled.", + "$ref": "#/definitions/NetworkProfile" + }, + "privateEndpointConnections": { + "readOnly": true, + "x-nullable": true, + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "description": "List of private endpoint connections associated with the Batch account" + }, + "autoStorage": { + "title": "The properties and status of any auto-storage account associated with the Batch account.", + "readOnly": true, + "$ref": "#/definitions/AutoStorageProperties" + }, + "encryption": { + "title": "The encryption configuration for the Batch account.", + "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead.", + "readOnly": true, + "$ref": "#/definitions/EncryptionProperties" + }, + "dedicatedCoreQuota": { + "readOnly": true, + "x-nullable": true, + "type": "integer", + "format": "int32", + "title": "The dedicated core quota for the Batch account.", + "description": "For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned." + }, + "lowPriorityCoreQuota": { + "readOnly": true, + "x-nullable": true, + "type": "integer", + "format": "int32", + "title": "The Spot/low-priority core quota for the Batch account.", + "description": "For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned." + }, + "dedicatedCoreQuotaPerVMFamily": { + "readOnly": true, + "x-nullable": true, + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineFamilyCoreQuota" + }, + "x-ms-identifiers": [ + "name" + ], + "description": "A list of the dedicated core quota per Virtual Machine family for the Batch account. For accounts with PoolAllocationMode set to UserSubscription, quota is managed on the subscription so this value is not returned." + }, + "dedicatedCoreQuotaPerVMFamilyEnforced": { + "readOnly": true, + "x-nullable": false, + "type": "boolean", + "title": "A value indicating whether core quotas per Virtual Machine family are enforced for this account", + "description": "If this flag is true, dedicated core quota is enforced via both the dedicatedCoreQuotaPerVMFamily and dedicatedCoreQuota properties on the account. If this flag is false, dedicated core quota is enforced only via the dedicatedCoreQuota property on the account and does not consider Virtual Machine family." + }, + "poolQuota": { + "readOnly": true, + "x-nullable": false, + "type": "integer", + "format": "int32", + "title": "The pool quota for the Batch account." + }, + "activeJobAndJobScheduleQuota": { + "readOnly": true, + "x-nullable": false, + "type": "integer", + "format": "int32", + "title": "The active job and job schedule quota for the Batch account." + }, + "allowedAuthenticationModes": { + "readOnly": true, + "x-nullable": true, + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticationMode" + }, + "description": "List of allowed authentication modes for the Batch account that can be used to authenticate with the data plane. This does not affect authentication with the control plane." + } + }, + "description": "Account specific properties." + }, + "BatchAccount": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/BatchAccountProperties", + "description": "The properties associated with the account." + }, + "identity": { + "$ref": "#/definitions/BatchAccountIdentity", + "description": "The identity of the Batch account." + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureResource" + } + ], + "description": "Contains information about an Azure Batch account." + }, + "BatchAccountUpdateParameters": { + "type": "object", + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The user-specified tags associated with the account." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/BatchAccountUpdateProperties", + "description": "The properties of the account." + }, + "identity": { + "$ref": "#/definitions/BatchAccountIdentity", + "description": "The identity of the Batch account." + } + }, + "description": "Parameters for updating an Azure Batch account." + }, + "BatchAccountListResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/BatchAccount" + }, + "x-ms-identifiers": [ + "/properties/accountEndpoint" + ], + "description": "The collection of Batch accounts returned by the listing operation." + }, + "nextLink": { + "type": "string", + "description": "The continuation token." + } + }, + "description": "Values returned by the List operation." + }, + "EncryptionProperties": { + "type": "object", + "properties": { + "keySource": { + "type": "string", + "description": "Type of the key source.", + "enum": [ + "Microsoft.Batch", + "Microsoft.KeyVault" + ], + "x-ms-enum": { + "name": "KeySource", + "modelAsString": false, + "values": [ + { + "value": "Microsoft.Batch", + "description": "Batch creates and manages the encryption keys used to protect the account data." + }, + { + "value": "Microsoft.KeyVault", + "description": "The encryption keys used to protect the account data are stored in an external key vault. If this is set then the Batch Account identity must be set to `SystemAssigned` and a valid Key Identifier must also be supplied under the keyVaultProperties." + } + ] + } + }, + "keyVaultProperties": { + "$ref": "#/definitions/KeyVaultProperties", + "description": "Additional details when using Microsoft.KeyVault" + } + }, + "description": "Configures how customer data is encrypted inside the Batch account. By default, accounts are encrypted using a Microsoft managed key. For additional control, a customer-managed key can be used instead." + }, + "KeyVaultProperties": { + "type": "object", + "properties": { + "keyIdentifier": { + "type": "string", + "description": "Full path to the secret with or without version. Example https://mykeyvault.vault.azure.net/keys/testkey/6e34a81fef704045975661e297a4c053. or https://mykeyvault.vault.azure.net/keys/testkey. To be usable the following prerequisites must be met:\n\n The Batch Account has a System Assigned identity\n The account identity has been granted Key/Get, Key/Unwrap and Key/Wrap permissions\n The KeyVault has soft-delete and purge protection enabled" + } + }, + "description": "KeyVault configuration when using an encryption KeySource of Microsoft.KeyVault." + }, + "BatchAccountRegenerateKeyParameters": { + "type": "object", + "properties": { + "keyName": { + "type": "string", + "description": "The type of account key to regenerate.", + "enum": [ + "Primary", + "Secondary" + ], + "x-ms-enum": { + "name": "AccountKeyType", + "modelAsString": false, + "values": [ + { + "value": "Primary", + "description": "The primary account key." + }, + { + "value": "Secondary", + "description": "The secondary account key." + } + ] + } + } + }, + "required": [ + "keyName" + ], + "description": "Parameters supplied to the RegenerateKey operation." + }, + "BatchAccountKeys": { + "type": "object", + "properties": { + "accountName": { + "type": "string", + "readOnly": true, + "description": "The Batch account name." + }, + "primary": { + "type": "string", + "readOnly": true, + "description": "The primary key associated with the account." + }, + "secondary": { + "type": "string", + "readOnly": true, + "description": "The secondary key associated with the account." + } + }, + "description": "A set of Azure Batch account keys." + }, + "ActivateApplicationPackageParameters": { + "type": "object", + "properties": { + "format": { + "type": "string", + "description": "The format of the application package binary file." + } + }, + "required": [ + "format" + ], + "description": "Parameters for an activating an application package." + }, + "Application": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationProperties", + "description": "The properties associated with the Application." + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureProxyResource" + } + ], + "description": "Contains information about an application in a Batch account." + }, + "ApplicationProperties": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name for the application." + }, + "allowUpdates": { + "type": "boolean", + "description": "A value indicating whether packages within the application may be overwritten using the same version string." + }, + "defaultVersion": { + "type": "string", + "description": "The package to use if a client requests the application but does not specify a version. This property can only be set to the name of an existing package." + } + }, + "description": "The properties associated with the Application." + }, + "ApplicationPackage": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ApplicationPackageProperties", + "description": "The properties associated with the Application Package." + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureProxyResource" + } + ], + "description": "An application package which represents a particular version of an application." + }, + "ApplicationPackageProperties": { + "type": "object", + "properties": { + "state": { + "type": "string", + "readOnly": true, + "description": "The current state of the application package.", + "enum": [ + "Pending", + "Active" + ], + "x-ms-enum": { + "name": "PackageState", + "modelAsString": false, + "values": [ + { + "value": "Pending", + "description": "The application package has been created but has not yet been activated." + }, + { + "value": "Active", + "description": "The application package is ready for use." + } + ] + } + }, + "format": { + "type": "string", + "readOnly": true, + "description": "The format of the application package, if the package is active." + }, + "storageUrl": { + "type": "string", + "readOnly": true, + "description": "The URL for the application package in Azure Storage." + }, + "storageUrlExpiry": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The UTC time at which the Azure Storage URL will expire." + }, + "lastActivationTime": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The time at which the package was last activated, if the package is active." + } + }, + "description": "Properties of an application package" + }, + "ListApplicationsResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Application" + }, + "description": "The list of applications." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of results." + } + }, + "description": "The result of performing list applications." + }, + "ListApplicationPackagesResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationPackage" + }, + "description": "The list of application packages." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of results." + } + }, + "description": "The result of performing list application packages." + }, + "BatchLocationQuota": { + "type": "object", + "properties": { + "accountQuota": { + "type": "integer", + "format": "int32", + "readOnly": true, + "description": "The number of Batch accounts that may be created under the subscription in the specified region." + } + }, + "description": "Quotas associated with a Batch region for a particular subscription." + }, + "AzureResource": { + "type": "object", + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The ID of the resource." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the resource." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The type of the resource." + }, + "location": { + "readOnly": true, + "type": "string", + "description": "The location of the resource." + }, + "tags": { + "readOnly": true, + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags of the resource." + } + }, + "description": "A definition of an Azure resource.", + "x-ms-azure-resource": true + }, + "AzureProxyResource": { + "type": "object", + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "The ID of the resource." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the resource." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "The type of the resource." + }, + "etag": { + "readOnly": true, + "type": "string", + "description": "The ETag of the resource, used for concurrency statements." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The tags of the resource." + } + }, + "description": "A definition of an Azure resource.", + "x-ms-azure-resource": true + }, + "PublicNetworkAccessType": { + "type": "string", + "description": "The network access type for operating on the resources in the Batch account.", + "default": "Enabled", + "enum": [ + "Enabled", + "Disabled", + "SecuredByPerimeter" + ], + "x-ms-enum": { + "name": "PublicNetworkAccessType", + "modelAsString": false, + "values": [ + { + "value": "Enabled", + "description": "Enables connectivity to Azure Batch through public DNS." + }, + { + "value": "Disabled", + "description": "Disables public connectivity and enables private connectivity to Azure Batch Service through private endpoint resource." + }, + { + "value": "SecuredByPerimeter", + "description": "Secures connectivity to Azure Batch through NSP configuration." + } + ] + } + }, + "NetworkProfile": { + "type": "object", + "properties": { + "accountAccess": { + "$ref": "#/definitions/EndpointAccessProfile", + "description": "Network access profile for batchAccount endpoint (Batch account data plane API)." + }, + "nodeManagementAccess": { + "$ref": "#/definitions/EndpointAccessProfile", + "description": "Network access profile for nodeManagement endpoint (Batch service managing compute nodes for Batch pools)." + } + }, + "description": "Network profile for Batch account, which contains network rule settings for each endpoint." + }, + "EndpointAccessProfile": { + "type": "object", + "properties": { + "defaultAction": { + "type": "string", + "title": "The default action when there is no IPRule matched.", + "description": "Default action for endpoint access. It is only applicable when publicNetworkAccess is enabled.", + "enum": [ + "Allow", + "Deny" + ], + "x-ms-enum": { + "name": "EndpointAccessDefaultAction", + "modelAsString": false, + "values": [ + { + "value": "Allow", + "description": "Allow client access." + }, + { + "value": "Deny", + "description": "Deny client access." + } + ] + } + }, + "ipRules": { + "type": "array", + "items": { + "$ref": "#/definitions/IPRule" + }, + "x-ms-identifiers": [ + "action" + ], + "description": "Array of IP ranges to filter client IP address." + } + }, + "description": "Network access profile for Batch endpoint.", + "required": [ + "defaultAction" + ] + }, + "IPRule": { + "type": "object", + "properties": { + "action": { + "type": "string", + "description": "Action when client IP address is matched.", + "enum": [ + "Allow" + ], + "x-ms-enum": { + "name": "IPRuleAction", + "modelAsString": false, + "values": [ + { + "value": "Allow", + "description": "Allow access for the matched client IP address." + } + ] + } + }, + "value": { + "type": "string", + "title": "The IP address or IP address range to filter", + "description": "IPv4 address, or IPv4 address range in CIDR format." + } + }, + "description": "Rule to filter client IP address.", + "required": [ + "action", + "value" + ] + }, + "PoolAllocationMode": { + "type": "string", + "description": "The allocation mode for creating pools in the Batch account.", + "enum": [ + "BatchService", + "UserSubscription" + ], + "x-ms-enum": { + "name": "PoolAllocationMode", + "modelAsString": false, + "values": [ + { + "value": "BatchService", + "description": "Pools will be allocated in subscriptions owned by the Batch service." + }, + { + "value": "UserSubscription", + "description": "Pools will be allocated in a subscription owned by the user." + } + ] + } + }, + "DetectorListResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/DetectorResponse" + }, + "description": "The collection of Batch account detectors returned by the listing operation." + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of results." + } + }, + "description": "Values returned by the List operation." + }, + "DetectorResponse": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/DetectorResponseProperties", + "description": "The properties associated with the detector." + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureProxyResource" + } + ], + "description": "Contains the information for a detector." + }, + "DetectorResponseProperties": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "A base64 encoded string that represents the content of a detector." + } + }, + "description": "Detector response properties." + }, + "PrivateLinkResource": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "The properties associated with the private link resource." + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureProxyResource" + } + ], + "description": "Contains information about a private link resource." + }, + "PrivateLinkResourceProperties": { + "type": "object", + "properties": { + "groupId": { + "type": "string", + "title": "The group id of the private link resource.", + "description": "The group id is used to establish the private link connection.", + "readOnly": true + }, + "requiredMembers": { + "type": "array", + "items": { + "type": "string" + }, + "title": "The list of required members that are used to establish the private link connection.", + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "items": { + "type": "string" + }, + "title": "The list of required zone names for the private DNS resource name", + "readOnly": true + } + }, + "description": "Private link resource properties." + }, + "PrivateEndpointConnection": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "description": "The properties associated with the private endpoint connection." + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureProxyResource" + } + ], + "description": "Contains information about a private link resource." + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "properties": { + "provisioningState": { + "type": "string", + "readOnly": true, + "x-nullable": false, + "title": "The provisioning state of the private endpoint connection.", + "enum": [ + "Creating", + "Updating", + "Deleting", + "Succeeded", + "Failed", + "Cancelled" + ], + "x-ms-enum": { + "name": "PrivateEndpointConnectionProvisioningState", + "modelAsString": false, + "values": [ + { + "value": "Creating", + "description": "The connection is creating." + }, + { + "value": "Updating", + "description": "The user has requested that the connection status be updated, but the update operation has not yet completed. You may not reference the connection when connecting the Batch account." + }, + { + "value": "Deleting", + "description": "The connection is deleting." + }, + { + "value": "Succeeded", + "description": "The connection status is final and is ready for use if Status is Approved." + }, + { + "value": "Failed", + "description": "The user requested that the connection be updated and it failed. You may retry the update operation." + }, + { + "value": "Cancelled", + "description": "The user has cancelled the connection creation." + } + ] + } + }, + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "readOnly": true, + "title": "The ARM resource identifier of the private endpoint." + }, + "groupIds": { + "type": "array", + "readOnly": true, + "items": { + "type": "string" + }, + "title": "The group id of the private endpoint connection.", + "description": "The value has one and only one group id." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "title": "The private link service connection state of the private endpoint connection." + } + }, + "description": "Private endpoint connection properties." + }, + "PrivateEndpoint": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "The ARM resource identifier of the private endpoint. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/privateEndpoints/{privateEndpoint}.", + "readOnly": true + } + }, + "description": "The private endpoint of the private endpoint connection." + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "properties": { + "status": { + "$ref": "#/definitions/PrivateLinkServiceConnectionStatus", + "title": "The status for the private endpoint connection of Batch account" + }, + "description": { + "type": "string", + "title": "Description of the private Connection state" + }, + "actionsRequired": { + "type": "string", + "title": "Action required on the private connection state", + "readOnly": true + } + }, + "required": [ + "status" + ], + "description": "The private link service connection state of the private endpoint connection" + }, + "PrivateLinkServiceConnectionStatus": { + "type": "string", + "title": "The status of the Batch private endpoint connection", + "enum": [ + "Approved", + "Pending", + "Rejected", + "Disconnected" + ], + "x-ms-enum": { + "name": "PrivateLinkServiceConnectionStatus", + "modelAsString": false, + "values": [ + { + "value": "Approved", + "description": "The private endpoint connection is approved and can be used to access Batch account" + }, + { + "value": "Pending", + "description": "The private endpoint connection is pending and cannot be used to access Batch account" + }, + { + "value": "Rejected", + "description": "The private endpoint connection is rejected and cannot be used to access Batch account" + }, + { + "value": "Disconnected", + "description": "The private endpoint connection is disconnected and cannot be used to access Batch account" + } + ] + } + }, + "Pool": { + "type": "object", + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/PoolProperties", + "description": "The properties associated with the pool." + }, + "identity": { + "title": "The type of identity used for the Batch Pool.", + "description": "The type of identity used for the Batch Pool.", + "$ref": "#/definitions/BatchPoolIdentity" + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureProxyResource" + } + ], + "description": "Contains information about a pool." + }, + "PoolProperties": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "title": "The display name for the pool.", + "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024." + }, + "lastModified": { + "type": "string", + "format": "date-time", + "title": "The last modified time of the pool.", + "description": "This is the last time at which the pool level data, such as the targetDedicatedNodes or autoScaleSettings, changed. It does not factor in node-level changes such as a compute node changing state.", + "readOnly": true + }, + "creationTime": { + "type": "string", + "format": "date-time", + "title": "The creation time of the pool.", + "readOnly": true + }, + "provisioningState": { + "type": "string", + "title": "The current state of the pool.", + "enum": [ + "Succeeded", + "Deleting" + ], + "x-ms-enum": { + "name": "PoolProvisioningState", + "modelAsString": false, + "values": [ + { + "value": "Succeeded", + "description": "The pool is available to run tasks subject to the availability of compute nodes." + }, + { + "value": "Deleting", + "description": "The user has requested that the pool be deleted, but the delete operation has not yet completed." + } + ] + }, + "readOnly": true + }, + "provisioningStateTransitionTime": { + "type": "string", + "format": "date-time", + "title": "The time at which the pool entered its current state.", + "readOnly": true + }, + "allocationState": { + "type": "string", + "title": "Whether the pool is resizing.", + "enum": [ + "Steady", + "Resizing", + "Stopping" + ], + "x-ms-enum": { + "name": "AllocationState", + "modelAsString": false, + "values": [ + { + "value": "Steady", + "description": "The pool is not resizing. There are no changes to the number of nodes in the pool in progress. A pool enters this state when it is created and when no operations are being performed on the pool to change the number of nodes." + }, + { + "value": "Resizing", + "description": "The pool is resizing; that is, compute nodes are being added to or removed from the pool." + }, + { + "value": "Stopping", + "description": "The pool was resizing, but the user has requested that the resize be stopped, but the stop request has not yet been completed." + } + ] + }, + "readOnly": true + }, + "allocationStateTransitionTime": { + "type": "string", + "format": "date-time", + "title": "The time at which the pool entered its current allocation state.", + "readOnly": true + }, + "vmSize": { + "type": "string", + "title": "The size of virtual machines in the pool. All VMs in a pool are the same size.", + "description": "For information about available VM sizes, see Sizes for Virtual Machines in Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series)." + }, + "deploymentConfiguration": { + "$ref": "#/definitions/DeploymentConfiguration", + "title": "This property describes the virtual machines that the pool nodes will be deployed on." + }, + "currentDedicatedNodes": { + "type": "integer", + "format": "int32", + "title": "The number of dedicated compute nodes currently in the pool.", + "readOnly": true + }, + "currentLowPriorityNodes": { + "type": "integer", + "format": "int32", + "title": "The number of Spot/low-priority compute nodes currently in the pool.", + "readOnly": true + }, + "scaleSettings": { + "$ref": "#/definitions/ScaleSettings", + "title": "Settings which configure the number of nodes in the pool." + }, + "autoScaleRun": { + "$ref": "#/definitions/AutoScaleRun", + "title": "The results and errors from the last execution of the autoscale formula.", + "description": "This property is set only if the pool automatically scales, i.e. autoScaleSettings are used.", + "readOnly": true + }, + "interNodeCommunication": { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "InterNodeCommunicationState", + "modelAsString": false, + "values": [ + { + "value": "Enabled", + "description": "Enable network communication between virtual machines." + }, + { + "value": "Disabled", + "description": "Disable network communication between virtual machines." + } + ] + }, + "title": "Whether the pool permits direct communication between nodes.", + "description": "This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. If not specified, this value defaults to 'Disabled'." + }, + "networkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration", + "title": "The network configuration for the pool." + }, + "taskSlotsPerNode": { + "type": "integer", + "format": "int32", + "default": 1, + "title": "The number of task slots that can be used to run concurrent tasks on a single compute node in the pool.", + "description": "The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256." + }, + "taskSchedulingPolicy": { + "$ref": "#/definitions/TaskSchedulingPolicy", + "title": "How tasks are distributed across compute nodes in a pool.", + "description": "If not specified, the default is spread." + }, + "userAccounts": { + "type": "array", + "items": { + "$ref": "#/definitions/UserAccount" + }, + "x-ms-identifiers": [ + "name" + ], + "title": "The list of user accounts to be created on each node in the pool." + }, + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/MetadataItem" + }, + "x-ms-identifiers": [ + "name" + ], + "title": "A list of name-value pairs associated with the pool as metadata.", + "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code." + }, + "startTask": { + "$ref": "#/definitions/StartTask", + "title": "A task specified to run on each compute node as it joins the pool.", + "description": "In an PATCH (update) operation, this property can be set to an empty object to remove the start task from the pool." + }, + "applicationPackages": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationPackageReference" + }, + "title": "The list of application packages to be installed on each compute node in the pool.", + "description": "Changes to application package references affect all new compute nodes joining the pool, but do not affect compute nodes that are already in the pool until they are rebooted or reimaged. There is a maximum of 10 application package references on any given pool." + }, + "resizeOperationStatus": { + "$ref": "#/definitions/ResizeOperationStatus", + "title": "Contains details about the current or last completed resize operation.", + "readOnly": true + }, + "mountConfiguration": { + "type": "array", + "items": { + "$ref": "#/definitions/MountConfiguration" + }, + "x-ms-identifiers": [], + "title": "A list of file systems to mount on each node in the pool.", + "description": "This supports Azure Files, NFS, CIFS/SMB, and Blobfuse." + }, + "upgradePolicy": { + "$ref": "#/definitions/UpgradePolicy", + "title": "The upgrade policy for the pool." + } + }, + "description": "Pool properties." + }, + "BatchPoolIdentity": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of identity used for the Batch Pool.", + "enum": [ + "UserAssigned", + "None" + ], + "x-ms-enum": { + "name": "PoolIdentityType", + "modelAsString": false, + "values": [ + { + "value": "UserAssigned", + "description": "Batch pool has user assigned identities with it." + }, + { + "value": "None", + "description": "Batch pool has no identity associated with it. Setting `None` in update pool will remove existing identities." + } + ] + } + }, + "userAssignedIdentities": { + "type": "object", + "description": "The list of user identities associated with the Batch pool.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentities" + } + } + }, + "description": "The identity of the Batch pool, if configured. If the pool identity is updated during update an existing pool, only the new vms which are created after the pool shrinks to 0 will have the updated identities", + "required": [ + "type" + ] + }, + "DeploymentConfiguration": { + "type": "object", + "properties": { + "virtualMachineConfiguration": { + "$ref": "#/definitions/VirtualMachineConfiguration", + "title": "The virtual machine configuration for the pool." + } + }, + "title": "Deployment configuration properties." + }, + "ScaleSettings": { + "type": "object", + "properties": { + "fixedScale": { + "$ref": "#/definitions/FixedScaleSettings", + "title": "Fixed scale settings for the pool.", + "description": "This property and autoScale are mutually exclusive and one of the properties must be specified." + }, + "autoScale": { + "$ref": "#/definitions/AutoScaleSettings", + "title": "AutoScale settings for the pool.", + "description": "This property and fixedScale are mutually exclusive and one of the properties must be specified." + } + }, + "title": "Scale settings for the pool", + "description": "Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes." + }, + "AutoScaleSettings": { + "type": "object", + "properties": { + "formula": { + "type": "string", + "title": "A formula for the desired number of compute nodes in the pool.", + "externalDocs": { + "url": "https://learn.microsoft.com/azure/batch/batch-automatic-scaling", + "description": "Create an automatic scaling formula for scaling compute nodes in a Batch pool" + } + }, + "evaluationInterval": { + "type": "string", + "format": "duration", + "title": "The time interval at which to automatically adjust the pool size according to the autoscale formula.", + "description": "If omitted, the default value is 15 minutes (PT15M)." + } + }, + "required": [ + "formula" + ], + "title": "AutoScale settings for the pool." + }, + "FixedScaleSettings": { + "type": "object", + "properties": { + "resizeTimeout": { + "type": "string", + "format": "duration", + "default": "PT15M", + "title": "The timeout for allocation of compute nodes to the pool.", + "description": "The default value is 15 minutes. Timeout values use ISO 8601 format. For example, use PT10M for 10 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service rejects the request with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)." + }, + "targetDedicatedNodes": { + "type": "integer", + "format": "int32", + "title": "The desired number of dedicated compute nodes in the pool.", + "description": "At least one of targetDedicatedNodes, targetLowPriorityNodes must be set." + }, + "targetLowPriorityNodes": { + "type": "integer", + "format": "int32", + "title": "The desired number of Spot/low-priority compute nodes in the pool.", + "description": "At least one of targetDedicatedNodes, targetLowPriorityNodes must be set." + }, + "nodeDeallocationOption": { + "title": "Determines what to do with a node and its running task(s) if the pool size is decreasing.", + "description": "If omitted, the default value is Requeue.", + "$ref": "#/definitions/ComputeNodeDeallocationOption", + "x-ms-mutability": [ + "create", + "update" + ] + } + }, + "title": "Fixed scale settings for the pool." + }, + "ComputeNodeDeallocationOption": { + "type": "string", + "title": "Determines what to do with a node and its running task(s) after it has been selected for deallocation.", + "enum": [ + "Requeue", + "Terminate", + "TaskCompletion", + "RetainedData" + ], + "x-ms-enum": { + "name": "ComputeNodeDeallocationOption", + "modelAsString": false, + "values": [ + { + "value": "Requeue", + "description": "Terminate running task processes and requeue the tasks. The tasks will run again when a node is available. Remove nodes as soon as tasks have been terminated." + }, + { + "value": "Terminate", + "description": "Terminate running tasks. The tasks will be completed with failureInfo indicating that they were terminated, and will not run again. Remove nodes as soon as tasks have been terminated." + }, + { + "value": "TaskCompletion", + "description": "Allow currently running tasks to complete. Schedule no new tasks while waiting. Remove nodes when all tasks have completed." + }, + { + "value": "RetainedData", + "description": "Allow currently running tasks to complete, then wait for all task data retention periods to expire. Schedule no new tasks while waiting. Remove nodes when all task retention periods have expired." + } + ] + } + }, + "ApplicationPackageReference": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "The ID of the application package to install. This must be inside the same Batch account as the pool. This can either be a reference to a specific version or the default version if one exists." + }, + "version": { + "type": "string", + "title": "The version of the application to deploy. If omitted, the default version is deployed.", + "description": "If this is omitted, and no default version is specified for this application, the request fails with the error code InvalidApplicationPackageReferences. If you are calling the REST API directly, the HTTP status code is 409." + } + }, + "title": "Link to an application package inside the Batch account", + "required": [ + "id" + ] + }, + "ResizeError": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." + }, + "message": { + "type": "string", + "description": "A message describing the error, intended to be suitable for display in a user interface." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ResizeError" + }, + "x-ms-identifiers": [ + "code" + ], + "title": "Additional details about the error." + } + }, + "title": "An error that occurred when resizing a pool.", + "required": [ + "code", + "message" + ] + }, + "AutoScaleRunError": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." + }, + "message": { + "type": "string", + "description": "A message describing the error, intended to be suitable for display in a user interface." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/AutoScaleRunError" + }, + "x-ms-identifiers": [ + "code" + ], + "title": "Additional details about the error." + } + }, + "title": "An error that occurred when autoscaling a pool.", + "required": [ + "code", + "message" + ] + }, + "AutoScaleRun": { + "type": "object", + "properties": { + "evaluationTime": { + "type": "string", + "format": "date-time", + "title": "The time at which the autoscale formula was last evaluated." + }, + "results": { + "type": "string", + "title": "The final values of all variables used in the evaluation of the autoscale formula.", + "description": "Each variable value is returned in the form $variable=value, and variables are separated by semicolons." + }, + "error": { + "$ref": "#/definitions/AutoScaleRunError", + "title": "Details of the error encountered evaluating the autoscale formula on the pool, if the evaluation was unsuccessful." + } + }, + "required": [ + "evaluationTime" + ], + "title": "The results and errors from an execution of a pool autoscale formula." + }, + "ServiceArtifactReference": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "The service artifact reference id of ServiceArtifactReference", + "description": "The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}" + } + }, + "required": [ + "id" + ], + "description": "Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version." + }, + "VirtualMachineConfiguration": { + "type": "object", + "properties": { + "imageReference": { + "$ref": "#/definitions/ImageReference", + "title": "A reference to the Azure Virtual Machines Marketplace Image or the custom Virtual Machine Image to use." + }, + "nodeAgentSkuId": { + "type": "string", + "title": "The SKU of the Batch node agent to be provisioned on compute nodes in the pool.", + "description": "The Batch node agent is a program that runs on each node in the pool, and provides the command-and-control interface between the node and the Batch service. There are different implementations of the node agent, known as SKUs, for different operating systems. You must specify a node agent SKU which matches the selected image reference. To get the list of supported node agent SKUs along with their list of verified image references, see the 'List supported node agent SKUs' operation." + }, + "windowsConfiguration": { + "$ref": "#/definitions/WindowsConfiguration", + "title": "Windows operating system settings on the virtual machine.", + "description": "This property must not be specified if the imageReference specifies a Linux OS image." + }, + "dataDisks": { + "type": "array", + "items": { + "$ref": "#/definitions/DataDisk" + }, + "x-ms-identifiers": [ + "lun" + ], + "title": "The configuration for data disks attached to the compute nodes in the pool.", + "description": "This property must be specified if the compute nodes in the pool need to have empty data disks attached to them." + }, + "licenseType": { + "type": "string", + "title": "The type of on-premises license to be used when deploying the operating system.", + "description": "This only applies to images that contain the Windows operating system, and should only be used when you hold valid on-premises licenses for the nodes which will be deployed. If omitted, no on-premises licensing discount is applied. Values are:\n\n Windows_Server - The on-premises license is for Windows Server.\n Windows_Client - The on-premises license is for Windows Client.\n" + }, + "containerConfiguration": { + "$ref": "#/definitions/ContainerConfiguration", + "title": "The container configuration for the pool.", + "description": "If specified, setup is performed on each node in the pool to allow tasks to run in containers. All regular tasks and job manager tasks run on this pool must specify the containerSettings property, and all other tasks may specify it." + }, + "diskEncryptionConfiguration": { + "$ref": "#/definitions/DiskEncryptionConfiguration", + "title": "The disk encryption configuration for the pool.", + "description": "If specified, encryption is performed on each node in the pool during node provisioning." + }, + "nodePlacementConfiguration": { + "$ref": "#/definitions/NodePlacementConfiguration", + "title": "The node placement configuration for the pool.", + "description": "This configuration will specify rules on how nodes in the pool will be physically allocated." + }, + "extensions": { + "type": "array", + "items": { + "$ref": "#/definitions/VMExtension" + }, + "x-ms-identifiers": [ + "name", + "type" + ], + "title": "The virtual machine extension for the pool.", + "description": "If specified, the extensions mentioned in this configuration will be installed on each node." + }, + "osDisk": { + "$ref": "#/definitions/OSDisk", + "title": "Settings for the operating system disk of the Virtual Machine.", + "description": "Contains configuration for ephemeral OSDisk settings." + }, + "securityProfile": { + "$ref": "#/definitions/SecurityProfile", + "title": "Specifies the security profile settings for the virtual machine or virtual machine scale set." + }, + "serviceArtifactReference": { + "$ref": "#/definitions/ServiceArtifactReference", + "title": "Specifies the service artifact reference id used to set same image version for all virtual machines in the scale set when using 'latest' image version.", + "description": "The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}" + } + }, + "required": [ + "imageReference", + "nodeAgentSkuId" + ], + "title": "The configuration for compute nodes in a pool based on the Azure Virtual Machines infrastructure." + }, + "ContainerRegistry": { + "type": "object", + "properties": { + "username": { + "type": "string", + "x-ms-client-name": "userName", + "title": "The user name to log into the registry server." + }, + "password": { + "type": "string", + "title": "The password to log into the registry server.", + "x-ms-secret": true + }, + "registryServer": { + "type": "string", + "title": "The registry URL.", + "description": "If omitted, the default is \"docker.io\"." + }, + "identityReference": { + "title": "The reference to the user assigned identity to use to access an Azure Container Registry instead of username and password.", + "$ref": "#/definitions/ComputeNodeIdentityReference" + } + }, + "title": "A private container registry." + }, + "DiskEncryptionConfiguration": { + "type": "object", + "properties": { + "targets": { + "type": "array", + "items": { + "type": "string", + "x-nullable": false, + "title": "The disks to encrypt on each compute node.", + "description": "If omitted, no disks on the compute nodes in the pool will be encrypted.", + "enum": [ + "OsDisk", + "TemporaryDisk" + ], + "x-ms-enum": { + "name": "DiskEncryptionTarget", + "modelAsString": false, + "values": [ + { + "value": "OsDisk", + "description": "The OS Disk on the compute node is encrypted.", + "name": "OsDisk" + }, + { + "value": "TemporaryDisk", + "description": "The temporary disk on the compute node is encrypted. On Linux this encryption applies to other partitions (such as those on mounted data disks) when encryption occurs at boot time.", + "name": "TemporaryDisk" + } + ] + } + }, + "title": "The list of disk targets Batch Service will encrypt on the compute node", + "description": "On Linux pool, only \"TemporaryDisk\" is supported; on Windows pool, \"OsDisk\" and \"TemporaryDisk\" must be specified." + }, + "customerManagedKey": { + "title": "The Customer Managed Key reference to encrypt the OS Disk.", + "$ref": "#/definitions/DiskCustomerManagedKey", + "description": "Customer Managed Key will encrypt OS Disk by EncryptionAtRest, and by default we will encrypt the data disk as well. It can be used only when the pool is configured with an identity and OsDisk is set as one of the targets of DiskEncryption." + } + }, + "description": "The disk encryption configuration applied on compute nodes in the pool. Disk encryption configuration is not supported on Linux pool created with Virtual Machine Image or Azure Compute Gallery Image." + }, + "ContainerConfiguration": { + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "The container technology to be used.", + "enum": [ + "DockerCompatible", + "CriCompatible" + ], + "x-ms-enum": { + "name": "ContainerType", + "modelAsString": true, + "values": [ + { + "value": "DockerCompatible", + "description": "A Docker compatible container technology will be used to launch the containers." + }, + { + "value": "CriCompatible", + "description": "A CRI based technology will be used to launch the containers." + } + ] + } + }, + "containerImageNames": { + "type": "array", + "items": { + "type": "string" + }, + "title": "The collection of container image names.", + "description": "This is the full image reference, as would be specified to \"docker pull\". An image will be sourced from the default Docker registry unless the image is fully qualified with an alternative registry." + }, + "containerRegistries": { + "type": "array", + "items": { + "$ref": "#/definitions/ContainerRegistry" + }, + "x-ms-identifiers": [ + "registryServer" + ], + "title": "Additional private registries from which containers can be pulled.", + "description": "If any images must be downloaded from a private registry which requires credentials, then those credentials must be provided here." + } + }, + "required": [ + "type" + ], + "title": "The configuration for container-enabled pools." + }, + "NodePlacementPolicyType": { + "type": "string", + "title": "The placement policy for allocating nodes in the pool.", + "description": "The default value is regional.", + "enum": [ + "Regional", + "Zonal" + ], + "x-ms-enum": { + "name": "NodePlacementPolicyType", + "modelAsString": false, + "values": [ + { + "value": "Regional", + "description": "All nodes in the pool will be allocated in the same region." + }, + { + "value": "Zonal", + "description": "Nodes in the pool will be spread across different zones with best effort balancing.", + "name": "Zonal" + } + ] + } + }, + "NodePlacementConfiguration": { + "title": "Node placement configuration for Batch pools.", + "description": "Allocation configuration used by Batch Service to provision the nodes.", + "type": "object", + "properties": { + "policy": { + "$ref": "#/definitions/NodePlacementPolicyType", + "title": "Node placement Policy type on Batch pools.", + "description": "Allocation policy used by Batch Service to provision the nodes. If not specified, Batch will use the regional policy." + } + } + }, + "VMExtension": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "The name of the virtual machine extension." + }, + "publisher": { + "type": "string", + "title": "The name of the extension handler publisher." + }, + "type": { + "type": "string", + "title": "The type of the extensions." + }, + "typeHandlerVersion": { + "type": "string", + "title": "The version of script handler." + }, + "autoUpgradeMinorVersion": { + "type": "boolean", + "description": "Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true." + }, + "enableAutomaticUpgrade": { + "type": "boolean", + "description": "Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available." + }, + "settings": { + "type": "object", + "title": "JSON formatted public settings for the extension." + }, + "protectedSettings": { + "x-ms-secret": true, + "type": "object", + "description": "The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. " + }, + "provisionAfterExtensions": { + "type": "array", + "items": { + "type": "string" + }, + "title": "The collection of extension names.", + "description": "Collection of extension names after which this extension needs to be provisioned." + } + }, + "required": [ + "name", + "publisher", + "type" + ], + "title": "The configuration for virtual machine extensions." + }, + "WindowsConfiguration": { + "type": "object", + "properties": { + "enableAutomaticUpdates": { + "type": "boolean", + "title": "Whether automatic updates are enabled on the virtual machine.", + "description": "If omitted, the default value is true." + } + }, + "title": "Windows operating system settings to apply to the virtual machine." + }, + "ImageReference": { + "type": "object", + "properties": { + "publisher": { + "type": "string", + "title": "The publisher of the Azure Virtual Machines Marketplace image.", + "description": "For example, Canonical or MicrosoftWindowsServer." + }, + "offer": { + "type": "string", + "title": "The offer type of the Azure Virtual Machines Marketplace image.", + "description": "For example, UbuntuServer or WindowsServer." + }, + "sku": { + "type": "string", + "title": "The SKU of the Azure Virtual Machines Marketplace image.", + "description": "For example, 18.04-LTS or 2022-datacenter." + }, + "version": { + "type": "string", + "title": "The version of the Azure Virtual Machines Marketplace image.", + "description": "A value of 'latest' can be specified to select the latest version of an image. If omitted, the default is 'latest'." + }, + "id": { + "type": "string", + "title": "The ARM resource identifier of the Azure Compute Gallery Image. Compute Nodes in the Pool will be created using this Image Id. This is of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}.", + "description": "This property is mutually exclusive with other properties. The Azure Compute Gallery Image must have replicas in the same region as the Azure Batch account. For information about the firewall settings for the Batch node agent to communicate with the Batch service see https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration." + }, + "sharedGalleryImageId": { + "type": "string", + "title": "The shared gallery image unique identifier", + "description": "This property is mutually exclusive with other properties and can be fetched from shared gallery image GET call." + }, + "communityGalleryImageId": { + "type": "string", + "title": "The community gallery image unique identifier", + "description": "This property is mutually exclusive with other properties and can be fetched from community gallery image GET call." + } + }, + "title": "A reference to an Azure Virtual Machines Marketplace image or the Azure Image resource of a custom Virtual Machine. To get the list of all imageReferences verified by Azure Batch, see the 'List supported node agent SKUs' operation." + }, + "DataDisk": { + "type": "object", + "properties": { + "lun": { + "type": "integer", + "format": "int32", + "title": "The logical unit number.", + "description": "The lun is used to uniquely identify each data disk. If attaching multiple disks, each should have a distinct lun. The value must be between 0 and 63, inclusive." + }, + "caching": { + "$ref": "#/definitions/CachingType", + "title": "The type of caching to be enabled for the data disks.", + "description": "Values are:\n\n none - The caching mode for the disk is not enabled.\n readOnly - The caching mode for the disk is read only.\n readWrite - The caching mode for the disk is read and write.\n\n The default value for caching is none. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/." + }, + "diskSizeGB": { + "type": "integer", + "format": "int32", + "title": "The initial disk size in GB when creating new data disk." + }, + "storageAccountType": { + "title": "The storage account type to be used for the data disk.", + "description": "If omitted, the default is \"Standard_LRS\". Values are:\n\n Standard_LRS - The data disk should use standard locally redundant storage.\n Premium_LRS - The data disk should use premium locally redundant storage.", + "$ref": "#/definitions/StorageAccountType" + }, + "managedDisk": { + "$ref": "#/definitions/ManagedDisk", + "title": "The managed disk parameters." + } + }, + "required": [ + "lun", + "diskSizeGB" + ], + "description": "Settings which will be used by the data disks associated to Compute Nodes in the Pool. When using attached data disks, you need to mount and format the disks from within a VM to use them." + }, + "TaskSchedulingPolicy": { + "type": "object", + "properties": { + "jobDefaultOrder": { + "type": "string", + "title": "The order for scheduling tasks from different jobs with the same priority.", + "description": "If not specified, the default is none.", + "enum": [ + "None", + "CreationTime" + ], + "x-ms-enum": { + "name": "JobDefaultOrder", + "modelAsString": true, + "values": [ + { + "value": "None", + "description": "Tasks should be scheduled uniformly from all equal-priority jobs for the pool." + }, + { + "value": "CreationTime", + "description": "If jobs have equal priority, tasks from jobs that were created earlier should be scheduled first." + } + ] + } + }, + "nodeFillType": { + "type": "string", + "default": "Spread", + "title": "How tasks should be distributed across compute nodes.", + "enum": [ + "Spread", + "Pack" + ], + "x-ms-enum": { + "name": "ComputeNodeFillType", + "modelAsString": false, + "values": [ + { + "value": "Spread", + "description": "Tasks should be assigned evenly across all nodes in the pool." + }, + { + "value": "Pack", + "description": "As many tasks as possible (taskSlotsPerNode) should be assigned to each node in the pool before any tasks are assigned to the next node in the pool." + } + ] + } + } + }, + "required": [ + "nodeFillType" + ], + "title": "Specifies how tasks should be distributed across compute nodes." + }, + "LinuxUserConfiguration": { + "type": "object", + "properties": { + "uid": { + "type": "integer", + "format": "int32", + "title": "The user ID of the user account.", + "description": "The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the uid." + }, + "gid": { + "type": "integer", + "format": "int32", + "title": "The group ID for the user account.", + "description": "The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the gid." + }, + "sshPrivateKey": { + "type": "string", + "title": "The SSH private key for the user account.", + "description": "The private key must not be password protected. The private key is used to automatically configure asymmetric-key based authentication for SSH between nodes in a Linux pool when the pool's enableInterNodeCommunication property is true (it is ignored if enableInterNodeCommunication is false). It does this by placing the key pair into the user's .ssh directory. If not specified, password-less SSH is not configured between nodes (no modification of the user's .ssh directory is done).", + "x-ms-secret": true + } + }, + "title": "Properties used to create a user account on a Linux node." + }, + "WindowsUserConfiguration": { + "type": "object", + "properties": { + "loginMode": { + "type": "string", + "title": "Login mode for user", + "description": "Specifies login mode for the user. The default value is Interactive.", + "enum": [ + "Batch", + "Interactive" + ], + "x-ms-enum": { + "name": "LoginMode", + "modelAsString": false, + "values": [ + { + "value": "Batch", + "description": "The LOGON32_LOGON_BATCH Win32 login mode. The batch login mode is recommended for long running parallel processes." + }, + { + "value": "Interactive", + "description": "The LOGON32_LOGON_INTERACTIVE Win32 login mode. Some applications require having permissions associated with the interactive login mode. If this is the case for an application used in your task, then this option is recommended." + } + ] + } + } + }, + "title": "Properties used to create a user account on a Windows node." + }, + "UserAccount": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "The name of the user account. Names can contain any Unicode characters up to a maximum length of 20." + }, + "password": { + "type": "string", + "title": "The password for the user account.", + "x-ms-secret": true + }, + "elevationLevel": { + "title": "The elevation level of the user account.", + "description": "nonAdmin - The auto user is a standard user without elevated access. admin - The auto user is a user with elevated access and operates with full Administrator permissions. The default value is nonAdmin.", + "$ref": "#/definitions/ElevationLevel" + }, + "linuxUserConfiguration": { + "title": "The Linux-specific user configuration for the user account.", + "description": "This property is ignored if specified on a Windows pool. If not specified, the user is created with the default options.", + "$ref": "#/definitions/LinuxUserConfiguration" + }, + "windowsUserConfiguration": { + "title": "The Windows-specific user configuration for the user account.", + "description": "This property can only be specified if the user is on a Windows pool. If not specified and on a Windows pool, the user is created with the default options.", + "$ref": "#/definitions/WindowsUserConfiguration" + } + }, + "required": [ + "name", + "password" + ], + "title": "Properties used to create a user on an Azure Batch node." + }, + "StartTask": { + "type": "object", + "properties": { + "commandLine": { + "type": "string", + "title": "The command line of the start task.", + "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. Required if any other properties of the startTask are specified." + }, + "resourceFiles": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceFile" + }, + "x-ms-identifiers": [ + "httpUrl" + ], + "title": "A list of files that the Batch service will download to the compute node before running the command line." + }, + "environmentSettings": { + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentSetting" + }, + "x-ms-identifiers": [ + "name" + ], + "title": "A list of environment variable settings for the start task." + }, + "userIdentity": { + "$ref": "#/definitions/UserIdentity", + "title": "The user identity under which the start task runs.", + "description": "If omitted, the task runs as a non-administrative user unique to the task." + }, + "maxTaskRetryCount": { + "type": "integer", + "format": "int32", + "default": 0, + "title": "The maximum number of times the task may be retried.", + "description": "The Batch service retries a task if its exit code is nonzero. Note that this value specifically controls the number of retries. The Batch service will try the task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the task. If the maximum retry count is -1, the Batch service retries the task without limit. Default is 0" + }, + "waitForSuccess": { + "type": "boolean", + "title": "Whether the Batch service should wait for the start task to complete successfully (that is, to exit with exit code 0) before scheduling any tasks on the compute node.", + "description": "If true and the start task fails on a compute node, the Batch service retries the start task up to its maximum retry count (maxTaskRetryCount). If the task has still not completed successfully after all retries, then the Batch service marks the compute node unusable, and will not schedule tasks to it. This condition can be detected via the node state and scheduling error detail. If false, the Batch service will not wait for the start task to complete. In this case, other tasks can start executing on the compute node while the start task is still running; and even if the start task fails, new tasks will continue to be scheduled on the node. The default is true." + }, + "containerSettings": { + "$ref": "#/definitions/TaskContainerSettings", + "title": "The settings for the container under which the start task runs.", + "description": "When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all task environment variables are mapped into the container, and the task command line is executed in the container." + } + }, + "title": "A task which is run when a compute node joins a pool in the Azure Batch service, or when the compute node is rebooted or reimaged.", + "description": "In some cases the start task may be re-run even though the node was not rebooted. Due to this, start tasks should be idempotent and exit gracefully if the setup they're performing has already been done. Special care should be taken to avoid start tasks which create breakaway process or install/launch services from the start task working directory, as this will block Batch from being able to re-run the start task." + }, + "TaskContainerSettings": { + "type": "object", + "properties": { + "containerRunOptions": { + "type": "string", + "title": "Additional options to the container create command.", + "description": "These additional options are supplied as arguments to the \"docker create\" command, in addition to those controlled by the Batch Service." + }, + "imageName": { + "type": "string", + "title": "The image to use to create the container in which the task will run.", + "description": "This is the full image reference, as would be specified to \"docker pull\". If no tag is provided as part of the image name, the tag \":latest\" is used as a default." + }, + "registry": { + "$ref": "#/definitions/ContainerRegistry", + "title": "The private registry which contains the container image.", + "description": "This setting can be omitted if was already provided at pool creation." + }, + "workingDirectory": { + "type": "string", + "title": "A flag to indicate where the container task working directory is. The default is 'taskWorkingDirectory'.", + "enum": [ + "TaskWorkingDirectory", + "ContainerImageDefault" + ], + "x-ms-enum": { + "name": "ContainerWorkingDirectory", + "modelAsString": false, + "values": [ + { + "value": "TaskWorkingDirectory", + "description": "Use the standard Batch service task working directory, which will contain the Task resource files populated by Batch." + }, + { + "value": "ContainerImageDefault", + "description": "Using container image defined working directory. Beware that this directory will not contain the resource files downloaded by Batch." + } + ] + } + }, + "containerHostBatchBindMounts": { + "type": "array", + "items": { + "$ref": "#/definitions/ContainerHostBatchBindMountEntry" + }, + "title": "The paths you want to mounted to container task.", + "description": "If this array is null or be not present, container task will mount entire temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in Linux). It won't' mount any data paths into container if this array is set as empty." + } + }, + "required": [ + "imageName" + ], + "title": "The container settings for a task." + }, + "ResourceFile": { + "type": "object", + "properties": { + "autoStorageContainerName": { + "type": "string", + "title": "The storage container name in the auto storage account.", + "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified." + }, + "storageContainerUrl": { + "type": "string", + "title": "The URL of the blob container within Azure Blob Storage.", + "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. This URL must be readable and listable from compute nodes. There are three ways to get such a URL for a container in Azure storage: include a Shared Access Signature (SAS) granting read and list permissions on the container, use a managed identity with read and list permissions, or set the ACL for the container to allow public access." + }, + "httpUrl": { + "type": "string", + "title": "The URL of the file to download.", + "description": "The autoStorageContainerName, storageContainerUrl and httpUrl properties are mutually exclusive and one of them must be specified. If the URL points to Azure Blob Storage, it must be readable from compute nodes. There are three ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read permissions on the blob, use a managed identity with read permission, or set the ACL for the blob or its container to allow public access." + }, + "blobPrefix": { + "type": "string", + "title": "The blob prefix to use when downloading blobs from an Azure Storage container. Only the blobs whose names begin with the specified prefix will be downloaded.", + "description": "The property is valid only when autoStorageContainerName or storageContainerUrl is used. This prefix can be a partial filename or a subdirectory. If a prefix is not specified, all the files in the container will be downloaded." + }, + "filePath": { + "type": "string", + "title": "The location on the compute node to which to download the file, relative to the task's working directory.", + "description": "If the httpUrl property is specified, the filePath is required and describes the path which the file will be downloaded to, including the filename. Otherwise, if the autoStorageContainerName or storageContainerUrl property is specified, filePath is optional and is the directory to download the files to. In the case where filePath is used as a directory, any directory structure already associated with the input data will be retained in full and appended to the specified filePath directory. The specified relative path cannot break out of the task's working directory (for example by using '..')." + }, + "fileMode": { + "type": "string", + "title": "The file permission mode attribute in octal format.", + "description": "This property applies only to files being downloaded to Linux compute nodes. It will be ignored if it is specified for a resourceFile which will be downloaded to a Windows node. If this property is not specified for a Linux node, then a default value of 0770 is applied to the file." + }, + "identityReference": { + "title": "The reference to the user assigned identity to use to access Azure Blob Storage specified by storageContainerUrl or httpUrl", + "$ref": "#/definitions/ComputeNodeIdentityReference" + } + }, + "title": "A single file or multiple files to be downloaded to a compute node." + }, + "EnvironmentSetting": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "The name of the environment variable." + }, + "value": { + "type": "string", + "title": "The value of the environment variable." + } + }, + "required": [ + "name" + ], + "title": "An environment variable to be set on a task process." + }, + "UserIdentity": { + "type": "object", + "properties": { + "userName": { + "type": "string", + "title": "The name of the user identity under which the task is run.", + "description": "The userName and autoUser properties are mutually exclusive; you must specify one but not both." + }, + "autoUser": { + "$ref": "#/definitions/AutoUserSpecification", + "title": "The auto user under which the task is run.", + "description": "The userName and autoUser properties are mutually exclusive; you must specify one but not both." + } + }, + "title": "The definition of the user identity under which the task is run.", + "description": "Specify either the userName or autoUser property, but not both." + }, + "UserAssignedIdentities": { + "type": "object", + "description": "The list of associated user identities.", + "properties": { + "principalId": { + "readOnly": true, + "type": "string", + "description": "The principal id of user assigned identity." + }, + "clientId": { + "readOnly": true, + "type": "string", + "description": "The client id of user assigned identity." + } + } + }, + "ComputeNodeIdentityReference": { + "type": "object", + "properties": { + "resourceId": { + "type": "string", + "description": "The ARM resource id of the user assigned identity." + } + }, + "description": "The reference to a user assigned identity associated with the Batch pool which a compute node will use." + }, + "AutoUserSpecification": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "title": "The scope for the auto user", + "description": "The default value is Pool. If the pool is running Windows a value of Task should be specified if stricter isolation between tasks is required. For example, if the task mutates the registry in a way which could impact other tasks.", + "enum": [ + "Task", + "Pool" + ], + "x-ms-enum": { + "name": "AutoUserScope", + "modelAsString": false, + "values": [ + { + "value": "Task", + "description": "Specifies that the service should create a new user for the task." + }, + { + "value": "Pool", + "description": "Specifies that the task runs as the common auto user account which is created on every node in a pool." + } + ] + } + }, + "elevationLevel": { + "title": "The elevation level of the auto user.", + "description": "The default value is nonAdmin.", + "$ref": "#/definitions/ElevationLevel" + } + }, + "title": "Specifies the parameters for the auto user that runs a task on the Batch service." + }, + "ElevationLevel": { + "type": "string", + "title": "The elevation level of the user.", + "enum": [ + "NonAdmin", + "Admin" + ], + "x-ms-enum": { + "name": "ElevationLevel", + "modelAsString": false, + "values": [ + { + "value": "NonAdmin", + "description": "The user is a standard user without elevated access." + }, + { + "value": "Admin", + "description": "The user is a user with elevated access and operates with full Administrator permissions." + } + ] + } + }, + "StorageAccountType": { + "type": "string", + "title": "The storage account type for use in creating data disks or OS disk.", + "enum": [ + "Standard_LRS", + "Premium_LRS", + "StandardSSD_LRS" + ], + "x-ms-enum": { + "name": "StorageAccountType", + "modelAsString": false, + "values": [ + { + "value": "Standard_LRS", + "description": "The data disk / OS disk should use standard locally redundant storage." + }, + { + "value": "Premium_LRS", + "description": "The data disk / OS disk should use premium locally redundant storage." + }, + { + "value": "StandardSSD_LRS", + "description": "The data disk / OS disk should use standard SSD locally redundant storage." + } + ] + } + }, + "CachingType": { + "type": "string", + "title": "The type of caching to enable for the disk.", + "enum": [ + "None", + "ReadOnly", + "ReadWrite" + ], + "x-ms-enum": { + "name": "CachingType", + "modelAsString": false, + "values": [ + { + "value": "None", + "description": "The caching mode for the disk is not enabled." + }, + { + "value": "ReadOnly", + "description": "The caching mode for the disk is read only." + }, + { + "value": "ReadWrite", + "description": "The caching mode for the disk is read and write." + } + ] + } + }, + "ContainerHostDataPath": { + "type": "string", + "title": "The paths which will be mounted to container task's container.", + "enum": [ + "Shared", + "Startup", + "VfsMounts", + "Task", + "JobPrep", + "Applications" + ], + "x-ms-enum": { + "name": "ContainerHostDataPath", + "modelAsString": true, + "values": [ + { + "value": "Shared", + "description": "The path for multi-instances task to shared their files." + }, + { + "value": "Startup", + "description": "The path for start task." + }, + { + "value": "VfsMounts", + "description": "The path contains all virtual file systems are mounted on this node." + }, + { + "value": "Task", + "description": "The task path." + }, + { + "value": "JobPrep", + "description": "The job-prep task path." + }, + { + "value": "Applications", + "description": "The applications path." + } + ] + } + }, + "ContainerHostBatchBindMountEntry": { + "type": "object", + "title": "The entry of path and mount mode you want to mount into task container.", + "properties": { + "source": { + "$ref": "#/definitions/ContainerHostDataPath", + "title": "The path which be mounted to container customer can select." + }, + "isReadOnly": { + "type": "boolean", + "title": "Mount this source path as read-only mode or not. Default value is false (read/write mode).", + "description": "For Linux, if you mount this path as a read/write mode, this does not mean that all users in container have the read/write access for the path, it depends on the access in host VM. If this path is mounted read-only, all users within the container will not be able to modify the path." + } + } + }, + "DiffDiskPlacement": { + "type": "string", + "title": "Specifies the ephemeral disk placement for operating system disk for all VMs in the pool.", + "description": "This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements", + "enum": [ + "CacheDisk" + ], + "x-ms-enum": { + "name": "DiffDiskPlacement", + "modelAsString": false, + "values": [ + { + "value": "CacheDisk", + "description": "The Ephemeral OS Disk is stored on the VM cache.", + "name": "CacheDisk" + } + ] + } + }, + "DiffDiskSettings": { + "type": "object", + "properties": { + "placement": { + "$ref": "#/definitions/DiffDiskPlacement", + "title": "Specifies the ephemeral disk placement for operating system disk for all VMs in the pool.", + "description": "This property can be used by user in the request to choose which location the operating system should be in. e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements." + } + }, + "title": "Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine." + }, + "OSDisk": { + "type": "object", + "properties": { + "ephemeralOSDiskSettings": { + "$ref": "#/definitions/DiffDiskSettings", + "title": "Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine." + }, + "caching": { + "$ref": "#/definitions/CachingType", + "title": "Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage." + }, + "managedDisk": { + "$ref": "#/definitions/ManagedDisk", + "title": "The managed disk parameters." + }, + "diskSizeGB": { + "type": "integer", + "format": "int32", + "title": "The initial disk size in GB when creating new OS disk." + }, + "writeAcceleratorEnabled": { + "type": "boolean", + "title": "Specifies whether writeAccelerator should be enabled or disabled on the disk." + } + }, + "title": "Settings for the operating system disk of the virtual machine." + }, + "IPAddressProvisioningType": { + "type": "string", + "title": "The provisioning type for Public IP Addresses for the Batch Pool.", + "enum": [ + "BatchManaged", + "UserManaged", + "NoPublicIPAddresses" + ], + "x-ms-enum": { + "name": "IPAddressProvisioningType", + "modelAsString": false, + "values": [ + { + "value": "BatchManaged", + "description": "A public IP will be created and managed by Batch. There may be multiple public IPs depending on the size of the Pool." + }, + { + "value": "UserManaged", + "description": "Public IPs are provided by the user and will be used to provision the Compute Nodes." + }, + { + "value": "NoPublicIPAddresses", + "description": "No public IP Address will be created for the Compute Nodes in the Pool." + } + ] + } + }, + "IPFamily": { + "type": "string", + "title": "The IP families used to specify IP versions available to the pool.", + "enum": [ + "IPv4", + "IPv6" + ], + "x-ms-enum": { + "name": "IPFamily", + "modelAsString": true, + "values": [ + { + "value": "IPv4", + "description": "IPv4 is available to the pool." + }, + { + "value": "IPv6", + "description": "IPv6 is available to the pool." + } + ] + } + }, + "IpTag": { + "type": "object", + "properties": { + "ipTagType": { + "type": "string", + "title": "The IP Tag type.", + "description": "Example: FirstPartyUsage." + }, + "tag": { + "type": "string", + "title": "The value of the IP tag associated with the public IP.", + "description": "Example: SQL." + } + } + }, + "PublicIPAddressConfiguration": { + "type": "object", + "properties": { + "provision": { + "$ref": "#/definitions/IPAddressProvisioningType", + "title": "The provisioning type for Public IP Addresses for the pool", + "description": "The default value is BatchManaged" + }, + "ipAddressIds": { + "type": "array", + "items": { + "type": "string" + }, + "title": "The list of public IPs which the Batch service will use when provisioning Compute Nodes.", + "description": "The number of IPs specified here limits the maximum size of the Pool - 100 dedicated nodes or 100 Spot/low-priority nodes can be allocated for each public IP. For example, a pool needing 250 dedicated VMs would need at least 3 public IPs specified. Each element of this collection is of the form: /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}." + }, + "ipFamilies": { + "x-nullable": true, + "type": "array", + "items": { + "$ref": "#/definitions/IPFamily" + }, + "title": "The IP families used to specify IP versions available to the pool.", + "description": "IP families are used to determine single-stack or dual-stack pools. For single-stack, the expected value is IPv4. For dual-stack, the expected values are IPv4 and IPv6." + }, + "ipTags": { + "type": "array", + "items": { + "$ref": "#/definitions/IpTag" + }, + "title": "IP Tags that will applied to new Public IPs that Batch creates." + } + }, + "description": "The public IP Address configuration of the networking configuration of a Pool." + }, + "NetworkConfiguration": { + "type": "object", + "properties": { + "subnetId": { + "type": "string", + "title": "The ARM resource identifier of the virtual network subnet which the compute nodes of the pool will join. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}.", + "description": "The virtual network must be in the same region and subscription as the Azure Batch account. The specified subnet should have enough free IP addresses to accommodate the number of nodes in the pool. If the subnet doesn't have enough free IP addresses, the pool will partially allocate compute nodes and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule tasks on the compute nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the compute nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the compute nodes to unusable. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication,including ports 29876 and 29877. Also enable outbound connections to Azure Storage on port 443. For more details see: https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration", + "externalDocs": { + "url": "https://learn.microsoft.com/azure/batch/batch-virtual-network", + "description": "Create an Azure Batch pool in a virtual network" + } + }, + "dynamicVnetAssignmentScope": { + "type": "string", + "title": "The scope of dynamic vnet assignment.", + "default": "none", + "enum": [ + "none", + "job" + ], + "x-ms-enum": { + "name": "DynamicVNetAssignmentScope", + "modelAsString": false, + "values": [ + { + "value": "none", + "description": "No dynamic VNet assignment is enabled." + }, + { + "value": "job", + "description": "Dynamic VNet assignment is done per-job. If this value is set, the network configuration subnet ID must also be set. This feature requires approval before use, please contact support" + } + ] + } + }, + "endpointConfiguration": { + "$ref": "#/definitions/PoolEndpointConfiguration", + "title": "The configuration for endpoints on compute nodes in the Batch pool." + }, + "publicIPAddressConfiguration": { + "$ref": "#/definitions/PublicIPAddressConfiguration", + "title": "The Public IPAddress configuration for Compute Nodes in the Batch Pool." + }, + "enableAcceleratedNetworking": { + "type": "boolean", + "title": "Whether this pool should enable accelerated networking.", + "description": "Accelerated networking enables single root I/O virtualization (SR-IOV) to a VM, which may lead to improved networking performance. For more details, see: https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview.", + "externalDocs": { + "url": "https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview", + "description": "Create a VM with Accelerated Networking." + } + } + }, + "description": "The network configuration for a pool." + }, + "MetadataItem": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "The name of the metadata item." + }, + "value": { + "type": "string", + "title": "The value of the metadata item." + } + }, + "required": [ + "name", + "value" + ], + "title": "A name-value pair associated with a Batch service resource.", + "description": "The Batch service does not assign any meaning to this metadata; it is solely for the use of user code." + }, + "ResizeOperationStatus": { + "type": "object", + "properties": { + "targetDedicatedNodes": { + "type": "integer", + "format": "int32", + "title": "The desired number of dedicated compute nodes in the pool." + }, + "targetLowPriorityNodes": { + "type": "integer", + "format": "int32", + "title": "The desired number of Spot/low-priority compute nodes in the pool." + }, + "resizeTimeout": { + "type": "string", + "format": "duration", + "title": "The timeout for allocation of compute nodes to the pool or removal of compute nodes from the pool.", + "description": "The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request)." + }, + "nodeDeallocationOption": { + "title": "Determines what to do with a node and its running task(s) if the pool size is decreasing.", + "description": "The default value is requeue.", + "$ref": "#/definitions/ComputeNodeDeallocationOption" + }, + "startTime": { + "type": "string", + "format": "date-time", + "title": "The time when this resize operation was started." + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/ResizeError" + }, + "x-ms-identifiers": [ + "code" + ], + "title": "Details of any errors encountered while performing the last resize on the pool.", + "description": "This property is set only if an error occurred during the last pool resize, and only when the pool allocationState is Steady." + } + }, + "title": "Details about the current or last completed resize operation.", + "description": "Describes either the current operation (if the pool AllocationState is Resizing) or the previously completed operation (if the AllocationState is Steady)." + }, + "PoolEndpointConfiguration": { + "type": "object", + "properties": { + "inboundNatPools": { + "type": "array", + "items": { + "$ref": "#/definitions/InboundNatPool" + }, + "x-ms-identifiers": [ + "name" + ], + "title": "A list of inbound NAT pools that can be used to address specific ports on an individual compute node externally.", + "description": "The maximum number of inbound NAT pools per Batch pool is 5. If the maximum number of inbound NAT pools is exceeded the request fails with HTTP status code 400. This cannot be specified if the IPAddressProvisioningType is NoPublicIPAddresses." + } + }, + "required": [ + "inboundNatPools" + ], + "title": "The endpoint configuration for a pool." + }, + "InboundNatPool": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "The name of the endpoint.", + "description": "The name must be unique within a Batch pool, can contain letters, numbers, underscores, periods, and hyphens. Names must start with a letter or number, must end with a letter, number, or underscore, and cannot exceed 77 characters. If any invalid values are provided the request fails with HTTP status code 400." + }, + "protocol": { + "type": "string", + "title": "The protocol of the endpoint.", + "enum": [ + "TCP", + "UDP" + ], + "x-ms-enum": { + "name": "InboundEndpointProtocol", + "modelAsString": false, + "values": [ + { + "value": "TCP", + "description": "Use TCP for the endpoint." + }, + { + "value": "UDP", + "description": "Use UDP for the endpoint." + } + ] + } + }, + "backendPort": { + "type": "integer", + "format": "int32", + "title": "The port number on the compute node.", + "description": "This must be unique within a Batch pool. Acceptable values are between 1 and 65535 except for 29876 and 29877 as these are reserved. If any reserved values are provided the request fails with HTTP status code 400." + }, + "frontendPortRangeStart": { + "type": "integer", + "format": "int32", + "title": "The first port number in the range of external ports that will be used to provide inbound access to the backendPort on individual compute nodes.", + "description": "Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400." + }, + "frontendPortRangeEnd": { + "type": "integer", + "format": "int32", + "title": "The last port number in the range of external ports that will be used to provide inbound access to the backendPort on individual compute nodes.", + "description": "Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved by the Batch service. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400." + }, + "networkSecurityGroupRules": { + "type": "array", + "title": "A list of network security group rules that will be applied to the endpoint.", + "description": "The maximum number of rules that can be specified across all the endpoints on a Batch pool is 25. If no network security group rules are specified, a default rule will be created to allow inbound access to the specified backendPort. If the maximum number of network security group rules is exceeded the request fails with HTTP status code 400.", + "items": { + "$ref": "#/definitions/NetworkSecurityGroupRule" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "name", + "protocol", + "backendPort", + "frontendPortRangeStart", + "frontendPortRangeEnd" + ], + "title": "A inbound NAT pool that can be used to address specific ports on compute nodes in a Batch pool externally." + }, + "NetworkSecurityGroupRule": { + "type": "object", + "properties": { + "priority": { + "type": "integer", + "format": "int32", + "title": "The priority for this rule.", + "description": "Priorities within a pool must be unique and are evaluated in order of priority. The lower the number the higher the priority. For example, rules could be specified with order numbers of 150, 250, and 350. The rule with the order number of 150 takes precedence over the rule that has an order of 250. Allowed priorities are 150 to 4096. If any reserved or duplicate values are provided the request fails with HTTP status code 400." + }, + "access": { + "type": "string", + "title": "The action that should be taken for a specified IP address, subnet range or tag.", + "enum": [ + "Allow", + "Deny" + ], + "x-ms-enum": { + "name": "NetworkSecurityGroupRuleAccess", + "modelAsString": false, + "values": [ + { + "value": "Allow", + "description": "Allow access." + }, + { + "value": "Deny", + "description": "Deny access." + } + ] + } + }, + "sourceAddressPrefix": { + "type": "string", + "title": "The source address prefix or tag to match for the rule.", + "description": "Valid values are a single IP address (i.e. 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all addresses). If any other values are provided the request fails with HTTP status code 400." + }, + "sourcePortRanges": { + "type": "array", + "items": { + "type": "string" + }, + "title": "The source port ranges to match for the rule.", + "description": "Valid values are '*' (for all ports 0 - 65535) or arrays of ports or port ranges (i.e. 100-200). The ports should in the range of 0 to 65535 and the port ranges or ports can't overlap. If any other values are provided the request fails with HTTP status code 400. Default value will be *." + } + }, + "required": [ + "priority", + "access", + "sourceAddressPrefix" + ], + "title": "A network security group rule to apply to an inbound endpoint." + }, + "ListPrivateLinkResourcesResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + }, + "description": "The collection of returned private link resources." + }, + "nextLink": { + "type": "string", + "description": "The continuation token." + } + }, + "description": "Values returned by the List operation." + }, + "ListPrivateEndpointConnectionsResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "description": "The collection of returned private endpoint connection." + }, + "nextLink": { + "type": "string", + "description": "The continuation token." + } + }, + "description": "Values returned by the List operation." + }, + "ListPoolsResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Pool" + }, + "description": "The collection of returned pools." + }, + "nextLink": { + "type": "string", + "description": "The continuation token." + } + }, + "description": "Values returned by the List operation." + }, + "CloudError": { + "type": "object", + "x-ms-external": true, + "properties": { + "error": { + "description": "The body of the error response.", + "$ref": "#/definitions/CloudErrorBody" + } + }, + "description": "An error response from the Batch service." + }, + "CloudErrorBody": { + "type": "object", + "x-ms-external": true, + "properties": { + "code": { + "type": "string", + "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." + }, + "message": { + "type": "string", + "description": "A message describing the error, intended to be suitable for display in a user interface." + }, + "target": { + "type": "string", + "description": "The target of the particular error. For example, the name of the property in error." + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudErrorBody" + }, + "x-ms-identifiers": [ + "message", + "target" + ], + "description": "A list of additional details about the error." + } + }, + "description": "An error response from the Batch service." + }, + "SkuCapability": { + "type": "object", + "properties": { + "name": { + "type": "string", + "readOnly": true, + "description": "The name of the feature." + }, + "value": { + "type": "string", + "readOnly": true, + "description": "The value of the feature." + } + }, + "description": "A SKU capability, such as the number of cores." + }, + "SupportedSku": { + "type": "object", + "properties": { + "name": { + "readOnly": true, + "type": "string", + "description": "The name of the SKU." + }, + "familyName": { + "readOnly": true, + "type": "string", + "description": "The family name of the SKU." + }, + "capabilities": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/SkuCapability" + }, + "x-ms-identifiers": [ + "name" + ], + "description": "A collection of capabilities which this SKU supports." + }, + "batchSupportEndOfLife": { + "type": "string", + "readOnly": true, + "format": "date-time", + "description": "The time when Azure Batch service will retire this SKU." + } + }, + "description": "Describes a Batch supported SKU." + }, + "SupportedSkusResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/SupportedSku" + }, + "x-ms-identifiers": [ + "name" + ], + "description": "The list of SKUs available for the Batch service in the location." + }, + "nextLink": { + "readOnly": true, + "type": "string", + "description": "The URL to use for getting the next set of results." + } + }, + "required": [ + "value" + ], + "description": "The Batch List supported SKUs operation response." + }, + "Operation": { + "title": "A REST API operation", + "type": "object", + "properties": { + "name": { + "title": "The operation name.", + "description": "This is of the format {provider}/{resource}/{operation}", + "type": "string" + }, + "isDataAction": { + "description": "Indicates whether the operation is a data action", + "type": "boolean" + }, + "display": { + "title": "The object that describes the operation.", + "type": "object", + "properties": { + "provider": { + "title": "Friendly name of the resource provider.", + "type": "string" + }, + "operation": { + "title": "The operation type.", + "description": "For example: read, write, delete, or listKeys/action", + "type": "string" + }, + "resource": { + "title": "The resource type on which the operation is performed.", + "type": "string" + }, + "description": { + "title": "The friendly name of the operation", + "type": "string" + } + } + }, + "origin": { + "title": "The intended executor of the operation.", + "type": "string" + }, + "properties": { + "title": "Properties of the operation.", + "type": "object" + } + } + }, + "OperationListResult": { + "title": "Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next set of results.", + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Operation" + }, + "x-ms-identifiers": [ + "name" + ], + "title": "The list of operations supported by the resource provider." + }, + "nextLink": { + "type": "string", + "title": "The URL to get the next set of operation list results if there are any." + } + } + }, + "CheckNameAvailabilityParameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name to check for availability" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Batch/batchAccounts" + ], + "x-ms-enum": { + "name": "ResourceType", + "modelAsString": false, + "values": [ + { + "value": "Microsoft.Batch/batchAccounts", + "description": "The Batch account resource type.", + "name": "BatchAccounts" + } + ] + }, + "description": "The resource type." + } + }, + "required": [ + "name", + "type" + ], + "description": "Parameters for a check name availability request." + }, + "CheckNameAvailabilityResult": { + "type": "object", + "properties": { + "nameAvailable": { + "readOnly": true, + "type": "boolean", + "description": "Gets a boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or invalid and cannot be used." + }, + "reason": { + "readOnly": true, + "type": "string", + "enum": [ + "Invalid", + "AlreadyExists" + ], + "x-ms-enum": { + "name": "NameAvailabilityReason", + "modelAsString": false, + "values": [ + { + "value": "Invalid", + "description": "The requested name is invalid." + }, + { + "value": "AlreadyExists", + "description": "The requested name is already in use." + } + ] + }, + "description": "Gets the reason that a Batch account name could not be used. The Reason element is only returned if NameAvailable is false." + }, + "message": { + "readOnly": true, + "type": "string", + "description": "Gets an error message explaining the Reason value in more detail." + } + }, + "description": "The CheckNameAvailability operation response." + }, + "MountConfiguration": { + "type": "object", + "properties": { + "azureBlobFileSystemConfiguration": { + "$ref": "#/definitions/AzureBlobFileSystemConfiguration", + "title": "The Azure Storage Container to mount using blob FUSE on each node.", + "description": "This property is mutually exclusive with all other properties." + }, + "nfsMountConfiguration": { + "$ref": "#/definitions/NFSMountConfiguration", + "title": "The NFS file system to mount on each node.", + "description": "This property is mutually exclusive with all other properties." + }, + "cifsMountConfiguration": { + "$ref": "#/definitions/CIFSMountConfiguration", + "title": "The CIFS/SMB file system to mount on each node.", + "description": "This property is mutually exclusive with all other properties." + }, + "azureFileShareConfiguration": { + "$ref": "#/definitions/AzureFileShareConfiguration", + "title": "The Azure File Share to mount on each node.", + "description": "This property is mutually exclusive with all other properties." + } + }, + "title": "The file system to mount on each node." + }, + "AzureBlobFileSystemConfiguration": { + "type": "object", + "properties": { + "accountName": { + "type": "string", + "title": "The Azure Storage Account name." + }, + "containerName": { + "type": "string", + "title": "The Azure Blob Storage Container name." + }, + "accountKey": { + "type": "string", + "title": "The Azure Storage Account key.", + "description": "This property is mutually exclusive with both sasKey and identity; exactly one must be specified.", + "x-ms-secret": true + }, + "sasKey": { + "type": "string", + "title": "The Azure Storage SAS token.", + "description": "This property is mutually exclusive with both accountKey and identity; exactly one must be specified.", + "x-ms-secret": true + }, + "blobfuseOptions": { + "type": "string", + "title": "Additional command line options to pass to the mount command.", + "description": "These are 'net use' options in Windows and 'mount' options in Linux." + }, + "relativeMountPath": { + "type": "string", + "title": "The relative path on the compute node where the file system will be mounted", + "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable." + }, + "identityReference": { + "title": "The reference to the user assigned identity to use to access containerName", + "description": "This property is mutually exclusive with both accountKey and sasKey; exactly one must be specified.", + "$ref": "#/definitions/ComputeNodeIdentityReference" + } + }, + "required": [ + "accountName", + "containerName", + "relativeMountPath" + ], + "title": "Information used to connect to an Azure Storage Container using Blobfuse." + }, + "NFSMountConfiguration": { + "type": "object", + "properties": { + "source": { + "type": "string", + "title": "The URI of the file system to mount." + }, + "relativeMountPath": { + "type": "string", + "title": "The relative path on the compute node where the file system will be mounted", + "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable." + }, + "mountOptions": { + "type": "string", + "title": "Additional command line options to pass to the mount command.", + "description": "These are 'net use' options in Windows and 'mount' options in Linux." + } + }, + "required": [ + "source", + "relativeMountPath" + ], + "title": "Information used to connect to an NFS file system." + }, + "CIFSMountConfiguration": { + "type": "object", + "properties": { + "userName": { + "type": "string", + "title": "The user to use for authentication against the CIFS file system." + }, + "source": { + "type": "string", + "title": "The URI of the file system to mount." + }, + "relativeMountPath": { + "type": "string", + "title": "The relative path on the compute node where the file system will be mounted", + "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable." + }, + "mountOptions": { + "type": "string", + "title": "Additional command line options to pass to the mount command.", + "description": "These are 'net use' options in Windows and 'mount' options in Linux." + }, + "password": { + "type": "string", + "title": "The password to use for authentication against the CIFS file system.", + "x-ms-secret": true + } + }, + "required": [ + "userName", + "source", + "password", + "relativeMountPath" + ], + "title": "Information used to connect to a CIFS file system." + }, + "AzureFileShareConfiguration": { + "type": "object", + "properties": { + "accountName": { + "type": "string", + "title": "The Azure Storage account name." + }, + "azureFileUrl": { + "type": "string", + "title": "The Azure Files URL.", + "description": "This is of the form 'https://{account}.file.core.windows.net/'." + }, + "accountKey": { + "type": "string", + "title": "The Azure Storage account key.", + "x-ms-secret": true + }, + "relativeMountPath": { + "type": "string", + "title": "The relative path on the compute node where the file system will be mounted", + "description": "All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable." + }, + "mountOptions": { + "type": "string", + "title": "Additional command line options to pass to the mount command.", + "description": "These are 'net use' options in Windows and 'mount' options in Linux." + } + }, + "required": [ + "accountName", + "azureFileUrl", + "relativeMountPath", + "accountKey" + ], + "title": "Information used to connect to an Azure Fileshare." + }, + "OutboundEnvironmentEndpointCollection": { + "type": "object", + "properties": { + "value": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/OutboundEnvironmentEndpoint" + }, + "x-ms-identifiers": [], + "description": "The collection of outbound network dependency endpoints returned by the listing operation." + }, + "nextLink": { + "type": "string", + "description": "The continuation token." + } + }, + "description": "Values returned by the List operation." + }, + "OutboundEnvironmentEndpoint": { + "type": "object", + "properties": { + "category": { + "type": "string", + "readOnly": true, + "description": "The type of service that the Batch service connects to." + }, + "endpoints": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/EndpointDependency" + }, + "x-ms-identifiers": [ + "domainName" + ], + "description": "The endpoints for this service to which the Batch service makes outbound calls." + } + }, + "description": "A collection of related endpoints from the same service for which the Batch service requires outbound access." + }, + "EndpointDependency": { + "type": "object", + "properties": { + "domainName": { + "type": "string", + "readOnly": true, + "description": "The domain name of the dependency. Domain names may be fully qualified or may contain a * wildcard." + }, + "description": { + "type": "string", + "readOnly": true, + "description": "Human-readable supplemental information about the dependency and when it is applicable." + }, + "endpointDetails": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/EndpointDetail" + }, + "x-ms-identifiers": [ + "port" + ], + "description": "The list of connection details for this endpoint." + } + }, + "description": "A domain name and connection details used to access a dependency." + }, + "EndpointDetail": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "int32", + "readOnly": true, + "description": "The port an endpoint is connected to." + } + }, + "description": "Details about the connection between the Batch service and the endpoint." + }, + "ManagedDisk": { + "type": "object", + "properties": { + "storageAccountType": { + "$ref": "#/definitions/StorageAccountType", + "title": "The storage account type for managed disk." + }, + "securityProfile": { + "$ref": "#/definitions/VMDiskSecurityProfile", + "title": "Specifies the security profile for the managed disk." + }, + "diskEncryptionSet": { + "$ref": "#/definitions/DiskEncryptionSetParameters", + "description": "Specifies the customer managed disk encryption set resource id for the managed disk. It can be set only in UserSubscription mode." + } + } + }, + "SecurityProfile": { + "type": "object", + "properties": { + "securityType": { + "type": "string", + "title": "Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings.", + "enum": [ + "trustedLaunch", + "confidentialVM" + ], + "x-ms-enum": { + "name": "SecurityTypes", + "modelAsString": false, + "values": [ + { + "value": "trustedLaunch", + "description": "Trusted launch protects against advanced and persistent attack techniques." + }, + { + "value": "confidentialVM", + "description": "Azure confidential computing offers confidential VMs are for tenants with high security and confidentiality requirements. These VMs provide a strong, hardware-enforced boundary to help meet your security needs. You can use confidential VMs for migrations without making changes to your code, with the platform protecting your VM's state from being read or modified." + } + ] + } + }, + "encryptionAtHost": { + "type": "boolean", + "description": "This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself." + }, + "uefiSettings": { + "$ref": "#/definitions/UefiSettings", + "title": "Specifies the security settings like secure boot and vTPM used while creating the virtual machine.", + "description": "Specifies the security settings like secure boot and vTPM used while creating the virtual machine." + }, + "proxyAgentSettings": { + "$ref": "#/definitions/ProxyAgentSettings", + "description": "Specifies ProxyAgent settings while creating the virtual machine." + } + }, + "description": "Specifies the security profile settings for the virtual machine or virtual machine scale set." + }, + "UefiSettings": { + "type": "object", + "properties": { + "secureBootEnabled": { + "type": "boolean", + "description": "Specifies whether secure boot should be enabled on the virtual machine." + }, + "vTpmEnabled": { + "type": "boolean", + "description": "Specifies whether vTPM should be enabled on the virtual machine." + } + }, + "description": "Specifies the security settings like secure boot and vTPM used while creating the virtual machine." + }, + "DiskCustomerManagedKey": { + "type": "object", + "properties": { + "keyUrl": { + "type": "string", + "description": "Fully versioned Key Url pointing to a key in KeyVault. Version segment of the Url is required regardless of rotationToLatestKeyVersionEnabled value." + }, + "rotationToLatestKeyVersionEnabled": { + "type": "boolean", + "description": "Set this flag to true to enable auto-updating of the Disk Encryption to the latest key version. Default is false." + }, + "identityReference": { + "$ref": "#/definitions/PoolIdentityReference", + "description": "The reference of one of the pool identities to encrypt Disk. This identity will be used to access the KeyVault." + } + }, + "description": "The Customer Managed Key reference to encrypt the Disk." + }, + "PoolIdentityReference": { + "type": "object", + "properties": { + "resourceId": { + "type": "string", + "description": "The ARM resource id of the user assigned identity. This reference must be included in the pool identities." + } + }, + "description": "The reference of one of the pool identities to encrypt Disk. This identity will be used to access the key vault." + }, + "DiskEncryptionSetParameters": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ARM resource id of the disk encryption set. The resource should be in the same subscription as the Batch account." + } + }, + "description": "The ARM resource id of the disk encryption set." + }, + "UpgradePolicy": { + "type": "object", + "properties": { + "mode": { + "type": "string", + "title": "Specifies the mode of an upgrade to virtual machines in the scale set.<br /><br /> Possible values are:<br /><br /> **Manual** - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action.<br /><br /> **Automatic** - All virtual machines in the scale set are automatically updated at the same time.<br /><br /> **Rolling** - Scale set performs updates in batches with an optional pause time in between.", + "enum": [ + "automatic", + "manual", + "rolling" + ], + "x-ms-enum": { + "name": "UpgradeMode", + "modelAsString": false, + "values": [ + { + "value": "automatic", + "description": "All virtual machines in the scale set are automatically updated at the same time." + }, + { + "value": "manual", + "description": "You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action." + }, + { + "value": "rolling", + "description": "The existing instances in a scale set are brought down in batches to be upgraded. Once the upgraded batch is complete, the instances will begin taking traffic again and the next batch will begin. This continues until all instances brought up-to-date." + } + ] + } + }, + "automaticOSUpgradePolicy": { + "$ref": "#/definitions/AutomaticOSUpgradePolicy", + "title": "Configuration parameters used for performing automatic OS Upgrade.", + "description": "The configuration parameters used for performing automatic OS upgrade." + }, + "rollingUpgradePolicy": { + "$ref": "#/definitions/RollingUpgradePolicy", + "title": "The configuration parameters used while performing a rolling upgrade." + } + }, + "required": [ + "mode" + ], + "description": "Describes an upgrade policy - automatic, manual, or rolling." + }, + "AutomaticOSUpgradePolicy": { + "type": "object", + "properties": { + "disableAutomaticRollback": { + "type": "boolean", + "description": "Whether OS image rollback feature should be disabled." + }, + "enableAutomaticOSUpgrade": { + "type": "boolean", + "description": "Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. <br /><br /> If this is set to true for Windows based pools, [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) cannot be set to true." + }, + "useRollingUpgradePolicy": { + "type": "boolean", + "description": "Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS." + }, + "osRollingUpgradeDeferral": { + "type": "boolean", + "description": "Defer OS upgrades on the TVMs if they are running tasks." + } + }, + "description": "The configuration parameters used for performing automatic OS upgrade." + }, + "RollingUpgradePolicy": { + "type": "object", + "properties": { + "enableCrossZoneUpgrade": { + "type": "boolean", + "description": "Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the batch size. If this field is not set, Azure Azure Batch will not set its default value. The value of enableCrossZoneUpgrade on the created VirtualMachineScaleSet will be decided by the default configurations on VirtualMachineScaleSet. This field is able to be set to true or false only when using NodePlacementConfiguration as Zonal." + }, + "maxBatchInstancePercent": { + "type": "integer", + "format": "int32", + "minimum": 5, + "maximum": 100, + "description": "The maximum percent of total virtual machine instances that will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, unhealthy instances in previous or future batches can cause the percentage of instances in a batch to decrease to ensure higher reliability. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent." + }, + "maxUnhealthyInstancePercent": { + "type": "integer", + "format": "int32", + "minimum": 5, + "maximum": 100, + "description": "The maximum percentage of the total virtual machine instances in the scale set that can be simultaneously unhealthy, either as a result of being upgraded, or by being found in an unhealthy state by the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The value of this field should be between 5 and 100, inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent are assigned with value, the value of maxBatchInstancePercent should not be more than maxUnhealthyInstancePercent." + }, + "maxUnhealthyUpgradedInstancePercent": { + "type": "integer", + "format": "int32", + "minimum": 0, + "maximum": 100, + "description": "The maximum percentage of upgraded virtual machine instances that can be found to be in an unhealthy state. This check will happen after each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The value of this field should be between 0 and 100, inclusive." + }, + "pauseTimeBetweenBatches": { + "type": "string", + "description": "The wait time between completing the update for all virtual machines in one batch and starting the next batch. The time duration should be specified in ISO 8601 format." + }, + "prioritizeUnhealthyInstances": { + "type": "boolean", + "description": "Upgrade all unhealthy instances in a scale set before any healthy instances." + }, + "rollbackFailedInstancesOnPolicyBreach": { + "type": "boolean", + "description": "Rollback failed instances to previous model if the Rolling Upgrade policy is violated." + } + }, + "description": "The configuration parameters used while performing a rolling upgrade." + }, + "VMDiskSecurityProfile": { + "type": "object", + "properties": { + "securityEncryptionType": { + "type": "string", + "title": "Specifies the EncryptionType of the managed disk. It is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob, VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and required when using Confidential VMs.", + "enum": [ + "DiskWithVMGuestState", + "NonPersistedTPM", + "VMGuestStateOnly" + ], + "x-ms-enum": { + "name": "SecurityEncryptionTypes", + "modelAsString": true, + "values": [ + { + "name": "DiskWithVMGuestState", + "value": "DiskWithVMGuestState", + "description": "EncryptionType of the managed disk is set to DiskWithVMGuestState for encryption of the managed disk along with VMGuestState blob. It is not supported in data disks." + }, + { + "name": "VMGuestStateOnly", + "value": "VMGuestStateOnly", + "description": "EncryptionType of the managed disk is set to VMGuestStateOnly for encryption of just the VMGuestState blob." + }, + { + "name": "NonPersistedTPM", + "value": "NonPersistedTPM", + "description": "EncryptionType of the managed disk is set to NonPersistedTPM for not persisting firmware state in the VMGuestState blob." + } + ] + } + }, + "diskEncryptionSet": { + "$ref": "#/definitions/DiskEncryptionSetParameters", + "description": "Specifies the customer managed disk encryption set resource id for the managed disk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and VMGuest blob. It can be set only in UserSubscription mode." + } + }, + "description": "Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and is required when using Confidential VMs." + }, + "HostEndpointSettings": { + "type": "object", + "title": "Specifies particular host endpoint settings.", + "properties": { + "mode": { + "type": "string", + "title": "Audit / Enforce", + "enum": [ + "Audit", + "Enforce" + ], + "x-ms-enum": { + "name": "HostEndpointSettingsModeTypes", + "modelAsString": true, + "values": [ + { + "value": "Audit", + "description": "In Audit mode, the system acts as if it is enforcing the access control policy, including emitting access denial entries in the logs but it does not actually deny any requests to host endpoints." + }, + { + "value": "Enforce", + "description": "Enforce mode is the recommended mode of operation and system will enforce the access control policy. This property cannot be used together with 'inVMAccessControlProfileReferenceId'." + } + ] + }, + "description": "Specifies the access control policy execution mode." + }, + "inVMAccessControlProfileReferenceId": { + "type": "string", + "title": "Specifies the reference to the InVMAccessControlProfileVersion resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}." + } + } + }, + "ProxyAgentSettings": { + "type": "object", + "title": "Specifies ProxyAgent settings while creating the virtual machine.", + "properties": { + "enabled": { + "type": "boolean", + "title": "Specifies whether Metadata Security Protocol feature should be enabled on the virtual machine or virtual machine scale set. Default is False." + }, + "imds": { + "$ref": "#/definitions/HostEndpointSettings", + "title": "Settings for the IMDS endpoint." + }, + "wireServer": { + "$ref": "#/definitions/HostEndpointSettings", + "title": "Settings for the WireServer endpoint." + } + } + } + }, + "parameters": { + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "required": true, + "type": "string", + "description": "The Azure subscription ID. This is a GUID-formatted string (e.g. 00000000-0000-0000-0000-000000000000)" + }, + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "The API version to be used with the HTTP request." + }, + "ResourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group that contains the Batch account.", + "x-ms-parameter-location": "method" + }, + "AccountNameParameter": { + "name": "accountName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9]+$", + "minLength": 3, + "maxLength": 24, + "description": "The name of the Batch account.", + "x-ms-parameter-location": "method" + }, + "DetectorIdParameter": { + "name": "detectorId", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the detector.", + "x-ms-parameter-location": "method" + }, + "PoolNameParameter": { + "name": "poolName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_-]+$", + "minLength": 1, + "maxLength": 64, + "description": "The pool name. This must be unique within the account.", + "x-ms-parameter-location": "method" + }, + "PrivateLinkResourceNameParameter": { + "name": "privateLinkResourceName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_-]+\\.?[a-fA-F0-9-]*$", + "minLength": 1, + "maxLength": 101, + "description": "The private link resource name. This must be unique within the account.", + "x-ms-parameter-location": "method" + }, + "PrivateEndpointConnectionNameParameter": { + "name": "privateEndpointConnectionName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_-]+\\.?[a-fA-F0-9-]*$", + "minLength": 1, + "maxLength": 101, + "description": "The private endpoint connection name. This must be unique within the account.", + "x-ms-parameter-location": "method" + }, + "ApplicationNameParameter": { + "name": "applicationName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_-]+$", + "minLength": 1, + "maxLength": 64, + "description": "The name of the application. This must be unique within the account.", + "x-ms-parameter-location": "method" + }, + "VersionNameParameter": { + "name": "versionName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_-][a-zA-Z0-9_.-]*$", + "minLength": 1, + "maxLength": 64, + "description": "The version of the application.", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/NetworkSecurityPerimeter.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/NetworkSecurityPerimeter.json new file mode 100644 index 000000000000..594871dcc47d --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/NetworkSecurityPerimeter.json @@ -0,0 +1,197 @@ +{ + "swagger": "2.0", + "info": { + "title": "BatchManagementClient", + "description": "The Batch Management Client.", + "version": "2025-06-01" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Microsoft Entra OAuth 2.0 auth code flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations": { + "get": { + "tags": [ + "NetworkSecurityPerimeter" + ], + "operationId": "NetworkSecurityPerimeter_ListConfigurations", + "description": "Lists all of the NSP configurations in the specified account.", + "x-ms-examples": { + "ListNspConfigurations": { + "$ref": "./examples/NspConfigurationsList.json" + } + }, + "parameters": [ + { + "$ref": "./BatchManagement.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "./BatchManagement.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "./BatchManagement.json#/parameters/AccountNameParameter" + }, + { + "$ref": "./BatchManagement.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains a list of NSP configurations associated with the account.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfigurationListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./BatchManagement.json#/definitions/CloudError" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}": { + "get": { + "tags": [ + "NetworkSecurityPerimeter" + ], + "operationId": "NetworkSecurityPerimeter_GetConfiguration", + "description": "Gets information about the specified NSP configuration.", + "x-ms-examples": { + "GetNspConfiguration": { + "$ref": "./examples/NspConfigurationGet.json" + } + }, + "parameters": [ + { + "$ref": "./BatchManagement.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "./BatchManagement.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "./BatchManagement.json#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/networkSecurityPerimeterConfigurationName" + }, + { + "$ref": "./BatchManagement.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "The operation was successful. The response contains the NSP configuration.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/networksecurityperimeter.json#/definitions/NetworkSecurityPerimeterConfiguration" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./BatchManagement.json#/definitions/CloudError" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}/reconcile": { + "post": { + "tags": [ + "NetworkSecurityPerimeter" + ], + "operationId": "NetworkSecurityPerimeter_ReconcileConfiguration", + "description": "Reconciles the specified NSP configuration.", + "x-ms-examples": { + "ReconcileNspConfiguration": { + "$ref": "./examples/NspConfigurationReconcile.json" + } + }, + "parameters": [ + { + "$ref": "./BatchManagement.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "./BatchManagement.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "./BatchManagement.json#/parameters/AccountNameParameter" + }, + { + "$ref": "#/parameters/networkSecurityPerimeterConfigurationName" + }, + { + "$ref": "./BatchManagement.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "202": { + "description": "The operation was accepted and will be performed in the background.", + "headers": { + "Location": { + "description": "The URL of the resource used to check the status of the asynchronous operation.", + "type": "string" + }, + "Retry-After": { + "description": "Suggested delay to check the status of the asynchronous operation. The value is an integer that specifies the delay in seconds.", + "type": "integer", + "format": "int32" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "x-ms-error-response": true, + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + } + }, + "parameters": { + "networkSecurityPerimeterConfigurationName": { + "name": "networkSecurityPerimeterConfigurationName", + "in": "path", + "required": true, + "type": "string", + "pattern": "^.*$", + "description": "The name for Network Security Perimeter configuration", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationCreate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationCreate.json new file mode 100644 index 000000000000..3478c868c7a0 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationCreate.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "applicationName": "app1", + "parameters": { + "properties": { + "allowUpdates": false, + "displayName": "myAppName" + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D64F8EBB3DC411\"" + }, + "body": { + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", + "name": "app1", + "etag": "W/\"0x8D64F8EBB3DC411\"", + "properties": { + "allowUpdates": false, + "displayName": "myAppName" + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationDelete.json new file mode 100644 index 000000000000..2865338ec9be --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationDelete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "applicationName": "app1" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationGet.json new file mode 100644 index 000000000000..cb8645283624 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationGet.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "applicationName": "app1" + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D64F915BDF7F00\"" + }, + "body": { + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", + "name": "app1", + "etag": "W/\"0x8D64F915BDF7F00\"", + "properties": { + "allowUpdates": true, + "displayName": "Sample Application" + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationList.json new file mode 100644 index 000000000000..973d431041ee --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationList.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", + "name": "app1", + "etag": "W/\"0x8D64F91A9089879\"", + "properties": { + "allowUpdates": false, + "defaultVersion": "1" + } + }, + { + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app2", + "name": "app1", + "etag": "W/\"0x8D64F91A9089879\"", + "properties": { + "allowUpdates": false, + "defaultVersion": "2.0", + "displayName": "myAppName" + } + } + ] + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageActivate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageActivate.json new file mode 100644 index 000000000000..1e7ed914f89f --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageActivate.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "applicationName": "app1", + "versionName": "1", + "parameters": { + "format": "zip" + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D64FEC83A3B436\"" + }, + "body": { + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1", + "name": "1", + "etag": "W/\"0x8D64FEC83A3B436\"", + "properties": { + "state": "Active", + "format": "zip", + "lastActivationTime": "2025-06-27T18:48:09.9330991Z" + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageCreate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageCreate.json new file mode 100644 index 000000000000..4f73f563d539 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageCreate.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "applicationName": "app1", + "versionName": "1" + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D64FEC83A3B436\"" + }, + "body": { + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1", + "name": "1", + "etag": "W/\"0x8D64FEC83A3B436\"", + "properties": { + "storageUrl": "http://mystorage1.blob.core.windows.net/myapp?mysas", + "storageUrlExpiry": "2025-06-27T18:48:09.9330991Z", + "state": "Pending" + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageDelete.json new file mode 100644 index 000000000000..9ce495430453 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageDelete.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "applicationName": "app1", + "versionName": "1" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageGet.json new file mode 100644 index 000000000000..1063a553ba4a --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageGet.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "applicationName": "app1", + "versionName": "1" + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D64FEC83A3B436\"" + }, + "body": { + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1", + "name": "1", + "etag": "W/\"0x8D64FEC83A3B436\"", + "properties": { + "state": "Active", + "format": "zip", + "lastActivationTime": "2025-06-27T18:48:09.9330991Z" + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageList.json new file mode 100644 index 000000000000..f08e17518f9b --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationPackageList.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "applicationName": "app1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/1.0", + "name": "1.0", + "etag": "W/\"0x8D64FF0B9F47F67\"", + "properties": { + "state": "Pending" + } + }, + { + "type": "Microsoft.Batch/batchAccounts/applications/versions", + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1/versions/2.0", + "name": "2.0", + "etag": "W/\"0x8D64FF0B9F47F67\"", + "properties": { + "state": "Active", + "format": "zip", + "lastActivationTime": "2025-06-27T18:48:09.9330991Z" + } + } + ] + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationUpdate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationUpdate.json new file mode 100644 index 000000000000..6e79fe707de8 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/ApplicationUpdate.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "applicationName": "app1", + "parameters": { + "properties": { + "allowUpdates": true, + "displayName": "myAppName", + "defaultVersion": "2" + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D64F915BDF7F00\"" + }, + "body": { + "type": "Microsoft.Batch/batchAccounts/applications", + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/applications/app1", + "name": "app1", + "etag": "W/\"0x8D64F915BDF7F00\"", + "properties": { + "allowUpdates": true, + "displayName": "myAppName", + "defaultVersion": "2" + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_BYOS.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_BYOS.json new file mode 100644 index 000000000000..3a103abe717e --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_BYOS.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "parameters": { + "location": "japaneast", + "properties": { + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "poolAllocationMode": "UserSubscription", + "keyVaultReference": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", + "url": "http://sample.vault.azure.net/" + } + } + } + }, + "responses": { + "202": {}, + "200": { + "body": { + "name": "sampleacct", + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "provisioningState": "Succeeded", + "poolAllocationMode": "UserSubscription", + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolQuota": 20, + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", + "lastKeySync": "2025-07-10T23:48:38.9878479Z" + }, + "keyVaultReference": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", + "url": "http://sample.vault.azure.net/" + }, + "publicNetworkAccess": "Enabled" + }, + "identity": { + "type": "None" + }, + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "type": "Microsoft.Batch/batchAccounts" + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_Default.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_Default.json new file mode 100644 index 000000000000..4f4447b0d605 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_Default.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "parameters": { + "location": "japaneast", + "properties": { + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + } + } + } + }, + "responses": { + "202": {}, + "200": { + "body": { + "name": "sampleacct", + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "provisioningState": "Succeeded", + "poolAllocationMode": "BatchService", + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolQuota": 20, + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", + "lastKeySync": "2025-07-10T23:48:38.9878479Z" + }, + "publicNetworkAccess": "Enabled" + }, + "identity": { + "type": "None" + }, + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "type": "Microsoft.Batch/batchAccounts" + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_SystemAssignedIdentity.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_SystemAssignedIdentity.json new file mode 100644 index 000000000000..7460dc6e6d72 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_SystemAssignedIdentity.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "parameters": { + "location": "japaneast", + "properties": { + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + } + }, + "identity": { + "type": "SystemAssigned" + } + } + }, + "responses": { + "202": {}, + "200": { + "body": { + "name": "sampleacct", + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "provisioningState": "Succeeded", + "poolAllocationMode": "BatchService", + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolQuota": 20, + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", + "lastKeySync": "2025-07-10T23:48:38.9878479Z" + }, + "publicNetworkAccess": "Enabled" + }, + "identity": { + "principalId": "1a2e532b-9900-414c-8600-cfc6126628d7", + "tenantId": "f686d426-8d16-42db-81b7-ab578e110ccd", + "type": "SystemAssigned" + }, + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "type": "Microsoft.Batch/batchAccounts" + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_UserAssignedIdentity.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_UserAssignedIdentity.json new file mode 100644 index 000000000000..efd34530d071 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountCreate_UserAssignedIdentity.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "parameters": { + "location": "japaneast", + "properties": { + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + } + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {} + } + } + } + }, + "responses": { + "202": {}, + "200": { + "body": { + "name": "sampleacct", + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "provisioningState": "Succeeded", + "poolAllocationMode": "BatchService", + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolQuota": 20, + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", + "lastKeySync": "2025-07-10T23:48:38.9878479Z" + }, + "publicNetworkAccess": "Enabled" + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": { + "principalId": "principalId1", + "clientId": "clientId1" + } + } + }, + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "type": "Microsoft.Batch/batchAccounts" + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountDelete.json new file mode 100644 index 000000000000..412a3eacd9e9 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountDelete.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.Batch/locations/japaneast/accountOperationResults/sampleacct-30a022cb-a64f-4fd5-9289-8b38b342e9de?api-version=2025-06-01" + } + }, + "204": {} + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountGet.json new file mode 100644 index 000000000000..aa4dc0f6773f --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountGet.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "name": "sampleacct", + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "provisioningState": "Succeeded", + "poolAllocationMode": "BatchService", + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolQuota": 20, + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", + "lastKeySync": "2025-07-10T23:48:38.9878479Z" + }, + "publicNetworkAccess": "Enabled" + }, + "identity": { + "type": "None" + }, + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "type": "Microsoft.Batch/batchAccounts" + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountGetKeys.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountGetKeys.json new file mode 100644 index 000000000000..cf1f46344d15 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountGetKeys.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "accountName": "sampleacct", + "primary": "AAAA==", + "secondary": "BBBB==" + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountList.json new file mode 100644 index 000000000000..69ba9ce66d97 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountList.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "api-version": "2025-06-01", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "sampleacct", + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "provisioningState": "Succeeded", + "poolAllocationMode": "BatchService", + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolQuota": 20, + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", + "lastKeySync": "2025-07-10T23:48:38.9878479Z" + }, + "publicNetworkAccess": "Enabled" + }, + "identity": { + "type": "None" + }, + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "type": "Microsoft.Batch/batchAccounts" + } + ] + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountListByResourceGroup.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountListByResourceGroup.json new file mode 100644 index 000000000000..895d39dc55f1 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountListByResourceGroup.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "sampleacct", + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "provisioningState": "Succeeded", + "poolAllocationMode": "BatchService", + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolQuota": 20, + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", + "lastKeySync": "2025-07-10T23:48:38.9878479Z" + }, + "publicNetworkAccess": "Enabled" + }, + "identity": { + "type": "None" + }, + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "type": "Microsoft.Batch/batchAccounts" + } + ] + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json new file mode 100644 index 000000000000..03e09760876e --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountListOutboundNetworkDependenciesEndpoints.json @@ -0,0 +1,108 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "category": "Azure Batch", + "endpoints": [ + { + "domainName": "sampleacct.japaneast.batch.azure.com", + "description": "Applicable to job manager tasks, tasks that use job scoped authentication, or any task that makes calls to Batch.", + "endpointDetails": [ + { + "port": 443 + } + ] + }, + { + "domainName": "japaneast.service.batch.azure.com", + "description": "Applicable to all Azure Batch pools.", + "endpointDetails": [ + { + "port": 443 + } + ] + } + ] + }, + { + "category": "Azure Storage", + "endpoints": [ + { + "domainName": "autostorageaccountname.blob.core.windows.net", + "description": "AutoStorage endpoint for this Batch account. Applicable to all Azure Batch pools under this account.", + "endpointDetails": [ + { + "port": 443 + } + ] + }, + { + "domainName": "*.blob.core.windows.net", + "description": "Applicable to all Azure Batch pools.", + "endpointDetails": [ + { + "port": 443 + } + ] + }, + { + "domainName": "*.table.core.windows.net", + "description": "Applicable to all Azure Batch pools.", + "endpointDetails": [ + { + "port": 443 + } + ] + }, + { + "domainName": "*.queue.core.windows.net", + "description": "Applicable to all Azure Batch pools.", + "endpointDetails": [ + { + "port": 443 + } + ] + } + ] + }, + { + "category": "Microsoft Package Repository", + "endpoints": [ + { + "domainName": "packages.microsoft.com", + "description": "Only applicable to pools containing a Mount Configuration. Learn about Mount Configurations in Batch at https://docs.microsoft.com/azure/batch/virtual-file-mount.", + "endpointDetails": [ + { + "port": 443 + } + ] + } + ] + }, + { + "category": "Azure Key Vault", + "endpoints": [ + { + "domainName": "*.vault.azure.net", + "description": "Only applicable to pools containing a Disk Encryption Configuration and whose VM size does not support encryption at host. Learn more about disk encryption in Azure Batch at https://docs.microsoft.com/azure/batch/disk-encryption. Learn more about encryption at host and supported VM sizes at https://docs.microsoft.com/azure/virtual-machines/disks-enable-host-based-encryption-portal.", + "endpointDetails": [ + { + "port": 443 + } + ] + } + ] + } + ] + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountRegenerateKey.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountRegenerateKey.json new file mode 100644 index 000000000000..74e2313021a2 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountRegenerateKey.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "parameters": { + "keyName": "Primary" + } + }, + "responses": { + "200": { + "body": { + "accountName": "sampleacct", + "primary": "AAAA==", + "secondary": "BBBB==" + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountSynchronizeAutoStorageKeys.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountSynchronizeAutoStorageKeys.json new file mode 100644 index 000000000000..5b3e13323cf7 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountSynchronizeAutoStorageKeys.json @@ -0,0 +1,11 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid" + }, + "responses": { + "204": {} + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountUpdate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountUpdate.json new file mode 100644 index 000000000000..165082ca54bd --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/BatchAccountUpdate.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "parameters": { + "properties": { + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + } + } + } + }, + "responses": { + "200": { + "body": { + "name": "sampleacct", + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "provisioningState": "Succeeded", + "poolAllocationMode": "BatchService", + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolQuota": 20, + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", + "lastKeySync": "2025-07-10T23:48:38.9878479Z" + }, + "publicNetworkAccess": "Enabled" + }, + "identity": { + "type": "None" + }, + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "type": "Microsoft.Batch/batchAccounts" + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/DetectorGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/DetectorGet.json new file mode 100644 index 000000000000..fe3f71b64111 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/DetectorGet.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "detectorId": "poolsAndNodes" + }, + "responses": { + "200": { + "body": { + "type": "Microsoft.Batch/batchAccounts/detectors", + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/detectors/poolsAndNodes", + "name": "poolsAndNodes", + "properties": { + "value": "ew0KICAibWV0YWRhdGEiOiB7DQogICAgImlkIjogInBvb2xzQW5kTm9kZXMiLA0KICAgICJuYW1lIjogIlBvb2xzIGFuZCBOb2RlcyIsDQogICAgImRlc2NyaXB0aW9uIjogbnVsbCwNCiAgICAiYXV0aG9yIjogIiIsDQogICAgImNhdGVnb3J5IjogbnVsbCwNCiAgICAic3VwcG9ydFRvcGljTGlzdCI6IFsNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDc3IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDYxIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY1IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY2IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY5IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDcyIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDc5IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDgyIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDkxIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDkzIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDk0IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfQ0KICAgIF0sDQogICAgImFuYWx5c2lzVHlwZXMiOiBudWxsLA0KICAgICJ0eXBlIjogIkFuYWx5c2lzIiwNCiAgICAic2NvcmUiOiAwLjANCiAgfSwNCiAgImRhdGFzZXQiOiBbXSwNCiAgInN0YXR1cyI6IHsNCiAgICAibWVzc2FnZSI6IG51bGwsDQogICAgInN0YXR1c0lkIjogNA0KICB9LA0KICAiZGF0YVByb3ZpZGVyc01ldGFkYXRhIjogbnVsbCwNCiAgInN1Z2dlc3RlZFV0dGVyYW5jZXMiOiBudWxsDQp9" + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/DetectorList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/DetectorList.json new file mode 100644 index 000000000000..f29844cca285 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/DetectorList.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "type": "Microsoft.Batch/batchAccounts/detectors", + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/detectors/poolsAndNodes", + "name": "poolsAndNodes", + "properties": { + "value": "ew0KICAibWV0YWRhdGEiOiB7DQogICAgImlkIjogInBvb2xzQW5kTm9kZXMiLA0KICAgICJuYW1lIjogIlBvb2xzIGFuZCBOb2RlcyIsDQogICAgImRlc2NyaXB0aW9uIjogbnVsbCwNCiAgICAiYXV0aG9yIjogIiIsDQogICAgImNhdGVnb3J5IjogbnVsbCwNCiAgICAic3VwcG9ydFRvcGljTGlzdCI6IFsNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDc3IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDYxIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY1IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY2IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDY5IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDcyIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDc5IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDgyIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDkxIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDkzIiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfSwNCiAgICAgIHsNCiAgICAgICAgImlkIjogIjMyNjM1MDk0IiwNCiAgICAgICAgInBlc0lkIjogIjE1NjE0IiwNCiAgICAgICAgInR5cGVJZCI6ICJEaWFnbm9zdGljcy5Nb2RlbHNBbmRVdGlscy5BdHRyaWJ1dGVzLlN1cHBvcnRUb3BpYywgRGlhZ25vc3RpY3MuTW9kZWxzQW5kVXRpbHMsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsIg0KICAgICAgfQ0KICAgIF0sDQogICAgImFuYWx5c2lzVHlwZXMiOiBudWxsLA0KICAgICJ0eXBlIjogIkFuYWx5c2lzIiwNCiAgICAic2NvcmUiOiAwLjANCiAgfSwNCiAgImRhdGFzZXQiOiBbXSwNCiAgInN0YXR1cyI6IHsNCiAgICAibWVzc2FnZSI6IG51bGwsDQogICAgInN0YXR1c0lkIjogNA0KICB9LA0KICAiZGF0YVByb3ZpZGVyc01ldGFkYXRhIjogbnVsbCwNCiAgInN1Z2dlc3RlZFV0dGVyYW5jZXMiOiBudWxsDQp9" + } + } + ] + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationCheckNameAvailability_AlreadyExists.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationCheckNameAvailability_AlreadyExists.json new file mode 100644 index 000000000000..87e2c150de86 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationCheckNameAvailability_AlreadyExists.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2025-06-01", + "subscriptionId": "subid", + "locationName": "japaneast", + "parameters": { + "name": "existingaccountname", + "type": "Microsoft.Batch/batchAccounts" + } + }, + "responses": { + "200": { + "body": { + "nameAvailable": false, + "reason": "AlreadyExists", + "message": "An account named 'existingaccountname' is already in use." + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationCheckNameAvailability_Available.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationCheckNameAvailability_Available.json new file mode 100644 index 000000000000..4b4e3c201d2e --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationCheckNameAvailability_Available.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2025-06-01", + "subscriptionId": "subid", + "locationName": "japaneast", + "parameters": { + "name": "newaccountname", + "type": "Microsoft.Batch/batchAccounts" + } + }, + "responses": { + "200": { + "body": { + "nameAvailable": true + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationGetQuotas.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationGetQuotas.json new file mode 100644 index 000000000000..862bcb5729d1 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationGetQuotas.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "api-version": "2025-06-01", + "subscriptionId": "subid", + "locationName": "japaneast" + }, + "responses": { + "200": { + "body": { + "accountQuota": 1 + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationListVirtualMachineSkus.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationListVirtualMachineSkus.json new file mode 100644 index 000000000000..aeda70f2165e --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/LocationListVirtualMachineSkus.json @@ -0,0 +1,136 @@ +{ + "parameters": { + "api-version": "2025-06-01", + "subscriptionId": "subid", + "locationName": "japaneast" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Standard_D4d_v5", + "familyName": "standardDFamily", + "capabilities": [ + { + "name": "MaxResourceVolumeMB", + "value": "20480" + }, + { + "name": "vCPUs", + "value": "1" + }, + { + "name": "HyperVGenerations", + "value": "V1" + }, + { + "name": "MemoryGB", + "value": "0.75" + }, + { + "name": "LowPriorityCapable", + "value": "False" + }, + { + "name": "vCPUsAvailable", + "value": "1" + }, + { + "name": "EphemeralOSDiskSupported", + "value": "False" + } + ] + }, + { + "name": "Standard_A1", + "familyName": "standardA0_A7Family", + "capabilities": [ + { + "name": "MaxResourceVolumeMB", + "value": "71680" + }, + { + "name": "OSVhdSizeMB", + "value": "1047552" + }, + { + "name": "vCPUs", + "value": "1" + }, + { + "name": "MemoryPreservingMaintenanceSupported", + "value": "True" + }, + { + "name": "HyperVGenerations", + "value": "V1" + }, + { + "name": "MemoryGB", + "value": "1.75" + }, + { + "name": "MaxDataDiskCount", + "value": "2" + }, + { + "name": "CpuArchitectureType", + "value": "x64" + }, + { + "name": "LowPriorityCapable", + "value": "False" + }, + { + "name": "PremiumIO", + "value": "False" + }, + { + "name": "VMDeploymentTypes", + "value": "IaaS,PaaS" + }, + { + "name": "vCPUsAvailable", + "value": "1" + }, + { + "name": "ACUs", + "value": "100" + }, + { + "name": "vCPUsPerCore", + "value": "1" + }, + { + "name": "EphemeralOSDiskSupported", + "value": "False" + }, + { + "name": "EncryptionAtHostSupported", + "value": "False" + }, + { + "name": "CapacityReservationSupported", + "value": "False" + }, + { + "name": "AcceleratedNetworkingEnabled", + "value": "False" + }, + { + "name": "RdmaEnabled", + "value": "False" + }, + { + "name": "MaxNetworkInterfaces", + "value": "2" + } + ], + "batchSupportEndOfLife": "2024-08-31T00:00:00Z" + } + ] + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/NspConfigurationGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/NspConfigurationGet.json new file mode 100644 index 000000000000..a3f9fade552c --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/NspConfigurationGet.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "networkSecurityPerimeterConfigurationName": "00000000-0000-0000-0000-000000000000.sampleassociation", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/networkSecurityPerimeterConfigurations/00000000-0000-0000-0000-000000000000.sampleassociation", + "name": "00000000-0000-0000-0000-000000000000.sampleassociation", + "type": "Microsoft.Batch/batchAccounts/networkSecurityPerimeterConfigurations", + "properties": { + "provisioningState": "Succeeded", + "provisioningIssues": [], + "networkSecurityPerimeter": { + "id": "/subscriptions/perimeterSubscriptionId/resourceGroups/perimeterResourceGroupName/providers/Microsoft.Network/networkSecurityPerimeters/perimeterName", + "perimeterGuid": "00000000-0000-0000-0000-000000000000", + "location": "perimeterLocation" + }, + "resourceAssociation": { + "name": "sampleassociation", + "accessMode": "Learning" + }, + "profile": { + "name": "profileName", + "accessRulesVersion": 1, + "accessRules": [ + { + "name": "accessRule1", + "properties": { + "direction": "Inbound", + "addressPrefixes": [ + "10.11.0.0/16", + "10.10.1.0/24" + ], + "fullyQualifiedDomainNames": [], + "subscriptions": [], + "networkSecurityPerimeters": [], + "emailAddresses": [], + "phoneNumbers": [] + } + }, + { + "name": "accessRule2", + "properties": { + "direction": "Outbound", + "addressPrefixes": [], + "fullyQualifiedDomainNames": [ + "paasrp1.contoso.org", + "paasrp2.contoso.org" + ], + "subscriptions": [], + "networkSecurityPerimeters": [], + "emailAddresses": [], + "phoneNumbers": [] + } + } + ], + "diagnosticSettingsVersion": 1, + "enabledLogCategories": [ + "logCategory1", + "logCategory2" + ] + } + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/NspConfigurationReconcile.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/NspConfigurationReconcile.json new file mode 100644 index 000000000000..1cfd853aeb06 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/NspConfigurationReconcile.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "networkSecurityPerimeterConfigurationName": "00000000-0000-0000-0000-000000000000.sampleassociation", + "api-version": "2025-06-01" + }, + "responses": { + "202": { + "headers": { + "Retry-After": "15", + "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/networkSecurityPerimeterConfigurationOperationResults/AcceptedReconciling$00000000-0000-0000-0000-000000000000.sampleassociation$00000000-1111-2222-3333-444444444444?api-version=2025-06-01" + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/NspConfigurationsList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/NspConfigurationsList.json new file mode 100644 index 000000000000..fd0c85328a3c --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/NspConfigurationsList.json @@ -0,0 +1,75 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/networkSecurityPerimeterConfigurations/00000000-0000-0000-0000-000000000000.sampleassociation", + "name": "00000000-0000-0000-0000-000000000000.sampleassociation", + "type": "Microsoft.Batch/batchAccounts/networkSecurityPerimeterConfigurations", + "properties": { + "provisioningState": "Succeeded", + "provisioningIssues": [], + "networkSecurityPerimeter": { + "id": "/subscriptions/perimeterSubscriptionId/resourceGroups/perimeterResourceGroupName/providers/Microsoft.Network/networkSecurityPerimeters/perimeterName", + "perimeterGuid": "00000000-0000-0000-0000-000000000000", + "location": "perimeterLocation" + }, + "resourceAssociation": { + "name": "sampleassociation", + "accessMode": "Learning" + }, + "profile": { + "name": "profileName", + "accessRulesVersion": 1, + "accessRules": [ + { + "name": "accessRule1", + "properties": { + "direction": "Inbound", + "addressPrefixes": [ + "10.11.0.0/16", + "10.10.1.0/24" + ], + "fullyQualifiedDomainNames": [], + "subscriptions": [], + "networkSecurityPerimeters": [], + "emailAddresses": [], + "phoneNumbers": [] + } + }, + { + "name": "accessRule2", + "properties": { + "direction": "Outbound", + "addressPrefixes": [], + "fullyQualifiedDomainNames": [ + "paasrp1.contoso.org", + "paasrp2.contoso.org" + ], + "subscriptions": [], + "networkSecurityPerimeters": [], + "emailAddresses": [], + "phoneNumbers": [] + } + } + ], + "diagnosticSettingsVersion": 1, + "enabledLogCategories": [ + "logCategory1", + "logCategory2" + ] + } + } + } + ] + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/OperationsList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/OperationsList.json new file mode 100644 index 000000000000..32f715a6b8d4 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/OperationsList.json @@ -0,0 +1,1278 @@ +{ + "parameters": { + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.Batch/batchAccounts/providers/Microsoft.Insights/diagnosticSettings/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Accounts", + "operation": "Read diagnostic setting", + "description": "Gets the diagnostic setting for the resource" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/providers/Microsoft.Insights/diagnosticSettings/write", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Accounts", + "operation": "Write diagnostic setting", + "description": "Creates or updates the diagnostic setting for the resource" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/providers/Microsoft.Insights/logDefinitions/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Account Log Definitions", + "operation": "Read Batch service log definitions", + "description": "Gets the available logs for the Batch service" + }, + "isDataAction": false, + "origin": "system", + "properties": { + "serviceSpecification": { + "logSpecifications": [ + { + "name": "ServiceLog", + "displayName": "Service Logs", + "blobDuration": "PT1H" + } + ] + } + } + }, + { + "name": "Microsoft.Batch/batchAccounts/providers/Microsoft.Insights/metricDefinitions/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Account Metric Definitions", + "operation": "Read Batch service metric definitions", + "description": "Gets the available metrics for the Batch service" + }, + "isDataAction": false, + "origin": "system", + "properties": { + "serviceSpecification": { + "metricSpecifications": [ + { + "name": "CoreCount", + "displayName": "Dedicated Core Count", + "displayDescription": "Total number of dedicated cores in the batch account", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "TotalNodeCount", + "displayName": "Dedicated Node Count", + "displayDescription": "Total number of dedicated nodes in the batch account", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "LowPriorityCoreCount", + "displayName": "LowPriority Core Count", + "displayDescription": "Total number of low-priority cores in the batch account", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "TotalLowPriorityNodeCount", + "displayName": "Low-Priority Node Count", + "displayDescription": "Total number of low-priority nodes in the batch account", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "CreatingNodeCount", + "displayName": "Creating Node Count", + "displayDescription": "Number of nodes being created", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "StartingNodeCount", + "displayName": "Starting Node Count", + "displayDescription": "Number of nodes starting", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "WaitingForStartTaskNodeCount", + "displayName": "Waiting For Start Task Node Count", + "displayDescription": "Number of nodes waiting for the Start Task to complete", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "StartTaskFailedNodeCount", + "displayName": "Start Task Failed Node Count", + "displayDescription": "Number of nodes where the Start Task has failed", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "IdleNodeCount", + "displayName": "Idle Node Count", + "displayDescription": "Number of idle nodes", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "OfflineNodeCount", + "displayName": "Offline Node Count", + "displayDescription": "Number of offline nodes", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "RebootingNodeCount", + "displayName": "Rebooting Node Count", + "displayDescription": "Number of rebooting nodes", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "ReimagingNodeCount", + "displayName": "Reimaging Node Count", + "displayDescription": "Number of reimaging nodes", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "RunningNodeCount", + "displayName": "Running Node Count", + "displayDescription": "Number of running nodes", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "LeavingPoolNodeCount", + "displayName": "Leaving Pool Node Count", + "displayDescription": "Number of nodes leaving the Pool", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "UnusableNodeCount", + "displayName": "Unusable Node Count", + "displayDescription": "Number of unusable nodes", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "PreemptedNodeCount", + "displayName": "Preempted Node Count", + "displayDescription": "Number of preempted nodes", + "unit": "Count", + "aggregationType": "Total", + "lockAggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "TaskStartEvent", + "displayName": "Task Start Events", + "displayDescription": "Total number of tasks that have started", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "poolId", + "displayName": "Pool ID", + "toBeExportedForShoebox": true + }, + { + "name": "jobId", + "displayName": "Job ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "TaskCompleteEvent", + "displayName": "Task Complete Events", + "displayDescription": "Total number of tasks that have completed", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "poolId", + "displayName": "Pool ID", + "toBeExportedForShoebox": true + }, + { + "name": "jobId", + "displayName": "Job ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "TaskFailEvent", + "displayName": "Task Fail Events", + "displayDescription": "Total number of tasks that have completed in a failed state", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "poolId", + "displayName": "Pool ID", + "toBeExportedForShoebox": true + }, + { + "name": "jobId", + "displayName": "Job ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "PoolCreateEvent", + "displayName": "Pool Create Events", + "displayDescription": "Total number of pools that have been created", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "poolId", + "displayName": "Pool ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "PoolResizeStartEvent", + "displayName": "Pool Resize Start Events", + "displayDescription": "Total number of pool resizes that have started", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "poolId", + "displayName": "Pool ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "PoolResizeCompleteEvent", + "displayName": "Pool Resize Complete Events", + "displayDescription": "Total number of pool resizes that have completed", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "poolId", + "displayName": "Pool ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "PoolDeleteStartEvent", + "displayName": "Pool Delete Start Events", + "displayDescription": "Total number of pool deletes that have started", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "poolId", + "displayName": "Pool ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "PoolDeleteCompleteEvent", + "displayName": "Pool Delete Complete Events", + "displayDescription": "Total number of pool deletes that have completed", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "poolId", + "displayName": "Pool ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "JobDeleteCompleteEvent", + "displayName": "Job Delete Complete Events", + "displayDescription": "Total number of jobs that have been successfully deleted.", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "jobId", + "displayName": "Job ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "JobDeleteStartEvent", + "displayName": "Job Delete Start Events", + "displayDescription": "Total number of jobs that have been requested to be deleted.", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "jobId", + "displayName": "Job ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "JobDisableCompleteEvent", + "displayName": "Job Disable Complete Events", + "displayDescription": "Total number of jobs that have been successfully disabled.", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "jobId", + "displayName": "Job ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "JobDisableStartEvent", + "displayName": "Job Disable Start Events", + "displayDescription": "Total number of jobs that have been requested to be disabled.", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "jobId", + "displayName": "Job ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "JobStartEvent", + "displayName": "Job Start Events", + "displayDescription": "Total number of jobs that have been successfully started.", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "jobId", + "displayName": "Job ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "JobTerminateCompleteEvent", + "displayName": "Job Terminate Complete Events", + "displayDescription": "Total number of jobs that have been successfully terminated.", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "jobId", + "displayName": "Job ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + }, + { + "name": "JobTerminateStartEvent", + "displayName": "Job Terminate Start Events", + "displayDescription": "Total number of jobs that have been requested to be terminated.", + "unit": "Count", + "aggregationType": "Total", + "fillGapWithZero": false, + "availabilities": [ + { + "timeGrain": "PT1M", + "blobDuration": "PT1H" + } + ], + "dimensions": [ + { + "name": "jobId", + "displayName": "Job ID", + "toBeExportedForShoebox": true + } + ], + "supportsInstanceLevelAggregation": false, + "enableRegionalMdmAccount": false + } + ] + } + } + }, + { + "name": "Microsoft.Batch/batchAccounts/jobs/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Jobs", + "operation": "List or Get Jobs", + "description": "Lists jobs on a Batch account or gets the properties of a job" + }, + "isDataAction": true + }, + { + "name": "Microsoft.Batch/batchAccounts/jobs/write", + "display": { + "provider": "Microsoft Batch", + "resource": "Jobs", + "operation": "Create or Update Job", + "description": "Creates a new job on a Batch account or updates an existing job" + }, + "isDataAction": true + }, + { + "name": "Microsoft.Batch/batchAccounts/jobs/delete", + "display": { + "provider": "Microsoft Batch", + "resource": "Jobs", + "operation": "Delete Job", + "description": "Deletes a job from a Batch account" + }, + "isDataAction": true + }, + { + "name": "Microsoft.Batch/batchAccounts/jobSchedules/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Job Schedules", + "operation": "List or Get Job Schedules", + "description": "Lists job schedules on a Batch account or gets the properties of a job schedule" + }, + "isDataAction": true + }, + { + "name": "Microsoft.Batch/batchAccounts/jobSchedules/write", + "display": { + "provider": "Microsoft Batch", + "resource": "Job Schedules", + "operation": "Create or Update Job Schedule", + "description": "Creates a new job schedule on a Batch account or updates an existing job schedule" + }, + "isDataAction": true + }, + { + "name": "Microsoft.Batch/batchAccounts/jobSchedules/delete", + "display": { + "provider": "Microsoft Batch", + "resource": "Job Schedules", + "operation": "Delete Job Schedule", + "description": "Deletes a job schedule from a Batch account" + }, + "isDataAction": true + }, + { + "name": "Microsoft.Batch/operations/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Available Batch Operations", + "operation": "List Available Batch Operations", + "description": "Lists operations available on Microsoft.Batch resource provider" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Accounts", + "operation": "List or Get Batch Accounts", + "description": "Lists Batch accounts or gets the properties of a Batch account" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/write", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Accounts", + "operation": "Create or Update Batch Account", + "description": "Creates a new Batch account or updates an existing Batch account" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/delete", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Accounts", + "operation": "Delete Batch Account", + "description": "Deletes a Batch account" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/listkeys/action", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Accounts", + "operation": "List Batch Account Keys", + "description": "Lists access keys for a Batch account" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/regeneratekeys/action", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Accounts", + "operation": "Regenerate Batch Account Keys", + "description": "Regenerates access keys for a Batch account" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/locations/quotas/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Quotas", + "operation": "Get Batch Quotas", + "description": "Gets Batch quotas of the specified subscription at the specified Azure region" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/locations/checkNameAvailability/action", + "display": { + "provider": "Microsoft Batch", + "resource": "Name Availability", + "operation": "Check Name Availability", + "description": "Checks that the account name is valid and not in use." + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/operationResults/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Resource Provider", + "operation": "Get Batch account operation results", + "description": "Gets the results of a long running Batch account operation" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/locations/accountOperationResults/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Resource Provider", + "operation": "Get Batch account operation results", + "description": "Gets the results of a long running Batch account operation" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/register/action", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Resource Provider", + "operation": "Register the Batch Resource Provider", + "description": "Registers the subscription for the Batch Resource Provider and enables the creation of Batch accounts" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/unregister/action", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Resource Provider", + "operation": "Unregister the Batch Resource Provider", + "description": "Unregisters the subscription for the Batch Resource Provider preventing the creation of Batch accounts" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/syncAutoStorageKeys/action", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Accounts", + "operation": "Synchronize Auto Storage Account Keys", + "description": "Synchronizes access keys for the auto storage account configured for a Batch account" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Applications", + "operation": "List or Get Applications", + "description": "Lists applications or gets the properties of an application" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/write", + "display": { + "provider": "Microsoft Batch", + "resource": "Applications", + "operation": "Create or Update Application", + "description": "Creates a new application or updates an existing application" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/delete", + "display": { + "provider": "Microsoft Batch", + "resource": "Applications", + "operation": "Delete Application", + "description": "Deletes an application" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/versions/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Application Packages", + "operation": "Get Application Package", + "description": "Gets the properties of an application package" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/versions/write", + "display": { + "provider": "Microsoft Batch", + "resource": "Application Packages", + "operation": "Create or Update Application Package", + "description": "Creates a new application package or updates an existing application package" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/versions/delete", + "display": { + "provider": "Microsoft Batch", + "resource": "Application Packages", + "operation": "Delete Application Package", + "description": "Deletes an application package" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/applications/versions/activate/action", + "display": { + "provider": "Microsoft Batch", + "resource": "Application Packages", + "operation": "Activate Application Package", + "description": "Activates an application package" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/pools/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Pools", + "operation": "List or Get Pools", + "description": "Lists pools on a Batch account or gets the properties of a pool" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/pools/write", + "display": { + "provider": "Microsoft Batch", + "resource": "Pools", + "operation": "Create or Update Pool", + "description": "Creates a new pool on a Batch account or updates an existing pool" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/pools/delete", + "display": { + "provider": "Microsoft Batch", + "resource": "Pools", + "operation": "Delete Pool", + "description": "Deletes a pool from a Batch account" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/pools/stopResize/action", + "display": { + "provider": "Microsoft Batch", + "resource": "Pools", + "operation": "Stop Pool Resize", + "description": "Stops an ongoing resize operation on a Batch account pool" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/pools/disableAutoscale/action", + "display": { + "provider": "Microsoft Batch", + "resource": "Pools", + "operation": "Disable Pool AutoScale", + "description": "Disables automatic scaling for a Batch account pool" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/poolOperationResults/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Pools", + "operation": "Get Pool Operation Results", + "description": "Gets the results of a long running pool operation on a Batch account" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/locations/virtualMachineSkus/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Supported Skus", + "operation": "List Supported Batch Virtual Machine VM", + "description": "Lists available Batch supported Virtual Machine VM sizes at the given location" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/privateLinkResources/read", + "display": { + "provider": "Microsoft Batch", + "resource": "PrivateLinkResources", + "operation": "Get or List Private link resources", + "description": "Gets the properties of a Private link resource or Lists Private link resources on a Batch account" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnections/write", + "display": { + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnections", + "operation": "Update Private endpoint connection", + "description": "Update an existing Private endpoint connection on a Batch account" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnections/read", + "display": { + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnections", + "operation": "Get or List Private endpoint connection", + "description": "Gets Private endpoint connection or Lists Private endpoint connections on a Batch account" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnections/delete", + "display": { + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies", + "operation": "Delete Private endpoint connection", + "description": "Delete a Private endpoint connection on a Batch account" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionResults/read", + "display": { + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnections", + "operation": "Get Batch account private endpoint connection operation results", + "description": "Gets the results of a long running Batch account private endpoint connection operation" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxies/validate/action", + "display": { + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies", + "operation": "Validates a Private endpoint connection proxy", + "description": "Validates a Private endpoint connection proxy on a Batch account" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxies/write", + "display": { + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies", + "operation": "Create or Update Private endpoint connection proxy", + "description": "Create a new Private endpoint connection proxy on a Batch account" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxies/read", + "display": { + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies", + "operation": "Get Private endpoint connection proxy", + "description": "Gets Private endpoint connection proxy on a Batch account" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxies/delete", + "display": { + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies", + "operation": "Delete Private endpoint connection proxy", + "description": "Delete a Private endpoint connection proxy on a Batch account" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/privateEndpointConnectionProxyResults/read", + "display": { + "provider": "Microsoft Batch", + "resource": "PrivateEndpointConnectionProxies", + "operation": "Get Batch account private endpoint connection proxy operation results", + "description": "Gets the results of a long running Batch account private endpoint connection proxy operation" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/detectors/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Detectors", + "operation": "Get or List Detectors", + "description": "Gets AppLens Detector or Lists AppLens Detectors on a Batch account" + }, + "isDataAction": false + }, + { + "name": "Microsoft.Batch/batchAccounts/outboundNetworkDependenciesEndpoints/read", + "display": { + "provider": "Microsoft Batch", + "resource": "Outbound Network Dependencies Endpoints", + "operation": "List Outbound Network Dependency Endpoints", + "description": "Lists the outbound network dependency endpoints for a Batch account" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/deployments/preflight/action", + "display": { + "provider": "Microsoft Batch", + "resource": "Preflight", + "operation": "Check Preflight", + "description": "Runs Preflight validation for resources included in the request" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/networkSecurityPerimeterAssociationProxies/read", + "display": { + "provider": "Microsoft Batch", + "resource": "NetworkSecurityPerimeterAssociationProxies", + "operation": "Get or List NSP Association Proxies", + "description": "Gets or lists the NSP association proxies on a Batch account" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/networkSecurityPerimeterAssociationProxies/write", + "display": { + "provider": "Microsoft Batch", + "resource": "NetworkSecurityPerimeterAssociationProxies", + "operation": "Create or Update NSP Association Proxy", + "description": "Creates or updates the NSP association proxy on a Batch account" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/networkSecurityPerimeterAssociationProxies/delete", + "display": { + "provider": "Microsoft Batch", + "resource": "NetworkSecurityPerimeterAssociationProxies", + "operation": "Delete NSP Association Proxy", + "description": "Deletes the NSP association proxy on a Batch account" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/networkSecurityPerimeterConfigurations/read", + "display": { + "provider": "Microsoft Batch", + "resource": "NetworkSecurityPerimeterConfigurations", + "operation": "Get or List NSP Configurations", + "description": "Gets or lists the NSP association configurations on a Batch account" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/networkSecurityPerimeterConfigurations/reconcile/action", + "display": { + "provider": "Microsoft Batch", + "resource": "NetworkSecurityPerimeterConfigurations", + "operation": "Reconcile NSP Configuration", + "description": "Reconciles the NSP association on a Batch account to sync up with the latest configuration from the NSP control plane" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/batchAccounts/networkSecurityPerimeterConfigurationOperationResults/read", + "display": { + "provider": "Microsoft Batch", + "resource": "NetworkSecurityPerimeterConfigurations", + "operation": "Get NSP Configuration Operation Results", + "description": "Gets the results of a long running NSP configuration operation on a Batch account" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.Batch/locations/notifyNetworkSecurityPerimeterUpdatesAvailable/action", + "display": { + "provider": "Microsoft Batch", + "resource": "NetworkSecurityPerimeterConfigurations", + "operation": "Notify NSP Updates Available", + "description": "Notifies the NSP updates available at the given location" + }, + "isDataAction": false, + "origin": "system" + }, + { + "name": "Microsoft.Batch/batchAccounts/joinPerimeter/action", + "display": { + "provider": "Microsoft Batch", + "resource": "Batch Accounts", + "operation": "Join Network Security Perimeter", + "description": "Determines if the user is allowed to associate a Batch account with a Network Security Perimeter" + }, + "isDataAction": false, + "origin": "system" + } + ] + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_AcceleratedNetworking.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_AcceleratedNetworking.json new file mode 100644 index 000000000000..c08f06b36310 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_AcceleratedNetworking.json @@ -0,0 +1,93 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4d_v5", + "networkConfiguration": { + "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", + "enableAcceleratedNetworking": true + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2025-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8DB46CB72A227E2\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8DB46CB72A227E2\"", + "properties": { + "lastModified": "2023-04-27T02:59:41.8592226Z", + "creationTime": "2023-04-27T02:59:41.8592226Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-04-27T02:59:41.8592226Z", + "allocationState": "Steady", + "allocationStateTransitionTime": "2023-04-27T03:00:34.0646502Z", + "vmSize": "Standard_D4d_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2025-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "networkConfiguration": { + "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", + "dynamicVnetAssignmentScope": "none", + "enableAcceleratedNetworking": true + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 1, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-04-27T02:59:41.8592226Z" + }, + "currentDedicatedNodes": 1, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_ConfidentialDiskEncryptionSet_ForUserSubscriptionAccounts.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_ConfidentialDiskEncryptionSet_ForUserSubscriptionAccounts.json new file mode 100644 index 000000000000..ec61bd3ca9b6 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_ConfidentialDiskEncryptionSet_ForUserSubscriptionAccounts.json @@ -0,0 +1,158 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_DC2as_v5", + "taskSchedulingPolicy": { + "nodeFillType": "Pack" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2019-datacenter-core-g2", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "securityProfile": { + "securityType": "ConfidentialVM", + "encryptionAtHost": false, + "uefiSettings": { + "vTpmEnabled": true, + "secureBootEnabled": true + } + }, + "osDisk": { + "managedDisk": { + "storageAccountType": "Standard_LRS", + "diskEncryptionSet": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/diskEncryptionSets/DiskEncryptionSetId" + }, + "securityProfile": { + "securityEncryptionType": "DiskWithVMGuestState", + "diskEncryptionSet": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/diskEncryptionSets/ConfidentialDiskEncryptionSetId" + } + } + } + }, + "dataDisks": [ + { + "lun": 0, + "diskSizeGB": 1024, + "managedDisk": { + "storageAccountType": "Standard_LRS", + "diskEncryptionSet": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/diskEncryptionSets/DiskEncryptionSetId" + } + } + } + ] + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "resizeTimeout": "PT15M" + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2025-06-30T07:30:49.7522647Z", + "creationTime": "2025-06-30T07:30:49.7522634Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2025-06-30T07:30:49.7522634Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2025-06-30T07:30:49.7522647Z", + "vmSize": "STANDARD_DC2as_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Pack", + "jobDefaultOrder": "None" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2019-datacenter-core-g2", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "dataDisks": [ + { + "lun": 0, + "caching": "None", + "diskSizeGB": 1024, + "managedDisk": { + "storageAccountType": "Standard_LRS", + "diskEncryptionSet": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/diskEncryptionSets/DiskEncryptionSetId" + } + } + } + ], + "osDisk": { + "caching": "None", + "managedDisk": { + "storageAccountType": "Standard_LRS", + "securityProfile": { + "securityEncryptionType": "DiskWithVMGuestState", + "diskEncryptionSet": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/diskEncryptionSets/ConfidentialDiskEncryptionSetId" + } + }, + "diskEncryptionSet": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/diskEncryptionSets/DiskEncryptionSetId" + } + } + }, + "securityProfile": { + "securityType": "ConfidentialVM", + "encryptionAtHost": false, + "uefiSettings": { + "secureBootEnabled": true, + "vTpmEnabled": true + } + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 1, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2025-06-30T07:30:49.7522324Z" + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_CustomerManagedKey_ForBatchManagedAccounts.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_CustomerManagedKey_ForBatchManagedAccounts.json new file mode 100644 index 000000000000..ec05961de1c6 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_CustomerManagedKey_ForBatchManagedAccounts.json @@ -0,0 +1,122 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4ds_v5", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "sku": "2022-Datacenter", + "publisher": "MicrosoftWindowsServer", + "version": "latest", + "offer": "WindowsServer" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "diskEncryptionConfiguration": { + "targets": [ + "OsDisk" + ], + "customerManagedKey": { + "keyUrl": "https://<vaultEndpoint>/keys/<keyName>/<keyVersion>", + "identityReference": { + "resourceId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1" + } + } + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "resizeTimeout": "PT15M" + } + } + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {} + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": { + "principalId": "principalId", + "clientId": "clientId" + } + } + }, + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2025-06-30T07:16:33.4309281Z", + "creationTime": "2025-06-30T07:16:33.4309266Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2025-06-30T07:16:33.4309266Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2025-06-30T07:16:33.4309281Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread", + "jobDefaultOrder": "None" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2022-Datacenter", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "diskEncryptionConfiguration": { + "targets": [ + "OsDisk" + ], + "customerManagedKey": { + "keyUrl": "https://<vaultEndpoint>/keys/<keyName>/<keyVersion>", + "identityReference": { + "resourceId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1" + } + } + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 1, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2025-06-30T07:16:33.4309126Z" + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_DiskEncryptionSet_ForUserSubscriptionAccounts.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_DiskEncryptionSet_ForUserSubscriptionAccounts.json new file mode 100644 index 000000000000..d0ac319e8708 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_DiskEncryptionSet_ForUserSubscriptionAccounts.json @@ -0,0 +1,111 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4ds_v5", + "taskSchedulingPolicy": { + "nodeFillType": "Pack" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "sku": "2022-Datacenter", + "publisher": "MicrosoftWindowsServer", + "version": "latest", + "offer": "WindowsServer" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "securityProfile": { + "encryptionAtHost": false + }, + "osDisk": { + "managedDisk": { + "storageAccountType": "Standard_LRS", + "diskEncryptionSet": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/diskEncryptionSets/DiskEncryptionSetId" + } + } + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "resizeTimeout": "PT15M" + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2025-06-30T07:45:46.1580726Z", + "creationTime": "2025-06-30T07:35:44.5579791Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2025-06-30T07:35:44.5579791Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2025-06-30T07:45:46.1580727Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Pack", + "jobDefaultOrder": "None" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2022-Datacenter", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "osDisk": { + "caching": "None", + "managedDisk": { + "storageAccountType": "Standard_LRS", + "diskEncryptionSet": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/diskEncryptionSets/DiskEncryptionSetId" + } + } + }, + "securityProfile": { + "encryptionAtHost": false + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 1, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2025-06-30T07:45:46.1580724Z" + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_DualStackNetworking.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_DualStackNetworking.json new file mode 100644 index 000000000000..6b78094ee34a --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_DualStackNetworking.json @@ -0,0 +1,144 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch", + "accountName": "exampleacc", + "poolName": "dualstackpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4ds_v5", + "networkConfiguration": { + "publicIPAddressConfiguration": { + "ipFamilies": [ + "IPv4", + "IPv6" + ] + }, + "endpointConfiguration": { + "inboundNATPools": [ + { + "backendPort": 22, + "frontendPortRangeStart": 40000, + "frontendPortRangeEnd": 40500, + "name": "sshpool", + "protocol": "tcp", + "networkSecurityGroupRules": [ + { + "access": "Allow", + "priority": 1000, + "sourceAddressPrefix": "*", + "sourcePortRanges": [ + "*" + ] + } + ] + } + ] + } + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "Canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server" + }, + "nodeAgentSKUId": "batch.node.ubuntu 24.04" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/dualstackpool", + "name": "dualstackpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8DDC34D4A01A419\"", + "properties": { + "lastModified": "2025-07-15T03:11:27.7998105Z", + "creationTime": "2025-07-15T03:11:27.7997967Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2025-07-15T03:11:27.7997967Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2025-07-15T03:11:27.7998136Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread", + "jobDefaultOrder": "None" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "Canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + }, + "networkConfiguration": { + "publicIPAddressConfiguration": { + "ipFamilies": [ + "IPv4", + "IPv6" + ] + }, + "endpointConfiguration": { + "inboundNatPools": [ + { + "name": "sshpool", + "protocol": "TCP", + "backendPort": 22, + "frontendPortRangeStart": 40000, + "frontendPortRangeEnd": 40500, + "networkSecurityGroupRules": [ + { + "access": "Allow", + "sourceAddressPrefix": "*", + "priority": 1000, + "sourcePortRanges": [ + "*" + ] + } + ] + } + ] + }, + "dynamicVnetAssignmentScope": "None", + "enableAcceleratedNetworking": false + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 1, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2025-07-15T03:11:27.7994621Z" + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_MinimalVirtualMachineConfiguration.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_MinimalVirtualMachineConfiguration.json new file mode 100644 index 000000000000..e951ca2aa0c9 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_MinimalVirtualMachineConfiguration.json @@ -0,0 +1,77 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4ds_v5", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + }, + "scaleSettings": { + "autoScale": { + "formula": "$TargetDedicatedNodes=1", + "evaluationInterval": "PT5M" + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2024-08-28T10:22:55.9407275Z", + "creationTime": "2024-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2024-08-28T10:22:55.9407275Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2024-08-28T10:22:55.9407275Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + }, + "scaleSettings": { + "autoScale": { + "formula": "$TargetDedicatedNodes=1", + "evaluationInterval": "PT5M" + } + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_NoPublicIPAddresses.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_NoPublicIPAddresses.json new file mode 100644 index 000000000000..9b760e45081f --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_NoPublicIPAddresses.json @@ -0,0 +1,77 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4ds_v5", + "networkConfiguration": { + "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", + "publicIPAddressConfiguration": { + "provision": "NoPublicIPAddresses" + } + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2024-08-28T10:22:55.9407275Z", + "creationTime": "2024-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2024-08-28T10:22:55.9407275Z", + "allocationState": "Steady", + "allocationStateTransitionTime": "2024-08-28T10:22:55.9407275Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "networkConfiguration": { + "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", + "publicIPAddressConfiguration": { + "provision": "NoPublicIPAddresses" + } + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 0, + "targetLowPriorityNodes": 0 + } + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_PublicIPs.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_PublicIPs.json new file mode 100644 index 000000000000..e6c2efcd6f0d --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_PublicIPs.json @@ -0,0 +1,83 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4ds_v5", + "networkConfiguration": { + "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", + "publicIPAddressConfiguration": { + "provision": "UserManaged", + "ipAddressIds": [ + "/subscriptions/subid1/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135" + ] + } + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2024-08-28T10:22:55.9407275Z", + "creationTime": "2024-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2024-08-28T10:22:55.9407275Z", + "allocationState": "Steady", + "allocationStateTransitionTime": "2024-08-28T10:22:55.9407275Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "networkConfiguration": { + "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", + "publicIPAddressConfiguration": { + "provision": "UserManaged", + "ipAddressIds": [ + "/subscriptions/subid1/resourceGroups/rg13/providers/Microsoft.Network/publicIPAddresses/ip135" + ] + } + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 0, + "targetLowPriorityNodes": 0 + } + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_SecurityProfile.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_SecurityProfile.json new file mode 100644 index 000000000000..80115c84ebc8 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_SecurityProfile.json @@ -0,0 +1,99 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4ds_v5", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04", + "securityProfile": { + "securityType": "trustedLaunch", + "encryptionAtHost": true, + "uefiSettings": { + "secureBootEnabled": null, + "vTpmEnabled": false + } + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8DB554F8E08BCF4\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8DB554F8E08BCF4\"", + "properties": { + "lastModified": "2024-08-28T07:03:58.3231917Z", + "creationTime": "2024-08-28T07:03:58.3231917Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2024-08-28T07:03:58.3231917Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2024-08-28T07:03:58.3231917Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04", + "securityProfile": { + "securityType": "trustedLaunch", + "encryptionAtHost": true, + "uefiSettings": { + "vTpmEnabled": false + } + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 1, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2024-08-28T07:03:58.3231917Z" + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_SharedImageGallery.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_SharedImageGallery.json new file mode 100644 index 000000000000..3bc56989b5be --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_SharedImageGallery.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4ds_v5", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2024-08-28T10:22:55.9407275Z", + "creationTime": "2024-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2024-08-28T10:22:55.9407275Z", + "allocationState": "Steady", + "allocationStateTransitionTime": "2024-08-28T10:22:55.9407275Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "id": "/subscriptions/subid/resourceGroups/networking-group/providers/Microsoft.Compute/galleries/testgallery/images/testimagedef/versions/0.0.1" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 0, + "targetLowPriorityNodes": 0 + } + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_Tags.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_Tags.json new file mode 100644 index 000000000000..db5a2535fcbd --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_Tags.json @@ -0,0 +1,92 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "tags": { + "TagName1": "TagValue1", + "TagName2": "TagValue2" + }, + "properties": { + "vmSize": "Standard_D4ds_v5", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "Canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8DB554F8E08BCF4\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8DB554F8E08BCF4\"", + "properties": { + "lastModified": "2023-06-14T07:03:58.3231917Z", + "creationTime": "2023-06-14T07:03:58.3231917Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-06-14T07:03:58.3231917Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2023-06-14T07:03:58.3231917Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "Canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 1, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-09-27T07:33:13.0625789Z" + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + }, + "tags": { + "TagName1": "TagValue1", + "TagName2": "TagValue2" + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_UpgradePolicy.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_UpgradePolicy.json new file mode 100644 index 000000000000..42cbd5c41b99 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_UpgradePolicy.json @@ -0,0 +1,132 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4ds_v5", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2019-datacenter-smalldisk", + "version": "latest" + }, + "nodePlacementConfiguration": { + "policy": "Zonal" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "windowsConfiguration": { + "enableAutomaticUpdates": false + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 2, + "targetLowPriorityNodes": 0 + } + }, + "upgradePolicy": { + "mode": "automatic", + "automaticOSUpgradePolicy": { + "disableAutomaticRollback": true, + "enableAutomaticOSUpgrade": true, + "useRollingUpgradePolicy": true, + "osRollingUpgradeDeferral": true + }, + "rollingUpgradePolicy": { + "enableCrossZoneUpgrade": true, + "maxBatchInstancePercent": 20, + "maxUnhealthyInstancePercent": 20, + "maxUnhealthyUpgradedInstancePercent": 20, + "pauseTimeBetweenBatches": "PT0S", + "prioritizeUnhealthyInstances": false, + "rollbackFailedInstancesOnPolicyBreach": false + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8DB51E64D3C3B69\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8DB51E64D3C3B69\"", + "properties": { + "lastModified": "2023-05-11T06:16:44.2372184Z", + "creationTime": "2023-05-11T06:16:44.2372184Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-05-11T06:16:44.2372184Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2023-05-11T06:16:44.2372184Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2019-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "windowsConfiguration": { + "enableAutomaticUpdates": false + }, + "nodePlacementConfiguration": { + "policy": "Zonal" + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 2, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 2, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-05-11T06:16:44.2372184Z" + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "upgradePolicy": { + "mode": "automatic", + "automaticOSUpgradePolicy": { + "disableAutomaticRollback": true, + "enableAutomaticOSUpgrade": true, + "useRollingUpgradePolicy": true, + "osRollingUpgradeDeferral": true + }, + "rollingUpgradePolicy": { + "enableCrossZoneUpgrade": true, + "maxBatchInstancePercent": 20, + "maxUnhealthyInstancePercent": 20, + "maxUnhealthyUpgradedInstancePercent": 20, + "pauseTimeBetweenBatches": "PT0S", + "prioritizeUnhealthyInstances": false, + "rollbackFailedInstancesOnPolicyBreach": false + } + } + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_UserAssignedIdentities.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_UserAssignedIdentities.json new file mode 100644 index 000000000000..46a58bc4bfd1 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_UserAssignedIdentities.json @@ -0,0 +1,97 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4ds_v5", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + }, + "scaleSettings": { + "autoScale": { + "formula": "$TargetDedicatedNodes=1", + "evaluationInterval": "PT5M" + } + } + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": {}, + "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": {} + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2024-10-01T10:22:55.9407275Z", + "creationTime": "2024-10-01T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2024-10-01T10:22:55.9407275Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2024-10-01T10:22:55.9407275Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + }, + "scaleSettings": { + "autoScale": { + "formula": "$TargetDedicatedNodes=1", + "evaluationInterval": "PT5M" + } + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + }, + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id1": { + "principalId": "principalId1", + "clientId": "clientId1" + }, + "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id2": { + "principalId": "principalId2", + "clientId": "clientId2" + } + } + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration.json new file mode 100644 index 000000000000..acf5821dca47 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration.json @@ -0,0 +1,200 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4d_v5", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2025-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "windowsConfiguration": { + "enableAutomaticUpdates": false + }, + "licenseType": "Windows_Server", + "dataDisks": [ + { + "lun": 0, + "caching": "ReadWrite", + "diskSizeGB": 30, + "storageAccountType": "Premium_LRS" + }, + { + "lun": 1, + "caching": "None", + "diskSizeGB": 200, + "storageAccountType": "Standard_LRS" + } + ], + "diskEncryptionConfiguration": { + "targets": [ + "OsDisk", + "TemporaryDisk" + ] + }, + "nodePlacementConfiguration": { + "policy": "Zonal" + }, + "osDisk": { + "ephemeralOSDiskSettings": { + "placement": "CacheDisk" + } + } + } + }, + "networkConfiguration": { + "endpointConfiguration": { + "inboundNatPools": [ + { + "name": "testnat", + "protocol": "TCP", + "backendPort": 12001, + "frontendPortRangeStart": 15000, + "frontendPortRangeEnd": 15100, + "networkSecurityGroupRules": [ + { + "access": "Allow", + "sourceAddressPrefix": "192.100.12.45", + "priority": 150, + "sourcePortRanges": [ + "1", + "2" + ] + }, + { + "access": "Deny", + "sourceAddressPrefix": "*", + "priority": 3500, + "sourcePortRanges": [ + "*" + ] + } + ] + } + ] + } + }, + "scaleSettings": { + "autoScale": { + "formula": "$TargetDedicatedNodes=1", + "evaluationInterval": "PT5M" + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2025-07-28T10:22:55.9407275Z", + "creationTime": "2025-07-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "vmSize": "Standard_D4d_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2025-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "windowsConfiguration": { + "enableAutomaticUpdates": false + }, + "licenseType": "Windows_Server", + "dataDisks": [ + { + "lun": 0, + "caching": "ReadWrite", + "diskSizeGB": 30, + "storageAccountType": "Premium_LRS" + }, + { + "lun": 1, + "caching": "None", + "diskSizeGB": 200, + "storageAccountType": "Standard_LRS" + } + ], + "diskEncryptionConfiguration": { + "targets": [ + "OsDisk", + "TemporaryDisk" + ] + }, + "nodePlacementConfiguration": { + "policy": "Zonal" + } + } + }, + "networkConfiguration": { + "endpointConfiguration": { + "inboundNatPools": [ + { + "name": "testnat", + "protocol": "TCP", + "backendPort": 12001, + "frontendPortRangeStart": 15000, + "frontendPortRangeEnd": 15100, + "networkSecurityGroupRules": [ + { + "access": "Allow", + "sourceAddressPrefix": "192.100.12.45", + "priority": 150, + "sourcePortRanges": [ + "1", + "2" + ] + }, + { + "access": "Deny", + "sourceAddressPrefix": "*", + "priority": 3500, + "sourcePortRanges": [ + "*" + ] + } + ] + } + ] + } + }, + "scaleSettings": { + "autoScale": { + "formula": "$TargetDedicatedNodes=1", + "evaluationInterval": "PT5M" + } + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration_Extensions.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration_Extensions.json new file mode 100644 index 000000000000..2ea15834bcbc --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration_Extensions.json @@ -0,0 +1,103 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4d_v5", + "scaleSettings": { + "autoScale": { + "formula": "$TargetDedicatedNodes=1", + "evaluationInterval": "PT5M" + } + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "Canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04", + "extensions": [ + { + "name": "batchextension1", + "type": "KeyVaultForLinux", + "publisher": "Microsoft.Azure.KeyVault", + "typeHandlerVersion": "2.0", + "autoUpgradeMinorVersion": true, + "enableAutomaticUpgrade": true, + "settings": { + "secretsManagementSettingsKey": "secretsManagementSettingsValue", + "authenticationSettingsKey": "authenticationSettingsValue" + } + } + ] + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2025-07-28T10:22:55.9407275Z", + "creationTime": "2025-07-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "vmSize": "Standard_D4d_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "scaleSettings": { + "autoScale": { + "formula": "$TargetDedicatedNodes=1", + "evaluationInterval": "PT5M" + } + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "Canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04", + "extensions": [ + { + "name": "batchextension1", + "type": "KeyVaultForLinux", + "publisher": "Microsoft.Azure.KeyVault", + "typeHandlerVersion": "2.0", + "autoUpgradeMinorVersion": true, + "enableAutomaticUpgrade": true, + "settings": { + "secretsManagementSettingsKey": "secretsManagementSettingsValue", + "authenticationSettingsKey": "authenticationSettingsValue" + } + } + ] + } + } + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json new file mode 100644 index 000000000000..e3b5af0a84b7 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration_ManagedOSDisk.json @@ -0,0 +1,99 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4ds_v5", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "microsoftwindowsserver", + "offer": "windowsserver", + "sku": "2022-datacenter-smalldisk" + }, + "osDisk": { + "diskSizeGB": 100, + "managedDisk": { + "storageAccountType": "StandardSSD_LRS" + }, + "caching": "ReadWrite", + "writeAcceleratorEnabled": false + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0 + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8DB51F14DC1A8AD\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8DB51F396992B8D\"", + "properties": { + "lastModified": "2023-08-24T02:12:27.7527697Z", + "creationTime": "2023-08-24T02:12:27.7527697Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-08-24T02:12:27.7527697Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2023-08-24T02:12:27.7527697Z", + "vmSize": "Standard_D4d_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "microsoftwindowsserver", + "offer": "windowsserver", + "sku": "2022-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "osDisk": { + "caching": "ReadWrite", + "managedDisk": { + "storageAccountType": "StandardSSD_LRS" + }, + "diskSizeGB": 100, + "writeAcceleratorEnabled": false + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 1, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-08-24T02:12:27.7527697Z" + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json new file mode 100644 index 000000000000..f54b46b8e48c --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolCreate_VirtualMachineConfiguration_ServiceArtifactReference.json @@ -0,0 +1,108 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "vmSize": "Standard_D4ds_v5", + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2019-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "windowsConfiguration": { + "enableAutomaticUpdates": false + }, + "serviceArtifactReference": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile" + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 2, + "targetLowPriorityNodes": 0 + } + }, + "upgradePolicy": { + "mode": "automatic", + "automaticOSUpgradePolicy": { + "enableAutomaticOSUpgrade": true + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8DB51F14DC1A8AD\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "mypool41", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8DB51F396992B8D\"", + "properties": { + "lastModified": "2023-05-11T07:44:44.8580493Z", + "creationTime": "2023-05-11T07:44:44.8580493Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-05-11T07:44:44.8580493Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2023-05-11T07:44:44.8580493Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2019-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "windowsConfiguration": { + "enableAutomaticUpdates": false + }, + "serviceArtifactReference": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile" + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 2, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 2, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-05-11T07:44:44.8580493Z" + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "upgradePolicy": { + "mode": "automatic", + "automaticOSUpgradePolicy": { + "enableAutomaticOSUpgrade": true + } + } + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolDelete.json new file mode 100644 index 000000000000..537407cbce41 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolDelete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01" + }, + "responses": { + "200": {}, + "204": {}, + "202": { + "headers": { + "Retry-After": "15", + "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/poolOperationResults/delete-testpool-8D4EDFF164A11C9?api-version=2024-02-01" + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolDisableAutoScale.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolDisableAutoScale.json new file mode 100644 index 000000000000..995d82b07102 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolDisableAutoScale.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2024-08-28T10:22:55.9407275Z", + "creationTime": "2024-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2024-08-28T10:22:55.9407275Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2024-08-28T10:22:55.9407275Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 3, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet.json new file mode 100644 index 000000000000..fc44f163727e --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet.json @@ -0,0 +1,146 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2025-07-28T10:22:55.9407275Z", + "creationTime": "2025-07-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "vmSize": "Standard_D4d_v5", + "interNodeCommunication": "Enabled", + "taskSlotsPerNode": 13, + "taskSchedulingPolicy": { + "nodeFillType": "Pack" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2025-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28, + "resizeTimeout": "PT8M" + } + }, + "networkConfiguration": { + "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", + "endpointConfiguration": { + "inboundNatPools": [ + { + "name": "testnat", + "protocol": "TCP", + "backendPort": 12001, + "frontendPortRangeStart": 15000, + "frontendPortRangeEnd": 15100, + "networkSecurityGroupRules": [ + { + "access": "Allow", + "sourceAddressPrefix": "192.100.12.45", + "priority": 150, + "sourcePortRanges": [ + "123", + "22" + ] + }, + { + "access": "Deny", + "sourceAddressPrefix": "*", + "priority": 3500, + "sourcePortRanges": [ + "*" + ] + } + ] + } + ] + } + }, + "metadata": [ + { + "name": "metadata-1", + "value": "value-1" + }, + { + "name": "metadata-2", + "value": "value-2" + } + ], + "startTask": { + "commandLine": "cmd /c SET", + "resourceFiles": [ + { + "httpUrl": "https://testaccount.blob.core.windows.net/example-blob-file", + "filePath": "c:\\temp\\gohere", + "fileMode": "777" + } + ], + "environmentSettings": [ + { + "name": "MYSET", + "value": "1234" + } + ], + "userIdentity": { + "autoUser": { + "scope": "Pool", + "elevationLevel": "Admin" + } + }, + "maxTaskRetryCount": 6, + "waitForSuccess": true + }, + "userAccounts": [ + { + "name": "username1", + "elevationLevel": "Admin", + "linuxUserConfiguration": { + "uid": 1234, + "gid": 4567 + } + } + ], + "applicationPackages": [ + { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234", + "version": "asdf" + } + ], + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "resizeOperationStatus": { + "startTime": "2025-07-28T10:22:55.9407275Z", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28, + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M" + } + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_AcceleratedNetworking.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_AcceleratedNetworking.json new file mode 100644 index 000000000000..b5a94aa8a677 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_AcceleratedNetworking.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2023-04-28T02:32:32.8696419Z", + "creationTime": "2023-04-28T02:32:32.8696419Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-04-28T02:32:32.8696419Z", + "allocationState": "Steady", + "allocationStateTransitionTime": "2023-04-28T02:33:40.82831Z", + "vmSize": "Standard_D4d_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2025-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "networkConfiguration": { + "dynamicVnetAssignmentScope": "none", + "enableAcceleratedNetworking": true + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 1, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-04-28T02:32:32.8696419Z" + }, + "currentDedicatedNodes": 1, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_SecurityProfile.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_SecurityProfile.json new file mode 100644 index 000000000000..e814d4711d7a --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_SecurityProfile.json @@ -0,0 +1,69 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8DB554F8E08BCF4\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8DB554F8E08BCF4\"", + "properties": { + "lastModified": "2024-08-28T07:03:58.3231917Z", + "creationTime": "2024-08-28T07:03:58.3231917Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2024-08-28T07:03:58.3231917Z", + "allocationState": "Steady", + "allocationStateTransitionTime": "2024-08-28T07:04:57.3413444Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04", + "securityProfile": { + "securityType": "trustedLaunch", + "encryptionAtHost": true, + "uefiSettings": { + "vTpmEnabled": false + } + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 1, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2024-08-28T07:03:58.3231917Z" + }, + "currentDedicatedNodes": 1, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_UpgradePolicy.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_UpgradePolicy.json new file mode 100644 index 000000000000..750937a29393 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_UpgradePolicy.json @@ -0,0 +1,86 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8DB51E64D3C3B69\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8DB51E64D3C3B69\"", + "properties": { + "lastModified": "2023-05-11T06:09:38.3178089Z", + "creationTime": "2023-05-11T06:09:38.3178089Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-05-11T06:09:38.3178089Z", + "allocationState": "Steady", + "allocationStateTransitionTime": "2023-05-11T06:10:31.4670326Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2019-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "windowsConfiguration": { + "enableAutomaticUpdates": false + }, + "nodePlacementConfiguration": { + "policy": "Zonal" + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 2, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 2, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-05-11T06:09:38.3178089Z" + }, + "currentDedicatedNodes": 2, + "currentLowPriorityNodes": 0, + "upgradePolicy": { + "mode": "automatic", + "automaticOSUpgradePolicy": { + "disableAutomaticRollback": true, + "enableAutomaticOSUpgrade": true, + "useRollingUpgradePolicy": true, + "osRollingUpgradeDeferral": true + }, + "rollingUpgradePolicy": { + "enableCrossZoneUpgrade": true, + "maxBatchInstancePercent": 20, + "maxUnhealthyInstancePercent": 20, + "maxUnhealthyUpgradedInstancePercent": 20, + "pauseTimeBetweenBatches": "PT0S", + "prioritizeUnhealthyInstances": false, + "rollbackFailedInstancesOnPolicyBreach": false + } + } + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_VirtualMachineConfiguration_Extensions.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_VirtualMachineConfiguration_Extensions.json new file mode 100644 index 000000000000..f8c3beb2a02e --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_VirtualMachineConfiguration_Extensions.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2025-07-28T10:22:55.9407275Z", + "creationTime": "2025-07-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "vmSize": "Standard_D4d_v5", + "interNodeCommunication": "Enabled", + "taskSlotsPerNode": 13, + "taskSchedulingPolicy": { + "nodeFillType": "Pack" + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28, + "resizeTimeout": "PT8M" + } + }, + "resizeOperationStatus": { + "startTime": "2025-07-28T10:22:55.9407275Z", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28, + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M" + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "Canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04", + "extensions": [ + { + "name": "batchextension1", + "type": "KeyVaultForLinux", + "publisher": "Microsoft.Azure.KeyVault", + "typeHandlerVersion": "2.0", + "autoUpgradeMinorVersion": true, + "enableAutomaticUpgrade": true, + "settings": { + "secretsManagementSettingsKey": "secretsManagementSettingsValue", + "authenticationSettingsKey": "authenticationSettingsValue" + } + } + ] + } + } + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json new file mode 100644 index 000000000000..e9913fa8b3bc --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_VirtualMachineConfiguration_MangedOSDisk.json @@ -0,0 +1,70 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8DB51E64D3C3B69\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8DB51E64D3C3B69\"", + "properties": { + "lastModified": "2023-08-24T02:12:27.7527697Z", + "creationTime": "2023-08-24T02:12:27.7527697Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-08-24T02:12:27.7527697Z", + "allocationState": "Steady", + "allocationStateTransitionTime": "2023-08-24T02:13:22.4881351Z", + "vmSize": "Standard_D4d_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "microsoftwindowsserver", + "offer": "windowsserver", + "sku": "2022-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "osDisk": { + "caching": "ReadWrite", + "managedDisk": { + "storageAccountType": "StandardSSD_LRS" + }, + "diskSizeGB": 100, + "writeAcceleratorEnabled": false + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 1, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-08-24T02:12:27.7527697Z" + }, + "currentDedicatedNodes": 1, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json new file mode 100644 index 000000000000..4b807b2798a2 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolGet_VirtualMachineConfiguration_ServiceArtifactReference.json @@ -0,0 +1,74 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8DB51E64D3C3B69\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8DB51E64D3C3B69\"", + "properties": { + "lastModified": "2023-05-11T07:44:44.8580493Z", + "creationTime": "2023-05-11T07:44:44.8580493Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2023-05-11T07:44:44.8580493Z", + "allocationState": "Steady", + "allocationStateTransitionTime": "2023-05-11T07:45:42.0881659Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2019-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64", + "windowsConfiguration": { + "enableAutomaticUpdates": false + }, + "serviceArtifactReference": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Compute/galleries/myGallery/serviceArtifacts/myServiceArtifact/vmArtifactsProfiles/vmArtifactsProfile" + } + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 2, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "targetDedicatedNodes": 2, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M", + "startTime": "2023-05-11T07:44:44.8580493Z" + }, + "currentDedicatedNodes": 2, + "currentLowPriorityNodes": 0, + "upgradePolicy": { + "mode": "automatic", + "automaticOSUpgradePolicy": { + "enableAutomaticOSUpgrade": true + } + } + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolList.json new file mode 100644 index 000000000000..a39f7c9d44b5 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolList.json @@ -0,0 +1,152 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2025-07-28T10:22:55.9407275Z", + "creationTime": "2025-07-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "allocationState": "Steady", + "allocationStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "vmSize": "Standard_D4d_v5", + "interNodeCommunication": "Enabled", + "taskSlotsPerNode": 13, + "taskSchedulingPolicy": { + "nodeFillType": "Pack" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2025-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28, + "resizeTimeout": "PT8M" + } + }, + "networkConfiguration": { + "subnetId": "/subscriptions/subid/resourceGroups/rg1234/providers/Microsoft.Network/virtualNetworks/network1234/subnets/subnet123", + "endpointConfiguration": { + "inboundNatPools": [ + { + "name": "testnat", + "protocol": "TCP", + "backendPort": 12001, + "frontendPortRangeStart": 15000, + "frontendPortRangeEnd": 15100, + "networkSecurityGroupRules": [ + { + "access": "Allow", + "sourceAddressPrefix": "192.100.12.45", + "priority": 150, + "sourcePortRanges": [ + "*" + ] + }, + { + "access": "Deny", + "sourceAddressPrefix": "*", + "priority": 3500, + "sourcePortRanges": [ + "*" + ] + } + ] + } + ] + } + }, + "metadata": [ + { + "name": "metadata-1", + "value": "value-1" + }, + { + "name": "metadata-2", + "value": "value-2" + } + ], + "startTask": { + "commandLine": "cmd /c SET", + "resourceFiles": [ + { + "httpUrl": "https://testaccount.blob.core.windows.net/example-blob-file", + "filePath": "c:\\temp\\gohere", + "fileMode": "777" + } + ], + "environmentSettings": [ + { + "name": "MYSET", + "value": "1234" + } + ], + "userIdentity": { + "autoUser": { + "scope": "Pool", + "elevationLevel": "Admin" + } + }, + "maxTaskRetryCount": 6, + "waitForSuccess": true + }, + "userAccounts": [ + { + "name": "username1", + "elevationLevel": "Admin", + "linuxUserConfiguration": { + "uid": 1234, + "gid": 4567 + } + } + ], + "applicationPackages": [ + { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234", + "version": "asdf" + } + ], + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0, + "resizeOperationStatus": { + "startTime": "2025-07-28T10:22:55.9407275Z", + "targetDedicatedNodes": 6, + "targetLowPriorityNodes": 28, + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M", + "errors": [ + { + "code": "AllocationTimedout", + "message": "Desired number of dedicated nodes could not be allocated as the resize timeout was reached" + } + ] + } + } + } + ] + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolListWithFilter.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolListWithFilter.json new file mode 100644 index 000000000000..3d50500f9884 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolListWithFilter.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "$filter": "startswith(name, 'po') or (properties/allocationState eq 'Steady' and properties/provisioningStateTransitionTime lt datetime'2025-02-02')", + "$select": "properties/allocationState,properties/provisioningStateTransitionTime,properties/currentDedicatedNodes,properties/currentLowPriorityNodes", + "maxResults": "50" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "provisioningStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "allocationState": "Steady", + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 2 + } + }, + { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/pooltest", + "name": "pooltest", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "provisioningStateTransitionTime": "2025-07-26T10:22:55.9407275Z", + "allocationState": "Resizing", + "currentDedicatedNodes": 4, + "currentLowPriorityNodes": 0 + } + } + ] + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolStopResize.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolStopResize.json new file mode 100644 index 000000000000..255384db0565 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolStopResize.json @@ -0,0 +1,62 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2024-08-28T10:22:55.9407275Z", + "creationTime": "2024-08-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2024-08-28T10:22:55.9407275Z", + "allocationState": "Steady", + "allocationStateTransitionTime": "2024-08-28T10:22:55.9407275Z", + "vmSize": "Standard_D4ds_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "canonical", + "offer": "ubuntu-24_04-lts", + "sku": "server", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.ubuntu 24.04" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 3, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT15M" + } + }, + "resizeOperationStatus": { + "startTime": "2024-08-28T10:22:55.9407275Z", + "targetDedicatedNodes": 1, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT10M" + }, + "currentDedicatedNodes": 0, + "currentLowPriorityNodes": 0 + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_EnableAutoScale.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_EnableAutoScale.json new file mode 100644 index 000000000000..9c48a48edd0e --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_EnableAutoScale.json @@ -0,0 +1,74 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "scaleSettings": { + "autoScale": { + "formula": "$TargetDedicatedNodes=34" + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2025-07-29T10:22:55.9407275Z", + "creationTime": "2025-07-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2025-07-29T10:22:55.9407275Z", + "vmSize": "Standard_D4d_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2025-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "scaleSettings": { + "autoScale": { + "formula": "$TargetDedicated=34", + "evaluationInterval": "PT15M" + } + }, + "autoScaleRun": { + "evaluationTime": "2025-07-29T10:22:55.9407275Z", + "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" + }, + "currentDedicatedNodes": 12, + "currentLowPriorityNodes": 0, + "resizeOperationStatus": { + "startTime": "2025-07-29T10:22:55.9407275Z", + "targetDedicatedNodes": 34, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M" + } + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_OtherProperties.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_OtherProperties.json new file mode 100644 index 000000000000..a8ee7c569c5f --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_OtherProperties.json @@ -0,0 +1,101 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "metadata": [ + { + "name": "key1", + "value": "value1" + } + ], + "applicationPackages": [ + { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234" + }, + { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_5678", + "version": "1.0" + } + ] + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2025-07-29T10:22:55.9407275Z", + "creationTime": "2025-07-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2025-07-29T10:22:55.9407275Z", + "vmSize": "Standard_D4d_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2025-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT8M", + "nodeDeallocationOption": "TaskCompletion" + } + }, + "autoScaleRun": { + "evaluationTime": "2025-07-29T10:22:55.9407275Z", + "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" + }, + "currentDedicatedNodes": 12, + "currentLowPriorityNodes": 0, + "resizeOperationStatus": { + "startTime": "2025-07-29T10:22:55.9407275Z", + "targetDedicatedNodes": 8, + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M" + }, + "metadata": [ + { + "name": "key1", + "value": "value1" + } + ], + "applicationPackages": [ + { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_1234" + }, + { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool/applications/app_5678", + "version": "1.0" + } + ] + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_RemoveStartTask.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_RemoveStartTask.json new file mode 100644 index 000000000000..01ea6e022cae --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_RemoveStartTask.json @@ -0,0 +1,70 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "startTask": {} + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2025-07-29T10:22:55.9407275Z", + "creationTime": "2025-07-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2025-07-29T10:22:55.9407275Z", + "vmSize": "Standard_D4d_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2025-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "scaleSettings": { + "autoScale": { + "formula": "$TargetDedicated=34", + "evaluationInterval": "PT15M" + } + }, + "autoScaleRun": { + "evaluationTime": "2025-07-29T10:22:55.9407275Z", + "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" + }, + "currentDedicatedNodes": 12, + "currentLowPriorityNodes": 0, + "resizeOperationStatus": { + "startTime": "2025-07-29T10:22:55.9407275Z", + "targetDedicatedNodes": 34, + "nodeDeallocationOption": "Requeue", + "resizeTimeout": "PT15M" + } + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_ResizePool.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_ResizePool.json new file mode 100644 index 000000000000..2676aa993261 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PoolUpdate_ResizePool.json @@ -0,0 +1,79 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "poolName": "testpool", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 5, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT8M", + "nodeDeallocationOption": "TaskCompletion" + } + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/pools/testpool", + "name": "testpool", + "type": "Microsoft.Batch/batchAccounts/pools", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "lastModified": "2025-07-29T10:22:55.9407275Z", + "creationTime": "2025-07-28T10:22:55.9407275Z", + "provisioningState": "Succeeded", + "provisioningStateTransitionTime": "2025-07-28T10:22:55.9407275Z", + "allocationState": "Resizing", + "allocationStateTransitionTime": "2025-07-29T10:22:55.9407275Z", + "vmSize": "Standard_D4d_v5", + "interNodeCommunication": "Disabled", + "taskSlotsPerNode": 1, + "taskSchedulingPolicy": { + "nodeFillType": "Spread" + }, + "deploymentConfiguration": { + "virtualMachineConfiguration": { + "imageReference": { + "publisher": "MicrosoftWindowsServer", + "offer": "WindowsServer", + "sku": "2025-datacenter-smalldisk", + "version": "latest" + }, + "nodeAgentSkuId": "batch.node.windows amd64" + } + }, + "scaleSettings": { + "fixedScale": { + "targetDedicatedNodes": 1, + "targetLowPriorityNodes": 0, + "resizeTimeout": "PT8M", + "nodeDeallocationOption": "TaskCompletion" + } + }, + "autoScaleRun": { + "evaluationTime": "2025-07-29T10:22:55.9407275Z", + "results": "$TargetDedicatedNodes=34;NodeDeallocationOption=requeue" + }, + "currentDedicatedNodes": 12, + "currentLowPriorityNodes": 0, + "resizeOperationStatus": { + "startTime": "2025-07-29T10:22:55.9407275Z", + "targetDedicatedNodes": 8, + "nodeDeallocationOption": "TaskCompletion", + "resizeTimeout": "PT8M" + } + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateBatchAccountCreate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateBatchAccountCreate.json new file mode 100644 index 000000000000..378e55f8b64b --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateBatchAccountCreate.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid", + "parameters": { + "location": "japaneast", + "properties": { + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage" + }, + "keyVaultReference": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", + "url": "http://sample.vault.azure.net/" + }, + "publicNetworkAccess": "Disabled" + } + } + }, + "responses": { + "202": {}, + "200": { + "body": { + "name": "sampleacct", + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "provisioningState": "Succeeded", + "poolAllocationMode": "UserSubscription", + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolQuota": 20, + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", + "lastKeySync": "2025-07-10T23:48:38.9878479Z" + }, + "keyVaultReference": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.KeyVault/vaults/sample", + "url": "http://sample.vault.azure.net/" + }, + "publicNetworkAccess": "Disabled" + }, + "identity": { + "type": "None" + }, + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "type": "Microsoft.Batch/batchAccounts" + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateBatchAccountGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateBatchAccountGet.json new file mode 100644 index 000000000000..f7c0258dff5c --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateBatchAccountGet.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "accountName": "sampleacct", + "resourceGroupName": "default-azurebatch-japaneast", + "api-version": "2025-06-01", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "name": "sampleacct", + "location": "japaneast", + "properties": { + "accountEndpoint": "sampleacct.japaneast.batch.azure.com", + "provisioningState": "Succeeded", + "poolAllocationMode": "BatchService", + "dedicatedCoreQuota": 20, + "lowPriorityCoreQuota": 20, + "poolQuota": 20, + "activeJobAndJobScheduleQuota": 20, + "autoStorage": { + "storageAccountId": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Storage/storageAccounts/samplestorage", + "lastKeySync": "2025-07-10T23:48:38.9878479Z" + }, + "publicNetworkAccess": "Disabled", + "privateEndpointConnections": [ + { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "name": "testprivateEndpointConnection.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Approved by xyz.abc@company.com" + } + } + } + ] + }, + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct", + "type": "Microsoft.Batch/batchAccounts" + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionDelete.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionDelete.json new file mode 100644 index 000000000000..80281aa91dc0 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionDelete.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "privateEndpointConnectionName": "testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "api-version": "2025-06-01" + }, + "responses": { + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0/accountOperationResults/sampleacct-30a022cb-a64f-4fd5-9289-8b38b342e9de?api-version=2025-06-01" + } + }, + "204": {} + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionGet.json new file mode 100644 index 000000000000..94a54431ffc4 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionGet.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "privateEndpointConnectionName": "testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "name": "testprivateEndpointConnection5testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" + }, + "groupIds": [ + "batchAccount" + ], + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Approved by xyz.abc@company.com" + } + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionUpdate.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionUpdate.json new file mode 100644 index 000000000000..d00e3f155539 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionUpdate.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "privateEndpointConnectionName": "testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "api-version": "2025-06-01", + "parameters": { + "properties": { + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Approved by xyz.abc@company.com" + } + } + } + }, + "responses": { + "200": { + "headers": { + "ETag": "W/\"0x8D4EDFEBFADF4AB\"" + }, + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "name": "testprivateEndpointConnection5.24d6b4b5-e65c-4330-bbe9-3a290d62f8e0", + "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections", + "etag": "W/\"0x8D4EDFEBFADF4AB\"", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" + }, + "groupIds": [ + "batchAccount" + ], + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Approved by xyz.abc@company.com" + } + } + } + }, + "202": { + "headers": { + "Retry-After": "15", + "Location": "https://management.azure.com/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnectionProxyResults/Updating$testprivateEndpointConnection5.24d6b4b5$e65c-4330-bbe9-3a290d62f8e0-8D4EDFF164A11C9?api-version=2024-02-01" + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionsList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionsList.json new file mode 100644 index 000000000000..bcfe7b917e08 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateEndpointConnectionsList.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "privateEndpointConnectionName": "testprivateEndpointConnection", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateEndpointConnections/testprivateEndpointConnection", + "name": "testprivateEndpointConnection", + "type": "Microsoft.Batch/batchAccounts/privateEndpointConnections", + "properties": { + "provisioningState": "Succeeded", + "privateEndpoint": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Network/privateEndpoints/testprivateEndpoint" + }, + "groupIds": [ + "batchAccount" + ], + "privateLinkServiceConnectionState": { + "status": "Approved", + "description": "Approved by xyz.abc@company.com" + } + } + } + ] + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateLinkResourceGet.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateLinkResourceGet.json new file mode 100644 index 000000000000..39d7b35b5080 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateLinkResourceGet.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "privateLinkResourceName": "batchAccount", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateLinkResources/batchAccount", + "name": "sampleacct", + "type": "Microsoft.Batch/batchAccounts/privateLinkResources", + "properties": { + "groupId": "batchAccount", + "requiredMembers": [ + "batchAccount" + ], + "requiredZoneNames": [ + "privatelink.japaneast.batch.azure.com" + ] + } + } + } + } +} diff --git a/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateLinkResourcesList.json b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateLinkResourcesList.json new file mode 100644 index 000000000000..3e0b64510697 --- /dev/null +++ b/specification/batch/resource-manager/Microsoft.Batch/stable/2025-06-01/examples/PrivateLinkResourcesList.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "subscriptionId": "subid", + "resourceGroupName": "default-azurebatch-japaneast", + "accountName": "sampleacct", + "api-version": "2025-06-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/subid/resourceGroups/default-azurebatch-japaneast/providers/Microsoft.Batch/batchAccounts/sampleacct/privateLinkResources/batchAccount", + "name": "batchAccount", + "type": "Microsoft.Batch/batchAccounts/privateLinkResources", + "properties": { + "groupId": "batchAccount", + "requiredMembers": [ + "batchAccount" + ], + "requiredZoneNames": [ + "privatelink.japaneast.batch.azure.com" + ] + } + } + ] + } + } + } +} diff --git a/specification/batch/resource-manager/readme.md b/specification/batch/resource-manager/readme.md index 321f24b42e37..f12aff187d92 100644 --- a/specification/batch/resource-manager/readme.md +++ b/specification/batch/resource-manager/readme.md @@ -28,9 +28,18 @@ These are the global settings for the Batch API. title: BatchManagementClient description: Batch Client openapi-type: arm -tag: package-2024-07 +tag: package-2025-06 ``` +### Tag: package-2025-06 + +These settings apply only when `--tag=package-2025-06` is specified on the command line. + +```yaml $(tag) == 'package-2025-06' +input-file: + - Microsoft.Batch/stable/2025-06-01/BatchManagement.json + - Microsoft.Batch/stable/2025-06-01/NetworkSecurityPerimeter.json +``` ### Tag: package-2024-07 @@ -188,7 +197,6 @@ directive: - suppress: R2017 where: - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}"].put - - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/certificates/{certificateName}"].put reason: Matching service response. - suppress: R2063 @@ -196,7 +204,6 @@ directive: - suppress: R2066 where: - - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/certificates/{certificateName}/cancelDelete"].post.operationId - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/listKeys"].post.operationId - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/regenerateKeys"].post.operationId - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/syncAutoStorageKeys"].post.operationId @@ -227,9 +234,6 @@ directive: - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}"].put - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions/{versionName}"].get - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions/{versionName}"].put - - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/certificates/{certificateName}"].get - - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/certificates/{certificateName}"].patch - - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/certificates/{certificateName}"].put - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/detectors/{detectorId}"].get - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/detectors/{detectorId}"].patch - $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/detectors/{detectorId}"].put From f568689fc0ce63fc668f68498ce271eff8caec54 Mon Sep 17 00:00:00 2001 From: Zhonglei Ma <v-zhongleima@microsoft.com> Date: Tue, 6 Jan 2026 14:19:33 +0800 Subject: [PATCH 113/117] MPG migration - ServiceNetworking (#39161) --- .../ServiceNetworking/client.tsp | 46 +++++++++++++++++++ .../ServiceNetworking/tspconfig.yaml | 6 +-- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/ServiceNetworking/client.tsp b/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/ServiceNetworking/client.tsp index dcae80af447b..9fb3149d1ef6 100644 --- a/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/ServiceNetworking/client.tsp +++ b/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/ServiceNetworking/client.tsp @@ -73,6 +73,45 @@ using Microsoft.ServiceNetworking; "ServiceNetworkingIPAccessRuleAction", "csharp" ); +@@clientName(PolicyType.IpAccessRules, "IPAccessRules", "csharp"); +@@clientName(SecurityPolicyConfigurations.ipAccessRulesSecurityPolicy, + "IPAccessRulesSecurityPolicy", + "csharp" +); +@@alternateType(Azure.ResourceManager.CommonTypes.Resource.id, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@alternateType(AssociationSubnet.id, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@alternateType(WafPolicy.id, Azure.Core.armResourceIdentifier, "csharp"); +@@alternateType(AssociationSubnetUpdate.id, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@alternateType(WafSecurityPolicy.id, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@alternateType(IpAccessRulesSecurityPolicy.id, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@alternateType(TrafficControllerProperties.frontends, + Azure.ResourceManager.Models.SubResource[], + "csharp" +); +@@alternateType(TrafficControllerProperties.associations, + Azure.ResourceManager.Models.SubResource[], + "csharp" +); +@@alternateType(TrafficControllerProperties.securityPolicies, + Azure.ResourceManager.Models.SubResource[], + "csharp" +); + @@clientName(Versions.v2023_11_01, "$DO_NOT_NORMALIZE$V2023_11_01", "javascript" @@ -81,3 +120,10 @@ using Microsoft.ServiceNetworking; "$DO_NOT_NORMALIZE$V2025_05_01", "javascript" ); + +// we add this model in this namespace in order to replace some models with this model via alternateType decorator +namespace Azure.ResourceManager.Models { + model SubResource { + id?: Azure.Core.armResourceIdentifier; + } +} diff --git a/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/ServiceNetworking/tspconfig.yaml b/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/ServiceNetworking/tspconfig.yaml index 4814760e19d5..e278aca3e152 100644 --- a/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/ServiceNetworking/tspconfig.yaml +++ b/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/ServiceNetworking/tspconfig.yaml @@ -44,8 +44,6 @@ options: namespace: "com.azure.resourcemanager.servicenetworking" flavor: "azure" service-name: "Traffic Controller" - "@azure-tools/typespec-csharp": - emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" - flavor: azure - clear-output-folder: true + "@azure-typespec/http-client-csharp-mgmt": namespace: "Azure.ResourceManager.ServiceNetworking" + emitter-output-dir: "{output-dir}/sdk/servicenetworking/{namespace}" From a4bb4c9d53be7676abb18587019ecb73205a8ecc Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Tue, 6 Jan 2026 14:36:29 +0800 Subject: [PATCH 114/117] [healthbot] update python tsp config (#39436) * Add Python client names for HealthBot management * Update client.tsp * Update client.tsp --- specification/healthbot/HealthBot.Management/client.tsp | 1 + 1 file changed, 1 insertion(+) diff --git a/specification/healthbot/HealthBot.Management/client.tsp b/specification/healthbot/HealthBot.Management/client.tsp index fe61ad870d07..d26d7a05676f 100644 --- a/specification/healthbot/HealthBot.Management/client.tsp +++ b/specification/healthbot/HealthBot.Management/client.tsp @@ -3,3 +3,4 @@ import "./main.tsp"; using Azure.ClientGenerator.Core; @@clientName(Microsoft.HealthBot, "HealthbotClient", "javascript"); +@@clientName(Microsoft.HealthBot, "HealthBotMgmtClient", "python"); From d8882bcf9ee2277a93961d0757bec0e55dee046d Mon Sep 17 00:00:00 2001 From: Kyle Zhang <skywing918@hotmail.com> Date: Tue, 6 Jan 2026 14:43:39 +0800 Subject: [PATCH 115/117] [TSV] Support optional check in general (#39384) * Refactor SDK Tspconfig validation rules to separate required and optional rules, enhancing validation logic and error handling * Enhance optional rules validation: update loadConfig to return undefined, add tests for skipping optional rules when emitters are not configured * Update eng/tools/typespec-validation/test/sdk-tspconfig-validation.test.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Refactor optionalRules handling in SdkTspConfigValidationRule to ensure proper type usage and streamline emitter configuration checks * Fix type assertion for subRules in SdkTspConfigValidationRule instantiation --------- Co-authored-by: Kyle Zhang <v-zhanh@microsoft.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../src/rules/sdk-tspconfig-validation.ts | 102 ++++++++++++------ .../test/sdk-tspconfig-validation.test.ts | 60 +++++++++-- 2 files changed, 119 insertions(+), 43 deletions(-) diff --git a/eng/tools/typespec-validation/src/rules/sdk-tspconfig-validation.ts b/eng/tools/typespec-validation/src/rules/sdk-tspconfig-validation.ts index dbf9b60fc6a2..a880d87289bd 100644 --- a/eng/tools/typespec-validation/src/rules/sdk-tspconfig-validation.ts +++ b/eng/tools/typespec-validation/src/rules/sdk-tspconfig-validation.ts @@ -21,21 +21,11 @@ export abstract class TspconfigSubRuleBase { } public async execute(folder: string): Promise<RuleResult> { - const tspconfigExists = await fileExists(join(folder, "tspconfig.yaml")); - if (!tspconfigExists) - return this.createFailedResult( - `Failed to find ${join(folder, "tspconfig.yaml")}`, - "Please add tspconfig.yaml", - ); - - let config = undefined; - try { - const configText = await readTspConfig(folder); - config = yamlParse(configText); - } catch (error) { + const config = await this.loadConfig(folder); + if (!config) { return this.createFailedResult( - `Failed to parse ${join(folder, "tspconfig.yaml")}`, - "Please add tspconfig.yaml.", + `Failed to load ${join(folder, "tspconfig.yaml")}`, + "Please ensure tspconfig.yaml exists and is valid", ); } @@ -48,6 +38,22 @@ export abstract class TspconfigSubRuleBase { return this.validate(config); } + public async loadConfig(folder: string): Promise<any | undefined> { + const tspconfigExists = await fileExists(join(folder, "tspconfig.yaml")); + if (!tspconfigExists) { + return undefined; + } + + try { + const configText = await readTspConfig(folder); + const config = yamlParse(configText); + return config; + } catch (error) { + console.warn(`Failed to parse tspconfig.yaml in ${folder}: ${error}`); + return undefined; + } + } + protected skip(_config: any, _folder: string): SkipResult { return { shouldSkip: false }; } @@ -719,7 +725,13 @@ export class TspConfigCsharpMgmtNamespaceSubRule extends TspconfigEmitterOptions } } -export const defaultRules = [ +/** + * Required rules: When a tspconfig.yaml exists, any applicable rule in the requiredRules array + * that fails validation will cause the entire SdkTspConfigValidationRule to fail. For example, + * if a Rust emitter is configured in tspconfig.yaml but doesn't meet the required validation + * criteria, the validation will fail. + */ +export const requiredRules = [ new TspConfigCommonAzServiceDirMatchPatternSubRule(), new TspConfigJavaAzEmitterOutputDirMatchPatternSubRule(), new TspConfigJavaMgmtEmitterOutputDirMatchPatternSubRule(), @@ -746,6 +758,15 @@ export const defaultRules = [ new TspConfigPythonNamespaceMatchesEmitterOutputDirSubRule(), new TspConfigPythonMgmtPackageGenerateSampleTrueSubRule(), new TspConfigPythonMgmtPackageGenerateTestTrueSubRule(), +]; + +/** + * Optional rules: Validate language-specific emitter configurations without blocking CI/CD. + * All rules in this array inherit from TspconfigEmitterOptionsSubRuleBase and only run when + * their corresponding emitter is configured in tspconfig.yaml. Failures are logged but do not + * affect the overall validation result. + */ +export const optionalRules: TspconfigEmitterOptionsSubRuleBase[] = [ new TspConfigCsharpAzNamespaceSubRule(), new TspConfigCsharpAzClearOutputFolderTrueSubRule(), new TspConfigCsharpMgmtNamespaceSubRule(), @@ -754,13 +775,18 @@ export const defaultRules = [ ]; export class SdkTspConfigValidationRule implements Rule { - private subRules: TspconfigSubRuleBase[] = []; + private requiredRules: TspconfigSubRuleBase[] = []; + private optionalRules: TspconfigEmitterOptionsSubRuleBase[] = []; private suppressedKeyPaths: Set<string> = new Set(); name = "SdkTspConfigValidation"; description = "Validate the SDK tspconfig.yaml file"; - constructor(subRules: TspconfigSubRuleBase[] = defaultRules) { - this.subRules = subRules; + constructor( + requiredSubRules: TspconfigSubRuleBase[] = requiredRules, + optionalSubRules: TspconfigEmitterOptionsSubRuleBase[] = optionalRules, + ) { + this.requiredRules = requiredSubRules; + this.optionalRules = optionalSubRules; } async execute(folder: string): Promise<RuleResult> { @@ -777,27 +803,34 @@ export class SdkTspConfigValidationRule implements Rule { const failedResults = []; let success = true; - for (const subRule of this.subRules) { + + // Execute required rules + for (const subRule of this.requiredRules) { // Check for both direct matches and wildcard patterns if (this.isKeyPathSuppressed(subRule.getPathOfKeyToValidate())) continue; + const result = await subRule.execute(folder!); if (!result.success) failedResults.push(result); - let isSubRuleSuccess = result.success; - - // TODO: remove when @azure-tools/typespec-csharp is ready for validating tspconfig - if (subRule instanceof TspconfigEmitterOptionsSubRuleBase) { - const emitterOptionSubRule = subRule as TspconfigEmitterOptionsSubRuleBase; - const emitterName = emitterOptionSubRule.getEmitterName(); - if (emitterName === "@azure-tools/typespec-csharp" && isSubRuleSuccess === false) { - console.warn( - `Validation on option "${emitterOptionSubRule.getPathOfKeyToValidate()}" in "${emitterName}" are failed. However, per ${emitterName}’s decision, we will treat it as passed, please refer to https://eng.ms/docs/products/azure-developer-experience/onboard/request-exception`, - ); - isSubRuleSuccess = true; - } + success &&= result.success; + } + + // Execute optional rules (failures don't affect overall success) + for (const subRule of this.optionalRules) { + if (this.isKeyPathSuppressed(subRule.getPathOfKeyToValidate())) continue; + + // Skip if emitter is not configured + const config = await subRule.loadConfig(folder); + const emitterName = subRule.getEmitterName(); + if (config && this.skipIfEmitterNotConfigured(config, emitterName)) { + console.warn( + `Optional rule ${subRule.constructor.name} skipped because emitter ${emitterName} is not configured.`, + ); + continue; } - success &&= isSubRuleSuccess; + const result = await subRule.execute(folder!); + if (!result.success) failedResults.push(result); } const stdOutputFailedResults = @@ -811,6 +844,11 @@ export class SdkTspConfigValidationRule implements Rule { }; } + private skipIfEmitterNotConfigured(config: any, emitterName: string): boolean { + const isConfigured = config?.options?.[emitterName] !== undefined; + return !isConfigured; + } + private setSuppressedKeyPaths(suppressions: Suppression[]) { this.suppressedKeyPaths = new Set<string>(); for (const suppression of suppressions) { diff --git a/eng/tools/typespec-validation/test/sdk-tspconfig-validation.test.ts b/eng/tools/typespec-validation/test/sdk-tspconfig-validation.test.ts index 601534b0f005..1369f5b5004c 100644 --- a/eng/tools/typespec-validation/test/sdk-tspconfig-validation.test.ts +++ b/eng/tools/typespec-validation/test/sdk-tspconfig-validation.test.ts @@ -678,6 +678,32 @@ options: }, ]; +const optionalRulesWithoutEmitterConfigTestCases: Case[] = [ + { + description: "Optional rule: should be skipped when emitter is not configured", + folder: managementTspconfigFolder, + tspconfigContent: ` +parameters: + service-dir: "sdk/test" +`, + success: true, + subRules: [new TspConfigCsharpAzNamespaceSubRule()], + }, + { + description: "Optional rule: multiple rules should be skipped when emitter is not configured", + folder: managementTspconfigFolder, + tspconfigContent: ` +parameters: + service-dir: "sdk/test" +`, + success: true, + subRules: [ + new TspConfigCsharpAzNamespaceSubRule(), + new TspConfigCsharpAzClearOutputFolderTrueSubRule(), + ], + }, +]; + const suppressEntireRuleTestCase: Case = { description: "Suppress entire rule", folder: managementTspconfigFolder, @@ -746,7 +772,7 @@ describe("tspconfig", function () { readTspConfigSpy.mockReset(); }); - it.each([ + const requiredTestCases = [ // common ...commonAzureServiceDirTestCases, ...commonAzureServiceDirWithOutputDirTestCases, @@ -782,15 +808,22 @@ describe("tspconfig", function () { ...pythonManagementGenerateTestTestCases, ...pythonManagementGenerateSampleTestCases, ...pythonDpEmitterOutputTestCases, + // variable resolution in emitter-output-dir + ...emitterOutputDirWithNamespaceVariableTestCases, + ]; + + const optionalTestCases = [ // csharp ...csharpAzEmitterOutputTestCases, ...csharpAzNamespaceTestCases, ...csharpAzClearOutputFolderTestCases, ...csharpMgmtEmitterOutputDirTestCases, ...csharpMgmtNamespaceTestCases, - // variable resolution in emitter-output-dir - ...emitterOutputDirWithNamespaceVariableTestCases, - ])(`$description`, async (c: Case) => { + // Test cases for optional rules when emitter is not configured + ...optionalRulesWithoutEmitterConfigTestCases, + ]; + + it.each([...requiredTestCases, ...optionalTestCases])(`$description`, async (c: Case) => { readTspConfigSpy.mockImplementation(async (_folder: string) => c.tspconfigContent); vi.spyOn(utils, "getSuppressions").mockImplementation(async (_path: string) => [ { @@ -806,9 +839,13 @@ describe("tspconfig", function () { return file === join(c.folder, "tspconfig.yaml"); }); - const rule = new SdkTspConfigValidationRule(c.subRules); + // Determine if the subRules are in optional test cases + const isOptional = optionalTestCases.some((tc) => tc === c); + const rule = isOptional + ? new SdkTspConfigValidationRule([], c.subRules as any) + : new SdkTspConfigValidationRule(c.subRules, []); const result = await rule.execute(c.folder); - strictEqual(result.success, c.success); // Non-management should always pass + strictEqual(result.success, c.success); // Verify the validation result matches the expected outcome if (c.success) strictEqual(result.stdOutput?.includes("[SdkTspConfigValidation]: validation passed."), true); if (!c.success) @@ -831,7 +868,7 @@ describe("tspconfig", function () { return file === join(c.folder, "tspconfig.yaml"); }); - const rule = new SdkTspConfigValidationRule(c.subRules); + const rule = new SdkTspConfigValidationRule(c.subRules, []); const result = await rule.execute(c.folder); const returnSuccess = c.folder.includes(".Management") ? c.success : true; strictEqual(result.success, returnSuccess); @@ -856,7 +893,7 @@ describe("tspconfig", function () { return file === join(c.folder, "tspconfig.yaml"); }); - const rule = new SdkTspConfigValidationRule(c.subRules); + const rule = new SdkTspConfigValidationRule(c.subRules, []); const result = await rule.execute(c.folder); strictEqual(result.success, true); strictEqual(result.stdOutput?.includes("[SdkTspConfigValidation]: validation skipped."), true); @@ -905,9 +942,10 @@ parameters: }); // Create validation rule and execute - const rule = new SdkTspConfigValidationRule([ - new TspConfigCommonAzServiceDirMatchPatternSubRule(), - ]); + const rule = new SdkTspConfigValidationRule( + [new TspConfigCommonAzServiceDirMatchPatternSubRule()], + [], + ); const result = await rule.execute(awsServiceFolder); // Validate that validation passes for each service From eaf38b96cafeac588727c2891de6c3a76225c7af Mon Sep 17 00:00:00 2001 From: Arthur Ma <mars.arthur@263.net> Date: Tue, 6 Jan 2026 15:25:39 +0800 Subject: [PATCH 116/117] Update client settings for AzureStackHciVm (#39442) --- .../client.tsp | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp index d879fdfe553f..e69e187c778b 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp @@ -425,6 +425,10 @@ using Microsoft.AzureStackHCI; "csharp" ); @@clientName(SecurityTypes.ConfidentialVM, "ConfidentialVm", "csharp"); +@@clientName(GalleryImageVersionStorageProfile, + "HciVmGalleryImageVersionStorageProfile", + "csharp" +); @@clientName(GalleryImageVersionStorageProfile.osDiskImage, "OSDiskImage", "csharp" @@ -455,16 +459,17 @@ using Microsoft.AzureStackHCI; "csharp" ); @@clientName(FabricConnectionHealthEnum, - "FabricConnectionHealthStateType", + "HciVmFabricConnectionHealthStateType", "csharp" ); @@clientName(FabricIntegrationStateEnum, - "FabricIntegrationStateType", + "HciVmFabricIntegrationStateType", "csharp" ); +@@clientName(FabricIntegrationStatus, "HciVmFabricIntegrationStatus", "csharp"); @@clientName(FabricIntegrationStatus.lastChecked, "LastCheckedOn", "csharp"); -@@clientName(FabricIssue, "ManagedNetworkFabricIssue", "csharp"); -@@clientName(FabricResourceTypeEnum, "FabricResourceType", "csharp"); +@@clientName(FabricIssue, "HciVmFabricIssue", "csharp"); +@@clientName(FabricResourceTypeEnum, "HciVmFabricResourceType", "csharp"); @@clientName(FrontendIPConfiguration, "HciVmFrontendIPConfiguration", "csharp"); @@clientName(FrontendIPConfigurationProperties, "HciVmFrontendIPConfigurationProperties", @@ -591,6 +596,15 @@ using Microsoft.AzureStackHCI; ); @@clientName(InterfaceDNSSettings, "HciVmInterfaceDnsSettings", "csharp"); @@clientName(VMDiskSecurityProfile, "HciVmDiskSecurityProfile", "csharp"); +@@clientName(GalleryOSDiskImage, "HciVmGalleryOSDiskImage", "csharp"); +@@clientName(GalleryImageVersionProperties, + "HciVmGalleryImageVersionProperties", + "csharp" +); +@@clientName(GalleryImageStatusDownloadStatus, + "HciVmGalleryImageDownloadStatus", + "csharp" +); // Java @@clientName(Update, "HciUpdate", "java"); From e9d8529ebbb7346c08d29642fe4b8c29d0ddba28 Mon Sep 17 00:00:00 2001 From: Weidong Xu <weidxu@microsoft.com> Date: Tue, 6 Jan 2026 15:56:11 +0800 Subject: [PATCH 117/117] TypeSpec conversion for resources/policy (#38509) * convert without /{policyAssignmentId} path * tspconfig * prettier * fix PolicyDefinition * fix PolicySetDefinitionVersion * fix PolicyDefinitionVersion * fix PolicySetDefinition * fix back-compatible * format * fix model * fix warning * regen * add client.tsp * remove operationId * fix listForResourceGroup * use v6 common-types * use CommonTypes.ManagementGroupNameParameter * revert back to common-types v5 * temp solution for /providers/microsoft.Management/managementGroups/{managementGroupName}/providers/microsoft.Authorization * fix PolicyAssignments_ListForManagementGroup * remove suppress * fix PolicyAssignments_List * fix PolicyAssignments_ListForResource * add examples * fix go tspconfig * fix * fix example * use template for listForManagementGroup * use ListSinglePage * use PolicyAssignmentGenericOps * update others * backward compatible * api in client * skip-url-encoding * fix a ref * copy existing suppress to openapi.json file * update package name * update client name * for tsp 1.6.0 * Update client.tsp * Update client.tsp * Update tspconfig.yaml * Update client location annotation in policy client * add code * use Record type directly on property --------- Co-authored-by: Jiao Di (MSFT) <v-jiaodi@microsoft.com> Co-authored-by: Wenjie Yu (Wicresoft North America Ltd) <v-wenjyu@microsoft.com> Co-authored-by: Jiao Di (MSFT) <80496810+v-jiaodi@users.noreply.github.com> Co-authored-by: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Co-authored-by: Judy Liu <v-liujudy@microsoft.com> Co-authored-by: Pan Shao <97225342+pshao25@users.noreply.github.com> --- .../policy/PolicyAssignment.tsp | 197 + .../policy/PolicyDefinition.tsp | 220 + .../policy/PolicyDefinitionVersion.tsp | 224 + .../policy/PolicySetDefinition.tsp | 259 + .../policy/PolicySetDefinitionVersion.tsp | 269 + .../policy/back-compatible.tsp | 74 + .../Microsoft.Authorization/policy/client.tsp | 90 + .../2025-03-01/acquirePolicyToken.json | 64 + .../acquirePolicyTokenAtManagementGroup.json | 64 + .../createOrUpdatePolicyDefinition.json | 97 + ...rUpdatePolicyDefinitionAdvancedParams.json | 124 + ...datePolicyDefinitionAtManagementGroup.json | 97 + ...ExternalEvaluationEnforcementSettings.json | 109 + ...createOrUpdatePolicyDefinitionVersion.json | 140 + ...icyDefinitionVersionAtManagementGroup.json | 140 + .../createOrUpdatePolicySetDefinition.json | 162 + ...ePolicySetDefinitionAtManagementGroup.json | 137 + ...ateOrUpdatePolicySetDefinitionVersion.json | 163 + ...SetDefinitionVersionAtManagementGroup.json | 135 + ...OrUpdatePolicySetDefinitionWithGroups.json | 198 + ...DefinitionWithGroupsAtManagementGroup.json | 196 + .../2025-03-01/createPolicyAssignment.json | 68 + ...PolicyAssignmentNonComplianceMessages.json | 63 + ...PolicyAssignmentWithEnrollEnforcement.json | 59 + .../createPolicyAssignmentWithIdentity.json | 69 + .../createPolicyAssignmentWithOverrides.json | 86 + ...PolicyAssignmentWithResourceSelectors.json | 70 + ...icyAssignmentWithUserAssignedIdentity.json | 76 + ...atePolicyAssignmentWithoutEnforcement.json | 59 + .../2025-03-01/deletePolicyAssignment.json | 42 + .../2025-03-01/deletePolicyDefinition.json | 17 + ...letePolicyDefinitionAtManagementGroup.json | 17 + .../deletePolicyDefinitionVersion.json | 18 + ...icyDefinitionVersionAtManagementGroup.json | 18 + .../2025-03-01/deletePolicySetDefinition.json | 17 + ...ePolicySetDefinitionAtManagementGroup.json | 17 + .../deletePolicySetDefinitionVersion.json | 18 + ...SetDefinitionVersionAtManagementGroup.json | 18 + .../getBuiltInPolicySetDefinition.json | 84 + .../getBuiltInPolicySetDefinitionVersion.json | 81 + .../getBuiltinPolicyDefinition.json | 59 + .../getBuiltinPolicyDefinitionVersion.json | 56 + .../2025-03-01/getPolicyAssignment.json | 40 + .../getPolicyAssignmentWithIdentity.json | 46 + .../getPolicyAssignmentWithOverrides.json | 47 + ...PolicyAssignmentWithResourceSelectors.json | 46 + ...icyAssignmentWithUserAssignedIdentity.json | 50 + .../2025-03-01/getPolicyDefinition.json | 60 + .../getPolicyDefinitionAtManagementGroup.json | 60 + .../getPolicyDefinitionVersion.json | 57 + ...icyDefinitionVersionAtManagementGroup.json | 57 + .../2025-03-01/getPolicySetDefinition.json | 77 + ...tPolicySetDefinitionAtManagementGroup.json | 59 + .../getPolicySetDefinitionVersion.json | 74 + ...SetDefinitionVersionAtManagementGroup.json | 56 + ...istAllBuiltInPolicyDefinitionVersions.json | 107 + ...AllBuiltInPolicySetDefinitionVersions.json | 83 + .../listAllPolicyDefinitionVersions.json | 101 + ...cyDefinitionVersionsByManagementGroup.json | 101 + .../listAllPolicySetDefinitionVersions.json | 58 + ...etDefinitionVersionsByManagementGroup.json | 125 + .../listBuiltInPolicyDefinitionVersions.json | 108 + .../listBuiltInPolicyDefinitions.json | 147 + ...istBuiltInPolicySetDefinitionVersions.json | 84 + .../listBuiltInPolicySetDefinitions.json | 87 + .../2025-03-01/listPolicyAssignments.json | 65 + ...stPolicyAssignmentsForManagementGroup.json | 65 + .../listPolicyAssignmentsForResource.json | 64 + ...listPolicyAssignmentsForResourceGroup.json | 66 + .../listPolicyDefinitionVersions.json | 102 + ...cyDefinitionVersionsByManagementGroup.json | 102 + .../2025-03-01/listPolicyDefinitions.json | 145 + ...istPolicyDefinitionsByManagementGroup.json | 108 + .../listPolicySetDefinitionVersions.json | 59 + ...etDefinitionVersionsByManagementGroup.json | 59 + .../2025-03-01/listPolicySetDefinitions.json | 133 + ...PolicySetDefinitionsByManagementGroup.json | 131 + .../updatePolicyAssignmentWithIdentity.json | 52 + .../updatePolicyAssignmentWithOverrides.json | 66 + ...PolicyAssignmentWithResourceSelectors.json | 64 + ...icyAssignmentWithUserAssignedIdentity.json | 59 + .../Microsoft.Authorization/policy/main.tsp | 48 + .../Microsoft.Authorization/policy/models.tsp | 1136 +++++ .../Microsoft.Authorization/policy/readme.md | 71 +- .../Microsoft.Authorization/policy/routes.tsp | 154 + .../examples/acquirePolicyToken.json | 54 +- .../acquirePolicyTokenAtManagementGroup.json | 52 +- .../createOrUpdatePolicyDefinition.json | 98 +- ...rUpdatePolicyDefinitionAdvancedParams.json | 128 +- ...datePolicyDefinitionAtManagementGroup.json | 98 +- ...ExternalEvaluationEnforcementSettings.json | 110 +- ...createOrUpdatePolicyDefinitionVersion.json | 140 +- ...icyDefinitionVersionAtManagementGroup.json | 140 +- .../createOrUpdatePolicySetDefinition.json | 86 +- ...ePolicySetDefinitionAtManagementGroup.json | 82 +- ...ateOrUpdatePolicySetDefinitionVersion.json | 86 +- ...SetDefinitionVersionAtManagementGroup.json | 86 +- ...OrUpdatePolicySetDefinitionWithGroups.json | 116 +- ...DefinitionWithGroupsAtManagementGroup.json | 116 +- .../examples/createPolicyAssignment.json | 58 +- ...PolicyAssignmentNonComplianceMessages.json | 38 +- ...PolicyAssignmentWithEnrollEnforcement.json | 40 +- .../createPolicyAssignmentWithIdentity.json | 54 +- .../createPolicyAssignmentWithOverrides.json | 66 +- ...PolicyAssignmentWithResourceSelectors.json | 44 +- ...icyAssignmentWithUserAssignedIdentity.json | 62 +- ...atePolicyAssignmentWithoutEnforcement.json | 40 +- .../examples/deletePolicyAssignment.json | 30 +- .../examples/deletePolicyDefinition.json | 8 +- ...letePolicyDefinitionAtManagementGroup.json | 8 +- .../deletePolicyDefinitionVersion.json | 8 +- ...icyDefinitionVersionAtManagementGroup.json | 8 +- .../examples/deletePolicySetDefinition.json | 8 +- ...ePolicySetDefinitionAtManagementGroup.json | 8 +- .../deletePolicySetDefinitionVersion.json | 10 +- ...SetDefinitionVersionAtManagementGroup.json | 8 +- .../getBuiltInPolicySetDefinition.json | 54 +- .../getBuiltInPolicySetDefinitionVersion.json | 48 +- .../examples/getBuiltinPolicyDefinition.json | 42 +- .../getBuiltinPolicyDefinitionVersion.json | 34 +- .../examples/getPolicyAssignment.json | 32 +- .../getPolicyAssignmentWithIdentity.json | 44 +- .../getPolicyAssignmentWithOverrides.json | 40 +- ...PolicyAssignmentWithResourceSelectors.json | 36 +- ...icyAssignmentWithUserAssignedIdentity.json | 52 +- .../examples/getPolicyDefinition.json | 66 +- .../getPolicyDefinitionAtManagementGroup.json | 62 +- .../examples/getPolicyDefinitionVersion.json | 58 +- ...icyDefinitionVersionAtManagementGroup.json | 54 +- .../examples/getPolicySetDefinition.json | 48 +- ...tPolicySetDefinitionAtManagementGroup.json | 40 +- .../getPolicySetDefinitionVersion.json | 44 +- ...SetDefinitionVersionAtManagementGroup.json | 34 +- ...istAllBuiltInPolicyDefinitionVersions.json | 80 +- ...AllBuiltInPolicySetDefinitionVersions.json | 44 +- .../listAllPolicyDefinitionVersions.json | 60 +- ...cyDefinitionVersionsByManagementGroup.json | 94 +- .../listAllPolicySetDefinitionVersions.json | 34 +- ...etDefinitionVersionsByManagementGroup.json | 70 +- .../listBuiltInPolicyDefinitionVersions.json | 84 +- .../listBuiltInPolicyDefinitions.json | 112 +- ...istBuiltInPolicySetDefinitionVersions.json | 48 +- .../listBuiltInPolicySetDefinitions.json | 50 +- .../examples/listPolicyAssignments.json | 2 + ...stPolicyAssignmentsForManagementGroup.json | 2 + .../listPolicyAssignmentsForResource.json | 2 + ...listPolicyAssignmentsForResourceGroup.json | 52 +- .../listPolicyDefinitionVersions.json | 60 +- ...cyDefinitionVersionsByManagementGroup.json | 94 +- .../examples/listPolicyDefinitions.json | 102 +- ...istPolicyDefinitionsByManagementGroup.json | 92 +- .../listPolicySetDefinitionVersions.json | 34 +- ...etDefinitionVersionsByManagementGroup.json | 34 +- .../examples/listPolicySetDefinitions.json | 82 +- ...PolicySetDefinitionsByManagementGroup.json | 78 +- .../updatePolicyAssignmentWithIdentity.json | 50 +- .../updatePolicyAssignmentWithOverrides.json | 50 +- ...PolicyAssignmentWithResourceSelectors.json | 42 +- ...icyAssignmentWithUserAssignedIdentity.json | 58 +- .../policy/stable/2025-03-01/openapi.json | 4438 +++++++++++++++++ .../stable/2025-03-01/policyAssignments.json | 1098 ---- .../2025-03-01/policyDefinitionVersions.json | 854 ---- .../stable/2025-03-01/policyDefinitions.json | 751 --- .../policySetDefinitionVersions.json | 852 ---- .../2025-03-01/policySetDefinitions.json | 761 --- .../stable/2025-03-01/policyTokens.json | 368 -- .../policy/stable/2025-03-01/types.json | 120 - .../policy/suppressions.yaml | 3 - .../policy/tspconfig.yaml | 51 + 169 files changed, 15301 insertions(+), 6833 deletions(-) create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/PolicyAssignment.tsp create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/PolicyDefinition.tsp create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/PolicyDefinitionVersion.tsp create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/PolicySetDefinition.tsp create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/PolicySetDefinitionVersion.tsp create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/back-compatible.tsp create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/client.tsp create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/acquirePolicyToken.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/acquirePolicyTokenAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinition.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionAdvancedParams.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionExternalEvaluationEnforcementSettings.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionVersion.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionVersionAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinition.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionVersion.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionVersionAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionWithGroups.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionWithGroupsAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignment.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentNonComplianceMessages.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithEnrollEnforcement.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithIdentity.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithOverrides.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithResourceSelectors.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithUserAssignedIdentity.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithoutEnforcement.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyAssignment.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinition.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinitionAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinitionVersion.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinitionVersionAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinition.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinitionAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinitionVersion.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinitionVersionAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltInPolicySetDefinition.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltInPolicySetDefinitionVersion.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltinPolicyDefinition.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltinPolicyDefinitionVersion.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignment.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithIdentity.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithOverrides.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithResourceSelectors.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithUserAssignedIdentity.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinition.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinitionAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinitionVersion.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinitionVersionAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinition.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinitionAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinitionVersion.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinitionVersionAtManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllBuiltInPolicyDefinitionVersions.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllBuiltInPolicySetDefinitionVersions.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicyDefinitionVersions.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicyDefinitionVersionsByManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicySetDefinitionVersions.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicySetDefinitionVersionsByManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicyDefinitionVersions.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicyDefinitions.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicySetDefinitionVersions.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicySetDefinitions.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignments.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignmentsForManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignmentsForResource.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignmentsForResourceGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitionVersions.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitionVersionsByManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitions.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitionsByManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitionVersions.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitionVersionsByManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitions.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitionsByManagementGroup.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithIdentity.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithOverrides.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithResourceSelectors.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithUserAssignedIdentity.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/main.tsp create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/models.tsp create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/routes.tsp create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/openapi.json delete mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyAssignments.json delete mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyDefinitionVersions.json delete mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyDefinitions.json delete mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policySetDefinitionVersions.json delete mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policySetDefinitions.json delete mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyTokens.json delete mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/types.json create mode 100644 specification/resources/resource-manager/Microsoft.Authorization/policy/tspconfig.yaml diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicyAssignment.tsp b/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicyAssignment.tsp new file mode 100644 index 000000000000..da13e0195645 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicyAssignment.tsp @@ -0,0 +1,197 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Authorization; +/** + * The policy assignment. + */ +model PolicyAssignment + is Azure.ResourceManager.ExtensionResource<PolicyAssignmentProperties> { + ...ResourceNameParameter< + Resource = PolicyAssignment, + KeyName = "policyAssignmentName", + SegmentName = "policyAssignments", + NamePattern = "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + >; + + /** + * The location of the policy assignment. Only required when utilizing managed identity. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "For backward compatibility" + location?: string; + + /** + * The managed identity associated with the policy assignment. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "For backward compatibility" + identity?: Identity; +} + +alias PolicyAssignmentListParameters = { + /** + * The filter to apply on the operation. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atScope() is provided, the returned list only includes all policy assignments that apply to the scope, which is everything in the unfiltered list except those applied to sub scopes contained within the given scope. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the given scope. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value}. + */ + @query("$filter") + $filter?: string; + + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + + /** + * Maximum number of records to return. When the $top filter is not provided, it will return 500 records. + */ + @maxValue(1000) + @minValue(1) + @query("$top") + $top?: int32; +}; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" +interface PolicyAssignmentGenericOps + extends Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + + /** + * The namespace of the resource provider. For example, the namespace of a virtual machine is Microsoft.Compute (from Microsoft.Compute/virtualMachines) + */ + @path + @segment("providers") + resourceProviderNamespace: string, + + /** + * The parent resource path. Use empty string if there is none. + */ + @path(#{ allowReserved: true }) + parentResourcePath: string, + + /** + * The resource type name. For example the type name of a web app is 'sites' (from Microsoft.Web/sites). + */ + @path(#{ allowReserved: true }) + resourceType: string, + + /** + * The name of the resource. + */ + @path + @pattern("^.+$") + resourceName: string, + + ...ApiVersionParameter, + }, + { + ...Extension.ExtensionProviderNamespace<PolicyAssignment>, + }, + { + ...Extension.ExtensionProviderNamespace<PolicyAssignment>, + ...KeysOf<PolicyAssignment>, + } + > {} + +@armResourceOperations +interface PolicyAssignments { + /** + * This operation retrieves a single policy assignment, given its name and the scope it was created at. + */ + get is Extension.Read< + Extension.ScopeParameter, + PolicyAssignment, + Parameters = { + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + } + >; + + /** + * This operation creates or updates a policy assignment with the given scope and name. Policy assignments apply to all resources contained within their scope. For example, when you assign a policy at resource group scope, that policy applies to all resources in the group. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility" + create is Extension.CreateOrReplaceSync< + Extension.ScopeParameter, + PolicyAssignment, + Response = ArmResourceCreatedSyncResponse<PolicyAssignment> + >; + + /** + * This operation updates a policy assignment with the given scope and name. Policy assignments apply to all resources contained within their scope. For example, when you assign a policy at resource group scope, that policy applies to all resources in the group. + */ + @patch(#{ implicitOptionality: false }) + update is Extension.CustomPatchSync< + Extension.ScopeParameter, + PolicyAssignment, + PatchModel = PolicyAssignmentUpdate + >; + + /** + * This operation deletes a policy assignment, given its name and the scope it was created in. The scope of a policy assignment is the part of its ID preceding '/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'. + */ + delete is Extension.DeleteSync< + Extension.ScopeParameter, + PolicyAssignment, + Response = ArmResponse<PolicyAssignment> | ArmDeletedNoContentResponse + >; + + /** + * This operation retrieves the list of all policy assignments associated with the given resource group in the given subscription that match the optional given $filter. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, the unfiltered list includes all policy assignments associated with the resource group, including those that apply directly or apply from containing scopes, as well as any applied to resources contained within the resource group. If $filter=atScope() is provided, the returned list includes all policy assignments that apply to the resource group, which is everything in the unfiltered list except those applied to resources contained within the resource group. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the resource group. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value} that apply to the resource group. + */ + listForResourceGroup is Extension.ListByTarget< + Extension.ResourceGroup, + PolicyAssignment, + Parameters = PolicyAssignmentListParameters + >; + + /** + * This operation retrieves the list of all policy assignments applicable to the management group that match the given $filter. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter=atScope() is provided, the returned list includes all policy assignments that are assigned to the management group or the management group's ancestors. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the management group. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value} that apply to the management group. + */ + @summary("Retrieves all policy assignments that apply to a management group.") + listForManagementGroup is Extension.ListByTarget< + Extension.ManagementGroup<"managementGroupId">, + PolicyAssignment, + Parameters = PolicyAssignmentListParameters + >; + + /** + * This operation retrieves the list of all policy assignments associated with the given subscription that match the optional given $filter. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, the unfiltered list includes all policy assignments associated with the subscription, including those that apply directly or from management groups that contain the given subscription, as well as any applied to objects contained within the subscription. If $filter=atScope() is provided, the returned list includes all policy assignments that apply to the subscription, which is everything in the unfiltered list except those applied to objects contained within the subscription. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the subscription. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value}. + */ + @summary("Retrieves all policy assignments that apply to a subscription.") + list is Extension.ListByTarget< + Extension.Subscription, + PolicyAssignment, + Parameters = PolicyAssignmentListParameters + >; + + /** + * This operation retrieves the list of all policy assignments associated with the specified resource in the given resource group and subscription that match the optional given $filter. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, the unfiltered list includes all policy assignments associated with the resource, including those that apply directly or from all containing scopes, as well as any applied to resources contained within the resource. If $filter=atScope() is provided, the returned list includes all policy assignments that apply to the resource, which is everything in the unfiltered list except those applied to resources contained within the resource. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the resource level. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value} that apply to the resource. Three parameters plus the resource name are used to identify a specific resource. If the resource is not part of a parent resource (the more common case), the parent resource path should not be provided (or provided as ''). For example a web app could be specified as ({resourceProviderNamespace} == 'Microsoft.Web', {parentResourcePath} == '', {resourceType} == 'sites', {resourceName} == 'MyWebApp'). If the resource is part of a parent resource, then all parameters should be provided. For example a virtual machine DNS name could be specified as ({resourceProviderNamespace} == 'Microsoft.Compute', {parentResourcePath} == 'virtualMachines/MyVirtualMachine', {resourceType} == 'domainNames', {resourceName} == 'MyComputerName'). A convenient alternative to providing the namespace and type name separately is to provide both in the {resourceType} parameter, format: ({resourceProviderNamespace} == '', {parentResourcePath} == '', {resourceType} == 'Microsoft.Web/sites', {resourceName} == 'MyWebApp'). + */ + @summary("Retrieves all policy assignments that apply to a resource.") + @get + listForResource is PolicyAssignmentGenericOps.List< + PolicyAssignment, + PolicyAssignmentListParameters + >; +} + +@@doc(PolicyAssignment.name, "The name of the policy assignment to get."); +@@doc(PolicyAssignment.properties, "Properties for the policy assignment."); +@@doc(PolicyAssignments.create::parameters.resource, + "Parameters for the policy assignment." +); +@@doc(PolicyAssignments.update::parameters.properties, + "Parameters for policy assignment patch request." +); diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicyDefinition.tsp b/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicyDefinition.tsp new file mode 100644 index 000000000000..3282c263e828 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicyDefinition.tsp @@ -0,0 +1,220 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Authorization; +/** + * The policy definition. + */ +@subscriptionResource +model PolicyDefinition + is Azure.ResourceManager.ProxyResource<PolicyDefinitionProperties> { + ...ResourceNameParameter< + Resource = PolicyDefinition, + KeyName = "policyDefinitionName", + SegmentName = "policyDefinitions", + NamePattern = "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + >; +} + +alias PolicyDefinitionOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Authorization"; + }, + {}, + { + /** The name of the policy definition to get. */ + @path + @segment("policyDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policyDefinitionName: string; + } +>; + +alias PolicyDefinitionTenantOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Authorization"; + }, + {}, + { + /** The name of the built-in policy definition to get. */ + @path + @segment("policyDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policyDefinitionName: string; + } +>; + +alias PolicyDefinitionManagementGroupOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Management"; + + /** The ID of the management group. */ + @path + @segment("managementGroups") + @key + managementGroupId: string; + }, + { + ...Extension.ExtensionProviderNamespace<PolicyDefinition>; + }, + { + ...Extension.ExtensionProviderNamespace<PolicyDefinition>; + + /** The name of the policy definition to get. */ + @path + @segment("policyDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policyDefinitionName: string; + } +>; + +@armResourceOperations +interface PolicyDefinitions { + /** + * This operation retrieves the policy definition in the given subscription with the given name. + */ + get is PolicyDefinitionOps.Read<PolicyDefinition>; + + /** + * This operation creates or updates a policy definition in the given subscription with the given name. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility" + createOrUpdate is PolicyDefinitionOps.CreateOrUpdateSync< + PolicyDefinition, + Response = ArmResourceCreatedSyncResponse<PolicyDefinition> + >; + + /** + * This operation deletes the policy definition in the given subscription with the given name. + */ + delete is PolicyDefinitionOps.DeleteSync<PolicyDefinition>; + + /** + * This operation retrieves a list of all the policy definitions in a given subscription that match the optional given $filter. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, the unfiltered list includes all policy definitions associated with the subscription, including those that apply directly or from management groups that contain the given subscription. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given subscription. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}. + */ + list is PolicyDefinitionOps.List< + PolicyDefinition, + Parameters = { + /** + * The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}. + */ + @query("$filter") + $filter?: string; + + /** + * Maximum number of records to return. When the $top filter is not provided, it will return 500 records. + */ + @maxValue(1000) + @minValue(1) + @query("$top") + $top?: int32; + } + >; + + /** + * This operation retrieves the built-in policy definition with the given name. + */ + getBuiltIn is PolicyDefinitionTenantOps.Read<PolicyDefinition>; + + /** + * This operation retrieves a list of all the built-in policy definitions that match the optional given $filter. If $filter='policyType -eq {value}' is provided, the returned list only includes all built-in policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all built-in policy definitions whose category match the {value}. + */ + listBuiltIn is PolicyDefinitionTenantOps.List< + PolicyDefinition, + Parameters = { + /** + * The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}. + */ + @query("$filter") + $filter?: string; + + /** + * Maximum number of records to return. When the $top filter is not provided, it will return 500 records. + */ + @maxValue(1000) + @minValue(1) + @query("$top") + $top?: int32; + } + >; + + /** + * This operation retrieves the policy definition in the given management group with the given name. + */ + getAtManagementGroup is PolicyDefinitionManagementGroupOps.Read<PolicyDefinition>; + + /** + * This operation creates or updates a policy definition in the given management group with the given name. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility" + createOrUpdateAtManagementGroup is PolicyDefinitionManagementGroupOps.CreateOrUpdateSync< + PolicyDefinition, + Response = ArmResourceCreatedSyncResponse<PolicyDefinition> + >; + + /** + * This operation deletes the policy definition in the given management group with the given name. + */ + deleteAtManagementGroup is PolicyDefinitionManagementGroupOps.DeleteSync<PolicyDefinition>; + + /** + * This operation retrieves a list of all the policy definitions in a given management group that match the optional given $filter. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, the unfiltered list includes all policy definitions associated with the management group, including those that apply directly or from management groups that contain the given management group. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given management group. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}. + */ + listByManagementGroup is PolicyDefinitionManagementGroupOps.List< + PolicyDefinition, + Parameters = { + /** + * The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}. + */ + @query("$filter") + $filter?: string; + + /** + * Maximum number of records to return. When the $top filter is not provided, it will return 500 records. + */ + @maxValue(1000) + @minValue(1) + @query("$top") + $top?: int32; + } + >; +} + +@@doc(PolicyDefinition.name, "The name of the policy definition to get."); +@@doc(PolicyDefinition.properties, "The policy definition properties."); +@@doc(PolicyDefinitions.createOrUpdate::parameters.resource, + "The policy definition properties." +); +@@doc(PolicyDefinitions.createOrUpdateAtManagementGroup::parameters.resource, + "The policy definition properties." +); diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicyDefinitionVersion.tsp b/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicyDefinitionVersion.tsp new file mode 100644 index 000000000000..90a1df14af15 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicyDefinitionVersion.tsp @@ -0,0 +1,224 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./PolicyDefinition.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Authorization; +/** + * The ID of the policy definition version. + */ +@subscriptionResource +@parentResource(PolicyDefinition) +model PolicyDefinitionVersion + is Azure.ResourceManager.ProxyResource<PolicyDefinitionVersionProperties> { + ...ResourceNameParameter< + Resource = PolicyDefinitionVersion, + KeyName = "policyDefinitionVersion", + SegmentName = "versions", + NamePattern = "^\\d+\\.\\d+\\.\\d+$" + >; +} + +alias PolicyDefinitionVersionOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Authorization"; + + /** The name of the policy definition. */ + @path + @segment("policyDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policyDefinitionName: string; + }, + {}, + { + /** The policy definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number */ + @path + @segment("versions") + @key + @pattern("^\\d+\\.\\d+\\.\\d+$") + policyDefinitionVersion: string; + } +>; + +alias PolicyDefinitionVersionTenantOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Authorization"; + + /** The name of the policy definition. */ + @path + @segment("policyDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policyDefinitionName: string; + }, + {}, + { + /** The policy definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number */ + @path + @segment("versions") + @key + @pattern("^\\d+\\.\\d+\\.\\d+$") + policyDefinitionVersion: string; + } +>; + +alias PolicyDefinitionVersionManagementGroupOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Management"; + + ...CommonTypes.ManagementGroupNameParameter; + }, + { + ...Extension.ExtensionProviderNamespace<PolicyDefinitionVersion>; + + /** The name of the policy definition. */ + @path + @segment("policyDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policyDefinitionName: string; + }, + { + ...Extension.ExtensionProviderNamespace<PolicyDefinitionVersion>; + + /** The name of the policy definition. */ + @path + @segment("policyDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policyDefinitionName: string; + + /** The policy definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number */ + @path + @segment("versions") + @key + @pattern("^\\d+\\.\\d+\\.\\d+$") + policyDefinitionVersion: string; + } +>; + +@armResourceOperations +interface PolicyDefinitionVersions { + /** + * This operation retrieves the policy definition version in the given subscription with the given name. + */ + get is PolicyDefinitionVersionOps.Read<PolicyDefinitionVersion>; + + /** + * This operation creates or updates a policy definition in the given subscription with the given name. + */ + createOrUpdate is PolicyDefinitionVersionOps.CreateOrUpdateSync<PolicyDefinitionVersion>; + + /** + * This operation deletes the policy definition version in the given subscription with the given name. + */ + delete is PolicyDefinitionVersionOps.DeleteSync<PolicyDefinitionVersion>; + + /** + * This operation retrieves a list of all the policy definition versions for the given policy definition. + */ + list is PolicyDefinitionVersionOps.List< + PolicyDefinitionVersion, + Parameters = { + /** + * Maximum number of records to return. When the $top filter is not provided, it will return 500 records. + */ + @maxValue(1000) + @minValue(1) + @query("$top") + $top?: int32; + } + >; + + /** + * This operation retrieves the built-in policy definition version with the given name. + */ + getBuiltIn is PolicyDefinitionVersionTenantOps.Read<PolicyDefinitionVersion>; + + /** + * This operation retrieves a list of all the built-in policy definition versions for the given policy definition. + */ + listBuiltIn is PolicyDefinitionVersionTenantOps.List< + PolicyDefinitionVersion, + Parameters = { + /** + * Maximum number of records to return. When the $top filter is not provided, it will return 500 records. + */ + @maxValue(1000) + @minValue(1) + @query("$top") + $top?: int32; + } + >; + + /** + * This operation retrieves the policy definition version in the given management group with the given name. + */ + getAtManagementGroup is PolicyDefinitionVersionManagementGroupOps.Read<PolicyDefinitionVersion>; + + /** + * This operation creates or updates a policy definition version in the given management group with the given name. + */ + createOrUpdateAtManagementGroup is PolicyDefinitionVersionManagementGroupOps.CreateOrUpdateSync<PolicyDefinitionVersion>; + + /** + * This operation deletes the policy definition in the given management group with the given name. + */ + deleteAtManagementGroup is PolicyDefinitionVersionManagementGroupOps.DeleteSync<PolicyDefinitionVersion>; + + /** + * This operation retrieves a list of all the policy definition versions for the given policy definition in the given management group. + */ + listByManagementGroup is PolicyDefinitionVersionManagementGroupOps.List< + PolicyDefinitionVersion, + Parameters = { + /** + * Maximum number of records to return. When the $top filter is not provided, it will return 500 records. + */ + @maxValue(1000) + @minValue(1) + @query("$top") + $top?: int32; + } + >; +} + +@@doc(PolicyDefinitionVersion.name, + "The policy definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number" +); +@@doc(PolicyDefinitionVersion.properties, + "The policy definition version properties." +); +@@doc(PolicyDefinitionVersions.createOrUpdate::parameters.resource, + "The policy definition properties." +); +@@doc(PolicyDefinitionVersions.createOrUpdateAtManagementGroup::parameters.resource, + "The policy definition properties." +); diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicySetDefinition.tsp b/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicySetDefinition.tsp new file mode 100644 index 000000000000..d5dad6be1f49 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicySetDefinition.tsp @@ -0,0 +1,259 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Authorization; +/** + * The policy set definition. + */ +@subscriptionResource +model PolicySetDefinition + is Azure.ResourceManager.ProxyResource<PolicySetDefinitionProperties> { + ...ResourceNameParameter< + Resource = PolicySetDefinition, + KeyName = "policySetDefinitionName", + SegmentName = "policySetDefinitions", + NamePattern = "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + >; +} + +alias PolicySetDefinitionOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Authorization"; + }, + {}, + { + /** The name of the policy set definition to get. */ + @path + @segment("policySetDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policySetDefinitionName: string; + } +>; + +alias PolicySetDefinitionTenantOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Authorization"; + }, + {}, + { + /** The name of the policy set definition to get. */ + @path + @segment("policySetDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policySetDefinitionName: string; + } +>; + +alias PolicySetDefinitionManagementGroupOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Management"; + + /** The ID of the management group. */ + @path + @segment("managementGroups") + @key + managementGroupId: string; + }, + { + ...Extension.ExtensionProviderNamespace<PolicySetDefinition>; + }, + { + ...Extension.ExtensionProviderNamespace<PolicySetDefinition>; + + /** The name of the policy set definition to get. */ + @path + @segment("policySetDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policySetDefinitionName: string; + } +>; + +@armResourceOperations +interface PolicySetDefinitions { + /** + * This operation retrieves the policy set definition in the given subscription with the given name. + */ + get is PolicySetDefinitionOps.Read< + PolicySetDefinition, + Parameters = { + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + } + >; + + /** + * This operation creates or updates a policy set definition in the given subscription with the given name. + */ + createOrUpdate is PolicySetDefinitionOps.CreateOrUpdateSync<PolicySetDefinition>; + + /** + * This operation deletes the policy set definition in the given subscription with the given name. + */ + delete is PolicySetDefinitionOps.DeleteSync<PolicySetDefinition>; + + /** + * This operation retrieves a list of all the policy set definitions in a given subscription that match the optional given $filter. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, the unfiltered list includes all policy set definitions associated with the subscription, including those that apply directly or from management groups that contain the given subscription. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given subscription. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn and Custom. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}. + */ + list is PolicySetDefinitionOps.List< + PolicySetDefinition, + Parameters = { + /** + * The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}. + */ + @query("$filter") + $filter?: string; + + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + + /** + * Maximum number of records to return. When the $top filter is not provided, it will return 500 records. + */ + @maxValue(1000) + @minValue(1) + @query("$top") + $top?: int32; + } + >; + + /** + * This operation retrieves the built-in policy set definition with the given name. + */ + getBuiltIn is PolicySetDefinitionTenantOps.Read< + PolicySetDefinition, + Parameters = { + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + } + >; + + /** + * This operation retrieves a list of all the built-in policy set definitions that match the optional given $filter. If $filter='category -eq {value}' is provided, the returned list only includes all built-in policy set definitions whose category match the {value}. + */ + listBuiltIn is PolicySetDefinitionTenantOps.List< + PolicySetDefinition, + Parameters = { + /** + * The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}. + */ + @query("$filter") + $filter?: string; + + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + + /** + * Maximum number of records to return. When the $top filter is not provided, it will return 500 records. + */ + @maxValue(1000) + @minValue(1) + @query("$top") + $top?: int32; + } + >; + + /** + * This operation retrieves the policy set definition in the given management group with the given name. + */ + getAtManagementGroup is PolicySetDefinitionManagementGroupOps.Read< + PolicySetDefinition, + Parameters = { + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + } + >; + + /** + * This operation creates or updates a policy set definition in the given management group with the given name. + */ + createOrUpdateAtManagementGroup is PolicySetDefinitionManagementGroupOps.CreateOrUpdateSync<PolicySetDefinition>; + + /** + * This operation deletes the policy set definition in the given management group with the given name. + */ + deleteAtManagementGroup is PolicySetDefinitionManagementGroupOps.DeleteSync<PolicySetDefinition>; + + /** + * This operation retrieves a list of all the policy set definitions in a given management group that match the optional given $filter. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, the unfiltered list includes all policy set definitions associated with the management group, including those that apply directly or from management groups that contain the given management group. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given management group. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn and Custom. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}. + */ + listByManagementGroup is PolicySetDefinitionManagementGroupOps.List< + PolicySetDefinition, + Parameters = { + /** + * The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}. + */ + @query("$filter") + $filter?: string; + + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + + /** + * Maximum number of records to return. When the $top filter is not provided, it will return 500 records. + */ + @maxValue(1000) + @minValue(1) + @query("$top") + $top?: int32; + } + >; +} + +@@doc(PolicySetDefinition.name, + "The name of the policy set definition to get." +); +@@doc(PolicySetDefinition.properties, "The policy set definition properties."); +@@doc(PolicySetDefinitions.createOrUpdate::parameters.resource, + "The policy set definition properties." +); +@@doc(PolicySetDefinitions.createOrUpdateAtManagementGroup::parameters.resource, + "The policy set definition properties." +); diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicySetDefinitionVersion.tsp b/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicySetDefinitionVersion.tsp new file mode 100644 index 000000000000..d0592ebdd356 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/PolicySetDefinitionVersion.tsp @@ -0,0 +1,269 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./PolicySetDefinition.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Authorization; +/** + * The policy set definition version. + */ +@subscriptionResource +@parentResource(PolicySetDefinition) +model PolicySetDefinitionVersion + is Azure.ResourceManager.ProxyResource<PolicySetDefinitionVersionProperties> { + ...ResourceNameParameter< + Resource = PolicySetDefinitionVersion, + KeyName = "policyDefinitionVersion", + SegmentName = "versions", + NamePattern = "^\\d+\\.\\d+\\.\\d+$" + >; +} + +alias PolicySetDefinitionVersionOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Authorization"; + + /** The name of the policy set definition. */ + @path + @segment("policySetDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policySetDefinitionName: string; + }, + {}, + { + /** The policy set definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number */ + @path + @segment("versions") + @key + @pattern("^\\d+\\.\\d+\\.\\d+$") + policyDefinitionVersion: string; + } +>; + +alias PolicySetDefinitionVersionTenantOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Authorization"; + + /** The name of the policy set definition. */ + @path + @segment("policySetDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policySetDefinitionName: string; + }, + {}, + { + /** The policy set definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number */ + @path + @segment("versions") + @key + @pattern("^\\d+\\.\\d+\\.\\d+$") + policyDefinitionVersion: string; + } +>; + +alias PolicySetDefinitionVersionManagementGroupOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Management"; + + ...CommonTypes.ManagementGroupNameParameter; + }, + { + ...Extension.ExtensionProviderNamespace<PolicySetDefinitionVersion>; + + /** The name of the policy set definition. */ + @path + @segment("policySetDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policySetDefinitionName: string; + }, + { + ...Extension.ExtensionProviderNamespace<PolicySetDefinitionVersion>; + + /** The name of the policy set definition. */ + @path + @segment("policySetDefinitions") + @key + @pattern("^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$") + policySetDefinitionName: string; + + /** The policy set definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number */ + @path + @segment("versions") + @key + @pattern("^\\d+\\.\\d+\\.\\d+$") + policyDefinitionVersion: string; + } +>; + +@armResourceOperations +interface PolicySetDefinitionVersions { + /** + * This operation retrieves the policy set definition version in the given subscription with the given name and version. + */ + get is PolicySetDefinitionVersionOps.Read< + PolicySetDefinitionVersion, + Parameters = { + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + } + >; + + /** + * This operation creates or updates a policy set definition version in the given subscription with the given name and version. + */ + createOrUpdate is PolicySetDefinitionVersionOps.CreateOrUpdateSync<PolicySetDefinitionVersion>; + + /** + * This operation deletes the policy set definition version in the given subscription with the given name and version. + */ + delete is PolicySetDefinitionVersionOps.DeleteSync<PolicySetDefinitionVersion>; + + /** + * This operation retrieves a list of all the policy set definition versions for the given policy set definition. + */ + list is PolicySetDefinitionVersionOps.List< + PolicySetDefinitionVersion, + Parameters = { + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + + /** + * Maximum number of records to return. When the $top filter is not provided, it will return 500 records. + */ + @maxValue(1000) + @minValue(1) + @query("$top") + $top?: int32; + } + >; + + /** + * This operation retrieves the built-in policy set definition version with the given name and version. + */ + getBuiltIn is PolicySetDefinitionVersionTenantOps.Read< + PolicySetDefinitionVersion, + Parameters = { + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + } + >; + + /** + * This operation retrieves a list of all the built-in policy set definition versions for the given built-in policy set definition. + */ + listBuiltIn is PolicySetDefinitionVersionTenantOps.List< + PolicySetDefinitionVersion, + Parameters = { + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + + /** + * Maximum number of records to return. When the $top filter is not provided, it will return 500 records. + */ + @maxValue(1000) + @minValue(1) + @query("$top") + $top?: int32; + } + >; + + /** + * This operation retrieves the policy set definition version in the given management group with the given name and version. + */ + getAtManagementGroup is PolicySetDefinitionVersionManagementGroupOps.Read< + PolicySetDefinitionVersion, + Parameters = { + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + } + >; + + /** + * This operation creates or updates a policy set definition version in the given management group with the given name and version. + */ + createOrUpdateAtManagementGroup is PolicySetDefinitionVersionManagementGroupOps.CreateOrUpdateSync<PolicySetDefinitionVersion>; + + /** + * This operation deletes the policy set definition version in the given management group with the given name and version. + */ + deleteAtManagementGroup is PolicySetDefinitionVersionManagementGroupOps.DeleteSync<PolicySetDefinitionVersion>; + + /** + * This operation retrieves a list of all the policy set definition versions for the given policy set definition in a given management group. + */ + listByManagementGroup is PolicySetDefinitionVersionManagementGroupOps.List< + PolicySetDefinitionVersion, + Parameters = { + /** + * Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'. + */ + @query("$expand") + $expand?: string; + + /** + * Maximum number of records to return. When the $top filter is not provided, it will return 500 records. + */ + @maxValue(1000) + @minValue(1) + @query("$top") + $top?: int32; + } + >; +} + +@@doc(PolicySetDefinitionVersion.name, + "The policy set definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number" +); +@@doc(PolicySetDefinitionVersion.properties, + "The policy set definition version properties." +); +@@doc(PolicySetDefinitionVersions.createOrUpdate::parameters.resource, + "The policy set definition properties." +); +@@doc(PolicySetDefinitionVersions.createOrUpdateAtManagementGroup::parameters.resource, + "The policy set definition version properties." +); diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/back-compatible.tsp b/specification/resources/resource-manager/Microsoft.Authorization/policy/back-compatible.tsp new file mode 100644 index 000000000000..771080ec25a7 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/back-compatible.tsp @@ -0,0 +1,74 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Microsoft.Authorization; + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(PolicyAssignmentUpdate.properties); + +@@clientName(PolicyAssignments.create::parameters.resource, "parameters"); +@@clientName(PolicyAssignments.update::parameters.properties, "parameters"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(PolicyAssignment.properties); + +@@clientName(PolicyDefinitions.createOrUpdate::parameters.resource, + "parameters" +); +@@clientName(PolicyDefinitions.createOrUpdateAtManagementGroup::parameters.resource, + "parameters" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(PolicyDefinition.properties); + +@@clientName(PolicyDefinitionVersions.createOrUpdate::parameters.resource, + "parameters" +); +@@clientName(PolicyDefinitionVersions.createOrUpdateAtManagementGroup::parameters.resource, + "parameters" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(PolicyDefinitionVersion.properties); + +@@clientName(PolicySetDefinitions.createOrUpdate::parameters.resource, + "parameters" +); +@@clientName(PolicySetDefinitions.createOrUpdateAtManagementGroup::parameters.resource, + "parameters" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(PolicySetDefinition.properties); + +@@clientName(PolicySetDefinitionVersions.createOrUpdate::parameters.resource, + "parameters" +); +@@clientName(PolicySetDefinitionVersions.createOrUpdateAtManagementGroup::parameters.resource, + "parameters" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(PolicySetDefinitionVersion.properties); + +@@clientLocation(PolicyDefinitionVersionsOperationGroup.listAllBuiltins, + PolicyDefinitionVersions +); +@@clientLocation(PolicyDefinitionVersionsOperationGroup.listAllAtManagementGroup, + PolicyDefinitionVersions +); +@@clientLocation(PolicyDefinitionVersionsOperationGroup.listAll, + PolicyDefinitionVersions +); + +@@clientLocation(PolicySetDefinitionVersionsOperationGroup.listAllBuiltins, + PolicySetDefinitionVersions +); +@@clientLocation(PolicySetDefinitionVersionsOperationGroup.listAllAtManagementGroup, + PolicySetDefinitionVersions +); +@@clientLocation(PolicySetDefinitionVersionsOperationGroup.listAll, + PolicySetDefinitionVersions +); + +@@clientLocation(PolicyTokensOperationGroup.acquire, "PolicyTokens"); +@@clientLocation(PolicyTokensOperationGroup.acquireAtManagementGroup, + "PolicyTokens" +); +@@clientName(PolicyTokensOperationGroup.acquire::parameters.body, "parameters"); diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/client.tsp b/specification/resources/resource-manager/Microsoft.Authorization/policy/client.tsp new file mode 100644 index 000000000000..5d07196314ae --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/client.tsp @@ -0,0 +1,90 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-client-generator-core"; +import "./main.tsp"; + +using Azure.ClientGenerator.Core; +using Azure.ResourceManager; +using TypeSpec.Http; + +/** + * To manage and control access to your resources, you can define customized policies and assign them at a scope. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint" "For client" +namespace Microsoft.Authorization { + alias PolicyAssignmentIdParameter = { + /** + * The ID of the policy assignment to get. Use the format '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'. + */ + @path policyAssignmentId: string; + }; + + /** + * The operation retrieves the policy assignment with the given ID. Policy assignment IDs have this format: '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "For client" + @summary("Retrieves the policy assignment with the given ID.") + @scope("java") + @clientLocation(PolicyAssignments) + @get + @route("/{+policyAssignmentId}") + op getById( + ...PolicyAssignmentIdParameter, + ...Azure.Core.Foundations.ApiVersionParameter, + ): PolicyAssignment | ErrorResponse; + + /** + * This operation creates or updates the policy assignment with the given ID. Policy assignments made on a scope apply to all resources contained in that scope. For example, when you assign a policy to a resource group that policy applies to all resources in the group. Policy assignment IDs have this format: '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "For client" + @summary("Creates or updates a policy assignment.") + @scope("java") + @clientLocation(PolicyAssignments) + @put + @route("/{+policyAssignmentId}") + op createById( + ...PolicyAssignmentIdParameter, + + /** + * Parameters for policy assignment. + */ + @bodyRoot parameters: PolicyAssignment, + + ...Azure.Core.Foundations.ApiVersionParameter, + ): ArmResourceCreatedSyncResponse<PolicyAssignment> | ErrorResponse; + + /** + * This operation updates the policy assignment with the given ID. Policy assignments made on a scope apply to all resources contained in that scope. For example, when you assign a policy to a resource group that policy applies to all resources in the group. Policy assignment IDs have this format: '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "For client" + #suppress "@typespec/http/patch-implicit-optional" "For client" + @summary("Updates a policy assignment.") + @scope("java") + @clientLocation(PolicyAssignments) + @patch + @route("/{+policyAssignmentId}") + op updateById( + ...PolicyAssignmentIdParameter, + + /** + * Parameters for policy assignment patch request. + */ + @bodyRoot parameters: PolicyAssignmentUpdate, + + ...Azure.Core.Foundations.ApiVersionParameter, + ): PolicyAssignment | ErrorResponse; + + /** + * This operation deletes the policy with the given ID. Policy assignment IDs have this format: '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'. Valid formats for {scope} are: '/providers/Microsoft.Management/managementGroups/{managementGroup}' (management group), '/subscriptions/{subscriptionId}' (subscription), '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' (resource group), or '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}' (resource). + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "For client" + @summary("Deletes a policy assignment.") + @scope("java") + @clientLocation(PolicyAssignments) + @delete + @route("/{+policyAssignmentId}") + op deleteById( + ...PolicyAssignmentIdParameter, + ...Azure.Core.Foundations.ApiVersionParameter, + ): PolicyAssignment | ArmDeletedNoContentResponse | ErrorResponse; +} +@@clientName(Microsoft.Authorization, "PolicyClient", "javascript,python"); diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/acquirePolicyToken.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/acquirePolicyToken.json new file mode 100644 index 000000000000..b91d59b10de2 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/acquirePolicyToken.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "operation": { + "httpMethod": "delete", + "uri": "https://management.azure.com/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM?api-version=2024-01-01" + } + }, + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "expiration": "2025-01-01T21:30:00.00Z", + "result": "Succeeded", + "results": [ + { + "claims": { + "date": "2025-01-01T19:30:00.00Z", + "double": 0.99, + "int": 2, + "isValid": false, + "string": "testString", + "testArray": [ + "Apple", + "Banana", + "Cherry" + ], + "testObject": { + "name": "Complex Object", + "id": 12345, + "details": { + "createdBy": "John Doe", + "createdDate": "2024-12-13T12:00:00Z", + "metadata": { + "isActive": true, + "tags": [ + "example", + "test", + "object" + ], + "version": "1.0.0" + } + } + } + }, + "expiration": "2025-01-01T21:30:00.00Z", + "message": "Coin flip successful (success probability: '1').", + "policyInfo": { + "policyAssignmentId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/3f2def86", + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/5ed64d02" + }, + "result": "Succeeded" + } + ], + "token": "PoP 7zmVse52pjMKPQd5m2uiNjz5UV2pZ.LPGtRiTeuCDBomEVbzj9kIaL9odEmlNv4D9VzyrQLTAyv4HHnUR7oNytWnL.AQrZ5bSGAQZzr8eySqvugzrD-ceRVL311SL3Nn6f-4c9kgPgU_u1ArXQKW25QCxMlsAuWmaE", + "tokenId": "0da8a969-c660-4de0-a6a4-b2034d4325e4" + } + } + }, + "operationId": "PolicyTokens_Acquire", + "title": "Acquire a policy token" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/acquirePolicyTokenAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/acquirePolicyTokenAtManagementGroup.json new file mode 100644 index 000000000000..b4d77d1c792d --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/acquirePolicyTokenAtManagementGroup.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup", + "parameters": { + "operation": { + "httpMethod": "delete", + "uri": "https://management.azure.com/providers/Microsoft.Management/managementGroups/MyManagementGroup/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000?api-version=2022-04-01" + } + } + }, + "responses": { + "200": { + "body": { + "expiration": "2025-01-01T21:30:00.00Z", + "result": "Succeeded", + "results": [ + { + "claims": { + "date": "2025-01-01T19:30:00.00Z", + "double": 0.99, + "int": 2, + "isValid": false, + "string": "testString", + "testArray": [ + "Apple", + "Banana", + "Cherry" + ], + "testObject": { + "name": "Complex Object", + "id": 12345, + "details": { + "createdBy": "John Doe", + "createdDate": "2024-12-13T12:00:00Z", + "metadata": { + "isActive": true, + "tags": [ + "example", + "test", + "object" + ], + "version": "1.0.0" + } + } + } + }, + "expiration": "2025-01-01T21:30:00.00Z", + "message": "Coin flip successful (success probability: '1').", + "policyInfo": { + "policyAssignmentId": "/providers/Microsoft.Management/managementGroups/MyManagementGroup/providers/Microsoft.Authorization/policyAssignments/3f2def86", + "policyDefinitionId": "/providers/Microsoft.Management/managementGroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/5ed64d02" + }, + "result": "Succeeded" + } + ], + "token": "PoP 7zmVse52pjMKPQd5m2uiNjz5UV2pZ.LPGtRiTeuCDBomEVbzj9kIaL9odEmlNv4D9VzyrQLTAyv4HHnUR7oNytWnL.AQrZ5bSGAQZzr8eySqvugzrD-ceRVL311SL3Nn6f-4c9kgPgU_u1ArXQKW25QCxMlsAuWmaE", + "tokenId": "0da8a969-c660-4de0-a6a4-b2034d4325e4" + } + } + }, + "operationId": "PolicyTokens_AcquireAtManagementGroup", + "title": "Acquire a policy token at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinition.json new file mode 100644 index 000000000000..91438d92bc62 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinition.json @@ -0,0 +1,97 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "description": "Force resource names to begin with given 'prefix' and/or end with given 'suffix'", + "displayName": "Enforce resource naming convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + } + } + }, + "policyDefinitionName": "ResourceNaming", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "201": { + "body": { + "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitions_CreateOrUpdate", + "title": "Create or update a policy definition" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionAdvancedParams.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionAdvancedParams.json new file mode 100644 index 000000000000..58db388be568 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionAdvancedParams.json @@ -0,0 +1,124 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "description": "Audit enabling of logs and retain them up to a year. This enables recreation of activity trails for investigation purposes when a security incident occurs or your network is compromised", + "displayName": "Event Hubs should have diagnostic logging enabled", + "metadata": { + "category": "Event Hub" + }, + "mode": "Indexed", + "parameters": { + "requiredRetentionDays": { + "type": "Integer", + "allowedValues": [ + 0, + 30, + 90, + 180, + 365 + ], + "defaultValue": 365, + "metadata": { + "description": "The required diagnostic logs retention in days", + "displayName": "Required retention (days)" + } + } + }, + "policyRule": { + "if": { + "equals": "Microsoft.EventHub/namespaces", + "field": "type" + }, + "then": { + "effect": "AuditIfNotExists", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "existenceCondition": { + "allOf": [ + { + "equals": "true", + "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.enabled" + }, + { + "equals": "[parameters('requiredRetentionDays')]", + "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.days" + } + ] + } + } + } + } + } + }, + "policyDefinitionName": "EventHubDiagnosticLogs", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "201": { + "body": { + "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "properties": { + "description": "Audit enabling of logs and retain them up to a year. This enables recreation of activity trails for investigation purposes when a security incident occurs or your network is compromised", + "displayName": "Event Hubs should have diagnostic logging enabled", + "metadata": { + "category": "Event Hub" + }, + "mode": "Indexed", + "parameters": { + "requiredRetentionDays": { + "type": "Integer", + "allowedValues": [ + 0, + 30, + 90, + 180, + 365 + ], + "defaultValue": 365, + "metadata": { + "description": "The required diagnostic logs retention in days", + "displayName": "Required retention (days)" + } + } + }, + "policyRule": { + "if": { + "equals": "Microsoft.EventHub/namespaces", + "field": "type" + }, + "then": { + "effect": "AuditIfNotExists", + "details": { + "type": "Microsoft.Insights/diagnosticSettings", + "existenceCondition": { + "allOf": [ + { + "equals": "true", + "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.enabled" + }, + { + "equals": "[parameters('requiredRetentionDays')]", + "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.days" + } + ] + } + } + } + }, + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitions_CreateOrUpdate", + "title": "Create or update a policy definition with advanced parameters" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionAtManagementGroup.json new file mode 100644 index 000000000000..140f26107013 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionAtManagementGroup.json @@ -0,0 +1,97 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup", + "parameters": { + "properties": { + "description": "Force resource names to begin with given 'prefix' and/or end with given 'suffix'", + "displayName": "Enforce resource naming convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + } + } + }, + "policyDefinitionName": "ResourceNaming" + }, + "responses": { + "201": { + "body": { + "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitions_CreateOrUpdateAtManagementGroup", + "title": "Create or update a policy definition at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionExternalEvaluationEnforcementSettings.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionExternalEvaluationEnforcementSettings.json new file mode 100644 index 000000000000..66a1862463c8 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionExternalEvaluationEnforcementSettings.json @@ -0,0 +1,109 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "description": "Randomly disable VM allocation in eastus by having policy rule reference the outcome of invoking an external endpoint using the CoinFlip endpoint that returns random values.", + "displayName": "Randomize VM Allocation", + "externalEvaluationEnforcementSettings": { + "endpointSettings": { + "kind": "CoinFlip", + "details": { + "successProbability": 0.5 + } + }, + "missingTokenAction": "audit", + "roleDefinitionIds": [ + "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/roleDefinitions/f0cc2aea-b517-48f6-8f9e-0c01c687907b" + ] + }, + "metadata": { + "category": "VM" + }, + "mode": "Indexed", + "policyRule": { + "if": { + "allOf": [ + { + "equals": "Microsoft.Compute/virtualMachines", + "field": "type" + }, + { + "equals": "eastus", + "field": "location" + }, + { + "equals": "false", + "value": "[claims().isValid]" + } + ] + }, + "then": { + "effect": "deny" + } + } + } + }, + "policyDefinitionName": "RandomizeVMAllocation", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "201": { + "body": { + "name": "RandomizeVMAllocation", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/RandomizeVMAllocation", + "properties": { + "description": "Randomly disable VM allocation in eastus by having policy rule reference the outcome of invoking an external endpoint using the CoinFlip endpoint that returns random values.", + "displayName": "Randomize VM Allocation", + "externalEvaluationEnforcementSettings": { + "endpointSettings": { + "kind": "CoinFlip", + "details": { + "successProbability": 0.5 + } + }, + "missingTokenAction": "audit", + "roleDefinitionIds": [ + "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/roleDefinitions/f0cc2aea-b517-48f6-8f9e-0c01c687907b" + ] + }, + "metadata": { + "category": "VM" + }, + "mode": "Indexed", + "policyRule": { + "if": { + "allOf": [ + { + "equals": "Microsoft.Compute/virtualMachines", + "field": "type" + }, + { + "equals": "eastus", + "field": "location" + }, + { + "equals": "false", + "value": "[claims().isValid]" + } + ] + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitions_CreateOrUpdate", + "title": "Create or update a policy definition with external evaluation enforcement settings" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionVersion.json new file mode 100644 index 000000000000..5bbb045374f8 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionVersion.json @@ -0,0 +1,140 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "description": "Force resource names to begin with given 'prefix' and/or end with given 'suffix'", + "displayName": "Enforce resource naming convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "version": "1.2.1" + } + }, + "policyDefinitionName": "ResourceNaming", + "policyDefinitionVersion": "1.2.1", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + "headers": {} + }, + "201": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitionVersions_CreateOrUpdate", + "title": "Create or update a policy definition version" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionVersionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionVersionAtManagementGroup.json new file mode 100644 index 000000000000..ccc91d11b970 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicyDefinitionVersionAtManagementGroup.json @@ -0,0 +1,140 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup", + "parameters": { + "properties": { + "description": "Force resource names to begin with given 'prefix' and/or end with given 'suffix'", + "displayName": "Enforce resource naming convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "version": "1.2.1" + } + }, + "policyDefinitionName": "ResourceNaming", + "policyDefinitionVersion": "1.2.1" + }, + "responses": { + "200": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + "headers": {} + }, + "201": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitionVersions_CreateOrUpdateAtManagementGroup", + "title": "Create or update a policy definition version at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinition.json new file mode 100644 index 000000000000..0dd02b6ce0ba --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinition.json @@ -0,0 +1,162 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "parameters": { + "namePrefix": { + "type": "String", + "defaultValue": "myPrefix", + "metadata": { + "displayName": "Prefix to enforce on resource names" + } + } + }, + "policyDefinitions": [ + { + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "parameters": { + "prefix": { + "value": "[parameters('namePrefix')]" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ] + } + }, + "policySetDefinitionName": "CostManagement", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "parameters": { + "namePrefix": { + "type": "String", + "defaultValue": "myPrefix", + "metadata": { + "displayName": "Prefix to enforce on resource names" + } + } + }, + "policyDefinitions": [ + { + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "parameters": { + "prefix": { + "value": "[parameters('namePrefix')]" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ] + } + }, + "headers": {} + }, + "201": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "parameters": { + "namePrefix": { + "type": "String", + "defaultValue": "myPrefix", + "metadata": { + "displayName": "Prefix to enforce on resource names" + } + } + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "[parameters('namePrefix')]" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitions_CreateOrUpdate", + "title": "Create or update a policy set definition" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionAtManagementGroup.json new file mode 100644 index 000000000000..adf5a31305ef --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionAtManagementGroup.json @@ -0,0 +1,137 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup", + "parameters": { + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ] + } + }, + "policySetDefinitionName": "CostManagement" + }, + "responses": { + "200": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ] + } + }, + "headers": {} + }, + "201": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitions_CreateOrUpdateAtManagementGroup", + "title": "Create or update a policy set definition at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionVersion.json new file mode 100644 index 000000000000..f1aa0608b1db --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionVersion.json @@ -0,0 +1,163 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "parameters": { + "namePrefix": { + "type": "String", + "defaultValue": "myPrefix", + "metadata": { + "displayName": "Prefix to enforce on resource names" + } + } + }, + "policyDefinitions": [ + { + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "parameters": { + "prefix": { + "value": "[parameters('namePrefix')]" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1" + } + }, + "policyDefinitionVersion": "1.2.1", + "policySetDefinitionName": "CostManagement", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "parameters": { + "namePrefix": { + "type": "String", + "defaultValue": "myPrefix", + "metadata": { + "displayName": "Prefix to enforce on resource names" + } + } + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "[parameters('namePrefix')]" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1" + } + }, + "headers": {} + }, + "201": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "parameters": { + "namePrefix": { + "type": "String", + "defaultValue": "myPrefix", + "metadata": { + "displayName": "Prefix to enforce on resource names" + } + } + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "[parameters('namePrefix')]" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1" + } + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitionVersions_CreateOrUpdate", + "title": "Create or update a policy set definition version" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionVersionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionVersionAtManagementGroup.json new file mode 100644 index 000000000000..079604c3768d --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionVersionAtManagementGroup.json @@ -0,0 +1,135 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup", + "parameters": { + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1" + } + }, + "policyDefinitionVersion": "1.2.1", + "policySetDefinitionName": "CostManagement" + }, + "responses": { + "200": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ] + } + }, + "headers": {} + }, + "201": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1" + } + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitionVersions_CreateOrUpdateAtManagementGroup", + "title": "Create or update a policy set definition version at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionWithGroups.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionWithGroups.json new file mode 100644 index 000000000000..4bc6d042bb4a --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionWithGroups.json @@ -0,0 +1,198 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitionGroups": [ + { + "name": "CostSaving", + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" + }, + { + "name": "Organizational", + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" + } + ], + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "groupNames": [ + "CostSaving" + ], + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "groupNames": [ + "Organizational" + ], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ] + } + }, + "policySetDefinitionName": "CostManagement", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitionGroups": [ + { + "name": "CostSaving", + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" + }, + { + "name": "Organizational", + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" + } + ], + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "groupNames": [ + "CostSaving" + ], + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "groupNames": [ + "Organizational" + ], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + }, + "201": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitionGroups": [ + { + "name": "CostSaving", + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" + }, + { + "name": "Organizational", + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" + } + ], + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "groupNames": [ + "CostSaving" + ], + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "groupNames": [ + "Organizational" + ], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitions_CreateOrUpdate", + "title": "Create or update a policy set definition with groups" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionWithGroupsAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionWithGroupsAtManagementGroup.json new file mode 100644 index 000000000000..e5e142d22577 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createOrUpdatePolicySetDefinitionWithGroupsAtManagementGroup.json @@ -0,0 +1,196 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup", + "parameters": { + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitionGroups": [ + { + "name": "CostSaving", + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" + }, + { + "name": "Organizational", + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" + } + ], + "policyDefinitions": [ + { + "groupNames": [ + "CostSaving" + ], + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "groupNames": [ + "Organizational" + ], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ] + } + }, + "policySetDefinitionName": "CostManagement" + }, + "responses": { + "200": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitionGroups": [ + { + "name": "CostSaving", + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" + }, + { + "name": "Organizational", + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" + } + ], + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "groupNames": [ + "CostSaving" + ], + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "groupNames": [ + "Organizational" + ], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + }, + "201": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitionGroups": [ + { + "name": "CostSaving", + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" + }, + { + "name": "Organizational", + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" + } + ], + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "groupNames": [ + "CostSaving" + ], + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "groupNames": [ + "Organizational" + ], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitions_CreateOrUpdateAtManagementGroup", + "title": "Create or update a policy set definition with groups at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignment.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignment.json new file mode 100644 index 000000000000..0d8381c1a2e1 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignment.json @@ -0,0 +1,68 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "displayName": "Enforce resource naming rules", + "metadata": { + "assignedBy": "Special Someone" + }, + "nonComplianceMessages": [ + { + "message": "Resource names must start with 'DeptA' and end with '-LC'." + } + ], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming" + } + }, + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "201": { + "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", + "metadata": { + "assignedBy": "Special Someone" + }, + "nonComplianceMessages": [ + { + "message": "Resource names must start with 'DeptA' and end with '-LC'." + } + ], + "notScopes": [], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentNonComplianceMessages.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentNonComplianceMessages.json new file mode 100644 index 000000000000..506a0db6ad8e --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentNonComplianceMessages.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "displayName": "Enforce security policies", + "nonComplianceMessages": [ + { + "message": "Resources must comply with all internal security policies. See <internal site URL> for more info." + }, + { + "message": "Resource names must start with 'DeptA' and end with '-LC'.", + "policyDefinitionReferenceId": "10420126870854049575" + }, + { + "message": "Storage accounts must have firewall rules configured.", + "policyDefinitionReferenceId": "8572513655450389710" + } + ], + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/securityInitiative" + } + }, + "policyAssignmentName": "securityInitAssignment", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "201": { + "body": { + "name": "securityInitAssignment", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/securityInitAssignment", + "properties": { + "definitionVersion": "1.*.*", + "displayName": "Enforce security policies", + "enforcementMode": "Default", + "instanceId": "b7e0f8a9-1c2d-4e3f-8b4c-5d6e7f8a9b0c", + "metadata": { + "assignedBy": "User 1" + }, + "nonComplianceMessages": [ + { + "message": "Resources must comply with all internal security policies. See <internal site URL> for more info." + }, + { + "message": "Resource names must start with 'DeptA' and end with '-LC'.", + "policyDefinitionReferenceId": "10420126870854049575" + }, + { + "message": "Storage accounts must have firewall rules configured.", + "policyDefinitionReferenceId": "8572513655450389710" + } + ], + "notScopes": [], + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/securityInitiative", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment with multiple non-compliance messages" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithEnrollEnforcement.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithEnrollEnforcement.json new file mode 100644 index 000000000000..f14af10acda8 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithEnrollEnforcement.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Enroll", + "metadata": { + "assignedBy": "Special Someone" + }, + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming" + } + }, + "policyAssignmentName": "EnforceNamingEnroll", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "201": { + "body": { + "name": "EnforceNamingEnroll", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNamingEnroll", + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Enroll", + "instanceId": "f2b3c4d5-e6f7-8a9b-0c1d-2e3f4a5b6c7d", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment to enforce policy effect only on enrolled resources during resource creation or update." +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithIdentity.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithIdentity.json new file mode 100644 index 000000000000..1ff9945511b9 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithIdentity.json @@ -0,0 +1,69 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "identity": { + "type": "SystemAssigned" + }, + "location": "eastus", + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "metadata": { + "assignedBy": "Foo Bar" + }, + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming" + } + }, + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "201": { + "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "identity": { + "type": "SystemAssigned", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", + "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" + }, + "location": "eastus", + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment with a system assigned identity" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithOverrides.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithOverrides.json new file mode 100644 index 000000000000..7ef5947130af --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithOverrides.json @@ -0,0 +1,86 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", + "metadata": { + "assignedBy": "Special Someone" + }, + "overrides": [ + { + "kind": "policyEffect", + "selectors": [ + { + "in": [ + "Limit_Skus", + "Limit_Locations" + ], + "kind": "policyDefinitionReferenceId" + } + ], + "value": "Audit" + }, + { + "kind": "definitionVersion", + "selectors": [ + { + "in": [ + "eastUSEuap", + "centralUSEuap" + ], + "kind": "resourceLocation" + } + ], + "value": "2.*.*" + } + ], + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement" + } + }, + "policyAssignmentName": "CostManagement", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "201": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", + "properties": { + "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", + "enforcementMode": "Default", + "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "overrides": [ + { + "kind": "policyEffect", + "selectors": [ + { + "in": [ + "Limit_Skus", + "Limit_Locations" + ], + "kind": "policyDefinitionReferenceId" + } + ], + "value": "Audit" + } + ], + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment with overrides" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithResourceSelectors.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithResourceSelectors.json new file mode 100644 index 000000000000..3bfb7303f6ec --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithResourceSelectors.json @@ -0,0 +1,70 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "description": "Limit the resource location and resource SKU", + "displayName": "Limit the resource location and resource SKU", + "metadata": { + "assignedBy": "Special Someone" + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "resourceSelectors": [ + { + "name": "SDPRegions", + "selectors": [ + { + "in": [ + "eastus2euap", + "centraluseuap" + ], + "kind": "resourceLocation" + } + ] + } + ] + } + }, + "policyAssignmentName": "CostManagement", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "201": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", + "properties": { + "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", + "enforcementMode": "Default", + "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "resourceSelectors": [ + { + "name": "SDPRegions", + "selectors": [ + { + "in": [ + "eastus2euap", + "centraluseuap" + ], + "kind": "resourceLocation" + } + ] + } + ], + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment with resource selectors" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithUserAssignedIdentity.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithUserAssignedIdentity.json new file mode 100644 index 000000000000..765add88100a --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithUserAssignedIdentity.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": {} + } + }, + "location": "eastus", + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "metadata": { + "assignedBy": "Foo Bar" + }, + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming" + } + }, + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "201": { + "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": { + "clientId": "4bee2b8a-1bee-47c2-90e9-404241551135", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a" + } + } + }, + "location": "eastus", + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment with a user assigned identity" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithoutEnforcement.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithoutEnforcement.json new file mode 100644 index 000000000000..61d6cd45f59d --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/createPolicyAssignmentWithoutEnforcement.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "displayName": "Enforce resource naming rules", + "enforcementMode": "DoNotEnforce", + "metadata": { + "assignedBy": "Special Someone" + }, + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming" + } + }, + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "201": { + "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "DoNotEnforce", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment without enforcing policy effect during resource creation or update." +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyAssignment.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyAssignment.json new file mode 100644 index 000000000000..e03b67b96c17 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyAssignment.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + }, + "204": { + "headers": {} + } + }, + "operationId": "PolicyAssignments_Delete", + "title": "Delete a policy assignment" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinition.json new file mode 100644 index 000000000000..7576285efdb7 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinition.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyDefinitionName": "ResourceNaming", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "headers": {} + }, + "204": { + "headers": {} + } + }, + "operationId": "PolicyDefinitions_Delete", + "title": "Delete a policy definition" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinitionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinitionAtManagementGroup.json new file mode 100644 index 000000000000..228df971b91a --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinitionAtManagementGroup.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup", + "policyDefinitionName": "ResourceNaming" + }, + "responses": { + "200": { + "headers": {} + }, + "204": { + "headers": {} + } + }, + "operationId": "PolicyDefinitions_DeleteAtManagementGroup", + "title": "Delete a policy definition at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinitionVersion.json new file mode 100644 index 000000000000..d41ae43ef4ce --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinitionVersion.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyDefinitionName": "ResourceNaming", + "policyDefinitionVersion": "1.2.1", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "headers": {} + }, + "204": { + "headers": {} + } + }, + "operationId": "PolicyDefinitionVersions_Delete", + "title": "Delete a policy definition version" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinitionVersionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinitionVersionAtManagementGroup.json new file mode 100644 index 000000000000..b841e31494c2 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicyDefinitionVersionAtManagementGroup.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup", + "policyDefinitionName": "ResourceNaming", + "policyDefinitionVersion": "1.2.1" + }, + "responses": { + "200": { + "headers": {} + }, + "204": { + "headers": {} + } + }, + "operationId": "PolicyDefinitionVersions_DeleteAtManagementGroup", + "title": "Delete a policy definition version at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinition.json new file mode 100644 index 000000000000..93388f84fcd0 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinition.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policySetDefinitionName": "CostManagement", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "headers": {} + }, + "204": { + "headers": {} + } + }, + "operationId": "PolicySetDefinitions_Delete", + "title": "Delete a policy set definition" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinitionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinitionAtManagementGroup.json new file mode 100644 index 000000000000..18888ec78cf8 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinitionAtManagementGroup.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup", + "policySetDefinitionName": "CostManagement" + }, + "responses": { + "200": { + "headers": {} + }, + "204": { + "headers": {} + } + }, + "operationId": "PolicySetDefinitions_DeleteAtManagementGroup", + "title": "Delete a policy set definition at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinitionVersion.json new file mode 100644 index 000000000000..29dc54f08816 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinitionVersion.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyDefinitionVersion": "1.2.1", + "policySetDefinitionName": "CostManagement", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "headers": {} + }, + "204": { + "headers": {} + } + }, + "operationId": "PolicySetDefinitionVersions_Delete", + "title": "Delete a policy set definition version" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinitionVersionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinitionVersionAtManagementGroup.json new file mode 100644 index 000000000000..cc00c62a0f06 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/deletePolicySetDefinitionVersionAtManagementGroup.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup", + "policyDefinitionVersion": "1.2.1", + "policySetDefinitionName": "CostManagement" + }, + "responses": { + "200": { + "headers": {} + }, + "204": { + "headers": {} + } + }, + "operationId": "PolicySetDefinitionVersions_DeleteAtManagementGroup", + "title": "Delete a policy set definition version at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltInPolicySetDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltInPolicySetDefinition.json new file mode 100644 index 000000000000..e003a337577d --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltInPolicySetDefinition.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policySetDefinitionName": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8" + }, + "responses": { + "200": { + "body": { + "name": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8", + "properties": { + "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", + "metadata": { + "category": "Security Center" + }, + "parameters": {}, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", + "policyDefinitionReferenceId": "RefId1" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", + "policyDefinitionReferenceId": "RefId2" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", + "policyDefinitionReferenceId": "RefId3" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", + "policyDefinitionReferenceId": "RefId4" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", + "policyDefinitionReferenceId": "RefId5" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", + "policyDefinitionReferenceId": "RefId6" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", + "policyDefinitionReferenceId": "RefId7" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", + "policyDefinitionReferenceId": "RefId8" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", + "policyDefinitionReferenceId": "RefId9" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", + "policyDefinitionReferenceId": "RefId10" + } + ], + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitions_GetBuiltIn", + "title": "Retrieve a built-in policy set definition" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltInPolicySetDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltInPolicySetDefinitionVersion.json new file mode 100644 index 000000000000..1d9c1862f115 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltInPolicySetDefinitionVersion.json @@ -0,0 +1,81 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyDefinitionVersion": "1.2.1", + "policySetDefinitionName": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8" + }, + "responses": { + "200": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8/versions/1.2.1", + "properties": { + "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", + "metadata": { + "category": "Security Center" + }, + "parameters": {}, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", + "policyDefinitionReferenceId": "RefId1" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", + "policyDefinitionReferenceId": "RefId2" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", + "policyDefinitionReferenceId": "RefId3" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", + "policyDefinitionReferenceId": "RefId4" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", + "policyDefinitionReferenceId": "RefId5" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", + "policyDefinitionReferenceId": "RefId6" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", + "policyDefinitionReferenceId": "RefId7" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", + "policyDefinitionReferenceId": "RefId8" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", + "policyDefinitionReferenceId": "RefId9" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", + "policyDefinitionReferenceId": "RefId10" + } + ], + "policyType": "BuiltIn", + "version": "1.2.1" + } + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitionVersions_GetBuiltIn", + "title": "Retrieve a built-in policy set definition version" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltinPolicyDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltinPolicyDefinition.json new file mode 100644 index 000000000000..f15fa3d43eb8 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltinPolicyDefinition.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyDefinitionName": "7433c107-6db4-4ad1-b57a-a76dce0154a1", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "7433c107-6db4-4ad1-b57a-a76dce0154a1", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "properties": { + "description": "This policy enables you to specify a set of storage account SKUs that your organization can deploy.", + "displayName": "Allowed storage account SKUs", + "mode": "All", + "parameters": { + "listOfAllowedSKUs": { + "type": "Array", + "metadata": { + "description": "The list of SKUs that can be specified for storage accounts.", + "displayName": "Allowed SKUs", + "strongType": "StorageSKUs" + } + } + }, + "policyRule": { + "if": { + "allOf": [ + { + "equals": "Microsoft.Storage/storageAccounts", + "field": "type" + }, + { + "not": { + "field": "Microsoft.Storage/storageAccounts/sku.name", + "in": "[parameters('listOfAllowedSKUs')]" + } + } + ] + }, + "then": { + "effect": "Deny" + } + }, + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitions_GetBuiltIn", + "title": "Retrieve a built-in policy definition" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltinPolicyDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltinPolicyDefinitionVersion.json new file mode 100644 index 000000000000..d45119a673f5 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getBuiltinPolicyDefinitionVersion.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyDefinitionName": "7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionVersion": "1.2.1", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1/versions/1.2.1", + "properties": { + "description": "This policy enables you to specify a set of storage account SKUs that your organization can deploy.", + "displayName": "Allowed storage account SKUs", + "mode": "All", + "parameters": { + "listOfAllowedSKUs": { + "type": "Array", + "metadata": { + "description": "The list of SKUs that can be specified for storage accounts.", + "displayName": "Allowed SKUs", + "strongType": "StorageSKUs" + } + } + }, + "policyRule": { + "if": { + "allOf": [ + { + "equals": "Microsoft.Storage/storageAccounts", + "field": "type" + }, + { + "not": { + "field": "Microsoft.Storage/storageAccounts/sku.name", + "in": "[parameters('listOfAllowedSKUs')]" + } + } + ] + }, + "then": { + "effect": "Deny" + } + }, + "policyType": "BuiltIn", + "version": "1.2.1" + } + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitionVersions_GetBuiltIn", + "title": "Retrieve a built-in policy definition version" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignment.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignment.json new file mode 100644 index 000000000000..4936ef94da0e --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignment.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Get", + "title": "Retrieve a policy assignment" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithIdentity.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithIdentity.json new file mode 100644 index 000000000000..70922a369ae3 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithIdentity.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "identity": { + "type": "SystemAssigned", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", + "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" + }, + "location": "westus", + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Get", + "title": "Retrieve a policy assignment with a system assigned identity" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithOverrides.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithOverrides.json new file mode 100644 index 000000000000..6bc9269cc071 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithOverrides.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyAssignmentName": "CostManagement", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", + "properties": { + "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", + "enforcementMode": "Default", + "instanceId": "d2f3a4b5-c6d7-8e9f-0a1b-2c3d4e5f6a7b", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "overrides": [ + { + "kind": "policyEffect", + "selectors": [ + { + "in": [ + "Limit_Skus", + "Limit_Locations" + ], + "kind": "policyDefinitionReferenceId" + } + ], + "value": "Audit" + } + ], + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Get", + "title": "Retrieve a policy assignment with overrides" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithResourceSelectors.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithResourceSelectors.json new file mode 100644 index 000000000000..beb9b1450275 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithResourceSelectors.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyAssignmentName": "CostManagement", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", + "properties": { + "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", + "enforcementMode": "Default", + "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "resourceSelectors": [ + { + "name": "SDPRegions", + "selectors": [ + { + "in": [ + "eastus2euap", + "centraluseuap" + ], + "kind": "resourceLocation" + } + ] + } + ], + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Get", + "title": "Retrieve a policy assignment with resource selectors" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithUserAssignedIdentity.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithUserAssignedIdentity.json new file mode 100644 index 000000000000..5def53d8ec6e --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyAssignmentWithUserAssignedIdentity.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": { + "clientId": "4bee2b8a-1bee-47c2-90e9-404241551135", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a" + } + } + }, + "location": "westus", + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Get", + "title": "Retrieve a policy assignment with a user assigned identity" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinition.json new file mode 100644 index 000000000000..667bd3d6c51e --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinition.json @@ -0,0 +1,60 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyDefinitionName": "ResourceNaming", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitions_Get", + "title": "Retrieve a policy definition" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinitionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinitionAtManagementGroup.json new file mode 100644 index 000000000000..50d0ba4bc872 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinitionAtManagementGroup.json @@ -0,0 +1,60 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup", + "policyDefinitionName": "ResourceNaming" + }, + "responses": { + "200": { + "body": { + "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitions_GetAtManagementGroup", + "title": "Retrieve a policy definition at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinitionVersion.json new file mode 100644 index 000000000000..e0daec7cb078 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinitionVersion.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyDefinitionName": "ResourceNaming", + "policyDefinitionVersion": "1.2.1", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitionVersions_Get", + "title": "Retrieve a policy definition version" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinitionVersionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinitionVersionAtManagementGroup.json new file mode 100644 index 000000000000..1c1ec84270d5 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicyDefinitionVersionAtManagementGroup.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup", + "policyDefinitionName": "ResourceNaming", + "policyDefinitionVersion": "1.2.1" + }, + "responses": { + "200": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitionVersions_GetAtManagementGroup", + "title": "Retrieve a policy definition version at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinition.json new file mode 100644 index 000000000000..409a2fbc2e9f --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinition.json @@ -0,0 +1,77 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policySetDefinitionName": "CostManagement", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitionGroups": [ + { + "name": "CostSaving", + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" + }, + { + "name": "Organizational", + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" + } + ], + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "groupNames": [ + "CostSaving" + ], + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "groupNames": [ + "Organizational" + ], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitions_Get", + "title": "Retrieve a policy set definition" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinitionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinitionAtManagementGroup.json new file mode 100644 index 000000000000..d6ecde4512b0 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinitionAtManagementGroup.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup", + "policySetDefinitionName": "CostManagement" + }, + "responses": { + "200": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitions_GetAtManagementGroup", + "title": "Retrieve a policy set definition at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinitionVersion.json new file mode 100644 index 000000000000..eefdf88946a5 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinitionVersion.json @@ -0,0 +1,74 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyDefinitionVersion": "1.2.1", + "policySetDefinitionName": "CostManagement", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitionGroups": [ + { + "name": "CostSaving", + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" + }, + { + "name": "Organizational", + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" + } + ], + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "groupNames": [ + "CostSaving" + ], + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "groupNames": [ + "Organizational" + ], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1" + } + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitionVersions_Get", + "title": "Retrieve a policy set definition version" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinitionVersionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinitionVersionAtManagementGroup.json new file mode 100644 index 000000000000..fb68c04d970b --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/getPolicySetDefinitionVersionAtManagementGroup.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup", + "policyDefinitionVersion": "1.2.1", + "policySetDefinitionName": "CostManagement" + }, + "responses": { + "200": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1" + } + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitionVersions_GetAtManagementGroup", + "title": "Retrieve a policy set definition version at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllBuiltInPolicyDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllBuiltInPolicyDefinitionVersions.json new file mode 100644 index 000000000000..d2403a682723 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllBuiltInPolicyDefinitionVersions.json @@ -0,0 +1,107 @@ +{ + "parameters": { + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12/versions/1.2.1", + "properties": { + "description": "Audit DB level audit setting for SQL databases", + "displayName": "Audit SQL DB Level Audit Setting", + "mode": "All", + "parameters": { + "setting": { + "type": "String", + "allowedValues": [ + "enabled", + "disabled" + ], + "metadata": { + "displayName": "Audit Setting" + } + } + }, + "policyRule": { + "if": { + "equals": "Microsoft.Sql/servers/databases", + "field": "type" + }, + "then": { + "effect": "AuditIfNotExists", + "details": { + "name": "default", + "type": "Microsoft.Sql/servers/databases/auditingSettings", + "existenceCondition": { + "allOf": [ + { + "equals": "[parameters('setting')]", + "field": "Microsoft.Sql/auditingSettings.state" + } + ] + } + } + } + }, + "policyType": "BuiltIn", + "version": "1.2.1" + } + }, + { + "name": "1.0.0", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12/versions/1.0.0", + "properties": { + "description": "Audit DB level audit setting for SQL databases", + "displayName": "Audit SQL DB Level Audit Setting", + "mode": "All", + "parameters": { + "setting": { + "type": "String", + "allowedValues": [ + "enabled", + "disabled", + "default" + ], + "metadata": { + "displayName": "Audit Setting" + } + } + }, + "policyRule": { + "if": { + "equals": "Microsoft.Sql/servers/databases", + "field": "type" + }, + "then": { + "effect": "AuditIfNotExists", + "details": { + "name": "default", + "type": "Microsoft.Sql/servers/databases/auditingSettings", + "existenceCondition": { + "allOf": [ + { + "equals": "[parameters('setting')]", + "field": "Microsoft.Sql/auditingSettings.state" + } + ] + } + } + } + }, + "policyType": "BuiltIn", + "version": "1.0.0" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitionVersions_ListAllBuiltins", + "title": "List all built-in policy definition versions" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllBuiltInPolicySetDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllBuiltInPolicySetDefinitionVersions.json new file mode 100644 index 000000000000..cff066682229 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllBuiltInPolicySetDefinitionVersions.json @@ -0,0 +1,83 @@ +{ + "parameters": { + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8/versions/1.2.1", + "properties": { + "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", + "metadata": { + "category": "Security Center" + }, + "parameters": {}, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", + "policyDefinitionReferenceId": "RefId1" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", + "policyDefinitionReferenceId": "RefId2" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", + "policyDefinitionReferenceId": "RefId3" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", + "policyDefinitionReferenceId": "RefId4" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", + "policyDefinitionReferenceId": "RefId5" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", + "policyDefinitionReferenceId": "RefId6" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", + "policyDefinitionReferenceId": "RefId7" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", + "policyDefinitionReferenceId": "RefId8" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", + "policyDefinitionReferenceId": "RefId9" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", + "policyDefinitionReferenceId": "RefId10" + } + ], + "policyType": "BuiltIn", + "version": "1.2.1" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitionVersions_ListAllBuiltins", + "title": "List all built-in policy definition versions" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicyDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicyDefinitionVersions.json new file mode 100644 index 000000000000..40c4c8a59de4 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicyDefinitionVersions.json @@ -0,0 +1,101 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + { + "name": "1.0.0", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.0.0", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '-*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.0.0" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitionVersions_ListAll", + "title": "List all policy definition versions at subscription" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicyDefinitionVersionsByManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicyDefinitionVersionsByManagementGroup.json new file mode 100644 index 000000000000..bd600f72687b --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicyDefinitionVersionsByManagementGroup.json @@ -0,0 +1,101 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + { + "name": "1.0.0", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.0.0", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '-*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitionVersions_ListAllAtManagementGroup", + "title": "List all policy definition versions at management group" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicySetDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicySetDefinitionVersions.json new file mode 100644 index 000000000000..9f3b6356db16 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicySetDefinitionVersions.json @@ -0,0 +1,58 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitionVersions_ListAll", + "title": "List all policy definition versions at subscription" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicySetDefinitionVersionsByManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicySetDefinitionVersionsByManagementGroup.json new file mode 100644 index 000000000000..78a5b395bd2e --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listAllPolicySetDefinitionVersionsByManagementGroup.json @@ -0,0 +1,125 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8/versoins/1.2.1", + "properties": { + "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", + "metadata": { + "category": "Security Center" + }, + "parameters": {}, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", + "policyDefinitionReferenceId": "RefId1" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", + "policyDefinitionReferenceId": "RefId2" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", + "policyDefinitionReferenceId": "RefId3" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", + "policyDefinitionReferenceId": "RefId4" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", + "policyDefinitionReferenceId": "RefId5" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", + "policyDefinitionReferenceId": "RefId6" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", + "policyDefinitionReferenceId": "RefId7" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", + "policyDefinitionReferenceId": "RefId8" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", + "policyDefinitionReferenceId": "RefId9" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", + "policyDefinitionReferenceId": "RefId10" + } + ], + "policyType": "BuiltIn", + "version": "1.2.1" + } + }, + { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitionVersions_ListAllAtManagementGroup", + "title": "List all policy definition versions at management group" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicyDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicyDefinitionVersions.json new file mode 100644 index 000000000000..0aac2071f496 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicyDefinitionVersions.json @@ -0,0 +1,108 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyDefinitionName": "06a78e20-9358-41c9-923c-fb736d382a12" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12/versions/1.2.1", + "properties": { + "description": "Audit DB level audit setting for SQL databases", + "displayName": "Audit SQL DB Level Audit Setting", + "mode": "All", + "parameters": { + "setting": { + "type": "String", + "allowedValues": [ + "enabled", + "disabled" + ], + "metadata": { + "displayName": "Audit Setting" + } + } + }, + "policyRule": { + "if": { + "equals": "Microsoft.Sql/servers/databases", + "field": "type" + }, + "then": { + "effect": "AuditIfNotExists", + "details": { + "name": "default", + "type": "Microsoft.Sql/servers/databases/auditingSettings", + "existenceCondition": { + "allOf": [ + { + "equals": "[parameters('setting')]", + "field": "Microsoft.Sql/auditingSettings.state" + } + ] + } + } + } + }, + "policyType": "BuiltIn", + "version": "1.2.1" + } + }, + { + "name": "1.0.0", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12/versions/1.0.0", + "properties": { + "description": "Audit DB level audit setting for SQL databases", + "displayName": "Audit SQL DB Level Audit Setting", + "mode": "All", + "parameters": { + "setting": { + "type": "String", + "allowedValues": [ + "enabled", + "disabled", + "default" + ], + "metadata": { + "displayName": "Audit Setting" + } + } + }, + "policyRule": { + "if": { + "equals": "Microsoft.Sql/servers/databases", + "field": "type" + }, + "then": { + "effect": "AuditIfNotExists", + "details": { + "name": "default", + "type": "Microsoft.Sql/servers/databases/auditingSettings", + "existenceCondition": { + "allOf": [ + { + "equals": "[parameters('setting')]", + "field": "Microsoft.Sql/auditingSettings.state" + } + ] + } + } + } + }, + "policyType": "BuiltIn", + "version": "1.0.0" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitionVersions_ListBuiltIn", + "title": "List built-in policy definition versions" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicyDefinitions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicyDefinitions.json new file mode 100644 index 000000000000..1b4c23e59536 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicyDefinitions.json @@ -0,0 +1,147 @@ +{ + "parameters": { + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "06a78e20-9358-41c9-923c-fb736d382a12", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12", + "properties": { + "description": "Audit DB level audit setting for SQL databases", + "displayName": "Audit SQL DB Level Audit Setting", + "mode": "All", + "parameters": { + "setting": { + "type": "String", + "allowedValues": [ + "enabled", + "disabled" + ], + "metadata": { + "displayName": "Audit Setting" + } + } + }, + "policyRule": { + "if": { + "equals": "Microsoft.Sql/servers/databases", + "field": "type" + }, + "then": { + "effect": "AuditIfNotExists", + "details": { + "name": "default", + "type": "Microsoft.Sql/servers/databases/auditingSettings", + "existenceCondition": { + "allOf": [ + { + "equals": "[parameters('setting')]", + "field": "Microsoft.Sql/auditingSettings.state" + } + ] + } + } + } + }, + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + { + "name": "7433c107-6db4-4ad1-b57a-a76dce0154a1", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "properties": { + "description": "This policy enables you to specify a set of storage account SKUs that your organization can deploy.", + "displayName": "Allowed storage account SKUs", + "mode": "All", + "parameters": { + "listOfAllowedSKUs": { + "type": "Array", + "metadata": { + "description": "The list of SKUs that can be specified for storage accounts.", + "displayName": "Allowed SKUs", + "strongType": "StorageSKUs" + } + } + }, + "policyRule": { + "if": { + "allOf": [ + { + "equals": "Microsoft.Storage/storageAccounts", + "field": "type" + }, + { + "not": { + "field": "Microsoft.Storage/storageAccounts/sku.name", + "in": "[parameters('listOfAllowedSKUs')]" + } + } + ] + }, + "then": { + "effect": "Deny" + } + }, + "policyType": "Static", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + { + "name": "abeed54a-73c5-441d-8a8c-6b5e7a0c299e", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/abeed54a-73c5-441d-8a8c-6b5e7a0c299e", + "properties": { + "description": "Audit certificates that are stored in Azure Key Vault, that expire within 'X' number of days.", + "displayName": "Audit KeyVault certificates that expire within specified number of days", + "metadata": { + "category": "KeyVault DataPlane" + }, + "mode": "Microsoft.KeyVault.Data", + "parameters": { + "daysToExpire": { + "type": "Integer", + "metadata": { + "description": "The number of days for a certificate to expire.", + "displayName": "Days to expire" + } + } + }, + "policyRule": { + "if": { + "field": "Microsoft.KeyVault.Data/vaults/certificates/attributes/expiresOn", + "lessOrEquals": "[addDays(utcNow(), parameters('daysToExpire'))]" + }, + "then": { + "effect": "audit" + } + }, + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitions_ListBuiltIn", + "title": "List built-in policy definitions" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicySetDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicySetDefinitionVersions.json new file mode 100644 index 000000000000..4f475cdaade9 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicySetDefinitionVersions.json @@ -0,0 +1,84 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policySetDefinitionName": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8/versions/1.2.1", + "properties": { + "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", + "metadata": { + "category": "Security Center" + }, + "parameters": {}, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", + "policyDefinitionReferenceId": "RefId1" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", + "policyDefinitionReferenceId": "RefId2" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", + "policyDefinitionReferenceId": "RefId3" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", + "policyDefinitionReferenceId": "RefId4" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", + "policyDefinitionReferenceId": "RefId5" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", + "policyDefinitionReferenceId": "RefId6" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", + "policyDefinitionReferenceId": "RefId7" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", + "policyDefinitionReferenceId": "RefId8" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", + "policyDefinitionReferenceId": "RefId9" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", + "policyDefinitionReferenceId": "RefId10" + } + ], + "policyType": "BuiltIn", + "version": "1.2.1" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitionVersions_ListBuiltIn", + "title": "List built-in policy set definitions" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicySetDefinitions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicySetDefinitions.json new file mode 100644 index 000000000000..ed5ee47c8bc4 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listBuiltInPolicySetDefinitions.json @@ -0,0 +1,87 @@ +{ + "parameters": { + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8", + "properties": { + "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", + "metadata": { + "category": "Security Center" + }, + "parameters": {}, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", + "policyDefinitionReferenceId": "RefId1" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", + "policyDefinitionReferenceId": "RefId2" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", + "policyDefinitionReferenceId": "RefId3" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", + "policyDefinitionReferenceId": "RefId4" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", + "policyDefinitionReferenceId": "RefId5" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", + "policyDefinitionReferenceId": "RefId6" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", + "policyDefinitionReferenceId": "RefId7" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", + "policyDefinitionReferenceId": "RefId8" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", + "policyDefinitionReferenceId": "RefId9" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", + "policyDefinitionReferenceId": "RefId10" + } + ], + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitions_ListBuiltIn", + "title": "List built-in policy set definitions" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignments.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignments.json new file mode 100644 index 000000000000..f2d9c3c189ac --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignments.json @@ -0,0 +1,65 @@ +{ + "operationId": "PolicyAssignments_List", + "title": "List policy assignments that apply to a subscription", + "parameters": { + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", + "$filter": "atScope()", + "$expand": "LatestDefinitionVersion, EffectiveDefinitionVersion" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "value": [ + { + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "name": "CostManagement", + "location": "eastus", + "identity": { + "type": "SystemAssigned", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", + "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" + }, + "properties": { + "displayName": "Storage Cost Management", + "description": "Minimize the risk of accidental cost overruns", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/storageSkus", + "definitionVersion": "1.*.*", + "latestDefinitionVersion": "1.0.0", + "effectiveDefinitionVersion": "1.0.0", + "parameters": { + "allowedSkus": { + "value": "Standard_A1" + } + }, + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "notScopes": [], + "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e" + } + }, + { + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/TagEnforcement", + "type": "Microsoft.Authorization/policyAssignments", + "name": "TagEnforcement", + "properties": { + "displayName": "Enforces a tag key and value", + "description": "Ensure a given tag key and value are present on all resources", + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/TagKeyValue", + "definitionVersion": "1.*.*", + "latestDefinitionVersion": "1.0.0", + "effectiveDefinitionVersion": "1.0.0", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "notScopes": [], + "instanceId": "b6d7e8f9-a0b1-2c3d-4e5f-6a7b8c9d0e1f" + } + } + ] + } + } + } +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignmentsForManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignmentsForManagementGroup.json new file mode 100644 index 000000000000..024b8b286e49 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignmentsForManagementGroup.json @@ -0,0 +1,65 @@ +{ + "operationId": "PolicyAssignments_ListForManagementGroup", + "title": "List policy assignments that apply to a management group", + "parameters": { + "managementGroupId": "TestManagementGroup", + "api-version": "2025-03-01", + "$filter": "atScope()", + "$expand": "LatestDefinitionVersion, EffectiveDefinitionVersion" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "value": [ + { + "id": "/providers/Microsoft.Management/managementGroups/TestManagementGroup/providers/Microsoft.Authorization/policyAssignments/TestCostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "name": "TestCostManagement", + "location": "eastus", + "identity": { + "type": "SystemAssigned", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", + "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" + }, + "properties": { + "displayName": "Storage Cost Management", + "description": "Minimize the risk of accidental cost overruns", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementGroups/TestManagementGroup/providers/Microsoft.Authorization/policyDefinitions/storageSkus", + "definitionVersion": "1.*.*", + "latestDefinitionVersion": "1.0.0", + "effectiveDefinitionVersion": "1.0.0", + "parameters": { + "allowedSkus": { + "value": "Standard_A1" + } + }, + "scope": "/providers/Microsoft.Management/managementGroups/TestManagementGroup", + "notScopes": [], + "instanceId": "c7e8f9a0-b1c2-3d4e-5f6a-7b8c9d0e1f2a" + } + }, + { + "id": "/providers/Microsoft.Management/managementGroups/TestManagementGroup/providers/Microsoft.Authorization/policyAssignments/TestTagEnforcement", + "type": "Microsoft.Authorization/policyAssignments", + "name": "TestTagEnforcement", + "properties": { + "displayName": "Enforces a tag key and value", + "description": "Ensure a given tag key and value are present on all resources", + "policyDefinitionId": "/providers/Microsoft.Management/managementGroups/TestManagementGroup/providers/Microsoft.Authorization/policyDefinitions/TagKeyValue", + "definitionVersion": "1.*.*", + "latestDefinitionVersion": "1.0.0", + "effectiveDefinitionVersion": "1.0.0", + "scope": "/providers/Microsoft.Management/managementGroups/TestManagementGroup", + "notScopes": [], + "instanceId": "d8f9a0b1-c2d3-4e5f-6a7b-8c9d0e1f2a3b" + } + } + ] + } + } + } +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignmentsForResource.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignmentsForResource.json new file mode 100644 index 000000000000..226a1b016837 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignmentsForResource.json @@ -0,0 +1,64 @@ +{ + "operationId": "PolicyAssignments_ListForResource", + "title": "List policy assignments that apply to a resource group", + "parameters": { + "resourceGroupName": "TestResourceGroup", + "resourceProviderNamespace": "Microsoft.Compute", + "parentResourcePath": "virtualMachines/MyTestVm", + "resourceType": "domainNames", + "resourceName": "MyTestComputer.cloudapp.net", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "value": [ + { + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup/providers/Microsoft.Authorization/policyAssignments/TestCostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "name": "TestCostManagement", + "location": "eastus", + "identity": { + "type": "SystemAssigned", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", + "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" + }, + "properties": { + "displayName": "VM Cost Management", + "description": "Minimize the risk of accidental cost overruns", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/vmSkus", + "definitionVersion": "1.*.*", + "parameters": { + "allowedSkus": { + "value": "Standard_A1" + } + }, + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup", + "notScopes": [], + "instanceId": "e9a0b1c2-d3e4-5f6a-7b8c-9d0e1f2a3b4c" + } + }, + { + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup/providers/Microsoft.Authorization/policyAssignments/TestTagEnforcement", + "type": "Microsoft.Authorization/policyAssignments", + "name": "TestTagEnforcement", + "properties": { + "displayName": "Enforces a tag key and value", + "description": "Ensure a given tag key and value are present on all resources", + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/TagKeyValue", + "definitionVersion": "1.*.*", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup", + "notScopes": [], + "instanceId": "f0b1c2d3-e4f5-6a7b-8c9d-0e1f2a3b4c5d" + } + } + ] + } + } + } +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignmentsForResourceGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignmentsForResourceGroup.json new file mode 100644 index 000000000000..0f76fed8aea7 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyAssignmentsForResourceGroup.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "$expand": "LatestDefinitionVersion, EffectiveDefinitionVersion", + "$filter": "atScope()", + "api-version": "2025-03-01", + "resourceGroupName": "TestResourceGroup", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "TestCostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup/providers/Microsoft.Authorization/policyAssignments/TestCostManagement", + "identity": { + "type": "SystemAssigned", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", + "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" + }, + "location": "eastus", + "properties": { + "description": "Minimize the risk of accidental cost overruns", + "definitionVersion": "1.*.*", + "displayName": "Storage Cost Management", + "effectiveDefinitionVersion": "1.0.0", + "instanceId": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d", + "latestDefinitionVersion": "1.0.0", + "metadata": { + "category": "Cost Management" + }, + "notScopes": [], + "parameters": { + "allowedSkus": { + "value": "Standard_A1" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/storageSkus", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup" + } + }, + { + "name": "TestTagEnforcement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup/providers/Microsoft.Authorization/policyAssignments/TestTagEnforcement", + "properties": { + "description": "Ensure a given tag key and value are present on all resources", + "definitionVersion": "1.*.*", + "displayName": "Enforces a tag key and value", + "effectiveDefinitionVersion": "1.0.0", + "instanceId": "f0b1c2d3-e4f5-6a7b-8c9d-0e1f2a3b4c5d", + "latestDefinitionVersion": "1.0.0", + "notScopes": [], + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/TagKeyValue", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_ListForResourceGroup", + "title": "List policy assignments that apply to a resource group" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitionVersions.json new file mode 100644 index 000000000000..e9b75f33f184 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitionVersions.json @@ -0,0 +1,102 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policyDefinitionName": "ResourceNaming", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + { + "name": "1.0.0", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.0.0", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '-*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.0.0" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitionVersions_List", + "title": "List policy definition versions by subscription" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitionVersionsByManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitionVersionsByManagementGroup.json new file mode 100644 index 000000000000..87ef147d5c7c --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitionVersionsByManagementGroup.json @@ -0,0 +1,102 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup", + "policyDefinitionName": "ResourceNaming" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + { + "name": "1.0.0", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.0.0", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '-*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitionVersions_ListByManagementGroup", + "title": "List policy definition versions by management group" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitions.json new file mode 100644 index 000000000000..9eafcde5e7b7 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitions.json @@ -0,0 +1,145 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "7433c107-6db4-4ad1-b57a-a76dce0154a1", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "properties": { + "description": "This policy enables you to specify a set of storage account SKUs that your organization can deploy.", + "displayName": "Allowed storage account SKUs", + "mode": "All", + "parameters": { + "listOfAllowedSKUs": { + "type": "Array", + "metadata": { + "description": "The list of SKUs that can be specified for storage accounts.", + "displayName": "Allowed SKUs", + "strongType": "StorageSKUs" + } + } + }, + "policyRule": { + "if": { + "allOf": [ + { + "equals": "Microsoft.Storage/storageAccounts", + "field": "type" + }, + { + "not": { + "field": "Microsoft.Storage/storageAccounts/sku.name", + "in": "[parameters('listOfAllowedSKUs')]" + } + } + ] + }, + "then": { + "effect": "Deny" + } + }, + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + { + "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + { + "name": "AuditSoonToExpireCerts", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/AuditSoonToExpireCerts", + "properties": { + "description": "Audit certificates that are stored in Azure Key Vault, that expire within 'X' number of days.", + "displayName": "Audit KeyVault certificates that expire within specified number of days", + "metadata": { + "category": "KeyVault DataPlane" + }, + "mode": "Microsoft.KeyVault.Data", + "parameters": { + "daysToExpire": { + "type": "Integer", + "metadata": { + "description": "The number of days for a certificate to expire.", + "displayName": "Days to expire" + } + } + }, + "policyRule": { + "if": { + "field": "Microsoft.KeyVault.Data/vaults/certificates/attributes/expiresOn", + "lessOrEquals": "[addDays(utcNow(), parameters('daysToExpire'))]" + }, + "then": { + "effect": "audit" + } + }, + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitions_List", + "title": "List policy definitions by subscription" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitionsByManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitionsByManagementGroup.json new file mode 100644 index 000000000000..3367ff8c2f67 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicyDefinitionsByManagementGroup.json @@ -0,0 +1,108 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "7433c107-6db4-4ad1-b57a-a76dce0154a1", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "properties": { + "description": "This policy enables you to specify a set of storage account SKUs that your organization can deploy.", + "displayName": "Allowed storage account SKUs", + "mode": "All", + "parameters": { + "listOfAllowedSKUs": { + "type": "Array", + "metadata": { + "description": "The list of SKUs that can be specified for storage accounts.", + "displayName": "Allowed SKUs", + "strongType": "StorageSKUs" + } + } + }, + "policyRule": { + "if": { + "allOf": [ + { + "equals": "Microsoft.Storage/storageAccounts", + "field": "type" + }, + { + "not": { + "field": "Microsoft.Storage/storageAccounts/sku.name", + "in": "[parameters('listOfAllowedSKUs')]" + } + } + ] + }, + "then": { + "effect": "Deny" + } + }, + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + { + "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", + "parameters": { + "prefix": { + "type": "String", + "metadata": { + "description": "Resource name prefix", + "displayName": "Prefix" + } + }, + "suffix": { + "type": "String", + "metadata": { + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicyDefinitions_ListByManagementGroup", + "title": "List policy definitions by management group" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitionVersions.json new file mode 100644 index 000000000000..66d61cb56c09 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitionVersions.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "policySetDefinitionName": "CostManagement", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitionVersions_List", + "title": "List policy set definitions" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitionVersionsByManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitionVersionsByManagementGroup.json new file mode 100644 index 000000000000..2d887eb2cbd0 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitionVersionsByManagementGroup.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup", + "policySetDefinitionName": "CostManagement" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitionVersions_ListByManagementGroup", + "title": "List policy set definitions at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitions.json new file mode 100644 index 000000000000..d330a3004a84 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitions.json @@ -0,0 +1,133 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8", + "properties": { + "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", + "metadata": { + "category": "Security Center" + }, + "parameters": {}, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", + "policyDefinitionReferenceId": "RefId1" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", + "policyDefinitionReferenceId": "RefId2" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", + "policyDefinitionReferenceId": "RefId3" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", + "policyDefinitionReferenceId": "RefId4" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", + "policyDefinitionReferenceId": "RefId5" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", + "policyDefinitionReferenceId": "RefId6" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", + "policyDefinitionReferenceId": "RefId7" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", + "policyDefinitionReferenceId": "RefId8" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", + "policyDefinitionReferenceId": "RefId9" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", + "policyDefinitionReferenceId": "RefId10" + } + ], + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + { + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitions_List", + "title": "List policy set definitions" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitionsByManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitionsByManagementGroup.json new file mode 100644 index 000000000000..c13d482435c4 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/listPolicySetDefinitionsByManagementGroup.json @@ -0,0 +1,131 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8", + "properties": { + "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", + "metadata": { + "category": "Security Center" + }, + "parameters": {}, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", + "policyDefinitionReferenceId": "RefId1" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", + "policyDefinitionReferenceId": "RefId2" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", + "policyDefinitionReferenceId": "RefId3" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", + "policyDefinitionReferenceId": "RefId4" + }, + { + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", + "policyDefinitionReferenceId": "RefId5" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", + "policyDefinitionReferenceId": "RefId6" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", + "policyDefinitionReferenceId": "RefId7" + }, + { + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", + "policyDefinitionReferenceId": "RefId8" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", + "policyDefinitionReferenceId": "RefId9" + }, + { + "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", + "policyDefinitionReferenceId": "RefId10" + } + ], + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + { + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "properties": { + "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", + "metadata": { + "category": "Cost Management" + }, + "policyDefinitions": [ + { + "definitionVersion": "1.*.*", + "parameters": { + "listOfAllowedSKUs": { + "value": [ + "Standard_GRS", + "Standard_LRS" + ] + } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" + }, + { + "definitionVersion": "1.*.*", + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" + } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PolicySetDefinitions_ListByManagementGroup", + "title": "List policy set definitions at management group level" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithIdentity.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithIdentity.json new file mode 100644 index 000000000000..116b5227d41c --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithIdentity.json @@ -0,0 +1,52 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "identity": { + "type": "SystemAssigned" + }, + "location": "eastus" + }, + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "identity": { + "type": "SystemAssigned", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", + "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" + }, + "location": "eastus", + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Update", + "title": "Update a policy assignment with a system assigned identity" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithOverrides.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithOverrides.json new file mode 100644 index 000000000000..84030547bf7e --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithOverrides.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "overrides": [ + { + "kind": "policyEffect", + "selectors": [ + { + "in": [ + "Limit_Skus", + "Limit_Locations" + ], + "kind": "policyDefinitionReferenceId" + } + ], + "value": "Audit" + } + ] + } + }, + "policyAssignmentName": "CostManagement", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", + "properties": { + "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", + "enforcementMode": "Default", + "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "overrides": [ + { + "kind": "policyEffect", + "selectors": [ + { + "in": [ + "Limit_Skus", + "Limit_Locations" + ], + "kind": "policyDefinitionReferenceId" + } + ], + "value": "Audit" + } + ], + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Update", + "title": "Update a policy assignment with overrides" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithResourceSelectors.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithResourceSelectors.json new file mode 100644 index 000000000000..4c6967ba9aec --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithResourceSelectors.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "properties": { + "resourceSelectors": [ + { + "name": "SDPRegions", + "selectors": [ + { + "in": [ + "eastus2euap", + "centraluseuap" + ], + "kind": "resourceLocation" + } + ] + } + ] + } + }, + "policyAssignmentName": "CostManagement", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", + "properties": { + "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", + "enforcementMode": "Default", + "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "resourceSelectors": [ + { + "name": "SDPRegions", + "selectors": [ + { + "in": [ + "eastus2euap", + "centraluseuap" + ], + "kind": "resourceLocation" + } + ] + } + ], + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Update", + "title": "Update a policy assignment with resource selectors" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithUserAssignedIdentity.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithUserAssignedIdentity.json new file mode 100644 index 000000000000..1b4d76996cb7 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/examples/2025-03-01/updatePolicyAssignmentWithUserAssignedIdentity.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "api-version": "2025-03-01", + "parameters": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": {} + } + }, + "location": "eastus" + }, + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + }, + "responses": { + "200": { + "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": { + "clientId": "4bee2b8a-1bee-47c2-90e9-404241551135", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a" + } + } + }, + "location": "eastus", + "properties": { + "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", + "metadata": { + "assignedBy": "Special Someone" + }, + "notScopes": [], + "parameters": { + "prefix": { + "value": "DeptA" + }, + "suffix": { + "value": "-LC" + } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} + } + }, + "operationId": "PolicyAssignments_Update", + "title": "Update a policy assignment with a user assigned identity" +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/main.tsp b/specification/resources/resource-manager/Microsoft.Authorization/policy/main.tsp new file mode 100644 index 000000000000..a77bcb30e725 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/main.tsp @@ -0,0 +1,48 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.12 + * Date: 2025-10-27T02:40:16.533Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./PolicyAssignment.tsp"; +import "./PolicyDefinition.tsp"; +import "./PolicyDefinitionVersion.tsp"; +import "./PolicySetDefinition.tsp"; +import "./PolicySetDefinitionVersion.tsp"; +import "./routes.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; + +/** + * To manage and control access to your resources, you can define customized policies and assign them at a scope. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint" "For backward compatibility" +@armProviderNamespace +@service(#{ title: "PolicyClient" }) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) +namespace Microsoft.Authorization; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2025-03-01 API version. + */ + v2025_03_01: "2025-03-01", +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/models.tsp b/specification/resources/resource-manager/Microsoft.Authorization/policy/models.tsp new file mode 100644 index 000000000000..d3c68971f29d --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/models.tsp @@ -0,0 +1,1136 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; + +namespace Microsoft.Authorization; + +/** + * The policy assignment enforcement mode. Possible values are Default, DoNotEnforce, and Enroll + */ +union EnforcementMode { + string, + + /** + * The policy effect is enforced during resource creation or update. + */ + Default: "Default", + + /** + * The policy effect is not enforced during resource creation or update. + */ + DoNotEnforce: "DoNotEnforce", + + /** + * The policy effect is not enforced during resource creation or update until the resource or scope of the resource is enrolled to the assignment instance. Enrollment occurs upon deployment of the policy enrollment resource. + */ + Enroll: "Enroll", +} + +/** + * The selector kind. + */ +union SelectorKind { + string, + + /** + * The selector kind to filter policies by the resource location. + */ + resourceLocation: "resourceLocation", + + /** + * The selector kind to filter policies by the resource type. + */ + resourceType: "resourceType", + + /** + * The selector kind to filter policies by the resource without location. + */ + resourceWithoutLocation: "resourceWithoutLocation", + + /** + * The selector kind to filter policies by the policy definition reference ID. + */ + policyDefinitionReferenceId: "policyDefinitionReferenceId", +} + +/** + * The override kind. + */ +union OverrideKind { + string, + + /** + * It will override the policy effect type. + */ + policyEffect: "policyEffect", + + /** + * It will override the definition version property value of the policy assignment. + */ + definitionVersion: "definitionVersion", +} + +/** + * The type of policy assignment. Possible values are NotSpecified, System, SystemHidden, and Custom. Immutable. + */ +union AssignmentType { + string, + + /** + * NotSpecified + */ + NotSpecified: "NotSpecified", + + /** + * System + */ + System: "System", + + /** + * SystemHidden + */ + SystemHidden: "SystemHidden", + + /** + * Custom + */ + Custom: "Custom", +} + +/** + * The type of identity that created the resource. + */ +union CreatedByType { + string, + + /** + * User + */ + User: "User", + + /** + * Application + */ + Application: "Application", + + /** + * ManagedIdentity + */ + ManagedIdentity: "ManagedIdentity", + + /** + * Key + */ + Key: "Key", +} + +/** + * The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static. + */ +union PolicyType { + string, + + /** + * NotSpecified + */ + NotSpecified: "NotSpecified", + + /** + * BuiltIn + */ + BuiltIn: "BuiltIn", + + /** + * Custom + */ + Custom: "Custom", + + /** + * Static + */ + Static: "Static", +} + +/** + * The data type of the parameter. + */ +union ParameterType { + string, + + /** + * String + */ + String: "String", + + /** + * Array + */ + Array: "Array", + + /** + * Object + */ + Object: "Object", + + /** + * Boolean + */ + Boolean: "Boolean", + + /** + * Integer + */ + Integer: "Integer", + + /** + * Float + */ + Float: "Float", + + /** + * DateTime + */ + DateTime: "DateTime", +} + +/** + * The result of the completed token acquisition operation. Possible values are Succeeded and Failed. + */ +union PolicyTokenResult { + string, + + /** + * Succeeded + */ + Succeeded: "Succeeded", + + /** + * Failed + */ + Failed: "Failed", +} + +/** + * The result of the external endpoint. Possible values are Succeeded and Failed. + */ +union ExternalEndpointResult { + string, + + /** + * Succeeded + */ + Succeeded: "Succeeded", + + /** + * Failed + */ + Failed: "Failed", +} + +/** + * The identity type. This is the only required field when adding a system or user assigned identity to a resource. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "For backward compatibility" +enum ResourceIdentityType { + /** + * Indicates that a system assigned identity is associated with the resource. + */ + SystemAssigned, + + /** + * Indicates that a system assigned identity is associated with the resource. + */ + UserAssigned, + + /** + * Indicates that no identity is associated with the resource or that the existing identity should be removed. + */ + None, +} + +/** + * The policy assignment properties. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "For backward compatibility" +model PolicyAssignmentProperties { + /** + * The display name of the policy assignment. + */ + displayName?: string; + + /** + * The ID of the policy definition or policy set definition being assigned. + */ + policyDefinitionId?: string; + + /** + * The version of the policy definition to use. + */ + definitionVersion?: string; + + /** + * The latest version of the policy definition available. This is only present if requested via the $expand query parameter. + */ + @visibility(Lifecycle.Read) + latestDefinitionVersion?: string; + + /** + * The effective version of the policy definition in use. This is only present if requested via the $expand query parameter. + */ + @visibility(Lifecycle.Read) + effectiveDefinitionVersion?: string; + + /** + * The scope for the policy assignment. + */ + @visibility(Lifecycle.Read) + scope?: string; + + /** + * The policy's excluded scopes. + */ + notScopes?: string[]; + + /** + * The parameter values for the assigned policy rule. The keys are the parameter names. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + parameters?: Record<ParameterValuesValue>; + + /** + * This message will be part of response in case of policy violation. + */ + description?: string; + + /** + * The policy assignment metadata. Metadata is an open ended object and is typically a collection of key value pairs. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "For backward compatibility" + metadata?: unknown; + + /** + * The policy assignment enforcement mode. Possible values are Default, DoNotEnforce, and Enroll + */ + enforcementMode?: EnforcementMode = EnforcementMode.Default; + + /** + * The messages that describe why a resource is non-compliant with the policy. + */ + @identifiers(#["message", "policyDefinitionReferenceId"]) + nonComplianceMessages?: NonComplianceMessage[]; + + /** + * The resource selector list to filter policies by resource properties. + */ + @identifiers(#[]) + resourceSelectors?: ResourceSelector[]; + + /** + * The policy property value override. + */ + @identifiers(#[]) + overrides?: Override[]; + + /** + * The type of policy assignment. Possible values are NotSpecified, System, SystemHidden, and Custom. Immutable. + */ + assignmentType?: AssignmentType; + + /** + * The instance ID of the policy assignment. This ID only and always changes when the assignment is deleted and recreated. + */ + @visibility(Lifecycle.Read) + instanceId?: string; +} + +/** + * The value of a parameter. + */ +model ParameterValuesValue { + /** + * The value of the parameter. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "For backward compatibility" + value?: unknown; +} + +/** + * A message that describes why a resource is non-compliant with the policy. This is shown in 'deny' error messages and on resource's non-compliant compliance results. + */ +model NonComplianceMessage { + /** + * A message that describes why a resource is non-compliant with the policy. This is shown in 'deny' error messages and on resource's non-compliant compliance results. + */ + message: string; + + /** + * The policy definition reference ID within a policy set definition the message is intended for. This is only applicable if the policy assignment assigns a policy set definition. If this is not provided the message applies to all policies assigned by this policy assignment. + */ + policyDefinitionReferenceId?: string; +} + +/** + * The resource selector to filter policies by resource properties. + */ +model ResourceSelector { + /** + * The name of the resource selector. + */ + name?: string; + + /** + * The list of the selector expressions. + */ + @identifiers(#[]) + selectors?: Selector[]; +} + +/** + * The selector expression. + */ +model Selector { + /** + * The selector kind. + */ + kind?: SelectorKind; + + /** + * The list of values to filter in. + */ + in?: string[]; + + /** + * The list of values to filter out. + */ + notIn?: string[]; +} + +/** + * The policy property value override. + */ +model Override { + /** + * The override kind. + */ + kind?: OverrideKind; + + /** + * The value to override the policy property. + */ + value?: string; + + /** + * The list of the selector expressions. + */ + @identifiers(#[]) + selectors?: Selector[]; +} + +/** + * Identity for the resource. Policy assignments support a maximum of one identity. That is either a system assigned identity or a single user assigned identity. + */ +model Identity { + /** + * The principal ID of the resource identity. This property will only be provided for a system assigned identity + */ + @visibility(Lifecycle.Read) + principalId?: string; + + /** + * The tenant ID of the resource identity. This property will only be provided for a system assigned identity + */ + @visibility(Lifecycle.Read) + tenantId?: string; + + /** + * The identity type. This is the only required field when adding a system or user assigned identity to a resource. + */ + type?: ResourceIdentityType; + + /** + * The user identity associated with the policy. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + userAssignedIdentities?: Record<UserAssignedIdentitiesValue>; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" +model UserAssignedIdentitiesValue { + /** + * The principal id of user assigned identity. + */ + @visibility(Lifecycle.Read) + principalId?: string; + + /** + * The client id of user assigned identity. + */ + @visibility(Lifecycle.Read) + clientId?: string; +} + +/** + * The policy assignment for Patch request. + */ +model PolicyAssignmentUpdate { + /** + * The policy assignment properties for Patch request. + */ + properties?: PolicyAssignmentUpdateProperties; + + /** + * The location of the policy assignment. Only required when utilizing managed identity. + */ + location?: string; + + /** + * The managed identity associated with the policy assignment. + */ + identity?: Identity; +} + +/** + * The policy assignment properties for Patch request. + */ +model PolicyAssignmentUpdateProperties { + /** + * The resource selector list to filter policies by resource properties. + */ + @identifiers(#[]) + resourceSelectors?: ResourceSelector[]; + + /** + * The policy property value override. + */ + @identifiers(#[]) + overrides?: Override[]; +} + +/** + * The policy definition properties. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "For backward compatibility" +model PolicyDefinitionProperties { + /** + * The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static. + */ + policyType?: PolicyType; + + /** + * The policy definition mode. Some examples are All, Indexed, Microsoft.KeyVault.Data. + */ + mode?: string = "Indexed"; + + /** + * The display name of the policy definition. + */ + displayName?: string; + + /** + * The policy definition description. + */ + description?: string; + + /** + * The policy rule. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "For backward compatibility" + policyRule?: unknown; + + /** + * The policy definition metadata. Metadata is an open ended object and is typically a collection of key value pairs. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "For backward compatibility" + metadata?: unknown; + + /** + * The parameter definitions for parameters used in the policy rule. The keys are the parameter names. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + parameters?: Record<ParameterDefinitionsValue>; + + /** + * The policy definition version in #.#.# format. + */ + version?: string; + + /** + * A list of available versions for this policy definition. + */ + versions?: string[]; + + /** + * The details of the source of external evaluation results required by the policy during enforcement evaluation. + */ + externalEvaluationEnforcementSettings?: ExternalEvaluationEnforcementSettings; +} + +/** + * The definition of a parameter that can be provided to the policy. + */ +model ParameterDefinitionsValue { + /** + * The data type of the parameter. + */ + type?: ParameterType; + + /** + * The allowed values for the parameter. + */ + allowedValues?: unknown[]; + + /** + * The default value for the parameter if no value is provided. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "For backward compatibility" + defaultValue?: unknown; + + /** + * Provides validation of parameter inputs during assignment using a self-defined JSON schema. This property is only supported for object-type parameters and follows the Json.NET Schema 2019-09 implementation. You can learn more about using schemas at https://json-schema.org/ and test draft schemas at https://www.jsonschemavalidator.net/. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "For backward compatibility" + schema?: unknown; + + /** + * General metadata for the parameter. + */ + metadata?: ParameterDefinitionsValueMetadata; +} + +/** + * General metadata for the parameter. + */ +model ParameterDefinitionsValueMetadata { + ...Record<unknown>; + + /** + * The display name for the parameter. + */ + displayName?: string; + + /** + * The description of the parameter. + */ + description?: string; + + /** + * Used when assigning the policy definition through the portal. Provides a context aware list of values for the user to choose from. + */ + strongType?: string; + + /** + * Set to true to have Azure portal create role assignments on the resource ID or resource scope value of this parameter during policy assignment. This property is useful in case you wish to assign permissions outside the assignment scope. + */ + assignPermissions?: boolean; +} + +/** + * The details of the source of external evaluation results required by the policy during enforcement evaluation. + */ +model ExternalEvaluationEnforcementSettings { + /** + * What to do when evaluating an enforcement policy that requires an external evaluation and the token is missing. Possible values are Audit and Deny and language expressions are supported. + */ + missingTokenAction?: string; + + /** + * The lifespan of the endpoint invocation result after which it's no longer valid. Value is expected to follow the ISO 8601 duration format and language expressions are supported. + */ + resultLifespan?: string; + + /** + * The settings of an external endpoint providing evaluation results. + */ + endpointSettings?: ExternalEvaluationEndpointSettings; + + /** + * An array of the role definition Ids the assignment's MSI will need in order to invoke the endpoint. + */ + roleDefinitionIds?: string[]; +} + +/** + * The settings of an external endpoint providing evaluation results. + */ +model ExternalEvaluationEndpointSettings { + /** + * The kind of the endpoint. + */ + kind?: string; + + /** + * The details of the endpoint. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "For backward compatibility" + details?: unknown; +} + +/** + * The policy definition properties. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "For backward compatibility" +model PolicyDefinitionVersionProperties { + /** + * The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static. + */ + policyType?: PolicyType; + + /** + * The policy definition mode. Some examples are All, Indexed, Microsoft.KeyVault.Data. + */ + mode?: string = "Indexed"; + + /** + * The display name of the policy definition. + */ + displayName?: string; + + /** + * The policy definition description. + */ + description?: string; + + /** + * The policy rule. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "For backward compatibility" + policyRule?: unknown; + + /** + * The policy definition metadata. Metadata is an open ended object and is typically a collection of key value pairs. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "For backward compatibility" + metadata?: unknown; + + /** + * The parameter definitions for parameters used in the policy rule. The keys are the parameter names. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + parameters?: Record<ParameterDefinitionsValue>; + + /** + * The policy definition version in #.#.# format. + */ + version?: string; + + /** + * The details of the source of external evaluation results required by the policy during enforcement evaluation. + */ + externalEvaluationEnforcementSettings?: ExternalEvaluationEnforcementSettings; +} + +/** + * The policy set definition properties. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "For backward compatibility" +model PolicySetDefinitionProperties { + /** + * The type of policy set definition. Possible values are NotSpecified, BuiltIn, Custom, and Static. + */ + policyType?: PolicyType; + + /** + * The display name of the policy set definition. + */ + displayName?: string; + + /** + * The policy set definition description. + */ + description?: string; + + /** + * The policy set definition metadata. Metadata is an open ended object and is typically a collection of key value pairs. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "For backward compatibility" + metadata?: unknown; + + /** + * The policy set definition parameters that can be used in policy definition references. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + parameters?: Record<ParameterDefinitionsValue>; + + /** + * An array of policy definition references. + */ + @identifiers(#["policyDefinitionReferenceId"]) + policyDefinitions: PolicyDefinitionReference[]; + + /** + * The metadata describing groups of policy definition references within the policy set definition. + */ + @identifiers(#["name"]) + policyDefinitionGroups?: PolicyDefinitionGroup[]; + + /** + * The policy set definition version in #.#.# format. + */ + version?: string; + + /** + * A list of available versions for this policy set definition. + */ + versions?: string[]; +} + +/** + * The policy definition reference. + */ +model PolicyDefinitionReference { + /** + * The ID of the policy definition or policy set definition. + */ + policyDefinitionId: string; + + /** + * The version of the policy definition to use. + */ + definitionVersion?: string; + + /** + * The latest version of the policy definition available. This is only present if requested via the $expand query parameter. + */ + @visibility(Lifecycle.Read) + latestDefinitionVersion?: string; + + /** + * The effective version of the policy definition in use. This is only present if requested via the $expand query parameter. + */ + @visibility(Lifecycle.Read) + effectiveDefinitionVersion?: string; + + /** + * The parameter values for the referenced policy rule. The keys are the parameter names. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + parameters?: Record<ParameterValuesValue>; + + /** + * A unique id (within the policy set definition) for this policy definition reference. + */ + policyDefinitionReferenceId?: string; + + /** + * The name of the groups that this policy definition reference belongs to. + */ + groupNames?: string[]; +} + +/** + * The policy definition group. + */ +model PolicyDefinitionGroup { + /** + * The name of the group. + */ + name: string; + + /** + * The group's display name. + */ + displayName?: string; + + /** + * The group's category. + */ + category?: string; + + /** + * The group's description. + */ + description?: string; + + /** + * A resource ID of a resource that contains additional metadata about the group. + */ + additionalMetadataId?: string; +} + +/** + * The policy set definition properties. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "For backward compatibility" +model PolicySetDefinitionVersionProperties { + /** + * The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static. + */ + policyType?: PolicyType; + + /** + * The display name of the policy set definition. + */ + displayName?: string; + + /** + * The policy set definition description. + */ + description?: string; + + /** + * The policy set definition metadata. Metadata is an open ended object and is typically a collection of key value pairs. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "For backward compatibility" + metadata?: unknown; + + /** + * The policy set definition parameters that can be used in policy definition references. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + parameters?: Record<ParameterDefinitionsValue>; + + /** + * An array of policy definition references. + */ + @identifiers(#["policyDefinitionReferenceId"]) + policyDefinitions: PolicyDefinitionReference[]; + + /** + * The metadata describing groups of policy definition references within the policy set definition. + */ + @identifiers(#["name"]) + policyDefinitionGroups?: PolicyDefinitionGroup[]; + + /** + * The policy set definition version in #.#.# format. + */ + version?: string; +} + +/** + * The policy token request properties. + */ +model PolicyTokenRequest { + /** + * The resource operation to acquire a token for. + */ + operation: PolicyTokenOperation; + + /** + * The change reference. + */ + changeReference?: string; +} + +/** + * The resource operation to acquire a token for. + */ +model PolicyTokenOperation { + /** + * The request URI of the resource operation. + */ + uri: string; + + /** + * The http method of the resource operation. + */ + httpMethod: string; + + /** + * The payload of the resource operation. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "For backward compatibility" + content?: unknown; +} + +/** + * The policy token response properties. + */ +model PolicyTokenResponse { + /** + * The result of the completed token acquisition operation. Possible values are Succeeded and Failed. + */ + result?: PolicyTokenResult; + + /** + * Status message with additional details about the token acquisition operation result. + */ + message?: string; + + /** + * The date and time after which the client can try to acquire a token again in the case of retry-able failures. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + retryAfter?: utcDateTime; + + /** + * An array of external evaluation endpoint invocation results. + */ + @identifiers(#[]) + results?: ExternalEvaluationEndpointInvocationResult[]; + + /** + * The change reference associated with the operation for which the token is acquired. + */ + changeReference?: string; + + /** + * The issued policy token. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/secret-prop" "TODO: Check if this is a secret and add @secret or update reason" + token?: string; + + /** + * The unique Id assigned to the policy token. + */ + tokenId?: string; + + /** + * The expiration of the policy token. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + expiration?: utcDateTime; +} + +/** + * The external evaluation endpoint invocation results. + */ +model ExternalEvaluationEndpointInvocationResult { + /** + * The details of the policy requiring the external endpoint invocation. + */ + policyInfo?: PolicyLogInfo; + + /** + * The result of the external endpoint. Possible values are Succeeded and Failed. + */ + result?: ExternalEndpointResult; + + /** + * The status message with additional details about the invocation result. + */ + message?: string; + + /** + * The date and time after which a failed endpoint invocation can be retried. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + retryAfter?: utcDateTime; + + /** + * The set of claims that will be attached to the policy token as an attestation for the result of the endpoint invocation. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "For backward compatibility" + claims?: unknown; + + /** + * The expiration of the results. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + expiration?: utcDateTime; +} + +/** + * The policy log info. + */ +model PolicyLogInfo { + /** + * The policy definition Id. + */ + policyDefinitionId?: string; + + /** + * The policy set definition Id. + */ + policySetDefinitionId?: string; + + /** + * The policy definition instance Id inside a policy set. + */ + policyDefinitionReferenceId?: string; + + /** + * The policy set definition name. + */ + policySetDefinitionName?: string; + + /** + * The policy set definition display name. + */ + policySetDefinitionDisplayName?: string; + + /** + * The policy set definition version. + */ + policySetDefinitionVersion?: string; + + /** + * The policy set definition category. + */ + policySetDefinitionCategory?: string; + + /** + * The policy definition name. + */ + policyDefinitionName?: string; + + /** + * The policy definition display name. + */ + policyDefinitionDisplayName?: string; + + /** + * The policy definition version. + */ + policyDefinitionVersion?: string; + + /** + * The policy definition action. + */ + policyDefinitionEffect?: string; + + /** + * An array of policy definition group names. + */ + policyDefinitionGroupNames?: string[]; + + /** + * The policy assignment Id. + */ + policyAssignmentId?: string; + + /** + * The policy assignment name. + */ + policyAssignmentName?: string; + + /** + * The policy assignment display name. + */ + policyAssignmentDisplayName?: string; + + /** + * The policy assignment version. + */ + policyAssignmentVersion?: string; + + /** + * The policy assignment scope. + */ + policyAssignmentScope?: string; + + /** + * The resource location. + */ + resourceLocation?: string; + + /** + * The management group ancestors. + */ + ancestors?: string; + + /** + * The policy compliance reason code. + */ + complianceReasonCode?: string; + + /** + * An array of policy exemption Ids. + */ + policyExemptionIds?: string[]; +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/readme.md b/specification/resources/resource-manager/Microsoft.Authorization/policy/readme.md index c1207d330447..6e0b35f106bf 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/readme.md +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/readme.md @@ -35,12 +35,7 @@ These settings apply only when `--tag=package-policy-2025-03-stable` is specifie ```yaml $(tag) == 'package-policy-2025-03-stable' input-file: - - stable/2025-03-01/policyAssignments.json - - stable/2025-03-01/policyDefinitions.json - - stable/2025-03-01/policyDefinitionVersions.json - - stable/2025-03-01/policySetDefinitions.json - - stable/2025-03-01/policySetDefinitionVersions.json - - stable/2025-03-01/policyTokens.json + - stable/2025-03-01/openapi.json # Needed when there is more than one input file override-info: @@ -456,12 +451,21 @@ directive: - suppress: UniqueResourcePaths from: policySetDefinitions.json reason: policy set definition under an extension resource with Microsoft.Management + - suppress: UniqueResourcePaths + from: openapi.json + reason: policy set definition under an extension resource with Microsoft.Management - suppress: UniqueResourcePaths from: policyDefinitions.json reason: policy definition under an extension resource with Microsoft.Management + - suppress: UniqueResourcePaths + from: openapi.json + reason: policy definition under an extension resource with Microsoft.Management - suppress: UniqueResourcePaths from: policyAssignments.json reason: policy assignment under an extension resource with Microsoft.Management + - suppress: UniqueResourcePaths + from: openapi.json + reason: policy assignment under an extension resource with Microsoft.Management - suppress: UniqueResourcePaths from: policyExemptions.json where: $.paths @@ -469,46 +473,89 @@ directive: - suppress: OperationsAPIImplementation from: policyAssignments.json reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger + - suppress: OperationsAPIImplementation + from: openapi.json + reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger - suppress: OperationsAPIImplementation from: policyDefinitions.json reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger + - suppress: OperationsAPIImplementation + from: openapi.json + reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger - suppress: OperationsAPIImplementation from: policyDefinitionVersions.json reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger + - suppress: OperationsAPIImplementation + from: openapi.json + reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger - suppress: OperationsAPIImplementation from: policySetDefinitions.json reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger + - suppress: OperationsAPIImplementation + from: openapi.json + reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger - suppress: OperationsAPIImplementation from: policySetDefinitionVersions.json reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger + - suppress: OperationsAPIImplementation + from: openapi.json + reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger - suppress: OperationsAPIImplementation from: policyExemptions.json reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger + - suppress: OperationsAPIImplementation + from: openapi.json + reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger - suppress: OperationsAPIImplementation from: policyVariables.json reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger + - suppress: OperationsAPIImplementation + from: openapi.json + reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger - suppress: OperationsAPIImplementation from: policyVariableValues.json reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger + - suppress: OperationsAPIImplementation + from: openapi.json + reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger - suppress: BodyTopLevelProperties from: policyAssignments.json reason: Currently systemData is not allowed. Lint bug - collection GET result contains value and nextLink properties. + - suppress: BodyTopLevelProperties + from: openapi.json + reason: Currently systemData is not allowed. Lint bug - collection GET result contains value and nextLink properties. - suppress: BodyTopLevelProperties from: policyDefinitions.json reason: Currently systemData is not allowed. Lint bug - collection GET result contains value and nextLink properties. + - suppress: BodyTopLevelProperties + from: openapi.json + reason: Currently systemData is not allowed. Lint bug - collection GET result contains value and nextLink properties. - suppress: BodyTopLevelProperties from: policyDefinitionVersions.json reason: Currently systemData is not allowed. Lint bug - collection GET result contains value and nextLink properties. + - suppress: BodyTopLevelProperties + from: openapi.json + reason: Currently systemData is not allowed. Lint bug - collection GET result contains value and nextLink properties. - suppress: BodyTopLevelProperties from: policySetDefinitions.json reason: Currently systemData is not allowed. Lint bug - collection GET result contains value and nextLink properties. + - suppress: BodyTopLevelProperties + from: openapi.json + reason: Currently systemData is not allowed. Lint bug - collection GET result contains value and nextLink properties. - suppress: BodyTopLevelProperties from: policySetDefinitionVersions.json reason: Currently systemData is not allowed. Lint bug - collection GET result contains value and nextLink properties. + - suppress: BodyTopLevelProperties + from: openapi.json + reason: Currently systemData is not allowed. Lint bug - collection GET result contains value and nextLink properties. - suppress: BodyTopLevelProperties from: policyExemptions.json where: $.definitions.PolicyExemption.properties reason: Currently systemData is not allowed + - suppress: BodyTopLevelProperties + from: openapi.json + where: $.definitions.PolicyExemption.properties + reason: Currently systemData is not allowed - suppress: OperationsAPIImplementation where: $.paths from: dataPolicyManifests.json @@ -528,15 +575,27 @@ directive: - suppress: TopLevelResourcesListByResourceGroup from: policyDefinitions.json reason: Policy definitions are a proxy resource that is only usable on subscriptions or management groups + - suppress: TopLevelResourcesListByResourceGroup + from: openapi.json + reason: Policy definitions are a proxy resource that is only usable on subscriptions or management groups - suppress: TopLevelResourcesListByResourceGroup from: policyVariables.json reason: Policy variables are a proxy resource that is only usable on subscriptions or management groups + - suppress: TopLevelResourcesListByResourceGroup + from: openapi.json + reason: Policy variables are a proxy resource that is only usable on subscriptions or management groups - suppress: TopLevelResourcesListByResourceGroup from: policyVariableValues.json reason: Policy variable values are a proxy resource that is only usable on subscriptions or management groups + - suppress: TopLevelResourcesListByResourceGroup + from: openapi.json + reason: Policy variable values are a proxy resource that is only usable on subscriptions or management groups - suppress: TopLevelResourcesListByResourceGroup from: policySetDefinitions.json reason: Policy set definitions are a proxy resource that is only usable on subscriptions or management groups + - suppress: TopLevelResourcesListByResourceGroup + from: openapi.json + reason: Policy set definitions are a proxy resource that is only usable on subscriptions or management groups - suppress: PathForTrackedResourceTypes from: policyAssignments.json reason: Not a tracked resource type. The API has never been changed since inception. Would be a breaking change. diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/routes.tsp b/specification/resources/resource-manager/Microsoft.Authorization/policy/routes.tsp new file mode 100644 index 000000000000..a9bb674826d9 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/routes.tsp @@ -0,0 +1,154 @@ +// FIXME: Operations in this file are not detected as a resource operation, please confirm the conversion result manually + +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models.tsp"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using TypeSpec.OpenAPI; + +namespace Microsoft.Authorization; + +alias PolicyDefinitionListOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Authorization"; + }, + {}, + {} +>; + +alias PolicyDefinitionTenantListOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Authorization"; + }, + {}, + {} +>; + +alias PolicyDefinitionManagementGroupListOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Management"; + + ...CommonTypes.ManagementGroupNameParameter; + ...ApiVersionParameter; + }, + { + ...Extension.ExtensionProviderNamespace<PolicySetDefinitionVersion>; + }, + { + ...Extension.ExtensionProviderNamespace<PolicySetDefinitionVersion>; + } +>; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "For backward compatibility" +interface PolicyDefinitionVersionsOperationGroup { + /** + * This operation lists all the built-in policy definition versions for all built-in policy definitions. + */ + @summary("Lists all built-in policy definition versions.") + @post + @segment("listPolicyDefinitionVersions") + listAllBuiltins is PolicyDefinitionTenantListOps.ListSinglePage<PolicyDefinitionVersion>; + + /** + * This operation lists all the policy definition versions for all policy definitions at the management group scope. + */ + @summary("Lists all policy definition versions at management group scope.") + @post + @segment("listPolicyDefinitionVersions") + listAllAtManagementGroup is PolicyDefinitionManagementGroupListOps.ListSinglePage<PolicyDefinitionVersion>; + + /** + * This operation lists all the policy definition versions for all policy definitions within a subscription. + */ + @summary("Lists all policy definition versions within a subscription.") + @post + @segment("listPolicyDefinitionVersions") + listAll is PolicyDefinitionListOps.ListSinglePage<PolicyDefinitionVersion>; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "For backward compatibility" +interface PolicySetDefinitionVersionsOperationGroup { + /** + * This operation lists all the built-in policy set definition versions for all built-in policy set definitions. + */ + @summary("Lists all built-in policy set definition versions.") + @post + @segment("listPolicySetDefinitionVersions") + listAllBuiltins is PolicyDefinitionTenantListOps.ListSinglePage<PolicySetDefinitionVersion>; + + /** + * This operation lists all the policy set definition versions for all policy set definitions at the management group scope. + */ + @summary("Lists all policy set definition versions at management group scope.") + @post + @segment("listPolicySetDefinitionVersions") + listAllAtManagementGroup is PolicyDefinitionManagementGroupListOps.ListSinglePage<PolicySetDefinitionVersion>; + + /** + * This operation lists all the policy set definition versions for all policy set definitions within a subscription. + */ + @summary("Lists all policy set definition versions within a subscription.") + @post + @segment("listPolicySetDefinitionVersions") + listAll is PolicyDefinitionListOps.ListSinglePage<PolicySetDefinitionVersion>; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "For backward compatibility" +interface PolicyTokensOperationGroup { + /** + * This operation acquires a policy token in the given subscription for the given request body. + */ + @summary("Acquires a policy token.") + @autoRoute + @action("acquirePolicyToken") + acquire is ArmProviderActionSync< + Request = PolicyTokenRequest, + Response = PolicyTokenResponse, + Scope = SubscriptionActionScope + >; + + /** + * This operation acquires a policy token in the given management group for the given request body. + */ + @summary("Acquires a policy token at management group level.") + @autoRoute + @post + @action("acquirePolicyToken") + @armResourceCollectionAction + acquireAtManagementGroup( + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.Management", + + ...CommonTypes.ManagementGroupNameParameter, + ...ProviderNamespace<PolicyTokenRequest>, + ...ApiVersionParameter, + + /** The policy token properties. */ + @body parameters: PolicyTokenRequest, + ): PolicyTokenResponse | ErrorResponse; +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/acquirePolicyToken.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/acquirePolicyToken.json index ab7aa1eeeb3f..b91d59b10de2 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/acquirePolicyToken.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/acquirePolicyToken.json @@ -1,62 +1,64 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", "api-version": "2025-03-01", "parameters": { "operation": { - "uri": "https://management.azure.com/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM?api-version=2024-01-01", - "httpMethod": "delete" + "httpMethod": "delete", + "uri": "https://management.azure.com/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testVM?api-version=2024-01-01" } - } + }, + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { "body": { + "expiration": "2025-01-01T21:30:00.00Z", "result": "Succeeded", "results": [ { - "policyInfo": { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/5ed64d02", - "policyAssignmentId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/3f2def86" - }, - "result": "Succeeded", - "message": "Coin flip successful (success probability: '1').", "claims": { + "date": "2025-01-01T19:30:00.00Z", + "double": 0.99, + "int": 2, "isValid": false, "string": "testString", - "int": 2, - "double": 0.99, - "date": "2025-01-01T19:30:00.00Z", + "testArray": [ + "Apple", + "Banana", + "Cherry" + ], "testObject": { - "id": 12345, "name": "Complex Object", + "id": 12345, "details": { "createdBy": "John Doe", "createdDate": "2024-12-13T12:00:00Z", "metadata": { - "version": "1.0.0", "isActive": true, "tags": [ "example", "test", "object" - ] + ], + "version": "1.0.0" } } - }, - "testArray": [ - "Apple", - "Banana", - "Cherry" - ] + } + }, + "expiration": "2025-01-01T21:30:00.00Z", + "message": "Coin flip successful (success probability: '1').", + "policyInfo": { + "policyAssignmentId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/3f2def86", + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/5ed64d02" }, - "expiration": "2025-01-01T21:30:00.00Z" + "result": "Succeeded" } ], "token": "PoP 7zmVse52pjMKPQd5m2uiNjz5UV2pZ.LPGtRiTeuCDBomEVbzj9kIaL9odEmlNv4D9VzyrQLTAyv4HHnUR7oNytWnL.AQrZ5bSGAQZzr8eySqvugzrD-ceRVL311SL3Nn6f-4c9kgPgU_u1ArXQKW25QCxMlsAuWmaE", - "tokenId": "0da8a969-c660-4de0-a6a4-b2034d4325e4", - "expiration": "2025-01-01T21:30:00.00Z" + "tokenId": "0da8a969-c660-4de0-a6a4-b2034d4325e4" } } - } + }, + "operationId": "PolicyTokens_Acquire", + "title": "Acquire a policy token" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/acquirePolicyTokenAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/acquirePolicyTokenAtManagementGroup.json index d5ce160843d1..b4d77d1c792d 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/acquirePolicyTokenAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/acquirePolicyTokenAtManagementGroup.json @@ -1,62 +1,64 @@ { "parameters": { - "managementGroupName": "MyManagementGroup", "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup", "parameters": { "operation": { - "uri": "https://management.azure.com/providers/Microsoft.Management/managementGroups/MyManagementGroup/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000?api-version=2022-04-01", - "httpMethod": "delete" + "httpMethod": "delete", + "uri": "https://management.azure.com/providers/Microsoft.Management/managementGroups/MyManagementGroup/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000?api-version=2022-04-01" } } }, "responses": { "200": { "body": { + "expiration": "2025-01-01T21:30:00.00Z", "result": "Succeeded", "results": [ { - "policyInfo": { - "policyDefinitionId": "/providers/Microsoft.Management/managementGroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/5ed64d02", - "policyAssignmentId": "/providers/Microsoft.Management/managementGroups/MyManagementGroup/providers/Microsoft.Authorization/policyAssignments/3f2def86" - }, - "result": "Succeeded", - "message": "Coin flip successful (success probability: '1').", "claims": { + "date": "2025-01-01T19:30:00.00Z", + "double": 0.99, + "int": 2, "isValid": false, "string": "testString", - "int": 2, - "double": 0.99, - "date": "2025-01-01T19:30:00.00Z", + "testArray": [ + "Apple", + "Banana", + "Cherry" + ], "testObject": { - "id": 12345, "name": "Complex Object", + "id": 12345, "details": { "createdBy": "John Doe", "createdDate": "2024-12-13T12:00:00Z", "metadata": { - "version": "1.0.0", "isActive": true, "tags": [ "example", "test", "object" - ] + ], + "version": "1.0.0" } } - }, - "testArray": [ - "Apple", - "Banana", - "Cherry" - ] + } + }, + "expiration": "2025-01-01T21:30:00.00Z", + "message": "Coin flip successful (success probability: '1').", + "policyInfo": { + "policyAssignmentId": "/providers/Microsoft.Management/managementGroups/MyManagementGroup/providers/Microsoft.Authorization/policyAssignments/3f2def86", + "policyDefinitionId": "/providers/Microsoft.Management/managementGroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/5ed64d02" }, - "expiration": "2025-01-01T21:30:00.00Z" + "result": "Succeeded" } ], "token": "PoP 7zmVse52pjMKPQd5m2uiNjz5UV2pZ.LPGtRiTeuCDBomEVbzj9kIaL9odEmlNv4D9VzyrQLTAyv4HHnUR7oNytWnL.AQrZ5bSGAQZzr8eySqvugzrD-ceRVL311SL3Nn6f-4c9kgPgU_u1ArXQKW25QCxMlsAuWmaE", - "tokenId": "0da8a969-c660-4de0-a6a4-b2034d4325e4", - "expiration": "2025-01-01T21:30:00.00Z" + "tokenId": "0da8a969-c660-4de0-a6a4-b2034d4325e4" } } - } + }, + "operationId": "PolicyTokens_AcquireAtManagementGroup", + "title": "Acquire a policy token at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinition.json index 67c0bfce97f2..91438d92bc62 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinition.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinition.json @@ -1,95 +1,97 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyDefinitionName": "ResourceNaming", "api-version": "2025-03-01", "parameters": { "properties": { - "mode": "All", - "displayName": "Enforce resource naming convention", "description": "Force resource names to begin with given 'prefix' and/or end with given 'suffix'", + "displayName": "Enforce resource naming convention", "metadata": { "category": "Naming" }, - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } } } - } + }, + "policyDefinitionName": "ResourceNaming", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "201": { - "headers": {}, "body": { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "type": "Microsoft.Authorization/policyDefinitions", "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "policyType": "Custom" + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] } - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitions_CreateOrUpdate", + "title": "Create or update a policy definition" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionAdvancedParams.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionAdvancedParams.json index c0088f8a738d..58db388be568 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionAdvancedParams.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionAdvancedParams.json @@ -1,20 +1,35 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyDefinitionName": "EventHubDiagnosticLogs", "api-version": "2025-03-01", "parameters": { "properties": { - "mode": "Indexed", - "displayName": "Event Hubs should have diagnostic logging enabled", "description": "Audit enabling of logs and retain them up to a year. This enables recreation of activity trails for investigation purposes when a security incident occurs or your network is compromised", + "displayName": "Event Hubs should have diagnostic logging enabled", "metadata": { "category": "Event Hub" }, + "mode": "Indexed", + "parameters": { + "requiredRetentionDays": { + "type": "Integer", + "allowedValues": [ + 0, + 30, + 90, + 180, + 365 + ], + "defaultValue": 365, + "metadata": { + "description": "The required diagnostic logs retention in days", + "displayName": "Required retention (days)" + } + } + }, "policyRule": { "if": { - "field": "type", - "equals": "Microsoft.EventHub/namespaces" + "equals": "Microsoft.EventHub/namespaces", + "field": "type" }, "then": { "effect": "AuditIfNotExists", @@ -23,61 +38,57 @@ "existenceCondition": { "allOf": [ { - "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.enabled", - "equals": "true" + "equals": "true", + "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.enabled" }, { - "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.days", - "equals": "[parameters('requiredRetentionDays')]" + "equals": "[parameters('requiredRetentionDays')]", + "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.days" } ] } } } - }, - "parameters": { - "requiredRetentionDays": { - "type": "Integer", - "defaultValue": 365, - "allowedValues": [ - 0, - 30, - 90, - 180, - 365 - ], - "metadata": { - "displayName": "Required retention (days)", - "description": "The required diagnostic logs retention in days" - } - } } } - } + }, + "policyDefinitionName": "EventHubDiagnosticLogs", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "201": { - "headers": {}, "body": { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "type": "Microsoft.Authorization/policyDefinitions", "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "properties": { - "mode": "Indexed", - "displayName": "Event Hubs should have diagnostic logging enabled", "description": "Audit enabling of logs and retain them up to a year. This enables recreation of activity trails for investigation purposes when a security incident occurs or your network is compromised", + "displayName": "Event Hubs should have diagnostic logging enabled", "metadata": { "category": "Event Hub" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], + "mode": "Indexed", + "parameters": { + "requiredRetentionDays": { + "type": "Integer", + "allowedValues": [ + 0, + 30, + 90, + 180, + 365 + ], + "defaultValue": 365, + "metadata": { + "description": "The required diagnostic logs retention in days", + "displayName": "Required retention (days)" + } + } + }, "policyRule": { "if": { - "field": "type", - "equals": "Microsoft.EventHub/namespaces" + "equals": "Microsoft.EventHub/namespaces", + "field": "type" }, "then": { "effect": "AuditIfNotExists", @@ -86,37 +97,28 @@ "existenceCondition": { "allOf": [ { - "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.enabled", - "equals": "true" + "equals": "true", + "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.enabled" }, { - "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.days", - "equals": "[parameters('requiredRetentionDays')]" + "equals": "[parameters('requiredRetentionDays')]", + "field": "Microsoft.Insights/diagnosticSettings/logs[*].retentionPolicy.days" } ] } } } }, - "parameters": { - "requiredRetentionDays": { - "type": "Integer", - "defaultValue": 365, - "allowedValues": [ - 0, - 30, - 90, - 180, - 365 - ], - "metadata": { - "displayName": "Required retention (days)", - "description": "The required diagnostic logs retention in days" - } - } - } + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] } - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitions_CreateOrUpdate", + "title": "Create or update a policy definition with advanced parameters" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionAtManagementGroup.json index dfad853cc2c8..140f26107013 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionAtManagementGroup.json @@ -1,95 +1,97 @@ { "parameters": { - "managementGroupId": "MyManagementGroup", - "policyDefinitionName": "ResourceNaming", "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup", "parameters": { "properties": { - "mode": "All", - "displayName": "Enforce resource naming convention", "description": "Force resource names to begin with given 'prefix' and/or end with given 'suffix'", + "displayName": "Enforce resource naming convention", "metadata": { "category": "Naming" }, - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } } } - } + }, + "policyDefinitionName": "ResourceNaming" }, "responses": { "201": { - "headers": {}, "body": { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "type": "Microsoft.Authorization/policyDefinitions", "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "policyType": "Custom" + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] } - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitions_CreateOrUpdateAtManagementGroup", + "title": "Create or update a policy definition at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionExternalEvaluationEnforcementSettings.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionExternalEvaluationEnforcementSettings.json index a629d1a47c0b..66a1862463c8 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionExternalEvaluationEnforcementSettings.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionExternalEvaluationEnforcementSettings.json @@ -1,85 +1,91 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyDefinitionName": "RandomizeVMAllocation", "api-version": "2025-03-01", "parameters": { "properties": { - "mode": "Indexed", - "displayName": "Randomize VM Allocation", "description": "Randomly disable VM allocation in eastus by having policy rule reference the outcome of invoking an external endpoint using the CoinFlip endpoint that returns random values.", + "displayName": "Randomize VM Allocation", + "externalEvaluationEnforcementSettings": { + "endpointSettings": { + "kind": "CoinFlip", + "details": { + "successProbability": 0.5 + } + }, + "missingTokenAction": "audit", + "roleDefinitionIds": [ + "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/roleDefinitions/f0cc2aea-b517-48f6-8f9e-0c01c687907b" + ] + }, "metadata": { "category": "VM" }, + "mode": "Indexed", "policyRule": { "if": { "allOf": [ { - "field": "type", - "equals": "Microsoft.Compute/virtualMachines" + "equals": "Microsoft.Compute/virtualMachines", + "field": "type" }, { - "field": "location", - "equals": "eastus" + "equals": "eastus", + "field": "location" }, { - "value": "[claims().isValid]", - "equals": "false" + "equals": "false", + "value": "[claims().isValid]" } ] }, "then": { "effect": "deny" } - }, - "externalEvaluationEnforcementSettings": { - "missingTokenAction": "audit", - "endpointSettings": { - "kind": "CoinFlip", - "details": { - "successProbability": 0.5 - } - }, - "roleDefinitionIds": [ - "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/roleDefinitions/f0cc2aea-b517-48f6-8f9e-0c01c687907b" - ] } } - } + }, + "policyDefinitionName": "RandomizeVMAllocation", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "201": { - "headers": {}, "body": { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/RandomizeVMAllocation", - "type": "Microsoft.Authorization/policyDefinitions", "name": "RandomizeVMAllocation", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/RandomizeVMAllocation", "properties": { - "mode": "Indexed", - "displayName": "Randomize VM Allocation", "description": "Randomly disable VM allocation in eastus by having policy rule reference the outcome of invoking an external endpoint using the CoinFlip endpoint that returns random values.", + "displayName": "Randomize VM Allocation", + "externalEvaluationEnforcementSettings": { + "endpointSettings": { + "kind": "CoinFlip", + "details": { + "successProbability": 0.5 + } + }, + "missingTokenAction": "audit", + "roleDefinitionIds": [ + "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/roleDefinitions/f0cc2aea-b517-48f6-8f9e-0c01c687907b" + ] + }, "metadata": { "category": "VM" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], + "mode": "Indexed", "policyRule": { "if": { "allOf": [ { - "field": "type", - "equals": "Microsoft.Compute/virtualMachines" + "equals": "Microsoft.Compute/virtualMachines", + "field": "type" }, { - "field": "location", - "equals": "eastus" + "equals": "eastus", + "field": "location" }, { - "value": "[claims().isValid]", - "equals": "false" + "equals": "false", + "value": "[claims().isValid]" } ] }, @@ -87,21 +93,17 @@ "effect": "deny" } }, - "externalEvaluationEnforcementSettings": { - "missingTokenAction": "audit", - "endpointSettings": { - "kind": "CoinFlip", - "details": { - "successProbability": 0.5 - } - }, - "roleDefinitionIds": [ - "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/roleDefinitions/f0cc2aea-b517-48f6-8f9e-0c01c687907b" - ] - }, - "policyType": "Custom" + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] } - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitions_CreateOrUpdate", + "title": "Create or update a policy definition with external evaluation enforcement settings" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionVersion.json index a91f163f900f..5bbb045374f8 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionVersion.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionVersion.json @@ -1,108 +1,77 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyDefinitionName": "ResourceNaming", - "policyDefinitionVersion": "1.2.1", "api-version": "2025-03-01", "parameters": { "properties": { - "mode": "All", - "displayName": "Enforce resource naming convention", "description": "Force resource names to begin with given 'prefix' and/or end with given 'suffix'", + "displayName": "Enforce resource naming convention", "metadata": { "category": "Naming" }, - "version": "1.2.1", - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } - } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "version": "1.2.1" } - } + }, + "policyDefinitionName": "ResourceNaming", + "policyDefinitionVersion": "1.2.1", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", - "type": "Microsoft.Authorization/policyDefinitions/versions", "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, - "version": "1.2.1", - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "policyType": "Custom" - } - } - }, - "201": { - "headers": {}, - "body": { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", - "type": "Microsoft.Authorization/policyDefinitions/versions", - "name": "1.2.1", - "properties": { - "mode": "All", - "displayName": "Naming Convention", - "description": "Force resource names to begin with 'prefix' and end with 'suffix'", - "metadata": { - "category": "Naming" - }, - "version": "1.2.1", "policyRule": { "if": { "not": { @@ -114,25 +83,58 @@ "effect": "deny" } }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + "headers": {} + }, + "201": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "policyType": "Custom" + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" } - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitionVersions_CreateOrUpdate", + "title": "Create or update a policy definition version" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionVersionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionVersionAtManagementGroup.json index 00d18dd67ceb..ccc91d11b970 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionVersionAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicyDefinitionVersionAtManagementGroup.json @@ -1,108 +1,77 @@ { "parameters": { - "managementGroupName": "MyManagementGroup", - "policyDefinitionName": "ResourceNaming", - "policyDefinitionVersion": "1.2.1", "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup", "parameters": { "properties": { - "mode": "All", - "displayName": "Enforce resource naming convention", "description": "Force resource names to begin with given 'prefix' and/or end with given 'suffix'", + "displayName": "Enforce resource naming convention", "metadata": { "category": "Naming" }, - "version": "1.2.1", - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } - } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "version": "1.2.1" } - } + }, + "policyDefinitionName": "ResourceNaming", + "policyDefinitionVersion": "1.2.1" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", - "type": "Microsoft.Authorization/policyDefinitions/versions", "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, - "version": "1.2.1", - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "policyType": "Custom" - } - } - }, - "201": { - "headers": {}, - "body": { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", - "type": "Microsoft.Authorization/policyDefinitions/versions", - "name": "1.2.1", - "properties": { - "mode": "All", - "displayName": "Naming Convention", - "description": "Force resource names to begin with 'prefix' and end with 'suffix'", - "metadata": { - "category": "Naming" - }, - "version": "1.2.1", "policyRule": { "if": { "not": { @@ -114,25 +83,58 @@ "effect": "deny" } }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + "headers": {} + }, + "201": { + "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "policyType": "Custom" + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" } - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitionVersions_CreateOrUpdateAtManagementGroup", + "title": "Create or update a policy definition version at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinition.json index ef7e08b69614..0dd02b6ce0ba 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinition.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinition.json @@ -1,12 +1,10 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policySetDefinitionName": "CostManagement", "api-version": "2025-03-01", "parameters": { "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, @@ -21,8 +19,6 @@ }, "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -30,11 +26,11 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "[parameters('namePrefix')]" @@ -42,30 +38,28 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } ] } - } + }, + "policySetDefinitionName": "CostManagement", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { - "201": { - "headers": {}, + "200": { "body": { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "type": "Microsoft.Authorization/policySetDefinitions", "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "parameters": { "namePrefix": { "type": "String", @@ -77,9 +71,6 @@ }, "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", - "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -87,12 +78,11 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "[parameters('namePrefix')]" @@ -100,21 +90,23 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } ] } - } + }, + "headers": {} }, - "200": { - "headers": {}, + "201": { "body": { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "type": "Microsoft.Authorization/policySetDefinitions", "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, @@ -129,8 +121,7 @@ }, "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", - "policyDefinitionReferenceId": "Limit_Skus", + "definitionVersion": "1.*.*", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -138,11 +129,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "policyDefinitionReferenceId": "Resource_Naming", + "definitionVersion": "1.*.*", "parameters": { "prefix": { "value": "[parameters('namePrefix')]" @@ -150,11 +142,21 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] } - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitions_CreateOrUpdate", + "title": "Create or update a policy set definition" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionAtManagementGroup.json index 4127fe0bb59e..adf5a31305ef 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionAtManagementGroup.json @@ -1,19 +1,16 @@ { "parameters": { - "managementGroupId": "MyManagementGroup", - "policySetDefinitionName": "CostManagement", "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup", "parameters": { "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -21,11 +18,11 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -33,35 +30,30 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } ] } - } + }, + "policySetDefinitionName": "CostManagement" }, "responses": { - "201": { - "headers": {}, + "200": { "body": { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "type": "Microsoft.Authorization/policySetDefinitions", "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -69,12 +61,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -82,29 +74,29 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } ] } - } + }, + "headers": {} }, - "200": { - "headers": {}, + "201": { "body": { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "type": "Microsoft.Authorization/policySetDefinitions", "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -112,12 +104,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -125,11 +117,21 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] } - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitions_CreateOrUpdateAtManagementGroup", + "title": "Create or update a policy set definition at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionVersion.json index 0a5b284e5a73..f1aa0608b1db 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionVersion.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionVersion.json @@ -1,17 +1,13 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policySetDefinitionName": "CostManagement", - "policyDefinitionVersion": "1.2.1", "api-version": "2025-03-01", "parameters": { "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", "parameters": { "namePrefix": { "type": "String", @@ -23,8 +19,6 @@ }, "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -32,11 +26,11 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "[parameters('namePrefix')]" @@ -44,26 +38,30 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } - ] + ], + "version": "1.2.1" } - } + }, + "policyDefinitionVersion": "1.2.1", + "policySetDefinitionName": "CostManagement", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { - "201": { - "headers": {}, + "200": { "body": { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", - "type": "Microsoft.Authorization/policySetDefinitions/versions", "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", "parameters": { "namePrefix": { "type": "String", @@ -75,9 +73,7 @@ }, "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -85,12 +81,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "[parameters('namePrefix')]" @@ -98,25 +94,27 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } - ] + ], + "version": "1.2.1" } - } + }, + "headers": {} }, - "200": { - "headers": {}, + "201": { "body": { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", - "type": "Microsoft.Authorization/policySetDefinitions/versions", "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", "parameters": { "namePrefix": { "type": "String", @@ -128,9 +126,7 @@ }, "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -138,12 +134,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "[parameters('namePrefix')]" @@ -151,11 +147,17 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } - ] + ], + "version": "1.2.1" } - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitionVersions_CreateOrUpdate", + "title": "Create or update a policy set definition version" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionVersionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionVersionAtManagementGroup.json index 8acf8598ccec..079604c3768d 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionVersionAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionVersionAtManagementGroup.json @@ -1,21 +1,16 @@ { "parameters": { - "managementGroupName": "MyManagementGroup", - "policySetDefinitionName": "CostManagement", - "policyDefinitionVersion": "1.2.1", "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup", "parameters": { "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -23,11 +18,11 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -35,31 +30,32 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } - ] + ], + "version": "1.2.1" } - } + }, + "policyDefinitionVersion": "1.2.1", + "policySetDefinitionName": "CostManagement" }, "responses": { - "201": { - "headers": {}, + "200": { "body": { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", - "type": "Microsoft.Authorization/policySetDefinitions/versions", - "name": "1.2.1", + "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -67,12 +63,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -80,29 +76,29 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } ] } - } + }, + "headers": {} }, - "200": { - "headers": {}, + "201": { "body": { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "type": "Microsoft.Authorization/policySetDefinitions", - "name": "CostManagement", + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -110,12 +106,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -123,11 +119,17 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } - ] + ], + "version": "1.2.1" } - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitionVersions_CreateOrUpdateAtManagementGroup", + "title": "Create or update a policy set definition version at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionWithGroups.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionWithGroups.json index fd6f4b9e25d9..4bc6d042bb4a 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionWithGroups.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionWithGroups.json @@ -1,32 +1,28 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policySetDefinitionName": "CostManagement", "api-version": "2025-03-01", "parameters": { "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, "policyDefinitionGroups": [ { "name": "CostSaving", - "displayName": "Cost Management Policies", - "description": "Policies designed to control spend within a subscription." + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" }, { "name": "Organizational", - "displayName": "Organizational Policies", - "description": "Policies that help enforce resource organization standards within a subscription." + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" } ], "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "groupNames": [ "CostSaving" ], @@ -37,12 +33,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "groupNames": [ "Organizational" ], @@ -53,47 +49,43 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } ] } - } + }, + "policySetDefinitionName": "CostManagement", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { - "201": { - "headers": {}, + "200": { "body": { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "type": "Microsoft.Authorization/policySetDefinitions", "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyDefinitionGroups": [ { "name": "CostSaving", - "displayName": "Cost Management Policies", - "description": "Policies designed to control spend within a subscription." + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" }, { "name": "Organizational", - "displayName": "Organizational Policies", - "description": "Policies that help enforce resource organization standards within a subscription." + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" } ], "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "groupNames": [ "CostSaving" ], @@ -104,12 +96,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "groupNames": [ "Organizational" ], @@ -120,46 +112,46 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] } - } + }, + "headers": {} }, - "200": { - "headers": {}, + "201": { "body": { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "type": "Microsoft.Authorization/policySetDefinitions", "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyDefinitionGroups": [ { "name": "CostSaving", - "displayName": "Cost Management Policies", - "description": "Policies designed to control spend within a subscription." + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" }, { "name": "Organizational", - "displayName": "Organizational Policies", - "description": "Policies that help enforce resource organization standards within a subscription." + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" } ], "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "groupNames": [ "CostSaving" ], @@ -170,12 +162,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "groupNames": [ "Organizational" ], @@ -186,11 +178,21 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] } - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitions_CreateOrUpdate", + "title": "Create or update a policy set definition with groups" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionWithGroupsAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionWithGroupsAtManagementGroup.json index 529e8355de04..e5e142d22577 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionWithGroupsAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createOrUpdatePolicySetDefinitionWithGroupsAtManagementGroup.json @@ -1,31 +1,28 @@ { "parameters": { - "managementGroupId": "MyManagementGroup", - "policySetDefinitionName": "CostManagement", "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup", "parameters": { "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, "policyDefinitionGroups": [ { "name": "CostSaving", - "displayName": "Cost Management Policies", - "description": "Policies designed to control spend within a subscription." + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" }, { "name": "Organizational", - "displayName": "Organizational Policies", - "description": "Policies that help enforce resource organization standards within a subscription." + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" } ], "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", - "policyDefinitionReferenceId": "Limit_Skus", "groupNames": [ "CostSaving" ], @@ -36,11 +33,11 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "policyDefinitionReferenceId": "Resource_Naming", "groupNames": [ "Organizational" ], @@ -51,47 +48,42 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } ] } - } + }, + "policySetDefinitionName": "CostManagement" }, "responses": { - "201": { - "headers": {}, + "200": { "body": { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "type": "Microsoft.Authorization/policySetDefinitions", "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyDefinitionGroups": [ { "name": "CostSaving", - "displayName": "Cost Management Policies", - "description": "Policies designed to control spend within a subscription." + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" }, { "name": "Organizational", - "displayName": "Organizational Policies", - "description": "Policies that help enforce resource organization standards within a subscription." + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" } ], "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "groupNames": [ "CostSaving" ], @@ -102,12 +94,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "groupNames": [ "Organizational" ], @@ -118,46 +110,46 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] } - } + }, + "headers": {} }, - "200": { - "headers": {}, + "201": { "body": { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "type": "Microsoft.Authorization/policySetDefinitions", "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyDefinitionGroups": [ { "name": "CostSaving", - "displayName": "Cost Management Policies", - "description": "Policies designed to control spend within a subscription." + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" }, { "name": "Organizational", - "displayName": "Organizational Policies", - "description": "Policies that help enforce resource organization standards within a subscription." + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" } ], "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "groupNames": [ "CostSaving" ], @@ -168,12 +160,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "groupNames": [ "Organizational" ], @@ -184,11 +176,21 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] } - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitions_CreateOrUpdateAtManagementGroup", + "title": "Create or update a policy set definition with groups at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignment.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignment.json index 9df240827893..0d8381c1a2e1 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignment.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignment.json @@ -1,16 +1,18 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyAssignmentName": "EnforceNaming", "api-version": "2025-03-01", "parameters": { "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "displayName": "Enforce resource naming rules", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "nonComplianceMessages": [ + { + "message": "Resource names must start with 'DeptA' and end with '-LC'." + } + ], "parameters": { "prefix": { "value": "DeptA" @@ -19,26 +21,32 @@ "value": "-LC" } }, - "nonComplianceMessages": [ - { - "message": "Resource names must start with 'DeptA' and end with '-LC'." - } - ] + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming" } - } + }, + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "201": { - "headers": {}, "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "definitionVersion": "1.*.*", + "nonComplianceMessages": [ + { + "message": "Resource names must start with 'DeptA' and end with '-LC'." + } + ], "notScopes": [], "parameters": { "prefix": { @@ -48,19 +56,13 @@ "value": "-LC" } }, - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "nonComplianceMessages": [ - { - "message": "Resource names must start with 'DeptA' and end with '-LC'." - } - ], - "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", - "type": "Microsoft.Authorization/policyAssignments", - "name": "EnforceNaming" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentNonComplianceMessages.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentNonComplianceMessages.json index f31383871d17..506a0db6ad8e 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentNonComplianceMessages.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentNonComplianceMessages.json @@ -1,12 +1,9 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyAssignmentName": "securityInitAssignment", "api-version": "2025-03-01", "parameters": { "properties": { "displayName": "Enforce security policies", - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/securityInitiative", "nonComplianceMessages": [ { "message": "Resources must comply with all internal security policies. See <internal site URL> for more info." @@ -19,24 +16,27 @@ "message": "Storage accounts must have firewall rules configured.", "policyDefinitionReferenceId": "8572513655450389710" } - ] + ], + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/securityInitiative" } - } + }, + "policyAssignmentName": "securityInitAssignment", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "201": { - "headers": {}, "body": { + "name": "securityInitAssignment", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/securityInitAssignment", "properties": { + "definitionVersion": "1.*.*", "displayName": "Enforce security policies", + "enforcementMode": "Default", + "instanceId": "b7e0f8a9-1c2d-4e3f-8b4c-5d6e7f8a9b0c", "metadata": { "assignedBy": "User 1" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/securityInitiative", - "definitionVersion": "1.*.*", - "notScopes": [], - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", "nonComplianceMessages": [ { "message": "Resources must comply with all internal security policies. See <internal site URL> for more info." @@ -50,12 +50,14 @@ "policyDefinitionReferenceId": "8572513655450389710" } ], - "instanceId": "b7e0f8a9-1c2d-4e3f-8b4c-5d6e7f8a9b0c" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/securityInitAssignment", - "type": "Microsoft.Authorization/policyAssignments", - "name": "securityInitAssignment" - } + "notScopes": [], + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/securityInitiative", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment with multiple non-compliance messages" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithEnrollEnforcement.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithEnrollEnforcement.json index 12743358049d..f14af10acda8 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithEnrollEnforcement.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithEnrollEnforcement.json @@ -1,16 +1,14 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyAssignmentName": "EnforceNamingEnroll", "api-version": "2025-03-01", "parameters": { "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Enroll", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "parameters": { "prefix": { "value": "DeptA" @@ -19,22 +17,27 @@ "value": "-LC" } }, - "enforcementMode": "Enroll" + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming" } - } + }, + "policyAssignmentName": "EnforceNamingEnroll", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "201": { - "headers": {}, "body": { + "name": "EnforceNamingEnroll", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNamingEnroll", "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Enroll", + "instanceId": "f2b3c4d5-e6f7-8a9b-0c1d-2e3f4a5b6c7d", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "definitionVersion": "1.*.*", "notScopes": [], "parameters": { "prefix": { @@ -44,14 +47,13 @@ "value": "-LC" } }, - "enforcementMode": "Enroll", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "instanceId": "f2b3c4d5-e6f7-8a9b-0c1d-2e3f4a5b6c7d" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNamingEnroll", - "type": "Microsoft.Authorization/policyAssignments", - "name": "EnforceNamingEnroll" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment to enforce policy effect only on enrolled resources during resource creation or update." } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithIdentity.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithIdentity.json index 68286fd11f2a..1ff9945511b9 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithIdentity.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithIdentity.json @@ -1,20 +1,18 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyAssignmentName": "EnforceNaming", "api-version": "2025-03-01", "parameters": { - "location": "eastus", "identity": { "type": "SystemAssigned" }, + "location": "eastus", "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", "metadata": { "assignedBy": "Foo Bar" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "parameters": { "prefix": { "value": "DeptA" @@ -23,22 +21,33 @@ "value": "-LC" } }, - "enforcementMode": "Default" + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming" } - } + }, + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "201": { - "headers": {}, "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "identity": { + "type": "SystemAssigned", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", + "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" + }, + "location": "eastus", "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "definitionVersion": "1.*.*", "notScopes": [], "parameters": { "prefix": { @@ -48,20 +57,13 @@ "value": "-LC" } }, - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b" - }, - "identity": { - "type": "SystemAssigned", - "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", - "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" - }, - "location": "eastus", - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", - "type": "Microsoft.Authorization/policyAssignments", - "name": "EnforceNaming" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment with a system assigned identity" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithOverrides.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithOverrides.json index 93b4de1a4387..7ef5947130af 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithOverrides.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithOverrides.json @@ -1,84 +1,86 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyAssignmentName": "CostManagement", "api-version": "2025-03-01", "parameters": { "properties": { - "displayName": "Limit the resource location and resource SKU", "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "definitionVersion": "1.*.*", "overrides": [ { "kind": "policyEffect", - "value": "Audit", "selectors": [ { - "kind": "policyDefinitionReferenceId", "in": [ "Limit_Skus", "Limit_Locations" - ] + ], + "kind": "policyDefinitionReferenceId" } - ] + ], + "value": "Audit" }, { "kind": "definitionVersion", - "value": "2.*.*", "selectors": [ { - "kind": "resourceLocation", "in": [ "eastUSEuap", "centralUSEuap" - ] + ], + "kind": "resourceLocation" } - ] + ], + "value": "2.*.*" } - ] + ], + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement" } - } + }, + "policyAssignmentName": "CostManagement", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "201": { - "headers": {}, "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", "properties": { - "displayName": "Limit the resource location and resource SKU", "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", + "enforcementMode": "Default", + "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "definitionVersion": "1.*.*", "notScopes": [], - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", "overrides": [ { "kind": "policyEffect", - "value": "Audit", "selectors": [ { - "kind": "policyDefinitionReferenceId", "in": [ "Limit_Skus", "Limit_Locations" - ] + ], + "kind": "policyDefinitionReferenceId" } - ] + ], + "value": "Audit" } ], - "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", - "type": "Microsoft.Authorization/policyAssignments", - "name": "CostManagement" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment with overrides" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithResourceSelectors.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithResourceSelectors.json index 30625c8405d4..3bfb7303f6ec 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithResourceSelectors.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithResourceSelectors.json @@ -1,12 +1,10 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyAssignmentName": "CostManagement", "api-version": "2025-03-01", "parameters": { "properties": { - "displayName": "Limit the resource location and resource SKU", "description": "Limit the resource location and resource SKU", + "displayName": "Limit the resource location and resource SKU", "metadata": { "assignedBy": "Special Someone" }, @@ -16,53 +14,57 @@ "name": "SDPRegions", "selectors": [ { - "kind": "resourceLocation", "in": [ "eastus2euap", "centraluseuap" - ] + ], + "kind": "resourceLocation" } ] } ] } - } + }, + "policyAssignmentName": "CostManagement", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "201": { - "headers": {}, "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", "properties": { - "displayName": "Limit the resource location and resource SKU", "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", + "enforcementMode": "Default", + "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "definitionVersion": "1.*.*", "notScopes": [], - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "resourceSelectors": [ { "name": "SDPRegions", "selectors": [ { - "kind": "resourceLocation", "in": [ "eastus2euap", "centraluseuap" - ] + ], + "kind": "resourceLocation" } ] } ], - "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", - "type": "Microsoft.Authorization/policyAssignments", - "name": "CostManagement" - } + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment with resource selectors" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithUserAssignedIdentity.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithUserAssignedIdentity.json index eb03da7619e8..765add88100a 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithUserAssignedIdentity.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithUserAssignedIdentity.json @@ -1,23 +1,21 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyAssignmentName": "EnforceNaming", "api-version": "2025-03-01", "parameters": { - "location": "eastus", "identity": { "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": {} } }, + "location": "eastus", "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", "metadata": { "assignedBy": "Foo Bar" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "parameters": { "prefix": { "value": "DeptA" @@ -26,22 +24,37 @@ "value": "-LC" } }, - "enforcementMode": "Default" + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming" } - } + }, + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "201": { - "headers": {}, "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": { + "clientId": "4bee2b8a-1bee-47c2-90e9-404241551135", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a" + } + } + }, + "location": "eastus", "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "definitionVersion": "1.*.*", "notScopes": [], "parameters": { "prefix": { @@ -51,24 +64,13 @@ "value": "-LC" } }, - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b" - }, - "identity": { - "type": "UserAssigned", - "userAssignedIdentities": { - "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": { - "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", - "clientId": "4bee2b8a-1bee-47c2-90e9-404241551135" - } - } - }, - "location": "eastus", - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", - "type": "Microsoft.Authorization/policyAssignments", - "name": "EnforceNaming" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment with a user assigned identity" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithoutEnforcement.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithoutEnforcement.json index 8a9d3d0c5137..61d6cd45f59d 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithoutEnforcement.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/createPolicyAssignmentWithoutEnforcement.json @@ -1,16 +1,14 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyAssignmentName": "EnforceNaming", "api-version": "2025-03-01", "parameters": { "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "displayName": "Enforce resource naming rules", + "enforcementMode": "DoNotEnforce", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "parameters": { "prefix": { "value": "DeptA" @@ -19,22 +17,27 @@ "value": "-LC" } }, - "enforcementMode": "DoNotEnforce" + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming" } - } + }, + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "201": { - "headers": {}, "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "DoNotEnforce", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "definitionVersion": "1.*.*", "notScopes": [], "parameters": { "prefix": { @@ -44,14 +47,13 @@ "value": "-LC" } }, - "enforcementMode": "DoNotEnforce", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", - "type": "Microsoft.Authorization/policyAssignments", - "name": "EnforceNaming" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Create", + "title": "Create or update a policy assignment without enforcing policy effect during resource creation or update." } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyAssignment.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyAssignment.json index 28849c27c25f..e03b67b96c17 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyAssignment.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyAssignment.json @@ -1,21 +1,23 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policyAssignmentName": "EnforceNaming", - "api-version": "2025-03-01" + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "definitionVersion": "1.*.*", "notScopes": [], "parameters": { "prefix": { @@ -25,16 +27,16 @@ "value": "-LC" } }, - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", - "type": "Microsoft.Authorization/policyAssignments", - "name": "EnforceNaming" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} }, "204": { "headers": {} } - } + }, + "operationId": "PolicyAssignments_Delete", + "title": "Delete a policy assignment" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinition.json index 840f916a951e..7576285efdb7 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinition.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinition.json @@ -1,8 +1,8 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policyDefinitionName": "ResourceNaming", - "api-version": "2025-03-01" + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { @@ -11,5 +11,7 @@ "204": { "headers": {} } - } + }, + "operationId": "PolicyDefinitions_Delete", + "title": "Delete a policy definition" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinitionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinitionAtManagementGroup.json index b80dd773ec0d..228df971b91a 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinitionAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinitionAtManagementGroup.json @@ -1,8 +1,8 @@ { "parameters": { + "api-version": "2025-03-01", "managementGroupId": "MyManagementGroup", - "policyDefinitionName": "ResourceNaming", - "api-version": "2025-03-01" + "policyDefinitionName": "ResourceNaming" }, "responses": { "200": { @@ -11,5 +11,7 @@ "204": { "headers": {} } - } + }, + "operationId": "PolicyDefinitions_DeleteAtManagementGroup", + "title": "Delete a policy definition at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinitionVersion.json index 0f654df7e16d..d41ae43ef4ce 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinitionVersion.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinitionVersion.json @@ -1,9 +1,9 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policyDefinitionName": "ResourceNaming", "policyDefinitionVersion": "1.2.1", - "api-version": "2025-03-01" + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { @@ -12,5 +12,7 @@ "204": { "headers": {} } - } + }, + "operationId": "PolicyDefinitionVersions_Delete", + "title": "Delete a policy definition version" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinitionVersionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinitionVersionAtManagementGroup.json index 3209fd673fec..b841e31494c2 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinitionVersionAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicyDefinitionVersionAtManagementGroup.json @@ -1,9 +1,9 @@ { "parameters": { + "api-version": "2025-03-01", "managementGroupName": "MyManagementGroup", "policyDefinitionName": "ResourceNaming", - "policyDefinitionVersion": "1.2.1", - "api-version": "2025-03-01" + "policyDefinitionVersion": "1.2.1" }, "responses": { "200": { @@ -12,5 +12,7 @@ "204": { "headers": {} } - } + }, + "operationId": "PolicyDefinitionVersions_DeleteAtManagementGroup", + "title": "Delete a policy definition version at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinition.json index a69af9a5d9cc..93388f84fcd0 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinition.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinition.json @@ -1,8 +1,8 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policySetDefinitionName": "CostManagement", - "api-version": "2025-03-01" + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { @@ -11,5 +11,7 @@ "204": { "headers": {} } - } + }, + "operationId": "PolicySetDefinitions_Delete", + "title": "Delete a policy set definition" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinitionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinitionAtManagementGroup.json index 4e6b5a0e1a3b..18888ec78cf8 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinitionAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinitionAtManagementGroup.json @@ -1,8 +1,8 @@ { "parameters": { + "api-version": "2025-03-01", "managementGroupId": "MyManagementGroup", - "policySetDefinitionName": "CostManagement", - "api-version": "2025-03-01" + "policySetDefinitionName": "CostManagement" }, "responses": { "200": { @@ -11,5 +11,7 @@ "204": { "headers": {} } - } + }, + "operationId": "PolicySetDefinitions_DeleteAtManagementGroup", + "title": "Delete a policy set definition at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinitionVersion.json index 9c5b2f3db5bf..29dc54f08816 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinitionVersion.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinitionVersion.json @@ -1,9 +1,9 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policySetDefinitionName": "CostManagement", + "api-version": "2025-03-01", "policyDefinitionVersion": "1.2.1", - "api-version": "2025-03-01" + "policySetDefinitionName": "CostManagement", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { @@ -12,5 +12,7 @@ "204": { "headers": {} } - } + }, + "operationId": "PolicySetDefinitionVersions_Delete", + "title": "Delete a policy set definition version" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinitionVersionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinitionVersionAtManagementGroup.json index d3cfdea83687..cc00c62a0f06 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinitionVersionAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/deletePolicySetDefinitionVersionAtManagementGroup.json @@ -1,9 +1,9 @@ { "parameters": { + "api-version": "2025-03-01", "managementGroupName": "MyManagementGroup", - "policySetDefinitionName": "CostManagement", "policyDefinitionVersion": "1.2.1", - "api-version": "2025-03-01" + "policySetDefinitionName": "CostManagement" }, "responses": { "200": { @@ -12,5 +12,7 @@ "204": { "headers": {} } - } + }, + "operationId": "PolicySetDefinitionVersions_DeleteAtManagementGroup", + "title": "Delete a policy set definition version at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltInPolicySetDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltInPolicySetDefinition.json index d47320962b32..e003a337577d 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltInPolicySetDefinition.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltInPolicySetDefinition.json @@ -1,82 +1,84 @@ { "parameters": { - "policySetDefinitionName": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8", - "api-version": "2025-03-01" + "api-version": "2025-03-01", + "policySetDefinitionName": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8" }, "responses": { "200": { - "headers": {}, "body": { + "name": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8", "properties": { - "displayName": "[Preview]: Enable Monitoring in Azure Security Center", - "policyType": "BuiltIn", "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", "metadata": { "category": "Security Center" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "parameters": {}, "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "policyDefinitionReferenceId": "RefId1" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "policyDefinitionReferenceId": "RefId2" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "policyDefinitionReferenceId": "RefId3" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "policyDefinitionReferenceId": "RefId4" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "policyDefinitionReferenceId": "RefId5" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "policyDefinitionReferenceId": "RefId6" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "policyDefinitionReferenceId": "RefId7" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "policyDefinitionReferenceId": "RefId8" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "policyDefinitionReferenceId": "RefId9" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "policyDefinitionReferenceId": "RefId10" } + ], + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] - }, - "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8", - "type": "Microsoft.Authorization/policySetDefinitions", - "name": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8" - } + } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitions_GetBuiltIn", + "title": "Retrieve a built-in policy set definition" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltInPolicySetDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltInPolicySetDefinitionVersion.json index 703092a8f55b..1d9c1862f115 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltInPolicySetDefinitionVersion.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltInPolicySetDefinitionVersion.json @@ -1,79 +1,81 @@ { "parameters": { - "policySetDefinitionName": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8", + "api-version": "2025-03-01", "policyDefinitionVersion": "1.2.1", - "api-version": "2025-03-01" + "policySetDefinitionName": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8" }, "responses": { "200": { - "headers": {}, "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8/versions/1.2.1", "properties": { - "displayName": "[Preview]: Enable Monitoring in Azure Security Center", - "policyType": "BuiltIn", "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", "metadata": { "category": "Security Center" }, - "version": "1.2.1", "parameters": {}, "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "policyDefinitionReferenceId": "RefId1" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "policyDefinitionReferenceId": "RefId2" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "policyDefinitionReferenceId": "RefId3" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "policyDefinitionReferenceId": "RefId4" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "policyDefinitionReferenceId": "RefId5" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "policyDefinitionReferenceId": "RefId6" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "policyDefinitionReferenceId": "RefId7" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "policyDefinitionReferenceId": "RefId8" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "policyDefinitionReferenceId": "RefId9" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "policyDefinitionReferenceId": "RefId10" } - ] - }, - "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8/versions/1.2.1", - "type": "Microsoft.Authorization/policySetDefinitions/versions", - "name": "1.2.1" - } + ], + "policyType": "BuiltIn", + "version": "1.2.1" + } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitionVersions_GetBuiltIn", + "title": "Retrieve a built-in policy set definition version" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltinPolicyDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltinPolicyDefinition.json index 54655f98071c..f15fa3d43eb8 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltinPolicyDefinition.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltinPolicyDefinition.json @@ -1,18 +1,19 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policyDefinitionName": "7433c107-6db4-4ad1-b57a-a76dce0154a1", - "api-version": "2025-03-01" + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "7433c107-6db4-4ad1-b57a-a76dce0154a1", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "properties": { - "mode": "All", - "displayName": "Allowed storage account SKUs", - "policyType": "BuiltIn", "description": "This policy enables you to specify a set of storage account SKUs that your organization can deploy.", + "displayName": "Allowed storage account SKUs", + "mode": "All", "parameters": { "listOfAllowedSKUs": { "type": "Array", @@ -23,17 +24,12 @@ } } }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyRule": { "if": { "allOf": [ { - "field": "type", - "equals": "Microsoft.Storage/storageAccounts" + "equals": "Microsoft.Storage/storageAccounts", + "field": "type" }, { "not": { @@ -46,12 +42,18 @@ "then": { "effect": "Deny" } - } - }, - "id": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", - "type": "Microsoft.Authorization/policyDefinitions", - "name": "7433c107-6db4-4ad1-b57a-a76dce0154a1" - } + }, + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitions_GetBuiltIn", + "title": "Retrieve a built-in policy definition" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltinPolicyDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltinPolicyDefinitionVersion.json index 000131b68354..d45119a673f5 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltinPolicyDefinitionVersion.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getBuiltinPolicyDefinitionVersion.json @@ -1,19 +1,20 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policyDefinitionName": "7433c107-6db4-4ad1-b57a-a76dce0154a1", "policyDefinitionVersion": "1.2.1", - "api-version": "2025-03-01" + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1/versions/1.2.1", "properties": { - "mode": "All", - "displayName": "Allowed storage account SKUs", - "policyType": "BuiltIn", "description": "This policy enables you to specify a set of storage account SKUs that your organization can deploy.", + "displayName": "Allowed storage account SKUs", + "mode": "All", "parameters": { "listOfAllowedSKUs": { "type": "Array", @@ -24,13 +25,12 @@ } } }, - "version": "1.2.1", "policyRule": { "if": { "allOf": [ { - "field": "type", - "equals": "Microsoft.Storage/storageAccounts" + "equals": "Microsoft.Storage/storageAccounts", + "field": "type" }, { "not": { @@ -43,12 +43,14 @@ "then": { "effect": "Deny" } - } - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1/versions/1.2.1", - "type": "Microsoft.Authorization/policyDefinitions/versions", - "name": "1.2.1" - } + }, + "policyType": "BuiltIn", + "version": "1.2.1" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitionVersions_GetBuiltIn", + "title": "Retrieve a built-in policy definition version" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignment.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignment.json index b13348bfbe4c..4936ef94da0e 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignment.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignment.json @@ -1,21 +1,24 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policyAssignmentName": "EnforceNaming", - "api-version": "2025-03-01" + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "definitionVersion": "1.*.*", "notScopes": [], "parameters": { "prefix": { @@ -25,14 +28,13 @@ "value": "-LC" } }, - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", - "type": "Microsoft.Authorization/policyAssignments", - "name": "EnforceNaming" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Get", + "title": "Retrieve a policy assignment" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithIdentity.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithIdentity.json index 62bcd6d8a09d..70922a369ae3 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithIdentity.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithIdentity.json @@ -1,21 +1,30 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policyAssignmentName": "EnforceNaming", - "api-version": "2025-03-01" + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "identity": { + "type": "SystemAssigned", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", + "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" + }, + "location": "westus", "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "definitionVersion": "1.*.*", "notScopes": [], "parameters": { "prefix": { @@ -25,20 +34,13 @@ "value": "-LC" } }, - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b" - }, - "identity": { - "type": "SystemAssigned", - "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", - "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" - }, - "location": "westus", - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", - "type": "Microsoft.Authorization/policyAssignments", - "name": "EnforceNaming" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Get", + "title": "Retrieve a policy assignment with a system assigned identity" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithOverrides.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithOverrides.json index d420f53da7cd..6bc9269cc071 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithOverrides.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithOverrides.json @@ -1,45 +1,47 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policyAssignmentName": "CostManagement", - "api-version": "2025-03-01" + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", "properties": { - "displayName": "Limit the resource location and resource SKU", "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", + "enforcementMode": "Default", + "instanceId": "d2f3a4b5-c6d7-8e9f-0a1b-2c3d4e5f6a7b", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "definitionVersion": "1.*.*", "notScopes": [], - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", "overrides": [ { "kind": "policyEffect", - "value": "Audit", "selectors": [ { - "kind": "policyDefinitionReferenceId", "in": [ "Limit_Skus", "Limit_Locations" - ] + ], + "kind": "policyDefinitionReferenceId" } - ] + ], + "value": "Audit" } ], - "instanceId": "d2f3a4b5-c6d7-8e9f-0a1b-2c3d4e5f6a7b" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", - "type": "Microsoft.Authorization/policyAssignments", - "name": "CostManagement" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Get", + "title": "Retrieve a policy assignment with overrides" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithResourceSelectors.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithResourceSelectors.json index 566863608c02..beb9b1450275 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithResourceSelectors.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithResourceSelectors.json @@ -1,44 +1,46 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policyAssignmentName": "CostManagement", - "api-version": "2025-03-01" + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", "properties": { - "displayName": "Limit the resource location and resource SKU", "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", + "enforcementMode": "Default", + "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "definitionVersion": "1.*.*", "notScopes": [], - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "resourceSelectors": [ { "name": "SDPRegions", "selectors": [ { - "kind": "resourceLocation", "in": [ "eastus2euap", "centraluseuap" - ] + ], + "kind": "resourceLocation" } ] } ], - "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", - "type": "Microsoft.Authorization/policyAssignments", - "name": "CostManagement" - } + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Get", + "title": "Retrieve a policy assignment with resource selectors" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithUserAssignedIdentity.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithUserAssignedIdentity.json index e5b0add8f919..5def53d8ec6e 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithUserAssignedIdentity.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyAssignmentWithUserAssignedIdentity.json @@ -1,21 +1,34 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policyAssignmentName": "EnforceNaming", - "api-version": "2025-03-01" + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": { + "clientId": "4bee2b8a-1bee-47c2-90e9-404241551135", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a" + } + } + }, + "location": "westus", "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "definitionVersion": "1.*.*", "notScopes": [], "parameters": { "prefix": { @@ -25,24 +38,13 @@ "value": "-LC" } }, - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b" - }, - "identity": { - "type": "UserAssigned", - "userAssignedIdentities": { - "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": { - "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", - "clientId": "4bee2b8a-1bee-47c2-90e9-404241551135" - } - } - }, - "location": "westus", - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", - "type": "Microsoft.Authorization/policyAssignments", - "name": "EnforceNaming" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Get", + "title": "Retrieve a policy assignment with a user assigned identity" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinition.json index d788bd2519a1..667bd3d6c51e 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinition.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinition.json @@ -1,58 +1,60 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policyDefinitionName": "ResourceNaming", - "api-version": "2025-03-01" + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "policyType": "Custom" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "type": "Microsoft.Authorization/policyDefinitions", - "name": "ResourceNaming" - } + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitions_Get", + "title": "Retrieve a policy definition" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinitionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinitionAtManagementGroup.json index 04176da89e1a..50d0ba4bc872 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinitionAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinitionAtManagementGroup.json @@ -1,58 +1,60 @@ { "parameters": { + "api-version": "2025-03-01", "managementGroupId": "MyManagementGroup", - "policyDefinitionName": "ResourceNaming", - "api-version": "2025-03-01" + "policyDefinitionName": "ResourceNaming" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "type": "Microsoft.Authorization/policyDefinitions", "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "policyType": "Custom" + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] } - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitions_GetAtManagementGroup", + "title": "Retrieve a policy definition at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinitionVersion.json index 7cdc4bdf4a82..e0daec7cb078 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinitionVersion.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinitionVersion.json @@ -1,55 +1,57 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policyDefinitionName": "ResourceNaming", "policyDefinitionVersion": "1.2.1", - "api-version": "2025-03-01" + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, - "version": "1.2.1", - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "policyType": "Custom" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", - "type": "Microsoft.Authorization/policyDefinitions/versions", - "name": "1.2.1" - } + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitionVersions_Get", + "title": "Retrieve a policy definition version" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinitionVersionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinitionVersionAtManagementGroup.json index 0766eddc08ec..1c1ec84270d5 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinitionVersionAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicyDefinitionVersionAtManagementGroup.json @@ -1,55 +1,57 @@ { "parameters": { + "api-version": "2025-03-01", "managementGroupName": "MyManagementGroup", "policyDefinitionName": "ResourceNaming", - "policyDefinitionVersion": "1.2.1", - "api-version": "2025-03-01" + "policyDefinitionVersion": "1.2.1" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", - "type": "Microsoft.Authorization/policyDefinitions/versions", "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, - "version": "1.2.1", - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "policyType": "Custom" + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1" } - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitionVersions_GetAtManagementGroup", + "title": "Retrieve a policy definition version at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinition.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinition.json index b484c4817f88..409a2fbc2e9f 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinition.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinition.json @@ -1,44 +1,36 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policySetDefinitionName": "CostManagement", - "api-version": "2025-03-01" + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "type": "Microsoft.Authorization/policySetDefinitions", "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyDefinitionGroups": [ { "name": "CostSaving", - "displayName": "Cost Management Policies", - "description": "Policies designed to control spend within a subscription." + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" }, { "name": "Organizational", - "displayName": "Organizational Policies", - "description": "Policies that help enforce resource organization standards within a subscription." + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" } ], "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "groupNames": [ "CostSaving" ], @@ -49,12 +41,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "groupNames": [ "Organizational" ], @@ -65,11 +57,21 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] } - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitions_Get", + "title": "Retrieve a policy set definition" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinitionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinitionAtManagementGroup.json index e5833e082973..d6ecde4512b0 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinitionAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinitionAtManagementGroup.json @@ -1,32 +1,24 @@ { "parameters": { + "api-version": "2025-03-01", "managementGroupId": "MyManagementGroup", - "policySetDefinitionName": "CostManagement", - "api-version": "2025-03-01" + "policySetDefinitionName": "CostManagement" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "type": "Microsoft.Authorization/policySetDefinitions", "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -34,12 +26,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -47,11 +39,21 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] } - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitions_GetAtManagementGroup", + "title": "Retrieve a policy set definition at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinitionVersion.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinitionVersion.json index b7f664242381..eefdf88946a5 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinitionVersion.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinitionVersion.json @@ -1,41 +1,37 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policySetDefinitionName": "CostManagement", + "api-version": "2025-03-01", "policyDefinitionVersion": "1.2.1", - "api-version": "2025-03-01" + "policySetDefinitionName": "CostManagement", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", - "type": "Microsoft.Authorization/policySetDefinitions/versions", "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", "policyDefinitionGroups": [ { "name": "CostSaving", - "displayName": "Cost Management Policies", - "description": "Policies designed to control spend within a subscription." + "description": "Policies designed to control spend within a subscription.", + "displayName": "Cost Management Policies" }, { "name": "Organizational", - "displayName": "Organizational Policies", - "description": "Policies that help enforce resource organization standards within a subscription." + "description": "Policies that help enforce resource organization standards within a subscription.", + "displayName": "Organizational Policies" } ], "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "groupNames": [ "CostSaving" ], @@ -46,12 +42,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "groupNames": [ "Organizational" ], @@ -62,11 +58,17 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } - ] + ], + "version": "1.2.1" } - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitionVersions_Get", + "title": "Retrieve a policy set definition version" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinitionVersionAtManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinitionVersionAtManagementGroup.json index 0af50c6a463d..fb68c04d970b 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinitionVersionAtManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/getPolicySetDefinitionVersionAtManagementGroup.json @@ -1,29 +1,25 @@ { "parameters": { + "api-version": "2025-03-01", "managementGroupName": "MyManagementGroup", - "policySetDefinitionName": "CostManagement", "policyDefinitionVersion": "1.2.1", - "api-version": "2025-03-01" + "policySetDefinitionName": "CostManagement" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", - "type": "Microsoft.Authorization/policySetDefinitions/versions", "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -31,12 +27,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -44,11 +40,17 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } - ] + ], + "version": "1.2.1" } - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitionVersions_GetAtManagementGroup", + "title": "Retrieve a policy set definition version at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllBuiltInPolicyDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllBuiltInPolicyDefinitionVersions.json index 59e20cf76f02..d2403a682723 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllBuiltInPolicyDefinitionVersions.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllBuiltInPolicyDefinitionVersions.json @@ -4,102 +4,104 @@ }, "responses": { "200": { - "headers": {}, "body": { "value": [ { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12/versions/1.2.1", "properties": { - "mode": "All", - "displayName": "Audit SQL DB Level Audit Setting", - "policyType": "BuiltIn", "description": "Audit DB level audit setting for SQL databases", + "displayName": "Audit SQL DB Level Audit Setting", + "mode": "All", "parameters": { "setting": { "type": "String", - "metadata": { - "displayName": "Audit Setting" - }, "allowedValues": [ "enabled", "disabled" - ] + ], + "metadata": { + "displayName": "Audit Setting" + } } }, - "version": "1.2.1", "policyRule": { "if": { - "field": "type", - "equals": "Microsoft.Sql/servers/databases" + "equals": "Microsoft.Sql/servers/databases", + "field": "type" }, "then": { "effect": "AuditIfNotExists", "details": { - "type": "Microsoft.Sql/servers/databases/auditingSettings", "name": "default", + "type": "Microsoft.Sql/servers/databases/auditingSettings", "existenceCondition": { "allOf": [ { - "field": "Microsoft.Sql/auditingSettings.state", - "equals": "[parameters('setting')]" + "equals": "[parameters('setting')]", + "field": "Microsoft.Sql/auditingSettings.state" } ] } } } - } - }, - "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12/versions/1.2.1", - "type": "Microsoft.Authorization/policyDefinitions/versions", - "name": "1.2.1" + }, + "policyType": "BuiltIn", + "version": "1.2.1" + } }, { + "name": "1.0.0", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12/versions/1.0.0", "properties": { - "mode": "All", - "displayName": "Audit SQL DB Level Audit Setting", - "policyType": "BuiltIn", "description": "Audit DB level audit setting for SQL databases", + "displayName": "Audit SQL DB Level Audit Setting", + "mode": "All", "parameters": { "setting": { "type": "String", - "metadata": { - "displayName": "Audit Setting" - }, "allowedValues": [ "enabled", "disabled", "default" - ] + ], + "metadata": { + "displayName": "Audit Setting" + } } }, - "version": "1.0.0", "policyRule": { "if": { - "field": "type", - "equals": "Microsoft.Sql/servers/databases" + "equals": "Microsoft.Sql/servers/databases", + "field": "type" }, "then": { "effect": "AuditIfNotExists", "details": { - "type": "Microsoft.Sql/servers/databases/auditingSettings", "name": "default", + "type": "Microsoft.Sql/servers/databases/auditingSettings", "existenceCondition": { "allOf": [ { - "field": "Microsoft.Sql/auditingSettings.state", - "equals": "[parameters('setting')]" + "equals": "[parameters('setting')]", + "field": "Microsoft.Sql/auditingSettings.state" } ] } } } - } - }, - "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12/versions/1.0.0", - "type": "Microsoft.Authorization/policyDefinitions/versions", - "name": "1.0.0" + }, + "policyType": "BuiltIn", + "version": "1.0.0" + } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitionVersions_ListAllBuiltins", + "title": "List all built-in policy definition versions" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllBuiltInPolicySetDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllBuiltInPolicySetDefinitionVersions.json index fa58704e81c1..cff066682229 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllBuiltInPolicySetDefinitionVersions.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllBuiltInPolicySetDefinitionVersions.json @@ -4,78 +4,80 @@ }, "responses": { "200": { - "headers": {}, "body": { "value": [ { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8/versions/1.2.1", "properties": { - "displayName": "[Preview]: Enable Monitoring in Azure Security Center", - "policyType": "BuiltIn", "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", "metadata": { "category": "Security Center" }, - "version": "1.2.1", "parameters": {}, "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "policyDefinitionReferenceId": "RefId1" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "policyDefinitionReferenceId": "RefId2" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "policyDefinitionReferenceId": "RefId3" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "policyDefinitionReferenceId": "RefId4" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "policyDefinitionReferenceId": "RefId5" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "policyDefinitionReferenceId": "RefId6" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "policyDefinitionReferenceId": "RefId7" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "policyDefinitionReferenceId": "RefId8" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "policyDefinitionReferenceId": "RefId9" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "policyDefinitionReferenceId": "RefId10" } - ] - }, - "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8/versions/1.2.1", - "type": "Microsoft.Authorization/policySetDefinitions/versions", - "name": "1.2.1" + ], + "policyType": "BuiltIn", + "version": "1.2.1" + } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitionVersions_ListAllBuiltins", + "title": "List all built-in policy definition versions" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicyDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicyDefinitionVersions.json index fa26db1913a8..40c4c8a59de4 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicyDefinitionVersions.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicyDefinitionVersions.json @@ -1,38 +1,39 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "api-version": "2025-03-01" + "api-version": "2025-03-01", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "version": "1.2.1", "policyRule": { "if": { "not": { @@ -44,37 +45,37 @@ "effect": "deny" } }, - "policyType": "Custom" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", - "type": "Microsoft.Authorization/policyDefinitions/versions", - "name": "1.2.1" + "policyType": "Custom", + "version": "1.2.1" + } }, { + "name": "1.0.0", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.0.0", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "version": "1.0.0", "policyRule": { "if": { "not": { @@ -86,14 +87,15 @@ "effect": "deny" } }, - "policyType": "Custom" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/versions/1.0.0", - "type": "Microsoft.Authorization/policyDefinitions", - "name": "1.0.0" + "policyType": "Custom", + "version": "1.0.0" + } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitionVersions_ListAll", + "title": "List all policy definition versions at subscription" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicyDefinitionVersionsByManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicyDefinitionVersionsByManagementGroup.json index b90f835faf7f..bd600f72687b 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicyDefinitionVersionsByManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicyDefinitionVersionsByManagementGroup.json @@ -1,99 +1,101 @@ { "parameters": { - "managementGroupName": "MyManagementGroup", - "api-version": "2025-03-01" + "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", - "type": "Microsoft.Authorization/policyDefinitions/versions", "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, - "version": "1.2.1", - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "policyType": "Custom" - } - }, - { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.0.0", - "type": "Microsoft.Authorization/policyDefinitions/versions", - "name": "1.0.0", - "properties": { - "mode": "All", - "displayName": "Naming Convention", - "description": "Force resource names to begin with 'prefix' and end with 'suffix'", - "metadata": { - "category": "Naming" - }, - "version": "1.2.1", "policyRule": { "if": { "not": { "field": "name", - "like": "[concat(parameters('prefix'), '-*', parameters('suffix'))]" + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" } }, "then": { "effect": "deny" } }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + { + "name": "1.0.0", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.0.0", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '-*', parameters('suffix'))]" } + }, + "then": { + "effect": "deny" } }, - "policyType": "Custom" + "policyType": "Custom", + "version": "1.2.1" } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitionVersions_ListAllAtManagementGroup", + "title": "List all policy definition versions at management group" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicySetDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicySetDefinitionVersions.json index b6e838b5d50a..9f3b6356db16 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicySetDefinitionVersions.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicySetDefinitionVersions.json @@ -1,29 +1,25 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "api-version": "2025-03-01" + "api-version": "2025-03-01", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", - "type": "Microsoft.Authorization/policySetDefinitions/versions", "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -31,12 +27,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -44,13 +40,19 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } - ] + ], + "version": "1.2.1" } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitionVersions_ListAll", + "title": "List all policy definition versions at subscription" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicySetDefinitionVersionsByManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicySetDefinitionVersionsByManagementGroup.json index d4dac0e763e9..78a5b395bd2e 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicySetDefinitionVersionsByManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listAllPolicySetDefinitionVersionsByManagementGroup.json @@ -1,96 +1,92 @@ { "parameters": { - "managementGroupName": "MyManagementGroup", - "api-version": "2025-03-01" + "api-version": "2025-03-01", + "managementGroupName": "MyManagementGroup" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8/versoins/1.2.1", "properties": { - "displayName": "[Preview]: Enable Monitoring in Azure Security Center", - "policyType": "BuiltIn", "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", "metadata": { "category": "Security Center" }, - "version": "1.2.1", "parameters": {}, "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "policyDefinitionReferenceId": "RefId1" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "policyDefinitionReferenceId": "RefId2" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "policyDefinitionReferenceId": "RefId3" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "policyDefinitionReferenceId": "RefId4" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "policyDefinitionReferenceId": "RefId5" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "policyDefinitionReferenceId": "RefId6" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "policyDefinitionReferenceId": "RefId7" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "policyDefinitionReferenceId": "RefId8" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "policyDefinitionReferenceId": "RefId9" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "policyDefinitionReferenceId": "RefId10" } - ] - }, - "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8/versoins/1.2.1", - "type": "Microsoft.Authorization/policySetDefinitions/versions", - "name": "1.2.1" + ], + "policyType": "BuiltIn", + "version": "1.2.1" + } }, { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", - "type": "Microsoft.Authorization/policySetDefinitions/versions", "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -98,12 +94,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -111,13 +107,19 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } - ] + ], + "version": "1.2.1" } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitionVersions_ListAllAtManagementGroup", + "title": "List all policy definition versions at management group" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicyDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicyDefinitionVersions.json index 3578b8146312..0aac2071f496 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicyDefinitionVersions.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicyDefinitionVersions.json @@ -1,106 +1,108 @@ { "parameters": { - "policyDefinitionName": "06a78e20-9358-41c9-923c-fb736d382a12", - "api-version": "2025-03-01" + "api-version": "2025-03-01", + "policyDefinitionName": "06a78e20-9358-41c9-923c-fb736d382a12" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12/versions/1.2.1", "properties": { - "mode": "All", - "displayName": "Audit SQL DB Level Audit Setting", - "policyType": "BuiltIn", "description": "Audit DB level audit setting for SQL databases", + "displayName": "Audit SQL DB Level Audit Setting", + "mode": "All", "parameters": { "setting": { "type": "String", - "metadata": { - "displayName": "Audit Setting" - }, "allowedValues": [ "enabled", "disabled" - ] + ], + "metadata": { + "displayName": "Audit Setting" + } } }, - "version": "1.2.1", "policyRule": { "if": { - "field": "type", - "equals": "Microsoft.Sql/servers/databases" + "equals": "Microsoft.Sql/servers/databases", + "field": "type" }, "then": { "effect": "AuditIfNotExists", "details": { - "type": "Microsoft.Sql/servers/databases/auditingSettings", "name": "default", + "type": "Microsoft.Sql/servers/databases/auditingSettings", "existenceCondition": { "allOf": [ { - "field": "Microsoft.Sql/auditingSettings.state", - "equals": "[parameters('setting')]" + "equals": "[parameters('setting')]", + "field": "Microsoft.Sql/auditingSettings.state" } ] } } } - } - }, - "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12/versions/1.2.1", - "type": "Microsoft.Authorization/policyDefinitions/versions", - "name": "1.2.1" + }, + "policyType": "BuiltIn", + "version": "1.2.1" + } }, { + "name": "1.0.0", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12/versions/1.0.0", "properties": { - "mode": "All", - "displayName": "Audit SQL DB Level Audit Setting", - "policyType": "BuiltIn", "description": "Audit DB level audit setting for SQL databases", + "displayName": "Audit SQL DB Level Audit Setting", + "mode": "All", "parameters": { "setting": { "type": "String", - "metadata": { - "displayName": "Audit Setting" - }, "allowedValues": [ "enabled", "disabled", "default" - ] + ], + "metadata": { + "displayName": "Audit Setting" + } } }, - "version": "1.0.0", "policyRule": { "if": { - "field": "type", - "equals": "Microsoft.Sql/servers/databases" + "equals": "Microsoft.Sql/servers/databases", + "field": "type" }, "then": { "effect": "AuditIfNotExists", "details": { - "type": "Microsoft.Sql/servers/databases/auditingSettings", "name": "default", + "type": "Microsoft.Sql/servers/databases/auditingSettings", "existenceCondition": { "allOf": [ { - "field": "Microsoft.Sql/auditingSettings.state", - "equals": "[parameters('setting')]" + "equals": "[parameters('setting')]", + "field": "Microsoft.Sql/auditingSettings.state" } ] } } } - } - }, - "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12/versions/1.0.0", - "type": "Microsoft.Authorization/policyDefinitions/versions", - "name": "1.0.0" + }, + "policyType": "BuiltIn", + "version": "1.0.0" + } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitionVersions_ListBuiltIn", + "title": "List built-in policy definition versions" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicyDefinitions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicyDefinitions.json index cbd5ec9a6c53..1b4c23e59536 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicyDefinitions.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicyDefinitions.json @@ -4,64 +4,65 @@ }, "responses": { "200": { - "headers": {}, "body": { "value": [ { + "name": "06a78e20-9358-41c9-923c-fb736d382a12", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12", "properties": { - "mode": "All", - "displayName": "Audit SQL DB Level Audit Setting", - "policyType": "BuiltIn", "description": "Audit DB level audit setting for SQL databases", + "displayName": "Audit SQL DB Level Audit Setting", + "mode": "All", "parameters": { "setting": { "type": "String", - "metadata": { - "displayName": "Audit Setting" - }, "allowedValues": [ "enabled", "disabled" - ] + ], + "metadata": { + "displayName": "Audit Setting" + } } }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyRule": { "if": { - "field": "type", - "equals": "Microsoft.Sql/servers/databases" + "equals": "Microsoft.Sql/servers/databases", + "field": "type" }, "then": { "effect": "AuditIfNotExists", "details": { - "type": "Microsoft.Sql/servers/databases/auditingSettings", "name": "default", + "type": "Microsoft.Sql/servers/databases/auditingSettings", "existenceCondition": { "allOf": [ { - "field": "Microsoft.Sql/auditingSettings.state", - "equals": "[parameters('setting')]" + "equals": "[parameters('setting')]", + "field": "Microsoft.Sql/auditingSettings.state" } ] } } } - } - }, - "id": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a12", - "type": "Microsoft.Authorization/policyDefinitions", - "name": "06a78e20-9358-41c9-923c-fb736d382a12" + }, + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } }, { + "name": "7433c107-6db4-4ad1-b57a-a76dce0154a1", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "properties": { - "mode": "All", - "displayName": "Allowed storage account SKUs", - "policyType": "Static", "description": "This policy enables you to specify a set of storage account SKUs that your organization can deploy.", + "displayName": "Allowed storage account SKUs", + "mode": "All", "parameters": { "listOfAllowedSKUs": { "type": "Array", @@ -72,17 +73,12 @@ } } }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyRule": { "if": { "allOf": [ { - "field": "type", - "equals": "Microsoft.Storage/storageAccounts" + "equals": "Microsoft.Storage/storageAccounts", + "field": "type" }, { "not": { @@ -95,35 +91,35 @@ "then": { "effect": "Deny" } - } - }, - "id": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", - "type": "Microsoft.Authorization/policyDefinitions", - "name": "7433c107-6db4-4ad1-b57a-a76dce0154a1" + }, + "policyType": "Static", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } }, { + "name": "abeed54a-73c5-441d-8a8c-6b5e7a0c299e", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/abeed54a-73c5-441d-8a8c-6b5e7a0c299e", "properties": { - "mode": "Microsoft.KeyVault.Data", - "displayName": "Audit KeyVault certificates that expire within specified number of days", - "policyType": "BuiltIn", "description": "Audit certificates that are stored in Azure Key Vault, that expire within 'X' number of days.", + "displayName": "Audit KeyVault certificates that expire within specified number of days", "metadata": { "category": "KeyVault DataPlane" }, + "mode": "Microsoft.KeyVault.Data", "parameters": { "daysToExpire": { "type": "Integer", "metadata": { - "displayName": "Days to expire", - "description": "The number of days for a certificate to expire." + "description": "The number of days for a certificate to expire.", + "displayName": "Days to expire" } } }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyRule": { "if": { "field": "Microsoft.KeyVault.Data/vaults/certificates/attributes/expiresOn", @@ -132,14 +128,20 @@ "then": { "effect": "audit" } - } - }, - "id": "/providers/Microsoft.Authorization/policyDefinitions/abeed54a-73c5-441d-8a8c-6b5e7a0c299e", - "type": "Microsoft.Authorization/policyDefinitions", - "name": "abeed54a-73c5-441d-8a8c-6b5e7a0c299e" + }, + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitions_ListBuiltIn", + "title": "List built-in policy definitions" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicySetDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicySetDefinitionVersions.json index 71616e96bc4a..4f475cdaade9 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicySetDefinitionVersions.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicySetDefinitionVersions.json @@ -1,82 +1,84 @@ { "parameters": { - "policySetDefinitionName": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8", - "api-version": "2025-03-01" + "api-version": "2025-03-01", + "policySetDefinitionName": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { + "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8/versions/1.2.1", "properties": { - "displayName": "[Preview]: Enable Monitoring in Azure Security Center", - "policyType": "BuiltIn", "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", "metadata": { "category": "Security Center" }, - "version": "1.2.1", "parameters": {}, "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "policyDefinitionReferenceId": "RefId1" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "policyDefinitionReferenceId": "RefId2" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "policyDefinitionReferenceId": "RefId3" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "policyDefinitionReferenceId": "RefId4" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "policyDefinitionReferenceId": "RefId5" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "policyDefinitionReferenceId": "RefId6" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "policyDefinitionReferenceId": "RefId7" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "policyDefinitionReferenceId": "RefId8" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "policyDefinitionReferenceId": "RefId9" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "policyDefinitionReferenceId": "RefId10" } - ] - }, - "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8/versions/1.2.1", - "type": "Microsoft.Authorization/policySetDefinitions/versions", - "name": "1.2.1" + ], + "policyType": "BuiltIn", + "version": "1.2.1" + } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitionVersions_ListBuiltIn", + "title": "List built-in policy set definitions" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicySetDefinitions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicySetDefinitions.json index f237429c3d84..ed5ee47c8bc4 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicySetDefinitions.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listBuiltInPolicySetDefinitions.json @@ -4,82 +4,84 @@ }, "responses": { "200": { - "headers": {}, "body": { "value": [ { + "name": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8", "properties": { - "displayName": "[Preview]: Enable Monitoring in Azure Security Center", - "policyType": "BuiltIn", "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", "metadata": { "category": "Security Center" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "parameters": {}, "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "policyDefinitionReferenceId": "RefId1" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "policyDefinitionReferenceId": "RefId2" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "policyDefinitionReferenceId": "RefId3" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "policyDefinitionReferenceId": "RefId4" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "policyDefinitionReferenceId": "RefId5" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "policyDefinitionReferenceId": "RefId6" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "policyDefinitionReferenceId": "RefId7" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "policyDefinitionReferenceId": "RefId8" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "policyDefinitionReferenceId": "RefId9" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "policyDefinitionReferenceId": "RefId10" } + ], + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] - }, - "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8", - "type": "Microsoft.Authorization/policySetDefinitions", - "name": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8" + } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitions_ListBuiltIn", + "title": "List built-in policy set definitions" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignments.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignments.json index 92062c71726d..f2d9c3c189ac 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignments.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignments.json @@ -1,4 +1,6 @@ { + "operationId": "PolicyAssignments_List", + "title": "List policy assignments that apply to a subscription", "parameters": { "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", "api-version": "2025-03-01", diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignmentsForManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignmentsForManagementGroup.json index 0806c968fed0..024b8b286e49 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignmentsForManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignmentsForManagementGroup.json @@ -1,4 +1,6 @@ { + "operationId": "PolicyAssignments_ListForManagementGroup", + "title": "List policy assignments that apply to a management group", "parameters": { "managementGroupId": "TestManagementGroup", "api-version": "2025-03-01", diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignmentsForResource.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignmentsForResource.json index 85d210c3d825..226a1b016837 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignmentsForResource.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignmentsForResource.json @@ -1,4 +1,6 @@ { + "operationId": "PolicyAssignments_ListForResource", + "title": "List policy assignments that apply to a resource group", "parameters": { "resourceGroupName": "TestResourceGroup", "resourceProviderNamespace": "Microsoft.Compute", diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignmentsForResourceGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignmentsForResourceGroup.json index 76ad72cea4b6..0f76fed8aea7 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignmentsForResourceGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyAssignmentsForResourceGroup.json @@ -1,64 +1,66 @@ { "parameters": { - "resourceGroupName": "TestResourceGroup", - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "api-version": "2025-03-01", + "$expand": "LatestDefinitionVersion, EffectiveDefinitionVersion", "$filter": "atScope()", - "$expand": "LatestDefinitionVersion, EffectiveDefinitionVersion" + "api-version": "2025-03-01", + "resourceGroupName": "TestResourceGroup", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup/providers/Microsoft.Authorization/policyAssignments/TestCostManagement", - "type": "Microsoft.Authorization/policyAssignments", "name": "TestCostManagement", - "location": "eastus", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup/providers/Microsoft.Authorization/policyAssignments/TestCostManagement", "identity": { "type": "SystemAssigned", "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" }, + "location": "eastus", "properties": { - "displayName": "Storage Cost Management", "description": "Minimize the risk of accidental cost overruns", + "definitionVersion": "1.*.*", + "displayName": "Storage Cost Management", + "effectiveDefinitionVersion": "1.0.0", + "instanceId": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d", + "latestDefinitionVersion": "1.0.0", "metadata": { "category": "Cost Management" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/storageSkus", - "definitionVersion": "1.*.*", - "latestDefinitionVersion": "1.0.0", - "effectiveDefinitionVersion": "1.0.0", + "notScopes": [], "parameters": { "allowedSkus": { "value": "Standard_A1" } }, - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup", - "notScopes": [], - "instanceId": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/storageSkus", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup" } }, { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup/providers/Microsoft.Authorization/policyAssignments/TestTagEnforcement", - "type": "Microsoft.Authorization/policyAssignments", "name": "TestTagEnforcement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup/providers/Microsoft.Authorization/policyAssignments/TestTagEnforcement", "properties": { - "displayName": "Enforces a tag key and value", "description": "Ensure a given tag key and value are present on all resources", - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/TagKeyValue", "definitionVersion": "1.*.*", - "latestDefinitionVersion": "1.0.0", + "displayName": "Enforces a tag key and value", "effectiveDefinitionVersion": "1.0.0", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup", + "instanceId": "f0b1c2d3-e4f5-6a7b-8c9d-0e1f2a3b4c5d", + "latestDefinitionVersion": "1.0.0", "notScopes": [], - "instanceId": "f0b1c2d3-e4f5-6a7b-8c9d-0e1f2a3b4c5d" + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/TagKeyValue", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/TestResourceGroup" } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_ListForResourceGroup", + "title": "List policy assignments that apply to a resource group" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitionVersions.json index bb2a72539039..e9b75f33f184 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitionVersions.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitionVersions.json @@ -1,39 +1,40 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policyDefinitionName": "ResourceNaming", - "api-version": "2025-03-01" + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { + "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "version": "1.2.1", "policyRule": { "if": { "not": { @@ -45,37 +46,37 @@ "effect": "deny" } }, - "policyType": "Custom" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", - "type": "Microsoft.Authorization/policyDefinitions/versions", - "name": "1.2.1" + "policyType": "Custom", + "version": "1.2.1" + } }, { + "name": "1.0.0", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.0.0", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "version": "1.0.0", "policyRule": { "if": { "not": { @@ -87,14 +88,15 @@ "effect": "deny" } }, - "policyType": "Custom" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/versions/1.0.0", - "type": "Microsoft.Authorization/policyDefinitions", - "name": "1.0.0" + "policyType": "Custom", + "version": "1.0.0" + } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitionVersions_List", + "title": "List policy definition versions by subscription" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitionVersionsByManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitionVersionsByManagementGroup.json index e38ade5e719c..87ef147d5c7c 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitionVersionsByManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitionVersionsByManagementGroup.json @@ -1,100 +1,102 @@ { "parameters": { + "api-version": "2025-03-01", "managementGroupName": "MyManagementGroup", - "policyDefinitionName": "ResourceNaming", - "api-version": "2025-03-01" + "policyDefinitionName": "ResourceNaming" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", - "type": "Microsoft.Authorization/policyDefinitions/versions", "name": "1.2.1", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.2.1", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, - "version": "1.2.1", - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "policyType": "Custom" - } - }, - { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.0.0", - "type": "Microsoft.Authorization/policyDefinitions/versions", - "name": "1.0.0", - "properties": { - "mode": "All", - "displayName": "Naming Convention", - "description": "Force resource names to begin with 'prefix' and end with 'suffix'", - "metadata": { - "category": "Naming" - }, - "version": "1.2.1", "policyRule": { "if": { "not": { "field": "name", - "like": "[concat(parameters('prefix'), '-*', parameters('suffix'))]" + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" } }, "then": { "effect": "deny" } }, + "policyType": "Custom", + "version": "1.2.1" + } + }, + { + "name": "1.0.0", + "type": "Microsoft.Authorization/policyDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming/versions/1.0.0", + "properties": { + "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", + "metadata": { + "category": "Naming" + }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" + } + } + }, + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '-*', parameters('suffix'))]" } + }, + "then": { + "effect": "deny" } }, - "policyType": "Custom" + "policyType": "Custom", + "version": "1.2.1" } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitionVersions_ListByManagementGroup", + "title": "List policy definition versions by management group" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitions.json index 0300c5692247..9eafcde5e7b7 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitions.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitions.json @@ -1,19 +1,20 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "api-version": "2025-03-01" + "api-version": "2025-03-01", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { + "name": "7433c107-6db4-4ad1-b57a-a76dce0154a1", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "properties": { - "mode": "All", - "displayName": "Allowed storage account SKUs", - "policyType": "BuiltIn", "description": "This policy enables you to specify a set of storage account SKUs that your organization can deploy.", + "displayName": "Allowed storage account SKUs", + "mode": "All", "parameters": { "listOfAllowedSKUs": { "type": "Array", @@ -24,17 +25,12 @@ } } }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyRule": { "if": { "allOf": [ { - "field": "type", - "equals": "Microsoft.Storage/storageAccounts" + "equals": "Microsoft.Storage/storageAccounts", + "field": "type" }, { "not": { @@ -47,41 +43,42 @@ "then": { "effect": "Deny" } - } - }, - "id": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", - "type": "Microsoft.Authorization/policyDefinitions", - "name": "7433c107-6db4-4ad1-b57a-a76dce0154a1" + }, + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } }, { + "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyRule": { "if": { "not": { @@ -93,34 +90,34 @@ "effect": "deny" } }, - "policyType": "Custom" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "type": "Microsoft.Authorization/policyDefinitions", - "name": "ResourceNaming" + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } }, { + "name": "AuditSoonToExpireCerts", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/AuditSoonToExpireCerts", "properties": { - "mode": "Microsoft.KeyVault.Data", - "displayName": "Audit KeyVault certificates that expire within specified number of days", "description": "Audit certificates that are stored in Azure Key Vault, that expire within 'X' number of days.", + "displayName": "Audit KeyVault certificates that expire within specified number of days", "metadata": { "category": "KeyVault DataPlane" }, + "mode": "Microsoft.KeyVault.Data", "parameters": { "daysToExpire": { "type": "Integer", "metadata": { - "displayName": "Days to expire", - "description": "The number of days for a certificate to expire." + "description": "The number of days for a certificate to expire.", + "displayName": "Days to expire" } } }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyRule": { "if": { "field": "Microsoft.KeyVault.Data/vaults/certificates/attributes/expiresOn", @@ -130,14 +127,19 @@ "effect": "audit" } }, - "policyType": "Custom" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/AuditSoonToExpireCerts", - "type": "Microsoft.Authorization/policyDefinitions", - "name": "AuditSoonToExpireCerts" + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitions_List", + "title": "List policy definitions by subscription" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitionsByManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitionsByManagementGroup.json index c6e21558a995..3367ff8c2f67 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitionsByManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicyDefinitionsByManagementGroup.json @@ -1,19 +1,20 @@ { "parameters": { - "managementGroupId": "MyManagementGroup", - "api-version": "2025-03-01" + "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { + "name": "7433c107-6db4-4ad1-b57a-a76dce0154a1", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "properties": { - "mode": "All", - "displayName": "Allowed storage account SKUs", - "policyType": "BuiltIn", "description": "This policy enables you to specify a set of storage account SKUs that your organization can deploy.", + "displayName": "Allowed storage account SKUs", + "mode": "All", "parameters": { "listOfAllowedSKUs": { "type": "Array", @@ -24,17 +25,12 @@ } } }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyRule": { "if": { "allOf": [ { - "field": "type", - "equals": "Microsoft.Storage/storageAccounts" + "equals": "Microsoft.Storage/storageAccounts", + "field": "type" }, { "not": { @@ -47,60 +43,66 @@ "then": { "effect": "Deny" } - } - }, - "id": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", - "type": "Microsoft.Authorization/policyDefinitions", - "name": "7433c107-6db4-4ad1-b57a-a76dce0154a1" + }, + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] + } }, { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "type": "Microsoft.Authorization/policyDefinitions", "name": "ResourceNaming", + "type": "Microsoft.Authorization/policyDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "properties": { - "mode": "All", - "displayName": "Naming Convention", "description": "Force resource names to begin with 'prefix' and end with 'suffix'", + "displayName": "Naming Convention", "metadata": { "category": "Naming" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], - "policyRule": { - "if": { - "not": { - "field": "name", - "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" - } - }, - "then": { - "effect": "deny" - } - }, + "mode": "All", "parameters": { "prefix": { "type": "String", "metadata": { - "displayName": "Prefix", - "description": "Resource name prefix" + "description": "Resource name prefix", + "displayName": "Prefix" } }, "suffix": { "type": "String", "metadata": { - "displayName": "Suffix", - "description": "Resource name suffix" + "description": "Resource name suffix", + "displayName": "Suffix" } } }, - "policyType": "Custom" + "policyRule": { + "if": { + "not": { + "field": "name", + "like": "[concat(parameters('prefix'), '*', parameters('suffix'))]" + } + }, + "then": { + "effect": "deny" + } + }, + "policyType": "Custom", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" + ] } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicyDefinitions_ListByManagementGroup", + "title": "List policy definitions by management group" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitionVersions.json index 030f3c29d7a4..66d61cb56c09 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitionVersions.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitionVersions.json @@ -1,30 +1,26 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "api-version": "2025-03-01", "policySetDefinitionName": "CostManagement", - "api-version": "2025-03-01" + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", - "type": "Microsoft.Authorization/policySetDefinitions/versions", "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -32,12 +28,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -45,13 +41,19 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } - ] + ], + "version": "1.2.1" } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitionVersions_List", + "title": "List policy set definitions" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitionVersionsByManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitionVersionsByManagementGroup.json index 21b9eba9cd79..2d887eb2cbd0 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitionVersionsByManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitionVersionsByManagementGroup.json @@ -1,30 +1,26 @@ { "parameters": { + "api-version": "2025-03-01", "managementGroupName": "MyManagementGroup", - "policySetDefinitionName": "CostManagement", - "api-version": "2025-03-01" + "policySetDefinitionName": "CostManagement" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", - "type": "Microsoft.Authorization/policySetDefinitions/versions", "name": "1.2.1", + "type": "Microsoft.Authorization/policySetDefinitions/versions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement/versions/1.2.1", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -32,12 +28,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -45,13 +41,19 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } - ] + ], + "version": "1.2.1" } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitionVersions_ListByManagementGroup", + "title": "List policy set definitions at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitions.json index 7eb27af4f3e1..d330a3004a84 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitions.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitions.json @@ -1,104 +1,96 @@ { "parameters": { - "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "api-version": "2025-03-01" + "api-version": "2025-03-01", + "subscriptionId": "ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { + "name": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8", "properties": { - "displayName": "[Preview]: Enable Monitoring in Azure Security Center", - "policyType": "BuiltIn", "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", "metadata": { "category": "Security Center" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "parameters": {}, "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "policyDefinitionReferenceId": "RefId1" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "policyDefinitionReferenceId": "RefId2" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "policyDefinitionReferenceId": "RefId3" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "policyDefinitionReferenceId": "RefId4" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/b0f33259-77d7-4c9e-aac6-3aabcfae693c", "policyDefinitionReferenceId": "RefId5" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "policyDefinitionReferenceId": "RefId6" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "policyDefinitionReferenceId": "RefId7" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/e1e5fd5d-3e4c-4ce1-8661-7d1873ae6b15", "policyDefinitionReferenceId": "RefId8" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "policyDefinitionReferenceId": "RefId9" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "policyDefinitionReferenceId": "RefId10" } + ], + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] - }, - "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8", - "type": "Microsoft.Authorization/policySetDefinitions", - "name": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8" + } }, { - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "type": "Microsoft.Authorization/policySetDefinitions", "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyDefinitions": [ { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -106,12 +98,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -119,13 +111,23 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitions_List", + "title": "List policy set definitions" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitionsByManagementGroup.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitionsByManagementGroup.json index 22dc8d8b4b27..c13d482435c4 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitionsByManagementGroup.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/listPolicySetDefinitionsByManagementGroup.json @@ -1,46 +1,42 @@ { "parameters": { - "managementGroupId": "MyManagementGroup", - "api-version": "2025-03-01" + "api-version": "2025-03-01", + "managementGroupId": "MyManagementGroup" }, "responses": { "200": { - "headers": {}, "body": { "value": [ { + "name": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8", "properties": { - "displayName": "[Preview]: Enable Monitoring in Azure Security Center", - "policyType": "BuiltIn", "description": "Monitor all the available security recommendations in Azure Security Center. This is the default policy for Azure Security Center.", + "displayName": "[Preview]: Enable Monitoring in Azure Security Center", "metadata": { "category": "Security Center" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "parameters": {}, "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/a8bef009-a5c9-4d0f-90d7-6018734e8a16", "policyDefinitionReferenceId": "RefId1" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af8051bf-258b-44e2-a2bf-165330459f9d", "policyDefinitionReferenceId": "RefId2" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/86b3d65f-7626-441e-b690-81a8b71cff60", "policyDefinitionReferenceId": "RefId3" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/655cb504-bcee-4362-bd4c-402e6aa38759", "policyDefinitionReferenceId": "RefId4" }, { @@ -48,13 +44,13 @@ "policyDefinitionReferenceId": "RefId5" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/47a6b606-51aa-4496-8bb7-64b11cf66adc", "policyDefinitionReferenceId": "RefId6" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/44452482-524f-4bf4-b852-0bff7cc4a3ed", "policyDefinitionReferenceId": "RefId7" }, { @@ -62,41 +58,37 @@ "policyDefinitionReferenceId": "RefId8" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/af6cd1bd-1635-48cb-bde7-5b15693900b9", "policyDefinitionReferenceId": "RefId9" }, { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "definitionVersion": "1.*.*", + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d", "policyDefinitionReferenceId": "RefId10" } + ], + "policyType": "BuiltIn", + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] - }, - "id": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8", - "type": "Microsoft.Authorization/policySetDefinitions", - "name": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8" + } }, { - "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "type": "Microsoft.Authorization/policySetDefinitions", "name": "CostManagement", + "type": "Microsoft.Authorization/policySetDefinitions", + "id": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "properties": { - "displayName": "Cost Management", "description": "Policies to enforce low cost storage SKUs", + "displayName": "Cost Management", "metadata": { "category": "Cost Management" }, - "version": "1.2.1", - "versions": [ - "1.2.1", - "1.0.0" - ], "policyDefinitions": [ { - "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Limit_Skus", "parameters": { "listOfAllowedSKUs": { "value": [ @@ -104,12 +96,12 @@ "Standard_LRS" ] } - } + }, + "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1", + "policyDefinitionReferenceId": "Limit_Skus" }, { - "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", "definitionVersion": "1.*.*", - "policyDefinitionReferenceId": "Resource_Naming", "parameters": { "prefix": { "value": "DeptA" @@ -117,13 +109,23 @@ "suffix": { "value": "-LC" } - } + }, + "policyDefinitionId": "/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "policyDefinitionReferenceId": "Resource_Naming" } + ], + "version": "1.2.1", + "versions": [ + "1.2.1", + "1.0.0" ] } } ] - } + }, + "headers": {} } - } + }, + "operationId": "PolicySetDefinitions_ListByManagementGroup", + "title": "List policy set definitions at management group level" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithIdentity.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithIdentity.json index 60cd5093992b..116b5227d41c 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithIdentity.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithIdentity.json @@ -1,27 +1,36 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyAssignmentName": "EnforceNaming", "api-version": "2025-03-01", "parameters": { - "location": "eastus", "identity": { "type": "SystemAssigned" - } - } + }, + "location": "eastus" + }, + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "identity": { + "type": "SystemAssigned", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", + "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" + }, + "location": "eastus", "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "definitionVersion": "1.*.*", "notScopes": [], "parameters": { "prefix": { @@ -31,20 +40,13 @@ "value": "-LC" } }, - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b" - }, - "identity": { - "type": "SystemAssigned", - "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", - "tenantId": "4bee2b8a-1bee-47c2-90e9-404241551135" - }, - "location": "eastus", - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", - "type": "Microsoft.Authorization/policyAssignments", - "name": "EnforceNaming" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Update", + "title": "Update a policy assignment with a system assigned identity" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithOverrides.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithOverrides.json index 89fb00c11dcd..84030547bf7e 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithOverrides.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithOverrides.json @@ -1,64 +1,66 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyAssignmentName": "CostManagement", "api-version": "2025-03-01", "parameters": { "properties": { "overrides": [ { "kind": "policyEffect", - "value": "Audit", "selectors": [ { - "kind": "policyDefinitionReferenceId", "in": [ "Limit_Skus", "Limit_Locations" - ] + ], + "kind": "policyDefinitionReferenceId" } - ] + ], + "value": "Audit" } ] } - } + }, + "policyAssignmentName": "CostManagement", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", "properties": { - "displayName": "Limit the resource location and resource SKU", "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", + "enforcementMode": "Default", + "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "definitionVersion": "1.*.*", "notScopes": [], - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", "overrides": [ { "kind": "policyEffect", - "value": "Audit", "selectors": [ { - "kind": "policyDefinitionReferenceId", "in": [ "Limit_Skus", "Limit_Locations" - ] + ], + "kind": "policyDefinitionReferenceId" } - ] + ], + "value": "Audit" } ], - "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", - "type": "Microsoft.Authorization/policyAssignments", - "name": "CostManagement" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Update", + "title": "Update a policy assignment with overrides" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithResourceSelectors.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithResourceSelectors.json index fa5606cea323..4c6967ba9aec 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithResourceSelectors.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithResourceSelectors.json @@ -1,7 +1,5 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyAssignmentName": "CostManagement", "api-version": "2025-03-01", "parameters": { "properties": { @@ -10,53 +8,57 @@ "name": "SDPRegions", "selectors": [ { - "kind": "resourceLocation", "in": [ "eastus2euap", "centraluseuap" - ] + ], + "kind": "resourceLocation" } ] } ] } - } + }, + "policyAssignmentName": "CostManagement", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "CostManagement", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", "properties": { - "displayName": "Limit the resource location and resource SKU", "description": "Limit the resource location and resource SKU", + "definitionVersion": "1.*.*", + "displayName": "Limit the resource location and resource SKU", + "enforcementMode": "Default", + "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", - "definitionVersion": "1.*.*", "notScopes": [], - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policySetDefinitions/CostManagement", "resourceSelectors": [ { "name": "SDPRegions", "selectors": [ { - "kind": "resourceLocation", "in": [ "eastus2euap", "centraluseuap" - ] + ], + "kind": "resourceLocation" } ] } ], - "instanceId": "a3c4d5e6-f7a8-9b0c-1d2e-3f4a5b6c7d8e" - }, - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/CostManagement", - "type": "Microsoft.Authorization/policyAssignments", - "name": "CostManagement" - } + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Update", + "title": "Update a policy assignment with resource selectors" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithUserAssignedIdentity.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithUserAssignedIdentity.json index b9f912dcf623..1b4d76996cb7 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithUserAssignedIdentity.json +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/examples/updatePolicyAssignmentWithUserAssignedIdentity.json @@ -1,30 +1,43 @@ { "parameters": { - "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "policyAssignmentName": "EnforceNaming", "api-version": "2025-03-01", "parameters": { - "location": "eastus", "identity": { "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": {} } - } - } + }, + "location": "eastus" + }, + "policyAssignmentName": "EnforceNaming", + "scope": "subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" }, "responses": { "200": { - "headers": {}, "body": { + "name": "EnforceNaming", + "type": "Microsoft.Authorization/policyAssignments", + "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": { + "clientId": "4bee2b8a-1bee-47c2-90e9-404241551135", + "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a" + } + } + }, + "location": "eastus", "properties": { - "displayName": "Enforce resource naming rules", "description": "Force resource names to begin with given DeptA and end with -LC", + "definitionVersion": "1.*.*", + "displayName": "Enforce resource naming rules", + "enforcementMode": "Default", + "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b", "metadata": { "assignedBy": "Special Someone" }, - "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", - "definitionVersion": "1.*.*", "notScopes": [], "parameters": { "prefix": { @@ -34,24 +47,13 @@ "value": "-LC" } }, - "enforcementMode": "Default", - "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2", - "instanceId": "e4b0f5a6-7c8d-4e9f-8a1b-2c3d4e5f6a7b" - }, - "identity": { - "type": "UserAssigned", - "userAssignedIdentities": { - "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": { - "principalId": "e6d23f8d-af97-4fbc-bda6-00604e4e3d0a", - "clientId": "4bee2b8a-1bee-47c2-90e9-404241551135" - } - } - }, - "location": "eastus", - "id": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyAssignments/EnforceNaming", - "type": "Microsoft.Authorization/policyAssignments", - "name": "EnforceNaming" - } + "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming", + "scope": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2" + } + }, + "headers": {} } - } + }, + "operationId": "PolicyAssignments_Update", + "title": "Update a policy assignment with a user assigned identity" } diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/openapi.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/openapi.json new file mode 100644 index 000000000000..6ce8aa44bd78 --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/openapi.json @@ -0,0 +1,4438 @@ +{ + "swagger": "2.0", + "info": { + "title": "PolicyClient", + "version": "2025-03-01", + "description": "To manage and control access to your resources, you can define customized policies and assign them at a scope.", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "PolicyAssignments" + }, + { + "name": "PolicyDefinitions" + }, + { + "name": "PolicyDefinitionVersions" + }, + { + "name": "PolicySetDefinitions" + }, + { + "name": "PolicySetDefinitionVersions" + } + ], + "paths": { + "/{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}": { + "get": { + "operationId": "PolicyAssignments_Get", + "tags": [ + "PolicyAssignments" + ], + "description": "This operation retrieves a single policy assignment, given its name and the scope it was created at.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "scope", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "policyAssignmentName", + "in": "path", + "description": "The name of the policy assignment to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyAssignment" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Retrieve a policy assignment": { + "$ref": "./examples/getPolicyAssignment.json" + }, + "Retrieve a policy assignment with a system assigned identity": { + "$ref": "./examples/getPolicyAssignmentWithIdentity.json" + }, + "Retrieve a policy assignment with a user assigned identity": { + "$ref": "./examples/getPolicyAssignmentWithUserAssignedIdentity.json" + }, + "Retrieve a policy assignment with overrides": { + "$ref": "./examples/getPolicyAssignmentWithOverrides.json" + }, + "Retrieve a policy assignment with resource selectors": { + "$ref": "./examples/getPolicyAssignmentWithResourceSelectors.json" + } + } + }, + "put": { + "operationId": "PolicyAssignments_Create", + "tags": [ + "PolicyAssignments" + ], + "description": "This operation creates or updates a policy assignment with the given scope and name. Policy assignments apply to all resources contained within their scope. For example, when you assign a policy at resource group scope, that policy applies to all resources in the group.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "scope", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "policyAssignmentName", + "in": "path", + "description": "The name of the policy assignment to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "Parameters for the policy assignment.", + "required": true, + "schema": { + "$ref": "#/definitions/PolicyAssignment" + } + } + ], + "responses": { + "201": { + "description": "Resource 'PolicyAssignment' create operation succeeded", + "schema": { + "$ref": "#/definitions/PolicyAssignment" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or update a policy assignment": { + "$ref": "./examples/createPolicyAssignment.json" + }, + "Create or update a policy assignment to enforce policy effect only on enrolled resources during resource creation or update.": { + "$ref": "./examples/createPolicyAssignmentWithEnrollEnforcement.json" + }, + "Create or update a policy assignment with a system assigned identity": { + "$ref": "./examples/createPolicyAssignmentWithIdentity.json" + }, + "Create or update a policy assignment with a user assigned identity": { + "$ref": "./examples/createPolicyAssignmentWithUserAssignedIdentity.json" + }, + "Create or update a policy assignment with multiple non-compliance messages": { + "$ref": "./examples/createPolicyAssignmentNonComplianceMessages.json" + }, + "Create or update a policy assignment with overrides": { + "$ref": "./examples/createPolicyAssignmentWithOverrides.json" + }, + "Create or update a policy assignment with resource selectors": { + "$ref": "./examples/createPolicyAssignmentWithResourceSelectors.json" + }, + "Create or update a policy assignment without enforcing policy effect during resource creation or update.": { + "$ref": "./examples/createPolicyAssignmentWithoutEnforcement.json" + } + } + }, + "patch": { + "operationId": "PolicyAssignments_Update", + "tags": [ + "PolicyAssignments" + ], + "description": "This operation updates a policy assignment with the given scope and name. Policy assignments apply to all resources contained within their scope. For example, when you assign a policy at resource group scope, that policy applies to all resources in the group.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "scope", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "policyAssignmentName", + "in": "path", + "description": "The name of the policy assignment to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "Parameters for policy assignment patch request.", + "required": true, + "schema": { + "$ref": "#/definitions/PolicyAssignmentUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyAssignment" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update a policy assignment with a system assigned identity": { + "$ref": "./examples/updatePolicyAssignmentWithIdentity.json" + }, + "Update a policy assignment with a user assigned identity": { + "$ref": "./examples/updatePolicyAssignmentWithUserAssignedIdentity.json" + }, + "Update a policy assignment with overrides": { + "$ref": "./examples/updatePolicyAssignmentWithOverrides.json" + }, + "Update a policy assignment with resource selectors": { + "$ref": "./examples/updatePolicyAssignmentWithResourceSelectors.json" + } + } + }, + "delete": { + "operationId": "PolicyAssignments_Delete", + "tags": [ + "PolicyAssignments" + ], + "description": "This operation deletes a policy assignment, given its name and the scope it was created in. The scope of a policy assignment is the part of its ID preceding '/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "scope", + "in": "path", + "description": "The fully qualified Azure Resource manager identifier of the resource.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "policyAssignmentName", + "in": "path", + "description": "The name of the policy assignment to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyAssignment" + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a policy assignment": { + "$ref": "./examples/deletePolicyAssignment.json" + } + } + } + }, + "/providers/Microsoft.Authorization/listPolicyDefinitionVersions": { + "post": { + "operationId": "PolicyDefinitionVersions_ListAllBuiltins", + "summary": "Lists all built-in policy definition versions.", + "description": "This operation lists all the built-in policy definition versions for all built-in policy definitions.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all built-in policy definition versions": { + "$ref": "./examples/listAllBuiltInPolicyDefinitionVersions.json" + } + } + } + }, + "/providers/Microsoft.Authorization/listPolicySetDefinitionVersions": { + "post": { + "operationId": "PolicySetDefinitionVersions_ListAllBuiltins", + "summary": "Lists all built-in policy set definition versions.", + "description": "This operation lists all the built-in policy set definition versions for all built-in policy set definitions.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all built-in policy definition versions": { + "$ref": "./examples/listAllBuiltInPolicySetDefinitionVersions.json" + } + } + } + }, + "/providers/Microsoft.Authorization/policyDefinitions": { + "get": { + "operationId": "PolicyDefinitions_ListBuiltIn", + "tags": [ + "PolicyDefinitions" + ], + "description": "This operation retrieves a list of all the built-in policy definitions that match the optional given $filter. If $filter='policyType -eq {value}' is provided, the returned list only includes all built-in policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all built-in policy definitions whose category match the {value}.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinitionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List built-in policy definitions": { + "$ref": "./examples/listBuiltInPolicyDefinitions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}": { + "get": { + "operationId": "PolicyDefinitions_GetBuiltIn", + "tags": [ + "PolicyDefinitions" + ], + "description": "This operation retrieves the built-in policy definition with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the built-in policy definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinition" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Retrieve a built-in policy definition": { + "$ref": "./examples/getBuiltinPolicyDefinition.json" + } + } + } + }, + "/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}/versions": { + "get": { + "operationId": "PolicyDefinitionVersions_ListBuiltIn", + "tags": [ + "PolicyDefinitionVersions" + ], + "description": "This operation retrieves a list of all the built-in policy definition versions for the given policy definition.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List built-in policy definition versions": { + "$ref": "./examples/listBuiltInPolicyDefinitionVersions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}/versions/{policyDefinitionVersion}": { + "get": { + "operationId": "PolicyDefinitionVersions_GetBuiltIn", + "tags": [ + "PolicyDefinitionVersions" + ], + "description": "This operation retrieves the built-in policy definition version with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersion" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Retrieve a built-in policy definition version": { + "$ref": "./examples/getBuiltinPolicyDefinitionVersion.json" + } + } + } + }, + "/providers/Microsoft.Authorization/policySetDefinitions": { + "get": { + "operationId": "PolicySetDefinitions_ListBuiltIn", + "tags": [ + "PolicySetDefinitions" + ], + "description": "This operation retrieves a list of all the built-in policy set definitions that match the optional given $filter. If $filter='category -eq {value}' is provided, the returned list only includes all built-in policy set definitions whose category match the {value}.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}.", + "required": false, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List built-in policy set definitions": { + "$ref": "./examples/listBuiltInPolicySetDefinitions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}": { + "get": { + "operationId": "PolicySetDefinitions_GetBuiltIn", + "tags": [ + "PolicySetDefinitions" + ], + "description": "This operation retrieves the built-in policy set definition with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinition" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Retrieve a built-in policy set definition": { + "$ref": "./examples/getBuiltInPolicySetDefinition.json" + } + } + } + }, + "/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}/versions": { + "get": { + "operationId": "PolicySetDefinitionVersions_ListBuiltIn", + "tags": [ + "PolicySetDefinitionVersions" + ], + "description": "This operation retrieves a list of all the built-in policy set definition versions for the given built-in policy set definition.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List built-in policy set definitions": { + "$ref": "./examples/listBuiltInPolicySetDefinitionVersions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}/versions/{policyDefinitionVersion}": { + "get": { + "operationId": "PolicySetDefinitionVersions_GetBuiltIn", + "tags": [ + "PolicySetDefinitionVersions" + ], + "description": "This operation retrieves the built-in policy set definition version with the given name and version.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy set definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersion" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Retrieve a built-in policy set definition version": { + "$ref": "./examples/getBuiltInPolicySetDefinitionVersion.json" + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/acquirePolicyToken": { + "post": { + "operationId": "PolicyTokens_AcquireAtManagementGroup", + "summary": "Acquires a policy token at management group level.", + "description": "This operation acquires a policy token in the given management group for the given request body.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "The policy token properties.", + "required": true, + "schema": { + "$ref": "#/definitions/PolicyTokenRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PolicyTokenResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Acquire a policy token at management group level": { + "$ref": "./examples/acquirePolicyTokenAtManagementGroup.json" + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/listPolicyDefinitionVersions": { + "post": { + "operationId": "PolicyDefinitionVersions_ListAllAtManagementGroup", + "summary": "Lists all policy definition versions at management group scope.", + "description": "This operation lists all the policy definition versions for all policy definitions at the management group scope.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all policy definition versions at management group": { + "$ref": "./examples/listAllPolicyDefinitionVersionsByManagementGroup.json" + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/listPolicySetDefinitionVersions": { + "post": { + "operationId": "PolicySetDefinitionVersions_ListAllAtManagementGroup", + "summary": "Lists all policy set definition versions at management group scope.", + "description": "This operation lists all the policy set definition versions for all policy set definitions at the management group scope.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all policy definition versions at management group": { + "$ref": "./examples/listAllPolicySetDefinitionVersionsByManagementGroup.json" + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Authorization/policyAssignments": { + "get": { + "operationId": "PolicyAssignments_ListForManagementGroup", + "tags": [ + "PolicyAssignments" + ], + "summary": "Retrieves all policy assignments that apply to a management group.", + "description": "This operation retrieves the list of all policy assignments applicable to the management group that match the given $filter. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter=atScope() is provided, the returned list includes all policy assignments that are assigned to the management group or the management group's ancestors. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the management group. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value} that apply to the management group.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "managementGroupId", + "in": "path", + "description": "The management group ID.", + "required": true, + "type": "string", + "minLength": 1 + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atScope() is provided, the returned list only includes all policy assignments that apply to the scope, which is everything in the unfiltered list except those applied to sub scopes contained within the given scope. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the given scope. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value}.", + "required": false, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyAssignmentListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List policy assignments that apply to a management group": { + "$ref": "./examples/listPolicyAssignmentsForManagementGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Authorization/policyDefinitions": { + "get": { + "operationId": "PolicyDefinitions_ListByManagementGroup", + "tags": [ + "PolicyDefinitions" + ], + "description": "This operation retrieves a list of all the policy definitions in a given management group that match the optional given $filter. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, the unfiltered list includes all policy definitions associated with the management group, including those that apply directly or from management groups that contain the given management group. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given management group. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "managementGroupId", + "in": "path", + "description": "The ID of the management group.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinitionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List policy definitions by management group": { + "$ref": "./examples/listPolicyDefinitionsByManagementGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}": { + "get": { + "operationId": "PolicyDefinitions_GetAtManagementGroup", + "tags": [ + "PolicyDefinitions" + ], + "description": "This operation retrieves the policy definition in the given management group with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "managementGroupId", + "in": "path", + "description": "The ID of the management group.", + "required": true, + "type": "string" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinition" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Retrieve a policy definition at management group level": { + "$ref": "./examples/getPolicyDefinitionAtManagementGroup.json" + } + } + }, + "put": { + "operationId": "PolicyDefinitions_CreateOrUpdateAtManagementGroup", + "tags": [ + "PolicyDefinitions" + ], + "description": "This operation creates or updates a policy definition in the given management group with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "managementGroupId", + "in": "path", + "description": "The ID of the management group.", + "required": true, + "type": "string" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The policy definition properties.", + "required": true, + "schema": { + "$ref": "#/definitions/PolicyDefinition" + } + } + ], + "responses": { + "201": { + "description": "Resource 'PolicyDefinition' create operation succeeded", + "schema": { + "$ref": "#/definitions/PolicyDefinition" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or update a policy definition at management group level": { + "$ref": "./examples/createOrUpdatePolicyDefinitionAtManagementGroup.json" + } + } + }, + "delete": { + "operationId": "PolicyDefinitions_DeleteAtManagementGroup", + "tags": [ + "PolicyDefinitions" + ], + "description": "This operation deletes the policy definition in the given management group with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "managementGroupId", + "in": "path", + "description": "The ID of the management group.", + "required": true, + "type": "string" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a policy definition at management group level": { + "$ref": "./examples/deletePolicyDefinitionAtManagementGroup.json" + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}/versions": { + "get": { + "operationId": "PolicyDefinitionVersions_ListByManagementGroup", + "tags": [ + "PolicyDefinitionVersions" + ], + "description": "This operation retrieves a list of all the policy definition versions for the given policy definition in the given management group.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List policy definition versions by management group": { + "$ref": "./examples/listPolicyDefinitionVersionsByManagementGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}/versions/{policyDefinitionVersion}": { + "get": { + "operationId": "PolicyDefinitionVersions_GetAtManagementGroup", + "tags": [ + "PolicyDefinitionVersions" + ], + "description": "This operation retrieves the policy definition version in the given management group with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersion" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Retrieve a policy definition version at management group level": { + "$ref": "./examples/getPolicyDefinitionVersionAtManagementGroup.json" + } + } + }, + "put": { + "operationId": "PolicyDefinitionVersions_CreateOrUpdateAtManagementGroup", + "tags": [ + "PolicyDefinitionVersions" + ], + "description": "This operation creates or updates a policy definition version in the given management group with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The policy definition properties.", + "required": true, + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersion" + } + } + ], + "responses": { + "200": { + "description": "Resource 'PolicyDefinitionVersion' update operation succeeded", + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersion" + } + }, + "201": { + "description": "Resource 'PolicyDefinitionVersion' create operation succeeded", + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersion" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or update a policy definition version at management group level": { + "$ref": "./examples/createOrUpdatePolicyDefinitionVersionAtManagementGroup.json" + } + } + }, + "delete": { + "operationId": "PolicyDefinitionVersions_DeleteAtManagementGroup", + "tags": [ + "PolicyDefinitionVersions" + ], + "description": "This operation deletes the policy definition in the given management group with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a policy definition version at management group level": { + "$ref": "./examples/deletePolicyDefinitionVersionAtManagementGroup.json" + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Authorization/policySetDefinitions": { + "get": { + "operationId": "PolicySetDefinitions_ListByManagementGroup", + "tags": [ + "PolicySetDefinitions" + ], + "description": "This operation retrieves a list of all the policy set definitions in a given management group that match the optional given $filter. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, the unfiltered list includes all policy set definitions associated with the management group, including those that apply directly or from management groups that contain the given management group. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given management group. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn and Custom. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "managementGroupId", + "in": "path", + "description": "The ID of the management group.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}.", + "required": false, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List policy set definitions at management group level": { + "$ref": "./examples/listPolicySetDefinitionsByManagementGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}": { + "get": { + "operationId": "PolicySetDefinitions_GetAtManagementGroup", + "tags": [ + "PolicySetDefinitions" + ], + "description": "This operation retrieves the policy set definition in the given management group with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "managementGroupId", + "in": "path", + "description": "The ID of the management group.", + "required": true, + "type": "string" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinition" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Retrieve a policy set definition at management group level": { + "$ref": "./examples/getPolicySetDefinitionAtManagementGroup.json" + } + } + }, + "put": { + "operationId": "PolicySetDefinitions_CreateOrUpdateAtManagementGroup", + "tags": [ + "PolicySetDefinitions" + ], + "description": "This operation creates or updates a policy set definition in the given management group with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "managementGroupId", + "in": "path", + "description": "The ID of the management group.", + "required": true, + "type": "string" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The policy set definition properties.", + "required": true, + "schema": { + "$ref": "#/definitions/PolicySetDefinition" + } + } + ], + "responses": { + "200": { + "description": "Resource 'PolicySetDefinition' update operation succeeded", + "schema": { + "$ref": "#/definitions/PolicySetDefinition" + } + }, + "201": { + "description": "Resource 'PolicySetDefinition' create operation succeeded", + "schema": { + "$ref": "#/definitions/PolicySetDefinition" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or update a policy set definition at management group level": { + "$ref": "./examples/createOrUpdatePolicySetDefinitionAtManagementGroup.json" + }, + "Create or update a policy set definition with groups at management group level": { + "$ref": "./examples/createOrUpdatePolicySetDefinitionWithGroupsAtManagementGroup.json" + } + } + }, + "delete": { + "operationId": "PolicySetDefinitions_DeleteAtManagementGroup", + "tags": [ + "PolicySetDefinitions" + ], + "description": "This operation deletes the policy set definition in the given management group with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "managementGroupId", + "in": "path", + "description": "The ID of the management group.", + "required": true, + "type": "string" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a policy set definition at management group level": { + "$ref": "./examples/deletePolicySetDefinitionAtManagementGroup.json" + } + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}/versions": { + "get": { + "operationId": "PolicySetDefinitionVersions_ListByManagementGroup", + "tags": [ + "PolicySetDefinitionVersions" + ], + "description": "This operation retrieves a list of all the policy set definition versions for the given policy set definition in a given management group.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List policy set definitions at management group level": { + "$ref": "./examples/listPolicySetDefinitionVersionsByManagementGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}/versions/{policyDefinitionVersion}": { + "get": { + "operationId": "PolicySetDefinitionVersions_GetAtManagementGroup", + "tags": [ + "PolicySetDefinitionVersions" + ], + "description": "This operation retrieves the policy set definition version in the given management group with the given name and version.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy set definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersion" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Retrieve a policy set definition version at management group level": { + "$ref": "./examples/getPolicySetDefinitionVersionAtManagementGroup.json" + } + } + }, + "put": { + "operationId": "PolicySetDefinitionVersions_CreateOrUpdateAtManagementGroup", + "tags": [ + "PolicySetDefinitionVersions" + ], + "description": "This operation creates or updates a policy set definition version in the given management group with the given name and version.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy set definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The policy set definition version properties.", + "required": true, + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersion" + } + } + ], + "responses": { + "200": { + "description": "Resource 'PolicySetDefinitionVersion' update operation succeeded", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersion" + } + }, + "201": { + "description": "Resource 'PolicySetDefinitionVersion' create operation succeeded", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersion" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or update a policy set definition version at management group level": { + "$ref": "./examples/createOrUpdatePolicySetDefinitionVersionAtManagementGroup.json" + } + } + }, + "delete": { + "operationId": "PolicySetDefinitionVersions_DeleteAtManagementGroup", + "tags": [ + "PolicySetDefinitionVersions" + ], + "description": "This operation deletes the policy set definition version in the given management group with the given name and version.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy set definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a policy set definition version at management group level": { + "$ref": "./examples/deletePolicySetDefinitionVersionAtManagementGroup.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/acquirePolicyToken": { + "post": { + "operationId": "PolicyTokens_Acquire", + "summary": "Acquires a policy token.", + "description": "This operation acquires a policy token in the given subscription for the given request body.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "parameters", + "in": "body", + "description": "The request body", + "required": true, + "schema": { + "$ref": "#/definitions/PolicyTokenRequest" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PolicyTokenResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Acquire a policy token": { + "$ref": "./examples/acquirePolicyToken.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/listPolicyDefinitionVersions": { + "post": { + "operationId": "PolicyDefinitionVersions_ListAll", + "summary": "Lists all policy definition versions within a subscription.", + "description": "This operation lists all the policy definition versions for all policy definitions within a subscription.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all policy definition versions at subscription": { + "$ref": "./examples/listAllPolicyDefinitionVersions.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/listPolicySetDefinitionVersions": { + "post": { + "operationId": "PolicySetDefinitionVersions_ListAll", + "summary": "Lists all policy set definition versions within a subscription.", + "description": "This operation lists all the policy set definition versions for all policy set definitions within a subscription.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all policy definition versions at subscription": { + "$ref": "./examples/listAllPolicySetDefinitionVersions.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyAssignments": { + "get": { + "operationId": "PolicyAssignments_List", + "tags": [ + "PolicyAssignments" + ], + "summary": "Retrieves all policy assignments that apply to a subscription.", + "description": "This operation retrieves the list of all policy assignments associated with the given subscription that match the optional given $filter. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, the unfiltered list includes all policy assignments associated with the subscription, including those that apply directly or from management groups that contain the given subscription, as well as any applied to objects contained within the subscription. If $filter=atScope() is provided, the returned list includes all policy assignments that apply to the subscription, which is everything in the unfiltered list except those applied to objects contained within the subscription. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the subscription. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value}.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atScope() is provided, the returned list only includes all policy assignments that apply to the scope, which is everything in the unfiltered list except those applied to sub scopes contained within the given scope. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the given scope. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value}.", + "required": false, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyAssignmentListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List policy assignments that apply to a subscription": { + "$ref": "./examples/listPolicyAssignments.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyDefinitions": { + "get": { + "operationId": "PolicyDefinitions_List", + "tags": [ + "PolicyDefinitions" + ], + "description": "This operation retrieves a list of all the policy definitions in a given subscription that match the optional given $filter. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, the unfiltered list includes all policy definitions associated with the subscription, including those that apply directly or from management groups that contain the given subscription. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given subscription. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinitionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List policy definitions by subscription": { + "$ref": "./examples/listPolicyDefinitions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}": { + "get": { + "operationId": "PolicyDefinitions_Get", + "tags": [ + "PolicyDefinitions" + ], + "description": "This operation retrieves the policy definition in the given subscription with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinition" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Retrieve a policy definition": { + "$ref": "./examples/getPolicyDefinition.json" + } + } + }, + "put": { + "operationId": "PolicyDefinitions_CreateOrUpdate", + "tags": [ + "PolicyDefinitions" + ], + "description": "This operation creates or updates a policy definition in the given subscription with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The policy definition properties.", + "required": true, + "schema": { + "$ref": "#/definitions/PolicyDefinition" + } + } + ], + "responses": { + "201": { + "description": "Resource 'PolicyDefinition' create operation succeeded", + "schema": { + "$ref": "#/definitions/PolicyDefinition" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or update a policy definition": { + "$ref": "./examples/createOrUpdatePolicyDefinition.json" + }, + "Create or update a policy definition with advanced parameters": { + "$ref": "./examples/createOrUpdatePolicyDefinitionAdvancedParams.json" + }, + "Create or update a policy definition with external evaluation enforcement settings": { + "$ref": "./examples/createOrUpdatePolicyDefinitionExternalEvaluationEnforcementSettings.json" + } + } + }, + "delete": { + "operationId": "PolicyDefinitions_Delete", + "tags": [ + "PolicyDefinitions" + ], + "description": "This operation deletes the policy definition in the given subscription with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a policy definition": { + "$ref": "./examples/deletePolicyDefinition.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}/versions": { + "get": { + "operationId": "PolicyDefinitionVersions_List", + "tags": [ + "PolicyDefinitionVersions" + ], + "description": "This operation retrieves a list of all the policy definition versions for the given policy definition.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List policy definition versions by subscription": { + "$ref": "./examples/listPolicyDefinitionVersions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}/versions/{policyDefinitionVersion}": { + "get": { + "operationId": "PolicyDefinitionVersions_Get", + "tags": [ + "PolicyDefinitionVersions" + ], + "description": "This operation retrieves the policy definition version in the given subscription with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersion" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Retrieve a policy definition version": { + "$ref": "./examples/getPolicyDefinitionVersion.json" + } + } + }, + "put": { + "operationId": "PolicyDefinitionVersions_CreateOrUpdate", + "tags": [ + "PolicyDefinitionVersions" + ], + "description": "This operation creates or updates a policy definition in the given subscription with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The policy definition properties.", + "required": true, + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersion" + } + } + ], + "responses": { + "200": { + "description": "Resource 'PolicyDefinitionVersion' update operation succeeded", + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersion" + } + }, + "201": { + "description": "Resource 'PolicyDefinitionVersion' create operation succeeded", + "schema": { + "$ref": "#/definitions/PolicyDefinitionVersion" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or update a policy definition version": { + "$ref": "./examples/createOrUpdatePolicyDefinitionVersion.json" + } + } + }, + "delete": { + "operationId": "PolicyDefinitionVersions_Delete", + "tags": [ + "PolicyDefinitionVersions" + ], + "description": "This operation deletes the policy definition version in the given subscription with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policyDefinitionName", + "in": "path", + "description": "The name of the policy definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a policy definition version": { + "$ref": "./examples/deletePolicyDefinitionVersion.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions": { + "get": { + "operationId": "PolicySetDefinitions_List", + "tags": [ + "PolicySetDefinitions" + ], + "description": "This operation retrieves a list of all the policy set definitions in a given subscription that match the optional given $filter. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, the unfiltered list includes all policy set definitions associated with the subscription, including those that apply directly or from management groups that contain the given subscription. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given subscription. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn and Custom. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}.", + "required": false, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List policy set definitions": { + "$ref": "./examples/listPolicySetDefinitions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}": { + "get": { + "operationId": "PolicySetDefinitions_Get", + "tags": [ + "PolicySetDefinitions" + ], + "description": "This operation retrieves the policy set definition in the given subscription with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinition" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Retrieve a policy set definition": { + "$ref": "./examples/getPolicySetDefinition.json" + } + } + }, + "put": { + "operationId": "PolicySetDefinitions_CreateOrUpdate", + "tags": [ + "PolicySetDefinitions" + ], + "description": "This operation creates or updates a policy set definition in the given subscription with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The policy set definition properties.", + "required": true, + "schema": { + "$ref": "#/definitions/PolicySetDefinition" + } + } + ], + "responses": { + "200": { + "description": "Resource 'PolicySetDefinition' update operation succeeded", + "schema": { + "$ref": "#/definitions/PolicySetDefinition" + } + }, + "201": { + "description": "Resource 'PolicySetDefinition' create operation succeeded", + "schema": { + "$ref": "#/definitions/PolicySetDefinition" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or update a policy set definition": { + "$ref": "./examples/createOrUpdatePolicySetDefinition.json" + }, + "Create or update a policy set definition with groups": { + "$ref": "./examples/createOrUpdatePolicySetDefinitionWithGroups.json" + } + } + }, + "delete": { + "operationId": "PolicySetDefinitions_Delete", + "tags": [ + "PolicySetDefinitions" + ], + "description": "This operation deletes the policy set definition in the given subscription with the given name.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition to get.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a policy set definition": { + "$ref": "./examples/deletePolicySetDefinition.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}/versions": { + "get": { + "operationId": "PolicySetDefinitionVersions_List", + "tags": [ + "PolicySetDefinitionVersions" + ], + "description": "This operation retrieves a list of all the policy set definition versions for the given policy set definition.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List policy set definitions": { + "$ref": "./examples/listPolicySetDefinitionVersions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}/versions/{policyDefinitionVersion}": { + "get": { + "operationId": "PolicySetDefinitionVersions_Get", + "tags": [ + "PolicySetDefinitionVersions" + ], + "description": "This operation retrieves the policy set definition version in the given subscription with the given name and version.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy set definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersion" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Retrieve a policy set definition version": { + "$ref": "./examples/getPolicySetDefinitionVersion.json" + } + } + }, + "put": { + "operationId": "PolicySetDefinitionVersions_CreateOrUpdate", + "tags": [ + "PolicySetDefinitionVersions" + ], + "description": "This operation creates or updates a policy set definition version in the given subscription with the given name and version.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy set definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + }, + { + "name": "parameters", + "in": "body", + "description": "The policy set definition properties.", + "required": true, + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersion" + } + } + ], + "responses": { + "200": { + "description": "Resource 'PolicySetDefinitionVersion' update operation succeeded", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersion" + } + }, + "201": { + "description": "Resource 'PolicySetDefinitionVersion' create operation succeeded", + "schema": { + "$ref": "#/definitions/PolicySetDefinitionVersion" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or update a policy set definition version": { + "$ref": "./examples/createOrUpdatePolicySetDefinitionVersion.json" + } + } + }, + "delete": { + "operationId": "PolicySetDefinitionVersions_Delete", + "tags": [ + "PolicySetDefinitionVersions" + ], + "description": "This operation deletes the policy set definition version in the given subscription with the given name and version.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "policySetDefinitionName", + "in": "path", + "description": "The name of the policy set definition.", + "required": true, + "type": "string", + "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$" + }, + { + "name": "policyDefinitionVersion", + "in": "path", + "description": "The policy set definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", + "required": true, + "type": "string", + "pattern": "^\\d+\\.\\d+\\.\\d+$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a policy set definition version": { + "$ref": "./examples/deletePolicySetDefinitionVersion.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}/providers/Microsoft.Authorization/policyAssignments": { + "get": { + "operationId": "PolicyAssignments_ListForResource", + "tags": [ + "PolicyAssignments" + ], + "summary": "Retrieves all policy assignments that apply to a resource.", + "description": "This operation retrieves the list of all policy assignments associated with the specified resource in the given resource group and subscription that match the optional given $filter. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, the unfiltered list includes all policy assignments associated with the resource, including those that apply directly or from all containing scopes, as well as any applied to resources contained within the resource. If $filter=atScope() is provided, the returned list includes all policy assignments that apply to the resource, which is everything in the unfiltered list except those applied to resources contained within the resource. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the resource level. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value} that apply to the resource. Three parameters plus the resource name are used to identify a specific resource. If the resource is not part of a parent resource (the more common case), the parent resource path should not be provided (or provided as ''). For example a web app could be specified as ({resourceProviderNamespace} == 'Microsoft.Web', {parentResourcePath} == '', {resourceType} == 'sites', {resourceName} == 'MyWebApp'). If the resource is part of a parent resource, then all parameters should be provided. For example a virtual machine DNS name could be specified as ({resourceProviderNamespace} == 'Microsoft.Compute', {parentResourcePath} == 'virtualMachines/MyVirtualMachine', {resourceType} == 'domainNames', {resourceName} == 'MyComputerName'). A convenient alternative to providing the namespace and type name separately is to provide both in the {resourceType} parameter, format: ({resourceProviderNamespace} == '', {parentResourcePath} == '', {resourceType} == 'Microsoft.Web/sites', {resourceName} == 'MyWebApp').", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "resourceProviderNamespace", + "in": "path", + "description": "The namespace of the resource provider. For example, the namespace of a virtual machine is Microsoft.Compute (from Microsoft.Compute/virtualMachines)", + "required": true, + "type": "string" + }, + { + "name": "parentResourcePath", + "in": "path", + "description": "The parent resource path. Use empty string if there is none.", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "resourceType", + "in": "path", + "description": "The resource type name. For example the type name of a web app is 'sites' (from Microsoft.Web/sites).", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true + }, + { + "name": "resourceName", + "in": "path", + "description": "The name of the resource.", + "required": true, + "type": "string", + "pattern": "^.+$" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atScope() is provided, the returned list only includes all policy assignments that apply to the scope, which is everything in the unfiltered list except those applied to sub scopes contained within the given scope. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the given scope. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value}.", + "required": false, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyAssignmentListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List policy assignments that apply to a resource group": { + "$ref": "./examples/listPolicyAssignmentsForResource.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments": { + "get": { + "operationId": "PolicyAssignments_ListForResourceGroup", + "tags": [ + "PolicyAssignments" + ], + "description": "This operation retrieves the list of all policy assignments associated with the given resource group in the given subscription that match the optional given $filter. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, the unfiltered list includes all policy assignments associated with the resource group, including those that apply directly or apply from containing scopes, as well as any applied to resources contained within the resource group. If $filter=atScope() is provided, the returned list includes all policy assignments that apply to the resource group, which is everything in the unfiltered list except those applied to resources contained within the resource group. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the resource group. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value} that apply to the resource group.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "$filter", + "in": "query", + "description": "The filter to apply on the operation. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atScope() is provided, the returned list only includes all policy assignments that apply to the scope, which is everything in the unfiltered list except those applied to sub scopes contained within the given scope. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the given scope. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value}.", + "required": false, + "type": "string" + }, + { + "name": "$expand", + "in": "query", + "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", + "required": false, + "type": "string" + }, + { + "name": "$top", + "in": "query", + "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PolicyAssignmentListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List policy assignments that apply to a resource group": { + "$ref": "./examples/listPolicyAssignmentsForResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "AssignmentType": { + "type": "string", + "description": "The type of policy assignment. Possible values are NotSpecified, System, SystemHidden, and Custom. Immutable.", + "enum": [ + "NotSpecified", + "System", + "SystemHidden", + "Custom" + ], + "x-ms-enum": { + "name": "AssignmentType", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "NotSpecified" + }, + { + "name": "System", + "value": "System", + "description": "System" + }, + { + "name": "SystemHidden", + "value": "SystemHidden", + "description": "SystemHidden" + }, + { + "name": "Custom", + "value": "Custom", + "description": "Custom" + } + ] + } + }, + "ExternalEndpointResult": { + "type": "string", + "description": "The result of the external endpoint. Possible values are Succeeded and Failed.", + "enum": [ + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "ExternalEndpointResult", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Succeeded" + }, + { + "name": "Failed", + "value": "Failed", + "description": "Failed" + } + ] + } + }, + "ExternalEvaluationEndpointInvocationResult": { + "type": "object", + "description": "The external evaluation endpoint invocation results.", + "properties": { + "policyInfo": { + "$ref": "#/definitions/PolicyLogInfo", + "description": "The details of the policy requiring the external endpoint invocation." + }, + "result": { + "$ref": "#/definitions/ExternalEndpointResult", + "description": "The result of the external endpoint. Possible values are Succeeded and Failed." + }, + "message": { + "type": "string", + "description": "The status message with additional details about the invocation result." + }, + "retryAfter": { + "type": "string", + "format": "date-time", + "description": "The date and time after which a failed endpoint invocation can be retried." + }, + "claims": { + "description": "The set of claims that will be attached to the policy token as an attestation for the result of the endpoint invocation." + }, + "expiration": { + "type": "string", + "format": "date-time", + "description": "The expiration of the results." + } + } + }, + "ExternalEvaluationEndpointSettings": { + "type": "object", + "description": "The settings of an external endpoint providing evaluation results.", + "properties": { + "kind": { + "type": "string", + "description": "The kind of the endpoint." + }, + "details": { + "description": "The details of the endpoint." + } + } + }, + "ExternalEvaluationEnforcementSettings": { + "type": "object", + "description": "The details of the source of external evaluation results required by the policy during enforcement evaluation.", + "properties": { + "missingTokenAction": { + "type": "string", + "description": "What to do when evaluating an enforcement policy that requires an external evaluation and the token is missing. Possible values are Audit and Deny and language expressions are supported." + }, + "resultLifespan": { + "type": "string", + "description": "The lifespan of the endpoint invocation result after which it's no longer valid. Value is expected to follow the ISO 8601 duration format and language expressions are supported." + }, + "endpointSettings": { + "$ref": "#/definitions/ExternalEvaluationEndpointSettings", + "description": "The settings of an external endpoint providing evaluation results." + }, + "roleDefinitionIds": { + "type": "array", + "description": "An array of the role definition Ids the assignment's MSI will need in order to invoke the endpoint.", + "items": { + "type": "string" + } + } + } + }, + "Identity": { + "type": "object", + "description": "Identity for the resource. Policy assignments support a maximum of one identity. That is either a system assigned identity or a single user assigned identity.", + "properties": { + "principalId": { + "type": "string", + "description": "The principal ID of the resource identity. This property will only be provided for a system assigned identity", + "readOnly": true + }, + "tenantId": { + "type": "string", + "description": "The tenant ID of the resource identity. This property will only be provided for a system assigned identity", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/ResourceIdentityType", + "description": "The identity type. This is the only required field when adding a system or user assigned identity to a resource." + }, + "userAssignedIdentities": { + "type": "object", + "description": "The user identity associated with the policy. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.", + "additionalProperties": { + "$ref": "#/definitions/UserAssignedIdentitiesValue" + } + } + } + }, + "NonComplianceMessage": { + "type": "object", + "description": "A message that describes why a resource is non-compliant with the policy. This is shown in 'deny' error messages and on resource's non-compliant compliance results.", + "properties": { + "message": { + "type": "string", + "description": "A message that describes why a resource is non-compliant with the policy. This is shown in 'deny' error messages and on resource's non-compliant compliance results." + }, + "policyDefinitionReferenceId": { + "type": "string", + "description": "The policy definition reference ID within a policy set definition the message is intended for. This is only applicable if the policy assignment assigns a policy set definition. If this is not provided the message applies to all policies assigned by this policy assignment." + } + }, + "required": [ + "message" + ] + }, + "Override": { + "type": "object", + "description": "The policy property value override.", + "properties": { + "kind": { + "$ref": "#/definitions/OverrideKind", + "description": "The override kind." + }, + "value": { + "type": "string", + "description": "The value to override the policy property." + }, + "selectors": { + "type": "array", + "description": "The list of the selector expressions.", + "items": { + "$ref": "#/definitions/Selector" + }, + "x-ms-identifiers": [] + } + } + }, + "OverrideKind": { + "type": "string", + "description": "The override kind.", + "enum": [ + "policyEffect", + "definitionVersion" + ], + "x-ms-enum": { + "name": "OverrideKind", + "modelAsString": true, + "values": [ + { + "name": "policyEffect", + "value": "policyEffect", + "description": "It will override the policy effect type." + }, + { + "name": "definitionVersion", + "value": "definitionVersion", + "description": "It will override the definition version property value of the policy assignment." + } + ] + } + }, + "ParameterDefinitionsValue": { + "type": "object", + "description": "The definition of a parameter that can be provided to the policy.", + "properties": { + "type": { + "$ref": "#/definitions/ParameterType", + "description": "The data type of the parameter." + }, + "allowedValues": { + "type": "array", + "description": "The allowed values for the parameter.", + "items": {} + }, + "defaultValue": { + "description": "The default value for the parameter if no value is provided." + }, + "schema": { + "description": "Provides validation of parameter inputs during assignment using a self-defined JSON schema. This property is only supported for object-type parameters and follows the Json.NET Schema 2019-09 implementation. You can learn more about using schemas at https://json-schema.org/ and test draft schemas at https://www.jsonschemavalidator.net/." + }, + "metadata": { + "$ref": "#/definitions/ParameterDefinitionsValueMetadata", + "description": "General metadata for the parameter." + } + } + }, + "ParameterDefinitionsValueMetadata": { + "type": "object", + "description": "General metadata for the parameter.", + "properties": { + "displayName": { + "type": "string", + "description": "The display name for the parameter." + }, + "description": { + "type": "string", + "description": "The description of the parameter." + }, + "strongType": { + "type": "string", + "description": "Used when assigning the policy definition through the portal. Provides a context aware list of values for the user to choose from." + }, + "assignPermissions": { + "type": "boolean", + "description": "Set to true to have Azure portal create role assignments on the resource ID or resource scope value of this parameter during policy assignment. This property is useful in case you wish to assign permissions outside the assignment scope." + } + }, + "additionalProperties": {} + }, + "ParameterType": { + "type": "string", + "description": "The data type of the parameter.", + "enum": [ + "String", + "Array", + "Object", + "Boolean", + "Integer", + "Float", + "DateTime" + ], + "x-ms-enum": { + "name": "ParameterType", + "modelAsString": true, + "values": [ + { + "name": "String", + "value": "String", + "description": "String" + }, + { + "name": "Array", + "value": "Array", + "description": "Array" + }, + { + "name": "Object", + "value": "Object", + "description": "Object" + }, + { + "name": "Boolean", + "value": "Boolean", + "description": "Boolean" + }, + { + "name": "Integer", + "value": "Integer", + "description": "Integer" + }, + { + "name": "Float", + "value": "Float", + "description": "Float" + }, + { + "name": "DateTime", + "value": "DateTime", + "description": "DateTime" + } + ] + } + }, + "ParameterValuesValue": { + "type": "object", + "description": "The value of a parameter.", + "properties": { + "value": { + "description": "The value of the parameter." + } + } + }, + "PolicyAssignment": { + "type": "object", + "description": "The policy assignment.", + "properties": { + "properties": { + "$ref": "#/definitions/PolicyAssignmentProperties", + "description": "Properties for the policy assignment.", + "x-ms-client-flatten": true + }, + "location": { + "type": "string", + "description": "The location of the policy assignment. Only required when utilizing managed identity." + }, + "identity": { + "$ref": "#/definitions/Identity", + "description": "The managed identity associated with the policy assignment." + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "PolicyAssignmentListResult": { + "type": "object", + "description": "The response of a PolicyAssignment list operation.", + "properties": { + "value": { + "type": "array", + "description": "The PolicyAssignment items on this page", + "items": { + "$ref": "#/definitions/PolicyAssignment" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PolicyAssignmentProperties": { + "type": "object", + "description": "The policy assignment properties.", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the policy assignment." + }, + "policyDefinitionId": { + "type": "string", + "description": "The ID of the policy definition or policy set definition being assigned." + }, + "definitionVersion": { + "type": "string", + "description": "The version of the policy definition to use." + }, + "latestDefinitionVersion": { + "type": "string", + "description": "The latest version of the policy definition available. This is only present if requested via the $expand query parameter.", + "readOnly": true + }, + "effectiveDefinitionVersion": { + "type": "string", + "description": "The effective version of the policy definition in use. This is only present if requested via the $expand query parameter.", + "readOnly": true + }, + "scope": { + "type": "string", + "description": "The scope for the policy assignment.", + "readOnly": true + }, + "notScopes": { + "type": "array", + "description": "The policy's excluded scopes.", + "items": { + "type": "string" + } + }, + "parameters": { + "type": "object", + "description": "The parameter values for the assigned policy rule. The keys are the parameter names.", + "additionalProperties": { + "$ref": "#/definitions/ParameterValuesValue" + } + }, + "description": { + "type": "string", + "description": "This message will be part of response in case of policy violation." + }, + "metadata": { + "description": "The policy assignment metadata. Metadata is an open ended object and is typically a collection of key value pairs." + }, + "enforcementMode": { + "type": "string", + "description": "The policy assignment enforcement mode. Possible values are Default, DoNotEnforce, and Enroll", + "default": "Default", + "enum": [ + "Default", + "DoNotEnforce", + "Enroll" + ], + "x-ms-enum": { + "name": "EnforcementMode", + "modelAsString": true, + "values": [ + { + "name": "Default", + "value": "Default", + "description": "The policy effect is enforced during resource creation or update." + }, + { + "name": "DoNotEnforce", + "value": "DoNotEnforce", + "description": "The policy effect is not enforced during resource creation or update." + }, + { + "name": "Enroll", + "value": "Enroll", + "description": "The policy effect is not enforced during resource creation or update until the resource or scope of the resource is enrolled to the assignment instance. Enrollment occurs upon deployment of the policy enrollment resource." + } + ] + } + }, + "nonComplianceMessages": { + "type": "array", + "description": "The messages that describe why a resource is non-compliant with the policy.", + "items": { + "$ref": "#/definitions/NonComplianceMessage" + }, + "x-ms-identifiers": [ + "message", + "policyDefinitionReferenceId" + ] + }, + "resourceSelectors": { + "type": "array", + "description": "The resource selector list to filter policies by resource properties.", + "items": { + "$ref": "#/definitions/ResourceSelector" + }, + "x-ms-identifiers": [] + }, + "overrides": { + "type": "array", + "description": "The policy property value override.", + "items": { + "$ref": "#/definitions/Override" + }, + "x-ms-identifiers": [] + }, + "assignmentType": { + "$ref": "#/definitions/AssignmentType", + "description": "The type of policy assignment. Possible values are NotSpecified, System, SystemHidden, and Custom. Immutable." + }, + "instanceId": { + "type": "string", + "description": "The instance ID of the policy assignment. This ID only and always changes when the assignment is deleted and recreated.", + "readOnly": true + } + } + }, + "PolicyAssignmentUpdate": { + "type": "object", + "description": "The policy assignment for Patch request.", + "properties": { + "properties": { + "$ref": "#/definitions/PolicyAssignmentUpdateProperties", + "description": "The policy assignment properties for Patch request.", + "x-ms-client-flatten": true + }, + "location": { + "type": "string", + "description": "The location of the policy assignment. Only required when utilizing managed identity." + }, + "identity": { + "$ref": "#/definitions/Identity", + "description": "The managed identity associated with the policy assignment." + } + } + }, + "PolicyAssignmentUpdateProperties": { + "type": "object", + "description": "The policy assignment properties for Patch request.", + "properties": { + "resourceSelectors": { + "type": "array", + "description": "The resource selector list to filter policies by resource properties.", + "items": { + "$ref": "#/definitions/ResourceSelector" + }, + "x-ms-identifiers": [] + }, + "overrides": { + "type": "array", + "description": "The policy property value override.", + "items": { + "$ref": "#/definitions/Override" + }, + "x-ms-identifiers": [] + } + } + }, + "PolicyDefinition": { + "type": "object", + "description": "The policy definition.", + "properties": { + "properties": { + "$ref": "#/definitions/PolicyDefinitionProperties", + "description": "The policy definition properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "PolicyDefinitionGroup": { + "type": "object", + "description": "The policy definition group.", + "properties": { + "name": { + "type": "string", + "description": "The name of the group." + }, + "displayName": { + "type": "string", + "description": "The group's display name." + }, + "category": { + "type": "string", + "description": "The group's category." + }, + "description": { + "type": "string", + "description": "The group's description." + }, + "additionalMetadataId": { + "type": "string", + "description": "A resource ID of a resource that contains additional metadata about the group." + } + }, + "required": [ + "name" + ] + }, + "PolicyDefinitionListResult": { + "type": "object", + "description": "The response of a PolicyDefinition list operation.", + "properties": { + "value": { + "type": "array", + "description": "The PolicyDefinition items on this page", + "items": { + "$ref": "#/definitions/PolicyDefinition" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PolicyDefinitionProperties": { + "type": "object", + "description": "The policy definition properties.", + "properties": { + "policyType": { + "$ref": "#/definitions/PolicyType", + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static." + }, + "mode": { + "type": "string", + "description": "The policy definition mode. Some examples are All, Indexed, Microsoft.KeyVault.Data.", + "default": "Indexed" + }, + "displayName": { + "type": "string", + "description": "The display name of the policy definition." + }, + "description": { + "type": "string", + "description": "The policy definition description." + }, + "policyRule": { + "description": "The policy rule." + }, + "metadata": { + "description": "The policy definition metadata. Metadata is an open ended object and is typically a collection of key value pairs." + }, + "parameters": { + "type": "object", + "description": "The parameter definitions for parameters used in the policy rule. The keys are the parameter names.", + "additionalProperties": { + "$ref": "#/definitions/ParameterDefinitionsValue" + } + }, + "version": { + "type": "string", + "description": "The policy definition version in #.#.# format." + }, + "versions": { + "type": "array", + "description": "A list of available versions for this policy definition.", + "items": { + "type": "string" + } + }, + "externalEvaluationEnforcementSettings": { + "$ref": "#/definitions/ExternalEvaluationEnforcementSettings", + "description": "The details of the source of external evaluation results required by the policy during enforcement evaluation." + } + } + }, + "PolicyDefinitionReference": { + "type": "object", + "description": "The policy definition reference.", + "properties": { + "policyDefinitionId": { + "type": "string", + "description": "The ID of the policy definition or policy set definition." + }, + "definitionVersion": { + "type": "string", + "description": "The version of the policy definition to use." + }, + "latestDefinitionVersion": { + "type": "string", + "description": "The latest version of the policy definition available. This is only present if requested via the $expand query parameter.", + "readOnly": true + }, + "effectiveDefinitionVersion": { + "type": "string", + "description": "The effective version of the policy definition in use. This is only present if requested via the $expand query parameter.", + "readOnly": true + }, + "parameters": { + "type": "object", + "description": "The parameter values for the referenced policy rule. The keys are the parameter names.", + "additionalProperties": { + "$ref": "#/definitions/ParameterValuesValue" + } + }, + "policyDefinitionReferenceId": { + "type": "string", + "description": "A unique id (within the policy set definition) for this policy definition reference." + }, + "groupNames": { + "type": "array", + "description": "The name of the groups that this policy definition reference belongs to.", + "items": { + "type": "string" + } + } + }, + "required": [ + "policyDefinitionId" + ] + }, + "PolicyDefinitionVersion": { + "type": "object", + "description": "The ID of the policy definition version.", + "properties": { + "properties": { + "$ref": "#/definitions/PolicyDefinitionVersionProperties", + "description": "The policy definition version properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "PolicyDefinitionVersionListResult": { + "type": "object", + "description": "The response of a PolicyDefinitionVersion list operation.", + "properties": { + "value": { + "type": "array", + "description": "The PolicyDefinitionVersion items on this page", + "items": { + "$ref": "#/definitions/PolicyDefinitionVersion" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PolicyDefinitionVersionProperties": { + "type": "object", + "description": "The policy definition properties.", + "properties": { + "policyType": { + "$ref": "#/definitions/PolicyType", + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static." + }, + "mode": { + "type": "string", + "description": "The policy definition mode. Some examples are All, Indexed, Microsoft.KeyVault.Data.", + "default": "Indexed" + }, + "displayName": { + "type": "string", + "description": "The display name of the policy definition." + }, + "description": { + "type": "string", + "description": "The policy definition description." + }, + "policyRule": { + "description": "The policy rule." + }, + "metadata": { + "description": "The policy definition metadata. Metadata is an open ended object and is typically a collection of key value pairs." + }, + "parameters": { + "type": "object", + "description": "The parameter definitions for parameters used in the policy rule. The keys are the parameter names.", + "additionalProperties": { + "$ref": "#/definitions/ParameterDefinitionsValue" + } + }, + "version": { + "type": "string", + "description": "The policy definition version in #.#.# format." + }, + "externalEvaluationEnforcementSettings": { + "$ref": "#/definitions/ExternalEvaluationEnforcementSettings", + "description": "The details of the source of external evaluation results required by the policy during enforcement evaluation." + } + } + }, + "PolicyLogInfo": { + "type": "object", + "description": "The policy log info.", + "properties": { + "policyDefinitionId": { + "type": "string", + "description": "The policy definition Id." + }, + "policySetDefinitionId": { + "type": "string", + "description": "The policy set definition Id." + }, + "policyDefinitionReferenceId": { + "type": "string", + "description": "The policy definition instance Id inside a policy set." + }, + "policySetDefinitionName": { + "type": "string", + "description": "The policy set definition name." + }, + "policySetDefinitionDisplayName": { + "type": "string", + "description": "The policy set definition display name." + }, + "policySetDefinitionVersion": { + "type": "string", + "description": "The policy set definition version." + }, + "policySetDefinitionCategory": { + "type": "string", + "description": "The policy set definition category." + }, + "policyDefinitionName": { + "type": "string", + "description": "The policy definition name." + }, + "policyDefinitionDisplayName": { + "type": "string", + "description": "The policy definition display name." + }, + "policyDefinitionVersion": { + "type": "string", + "description": "The policy definition version." + }, + "policyDefinitionEffect": { + "type": "string", + "description": "The policy definition action." + }, + "policyDefinitionGroupNames": { + "type": "array", + "description": "An array of policy definition group names.", + "items": { + "type": "string" + } + }, + "policyAssignmentId": { + "type": "string", + "description": "The policy assignment Id." + }, + "policyAssignmentName": { + "type": "string", + "description": "The policy assignment name." + }, + "policyAssignmentDisplayName": { + "type": "string", + "description": "The policy assignment display name." + }, + "policyAssignmentVersion": { + "type": "string", + "description": "The policy assignment version." + }, + "policyAssignmentScope": { + "type": "string", + "description": "The policy assignment scope." + }, + "resourceLocation": { + "type": "string", + "description": "The resource location." + }, + "ancestors": { + "type": "string", + "description": "The management group ancestors." + }, + "complianceReasonCode": { + "type": "string", + "description": "The policy compliance reason code." + }, + "policyExemptionIds": { + "type": "array", + "description": "An array of policy exemption Ids.", + "items": { + "type": "string" + } + } + } + }, + "PolicySetDefinition": { + "type": "object", + "description": "The policy set definition.", + "properties": { + "properties": { + "$ref": "#/definitions/PolicySetDefinitionProperties", + "description": "The policy set definition properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "PolicySetDefinitionListResult": { + "type": "object", + "description": "The response of a PolicySetDefinition list operation.", + "properties": { + "value": { + "type": "array", + "description": "The PolicySetDefinition items on this page", + "items": { + "$ref": "#/definitions/PolicySetDefinition" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PolicySetDefinitionProperties": { + "type": "object", + "description": "The policy set definition properties.", + "properties": { + "policyType": { + "$ref": "#/definitions/PolicyType", + "description": "The type of policy set definition. Possible values are NotSpecified, BuiltIn, Custom, and Static." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy set definition." + }, + "description": { + "type": "string", + "description": "The policy set definition description." + }, + "metadata": { + "description": "The policy set definition metadata. Metadata is an open ended object and is typically a collection of key value pairs." + }, + "parameters": { + "type": "object", + "description": "The policy set definition parameters that can be used in policy definition references.", + "additionalProperties": { + "$ref": "#/definitions/ParameterDefinitionsValue" + } + }, + "policyDefinitions": { + "type": "array", + "description": "An array of policy definition references.", + "items": { + "$ref": "#/definitions/PolicyDefinitionReference" + }, + "x-ms-identifiers": [ + "policyDefinitionReferenceId" + ] + }, + "policyDefinitionGroups": { + "type": "array", + "description": "The metadata describing groups of policy definition references within the policy set definition.", + "items": { + "$ref": "#/definitions/PolicyDefinitionGroup" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "version": { + "type": "string", + "description": "The policy set definition version in #.#.# format." + }, + "versions": { + "type": "array", + "description": "A list of available versions for this policy set definition.", + "items": { + "type": "string" + } + } + }, + "required": [ + "policyDefinitions" + ] + }, + "PolicySetDefinitionVersion": { + "type": "object", + "description": "The policy set definition version.", + "properties": { + "properties": { + "$ref": "#/definitions/PolicySetDefinitionVersionProperties", + "description": "The policy set definition version properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "PolicySetDefinitionVersionListResult": { + "type": "object", + "description": "The response of a PolicySetDefinitionVersion list operation.", + "properties": { + "value": { + "type": "array", + "description": "The PolicySetDefinitionVersion items on this page", + "items": { + "$ref": "#/definitions/PolicySetDefinitionVersion" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PolicySetDefinitionVersionProperties": { + "type": "object", + "description": "The policy set definition properties.", + "properties": { + "policyType": { + "$ref": "#/definitions/PolicyType", + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static." + }, + "displayName": { + "type": "string", + "description": "The display name of the policy set definition." + }, + "description": { + "type": "string", + "description": "The policy set definition description." + }, + "metadata": { + "description": "The policy set definition metadata. Metadata is an open ended object and is typically a collection of key value pairs." + }, + "parameters": { + "type": "object", + "description": "The policy set definition parameters that can be used in policy definition references.", + "additionalProperties": { + "$ref": "#/definitions/ParameterDefinitionsValue" + } + }, + "policyDefinitions": { + "type": "array", + "description": "An array of policy definition references.", + "items": { + "$ref": "#/definitions/PolicyDefinitionReference" + }, + "x-ms-identifiers": [ + "policyDefinitionReferenceId" + ] + }, + "policyDefinitionGroups": { + "type": "array", + "description": "The metadata describing groups of policy definition references within the policy set definition.", + "items": { + "$ref": "#/definitions/PolicyDefinitionGroup" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "version": { + "type": "string", + "description": "The policy set definition version in #.#.# format." + } + }, + "required": [ + "policyDefinitions" + ] + }, + "PolicyTokenOperation": { + "type": "object", + "description": "The resource operation to acquire a token for.", + "properties": { + "uri": { + "type": "string", + "description": "The request URI of the resource operation." + }, + "httpMethod": { + "type": "string", + "description": "The http method of the resource operation." + }, + "content": { + "description": "The payload of the resource operation." + } + }, + "required": [ + "uri", + "httpMethod" + ] + }, + "PolicyTokenRequest": { + "type": "object", + "description": "The policy token request properties.", + "properties": { + "operation": { + "$ref": "#/definitions/PolicyTokenOperation", + "description": "The resource operation to acquire a token for." + }, + "changeReference": { + "type": "string", + "description": "The change reference." + } + }, + "required": [ + "operation" + ] + }, + "PolicyTokenResponse": { + "type": "object", + "description": "The policy token response properties.", + "properties": { + "result": { + "$ref": "#/definitions/PolicyTokenResult", + "description": "The result of the completed token acquisition operation. Possible values are Succeeded and Failed." + }, + "message": { + "type": "string", + "description": "Status message with additional details about the token acquisition operation result." + }, + "retryAfter": { + "type": "string", + "format": "date-time", + "description": "The date and time after which the client can try to acquire a token again in the case of retry-able failures." + }, + "results": { + "type": "array", + "description": "An array of external evaluation endpoint invocation results.", + "items": { + "$ref": "#/definitions/ExternalEvaluationEndpointInvocationResult" + }, + "x-ms-identifiers": [] + }, + "changeReference": { + "type": "string", + "description": "The change reference associated with the operation for which the token is acquired." + }, + "token": { + "type": "string", + "description": "The issued policy token." + }, + "tokenId": { + "type": "string", + "description": "The unique Id assigned to the policy token." + }, + "expiration": { + "type": "string", + "format": "date-time", + "description": "The expiration of the policy token." + } + } + }, + "PolicyTokenResult": { + "type": "string", + "description": "The result of the completed token acquisition operation. Possible values are Succeeded and Failed.", + "enum": [ + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "PolicyTokenResult", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Succeeded" + }, + { + "name": "Failed", + "value": "Failed", + "description": "Failed" + } + ] + } + }, + "PolicyType": { + "type": "string", + "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static.", + "enum": [ + "NotSpecified", + "BuiltIn", + "Custom", + "Static" + ], + "x-ms-enum": { + "name": "PolicyType", + "modelAsString": true, + "values": [ + { + "name": "NotSpecified", + "value": "NotSpecified", + "description": "NotSpecified" + }, + { + "name": "BuiltIn", + "value": "BuiltIn", + "description": "BuiltIn" + }, + { + "name": "Custom", + "value": "Custom", + "description": "Custom" + }, + { + "name": "Static", + "value": "Static", + "description": "Static" + } + ] + } + }, + "ResourceIdentityType": { + "type": "string", + "description": "The identity type. This is the only required field when adding a system or user assigned identity to a resource.", + "enum": [ + "SystemAssigned", + "UserAssigned", + "None" + ], + "x-ms-enum": { + "name": "ResourceIdentityType", + "modelAsString": false, + "values": [ + { + "name": "SystemAssigned", + "value": "SystemAssigned", + "description": "Indicates that a system assigned identity is associated with the resource." + }, + { + "name": "UserAssigned", + "value": "UserAssigned", + "description": "Indicates that a system assigned identity is associated with the resource." + }, + { + "name": "None", + "value": "None", + "description": "Indicates that no identity is associated with the resource or that the existing identity should be removed." + } + ] + } + }, + "ResourceSelector": { + "type": "object", + "description": "The resource selector to filter policies by resource properties.", + "properties": { + "name": { + "type": "string", + "description": "The name of the resource selector." + }, + "selectors": { + "type": "array", + "description": "The list of the selector expressions.", + "items": { + "$ref": "#/definitions/Selector" + }, + "x-ms-identifiers": [] + } + } + }, + "Selector": { + "type": "object", + "description": "The selector expression.", + "properties": { + "kind": { + "$ref": "#/definitions/SelectorKind", + "description": "The selector kind." + }, + "in": { + "type": "array", + "description": "The list of values to filter in.", + "items": { + "type": "string" + } + }, + "notIn": { + "type": "array", + "description": "The list of values to filter out.", + "items": { + "type": "string" + } + } + } + }, + "SelectorKind": { + "type": "string", + "description": "The selector kind.", + "enum": [ + "resourceLocation", + "resourceType", + "resourceWithoutLocation", + "policyDefinitionReferenceId" + ], + "x-ms-enum": { + "name": "SelectorKind", + "modelAsString": true, + "values": [ + { + "name": "resourceLocation", + "value": "resourceLocation", + "description": "The selector kind to filter policies by the resource location." + }, + { + "name": "resourceType", + "value": "resourceType", + "description": "The selector kind to filter policies by the resource type." + }, + { + "name": "resourceWithoutLocation", + "value": "resourceWithoutLocation", + "description": "The selector kind to filter policies by the resource without location." + }, + { + "name": "policyDefinitionReferenceId", + "value": "policyDefinitionReferenceId", + "description": "The selector kind to filter policies by the policy definition reference ID." + } + ] + } + }, + "UserAssignedIdentitiesValue": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "description": "The principal id of user assigned identity.", + "readOnly": true + }, + "clientId": { + "type": "string", + "description": "The client id of user assigned identity.", + "readOnly": true + } + } + } + }, + "parameters": {} +} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyAssignments.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyAssignments.json deleted file mode 100644 index ff1433f2173f..000000000000 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyAssignments.json +++ /dev/null @@ -1,1098 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PolicyClient", - "version": "2025-03-01", - "description": "To manage and control access to your resources, you can define customized policies and assign them at a scope." - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}": { - "delete": { - "tags": [ - "PolicyAssignments" - ], - "operationId": "PolicyAssignments_Delete", - "summary": "Deletes a policy assignment.", - "description": "This operation deletes a policy assignment, given its name and the scope it was created in. The scope of a policy assignment is the part of its ID preceding '/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'.", - "x-ms-examples": { - "Delete a policy assignment": { - "$ref": "./examples/deletePolicyAssignment.json" - } - }, - "parameters": [ - { - "name": "scope", - "in": "path", - "required": true, - "type": "string", - "description": "The scope of the policy assignment. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'", - "x-ms-skip-url-encoding": true - }, - { - "name": "policyAssignmentName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy assignment to delete." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the deleted assignment.", - "schema": { - "$ref": "#/definitions/PolicyAssignment" - } - }, - "204": { - "description": "No Content - the policy assignment doesn't exist." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "put": { - "tags": [ - "PolicyAssignments" - ], - "operationId": "PolicyAssignments_Create", - "summary": "Creates or updates a policy assignment.", - "description": " This operation creates or updates a policy assignment with the given scope and name. Policy assignments apply to all resources contained within their scope. For example, when you assign a policy at resource group scope, that policy applies to all resources in the group.", - "x-ms-examples": { - "Create or update a policy assignment": { - "$ref": "./examples/createPolicyAssignment.json" - }, - "Create or update a policy assignment with multiple non-compliance messages": { - "$ref": "./examples/createPolicyAssignmentNonComplianceMessages.json" - }, - "Create or update a policy assignment with a system assigned identity": { - "$ref": "./examples/createPolicyAssignmentWithIdentity.json" - }, - "Create or update a policy assignment with a user assigned identity": { - "$ref": "./examples/createPolicyAssignmentWithUserAssignedIdentity.json" - }, - "Create or update a policy assignment without enforcing policy effect during resource creation or update.": { - "$ref": "./examples/createPolicyAssignmentWithoutEnforcement.json" - }, - "Create or update a policy assignment to enforce policy effect only on enrolled resources during resource creation or update.": { - "$ref": "./examples/createPolicyAssignmentWithEnrollEnforcement.json" - }, - "Create or update a policy assignment with resource selectors": { - "$ref": "./examples/createPolicyAssignmentWithResourceSelectors.json" - }, - "Create or update a policy assignment with overrides": { - "$ref": "./examples/createPolicyAssignmentWithOverrides.json" - } - }, - "parameters": [ - { - "name": "scope", - "in": "path", - "required": true, - "type": "string", - "description": "The scope of the policy assignment. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'", - "x-ms-skip-url-encoding": true - }, - { - "name": "policyAssignmentName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy assignment." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicyAssignment" - }, - "description": "Parameters for the policy assignment." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "201": { - "description": "Created - Returns information about the new policy assignment.", - "schema": { - "$ref": "#/definitions/PolicyAssignment" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "PolicyAssignments" - ], - "operationId": "PolicyAssignments_Get", - "summary": "Retrieves a policy assignment.", - "description": "This operation retrieves a single policy assignment, given its name and the scope it was created at.", - "x-ms-examples": { - "Retrieve a policy assignment": { - "$ref": "./examples/getPolicyAssignment.json" - }, - "Retrieve a policy assignment with a system assigned identity": { - "$ref": "./examples/getPolicyAssignmentWithIdentity.json" - }, - "Retrieve a policy assignment with a user assigned identity": { - "$ref": "./examples/getPolicyAssignmentWithUserAssignedIdentity.json" - }, - "Retrieve a policy assignment with resource selectors": { - "$ref": "./examples/getPolicyAssignmentWithResourceSelectors.json" - }, - "Retrieve a policy assignment with overrides": { - "$ref": "./examples/getPolicyAssignmentWithOverrides.json" - } - }, - "parameters": [ - { - "name": "scope", - "in": "path", - "required": true, - "type": "string", - "description": "The scope of the policy assignment. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'", - "x-ms-skip-url-encoding": true - }, - { - "name": "policyAssignmentName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy assignment to get." - }, - { - "$ref": "#/parameters/PolicyAssignmentExpandParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the policy assignment.", - "schema": { - "$ref": "#/definitions/PolicyAssignment" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "patch": { - "tags": [ - "PolicyAssignments" - ], - "operationId": "PolicyAssignments_Update", - "summary": "Updates a policy assignment.", - "description": " This operation updates a policy assignment with the given scope and name. Policy assignments apply to all resources contained within their scope. For example, when you assign a policy at resource group scope, that policy applies to all resources in the group.", - "x-ms-examples": { - "Update a policy assignment with a system assigned identity": { - "$ref": "./examples/updatePolicyAssignmentWithIdentity.json" - }, - "Update a policy assignment with a user assigned identity": { - "$ref": "./examples/updatePolicyAssignmentWithUserAssignedIdentity.json" - }, - "Update a policy assignment with resource selectors": { - "$ref": "./examples/updatePolicyAssignmentWithResourceSelectors.json" - }, - "Update a policy assignment with overrides": { - "$ref": "./examples/updatePolicyAssignmentWithOverrides.json" - } - }, - "parameters": [ - { - "name": "scope", - "in": "path", - "required": true, - "type": "string", - "description": "The scope of the policy assignment. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'", - "x-ms-skip-url-encoding": true - }, - { - "name": "policyAssignmentName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy assignment." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicyAssignmentUpdate" - }, - "description": "Parameters for policy assignment patch request." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the policy assignment.", - "schema": { - "$ref": "#/definitions/PolicyAssignment" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments": { - "get": { - "tags": [ - "PolicyAssignments" - ], - "operationId": "PolicyAssignments_ListForResourceGroup", - "summary": "Retrieves all policy assignments that apply to a resource group.", - "description": "This operation retrieves the list of all policy assignments associated with the given resource group in the given subscription that match the optional given $filter. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, the unfiltered list includes all policy assignments associated with the resource group, including those that apply directly or apply from containing scopes, as well as any applied to resources contained within the resource group. If $filter=atScope() is provided, the returned list includes all policy assignments that apply to the resource group, which is everything in the unfiltered list except those applied to resources contained within the resource group. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the resource group. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value} that apply to the resource group.", - "x-ms-examples": { - "List policy assignments that apply to a resource group": { - "$ref": "./examples/listPolicyAssignmentsForResourceGroup.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "resourceGroupName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the resource group that contains policy assignments.", - "pattern": "^[-\\w\\._\\(\\)]+$", - "minLength": 1, - "maxLength": 90 - }, - { - "$ref": "#/parameters/PolicyAssignmentsFilterParameter" - }, - { - "$ref": "#/parameters/PolicyAssignmentExpandParameter" - }, - { - "$ref": "#/parameters/TopParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy assignments.", - "schema": { - "$ref": "#/definitions/PolicyAssignmentListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}/providers/Microsoft.Authorization/policyAssignments": { - "get": { - "tags": [ - "PolicyAssignments" - ], - "operationId": "PolicyAssignments_ListForResource", - "summary": "Retrieves all policy assignments that apply to a resource.", - "description": "This operation retrieves the list of all policy assignments associated with the specified resource in the given resource group and subscription that match the optional given $filter. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, the unfiltered list includes all policy assignments associated with the resource, including those that apply directly or from all containing scopes, as well as any applied to resources contained within the resource. If $filter=atScope() is provided, the returned list includes all policy assignments that apply to the resource, which is everything in the unfiltered list except those applied to resources contained within the resource. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the resource level. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value} that apply to the resource. Three parameters plus the resource name are used to identify a specific resource. If the resource is not part of a parent resource (the more common case), the parent resource path should not be provided (or provided as ''). For example a web app could be specified as ({resourceProviderNamespace} == 'Microsoft.Web', {parentResourcePath} == '', {resourceType} == 'sites', {resourceName} == 'MyWebApp'). If the resource is part of a parent resource, then all parameters should be provided. For example a virtual machine DNS name could be specified as ({resourceProviderNamespace} == 'Microsoft.Compute', {parentResourcePath} == 'virtualMachines/MyVirtualMachine', {resourceType} == 'domainNames', {resourceName} == 'MyComputerName'). A convenient alternative to providing the namespace and type name separately is to provide both in the {resourceType} parameter, format: ({resourceProviderNamespace} == '', {parentResourcePath} == '', {resourceType} == 'Microsoft.Web/sites', {resourceName} == 'MyWebApp').", - "deprecated": false, - "x-ms-examples": { - "List all policy assignments that apply to a resource": { - "$ref": "./examples/listPolicyAssignmentsForResource.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "resourceGroupName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the resource group containing the resource.", - "pattern": "^[-\\w\\._\\(\\)]+$", - "minLength": 1, - "maxLength": 90 - }, - { - "name": "resourceProviderNamespace", - "in": "path", - "required": true, - "type": "string", - "description": "The namespace of the resource provider. For example, the namespace of a virtual machine is Microsoft.Compute (from Microsoft.Compute/virtualMachines)" - }, - { - "name": "parentResourcePath", - "in": "path", - "required": true, - "type": "string", - "description": "The parent resource path. Use empty string if there is none.", - "x-ms-skip-url-encoding": true - }, - { - "name": "resourceType", - "in": "path", - "required": true, - "type": "string", - "description": "The resource type name. For example the type name of a web app is 'sites' (from Microsoft.Web/sites).", - "x-ms-skip-url-encoding": true - }, - { - "name": "resourceName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^.+$", - "description": "The name of the resource." - }, - { - "$ref": "#/parameters/PolicyAssignmentsFilterParameter" - }, - { - "$ref": "#/parameters/PolicyAssignmentExpandParameter" - }, - { - "$ref": "#/parameters/TopParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy assignments.", - "schema": { - "$ref": "#/definitions/PolicyAssignmentListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, - "x-ms-odata": "#/definitions/PolicyAssignment" - } - }, - "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Authorization/policyAssignments": { - "get": { - "tags": [ - "PolicyAssignments" - ], - "operationId": "PolicyAssignments_ListForManagementGroup", - "summary": "Retrieves all policy assignments that apply to a management group.", - "description": "This operation retrieves the list of all policy assignments applicable to the management group that match the given $filter. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter=atScope() is provided, the returned list includes all policy assignments that are assigned to the management group or the management group's ancestors. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the management group. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value} that apply to the management group.", - "x-ms-examples": { - "List policy assignments that apply to a management group": { - "$ref": "./examples/listPolicyAssignmentsForManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ManagementGroupIdParameter" - }, - { - "$ref": "#/parameters/PolicyAssignmentsFilterParameter" - }, - { - "$ref": "#/parameters/PolicyAssignmentExpandParameter" - }, - { - "$ref": "#/parameters/TopParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy assignments.", - "schema": { - "$ref": "#/definitions/PolicyAssignmentListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyAssignments": { - "get": { - "tags": [ - "PolicyAssignments" - ], - "operationId": "PolicyAssignments_List", - "summary": "Retrieves all policy assignments that apply to a subscription.", - "description": "This operation retrieves the list of all policy assignments associated with the given subscription that match the optional given $filter. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, the unfiltered list includes all policy assignments associated with the subscription, including those that apply directly or from management groups that contain the given subscription, as well as any applied to objects contained within the subscription. If $filter=atScope() is provided, the returned list includes all policy assignments that apply to the subscription, which is everything in the unfiltered list except those applied to objects contained within the subscription. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the subscription. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value}.", - "x-ms-examples": { - "List policy assignments that apply to a subscription": { - "$ref": "./examples/listPolicyAssignments.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/PolicyAssignmentsFilterParameter" - }, - { - "$ref": "#/parameters/PolicyAssignmentExpandParameter" - }, - { - "$ref": "#/parameters/TopParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy assignments.", - "schema": { - "$ref": "#/definitions/PolicyAssignmentListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, - "x-ms-odata": "#/definitions/PolicyAssignment" - } - }, - "/{policyAssignmentId}": { - "delete": { - "tags": [ - "PolicyAssignments" - ], - "operationId": "PolicyAssignments_DeleteById", - "summary": "Deletes a policy assignment.", - "description": "This operation deletes the policy with the given ID. Policy assignment IDs have this format: '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'. Valid formats for {scope} are: '/providers/Microsoft.Management/managementGroups/{managementGroup}' (management group), '/subscriptions/{subscriptionId}' (subscription), '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' (resource group), or '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}' (resource).", - "x-ms-examples": { - "Delete a policy assignment by ID": { - "$ref": "./examples/deletePolicyAssignmentById.json" - } - }, - "parameters": [ - { - "name": "policyAssignmentId", - "in": "path", - "required": true, - "type": "string", - "description": "The ID of the policy assignment to delete. Use the format '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'.", - "x-ms-skip-url-encoding": true - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the policy assignment.", - "schema": { - "$ref": "#/definitions/PolicyAssignment" - } - }, - "204": { - "description": "No Content - the policy assignment doesn't exist." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "put": { - "tags": [ - "PolicyAssignments" - ], - "operationId": "PolicyAssignments_CreateById", - "summary": "Creates or updates a policy assignment.", - "description": "This operation creates or updates the policy assignment with the given ID. Policy assignments made on a scope apply to all resources contained in that scope. For example, when you assign a policy to a resource group that policy applies to all resources in the group. Policy assignment IDs have this format: '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'.", - "x-ms-examples": { - "Create or update policy assignment by ID": { - "$ref": "./examples/createPolicyAssignmentById.json" - }, - "Create or update policy assignment with a managed identity by ID": { - "$ref": "./examples/createPolicyAssignmentWithIdentityById.json" - } - }, - "parameters": [ - { - "name": "policyAssignmentId", - "in": "path", - "required": true, - "type": "string", - "description": "The ID of the policy assignment to create. Use the format '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'.", - "x-ms-skip-url-encoding": true - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicyAssignment" - }, - "description": "Parameters for policy assignment." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "201": { - "description": "Created - Returns information about the policy assignment.", - "schema": { - "$ref": "#/definitions/PolicyAssignment" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "PolicyAssignments" - ], - "operationId": "PolicyAssignments_GetById", - "summary": "Retrieves the policy assignment with the given ID.", - "description": "The operation retrieves the policy assignment with the given ID. Policy assignment IDs have this format: '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'.", - "x-ms-examples": { - "Retrieve a policy assignment by ID": { - "$ref": "./examples/getPolicyAssignmentById.json" - }, - "Retrieve a policy assignment with a managed identity by ID": { - "$ref": "./examples/getPolicyAssignmentWithIdentityById.json" - } - }, - "parameters": [ - { - "name": "policyAssignmentId", - "in": "path", - "required": true, - "type": "string", - "description": "The ID of the policy assignment to get. Use the format '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'.", - "x-ms-skip-url-encoding": true - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the policy assignment.", - "schema": { - "$ref": "#/definitions/PolicyAssignment" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "patch": { - "tags": [ - "PolicyAssignments" - ], - "operationId": "PolicyAssignments_UpdateById", - "summary": "Updates a policy assignment.", - "description": "This operation updates the policy assignment with the given ID. Policy assignments made on a scope apply to all resources contained in that scope. For example, when you assign a policy to a resource group that policy applies to all resources in the group. Policy assignment IDs have this format: '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'. Valid scopes are: management group (format: '/providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: '/subscriptions/{subscriptionId}'), resource group (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}', or resource (format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}'.", - "x-ms-examples": { - "Update policy assignment with a managed identity by ID": { - "$ref": "./examples/updatePolicyAssignmentWithIdentityById.json" - } - }, - "parameters": [ - { - "name": "policyAssignmentId", - "in": "path", - "required": true, - "type": "string", - "description": "The ID of the policy assignment to update. Use the format '{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}'.", - "x-ms-skip-url-encoding": true - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicyAssignmentUpdate" - }, - "description": "Parameters for policy assignment patch request." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the policy assignment.", - "schema": { - "$ref": "#/definitions/PolicyAssignment" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - } - }, - "definitions": { - "PolicyAssignmentProperties": { - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The display name of the policy assignment." - }, - "policyDefinitionId": { - "type": "string", - "description": "The ID of the policy definition or policy set definition being assigned." - }, - "definitionVersion": { - "type": "string", - "description": "The version of the policy definition to use." - }, - "latestDefinitionVersion": { - "type": "string", - "description": "The latest version of the policy definition available. This is only present if requested via the $expand query parameter.", - "readOnly": true - }, - "effectiveDefinitionVersion": { - "type": "string", - "description": "The effective version of the policy definition in use. This is only present if requested via the $expand query parameter.", - "readOnly": true - }, - "scope": { - "type": "string", - "description": "The scope for the policy assignment.", - "readOnly": true - }, - "notScopes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The policy's excluded scopes." - }, - "parameters": { - "description": "The parameter values for the assigned policy rule. The keys are the parameter names.", - "$ref": "#/definitions/ParameterValues" - }, - "description": { - "type": "string", - "description": "This message will be part of response in case of policy violation." - }, - "metadata": { - "type": "object", - "description": "The policy assignment metadata. Metadata is an open ended object and is typically a collection of key value pairs." - }, - "enforcementMode": { - "type": "string", - "description": "The policy assignment enforcement mode. Possible values are Default, DoNotEnforce, and Enroll", - "enum": [ - "Default", - "DoNotEnforce", - "Enroll" - ], - "x-ms-enum": { - "name": "enforcementMode", - "modelAsString": true, - "values": [ - { - "value": "Default", - "description": "The policy effect is enforced during resource creation or update." - }, - { - "value": "DoNotEnforce", - "description": "The policy effect is not enforced during resource creation or update." - }, - { - "value": "Enroll", - "description": "The policy effect is not enforced during resource creation or update until the resource or scope of the resource is enrolled to the assignment instance. Enrollment occurs upon deployment of the policy enrollment resource." - } - ] - }, - "default": "Default" - }, - "nonComplianceMessages": { - "type": "array", - "items": { - "$ref": "#/definitions/NonComplianceMessage" - }, - "x-ms-identifiers": [ - "message", - "policyDefinitionReferenceId" - ], - "description": "The messages that describe why a resource is non-compliant with the policy." - }, - "resourceSelectors": { - "type": "array", - "items": { - "$ref": "./types.json#/definitions/ResourceSelector" - }, - "x-ms-identifiers": [], - "description": "The resource selector list to filter policies by resource properties." - }, - "overrides": { - "type": "array", - "items": { - "$ref": "./types.json#/definitions/Override" - }, - "x-ms-identifiers": [], - "description": "The policy property value override." - }, - "assignmentType": { - "type": "string", - "description": "The type of policy assignment. Possible values are NotSpecified, System, SystemHidden, and Custom. Immutable.", - "enum": [ - "NotSpecified", - "System", - "SystemHidden", - "Custom" - ], - "x-ms-enum": { - "name": "assignmentType", - "modelAsString": true - } - }, - "instanceId": { - "type": "string", - "description": "The instance ID of the policy assignment. This ID only and always changes when the assignment is deleted and recreated.", - "readOnly": true - } - }, - "description": "The policy assignment properties." - }, - "NonComplianceMessage": { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "A message that describes why a resource is non-compliant with the policy. This is shown in 'deny' error messages and on resource's non-compliant compliance results." - }, - "policyDefinitionReferenceId": { - "type": "string", - "description": "The policy definition reference ID within a policy set definition the message is intended for. This is only applicable if the policy assignment assigns a policy set definition. If this is not provided the message applies to all policies assigned by this policy assignment." - } - }, - "required": [ - "message" - ], - "description": "A message that describes why a resource is non-compliant with the policy. This is shown in 'deny' error messages and on resource's non-compliant compliance results." - }, - "ParameterValues": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/ParameterValuesValue" - }, - "description": "The parameter values for the policy rule. The keys are the parameter names." - }, - "ParameterValuesValue": { - "type": "object", - "properties": { - "value": { - "description": "The value of the parameter." - } - }, - "description": "The value of a parameter." - }, - "PolicyAssignment": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/PolicyAssignmentProperties", - "description": "Properties for the policy assignment." - }, - "id": { - "type": "string", - "description": "The ID of the policy assignment.", - "readOnly": true - }, - "type": { - "type": "string", - "description": "The type of the policy assignment.", - "readOnly": true - }, - "name": { - "type": "string", - "description": "The name of the policy assignment.", - "readOnly": true - }, - "location": { - "type": "string", - "description": "The location of the policy assignment. Only required when utilizing managed identity." - }, - "identity": { - "$ref": "#/definitions/Identity", - "description": "The managed identity associated with the policy assignment." - }, - "systemData": { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/systemData", - "readOnly": true, - "description": "The system metadata relating to this resource." - } - }, - "description": "The policy assignment.", - "x-ms-azure-resource": true - }, - "PolicyAssignmentListResult": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/PolicyAssignment" - }, - "x-ms-identifiers": [], - "description": "An array of policy assignments." - }, - "nextLink": { - "type": "string", - "description": "The URL to use for getting the next set of results." - } - }, - "description": "List of policy assignments." - }, - "Identity": { - "type": "object", - "properties": { - "principalId": { - "readOnly": true, - "type": "string", - "description": "The principal ID of the resource identity. This property will only be provided for a system assigned identity" - }, - "tenantId": { - "readOnly": true, - "type": "string", - "description": "The tenant ID of the resource identity. This property will only be provided for a system assigned identity" - }, - "type": { - "type": "string", - "description": "The identity type. This is the only required field when adding a system or user assigned identity to a resource.", - "enum": [ - "SystemAssigned", - "UserAssigned", - "None" - ], - "x-ms-enum": { - "name": "ResourceIdentityType", - "modelAsString": false, - "values": [ - { - "value": "SystemAssigned", - "description": "Indicates that a system assigned identity is associated with the resource." - }, - { - "value": "UserAssigned", - "description": "Indicates that a system assigned identity is associated with the resource." - }, - { - "value": "None", - "description": "Indicates that no identity is associated with the resource or that the existing identity should be removed." - } - ] - } - }, - "userAssignedIdentities": { - "type": "object", - "additionalProperties": { - "type": "object", - "x-ms-client-name": "userAssignedIdentitiesValue", - "properties": { - "principalId": { - "readOnly": true, - "type": "string", - "description": "The principal id of user assigned identity." - }, - "clientId": { - "readOnly": true, - "type": "string", - "description": "The client id of user assigned identity." - } - } - }, - "description": "The user identity associated with the policy. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'." - } - }, - "description": "Identity for the resource. Policy assignments support a maximum of one identity. That is either a system assigned identity or a single user assigned identity." - }, - "PolicyAssignmentUpdateProperties": { - "type": "object", - "properties": { - "resourceSelectors": { - "type": "array", - "items": { - "$ref": "./types.json#/definitions/ResourceSelector" - }, - "x-ms-identifiers": [], - "description": "The resource selector list to filter policies by resource properties." - }, - "overrides": { - "type": "array", - "items": { - "$ref": "./types.json#/definitions/Override" - }, - "x-ms-identifiers": [], - "description": "The policy property value override." - } - }, - "description": "The policy assignment properties for Patch request." - }, - "PolicyAssignmentUpdate": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/PolicyAssignmentUpdateProperties", - "description": "The policy assignment properties for Patch request." - }, - "location": { - "type": "string", - "description": "The location of the policy assignment. Only required when utilizing managed identity." - }, - "identity": { - "$ref": "#/definitions/Identity", - "description": "The managed identity associated with the policy assignment." - } - }, - "description": "The policy assignment for Patch request." - } - }, - "parameters": { - "ManagementGroupIdParameter": { - "name": "managementGroupId", - "in": "path", - "required": true, - "type": "string", - "description": "The ID of the management group.", - "x-ms-parameter-location": "method" - }, - "PolicyAssignmentsFilterParameter": { - "name": "$filter", - "in": "query", - "required": false, - "type": "string", - "description": "The filter to apply on the operation. Valid values for $filter are: 'atScope()', 'atExactScope()' or 'policyDefinitionId eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atScope() is provided, the returned list only includes all policy assignments that apply to the scope, which is everything in the unfiltered list except those applied to sub scopes contained within the given scope. If $filter=atExactScope() is provided, the returned list only includes all policy assignments that at the given scope. If $filter=policyDefinitionId eq '{value}' is provided, the returned list includes all policy assignments of the policy definition whose id is {value}.", - "x-ms-skip-url-encoding": true, - "x-ms-parameter-location": "method" - }, - "PolicyAssignmentExpandParameter": { - "name": "$expand", - "in": "query", - "required": false, - "type": "string", - "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", - "x-ms-parameter-location": "method" - }, - "TopParameter": { - "name": "$top", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 1000, - "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyDefinitionVersions.json deleted file mode 100644 index e2bcba95637c..000000000000 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyDefinitionVersions.json +++ /dev/null @@ -1,854 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PolicyClient", - "version": "2025-03-01", - "description": "To manage and control access to your resources, you can define customized policies and assign them at a scope." - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/providers/Microsoft.Authorization/listPolicyDefinitionVersions": { - "post": { - "tags": [ - "PolicyDefinitionVersions" - ], - "operationId": "PolicyDefinitionVersions_ListAllBuiltins", - "summary": "Lists all built-in policy definition versions.", - "description": "This operation lists all the built-in policy definition versions for all built-in policy definitions.", - "x-ms-examples": { - "List all built-in policy definition versions": { - "$ref": "./examples/listAllBuiltInPolicyDefinitionVersions.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy definition versions.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/listPolicyDefinitionVersions": { - "post": { - "tags": [ - "PolicyDefinitionVersions" - ], - "operationId": "PolicyDefinitionVersions_ListAllAtManagementGroup", - "summary": "Lists all policy definition versions at management group scope.", - "description": "This operation lists all the policy definition versions for all policy definitions at the management group scope.", - "x-ms-examples": { - "List all policy definition versions at management group": { - "$ref": "./examples/listAllPolicyDefinitionVersionsByManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy definition versions.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/listPolicyDefinitionVersions": { - "post": { - "tags": [ - "PolicyDefinitionVersions" - ], - "operationId": "PolicyDefinitionVersions_ListAll", - "summary": "Lists all policy definition versions within a subscription.", - "description": "This operation lists all the policy definition versions for all policy definitions within a subscription.", - "x-ms-examples": { - "List all policy definition versions at subscription": { - "$ref": "./examples/listAllPolicyDefinitionVersions.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy definition versions.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}/versions/{policyDefinitionVersion}": { - "put": { - "tags": [ - "PolicyDefinitionVersions" - ], - "operationId": "PolicyDefinitionVersions_CreateOrUpdate", - "summary": "Creates or updates a policy definition in a subscription.", - "description": "This operation creates or updates a policy definition in the given subscription with the given name.", - "x-ms-examples": { - "Create or update a policy definition version": { - "$ref": "./examples/createOrUpdatePolicyDefinitionVersion.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/PolicyDefinitionName" - }, - { - "$ref": "#/parameters/PolicyDefinitionVersion" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersion" - }, - "description": "The policy definition properties." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "201": { - "description": "Created - Returns information about the policy definition version.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersion" - } - }, - "200": { - "description": "OK - Successfully updated policy definition version.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersion" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "PolicyDefinitionVersions" - ], - "operationId": "PolicyDefinitionVersions_Delete", - "summary": "Deletes a policy definition version in a subscription.", - "description": "This operation deletes the policy definition version in the given subscription with the given name.", - "x-ms-examples": { - "Delete a policy definition version": { - "$ref": "./examples/deletePolicyDefinitionVersion.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/PolicyDefinitionName" - }, - { - "$ref": "#/parameters/PolicyDefinitionVersion" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "200": { - "description": "OK" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "PolicyDefinitionVersions" - ], - "operationId": "PolicyDefinitionVersions_Get", - "summary": "Retrieves a policy definition version in a subscription.", - "description": "This operation retrieves the policy definition version in the given subscription with the given name.", - "x-ms-examples": { - "Retrieve a policy definition version": { - "$ref": "./examples/getPolicyDefinitionVersion.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/PolicyDefinitionName" - }, - { - "$ref": "#/parameters/PolicyDefinitionVersion" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the policy definition.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersion" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}/versions/{policyDefinitionVersion}": { - "get": { - "tags": [ - "PolicyDefinitionVersions" - ], - "operationId": "PolicyDefinitionVersions_GetBuiltIn", - "summary": "Retrieves a built-in policy definition version.", - "description": "This operation retrieves the built-in policy definition version with the given name.", - "x-ms-examples": { - "Retrieve a built-in policy definition version": { - "$ref": "./examples/getBuiltinPolicyDefinitionVersion.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/PolicyDefinitionName" - }, - { - "$ref": "#/parameters/PolicyDefinitionVersion" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the built-in policy definition.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersion" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}/versions/{policyDefinitionVersion}": { - "put": { - "tags": [ - "PolicyDefinitionVersions" - ], - "operationId": "PolicyDefinitionVersions_CreateOrUpdateAtManagementGroup", - "summary": "Creates or updates a policy definition version in a management group.", - "description": "This operation creates or updates a policy definition version in the given management group with the given name.", - "x-ms-examples": { - "Create or update a policy definition version at management group level": { - "$ref": "./examples/createOrUpdatePolicyDefinitionVersionAtManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" - }, - { - "$ref": "#/parameters/PolicyDefinitionName" - }, - { - "$ref": "#/parameters/PolicyDefinitionVersion" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersion" - }, - "description": "The policy definition properties." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "201": { - "description": "Created - Returns information about the policy definition version.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersion" - } - }, - "200": { - "description": "OK - Successfully updated policy definition version.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersion" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "PolicyDefinitionVersions" - ], - "operationId": "PolicyDefinitionVersions_DeleteAtManagementGroup", - "summary": "Deletes a policy definition in a management group.", - "description": "This operation deletes the policy definition in the given management group with the given name.", - "x-ms-examples": { - "Delete a policy definition version at management group level": { - "$ref": "./examples/deletePolicyDefinitionVersionAtManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" - }, - { - "$ref": "#/parameters/PolicyDefinitionName" - }, - { - "$ref": "#/parameters/PolicyDefinitionVersion" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "200": { - "description": "OK" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "PolicyDefinitionVersions" - ], - "operationId": "PolicyDefinitionVersions_GetAtManagementGroup", - "summary": "Retrieve a policy definition version in a management group.", - "description": "This operation retrieves the policy definition version in the given management group with the given name.", - "x-ms-examples": { - "Retrieve a policy definition version at management group level": { - "$ref": "./examples/getPolicyDefinitionVersionAtManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" - }, - { - "$ref": "#/parameters/PolicyDefinitionName" - }, - { - "$ref": "#/parameters/PolicyDefinitionVersion" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the policy definition.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersion" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}/versions": { - "get": { - "tags": [ - "PolicyDefinitionVersions" - ], - "operationId": "PolicyDefinitionVersions_List", - "summary": "Retrieves policy definition versions for a given policy definition in a subscription", - "description": "This operation retrieves a list of all the policy definition versions for the given policy definition.", - "x-ms-examples": { - "List policy definition versions by subscription": { - "$ref": "./examples/listPolicyDefinitionVersions.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/PolicyDefinitionName" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/TopParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy definition versions.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}/versions": { - "get": { - "tags": [ - "PolicyDefinitionVersions" - ], - "operationId": "PolicyDefinitionVersions_ListBuiltIn", - "summary": "Retrieve built-in policy definition versions", - "description": "This operation retrieves a list of all the built-in policy definition versions for the given policy definition.", - "x-ms-examples": { - "List built-in policy definition versions": { - "$ref": "./examples/listBuiltInPolicyDefinitionVersions.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/PolicyDefinitionName" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/TopParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of built-in policy definition versions.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}/versions": { - "get": { - "tags": [ - "PolicyDefinitionVersions" - ], - "operationId": "PolicyDefinitionVersions_ListByManagementGroup", - "summary": "Retrieve policy definition versions in a management group policy definition.", - "description": "This operation retrieves a list of all the policy definition versions for the given policy definition in the given management group.", - "x-ms-examples": { - "List policy definition versions by management group": { - "$ref": "./examples/listPolicyDefinitionVersionsByManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" - }, - { - "$ref": "#/parameters/PolicyDefinitionName" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/TopParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy definition versions.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionVersionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "PolicyDefinitionVersionProperties": { - "type": "object", - "properties": { - "policyType": { - "type": "string", - "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static.", - "enum": [ - "NotSpecified", - "BuiltIn", - "Custom", - "Static" - ], - "x-ms-enum": { - "name": "policyType", - "modelAsString": true - } - }, - "mode": { - "type": "string", - "description": "The policy definition mode. Some examples are All, Indexed, Microsoft.KeyVault.Data.", - "default": "Indexed" - }, - "displayName": { - "type": "string", - "description": "The display name of the policy definition." - }, - "description": { - "type": "string", - "description": "The policy definition description." - }, - "policyRule": { - "type": "object", - "description": "The policy rule." - }, - "metadata": { - "type": "object", - "description": "The policy definition metadata. Metadata is an open ended object and is typically a collection of key value pairs." - }, - "parameters": { - "description": "The parameter definitions for parameters used in the policy rule. The keys are the parameter names.", - "$ref": "#/definitions/ParameterDefinitions" - }, - "version": { - "type": "string", - "description": "The policy definition version in #.#.# format." - }, - "externalEvaluationEnforcementSettings": { - "description": "The details of the source of external evaluation results required by the policy during enforcement evaluation.", - "$ref": "#/definitions/ExternalEvaluationEnforcementSettings" - } - }, - "description": "The policy definition properties." - }, - "ParameterDefinitionsValue": { - "type": "object", - "properties": { - "type": { - "description": "The data type of the parameter.", - "type": "string", - "enum": [ - "String", - "Array", - "Object", - "Boolean", - "Integer", - "Float", - "DateTime" - ], - "x-ms-enum": { - "name": "parameterType", - "modelAsString": true - } - }, - "allowedValues": { - "type": "array", - "items": { - "description": "The collection of allowed values for the parameter." - }, - "x-ms-identifiers": [], - "description": "The allowed values for the parameter." - }, - "defaultValue": { - "description": "The default value for the parameter if no value is provided." - }, - "schema": { - "type": "object", - "description": "Provides validation of parameter inputs during assignment using a self-defined JSON schema. This property is only supported for object-type parameters and follows the Json.NET Schema 2019-09 implementation. You can learn more about using schemas at https://json-schema.org/ and test draft schemas at https://www.jsonschemavalidator.net/." - }, - "metadata": { - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The display name for the parameter." - }, - "description": { - "type": "string", - "description": "The description of the parameter." - }, - "strongType": { - "type": "string", - "description": "Used when assigning the policy definition through the portal. Provides a context aware list of values for the user to choose from." - }, - "assignPermissions": { - "type": "boolean", - "description": "Set to true to have Azure portal create role assignments on the resource ID or resource scope value of this parameter during policy assignment. This property is useful in case you wish to assign permissions outside the assignment scope." - } - }, - "additionalProperties": { - "type": "object" - }, - "description": "General metadata for the parameter." - } - }, - "description": "The definition of a parameter that can be provided to the policy." - }, - "ParameterDefinitions": { - "description": "The parameter definitions for parameters used in the policy. The keys are the parameter names.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/ParameterDefinitionsValue" - } - }, - "PolicyDefinitionVersion": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/PolicyDefinitionVersionProperties", - "description": "The policy definition version properties." - }, - "id": { - "readOnly": true, - "type": "string", - "description": "The ID of the policy definition version." - }, - "name": { - "readOnly": true, - "type": "string", - "description": "The name of the policy definition version." - }, - "type": { - "readOnly": true, - "type": "string", - "description": "The type of the resource (Microsoft.Authorization/policyDefinitions/versions)." - }, - "systemData": { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/systemData", - "readOnly": true, - "description": "The system metadata relating to this resource." - } - }, - "description": "The ID of the policy definition version.", - "x-ms-azure-resource": true - }, - "PolicyDefinitionVersionListResult": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/PolicyDefinitionVersion" - }, - "description": "An array of policy definitions versions." - }, - "nextLink": { - "type": "string", - "description": "The URL to use for getting the next set of results." - } - }, - "description": "List of policy definition versions." - }, - "ExternalEvaluationEnforcementSettings": { - "type": "object", - "properties": { - "missingTokenAction": { - "type": "string", - "description": "What to do when evaluating an enforcement policy that requires an external evaluation and the token is missing. Possible values are Audit and Deny and language expressions are supported." - }, - "resultLifespan": { - "type": "string", - "description": "The lifespan of the endpoint invocation result after which it's no longer valid. Value is expected to follow the ISO 8601 duration format and language expressions are supported." - }, - "endpointSettings": { - "description": "The settings of an external endpoint providing evaluation results.", - "$ref": "#/definitions/ExternalEvaluationEndpointSettings" - }, - "roleDefinitionIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of the role definition Ids the assignment's MSI will need in order to invoke the endpoint." - } - }, - "description": "The details of the source of external evaluation results required by the policy during enforcement evaluation." - }, - "ExternalEvaluationEndpointSettings": { - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "The kind of the endpoint." - }, - "details": { - "type": "object", - "description": "The details of the endpoint." - } - }, - "description": "The settings of an external endpoint providing evaluation results." - } - }, - "parameters": { - "PolicyDefinitionName": { - "name": "policyDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy definition.", - "x-ms-parameter-location": "method" - }, - "PolicyDefinitionVersion": { - "name": "policyDefinitionVersion", - "in": "path", - "required": true, - "type": "string", - "pattern": "^\\d+\\.\\d+\\.\\d+$", - "description": "The policy definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", - "x-ms-parameter-location": "method" - }, - "PolicyDefinitionsFilterParameter": { - "name": "$filter", - "in": "query", - "required": false, - "type": "string", - "description": "The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}.", - "x-ms-skip-url-encoding": true, - "x-ms-parameter-location": "method" - }, - "TopParameter": { - "name": "$top", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 1000, - "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyDefinitions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyDefinitions.json deleted file mode 100644 index 127c59b993e5..000000000000 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyDefinitions.json +++ /dev/null @@ -1,751 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PolicyClient", - "version": "2025-03-01", - "description": "To manage and control access to your resources, you can define customized policies and assign them at a scope." - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}": { - "put": { - "tags": [ - "PolicyDefinitions" - ], - "operationId": "PolicyDefinitions_CreateOrUpdate", - "summary": "Creates or updates a policy definition in a subscription.", - "description": "This operation creates or updates a policy definition in the given subscription with the given name.", - "x-ms-examples": { - "Create or update a policy definition": { - "$ref": "./examples/createOrUpdatePolicyDefinition.json" - }, - "Create or update a policy definition with advanced parameters": { - "$ref": "./examples/createOrUpdatePolicyDefinitionAdvancedParams.json" - }, - "Create or update a policy definition with external evaluation enforcement settings": { - "$ref": "./examples/createOrUpdatePolicyDefinitionExternalEvaluationEnforcementSettings.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "policyDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy definition to create." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicyDefinition" - }, - "description": "The policy definition properties." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "201": { - "description": "Created - Returns information about the policy definition.", - "schema": { - "$ref": "#/definitions/PolicyDefinition" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "PolicyDefinitions" - ], - "operationId": "PolicyDefinitions_Delete", - "summary": "Deletes a policy definition in a subscription.", - "description": "This operation deletes the policy definition in the given subscription with the given name.", - "x-ms-examples": { - "Delete a policy definition": { - "$ref": "./examples/deletePolicyDefinition.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "policyDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy definition to delete." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "200": { - "description": "OK" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "PolicyDefinitions" - ], - "operationId": "PolicyDefinitions_Get", - "summary": "Retrieves a policy definition in a subscription.", - "description": "This operation retrieves the policy definition in the given subscription with the given name.", - "x-ms-examples": { - "Retrieve a policy definition": { - "$ref": "./examples/getPolicyDefinition.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "policyDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy definition to get." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the policy definition.", - "schema": { - "$ref": "#/definitions/PolicyDefinition" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}": { - "get": { - "tags": [ - "PolicyDefinitions" - ], - "operationId": "PolicyDefinitions_GetBuiltIn", - "summary": "Retrieves a built-in policy definition.", - "description": "This operation retrieves the built-in policy definition with the given name.", - "x-ms-examples": { - "Retrieve a built-in policy definition": { - "$ref": "./examples/getBuiltinPolicyDefinition.json" - } - }, - "parameters": [ - { - "name": "policyDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the built-in policy definition to get." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the built-in policy definition.", - "schema": { - "$ref": "#/definitions/PolicyDefinition" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Authorization/policyDefinitions/{policyDefinitionName}": { - "put": { - "tags": [ - "PolicyDefinitions" - ], - "operationId": "PolicyDefinitions_CreateOrUpdateAtManagementGroup", - "summary": "Creates or updates a policy definition in a management group.", - "description": "This operation creates or updates a policy definition in the given management group with the given name.", - "x-ms-examples": { - "Create or update a policy definition at management group level": { - "$ref": "./examples/createOrUpdatePolicyDefinitionAtManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ManagementGroupIdParameter" - }, - { - "name": "policyDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy definition to create." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicyDefinition" - }, - "description": "The policy definition properties." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "201": { - "description": "Created - Returns information about the policy definition.", - "schema": { - "$ref": "#/definitions/PolicyDefinition" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "PolicyDefinitions" - ], - "operationId": "PolicyDefinitions_DeleteAtManagementGroup", - "summary": "Deletes a policy definition in a management group.", - "description": "This operation deletes the policy definition in the given management group with the given name.", - "x-ms-examples": { - "Delete a policy definition at management group level": { - "$ref": "./examples/deletePolicyDefinitionAtManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ManagementGroupIdParameter" - }, - { - "name": "policyDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy definition to delete." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "200": { - "description": "OK" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "PolicyDefinitions" - ], - "operationId": "PolicyDefinitions_GetAtManagementGroup", - "summary": "Retrieve a policy definition in a management group.", - "description": "This operation retrieves the policy definition in the given management group with the given name.", - "x-ms-examples": { - "Retrieve a policy definition at management group level": { - "$ref": "./examples/getPolicyDefinitionAtManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ManagementGroupIdParameter" - }, - { - "name": "policyDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy definition to get." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the policy definition.", - "schema": { - "$ref": "#/definitions/PolicyDefinition" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyDefinitions": { - "get": { - "tags": [ - "PolicyDefinitions" - ], - "operationId": "PolicyDefinitions_List", - "summary": "Retrieves policy definitions in a subscription", - "description": "This operation retrieves a list of all the policy definitions in a given subscription that match the optional given $filter. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, the unfiltered list includes all policy definitions associated with the subscription, including those that apply directly or from management groups that contain the given subscription. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given subscription. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}.", - "x-ms-examples": { - "List policy definitions by subscription": { - "$ref": "./examples/listPolicyDefinitions.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/PolicyDefinitionsFilterParameter" - }, - { - "$ref": "#/parameters/TopParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy definitions.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/providers/Microsoft.Authorization/policyDefinitions": { - "get": { - "tags": [ - "PolicyDefinitions" - ], - "operationId": "PolicyDefinitions_ListBuiltIn", - "summary": "Retrieve built-in policy definitions", - "description": "This operation retrieves a list of all the built-in policy definitions that match the optional given $filter. If $filter='policyType -eq {value}' is provided, the returned list only includes all built-in policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all built-in policy definitions whose category match the {value}.", - "x-ms-examples": { - "List built-in policy definitions": { - "$ref": "./examples/listBuiltInPolicyDefinitions.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/PolicyDefinitionsFilterParameter" - }, - { - "$ref": "#/parameters/TopParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of built-in policy definitions.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Authorization/policyDefinitions": { - "get": { - "tags": [ - "PolicyDefinitions" - ], - "operationId": "PolicyDefinitions_ListByManagementGroup", - "summary": "Retrieve policy definitions in a management group", - "description": "This operation retrieves a list of all the policy definitions in a given management group that match the optional given $filter. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, the unfiltered list includes all policy definitions associated with the management group, including those that apply directly or from management groups that contain the given management group. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given management group. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}.", - "x-ms-examples": { - "List policy definitions by management group": { - "$ref": "./examples/listPolicyDefinitionsByManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ManagementGroupIdParameter" - }, - { - "$ref": "#/parameters/PolicyDefinitionsFilterParameter" - }, - { - "$ref": "#/parameters/TopParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy definitions.", - "schema": { - "$ref": "#/definitions/PolicyDefinitionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "PolicyDefinitionProperties": { - "type": "object", - "properties": { - "policyType": { - "type": "string", - "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static.", - "enum": [ - "NotSpecified", - "BuiltIn", - "Custom", - "Static" - ], - "x-ms-enum": { - "name": "policyType", - "modelAsString": true - } - }, - "mode": { - "type": "string", - "description": "The policy definition mode. Some examples are All, Indexed, Microsoft.KeyVault.Data.", - "default": "Indexed" - }, - "displayName": { - "type": "string", - "description": "The display name of the policy definition." - }, - "description": { - "type": "string", - "description": "The policy definition description." - }, - "policyRule": { - "type": "object", - "description": "The policy rule." - }, - "metadata": { - "type": "object", - "description": "The policy definition metadata. Metadata is an open ended object and is typically a collection of key value pairs." - }, - "parameters": { - "description": "The parameter definitions for parameters used in the policy rule. The keys are the parameter names.", - "$ref": "#/definitions/ParameterDefinitions" - }, - "version": { - "type": "string", - "description": "The policy definition version in #.#.# format." - }, - "versions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of available versions for this policy definition." - }, - "externalEvaluationEnforcementSettings": { - "description": "The details of the source of external evaluation results required by the policy during enforcement evaluation.", - "$ref": "#/definitions/ExternalEvaluationEnforcementSettings" - } - }, - "description": "The policy definition properties." - }, - "ParameterDefinitionsValue": { - "type": "object", - "properties": { - "type": { - "description": "The data type of the parameter.", - "type": "string", - "enum": [ - "String", - "Array", - "Object", - "Boolean", - "Integer", - "Float", - "DateTime" - ], - "x-ms-enum": { - "name": "parameterType", - "modelAsString": true - } - }, - "allowedValues": { - "type": "array", - "items": { - "description": "The collection of allowed values for the parameter." - }, - "x-ms-identifiers": [], - "description": "The allowed values for the parameter." - }, - "defaultValue": { - "description": "The default value for the parameter if no value is provided." - }, - "schema": { - "type": "object", - "description": "Provides validation of parameter inputs during assignment using a self-defined JSON schema. This property is only supported for object-type parameters and follows the Json.NET Schema 2019-09 implementation. You can learn more about using schemas at https://json-schema.org/ and test draft schemas at https://www.jsonschemavalidator.net/." - }, - "metadata": { - "type": "object", - "properties": { - "displayName": { - "type": "string", - "description": "The display name for the parameter." - }, - "description": { - "type": "string", - "description": "The description of the parameter." - }, - "strongType": { - "type": "string", - "description": "Used when assigning the policy definition through the portal. Provides a context aware list of values for the user to choose from." - }, - "assignPermissions": { - "type": "boolean", - "description": "Set to true to have Azure portal create role assignments on the resource ID or resource scope value of this parameter during policy assignment. This property is useful in case you wish to assign permissions outside the assignment scope." - } - }, - "additionalProperties": { - "type": "object" - }, - "description": "General metadata for the parameter." - } - }, - "description": "The definition of a parameter that can be provided to the policy." - }, - "ParameterDefinitions": { - "description": "The parameter definitions for parameters used in the policy. The keys are the parameter names.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/ParameterDefinitionsValue" - } - }, - "PolicyDefinition": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/PolicyDefinitionProperties", - "description": "The policy definition properties." - }, - "id": { - "readOnly": true, - "type": "string", - "description": "The ID of the policy definition." - }, - "name": { - "readOnly": true, - "type": "string", - "description": "The name of the policy definition." - }, - "type": { - "readOnly": true, - "type": "string", - "description": "The type of the resource (Microsoft.Authorization/policyDefinitions)." - }, - "systemData": { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/systemData", - "readOnly": true, - "description": "The system metadata relating to this resource." - } - }, - "description": "The policy definition.", - "x-ms-azure-resource": true - }, - "PolicyDefinitionListResult": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/PolicyDefinition" - }, - "description": "An array of policy definitions." - }, - "nextLink": { - "type": "string", - "description": "The URL to use for getting the next set of results." - } - }, - "description": "List of policy definitions." - }, - "ExternalEvaluationEnforcementSettings": { - "type": "object", - "properties": { - "missingTokenAction": { - "type": "string", - "description": "What to do when evaluating an enforcement policy that requires an external evaluation and the token is missing. Possible values are Audit and Deny and language expressions are supported." - }, - "resultLifespan": { - "type": "string", - "description": "The lifespan of the endpoint invocation result after which it's no longer valid. Value is expected to follow the ISO 8601 duration format and language expressions are supported." - }, - "endpointSettings": { - "description": "The settings of an external endpoint providing evaluation results.", - "$ref": "#/definitions/ExternalEvaluationEndpointSettings" - }, - "roleDefinitionIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of the role definition Ids the assignment's MSI will need in order to invoke the endpoint." - } - }, - "description": "The details of the source of external evaluation results required by the policy during enforcement evaluation." - }, - "ExternalEvaluationEndpointSettings": { - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "The kind of the endpoint." - }, - "details": { - "type": "object", - "description": "The details of the endpoint." - } - }, - "description": "The settings of an external endpoint providing evaluation results." - } - }, - "parameters": { - "ManagementGroupIdParameter": { - "name": "managementGroupId", - "in": "path", - "required": true, - "type": "string", - "description": "The ID of the management group.", - "x-ms-parameter-location": "method" - }, - "PolicyDefinitionsFilterParameter": { - "name": "$filter", - "in": "query", - "required": false, - "type": "string", - "description": "The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy definitions whose category match the {value}.", - "x-ms-skip-url-encoding": true, - "x-ms-parameter-location": "method" - }, - "TopParameter": { - "name": "$top", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 1000, - "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policySetDefinitionVersions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policySetDefinitionVersions.json deleted file mode 100644 index a9e218c49c43..000000000000 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policySetDefinitionVersions.json +++ /dev/null @@ -1,852 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PolicyClient", - "version": "2025-03-01", - "description": "To manage and control access to your resources, you can define customized policies and assign them at a scope." - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/providers/Microsoft.Authorization/listPolicySetDefinitionVersions": { - "post": { - "tags": [ - "PolicySetDefinitionVersions" - ], - "operationId": "PolicySetDefinitionVersions_ListAllBuiltins", - "summary": "Lists all built-in policy set definition versions.", - "description": "This operation lists all the built-in policy set definition versions for all built-in policy set definitions.", - "x-ms-examples": { - "List all built-in policy definition versions": { - "$ref": "./examples/listAllBuiltInPolicySetDefinitionVersions.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy set definition versions.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/listPolicySetDefinitionVersions": { - "post": { - "tags": [ - "PolicySetDefinitionVersions" - ], - "operationId": "PolicySetDefinitionVersions_ListAllAtManagementGroup", - "summary": "Lists all policy set definition versions at management group scope.", - "description": "This operation lists all the policy set definition versions for all policy set definitions at the management group scope.", - "x-ms-examples": { - "List all policy definition versions at management group": { - "$ref": "./examples/listAllPolicySetDefinitionVersionsByManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy set definition versions.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/listPolicySetDefinitionVersions": { - "post": { - "tags": [ - "PolicySetDefinitionVersions" - ], - "operationId": "PolicySetDefinitionVersions_ListAll", - "summary": "Lists all policy set definition versions within a subscription.", - "description": "This operation lists all the policy set definition versions for all policy set definitions within a subscription.", - "x-ms-examples": { - "List all policy definition versions at subscription": { - "$ref": "./examples/listAllPolicySetDefinitionVersions.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy set definition versions.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}/versions/{policyDefinitionVersion}": { - "put": { - "tags": [ - "PolicySetDefinitionVersions" - ], - "operationId": "PolicySetDefinitionVersions_CreateOrUpdate", - "summary": "Creates or updates a policy set definition version.", - "description": "This operation creates or updates a policy set definition version in the given subscription with the given name and version.", - "x-ms-examples": { - "Create or update a policy set definition version": { - "$ref": "./examples/createOrUpdatePolicySetDefinitionVersion.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionName" - }, - { - "$ref": "#/parameters/PolicySetDefinitionVersion" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersion" - }, - "description": "The policy set definition properties." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "201": { - "description": "Created - Returns information about the policy set definition version.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersion" - } - }, - "200": { - "description": "OK - Successfully updated policy set definition version.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersion" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "PolicySetDefinitionVersions" - ], - "operationId": "PolicySetDefinitionVersions_Delete", - "summary": "Deletes a policy set definition version.", - "description": "This operation deletes the policy set definition version in the given subscription with the given name and version.", - "x-ms-examples": { - "Delete a policy set definition version": { - "$ref": "./examples/deletePolicySetDefinitionVersion.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionName" - }, - { - "$ref": "#/parameters/PolicySetDefinitionVersion" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "204": { - "description": "No Content - the policy set definition doesn't exist in the subscription." - }, - "200": { - "description": "OK" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "PolicySetDefinitionVersions" - ], - "operationId": "PolicySetDefinitionVersions_Get", - "summary": "Retrieves a policy set definition version.", - "description": "This operation retrieves the policy set definition version in the given subscription with the given name and version.", - "x-ms-examples": { - "Retrieve a policy set definition version": { - "$ref": "./examples/getPolicySetDefinitionVersion.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionName" - }, - { - "$ref": "#/parameters/PolicySetDefinitionVersion" - }, - { - "$ref": "#/parameters/PolicySetDefinitionsExpandParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the policy set definition version.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersion" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}/versions/{policyDefinitionVersion}": { - "get": { - "tags": [ - "PolicySetDefinitionVersions" - ], - "operationId": "PolicySetDefinitionVersions_GetBuiltIn", - "summary": "Retrieves a built in policy set definition version.", - "description": "This operation retrieves the built-in policy set definition version with the given name and version.", - "x-ms-examples": { - "Retrieve a built-in policy set definition version": { - "$ref": "./examples/getBuiltInPolicySetDefinitionVersion.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/PolicySetDefinitionName" - }, - { - "$ref": "#/parameters/PolicySetDefinitionVersion" - }, - { - "$ref": "#/parameters/PolicySetDefinitionsExpandParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the built in policy set definition version.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersion" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}/versions": { - "get": { - "tags": [ - "PolicySetDefinitionVersions" - ], - "operationId": "PolicySetDefinitionVersions_List", - "summary": "Retrieves the policy set definition versions for a given policy set definition in a subscription.", - "description": "This operation retrieves a list of all the policy set definition versions for the given policy set definition.", - "x-ms-examples": { - "List policy set definitions": { - "$ref": "./examples/listPolicySetDefinitionVersions.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionName" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionsExpandParameter" - }, - { - "$ref": "#/parameters/TopParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy set definition versions.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}/versions": { - "get": { - "tags": [ - "PolicySetDefinitionVersions" - ], - "operationId": "PolicySetDefinitionVersions_ListBuiltIn", - "summary": "Retrieves built-in policy set definition versions.", - "description": "This operation retrieves a list of all the built-in policy set definition versions for the given built-in policy set definition.", - "x-ms-examples": { - "List built-in policy set definitions": { - "$ref": "./examples/listBuiltInPolicySetDefinitionVersions.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/PolicySetDefinitionName" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionsExpandParameter" - }, - { - "$ref": "#/parameters/TopParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of built in policy set definition versions.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}/versions/{policyDefinitionVersion}": { - "put": { - "tags": [ - "PolicySetDefinitionVersions" - ], - "operationId": "PolicySetDefinitionVersions_CreateOrUpdateAtManagementGroup", - "summary": "Creates or updates a policy set definition version.", - "description": "This operation creates or updates a policy set definition version in the given management group with the given name and version.", - "x-ms-examples": { - "Create or update a policy set definition version at management group level": { - "$ref": "./examples/createOrUpdatePolicySetDefinitionVersionAtManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionName" - }, - { - "$ref": "#/parameters/PolicySetDefinitionVersion" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersion" - }, - "description": "The policy set definition version properties." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "201": { - "description": "Created - Returns information about the policy set definition version.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersion" - } - }, - "200": { - "description": "OK - Successfully updated policy set definition version.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersion" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "PolicySetDefinitionVersions" - ], - "operationId": "PolicySetDefinitionVersions_DeleteAtManagementGroup", - "summary": "Deletes a policy set definition version.", - "description": "This operation deletes the policy set definition version in the given management group with the given name and version.", - "x-ms-examples": { - "Delete a policy set definition version at management group level": { - "$ref": "./examples/deletePolicySetDefinitionVersionAtManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionName" - }, - { - "$ref": "#/parameters/PolicySetDefinitionVersion" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "204": { - "description": "No Content - the policy set definition doesn't exist in the subscription." - }, - "200": { - "description": "OK" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "PolicySetDefinitionVersions" - ], - "operationId": "PolicySetDefinitionVersions_GetAtManagementGroup", - "summary": "Retrieves a policy set definition version.", - "description": "This operation retrieves the policy set definition version in the given management group with the given name and version.", - "x-ms-examples": { - "Retrieve a policy set definition version at management group level": { - "$ref": "./examples/getPolicySetDefinitionVersionAtManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionName" - }, - { - "$ref": "#/parameters/PolicySetDefinitionVersion" - }, - { - "$ref": "#/parameters/PolicySetDefinitionsExpandParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the policy set definition version.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersion" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}/versions": { - "get": { - "tags": [ - "PolicySetDefinitionVersions" - ], - "operationId": "PolicySetDefinitionVersions_ListByManagementGroup", - "summary": "Retrieves all policy set definition versions for a given policy set definition in a management group.", - "description": "This operation retrieves a list of all the policy set definition versions for the given policy set definition in a given management group.", - "x-ms-examples": { - "List policy set definitions at management group level": { - "$ref": "./examples/listPolicySetDefinitionVersionsByManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ManagementGroupNameParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionName" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionsExpandParameter" - }, - { - "$ref": "#/parameters/TopParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy set definition versions.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionVersionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "PolicySetDefinitionVersionProperties": { - "type": "object", - "properties": { - "policyType": { - "type": "string", - "description": "The type of policy definition. Possible values are NotSpecified, BuiltIn, Custom, and Static.", - "enum": [ - "NotSpecified", - "BuiltIn", - "Custom", - "Static" - ], - "x-ms-enum": { - "name": "policyType", - "modelAsString": true - } - }, - "displayName": { - "type": "string", - "description": "The display name of the policy set definition." - }, - "description": { - "type": "string", - "description": "The policy set definition description." - }, - "metadata": { - "type": "object", - "description": "The policy set definition metadata. Metadata is an open ended object and is typically a collection of key value pairs." - }, - "parameters": { - "description": "The policy set definition parameters that can be used in policy definition references.", - "$ref": "./policyDefinitions.json#/definitions/ParameterDefinitions" - }, - "policyDefinitions": { - "type": "array", - "items": { - "$ref": "#/definitions/PolicyDefinitionReference" - }, - "x-ms-identifiers": [ - "policyDefinitionReferenceId" - ], - "description": "An array of policy definition references." - }, - "policyDefinitionGroups": { - "type": "array", - "items": { - "$ref": "#/definitions/PolicyDefinitionGroup" - }, - "x-ms-identifiers": [ - "name" - ], - "description": "The metadata describing groups of policy definition references within the policy set definition." - }, - "version": { - "type": "string", - "description": "The policy set definition version in #.#.# format." - } - }, - "required": [ - "policyDefinitions" - ], - "description": "The policy set definition properties." - }, - "PolicyDefinitionReference": { - "type": "object", - "properties": { - "policyDefinitionId": { - "type": "string", - "description": "The ID of the policy definition or policy set definition." - }, - "definitionVersion": { - "type": "string", - "description": "The version of the policy definition to use." - }, - "latestDefinitionVersion": { - "type": "string", - "description": "The latest version of the policy definition available. This is only present if requested via the $expand query parameter.", - "readOnly": true - }, - "effectiveDefinitionVersion": { - "type": "string", - "description": "The effective version of the policy definition in use. This is only present if requested via the $expand query parameter.", - "readOnly": true - }, - "parameters": { - "description": "The parameter values for the referenced policy rule. The keys are the parameter names.", - "$ref": "./policyAssignments.json#/definitions/ParameterValues" - }, - "policyDefinitionReferenceId": { - "type": "string", - "description": "A unique id (within the policy set definition) for this policy definition reference." - }, - "groupNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The name of the groups that this policy definition reference belongs to." - } - }, - "required": [ - "policyDefinitionId" - ], - "description": "The policy definition reference." - }, - "PolicyDefinitionGroup": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the group." - }, - "displayName": { - "type": "string", - "description": "The group's display name." - }, - "category": { - "type": "string", - "description": "The group's category." - }, - "description": { - "type": "string", - "description": "The group's description." - }, - "additionalMetadataId": { - "type": "string", - "description": "A resource ID of a resource that contains additional metadata about the group." - } - }, - "required": [ - "name" - ], - "description": "The policy definition group." - }, - "PolicySetDefinitionVersion": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/PolicySetDefinitionVersionProperties", - "description": "The policy set definition version properties." - }, - "id": { - "readOnly": true, - "type": "string", - "description": "The ID of the policy set definition version." - }, - "name": { - "readOnly": true, - "type": "string", - "description": "The name of the policy set definition version." - }, - "type": { - "readOnly": true, - "type": "string", - "description": "The type of the resource (Microsoft.Authorization/policySetDefinitions/versions)." - }, - "systemData": { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/systemData", - "readOnly": true, - "description": "The system metadata relating to this resource." - } - }, - "description": "The policy set definition version.", - "x-ms-azure-resource": true - }, - "PolicySetDefinitionVersionListResult": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/PolicySetDefinitionVersion" - }, - "description": "An array of policy set definition versions." - }, - "nextLink": { - "type": "string", - "description": "The URL to use for getting the next set of results." - } - }, - "description": "List of policy set definition versions." - } - }, - "parameters": { - "PolicySetDefinitionName": { - "name": "policySetDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy set definition.", - "x-ms-parameter-location": "method" - }, - "PolicySetDefinitionVersion": { - "name": "policyDefinitionVersion", - "in": "path", - "required": true, - "type": "string", - "pattern": "^\\d+\\.\\d+\\.\\d+$", - "description": "The policy set definition version. The format is x.y.z where x is the major version number, y is the minor version number, and z is the patch number", - "x-ms-parameter-location": "method" - }, - "PolicySetDefinitionsFilterParameter": { - "name": "$filter", - "in": "query", - "required": false, - "type": "string", - "description": "The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}.", - "x-ms-skip-url-encoding": true, - "x-ms-parameter-location": "method" - }, - "PolicySetDefinitionsExpandParameter": { - "name": "$expand", - "in": "query", - "required": false, - "type": "string", - "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", - "x-ms-parameter-location": "method" - }, - "TopParameter": { - "name": "$top", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 1000, - "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policySetDefinitions.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policySetDefinitions.json deleted file mode 100644 index f0085a8d1828..000000000000 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policySetDefinitions.json +++ /dev/null @@ -1,761 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PolicyClient", - "version": "2025-03-01", - "description": "To manage and control access to your resources, you can define customized policies and assign them at a scope." - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}": { - "put": { - "tags": [ - "PolicySetDefinitions" - ], - "operationId": "PolicySetDefinitions_CreateOrUpdate", - "summary": "Creates or updates a policy set definition.", - "description": "This operation creates or updates a policy set definition in the given subscription with the given name.", - "x-ms-examples": { - "Create or update a policy set definition": { - "$ref": "./examples/createOrUpdatePolicySetDefinition.json" - }, - "Create or update a policy set definition with groups": { - "$ref": "./examples/createOrUpdatePolicySetDefinitionWithGroups.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "policySetDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy set definition to create." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicySetDefinition" - }, - "description": "The policy set definition properties." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "201": { - "description": "Created - Returns information about the policy set definition.", - "schema": { - "$ref": "#/definitions/PolicySetDefinition" - } - }, - "200": { - "description": "OK - Returns information about the policy set definition.", - "schema": { - "$ref": "#/definitions/PolicySetDefinition" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "PolicySetDefinitions" - ], - "operationId": "PolicySetDefinitions_Delete", - "summary": "Deletes a policy set definition.", - "description": "This operation deletes the policy set definition in the given subscription with the given name.", - "x-ms-examples": { - "Delete a policy set definition": { - "$ref": "./examples/deletePolicySetDefinition.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "policySetDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy set definition to delete." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "204": { - "description": "No Content - the policy set definition doesn't exist in the subscription." - }, - "200": { - "description": "OK" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "PolicySetDefinitions" - ], - "operationId": "PolicySetDefinitions_Get", - "summary": "Retrieves a policy set definition.", - "description": "This operation retrieves the policy set definition in the given subscription with the given name.", - "x-ms-examples": { - "Retrieve a policy set definition": { - "$ref": "./examples/getPolicySetDefinition.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "policySetDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy set definition to get." - }, - { - "$ref": "#/parameters/PolicySetDefinitionsExpandParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the policy set definition.", - "schema": { - "$ref": "#/definitions/PolicySetDefinition" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}": { - "get": { - "tags": [ - "PolicySetDefinitions" - ], - "operationId": "PolicySetDefinitions_GetBuiltIn", - "summary": "Retrieves a built in policy set definition.", - "description": "This operation retrieves the built-in policy set definition with the given name.", - "x-ms-examples": { - "Retrieve a built-in policy set definition": { - "$ref": "./examples/getBuiltInPolicySetDefinition.json" - } - }, - "parameters": [ - { - "name": "policySetDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy set definition to get." - }, - { - "$ref": "#/parameters/PolicySetDefinitionsExpandParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the built in policy set definition.", - "schema": { - "$ref": "#/definitions/PolicySetDefinition" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions": { - "get": { - "tags": [ - "PolicySetDefinitions" - ], - "operationId": "PolicySetDefinitions_List", - "summary": "Retrieves the policy set definitions for a subscription.", - "description": "This operation retrieves a list of all the policy set definitions in a given subscription that match the optional given $filter. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, the unfiltered list includes all policy set definitions associated with the subscription, including those that apply directly or from management groups that contain the given subscription. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given subscription. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn and Custom. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}.", - "x-ms-examples": { - "List policy set definitions": { - "$ref": "./examples/listPolicySetDefinitions.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionsFilterParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionsExpandParameter" - }, - { - "$ref": "#/parameters/TopParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy set definitions.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/providers/Microsoft.Authorization/policySetDefinitions": { - "get": { - "tags": [ - "PolicySetDefinitions" - ], - "operationId": "PolicySetDefinitions_ListBuiltIn", - "summary": "Retrieves built-in policy set definitions.", - "description": "This operation retrieves a list of all the built-in policy set definitions that match the optional given $filter. If $filter='category -eq {value}' is provided, the returned list only includes all built-in policy set definitions whose category match the {value}.", - "x-ms-examples": { - "List built-in policy set definitions": { - "$ref": "./examples/listBuiltInPolicySetDefinitions.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionsFilterParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionsExpandParameter" - }, - { - "$ref": "#/parameters/TopParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of built in policy set definitions.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - }, - "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}": { - "put": { - "tags": [ - "PolicySetDefinitions" - ], - "operationId": "PolicySetDefinitions_CreateOrUpdateAtManagementGroup", - "summary": "Creates or updates a policy set definition.", - "description": "This operation creates or updates a policy set definition in the given management group with the given name.", - "x-ms-examples": { - "Create or update a policy set definition at management group level": { - "$ref": "./examples/createOrUpdatePolicySetDefinitionAtManagementGroup.json" - }, - "Create or update a policy set definition with groups at management group level": { - "$ref": "./examples/createOrUpdatePolicySetDefinitionWithGroupsAtManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ManagementGroupIdParameter" - }, - { - "name": "policySetDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy set definition to create." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicySetDefinition" - }, - "description": "The policy set definition properties." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "201": { - "description": "Created - Returns information about the policy set definition.", - "schema": { - "$ref": "#/definitions/PolicySetDefinition" - } - }, - "200": { - "description": "OK - Returns information about the policy set definition.", - "schema": { - "$ref": "#/definitions/PolicySetDefinition" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "delete": { - "tags": [ - "PolicySetDefinitions" - ], - "operationId": "PolicySetDefinitions_DeleteAtManagementGroup", - "summary": "Deletes a policy set definition.", - "description": "This operation deletes the policy set definition in the given management group with the given name.", - "x-ms-examples": { - "Delete a policy set definition at management group level": { - "$ref": "./examples/deletePolicySetDefinitionAtManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ManagementGroupIdParameter" - }, - { - "name": "policySetDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy set definition to delete." - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "204": { - "description": "No Content - the policy set definition doesn't exist in the subscription." - }, - "200": { - "description": "OK" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - }, - "get": { - "tags": [ - "PolicySetDefinitions" - ], - "operationId": "PolicySetDefinitions_GetAtManagementGroup", - "summary": "Retrieves a policy set definition.", - "description": "This operation retrieves the policy set definition in the given management group with the given name.", - "x-ms-examples": { - "Retrieve a policy set definition at management group level": { - "$ref": "./examples/getPolicySetDefinitionAtManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ManagementGroupIdParameter" - }, - { - "name": "policySetDefinitionName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[^<>*%&:\\?.+/]*[^<>*%&:\\?.+/ ]+$", - "description": "The name of the policy set definition to get." - }, - { - "$ref": "#/parameters/PolicySetDefinitionsExpandParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns information about the policy set definition.", - "schema": { - "$ref": "#/definitions/PolicySetDefinition" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Authorization/policySetDefinitions": { - "get": { - "tags": [ - "PolicySetDefinitions" - ], - "operationId": "PolicySetDefinitions_ListByManagementGroup", - "summary": "Retrieves all policy set definitions in management group.", - "description": "This operation retrieves a list of all the policy set definitions in a given management group that match the optional given $filter. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, the unfiltered list includes all policy set definitions associated with the management group, including those that apply directly or from management groups that contain the given management group. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given management group. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn and Custom. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}.", - "x-ms-examples": { - "List policy set definitions at management group level": { - "$ref": "./examples/listPolicySetDefinitionsByManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ManagementGroupIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionsFilterParameter" - }, - { - "$ref": "#/parameters/PolicySetDefinitionsExpandParameter" - }, - { - "$ref": "#/parameters/TopParameter" - } - ], - "responses": { - "200": { - "description": "OK - Returns an array of policy set definitions.", - "schema": { - "$ref": "#/definitions/PolicySetDefinitionListResult" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } - } - } - }, - "definitions": { - "PolicySetDefinitionProperties": { - "type": "object", - "properties": { - "policyType": { - "type": "string", - "description": "The type of policy set definition. Possible values are NotSpecified, BuiltIn, Custom, and Static.", - "enum": [ - "NotSpecified", - "BuiltIn", - "Custom", - "Static" - ], - "x-ms-enum": { - "name": "policyType", - "modelAsString": true - } - }, - "displayName": { - "type": "string", - "description": "The display name of the policy set definition." - }, - "description": { - "type": "string", - "description": "The policy set definition description." - }, - "metadata": { - "type": "object", - "description": "The policy set definition metadata. Metadata is an open ended object and is typically a collection of key value pairs." - }, - "parameters": { - "description": "The policy set definition parameters that can be used in policy definition references.", - "$ref": "./policyDefinitions.json#/definitions/ParameterDefinitions" - }, - "policyDefinitions": { - "type": "array", - "items": { - "$ref": "#/definitions/PolicyDefinitionReference" - }, - "x-ms-identifiers": [ - "policyDefinitionReferenceId" - ], - "description": "An array of policy definition references." - }, - "policyDefinitionGroups": { - "type": "array", - "items": { - "$ref": "#/definitions/PolicyDefinitionGroup" - }, - "x-ms-identifiers": [ - "name" - ], - "description": "The metadata describing groups of policy definition references within the policy set definition." - }, - "version": { - "type": "string", - "description": "The policy set definition version in #.#.# format." - }, - "versions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of available versions for this policy set definition." - } - }, - "required": [ - "policyDefinitions" - ], - "description": "The policy set definition properties." - }, - "PolicyDefinitionReference": { - "type": "object", - "properties": { - "policyDefinitionId": { - "type": "string", - "description": "The ID of the policy definition or policy set definition." - }, - "definitionVersion": { - "type": "string", - "description": "The version of the policy definition to use." - }, - "latestDefinitionVersion": { - "type": "string", - "description": "The latest version of the policy definition available. This is only present if requested via the $expand query parameter.", - "readOnly": true - }, - "effectiveDefinitionVersion": { - "type": "string", - "description": "The effective version of the policy definition in use. This is only present if requested via the $expand query parameter.", - "readOnly": true - }, - "parameters": { - "description": "The parameter values for the referenced policy rule. The keys are the parameter names.", - "$ref": "./policyAssignments.json#/definitions/ParameterValues" - }, - "policyDefinitionReferenceId": { - "type": "string", - "description": "A unique id (within the policy set definition) for this policy definition reference." - }, - "groupNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The name of the groups that this policy definition reference belongs to." - } - }, - "required": [ - "policyDefinitionId" - ], - "description": "The policy definition reference." - }, - "PolicyDefinitionGroup": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the group." - }, - "displayName": { - "type": "string", - "description": "The group's display name." - }, - "category": { - "type": "string", - "description": "The group's category." - }, - "description": { - "type": "string", - "description": "The group's description." - }, - "additionalMetadataId": { - "type": "string", - "description": "A resource ID of a resource that contains additional metadata about the group." - } - }, - "required": [ - "name" - ], - "description": "The policy definition group." - }, - "PolicySetDefinition": { - "type": "object", - "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/PolicySetDefinitionProperties", - "description": "The policy set definition properties." - }, - "id": { - "readOnly": true, - "type": "string", - "description": "The ID of the policy set definition." - }, - "name": { - "readOnly": true, - "type": "string", - "description": "The name of the policy set definition." - }, - "type": { - "readOnly": true, - "type": "string", - "description": "The type of the resource (Microsoft.Authorization/policySetDefinitions)." - }, - "systemData": { - "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/systemData", - "readOnly": true, - "description": "The system metadata relating to this resource." - } - }, - "description": "The policy set definition.", - "x-ms-azure-resource": true - }, - "PolicySetDefinitionListResult": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/PolicySetDefinition" - }, - "description": "An array of policy set definitions." - }, - "nextLink": { - "type": "string", - "description": "The URL to use for getting the next set of results." - } - }, - "description": "List of policy set definitions." - } - }, - "parameters": { - "ManagementGroupIdParameter": { - "name": "managementGroupId", - "in": "path", - "required": true, - "type": "string", - "description": "The ID of the management group.", - "x-ms-parameter-location": "method" - }, - "PolicySetDefinitionsFilterParameter": { - "name": "$filter", - "in": "query", - "required": false, - "type": "string", - "description": "The filter to apply on the operation. Valid values for $filter are: 'atExactScope()', 'policyType -eq {value}' or 'category eq '{value}''. If $filter is not provided, no filtering is performed. If $filter=atExactScope() is provided, the returned list only includes all policy set definitions that at the given scope. If $filter='policyType -eq {value}' is provided, the returned list only includes all policy set definitions whose type match the {value}. Possible policyType values are NotSpecified, BuiltIn, Custom, and Static. If $filter='category -eq {value}' is provided, the returned list only includes all policy set definitions whose category match the {value}.", - "x-ms-skip-url-encoding": true, - "x-ms-parameter-location": "method" - }, - "PolicySetDefinitionsExpandParameter": { - "name": "$expand", - "in": "query", - "required": false, - "type": "string", - "description": "Comma-separated list of additional properties to be included in the response. Supported values are 'LatestDefinitionVersion, EffectiveDefinitionVersion'.", - "x-ms-parameter-location": "method" - }, - "TopParameter": { - "name": "$top", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 1000, - "description": "Maximum number of records to return. When the $top filter is not provided, it will return 500 records.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyTokens.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyTokens.json deleted file mode 100644 index 14c2a9922bd4..000000000000 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/policyTokens.json +++ /dev/null @@ -1,368 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PolicyClient", - "version": "2025-03-01", - "description": "Allows resource operations to call external endpoints, issuing tokens upon validation." - }, - "host": "management.azure.com", - "schemes": [ - "https" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ], - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow.", - "scopes": { - "user_impersonation": "impersonate your user account" - } - } - }, - "paths": { - "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/acquirePolicyToken": { - "post": { - "tags": [ - "PolicyTokens" - ], - "operationId": "PolicyTokens_Acquire", - "summary": "Acquires a policy token.", - "description": "This operation acquires a policy token in the given subscription for the given request body.", - "x-ms-examples": { - "Acquire a policy token": { - "$ref": "./examples/acquirePolicyToken.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicyTokenRequest" - }, - "description": "The policy token properties." - } - ], - "responses": { - "200": { - "description": "Successfully acquired the policy token.", - "schema": { - "$ref": "#/definitions/PolicyTokenResponse" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - }, - "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Authorization/acquirePolicyToken": { - "post": { - "tags": [ - "PolicyTokens" - ], - "operationId": "PolicyTokens_AcquireAtManagementGroup", - "summary": "Acquires a policy token at management group level.", - "description": "This operation acquires a policy token in the given management group for the given request body.", - "x-ms-examples": { - "Acquire a policy token at management group level": { - "$ref": "./examples/acquirePolicyTokenAtManagementGroup.json" - } - }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "#/parameters/ManagementGroupNameParameter" - }, - { - "name": "parameters", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/PolicyTokenRequest" - }, - "description": "The policy token properties." - } - ], - "responses": { - "200": { - "description": "Successfully acquired the policy token.", - "schema": { - "$ref": "#/definitions/PolicyTokenResponse" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" - } - } - } - } - } - }, - "definitions": { - "PolicyTokenRequest": { - "type": "object", - "properties": { - "operation": { - "description": "The resource operation to acquire a token for.", - "$ref": "#/definitions/PolicyTokenOperation" - }, - "changeReference": { - "type": "string", - "description": "The change reference." - } - }, - "required": [ - "operation" - ], - "description": "The policy token request properties." - }, - "PolicyTokenResponse": { - "type": "object", - "properties": { - "result": { - "type": "string", - "description": "The result of the completed token acquisition operation. Possible values are Succeeded and Failed.", - "enum": [ - "Succeeded", - "Failed" - ], - "x-ms-enum": { - "name": "policyTokenResult", - "modelAsString": true - } - }, - "message": { - "type": "string", - "description": "Status message with additional details about the token acquisition operation result." - }, - "retryAfter": { - "type": "string", - "format": "date-time", - "description": "The date and time after which the client can try to acquire a token again in the case of retry-able failures." - }, - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ExternalEvaluationEndpointInvocationResult" - }, - "description": "An array of external evaluation endpoint invocation results." - }, - "changeReference": { - "type": "string", - "description": "The change reference associated with the operation for which the token is acquired." - }, - "token": { - "type": "string", - "description": "The issued policy token." - }, - "tokenId": { - "type": "string", - "description": "The unique Id assigned to the policy token." - }, - "expiration": { - "type": "string", - "format": "date-time", - "description": "The expiration of the policy token." - } - }, - "description": "The policy token response properties." - }, - "PolicyTokenOperation": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "The request URI of the resource operation." - }, - "httpMethod": { - "type": "string", - "description": "The http method of the resource operation." - }, - "content": { - "type": "object", - "description": "The payload of the resource operation." - } - }, - "required": [ - "uri", - "httpMethod" - ], - "description": "The resource operation to acquire a token for." - }, - "ExternalEvaluationEndpointInvocationResult": { - "type": "object", - "properties": { - "policyInfo": { - "description": "The details of the policy requiring the external endpoint invocation.", - "$ref": "#/definitions/PolicyLogInfo" - }, - "result": { - "type": "string", - "description": "The result of the external endpoint. Possible values are Succeeded and Failed.", - "enum": [ - "Succeeded", - "Failed" - ], - "x-ms-enum": { - "name": "externalEndpointResult", - "modelAsString": true - } - }, - "message": { - "type": "string", - "description": "The status message with additional details about the invocation result." - }, - "retryAfter": { - "type": "string", - "format": "date-time", - "description": "The date and time after which a failed endpoint invocation can be retried." - }, - "claims": { - "type": "object", - "description": "The set of claims that will be attached to the policy token as an attestation for the result of the endpoint invocation." - }, - "expiration": { - "type": "string", - "format": "date-time", - "description": "The expiration of the results." - } - }, - "description": "The external evaluation endpoint invocation results." - }, - "PolicyLogInfo": { - "type": "object", - "properties": { - "policyDefinitionId": { - "type": "string", - "description": "The policy definition Id." - }, - "policySetDefinitionId": { - "type": "string", - "description": "The policy set definition Id." - }, - "policyDefinitionReferenceId": { - "type": "string", - "description": "The policy definition instance Id inside a policy set." - }, - "policySetDefinitionName": { - "type": "string", - "description": "The policy set definition name." - }, - "policySetDefinitionDisplayName": { - "type": "string", - "description": "The policy set definition display name." - }, - "policySetDefinitionVersion": { - "type": "string", - "description": "The policy set definition version." - }, - "policySetDefinitionCategory": { - "type": "string", - "description": "The policy set definition category." - }, - "policyDefinitionName": { - "type": "string", - "description": "The policy definition name." - }, - "policyDefinitionDisplayName": { - "type": "string", - "description": "The policy definition display name." - }, - "policyDefinitionVersion": { - "type": "string", - "description": "The policy definition version." - }, - "policyDefinitionEffect": { - "type": "string", - "description": "The policy definition action." - }, - "policyDefinitionGroupNames": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of policy definition group names." - }, - "policyAssignmentId": { - "type": "string", - "description": "The policy assignment Id." - }, - "policyAssignmentName": { - "type": "string", - "description": "The policy assignment name." - }, - "policyAssignmentDisplayName": { - "type": "string", - "description": "The policy assignment display name." - }, - "policyAssignmentVersion": { - "type": "string", - "description": "The policy assignment version." - }, - "policyAssignmentScope": { - "type": "string", - "description": "The policy assignment scope." - }, - "resourceLocation": { - "type": "string", - "description": "The resource location." - }, - "ancestors": { - "type": "string", - "description": "The management group ancestors." - }, - "complianceReasonCode": { - "type": "string", - "description": "The policy compliance reason code." - }, - "policyExemptionIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of policy exemption Ids." - } - }, - "description": "The policy log info." - } - }, - "parameters": { - "ManagementGroupNameParameter": { - "name": "managementGroupName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the management group.", - "x-ms-parameter-location": "method" - } - } -} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/types.json b/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/types.json deleted file mode 100644 index 39b87c744fac..000000000000 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/stable/2025-03-01/types.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "PolicyClient", - "version": "v2" - }, - "paths": {}, - "definitions": { - "Selector": { - "description": "The selector expression.", - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "The selector kind.", - "enum": [ - "resourceLocation", - "resourceType", - "resourceWithoutLocation", - "policyDefinitionReferenceId" - ], - "x-ms-enum": { - "name": "SelectorKind", - "modelAsString": true, - "values": [ - { - "value": "resourceLocation", - "description": "The selector kind to filter policies by the resource location." - }, - { - "value": "resourceType", - "description": "The selector kind to filter policies by the resource type." - }, - { - "value": "resourceWithoutLocation", - "description": "The selector kind to filter policies by the resource without location." - }, - { - "value": "policyDefinitionReferenceId", - "description": "The selector kind to filter policies by the policy definition reference ID." - } - ] - } - }, - "in": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of values to filter in." - }, - "notIn": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The list of values to filter out." - } - } - }, - "ResourceSelector": { - "description": "The resource selector to filter policies by resource properties.", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the resource selector." - }, - "selectors": { - "type": "array", - "items": { - "$ref": "#/definitions/Selector" - }, - "x-ms-identifiers": [], - "description": "The list of the selector expressions." - } - } - }, - "Override": { - "description": "The policy property value override.", - "type": "object", - "properties": { - "kind": { - "type": "string", - "description": "The override kind.", - "enum": [ - "policyEffect", - "definitionVersion" - ], - "x-ms-enum": { - "name": "OverrideKind", - "modelAsString": true, - "values": [ - { - "value": "policyEffect", - "description": "It will override the policy effect type." - }, - { - "value": "definitionVersion", - "description": "It will override the definition version property value of the policy assignment." - } - ] - } - }, - "value": { - "type": "string", - "description": "The value to override the policy property." - }, - "selectors": { - "type": "array", - "items": { - "$ref": "#/definitions/Selector" - }, - "x-ms-identifiers": [], - "description": "The list of the selector expressions." - } - } - } - } -} diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/suppressions.yaml b/specification/resources/resource-manager/Microsoft.Authorization/policy/suppressions.yaml index 030d0db17201..9d2dccdec02b 100644 --- a/specification/resources/resource-manager/Microsoft.Authorization/policy/suppressions.yaml +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/suppressions.yaml @@ -60,7 +60,4 @@ reason: Brownfield service not ready to migrate - tool: TypeSpecRequirement path: ./stable/2025-01-01/*.json - reason: Brownfield service not ready to migrate -- tool: TypeSpecRequirement - path: ./stable/2025-03-01/*.json reason: Brownfield service not ready to migrate \ No newline at end of file diff --git a/specification/resources/resource-manager/Microsoft.Authorization/policy/tspconfig.yaml b/specification/resources/resource-manager/Microsoft.Authorization/policy/tspconfig.yaml new file mode 100644 index 000000000000..29dc7d17a72e --- /dev/null +++ b/specification/resources/resource-manager/Microsoft.Authorization/policy/tspconfig.yaml @@ -0,0 +1,51 @@ +parameters: + "service-dir": + default: "sdk/resources" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + omit-unreachable-types: true + emitter-output-dir: "{project-root}" + azure-resource-provider-folder: "resource-manager" + output-file: "{version-status}/{version}/openapi.json" + arm-types-dir: "{project-root}/../../../../common-types/resource-management" + emit-lro-options: "all" + examples-dir: "{project-root}/examples" + "@azure-tools/typespec-csharp": + emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" + flavor: azure + clear-output-folder: true + model-namespace: true + namespace: "Azure.ResourceManager.Resources.Policy" + "@azure-tools/typespec-python": + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-resource-policy" + namespace: "azure.mgmt.resource.policy" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-resources-policy" + namespace: "com.azure.resourcemanager.resources.policy" + service-name: "Policy" + flavor: azure + "@azure-tools/typespec-ts": + service-dir: "sdk/policy" + emitter-output-dir: "{output-dir}/{service-dir}/arm-policy" + flavor: azure + experimental-extensible-enums: true + package-details: + name: "@azure/arm-policy" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/resources" + emitter-output-dir: "{output-dir}/{service-dir}/armpolicy" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armpolicy" + fix-const-stuttering: false + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager"